| Clazz.declarePackage ("JSV.source"); | |
| Clazz.load (["JSV.source.JDXHeader"], "JSV.source.JDXDataObject", ["java.lang.Character", "$.Double", "JU.DF", "$.PT", "JSV.common.Annotation", "$.Coordinate", "$.Integral", "JSV.exception.JSVException", "JU.Logger"], function () { | |
| c$ = Clazz.decorateAsClass (function () { | |
| this.filePath = null; | |
| this.filePathForwardSlash = null; | |
| this.isSimulation = false; | |
| this.sourceID = ""; | |
| this.blockID = 0; | |
| this.fileFirstX = 1.7976931348623157E308; | |
| this.fileLastX = 1.7976931348623157E308; | |
| this.nPointsFile = -1; | |
| this.xFactor = 1.7976931348623157E308; | |
| this.yFactor = 1.7976931348623157E308; | |
| this.varName = ""; | |
| this.xUnits = ""; | |
| this.yUnits = ""; | |
| this.xLabel = null; | |
| this.yLabel = null; | |
| this.nH = 0; | |
| this.observedNucl = ""; | |
| this.observedFreq = 1.7976931348623157E308; | |
| this.parent = null; | |
| this.offset = 1.7976931348623157E308; | |
| this.shiftRefType = -1; | |
| this.dataPointNum = -1; | |
| this.numDim = 1; | |
| this.nucleusX = null; | |
| this.nucleusY = "?"; | |
| this.freq2dX = NaN; | |
| this.freq2dY = NaN; | |
| this.y2D = NaN; | |
| this.y2DUnits = ""; | |
| this.$isHZtoPPM = false; | |
| this.xIncreases = true; | |
| this.continuous = false; | |
| this.xyCoords = null; | |
| this.minX = NaN; | |
| this.minY = NaN; | |
| this.maxX = NaN; | |
| this.maxY = NaN; | |
| this.deltaX = NaN; | |
| this.normalizationFactor = 1; | |
| Clazz.instantialize (this, arguments); | |
| }, JSV.source, "JDXDataObject", JSV.source.JDXHeader); | |
| Clazz.defineMethod (c$, "setFilePath", | |
| function (filePath) { | |
| if (filePath != null) this.filePathForwardSlash = (this.filePath = filePath.trim ()).$replace ('\\', '/'); | |
| }, "~S"); | |
| Clazz.defineMethod (c$, "getFilePath", | |
| function () { | |
| return this.filePath; | |
| }); | |
| Clazz.defineMethod (c$, "getFilePathForwardSlash", | |
| function () { | |
| return this.filePathForwardSlash; | |
| }); | |
| Clazz.defineMethod (c$, "setBlockID", | |
| function (id) { | |
| this.blockID = id; | |
| }, "~N"); | |
| Clazz.defineMethod (c$, "isImaginary", | |
| function () { | |
| return this.varName.contains ("IMAG"); | |
| }); | |
| Clazz.defineMethod (c$, "setXFactor", | |
| function (xFactor) { | |
| this.xFactor = xFactor; | |
| }, "~N"); | |
| Clazz.defineMethod (c$, "getXFactor", | |
| function () { | |
| return this.xFactor; | |
| }); | |
| Clazz.defineMethod (c$, "setYFactor", | |
| function (yFactor) { | |
| this.yFactor = yFactor; | |
| }, "~N"); | |
| Clazz.defineMethod (c$, "getYFactor", | |
| function () { | |
| return this.yFactor; | |
| }); | |
| Clazz.defineMethod (c$, "checkRequiredTokens", | |
| function () { | |
| var err = (this.fileFirstX == 1.7976931348623157E308 ? "##FIRSTX" : this.fileLastX == 1.7976931348623157E308 ? "##LASTX" : this.nPointsFile == -1 ? "##NPOINTS" : this.xFactor == 1.7976931348623157E308 ? "##XFACTOR" : this.yFactor == 1.7976931348623157E308 ? "##YFACTOR" : null); | |
| if (err != null) throw new JSV.exception.JSVException ("Error Reading Data Set: " + err + " not found"); | |
| }); | |
| Clazz.defineMethod (c$, "setXUnits", | |
| function (xUnits) { | |
| this.xUnits = xUnits; | |
| }, "~S"); | |
| Clazz.defineMethod (c$, "getXUnits", | |
| function () { | |
| return this.xUnits; | |
| }); | |
| Clazz.defineMethod (c$, "setYUnits", | |
| function (yUnits) { | |
| if (yUnits.equals ("PPM")) yUnits = "ARBITRARY UNITS"; | |
| this.yUnits = yUnits; | |
| }, "~S"); | |
| Clazz.defineMethod (c$, "getYUnits", | |
| function () { | |
| return this.yUnits; | |
| }); | |
| Clazz.defineMethod (c$, "setXLabel", | |
| function (value) { | |
| this.xLabel = value; | |
| }, "~S"); | |
| Clazz.defineMethod (c$, "setYLabel", | |
| function (value) { | |
| this.yLabel = value; | |
| }, "~S"); | |
| Clazz.defineMethod (c$, "setObservedNucleus", | |
| function (value) { | |
| this.observedNucl = value; | |
| if (this.numDim == 1) this.parent.nucleusX = this.nucleusX = this.fixNucleus (value); | |
| }, "~S"); | |
| Clazz.defineMethod (c$, "setObservedFreq", | |
| function (observedFreq) { | |
| this.observedFreq = observedFreq; | |
| }, "~N"); | |
| Clazz.defineMethod (c$, "getObservedFreq", | |
| function () { | |
| return this.observedFreq; | |
| }); | |
| Clazz.defineMethod (c$, "is1D", | |
| function () { | |
| return this.numDim == 1; | |
| }); | |
| Clazz.defineMethod (c$, "setY2D", | |
| function (d) { | |
| this.y2D = d; | |
| }, "~N"); | |
| Clazz.defineMethod (c$, "getY2D", | |
| function () { | |
| return this.y2D; | |
| }); | |
| Clazz.defineMethod (c$, "setY2DUnits", | |
| function (units) { | |
| this.y2DUnits = units; | |
| }, "~S"); | |
| Clazz.defineMethod (c$, "getY2DPPM", | |
| function () { | |
| var d = this.y2D; | |
| if (this.y2DUnits.equals ("HZ")) d /= this.freq2dY; | |
| return d; | |
| }); | |
| Clazz.defineMethod (c$, "setNucleusAndFreq", | |
| function (nuc, isX) { | |
| nuc = this.fixNucleus (nuc); | |
| if (isX) this.nucleusX = nuc; | |
| else this.nucleusY = nuc; | |
| var freq; | |
| if (this.observedNucl.indexOf (nuc) >= 0) { | |
| freq = this.observedFreq; | |
| } else { | |
| var g1 = JSV.source.JDXDataObject.getGyroMagneticRatio (this.observedNucl); | |
| var g2 = JSV.source.JDXDataObject.getGyroMagneticRatio (nuc); | |
| freq = this.observedFreq * g2 / g1; | |
| }if (isX) this.freq2dX = freq; | |
| else this.freq2dY = freq; | |
| JU.Logger.info ("Freq for " + nuc + " = " + freq); | |
| }, "~S,~B"); | |
| Clazz.defineMethod (c$, "fixNucleus", | |
| function (nuc) { | |
| return JU.PT.rep (JU.PT.trim (nuc, "[]^<>"), "NUC_", ""); | |
| }, "~S"); | |
| c$.getGyroMagneticRatio = Clazz.defineMethod (c$, "getGyroMagneticRatio", | |
| function (nuc) { | |
| var pt = 0; | |
| while (pt < nuc.length && !Character.isDigit (nuc.charAt (pt))) pt++; | |
| pt = JU.PT.parseInt (nuc.substring (pt)); | |
| var i = 0; | |
| for (; i < JSV.source.JDXDataObject.gyroData.length; i += 2) if (JSV.source.JDXDataObject.gyroData[i] >= pt) break; | |
| return (JSV.source.JDXDataObject.gyroData[i] == pt ? JSV.source.JDXDataObject.gyroData[i + 1] : NaN); | |
| }, "~S"); | |
| Clazz.defineMethod (c$, "isTransmittance", | |
| function () { | |
| var s = this.yUnits.toLowerCase (); | |
| return (s.equals ("transmittance") || s.contains ("trans") || s.equals ("t")); | |
| }); | |
| Clazz.defineMethod (c$, "isAbsorbance", | |
| function () { | |
| var s = this.yUnits.toLowerCase (); | |
| return (s.equals ("absorbance") || s.contains ("abs") || s.equals ("a")); | |
| }); | |
| Clazz.defineMethod (c$, "canSaveAsJDX", | |
| function () { | |
| return this.getDataClass ().equals ("XYDATA"); | |
| }); | |
| Clazz.defineMethod (c$, "canIntegrate", | |
| function () { | |
| return (this.continuous && (this.isHNMR () || this.isGC ()) && this.is1D ()); | |
| }); | |
| Clazz.defineMethod (c$, "isAutoOverlayFromJmolClick", | |
| function () { | |
| return (this.isGC ()); | |
| }); | |
| Clazz.defineMethod (c$, "isGC", | |
| function () { | |
| return this.dataType.startsWith ("GC") || this.dataType.startsWith ("GAS"); | |
| }); | |
| Clazz.defineMethod (c$, "isMS", | |
| function () { | |
| return this.dataType.startsWith ("MASS") || this.dataType.startsWith ("MS"); | |
| }); | |
| Clazz.defineMethod (c$, "isStackable", | |
| function () { | |
| return !this.isMS (); | |
| }); | |
| Clazz.defineMethod (c$, "isScalable", | |
| function () { | |
| return true; | |
| }); | |
| Clazz.defineMethod (c$, "getYRef", | |
| function () { | |
| return (!this.isTransmittance () ? 0.0 : JSV.common.Coordinate.getMaxY (this.xyCoords, 0, this.xyCoords.length) < 2 ? 1.0 : 100.0); | |
| }); | |
| Clazz.defineMethod (c$, "isInverted", | |
| function () { | |
| return this.isTransmittance (); | |
| }); | |
| Clazz.defineMethod (c$, "canConvertTransAbs", | |
| function () { | |
| return (this.continuous && (this.yUnits.toLowerCase ().contains ("abs")) || this.yUnits.toLowerCase ().contains ("trans")); | |
| }); | |
| Clazz.defineMethod (c$, "canShowSolutionColor", | |
| function () { | |
| return (this.isContinuous () && this.canConvertTransAbs () && (this.xUnits.toLowerCase ().contains ("nanometer") || this.xUnits.equalsIgnoreCase ("nm")) && this.getFirstX () < 401 && this.getLastX () > 699 && this.xyCoords.length >= 30); | |
| }); | |
| Clazz.defineMethod (c$, "isHZtoPPM", | |
| function () { | |
| return this.$isHZtoPPM; | |
| }); | |
| Clazz.defineMethod (c$, "setHZtoPPM", | |
| function (val) { | |
| this.$isHZtoPPM = val; | |
| }, "~B"); | |
| Clazz.defineMethod (c$, "setIncreasing", | |
| function (val) { | |
| this.xIncreases = val; | |
| }, "~B"); | |
| Clazz.defineMethod (c$, "isXIncreasing", | |
| function () { | |
| return this.xIncreases; | |
| }); | |
| Clazz.defineMethod (c$, "shouldDisplayXAxisIncreasing", | |
| function () { | |
| var dt = this.dataType.toUpperCase (); | |
| var xu = this.xUnits.toUpperCase (); | |
| if (dt.contains ("NMR") && !(dt.contains ("FID"))) { | |
| return false; | |
| } else if (dt.contains ("LINK") && xu.contains ("CM")) { | |
| return false; | |
| } else if (dt.startsWith ("IR") || dt.contains ("INFRA") && xu.contains ("CM")) { | |
| return false; | |
| } else if (dt.contains ("RAMAN") && xu.contains ("CM")) { | |
| return false; | |
| } else if (dt.contains ("VIS") && xu.contains ("NANOMETERS")) { | |
| return true; | |
| }return this.xIncreases; | |
| }); | |
| Clazz.defineMethod (c$, "setContinuous", | |
| function (val) { | |
| this.continuous = val; | |
| }, "~B"); | |
| Clazz.defineMethod (c$, "isContinuous", | |
| function () { | |
| return this.continuous; | |
| }); | |
| Clazz.defineMethod (c$, "getHeaderRowDataAsArray", | |
| function () { | |
| var n = 8; | |
| if (this.observedFreq != 1.7976931348623157E308) n++; | |
| if (this.observedNucl !== "") n++; | |
| var rowData = this.getHeaderRowDataAsArray (true, n); | |
| var i = rowData.length - n; | |
| if (this.observedFreq != 1.7976931348623157E308) rowData[i++] = Clazz.newArray (-1, ["##.OBSERVE FREQUENCY", "" + this.observedFreq]); | |
| if (this.observedNucl !== "") rowData[i++] = Clazz.newArray (-1, ["##.OBSERVE NUCLEUS", this.observedNucl]); | |
| rowData[i++] = Clazz.newArray (-1, ["##XUNITS", this.$isHZtoPPM ? "HZ" : this.xUnits]); | |
| rowData[i++] = Clazz.newArray (-1, ["##YUNITS", this.yUnits]); | |
| var x = (this.xIncreases ? this.getFirstX () : this.getLastX ()); | |
| rowData[i++] = Clazz.newArray (-1, ["##FIRSTX", String.valueOf (this.isHZtoPPM () ? x * this.observedFreq : x)]); | |
| x = (this.xIncreases ? this.getLastX () : this.getFirstX ()); | |
| rowData[i++] = Clazz.newArray (-1, ["##FIRSTY", String.valueOf (this.xIncreases ? this.getFirstY () : this.getLastY ())]); | |
| rowData[i++] = Clazz.newArray (-1, ["##LASTX", String.valueOf (this.isHZtoPPM () ? x * this.observedFreq : x)]); | |
| rowData[i++] = Clazz.newArray (-1, ["##XFACTOR", String.valueOf (this.getXFactor ())]); | |
| rowData[i++] = Clazz.newArray (-1, ["##YFACTOR", String.valueOf (this.getYFactor ())]); | |
| rowData[i++] = Clazz.newArray (-1, ["##NPOINTS", String.valueOf (this.xyCoords.length)]); | |
| return rowData; | |
| }); | |
| Clazz.defineMethod (c$, "getDefaultUnitPrecision", | |
| function () { | |
| return 2; | |
| }); | |
| Clazz.defineMethod (c$, "setMeasurementText", | |
| function (m) { | |
| var dx = m.getValue (); | |
| if (Double.isNaN (dx)) return ""; | |
| var precision = 1; | |
| var units = ""; | |
| if (this.isNMR ()) { | |
| if (this.numDim == 1) { | |
| var isIntegral = (Clazz.instanceOf (m, JSV.common.Integral)); | |
| if (this.isHNMR () || isIntegral) { | |
| if (!isIntegral) { | |
| dx *= this.observedFreq; | |
| units = " Hz"; | |
| }} else { | |
| units = " ppm"; | |
| precision = 2; | |
| }} else { | |
| return ""; | |
| }}return (dx < 0.1 ? "" : JU.DF.formatDecimalDbl (dx, precision) + units); | |
| }, "JSV.common.Measurement"); | |
| Clazz.defineMethod (c$, "isNMR", | |
| function () { | |
| return (this.dataType.toUpperCase ().indexOf ("NMR") >= 0); | |
| }); | |
| Clazz.defineMethod (c$, "isHNMR", | |
| function () { | |
| return (this.isNMR () && this.observedNucl.toUpperCase ().indexOf ("H") >= 0); | |
| }); | |
| Clazz.defineMethod (c$, "setXYCoords", | |
| function (coords) { | |
| this.xyCoords = coords; | |
| }, "~A"); | |
| Clazz.defineMethod (c$, "invertYAxis", | |
| function () { | |
| for (var i = this.xyCoords.length; --i >= 0; ) { | |
| this.xyCoords[i].setYVal (-this.xyCoords[i].getYVal ()); | |
| } | |
| var d = this.minY; | |
| this.minY = -this.maxY; | |
| this.maxY = -d; | |
| return this; | |
| }); | |
| Clazz.defineMethod (c$, "getFirstX", | |
| function () { | |
| return this.xyCoords[0].getXVal (); | |
| }); | |
| Clazz.defineMethod (c$, "getFirstY", | |
| function () { | |
| return this.xyCoords[0].getYVal (); | |
| }); | |
| Clazz.defineMethod (c$, "getLastX", | |
| function () { | |
| return this.xyCoords[this.xyCoords.length - 1].getXVal (); | |
| }); | |
| Clazz.defineMethod (c$, "getLastY", | |
| function () { | |
| return this.xyCoords[this.xyCoords.length - 1].getYVal (); | |
| }); | |
| Clazz.defineMethod (c$, "getMinX", | |
| function () { | |
| return (Double.isNaN (this.minX) ? (this.minX = JSV.common.Coordinate.getMinX (this.xyCoords, 0, this.xyCoords.length)) : this.minX); | |
| }); | |
| Clazz.defineMethod (c$, "getMinY", | |
| function () { | |
| return (Double.isNaN (this.minY) ? (this.minY = JSV.common.Coordinate.getMinY (this.xyCoords, 0, this.xyCoords.length)) : this.minY); | |
| }); | |
| Clazz.defineMethod (c$, "getMaxX", | |
| function () { | |
| return (Double.isNaN (this.maxX) ? (this.maxX = JSV.common.Coordinate.getMaxX (this.xyCoords, 0, this.xyCoords.length)) : this.maxX); | |
| }); | |
| Clazz.defineMethod (c$, "getMaxY", | |
| function () { | |
| return (Double.isNaN (this.maxY) ? (this.maxY = JSV.common.Coordinate.getMaxY (this.xyCoords, 0, this.xyCoords.length)) : this.maxY); | |
| }); | |
| Clazz.defineMethod (c$, "doNormalize", | |
| function (max) { | |
| if (!this.isNMR () || !this.is1D ()) return; | |
| this.normalizationFactor = max / this.getMaxY (); | |
| this.maxY = NaN; | |
| JSV.common.Coordinate.applyScale (this.xyCoords, 1, this.normalizationFactor); | |
| JU.Logger.info ("Y values have been scaled by a factor of " + this.normalizationFactor); | |
| }, "~N"); | |
| Clazz.defineMethod (c$, "getDeltaX", | |
| function () { | |
| return (Double.isNaN (this.deltaX) ? (this.deltaX = JSV.common.Coordinate.deltaX (this.getLastX (), this.getFirstX (), this.xyCoords.length)) : this.deltaX); | |
| }); | |
| Clazz.defineMethod (c$, "copyTo", | |
| function (newObj) { | |
| newObj.setTitle (this.title); | |
| newObj.setJcampdx (this.jcampdx); | |
| newObj.setOrigin (this.origin); | |
| newObj.setOwner (this.owner); | |
| newObj.setDataClass (this.dataClass); | |
| newObj.setDataType (this.dataType); | |
| newObj.setHeaderTable (this.headerTable); | |
| newObj.setXFactor (this.xFactor); | |
| newObj.setYFactor (this.yFactor); | |
| newObj.setXUnits (this.xUnits); | |
| newObj.setYUnits (this.yUnits); | |
| newObj.setXLabel (this.xLabel); | |
| newObj.setYLabel (this.yLabel); | |
| newObj.setXYCoords (this.xyCoords); | |
| newObj.setContinuous (this.continuous); | |
| newObj.setIncreasing (this.xIncreases); | |
| newObj.observedFreq = this.observedFreq; | |
| newObj.observedNucl = this.observedNucl; | |
| newObj.offset = this.offset; | |
| newObj.dataPointNum = this.dataPointNum; | |
| newObj.shiftRefType = this.shiftRefType; | |
| newObj.$isHZtoPPM = this.$isHZtoPPM; | |
| newObj.numDim = this.numDim; | |
| newObj.nucleusX = this.nucleusX; | |
| newObj.nucleusY = this.nucleusY; | |
| newObj.freq2dX = this.freq2dX; | |
| newObj.freq2dY = this.freq2dY; | |
| newObj.setFilePath (this.filePath); | |
| newObj.nH = this.nH; | |
| }, "JSV.source.JDXDataObject"); | |
| Clazz.defineMethod (c$, "getTypeLabel", | |
| function () { | |
| return (this.isNMR () ? this.nucleusX + "NMR" : this.dataType); | |
| }); | |
| Clazz.defineMethod (c$, "getDefaultAnnotationInfo", | |
| function (type) { | |
| var s1; | |
| var s2; | |
| var isNMR = this.isNMR (); | |
| switch (type) { | |
| case JSV.common.Annotation.AType.Integration: | |
| return Clazz.newArray (-1, [null, Clazz.newIntArray (-1, [1]), null]); | |
| case JSV.common.Annotation.AType.Measurements: | |
| s1 = (isNMR ? Clazz.newArray (-1, ["Hz", "ppm"]) : Clazz.newArray (-1, [""])); | |
| s2 = (this.isHNMR () ? Clazz.newIntArray (-1, [1, 4]) : Clazz.newIntArray (-1, [1, 3])); | |
| return Clazz.newArray (-1, [s1, s2, Integer.$valueOf (0)]); | |
| case JSV.common.Annotation.AType.PeakList: | |
| s1 = (isNMR ? Clazz.newArray (-1, ["Hz", "ppm"]) : Clazz.newArray (-1, [""])); | |
| s2 = (this.isHNMR () ? Clazz.newIntArray (-1, [1, 2]) : Clazz.newIntArray (-1, [1, 1])); | |
| return Clazz.newArray (-1, [s1, s2, Integer.$valueOf (isNMR ? 1 : 0)]); | |
| case JSV.common.Annotation.AType.NONE: | |
| case JSV.common.Annotation.AType.OverlayLegend: | |
| break; | |
| case JSV.common.Annotation.AType.Views: | |
| break; | |
| } | |
| return null; | |
| }, "JSV.common.Annotation.AType"); | |
| Clazz.defineMethod (c$, "getPeakListArray", | |
| function (m, last, maxY) { | |
| var x = m.getXVal (); | |
| var y = m.getYVal (); | |
| if (this.isNMR ()) y /= maxY; | |
| var dx = Math.abs (x - last[0]); | |
| last[0] = x; | |
| var ddx = dx + last[1]; | |
| last[1] = dx; | |
| var dddx = ddx + last[2]; | |
| last[2] = ddx; | |
| if (this.isNMR ()) { | |
| return Clazz.newDoubleArray (-1, [x, y, x * this.observedFreq, (dx * this.observedFreq > 20 ? 0 : dx * this.observedFreq), (ddx * this.observedFreq > 20 ? 0 : ddx * this.observedFreq), (dddx * this.observedFreq > 20 ? 0 : dddx * this.observedFreq)]); | |
| }return Clazz.newDoubleArray (-1, [x, y]); | |
| }, "JSV.common.Measurement,~A,~N"); | |
| Clazz.defineStatics (c$, | |
| "ERROR", 1.7976931348623157E308, | |
| "SCALE_NONE", 0, | |
| "SCALE_TOP", 1, | |
| "SCALE_BOTTOM", 2, | |
| "SCALE_TOP_BOTTOM", 3, | |
| "gyroData", Clazz.newDoubleArray (-1, [1, 42.5774806, 2, 6.53590131, 3, 45.4148, 3, 32.436, 6, 6.2661, 7, 16.5483, 9, 5.9842, 10, 4.5752, 11, 13.663, 13, 10.70839657, 14, 3.07770646, 15, 4.31726570, 17, 5.7742, 19, 40.07757016, 21, 3.3631, 23, 11.26952167, 25, 2.6083, 27, 11.1031, 29, 8.4655, 31, 17.25144090, 33, 3.2717, 35, 4.1765, 37, 3.4765, 37, 5.819, 39, 3.46, 39, 1.9893, 40, 2.4737, 41, 1.0919, 43, 2.8688, 45, 10.3591, 47, 2.4041, 49, 2.4048, 50, 4.2505, 51, 11.2133, 53, 2.4115, 55, 10.5763, 57, 1.3816, 59, 10.077, 61, 3.8114, 63, 11.2982, 65, 12.103, 67, 2.6694, 69, 10.2478, 71, 13.0208, 73, 1.4897, 75, 7.315, 77, 8.1571, 79, 10.7042, 81, 11.5384, 83, 1.6442, 85, 4.1254, 87, 13.9811, 87, 1.8525, 89, 2.0949, 91, 3.9748, 93, 10.4523, 95, 2.7874, 97, 2.8463, 99, 9.6294, 99, 1.9553, 101, 2.1916, 103, 1.3477, 105, 1.957, 107, 1.7331, 109, 1.9924, 111, 9.0692, 113, 9.4871, 113, 9.3655, 115, 9.3856, 115, 14.0077, 117, 15.261, 119, 15.966, 121, 10.2551, 123, 5.5532, 123, 11.2349, 125, 13.5454, 127, 8.5778, 129, 11.8604, 131, 3.5159, 133, 5.6234, 135, 4.2582, 137, 4.7634, 138, 5.6615, 139, 6.0612, 137, 4.88, 139, 5.39, 141, 2.37, 141, 13.0359, 143, 2.319, 145, 1.429, 143, 11.59, 147, 5.62, 147, 1.7748, 149, 14631, 151, 10.5856, 153, 4.6745, 155, 1.312, 157, 1.72, 159, 10.23, 161, 1.4654, 163, 2.0508, 165, 9.0883, 167, 1.2281, 169, 3.531, 171, 7.5261, 173, 2.073, 175, 4.8626, 176, 3.451, 177, 1.7282, 179, 1.0856, 180, 4.087, 181, 5.1627, 183, 1.7957, 185, 9.7176, 187, 9.817, 187, 0.9856, 189, 3.3536, 191, 0.7658, 191, 0.8319, 195, 9.2922, 197, 0.7406, 199, 7.7123, 201, 2.8469, 203, 24.7316, 205, 24.9749, 207, 9.034, 209, 6.963, 209, 11.7, 211, 9.16, 223, 5.95, 223, 1.3746, 225, 11.187, 227, 5.6, 229, 1.4, 231, 10.2, 235, 0.83, 237, 9.57, 239, 3.09, 243, 4.6, 1E100])); | |
| }); | |