(function(tb,ub,vb,wb,C,xb,aa,L,$,S,M,x,yb,V,zb,da,N,D,eb,qa,Oa,Ab,fb,Bb,la,xa,Ia,E,Cb,Db,ya,Eb,gb,Fb,Gb,Pa,Hb,Ib,Jb,Kb,Lb,Mb,Nb,Ob,Pb,Qb,Rb,Sb,Tb,Ub,Vb,Wb,Xb,Yb,Zb,e,m,hb){aa("J.adapter.smarter");$(["JS.Symmetry","JU.P3","$.SB"],"J.adapter.smarter.XtalSymmetry","java.util.Hashtable JU.A4 $.BS $.Lst $.M3 $.M4 $.P3i $.PT $.V3 J.adapter.smarter.Atom JS.SpaceGroup $.SymmetryOperation $.UnitCell JU.BSUtil $.Escape $.Logger $.SimpleUnitCell".split(" "),function(){var b=M(function(){this.acr=null;this.applySymmetryToBonds=
!1;this.baseSymmetry=this.asc=null;this.bondCount0=0;this.bondsFound=null;this.crystalReaderLatticeOpsOnly=this.checkNearAtoms=this.checkAll=this.centroidPacked=!1;this.disorderMap=null;this.disorderMapMax=0;this.doCentroidUnitCell=!1;this.doNormalize=!0;this.doPackUnitCell=!1;this.filterSymop=null;this.firstAtom=0;this.latticeCells=null;this.latticeOp=0;this.mTemp=this.maxXYZ0=this.minXYZ0=this.maxXYZ=this.minXYZ=this.mident=null;this.ndims=3;this.packingRange=this.noSymmetryCount=0;this.symmetry=
this.rmax=this.rmin=this.ptTemp=this.ptOffset=null;this.symmetryRange=0;this.unitCellTranslations=this.unitCellParams=this.trajectoryUnitCells=null;S(this,arguments)},J.adapter.smarter,"XtalSymmetry",null);qa(b,function(){this.bondsFound=new JU.SB;this.ptOffset=new JU.P3});V(b,function(){});e(b,"addRotatedTensor",function(a,c,f,d,t){null==this.ptTemp&&(this.ptTemp=new JU.P3,this.mTemp=new JU.M3);return a.addTensor(this.acr.getInterface("JU.Tensor").setFromEigenVectors(t.rotateAxes(f,c.eigenVectors,
this.ptTemp,this.mTemp),c.eigenValues,c.isIsotropic?"iso":c.type,c.id,c),null,d)},"J.adapter.smarter.Atom,JU.Tensor,~N,~B,J.adapter.smarter.XtalSymmetry.FileSymmetry");e(b,"applySymmetryBio",function(a,c,f){var d=a.get("biomts"),t=d.size();null==this.mident&&(this.mident=new JU.M4,this.mident.setIdentity());this.acr.lstNCS=null;this.setLatticeCells();var b=null!=this.latticeCells&&0!=this.latticeCells[0]?N(3,0):null;if(null!=b)for(var h=0;3>h;h++)b[h]=this.latticeCells[h];this.latticeCells=null;var l=
"",b=this.acr.getFilterWithCase("BMCHAINS"),k=-1;if(null!=b&&0<(b=b.trim()).length)"="==b.charAt(0)&&(b=b.substring(1).trim()),b.equals("_")?(l="_",k=0):(k=0==b.length?0:JU.PT.parseInt(b),-2147483648==k&&(k=-b.charAt(0).charCodeAt(0)));var j=0<=f.indexOf("BYCHAIN")?1:0<=f.indexOf("BYSYMOP")?2:0;this.doNormalize=!1;var e=a.get("chains");(this.symmetry=new J.adapter.smarter.XtalSymmetry.FileSymmetry).setSpaceGroup(this.doNormalize);this.addSpaceGroupOperation("x,y,z",!1);b=a.get("name");this.setAtomSetSpaceGroupName(this.acr.sgName=
b);this.applySymmetryToBonds=c;this.bondCount0=this.asc.bondCount;this.firstAtom=this.asc.getLastAtomSetAtomIndex();var b=this.asc.ac,p=new java.util.Hashtable,u=0,r=this.asc.atoms;c=this.bondCount0>this.asc.bondIndex0&&c;switch(j){case 1:for(h=b;--h>=this.firstAtom;){var q=Integer.$valueOf(r[h].chainID),n=p.get(q);null==n&&(u++,p.put(q,n=new JU.BS));n.set(h)}this.asc.bsAtoms=new JU.BS;for(h=0;h<u;h++)this.asc.bsAtoms.set(b+h),c=new J.adapter.smarter.Atom,c.set(0,0,0),c.radius=16,this.asc.addAtom(c);
for(var G=0,w,p=p.entrySet().iterator();p.hasNext()&&((w=p.next())||1);){c=r[b+G++];n=w.getValue();for(h=n.nextSetBit(0);0<=h;h=n.nextSetBit(h+1))c.add(r[h]);c.scale(1/n.cardinality());c.atomName="Pt"+G;c.chainID=w.getKey().intValue()}this.firstAtom=b;b+=u;c=!1;break;case 2:this.asc.bsAtoms=new JU.BS;this.asc.bsAtoms.set(b);c=r[b]=new J.adapter.smarter.Atom;c.set(0,0,0);for(h=b;--h>=this.firstAtom;)c.add(r[h]);c.scale(1/(b-this.firstAtom));c.atomName="Pt";c.radius=16;this.asc.addAtom(c);this.firstAtom=
b++;c=!1}u=a.get("assemblyIdAtoms");0<=f.indexOf("#<")&&(t=Math.min(t,JU.PT.parseInt(f.substring(f.indexOf("#<")+2))-1),f=JU.PT.rep(f,"#<","_<"));h=0;for(p=this.firstAtom;p<b;p++)r[p].bsSymmetry=new JU.BS,a=r[p].chainID,a>h&&(h=a);a=this.asc.bsAtoms;n=c?N(this.asc.ac,0):null;for(G=null==e?1:0;G<t;G++){if(0<=f.indexOf("!#")){if(0<=f.indexOf("!#"+(G+1)+";"))continue}else if(0<=f.indexOf("#")&&0>f.indexOf("#"+(G+1)+";"))continue;var v=d.get(G),m=!v.equals(this.mident),A=null==e?null:e.get(G);if(null!=
A&&null!=u){a=new JU.BS;for(p=u.entrySet().iterator();p.hasNext()&&((w=p.next())||1);)0<=A.indexOf(":"+w.getKey()+";")&&a.or(w.getValue());null!=this.asc.bsAtoms&&a.and(this.asc.bsAtoms);A=null}for(var y=-1,F=!1,p=this.firstAtom;p<b;p++){if(null!=a)F=!a.get(p);else if(null!=A&&(q=r[p].chainID)!=y)F=0>A.indexOf(":"+this.acr.vwr.getChainIDStr(y=q)+";");if(!F)try{var W=r[p].atomSite,B;c&&(n[W]=this.asc.ac);B=this.asc.newCloneAtom(r[p]);B.bondingRadius=G;this.asc.atomSymbolicMap.put(""+B.atomSerial,B);
null!=this.asc.bsAtoms&&this.asc.bsAtoms.set(B.index);B.atomSite=W;m&&v.rotTrans(B);B.bsSymmetry=JU.BSUtil.newAndSetBit(G)}catch(x){if(da(x,Exception))this.asc.errorMessage="appendAtomCollection error: "+x;else throw x;}}m&&this.symmetry.addBioMoleculeOperation(v,!1);if(c)for(v=this.asc.bondIndex0;v<this.bondCount0;v++)p=this.asc.bonds[v],this.asc.addNewBondWithOrder(n[r[p.atomIndex1].atomSite],n[r[p.atomIndex2].atomSite],p.order)}if(null!=e){null==this.asc.bsAtoms&&(this.asc.bsAtoms=JU.BSUtil.newBitSet2(0,
this.asc.ac));this.asc.bsAtoms.clearBits(this.firstAtom,b);if(0==j){if(-1!=k){q=(d=0!=k)?new JU.BS:null;r=this.asc.atoms;W=0;d&&(W=0>k?Math.max(-k,h+1):Math.max(h+k,65),q.setBits(0,W-1),q.setBits(91,97),q.setBits(123,200));j=1==this.asc.structureCount?this.asc.structures[0].bsAll:null;e=new java.util.Hashtable;B=new java.util.Hashtable;p=null==j?null:new java.util.Hashtable;u=null;h=b;for(n=this.asc.ac;h<n;h++)G=r[h].chainID,m=r[h].bsSymmetry.nextSetBit(0),k=this.acr.vwr.getChainIDStr(G),v=0==m?k:
k+l+m,f=e.get(v),null==f&&(d&&0!=m&&(m=200>W?q.nextClearBit(W):200,200>m&&(q.set(m),f=Integer.$valueOf(this.acr.vwr.getChainID(""+String.fromCharCode(m),!0)),W=m)),null==f&&(f=Integer.$valueOf(this.acr.vwr.getChainID(v,!0))),v!==k&&(B.put(f,Integer.$valueOf(G)),null!=j&&(null!=u&&(u[1]=h),p.put(f,u=N(-1,[h,n])))),e.put(v,f)),r[h].chainID=f.intValue();if(0<this.asc.structureCount){l=this.asc.structures;r=this.asc.structureCount;for(p=B.entrySet().iterator();p.hasNext()&&((w=p.next())||1);){f=w.getKey();
f=f.intValue();k=w.getValue().intValue();for(h=0;h<r;h++)d=l[h],null==d.bsAll&&(d.startChainID==d.endChainID?d.startChainID==k&&(d=d.clone(),d.startChainID=d.endChainID=f,this.asc.addStructure(d)):System.err.println("XtalSymmetry not processing biomt chain structure "+this.acr.vwr.getChainIDStr(k)+" to "+this.acr.vwr.getChainIDStr(f)))}}}w=this.asc.getAtomSetAuxiliaryInfoValue(-1,"PDB_CONECT_bonds");if(!c&&null!=w)for(h=w.size();0<=--h;)if(p=w.get(h),c=this.asc.getAtomFromName(""+p[0]),l=this.asc.getAtomFromName(""+
p[1]),null!=c&&null!=l&&c.bondingRadius!=l.bondingRadius&&(null==a||a.get(c.index)&&a.get(l.index))&&25<c.distanceSquared(l))w.removeItemAt(h),System.out.println("XtalSymmetry: long interchain bond removed for @"+c.atomSerial+"-@"+l.atomSerial)}h=b;for(n=this.asc.ac;h<n;h++)this.asc.atoms[h].bondingRadius=NaN}this.noSymmetryCount=b-this.firstAtom;this.finalizeSymmetry(this.symmetry);this.setCurrentModelInfo(t,null,null);this.reset()},"java.util.Map,~B,~S");e(b,"getBaseSymmetry",function(){return null==
this.baseSymmetry?this.symmetry:this.baseSymmetry});e(b,"getOverallSpan",function(){return null==this.maxXYZ0?JU.V3.new3(this.maxXYZ.x-this.minXYZ.x,this.maxXYZ.y-this.minXYZ.y,this.maxXYZ.z-this.minXYZ.z):JU.V3.newVsub(this.maxXYZ0,this.minXYZ0)});e(b,"getFileSymmetry",function(){return null==this.symmetry?this.symmetry=new J.adapter.smarter.XtalSymmetry.FileSymmetry:this.symmetry});b.isWithinSupercell=e(b,"isWithinSupercell",function(a,c,f,d,t,b,h,l,e){return c.x>f-e&&c.x<d+e&&(2>a||c.y>t-e&&c.y<
b+e)&&(3>a||c.z>h-e&&c.z<l+e)},"~N,JU.P3,~N,~N,~N,~N,~N,~N,~N");e(b,"set",function(a){this.acr=a;this.asc=a.asc;this.getFileSymmetry();return this},"J.adapter.smarter.AtomSetCollectionReader");e(b,"setLatticeParameter",function(a){this.symmetry.setSpaceGroup(this.doNormalize);this.symmetry.setLattice(a)},"~N");e(b,"addSpaceGroupOperation",function(a,c){this.symmetry.setSpaceGroup(this.doNormalize);c&&1==this.symmetry.getSpaceGroupOperationCount()&&this.setLatticeCells();return this.symmetry.addSpaceGroupOperation(a,
0)},"~S,~B");e(b,"setSymmetryFromAuditBlock",function(a){return this.symmetry=a},"J.adapter.smarter.XtalSymmetry.FileSymmetry");e(b,"applySymmetryFromReader",function(a){this.asc.setCoordinatesAreFractional(this.acr.iHaveFractionalCoordinates);this.setAtomSetSpaceGroupName(this.acr.sgName);this.symmetryRange=this.acr.symmetryRange;this.asc.setInfo("symmetryRange",Float.$valueOf(this.symmetryRange));if(this.acr.doConvertToFractional||this.acr.fileCoordinatesAreFractional){this.setLatticeCells();var c=
!0;if(this.acr.ignoreFileSpaceGroupName||!this.acr.iHaveSymmetryOperators){if(!this.acr.merging||null==a)a=new J.adapter.smarter.XtalSymmetry.FileSymmetry;0==this.acr.unitCellParams[0]&&0==this.acr.unitCellParams[2]&&JU.SimpleUnitCell.fillParams(null,null,null,this.acr.unitCellParams);c=a.createSpaceGroup(this.acr.desiredSpaceGroupIndex,0<=this.acr.sgName.indexOf("!")?"P1":this.acr.sgName,this.acr.unitCellParams,this.acr.modDim)}else this.acr.doPreSymmetry(c),a=null;this.packingRange=this.acr.getPackingRangeValue(0);
c?(null!=a&&this.getFileSymmetry().setSpaceGroupTo(a.getSpaceGroup()),this.applySymmetryLattice(),null!=a&&null==this.filterSymop&&this.setAtomSetSpaceGroupName(a.getSpaceGroupName())):this.setUnitCellSafely()}if(this.acr.iHaveFractionalCoordinates&&this.acr.merging&&null!=a){for(var c=this.asc.atoms,f=this.asc.getLastAtomSetAtomIndex(),d=this.asc.ac;f<d;f++)a.toCartesian(c[f],!0);this.asc.setCoordinatesAreFractional(!1);this.acr.addVibrations=!1}return this.symmetry},"J.adapter.smarter.XtalSymmetry.FileSymmetry");
e(b,"finalizeMoments",function(a,c){this.getFileSymmetry().preSymmetryFinalizeMoments(this.acr,this.asc,a,c)},"java.util.Map,java.util.Map");e(b,"setMagneticMoments",function(a){return 0>this.asc.iSet||!this.acr.vibsFractional?0:this.getBaseSymmetry().postSymmetrySetMagneticMoments(this.asc,a)},"~B");e(b,"setTensors",function(a){for(var c=this.asc.ac,f=this.asc.getLastAtomSetAtomIndex();f<c;f++){var d=this.asc.atoms[f];null!=d.anisoBorU&&(d.addTensor(this.symmetry.getTensor(this.acr.vwr,d.anisoBorU),
null,!1),Float.isNaN(d.bfactor)&&a&&(d.bfactor=100*d.anisoBorU[7]),d.anisoBorU=null)}},"~B");e(b,"adjustRangeMinMax",function(a){this.symmetry.adjustRangeMinMax(a,this.acr.forcePacked?this.packingRange:NaN,this.minXYZ,this.maxXYZ,this.rmin,this.rmax,this.minXYZ,this.maxXYZ)},"~A");e(b,"applyAllSymmetry",function(a,c){if(!(0==this.asc.ac||null!=c&&c.isEmpty())){var f=this.noSymmetryCount=0<this.asc.baseSymmetryAtomCount?this.asc.baseSymmetryAtomCount:null==c?this.asc.getLastAtomSetAtomCount():this.asc.ac-
c.nextSetBit(this.asc.getLastAtomSetAtomIndex());this.asc.setTensors();this.applySymmetryToBonds=this.acr.applySymmetryToBonds;this.doPackUnitCell=this.acr.doPackUnitCell&&!this.applySymmetryToBonds;this.bondCount0=this.asc.bondCount;this.ndims=JU.SimpleUnitCell.getDimensionFromParams(this.acr.unitCellParams);this.finalizeSymmetry(this.symmetry);var d=this.symmetry.getSpaceGroupOperationCount(),t=null==this.acr.thisBiomolecule?null:new JU.BS;this.checkNearAtoms=this.acr.checkNearAtoms||null!=t;JU.SimpleUnitCell.setMinMaxLatticeParameters(this.ndims,
this.minXYZ,this.maxXYZ,0);this.latticeOp=this.symmetry.getLatticeOp();this.crystalReaderLatticeOpsOnly=this.asc.crystalReaderLatticeOpsOnly&&0<=this.latticeOp;this.doCentroidUnitCell&&this.asc.setInfo("centroidMinMax",N(-1,[this.minXYZ.x,this.minXYZ.y,this.minXYZ.z,this.maxXYZ.x,this.maxXYZ.y,this.maxXYZ.z,this.centroidPacked?x(100*this.packingRange):0]));if(this.doCentroidUnitCell||this.acr.doPackUnitCell||0!=this.symmetryRange&&1==this.maxXYZ.x-this.minXYZ.x&&1==this.maxXYZ.y-this.minXYZ.y&&1==
this.maxXYZ.z-this.minXYZ.z)switch(this.minXYZ0=JU.P3.new3(this.minXYZ.x,this.minXYZ.y,this.minXYZ.z),this.maxXYZ0=JU.P3.new3(this.maxXYZ.x,this.maxXYZ.y,this.maxXYZ.z),null!=a&&(a.setMinMax0(this.minXYZ0,this.maxXYZ0),this.minXYZ.set(x(this.minXYZ0.x),x(this.minXYZ0.y),x(this.minXYZ0.z)),this.maxXYZ.set(x(this.maxXYZ0.x),x(this.maxXYZ0.y),x(this.maxXYZ0.z))),this.ndims){case 3:this.minXYZ.z--,this.maxXYZ.z++;case 2:this.minXYZ.y--,this.maxXYZ.y++;case 1:this.minXYZ.x--,this.maxXYZ.x++}for(var b=
(this.maxXYZ.x-this.minXYZ.x)*(this.maxXYZ.y-this.minXYZ.y)*(this.maxXYZ.z-this.minXYZ.z),h=f*(this.crystalReaderLatticeOpsOnly?4:d),h=this.checkNearAtoms||null!=this.acr.thisBiomolecule?h*b:0<this.symmetryRange?h:1,l=Array(h),e=this.asc.atoms,j=0;j<f;j++)e[this.firstAtom+j].bsSymmetry=JU.BS.newN(d*(b+1));var s=0;this.unitCellTranslations=Array(b);var p=0,u=0,r=Math.abs(this.symmetryRange),q=0!=this.symmetryRange,n=0>this.symmetryRange,G=0<this.symmetryRange;q&&(this.rmin.x=this.rmin.y=this.rmin.z=
3.4028235E38,this.rmax.x=this.rmax.y=this.rmax.z=-3.4028235E38);var m=this.symmetry,v=m;this.checkAll=this.crystalReaderLatticeOpsOnly||1==this.asc.atomSetCount&&this.checkNearAtoms&&0<=this.latticeOp;var z=this.acr.lstNCS;if(null!=z&&0==z.get(0).m33){for(var A=m.getSpaceGroupOperationCount(),y=z.size(),j=y;0<=--j;){var F=z.get(j);F.m33=1;m.toFractionalM(F)}for(j=1;j<A;j++)for(var W=m.getSpaceGroupOperation(j),B=0;B<y;B++)F=JU.M4.newM4(z.get(B)),F.mul2(W,F),this.doNormalize&&0<this.noSymmetryCount&&
JS.SymmetryOperation.normalizeOperationToCentroid(3,F,e,this.firstAtom,this.noSymmetryCount),z.addLast(F)}j=null;z=m.getSpaceGroupOperation(0);this.doPackUnitCell&&(j=new JU.P3,this.ptOffset.set(0,0,0));A=this.bondCount0>this.asc.bondIndex0&&this.applySymmetryToBonds?N(f,0):null;b=N(b,0);for(y=this.minXYZ.x;y<this.maxXYZ.x;y++)for(F=this.minXYZ.y;F<this.maxXYZ.y;F++)for(W=this.minXYZ.z;W<this.maxXYZ.z;W++)if(this.unitCellTranslations[p]=JU.V3.new3(y,F,W),b[p++]=555+100*y+10*F+W,!(0!=y||0!=F||0!=W||
0==l.length)){for(s=0;s<f;s++){u=e[this.firstAtom+s];null!=a&&(m=a.getAtomSymmetry(u,this.symmetry),m!==v&&(0==m.getSpaceGroupOperationCount()&&this.finalizeSymmetry(m),v=m,z=m.getSpaceGroupOperation(0)));B=JU.P3.newP(u);z.rotTrans(B);m.toCartesian(B,!1);if(this.doPackUnitCell)if(m.toUnitCellRnd(B,this.ptOffset),j.setT(B),m.toFractional(j,!1),this.acr.fixFloatPt(j,1E5),null==c)u.setT(j);else if(1E-4>u.distance(j))c.set(u.index);else{c.clear(u.index);continue}null!=c&&u.bsSymmetry.clearAll();u.bsSymmetry.set(p*
d);u.bsSymmetry.set(0);q&&JS.UnitCell.setSymmetryMinMax(B,this.rmin,this.rmax);s<h&&(l[s]=B)}n&&(this.rmin.x-=r,this.rmin.y-=r,this.rmin.z-=r,this.rmax.x+=r,this.rmax.y+=r,this.rmax.z+=r);u=s=this.symmetryAddAtoms(0,0,0,0,s,p*d,l,a,t,A)}G&&(this.rmin.x-=r,this.rmin.y-=r,this.rmin.z-=r,this.rmax.x+=r,this.rmax.y+=r,this.rmax.z+=r);p=0;for(y=this.minXYZ.x;y<this.maxXYZ.x;y++)for(F=this.minXYZ.y;F<this.maxXYZ.y;F++)for(W=this.minXYZ.z;W<this.maxXYZ.z;W++)if(p++,0!=y||0!=F||0!=W)s=this.symmetryAddAtoms(y,
F,W,u,s,p*d,l,a,t,A);p*f==this.asc.ac-this.firstAtom&&this.duplicateAtomProperties(p);this.setCurrentModelInfo(f,m,b);this.unitCellParams=null;this.reset()}},"J.adapter.smarter.MSInterface,JU.BS");e(b,"applyRangeSymmetry",function(a){var c=this.acr.fillRange;a=this.updateBSAtoms();this.acr.forcePacked=!0;this.doPackUnitCell=!1;for(var f=JU.P3i.new3(this.minXYZ.x,this.minXYZ.y,this.minXYZ.z),d=JU.P3i.new3(this.maxXYZ.x,this.maxXYZ.y,this.maxXYZ.z),t=Array(4),b=0;4>b;b++)t[b]=JU.P3.newP(c[b]);this.setUnitCellSafely();
this.adjustRangeMinMax(t);c=new J.adapter.smarter.XtalSymmetry.FileSymmetry;c.getUnitCell(this.acr.fillRange,!1,null);this.applyAllSymmetry(this.acr.ms,a);for(var t=new JU.P3,h=this.asc.atoms,b=this.asc.ac;--b>=this.firstAtom;)t.setT(h[b]),this.symmetry.toCartesian(t,!1),c.toFractional(t,!1),(this.acr.noPack?!J.adapter.smarter.XtalSymmetry.removePacking(this.ndims,t,f.x,d.x,f.y,d.y,f.z,d.z,this.packingRange):!J.adapter.smarter.XtalSymmetry.isWithinSupercell(this.ndims,t,f.x,d.x,f.y,d.y,f.z,d.z,this.packingRange))&&
a.clear(b)},"JU.BS");e(b,"applySuperSymmetry",function(a,c,f,d,t,b,h){this.asc.setGlobalBoolean(7);var l=this.doPackUnitCell;this.doPackUnitCell=l;this.applyAllSymmetry(this.acr.ms,null);this.doPackUnitCell=l;for(var l=this.asc.atoms,e=this.asc.ac,j=f;j<e;j++)this.symmetry.toCartesian(l[j],!0),c.set(j);this.asc.setCurrentModelInfo("unitcell_conventional",this.symmetry.getV0abc("a,b,c",null));c=b[0];j=b[1];b=b[2];this.symmetry=new J.adapter.smarter.XtalSymmetry.FileSymmetry;this.setUnitCell(D(-1,[0,
0,0,0,0,0,c.x,c.y,c.z,j.x,j.y,j.z,b.x,b.y,b.z,0,0,0,0,0,0,NaN,NaN,NaN,NaN,NaN,h]),null,null);a=null==d||null==a?"P1":"cell="+a;this.setAtomSetSpaceGroupName(a);this.symmetry.setSpaceGroupName(a);this.symmetry.setSpaceGroup(this.doNormalize);this.symmetry.addSpaceGroupOperation("x,y,z",0);null!=t&&0==t.length()&&(t=null);null!=t&&this.symmetry.toFractional(t,!0);for(j=f;j<e;j++)this.symmetry.toFractional(l[j],!0),null!=t&&l[j].sub(t);this.asc.haveAnisou=!1;this.asc.setCurrentModelInfo("matUnitCellOrientation",
null)},"~S,JU.BS,~N,~A,JU.P3,~A,~N");e(b,"applySymmetryLattice",function(){if(this.asc.coordinatesAreFractional&&null!=this.symmetry.getSpaceGroup()){var a=this.latticeCells[0],c=this.latticeCells[1],f=Math.abs(this.latticeCells[2]),d=this.latticeCells[3];this.firstAtom=this.asc.getLastAtomSetAtomIndex();var t=this.asc.bsAtoms;null!=t&&(this.updateBSAtoms(),this.firstAtom=t.nextSetBit(this.firstAtom));this.rmin=JU.P3.new3(3.4028235E38,3.4028235E38,3.4028235E38);this.rmax=JU.P3.new3(-3.4028235E38,
-3.4028235E38,-3.4028235E38);null==this.acr.latticeType&&(this.acr.latticeType=""+this.symmetry.getLatticeType());this.acr.isPrimitive&&(this.asc.setCurrentModelInfo("isprimitive",Boolean.TRUE),(!"P".equals(this.acr.latticeType)||null!=this.acr.primitiveToCrystal)&&this.asc.setCurrentModelInfo("unitcell_conventional",this.symmetry.getConventionalUnitCell(this.acr.latticeType,this.acr.primitiveToCrystal)));this.setUnitCellSafely();this.asc.setCurrentModelInfo("f2c",this.symmetry.getUnitCellF2C());
var b=this.symmetry.getSpaceGroupTitle();0>b.indexOf("--")&&this.asc.setCurrentModelInfo("f2cTitle",b);this.asc.setCurrentModelInfo("f2cParams",this.symmetry.getUnitCellParams());null!=this.acr.latticeType&&(this.asc.setCurrentModelInfo("latticeType",this.acr.latticeType),"string"==typeof this.acr.fillRange&&(b=this.setLatticeRange(this.acr.latticeType,this.acr.fillRange),null==b?(this.acr.appendLoadNote(this.acr.fillRange+" symmetry could not be implemented"),this.acr.fillRange=null):this.acr.fillRange=
b));this.baseSymmetry=this.symmetry;if(null!=this.acr.fillRange)this.setMinMax(this.ndims,d,a,c,f),this.applyRangeSymmetry(t);else{var b=null,h=1E-6;this.baseSymmetry.nSpins=0;var l=this.acr.strSupercell,e=null!=l&&0<=l.indexOf(","),j=null,s=null,p=Array(3);e&&(j=new JU.M4,null==this.mident&&(this.mident=new JU.M4),this.setUnitCellSafely(),b=this.symmetry.getV0abc(l,j),j.transpose33(),null!=b&&!j.equals(this.mident)&&(this.setMinMax(this.ndims,d,a,c,f),s=JU.P3.newP(b[0]),p[0]=JU.V3.newV(b[1]),p[1]=
JU.V3.newV(b[2]),p[2]=JU.V3.newV(b[3]),this.adjustRangeMinMax(b)));e=this.asc.getLastAtomSetAtomIndex();null!=t&&(e=t.nextSetBit(e));3.4028235E38==this.rmin.x?b=null:(t=this.updateBSAtoms(),h=this.symmetry.getPrecision(),this.applySuperSymmetry(l,t,e,b,s,p,h));this.setMinMax(this.ndims,d,a,c,f);if(null==b){this.applyAllSymmetry(this.acr.ms,t);if(!this.acr.noPack&&(!this.applySymmetryToBonds||!this.acr.doPackUnitCell))return;this.setMinMax(this.ndims,d,a,c,f)}(this.acr.forcePacked||this.acr.doPackUnitCell||
this.acr.noPack)&&this.trimToUnitCell(e);this.updateSupercellAtomSites(j,t,h)}}});e(b,"duplicateAtomProperties",function(a){var c=this.asc.getAtomSetAuxiliaryInfoValue(-1,"atomProperties");if(null!=c)for(var f,d=c.entrySet().iterator();d.hasNext()&&((f=d.next())||1);){var t=f.getKey(),b=f.getValue();if("string"==typeof b){for(var h=b,l=new JU.SB,b=a;0<=--b;)l.append(h);c.put(t,l.toString())}else{t=b;h=D(t.length*a,0);for(b=a;0<=--b;)System.arraycopy(t,0,h,b*t.length,t.length)}}},"~N");e(b,"finalizeSymmetry",
function(a){var c=this.asc.getAtomSetAuxiliaryInfoValue(-1,"spaceGroup");a.setFinalOperations(this.ndims,c,this.asc.atoms,this.firstAtom,this.noSymmetryCount,this.doNormalize,this.filterSymop);(null!=this.filterSymop||null==c||c.equals("unspecified!"))&&this.setAtomSetSpaceGroupName(a.getUnitCellDisplayName());null!=this.unitCellParams||Float.isNaN(this.acr.unitCellParams[0])||(a.fixUnitCell(this.acr.unitCellParams)&&this.acr.appendLoadNote("Unit cell parameters were adjusted to match space group!"),
this.setUnitCellSafely())},"J.adapter.smarter.XtalSymmetry.FileSymmetry");b.removePacking=e(b,"removePacking",function(a,c,f,d,t,b,h,l,e){return c.x>f-e&&c.x<d-e&&(2>a||c.y>t-e&&c.y<b-e)&&(3>a||c.z>h-e&&c.z<l-e)},"~N,JU.P3,~N,~N,~N,~N,~N,~N,~N");e(b,"reset",function(){this.asc.coordinatesAreFractional=!1;this.asc.setCurrentModelInfo("hasSymmetry",Boolean.TRUE);this.asc.setGlobalBoolean(1)});e(b,"setAtomSetSpaceGroupName",function(a){this.symmetry.setSpaceGroupName(a);a+="";this.asc.setCurrentModelInfo("f2cTitle",
a);this.asc.setCurrentModelInfo("spaceGroup",a)},"~S");e(b,"setCurrentModelInfo",function(a,c,f){null==c?(this.asc.setCurrentModelInfo("presymmetryAtomCount",Integer.$valueOf(this.noSymmetryCount)),this.asc.setCurrentModelInfo("biosymmetryCount",Integer.$valueOf(a)),this.asc.setCurrentModelInfo("bioSymmetry",this.symmetry)):(this.asc.setCurrentModelInfo("fileSymmetry",this.symmetry),this.asc.setCurrentModelInfo("presymmetryAtomCount",Integer.$valueOf(a)),this.asc.setCurrentModelInfo("latticeDesignation",
c.getLatticeDesignation()),this.asc.setCurrentModelInfo("ML_unitCellRange",f),this.acr.isSUPERCELL&&this.asc.setCurrentModelInfo("supercell",this.acr.strSupercell));this.asc.setCurrentModelInfo("presymmetryAtomIndex",Integer.$valueOf(this.firstAtom));a=this.symmetry.getSpaceGroupOperationCount();0<a&&(this.asc.setCurrentModelInfo("symmetryOperations",this.symmetry.getSymopList(this.doNormalize)),this.asc.setCurrentModelInfo("symOpsTemp",this.symmetry.getSymmetryOperations()));this.asc.setCurrentModelInfo("symmetryCount",
Integer.$valueOf(a));this.asc.setCurrentModelInfo("latticeType",null==this.acr.latticeType?"P":this.acr.latticeType);this.asc.setCurrentModelInfo("intlTableNo",this.symmetry.getIntTableNumber());this.asc.setCurrentModelInfo("intlTableIndex",this.symmetry.getSpaceGroupInfoObj("itaIndex",null,!1,!1));this.asc.setCurrentModelInfo("intlTableTransform",this.symmetry.getSpaceGroupInfoObj("itaTransform",null,!1,!1));this.asc.setCurrentModelInfo("intlTableJmolId",this.symmetry.getSpaceGroupJmolId());this.asc.setCurrentModelInfo("spaceGroupIndex",
Integer.$valueOf(this.symmetry.getSpaceGroupIndex()));this.asc.setCurrentModelInfo("spaceGroupTitle",this.symmetry.getSpaceGroupTitle());if(null==this.acr.sgName||0<=this.acr.sgName.indexOf("?")||0<=this.acr.sgName.indexOf("!"))this.setAtomSetSpaceGroupName(this.acr.sgName=this.symmetry.getSpaceGroupName())},"~N,J.adapter.smarter.XtalSymmetry.FileSymmetry,~A");e(b,"setCurrentModelUCInfo",function(a,c,f){null!=a&&this.asc.setCurrentModelInfo("unitCellParams",a);null!=c&&this.asc.setCurrentModelInfo("unitCellOffset",
c);null!=f&&this.asc.setCurrentModelInfo("matUnitCellOrientation",f)},"~A,JU.P3,JU.M3");e(b,"setLatticeCells",function(){this.latticeCells=this.acr.latticeCells;var a=555>=this.latticeCells[0]&&555<=this.latticeCells[1]&&(0==this.latticeCells[2]||1==this.latticeCells[2]||-1==this.latticeCells[2]);this.doNormalize=0!=this.latticeCells[0]&&(!a||1==this.latticeCells[2]);this.applySymmetryToBonds=this.acr.applySymmetryToBonds;this.doPackUnitCell=this.acr.doPackUnitCell&&!this.applySymmetryToBonds;this.doCentroidUnitCell=
this.acr.doCentroidUnitCell;this.centroidPacked=this.acr.centroidPacked;this.filterSymop=this.acr.filterSymop});e(b,"setLatticeRange",function(a,c){var f=null,d="R".equals(a);if(c.equals("conventional"))f=this.symmetry.getConventionalUnitCell(a,this.acr.primitiveToCrystal);else if(c.equals("primitive"))f=this.symmetry.getUnitCellVectors(),this.symmetry.toFromPrimitive(!0,a.charAt(0),f,this.acr.primitiveToCrystal);else if(d&&c.equals("rhombohedral"))c=1==this.symmetry.getUnitCellInfoType(8)?"2/3a+1/3b+1/3c,-1/3a+1/3b+1/3c,-1/3a-2/3b+1/3c":
null;else if(d&&c.equals("trigonal"))c=1==this.symmetry.getUnitCellInfoType(9)?"a-b,b-c,a+b+c":null;else if(c.equals("spin"))c=this.getBaseSymmetry().spinFrameStr;else if(c.startsWith("unitcell_"))c=this.asc.getAtomSetAuxiliaryInfoValue(-1,c);else if(0>c.indexOf(",")||0>c.indexOf("a")||0>c.indexOf("b")||0>c.indexOf("c"))c=null;if(null!=c&&null==f&&null==(f=this.symmetry.getV0abc(c,null)))c=null;if(null==c)return null;this.acr.addJmolScript("unitcell "+JU.PT.esc(c));return f},"~S,~S");e(b,"setMinMax",
function(a,c,f,d,t){this.minXYZ=new JU.P3i;this.maxXYZ=JU.P3i.new3(f,d,t);JU.SimpleUnitCell.setMinMaxLatticeParameters(a,this.minXYZ,this.maxXYZ,c)},"~N,~N,~N,~N,~N");e(b,"setUnitCell",function(a,c,f){this.unitCellParams=D(a.length,0);for(var d=0;d<a.length;d++)this.unitCellParams[d]=a[d];this.asc.haveUnitCell=!0;this.asc.isTrajectory&&(null==this.trajectoryUnitCells&&(this.trajectoryUnitCells=new JU.Lst,this.asc.setInfo("unitCells",this.trajectoryUnitCells)),this.trajectoryUnitCells.addLast(this.unitCellParams));
this.asc.setGlobalBoolean(2);this.getFileSymmetry().setUnitCellFromParams(this.unitCellParams,!1,this.acr.cellSlop);null!=f&&this.symmetry.setOffsetPt(f);null!=c&&this.symmetry.initializeOrientation(c);this.setCurrentModelUCInfo(this.unitCellParams,f,c)},"~A,JU.M3,JU.P3");e(b,"setUnitCellSafely",function(){null==this.unitCellParams&&this.setUnitCell(this.acr.unitCellParams,this.acr.matUnitCellOrientation,this.acr.unitCellOffset)});e(b,"symmetryAddAtoms",function(a,c,f,d,t,b,h,e,k,j){var s=0==d,p=
null!=j;this.doPackUnitCell&&this.ptOffset.set(a,c,f);var u=this.symmetryRange*this.symmetryRange,r=0>this.symmetryRange,q=0<this.symmetryRange,n=s&&q,q=(new Boolean(q&!s)).valueOf(),m=this.symmetry.getSpaceGroupOperationCount(),w=this.acr.lstNCS,v=null==w?0:w.size(),z=m+v,v=C(v/m),A=this.checkNearAtoms&&(1<z||this.doPackUnitCell),y=r||q,F=A||y,W=null!=k,B=A||n,x=this.acr.isMolecular?null:this.asc.bsAtoms,K=this.symmetry;r&&(d=this.noSymmetryCount);var r=this.firstAtom+this.noSymmetryCount,D=0>this.asc.firstAtomToBond?
r:this.asc.firstAtomToBond,ta=new JU.P3,P=null,L=W?0.01:1E-4,H="\x00",T=null==x?this.firstAtom:x.nextSetBit(this.firstAtom),E=0;a:for(;E<z;E++)if(!(s&&0==E||this.crystalReaderLatticeOpsOnly&&0<E&&0!=E%this.latticeOp||null!=k&&k.get(E))){for(var S=this.firstAtom+(A?t:q?d:0),M=E>=m?0:0==this.asc.vibScale?K.getSpinOp(E):this.asc.vibScale,O=Math.max(this.firstAtom,null==x?0:x.nextSetBit(0)),X=F,ba=E>=m?C((E-m)/v):E,N=ba+b;O<r;O++){var Q=this.asc.atoms[O];if(null==x||x.get(O)){null==e?K.newSpaceGroupPoint(Q,
E,E>=m?w.get(E-m):null,a,c,f,ta):(K=e.getAtomSymmetry(Q,this.symmetry),K.newSpaceGroupPoint(Q,E,null,a,c,f,ta),P=K.getSpaceGroupOperationCode(E),null!=P&&(H=P.charAt(0),K=e.getSymmetryFromCode(P),0==K.getSpaceGroupOperationCount()&&this.finalizeSymmetry(K)));this.acr.fixFloatPt(ta,1E5);var Y=JU.P3.newP(ta);K.toCartesian(Y,!1);if(this.doPackUnitCell&&(K.toUnitCellRnd(Y,this.ptOffset),ta.setT(Y),K.toFractional(ta,!1),this.acr.fixFloatPt(ta,1E5),!J.adapter.smarter.XtalSymmetry.isWithinSupercell(this.ndims,
ta,this.minXYZ0.x,this.maxXYZ0.x,this.minXYZ0.y,this.maxXYZ0.y,this.minXYZ0.z,this.maxXYZ0.z,this.packingRange)))continue;n&&JS.UnitCell.setSymmetryMinMax(Y,this.rmin,this.rmax);var R=null;if(X){if(y&&(Y.x<this.rmin.x||Y.y<this.rmin.y||Y.z<this.rmin.z||Y.x>this.rmax.x||Y.y>this.rmax.y||Y.z>this.rmax.z))continue;for(var Z=3.4028235E38,fa=this.checkAll?this.asc.ac:S,V=Q.atomName,da=null==P?Q.altLoc:H,ha=T;ha<fa;ha++)if(null==x||x.get(ha)){var ka=h[ha-this.firstAtom];if(null!=ka){ka=Y.distanceSquared(ka);
if(A&&ka<L){if(W){k.set(E);continue a}R=this.asc.atoms[ha];if((null==R.atomName||R.atomName.equals(V))&&R.altLoc==da)break;R=null}q&&(ha<d&&ka<Z)&&(Z=ka)}}if(q&&Z>u)continue}W&&(X=!1);ha=Q.atomSite;if(null!=R)p&&(j[ha]=R.index),R.bsSymmetry.set(N),R.bsSymmetry.set(ba);else{p&&(j[ha]=this.asc.ac);R=Q.copyTo(ta,this.asc);null!=this.asc.bsAtoms&&this.asc.bsAtoms.set(R.index);0!=M&&null!=R.vib&&K.getSpaceGroupOperation(E).rotateSpin(R.vib);if(0>R.part){var aa=Integer.$valueOf(1E3*E+500+R.part);null==
this.disorderMap&&(this.disorderMap=new java.util.Hashtable);Z=this.disorderMap.get(aa);null==Z&&(fa=Integer.$valueOf(R.part),V=null==this.disorderMap.get(fa),0==this.disorderMapMax||122==this.disorderMapMax?this.disorderMapMax=64:90==this.disorderMapMax&&(this.disorderMapMax=96),Z=new Character(V?R.altLoc:String.fromCharCode(++this.disorderMapMax)),this.disorderMap.put(aa,Z),V&&this.disorderMap.put(fa,Z));R.altLoc=Z.charValue()}R.atomSite=ha;null!=P&&(R.altLoc=H);R.bsSymmetry=JU.BSUtil.newAndSetBit(N);
R.bsSymmetry.set(ba);B&&(h[t++]=Y);Q=Q.tensors;if(null!=Q){R.tensors=null;for(ha=Q.size();0<=--ha;)Y=Q.get(ha),null!=Y&&(1==m?R.addTensor(Y.copyTensor(),null,!1):this.addRotatedTensor(R,Y,E,!1,K))}}}}if(p){S=this.asc.bonds;M=this.asc.atoms;for(X=this.asc.bondIndex0;X<this.bondCount0;X++)if(ba=S[X],R=M[ba.atomIndex1],O=M[ba.atomIndex2],!(null==R||null==O||O.atomSetIndex<R.atomSetIndex))if(N=j[R.atomSite],Q=j[O.atomSite],N>Q&&(O=N,N=Q,Q=O),N!=Q&&(N>=D||Q>=D)&&0>this.bondsFound.indexOf(aa="-"+N+","+
Q))this.bondsFound.append(aa),this.asc.addNewBondWithOrder(N,Q,ba.order)}}return t},"~N,~N,~N,~N,~N,~N,~A,J.adapter.smarter.MSInterface,JU.BS,~A");e(b,"setPartProperty",function(){for(var a=this.asc.atomSetCount;0<=--a;){for(var c=D(this.asc.getAtomSetAtomCount(a),0),f=0,d=this.asc.getAtomSetAtomIndex(a),t=c.length;f<t;f++){var b=this.asc.atoms[d++];c[f]=b.part}this.asc.setAtomProperties("part",c,a,!1)}});e(b,"trimToUnitCell",function(a){var c=this.asc.atoms,f=this.updateBSAtoms();if(this.acr.noPack)for(a=
f.nextSetBit(a);0<=a;a=f.nextSetBit(a+1))J.adapter.smarter.XtalSymmetry.removePacking(this.ndims,c[a],this.minXYZ.x,this.maxXYZ.x,this.minXYZ.y,this.maxXYZ.y,this.minXYZ.z,this.maxXYZ.z,this.packingRange)||f.clear(a);else for(a=f.nextSetBit(a);0<=a;a=f.nextSetBit(a+1))J.adapter.smarter.XtalSymmetry.isWithinSupercell(this.ndims,c[a],this.minXYZ.x,this.maxXYZ.x,this.minXYZ.y,this.maxXYZ.y,this.minXYZ.z,this.maxXYZ.z,this.packingRange)||f.clear(a)},"~N");e(b,"updateBSAtoms",function(){var a=this.asc.bsAtoms;
null==a&&(a=this.asc.bsAtoms=JU.BSUtil.newBitSet2(0,this.asc.ac));0>a.nextSetBit(this.firstAtom)&&a.setBits(this.firstAtom,this.asc.ac);return a});e(b,"updateSupercellAtomSites",function(a,c,f){for(var d=c.cardinality(),d=Array(d),t=0,b=f*f,h=c.nextSetBit(0);0<=h;h=c.nextSetBit(h+1)){var e=this.asc.atoms[h],k=new J.adapter.smarter.Atom;k.setT(e);null!=a&&(a.rotTrans(k),JU.SimpleUnitCell.unitizeDimRnd(3,k,f));k.atomSerial=e.atomSite;k.atomSite=e.atomSite;this.symmetry.unitize(k);for(var j=!1,s=0;s<
t;s++){var p=d[s];if(k.atomSerial==p.atomSerial&&k.distanceSquared(p)<b){j=!0;e.atomSite=p.atomSite;break}}j||(e.atomSite=k.atomSite=t,d[t++]=k)}},"JU.M4,JU.BS,~N");e(b,"newFileSymmetry",function(){return new J.adapter.smarter.XtalSymmetry.FileSymmetry});b=M(function(){this.spinFrameRotationMatrix=this.spinFrameExt=this.spinFrameStr=null;this.nSpins=0;this.spinPointGroupAxesXYZ=null;this.doNormalizeSpinFrame=!1;S(this,arguments)},J.adapter.smarter.XtalSymmetry,"FileSymmetry",JS.Symmetry);e(b,"mapSpins",
function(a){this.spaceGroup.mapSpins(a)},"java.util.Map");e(b,"addMagLatticeVectors",function(a){return this.spaceGroup.addMagLatticeVectors(a)},"JU.Lst");e(b,"addSpinLattice",function(a,c){this.spaceGroup.addSpinLattice(a,c)},"JU.Lst,java.util.Map");e(b,"setSpinList",function(a){return this.spaceGroup.setSpinList(a)},"~S");e(b,"createSpaceGroup",function(a,c,f,d){this.spaceGroup=JS.SpaceGroup.createSpaceGroup(a,c,f,d);null!=this.spaceGroup&&JU.Logger.debugging&&JU.Logger.debug("using generated space group "+
this.spaceGroup.dumpInfo());return null!=this.spaceGroup},"~N,~S,~O,~N");e(b,"fcoord",function(a){return JS.SymmetryOperation.fcoord(a," ")},"JU.T3");e(b,"getRotTransArrayAndXYZ",function(a,c){JS.SymmetryOperation.getRotTransArrayAndXYZ(null,a,c,!1,!0,!1,null)},"~S,~A");e(b,"getSpaceGroupOperationCode",function(a){return this.spaceGroup.symmetryOperations[a].subsystemCode},"~N");e(b,"getTensor",function(a,c){if(null==c)return null;null==this.unitCell&&(this.unitCell=JS.UnitCell.fromParams(D(-1,[1,
1,1,90,90,90]),!0,1E-4));return this.unitCell.getTensor(a,c)},"JV.Viewer,~A");e(b,"getSpaceGroupTitle",function(){var a=this.getSpaceGroupName();return a.startsWith("cell=")?a:null!=this.spaceGroup?this.spaceGroup.asString():null!=this.unitCell&&0<this.unitCell.name.length?"cell="+this.unitCell.name:""});e(b,"setPrecision",function(a){this.unitCell.setPrecision(a)},"~N");e(b,"toFractionalM",function(a){this.$isBio||this.unitCell.toFractionalM(a)},"JU.M4");e(b,"toUnitCellRnd",function(a,c){this.unitCell.toUnitCellRnd(a,
c)},"JU.T3,JU.T3");e(b,"twelfthify",function(a){this.unitCell.twelfthify(a)},"JU.P3");e(b,"getConventionalUnitCell",function(a,c){return null==this.unitCell||null==a?null:this.unitCell.getConventionalUnitCell(a,c)},"~S,JU.M3");e(b,"getSpaceGroupIndex",function(){return this.spaceGroup.getIndex()});e(b,"getUnitCellF2C",function(){return this.unitCell.getF2C()});e(b,"addInversion",function(){var a=this.spaceGroup.symmetryOperations,c=new JU.M4;c.m00=c.m11=c.m22=-1;c.m33=1;for(var f=this.getSpaceGroupOperationCount(),
d=new JU.M4,t=0;t<f;t++){d.mul2(c,a[t]);var b=JS.SymmetryOperation.getXYZFromMatrix(d,!0,!0,!1);this.addSpaceGroupOperation(b,0)}});e(b,"rotateAxes",function(a,c,f,d){return 0==a?c:this.spaceGroup.symmetryOperations[a].rotateAxes(c,this.unitCell,f,d)},"~N,~A,JU.P3,JU.M3");e(b,"preSymmetryFinalizeMoments",function(a,c,f,d){this.spinFrameExt=f;this.spinFrameToCartXYZ=null;f=this.getSpinExt(this.spinFrameExt,"version");this.doNormalizeSpinFrame=null==f?a.checkFilterKey("SPINNORM"):0>f.compareTo("0.13.0");
System.out.println("doNormalizeSpinFrame="+this.doNormalizeSpinFrame);f=a.unitCellParams[0];var t=a.unitCellParams[1],b=a.unitCellParams[2];this.spinFrameStr=null;if(null!=this.spinFrameExt){var h=this.fixSpinFrameInfo(this.spinFrameExt);this.spinFrameStr=this.evaluateSpinFrameStr(a,h,f,t,b);d.put("spin",this.spinFrameStr);h=this.preSymmetrySetSpinFrameMatrices(a,this.spinFrameStr);f=h[1].length();t=h[2].length();b=h[3].length();this.spinFrameToCartXYZ=new JU.M3;for(d=4;0<--d;)this.spinFrameToCartXYZ.setColumnV(d-
1,h[d]);null!=this.spinFrameRotationMatrix&&this.spinFrameToCartXYZ.mul2(this.spinFrameRotationMatrix,this.spinFrameToCartXYZ);this.spinPointGroupAxesXYZ=E(-1,[new JU.P3,new JU.P3,new JU.P3]);this.spinPointGroupAxesXYZ[0].setP(h[1]).scale(1/f);this.spinPointGroupAxesXYZ[1].setP(h[2]).scale(1/t);this.spinPointGroupAxesXYZ[2].setP(h[3]).scale(1/b);System.out.println("XtalSymmetry spinFramePp=\n "+this.spinFrameStr+"\nrotation=\n "+this.spinFrameRotationMatrix+"\nspinFrameCartXYZ=\n "+this.spinFrameToCartXYZ);
null!=this.spinFrameRotationMatrix&&c.setCurrentModelInfo("spinFrameRotationMatrix",this.spinFrameRotationMatrix);c.setCurrentModelInfo("pointGroupAxes",this.spinPointGroupAxesXYZ)}f=JU.P3.new3(1/f,1/t,1/b);t=c.getAtomSetAtomIndex(c.iSet);b=new JU.P3;for(d=c.ac;--d>=t;)h=c.atoms[d].vib,null!=h&&(h.scaleT(f),h.isFractional&&0==h.magMoment&&(null==this.unitCell&&this.setUnitCellFromParams(a.unitCellParams,!1,a.cellSlop),this.toCartesian(b.setP(h),!0),h.magMoment=b.length()))},"J.adapter.smarter.AtomSetCollectionReader,J.adapter.smarter.AtomSetCollection,java.util.Map,java.util.Map");
e(b,"fixSpinFrameInfo",function(a){for(var c=new JU.BS,f="",d=0;4>d;d++)a.containsKey(J.adapter.smarter.XtalSymmetry.FileSymmetry.transformTags[d])&&c.set(d);1<c.cardinality()&&c.clearBits(0,c.length()-1);for(d=0;4>d;d++)c.get(d)||null!=a.remove(J.adapter.smarter.XtalSymmetry.FileSymmetry.transformTags[d])&&(f+="Redundant spin transform removed: "+J.adapter.smarter.XtalSymmetry.FileSymmetry.transformTags[d]+"\n");c=Math.max(0,c.nextSetBit(0));d=a.get(J.adapter.smarter.XtalSymmetry.FileSymmetry.transformTags[c]);
null==d?(c=3,d="a,b,c"):a.containsKey("ignoreForCollinear")?(f="Structure is collinear, but spinFrame is present. Spin frame "+d+" ignored; using 'a,b,c'\n",c=3,d="a,b,c"):a.containsKey("flagForCollinear")&&!d.equals("a,b,c")&&(f="Structure is collinear, but spinFrame is present. Collinear nature ignored. Spin frame "+d+" is being used\n");d=J.adapter.smarter.XtalSymmetry.FileSymmetry.transformTags[c]+":"+d;System.out.println("XtalSymmetry using "+d);0<f.length&&System.err.print(f);return d=d.substring(d.lastIndexOf("_",
d.indexOf(":"))+1)},"java.util.Map");e(b,"evaluateSpinFrameStr",function(a,c,f,d,t){var b=c.indexOf(":"),h=c.substring(0,b);c=c.substring(b+1);switch(h){case "abc":case "matrix":return 0<=c.indexOf("mod(")&&(c=JU.PT.rep(c,"mod(a)","("+f+")"),c=JU.PT.rep(c,"mod(b)","("+d+")"),c=JU.PT.rep(c,"mod(c)","("+t+")")),a=JU.SimpleUnitCell.parseSimpleMath(a.vwr,c),"["==a.charAt(0)&&(c=JU.M4.newM4(null),c.setRotationScale(JU.Escape.unescapeMatrix(a)),a=JS.SymmetryOperation.getTransformABCd(c,!1,!0)),a;case "hex":case "cartn":return h.substring(0,
1)+"::"+c.$replace(","," ")}return null},"J.adapter.smarter.AtomSetCollectionReader,~S,~N,~N,~N");e(b,"preSymmetrySetSpinFrameMatrices",function(a,c){System.out.println("XtalSymmetry.setSpinFrameMatrices using frame "+c);this.setUnitCellFromParams(a.unitCellParams,!1,a.cellSlop);if(1==c.indexOf("::")){var f=c.substring(3),f=JU.PT.parseFloatArray(f.substring(1,f.length-1));this.spinFrameRotationMatrix=J.adapter.smarter.XtalSymmetry.FileSymmetry.fromEulerZXZ(f[0],f[1],f[2]);System.out.println("XS "+
this.spinFrameRotationMatrix);c=null}f=JS.UnitCell.getMatrixAndUnitCell(a.vwr,this.unitCell,c,null);this.doNormalizeSpinFrame&&(f[1].normalize(),f[2].normalize(),f[3].normalize());var d=this.getSpinExt(this.spinFrameExt,"axis");if(null!=d){var t=JU.PT.parseFloat(this.getSpinExt(this.spinFrameExt,"angle"));Float.isNaN(t)||(d=this.getAxis(d),null!=d&&(a.addMoreUnitCellInfo("rotation_axis_xyz="+d.x+","+d.y+","+d.z),this.spinFrameRotationMatrix=(new JU.M3).setAA(JU.A4.newVA(d,0.017453292519943295*t))))}return f},
"J.adapter.smarter.AtomSetCollectionReader,~S");b.fromEulerZXZ=e(b,"fromEulerZXZ",function(a,c,f){a*=0.017453292519943295;c*=0.017453292519943295;f*=0.017453292519943295;var d=Math.cos(a);a=Math.sin(a);var t=Math.cos(c);c=Math.sin(c);var b=Math.cos(f);f=Math.sin(f);var h=new JU.M3;h.m00=d*b-t*a*f;h.m01=-d*f-t*b*a;h.m02=a*c;h.m10=b*a+d*t*f;h.m11=d*t*b-a*f;h.m12=-d*c;h.m20=c*f;h.m21=b*c;h.m22=t;return h},"~N,~N,~N");e(b,"getVariableAxis",function(a){var c=JU.P3.new3(1,1,1);a.$replace("n"," ").$replace("u",
"x").$replace("v","y").$replace("w","z");this.convertTransform(a,null).rotate(c);return D(-1,[c.x,c.y,c.z])},"~S");e(b,"getAxis",function(a){var c=null,f=null,d=!1;0<=a.indexOf("n")?f=this.getVariableAxis(a):a.startsWith("[")?(a=a.$replace("["," ").$replace("]"," ").$replace(","," ").trim(),a=JU.PT.rep(a,"  "," "),c=JU.PT.split(a," "),d=!0):c=a.$plit(",");if(null==f&&3==c.length){f=D(3,0);for(a=3;0<=--a;)if(f[a]=JU.PT.parseFloat(c[a].trim()),Float.isNaN(f[a]))return null}if(null==f)return null;c=
JU.V3.new3(f[0],f[1],f[2]);d||this.unitCell.toCartesian(c,!0);c.normalize();return c},"~S");e(b,"getSpinExt",function(a,c){return null==a?null:a.get(c)},"java.util.Map,~S");e(b,"postSymmetrySetMagneticMoments",function(a,c){if(0<this.nSpins)return this.nSpins;for(var f=a.getAtomSetAtomIndex(a.iSet),d=a.ac;--d>=f;){var t=a.atoms[d].vib;null!=t&&(0<t.modDim?(t.setMoment(),this.nSpins++):(t=t.clone(),null!=this.spinFrameToCartXYZ?this.spinFrameToCartXYZ.rotate(t):c||this.toCartesian(t,!0),0<t.lengthSquared()?
(0!=t.magMoment&&t.scale(t.magMoment/t.length()),this.nSpins++):0==t.modDim&&(t=null),a.atoms[d].vib=t))}return this.nSpins},"J.adapter.smarter.AtomSetCollection,~B");b.transformTags=E(-1,["spinframe_orientation_hex","spinframe_orientation_cartn","transform_spinframe_p_matrix","transform_spinframe_p_abc"])});aa("JS");$(["J.api.SymmetryInterface"],"JS.Symmetry","java.util.Hashtable JU.AU $.BS $.JSJSONParser $.Lst $.M4 $.P3 $.PT $.Quat $.Rdr $.SB J.api.Interface J.bspt.Bspt JS.PointGroup $.SpaceGroup $.SymmetryInfo $.SymmetryOperation $.UnitCell JU.BSUtil $.Escape $.Logger $.SimpleUnitCell JV.FileManager".split(" "),
function(){var b=M(function(){this.unitCell=this.spaceGroup=null;this.$isBio=!1;this.spinFrameToCartXYZ=this.transformMatrix=this.desc=this.symmetryInfo=this.cip=this.pointGroup=this.spinSym=this.vwr=this.id=null;S(this,arguments)},JS,"Symmetry",null,J.api.SymmetryInterface);m(b,"getSymopList",function(a){for(var c=this.spaceGroup.operationCount,f=Array(c),d=0;d<c;d++)f[d]=""+this.getSpaceGroupXyzOriginal(d,a);return f},"~B");m(b,"isBio",function(){return this.$isBio});m(b,"setPointGroup",function(a,
c,f,d,t,b,h,e,k,j){this.pointGroup=JS.PointGroup.getPointGroup(null==c?null:c.pointGroup,f,d,t,b,h,e,k,j,a.getBoolean(603979956),a.getScalePixelsPerAngstrom(!1));return this},"JV.Viewer,J.api.SymmetryInterface,JU.T3,~A,JU.BS,~B,~N,~N,~N,~B");m(b,"getPointGroupName",function(){return this.pointGroup.getName()});m(b,"getPointGroupInfo",function(a,c,f,d,t,b){return this.pointGroup.getInfo(a,null,null,c,f,d,t,b)},"~N,~S,~B,~S,~N,~N");m(b,"setSpaceGroup",function(a){null==this.spaceGroup&&(this.spaceGroup=
JS.SpaceGroup.getNull(!0,a,!1))},"~B");m(b,"addSpaceGroupOperation",function(a,c){return this.spaceGroup.addSymmetry(a,c,!0)},"~S,~N");m(b,"addBioMoleculeOperation",function(a,c){this.$isBio=this.spaceGroup.isBio=!0;return this.spaceGroup.addSymmetry((c?"!":"")+"[[bio"+a,0,!1)},"JU.M4,~B");m(b,"setLattice",function(a){this.spaceGroup.setLatticeParam(a)},"~N");m(b,"getSpaceGroup",function(){return this.spaceGroup});m(b,"getSpaceGroupInfoObj",function(a,c,f,d){var t=!1;switch(a){case "list":return this.getSpaceGroupList(c);
case "opsCtr":return this.spaceGroup.getOpsCtr(c);case "itaTransform":case "itaNumber":t=!0;case "nameToXYZList":case "itaIndex":case "hmName":case "hmNameShort":f=null;if(null!=c){if(c.endsWith("'"))return c=JS.SpaceGroup.convertWyckoffHMCleg(c,null),t&&null!=c?(f=c.indexOf(":"),"itaNumber".equals(a)?c.substring(0,f):c.substring(f+1)):null;if(1<c.length&&"/"==c.charAt(1)){f=JS.SpaceGroup.getExplicitSpecialGroupType(c);f=JS.Symmetry.getSpecialSettingInfo(this.vwr,c,f);if(null!=f)switch(a){case "itaData":return f;
case "hmName":case "hmNameShort":return f.get("hm");case "nameToXYZList":return f.get("gp");case "itaIndex":return""+f.get("sg")+"."+f.get("set");case "itaTransform":return f.get("trm");case "itaNumber":return""+f.get("sg")}return null}c.startsWith("ITA/")&&(c=c.substring(4));f=JS.SpaceGroup.determineSpaceGroupN(c);null==f&&"nameToXYZList".equals(a)&&(f=JS.SpaceGroup.createSpaceGroupN(c,!0))}else null!=this.spaceGroup?f=this.spaceGroup:null!=this.symmetryInfo&&(f=this.symmetryInfo.getDerivedSpaceGroup());
switch(null==f?"":a){case "hmName":return f.getHMName();case "hmNameShort":return f.getHMNameShort();case "nameToXYZList":a=new JU.Lst;f.setFinalOperationsSafely();t=0;for(c=f.getOperationCount();t<c;t++)a.addLast(f.getOperation(t).xyz);return a;case "itaIndex":return f.getItaIndex();case "itaTransform":return f.itaTransform;case "itaNumber":return f.itaNumber}return null;default:return JS.SpaceGroup.getInfo(this.spaceGroup,a,c,f,d)}},"~S,~O,~B,~B");e(b,"getSpaceGroupList",function(a){for(var c=new JU.SB,
f=this.getSpaceGroupJSON("ITA","ALL",0),d=0,t=f.size();d<t;d++){var b=f.get(d),h=b.get("sg");(null==a||h.equals(a))&&c.appendO(h).appendC(".").appendO(b.get("set")).appendC("\t").appendO(b.get("hm")).appendC("\t").appendO(b.get("sg")).appendC(":").appendO(b.get("trm")).appendC("\n")}return c.toString()},"Integer");m(b,"getLatticeDesignation",function(){return this.spaceGroup.getShelxLATTDesignation()});m(b,"setFinalOperations",function(a,c,f,d,t,b,h){null!=c&&(c.startsWith("bio")||0<=c.indexOf(" *("))&&
this.spaceGroup.setName(c);var e="unspecified!".equals(c);e&&(h="calculated");if(null!=h){var k=new JU.Lst;k.addLast(this.spaceGroup.symmetryOperations[0]);for(var j=1;j<this.spaceGroup.operationCount;j++)(e||h.contains(" "+(j+1)+" "))&&k.addLast(this.spaceGroup.symmetryOperations[j]);this.spaceGroup=JS.SpaceGroup.createSpaceGroup(-1,c+" *("+h.trim()+")",k,-1)}this.spaceGroup.setFinalOperationsForAtoms(a,f,d,t,b)},"~N,~S,~A,~N,~N,~B,~S");m(b,"getSpaceGroupOperation",function(a){return null==this.spaceGroup||
null==this.spaceGroup.symmetryOperations||a>=this.spaceGroup.symmetryOperations.length?null:null==this.spaceGroup.finalOperations?this.spaceGroup.symmetryOperations[a]:this.spaceGroup.finalOperations[a]},"~N");m(b,"getSpaceGroupXyzOriginal",function(a,c){return this.spaceGroup.getXyz(a,c)},"~N,~B");m(b,"newSpaceGroupPoint",function(a,c,f,d,t,b,h){null==f&&null==this.spaceGroup.finalOperations&&(f=this.spaceGroup.symmetryOperations[c],f.doFinalize());JS.SymmetryOperation.rotateAndTranslatePoint(null==
f?this.spaceGroup.finalOperations[c]:f,a,d,t,b,h)},"JU.P3,~N,JU.M4,~N,~N,~N,JU.P3");m(b,"getSpinOp",function(a){return this.spaceGroup.symmetryOperations[a].getMagneticOp()},"~N");m(b,"getLatticeOp",function(){return this.spaceGroup.latticeOp});m(b,"getLatticeCentering",function(){return JS.SymmetryOperation.getLatticeCentering(this.getSymmetryOperations())});m(b,"getOperationRsVs",function(a){return(null==this.spaceGroup.finalOperations?this.spaceGroup.symmetryOperations:this.spaceGroup.finalOperations)[a].rsvs},
"~N");m(b,"getSiteMultiplicity",function(a){return this.spaceGroup.getSiteMultiplicity(a,this.unitCell)},"JU.P3");m(b,"getSpaceGroupName",function(){return null!=this.spaceGroup?this.spaceGroup.getName():null!=this.symmetryInfo?this.symmetryInfo.sgName:null!=this.unitCell&&0<this.unitCell.name.length?"cell="+this.unitCell.name:""});m(b,"geCIFWriterValue",function(a){return null==this.spaceGroup?null:this.spaceGroup.getCIFWriterValue(a,this)},"~S");m(b,"getLatticeType",function(){return null!=this.symmetryInfo?
this.symmetryInfo.latticeType:null==this.spaceGroup?"P":this.spaceGroup.latticeType});m(b,"getIntTableNumber",function(){return null!=this.symmetryInfo?this.symmetryInfo.intlTableNo:null==this.spaceGroup?null:this.spaceGroup.itaNumber});m(b,"getIntTableIndex",function(){return null!=this.symmetryInfo?this.symmetryInfo.intlTableIndexNdotM:null==this.spaceGroup?null:this.spaceGroup.getItaIndex()});m(b,"getIntTableTransform",function(){return null!=this.symmetryInfo?this.symmetryInfo.intlTableTransform:
null==this.spaceGroup?null:this.spaceGroup.itaTransform});m(b,"getSpaceGroupClegId",function(){return null!=this.symmetryInfo?this.symmetryInfo.getClegId():this.spaceGroup.getClegId()});m(b,"getSpaceGroupJmolId",function(){return null!=this.symmetryInfo?this.symmetryInfo.intlTableJmolId:null==this.spaceGroup?null:this.spaceGroup.jmolId});m(b,"getCoordinatesAreFractional",function(){return null==this.symmetryInfo||this.symmetryInfo.coordinatesAreFractional});m(b,"getCellRange",function(){return null==
this.symmetryInfo?null:this.symmetryInfo.cellRange});m(b,"getSymmetryInfoStr",function(){if(null!=this.symmetryInfo)return this.symmetryInfo.infoStr;if(null==this.spaceGroup)return"";(this.symmetryInfo=new JS.SymmetryInfo(this.spaceGroup)).setSymmetryInfoFromModelkit(this.spaceGroup);return this.symmetryInfo.infoStr});m(b,"getSpaceGroupOperationCount",function(){return null!=this.symmetryInfo&&null!=this.symmetryInfo.symmetryOperations?this.symmetryInfo.symmetryOperations.length:null!=this.spaceGroup?
null!=this.spaceGroup.finalOperations?this.spaceGroup.finalOperations.length:this.spaceGroup.operationCount:0});m(b,"getSymmetryOperations",function(){if(null!=this.symmetryInfo)return this.symmetryInfo.symmetryOperations;null==this.spaceGroup&&(this.spaceGroup=JS.SpaceGroup.getNull(!0,!1,!0));this.spaceGroup.setFinalOperationsSafely();return this.spaceGroup.finalOperations});m(b,"getAdditionalOperationsCount",function(){return null!=this.symmetryInfo&&null!=this.symmetryInfo.symmetryOperations&&
null!=this.symmetryInfo.getAdditionalOperations()?this.symmetryInfo.additionalOperations.length:null!=this.spaceGroup&&null!=this.spaceGroup.finalOperations?this.spaceGroup.getAdditionalOperationsCount():0});m(b,"getAdditionalOperations",function(){if(null!=this.symmetryInfo)return this.symmetryInfo.getAdditionalOperations();this.getSymmetryOperations();return this.spaceGroup.getAdditionalOperations()});m(b,"isSimple",function(){return null==this.spaceGroup&&(null==this.symmetryInfo||null==this.symmetryInfo.symmetryOperations)});
m(b,"haveUnitCell",function(){return null!=this.unitCell});m(b,"setUnitCellFromParams",function(a,c,f){null==a&&(a=D(-1,[1,1,1,90,90,90]));this.unitCell=JS.UnitCell.fromParams(a,c,f);return this},"~A,~B,~N");m(b,"unitCellEquals",function(a){return a.unitCell.isSameAs(this.unitCell.getF2C())},"J.api.SymmetryInterface");m(b,"isSymmetryCell",function(a){a=a.unitCell;var c=!a.isStandard()?null:null!=this.symmetryInfo?this.symmetryInfo.spaceGroupF2C:this.unitCell.getF2C();a=a.isSameAs(c);null!=this.symmetryInfo&&
this.symmetryInfo.setIsCurrentCell(a)&&this.setUnitCellFromParams(this.symmetryInfo.spaceGroupF2CParams,!1,NaN);return a},"J.api.SymmetryInterface");m(b,"getUnitCellState",function(){return null==this.unitCell?"":this.unitCell.getState()});m(b,"getMoreInfo",function(){return this.unitCell.getMoreInfo()});m(b,"initializeOrientation",function(a){this.unitCell.initOrientation(a)},"JU.M3");m(b,"unitize",function(a){this.unitCell.unitize(a)},"JU.T3");m(b,"toUnitCell",function(a,c){this.unitCell.toUnitCell(a,
c)},"JU.T3,JU.T3");m(b,"toSupercell",function(a){return this.unitCell.toSupercell(a)},"JU.P3");e(b,"toFractional",function(a,c){this.$isBio||this.unitCell.toFractional(a,c)},"JU.T3,~B");m(b,"toCartesian",function(a,c){this.$isBio||this.unitCell.toCartesian(a,c)},"JU.T3,~B");m(b,"getUnitCellParams",function(){return this.unitCell.getUnitCellParams()});m(b,"getUnitCellAsArray",function(a){return this.unitCell.getUnitCellAsArray(a)},"~B");m(b,"getUnitCellVerticesNoOffset",function(){return this.unitCell.getVertices()});
m(b,"getCartesianOffset",function(){return this.unitCell.getCartesianOffset()});m(b,"getFractionalOffset",function(a){var c=this.unitCell.getFractionalOffset();return a&&null!=c&&c.x==x(c.x)&&c.y==x(c.y)&&c.z==x(c.z)?null:c},"~B");m(b,"setOffsetPt",function(a){this.unitCell.setOffset(a)},"JU.T3");m(b,"setOffset",function(a){var c=new JU.P3;JU.SimpleUnitCell.ijkToPoint3f(a,c,0,0);this.unitCell.setOffset(c)},"~N");m(b,"getUnitCellMultiplier",function(){return this.unitCell.getUnitCellMultiplier()});
m(b,"getUnitCellMultiplied",function(){var a=this.unitCell.getUnitCellMultiplied();if(a===this.unitCell)return this;var c=(new JS.Symmetry).setViewer(this.vwr,"getUCM");c.unitCell=a;return c});m(b,"getCanonicalCopy",function(a,c){return this.unitCell.getCanonicalCopy(a,c)},"~N,~B");m(b,"getUnitCellInfoType",function(a){return this.unitCell.getInfo(a)},"~N");m(b,"getUnitCellInfoStr",function(a){return this.unitCell.getInfoStr(a)},"~S");m(b,"getUnitCellInfo",function(a){return null==this.unitCell?null:
this.unitCell.dumpInfo(!1,a)},"~B");m(b,"isSlab",function(){return this.unitCell.isSlab()});m(b,"isPolymer",function(){return this.unitCell.isPolymer()});e(b,"getUnitCellVectors",function(){return this.unitCell.getUnitCellVectors()});m(b,"getUnitCell",function(a,c,f){if(null==a)return null;this.unitCell=JS.UnitCell.fromOABC(a,c);null!=f&&(this.unitCell.name=f);return this},"~A,~B,~S");m(b,"isSupercell",function(){return this.unitCell.isSupercell()});m(b,"notInCentroid",function(a,c,f){try{var d=new JU.BS,
t=c.nextSetBit(0),b=a.getMolecules(),h=b.length,e=a.at,k=b[h-1].firstAtomIndex==a.am[e[t].mi].firstAtomIndex,j=new JU.P3,s=f[6]/100;a=0!=s;a:for(;0<=--h&&c.get(b[h].firstAtomIndex);){var p=b[h].atomList;j.set(0,0,0);for(var t=0,u=p.nextSetBit(0);0<=u;u=p.nextSetBit(u+1))if(k||a)if(j.setT(e[u]),this.isNotCentroid(j,1,f,s))k&&d.set(u);else{if(!k)continue a}else j.add(e[u]),t++;(a||0<t&&this.isNotCentroid(j,t,f,0))&&d.or(p)}return d}catch(r){if(da(r,Exception))return null;throw r;}},"JM.ModelSet,JU.BS,~A");
e(b,"isNotCentroid",function(a,c,f,d){a.scale(1/c);this.toFractional(a,!1);return 0!=d?(c=0<=d?d:5E-6,a.x+c<=f[0]||a.x-c>f[3]||a.y+c<=f[1]||a.y-c>f[4]||a.z+c<=f[2]||a.z-c>f[5]):a.x+5E-6<=f[0]||a.x+5E-5>f[3]||a.y+5E-6<=f[1]||a.y+5E-5>f[4]||a.z+5E-6<=f[2]||a.z+5E-5>f[5]},"JU.P3,~N,~A,~N");e(b,"getDesc",function(a){return null==a?null==JS.Symmetry.nullDesc?JS.Symmetry.nullDesc=J.api.Interface.getInterface("JS.SymmetryDesc",null,"modelkit"):JS.Symmetry.nullDesc:(null==this.desc?this.desc=J.api.Interface.getInterface("JS.SymmetryDesc",
a.vwr,"eval"):this.desc).set(a)},"JM.ModelSet");m(b,"getSymmetryInfoAtom",function(a,c,f,d,t,b,h,e,k,j,s,p,u){return this.getDesc(a).getSymopInfo(c,f,d,t,b,h,e,k,j,s,p,u)},"JM.ModelSet,~N,~S,~N,JU.P3,JU.P3,JU.P3,~S,~N,~N,~N,~N,~A");m(b,"getSpaceGroupInfo",function(a,c,f,d,t){var b=null==c;if(null==c){0>f&&(f=a.vwr.am.cmi);var h=a.getModelAuxiliaryInfo(f);null!=h&&(c=h.get("spaceGroup"))}h=null;null!=t&&(h=(new JS.Symmetry).setViewer(this.vwr,"getSGI").setUnitCellFromParams(t,!1,NaN));return this.getDesc(a).getSpaceGroupInfo(this,
f,c,0,null,null,null,0,-1,d,b,0,h,null)},"JM.ModelSet,~S,~N,~B,~A");m(b,"getV0abc",function(a,c){var f=null,f=a&&a[0]?a[0]:null;return(null!=f?L(f,"JU.T3"):L(a,Array))?a:JS.UnitCell.getMatrixAndUnitCell(this.vwr,this.unitCell,a,c)},"~O,JU.M4");m(b,"getQuaternionRotation",function(a){return null==this.unitCell?null:this.unitCell.getQuaternionRotation(a)},"~S");m(b,"getFractionalOrigin",function(){return this.unitCell.getFractionalOrigin()});m(b,"getState",function(a,c,f){var d=null!=a.getInfo(c,"spaceGroupAssigned"),
t=this.getFractionalOffset(!1),b=!1;if(null!=t&&(0!=t.x||0!=t.y||0!=t.z))f.append("; set unitcell ").append(JU.Escape.eP(t)),b=!0;t=this.getUnitCellMultiplier();null!=t&&(f.append("; set unitcell ").append(JU.SimpleUnitCell.escapeMultiplier(t)),b=!0);t=a.getInfo(c,"spaceGroup");d&&null!=t&&(b=t.indexOf("#"),0<=b&&(t=t.substring(b+1)),b="\n UNITCELL "+JU.Escape.e(a.getUnitCell(c).getUnitCellVectors()),f.append(b),f.append("\n MODELKIT SPACEGROUP "+JU.PT.esc(t)),f.append(b),b=!0);a=a.getInfo(c,"spinRotationMatrixApplied");
null!=a&&(f.append("\n rotate VECTORS "+JU.Quat.newM(a)),b=!0);return b},"JM.ModelSet,~N,JU.SB");m(b,"getIterator",function(a,c,f,d){return J.api.Interface.getInterface("JS.UnitCellIterator",a,"script").set(this,c,a.ms.at,f,d)},"JV.Viewer,JM.Atom,JU.BS,~N");m(b,"toFromPrimitive",function(a,c,f,d){null==this.unitCell&&(this.unitCell=JS.UnitCell.fromOABC(f,!1));return this.unitCell.toFromPrimitive(a,c,f,d)},"~B,~S,~A,JU.M3");m(b,"generateCrystalClass",function(a){if(null==this.symmetryInfo||!this.symmetryInfo.isCurrentCell)return null;
var c=this.getSymmetryOperations(),f=new JU.Lst,d=null==a,t=0,b=0,h=0;d?(t=2.718281828459045,b=3.141592653589793,h=Math.log10(2E3),a=JU.P3.new3(t+1,b+2,h+3)):a=JU.P3.newP(a);if(null==c||null==this.unitCell)f.addLast(a);else{this.unitCell.toFractional(a,!0);var e=null,k=null;d&&(e=JU.P3.new3(b+4,h+5,t+6),this.unitCell.toFractional(e,!0),k=JU.P3.new3(h+7,t+8,b+9),this.unitCell.toFractional(k,!0));var b=new J.bspt.Bspt(3,0),h=b.allocateCubeIterator(),t=new JU.P3,j=c.length;a:for(;0<=--j;){c[j].rotate2(a,
t);h.initialize(t,0.001,!1);if(h.hasMoreElements())continue a;var s=JU.P3.newP(t);f.addLast(s);b.addTuple(s);d&&(null!=k&&(c[j].rotate2(k,t),f.addLast(JU.P3.newP(t))),null!=e&&(c[j].rotate2(e,t),f.addLast(JU.P3.newP(t))))}for(c=f.size();0<=--c;)t=f.get(c),d&&t.scale(0.5),this.unitCell.toCartesian(t,!0)}return f},"JU.P3");m(b,"calculateCIPChiralityForAtoms",function(a,c){a.setCursor(3);var f=this.getCIPChirality(a),d=a.getBoolean(603979960)?"CIPData":"CIPDataTracker",d=J.api.Interface.getInterface("JS."+
d,a,"script").set(a,c);d.setRule6Full(a.getBoolean(603979823));f.getChiralityForAtoms(d);a.setCursor(0)},"JV.Viewer,JU.BS");m(b,"calculateCIPChiralityForSmiles",function(a){this.vwr.setCursor(3);var c=this.getCIPChirality(this.vwr);a=J.api.Interface.getInterface("JS.CIPDataSmiles",this.vwr,"script").setAtomsForSmiles(this.vwr,a);c.getChiralityForAtoms(a);this.vwr.setCursor(0);return a.getSmilesChiralityArray()},"~S");e(b,"getCIPChirality",function(a){return null==this.cip?this.cip=J.api.Interface.getInterface("JS.CIPChirality",
a,"script"):this.cip},"JV.Viewer");m(b,"getUnitCellInfoMap",function(){return null==this.unitCell?null:this.unitCell.getInfo()});m(b,"setUnitCell",function(a){this.unitCell=JS.UnitCell.cloneUnitCell(a.unitCell)},"J.api.SymmetryInterface");m(b,"findSpaceGroup",function(a,c,f,d,t,b){return J.api.Interface.getInterface("JS.SpaceGroupFinder",this.vwr,"eval").findSpaceGroup(this.vwr,a,c,f,d,t,this,b)},"JU.BS,~S,~A,JU.T3,~A,~N");m(b,"setSpaceGroupName",function(a){this.clearSymmetryInfo();null!=this.spaceGroup&&
this.spaceGroup.setName(a)},"~S");m(b,"setSpaceGroupTo",function(a){L(a,"JS.Symmetry")?(this.spaceGroup=a.spaceGroup,this.symmetryInfo=a.symmetryInfo,null==this.spaceGroup&&null!=this.symmetryInfo&&(this.spaceGroup=this.symmetryInfo.fileSpaceGroup)):this.spaceGroup=L(a,"JS.SpaceGroup")?a:JS.SpaceGroup.getSpaceGroupFromJmolClegOrITA(this.vwr,a.toString());this.clearSymmetryInfo()},"~O");e(b,"clearSymmetryInfo",function(){null!=this.symmetryInfo&&(this.symmetryInfo=null)});m(b,"removeDuplicates",function(a,
c,f){var d=this.unitCell,t=a.at;a=a.occupancies;for(var b=null!=a,h=Array(c.length()),e=c.nextSetBit(0);0<=e;e=c.nextSetBit(e+1)){var k=h[e]=JU.P3.newP(t[e]);d.toFractional(k,!1);f?d.unitizeRnd(k):d.unitize(k)}for(e=c.nextSetBit(0);0<=e;e=c.nextSetBit(e+1)){f=t[e];k=h[e];f=f.getAtomicAndIsotopeNumber();for(var d=b?a[e]:0,j=c.nextSetBit(e+1);0<=j;j=c.nextSetBit(j+1))f!=t[j].getAtomicAndIsotopeNumber()||b&&d!=a[j]||1.96E-6>k.distanceSquared(h[j])&&c.clear(j)}return c},"JM.ModelSet,JU.BS,~B");m(b,"getPeriodicity",
function(){return null==this.spaceGroup?7:this.spaceGroup.periodicity});m(b,"getDimensionality",function(){return null==this.spaceGroup?3:this.spaceGroup.nDim});m(b,"getGroupType",function(){return null==this.spaceGroup?0:this.spaceGroup.groupType});m(b,"getEquivPoints",function(a,c,f){var d=this.getSymmetryOperations();return null==d||null==this.unitCell?null:this.unitCell.getEquivalentPoints(a,c,d,new JU.Lst,0,0,0,this.getPeriodicity(),f)},"JU.Point3fi,~S,~N");m(b,"getEquivPointList",function(a,
c,f,d,t,b){var h=null==f?this.getSymmetryOperations():f,e=0<=c.indexOf("newpt"),k=0<=c.indexOf("zapped"),j=t.size(),s=0<=c.indexOf("tofractional");if(0>c.indexOf("fromfractional"))for(var p=0;p<t.size();p++)this.toFractional(t.get(p),!1);c+=",fromfractional,tofractional";var u=0<a?0:j,r=a==j,q=0<a?a:j;r&&(a--,q--);k&&(q=0);var n=0<a?t.get(a):null;f=null==f?q:u;if(null!=h||null!=this.unitCell)for(var m=this.getPeriodicity(),p=a;p<j;p++)this.unitCell.getEquivalentPoints(t.get(p),c,h,t,u,q,f,m,d);!k&&
(t.size()==a||t.get(a)!==n||r||e)&&j--;for(p=j-a;0<=--p;)t.removeItemAt(a);if(!s){c=null==b?null:new JU.P3;for(p=t.size();--p>=a;)h=t.get(p),this.toCartesian(h,!1),null!=b&&(b.toFractional(c.setP(h),!1),b.isWithinUnitCell(c,1,1,1,d)||t.removeItemAt(p))}},"~N,~S,~A,~N,JU.Lst,J.api.SymmetryInterface");m(b,"adjustRangeMinMax",function(a,c,f,d,t,b,h,e){this.unitCell.adjustRangeMinMax(a,c,f,d,t,b,h,e)},"~A,~N,JU.P3i,JU.P3i,JU.P3,JU.P3,JU.P3i,JU.P3i");m(b,"getInvariantSymops",function(a,c){var f=this.getSymmetryOperations();
if(null==f)return N(0,0);for(var d=new JU.BS,b=new JU.P3,g=new JU.P3,h=f.length,e=1;e<h;e++)b.setT(a),this.unitCell.toFractional(b,!1),this.unitCell.unitize(b),g.setT(b),f[e].rotTrans(b),this.unitCell.unitize(b),1.96E-6>g.distanceSquared(b)&&d.set(e);f=N(d.cardinality(),0);if(null!=c&&f.length!=c.length)return null;b=0;for(e=1;e<h;e++)if(d.get(e)){if(null!=c&&c[b]!=e+1)return null;f[b++]=e+1}return f},"JU.P3,~A");m(b,"getWyckoffPosition",function(a,c){if(null==this.unitCell)return"";var f=this.spaceGroup;
null==f&&null!=this.symmetryInfo&&(f=JS.SpaceGroup.determineSpaceGroupN(this.symmetryInfo.sgName),null==f&&(f=this.getSpaceGroupJmolId(),null==f&&(f=this.getSpaceGroupClegId()),f=JS.SpaceGroup.getSpaceGroupFromJmolClegOrITA(this.vwr,f)));if(null==f||null==f.itaNumber)return"?";null==a?a=JU.P3.new3(0.53,0.2,0.16):"L".equals(c)||(a=JU.P3.newP(a),this.unitCell.toFractional(a,!1),this.unitCell.unitize(a));try{var d=this.getWyckoffFinder().getWyckoffFinder(this.vwr,f),b=null!=c&&"M"==c.charAt(0);b&&(c=
1==c.length?null:c.substring(1));var g=null==c?-1:"L".equals(c)?-4:c.equalsIgnoreCase("coord")?-2:c.equalsIgnoreCase("coords")?-3:c.endsWith("*")?c.charAt(0).charCodeAt(0):0;if(0!=g)return null==d?"?":d.getInfo(this.unitCell,a,g,b,this.vwr.is2D());if(null==d.findPositionFor(a,c))return null;this.unitCell.toCartesian(a,!1);return a}catch(h){if(da(h,Exception))return h.printStackTrace(),null==c?"?":null;throw h;}},"JU.P3,~S");e(b,"getWyckoffFinder",function(){null==JS.Symmetry.wyckoffFinder&&(JS.Symmetry.wyckoffFinder=
J.api.Interface.getInterface("JS.WyckoffFinder",null,"symmetry"));return JS.Symmetry.wyckoffFinder});m(b,"getTransform",function(a,c,f){return this.getDesc(null).getTransform(this.unitCell,this.getSymmetryOperations(),a,c,f)},"JU.P3,JU.P3,~B");e(b,"isWithinUnitCell",function(a,c,f,d,b){return this.unitCell.isWithinUnitCell(c,f,d,b,a)},"JU.P3,~N,~N,~N,~N");m(b,"checkPeriodic",function(a,c,f){return this.unitCell.checkPeriodic(a,c,f)},"JU.P3,~N,~N");m(b,"staticConvertOperation",function(a,c,f){return JS.SymmetryOperation.staticConvertOperation(a,
c,f)},"~S,JU.M34,~S");m(b,"getSubgroupJSON",function(a,c,f,d,b,g,h){a.startsWith("ITA/")&&(a=a.substring(4));null!=c&&c.startsWith("ITA/")&&(c=c.substring(4));var e=JS.SpaceGroup.getExplicitSpecialGroupType(a);if(-1==e||(null==c||0==c.length?e:JS.SpaceGroup.getExplicitSpecialGroupType(a))!=e)return null;var k=0==e?a:a.substring(2);if(k.equalsIgnoreCase("all"))return this.getAllITSubData(e);k=JU.PT.parseInt(this.getSpaceGroupInfoObj("itaNumber",k,!1,!1));c=null==c?-1:0==c.length?0:JU.PT.parseInt(this.getSpaceGroupInfoObj("itaNumber",
0==e?c:c.substring(2),!1,!1));if(0!=b){f=JS.SpaceGroup.getGroupTypePrefix(e);var j=b>>24&255,s=b>>16&255,p=b>>8&255,u=b&255,r=this.getSubgroupIndexData(e);d=null==h?null:new JU.Lst;var q=new JU.Lst,k=this.findSubTransform(k,c,j,s,p,u,r,1,1,1,JU.BSUtil.newAndSetBit(k),q,d);if(null==k?null==d:k.endsWith("!"))return k;c=k;u=0;for(s=null==d?1:d.size();u<s;u++){r=null==g?new java.util.Hashtable:g;null!=h&&r!==g&&h.addLast(r);null!=d&&(k=d.get(u));for(var q=k.$plit(">"),p=q.length,n=Array(p),m="",w="",
v=1,z=0,j=p-3;0<=j;j-=2){z++;var A=f+q[j],y=q[j+2]=f+q[j+2],v=v*Integer.parseInt(q[j+1].substring(1,q[j+1].length-1));c=q[j+1]=this.getSubgroupJSON(A,y,0,1,0,null,null);m+=">"+c;n[j]=this.getSpaceGroupInfoObj("hmNameShort",A,!1,!1);n[j+1]="";j==p-3&&(n[j+2]=this.getSpaceGroupInfoObj("hmNameShort",y,!1,!1))}q[0]=f+q[0];for(j=0;j<p;j+=2)w+=">"+n[j];w=w.substring(1);p=this.convertTransform(m.substring(1),null);r.put("trm",this.convertTransform(null,p));r.put("trmat",p);r.put("index",Integer.$valueOf(v));
r.put("depth",Integer.$valueOf(z));r.put("indexPath",k);r.put("cleg",JU.PT.join(q,">",0));r.put("bcsPath",JU.PT.rep(w," ",""))}return c}var F=0>c,W=0==c&&0==f,B=0==c&&0>f;g=0==c&&0<f&&0>d;h=0==c&&0<f&&0<d;e=0<c&&0>f;b=0<c&&0<f&&0>d;var x=0<c&&0<f&&0<d;try{u=this.getSpaceGroupJSON("subgroups",a,k);for(a=0;null!=u;){if(F)return u;if(W||B){r=u.get("subgroups");s=r.size();m=W?JU.AU.newInt2(s):null;q=B?new JU.BS:null;for(j=s;0<=--j;)if(u=r.get(j),w=u.get("subgroup").intValue(),B)q.set(w);else{var A=u.get("subgroupIndex").intValue(),
y="k".equals(u.get("trType"))?2:1,K=1==y?u.get("trSubtype"):"",E=u.get("det").doubleValue(),D=C(1>E?-1/E:E);K.equals("ct")?y=3:K.equals("eu")&&(y=4);var P=u.get("trm").size();m[j]=N(-1,[w,P,A,D,y])}if(B){v=N(q.cardinality(),0);s=0;for(j=q.nextSetBit(0);0<=j;j=q.nextSetBit(j+1))v[s++]=j;return v}return m}r=u.get("subgroups");q=0;s=r.size();if(g||h){if(f>s)throw new ArrayIndexOutOfBoundsException("no map.subgroups["+f+"]!");q=f-1;if(g)return r.get(q);s=f}z=e?new JU.Lst:null;for(j=q;j<s;j++)if(u=r.get(j),
w=u.get("sg").intValue(),h||w==c){if(++a==f){if(b)return u}else if(x)continue;if(e)z.addLast(u);else{n=u.get("trms");s=n.size();if(1>d||d>s)return null;p=n.get(d-1);return p.get("trm")}}if(e&&!z.isEmpty())return z;break}if(0==f)return null;if(x&&0<a)throw new ArrayIndexOutOfBoundsException("only "+a+" maximal subgroup information for "+k+">>"+c+"!");throw new ArrayIndexOutOfBoundsException("no subgroup information for "+k+">>"+c+"!");}catch(L){if(da(L,Exception))return L.getMessage();throw L;}},"~S,~S,~N,~N,~N,java.util.Map,JU.Lst");
e(b,"findSubTransform",function(a,c,f,d,b,g,h,e,k,j,s,p,u){k=h[a];if(0<b&&e>b)return null;for(var r=a==c&&1==e,q=r?2:3,n=0<e&&e<g?2:1;n<q;n++){var m=0,w=k.length;a:for(;m<w;m++){var v=k[m][0];if(!s.get(v)||r){var z=k[m][1],A=z*j;if(!(A>f))switch(n){case 1:if(v==c){if(A<d)continue;A="";m=0;for(w=p.size();m<w;m++)var y=p.get(m),A=A+(y[0]+">["+y[1]+"]>");A+=a+">["+z+"]>"+v;if(null!=u){u.addLast(A);break a}return A}break;case 2:if(v!=c&&!s.get(v)){var F=JU.BSUtil.copy(s);F.set(v);y=p.size();p.addLast(N(-1,
[a,z]));A=this.findSubTransform(v,c,f,d,b,g,h,e+1,z,A,F,p,u);p.removeItemAt(y);if(null!=A&&null==u)return A}}}}}return null},"~N,~N,~N,~N,~N,~N,~A,~N,~N,~N,JU.BS,JU.Lst,JU.Lst");m(b,"getSpaceGroupJSON",function(a,c,f){var d=f,b=a.equals("setting"),g=a.equals("settings"),h=a.equalsIgnoreCase("AFLOWLIB"),e=!g&&a.equals("subgroups"),k=(b||g||e)&&-2147483648==f,j=!g&&!b&&!e?a:k?this.getSpaceGroupName():""+f;try{var s,p=null==c?0:JS.SpaceGroup.getExplicitSpecialGroupType(c);0<p&&(c=c.substring(2));var u=
null,r,q,n;if(b&&null==c||g||e)if(q=!0,n=b?c:null,k){if(s=JU.PT.parseInt(this.getIntTableNumber()),b||g)if(null==this.spaceGroup){var m=this.symmetryInfo.getDerivedSpaceGroup();if(null==m)return new java.util.Hashtable;n=m.jmolId}else n=this.getSpaceGroupClegId(),b?u=n.substring(n.indexOf(":")+1):g&&(f=0)}else s=f;else{h||(f=0);n=c;var w=n.indexOf("(");0>w&&(w=n.indexOf(":"));if(r=0<=w&&n.indexOf(",")>w)u=n.substring(w+1,n.length-(n.endsWith(")")?1:0)),n=n.substring(0,w),k=!0;s=n.equalsIgnoreCase("ALL")?
0:JU.PT.parseInt(n);q=-2147483648!=s;w=n.indexOf(".");!r&&(q&&0==f&&0<w)&&(f=JU.PT.parseInt(n.substring(w+1)),n=n.substring(0,w))}if(q&&(s>JS.SpaceGroup.getMax(p)||(g||b?1>s:0>s)))throw new ArrayIndexOutOfBoundsException(s);if(e){var v=this.getITSubJSONResource(p,s);if(null!=v)return v}else if(b||g||a.equalsIgnoreCase("ITA")){if(0==s)return JS.Symmetry.getAllITAData(this.vwr,p,!0);var z=0<p,v=JS.Symmetry.getITJSONResource(this.vwr,p,1>s?d:s,c);if(null!=v){if(0==f&&null==u)return g?v.get("its"):v;
var A=v.get("its");if(null!=A){if(g&&!k)return A;var y=A.size(),F=b?Math.max(f,1):q&&!k?f:y;if(F>y)return null;if(b)return A.get(F-1);for(var y=null,x=F;0<=--x;){y=A.get(x);if(x==f-1||(null==u?z?JS.SpaceGroup.hmMatches(y.get("hm"),n,p):n.equals(y.get("jmolId")):u.equals(y.get("trm")))){if(!y.containsKey("more"))return y;break}y=null}if(null!=y)return JS.SpaceGroup.fillMoreData(this.vwr,y,c,s,A.get(0))}}}else if(h&&null==u){null==JS.Symmetry.aflowStructures&&(JS.Symmetry.aflowStructures=JS.Symmetry.getResource(this.vwr,
"sg/json/aflow_structures.json"));if(0==s)return JS.Symmetry.aflowStructures;if(-2147483648==s){c=null;n.endsWith("*")&&(c=new JU.Lst,n=n.substring(0,n.length-1));for(f=1;230>=f;f++){z=JS.Symmetry.aflowStructures.get(""+f);x=0;for(y=z.size();x<y;x++){var B=z.get(x);if(null!=c&&B.startsWith(n))c.addLast("=aflowlib/"+f+"."+(x+1)+"\t"+B);else if(B.equalsIgnoreCase(n))return f+"."+(x+1)}}return null!=c&&0<c.size()?c:null}var E=JS.Symmetry.aflowStructures.get(""+n);if(f<=E.size())return 0==f?E:E.get(f-
1)}if(k)return new java.util.Hashtable;throw new IllegalArgumentException(j);}catch(K){if(da(K,Exception))return K.getMessage();throw K;}},"~S,~S,~N");b.getITJSONResource=e(b,"getITJSONResource",function(a,c,f,d){if(0==c)return null==JS.Symmetry.itaData&&(JS.Symmetry.itaData=Array(230)),c=JS.Symmetry.itaData[f-1],null==c&&(JS.Symmetry.itaData[f-1]=c=JS.Symmetry.getResource(a,"sg/json/ita_"+f+".json")),c;a=JS.Symmetry.getAllITAData(a,c,!1);return 0<f?a[f-1]:JS.Symmetry.getSpecialSettingJSON(a,d,c,
!1)},"JV.Viewer,~N,~N,~S");b.getSpecialSettingJSON=e(b,"getSpecialSettingJSON",function(a,c,f,d){var b=null,g=Character.isDigit(c.charAt(2));g&&c.endsWith(";0,0,0")&&(c=c.substring(0,c.length-6));var h=g?"clegId":"hm";g||(c=c.substring(2));for(var e=a.length;0<=--e;)for(var k=a[e].get("its"),j=k.size();0<=--j;){var b=k.get(j),s=b.get(h);if(g?c.equals(s):JS.SpaceGroup.hmMatches(s,c,f))return d?b:a[e]}return null},"~A,~S,~N,~B");b.getAllITAData=e(b,"getAllITAData",function(a,c,f){switch(c){case 0:return null==
JS.Symmetry.allDataITA&&(JS.Symmetry.allDataITA=JS.Symmetry.getResource(a,"sg/json/ita_all.json")),JS.Symmetry.allDataITA;default:var d="sg/json/it"+(300==c?"a":"e")+"_all_"+JS.SpaceGroup.getSpecialGroupName(c)+".json";switch(c){case 300:return null==JS.Symmetry.allPlaneData&&(JS.Symmetry.allPlaneData=JS.Symmetry.getResource(a,d),JS.Symmetry.planeData=JS.Symmetry.createSpecialData(c,JS.Symmetry.allPlaneData)),f?JS.Symmetry.allPlaneData:JS.Symmetry.planeData;case 400:return null==JS.Symmetry.allLayerData&&
(JS.Symmetry.allLayerData=JS.Symmetry.getResource(a,d),JS.Symmetry.layerData=JS.Symmetry.createSpecialData(c,JS.Symmetry.allLayerData)),f?JS.Symmetry.allLayerData:JS.Symmetry.layerData;case 500:return null==JS.Symmetry.allRodData&&(JS.Symmetry.allRodData=JS.Symmetry.getResource(a,d),JS.Symmetry.rodData=JS.Symmetry.createSpecialData(c,JS.Symmetry.allRodData)),f?JS.Symmetry.allRodData:JS.Symmetry.rodData;case 600:return null==JS.Symmetry.allFriezeData&&(JS.Symmetry.allFriezeData=JS.Symmetry.getResource(a,
d),JS.Symmetry.friezeData=JS.Symmetry.createSpecialData(c,JS.Symmetry.allFriezeData)),f?JS.Symmetry.allFriezeData:JS.Symmetry.friezeData}}return null},"JV.Viewer,~N,~B");b.createSpecialData=e(b,"createSpecialData",function(a,c){for(var f=JS.SpaceGroup.getMax(a),d=Array(f),b=0;b<f;b++)d[b]=new java.util.Hashtable,d[b].put("sg",Integer.$valueOf(b+1)),d[b].put("its",new JU.Lst);for(var b=0,g=c.size();b<g;b++){var h=c.get(b),e=h.get("sg").intValue();d[e-1].get("its").addLast(h)}for(b=0;b<f;b++)d[b].put("n",
Integer.$valueOf(d[b].get("its").size()));return d},"~N,JU.Lst");e(b,"getAllITSubData",function(a){switch(a){default:case 0:return null;case 300:return null==JS.Symmetry.planeSubData&&(JS.Symmetry.planeSubData=JS.Symmetry.getResource(this.vwr,"sg/json/sub_all_plane.json")),JS.Symmetry.planeSubData;case 400:return null==JS.Symmetry.layerSubData&&(JS.Symmetry.layerSubData=JS.Symmetry.getResource(this.vwr,"sg/json/sub_all_layer.json")),JS.Symmetry.layerSubData;case 500:return null==JS.Symmetry.rodSubData&&
(JS.Symmetry.rodSubData=JS.Symmetry.getResource(this.vwr,"sg/json/sub_all_rod.json")),JS.Symmetry.rodSubData;case 600:return null==JS.Symmetry.friezeSubData&&(JS.Symmetry.friezeSubData=JS.Symmetry.getResource(this.vwr,"sg/json/sub_all_frieze.json")),JS.Symmetry.friezeSubData}},"~N");e(b,"getITSubJSONResource",function(a,c){if(0==a){null==JS.Symmetry.itaSubData&&(JS.Symmetry.itaSubData=Array(230));var f=JS.Symmetry.itaSubData[c-1];null==f&&(JS.Symmetry.itaSubData[c-1]=f=JS.Symmetry.getResource(this.vwr,
"sg/json/sub_"+c+".json"));return f}return this.getAllITSubData(a).get(c-1)},"~N,~N");e(b,"getSubgroupIndexData",function(a){var c=JS.SpaceGroup.getSpecialGroupName(a),f=JS.SpaceGroup.getMax(a);switch(a){default:case 0:null==JS.Symmetry.itaSubList&&(JS.Symmetry.itaSubList=JU.AU.newInt3(f+1,0));f=JS.Symmetry.itaSubList;break;case 300:null==JS.Symmetry.planeSubList&&(JS.Symmetry.planeSubList=JU.AU.newInt3(f+1,0));f=JS.Symmetry.planeSubList;break;case 400:null==JS.Symmetry.layerSubList&&(JS.Symmetry.layerSubList=
JU.AU.newInt3(f+1,0));f=JS.Symmetry.layerSubList;break;case 500:null==JS.Symmetry.rodSubList&&(JS.Symmetry.rodSubList=JU.AU.newInt3(f+1,0));f=JS.Symmetry.rodSubList;break;case 600:null==JS.Symmetry.friezeSubList&&(JS.Symmetry.friezeSubList=JU.AU.newInt3(f+1,0)),f=JS.Symmetry.friezeSubList}a=JS.Symmetry.getResource(this.vwr,"sg/json/sub_"+(0==a?"":c+"_")+"index.json");for(c=a.size();0<=--c;)for(var d=a.get(c),b=C(d.size()/2),g=f[c+1]=JU.AU.newInt2(b),h=0,e=0;h<b;h++)g[h]=N(-1,[d.get(e++).intValue(),
d.get(e++).intValue()]);return f},"~N");b.getResource=e(b,"getResource",function(a,c){try{var f=JV.FileManager.getBufferedReaderForResource(a,JS.Symmetry,"JS/",c),d=Array(1);if(JU.Rdr.readAllAsString(f,2147483647,!1,d,0))return(new JU.JSJSONParser).parse(d[0],!0)}catch(b){System.err.println(b.getMessage())}return null},"JV.Viewer,~S");m(b,"getCellWeight",function(a){return this.unitCell.getCellWeight(a)},"JU.P3");m(b,"getPrecision",function(){return null==this.unitCell?NaN:this.unitCell.getPrecision()});
m(b,"fixUnitCell",function(a){return this.spaceGroup.createCompatibleUnitCell(a,null,!0)},"~A");m(b,"staticGetTransformABC",function(a,c){return JS.SymmetryOperation.getTransformABC(a,c)},"JU.M4,~B");e(b,"setCartesianOffset",function(a){this.unitCell.setCartesianOffset(a)},"JU.T3");e(b,"setSymmetryInfoFromFile",function(a,c,f){var d=a.getModelAuxiliaryInfo(c),b=d.get("fileSymmetry");this.symmetryInfo=new JS.SymmetryInfo(null==b?null:b.spaceGroup);f=this.symmetryInfo.setSymmetryInfoFromFile(d,f);null!=
f&&(this.setUnitCellFromParams(f,d.containsKey("jmolData"),this.symmetryInfo.slop),this.unitCell.spinFrameToCartXYZ=null==b?null:b.spinFrameToCartXYZ,this.setSpinSym(),this.unitCell.setMoreInfo(d.get("moreUnitCellInfo")),d.put("infoUnitCell",this.getUnitCellAsArray(!1)),this.setOffsetPt(d.get("unitCellOffset")),d=d.get("matUnitCellOrientation"),null!=d&&this.initializeOrientation(d),null!=this.symmetryInfo.strSUPERCELL&&(d=this.unitCell.getUnitCellVectors(),d[0]=new JU.P3,a.setModelCagePts(c,d,"conventional")),
JU.Logger.debugging&&JU.Logger.debug("symmetryInfos["+c+"]:\n"+this.unitCell.dumpInfo(!0,!0)))},"JM.ModelSet,~N,~A");e(b,"transformUnitCell",function(a){null==a&&(a=JS.UnitCell.toTrm(this.spaceGroup.itaTransform,null));var c=JU.M4.newM4(a);c.invert();for(var f=this.getUnitCellVectors(),d=1;3>=d;d++)this.toFractional(f[d],!0),c.rotate(f[d]),this.toCartesian(f[d],!0);c=new JU.P3;a.getTranslation(c);this.toCartesian(c,!0);f[0].add(c);this.unitCell=JS.UnitCell.fromOABC(f,!1)},"JU.M4");m(b,"staticCleanTransform",
function(a){return JS.SymmetryOperation.getTransformABC(JS.UnitCell.toTrm(a,null),!0)},"~S");m(b,"saveOrRetrieveTransformMatrix",function(a){var c=this.transformMatrix;this.transformMatrix=a;return c},"JU.M4");m(b,"getUnitCellDisplayName",function(){var a=null!=this.spaceGroup?this.spaceGroup.getDisplayName():null!=this.symmetryInfo?this.symmetryInfo.getDisplayName(this):null;return 0<a.length?a:null});m(b,"staticToRationalXYZ",function(a,c){var f=JS.SymmetryOperation.fcoord(a,c);return",".equals(c)?
f:"("+f+")"},"JU.P3,~S");m(b,"getFinalOperationCount",function(){this.setFinalOperations(3,null,null,-1,-1,!1,null);return this.spaceGroup.getOperationCount()});m(b,"convertTransform",function(a,c){if(null==a)return this.staticGetTransformABC(c,!1);if(a.equals("xyz"))return null==c?null:JS.SymmetryOperation.getXYZFromMatrix(c,!1,!1,!1);null==c&&(c=new JU.M4);JS.UnitCell.getMatrixAndUnitCell(this.vwr,0<=a.indexOf("*")?this.unitCell:null,a,c);return c},"~S,JU.M4");m(b,"staticGetMatrixTransform",function(a,
c){return this.getCLEGInstance().getMatrixTransform(this.vwr,a,c)},"~S,~O");m(b,"staticTransformSpaceGroup",function(a,c,f,d){return this.getCLEGInstance().transformSpaceGroup(this.vwr,a,c,f,d)},"JU.BS,~S,~O,JU.SB");e(b,"getCLEGInstance",function(){null==JS.Symmetry.clegInstance&&(JS.Symmetry.clegInstance=J.api.Interface.getInterface("JS.CLEG",null,"symmetry"));return JS.Symmetry.clegInstance});m(b,"setViewer",function(a,c){null==this.vwr&&(this.vwr=a,this.id=c);return this},"JV.Viewer,~S");m(b,"getUnitCellCenter",
function(){return this.unitCell.getCenter(this.getPeriodicity())});b.getSGFactory=e(b,"getSGFactory",function(){null==JS.Symmetry.groupFactory&&(JS.Symmetry.groupFactory=J.api.Interface.getInterface("JS.SpecialGroupFactory",null,"symmetry"));return JS.Symmetry.groupFactory});b.getSpecialSettingInfo=e(b,"getSpecialSettingInfo",function(a,c,f){var d=c.substring(2),b=d.indexOf(":"),g=d.indexOf(","),h=d.indexOf("."),h=0<b&&g>b?b:h,g=JS.SpaceGroup.getITNo(d,h),d=0<h&&h==b||0>g?0:0<h?JS.SpaceGroup.getITNo(d.substring(h+
1),0):1;a=JS.Symmetry.getAllITAData(a,f,!1);if(0>=d)return JS.Symmetry.getSpecialSettingJSON(a,c,f,!0);c=a[g-1].get("its");return d<=c.size()?c.get(d-1):null},"JV.Viewer,~S,~N");m(b,"getConstrainableEquivAtom",function(a){for(var c=this.vwr.ms.getSymmetryEquivAtoms(JU.BSUtil.newAndSetBit(a.i),this,null),f=this.getSymmetryOperations(),d=a,b=9999;0<=b;b=c.nextSetBit(b+1)){if(null==d){if(d=this.vwr.ms.at[b],d===a)continue}else 9999==b&&(b=-1);var g=this.getInvariantSymops(d,null);if(0<g.length)switch(f[g[0]-
1].getOpType()){case 2:case 8:return d}d=null}return a},"JM.Atom");m(b,"setSpinAxisAngle",function(a){null!=this.unitCell&&this.unitCell.setSpinAxisAngle(a)},"JU.A4");m(b,"getSpinIndex",function(a){var c=this.getSymmetryOperations();return null==c||a>=c.length?-1:c[a].spinIndex},"~N");e(b,"setSpinSym",function(){null==this.spinSym&&(this.spinSym=new JS.Symmetry,this.spinSym.spaceGroup=this.spaceGroup,this.spinSym.unitCell=this.unitCell)});m(b,"getSpinSym",function(){return null==this.spinSym?this:
this.spinSym});m(b,"updatePointGroup",function(){return null==this.pointGroup?null:this.pointGroup.updateDraw()});m(b,"toFractionalSpin",function(a){this.unitCell.toFractionalSpin(a)},"JU.T3");m(b,"toCartesianSpin",function(a){this.unitCell.toCartesianSpin(a)},"JU.T3");m(b,"getQuaternionRotationForUVW",function(a,c){return null==this.unitCell?null:this.unitCell.getQuaternionRotationForHKL(a,c)},"JU.T3,JU.P4");b.nullDesc=null;b.aflowStructures=null;b.itaData=null;b.itaSubData=null;b.planeData=null;
b.layerData=null;b.rodData=null;b.friezeData=null;b.itaSubList=null;b.planeSubList=null;b.layerSubList=null;b.rodSubList=null;b.friezeSubList=null;b.allDataITA=null;b.allPlaneData=null;b.allLayerData=null;b.allRodData=null;b.allFriezeData=null;b.planeSubData=null;b.layerSubData=null;b.rodSubData=null;b.friezeSubData=null;b.wyckoffFinder=null;b.clegInstance=null;b.groupFactory=null});aa("JS");$(["java.util.Hashtable","JU.M3","$.V3"],"JS.PointGroup","JU.Lst $.P3 $.PT $.Quat $.SB J.bspt.Bspt JS.SymmetryOperation JU.BSUtil $.Escape $.Logger $.Point3fi".split(" "),
function(){var b=M(function(){this.operations=null;xa("JS.PointGroup.Operation")||JS.PointGroup.$PointGroup$Operation$();xa("JS.PointGroup.Operator")||JS.PointGroup.$PointGroup$Operator$();this.maxAtoms=250;this.maxElement=0;this.eCounts=null;this.nOps=0;this.isAtoms=!1;this.iter=null;this.drawType="";this.drawIndex=0;this.scale=NaN;this.axes=this.nAxes=null;this.radius=this.nAtoms=0;this.distanceTolerance=0.25;this.distanceTolerance2=0;this.linearTolerance=8;this.cosTolerance=0.99;this.name="C_1?";
this.textInfo=this.info=this.drawInfo=this.highOperations=this.principalPlane=this.principalAxis=null;this.convention=0;this.vTemp=null;this.centerAtomIndex=-1;this.haveInversionCenter=!1;this.bsAtoms=this.atomMap=this.elements=this.points=this.center=null;this.$isLinear=this.localEnvOnly=this.haveVibration=!1;this.sppa=0;this.isSpinGroup=!1;this.modelIndex=this.highestOrder=0;this.type=this.drawID=null;this.scaleFactor=this.index=0;S(this,arguments)},JS,"PointGroup",null);qa(b,function(){this.nAxes=
N(JS.PointGroup.maxAxis,0);this.axes=Array(JS.PointGroup.maxAxis);this.vTemp=new JU.V3});V(b,function(a){this.convention=a?1:0},"~B");e(b,"newInversionCenter",function(a){return la(JS.PointGroup.Operator,this,null,a,null,-1)},"~N");e(b,"newPlane",function(a,c){return la(JS.PointGroup.Operator,this,null,a,c,-1)},"~N,JU.V3");e(b,"newAxis",function(a,c,f){return la(JS.PointGroup.Operator,this,null,a,c,f)},"~N,JU.V3,~N");b.getUniqueFractions=e(b,"getUniqueFractions",function(a){var c=JS.PointGroup.bsUnique.get(Integer.$valueOf(a));
if(null!=c)return c;for(var c=JU.BSUtil.newBitSet2(1,a),f=C(a/2),d=1;d<=f;d++){var b=C(a/d);if(b*d==a&&c.get(b))for(var g=b;g<=f;g+=b)c.clear(g),c.clear(a-g)}JS.PointGroup.bsUnique.put(Integer.$valueOf(a),c);return c},"~N");b.getPointGroup=e(b,"getPointGroup",function(a,c,f,d,b,g,h,e,k,j,s){j=new JS.PointGroup(j);0>=g&&(g=0.01);0>=h&&(h=0.5);0>=e&&(e=250);j.distanceTolerance=g;j.distanceTolerance2=g*g;j.linearTolerance=h;j.maxAtoms=e;j.isAtoms=null!=d;j.bsAtoms=j.isAtoms?d:JU.BSUtil.newBitSet2(0,
f.length);j.haveVibration=b;j.center=c;j.localEnvOnly=k;j.sppa=s;JU.Logger.debugging&&(a=null);return j.set(a,f)?j:a},"JS.PointGroup,JU.T3,~A,JU.BS,~B,~N,~N,~N,~B,~B,~N");e(b,"set",function(a,c){this.cosTolerance=Math.cos(3.141592653589793*(this.linearTolerance/180));if(!this.getPointsAndElements(c))return JU.Logger.error("Too many atoms for point group calculation"),this.name="point group not determined -- ac > "+this.maxAtoms+" -- select fewer atoms and try again.",!0;this.getElementCounts();for(var f=
Array(this.points.length),d=0;d<this.points.length;d++){f[d]=JU.P3.newP(this.points[d]);var b=this.points[d].getVibrationVector();if(null!=b){if(b.isFrom000){this.isSpinGroup=!0;f=null;this.haveVibration=!0;break}else if(!this.haveVibration)break;f[d].add(b)}}this.haveVibration&&null!=f&&(this.points=f);if(this.isEqual(a))return!1;try{this.findInversionCenter();if(this.$isLinear=this.isLinear(this.points))return this.name=this.haveInversionCenter?"D\u221eh":"C\u221ev",this.vTemp.sub2(this.points[1],
this.points[0]),this.addAxis(22,this.vTemp),this.principalAxis=this.axes[22][0],this.haveInversionCenter&&(this.axes[0]=E(-1,[this.principalPlane=this.newPlane(++this.nOps,this.vTemp)]),this.nAxes[0]=1),!0;this.axes[0]=Array(JS.PointGroup.axesMaxN[0]);f=0;this.findCAxes();f=this.findPlanes();this.findAdditionalAxes(f);var g=this.getHighestOrder();if(1<this.nAxes[23])this.name=1<this.nAxes[25]?this.haveInversionCenter?"Ih":"I":1<this.nAxes[24]?this.haveInversionCenter?"Oh":"O":0<f?this.haveInversionCenter?
"Th":"Td":"T";else{var h=this.nAxes[22];if(2>g){if(1==f)return this.name="Cs",!0;if(this.haveInversionCenter)return this.name="Ci",!0;this.name="C1"}else 1==g%2&&0<h||0==g%2&&1<h?(this.principalAxis=this.setPrincipalAxis(g,f),0==f?this.name=20>g?"S"+g:"D"+(g-20):(d=g,g=20>g?C(g/2):g-20,h>g+1&&(this.addHighOperations(h,f,d,g),g=null==this.principalPlane?f:f-1),this.name=f==g?"D"+g+"d":"D"+g+"h")):0==f?(this.principalAxis=this.axes[g][0],this.name=20>g?"S"+g:"C"+(g-20)):1<f?(this.principalAxis=this.axes[g][0],
this.name="C"+f+"v"):(this.principalPlane=this.axes[0][0],this.principalAxis=this.axes[20>g?g+20:g][0],this.name="C"+(20>g?g/2:g-20)+"h")}}catch(e){if(da(e,Exception))this.name="??";else throw e;}finally{JU.Logger.info("Point group found: "+this.name)}return!0},"JS.PointGroup,~A");e(b,"addHighOperations",function(){},"~N,~N,~N,~N");e(b,"getPointsAndElements",function(a){var c=this.bsAtoms.cardinality();if(this.isAtoms&&c>this.maxAtoms)return!1;this.points=Array(c);this.elements=N(c,0);if(0==c)return!0;
for(var f=0,c=this.bsAtoms.nextSetBit(0);0<=c;c=this.bsAtoms.nextSetBit(c+1)){var d=a[c];L(d,"JU.Node")&&(f=Math.max(f,d.i))}this.atomMap=N(f+1,0);this.nAtoms=0;if(f=null==this.center)this.center=new JU.P3;for(var b=new J.bspt.Bspt(3,0),c=this.bsAtoms.nextSetBit(0);0<=c;c=this.bsAtoms.nextSetBit(c+1),this.nAtoms++){d=a[c];if(L(d,"JU.Node")){var g=this.localEnvOnly?1:1+Math.max(3,d.getCovalentBondCount());this.elements[this.nAtoms]=d.getElementNumber()*g;this.atomMap[d.i]=this.nAtoms+1}else g=JU.Point3fi.newPF(d,
-1-this.nAtoms),L(d,"JU.Point3fi")&&(this.elements[this.nAtoms]=Math.max(0,d.sD)),d=g;b.addTuple(d);f&&this.center.add(d);this.points[this.nAtoms]=d}this.iter=b.allocateCubeIterator();f&&this.center.scale(1/this.nAtoms);for(c=this.nAtoms;0<=--c;)a=this.center.distanceSquared(this.points[c]),this.isAtoms&&a<this.distanceTolerance2&&(this.centerAtomIndex=c),this.radius=Math.max(this.radius,a);this.radius=Math.sqrt(this.radius);90<this.radius&&(this.distanceTolerance=0.3);if(90<this.radius||1.5>this.radius&&
0.15<this.distanceTolerance)this.distanceTolerance=this.radius/10,this.distanceTolerance2=this.distanceTolerance*this.distanceTolerance,System.out.println("PointGroup calculation adjusting distanceTolerance to "+this.distanceTolerance);return!0},"~A");e(b,"checkOperation",function(a,c,f){var d=new JU.P3,b=0;f=20>f;var g=this.points.length,h=g;a:for(;0<=--h&&b<g;)if(h!=this.centerAtomIndex){var e=this.points[h],k=this.elements[h];null!=a?(d.sub2(e,c),a.transform2(d,d).add(c)):d.setT(e);f&&(this.vTemp.sub2(c,
d),d.scaleAdd2(2,this.vTemp,d));if((null!=a||f)&&d.distanceSquared(e)<this.distanceTolerance2)b++;else{for(this.iter.initialize(d,this.distanceTolerance,!1);this.iter.hasMoreElements();){var j=this.iter.nextElement();if(j!==e){var s=this.getPointIndex(j.i);if(!(0<=this.centerAtomIndex&&s==this.centerAtomIndex||s>=this.elements.length||this.elements[s]!=k)&&d.distanceSquared(j)<this.distanceTolerance2){b++;continue a}}}return!1}}return!0},"JU.Quat,JU.T3,~N");e(b,"findInversionCenter",function(){if(this.haveInversionCenter=
this.checkOperation(null,this.center,-1))this.axes[1]=E(-1,[this.newInversionCenter(++this.nOps)]),this.nAxes[1]=1});e(b,"setPrincipalAxis",function(a,c){this.principalPlane=this.setPrincipalPlane(a,c);if(0==c&&20>a||1==this.nAxes[a])return this.axes[a][0];if(null==this.principalPlane)return null;for(var f=this.axes[22],d=0;d<this.nAxes[22];d++)if(this.isParallel(this.principalPlane.normalOrAxis,f[d].normalOrAxis)){if(0!=d){var b=f[0];f[0]=f[d];f[d]=b}return f[0]}return null},"~N,~N");e(b,"setPrincipalPlane",
function(a,c){var f=this.axes[0];if(1==c)return this.principalPlane=f[0];if(0==c||c==a-20)return null;for(var d=0;d<c;d++)for(var b=0,g=0;b<c;b++)if(this.isPerpendicular(f[d].normalOrAxis,f[b].normalOrAxis)&&2<++g)return 0!=d&&(b=f[0],f[0]=f[d],f[d]=b),this.principalPlane=f[0];return null},"~N,~N");e(b,"getPointIndex",function(a){return(0>a?-a:this.atomMap[a])-1},"~N");e(b,"getElementCounts",function(){for(var a=this.points.length;0<=--a;){var c=this.elements[a];c>this.maxElement&&(this.maxElement=
c)}this.eCounts=N(++this.maxElement,0);for(a=this.points.length;0<=--a;)this.eCounts[this.elements[a]]++});e(b,"findCAxes",function(){for(var a=new JU.V3,c=new JU.V3,f=new JU.V3,d=this.points.length;0<=--d;)if(d!=this.centerAtomIndex)for(var b=this.points[d],g=this.elements[d],h=this.points.length;--h>d;){var e=this.points[h];if(this.elements[h]==g)if(a.sub2(b,this.center),c.sub2(e,this.center),a.normalize(),c.normalize(),this.isParallel(a,c))this.getAllAxes(a);else{this.nAxes[22]<JS.PointGroup.axesMaxN[22]&&
(f.ave(b,e),f.sub(this.center),this.getAllAxes(f));var e=6.283185307179586/a.angle(c),k=C(Math.floor(e+0.01)),j=k+20;0.02>=e-k&&!(j>=JS.PointGroup.maxAxis)&&this.nAxes[j]<JS.PointGroup.axesMaxN[j]&&(f.cross(a,c),this.checkForAxis(j,f))}}b=Array(2*this.nAxes[22]);for(d=0;d<b.length;d++)b[d]=new JU.V3;for(d=h=0;d<this.nAxes[22];d++)b[h++].setT(this.axes[22][d].normalOrAxis),b[h].setT(this.axes[22][d].normalOrAxis),b[h++].scale(-1);for(d=b.length;2<=--d;)for(h=d;1<=--h;)for(g=h;0<=--g;)f.add2(b[d],b[h]),
f.add(b[g]),1>f.length()||this.checkForAxis(23,f);h=2147483647;b=-1;for(d=0;d<this.maxElement;d++)this.eCounts[d]<h&&2<this.eCounts[d]&&(h=this.eCounts[d],b=d);d=0;a:for(;d<this.points.length-2;d++)if(this.elements[d]==b)for(h=d+1;h<this.points.length-1;h++)if(this.elements[h]==b)for(g=h+1;g<this.points.length;g++)if(this.elements[g]==b&&(a.sub2(this.points[d],this.points[h]),c.sub2(this.points[d],this.points[g]),a.normalize(),c.normalize(),f.cross(a,c),this.getAllAxes(f),a.add2(this.points[d],this.points[h]),
a.add(this.points[g]),a.normalize(),this.isParallel(a,f)||this.getAllAxes(a),this.nAxes[25]==JS.PointGroup.axesMaxN[25]))break a;b=Array(this.maxElement);for(d=this.points.length;0<=--d;){g=this.elements[d];if(null==b[g])b[g]=new JU.V3;else if(this.haveInversionCenter)continue;b[g].add(this.points[d])}if(!this.haveInversionCenter)for(d=0;d<this.maxElement;d++)null!=b[d]&&b[d].scale(1/this.eCounts[d]);for(d=0;d<this.maxElement;d++)if(null!=b[d])for(h=0;h<this.maxElement;h++)d==h||null==b[h]||(this.haveInversionCenter?
a.cross(b[d],b[h]):a.sub2(b[d],b[h]),this.checkForAxis(22,a));return this.getHighestOrder()});e(b,"getAllAxes",function(a){for(var c=22;c<JS.PointGroup.maxAxis;c++)this.nAxes[c]<JS.PointGroup.axesMaxN[c]&&this.checkForAxis(c,a)},"JU.V3");e(b,"getHighestOrder",function(){for(var a=0,a=20;1<--a&&0==this.nAxes[a];);if(1<a)return a+20<JS.PointGroup.maxAxis&&0<this.nAxes[a+20]?a+20:a;for(a=JS.PointGroup.maxAxis;1<--a&&0==this.nAxes[a];);return a});e(b,"checkForAxis",function(a,c){if(!this.isCompatible(a))return!1;
c.normalize();if(this.haveAxis(a,c))return!1;var f=JS.PointGroup.getQuaternion(c,a);if(!this.checkOperation(f,this.center,a))return!1;this.addAxis(a,c);this.checkForAssociatedAxes(a,c);return!0},"~N,JU.V3");e(b,"checkForAssociatedAxes",function(a,c){switch(a){case 22:this.checkForAxis(4,c);break;case 23:this.checkForAxis(3,c);this.haveInversionCenter&&this.addAxis(6,c);break;case 24:this.addAxis(22,c);this.checkForAxis(4,c);this.checkForAxis(8,c);break;case 25:this.checkForAxis(5,c);this.haveInversionCenter&&
this.addAxis(10,c);break;case 26:this.addAxis(22,c);this.addAxis(23,c);this.checkForAxis(3,c);this.checkForAxis(6,c);this.checkForAxis(12,c);break;case 27:this.checkForAxis(6,c);this.haveInversionCenter&&this.addAxis(14,c);break;case 28:this.addAxis(22,c),this.addAxis(24,c),this.checkForAxis(4,c),this.checkForAxis(8,c),this.checkForAxis(16,c)}},"~N,JU.V3");e(b,"isCompatible",function(a){switch(a){case 28:if(0<this.nAxes[7]||0<this.nAxes[23])return!1;case 26:case 24:if(0<this.nAxes[27]||0<this.nAxes[25])return!1;
break;case 23:if(0<this.nAxes[27]||0<this.nAxes[28])return!1;break;case 25:if(0<this.nAxes[24]||0<this.nAxes[26]||0<this.nAxes[27]||0<this.nAxes[28])return!1;break;case 27:if(0<this.nAxes[23]||0<this.nAxes[24]||0<this.nAxes[25]||0<this.nAxes[26]||0<this.nAxes[28])return!1}return!0},"~N");e(b,"haveAxis",function(a,c){if(this.nAxes[a]==JS.PointGroup.axesMaxN[a])return!0;if(0<this.nAxes[a])for(var f=this.nAxes[a];0<=--f;)if(this.isParallel(c,this.axes[a][f].normalOrAxis))return!0;return!1},"~N,JU.V3");
e(b,"addAxis",function(a,c){this.haveAxis(a,c)||(null==this.axes[a]&&(this.axes[a]=Array(JS.PointGroup.axesMaxN[a])),this.axes[a][this.nAxes[a]++]=this.newAxis(++this.nOps,c,a))},"~N,JU.V3");e(b,"findPlanes",function(){for(var a=new JU.P3,c=new JU.V3,f=new JU.V3,d=new JU.V3,b=0,g=1<this.getHighestOrder(),e=this.points.length;0<=--e;)if(e!=this.centerAtomIndex)for(var l=this.points[e],k=this.elements[e],j=this.points.length;--j>e;)if(!(g&&this.elements[j]!=k)&&(b=this.points[j],a.add2(l,b),a.scale(0.5),
c.sub2(l,this.center),f.sub2(b,this.center),c.normalize(),f.normalize(),this.isParallel(c,f)||(d.cross(c,f),d.normalize(),this.addPlane(d)),d.sub2(b,l),d.normalize(),b=this.addPlane(d),b==JS.PointGroup.axesMaxN[0]))return b;if(g)for(e=22;e<JS.PointGroup.maxAxis;e++)for(j=0;j<this.nAxes[e];j++)b=this.addPlane(this.axes[e][j].normalOrAxis);return b});e(b,"findAdditionalAxes",function(a){var c=this.axes[0],f=0;if(1<a&&(f=a+20)<JS.PointGroup.maxAxis&&0==this.nAxes[f])this.vTemp.cross(c[0].normalOrAxis,
c[1].normalOrAxis),!this.checkForAxis(f,this.vTemp)&&2<a&&(this.vTemp.cross(c[1].normalOrAxis,c[2].normalOrAxis),this.checkForAxis(f-1,this.vTemp));if(0==this.nAxes[22]&&2<a)for(f=0;f<a-1;f++)for(var d=f+1;d<a;d++)this.vTemp.add2(c[1].normalOrAxis,c[2].normalOrAxis),this.checkForAxis(22,this.vTemp)},"~N");e(b,"addPlane",function(a){!this.haveAxis(0,a)&&this.checkOperation(JU.Quat.newVA(a,180),this.center,-1)&&(this.axes[0][this.nAxes[0]++]=this.newPlane(++this.nOps,a));return this.nAxes[0]},"JU.V3");
e(b,"getName",function(){return this.getNameByConvention(this.name)});e(b,"updateDraw",function(){return null});e(b,"getInfo",function(a,c,f,d,b,g,e,l){if(null==d&&null==g&&!b&&null!=this.textInfo)return this.textInfo;null!=d&&(this.modelIndex=a,this.drawID=d,this.type=g,this.index=e,this.scaleFactor=l);this.operations=new JU.Lst;var k=null!=g&&0<=g.indexOf("u");if(null==c&&null==f&&null==d&&null!=this.drawInfo&&this.drawIndex==e&&this.scale==this.scale&&this.drawType.equals(null==g?"":g))return this.drawInfo;
if(b&&null!=this.info)return this.info;var j=null!=d,s=this.info=null,p=new JU.V3,u;0==l&&(l=1);this.scale=l;for(var r=N(4,2,0),q=1;q<JS.PointGroup.maxAxis;q++)for(var n=this.nAxes[q];0<=--n;)r[this.axes[q][n].type][0]++;var m=(new JU.SB).append("# ").appendI(this.nAtoms).append(" atoms\n"),w=this.getNameByConvention(this.name),v=!1,q=this.haveInversionCenter?la(JS.PointGroup.Operation,this,null,null):null;null!=q&&this.operations.addLast(q);if(j){this.drawType=g=(s=null!=g&&0<g.length)?g:"";this.drawIndex=
e;var z=g.equalsIgnoreCase(this.getNameByConvention("Cn")),j=g.equalsIgnoreCase(this.getNameByConvention("Sn"));b="set perspectivedepth off;draw "+d+" delete;\n";var A="_"+a+"_";(k||!s)&&m.append(this.getDrawID("pg0"+A+"* delete;")+this.getDrawID("pgva"+A+"* delete;")+this.getDrawID("pgvp"+A+"* delete;"));if(!s||g.equalsIgnoreCase("Ci")||g.equalsIgnoreCase("-u,-v,-w")){var y=m.length();m.append(this.getDrawID("pg0"+A+(this.haveInversionCenter?"inv":"")));null!=q&&(q.drawID=m.substring(y),v=k);m.append(" ").append(JU.Escape.eP(this.center)).append(this.haveInversionCenter?
'"i";\n':";\n");null!=q&&(q.drawStr=m.substring(y),System.out.println(q))}for(var x=0.1,W=this.isSpinGroup?1.9:0.05,q=2;q<JS.PointGroup.maxAxis&&!v;q++)if(20==q&&(x=0.1),0!=this.nAxes[q]){a=this.$isLinear?"C\u221e":this.getOpName(this.axes[q][0],!1);d=this.$isLinear?"\u221e":this.getOpName(this.axes[q][0],!0);var x=x+0.25,B=1.05*l*this.radius+80*x/this.sppa,E=20<=q;this.highestOrder=this.getHighestOrder();if(k||!s||g.equalsIgnoreCase(d)||z&&E||j&&!E)for(n=0;n<this.nAxes[q];n++)if(!(0<e&&n+1!=e)&&
(u=this.axes[q][n],!k||u.isUVW(g))){v=k;this.operations.addLast(u.operation=la(JS.PointGroup.Operation,this,null,u));var y=m.length(),K=this.getDrawID("pgva"+A+a.$replace("\u221e","infinity")+(n+1)+"\u0001");u.operation.drawID=m.substring(y).$replace("\u0001"," ");this.drawAxis(m,u,K,d,W,B,E,"a",p);this.drawAxis(m,u,K,d,W,B,E,"b",p);u.operation.drawStr=m.substring(y);JU.Logger.debugging&&JU.Logger.debug(u.operation.toString())}}if(k||!s||g.equalsIgnoreCase(this.getNameByConvention("Cs"))){for(n=0;n<
this.nAxes[0]&&!v;n++)if(!(0<e&&n+1!=e)&&(u=this.axes[0][n],!k||u.isUVW(g)))v=k,this.operations.addLast(u.operation=la(JS.PointGroup.Operation,this,null,u)),K=u.operation.drawID=this.getDrawID("pgvp"+A+(n+1)+"\u0001"),y=m.length(),this.drawPlane(m,u,K,l,p),u.operation.drawStr=m.substring(y),JU.Logger.debugging&&JU.Logger.debug(u.operation.toString());k&&(null!=c&&null!=f)&&(g=this.getDrawID("pg0"+A+"_line"),m.append(g).append(" width "+W/2+" "+c+f+" color yellow;"))}m.append("# name=").append(w);
m.append(", n"+this.getNameByConvention("Ci")+"=").appendI(this.haveInversionCenter?1:0);m.append(", n"+this.getNameByConvention("Cs")+"=").appendI(this.nAxes[0]);m.append(", n"+this.getNameByConvention("Cn")+"=").appendI(r[1][0]);m.append(", n"+this.getNameByConvention("Sn")+"=").appendI(r[2][0]);m.append(": ");for(q=JS.PointGroup.maxAxis;2<=--q;)0<this.nAxes[q]&&(r=this.getNameByConvention((20>q?"S":"C")+q%20),m.append(" n").append(r),m.append("=").appendI(this.nAxes[q]));m.append(";\n");m.append("print '"+
w+"';\n");this.drawInfo=b+m.toString();JU.Logger.debugging&&JU.Logger.info(this.drawInfo);return this.drawInfo}n=0;c=1;f=0;q=this.haveInversionCenter?this.getNameByConvention("Ci"):"center";this.haveInversionCenter&&(c++,f++);b?(this.info=new java.util.Hashtable,s=new JU.Lst,null!=this.center&&(this.info.put(q,this.center),this.haveInversionCenter&&this.info.put("center",this.center),this.info.put(q,this.center)),this.info.put("elements",s),this.haveInversionCenter&&(this.info.put("Ci_m",JU.M3.newM3(JS.PointGroup.mInv)),
e=new java.util.Hashtable,this.axes[1][0].setInfo(null,null,e),e.put("location",this.center),e.put("type",this.getNameByConvention("Ci")),s.addLast(e))):m.append("\n\n").append(w).append("\t").append(q).append("\t").append(JU.Escape.eP(this.center));for(q=JS.PointGroup.maxAxis;0<=--q;)if(!(1==q||0==this.nAxes[q])){n=JS.PointGroup.nUnique[q];l=this.axes[q];a=this.getOpName(l[0],!1);d=this.getOpName(l[0],!0);k=this.nAxes[q];b?this.info.put("n"+a,Integer.$valueOf(this.nAxes[q])):m.append("\n\n").append(w).append("\tn").append(d).append("\t").appendI(k).append("\t").appendI(n);
n*=k;c+=n;f+=k;r[l[0].type][1]+=n;p=b?new JU.Lst:null;v=b?new JU.Lst:null;for(n=0;n<k;n++)if(A=l[n],null==g||A.isUVW(g))!j&&null==A.operation&&this.operations.addLast(A.operation=la(JS.PointGroup.Operation,this,null,A)),b?(e=new java.util.Hashtable,A.setInfo(p,v,e),e.put("type",d),s.addLast(e)):m.append("\n").append(w).append("\t").append(a).append("_").appendI(n+1).append("\t").appendO(A.normalOrAxis);b&&(this.info.put(a,p),this.info.put(a+"_m",v))}if(b&&null!=this.highOperations)for(w=this.highOperations.iterator();w.hasNext()&&
((z=w.next())||1);)e=new java.util.Hashtable,z.setInfo(null,null,e),e.put("type",this.getNameByConvention(z.schName)),s.addLast(e);if(!b)return this.textInfo=this.getTextInfo(m,r,c);this.info.put("name",this.name);this.info.put("hmName",this.getHermannMauguinName());this.info.put("nAtoms",Integer.$valueOf(this.nAtoms));this.info.put("nTotal",Integer.$valueOf(c));this.info.put("nElements",Integer.$valueOf(f));this.info.put("nCi",Integer.$valueOf(this.nAxes[1]));this.info.put("nC2",Integer.$valueOf(this.nAxes[22]));
this.info.put("nC3",Integer.$valueOf(this.nAxes[23]));this.info.put("nCs",Integer.$valueOf(this.nAxes[0]));this.info.put("nCn",Integer.$valueOf(r[1][0]));this.info.put("nSn",Integer.$valueOf(r[2][0]));this.info.put("distanceTolerance",Float.$valueOf(this.distanceTolerance));this.info.put("linearTolerance",Float.$valueOf(this.linearTolerance));this.info.put("points",this.points);this.info.put("detail",m.toString().$replace("\n",";"));null!=this.principalAxis&&0<this.principalAxis.index&&this.info.put("principalAxis",
this.principalAxis.normalOrAxis);null!=this.principalPlane&&0<this.principalPlane.index&&this.info.put("principalPlane",this.principalPlane.normalOrAxis);return this.info},"~N,JU.T3,JU.T3,~S,~B,~S,~N,~N");e(b,"getDrawID",function(a){var c=a.indexOf(" ");0>c&&(c=a.length);a=a.substring(0,c)+'"'+a.substring(c);return"draw"+(0<=a.indexOf("*")?"":" model "+this.modelIndex)+' ID "'+a},"~S");e(b,"drawPlane",function(a,c,f,d,b){a.append(f.$replace("\u0001","disk"));a.append(" scale ").appendD(2*d*this.radius).append(" CIRCLE PLANE ").append(JU.Escape.eP(this.center));
b.add2(c.normalOrAxis,this.center);a.append(JU.Escape.eP(b)).append(" color translucent yellow;\n");b.add2(c.normalOrAxis,this.center);a.append(f.$replace("\u0001","ring"));a.append(" width 0.05 scale ").appendD(2*d*this.radius).append(" arc ").append(JU.Escape.eP(b));b.scaleAdd2(-2,c.normalOrAxis,b);a.append(JU.Escape.eP(b));b.add3(0.011,0.012,0.013);a.append(JU.Escape.eP(b)).append("{0 360 0.5} color ").append(null!=this.principalPlane&&c.index==this.principalPlane.index?"red":"blue").append(";\n")},
"JU.SB,JS.PointGroup.Operator,~S,~N,JU.V3");e(b,"drawAxis",function(a,c,f,d,b,g,e,l,k){var j=!this.$isLinear&&null!=this.principalAxis&&c.index==this.principalAxis.index,s=a.length();a.append(" color ").append(j?"red":2==c.type?"blue":"orange").append(";\n");j=a.substring(s);a.setLength(s);a.append(f.$replace("\u0001",l));k.scaleAdd2(("a"==l?1:-1)*g,c.normalOrAxis,this.center);a.append(" width "+b).append(" ").append(JU.Escape.eP(this.center)).append(JU.Escape.eP(k));if(e&&2!=c.order&&"a"==l||2==
c.order||!e&&"b"==l)d=JU.PT.esc(">"+this.getAxisLabelOffset(c,this.highestOrder)+d),a.append(d);a.append(j)},"JU.SB,JS.PointGroup.Operator,~S,~S,~N,~N,~B,~S,JU.V3");e(b,"getAxisLabelOffset",function(a,c){switch(a.type){case 2:case 1:switch(a.order){case 3:return 0==c%6?"   ":"";case 4:return 0==c%12?"       ":"   ";case 6:return 0==c%12?"           ":"";case 8:return"       ";case 12:return"               ";default:return""}default:case 0:case 3:return""}},"JS.PointGroup.Operator,~N");e(b,"getTextInfo",
function(a,c,f){a.append("\n");a.append("\n").append(this.name).append("\ttype\tnElements\tnUnique");a.append("\n").append(this.name).append("\t"+this.getNameByConvention("E")+"\t  1\t  1");a.append("\n").append(this.name).append("\t"+this.getNameByConvention("Ci")+"\t  ").appendI(this.nAxes[1]).append("\t  ").appendI(this.nAxes[1]);a.append("\n").append(this.name).append("\t"+this.getNameByConvention("Cs")+"\t");JU.PT.rightJustify(a,"    ",this.nAxes[0]+"\t");JU.PT.rightJustify(a,"    ",this.nAxes[0]+
"\n");a.append(this.name).append("\t"+this.getNameByConvention("Cn")+"\t");JU.PT.rightJustify(a,"    ",c[1][0]+"\t");JU.PT.rightJustify(a,"    ",c[1][1]+"\n");a.append(this.name).append("\t"+this.getNameByConvention("Sn")+"\t");JU.PT.rightJustify(a,"    ",c[2][0]+"\t");JU.PT.rightJustify(a,"    ",c[2][1]+"\n");a.append(this.name).append("\t\tTOTAL\t");JU.PT.rightJustify(a,"    ",f+"\n");return a.toString()},"JU.SB,~A,~N");b.getQuaternion=e(b,"getQuaternion",function(a,c){return JU.Quat.newVA(a,(20>
c?180:0)+(0==c?0:C(360/(c%20))))},"JU.V3,~N");e(b,"isLinear",function(a){var c=null;if(2>a.length)return!1;for(var f=a.length;0<=--f;)if(f!=this.centerAtomIndex)if(null==c)c=new JU.V3,c.sub2(a[f],this.center),c.normalize(),this.vTemp.setT(c);else if(this.vTemp.sub2(a[f],this.center),this.vTemp.normalize(),!this.isParallel(c,this.vTemp))return!1;return!0},"~A");e(b,"isParallel",function(a,c){return Math.abs(a.dot(c))>=this.cosTolerance},"JU.V3,JU.V3");e(b,"isPerpendicular",function(a,c){return Math.abs(a.dot(c))<=
1-this.cosTolerance},"JU.V3,JU.V3");e(b,"isEqual",function(a){if(null==a||(this.convention!=a.convention||this.linearTolerance!=a.linearTolerance||this.distanceTolerance!=a.distanceTolerance||this.nAtoms!=a.nAtoms||this.localEnvOnly!=a.localEnvOnly||this.haveVibration!=a.haveVibration||null==this.bsAtoms?null!=a.bsAtoms:!this.bsAtoms.equals(a.bsAtoms)))return!1;for(var c=0;c<this.nAtoms;c++)if(this.elements[c]!=a.elements[c]||!this.points[c].equals(a.points[c]))return!1;return!0},"JS.PointGroup");
e(b,"getHermannMauguinName",function(){return JS.PointGroup.getHMfromSFName(this.name)});e(b,"getNameByConvention",function(a){switch(this.convention){default:case 0:return a;case 1:return JS.PointGroup.getHMfromSFName(a)}},"~S");e(b,"getOpName",function(a,c){return c?this.getNameByConvention(a.schName):a.schName},"JS.PointGroup.Operator,~B");b.getHMfromSFName=e(b,"getHMfromSFName",function(a){if(null==JS.PointGroup.htSFToHM){JS.PointGroup.htSFToHM=new java.util.Hashtable;var c=JS.PointGroup.SF2HM;
JS.PointGroup.addNames("E","1");JS.PointGroup.addNames("Ci","-1");JS.PointGroup.addNames("Cn","n");JS.PointGroup.addNames("Sn","-n");for(var f=0;f<c.length;f++){var d=c[f].$plit(","),b=d[0];if(2==d.length)JS.PointGroup.addNames(b,d[1]);else{for(var g=b.substring(0,1),b=b.substring(2,b.length),e=1;13>e;e++){var l=d[e];0<l.length&&(JS.PointGroup.addNames(g+e+b,l),JU.Logger.debugging&&JU.Logger.debug(g+e+b+"\t"+l))}14==d.length&&JS.PointGroup.addNames(g+"\u221e"+b,d[13])}}}c=JS.PointGroup.htSFToHM.get(a);
return null==c?a:c},"~S");b.addNames=e(b,"addNames",function(a,c){JS.PointGroup.htSFToHM.put(a,c);JS.PointGroup.htSFToHM.put(c,a)},"~S,~S");b.$PointGroup$Operation$=function(){var a=M(function(){Ia(this,arguments);this.drawStr=this.drawID=this.operator=null;this.isTrivial=!1;this.typeName=null;this.type=0;S(this,arguments)},JS.PointGroup,"Operation",null);V(a,function(c){this.operator=c;this.type=null==c?3:c.type;this.typeName=null==c?"Ci":c.schName;this.isTrivial=this.checkTrivial()},"JS.PointGroup.Operator");
e(a,"checkTrivial",function(){for(var c=this.b$["JS.PointGroup"].distanceTolerance,a=this.b$["JS.PointGroup"].points.length;0<=--a;){var d;switch(this.type){case 0:case 2:case 1:d=this.operator.distance(this.b$["JS.PointGroup"].points[a]);break;default:case 3:d=this.b$["JS.PointGroup"].points[a].length()}if(d>c)return!1}System.out.println(this+" is trivial");return!0});m(a,"toString",function(){return"[op "+this.typeName+" "+this.drawID+" "+this.isTrivial+"]"})};b.$PointGroup$Operator$=function(){var a=
M(function(){Ia(this,arguments);this.index=this.type=0;this.mat=this.normalOrAxis=null;this.axisArrayIndex=this.order=0;this.uniqueUVWs=this.operation=this.mats=this.uniqueMats=this.uvws=this.schName=null;S(this,arguments)},JS.PointGroup,"Operator",null);V(a,function(c,a,d){this.index=c;null==a?(this.type=3,this.axisArrayIndex=1,this.order=2,this.schName="Ci",this.mat=JS.PointGroup.mInv):(this.normalOrAxis=JU.Quat.newVA(a,180).getNormal(),-1==d?(this.axisArrayIndex=this.type=0,this.order=2,this.schName=
"Cs"):(this.type=20>d?2:1,this.axisArrayIndex=d,this.order=d%20,this.schName=(2==this.type?"S":"C")+this.order));JU.Logger.debugging&&JU.Logger.debug("new operation -- "+c+" "+this.schName+(null==this.normalOrAxis?"":" "+this.normalOrAxis))},"~N,JU.V3,~N");e(a,"getM3",function(){if(null!=this.mat)return this.mat;var c=JU.M3.newM3(JS.PointGroup.getQuaternion(this.normalOrAxis,this.axisArrayIndex).getMatrix());(0==this.type||2==this.type)&&c.mul(JS.PointGroup.mInv);this.cleanMatrix(c);return this.mat=
c});e(a,"distance",function(c){var a=JU.P3.newP(c);this.getM3().rotate(a);return a.distance(c)},"JU.T3");e(a,"cleanMatrix",function(c){for(var a=0;3>a;a++)for(var d=0;3>d;d++)c.setElement(a,d,this.approx0(c.getElement(a,d)))},"JU.M3");e(a,"approx0",function(c){return 1E-15<c||-1E-15>c?c:0},"~N");e(a,"getMatrices",function(c){if(c&&null!=this.uniqueMats)return this.uniqueMats;if(!c&&null!=this.mats)return this.mats;var a=new JU.Lst,d=new JU.M3;d.m00=d.m11=d.m22=1;for(var b=c?JS.PointGroup.getUniqueFractions(this.order):
null,g=1;g<this.order;g++)d.mul(this.getM3()),(!c||b.get(g))&&a.addLast(JU.M3.newM3(d));c?this.uniqueMats=a:this.mats=a;return a},"~B");m(a,"toString",function(){return this.schName+" "+this.normalOrAxis});e(a,"setInfo",function(c,a,d){null!=c&&(c.addLast(this.normalOrAxis),a.addLast(this.getM3()));d.put("order",Integer.$valueOf(this.order));d.put("typeSch",this.schName);d.put("typeHM",JS.PointGroup.getHMfromSFName(this.schName));null!=this.normalOrAxis&&d.put("direction",this.normalOrAxis);c=this.getMatrices(!0);
d.put("uniqueOperations",c);d.put("uniqueOperationUVWs",this.getUVWs(c,!0));c.size()!=this.order-1&&d.put("matrixIndices",JS.PointGroup.bsUnique.get(Integer.$valueOf(this.order)));c=this.getMatrices(!1);d.put("operations",c);d.put("operationUVWs",this.getUVWs(c,!1))},"JU.Lst,JU.Lst,java.util.Map");e(a,"getUVWs",function(c,a){var d=a?this.uniqueUVWs:this.uvws;if(null!=d)return d;for(var d=new JU.Lst,b=0;b<c.size();b++)d.addLast(JS.SymmetryOperation.staticConvertOperation(null,c.get(b),"uvw"));a&&(this.uniqueUVWs=
d);return d},"JU.Lst,~B");e(a,"isUVW",function(c){for(var a=this.getUVWs(this.getMatrices(!0),!0),d=0,b=a.size();d<b;d++)if(a.get(d).equals(c))return!0;return!1},"~S")};b.bsUnique=new java.util.Hashtable;b.typeNames=E(-1,["plane","proper axis","improper axis","center of inversion"]);b.mInv=JU.M3.newA9(D(-1,[-1,0,0,0,-1,0,0,0,-1]));b.axesMaxN=N(-1,[49,0,0,1,3,1,10,1,1,0,6,0,1,0,1,0,1,0,0,0,0,0,49,10,6,6,10,1,1]);b.nUnique=N(-1,[1,0,0,2,2,4,2,1,1,0,6,0,1,0,1,0,1,0,0,0,0,0,1,2,2,4,2,6,4]);b.maxAxis=
JS.PointGroup.axesMaxN.length;b.SF2HM="Cn,1,2,3,4,5,6,7,8,9,10,11,12|Cnv,m,2m,3m,4mm,5m,6mm,7m,8mm,9m,10mm,11m,12mm,\u221em|Sn,,-1,-6,-4,(-10),-3,(-14),-8,(-18),-5,(-22),(-12)|Cnh,m,2/m,-6,4/m,-10,6/m,-14,8/m,-18,10/m,-22,12/m|Dn,,222,32,422,52,622,72,822,92,(10)22,(11)2,(12)22|Dnd,,-42m,-3m,-82m,-5m,(-12)2m,-7m,(-16)2m,-9m,(-20)2m,(-11)m,(-24)2m|Dnh,,mmm,-6m2,4/mmm,(-10)m2,6/mmm,(-14)m2,8/mmm,(-18)m2,10/mmm,(-22)m2,12/mmm,\u221e/mm|Ci,-1|Cs,m|T,23|Th,m-3|Td,-43m|O,432|Oh,m-3m".$plit("\\|");b.htSFToHM=
null});aa("JS");$(["JS.HallInfo","java.util.Hashtable"],"JS.SpaceGroup","java.util.Arrays JU.AU $.Lst $.M3 $.M4 $.P3 $.PT $.SB JS.Symmetry $.SymmetryOperation $.UnitCell JU.Logger $.SimpleUnitCell".split(" "),function(){var b=M(function(){this.specialPrefix="";this.ssgNumber=this.spinConfiguration=this.spinList=this.displayName=this.strName=this.spinFrameTransform=null;this.groupType=0;this.xyzList=this.allOperations=this.finalOperations=this.symmetryOperations=null;this.axisChoice=this.uniqueAxis=
"\x00";this.jmolId=this.itaNumber=null;this.operationCount=0;this.latticeOp=-1;this.isBio=!1;this.latticeType="P";this.itaTransform=null;this.setNo=this.itaNo=0;this.sfIndex=-1;this.itaIndex=null;this.nDim=3;this.periodicity=7;this.canonicalCLEG=this.clegId=null;this.index=0;this.referenceIndex=-1;this.isSSG=!1;this.name="unknown!";this.hallInfo=this.jmolIdExt=this.hmSymbol=this.crystalClass=this.hallSymbolAlt=this.hallSymbol=null;this.modDim=this.latticeParameter=0;this.doNormalize=!0;this.hmSymbolAbbrShort=
this.hmSymbolAlternative=this.hmSymbolAbbr=this.hmSymbolExt=this.hmSymbolFull=this.nHallOperators=this.info=null;this.ambiguityType="\x00";this.isSpinSpaceGroup=!1;S(this,arguments)},JS,"SpaceGroup",null,[Cloneable,JS.HallInfo.HallReceiver]);V(b,function(c,a,d){++JS.SpaceGroup.sgIndex;0>c&&(c=JS.SpaceGroup.sgIndex);this.index=c;this.init(d&&null==a);d&&null!=a&&this.buildSelf(a)},"~N,~S,~B");e(b,"getSpecialPrefix",function(){return this.specialPrefix});e(b,"setFrom",function(c,a){a?(this.setName(c.isSpinSpaceGroup?
c.name:c.itaNumber.equals("0")?this.clegId:"HM:"+c.hmSymbolFull+" #"+c.clegId),this.referenceIndex=-2):(this.setName(c.getName()),this.referenceIndex=c.index);this.latticeType=c.latticeType;this.specialPrefix=c.specialPrefix;this.periodicity=c.periodicity;this.groupType=c.groupType;this.setClegId(c.getClegId());this.isSpinSpaceGroup=c.isSpinSpaceGroup;this.itaIndex=c.itaIndex;this.itaNumber=c.itaNumber;this.ssgNumber=c.ssgNumber;this.itaTransform=c.itaTransform;this.crystalClass=c.crystalClass;this.hallSymbol=
c.hallSymbol;this.hmSymbol=c.hmSymbol;this.hmSymbolAbbr=c.hmSymbolAbbr;this.hmSymbolAbbrShort=c.hmSymbolAbbrShort;this.hmSymbolAlternative=c.hmSymbolAlternative;this.hmSymbolExt=c.hmSymbolExt;this.hmSymbolFull=c.hmSymbolFull;this.spinFrameTransform=c.spinFrameTransform;this.strName=this.displayName=this.jmolIdExt=this.jmolId=null;return this},"JS.SpaceGroup,~B");b.getNull=e(b,"getNull",function(c,a,d){c=new JS.SpaceGroup(-1,null,c);c.doNormalize=a;d&&c.setFinalOperations();return c},"~B,~B,~B");e(b,
"init",function(c){this.xyzList=new java.util.Hashtable;this.operationCount=0;c&&this.addSymmetry("x,y,z",0,!1)},"~B");b.createSpaceGroup=e(b,"createSpaceGroup",function(c,a,d,b){var g=null;0<=c?g=JS.SpaceGroup.SG[c]:(g=L(d,"JU.Lst")?JS.SpaceGroup.createSGFromList(a,d):JS.SpaceGroup.determineSpaceGroupNA(a,d),null==g&&(g=JS.SpaceGroup.createSpaceGroupN(0>=b?a:"x1,x2,x3,x4,x5,x6,x7,x8,x9".substring(0,3*b+8),!0)));null!=g&&g.generateMatrixOperators(null);return g},"~N,~S,~O,~N");e(b,"getItaIndex",function(){return null!=
this.itaIndex&&!"--".equals(this.itaIndex)?this.itaIndex:!"0".equals(this.itaNumber)?this.itaNumber:!"--".equals(this.hallSymbol)?"["+this.hallSymbol+"]":"?"});e(b,"getIndex",function(){return 0<=this.referenceIndex?this.referenceIndex:this.index});e(b,"setClegId",function(c){null==c&&(c=this.itaNumber+":"+this.itaTransform);this.clegId=c;this.canonicalCLEG=JS.SpaceGroup.canonicalizeCleg(c)},"~S");e(b,"getClegId",function(){return this.clegId});b.createSGFromList=e(b,"createSGFromList",function(c,
a){var d=new JS.SpaceGroup(-1,"0;--;--;0;--;--;--",!0);d.doNormalize=!1;d.setName(c);var b=a.size();if(0==b)return d;for(var g=0;g<b;g++){var e=a.get(g);if(L(e,"JS.SymmetryOperation")){var l=d.addOp(e,e.xyz,!1);d.symmetryOperations[l].setTimeReversal(e.timeReversal)}else d.addSymmetrySM("xyz matrix:"+e,e)}d.setFinalOperationsSafely();b=d.getReferenceSpaceGroup();null!=b&&(d=b);return d},"~S,JU.Lst");e(b,"addSymmetry",function(c,a,d){c=c.toLowerCase();return 0>c.indexOf("[[")&&0>c.indexOf("x4")&&0>
c.indexOf(";")&&0>c.indexOf("u")&&(0>c.indexOf("x")||0>c.indexOf("y")||0>c.indexOf("z"))?-1:this.addOperation(c,a,d)},"~S,~N,~B");e(b,"setFinalOperationsSafely",function(){null==this.finalOperations&&this.setFinalOperations()});e(b,"setFinalOperations",function(){this.setFinalOperationsForAtoms(0==this.nDim?3:this.nDim,null,0,0,!1)});e(b,"setFinalOperationsForAtoms",function(c,a,d,b,g){if(null==this.hallInfo&&0!=this.latticeParameter){var e=new JS.HallInfo(JS.HallInfo.getHallLatticeEquivalent(this.latticeParameter));
this.generateMatrixOperators(e)}else this.checkCreateFromHall();this.finalOperations=null;this.isBio=0<=this.name.indexOf("bio");!this.isBio&&(this.index>=JS.SpaceGroup.SG.length&&this.allowCheckForReference())&&(e=this.getReferenceSpaceGroup(),null!=e&&e!==this&&this.setFrom(e,!1));0==this.operationCount&&this.addOperation("x,y,z",1,!1);this.finalOperations=Array(this.operationCount);var e=g&&0<b&&null!=a,l=null;if(e){l=this.finalOperations[0]=new JS.SymmetryOperation(this.symmetryOperations[0],
0,!0);null==l.sigma&&JS.SymmetryOperation.normalizeOperationToCentroid(c,l,a,d,b);var k=a[d],j=JU.P3.newP(k);l.rotTrans(j);if(1E-4<j.distance(k))for(var s=0;s<b;s++)k=a[d+s],j.setT(k),l.rotTrans(j),k.setT(j);g||(l=null)}for(s=0;s<this.operationCount;s++){if(0<s||null==l)l=this.finalOperations[s]=new JS.SymmetryOperation(this.symmetryOperations[s],0,g);e&&null==l.sigma&&JS.SymmetryOperation.normalizeOperationToCentroid(c,l,a,d,b);l.getCentering()}},"~N,~A,~N,~N,~B");e(b,"allowCheckForReference",function(){return 0==
this.modDim&&0==this.groupType&&null!=this.symmetryOperations&&0<this.symmetryOperations.length&&0==this.symmetryOperations[0].timeReversal&&0>this.name.indexOf("[subsystem")});b.newHallInfo=e(b,"newHallInfo",function(c){c.startsWith("Hall:")&&(c=c.substring(5).trim());return new JS.HallInfo(c)},"~S");e(b,"getOperationCount",function(){this.setFinalOperationsSafely();return this.finalOperations.length});e(b,"getOperation",function(c){return this.finalOperations[c]},"~N");e(b,"getAdditionalOperationsCount",
function(){this.setFinalOperationsSafely();null==this.allOperations&&(this.allOperations=JS.SymmetryOperation.getAdditionalOperations(this.finalOperations,this.periodicity<<4|this.nDim));return this.allOperations.length-this.getOperationCount()});e(b,"getAdditionalOperations",function(){this.getAdditionalOperationsCount();return this.allOperations});e(b,"getAllOperation",function(c){return this.allOperations[c]},"~N");e(b,"getXyz",function(c,a){return null==this.finalOperations?this.symmetryOperations[c].getXyz(a):
this.finalOperations[c].getXyz(a)},"~N,~B");b.findSpaceGroupFromXYZ=e(b,"findSpaceGroupFromXYZ",function(c){var a=new JS.SpaceGroup(-1,"0;--;--;0;--;--;--",!0);a.doNormalize=!1;c=c.$plit(";");for(var d=0,b=c.length;d<b;d++){var g=new JS.SymmetryOperation(null,d,!1);g.setMatrixFromXYZ(c[d],0,!1);a.addOp(g,c[d],!1)}return JS.SpaceGroup.findReferenceSpaceGroup(a.operationCount,a.getCanonicalSeitzList(),null)},"~S");b.getInfo=e(b,"getInfo",function(c,a,d,b,g){try{if(null!=c&&c.index>=JS.SpaceGroup.SG.length&&
c.allowCheckForReference()){var e=JS.SpaceGroup.findReferenceSpaceGroup(c.operationCount,c.getCanonicalSeitzList(),c.clegId);null!=e&&(c=e)}if(null!=d){if(null==c){0<=a.indexOf("[")&&(a=a.substring(0,a.indexOf("[")).trim());if(a.equals("unspecified!"))return"no space group identified in file";c=JS.SpaceGroup.determineSpaceGroupNA(a,d)}}else{if(a.equalsIgnoreCase("ALL"))return JS.SpaceGroup.dumpAll(b);if(a.equalsIgnoreCase("MAP"))return JS.SpaceGroup.dumpAll(!0);if(a.equalsIgnoreCase("ALLSEITZ"))return JS.SpaceGroup.dumpAllSeitz();
c=JS.SpaceGroup.determineSpaceGroupN(a)}if(null==c){var l=JS.SpaceGroup.createSpaceGroupN(a,!0);null!=l&&(l=JS.SpaceGroup.findReferenceSpaceGroup(l.operationCount,l.getCanonicalSeitzList(),l.clegId));null!=l&&(c=l)}if(null!=c){if(b)return c.dumpInfoObj();for(var k=new JU.SB;null!=c&&0==c.groupType&&!(c.index<JS.SpaceGroup.SG.length||g)&&g;)c.index<JS.SpaceGroup.SG.length&&(c=JS.SpaceGroup.SG[c.index]);c.getOperationCount();k.append(c.dumpInfo());return k.toString()}return b?null:"?"}catch(j){if(da(j,
Exception))return"?";throw j;}},"JS.SpaceGroup,~S,~A,~B,~B");e(b,"dumpInfo",function(){var c=new JU.SB;0!=this.groupType&&c.append("\ngroupType: ").append(JS.SpaceGroup.getSpecialGroupName(this.groupType));c.append("\nHermann-Mauguin symbol: ");null==this.hmSymbol||null==this.hmSymbolExt?c.append("?"):c.append(this.hmSymbol).append(0<this.hmSymbolExt.length?":"+this.hmSymbolExt:"");null!=this.itaNumber&&!"0".equals(this.itaNumber)&&c.append("\ninternational table number: ").append(this.itaNumber);
null!=this.crystalClass&&c.append("\ncrystal class: "+this.crystalClass);null!=this.jmolId&&c.append("\nJmol_ID: ").append(this.jmolId).append(" ("+this.itaIndex+")");null!=this.clegId&&c.append("\nCLEG: "+this.clegId);if(0==this.groupType){c.append("\n\n").append(null==this.hallInfo?"Hall symbol unknown":JU.Logger.debugging?this.hallInfo.dumpInfo():"");c.append("\n\n").appendI(this.operationCount).append(" operators").append(null!=this.hallInfo&&!this.hallInfo.getHallSymbol().equals("--")?" from Hall symbol "+
this.hallInfo.getHallSymbol():"").append(": ");for(var a=0;a<this.operationCount;a++)c.append("\n").append(this.symmetryOperations[a].xyz)}return c.toString()});e(b,"dumpInfoObj",function(){var c=this.dumpCanonicalSeitzList();if(L(c,"JS.SpaceGroup"))return c.dumpInfoObj();c=new java.util.Hashtable;if(null!=this.itaNumber&&!this.itaNumber.equals("0")){var a=null==this.hmSymbol||null==this.hmSymbolExt?"?":this.hmSymbol+(0<this.hmSymbolExt.length?":"+this.hmSymbolExt:"");c.put("index",Integer.$valueOf(this.index));
c.put("hm",a);c.put("HermannMauguinSymbol",a);c.put("ita",Integer.$valueOf(JU.PT.parseInt(this.itaNumber)));null!=this.hallInfo&&null!=this.hallInfo.getHallSymbol()&&c.put("HallSymbol",this.hallInfo.getHallSymbol());null!=this.hallSymbolAlt&&c.put("HallSymbolAlt",this.hallSymbolAlt);c.put("itaIndex",null==this.itaIndex?"n/a":this.itaIndex);c.put("clegId",null==this.itaIndex?"n/a":this.clegId);null!=this.jmolId&&c.put("jmolId",this.jmolId);null!=this.crystalClass&&c.put("crystalClass",this.crystalClass);
c.put("operationCount",Integer.$valueOf(this.operationCount))}else null!=this.hallInfo&&(null!=this.hallInfo.getHallSymbol()&&c.put("HallSymbol",this.hallInfo.getHallSymbol()),null!=this.hallSymbolAlt&&c.put("HallSymbolAlt",this.hallSymbolAlt),c.put("operationCount",Integer.$valueOf(this.operationCount)));for(var a=new JU.Lst,d=0;d<this.operationCount;d++)a.addLast(this.symmetryOperations[d].xyz);c.put("operationsXYZ",a);return c});e(b,"getCIFWriterValue",function(c,a){var d=null;switch(c){case "HermannMauguinSymbol":d=
this.hmSymbol;break;case "ita":d=this.itaNumber;break;case "HallSymbol":d=this.hallSymbol}if(null!=d)return d;null==this.info&&(this.info=JS.SpaceGroup.getInfo(this,this.hmSymbol,a.getUnitCellParams(),!0,!1));if("string"==typeof this.info)return null;d=this.info.get(c);return null==d?null:d.toString()},"~S,J.api.SymmetryInterface");e(b,"getName",function(){return this.name});e(b,"getShelxLATTDesignation",function(){return JS.HallInfo.getLatticeDesignation(this.latticeParameter)});e(b,"setLatticeParam",
function(c){this.latticeParameter=c;10<c&&(this.latticeParameter=-JS.HallInfo.getLatticeIndexFromCode(c))},"~N");e(b,"dumpCanonicalSeitzList",function(){this.checkCreateFromHall();var c=this.getCanonicalSeitzList();if(this.index>=JS.SpaceGroup.SG.length){var a=JS.SpaceGroup.findReferenceSpaceGroup(this.operationCount,c,this.clegId);if(null!=a)return a.getCanonicalSeitzList()}return(0<=this.index&&this.index<JS.SpaceGroup.SG.length?this.hallSymbol+" = ":"")+c});e(b,"checkCreateFromHall",function(){null!=
this.nHallOperators&&null!=this.hallSymbol&&(this.hallInfo=JS.SpaceGroup.newHallInfo(this.hallSymbol),this.generateMatrixOperators(null))});e(b,"getReferenceSpaceGroup",function(){if(-2==this.referenceIndex||0<=this.index&&this.index<JS.SpaceGroup.SG.length||!this.allowCheckForReference())return this;var c=this.getCanonicalSeitzList();return null==c?null:JS.SpaceGroup.findReferenceSpaceGroup(this.operationCount,c,this.clegId)});e(b,"getCanonicalSeitzList",function(){return JS.SpaceGroup.getCanonicalSeitzForOperations(this.symmetryOperations,
this.operationCount)});b.getCanonicalSeitzForOperations=e(b,"getCanonicalSeitzForOperations",function(c,a){for(var d=Array(a),b=0;b<a;b++)d[b]=JS.SymmetryOperation.dumpSeitz(c[b],!0);java.util.Arrays.sort(d,0,a);for(var g=(new JU.SB).append("\n["),b=0;b<a;b++)g.append(d[b].$replace("\t"," ").$replace("\n"," ")).append("; ");g.append("]");return g.toString()},"~A,~N");b.findReferenceSpaceGroup=e(b,"findReferenceSpaceGroup",function(c,a,d){c=JS.SpaceGroup.htByOpCount.get(Integer.$valueOf(c));if(null!=
c)for(var b=0,g=c.size();b<g;b++){var e=c.get(b);if(null!=d&&d.equals(e.clegId)||(null==e.clegId||null==d||d.equals("0:a,b,c"))&&0<=JS.SpaceGroup.getCanonicalSeitz(e.index).indexOf(a))return JS.SpaceGroup.SG[e.index]}return null},"~N,~S,~S");b.dumpAll=e(b,"dumpAll",function(c){if(c){var a=new JU.Lst;for(c=0;c<JS.SpaceGroup.SG.length;c++)a.addLast(JS.SpaceGroup.SG[c].dumpInfoObj());return a}a=new JU.SB;for(c=0;c<JS.SpaceGroup.SG.length;c++)a.append("\n----------------------\n"+JS.SpaceGroup.SG[c].dumpInfo());
return a.toString()},"~B");b.dumpAllSeitz=e(b,"dumpAllSeitz",function(){for(var c=new JU.SB,a=0;a<JS.SpaceGroup.SG.length;a++)c.append("\n").appendO(JS.SpaceGroup.getCanonicalSeitz(a));return c.toString()});b.getCanonicalSeitz=e(b,"getCanonicalSeitz",function(c){null==JS.SpaceGroup.canonicalSeitzList&&(JS.SpaceGroup.canonicalSeitzList=Array(JS.SpaceGroup.SG.length));var a=JS.SpaceGroup.canonicalSeitzList[c];return null==a?JS.SpaceGroup.canonicalSeitzList[c]=JS.SpaceGroup.SG[c].dumpCanonicalSeitzList().toString():
a},"~N");e(b,"setLattice",function(c,a){this.latticeParameter=JS.HallInfo.getLatticeIndex(c);a||(this.latticeParameter=-this.latticeParameter)},"~S,~B");b.createSpaceGroupN=e(b,"createSpaceGroupN",function(c,a){c=c.trim();var d=JS.SpaceGroup.determineSpaceGroupN(c);if(null==d&&a){var b=JS.SpaceGroup.newHallInfo(c);b.isGenerated()?(d=new JS.SpaceGroup(-1,"0;--;--;0;--;--;"+c,!0),d.hallInfo=b,d.hallSymbol=b.getHallSymbol(),d.setName("["+d.hallSymbol+"]"),d.jmolId=null):0<=c.indexOf(",")&&(d=new JS.SpaceGroup(-1,
"0;--;--;0;--;--;--",!0),d.doNormalize=!1,d.generateOperatorsFromXyzInfo(c))}if(null!=d)try{return d.generateMatrixOperators(null),d}catch(g){if(!da(g,Exception))throw g;}return null},"~S,~B");e(b,"addOperation",function(c,a,d){if(null==c||3>c.length)return this.init(!1),-1;c=JU.PT.rep(c," ","");var b="="==c.charAt(0);b&&(c=c.substring(1));var g=this.checkXYZlist(c);if(0<=g)return g;if(c.startsWith("x1,x2,x3,x4")&&0==this.modDim)this.xyzList.clear(),this.operationCount=0,this.modDim=JU.PT.parseInt(c.substring(c.lastIndexOf("x")+
1))-3;else if(0<=c.indexOf("m")||0<=c.indexOf("u"))if(c=JU.PT.rep(c,"+m","m"),c.equals("x,y,z,m")||c.equals("x,y,z(mx,my,mz)")||c.startsWith("x,y,z(")&&1==this.operationCount&&null==this.symmetryOperations[0].suvw)this.xyzList.clear(),this.operationCount=0;a=new JS.SymmetryOperation(null,a,this.doNormalize);if(!a.setMatrixFromXYZ(c,this.modDim,d))return-1;"!"==c.charAt(0)&&(c=c.substring(c.lastIndexOf("!")+1));return this.addOp(a,c,b)},"~S,~N,~B");e(b,"checkXYZlist",function(c){return this.xyzList.containsKey(c)?
this.xyzList.get(c).intValue():-1},"~S");e(b,"addOp",function(c,a,d){var b=c.xyz;if(!d){d=this.checkXYZlist(b);if(0<=d)return d;0>this.latticeOp&&(d=JU.PT.replaceAllCharacters(0<this.modDim?JS.SymmetryOperation.replaceXn(b,this.modDim+3):b,"+123/",""),this.xyzList.containsKey(d+"!")?this.latticeOp=this.operationCount:this.xyzList.put(d+"!",Integer.$valueOf(this.operationCount)));this.xyzList.put(b,Integer.$valueOf(this.operationCount))}b.equals(a)||this.xyzList.put(a,Integer.$valueOf(this.operationCount));
null==this.symmetryOperations&&(this.symmetryOperations=Array(4));this.operationCount==this.symmetryOperations.length&&(this.symmetryOperations=JU.AU.arrayCopyObject(this.symmetryOperations,2*this.operationCount));this.symmetryOperations[this.operationCount++]=c;c.number=this.operationCount;0!=c.timeReversal&&(this.symmetryOperations[0].timeReversal=1);JU.Logger.debugging&&JU.Logger.debug("\naddOperation "+this.operationCount+c.dumpInfo());return this.operationCount-1},"JS.SymmetryOperation,~S,~B");
e(b,"generateOperatorsFromXyzInfo",function(c){this.init(!0);c=JU.PT.split(c.toLowerCase(),";");for(var a=0;a<c.length;a++)this.addSymmetry(c[a],0,!1)},"~S");e(b,"generateMatrixOperators",function(c){if(null==c){if(0<this.operationCount)return;if(null==this.hallSymbol||this.hallSymbol.endsWith("?")){this.checkHallOperators();return}this.symmetryOperations=Array(4);if(null==this.hallInfo||!this.hallInfo.isGenerated())this.hallInfo=JS.SpaceGroup.newHallInfo(this.hallSymbol);this.setLattice(this.hallInfo.getLatticeCode(),
this.hallInfo.isCentrosymmetric());this.init(!0);c=this.hallInfo}c.generateAllOperators(this);null==this.hmSymbol&&(this.hmSymbol="--");this.hmSymbol.equals("--")&&(this.hallSymbol=c.getHallSymbol(),this.nHallOperators=Integer.$valueOf(this.operationCount));null!=this.nHallOperators&&this.operationCount!=this.nHallOperators.intValue()&&JU.Logger.error("Operator mismatch "+this.operationCount+" for "+this);c=c.getLatticeCode();switch(c.charCodeAt(0)){case 0:case 83:case 84:case 80:this.latticeType=
"P";break;default:this.latticeType=c}},"JS.HallInfo");e(b,"addSymmetrySM",function(c,a){var d=this.addOperation(c,0,!1);0<=d&&this.symmetryOperations[d].setM4(a);return d},"~S,JU.M4");b.determineSpaceGroupN=e(b,"determineSpaceGroupN",function(c){return JS.SpaceGroup.determineSpaceGroup(c,0,0,0,0,0,0,-1)},"~S");b.determineSpaceGroupNS=e(b,"determineSpaceGroupNS",function(c,a){return JS.SpaceGroup.determineSpaceGroup(c,0,0,0,0,0,0,a.index)},"~S,JS.SpaceGroup");b.determineSpaceGroupNA=e(b,"determineSpaceGroupNA",
function(c,a){return null==a?JS.SpaceGroup.determineSpaceGroup(c,0,0,0,0,0,0,-1):JS.SpaceGroup.determineSpaceGroup(c,a[0],a[1],a[2],a[3],a[4],a[5],-1)},"~S,~A");b.determineSpaceGroup=e(b,"determineSpaceGroup",function(c,a,d,b,g,e,l,k){c=JS.SpaceGroup.determineSpaceGroupIndex(c,a,d,b,g,e,l,k);return 0<=c?JS.SpaceGroup.SG[c]:null},"~S,~N,~N,~N,~N,~N,~N,~N");b.isXYZList=e(b,"isXYZList",function(c){return null!=c&&0<=c.indexOf(",")&&0>c.indexOf("(")&&0>c.indexOf(":")},"~S");b.determineSpaceGroupIndex=
e(b,"determineSpaceGroupIndex",function(c,a,d,b,e,h,l,k){if(JS.SpaceGroup.isXYZList(c))return-1;0>k&&(k=JS.SpaceGroup.SG.length);if(0<JS.SpaceGroup.getExplicitSpecialGroupType(c))return-1;c=c.trim().toLowerCase();c.startsWith("bilbao:")&&(c=c.substring(7));var j;j=c.indexOf("hall:");0<j&&(c=c.substring(j));var s=0<=c.indexOf(",")?6:c.startsWith("ita/")?4:c.startsWith("hall:")?5:c.startsWith("hm:")?3:0;switch(s){case 6:c=JS.SpaceGroup.canonicalizeCleg(c);break;case 3:case 5:case 4:c=c.substring(s);
break;case 0:c.contains("[")?(s=5,c=c.substring(0,c.indexOf("[")).trim()):0<c.indexOf(".")&&(s=4)}switch(s){case 6:for(j=0;j<k;j++)if(c.equals(JS.SpaceGroup.SG[j].canonicalCLEG))return j;return-1;case 5:for(j=0;j<k;j++)if(JS.SpaceGroup.SG[j].hallSymbol.equalsIgnoreCase(c))return j;return-1}var p=c,m=!1;4!=s&&(c=c.$replace("_"," "),2<=c.length&&(j=0==c.indexOf("-")?2:1,j<c.length&&" "!=c.charAt(j)&&(c=c.substring(0,j)+" "+c.substring(j)),c=JS.SpaceGroup.toCap(c,2)));var r="";if(0<(j=c.indexOf(":")))r=
c.substring(j+1),c=c.substring(0,j).trim(),m=0<r.length;4!=s&&(5!=s&&!m&&JU.PT.isOneOf(c,JS.SpaceGroup.ambiguousHMNames))&&(r="?",m=!0);var q=JU.PT.replaceAllCharacters(c," ()",""),n;switch(s){case 4:if(m)for(j=0;j<k;j++){if(p.equalsIgnoreCase(JS.SpaceGroup.SG[j].itaIndex))return j}else for(j=0;j<k;j++)if(c.equalsIgnoreCase(JS.SpaceGroup.SG[j].itaIndex))return j;break;case 6:case 5:break;default:case 3:if(3!=s)for(j=0;j<k;j++)if(JS.SpaceGroup.SG[j].jmolId.equalsIgnoreCase(p))return j;for(j=0;j<k;j++)if(JS.SpaceGroup.SG[j].hmSymbolFull.equalsIgnoreCase(p))return j;
for(j=0;j<k;j++)if(null!=(n=JS.SpaceGroup.SG[j]).hmSymbolAlternative&&n.hmSymbolAlternative.equalsIgnoreCase(p))return j;if(m){for(j=0;j<k;j++)if((n=JS.SpaceGroup.SG[j]).hmSymbolAbbr.equalsIgnoreCase(q)&&(n.hmSymbolExt.equalsIgnoreCase(r)||n.jmolIdExt.equalsIgnoreCase(r)))return j;for(j=0;j<k;j++)if((n=JS.SpaceGroup.SG[j]).hmSymbolAbbrShort.equalsIgnoreCase(q)&&(n.hmSymbolExt.equalsIgnoreCase(r)||n.jmolIdExt.equalsIgnoreCase(r)))return j}c=JS.SpaceGroup.determineUniqueAxis(a,d,b,e,h,l);if(!m||"?"==
r.charAt(0))for(j=0;j<k;j++)if((n=JS.SpaceGroup.SG[j]).hmSymbolAbbr.equalsIgnoreCase(q)||n.hmSymbolAbbrShort.equalsIgnoreCase(q)||n.itaNumber.equals(q))switch(n.ambiguityType.charCodeAt(0)){case 0:case 45:return j;case 97:if(n.uniqueAxis==c||"\x00"==c)return j;break;case 111:if(0==r.length){if(n.hmSymbolExt.equals("2"))return j}else if(n.hmSymbolExt.equalsIgnoreCase(r))return j;break;case 116:if(0==r.length){if("h"==n.axisChoice)return j}else if((n.axisChoice+"").equalsIgnoreCase(r))return j}}if(0==
r.length)for(j=0;j<k;j++)if(JS.SpaceGroup.SG[j].itaNumber.equals(p))return j;return-1},"~S,~N,~N,~N,~N,~N,~N,~N");e(b,"setJmolCode",function(c){this.jmolId=c;c=JU.PT.split(c,":");this.itaNumber=c[0];this.jmolIdExt=1==c.length?"":c[1];this.ambiguityType="\x00";0<this.jmolIdExt.length&&(c=this.jmolIdExt.charAt(0),this.jmolIdExt.equals("h")||this.jmolIdExt.equals("r")?(this.ambiguityType="t",this.axisChoice=this.jmolIdExt.charAt(0)):"1"==c||"2"==c?this.ambiguityType="o":2>=this.jmolIdExt.length||3==
this.jmolIdExt.length&&"-"==c?(this.ambiguityType="a",this.uniqueAxis=this.jmolIdExt.charAt("-"==c?1:0)):this.jmolIdExt.contains("-")&&(this.ambiguityType="-"))},"~S");b.determineUniqueAxis=e(b,"determineUniqueAxis",function(c,a,d,b,e,h){return c==a?a==d?"\x00":"c":a==d?"a":d==c?"b":b==e?e==h?"\x00":"c":e==h?"a":h==b?"b":"\x00"},"~N,~N,~N,~N,~N,~N");e(b,"buildSelf",function(c){c=JU.PT.split(c.toLowerCase(),";");this.jmolId=c[0].trim();this.setJmolCode(this.jmolId);var a=this.jmolId.endsWith("*");
a&&(this.jmolId=this.jmolId.substring(0,this.jmolId.length-1));this.itaIndex=c[1].$replace("|",";");var d=this.itaIndex.indexOf(".");0>d?(this.setNo=2147483647,d=this.itaIndex.indexOf(":")):this.setNo=Integer.parseInt(this.itaIndex.substring(d+1));this.itaNo=0>d?0:Integer.parseInt(this.itaIndex.substring(0,d));d=c[2];this.itaTransform=0==d.length||d.equals("--")?"a,b,c":d.equals("r")?"2/3a+1/3b+1/3c,-1/3a+1/3b+1/3c,-1/3a-2/3b+1/3c":JU.PT.rep(d,"ab","a-b,a+b,c").$replace("|",";");this.setClegId(null);
0<c[3].length&&(this.nHallOperators=Integer.$valueOf(c[3]),d=JS.SpaceGroup.htByOpCount.get(this.nHallOperators),null==d&&JS.SpaceGroup.htByOpCount.put(this.nHallOperators,d=new JU.Lst),d.addLast(this));this.crystalClass=JS.SpaceGroup.toCap(JU.PT.split(c[4],"^")[0],1);d=c[5];d.endsWith("*")&&(d=d.substring(0,d.length-1));this.setHMSymbol(d);"xyz".equals(c[6])?(c=this.hmSymbol,this.hallSymbol=""+this.latticeType+"?"):(this.hallSymbol=c[6],1<this.hallSymbol.length&&(this.hallSymbol=JS.SpaceGroup.toCap(this.hallSymbol,
2)),a&&(this.hallSymbolAlt=this.hallSymbol,this.hallSymbol=JS.SpaceGroup.lastHallSymbol),c=this.itaNumber+this.hallSymbol,"0"!=this.itaNumber.charAt(0)&&c.equals(JS.SpaceGroup.lastInfo)&&(JS.SpaceGroup.ambiguousHMNames+=this.hmSymbol+";"));JS.SpaceGroup.lastHallSymbol=this.hallSymbol;JS.SpaceGroup.lastInfo=c;this.name="HM:"+this.hmSymbolFull+" "+(null==this.hallSymbol||"?"===this.hallSymbol?"["+this.hallSymbol+"]":"")+" #"+this.itaIndex},"~S");e(b,"setHMSymbol",function(c){var a=c.indexOf("#");0<=
a&&(c=c.substring(0,a).trim());this.hmSymbolFull=0==this.groupType?JS.SpaceGroup.toCap(c,1):c.toLowerCase();this.latticeType=Character.toUpperCase(this.hmSymbolFull.charAt(0));c=JU.PT.split(this.hmSymbolFull,":");this.hmSymbol=c[0];this.hmSymbolExt=1==c.length?"":c[1];a=this.hmSymbol.indexOf(" -3");1<=a&&0<="admn".indexOf(this.hmSymbol.charAt(a-1))&&(this.hmSymbolAlternative=(this.hmSymbol.substring(0,a)+" 3"+this.hmSymbol.substring(a+3)).toLowerCase());this.hmSymbolAbbr=JU.PT.rep(this.hmSymbol," ",
"");this.hmSymbolAbbrShort=3<this.hmSymbol.length&&"3"!=this.hmSymbol.charAt(2)&&"3"!=this.hmSymbol.charAt(3)?JU.PT.rep(this.hmSymbol," 1",""):this.hmSymbolAbbr;this.hmSymbolAbbrShort=JU.PT.rep(this.hmSymbolAbbrShort," ","");this.strName=null},"~S");b.toCap=e(b,"toCap",function(c,a){return c.substring(0,a).toUpperCase()+c.substring(a)},"~S,~N");e(b,"toString",function(){return this.asString()});e(b,"asString",function(){return null==this.strName?this.strName=null==this.jmolId||this.jmolId.equals("0")?
this.name:this.jmolId+" HM:"+this.hmSymbolFull+(null==this.getClegId()?"":" #"+this.getClegId()):this.strName});e(b,"getDisplayName",function(){if(null==this.displayName){var c=null;null==this.jmolId||"--".equals(this.hallSymbol)?(c="",null!=this.hmSymbolFull&&!"--".equals(this.hmSymbol)&&(c=this.hmSymbolFull)):this.jmolId.equals("0")||(c=this.hmSymbolFull);null==c?c="["+this.hallSymbol+"]":this.isSpinSpaceGroup?c="spinSG:"+this.ssgNumber+":"+this.itaTransform:null!=this.getClegId()&&(c+=" #"+this.getClegId());
c.endsWith("2/3a+1/3b+1/3c,-1/3a+1/3b+1/3c,-1/3a-2/3b+1/3c")&&(c=JU.PT.rep(c,"2/3a+1/3b+1/3c,-1/3a+1/3b+1/3c,-1/3a-2/3b+1/3c","r"));0<=c.indexOf("-- [--]")&&(c="");c.endsWith(":a,b,c")&&(c=c.substring(0,c.length-6));this.displayName=c}return this.displayName});b.getSpaceGroups=e(b,"getSpaceGroups",function(){if(null==JS.SpaceGroup.SG){var c=JS.SpaceGroup.STR_SG.length;JS.SpaceGroup.nameToGroup=new java.util.Hashtable;for(var a=Array(c),d=0;d<c;d++)a[d]=new JS.SpaceGroup(d,JS.SpaceGroup.STR_SG[d],
!0),JS.SpaceGroup.nameToGroup.put(a[d].jmolId,a[d]);System.out.println("SpaceGroup - "+c+" settings generated");JS.SpaceGroup.STR_SG=null;JS.SpaceGroup.SG=a}return JS.SpaceGroup.SG});e(b,"addMagLatticeVectors",function(c){if(0<=this.latticeOp||0==c.size())return!1;for(var a=this.latticeOp=this.operationCount,d=c.get(0).length==this.modDim+4,b=-2,e=0;e<c.size();e++){var h=c.get(e);d&&(b=x(h[this.modDim+3]),h=JU.AU.arrayCopyF(h,this.modDim+3));if(h.length>this.modDim+3)return!1;for(var l=0;l<a;l++){var k=
new JS.SymmetryOperation(null,0,!0);k.modDim=this.modDim;var j=this.symmetryOperations[l];k.divisor=j.divisor;k.linearRotTrans=JU.AU.arrayCopyF(j.linearRotTrans,-1);k.setFromMatrix(h,!1);-2!=b&&k.setTimeReversal(j.timeReversal*b);k.xyzOriginal=k.xyz;this.addOp(k,k.xyz,!0)}}return!0},"JU.Lst");e(b,"addSpinLattice",function(c,a){if(!(null==c||0==c.size())){for(var d=this.operationCount,b=0;b<c.size();b++){var e=c.get(b);if(null!=a){var h=e.indexOf("(");if(0>e.indexOf(",",h))var l=a.get(e.substring(h+
1,e.length-1)),e=e.substring(0,h+1)+l+")"}if(!e.equals("x,y,z(u,v,w)")){h=new JS.SymmetryOperation(null,0,!0);h.setMatrixFromXYZ(e,0,!0);h.doFinalize();for(var e=JU.M3.newM3(h.spinU),l=new JU.M3,k=this.operationCount,j=0;j<d;j++){var s=this.symmetryOperations[j];s.doFinalize();var p=new JS.SymmetryOperation(s,0,!0);p.mul2(s,h);if(null==s.spinU)throw new RuntimeException("SpaceGroup operation "+(j+1)+" no spin indicated!");l.mul2(s.spinU,e);p.modDim=this.modDim;p.divisor=s.divisor;s=JS.SymmetryOperation.getXYZFromMatrix(p,
!1,!0,!1)+JS.SymmetryOperation.getSpinString(l,!0,!0);s=this.addOperation(s,k,!0);this.symmetryOperations[s].doFinalize();k++}}}this.latticeOp=d}},"JU.Lst,java.util.Map");e(b,"getSiteMultiplicity",function(c,a){for(var d=this.finalOperations.length,b=new JU.Lst,e=d;0<=--e;){var h=JU.P3.newP(c);this.finalOperations[e].rotTrans(h);a.unitize(h);for(var l=b.size();0<=--l;){var k=b.get(l);if(1.96E-6>h.distanceSquared(k)){h=null;break}}null!=h&&b.addLast(h)}return C(d/b.size())},"JU.P3,JS.UnitCell");e(b,
"setName",function(c){this.name=c;null!=c&&(c.equals("spinSG:")?(this.itaNumber=this.ssgNumber="0",this.isSpinSpaceGroup=!0,this.hallSymbol="--",this.itaTransform="a,b,c",this.setClegId(null),this.spinFrameTransform=JU.M3.newM3(null)):c.startsWith("HM:")?this.setHMSymbol(c.substring(3)):this.isSpinSpaceGroup&&(this.name=c.startsWith("spinSG:")?c:"spinSG:"+c,this.itaTransform=this.name.substring(this.name.indexOf(":",7)+1)));this.strName=this.displayName=null},"~S");b.getSpaceGroupFromJmolClegOrITA=
e(b,"getSpaceGroupFromJmolClegOrITA",function(c,a){var d=JS.SpaceGroup.getExplicitSpecialGroupType(a);if(0<d)return JS.Symmetry.getSGFactory().getSpecialGroup(c,null,a,d);var d=a.indexOf(":"),b=a.indexOf(","),e=a.indexOf("."),h=0<d&&b>d?d:e,b=JS.SpaceGroup.SG.length;if(0<h&&h==d)for(d=0;d<b;d++){if(a.equals(JS.SpaceGroup.SG[d].clegId))return JS.SpaceGroup.SG[d]}else if(0<d)for(d=0;d<b;d++){if(a.equals(JS.SpaceGroup.SG[d].jmolId))return JS.SpaceGroup.SG[d]}else if(0<e)for(d=0;d<b;d++){if(a.equals(JS.SpaceGroup.SG[d].itaIndex))return JS.SpaceGroup.SG[d]}else for(d=
0;d<b;d++)if(a.equals(JS.SpaceGroup.SG[d].itaNumber))return JS.SpaceGroup.SG[d];return null},"JV.Viewer,~S");e(b,"checkHallOperators",function(){null!=this.nHallOperators&&this.nHallOperators.intValue()!=this.operationCount&&(null==this.hallInfo||this.hallInfo.isGenerated()?this.generateMatrixOperators(this.hallInfo):(this.init(!1),this.doNormalize=!0,JS.SpaceGroup.transformSpaceGroup(0,this,JS.SpaceGroup.getSpaceGroupFromJmolClegOrITA(null,this.itaNumber),null,this.itaTransform,null),this.hallInfo=
null))});e(b,"getOpsCtr",function(c){var a=JS.SpaceGroup.getNull(!0,!0,!1);JS.SpaceGroup.transformSpaceGroup(this.groupType,a,this,null,"!"+c,null);a.setFinalOperations();var d=JS.SpaceGroup.getNull(!0,!1,!1);JS.SpaceGroup.transformSpaceGroup(this.groupType,d,a,null,c,null);d.setFinalOperations();return d.finalOperations},"~S");b.getSpaceGroupFromIndex=e(b,"getSpaceGroupFromIndex",function(c){return null!=JS.SpaceGroup.SG&&0<=c&&c<JS.SpaceGroup.SG.length?JS.SpaceGroup.SG[c]:null},"~N");e(b,"setITATableNames",
function(c,a,d,b){this.itaNumber=".".equals(a)?"0":a;this.itaIndex=null!=b?a+":"+b:0<=d.indexOf(".")?d:a+"."+d;this.itaTransform=b;this.setClegId(this.specialPrefix+a+":"+b);this.strName=this.displayName=null;this.jmolId=c;null==c?(this.name=this.clegId,this.info=this.dumpInfoObj()):this.setJmolCode(c)},"~S,~S,~S,~S");b.transformCoords=e(b,"transformCoords",function(c,a,d,b,e,h){null==h&&(h=new JU.Lst);for(var l=0,k=c.size();l<k;l++){var j=JS.SymmetryOperation.transformStr(c.get(l),null,a,b,e,null,
d,!0,!0);h.contains(j)||h.addLast(j)}return h},"JU.Lst,JU.M4,JU.P3,JU.M4,~A,JU.Lst");b.getTransformRange=e(b,"getTransformRange",function(c){for(var a=D(2,3,0),d=D(4,0),b=0;3>b;b++){c.getRow(b,d);for(var e=0;3>e;e++){var h=d[e];0>h?a[0][b]+=-d[e]:0<h&&(a[1][b]+=d[e])}}c=!0;for(d=b=0;2>b;b++,d++)for(e=0;3>e;e++)h=C(Math.ceil(a[b][e])),h>d&&(c=!1),a[b][e]=0==b?-h:h;return c?null:a},"JU.M4");b.getTransformedCentering=e(b,"getTransformedCentering",function(c,a){var d=JU.M4.newM4(c);d.invert();var b=a.size(),
e=new JU.P3,h=new JU.P3,l=JS.SpaceGroup.getTransformRange(c);if(null!=l)for(var k=JS.SpaceGroup.addCentering(d,l,e,h,a,0);0<=--b&&3>k;)JS.SymmetryOperation.toPoint(a.removeItemAt(b),e),k=JS.SpaceGroup.addCentering(d,l,e,h,a,k);return d},"JU.M4,JU.Lst");b.addCentering=e(b,"addCentering",function(c,a,d,b,e,h){for(var l=x(a[0][0]);l<=a[1][0];l++)for(var k=x(a[0][1]);k<=a[1][1];k++)for(var j=x(a[0][2]);j<=a[1][2];j++)if(b.set(l,k,j),b.add(d),c.rotTrans(b),0!=b.length()%1){b.x%=1;b.y%=1;b.z%=1;var s=JS.SymmetryOperation.norm3(b);
if(!s.equals("0,0,0")&&!e.contains(s)&&(e.addLast(s),3==++h))return 3}return h},"JU.M4,~A,JU.P3,JU.P3,JU.Lst,~N");b.fillMoreData=e(b,"fillMoreData",function(c,a,d,b,e){var h=d.indexOf(":"),h=0>h?"a,b,c":d.substring(h+1),l=JS.UnitCell.toTrm(h,null),k=e.get("gp"),j=e.get("wpos"),s=j.get("cent");e=new JU.Lst;null!=s&&e.addAll(s);for(var p=e.size(),m=JS.SpaceGroup.getTransformedCentering(l,e),s=e.size(),r=j.get("pos"),j=new JU.Lst,q=new JU.M4,n=D(16,0),G=(s+1)/(p+1),p=0,w=r.size();p<w;p++){var v=r.get(p),
z=new java.util.Hashtable;z.putAll(v);var A=v.get("coord");null!=A&&(A=JS.SpaceGroup.transformCoords(A,m,null,q,n,null),z.put("coord",A));v=v.get("mult").intValue();z.put("mult",Integer.$valueOf(x(v*G)));j.addLast(z)}r=new JU.Lst;JS.SpaceGroup.transformCoords(k,m,null,q,n,r);if(0<s)for(p=0;p<s;p++)z=new JU.P3,JS.SpaceGroup.transformCoords(k,m,JS.SymmetryOperation.toPoint(e.get(p),z),q,n,r);null==a?(a=new java.util.Hashtable,a.put("sg",Integer.$valueOf(b)),a.put("trm",h),a.put("clegId",b+":"+h),a.put("det",
Float.$valueOf(l.determinant3()))):a.remove("more");b=new java.util.Hashtable;0<s&&b.put("cent",e);b.put("pos",j);a.put("wpos",b);r=new JU.Lst;c=JS.SpaceGroup.getSpaceGroupFromJmolClegOrITA(c,d);c=JS.SpaceGroup.transformSpaceGroup(0,null,c,k,h,new JU.M4);p=0;for(w=c.getOperationCount();p<w;p++)r.addLast(c.getOperation(p).xyz);a.put("gp",r);return a},"JV.Viewer,java.util.Map,~S,~N,java.util.Map");b.transformSpaceGroup=e(b,"transformSpaceGroup",function(c,a,d,b,e,h){if(null==b){d.setFinalOperationsSafely();
b=new JU.Lst;for(var l=0,k=d.getOperationCount();l<k;l++)b.addLast(d.getXyz(l,!1))}b=JS.SpaceGroup.addTransformXYZList(a,b,e,h,null==a||a.doNormalize);if(null==a)return JS.SpaceGroup.createITASpaceGroup(c,b,d);null==e?a.setFrom(d,!0):a.setITATableNames(a.jmolId,a.itaNumber,"1",e);return a},"~N,JS.SpaceGroup,JS.SpaceGroup,JU.Lst,~S,JU.M4");b.createITASpaceGroup=e(b,"createITASpaceGroup",function(c,a,d){c=0==c?new JS.SpaceGroup(-1,"0;--;--;0;--;--;--",!0):JS.Symmetry.getSGFactory().createSpecialGroup(d,
null,null,c);c.doNormalize=!1;for(var b=0,e=a.size();b<e;b++){var h=new JS.SymmetryOperation(null,b,!1),l=a.get(b);h.setMatrixFromXYZ(l,0,!1);c.addOp(h,l,!1)}null!=d&&c.setFrom(d,!0);c.setFinalOperationsSafely();return c},"~N,JU.Lst,JS.SpaceGroup");b.addTransformXYZList=e(b,"addTransformXYZList",function(c,a,d,b,e){var h=null,l=null,k=null,j=null,s=a.size();null!=d&&(d.equals("r")&&(d="2/3a+1/3b+1/3c,-1/3a+1/3b+1/3c,-1/3a-2/3b+1/3c"),b=JS.UnitCell.toTrm(d,b),h=JU.M4.newM4(b),h.invert(),l=Math.round(b.determinant3()),
1<l&&(j=JS.SpaceGroup.getTransformRange(b),s*=l),k=D(16,0),l=new JU.M4);d=JS.SpaceGroup.addTransformedOperations(c,a,b,h,l,k,null==c?new JU.Lst:null,null,e);if(null!=j)for(var p=new JU.P3,m=x(j[0][2]);m<=j[1][2];m++)for(var r=x(j[0][1]);r<=j[1][1];r++)for(var q=x(j[0][0]);q<j[1][0];q++)if(!(0==q&&0==r&&0==m)&&(p.set(q,r,m),null!=JS.SpaceGroup.addTransformedOperations(c,a,b,h,l,k,d,p,e)&&d.size()==s))return d;return null==c?d:null},"JS.SpaceGroup,JU.Lst,~S,JU.M4,~B");b.addTransformedOperations=e(b,
"addTransformedOperations",function(c,a,d,b,e,h,l,k,j){null!=c&&(c.latticeOp=0);for(var s=0,p=a.size();s<p;s++){var m=a.get(s);if(null!=d&&(0<s||null!=k))m=JS.SymmetryOperation.transformStr(m,d,b,e,h,k,null,j,!1);null!=c?c.addOperation(m,0,!1):l.contains(m)||l.addLast(m)}return l},"JS.SpaceGroup,JU.Lst,JU.M4,JU.M4,JU.M4,~A,JU.Lst,JU.P3,~B");m(b,"getMatrixOperation",function(c){return this.symmetryOperations[c]},"~N");m(b,"getMatrixOperationCount",function(){return this.operationCount});m(b,"addHallOperationCheckDuplicates",
function(c){var a=JS.SymmetryOperation.getXYZFromMatrix(c,!0,!0,!1);if(0<=this.checkXYZlist(a))return!1;this.addSymmetrySM("!nohalf!"+a,c);return!0},"JU.M4");b.canonicalizeCleg=e(b,"canonicalizeCleg",function(c){if(null==c)return null;0>c.indexOf(":")?c+=":a,b,c;0,0,0":0<c.indexOf(",")&&0>c.indexOf(";")&&(c+=";0,0,0");return c},"~S");b.convertWyckoffHMCleg=e(b,"convertWyckoffHMCleg",function(c,a){if(null==JS.SpaceGroup.HMtoCleg){JS.SpaceGroup.HMtoCleg=new java.util.Hashtable;JS.SpaceGroup.ClegtoHM=
new java.util.Hashtable;for(var d=JS.SpaceGroup.moreSettings.length;0<=--d;){var b=JS.SpaceGroup.moreSettings[d],e=JS.SpaceGroup.moreSettings[--d],e=JU.PT.rep(e," ","");JS.SpaceGroup.ClegtoHM.put(b,e);JS.SpaceGroup.HMtoCleg.put(e,b)}}return null!=c?JS.SpaceGroup.HMtoCleg.get(JU.PT.rep(c," ","")):JS.SpaceGroup.ClegtoHM.get(a)},"~S,~S");e(b,"getHMName",function(){return this.hmSymbol});e(b,"getHMNameShort",function(){return null==this.hmSymbolAbbrShort?this.hmSymbol:this.hmSymbolAbbrShort});b.getITNo=
e(b,"getITNo",function(c,a){0>=a&&(a=c.length);for(var d=a;0<=--d;)if(!JU.PT.isDigit(c.charAt(d)))return-2147483648;return Integer.parseInt(c.substring(0,a))},"~S,~N");b.isInRange=e(b,"isInRange",function(a,f,d,b){var e=JS.SpaceGroup.getMax(f);switch(f){case 0:if(b)return f=x(a),b=JS.SpaceGroup.getImplicitSpecialGroupType(f),300==b&&(d=!1),-1!=b&&(d||f==a);break;case 300:d=!1}return 1<=a&&(d?a<e+1:a<=e)},"~N,~N,~B,~B");b.getMax=e(b,"getMax",function(a){switch(a){case 0:return 230;case 300:return 17;
case 400:return 80;case 500:return 75;case 600:return 7;default:return 0}},"~N");b.getGroupTypePrefix=e(b,"getGroupTypePrefix",function(a){switch(a-a%100){case 300:return"p/";case 400:return"l/";case 500:return"r/";case 600:return"f/"}return""},"~N");b.getExplicitSpecialGroupType=e(b,"getExplicitSpecialGroupType",function(a){if(2>a.length||"/"!=a.charAt(1))return 0;switch(a.substring(0,2)){case "p/":return 300;case "l/":return 400;case "r/":return 500;case "f/":return 600;default:return-1}},"~S");
b.getSpecialGroupName=e(b,"getSpecialGroupName",function(a){switch(a){case 0:return"";case 300:return"plane";case 400:return"layer";case 500:return"rod";case 600:return"frieze";default:return null}},"~N");b.getImplicitSpecialGroupType=e(b,"getImplicitSpecialGroupType",function(a){return 1>a?-1:230>=a?0:300<a&&317>=a?300:400<a&&480>=a?400:500<a&&575>=a?500:600<a&&607>=a?600:-1},"~N");b.hmMatches=e(b,"hmMatches",function(a,f,d){"/"==a.charAt(1)&&(a=a.substring(2));if(a.charAt(0)!=f.charAt(0))return!1;
0>f.indexOf(" ")&&(a=JU.PT.rep(a," ",""));if(a.equals(f))return!0;if(300==d){d=a.length;if(d<=f.length)return!1;var b=f.charAt(1);switch(f.length){case 2:return 4==d&&"1"==a.charAt(1)&&b==a.charAt(2);case 3:return"2"==a.charAt(1)?a.charAt(2)==b&&a.charAt(3)==f.charAt(2):"m"==a.charAt(d-1)&&a.startsWith(f)}}return!1},"~S,~S,~N");e(b,"createCompatibleUnitCell",function(a,f,d){var b=null==this.itaNumber?0:JU.PT.parseInt(this.itaNumber),e=!1,h=!1,l=!1,k=!1,h=(e=0!=b&&this.isHexagonalSG(b,null))&&this.isHexagonalSG(-1,
a),k=(l=0!=b&&"r"==this.axisChoice)&&JU.SimpleUnitCell.isRhombohedral(a);if(e&&h||l&&k)d=!0;var j=new JS.SpaceGroup.ParamCheck(a,d,!0);if(b>(d?2:0))if(e){if(!(l?k:h))"r"==this.axisChoice?(j.c=j.b=j.a,!d&&(85<j.alpha&&95>j.alpha)&&(j.alpha=80),j.gamma=j.beta=j.alpha):(j.b=j.a,j.alpha=j.beta=90,j.gamma=120)}else if(195<=b)j.c=j.b=j.a,j.alpha=j.beta=j.gamma=90;else if(75<=b)j.b=j.a,j.acsame&&!d&&(j.c=1.5*j.a),j.alpha=j.beta=j.gamma=90;else if(16<=b)j.alpha=j.beta=j.gamma=90;else if(3<=b)switch(this.uniqueAxis.charCodeAt(0)){case 97:j.beta=
j.gamma=90;break;default:case 98:j.alpha=j.gamma=90;break;case 99:j.alpha=j.beta=90}return j.checkNew(a,null==f?a:f)},"~A,~A,~B");e(b,"isHexagonalSG",function(a,f){return 1>a?JU.SimpleUnitCell.isHexagonal(f):143<=a&&194>=a},"~N,~A");e(b,"mapSpins",function(a){for(var f,d=this.operationCount;0<=--d;){f=this.symmetryOperations[d];var b=null==f.suvwId?null:a.get(f.suvwId);null!=f.suvwId&&null==b?System.err.println("SpaceGroup key "+f.suvwId):f.setSpin(b)}},"java.util.Map");e(b,"setMatrixOperationCount",
function(a){if(a!=this.operationCount){for(var f=Array(a),d=a;0<=--d;)f[d]=this.symmetryOperations[d];this.symmetryOperations=f;this.operationCount=a}},"~N");e(b,"setSpinList",function(a){if(null!=this.spinList)return this.spinList;this.spinConfiguration=a;var f=new JU.Lst;f.addLast("u,v,w");a="Coplanar".equals(a);for(var d=0;d<this.operationCount;d++){var b=this.symmetryOperations[d];if(null==b.suvw)break;if(!(a&&0>b.timeReversal)){var e=f.indexOf(b.suvw);0>e&&(e=f.size(),f.addLast(b.suvw));b.spinIndex=
e}}return this.spinList=f},"~S");var a=M(function(){this.gamma=this.beta=this.alpha=this.c=this.b=this.a=0;this.acsame=!1;S(this,arguments)},JS.SpaceGroup,"ParamCheck",null);V(a,function(a,f,d){this.a=a[0];this.b=a[1];this.c=a[2];this.alpha=a[3];this.beta=a[4];this.gamma=a[5];f||this.checkParams(d)},"~A,~B,~B");e(a,"checkParams",function(a){if(0<this.b&&this.a>this.b){var f=this.a;this.a=this.b;this.b=f}a&&(0<this.c&&JU.SimpleUnitCell.approx0(this.b-this.c))&&(this.c=1.5*this.b);JU.SimpleUnitCell.approx0(this.a-
this.b)&&(this.b=1.2*this.a);JU.SimpleUnitCell.approx0(this.gamma-90)&&(this.gamma=130);if(a){if(this.acsame=0<this.c&&JU.SimpleUnitCell.approx0(this.c-this.a))this.c=1.1*this.a;JU.SimpleUnitCell.approx0(this.alpha-90)&&(this.alpha=80);JU.SimpleUnitCell.approx0(this.beta-90)&&(this.beta=100);this.alpha>this.beta&&(f=this.alpha,this.alpha=this.beta,this.beta=f);a=JU.SimpleUnitCell.approx0(this.alpha-this.beta);var f=JU.SimpleUnitCell.approx0(this.beta-this.gamma),d=JU.SimpleUnitCell.approx0(this.gamma-
this.alpha);a&&(this.beta=1.2*this.alpha);f&&(this.gamma=1.3*this.beta);d&&(this.gamma=1.4*this.alpha)}},"~B");e(a,"checkNew",function(a,f){var d=!(this.a==a[0]&&this.b==a[1]&&this.c==a[2]&&this.alpha==a[3]&&this.beta==a[4]&&this.gamma==a[5]);f[0]=this.a;f[1]=this.b;f[2]=this.c;f[3]=this.alpha;f[4]=this.beta;f[5]=this.gamma;return d},"~A,~A");b.canonicalSeitzList=null;b.sgIndex=-1;b.lastInfo=null;b.ambiguousHMNames="";b.lastHallSymbol="";b.SG=null;b.htByOpCount=new java.util.Hashtable;b.nameToGroup=
null;b.nSG=0;b.STR_SG=E(-1,'1;1.1;;1;c1^1;p 1;p 1{2;2.1;;2;ci^1;p -1;-p 1{3:b;3.1;;2;c2^1;p 1 2 1;p 2y{3:b;3.1;;2;c2^1;p 2;p 2y{3:c;3.2;c,a,b;2;c2^1;p 1 1 2;p 2{3:a;3.3;b,c,a;2;c2^1;p 2 1 1;p 2x{4:b;4.1;;2;c2^2;p 1 21 1;p 2yb{4:b;4.1;;2;c2^2;p 21;p 2yb{4:c;4.2;c,a,b;2;c2^2;p 1 1 21;p 2c{4:a;4.3;b,c,a;2;c2^2;p 21 1 1;p 2xa{5:b1;5.1;;4;c2^3;c 1 2 1;c 2y{5:b1;5.1;;4;c2^3;c 2;c 2y{5:b2;5.2;-a-c,b,a;4;c2^3;a 1 2 1;a 2y{5:b3;5.3;c,b,-a-c;4;c2^3;i 1 2 1;i 2y{5:c1;5.4;c,a,b;4;c2^3;a 1 1 2;a 2{5:c2;5.5;a,-a-c,b;4;c2^3;b 1 1 2;b 2{5:c3;5.6;-a-c,c,b;4;c2^3;i 1 1 2;i 2{5:a1;5.7;b,c,a;4;c2^3;b 2 1 1;b 2x{5:a2;5.8;b,a,-a-c;4;c2^3;c 2 1 1;c 2x{5:a3;5.9;b,-a-c,c;4;c2^3;i 2 1 1;i 2x{6:b;6.1;;2;cs^1;p 1 m 1;p -2y{6:b;6.1;;2;cs^1;p m;p -2y{6:c;6.2;c,a,b;2;cs^1;p 1 1 m;p -2{6:a;6.3;b,c,a;2;cs^1;p m 1 1;p -2x{7:b1;7.1;;2;cs^2;p 1 c 1;p -2yc{7:b1;7.1;;2;cs^2;p c;p -2yc{7:b2;7.2;-a-c,b,a;2;cs^2;p 1 n 1;p -2yac{7:b2;7.2;-a-c,b,a;2;cs^2;p n;p -2yac{7:b3;7.3;c,b,-a-c;2;cs^2;p 1 a 1;p -2ya{7:b3;7.3;c,b,-a-c;2;cs^2;p a;p -2ya{7:c1;7.4;c,a,b;2;cs^2;p 1 1 a;p -2a{7:c2;7.5;a,-a-c,b;2;cs^2;p 1 1 n;p -2ab{7:c3;7.6;-a-c,c,b;2;cs^2;p 1 1 b;p -2b{7:a1;7.7;b,c,a;2;cs^2;p b 1 1;p -2xb{7:a2;7.8;b,a,-a-c;2;cs^2;p n 1 1;p -2xbc{7:a3;7.9;b,-a-c,c;2;cs^2;p c 1 1;p -2xc{8:b1;8.1;;4;cs^3;c 1 m 1;c -2y{8:b1;8.1;;4;cs^3;c m;c -2y{8:b2;8.2;-a-c,b,a;4;cs^3;a 1 m 1;a -2y{8:b3;8.3;c,b,-a-c;4;cs^3;i 1 m 1;i -2y{8:b3;8.3;c,b,-a-c;4;cs^3;i m;i -2y{8:c1;8.4;c,a,b;4;cs^3;a 1 1 m;a -2{8:c2;8.5;a,-a-c,b;4;cs^3;b 1 1 m;b -2{8:c3;8.6;-a-c,c,b;4;cs^3;i 1 1 m;i -2{8:a1;8.7;b,c,a;4;cs^3;b m 1 1;b -2x{8:a2;8.8;b,a,-a-c;4;cs^3;c m 1 1;c -2x{8:a3;8.9;b,-a-c,c;4;cs^3;i m 1 1;i -2x{9:b1;9.1;;4;cs^4;c 1 c 1;c -2yc{9:b1;9.1;;4;cs^4;c c;c -2yc{9:b2;9.2;-a-c,b,a;4;cs^4;a 1 n 1;a -2yab{9:b3;9.3;c,b,-a-c;4;cs^4;i 1 a 1;i -2ya{9:-b1;9.4;c,-b,a;4;cs^4;a 1 a 1;a -2ya{9:-b2;9.5;a,-b,-a-c;4;cs^4;c 1 n 1;c -2yac{9:-b3;9.6;-a-c,-b,c;4;cs^4;i 1 c 1;i -2yc{9:c1;9.7;c,a,b;4;cs^4;a 1 1 a;a -2a{9:c2;9.8;a,-a-c,b;4;cs^4;b 1 1 n;b -2ab{9:c3;9.9;-a-c,c,b;4;cs^4;i 1 1 b;i -2b{9:-c1;9.10;a,c,-b;4;cs^4;b 1 1 b;b -2b{9:-c2;9.11;-a-c,a,-b;4;cs^4;a 1 1 n;a -2ab{9:-c3;9.12;c,-a-c,-b;4;cs^4;i 1 1 a;i -2a{9:a1;9.13;b,c,a;4;cs^4;b b 1 1;b -2xb{9:a2;9.14;b,a,-a-c;4;cs^4;c n 1 1;c -2xac{9:a3;9.15;b,-a-c,c;4;cs^4;i c 1 1;i -2xc{9:-a1;9.16;-b,a,c;4;cs^4;c c 1 1;c -2xc{9:-a2;9.17;-b,-a-c,a;4;cs^4;b n 1 1;b -2xab{9:-a3;9.18;-b,c,-a-c;4;cs^4;i b 1 1;i -2xb{10:b;10.1;;4;c2h^1;p 1 2/m 1;-p 2y{10:b;10.1;;4;c2h^1;p 2/m;-p 2y{10:c;10.2;c,a,b;4;c2h^1;p 1 1 2/m;-p 2{10:a;10.3;b,c,a;4;c2h^1;p 2/m 1 1;-p 2x{11:b;11.1;;4;c2h^2;p 1 21/m 1;-p 2yb{11:b;11.1;;4;c2h^2;p 21/m;-p 2yb{11:c;11.2;c,a,b;4;c2h^2;p 1 1 21/m;-p 2c{11:a;11.3;b,c,a;4;c2h^2;p 21/m 1 1;-p 2xa{12:b1;12.1;;8;c2h^3;c 1 2/m 1;-c 2y{12:b1;12.1;;8;c2h^3;c 2/m;-c 2y{12:b2;12.2;-a-c,b,a;8;c2h^3;a 1 2/m 1;-a 2y{12:b3;12.3;c,b,-a-c;8;c2h^3;i 1 2/m 1;-i 2y{12:b3;12.3;c,b,-a-c;8;c2h^3;i 2/m;-i 2y{12:c1;12.4;c,a,b;8;c2h^3;a 1 1 2/m;-a 2{12:c2;12.5;a,-a-c,b;8;c2h^3;b 1 1 2/m;-b 2{12:c3;12.6;-a-c,c,b;8;c2h^3;i 1 1 2/m;-i 2{12:a1;12.7;b,c,a;8;c2h^3;b 2/m 1 1;-b 2x{12:a2;12.8;b,a,-a-c;8;c2h^3;c 2/m 1 1;-c 2x{12:a3;12.9;b,-a-c,c;8;c2h^3;i 2/m 1 1;-i 2x{13:b1;13.1;;4;c2h^4;p 1 2/c 1;-p 2yc{13:b1;13.1;;4;c2h^4;p 2/c;-p 2yc{13:b2;13.2;-a-c,b,a;4;c2h^4;p 1 2/n 1;-p 2yac{13:b2;13.2;-a-c,b,a;4;c2h^4;p 2/n;-p 2yac{13:b3;13.3;c,b,-a-c;4;c2h^4;p 1 2/a 1;-p 2ya{13:b3;13.3;c,b,-a-c;4;c2h^4;p 2/a;-p 2ya{13:c1;13.4;c,a,b;4;c2h^4;p 1 1 2/a;-p 2a{13:c2;13.5;a,-a-c,b;4;c2h^4;p 1 1 2/n;-p 2ab{13:c3;13.6;-a-c,c,b;4;c2h^4;p 1 1 2/b;-p 2b{13:a1;13.7;b,c,a;4;c2h^4;p 2/b 1 1;-p 2xb{13:a2;13.8;b,a,-a-c;4;c2h^4;p 2/n 1 1;-p 2xbc{13:a3;13.9;b,-a-c,c;4;c2h^4;p 2/c 1 1;-p 2xc{14:b1;14.1;;4;c2h^5;p 1 21/c 1;-p 2ybc{14:b1;14.1;;4;c2h^5;p 21/c;-p 2ybc{14:b2;14.2;-a-c,b,a;4;c2h^5;p 1 21/n 1;-p 2yn{14:b2;14.2;-a-c,b,a;4;c2h^5;p 21/n;-p 2yn{14:b3;14.3;c,b,-a-c;4;c2h^5;p 1 21/a 1;-p 2yab{14:b3;14.3;c,b,-a-c;4;c2h^5;p 21/a;-p 2yab{14:c1;14.4;c,a,b;4;c2h^5;p 1 1 21/a;-p 2ac{14:c2;14.5;a,-a-c,b;4;c2h^5;p 1 1 21/n;-p 2n{14:c3;14.6;-a-c,c,b;4;c2h^5;p 1 1 21/b;-p 2bc{14:a1;14.7;b,c,a;4;c2h^5;p 21/b 1 1;-p 2xab{14:a2;14.8;b,a,-a-c;4;c2h^5;p 21/n 1 1;-p 2xn{14:a3;14.9;b,-a-c,c;4;c2h^5;p 21/c 1 1;-p 2xac{15:b1;15.1;;8;c2h^6;c 1 2/c 1;-c 2yc{15:b1;15.1;;8;c2h^6;c 2/c;-c 2yc{15:b2;15.2;-a-c,b,a;8;c2h^6;a 1 2/n 1;-a 2yab{15:b3;15.3;c,b,-a-c;8;c2h^6;i 1 2/a 1;-i 2ya{15:b3;15.3;c,b,-a-c;8;c2h^6;i 2/a;-i 2ya{15:-b1;15.4;c,-b,a;8;c2h^6;a 1 2/a 1;-a 2ya{15:-b2;15.5;a,-b,-a-c;8;c2h^6;c 1 2/n 1;-c 2yac{15:-b2;15.5;a,-b,-a-c;8;c2h^6;c 2/n;-c 2yac{15:-b3;15.6;-a-c,-b,c;8;c2h^6;i 1 2/c 1;-i 2yc{15:-b3;15.6;-a-c,-b,c;8;c2h^6;i 2/c;-i 2yc{15:c1;15.7;c,a,b;8;c2h^6;a 1 1 2/a;-a 2a{15:c2;15.8;a,-a-c,b;8;c2h^6;b 1 1 2/n;-b 2ab{15:c3;15.9;-a-c,c,b;8;c2h^6;i 1 1 2/b;-i 2b{15:-c1;15.10;a,c,-b;8;c2h^6;b 1 1 2/b;-b 2b{15:-c2;15.11;-a-c,a,-b;8;c2h^6;a 1 1 2/n;-a 2ab{15:-c3;15.12;c,-a-c,-b;8;c2h^6;i 1 1 2/a;-i 2a{15:a1;15.13;b,c,a;8;c2h^6;b 2/b 1 1;-b 2xb{15:a2;15.14;b,a,-a-c;8;c2h^6;c 2/n 1 1;-c 2xac{15:a3;15.15;b,-a-c,c;8;c2h^6;i 2/c 1 1;-i 2xc{15:-a1;15.16;-b,a,c;8;c2h^6;c 2/c 1 1;-c 2xc{15:-a2;15.17;-b,-a-c,a;8;c2h^6;b 2/n 1 1;-b 2xab{15:-a3;15.18;-b,c,-a-c;8;c2h^6;i 2/b 1 1;-i 2xb{16;16.1;;4;d2^1;p 2 2 2;p 2 2{17;17.1;;4;d2^2;p 2 2 21;p 2c 2{17:cab;17.2;c,a,b;4;d2^2;p 21 2 2;p 2a 2a{17:bca;17.3;b,c,a;4;d2^2;p 2 21 2;p 2 2b{18;18.1;;4;d2^3;p 21 21 2;p 2 2ab{18:cab;18.2;c,a,b;4;d2^3;p 2 21 21;p 2bc 2{18:bca;18.3;b,c,a;4;d2^3;p 21 2 21;p 2ac 2ac{19;19.1;;4;d2^4;p 21 21 21;p 2ac 2ab{20;20.1;;8;d2^5;c 2 2 21;c 2c 2{20:cab;20.2;c,a,b;8;d2^5;a 21 2 2;a 2a 2a{20:cab*;20.2;c,a,b;8;d2^5;a 21 2 2*;a 2a 21{20:bca;20.3;b,c,a;8;d2^5;b 2 21 2;b 2 2b{21;21.1;;8;d2^6;c 2 2 2;c 2 2{21:cab;21.2;c,a,b;8;d2^6;a 2 2 2;a 2 2{21:bca;21.3;b,c,a;8;d2^6;b 2 2 2;b 2 2{22;22.1;;16;d2^7;f 2 2 2;f 2 2{23;23.1;;8;d2^8;i 2 2 2;i 2 2{24;24.1;;8;d2^9;i 21 21 21;i 2b 2c{25;25.1;;4;c2v^1;p m m 2;p 2 -2{25:cab;25.2;c,a,b;4;c2v^1;p 2 m m;p -2 2{25:bca;25.3;b,c,a;4;c2v^1;p m 2 m;p -2 -2{26;26.1;;4;c2v^2;p m c 21;p 2c -2{26:ba-c;26.2;b,a,-c;4;c2v^2;p c m 21;p 2c -2c{26:ba-c*;26.2;b,a,-c;4;c2v^2;p c m 21*;p 21 -2c{26:cab;26.3;c,a,b;4;c2v^2;p 21 m a;p -2a 2a{26:-cba;26.4;-c,b,a;4;c2v^2;p 21 a m;p -2 2a{26:bca;26.5;b,c,a;4;c2v^2;p b 21 m;p -2 -2b{26:a-cb;26.6;a,-c,b;4;c2v^2;p m 21 b;p -2b -2{27;27.1;;4;c2v^3;p c c 2;p 2 -2c{27:cab;27.2;c,a,b;4;c2v^3;p 2 a a;p -2a 2{27:bca;27.3;b,c,a;4;c2v^3;p b 2 b;p -2b -2b{28;28.1;;4;c2v^4;p m a 2;p 2 -2a{28:ba-c;28.2;b,a,-c;4;c2v^4;p b m 2;p 2 -2b{28:cab;28.3;c,a,b;4;c2v^4;p 2 m b;p -2b 2{28:-cba;28.4;-c,b,a;4;c2v^4;p 2 c m;p -2c 2{28:-cba*;28.4;-c,b,a;4;c2v^4;p 2 c m*;p -21 2{28:bca;28.5;b,c,a;4;c2v^4;p c 2 m;p -2c -2c{28:a-cb;28.6;a,-c,b;4;c2v^4;p m 2 a;p -2a -2a{29;29.1;;4;c2v^5;p c a 21;p 2c -2ac{29:ba-c;29.2;b,a,-c;4;c2v^5;p b c 21;p 2c -2b{29:cab;29.3;c,a,b;4;c2v^5;p 21 a b;p -2b 2a{29:-cba;29.4;-c,b,a;4;c2v^5;p 21 c a;p -2ac 2a{29:bca;29.5;b,c,a;4;c2v^5;p c 21 b;p -2bc -2c{29:a-cb;29.6;a,-c,b;4;c2v^5;p b 21 a;p -2a -2ab{30;30.1;;4;c2v^6;p n c 2;p 2 -2bc{30:ba-c;30.2;b,a,-c;4;c2v^6;p c n 2;p 2 -2ac{30:cab;30.3;c,a,b;4;c2v^6;p 2 n a;p -2ac 2{30:-cba;30.4;-c,b,a;4;c2v^6;p 2 a n;p -2ab 2{30:bca;30.5;b,c,a;4;c2v^6;p b 2 n;p -2ab -2ab{30:a-cb;30.6;a,-c,b;4;c2v^6;p n 2 b;p -2bc -2bc{31;31.1;;4;c2v^7;p m n 21;p 2ac -2{31:ba-c;31.2;b,a,-c;4;c2v^7;p n m 21;p 2bc -2bc{31:cab;31.3;c,a,b;4;c2v^7;p 21 m n;p -2ab 2ab{31:-cba;31.4;-c,b,a;4;c2v^7;p 21 n m;p -2 2ac{31:bca;31.5;b,c,a;4;c2v^7;p n 21 m;p -2 -2bc{31:a-cb;31.6;a,-c,b;4;c2v^7;p m 21 n;p -2ab -2{32;32.1;;4;c2v^8;p b a 2;p 2 -2ab{32:cab;32.2;c,a,b;4;c2v^8;p 2 c b;p -2bc 2{32:bca;32.3;b,c,a;4;c2v^8;p c 2 a;p -2ac -2ac{33;33.1;;4;c2v^9;p n a 21;p 2c -2n{33:ba-c;33.2;b,a,-c;4;c2v^9;p b n 21;p 2c -2ab{33:cab;33.3;c,a,b;4;c2v^9;p 21 n b;p -2bc 2a{33:-cba;33.4;-c,b,a;4;c2v^9;p 21 c n;p -2n 2a{33:bca;33.5;b,c,a;4;c2v^9;p c 21 n;p -2n -2ac{33:a-cb;33.6;a,-c,b;4;c2v^9;p n 21 a;p -2ac -2n{34;34.1;;4;c2v^10;p n n 2;p 2 -2n{34:cab;34.2;c,a,b;4;c2v^10;p 2 n n;p -2n 2{34:bca;34.3;b,c,a;4;c2v^10;p n 2 n;p -2n -2n{35;35.1;;8;c2v^11;c m m 2;c 2 -2{35:cab;35.2;c,a,b;8;c2v^11;a 2 m m;a -2 2{35:bca;35.3;b,c,a;8;c2v^11;b m 2 m;b -2 -2{36;36.1;;8;c2v^12;c m c 21;c 2c -2{36:ba-c;36.2;b,a,-c;8;c2v^12;c c m 21;c 2c -2c{36:cab;36.3;c,a,b;8;c2v^12;a 21 m a;a -2a 2a{36:-cba;36.4;-c,b,a;8;c2v^12;a 21 a m;a -2 2a{36:bca;36.5;b,c,a;8;c2v^12;b b 21 m;b -2 -2b{36:a-cb;36.6;a,-c,b;8;c2v^12;b m 21 b;b -2b -2{37;37.1;;8;c2v^13;c c c 2;c 2 -2c{37:cab;37.2;c,a,b;8;c2v^13;a 2 a a;a -2a 2{37:bca;37.3;b,c,a;8;c2v^13;b b 2 b;b -2b -2b{38;38.1;;8;c2v^14;a m m 2;a 2 -2{38:ba-c;38.2;b,a,-c;8;c2v^14;b m m 2;b 2 -2{38:cab;38.3;c,a,b;8;c2v^14;b 2 m m;b -2 2{38:-cba;38.4;-c,b,a;8;c2v^14;c 2 m m;c -2 2{38:bca;38.5;b,c,a;8;c2v^14;c m 2 m;c -2 -2{38:a-cb;38.6;a,-c,b;8;c2v^14;a m 2 m;a -2 -2{39;39.1;;8;c2v^15;a e m 2;a 2 -2b{39;39.1;;8;c2v^15;a b m 2;a 2 -2b{39:ba-c;39.2;b,a,-c;8;c2v^15;b m e 2;b 2 -2a{39:ba-c;39.2;b,a,-c;8;c2v^15;b m a 2;b 2 -2a{39:cab;39.3;c,a,b;8;c2v^15;b 2 e m;b -2a 2{39:cab;39.3;c,a,b;8;c2v^15;b 2 c m;b -2a 2{39:-cba;39.4;-c,b,a;8;c2v^15;c 2 m e;c -2a 2{39:-cba;39.4;-c,b,a;8;c2v^15;c 2 m b;c -2a 2{39:bca;39.5;b,c,a;8;c2v^15;c m 2 e;c -2a -2a{39:bca;39.5;b,c,a;8;c2v^15;c m 2 a;c -2a -2a{39:a-cb;39.6;a,-c,b;8;c2v^15;a e 2 m;a -2b -2b{39:a-cb;39.6;a,-c,b;8;c2v^15;a c 2 m;a -2b -2b{40;40.1;;8;c2v^16;a m a 2;a 2 -2a{40:ba-c;40.2;b,a,-c;8;c2v^16;b b m 2;b 2 -2b{40:cab;40.3;c,a,b;8;c2v^16;b 2 m b;b -2b 2{40:-cba;40.4;-c,b,a;8;c2v^16;c 2 c m;c -2c 2{40:bca;40.5;b,c,a;8;c2v^16;c c 2 m;c -2c -2c{40:a-cb;40.6;a,-c,b;8;c2v^16;a m 2 a;a -2a -2a{41;41.1;;8;c2v^17;a e a 2;a 2 -2ab{41;41.1;;8;c2v^17;a b a 2;a 2 -2ab{41:ba-c;41.2;b,a,-c;8;c2v^17;b b e 2;b 2 -2ab{41:ba-c;41.2;b,a,-c;8;c2v^17;b b a 2;b 2 -2ab{41:cab;41.3;c,a,b;8;c2v^17;b 2 e b;b -2ab 2{41:cab;41.3;c,a,b;8;c2v^17;b 2 c b;b -2ab 2{41:-cba;41.4;-c,b,a;8;c2v^17;c 2 c e;c -2ac 2{41:-cba;41.4;-c,b,a;8;c2v^17;c 2 c b;c -2ac 2{41:bca;41.5;b,c,a;8;c2v^17;c c 2 e;c -2ac -2ac{41:bca;41.5;b,c,a;8;c2v^17;c c 2 a;c -2ac -2ac{41:a-cb;41.6;a,-c,b;8;c2v^17;a e 2 a;a -2ab -2ab{41:a-cb;41.6;a,-c,b;8;c2v^17;a c 2 a;a -2ab -2ab{42;42.1;;16;c2v^18;f m m 2;f 2 -2{42:cab;42.2;c,a,b;16;c2v^18;f 2 m m;f -2 2{42:bca;42.3;b,c,a;16;c2v^18;f m 2 m;f -2 -2{43;43.1;;16;c2v^19;f d d 2;f 2 -2d{43:cab;43.2;c,a,b;16;c2v^19;f 2 d d;f -2d 2{43:bca;43.3;b,c,a;16;c2v^19;f d 2 d;f -2d -2d{44;44.1;;8;c2v^20;i m m 2;i 2 -2{44:cab;44.2;c,a,b;8;c2v^20;i 2 m m;i -2 2{44:bca;44.3;b,c,a;8;c2v^20;i m 2 m;i -2 -2{45;45.1;;8;c2v^21;i b a 2;i 2 -2c{45:cab;45.2;c,a,b;8;c2v^21;i 2 c b;i -2a 2{45:bca;45.3;b,c,a;8;c2v^21;i c 2 a;i -2b -2b{46;46.1;;8;c2v^22;i m a 2;i 2 -2a{46:ba-c;46.2;b,a,-c;8;c2v^22;i b m 2;i 2 -2b{46:cab;46.3;c,a,b;8;c2v^22;i 2 m b;i -2b 2{46:-cba;46.4;-c,b,a;8;c2v^22;i 2 c m;i -2c 2{46:bca;46.5;b,c,a;8;c2v^22;i c 2 m;i -2c -2c{46:a-cb;46.6;a,-c,b;8;c2v^22;i m 2 a;i -2a -2a{47;47.1;;8;d2h^1;p m m m;-p 2 2{48:2;48.1;;8;d2h^2;p n n n :2;-p 2ab 2bc{48:1;48.2;a,b,c|1/4,1/4,1/4;8;d2h^2;p n n n :1;p 2 2 -1n{49;49.1;;8;d2h^3;p c c m;-p 2 2c{49:cab;49.2;c,a,b;8;d2h^3;p m a a;-p 2a 2{49:bca;49.3;b,c,a;8;d2h^3;p b m b;-p 2b 2b{50:2;50.1;;8;d2h^4;p b a n :2;-p 2ab 2b{50:2cab;50.2;c,a,b;8;d2h^4;p n c b :2;-p 2b 2bc{50:2bca;50.3;b,c,a;8;d2h^4;p c n a :2;-p 2a 2c{50:1;50.4;a,b,c|1/4,1/4,0;8;d2h^4;p b a n :1;p 2 2 -1ab{50:1cab;50.5;c,a,b|1/4,1/4,0;8;d2h^4;p n c b :1;p 2 2 -1bc{50:1bca;50.6;b,c,a|1/4,1/4,0;8;d2h^4;p c n a :1;p 2 2 -1ac{51;51.1;;8;d2h^5;p m m a;-p 2a 2a{51:ba-c;51.2;b,a,-c;8;d2h^5;p m m b;-p 2b 2{51:cab;51.3;c,a,b;8;d2h^5;p b m m;-p 2 2b{51:-cba;51.4;-c,b,a;8;d2h^5;p c m m;-p 2c 2c{51:bca;51.5;b,c,a;8;d2h^5;p m c m;-p 2c 2{51:a-cb;51.6;a,-c,b;8;d2h^5;p m a m;-p 2 2a{52;52.1;;8;d2h^6;p n n a;-p 2a 2bc{52:ba-c;52.2;b,a,-c;8;d2h^6;p n n b;-p 2b 2n{52:cab;52.3;c,a,b;8;d2h^6;p b n n;-p 2n 2b{52:-cba;52.4;-c,b,a;8;d2h^6;p c n n;-p 2ab 2c{52:bca;52.5;b,c,a;8;d2h^6;p n c n;-p 2ab 2n{52:a-cb;52.6;a,-c,b;8;d2h^6;p n a n;-p 2n 2bc{53;53.1;;8;d2h^7;p m n a;-p 2ac 2{53:ba-c;53.2;b,a,-c;8;d2h^7;p n m b;-p 2bc 2bc{53:cab;53.3;c,a,b;8;d2h^7;p b m n;-p 2ab 2ab{53:-cba;53.4;-c,b,a;8;d2h^7;p c n m;-p 2 2ac{53:bca;53.5;b,c,a;8;d2h^7;p n c m;-p 2 2bc{53:a-cb;53.6;a,-c,b;8;d2h^7;p m a n;-p 2ab 2{54;54.1;;8;d2h^8;p c c a;-p 2a 2ac{54:ba-c;54.2;b,a,-c;8;d2h^8;p c c b;-p 2b 2c{54:cab;54.3;c,a,b;8;d2h^8;p b a a;-p 2a 2b{54:-cba;54.4;-c,b,a;8;d2h^8;p c a a;-p 2ac 2c{54:bca;54.5;b,c,a;8;d2h^8;p b c b;-p 2bc 2b{54:a-cb;54.6;a,-c,b;8;d2h^8;p b a b;-p 2b 2ab{55;55.1;;8;d2h^9;p b a m;-p 2 2ab{55:cab;55.2;c,a,b;8;d2h^9;p m c b;-p 2bc 2{55:bca;55.3;b,c,a;8;d2h^9;p c m a;-p 2ac 2ac{56;56.1;;8;d2h^10;p c c n;-p 2ab 2ac{56:cab;56.2;c,a,b;8;d2h^10;p n a a;-p 2ac 2bc{56:bca;56.3;b,c,a;8;d2h^10;p b n b;-p 2bc 2ab{57;57.1;;8;d2h^11;p b c m;-p 2c 2b{57:ba-c;57.2;b,a,-c;8;d2h^11;p c a m;-p 2c 2ac{57:cab;57.3;c,a,b;8;d2h^11;p m c a;-p 2ac 2a{57:-cba;57.4;-c,b,a;8;d2h^11;p m a b;-p 2b 2a{57:bca;57.5;b,c,a;8;d2h^11;p b m a;-p 2a 2ab{57:a-cb;57.6;a,-c,b;8;d2h^11;p c m b;-p 2bc 2c{58;58.1;;8;d2h^12;p n n m;-p 2 2n{58:cab;58.2;c,a,b;8;d2h^12;p m n n;-p 2n 2{58:bca;58.3;b,c,a;8;d2h^12;p n m n;-p 2n 2n{59:2;59.1;;8;d2h^13;p m m n :2;-p 2ab 2a{59:2cab;59.2;c,a,b;8;d2h^13;p n m m :2;-p 2c 2bc{59:2bca;59.3;b,c,a;8;d2h^13;p m n m :2;-p 2c 2a{59:1;59.4;a,b,c|1/4,1/4,0;8;d2h^13;p m m n :1;p 2 2ab -1ab{59:1cab;59.5;c,a,b|1/4,1/4,0;8;d2h^13;p n m m :1;p 2bc 2 -1bc{59:1bca;59.6;b,c,a|1/4,1/4,0;8;d2h^13;p m n m :1;p 2ac 2ac -1ac{60;60.1;;8;d2h^14;p b c n;-p 2n 2ab{60:ba-c;60.2;b,a,-c;8;d2h^14;p c a n;-p 2n 2c{60:cab;60.3;c,a,b;8;d2h^14;p n c a;-p 2a 2n{60:-cba;60.4;-c,b,a;8;d2h^14;p n a b;-p 2bc 2n{60:bca;60.5;b,c,a;8;d2h^14;p b n a;-p 2ac 2b{60:a-cb;60.6;a,-c,b;8;d2h^14;p c n b;-p 2b 2ac{61;61.1;;8;d2h^15;p b c a;-p 2ac 2ab{61:ba-c;61.2;b,a,-c;8;d2h^15;p c a b;-p 2bc 2ac{62;62.1;;8;d2h^16;p n m a;-p 2ac 2n{62:ba-c;62.2;b,a,-c;8;d2h^16;p m n b;-p 2bc 2a{62:cab;62.3;c,a,b;8;d2h^16;p b n m;-p 2c 2ab{62:-cba;62.4;-c,b,a;8;d2h^16;p c m n;-p 2n 2ac{62:bca;62.5;b,c,a;8;d2h^16;p m c n;-p 2n 2a{62:a-cb;62.6;a,-c,b;8;d2h^16;p n a m;-p 2c 2n{63;63.1;;16;d2h^17;c m c m;-c 2c 2{63:ba-c;63.2;b,a,-c;16;d2h^17;c c m m;-c 2c 2c{63:cab;63.3;c,a,b;16;d2h^17;a m m a;-a 2a 2a{63:-cba;63.4;-c,b,a;16;d2h^17;a m a m;-a 2 2a{63:bca;63.5;b,c,a;16;d2h^17;b b m m;-b 2 2b{63:a-cb;63.6;a,-c,b;16;d2h^17;b m m b;-b 2b 2{64;64.1;;16;d2h^18;c m c e;-c 2ac 2{64;64.1;;16;d2h^18;c m c a;-c 2ac 2{64:ba-c;64.2;b,a,-c;16;d2h^18;c c m e;-c 2ac 2ac{64:ba-c;64.2;b,a,-c;16;d2h^18;c c m b;-c 2ac 2ac{64:cab;64.3;c,a,b;16;d2h^18;a e m a;-a 2ab 2ab{64:cab;64.3;c,a,b;16;d2h^18;a b m a;-a 2ab 2ab{64:-cba;64.4;-c,b,a;16;d2h^18;a e a m;-a 2 2ab{64:-cba;64.4;-c,b,a;16;d2h^18;a c a m;-a 2 2ab{64:bca;64.5;b,c,a;16;d2h^18;b b e m;-b 2 2ab{64:bca;64.5;b,c,a;16;d2h^18;b b c m;-b 2 2ab{64:a-cb;64.6;a,-c,b;16;d2h^18;b m e b;-b 2ab 2{64:a-cb;64.6;a,-c,b;16;d2h^18;b m a b;-b 2ab 2{65;65.1;;16;d2h^19;c m m m;-c 2 2{65:cab;65.2;c,a,b;16;d2h^19;a m m m;-a 2 2{65:bca;65.3;b,c,a;16;d2h^19;b m m m;-b 2 2{66;66.1;;16;d2h^20;c c c m;-c 2 2c{66:cab;66.2;c,a,b;16;d2h^20;a m a a;-a 2a 2{66:bca;66.3;b,c,a;16;d2h^20;b b m b;-b 2b 2b{67;67.1;;16;d2h^21;c m m e;-c 2a 2{67;67.1;;16;d2h^21;c m m a;-c 2a 2{67:ba-c;67.2;b,a,-c;16;d2h^21;c m m b;-c 2a 2a{67:cab;67.3;c,a,b;16;d2h^21;a b m m;-a 2b 2b{67:-cba;67.4;-c,b,a;16;d2h^21;a c m m;-a 2 2b{67:bca;67.5;b,c,a;16;d2h^21;b m c m;-b 2 2a{67:a-cb;67.6;a,-c,b;16;d2h^21;b m a m;-b 2a 2{68:2;68.1;;16;d2h^22;c c c e :2;-c 2a 2ac{68:2;68.1;;16;d2h^22;c c c a :2;-c 2a 2ac{68:2ba-c;68.2;b,a,-c;16;d2h^22;c c c b :2;-c 2a 2c{68:2cab;68.3;c,a,b;16;d2h^22;a b a a :2;-a 2a 2b{68:2-cba;68.4;-c,b,a;16;d2h^22;a c a a :2;-a 2ab 2b{68:2bca;68.5;b,c,a;16;d2h^22;b b c b :2;-b 2ab 2b{68:2a-cb;68.6;a,-c,b;16;d2h^22;b b a b :2;-b 2b 2ab{68:1;68.7;a,b,c|0,1/4,1/4;16;d2h^22;c c c e :1;c 2 2 -1ac{68:1;68.7;a,b,c|0,1/4,1/4;16;d2h^22;c c c a :1;c 2 2 -1ac{68:1ba-c;68.8;b,a,-c|0,1/4,1/4;16;d2h^22;c c c b :1;c 2 2 -1ac{68:1cab;68.9;c,a,b|0,1/4,1/4;16;d2h^22;a b a a :1;a 2 2 -1ab{68:1-cba;68.10;-c,b,a|0,1/4,1/4;16;d2h^22;a c a a :1;a 2 2 -1ab{68:1bca;68.11;b,c,a|0,1/4,1/4;16;d2h^22;b b c b :1;b 2 2 -1ab{68:1a-cb;68.12;a,-c,b|0,1/4,1/4;16;d2h^22;b b a b :1;b 2 2 -1ab{69;69.1;;32;d2h^23;f m m m;-f 2 2{70:2;70.1;;32;d2h^24;f d d d :2;-f 2uv 2vw{70:1;70.2;a,b,c|-1/8,-1/8,-1/8;32;d2h^24;f d d d :1;f 2 2 -1d{71;71.1;;16;d2h^25;i m m m;-i 2 2{72;72.1;;16;d2h^26;i b a m;-i 2 2c{72:cab;72.2;c,a,b;16;d2h^26;i m c b;-i 2a 2{72:bca;72.3;b,c,a;16;d2h^26;i c m a;-i 2b 2b{73;73.1;;16;d2h^27;i b c a;-i 2b 2c{73:ba-c;73.2;b,a,-c;16;d2h^27;i c a b;-i 2a 2b{74;74.1;;16;d2h^28;i m m a;-i 2b 2{74:ba-c;74.2;b,a,-c;16;d2h^28;i m m b;-i 2a 2a{74:cab;74.3;c,a,b;16;d2h^28;i b m m;-i 2c 2c{74:-cba;74.4;-c,b,a;16;d2h^28;i c m m;-i 2 2b{74:bca;74.5;b,c,a;16;d2h^28;i m c m;-i 2 2a{74:a-cb;74.6;a,-c,b;16;d2h^28;i m a m;-i 2c 2{75;75.1;;4;c4^1;p 4;p 4{75:c;75.2;ab;8;c4^1;c 4;c 4{76;76.1;;4;c4^2;p 41;p 4w{76:c;76.2;ab;8;c4^2;c 41;c 4w{77;77.1;;4;c4^3;p 42;p 4c{77:c;77.2;ab;8;c4^3;c 42;c 4c{78;78.1;;4;c4^4;p 43;p 4cw{78:c;78.2;ab;8;c4^4;c 43;c 4cw{79;79.1;;8;c4^5;i 4;i 4{79:f;79.2;ab;16;c4^5;f 4;f 4{80;80.1;;8;c4^6;i 41;i 4bw{80:f;80.2;ab;16;c4^6;f 41;xyz{81;81.1;;4;s4^1;p -4;p -4{81:c;81.2;ab;8;s4^1;c -4;c -4{82;82.1;;8;s4^2;i -4;i -4{82:f;82.2;ab;16;s4^2;f -4;f -4{83;83.1;;8;c4h^1;p 4/m;-p 4{83:f;83.2;ab;16;c4h^1;c 4/m;-c 4{84;84.1;;8;c4h^2;p 42/m;-p 4c{84:c;84.2;ab;16;c4h^2;c 42/m;-c 4c{85:2;85.1;;8;c4h^3;p 4/n :2;-p 4a{85:c2;85.2;ab;16;c4h^3;c 4/e :2;xyz{85:1;85.3;a,b,c|-1/4,1/4,0;8;c4h^3;p 4/n :1;p 4ab -1ab{85:c1;85.4;ab|-1/4,1/4,0;16;c4h^3;c 4/e :1;xyz{86:2;86.1;;8;c4h^4;p 42/n :2;-p 4bc{86:1;86.3;a,b,c|-1/4,-1/4,-1/4;8;c4h^4;p 42/n :1;p 4n -1n{86:c1;86.4;ab|-1/4,-1/4,-1/4;16;c4h^4;c 42/e :1;xyz{86:c2;86.2;ab;16;c4h^4;c 42/e :2;xyz{87;87.1;;16;c4h^5;i 4/m;-i 4{87:f;87.2;ab;32;c4h^5;f 4/m;xyz{88:2;88.1;;16;c4h^6;i 41/a :2;-i 4ad{88:f2;88.2;ab;32;c4h^6;f 41/d :2;xyz{88:1;88.3;a,b,c|0,-1/4,-1/8;16;c4h^6;i 41/a :1;i 4bw -1bw{88:f1;88.4;ab|0,-1/4,-1/8;32;c4h^6;f 41/d :1;xyz{89;89.1;;8;d4^1;p 4 2 2;p 4 2{89:c;89.2;ab;16;d4^1;c 4 2 2;xyz{90;90.1;;8;d4^2;p 4 21 2;p 4ab 2ab{90:c;90.2;ab;16;d4^2;c 4 2 21;xyz{91;91.1;;8;d4^3;p 41 2 2;p 4w 2c{91:c;91.2;ab;16;d4^3;c 41 2 2;xyz{92;92.1;;8;d4^4;p 41 21 2;p 4abw 2nw{92:c;92.2;ab;16;d4^4;c 41 2 21;xyz{93;93.1;;8;d4^5;p 42 2 2;p 4c 2{93:c;93.2;ab;16;d4^5;c 42 2 2;xyz{94;94.1;;8;d4^6;p 42 21 2;p 4n 2n{94:c;94.2;ab;16;d4^6;c 42 2 21;xyz{95;95.1;;8;d4^7;p 43 2 2;p 4cw 2c{95:c;95.2;ab;16;d4^7;c 43 2 2;xyz{96;96.1;;8;d4^8;p 43 21 2;p 4nw 2abw{96:c;96.2;ab;16;d4^8;c 43 2 21;xyz{97;97.1;;16;d4^9;i 4 2 2;i 4 2{97:f;97.2;ab;32;d4^9;f 4 2 2;f 4 2{98;98.1;;16;d4^10;i 41 2 2;i 4bw 2bw{98:f;98.2;ab;32;d4^10;f 41 2 2;xyz{99;99.1;;8;c4v^1;p 4 m m;p 4 -2{99:c;99.2;ab;16;c4v^1;c 4 m m;c 4 -2{100;100.1;;8;c4v^2;p 4 b m;p 4 -2ab{100:c;100.2;ab;16;c4v^2;c 4 m g1;xyz{101;101.1;;8;c4v^3;p 42 c m;p 4c -2c{101:c;101.2;ab;16;c4v^3;c 42 m c;xyz{102;102.1;;8;c4v^4;p 42 n m;p 4n -2n{102:c;102.2;ab;16;c4v^4;c 42 m g2;xyz{103;103.1;;8;c4v^5;p 4 c c;p 4 -2c{103:c;103.2;ab;16;c4v^5;c 4 c c;c 4 -2c{104;104.1;;8;c4v^6;p 4 n c;p 4 -2n{104:c;104.2;ab;16;c4v^6;c 4 c g2;xyz{105;105.1;;8;c4v^7;p 42 m c;p 4c -2{105:c;105.2;ab;16;c4v^7;c 42 c m;xyz{106;106.1;;8;c4v^8;p 42 b c;p 4c -2ab{106:c;106.2;ab;16;c4v^8;c 42 c g1;xyz{107;107.1;;16;c4v^9;i 4 m m;i 4 -2{107:f;107.2;ab;32;c4v^9;f 4 m m;f 4 -2{108;108.1;;16;c4v^10;i 4 c m;i 4 -2c{108:f;108.2;ab;32;c4v^10;f 4 m c;xyz{109;109.1;;16;c4v^11;i 41 m d;i 4bw -2{109:f;109.2;ab;32;c4v^11;f 41 d m;xyz{110;110.1;;16;c4v^12;i 41 c d;i 4bw -2c{110:f;110.2;ab;32;c4v^12;f 41 d c;xyz{111;111.1;;8;d2d^1;p -4 2 m;p -4 2{111:c;111.2;ab;16;d2d^1;c -4 m 2;xyz{112;112.1;;8;d2d^2;p -4 2 c;p -4 2c{112:c;112.2;ab;16;d2d^2;c -4 c 2;xyz{113;113.1;;8;d2d^3;p -4 21 m;p -4 2ab{113:c;113.2;ab;16;d2d^3;c -4 m 21;xyz{114;114.1;;8;d2d^4;p -4 21 c;p -4 2n{114:c;114.2;ab;16;d2d^4;c -4 c 21;xyz{115;115.1;;8;d2d^5;p -4 m 2;p -4 -2{115:c;115.2;ab;16;d2d^5;c -4 2 m;xyz{116;116.1;;8;d2d^6;p -4 c 2;p -4 -2c{116:c;116.2;ab;16;d2d^6;c -4 2 c;xyz{117;117.1;;8;d2d^7;p -4 b 2;p -4 -2ab{117:c;117.2;ab;16;d2d^7;c -4 2 g1;xyz{118;118.1;;8;d2d^8;p -4 n 2;p -4 -2n{118:c;118.2;ab;16;d2d^8;c -4 2 g2;xyz{119;119.1;;16;d2d^9;i -4 m 2;i -4 -2{119:f;119.2;ab;32;d2d^9;f -4 2 m;xyz{120;120.1;;16;d2d^10;i -4 c 2;i -4 -2c{120:f;120.2;ab;32;d2d^10;f -4 2 c;xyz{121;121.1;;16;d2d^11;i -4 2 m;i -4 2{121:f;121.2;ab;32;d2d^11;f -4 m 2;xyz{122;122.1;;16;d2d^12;i -4 2 d;i -4 2bw{122:f;122.2;ab;32;d2d^12;f -4 d 2;xyz{123;123.1;;16;d4h^1;p 4/m m m;-p 4 2{123:c;123.2;ab;32;d4h^1;c 4/m m m;xyz{124;124.1;;16;d4h^2;p 4/m c c;-p 4 2c{124:c;124.2;ab;32;d4h^2;c 4/m c c;xyz{125:2;125.1;;16;d4h^3;p 4/n b m :2;-p 4a 2b{125:c2;125.2;ab;32;d4h^3;c 4/e m g1 :2;xyz{125:1;125.3;a,b,c|-1/4,-1/4,0;16;d4h^3;p 4/n b m :1;p 4 2 -1ab{125:c1;125.4;ab|-1/4,-1/4,0;32;d4h^3;c 4/e m g1 :1;xyz{126:2;126.1;;16;d4h^4;p 4/n n c :2;-p 4a 2bc{126:c1;126.2;ab;32;d4h^4;c 4/e c g2 :2;xyz{126:1;126.3;a,b,c|-1/4,-1/4,-1/4;16;d4h^4;p 4/n n c :1;p 4 2 -1n{126:c4;126.4;ab|-1/4,-1/4,-1/4;32;d4h^4;c 4/e c g2 :1;xyz{127;127.1;;16;d4h^5;p 4/m b m;-p 4 2ab{127:c;127.2;ab;32;d4h^5;c 4/m m g1;xyz{128;128.1;;16;d4h^6;p 4/m n c;-p 4 2n{128:c;128.2;ab;32;d4h^6;c 4/m c g2;xyz{129:2;129.1;;16;d4h^7;p 4/n m m :2;-p 4a 2a{129:c2;129.2;ab;32;d4h^7;c 4/e m m :2;xyz{129:1;129.3;a,b,c|-1/4,1/4,0;16;d4h^7;p 4/n m m :1;p 4ab 2ab -1ab{129:c1;129.4;ab|-1/4,1/4,0;32;d4h^7;c 4/e m m :1;xyz{130:2;130.1;;16;d4h^8;p 4/n c c :2;-p 4a 2ac{130:c2;130.2;ab;32;d4h^8;c 4/e c c :2;xyz{130:1;130.3;a,b,c|-1/4,1/4,0;16;d4h^8;p 4/n c c :1;p 4ab 2n -1ab{130:c1;130.4;ab|-1/4,1/4,0;32;d4h^8;c 4/e c c :1;xyz{131;131.1;;16;d4h^9;p 42/m m c;-p 4c 2{131:c;131.2;ab;32;d4h^9;c 42/m c m;xyz{132;132.1;;16;d4h^10;p 42/m c m;-p 4c 2c{132:c;132.2;ab;32;d4h^10;c 42/m m c;xyz{133:2;133.1;;16;d4h^11;p 42/n b c :2;-p 4ac 2b{133:c1;133.2;ab;32;d4h^11;c 42/e c g1 :2;xyz{133:1;133.3;a,b,c|-1/4,1/4,-1/4;16;d4h^11;p 42/n b c :1;p 4n 2c -1n{133:c2;133.4;ab|-1/4,1/4,-1/4;32;d4h^11;c 42/e c g1 :1;xyz{134:2;134.1;;16;d4h^12;p 42/n n m :2;-p 4ac 2bc{134:c2;134.2;ab;32;d4h^12;c 42/e m g2 :2;xyz{134:1;134.3;a,b,c|-1/4,1/4,-1/4;16;d4h^12;p 42/n n m :1;p 4n 2 -1n{134:c1;134.4;ab|-1/4,1/4,-1/4;32;d4h^12;c 42/e m g2 :1;xyz{135;135.1;;16;d4h^13;p 42/m b c;-p 4c 2ab{135:c;135.2;ab;32;d4h^13;c 42/m c g1;xyz{136;136.1;;16;d4h^14;p 42/m n m;-p 4n 2n{136:c;136.2;ab;32;d4h^14;c 42/m m g2;xyz{137:2;137.1;;16;d4h^15;p 42/n m c :2;-p 4ac 2a{137:c1;137.2;ab;32;d4h^15;c 42/e c m :2;xyz{137:1;137.3;a,b,c|-1/4,1/4,-1/4;16;d4h^15;p 42/n m c :1;p 4n 2n -1n{137:c2;137.4;ab|-1/4,1/4,-1/4;32;d4h^15;c 42/e c m :1;xyz{138:2;138.1;;16;d4h^16;p 42/n c m :2;-p 4ac 2ac{138:c2;138.2;ab;32;d4h^16;c 42/e m c :2;xyz{138:1;138.3;a,b,c|-1/4,1/4,-1/4;16;d4h^16;p 42/n c m :1;p 4n 2ab -1n{138:c1;138.4;ab|-1/4,1/4,-1/4;32;d4h^16;c 42/e m c :1;xyz{139;139.1;;32;d4h^17;i 4/m m m;-i 4 2{139:f;139.2;ab;64;d4h^17;f 4/m m m;xyz{140;140.1;;32;d4h^18;i 4/m c m;-i 4 2c{140:f;140.2;ab;64;d4h^18;f 4/m m c;xyz{141:2;141.1;;32;d4h^19;i 41/a m d :2;-i 4bd 2{141:f2;141.2;ab;64;d4h^19;f 41/d d m :2;xyz{141:1;141.3;a,b,c|0,1/4,-1/8;32;d4h^19;i 41/a m d :1;i 4bw 2bw -1bw{141:f1;141.4;ab|0,1/4,-1/8;64;d4h^19;f 41/d d m :1;xyz{142:2;142.1;;32;d4h^20;i 41/a c d :2;-i 4bd 2c{142:f2;142.2;ab;64;d4h^20;f 41/d d c :2;xyz{142:1;142.3;a,b,c|0,1/4,-1/8;32;d4h^20;i 41/a c d :1;i 4bw 2aw -1bw{142:f1;142.4;ab|0,1/4,-1/8;64;d4h^20;f 41/d d c :1;xyz{143;143.1;;3;c3^1;p 3;p 3{144;144.1;;3;c3^2;p 31;p 31{145;145.1;;3;c3^3;p 32;p 32{146:h;146.1;;9;c3^4;r 3 :h;r 3{146:r;146.2;r;3;c3^4;r 3 :r;p 3*{147;147.1;;6;c3i^1;p -3;-p 3{148:h;148.1;;18;c3i^2;r -3 :h;-r 3{148:r;148.2;r;6;c3i^2;r -3 :r;-p 3*{149;149.1;;6;d3^1;p 3 1 2;p 3 2{150;150.1;;6;d3^2;p 3 2 1;p 3 2"{151;151.1;;6;d3^3;p 31 1 2;p 31 2 (0 0 4){152;152.1;;6;d3^4;p 31 2 1;p 31 2"{152:_2;152:a,b,c|0,0,-1/3;a,b,c|0,0,-1/3;6;d3^4;p 31 2 1;p 31 2" (0 0 4){153;153.1;;6;d3^5;p 32 1 2;p 32 2 (0 0 2){154;154.1;;6;d3^6;p 32 2 1;p 32 2"{154:_2;154:a,b,c|0,0,-1/3;a,b,c|0,0,-1/3;6;d3^6;p 32 2 1;p 32 2" (0 0 4){155:h;155.1;;18;d3^7;r 3 2 :h;r 3 2"{155:r;155.2;r;6;d3^7;r 3 2 :r;p 3* 2{156;156.1;;6;c3v^1;p 3 m 1;p 3 -2"{157;157.1;;6;c3v^2;p 3 1 m;p 3 -2{158;158.1;;6;c3v^3;p 3 c 1;p 3 -2"c{159;159.1;;6;c3v^4;p 3 1 c;p 3 -2c{160:h;160.1;;18;c3v^5;r 3 m :h;r 3 -2"{160:r;160.2;r;6;c3v^5;r 3 m :r;p 3* -2{161:h;161.1;;18;c3v^6;r 3 c :h;r 3 -2"c{161:r;161.2;r;6;c3v^6;r 3 c :r;p 3* -2n{162;162.1;;12;d3d^1;p -3 1 m;-p 3 2{163;163.1;;12;d3d^2;p -3 1 c;-p 3 2c{164;164.1;;12;d3d^3;p -3 m 1;-p 3 2"{165;165.1;;12;d3d^4;p -3 c 1;-p 3 2"c{166:h;166.1;;36;d3d^5;r -3 m :h;-r 3 2"{166:r;166.2;r;12;d3d^5;r -3 m :r;-p 3* 2{167:h;167.1;;36;d3d^6;r -3 c :h;-r 3 2"c{167:r;167.2;r;12;d3d^6;r -3 c :r;-p 3* 2n{168;168.1;;6;c6^1;p 6;p 6{169;169.1;;6;c6^2;p 61;p 61{170;170.1;;6;c6^3;p 65;p 65{171;171.1;;6;c6^4;p 62;p 62{172;172.1;;6;c6^5;p 64;p 64{173;173.1;;6;c6^6;p 63;p 6c{174;174.1;;6;c3h^1;p -6;p -6{175;175.1;;12;c6h^1;p 6/m;-p 6{176;176.1;;12;c6h^2;p 63/m;-p 6c{177;177.1;;12;d6^1;p 6 2 2;p 6 2{178;178.1;;12;d6^2;p 61 2 2;p 61 2 (0 0 5){179;179.1;;12;d6^3;p 65 2 2;p 65 2 (0 0 1){180;180.1;;12;d6^4;p 62 2 2;p 62 2 (0 0 4){181;181.1;;12;d6^5;p 64 2 2;p 64 2 (0 0 2){182;182.1;;12;d6^6;p 63 2 2;p 6c 2c{183;183.1;;12;c6v^1;p 6 m m;p 6 -2{184;184.1;;12;c6v^2;p 6 c c;p 6 -2c{185;185.1;;12;c6v^3;p 63 c m;p 6c -2{186;186.1;;12;c6v^4;p 63 m c;p 6c -2c{187;187.1;;12;d3h^1;p -6 m 2;p -6 2{188;188.1;;12;d3h^2;p -6 c 2;p -6c 2{189;189.1;;12;d3h^3;p -6 2 m;p -6 -2{190;190.1;;12;d3h^4;p -6 2 c;p -6c -2c{191;191.1;;24;d6h^1;p 6/m m m;-p 6 2{192;192.1;;24;d6h^2;p 6/m c c;-p 6 2c{193;193.1;;24;d6h^3;p 63/m c m;-p 6c 2{194;194.1;;24;d6h^4;p 63/m m c;-p 6c 2c{195;195.1;;12;t^1;p 2 3;p 2 2 3{196;196.1;;48;t^2;f 2 3;f 2 2 3{197;197.1;;24;t^3;i 2 3;i 2 2 3{198;198.1;;12;t^4;p 21 3;p 2ac 2ab 3{199;199.1;;24;t^5;i 21 3;i 2b 2c 3{200;200.1;;24;th^1;p m -3;-p 2 2 3{201:2;201.1;;24;th^2;p n -3 :2;-p 2ab 2bc 3{201:1;201.2;a,b,c|-1/4,-1/4,-1/4;24;th^2;p n -3 :1;p 2 2 3 -1n{202;202.1;;96;th^3;f m -3;-f 2 2 3{203:2;203.1;;96;th^4;f d -3 :2;-f 2uv 2vw 3{203:1;203.2;a,b,c|-1/8,-1/8,-1/8;96;th^4;f d -3 :1;f 2 2 3 -1d{204;204.1;;48;th^5;i m -3;-i 2 2 3{205;205.1;;24;th^6;p a -3;-p 2ac 2ab 3{206;206.1;;48;th^7;i a -3;-i 2b 2c 3{207;207.1;;24;o^1;p 4 3 2;p 4 2 3{208;208.1;;24;o^2;p 42 3 2;p 4n 2 3{209;209.1;;96;o^3;f 4 3 2;f 4 2 3{210;210.1;;96;o^4;f 41 3 2;f 4d 2 3{211;211.1;;48;o^5;i 4 3 2;i 4 2 3{212;212.1;;24;o^6;p 43 3 2;p 4acd 2ab 3{213;213.1;;24;o^7;p 41 3 2;p 4bd 2ab 3{214;214.1;;48;o^8;i 41 3 2;i 4bd 2c 3{215;215.1;;24;td^1;p -4 3 m;p -4 2 3{216;216.1;;96;td^2;f -4 3 m;f -4 2 3{217;217.1;;48;td^3;i -4 3 m;i -4 2 3{218;218.1;;24;td^4;p -4 3 n;p -4n 2 3{219;219.1;;96;td^5;f -4 3 c;f -4a 2 3{220;220.1;;48;td^6;i -4 3 d;i -4bd 2c 3{221;221.1;;48;oh^1;p m -3 m;-p 4 2 3{222:2;222.1;;48;oh^2;p n -3 n :2;-p 4a 2bc 3{222:1;222.2;a,b,c|-1/4,-1/4,-1/4;48;oh^2;p n -3 n :1;p 4 2 3 -1n{223;223.1;;48;oh^3;p m -3 n;-p 4n 2 3{224:2;224.1;;48;oh^4;p n -3 m :2;-p 4bc 2bc 3{224:1;224.2;a,b,c|-1/4,-1/4,-1/4;48;oh^4;p n -3 m :1;p 4n 2 3 -1n{225;225.1;;192;oh^5;f m -3 m;-f 4 2 3{226;226.1;;192;oh^6;f m -3 c;-f 4a 2 3{227:2;227.1;;192;oh^7;f d -3 m :2;-f 4vw 2vw 3{227:1;227.2;a,b,c|-1/8,-1/8,-1/8;192;oh^7;f d -3 m :1;f 4d 2 3 -1d{228:2;228.1;;192;oh^8;f d -3 c :2;-f 4ud 2vw 3{228:1;228.2;a,b,c|-3/8,-3/8,-3/8;192;oh^8;f d -3 c :1;f 4d 2 3 -1ad{229;229.1;;96;oh^9;i m -3 m;-i 4 2 3{230;230.1;;96;oh^10;i a -3 d;-i 4bd 2c 3'.split("{"));
b.moreSettings=E(-1,"A 1 1 2 :2'{5:-a-c,a,-b{A 1 2 1 :1'{5:c,-b,a{B 1 1 2 :1'{5:a,c,-b{B 2 1 1 :2'{5:-b,-a-c,a{C 1 2 1 :2'{5:a,-b,-a-c{C 2 1 1 :1'{5:-b,a,c{I 1 1 2 :3'{5:c,-a-c,-b{I 1 2 1 :3'{5:-a-c,-b,c{I 2 1 1 :3'{5:-b,c,-a-c{P 1 1 a :3'{7:c,-a-c,-b{P 1 1 b :1'{7:a,c,-b{P 1 1 n :2'{7:-a-c,a,-b{P 1 a 1 :1'{7:c,-b,a{P 1 c 1 :3'{7:-a-c,-b,c{P 1 n 1 :2'{7:a,-b,-a-c{P b 1 1 :3'{7:-b,c,-a-c{P c 1 1 :1'{7:-b,a,c{P n 1 1 :2'{7:-b,-a-c,a{A 1 1 m :2'{8:-a-c,a,-b{A 1 m 1 :1'{8:c,-b,a{B 1 1 m :1'{8:a,c,-b{B m 1 1 :2'{8:-b,-a-c,a{C 1 m 1 :2'{8:a,-b,-a-c{C m 1 1 :1'{8:-b,a,c{I 1 1 m :3'{8:c,-a-c,-b{I 1 m 1 :3'{8:-a-c,-b,c{I m 1 1 :3'{8:-b,c,-a-c{A 1 1 2/m :2'{12:-a-c,a,-b{A 1 2/m 1 :1'{12:c,-b,a{B 1 1 2/m :1'{12:a,c,-b{B 2/m 1 1 :2'{12:-b,-a-c,a{C 1 2/m 1 :2'{12:a,-b,-a-c{C 2/m 1 1 :1'{12:-b,a,c{I 1 1 2/m :3'{12:c,-a-c,-b{I 1 2/m 1 :3'{12:-a-c,-b,c{I 2/m 1 1 :3'{12:-b,c,-a-c{P 1 1 2/a :3'{13:c,-a-c,-b{P 1 1 2/b :1'{13:a,c,-b{P 1 1 2/n :2'{13:-a-c,a,-b{P 1 2/a 1 :1'{13:c,-b,a{P 1 2/c 1 :3'{13:-a-c,-b,c{P 1 2/n 1 :2'{13:a,-b,-a-c{P 2/b 1 1 :3'{13:-b,c,-a-c{P 2/c 1 1 :1'{13:-b,a,c{P 2/n 1 1 :2'{13:-b,-a-c,a{P 1 1 21/a :3'{14:c,-a-c,-b{P 1 1 21/b :1'{14:a,c,-b{P 1 1 21/n :2'{14:-a-c,a,-b{P 1 21/a 1 :1'{14:c,-b,a{P 1 21/c 1 :3'{14:-a-c,-b,c{P 1 21/n 1 :2'{14:a,-b,-a-c{P 21/b 1 1 :3'{14:-b,c,-a-c{P 21/c 1 1 :1'{14:-b,a,c{P 21/n 1 1 :2'{14:-b,-a-c,a{C 4'{75:a+b,-a+b,c{C 41'{76:a+b,-a+b,c{C 42'{77:a+b,-a+b,c{C 43'{78:a+b,-a+b,c{F 4'{79:a+b,-a+b,c{F 41'{80:a+b,-a+b,c{C -4'{81:a+b,-a+b,c{F -4'{82:a+b,-a+b,c{C 4/m'{83:a+b,-a+b,c{C 42/m'{84:a+b,-a+b,c{C 4/e :1'{85:a+b,-a+b,c;-1/4,1/4,0{C 4/e :2'{85:a+b,-a+b,c{C 42/e :1'{86:a+b,-a+b,c;-1/4,-1/4,-1/4{C 42/e :2'{86:a+b,-a+b,c{F 4/m'{87:a+b,-a+b,c{F 41/d :1'{88:a+b,-a+b,c;0,-1/4,-1/8{F 41/d :2'{88:a+b,-a+b,c{C 4 2 2'{89:a+b,-a+b,c{C 4 2 21'{90:a+b,-a+b,c{C 41 2 2'{91:a+b,-a+b,c{C 41 2 21'{92:a+b,-a+b,c{C 42 2 2'{93:a+b,-a+b,c{C 42 2 21'{94:a+b,-a+b,c{C 43 2 2'{95:a+b,-a+b,c{C 43 2 21'{96:a+b,-a+b,c{F 4 2 2'{97:a+b,-a+b,c{F 41 2 2'{98:a+b,-a+b,c{C 4 m m'{99:a+b,-a+b,c{C 4 m g1'{100:a+b,-a+b,c{C 42 m c'{101:a+b,-a+b,c{C 42 m g2'{102:a+b,-a+b,c{C 4 c c'{103:a+b,-a+b,c{C 4 c g2'{104:a+b,-a+b,c{C 42 c m'{105:a+b,-a+b,c{C 42 c g1'{106:a+b,-a+b,c{F 4 m m'{107:a+b,-a+b,c{F 4 m c'{108:a+b,-a+b,c{F 41 d m'{109:a+b,-a+b,c{F 41 d c'{110:a+b,-a+b,c{C -4 m 2'{111:a+b,-a+b,c{C -4 c 2'{112:a+b,-a+b,c{C -4 m 21'{113:a+b,-a+b,c{C -4 c 21'{114:a+b,-a+b,c{C -4 2 m'{115:a+b,-a+b,c{C -4 2 c'{116:a+b,-a+b,c{C -4 2 g1'{117:a+b,-a+b,c{C -4 2 g2'{118:a+b,-a+b,c{F -4 2 m'{119:a+b,-a+b,c{F -4 2 c'{120:a+b,-a+b,c{F -4 m 2'{121:a+b,-a+b,c{F -4 d 2'{122:a+b,-a+b,c{C 4/m m m'{123:a+b,-a+b,c{C 4/m c c'{124:a+b,-a+b,c{C 4/e m g1 :1'{125:a+b,-a+b,c;-1/4,-1/4,0{C 4/e m g1 :2'{125:a+b,-a+b,c{C 4/e c g2 :1'{126:a+b,-a+b,c;-1/4,-1/4,-1/4{C 4/e c g2 :2'{126:a+b,-a+b,c{C 4/m m g1'{127:a+b,-a+b,c{C 4/m c g2'{128:a+b,-a+b,c{C 4/e m m :1'{129:a+b,-a+b,c;-1/4,1/4,0{C 4/e m m :2'{129:a+b,-a+b,c{C 4/e c c :1'{130:a+b,-a+b,c;-1/4,1/4,0{C 4/e c c :2'{130:a+b,-a+b,c{C 42/m c m'{131:a+b,-a+b,c{C 42/m m c'{132:a+b,-a+b,c{C 42/e c g1 :1'{133:a+b,-a+b,c;-1/4,1/4,-1/4{C 42/e c g1 :2'{133:a+b,-a+b,c{C 42/e m g2 :1'{134:a+b,-a+b,c;-1/4,1/4,-1/4{C 42/e m g2 :2'{134:a+b,-a+b,c{C 42/m c g1'{135:a+b,-a+b,c{C 42/m m g2'{136:a+b,-a+b,c{C 42/e c m :1'{137:a+b,-a+b,c;-1/4,1/4,-1/4{C 42/e c m :2'{137:a+b,-a+b,c{C 42/e m c :1'{138:a+b,-a+b,c;-1/4,1/4,-1/4{C 42/e m c :2'{138:a+b,-a+b,c{F 4/m m m'{139:a+b,-a+b,c{F 4/m m c'{140:a+b,-a+b,c{F 41/d d m :1'{141:a+b,-a+b,c;0,1/4,-1/8{F 41/d d m :2'{141:a+b,-a+b,c{F 41/d d c :1'{142:a+b,-a+b,c;0,1/4,-1/8{F 41/d d c :2'{142:a+b,-a+b,c".split("{"));
b.HMtoCleg=null;b.ClegtoHM=null;JS.SpaceGroup.getSpaceGroups()});aa("JS");$(["JU.P3"],"JS.SpaceGroupFinder","java.util.Arrays JU.BS $.Lst $.M4 $.Measure $.PT $.V3 J.api.Interface JS.SpaceGroup $.SymmetryOperation $.UnitCell JU.BSUtil JV.FileManager".split(" "),function(){var b=M(function(){this.atoms=this.cartesians=this.sg=this.uc=this.vwr=null;this.nAtoms=0;this.unitCellParams=this.xyzList=null;this.slop=0;this.asString=this.isSupercell=this.$checkSupercell=this.isUnknown=this.isAssign=this.isCalcOnly=
!1;this.pTemp=this.scaling=this.oabc=this.origin=this.targets=this.bsAtoms=this.bsPoints0=null;this.groupType=this.isg=0;this.isSpecialGroup=!1;this.zero=this.vectorBC=this.vectorBA=null;this.isTransformOnly=this.isQuery=!1;xa("JS.SpaceGroupFinder.SGAtom")||JS.SpaceGroupFinder.$SpaceGroupFinder$SGAtom$();S(this,arguments)},JS,"SpaceGroupFinder",null);qa(b,function(){this.pTemp=new JU.P3});V(b,function(){});e(b,"findSpaceGroup",function(a,c,f,d,b,e,h,l){this.vwr=a;this.xyzList=f;this.unitCellParams=
d;this.origin=b;this.oabc=e;this.uc=h;this.isCalcOnly=0!=(l&16);this.isAssign=0!=(l&2);this.$checkSupercell=0!=(l&8);this.asString=0!=(l&1);f=0!=(l&4);e=this.uc.getPrecision();this.slop=!Float.isNaN(e)?e:null!=d&&26<d.length?d[26]:1E-4;Float.isNaN(this.slop)&&(this.slop=1E-6);this.cartesians=a.ms.at;this.bsPoints0=new JU.BS;if(null==this.xyzList||this.isAssign)this.bsAtoms=JU.BSUtil.copy(c),this.nAtoms=this.bsAtoms.cardinality();this.isQuery=null!=this.xyzList&&0<=this.xyzList.indexOf("&");this.isTransformOnly=
null!=this.xyzList&&this.xyzList.startsWith(".:");this.targets=JU.BS.newN(this.nAtoms);this.scaling=JU.P3.new3(1,1,1);this.isUnknown=!0;a=this.isTransformOnly||null!=this.xyzList&&this.xyzList.toUpperCase().startsWith("ITA/");e=null!=this.xyzList&&!a&&(this.xyzList.startsWith("[")||this.xyzList.startsWith("Hall:"));if(this.isAssign&&e||!e&&(a||(a=this.checkWyckoffHM()))){this.isUnknown=!1;this.xyzList=a?JU.PT.rep(this.isTransformOnly?this.xyzList:this.xyzList.substring(4)," ",""):this.xyzList.startsWith("Hall:")?
this.xyzList.substring(5):JU.PT.replaceAllCharacters(this.xyzList,"[]","");this.sg=this.setITA(e);if(null==this.sg)return null;this.sg.getName()}else if(null!=this.oabc||e){if(a=this.xyzList,null!=a&&(this.sg=JS.SpaceGroup.createSpaceGroupN(a,e)),this.isUnknown=null==this.sg,e&&!this.isUnknown)return this.sg.dumpInfoObj()}else if(!this.isQuery&&JS.SpaceGroup.isXYZList(this.xyzList)&&(this.sg=JS.SpaceGroup.findSpaceGroupFromXYZ(this.xyzList),null!=this.sg))return this.sg.dumpInfoObj();if(f){if(null==
this.sg&&null==(this.sg=JS.SpaceGroup.determineSpaceGroupNA(this.xyzList,d))&&null==(this.sg=JS.SpaceGroup.createSpaceGroupN(this.xyzList,!1)))return null;f=new JU.BS;a=this.sg.asString();null==this.oabc?(this.uc=this.setSpaceGroupAndUnitCell(this.sg,d,null,6==d.length),this.oabc=this.uc.getUnitCellVectors(),null!=b&&this.oabc[0].setT(b)):(this.uc=this.setSpaceGroupAndUnitCell(this.sg,null,this.oabc,!1),this.uc.transformUnitCell(h.saveOrRetrieveTransformMatrix(null)))}else{d=this.findGroupByOperations();
if(!this.isAssign||!L(d,"JS.SpaceGroup"))return d;this.sg=d;a=this.sg.asString();f=JU.BSUtil.copy(this.bsAtoms);for(d=this.targets.nextSetBit(0);0<=d;d=this.targets.nextSetBit(d+1))f.clear(this.atoms[d].index);d=f.cardinality();if(!this.isCalcOnly&&(c=a+(null==c||0==d?"":"\nbasis is "+d+" atom"+(1==d?"":"s")+": "+f),System.out.println("SpaceGroupFinder chose "+c),this.asString))return c}c=this.sg.dumpInfoObj();null!=this.uc&&!this.isCalcOnly&&System.out.println("unitcell is "+this.uc.getUnitCellInfo(!0));
this.isAssign||(d=JU.BS.copy(this.bsPoints0),d.andNot(this.targets),this.dumpBasis(JS.SpaceGroupFinder.bsGroupOps[this.isg],d,this.bsPoints0));c.put("name",a);c.put("basis",f);this.isSupercell&&c.put("supercell",this.scaling);this.oabc[1].scale(1/this.scaling.x);this.oabc[2].scale(1/this.scaling.y);this.oabc[3].scale(1/this.scaling.z);c.put("unitcell",this.oabc);this.isAssign&&c.put("sg",this.sg);return c},"JV.Viewer,JU.BS,~S,~A,JU.T3,~A,J.api.SymmetryInterface,~N");e(b,"checkWyckoffHM",function(){if(null!=
this.xyzList&&0>this.xyzList.indexOf(",")){var a=JS.SpaceGroup.convertWyckoffHMCleg(this.xyzList,null);if(null!=a)return this.xyzList="ITA/"+a,!0}return!1});e(b,"setITA",function(a){var c=null,f=null,d=this.xyzList.lastIndexOf(":"),b=this.xyzList.indexOf(","),b=0<d&&b>d,e=null,h=0<d&&!b,l=null;b&&(l=this.uc.staticCleanTransform(this.xyzList.substring(d+1)),this.xyzList=this.xyzList.substring(0,d),e=this.xyzList+":"+l,l.equals("a,b,c")&&(l=null,b=!1));d=this.xyzList.indexOf(".");if(0<d&&(b||h))this.xyzList=
this.xyzList.substring(0,d),d=-1;var k=this.xyzList;0<JS.SpaceGroup.getExplicitSpecialGroupType(k)&&(k=k.substring(2),this.isSpecialGroup=!0,d-=2);!h&&(!a&&!b&&!(0<d)&&-2147483648!=JU.PT.parseInt(k))&&(this.xyzList+=".1");var j=null,j=this.xyzList,d=null;if(a){if(h=this.uc.getSpaceGroupInfoObj("nameToXYZList","Hall:"+this.xyzList,!1,!1),null==h)return null}else if(c=b?l:j,this.isTransformOnly)this.sg=this.uc.spaceGroup,d=this.sg.itaTransform,h=null;else{this.sg=JS.SpaceGroup.getSpaceGroupFromJmolClegOrITA(this.vwr,
b?e:j);f=this.uc.getSpaceGroupJSON("ITA",j,0);if(null==f||"string"==typeof f)return null;if(h||b){a=f.get("its");if(null==a)return null;for(var f=null,e=0,s=a.size();e<s;e++)if(j=a.get(e),c.equals(j.get(b?"trm":"jmolId"))){f=j;break}if(null==f||!this.isSpecialGroup&&!f.containsKey("jmolId")){if(h)return null;null!=f&&(l=f.get("trm"));b=!0;f=a.get(0)}else b=!1,l=null}else f.get("jmolId");h=f.get("gp")}if(null!=this.sg&&null==l)return this.sg=JS.SpaceGroup.createITASpaceGroup(this.sg.groupType,h,this.sg);
this.sg=JS.SpaceGroup.transformSpaceGroup(this.groupType,null,this.sg,h,b?l:null,b?new JU.M4:null);if(null==this.sg)return null;this.sg.itaNumber.equals("0")&&(null==l?(f.get("trm"),f=f.get("hm"),this.sg.setHMSymbol(f)):(this.isTransformOnly&&(l=this.multiplyTransforms(d,l)),this.sg.setITATableNames(null,k,null,l)),System.out.println("SpaceGroupFinder: new setting: "+this.sg.asString()));return this.sg},"~B");e(b,"multiplyTransforms",function(a,c){var f=JS.SpaceGroupFinder.matFor(a),d=JS.SpaceGroupFinder.matFor(c);
d.mul(f);return JS.SpaceGroupFinder.abcFor(d)},"~S,~S");b.abcFor=e(b,"abcFor",function(a){return JS.SymmetryOperation.getTransformABC(a,!1)},"JU.M4");b.matFor=e(b,"matFor",function(a){var c=new JU.M4;JS.UnitCell.getMatrixAndUnitCell(null,null,a,c);return c},"~S");e(b,"findGroupByOperations",function(){var a=new JU.BS,c=new JU.BS,f=0,d=0;try{this.isUnknown?null==JS.SpaceGroupFinder.bsOpGroups&&JS.SpaceGroupFinder.loadData(this.vwr):c.set(0);if(null!=this.xyzList){if(this.isUnknown){var b=this.getGroupsWithOps();
if(!this.isAssign||null==b)return b;this.sg=b}null==this.oabc&&this.uc.setUnitCellFromParams(this.unitCellParams,!1,this.slop)}var e=this.uc;null==this.oabc?(this.oabc=this.uc.getUnitCellVectors(),this.uc=this.uc.getUnitCellMultiplied(),null!=this.origin&&!this.origin.equals(this.uc.getCartesianOffset())&&(this.oabc[0].setT(this.origin),this.uc.setCartesianOffset(this.origin))):this.uc.getUnitCell(this.oabc,!1,"finder");if(this.isUnknown)this.filterGroups(c,this.uc.getUnitCellParams());else if(0==
this.nAtoms)return this.sg;if(null!=this.bsAtoms){this.atoms=Array(this.bsAtoms.cardinality());System.out.println("bsAtoms = "+this.bsAtoms);for(var h=0,l=this.bsAtoms.nextSetBit(0);0<=l;l=this.bsAtoms.nextSetBit(l+1),h++){var k=this.cartesians[l],j=k.getAtomicAndIsotopeNumber();(this.atoms[h]=la(JS.SpaceGroupFinder.SGAtom,this,null,j,l,k.getAtomName(),k.getOccupancy100())).setT(this.toFractional(k,this.uc))}}var s=JU.BSUtil.newBitSet2(0,this.nAtoms);this.nAtoms=s.cardinality();e=this.uc;if(0<this.nAtoms){for(l=
s.nextSetBit(0);0<=l;l=s.nextSetBit(l+1))this.uc.unitize(this.atoms[l]);this.removeDuplicates(s);if(this.$checkSupercell&&(this.uc=this.checkSupercell(this.vwr,this.uc,s,1,this.scaling),this.uc=this.checkSupercell(this.vwr,this.uc,s,2,this.scaling),this.uc=this.checkSupercell(this.vwr,this.uc,s,3,this.scaling),this.isSupercell=this.uc!==e))1!=this.scaling.x&&System.out.println("supercell found; a scaled by 1/"+this.scaling.x),1!=this.scaling.y&&System.out.println("supercell found; b scaled by 1/"+
this.scaling.y),1!=this.scaling.z&&System.out.println("supercell found; c scaled by 1/"+this.scaling.z)}f=s.cardinality();this.bsAtoms=new JU.BS;for(var p=Array(f),h=0,l=s.nextSetBit(0);0<=l;l=s.nextSetBit(l+1))k=this.atoms[l],p[h++]=k,this.isSupercell&&(k.setT(this.toFractional(this.cartesians[k.index],this.uc)),this.uc.unitize(k)),this.bsAtoms.set(this.atoms[l].index);this.atoms=p;this.nAtoms=f;s.clearAll();s.setBits(0,this.nAtoms);this.bsPoints0=JU.BS.copy(s);var m=JU.BS.newN(JS.SpaceGroupFinder.OP_COUNT),
r=JU.BS.newN(this.nAtoms);a.setBits(1,null==this.sg?JS.SpaceGroupFinder.OP_COUNT:this.sg.getOperationCount());0==this.nAtoms&&(c.clearBits(1,JS.SpaceGroupFinder.GROUP_COUNT),a.clearAll());var q=JU.BS.newN(JS.SpaceGroupFinder.OP_COUNT),n=JU.BS.newN(JS.SpaceGroupFinder.OP_COUNT);n.set(0);for(var h=!1,b=0,G=a.nextSetBit(1);0<G&&!c.isEmpty();G=a.nextSetBit(G+1)){var w=null==this.sg?JS.SpaceGroupFinder.getOp(G):this.sg.getOperation(G);null==this.sg&&(System.out.println("\n"+ ++b+" Checking operation "+
G+" "+JS.SpaceGroupFinder.opXYZ[G]),System.out.println("bsGroups = "+c),System.out.println("bsOps = "+a),d++);e=!0;s.clearAll();s.or(this.bsPoints0);r.clearAll();for(l=s.nextSetBit(0);0<=l;l=s.nextSetBit(l+1)){s.clear(l);var v=this.findEquiv(G,w,l,s,!0);if(0>v&&null==this.sg){System.out.println("failed op "+G+" for atom "+l+" "+this.atoms[l].name+" "+this.atoms[l]+" looking for "+this.pTemp+"\n"+w);e=!1;break}0<=v&&l!=v&&r.set(v)}if(null==this.sg){var z=JS.SpaceGroupFinder.bsOpGroups[G];a.clear(G);
n.set(G);if(e)1==G&&(h=!0),this.targets.or(r);else{c.andNot(z);m.clearAll();for(l=c.nextSetBit(0);0<=l;l=c.nextSetBit(l+1))m.or(JS.SpaceGroupFinder.bsGroupOps[l]);a.and(m)}}else this.targets.or(r)}if(null==this.sg&&(f=c.cardinality(),0==f&&(c.set(h?1:0),f=1,h&&!this.asString&&(q.clearAll(),q.set(1),n.clearAll(),this.targets.clearAll(),s.or(this.bsPoints0))),this.isg=c.nextSetBit(0),1==f&&0<this.isg)){var A=JS.SpaceGroupFinder.bsGroupOps[this.isg];n.and(A);q.and(A);q.andNot(n);q.or(A);q.clear(0);s.or(this.bsPoints0);
this.checkBasis(q,s)||(System.out.println("failed checkBasis"),this.isg=0)}}catch(y){if(da(y,Exception))y.printStackTrace(),c.clearAll();else throw y;}if(null==this.sg){System.out.println("checked "+d+" operations; now "+f+" groups="+c+" ops="+a);a=Array(c.cardinality());h=0;for(l=c.nextSetBit(0);0<=l;l=c.nextSetBit(l+1))(a[h++]=JS.SpaceGroupFinder.nameToGroup(JS.SpaceGroupFinder.groupNames[l])).sfIndex=l;java.util.Arrays.sort(a,(xa("JS.SpaceGroupFinder$1")?0:JS.SpaceGroupFinder.$SpaceGroupFinder$1$(),
la(JS.SpaceGroupFinder$1,this,null)));for(l=a.length;0<=--l&&!this.checkUnitCell(a[l]);)System.out.println("SpaceGroupFinder unit cell check failed for "+JS.SpaceGroupFinder.nameToGroup(JS.SpaceGroupFinder.groupNames[l])),f--,c.clear(a[l].sfIndex);System.out.println("SpaceGroupFinder found "+c.cardinality()+" possible groups");this.isg=c.length()-1;if(0>this.isg)return null;this.sg=JS.SpaceGroupFinder.nameToGroup(JS.SpaceGroupFinder.groupNames[this.isg])}return this.sg});e(b,"checkUnitCell",function(a){if(3>
a.itaNo||16<=a.itaNo)return!0;null==this.zero&&(this.vectorBA=new JU.V3,this.vectorBC=new JU.V3,this.zero=new JU.P3);a=a.getClegId();a=a.substring(a.indexOf(":")+1);var c=this.uc.staticConvertOperation("!"+a,null,null);a=JU.P3.new3(1,0,0);var f=JU.P3.new3(0,1,0),d=JU.P3.new3(0,0,1);c.rotTrans(a);c.rotTrans(f);c.rotTrans(d);this.uc.toCartesian(a,!0);this.uc.toCartesian(f,!0);this.uc.toCartesian(d,!0);c=JU.Measure.computeAngle(a,this.zero,f,this.vectorBA,this.vectorBC,!0);a=JU.Measure.computeAngle(a,
this.zero,f,this.vectorBA,this.vectorBC,!0);return this.approx0(c-90)&&this.approx0(a-90)},"JS.SpaceGroup");b.nameToGroup=e(b,"nameToGroup",function(a){var c="0"!=a.charAt(0)?0:"0"!=a.charAt(1)?1:2;return JS.SpaceGroup.nameToGroup.get(a.substring(c))},"~S");e(b,"setSpaceGroupAndUnitCell",function(a,c,f,d){var b=J.api.Interface.getSymmetry(this.vwr,"sgf");b.setSpaceGroupTo(a);null==f?(f=D(6,0),a.createCompatibleUnitCell(c,f,d)||(f=c),b.setUnitCellFromParams(f,!1,NaN)):b.getUnitCell(f,!1,"modelkit");
return b},"JS.SpaceGroup,~A,~A,~B");e(b,"removeDuplicates",function(a){for(var c=a.nextSetBit(0);0<=c;c=a.nextSetBit(c+1))for(var f=this.atoms[c],d=a.nextSetBit(0);d<c;d=a.nextSetBit(d+1)){var b=this.atoms[d];if(f.typeAndOcc==b.typeAndOcc&&1.96E-6>f.distanceSquared(b)){a.clear(c);break}}},"JU.BS");e(b,"dumpBasis",function(){},"JU.BS,JU.BS,JU.BS");e(b,"checkBasis",function(a,c){var f=a.cardinality();if(0==f)return!0;var d=new JU.BS;d.or(c);System.out.println("finishing check for basis for "+f+" operations");
for(f=a.nextSetBit(0);0<=f;f=a.nextSetBit(f+1)){var b=JS.SpaceGroupFinder.getOp(f);d.or(c);for(var e=d.nextSetBit(0);0<=e;e=d.nextSetBit(e+1))if(0>this.findEquiv(-1,b,e,d,!1))return!1}return!0},"JU.BS,JU.BS");e(b,"filterGroups",function(a,c){var f=!1,d=!1,b=!1,e=!1,h=!1,l=this.approx001(c[0]-c[1]),k=this.approx001(c[1]-c[2]);90==c[3]?90==c[4]&&(l&&c[0]!=c[1]&&System.out.println("OHOH - very close a,b distance"),b=l&&this.approx001(c[5]-120),90==c[5]&&(h=l&&c[1]==c[2],d=!h&&l,f=!h&&!d)):l&&(k&&this.approx001(c[3]-
c[4])&&this.approx001(c[4]-c[5]))&&(e=!0);a.setBits(0,2);for(k=l=2;;){k=JS.SpaceGroupFinder.scanTo(k,"16");if(!f&&!d&&!b&&!e&&!h)break;k=JS.SpaceGroupFinder.scanTo(k,"75");if(!d&&!b&&!e&&!h)break;k=JS.SpaceGroupFinder.scanTo(k,"143");if(!b&&!e&&!h)break;for(l=k;;k++){f=JS.SpaceGroupFinder.groupNames[k];if(0<=f.indexOf(":r")){if(!e)continue;a.set(k)}if(f.startsWith("195")){if(e)return;break}}if(!h)break;a.setBits(2,l);l=k;k=JS.SpaceGroupFinder.GROUP_COUNT;break}a.setBits(l,k)},"JU.BS,~A");e(b,"approx001",
function(a){return 0.001>Math.abs(a)},"~N");b.scanTo=e(b,"scanTo",function(a,c){c="000"+c;for(c=c.substring(c.length-3);!JS.SpaceGroupFinder.groupNames[a].startsWith(c);a++);return a},"~N,~S");e(b,"getGroupsWithOps",function(){var a=new JU.BS;null==this.unitCellParams?a.setBits(0,JS.SpaceGroupFinder.GROUP_COUNT):this.filterGroups(a,this.unitCellParams);var c=null;if(!JS.SpaceGroup.isXYZList(this.xyzList)){c=JS.SpaceGroup.determineSpaceGroupNA(this.xyzList,this.unitCellParams);if(null==c)return null;
c.checkHallOperators();for(var f="00"+c.jmolId,d=f.indexOf(":"),f=f.substring((0>d?f.length:d)-3),d=0;d<JS.SpaceGroupFinder.GROUP_COUNT;d++)if(JS.SpaceGroupFinder.groupNames[d].equals(f)){if(!a.get(d))break;if(null!=this.unitCellParams&&(this.uc.setUnitCellFromParams(this.unitCellParams,!1,this.slop),!this.checkUnitCell(c)))break;return c}return null}for(var c=!this.isQuery||this.isAssign,f=JU.PT.split(JU.PT.trim(this.xyzList.trim().$replace("&",";"),";="),";"),b=f.length;0<=--b;){var e=f[b];if(null==
e)return"?"+f[b]+"?";e=JS.SymmetryOperation.getJmolCanonicalXYZ(e);for(d=JS.SpaceGroupFinder.opXYZ.length;0<=--d;){if(JS.SpaceGroupFinder.opXYZ[d].equals(e)){a.and(JS.SpaceGroupFinder.bsOpGroups[d]);break}0==d&&a.clearAll()}}if(a.isEmpty())return this.isAssign?JS.SpaceGroup.createSpaceGroupN(this.xyzList,!0):null;if(c){c=f.length;for(d=a.nextSetBit(0);0<=d;d=a.nextSetBit(d+1))if(JS.SpaceGroupFinder.bsGroupOps[d].cardinality()==c)return this.sg=JS.SpaceGroupFinder.nameToGroup(JS.SpaceGroupFinder.groupNames[d]),
this.uc.setUnitCellFromParams(this.unitCellParams,!1,this.slop),!this.checkUnitCell(this.sg)&&this.isAssign?JS.SpaceGroup.createSpaceGroupN(JS.SpaceGroupFinder.groupNames[d],!0):JS.SpaceGroup.getInfo(null,JS.SpaceGroupFinder.groupNames[d],this.unitCellParams,!0,!1);return null}c=new JU.Lst;this.uc.setUnitCellFromParams(this.unitCellParams,!1,this.slop);for(d=a.nextSetBit(0);0<=d;d=a.nextSetBit(d+1))f=JS.SpaceGroupFinder.nameToGroup(JS.SpaceGroupFinder.groupNames[d]),this.checkUnitCell(f)&&c.addLast(f.getClegId());
return c});e(b,"toFractional",function(a,c){this.pTemp.setT(a);c.toFractional(this.pTemp,!1);return this.pTemp},"JM.Atom,J.api.SymmetryInterface");b.getOp=e(b,"getOp",function(a){var c=JS.SpaceGroupFinder.ops[a];null==c&&(JS.SpaceGroupFinder.ops[a]=c=new JS.SymmetryOperation(null,a,!1),c.setMatrixFromXYZ(JS.SpaceGroupFinder.opXYZ[a],0,!1),c.doFinalize());return c},"~N");e(b,"checkSupercell",function(a,c,f,d,b){if(f.isEmpty())return c;for(var e=2147483647,h=-2147483648,l=N(101,0),k=f.cardinality(),
j=f.nextSetBit(0);0<=j;j=f.nextSetBit(j+1))for(var s=this.atoms[j],p=s.typeAndOcc,m,r,q=f.nextSetBit(0);0<=q;q=f.nextSetBit(q+1))if(!(q==j||(m=this.atoms[q]).typeAndOcc!=p)){this.pTemp.sub2(m,s);switch(d){case 1:if(this.approx0(r=this.pTemp.x)||!this.approx0(this.pTemp.y)||!this.approx0(this.pTemp.z))continue;break;case 2:if(this.approx0(r=this.pTemp.y)||!this.approx0(this.pTemp.x)||!this.approx0(this.pTemp.z))continue;break;default:case 3:if(this.approx0(r=this.pTemp.z)||!this.approx0(this.pTemp.x)||
!this.approx0(this.pTemp.y))continue}var n=this.approxInt(1/r);0==n||(C(k/n)!=1*k/n||100<n)||(n>h&&(h=n),n<e&&(e=n),l[n]++)}for(n=h;n>=e&&!(0<l[n]&&l[n]==C((n-1)*k/n));)--n;if(n<e)return c;e=c.getUnitCellVectors();e[d].scale(1/n);switch(d){case 1:b.x=n;break;case 2:b.y=n;break;case 3:b.z=n}(c=J.api.Interface.getSymmetry(a,"sgf")).getUnitCell(e,!1,"scaled");r=0;for(j=f.nextSetBit(0);0<=j;j=f.nextSetBit(j+1)){switch(d){case 1:r=this.approxInt(n*this.atoms[j].x);break;case 2:r=this.approxInt(n*this.atoms[j].y);
break;case 3:r=this.approxInt(n*this.atoms[j].z)}0!=r&&(this.atoms[j]=null,f.clear(j))}f.cardinality();return c},"JV.Viewer,JS.Symmetry,JU.BS,~N,JU.P3");e(b,"approx0",function(a){return Math.abs(a)<this.slop},"~N");e(b,"approxInt",function(a){var c=x(a+this.slop);return this.approx0(a-c)?c:0},"~N");e(b,"findEquiv",function(a,c,f,b,e){a=this.atoms[f];this.pTemp.setT(a);c.rotTrans(this.pTemp);this.uc.unitize(this.pTemp);if(0==this.pTemp.distanceSquared(a))return f;c=a.typeAndOcc;for(a=this.nAtoms;0<=
--a;){var g=this.atoms[a];if(g.typeAndOcc==c){var h=g.distance(this.pTemp);if(1.96E-6>h*h||1.96E-6>(1-h)*(1-h)&&this.latticeShift(this.pTemp,g))return e&&(a=Math.max(f,a),f!=a&&b.clear(a)),a}}return-1},"~N,JS.SymmetryOperation,~N,JU.BS,~B");e(b,"latticeShift",function(a,c){return this.approx0(Math.abs(a.x-c.x)-1)||this.approx0(Math.abs(a.y-c.y)-1)||this.approx0(Math.abs(a.z-c.z)-1)},"JU.P3,JU.P3");b.main=e(b,"main",function(){JS.SpaceGroupFinder.loadData(null)&&System.out.println("OK")},"~A");b.loadData=
e(b,"loadData",function(a){try{JS.SpaceGroupFinder.groupNames=JS.SpaceGroupFinder.getList(a,null,"sggroups_ordered.txt");JS.SpaceGroupFinder.GROUP_COUNT=JS.SpaceGroupFinder.groupNames.length;JS.SpaceGroupFinder.opXYZ=JS.SpaceGroupFinder.getList(a,null,"sgops_ordered.txt");JS.SpaceGroupFinder.OP_COUNT=JS.SpaceGroupFinder.opXYZ.length;var c=JS.SpaceGroupFinder.getList(a,Array(JS.SpaceGroupFinder.OP_COUNT),"sgmap.txt");JS.SpaceGroupFinder.bsGroupOps=Array(JS.SpaceGroupFinder.GROUP_COUNT);JS.SpaceGroupFinder.bsOpGroups=
Array(JS.SpaceGroupFinder.OP_COUNT);for(a=0;a<JS.SpaceGroupFinder.GROUP_COUNT;a++)JS.SpaceGroupFinder.bsGroupOps[a]=JU.BS.newN(JS.SpaceGroupFinder.OP_COUNT);for(var f=0;f<JS.SpaceGroupFinder.OP_COUNT;f++){var b=c[f],e=b.length;JS.SpaceGroupFinder.bsOpGroups[f]=JU.BS.newN(JS.SpaceGroupFinder.GROUP_COUNT);for(a=0;a<e;a++)"1"==b.charAt(a)&&(JS.SpaceGroupFinder.bsGroupOps[a].set(f),JS.SpaceGroupFinder.bsOpGroups[f].set(a))}JS.SpaceGroupFinder.ops=Array(JS.SpaceGroupFinder.OP_COUNT);return!0}catch(g){if(da(g,
Exception))return g.printStackTrace(),!1;throw g;}finally{if(null!=JS.SpaceGroupFinder.rdr)try{JS.SpaceGroupFinder.rdr.close()}catch(h){if(!da(h,"java.io.IOException"))throw h;}}},"JV.Viewer");b.getList=e(b,"getList",function(a,c,f){JS.SpaceGroupFinder.rdr=JV.FileManager.getBufferedReaderForResource(a,JS.SpaceGroupFinder,"JS/","sg/"+f);if(null==c){for(c=new JU.Lst;null!=(a=JS.SpaceGroupFinder.rdr.readLine());)0<a.length&&c.addLast(a);c.toArray(c=Array(c.size()))}else for(a=0;a<c.length;a++)c[a]=JS.SpaceGroupFinder.rdr.readLine();
JS.SpaceGroupFinder.rdr.close();return c},"JV.Viewer,~A,~S");b.$SpaceGroupFinder$SGAtom$=function(){var a=M(function(){Ia(this,arguments);this.index=this.typeAndOcc=0;this.name=null;S(this,arguments)},JS.SpaceGroupFinder,"SGAtom",JU.P3);V(a,function(a,f,b,e){Oa(this,JS.SpaceGroupFinder.SGAtom,[]);this.typeAndOcc=a+1E3*e;this.index=f;this.name=b},"~N,~N,~S,~N")};b.$SpaceGroupFinder$1$=function(){var a=hb(JS,"SpaceGroupFinder$1",null,java.util.Comparator);m(a,"compare",function(a,f){return a.itaNo!=
f.itaNo?a.itaNo-f.itaNo:f.setNo-a.setNo},"JS.SpaceGroup,JS.SpaceGroup")};b.GROUP_COUNT=0;b.OP_COUNT=0;b.bsOpGroups=null;b.bsGroupOps=null;b.groupNames=null;b.opXYZ=null;b.ops=null;b.rdr=null});aa("JS");$(["JU.M4"],"JS.HallInfo",["JU.P3i","$.SB","JS.SymmetryOperation","JU.Logger"],function(){var b=M(function(){this.primitiveHallSymbol=this.hallSymbol=null;this.latticeCode="\x00";this.latticeExtension=null;this.$isCentrosymmetric=!1;this.rotationTerms=null;this.nRotations=0;this.vectorCode=this.vector12ths=
null;S(this,arguments)},JS,"HallInfo",null);qa(b,function(){this.rotationTerms=Array(16)});V(b,function(a){this.init(a)},"~S");e(b,"getRotationCount",function(){return this.nRotations});e(b,"isGenerated",function(){return 0<this.nRotations});e(b,"getLatticeCode",function(){return this.latticeCode});e(b,"isCentrosymmetric",function(){return this.$isCentrosymmetric});e(b,"getHallSymbol",function(){return this.hallSymbol});e(b,"init",function(a){try{var c=this.hallSymbol=a.trim(),c=this.extractLatticeInfo(c);
if(0!=JS.HallInfo.HallTranslation.getLatticeIndex(this.latticeCode)){this.latticeExtension=JS.HallInfo.HallTranslation.getLatticeExtension(this.latticeCode,this.$isCentrosymmetric);c=this.extractVectorInfo(c)+this.latticeExtension;JU.Logger.debugging&&JU.Logger.debug("Hallinfo: "+a+" "+c);a=0;var f="\x00";for(this.primitiveHallSymbol="P";0<c.length&&16>this.nRotations;){var c=this.extractRotationInfo(c,a,f),b=this.rotationTerms[this.nRotations-1];a=b.order;f=b.axisType;this.primitiveHallSymbol+=" "+
b.primitiveCode}this.primitiveHallSymbol+=this.vectorCode}}catch(e){if(da(e,Exception))JU.Logger.error("Invalid Hall symbol "+e),this.nRotations=0;else throw e;}},"~S");e(b,"dumpInfo",function(){var a=new JU.SB;a.append("\nHall symbol: ").append(this.hallSymbol).append("\nprimitive Hall symbol: ").append(this.primitiveHallSymbol).append("\nlattice type: ").append(this.getLatticeDesignation());for(var c=0;c<this.nRotations;c++)a.append("\n\nrotation term ").appendI(c+1).append(this.rotationTerms[c].dumpInfo(this.vectorCode));
return a.toString()});e(b,"getLatticeDesignation",function(){return JS.HallInfo.HallTranslation.getLatticeDesignation2(this.latticeCode,this.$isCentrosymmetric)});e(b,"extractLatticeInfo",function(a){var c=a.indexOf(" ");if(0>c)return"";var f=a.substring(0,c).toUpperCase();this.latticeCode=f.charAt(0);"-"==this.latticeCode&&(this.$isCentrosymmetric=!0,this.latticeCode=f.charAt(1));return a.substring(c+1).trim()},"~S");e(b,"extractVectorInfo",function(a){this.vector12ths=new JU.P3i;this.vectorCode=
"";var c=a.indexOf("("),f=a.indexOf(")",c);0<c&&f>c&&(f=a.substring(c+1,f),this.vectorCode=" ("+f+")",a=a.substring(0,c).trim(),c=f.indexOf(" "),0<=c&&(this.vector12ths.x=Integer.parseInt(f.substring(0,c)),f=f.substring(c+1).trim(),c=f.indexOf(" "),0<=c&&(this.vector12ths.y=Integer.parseInt(f.substring(0,c)),f=f.substring(c+1).trim())),this.vector12ths.z=Integer.parseInt(f));return a},"~S");e(b,"extractRotationInfo",function(a,c,f){var b=a.indexOf(" "),e;0<=b?(e=a.substring(0,b),a=a.substring(b+1).trim()):
(e=a,a="");this.rotationTerms[this.nRotations]=new JS.HallInfo.HallRotationTerm(this,e,c,f);this.nRotations++;return a},"~S,~N,~S");m(b,"toString",function(){return this.hallSymbol});e(b,"generateAllOperators",function(a){for(var c=new JU.M4,f=new JU.M4,b=Array(7),e=0;7>e;e++)b[e]=new JU.M4;for(var g=a.getMatrixOperationCount(),e=0;e<this.nRotations;e++){var h=this.rotationTerms[e];c.setM4(h.seitzMatrix12ths);h=h.order;b[0].setIdentity();for(var l=1;l<=h;l++){var k=b[l];k.mul2(c,b[0]);b[0].setM4(k);
for(var j=0,s=0;s<g;s++)f.mul2(k,a.getMatrixOperation(s)),f.m03=(x(f.m03)+12)%12,f.m13=(x(f.m13)+12)%12,f.m23=(x(f.m23)+12)%12,a.addHallOperationCheckDuplicates(f)&&j++;g+=j}}},"JS.HallInfo.HallReceiver");b.getHallLatticeEquivalent=e(b,"getHallLatticeEquivalent",function(a){var c=JS.HallInfo.HallTranslation.getLatticeCode(a);return(0<a?"-":"")+c+" 1"},"~N");b.getLatticeDesignation=e(b,"getLatticeDesignation",function(a){return JS.HallInfo.HallTranslation.getLatticeDesignation(a)},"~N");b.getLatticeIndex=
e(b,"getLatticeIndex",function(a){return JS.HallInfo.HallTranslation.getLatticeIndex(a)},"~S");b.getLatticeIndexFromCode=e(b,"getLatticeIndexFromCode",function(a){return JS.HallInfo.getLatticeIndex(JS.HallInfo.HallTranslation.getLatticeCode(a))},"~N");fb(JS.HallInfo,"HallReceiver");b=M(function(){this.seitzMatrixInv=this.seitzMatrix=this.rotCode=null;S(this,arguments)},JS.HallInfo,"HallRotation",null);qa(b,function(){this.seitzMatrix=new JU.M4;this.seitzMatrixInv=new JU.M4});V(b,function(a,c){this.rotCode=
a;var f=D(16,0),b=D(16,0);f[15]=b[15]=1;for(var e=0,g=0;11>g;e++){var h=0;switch(c.charAt(e).charCodeAt(0)){case 32:g++;continue;case 43:case 49:h=1;break;case 45:h=-1}f[g]=h;b[g]=-h;g++}this.seitzMatrix.setA(f);this.seitzMatrixInv.setA(b)},"~S,~S");b.lookup=e(b,"lookup",function(a){for(var c=JS.HallInfo.HallRotation.getHallTerms().length;0<=--c;)if(JS.HallInfo.HallRotation.hallRotationTerms[c].rotCode.equals(a))return JS.HallInfo.HallRotation.hallRotationTerms[c];return null},"~S");b.getHallTerms=
e(b,"getHallTerms",function(){return null==JS.HallInfo.HallRotation.hallRotationTerms?JS.HallInfo.HallRotation.hallRotationTerms=E(-1,[new JS.HallInfo.HallRotation("1_","+00 0+0 00+"),new JS.HallInfo.HallRotation("2x","+00 0-0 00-"),new JS.HallInfo.HallRotation("2y","-00 0+0 00-"),new JS.HallInfo.HallRotation("2z","-00 0-0 00+"),new JS.HallInfo.HallRotation("2'","0-0 -00 00-"),new JS.HallInfo.HallRotation('2"',"0+0 +00 00-"),new JS.HallInfo.HallRotation("2x'","-00 00- 0-0"),new JS.HallInfo.HallRotation('2x"',
"-00 00+ 0+0"),new JS.HallInfo.HallRotation("2y'","00- 0-0 -00"),new JS.HallInfo.HallRotation('2y"',"00+ 0-0 +00"),new JS.HallInfo.HallRotation("2z'","0-0 -00 00-"),new JS.HallInfo.HallRotation('2z"',"0+0 +00 00-"),new JS.HallInfo.HallRotation("3x","+00 00- 0+-"),new JS.HallInfo.HallRotation("3y","-0+ 0+0 -00"),new JS.HallInfo.HallRotation("3z","0-0 +-0 00+"),new JS.HallInfo.HallRotation("3*","00+ +00 0+0"),new JS.HallInfo.HallRotation("4x","+00 00- 0+0"),new JS.HallInfo.HallRotation("4y","00+ 0+0 -00"),
new JS.HallInfo.HallRotation("4z","0-0 +00 00+"),new JS.HallInfo.HallRotation("6x","+00 0+- 0+0"),new JS.HallInfo.HallRotation("6y","00+ 0+0 -0+"),new JS.HallInfo.HallRotation("6z","+-0 +00 00+")]):JS.HallInfo.HallRotation.hallRotationTerms});b.hallRotationTerms=null;b=M(function(){this.translationCode="\x00";this.rotationShift12ths=this.rotationOrder=0;this.vectorShift12ths=null;S(this,arguments)},JS.HallInfo,"HallTranslation",null);V(b,function(a,c){this.translationCode=a;if(null!=c){if(0<=c.z){this.vectorShift12ths=
c;return}this.rotationOrder=c.x;this.rotationShift12ths=c.y}this.vectorShift12ths=new JU.P3i},"~S,JU.P3i");b.getLatticeIndex=e(b,"getLatticeIndex",function(a){for(var c=1,f=3;c<=JS.HallInfo.HallTranslation.nLatticeTypes;c++,f+=3)if(JS.HallInfo.HallTranslation.latticeTranslationData[f].charAt(0)==a)return c;return 0},"~S");b.getLatticeCode=e(b,"getLatticeCode",function(a){0>a&&(a=-a);return 0==a?"\x00":a>JS.HallInfo.HallTranslation.nLatticeTypes?JS.HallInfo.HallTranslation.getLatticeCode(JS.HallInfo.HallTranslation.getLatticeIndex(String.fromCharCode(a))):
JS.HallInfo.HallTranslation.latticeTranslationData[3*a].charAt(0)},"~N");b.getLatticeDesignation=e(b,"getLatticeDesignation",function(a){var c=0<a;0>a&&(a=-a);return 0==a||a>JS.HallInfo.HallTranslation.nLatticeTypes?"":(c?"-":"")+JS.HallInfo.HallTranslation.getLatticeCode(a)+": "+(c?"centrosymmetric ":"")+JS.HallInfo.HallTranslation.latticeTranslationData[3*a+1]},"~N");b.getLatticeDesignation2=e(b,"getLatticeDesignation2",function(a,c){var f=JS.HallInfo.HallTranslation.getLatticeIndex(a);c||(f=-f);
return JS.HallInfo.HallTranslation.getLatticeDesignation(f)},"~S,~B");b.getLatticeExtension=e(b,"getLatticeExtension",function(a,c){for(var f=1,b=3;f<=JS.HallInfo.HallTranslation.nLatticeTypes;f++,b+=3)if(JS.HallInfo.HallTranslation.latticeTranslationData[b].charAt(0)==a)return JS.HallInfo.HallTranslation.latticeTranslationData[b+2]+(c?" -1":"");return""},"~S,~B");b.getHallTerms=e(b,"getHallTerms",function(){return null==JS.HallInfo.HallTranslation.hallTranslationTerms?JS.HallInfo.HallTranslation.hallTranslationTerms=
E(-1,[new JS.HallInfo.HallTranslation("a",JU.P3i.new3(6,0,0)),new JS.HallInfo.HallTranslation("b",JU.P3i.new3(0,6,0)),new JS.HallInfo.HallTranslation("c",JU.P3i.new3(0,0,6)),new JS.HallInfo.HallTranslation("n",JU.P3i.new3(6,6,6)),new JS.HallInfo.HallTranslation("u",JU.P3i.new3(3,0,0)),new JS.HallInfo.HallTranslation("v",JU.P3i.new3(0,3,0)),new JS.HallInfo.HallTranslation("w",JU.P3i.new3(0,0,3)),new JS.HallInfo.HallTranslation("d",JU.P3i.new3(3,3,3)),new JS.HallInfo.HallTranslation("1",JU.P3i.new3(2,
6,-1)),new JS.HallInfo.HallTranslation("1",JU.P3i.new3(3,4,-1)),new JS.HallInfo.HallTranslation("2",JU.P3i.new3(3,8,-1)),new JS.HallInfo.HallTranslation("1",JU.P3i.new3(4,3,-1)),new JS.HallInfo.HallTranslation("3",JU.P3i.new3(4,9,-1)),new JS.HallInfo.HallTranslation("1",JU.P3i.new3(6,2,-1)),new JS.HallInfo.HallTranslation("2",JU.P3i.new3(6,4,-1)),new JS.HallInfo.HallTranslation("4",JU.P3i.new3(6,8,-1)),new JS.HallInfo.HallTranslation("5",JU.P3i.new3(6,10,-1)),new JS.HallInfo.HallTranslation("r",JU.P3i.new3(4,
8,8)),new JS.HallInfo.HallTranslation("s",JU.P3i.new3(8,8,4)),new JS.HallInfo.HallTranslation("t",JU.P3i.new3(8,4,8))]):JS.HallInfo.HallTranslation.hallTranslationTerms});b.getHallTranslation=e(b,"getHallTranslation",function(a,c){for(var f=null,b=JS.HallInfo.HallTranslation.getHallTerms().length;0<=--b;){var e=JS.HallInfo.HallTranslation.hallTranslationTerms[b];if(e.translationCode==a&&(0==e.rotationOrder||e.rotationOrder==c)){f=new JS.HallInfo.HallTranslation(a,null);f.translationCode=a;f.rotationShift12ths=
e.rotationShift12ths;f.vectorShift12ths=e.vectorShift12ths;break}}return f},"~S,~N");b.latticeTranslationData=E(-1,"\x00;unknown;;P;primitive;;I;body-centered; 1n;R;rhombohedral; 1r 1r;F;face-centered; 1ab 1bc 1ac;A;A-centered; 1bc;B;B-centered; 1ac;C;C-centered; 1ab;S;rhombohedral(S); 1s 1s;T;rhombohedral(T); 1t 1t".split(";"));b.nLatticeTypes=C(JS.HallInfo.HallTranslation.latticeTranslationData.length/3)-1;b.hallTranslationTerms=null;b=M(function(){this.seitzMatrix12ths=this.primitiveCode=null;
this.order=0;this.axisType="\x00";this.translation=this.rotation=this.translationString=this.lookupCode=this.inputCode=null;this.isImproper=!1;this.diagonalReferenceAxis="\x00";this.allPositive=!0;S(this,arguments)},JS.HallInfo,"HallRotationTerm",null);qa(b,function(){this.seitzMatrix12ths=new JU.M4});V(b,function(a,c,f,b){this.inputCode=c;c+="   ";"-"==c.charAt(0)&&(this.isImproper=!0,c=c.substring(1));this.primitiveCode="";this.order=c.charAt(0).charCodeAt(0)-48;this.axisType=this.diagonalReferenceAxis=
"\x00";var e=2,g;switch((g=c.charAt(1)).charCodeAt(0)){case 120:case 121:case 122:switch(c.charAt(2).charCodeAt(0)){case 39:case 34:this.diagonalReferenceAxis=g,g=c.charAt(2),e++}case 42:this.axisType=g;break;case 39:case 34:this.axisType=g;switch(c.charAt(2).charCodeAt(0)){case 120:case 121:case 122:this.diagonalReferenceAxis=c.charAt(2);e++;break;default:this.diagonalReferenceAxis=b}break;default:this.axisType=1==this.order?"_":0==a.nRotations?"z":2==a.nRotations?"*":2==f||4==f?"x":"'",c=c.substring(0,
1)+this.axisType+c.substring(1)}this.primitiveCode+="_"==this.axisType?"1":c.substring(0,2);"\x00"!=this.diagonalReferenceAxis&&(c=c.substring(0,1)+this.diagonalReferenceAxis+this.axisType+c.substring(e),this.primitiveCode+=this.diagonalReferenceAxis,e=3);this.lookupCode=c.substring(0,e);this.rotation=JS.HallInfo.HallRotation.lookup(this.lookupCode);if(null==this.rotation)JU.Logger.error("Rotation lookup could not find "+this.inputCode+" ? "+this.lookupCode);else{this.translation=new JS.HallInfo.HallTranslation("\x00",
null);this.translationString="";for(f=c.length;e<f;e++)b=c.charAt(e),b=JS.HallInfo.HallTranslation.getHallTranslation(b,this.order),null!=b&&(this.translationString+=""+b.translationCode,this.translation.rotationShift12ths+=b.rotationShift12ths,this.translation.vectorShift12ths.add(b.vectorShift12ths));this.primitiveCode=(this.isImproper?"-":"")+this.primitiveCode+this.translationString;this.seitzMatrix12ths.setM4(this.isImproper?this.rotation.seitzMatrixInv:this.rotation.seitzMatrix);this.seitzMatrix12ths.m03=
this.translation.vectorShift12ths.x;this.seitzMatrix12ths.m13=this.translation.vectorShift12ths.y;this.seitzMatrix12ths.m23=this.translation.vectorShift12ths.z;switch(this.axisType.charCodeAt(0)){case 120:this.seitzMatrix12ths.m03+=this.translation.rotationShift12ths;break;case 121:this.seitzMatrix12ths.m13+=this.translation.rotationShift12ths;break;case 122:this.seitzMatrix12ths.m23+=this.translation.rotationShift12ths}0<a.vectorCode.length&&(e=JU.M4.newM4(null),f=JU.M4.newM4(null),a=a.vector12ths,
e.m03=a.x,e.m13=a.y,e.m23=a.z,f.m03=-a.x,f.m13=-a.y,f.m23=-a.z,this.seitzMatrix12ths.mul2(e,this.seitzMatrix12ths),this.seitzMatrix12ths.mul(f));JU.Logger.debugging&&JU.Logger.debug("code = "+c+"; primitive code ="+this.primitiveCode+"\n Seitz Matrix(12ths):"+this.seitzMatrix12ths)}},"JS.HallInfo,~S,~N,~S");e(b,"dumpInfo",function(a){var c=new JU.SB;c.append("\ninput code: ").append(this.inputCode).append("; primitive code: ").append(this.primitiveCode).append("\norder: ").appendI(this.order).append(this.isImproper?
" (improper axis)":"");"_"!=this.axisType&&(c.append("; axisType: ").appendC(this.axisType),"\x00"!=this.diagonalReferenceAxis&&c.appendC(this.diagonalReferenceAxis));0<this.translationString.length&&c.append("; translation: ").append(this.translationString);0<a.length&&c.append("; vector offset: ").append(a);null!=this.rotation&&c.append("\noperator: ").append(this.getXYZ(this.allPositive)).append("\nSeitz matrix:\n").append(JS.SymmetryOperation.dumpSeitz(this.seitzMatrix12ths,!1));return c.toString()},
"~S");e(b,"getXYZ",function(a){return JS.SymmetryOperation.getXYZFromMatrix(this.seitzMatrix12ths,!0,a,!0)},"~B")});aa("JS");$(["JU.M4","$.P3"],"JS.SymmetryOperation","java.util.Hashtable JU.Lst $.M3 $.Matrix $.Measure $.P4 $.PT $.SB $.V3 JU.BoxInfo $.Logger $.Parser".split(" "),function(){var b=M(function(){this.xyz=this.xyzCanonical=this.xyzOriginal=null;this.doNormalize=!0;this.isFinalized=!1;this.opId=0;this.info=this.centering=null;this.opType=-1;this.opOrder=0;this.suvwId=this.suvw=this.spinU=
this.opIsCCW=this.opPlane=this.opAxis=this.opPoint2=this.opPoint=this.opGlide=this.opTrans=null;this.spinIndex=-1;this.opPerDim=0;this.isIrrelevant=!1;this.iCoincident=0;this.myLabels=null;this.modDim=0;this.rsvs=this.linearRotTrans=null;this.isBio=!1;this.sigma=null;this.number=0;this.subsystemCode=null;this.timeReversal=0;this.isCenteringOp=this.unCentered=!1;this.magOp=2147483647;this.divisor=12;this.opAxisCode=this.opX=null;this.isPointGroupOp=this.opIsLong=!1;S(this,arguments)},JS,"SymmetryOperation",
JU.M4);V(b,function(a,c,f){Oa(this,JS.SymmetryOperation,[]);this.doNormalize=f;null==a?this.opId=c:(this.xyzOriginal=a.xyzOriginal,this.xyz=a.xyz,this.divisor=a.divisor,this.opId=a.opId,this.modDim=a.modDim,this.myLabels=a.myLabels,this.number=a.number,this.linearRotTrans=a.linearRotTrans,this.sigma=a.sigma,this.subsystemCode=a.subsystemCode,this.timeReversal=a.timeReversal,this.spinU=a.spinU,this.spinIndex=a.spinIndex,this.suvw=a.suvw,this.setMatrix(!1),this.doFinalize())},"JS.SymmetryOperation,~N,~B");
e(b,"getOpDesc",function(){-1==this.opType&&this.setOpTypeAndOrder();switch(this.opType){case 0:return"I";case 1:return"Trans";case 2:return"Rot"+this.opOrder;case 4:return"Inv";case 8:return"Plane";case 3:return"Screw"+this.opOrder;case 6:return"Nbar"+this.opOrder;case 9:return"Glide"}return null});e(b,"getOpName",function(a){-1==this.opType&&this.setOpTypeAndOrder();switch(this.opType){case 0:return"I";case 1:return"Trans"+JS.SymmetryOperation.op48(this.opTrans);case 2:return"Rot"+this.opOrder+
JS.SymmetryOperation.op48(this.opPoint)+JS.SymmetryOperation.op48(this.opAxis)+this.opIsCCW;case 4:return"Inv"+JS.SymmetryOperation.op48(this.opPoint);case 8:return(0==a?"":"Plane")+this.opRound(this.opPlane);case 3:return 0==a?"S"+JS.SymmetryOperation.op48(this.opPoint)+JS.SymmetryOperation.op48(this.opAxis):"Screw"+this.opOrder+JS.SymmetryOperation.op48(this.opPoint)+JS.SymmetryOperation.op48(this.opAxis)+JS.SymmetryOperation.op48(this.opTrans)+this.opIsCCW;case 6:return"Nbar"+this.opOrder+JS.SymmetryOperation.op48(this.opPoint)+
JS.SymmetryOperation.op48(this.opAxis)+this.opIsCCW;case 9:return(0==a?"":"Glide")+this.opRound(this.opPlane)+(2==a?JS.SymmetryOperation.op48(this.opTrans):"")}System.out.println("SymmetryOperation REJECTED TYPE FOR "+this);return""},"~N");e(b,"opRound",function(a){return Math.round(1E3*a.x)+","+Math.round(1E3*a.y)+","+Math.round(1E3*a.z)+","+Math.round(1E3*a.w)},"JU.P4");e(b,"getOpTitle",function(){-1==this.opType&&this.setOpTypeAndOrder();switch(this.opType){case 0:return"identity ";case 1:return"translation "+
JS.SymmetryOperation.opFrac(this.opTrans);case 2:return"rotation "+this.opOrder;case 4:return"inversion center "+JS.SymmetryOperation.opFrac(this.opPoint);case 8:return"reflection ";case 3:return"screw rotation "+this.opOrder+(null==this.opIsCCW?"":this.opIsCCW===Boolean.TRUE?"(+) ":"(-) ")+JS.SymmetryOperation.opFrac(this.opTrans);case 6:return this.opOrder+"-bar "+(null==this.opIsCCW?"":this.opIsCCW===Boolean.TRUE?"(+) ":"(-) ")+JS.SymmetryOperation.opFrac(this.opPoint);case 9:return"glide reflection "+
JS.SymmetryOperation.opFrac(this.opTrans)}return""});b.opFrac=e(b,"opFrac",function(a){return"{"+JS.SymmetryOperation.opF(a.x)+" "+JS.SymmetryOperation.opF(a.y)+" "+JS.SymmetryOperation.opF(a.z)+"}"},"JU.T3");b.opF=e(b,"opF",function(a){if(0==a)return"0";var c=0>a;c&&(a=-a);var f=0;1<=a&&(f=x(a),a-=f);var b=Math.round(48*a);if(0!=JU.PT.approx(b/48-a,1E3))return(c?"-":"")+JU.PT.approx(a,1E3);a=0==b%48?1:0==b%24?2:0==b%16?3:0==b%12?4:0==b%8?6:0==b%6?8:0==b%4?12:0==b%3?16:0==b%2?24:48;return(c?"-":"")+
(f*a+C(b*a/48))+(1==a?"":"/"+a)},"~N");b.op48=e(b,"op48",function(a){return null==a?(System.err.println("SymmetryOperation.op48 null"),"(null)"):"{"+Math.round(48*a.x)+" "+Math.round(48*a.y)+" "+Math.round(48*a.z)+"}"},"JU.T3");e(b,"setSigma",function(a,c){this.subsystemCode=a;this.sigma=c},"~S,JU.Matrix");e(b,"setGamma",function(a){for(var c=3+this.modDim,f=(this.rsvs=new JU.Matrix(null,c+1,c+1)).getArray(),b=Pa(c,0),e=0,g=0;g<c;g++){for(var h=0;h<c;h++)f[g][h]=this.linearRotTrans[e++];b[g]=(a?-1:
1)*this.linearRotTrans[e++]}f[c][c]=1;a&&(this.rsvs=this.rsvs.inverse());for(g=0;g<c;g++)f[g][c]=b[g];f=this.rsvs.getSubmatrix(0,0,3,3).getArray();for(g=0;3>g;g++)for(h=0;4>h;h++)this.setElement(g,h,3>h?f[g][h]:b[g]);this.setElement(3,3,1)},"~B");e(b,"doFinalize",function(){if(!this.isFinalized){JS.SymmetryOperation.div12(this,this.divisor);if(0<this.modDim)for(var a=this.rsvs.getArray(),c=a.length-1;0<=--c;)a[c][3+this.modDim]=JS.SymmetryOperation.finalizeD(a[c][3+this.modDim],this.divisor);this.isFinalized=
!0}});b.div12=e(b,"div12",function(a,c){a.m03=JS.SymmetryOperation.finalizeF(a.m03,c);a.m13=JS.SymmetryOperation.finalizeF(a.m13,c);a.m23=JS.SymmetryOperation.finalizeF(a.m23,c);return a},"JU.M4,~N");b.finalizeF=e(b,"finalizeF",function(a,c){if(0==c){if(0==a)return 0;var f=x(a);return 1*(f>>8)/(f&255)}return a/c},"~N,~N");b.finalizeD=e(b,"finalizeD",function(a,c){if(0==c){if(0==a)return 0;var f=C(a);return 1*(f>>8)/(f&255)}return a/c},"~N,~N");e(b,"getXyz",function(a){return a&&0==this.modDim||null==
this.xyzOriginal?this.xyz:this.xyzOriginal},"~B");e(b,"getxyzTrans",function(a){var c=JU.M4.newM4(this);c.add(a);return JS.SymmetryOperation.getXYZFromMatrix(c,!1,!1,!1)},"JU.T3");e(b,"dumpInfo",function(){return"\n"+this.xyz+"\ninternal matrix representation:\n"+this.toString()});b.dumpSeitz=e(b,"dumpSeitz",function(a,c){for(var f=new JU.SB,b=D(4,0),e=0;3>e;e++){a.getRow(e,b);f.append("[\t");for(var g=0;3>g;g++)f.appendI(x(b[g])).append("\t");g=b[3];0==g?f.append("0"):(g*=g==x(g)?4:48,f.append(JS.SymmetryOperation.twelfthsOf(c?
JS.SymmetryOperation.normalizeTwelfths(g/48,48,!0):x(g))));f.append("\t]\n")}return f.toString()},"JU.M4,~B");e(b,"setMatrixFromXYZ",function(a,c,b){if(null==a)return!1;this.xyzOriginal=a;this.divisor=JS.SymmetryOperation.setDivisor(a);a=a.toLowerCase();this.setModDim(c);var d=!1,e=!0;a.startsWith("!")&&(a.startsWith("!nohalf!")?(e=!1,this.xyzOriginal=a=a.substring(8)):(d=!1,a=a.substring(1)));if(0==a.indexOf("xyz matrix:"))return this.xyz=a,JU.Parser.parseStringInfestedFloatArray(a,null,this.linearRotTrans),
this.setFromMatrix(null,d);if(0==a.indexOf("[[")){a=a.$replace("["," ").$replace("]"," ").$replace(","," ");JU.Parser.parseStringInfestedFloatArray(a,null,this.linearRotTrans);for(c=this.linearRotTrans.length;0<=--c;)if(Float.isNaN(this.linearRotTrans[c]))return!1;this.setMatrix(d);this.isFinalized=!0;this.xyz=(this.isBio=0<=a.indexOf("bio"))?this.xyzOriginal=ya(this,JS.SymmetryOperation,"toString",[]):JS.SymmetryOperation.getXYZFromMatrix(this,!1,!1,!1);return!0}if(0==c&&0<=a.indexOf("x4"))for(c=
14;4<=--c;)if(0<=a.indexOf("x"+c)){this.setModDim(c-3);break}c=null;if(a.endsWith("m"))this.timeReversal=0<=a.indexOf("-m")?-1:1,b=!0;else if(0<=a.indexOf("mz)"))b=a.indexOf("("),c=a.substring(b+1,a.length-1),a=a.substring(0,b),b=!1;else if(0<=a.indexOf("u")){var g=a.endsWith("+");b=a.indexOf("(");var h;0>b?(h=a,this.isPointGroupOp=!0):(h=a.substring(b+1,a.length-(g?2:1)),a=a.substring(0,b));if(0>h.indexOf(","))this.suvwId=h;else if(this.setSpin(h),g&&0>this.timeReversal)return!1;b=!0}e=JS.SymmetryOperation.getRotTransArrayAndXYZ(this,
a,this.linearRotTrans,b,e,!0,null);if(null==e)return!1;this.xyzCanonical=e;null!=c&&(b=1==JU.M4.newA16(this.linearRotTrans).determinant3(),this.timeReversal=0>a.indexOf("-x")==0>c.indexOf("-mx")==b?1:-1);this.setMatrix(d);this.xyz=d?JS.SymmetryOperation.getXYZFromMatrix(this,!0,!1,!1):this.doNormalize?e:a;null==this.spinU&&0!=this.timeReversal&&(this.xyz+=1==this.timeReversal?",m":",-m");JU.Logger.debugging&&(JU.Logger.debug(""+this),null!=this.spinU&&JU.Logger.debug(""+this.spinU.toString().$replace("\n",
" ")));return!0},"~S,~N,~B");e(b,"setSpin",function(a){this.suvw=a;var c=D(16,0);JS.SymmetryOperation.getRotTransArrayAndXYZ(null,a,c,!0,!1,!1,"uvw");this.spinU=new JU.M3;JU.M4.newA16(c).getRotationScale(this.spinU);this.timeReversal=x(this.spinU.determinant3());this.suvwId=null},"~S");b.setDivisor=e(b,"setDivisor",function(a){for(var c=a.indexOf("/"),b=a.length;0<c&&c<b-1;){var d=a.charAt(c+1);if(0>"2346".indexOf(d)||c<b-2&&Character.isDigit(a.charAt(c+2)))return 0;c=a.indexOf("/",c+1)}return 12},
"~S");e(b,"setModDim",function(a){this.modDim=a;0<a&&(this.myLabels=JS.SymmetryOperation.labelsXn);this.linearRotTrans=D((a+4)*(a+4),0)},"~N");e(b,"setMatrix",function(a){16<this.linearRotTrans.length?this.setGamma(a):(0==this.linearRotTrans[15]?(this.m33=1,this.isPointGroupOp=!0,this.setRotationScale(this.spinU=JU.M3.newA9(this.linearRotTrans))):this.setA(this.linearRotTrans),a&&(a=JU.P3.new3(this.m03,this.m13,this.m23),this.invert(),this.rotate(a),a.scale(-1),this.setTranslation(a)))},"~B");e(b,
"setFromMatrix",function(a,c){var b=0,d=0;this.myLabels=0==this.modDim?JS.SymmetryOperation.labelsXYZ:JS.SymmetryOperation.labelsXn;for(var e=0,g=3+this.modDim,h=0;e<g;h++){if(Float.isNaN(this.linearRotTrans[h]))return!1;b=this.linearRotTrans[h];1E-5>Math.abs(b)&&(b=0);if(0==(h+1)%(g+1)){var l=0==this.divisor?x(b)&255:this.divisor;0==l&&(l=12);b=JS.SymmetryOperation.finalizeF(b,this.divisor);null!=a&&d<a.length&&(b+=a[d++]);b=JS.SymmetryOperation.normalizeTwelfths((0>b?-1:1)*Math.abs(b*l)/l,l,this.doNormalize);
0==this.divisor&&(b=JS.SymmetryOperation.toDivisor(b,l));e++}this.linearRotTrans[h]=b}this.linearRotTrans[this.linearRotTrans.length-1]=this.divisor;this.setMatrix(c);this.isFinalized=null==a;this.xyz=JS.SymmetryOperation.getXYZFromMatrix(this,!0,!1,!1);return!0},"~A,~B");b.getMatrixFromXYZ=e(b,"getMatrixFromXYZ",function(a,c,b){return JS.SymmetryOperation.getMatrixFromXYZScaled(a,c,b)},"~S,~A,~B");b.getMatrixFromXYZScaled=e(b,"getMatrixFromXYZScaled",function(a,c,b){null==c&&(c=D(16,0));a=JS.SymmetryOperation.getRotTransArrayAndXYZ(null,
a,c,!1,b,!0,null);if(null==a)return null;b=new JU.M4;b.setA(c);return JS.SymmetryOperation.div12(b,JS.SymmetryOperation.setDivisor(a))},"~S,~A,~B");b.getJmolCanonicalXYZ=e(b,"getJmolCanonicalXYZ",function(a){try{return JS.SymmetryOperation.getRotTransArrayAndXYZ(null,a,null,!1,!0,!0,null)}catch(c){if(da(c,Exception))return null;throw c;}},"~S");b.getRotTransArrayAndXYZ=e(b,"getRotTransArrayAndXYZ",function(a,c,b,d,e,g,h){var l=!1,k=!1,j=!1;c=JU.PT.rep(c,"[bio[","");var s=null==a?0:a.modDim,p=4+s,
m=null==a?JS.SymmetryOperation.setDivisor(c):a.divisor,r=e&&(null==a?!c.startsWith("!"):a.doNormalize),q=0<s?3:0;if(null!=b){for(var n=b.length-1,G=n;0<=--G;)b[G]=0;b[n]=1}n=c.indexOf(";")+1;0!=n&&(d=!0,n==c.length&&(c+="0,0,0"));var w=-1;a=JS.SymmetryOperation.getLabels(h,null==a||0==s?null:a.myLabels);c=c.toLowerCase()+",";c=c.$replace("(",",");0<s&&(c=JS.SymmetryOperation.replaceXn(c,s+3));h=-1;for(var v=0,z=0,A,y=0,F=0,E=0,B=0,C=0,K=1,D="",L=g?"":null,P=N(1,0),M=c.length,H=-1,G=0;G<M;G++){switch((A=
c.charAt(G)).charCodeAt(0)){case 59:break;case 39:case 32:case 123:case 125:case 33:continue;case 45:case 43:j="-"==A;H=G;0!=y&&(0>h?C=y:B=y);y=0;continue;case 47:F=0;l=!0;continue;case 120:case 121:case 122:case 117:case 118:case 119:case 97:case 98:case 99:case 100:case 101:case 102:case 103:case 104:v=z*p;l="x"<=A?A.charCodeAt(0)-120:"u"<=A?A.charCodeAt(0)-117:A.charCodeAt(0)-97+q;h=v+l;j=j?-1:1;if(d&&0!=y&&H!=G-1){null!=b&&(b[h]=y);if(y!=x(y)){null!=L&&(D+=JS.SymmetryOperation.plusMinus(D,y,a[l],
!1,!1));y=0;break}j=x(y);y=0}else null!=b&&(b[h]=j);null!=L&&(D+=JS.SymmetryOperation.plusMinus(D,j,a[l],!1,!1));break;case 44:if(0!=n){if(0<n){w=G;G=n-1;n=-G;F=y=B=C=0;continue}n=G+1;G=w}else if(0!=B||0!=C)y=B+C;y=JS.SymmetryOperation.normalizeTwelfths(y,0==F?12:0==m?F:m,r);null!=b&&(b[v+p-1]=0==m&&0<F?y=JS.SymmetryOperation.toDivisor(E,F):y);null!=L&&(D+=JS.SymmetryOperation.xyzFraction12(y,0==m?F:m,!1,e),L+=(""===L?"":",")+D);if(z==p-2)return g?L:"ok";F=E=y=B=C=0;D="";v+=4;h=-1;if(2<z++&&0==s)return JU.Logger.warn("Symmetry Operation? "+
c),null;break;case 46:k=!0;K=1;continue;case 48:if(!k&&12==m&&(l||!d))continue;default:var T=A.charCodeAt(0)-48;if(0<=T&&9>=T){if(k){K/=10;0>y&&(j=!0);y+=K*T*(j?-1:1);continue}else if(j&&"0"==A)continue;if(l){P[0]=G;F=JU.PT.parseIntNext(c,P);if(0>F)return null;G=P[0]-1;0==y?null!=b&&(b[h]/=F):(E=x(y),y/=F)}else y=10*y+(j?-1:1)*T}else JU.Logger.warn("symmetry character?"+A)}k=l=j=!1}return null},"JS.SymmetryOperation,~S,~A,~B,~B,~B,~S");b.replaceXn=e(b,"replaceXn",function(a,c){for(var b=c;0<=--b;)a=
JU.PT.rep(a,JS.SymmetryOperation.labelsXn[b],JS.SymmetryOperation.labelsXnSub[b]);return a},"~S,~N");b.toDivisor=e(b,"toDivisor",function(a,c){var b=x(a);b!=a&&(b=a-b,c=x(Math.abs(c/b)),b=x(Math.abs(a)/b));return(b<<8)+c},"~N,~N");b.xyzFraction12=e(b,"xyzFraction12",function(a,c,b,d){if(0==a)return"";12!=c&&(a=x(a),c=a&255,a>>=8);var e=C(c/2);if(b)for(;0>a;)a+=c;else if(d){for(;a>e;)a-=c;for(;a<-e;)a+=c}c=12==c?JS.SymmetryOperation.twelfthsOf(a):0==a?"0":a+"/"+c;return"0"==c.charAt(0)?"":0<a?"+"+
c:c},"~N,~N,~B,~B");b.twelfthsOf=e(b,"twelfthsOf",function(a){var c="";0>a&&(a=-a,c="-");var b=12,d=Math.round(a);if(0.01<Math.abs(d-a)){a/=12;for(b=3;20>b;b++){var e=a*b,d=Math.round(e);if(0.01>Math.abs(d-e))break}if(20==b)return c+a}else{if(12==d)return c+"1";if(12>d)return c+JS.SymmetryOperation.twelfths[d%12];switch(d%12){case 0:return c+C(d/12);case 2:case 10:b=6;break;case 3:case 9:b=4;break;case 4:case 8:b=3;break;case 6:b=2}d=C(d*b/12)}return c+d+"/"+b},"~N");b.plusMinus=e(b,"plusMinus",function(a,
c,b,d,e){var g=Math.abs(c);if(1E-4>g)return"";d=0.9999<g&&1.0001>=g?"":0.001>=g%1&&!d?""+x(g):e?""+g:JS.SymmetryOperation.twelfthsOf(12*g);return(0>c?"-":0==a.length?"":"+")+(d.equals("1")?"":d)+b},"~S,~N,~S,~B,~B");b.normalizeTwelfths=e(b,"normalizeTwelfths",function(a,c,b){a*=c;var d=C(c/2);if(b){for(;a>d;)a-=c;for(;a<=-d;)a+=c}return a},"~N,~N,~B");b.getXYZFromMatrix=e(b,"getXYZFromMatrix",function(a,c,b,d){return JS.SymmetryOperation.getXYZFromMatrixFrac(a,c,b,d,!1,!1,null)},"JU.M4,~B,~B,~B");
b.getXYZFromMatrixFrac=e(b,"getXYZFromMatrixFrac",function(a,c,b,d,e,g,h){var l="",k=L(a,"JS.SymmetryOperation")?a:null;if(null!=k&&0<k.modDim)return JS.SymmetryOperation.getXYZFromRsVs(k.rsvs.getRotation(),k.rsvs.getTranslation(),c);var k=D(4,0),j=x(a.getElement(3,3));1==j?j=12:a.setElement(3,3,1);h=JS.SymmetryOperation.getLabels(h,JS.SymmetryOperation.labelsXYZ);for(var s=0;3>s;s++){var p=3>s?0:3;a.getRow(s,k);for(var m="",r=0;3>r;r++){var q=k[r];0!=JS.SymmetryOperation.approx(q)&&(m+=JS.SymmetryOperation.plusMinus(m,
q,h[r+p],e,g))}if(0!=(c?k[3]:JS.SymmetryOperation.approx(k[3])))p=g?JS.SymmetryOperation.plusMinus(m,k[3],"",!0,!0):JS.SymmetryOperation.xyzFraction12(c?k[3]:k[3]*j,j,b,d),""===m&&(p="+"==p.charAt(0)?p.substring(1):p),m+=p;l+=","+(""===m?"0":m)}return l.substring(1)},"JU.M4,~B,~B,~B,~B,~B,~S");b.getLabels=e(b,"getLabels",function(a,c){if(null!=a)switch(a){case "abc":return JS.SymmetryOperation.labelsABC;case "uvw":return JS.SymmetryOperation.labelsUVW;case "mxyz":return JS.SymmetryOperation.labelsMXYZ}return null==
c?JS.SymmetryOperation.labelsXYZ:c},"~S,~A");e(b,"rotateAxes",function(a,c,b,d){var e=Array(3);this.getRotationScale(d);for(var g=a.length;0<=--g;)b.setT(a[g]),c.toFractional(b,!0),d.rotate(b),c.toCartesian(b,!0),e[g]=JU.V3.newV(b);return e},"~A,JS.UnitCell,JU.P3,JU.M3");b.fcoord=e(b,"fcoord",function(a,c){return JS.SymmetryOperation.opF(a.x)+c+JS.SymmetryOperation.opF(a.y)+c+JS.SymmetryOperation.opF(a.z)},"JU.T3,~S");b.approx=e(b,"approx",function(a){return JU.PT.approx(a,100)},"~N");b.approx6=e(b,
"approx6",function(a){return JU.PT.approx(a,1E6)},"~N");b.getXYZFromRsVs=e(b,"getXYZFromRsVs",function(a,c,b){a=a.getArray();c=c.getArray();for(var d=a.length,e="",g=0;g<d;g++){for(var e=e+",",h=0;h<d;h++){var l=a[g][h];0!=l&&(e+=(0>l?"-":e.endsWith(",")?"":"+")+(1==Math.abs(l)?"":""+Math.abs(l))+"x"+(h+1))}e+=JS.SymmetryOperation.xyzFraction12(C(c[g][0]*(b?1:12)),12,!1,!0)}return JU.PT.rep(e.substring(1),",+",",")},"JU.Matrix,JU.Matrix,~B");e(b,"getMagneticOp",function(){return 2147483647==this.magOp?
this.magOp=x(null!=this.spinU?1:this.determinant3()*this.timeReversal):this.magOp});e(b,"setTimeReversal",function(a){this.timeReversal=a;0<=this.xyz.indexOf("m")&&(this.xyz=this.xyz.substring(0,this.xyz.indexOf("m")));0!=a&&(this.xyz+=1==a?",m":",-m")},"~N");e(b,"getCentering",function(){this.doFinalize();null==this.centering&&!this.unCentered&&(0==this.modDim&&JS.SymmetryOperation.isTranslation(this)?(this.isCenteringOp=!0,this.centering=JU.V3.new3(this.m03,this.m13,this.m23)):(this.unCentered=
!0,this.centering=null));return this.centering});b.isTranslation=e(b,"isTranslation",function(a){return 1==a.m00&&0==a.m01&&0==a.m02&&0==a.m10&&1==a.m11&&0==a.m12&&0==a.m20&&0==a.m21&&1==a.m22&&(0!=a.m03||0!=a.m13||0!=a.m23)},"JU.M4");e(b,"fixMagneticXYZ",function(a,c){if(null!=this.spinU)return c+JS.SymmetryOperation.getSpinString(this.spinU,!0,!0);if(0==this.timeReversal)return c;var b=c.indexOf("m"),b=b-C((3-this.timeReversal)/2);c=0>b?c:c.substring(0,b);b=new JU.M3;a.getRotationScale(b);0>this.getMagneticOp()&&
b.scale(-1);return c+JS.SymmetryOperation.getSpinString(b,!1,!0)},"JU.M4,~S");b.getSpinString=e(b,"getSpinString",function(a,c,b){var d;L(a,"JU.M3")?(d=new JU.M4,d.setRotationScale(a)):d=a;a=JS.SymmetryOperation.getXYZFromMatrixFrac(d,!1,!1,!1,c,c,c?"uvw":"mxyz");return b?"("+a+")":a},"JU.M34,~B,~B");e(b,"getInfo",function(){null==this.info&&(this.info=new java.util.Hashtable,this.info.put("xyz",this.xyz),null!=this.centering&&this.info.put("centering",this.centering),this.info.put("index",Integer.$valueOf(this.number-
1)),this.info.put("isCenteringOp",Boolean.$valueOf(this.isCenteringOp)),null!=this.linearRotTrans&&this.info.put("linearRotTrans",this.linearRotTrans),this.info.put("modulationDimension",Integer.$valueOf(this.modDim)),this.info.put("matrix",JU.M4.newM4(this)),null==this.spinU&&3.4028235E38!=this.magOp&&this.info.put("magOp",Float.$valueOf(this.magOp)),this.info.put("id",Integer.$valueOf(this.opId)),0!=this.timeReversal&&this.info.put("timeReversal",Integer.$valueOf(this.timeReversal)),null!=this.spinU&&
(this.info.put("spinU",this.spinU),this.info.put("uvw",this.xyz.$replace("x","u").$replace("y","v").$replace("z","w"))),null!=this.xyzOriginal&&this.info.put("xyzOriginal",this.xyzOriginal));return this.info});b.normalizeOperationToCentroid=e(b,"normalizeOperationToCentroid",function(a,c,b,d,e){if(!(0>=e)){var g=0,h=0,l=0;null==JS.SymmetryOperation.atomTest&&(JS.SymmetryOperation.atomTest=new JU.P3);for(var k=d+e;d<k;d++)c.rotTrans2(b[d],JS.SymmetryOperation.atomTest),g+=JS.SymmetryOperation.atomTest.x,
h+=JS.SymmetryOperation.atomTest.y,l+=JS.SymmetryOperation.atomTest.z;g/=e;h/=e;for(l/=e;-0.001>g||1.001<=g;)c.m03+=0>g?1:-1,g+=0>g?1:-1;if(1<a)for(;-0.001>h||1.001<=h;)c.m13+=0>h?1:-1,h+=0>h?1:-1;if(2<a)for(;-0.001>l||1.001<=l;)c.m23+=0>l?1:-1,l+=0>l?1:-1}},"~N,JU.M4,~A,~N,~N");b.getLatticeCentering=e(b,"getLatticeCentering",function(a){for(var c=new JU.Lst,b=0;b<a.length;b++){var d=null==a[b]?null:a[b].getCentering();null!=d&&c.addLast(JU.P3.newP(d))}return c},"~A");b.getLatticeCenteringStrings=
e(b,"getLatticeCenteringStrings",function(a){for(var c=new JU.Lst,b=0;b<a.length;b++)null!=(null==a[b]?null:a[b].getCentering())&&c.addLast(a[b].xyzOriginal);return c},"~A");e(b,"getOpIsCCW",function(){-1==this.opType&&this.setOpTypeAndOrder();return this.opIsCCW});e(b,"getOpType",function(){-1==this.opType&&this.setOpTypeAndOrder();return this.opType});e(b,"getOpOrder",function(){-1==this.opType&&this.setOpTypeAndOrder();return this.opOrder});e(b,"getOpPoint",function(){-1==this.opType&&this.setOpTypeAndOrder();
return this.opPoint});e(b,"getOpAxis",function(){-1==this.opType&&this.setOpTypeAndOrder();return this.opAxis});e(b,"getOpPoint2",function(){return this.opPoint2});e(b,"getOpTrans",function(){-1==this.opType&&this.setOpTypeAndOrder();return null==this.opTrans?this.opTrans=new JU.V3:this.opTrans});b.opGet3code=e(b,"opGet3code",function(a){for(var c=0,b=D(4,0),d=0;3>d;d++){a.getRow(d,b);for(var e=0;3>e;e++)switch(x(b[e])){case 1:c|=e+1<<(2-d<<3);break;case -1:c|=16+e+1<<(2-d<<3)}}return c},"JU.M4");
b.opGet3x=e(b,"opGet3x",function(a){if(0!=a.m22)return JS.SymmetryOperation.x;a=JS.SymmetryOperation.opGet3code(a);for(var c=0;8>c;c++)if(a==JS.SymmetryOperation.C3codes[c])return null==JS.SymmetryOperation.xneg&&(JS.SymmetryOperation.xneg=JU.V3.newV(JS.SymmetryOperation.x),JS.SymmetryOperation.xneg.scale(-1)),JS.SymmetryOperation.xneg;return JS.SymmetryOperation.x},"JU.M4");e(b,"setOpTypeAndOrder",function(){this.clearOp();var a=Math.round(this.determinant3()),c=Math.round(this.m00+this.m11+this.m22),
b=0,d=0,e=JS.SymmetryOperation.x;switch(c){case 3:JS.SymmetryOperation.hasTrans(this)?(this.opType=1,this.opTrans=new JU.V3,this.getTranslation(this.opTrans),this.opOrder=2):(this.opType=0,this.opOrder=1);return;case -3:this.opType=4;b=2;break;default:b=c*a+3,5==b&&(b=6),0<a?(this.opType=2,d=C(180*Math.acos((c-1)/2)/3.141592653589793),120==d&&(null==this.opX&&(this.opX=JS.SymmetryOperation.opGet3x(this)),e=this.opX)):2==b?this.opType=8:(this.opType=6,3==b&&(b=6),d=C(180*Math.acos((-c-1)/2)/3.141592653589793),
120==d&&(null==this.opX&&(this.opX=JS.SymmetryOperation.opGet3x(this)),e=this.opX))}this.opOrder=b;var g=new JU.M4,a=new JU.P3,c=JU.P3.newP(e);g.setM4(this);for(var h=new JU.P3,l=JU.P3.newP(c),k=new JU.P3,j=JU.P3.newP(c),s=new JU.P3,m=1;m<b;m++)g.mul(this),this.rotTrans(a),this.rotTrans(c),1==m&&s.setT(c),h.add(a),l.add(c),6==this.opType&&(0==m%2?j.add(c):k.add(c));this.opTrans=new JU.V3;g.getTranslation(this.opTrans);this.opTrans.scale(1/b);m=JS.SymmetryOperation.approx6(this.opTrans.length());this.opPoint=
new JU.P3;var u=null,g=!0;switch(this.opType){case 4:l.add2(c,e);l.scale(0.5);this.opPoint=JU.P3.newP(JS.SymmetryOperation.opClean6(l));g=JS.SymmetryOperation.checkOpPoint(this.opPoint);break;case 6:k.scale(2/b);j.scale(2/b);u=JU.V3.newVsub(k,j);u.normalize();this.opAxis=JS.SymmetryOperation.opClean6(u);h.add2(k,j);l.scale(1/b);this.opPoint.setT(JS.SymmetryOperation.opClean6(l));g=JS.SymmetryOperation.checkOpPoint(this.opPoint);180!=d&&(c.cross(e,c),this.opIsCCW=Boolean.$valueOf(0>c.dot(u)));break;
case 2:u=JU.V3.newVsub(l,h);u.normalize();this.opAxis=JS.SymmetryOperation.opClean6(u);h.scale(1/b);a.setT(h);0<m&&h.sub(this.opTrans);this.opPoint.setT(h);JS.SymmetryOperation.opClean6(this.opPoint);180!=d&&(c.cross(e,c),this.opIsCCW=Boolean.$valueOf(0>c.dot(u)));if(g=(new Boolean(g&JS.SymmetryOperation.checkOpAxis(a,0==m?this.opAxis:this.opTrans,h,new JU.V3,new JU.V3,null))).valueOf())this.opPoint.setT(h),JS.SymmetryOperation.checkOpAxis(this.opPoint,this.opAxis,c,new JU.V3,new JU.V3,this.opPoint)&&
(this.opPoint2=JU.P3.newP(c)),0<m&&(h.scaleAdd2(0.5,this.opTrans,this.opPoint),g=JS.SymmetryOperation.checkOpPoint(h),null!=this.opPoint2&&(h.scaleAdd2(0.5,this.opTrans,this.opPoint2),JS.SymmetryOperation.checkOpPoint(h)||(this.opPoint2=null)),0>u.dot(a)&&(g=!1));break;case 8:a.sub(this.opTrans),a.scale(0.5),this.opPoint.setT(a),s.sub(this.opTrans),this.opAxis=JU.V3.newVsub(s,e),c.scaleAdd2(0.5,this.opAxis,e),this.opAxis.normalize(),this.opPlane=new JU.P4,a.set(e.x+1.1,e.y+1.7,e.z+2.1),a.scale(0.5),
this.rotTrans(a),a.sub(this.opTrans),a.scaleAdd2(0.5,e,a),a.scale(0.5),u=new JU.V3,g=JS.SymmetryOperation.checkOpPlane(this.opPoint,a,c,this.opPlane,u,new JU.V3),JS.SymmetryOperation.opClean6(this.opPlane),0==JS.SymmetryOperation.approx6(this.opPlane.w)&&(this.opPlane.w=0),JS.SymmetryOperation.approx6Pt(this.opAxis),JS.SymmetryOperation.normalizePlane(this.opPlane)}if(0<m){JS.SymmetryOperation.opClean6(this.opTrans);b=1;if(8==this.opType){if(0==this.opTrans.z&&1.25==this.opTrans.lengthSquared()||
0.5==this.opTrans.z&&1.5==this.opTrans.lengthSquared()?(b=1.25,this.opIsLong=!0):b=0.78,this.opGlide=JU.V3.newV(this.opTrans),this.fixNegTrans(this.opGlide),0==this.opGlide.length()&&(this.opGlide=null),(1==this.opTrans.x||1==this.opTrans.y||1==this.opTrans.z)&&-1==this.m22)g=!1}else 0==this.opTrans.z&&1.25==this.opTrans.lengthSquared()&&(b=1.25,this.opIsLong=!0);this.opType|=1;if(Math.abs(JS.SymmetryOperation.approx(this.opTrans.x))>=b||Math.abs(JS.SymmetryOperation.approx(this.opTrans.y))>=b||Math.abs(JS.SymmetryOperation.approx(this.opTrans.z))>=
b)g=!1}else this.opTrans=null;g||(this.isIrrelevant=!0)});e(b,"fixNegTrans",function(a){a.x=JS.SymmetryOperation.normHalf(a.x);a.y=JS.SymmetryOperation.normHalf(a.y);a.z=JS.SymmetryOperation.normHalf(a.z)},"JU.V3");b.normalizePlane=e(b,"normalizePlane",function(a){JS.SymmetryOperation.approx6Pt(a);a.w=JS.SymmetryOperation.approx6(a.w);(0<a.w||0==a.w&&(0>a.x||0==a.x&&0>a.y||0==a.y&&0>a.z))&&a.scale4(-1);JS.SymmetryOperation.opClean6(a);a.w=JS.SymmetryOperation.approx6(a.w)},"JU.P4");b.isCoaxial=e(b,
"isCoaxial",function(a){return 1==Math.abs(JS.SymmetryOperation.approx(a.x))||1==Math.abs(JS.SymmetryOperation.approx(a.y))||1==Math.abs(JS.SymmetryOperation.approx(a.z))},"JU.T3");e(b,"clearOp",function(){this.doFinalize();this.isIrrelevant=!1;this.opIsCCW=this.opPlane=this.opPoint=this.opPoint2=this.opTrans=null;this.opIsLong=!1});b.hasTrans=e(b,"hasTrans",function(a){return 0!=JS.SymmetryOperation.approx6(a.m03)||0!=JS.SymmetryOperation.approx6(a.m13)||0!=JS.SymmetryOperation.approx6(a.m23)},"JU.M4");
b.checkOpAxis=e(b,"checkOpAxis",function(a,c,b,d,e,g){null==JS.SymmetryOperation.opPlanes&&(JS.SymmetryOperation.opPlanes=JU.BoxInfo.getBoxFacesFromOABC(null));for(var h=JU.BoxInfo.faceOrder,l=null==g?1:-1,k=0;6>k;k++){var j=JU.Measure.getIntersection(a,c,JS.SymmetryOperation.opPlanes[h[k]],b,d,e);if(null!=j&&JS.SymmetryOperation.checkOpPoint(j)&&0>c.dot(d)*l&&(null==g||0<=JS.SymmetryOperation.approx(g.distance(j)-0.5)))return!0}return!1},"JU.P3,JU.V3,JU.P3,JU.V3,JU.V3,JU.P3");b.opClean6=e(b,"opClean6",
function(a){0==JS.SymmetryOperation.approx6(a.x)&&(a.x=0);0==JS.SymmetryOperation.approx6(a.y)&&(a.y=0);0==JS.SymmetryOperation.approx6(a.z)&&(a.z=0);return a},"JU.T3");b.checkOpPoint=e(b,"checkOpPoint",function(a){return JS.SymmetryOperation.checkOK(a.x,0)&&JS.SymmetryOperation.checkOK(a.y,0)&&JS.SymmetryOperation.checkOK(a.z,0)},"JU.T3");b.checkOK=e(b,"checkOK",function(a,c){return 0!=c||0<=JS.SymmetryOperation.approx(a)&&1>=JS.SymmetryOperation.approx(a)},"~N,~N");b.checkOpPlane=e(b,"checkOpPlane",
function(a,c,b,d,e,g){JU.Measure.getPlaneThroughPoints(a,c,b,e,g,d);c=JU.BoxInfo.unitCubePoints;g=b=0;for(var h=8;0<=--h;){var l=JU.Measure.getPlaneProjection(c[h],d,a,e);switch(x(Math.signum(JS.SymmetryOperation.approx6(l)))){case 1:if(0<g)return!0;b++;break;case -1:if(0<b)return!0;g++}}return!(8==g||8==b)},"JU.P3,JU.P3,JU.P3,JU.P4,JU.V3,JU.V3");b.getAdditionalOperations=e(b,"getAdditionalOperations",function(a,c){for(var b=a.length,d=new JU.Lst,e=new JU.SB,g=new java.util.Hashtable,h=new JU.V3,
l=0;l<b;l++){var k=a[l];k.opPerDim=c;d.addLast(k);var j=k.getOpName(1);e.append(j).appendC(";");0!=(k.getOpType()&8)?JS.SymmetryOperation.addCoincidentMap(g,k,8,h):3==k.getOpType()&&JS.SymmetryOperation.addCoincidentMap(g,k,3,null)}for(l=1;l<b;l++)a[l].addOps(e,d,g,b,l,h);return d.toArray(Array(d.size()))},"~A,~N");e(b,"addOps",function(a,c,b,d,e,g){var h=new JU.V3;this.getTranslation(h);var l=8==(this.getOpType()&8),k=3==this.getOpType(),j=new JU.V3,s=null,m=5,u=-2,r=5,q=-2,n=5,G=-2;switch(this.opPerDim){case 51:case 34:n=
1;G=0;break;case 18:case 19:r=1;q=0;n=1;G=0;break;case 67:m=1;u=0;r=1;q=0;break;case 35:m=1,u=0,n=1,G=0}for(;--m>=u;)for(var w=r;--w>=q;)for(var v=n;--v>=G;)null==s&&(s=new JS.SymmetryOperation(null,0,!1)),j.set(m,w,v),!this.checkOpSimilar(j,g)&&s.opCheckAdd(this,h,d,j,a,c,e+1)&&(l?JS.SymmetryOperation.addCoincidentMap(b,s,8,g):k&&JS.SymmetryOperation.addCoincidentMap(b,s,3,null),s=null)},"JU.SB,JU.Lst,java.util.Map,~N,~N,JU.V3");b.addCoincidentMap=e(b,"addCoincidentMap",function(a,c,b,d){if(!c.isIrrelevant){var e=
c.getOpName(0),g=a.get(e);c.iCoincident=0;b=3==b;if(null==g)a.put(e,g=new JU.Lst);else if(b){if(6==c.opOrder)for(a=g.size();0<=--a;)if(d=g.get(a),!d.isIrrelevant)switch(d.opOrder){case 3:d.isIrrelevant=!0}c.iCoincident=1}else{e=null;for(a=g.size();0<=--a;)if(e=g.get(a),null!=c.opGlide&&null!=e.opGlide){d.sub2(c.opGlide,e.opGlide);if(1E-6>d.lengthSquared()){c.isIrrelevant=!0;return}d.add2(c.opGlide,e.opGlide);if(1E-6>d.lengthSquared()){c.isIrrelevant=!0;return}d.add2(c.opAxis,e.opAxis);if(1E-6>d.lengthSquared()){c.isIrrelevant=
!0;return}}else if(null==c.opGlide&&null==e.opGlide){d.add2(c.opAxis,e.opAxis);if(1E-6>d.lengthSquared()){c.isIrrelevant=!0;return}d.sub2(c.opAxis,e.opAxis);if(1E-6>d.lengthSquared()){c.isIrrelevant=!0;return}}0==e.iCoincident?(c.iCoincident=1,e.iCoincident=-1):c.iCoincident=-e.iCoincident}g.addLast(c)}},"java.util.Map,JS.SymmetryOperation,~N,JU.V3");e(b,"checkOpSimilar",function(a,c){switch(this.getOpType()&-2){default:return!1;case 0:return!0;case 2:return 0==JS.SymmetryOperation.approx6(a.dot(this.opAxis)-
a.length());case 8:return c.cross(a,this.opAxis),0==JS.SymmetryOperation.approx6(c.length())?!1:0==JS.SymmetryOperation.approx6(a.dot(this.opAxis))}},"JU.V3,JU.V3");e(b,"opCheckAdd",function(a,c,b,d,e,g){this.setM4(a);b=JU.V3.newV(d);b.add(c);this.setTranslation(b);this.isFinalized=!0;this.setOpTypeAndOrder();if(this.isIrrelevant||0==this.opType||1==this.opType)return!1;c=this.getOpName(1)+";";if(0==(this.opType&8)&&0<=e.indexOf(c))return!1;e.append(c);this.spinU=a.spinU;this.suvw=a.suvw;this.timeReversal=
a.timeReversal;g.addLast(this);this.isFinalized=!0;this.xyz=JS.SymmetryOperation.getXYZFromMatrix(this,!1,!1,!1);return!0},"JS.SymmetryOperation,JU.V3,~N,JU.V3,JU.SB,JU.Lst,~N");b.approx6Pt=e(b,"approx6Pt",function(a){null!=a&&(a.x=JS.SymmetryOperation.approx6(a.x),a.y=JS.SymmetryOperation.approx6(a.y),a.z=JS.SymmetryOperation.approx6(a.z))},"JU.T3");b.normalize12ths=e(b,"normalize12ths",function(a){a.x=JU.PT.approx(a.x,12);a.y=JU.PT.approx(a.y,12);a.z=JU.PT.approx(a.z,12)},"JU.V3");e(b,"getCode",
function(){if(null!=this.opAxisCode)return this.opAxisCode;var a=this.getOpName(2).charAt(0),c=this.opOrder,b=null==this.opIsCCW?0:this.opIsCCW===Boolean.TRUE?1:2;switch(a.charCodeAt(0)){case 71:a=JS.SymmetryOperation.getGlideFromTrans(this.opTrans,this.opPlane);case 80:JS.SymmetryOperation.isCoaxial(this.opAxis)||(a="P"==a?"p":String.fromCharCode(a.charCodeAt(0)-32));break;case 83:var d=this.opTrans.length();if(null!=this.opIsCCW&&d<(1<d?6:0.5)==(this.opIsCCW===Boolean.TRUE))a="w";break;case 82:JS.SymmetryOperation.isCoaxial(this.opAxis)||
(a="o"),0==this.opPoint.length()&&(a="o"==a?"q":"Q")}return this.opAxisCode=""+a+"."+String.fromCharCode(48+c)+"."+b+"."});b.getGlideFromTrans=e(b,"getGlideFromTrans",function(a,c){var b=Math.abs(JS.SymmetryOperation.approx(12*a.x)),d=Math.abs(JS.SymmetryOperation.approx(12*a.y)),e=Math.abs(JS.SymmetryOperation.approx(12*a.z));9==b&&(b=3);9==d&&(d=3);9==e&&(e=3);var g=3;0==b&&g--;0==d&&g--;0==e&&g--;e=x(b+d+e);switch(g){default:case 1:return 0!=b?"a":0!=d?"b":"c";case 2:switch(e){case 6:return"d";
case 12:if(b=JU.P3.newP(c),b.normalize(),1==Math.abs(JS.SymmetryOperation.approx(b.x+b.y+b.z)))return"n"}break;case 3:switch(e){case 9:return"d";case 18:return"n"}}return"g"},"JU.T3,JU.T3");b.rotateAndTranslatePoint=e(b,"rotateAndTranslatePoint",function(a,c,b,d,e,g){a.rotTrans2(c,g);g.add3(b,d,e)},"JU.M4,JU.P3,~N,~N,~N,JU.P3");b.transformStr=e(b,"transformStr",function(a,c,b,d,e,g,h,l,k){null==b&&(b=JU.M4.newM4(c),b.invert());null==d&&(d=new JU.M4);null==e&&(e=D(16,0));var j=JS.SymmetryOperation.getMatrixFromXYZ(a,
e,!0);null!=g&&j.add(g);d.setM4(b);d.mul(j);null!=c&&d.mul(c);null!=h&&j.add(h);if(l){d.getColumn(3,e);for(c=0;3>c;c++)e[c]=(10+e[c])%1;d.setColumnA(3,e)}d=JS.SymmetryOperation.getXYZFromMatrixFrac(d,!1,!0,!1,k,!1,null);e=a.indexOf("(");0<e&&(d+=a.substring(e));return d},"~S,JU.M4,JU.M4,JU.M4,~A,JU.T3,JU.T3,~B,~B");b.stringToMatrix=e(b,"stringToMatrix",function(a,c){var b=JS.SymmetryOperation.setDivisor(a),d=D(16,0);JS.SymmetryOperation.getRotTransArrayAndXYZ(null,a,d,!0,!1,!1,c);return JS.SymmetryOperation.div12(JU.M4.newA16(d),
b)},"~S,~S");b.getTransformXYZ=e(b,"getTransformXYZ",function(a){return JS.SymmetryOperation.getXYZFromMatrixFrac(a,!1,!1,!1,!0,!0,"xyz")},"JU.M4");b.getTransformUVW=e(b,"getTransformUVW",function(a){return JS.SymmetryOperation.getXYZFromMatrixFrac(a,!1,!1,!1,!1,!0,"uvw")},"JU.M4");b.getTransformABC=e(b,"getTransformABC",function(a,c){return JS.SymmetryOperation.getTransformABCd(a,c,!1)},"JU.M4,~B");b.getTransformABCd=e(b,"getTransformABCd",function(a,c,b){if(null==a)return"a,b,c";var d=JU.M4.newM4(a);
a=new JU.V3;d.getTranslation(a);a.scale(-1);d.add(a);d.transpose();b=JS.SymmetryOperation.getXYZFromMatrixFrac(d,!1,!0,!1,!0,b,"abc");if(1E-12>a.lengthSquared())return b;a.scale(-1);return b+";"+(c?JS.SymmetryOperation.norm3(a):JS.SymmetryOperation.opF(a.x)+","+JS.SymmetryOperation.opF(a.y)+","+JS.SymmetryOperation.opF(a.z))},"JU.M4,~B,~B");b.norm3=e(b,"norm3",function(a){return JS.SymmetryOperation.norm(a.x)+","+JS.SymmetryOperation.norm(a.y)+","+JS.SymmetryOperation.norm(a.z)},"JU.T3");b.norm=e(b,
"norm",function(a){return JS.SymmetryOperation.opF(JS.SymmetryOperation.normHalf(a))},"~N");b.normHalf=e(b,"normHalf",function(a){for(;-0.5>=a;)a+=1;for(;0.5<a;)a-=1;return a},"~N");b.toPoint=e(b,"toPoint",function(a,c){null==c&&(c=new JU.P3);var b=JU.PT.split(a,",");c.set(JU.PT.parseFloatFraction(b[0]),JU.PT.parseFloatFraction(b[1]),JU.PT.parseFloatFraction(b[2]));return c},"~S,JU.P3");b.matrixToRationalString=e(b,"matrixToRationalString",function(a){for(var c=L(a,"JU.M4")?4:3,b="(",d=0;3>d;d++)for(var b=
b+"\n",e=0;e<c;e++){0<e&&(b+="\t");3==e&&4==c&&(b+="|  ");var g=a.getElement(d,e);if(g==x(g))b+=0>g?" "+x(g):"  "+x(g);else{var h=Math.round(48*g);0!=JS.SymmetryOperation.approx6(48*g-h)?b+=g:(h=JS.SymmetryOperation.opF(g),b+=0<g?" "+h:h)}}return b+"\n)"},"JU.M34");e(b,"rotateSpin",function(a){null==this.spinU?(this.rotate(a),-1==this.getMagneticOp()&&a.scale(-1)):this.spinU.rotate(a)},"JU.T3");b.staticConvertOperation=e(b,"staticConvertOperation",function(a,c,b){var d=null;if(null==c)return d=JS.SymmetryOperation.stringToMatrix(a,
b),0<=a.indexOf("u")?(c=new JU.M3,d.getRotationScale(c)):c=d,c;L(c,"JU.M3")?(d=new JU.M4,d.setRotationScale(c)):d=c;null==b&&(b="xyz");if("rxyz".equalsIgnoreCase(b))return JS.SymmetryOperation.matrixToRationalString(c);a=b.equals(b.toUpperCase());b=b.toLowerCase();return b.equals("abc")?JS.SymmetryOperation.getTransformABCd(d,!1,a):JS.SymmetryOperation.getXYZFromMatrixFrac(d,!1,!1,!1,!0,a,b)},"~S,JU.M34,~S");e(b,"toString",function(){return null==this.rsvs?ya(this,JS.SymmetryOperation,"toString",
[]):ya(this,JS.SymmetryOperation,"toString",[])+" "+this.rsvs.toString()});e(b,"getSUVW",function(){null==this.suvw&&null!=this.spinU&&(this.suvw=JS.SymmetryOperation.getSpinString(this.spinU,!0,!1));return this.suvw});b.atomTest=null;b.twelfths=E(-1,"0 1/12 1/6 1/4 1/3 5/12 1/2 7/12 2/3 3/4 5/6 11/12".split(" "));b.labelsXYZ=E(-1,["x","y","z"]);b.labelsUVW=E(-1,["u","v","w"]);b.labelsABC=E(-1,["a","b","c"]);b.labelsMXYZ=E(-1,["mx","my","mz"]);b.labelsXn=E(-1,"x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13".split(" "));
b.labelsXnSub=E(-1,"xyzabcdefghij".split(""));b.x=JU.P3.new3(3.141592653589793,2.718281828459045,8.539734222673566);b.C3codes=N(-1,[200978,1184513,1245458,135953,1245442,131857,200962,1180417]);b.xneg=null;b.opPlanes=null});aa("JS");$(null,"JS.SymmetryInfo",["JU.PT","JS.SpaceGroup","$.SymmetryOperation","JU.SimpleUnitCell"],function(){var b=M(function(){this.isCurrentCell=!0;this.displayName=null;this.isMultiCell=this.coordinatesAreFractional=!1;this.cellRange=this.infoStr=this.additionalOperations=
this.symmetryOperations=this.sgTitle=this.sgName=null;this.latticeType="P";this.intlTableJmolId=this.intlTableNo=null;this.spaceGroupIndex=0;this.itaNo=null;this.isSpinSpaceGroup=!1;this.intlTableTransform=this.intlTableIndexNdotM=this.strSUPERCELL=this.spaceGroupF2CParams=this.spaceGroupF2C=this.spaceGroupF2CTitle=null;this.slop=0;this.sgDerived=this.fileSpaceGroup=null;S(this,arguments)},JS,"SymmetryInfo",null);V(b,function(a){this.fileSpaceGroup=a},"JS.SpaceGroup");e(b,"setSymmetryInfoFromModelkit",
function(a){this.fileSpaceGroup=a;this.cellRange=null;this.sgName=a.getName();this.intlTableJmolId=a.jmolId;this.intlTableNo=a.itaNumber;this.latticeType=a.latticeType;this.symmetryOperations=a.finalOperations;this.coordinatesAreFractional=!0;this.setInfo(a.getOperationCount())},"JS.SpaceGroup");e(b,"setSymmetryInfoFromFile",function(a,c){var b=a.remove("spaceGroupIndex");this.spaceGroupIndex=null==b?0:b.intValue();this.cellRange=a.remove("ML_unitCellRange");this.sgName=a.get("spaceGroup");this.isSpinSpaceGroup=
null!=this.sgName&&this.sgName.startsWith("spinSG:");this.spaceGroupF2C=a.remove("f2c");this.spaceGroupF2CTitle=a.remove("f2cTitle");this.spaceGroupF2CParams=a.remove("f2cParams");this.sgTitle=a.remove("spaceGroupTitle");this.strSUPERCELL=a.remove("supercell");if(null==this.sgName||""===this.sgName)this.sgName="spacegroup unspecified";this.intlTableNo=a.get("intlTableNo");this.intlTableIndexNdotM=a.get("intlTableIndex");this.intlTableTransform=a.get("intlTableTransform");this.intlTableJmolId=a.remove("intlTableJmolId");
b=a.get("latticeType");this.latticeType=null==b?"P":b.charAt(0);this.symmetryOperations=a.remove("symOpsTemp");this.isMultiCell=(this.coordinatesAreFractional=a.containsKey("coordinatesAreFractional")?a.get("coordinatesAreFractional").booleanValue():!1)&&null!=this.symmetryOperations;null==c&&(c=a.get("unitCellParams"));c=JU.SimpleUnitCell.isValid(c)?c:null;null==c?(this.coordinatesAreFractional=!1,this.cellRange=this.symmetryOperations=null,this.infoStr="",a.remove("unitCellParams"),this.slop=NaN):
26<c.length&&(this.slop=c[26]);b=a.containsKey("symmetryCount")?a.get("symmetryCount").intValue():0;this.setInfo(b);return c},"java.util.Map,~A");e(b,"setInfo",function(a){var c="Spacegroup: "+this.sgName;if(null!=this.symmetryOperations){for(var b="",d="\nNumber of symmetry operations: "+(0==a?1:a)+"\nSymmetry Operations:",e=0;e<a;e++){var g=this.symmetryOperations[e],d=d+("\n"+g.fixMagneticXYZ(g,g.xyz));g.isCenteringOp&&(b+=" ("+JU.PT.rep(JU.PT.replaceAllCharacters(g.xyz,"xyz","0"),"0+","")+")")}0<
b.length&&(c+="\nCentering: "+b);c=c+d+"\n"}this.infoStr=c},"~N");e(b,"getAdditionalOperations",function(){null==this.additionalOperations&&null!=this.symmetryOperations&&(this.additionalOperations=JS.SymmetryOperation.getAdditionalOperations(this.symmetryOperations,115));return this.additionalOperations});e(b,"getDerivedSpaceGroup",function(){null==this.sgDerived&&(this.sgDerived=JS.SpaceGroup.getSpaceGroupFromIndex(this.spaceGroupIndex));return this.sgDerived});e(b,"setIsCurrentCell",function(a){return this.isCurrentCell!=
a&&!0==(this.isCurrentCell=a)},"~B");e(b,"getSpaceGroupTitle",function(){return this.isCurrentCell&&null!=this.spaceGroupF2CTitle?this.spaceGroupF2CTitle:this.sgName.startsWith("cell=")?this.sgName:this.sgTitle});e(b,"getDisplayName",function(a){if(null==this.displayName){var c=a.isPolymer(),b=a.isSlab();a=c?"polymer":b?"slab":this.getSpaceGroupTitle();if(null==a)return null;a.startsWith("cell=!")&&(a="cell=inverse["+a.substring(6)+"]");a=JU.PT.rep(a,";0,0,0","");if(!this.isSpinSpaceGroup&&0>a.indexOf("#")){var d=
this.intlTableTransform,e=this.intlTableIndexNdotM;!b&&(!c&&null!=e)&&(null!=d&&(c=a.indexOf(d),0<=c&&(a=JU.PT.rep(a,"("+d+")","")),0>e.indexOf(d)&&(c=e.indexOf("."),0<c&&(e=e.substring(0,c)),e+=":"+d)),a=(a.startsWith("0")?"":a.equals("unspecified!")?"#":a+" #")+e)}0<=a.indexOf("-- [--]")&&(a="");this.displayName=a}return this.displayName},"JS.Symmetry");e(b,"getClegId",function(){if(null==this.itaNo){this.itaNo=this.intlTableIndexNdotM;if(null==this.itaNo||0<this.itaNo.indexOf(":"))return this.itaNo;
var a=this.itaNo.indexOf(".");this.itaNo=(0<a?this.itaNo.substring(0,a):this.itaNo)+":"+this.intlTableTransform}return this.itaNo});e(b,"getFileSpaceGroup",function(){return this.fileSpaceGroup})});aa("JS");$(["JU.P3","$.V3"],"JS.SymmetryDesc","java.util.Hashtable JU.A4 $.BS $.Lst $.M3 $.M4 $.Measure $.P4 $.PT $.Quat $.SB J.api.Interface JS.T JS.SpaceGroup $.Symmetry $.SymmetryOperation JU.Escape $.Logger $.Vibration".split(" "),function(){var b=M(function(){this.drawID=this.modelSet=null;this.iModelSpin=
this.iModel=0;S(this,arguments)},JS,"SymmetryDesc",null);e(b,"set",function(a){this.modelSet=a;return this},"JM.ModelSet");e(b,"getSymopInfoForPoints",function(a,c,b,d,e,g,h,l,k,j,s,m){d=m.get(22)||m.get(3)&&3==m.cardinality();m.clear(22);var u=d?"":null;k=this.getSpaceGroupInfo(a,c,null,b,e,g,h,k,j,!1,!0,s,null,m);if(null==k)return u;a=k.get("operations");if(null==a)return u;c=d?new JU.SB:null;b--;e=!d&&0>b;g=k.get("symmetryInfo");k=k.get("spaceGroupNote");g+=null==k?"":"\n"+k.$replace(":"," ");
j="label".equals(l);for(k=l=0;k<a.length;k++)if(!(null==a[k]||0<=b&&b!=k))if(d){if(null!=h)return a[k][3]+"\nprint "+JU.PT.esc(g);0<c.length()&&c.appendC("\n");j||(0>b&&c.appendI(k+1).appendC("\t"),c.append(a[k][0]).appendC("\t"));c.append(a[k][2])}else{if(!e)return a[k];a[l++]=a[k]}if(!d){b=Array(l);for(k=0;k<l;k++)b[k]=a[k];return b}return 0==c.length()?null!=h?'draw ID "'+h+'*" delete':u:c.toString()},"J.api.SymmetryInterface,~N,~N,JU.P3,JU.P3,JU.P3,~S,~S,~N,~N,~N,JU.BS");e(b,"getDrawID",function(a){return this.drawID+
a+'" '},"~S");e(b,"getSymopInfo",function(a,c,b,d,e,g,h,l,k,j,m,p){0==l&&(l=JS.SymmetryDesc.getType(h));var u=1153433601==l?new JU.BS:"";this.iModel=0<=a?this.modelSet.at[a].mi:this.modelSet.vwr.am.cmi;if(0>this.iModel)return u;this.iModelSpin=this.modelSet.getJmolDataFrameInt(this.iModel,1095241729);var r=this.modelSet.am[this.iModel].biosymmetry;if(null==r&&null==(r=this.modelSet.getUnitCell(this.iModel)))r=(new JS.Symmetry).setUnitCellFromParams(null,!1,NaN);if(135176!=l||2147483647!=b&&null==
p)return this.getSymmetryInfo(a,r,c,b,d,e,g,h,l,k,j,m,!1);if(null==r)return u;l="";b=null==c&&(0>j&&null==p)&&-2==j?r.getAdditionalOperations():r.getSymmetryOperations();if(null!=b)if(null==h&&(h="sg"),u=b.length,null!=e&&null==g||null!=p){null==p&&(p=r.getInvariantSymops(e,null));for(var u=p.length,q=0;q<u;q++)0<j&&j!=q+1||(b=p[q],l+=this.getSymmetryInfo(a,r,c,b,d,e,g,h+b,135176,k,j,m,null==e))}else for(b=1;b<=u;b++)l+=this.getSymmetryInfo(a,r,c,b,d,e,g,h+b,135176,k,j,m,!0);return l},"~N,~S,~N,JU.P3,JU.P3,JU.P3,~S,~N,~N,~N,~N,~A");
e(b,"getSpaceGroupInfo",function(a,c,b,d,e,g,h,l,k,j,m,p,u,r){null==r&&(r=new JU.BS,r.setBits(0,JS.SymmetryDesc.keys.length),r.clear(19));var q=1==r.cardinality()&&r.get(10),n=null,G=!q&&null==e&&null==h&&0>=k&&r.cardinality()>=JS.SymmetryDesc.keys.length,w=!1,v=null,z=null!=b&&0<b.length,A=z&&0<=b.indexOf("[--]");if(m||!z){var y=G&&0==d;if(q)u=a;else{0>c&&(c=L(e,"JM.Atom")?e.mi:this.modelSet.vwr.am.cmi);if(0>c)v="no single current model";else if(null==u&&!(w=null!=(u=this.modelSet.am[c].biosymmetry))&&
null==(u=this.modelSet.getUnitCell(c)))v="not applicable";null!=v?(n=new java.util.Hashtable,n.put("spaceGroupInfo",""),n.put("spaceGroupNote",v),n.put("symmetryInfo","")):G&&(n=this.modelSet.getInfo(c,"spaceGroupInfo"));if(null!=n)return n;b=u.getSpaceGroupName()}var v=u.getDimensionality(),n=new java.util.Hashtable,x=u.getSymmetryOperations(),E=w?u.spaceGroup:null,G=A?"":null,B=0;if(null!=x){a=J.api.Interface.getSymmetry(null,"desc");if(!q)if(w)a.setSpaceGroupTo(JS.SpaceGroup.getNull(!1,!1,!1));
else if(a.setSpaceGroup(!1),0!=u.getGroupType()){var D=u.getSpaceGroup(),K=a.getSpaceGroup();K.nDim=v;K.groupType=D.groupType;K.setClegId(D.getClegId())}for(var D=Array(x.length),K="",C=null==h||null==e||null==g&&0>k?0:1,N=0;C<x.length&&N!=k;C++){var P=x[C],M=P.xyzOriginal,H=P.xyzCanonical,T=P.spinU,S=P.timeReversal,V=P.spinIndex,aa;if(q)aa=C;else{aa=!(0==C&&0<=P.xyz.indexOf("x4"))&&null!=a.getSpaceGroupOperation(C)?C:w?a.addBioMoleculeOperation(E.finalOperations[C],!1):a.addSpaceGroupOperation("="+
P.xyz,C+1);if(0>aa)continue;P=a.getSpaceGroupOperation(C);if(null==P)continue;P.xyzOriginal=M;P.xyzCanonical=H;P.spinU=T;P.spinIndex=V;P.timeReversal=S}null!=G&&(G+=";"+P.xyz);P=0<d&&d-1!=aa?null:this.createInfoArray(P,u,e,g,h,l,p,!1,r,!1,!1,v);if(null!=P&&(N++,!(0<k&&N!=k)&&(D[C]=P,q||(K+="\n"+(C+1)+(null!=h&&1==N?"*":"")+"\t"+P[r.get(19)?19:2==v?18:0]+"\t  "+P[2]),B++,0<d)))break}n.put("operations",D);q||n.put("symmetryInfo",0==K.length?"":K.substring(1))}if(q)return n;v=0==B?"\n no symmetry operations":
0>=k&&0>=d?"\n"+B+" symmetry operation"+(1==B?":\n":"s:\n"):"";null!=G&&(b=G.substring(G.indexOf(";")+1));y&&this.modelSet.setInfo(c,"spaceGroupInfo",n)}else n=new java.util.Hashtable;n.put("spaceGroupName",b);n.put("spaceGroupNote",null==v?"":v);if(w)a=b;else if(z&&!A&&a.setSpaceGroupName(b),a=a.getSpaceGroupInfoObj(b,null==u?null:u.getUnitCellParams(),j,!m),null==a||a.equals("?"))a="?",n.put("spaceGroupNote","could not identify space group from name: "+b+'\nformat: show spacegroup "2" or "P 2c" or "C m m m" or "x, y, z;-x ,-y, -z"\n');
n.put("spaceGroupInfo",a);return n},"J.api.SymmetryInterface,~N,~S,~N,JU.P3,JU.P3,~S,~N,~N,~B,~B,~N,J.api.SymmetryInterface,JU.BS");e(b,"getTransform",function(a,c,b,d,e){JS.SymmetryDesc.pta02.setT(d);JS.SymmetryDesc.vtrans.setT(JS.SymmetryDesc.pta02);a.unitize(JS.SymmetryDesc.pta02);d=3.4028235E38;for(var g=-1,h=0,l=c.length;h<l;h++){var k=c[h];JS.SymmetryDesc.pta01.setT(b);k.rotTrans(JS.SymmetryDesc.pta01);JS.SymmetryDesc.ptemp.setT(JS.SymmetryDesc.pta01);a.unitize(JS.SymmetryDesc.pta01);var j=
JS.SymmetryDesc.pta01.distanceSquared(JS.SymmetryDesc.pta02);if(1.96E-6>j){JS.SymmetryDesc.vtrans.sub(JS.SymmetryDesc.ptemp);JS.SymmetryOperation.normalize12ths(JS.SymmetryDesc.vtrans);k=JU.M4.newM4(k);k.add(JS.SymmetryDesc.vtrans);JS.SymmetryDesc.pta01.setT(b);k.rotTrans(JS.SymmetryDesc.pta01);a.unitize(JS.SymmetryDesc.pta01);j=JS.SymmetryDesc.pta01.distanceSquared(JS.SymmetryDesc.pta02);if(1.96E-6<=j)continue;return k}j<d&&(d=j,g=h)}e&&(k=c[g],JS.SymmetryDesc.pta01.setT(b),k.rotTrans(JS.SymmetryDesc.pta01),
a.unitize(JS.SymmetryDesc.pta01));return null},"JS.UnitCell,~A,JU.P3,JU.P3,~B");b.getType=e(b,"getType",function(a){var c;if(null==a)return 1073742001;switch(a.toLowerCase()){case "xyzcanonical":return 1111492629;case "xyzoriginal":return 1073742078;case "matrix":return 12;case "description":return 1825200146;case "axispoint":return 134217751;case "time":return 268441089;case "info":return 1275068418;case "element":return 1086326789;case "invariant":return 36868}c=JS.T.getTokFromName(a);if(0!=c)return c;
c=JS.SymmetryDesc.getKeyType(a);return 0>c?c:1073742327},"~S");b.getKeyType=e(b,"getKeyType",function(a){"type".equals(a)&&(a="_type");for(var c=0;c<JS.SymmetryDesc.keys.length;c++)if(a.equalsIgnoreCase(JS.SymmetryDesc.keys[c]))return-1-c;return 0},"~S");b.nullReturn=e(b,"nullReturn",function(a){switch(a){case 135176:return";draw ID sym* delete;draw ID sg* delete;";case 1073741961:case 1825200146:case 1073741974:case 1145047049:case 1145047053:case 11:case 1111492629:case 1073742078:case 1145045003:case 1095241729:return"";
case 1153433601:return new JU.BS;default:return null}},"~N");b.getInfo=e(b,"getInfo",function(a,c,b){if(0==a.length)return"";if(0>c&&-c<=JS.SymmetryDesc.keys.length&&-c<=a.length)return a[-1-c];switch(c){case 1073742327:case 1073741982:return a;case 1275068418:c=new java.util.Hashtable;b=0;for(var d=a.length;b<d;b++){var e=3==b?"draw":7==b?"axispoint":JS.SymmetryDesc.keys[b];null!=a[b]&&c.put(e,a[b])}return c;case 1073742001:return a[16]+"\t"+a[2==b?18:0]+"  \t"+a[2];case 1073741961:return a[0]+"  \t"+
a[2];case 1145047049:return a[0];case 1145047053:return a[19];case 1111492629:return a[18];case 1073742078:return a[1];default:case 1825200146:return a[2];case 134217764:if(!JU.Logger.debugging)return a[3];case 135176:return a[3]+"\nprint "+JU.PT.esc(a[0]+" "+a[2]);case 1145047050:return a[4];case 1073742178:return a[5];case 12289:return a[6];case 134217751:return a[7];case 1095241729:return a[20];case 1073741854:return a[8];case 134217729:return a[9];case 1145045003:case 12:return a[10];case 1814695966:return a[11];
case 4160:return a[12];case 268441089:return a[13];case 134217750:return a[14];case 1140850696:return a[15];case 1073741974:return a[16];case 1086326789:return E(-1,[a[6],a[7],a[8],a[14],a[5]]);case 36868:return null!=a[6]?a[6]:null!=a[8]?E(-1,[a[7],a[8],a[5]]):null!=a[5]?"none":null!=a[14]?a[14]:"identity"}},"~A,~N,~N");b.getInfoBS=e(b,"getInfoBS",function(a){var c=new JU.BS;if(0>a&&-a<=JS.SymmetryDesc.keys.length)return c.set(-1-a),c;switch(a){case 0:case 1153433601:case 1073742001:case 1073742327:case 1073741982:case 1275068418:c.setBits(0,
JS.SymmetryDesc.keys.length);break;case 1073741961:c.set(0);c.set(2);break;case 1145047049:c.set(0);break;case 1145047053:c.set(19);break;case 1111492629:c.set(18);break;case 1073742078:c.set(1);break;default:case 1825200146:c.set(2);break;case 135176:c.set(0);c.set(2);c.set(3);break;case 1145047050:c.set(4);break;case 1073742178:c.set(5);break;case 12289:c.set(6);break;case 134217751:c.set(7);break;case 1095241729:c.set(20);break;case 1073741854:c.set(8);break;case 134217729:c.set(9);break;case 12:c.set(10);
break;case 1814695966:c.set(11);break;case 4160:c.set(12);break;case 268441089:c.set(13);break;case 134217750:c.set(14);break;case 1140850696:c.set(15);break;case 1073741974:c.set(16);break;case 1086326789:case 36868:c.set(5),c.set(6),c.set(7),c.set(8),c.set(14),c.set(23)}return c},"~N");e(b,"createInfoArray",function(a,c,b,d,e,g,h,l,k,j,m,p){a.doFinalize();var u=0==a.getOpType(),r=(new Boolean(k.get(10)&k.cardinality()==(k.get(24)?2:1))).valueOf(),q=-1==a.timeReversal,n=null!=a.spinU,G=0!=a.timeReversal||
n;0==g&&(g=1);JS.SymmetryDesc.vtrans.set(0,0,0);var w=null,v=null==b||Float.isNaN(b.x)?c.getCartesianOffset():b;if(null!=d){JS.SymmetryDesc.pta01.setT(v);JS.SymmetryDesc.pta02.setT(d);c.toFractional(JS.SymmetryDesc.pta01,!1);c.toFractional(JS.SymmetryDesc.pta02,!1);a.rotTrans(JS.SymmetryDesc.pta01);JS.SymmetryDesc.ptemp.setT(JS.SymmetryDesc.pta01);c.unitize(JS.SymmetryDesc.pta01);JS.SymmetryDesc.vtrans.setT(JS.SymmetryDesc.pta02);c.unitize(JS.SymmetryDesc.pta02);if(1.96E-6<=JS.SymmetryDesc.pta01.distanceSquared(JS.SymmetryDesc.pta02))return null;
JS.SymmetryDesc.vtrans.sub(JS.SymmetryDesc.ptemp);u&&(u=!1)}var z=JU.M4.newM4(a);z.add(JS.SymmetryDesc.vtrans);k.get(10)&&(null!=d&&v.equals(d))&&(z.m00=Math.round(z.m00),z.m01=Math.round(z.m01),z.m02=Math.round(z.m02),z.m03=Math.round(z.m03),z.m10=Math.round(z.m10),z.m11=Math.round(z.m11),z.m12=Math.round(z.m12),z.m13=Math.round(z.m13),z.m20=Math.round(z.m20),z.m21=Math.round(z.m21),z.m22=Math.round(z.m22),z.m23=Math.round(z.m23));if(r&&!G){var A=JS.SymmetryDesc.getKeyType("matrix"),y=Array(-A);
y[-1-A]=k.get(24)?JS.SymmetryOperation.matrixToRationalString(z):z;return y}var F=new JU.V3;JS.SymmetryDesc.pta01.set(1,0,0);JS.SymmetryDesc.pta02.set(0,1,0);var E=JU.P3.new3(0,0,1);JS.SymmetryDesc.pta01.add(v);JS.SymmetryDesc.pta02.add(v);E.add(v);var B=JS.SymmetryDesc.rotTransCart(a,c,v,JS.SymmetryDesc.vtrans),D=JS.SymmetryDesc.rotTransCart(a,c,JS.SymmetryDesc.pta01,JS.SymmetryDesc.vtrans),K=JS.SymmetryDesc.rotTransCart(a,c,JS.SymmetryDesc.pta02,JS.SymmetryDesc.vtrans),N=JS.SymmetryDesc.rotTransCart(a,
c,E,JS.SymmetryDesc.vtrans),M=JU.V3.newVsub(D,B),P=JU.V3.newVsub(K,B),S=JU.V3.newVsub(N,B);JS.SymmetryOperation.approx6Pt(JS.SymmetryDesc.vtrans);var H=new JU.V3;H.cross(M,P);var T=0>H.dot(S);T&&(D.sub2(B,M),K.sub2(B,P),N.sub2(B,S));var V=JU.Quat.getQuaternionFrame(B,D,K).div(JU.Quat.getQuaternionFrame(v,JS.SymmetryDesc.pta01,JS.SymmetryDesc.pta02)),aa=JU.Quat.new4(V.q1,V.q2,V.q3,V.q0),da=JU.Measure.computeHelicalAxis(v,B,aa),O=JU.P3.newP(da[0]),X=JU.P3.newP(da[1]),ba=x(Math.abs(JU.PT.approx(da[3].x,
1))),$=JS.SymmetryOperation.approx(da[3].y);T&&(D.add2(B,M),K.add2(B,P),N.add2(B,S));var Q=JU.V3.newVsub(B,v);0.1>Q.length()&&(Q=null);var Y=null,R=null,Z=null,fa=null,la=0,qa=0,ha=0==ba,ka=!ha,Qa=!1,za=!1,xa=!ka&&!T;if(ka||T)Q=null;var Aa=!1,Xa=c.getPeriodicity(),Ya=0==(Xa&1),Ra=0==(Xa&2),Ja=0==(Xa&4),fa=JU.V3.new3(0,0,1);if(3==p)switch(Xa){case 1:fa=JU.V3.new3(1,0,0);Aa=!0;break;case 2:Aa=!0;fa=JU.V3.new3(0,1,0);break;case 4:Aa=!0}var Ia=!(Ya||Ra||Ja),Ba=Math.abs(X.dot(fa)/fa.length()/X.length());
0.001>Math.abs(Ba-1)?(Aa=!1,fa=null):Ia=!Aa;if(T&&ha)R=JU.P3.newP(v),R.add(B),R.scale(0.5),Y=B,Qa=!0;else if(T){var wa=0==$?new JU.V3:X,Sa=0;switch(ba){case 60:Sa=0.6666667;break;case 120:Sa=2;break;case 90:Sa=1;break;case 180:Z=JU.P3.newP(v);Z.add(wa);O.scaleAdd2(0.5,wa,v);0.1<Z.distance(B)?(Q=JU.V3.newVsub(B,Z),F.setT(Q),c.toFractional(F,!0)):Q=null;H.setT(X);H.normalize();la=-H.x*O.x-H.y*O.y-H.z*O.z;w=JU.P4.new4(H.x,H.y,H.z,la);qa=0.01>Math.abs(la)&&0.4<H.x*H.y?1.3:1.05;T=ka=!1;za=!0;if(Ja&&(fa=
JU.V3.newVsub(v,E),Ba=Math.abs(X.dot(fa)/fa.length()/X.length()),Ja=0.001>Ba))fa.scale(0.5),c.toCartesian(fa,!0);if(Ra){var ma=JU.V3.newVsub(v,JS.SymmetryDesc.pta02),Ba=Aa?0:Math.abs(X.dot(ma)/ma.length()/X.length());if(Ra=0.001>Ba)ma.scale(0.5),c.toCartesian(ma,!0),Ja?fa.add(ma):fa=ma}if(Ya&&(ma=JU.V3.newVsub(v,JS.SymmetryDesc.pta01),Ba=Aa?0:Math.abs(X.dot(ma)/ma.length()/X.length()),Ya=0.001>Ba))ma.scale(0.5),c.toCartesian(ma,!0),Ra||Ja?fa.add(ma):fa=ma;break;default:T=!1}0!=Sa&&(H.sub2(v,O),H.add(B),
H.sub(O),H.sub(wa),H.scale(Sa),O.add(H),R=new JU.P3,R.scaleAdd2(0.5,wa,O),Y=new JU.P3,Y.scaleAdd2(-2,R,B),Y.scale(-1))}else null!=Q&&(JS.SymmetryDesc.ptemp.setT(Q),c.toFractional(JS.SymmetryDesc.ptemp,!1),F.setT(JS.SymmetryDesc.ptemp),c.toCartesian(JS.SymmetryDesc.ptemp,!1),Q.setT(JS.SymmetryDesc.ptemp));var Ca=ba;JS.SymmetryDesc.approx0(X);if(ka){var ca=new JU.P3;H.setT(X);var ya=ba,Za;T?(ca.setT(Y),Za=Y):0==$?(Za=B,ca.setT(O)):(Za=B,ca.scaleAdd2(0.5,H,O));JS.SymmetryDesc.ptemp.add2(O,H);ya=Math.round(JU.Measure.computeTorsion(v,
O,JS.SymmetryDesc.ptemp,Za,!0));0!=JS.SymmetryOperation.approx(ya)&&(ba=ya,0>ba&&(ba=360+ba))}var ga=null,ua=null,Da=String.fromCharCode(0),Oa=a.isIrrelevant,ra=a.getOpOrder();a.isIrrelevant=(new Boolean(a.isIrrelevant|Oa)).valueOf();var oa=a.getOpIsCCW(),na=0,va=0;if(k.get(2)||k.get(15)){ga=ua="identity";if(Qa)JS.SymmetryDesc.ptemp.setT(R),c.toFractional(JS.SymmetryDesc.ptemp,!1),ga="Ci: "+JS.SymmetryDesc.strCoord(JS.SymmetryDesc.ptemp,a.isBio),ua="inversion center";else if(ka){var $a="";null!=oa&&
($a=oa===Boolean.TRUE?"(+)":"(-)",na=oa===Boolean.TRUE?1:-1,T&&-1==na&&(Oa=!0));va=C(360/Ca);T?ga=va+"-bar"+$a+" axis":0!=$?(JS.SymmetryDesc.ptemp.setT(X),c.toFractional(JS.SymmetryDesc.ptemp,!0),ga=va+$a+" ("+JS.SymmetryDesc.strCoord(JS.SymmetryDesc.ptemp,a.isBio)+") screw axis"):(ga=va+$a+" axis",0==ra%2&&(na*=C(ra/2)));ua=ga}else if(null!=Q){var ia=" "+JS.SymmetryDesc.strCoord(F,a.isBio);2==p&&(ia=ia.substring(0,ia.lastIndexOf(" ")));ha?(ua=ga="translation",ga+=":"+ia):za&&(j&&(JS.SymmetryDesc.fixGlideTrans(F),
Q.setT(F),c.toCartesian(Q,!0)),ia=" "+JS.SymmetryDesc.strCoord(F,a.isBio),2==p&&(ia=ia.substring(0,ia.lastIndexOf(" "))),Da=JS.SymmetryOperation.getGlideFromTrans(F,X),ua=ga=Da+"-glide plane",ga+="|translation:"+ia)}else za&&(ua=ga="mirror plane");T&&!Qa&&(JS.SymmetryDesc.ptemp.setT(R),c.toFractional(JS.SymmetryDesc.ptemp,!1),ga+="|at "+JS.SymmetryDesc.strCoord(JS.SymmetryDesc.ptemp,a.isBio));q&&(ga+="|time-reversed",ua+=" (time-reversed)")}var ib=!0,Pa=ka&&!T&&0!=$;Pa||(na=0,ib=JS.SymmetryDesc.checkHandedness(c,
X),ib||(ba=-ba,0>ba&&(ba=360+ba),X.scale(-1)));for(var Ka=!1,La=null,eb=0<=this.iModelSpin&&n;null!=e&&k.get(3);){if(u||m&&a.isIrrelevant){JU.Logger.debugging&&System.out.println("!!SD irrelevent "+a.getOpTitle()+a.getOpPoint());La="";break}var sa=null;e.endsWith("_")||(e+="_");this.drawID='\ndraw ID "'+e;var I=new JU.SB;I.append(this.getDrawID("*")).append(" delete");var Ta=3==p;j||(this.drawLine(I,"frame1X",0.15,v,JS.SymmetryDesc.pta01,"red"),this.drawLine(I,"frame1Y",0.15,v,JS.SymmetryDesc.pta02,
"green"),Ta&&this.drawLine(I,"frame1Z",0.15,v,E,"blue"));var ja,Ua=null,jb=0,Ea=0.2>v.distance(B),pa=j?"<hover>"+e+": "+(2==p?a.xyz.$replace(",z",""):a.xyz)+"|"+ga+"</hover>":null;if(ka){ja=2==va?"red":3==va?"[xA00040]":4==va?"[x800080]":"[x4000A0]";var Ca=ba,lb=1;H.setT(X);var ab="";j&&(O.setT(a.getOpPoint()),c.toCartesian(O,!1));ca=new JU.P3;0!=$&&!T?(sa="screw",ja=oa===Boolean.TRUE?"orange":oa===Boolean.FALSE?"blue":4==ra?"lightgray":"grey",j||(this.drawLine(I,"rotLine1",0.1,v,O,"red"),JS.SymmetryDesc.ptemp.add2(O,
H),this.drawLine(I,"rotLine2",0.1,B,JS.SymmetryDesc.ptemp,"red"),ca.scaleAdd2(0.5,H,O))):(ca.setT(O),ib||!Ea&&!j&&O.sub2(O,H),T?(sa="bar",j?(H.normalize(),oa===Boolean.TRUE&&H.scale(-1)):0==$?(ca.setT(R),H.scale(3*g),Ea?(JS.SymmetryDesc.ptemp.scaleAdd2(0.25,H,O),O.scaleAdd2(-0.24,H,O),ca.scaleAdd2(0.31,H,ca),ja="cyan"):(JS.SymmetryDesc.ptemp.scaleAdd2(-1,H,O),this.drawLine(I,"rotLine1",0.1,v,R,"red"),this.drawLine(I,"rotLine2",0.1,Y,R,"red"))):Ea||(lb=v.distance(ca),this.drawLine(I,"rotLine1",0.1,
v,ca,"red"),this.drawLine(I,"rotLine2",0.1,Y,ca,"red"))):(sa="rot",H.scale(3*g),!Ea&&!j&&(this.drawLine(I,"rotLine1",0.1,v,ca,"red"),this.drawLine(I,"rotLine2",0.1,B,ca,"red")),ca.setT(O),0==$&&Ea&&ca.scaleAdd2(0.25,H,ca)));j||(180<Ca&&(Ca=180-Ca),JS.SymmetryDesc.ptemp.add2(ca,H),I.append(this.getDrawID("rotRotArrow")).append(" arrow width 0.1 scale "+JU.PT.escF(lb)+" arc ").append(JU.Escape.eP(ca)).append(JU.Escape.eP(JS.SymmetryDesc.ptemp)),JS.SymmetryDesc.ptemp.setT(v),0.1>JS.SymmetryDesc.ptemp.distance(B)&&
JS.SymmetryDesc.ptemp.set(Math.random(),Math.random(),Math.random()),I.append(JU.Escape.eP(JS.SymmetryDesc.ptemp)),JS.SymmetryDesc.ptemp.set(0,Ca-5*Math.signum(Ca),0),I.append(JU.Escape.eP(JS.SymmetryDesc.ptemp)).append(" color red"));var bb=0;!a.opIsLong&&(m&&0<$&&!T)&&(Ka=(bb=a.getOpTrans().length())>(2==ra?0.71:3==ra?0.578:0.51));Ka&&JU.Logger.debugging&&System.out.println("SD ignoring "+a.getOpTrans().length()+" "+a.getOpTitle()+a.xyz);var kb=null;if(0==$&&!T){JS.SymmetryDesc.ptemp.scaleAdd2(0.5,
H,O);O.scaleAdd2(j?-0.5:-0.45,H,O);if(m&&Ia&&null!=(kb=a.getOpPoint2()))ca.setT(kb),c.toCartesian(ca,!1),ca.scaleAdd2(-0.5,H,ca);j&&this.scaleByOrder(H,ra,oa)}else m&&0!=$&&!T&&0.4<(wa=a.getOpTrans().length())?oa!==Boolean.TRUE&&null!=oa&&0.5==wa&&(Ka=!0):j&&T&&(this.scaleByOrder(H,ra,oa),ab="80");0<$&&!T&&(ab=""+(90-x(90*(H.length()/$))));if(!Ka){if(0!=na){switch(ra){case 4:0.49<bb&&(na=-2);break;case 6:0.49<bb?na=-3:0.33<bb&&(na*=2)}ja=0>na?"blue":"orange"}var mb=(j?sa+"_"+va:"")+"rotvector1";this.drawOrderVector(I,
mb,"vector","0.1"+ab,O,va,na,T&&m,oa===Boolean.TRUE,H,q?"orange":ja,pa,m);null!=kb&&this.drawOrderVector(I,mb+"2","vector","0.1"+ab,ca,ra,na,T,oa===Boolean.TRUE,H,q?"gray":ja,pa,m)}}else if(za){JS.SymmetryDesc.ptemp.sub2(Z,v);!j&&0.2<v.distance(Z)&&this.drawVector(I,"planeVector","vector","0.05",v,JS.SymmetryDesc.ptemp,q?"gray":"cyan",null);sa="plane";if(null==Q)ja="magenta";else{sa="glide";switch(Da.charCodeAt(0)){case 97:ja="[x4080ff]";break;case 98:ja="blue";break;case 99:ja="cyan";break;case 110:ja=
"orange";break;case 100:ja="grey";break;default:ja="lightgreen"}j||(this.drawFrameLine("X",Z,M,0.15,JS.SymmetryDesc.ptemp,I,"glideframe","red"),this.drawFrameLine("Y",Z,P,0.15,JS.SymmetryDesc.ptemp,I,"glideframe","green"),Ta&&this.drawFrameLine("Z",Z,S,0.15,JS.SymmetryDesc.ptemp,I,"glideframe","blue"))}var nb=c.getCanonicalCopy(qa,!0);if(Ya||Ra||Ja)for(var U=8;0<=--U;)nb[U].add(fa);var Va=this.modelSet.vwr.getTriangulator().intersectPlane(w,nb,3);if(null!=Va)for(var ob=j?a.iCoincident:0,Ua=new JU.P3,
pb=U=0,fb=Va.size();U<fb;U++){var Ma=Va.get(U);I.append(this.getDrawID((null==Q?"mirror_":Da+"_g")+"planep"+U)).append(JU.Escape.eP(Ma[0])).append(JU.Escape.eP(Ma[1]));3==Ma.length?((0==ob||0==pb%2!=(1==ob))&&I.append(JU.Escape.eP(Ma[2])),pb++):(Ua.add(Ma[0]),Ua.add(Ma[1]),jb+=2);I.append(" color translucent ").append(ja);null!=pa&&I.append(" ").append(JU.PT.esc(pa))}if(null==Va||0==Va.size())m?Ka=!0:(JS.SymmetryDesc.ptemp.add2(O,X),I.append(this.getDrawID("planeCircle")).append(" scale 2.0 circle ").append(JU.Escape.eP(O)).append(JU.Escape.eP(JS.SymmetryDesc.ptemp)).append(" color translucent ").append(ja).append(" mesh fill"),
null!=pa&&I.append(" ").append(JU.PT.esc(pa)))}T&&(sa="inv",Qa?(I.append(this.getDrawID("inv_point")).append(" diameter 0.4 ").append(JU.Escape.eP(R)),null!=pa&&I.append(" ").append(JU.PT.esc(pa)),JS.SymmetryDesc.ptemp.sub2(Y,v),j||this.drawVector(I,"Arrow","vector","0.05",v,JS.SymmetryDesc.ptemp,q?"gray":"cyan",null)):(4==ra&&(I.append(this.getDrawID("RotPoint")).append(" diameter 0.3 color red").append(JU.Escape.eP(R)),null!=pa&&I.append(" ").append(JU.PT.esc(pa))),j||(I.append(" color cyan"),Ea||
(JS.SymmetryDesc.ptemp.sub2(B,Y),this.drawVector(I,"Arrow","vector","0.05",Y,JS.SymmetryDesc.ptemp,q?"gray":"cyan",null)),1073742066!=h&&(H.setT(M),H.scale(-1),this.drawFrameLine("X",Y,H,0.15,JS.SymmetryDesc.ptemp,I,sa,"red"),H.setT(P),H.scale(-1),this.drawFrameLine("Y",Y,H,0.15,JS.SymmetryDesc.ptemp,I,sa,"green"),H.setT(S),H.scale(-1),Ta&&this.drawFrameLine("Z",Y,H,0.15,JS.SymmetryDesc.ptemp,I,sa,"blue")))));if(null!=Q&&(za&&j?null!=Ua&&(Z=Ua,Z.scale(1/jb),Z.scaleAdd2(-0.5,Q,Z)):null==Z&&(Z=j?v:
JU.P3.newP(v)),null!=Z&&!Ka)){var qb="\x00"==Da,cb=j&&!qb&&!xa;cb?(JS.SymmetryDesc.ptemp.scaleAdd2(0.5,Q,Z),JS.SymmetryDesc.vtrans.setT(Q),JS.SymmetryDesc.vtrans.scale(0.5)):(JS.SymmetryDesc.ptemp.setT(Z),JS.SymmetryDesc.vtrans.setT(Q));ja=cb?q?"orange":"green":q&&(n||!T&&!za&&!ka)?"darkgray":"gold";this.drawVector(I,(qb?"centering_":Da+"_g")+"trans_vector","vector",cb||xa?"0.1":"0.05",JS.SymmetryDesc.ptemp,JS.SymmetryDesc.vtrans,ja,pa);cb&&(JS.SymmetryDesc.vtrans.scale(-1),this.drawVector(I,Da+"_gtrans_vector2",
"vector","0.1",JS.SymmetryDesc.ptemp,JS.SymmetryDesc.vtrans,ja,pa))}if(!j){JS.SymmetryDesc.ptemp2.setT(B);JS.SymmetryDesc.ptemp.sub2(D,B);JS.SymmetryDesc.ptemp.scaleAdd2(0.9,JS.SymmetryDesc.ptemp,JS.SymmetryDesc.ptemp2);this.drawLine(I,"frame2X",0.2,JS.SymmetryDesc.ptemp2,JS.SymmetryDesc.ptemp,"red");JS.SymmetryDesc.ptemp.sub2(K,B);JS.SymmetryDesc.ptemp.scaleAdd2(0.9,JS.SymmetryDesc.ptemp,JS.SymmetryDesc.ptemp2);this.drawLine(I,"frame2Y",0.2,JS.SymmetryDesc.ptemp2,JS.SymmetryDesc.ptemp,"green");JS.SymmetryDesc.ptemp.sub2(N,
B);JS.SymmetryDesc.ptemp.scaleAdd2(0.9,JS.SymmetryDesc.ptemp,JS.SymmetryDesc.ptemp2);Ta&&this.drawLine(I,"frame2Z",0.2,JS.SymmetryDesc.ptemp2,JS.SymmetryDesc.ptemp,"purple");I.append("\nsym_point = "+JU.Escape.eP(v));I.append("\nvar p0 = "+JU.Escape.eP(JS.SymmetryDesc.ptemp2));var Wa=null;L(v,"JM.Atom")?(Wa=v,I.append("\nvar set2 = within(0.2,p0);if(!set2){set2 = within(0.2,p0.uxyz.xyz)}"),I.append("\n set2 &= {_"+Wa.getElementSymbol()+"}")):I.append("\nvar set2 = p0.uxyz");I.append("\nsym_target = set2;if (set2) {");
if(null!=Wa&&null==d){var gb="\n modelkit set atomset @{"+JU.PT.esc(e)+"+'|'+"+Wa.i+"+'|'+set2+'|'+'draw ID "+e+" symop ({"+Wa.i+"})' + set2}";I.append(gb)}!Ea&&(1073742066!=h&&null==d&&!l)&&(I.append(this.getDrawID("offsetFrameX")).append(" diameter 0.20 @{set2.xyz} @{set2.xyz + ").append(JU.Escape.eP(M)).append("*0.9} color red"),I.append(this.getDrawID("offsetFrameY")).append(" diameter 0.20 @{set2.xyz} @{set2.xyz + ").append(JU.Escape.eP(P)).append("*0.9} color green"),Ta&&I.append(this.getDrawID("offsetFrameZ")).append(" diameter 0.20 @{set2.xyz} @{set2.xyz + ").append(JU.Escape.eP(S)).append("*0.9} color purple"));
I.append("\n}\n")}La=I.toString();JU.Logger.debugging&&JU.Logger.info(La);I=null;if(eb){var hb=this.modelSet.getUnitCell(this.iModel),Fa=L(b,"JM.Atom")?b:null,Ga=L(d,"JM.Atom")?d:null;if(null!=Fa&&null!=Ga)var rb=this.modelSet.vwr.getModelUndeletedAtomsBitSet(this.iModelSpin),Fa=JU.Vibration.find(this.modelSet,rb,this.modelSet.getVibration(Fa.i,!1)),Ga=JU.Vibration.find(this.modelSet,rb,this.modelSet.getVibration(Ga.i,!1));if(null==Fa||null==Ga)Fa=Ga=null;ia=hb.pointGroup.getInfo(this.iModelSpin,
null==Fa?null:JU.P3.newP(Fa),null==Ga?null:JU.P3.newP(Ga),e+"_pg",!1,a.getSUVW(),0,1);null!=ia&&(La+=";\n"+ia)}break}null==Q&&(F=null);Pa&&(Q=JU.V3.newV(X),JS.SymmetryDesc.ptemp.setT(Q),c.toFractional(JS.SymmetryDesc.ptemp,!1),F=JU.V3.newV(JS.SymmetryDesc.ptemp));za&&(ba=0);T?Qa&&(F=Q=X=O=null):ha&&(X=O=null);null!=X&&X.normalize();var Ha=null;if(k.get(0)||k.get(17))Ha=a.isBio?z.toString():0<a.modDim?a.xyzOriginal:JS.SymmetryOperation.getXYZFromMatrix(z,!1,!1,!1),G?Ha=a.fixMagneticXYZ(z,Ha):2==p&&
(Ha=Ha.$replace(",z",""));for(var ea=Array(21),U=k.nextSetBit(0);0<=U;U=k.nextSetBit(U+1))switch(U){case 0:ea[U]=Ha;break;case 19:if(null!=b&&null==d&&!a.isBio&&0==a.modDim){var db;JS.SymmetryDesc.pta02.setT(b);c.toFractional(JS.SymmetryDesc.pta02,!0);z.rotTrans(JS.SymmetryDesc.pta02);JS.SymmetryDesc.ptemp.setT(JS.SymmetryDesc.pta02);c.unitize(JS.SymmetryDesc.pta02);JS.SymmetryDesc.vtrans.sub2(JS.SymmetryDesc.pta02,JS.SymmetryDesc.ptemp);z=JU.M4.newM4(a);z.add(JS.SymmetryDesc.vtrans);db=JS.SymmetryOperation.getXYZFromMatrix(z,
!1,!1,!1);G&&(db=a.fixMagneticXYZ(z,db));ea[U]=db}break;case 1:ea[U]=a.xyzOriginal;break;case 2:ea[U]=ga;break;case 3:ea[U]=La;break;case 4:ea[U]=JS.SymmetryDesc.approx0(F);break;case 5:ea[U]=JS.SymmetryDesc.approx0(Q);break;case 6:ea[U]=JS.SymmetryDesc.approx0(R);break;case 7:ea[U]=JS.SymmetryDesc.approx0(null!=O&&k.get(23)?v:O);break;case 8:ea[U]=null==w?JS.SymmetryDesc.approx0(X):null;break;case 9:ea[U]=0!=ba?Integer.$valueOf(ba):null;break;case 10:ea[U]=z;break;case 11:ea[U]=0<JS.SymmetryDesc.vtrans.lengthSquared()?
JS.SymmetryDesc.vtrans:null;break;case 12:ea[U]=a.getCentering();break;case 13:ea[U]=Integer.$valueOf(a.timeReversal);break;case 14:null!=w&&k.get(23)&&(wa=JU.Measure.distanceToPlane(w,v),w.w-=wa);ea[U]=w;break;case 20:ea[U]=a.spinU;break;case 15:ea[U]=ua;break;case 16:ea[U]=Integer.$valueOf(a.number);break;case 17:var Na=null;if(!a.isBio&&!Ha.equals(a.xyzOriginal)&&0<a.number){var sb=JS.SymmetryOperation.getMatrixFromXYZ(a.xyzOriginal,null,!1);sb.sub(z);Na=new JU.P3;sb.getTranslation(Na)}ea[U]=(0>
a.number?0:a.number)+(null==Na?" [0 0 0]":" ["+x(-Na.x)+" "+x(-Na.y)+" "+x(-Na.z)+"]");break;case 18:ia=a.xyzCanonical,null==ia&&(ia=a.xyz),2==p&&(ia=ia.$replace(",z","")),ea[U]=ia}return ea},"JS.SymmetryOperation,J.api.SymmetryInterface,JU.P3,JU.P3,~S,~N,~N,~B,JU.BS,~B,~B,~N");b.fixGlideTrans=e(b,"fixGlideTrans",function(a){a.x=JS.SymmetryDesc.fixGlideX(a.x);a.y=JS.SymmetryDesc.fixGlideX(a.y);a.z=JS.SymmetryDesc.fixGlideX(a.z)},"JU.V3");b.fixGlideX=e(b,"fixGlideX",function(a){switch(Math.round(48.001*
a)){case 36:return-0.25;case -36:return 0.25;default:return a}},"~N");e(b,"scaleByOrder",function(a,c,b){a.scale(1+0.3/c+(null==b?0:b===Boolean.TRUE?0.02:-0.02))},"JU.V3,~N,Boolean");b.checkHandedness=e(b,"checkHandedness",function(a,c){var b,d,e;JS.SymmetryDesc.ptemp.set(1,0,0);a.toCartesian(JS.SymmetryDesc.ptemp,!1);b=JS.SymmetryDesc.approx0d(JS.SymmetryDesc.ptemp.dot(c));JS.SymmetryDesc.ptemp.set(0,1,0);a.toCartesian(JS.SymmetryDesc.ptemp,!1);d=JS.SymmetryDesc.approx0d(JS.SymmetryDesc.ptemp.dot(c));
JS.SymmetryDesc.ptemp.set(0,0,1);a.toCartesian(JS.SymmetryDesc.ptemp,!1);e=JS.SymmetryDesc.approx0d(JS.SymmetryDesc.ptemp.dot(c));return 0==b?0==d?0<e:0<d:0==e?0<b:0==d?0<e:0<b*d*e},"J.api.SymmetryInterface,JU.P3");e(b,"drawLine",function(a,c,b,d,e,g){a.append(this.getDrawID(c)).append(" diameter ").appendD(b).append(JU.Escape.eP(d)).append(JU.Escape.eP(e)).append(" color ").append(g)},"JU.SB,~S,~N,JU.P3,JU.P3,~S");e(b,"drawFrameLine",function(a,c,b,d,e,g,h,l){e.setT(c);e.add(b);this.drawLine(g,h+
"Pt"+a,d,c,e,"translucent "+l)},"~S,JU.P3,JU.V3,~N,JU.P3,JU.SB,~S,~S");e(b,"drawVector",function(a,c,b,d,e,g,h,l){b.equals("vline")&&(JS.SymmetryDesc.ptemp2.add2(e,g),b="",g=JS.SymmetryDesc.ptemp2);a.append(this.getDrawID(c)).append(" diameter ").append(d+" ").append(b).append(JU.Escape.eP(e)).append(JU.Escape.eP(g)).append(" color ").append(h);null!=l&&a.append(' "'+l+'"')},"JU.SB,~S,~S,~S,JU.T3,JU.T3,~S,~S");e(b,"drawOrderVector",function(a,c,b,d,e,g,h,l,k,j,m,p,u){this.drawVector(a,c,b,d,e,j,m,
p);if(!(2==g||l&&!k)){b=JS.SymmetryDesc.getPolygon(g,!l?0:k?1:-1,l,e,j);d=b[0];a.append(this.getDrawID(c+"_key")).append(" POLYGON ").appendI(d.size());k=0;for(p=d.size();k<p;k++)a.appendO(d.get(k));a.append(" color ").append(m);if(0!=h&&u){b=JS.SymmetryDesc.getPolygon(g,h,l,e,j);a.append(this.getDrawID(c+"_key2"));d=b[0];a.append(" POLYGON ").appendI(d.size());k=0;for(p=d.size();k<p;k++)a.appendO(d.get(k));d=b[1];a.appendI(d.size());k=0;for(p=d.size();k<p;k++)a.appendO(JU.PT.toJSON(null,d.get(k)));
a.append(" color ").append(m)}}},"JU.SB,~S,~S,~S,JU.P3,~N,~N,~B,~B,JU.V3,~S,~S,~B");b.getPolygon=e(b,"getPolygon",function(a,c,b,d,e){var g=b?0.6:0.4,h=new JU.Lst,l=new JU.Lst,k=JU.V3.newV(e);k.scale(0);k.add(d);var j=JU.V3.new3(0,0,1),m=new JU.V3;d=new JU.M3;m.cross(j,e);0.01>m.length()?d.m00=d.m11=d.m22=1:(m.normalize(),e=j.angle(e),d.setAA(JU.A4.newVA(m,e)));e=6.283185307179586/a*(0>c?-1:1);for(var m=new JU.V3,p=null,u=j=0,r=0,q=0==c?a:a+1;r<q;r++){var n=new JU.P3;n.x=Math.cos(e*r)*g;n.y=Math.sin(e*
r)*g;d.rotate(n);n.add(k);r<a&&h.addLast(n);if(!b&&0!=c&&0==r%c&&null!=p){m.sub2(n,p);var p=r<a?u++:0,x=JU.P3.newP(n);x.scaleAdd2(1,n,x);x.scaleAdd2(-1,k,x);h.addLast(x);l.addLast(N(-1,[j,u++,p,0]));j=p}else j=u++;p=n}return E(-1,[h,l])},"~N,~N,~B,JU.P3,JU.V3");b.rotTransCart=e(b,"rotTransCart",function(a,c,b,d){b=JU.P3.newP(b);c.toFractional(b,!1);a.rotTrans(b);b.add(d);c.toCartesian(b,!1);return b},"JS.SymmetryOperation,J.api.SymmetryInterface,JU.P3,JU.V3");b.strCoord=e(b,"strCoord",function(a,
c){JS.SymmetryDesc.approx0(a);return c?"("+a.x+" "+a.y+" "+a.z+")":JS.SymmetryOperation.fcoord(a," ")},"JU.T3,~B");b.approx0=e(b,"approx0",function(a){null!=a&&(a.x=JS.SymmetryDesc.approx0d(a.x),a.y=JS.SymmetryDesc.approx0d(a.y),a.z=JS.SymmetryDesc.approx0d(a.z));return a},"JU.T3");b.approx0d=e(b,"approx0d",function(a){return 1E-4>Math.abs(a)?0:a},"~N");e(b,"getSymmetryInfo",function(a,c,b,d,e,g,h,l,k,j,m,p,u){var r=0,q=JS.SymmetryDesc.nullReturn(k),n=0;switch(k){case 1073741994:return""+c.getLatticeType();
case 1073742001:r=1073742001;break;case 135176:r=135176;break;case 1145045003:r=JS.SymmetryDesc.getKeyType("matrix");n=24;break;case 1275068418:switch(r=JS.SymmetryDesc.getType(l),r){case 1145045003:r=JS.SymmetryDesc.getKeyType("matrix");n=24;break;case 1095241729:case 1153433601:case 1073741961:case 1073742001:case 134217751:case 1086326789:case 36868:case 1111492629:case 1073742078:k=r;break;default:r=JS.SymmetryDesc.getKeyType(l)}}var x=JS.SymmetryDesc.getInfoBS(r);21<n&&x.set(n);var w=-2==m,v=
d,z=d,A=1073742066==p&&(1153433601==k||134217751==k)?h:null;null!=A&&(h=null);var y=v=null,F=null,n=null==c?3:c.getDimensionality();if(null==h){if(null==b){F=w?c.getAdditionalOperations():c.getSymmetryOperations();if(null==F||Math.abs(d)>F.length||0==d)return q;v=Math.abs(d)-1;b=null==e?F[v].xyz:F[v].getxyzTrans(e);y=F[v].xyzOriginal}else v=d=0;var D=new JS.Symmetry;D.setSpaceGroup(!1);var B=null!=c&&c.isBio();h=B?D.addBioMoleculeOperation(c.getSpaceGroup().finalOperations[v],0>d):D.addSpaceGroupOperation((0>
d?"!":"=")+(0<=b.indexOf("x")&&0>b.indexOf("z")?b+",z":b),Math.abs(d));if(0>h)return q;var C=D.getSpaceGroupOperation(h);u&&(C.iCoincident=F[v].iCoincident);w&&(C.isIrrelevant=F[v].isIrrelevant);null!=y&&(C.xyzOriginal=y,C.timeReversal=F[v].timeReversal,C.spinU=F[v].spinU);C.number=0==d?z:d;B||C.getCentering();null==g&&0<=a&&(g=this.modelSet.at[a]);if(134217751==k||1153433601==k){if(B||null==g)return q;D.setUnitCell(c);JS.SymmetryDesc.ptemp.setT(g);c.toFractional(JS.SymmetryDesc.ptemp,!1);if(Float.isNaN(JS.SymmetryDesc.ptemp.x))return q;
r=new JU.P3;D.newSpaceGroupPoint(JS.SymmetryDesc.ptemp,h,null,0,0,0,r);1073742066==p&&(c.unitize(r),r.add(A));D.toCartesian(r,!1);return 1153433601==k?this.getAtom(c,this.iModel,a,r):r}v=this.createInfoArray(C,c,g,null,null==l||l.equals("array")?"sym_":l,j,p,null!=e,x,u,w,n);1275068418==k&&(null!=l&&-11!=r)&&(r=JS.SymmetryDesc.getKeyType(l))}else{w="info";A=!1;switch(k){case 1275068418:-11!=r&&(r=JS.SymmetryDesc.getKeyType(l));l=w=null;0==m&&(m=-1);break;case 1073742001:l=w=null;0==m&&(m=-1);A=!0;
x.set(22);x.set(0);x.set(19);break;case 135176:null==l&&(l=u?"sg":"sym_");w="all";A=!0;break;case 1153433601:l=w=null;default:0==m&&(m=1)}p=this.getSymopInfoForPoints(c,this.iModel,d,e,g,h,l,w,j,m,p,x);if(A)return p;if("string"==typeof p)return q;v=p;if(1153433601==k)return!L(g,"JM.Atom")&&!L(h,"JM.Atom")&&(a=-1),null==v?q:this.getAtom(c,this.iModel,a,v[7])}if(null==v)return q;a=0<v.length&&L(v[0],Array);if(0>m&&0>=d&&null==b&&(1275068418==k||a)){1275068418==k&&(0<v.length&&!L(v[0],Array))&&(v=E(-1,
[v]));a=new JU.Lst;for(h=0;h<v.length;h++)a.addLast(JS.SymmetryDesc.getInfo(v[h],0>r?r:k,n));return a}if(0>r&&(0<=m||0<d||null!=b))k=r;0<m&&a&&(v=v[0]);135176==k&&(u&&-2==m)&&(k=134217764);return JS.SymmetryDesc.getInfo(v,k,n)},"~N,J.api.SymmetryInterface,~S,~N,JU.P3,JU.P3,JU.P3,~S,~N,~N,~N,~N,~B");e(b,"getAtom",function(a,c,b,d){var e=null;0<=b&&this.modelSet.getAtomBitsMDa(1094715402,Integer.$valueOf(this.modelSet.at[b].getElementNumber()),e=new JU.BS);b=new JU.BS;this.modelSet.getAtomsWithin(0.02,
d,b,c);null!=e&&b.and(e);b.isEmpty()&&(d=JU.P3.newP(d),a.toUnitCell(d,null),a.toCartesian(d,!1),this.modelSet.getAtomsWithin(0.02,d,b,c),null!=e&&b.and(e));return b},"J.api.SymmetryInterface,~N,~N,JU.T3");b.ptemp=new JU.P3;b.ptemp2=new JU.P3;b.pta01=new JU.P3;b.pta02=new JU.P3;b.vtrans=new JU.V3;b.keys=E(-1,["xyz","xyzOriginal","label",null,"fractionalTranslation","cartesianTranslation","inversionCenter",null,"axisVector","rotationAngle","matrix","unitTranslation","centeringVector","timeReversal",
"plane","_type","id","cif2","xyzCanonical","xyzNormalized","spin"])});aa("JS");$(["JU.SimpleUnitCell","JU.P3","JV.JC"],"JS.UnitCell","java.util.Hashtable JU.AU $.Lst $.M3 $.M4 $.Measure $.P4 $.PT $.Quat $.V3 J.api.Interface JS.Symmetry JU.BoxInfo $.Escape $.Point3fi".split(" "),function(){var b=M(function(){this.moreInfo=null;this.name="";this.fractionalOffset=this.vertices=null;this.allFractionalRelative=!1;this.spinFrameToCartXYZ=this.spinFrameFromCartXYZ=this.f2c=this.unitCellMultiplied=this.unitCellMultiplier=
this.cartesianOffset=null;S(this,arguments)},JS,"UnitCell",JU.SimpleUnitCell,Cloneable);qa(b,function(){this.cartesianOffset=new JU.P3});b.fromOABC=e(b,"fromOABC",function(a,c){var b=new JS.UnitCell;3==a.length&&(a=E(-1,[new JU.P3,a[0],a[1],a[2]]));var d=D(-1,[-1,0,0,0,0,0,a[1].x,a[1].y,a[1].z,a[2].x,a[2].y,a[2].z,a[3].x,a[3].y,a[3].z]);b.init(d);b.allFractionalRelative=c;b.initUnitcellVertices();b.setCartesianOffset(a[0]);return b},"~A,~B");b.fromParams=e(b,"fromParams",function(a,c,b){var d=new JS.UnitCell;
d.init(a);d.initUnitcellVertices();d.allFractionalRelative=c;d.setPrecision(b);26<a.length&&(a[26]=b);return d},"~A,~B,~N");b.cloneUnitCell=e(b,"cloneUnitCell",function(a){var c=null;try{c=a.clone()}catch(b){if(!da(b,"CloneNotSupportedException"))throw b;}return c},"JS.UnitCell");e(b,"checkPeriodic",function(a,c,b){c=Float.isNaN(c)?-this.slop:-c;b=Float.isNaN(b)?1-this.slop:1+b;switch(this.dimension){case 3:if(a.z<c||a.z>b)return!1;case 2:if(a.y<c||a.y>b)return!1;case 1:if(a.x<c||a.x>b)return!1}return!0},
"JU.P3,~N,~N");e(b,"isWithinUnitCell",function(a,c,b,d,e){Float.isNaN(d)&&(d=this.slop);switch(this.dimension){case 3:if(e.z<b-1-d||e.z>b+d)return!1;case 2:if(e.y<c-1-d||e.y>c+d)return!1;case 1:if(e.x<a-1-d||e.x>a+d)return!1}return!0},"~N,~N,~N,~N,JU.P3");e(b,"dumpInfo",function(a,c){var b=c?this.getUnitCellMultiplied():this;return b!==this?b.dumpInfo(a,!1):"a="+this.a+", b="+this.b+", c="+this.c+", alpha="+this.alpha+", beta="+this.beta+", gamma="+this.gamma+"\noabc="+JU.Escape.eAP(this.getUnitCellVectors())+
"\nvolume="+this.volume+(a?"\nfractional to cartesian: "+this.matrixFractionalToCartesian+"\ncartesian to fractional: "+this.matrixCartesianToFractional:"")},"~B,~B");e(b,"fix000",function(a){return 0.001>Math.abs(a)?0:a},"~N");e(b,"fixFloor",function(a){return 1==a?0:a},"~N");e(b,"getCanonicalCopy",function(a,c){var b=this.getScaledCell(c);return JU.BoxInfo.getCanonicalCopy(b,a)},"~N,~B");e(b,"getCanonicalCopyTrimmed",function(a,c){var b=this.getScaledCellMult(a,!0);return JU.BoxInfo.getCanonicalCopy(b,
c)},"JU.P3,~N");e(b,"getCartesianOffset",function(){return this.cartesianOffset});e(b,"getCellWeight",function(a){var c=1;if(a.x<=this.slop||a.x>=1-this.slop)c/=2;if(a.y<=this.slop||a.y>=1-this.slop)c/=2;if(a.z<=this.slop||a.z>=1-this.slop)c/=2;return c},"JU.P3");e(b,"getConventionalUnitCell",function(a,c){var b=this.getUnitCellVectors();(!a.equals("P")||null!=c)&&this.toFromPrimitive(!1,a.charAt(0),b,c);return b},"~S,JU.M3");e(b,"getEquivalentPoints",function(a,c,b,d,e,g,h,l,k){var j=0<=c.indexOf("fromfractional");
c=0<=c.indexOf("tofractional");var m=0!=(l&1),p=0!=(l&2);l=0!=(l&4);var u=0<=a.sD,r=u?new JU.V3:null;null==d&&(d=new JU.Lst);var q=d.size(),n=JU.Point3fi.newPF(a,a.i);j||this.toFractional(n,!0);for(var j=0,x=b.length;j<x;j++){var w=JU.Point3fi.newPF(n,a.i);w.mi=j;b[j].rotTrans(w);m&&(w.x=this.fixFloor(w.x-C(Math.floor(w.x))));p&&(w.y=this.fixFloor(w.y-C(Math.floor(w.y))));l&&(w.z=this.fixFloor(w.z-C(Math.floor(w.z))));u&&(r.set(a.sX,a.sY,a.sZ),b[j].rotateSpin(r),w.sX=Math.round(r.x),w.sY=Math.round(r.y),
w.sZ=Math.round(r.z),w.sD=a.sD);d.addLast(w);q++}if(0<=k){if(!l){b=JU.P3.new3(0,0,0.5);for(j=g;j<q;j++)d.get(j).add(b)}if(!p){b=JU.P3.new3(0,0.5,0);for(j=g;j<q;j++)d.get(j).add(b)}if(!m){b=JU.P3.new3(0.5,0,0);for(j=g;j<q;j++)d.get(j).add(b)}for(j=g;j<q;j++)n.setPF(a=d.get(j)),this.unitizeRnd(n),0==n.x&&(d.addLast(JS.UnitCell.newPt(a,0,n.y,n.z,n.i)),d.addLast(JS.UnitCell.newPt(a,1,n.y,n.z,n.i)),0==n.y&&(d.addLast(JS.UnitCell.newPt(a,1,1,n.z,n.i)),d.addLast(JS.UnitCell.newPt(a,0,0,n.z,n.i)),0==n.z&&
(d.addLast(JS.UnitCell.newPt(a,1,1,1,n.i)),d.addLast(JS.UnitCell.newPt(a,0,0,0,n.i))))),0==n.y&&(d.addLast(JS.UnitCell.newPt(a,n.x,0,n.z,n.i)),d.addLast(JS.UnitCell.newPt(a,n.x,1,n.z,n.i)),0==n.z&&(d.addLast(JS.UnitCell.newPt(a,n.x,0,0,n.i)),d.addLast(JS.UnitCell.newPt(a,n.x,1,1,n.i)))),0==n.z&&(d.addLast(JS.UnitCell.newPt(a,n.x,n.y,0,n.i)),d.addLast(JS.UnitCell.newPt(a,n.x,n.y,1,n.i)),0==n.x&&(d.addLast(JS.UnitCell.newPt(a,0,n.y,0,n.i)),d.addLast(JS.UnitCell.newPt(a,1,n.y,1,n.i))));if(0<k){if(m){q=
d.size();for(j=g;j<q;j++)n.setT(a=d.get(j)),n.x<k&&d.addLast(a=JS.UnitCell.newPt(a,n.x+1,n.y,n.z,n.i)),n.x>1-k&&d.addLast(a=JS.UnitCell.newPt(a,n.x-1,n.y,n.z,n.i))}if(p){q=d.size();for(j=g;j<q;j++)n.setT(d.get(j)),n.y<k&&d.addLast(JS.UnitCell.newPt(a,n.x,n.y+1,n.z,n.i)),n.y>1-k&&d.addLast(JS.UnitCell.newPt(a,n.x,n.y-1,n.z,n.i))}if(l){q=d.size();for(j=g;j<q;j++)n.setT(d.get(j)),n.z<k&&d.addLast(JS.UnitCell.newPt(a,n.x,n.y,n.z+1,n.i)),n.z>1-k&&d.addLast(JS.UnitCell.newPt(a,n.x,n.y,n.z-1,n.i))}}q=d.size();
if(!m){b=JU.P3.new3(-0.5,0,0);for(j=g;j<q;j++)d.get(j).add(b)}if(!p){b=JU.P3.new3(0,-0.5,0);for(j=g;j<q;j++)d.get(j).add(b)}if(!l){b=JU.P3.new3(0,0,-0.5);for(j=g;j<q;j++)d.get(j).add(b)}}JS.UnitCell.removeDuplicates(d,e,h,-1);if(!c)for(j=d.size();--j>=g;)this.toCartesian(d.get(j),!0);return d},"JU.Point3fi,~S,~A,JU.Lst,~N,~N,~N,~N,~N");b.newPt=e(b,"newPt",function(a,c,b,d,e){c=JU.Point3fi.new4(c,b,d,e);c.sX=a.sX;c.sY=a.sY;c.sZ=a.sZ;c.sD=a.sD;c.mi=a.mi;return c},"JU.Point3fi,~N,~N,~N,~N");e(b,"getFractionalOffset",
function(){return this.fractionalOffset});e(b,"getInfo",function(){var a=this.getUnitCellMultiplied();if(a!==this)return a.getInfo();var a=new java.util.Hashtable,c=D(18,0);System.arraycopy(this.getUnitCellAsArray(!1),0,c,0,18);a.put("params",c);a.put("oabc",this.getUnitCellVectors());a.put("volume",Float.$valueOf(this.volume));a.put("matFtoC",this.matrixFractionalToCartesian);a.put("matCtoF",this.matrixCartesianToFractional);a.put("dimension",Integer.$valueOf(this.dimension));a.put("dimensionType",
Integer.$valueOf(this.dimensionType));a.put("isHexagonal",Boolean.$valueOf(0!=this.getInfo(8)));a.put("isRhombohedral",Boolean.$valueOf(0!=this.getInfo(9)));null!=this.fractionalOffset&&(a.put("cartesianOffset",this.cartesianOffset),a.put("fractionalOffset",this.fractionalOffset));null!=this.unitCellMultiplier&&a.put("unitCellMultiplier",this.unitCellMultiplier);null!=this.unitCellMultiplied&&a.put("unitCellMultiplied",this.unitCellMultiplied);a.put("slop",Float.$valueOf(this.slop));return a});e(b,
"getQuaternionRotation",function(a){var c=JU.V3.newVsub(this.vertices[4],this.vertices[0]),b=JU.V3.newVsub(this.vertices[2],this.vertices[0]),d=JU.V3.newVsub(this.vertices[1],this.vertices[0]),e=new JU.P3,g=new JU.P3,h="-"==a.charAt(0)?-1:1;0>h&&(a=a.substring(1));var l=a;a=JU.PT.rep(JU.PT.rep(JU.PT.rep(JU.PT.rep(JU.PT.rep(JU.PT.rep(a,"ab","A"),"bc","B"),"ca","C"),"ba","D"),"cb","E"),"ac","F");var k=(l=!l.equals(a))?1:0;2==a.length&&(k=a.charAt(1).charCodeAt(0)-48,a=a.substring(0,1));var j=0==k%2;
switch("abcABCDEF".indexOf(a)){case 7:h=-h;case 4:c.cross(d,b),k=(5-k)%4+1;default:a=c;c=d;break;case 8:h=-h;case 5:h=-h,b.cross(d,c),k=(2+k)%4+1;case 1:a=b;b=d;h=-h;break;case 3:h=-h;case 6:d.cross(c,b),j&&(k=6-k);case 2:a=d,!l&&0<k&&(k=5-k)}0<k&&0<h!=j&&(c=b,a.scale(-1));switch(k){case 2:a.scale(-1);c.scale(-1);break;case 3:c.scale(-1);break;case 4:a.scale(-1)}e.cross(a,c);g.cross(e,a);return JU.Quat.getQuaternionFrame(null,g,e).inv()},"~S");e(b,"getScaledCell",function(a){return this.getScaledCellMult(null,
a)},"~B");e(b,"getScaledCellMult",function(a,c){var b=Array(8),d=null,e=null,g=null!=a;g||(a=this.unitCellMultiplier);c&&(null!=a&&0==a.z)&&(d=new JU.P3,e=new JU.P3,JU.SimpleUnitCell.ijkToPoint3f(x(a.x),d,0,0),JU.SimpleUnitCell.ijkToPoint3f(x(a.y),e,0,0),e.sub(d));for(var h=g||null==a||0==a.z?1:Math.abs(a.z),l=0;8>l;l++){var k=b[l]=JU.P3.newP(JU.BoxInfo.unitCubePoints[l]);null!=d?b[l].add3(d.x+e.x*k.x,d.y+e.y*k.y,d.z+e.z*k.z):g&&k.scaleT(a);b[l].scale(h);this.matrixFractionalToCartesian.rotTrans(k);
c||k.sub(this.cartesianOffset)}return b},"JU.T3,~B");e(b,"getState",function(){var a="";null!=this.fractionalOffset&&0!=this.fractionalOffset.lengthSquared()&&(a+="  unitcell offset "+JU.Escape.eP(this.fractionalOffset)+";\n");null!=this.unitCellMultiplier&&(a+="  unitcell range "+JU.SimpleUnitCell.escapeMultiplier(this.unitCellMultiplier)+";\n");return a});e(b,"getTensor",function(a,c){var b=J.api.Interface.getUtil("Tensor",a,"file");if(0==c[0]&&0==c[1]&&0==c[2]){var d=c[7],e=D(-1,[d,d,d]);return b.setFromEigenVectors(JS.UnitCell.unitVectors,
e,"iso","Uiso="+d,null)}b.parBorU=c;var d=Pa(6,0),g=x(c[6]);if(12==g)d[0]=19.739208802178716*c[0],d[1]=19.739208802178716*c[1],d[2]=19.739208802178716*c[2],d[3]=39.47841760435743*c[3],d[4]=39.47841760435743*c[4],d[5]=39.47841760435743*c[5],c[7]=26.318945*(c[0]+c[1]+c[3]);else{var e=4==g||5==g||8==g||9==g,h=2-g%2,l=8==g||9==g||10==g?19.739208802178716:4==g||5==g?0.25:2==g||3==g?Math.log(2):1,g=c[0]*l*(e?this.a_*this.a_:1),k=c[1]*l*(e?this.b_*this.b_:1),j=c[2]*l*(e?this.c_*this.c_:1),m=c[3]*l*(e?this.a_*
this.b_:1)*h,p=c[4]*l*(e?this.a_*this.c_:1)*h,e=c[5]*l*(e?this.b_*this.c_:1)*h;c[7]=Math.pow(g/19.739208802178716/this.a_/this.a_*k/19.739208802178716/this.b_/this.b_*j/19.739208802178716/this.c_/this.c_,0.3333);d[0]=this.a*this.a*g+this.b*this.b*this.cosGamma*this.cosGamma*k+this.c*this.c*this.cosBeta*this.cosBeta*j+this.a*this.b*this.cosGamma*m+this.b*this.c*this.cosGamma*this.cosBeta*e+this.a*this.c*this.cosBeta*p;d[1]=this.b*this.b*this.sinGamma*this.sinGamma*k+this.c*this.c*this.cA_*this.cA_*
j+this.b*this.c*this.cA_*this.sinGamma*e;d[2]=this.c*this.c*this.cB_*this.cB_*j;d[3]=2*this.b*this.b*this.cosGamma*this.sinGamma*k+2*this.c*this.c*this.cA_*this.cosBeta*j+this.a*this.b*this.sinGamma*m+this.b*this.c*(this.cA_*this.cosGamma+this.sinGamma*this.cosBeta)*e+this.a*this.c*this.cA_*p;d[4]=2*this.c*this.c*this.cB_*this.cosBeta*j+this.b*this.c*this.cosGamma*e+this.a*this.c*this.cB_*p;d[5]=2*this.c*this.c*this.cA_*this.cB_*j+this.b*this.c*this.cB_*this.sinGamma*e}return b.setFromThermalEquation(d,
JU.Escape.eAF(c))},"JV.Viewer,~A");e(b,"getUnitCellMultiplied",function(){if(null==this.unitCellMultiplier||0<this.unitCellMultiplier.z&&this.unitCellMultiplier.z==x(this.unitCellMultiplier.z))return this;if(null==this.unitCellMultiplied){var a=JU.BoxInfo.toOABC(this.getScaledCell(!0),null);this.unitCellMultiplied=JS.UnitCell.fromOABC(a,!1)}return this.unitCellMultiplied});e(b,"getUnitCellMultiplier",function(){return this.unitCellMultiplier});e(b,"isStandard",function(){return null==this.unitCellMultiplier||
this.unitCellMultiplier.x==this.unitCellMultiplier.y});e(b,"getUnitCellVectors",function(){var a=this.matrixFractionalToCartesian;return E(-1,[JU.P3.newP(this.cartesianOffset),JU.P3.new3(this.fix000(a.m00),this.fix000(a.m10),this.fix000(a.m20)),JU.P3.new3(this.fix000(a.m01),this.fix000(a.m11),this.fix000(a.m21)),JU.P3.new3(this.fix000(a.m02),this.fix000(a.m12),this.fix000(a.m22))])});b.toTrm=e(b,"toTrm",function(a,c){null==c&&(c=new JU.M4);JS.UnitCell.getMatrixAndUnitCell(null,null,a,c);return c},
"~S,JU.M4");b.getMatrixAndUnitCell=e(b,"getMatrixAndUnitCell",function(a,c,b,d){null==b&&(b="a,b,c");var e=Array(4),g=e[0]=JU.P3.new3(0,0,0);e[1]=JU.P3.new3(1,0,0);e[2]=JU.P3.new3(0,1,0);e[3]=JU.P3.new3(0,0,1);var h=new JU.M3;if(JU.AU.isAD(b))return JU.SimpleUnitCell.setAbcFromParams(b,e);var l="string"==typeof b;l&&0<=b.indexOf("(")&&(b=JU.SimpleUnitCell.parseSimpleMath(a,b));if(l&&"["==b.charAt(0)){b=JU.Escape.unescapeMatrix(b);if(L(b,"JU.M3"))b=JU.M4.newMV(b,new JU.P3);else if(!L(b,"JU.M4"))return null;
null!=d&&(d.setM4(b),d=null);l=!1}if(l){var k=b,j,m=null;if(0==k.indexOf("a="))return JU.SimpleUnitCell.setAbc(k,null,e);if(0<k.indexOf(">")){if(null!=c||null==d)return null;c=k.$plit(">");d.setIdentity();g=new JU.M4;for(a=c.length;0<=--a;)JS.UnitCell.getMatrixAndUnitCell(null,null,c[a],g),d.mul2(g,d);return e}b=Array(1);l=k.indexOf(";");0<=l?(j=k.substring(l+1).trim(),k=k.substring(0,l),b[0]=k,m=JS.UnitCell.fixABC(b),k!==b[0]&&(k=b[0])):k.equals("a,b,c")?j=null:(0<k.indexOf("w")&&(k=k.$replace("u",
"x").$replace("v","y").$replace("w","z")),b[0]=k,j=JS.UnitCell.fixABC(b),k=b[0]);for(k+=";0,0,0";k.startsWith("!!");)k=k.substring(2);(b=k.startsWith("!"))&&(k=k.substring(1));k.equals("r;0,0,0")?k="2/3a+1/3b+1/3c,-1/3a+1/3b+1/3c,-1/3a-2/3b+1/3c"+k.substring(1):k.equals("h;0,0,0")&&(k="a-b,b-c,a+b+c"+k.substring(1));if((l=0>k.indexOf("x")&&(0<=k.indexOf("a")||0<=k.indexOf("b")||0<=k.indexOf("c")))&&0<=k.indexOf("*")&&null!=c)j=JU.M4.newM4(null),m=JS.UnitCell.getMatrixAndUnitCell(a,c,"a,b,c",j),JS.UnitCell.getMatrixAndUnitCell(a,
null,k.$replace("*"," "),j),k=gb(-1,[0<=k.indexOf("a*"),0<=k.indexOf("b*"),0<=k.indexOf("c*")]),a=JU.M4.newM4(null),JS.UnitCell.adjustForReciprocal(c,m,j,k,a,e),c=null;else{var p=new JS.Symmetry;p.setSpaceGroup(!1);a=p.addSpaceGroupOperation("="+k,0);if(0>a)return null;a=p.getSpaceGroupOperation(a);a.doFinalize();k=new JU.P3;JS.UnitCell.addTrans(j,k);JS.UnitCell.addTrans(m,k);a.setTranslation(k)}l&&a.transpose33();b&&a.invert();null!=d&&d.setM4(a);if(null==c)return e}else{if(null!=d||null==c)return null;
if(L(b,"JU.M3"))a=JU.M4.newMV(b,new JU.P3);else if(L(b,"JU.M4"))a=b;else{a=b[0];a.getRotationScale(h);a.rotTrans(g);c.toCartesian(g,!1);for(a=1;4>a;a++)h.rotate(e[a]),c.toCartesian(e[a],!0);return e}}a.getRotationScale(h);a.getTranslation(g);c.toCartesian(g,!1);for(a=1;4>a;a++)h.rotate(e[a]),c.toCartesian(e[a],!0);return e},"JV.Viewer,JU.SimpleUnitCell,~O,JU.M4");b.adjustForReciprocal=e(b,"adjustForReciprocal",function(a,c,b,d,e,g){var h=Array(4);JU.SimpleUnitCell.getReciprocal(c,h,1);for(var l=new JU.P3,
k=D(4,0),j=1;3>=j;j++){var m=new JU.P3;b.getColumn(j-1,k);for(var p=0;3>p;p++)0!=k[p]&&m.scaleAdd2(k[p],d[p]?h[1+p]:c[1+p],m);g[j]=m;l.setP(m);a.toFractional(l,!0);e.setColumn4(j-1,JS.UnitCell.fixZero(l.x,1E-10),JS.UnitCell.fixZero(l.y,1E-10),JS.UnitCell.fixZero(l.z,1E-10),0)}},"JU.SimpleUnitCell,~A,JU.M4,~A,JU.M4,~A");b.fixZero=e(b,"fixZero",function(a,c){return Math.abs(a)<c?0:a},"~N,~N");b.addTrans=e(b,"addTrans",function(a,c){if(null!=a){var b=JU.PT.split(a,","),d=D(3,0);if(3==b.length)for(var e=
0;3>e;e++){var g=b[e],h=g.indexOf("/");d[e]=0<=h?JU.PT.parseFloat(g.substring(0,h))/JU.PT.parseFloat(g.substring(h+1)):JU.PT.parseFloat(g)}c.add3(d[0],d[1],d[2])}},"~S,JU.P3");b.fixABC=e(b,"fixABC",function(a){var c=JU.PT.split(a[0],",");if(3!=c.length)return null;for(var b="",d="",e=!1,g=0;3>g;g++){var h=c[g],l,k=0;for(l=h.length;0<=--l;){var j=h.charAt(l);switch(j.charCodeAt(0)){default:"a"<=j&&(l=0);break;case 43:k=1;case 45:l=-l}}l=-1-l;0==l?(b+=",0",d+=","+h):(e=!0,b+=","+h.substring(l+k),d+=
","+h.substring(0,l))}a[0]=d.substring(1);return e?b.substring(1):null},"~A");e(b,"getVertices",function(){return this.vertices});e(b,"hasOffset",function(){return null!=this.fractionalOffset&&0!=this.fractionalOffset.lengthSquared()});e(b,"initOrientation",function(a){if(null!=a){var c=new JU.M4;c.setToM3(a);this.matrixFractionalToCartesian.mul2(c,this.matrixFractionalToCartesian);this.matrixCartesianToFractional.setM4(this.matrixFractionalToCartesian).invert();this.initUnitcellVertices()}},"JU.M3");
e(b,"initUnitcellVertices",function(){if(null!=this.matrixFractionalToCartesian){this.matrixCtoFNoOffset=JU.M4.newM4(this.matrixCartesianToFractional);this.matrixFtoCNoOffset=JU.M4.newM4(this.matrixFractionalToCartesian);this.vertices=Array(8);for(var a=8;0<=--a;)this.vertices[a]=this.matrixFractionalToCartesian.rotTrans2(JU.BoxInfo.unitCubePoints[a],new JU.P3)}});e(b,"isSameAs",function(a){if(null==a)return!1;for(var c=this.getF2C(),b=0;3>b;b++)for(var d=0;4>d;d++)if(!JU.SimpleUnitCell.approx0(c[b][d]-
a[b][d]))return!1;return!0},"~A");e(b,"getF2C",function(){if(null==this.f2c){this.f2c=D(3,4,0);for(var a=0;3>a;a++)this.matrixFractionalToCartesian.getRow(a,this.f2c[a])}return this.f2c});e(b,"setCartesianOffset",function(a){this.cartesianOffset.setT(a);this.matrixFractionalToCartesian.m03=this.cartesianOffset.x;this.matrixFractionalToCartesian.m13=this.cartesianOffset.y;this.matrixFractionalToCartesian.m23=this.cartesianOffset.z;a=this.hasOffset();this.fractionalOffset=JU.P3.newP(this.cartesianOffset);
this.matrixCartesianToFractional.rotate(this.fractionalOffset);this.matrixCartesianToFractional.m03=-this.fractionalOffset.x;this.matrixCartesianToFractional.m13=-this.fractionalOffset.y;this.matrixCartesianToFractional.m23=-this.fractionalOffset.z;this.allFractionalRelative&&(this.matrixCtoFNoOffset.setM4(this.matrixCartesianToFractional),this.matrixFtoCNoOffset.setM4(this.matrixFractionalToCartesian));!a&&0==this.fractionalOffset.lengthSquared()&&(this.fractionalOffset=null);this.f2c=null},"JU.T3");
e(b,"setOffset",function(a){if(null!=a){this.unitCellMultiplied=null;var c=L(a,"JU.T4")?a:null,b=null==c?1.4E-45:c.w,d=999999<b;if(null!=c?0>=b||d:100<=a.x||100<=a.y)if(this.unitCellMultiplier=0==a.z&&a.x==a.y&&!d?null:d?JU.P4.newPt(c):JU.P3.newP(a),this.unitCellMultiplied=null,null==c||0==c.w||d)return;if(this.hasOffset()||0<a.lengthSquared())this.fractionalOffset=JU.P3.newP(a);this.matrixCartesianToFractional.m03=-a.x;this.matrixCartesianToFractional.m13=-a.y;this.matrixCartesianToFractional.m23=
-a.z;this.cartesianOffset.setT(a);this.matrixFractionalToCartesian.rotate(this.cartesianOffset);this.matrixFractionalToCartesian.m03=this.cartesianOffset.x;this.matrixFractionalToCartesian.m13=this.cartesianOffset.y;this.matrixFractionalToCartesian.m23=this.cartesianOffset.z;this.allFractionalRelative&&(this.matrixCtoFNoOffset.setM4(this.matrixCartesianToFractional),this.matrixFtoCNoOffset.setM4(this.matrixFractionalToCartesian));this.f2c=null}},"JU.T3");e(b,"toFromPrimitive",function(a,c,b,d){var e=
b.length-3,g=null;if("r"==c||null==d){switch(c.charCodeAt(0)){default:return!1;case 114:return JU.SimpleUnitCell.getReciprocal(b,b,1),!0;case 80:a=!0;case 65:case 66:case 67:case 82:case 73:case 70:g=JS.UnitCell.getPrimitiveTransform(c)}a||g.invert()}else g=JU.M3.newM3(d),a&&g.invert();for(a=b.length;--a>=e;)c=b[a],this.toFractional(c,!0),g.rotate(c),this.toCartesian(c,!0);return!0},"~B,~S,~A,JU.M3");b.getPrimitiveTransform=e(b,"getPrimitiveTransform",function(a){switch(a.charCodeAt(0)){case 80:return JU.M3.newA9(D(-1,
[1,0,0,0,1,0,0,0,1]));case 65:return JU.M3.newA9(D(-1,[1,0,0,0,0.5,0.5,0,-0.5,0.5]));case 66:return JU.M3.newA9(D(-1,[0.5,0,0.5,0,1,0,-0.5,0,0.5]));case 67:return JU.M3.newA9(D(-1,[0.5,0.5,0,-0.5,0.5,0,0,0,1]));case 82:return JU.M3.newA9(D(-1,[0.6666667,-0.33333334,-0.33333334,0.33333334,0.33333334,-0.6666667,0.33333334,0.33333334,0.33333334]));case 73:return JU.M3.newA9(D(-1,[-0.5,0.5,0.5,0.5,-0.5,0.5,0.5,0.5,-0.5]));case 70:return JU.M3.newA9(D(-1,[0,0.5,0.5,0.5,0,0.5,0.5,0.5,0]))}return null},
"~S");e(b,"toUnitCell",function(a,c){null!=this.matrixCartesianToFractional&&(null==c?(this.matrixCartesianToFractional.rotTrans(a),this.unitize(a),this.matrixFractionalToCartesian.rotTrans(a)):(this.matrixCtoFNoOffset.rotTrans(a),this.unitize(a),a.add(c),this.matrixFtoCNoOffset.rotTrans(a)))},"JU.T3,JU.T3");e(b,"toUnitCellRnd",function(a,c){null!=this.matrixCartesianToFractional&&(null==c?(this.matrixCartesianToFractional.rotTrans(a),this.unitizeRnd(a),this.matrixFractionalToCartesian.rotTrans(a)):
(this.matrixCtoFNoOffset.rotTrans(a),this.unitizeRnd(a),a.add(c),this.matrixFtoCNoOffset.rotTrans(a)))},"JU.T3,JU.T3");e(b,"unitize",function(a){this.unitizeDim(this.dimension,a)},"JU.T3");e(b,"unitizeRnd",function(a){JU.SimpleUnitCell.unitizeDimRnd(this.dimension,a,this.slop)},"JU.T3");b.removeDuplicates=e(b,"removeDuplicates",function(a,c,b,d){for(0>d&&(d=a.size());c<d;c++)for(var e=a.get(c),g=Math.max(c+1,b);g<d;g++)1.96E-6>a.get(g).distanceSquared(e)&&(a.removeItemAt(g),d--,g--)},"JU.Lst,~N,~N,~N");
e(b,"getCenter",function(a){var c=new JU.P3,b=this.getCartesianOffset(),d=this.getVertices(),e;switch(a){default:case 7:a=8;e=1;break;case 3:a=8;e=2;break;case 4:a=2;e=1;break;case 2:a=3;e=2;break;case 1:a=8,e=4}for(var g=0,h=0;h<a;h+=e)c.add(d[h]),c.add(b),g++;c.scale(1/g);return c},"~N");e(b,"setSpinAxisAngle",function(a){null==this.moreInfo&&(this.moreInfo=new JU.Lst);for(var c="rotation_axis_xyz=",b=-1,d=-1,e=this.moreInfo.size();0<=--e&&(0>b||0>d);){var g=this.moreInfo.get(e);g.startsWith(c)?
b=e:g.startsWith("rotation_angle=")&&(d=e)}e=JU.Quat.newAA(a);g=new JU.V3;null==JS.UnitCell.v0&&(JS.UnitCell.v0=JU.V3.new3(3.141592653589793,2.718281828459045,Math.sqrt(2)));g=e.getNormalDirected(JS.UnitCell.v0);JU.V3.newV(a);this.toFractional(g,!0);g.normalize();a=this.getAxisMultiplier(g);c+=""+Math.round(g.x*a)+","+Math.round(g.y*a)+","+Math.round(g.z*a);0>b?(this.moreInfo.addLast(c),d>b&&d++):this.moreInfo.set(b,c);a=C(Math.round(1E3*e.getThetaDirectedV(JS.UnitCell.v0))/1E3);c="rotation_angle="+
(a==Math.round(a)?""+Math.round(a):JS.UnitCell.round000(a));0>d?this.moreInfo.addLast(c):this.moreInfo.set(d,c)},"JU.A4");e(b,"getAxisMultiplier",function(a){if(JS.UnitCell.approx00(a.x-Math.round(a.x))&&JS.UnitCell.approx00(a.y-Math.round(a.y))&&JS.UnitCell.approx00(a.z-Math.round(a.z)))return 1;var c=Math.min(JS.UnitCell.approx00(a.x)?1E4:Math.abs(a.x),JS.UnitCell.approx00(a.y)?1E4:Math.min(Math.abs(a.y),JS.UnitCell.approx00(a.z)?1E4:Math.abs(a.z)));return JS.UnitCell.approx01(a.x/c)&&JS.UnitCell.approx01(a.y/
c)&&JS.UnitCell.approx01(a.z/c)?1/c:1E3},"JU.V3");b.approx01=e(b,"approx01",function(a){a%=1;return JS.UnitCell.approx00(a)||0.999<Math.abs(a)},"~N");b.approx00=e(b,"approx00",function(a){return 0.001>Math.abs(a)},"~N");b.round000=e(b,"round000",function(a){a=Math.round(1E3*a)/1E3;return a==Math.round(a)?""+Math.round(a):""+a},"~N");e(b,"setMoreInfo",function(a){this.moreInfo=a},"JU.Lst");e(b,"getMoreInfo",function(){return this.moreInfo});b.setSymmetryMinMax=e(b,"setSymmetryMinMax",function(a,c,
b){c.x>a.x&&(c.x=a.x);c.y>a.y&&(c.y=a.y);c.z>a.z&&(c.z=a.z);b.x<a.x&&(b.x=a.x);b.y<a.y&&(b.y=a.y);b.z<a.z&&(b.z=a.z)},"JU.P3,JU.P3,JU.P3");e(b,"adjustRangeMinMax",function(a,c,b,d,e,g,h,l){null==e&&(e=JU.P3.new3(3.4028235E38,3.4028235E38,3.4028235E38),g=JU.P3.new3(-3.4028235E38,-3.4028235E38,-3.4028235E38));var k=new JU.P3,j=new JU.P3,m=new JU.P3;Float.isNaN(c)||(k.setT(a[1]),j.setT(a[2]),m.setT(a[3]),k.scale(c),j.scale(c),m.scale(c));null!=b&&(a[0].scaleAdd2(b.x,a[1],a[0]),a[0].scaleAdd2(b.y,a[2],
a[0]),a[0].scaleAdd2(b.z,a[3],a[0]));a[0].sub(k);a[0].sub(j);a[0].sub(m);c=JU.P3.newP(a[0]);this.toFractional(c,!0);JS.UnitCell.setSymmetryMinMax(c,e,g);null!=b&&(a[1].scale(d.x-b.x),a[2].scale(d.y-b.y),a[3].scale(d.z-b.z));a[1].scaleAdd2(2,k,a[1]);a[2].scaleAdd2(2,j,a[2]);a[3].scaleAdd2(2,m,a[3]);for(b=0;3>b;b++)for(d=b+1;4>d;d++)c.add2(a[b],a[d]),0!=b&&c.add(a[0]),this.toFractional(c,!1),JS.UnitCell.setSymmetryMinMax(c,e,g);this.toCartesian(c,!1);c.add(a[1]);this.toFractional(c,!1);JS.UnitCell.setSymmetryMinMax(c,
e,g);h.set(C(Math.min(0,Math.floor(e.x+0.001))),C(Math.min(0,Math.floor(e.y+0.001))),C(Math.min(0,Math.floor(e.z+0.001))));l.set(C(Math.max(1,Math.ceil(g.x-0.001))),C(Math.max(1,Math.ceil(g.y-0.001))),C(Math.max(1,Math.ceil(g.z-0.001))))},"~A,~N,JU.P3i,JU.P3i,JU.P3,JU.P3,JU.P3i,JU.P3i");e(b,"toFractionalSpin",function(a){null==this.spinFrameToCartXYZ?this.toFractional(a,!0):(null==this.spinFrameFromCartXYZ&&(this.spinFrameFromCartXYZ=JU.M3.newM3(this.spinFrameToCartXYZ),this.spinFrameFromCartXYZ.invert()),
this.spinFrameFromCartXYZ.rotate(a))},"JU.T3");e(b,"toCartesianSpin",function(a){null==this.spinFrameFromCartXYZ?this.toCartesian(a,!0):this.spinFrameToCartXYZ.rotate(a)},"JU.T3");e(b,"getQuaternionRotationForHKL",function(a,c){var b=new JU.P3;this.toCartesian(b,!1);var d=new JU.V3,e=new JU.V3;JU.Measure.getPlaneProjection(b,c,e,d);e=0;null==a&&(a=JU.P3.new3(1,1,1));0!=a.x&&(e|=4);0!=a.y&&(e|=2);0!=a.z&&(e|=1);b=new JU.V3;switch(e){case 1:b.x=-1;break;case 2:b.z=-1;break;case 4:b.y=-1;break;case 3:b.x=
1;break;case 5:b.y=1;break;case 6:b.z=1;break;case 7:b.x=1}var e=new JU.V3,g=new JU.V3;e.cross(d,b);g.cross(e,d);e.cross(g,d);g.normalize();e.normalize();return JU.Quat.getQuaternionFrame(null,e,g)},"JU.T3,JU.P4");b.unitVectors=E(-1,[JV.JC.axisX,JV.JC.axisY,JV.JC.axisZ]);b.v0=null});aa("JS");$(["J.api.AtomIndexIterator"],"JS.UnitCellIterator","JU.Lst $.P3 $.P3i JU.BoxInfo $.Logger $.Point3fi".split(" "),function(){var b=M(function(){this.translation=this.center=this.atoms=null;this.distance2=this.maxDistance2=
this.nFound=0;this.p=this.t=this.maxXYZ=this.minXYZ=this.unitCell=null;this.ipt=-2147483648;this.unitList=null;this.done=!1;this.listPt=this.nAtoms=0;S(this,arguments)},JS,"UnitCellIterator",null,J.api.AtomIndexIterator);e(b,"set",function(a,c,b,d,e){this.unitCell=a;this.atoms=b;this.addAtoms(d);this.p=new JU.P3;0<e&&this.setCenter(c,e);return this},"J.api.SymmetryInterface,JM.Atom,~A,JU.BS,~N");m(b,"setModel",function(){},"JM.ModelSet,~N,~N,~N,JU.T3,~N,J.atomdata.RadiusData");m(b,"setCenter",function(a,
c){if(0!=c){this.maxDistance2=c*c;this.center=a;this.translation=new JU.P3;var b=JU.BoxInfo.unitCubePoints,d=JU.P3.new3(3.4028235E38,3.4028235E38,3.4028235E38),e=JU.P3.new3(-3.4028235E38,-3.4028235E38,-3.4028235E38);this.p=new JU.P3;var g=new JU.P3;g.setT(a);this.unitCell.toFractional(g,!0);for(g=0;8>g;g++)this.p.scaleAdd2(-2,b[g],b[7]),this.p.scaleAdd2(c,this.p,a),this.unitCell.toFractional(this.p,!0),d.x>this.p.x&&(d.x=this.p.x),e.x<this.p.x&&(e.x=this.p.x),d.y>this.p.y&&(d.y=this.p.y),e.y<this.p.y&&
(e.y=this.p.y),d.z>this.p.z&&(d.z=this.p.z),e.z<this.p.z&&(e.z=this.p.z);this.minXYZ=JU.P3i.new3(C(Math.floor(d.x)),C(Math.floor(d.y)),C(Math.floor(d.z)));this.maxXYZ=JU.P3i.new3(C(Math.ceil(e.x)),C(Math.ceil(e.y)),C(Math.ceil(e.z)));JU.Logger.debugging&&JU.Logger.info("UnitCellIterator minxyz/maxxyz "+this.minXYZ+" "+this.maxXYZ);this.t=JU.P3i.new3(this.minXYZ.x-1,this.minXYZ.y,this.minXYZ.z);this.nextCell()}},"JU.T3,~N");m(b,"addAtoms",function(a){this.done=null==a;if(!this.done){this.unitList=
new JU.Lst;for(var c="",b=this.unitCell.getSymmetryOperations(),d=b.length,e=a.nextSetBit(0);0<=e;e=a.nextSetBit(e+1))for(var g=this.atoms[e],h=0;h<d;h++){var l=new JU.P3;l.setT(g);0<h?(this.unitCell.toFractional(l,!1),b[h].rotTrans(l),this.unitCell.unitize(l),this.unitCell.toCartesian(l,!1)):this.unitCell.toUnitCell(l,null);var k="_"+x(100*l.x)+"_"+x(100*l.y)+"_"+x(100*l.z)+"_";0<=c.indexOf(k)||(c+=k,this.unitList.addLast(E(-1,[g,l])))}this.nAtoms=this.unitList.size();this.done=0==this.nAtoms;JU.Logger.debugging&&
JU.Logger.info("UnitCellIterator "+this.nAtoms+" unique points found")}},"JU.BS");m(b,"hasNext",function(){for(;this.ipt<this.nAtoms||this.nextCell();)if(this.p.add2(this.unitList.get(this.listPt=this.ipt++)[1],this.translation),(this.distance2=this.p.distanceSquared(this.center))<this.maxDistance2&&0.1<this.distance2)return this.nFound++,!0;return!1});e(b,"nextCell",function(){if(this.done)return!1;if(++this.t.x>=this.maxXYZ.x&&(this.t.x=this.minXYZ.x,++this.t.y>=this.maxXYZ.y&&(this.t.y=this.minXYZ.y,
++this.t.z>=this.maxXYZ.z)))return this.done=!0,this.ipt=this.nAtoms,!1;this.translation.set(this.t.x,this.t.y,this.t.z);this.unitCell.toCartesian(this.translation,!1);this.ipt=0;return!0});m(b,"next",function(){return this.done||0>this.ipt?-1:this.getAtom().i});e(b,"getAtom",function(){return this.unitList.get(this.listPt)[0]});m(b,"foundDistance2",function(){return 0<this.nFound?this.distance2:3.4028235E38});m(b,"getPosition",function(){var a=this.getAtom();JU.Logger.debugging&&JU.Logger.info("draw ID p_"+
this.nFound+" "+this.p+" //"+a+" "+this.t);if(1E-4>this.p.distanceSquared(a))return a;var c=JU.Point3fi.newPF(this.p,a.i);c.sD=a.getElementNumber();return c});m(b,"release",function(){this.translation=this.center=this.atoms=null})});aa("JS");$(["java.util.Hashtable","JU.P3","$.V3"],"JS.WyckoffFinder","JU.Lst $.M4 $.Measure $.P4 $.PT $.SB JS.SpaceGroup $.Symmetry $.SymmetryOperation".split(" "),function(){var b=M(function(){this.positions=null;this.ncent=this.npos=0;this.gpos=this.centeringStr=this.centerings=
null;S(this,arguments)},JS,"WyckoffFinder",null);V(b,function(a){if(null!=a){var b=a.get("gp");this.gpos=new JU.Lst;this.gpos.addAll(b);a=a.get("wpos");this.positions=a.get("pos");this.npos=this.positions.size();a=a.get("cent");if(null!=a){this.ncent=a.size();this.centeringStr=Array(this.ncent);this.centerings=Array(this.ncent);for(b=this.ncent;0<=--b;){var d=a.get(b);this.centeringStr[b]=d;this.centerings[b]=JS.SymmetryOperation.toPoint(d,null)}}}},"java.util.Map");e(b,"getWyckoffFinder",function(a,
b){var d=b.getClegId(),e=JS.WyckoffFinder.helpers.get(d);if(null!=e)return e;e=JS.WyckoffFinder.createHelper(a,d,b.groupType);null==e?(null==JS.WyckoffFinder.nullHelper&&(JS.WyckoffFinder.nullHelper=new JS.WyckoffFinder(null)),JS.WyckoffFinder.helpers.put(d,JS.WyckoffFinder.nullHelper)):JS.WyckoffFinder.helpers.put(d,e);return e},"JV.Viewer,JS.SpaceGroup");e(b,"findPositionFor",function(a,b){if(null!=this.positions)for(var d=b.equals("G"),e=d?1:this.npos;0<=--e;){var g=this.positions.get(e),h=g.get("label");
if(d||h.equals(b))return d=g.get("coord"),null!=d&&JS.WyckoffFinder.getWyckoffCoord(d,0,h).project(a),a}return null},"JU.P3,~S");e(b,"getInfo",function(a,b,d,e,g){a=this.createInfo(a,b,d,e,g);return null==a?"?":a},"JS.UnitCell,JU.P3,~N,~B,~B");b.wrap=e(b,"wrap",function(a,b){return b.appendC("(").append(a).appendC(")")},"~S,JU.SB");e(b,"createInfo",function(a,b,d,e){switch(d){case 83:return this.getCenteringStr(-1," ",null).toString().trim();case 67:e=Array(this.centerings.length);for(var g=e.length;0<=
--g;)e[g]=this.centerings[g];return e;case 42:var h=new JU.SB;this.getCenteringStr(-1,"+",h);for(g=this.npos;0<=--g;){var l=this.positions.get(g),k=(e?""+l.get("mult"):"")+l.get("label");h.appendC("\n").append(k);JS.WyckoffFinder.getList(0==g?this.gpos:l.get("coord"),k,h,0==g?this.ncent:0)}return h.toString();case -4:e=Array(this.npos);for(g=0;g<this.npos;g++)l=this.positions.get(g),e[g]=this.findPositionFor(JU.P3.newP(b),l.get("label")),a.toCartesian(e[g],!1);return E(-1,[e,"AlB C D FeF GaHeI GeK LiMgN OsP CaRhS T U V W XeYbZnAm"]);
case -1:case -2:case -3:for(g=this.npos;0<=--g;){l=this.positions.get(g);k=(e?""+l.get("mult"):"")+l.get("label");if(0==g)switch(d){case -1:return k;case -2:return"(x,y,z)";case -3:return a=new JU.SB,a.append(k).appendC(" "),this.getCenteringStr(-1,"+",a).appendC(" "),JS.WyckoffFinder.getList(this.gpos,k,a,this.ncent),a.toString()}for(var h=l.get("coord"),l=0,j=h.size();l<j;l++){var m=JS.WyckoffFinder.getWyckoffCoord(h,l,k);if(m.contains(this,a,b))switch(d){case -1:return k;case -2:return m.asString(null,
!0).toString();case -3:return a=new JU.SB,a.append(k).appendC(" "),this.getCenteringStr(-1,"+",a).appendC(" "),JS.WyckoffFinder.getList(h,k,a,0),a.toString()}}}break;default:j=""+String.fromCharCode(d);h=71==d;b=new JU.P3;for(g=h?1:this.npos;0<=--g;)if(l=this.positions.get(g),k=l.get("label"),h||k.equals(j)){a=new JU.SB;h&&a.append(k).appendC(" ");h=0==g?this.gpos:l.get("coord");JS.WyckoffFinder.getList(h,(e?l.get("mult"):"")+j,a,0);if(0<g&&0<this.ncent){g=new JU.M4;for(e=0;e<this.ncent;e++)this.addCentering(h,
this.centerings[e],g,b,a)}return a.toString()}}return null},"JS.UnitCell,JU.P3,~N,~B,~B");b.createHelper=e(b,"createHelper",function(a,b,d){var e=0<d?b.substring(2):b,g=e.indexOf(":"),e=JU.PT.parseInt(0>g?e:e.substring(0,g));if(!JS.SpaceGroup.isInRange(e,d,!1,!1))return null;d=JS.Symmetry.getITJSONResource(a,d,e,null);if(null==d)return null;d=d.get("its");for(var g=null,h=!1,l=0,k=d.size();l<k;l++)if(g=d.get(l),b.equals(g.get("clegId"))){h=!0;break}if(!h||g.containsKey("more"))g=JS.SpaceGroup.fillMoreData(a,
h?g:null,b,e,d.get(0));return new JS.WyckoffFinder(g)},"JV.Viewer,~S,~N");e(b,"getCenteringStr",function(a,b,d){null==d&&(d=new JU.SB);if(0==this.ncent)return d;if(0<=a)return d.appendC(b),JS.WyckoffFinder.wrap(this.centeringStr[a],d);for(a=0;a<this.ncent;a++)d.appendC(b),JS.WyckoffFinder.wrap(this.centeringStr[a],d);return d},"~N,~S,JU.SB");b.getList=e(b,"getList",function(a,b,d,e){null==d&&(d=new JU.SB);e=0==e?a.size():C(a.size()/(e+1));for(var g=0;g<e;g++){var h=JS.WyckoffFinder.getWyckoffCoord(a,
g,b);d.append(" ");h.asString(d,!1)}return d},"JU.Lst,~S,JU.SB,~N");e(b,"addCentering",function(a,b,d,e,g){for(var h=a.size(),l=0;l<h;l++){var k=a.get(l);g.append(" ");k.asStringCentered(b,d,e,g)}},"JU.Lst,JU.P3,JU.M4,JU.P3,JU.SB");b.getWyckoffCoord=e(b,"getWyckoffCoord",function(a,b,d){var e=a.get(b);"string"==typeof e&&a.set(b,e=new JS.WyckoffFinder.WyckoffCoord(e,d));return e},"JU.Lst,~N,~S");var a=M(function(){this.type=0;this.label=this.xyz=null;this.thisCentering="";this.plane=this.line=this.point=
this.op=null;S(this,arguments)},JS.WyckoffFinder,"WyckoffCoord",null);V(a,function(a,b){this.xyz=a;this.label=b;this.create(a)},"~S,~S");e(a,"asStringCentered",function(a,b,d,e){b.setM4(this.op);b.add(a);b.getTranslation(d);d.x%=1;d.y%=1;d.z%=1;b.setTranslation(d);e.appendC(" ");a=","+JS.SymmetryOperation.getXYZFromMatrixFrac(b,!1,!0,!1,!0,!1,null)+",";a=JU.PT.rep(a,",,",",0,");a=JU.PT.rep(a,",+",",");e.appendC("(").append(a.substring(1,a.length-1)).appendC(")")},"JU.P3,JU.M4,JU.P3,JU.SB");e(a,"contains",
function(a,b,d){var e=b.getPrecision();this.thisCentering=null;if(this.checkLatticePt(d,e))return!0;if(null==a.centerings)return!1;for(var g=a.centerings.length;0<=--g;)if(JS.WyckoffFinder.WyckoffCoord.pc.add2(d,a.centerings[g]),b.unitize(JS.WyckoffFinder.WyckoffCoord.pc),this.checkLatticePt(JS.WyckoffFinder.WyckoffCoord.pc,e))return this.thisCentering=a.centeringStr[g],!0;return!1},"JS.WyckoffFinder,JS.UnitCell,JU.P3");e(a,"project",function(a){switch(this.type){case 1:a.setT(this.point);break;case 2:JU.Measure.projectOntoAxis(a,
this.point,this.line,JS.WyckoffFinder.WyckoffCoord.vt);break;case 3:JU.Measure.getPlaneProjection(a,this.plane,JS.WyckoffFinder.WyckoffCoord.vt,JS.WyckoffFinder.WyckoffCoord.vt),a.setT(JS.WyckoffFinder.WyckoffCoord.vt)}},"JU.P3");e(a,"asString",function(a,b){null==a&&(a=new JU.SB);JS.WyckoffFinder.wrap(this.xyz,a);b&&null!=this.thisCentering&&(a.appendC("+"),JS.WyckoffFinder.wrap(this.thisCentering,a));return a},"JU.SB,~B");e(a,"checkLatticePt",function(a,b){if(this.checkPoint(a,b))return!0;for(var d=
62,e=-2;3>e;e++)for(var g=-2;3>g;g++)for(var h=-2;3>h;h++,d--)if(0!=d&&(JS.WyckoffFinder.WyckoffCoord.p3.set(e,g,h),JS.WyckoffFinder.WyckoffCoord.p3.add(a),this.checkPoint(JS.WyckoffFinder.WyckoffCoord.p3,b)))return System.out.println(this.label+" "+this.xyz+" found for "+e+" "+g+" "+h),!0;return!1},"JU.P3,~N");e(a,"checkPoint",function(a,b){var d=1;switch(this.type){case 1:d=this.point.distance(a);break;case 2:JS.WyckoffFinder.WyckoffCoord.p1.setT(a);JU.Measure.projectOntoAxis(JS.WyckoffFinder.WyckoffCoord.p1,
this.point,this.line,JS.WyckoffFinder.WyckoffCoord.vt);d=JS.WyckoffFinder.WyckoffCoord.p1.distance(a);break;case 3:d=Math.abs(JU.Measure.getPlaneProjection(a,this.plane,JS.WyckoffFinder.WyckoffCoord.vt,JS.WyckoffFinder.WyckoffCoord.vt))}return d<b},"JU.P3,~N");e(a,"create",function(a){var b=(0<=a.indexOf("x")?1:0)+(0<=a.indexOf("y")?1:0)+(0<=a.indexOf("z")?1:0),d=D(16,0),e=JU.PT.split(this.xyz,",");JS.WyckoffFinder.WyckoffCoord.getRow(e[0],d,0);JS.WyckoffFinder.WyckoffCoord.getRow(e[1],d,4);JS.WyckoffFinder.WyckoffCoord.getRow(e[2],
d,8);d[15]=1;this.op=JU.M4.newA16(d);switch(b){case 0:this.type=1;this.point=JS.SymmetryOperation.toPoint(a,null);break;case 1:this.type=2;JS.WyckoffFinder.WyckoffCoord.p1.set(0.19,0.53,0.71);this.op.rotTrans(JS.WyckoffFinder.WyckoffCoord.p1);JS.WyckoffFinder.WyckoffCoord.p2.set(0.51,0.27,0.64);this.op.rotTrans(JS.WyckoffFinder.WyckoffCoord.p2);JS.WyckoffFinder.WyckoffCoord.p2.sub2(JS.WyckoffFinder.WyckoffCoord.p2,JS.WyckoffFinder.WyckoffCoord.p1);JS.WyckoffFinder.WyckoffCoord.p2.normalize();this.point=
JU.P3.newP(JS.WyckoffFinder.WyckoffCoord.p1);this.line=JU.V3.newV(JS.WyckoffFinder.WyckoffCoord.p2);break;case 2:this.type=3,JS.WyckoffFinder.WyckoffCoord.p1.set(0.19,0.51,0.73),this.op.rotTrans(JS.WyckoffFinder.WyckoffCoord.p1),JS.WyckoffFinder.WyckoffCoord.p2.set(0.23,0.47,0.86),this.op.rotTrans(JS.WyckoffFinder.WyckoffCoord.p2),JS.WyckoffFinder.WyckoffCoord.p3.set(0.1,0.2,0.3),this.op.rotTrans(JS.WyckoffFinder.WyckoffCoord.p3),this.plane=JU.Measure.getPlaneThroughPoints(JS.WyckoffFinder.WyckoffCoord.p1,
JS.WyckoffFinder.WyckoffCoord.p2,JS.WyckoffFinder.WyckoffCoord.p3,null,null,new JU.P4)}},"~S");a.getRow=e(a,"getRow",function(a,b,d){a=JU.PT.rep(a,"-","+-");a=JU.PT.rep(a,"x","*x");a=JU.PT.rep(a,"y","*y");a=JU.PT.rep(a,"z","*z");a=JU.PT.rep(a,"-*","-");a=JU.PT.rep(a,"+*","+");for(var e=JU.PT.split(a,"+"),g=e.length;0<=--g;)if(a=e[g],0!=a.length){var h=3;if(0<=a.indexOf("."))a=JU.PT.parseFloat(a),b[d+h]=a;else{var l=0,k=1;switch(a.charAt(0).charCodeAt(0)){case 45:k=-1;case 42:l++}for(var j=0,m=a.length,
p=0;--m>=l;){var u=a.charAt(m);switch(u.charCodeAt(0)){case 120:h=0;j=1;break;case 121:j=h=1;break;case 122:h=2;j=1;break;case 47:p=1,j=1/j;case 42:k*=j;j=0;break;default:u="0123456789".indexOf(u),0>u&&System.err.println("WH ????"),0==j?j=u:(p=0==p?10:10*p,j+=p*u)}}b[d+h]=k*j}}},"~S,~A,~N");m(a,"toString",function(){return this.asString(null,!1).toString()});a.p1=new JU.P3;a.p2=new JU.P3;a.p3=new JU.P3;a.pc=new JU.P3;a.vt=new JU.V3;b.nullHelper=null;b.helpers=new java.util.Hashtable});aa("JS");$(["JU.M4"],
"JS.CLEG","java.util.Arrays JU.AU $.BS $.P3 $.PT JS.SV JS.SpaceGroup $.UnitCell JV.Viewer".split(" "),function(){var b=eb(JS,"CLEG",null);e(b,"transformSpaceGroup",function(a,b,d,e,g){var h=a.getCurrentUnitCell(),l=a.getOperativeSymmetry();null!=h&&l!==h&&l.getUnitCell(h.getV0abc(null,null),!1,"modelkit");if(null==d)return"!no CLEG id for this space group";0<=d.indexOf("<")&&(d=JU.PT.rep(d,"<<",">super>").$replace("<",">"));if(0==d.length||d.endsWith(">"))d+=".";h=new JS.CLEG.ClegData(a.getSymTemp(),
JU.PT.split(d,">"));a=new JS.CLEG.AssignedSGParams(a,l,b,e,0,!1,g,d.equals("."));b=JS.CLEG.assignSpaceGroup(h,a);if(b.endsWith("!"))return b;a.mkIsAssign&&g.append(b);return b},"JV.Viewer,JU.BS,~S,~O,JU.SB");b.assignSpaceGroup=e(b,"assignSpaceGroup",function(a,b){var d=b.vwr,e=b.mkIndex,g=a.tokens,h=0>e;h&&(e=0);if(e>=g.length)return"invalid CLEG expression!";var l=null!=b.mkParamsOrUC;if(1<g.length&&l)return"invalid syntax - can't mix transformations and UNITCELL option!";0==e&&!h&&JS.CLEG.standardizeTokens(g,
!1);var k=e==g.length-1,j=g[e].trim(),m=j.equals("."),p=k?m:JS.CLEG.isTransformOnly(g[e+1])&&0<g[e+1].length;if(0==e){if(0==j.length||m){if(null==b.mkSym00)return"no starting space group for CLEG!";if(!b.mkIsAssign)return g[0]=b.mkSym00.getSpaceGroupClegId(),b.mkIndex=m&&k?0:1,b.mkWasNode=1==b.mkIndex,b.mkIgnoreAllSettings=p,JS.CLEG.assignSpaceGroup(a,b)}if(b.mkIsAssign&&null==b.mkSym00)return"no starting space group for calculation!"}var u=null!=JS.CLEG.getCalcType(j);if((u||JS.CLEG.isTransformOnly(j))!=
b.mkWasNode)return"invalid CLEG expression, not node>transform>node>transform>....!";b.mkWasNode=!b.mkWasNode;var r=u?j:null;u&&(j=g[++e].trim(),k=e==g.length-1);k&&(m&&null!=a.getPrevNode())&&(j=a.getPrevNode().getCleanITAName());var q=j.lastIndexOf(":"),n=null==b.mkSym00,x=!1,w=JS.CLEG.isTransform(j,!1),v=w&&!(w&&0<=q),z=!1,A=!1,q=a.sym,w=null;if(!v&&(a.setSymmetry(q),w=new JS.CLEG.ClegNode(a,e,j),null!=a.errString))return a.errString;if(null==a.getPrevNode()){if(!JS.CLEG.checkFullSyntax(g,q,JS.CLEG.allow300))return"invalid CLEG expression!";
if(!b.mkCalcOnly&&!v&&n&&!w.isDefaultSetting()){z=E(-1,[w.specialPrefix+w.myIta]);n=b.mkCalcOnly?new JS.CLEG.AssignedSGParams(d,!1):new JS.CLEG.AssignedSGParams(d,null,null,b.mkParamsOrUC,-1,!0,b.mkSb,!1);z=new JS.CLEG.ClegData(d.getSymTemp(),z);n=JS.CLEG.assignSpaceGroup(z,n);if(n.endsWith("!"))return n;b.mkCalcOnly?(q=b.mkSym00=z.sym,a.trMat=z.trMat):b.mkSym00=d.getOperativeSymmetry();if(null==b.mkSym00)return"CLEG spacegroup initialization error!";n=!1;z=!0}var A=0==e&&(!b.mkCalcOnly&&!n&&p||b.mkIsAssign),
p=n?null:b.mkSym00.getSpaceGroupClegId(),y=null;if(!n&&!(null==p||p.equals("0"))){var F=p.indexOf(":");0<F&&(y=p.substring(F+1),p=p.substring(0,F));A&&(y=b.mkSym00.getSpaceGroupInfoObj("itaTransform",null,!1,!1))}null==a.trMat&&(a.trMat=new JU.M4,a.trMat.setIdentity());if(!b.mkIsAssign&&(a.setSymmetry(q),a.setPrevNode(new JS.CLEG.ClegNode(a,-1,null==p?null:p+":"+y)),b.mkIgnoreAllSettings&&a.getPrevNode().disable(),!a.getPrevNode().update(a)))return a.errString}if(u&&!a.getPrevNode().setCalcNext(a,
r))return a.errString;if(v&&(k&&(x=!0),0<j.length&&a.addTransform(e,j),++b.mkIndex,!x))return JS.CLEG.assignSpaceGroup(a,b);if(!A){a.setSymmetry(q);if(!w.update(a))return a.errString;k&&m&&a.setNodeTransform(w);a.updateTokens(w)}if(!k)return b.mkIndex++,a.setPrevNode(w),JS.CLEG.assignSpaceGroup(a,b);u=m=k=null;k=!l||!JU.AU.isAD(b.mkParamsOrUC)?null:b.mkParamsOrUC;n&&(q.setUnitCellFromParams(null==k?D(-1,[10,10,10,90,90,90]):k,!1,NaN),b.mkParamsOrUC=null,l=!1);l?JU.AU.isAD(b.mkParamsOrUC)?k=b.mkParamsOrUC:
(m=b.mkParamsOrUC,u=m[0]):n||(a.setSymmetry(q=b.mkSym00),null==a.trMat&&(a.trMat=new JU.M4,a.trMat.setIdentity()),m=q.getV0abc(E(-1,[a.trMat]),null),u=m[0]);null!=m&&(k=q.getUnitCell(m,!1,"assign").getUnitCellParams(),null==u&&(u=m[0]));l=j.equalsIgnoreCase("P1")||j.equals("ITA/1.1");try{var C,B,r=-1;if(b.mkCalcOnly)b.mkBitset=C=new JU.BS,B=!0;else{if(null!=b.mkBitset&&b.mkBitset.isEmpty())return"no atoms specified!";C=d.getThisModelAtoms();var L=l?C:JS.SV.getBitSet(d.evaluateExpressionAsVariable("{within(unitcell)}"),
!0);null==b.mkBitset&&(b.mkBitset=C);null!=b.mkBitset&&(C.and(b.mkBitset),l||C.and(L));r=(B=C.isEmpty())&&0>d.am.cmi?0:B?d.am.cmi:d.ms.at[C.nextSetBit(0)].getModelIndex();b.mkIsAssign||d.ms.getModelAuxiliaryInfo(r).remove("spaceGroupInfo")}!n&&!b.mkIsAssign&&q.saveOrRetrieveTransformMatrix(a.trMat);null==k&&(k=q.getUnitCellMultiplied().getUnitCellParams());var x=(new Boolean(x|b.mkIsAssign)).valueOf(),K=B&&x?null:d.findSpaceGroup(q,x?C:null,x?null:w.getName(),k,u,m,2|(b.mkCalcOnly?16:0)|(!n||b.mkIsAssign?
0:4));if(null==K)return"Space group "+w.getName()+" is unknown or not compatible!";if(null==m||n)m=K.get("unitcell");var j=K.get("name"),N=K.get("jmolId"),M=K.get("basis"),P=K.remove("sg");q.getUnitCell(m,!1,null);q.setSpaceGroupTo(null==P?N:P);q.setSpaceGroupName(j);if(b.mkCalcOnly)return a.setSymmetry(q),"OK";null==M&&(M=q.removeDuplicates(d.ms,C,!0));d.ms.setSpaceGroup(r,q,M);if(b.mkIsAssign)return j;(n||z)&&d.runScript("unitcell on; center unitcell;axes unitcell; axes 0.1; axes on;set perspectivedepth false;moveto 0 axis c1;draw delete;show spacegroup");
var S=a.abcFor(a.trMat);g[e]=P.getClegId();if(!h){JS.CLEG.standardizeTokens(g,!0);var H=JU.PT.join(g,">",0)+(M.isEmpty()?"":"\n basis="+M);System.out.println("CLEG="+H);b.mkSb.append(H).append("\n")}return S}catch(T){if(da(T,Exception))return JV.Viewer.isJS||T.printStackTrace(),T.getMessage()+"!";throw T;}},"JS.CLEG.ClegData,JS.CLEG.AssignedSGParams");b.standardizeTokens=e(b,"standardizeTokens",function(a,b){for(var d=a.length;0<=--d;){var e=a[d];if(0!=e.length){e=JS.CLEG.cleanCleg000(e);if(e.endsWith(":h"))e.startsWith("R")||
(e=e.substring(0,e.length-2));else if(b||!e.endsWith(":2/3a+1/3b+1/3c,-1/3a+1/3b+1/3c,-1/3a-2/3b+1/3c"))e.endsWith(":r")?e.startsWith("R")||(e=e.substring(0,e.length-1)+"2/3a+1/3b+1/3c,-1/3a+1/3b+1/3c,-1/3a-2/3b+1/3c"):e.equals("r")?e="2/3a+1/3b+1/3c,-1/3a+1/3b+1/3c,-1/3a-2/3b+1/3c":e.equals("h")&&(e="a-b,b-c,a+b+c");a[d]=e}}System.out.println("MK StandardizeTokens "+java.util.Arrays.toString(a))},"~A,~B");b.cleanCleg000=e(b,"cleanCleg000",function(a){return a.endsWith(";0,0,0")?a.substring(0,a.length-
6):a},"~S");b.isProbableClegSetting=e(b,"isProbableClegSetting",function(a){var b=a.indexOf(":"),d=JS.SpaceGroup.getExplicitSpecialGroupType(a);return 0<=d&&0<b&&0<JS.SpaceGroup.getITNo(0==d?a:a.substring(2),b)&&a.indexOf(",")>b?b:0},"~S");b.checkFullSyntax=e(b,"checkFullSyntax",function(a,b,d){for(var e=0;e<a.length;e++){var g=a[e].trim();if(!(null==g||0==g.length||g.startsWith("sub")||g.startsWith("super"))){var h=JS.SpaceGroup.getExplicitSpecialGroupType(g);0<h&&(g=g.substring(2));var l=g.indexOf(":"),
k=g.indexOf(",",l+1),j=g.indexOf("."),m=0==g.indexOf("?:")||0==g.indexOf(".:")||0==g.indexOf("0:"),p=0<l&&k>l,u=g.indexOf("]"),u=0<u&&"["==g.charAt(0)&&(0>l||l==u+1),u=m?0:u?1:JU.PT.parseFloatStrict(0<l?g.substring(0,l):g);if(Float.isNaN(u)){if(0<j||p)return!1}else if(!m&&!JS.SpaceGroup.isInRange(u,h,!p,d&&0==h))return!1;if(!(0>k)&&(g=0<l?g.substring(l+1):g,0==b.convertTransform(g,null).determinant3()))return!1}}return!0},"~A,J.api.SymmetryInterface,~B");b.getCalcType=e(b,"getCalcType",function(a){return 0==
a.length||a.equals("sub")?"sub":"s"!=a.charAt(0)?null:a.startsWith("sub(")?"sub(":a.equals("super")?"super":a.startsWith("super(")?"super(":null},"~S");b.isTransformOnly=e(b,"isTransformOnly",function(a){return JS.CLEG.isTransform(a,!1)&&0>a.indexOf(":")},"~S");b.isTransform=e(b,"isTransform",function(a,b){return 0==a.length||(0<a.indexOf(",")||0<="!r!h".indexOf(a))||b&&(a.endsWith(":r")||a.endsWith(":h"))},"~S,~B");e(b,"getMatrixTransform",function(a,b,d){0==b.length&&(b=".");0>b.indexOf(">")&&!b.equals(".")&&
(b=">>"+b);var e=JU.PT.split(b,">");0==e[0].length&&(e[0]="ref");var g=new JS.CLEG.ClegData(a.getSymTemp(),e),h=L(d,"java.util.Map")?d:null;d=null==h&&L(d,"JU.Lst")?d:null;g.setReturnMap(h);g.setReturnLst(d);a=JS.CLEG.assignSpaceGroup(g,new JS.CLEG.AssignedSGParams(a,b.equals(".")));if(0<a.indexOf("!"))return System.err.println(a),null!=h&&h.put("error",a),null;null==d&&null==h&&(System.out.println("CLEG transform: "+JU.PT.join(e,">",0)),b=g.abcFor(g.trMat),System.out.println("CLEG transform: "+e[0]+
">"+b+">"+e[e.length-1]));return g.trMat},"JV.Viewer,~S,~O");var a=M(function(){this.retLst=this.retMap=this.prevNode=this.trTemp=this.trLink=this.errString=this.trMat=this.sym=this.tokens=null;this.asM4=!1;S(this,arguments)},JS.CLEG,"ClegData",null);qa(a,function(){this.trTemp=new JU.M4});V(a,function(a,b){this.tokens=b;this.sym=a},"J.api.SymmetryInterface,~A");e(a,"setSymmetry",function(a){this.sym=a},"J.api.SymmetryInterface");e(a,"addSGTransform",function(a,b){null==this.trMat&&(System.out.println("ClegData reset"),
this.trMat=new JU.M4,this.trMat.setIdentity());null!=a&&this.trMat.mul(this.matFor(a));null!=b&&System.out.println("ClegData adding "+b+" "+a+" now "+this.abcFor(this.trMat));return this.trMat},"~S,~S");e(a,"abcFor",function(a){return this.sym.staticGetTransformABC(a,!1)},"JU.M4");e(a,"matFor",function(a){return this.sym.convertTransform(a,0<a.indexOf(">")?null:this.trTemp)},"~S");e(a,"removePrevNodeTrm",function(){null!=this.prevNode&&(null!=this.prevNode.myTrm&&!this.prevNode.disabled)&&this.addSGTransform("!"+
this.prevNode.myTrm,"!prevNode.myTrm")});e(a,"calculate",function(a){a.invert();var b=JU.M4.newM4(this.trMat);b.mul(a);return this.sym.convertTransform(null,b)},"JU.M4");e(a,"updateTokens",function(a){var b=a.index,d=a.name,d=d.startsWith("ITA/")?d.substring(4):(null==a.myIta?".":a.myIta)+":"+a.myTrm;this.setToken(b,d);null!=a.calculated&&0<b&&this.setToken(b-1,a.calculated)},"JS.CLEG.ClegNode");e(a,"setToken",function(a,b){this.tokens[a]=b},"~N,~S");e(a,"addTransformLink",function(){null==this.trLink&&
(this.trLink=new JU.M4,this.trLink.setIdentity());this.trLink.mul(this.trTemp)});e(a,"setNodeTransform",function(a){a.myTrm=this.abcFor(this.trMat);a.setITAName(a.name)},"JS.CLEG.ClegNode");e(a,"addTransform",function(a,b){this.addSGTransform(b,">t>");this.addTransformLink();System.out.println("CLEG.addTransform index="+a+" trm="+this.trMat)},"~N,~S");e(a,"getPrevNode",function(){return this.prevNode});e(a,"setPrevNode",function(a){return this.prevNode=a},"JS.CLEG.ClegNode");e(a,"addPrimitiveTransform",
function(a,b){var d=this.sym.getSpaceGroupInfoObj("hmName",a+":"+b,!1,!1);if(null==d)return b;d=d.charAt(0);if(0>"ABCFI".indexOf(d))return b;d=JU.M4.newMV(JS.UnitCell.getPrimitiveTransform(d),JU.P3.new3(0,0,0));d.mul(this.matFor(b));return this.abcFor(d)},"~S,~S");e(a,"setReturnMap",function(a){null!=a&&(this.asM4=a.get("ASM4")===Boolean.TRUE,a.clear());this.retMap=a},"java.util.Map");e(a,"setReturnLst",function(a){null!=a&&a.clear();this.retLst=a},"JU.Lst");a=M(function(){this.myTrm=this.myIta=this.name=
null;this.index=0;this.calcNext=null;this.calcIndexMax=this.calcIndexMin=this.calcDepthMax=this.calcDepthMin=this.calcI2=this.calcI1=0;this.calculated=null;this.isThisModelCalc=this.disabled=!1;this.hallSymbol=null;this.specialType=0;this.specialPrefix="";S(this,arguments)},JS.CLEG,"ClegNode",null);V(a,function(a,b,d){null!=d&&(this.index=b,this.init(a,d))},"JS.CLEG.ClegData,~N,~S");e(a,"disable",function(){this.disabled=!0});e(a,"checkSpecial",function(a){switch(this.specialType=JS.SpaceGroup.getExplicitSpecialGroupType(a)){case -1:return null;
case 0:if(!JS.CLEG.allow300)return a;var b=a.indexOf("."),b=0<b?a.substring(0,b):a,d=JS.SpaceGroup.getITNo(b,0);if(300>d)return a;if(600<d)return null;this.specialType=100*C(d/100);this.specialPrefix=JS.SpaceGroup.getGroupTypePrefix(d);return""+(d-this.specialType)+a.substring(b.length);default:return this.specialPrefix=a.substring(0,2),a.substring(2)}},"~S");e(a,"init",function(a,b){var d=JS.CLEG.isProbableClegSetting(b);0<d&&(this.myIta=b.substring(0,d),this.myTrm=b.substring(d+1));b.equals("ref")&&
(this.isThisModelCalc=!0);b=this.checkSpecial(b);var e=b.endsWith(":p");e&&(b=b.substring(0,b.length-2));var g=b.startsWith("ITA/");g&&(b=this.checkSpecial(b.substring(4)));var h=!1,l=this.hallSymbol=null;if(0==this.specialType&&"["==b.charAt(0)){d=b.indexOf("]");if(0>d){a.errString="invalid Hall symbol: "+b+"!";return}this.hallSymbol=b.substring(1,d);d=this.hallSymbol.indexOf("(");0<d&&(l=this.hallSymbol.substring(d+1,this.hallSymbol.length-1)+" ",this.hallSymbol=this.hallSymbol.substring(0,d).trim(),
l=JU.PT.rep(l," ","/12,"),l="a,b,c;"+l.substring(0,l.length-1));d=b.indexOf(":");0<d&&(this.myTrm=b.substring(d+1));b="Hall:"+this.hallSymbol}else b.startsWith("HM:")?h=!0:3>=b.length&&(g=0<JS.SpaceGroup.getITNo(b,0))&&(b=this.checkSpecial(b)+".1");!g&&(null==this.hallSymbol&&!h)&&(d=JU.PT.isDigit(b.charAt(0))?b.indexOf(" "):-1,0<d&&(b=b.substring(0,d)),0<b.indexOf(".")&&!Float.isNaN(JU.PT.parseFloat(b))&&(g=!0));if(g){this.myTrm=b.endsWith(".1")?"a,b,c":a.sym.getSpaceGroupInfoObj("itaTransform",
this.specialPrefix+b,!1,!1);if(null==this.myTrm){a.errString="Unknown ITA setting: "+this.specialPrefix+b+"!";return}this.myIta=JU.PT.split(b,".")[0]}else null==this.myIta&&(this.myIta=a.sym.getSpaceGroupInfoObj("itaNumber",this.specialPrefix+b,!1,!1)),null==this.myTrm&&(this.myTrm=a.sym.getSpaceGroupInfoObj("itaTransform",this.specialPrefix+b,!1,!1)),null!=this.hallSymbol&&null!=l&&(this.myTrm=l+(this.myTrm.equals("a,b,c")?"":">"+this.myTrm));"0".equals(this.myIta)?a.errString="Could not get ITA space group for "+
b+"!":(e&&(this.myTrm=a.addPrimitiveTransform(this.myIta,this.myTrm)),this.setITAName(b))},"JS.CLEG.ClegData,~S");e(a,"setITAName",function(a){return this.name=(".".equals(a)||null==this.myIta?".":"ITA/"+this.specialPrefix+this.myIta)+(null==this.myTrm?"":":"+this.myTrm)},"~S");e(a,"update",function(a){if(null!=a.errString)return!1;if(null==this.name)return!0;var b=a.prevNode;b.isThisModelCalc&&(b.myIta=this.myIta);if(!(null==a.trLink&&null!=this.myIta&&(this.myIta.equals(b.myIta)||null!=b.calcNext)))return!0;
var d=JU.M4.newM4(a.trMat);a.removePrevNodeTrm();var e=null;if(null!=b.calcNext){var g=!0,h=e=!1;switch(b.calcNext){case "super(":case "sub(":h=!0;break;case "super":g=!1;break;case "":case "set":b.calcNext="set",e=!0}var l=JU.PT.parseInt(b.myIta),k=JU.PT.parseInt(this.myIta);if(h||!(null==a.retLst&&(null==a.retMap||a.asM4)&&e&&l==k)){e=a.sym.getSubgroupJSON(g?b.name:this.name,g?this.name:b.name,b.calcI1,b.calcI2,b.calcIndexMax<<24|b.calcIndexMin<<16|b.calcDepthMax<<8|b.calcDepthMin,a.retMap,a.retLst);
if(h=null!=e){if(e.endsWith("!"))return a.errString=e,!1;g||(e="!"+e)}b=b.myIta+">"+(h?e:"?")+">"+this.myIta;if(!h)return a.errString=b+"!",!1;a.addSGTransform(e,"sub")}}this.disabled||a.addSGTransform(this.myTrm,"myTrm");this.calculated=a.calculate(d);System.out.println("calculated is "+this.calculated+(null==a.retMap?"":" for the path "+a.retMap.get("indexPath")));return!0},"JS.CLEG.ClegData");e(a,"getName",function(){return this.name});e(a,"getCleanITAName",function(){if(null==this.name)return this.name=
".";var a=this.name.startsWith("ITA/")?this.name.substring(4):this.name;0!=this.specialType&&!a.startsWith(this.specialPrefix)&&(a=this.specialPrefix+a);return a});e(a,"isDefaultSetting",function(){return null==this.myTrm||JS.CLEG.cleanCleg000(this.myTrm).equals("a,b,c")});e(a,"setCalcNext",function(a,b){var d=b.length;switch(0==d?b:JS.CLEG.getCalcType(b)){case "sub":if(null!=a.retLst||null!=a.retMap){d=0;break}case "super":this.calcI2=this.calcI1=1;d=3;break;case "sub(":d=-3;break;case "super(":d=
-5}for(var e=!0;;){if(0==d)this.calcIndexMin=2,this.calcIndexMax=255,this.calcDepthMin=1,this.calcDepthMax=255,e=!1;else if(0<d)this.calcIndexMin=2,this.calcIndexMax=255,this.calcDepthMax=this.calcDepthMin=1,e=!1;else{if(b.indexOf(")")!=b.length-1)break;var g=JU.PT.split(JU.PT.trim(b.toLowerCase().substring(-d+1),")"),",");try{if(5==b.length||0<=b.indexOf("=")){this.calcIndexMin=2;this.calcIndexMax=255;this.calcDepthMin=1;this.calcDepthMax=255;b=b.substring(0,-d);for(var h=g.length;0<=--h;){var l=
g[h],k=Math.min(255,Integer.parseInt(l.substring(l.indexOf("=")+1)));l.startsWith("indexmax=")?this.calcIndexMax=Math.max(2,k):l.startsWith("indexmin=")?this.calcIndexMin=Math.max(2,k):l.startsWith("index=")&&(this.calcIndexMin=this.calcIndexMax=Math.max(2,k));l.startsWith("depthmax=")?this.calcDepthMax=Math.max(1,k):l.startsWith("depthmin=")?this.calcDepthMin=Math.max(1,k):l.startsWith("depth=")&&(this.calcDepthMin=this.calcDepthMax=Math.max(1,k))}}else switch(g.length){case 2:this.calcI2=Math.max(0,
Integer.parseInt(g[1]))&255;case 1:this.calcI1=Math.max(1,Integer.parseInt(g[0]))&255}b=b.substring(0,-d);e=!1}catch(j){if(!da(j,Exception))throw j;}}break}if(e)return a.errString="Error parsing CLEG "+b+"!",!1;this.calcNext=b;return!0},"JS.CLEG.ClegData,~S");m(a,"toString",function(){return"[ClegNode #"+this.index+" "+this.name+"   "+this.myIta+":"+this.myTrm+(this.disabled?" disabled":"")+"]"});a=M(function(){this.vwr=null;this.mkIsAssign=this.mkCalcOnly=!1;this.mkSb=null;this.mkIgnoreAllSettings=
!1;this.mkParamsOrUC=this.mkBitset=this.mkSym00=null;this.mkWasNode=!1;this.mkIndex=0;S(this,arguments)},JS.CLEG,"AssignedSGParams",null);V(a,function(a,b){this.vwr=a;this.mkCalcOnly=!0;this.mkIsAssign=!1;this.mkSb=null;b&&(this.mkSym00=a.getOperativeSymmetry())},"JV.Viewer,~B");V(a,function(a,b,d,e,g,h,l,k){this.vwr=a;this.mkCalcOnly=!1;this.mkIndex=g;this.mkSym00=b;this.mkBitset=d;this.mkParamsOrUC=e;this.mkIgnoreAllSettings=h;this.mkSb=l;this.mkIsAssign=k},"JV.Viewer,J.api.SymmetryInterface,JU.BS,~O,~N,~B,JU.SB,~B");
b.allow300=!1})})(Clazz,Clazz.getClassName,Clazz.newLongArray,Clazz.doubleToByte,Clazz.doubleToInt,Clazz.doubleToLong,Clazz.declarePackage,Clazz.instanceOf,Clazz.load,Clazz.instantialize,Clazz.decorateAsClass,Clazz.floatToInt,Clazz.floatToLong,Clazz.makeConstructor,Clazz.defineEnumConstant,Clazz.exceptionOf,Clazz.newIntArray,Clazz.newFloatArray,Clazz.declareType,Clazz.prepareFields,Clazz.superConstructor,Clazz.newByteArray,Clazz.declareInterface,Clazz.newShortArray,Clazz.innerTypeInstance,Clazz.isClassDefined,
Clazz.prepareCallback,Clazz.newArray,Clazz.castNullAs,Clazz.floatToShort,Clazz.superCall,Clazz.decorateAsType,Clazz.newBooleanArray,Clazz.newCharArray,Clazz.implementOf,Clazz.newDoubleArray,Clazz.overrideConstructor,Clazz.clone,Clazz.doubleToShort,Clazz.getInheritedLevel,Clazz.getParamsType,Clazz.isAF,Clazz.isAB,Clazz.isAI,Clazz.isAS,Clazz.isASS,Clazz.isAP,Clazz.isAFloat,Clazz.isAII,Clazz.isAFF,Clazz.isAFFF,Clazz.tryToSearchAndExecute,Clazz.getStackTrace,Clazz.inheritArgs,Clazz.alert,Clazz.defineMethod,
Clazz.overrideMethod,Clazz.declareAnonymous,Clazz.cloneFinals);
