diff --git a/.github/workflows/e2e_testing.yml b/.github/workflows/e2e_testing.yml index 47c01472..aa24dd1b 100644 --- a/.github/workflows/e2e_testing.yml +++ b/.github/workflows/e2e_testing.yml @@ -10,6 +10,6 @@ jobs: - name: Cypress run uses: cypress-io/github-action@v6 with: - build: npm run build - start: npm start + build: npm run --max_old_space_size=12288 build + start: npm --max_old_space_size=12288 start browser: chrome \ No newline at end of file diff --git a/cypress.config.ts b/cypress.config.ts index a119229d..1373358e 100644 --- a/cypress.config.ts +++ b/cypress.config.ts @@ -1,10 +1,16 @@ import { defineConfig } from "cypress"; export default defineConfig({ + pageLoadTimeout: 100000, + requestTimeout: 100000, + responseTimeout: 100000, e2e: { setupNodeEvents(on, config) { // implement node event listeners here }, - experimentalStudio: true + experimentalStudio: true, + pageLoadTimeout: 100000, + requestTimeout: 100000, + responseTimeout: 100000, }, }); diff --git a/cypress/e2e/lcms_spec.cy.ts b/cypress/e2e/lcms_spec.cy.ts new file mode 100644 index 00000000..a9915cad --- /dev/null +++ b/cypress/e2e/lcms_spec.cy.ts @@ -0,0 +1,187 @@ +/// + +describe('LC/MS layouts', () => { + const getAppState = () => cy.window().then((win) => (win as any).__spectraStore.getState()) + + const openLayout = (buttonText: string) => { + cy.viewport(2000, 2000) + cy.visit('http://localhost:3000/') + cy.contains('button', buttonText).click() + } + + const assertNoNaNInPaths = (selector: string) => { + cy.get(`${selector} path[d]`).each(($path) => { + const d = $path.attr('d') || '' + expect(d).to.not.contain('NaN') + }) + } + + const assertLcmsViewerIsStable = () => { + cy.get('.d3Line .d3Svg').should('exist') + cy.get('.d3Multi .d3SvgMulti').should('exist') + cy.get('.d3Rect .d3SvgRect').should('exist') + + assertNoNaNInPaths('.d3Line .d3Svg') + assertNoNaNInPaths('.d3Multi .d3SvgMulti') + assertNoNaNInPaths('.d3Rect .d3SvgRect') + } + + it('OpenLab renders LC/MS line, multi and rect graphs', () => { + openLayout('LC/MS OpenLab') + assertLcmsViewerIsStable() + }) + + it('Chemstation renders LC/MS line, multi and rect graphs', () => { + openLayout('LC/MS Chemstation') + assertLcmsViewerIsStable() + }) + + it('requests MS page on initial load and TIC click in standalone simulation', () => { + openLayout('LC/MS OpenLab') + assertLcmsViewerIsStable() + + // Waits until React has run componentDidUpdate (initial_load on __lcmsDemoRequests). + cy.window().its('__lcmsDemoRequests').should('have.length.above', 0) + + cy.window().then((win) => { + (win as any).__spectraStore.dispatch({ + type: 'DISPLAY_VIEWER_AT', + payload: { x: 0.8, y: 0, graphIndex: 1 }, + }) + }) + + cy.wait(400) + cy.window().its('__lcmsDemoRequests').should('have.length.above', 1) + cy.window().then((win) => { + const requests = (win as any).__lcmsDemoRequests || [] + const latestRequest = requests[requests.length - 1] + expect(latestRequest.trigger).to.equal('user_click') + expect(Number.isFinite(latestRequest.retentionTime)).to.equal(true) + }) + + getAppState().then((stateAfter) => { + expect(Number.isFinite(stateAfter.hplcMs.tic.currentPageValue)).to.equal(true) + }) + }) + + it('updates reducer when adding peak and integration action', () => { + openLayout('LC/MS OpenLab') + assertLcmsViewerIsStable() + + cy.window().then((win) => { + getAppState().then((stateBefore) => { + const peaksBefore = stateBefore.hplcMs.uvvis.currentSpectrum?.peaks?.length || 0 + const integrationsBefore = stateBefore.hplcMs.uvvis.currentSpectrum?.integrations?.length || 0 + + cy.get('.btn-sv-bar-addpeak').click() + cy.get('.d3Line .d3Svg').trigger('click', 600, 350, { which: 1, view: win }) + + const selectedWaveLength = stateBefore.hplcMs.uvvis.selectedWaveLength + const spectrumData = stateBefore.hplcMs.uvvis.currentSpectrum?.data + const xValues = Array.isArray(spectrumData?.x) ? spectrumData.x : [] + const yValues = Array.isArray(spectrumData?.y) ? spectrumData.y : [] + const mid = Math.floor(xValues.length / 2) + const xL = xValues[Math.max(0, mid - 20)] + const xU = xValues[Math.min(xValues.length - 1, mid + 20)] + const hasIntegrationPayload = Number.isFinite(xL) + && Number.isFinite(xU) + && xU !== xL + && xValues.length > 0 + && yValues.length > 0 + + if (hasIntegrationPayload) { + (win as any).__spectraStore.dispatch({ + type: 'UPDATE_HPLCMS_INTEGRATIONS', + payload: { + spectrumId: selectedWaveLength, + integration: { + xExtent: { xL, xU }, + data: spectrumData, + }, + }, + }) + } + + getAppState().then((stateAfter) => { + const peaksAfter = stateAfter.hplcMs.uvvis.currentSpectrum?.peaks?.length || 0 + const integrationsAfter = stateAfter.hplcMs.uvvis.currentSpectrum?.integrations?.length || 0 + expect(peaksAfter).to.be.greaterThan(peaksBefore) + expect(integrationsAfter).to.be.at.least(integrationsBefore) + }) + }) + }) + }) + + it('updates reducer when switching wavelength', () => { + openLayout('LC/MS OpenLab') + assertLcmsViewerIsStable() + + getAppState().then((stateBefore) => { + const wavelengths = stateBefore.hplcMs.uvvis.listWaveLength || [] + expect(wavelengths.length).to.be.greaterThan(1) + const initialWaveLength = stateBefore.hplcMs.uvvis.selectedWaveLength + const nextWaveLength = wavelengths.find((value) => value !== initialWaveLength) + expect(nextWaveLength).to.not.equal(undefined) + + cy.contains('.MuiFormControl-root', 'Wavelength (nm)') + .find('.MuiSelect-select') + .click({ force: true }) + cy.get('li[role="option"]') + .contains(new RegExp(`^\\s*${nextWaveLength}\\s*$`)) + .click({ force: true }) + + getAppState().then((stateAfter) => { + expect(stateAfter.hplcMs.uvvis.selectedWaveLength).to.equal(nextWaveLength) + expect(stateAfter.hplcMs.uvvis.currentSpectrum).to.not.equal(null) + }) + }) + }) + + it('updates TIC polarity on Chemstation', () => { + openLayout('LC/MS Chemstation') + assertLcmsViewerIsStable() + + getAppState().then((stateBefore) => { + const available = stateBefore.hplcMs.tic?.available || {} + const currentPolarity = stateBefore.hplcMs.tic?.polarity + const polarityOrder = ['positive', 'negative', 'neutral'] + const nextPolarity = polarityOrder.find((value) => available[value] && value !== currentPolarity) + if (!nextPolarity) return + + const uiLabelByPolarity: Record = { + positive: 'PLUS', + negative: 'MINUS', + neutral: 'NEUTRAL', + } + const nextLabel = uiLabelByPolarity[nextPolarity] + + cy.contains('.MuiFormControl-root', 'TIC') + .find('.MuiSelect-select') + .click({ force: true }) + cy.get('li[role="option"]').contains(new RegExp(`^\\s*${nextLabel}\\s*$`)).click({ force: true }) + + getAppState().then((stateAfter) => { + expect(stateAfter.hplcMs.tic.polarity).to.equal(nextPolarity) + }) + }) + }) + + it('keeps zoom usable after leaving LC/MS', () => { + openLayout('LC/MS OpenLab') + assertLcmsViewerIsStable() + + cy.contains('button', 'NMR 1H').click() + cy.get('.d3Line .d3Svg').should('exist') + + cy.window().then((win) => { + cy.get('.btn-sv-bar-zoomin').click() + cy.get('.d3Line .brush').should('exist') + cy.get('.d3Line .d3Svg') + .trigger('mousedown', 400, 100, { which: 1, view: win, force: true }) + .trigger('mousemove', { clientX: 800, clientY: 1000, view: win, force: true }) + .trigger('mouseup', { view: win, force: true }) + + cy.get('.btn-sv-bar-zoomreset').click() + }) + }) +}) diff --git a/cypress/e2e/nmr1h_spec.cy.ts b/cypress/e2e/nmr1h_spec.cy.ts index cfc389be..cd76a6ed 100644 --- a/cypress/e2e/nmr1h_spec.cy.ts +++ b/cypress/e2e/nmr1h_spec.cy.ts @@ -70,7 +70,7 @@ describe('NMR 1H', () => { cy.get('.btn-sv-bar-spctrum').click() cy.get('.input-sv-bar-layout').click() cy.get('.option-sv-bar-layout').should($li => { - expect($li).to.have.length(24) + expect($li).to.have.length(25) }) cy.get('ul li:nth-child(9)').click() diff --git a/dist/actions/axes.js b/dist/actions/axes.js new file mode 100644 index 00000000..3cde6370 --- /dev/null +++ b/dist/actions/axes.js @@ -0,0 +1,19 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.updateYAxis = exports.updateXAxis = void 0; +var _action_type = require("../constants/action_type"); +const updateXAxis = payload => ({ + type: _action_type.AXES.UPDATE_X_AXIS, + payload +}); +exports.updateXAxis = updateXAxis; +const updateYAxis = payload => ({ + type: _action_type.AXES.UPDATE_Y_AXIS, + payload +}); + +// eslint-disable-line +exports.updateYAxis = updateYAxis; \ No newline at end of file diff --git a/dist/actions/curve.js b/dist/actions/curve.js new file mode 100644 index 00000000..07877ece --- /dev/null +++ b/dist/actions/curve.js @@ -0,0 +1,25 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.toggleShowAllCurves = exports.setAllCurves = exports.selectCurve = void 0; +var _action_type = require("../constants/action_type"); +const selectCurve = payload => ({ + type: _action_type.CURVE.SELECT_WORKING_CURVE, + payload +}); +exports.selectCurve = selectCurve; +const setAllCurves = (payload, meta) => ({ + type: _action_type.CURVE.SET_ALL_CURVES, + payload, + ...(meta && typeof meta === 'object' ? { + meta + } : {}) +}); +exports.setAllCurves = setAllCurves; +const toggleShowAllCurves = payload => ({ + type: _action_type.CURVE.SET_SHOULD_SHOW_ALL_CURVES, + payload +}); +exports.toggleShowAllCurves = toggleShowAllCurves; \ No newline at end of file diff --git a/dist/actions/cyclic_voltammetry.js b/dist/actions/cyclic_voltammetry.js new file mode 100644 index 00000000..a6e14b76 --- /dev/null +++ b/dist/actions/cyclic_voltammetry.js @@ -0,0 +1,91 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.toggleCyclicVoltaDensity = exports.setWorkWithMaxPeak = exports.setCylicVoltaRefFactor = exports.setCylicVoltaRef = exports.setCyclicVoltaAreaValue = exports.setCyclicVoltaAreaUnit = exports.selectRefPeaks = exports.selectPairPeak = exports.removeCylicVoltaPecker = exports.removeCylicVoltaPairPeak = exports.removeCylicVoltaMinPeak = exports.removeCylicVoltaMaxPeak = exports.addNewCylicVoltaPairPeak = exports.addCylicVoltaPecker = exports.addCylicVoltaMinPeak = exports.addCylicVoltaMaxPeak = void 0; +var _action_type = require("../constants/action_type"); +const addNewCylicVoltaPairPeak = payload => ({ + type: _action_type.CYCLIC_VOLTA_METRY.ADD_PAIR_PEAKS, + payload +}); +exports.addNewCylicVoltaPairPeak = addNewCylicVoltaPairPeak; +const removeCylicVoltaPairPeak = payload => ({ + type: _action_type.CYCLIC_VOLTA_METRY.REMOVE_PAIR_PEAKS, + payload +}); +exports.removeCylicVoltaPairPeak = removeCylicVoltaPairPeak; +const addCylicVoltaMaxPeak = payload => ({ + type: _action_type.CYCLIC_VOLTA_METRY.ADD_MAX_PEAK, + payload +}); +exports.addCylicVoltaMaxPeak = addCylicVoltaMaxPeak; +const removeCylicVoltaMaxPeak = payload => ({ + type: _action_type.CYCLIC_VOLTA_METRY.REMOVE_MAX_PEAK, + payload +}); +exports.removeCylicVoltaMaxPeak = removeCylicVoltaMaxPeak; +const addCylicVoltaMinPeak = payload => ({ + type: _action_type.CYCLIC_VOLTA_METRY.ADD_MIN_PEAK, + payload +}); +exports.addCylicVoltaMinPeak = addCylicVoltaMinPeak; +const removeCylicVoltaMinPeak = payload => ({ + type: _action_type.CYCLIC_VOLTA_METRY.REMOVE_MIN_PEAK, + payload +}); +exports.removeCylicVoltaMinPeak = removeCylicVoltaMinPeak; +const setWorkWithMaxPeak = payload => ({ + type: _action_type.CYCLIC_VOLTA_METRY.WORK_WITH_MAX_PEAK, + payload +}); +exports.setWorkWithMaxPeak = setWorkWithMaxPeak; +const selectPairPeak = payload => ({ + type: _action_type.CYCLIC_VOLTA_METRY.SELECT_PAIR_PEAK, + payload +}); +exports.selectPairPeak = selectPairPeak; +const addCylicVoltaPecker = payload => ({ + type: _action_type.CYCLIC_VOLTA_METRY.ADD_PECKER, + payload +}); +exports.addCylicVoltaPecker = addCylicVoltaPecker; +const removeCylicVoltaPecker = payload => ({ + type: _action_type.CYCLIC_VOLTA_METRY.REMOVE_PECKER, + payload +}); +exports.removeCylicVoltaPecker = removeCylicVoltaPecker; +const selectRefPeaks = payload => ({ + type: _action_type.CYCLIC_VOLTA_METRY.SELECT_REF_PEAK, + payload +}); +exports.selectRefPeaks = selectRefPeaks; +const setCylicVoltaRefFactor = payload => ({ + type: _action_type.CYCLIC_VOLTA_METRY.SET_FACTOR, + payload +}); +exports.setCylicVoltaRefFactor = setCylicVoltaRefFactor; +const setCylicVoltaRef = payload => ({ + type: _action_type.CYCLIC_VOLTA_METRY.SET_REF, + payload +}); +exports.setCylicVoltaRef = setCylicVoltaRef; +const setCyclicVoltaAreaValue = value => ({ + type: _action_type.CYCLIC_VOLTA_METRY.SET_AREA_VALUE, + payload: { + value + } +}); +exports.setCyclicVoltaAreaValue = setCyclicVoltaAreaValue; +const setCyclicVoltaAreaUnit = unit => ({ + type: _action_type.CYCLIC_VOLTA_METRY.SET_AREA_UNIT, + payload: { + unit + } +}); +exports.setCyclicVoltaAreaUnit = setCyclicVoltaAreaUnit; +const toggleCyclicVoltaDensity = payload => ({ + type: _action_type.CYCLIC_VOLTA_METRY.TOGGLE_DENSITY, + payload +}); +exports.toggleCyclicVoltaDensity = toggleCyclicVoltaDensity; \ No newline at end of file diff --git a/dist/actions/detector.js b/dist/actions/detector.js new file mode 100644 index 00000000..4736ec21 --- /dev/null +++ b/dist/actions/detector.js @@ -0,0 +1,14 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.updateDetector = void 0; +var _action_type = require("../constants/action_type"); +/* eslint-disable import/prefer-default-export */ + +const updateDetector = payload => ({ + type: _action_type.SEC.UPDATE_DETECTOR, + payload +}); +exports.updateDetector = updateDetector; \ No newline at end of file diff --git a/dist/actions/edit_peak.js b/dist/actions/edit_peak.js new file mode 100644 index 00000000..cbb80814 --- /dev/null +++ b/dist/actions/edit_peak.js @@ -0,0 +1,22 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.rmFromPosList = exports.rmFromNegList = exports.clearAllPeaks = void 0; +var _action_type = require("../constants/action_type"); +const rmFromPosList = payload => ({ + type: _action_type.EDITPEAK.RM_POSITIVE, + payload +}); +exports.rmFromPosList = rmFromPosList; +const rmFromNegList = payload => ({ + type: _action_type.EDITPEAK.RM_NEGATIVE, + payload +}); +exports.rmFromNegList = rmFromNegList; +const clearAllPeaks = payload => ({ + type: _action_type.EDITPEAK.CLEAR_ALL, + payload +}); +exports.clearAllPeaks = clearAllPeaks; \ No newline at end of file diff --git a/dist/actions/forecast.js b/dist/actions/forecast.js new file mode 100644 index 00000000..6ef4cae6 --- /dev/null +++ b/dist/actions/forecast.js @@ -0,0 +1,27 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.setNmrStatus = exports.setIrStatus = exports.initForecastStatus = exports.clearForecastStatus = void 0; +var _action_type = require("../constants/action_type"); +const initForecastStatus = payload => ({ + type: _action_type.FORECAST.INIT_STATUS, + payload +}); +exports.initForecastStatus = initForecastStatus; +const setIrStatus = payload => ({ + type: _action_type.FORECAST.SET_IR_STATUS, + payload +}); +exports.setIrStatus = setIrStatus; +const setNmrStatus = payload => ({ + type: _action_type.FORECAST.SET_NMR_STATUS, + payload +}); +exports.setNmrStatus = setNmrStatus; +const clearForecastStatus = payload => ({ + type: _action_type.FORECAST.CLEAR_STATUS, + payload +}); +exports.clearForecastStatus = clearForecastStatus; \ No newline at end of file diff --git a/dist/actions/hplc_ms.js b/dist/actions/hplc_ms.js new file mode 100644 index 00000000..94fd7a17 --- /dev/null +++ b/dist/actions/hplc_ms.js @@ -0,0 +1,66 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.uvvisUndo = exports.uvvisRedo = exports.updateCurrentPageValue = exports.setLcmsIntegrationsExport = exports.selectWavelength = exports.clearIntegrationAllHplcMs = exports.clearHplcMsState = exports.clearAllPeaksHplcMs = exports.changeTic = void 0; +var _action_type = require("../constants/action_type"); +const normalizeTicPolarity = value => { + if (value === 0 || value === '0') return 'positive'; + if (value === 1 || value === '1') return 'negative'; + if (value === 2 || value === '2') return 'neutral'; + if (value === 'positive' || value === 'negative' || value === 'neutral') return value; + return 'positive'; +}; +const setLcmsIntegrationsExport = lcmsIntegrationsExport => ({ + type: _action_type.HPLC_MS.SET_LCMS_INTEGRATIONS_EXPORT, + payload: { + lcmsIntegrationsExport + } +}); +exports.setLcmsIntegrationsExport = setLcmsIntegrationsExport; +const selectWavelength = payload => ({ + type: _action_type.HPLC_MS.UPDATE_UVVIS_WAVE_LENGTH, + payload +}); +exports.selectWavelength = selectWavelength; +const changeTic = payload => { + const rawValue = payload?.target?.value ?? payload?.polarity ?? 'positive'; + const polarity = normalizeTicPolarity(rawValue); + return { + type: _action_type.HPLC_MS.SELECT_TIC_CURVE, + payload: { + polarity + } + }; +}; +exports.changeTic = changeTic; +const updateCurrentPageValue = currentPageValue => ({ + type: _action_type.HPLC_MS.UPDATE_CURRENT_PAGE_VALUE, + payload: { + currentPageValue + } +}); +exports.updateCurrentPageValue = updateCurrentPageValue; +const uvvisUndo = () => ({ + type: _action_type.HPLC_MS.UVVIS_UNDO +}); +exports.uvvisUndo = uvvisUndo; +const uvvisRedo = () => ({ + type: _action_type.HPLC_MS.UVVIS_REDO +}); +exports.uvvisRedo = uvvisRedo; +const clearIntegrationAllHplcMs = payload => ({ + type: _action_type.HPLC_MS.CLEAR_INTEGRATION_ALL_HPLCMS, + payload +}); +exports.clearIntegrationAllHplcMs = clearIntegrationAllHplcMs; +const clearAllPeaksHplcMs = payload => ({ + type: _action_type.HPLC_MS.CLEAR_ALL_PEAKS_HPLCMS, + payload +}); +exports.clearAllPeaksHplcMs = clearAllPeaksHplcMs; +const clearHplcMsState = () => ({ + type: _action_type.HPLC_MS.CLEAR_STATE +}); +exports.clearHplcMsState = clearHplcMsState; \ No newline at end of file diff --git a/dist/actions/integration.js b/dist/actions/integration.js new file mode 100644 index 00000000..f81706c4 --- /dev/null +++ b/dist/actions/integration.js @@ -0,0 +1,24 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.sweepIntegration = exports.setIntegrationFkr = exports.clearIntegrationAll = void 0; +var _action_type = require("../constants/action_type"); +const sweepIntegration = payload => ({ + type: _action_type.INTEGRATION.SWEEP, + payload +}); +exports.sweepIntegration = sweepIntegration; +const setIntegrationFkr = payload => ({ + type: _action_type.INTEGRATION.SET_FKR, + payload +}); +exports.setIntegrationFkr = setIntegrationFkr; +const clearIntegrationAll = payload => ({ + type: _action_type.INTEGRATION.CLEAR_ALL, + payload +}); + +// eslint-disable-line +exports.clearIntegrationAll = clearIntegrationAll; \ No newline at end of file diff --git a/dist/actions/jcamp.js b/dist/actions/jcamp.js new file mode 100644 index 00000000..302fb464 --- /dev/null +++ b/dist/actions/jcamp.js @@ -0,0 +1,27 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.toggleShow = exports.rmOthersOne = exports.clearAll = exports.addOthers = void 0; +var _action_type = require("../constants/action_type"); +const addOthers = payload => ({ + type: _action_type.JCAMP.ADD_OTHERS, + payload +}); +exports.addOthers = addOthers; +const rmOthersOne = payload => ({ + type: _action_type.JCAMP.RM_OTHERS_ONE, + payload +}); +exports.rmOthersOne = rmOthersOne; +const toggleShow = payload => ({ + type: _action_type.JCAMP.TOGGLE_SHOW, + payload +}); +exports.toggleShow = toggleShow; +const clearAll = payload => ({ + type: _action_type.JCAMP.CLEAR_ALL, + payload +}); +exports.clearAll = clearAll; \ No newline at end of file diff --git a/dist/actions/layout.js b/dist/actions/layout.js new file mode 100644 index 00000000..7651a640 --- /dev/null +++ b/dist/actions/layout.js @@ -0,0 +1,14 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.updateLayout = void 0; +var _action_type = require("../constants/action_type"); +const updateLayout = payload => ({ + type: _action_type.LAYOUT.UPDATE, + payload +}); + +// eslint-disable-line +exports.updateLayout = updateLayout; \ No newline at end of file diff --git a/dist/actions/manager.js b/dist/actions/manager.js new file mode 100644 index 00000000..f2effe9c --- /dev/null +++ b/dist/actions/manager.js @@ -0,0 +1,42 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.resetMultiplicity = exports.resetInitNmr = exports.resetInitMs = exports.resetInitCommonWithIntergation = exports.resetInitCommon = exports.resetDetector = exports.resetAll = void 0; +var _action_type = require("../constants/action_type"); +const resetAll = payload => ({ + type: _action_type.MANAGER.RESETALL, + payload +}); +exports.resetAll = resetAll; +const resetInitCommon = payload => ({ + type: _action_type.MANAGER.RESET_INIT_COMMON, + payload +}); +exports.resetInitCommon = resetInitCommon; +const resetInitNmr = payload => ({ + type: _action_type.MANAGER.RESET_INIT_NMR, + payload +}); +exports.resetInitNmr = resetInitNmr; +const resetInitMs = payload => ({ + type: _action_type.MANAGER.RESET_INIT_MS, + payload +}); +exports.resetInitMs = resetInitMs; +const resetInitCommonWithIntergation = payload => ({ + type: _action_type.MANAGER.RESET_INIT_COMMON_WITH_INTERGATION, + payload +}); +exports.resetInitCommonWithIntergation = resetInitCommonWithIntergation; +const resetDetector = () => ({ + type: _action_type.MANAGER.RESET_DETECTOR +}); +exports.resetDetector = resetDetector; +const resetMultiplicity = () => ({ + type: _action_type.MANAGER.RESET_MULTIPLICITY +}); + +// eslint-disable-line +exports.resetMultiplicity = resetMultiplicity; \ No newline at end of file diff --git a/dist/actions/meta.js b/dist/actions/meta.js new file mode 100644 index 00000000..dce5acf9 --- /dev/null +++ b/dist/actions/meta.js @@ -0,0 +1,17 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.updateMetaPeaks = exports.updateDSCMetaData = void 0; +var _action_type = require("../constants/action_type"); +const updateMetaPeaks = payload => ({ + type: _action_type.META.UPDATE_PEAKS, + payload +}); +exports.updateMetaPeaks = updateMetaPeaks; +const updateDSCMetaData = payload => ({ + type: _action_type.META.UPDATE_META_DATA, + payload +}); +exports.updateDSCMetaData = updateDSCMetaData; \ No newline at end of file diff --git a/dist/actions/multiplicity.js b/dist/actions/multiplicity.js new file mode 100644 index 00000000..d057f481 --- /dev/null +++ b/dist/actions/multiplicity.js @@ -0,0 +1,39 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.updateMpyJ = exports.selectMpyType = exports.rmMpyPeakByPanel = exports.resetMpyOne = exports.clickMpyOne = exports.clearMpyAll = void 0; +var _action_type = require("../constants/action_type"); +const clickMpyOne = payload => ({ + type: _action_type.MULTIPLICITY.ONE_CLICK, + payload +}); +exports.clickMpyOne = clickMpyOne; +const rmMpyPeakByPanel = payload => ({ + type: _action_type.MULTIPLICITY.PEAK_RM_BY_PANEL, + payload +}); +exports.rmMpyPeakByPanel = rmMpyPeakByPanel; +const selectMpyType = payload => ({ + type: _action_type.MULTIPLICITY.TYPE_SELECT, + payload +}); +exports.selectMpyType = selectMpyType; +const clearMpyAll = payload => ({ + type: _action_type.MULTIPLICITY.CLEAR_ALL, + payload +}); +exports.clearMpyAll = clearMpyAll; +const resetMpyOne = payload => ({ + type: _action_type.MULTIPLICITY.RESET_ONE, + payload +}); +exports.resetMpyOne = resetMpyOne; +const updateMpyJ = payload => ({ + type: _action_type.MULTIPLICITY.UPDATE_J, + payload +}); + +// eslint-disable-line +exports.updateMpyJ = updateMpyJ; \ No newline at end of file diff --git a/dist/actions/scan.js b/dist/actions/scan.js new file mode 100644 index 00000000..c8069390 --- /dev/null +++ b/dist/actions/scan.js @@ -0,0 +1,22 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.toggleScanIsAuto = exports.setScanTarget = exports.resetScanTarget = void 0; +var _action_type = require("../constants/action_type"); +const setScanTarget = payload => ({ + type: _action_type.SCAN.SET_TARGET, + payload +}); +exports.setScanTarget = setScanTarget; +const resetScanTarget = () => ({ + type: _action_type.SCAN.SET_TARGET, + payload: false +}); +exports.resetScanTarget = resetScanTarget; +const toggleScanIsAuto = payload => ({ + type: _action_type.SCAN.TOGGLE_ISAUTO, + payload +}); +exports.toggleScanIsAuto = toggleScanIsAuto; \ No newline at end of file diff --git a/dist/actions/shift.js b/dist/actions/shift.js new file mode 100644 index 00000000..62adf12a --- /dev/null +++ b/dist/actions/shift.js @@ -0,0 +1,19 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.setShiftRef = exports.rmShiftPeak = void 0; +var _action_type = require("../constants/action_type"); +const setShiftRef = payload => ({ + type: _action_type.SHIFT.SET_REF, + payload +}); +exports.setShiftRef = setShiftRef; +const rmShiftPeak = () => ({ + type: _action_type.SHIFT.RM_PEAK, + payload: null +}); + +// eslint-disable-line +exports.rmShiftPeak = rmShiftPeak; \ No newline at end of file diff --git a/dist/actions/status.js b/dist/actions/status.js new file mode 100644 index 00000000..d7efff6f --- /dev/null +++ b/dist/actions/status.js @@ -0,0 +1,22 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.toggleSubmitBtn = exports.toggleAllBtn = exports.enableAllBtn = void 0; +var _action_type = require("../constants/action_type"); +const toggleSubmitBtn = () => ({ + type: _action_type.STATUS.TOGGLEBTNSUBMIT, + payload: [] +}); +exports.toggleSubmitBtn = toggleSubmitBtn; +const toggleAllBtn = () => ({ + type: _action_type.STATUS.TOGGLEBTNALL, + payload: [] +}); +exports.toggleAllBtn = toggleAllBtn; +const enableAllBtn = () => ({ + type: _action_type.STATUS.ENABLEBTNALL, + payload: [] +}); +exports.enableAllBtn = enableAllBtn; \ No newline at end of file diff --git a/dist/actions/submit.js b/dist/actions/submit.js new file mode 100644 index 00000000..66611588 --- /dev/null +++ b/dist/actions/submit.js @@ -0,0 +1,27 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.updateOperation = exports.updateDecimal = exports.toggleIsIntensity = exports.toggleIsAscend = void 0; +var _action_type = require("../constants/action_type"); +const toggleIsAscend = () => ({ + type: _action_type.SUBMIT.TOGGLE_IS_ASCEND, + payload: false +}); +exports.toggleIsAscend = toggleIsAscend; +const toggleIsIntensity = () => ({ + type: _action_type.SUBMIT.TOGGLE_IS_INTENSITY, + payload: false +}); +exports.toggleIsIntensity = toggleIsIntensity; +const updateOperation = payload => ({ + type: _action_type.SUBMIT.UPDATE_OPERATION, + payload +}); +exports.updateOperation = updateOperation; +const updateDecimal = payload => ({ + type: _action_type.SUBMIT.UPDATE_DECIMAL, + payload +}); +exports.updateDecimal = updateDecimal; \ No newline at end of file diff --git a/dist/actions/threshold.js b/dist/actions/threshold.js new file mode 100644 index 00000000..3feeeee2 --- /dev/null +++ b/dist/actions/threshold.js @@ -0,0 +1,32 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.updateUpperThresholdValue = exports.updateThresholdValue = exports.updateLowerThresholdValue = exports.toggleThresholdIsEdit = exports.resetThresholdValue = void 0; +var _action_type = require("../constants/action_type"); +const updateThresholdValue = payload => ({ + type: _action_type.THRESHOLD.UPDATE_VALUE, + payload +}); +exports.updateThresholdValue = updateThresholdValue; +const resetThresholdValue = () => ({ + type: _action_type.THRESHOLD.RESET_VALUE, + payload: false +}); +exports.resetThresholdValue = resetThresholdValue; +const toggleThresholdIsEdit = payload => ({ + type: _action_type.THRESHOLD.TOGGLE_ISEDIT, + payload +}); +exports.toggleThresholdIsEdit = toggleThresholdIsEdit; +const updateUpperThresholdValue = payload => ({ + type: _action_type.THRESHOLD.UPDATE_UPPER_VALUE, + payload +}); +exports.updateUpperThresholdValue = updateUpperThresholdValue; +const updateLowerThresholdValue = payload => ({ + type: _action_type.THRESHOLD.UPDATE_LOWER_VALUE, + payload +}); +exports.updateLowerThresholdValue = updateLowerThresholdValue; \ No newline at end of file diff --git a/dist/actions/ui.js b/dist/actions/ui.js new file mode 100644 index 00000000..4e3cbdcb --- /dev/null +++ b/dist/actions/ui.js @@ -0,0 +1,46 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.setUiViewerType = exports.setUiSweepType = exports.selectUiSweep = exports.scrollUiWheel = exports.displaySubViewerAt = exports.clickUiTarget = void 0; +var _action_type = require("../constants/action_type"); +const setUiViewerType = payload => ({ + type: _action_type.UI.VIEWER.SET_TYPE, + payload +}); +exports.setUiViewerType = setUiViewerType; +const setUiSweepType = (payload, jcampIdx = 0) => ({ + type: _action_type.UI.SWEEP.SET_TYPE, + payload, + jcampIdx +}); +exports.setUiSweepType = setUiSweepType; +const selectUiSweep = payload => ({ + type: _action_type.UI.SWEEP.SELECT, + payload +}); +exports.selectUiSweep = selectUiSweep; +const scrollUiWheel = payload => ({ + type: _action_type.UI.WHEEL.SCROLL, + payload +}); +exports.scrollUiWheel = scrollUiWheel; +const clickUiTarget = (payload, onPeak, voltammetryPeakIdx = 0, jcampIdx = 0, onPecker = false, sourceHint = null) => ({ + type: _action_type.UI.CLICK_TARGET, + payload, + onPeak, + voltammetryPeakIdx, + jcampIdx, + onPecker, + sourceHint +}); +exports.clickUiTarget = clickUiTarget; +const displaySubViewerAt = payload => ({ + type: _action_type.UI.SUB_VIEWER.DISPLAY_VIEWER_AT, + payload: payload == null ? { + x: null, + y: null + } : payload +}); +exports.displaySubViewerAt = displaySubViewerAt; \ No newline at end of file diff --git a/dist/actions/wavelength.js b/dist/actions/wavelength.js new file mode 100644 index 00000000..e8008550 --- /dev/null +++ b/dist/actions/wavelength.js @@ -0,0 +1,14 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.updateWaveLength = void 0; +var _action_type = require("../constants/action_type"); +const updateWaveLength = payload => ({ + type: _action_type.XRD.UPDATE_WAVE_LENGTH, + payload +}); + +// eslint-disable-line +exports.updateWaveLength = updateWaveLength; \ No newline at end of file diff --git a/dist/app.js b/dist/app.js new file mode 100644 index 00000000..d66e1117 --- /dev/null +++ b/dist/app.js @@ -0,0 +1,143 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "FN", { + enumerable: true, + get: function get() { + return _fn.default; + } +}); +exports.store = exports.SpectraEditor = void 0; +var _react = _interopRequireDefault(require("react")); +var _reactRedux = require("react-redux"); +var _redux = require("redux"); +var _propTypes = _interopRequireDefault(require("prop-types")); +var _material = require("@mui/material"); +require("regenerator-runtime/runtime"); +var _reduxSaga = _interopRequireDefault(require("redux-saga")); +var _index = _interopRequireDefault(require("./reducers/index")); +var _index2 = _interopRequireDefault(require("./sagas/index")); +var _layer_init = _interopRequireDefault(require("./layer_init")); +var _fn = _interopRequireDefault(require("./fn")); +var _jsxRuntime = require("react/jsx-runtime"); +/* eslint-disable react/function-component-definition, react/require-default-props */ + +// eslint-disable-line + +// import { logger } from 'redux-logger'; + +// - - - store & middleware - - - +const sagaMiddleware = (0, _reduxSaga.default)(); +const middlewares = [sagaMiddleware]; // logger + +const store = exports.store = (0, _redux.compose)((0, _redux.applyMiddleware)(...middlewares))(_redux.createStore)(_index.default); +try { + sagaMiddleware.run(_index2.default); +} catch (error) { + // Keep startup failure visible without crashing silently. + console.error('[SpectraEditor] Failed to start sagas', error); // eslint-disable-line no-console +} + +// - - - helper - - - +const ensureQuillDelta = descs => { + const isArr = Array.isArray(descs); + return isArr ? descs : [{ + insert: descs + }]; +}; + +// - - - React - - - +// LC/MS: when `onLcmsPageRequest` is set, the host (e.g. ELN) must reload `multiEntities` +// with MS data for the requested RT/polarity. Triggers include `user_click`, `initial`, +// and `tic_polarity` (TIC polarity dropdown). The standalone demo in `src/index.js` +// implements a local mock via `buildLcmsStandaloneMultiEntities`. +const SpectraEditor = ({ + entity, + others, + cLabel, + xLabel, + yLabel, + operations, + forecast, + molSvg, + editorOnly, + descriptions, + exactMass, + canChangeDescription, + onDescriptionChanged, + multiEntities, + multiMolSvgs, + entityFileNames, + userManualLink, + onLcmsPageRequest +}) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactRedux.Provider, { + store: store, + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.StyledEngineProvider, { + injectFirst: true, + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_layer_init.default, { + entity: entity, + multiEntities: multiEntities, + entityFileNames: entityFileNames, + userManualLink: userManualLink, + others: others, + cLabel: cLabel, + xLabel: xLabel, + yLabel: yLabel, + forecast: forecast, + operations: operations, + descriptions: ensureQuillDelta(descriptions), + molSvg: molSvg, + multiMolSvgs: multiMolSvgs, + editorOnly: editorOnly, + exactMass: exactMass, + canChangeDescription: canChangeDescription, + onDescriptionChanged: onDescriptionChanged, + onLcmsPageRequest: onLcmsPageRequest + }) + }) +}); +exports.SpectraEditor = SpectraEditor; +SpectraEditor.propTypes = { + entity: _propTypes.default.object.isRequired, + multiEntities: _propTypes.default.array, + entityFileNames: _propTypes.default.array, + others: _propTypes.default.object, + cLabel: _propTypes.default.string, + xLabel: _propTypes.default.string, + yLabel: _propTypes.default.string, + forecast: _propTypes.default.object, + operations: _propTypes.default.array, + descriptions: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.array]), + molSvg: _propTypes.default.string, + multiMolSvgs: _propTypes.default.array, + editorOnly: _propTypes.default.bool, + canChangeDescription: _propTypes.default.bool, + onDescriptionChanged: _propTypes.default.func, + onLcmsPageRequest: _propTypes.default.func, + userManualLink: _propTypes.default.object, + exactMass: _propTypes.default.string +}; +SpectraEditor.defaultProps = { + others: { + others: [], + addOthersCb: false + }, + multiEntities: [], + entityFileNames: [], + cLabel: '', + xLabel: '', + yLabel: '', + forecast: {}, + operations: [], + descriptions: [], + molSvg: '', + exactMass: '', + multiMolSvgs: [], + editorOnly: false, + canChangeDescription: false, + userManualLink: {}, + onLcmsPageRequest: null +}; \ No newline at end of file diff --git a/dist/components/cmd_bar/01_viewer.js b/dist/components/cmd_bar/01_viewer.js new file mode 100644 index 00000000..87093240 --- /dev/null +++ b/dist/components/cmd_bar/01_viewer.js @@ -0,0 +1,89 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var _react = _interopRequireDefault(require("react")); +var _reactRedux = require("react-redux"); +var _redux = require("redux"); +var _classnames = _interopRequireDefault(require("classnames")); +var _propTypes = _interopRequireDefault(require("prop-types")); +var _withStyles = _interopRequireDefault(require("@mui/styles/withStyles")); +var _SpellcheckOutlined = _interopRequireDefault(require("@mui/icons-material/SpellcheckOutlined")); +var _TimelineOutlined = _interopRequireDefault(require("@mui/icons-material/TimelineOutlined")); +var _Tooltip = _interopRequireDefault(require("@mui/material/Tooltip")); +var _ui = require("../../actions/ui"); +var _cfg = _interopRequireDefault(require("../../helpers/cfg")); +var _common = require("./common"); +var _list_ui = require("../../constants/list_ui"); +var _jsxRuntime = require("react/jsx-runtime"); +/* eslint-disable prefer-object-spread, react/function-component-definition */ + +const styles = () => Object.assign({}, _common.commonStyle); +const Viewer = ({ + classes, + isfocusSpectrumSt, + isfocusAnalysisSt, + hideCmdAnaViewerSt, + disableCmdAnaViewerSt, + setUiViewerTypeAct +}) => { + const onViewSpectrum = () => setUiViewerTypeAct(_list_ui.LIST_UI_VIEWER_TYPE.SPECTRUM); + const onViewAnalysis = () => setUiViewerTypeAct(_list_ui.LIST_UI_VIEWER_TYPE.ANALYSIS); + return /*#__PURE__*/(0, _jsxRuntime.jsxs)("span", { + className: classes.group, + "data-testid": "Viewer", + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Tooltip.default, { + title: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: "txt-sv-tp", + children: "Spectrum Viewer" + }), + children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_common.MuButton, { + className: (0, _classnames.default)((0, _common.focusStyle)(isfocusSpectrumSt, classes), 'btn-sv-bar-spctrum'), + onClick: onViewSpectrum, + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_TimelineOutlined.default, { + className: classes.icon + }) + }) + }) + }), hideCmdAnaViewerSt ? null : /*#__PURE__*/(0, _jsxRuntime.jsx)(_Tooltip.default, { + title: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: "txt-sv-tp", + children: "Analysis Viewer" + }), + children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_common.MuButton, { + className: (0, _classnames.default)((0, _common.focusStyle)(isfocusAnalysisSt, classes), 'btn-sv-bar-analysis'), + disabled: disableCmdAnaViewerSt, + onClick: onViewAnalysis, + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_SpellcheckOutlined.default, { + className: classes.icon + }) + }) + }) + })] + }); +}; +const mapStateToProps = (state, props) => ( +// eslint-disable-line +{ + isfocusSpectrumSt: state.ui.viewer === _list_ui.LIST_UI_VIEWER_TYPE.SPECTRUM, + isfocusAnalysisSt: state.ui.viewer === _list_ui.LIST_UI_VIEWER_TYPE.ANALYSIS, + hideCmdAnaViewerSt: _cfg.default.hideCmdAnaViewer(state.layout) || props.editorOnly, + disableCmdAnaViewerSt: _cfg.default.btnCmdAnaViewer(state.layout) +}); +const mapDispatchToProps = dispatch => (0, _redux.bindActionCreators)({ + setUiViewerTypeAct: _ui.setUiViewerType +}, dispatch); +Viewer.propTypes = { + classes: _propTypes.default.object.isRequired, + isfocusSpectrumSt: _propTypes.default.bool.isRequired, + isfocusAnalysisSt: _propTypes.default.bool.isRequired, + hideCmdAnaViewerSt: _propTypes.default.bool.isRequired, + disableCmdAnaViewerSt: _propTypes.default.bool.isRequired, + setUiViewerTypeAct: _propTypes.default.func.isRequired +}; +var _default = exports.default = (0, _redux.compose)((0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps), (0, _withStyles.default)(styles))(Viewer); \ No newline at end of file diff --git a/dist/components/cmd_bar/02_zoom.js b/dist/components/cmd_bar/02_zoom.js new file mode 100644 index 00000000..beed42c9 --- /dev/null +++ b/dist/components/cmd_bar/02_zoom.js @@ -0,0 +1,78 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var _react = _interopRequireDefault(require("react")); +var _reactRedux = require("react-redux"); +var _redux = require("redux"); +var _classnames = _interopRequireDefault(require("classnames")); +var _propTypes = _interopRequireDefault(require("prop-types")); +var _withStyles = _interopRequireDefault(require("@mui/styles/withStyles")); +var _ZoomInOutlined = _interopRequireDefault(require("@mui/icons-material/ZoomInOutlined")); +var _FindReplaceOutlined = _interopRequireDefault(require("@mui/icons-material/FindReplaceOutlined")); +var _Tooltip = _interopRequireDefault(require("@mui/material/Tooltip")); +var _ui = require("../../actions/ui"); +var _common = require("./common"); +var _list_ui = require("../../constants/list_ui"); +var _jsxRuntime = require("react/jsx-runtime"); +/* eslint-disable prefer-object-spread, react/function-component-definition */ + +const styles = () => Object.assign({}, _common.commonStyle); +const Zoom = ({ + classes, + isfocusZoomSt, + setUiSweepTypeAct +}) => { + const onSweepZoomIn = () => setUiSweepTypeAct(_list_ui.LIST_UI_SWEEP_TYPE.ZOOMIN); + const onSweepZoomReset = () => setUiSweepTypeAct(_list_ui.LIST_UI_SWEEP_TYPE.ZOOMRESET); + return /*#__PURE__*/(0, _jsxRuntime.jsxs)("span", { + className: classes.group, + "data-testid": "Zoom", + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Tooltip.default, { + title: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: "txt-sv-tp", + children: "Zoom In" + }), + children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_common.MuButton, { + className: (0, _classnames.default)((0, _common.focusStyle)(isfocusZoomSt, classes), 'btn-sv-bar-zoomin'), + onClick: onSweepZoomIn, + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_ZoomInOutlined.default, { + className: (0, _classnames.default)(classes.icon, classes.iconWp) + }) + }) + }) + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Tooltip.default, { + title: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: "txt-sv-tp", + children: "Reset Zoom" + }), + children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_common.MuButton, { + className: (0, _classnames.default)('btn-sv-bar-zoomreset'), + onClick: onSweepZoomReset, + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_FindReplaceOutlined.default, { + className: classes.icon + }) + }) + }) + })] + }); +}; +const mapStateToProps = (state, _) => ( +// eslint-disable-line +{ + isfocusZoomSt: state.ui.sweepType === _list_ui.LIST_UI_SWEEP_TYPE.ZOOMIN +}); +const mapDispatchToProps = dispatch => (0, _redux.bindActionCreators)({ + setUiSweepTypeAct: _ui.setUiSweepType +}, dispatch); +Zoom.propTypes = { + classes: _propTypes.default.object.isRequired, + isfocusZoomSt: _propTypes.default.bool.isRequired, + setUiSweepTypeAct: _propTypes.default.func.isRequired +}; +var _default = exports.default = (0, _redux.compose)((0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps), (0, _withStyles.default)(styles))(Zoom); \ No newline at end of file diff --git a/dist/components/cmd_bar/03_peak.js b/dist/components/cmd_bar/03_peak.js new file mode 100644 index 00000000..4aeadb6c --- /dev/null +++ b/dist/components/cmd_bar/03_peak.js @@ -0,0 +1,195 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var _react = _interopRequireDefault(require("react")); +var _reactRedux = require("react-redux"); +var _redux = require("redux"); +var _classnames = _interopRequireDefault(require("classnames")); +var _propTypes = _interopRequireDefault(require("prop-types")); +var _withStyles = _interopRequireDefault(require("@mui/styles/withStyles")); +var _Tooltip = _interopRequireDefault(require("@mui/material/Tooltip")); +var _AddLocationOutlined = _interopRequireDefault(require("@mui/icons-material/AddLocationOutlined")); +var _ui = require("../../actions/ui"); +var _cfg = _interopRequireDefault(require("../../helpers/cfg")); +var _common = require("./common"); +var _list_ui = require("../../constants/list_ui"); +var _tri_btn = _interopRequireDefault(require("./tri_btn")); +var _edit_peak = require("../../actions/edit_peak"); +var _extractPeaksEdit = require("../../helpers/extractPeaksEdit"); +var _hplc_ms = require("../../actions/hplc_ms"); +var _list_layout = require("../../constants/list_layout"); +var _jsxRuntime = require("react/jsx-runtime"); +/* eslint-disable prefer-object-spread, function-paren-newline, no-unused-vars, +react/function-component-definition, react/require-default-props, max-len, +react/no-unused-prop-types */ + +const styles = () => Object.assign({}, _common.commonStyle); +const Peak = ({ + classes, + setUiSweepTypeAct, + isFocusAddPeakSt, + disableAddPeakSt, + isFocusRmPeakSt, + disableRmPeakSt, + isFocusSetRefSt, + disableSetRefSt, + isHandleMaxAndMinPeaksSt, + cyclicVoltaState, + curveSt, + clearAllPeaksAct, + feature, + editPeakSt, + thresSt, + shiftSt, + layoutSt, + clearAllPeaksHplcMsAct +}) => { + let onSweepPeakAdd = () => setUiSweepTypeAct(_list_ui.LIST_UI_SWEEP_TYPE.PEAK_ADD); + let onSweepPeakDelete = () => setUiSweepTypeAct(_list_ui.LIST_UI_SWEEP_TYPE.PEAK_DELETE); + let onSweepAnchorShift = () => setUiSweepTypeAct(_list_ui.LIST_UI_SWEEP_TYPE.ANCHOR_SHIFT); + const { + curveIdx + } = curveSt; + const onClearAll = () => { + if (layoutSt === _list_layout.LIST_LAYOUT.LC_MS) { + clearAllPeaksHplcMsAct(); + } else { + const dataPeaks = (0, _extractPeaksEdit.extractAutoPeaks)(feature, thresSt, shiftSt, layoutSt); + clearAllPeaksAct({ + curveIdx, + dataPeaks + }); + } + }; + if (isHandleMaxAndMinPeaksSt) { + const { + spectraList + } = cyclicVoltaState; + const spectra = spectraList[curveIdx]; + if (spectra) { + const { + isWorkMaxPeak + } = spectra; + if (isWorkMaxPeak) { + onSweepPeakAdd = () => setUiSweepTypeAct(_list_ui.LIST_UI_SWEEP_TYPE.CYCLIC_VOLTA_ADD_MAX_PEAK, curveIdx); + onSweepPeakDelete = () => setUiSweepTypeAct(_list_ui.LIST_UI_SWEEP_TYPE.CYCLIC_VOLTA_RM_MAX_PEAK, curveIdx); + } else { + onSweepPeakAdd = () => setUiSweepTypeAct(_list_ui.LIST_UI_SWEEP_TYPE.CYCLIC_VOLTA_ADD_MIN_PEAK, curveIdx); + onSweepPeakDelete = () => setUiSweepTypeAct(_list_ui.LIST_UI_SWEEP_TYPE.CYCLIC_VOLTA_RM_MIN_PEAK, curveIdx); + } + onSweepAnchorShift = () => setUiSweepTypeAct(_list_ui.LIST_UI_SWEEP_TYPE.CYCLIC_VOLTA_SET_REF, curveIdx); + } + } + return /*#__PURE__*/(0, _jsxRuntime.jsxs)("span", { + className: classes.group, + "data-testid": "Peak", + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Tooltip.default, { + title: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: "txt-sv-tp", + children: "Add Peak" + }), + children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_common.MuButton, { + className: (0, _classnames.default)((0, _common.focusStyle)(isFocusAddPeakSt, classes), 'btn-sv-bar-addpeak'), + disabled: disableAddPeakSt, + onClick: onSweepPeakAdd, + children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: (0, _classnames.default)(classes.txt, 'txt-sv-bar-addpeak'), + children: "P+" + }) + }) + }) + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Tooltip.default, { + title: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: "txt-sv-tp", + children: "Remove Peak" + }), + children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_common.MuButton, { + className: (0, _classnames.default)((0, _common.focusStyle)(isFocusRmPeakSt, classes), 'btn-sv-bar-rmpeak'), + disabled: disableRmPeakSt, + onClick: onSweepPeakDelete, + children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: (0, _classnames.default)(classes.txt, 'txt-sv-bar-rmpeak'), + children: "P-" + }) + }) + }) + }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_tri_btn.default, { + content: { + tp: 'Clear All Peaks' + }, + cb: onClearAll, + isClearAllDisabled: disableRmPeakSt, + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: (0, _classnames.default)(classes.txt, 'txt-sv-bar-rmallpeaks'), + children: "P" + }), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: (0, _classnames.default)(classes.txt, classes.txtIcon, 'txt-sv-bar-rmallpeaks'), + children: "x" + })] + }), !disableSetRefSt ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_Tooltip.default, { + title: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: "txt-sv-tp", + children: "Set Reference" + }), + children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_common.MuButton, { + className: (0, _classnames.default)((0, _common.focusStyle)(isFocusSetRefSt, classes), 'btn-sv-bar-setref'), + disabled: disableSetRefSt, + onClick: onSweepAnchorShift, + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_AddLocationOutlined.default, { + className: classes.icon + }) + }) + }) + }) : null] + }); +}; +const mapStateToProps = (state, props) => ( +// eslint-disable-line +{ + isFocusAddPeakSt: state.ui.sweepType === _list_ui.LIST_UI_SWEEP_TYPE.PEAK_ADD || state.ui.sweepType === _list_ui.LIST_UI_SWEEP_TYPE.CYCLIC_VOLTA_ADD_MAX_PEAK || state.ui.sweepType === _list_ui.LIST_UI_SWEEP_TYPE.CYCLIC_VOLTA_ADD_MIN_PEAK, + disableAddPeakSt: _cfg.default.btnCmdAddPeak(state.layout), + isFocusRmPeakSt: state.ui.sweepType === _list_ui.LIST_UI_SWEEP_TYPE.PEAK_DELETE || state.ui.sweepType === _list_ui.LIST_UI_SWEEP_TYPE.CYCLIC_VOLTA_RM_MAX_PEAK || state.ui.sweepType === _list_ui.LIST_UI_SWEEP_TYPE.CYCLIC_VOLTA_RM_MIN_PEAK, + disableRmPeakSt: _cfg.default.btnCmdRmPeak(state.layout), + isFocusSetRefSt: state.ui.sweepType === _list_ui.LIST_UI_SWEEP_TYPE.ANCHOR_SHIFT || state.ui.sweepType === _list_ui.LIST_UI_SWEEP_TYPE.CYCLIC_VOLTA_SET_REF, + disableSetRefSt: _cfg.default.btnCmdSetRef(state.layout), + isHandleMaxAndMinPeaksSt: !_cfg.default.hidePanelCyclicVolta(state.layout), + cyclicVoltaState: state.cyclicvolta, + curveSt: state.curve, + editPeakSt: state.editPeak.present, + thresSt: state.threshold.list[state.curve.curveIdx], + layoutSt: state.layout, + shiftSt: state.shift +}); +const mapDispatchToProps = dispatch => (0, _redux.bindActionCreators)({ + setUiSweepTypeAct: _ui.setUiSweepType, + clearAllPeaksAct: _edit_peak.clearAllPeaks, + clearAllPeaksHplcMsAct: _hplc_ms.clearAllPeaksHplcMs +}, dispatch); +Peak.propTypes = { + classes: _propTypes.default.object.isRequired, + isFocusAddPeakSt: _propTypes.default.bool.isRequired, + disableAddPeakSt: _propTypes.default.bool.isRequired, + isFocusRmPeakSt: _propTypes.default.bool.isRequired, + disableRmPeakSt: _propTypes.default.bool.isRequired, + isFocusSetRefSt: _propTypes.default.bool.isRequired, + disableSetRefSt: _propTypes.default.bool.isRequired, + setUiSweepTypeAct: _propTypes.default.func.isRequired, + isHandleMaxAndMinPeaksSt: _propTypes.default.bool.isRequired, + cyclicVoltaState: _propTypes.default.object.isRequired, + curveSt: _propTypes.default.object.isRequired, + clearAllPeaksAct: _propTypes.default.func.isRequired, + feature: _propTypes.default.object.isRequired, + editPeakSt: _propTypes.default.object.isRequired, + thresSt: _propTypes.default.object.isRequired, + layoutSt: _propTypes.default.string.isRequired, + shiftSt: _propTypes.default.object.isRequired, + clearAllPeaksHplcMsAct: _propTypes.default.func.isRequired +}; +var _default = exports.default = (0, _redux.compose)((0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps), (0, _withStyles.default)(styles))(Peak); \ No newline at end of file diff --git a/dist/components/cmd_bar/04_integration.js b/dist/components/cmd_bar/04_integration.js new file mode 100644 index 00000000..acf84ff3 --- /dev/null +++ b/dist/components/cmd_bar/04_integration.js @@ -0,0 +1,226 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var _react = _interopRequireDefault(require("react")); +var _reactRedux = require("react-redux"); +var _redux = require("redux"); +var _classnames = _interopRequireDefault(require("classnames")); +var _propTypes = _interopRequireDefault(require("prop-types")); +var _withStyles = _interopRequireDefault(require("@mui/styles/withStyles")); +var _Tooltip = _interopRequireDefault(require("@mui/material/Tooltip")); +var _TextField = _interopRequireDefault(require("@mui/material/TextField")); +var _react2 = _interopRequireDefault(require("@mdi/react")); +var _js = require("@mdi/js"); +var _integration = require("../../actions/integration"); +var _hplc_ms = require("../../actions/hplc_ms"); +var _ui = require("../../actions/ui"); +var _list_ui = require("../../constants/list_ui"); +var _cfg = _interopRequireDefault(require("../../helpers/cfg")); +var _tri_btn = _interopRequireDefault(require("./tri_btn")); +var _common = require("./common"); +var _format = _interopRequireDefault(require("../../helpers/format")); +var _list_layout = require("../../constants/list_layout"); +var _jsxRuntime = require("react/jsx-runtime"); +/* eslint-disable prefer-object-spread, function-paren-newline, +react/function-component-definition, react/require-default-props, max-len, +react/no-unused-prop-types */ + +const styles = () => Object.assign({ + field: { + width: 80 + }, + txtIcon: {} +}, _common.commonStyle); +const iconSize = '16px'; +const setFactor = (classes, isDisable, integrationSt, setIntegrationFkrAct, curveIdx) => { + const onFactorChanged = e => { + e.target.blur(); + setIntegrationFkrAct({ + factor: e.target.value, + curveIdx + }); + }; + const onEnterPress = e => { + if (e.key === 'Enter') { + setIntegrationFkrAct({ + factor: e.target.value, + curveIdx + }); + } + }; + let refFactor = 1.00; + const { + integrations + } = integrationSt; + if (integrations && curveIdx < integrations.length) { + const selectedIntegration = integrations[curveIdx]; + refFactor = selectedIntegration.refFactor || 1.00; + } + return /*#__PURE__*/(0, _jsxRuntime.jsx)(_TextField.default, { + className: classes.field, + disabled: isDisable, + id: "intg-factor-name", + type: "number", + value: refFactor, + margin: "none", + InputProps: { + className: (0, _classnames.default)(classes.txtInput, 'txtfield-sv-bar-input') + }, + label: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: (0, _classnames.default)(classes.txtLabel, 'txtfield-sv-bar-label'), + children: "Ref Area" + }), + onChange: onFactorChanged, + onBlur: onFactorChanged, + onKeyUp: onEnterPress, + variant: "outlined" + }); +}; +const iconColor = criteria => criteria ? '#fff' : '#000'; +const Integration = ({ + classes, + ignoreRef, + isDisableSt, + isFocusAddIntgSt, + isFocusRmIntgSt, + isFocusSetRefSt, + setUiSweepTypeAct, + setIntegrationFkrAct, + clearIntegrationAllAct, + curveSt, + integrationSt, + clearIntegrationAllHplcMsAct, + layoutSt +}) => { + const onSweepIntegtAdd = () => setUiSweepTypeAct(_list_ui.LIST_UI_SWEEP_TYPE.INTEGRATION_ADD); + const onSweepIntegtRm = () => setUiSweepTypeAct(_list_ui.LIST_UI_SWEEP_TYPE.INTEGRATION_RM); + const onSweepIntegtSR = () => setUiSweepTypeAct(_list_ui.LIST_UI_SWEEP_TYPE.INTEGRATION_SET_REF); + const { + curveIdx + } = curveSt; + const onClearAll = () => { + if (layoutSt === _list_layout.LIST_LAYOUT.LC_MS) { + clearIntegrationAllHplcMsAct(); + } else { + clearIntegrationAllAct({ + curveIdx + }); + } + }; + return /*#__PURE__*/(0, _jsxRuntime.jsxs)("span", { + className: classes.group, + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Tooltip.default, { + title: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: "txt-sv-tp", + children: "Add Integration" + }), + children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_common.MuButton, { + className: (0, _classnames.default)((0, _common.focusStyle)(isFocusAddIntgSt, classes), 'btn-add-inter'), + disabled: isDisableSt, + onClick: onSweepIntegtAdd, + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_react2.default, { + path: _js.mdiMathIntegral, + size: iconSize, + color: iconColor(isFocusAddIntgSt || isDisableSt), + className: (0, _classnames.default)(classes.iconMdi, 'icon-sv-bar-addint') + }), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: (0, _classnames.default)(classes.txt, classes.txtIcon, 'txt-sv-bar-addint'), + children: "+" + })] + }) + }) + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Tooltip.default, { + title: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: "txt-sv-tp", + children: "Remove Integration" + }), + children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_common.MuButton, { + className: (0, _classnames.default)((0, _common.focusStyle)(isFocusRmIntgSt, classes), 'btn-remove-inter'), + disabled: isDisableSt, + onClick: onSweepIntegtRm, + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_react2.default, { + path: _js.mdiMathIntegral, + size: iconSize, + color: iconColor(isFocusRmIntgSt || isDisableSt), + className: (0, _classnames.default)(classes.iconMdi, 'icon-sv-bar-rmint') + }), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: (0, _classnames.default)(classes.txt, classes.txtIcon, 'txt-sv-bar-rmint'), + children: "-" + })] + }) + }) + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Tooltip.default, { + title: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: "txt-sv-tp", + children: "Set Integration Reference" + }), + children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_common.MuButton, { + className: (0, _classnames.default)((0, _common.focusStyle)(isFocusSetRefSt, classes), 'btn-set-inter-ref'), + disabled: isDisableSt, + onClick: onSweepIntegtSR, + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_react2.default, { + path: _js.mdiReflectVertical, + size: iconSize, + color: iconColor(isFocusSetRefSt || isDisableSt), + className: (0, _classnames.default)(classes.iconMdi, 'icon-sv-bar-refint') + }) + }) + }) + }), !ignoreRef ? setFactor(classes, isDisableSt, integrationSt, setIntegrationFkrAct, curveIdx) : null, /*#__PURE__*/(0, _jsxRuntime.jsxs)(_tri_btn.default, { + content: { + tp: 'Clear All Integration' + }, + cb: onClearAll, + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_react2.default, { + path: _js.mdiMathIntegral, + size: iconSize, + color: iconColor(isDisableSt), + className: (0, _classnames.default)(classes.iconMdi, 'icon-sv-bar-rmallint') + }), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: (0, _classnames.default)(classes.txt, classes.txtIcon, 'txt-sv-bar-rmallint'), + children: "x" + })] + })] + }); +}; +const mapStateToProps = (state, props) => ( +// eslint-disable-line +{ + isDisableSt: _cfg.default.btnCmdIntg(state.layout), + isFocusAddIntgSt: state.ui.sweepType === _list_ui.LIST_UI_SWEEP_TYPE.INTEGRATION_ADD, + isFocusRmIntgSt: state.ui.sweepType === _list_ui.LIST_UI_SWEEP_TYPE.INTEGRATION_RM, + isFocusSetRefSt: state.ui.sweepType === _list_ui.LIST_UI_SWEEP_TYPE.INTEGRATION_SET_REF, + ignoreRef: _format.default.isHplcUvVisLayout(state.layout), + curveSt: state.curve, + integrationSt: state.integration.present, + layoutSt: state.layout +}); +const mapDispatchToProps = dispatch => (0, _redux.bindActionCreators)({ + setUiSweepTypeAct: _ui.setUiSweepType, + setIntegrationFkrAct: _integration.setIntegrationFkr, + clearIntegrationAllAct: _integration.clearIntegrationAll, + clearIntegrationAllHplcMsAct: _hplc_ms.clearIntegrationAllHplcMs +}, dispatch); +Integration.propTypes = { + classes: _propTypes.default.object.isRequired, + isDisableSt: _propTypes.default.bool.isRequired, + isFocusAddIntgSt: _propTypes.default.bool.isRequired, + isFocusRmIntgSt: _propTypes.default.bool.isRequired, + isFocusSetRefSt: _propTypes.default.bool.isRequired, + ignoreRef: _propTypes.default.bool.isRequired, + setUiSweepTypeAct: _propTypes.default.func.isRequired, + setIntegrationFkrAct: _propTypes.default.func.isRequired, + clearIntegrationAllAct: _propTypes.default.func.isRequired, + clearIntegrationAllHplcMsAct: _propTypes.default.func.isRequired, + curveSt: _propTypes.default.object.isRequired, + integrationSt: _propTypes.default.object.isRequired, + layoutSt: _propTypes.default.string.isRequired +}; +var _default = exports.default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)((0, _withStyles.default)(styles)(Integration)); \ No newline at end of file diff --git a/dist/components/cmd_bar/05_multiplicity.js b/dist/components/cmd_bar/05_multiplicity.js new file mode 100644 index 00000000..c725320e --- /dev/null +++ b/dist/components/cmd_bar/05_multiplicity.js @@ -0,0 +1,160 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var _react = _interopRequireDefault(require("react")); +var _reactRedux = require("react-redux"); +var _redux = require("redux"); +var _classnames = _interopRequireDefault(require("classnames")); +var _propTypes = _interopRequireDefault(require("prop-types")); +var _withStyles = _interopRequireDefault(require("@mui/styles/withStyles")); +var _Tooltip = _interopRequireDefault(require("@mui/material/Tooltip")); +var _ui = require("../../actions/ui"); +var _multiplicity = require("../../actions/multiplicity"); +var _list_ui = require("../../constants/list_ui"); +var _cfg = _interopRequireDefault(require("../../helpers/cfg")); +var _tri_btn = _interopRequireDefault(require("./tri_btn")); +var _common = require("./common"); +var _jsxRuntime = require("react/jsx-runtime"); +/* eslint-disable prefer-object-spread, function-paren-newline, +react/function-component-definition, react/require-default-props, max-len, +react/no-unused-prop-types */ + +const styles = () => Object.assign({}, _common.commonStyle); +const Multiplicity = ({ + classes, + isFocusAddMpySt, + disableAddMpySt, + isFocusRmMpySt, + disableRmMpySt, + isFocusAddPeakSt, + isFocusRmPeakSt, + disableMpyPeakSt, + setUiSweepTypeAct, + clearMpyAllAct, + curveSt +}) => { + const onSweepMutAdd = () => setUiSweepTypeAct(_list_ui.LIST_UI_SWEEP_TYPE.MULTIPLICITY_SWEEP_ADD); + const onOneMutAdd = () => setUiSweepTypeAct(_list_ui.LIST_UI_SWEEP_TYPE.MULTIPLICITY_ONE_RM); + const onPeakMutAdd = () => setUiSweepTypeAct(_list_ui.LIST_UI_SWEEP_TYPE.MULTIPLICITY_PEAK_ADD); + const onPeakMutRm = () => setUiSweepTypeAct(_list_ui.LIST_UI_SWEEP_TYPE.MULTIPLICITY_PEAK_RM); + const { + curveIdx + } = curveSt; + const onClearAll = () => clearMpyAllAct({ + curveIdx + }); + return /*#__PURE__*/(0, _jsxRuntime.jsxs)("span", { + className: classes.group, + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Tooltip.default, { + title: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: "txt-sv-tp", + children: "Add Multiplicity" + }), + children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_common.MuButton, { + className: (0, _classnames.default)((0, _common.focusStyle)(isFocusAddMpySt, classes), 'btn-sv-bar-addmpy'), + disabled: disableAddMpySt, + onClick: onSweepMutAdd, + children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: (0, _classnames.default)(classes.txt, 'txt-sv-bar-addmpy'), + children: "J+" + }) + }) + }) + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Tooltip.default, { + title: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: "txt-sv-tp", + children: "Remove Multiplicity" + }), + children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_common.MuButton, { + className: (0, _classnames.default)((0, _common.focusStyle)(isFocusRmMpySt, classes), 'btn-sv-bar-rmmpy'), + disabled: disableRmMpySt, + onClick: onOneMutAdd, + children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: (0, _classnames.default)(classes.txt, 'txt-sv-bar-rmmpy'), + children: "J-" + }) + }) + }) + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Tooltip.default, { + title: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: "txt-sv-tp", + children: "Add Peak for Multiplicity" + }), + children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_common.MuButton, { + className: (0, _classnames.default)((0, _common.focusStyle)(isFocusAddPeakSt, classes), 'btn-sv-bar-addpeakmpy'), + disabled: disableMpyPeakSt, + onClick: onPeakMutAdd, + children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: (0, _classnames.default)(classes.txt, 'txt-sv-bar-addpeakmpy'), + children: "JP+" + }) + }) + }) + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Tooltip.default, { + title: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: "txt-sv-tp", + children: "Remove Peak for Multiplicity" + }), + children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_common.MuButton, { + className: (0, _classnames.default)((0, _common.focusStyle)(isFocusRmPeakSt, classes), 'btn-sv-bar-rmpeakmpy'), + disabled: disableMpyPeakSt, + onClick: onPeakMutRm, + children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: (0, _classnames.default)(classes.txt, 'txt-sv-bar-rmpeakmpy'), + children: "JP-" + }) + }) + }) + }), disableAddMpySt ? null : + /*#__PURE__*/ + // eslint-disable-line + (0, _jsxRuntime.jsx)(_tri_btn.default, { + content: { + tp: 'Clear All Multiplicity' + }, + cb: onClearAll, + children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: (0, _classnames.default)(classes.txt, 'txt-sv-bar-rmallmpy'), + children: "Jx" + }) + })] + }); +}; +const mapStateToProps = (state, props) => ( +// eslint-disable-line +{ + isFocusAddMpySt: state.ui.sweepType === _list_ui.LIST_UI_SWEEP_TYPE.MULTIPLICITY_SWEEP_ADD, + disableAddMpySt: _cfg.default.btnCmdMpy(state.layout), + isFocusRmMpySt: state.ui.sweepType === _list_ui.LIST_UI_SWEEP_TYPE.MULTIPLICITY_ONE_RM, + disableRmMpySt: _cfg.default.btnCmdMpy(state.layout), + isFocusAddPeakSt: state.ui.sweepType === _list_ui.LIST_UI_SWEEP_TYPE.MULTIPLICITY_PEAK_ADD, + isFocusRmPeakSt: state.ui.sweepType === _list_ui.LIST_UI_SWEEP_TYPE.MULTIPLICITY_PEAK_RM, + disableMpyPeakSt: _cfg.default.btnCmdMpyPeak(state.layout, state.multiplicity.present, state.curve.curveIdx), + curveSt: state.curve +}); +const mapDispatchToProps = dispatch => (0, _redux.bindActionCreators)({ + setUiSweepTypeAct: _ui.setUiSweepType, + clearMpyAllAct: _multiplicity.clearMpyAll +}, dispatch); +Multiplicity.propTypes = { + classes: _propTypes.default.object.isRequired, + isFocusAddMpySt: _propTypes.default.bool.isRequired, + disableAddMpySt: _propTypes.default.bool.isRequired, + isFocusRmMpySt: _propTypes.default.bool.isRequired, + disableRmMpySt: _propTypes.default.bool.isRequired, + isFocusAddPeakSt: _propTypes.default.bool.isRequired, + isFocusRmPeakSt: _propTypes.default.bool.isRequired, + disableMpyPeakSt: _propTypes.default.bool.isRequired, + setUiSweepTypeAct: _propTypes.default.func.isRequired, + clearMpyAllAct: _propTypes.default.func.isRequired, + curveSt: _propTypes.default.object.isRequired +}; +var _default = exports.default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)((0, _withStyles.default)(styles)(Multiplicity)); \ No newline at end of file diff --git a/dist/components/cmd_bar/06_undo_redo.js b/dist/components/cmd_bar/06_undo_redo.js new file mode 100644 index 00000000..24a8bae7 --- /dev/null +++ b/dist/components/cmd_bar/06_undo_redo.js @@ -0,0 +1,84 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var _react = _interopRequireDefault(require("react")); +var _reactRedux = require("react-redux"); +var _redux = require("redux"); +var _propTypes = _interopRequireDefault(require("prop-types")); +var _classnames = _interopRequireDefault(require("classnames")); +var _reduxUndo = require("redux-undo"); +var _withStyles = _interopRequireDefault(require("@mui/styles/withStyles")); +var _Tooltip = _interopRequireDefault(require("@mui/material/Tooltip")); +var _RedoOutlined = _interopRequireDefault(require("@mui/icons-material/RedoOutlined")); +var _UndoOutlined = _interopRequireDefault(require("@mui/icons-material/UndoOutlined")); +var _common = require("./common"); +var _jsxRuntime = require("react/jsx-runtime"); +/* eslint-disable prefer-object-spread, function-paren-newline, +react/function-component-definition, react/require-default-props, max-len, +react/no-unused-prop-types */ + +const styles = () => Object.assign({}, _common.commonStyle); +const UndoRedo = ({ + classes, + canUndo, + canRedo, + onUndoAct, + onRedoAct +}) => /*#__PURE__*/(0, _jsxRuntime.jsxs)("span", { + className: classes.group, + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Tooltip.default, { + title: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: "txt-sv-tp", + children: "Undo" + }), + children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_common.MuButton, { + className: (0, _classnames.default)('btn-sv-bar-undo'), + disabled: !canUndo, + onClick: onUndoAct, + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_UndoOutlined.default, { + className: classes.icon + }) + }) + }) + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Tooltip.default, { + title: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: "txt-sv-tp", + children: "Redo" + }), + children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_common.MuButton, { + className: (0, _classnames.default)('btn-sv-bar-redo'), + disabled: !canRedo, + onClick: onRedoAct, + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_RedoOutlined.default, { + className: classes.icon + }) + }) + }) + })] +}); +const canUndoFunc = state => state.editPeak.past.length > 0 || state.integration.past.length > 0 || state.multiplicity.past.length > 0; +const canRedoFunc = state => state.editPeak.future.length > 0 || state.integration.future.length > 0 || state.multiplicity.future.length > 0; +const mapStateToProps = (state, _) => ( +// eslint-disable-line +{ + canUndo: canUndoFunc(state), + canRedo: canRedoFunc(state) +}); +const mapDispatchToProps = dispatch => ({ + onUndoAct: () => dispatch(_reduxUndo.ActionCreators.undo()), + onRedoAct: () => dispatch(_reduxUndo.ActionCreators.redo()) +}); +UndoRedo.propTypes = { + classes: _propTypes.default.object.isRequired, + canUndo: _propTypes.default.bool.isRequired, + canRedo: _propTypes.default.bool.isRequired, + onUndoAct: _propTypes.default.func.isRequired, + onRedoAct: _propTypes.default.func.isRequired +}; +var _default = exports.default = (0, _redux.compose)((0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps), (0, _withStyles.default)(styles))(UndoRedo); \ No newline at end of file diff --git a/dist/components/cmd_bar/07_pecker.js b/dist/components/cmd_bar/07_pecker.js new file mode 100644 index 00000000..d8fbf678 --- /dev/null +++ b/dist/components/cmd_bar/07_pecker.js @@ -0,0 +1,193 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var _react = _interopRequireDefault(require("react")); +var _reactRedux = require("react-redux"); +var _redux = require("redux"); +var _classnames = _interopRequireDefault(require("classnames")); +var _propTypes = _interopRequireDefault(require("prop-types")); +var _withStyles = _interopRequireDefault(require("@mui/styles/withStyles")); +var _Tooltip = _interopRequireDefault(require("@mui/material/Tooltip")); +var _material = require("@mui/material"); +var _AddLocationOutlined = _interopRequireDefault(require("@mui/icons-material/AddLocationOutlined")); +var _ui = require("../../actions/ui"); +var _common = require("./common"); +var _list_ui = require("../../constants/list_ui"); +var _cfg = _interopRequireDefault(require("../../helpers/cfg")); +var _cyclic_voltammetry = require("../../actions/cyclic_voltammetry"); +var _jsxRuntime = require("react/jsx-runtime"); +/* eslint-disable prefer-object-spread, function-paren-newline, +react/function-component-definition, react/require-default-props, max-len, +react/no-unused-prop-types */ + +const styles = () => Object.assign({ + field: { + width: 80 + }, + txtIcon: {} +}, _common.commonStyle); +const setRef = (classes, cyclicVotaSt, curveIdx, setCylicVoltaRefFactorAct) => { + const { + spectraList + } = cyclicVotaSt; + const spectra = spectraList[curveIdx]; + let refFactor = 0.0; + let hasRefPeaks = false; + if (spectra) { + const { + shift, + hasRefPeak + } = spectra; + const { + val + } = shift; + refFactor = val; + hasRefPeaks = hasRefPeak; + } + const onFactorChanged = e => setCylicVoltaRefFactorAct({ + factor: e.target.value, + curveIdx + }); + const onEnterPress = e => { + if (e.key === 'Enter') { + setCylicVoltaRefFactorAct({ + factor: e.target.value, + curveIdx + }); + } + }; + return /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TextField, { + className: classes.field, + id: "intg-factor-name", + type: "number", + value: refFactor, + margin: "none", + InputProps: { + className: (0, _classnames.default)(classes.txtInput, 'txtfield-sv-bar-input') + }, + label: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: (0, _classnames.default)(classes.txtLabel, 'txtfield-sv-bar-label'), + children: hasRefPeaks ? 'Ref Value (V)' : 'Shift' + }), + variant: "outlined", + onChange: onFactorChanged, + onBlur: onFactorChanged, + onKeyUp: onEnterPress + }); +}; +const Pecker = ({ + classes, + layoutSt, + isFocusAddPeckerSt, + isFocusRmPeckerSt, + setUiSweepTypeAct, + curveSt, + cyclicVotaSt, + setCylicVoltaRefFactorAct, + isFocusSetRefSt, + setCylicVoltaRefAct +}) => { + const { + curveIdx + } = curveSt; + const onSweepPeckerAdd = () => setUiSweepTypeAct(_list_ui.LIST_UI_SWEEP_TYPE.CYCLIC_VOLTA_ADD_PECKER, curveIdx); + const onSweepPeckerDELETE = () => setUiSweepTypeAct(_list_ui.LIST_UI_SWEEP_TYPE.CYCLIC_VOLTA_RM_PECKER, curveIdx); + const onConfirmSetRef = () => setCylicVoltaRefAct({ + jcampIdx: curveIdx + }); + const { + spectraList + } = cyclicVotaSt; + const spectra = spectraList[curveIdx]; + let hasRefPeaks = false; + if (spectra) { + const { + hasRefPeak + } = spectra; + hasRefPeaks = hasRefPeak; + } + return !_cfg.default.hidePanelCyclicVolta(layoutSt) ? /*#__PURE__*/(0, _jsxRuntime.jsxs)("span", { + "data-testid": "Pecker", + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Tooltip.default, { + title: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: "txt-sv-tp", + children: "Add Pecker" + }), + children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_common.MuButton, { + className: (0, _classnames.default)((0, _common.focusStyle)(isFocusAddPeckerSt, classes), 'btn-sv-bar-addpecker'), + onClick: onSweepPeckerAdd, + children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("span", { + className: (0, _classnames.default)(classes.txt, 'txt-sv-bar-addpeak'), + children: ["I", /*#__PURE__*/(0, _jsxRuntime.jsx)("sub", { + children: "\u03BB0" + }), "+"] + }) + }) + }) + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Tooltip.default, { + title: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: "txt-sv-tp", + children: "Remove Pecker" + }), + children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_common.MuButton, { + className: (0, _classnames.default)((0, _common.focusStyle)(isFocusRmPeckerSt, classes), 'btn-sv-bar-rmpecker'), + onClick: onSweepPeckerDELETE, + children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("span", { + className: (0, _classnames.default)(classes.txt, 'txt-sv-bar-rmpeak'), + children: ["I", /*#__PURE__*/(0, _jsxRuntime.jsx)("sub", { + children: "\u03BB0" + }), "-"] + }) + }) + }) + }), setRef(classes, cyclicVotaSt, curveIdx, setCylicVoltaRefFactorAct), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Tooltip.default, { + title: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: "txt-sv-tp", + children: hasRefPeaks ? 'Set Reference' : 'Set Shift' + }), + children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_common.MuButton, { + className: (0, _classnames.default)((0, _common.focusStyle)(isFocusSetRefSt, classes), 'btn-sv-bar-setref'), + onClick: onConfirmSetRef, + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_AddLocationOutlined.default, { + className: classes.icon + }) + }) + }) + })] + }) : /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {}); +}; +const mapStateToProps = (state, _) => ( +// eslint-disable-line +{ + layoutSt: state.layout, + isFocusAddPeckerSt: state.ui.sweepType === _list_ui.LIST_UI_SWEEP_TYPE.CYCLIC_VOLTA_ADD_PECKER, + isFocusRmPeckerSt: state.ui.sweepType === _list_ui.LIST_UI_SWEEP_TYPE.CYCLIC_VOLTA_RM_PECKER, + isFocusSetRefSt: state.ui.sweepType === _list_ui.LIST_UI_SWEEP_TYPE.ANCHOR_SHIFT || state.ui.sweepType === _list_ui.LIST_UI_SWEEP_TYPE.CYCLIC_VOLTA_SET_REF, + cyclicVotaSt: state.cyclicvolta, + curveSt: state.curve +}); +const mapDispatchToProps = dispatch => (0, _redux.bindActionCreators)({ + setUiSweepTypeAct: _ui.setUiSweepType, + setCylicVoltaRefFactorAct: _cyclic_voltammetry.setCylicVoltaRefFactor, + setCylicVoltaRefAct: _cyclic_voltammetry.setCylicVoltaRef +}, dispatch); +Pecker.propTypes = { + classes: _propTypes.default.object.isRequired, + layoutSt: _propTypes.default.string.isRequired, + isFocusAddPeckerSt: _propTypes.default.bool.isRequired, + isFocusRmPeckerSt: _propTypes.default.bool.isRequired, + setUiSweepTypeAct: _propTypes.default.func.isRequired, + isFocusSetRefSt: _propTypes.default.bool.isRequired, + cyclicVotaSt: _propTypes.default.object.isRequired, + curveSt: _propTypes.default.object.isRequired, + setCylicVoltaRefFactorAct: _propTypes.default.func.isRequired, + setCylicVoltaRefAct: _propTypes.default.func.isRequired +}; +var _default = exports.default = (0, _redux.compose)((0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps), (0, _withStyles.default)(styles))(Pecker); \ No newline at end of file diff --git a/dist/components/cmd_bar/08_peak_group.js b/dist/components/cmd_bar/08_peak_group.js new file mode 100644 index 00000000..91972669 --- /dev/null +++ b/dist/components/cmd_bar/08_peak_group.js @@ -0,0 +1,83 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var _react = _interopRequireDefault(require("react")); +var _reactRedux = require("react-redux"); +var _redux = require("redux"); +var _classnames = _interopRequireDefault(require("classnames")); +var _propTypes = _interopRequireDefault(require("prop-types")); +var _withStyles = _interopRequireDefault(require("@mui/styles/withStyles")); +var _Tooltip = _interopRequireDefault(require("@mui/material/Tooltip")); +var _Troubleshoot = _interopRequireDefault(require("@mui/icons-material/Troubleshoot")); +var _ui = require("../../actions/ui"); +var _common = require("./common"); +var _list_ui = require("../../constants/list_ui"); +var _format = _interopRequireDefault(require("../../helpers/format")); +var _jsxRuntime = require("react/jsx-runtime"); +/* eslint-disable prefer-object-spread, react/function-component-definition */ + +const styles = () => Object.assign({}, _common.commonStyle); +const PeakGroup = ({ + classes, + feature, + isSelectingGroupSt, + setUiSweepTypeAct, + graphIndex +}) => { + if (!feature || !feature.operation) { + return null; + } + const { + operation + } = feature; + const { + layout + } = operation || {}; + if (!layout || !_format.default.isLCMsLayout(layout)) { + return null; + } + const onSelectPeakGroup = () => { + const payload = { + graphIndex, + sweepType: _list_ui.LIST_UI_SWEEP_TYPE.PEAK_GROUP_SELECT + }; + setUiSweepTypeAct(payload); + }; + return /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: classes.group, + "data-testid": "Zoom", + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Tooltip.default, { + title: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: "txt-sv-tp", + children: "Select peak group" + }), + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_common.MuButton, { + className: (0, _classnames.default)((0, _common.focusStyle)(isSelectingGroupSt, classes), 'btn-sv-bar-zoomin'), + onClick: onSelectPeakGroup, + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Troubleshoot.default, { + className: (0, _classnames.default)(classes.icon, classes.iconWp) + }) + }) + }) + }); +}; +const mapStateToProps = (state, _) => ( +// eslint-disable-line +{ + isSelectingGroupSt: state.ui.sweepType === _list_ui.LIST_UI_SWEEP_TYPE.PEAK_GROUP_SELECT +}); +const mapDispatchToProps = dispatch => (0, _redux.bindActionCreators)({ + setUiSweepTypeAct: _ui.setUiSweepType +}, dispatch); +PeakGroup.propTypes = { + classes: _propTypes.default.object.isRequired, + feature: _propTypes.default.object.isRequired, + isSelectingGroupSt: _propTypes.default.bool.isRequired, + setUiSweepTypeAct: _propTypes.default.func.isRequired, + graphIndex: _propTypes.default.number.isRequired +}; +var _default = exports.default = (0, _redux.compose)((0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps), (0, _withStyles.default)(styles))(PeakGroup); \ No newline at end of file diff --git a/dist/components/cmd_bar/common.js b/dist/components/cmd_bar/common.js new file mode 100644 index 00000000..b851c116 --- /dev/null +++ b/dist/components/cmd_bar/common.js @@ -0,0 +1,128 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.focusStyle = exports.commonStyle = exports.MuButton = void 0; +var _react = _interopRequireDefault(require("react")); +var _styles = require("@mui/styles"); +var _Button = _interopRequireDefault(require("@mui/material/Button")); +var _classnames = _interopRequireDefault(require("classnames")); +var _jsxRuntime = require("react/jsx-runtime"); +/* eslint-disable no-unused-vars, max-len, indent, react/function-component-definition, react/self-closing-comp, react/prop-types, react/jsx-props-no-spreading */ + +const useStyles = (0, _styles.makeStyles)(theme => ({ + muiBtn: { + border: '1px solid #ccc', + borderRadius: 4, + fontFamily: 'Helvetica', + fontSize: 20, + height: 30, + lineHeight: '20px', + minWidth: 30, + padding: 0, + width: 30, + color: 'black' + } +})); +const MuButton = exports.MuButton = /*#__PURE__*/_react.default.forwardRef((props, ref) => { + const classes = useStyles(); + const { + className, + ...other + } = props; + return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.default, { + ref: ref, + className: (0, _classnames.default)(classes.muiBtn, className), + ...other + }); +}); +MuButton.displayName = 'MuButton'; +const commonStyle = exports.commonStyle = { + card: { + margin: '0 0 5px 52px', + border: '1px solid white', + borderRadius: 4 + }, + group: { + display: 'inline-block', + margin: '0px 0px 0px 10px', + verticalAlign: 'middle' + }, + groupRightMost: { + display: 'inline-block', + float: 'right', + margin: '0px 0px 0px 10px', + verticalAlign: 'middle' + }, + groupRight: { + display: 'inline-block', + float: 'right', + margin: '0px 0px 0px 10px', + verticalAlign: 'middle' + }, + btnHt: { + backgroundColor: '#2196f3', + color: '#fff', + '&:hover': { + backgroundColor: '#51c6f3' + } + }, + iconWp: { + border: '1px dashed', + borderRadius: '4px' + }, + icon: { + fontSize: 20 + }, + iconMdi: { + fontSize: 20 + }, + txt: { + fontFamily: 'Helvetica', + fontSize: 12, + fontStyle: 'italic', + fontWeight: 'bold' + }, + txtLabel: { + fontFamily: 'Helvetica', + fontSize: 12 + }, + txtInput: { + fontFamily: 'Helvetica', + fontSize: 12, + height: 30 + }, + txtOpt: { + fontFamily: 'Helvetica', + fontSize: 12 + }, + selectLabel: { + fontFamily: 'Helvetica', + fontSize: 12 + }, + selectInput: { + height: 30 + }, + txtLabelBottomInput: { + fontFamily: 'Helvetica', + backgroundColor: 'white', + fontSize: 12, + margin: '22% 0 0 7px', + padding: '0 10px 0 10px', + transform: 'scale(0.75)' + }, + txtLabelTopInput: { + fontFamily: 'Helvetica', + backgroundColor: 'white', + fontSize: 12, + margin: '-8% 0 0 7px', + padding: '0 10px 0 10px', + transform: 'scale(0.75)' + } +}; +const focusStyle = (criteria, cls) => criteria ? [cls.btnHt] : []; + +// eslint-disable-line +exports.focusStyle = focusStyle; \ No newline at end of file diff --git a/dist/components/cmd_bar/index.js b/dist/components/cmd_bar/index.js new file mode 100644 index 00000000..e82cf604 --- /dev/null +++ b/dist/components/cmd_bar/index.js @@ -0,0 +1,146 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var _react = _interopRequireDefault(require("react")); +var _reactRedux = require("react-redux"); +var _redux = require("redux"); +var _propTypes = _interopRequireDefault(require("prop-types")); +var _withStyles = _interopRequireDefault(require("@mui/styles/withStyles")); +var _common = require("./common"); +var _viewer = _interopRequireDefault(require("./01_viewer")); +var _zoom = _interopRequireDefault(require("./02_zoom")); +var _peak = _interopRequireDefault(require("./03_peak")); +var _integration = _interopRequireDefault(require("./04_integration")); +var _multiplicity = _interopRequireDefault(require("./05_multiplicity")); +var _undo_redo = _interopRequireDefault(require("./06_undo_redo")); +var _r01_layout = _interopRequireDefault(require("./r01_layout")); +var _r03_threshold = _interopRequireDefault(require("./r03_threshold")); +var _r04_submit = _interopRequireDefault(require("./r04_submit")); +var _r07_wavelength_btn = _interopRequireDefault(require("./r07_wavelength_btn")); +var _pecker = _interopRequireDefault(require("./07_pecker")); +var _r08_change_axes = _interopRequireDefault(require("./r08_change_axes")); +var _r09_detector = _interopRequireDefault(require("./r09_detector")); +var _r10_cv_density = _interopRequireDefault(require("./r10_cv_density")); +var _format = _interopRequireDefault(require("../../helpers/format")); +var _jsxRuntime = require("react/jsx-runtime"); +/* eslint-disable prefer-object-spread, function-paren-newline, +react/function-component-definition, react/require-default-props */ + +const styles = () => Object.assign({}, { + cardFlex: { + display: 'flex', + flexWrap: 'wrap', + alignItems: 'center', + justifyContent: 'space-between', + columnGap: 8, + rowGap: 4 + }, + lcMsToolbarLeft: { + display: 'flex', + flexWrap: 'wrap', + alignItems: 'center', + columnGap: 4, + rowGap: 4, + flex: '1 1 auto', + minWidth: 0 + }, + lcMsToolbarRight: { + display: 'flex', + alignItems: 'center', + justifyContent: 'flex-end', + flex: '0 1 auto', + minWidth: 0 + }, + lcMsToolbarRightCluster: { + display: 'flex', + flexWrap: 'wrap', + alignItems: 'center', + columnGap: 8, + rowGap: 4 + } +}, _common.commonStyle); +const CmdBar = ({ + classes, + feature, + hasEdit, + forecast, + operations, + editorOnly, + jcampIdx, + hideThreshold, + hideMainEditTools, + layoutSt, + prependLcMsToolbar +}) => { + const isCvLayout = _format.default.isCyclicVoltaLayout(layoutSt); + const rightCluster = /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, { + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_r01_layout.default, { + feature: feature, + hasEdit: hasEdit + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_r04_submit.default, { + operations: operations, + feature: feature, + forecast: forecast, + editorOnly: editorOnly, + hideSwitch: false, + disabled: false + }), hideThreshold ? null : /*#__PURE__*/(0, _jsxRuntime.jsx)(_r03_threshold.default, { + feature: feature, + hasEdit: hasEdit + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_r07_wavelength_btn.default, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_r10_cv_density.default, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_r08_change_axes.default, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_r09_detector.default, {})] + }); + if (prependLcMsToolbar) { + return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", { + className: `${classes.card} ${classes.cardFlex}`, + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", { + className: classes.lcMsToolbarLeft, + children: prependLcMsToolbar + }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", { + className: classes.lcMsToolbarRight, + children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", { + className: classes.lcMsToolbarRightCluster, + children: rightCluster + }) + })] + }); + } + return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", { + className: classes.card, + children: [hideMainEditTools ? null : /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, { + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_viewer.default, { + editorOnly: editorOnly + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_zoom.default, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_peak.default, { + jcampIdx: jcampIdx, + feature: feature + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_pecker.default, { + jcampIdx: jcampIdx + }), isCvLayout ? null : /*#__PURE__*/(0, _jsxRuntime.jsx)(_integration.default, {}), isCvLayout ? null : /*#__PURE__*/(0, _jsxRuntime.jsx)(_multiplicity.default, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_undo_redo.default, {})] + }), rightCluster] + }); +}; +const mapStateToProps = (state, _) => ( +// eslint-disable-line +{ + layoutSt: state.layout +}); +CmdBar.propTypes = { + classes: _propTypes.default.object.isRequired, + feature: _propTypes.default.object.isRequired, + forecast: _propTypes.default.object.isRequired, + hasEdit: _propTypes.default.bool.isRequired, + operations: _propTypes.default.array.isRequired, + editorOnly: _propTypes.default.bool.isRequired, + layoutSt: _propTypes.default.string.isRequired, + jcampIdx: _propTypes.default.any, + hideThreshold: _propTypes.default.bool, + hideMainEditTools: _propTypes.default.bool, + prependLcMsToolbar: _propTypes.default.node +}; +CmdBar.defaultProps = { + prependLcMsToolbar: null +}; +var _default = exports.default = (0, _redux.compose)((0, _reactRedux.connect)(mapStateToProps, null), (0, _withStyles.default)(styles))(CmdBar); \ No newline at end of file diff --git a/dist/components/cmd_bar/r01_layout.js b/dist/components/cmd_bar/r01_layout.js new file mode 100644 index 00000000..148f45e1 --- /dev/null +++ b/dist/components/cmd_bar/r01_layout.js @@ -0,0 +1,387 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var _react = _interopRequireWildcard(require("react")); +var _propTypes = _interopRequireDefault(require("prop-types")); +var _classnames = _interopRequireDefault(require("classnames")); +var _reactRedux = require("react-redux"); +var _redux = require("redux"); +var _material = require("@mui/material"); +var _withStyles = _interopRequireDefault(require("@mui/styles/withStyles")); +var _r02_scan = _interopRequireDefault(require("./r02_scan")); +var _layout = require("../../actions/layout"); +var _shift = require("../../actions/shift"); +var _list_layout = require("../../constants/list_layout"); +var _list_shift = require("../../constants/list_shift"); +var _cfg = _interopRequireDefault(require("../../helpers/cfg")); +var _common = require("./common"); +var _format = _interopRequireDefault(require("../../helpers/format")); +var _jsxRuntime = require("react/jsx-runtime"); +function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); } +/* eslint-disable prefer-object-spread, function-paren-newline, +react/function-component-definition */ + +const styles = () => Object.assign({ + fieldShift: { + width: 160 + }, + fieldLayout: { + width: 100 + } +}, _common.commonStyle); +const chemSubStyle = { + fontSize: '0.85em', + position: 'relative', + top: '0.24em', + lineHeight: 1 +}; +const renderReadableSubscript = (txt = '') => { + if (typeof txt !== 'string') return txt; + const regex = /([A-Za-z])(\d+)/g; + if (!regex.test(txt)) return txt; + regex.lastIndex = 0; + const parts = []; + let cursor = 0; + let match = regex.exec(txt); + while (match) { + const [raw, prefix, digits] = match; + const at = match.index; + if (at > cursor) parts.push(txt.slice(cursor, at)); + parts.push(prefix); + parts.push(/*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + style: chemSubStyle, + children: digits + }, `${at}-${digits}`)); + cursor = at + raw.length; + match = regex.exec(txt); + } + if (cursor < txt.length) parts.push(txt.slice(cursor)); + return parts; +}; +const shiftSelect = (classes, layoutSt, setShiftRefAct, shiftSt, curveSt) => { + if (_cfg.default.hideSolvent(layoutSt)) { + return null; + } + const { + curveIdx + } = curveSt; + const { + shifts + } = shiftSt; + const selectedShift = shifts[curveIdx] || {}; + const listShift = (0, _list_shift.getListShift)(layoutSt) || []; + const shiftRefName = selectedShift?.ref?.name || ''; + const isInList = listShift.some(r => r.name === shiftRefName); + const selectValue = isInList ? shiftRefName : ''; + const onChange = e => { + const name = e.target.value; + const refObj = listShift.find(r => r.name === name); + if (refObj) { + setShiftRefAct({ + dataToSet: refObj, + curveIdx + }); + } + }; + return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.FormControl, { + className: (0, _classnames.default)(classes.fieldShift), + variant: "outlined", + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.InputLabel, { + id: "select-solvent-label", + className: (0, _classnames.default)(classes.selectLabel, 'select-sv-bar-label'), + children: "Reference" + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Select, { + value: selectValue, + labelId: "select-solvent-label", + label: "Solvent", + onChange: onChange, + className: (0, _classnames.default)(classes.selectInput, 'input-sv-bar-shift'), + children: listShift.map(ref => /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.MenuItem, { + value: ref.name, + children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("span", { + className: (0, _classnames.default)(classes.txtOpt, 'option-sv-bar-shift'), + children: [renderReadableSubscript(ref.name), `: ${_format.default.strNumberFixedDecimal(ref.value, 2)} ppm`] + }) + }, ref.name)) + })] + }); +}; +const layoutSelect = (classes, layoutSt, updateLayoutAct) => { + const onChange = e => updateLayoutAct(e.target.value); + return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.FormControl, { + className: (0, _classnames.default)(classes.fieldLayout), + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.InputLabel, { + id: "select-layout-label", + className: (0, _classnames.default)(classes.selectLabel, 'select-sv-bar-label'), + children: "Layout" + }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.Select, { + labelId: "select-layout-label", + label: "Layout", + value: layoutSt, + onChange: onChange, + className: (0, _classnames.default)(classes.selectInput, 'input-sv-bar-layout'), + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.MenuItem, { + value: _list_layout.LIST_LAYOUT.PLAIN, + children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: (0, _classnames.default)(classes.txtOpt, 'option-sv-bar-layout'), + children: "plain" + }) + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.MenuItem, { + value: _list_layout.LIST_LAYOUT.IR, + children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: (0, _classnames.default)(classes.txtOpt, 'option-sv-bar-layout'), + children: "IR" + }) + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.MenuItem, { + value: _list_layout.LIST_LAYOUT.RAMAN, + children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: (0, _classnames.default)(classes.txtOpt, 'option-sv-bar-layout'), + children: "RAMAN" + }) + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.MenuItem, { + value: _list_layout.LIST_LAYOUT.UVVIS, + children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: (0, _classnames.default)(classes.txtOpt, 'option-sv-bar-layout'), + children: "UV/VIS" + }) + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.MenuItem, { + value: _list_layout.LIST_LAYOUT.HPLC_UVVIS, + children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: (0, _classnames.default)(classes.txtOpt, 'option-sv-bar-layout'), + children: "HPLC UV/VIS" + }) + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.MenuItem, { + value: _list_layout.LIST_LAYOUT.TGA, + children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: (0, _classnames.default)(classes.txtOpt, 'option-sv-bar-layout'), + children: "TGA (THERMOGRAVIMETRIC ANALYSIS)" + }) + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.MenuItem, { + value: _list_layout.LIST_LAYOUT.DSC, + children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: (0, _classnames.default)(classes.txtOpt, 'option-sv-bar-layout'), + children: "DSC (DIFFERENTIAL SCANNING CALORIMETRY)" + }) + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.MenuItem, { + value: _list_layout.LIST_LAYOUT.XRD, + children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: (0, _classnames.default)(classes.txtOpt, 'option-sv-bar-layout'), + children: "XRD (X-RAY DIFFRACTION)" + }) + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.MenuItem, { + value: _list_layout.LIST_LAYOUT.H1, + children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("span", { + className: (0, _classnames.default)(classes.txtOpt, 'option-sv-bar-layout'), + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("sup", { + children: "1" + }), "H"] + }) + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.MenuItem, { + value: _list_layout.LIST_LAYOUT.C13, + children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("span", { + className: (0, _classnames.default)(classes.txtOpt, 'option-sv-bar-layout'), + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("sup", { + children: "13" + }), "C"] + }) + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.MenuItem, { + value: _list_layout.LIST_LAYOUT.F19, + children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("span", { + className: (0, _classnames.default)(classes.txtOpt, 'option-sv-bar-layout'), + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("sup", { + children: "19" + }), "F"] + }) + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.MenuItem, { + value: _list_layout.LIST_LAYOUT.P31, + children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("span", { + className: (0, _classnames.default)(classes.txtOpt, 'option-sv-bar-layout'), + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("sup", { + children: "31" + }), "P"] + }) + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.MenuItem, { + value: _list_layout.LIST_LAYOUT.N15, + children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("span", { + className: (0, _classnames.default)(classes.txtOpt, 'option-sv-bar-layout'), + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("sup", { + children: "15" + }), "N"] + }) + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.MenuItem, { + value: _list_layout.LIST_LAYOUT.Si29, + children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("span", { + className: (0, _classnames.default)(classes.txtOpt, 'option-sv-bar-layout'), + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("sup", { + children: "29" + }), "Si"] + }) + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.MenuItem, { + value: _list_layout.LIST_LAYOUT.MS, + children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: (0, _classnames.default)(classes.txtOpt, 'option-sv-bar-layout'), + children: "MS" + }) + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.MenuItem, { + value: _list_layout.LIST_LAYOUT.LC_MS, + children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: (0, _classnames.default)(classes.txtOpt, 'option-sv-bar-layout'), + children: "LC/MS" + }) + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.MenuItem, { + value: _list_layout.LIST_LAYOUT.CYCLIC_VOLTAMMETRY, + children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: (0, _classnames.default)(classes.txtOpt, 'option-sv-bar-layout'), + children: "CV (CYCLIC VOLTAMMETRY)" + }) + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.MenuItem, { + value: _list_layout.LIST_LAYOUT.CDS, + children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: (0, _classnames.default)(classes.txtOpt, 'option-sv-bar-layout'), + children: "CDS (CIRCULAR DICHROISM SPECTROSCOPY)" + }) + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.MenuItem, { + value: _list_layout.LIST_LAYOUT.SEC, + children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: (0, _classnames.default)(classes.txtOpt, 'option-sv-bar-layout'), + children: "SEC" + }) + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.MenuItem, { + value: _list_layout.LIST_LAYOUT.GC, + children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: (0, _classnames.default)(classes.txtOpt, 'option-sv-bar-layout'), + children: "GC (GAS CHROMATOGRAPHY)" + }) + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.MenuItem, { + value: _list_layout.LIST_LAYOUT.AIF, + children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: (0, _classnames.default)(classes.txtOpt, 'option-sv-bar-layout'), + children: "SORPTION-DESORPTION" + }) + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.MenuItem, { + value: _list_layout.LIST_LAYOUT.EMISSIONS, + children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: (0, _classnames.default)(classes.txtOpt, 'option-sv-bar-layout'), + children: "EMISSIONS" + }) + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.MenuItem, { + value: _list_layout.LIST_LAYOUT.DLS_ACF, + children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: (0, _classnames.default)(classes.txtOpt, 'option-sv-bar-layout'), + children: "DLS ACF" + }) + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.MenuItem, { + value: _list_layout.LIST_LAYOUT.DLS_INTENSITY, + children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: (0, _classnames.default)(classes.txtOpt, 'option-sv-bar-layout'), + children: "DLS INTENSITY" + }) + })] + })] + }); +}; +const PLACEHOLDER = '- - -'; +const norm = s => (s || '').toString().toLowerCase().normalize('NFKD').replace(/[^a-z0-9]+/g, ''); +function solventKeyOf(feature) { + const r = feature?.metadata?.solventName ?? feature?.metadata?.solvent ?? feature?.meta?.solventName ?? feature?.meta?.solvent ?? feature?.solventName ?? feature?.solvent ?? null; + const a = feature?.metadata?.solvent_label ?? feature?.metadata?.solventLabel ?? null; + const raw = r && r !== PLACEHOLDER ? r : null; + const alt = a && a !== PLACEHOLDER ? a : null; + return norm(raw || alt || ''); +} +function pickBestRef(list, key) { + if (!key || !list?.length) return null; + const scored = []; + list.forEach(r => { + const nLabel = norm(r.label); + const nName = norm(r.name); + const nNsdb = norm(r.nsdb); + let s = 0; + if (nLabel && nLabel === key) s += 3; + if (nNsdb && nNsdb.includes(key)) s += 2; + if (nName && nName.includes(key)) s += 1; + if (s > 0) scored.push({ + r, + s + }); + }); + if (!scored.length) return null; + let max = 0; + scored.forEach(x => { + if (x.s > max) max = x.s; + }); + let cand = scored.filter(x => x.s === max).map(x => x.r); + if (cand.length > 1) { + const vals = cand.map(c => typeof c.value === 'number' ? c.value : null).filter(v => v != null).sort((a, b) => a - b); + if (vals.length) { + const m = vals[Math.floor(vals.length / 2)]; + cand = cand.slice().sort((a, b) => Math.abs((a.value ?? m) - m) - Math.abs((b.value ?? m) - m)); + } + if (cand.length > 1) { + cand.sort((a, b) => (a.name?.length || 0) - (b.name?.length || 0)); + } + } + return cand[0] || null; +} +function isRefUnset(shiftSt, curveIdx, list) { + const name = shiftSt?.shifts?.[curveIdx]?.ref?.name || ''; + if (!name || name === PLACEHOLDER) return true; + return !(list || []).some(r => r.name === name); +} +const Layout = ({ + classes, + feature, + hasEdit, + layoutSt, + setShiftRefAct, + updateLayoutAct, + curveSt, + shiftSt +}) => { + const { + curveIdx + } = curveSt; + const list = (0, _list_shift.getListShift)(layoutSt) || []; + const unset = isRefUnset(shiftSt, curveIdx, list); + const key = solventKeyOf(feature); + const best = pickBestRef(list, key); + (0, _react.useEffect)(() => { + if (unset && best) setShiftRefAct({ + dataToSet: best, + curveIdx + }); + }, [unset, best, curveIdx, setShiftRefAct]); + return /*#__PURE__*/(0, _jsxRuntime.jsxs)("span", { + className: classes.groupRight, + children: [layoutSelect(classes, layoutSt, updateLayoutAct), shiftSelect(classes, layoutSt, setShiftRefAct, shiftSt, curveSt), /*#__PURE__*/(0, _jsxRuntime.jsx)(_r02_scan.default, { + feature: feature, + hasEdit: hasEdit + })] + }); +}; +const mapStateToProps = (state, props) => ( +// eslint-disable-line +{ + layoutSt: state.layout, + curveSt: state.curve, + shiftSt: state.shift +}); +const mapDispatchToProps = dispatch => (0, _redux.bindActionCreators)({ + setShiftRefAct: _shift.setShiftRef, + updateLayoutAct: _layout.updateLayout +}, dispatch); +Layout.propTypes = { + classes: _propTypes.default.object.isRequired, + feature: _propTypes.default.object.isRequired, + hasEdit: _propTypes.default.bool.isRequired, + layoutSt: _propTypes.default.string.isRequired, + setShiftRefAct: _propTypes.default.func.isRequired, + updateLayoutAct: _propTypes.default.func.isRequired, + curveSt: _propTypes.default.object.isRequired, + shiftSt: _propTypes.default.object.isRequired +}; +var _default = exports.default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)((0, _withStyles.default)(styles)(Layout)); \ No newline at end of file diff --git a/dist/components/cmd_bar/r02_scan.js b/dist/components/cmd_bar/r02_scan.js new file mode 100644 index 00000000..e684e9c0 --- /dev/null +++ b/dist/components/cmd_bar/r02_scan.js @@ -0,0 +1,136 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var _react = _interopRequireDefault(require("react")); +var _propTypes = _interopRequireDefault(require("prop-types")); +var _classnames = _interopRequireDefault(require("classnames")); +var _reactRedux = require("react-redux"); +var _redux = require("redux"); +var _material = require("@mui/material"); +var _styles = require("@mui/styles"); +var _CloudDoneOutlined = _interopRequireDefault(require("@mui/icons-material/CloudDoneOutlined")); +var _HowToRegOutlined = _interopRequireDefault(require("@mui/icons-material/HowToRegOutlined")); +var _RefreshOutlined = _interopRequireDefault(require("@mui/icons-material/RefreshOutlined")); +var _scan = require("../../actions/scan"); +var _common = require("./common"); +var _jsxRuntime = require("react/jsx-runtime"); +/* eslint-disable prefer-object-spread, function-paren-newline, +react/function-component-definition */ + +const styles = () => Object.assign({ + fieldScan: { + width: 90 + } +}, _common.commonStyle); +const restoreIcon = (classes, hasEdit, isEdit) => hasEdit && isEdit ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_HowToRegOutlined.default, { + className: classes.icon +}) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_CloudDoneOutlined.default, { + className: classes.icon +}); +const restoreTp = (hasEdit, isEdit) => hasEdit && isEdit ? 'User Defined Scan' : 'Auto Picked Scan'; +const btnRestore = (classes, hasEdit, isEdit, toggleEditAct) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Tooltip, { + title: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: "txt-sv-tp", + children: restoreTp(hasEdit, isEdit) + }), + children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_common.MuButton, { + className: (0, _classnames.default)('btn-sv-bar-scanrst'), + disabled: !hasEdit, + onClick: toggleEditAct, + children: restoreIcon(classes, hasEdit, isEdit) + }) + }) +}); +const btnRrfresh = (classes, disabled, refreshAct) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Tooltip, { + title: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: "txt-sv-tp", + children: "Refresh Scan" + }), + children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_common.MuButton, { + className: (0, _classnames.default)('btn-sv-bar-scanrfs'), + disabled: disabled, + onClick: refreshAct, + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_RefreshOutlined.default, { + className: classes.icon + }) + }) + }) +}); +const scanSelect = (classes, feature, layoutSt, scanSt, onChange) => { + const { + target, + count + } = scanSt; + if (!count) return null; + const range = [...Array(count + 1).keys()].slice(1); + const content = range.map(num => /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.MenuItem, { + value: num, + children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: (0, _classnames.default)(classes.txtOpt, 'option-sv-bar-scan'), + children: `scan ${num}` + }) + }, num)); + const defaultValue = scanSt.isAuto || !feature.scanEditTarget ? feature.scanAutoTarget : feature.scanEditTarget; + const selValue = target || defaultValue || 1; + return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.FormControl, { + className: (0, _classnames.default)(classes.fieldScan), + variant: "outlined", + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.InputLabel, { + id: "select-scan-label", + className: (0, _classnames.default)(classes.selectLabel, 'select-sv-bar-label'), + children: "Current Scan" + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Select, { + labelId: "select-scan-label", + label: "Current Scan", + value: selValue, + onChange: onChange, + className: (0, _classnames.default)(classes.selectInput, 'input-sv-bar-scan'), + children: content + })] + }); +}; +const Scan = ({ + classes, + feature, + hasEdit, + layoutSt, + scanSt, + setScanTargetAct, + resetScanTargetAct, + toggleScanIsAutoAct +}) => { + const isMs = ['MS'].indexOf(layoutSt) >= 0; + if (!isMs) return null; + const onChange = e => setScanTargetAct(e.target.value); + return /*#__PURE__*/(0, _jsxRuntime.jsxs)("span", { + children: [scanSelect(classes, feature, layoutSt, scanSt, onChange), btnRrfresh(classes, false, resetScanTargetAct), btnRestore(classes, hasEdit, !scanSt.isAuto, toggleScanIsAutoAct)] + }); +}; +const mapStateToProps = (state, props) => ( +// eslint-disable-line +{ + layoutSt: state.layout, + scanSt: state.scan +}); +const mapDispatchToProps = dispatch => (0, _redux.bindActionCreators)({ + setScanTargetAct: _scan.setScanTarget, + resetScanTargetAct: _scan.resetScanTarget, + toggleScanIsAutoAct: _scan.toggleScanIsAuto +}, dispatch); +Scan.propTypes = { + classes: _propTypes.default.object.isRequired, + feature: _propTypes.default.object.isRequired, + hasEdit: _propTypes.default.bool.isRequired, + layoutSt: _propTypes.default.string.isRequired, + scanSt: _propTypes.default.object.isRequired, + setScanTargetAct: _propTypes.default.func.isRequired, + resetScanTargetAct: _propTypes.default.func.isRequired, + toggleScanIsAutoAct: _propTypes.default.func.isRequired +}; +var _default = exports.default = (0, _redux.compose)((0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps), (0, _styles.withStyles)(styles))(Scan); \ No newline at end of file diff --git a/dist/components/cmd_bar/r03_threshold.js b/dist/components/cmd_bar/r03_threshold.js new file mode 100644 index 00000000..0ca008d9 --- /dev/null +++ b/dist/components/cmd_bar/r03_threshold.js @@ -0,0 +1,177 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var _react = _interopRequireDefault(require("react")); +var _propTypes = _interopRequireDefault(require("prop-types")); +var _classnames = _interopRequireDefault(require("classnames")); +var _reactRedux = require("react-redux"); +var _redux = require("redux"); +var _material = require("@mui/material"); +var _styles = require("@mui/styles"); +var _CloudDoneOutlined = _interopRequireDefault(require("@mui/icons-material/CloudDoneOutlined")); +var _HowToRegOutlined = _interopRequireDefault(require("@mui/icons-material/HowToRegOutlined")); +var _RefreshOutlined = _interopRequireDefault(require("@mui/icons-material/RefreshOutlined")); +var _cfg = _interopRequireDefault(require("../../helpers/cfg")); +var _format = _interopRequireDefault(require("../../helpers/format")); +var _threshold = require("../../actions/threshold"); +var _common = require("./common"); +var _jsxRuntime = require("react/jsx-runtime"); +/* eslint-disable prefer-object-spread, function-paren-newline, +react/function-component-definition */ + +const styles = () => Object.assign({ + field: { + width: 110 + }, + txtIcon: {} +}, _common.commonStyle); +const txtPercent = () => /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.InputAdornment, { + position: "end", + children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: "txt-percent", + children: "%" + }) +}); +const setThreshold = (classes, thresVal, updateThresholdValueAct, curveSt) => { + const { + curveIdx + } = curveSt; + const onBlur = e => updateThresholdValueAct({ + value: e.target.value, + curveIdx + }); + const onChange = e => updateThresholdValueAct({ + value: e.target.value, + curveIdx + }); + const onEnterPress = e => { + if (e.key === 'Enter') { + updateThresholdValueAct({ + value: e.target.value, + curveIdx + }); + } + }; + return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.FormControl, { + variant: "outlined", + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TextField, { + className: classes.field, + id: "outlined-name", + placeholder: "N.A.", + type: "number", + value: thresVal || 0.01, + margin: "none", + InputProps: { + endAdornment: txtPercent(), + className: (0, _classnames.default)(classes.txtInput, 'txtfield-sv-bar-input'), + inputProps: { + min: 0.01 + } + }, + onChange: onChange, + onBlur: onBlur, + onKeyPress: onEnterPress, + variant: "outlined" + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.InputLabel, { + className: (0, _classnames.default)(classes.txtLabelBottomInput), + children: "Threshold" + })] + }); +}; +const restoreIcon = (classes, hasEdit, isEdit) => hasEdit && isEdit ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_HowToRegOutlined.default, { + className: classes.icon +}) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_CloudDoneOutlined.default, { + className: classes.icon +}); +const restoreTp = (hasEdit, isEdit) => hasEdit && isEdit ? 'User Defined Threshold' : 'Auto Picked Threshold'; +const Threshold = ({ + classes, + feature, + hasEdit, + hideThresSt, + thresValSt, + isEditSt, + curveSt, + hplcMsSt, + layoutSt, + updateThresholdValueAct, + resetThresholdValueAct, + toggleThresholdIsEditAct +}) => { + const isLcMs = _format.default.isLCMsLayout(layoutSt); + let thresVal; + if (isLcMs) { + thresVal = hplcMsSt?.threshold?.value != null ? hplcMsSt.threshold.value : feature?.thresRef ?? thresValSt ?? 5; + } else { + thresVal = thresValSt || (feature ? feature.thresRef : hplcMsSt?.threshold?.value); + } + return /*#__PURE__*/(0, _jsxRuntime.jsxs)("span", { + className: classes.groupRight, + children: [setThreshold(classes, thresVal, updateThresholdValueAct, curveSt), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Tooltip, { + title: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: "txt-sv-tp", + children: "Restore Threshold" + }), + children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_common.MuButton, { + className: (0, _classnames.default)('btn-sv-bar-thresref'), + disabled: _cfg.default.btnCmdThres(thresVal), + onClick: resetThresholdValueAct, + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_RefreshOutlined.default, { + className: classes.icon + }) + }) + }) + }), hideThresSt ? null : /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Tooltip, { + title: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: "txt-sv-tp", + children: restoreTp(hasEdit, isEditSt) + }), + children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_common.MuButton, { + className: (0, _classnames.default)('btn-sv-bar-thresrst'), + disabled: _cfg.default.btnCmdThres(thresVal), + onClick: toggleThresholdIsEditAct, + children: restoreIcon(classes, hasEdit, isEditSt) + }) + }) + })] + }); +}; +const mapStateToProps = (state, props) => ( +// eslint-disable-line +{ + hideThresSt: _cfg.default.hideCmdThres(state.layout), + isEditSt: state.threshold.list[state.curve.curveIdx].isEdit, + thresValSt: parseFloat(state.threshold.list[state.curve.curveIdx].value) || 0, + curveSt: state.curve, + hplcMsSt: state.hplcMs, + layoutSt: state.layout +}); +const mapDispatchToProps = dispatch => (0, _redux.bindActionCreators)({ + updateThresholdValueAct: _threshold.updateThresholdValue, + resetThresholdValueAct: _threshold.resetThresholdValue, + toggleThresholdIsEditAct: _threshold.toggleThresholdIsEdit +}, dispatch); +Threshold.propTypes = { + classes: _propTypes.default.object.isRequired, + feature: _propTypes.default.object.isRequired, + hasEdit: _propTypes.default.bool.isRequired, + hideThresSt: _propTypes.default.bool.isRequired, + isEditSt: _propTypes.default.bool.isRequired, + thresValSt: _propTypes.default.number.isRequired, + curveSt: _propTypes.default.object.isRequired, + updateThresholdValueAct: _propTypes.default.func.isRequired, + resetThresholdValueAct: _propTypes.default.func.isRequired, + toggleThresholdIsEditAct: _propTypes.default.func.isRequired, + hplcMsSt: _propTypes.default.object.isRequired, + layoutSt: _propTypes.default.string +}; +Threshold.defaultProps = { + layoutSt: undefined +}; +var _default = exports.default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)((0, _styles.withStyles)(styles)(Threshold)); \ No newline at end of file diff --git a/dist/components/cmd_bar/r04_submit.js b/dist/components/cmd_bar/r04_submit.js new file mode 100644 index 00000000..5b1303ac --- /dev/null +++ b/dist/components/cmd_bar/r04_submit.js @@ -0,0 +1,311 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var _react = _interopRequireDefault(require("react")); +var _propTypes = _interopRequireDefault(require("prop-types")); +var _classnames = _interopRequireDefault(require("classnames")); +var _reactRedux = require("react-redux"); +var _redux = require("redux"); +var _material = require("@mui/material"); +var _styles = require("@mui/styles"); +var _submit = require("../../actions/submit"); +var _hplc_ms = require("../../actions/hplc_ms"); +var _r05_submit_btn = _interopRequireDefault(require("./r05_submit_btn")); +var _r06_predict_btn = _interopRequireDefault(require("./r06_predict_btn")); +var _common = require("./common"); +var _format = _interopRequireDefault(require("../../helpers/format")); +var _list_layout = require("../../constants/list_layout"); +var _jsxRuntime = require("react/jsx-runtime"); +/* eslint-disable prefer-object-spread, function-paren-newline, +react/function-component-definition */ + +const styles = () => Object.assign({ + fieldOrder: { + width: 90 + }, + fieldIntensity: { + width: 90 + }, + fieldDecimal: { + width: 80 + }, + fieldLcmsIntegrationsExport: { + width: 148, + minWidth: 148 + }, + fieldOpertaion: { + width: 120 + } +}, _common.commonStyle); +const ascendSelect = (classes, hideSwitch, isAscendSt, toggleIsAscendAct) => { + if (hideSwitch) return null; + return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.FormControl, { + className: (0, _classnames.default)(classes.fieldOrder), + variant: "outlined", + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.InputLabel, { + id: "select-sort-peaks-label", + className: (0, _classnames.default)(classes.selectLabel, 'select-sv-bar-label'), + children: "Write Peaks" + }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.Select, { + labelId: "select-sort-peaks-label", + label: "Write Peaks", + value: isAscendSt, + onChange: toggleIsAscendAct, + className: (0, _classnames.default)(classes.selectInput, 'input-sv-bar-order'), + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.MenuItem, { + value: true, + children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: (0, _classnames.default)(classes.txtOpt, 'option-sv-bar-ascend'), + children: "Ascend" + }) + }, "ascend"), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.MenuItem, { + value: false, + children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: (0, _classnames.default)(classes.txtOpt, 'option-sv-bar-descend'), + children: "Descend" + }) + }, "descend")] + })] + }); +}; +const intensitySelect = (classes, hideSwitch, isIntensitySt, toggleIsIntensityAct) => { + if (hideSwitch) return null; + return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.FormControl, { + className: (0, _classnames.default)(classes.fieldIntensity), + variant: "outlined", + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.InputLabel, { + id: "select-intensity-label", + className: (0, _classnames.default)(classes.selectLabel, 'select-sv-bar-label'), + children: "Write Intensity" + }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.Select, { + labelId: "select-intensity-label", + label: "Write Intensity", + value: isIntensitySt, + onChange: toggleIsIntensityAct, + className: (0, _classnames.default)(classes.selectInput, 'input-sv-bar-intensity') + // input={ + // ( + // + // ) + // } + , + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.MenuItem, { + value: true, + children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: (0, _classnames.default)(classes.txtOpt, 'option-sv-bar-show'), + children: "Show" + }) + }, "ascend"), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.MenuItem, { + value: false, + children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: (0, _classnames.default)(classes.txtOpt, 'option-sv-bar-hide'), + children: "Hide" + }) + }, "descend")] + })] + }); +}; +const decimalSelect = (classes, hideSwitch, decimalSt, updateDecimalAct) => { + if (hideSwitch) return null; + const decimals = [0, 1, 2, 3, 4]; + const options = decimals.map(d => /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.MenuItem, { + value: d, + children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: (0, _classnames.default)(classes.txtOpt, 'option-sv-bar-decimal'), + children: d + }) + }, d)); + return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.FormControl, { + className: (0, _classnames.default)(classes.fieldDecimal), + variant: "outlined", + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.InputLabel, { + id: "select-decimal-label", + className: (0, _classnames.default)(classes.selectLabel, 'select-sv-bar-label'), + children: "Decimal" + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Select, { + labelId: "select-decimal-label", + label: "Decimal", + value: decimalSt, + onChange: updateDecimalAct, + className: (0, _classnames.default)(classes.selectInput, 'input-sv-bar-decimal') + // input={ + // ( + // + // ) + // } + , + children: options + })] + }); +}; +const lcmsIntegrationsExportSelect = (classes, layoutSt, value, onChange) => { + if (layoutSt !== _list_layout.LIST_LAYOUT.LC_MS) return null; + const v = ['percent', 'area', 'both'].includes(value) ? value : 'percent'; + return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.FormControl, { + className: (0, _classnames.default)(classes.fieldLcmsIntegrationsExport), + variant: "outlined", + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.InputLabel, { + id: "select-lcms-intg-export-label", + className: (0, _classnames.default)(classes.selectLabel, 'select-sv-bar-label'), + children: "Integrations text" + }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.Select, { + labelId: "select-lcms-intg-export-label", + label: "Integrations text", + value: v, + onChange: onChange, + className: (0, _classnames.default)(classes.selectInput, 'input-sv-bar-lcms-intg-export'), + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.MenuItem, { + value: "percent", + children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: (0, _classnames.default)(classes.txtOpt), + children: "Percent only" + }) + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.MenuItem, { + value: "area", + children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: (0, _classnames.default)(classes.txtOpt), + children: "Area (AUC) only" + }) + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.MenuItem, { + value: "both", + children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: (0, _classnames.default)(classes.txtOpt), + children: "Percent and area" + }) + })] + })] + }); +}; +const operationSelect = (classes, operations, operation, onChangeSelect) => { + const options = operations.map(o => /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.MenuItem, { + value: o.name, + children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: (0, _classnames.default)(classes.txtOpt, 'option-sv-bar-operation'), + children: o.name + }) + }, o.name)); + const operationNames = operations.map(o => o.name); + const selectedValue = operationNames.includes(operation?.name) ? operation.name : operations[0].name; + return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.FormControl, { + className: (0, _classnames.default)(classes.fieldOpertaion), + variant: "outlined", + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.InputLabel, { + id: "select-submit-label", + className: (0, _classnames.default)(classes.selectLabel, 'select-sv-bar-label'), + children: "Submit" + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Select, { + labelId: "select-submit-label", + label: "Submit", + value: selectedValue, + onChange: onChangeSelect, + className: (0, _classnames.default)(classes.selectInput, 'input-sv-bar-operation') + // input={ + // ( + // + // ) + // } + , + children: options + })] + }); +}; +const selectOperation = (name, operations, updateOperationAct) => { + let operation = false; + operations.forEach(o => { + if (o.name === name) { + operation = o; + } + }); + updateOperationAct(operation); +}; +const Submit = ({ + operations, + classes, + feature, + forecast, + editorOnly, + hideSwitch, + disabled, + isAscendSt, + isIntensitySt, + operationSt, + decimalSt, + isEmWaveSt, + layoutSt, + lcmsIntegrationsExportSt, + toggleIsAscendAct, + toggleIsIntensityAct, + updateOperationAct, + updateDecimalAct, + setLcmsIntegrationsExportAct +}) => { + const onChangeSelect = e => selectOperation(e.target.value, operations, updateOperationAct); + const onLcmsIntegrationsExport = e => setLcmsIntegrationsExportAct(e.target.value); + if (!operations || operations.length === 0) return null; + return /*#__PURE__*/(0, _jsxRuntime.jsxs)("span", { + className: classes.groupRightMost, + children: [ascendSelect(classes, hideSwitch, isAscendSt, toggleIsAscendAct), intensitySelect(classes, hideSwitch || !isEmWaveSt, isIntensitySt, toggleIsIntensityAct), decimalSelect(classes, hideSwitch, decimalSt, updateDecimalAct), lcmsIntegrationsExportSelect(classes, layoutSt, lcmsIntegrationsExportSt, onLcmsIntegrationsExport), editorOnly ? null : /*#__PURE__*/(0, _jsxRuntime.jsx)(_r06_predict_btn.default, { + feature: feature, + forecast: forecast + }), operationSelect(classes, operations, operationSt, onChangeSelect), /*#__PURE__*/(0, _jsxRuntime.jsx)(_r05_submit_btn.default, { + feature: feature, + isAscend: isAscendSt, + isIntensity: isIntensitySt, + operation: operationSt, + disabled: disabled + })] + }); +}; +const mapStateToProps = (state, props) => ( +// eslint-disable-line +{ + layoutSt: state.layout, + isEmWaveSt: _format.default.isEmWaveLayout(state.layout), + isAscendSt: state.submit.isAscend, + isIntensitySt: state.submit.isIntensity, + decimalSt: state.submit.decimal, + operationSt: state.submit.operation, + lcmsIntegrationsExportSt: state.hplcMs?.lcmsIntegrationsExport || 'percent' +}); +const mapDispatchToProps = dispatch => (0, _redux.bindActionCreators)({ + toggleIsAscendAct: _submit.toggleIsAscend, + toggleIsIntensityAct: _submit.toggleIsIntensity, + updateOperationAct: _submit.updateOperation, + updateDecimalAct: _submit.updateDecimal, + setLcmsIntegrationsExportAct: _hplc_ms.setLcmsIntegrationsExport +}, dispatch); +Submit.propTypes = { + classes: _propTypes.default.object.isRequired, + feature: _propTypes.default.object.isRequired, + forecast: _propTypes.default.object.isRequired, + editorOnly: _propTypes.default.bool.isRequired, + operations: _propTypes.default.array.isRequired, + operationSt: _propTypes.default.object.isRequired, + hideSwitch: _propTypes.default.bool.isRequired, + disabled: _propTypes.default.bool.isRequired, + isAscendSt: _propTypes.default.bool.isRequired, + isIntensitySt: _propTypes.default.bool.isRequired, + isEmWaveSt: _propTypes.default.bool.isRequired, + decimalSt: _propTypes.default.number.isRequired, + toggleIsAscendAct: _propTypes.default.func.isRequired, + toggleIsIntensityAct: _propTypes.default.func.isRequired, + updateOperationAct: _propTypes.default.func.isRequired, + updateDecimalAct: _propTypes.default.func.isRequired, + layoutSt: _propTypes.default.string.isRequired, + lcmsIntegrationsExportSt: _propTypes.default.string.isRequired, + setLcmsIntegrationsExportAct: _propTypes.default.func.isRequired +}; +var _default = exports.default = (0, _redux.compose)((0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps), (0, _styles.withStyles)(styles))(Submit); \ No newline at end of file diff --git a/dist/components/cmd_bar/r05_submit_btn.js b/dist/components/cmd_bar/r05_submit_btn.js new file mode 100644 index 00000000..8bbdca97 --- /dev/null +++ b/dist/components/cmd_bar/r05_submit_btn.js @@ -0,0 +1,354 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var _react = _interopRequireDefault(require("react")); +var _propTypes = _interopRequireDefault(require("prop-types")); +var _reactRedux = require("react-redux"); +var _classnames = _interopRequireDefault(require("classnames")); +var _redux = require("redux"); +var _Tooltip = _interopRequireDefault(require("@mui/material/Tooltip")); +var _PlayCircleOutline = _interopRequireDefault(require("@mui/icons-material/PlayCircleOutline")); +var _styles = require("@mui/styles"); +var _chem = require("../../helpers/chem"); +var _common = require("./common"); +var _extractPeaksEdit = require("../../helpers/extractPeaksEdit"); +var _format = _interopRequireDefault(require("../../helpers/format")); +var _jsxRuntime = require("react/jsx-runtime"); +/* eslint-disable prefer-object-spread, function-paren-newline, +react/function-component-definition, function-call-argument-newline, +react/require-default-props */ + +const styles = () => Object.assign({}, _common.commonStyle); +const getAxesSelection = (axesUnitsSt, curveIdx) => { + const axes = axesUnitsSt?.axes; + if (!Array.isArray(axes) || axes.length === 0) return { + xUnit: '', + yUnit: '' + }; + const idx = Number.isFinite(curveIdx) ? curveIdx : 0; + return axes[idx] || axes[0] || { + xUnit: '', + yUnit: '' + }; +}; +const resolveAxisLabels = (xLabel, yLabel, axesUnitsSt, curveIdx) => { + const { + xUnit, + yUnit + } = getAxesSelection(axesUnitsSt, curveIdx); + return { + xLabel: xUnit === '' ? xLabel : xUnit, + yLabel: yUnit === '' ? yLabel : yUnit + }; +}; +const getBaseCurrentUnit = label => /mA/i.test(String(label)) ? 'mA' : 'A'; +const buildCvAxisYLabel = (yLabel, cyclicvoltaSt) => { + const baseUnit = getBaseCurrentUnit(yLabel); + const areaUnit = cyclicvoltaSt?.areaUnit || 'cm²'; + if (cyclicvoltaSt?.useCurrentDensity) { + return `Current density in ${baseUnit}/${areaUnit}`; + } + return `Current in ${baseUnit}`; +}; +const computeCvYScaleFactor = (feature, cyclicvoltaSt) => { + if (!cyclicvoltaSt?.useCurrentDensity) return 1.0; + const rawArea = (cyclicvoltaSt.areaValue === '' ? 1.0 : cyclicvoltaSt.areaValue) || 1.0; + const areaUnit = cyclicvoltaSt.areaUnit || 'cm²'; + const safeArea = rawArea > 0 ? rawArea : 1.0; + const areaInCm2 = areaUnit === 'mm²' ? safeArea / 100.0 : safeArea; + let factor = 1.0 / areaInCm2; + const baseY = feature && feature.yUnit ? String(feature.yUnit) : 'A'; + if (/mA/i.test(baseY)) { + factor *= 1000.0; + } + if (areaUnit === 'mm²') { + factor /= 100.0; + } + return factor; +}; +const defaultThreshold = { + isEdit: true, + value: false, + upper: false, + lower: false +}; +const LCMS_INTEGRATIONS_EXPORT_MODES = ['percent', 'area', 'both']; +const isLcmsIntegrationsExportMode = v => LCMS_INTEGRATIONS_EXPORT_MODES.includes(v); +const resolveLcmsIntegrationsExportForSubmit = (analysis, hplcMsSt) => { + if (isLcmsIntegrationsExportMode(analysis?.lcmsIntegrationsExport)) { + return analysis.lcmsIntegrationsExport; + } + if (analysis?.lcmsIncludeIntegrationArea === true) { + return 'both'; + } + if (isLcmsIntegrationsExportMode(hplcMsSt?.lcmsIntegrationsExport)) { + return hplcMsSt.lcmsIntegrationsExport; + } + return 'percent'; +}; +const pickFromList = (list, index, fallback = null) => Array.isArray(list) && list[index] !== undefined ? list[index] : fallback; +const hasBoolean = value => typeof value === 'boolean'; +const resolveOptionalBooleanFlags = analysis => { + const flags = {}; + if (hasBoolean(analysis?.keepPred)) flags.keepPred = analysis.keepPred; + if (hasBoolean(analysis?.simulatenmr)) flags.simulatenmr = analysis.simulatenmr; + return flags; +}; +const buildSpectrumPayload = ({ + feature, + curveIdx, + editPeakSt, + thresList, + shiftSt, + layoutSt, + scanSt, + integrationSt, + multiplicitySt, + waveLengthSt, + cyclicvoltaSt, + axesUnitsSt, + detectorSt, + dscMetaData, + isAscend, + isIntensity, + analysis, + decimalSt +}) => { + const threshold = thresList?.[curveIdx] || thresList?.[0] || defaultThreshold; + const editPeakAtIndex = Object.assign({}, editPeakSt, { + selectedIdx: curveIdx + }); + const peaksEdit = (0, _extractPeaksEdit.extractPeaksEdit)(feature, editPeakAtIndex, threshold, shiftSt, layoutSt, curveIdx); + const scan = (0, _chem.Convert2Scan)(feature, scanSt); + const thres = (0, _chem.Convert2Thres)(feature, threshold); + const shift = pickFromList(shiftSt?.shifts, curveIdx, shiftSt); + const integration = pickFromList(integrationSt?.integrations, curveIdx, integrationSt); + const multiplicity = pickFromList(multiplicitySt?.multiplicities, curveIdx, multiplicitySt); + const { + xLabel, + yLabel + } = resolveAxisLabels(feature?.xUnit, feature?.yUnit, axesUnitsSt, curveIdx); + const axisYLabel = _format.default.isCyclicVoltaLayout(layoutSt) ? buildCvAxisYLabel(yLabel, cyclicvoltaSt) : yLabel; + const axisDisplay = { + xLabel, + yLabel: axisYLabel + }; + const cvDisplay = _format.default.isCyclicVoltaLayout(layoutSt) ? { + mode: cyclicvoltaSt?.useCurrentDensity ? 'density' : 'current', + yScaleFactor: computeCvYScaleFactor(feature, cyclicvoltaSt) + } : null; + const cyclicvoltaPayload = { + ...cyclicvoltaSt, + axisDisplay, + cvDisplay + }; + const optionalBooleanFlags = resolveOptionalBooleanFlags(analysis); + return { + peaks: peaksEdit, + layout: layoutSt, + shift, + scan, + thres, + isAscend, + isIntensity, + analysis, + decimal: decimalSt, + integration, + multiplicity, + waveLength: waveLengthSt, + cyclicvoltaSt: cyclicvoltaPayload, + curveSt: { + curveIdx + }, + axesUnitsSt, + detectorSt, + dscMetaData, + ...optionalBooleanFlags + }; +}; +const onClickCb = (operationValue, isAscend, isIntensity, layoutSt, shiftSt, analysis, decimalSt, integrationSt, multiplicitySt, waveLengthSt, cyclicvoltaSt, curveSt, axesUnitsSt, detectorSt, dscMetaData, curveList, editPeakSt, thresList, scanSt, feature, hplcMsSt) => () => { + const defaultCurves = feature ? [{ + feature + }] : []; + let curves = Array.isArray(curveList) && curveList.length > 0 ? curveList : defaultCurves; + if (layoutSt === 'LC/MS') { + curves = curves.filter(c => c.lcmsKind === 'uvvis'); + if (curves.length === 0) curves = defaultCurves; + } + const fallbackIdx = Number.isFinite(curveSt?.curveIdx) ? curveSt.curveIdx : 0; + const indicesToSend = curves.length > 0 ? curves.map((_, index) => index) : [fallbackIdx]; + let lcmsGlobalFields = null; + if (layoutSt === 'LC/MS') { + const lcmsIntegrationsExport = resolveLcmsIntegrationsExportForSubmit(analysis, hplcMsSt); + lcmsGlobalFields = { + lcms_peaks: (0, _extractPeaksEdit.formatLcmsPeaksForBackend)(hplcMsSt), + lcms_integrals: (0, _extractPeaksEdit.formatLcmsIntegralsForBackend)(hplcMsSt), + lcms_integrations_export: lcmsIntegrationsExport, + lcms_peaks_text: _format.default.formatedLCMS(hplcMsSt, isAscend, decimalSt, { + lcmsIntegrationsExport + }), + lcms_uvvis_wavelength: hplcMsSt?.uvvis?.selectedWaveLength ?? null, + lcms_mz_page: hplcMsSt?.tic?.currentPageValue ?? null, + lcms_mz_page_data: (0, _extractPeaksEdit.getLcmsMzPageData)(hplcMsSt) + }; + } + const spectraList = indicesToSend.map(curveIdx => { + const curve = curves[curveIdx] || {}; + const curveFeature = curve.feature || feature; + const spectrumPayload = buildSpectrumPayload({ + feature: curveFeature, + curveIdx, + editPeakSt, + thresList, + shiftSt, + layoutSt, + scanSt, + integrationSt, + multiplicitySt, + waveLengthSt, + cyclicvoltaSt, + axesUnitsSt, + detectorSt, + dscMetaData, + isAscend, + isIntensity, + analysis, + decimalSt + }); + if (lcmsGlobalFields && curve.lcmsKind === 'uvvis') { + return { + ...spectrumPayload, + ...lcmsGlobalFields + }; + } + return spectrumPayload; + }); + const payload = { + spectra_list: spectraList + }; + if (lcmsGlobalFields) { + Object.assign(payload, lcmsGlobalFields); + } + if (Number.isFinite(curveSt?.curveIdx)) { + payload.curveSt = { + curveIdx: curveSt.curveIdx + }; + } + operationValue(payload); +}; +const BtnSubmit = ({ + classes, + operation, + feature, + isAscend, + isIntensity, + editPeakSt, + thresList, + layoutSt, + shiftSt, + scanSt, + forecastSt, + decimalSt, + integrationSt, + multiplicitySt, + waveLengthSt, + cyclicvoltaSt, + curveSt, + curveList, + axesUnitsSt, + detectorSt, + metaSt, + hplcMsSt +}) => { + // const disBtn = peaksEdit.length === 0 || statusSt.btnSubmit || disabled; + const { + dscMetaData + } = metaSt; + const isCvLayout = _format.default.isCyclicVoltaLayout(layoutSt); + const { + xLabel, + yLabel + } = resolveAxisLabels(feature?.xUnit, feature?.yUnit, axesUnitsSt, curveSt?.curveIdx); + const axisYLabel = isCvLayout ? buildCvAxisYLabel(yLabel, cyclicvoltaSt) : yLabel; + const axisDisplay = { + xLabel, + yLabel: axisYLabel + }; + const cvDisplay = isCvLayout ? { + mode: cyclicvoltaSt?.useCurrentDensity ? 'density' : 'current', + yScaleFactor: computeCvYScaleFactor(feature, cyclicvoltaSt) + } : null; + const cyclicvoltaPayload = { + ...cyclicvoltaSt, + axisDisplay, + cvDisplay + }; + if (!operation) return null; + return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Tooltip.default, { + title: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: "txt-sv-tp", + children: "Submit" + }), + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_common.MuButton, { + className: (0, _classnames.default)('btn-sv-bar-submit'), + color: "primary", + onClick: onClickCb(operation.value, isAscend, isIntensity, layoutSt, shiftSt, forecastSt.predictions, decimalSt, integrationSt, multiplicitySt, waveLengthSt, cyclicvoltaPayload, curveSt, axesUnitsSt, detectorSt, dscMetaData, curveList, editPeakSt, thresList, scanSt, feature, hplcMsSt), + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_PlayCircleOutline.default, { + className: classes.icon + }) + }) + }); +}; +const mapStateToProps = (state, props) => ( +// eslint-disable-line +{ + editPeakSt: state.editPeak.present, + thresList: state.threshold.list, + layoutSt: state.layout, + shiftSt: state.shift, + scanSt: state.scan, + forecastSt: state.forecast, + decimalSt: state.submit.decimal, + integrationSt: state.integration.present, + multiplicitySt: state.multiplicity.present, + waveLengthSt: state.wavelength, + cyclicvoltaSt: state.cyclicvolta, + curveSt: state.curve, + curveList: state.curve.listCurves, + axesUnitsSt: state.axesUnits, + detectorSt: state.detector, + metaSt: state.meta, + hplcMsSt: state.hplcMs +}); +BtnSubmit.propTypes = { + classes: _propTypes.default.object.isRequired, + feature: _propTypes.default.object.isRequired, + isAscend: _propTypes.default.bool.isRequired, + isIntensity: _propTypes.default.bool.isRequired, + operation: _propTypes.default.oneOfType([_propTypes.default.object, _propTypes.default.bool]).isRequired, + editPeakSt: _propTypes.default.object.isRequired, + thresList: _propTypes.default.array.isRequired, + layoutSt: _propTypes.default.string.isRequired, + shiftSt: _propTypes.default.object.isRequired, + scanSt: _propTypes.default.object.isRequired, + forecastSt: _propTypes.default.object.isRequired, + decimalSt: _propTypes.default.number.isRequired, + integrationSt: _propTypes.default.object.isRequired, + multiplicitySt: _propTypes.default.object.isRequired, + waveLengthSt: _propTypes.default.object.isRequired, + cyclicvoltaSt: _propTypes.default.object.isRequired, + curveSt: _propTypes.default.object, + curveList: _propTypes.default.array.isRequired, + axesUnitsSt: _propTypes.default.object.isRequired, + detectorSt: _propTypes.default.object.isRequired, + metaSt: _propTypes.default.object.isRequired, + hplcMsSt: _propTypes.default.object +}; +BtnSubmit.defaultProps = { + hplcMsSt: {} +}; +var _default = exports.default = (0, _redux.compose)((0, _reactRedux.connect)(mapStateToProps, null), (0, _styles.withStyles)(styles))(BtnSubmit); \ No newline at end of file diff --git a/dist/components/cmd_bar/r06_predict_btn.js b/dist/components/cmd_bar/r06_predict_btn.js new file mode 100644 index 00000000..3ee28c82 --- /dev/null +++ b/dist/components/cmd_bar/r06_predict_btn.js @@ -0,0 +1,234 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var _react = _interopRequireDefault(require("react")); +var _propTypes = _interopRequireDefault(require("prop-types")); +var _reactRedux = require("react-redux"); +var _classnames = _interopRequireDefault(require("classnames")); +var _redux = require("redux"); +var _material = require("@mui/material"); +var _GpsFixedOutlined = _interopRequireDefault(require("@mui/icons-material/GpsFixedOutlined")); +var _HelpOutlineOutlined = _interopRequireDefault(require("@mui/icons-material/HelpOutlineOutlined")); +var _styles = require("@mui/styles"); +var _common = require("./common"); +var _format = _interopRequireDefault(require("../../helpers/format")); +var _carbonFeatures = require("../../helpers/carbonFeatures"); +var _extractPeaksEdit = require("../../helpers/extractPeaksEdit"); +var _ui = require("../../actions/ui"); +var _list_ui = require("../../constants/list_ui"); +var _chem = require("../../helpers/chem"); +var _jsxRuntime = require("react/jsx-runtime"); +/* eslint-disable prefer-object-spread, function-paren-newline, +max-len, react/function-component-definition, +function-call-argument-newline, react/require-default-props */ + +const styles = () => Object.assign({}, _common.commonStyle, { + tTxt: { + fontSize: '0.8rem', + fontFamily: 'Helvetica', + marginRight: 5 + }, + btnWidthUnknown: { + minWidth: 30, + width: 30 + }, + btnWidthIr: { + minWidth: 30, + width: 30 + }, + btnWidthNmr: { + minWidth: 80, + width: 80 + } +}); +const MuPredictButton = (0, _styles.withStyles)({ + root: { + border: '1px solid #ccc', + borderRadius: 4, + fontFamily: 'Helvetica', + fontSize: 20, + height: 30, + lineHeight: '20px', + padding: 0 + } +})(_material.Button); +const onClickFail = (layoutSt, simuCount, realCount) => { + const feature = _format.default.is13CLayout(layoutSt) ? 'peak' : 'multiplet'; + return () => alert(`Selected ${feature} count (${realCount}) must be larger than 0, and must be eqal or less than simulated count (${simuCount}).`); // eslint-disable-line +}; +const onClickReady = (forecast, peaksEdit, layoutSt, scan, shiftSt, thres, analysis, integrationSt, multiplicitySt, setUiViewerTypeAct, curveSt) => { + const { + btnCb + } = forecast; + if (!btnCb) { + return () => alert('[Developer Warning] You need to implement btnCb in forecast!'); // eslint-disable-line + } + return () => { + setUiViewerTypeAct(_list_ui.LIST_UI_VIEWER_TYPE.ANALYSIS); + return btnCb({ + peaks: peaksEdit, + layout: layoutSt, + scan, + thres, + analysis, + integration: integrationSt, + multiplicity: multiplicitySt, + shift: shiftSt, + curveSt + }); + }; +}; +const onClickUnknown = (feature, forecast, peaksEdit, layoutSt, scan, shiftSt, thres, analysis, integrationSt, multiplicitySt, curveSt) => { + const { + refreshCb + } = forecast; + if (!refreshCb) { + return () => alert('[Developer Warning] You need to implement refreshCb in forecast!'); // eslint-disable-line + } + return () => refreshCb({ + peaks: peaksEdit, + layout: layoutSt, + scan, + shift: shiftSt, + thres, + analysis, + integration: integrationSt, + multiplicity: multiplicitySt, + curveSt + }); +}; +const counterText = (classes, isIr, realCount, uniqCount, simuCount) => isIr ? null : /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: (0, _classnames.default)(classes.tTxt, 'txt-sv-panel-txt'), + children: `${realCount}/${uniqCount}/${simuCount}` +}); +const renderBtnPredict = (classes, isIr, realCount, uniqCount, simuCount, color, btnWidthCls, onClick) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Tooltip, { + title: /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", { + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: "txt-sv-tp", + children: "Predict" + }), /*#__PURE__*/(0, _jsxRuntime.jsx)("br", {}), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: "txt-sv-tp", + children: "- Selected features must be eqal or less than simulated features." + })] + }), + children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(MuPredictButton, { + className: (0, _classnames.default)('btn-sv-bar-submit', btnWidthCls), + style: { + color + }, + onClick: onClick, + children: [counterText(classes, isIr, realCount, uniqCount, simuCount), /*#__PURE__*/(0, _jsxRuntime.jsx)(_GpsFixedOutlined.default, { + className: classes.icon + })] + }) +}); +const renderBtnUnknown = (classes, onClick) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Tooltip, { + title: /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", { + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: "txt-sv-tp", + children: "Refresh Simulation" + }), /*#__PURE__*/(0, _jsxRuntime.jsx)("br", {}), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: "txt-sv-tp", + children: "- Simulation must be refreshed before making a prediction." + }), /*#__PURE__*/(0, _jsxRuntime.jsx)("br", {}), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: "txt-sv-tp", + children: "- If you continue to see this button after clicking it, the server is not ready. Please wait for a while." + })] + }), + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(MuPredictButton, { + className: (0, _classnames.default)('btn-sv-bar-submit', classes.btnWidthUnknown), + style: { + color: 'orange' + }, + onClick: onClick, + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_HelpOutlineOutlined.default, { + className: classes.icon + }) + }) +}); +const BtnPredict = ({ + classes, + feature, + forecast, + layoutSt, + simulationSt, + editPeakSt, + scanSt, + shiftSt, + thresSt, + integrationSt, + multiplicitySt, + setUiViewerTypeAct, + curveSt +}) => { + const is13Cor1H = _format.default.is13CLayout(layoutSt) || _format.default.is1HLayout(layoutSt); + const isIr = _format.default.isIrLayout(layoutSt); + if (!(is13Cor1H || isIr)) return null; + const oriPeaksEdit = (0, _extractPeaksEdit.extractPeaksEdit)(feature, editPeakSt, thresSt, shiftSt, layoutSt); + const peaksEdit = _format.default.rmShiftFromPeaks(oriPeaksEdit, shiftSt); + const scan = _format.default.isMsLayout(layoutSt) ? (0, _chem.Convert2Scan)(feature, scanSt) : 0; + const thres = (0, _chem.Convert2Thres)(feature, thresSt); + const simuCount = simulationSt.nmrSimPeaks.length; + const uniqCount = [...new Set(simulationSt.nmrSimPeaks)].length; + let realCount = 0; + if (_format.default.is13CLayout(layoutSt)) { + realCount = (0, _carbonFeatures.carbonFeatures)(peaksEdit, multiplicitySt).length; + } else { + const { + curveIdx + } = curveSt; + const { + multiplicities + } = multiplicitySt; + const selectedMultiplicity = multiplicities[curveIdx]; + const { + stack + } = selectedMultiplicity; + realCount = stack.length; + } + if (is13Cor1H && simuCount === 0) { + const onClickUnknownCb = onClickUnknown(feature, forecast, peaksEdit, layoutSt, scan, shiftSt, thres, forecast.predictions, integrationSt, multiplicitySt, curveSt); + return renderBtnUnknown(classes, onClickUnknownCb); + } + const predictable = isIr || simuCount >= realCount && realCount > 0; + const color = predictable ? 'green' : 'red'; + const onClick = predictable ? onClickReady(forecast, peaksEdit, layoutSt, scan, shiftSt, thres, forecast.predictions, integrationSt, multiplicitySt, setUiViewerTypeAct, curveSt) : onClickFail(layoutSt, simuCount, realCount); + const btnWidthCls = isIr ? classes.btnWidthIr : classes.btnWidthNmr; + return renderBtnPredict(classes, isIr, realCount, uniqCount, simuCount, color, btnWidthCls, onClick); +}; +const mapStateToProps = (state, props) => ( +// eslint-disable-line +{ + layoutSt: state.layout, + simulationSt: state.simulation, + editPeakSt: state.editPeak.present, + scanSt: state.scan, + shiftSt: state.shift, + thresSt: state.threshold.list[state.curve.curveIdx], + integrationSt: state.integration.present, + multiplicitySt: state.multiplicity.present, + curveSt: state.curve +}); +const mapDispatchToProps = dispatch => (0, _redux.bindActionCreators)({ + setUiViewerTypeAct: _ui.setUiViewerType +}, dispatch); +BtnPredict.propTypes = { + classes: _propTypes.default.object.isRequired, + feature: _propTypes.default.object.isRequired, + forecast: _propTypes.default.object.isRequired, + layoutSt: _propTypes.default.string.isRequired, + simulationSt: _propTypes.default.object.isRequired, + editPeakSt: _propTypes.default.object.isRequired, + scanSt: _propTypes.default.object.isRequired, + shiftSt: _propTypes.default.object.isRequired, + thresSt: _propTypes.default.object.isRequired, + integrationSt: _propTypes.default.object.isRequired, + multiplicitySt: _propTypes.default.object.isRequired, + setUiViewerTypeAct: _propTypes.default.func.isRequired, + curveSt: _propTypes.default.object +}; +var _default = exports.default = (0, _redux.compose)((0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps), (0, _styles.withStyles)(styles))(BtnPredict); \ No newline at end of file diff --git a/dist/components/cmd_bar/r07_wavelength_btn.js b/dist/components/cmd_bar/r07_wavelength_btn.js new file mode 100644 index 00000000..9b517427 --- /dev/null +++ b/dist/components/cmd_bar/r07_wavelength_btn.js @@ -0,0 +1,87 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var _react = _interopRequireDefault(require("react")); +var _propTypes = _interopRequireDefault(require("prop-types")); +var _reactRedux = require("react-redux"); +var _classnames = _interopRequireDefault(require("classnames")); +var _redux = require("redux"); +var _material = require("@mui/material"); +var _withStyles = _interopRequireDefault(require("@mui/styles/withStyles")); +var _wavelength = require("../../actions/wavelength"); +var _format = _interopRequireDefault(require("../../helpers/format")); +var _common = require("./common"); +var _list_wavelength = require("../../constants/list_wavelength"); +var _jsxRuntime = require("react/jsx-runtime"); +/* eslint-disable prefer-object-spread, react/jsx-one-expression-per-line, +react/function-component-definition */ + +const styles = () => Object.assign({ + fieldShift: { + width: 160 + }, + fieldLayout: { + width: 100 + } +}, _common.commonStyle); +const wavelengthSelect = (classes, waveLengthSt, layoutSt, updateWavelengthAct) => { + if (!_format.default.isXRDLayout(layoutSt)) { + return /*#__PURE__*/(0, _jsxRuntime.jsx)("i", {}); + } + const onChange = e => updateWavelengthAct(e.target.value); + return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.FormControl, { + className: (0, _classnames.default)(classes.fieldLayout), + variant: "outlined", + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.InputLabel, { + id: "select-wavelength-label", + className: (0, _classnames.default)(classes.selectLabel, 'select-sv-bar-label'), + children: "Wavelength (nm)" + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Select, { + labelId: "select-wavelength-label", + label: "Wavelength", + value: waveLengthSt, + onChange: onChange, + className: (0, _classnames.default)(classes.selectInput, 'input-sv-bar-layout'), + children: _list_wavelength.LIST_WAVE_LENGTH.map((item, idx) => { + // eslint-disable-line + const itemKey = `${item.label}-${item.value}-${item.unit}-${idx}`; + return /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.MenuItem, { + value: item, + children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("span", { + className: (0, _classnames.default)(classes.txtOpt, 'option-sv-bar-layout'), + children: [item.label, " (", item.value, " ", item.unit, ")"] + }) + }, itemKey); + }) + })] + }); +}; +const Wavelength = ({ + classes, + waveLengthSt, + layoutSt, + updateWavelengthAct +}) => /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: classes.groupRight, + children: wavelengthSelect(classes, waveLengthSt, layoutSt, updateWavelengthAct) +}); +const mapStateToProps = (state, props) => ( +// eslint-disable-line +{ + waveLengthSt: state.wavelength, + layoutSt: state.layout +}); +const mapDispatchToProps = dispatch => (0, _redux.bindActionCreators)({ + updateWavelengthAct: _wavelength.updateWaveLength +}, dispatch); +Wavelength.propTypes = { + classes: _propTypes.default.object.isRequired, + layoutSt: _propTypes.default.string.isRequired, + waveLengthSt: _propTypes.default.object.isRequired, + updateWavelengthAct: _propTypes.default.func.isRequired +}; +var _default = exports.default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)((0, _withStyles.default)(styles)(Wavelength)); \ No newline at end of file diff --git a/dist/components/cmd_bar/r08_change_axes.js b/dist/components/cmd_bar/r08_change_axes.js new file mode 100644 index 00000000..b8d3ee75 --- /dev/null +++ b/dist/components/cmd_bar/r08_change_axes.js @@ -0,0 +1,189 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var _react = _interopRequireWildcard(require("react")); +var _propTypes = _interopRequireDefault(require("prop-types")); +var _reactRedux = require("react-redux"); +var _classnames = _interopRequireDefault(require("classnames")); +var _redux = require("redux"); +var _material = require("@mui/material"); +var _withStyles = _interopRequireDefault(require("@mui/styles/withStyles")); +var _common = require("./common"); +var _list_layout = require("../../constants/list_layout"); +var _list_axes = require("../../constants/list_axes"); +var _axes = require("../../actions/axes"); +var _jsxRuntime = require("react/jsx-runtime"); +function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); } +/* eslint-disable prefer-object-spread, react/jsx-one-expression-per-line, +react/function-component-definition, +max-len, no-unused-vars, no-multiple-empty-lines */ + +const listLayoutToShow = [_list_layout.LIST_LAYOUT.CYCLIC_VOLTAMMETRY]; +const styles = () => Object.assign({ + fieldShift: { + width: 160 + }, + fieldLayout: { + width: 100 + } +}, _common.commonStyle); +const axisX = (classes, layoutSt, axesUnitsSt, updateXAxisAct, curveSt) => { + const optionsAxisX = _list_axes.LIST_AXES.x; + const options = optionsAxisX[layoutSt]; + const { + curveIdx + } = curveSt; + const onChange = e => updateXAxisAct({ + value: e.target.value, + curveIndex: curveIdx + }); + const { + axes + } = axesUnitsSt; + let selectedAxes = axes[curveIdx]; + if (!selectedAxes) { + selectedAxes = { + xUnit: '', + yUnit: '' + }; + } + const { + xUnit + } = selectedAxes; + return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.FormControl, { + className: (0, _classnames.default)(classes.fieldLayout), + variant: "outlined", + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Select, { + labelId: "select-x-axis-label", + label: "x-Axis", + value: xUnit, + onChange: onChange, + className: (0, _classnames.default)(classes.selectInput, 'input-sv-bar-layout'), + children: options.map(item => { + // eslint-disable-line + return /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.MenuItem, { + value: item, + children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: (0, _classnames.default)(classes.txtOpt, 'option-sv-bar-layout'), + children: item === '' ? 'Default' : item + }) + }, item); + }) + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.InputLabel, { + id: "select-x-axis-label", + className: (0, _classnames.default)(classes.txtLabelTopInput), + children: "x-Axis" + })] + }); +}; +const axisY = (classes, layoutSt, axesUnitsSt, updateYAxisAct, curveSt) => { + const optionsAxisX = _list_axes.LIST_AXES.y; + const options = optionsAxisX[layoutSt]; + const { + curveIdx + } = curveSt; + const onChange = e => updateYAxisAct({ + value: e.target.value, + curveIndex: curveIdx + }); + const { + axes + } = axesUnitsSt; + let selectedAxes = axes[curveIdx]; + if (!selectedAxes) { + selectedAxes = { + xUnit: '', + yUnit: '' + }; + } + const yUnit = ''; + return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.FormControl, { + className: (0, _classnames.default)(classes.fieldLayout), + variant: "outlined", + disabled: true, + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Select, { + labelId: "select-y-axis-label", + label: "y-Axis", + value: yUnit, + onChange: onChange, + className: (0, _classnames.default)(classes.selectInput, 'input-sv-bar-layout'), + disabled: true, + children: options.map(item => { + // eslint-disable-line + return /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.MenuItem, { + value: item, + children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: (0, _classnames.default)(classes.txtOpt, 'option-sv-bar-layout'), + children: item === '' ? 'Default' : item + }) + }, item); + }) + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.InputLabel, { + id: "select-y-axis-label", + className: (0, _classnames.default)(classes.txtLabelTopInput), + children: "y-Axis" + })] + }); +}; +const showSelect = (classes, layoutSt, curveSt, axesUnitsSt, updateXAxisAct, updateYAxisAct) => { + if (!listLayoutToShow.includes(layoutSt)) { + return /*#__PURE__*/(0, _jsxRuntime.jsx)("i", {}); + } + return /*#__PURE__*/(0, _jsxRuntime.jsxs)("span", { + children: [axisX(classes, layoutSt, axesUnitsSt, updateXAxisAct, curveSt), axisY(classes, layoutSt, axesUnitsSt, updateYAxisAct, curveSt)] + }); +}; +const ChangeAxes = ({ + classes, + layoutSt, + curveSt, + axesUnitsSt, + updateXAxisAct, + updateYAxisAct +}) => { + const { + curveIdx + } = curveSt; + const axes = axesUnitsSt?.axes || []; + (0, _react.useEffect)(() => { + if (layoutSt !== _list_layout.LIST_LAYOUT.CYCLIC_VOLTAMMETRY) return; + const selectedAxes = axes[curveIdx] || { + yUnit: '' + }; + if (selectedAxes.yUnit !== '') { + updateYAxisAct({ + value: '', + curveIndex: curveIdx + }); + } + }, [layoutSt, axes, curveIdx, updateYAxisAct]); + return /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: classes.groupRight, + "data-testid": "ChangeAxes", + children: showSelect(classes, layoutSt, curveSt, axesUnitsSt, updateXAxisAct, updateYAxisAct) + }); +}; +const mapStateToProps = (state, props) => ( +// eslint-disable-line +{ + layoutSt: state.layout, + curveSt: state.curve, + axesUnitsSt: state.axesUnits +}); +const mapDispatchToProps = dispatch => (0, _redux.bindActionCreators)({ + updateXAxisAct: _axes.updateXAxis, + updateYAxisAct: _axes.updateYAxis +}, dispatch); +ChangeAxes.propTypes = { + classes: _propTypes.default.object.isRequired, + layoutSt: _propTypes.default.string.isRequired, + curveSt: _propTypes.default.object.isRequired, + axesUnitsSt: _propTypes.default.object.isRequired, + updateXAxisAct: _propTypes.default.func.isRequired, + updateYAxisAct: _propTypes.default.func.isRequired +}; +var _default = exports.default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)((0, _withStyles.default)(styles)(ChangeAxes)); \ No newline at end of file diff --git a/dist/components/cmd_bar/r09_detector.js b/dist/components/cmd_bar/r09_detector.js new file mode 100644 index 00000000..380e6240 --- /dev/null +++ b/dist/components/cmd_bar/r09_detector.js @@ -0,0 +1,104 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var _react = _interopRequireDefault(require("react")); +var _propTypes = _interopRequireDefault(require("prop-types")); +var _reactRedux = require("react-redux"); +var _classnames = _interopRequireDefault(require("classnames")); +var _redux = require("redux"); +var _material = require("@mui/material"); +var _withStyles = _interopRequireDefault(require("@mui/styles/withStyles")); +var _detector = require("../../actions/detector"); +var _format = _interopRequireDefault(require("../../helpers/format")); +var _common = require("./common"); +var _list_detectors = require("../../constants/list_detectors"); +var _jsxRuntime = require("react/jsx-runtime"); +/* eslint-disable prefer-object-spread, react/jsx-one-expression-per-line, +react/function-component-definition */ + +const styles = () => Object.assign({ + fieldShift: { + width: 160 + }, + fieldLayout: { + width: 100 + } +}, _common.commonStyle); +const detectorSelect = (classes, detectorSt, curveSt, layoutSt, updateDetectorAct) => { + if (!_format.default.isSECLayout(layoutSt)) { + return /*#__PURE__*/(0, _jsxRuntime.jsx)("i", {}); + } + const { + curveIdx + } = curveSt; + const { + curves + } = detectorSt; + const getSelectedDetectorForCurve = (_detectorSt, targetCurveIdx) => { + const targetCurve = curves.find(curve => curve.curveIdx === targetCurveIdx); + return targetCurve ? targetCurve.selectedDetector : ''; + }; + const selectedDetector = getSelectedDetectorForCurve(detectorSt, curveIdx); + const onChange = e => updateDetectorAct({ + curveIdx, + selectedDetector: e.target.value + }); + return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.FormControl, { + className: (0, _classnames.default)(classes.fieldLayout), + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.InputLabel, { + id: "select-detector-label", + className: (0, _classnames.default)(classes.selectLabel, 'select-sv-bar-label'), + children: "Detector" + }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.Select, { + labelId: "select-detector-label", + label: "Detector", + value: selectedDetector, + onChange: onChange, + className: (0, _classnames.default)(classes.selectInput, 'input-sv-bar-layout'), + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.MenuItem, { + value: "", + children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: (0, _classnames.default)(classes.txtOpt, 'option-sv-bar-layout') + }) + }, "detector-empty"), _list_detectors.LIST_DETECTORS.map((item, idx) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.MenuItem, { + value: item, + children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: (0, _classnames.default)(classes.txtOpt, 'option-sv-bar-layout'), + children: item.name + }) + }, item?.name || item?.id || `detector-${idx}`))] + })] + }); +}; +const Detector = ({ + classes, + detectorSt, + curveSt, + layoutSt, + updateDetectorAct +}) => /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: classes.groupRight, + children: detectorSelect(classes, detectorSt, curveSt, layoutSt, updateDetectorAct) +}); +const mapStateToProps = (state, _props) => ( +// eslint-disable-line +{ + detectorSt: state.detector, + curveSt: state.curve, + layoutSt: state.layout +}); +const mapDispatchToProps = dispatch => (0, _redux.bindActionCreators)({ + updateDetectorAct: _detector.updateDetector +}, dispatch); +Detector.propTypes = { + classes: _propTypes.default.object.isRequired, + layoutSt: _propTypes.default.string.isRequired, + curveSt: _propTypes.default.object.isRequired, + updateDetectorAct: _propTypes.default.func.isRequired, + detectorSt: _propTypes.default.object.isRequired +}; +var _default = exports.default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)((0, _withStyles.default)(styles)(Detector)); \ No newline at end of file diff --git a/dist/components/cmd_bar/r10_cv_density.js b/dist/components/cmd_bar/r10_cv_density.js new file mode 100644 index 00000000..4f850b0b --- /dev/null +++ b/dist/components/cmd_bar/r10_cv_density.js @@ -0,0 +1,180 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var _react = _interopRequireDefault(require("react")); +var _propTypes = _interopRequireDefault(require("prop-types")); +var _reactRedux = require("react-redux"); +var _classnames = _interopRequireDefault(require("classnames")); +var _redux = require("redux"); +var _material = require("@mui/material"); +var _withStyles = _interopRequireDefault(require("@mui/styles/withStyles")); +var _list_layout = require("../../constants/list_layout"); +var _common = require("./common"); +var _cyclic_voltammetry = require("../../actions/cyclic_voltammetry"); +var _jsxRuntime = require("react/jsx-runtime"); +/* eslint-disable react/function-component-definition, react/jsx-one-expression-per-line, +react/jsx-boolean-value */ + +const styles = () => ({ + ..._common.commonStyle, + fieldArea: { + width: 100 + }, + fieldUnit: { + width: 75 + }, + toggleGroup: { + height: 30, + marginLeft: 8 + }, + toggleBtn: { + fontSize: 10, + padding: '0 6px', + height: 30, + minHeight: 30, + lineHeight: '30px', + textTransform: 'none' + } +}); +const units = ['cm²', 'mm²']; +const CvDensityControls = ({ + classes, + layoutSt, + areaValue, + areaUnit, + useCurrentDensity, + setAreaValueAct, + setAreaUnitAct, + toggleDensityAct +}) => { + if (layoutSt !== _list_layout.LIST_LAYOUT.CYCLIC_VOLTAMMETRY) return /*#__PURE__*/(0, _jsxRuntime.jsx)("i", {}); + const handleAreaChange = e => { + const raw = e.target.value; + if (raw === '') { + setAreaValueAct(''); + return; + } + const val = parseFloat(raw); + if (Number.isNaN(val)) return; + if (val < 0) return; + setAreaValueAct(val); + }; + const handleAreaBlur = e => { + const raw = e.target.value; + const val = parseFloat(raw); + if (raw === '' || Number.isNaN(val) || val <= 0) { + setAreaValueAct(1.0); + } + }; + const handleUnitChange = e => { + const newUnit = e.target.value; + const currVal = areaValue; + if (currVal !== '' && Number.isFinite(Number(currVal))) { + const num = Number(currVal); + const from = areaUnit; + const to = newUnit; + let converted = num; + if (from === 'cm²' && to === 'mm²') converted = num * 100.0; + if (from === 'mm²' && to === 'cm²') converted = num / 100.0; + setAreaValueAct(converted); + } + setAreaUnitAct(newUnit); + }; + const handleToggle = (_, val) => { + if (val === null) return; + const shouldBeDensity = val === 'density'; + if (shouldBeDensity !== useCurrentDensity) { + toggleDensityAct(); + } + }; + return /*#__PURE__*/(0, _jsxRuntime.jsxs)("span", { + className: classes.group, + children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.FormControl, { + className: (0, _classnames.default)(classes.fieldArea), + variant: "outlined", + disabled: !useCurrentDensity, + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.InputLabel, { + htmlFor: "cv-area", + className: (0, _classnames.default)(classes.selectLabel, 'select-sv-bar-label'), + children: "WE-ECSA" + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.OutlinedInput, { + id: "cv-area", + label: "WE-ECSA", + type: "number", + inputProps: { + step: '0.0001', + min: '0' + }, + value: areaValue, + onChange: handleAreaChange, + onBlur: handleAreaBlur, + className: (0, _classnames.default)(classes.txtInput, 'input-sv-bar-layout'), + disabled: !useCurrentDensity + })] + }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.FormControl, { + className: (0, _classnames.default)(classes.fieldUnit), + variant: "outlined", + disabled: !useCurrentDensity, + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.InputLabel, { + id: "cv-area-unit", + className: (0, _classnames.default)(classes.selectLabel, 'select-sv-bar-label'), + children: "Unit" + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Select, { + value: areaUnit, + onChange: handleUnitChange, + labelId: "cv-area-unit", + label: "Unit", + className: (0, _classnames.default)(classes.selectInput, 'input-sv-bar-layout'), + disabled: !useCurrentDensity, + children: units.map(u => /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.MenuItem, { + value: u, + children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: (0, _classnames.default)(classes.txtOpt, 'option-sv-bar-layout'), + children: u + }) + }, u)) + })] + }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.ToggleButtonGroup, { + exclusive: true, + size: "small", + value: useCurrentDensity ? 'density' : 'current', + onChange: handleToggle, + className: (0, _classnames.default)(classes.selectInput, classes.toggleGroup, 'input-sv-bar-layout'), + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.ToggleButton, { + value: "current", + className: (0, _classnames.default)(classes.txtOpt, classes.toggleBtn), + children: "Current" + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.ToggleButton, { + value: "density", + className: (0, _classnames.default)(classes.txtOpt, classes.toggleBtn), + children: "Current / Area" + })] + })] + }); +}; +CvDensityControls.propTypes = { + classes: _propTypes.default.object.isRequired, + layoutSt: _propTypes.default.string.isRequired, + areaValue: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]).isRequired, + areaUnit: _propTypes.default.string.isRequired, + useCurrentDensity: _propTypes.default.bool.isRequired, + setAreaValueAct: _propTypes.default.func.isRequired, + setAreaUnitAct: _propTypes.default.func.isRequired, + toggleDensityAct: _propTypes.default.func.isRequired +}; +const mapStateToProps = state => ({ + layoutSt: state.layout, + areaValue: state.cyclicvolta.areaValue, + areaUnit: state.cyclicvolta.areaUnit, + useCurrentDensity: state.cyclicvolta.useCurrentDensity +}); +const mapDispatchToProps = dispatch => (0, _redux.bindActionCreators)({ + setAreaValueAct: _cyclic_voltammetry.setCyclicVoltaAreaValue, + setAreaUnitAct: _cyclic_voltammetry.setCyclicVoltaAreaUnit, + toggleDensityAct: _cyclic_voltammetry.toggleCyclicVoltaDensity +}, dispatch); +var _default = exports.default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)((0, _withStyles.default)(styles)(CvDensityControls)); \ No newline at end of file diff --git a/dist/components/cmd_bar/tri_btn.js b/dist/components/cmd_bar/tri_btn.js new file mode 100644 index 00000000..30641cdc --- /dev/null +++ b/dist/components/cmd_bar/tri_btn.js @@ -0,0 +1,134 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var _react = _interopRequireDefault(require("react")); +var _reactRedux = require("react-redux"); +var _redux = require("redux"); +var _classnames = _interopRequireDefault(require("classnames")); +var _propTypes = _interopRequireDefault(require("prop-types")); +var _styles = require("@mui/styles"); +var _Tooltip = _interopRequireDefault(require("@mui/material/Tooltip")); +var _cfg = _interopRequireDefault(require("../../helpers/cfg")); +var _common = require("./common"); +var _jsxRuntime = require("react/jsx-runtime"); +/* eslint-disable prefer-object-spread */ + +const styles = () => Object.assign({ + btnYes: { + color: 'green' + }, + btnNo: { + color: 'red' + }, + btnTxtConfirm: { + fontFamily: 'Helvetica', + fontSize: 12 + } +}, _common.commonStyle); +class TriBtn extends _react.default.Component { + constructor(props) { + super(props); + this.state = { + toggled: false + }; + this.onToggle = this.onToggle.bind(this); + this.renderStageOne = this.renderStageOne.bind(this); + this.renderStageTwo = this.renderStageTwo.bind(this); + } + onToggle(e) { + e.stopPropagation(); + e.preventDefault(); + const { + toggled + } = this.state; + this.setState({ + toggled: !toggled + }); + } + renderStageOne() { + const { + content, + layoutSt, + children, + isClearAllDisabled + } = this.props; + const { + tp + } = content; + const title = /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: "txt-sv-tp", + children: tp + }); + return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Tooltip.default, { + title: title, + children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_common.MuButton, { + className: (0, _classnames.default)('btn-sv-bar-one'), + disabled: isClearAllDisabled === false ? false : _cfg.default.btnCmdMpy(layoutSt) && _cfg.default.btnCmdIntg(layoutSt), + onClick: this.onToggle, + children: children + }) + }) + }); + } + renderStageTwo() { + const { + classes, + layoutSt, + cb + } = this.props; + const onExec = e => { + cb(); + this.onToggle(e); + }; + return /*#__PURE__*/(0, _jsxRuntime.jsxs)("span", { + disabled: _cfg.default.btnCmdMpy(layoutSt) && _cfg.default.btnCmdIntg(layoutSt), + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: (0, _classnames.default)(classes.txtLabel, 'txt-sv-bar-desc'), + children: "Delete ALL?" + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_common.MuButton, { + className: (0, _classnames.default)('btn-sv-bar-yes'), + onClick: onExec, + children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: (0, _classnames.default)(classes.txt, classes.btnYes, 'txt-sv-bar-yes'), + children: "Y" + }) + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_common.MuButton, { + className: (0, _classnames.default)('btn-sv-bar-no'), + onClick: this.onToggle, + children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: (0, _classnames.default)(classes.txt, classes.btnNo, 'txt-sv-bar-no'), + children: "N" + }) + })] + }); + } + render() { + const { + toggled + } = this.state; + return !toggled ? this.renderStageOne() : this.renderStageTwo(); + } +} +const mapStateToProps = (state, props) => ( +// eslint-disable-line +{ + layoutSt: state.layout +}); +const mapDispatchToProps = dispatch => (0, _redux.bindActionCreators)({}, dispatch); +TriBtn.propTypes = { + classes: _propTypes.default.object.isRequired, + layoutSt: _propTypes.default.string.isRequired, + content: _propTypes.default.object.isRequired, + cb: _propTypes.default.func.isRequired, + children: _propTypes.default.node.isRequired, + isClearAllDisabled: _propTypes.default.bool +}; +TriBtn.defaultProps = { + isClearAllDisabled: false +}; +var _default = exports.default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)((0, _styles.withStyles)(styles)(TriBtn)); \ No newline at end of file diff --git a/dist/components/common/chem.js b/dist/components/common/chem.js new file mode 100644 index 00000000..7a15e0be --- /dev/null +++ b/dist/components/common/chem.js @@ -0,0 +1,115 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +/* eslint-disable */ + +const SmaToSvg = sma => { + switch (sma) { + case 'C-,:O': + return ' O '; + case 'C-,:C(=O)-,:O-,:C': + return ' O O '; + case 'C-,:O-,:c': + return ' O '; + case 'c-,:[Cl]': + return ' Cl '; + case 'c:,-[n&H1]:,-c': + return ' N '; + case 'c-,:O': + return ' O '; + case 'C-,:[Cl]': + return ' Cl '; + case 'C-,:C(-,:C)=O': + return ' O '; + case 'c-,:[N&+](=O)-,:[O&-]': + return ' N + O O - '; + case 'C-,:C=C': + return ' '; + case 'c-,:[Br]': + return ' Br '; + case 'C-,:O-,:C': + return ' O '; + case 'C-,:[Br]': + return ' Br '; + case 'C-,:C(-,:c)=O': + return ' O '; + case 'c-,:N': + return ' N '; + case 'C-,:F': + return ' F '; + case 'c-,:C(=O)-,:O-,:C': + return ' O O '; + case 'c:,-o:,-c': + return ' O '; + case 'C-,:C(=O)-,:O': + return ' O O '; + case 'c-,:F': + return ' F '; + case 'c=O': + return ' O '; + case 'C-,:N-,:C': + return ' N '; + case 'C-,:N(-,:C)-,:C': + return ' N '; + case 'C-,:N': + return ' N '; + case 'C-,:n(-,:c):,-c': + return ' N '; + case 'c-,:C(=O)-,:O': + return ' O O '; + case 'c-,:C=O': + return ' O '; + case 'C-,:C#N': + return ' N '; + case 'C-,:C=C-,:C': + return ' '; + case 'C-,:C(=O)-,:N-,:C': + return ' O N '; + case 'c-,:C#N': + return ' N '; + case 'C-,:C(=O)-,:N-,:c': + return ' O N '; + case 'C-,:C(-,:C)=C': + return ' '; + case 'c:,-s:,-c': + return ' S '; + case 'C-,:C#C-,:C': + return ' '; + case 'C#C-,:C': + return ' '; + case 'c-,:C(-,:c)=O': + return ' O '; + case 'C-,:C(-,:C)=C-,:C': + return ' '; + case 'c-,:N(-,:C)-,:C': + return ' N '; + case 'C-,:N-,:c': + return ' N '; + case 'C-,:O-,:C(-,:C)=O': + return ' O O '; + case 'c-,:O-,:C': + return ' O '; + case 'c:,-n:,-c': + return ' N '; + case 'C=C-,:C': + return ' '; + case 'c-,:C(-,:C)=O': + return ' O '; + case 'c:,-n(-,:c)-,:C': + return ' N '; + case 'C-,:N-,:C(-,:C)=O': + return ' N O '; + case 'c-,:N-,:C(-,:C)=O': + return ' N O '; + case 'C=C(-,:C)-,:C': + return ' '; + default: + return ' N.A. '; + } +}; + +/* eslint-enable */ +var _default = exports.default = SmaToSvg; \ No newline at end of file diff --git a/dist/components/common/comps.js b/dist/components/common/comps.js new file mode 100644 index 00000000..c366d9f5 --- /dev/null +++ b/dist/components/common/comps.js @@ -0,0 +1,15 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.TabLabel = void 0; +var _react = _interopRequireDefault(require("react")); +var _classnames = _interopRequireDefault(require("classnames")); +var _jsxRuntime = require("react/jsx-runtime"); +const TabLabel = (classes, label, extClsName = 'txt-tab-label') => /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: (0, _classnames.default)(classes.tabLabel, extClsName), + children: label +}); +exports.TabLabel = TabLabel; \ No newline at end of file diff --git a/dist/components/common/draw.js b/dist/components/common/draw.js new file mode 100644 index 00000000..ad86fad9 --- /dev/null +++ b/dist/components/common/draw.js @@ -0,0 +1,52 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.drawMain = exports.drawLabel = exports.drawDisplay = exports.drawDestroy = exports.drawArrowOnCurve = void 0; +const d3 = require('d3'); +const { + LIST_BRUSH_SVG_GRAPH +} = require('../../constants/list_graph'); +const drawMain = (klass, w, h, d3svgClass = LIST_BRUSH_SVG_GRAPH.LINE) => { + d3.select(klass).append('svg').attr('class', d3svgClass).attr('preserveAspectRatio', 'xMinYMin meet').attr('viewBox', `0 0 ${w} ${h}`); +}; +exports.drawMain = drawMain; +const drawLabel = (klass, cLabel, xLabel, yLabel) => { + d3.select(klass).selectAll('.xLabel').text(xLabel); + d3.select(klass).selectAll('.yLabel').text(yLabel); + d3.select(klass).selectAll('.mark-text').text(cLabel || ''); +}; +exports.drawLabel = drawLabel; +const drawDisplay = (klass, isHidden) => { + if (isHidden) { + d3.select(klass).selectAll('svg').style('width', 0); + } else { + d3.select(klass).selectAll('svg').style('width', '100%'); + } +}; +exports.drawDisplay = drawDisplay; +const drawDestroy = klass => d3.select(`${klass} > *`).remove(); +exports.drawDestroy = drawDestroy; +const drawArrowOnCurve = (klass, isHidden) => { + if (isHidden) { + d3.select(klass).selectAll('marker').remove(); + } else { + d3.select(klass).selectAll('marker').remove(); + const arrowLeft = d3.select(klass).selectAll('defs').append('marker').attr('id', 'arrow-left').attr('viewBox', '0 0 10 10').attr('refX', 5).attr('refY', 5).attr('markerWidth', 6).attr('markerHeight', 6).attr('orient', 'auto').attr('fill', '#00AA0099'); + arrowLeft.append('path').attr('d', 'M 0 0 L 10 5 L 0 10 z'); + + // const arrowRight = d3.select(klass).selectAll('defs') + // .append('marker') + // .attr('id', 'arrow-right') + // .attr('viewBox', '0 0 10 10') + // .attr('refX', 5) + // .attr('refY', 5) + // .attr('markerWidth', 6) + // .attr('markerHeight', 6) + // .attr('orient', 'auto-start-reverse'); + // arrowRight.append('path') + // .attr('d', 'M 0 0 L 10 5 L 0 10 z'); + } +}; +exports.drawArrowOnCurve = drawArrowOnCurve; \ No newline at end of file diff --git a/dist/components/d3_line/index.js b/dist/components/d3_line/index.js new file mode 100644 index 00000000..7b0cb2eb --- /dev/null +++ b/dist/components/d3_line/index.js @@ -0,0 +1,239 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var _react = _interopRequireDefault(require("react")); +var _reactRedux = require("react-redux"); +var _redux = require("redux"); +var _propTypes = _interopRequireDefault(require("prop-types")); +var _chem = require("../../helpers/chem"); +var _manager = require("../../actions/manager"); +var _ui = require("../../actions/ui"); +var _line_focus = _interopRequireDefault(require("./line_focus")); +var _draw = require("../common/draw"); +var _list_ui = require("../../constants/list_ui"); +var _list_graph = require("../../constants/list_graph"); +var _cyclic_voltammetry = require("../../actions/cyclic_voltammetry"); +var _jsxRuntime = require("react/jsx-runtime"); +/* eslint-disable no-mixed-operators */ + +const W = Math.round(window.innerWidth * 0.90 * 9 / 12); // ROI +const H = Math.round(window.innerHeight * 0.90 * 0.85); // ROI + +class ViewerLine extends _react.default.Component { + constructor(props) { + super(props); + const { + clickUiTargetAct, + selectUiSweepAct, + scrollUiWheelAct + } = props; + this.rootKlass = `.${_list_graph.LIST_ROOT_SVG_GRAPH.LINE}`; + this.focus = new _line_focus.default({ + W, + H, + clickUiTargetAct, + selectUiSweepAct, + scrollUiWheelAct + }); + this.normChange = this.normChange.bind(this); + } + componentDidMount() { + const { + seed, + peak, + cLabel, + xLabel, + yLabel, + feature, + freq, + comparisons, + tTrEndPts, + tSfPeaks, + editPeakSt, + layoutSt, + integrationSt, + mtplySt, + sweepExtentSt, + isUiAddIntgSt, + isUiNoBrushSt, + isHidden, + wavelength, + axesUnitsSt, + resetAllAct, + uiSt + } = this.props; + (0, _draw.drawDestroy)(this.rootKlass); + resetAllAct(feature); + let xxLabel = xLabel; + let yyLabel = yLabel; + if (axesUnitsSt) { + const { + axes + } = axesUnitsSt; + const { + xUnit, + yUnit + } = axes[0]; + xxLabel = xUnit === '' ? xLabel : xUnit; + yyLabel = yUnit === '' ? yLabel : yUnit; + } + const filterSeed = seed; + const filterPeak = peak; + (0, _draw.drawMain)(this.rootKlass, W, H); + this.focus.create({ + filterSeed, + filterPeak, + freq, + comparisons, + tTrEndPts, + tSfPeaks, + editPeakSt, + layoutSt, + integrationSt, + mtplySt, + sweepExtentSt, + isUiAddIntgSt, + isUiNoBrushSt, + wavelength, + uiSt + }); + (0, _draw.drawLabel)(this.rootKlass, cLabel, xxLabel, yyLabel); + (0, _draw.drawDisplay)(this.rootKlass, isHidden); + } + componentDidUpdate(prevProps) { + const { + seed, + peak, + cLabel, + xLabel, + yLabel, + freq, + comparisons, + tTrEndPts, + tSfPeaks, + editPeakSt, + layoutSt, + integrationSt, + mtplySt, + sweepExtentSt, + isUiAddIntgSt, + isUiNoBrushSt, + isHidden, + wavelength, + axesUnitsSt, + uiSt + } = this.props; + this.normChange(prevProps); + let xxLabel = xLabel; + let yyLabel = yLabel; + if (axesUnitsSt) { + const { + axes + } = axesUnitsSt; + const { + xUnit, + yUnit + } = axes[0]; + xxLabel = xUnit === '' ? xLabel : xUnit; + yyLabel = yUnit === '' ? yLabel : yUnit; + } + const filterSeed = seed; + const filterPeak = peak; + this.focus.update({ + filterSeed, + filterPeak, + freq, + comparisons, + tTrEndPts, + tSfPeaks, + editPeakSt, + layoutSt, + integrationSt, + mtplySt, + sweepExtentSt, + isUiAddIntgSt, + isUiNoBrushSt, + wavelength, + uiSt + }); + (0, _draw.drawLabel)(this.rootKlass, cLabel, xxLabel, yyLabel); + (0, _draw.drawDisplay)(this.rootKlass, isHidden); + } + componentWillUnmount() { + (0, _draw.drawDestroy)(this.rootKlass); + } + normChange(prevProps) { + const { + feature, + resetAllAct + } = this.props; + const oldFeature = prevProps.feature; + if (oldFeature !== feature) { + resetAllAct(feature); + } + } + render() { + return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", { + className: _list_graph.LIST_ROOT_SVG_GRAPH.LINE + }); + } +} +const mapStateToProps = (state, props) => ({ + seed: (0, _chem.Topic2Seed)(state, props), + peak: (0, _chem.Feature2Peak)(state, props), + freq: (0, _chem.ToFrequency)(state, props), + comparisons: (0, _chem.GetComparisons)(state, props), + tTrEndPts: (0, _chem.ToThresEndPts)(state, props), + tSfPeaks: (0, _chem.ToShiftPeaks)(state, props), + editPeakSt: state.editPeak.present, + layoutSt: state.layout, + integrationSt: state.integration.present, + mtplySt: state.multiplicity.present, + sweepExtentSt: state.ui.sweepExtent, + isUiAddIntgSt: state.ui.sweepType === _list_ui.LIST_UI_SWEEP_TYPE.INTEGRATION_ADD, + isUiNoBrushSt: _list_ui.LIST_NON_BRUSH_TYPES.indexOf(state.ui.sweepType) < 0, + wavelength: state.wavelength, + axesUnitsSt: state.axesUnits, + uiSt: state.ui +}); +const mapDispatchToProps = dispatch => (0, _redux.bindActionCreators)({ + resetAllAct: _manager.resetAll, + clickUiTargetAct: _ui.clickUiTarget, + selectUiSweepAct: _ui.selectUiSweep, + scrollUiWheelAct: _ui.scrollUiWheel, + addNewCylicVoltaPairPeakAct: _cyclic_voltammetry.addNewCylicVoltaPairPeak, + addCylicVoltaMaxPeakAct: _cyclic_voltammetry.addCylicVoltaMaxPeak, + addCylicVoltaMinPeakAct: _cyclic_voltammetry.addCylicVoltaMinPeak +}, dispatch); +ViewerLine.propTypes = { + seed: _propTypes.default.array.isRequired, + peak: _propTypes.default.array.isRequired, + freq: _propTypes.default.oneOfType([_propTypes.default.bool, _propTypes.default.number]).isRequired, + comparisons: _propTypes.default.array.isRequired, + uiSt: _propTypes.default.object.isRequired, + cLabel: _propTypes.default.string.isRequired, + xLabel: _propTypes.default.string.isRequired, + yLabel: _propTypes.default.string.isRequired, + feature: _propTypes.default.object.isRequired, + tTrEndPts: _propTypes.default.array.isRequired, + tSfPeaks: _propTypes.default.array.isRequired, + editPeakSt: _propTypes.default.object.isRequired, + layoutSt: _propTypes.default.string.isRequired, + integrationSt: _propTypes.default.object.isRequired, + mtplySt: _propTypes.default.object.isRequired, + sweepExtentSt: _propTypes.default.object.isRequired, + isUiAddIntgSt: _propTypes.default.bool.isRequired, + isUiNoBrushSt: _propTypes.default.bool.isRequired, + resetAllAct: _propTypes.default.func.isRequired, + clickUiTargetAct: _propTypes.default.func.isRequired, + selectUiSweepAct: _propTypes.default.func.isRequired, + scrollUiWheelAct: _propTypes.default.func.isRequired, + isHidden: _propTypes.default.bool.isRequired, + wavelength: _propTypes.default.object.isRequired, + axesUnitsSt: _propTypes.default.object.isRequired +}; +var _default = exports.default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(ViewerLine); \ No newline at end of file diff --git a/dist/components/d3_line/line_focus.js b/dist/components/d3_line/line_focus.js new file mode 100644 index 00000000..04de48a8 --- /dev/null +++ b/dist/components/d3_line/line_focus.js @@ -0,0 +1,694 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var _init = require("../../helpers/init"); +var _mount = require("../../helpers/mount"); +var _brush = _interopRequireDefault(require("../../helpers/brush")); +var _compass = require("../../helpers/compass"); +var _converter = require("../../helpers/converter"); +var _focus = require("../../helpers/focus"); +var _integration = require("../../helpers/integration"); +var _multiplicity_calc = require("../../helpers/multiplicity_calc"); +var _format = _interopRequireDefault(require("../../helpers/format")); +var _cfg = _interopRequireDefault(require("../../helpers/cfg")); +var _list_layout = require("../../constants/list_layout"); +var _calc = require("../../helpers/calc"); +/* eslint-disable prefer-object-spread, no-mixed-operators */ + +const d3 = require('d3'); +class LineFocus { + constructor(props) { + const { + W, + H, + clickUiTargetAct, + selectUiSweepAct, + scrollUiWheelAct, + uiSt + } = props; + this.jcampIdx = 0; + this.rootKlass = '.d3Line'; + this.margin = { + t: 5, + b: 40, + l: 60, + r: 5 + }; + this.uiSt = uiSt; + this.graphIndex = uiSt?.zoom?.graphIndex; + this.w = W - this.margin.l - this.margin.r; + this.h = H - this.margin.t - this.margin.b; + this.clickUiTargetAct = clickUiTargetAct; + this.selectUiSweepAct = selectUiSweepAct; + this.scrollUiWheelAct = scrollUiWheelAct; + this.brush = d3.brush(); + this.brushX = d3.brushX(); + this.axis = null; + this.path = null; + this.thresLineUp = null; + this.thresLineDw = null; + this.grid = null; + this.tags = null; + this.ref = null; + this.ccPattern = null; + this.data = []; + this.dataPks = []; + this.tTrEndPts = null; + this.tSfPeaks = null; + this.root = null; + this.svg = null; + this.axisCall = (0, _init.InitAxisCall)(5); + this.pathCall = null; + this.tip = null; + this.factor = 0.125; + this.currentExtent = null; + this.shouldUpdate = {}; + this.freq = false; + this.layout = _list_layout.LIST_LAYOUT.H1; + this.getShouldUpdate = this.getShouldUpdate.bind(this); + this.resetShouldUpdate = this.resetShouldUpdate.bind(this); + this.setTip = this.setTip.bind(this); + this.setDataParams = this.setDataParams.bind(this); + this.create = this.create.bind(this); + this.update = this.update.bind(this); + this.setConfig = this.setConfig.bind(this); + this.drawLine = this.drawLine.bind(this); + this.drawThres = this.drawThres.bind(this); + this.drawGrid = this.drawGrid.bind(this); + this.drawAUC = this.drawAUC.bind(this); + this.drawPeaks = this.drawPeaks.bind(this); + this.drawRef = this.drawRef.bind(this); + this.drawInteg = this.drawInteg.bind(this); + this.drawMtply = this.drawMtply.bind(this); + this.drawComparisons = this.drawComparisons.bind(this); + this.onClickTarget = this.onClickTarget.bind(this); + this.mergedPeaks = this.mergedPeaks.bind(this); + this.isFirefox = typeof InstallTrigger !== 'undefined'; + this.wavelength = null; + } + getShouldUpdate(nextEpSt, nextItSt, nextMySt) { + const { + prevXt, + prevYt, + prevEpSt, + prevLySt, + prevItSt, + prevMySt, + prevTePt, + prevDtPk, + prevSfPk, + prevData + } = this.shouldUpdate; + const { + xt, + yt + } = (0, _compass.TfRescale)(this); + const sameXY = xt(1.1) === prevXt && prevYt === yt(1.1); + const sameEpSt = prevEpSt === nextEpSt; + const sameLySt = prevLySt === this.layout; + const sameItSt = prevItSt === nextItSt; + const sameMySt = prevMySt === nextMySt; + const sameTePt = prevTePt === this.tTrEndPts.length; + const sameDtPk = prevDtPk === this.dataPks.length; + const sameSfPk = prevSfPk === this.tSfPeaks || Array.isArray(prevSfPk) && Array.isArray(this.tSfPeaks) && prevSfPk.length === this.tSfPeaks.length && prevSfPk.every((peak, idx) => peak === this.tSfPeaks[idx]); + const sameData = prevData === this.data.length; + const sameRef = prevEpSt.prevOffset === nextEpSt.prevOffset; + this.shouldUpdate = Object.assign({}, this.shouldUpdate, { + sameXY, + sameEpSt, + sameLySt, + sameItSt, + sameMySt, + // eslint-disable-line + sameTePt, + sameDtPk, + sameSfPk, + sameData, + sameRef // eslint-disable-line + }); + } + resetShouldUpdate(prevEpSt, prevItSt, prevMySt) { + const { + xt, + yt + } = (0, _compass.TfRescale)(this); + const prevXt = xt(1.1); + const prevYt = yt(1.1); + const prevTePt = this.tTrEndPts.length; + const prevDtPk = this.dataPks.length; + const prevSfPk = this.tSfPeaks; + const prevData = this.data.length; + const prevLySt = this.layout; + this.shouldUpdate = Object.assign({}, this.shouldUpdate, { + prevXt, + prevYt, + prevEpSt, + prevLySt, + prevItSt, + prevMySt, + // eslint-disable-line + prevTePt, + prevDtPk, + prevSfPk, + prevData // eslint-disable-line + }); + } + setTip() { + this.tip = (0, _init.InitTip)(); + this.root.call(this.tip); + } + setDataParams(data, peaks, tTrEndPts, tSfPeaks, freq, layout, wavelength) { + this.data = [...data]; + this.dataPks = [...peaks]; + this.tTrEndPts = tTrEndPts; + this.tSfPeaks = tSfPeaks; + this.freq = freq; + this.layout = layout; + this.wavelength = wavelength; + } + updatePathCall(xt, yt) { + this.pathCall = d3.line().x(d => xt(d.x)).y(d => yt(d.y)); + } + setConfig(sweepExtentSt) { + // Domain Calculate + let { + xExtent, + yExtent + } = sweepExtentSt || { + xExtent: false, + yExtent: false + }; + if (!xExtent || !yExtent) { + const xes = d3.extent(this.data, d => d.x).sort((a, b) => a - b); + xExtent = { + xL: xes[0], + xU: xes[1] + }; + const btm = d3.min(this.data, d => d.y); + const top = d3.max(this.data, d => d.y); + const height = top - btm; + yExtent = { + yL: btm - this.factor * height, + yU: top + this.factor * height + }; + } + this.scales.x.domain([xExtent.xL, xExtent.xU]); + this.scales.y.domain([yExtent.yL, yExtent.yU]); + + // rescale for zoom + const { + xt, + yt + } = (0, _compass.TfRescale)(this); + + // Axis Call + this.axisCall.x.scale(xt); + this.axisCall.y.scale(yt); + this.currentExtent = { + xExtent, + yExtent + }; + } + drawLine() { + const { + sameXY, + sameRef, + sameSfPk + } = this.shouldUpdate; + if (sameXY && sameRef && sameSfPk) return; + const { + xt, + yt + } = (0, _compass.TfRescale)(this); + this.updatePathCall(xt, yt); + this.path.attr('d', this.pathCall(this.data)); + } + drawThres() { + if (this.tTrEndPts.length > 0) { + this.thresLineUp.attr('d', this.pathCall(this.tTrEndPts)); + this.thresLineUp.attr('visibility', 'visible'); + const [left, right] = this.tTrEndPts; + const dwMirrorEndPts = [Object.assign({}, left, { + y: -left.y + }), Object.assign({}, right, { + y: -right.y + })]; + this.thresLineDw.attr('d', this.pathCall(dwMirrorEndPts)); + this.thresLineDw.attr('visibility', 'visible'); + } else { + this.thresLineUp.attr('visibility', 'hidden'); + this.thresLineDw.attr('visibility', 'hidden'); + } + } + drawGrid() { + const { + sameXY, + sameSfPk + } = this.shouldUpdate; + if (sameXY && sameSfPk) return; + this.grid.x.call(this.axisCall.x.tickSize(-this.h, 0, 0)).selectAll('line').attr('stroke', '#ddd').attr('stroke-opacity', 0.6).attr('fill', 'none'); + this.grid.y.call(this.axisCall.y.tickSize(-this.w, 0, 0)).selectAll('line').attr('stroke', '#ddd').attr('stroke-opacity', 0.6).attr('fill', 'none'); + } + onClickTarget(event, data) { + event.stopPropagation(); + event.preventDefault(); + const onPeak = true; + this.clickUiTargetAct(data, onPeak); + } + mergedPeaks(editPeakSt) { + if (!editPeakSt) return this.dataPks; + this.dataPks = (0, _converter.PksEdit)(this.dataPks, editPeakSt); + return this.dataPks; + } + drawAUC(stack) { + const { + xt, + yt + } = (0, _compass.TfRescale)(this); + const auc = this.tags.aucPath.selectAll('path').data(stack); + auc.exit().attr('class', 'exit').remove(); + const integCurve = border => { + const { + xL, + xU + } = border; + const ps = this.data.filter(d => d.x > xL && d.x < xU); + if (!ps[0]) return null; + const point1 = ps[0]; + const point2 = ps[ps.length - 1]; + const slope = (0, _calc.calcSlope)(point1.x, point1.y, point2.x, point2.y); + let lastDY = point1.y; + return d3.area().x(d => xt(d.x)).y0((d, index) => { + if (index > 0) { + const lastD = ps[index - 1]; + const y = slope * (d.x - lastD.x) + lastDY; + lastDY = y; + return yt(y); + } + return yt(0); + }).y1(d => yt(d.y))(ps); + }; + auc.enter().append('path').attr('class', 'auc').attr('fill', 'red').attr('stroke', 'none').attr('fill-opacity', 0.2).attr('stroke-width', 2).merge(auc).attr('d', d => integCurve(d)).attr('id', d => `auc${(0, _focus.itgIdTag)(d)}`).on('mouseover', (event, d) => { + d3.select(`#auc${(0, _focus.itgIdTag)(d)}`).attr('stroke', 'blue'); + d3.select(`#auc${(0, _focus.itgIdTag)(d)}`).attr('stroke', 'blue'); + d3.select(`#auc${(0, _focus.itgIdTag)(d)}`).style('fill', 'blue'); + }).on('mouseout', (event, d) => { + d3.select(`#auc${(0, _focus.itgIdTag)(d)}`).attr('stroke', 'none'); + d3.select(`#auc${(0, _focus.itgIdTag)(d)}`).style('fill', 'red'); + d3.select(`#auc${(0, _focus.itgIdTag)(d)}`).style('fill-opacity', 0.2); + }).on('click', (event, d) => this.onClickTarget(event, d)); + } + drawPeaks(editPeakSt) { + const { + sameXY, + sameEpSt, + sameDtPk, + sameSfPk + } = this.shouldUpdate; + if (!_format.default.isCyclicVoltaLayout(this.layout) && sameXY && sameEpSt && sameDtPk && sameSfPk) return; + + // rescale for zoom + const { + xt, + yt + } = (0, _compass.TfRescale)(this); + const dPks = this.mergedPeaks(editPeakSt); + const mpp = this.tags.pPath.selectAll('path').data(dPks); + mpp.exit().attr('class', 'exit').remove(); + const linePath = [{ + x: -0.5, + y: 10 + }, { + x: -0.5, + y: -20 + }, { + x: 0.5, + y: -20 + }, { + x: 0.5, + y: 10 + }]; + // const faktor = layoutSt === LIST_LAYOUT.IR ? -1 : 1; + const lineSymbol = d3.line().x(d => d.x).y(d => d.y)(linePath); + mpp.enter().append('path').attr('d', lineSymbol).attr('class', 'enter-peak').attr('fill', 'red').attr('stroke', 'pink').attr('stroke-width', 3).attr('stroke-opacity', 0.0).merge(mpp).attr('id', d => `mpp${Math.round(1000 * d.x)}`).attr('transform', d => `translate(${xt(d.x)}, ${yt(d.y)})`).on('mouseover', (event, d) => { + d3.select(`#mpp${Math.round(1000 * d.x)}`).attr('stroke-opacity', '1.0'); + d3.select(`#bpt${Math.round(1000 * d.x)}`).style('fill', 'blue'); + const tipParams = { + d, + layout: this.layout + }; + this.tip.show(tipParams, event.target); + }).on('mouseout', (event, d) => { + d3.select(`#mpp${Math.round(1000 * d.x)}`).attr('stroke-opacity', '0.0'); + d3.select(`#bpt${Math.round(1000 * d.x)}`).style('fill', 'red'); + const tipParams = { + d, + layout: this.layout + }; + this.tip.hide(tipParams, event.target); + }).on('click', (event, d) => this.onClickTarget(event, d)); + const ignoreRef = _format.default.isHplcUvVisLayout(this.layout); + if (ignoreRef) { + const bpTxt = this.tags.bpTxt.selectAll('text').data(dPks); + bpTxt.exit().attr('class', 'exit').remove(); + bpTxt.enter().append('text').attr('class', 'peak-text').attr('font-family', 'Helvetica').style('font-size', '12px').attr('fill', '#228B22').style('text-anchor', 'middle').merge(bpTxt).attr('id', d => `mpp${Math.round(1000 * d.x)}`).text(d => d.x.toFixed(2)).attr('transform', d => `translate(${xt(d.x)}, ${yt(d.y) - 25})`).on('click', (event, d) => this.onClickTarget(event, d)); + } + } + drawInteg(integrationState) { + const { + sameXY, + sameLySt, + sameItSt, + sameData + } = this.shouldUpdate; + if (sameXY && sameLySt && sameItSt && sameData) return; + const { + selectedIdx, + integrations + } = integrationState; + const selectedIntegration = integrations[selectedIdx]; + const { + stack, + refArea, + refFactor, + shift + } = selectedIntegration; + const isDisable = _cfg.default.btnCmdIntg(this.layout); + const ignoreRef = _format.default.isHplcUvVisLayout(this.layout); + const itgs = isDisable ? [] : stack; + const igbp = this.tags.igbPath.selectAll('path').data(itgs); + igbp.exit().attr('class', 'exit').remove(); + const igcp = this.tags.igcPath.selectAll('path').data(itgs); + igcp.exit().attr('class', 'exit').remove(); + const igtp = this.tags.igtPath.selectAll('text').data(itgs); + igtp.exit().attr('class', 'exit').remove(); + if (itgs.length === 0 || isDisable) { + // remove drawn area under curve + const auc = this.tags.aucPath.selectAll('path').data(stack); + auc.exit().attr('class', 'exit').remove(); + auc.merge(auc); + return; + } + if (ignoreRef) { + this.drawAUC(stack); + } else { + // rescale for zoom + const { + xt + } = (0, _compass.TfRescale)(this); + const dh = 50; + const integBar = data => d3.line()([[xt(data.xL - shift), dh], [xt(data.xL - shift), dh - 10], [xt(data.xL - shift), dh - 5], [xt(data.xU - shift), dh - 5], [xt(data.xU - shift), dh - 10], [xt(data.xU - shift), dh]]); + igbp.enter().append('path').attr('class', 'igbp').attr('fill', 'none').attr('stroke', '#228B22').attr('stroke-width', 2).merge(igbp).attr('id', d => `igbp${(0, _focus.itgIdTag)(d)}`).attr('d', d => integBar(d)).on('mouseover', (event, d) => { + d3.select(`#igbp${(0, _focus.itgIdTag)(d)}`).attr('stroke', 'blue'); + d3.select(`#igbc${(0, _focus.itgIdTag)(d)}`).attr('stroke', 'blue'); + d3.select(`#igtp${(0, _focus.itgIdTag)(d)}`).style('fill', 'blue'); + }).on('mouseout', (event, d) => { + d3.select(`#igbp${(0, _focus.itgIdTag)(d)}`).attr('stroke', '#228B22'); + d3.select(`#igbc${(0, _focus.itgIdTag)(d)}`).attr('stroke', '#228B22'); + d3.select(`#igtp${(0, _focus.itgIdTag)(d)}`).style('fill', '#228B22'); + }).on('click', (event, d) => this.onClickTarget(event, d)); + const integCurve = border => { + const { + xL, + xU + } = border; + const [nXL, nXU] = [xL - shift, xU - shift]; + const ps = this.data.filter(d => d.x > nXL && d.x < nXU); + const kMax = this.data[this.data.length - 1].k; + if (!ps[0]) return null; + const kRef = ps[0].k; + if (!this.reverseXAxis(this.layout)) { + return d3.line().x(d => xt(d.x)).y(d => 100 - (kRef - d.k) * 400 / kMax)(ps); + } + return d3.line().x(d => xt(d.x)).y(d => 300 - (d.k - kRef) * 400 / kMax)(ps); + }; + igcp.enter().append('path').attr('class', 'igcp').attr('fill', 'none').attr('stroke', '#228B22').attr('stroke-width', 2).merge(igcp).attr('id', d => `igbc${(0, _focus.itgIdTag)(d)}`).attr('d', d => integCurve(d)).on('mouseover', (event, d) => { + d3.select(`#igbp${(0, _focus.itgIdTag)(d)}`).attr('stroke', 'blue'); + d3.select(`#igbc${(0, _focus.itgIdTag)(d)}`).attr('stroke', 'blue'); + d3.select(`#igtp${(0, _focus.itgIdTag)(d)}`).style('fill', 'blue'); + }).on('mouseout', (event, d) => { + d3.select(`#igbp${(0, _focus.itgIdTag)(d)}`).attr('stroke', '#228B22'); + d3.select(`#igbc${(0, _focus.itgIdTag)(d)}`).attr('stroke', '#228B22'); + d3.select(`#igtp${(0, _focus.itgIdTag)(d)}`).style('fill', '#228B22'); + }).on('click', (event, d) => this.onClickTarget(event, d)); + igtp.enter().append('text').attr('class', 'igtp').attr('font-family', 'Helvetica').style('font-size', '12px').attr('fill', '#228B22').style('text-anchor', 'middle').merge(igtp).attr('id', d => `igtp${(0, _focus.itgIdTag)(d)}`).text(d => (0, _integration.calcArea)(d, refArea, refFactor, ignoreRef)).attr('transform', d => `translate(${xt((d.xL + d.xU) / 2 - shift)}, ${dh - 12})`).on('mouseover', (event, d) => { + d3.select(`#igbp${(0, _focus.itgIdTag)(d)}`).attr('stroke', 'blue'); + d3.select(`#igbc${(0, _focus.itgIdTag)(d)}`).attr('stroke', 'blue'); + d3.select(`#igtp${(0, _focus.itgIdTag)(d)}`).style('fill', 'blue'); + }).on('mouseout', (event, d) => { + d3.select(`#igbp${(0, _focus.itgIdTag)(d)}`).attr('stroke', '#228B22'); + d3.select(`#igbc${(0, _focus.itgIdTag)(d)}`).attr('stroke', '#228B22'); + d3.select(`#igtp${(0, _focus.itgIdTag)(d)}`).style('fill', '#228B22'); + }).on('click', (event, d) => this.onClickTarget(event, d)); + } + } + drawMtply(mtplySt) { + const { + sameXY, + sameLySt, + sameMySt + } = this.shouldUpdate; + if (sameXY && sameLySt && sameMySt) return; + const { + selectedIdx, + multiplicities = [] + } = mtplySt || {}; + const selectedMulti = multiplicities[selectedIdx] || {}; + const { + stack = [], + smExtext = false, + shift = 0 + } = selectedMulti; + const hasValidExtent = extent => extent && Number.isFinite(extent.xL) && Number.isFinite(extent.xU); + const mpys = stack.filter(m => hasValidExtent(m?.xExtent)); + const isDisable = _cfg.default.btnCmdMpy(this.layout); + if (mpys.length === 0 || isDisable) return; + const activeExtent = hasValidExtent(smExtext) ? smExtext : mpys[0].xExtent; + // rescale for zoom + const { + xt + } = (0, _compass.TfRescale)(this); + const mpyb = this.tags.mpybPath.selectAll('path').data(mpys); + mpyb.exit().attr('class', 'exit').remove(); + const mpyt1 = this.tags.mpyt1Path.selectAll('text').data(mpys); + mpyt1.exit().attr('class', 'exit').remove(); + const mpyt2 = this.tags.mpyt2Path.selectAll('text').data(mpys); + mpyt2.exit().attr('class', 'exit').remove(); + let mPeaks = mpys.map(m => { + const { + peaks, + xExtent + } = m; + const safePeaks = Array.isArray(peaks) ? peaks : []; + return safePeaks.filter(p => Number.isFinite(p?.x) && Number.isFinite(p?.y)).map(p => Object.assign({}, p, { + xExtent + })); + }); + mPeaks = [].concat(...mPeaks); + const mpyp = this.tags.mpypPath.selectAll('path').data(mPeaks); + mpyp.exit().attr('class', 'exit').remove(); + const height = this.h; + const dh = Math.abs(0.06 * height); + const mpyBar = data => d3.line()([[xt(data.xExtent.xL - shift), height - dh], [xt(data.xExtent.xL - shift), height - dh - 10], [xt(data.xExtent.xL - shift), height - dh - 5], [xt(data.xExtent.xU - shift), height - dh - 5], [xt(data.xExtent.xU - shift), height - dh - 10], [xt(data.xExtent.xU - shift), height - dh]]); + const mpyColor = d => { + const { + xL, + xU + } = d.xExtent; + return activeExtent.xL === xL && activeExtent.xU === xU ? 'purple' : '#DA70D6'; + }; + mpyb.enter().append('path').attr('class', 'mpyb').attr('fill', 'none').attr('stroke-width', 2).merge(mpyb).attr('stroke', d => mpyColor(d)).attr('id', d => `mpyb${(0, _focus.mpyIdTag)(d)}`).attr('d', d => mpyBar(d)).on('mouseover', (event, d) => { + d3.selectAll(`#mpyb${(0, _focus.mpyIdTag)(d)}`).attr('stroke', 'blue'); + d3.selectAll(`#mpyt1${(0, _focus.mpyIdTag)(d)}`).style('fill', 'blue'); + d3.selectAll(`#mpyt2${(0, _focus.mpyIdTag)(d)}`).style('fill', 'blue'); + d3.selectAll(`#mpyp${(0, _focus.mpyIdTag)(d)}`).attr('stroke', 'blue'); + }).on('mouseout', (event, d) => { + const dColor = mpyColor(d); + d3.selectAll(`#mpyb${(0, _focus.mpyIdTag)(d)}`).attr('stroke', dColor); + d3.selectAll(`#mpyt1${(0, _focus.mpyIdTag)(d)}`).style('fill', dColor); + d3.selectAll(`#mpyt2${(0, _focus.mpyIdTag)(d)}`).style('fill', dColor); + d3.selectAll(`#mpyp${(0, _focus.mpyIdTag)(d)}`).attr('stroke', dColor); + }).on('click', (event, d) => this.onClickTarget(event, d)); + mpyt1.enter().append('text').attr('class', 'mpyt1').attr('font-family', 'Helvetica').style('font-size', '12px').style('text-anchor', 'middle').merge(mpyt1).attr('fill', d => mpyColor(d)).attr('id', d => `mpyt1${(0, _focus.mpyIdTag)(d)}`).text(d => `${(0, _multiplicity_calc.calcMpyCenter)(d.peaks, shift, d.mpyType).toFixed(3)}`).attr('transform', d => `translate(${xt((d.xExtent.xL + d.xExtent.xU) / 2 - shift)}, ${height - dh + 12})`).on('mouseover', (event, d) => { + d3.selectAll(`#mpyb${(0, _focus.mpyIdTag)(d)}`).attr('stroke', 'blue'); + d3.selectAll(`#mpyt1${(0, _focus.mpyIdTag)(d)}`).style('fill', 'blue'); + d3.selectAll(`#mpyt2${(0, _focus.mpyIdTag)(d)}`).style('fill', 'blue'); + d3.selectAll(`#mpyp${(0, _focus.mpyIdTag)(d)}`).attr('stroke', 'blue'); + }).on('mouseout', (event, d) => { + const dColor = mpyColor(d); + d3.selectAll(`#mpyb${(0, _focus.mpyIdTag)(d)}`).attr('stroke', dColor); + d3.selectAll(`#mpyt1${(0, _focus.mpyIdTag)(d)}`).style('fill', dColor); + d3.selectAll(`#mpyt2${(0, _focus.mpyIdTag)(d)}`).style('fill', dColor); + d3.selectAll(`#mpyp${(0, _focus.mpyIdTag)(d)}`).attr('stroke', dColor); + }).on('click', (event, d) => this.onClickTarget(event, d)); + mpyt2.enter().append('text').attr('class', 'mpyt2').attr('font-family', 'Helvetica').style('font-size', '12px').style('text-anchor', 'middle').merge(mpyt2).attr('fill', d => mpyColor(d)).attr('id', d => `mpyt2${(0, _focus.mpyIdTag)(d)}`).text(d => `(${d.mpyType})`).attr('transform', d => `translate(${xt((d.xExtent.xL + d.xExtent.xU) / 2 - shift)}, ${height - dh + 24})`).on('mouseover', (event, d) => { + d3.selectAll(`#mpyb${(0, _focus.mpyIdTag)(d)}`).attr('stroke', 'blue'); + d3.selectAll(`#mpyt1${(0, _focus.mpyIdTag)(d)}`).style('fill', 'blue'); + d3.selectAll(`#mpyt2${(0, _focus.mpyIdTag)(d)}`).style('fill', 'blue'); + d3.selectAll(`#mpyp${(0, _focus.mpyIdTag)(d)}`).attr('stroke', 'blue'); + }).on('mouseout', (event, d) => { + const dColor = mpyColor(d); + d3.selectAll(`#mpyb${(0, _focus.mpyIdTag)(d)}`).attr('stroke', dColor); + d3.selectAll(`#mpyt1${(0, _focus.mpyIdTag)(d)}`).style('fill', dColor); + d3.selectAll(`#mpyt2${(0, _focus.mpyIdTag)(d)}`).style('fill', dColor); + d3.selectAll(`#mpyp${(0, _focus.mpyIdTag)(d)}`).attr('stroke', dColor); + }).on('click', (event, d) => this.onClickTarget(event, d)); + const mpypH = height - dh; + const mpypPath = pk => [{ + x: xt(pk.x - shift) - 0.5, + y: mpypH - 5 + }, { + x: xt(pk.x - shift) - 0.5, + y: mpypH - 20 + }, { + x: xt(pk.x - shift) + 0.5, + y: mpypH - 20 + }, { + x: xt(pk.x - shift) + 0.5, + y: mpypH - 5 + }]; + // const faktor = layoutSt === LIST_LAYOUT.IR ? -1 : 1; + const lineSymbol = d3.line().x(d => d.x).y(d => d.y); + mpyp.enter().append('path').attr('class', 'mpyp').attr('fill', 'none').merge(mpyp).attr('stroke', d => mpyColor(d)).attr('d', d => lineSymbol(mpypPath(d))).attr('id', d => `mpyp${(0, _focus.mpyIdTag)(d)}`).on('mouseover', (event, d) => { + d3.selectAll(`#mpyb${(0, _focus.mpyIdTag)(d)}`).attr('stroke', 'blue'); + d3.selectAll(`#mpyt1${(0, _focus.mpyIdTag)(d)}`).style('fill', 'blue'); + d3.selectAll(`#mpyt2${(0, _focus.mpyIdTag)(d)}`).style('fill', 'blue'); + d3.selectAll(`#mpyp${(0, _focus.mpyIdTag)(d)}`).attr('stroke', 'blue'); + }).on('mouseout', (event, d) => { + const dColor = mpyColor(d); + d3.selectAll(`#mpyb${(0, _focus.mpyIdTag)(d)}`).attr('stroke', dColor); + d3.selectAll(`#mpyt1${(0, _focus.mpyIdTag)(d)}`).style('fill', dColor); + d3.selectAll(`#mpyt2${(0, _focus.mpyIdTag)(d)}`).style('fill', dColor); + d3.selectAll(`#mpyp${(0, _focus.mpyIdTag)(d)}`).attr('stroke', dColor); + }).on('click', (event, d) => this.onClickTarget(event, d)); + } + drawRef() { + // rescale for zoom + const { + xt, + yt + } = (0, _compass.TfRescale)(this); + const ccp = this.ref.selectAll('path').data(this.tSfPeaks); + ccp.exit().attr('class', 'exit').remove(); + const linePath = [{ + x: -0.5, + y: 10 + }, { + x: -4, + y: -20 + }, { + x: 4, + y: -20 + }, { + x: 0.5, + y: 10 + }]; + const faktor = _format.default.isIrLayout(this.layout) ? -1 : 1; + const lineSymbol = d3.line().x(d => d.x).y(d => faktor * d.y)(linePath); + ccp.enter().append('path').attr('d', lineSymbol).attr('class', 'enter-ref').attr('fill', 'green').attr('fill-opacity', 0.8).merge(ccp).attr('transform', d => `translate(${xt(d.x)}, ${yt(d.y)})`); + } + drawComparisons(comparisons) { + d3.selectAll('.line-clip-compare').remove(); + if (!comparisons) return null; + comparisons.forEach((c, idx) => { + if (!c.show) return; + const path = (0, _mount.MountComparePath)(this, _format.default.compareColors(idx), idx); // #D5D8DC + path.attr('d', this.pathCall(c.data)); + }); + return null; + } + reverseXAxis(layoutSt) { + return [_list_layout.LIST_LAYOUT.UVVIS, _list_layout.LIST_LAYOUT.HPLC_UVVIS, _list_layout.LIST_LAYOUT.TGA, _list_layout.LIST_LAYOUT.DSC, _list_layout.LIST_LAYOUT.XRD, _list_layout.LIST_LAYOUT.CYCLIC_VOLTAMMETRY, _list_layout.LIST_LAYOUT.CDS, _list_layout.LIST_LAYOUT.DLS_ACF, _list_layout.LIST_LAYOUT.SEC, _list_layout.LIST_LAYOUT.GC, _list_layout.LIST_LAYOUT.EMISSIONS, _list_layout.LIST_LAYOUT.DLS_INTENSITY].indexOf(layoutSt) < 0; + } + create({ + filterSeed, + filterPeak, + tTrEndPts, + tSfPeaks, + freq, + comparisons, + editPeakSt, + layoutSt, + integrationSt, + mtplySt, + sweepExtentSt, + isUiAddIntgSt, + isUiNoBrushSt, + wavelength, + uiSt + }) { + this.uiSt = uiSt; + this.graphIndex = uiSt?.zoom?.graphIndex; + this.svg = d3.select('.d3Svg'); + (0, _mount.MountMainFrame)(this, 'focus'); + (0, _mount.MountClip)(this); + this.root = d3.select(this.rootKlass).selectAll('.focus-main'); + this.scales = (0, _init.InitScale)(this, this.reverseXAxis(layoutSt)); + this.setTip(); + this.setDataParams(filterSeed, filterPeak, tTrEndPts, tSfPeaks, freq, layoutSt, wavelength); + (0, _compass.MountCompass)(this); + this.axis = (0, _mount.MountAxis)(this); + this.path = (0, _mount.MountPath)(this, 'steelblue'); + [this.thresLineUp, this.thresLineDw] = (0, _mount.MountThresLine)(this, 'green'); + this.grid = (0, _mount.MountGrid)(this); + this.tags = (0, _mount.MountTags)(this); + this.ref = (0, _mount.MountRef)(this); + (0, _mount.MountAxisLabelX)(this); + (0, _mount.MountAxisLabelY)(this); + if (this.data && this.data.length > 0) { + this.setConfig(sweepExtentSt); + this.drawLine(); + this.drawThres(); + this.drawGrid(); + this.drawRef(); + this.drawPeaks(editPeakSt); + this.drawInteg(integrationSt); + this.drawMtply(mtplySt); + this.drawComparisons(comparisons); + } + (0, _brush.default)(this, isUiAddIntgSt, isUiNoBrushSt); + this.resetShouldUpdate(editPeakSt, integrationSt, mtplySt); + } + update({ + filterSeed, + filterPeak, + tTrEndPts, + tSfPeaks, + freq, + comparisons, + editPeakSt, + layoutSt, + integrationSt, + mtplySt, + uiSt, + sweepExtentSt, + isUiAddIntgSt, + isUiNoBrushSt, + wavelength + }) { + this.uiSt = uiSt; + this.graphIndex = uiSt?.zoom?.graphIndex; + this.root = d3.select(this.rootKlass).selectAll('.focus-main'); + this.scales = (0, _init.InitScale)(this, this.reverseXAxis(layoutSt)); + this.setDataParams(filterSeed, filterPeak, tTrEndPts, tSfPeaks, freq, layoutSt, wavelength); + if (this.data && this.data.length > 0) { + this.setConfig(sweepExtentSt); + this.getShouldUpdate(editPeakSt, integrationSt, mtplySt); + this.drawLine(); + this.drawThres(); + this.drawGrid(); + this.drawRef(); + this.drawPeaks(editPeakSt); + this.drawInteg(integrationSt); + this.drawMtply(mtplySt); + this.drawComparisons(comparisons); + } + (0, _brush.default)(this, isUiAddIntgSt, isUiNoBrushSt); + this.resetShouldUpdate(editPeakSt, integrationSt, mtplySt); + } +} +var _default = exports.default = LineFocus; \ No newline at end of file diff --git a/dist/components/d3_line_rect/index.js b/dist/components/d3_line_rect/index.js new file mode 100644 index 00000000..27d8b01d --- /dev/null +++ b/dist/components/d3_line_rect/index.js @@ -0,0 +1,868 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.isLcmsMsPageLoading = exports.default = void 0; +var _react = _interopRequireDefault(require("react")); +var _reactRedux = require("react-redux"); +var _redux = require("redux"); +var _propTypes = _interopRequireDefault(require("prop-types")); +var _classnames = _interopRequireDefault(require("classnames")); +var _withStyles = _interopRequireDefault(require("@mui/styles/withStyles")); +var _material = require("@mui/material"); +var _ZoomInOutlined = _interopRequireDefault(require("@mui/icons-material/ZoomInOutlined")); +var _FindReplaceOutlined = _interopRequireDefault(require("@mui/icons-material/FindReplaceOutlined")); +var _Undo = _interopRequireDefault(require("@mui/icons-material/Undo")); +var _Redo = _interopRequireDefault(require("@mui/icons-material/Redo")); +var _common = require("../cmd_bar/common"); +var _chem = require("../../helpers/chem"); +var _manager = require("../../actions/manager"); +var _ui = require("../../actions/ui"); +var _hplc_ms = require("../../actions/hplc_ms"); +var _curve = require("../../actions/curve"); +var _rect_focus = _interopRequireDefault(require("./rect_focus")); +var _multi_focus = _interopRequireDefault(require("./multi_focus")); +var _line_focus = _interopRequireDefault(require("./line_focus")); +var _extractParams = require("../../helpers/extractParams"); +var _calc = require("../../helpers/calc"); +var _draw = require("../common/draw"); +var _list_ui = require("../../constants/list_ui"); +var _wavelengthSelect = _interopRequireDefault(require("../../features/lc-ms/ui/wavelengthSelect")); +var _list_graph = require("../../constants/list_graph"); +var _peak_group = _interopRequireDefault(require("../cmd_bar/08_peak_group")); +var _r03_threshold = _interopRequireDefault(require("../cmd_bar/r03_threshold")); +var _integration = _interopRequireDefault(require("../cmd_bar/04_integration")); +var _peak = _interopRequireDefault(require("../cmd_bar/03_peak")); +var _extractEntityLCMS = require("../../helpers/extractEntityLCMS"); +var _jsxRuntime = require("react/jsx-runtime"); +/* eslint-disable no-mixed-operators, prefer-object-spread, react/function-component-definition */ + +const W = Math.round(window.innerWidth * 0.90 * 9 / 12); // ROI +const H = Math.round(window.innerHeight * 0.90 * 0.8 / 3); // ROI + +const parsePageValue = feature => { + const candidates = [feature?.pageValue, feature?.page, feature?.pageSymbol]; + for (let i = 0; i < candidates.length; i += 1) { + const raw = candidates[i]; + if (raw != null) { + if (typeof raw === 'number') { + if (Number.isFinite(raw)) return raw; + } else { + const text = String(raw).split('\n')[0].trim(); + const match = text.match(/[-+]?\d*\.?\d+(?:[eE][-+]?\d+)?/); + if (match) { + const value = Number(match[0]); + if (Number.isFinite(value)) return value; + } + } + } + } + return null; +}; +const toSeed = (xValues = [], yValues = []) => { + const maxLength = Math.min(xValues.length, yValues.length); + const seed = new Array(maxLength); + for (let index = 0; index < maxLength; index += 1) { + seed[index] = { + x: xValues[index], + y: yValues[index] + }; + } + return seed; +}; +const isLcmsMsPageLoading = (mzEntities = [], hplcMsSt = {}) => { + const currentPageValue = hplcMsSt?.tic?.currentPageValue; + if (!Number.isFinite(currentPageValue)) return false; + const polarity = hplcMsSt?.tic?.polarity; + const pickEntity = mzEntities?.find(ent => (0, _extractEntityLCMS.getLcMsInfo)(ent).polarity === polarity) || mzEntities?.[0]; + if (!pickEntity) return true; + const { + features + } = (0, _extractParams.extractParams)(pickEntity, 0, 1); + let featuresArr = []; + if (Array.isArray(features)) { + featuresArr = features; + } else if (features && typeof features === 'object') { + featuresArr = Object.values(features); + } + if (featuresArr.length === 0) return true; + const pageValues = featuresArr.map(feature => parsePageValue(feature)).filter(value => Number.isFinite(value)); + if (pageValues.length === 0) return true; + return !pageValues.some(value => Math.abs(value - currentPageValue) < 1e-5); +}; +exports.isLcmsMsPageLoading = isLcmsMsPageLoading; +const styles = () => Object.assign({}, { + lcMsStackRoot: { + margin: '0 0 5px 52px' + }, + lcMsToolbarRow: { + display: 'flex', + flexWrap: 'wrap', + alignItems: 'center', + justifyContent: 'space-between', + columnGap: 8, + rowGap: 4 + }, + lcMsToolbarLeft: { + display: 'flex', + flexWrap: 'wrap', + alignItems: 'center', + columnGap: 4, + rowGap: 4, + flex: '1 1 auto', + minWidth: 0 + }, + lcMsToolbarRight: { + display: 'flex', + flexWrap: 'wrap', + alignItems: 'center', + justifyContent: 'flex-end', + columnGap: 8, + rowGap: 4, + flex: '0 1 auto' + }, + lcMsGraphPanel: { + position: 'relative' + }, + lcMsLoadingOverlay: { + position: 'absolute', + inset: 0, + display: 'flex', + alignItems: 'center', + justifyContent: 'center', + backgroundColor: 'rgba(255, 255, 255, 0.72)', + pointerEvents: 'none', + zIndex: 2 + }, + lcMsLoadingIndicator: { + display: 'inline-flex', + alignItems: 'center', + justifyContent: 'center', + padding: 10, + borderRadius: '50%', + backgroundColor: 'rgba(255, 255, 255, 0.92)', + boxShadow: '0 1px 4px rgba(0, 0, 0, 0.18)' + } +}, _common.commonStyle); +const zoomView = (classes, graphIndex, uiSt, zoomInAct) => { + const onSweepZoomIn = () => { + const payload = { + graphIndex, + sweepType: _list_ui.LIST_UI_SWEEP_TYPE.ZOOMIN + }; + zoomInAct(payload); + }; + const onSweepZoomReset = () => { + const resetPayload = { + graphIndex, + sweepType: _list_ui.LIST_UI_SWEEP_TYPE.ZOOMRESET + }; + zoomInAct(resetPayload); + // Re-enable zoom brush immediately after reset for LC/MS flow. + zoomInAct({ + graphIndex, + sweepType: _list_ui.LIST_UI_SWEEP_TYPE.ZOOMIN + }); + }; + const { + zoom + } = uiSt; + const { + sweepTypes + } = zoom; + const isZoomFocus = sweepTypes[graphIndex] === _list_ui.LIST_UI_SWEEP_TYPE.ZOOMIN; + return /*#__PURE__*/(0, _jsxRuntime.jsxs)("span", { + className: classes.group, + "data-testid": "Zoom", + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Tooltip, { + title: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: "txt-sv-tp", + children: "Zoom In" + }), + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_common.MuButton, { + className: (0, _classnames.default)((0, _common.focusStyle)(isZoomFocus, classes), 'btn-sv-bar-zoomin'), + onClick: onSweepZoomIn, + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_ZoomInOutlined.default, { + className: (0, _classnames.default)(classes.icon, classes.iconWp) + }) + }) + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Tooltip, { + title: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: "txt-sv-tp", + children: "Reset Zoom" + }), + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_common.MuButton, { + className: (0, _classnames.default)('btn-sv-bar-zoomreset'), + onClick: onSweepZoomReset, + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_FindReplaceOutlined.default, { + className: classes.icon + }) + }) + })] + }); +}; +const wavelengthSelect = (classes, hplcMsSt, updateWavelengthAct) => (0, _wavelengthSelect.default)(classes, hplcMsSt, updateWavelengthAct); +const countAvailableTicPolarities = hplcMsSt => { + const a = hplcMsSt?.tic?.available; + if (!a || typeof a !== 'object') return 0; + return ['positive', 'negative', 'neutral'].filter(k => a[k]).length; +}; +const ticSelect = (classes, hplcMsSt, handleTicChanged) => { + const { + tic = {} + } = hplcMsSt || {}; + const { + polarity, + available + } = tic; + const listTIC = [{ + name: 'PLUS', + value: 'positive', + enabled: available?.positive + }, { + name: 'MINUS', + value: 'negative', + enabled: available?.negative + }, { + name: 'NEUTRAL', + value: 'neutral', + enabled: available?.neutral + }]; + const filtered = listTIC.filter(d => d.enabled); + if (filtered.length <= 1) { + return null; + } + const listOptions = filtered; + const options = listOptions.map(d => /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.MenuItem, { + value: d.value, + children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: (0, _classnames.default)(classes.txtOpt, 'option-sv-bar-decimal'), + children: d.name + }) + }, d.value)); + const onTicChange = event => { + handleTicChanged(event); + }; + const optionValues = listOptions.map(d => d.value); + const resolvedPolarity = optionValues.includes(polarity) ? polarity : optionValues[0]; + return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.FormControl, { + className: (0, _classnames.default)(classes.fieldDecimal), + variant: "outlined", + style: { + width: '110px' + }, + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.InputLabel, { + id: "select-decimal-label", + className: (0, _classnames.default)(classes.selectLabel, 'select-sv-bar-label'), + children: "TIC" + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Select, { + labelId: "select-decimal-label", + label: "Decimal", + value: resolvedPolarity, + onChange: onTicChange, + className: (0, _classnames.default)(classes.selectInput, 'input-sv-bar-decimal'), + children: options + })] + }); +}; +class ViewerLineRect extends _react.default.Component { + constructor(props) { + super(props); + const { + clickUiTargetAct, + selectUiSweepAct, + scrollUiWheelAct, + ticEntities, + uvvisEntities, + uiSt + } = props; + this.rootKlassLine = `.${_list_graph.LIST_ROOT_SVG_GRAPH.LINE}`; + this.lineFocus = new _line_focus.default({ + W, + H, + uvvisEntities, + clickUiTargetAct, + selectUiSweepAct, + scrollUiWheelAct, + graphIndex: 0, + uiSt + }); + this.rootKlassMulti = `.${_list_graph.LIST_ROOT_SVG_GRAPH.MULTI}`; + this.multiFocus = new _multi_focus.default({ + W, + H, + ticEntities, + clickUiTargetAct, + selectUiSweepAct, + scrollUiWheelAct, + graphIndex: 1, + uiSt + }); + this.rootKlassRect = `.${_list_graph.LIST_ROOT_SVG_GRAPH.RECT}`; + this.rectFocus = new _rect_focus.default({ + W, + H, + clickUiTargetAct, + selectUiSweepAct, + scrollUiWheelAct, + graphIndex: 2, + uiSt + }); + this.normChange = this.normChange.bind(this); + this.extractSubView = this.extractSubView.bind(this); + this.notifyHostOnSubViewerChange = this.notifyHostOnSubViewerChange.bind(this); + this.extractUvvisView = this.extractUvvisView.bind(this); + this.handleUvvisUndo = this.handleUvvisUndo.bind(this); + this.handleUvvisRedo = this.handleUvvisRedo.bind(this); + } + componentDidMount() { + const { + curveSt, + feature, + ticEntities, + hplcMsSt, + tTrEndPts, + layoutSt, + isUiAddIntgSt, + isUiNoBrushSt, + integrationSt, + isHidden, + resetAllAct, + uiSt, + editPeakSt + } = this.props; + (0, _draw.drawDestroy)(this.rootKlassMulti); + (0, _draw.drawDestroy)(this.rootKlassLine); + (0, _draw.drawDestroy)(this.rootKlassRect); + resetAllAct(feature); + const { + zoom + } = uiSt; + const { + sweepExtent + } = zoom; + const uvvisViewFeature = this.extractUvvisView(); + let uvvisSeed = []; + if (uvvisViewFeature?.data?.[0]) { + const currentData = uvvisViewFeature.data[0]; + const { + x, + y + } = currentData; + uvvisSeed = toSeed(x, y); + } + (0, _draw.drawMain)(this.rootKlassLine, W, H, _list_graph.LIST_BRUSH_SVG_GRAPH.LINE); + this.lineFocus.create({ + filterSeed: uvvisSeed, + filterPeak: [], + tTrEndPts, + layoutSt, + isUiNoBrushSt: true, + sweepExtentSt: sweepExtent[0], + integrationSt, + isUiAddIntgSt, + editPeakSt, + hplcMsSt + }); + (0, _draw.drawLabel)(this.rootKlassLine, null, 'Minutes', 'Intensity'); + (0, _draw.drawDisplay)(this.rootKlassLine, false); + (0, _draw.drawMain)(this.rootKlassMulti, W, H, _list_graph.LIST_BRUSH_SVG_GRAPH.MULTI); + this.multiFocus.create({ + ticEntities, + curveSt, + hplcMsSt, + tTrEndPts, + layoutSt, + sweepExtentSt: sweepExtent[1], + isUiAddIntgSt, + isUiNoBrushSt + }); + (0, _draw.drawLabel)(this.rootKlassMulti, null, 'Minutes', 'Intensity'); + (0, _draw.drawDisplay)(this.rootKlassMulti, isHidden); + (0, _draw.drawMain)(this.rootKlassRect, W, H, _list_graph.LIST_BRUSH_SVG_GRAPH.RECT); + this.rectFocus.create({ + filterSeed: [], + filterPeak: [], + tTrEndPts, + layoutSt, + isUiNoBrushSt: true, + sweepExtentSt: sweepExtent[2] + }); + (0, _draw.drawLabel)(this.rootKlassRect, null, 'm/z', 'Intensity'); + (0, _draw.drawDisplay)(this.rootKlassRect, false); + } + componentDidUpdate(prevProps) { + const { + ticEntities, + curveSt, + tTrEndPts, + layoutSt, + isUiAddIntgSt, + isUiNoBrushSt, + isHidden, + uiSt, + hplcMsSt, + integrationSt, + editPeakSt + } = this.props; + this.normChange(prevProps); + const { + zoom + } = uiSt; + const { + sweepExtent + } = zoom || {}; + if (!Array.isArray(sweepExtent)) return; + const uvvisViewFeature = this.extractUvvisView(); + if (uvvisViewFeature) { + const hasLineSvg = !!document.querySelector(`${this.rootKlassLine} .${_list_graph.LIST_BRUSH_SVG_GRAPH.LINE}`); + if (!hasLineSvg) { + (0, _draw.drawMain)(this.rootKlassLine, W, H, _list_graph.LIST_BRUSH_SVG_GRAPH.LINE); + } + const { + data + } = uvvisViewFeature; + const currentData = data[0]; + const { + x, + y + } = currentData; + const uvvisSeed = toSeed(x, y); + if (this.lineFocus) { + this.lineFocus.update({ + filterSeed: uvvisSeed, + filterPeak: [], + tTrEndPts, + isUiNoBrushSt: true, + isUiAddIntgSt, + sweepExtentSt: sweepExtent[0], + uiSt, + layoutSt, + integrationSt, + hplcMsSt, + editPeakSt + }); + } + (0, _draw.drawLabel)(this.rootKlassLine, null, 'Minutes', 'Intensity'); + (0, _draw.drawDisplay)(this.rootKlassLine, false); + } + if (this.multiFocus) { + const hasMultiSvg = !!document.querySelector(`${this.rootKlassMulti} .${_list_graph.LIST_BRUSH_SVG_GRAPH.MULTI}`); + if (!hasMultiSvg) { + (0, _draw.drawMain)(this.rootKlassMulti, W, H, _list_graph.LIST_BRUSH_SVG_GRAPH.MULTI); + } + this.multiFocus.update({ + curveSt, + ticEntities, + hplcMsSt, + tTrEndPts, + layoutSt, + sweepExtentSt: sweepExtent[1], + isUiAddIntgSt, + isUiNoBrushSt, + uiSt, + editPeakSt + }); + } + const { + polarity + } = hplcMsSt.tic; + const ticPolarityCount = countAvailableTicPolarities(hplcMsSt); + let ticLabel = null; + if (ticPolarityCount > 1) { + ticLabel = 'NEUTRAL'; + if (polarity === 'negative') { + ticLabel = 'MINUS'; + } else if (polarity === 'positive') { + ticLabel = 'PLUS'; + } + } + (0, _draw.drawLabel)(this.rootKlassMulti, ticLabel, 'Minutes', 'Intensity'); + (0, _draw.drawDisplay)(this.rootKlassMulti, isHidden); + this.notifyHostOnSubViewerChange(prevProps); + const subViewFeature = this.extractSubView(); + if (subViewFeature) { + const hasRectSvg = !!document.querySelector(`${this.rootKlassRect} .${_list_graph.LIST_BRUSH_SVG_GRAPH.RECT}`); + if (!hasRectSvg) { + (0, _draw.drawMain)(this.rootKlassRect, W, H, _list_graph.LIST_BRUSH_SVG_GRAPH.RECT); + } + const { + threshold + } = hplcMsSt; + const curTrEndPts = (0, _chem.convertThresEndPts)(subViewFeature, threshold.value); + const { + data + } = subViewFeature; + const pageValue = parsePageValue(subViewFeature); + const labelValue = Number.isFinite(pageValue) ? pageValue : subViewFeature?.pageValue ?? subViewFeature?.page ?? null; + const currentData = data[0]; + const { + x, + y + } = currentData; + const subSeed = toSeed(x, y); + if (this.rectFocus) { + this.rectFocus.update({ + filterSeed: subSeed, + filterPeak: [], + tTrEndPts: curTrEndPts, + layoutSt, + isUiNoBrushSt: true, + sweepExtentSt: sweepExtent[2], + uiSt + }); + } + (0, _draw.drawLabel)(this.rootKlassRect, labelValue != null ? `${labelValue} min` : null, 'm/z', 'Intensity'); + (0, _draw.drawDisplay)(this.rootKlassRect, false); + } + } + componentWillUnmount() { + (0, _draw.drawDestroy)(this.rootKlassLine); + (0, _draw.drawDestroy)(this.rootKlassMulti); + (0, _draw.drawDestroy)(this.rootKlassRect); + } + handleUvvisUndo() { + const { + uvvisUndoAct + } = this.props; + uvvisUndoAct(); + } + handleUvvisRedo() { + const { + uvvisRedoAct + } = this.props; + uvvisRedoAct(); + } + normChange(prevProps) { + const { + feature + } = this.props; + const oldFeature = prevProps.feature; + if (oldFeature !== feature) { + // resetAllAct(feature); + } + } + extractUvvisView() { + const { + uvvisEntities, + hplcMsSt + } = this.props; + if (!uvvisEntities || !uvvisEntities[0]) { + return null; + } + const { + features + } = (0, _extractParams.extractParams)(uvvisEntities[0], 0, 1); + let featuresArr = []; + if (Array.isArray(features)) { + featuresArr = features; + } else if (features && typeof features === 'object') { + featuresArr = Object.values(features); + } + if (featuresArr.length === 0) { + return null; + } + const { + uvvis + } = hplcMsSt; + const { + wavelengthIdx + } = uvvis; + if (wavelengthIdx < 0 || wavelengthIdx >= featuresArr.length) { + return null; + } + return featuresArr[wavelengthIdx]; + } + extractSubView() { + const { + uiSt, + mzEntities, + hplcMsSt + } = this.props; + const { + polarity + } = hplcMsSt.tic; + const pickEntity = mzEntities?.find(ent => (0, _extractEntityLCMS.getLcMsInfo)(ent).polarity === polarity) || mzEntities?.[0]; + if (!pickEntity || !pickEntity.layout) return null; + const { + features + } = (0, _extractParams.extractParams)(pickEntity, 0, 1); + let featuresArr = []; + if (Array.isArray(features)) featuresArr = features;else if (features && typeof features === 'object') featuresArr = Object.values(features); + if (featuresArr.length === 0) return null; + const { + subViewerAt + } = uiSt; + const pageValues = featuresArr.map(fe => parsePageValue(fe)).filter(val => Number.isFinite(val)); + if (pageValues.length === 0) return featuresArr[0]; + let requestedPageValue; + if (subViewerAt != null && Number.isFinite(subViewerAt.x)) { + requestedPageValue = subViewerAt.x; + } else if (Number.isFinite(hplcMsSt.tic.currentPageValue)) { + requestedPageValue = hplcMsSt.tic.currentPageValue; + } else { + requestedPageValue = pageValues[Math.floor(pageValues.length / 2)]; + } + const closestPage = (0, _calc.findClosest)(pageValues, requestedPageValue); + const selectFeature = featuresArr.find(fe => { + const value = parsePageValue(fe); + return Number.isFinite(value) && Math.abs(value - closestPage) < 1e-9; + }); + return selectFeature || featuresArr[0]; + } + notifyHostOnSubViewerChange(prevProps) { + const { + uiSt, + hplcMsSt, + mzEntities, + onLcmsPageRequest, + updateCurrentPageValueAct + } = this.props; + const subViewerAt = uiSt?.subViewerAt; + if (!subViewerAt || !Number.isFinite(subViewerAt.x)) return; + const prevSubViewerAt = prevProps?.uiSt?.subViewerAt; + const sameClickAsBefore = prevSubViewerAt && Number.isFinite(prevSubViewerAt.x) && Math.abs(subViewerAt.x - prevSubViewerAt.x) < 1e-9 && Math.abs((subViewerAt.y ?? 0) - (prevSubViewerAt.y ?? 0)) < 1e-9; + if (sameClickAsBefore) return; + const { + polarity + } = hplcMsSt.tic; + const pickEntity = mzEntities?.find(ent => (0, _extractEntityLCMS.getLcMsInfo)(ent).polarity === polarity) || mzEntities?.[0]; + if (!pickEntity || !pickEntity.layout) return; + const { + features + } = (0, _extractParams.extractParams)(pickEntity, 0, 1); + let featuresArr = []; + if (Array.isArray(features)) featuresArr = features;else if (features && typeof features === 'object') featuresArr = Object.values(features); + const pageValues = featuresArr.map(fe => parsePageValue(fe)).filter(val => Number.isFinite(val)); + const requestedRt = subViewerAt.x; + const matchesLoadedScan = pageValues.some(pv => Math.abs(pv - requestedRt) < 1e-5); + const needsRemoteFetch = !matchesLoadedScan; + const exactFeature = featuresArr.find(fe => { + const value = parsePageValue(fe); + return Number.isFinite(value) && Math.abs(value - requestedRt) < 1e-9; + }); + const requestRetentionTime = exactFeature?.pageSymbol ?? exactFeature?.page ?? exactFeature?.pageValue ?? requestedRt; + const persistedRt = needsRemoteFetch ? requestedRt : (0, _calc.findClosest)(pageValues, requestedRt); + const prevPersistedRt = hplcMsSt.tic.currentPageValue; + if (!Number.isFinite(prevPersistedRt) || Math.abs(persistedRt - prevPersistedRt) > 1e-5) { + updateCurrentPageValueAct(persistedRt); + } + if (needsRemoteFetch && typeof onLcmsPageRequest === 'function') { + onLcmsPageRequest({ + retentionTime: requestRetentionTime, + polarity, + trigger: 'user_click' + }); + } + } + render() { + const { + classes, + hplcMsSt, + selectWavelengthAct, + updateTicAct, + selectCurveAct, + feature, + zoomInAct, + uiSt, + ticEntities, + mzEntities, + omitUvvisToolbarRow, + onLcmsPageRequest + } = this.props; + const resolvedFeature = feature || {}; + const hasEdit = !!resolvedFeature?.data?.[0]?.x?.length; + const isMsLoading = isLcmsMsPageLoading(mzEntities, hplcMsSt); + const handleTicChanged = event => { + const selectedPolarity = event.target.value; + updateTicAct({ + polarity: selectedPolarity + }); + const targetEntity = ticEntities?.find(ent => (0, _extractEntityLCMS.getLcMsInfo)(ent).polarity === selectedPolarity); + if (targetEntity?.curveIdx !== undefined) { + selectCurveAct(targetEntity.curveIdx); + } + const rt = hplcMsSt?.tic?.currentPageValue; + // Always notify the host on polarity change so it can fetch the mz page for the + // other trace. If RT is not set yet, pass undefined — ELN resolves initial RT. + if (typeof onLcmsPageRequest === 'function') { + onLcmsPageRequest({ + retentionTime: Number.isFinite(rt) ? rt : undefined, + polarity: selectedPolarity, + trigger: 'tic_polarity' + }); + } + }; + const handleWavelengthChange = event => { + selectWavelengthAct(event); + }; + return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", { + className: classes.lcMsStackRoot, + children: [omitUvvisToolbarRow ? null : /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", { + className: classes.lcMsToolbarRow, + children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("div", { + className: classes.lcMsToolbarLeft, + children: [zoomView(classes, 0, uiSt, zoomInAct), wavelengthSelect(classes, hplcMsSt, handleWavelengthChange), /*#__PURE__*/(0, _jsxRuntime.jsx)(_integration.default, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_peak.default, { + feature: resolvedFeature + }), (() => { + const hist = hplcMsSt?.uvvisEditHistory || { + past: [], + future: [] + }; + const canUndo = hist.past && hist.past.length > 0; + const canRedo = hist.future && hist.future.length > 0; + return /*#__PURE__*/(0, _jsxRuntime.jsxs)("span", { + className: classes.group, + style: { + display: 'inline-flex', + alignItems: 'center' + }, + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Tooltip, { + title: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: "txt-sv-tp", + children: "Undo" + }), + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_common.MuButton, { + className: "btn-sv-bar-uvvis-undo", + disabled: !canUndo, + onClick: this.handleUvvisUndo, + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Undo.default, { + className: classes.icon + }) + }) + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Tooltip, { + title: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: "txt-sv-tp", + children: "Redo" + }), + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_common.MuButton, { + className: "btn-sv-bar-uvvis-redo", + disabled: !canRedo, + onClick: this.handleUvvisRedo, + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Redo.default, { + className: classes.icon + }) + }) + })] + }); + })()] + }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", { + className: classes.lcMsToolbarRight + })] + }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", { + className: _list_graph.LIST_ROOT_SVG_GRAPH.LINE + }), /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", { + className: classes.lcMsToolbarRow, + children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("div", { + className: classes.lcMsToolbarLeft, + children: [zoomView(classes, 1, uiSt, zoomInAct), ticSelect(classes, hplcMsSt, handleTicChanged), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + style: { + display: 'inline-flex' + }, + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_peak_group.default, { + feature: resolvedFeature, + graphIndex: 1 + }) + })] + }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", { + className: classes.lcMsToolbarRight + })] + }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", { + className: _list_graph.LIST_ROOT_SVG_GRAPH.MULTI + }), /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", { + className: classes.lcMsToolbarRow, + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", { + className: classes.lcMsToolbarLeft, + children: zoomView(classes, 2, uiSt, zoomInAct) + }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", { + className: classes.lcMsToolbarRight, + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_r03_threshold.default, { + feature: resolvedFeature, + hasEdit: hasEdit + }) + })] + }), /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", { + className: classes.lcMsGraphPanel, + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", { + className: _list_graph.LIST_ROOT_SVG_GRAPH.RECT + }), isMsLoading ? /*#__PURE__*/(0, _jsxRuntime.jsx)("div", { + className: classes.lcMsLoadingOverlay, + "data-testid": "lcms-ms-loading", + "aria-label": "Loading MS spectrum", + children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", { + className: classes.lcMsLoadingIndicator, + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.CircularProgress, { + size: 28 + }) + }) + }) : null] + })] + }); + } +} +const mapStateToProps = (state, props) => ({ + curveSt: state.curve, + tTrEndPts: (0, _chem.ToThresEndPts)(state, props), + isUiAddIntgSt: state.ui.sweepType === _list_ui.LIST_UI_SWEEP_TYPE.INTEGRATION_ADD, + isUiNoBrushSt: _list_ui.LIST_NON_BRUSH_TYPES.indexOf(state.ui.sweepType) < 0, + uiSt: state.ui, + layoutSt: state.layout, + hplcMsSt: state.hplcMs, + editPeakSt: state.editPeak.present, + integrationSt: state.integration.present, + sweepExtentSt: state.ui.sweepExtent +}); +const mapDispatchToProps = dispatch => (0, _redux.bindActionCreators)({ + resetAllAct: _manager.resetAll, + clickUiTargetAct: _ui.clickUiTarget, + selectUiSweepAct: _ui.selectUiSweep, + scrollUiWheelAct: _ui.scrollUiWheel, + selectWavelengthAct: _hplc_ms.selectWavelength, + updateTicAct: _hplc_ms.changeTic, + selectCurveAct: _curve.selectCurve, + zoomInAct: _ui.setUiSweepType, + updateCurrentPageValueAct: _hplc_ms.updateCurrentPageValue, + uvvisUndoAct: _hplc_ms.uvvisUndo, + uvvisRedoAct: _hplc_ms.uvvisRedo +}, dispatch); +ViewerLineRect.propTypes = { + classes: _propTypes.default.object.isRequired, + uiSt: _propTypes.default.object.isRequired, + curveSt: _propTypes.default.object.isRequired, + ticEntities: _propTypes.default.array.isRequired, + uvvisEntities: _propTypes.default.array.isRequired, + mzEntities: _propTypes.default.array.isRequired, + layoutSt: _propTypes.default.string.isRequired, + integrationSt: _propTypes.default.object.isRequired, + feature: _propTypes.default.object, + tTrEndPts: _propTypes.default.array.isRequired, + isUiAddIntgSt: _propTypes.default.bool.isRequired, + isUiNoBrushSt: _propTypes.default.bool.isRequired, + resetAllAct: _propTypes.default.func.isRequired, + clickUiTargetAct: _propTypes.default.func.isRequired, + selectUiSweepAct: _propTypes.default.func.isRequired, + scrollUiWheelAct: _propTypes.default.func.isRequired, + isHidden: _propTypes.default.bool, + hplcMsSt: _propTypes.default.object.isRequired, + selectWavelengthAct: _propTypes.default.func.isRequired, + updateTicAct: _propTypes.default.func.isRequired, + selectCurveAct: _propTypes.default.func.isRequired, + zoomInAct: _propTypes.default.func.isRequired, + editPeakSt: _propTypes.default.object.isRequired, + updateCurrentPageValueAct: _propTypes.default.func.isRequired, + uvvisUndoAct: _propTypes.default.func.isRequired, + uvvisRedoAct: _propTypes.default.func.isRequired, + omitUvvisToolbarRow: _propTypes.default.bool, + onLcmsPageRequest: _propTypes.default.func +}; +ViewerLineRect.defaultProps = { + feature: {}, + isHidden: false, + omitUvvisToolbarRow: false, + onLcmsPageRequest: null +}; + +// export default connect(mapStateToProps, mapDispatchToProps)(ViewerLineRect); +var _default = exports.default = (0, _redux.compose)((0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps), (0, _withStyles.default)(styles))(ViewerLineRect); \ No newline at end of file diff --git a/dist/components/d3_line_rect/line_focus.js b/dist/components/d3_line_rect/line_focus.js new file mode 100644 index 00000000..d670aa8d --- /dev/null +++ b/dist/components/d3_line_rect/line_focus.js @@ -0,0 +1,526 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var _init = require("../../helpers/init"); +var _mount = require("../../helpers/mount"); +var _brush = _interopRequireDefault(require("../../helpers/brush")); +var _compass = require("../../helpers/compass"); +var _list_layout = require("../../constants/list_layout"); +var _list_graph = require("../../constants/list_graph"); +var _calc = require("../../helpers/calc"); +var _focus = require("../../helpers/focus"); +var _cfg = _interopRequireDefault(require("../../helpers/cfg")); +var _format = _interopRequireDefault(require("../../helpers/format")); +var _integration = require("../../helpers/integration"); +var _list_ui = require("../../constants/list_ui"); +/* eslint-disable prefer-object-spread, no-mixed-operators */ + +const d3 = require('d3'); +class LineFocus { + constructor(props) { + const { + W, + H, + clickUiTargetAct, + selectUiSweepAct, + scrollUiWheelAct, + graphIndex, + uiSt + } = props; + this.graphIndex = graphIndex; + this.uiSt = uiSt; + this.rootKlass = `.${_list_graph.LIST_ROOT_SVG_GRAPH.LINE}`; + this.margin = { + t: 5, + b: 40, + l: 60, + r: 5 + }; + this.w = W - this.margin.l - this.margin.r; + this.h = H - this.margin.t - this.margin.b; + this.clickUiTargetAct = clickUiTargetAct; + this.selectUiSweepAct = selectUiSweepAct; + this.scrollUiWheelAct = scrollUiWheelAct; + this.brush = d3.brush(); + this.brushX = d3.brushX(); + this.axis = null; + this.path = null; + this.grid = null; + this.tags = null; + this.data = []; + this.tTrEndPts = null; + this.root = null; + this.svg = null; + this.axisCall = (0, _init.InitAxisCall)(5); + this.pathCall = null; + this.tip = null; + this.factor = 0.125; + this.currentExtent = null; + this.shouldUpdate = {}; + this.layout = _list_layout.LIST_LAYOUT.H1; + this.getShouldUpdate = this.getShouldUpdate.bind(this); + this.resetShouldUpdate = this.resetShouldUpdate.bind(this); + this.setTip = this.setTip.bind(this); + this.setDataParams = this.setDataParams.bind(this); + this.create = this.create.bind(this); + this.update = this.update.bind(this); + this.setConfig = this.setConfig.bind(this); + this.drawLine = this.drawLine.bind(this); + this.drawGrid = this.drawGrid.bind(this); + this.onClickTarget = this.onClickTarget.bind(this); + this.drawAUC = this.drawAUC.bind(this); + this.drawInteg = this.drawInteg.bind(this); + this.isFirefox = typeof InstallTrigger !== 'undefined'; + } + getShouldUpdate(hplcMsSt) { + const { + prevXt, + prevYt, + prevLySt, + prevItSt, + prevTePt, + prevData, + prevDataSig, + prevIntegrationSig, + prevSpectrumKey + } = this.shouldUpdate; + const { + xt, + yt + } = (0, _compass.TfRescale)(this); + const sameXY = xt(1.1) === prevXt && prevYt === yt(1.1); + const sameLySt = prevLySt === this.layout; + const sameTePt = prevTePt === this.tTrEndPts.length; + const currentSpectrum = hplcMsSt?.uvvis?.currentSpectrum; + const sameItSt = prevItSt === currentSpectrum?.integrations?.length; + const sameData = prevData === this.data.length; + const firstPt = this.data[0]; + const lastPt = this.data[this.data.length - 1]; + const dataSig = `${this.data.length}-${firstPt?.y ?? ''}-${lastPt?.y ?? ''}`; + const sameDataSig = prevDataSig === dataSig; + const spectrumKey = currentSpectrum?.pageValue ?? hplcMsSt?.uvvis?.selectedWaveLength ?? ''; + const sameSpectrumKey = prevSpectrumKey === spectrumKey; + const integrations = currentSpectrum?.integrations || []; + const firstIntegration = integrations[0]; + const lastIntegration = integrations[integrations.length - 1]; + const integrationSig = `${integrations.length}-${firstIntegration?.xL ?? ''}-${firstIntegration?.xU ?? ''}-${lastIntegration?.xL ?? ''}-${lastIntegration?.xU ?? ''}-${currentSpectrum?.refArea ?? ''}-${currentSpectrum?.refFactor ?? ''}`; + const sameIntegrationSig = prevIntegrationSig === integrationSig; + this.shouldUpdate = Object.assign({}, this.shouldUpdate, { + sameXY, + sameLySt, + // eslint-disable-line + sameTePt, + sameData, + sameItSt, + sameDataSig, + sameIntegrationSig, + sameSpectrumKey, + // eslint-disable-line + dataSig, + integrationSig, + spectrumKey // eslint-disable-line + }); + } + resetShouldUpdate(hplcMsSt) { + const { + xt, + yt + } = (0, _compass.TfRescale)(this); + const prevXt = xt(1.1); + const prevYt = yt(1.1); + const prevTePt = this.tTrEndPts.length; + const prevData = this.data.length; + const prevLySt = this.layout; + const currentSpectrum = hplcMsSt?.uvvis?.currentSpectrum; + const prevItSt = currentSpectrum?.integrations?.length; + const firstPt = this.data[0]; + const lastPt = this.data[this.data.length - 1]; + const prevDataSig = `${this.data.length}-${firstPt?.y ?? ''}-${lastPt?.y ?? ''}`; + const spectrumKey = currentSpectrum?.pageValue ?? hplcMsSt?.uvvis?.selectedWaveLength ?? ''; + const integrations = currentSpectrum?.integrations || []; + const firstIntegration = integrations[0]; + const lastIntegration = integrations[integrations.length - 1]; + const prevIntegrationSig = `${integrations.length}-${firstIntegration?.xL ?? ''}-${firstIntegration?.xU ?? ''}-${lastIntegration?.xL ?? ''}-${lastIntegration?.xU ?? ''}-${currentSpectrum?.refArea ?? ''}-${currentSpectrum?.refFactor ?? ''}`; + this.shouldUpdate = Object.assign({}, this.shouldUpdate, { + prevXt, + prevYt, + prevLySt, + // eslint-disable-line + prevTePt, + prevData, + prevItSt, + prevDataSig, + prevIntegrationSig, + prevSpectrumKey: spectrumKey // eslint-disable-line + }); + } + setTip() { + this.tip = (0, _init.InitTip)(); + this.root.call(this.tip); + } + setDataParams(data, tTrEndPts, layout, editPeakSt) { + this.data = [...data]; + this.tTrEndPts = tTrEndPts; + if (layout) { + this.layout = layout; + } + this.editPeakSt = editPeakSt; + this.xOnlyBrush = this.layout === _list_layout.LIST_LAYOUT.LC_MS; + } + updatePathCall(xt, yt) { + this.pathCall = d3.line().x(d => xt(d.x)).y(d => yt(d.y)); + } + setConfig(sweepExtentSt) { + // Domain Calculate + let { + xExtent, + yExtent + } = sweepExtentSt || { + xExtent: false, + yExtent: false + }; + if (!xExtent) { + const xes = d3.extent(this.data, d => d.x).sort((a, b) => a - b); + xExtent = { + xL: xes[0], + xU: xes[1] + }; + } + if (!yExtent) { + const btm = d3.min(this.data, d => d.y); + const top = d3.max(this.data, d => d.y); + const height = top - btm; + yExtent = { + yL: btm - this.factor * height, + yU: top + this.factor * height + }; + } + this.scales.x.domain([xExtent.xL, xExtent.xU]); + this.scales.y.domain([yExtent.yL, yExtent.yU]); + + // rescale for zoom + const { + xt, + yt + } = (0, _compass.TfRescale)(this); + + // Axis Call + this.axisCall.x.scale(xt); + this.axisCall.y.scale(yt); + this.currentExtent = { + xExtent, + yExtent + }; + } + drawLine() { + if (!this.path) return; + const { + sameXY, + sameDataSig + } = this.shouldUpdate; + if (sameXY && sameDataSig) return; + const { + xt, + yt + } = (0, _compass.TfRescale)(this); + this.updatePathCall(xt, yt); + this.path.attr('d', this.pathCall(this.data)); + } + drawGrid() { + const { + sameXY + } = this.shouldUpdate; + if (sameXY || !this.grid || !this.axisCall) return; + if (this.grid.x && this.axisCall.x) { + this.grid.x.call(this.axisCall.x.tickSize(-this.h, 0, 0)).selectAll('line').attr('stroke', '#ddd').attr('stroke-opacity', 0.6).attr('fill', 'none'); + } + if (this.grid.y && this.axisCall.y) { + this.grid.y.call(this.axisCall.y.tickSize(-this.w, 0, 0)).selectAll('line').attr('stroke', '#ddd').attr('stroke-opacity', 0.6).attr('fill', 'none'); + } + } + drawPageMarker(hplcMsSt) { + if (!this.root || !_format.default.isLCMsLayout(this.layout)) return; + const currentPageValue = hplcMsSt?.tic?.currentPageValue; + const hasValue = Number.isFinite(currentPageValue); + const marker = this.root.selectAll('.uvvis-page-marker').data(hasValue ? [currentPageValue] : []); + marker.exit().remove(); + if (!hasValue) return; + const { + xt + } = (0, _compass.TfRescale)(this); + marker.enter().append('line').attr('class', 'uvvis-page-marker').attr('stroke', 'red').attr('stroke-width', 1).attr('stroke-opacity', 0.8).merge(marker).attr('x1', xt(currentPageValue)).attr('x2', xt(currentPageValue)).attr('y1', 0).attr('y2', this.h); + } + onClickTarget(event, data) { + event.stopPropagation(); + event.preventDefault(); + if (_format.default.isLCMsLayout(this.layout) && this.graphIndex === 0 && this.uiSt?.sweepType === _list_ui.LIST_UI_SWEEP_TYPE.PEAK_GROUP_SELECT) { + return; + } + const onPeak = true; + this.clickUiTargetAct(data, onPeak); + } + drawAUC(stack) { + const { + xt, + yt + } = (0, _compass.TfRescale)(this); + const auc = this.tags.aucPath.selectAll('path').data(stack, d => (0, _focus.itgIdTag)(d)); + auc.exit().attr('class', 'exit').remove(); + const integCurve = border => { + const { + xL, + xU + } = border.xExtent; + const ps = this.data.filter(d => d.x > xL && d.x < xU); + if (!ps[0]) return null; + const point1 = ps[0]; + const point2 = ps[ps.length - 1]; + const slope = (0, _calc.calcSlope)(point1.x, point1.y, point2.x, point2.y); + let lastDY = point1.y; + return d3.area().x(d => xt(d.x)).y0((d, index) => { + if (index > 0) { + const lastD = ps[index - 1]; + const y = slope * (d.x - lastD.x) + lastDY; + lastDY = y; + return yt(y); + } + return yt(0); + }).y1(d => yt(d.y))(ps); + }; + auc.enter().append('path').attr('class', 'auc').attr('fill', 'red').attr('stroke', 'none').attr('fill-opacity', 0.2).attr('stroke-width', 2).merge(auc).attr('d', d => integCurve(d)).attr('id', d => `auc${(0, _focus.itgIdTag)(d)}`).on('mouseover', function handleAucMouseover() { + d3.select(this).attr('stroke', 'blue').style('fill', 'blue'); + }).on('mouseout', function handleAucMouseout() { + d3.select(this).attr('stroke', 'none').style('fill', 'red').style('fill-opacity', 0.2); + }).on('click', (event, d) => this.onClickTarget(event, d)); + } + drawInteg(hplcMsSt) { + if (!this.tags || !this.tags.igbPath || !this.tags.igcPath || !this.tags.igtPath) return; + const { + sameXY, + sameLySt, + sameItSt, + sameData, + sameIntegrationSig, + sameSpectrumKey + } = this.shouldUpdate; + if (sameXY && sameLySt && sameItSt && sameData && sameIntegrationSig && sameSpectrumKey) return; + const isDisable = _cfg.default.btnCmdIntg(this.layout); + const ignoreRef = _format.default.isLCMsLayout(this.layout); + const currentSpectrum = hplcMsSt?.uvvis?.currentSpectrum; + const currentIntegrations = currentSpectrum?.integrations || []; + const currentRefArea = currentSpectrum?.refArea || 0; + const currentRefFactor = currentSpectrum?.refFactor || 1; + const igbp = this.tags.igbPath.selectAll('path').data(currentIntegrations, d => (0, _focus.itgIdTag)(d)); + igbp.exit().attr('class', 'exit').remove(); + const igcp = this.tags.igcPath.selectAll('path').data(currentIntegrations, d => (0, _focus.itgIdTag)(d)); + igcp.exit().attr('class', 'exit').remove(); + const igtp = this.tags.igtPath.selectAll('text').data(currentIntegrations, d => (0, _focus.itgIdTag)(d)); + igtp.exit().attr('class', 'exit').remove(); + if (currentIntegrations.length === 0 || isDisable) { + // remove drawn area under curve + const auc = this.tags.aucPath.selectAll('path').data(currentIntegrations); + auc.exit().attr('class', 'exit').remove(); + auc.merge(auc); + return; + } + if (ignoreRef) { + this.drawAUC(currentIntegrations); + } else { + // rescale for zoom + const { + xt + } = (0, _compass.TfRescale)(this); + const dh = 50; + const integBar = data => { + const points = [[xt(data.xL), dh], [xt(data.xL), dh - 10], [xt(data.xL), dh - 5], [xt(data.xU), dh - 5], [xt(data.xU), dh - 10], [xt(data.xU), dh]]; + return d3.line()(points); + }; + igbp.enter().append('path').attr('class', 'igbp').attr('fill', 'none').attr('stroke', '#228B22').attr('stroke-width', 2).merge(igbp).attr('id', d => `igbp${(0, _focus.itgIdTag)(d)}`).attr('d', d => integBar(d)).on('mouseover', (event, d) => { + d3.select(`#igbp${(0, _focus.itgIdTag)(d)}`).attr('stroke', 'blue'); + d3.select(`#igbc${(0, _focus.itgIdTag)(d)}`).attr('stroke', 'blue'); + d3.select(`#igtp${(0, _focus.itgIdTag)(d)}`).style('fill', 'blue'); + }).on('mouseout', (event, d) => { + d3.select(`#igbp${(0, _focus.itgIdTag)(d)}`).attr('stroke', '#228B22'); + d3.select(`#igbc${(0, _focus.itgIdTag)(d)}`).attr('stroke', '#228B22'); + d3.select(`#igtp${(0, _focus.itgIdTag)(d)}`).style('fill', '#228B22'); + }).on('click', (event, d) => this.onClickTarget(event, d)); + const integCurve = border => { + const { + xL, + xU + } = border; + const ps = this.data.filter(d => d.x > xL && d.x < xU); + const kMax = this.data[this.data.length - 1].k; + if (!ps[0]) return null; + const kRef = ps[0].k; + if (!this.reverseXAxis(this.layout)) { + return d3.line().x(d => xt(d.x)).y(d => 100 - (kRef - d.k) * 400 / kMax)(ps); + } + return d3.line().x(d => xt(d.x)).y(d => 300 - (d.k - kRef) * 400 / kMax)(ps); + }; + igcp.enter().append('path').attr('class', 'igcp').attr('fill', 'none').attr('stroke', '#228B22').attr('stroke-width', 2).merge(igcp).attr('id', d => `igbc${(0, _focus.itgIdTag)(d)}`).attr('d', d => integCurve(d)).on('mouseover', (event, d) => { + d3.select(`#igbp${(0, _focus.itgIdTag)(d)}`).attr('stroke', 'blue'); + d3.select(`#igbc${(0, _focus.itgIdTag)(d)}`).attr('stroke', 'blue'); + d3.select(`#igtp${(0, _focus.itgIdTag)(d)}`).style('fill', 'blue'); + }).on('mouseout', (event, d) => { + d3.select(`#igbp${(0, _focus.itgIdTag)(d)}`).attr('stroke', '#228B22'); + d3.select(`#igbc${(0, _focus.itgIdTag)(d)}`).attr('stroke', '#228B22'); + d3.select(`#igtp${(0, _focus.itgIdTag)(d)}`).style('fill', '#228B22'); + }).on('click', (event, d) => this.onClickTarget(event, d)); + igtp.enter().append('text').attr('class', 'igtp').attr('font-family', 'Helvetica').style('font-size', '12px').attr('fill', '#228B22').style('text-anchor', 'middle').merge(igtp).attr('id', d => `igtp${(0, _focus.itgIdTag)(d)}`).text(d => (0, _integration.calcArea)(d, currentRefArea, currentRefFactor, ignoreRef)).attr('transform', d => { + const x = xt((d.xL + d.xU) / 2); + const y = dh - 12; + return `translate(${x}, ${y})`; + }).on('mouseover', (event, d) => { + d3.select(`#igbp${(0, _focus.itgIdTag)(d)}`).attr('stroke', 'blue'); + d3.select(`#igbc${(0, _focus.itgIdTag)(d)}`).attr('stroke', 'blue'); + d3.select(`#igtp${(0, _focus.itgIdTag)(d)}`).style('fill', 'blue'); + }).on('mouseout', (event, d) => { + d3.select(`#igbp${(0, _focus.itgIdTag)(d)}`).attr('stroke', '#228B22'); + d3.select(`#igbc${(0, _focus.itgIdTag)(d)}`).attr('stroke', '#228B22'); + d3.select(`#igtp${(0, _focus.itgIdTag)(d)}`).style('fill', '#228B22'); + }).on('click', (event, d) => this.onClickTarget(event, d)); + } + } + mergedPeaks(hplcMsSt) { + const currentSpectrum = hplcMsSt?.uvvis?.currentSpectrum; + if (!currentSpectrum || !currentSpectrum.peaks) return []; + return currentSpectrum.peaks; + } + drawPeaks(hplcMsSt) { + if (!this.tags || !this.tags.pPath) return; + const { + sameXY, + sameEpSt, + sameDtPk, + sameSfPk + } = this.shouldUpdate; + if (sameXY && sameEpSt && sameDtPk && sameSfPk) return; + const { + xt, + yt + } = (0, _compass.TfRescale)(this); + const dPks = this.mergedPeaks(hplcMsSt); + const mpp = this.tags.pPath.selectAll('path').data(dPks); + mpp.exit().remove(); + const linePath = [{ + x: -0.5, + y: 10 + }, { + x: -0.5, + y: -20 + }, { + x: 0.5, + y: -20 + }, { + x: 0.5, + y: 10 + }]; + const lineSymbol = d3.line().x(d => d.x).y(d => d.y)(linePath); + mpp.enter().append('path').attr('d', lineSymbol).attr('class', 'enter-peak').attr('fill', 'red').attr('stroke', 'pink').attr('stroke-width', 3).attr('stroke-opacity', 0.0).merge(mpp).attr('id', d => `mpp${Math.round(1000 * d.x)}`).attr('transform', d => `translate(${xt(d.x)}, ${yt(d.y)})`).on('mouseover', (event, d) => { + d3.select(`#mpp${Math.round(1000 * d.x)}`).attr('stroke-opacity', '1.0'); + const tipParams = { + d, + layout: this.layout + }; + this.tip.show(tipParams, event.target); + }).on('mouseout', (event, d) => { + d3.select(`#mpp${Math.round(1000 * d.x)}`).attr('stroke-opacity', '0.0'); + const tipParams = { + d, + layout: this.layout + }; + this.tip.hide(tipParams, event.target); + }).on('click', (event, d) => this.onClickTarget(event, d)); + if (_format.default.isLCMsLayout(this.layout)) { + const bpTxt = this.tags.bpTxt.selectAll('text').data(dPks); + bpTxt.exit().remove(); + bpTxt.enter().append('text').attr('class', 'peak-text').attr('font-family', 'Helvetica').style('font-size', '12px').attr('fill', '#228B22').style('text-anchor', 'middle').merge(bpTxt).attr('id', d => `txt${Math.round(1000 * d.x)}`).text(d => d.x.toFixed(2)).attr('transform', d => `translate(${xt(d.x)}, ${yt(d.y) - 25})`).on('click', (event, d) => this.onClickTarget(event, d)); + } + } + create({ + filterSeed, + tTrEndPts, + layoutSt, + sweepExtentSt, + isUiAddIntgSt, + isUiNoBrushSt, + hplcMsSt, + editPeakSt + }) { + this.svg = d3.select('.d3Svg'); + (0, _mount.MountMainFrame)(this, 'focus'); + (0, _mount.MountClip)(this); + this.root = d3.select(this.rootKlass).selectAll('.focus-main'); + if (!this.root || this.root.empty()) return; + this.scales = (0, _init.InitScale)(this, false); + this.setTip(); + this.setDataParams(filterSeed, tTrEndPts, layoutSt, editPeakSt); + (0, _compass.MountCompass)(this); + this.axis = (0, _mount.MountAxis)(this); + this.path = (0, _mount.MountPath)(this, 'steelblue'); + this.grid = (0, _mount.MountGrid)(this); + this.tags = (0, _mount.MountTags)(this); + (0, _mount.MountAxisLabelX)(this); + (0, _mount.MountAxisLabelY)(this); + if (this.data && this.data.length > 0) { + this.setConfig(sweepExtentSt); + this.drawLine(); + this.drawPeaks(hplcMsSt); + this.drawGrid(); + this.drawPageMarker(hplcMsSt); + this.drawInteg(hplcMsSt); + } + (0, _brush.default)(this, isUiAddIntgSt, isUiNoBrushSt); + this.resetShouldUpdate(hplcMsSt); + } + reverseXAxis(layoutSt) { + return [_list_layout.LIST_LAYOUT.UVVIS, _list_layout.LIST_LAYOUT.HPLC_UVVIS, _list_layout.LIST_LAYOUT.TGA, _list_layout.LIST_LAYOUT.DSC, _list_layout.LIST_LAYOUT.XRD, _list_layout.LIST_LAYOUT.CYCLIC_VOLTAMMETRY, _list_layout.LIST_LAYOUT.CDS, _list_layout.LIST_LAYOUT.DLS_ACF, _list_layout.LIST_LAYOUT.SEC, _list_layout.LIST_LAYOUT.GC, _list_layout.LIST_LAYOUT.EMISSIONS, _list_layout.LIST_LAYOUT.DLS_INTENSITY].indexOf(layoutSt) < 0; + } + update({ + filterSeed, + tTrEndPts, + layoutSt, + sweepExtentSt, + isUiAddIntgSt, + isUiNoBrushSt, + uiSt, + hplcMsSt, + editPeakSt + }) { + this.root = d3.select(this.rootKlass).selectAll('.focus-main'); + this.scales = (0, _init.InitScale)(this, false); + this.setDataParams(filterSeed, tTrEndPts, layoutSt, editPeakSt); + this.uiSt = uiSt; + const isInitialized = !!(this.root && !this.root.empty() && this.path && this.grid && this.tags); + if (!isInitialized) { + this.create({ + filterSeed, + tTrEndPts, + layoutSt, + sweepExtentSt, + isUiAddIntgSt, + isUiNoBrushSt, + hplcMsSt, + editPeakSt + }); + return; + } + if (this.data && this.data.length > 0) { + this.setConfig(sweepExtentSt); + this.getShouldUpdate(hplcMsSt); + this.drawLine(); + this.drawGrid(); + this.drawPageMarker(hplcMsSt); + this.drawPeaks(hplcMsSt); + this.drawInteg(hplcMsSt); + } + (0, _brush.default)(this, isUiAddIntgSt, isUiNoBrushSt); + this.resetShouldUpdate(hplcMsSt); + } +} +var _default = exports.default = LineFocus; \ No newline at end of file diff --git a/dist/components/d3_line_rect/multi_focus.js b/dist/components/d3_line_rect/multi_focus.js new file mode 100644 index 00000000..849957e8 --- /dev/null +++ b/dist/components/d3_line_rect/multi_focus.js @@ -0,0 +1,431 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var _init = require("../../helpers/init"); +var _mount = require("../../helpers/mount"); +var _brush = _interopRequireDefault(require("../../helpers/brush")); +var _compass = require("../../helpers/compass"); +var _list_layout = require("../../constants/list_layout"); +var _format = _interopRequireDefault(require("../../helpers/format")); +var _list_graph = require("../../constants/list_graph"); +var _chem = require("../../helpers/chem"); +var _extractEntityLCMS = require("../../helpers/extractEntityLCMS"); +/* eslint-disable no-unused-vars, prefer-object-spread, no-mixed-operators, +no-unneeded-ternary, arrow-body-style, max-len */ + +const d3 = require('d3'); +const pickTicIndex = (ticEntities, curveIdx, polarity) => { + if (!Array.isArray(ticEntities) || ticEntities.length === 0) return 0; + if (Number.isInteger(curveIdx) && curveIdx >= 0 && curveIdx < ticEntities.length) { + return curveIdx; + } + if (!polarity) return 0; + const idx = ticEntities.findIndex(ent => (0, _extractEntityLCMS.getLcMsInfo)(ent).polarity === polarity); + return idx >= 0 ? idx : 0; +}; +class MultiFocus { + constructor(props) { + const { + W, + H, + clickUiTargetAct, + selectUiSweepAct, + scrollUiWheelAct, + ticEntities, + graphIndex, + uiSt + } = props; + this.graphIndex = graphIndex; + this.uiSt = uiSt; + this.ticEntities = ticEntities; + this.jcampIdx = 0; + this.isShowAllCurves = false; + this.rootKlass = `.${_list_graph.LIST_ROOT_SVG_GRAPH.MULTI}`; + this.brushClass = `.${_list_graph.LIST_BRUSH_SVG_GRAPH.MULTI}`; + this.margin = { + t: 5, + b: 40, + l: 60, + r: 5 + }; + this.w = W - this.margin.l - this.margin.r; + this.h = H - this.margin.t - this.margin.b; + this.clickUiTargetAct = clickUiTargetAct; + this.selectUiSweepAct = selectUiSweepAct; + this.scrollUiWheelAct = scrollUiWheelAct; + this.brush = d3.brush(); + this.brushX = d3.brushX(); + this.axis = null; + this.path = null; + this.grid = null; + this.tags = null; + this.data = []; + this.otherLineData = []; + this.pathColor = 'steelblue'; + this.tTrEndPts = null; + this.root = null; + this.svg = null; + this.axisCall = (0, _init.InitAxisCall)(5); + this.pathCall = null; + this.tip = null; + this.factor = 0.125; + this.currentExtent = null; + this.shouldUpdate = {}; + this.layout = _list_layout.LIST_LAYOUT.LC_MS; + this.getShouldUpdate = this.getShouldUpdate.bind(this); + this.resetShouldUpdate = this.resetShouldUpdate.bind(this); + this.setTip = this.setTip.bind(this); + this.setDataParams = this.setDataParams.bind(this); + this.create = this.create.bind(this); + this.update = this.update.bind(this); + this.setConfig = this.setConfig.bind(this); + this.drawLine = this.drawLine.bind(this); + this.drawOtherLines = this.drawOtherLines.bind(this); + this.drawGrid = this.drawGrid.bind(this); + this.drawPageMarker = this.drawPageMarker.bind(this); + this.onClickTarget = this.onClickTarget.bind(this); + this.isFirefox = typeof InstallTrigger !== 'undefined'; + } + colorForPolarity = polarity => { + if (polarity === 'negative') return '#2980b9'; + if (polarity === 'neutral') return '#2980b9'; + return '#d35400'; + }; + getTicLegendEntries = (ticEntities, hplcMsSt) => { + const available = hplcMsSt?.tic?.available; + const selected = hplcMsSt?.tic?.polarity; + const baseEntries = [{ + key: 'positive', + label: 'PLUS' + }, { + key: 'negative', + label: 'MINUS' + }, { + key: 'neutral', + label: 'NEUTRAL' + }]; + let entries = []; + if (available && typeof available === 'object') { + const filtered = baseEntries.filter(entry => available[entry.key]); + if (filtered.length > 0) entries = filtered; + } + if (entries.length === 0 && Array.isArray(ticEntities)) { + const found = new Set(); + ticEntities.forEach(entry => { + const { + polarity + } = (0, _extractEntityLCMS.getLcMsInfo)(entry); + if (polarity) found.add(polarity); + }); + if (found.size > 0) { + entries = baseEntries.filter(entry => found.has(entry.key)); + } + } + if (entries.length === 0) entries = baseEntries; + return entries.map(entry => ({ + ...entry, + color: this.colorForPolarity(entry.key), + selected: entry.key === selected + })); + }; + drawTicLegend = (ticEntities, hplcMsSt) => { + if (!this.root) return; + this.root.selectAll('.tic-legend').remove(); + const entries = this.getTicLegendEntries(ticEntities, hplcMsSt); + if (entries.length === 0) return; + if (entries.length <= 1) return; + const lineLength = 14; + const lineGap = 6; + const legendX = this.w - 8 - lineLength; + const legendY = 10; + const rowHeight = 14; + const legend = this.root.append('g').attr('class', 'tic-legend'); + entries.forEach((entry, idx) => { + const row = legend.append('g').attr('transform', `translate(${legendX}, ${legendY + idx * rowHeight})`); + const opacity = entry.selected ? 1 : 0.35; + row.append('line').attr('x1', 0).attr('x2', lineLength).attr('y1', 0).attr('y2', 0).attr('stroke', entry.color).attr('stroke-width', entry.selected ? 2 : 1).attr('stroke-opacity', opacity).attr('stroke-linecap', 'round'); + row.append('text').attr('x', -lineGap).attr('y', 0).attr('dy', '0.32em').attr('text-anchor', 'end').attr('font-family', 'Helvetica').style('font-size', '11px').style('fill', entry.color).style('opacity', opacity).text(entry.label); + }); + }; + getShouldUpdate() { + const { + prevXt, + prevYt, + prevLySt, + prevTePt, + prevData + } = this.shouldUpdate; + const { + xt, + yt + } = (0, _compass.TfRescale)(this); + const sameXY = xt(1.1) === prevXt && prevYt === yt(1.1); + const sameLySt = prevLySt === this.layout; + const sameTePt = prevTePt === this.tTrEndPts.length; + const sameData = prevData === this.data.length; + this.shouldUpdate = Object.assign({}, this.shouldUpdate, { + sameXY, + sameLySt, + // eslint-disable-line + sameTePt, + sameData // eslint-disable-line + }); + } + resetShouldUpdate() { + const { + xt, + yt + } = (0, _compass.TfRescale)(this); + const prevXt = xt(1.1); + const prevYt = yt(1.1); + const prevTePt = this.tTrEndPts.length; + const prevData = this.data.length; + const prevLySt = this.layout; + this.shouldUpdate = Object.assign({}, this.shouldUpdate, { + prevXt, + prevYt, + prevLySt, + // eslint-disable-line + prevTePt, + prevData // eslint-disable-line + }); + } + setTip() { + this.tip = (0, _init.InitTip)(); + this.root.call(this.tip); + } + setDataParams(tTrEndPts, layout, jcampIdx = 0) { + this.data = []; + this.otherLineData = []; + const ticEntities = Array.isArray(this.ticEntities) ? this.ticEntities : []; + ticEntities.forEach((entry, idx) => { + const { + topic, + feature + } = entry; + const { + polarity = 'neutral' + } = (0, _extractEntityLCMS.getLcMsInfo)(entry); + const fixedColor = this.colorForPolarity(polarity); + if (!feature || !topic) return; + const currData = (0, _chem.convertTopic)(topic, layout, feature, 0); + if (idx === jcampIdx) { + this.data = currData; + this.pathColor = fixedColor; + } else { + this.otherLineData.push({ + data: currData, + polarity, + color: fixedColor, + idx + }); + } + }); + this.tTrEndPts = tTrEndPts; + if (layout) { + this.layout = layout; + } + this.jcampIdx = jcampIdx; + this.xOnlyBrush = this.layout === _list_layout.LIST_LAYOUT.LC_MS; + } + updatePathCall(xt, yt) { + this.pathCall = d3.line().x(d => xt(d.x)).y(d => yt(d.y)); + } + setConfig(sweepExtentSt) { + // Domain Calculate + let { + xExtent, + yExtent + } = sweepExtentSt || { + xExtent: false, + yExtent: false + }; + let allData = null; + if (!xExtent || !yExtent) { + allData = [...this.data]; + if (this.otherLineData) { + this.otherLineData.forEach(lineData => { + allData = [...allData, ...lineData.data]; + }); + } + } + if (!xExtent) { + const xes = d3.extent(allData, d => d.x).sort((a, b) => a - b); + xExtent = { + xL: xes[0], + xU: xes[1] + }; + } + if (!yExtent) { + const btm = d3.min(allData, d => d.y); + const top = d3.max(allData, d => d.y); + const height = top - btm; + yExtent = { + yL: btm - this.factor * height, + yU: top + this.factor * height + }; + } + this.scales.x.domain([xExtent.xL, xExtent.xU]); + this.scales.y.domain([yExtent.yL, yExtent.yU]); + + // rescale for zoom + const { + xt, + yt + } = (0, _compass.TfRescale)(this); + + // Axis Call + this.axisCall.x.scale(xt); + this.axisCall.y.scale(yt); + this.currentExtent = { + xExtent, + yExtent + }; + } + drawLine() { + if (!this.path) return; + const { + xt, + yt + } = (0, _compass.TfRescale)(this); + this.updatePathCall(xt, yt); + this.path.attr('d', this.pathCall(this.data)); + this.path.style('stroke', this.pathColor); + if (this.layout === _list_layout.LIST_LAYOUT.AIF) { + this.path.attr('marker-mid', 'url(#arrow-left)'); + } + } + drawOtherLines(layout) { + d3.selectAll('.line-clip-compare').remove(); + if (!this.otherLineData) return null; + const { + xt, + yt + } = (0, _compass.TfRescale)(this); + this.updatePathCall(xt, yt); + this.otherLineData.forEach((entry, idx) => { + const { + data, + color: pathColor + } = entry; + const path = (0, _mount.MountComparePath)(this, pathColor, idx, 0.4); + path.attr('d', this.pathCall(data)); + if (this.layout === _list_layout.LIST_LAYOUT.AIF && this.isShowAllCurves === true) { + path.attr('marker-mid', 'url(#arrow-left)'); + } + }); + return null; + } + drawGrid() { + const { + sameXY + } = this.shouldUpdate; + if (sameXY || !this.grid || !this.axisCall) return; + if (this.grid.x && this.axisCall.x) { + this.grid.x.call(this.axisCall.x.tickSize(-this.h, 0, 0)).selectAll('line').attr('stroke', '#ddd').attr('stroke-opacity', 0.6).attr('fill', 'none'); + } + if (this.grid.y && this.axisCall.y) { + this.grid.y.call(this.axisCall.y.tickSize(-this.w, 0, 0)).selectAll('line').attr('stroke', '#ddd').attr('stroke-opacity', 0.6).attr('fill', 'none'); + } + } + drawPageMarker(hplcMsSt) { + if (!this.root) return; + const currentPageValue = hplcMsSt?.tic?.currentPageValue; + const hasValue = Number.isFinite(currentPageValue); + const marker = this.root.selectAll('.tic-page-marker').data(hasValue ? [currentPageValue] : []); + marker.exit().remove(); + if (!hasValue) return; + const { + xt + } = (0, _compass.TfRescale)(this); + marker.enter().append('line').attr('class', 'tic-page-marker').attr('stroke', 'red').attr('stroke-width', 1).attr('stroke-opacity', 0.8).merge(marker).attr('x1', xt(currentPageValue)).attr('x2', xt(currentPageValue)).attr('y1', 0).attr('y2', this.h); + } + onClickTarget(event, data) { + event.stopPropagation(); + event.preventDefault(); + const onPeak = true; + this.clickUiTargetAct(data, onPeak, false, this.jcampIdx, false, 'lcms_tic'); + } + create({ + ticEntities, + curveSt, + hplcMsSt, + tTrEndPts, + layoutSt, + sweepExtentSt, + isUiNoBrushSt + }) { + this.svg = d3.select(this.rootKlass).select(this.brushClass); + (0, _mount.MountMainFrame)(this, 'focus'); + (0, _mount.MountClip)(this); + const { + curveIdx, + isShowAllCurve + } = curveSt; + const selectedPolarity = hplcMsSt?.tic?.polarity; + const jcampIdx = pickTicIndex(ticEntities, curveIdx, selectedPolarity); + this.isShowAllCurves = isShowAllCurve; + this.ticEntities = Array.isArray(ticEntities) ? ticEntities : []; + this.root = d3.select(this.rootKlass).selectAll('.focus-main'); + this.scales = (0, _init.InitScale)(this, false); + this.setTip(); + this.setDataParams(tTrEndPts, layoutSt, jcampIdx); + (0, _compass.MountCompass)(this); + this.axis = (0, _mount.MountAxis)(this); + this.path = (0, _mount.MountPath)(this, this.pathColor); + this.grid = (0, _mount.MountGrid)(this); + this.tags = (0, _mount.MountTags)(this); + (0, _mount.MountAxisLabelX)(this); + (0, _mount.MountAxisLabelY)(this); + if (this.data && this.data.length > 0) { + this.setConfig(sweepExtentSt); + this.drawLine(); + this.drawGrid(); + this.drawPageMarker(hplcMsSt); + this.drawOtherLines(layoutSt); + this.drawTicLegend(ticEntities, hplcMsSt); + } + (0, _brush.default)(this, false, isUiNoBrushSt, this.brushClass); + this.resetShouldUpdate(); + } + update({ + curveSt, + tTrEndPts, + layoutSt, + ticEntities, + hplcMsSt, + sweepExtentSt, + isUiNoBrushSt, + uiSt + }) { + this.svg = d3.select(this.rootKlass).select(this.brushClass); + this.root = d3.select(this.rootKlass).selectAll('.focus-main'); + this.scales = (0, _init.InitScale)(this, false); + const { + curveIdx, + isShowAllCurve + } = curveSt; + const selectedPolarity = hplcMsSt?.tic?.polarity; + const jcampIdx = pickTicIndex(ticEntities, curveIdx, selectedPolarity); + this.isShowAllCurves = isShowAllCurve; + this.ticEntities = Array.isArray(ticEntities) ? ticEntities : []; + this.uiSt = uiSt; + this.setDataParams(tTrEndPts, layoutSt, jcampIdx); + if (this.data && this.data.length > 0) { + this.setConfig(sweepExtentSt); + this.getShouldUpdate(); + this.drawLine(); + this.drawGrid(); + this.drawPageMarker(hplcMsSt); + this.drawOtherLines(layoutSt); + this.drawTicLegend(ticEntities, hplcMsSt); + } + (0, _brush.default)(this, false, isUiNoBrushSt, this.brushClass); + this.resetShouldUpdate(); + } +} +var _default = exports.default = MultiFocus; \ No newline at end of file diff --git a/dist/components/d3_line_rect/rect_focus.js b/dist/components/d3_line_rect/rect_focus.js new file mode 100644 index 00000000..c4a2a7d5 --- /dev/null +++ b/dist/components/d3_line_rect/rect_focus.js @@ -0,0 +1,246 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var _init = require("../../helpers/init"); +var _brush = _interopRequireDefault(require("../../helpers/brush")); +var _mount = require("../../helpers/mount"); +var _compass = require("../../helpers/compass"); +var _converter = require("../../helpers/converter"); +var _list_layout = require("../../constants/list_layout"); +var _list_graph = require("../../constants/list_graph"); +const d3 = require('d3'); +class RectFocus { + constructor(props) { + const { + W, + H, + clickUiTargetAct, + selectUiSweepAct, + scrollUiWheelAct, + graphIndex, + uiSt + } = props; + this.graphIndex = graphIndex; + this.uiSt = uiSt; + this.rootKlass = `.${_list_graph.LIST_ROOT_SVG_GRAPH.RECT}`; + this.brushClass = `.${_list_graph.LIST_BRUSH_SVG_GRAPH.RECT}`; + this.margin = { + t: 5, + b: 40, + l: 60, + r: 5 + }; + this.w = W - this.margin.l - this.margin.r; + this.h = H - this.margin.t - this.margin.b; + this.clickUiTargetAct = clickUiTargetAct; + this.selectUiSweepAct = selectUiSweepAct; + this.scrollUiWheelAct = scrollUiWheelAct; + this.brush = d3.brush(); + this.brushX = d3.brushX(); + this.axis = null; + this.thresLine = null; + this.grid = null; + this.ref = null; + this.ccPattern = null; + this.data = []; + this.dataPks = []; + this.tTrEndPts = null; + this.tSfPeaks = null; + this.root = null; + this.svg = null; + this.bars = null; + this.scales = (0, _init.InitScale)(this, false); + this.axisCall = (0, _init.InitAxisCall)(5); + this.pathCall = null; + this.tip = null; + this.factor = 0.125; + this.currentExtent = null; + this.layout = _list_layout.LIST_LAYOUT.MS; + this.setTip = this.setTip.bind(this); + this.setDataParams = this.setDataParams.bind(this); + this.create = this.create.bind(this); + this.update = this.update.bind(this); + this.setConfig = this.setConfig.bind(this); + this.drawBar = this.drawBar.bind(this); + this.drawThres = this.drawThres.bind(this); + this.drawGrid = this.drawGrid.bind(this); + this.mergedPeaks = this.mergedPeaks.bind(this); + this.isFirefox = typeof InstallTrigger !== 'undefined'; + } + setTip() { + this.tip = (0, _init.InitTip)(); + this.root.call(this.tip); + } + setDataParams(data, peaks, tTrEndPts, tSfPeaks, layout = null) { + this.data = [...data]; + this.dataPks = [...peaks]; + this.tTrEndPts = tTrEndPts; + this.tSfPeaks = tSfPeaks; + if (layout) { + this.layout = layout; + } + this.xOnlyBrush = this.layout === _list_layout.LIST_LAYOUT.LC_MS; + const xExtent = d3.extent(this.data, d => d.x); + this.scales.x.domain(xExtent); + } + updatePathCall(xt, yt) { + this.pathCall = d3.line().x(d => xt(d.x)).y(d => yt(d.y)); + } + setConfig(sweepExtentSt) { + // Domain Calculate + let { + xExtent, + yExtent + } = sweepExtentSt || { + xExtent: false, + yExtent: false + }; + if (!xExtent || !yExtent) { + const xes = d3.extent(this.data, d => d.x).sort((a, b) => a - b); + const padding = (xes[1] - xes[0]) * 0.005; + xExtent = { + xL: Math.max(0, xes[0] - padding), + xU: xes[1] + padding + }; + const btm = 0; // MS baseline is always 0. + const top = d3.max(this.data, d => d.y); + const height = top - btm; + yExtent = { + yL: btm - this.factor * height, + yU: top + this.factor * height + }; + } + this.scales.x.domain([xExtent.xL, xExtent.xU]); + this.scales.y.domain([yExtent.yL, yExtent.yU]); + + // rescale for zoom + const { + xt, + yt + } = (0, _compass.TfRescale)(this); + + // Axis Call + this.axisCall.x.scale(xt); + this.axisCall.y.scale(yt); + this.currentExtent = { + xExtent, + yExtent + }; + } + posHeight(gnd, val) { + const h = gnd - val; + return h >= 0 ? h : 0; + } + barColor(y, yRef) { + return y >= yRef ? 'steelblue' : '#aaa'; + } + drawBar() { + if (!this.bars) { + return; + } + const { + xt, + yt + } = (0, _compass.TfRescale)(this); + this.updatePathCall(xt, yt); + const yRef = this.tTrEndPts[0].y; + const bars = this.bars.selectAll('rect').data(this.data); + bars.exit().attr('class', 'exit').remove(); + const gnd = yt(0); + bars.enter().append('rect').attr('class', 'enter-bar').attr('width', 1.5).merge(bars).attr('fill', d => this.barColor(d.y, yRef)).attr('height', d => this.posHeight(gnd, yt(d.y))).attr('id', d => `mpp${Math.round(1000 * d.x)}`).attr('transform', d => `translate(${xt(d.x)}, ${yt(d.y)})`).on('mouseover', (event, d) => { + d3.select(`#mpp${Math.round(1000 * d.x)}`).attr('stroke-opacity', '1.0'); + d3.select(`#bpt${Math.round(1000 * d.x)}`).style('fill', 'blue'); + const tipParams = { + d, + layout: this.layout + }; + this.tip.show(tipParams, event.target); + }).on('mouseout', (event, d) => { + d3.select(`#mpp${Math.round(1000 * d.x)}`).attr('stroke-opacity', '1.0'); + d3.select(`#bpt${Math.round(1000 * d.x)}`).style('fill', 'red'); + const tipParams = { + d, + layout: this.layout + }; + this.tip.hide(tipParams, event.target); + }); + } + drawThres() { + if (this.thresLine && this.tTrEndPts.length > 0) { + this.thresLine.attr('d', this.pathCall(this.tTrEndPts)); + this.thresLine.attr('visibility', 'visible'); + } else if (this.thresLine) { + this.thresLine.attr('visibility', 'hidden'); + } + } + drawGrid() { + if (!this.grid) return; + this.grid.x.call(this.axisCall.x.tickSize(-this.h, 0, 0)).selectAll('line').attr('stroke', '#ddd').attr('stroke-opacity', 0.6).attr('fill', 'none'); + this.grid.y.call(this.axisCall.y.tickSize(-this.w, 0, 0)).selectAll('line').attr('stroke', '#ddd').attr('stroke-opacity', 0.6).attr('fill', 'none'); + } + mergedPeaks(editPeakSt) { + if (!editPeakSt) return this.dataPks; + this.dataPks = (0, _converter.PksEdit)(this.dataPks, editPeakSt); + return this.dataPks; + } + create({ + filterSeed, + filterPeak, + tTrEndPts, + tSfPeaks, + layoutSt, + sweepExtentSt, + isUiAddIntgSt, + isUiNoBrushSt + }) { + this.svg = d3.select(this.brushClass); + (0, _mount.MountMainFrame)(this, 'focus'); + (0, _mount.MountClip)(this); + this.root = d3.select(this.rootKlass).selectAll('.focus-main'); + this.setTip(); + this.setDataParams(filterSeed, filterPeak, tTrEndPts, tSfPeaks, layoutSt); + (0, _compass.MountCompass)(this); + this.axis = (0, _mount.MountAxis)(this); + [this.thresLine] = (0, _mount.MountThresLine)(this, 'green'); + this.grid = (0, _mount.MountGrid)(this); + this.ref = (0, _mount.MountRef)(this); + this.bars = (0, _mount.MountBars)(this); + (0, _mount.MountAxisLabelX)(this); + (0, _mount.MountAxisLabelY)(this); + (0, _mount.MountGraphLabel)(this); + if (this.data && this.data.length > 0) { + this.setConfig(sweepExtentSt); + this.drawBar(); + this.drawThres(); + this.drawGrid(); + } + (0, _brush.default)(this, isUiAddIntgSt, isUiNoBrushSt, this.brushClass); + } + update({ + filterSeed, + filterPeak, + tTrEndPts, + tSfPeaks, + layoutSt, + sweepExtentSt, + isUiAddIntgSt, + isUiNoBrushSt, + uiSt + }) { + this.root = d3.select(this.rootKlass).selectAll('.focus-main'); + this.setDataParams(filterSeed, filterPeak, tTrEndPts, tSfPeaks, layoutSt); + this.uiSt = uiSt; + if (this.data && this.data.length > 0) { + this.setConfig(sweepExtentSt); + this.drawBar(); + this.drawThres(); + this.drawGrid(); + } + (0, _brush.default)(this, isUiAddIntgSt, isUiNoBrushSt, this.brushClass); + } +} +var _default = exports.default = RectFocus; \ No newline at end of file diff --git a/dist/components/d3_multi/index.js b/dist/components/d3_multi/index.js new file mode 100644 index 00000000..c2cb8d0a --- /dev/null +++ b/dist/components/d3_multi/index.js @@ -0,0 +1,339 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var _react = _interopRequireDefault(require("react")); +var _reactRedux = require("react-redux"); +var _redux = require("redux"); +var _propTypes = _interopRequireDefault(require("prop-types")); +var _chem = require("../../helpers/chem"); +var _format = _interopRequireDefault(require("../../helpers/format")); +var _manager = require("../../actions/manager"); +var _ui = require("../../actions/ui"); +var _list_ui = require("../../constants/list_ui"); +var _list_graph = require("../../constants/list_graph"); +var _cyclic_voltammetry = require("../../actions/cyclic_voltammetry"); +var _multi_focus = _interopRequireDefault(require("./multi_focus")); +var _draw = require("../common/draw"); +var _jsxRuntime = require("react/jsx-runtime"); +/* eslint-disable no-mixed-operators, react/require-default-props, +react/no-unused-prop-types */ + +const W = Math.round(window.innerWidth * 0.90 * 9 / 12); // ROI +const H = Math.round(window.innerHeight * 0.90 * 0.85); // ROI + +class ViewerMulti extends _react.default.Component { + constructor(props) { + super(props); + const { + entities, + clickUiTargetAct, + selectUiSweepAct, + scrollUiWheelAct + } = this.props; + this.rootKlass = `.${_list_graph.LIST_ROOT_SVG_GRAPH.LINE}`; + this.containerRef = /*#__PURE__*/_react.default.createRef(); + this.currentSize = null; + this.resizeObserver = null; + this.focus = new _multi_focus.default({ + W, + H, + entities, + clickUiTargetAct, + selectUiSweepAct, + scrollUiWheelAct + }); + this.normChange = this.normChange.bind(this); + this.handleResize = this.handleResize.bind(this); + } + componentDidMount() { + this.renderChart(this.props, true); + this.setupResizeObserver(); + } + componentDidUpdate(prevProps) { + const { + entities, + curveSt, + seed, + peak, + cLabel, + xLabel, + yLabel, + tTrEndPts, + tSfPeaks, + editPeakSt, + layoutSt, + sweepExtentSt, + isUiNoBrushSt, + isHidden, + cyclicvoltaSt, + integrationSt, + mtplySt, + axesUnitsSt, + uiSt + } = this.props; + this.normChange(prevProps); + if (_format.default.isCyclicVoltaLayout(layoutSt)) { + this.handleResize(); + } + const hasRelevantChange = prevProps.entities !== entities || prevProps.curveSt !== curveSt || prevProps.seed !== seed || prevProps.peak !== peak || prevProps.tTrEndPts !== tTrEndPts || prevProps.tSfPeaks !== tSfPeaks || prevProps.editPeakSt !== editPeakSt || prevProps.layoutSt !== layoutSt || prevProps.sweepExtentSt !== sweepExtentSt || prevProps.isUiNoBrushSt !== isUiNoBrushSt || prevProps.isHidden !== isHidden || prevProps.cyclicvoltaSt !== cyclicvoltaSt || prevProps.integrationSt !== integrationSt || prevProps.mtplySt !== mtplySt || prevProps.axesUnitsSt !== axesUnitsSt || prevProps.uiSt !== uiSt || prevProps.cLabel !== cLabel || prevProps.xLabel !== xLabel || prevProps.yLabel !== yLabel; + if (!hasRelevantChange) return; + const { + xxLabel, + yyLabel + } = this.resolveAxisLabels(this.props); + this.focus.update({ + entities, + curveSt, + filterSeed: seed, + filterPeak: peak, + tTrEndPts, + tSfPeaks, + editPeakSt, + layoutSt, + sweepExtentSt, + isUiNoBrushSt, + cyclicvoltaSt, + integrationSt, + mtplySt, + uiSt + }); + (0, _draw.drawLabel)(this.rootKlass, cLabel, xxLabel, yyLabel); + (0, _draw.drawDisplay)(this.rootKlass, isHidden); + (0, _draw.drawArrowOnCurve)(this.rootKlass, isHidden || !_format.default.isAIFLayout(layoutSt)); + } + componentWillUnmount() { + (0, _draw.drawDestroy)(this.rootKlass); + this.teardownResizeObserver(); + } + handleResize() { + const { + layoutSt + } = this.props; + if (!_format.default.isCyclicVoltaLayout(layoutSt)) return; + const size = this.getContainerSize(); + if (!size) return; + if (!this.currentSize || size.width !== this.currentSize.width || size.height !== this.currentSize.height) { + this.renderChart(this.props, false); + } + } + getContainerSize() { + const node = this.containerRef.current; + if (!node) return null; + const { + clientWidth, + clientHeight + } = node; + if (!clientWidth || !clientHeight) return null; + return { + width: clientWidth, + height: clientHeight + }; + } + getTargetSize(layoutSt) { + if (_format.default.isCyclicVoltaLayout(layoutSt)) { + const size = this.getContainerSize(); + if (size) return size; + } + return { + width: W, + height: H + }; + } + setupResizeObserver() { + if (typeof ResizeObserver === 'undefined') return; + if (!this.containerRef.current || this.resizeObserver) return; + this.resizeObserver = new ResizeObserver(this.handleResize); + this.resizeObserver.observe(this.containerRef.current); + } + teardownResizeObserver() { + if (this.resizeObserver) { + this.resizeObserver.disconnect(); + this.resizeObserver = null; + } + } + resolveAxisLabels(props) { + const { + curveSt, + xLabel, + yLabel, + axesUnitsSt, + cyclicvoltaSt + } = props; + let xxLabel = xLabel; + let yyLabel = yLabel; + if (axesUnitsSt) { + const { + curveIdx + } = curveSt; + const { + axes + } = axesUnitsSt; + const selectedAxes = axes[curveIdx] || { + xUnit: '', + yUnit: '' + }; + const { + xUnit, + yUnit + } = selectedAxes; + xxLabel = xUnit === '' ? xLabel : xUnit; + yyLabel = yUnit === '' ? yLabel : yUnit; + } + if (cyclicvoltaSt && cyclicvoltaSt.useCurrentDensity) { + const areaUnit = cyclicvoltaSt.areaUnit || 'cm²'; + const baseUnit = /mA/i.test(String(yyLabel)) ? 'mA' : 'A'; + yyLabel = `Current density in ${baseUnit}/${areaUnit}`; + } + return { + xxLabel, + yyLabel + }; + } + normChange(prevProps) { + const { + feature, + resetAllAct, + entities + } = this.props; + const oldEntities = prevProps.entities; + if (oldEntities !== entities) { + resetAllAct(feature); + } + } + renderChart(props, shouldReset) { + const { + curveSt, + seed, + peak, + cLabel, + feature, + tTrEndPts, + tSfPeaks, + editPeakSt, + layoutSt, + sweepExtentSt, + isUiNoBrushSt, + isHidden, + resetAllAct, + cyclicvoltaSt, + integrationSt, + mtplySt, + uiSt, + entities, + clickUiTargetAct, + selectUiSweepAct, + scrollUiWheelAct + } = props; + const size = this.getTargetSize(layoutSt); + this.currentSize = size; + (0, _draw.drawDestroy)(this.rootKlass); + if (shouldReset) { + resetAllAct(feature); + } + const { + xxLabel, + yyLabel + } = this.resolveAxisLabels(props); + this.focus = new _multi_focus.default({ + W: size.width, + H: size.height, + entities, + clickUiTargetAct, + selectUiSweepAct, + scrollUiWheelAct + }); + (0, _draw.drawMain)(this.rootKlass, size.width, size.height); + this.focus.create({ + curveSt, + filterSeed: seed, + filterPeak: peak, + tTrEndPts, + tSfPeaks, + editPeakSt, + layoutSt, + sweepExtentSt, + isUiNoBrushSt, + cyclicvoltaSt, + integrationSt, + mtplySt, + uiSt + }); + (0, _draw.drawLabel)(this.rootKlass, cLabel, xxLabel, yyLabel); + (0, _draw.drawDisplay)(this.rootKlass, isHidden); + (0, _draw.drawArrowOnCurve)(this.rootKlass, isHidden || !_format.default.isAIFLayout(layoutSt)); + } + render() { + const { + layoutSt + } = this.props; + const isCyclicVolta = _format.default.isCyclicVoltaLayout(layoutSt); + return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", { + className: _list_graph.LIST_ROOT_SVG_GRAPH.LINE, + ref: this.containerRef, + style: isCyclicVolta ? { + height: '100%' + } : undefined + }); + } +} +const mapStateToProps = (state, props) => ({ + curveSt: state.curve, + uiSt: state.ui, + seed: (0, _chem.Topic2Seed)(state, props), + peak: (0, _chem.Feature2Peak)(state, props), + tTrEndPts: (0, _chem.ToThresEndPts)(state, props), + tSfPeaks: (0, _chem.ToShiftPeaks)(state, props), + editPeakSt: state.editPeak.present, + layoutSt: state.layout, + sweepExtentSt: state.ui.sweepExtent, + isUiNoBrushSt: _list_ui.LIST_NON_BRUSH_TYPES.indexOf(state.ui.sweepType) < 0, + cyclicvoltaSt: state.cyclicvolta, + maxminPeakSt: (0, _chem.Feature2MaxMinPeak)(state, props), + integrationSt: state.integration.present, + mtplySt: state.multiplicity.present, + axesUnitsSt: state.axesUnits +}); +const mapDispatchToProps = dispatch => (0, _redux.bindActionCreators)({ + resetAllAct: _manager.resetAll, + clickUiTargetAct: _ui.clickUiTarget, + selectUiSweepAct: _ui.selectUiSweep, + scrollUiWheelAct: _ui.scrollUiWheel, + addNewCylicVoltaPairPeakAct: _cyclic_voltammetry.addNewCylicVoltaPairPeak, + addCylicVoltaMaxPeakAct: _cyclic_voltammetry.addCylicVoltaMaxPeak, + addCylicVoltaMinPeakAct: _cyclic_voltammetry.addCylicVoltaMinPeak +}, dispatch); +ViewerMulti.propTypes = { + curveSt: _propTypes.default.object.isRequired, + uiSt: _propTypes.default.object.isRequired, + entities: _propTypes.default.array.isRequired, + seed: _propTypes.default.array.isRequired, + peak: _propTypes.default.array.isRequired, + xLabel: _propTypes.default.string.isRequired, + yLabel: _propTypes.default.string.isRequired, + feature: _propTypes.default.object.isRequired, + tTrEndPts: _propTypes.default.array.isRequired, + tSfPeaks: _propTypes.default.array.isRequired, + editPeakSt: _propTypes.default.object.isRequired, + layoutSt: _propTypes.default.string.isRequired, + integrationSt: _propTypes.default.object.isRequired, + mtplySt: _propTypes.default.object.isRequired, + sweepExtentSt: _propTypes.default.object.isRequired, + isUiNoBrushSt: _propTypes.default.bool.isRequired, + resetAllAct: _propTypes.default.func.isRequired, + clickUiTargetAct: _propTypes.default.func.isRequired, + selectUiSweepAct: _propTypes.default.func.isRequired, + scrollUiWheelAct: _propTypes.default.func.isRequired, + isHidden: _propTypes.default.bool, + cyclicvoltaSt: _propTypes.default.object.isRequired, + maxminPeakSt: _propTypes.default.object, + addNewCylicVoltaPairPeakAct: _propTypes.default.func.isRequired, + addCylicVoltaMaxPeakAct: _propTypes.default.func.isRequired, + addCylicVoltaMinPeakAct: _propTypes.default.func.isRequired, + cLabel: _propTypes.default.string, + axesUnitsSt: _propTypes.default.object.isRequired +}; +var _default = exports.default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(ViewerMulti); \ No newline at end of file diff --git a/dist/components/d3_multi/multi_focus.js b/dist/components/d3_multi/multi_focus.js new file mode 100644 index 00000000..89970ea4 --- /dev/null +++ b/dist/components/d3_multi/multi_focus.js @@ -0,0 +1,964 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var _init = require("../../helpers/init"); +var _mount = require("../../helpers/mount"); +var _converter = require("../../helpers/converter"); +var _brush = _interopRequireDefault(require("../../helpers/brush")); +var _compass = require("../../helpers/compass"); +var _list_layout = require("../../constants/list_layout"); +var _format = _interopRequireDefault(require("../../helpers/format")); +var _chem = require("../../helpers/chem"); +var _cfg = _interopRequireDefault(require("../../helpers/cfg")); +var _focus = require("../../helpers/focus"); +var _integration = require("../../helpers/integration"); +var _multiplicity_calc = require("../../helpers/multiplicity_calc"); +var _calc = require("../../helpers/calc"); +/* eslint-disable no-unused-vars, prefer-object-spread, no-mixed-operators, +no-unneeded-ternary, arrow-body-style, max-len */ + +const d3 = require('d3'); +class MultiFocus { + constructor(props) { + const { + W, + H, + clickUiTargetAct, + selectUiSweepAct, + scrollUiWheelAct, + entities, + uiSt + } = props; + this.uiSt = uiSt; + this.graphIndex = uiSt?.zoom?.graphIndex; + this.entities = entities; + this.jcampIdx = 0; + this.isShowAllCurves = false; + this.rootKlass = '.d3Line'; + this.margin = { + t: 5, + b: 40, + l: 60, + r: 5 + }; + this.w = W - this.margin.l - this.margin.r; + this.h = H - this.margin.t - this.margin.b; + this.clickUiTargetAct = clickUiTargetAct; + this.selectUiSweepAct = selectUiSweepAct; + this.scrollUiWheelAct = scrollUiWheelAct; + this.brush = d3.brush(); + this.brushX = d3.brushX(); + this.axis = null; + this.path = null; + this.thresLineUp = null; + this.thresLineDw = null; + this.grid = null; + this.tags = null; + this.ref = null; + this.data = []; + this.otherLineData = []; + this.pathColor = 'steelblue'; + this.dataPks = []; + this.dataPeckers = []; + this.tTrEndPts = null; + this.tSfPeaks = null; + this.root = null; + this.svg = null; + this.axisCall = (0, _init.InitAxisCall)(5); + this.pathCall = null; + this.tip = null; + this.factor = 0.125; + this.currentExtent = null; + this.shouldUpdate = {}; + // this.freq = false; + this.layout = _list_layout.LIST_LAYOUT.CYCLIC_VOLTAMMETRY; + this.getShouldUpdate = this.getShouldUpdate.bind(this); + this.resetShouldUpdate = this.resetShouldUpdate.bind(this); + this.setTip = this.setTip.bind(this); + this.setDataParams = this.setDataParams.bind(this); + this.create = this.create.bind(this); + this.update = this.update.bind(this); + this.setConfig = this.setConfig.bind(this); + this.drawLine = this.drawLine.bind(this); + this.drawThres = this.drawThres.bind(this); + this.drawOtherLines = this.drawOtherLines.bind(this); + this.drawGrid = this.drawGrid.bind(this); + this.drawPeaks = this.drawPeaks.bind(this); + this.drawRef = this.drawRef.bind(this); + this.drawInteg = this.drawInteg.bind(this); + this.drawMtply = this.drawMtply.bind(this); + this.drawAUC = this.drawAUC.bind(this); + this.onClickTarget = this.onClickTarget.bind(this); + this.mergedPeaks = this.mergedPeaks.bind(this); + this.setDataPecker = this.setDataPecker.bind(this); + this.drawPeckers = this.drawPeckers.bind(this); + this.onClickPecker = this.onClickPecker.bind(this); + this.isFirefox = typeof InstallTrigger !== 'undefined'; + this.cyclicvoltaSt = null; + this.yTransformFactor = 1.0; + } + getShouldUpdate(nextEpSt) { + const { + prevXt, + prevYt, + prevEpSt, + prevLySt, + prevTePt, + prevDtPk, + prevSfPk, + prevData, + prevYFactor + } = this.shouldUpdate; + const { + xt, + yt + } = (0, _compass.TfRescale)(this); + const sameXY = xt(1.1) === prevXt && prevYt === yt(1.1); + const sameEpSt = prevEpSt === nextEpSt; + const sameLySt = prevLySt === this.layout; + const sameTePt = prevTePt === this.tTrEndPts.length; + const sameDtPk = prevDtPk === this.dataPks.length; + const sameSfPk = prevSfPk === this.tSfPeaks || Array.isArray(prevSfPk) && Array.isArray(this.tSfPeaks) && prevSfPk.length === this.tSfPeaks.length && prevSfPk.every((peak, idx) => peak === this.tSfPeaks[idx]); + const sameData = prevData === this.data.length; + const sameYFactor = prevYFactor === this.yTransformFactor; + this.shouldUpdate = Object.assign({}, this.shouldUpdate, { + sameXY, + sameEpSt, + sameLySt, + // eslint-disable-line + sameTePt, + sameDtPk, + sameSfPk, + sameData, + sameYFactor // eslint-disable-line + }); + } + resetShouldUpdate(prevEpSt) { + const { + xt, + yt + } = (0, _compass.TfRescale)(this); + const prevXt = xt(1.1); + const prevYt = yt(1.1); + const prevTePt = this.tTrEndPts.length; + const prevDtPk = this.dataPks.length; + const prevSfPk = this.tSfPeaks; + const prevData = this.data.length; + const prevLySt = this.layout; + const prevYFactor = this.yTransformFactor; + this.shouldUpdate = Object.assign({}, this.shouldUpdate, { + prevXt, + prevYt, + prevEpSt, + prevLySt, + // eslint-disable-line + prevTePt, + prevDtPk, + prevSfPk, + prevData, + prevYFactor // eslint-disable-line + }); + } + setTip() { + this.tip = (0, _init.InitTip)(); + this.root.call(this.tip); + } + computeYTransformFactor(layout, cyclicvoltaSt, feature) { + let factor = 1.0; + if (layout === _list_layout.LIST_LAYOUT.CYCLIC_VOLTAMMETRY && cyclicvoltaSt && cyclicvoltaSt.useCurrentDensity) { + const rawArea = (cyclicvoltaSt.areaValue === '' ? 1.0 : cyclicvoltaSt.areaValue) || 1.0; + const areaUnit = cyclicvoltaSt.areaUnit || 'cm²'; + const safeArea = rawArea > 0 ? rawArea : 1.0; + const areaInCm2 = areaUnit === 'mm²' ? safeArea / 100.0 : safeArea; + factor = 1.0 / areaInCm2; + const baseY = feature && feature.yUnit ? String(feature.yUnit) : 'A'; + if (/mA/i.test(baseY)) { + factor *= 1000.0; + } + if (areaUnit === 'mm²') { + factor /= 100.0; + } + } + return factor; + } + transformYValue(y) { + return y * this.yTransformFactor; + } + setDataParams(filterSeed, peaks, tTrEndPts, tSfPeaks, layout, cyclicvoltaSt, jcampIdx = 0) { + this.data = []; + this.otherLineData = []; + let filterSubLayoutValue = null; + const currFeature = this.entities && this.entities[0] ? this.entities[0].feature : null; + this.yTransformFactor = this.computeYTransformFactor(layout, cyclicvoltaSt, currFeature); + this.entities.forEach((entry, idx) => { + const { + topic, + feature, + color + } = entry; + const offset = (0, _chem.GetCyclicVoltaPreviousShift)(cyclicvoltaSt, jcampIdx); + let currData = (0, _chem.convertTopic)(topic, layout, feature, offset); + if (idx === jcampIdx) { + if (!_format.default.isCyclicVoltaLayout(layout)) { + currData = filterSeed; + } + this.data = [...currData]; + this.pathColor = color; + filterSubLayoutValue = _format.default.isSECLayout(layout) ? feature.xUnit : feature.yUnit; + } else { + const filterValue = _format.default.isSECLayout(layout) ? feature.xUnit : feature.yUnit; + this.otherLineData.push({ + data: currData, + color, + filterSublayout: filterValue + }); + } + }); + if (_format.default.isSECLayout(layout) || _format.default.isGCLayout(layout)) { + this.otherLineData = this.otherLineData.filter(data => { + return data.filterSublayout === filterSubLayoutValue; + }); + } + if (this.jcampIdx === jcampIdx) { + this.dataPks = [...peaks]; + } else { + this.dataPks = peaks; + } + this.tTrEndPts = tTrEndPts; + this.tSfPeaks = tSfPeaks; + this.layout = layout; + this.cyclicvoltaSt = cyclicvoltaSt; + this.jcampIdx = jcampIdx; + } + updatePathCall(xt, yt) { + this.pathCall = d3.line().x(d => xt(d.x)).y(d => yt(d.y)); + } + setYAxisTickFormat() { + const f = this.yTransformFactor || 1; + const format = d3.format('.2n'); + this.axisCall.y.tickFormat(v => format(v * f)); + } + setConfig(sweepExtentSt) { + // Domain Calculate + let { + xExtent, + yExtent + } = sweepExtentSt || { + xExtent: false, + yExtent: false + }; + if (!xExtent || !yExtent) { + let allData = [...this.data]; + if (this.otherLineData) { + this.otherLineData.forEach(lineData => { + allData = [...allData, ...lineData.data]; + }); + } + const xes = d3.extent(allData, d => d.x).sort((a, b) => a - b); + xExtent = { + xL: xes[0], + xU: xes[1] + }; + const btm = d3.min(allData, d => d.y); + const top = d3.max(allData, d => d.y); + const height = top - btm; + yExtent = { + yL: btm - this.factor * height, + yU: top + this.factor * height + }; + } + this.scales.x.domain([xExtent.xL, xExtent.xU]); + this.scales.y.domain([yExtent.yL, yExtent.yU]); + + // rescale for zoom + const { + xt, + yt + } = (0, _compass.TfRescale)(this); + + // Axis Call + this.axisCall.x.scale(xt); + this.axisCall.y.scale(yt); + if (this.layout === _list_layout.LIST_LAYOUT.CYCLIC_VOLTAMMETRY) { + this.setYAxisTickFormat(); + } + this.currentExtent = { + xExtent, + yExtent + }; + } + drawLine() { + const { + xt, + yt + } = (0, _compass.TfRescale)(this); + this.updatePathCall(xt, yt); + this.path.attr('d', this.pathCall(this.data)); + this.path.style('stroke', this.pathColor); + if (this.layout === _list_layout.LIST_LAYOUT.AIF) { + this.path.attr('marker-mid', 'url(#arrow-left)'); + } else { + this.path.attr('marker-mid', null); + } + } + drawThres() { + if (this.tTrEndPts.length > 0) { + this.thresLineUp.attr('d', this.pathCall(this.tTrEndPts)); + this.thresLineUp.attr('visibility', 'visible'); + const [left, right] = this.tTrEndPts; + const dwMirrorEndPts = [Object.assign({}, left, { + y: -left.y + }), Object.assign({}, right, { + y: -right.y + })]; + this.thresLineDw.attr('d', this.pathCall(dwMirrorEndPts)); + this.thresLineDw.attr('visibility', 'visible'); + } else { + this.thresLineUp.attr('visibility', 'hidden'); + this.thresLineDw.attr('visibility', 'hidden'); + } + } + drawOtherLines(layout) { + d3.selectAll('.line-clip-compare').remove(); + if (!this.otherLineData) return null; + this.otherLineData.forEach((entry, idx) => { + const { + data, + color + } = entry; + const pathColor = color ? color : _format.default.mutiEntitiesColors(idx); + const path = (0, _mount.MountComparePath)(this, pathColor, idx, 0.4); + path.attr('d', this.pathCall(data)); + if (this.layout === _list_layout.LIST_LAYOUT.AIF && this.isShowAllCurves === true) { + path.attr('marker-mid', 'url(#arrow-left)'); + } else { + path.attr('marker-mid', null); + } + }); + return null; + } + drawGrid() { + const { + sameXY, + sameYFactor + } = this.shouldUpdate; + if (sameXY && sameYFactor) return; + this.grid.x.call(this.axisCall.x.tickSize(-this.h, 0, 0)).selectAll('line').attr('stroke', '#ddd').attr('stroke-opacity', 0.6).attr('fill', 'none'); + this.grid.y.call(this.axisCall.y.tickSize(-this.w, 0, 0)).selectAll('line').attr('stroke', '#ddd').attr('stroke-opacity', 0.6).attr('fill', 'none'); + } + onClickTarget(event, data) { + event.stopPropagation(); + event.preventDefault(); + const onPeak = true; + if (this.layout === _list_layout.LIST_LAYOUT.CYCLIC_VOLTAMMETRY) { + const { + spectraList + } = this.cyclicvoltaSt; + const spectra = spectraList[this.jcampIdx]; + const voltammetryPeakIdx = spectra.selectedIdx; + this.clickUiTargetAct(data, onPeak, voltammetryPeakIdx, this.jcampIdx); + } else { + this.clickUiTargetAct(data, onPeak, false, this.jcampIdx); + } + } + onClickPecker(event, data) { + event.stopPropagation(); + event.preventDefault(); + const onPecker = true; + const { + spectraList + } = this.cyclicvoltaSt; + const spectra = spectraList[this.jcampIdx]; + const voltammetryPeakIdx = spectra.selectedIdx; + this.clickUiTargetAct(data, false, voltammetryPeakIdx, this.jcampIdx, onPecker); + } + mergedPeaks(editPeakSt) { + if (!editPeakSt) return this.dataPks; + const { + spectraList + } = this.cyclicvoltaSt; + const spectra = spectraList[this.jcampIdx]; + if (spectra) { + this.dataPks = []; + this.dataPks = (0, _converter.PksEdit)(this.dataPks, editPeakSt, spectra.list); + } else { + const newEditPeaks = Object.assign({}, editPeakSt, { + selectedIdx: this.jcampIdx + }); + this.dataPks = (0, _converter.PksEdit)(this.dataPks, newEditPeaks, []); + } + return this.dataPks; + } + setDataPecker() { + const { + spectraList + } = this.cyclicvoltaSt; + const spectra = spectraList[this.jcampIdx]; + if (spectra) { + this.dataPeckers = (0, _converter.PeckersEdit)(spectra.list); + } + return this.dataPeckers; + } + drawAUC(stack) { + const { + xt, + yt + } = (0, _compass.TfRescale)(this); + const auc = this.tags.aucPath.selectAll('path').data(stack); + auc.exit().attr('class', 'exit').remove(); + const integCurve = border => { + const { + xL, + xU + } = border; + const ps = this.data.filter(d => d.x > xL && d.x < xU); + if (!ps[0]) return null; + const point1 = ps[0]; + const point2 = ps[ps.length - 1]; + const slope = (0, _calc.calcSlope)(point1.x, point1.y, point2.x, point2.y); + let lastDY = point1.y; + return d3.area().x(d => xt(d.x)).y0((d, index) => { + if (index > 0) { + const lastD = ps[index - 1]; + const y = slope * (d.x - lastD.x) + lastDY; + lastDY = y; + return yt(y); + } + return yt(0); + }).y1(d => yt(d.y))(ps); + }; + auc.enter().append('path').attr('class', 'auc').attr('fill', 'red').attr('stroke', 'none').attr('fill-opacity', 0.2).attr('stroke-width', 2).merge(auc).attr('d', d => integCurve(d)).attr('id', d => `auc${(0, _focus.itgIdTag)(d)}`).on('mouseover', (event, d) => { + d3.select(`#auc${(0, _focus.itgIdTag)(d)}`).attr('stroke', 'blue'); + d3.select(`#auc${(0, _focus.itgIdTag)(d)}`).attr('stroke', 'blue'); + d3.select(`#auc${(0, _focus.itgIdTag)(d)}`).style('fill', 'blue'); + }).on('mouseout', (event, d) => { + d3.select(`#auc${(0, _focus.itgIdTag)(d)}`).attr('stroke', 'none'); + d3.select(`#auc${(0, _focus.itgIdTag)(d)}`).style('fill', 'red'); + d3.select(`#auc${(0, _focus.itgIdTag)(d)}`).style('fill-opacity', 0.2); + }).on('click', (event, d) => this.onClickTarget(event, d)); + } + drawPeaks(editPeakSt) { + const { + sameXY, + sameEpSt, + sameDtPk, + sameSfPk + } = this.shouldUpdate; + if (!_format.default.isCyclicVoltaLayout(this.layout) && sameXY && sameEpSt && sameDtPk && sameSfPk) return; + + // rescale for zoom + const { + xt, + yt + } = (0, _compass.TfRescale)(this); + const dPks = this.mergedPeaks(editPeakSt); + const { + spectraList + } = this.cyclicvoltaSt; + const spectra = spectraList[this.jcampIdx]; + let indexOfCVRefPeaks = []; + if (spectra) { + const { + shift, + hasRefPeak + } = spectra; + const { + ref + } = shift; + if (ref && hasRefPeak) { + const { + min, + max + } = ref; + indexOfCVRefPeaks = dPks.map((p, index) => { + return p === min || p === max ? -1 : index; + }); + } + } + const mpp = this.tags.pPath.selectAll('path').data(dPks); + mpp.exit().attr('class', 'exit').remove(); + const linePath = [{ + x: -0.5, + y: 10 + }, { + x: -0.5, + y: -20 + }, { + x: 0.5, + y: -20 + }, { + x: 0.5, + y: 10 + }]; + const lineSymbol = d3.line().x(d => d.x).y(d => d.y)(linePath); + const lineRefPath = [{ + x: -0.5, + y: 10 + }, { + x: -4, + y: -20 + }, { + x: 4, + y: -20 + }, { + x: 0.5, + y: 10 + }]; + const lineSymbolRef = d3.line().x(d => d.x).y(d => d.y)(lineRefPath); + mpp.enter().append('path').attr('d', (_, index) => { + return indexOfCVRefPeaks[index] === -1 ? lineSymbolRef : lineSymbol; + }).attr('class', 'enter-peak').attr('fill', (_, index) => { + return indexOfCVRefPeaks[index] === -1 ? 'blue' : 'red'; + }).attr('stroke', 'pink').attr('stroke-width', 3).attr('stroke-opacity', 0.0).merge(mpp).attr('id', d => `mpp${Math.round(1000 * d.x)}`).attr('transform', d => `translate(${xt(d.x)}, ${yt(d.y)})`).on('mouseover', (event, d) => { + d3.select(`#mpp${Math.round(1000 * d.x)}`).attr('stroke-opacity', '1.0'); + d3.select(`#bpt${Math.round(1000 * d.x)}`).style('fill', 'blue'); + const tipParams = { + d, + layout: this.layout, + yFactor: this.yTransformFactor + }; + this.tip.show(tipParams, event.target); + }).on('mouseout', (event, d) => { + d3.select(`#mpp${Math.round(1000 * d.x)}`).attr('stroke-opacity', '0.0'); + d3.select(`#bpt${Math.round(1000 * d.x)}`).style('fill', 'red'); + const tipParams = { + d, + layout: this.layout, + yFactor: this.yTransformFactor + }; + this.tip.hide(tipParams, event.target); + }).on('click', (event, d) => this.onClickTarget(event, d)); + const ignoreRef = _format.default.isHplcUvVisLayout(this.layout); + if (ignoreRef) { + const bpTxt = this.tags.bpTxt.selectAll('text').data(dPks); + bpTxt.exit().attr('class', 'exit').remove(); + bpTxt.enter().append('text').attr('class', 'peak-text').attr('font-family', 'Helvetica').style('font-size', '12px').attr('fill', '#228B22').style('text-anchor', 'middle').merge(bpTxt).attr('id', d => `mpp${Math.round(1000 * d.x)}`).text(d => d.x.toFixed(2)).attr('transform', d => `translate(${xt(d.x)}, ${yt(d.y) - 25})`).on('click', (event, d) => this.onClickTarget(event, d)); + } + mpp.attr('fill', (_, index) => { + return indexOfCVRefPeaks[index] === -1 ? 'blue' : 'red'; + }); + mpp.attr('d', (_, index) => { + return indexOfCVRefPeaks[index] === -1 ? lineSymbolRef : lineSymbol; + }); + } + drawPeckers() { + const { + sameXY, + sameEpSt, + sameDtPk, + sameSfPk + } = this.shouldUpdate; + if (!_format.default.isCyclicVoltaLayout(this.layout) && sameXY && sameEpSt && sameDtPk && sameSfPk) return; + + // rescale for zoom + const { + xt, + yt + } = (0, _compass.TfRescale)(this); + const dPks = this.setDataPecker(); + const mpp = this.tags.peckerPath.selectAll('path').data(dPks); + mpp.exit().attr('class', 'exit').remove(); + const linePath = [{ + x: -0.5, + y: 10 + }, { + x: -0.5, + y: -20 + }, { + x: 0.5, + y: -20 + }, { + x: 0.5, + y: 10 + }]; + const lineSymbol = d3.line().x(d => d.x).y(d => d.y)(linePath); + mpp.enter().append('path').attr('d', lineSymbol).attr('class', 'enter-peak').attr('fill', '#228B22').attr('stroke', 'pink').attr('stroke-width', 3).attr('stroke-opacity', 0.0).merge(mpp).attr('id', d => `mpp${Math.round(1000 * d.x)}`).attr('transform', d => `translate(${xt(d.x)}, ${yt(d.y)})`).on('mouseover', (event, d) => { + d3.select(`#mpp${Math.round(1000 * d.x)}`).attr('stroke-opacity', '1.0'); + d3.select(`#bpt${Math.round(1000 * d.x)}`).style('fill', 'blue'); + const tipParams = { + d, + layout: this.layout, + yFactor: this.yTransformFactor + }; + this.tip.show(tipParams, event.target); + }).on('mouseout', (event, d) => { + d3.select(`#mpp${Math.round(1000 * d.x)}`).attr('stroke-opacity', '0.0'); + d3.select(`#bpt${Math.round(1000 * d.x)}`).style('fill', '#228B22'); + const tipParams = { + d, + layout: this.layout, + yFactor: this.yTransformFactor + }; + this.tip.hide(tipParams, event.target); + }).on('click', (event, d) => this.onClickPecker(event, d)); + } + drawInteg(integrationState) { + const { + sameXY, + sameLySt, + sameItSt, + sameData + } = this.shouldUpdate; + if (sameXY && sameLySt && sameItSt && sameData) return; + const { + integrations + } = integrationState; + const selectedIntegration = integrations[this.jcampIdx]; + if (selectedIntegration === false || selectedIntegration === undefined) { + const itgs = []; + const igbp = this.tags.igbPath.selectAll('path').data(itgs); + igbp.exit().attr('class', 'exit').remove(); + const igcp = this.tags.igcPath.selectAll('path').data(itgs); + igcp.exit().attr('class', 'exit').remove(); + const igtp = this.tags.igtPath.selectAll('text').data(itgs); + igtp.exit().attr('class', 'exit').remove(); + return; + } + const { + stack, + refArea, + refFactor, + shift + } = selectedIntegration; + const isDisable = _cfg.default.btnCmdIntg(this.layout); + const ignoreRef = _format.default.isHplcUvVisLayout(this.layout); + const itgs = isDisable ? [] : stack; + const igbp = this.tags.igbPath.selectAll('path').data(itgs); + igbp.exit().attr('class', 'exit').remove(); + const igcp = this.tags.igcPath.selectAll('path').data(itgs); + igcp.exit().attr('class', 'exit').remove(); + const igtp = this.tags.igtPath.selectAll('text').data(itgs); + igtp.exit().attr('class', 'exit').remove(); + if (itgs.length === 0 || isDisable) { + // remove drawn area under curve + const auc = this.tags.aucPath.selectAll('path').data(stack); + auc.exit().attr('class', 'exit').remove(); + auc.merge(auc); + return; + } + if (ignoreRef) { + this.drawAUC(stack); + } else { + // rescale for zoom + const { + xt + } = (0, _compass.TfRescale)(this); + const dh = 50; + const integBar = data => d3.line()([[xt(data.xL - shift), dh], [xt(data.xL - shift), dh - 10], [xt(data.xL - shift), dh - 5], [xt(data.xU - shift), dh - 5], [xt(data.xU - shift), dh - 10], [xt(data.xU - shift), dh]]); + igbp.enter().append('path').attr('class', 'igbp').attr('fill', 'none').attr('stroke', '#228B22').attr('stroke-width', 2).merge(igbp).attr('id', d => `igbp${(0, _focus.itgIdTag)(d)}`).attr('d', d => integBar(d)).on('mouseover', (event, d) => { + d3.select(`#igbp${(0, _focus.itgIdTag)(d)}`).attr('stroke', 'blue'); + d3.select(`#igbc${(0, _focus.itgIdTag)(d)}`).attr('stroke', 'blue'); + d3.select(`#igtp${(0, _focus.itgIdTag)(d)}`).style('fill', 'blue'); + }).on('mouseout', (event, d) => { + d3.select(`#igbp${(0, _focus.itgIdTag)(d)}`).attr('stroke', '#228B22'); + d3.select(`#igbc${(0, _focus.itgIdTag)(d)}`).attr('stroke', '#228B22'); + d3.select(`#igtp${(0, _focus.itgIdTag)(d)}`).style('fill', '#228B22'); + }).on('click', (event, d) => this.onClickTarget(event, d)); + const integCurve = border => { + const { + xL, + xU + } = border; + const [nXL, nXU] = [xL - shift, xU - shift]; + const ps = this.data.filter(d => d.x > nXL && d.x < nXU); + const kMax = this.data[this.data.length - 1].k; + if (!ps[0]) return null; + const kRef = ps[0].k; + if (!this.reverseXAxis(this.layout)) { + return d3.line().x(d => xt(d.x)).y(d => 100 - (kRef - d.k) * 400 / kMax)(ps); + } + return d3.line().x(d => xt(d.x)).y(d => 300 - (d.k - kRef) * 400 / kMax)(ps); + }; + igcp.enter().append('path').attr('class', 'igcp').attr('fill', 'none').attr('stroke', '#228B22').attr('stroke-width', 2).merge(igcp).attr('id', d => `igbc${(0, _focus.itgIdTag)(d)}`).attr('d', d => integCurve(d)).on('mouseover', (event, d) => { + d3.select(`#igbp${(0, _focus.itgIdTag)(d)}`).attr('stroke', 'blue'); + d3.select(`#igbc${(0, _focus.itgIdTag)(d)}`).attr('stroke', 'blue'); + d3.select(`#igtp${(0, _focus.itgIdTag)(d)}`).style('fill', 'blue'); + }).on('mouseout', (event, d) => { + d3.select(`#igbp${(0, _focus.itgIdTag)(d)}`).attr('stroke', '#228B22'); + d3.select(`#igbc${(0, _focus.itgIdTag)(d)}`).attr('stroke', '#228B22'); + d3.select(`#igtp${(0, _focus.itgIdTag)(d)}`).style('fill', '#228B22'); + }).on('click', (event, d) => this.onClickTarget(event, d)); + igtp.enter().append('text').attr('class', 'igtp').attr('font-family', 'Helvetica').style('font-size', '12px').attr('fill', '#228B22').style('text-anchor', 'middle').merge(igtp).attr('id', d => `igtp${(0, _focus.itgIdTag)(d)}`).text(d => (0, _integration.calcArea)(d, refArea, refFactor, ignoreRef)).attr('transform', d => `translate(${xt((d.xL + d.xU) / 2 - shift)}, ${dh - 12})`).on('mouseover', (event, d) => { + d3.select(`#igbp${(0, _focus.itgIdTag)(d)}`).attr('stroke', 'blue'); + d3.select(`#igbc${(0, _focus.itgIdTag)(d)}`).attr('stroke', 'blue'); + d3.select(`#igtp${(0, _focus.itgIdTag)(d)}`).style('fill', 'blue'); + }).on('mouseout', (event, d) => { + d3.select(`#igbp${(0, _focus.itgIdTag)(d)}`).attr('stroke', '#228B22'); + d3.select(`#igbc${(0, _focus.itgIdTag)(d)}`).attr('stroke', '#228B22'); + d3.select(`#igtp${(0, _focus.itgIdTag)(d)}`).style('fill', '#228B22'); + }).on('click', (event, d) => this.onClickTarget(event, d)); + } + } + drawMtply(mtplySt) { + const { + sameXY, + sameLySt, + sameMySt + } = this.shouldUpdate; + if (sameXY && sameLySt && sameMySt) return; + const { + multiplicities + } = mtplySt; + const selectedMulti = multiplicities[this.jcampIdx]; + if (selectedMulti === false || selectedMulti === undefined) { + const mpys = []; + const mpyb = this.tags.mpybPath.selectAll('path').data(mpys); + mpyb.exit().attr('class', 'exit').remove(); + const mpyt1 = this.tags.mpyt1Path.selectAll('text').data(mpys); + mpyt1.exit().attr('class', 'exit').remove(); + const mpyt2 = this.tags.mpyt2Path.selectAll('text').data(mpys); + mpyt2.exit().attr('class', 'exit').remove(); + let mPeaks = mpys.map(m => { + const { + peaks, + xExtent + } = m; + return peaks.map(p => Object.assign({}, p, { + xExtent + })); + }); + mPeaks = [].concat(...mPeaks); + const mpyp = this.tags.mpypPath.selectAll('path').data(mPeaks); + mpyp.exit().attr('class', 'exit').remove(); + return; + } + const { + stack = [], + smExtext = false, + shift = 0 + } = selectedMulti || {}; + const hasValidExtent = extent => extent && Number.isFinite(extent.xL) && Number.isFinite(extent.xU); + const mpys = stack.filter(m => hasValidExtent(m?.xExtent)); + const isDisable = _cfg.default.btnCmdMpy(this.layout); + if (mpys.length === 0 || isDisable) return; + const activeExtent = hasValidExtent(smExtext) ? smExtext : mpys[0].xExtent; + // rescale for zoom + const { + xt + } = (0, _compass.TfRescale)(this); + const mpyb = this.tags.mpybPath.selectAll('path').data(mpys); + mpyb.exit().attr('class', 'exit').remove(); + const mpyt1 = this.tags.mpyt1Path.selectAll('text').data(mpys); + mpyt1.exit().attr('class', 'exit').remove(); + const mpyt2 = this.tags.mpyt2Path.selectAll('text').data(mpys); + mpyt2.exit().attr('class', 'exit').remove(); + let mPeaks = mpys.map(m => { + const { + peaks, + xExtent + } = m; + const safePeaks = Array.isArray(peaks) ? peaks : []; + return safePeaks.filter(p => Number.isFinite(p?.x) && Number.isFinite(p?.y)).map(p => Object.assign({}, p, { + xExtent + })); + }); + mPeaks = [].concat(...mPeaks); + const mpyp = this.tags.mpypPath.selectAll('path').data(mPeaks); + mpyp.exit().attr('class', 'exit').remove(); + const height = this.h; + const dh = Math.abs(0.06 * height); + const mpyBar = data => d3.line()([[xt(data.xExtent.xL - shift), height - dh], [xt(data.xExtent.xL - shift), height - dh - 10], [xt(data.xExtent.xL - shift), height - dh - 5], [xt(data.xExtent.xU - shift), height - dh - 5], [xt(data.xExtent.xU - shift), height - dh - 10], [xt(data.xExtent.xU - shift), height - dh]]); + const mpyColor = d => { + const { + xL, + xU + } = d.xExtent; + return activeExtent.xL === xL && activeExtent.xU === xU ? 'purple' : '#DA70D6'; + }; + mpyb.enter().append('path').attr('class', 'mpyb').attr('fill', 'none').attr('stroke-width', 2).merge(mpyb).attr('stroke', d => mpyColor(d)).attr('id', d => `mpyb${(0, _focus.mpyIdTag)(d)}`).attr('d', d => mpyBar(d)).on('mouseover', (event, d) => { + d3.selectAll(`#mpyb${(0, _focus.mpyIdTag)(d)}`).attr('stroke', 'blue'); + d3.selectAll(`#mpyt1${(0, _focus.mpyIdTag)(d)}`).style('fill', 'blue'); + d3.selectAll(`#mpyt2${(0, _focus.mpyIdTag)(d)}`).style('fill', 'blue'); + d3.selectAll(`#mpyp${(0, _focus.mpyIdTag)(d)}`).attr('stroke', 'blue'); + }).on('mouseout', (event, d) => { + const dColor = mpyColor(d); + d3.selectAll(`#mpyb${(0, _focus.mpyIdTag)(d)}`).attr('stroke', dColor); + d3.selectAll(`#mpyt1${(0, _focus.mpyIdTag)(d)}`).style('fill', dColor); + d3.selectAll(`#mpyt2${(0, _focus.mpyIdTag)(d)}`).style('fill', dColor); + d3.selectAll(`#mpyp${(0, _focus.mpyIdTag)(d)}`).attr('stroke', dColor); + }).on('click', (event, d) => this.onClickTarget(event, d)); + mpyt1.enter().append('text').attr('class', 'mpyt1').attr('font-family', 'Helvetica').style('font-size', '12px').style('text-anchor', 'middle').merge(mpyt1).attr('fill', d => mpyColor(d)).attr('id', d => `mpyt1${(0, _focus.mpyIdTag)(d)}`).text(d => `${(0, _multiplicity_calc.calcMpyCenter)(d.peaks, shift, d.mpyType).toFixed(3)}`).attr('transform', d => `translate(${xt((d.xExtent.xL + d.xExtent.xU) / 2 - shift)}, ${height - dh + 12})`).on('mouseover', (event, d) => { + d3.selectAll(`#mpyb${(0, _focus.mpyIdTag)(d)}`).attr('stroke', 'blue'); + d3.selectAll(`#mpyt1${(0, _focus.mpyIdTag)(d)}`).style('fill', 'blue'); + d3.selectAll(`#mpyt2${(0, _focus.mpyIdTag)(d)}`).style('fill', 'blue'); + d3.selectAll(`#mpyp${(0, _focus.mpyIdTag)(d)}`).attr('stroke', 'blue'); + }).on('mouseout', (event, d) => { + const dColor = mpyColor(d); + d3.selectAll(`#mpyb${(0, _focus.mpyIdTag)(d)}`).attr('stroke', dColor); + d3.selectAll(`#mpyt1${(0, _focus.mpyIdTag)(d)}`).style('fill', dColor); + d3.selectAll(`#mpyt2${(0, _focus.mpyIdTag)(d)}`).style('fill', dColor); + d3.selectAll(`#mpyp${(0, _focus.mpyIdTag)(d)}`).attr('stroke', dColor); + }).on('click', (event, d) => this.onClickTarget(event, d)); + mpyt2.enter().append('text').attr('class', 'mpyt2').attr('font-family', 'Helvetica').style('font-size', '12px').style('text-anchor', 'middle').merge(mpyt2).attr('fill', d => mpyColor(d)).attr('id', d => `mpyt2${(0, _focus.mpyIdTag)(d)}`).text(d => `(${d.mpyType})`).attr('transform', d => `translate(${xt((d.xExtent.xL + d.xExtent.xU) / 2 - shift)}, ${height - dh + 24})`).on('mouseover', (event, d) => { + d3.selectAll(`#mpyb${(0, _focus.mpyIdTag)(d)}`).attr('stroke', 'blue'); + d3.selectAll(`#mpyt1${(0, _focus.mpyIdTag)(d)}`).style('fill', 'blue'); + d3.selectAll(`#mpyt2${(0, _focus.mpyIdTag)(d)}`).style('fill', 'blue'); + d3.selectAll(`#mpyp${(0, _focus.mpyIdTag)(d)}`).attr('stroke', 'blue'); + }).on('mouseout', (event, d) => { + const dColor = mpyColor(d); + d3.selectAll(`#mpyb${(0, _focus.mpyIdTag)(d)}`).attr('stroke', dColor); + d3.selectAll(`#mpyt1${(0, _focus.mpyIdTag)(d)}`).style('fill', dColor); + d3.selectAll(`#mpyt2${(0, _focus.mpyIdTag)(d)}`).style('fill', dColor); + d3.selectAll(`#mpyp${(0, _focus.mpyIdTag)(d)}`).attr('stroke', dColor); + }).on('click', (event, d) => this.onClickTarget(event, d)); + const mpypH = height - dh; + const mpypPath = pk => [{ + x: xt(pk.x - shift) - 0.5, + y: mpypH - 5 + }, { + x: xt(pk.x - shift) - 0.5, + y: mpypH - 20 + }, { + x: xt(pk.x - shift) + 0.5, + y: mpypH - 20 + }, { + x: xt(pk.x - shift) + 0.5, + y: mpypH - 5 + }]; + // const faktor = layoutSt === LIST_LAYOUT.IR ? -1 : 1; + const lineSymbol = d3.line().x(d => d.x).y(d => d.y); + mpyp.enter().append('path').attr('class', 'mpyp').attr('fill', 'none').merge(mpyp).attr('stroke', d => mpyColor(d)).attr('d', d => lineSymbol(mpypPath(d))).attr('id', d => `mpyp${(0, _focus.mpyIdTag)(d)}`).on('mouseover', (event, d) => { + d3.selectAll(`#mpyb${(0, _focus.mpyIdTag)(d)}`).attr('stroke', 'blue'); + d3.selectAll(`#mpyt1${(0, _focus.mpyIdTag)(d)}`).style('fill', 'blue'); + d3.selectAll(`#mpyt2${(0, _focus.mpyIdTag)(d)}`).style('fill', 'blue'); + d3.selectAll(`#mpyp${(0, _focus.mpyIdTag)(d)}`).attr('stroke', 'blue'); + }).on('mouseout', (event, d) => { + const dColor = mpyColor(d); + d3.selectAll(`#mpyb${(0, _focus.mpyIdTag)(d)}`).attr('stroke', dColor); + d3.selectAll(`#mpyt1${(0, _focus.mpyIdTag)(d)}`).style('fill', dColor); + d3.selectAll(`#mpyt2${(0, _focus.mpyIdTag)(d)}`).style('fill', dColor); + d3.selectAll(`#mpyp${(0, _focus.mpyIdTag)(d)}`).attr('stroke', dColor); + }).on('click', (event, d) => this.onClickTarget(event, d)); + } + drawRef() { + // rescale for zoom + const { + xt, + yt + } = (0, _compass.TfRescale)(this); + const ccp = this.ref.selectAll('path').data(this.tSfPeaks); + ccp.exit().attr('class', 'exit').remove(); + const linePath = [{ + x: -0.5, + y: 10 + }, { + x: -4, + y: -20 + }, { + x: 4, + y: -20 + }, { + x: 0.5, + y: 10 + }]; + const faktor = _format.default.isIrLayout(this.layout) ? -1 : 1; + const lineSymbol = d3.line().x(d => d.x).y(d => faktor * d.y)(linePath); + ccp.enter().append('path').attr('d', lineSymbol).attr('class', 'enter-ref').attr('fill', 'green').attr('fill-opacity', 0.8).merge(ccp).attr('transform', d => `translate(${xt(d.x)}, ${yt(d.y)})`); + } + reverseXAxis(layoutSt) { + return [_list_layout.LIST_LAYOUT.UVVIS, _list_layout.LIST_LAYOUT.HPLC_UVVIS, _list_layout.LIST_LAYOUT.TGA, _list_layout.LIST_LAYOUT.DSC, _list_layout.LIST_LAYOUT.XRD, _list_layout.LIST_LAYOUT.CYCLIC_VOLTAMMETRY, _list_layout.LIST_LAYOUT.CDS, _list_layout.LIST_LAYOUT.SEC, _list_layout.LIST_LAYOUT.GC, _list_layout.LIST_LAYOUT.AIF].indexOf(layoutSt) < 0; + } + create({ + curveSt, + filterSeed, + filterPeak, + tTrEndPts, + tSfPeaks, + editPeakSt, + layoutSt, + sweepExtentSt, + isUiNoBrushSt, + cyclicvoltaSt, + integrationSt, + mtplySt, + uiSt + }) { + this.uiSt = uiSt; + this.graphIndex = uiSt?.zoom?.graphIndex; + this.svg = d3.select(this.rootKlass).select('.d3Svg'); + (0, _mount.MountMainFrame)(this, 'focus'); + (0, _mount.MountClip)(this); + const { + curveIdx, + isShowAllCurve + } = curveSt; + const jcampIdx = curveIdx; + this.isShowAllCurves = isShowAllCurve; + this.root = d3.select(this.rootKlass).selectAll('.focus-main'); + this.scales = (0, _init.InitScale)(this, this.reverseXAxis(layoutSt)); + this.setTip(); + this.setDataParams(filterSeed, filterPeak, tTrEndPts, tSfPeaks, layoutSt, cyclicvoltaSt, jcampIdx); + (0, _compass.MountCompass)(this); + this.axis = (0, _mount.MountAxis)(this); + this.path = (0, _mount.MountPath)(this, this.pathColor); + [this.thresLineUp, this.thresLineDw] = (0, _mount.MountThresLine)(this, 'green'); + this.grid = (0, _mount.MountGrid)(this); + this.tags = (0, _mount.MountTags)(this); + this.ref = (0, _mount.MountRef)(this); + (0, _mount.MountAxisLabelX)(this); + (0, _mount.MountAxisLabelY)(this); + if (this.data && this.data.length > 0) { + this.setConfig(sweepExtentSt); + this.drawLine(); + this.drawThres(); + this.drawGrid(); + this.drawOtherLines(layoutSt); + this.drawPeaks(editPeakSt); + this.drawRef(); + this.drawPeckers(); + this.drawInteg(integrationSt); + this.drawMtply(mtplySt); + } + (0, _brush.default)(this, false, isUiNoBrushSt); + this.resetShouldUpdate(editPeakSt); + } + update({ + entities, + curveSt, + filterSeed, + filterPeak, + tTrEndPts, + tSfPeaks, + editPeakSt, + layoutSt, + sweepExtentSt, + isUiNoBrushSt, + cyclicvoltaSt, + integrationSt, + mtplySt, + uiSt + }) { + this.uiSt = uiSt; + this.root = d3.select(this.rootKlass).selectAll('.focus-main'); + this.scales = (0, _init.InitScale)(this, this.reverseXAxis(layoutSt)); + this.graphIndex = uiSt?.zoom?.graphIndex; + const { + curveIdx, + isShowAllCurve + } = curveSt; + const jcampIdx = curveIdx; + this.isShowAllCurves = isShowAllCurve; + this.entities = entities; + this.setDataParams(filterSeed, filterPeak, tTrEndPts, tSfPeaks, layoutSt, cyclicvoltaSt, jcampIdx); + if (this.data && this.data.length > 0) { + this.setConfig(sweepExtentSt); + this.getShouldUpdate(editPeakSt); + this.drawLine(); + this.drawThres(); + this.drawGrid(); + this.drawOtherLines(layoutSt); + this.drawPeaks(editPeakSt); + this.drawRef(); + this.drawPeckers(); + this.drawInteg(integrationSt); + this.drawMtply(mtplySt); + } + (0, _brush.default)(this, false, isUiNoBrushSt, this.uiSt, this.graphIndex); + this.resetShouldUpdate(editPeakSt); + } +} +var _default = exports.default = MultiFocus; \ No newline at end of file diff --git a/dist/components/d3_rect/index.js b/dist/components/d3_rect/index.js new file mode 100644 index 00000000..8c537de3 --- /dev/null +++ b/dist/components/d3_rect/index.js @@ -0,0 +1,152 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var _react = _interopRequireDefault(require("react")); +var _reactRedux = require("react-redux"); +var _redux = require("redux"); +var _propTypes = _interopRequireDefault(require("prop-types")); +var _chem = require("../../helpers/chem"); +var _manager = require("../../actions/manager"); +var _ui = require("../../actions/ui"); +var _rect_focus = _interopRequireDefault(require("./rect_focus")); +var _draw = require("../common/draw"); +var _list_ui = require("../../constants/list_ui"); +var _jsxRuntime = require("react/jsx-runtime"); +/* eslint-disable no-mixed-operators */ + +const W = Math.round(window.innerWidth * 0.90 * 9 / 12); // ROI +const H = Math.round(window.innerHeight * 0.90 * 0.85); // ROI + +class ViewerRect extends _react.default.Component { + constructor(props) { + super(props); + const { + clickUiTargetAct, + selectUiSweepAct, + scrollUiWheelAct + } = props; + this.rootKlass = '.d3Rect'; + this.focus = new _rect_focus.default({ + W, + H, + clickUiTargetAct, + selectUiSweepAct, + scrollUiWheelAct + }); + this.normChange = this.normChange.bind(this); + } + componentDidMount() { + const { + seed, + peak, + cLabel, + xLabel, + yLabel, + feature, + tTrEndPts, + tSfPeaks, + isHidden, + sweepExtentSt, + isUiAddIntgSt, + isUiNoBrushSt, + resetAllAct + } = this.props; + (0, _draw.drawDestroy)(this.rootKlass); + resetAllAct(feature); + const filterSeed = seed; + const filterPeak = peak; + (0, _draw.drawMain)(this.rootKlass, W, H); + this.focus.create({ + filterSeed, + filterPeak, + tTrEndPts, + tSfPeaks, + sweepExtentSt, + isUiAddIntgSt, + isUiNoBrushSt + }); + (0, _draw.drawLabel)(this.rootKlass, cLabel, xLabel, yLabel); + (0, _draw.drawDisplay)(this.rootKlass, isHidden); + } + componentDidUpdate(prevProps) { + const { + seed, + peak, + tTrEndPts, + tSfPeaks, + isHidden, + sweepExtentSt, + isUiAddIntgSt, + isUiNoBrushSt + } = this.props; + this.normChange(prevProps); + const filterSeed = seed; + const filterPeak = peak; + this.focus.update({ + filterSeed, + filterPeak, + tTrEndPts, + tSfPeaks, + sweepExtentSt, + isUiAddIntgSt, + isUiNoBrushSt + }); + (0, _draw.drawDisplay)(this.rootKlass, isHidden); + } + componentWillUnmount() { + (0, _draw.drawDestroy)(this.rootKlass); + } + normChange(prevProps) { + const { + feature, + resetAllAct + } = this.props; + const oldFeature = prevProps.feature; + if (oldFeature !== feature) { + resetAllAct(feature); + } + } + render() { + return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", { + className: "d3Rect" + }); + } +} +const mapStateToProps = (state, props) => ({ + seed: (0, _chem.Topic2Seed)(state, props), + peak: (0, _chem.Feature2Peak)(state, props), + tTrEndPts: (0, _chem.ToThresEndPts)(state, props), + tSfPeaks: (0, _chem.ToShiftPeaks)(state, props), + sweepExtentSt: state.ui.sweepExtent, + isUiAddIntgSt: state.ui.sweepType === _list_ui.LIST_UI_SWEEP_TYPE.INTEGRATION_ADD, + isUiNoBrushSt: _list_ui.LIST_NON_BRUSH_TYPES.indexOf(state.ui.sweepType) < 0 +}); +const mapDispatchToProps = dispatch => (0, _redux.bindActionCreators)({ + resetAllAct: _manager.resetAll, + clickUiTargetAct: _ui.clickUiTarget, + selectUiSweepAct: _ui.selectUiSweep, + scrollUiWheelAct: _ui.scrollUiWheel +}, dispatch); +ViewerRect.propTypes = { + seed: _propTypes.default.array.isRequired, + peak: _propTypes.default.array.isRequired, + cLabel: _propTypes.default.string.isRequired, + xLabel: _propTypes.default.string.isRequired, + yLabel: _propTypes.default.string.isRequired, + feature: _propTypes.default.object.isRequired, + tTrEndPts: _propTypes.default.array.isRequired, + tSfPeaks: _propTypes.default.array.isRequired, + sweepExtentSt: _propTypes.default.object.isRequired, + isUiAddIntgSt: _propTypes.default.bool.isRequired, + isUiNoBrushSt: _propTypes.default.bool.isRequired, + resetAllAct: _propTypes.default.func.isRequired, + clickUiTargetAct: _propTypes.default.func.isRequired, + selectUiSweepAct: _propTypes.default.func.isRequired, + scrollUiWheelAct: _propTypes.default.func.isRequired, + isHidden: _propTypes.default.bool.isRequired +}; +var _default = exports.default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(ViewerRect); \ No newline at end of file diff --git a/dist/components/d3_rect/rect_focus.js b/dist/components/d3_rect/rect_focus.js new file mode 100644 index 00000000..bc58f31e --- /dev/null +++ b/dist/components/d3_rect/rect_focus.js @@ -0,0 +1,223 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var _init = require("../../helpers/init"); +var _brush = _interopRequireDefault(require("../../helpers/brush")); +var _mount = require("../../helpers/mount"); +var _compass = require("../../helpers/compass"); +var _converter = require("../../helpers/converter"); +var _list_layout = require("../../constants/list_layout"); +const d3 = require('d3'); +class RectFocus { + constructor(props) { + const { + W, + H, + clickUiTargetAct, + selectUiSweepAct, + scrollUiWheelAct + } = props; + this.rootKlass = '.d3Rect'; + this.margin = { + t: 5, + b: 40, + l: 60, + r: 5 + }; + this.w = W - this.margin.l - this.margin.r; + this.h = H - this.margin.t - this.margin.b; + this.clickUiTargetAct = clickUiTargetAct; + this.selectUiSweepAct = selectUiSweepAct; + this.scrollUiWheelAct = scrollUiWheelAct; + this.brush = d3.brush(); + this.axis = null; + this.thresLine = null; + this.grid = null; + this.ref = null; + this.ccPattern = null; + this.data = []; + this.dataPks = []; + this.tTrEndPts = null; + this.tSfPeaks = null; + this.root = null; + this.svg = null; + this.bars = null; + this.scales = (0, _init.InitScale)(this, false); + this.axisCall = (0, _init.InitAxisCall)(5); + this.pathCall = null; + this.tip = null; + this.factor = 0.125; + this.currentExtent = null; + this.layout = _list_layout.LIST_LAYOUT.MS; + this.setTip = this.setTip.bind(this); + this.setDataParams = this.setDataParams.bind(this); + this.create = this.create.bind(this); + this.update = this.update.bind(this); + this.setConfig = this.setConfig.bind(this); + this.drawBar = this.drawBar.bind(this); + this.drawThres = this.drawThres.bind(this); + this.drawGrid = this.drawGrid.bind(this); + this.mergedPeaks = this.mergedPeaks.bind(this); + this.isFirefox = typeof InstallTrigger !== 'undefined'; + } + setTip() { + this.tip = (0, _init.InitTip)(); + this.root.call(this.tip); + } + setDataParams(data, peaks, tTrEndPts, tSfPeaks) { + this.data = [...data]; + this.dataPks = [...peaks]; + this.tTrEndPts = tTrEndPts; + this.tSfPeaks = tSfPeaks; + } + updatePathCall(xt, yt) { + this.pathCall = d3.line().x(d => xt(d.x)).y(d => yt(d.y)); + } + setConfig(sweepExtentSt) { + // Domain Calculate + let { + xExtent, + yExtent + } = sweepExtentSt || { + xExtent: false, + yExtent: false + }; + if (!xExtent || !yExtent) { + const xes = d3.extent(this.data, d => d.x).sort((a, b) => a - b); + xExtent = { + xL: xes[0] - 10, + xU: xes[1] + 10 + }; + const btm = 0; // MS baseline is always 0. + const top = d3.max(this.data, d => d.y); + const height = top - btm; + yExtent = { + yL: btm - this.factor * height, + yU: top + this.factor * height + }; + } + this.scales.x.domain([xExtent.xL, xExtent.xU]); + this.scales.y.domain([yExtent.yL, yExtent.yU]); + + // rescale for zoom + const { + xt, + yt + } = (0, _compass.TfRescale)(this); + + // Axis Call + this.axisCall.x.scale(xt); + this.axisCall.y.scale(yt); + this.currentExtent = { + xExtent, + yExtent + }; + } + posHeight(gnd, val) { + const h = gnd - val; + return h >= 0 ? h : 0; + } + barColor(y, yRef) { + return y >= yRef ? 'steelblue' : '#aaa'; + } + drawBar() { + const { + xt, + yt + } = (0, _compass.TfRescale)(this); + this.updatePathCall(xt, yt); + const yRef = this.tTrEndPts[0].y; + const bars = this.bars.selectAll('rect').data(this.data); + bars.exit().attr('class', 'exit').remove(); + const gnd = yt(0); + bars.enter().append('rect').attr('class', 'enter-bar').attr('width', 1.5).merge(bars).attr('fill', d => this.barColor(d.y, yRef)).attr('height', d => this.posHeight(gnd, yt(d.y))).attr('id', d => `mpp${Math.round(1000 * d.x)}`).attr('transform', d => `translate(${xt(d.x)}, ${yt(d.y)})`).on('mouseover', (event, d) => { + d3.select(`#mpp${Math.round(1000 * d.x)}`).attr('stroke-opacity', '1.0'); + d3.select(`#bpt${Math.round(1000 * d.x)}`).style('fill', 'blue'); + const tipParams = { + d, + layout: this.layout + }; + this.tip.show(tipParams, event.target); + }).on('mouseout', (event, d) => { + d3.select(`#mpp${Math.round(1000 * d.x)}`).attr('stroke-opacity', '1.0'); + d3.select(`#bpt${Math.round(1000 * d.x)}`).style('fill', 'red'); + const tipParams = { + d, + layout: this.layout + }; + this.tip.hide(tipParams, event.target); + }); + } + drawThres() { + if (this.tTrEndPts.length > 0) { + this.thresLine.attr('d', this.pathCall(this.tTrEndPts)); + this.thresLine.attr('visibility', 'visible'); + } else { + this.thresLine.attr('visibility', 'hidden'); + } + } + drawGrid() { + this.grid.x.call(this.axisCall.x.tickSize(-this.h, 0, 0)).selectAll('line').attr('stroke', '#ddd').attr('stroke-opacity', 0.6).attr('fill', 'none'); + this.grid.y.call(this.axisCall.y.tickSize(-this.w, 0, 0)).selectAll('line').attr('stroke', '#ddd').attr('stroke-opacity', 0.6).attr('fill', 'none'); + } + mergedPeaks(editPeakSt) { + if (!editPeakSt) return this.dataPks; + this.dataPks = (0, _converter.PksEdit)(this.dataPks, editPeakSt); + return this.dataPks; + } + create({ + filterSeed, + filterPeak, + tTrEndPts, + tSfPeaks, + sweepExtentSt, + isUiAddIntgSt, + isUiNoBrushSt + }) { + this.svg = d3.select('.d3Svg'); + (0, _mount.MountMainFrame)(this, 'focus'); + (0, _mount.MountClip)(this); + this.root = d3.select(this.rootKlass).selectAll('.focus-main'); + this.setTip(); + this.setDataParams(filterSeed, filterPeak, tTrEndPts, tSfPeaks); + (0, _compass.MountCompass)(this); + this.axis = (0, _mount.MountAxis)(this); + [this.thresLine] = (0, _mount.MountThresLine)(this, 'green'); + this.grid = (0, _mount.MountGrid)(this); + this.ref = (0, _mount.MountRef)(this); + this.bars = (0, _mount.MountBars)(this); + (0, _mount.MountAxisLabelX)(this); + (0, _mount.MountAxisLabelY)(this); + if (this.data && this.data.length > 0) { + this.setConfig(sweepExtentSt); + this.drawBar(); + this.drawThres(); + this.drawGrid(); + } + (0, _brush.default)(this, isUiAddIntgSt, isUiNoBrushSt); + } + update({ + filterSeed, + filterPeak, + tTrEndPts, + tSfPeaks, + sweepExtentSt, + isUiAddIntgSt, + isUiNoBrushSt + }) { + this.root = d3.select(this.rootKlass).selectAll('.focus-main'); + this.setDataParams(filterSeed, filterPeak, tTrEndPts, tSfPeaks); + if (this.data && this.data.length > 0) { + this.setConfig(sweepExtentSt); + this.drawBar(); + this.drawThres(); + this.drawGrid(); + } + (0, _brush.default)(this, isUiAddIntgSt, isUiNoBrushSt); + } +} +var _default = exports.default = RectFocus; \ No newline at end of file diff --git a/dist/components/forecast/comps.js b/dist/components/forecast/comps.js new file mode 100644 index 00000000..263de551 --- /dev/null +++ b/dist/components/forecast/comps.js @@ -0,0 +1,239 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.sectionSvg = exports.sectionInput = exports.notToRenderAnalysis = exports.TxtLabel = exports.StatusIcon = exports.ConfidenceLabel = void 0; +var _react = _interopRequireDefault(require("react")); +var _classnames = _interopRequireDefault(require("classnames")); +var _reactSvgFileZoomPan = _interopRequireDefault(require("@complat/react-svg-file-zoom-pan")); +var _CheckCircleOutline = _interopRequireDefault(require("@mui/icons-material/CheckCircleOutline")); +var _ErrorOutline = _interopRequireDefault(require("@mui/icons-material/ErrorOutline")); +var _HighlightOff = _interopRequireDefault(require("@mui/icons-material/HighlightOff")); +var _HelpOutline = _interopRequireDefault(require("@mui/icons-material/HelpOutline")); +var _Help = _interopRequireDefault(require("@mui/icons-material/Help")); +var _material = require("@mui/material"); +var _CloudOff = _interopRequireDefault(require("@mui/icons-material/CloudOff")); +var _section_loading = _interopRequireDefault(require("./section_loading")); +var _jsxRuntime = require("react/jsx-runtime"); +/* eslint-disable react/function-component-definition, react/destructuring-assignment, +max-len */ + +const titleStyle = { + backgroundColor: '#f5f5f5', + border: '2px solid #e3e3e3', + borderRadius: '10px', + lineHeight: '200px', + marginBottom: 10, + marginTop: 10, + marginLeft: 40, + textAlign: 'center', + width: '70%' +}; +const txtStyle = { + lineHeight: '20px' +}; +const TxtLabel = (classes, label, extClsName = 'txt-label') => /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: (0, _classnames.default)(classes.txtLabel, extClsName), + children: label +}); +exports.TxtLabel = TxtLabel; +const StatusIcon = status => { + switch (status) { + case 'accept': + return /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Tooltip, { + title: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: "txt-sv-tp", + children: "Accept" + }), + placement: "left", + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_CheckCircleOutline.default, { + style: { + color: '#4caf50' + } + }) + }); + case 'warning': + return /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Tooltip, { + title: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: "txt-sv-tp", + children: "Warning" + }), + placement: "left", + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_ErrorOutline.default, { + style: { + color: '#ffc107' + } + }) + }); + case 'reject': + return /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Tooltip, { + title: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: "txt-sv-tp", + children: "Reject" + }), + placement: "left", + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_HighlightOff.default, { + style: { + color: '#e91e63' + } + }) + }); + case 'missing': + return /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Tooltip, { + title: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: "txt-sv-tp", + children: "Missing" + }), + placement: "left", + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_HelpOutline.default, { + style: { + color: '#5d4037' + } + }) + }); + case 'unknown': + return /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Tooltip, { + title: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: "txt-sv-tp", + children: "Not Support" + }), + placement: "left", + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Help.default, { + style: { + color: '#5d4037' + } + }) + }); + default: + return null; + } +}; +exports.StatusIcon = StatusIcon; +const ConfidenceLabel = (classes, confidence, extClsName = 'txt-label') => { + if (!confidence) return /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + children: " - - " + }); + const confidenceDp = parseFloat(Math.round(confidence * 100) / 100).toFixed(2); + return /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: (0, _classnames.default)(classes.txtLabel, extClsName), + children: `${confidenceDp} %` + }); +}; +exports.ConfidenceLabel = ConfidenceLabel; +const sectionInput = (classes, molecule, inputFuncCb) => { + if (!inputFuncCb) return null; + return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", { + className: (0, _classnames.default)(classes.inputRoot), + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Grid, { + container: true, + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Grid, { + item: true, + xs: 6, + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TextField, { + fullWidth: true, + label: TxtLabel(classes, 'Molfile', 'txt-mol-label'), + margin: "normal", + multiline: true, + onChange: inputFuncCb, + rows: "2", + variant: "outlined", + value: molecule + }) + }) + }) + }); +}; +exports.sectionInput = sectionInput; +const SectionRunning = () => /*#__PURE__*/(0, _jsxRuntime.jsx)("div", { + style: titleStyle, + children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("h2", { + style: txtStyle, + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.CircularProgress, { + style: { + color: 'blue', + fontSize: 50 + } + }), /*#__PURE__*/(0, _jsxRuntime.jsx)("br", {}), /*#__PURE__*/(0, _jsxRuntime.jsx)("br", {}), /*#__PURE__*/(0, _jsxRuntime.jsx)("p", { + children: "The server is making predictions..." + })] + }) +}); +const SectionMissMatch = () => /*#__PURE__*/(0, _jsxRuntime.jsx)("div", { + style: titleStyle, + children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("h2", { + style: txtStyle, + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_ErrorOutline.default, { + style: { + color: 'red', + fontSize: 50 + } + }), /*#__PURE__*/(0, _jsxRuntime.jsx)("p", { + className: "txt-predict-fail", + children: "Peak & Element count mismatch!" + }), /*#__PURE__*/(0, _jsxRuntime.jsxs)("p", { + className: "txt-predict-fail", + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("sup", { + children: "1" + }), "H multiplicity count should not be more than the proton group count. Multiplicity must be assigned manulally before predictions."] + }), /*#__PURE__*/(0, _jsxRuntime.jsxs)("p", { + className: "txt-predict-fail", + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("sup", { + children: "13" + }), "C peak count should not be more than the carbon count, and solvent peaks should be excluded."] + })] + }) +}); +const SectionNoService = () => /*#__PURE__*/(0, _jsxRuntime.jsx)("div", { + style: titleStyle, + children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("h2", { + style: txtStyle, + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_CloudOff.default, { + style: { + color: 'red', + fontSize: 50 + } + }), /*#__PURE__*/(0, _jsxRuntime.jsx)("p", { + children: "Service is not available." + }), /*#__PURE__*/(0, _jsxRuntime.jsx)("p", { + children: "Please try it again later." + })] + }) +}); +const SectionUnknown = () => /*#__PURE__*/(0, _jsxRuntime.jsx)("div", { + style: titleStyle, + children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("h2", { + style: txtStyle, + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_HelpOutline.default, { + style: { + color: 'purple', + fontSize: 50 + } + }), /*#__PURE__*/(0, _jsxRuntime.jsx)("p", { + children: "Unknown state." + })] + }) +}); +const notToRenderAnalysis = pds => { + if (pds.running) return /*#__PURE__*/(0, _jsxRuntime.jsx)(SectionRunning, {}); + if (!pds.outline || !pds.outline.code) return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {}); + if (pds.outline.code >= 500) return /*#__PURE__*/(0, _jsxRuntime.jsx)(SectionNoService, {}); + if (pds.outline.code === 400) return /*#__PURE__*/(0, _jsxRuntime.jsx)(SectionMissMatch, {}); + if (pds.outline.code >= 300) return /*#__PURE__*/(0, _jsxRuntime.jsx)(SectionUnknown, {}); + return false; +}; +exports.notToRenderAnalysis = notToRenderAnalysis; +const sectionSvg = (classes, predictions) => { + const renderMsg = notToRenderAnalysis(predictions); + if (renderMsg) return null; + if (!predictions.output) return null; + const targetSvg = predictions.output.result[0].svgs[0]; + if (!targetSvg) return /*#__PURE__*/(0, _jsxRuntime.jsx)(_section_loading.default, {}); + return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactSvgFileZoomPan.default, { + svg: targetSvg, + duration: 300, + resize: true + }); +}; +exports.sectionSvg = sectionSvg; \ No newline at end of file diff --git a/dist/components/forecast/ir_comps.js b/dist/components/forecast/ir_comps.js new file mode 100644 index 00000000..0b432458 --- /dev/null +++ b/dist/components/forecast/ir_comps.js @@ -0,0 +1,152 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.IrTableHeader = exports.IrTableBodyRow = void 0; +var _react = _interopRequireDefault(require("react")); +var _propTypes = _interopRequireDefault(require("prop-types")); +var _reactRedux = require("react-redux"); +var _redux = require("redux"); +var _classnames = _interopRequireDefault(require("classnames")); +var _material = require("@mui/material"); +var _CheckCircleOutline = _interopRequireDefault(require("@mui/icons-material/CheckCircleOutline")); +var _HighlightOff = _interopRequireDefault(require("@mui/icons-material/HighlightOff")); +var _comps = require("./comps"); +var _forecast = require("../../actions/forecast"); +var _jsxRuntime = require("react/jsx-runtime"); +/* eslint-disable react/function-component-definition, function-paren-newline, +prefer-object-spread */ + +// import SmaToSvg from '../common/chem'; +const baseSelectIrStatus = ({ + sma, + status, + identity, + setIrStatusAct +}) => { + const theStatus = ['accept', 'reject'].includes(status) ? status : ''; + return /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.FormControl, { + children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.Select, { + value: theStatus, + onChange: e => { + setIrStatusAct({ + predictions: { + sma, + identity, + value: e.target.value + }, + svgs: [] + }); + }, + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.MenuItem, { + value: "accept", + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_CheckCircleOutline.default, { + style: { + color: '#4caf50' + } + }) + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.MenuItem, { + value: "reject", + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_HighlightOff.default, { + style: { + color: '#e91e63' + } + }) + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.MenuItem, { + value: "", + children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {}) + })] + }) + }); +}; +const bssMapStateToProps = (state, props) => ( +// eslint-disable-line +{}); +const bssMapDispatchToProps = dispatch => (0, _redux.bindActionCreators)({ + setIrStatusAct: _forecast.setIrStatus +}, dispatch); +baseSelectIrStatus.propTypes = { + sma: _propTypes.default.string.isRequired, + status: _propTypes.default.string, + identity: _propTypes.default.string.isRequired, + setIrStatusAct: _propTypes.default.func.isRequired +}; +baseSelectIrStatus.defaultProps = { + status: '' +}; +const SelectIrStatus = (0, _reactRedux.connect)(bssMapStateToProps, bssMapDispatchToProps)(baseSelectIrStatus); +const IrTableHeader = classes => /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TableHead, { + children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.TableRow, { + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TableCell, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TableCell, { + align: "left", + children: (0, _comps.TxtLabel)(classes, 'FG SMARTS', 'txt-prd-table-title') + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TableCell, { + align: "right", + children: (0, _comps.TxtLabel)(classes, 'Machine Confidence', 'txt-prd-table-title') + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TableCell, { + align: "right", + children: (0, _comps.TxtLabel)(classes, 'Machine', 'txt-prd-table-title') + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TableCell, { + align: "right", + children: (0, _comps.TxtLabel)(classes, 'Owner', 'txt-prd-table-title') + })] + }) +}); +exports.IrTableHeader = IrTableHeader; +const colorStyles = [{ + backgroundColor: '#FFFF00' +}, { + backgroundColor: '#87CEFA' +}, { + backgroundColor: '#FFB6C1' +}, { + backgroundColor: '#00FF00' +}, { + backgroundColor: '#E6E6FA' +}, { + backgroundColor: '#FFD700' +}, { + backgroundColor: '#F0FFFF' +}, { + backgroundColor: '#F5F5DC' +}]; +const colorLabel = (classes, idx, extClsName = 'txt-label') => { + const style = Object.assign({}, colorStyles[idx % 8], { + width: 20, + borderRadius: 20, + textAlign: 'center' + }); + return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", { + style: style, + children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: (0, _classnames.default)(classes.txtLabel, extClsName), + children: idx + 1 + }) + }); +}; +const IrTableBodyRow = (classes, idx, fg) => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.TableRow, { + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TableCell, { + component: "th", + scope: "row", + children: colorLabel(classes, idx) + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TableCell, { + align: "left", + children: (0, _comps.TxtLabel)(classes, fg.sma, 'txt-prd-table-content') + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TableCell, { + align: "right", + children: (0, _comps.ConfidenceLabel)(classes, fg.confidence, 'txt-prd-table-content') + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TableCell, { + align: "right", + children: (0, _comps.StatusIcon)(fg.status) + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TableCell, { + align: "right", + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(SelectIrStatus, { + sma: fg.sma, + status: fg.statusOwner, + identity: "Owner" + }) + })] +}, `${idx}-${fg.name}`); +exports.IrTableBodyRow = IrTableBodyRow; \ No newline at end of file diff --git a/dist/components/forecast/ir_viewer.js b/dist/components/forecast/ir_viewer.js new file mode 100644 index 00000000..e1d9f482 --- /dev/null +++ b/dist/components/forecast/ir_viewer.js @@ -0,0 +1,117 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var _react = _interopRequireDefault(require("react")); +var _propTypes = _interopRequireDefault(require("prop-types")); +var _classnames = _interopRequireDefault(require("classnames")); +var _reactRedux = require("react-redux"); +var _redux = require("redux"); +var _styles = require("@mui/styles"); +var _material = require("@mui/material"); +var _comps = require("./comps"); +var _ir_comps = require("./ir_comps"); +var _jsxRuntime = require("react/jsx-runtime"); +const Styles = () => ({ + root: { + overflowX: 'hidden', + overflowY: 'auto' + }, + container: { + minHeight: '400px' + }, + svgRoot: { + margin: '10px 40px 0px 40px', + height: 'calc(70vh)', + overflowY: 'hidden' + }, + tableRoot: { + margin: '10px 40px 0px 40px', + maxHeight: 'calc(70vh)', + overflowY: 'scroll' + }, + title: { + textAlign: 'left' + }, + btn: { + marginLeft: 40 + }, + reference: { + borderTop: '1px solid #cfd8dc', + margin: '10px 40px 0px 40px', + padding: 5 + }, + inputRoot: { + margin: '10px 40px 0px 40px' + }, + txtLabel: { + fontSize: '12px' + }, + submit: { + margin: '0 0 0 30px', + width: 300 + } +}); +const sectionTable = (classes, pds) => { + const renderMsg = (0, _comps.notToRenderAnalysis)(pds); + if (renderMsg) return renderMsg; + if (!pds.output.result || !pds.output.result[0]) return null; + const { + fgs + } = pds.output.result[0]; + if (!fgs) return null; + return /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Paper, { + className: classes.tableRoot, + children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.Table, { + className: classes.table, + size: "small", + children: [(0, _ir_comps.IrTableHeader)(classes), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TableBody, { + children: fgs.sort((a, b) => b.confidence - a.confidence).map((fg, idx) => (0, _ir_comps.IrTableBodyRow)(classes, idx, fg)) + })] + }) + }); +}; +const IrViewer = ({ + // eslint-disable-line + classes, + molecule, + inputCb, + forecastSt +}) => /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", { + className: (0, _classnames.default)(classes.root, 'card-forecast-viewer'), + children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.Grid, { + className: (0, _classnames.default)(classes.container), + container: true, + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Grid, { + item: true, + xs: 4, + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Paper, { + className: classes.svgRoot, + children: (0, _comps.sectionSvg)(classes, forecastSt.predictions) + }) + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Grid, { + item: true, + xs: 8, + children: sectionTable(classes, forecastSt.predictions) + })] + }), (0, _comps.sectionInput)(classes, molecule, inputCb)] +}); +const mapStateToProps = (state, props) => ( +// eslint-disable-line +{ + forecastSt: state.forecast +}); +const mapDispatchToProps = dispatch => (0, _redux.bindActionCreators)({}, dispatch); +IrViewer.propTypes = { + classes: _propTypes.default.object.isRequired, + molecule: _propTypes.default.string.isRequired, + inputCb: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.bool]), + forecastSt: _propTypes.default.object.isRequired +}; +IrViewer.defaultProps = { + inputCb: false +}; +var _default = exports.default = (0, _redux.compose)((0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps), (0, _styles.withStyles)(Styles))(IrViewer); \ No newline at end of file diff --git a/dist/components/forecast/nmr_comps.js b/dist/components/forecast/nmr_comps.js new file mode 100644 index 00000000..3ce7da6d --- /dev/null +++ b/dist/components/forecast/nmr_comps.js @@ -0,0 +1,156 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.SectionReference = exports.NmrTableHeader = exports.NmrTableBodyRow = void 0; +var _react = _interopRequireDefault(require("react")); +var _propTypes = _interopRequireDefault(require("prop-types")); +var _classnames = _interopRequireDefault(require("classnames")); +var _reactRedux = require("react-redux"); +var _redux = require("redux"); +var _material = require("@mui/material"); +var _CheckCircleOutline = _interopRequireDefault(require("@mui/icons-material/CheckCircleOutline")); +var _HighlightOff = _interopRequireDefault(require("@mui/icons-material/HighlightOff")); +var _comps = require("./comps"); +var _forecast = require("../../actions/forecast"); +var _jsxRuntime = require("react/jsx-runtime"); +/* eslint-disable react/function-component-definition, react/destructuring-assignment */ + +const baseSelectNmrStatus = ({ + // eslint-disable-line + idx, + atom, + status, + identity, + setNmrStatusAct +}) => { + const theStatus = ['accept', 'reject'].includes(status) ? status : ''; + return /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.FormControl, { + children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.Select, { + value: theStatus, + onChange: e => { + setNmrStatusAct({ + predictions: { + idx, + atom, + identity, + value: e.target.value + }, + svgs: [] + }); + }, + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.MenuItem, { + value: "accept", + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_CheckCircleOutline.default, { + style: { + color: '#4caf50' + } + }) + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.MenuItem, { + value: "reject", + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_HighlightOff.default, { + style: { + color: '#e91e63' + } + }) + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.MenuItem, { + value: "", + children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {}) + })] + }) + }); +}; +const bssMapStateToProps = (state, props) => ( +// eslint-disable-line +{}); +const bssMapDispatchToProps = dispatch => (0, _redux.bindActionCreators)({ + setNmrStatusAct: _forecast.setNmrStatus +}, dispatch); +baseSelectNmrStatus.propTypes = { + idx: _propTypes.default.number.isRequired, + atom: _propTypes.default.number.isRequired, + status: _propTypes.default.string, + identity: _propTypes.default.string.isRequired, + setNmrStatusAct: _propTypes.default.func.isRequired +}; +baseSelectNmrStatus.defaultProps = { + status: '' +}; +const SelectNmrStatus = (0, _reactRedux.connect)( +// eslint-disable-line +bssMapStateToProps, bssMapDispatchToProps)(baseSelectNmrStatus); // eslint-disable-line + +const numFormat = input => parseFloat(input).toFixed(2); +const realFormat = (val, status) => { + if (status === 'missing') { + return '- - -'; + } + return numFormat(val); +}; +const NmrTableHeader = classes => /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TableHead, { + children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.TableRow, { + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TableCell, { + children: (0, _comps.TxtLabel)(classes, 'Atom', 'txt-prd-table-title') + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TableCell, { + align: "right", + children: (0, _comps.TxtLabel)(classes, 'Prediction (ppm)', 'txt-prd-table-title') + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TableCell, { + align: "right", + children: (0, _comps.TxtLabel)(classes, 'Real (ppm)', 'txt-prd-table-title') + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TableCell, { + align: "right", + children: (0, _comps.TxtLabel)(classes, 'Diff (ppm)', 'txt-prd-table-title') + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TableCell, { + align: "right", + children: (0, _comps.TxtLabel)(classes, 'Machine', 'txt-prd-table-title') + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TableCell, { + align: "right", + children: (0, _comps.TxtLabel)(classes, 'Owner', 'txt-prd-table-title') + })] + }) +}); +exports.NmrTableHeader = NmrTableHeader; +const NmrTableBodyRow = (classes, row, idx) => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.TableRow, { + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TableCell, { + component: "th", + scope: "row", + children: (0, _comps.TxtLabel)(classes, row.atom, 'txt-prd-table-content') + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TableCell, { + align: "right", + children: (0, _comps.TxtLabel)(classes, numFormat(row.prediction), 'txt-prd-table-content') + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TableCell, { + align: "right", + children: (0, _comps.TxtLabel)(classes, realFormat(row.real, row.status), 'txt-prd-table-content') + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TableCell, { + align: "right", + children: (0, _comps.TxtLabel)(classes, realFormat(row.diff, row.status), 'txt-prd-table-content') + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TableCell, { + align: "right", + children: (0, _comps.StatusIcon)(row.status) + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TableCell, { + align: "right", + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(SelectNmrStatus, { + idx: idx, + atom: row.atom, + status: row.statusOwner, + identity: "Owner" + }) + })] +}, `${idx}-${row.atom}`); +exports.NmrTableBodyRow = NmrTableBodyRow; +const SectionReference = classes => /*#__PURE__*/(0, _jsxRuntime.jsx)("div", { + className: (0, _classnames.default)(classes.reference), + children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("p", { + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + children: "NMR prediction source: " + }), /*#__PURE__*/(0, _jsxRuntime.jsx)("a", { + href: "https://www.ncbi.nlm.nih.gov/pubmed/15464159", + target: "_blank", + rel: "noopener noreferrer", + children: "nmrshiftdb" + })] + }) +}); +exports.SectionReference = SectionReference; \ No newline at end of file diff --git a/dist/components/forecast/nmr_viewer.js b/dist/components/forecast/nmr_viewer.js new file mode 100644 index 00000000..c397d56b --- /dev/null +++ b/dist/components/forecast/nmr_viewer.js @@ -0,0 +1,114 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var _react = _interopRequireDefault(require("react")); +var _propTypes = _interopRequireDefault(require("prop-types")); +var _classnames = _interopRequireDefault(require("classnames")); +var _reactRedux = require("react-redux"); +var _redux = require("redux"); +var _styles = require("@mui/styles"); +var _material = require("@mui/material"); +var _comps = require("./comps"); +var _nmr_comps = require("./nmr_comps"); +var _jsxRuntime = require("react/jsx-runtime"); +const Styles = () => ({ + root: { + overflowX: 'hidden', + overflowY: 'auto' + }, + container: { + minHeight: '400px' + }, + svgRoot: { + margin: '10px 40px 0px 40px', + height: 'calc(70vh)', + overflowY: 'hidden' + }, + tableRoot: { + margin: '10px 40px 0px 40px', + maxHeight: 'calc(70vh)', + overflowY: 'scroll' + }, + title: { + textAlign: 'left' + }, + btn: { + marginLeft: 40 + }, + reference: { + borderTop: '1px solid #cfd8dc', + margin: '10px 40px 0px 40px', + padding: 5 + }, + inputRoot: { + margin: '10px 40px 0px 40px' + }, + txtLabel: { + fontSize: '12px' + }, + submit: { + margin: '0 0 0 30px', + width: 300 + } +}); +const sectionTable = (classes, pds) => { + const renderMsg = (0, _comps.notToRenderAnalysis)(pds); + if (renderMsg) return renderMsg; + const dict = pds.output.result[0]; + if (!dict) return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {}); + return /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Paper, { + className: classes.tableRoot, + children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.Table, { + className: classes.table, + size: "small", + children: [(0, _nmr_comps.NmrTableHeader)(classes), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TableBody, { + children: dict.shifts.sort((a, b) => a.atom - b.atom).map((row, idx) => (0, _nmr_comps.NmrTableBodyRow)(classes, row, idx)) + })] + }) + }); +}; +const NmrViewer = ({ + // eslint-disable-line + classes, + molecule, + inputCb, + forecastSt +}) => /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", { + className: (0, _classnames.default)(classes.root, 'card-forecast-viewer'), + children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.Grid, { + className: (0, _classnames.default)(classes.container), + container: true, + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Grid, { + item: true, + xs: 4, + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Paper, { + className: classes.svgRoot, + children: (0, _comps.sectionSvg)(classes, forecastSt.predictions) + }) + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Grid, { + item: true, + xs: 8, + children: sectionTable(classes, forecastSt.predictions) + })] + }), (0, _comps.sectionInput)(classes, molecule, inputCb), (0, _nmr_comps.SectionReference)(classes)] +}); +const mapStateToProps = (state, props) => ( +// eslint-disable-line +{ + forecastSt: state.forecast +}); +const mapDispatchToProps = dispatch => (0, _redux.bindActionCreators)({}, dispatch); +NmrViewer.propTypes = { + classes: _propTypes.default.object.isRequired, + molecule: _propTypes.default.string.isRequired, + inputCb: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.bool]), + forecastSt: _propTypes.default.object.isRequired +}; +NmrViewer.defaultProps = { + inputCb: false +}; +var _default = exports.default = (0, _redux.compose)((0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps), (0, _styles.withStyles)(Styles))(NmrViewer); \ No newline at end of file diff --git a/dist/components/forecast/section_loading.js b/dist/components/forecast/section_loading.js new file mode 100644 index 00000000..62d38f8d --- /dev/null +++ b/dist/components/forecast/section_loading.js @@ -0,0 +1,62 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var _react = _interopRequireDefault(require("react")); +var _CircularProgress = _interopRequireDefault(require("@mui/material/CircularProgress")); +var _ErrorOutline = _interopRequireDefault(require("@mui/icons-material/ErrorOutline")); +var _jsxRuntime = require("react/jsx-runtime"); +const styleLoading = { + alignItems: 'center', + display: 'flex', + height: '100%', + justifyContent: 'center' +}; +class SectionLoading extends _react.default.Component { + constructor(props) { + super(props); + this.state = { + loading: true + }; + } + componentDidMount() { + setTimeout(() => this.setState({ + loading: false + }), 5000); + } + renderLoading() { + return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", { + style: styleLoading, + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_CircularProgress.default, { + style: { + color: 'blue', + fontSize: 50 + } + }) + }); + } + renderNotFound() { + return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", { + style: styleLoading, + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_ErrorOutline.default, { + style: { + color: '#ffc107', + fontSize: 50, + margin: 20 + } + }), /*#__PURE__*/(0, _jsxRuntime.jsx)("h3", { + children: "Structure Not Found" + })] + }); + } + render() { + const { + loading + } = this.state; + return loading ? this.renderLoading() : this.renderNotFound(); + } +} +var _default = exports.default = SectionLoading; \ No newline at end of file diff --git a/dist/components/forecast_viewer.js b/dist/components/forecast_viewer.js new file mode 100644 index 00000000..cfce89e4 --- /dev/null +++ b/dist/components/forecast_viewer.js @@ -0,0 +1,149 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var _react = _interopRequireDefault(require("react")); +var _propTypes = _interopRequireDefault(require("prop-types")); +var _reactRedux = require("react-redux"); +var _redux = require("redux"); +var _styles = require("@mui/styles"); +var _index = _interopRequireDefault(require("./d3_line/index")); +var _nmr_viewer = _interopRequireDefault(require("./forecast/nmr_viewer")); +var _ir_viewer = _interopRequireDefault(require("./forecast/ir_viewer")); +var _forecast = require("../actions/forecast"); +var _ui = require("../actions/ui"); +var _list_ui = require("../constants/list_ui"); +var _jsxRuntime = require("react/jsx-runtime"); +/* eslint-disable react/no-unused-prop-types */ + +const styles = () => ({ + root: { + flexGrow: 1 + }, + appBar: { + backgroundColor: '#fff', + boxShadow: 'none' + }, + tabLabel: { + fontSize: '14px' + } +}); +class ForecastViewer extends _react.default.Component { + constructor(props) { + super(props); + this.initForecastReducer = this.initForecastReducer.bind(this); + } + componentDidMount() { + this.initForecastReducer(); + } + componentDidUpdate(prevProps) { + const { + forecast + } = this.props; + const prevForecast = forecast; + const nextForecast = prevProps.forecast; + if (prevForecast !== nextForecast) { + this.initForecastReducer(); + } + } + initForecastReducer() { + const { + forecast, + initForecastStatusAct, + setUiViewerTypeAct + } = this.props; + initForecastStatusAct(forecast); + if (forecast && forecast.predictions) { + const { + running, + refreshed + } = forecast.predictions; + if (running || refreshed) setUiViewerTypeAct(_list_ui.LIST_UI_VIEWER_TYPE.ANALYSIS); + } + } + render() { + const { + classes, + topic, + feature, + cLabel, + xLabel, + yLabel, + forecast, + isNmr, + isIr, + uiSt, + isXRD, + wavelength, + curveSt, + jcampSt + } = this.props; + const { + viewer + } = uiSt; + const { + inputCb, + molecule + } = forecast; + const { + curveIdx + } = curveSt; + const { + jcamps + } = jcampSt; + const comparisons = jcamps[curveIdx].others; + return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", { + className: classes.root, + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_index.default, { + topic: topic, + feature: feature, + cLabel: cLabel, + xLabel: isXRD && wavelength ? `${xLabel}, WL=${wavelength.value} ${wavelength.unit}` : xLabel, + yLabel: yLabel, + comparisons: comparisons, + isHidden: viewer !== _list_ui.LIST_UI_VIEWER_TYPE.SPECTRUM + }), viewer === _list_ui.LIST_UI_VIEWER_TYPE.ANALYSIS && isNmr && /*#__PURE__*/(0, _jsxRuntime.jsx)(_nmr_viewer.default, { + molecule: molecule, + inputCb: inputCb + }), viewer === _list_ui.LIST_UI_VIEWER_TYPE.ANALYSIS && isIr && /*#__PURE__*/(0, _jsxRuntime.jsx)(_ir_viewer.default, { + molecule: molecule, + inputCb: inputCb + })] + }); + } +} +const mapStateToProps = (state, _) => ( +// eslint-disable-line +{ + uiSt: state.ui, + jcampSt: state.jcamp, + wavelength: state.wavelength, + curveSt: state.curve +}); +const mapDispatchToProps = dispatch => (0, _redux.bindActionCreators)({ + initForecastStatusAct: _forecast.initForecastStatus, + setUiViewerTypeAct: _ui.setUiViewerType +}, dispatch); +ForecastViewer.propTypes = { + classes: _propTypes.default.object.isRequired, + topic: _propTypes.default.object.isRequired, + feature: _propTypes.default.object.isRequired, + cLabel: _propTypes.default.string.isRequired, + xLabel: _propTypes.default.string.isRequired, + yLabel: _propTypes.default.string.isRequired, + forecast: _propTypes.default.object.isRequired, + isNmr: _propTypes.default.bool.isRequired, + isIr: _propTypes.default.bool.isRequired, + isUvvis: _propTypes.default.bool.isRequired, + isXRD: _propTypes.default.bool.isRequired, + uiSt: _propTypes.default.object.isRequired, + jcampSt: _propTypes.default.object.isRequired, + initForecastStatusAct: _propTypes.default.func.isRequired, + setUiViewerTypeAct: _propTypes.default.func.isRequired, + wavelength: _propTypes.default.object.isRequired, + curveSt: _propTypes.default.object.isRequired +}; +var _default = exports.default = (0, _redux.compose)((0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps), (0, _styles.withStyles)(styles))(ForecastViewer); \ No newline at end of file diff --git a/dist/components/hplc_viewer.js b/dist/components/hplc_viewer.js new file mode 100644 index 00000000..a23fb588 --- /dev/null +++ b/dist/components/hplc_viewer.js @@ -0,0 +1,169 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var _react = _interopRequireDefault(require("react")); +var _propTypes = _interopRequireDefault(require("prop-types")); +var _reactRedux = require("react-redux"); +var _redux = require("redux"); +var _styles = require("@mui/styles"); +var _material = require("@mui/material"); +var _index = _interopRequireDefault(require("./panel/index")); +var _index2 = _interopRequireDefault(require("./cmd_bar/index")); +var _index3 = _interopRequireDefault(require("./d3_line_rect/index")); +var _lc_ms_uv_tools_bar = _interopRequireDefault(require("./lc_ms_uv_tools_bar")); +var _extractEntityLCMS = require("../helpers/extractEntityLCMS"); +var _jsxRuntime = require("react/jsx-runtime"); +/* eslint-disable react/default-props-match-prop-types, +react/require-default-props, react/no-unused-prop-types, react/jsx-boolean-value, +prefer-object-spread */ + +const styles = () => ({ + root: { + flexGrow: 1 + }, + appBar: { + backgroundColor: '#fff', + boxShadow: 'none' + }, + tabLabel: { + fontSize: '14px' + } +}); +class HPLCViewer extends _react.default.Component { + // eslint-disable-line + render() { + const { + classes, + curveState, + operations, + entityFileNames, + entities, + userManualLink, + molSvg, + theoryMass, + integrationState, + hplcMsState, + descriptions, + canChangeDescription, + onDescriptionChanged, + editorOnly, + forecast, + onLcmsPageRequest + } = this.props; + if (!entities || entities.length === 0) return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {}); + const { + curveIdx + } = curveState; + const entity = entities[curveIdx]; + if (!entity) return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {}); + const { + feature, + topic + } = entity || {}; + const { + ticEntities, + uvvisEntities, + mzEntities + } = (0, _extractEntityLCMS.splitAndReindexEntities)(entities); + const displayFeature = feature || entities[0]?.feature || entities[0]?.features?.[0] || {}; + const hasEdit = !!displayFeature?.data?.[0]?.x?.length; + const { + integrations + } = integrationState; + const currentIntegration = integrations[curveIdx]; + return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", { + className: classes.root, + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_index2.default, { + feature: displayFeature, + hasEdit: hasEdit, + forecast: forecast || {}, + operations: operations, + editorOnly: editorOnly, + hideThreshold: true, + hideMainEditTools: true, + prependLcMsToolbar: /*#__PURE__*/(0, _jsxRuntime.jsx)(_lc_ms_uv_tools_bar.default, {}) + }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", { + className: "react-spectrum-editor", + children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.Grid, { + container: true, + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Grid, { + item: true, + xs: 9, + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_index3.default, { + ticEntities: ticEntities, + uvvisEntities: uvvisEntities, + mzEntities: mzEntities, + topic: topic, + xLabel: displayFeature?.xUnit || '', + yLabel: displayFeature?.yUnit || '', + feature: displayFeature, + jcampIdx: curveIdx, + hplcMsSt: hplcMsState, + isHidden: false, + omitUvvisToolbarRow: true, + onLcmsPageRequest: onLcmsPageRequest + }) + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Grid, { + item: true, + xs: 3, + align: "center", + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_index.default, { + entities: entities, + jcampIdx: curveIdx, + entityFileNames: entityFileNames, + userManualLink: userManualLink, + feature: displayFeature, + molSvg: molSvg, + theoryMass: theoryMass, + descriptions: descriptions, + integration: currentIntegration, + canChangeDescription: canChangeDescription, + onDescriptionChanged: onDescriptionChanged, + editorOnly: editorOnly + }) + })] + }) + })] + }); + } +} +const mapStateToProps = state => ({ + curveState: state.curve, + entities: state.curve.listCurves, + integrationState: state.integration.present, + hplcMsState: state.hplcMs +}); +HPLCViewer.propTypes = { + classes: _propTypes.default.object.isRequired, + entityFileNames: _propTypes.default.array.isRequired, + molSvg: _propTypes.default.string.isRequired, + curveState: _propTypes.default.object.isRequired, + operations: _propTypes.default.array.isRequired, + forecast: _propTypes.default.object, + userManualLink: _propTypes.default.object, + entities: _propTypes.default.array, + theoryMass: _propTypes.default.string, + integrationState: _propTypes.default.object.isRequired, + hplcMsState: _propTypes.default.object.isRequired, + descriptions: _propTypes.default.array.isRequired, + canChangeDescription: _propTypes.default.bool.isRequired, + onDescriptionChanged: _propTypes.default.func, + onLcmsPageRequest: _propTypes.default.func, + editorOnly: _propTypes.default.bool.isRequired +}; +HPLCViewer.defaultProps = { + entityFileNames: [], + molSvg: '', + cLabel: '', + xLabel: '', + yLabel: '', + entities: [], + forecast: {}, + onDescriptionChanged: () => {}, + onLcmsPageRequest: null +}; +var _default = exports.default = (0, _redux.compose)((0, _reactRedux.connect)(mapStateToProps), (0, _styles.withStyles)(styles))(HPLCViewer); \ No newline at end of file diff --git a/dist/components/lc_ms_uv_tools_bar.js b/dist/components/lc_ms_uv_tools_bar.js new file mode 100644 index 00000000..ca1c32ad --- /dev/null +++ b/dist/components/lc_ms_uv_tools_bar.js @@ -0,0 +1,175 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var _react = _interopRequireDefault(require("react")); +var _propTypes = _interopRequireDefault(require("prop-types")); +var _reactRedux = require("react-redux"); +var _redux = require("redux"); +var _classnames = _interopRequireDefault(require("classnames")); +var _withStyles = _interopRequireDefault(require("@mui/styles/withStyles")); +var _material = require("@mui/material"); +var _ZoomInOutlined = _interopRequireDefault(require("@mui/icons-material/ZoomInOutlined")); +var _FindReplaceOutlined = _interopRequireDefault(require("@mui/icons-material/FindReplaceOutlined")); +var _Undo = _interopRequireDefault(require("@mui/icons-material/Undo")); +var _Redo = _interopRequireDefault(require("@mui/icons-material/Redo")); +var _common = require("./cmd_bar/common"); +var _integration = _interopRequireDefault(require("./cmd_bar/04_integration")); +var _peak = _interopRequireDefault(require("./cmd_bar/03_peak")); +var _ui = require("../actions/ui"); +var _hplc_ms = require("../actions/hplc_ms"); +var _list_ui = require("../constants/list_ui"); +var _wavelengthSelect = _interopRequireDefault(require("../features/lc-ms/ui/wavelengthSelect")); +var _jsxRuntime = require("react/jsx-runtime"); +/* eslint-disable no-mixed-operators, prefer-object-spread, react/function-component-definition */ + +const styles = () => Object.assign({}, _common.commonStyle); +const zoomView = (classes, graphIndex, uiSt, zoomInAct) => { + const onSweepZoomIn = () => { + zoomInAct({ + graphIndex, + sweepType: _list_ui.LIST_UI_SWEEP_TYPE.ZOOMIN + }); + }; + const onSweepZoomReset = () => { + zoomInAct({ + graphIndex, + sweepType: _list_ui.LIST_UI_SWEEP_TYPE.ZOOMRESET + }); + zoomInAct({ + graphIndex, + sweepType: _list_ui.LIST_UI_SWEEP_TYPE.ZOOMIN + }); + }; + const { + zoom + } = uiSt; + const { + sweepTypes + } = zoom; + const isZoomFocus = sweepTypes[graphIndex] === _list_ui.LIST_UI_SWEEP_TYPE.ZOOMIN; + return /*#__PURE__*/(0, _jsxRuntime.jsxs)("span", { + className: classes.group, + "data-testid": "Zoom", + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Tooltip, { + title: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: "txt-sv-tp", + children: "Zoom In" + }), + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_common.MuButton, { + className: (0, _classnames.default)((0, _common.focusStyle)(isZoomFocus, classes), 'btn-sv-bar-zoomin'), + onClick: onSweepZoomIn, + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_ZoomInOutlined.default, { + className: (0, _classnames.default)(classes.icon, classes.iconWp) + }) + }) + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Tooltip, { + title: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: "txt-sv-tp", + children: "Reset Zoom" + }), + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_common.MuButton, { + className: "btn-sv-bar-zoomreset", + onClick: onSweepZoomReset, + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_FindReplaceOutlined.default, { + className: classes.icon + }) + }) + })] + }); +}; +const wavelengthSelect = (classes, hplcMsSt, updateWavelengthAct) => (0, _wavelengthSelect.default)(classes, hplcMsSt, updateWavelengthAct, { + labelId: 'lcms-select-wavelength-label', + label: 'Wavelength (nm)' +}); +const LcMsUvToolsBar = ({ + classes, + uiSt, + hplcMsSt, + feature, + zoomInAct, + selectWavelengthAct, + uvvisUndoAct, + uvvisRedoAct +}) => { + const handleWavelengthChange = event => { + selectWavelengthAct(event); + }; + const hist = hplcMsSt?.uvvisEditHistory || { + past: [], + future: [] + }; + const canUndo = hist.past && hist.past.length > 0; + const canRedo = hist.future && hist.future.length > 0; + return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, { + children: [zoomView(classes, 0, uiSt, zoomInAct), wavelengthSelect(classes, hplcMsSt, handleWavelengthChange), /*#__PURE__*/(0, _jsxRuntime.jsx)(_integration.default, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_peak.default, { + feature: feature || {} + }), /*#__PURE__*/(0, _jsxRuntime.jsxs)("span", { + className: classes.group, + style: { + display: 'inline-flex', + alignItems: 'center' + }, + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Tooltip, { + title: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: "txt-sv-tp", + children: "Undo" + }), + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_common.MuButton, { + className: "btn-sv-bar-uvvis-undo", + disabled: !canUndo, + onClick: () => uvvisUndoAct(), + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Undo.default, { + className: classes.icon + }) + }) + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Tooltip, { + title: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: "txt-sv-tp", + children: "Redo" + }), + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_common.MuButton, { + className: "btn-sv-bar-uvvis-redo", + disabled: !canRedo, + onClick: () => uvvisRedoAct(), + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Redo.default, { + className: classes.icon + }) + }) + })] + })] + }); +}; +const mapStateToProps = state => { + const { + curveIdx, + listCurves + } = state.curve; + const entity = listCurves[curveIdx]; + const displayFeature = entity?.feature || listCurves[0]?.feature || listCurves[0]?.features?.[0] || {}; + return { + uiSt: state.ui, + hplcMsSt: state.hplcMs, + feature: displayFeature + }; +}; +const mapDispatchToProps = dispatch => (0, _redux.bindActionCreators)({ + zoomInAct: _ui.setUiSweepType, + selectWavelengthAct: _hplc_ms.selectWavelength, + uvvisUndoAct: _hplc_ms.uvvisUndo, + uvvisRedoAct: _hplc_ms.uvvisRedo +}, dispatch); +LcMsUvToolsBar.propTypes = { + classes: _propTypes.default.object.isRequired, + uiSt: _propTypes.default.object.isRequired, + hplcMsSt: _propTypes.default.object.isRequired, + feature: _propTypes.default.object.isRequired, + zoomInAct: _propTypes.default.func.isRequired, + selectWavelengthAct: _propTypes.default.func.isRequired, + uvvisUndoAct: _propTypes.default.func.isRequired, + uvvisRedoAct: _propTypes.default.func.isRequired +}; +var _default = exports.default = (0, _redux.compose)((0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps), (0, _withStyles.default)(styles))(LcMsUvToolsBar); \ No newline at end of file diff --git a/dist/components/multi_jcamps_viewer.js b/dist/components/multi_jcamps_viewer.js new file mode 100644 index 00000000..0cd897f7 --- /dev/null +++ b/dist/components/multi_jcamps_viewer.js @@ -0,0 +1,235 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var _react = _interopRequireDefault(require("react")); +var _propTypes = _interopRequireDefault(require("prop-types")); +var _classnames = _interopRequireDefault(require("classnames")); +var _reactRedux = require("react-redux"); +var _redux = require("redux"); +var _Grid = _interopRequireDefault(require("@mui/material/Grid")); +var _styles = require("@mui/styles"); +var _index = _interopRequireDefault(require("./panel/index")); +var _cyclic_voltamery_data = _interopRequireDefault(require("./panel/cyclic_voltamery_data")); +var _index2 = _interopRequireDefault(require("./cmd_bar/index")); +var _index3 = _interopRequireDefault(require("./d3_multi/index")); +var _curve = require("../actions/curve"); +var _cyclic_voltammetry = require("../actions/cyclic_voltammetry"); +var _list_layout = require("../constants/list_layout"); +var _format = _interopRequireDefault(require("../helpers/format")); +var _jsxRuntime = require("react/jsx-runtime"); +/* eslint-disable react/default-props-match-prop-types, +react/require-default-props, react/no-unused-prop-types, react/jsx-boolean-value, +prefer-object-spread */ + +const styles = () => ({ + root: { + flexGrow: 1 + }, + appBar: { + backgroundColor: '#fff', + boxShadow: 'none' + }, + tabLabel: { + fontSize: '14px' + }, + cvEditor: { + height: 'calc(90vh - 220px)', + display: 'flex', + flexDirection: 'column', + minHeight: 0, + overflow: 'hidden' + }, + cvTopRow: { + flex: '1 1 auto', + minHeight: 0, + overflow: 'hidden' + }, + cvViewerCol: { + height: '100%', + minHeight: 0, + display: 'flex', + flexDirection: 'column' + }, + cvViewerWrap: { + flex: '1 1 auto', + minHeight: 0 + }, + cvPanelBelow: { + marginTop: 16, + width: '100%' + } +}); +const seperatingSubLayout = (entities, featureCondition, layoutSt) => { + if (layoutSt === _list_layout.LIST_LAYOUT.CYCLIC_VOLTAMMETRY) { + return null; + } + const storedDict = {}; + entities.forEach(entity => { + const { + feature + } = entity; + const keyValue = feature[featureCondition]; + if (keyValue in storedDict) { + storedDict[keyValue].push(entity); + } else { + storedDict[keyValue] = [entity]; + } + }); + return Object.assign({}, storedDict); +}; +class MultiJcampsViewer extends _react.default.Component { + // eslint-disable-line + render() { + const { + classes, + curveSt, + operations, + entityFileNames, + entities, + userManualLink, + molSvg, + exactMass, + layoutSt, + integrationSt, + descriptions, + canChangeDescription, + onDescriptionChanged, + forecast, + editorOnly + } = this.props; + if (!entities || entities.length === 0) return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {}); + const separateCondition = _format.default.isGCLayout(layoutSt) ? 'yUnit' : 'xUnit'; + const seperatedSubLayouts = seperatingSubLayout(entities, separateCondition, layoutSt); + const { + curveIdx + } = curveSt; + const entity = entities[curveIdx]; + const { + feature, + topic + } = entity; + const { + integrations + } = integrationSt; + const currentIntegration = integrations[curveIdx]; + const hasEdit = !!feature?.data?.[0]?.x?.length; + const xLabel = feature?.xUnit || ''; + const yLabel = feature?.yUnit || ''; + const isCyclicVolta = _format.default.isCyclicVoltaLayout(layoutSt); + return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", { + className: classes.root, + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_index2.default, { + feature: feature, + hasEdit: hasEdit, + forecast: forecast || {}, + operations: operations, + editorOnly: editorOnly, + hideThreshold: !_format.default.isNmrLayout(layoutSt) + }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", { + className: (0, _classnames.default)('react-spectrum-editor', isCyclicVolta && classes.cvEditor), + children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Grid.default, { + container: true, + className: isCyclicVolta ? classes.cvTopRow : undefined, + children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_Grid.default, { + item: true, + xs: 9, + className: isCyclicVolta ? classes.cvViewerCol : undefined, + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", { + className: isCyclicVolta ? classes.cvViewerWrap : undefined, + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_index3.default, { + entities: entities, + topic: topic, + xLabel: xLabel, + yLabel: yLabel, + feature: feature + }) + }), isCyclicVolta ? /*#__PURE__*/(0, _jsxRuntime.jsx)("div", { + className: classes.cvPanelBelow, + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_cyclic_voltamery_data.default, { + jcampIdx: curveIdx, + feature: feature, + userManualLink: userManualLink ? userManualLink.cv : undefined + }) + }) : null] + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Grid.default, { + item: true, + xs: 3, + align: "center", + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_index.default, { + jcampIdx: curveIdx, + entityFileNames: entityFileNames, + userManualLink: userManualLink, + feature: feature, + molSvg: molSvg, + exactMass: exactMass, + subLayoutsInfo: seperatedSubLayouts, + integration: currentIntegration, + descriptions: descriptions, + editorOnly: editorOnly, + canChangeDescription: canChangeDescription, + onDescriptionChanged: onDescriptionChanged, + hideCyclicVolta: isCyclicVolta + }) + })] + }) + })] + }); + } +} +const mapStateToProps = (state, _) => ( +// eslint-disable-line +{ + curveSt: state.curve, + cyclicVoltaSt: state.cyclicvolta, + entities: state.curve.listCurves, + layoutSt: state.layout, + integrationSt: state.integration.present +}); +const mapDispatchToProps = dispatch => (0, _redux.bindActionCreators)({ + setAllCurvesAct: _curve.setAllCurves, + addNewCylicVoltaPairPeakAct: _cyclic_voltammetry.addNewCylicVoltaPairPeak, + addCylicVoltaMaxPeakAct: _cyclic_voltammetry.addCylicVoltaMaxPeak, + addCylicVoltaMinPeakAct: _cyclic_voltammetry.addCylicVoltaMinPeak, + addCylicVoltaPeckerAct: _cyclic_voltammetry.addCylicVoltaPecker +}, dispatch); +MultiJcampsViewer.propTypes = { + classes: _propTypes.default.object.isRequired, + multiEntities: _propTypes.default.array.isRequired, + entityFileNames: _propTypes.default.array.isRequired, + molSvg: _propTypes.default.string.isRequired, + setAllCurvesAct: _propTypes.default.func.isRequired, + curveSt: _propTypes.default.object.isRequired, + cyclicVoltaSt: _propTypes.default.object.isRequired, + addNewCylicVoltaPairPeakAct: _propTypes.default.func.isRequired, + addCylicVoltaMaxPeakAct: _propTypes.default.func.isRequired, + addCylicVoltaMinPeakAct: _propTypes.default.func.isRequired, + operations: _propTypes.default.array.isRequired, + forecast: _propTypes.default.object, + editorOnly: _propTypes.default.bool, + userManualLink: _propTypes.default.object, + entities: _propTypes.default.array, + layoutSt: _propTypes.default.string.isRequired, + exactMass: _propTypes.default.string, + integrationSt: _propTypes.default.object.isRequired, + descriptions: _propTypes.default.array.isRequired, + canChangeDescription: _propTypes.default.bool.isRequired, + onDescriptionChanged: _propTypes.default.func +}; +MultiJcampsViewer.defaultProps = { + multiEntities: [], + entityFileNames: [], + molSvg: '', + cLabel: '', + xLabel: '', + yLabel: '', + entities: [], + forecast: {}, + editorOnly: false, + descriptions: [], + canChangeDescription: false +}; +var _default = exports.default = (0, _redux.compose)((0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps), (0, _styles.withStyles)(styles))(MultiJcampsViewer); \ No newline at end of file diff --git a/dist/components/panel/compare.js b/dist/components/panel/compare.js new file mode 100644 index 00000000..82949ccc --- /dev/null +++ b/dist/components/panel/compare.js @@ -0,0 +1,294 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var _react = _interopRequireDefault(require("react")); +var _propTypes = _interopRequireDefault(require("prop-types")); +var _classnames = _interopRequireDefault(require("classnames")); +var _reactRedux = require("react-redux"); +var _redux = require("redux"); +var _material = require("@mui/material"); +var _ExpandMore = _interopRequireDefault(require("@mui/icons-material/ExpandMore")); +var _HighlightOff = _interopRequireDefault(require("@mui/icons-material/HighlightOff")); +var _VisibilityOutlined = _interopRequireDefault(require("@mui/icons-material/VisibilityOutlined")); +var _VisibilityOffOutlined = _interopRequireDefault(require("@mui/icons-material/VisibilityOffOutlined")); +var _styles = require("@mui/styles"); +var _format = _interopRequireDefault(require("../../helpers/format")); +var _jcamp = require("../../actions/jcamp"); +var _jsxRuntime = require("react/jsx-runtime"); +/* eslint-disable function-paren-newline, react/jsx-props-no-spreading, +react/function-component-definition */ + +const styles = theme => ({ + panel: { + backgroundColor: '#eee', + display: 'table-row' + }, + panelSummary: { + backgroundColor: '#eee', + height: 32 + }, + txtBadge: {}, + panelDetail: { + backgroundColor: '#fff', + maxHeight: 'calc(90vh - 220px)', + // ROI + overflow: 'auto' + }, + table: { + width: '100%' + }, + tTxt: { + padding: 0 + }, + tTxtHide: { + color: '#D5D8DC' + }, + tRow: { + height: 28, + '&:nth-of-type(even)': { + backgroundColor: theme.palette ? theme.palette.background.default : '#d3d3d3' + } + }, + rmBtn: { + color: 'red', + padding: '0 5px 0 5px', + '&:hover': { + borderRadius: 12, + backgroundColor: 'red', + color: 'white' + } + }, + showBtn: { + color: 'steelblue', + padding: '0 5px 0 5px', + '&:hover': { + borderRadius: 12, + backgroundColor: 'steelblue', + color: 'white' + } + }, + hideBtn: { + color: 'gray', + padding: '0 5px 0 5px', + '&:hover': { + borderRadius: 12, + backgroundColor: 'gray', + color: 'white' + } + }, + square: { + textAlign: 'center !important' + }, + baseDD: { + backgroundColor: 'white', + border: '1px dashed black', + borderRadius: 5, + height: 26, + lineHeight: '26px', + margin: '7px 0 7px 0', + textAlign: 'center', + verticalAlign: 'middle', + width: '90%' + }, + enableDD: { + border: '2px dashed #000', + color: '#000' + }, + disableDD: { + border: '2px dashed #aaa', + color: '#aaa' + }, + tpCard: {}, + tpMoreTxt: { + padding: '0 0 0 60px' + }, + tpLabel: { + fontSize: 16 + } +}); +const msgDefault = 'Add spectra to compare.'; +const tpHint = classes => /*#__PURE__*/(0, _jsxRuntime.jsxs)("span", { + className: (0, _classnames.default)(classes.tpCard), + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("p", { + className: (0, _classnames.default)(classes.tpLabel, 'txt-sv-tp'), + children: "- Accept *.dx, *.jdx, *.JCAMP," + }), /*#__PURE__*/(0, _jsxRuntime.jsx)("p", { + className: (0, _classnames.default)(classes.tpLabel, 'txt-sv-tp'), + children: "- Max 5 spectra." + })] +}); +const content = (classes, desc) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Tooltip, { + title: tpHint(classes), + placement: "bottom", + children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: (0, _classnames.default)(classes.tpLabel, 'txt-sv-tp'), + children: desc + }) +}); +const inputOthers = (classes, desc, onDropFiles, onFileChange, inputRef) => /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", { + className: (0, _classnames.default)(classes.baseDD), + role: "button", + tabIndex: 0, + onClick: () => inputRef.current?.click(), + onKeyDown: event => { + if (event.key === 'Enter' || event.key === ' ') { + event.preventDefault(); + inputRef.current?.click(); + } + }, + onDragOver: event => { + event.preventDefault(); + }, + onDrop: event => { + event.preventDefault(); + onDropFiles(event.dataTransfer?.files); + }, + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("input", { + ref: inputRef, + type: "file", + multiple: true, + accept: ".dx,.jdx,.jcamp,.JCAMP", + style: { + display: 'none' + }, + onChange: onFileChange + }), content(classes, desc)] +}); +const compareList = (classes, jcampSt, rmOthersOneAct, toggleShowAct) => { + const { + selectedIdx, + jcamps + } = jcampSt; + const selectedJcamp = jcamps[selectedIdx]; + const { + others + } = selectedJcamp; + const rows = others.map((o, idx) => ({ + idx, + title: o.spectra[0].title, + color: _format.default.compareColors(idx), + rmCb: () => rmOthersOneAct(idx), + isShow: o.show, + toggleShowCb: () => toggleShowAct(idx) + })); + return /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Table, { + className: classes.table, + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TableBody, { + children: rows.map(row => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.TableRow, { + className: classes.tRow, + hover: true, + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TableCell, { + align: "right", + className: (0, _classnames.default)(classes.tTxt, classes.square, 'txt-sv-panel-txt'), + style: { + backgroundColor: row.color + }, + children: row.idx + 1 + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TableCell, { + align: "right", + className: (0, _classnames.default)(classes.tTxt, 'txt-sv-panel-txt', row.isShow ? null : classes.tTxtHide), + children: row.title + }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.TableCell, { + align: "right", + className: (0, _classnames.default)(classes.tTxt, 'txt-sv-panel-txt'), + children: [row.isShow ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_VisibilityOutlined.default, { + onClick: row.toggleShowCb, + className: classes.showBtn + }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_VisibilityOffOutlined.default, { + onClick: row.toggleShowCb, + className: classes.hideBtn + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_HighlightOff.default, { + onClick: row.rmCb, + className: classes.rmBtn + })] + })] + }, row.idx)) + }) + }); +}; +const ComparePanel = ({ + classes, + expand, + onExapnd, + jcampSt, + rmOthersOneAct, + toggleShowAct +}) => { + const inputRef = _react.default.useRef(null); + const { + selectedIdx, + jcamps + } = jcampSt; + const selectedJcamp = jcamps[selectedIdx]; + const { + addOthersCb + } = selectedJcamp; + const desc = msgDefault; + const onDropFiles = filesLike => { + if (!addOthersCb) return; + const droppedFiles = Array.from(filesLike || []); + if (droppedFiles.length === 0) return; + addOthersCb({ + jcamps: droppedFiles + }); + }; + const onFileChange = event => { + onDropFiles(event.target.files); + if (inputRef.current) { + inputRef.current.value = ''; + } + }; + return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.Accordion, { + expanded: expand, + onChange: onExapnd, + disableGutters: true, + sx: { + '&.MuiAccordion-root.Mui-expanded': { + margin: 0 + }, + '&:before': { + display: 'none' + } + }, + TransitionProps: { + unmountOnExit: true + } // increase Accordion performance + , + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.AccordionSummary, { + expandIcon: /*#__PURE__*/(0, _jsxRuntime.jsx)(_ExpandMore.default, {}), + className: (0, _classnames.default)(classes.panelSummary), + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Typography, { + className: "txt-panel-header", + children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: (0, _classnames.default)(classes.txtBadge, 'txt-sv-panel-title'), + children: "Spectra Comparisons" + }) + }) + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Divider, {}), inputOthers(classes, desc, onDropFiles, onFileChange, inputRef), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", { + className: (0, _classnames.default)(classes.panelDetail), + children: compareList(classes, jcampSt, rmOthersOneAct, toggleShowAct) + })] + }); +}; +const mapStateToProps = (state, props) => ( +// eslint-disable-line +{ + jcampSt: state.jcamp +}); +const mapDispatchToProps = dispatch => (0, _redux.bindActionCreators)({ + rmOthersOneAct: _jcamp.rmOthersOne, + toggleShowAct: _jcamp.toggleShow +}, dispatch); +ComparePanel.propTypes = { + classes: _propTypes.default.object.isRequired, + expand: _propTypes.default.bool.isRequired, + onExapnd: _propTypes.default.func.isRequired, + jcampSt: _propTypes.default.object.isRequired, + rmOthersOneAct: _propTypes.default.func.isRequired, + toggleShowAct: _propTypes.default.func.isRequired +}; +var _default = exports.default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)((0, _styles.withStyles)(styles)(ComparePanel)); \ No newline at end of file diff --git a/dist/components/panel/cyclic_voltamery_data.js b/dist/components/panel/cyclic_voltamery_data.js new file mode 100644 index 00000000..96718fd8 --- /dev/null +++ b/dist/components/panel/cyclic_voltamery_data.js @@ -0,0 +1,467 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var _react = _interopRequireWildcard(require("react")); +var _propTypes = _interopRequireDefault(require("prop-types")); +var _classnames = _interopRequireDefault(require("classnames")); +var _reactRedux = require("react-redux"); +var _redux = require("redux"); +var _ExpandLess = _interopRequireDefault(require("@mui/icons-material/ExpandLess")); +var _ExpandMore = _interopRequireDefault(require("@mui/icons-material/ExpandMore")); +var _AddCircleOutline = _interopRequireDefault(require("@mui/icons-material/AddCircleOutline")); +var _RemoveCircle = _interopRequireDefault(require("@mui/icons-material/RemoveCircle")); +var _Info = _interopRequireDefault(require("@mui/icons-material/Info")); +var _Help = _interopRequireDefault(require("@mui/icons-material/Help")); +var _styles = require("@mui/styles"); +var _material = require("@mui/material"); +var _cyclic_voltammetry = require("../../actions/cyclic_voltammetry"); +var _ui = require("../../actions/ui"); +var _list_ui = require("../../constants/list_ui"); +var _chem = require("../../helpers/chem"); +var _format = _interopRequireDefault(require("../../helpers/format")); +var _jsxRuntime = require("react/jsx-runtime"); +function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); } +/* eslint-disable function-paren-newline, react/require-default-props, +react/no-unused-prop-types, react/jsx-closing-tag-location, max-len, react/jsx-one-expression-per-line, +react/jsx-indent, react/no-unescaped-entities, react/jsx-wrap-multilines, camelcase, no-shadow, +arrow-body-style, react/function-component-definition */ + +const MAX_VISIBLE_ROWS = 6; +const ROW_HEIGHT_PX = 28; +const HEADER_HEIGHT_PX = 24; +const EXPANDED_HEIGHT = HEADER_HEIGHT_PX + MAX_VISIBLE_ROWS * ROW_HEIGHT_PX; +const styles = () => ({ + panel: { + backgroundColor: '#f7f7f7', + border: '1px solid #e6e6e6', + borderRadius: 8, + overflow: 'hidden' + }, + panelHeader: { + backgroundColor: '#eee', + padding: '4px 8px', + display: 'flex', + alignItems: 'center' + }, + panelActions: { + marginLeft: 'auto', + display: 'flex', + alignItems: 'center', + gap: 8 + }, + howToWrap: { + display: 'inline-flex', + alignItems: 'center', + gap: 4 + }, + toggleBtn: { + padding: 0 + }, + table: { + width: '100%', + overflowWrap: 'anywhere', + fontSize: '11px !important' + }, + tableWrap: { + padding: '3px 6px 5px', + height: 'auto', + maxHeight: EXPANDED_HEIGHT, + overflowY: 'auto', + overflowX: 'hidden', + transition: 'max-height 200ms ease' + }, + tableWrapCollapsed: { + maxHeight: 0, + padding: '0 5px', + overflow: 'hidden' + }, + tableHeadRow: { + backgroundColor: '#f5f5f5' + }, + tableHeadCell: { + fontWeight: 600, + color: '#333', + fontSize: '11px !important' + }, + tableBodyRow: { + '&:nth-of-type(even)': { + backgroundColor: '#fafafa' + } + }, + td: { + wordWrap: 'break-all', + fontSize: '14px !important' + }, + cellSelected: { + backgroundColor: '#2196f3', + color: '#fff', + fontSize: '13px !important' + }, + btnRemove: { + color: 'red' + }, + btnAddRow: { + color: 'green' + }, + tTxt: { + padding: '5px 2px', + lineHeight: 1.2, + verticalAlign: 'top', + fontSize: '11px !important' + }, + infoIcon: { + width: '15px', + height: '16px' + }, + txtToolTip: { + lineHeight: 'normal !important', + fontSize: '14px !important' + }, + rowRoot: { + border: '1px solid #e6e6e6', + borderRadius: 6, + minHeight: 40, + lineHeight: 1.4, + padding: '10px 16px', + textAlign: 'left' + }, + rowOdd: { + backgroundColor: '#fff', + textOverflow: 'clip', + whiteSpace: 'normal' + }, + rowEven: { + backgroundColor: '#fafafa', + textOverflow: 'ellipsis', + whiteSpace: 'nowrap' + }, + cvModeWarning: { + color: 'red', + marginLeft: 12 + } +}); +const CyclicVoltammetryPanel = ({ + classes, + cyclicVoltaState, + feature, + addNewPairPeakAct, + setWorkWithMaxPeakAct, + selectPairPeakAct, + removePairPeakAct, + selectRefPeaksAct, + sweepTypeSt, + setUiSweepTypeAct, + jcampIdx, + userManualLink +}) => { + const [isExpanded, setIsExpanded] = (0, _react.useState)(false); + const { + spectraList + } = cyclicVoltaState; + const spectra = spectraList[jcampIdx]; + let list = []; + if (spectra !== undefined) { + list = spectra.list; + } + const formatCurrent = (y, feature, cyclicVoltaState) => { + const baseY = feature && feature.yUnit ? String(feature.yUnit) : 'A'; + const isMilli = /mA/i.test(baseY); + const useDensity = cyclicVoltaState && cyclicVoltaState.useCurrentDensity; + const rawArea = (cyclicVoltaState && cyclicVoltaState.areaValue === '' ? 1.0 : cyclicVoltaState?.areaValue) || 1.0; + const areaUnit = cyclicVoltaState && cyclicVoltaState.areaUnit ? cyclicVoltaState.areaUnit : 'cm²'; + const safeArea = rawArea > 0 ? rawArea : 1.0; + let val = y; + let unit = isMilli ? 'mA' : 'A'; + if (useDensity) { + val = y / safeArea; + unit = `${unit}/${areaUnit}`; + } + if (isMilli) { + val *= 1000.0; + } + return `${parseFloat(val).toExponential(2)} ${unit}`; + }; + const selectCell = (idx, isMax) => { + setWorkWithMaxPeakAct({ + isMax, + jcampIdx + }); + selectPairPeakAct({ + index: idx, + jcampIdx + }); + if (sweepTypeSt === _list_ui.LIST_UI_SWEEP_TYPE.CYCLIC_VOLTA_ADD_MAX_PEAK || sweepTypeSt === _list_ui.LIST_UI_SWEEP_TYPE.CYCLIC_VOLTA_ADD_MIN_PEAK) { + if (isMax) { + setUiSweepTypeAct(_list_ui.LIST_UI_SWEEP_TYPE.CYCLIC_VOLTA_ADD_MAX_PEAK, jcampIdx); + } else { + setUiSweepTypeAct(_list_ui.LIST_UI_SWEEP_TYPE.CYCLIC_VOLTA_ADD_MIN_PEAK, jcampIdx); + } + } else if (sweepTypeSt === _list_ui.LIST_UI_SWEEP_TYPE.CYCLIC_VOLTA_RM_MAX_PEAK || sweepTypeSt === _list_ui.LIST_UI_SWEEP_TYPE.CYCLIC_VOLTA_RM_MIN_PEAK) { + if (isMax) { + setUiSweepTypeAct(_list_ui.LIST_UI_SWEEP_TYPE.CYCLIC_VOLTA_RM_MAX_PEAK, jcampIdx); + } else { + setUiSweepTypeAct(_list_ui.LIST_UI_SWEEP_TYPE.CYCLIC_VOLTA_RM_MIN_PEAK, jcampIdx); + } + } + }; + const changeCheckRefPeaks = (idx, event) => { + selectRefPeaksAct({ + index: idx, + jcampIdx, + checked: event.target.checked + }); + }; + const getDelta = data => { + return data.max && data.min ? _format.default.strNumberFixedLength((0, _chem.GetCyclicVoltaPeakSeparate)(data.max.x, data.min.x) * 1000, 3) : 'nd'; + }; + const getRatio = (feature, data) => { + const featureData = feature.data[0]; + const idx = featureData.x.indexOf(feature.maxX); + const y_pecker = data.pecker ? data.pecker.y : featureData.y[idx]; + return data.max && data.min ? _format.default.strNumberFixedLength((0, _chem.GetCyclicVoltaRatio)(data.max.y, data.min.y, y_pecker), 3) : 'nd'; + }; + const rows = list.map((o, idx) => ({ + idx, + max: o.max ? `E: ${_format.default.strNumberFixedLength(parseFloat(o.max.x), 3)} V,\nI: ${formatCurrent(o.max.y, feature, cyclicVoltaState)}` : 'nd', + min: o.min ? `E: ${_format.default.strNumberFixedLength(parseFloat(o.min.x), 3)} V,\nI: ${formatCurrent(o.min.y, feature, cyclicVoltaState)}` : 'nd', + pecker: o.pecker ? `${formatCurrent(o.pecker.y, feature, cyclicVoltaState)}` : 'nd', + delta: `${getDelta(o)} mV`, + ratio: getRatio(feature, o), + e12: typeof o.e12 === 'number' ? `${_format.default.strNumberFixedLength(o.e12, 3)} V` : 'nd', + isRef: o.isRef, + onClickMax: () => selectCell(idx, true), + onClickMin: () => selectCell(idx, false), + remove: () => removePairPeakAct({ + index: idx, + jcampIdx + }), + onCheckRefChanged: e => changeCheckRefPeaks(idx, e) + })); + return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", { + className: classes.panel, + "data-testid": "PanelVoltammetry", + children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("div", { + className: classes.panelHeader, + role: "button", + tabIndex: 0, + onClick: () => setIsExpanded(prev => !prev), + onKeyDown: event => { + if (event.key === 'Enter' || event.key === ' ') { + event.preventDefault(); + setIsExpanded(prev => !prev); + } + }, + "aria-expanded": isExpanded, + children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.Typography, { + className: "txt-panel-header", + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: (0, _classnames.default)(classes.txtBadge, 'txt-sv-panel-title'), + children: "Voltammetry data" + }), ' - ', /*#__PURE__*/(0, _jsxRuntime.jsxs)("span", { + children: ["Mode: ", cyclicVoltaState.useCurrentDensity ? 'Current Density' : 'Current'] + }), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: classes.cvModeWarning, + children: "WE-ECSA must be set when switching to Current Density." + })] + }), /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", { + className: classes.panelActions, + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Tooltip, { + title: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: (0, _classnames.default)(classes.txtToolTip), + children: "Click here to open the User manual document" + }), + children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("span", { + className: classes.howToWrap, + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("a", { + target: "_blank", + rel: "noopener noreferrer", + href: userManualLink, + children: "How-To" + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Help.default, { + className: (0, _classnames.default)(classes.infoIcon) + })] + }) + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.IconButton, { + size: "small", + className: classes.toggleBtn, + onClick: event => { + event.stopPropagation(); + setIsExpanded(prev => !prev); + }, + "aria-label": isExpanded ? 'Collapse table' : 'Expand table', + children: isExpanded ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_ExpandLess.default, {}) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_ExpandMore.default, {}) + })] + })] + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Divider, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", { + className: (0, _classnames.default)(classes.tableWrap, !isExpanded && classes.tableWrapCollapsed), + children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.Table, { + className: classes.table, + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TableHead, { + children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.TableRow, { + className: classes.tableHeadRow, + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TableCell, { + align: "left", + className: (0, _classnames.default)(classes.tTxt, classes.tableHeadCell, classes.square, 'txt-sv-panel-txt'), + children: "Ref" + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TableCell, { + align: "left", + className: (0, _classnames.default)(classes.tTxt, classes.tableHeadCell, classes.square, 'txt-sv-panel-txt'), + children: "Anodic" + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TableCell, { + align: "left", + className: (0, _classnames.default)(classes.tTxt, classes.tableHeadCell, classes.square, 'txt-sv-panel-txt'), + children: "Cathodic" + }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.TableCell, { + align: "left", + className: (0, _classnames.default)(classes.tTxt, classes.tableHeadCell, classes.square, 'txt-sv-panel-txt'), + children: ["I ", /*#__PURE__*/(0, _jsxRuntime.jsx)("sub", { + children: "\u03BB0" + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Tooltip, { + title: /*#__PURE__*/(0, _jsxRuntime.jsxs)("p", { + className: (0, _classnames.default)(classes.txtToolTip), + children: ["Baseline correction value for I ratio ", /*#__PURE__*/(0, _jsxRuntime.jsx)("br", {}), "(a.k.a y value of pecker)"] + }), + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Info.default, { + className: (0, _classnames.default)(classes.infoIcon) + }) + })] + }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.TableCell, { + align: "left", + className: (0, _classnames.default)(classes.tTxt, classes.tableHeadCell, classes.square, 'txt-sv-panel-txt'), + children: ["I ratio", /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Tooltip, { + title: /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", { + className: (0, _classnames.default)(classes.txtToolTip), + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("p", { + children: "Nicholson's method" + }), /*#__PURE__*/(0, _jsxRuntime.jsx)("i", { + children: "NICHOLSON, Rl S. Semiempirical Procedure for Measuring with Stationary Electrode Polarography Rates of Chemical Reactions Involving the Product of Electron Transfer. Analytical Chemistry, 1966, 38. Jg., Nr. 10, S. 1406-1406. https://doi.org/10.1021/ac60242a030" + })] + }), + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Info.default, { + className: (0, _classnames.default)(classes.infoIcon) + }) + })] + }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.TableCell, { + align: "left", + className: (0, _classnames.default)(classes.tTxt, classes.tableHeadCell, classes.square, 'txt-sv-panel-txt'), + children: ["E", /*#__PURE__*/(0, _jsxRuntime.jsx)("sub", { + children: "1/2" + })] + }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.TableCell, { + align: "left", + className: (0, _classnames.default)(classes.tTxt, classes.tableHeadCell, classes.square, 'txt-sv-panel-txt'), + children: ["\u0394E", /*#__PURE__*/(0, _jsxRuntime.jsx)("sub", { + children: "p" + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Tooltip, { + title: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: (0, _classnames.default)(classes.txtToolTip), + children: "| Epa - Epc |" + }), + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Info.default, { + className: (0, _classnames.default)(classes.infoIcon) + }) + })] + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TableCell, { + align: "left", + className: (0, _classnames.default)(classes.tTxt, classes.tableHeadCell, classes.square, 'txt-sv-panel-txt'), + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_AddCircleOutline.default, { + onClick: () => addNewPairPeakAct(jcampIdx), + className: (0, _classnames.default)(classes.btnAddRow) + }) + })] + }) + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TableBody, { + children: rows.map(row => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.TableRow, { + className: classes.tableBodyRow, + hover: true, + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TableCell, { + align: "left", + className: (0, _classnames.default)(classes.tTxt, classes.square, 'txt-sv-panel-txt'), + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Checkbox, { + size: "small", + checked: row.isRef, + onChange: row.onCheckRefChanged, + sx: { + padding: 0 + } + }) + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TableCell, { + align: "left", + className: (0, _classnames.default)(classes.tTxt, classes.square, spectra.isWorkMaxPeak && spectra.selectedIdx === row.idx ? classes.cellSelected : 'txt-sv-panel-txt'), + onClick: row.onClickMax, + children: row.max.split('\n').map((s, index) => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_react.default.Fragment, { + children: [s, /*#__PURE__*/(0, _jsxRuntime.jsx)("br", {})] + }, index)) + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TableCell, { + align: "left", + className: (0, _classnames.default)(classes.tTxt, classes.square, !spectra.isWorkMaxPeak && spectra.selectedIdx === row.idx ? classes.cellSelected : 'txt-sv-panel-txt'), + onClick: row.onClickMin, + children: row.min.split('\n').map((s, index) => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_react.default.Fragment, { + children: [s, /*#__PURE__*/(0, _jsxRuntime.jsx)("br", {})] + }, index)) + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TableCell, { + align: "left", + className: (0, _classnames.default)(classes.tTxt, classes.square, 'txt-sv-panel-txt'), + children: row.pecker + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TableCell, { + align: "left", + className: (0, _classnames.default)(classes.tTxt, classes.square, 'txt-sv-panel-txt'), + children: row.ratio + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TableCell, { + align: "left", + className: (0, _classnames.default)(classes.tTxt, classes.square, 'txt-sv-panel-txt'), + children: row.e12 + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TableCell, { + align: "left", + className: (0, _classnames.default)(classes.tTxt, classes.square, 'txt-sv-panel-txt'), + children: row.delta + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TableCell, { + align: "left", + className: (0, _classnames.default)(classes.tTxt, classes.square, 'txt-sv-panel-txt'), + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_RemoveCircle.default, { + className: (0, _classnames.default)(classes.btnRemove), + onClick: row.remove + }) + })] + }, row.idx)) + })] + }) + })] + }); +}; +const mapStateToProps = (state, props) => ( +// eslint-disable-line +{ + cyclicVoltaState: state.cyclicvolta, + sweepTypeSt: state.ui.sweepType +}); +const mapDispatchToProps = dispatch => (0, _redux.bindActionCreators)({ + addNewPairPeakAct: _cyclic_voltammetry.addNewCylicVoltaPairPeak, + setWorkWithMaxPeakAct: _cyclic_voltammetry.setWorkWithMaxPeak, + selectPairPeakAct: _cyclic_voltammetry.selectPairPeak, + removePairPeakAct: _cyclic_voltammetry.removeCylicVoltaPairPeak, + selectRefPeaksAct: _cyclic_voltammetry.selectRefPeaks, + setUiSweepTypeAct: _ui.setUiSweepType +}, dispatch); +CyclicVoltammetryPanel.propTypes = { + classes: _propTypes.default.object.isRequired, + feature: _propTypes.default.object.isRequired, + cyclicVoltaState: _propTypes.default.object.isRequired, + addNewPairPeakAct: _propTypes.default.func.isRequired, + setWorkWithMaxPeakAct: _propTypes.default.func.isRequired, + selectPairPeakAct: _propTypes.default.func.isRequired, + removePairPeakAct: _propTypes.default.func.isRequired, + selectRefPeaksAct: _propTypes.default.func.isRequired, + setUiSweepTypeAct: _propTypes.default.func.isRequired, + sweepTypeSt: _propTypes.default.string.isRequired, + userManualLink: _propTypes.default.string, + jcampIdx: _propTypes.default.number +}; +CyclicVoltammetryPanel.defaultProps = { + jcampIdx: 0 +}; +var _default = exports.default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)((0, _styles.withStyles)(styles)(CyclicVoltammetryPanel)); \ No newline at end of file diff --git a/dist/components/panel/graph_selection.js b/dist/components/panel/graph_selection.js new file mode 100644 index 00000000..89ab9ff5 --- /dev/null +++ b/dist/components/panel/graph_selection.js @@ -0,0 +1,260 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var _react = _interopRequireWildcard(require("react")); +var _propTypes = _interopRequireDefault(require("prop-types")); +var _classnames = _interopRequireDefault(require("classnames")); +var _reactRedux = require("react-redux"); +var _redux = require("redux"); +var _ExpandMore = _interopRequireDefault(require("@mui/icons-material/ExpandMore")); +var _styles = require("@mui/styles"); +var _material = require("@mui/material"); +var _curve = require("../../actions/curve"); +var _list_layout = require("../../constants/list_layout"); +var _jsxRuntime = require("react/jsx-runtime"); +function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); } +/* eslint-disable react/function-component-definition, function-paren-newline, +react/require-default-props, react/no-unused-prop-types */ + +const styles = () => ({ + panelSummary: { + backgroundColor: '#eee', + height: 22 + }, + curve: { + width: '100%' + }, + line: { + height: '2px', + borderWidth: '0', + margin: '0' + }, + curveDefault: { + backgroundColor: '#fff', + fontSize: '0.8em', + margin: '0', + padding: '10px 2px 2px 10px', + maxWidth: '95%', + overflowWrap: 'anywhere' + }, + curveSelected: { + backgroundColor: '#2196f3', + fontSize: '0.8em', + color: '#fff', + padding: '10px 2px 2px 10px', + maxWidth: '95%', + overflowWrap: 'anywhere' + } +}); +const GraphSelectionPanel = ({ + classes, + curveSt, + entityFileNames, + subLayoutsInfo, + layoutSt, + selectCurveAct, + toggleShowAllCurveAct +}) => { + const subLayoutValues = subLayoutsInfo ? Object.keys(subLayoutsInfo) : []; + const [selectedSubLayout, setSelectedSublayout] = (0, _react.useState)(subLayoutValues[0]); + const resolvedSelectedSubLayout = subLayoutValues.includes(selectedSubLayout) ? selectedSubLayout : subLayoutValues[0] || false; + (0, _react.useEffect)(() => { + if (resolvedSelectedSubLayout !== selectedSubLayout) { + setSelectedSublayout(resolvedSelectedSubLayout); + } + }, [subLayoutsInfo]); + if (!curveSt) { + return /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {}); + } + const { + curveIdx, + listCurves, + isShowAllCurve + } = curveSt; + if (!listCurves) { + return /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {}); + } + const onChange = idx => { + selectCurveAct(idx); + }; + const onChangeTabSubLayout = (event, newValue) => { + setSelectedSublayout(newValue); + }; + const onChangeSwitch = event => { + toggleShowAllCurveAct(event.target.checked); + }; + let itemsSubLayout = []; + if (selectedSubLayout && subLayoutValues.length > 1) { + const subLayout = subLayoutsInfo?.[resolvedSelectedSubLayout]; + itemsSubLayout = Array.isArray(subLayout) ? subLayout.map((spectra, idx) => { + const spectraIdx = spectra.curveIdx; + const { + color + } = spectra; + let filename = ''; + if (entityFileNames && spectraIdx < entityFileNames.length) { + filename = entityFileNames[spectraIdx]; + } + return { + name: `${idx + 1}.`, + idx: spectraIdx, + color, + filename + }; + }) : []; + } + const items = listCurves.map((spectra, idx) => { + const { + color + } = spectra; + let filename = ''; + if (entityFileNames && idx < entityFileNames.length) { + filename = entityFileNames[idx]; + } + return { + name: `${idx + 1}.`, + idx, + color, + filename + }; + }); + return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.Accordion, { + "data-testid": "GraphSelectionPanel", + disableGutters: true, + sx: { + '&.MuiAccordion-root.Mui-expanded': { + margin: 0 + }, + '&:before': { + display: 'none' + } + }, + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.AccordionSummary, { + expandIcon: /*#__PURE__*/(0, _jsxRuntime.jsx)(_ExpandMore.default, {}), + className: (0, _classnames.default)(classes.panelSummary), + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Typography, { + className: "txt-panel-header", + children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: (0, _classnames.default)(classes.txtBadge, 'txt-sv-panel-title'), + children: "Graph selections" + }) + }) + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Divider, {}), layoutSt === _list_layout.LIST_LAYOUT.AIF ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.FormControlLabel, { + control: /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Switch, { + checked: isShowAllCurve, + onChange: onChangeSwitch + }), + label: "Show all curves" + }) : null, subLayoutValues && subLayoutValues.length > 1 ? /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", { + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Tabs, { + value: resolvedSelectedSubLayout, + onChange: onChangeTabSubLayout, + children: subLayoutValues.map(subLayout => { + let subLayoutName = ''; + switch (subLayout.toUpperCase()) { + case 'G/MOL': + subLayoutName = 'MWD'; + break; + case 'MILLILITERS': + subLayoutName = 'ELU'; + break; + case 'INTENSITY': + subLayoutName = 'Chromatogram'; + break; + case 'DEGREES CELSIUS': + subLayoutName = 'Temperature'; + break; + default: + break; + } + return /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Tab, { + value: subLayout, + label: subLayoutName + }, subLayout); + }) + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.List, { + children: itemsSubLayout.map(item => /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.ListItem, { + onClick: () => onChange(item.idx), + className: (0, _classnames.default)(item.idx === curveIdx ? classes.curveSelected : classes.curveDefault) // eslint-disable-line + , + children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("span", { + className: (0, _classnames.default)(classes.curve), + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("i", { + children: item.name + }), /*#__PURE__*/(0, _jsxRuntime.jsxs)("span", { + style: { + float: 'right', + width: '95%' + }, + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("hr", { + className: (0, _classnames.default)(classes.line), + style: { + backgroundColor: item.color + } + }), item.filename !== '' ? /*#__PURE__*/(0, _jsxRuntime.jsxs)("span", { + children: ["File: ", item.filename] + }) : null // eslint-disable-line + ] + })] + }) + }, item.idx)) + })] + }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.List, { + children: items.map(item => /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.ListItem, { + onClick: () => onChange(item.idx), + className: (0, _classnames.default)(item.idx === curveIdx ? classes.curveSelected : classes.curveDefault) // eslint-disable-line + , + children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("span", { + className: (0, _classnames.default)(classes.curve), + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("i", { + children: item.name + }), /*#__PURE__*/(0, _jsxRuntime.jsxs)("span", { + style: { + float: 'right', + width: '95%' + }, + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("hr", { + className: (0, _classnames.default)(classes.line), + style: { + backgroundColor: item.color + } + }), item.filename !== '' ? /*#__PURE__*/(0, _jsxRuntime.jsxs)("span", { + children: ["File: ", item.filename] + }) : null // eslint-disable-line + ] + })] + }) + }, item.idx)) + })] + }); +}; +const mapStateToProps = (state, props) => ( +// eslint-disable-line +{ + layoutSt: state.layout, + curveSt: state.curve +}); +const mapDispatchToProps = dispatch => (0, _redux.bindActionCreators)({ + selectCurveAct: _curve.selectCurve, + toggleShowAllCurveAct: _curve.toggleShowAllCurves +}, dispatch); +GraphSelectionPanel.propTypes = { + classes: _propTypes.default.object.isRequired, + expand: _propTypes.default.bool, + layoutSt: _propTypes.default.string.isRequired, + onExapnd: _propTypes.default.func, + onExpand: _propTypes.default.func, + curveSt: _propTypes.default.object.isRequired, + selectCurveAct: _propTypes.default.func.isRequired, + entityFileNames: _propTypes.default.array, + subLayoutsInfo: _propTypes.default.object, + toggleShowAllCurveAct: _propTypes.default.func.isRequired +}; +GraphSelectionPanel.defaultProps = { + entityFileNames: [] +}; +var _default = exports.default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)((0, _styles.withStyles)(styles)(GraphSelectionPanel)); \ No newline at end of file diff --git a/dist/components/panel/index.js b/dist/components/panel/index.js new file mode 100644 index 00000000..80bc732a --- /dev/null +++ b/dist/components/panel/index.js @@ -0,0 +1,178 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var _react = _interopRequireDefault(require("react")); +var _propTypes = _interopRequireDefault(require("prop-types")); +var _classnames = _interopRequireDefault(require("classnames")); +var _reactRedux = require("react-redux"); +var _styles = require("@mui/material/styles"); +var _withStyles = _interopRequireDefault(require("@mui/styles/withStyles")); +var _info = _interopRequireDefault(require("./info")); +var _peaks = _interopRequireDefault(require("./peaks")); +var _compare = _interopRequireDefault(require("./compare")); +var _multiplicity = _interopRequireDefault(require("./multiplicity")); +var _cyclic_voltamery_data = _interopRequireDefault(require("./cyclic_voltamery_data")); +var _graph_selection = _interopRequireDefault(require("./graph_selection")); +var _cfg = _interopRequireDefault(require("../../helpers/cfg")); +var _format = _interopRequireDefault(require("../../helpers/format")); +var _jsxRuntime = require("react/jsx-runtime"); +/* eslint-disable react/prop-types, react/require-default-props, max-len */ + +const theme = (0, _styles.createTheme)({ + typography: { + useNextVariants: true + }, + palette: { + background: { + default: '#D3D3D3' + } + } +}); +const styles = () => ({ + panels: { + maxHeight: 'calc(90vh - 220px)', + // ROI + display: 'table', + overflowX: 'hidden', + overflowY: 'auto', + margin: '5px 0 0 0', + padding: '0 0 0 0', + width: '100%' + } +}); +class PanelViewer extends _react.default.Component { + constructor(props) { + super(props); + this.state = { + expand: 'info' + }; + this.onToggleExpand = this.onToggleExpand.bind(this); + this.handleDescriptionChanged = this.handleDescriptionChanged.bind(this); + } + handleDescriptionChanged(content, delta, source, editor) { + if (source === 'user') { + const contentChanged = editor.getContents(); + this.props.onDescriptionChanged(contentChanged); // eslint-disable-line + } + } + onToggleExpand(input) { + const { + expand + } = this.state; + const nextExpand = input === expand ? '' : input; + this.setState({ + expand: nextExpand + }); + } + render() { + const { + expand + } = this.state; + const { + classes, + feature, + integration, + editorOnly, + molSvg, + descriptions, + layoutSt, + canChangeDescription, + jcampIdx, + entityFileNames, + curveSt, + userManualLink, + subLayoutsInfo, + exactMass, + entities, + hideCyclicVolta + } = this.props; + const onExpandInfo = () => this.onToggleExpand('info'); + const onExpandPeak = () => this.onToggleExpand('peak'); + const onExpandMpy = () => this.onToggleExpand('mpy'); + const onExpandCompare = () => this.onToggleExpand('compare'); + const onExpandCyclicVolta = () => this.onToggleExpand('cyclicvolta'); + const onExpandGraphSelection = () => this.onToggleExpand('graph'); + const { + listCurves + } = curveSt; + const curveCount = Array.isArray(listCurves) ? listCurves.length : 0; + const hideGraphSelection = curveCount <= 1 || _format.default.isLCMsLayout(layoutSt); + return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", { + className: (0, _classnames.default)(classes.panels), + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_styles.StyledEngineProvider, { + injectFirst: true, + children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_styles.ThemeProvider, { + theme: theme, + children: [hideGraphSelection ? null : /*#__PURE__*/(0, _jsxRuntime.jsx)(_graph_selection.default, { + jcampIdx: jcampIdx, + entityFileNames: entityFileNames, + expand: expand === 'graph', + onExpand: onExpandGraphSelection, + subLayoutsInfo: subLayoutsInfo + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_info.default, { + entities: entities, + feature: feature, + integration: integration, + editorOnly: editorOnly, + expand: expand === 'info', + molSvg: molSvg, + exactMass: exactMass, + onExpand: onExpandInfo, + descriptions: descriptions, + canChangeDescription: canChangeDescription, + onDescriptionChanged: this.handleDescriptionChanged + }), _cfg.default.hidePanelPeak(layoutSt) ? null : /*#__PURE__*/(0, _jsxRuntime.jsx)(_peaks.default, { + expand: expand === 'peak', + onExapnd: onExpandPeak + }), _cfg.default.hidePanelMpy(layoutSt) ? null : /*#__PURE__*/(0, _jsxRuntime.jsx)(_multiplicity.default, { + expand: expand === 'mpy', + onExapnd: onExpandMpy + }), _cfg.default.hidePanelCompare(layoutSt) || curveCount > 1 ? null : /*#__PURE__*/(0, _jsxRuntime.jsx)(_compare.default, { + expand: expand === 'compare', + onExapnd: onExpandCompare + }), _cfg.default.hidePanelCyclicVolta(layoutSt) || hideCyclicVolta ? null : /*#__PURE__*/(0, _jsxRuntime.jsx)(_cyclic_voltamery_data.default, { + jcampIdx: jcampIdx, + feature: feature, + expand: expand === 'cyclicvolta', + onExapnd: onExpandCyclicVolta, + userManualLink: userManualLink ? userManualLink.cv : undefined + })] + }) + }) + }); + } +} +const mapStateToProps = (state, _) => ( +// eslint-disable-line +{ + layoutSt: state.layout, + curveSt: state.curve +}); +PanelViewer.propTypes = { + classes: _propTypes.default.object.isRequired, + feature: _propTypes.default.object.isRequired, + integration: _propTypes.default.object, + editorOnly: _propTypes.default.bool.isRequired, + molSvg: _propTypes.default.string.isRequired, + descriptions: _propTypes.default.array.isRequired, + layoutSt: _propTypes.default.string.isRequired, + canChangeDescription: _propTypes.default.bool.isRequired, + onDescriptionChanged: _propTypes.default.func, + entityFileNames: _propTypes.default.array, + userManualLink: _propTypes.default.object, + curveSt: _propTypes.default.object.isRequired, + subLayoutsInfo: _propTypes.default.object, + exactMass: _propTypes.default.string, + hideCyclicVolta: _propTypes.default.bool, + entities: _propTypes.default.array +}; +PanelViewer.defaultProps = { + integration: {} +}; +var _default = exports.default = (0, _reactRedux.connect)( +// eslint-disable-line +mapStateToProps, null)((0, _withStyles.default)(styles)(PanelViewer)); // eslint-disable-line \ No newline at end of file diff --git a/dist/components/panel/info.js b/dist/components/panel/info.js new file mode 100644 index 00000000..637c2176 --- /dev/null +++ b/dist/components/panel/info.js @@ -0,0 +1,565 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var _react = _interopRequireDefault(require("react")); +var _propTypes = _interopRequireDefault(require("prop-types")); +var _classnames = _interopRequireDefault(require("classnames")); +var _reactRedux = require("react-redux"); +var _redux = require("redux"); +var _reactSvgFileZoomPan = _interopRequireDefault(require("@complat/react-svg-file-zoom-pan")); +var _reactQuill = _interopRequireDefault(require("react-quill")); +var _material = require("@mui/material"); +var _ExpandMore = _interopRequireDefault(require("@mui/icons-material/ExpandMore")); +var _styles = require("@mui/styles"); +var _format = _interopRequireDefault(require("../../helpers/format")); +var _meta = require("../../actions/meta"); +var _jsxRuntime = require("react/jsx-runtime"); +/* eslint-disable no-mixed-operators, react/function-component-definition, +react/require-default-props, max-len */ + +const styles = () => ({ + chip: { + margin: '1px 0 1px 0' + }, + panel: { + backgroundColor: '#eee', + display: 'table-row' + }, + panelSummary: { + backgroundColor: '#eee', + height: 32 + }, + subSectionHeader: { + backgroundColor: '#eee', + height: 32, + lineHeight: '32px', + paddingLeft: 10, + textAlign: 'left', + fontWeight: 'bold', + fontSize: '0.8rem', + fontFamily: 'Helvetica', + borderTop: '1px solid #dcdcdc', + color: 'rgba(0, 0, 0, 0.87)' + }, + panelDetail: { + backgroundColor: '#fff', + maxHeight: 'calc(90vh - 220px)', + // ROI + overflow: 'auto' + }, + table: { + width: 'auto' + }, + rowRoot: { + border: '1px solid #eee', + height: 36, + lineHeight: '36px', + overflow: 'hidden', + paddingLeft: 24, + textAlign: 'left' + }, + rowOdd: { + backgroundColor: '#fff', + textOverflow: 'ellipsis', + whiteSpace: 'nowrap' + }, + rowEven: { + backgroundColor: '#fafafa', + textOverflow: 'ellipsis', + whiteSpace: 'nowrap' + }, + rowOddSim: { + backgroundColor: '#fff', + height: 108, + lineHeight: '24px', + overflowY: 'hidden', + overflowWrap: 'word-break' + }, + tHead: { + fontWeight: 'bold', + float: 'left', + fontSize: '0.8rem', + fontFamily: 'Helvetica' + }, + tTxt: { + fontSize: '0.8rem', + fontFamily: 'Helvetica', + marginRight: 3 + }, + quill: { + fontSize: '0.8rem', + fontFamily: 'Helvetica', + textAlign: 'left' + }, + quillContainer: { + margin: '10px 10px', + backgroundColor: '#fff', + '& .ql-container': { + border: 'none' + }, + '& .ql-editor': { + minHeight: '60px' + }, + '& .ql-editor.ql-blank::before': { + fontStyle: 'normal', + color: 'rgba(0, 0, 0, 0.54)' + } + } +}); +const simTitle = () => 'Simulated signals from NMRshiftDB'; +const simContent = nmrSimPeaks => nmrSimPeaks && nmrSimPeaks.sort((a, b) => a - b).join(', '); +const normalizeQuillValue = val => { + if (!val) return ''; + if (val === '


' || val === '

') return ''; + return val; +}; +const chemSubStyle = { + fontSize: '0.85em', + position: 'relative', + top: '0.24em', + lineHeight: 1 +}; +const renderReadableSubscript = (txt = '') => { + if (typeof txt !== 'string') return txt; + const regex = /([A-Za-z])(\d+)/g; + if (!regex.test(txt)) return txt; + regex.lastIndex = 0; + const parts = []; + let cursor = 0; + let match = regex.exec(txt); + while (match) { + const [raw, prefix, digits] = match; + const at = match.index; + if (at > cursor) parts.push(txt.slice(cursor, at)); + parts.push(prefix); + parts.push(/*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + style: chemSubStyle, + children: digits + }, `${at}-${digits}`)); + cursor = at + raw.length; + match = regex.exec(txt); + } + if (cursor < txt.length) parts.push(txt.slice(cursor)); + return parts; +}; +const handleDescriptionChanged = (content, delta, source, editor, onDescriptionChanged) => { + if (!onDescriptionChanged) return; + onDescriptionChanged(normalizeQuillValue(content), delta, source, editor); +}; +const aucValue = (integration, hplcMsSt) => { + const values = []; + const stackIntegration = integration?.stack; + if (Array.isArray(stackIntegration)) { + let sumVal = 0.0; + stackIntegration.forEach(inte => { + if (inte.absoluteArea) { + sumVal += inte.absoluteArea; + } + }); + sumVal = sumVal.toFixed(2); + stackIntegration.forEach(inte => { + if (inte.absoluteArea) { + const areaVal = inte.absoluteArea.toFixed(2); + const percent = (areaVal * 100 / sumVal).toFixed(2); + const valStr = areaVal + " (" + percent + "%)"; // eslint-disable-line + values.push(valStr); + } + }); + } + const spectraList = hplcMsSt?.uvvis?.spectraList || []; + const listWaveLength = hplcMsSt?.uvvis?.listWaveLength || []; + spectraList.forEach((spectrum, idx) => { + const wavelength = listWaveLength[idx]; + const integrations = spectrum?.integrations || []; + if (integrations.length > 0) { + const sumArea = integrations.reduce((sum, integ) => sum + (integ.absoluteArea ?? integ.area ?? 0), 0); + const integrationStrings = integrations.map(integ => { + const rawArea = integ.absoluteArea ?? integ.area ?? 0; + const areaVal = rawArea.toFixed(2); + const percent = sumArea > 0 ? (rawArea * 100 / sumArea).toFixed(2) : '0.00'; + return `${areaVal} (${percent}%)`; + }); + values.push(`[${wavelength} nm]: ${integrationStrings.join(', ')}`); + } + }); + return values.join('\n'); +}; +const SECData = ({ + classes, + layout, + detector, + secData +}) => { + if (_format.default.isSECLayout(layout) && secData) { + const { + d, + mn, + mp, + mw + } = secData; + return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", { + children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("div", { + className: (0, _classnames.default)(classes.rowRoot, classes.rowOdd), + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: (0, _classnames.default)(classes.tTxt, classes.tHead, 'txt-sv-panel-txt'), + children: "Detector: " + }), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: (0, _classnames.default)(classes.tTxt, 'txt-sv-panel-txt'), + children: detector + })] + }), /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", { + className: (0, _classnames.default)(classes.rowRoot, classes.rowEven), + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: (0, _classnames.default)(classes.tTxt, classes.tHead, 'txt-sv-panel-txt'), + children: "D: " + }), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: (0, _classnames.default)(classes.tTxt, 'txt-sv-panel-txt'), + children: d + })] + }), /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", { + className: (0, _classnames.default)(classes.rowRoot, classes.rowOdd), + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: (0, _classnames.default)(classes.tTxt, classes.tHead, 'txt-sv-panel-txt'), + children: "MN: " + }), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: (0, _classnames.default)(classes.tTxt, 'txt-sv-panel-txt'), + children: mn + })] + }), /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", { + className: (0, _classnames.default)(classes.rowRoot, classes.rowEven), + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: (0, _classnames.default)(classes.tTxt, classes.tHead, 'txt-sv-panel-txt'), + children: "MP: " + }), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: (0, _classnames.default)(classes.tTxt, 'txt-sv-panel-txt'), + children: mp + })] + }), /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", { + className: (0, _classnames.default)(classes.rowRoot, classes.rowOdd), + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: (0, _classnames.default)(classes.tTxt, classes.tHead, 'txt-sv-panel-txt'), + children: "MW: " + }), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: (0, _classnames.default)(classes.tTxt, 'txt-sv-panel-txt'), + children: mw + })] + })] + }); + } + return null; +}; +SECData.propTypes = { + classes: _propTypes.default.object.isRequired, + layout: _propTypes.default.string.isRequired, + detector: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.object]), + secData: _propTypes.default.object +}; +SECData.defaultProps = { + detector: '' +}; +const DSCData = ({ + classes, + layout, + dscMetaData, + updateAction +}) => { + if (_format.default.isDSCLayout(layout) && dscMetaData !== undefined) { + const { + meltingPoint, + tg + } = dscMetaData; + const onChange = e => { + const { + name, + value + } = e.target; + const dataToUpdate = { + meltingPoint, + tg + }; + dataToUpdate[name] = value; + updateAction(dataToUpdate); + }; + return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", { + children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("div", { + className: (0, _classnames.default)(classes.rowRoot, classes.rowOdd), + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: (0, _classnames.default)(classes.tTxt, classes.tHead, 'txt-sv-panel-txt'), + children: "Melting Point: " + }), /*#__PURE__*/(0, _jsxRuntime.jsx)("input", { + type: "text", + name: "meltingPoint", + className: (0, _classnames.default)(classes.tTxt, 'txt-sv-panel-txt'), + value: meltingPoint, + onChange: onChange + })] + }), /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", { + className: (0, _classnames.default)(classes.rowRoot, classes.rowEven), + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: (0, _classnames.default)(classes.tTxt, classes.tHead, 'txt-sv-panel-txt'), + children: "TG: " + }), /*#__PURE__*/(0, _jsxRuntime.jsx)("input", { + type: "text", + name: "tg", + className: (0, _classnames.default)(classes.tTxt, 'txt-sv-panel-txt'), + value: tg, + onChange: onChange + })] + })] + }); + } + return null; +}; +DSCData.propTypes = { + classes: _propTypes.default.object.isRequired, + layout: _propTypes.default.string.isRequired, + dscMetaData: _propTypes.default.object, + updateAction: _propTypes.default.func.isRequired +}; +const InfoPanel = ({ + classes, + expand, + feature, + integration, + editorOnly, + molSvg, + descriptions, + layoutSt, + simulationSt, + shiftSt, + curveSt, + exactMass, + onExapnd, + onExpand, + canChangeDescription, + onDescriptionChanged, + detectorSt, + metaSt, + updateDSCMetaDataAct, + hplcMsSt, + entities +}) => { + if (!feature) return null; + const { + title, + observeFrequency, + solventName, + secData + } = feature; + const { + dscMetaData + } = metaSt; + const { + curveIdx + } = curveSt; + const { + curves = [] + } = detectorSt || {}; + const currentEntity = Array.isArray(entities) ? entities[curveIdx] : null; + const entityTitle = currentEntity?.entity?.title || currentEntity?.title || currentEntity?.spectra?.[0]?.title || currentEntity?.entity?.spectra?.[0]?.title || ''; + const displayTitle = title || entityTitle; + const getSelectedDetectorForCurve = (_detectorSt, targetCurveIdx) => { + const targetCurve = curves.find(curve => curve.curveIdx === targetCurveIdx); + return targetCurve?.selectedDetector?.name || ''; + }; + let selectedDetector = getSelectedDetectorForCurve(detectorSt, curveIdx); + + // default detector from jcamp + if (!selectedDetector && feature.detector) { + selectedDetector = feature.detector; + } + const { + shifts + } = shiftSt; + const selectedShift = shifts[curveIdx]; + let showSolvName = solventName; + if (selectedShift !== undefined) { + const shiftName = selectedShift.ref.name; + showSolvName = shiftName === '- - -' ? solventName : shiftName; + } + let originStack = null; + if (integration) { + originStack = integration.originStack; // eslint-disable-line + } + return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.Accordion, { + "data-testid": "PanelInfo", + expanded: expand, + onChange: onExpand || onExapnd, + disableGutters: true, + sx: { + '&.MuiAccordion-root.Mui-expanded': { + margin: 0 + }, + '&:before': { + display: 'none' + } + }, + TransitionProps: { + unmountOnExit: true + } // increase Accordion performance + , + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.AccordionSummary, { + expandIcon: /*#__PURE__*/(0, _jsxRuntime.jsx)(_ExpandMore.default, {}), + className: (0, _classnames.default)(classes.panelSummary), + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Typography, { + className: "txt-panel-header", + children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: (0, _classnames.default)(classes.txtBadge, 'txt-sv-panel-title'), + children: "Info" + }) + }) + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Divider, {}), /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", { + className: (0, _classnames.default)(classes.panelDetail), + children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("div", { + className: (0, _classnames.default)(classes.rowRoot, classes.rowOdd), + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: (0, _classnames.default)(classes.tTxt, classes.tHead, 'txt-sv-panel-txt'), + children: "Title : " + }), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: (0, _classnames.default)(classes.tTxt, 'txt-sv-panel-txt'), + children: displayTitle + })] + }), _format.default.isNmrLayout(layoutSt) ? /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", { + className: (0, _classnames.default)(classes.rowRoot, classes.rowEven), + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: (0, _classnames.default)(classes.tTxt, classes.tHead, 'txt-sv-panel-txt'), + children: "Freq : " + }), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: (0, _classnames.default)(classes.tTxt, 'txt-sv-panel-txt'), + children: `${parseInt(observeFrequency, 10)} MHz` || ' - ' + })] + }) : null, _format.default.isNmrLayout(layoutSt) ? /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", { + className: (0, _classnames.default)(classes.rowRoot, classes.rowOdd), + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: (0, _classnames.default)(classes.tTxt, classes.tHead, 'txt-sv-panel-txt'), + children: "Solv : " + }), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: (0, _classnames.default)(classes.tTxt, 'txt-sv-panel-txt'), + children: renderReadableSubscript(showSolvName) + })] + }) : null, _format.default.isMsLayout(layoutSt) && exactMass ? /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", { + className: (0, _classnames.default)(classes.rowRoot, classes.rowOdd), + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: (0, _classnames.default)(classes.tTxt, classes.tHead, 'txt-sv-panel-txt'), + children: "Exact mass: " + }), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: (0, _classnames.default)(classes.tTxt, 'txt-sv-panel-txt'), + children: `${parseFloat(exactMass).toFixed(6)} g/mol` + })] + }) : null, /*#__PURE__*/(0, _jsxRuntime.jsx)(SECData, { + classes: classes, + layout: layoutSt, + detector: selectedDetector, + secData: secData + }), !molSvg ? null : /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactSvgFileZoomPan.default, { + svg: molSvg, + duration: 300, + resize: true + }), _format.default.isHplcUvVisLayout(layoutSt) ? /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", { + className: (0, _classnames.default)(classes.rowRoot, classes.rowOddSim), + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: (0, _classnames.default)(classes.tTxt, classes.tHead, 'txt-sv-panel-txt'), + children: "Area under curve (AUC):" + }), /*#__PURE__*/(0, _jsxRuntime.jsx)("br", {}), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: (0, _classnames.default)(classes.tTxt, classes.tTxtSim, 'txt-sv-panel-txt'), + children: aucValue(integration) + })] + }) : null, /*#__PURE__*/(0, _jsxRuntime.jsx)(DSCData, { + classes: classes, + layout: layoutSt, + dscMetaData: dscMetaData, + updateAction: updateDSCMetaDataAct + }), !_format.default.isCyclicVoltaLayout(layoutSt) ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, { + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", { + className: classes.subSectionHeader, + children: "Content" + }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", { + className: classes.quillContainer, + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactQuill.default, { + className: (0, _classnames.default)(classes.quill, 'card-sv-quill'), + value: normalizeQuillValue(descriptions), + placeholder: canChangeDescription ? 'Peaks will be written here...' : undefined, + readOnly: !canChangeDescription, + modules: { + toolbar: false + }, + onChange: (content, delta, source, editor) => handleDescriptionChanged(content, delta, source, editor, onDescriptionChanged) + }) + })] + }) : null, !editorOnly && _format.default.isNmrLayout(layoutSt) ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, { + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", { + className: classes.subSectionHeader, + children: simTitle() + }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", { + className: (0, _classnames.default)(classes.rowRoot, classes.rowOddSim), + children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: (0, _classnames.default)(classes.tTxt, classes.tTxtSim, 'txt-sv-panel-txt'), + children: simContent(simulationSt.nmrSimPeaks) + }) + })] + }) : null] + }), _format.default.isLCMsLayout(layoutSt) ? /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", { + className: (0, _classnames.default)(classes.rowRoot, classes.rowOddSim), + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: (0, _classnames.default)(classes.tTxt, classes.tHead, 'txt-sv-panel-txt'), + children: "Area under curve (AUC):" + }), /*#__PURE__*/(0, _jsxRuntime.jsx)("br", {}), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", { + className: (0, _classnames.default)(classes.tTxt, classes.tTxtSim, 'txt-sv-panel-txt'), + style: { + maxHeight: '80px', + overflowY: 'auto', + overflowX: 'hidden', + wordBreak: 'break-word', + marginBottom: '100px' + }, + children: aucValue(integration, hplcMsSt).split('\n').map((line, idx) => /*#__PURE__*/(0, _jsxRuntime.jsx)("div", { + children: line + }, idx)) + })] + }) : null] + }); +}; +const mapStateToProps = (state, props) => ( +// eslint-disable-line +{ + layoutSt: state.layout, + simulationSt: state.simulation, + shiftSt: state.shift, + curveSt: state.curve, + detectorSt: state.detector, + metaSt: state.meta, + hplcMsSt: state.hplcMs +}); +const mapDispatchToProps = dispatch => (0, _redux.bindActionCreators)({ + updateDSCMetaDataAct: _meta.updateDSCMetaData +}, dispatch); +InfoPanel.propTypes = { + classes: _propTypes.default.object.isRequired, + expand: _propTypes.default.bool.isRequired, + feature: _propTypes.default.object, + integration: _propTypes.default.object, + editorOnly: _propTypes.default.bool.isRequired, + molSvg: _propTypes.default.string.isRequired, + descriptions: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.array]).isRequired, + layoutSt: _propTypes.default.string.isRequired, + simulationSt: _propTypes.default.object.isRequired, + shiftSt: _propTypes.default.object.isRequired, + curveSt: _propTypes.default.object.isRequired, + onExpand: _propTypes.default.func, + onExapnd: _propTypes.default.func, + canChangeDescription: _propTypes.default.bool.isRequired, + onDescriptionChanged: _propTypes.default.func, + exactMass: _propTypes.default.string, + detectorSt: _propTypes.default.object.isRequired, + metaSt: _propTypes.default.object.isRequired, + updateDSCMetaDataAct: _propTypes.default.func.isRequired, + hplcMsSt: _propTypes.default.object.isRequired, + entities: _propTypes.default.array +}; +var _default = exports.default = (0, _reactRedux.connect)( +// eslint-disable-line +mapStateToProps, mapDispatchToProps)((0, _styles.withStyles)(styles)(InfoPanel)); // eslint-disable-line \ No newline at end of file diff --git a/dist/components/panel/multiplicity.js b/dist/components/panel/multiplicity.js new file mode 100644 index 00000000..52d50227 --- /dev/null +++ b/dist/components/panel/multiplicity.js @@ -0,0 +1,311 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var _react = _interopRequireDefault(require("react")); +var _propTypes = _interopRequireDefault(require("prop-types")); +var _classnames = _interopRequireDefault(require("classnames")); +var _reactRedux = require("react-redux"); +var _redux = require("redux"); +var _material = require("@mui/material"); +var _ExpandMore = _interopRequireDefault(require("@mui/icons-material/ExpandMore")); +var _HighlightOff = _interopRequireDefault(require("@mui/icons-material/HighlightOff")); +var _styles = require("@mui/styles"); +var _RefreshOutlined = _interopRequireDefault(require("@mui/icons-material/RefreshOutlined")); +var _multiplicity = require("../../actions/multiplicity"); +var _multiplicity_select = _interopRequireDefault(require("./multiplicity_select")); +var _multiplicity_coupling = _interopRequireDefault(require("./multiplicity_coupling")); +var _multiplicity_calc = require("../../helpers/multiplicity_calc"); +var _jsxRuntime = require("react/jsx-runtime"); +/* eslint-disable function-paren-newline, +function-call-argument-newline, react/function-component-definition */ + +const styles = theme => ({ + panel: { + backgroundColor: '#eee', + display: 'table-row' + }, + panelSummary: { + backgroundColor: '#eee', + height: 32 + }, + txtBadge: {}, + panelDetail: { + backgroundColor: '#fff', + maxHeight: 'calc(90vh - 220px)', + // ROI + overflow: 'auto' + }, + table: { + width: '100%' + }, + tRowHeadPos: { + backgroundColor: '#2196f3', + height: 32 + }, + tRowHeadNeg: { + backgroundColor: '#fa004f', + height: 32 + }, + tTxtHead: { + color: 'white', + padding: '4px 0 4px 5px' + }, + tTxtHeadXY: { + color: 'white', + padding: '4px 0 4px 90px' + }, + tTxt: { + padding: 0 + }, + tRow: { + height: 28, + '&:nth-of-type(even)': { + backgroundColor: theme.palette ? theme.palette.background.default : '#d3d3d3' + } + }, + rmBtn: { + color: 'red', + '&:hover': { + borderRadius: 12, + backgroundColor: 'red', + color: 'white' + } + }, + moCard: { + textAlign: 'left' + }, + moCardHead: { + backgroundColor: '#999', + color: 'white' + }, + moExtId: { + border: '2px solid white', + borderRadius: 12, + color: 'white', + margin: '0 5px 0 5px', + padding: '0 5px 0 5px' + }, + moExtTxt: { + margin: '0 5px 0 5x', + fontSize: '0.8rem', + fontFamily: 'Helvetica' + }, + moSelect: { + margin: '0 5x 0 5px', + fontSize: '0.8rem', + fontFamily: 'Helvetica' + }, + moCBox: { + marginLeft: 24, + padding: '4px 0 4px 4px' + }, + btnRf: { + color: '#fff', + float: 'right', + minWidth: 40, + right: 15 + } +}); +const cBoxStyle = () => ({ + root: { + color: 'white', + '&$checked': { + color: 'white' + } + }, + checked: {} +}); +const MUCheckbox = (0, _styles.withStyles)(cBoxStyle)(_material.Checkbox); +const createData = (idx, xExtent, peaks, shift, smExtext, mpyType, js, onClick, onRefresh) => ({ + idx: idx + 1, + xExtent, + onClick, + onRefresh, + peaks, + center: (0, _multiplicity_calc.calcMpyCenter)(peaks, shift, mpyType), + jStr: (0, _multiplicity_calc.calcMpyJStr)(js), + mpyType, + isCheck: smExtext.xL === xExtent.xL && smExtext.xU === xExtent.xU +}); +const pkList = (classes, row, shift, digits, rmMpyPeakByPanelAct) => row.peaks.map(pk => { + const { + xExtent + } = row; + const cb = () => rmMpyPeakByPanelAct({ + peak: pk, + xExtent + }); + const rmBtn = /*#__PURE__*/(0, _jsxRuntime.jsx)(_HighlightOff.default, { + onClick: cb, + className: classes.rmBtn + }); + return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.TableRow, { + className: classes.tRow, + hover: true, + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TableCell, { + align: "right", + className: (0, _classnames.default)(classes.tTxt, 'txt-sv-panel-txt'), + children: `(${(pk.x - shift).toFixed(digits)}, ${pk.y.toExponential(2)})` + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TableCell, { + align: "right", + className: (0, _classnames.default)(classes.tTxt, 'txt-sv-panel-txt'), + children: rmBtn + })] + }, pk.x); +}); +const refreshBtn = (classes, onRefresh) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Tooltip, { + placement: "left", + title: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: "txt-sv-tp", + children: "Calculate Multiplicity" + }), + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Button, { + className: classes.btnRf, + onClick: onRefresh, + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_RefreshOutlined.default, {}) + }) +}); +const mpyList = (classes, digits, multiplicitySt, curveSt, clickMpyOneAct, rmMpyPeakByPanelAct, resetMpyOneAct) => { + const { + curveIdx + } = curveSt; + const { + multiplicities + } = multiplicitySt; + let selectedMulti = multiplicities[curveIdx]; + if (selectedMulti === undefined) { + selectedMulti = { + stack: [], + shift: 0, + smExtext: false, + edited: false + }; + } + const { + stack, + shift, + smExtext + } = selectedMulti; + const rows = stack.map((k, idx) => { + const { + peaks, + xExtent, + mpyType, + js + } = k; + const onRefresh = () => resetMpyOneAct(xExtent); + const onClick = e => { + e.stopPropagation(); + e.preventDefault(); + const payload = { + curveIdx, + payloadData: xExtent + }; + clickMpyOneAct(payload); + }; + return createData(idx, xExtent, peaks, shift, smExtext, mpyType, js, onClick, onRefresh); + }); + return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", { + children: rows.map(row => /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", { + className: classes.moCard, + children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("div", { + className: classes.moCardHead, + children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("div", { + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(MUCheckbox, { + className: classes.moCBox, + checked: row.isCheck, + onChange: row.onClick + }), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: (0, _classnames.default)(classes.moExtTxt, classes.moExtId, 'txt-sv-panel-head'), + children: row.idx + }), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: (0, _classnames.default)(classes.moExtTxt, 'txt-sv-panel-head'), + children: `${row.center.toFixed(3)} (ppm)` + }), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: (0, _classnames.default)(classes.moSelect, 'txt-sv-panel-head'), + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_multiplicity_select.default, { + target: row + }) + }), refreshBtn(classes, row.onRefresh)] + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_multiplicity_coupling.default, { + row: row + })] + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Table, { + className: classes.table, + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TableBody, { + children: pkList(classes, row, shift, digits, rmMpyPeakByPanelAct) + }) + })] + }, row.idx)) + }); +}; +const MultiplicityPanel = ({ + classes, + expand, + onExapnd, + multiplicitySt, + curveSt, + clickMpyOneAct, + rmMpyPeakByPanelAct, + resetMpyOneAct +}) => { + const digits = 4; + return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.Accordion, { + expanded: expand, + onChange: onExapnd, + disableGutters: true, + sx: { + '&.MuiAccordion-root.Mui-expanded': { + margin: 0 + }, + '&:before': { + display: 'none' + } + }, + TransitionProps: { + unmountOnExit: true + } // increase Accordion performance + , + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.AccordionSummary, { + expandIcon: /*#__PURE__*/(0, _jsxRuntime.jsx)(_ExpandMore.default, {}), + className: (0, _classnames.default)(classes.panelSummary), + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Typography, { + className: "txt-panel-header", + children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: (0, _classnames.default)(classes.txtBadge, 'txt-sv-panel-title'), + children: "Multiplicity" + }) + }) + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Divider, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", { + className: (0, _classnames.default)(classes.panelDetail), + children: mpyList(classes, digits, multiplicitySt, curveSt, clickMpyOneAct, rmMpyPeakByPanelAct, resetMpyOneAct) + })] + }); +}; +const mapStateToProps = (state, props) => ( +// eslint-disable-line +{ + integrationSt: state.integration.present, + multiplicitySt: state.multiplicity.present, + curveSt: state.curve +}); +const mapDispatchToProps = dispatch => (0, _redux.bindActionCreators)({ + clickMpyOneAct: _multiplicity.clickMpyOne, + rmMpyPeakByPanelAct: _multiplicity.rmMpyPeakByPanel, + resetMpyOneAct: _multiplicity.resetMpyOne +}, dispatch); +MultiplicityPanel.propTypes = { + classes: _propTypes.default.object.isRequired, + expand: _propTypes.default.bool.isRequired, + onExapnd: _propTypes.default.func.isRequired, + multiplicitySt: _propTypes.default.object.isRequired, + clickMpyOneAct: _propTypes.default.func.isRequired, + rmMpyPeakByPanelAct: _propTypes.default.func.isRequired, + resetMpyOneAct: _propTypes.default.func.isRequired, + curveSt: _propTypes.default.object.isRequired +}; +var _default = exports.default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)((0, _styles.withStyles)(styles)(MultiplicityPanel)); \ No newline at end of file diff --git a/dist/components/panel/multiplicity_coupling.js b/dist/components/panel/multiplicity_coupling.js new file mode 100644 index 00000000..e245ceee --- /dev/null +++ b/dist/components/panel/multiplicity_coupling.js @@ -0,0 +1,139 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var _react = _interopRequireDefault(require("react")); +var _reactRedux = require("react-redux"); +var _redux = require("redux"); +var _classnames = _interopRequireDefault(require("classnames")); +var _propTypes = _interopRequireDefault(require("prop-types")); +var _styles = require("@mui/styles"); +var _material = require("@mui/material"); +var _multiplicity = require("../../actions/multiplicity"); +var _jsxRuntime = require("react/jsx-runtime"); +const styles = () => ({ + jDiv: { + height: 28 + }, + jTxt: { + margin: '0 5px 4px 60px' + }, + moExtTxt: { + margin: '0 5px 0 5x', + fontSize: '0.8rem', + fontFamily: 'Helvetica' + }, + txtField: { + width: 260, + margin: '0 3px 0 3px' + }, + txtInput: { + color: 'white', + fontSize: '0.9rem', + fontFamily: 'Helvetica', + height: 24 + } +}); +const txtJ = () => /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.InputAdornment, { + position: "start", + children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: "txt-cmd-j", + children: "J\xA0=" + }) +}); +const txtHz = () => /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.InputAdornment, { + position: "end", + children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: "txt-cmd-hz", + children: "Hz" + }) +}); +class MpyCoupling extends _react.default.Component { + constructor(props) { + super(props); + this.state = { + focus: false, + tmpVal: false + }; + this.onFocus = this.onFocus.bind(this); + this.onBlur = this.onBlur.bind(this); + this.onChange = this.onChange.bind(this); + } + onFocus() { + this.setState({ + focus: true + }); + } + onBlur() { + const { + row, + updateMpyJAct + } = this.props; + const { + tmpVal + } = this.state; + const { + xExtent + } = row; + this.setState({ + focus: false, + tmpVal: false + }); + updateMpyJAct({ + xExtent, + value: tmpVal + }); + } + onChange(e) { + this.setState({ + tmpVal: e.target.value + }); + } + render() { + const { + classes, + row + } = this.props; + const { + focus, + tmpVal + } = this.state; + const value = focus && (tmpVal || tmpVal === '') ? tmpVal : row.jStr; + return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", { + className: (0, _classnames.default)(classes.jDiv), + children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: (0, _classnames.default)(classes.moExtTxt, classes.jTxt, 'txt-sv-panel-head'), + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TextField, { + className: (0, _classnames.default)(classes.txtField, 'txt-cmd-field'), + placeholder: "-", + value: value, + margin: "none", + InputProps: { + startAdornment: txtJ(), + endAdornment: txtHz(), + className: (0, _classnames.default)(classes.txtInput, 'txt-sv-input-label') + }, + onChange: this.onChange, + onFocus: this.onFocus, + onBlur: this.onBlur, + variant: "outlined" + }) + }) + }); + } +} +const mapStateToProps = (state, props) => ( +// eslint-disable-line +{}); +const mapDispatchToProps = dispatch => (0, _redux.bindActionCreators)({ + updateMpyJAct: _multiplicity.updateMpyJ +}, dispatch); +MpyCoupling.propTypes = { + classes: _propTypes.default.object.isRequired, + row: _propTypes.default.object.isRequired, + updateMpyJAct: _propTypes.default.func.isRequired +}; +var _default = exports.default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)((0, _styles.withStyles)(styles)(MpyCoupling)); \ No newline at end of file diff --git a/dist/components/panel/multiplicity_select.js b/dist/components/panel/multiplicity_select.js new file mode 100644 index 00000000..056ae028 --- /dev/null +++ b/dist/components/panel/multiplicity_select.js @@ -0,0 +1,88 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var _react = _interopRequireDefault(require("react")); +var _propTypes = _interopRequireDefault(require("prop-types")); +var _classnames = _interopRequireDefault(require("classnames")); +var _reactRedux = require("react-redux"); +var _redux = require("redux"); +var _material = require("@mui/material"); +var _styles = require("@mui/styles"); +var _multiplicity = require("../../actions/multiplicity"); +var _jsxRuntime = require("react/jsx-runtime"); +/* eslint-disable react/function-component-definition */ + +const Styles = () => ({ + formControl: { + minWidth: 50, + margin: '2px 3px 0 3px' + }, + txtField: { + width: 120, + margin: '3px 3px 3px 3px' + }, + txtInput: { + height: 24, + fontSize: '0.9rem', + fontFamily: 'Helvetica', + color: 'white' + } +}); +const MpySelect = ({ + classes, + target, + selectMpyTypeAct +}) => { + const { + mpyType, + xExtent + } = target; + const onBlur = e => selectMpyTypeAct({ + xExtent, + mpyType: e.target.value + }); + const onChange = e => selectMpyTypeAct({ + xExtent, + mpyType: e.target.value + }); + const onEnterPress = e => { + if (e.key === 'Enter') { + selectMpyTypeAct({ + xExtent, + mpyType: e.target.value + }); + } + }; + return /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.FormControl, { + className: (0, _classnames.default)(classes.formControl), + variant: "outlined", + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TextField, { + className: (0, _classnames.default)(classes.txtField, 'txt-cmd-field'), + value: mpyType, + margin: "none", + variant: "outlined", + InputProps: { + className: (0, _classnames.default)(classes.txtInput, 'txt-sv-input-label') + }, + onChange: onChange, + onBlur: onBlur, + onKeyPress: onEnterPress + }) + }); +}; +const mapStateToProps = (state, props) => ( +// eslint-disable-line +{}); +const mapDispatchToProps = dispatch => (0, _redux.bindActionCreators)({ + selectMpyTypeAct: _multiplicity.selectMpyType +}, dispatch); +MpySelect.propTypes = { + classes: _propTypes.default.object.isRequired, + target: _propTypes.default.object.isRequired, + selectMpyTypeAct: _propTypes.default.func.isRequired +}; +var _default = exports.default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)((0, _styles.withStyles)(Styles)(MpySelect)); \ No newline at end of file diff --git a/dist/components/panel/peaks.js b/dist/components/panel/peaks.js new file mode 100644 index 00000000..4513c8f0 --- /dev/null +++ b/dist/components/panel/peaks.js @@ -0,0 +1,240 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var _react = _interopRequireDefault(require("react")); +var _propTypes = _interopRequireDefault(require("prop-types")); +var _classnames = _interopRequireDefault(require("classnames")); +var _reactRedux = require("react-redux"); +var _redux = require("redux"); +var _material = require("@mui/material"); +var _ExpandMore = _interopRequireDefault(require("@mui/icons-material/ExpandMore")); +var _HighlightOff = _interopRequireDefault(require("@mui/icons-material/HighlightOff")); +var _styles = require("@mui/styles"); +var _chem = require("../../helpers/chem"); +var _edit_peak = require("../../actions/edit_peak"); +var _format = _interopRequireDefault(require("../../helpers/format")); +var _jsxRuntime = require("react/jsx-runtime"); +/* eslint-disable react/function-component-definition, no-unused-vars */ + +const styles = theme => ({ + chip: { + margin: '1px 0 1px 0' + }, + panel: { + backgroundColor: '#eee', + display: 'table-row' + }, + panelSummary: { + backgroundColor: '#eee', + height: 32 + }, + txtBadge: {}, + panelDetail: { + backgroundColor: '#fff', + maxHeight: 'calc(90vh - 220px)', + // ROI + overflow: 'auto' + }, + table: { + width: '100%' + }, + tRowHeadPos: { + backgroundColor: '#999', + height: 32 + }, + tRowHeadNeg: { + backgroundColor: '#999', + height: 32 + }, + tTxtHead: { + color: 'white', + padding: '5px 5px 5px 5px' + }, + tTxtHeadXY: { + color: 'white', + padding: '4px 0 4px 90px' + }, + tTxt: { + padding: '4px 0 4px 0' + }, + tRow: { + height: 28, + '&:nth-of-type(even)': { + backgroundColor: theme.palette ? theme.palette.background.default : '#d3d3d3' + } + }, + rmBtn: { + color: 'red', + '&:hover': { + borderRadius: 12, + backgroundColor: 'red', + color: 'white' + } + } +}); +const createData = (classes, idx, x, y, cb, digits) => ({ + idx: idx + 1, + x: x.toFixed(digits), + y, + rmBtn: /*#__PURE__*/(0, _jsxRuntime.jsx)(_HighlightOff.default, { + onClick: cb, + className: classes.rmBtn + }) +}); +const peakList = (peaks, digits, cbAct, classes, isPos) => { + const rows = peaks.map((pp, idx) => { + const onDelete = () => cbAct(pp); + return createData(classes, idx, pp.x, pp.y, onDelete, digits); + }); + const rowKlass = isPos ? classes.tRowHeadPos : classes.tRowHeadNeg; + const headTxt = isPos ? 'P+' : 'P-'; + return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.Table, { + className: classes.table, + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TableHead, { + children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.TableRow, { + className: rowKlass, + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TableCell, { + align: "right", + className: (0, _classnames.default)(classes.tTxtHead, 'txt-sv-panel-head'), + children: /*#__PURE__*/(0, _jsxRuntime.jsx)("i", { + children: headTxt + }) + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TableCell, { + align: "right", + className: (0, _classnames.default)(classes.tTxtHeadXY, 'txt-sv-panel-head'), + children: "X" + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TableCell, { + align: "right", + className: (0, _classnames.default)(classes.tTxtHeadXY, 'txt-sv-panel-head'), + children: "Y" + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TableCell, { + align: "right", + className: (0, _classnames.default)(classes.tTxtHead, 'txt-sv-panel-head'), + children: "-" + })] + }) + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TableBody, { + children: rows.map(row => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.TableRow, { + className: classes.tRow, + hover: true, + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TableCell, { + align: "right", + className: (0, _classnames.default)(classes.tTxt, 'txt-sv-panel-txt'), + children: row.idx + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TableCell, { + align: "right", + className: (0, _classnames.default)(classes.tTxt, 'txt-sv-panel-txt'), + children: row.x + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TableCell, { + align: "right", + className: (0, _classnames.default)(classes.tTxt, 'txt-sv-panel-txt'), + children: row.y.toExponential(2) + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TableCell, { + align: "right", + className: (0, _classnames.default)(classes.tTxt, 'txt-sv-panel-txt'), + children: row.rmBtn + })] + }, row.idx)) + })] + }); +}; +const PeakPanel = ({ + editPeakSt, + layoutSt, + classes, + expand, + onExapnd, + rmFromPosListAct, + rmFromNegListAct, + curveSt +}) => { + const { + curveIdx, + listCurves + } = curveSt; + const { + peaks + } = editPeakSt; + if (curveIdx >= peaks.length) { + return null; + } + const selectedEditPeaks = peaks[curveIdx]; + if (!selectedEditPeaks) { + return null; + } + const { + pos, + neg + } = selectedEditPeaks; + const selectedCurve = listCurves[curveIdx]; + if (!selectedCurve) { + return null; + } + const { + feature + } = selectedCurve; + const currentPeakOfCurve = (0, _chem.Convert2Peak)(feature); + const filteredArray = currentPeakOfCurve.filter(element => neg.includes(element)); + const peaksData = [].concat(filteredArray).concat(pos); + const digits = _format.default.isEmWaveLayout(layoutSt) ? 0 : 4; + return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.Accordion, { + "data-testid": "PeaksPanelInfo", + expanded: expand, + onChange: onExapnd, + disableGutters: true, + sx: { + '&.MuiAccordion-root.Mui-expanded': { + margin: 0 + }, + '&:before': { + display: 'none' + } + }, + TransitionProps: { + unmountOnExit: true + } // increase Accordion performance + , + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.AccordionSummary, { + expandIcon: /*#__PURE__*/(0, _jsxRuntime.jsx)(_ExpandMore.default, {}), + className: (0, _classnames.default)(classes.panelSummary), + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Typography, { + className: "txt-panel-header", + children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: (0, _classnames.default)(classes.txtBadge, 'txt-sv-panel-title'), + children: "Peaks" + }) + }) + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Divider, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", { + className: (0, _classnames.default)(classes.panelDetail), + children: peakList(peaksData, digits, rmFromPosListAct, classes, true) + })] + }); +}; +const mapStateToProps = (state, props) => ( +// eslint-disable-line +{ + editPeakSt: state.editPeak.present, + layoutSt: state.layout, + curveSt: state.curve +}); +const mapDispatchToProps = dispatch => (0, _redux.bindActionCreators)({ + rmFromPosListAct: _edit_peak.rmFromPosList, + rmFromNegListAct: _edit_peak.rmFromNegList +}, dispatch); +PeakPanel.propTypes = { + classes: _propTypes.default.object.isRequired, + expand: _propTypes.default.bool.isRequired, + editPeakSt: _propTypes.default.object.isRequired, + layoutSt: _propTypes.default.string.isRequired, + onExapnd: _propTypes.default.func.isRequired, + rmFromPosListAct: _propTypes.default.func.isRequired, + rmFromNegListAct: _propTypes.default.func.isRequired, + curveSt: _propTypes.default.object.isRequired +}; +var _default = exports.default = (0, _reactRedux.connect)( +// eslint-disable-line +mapStateToProps, mapDispatchToProps)((0, _styles.withStyles)(styles)(PeakPanel)); // eslint-disable-line \ No newline at end of file diff --git a/dist/constants/action_type.js b/dist/constants/action_type.js new file mode 100644 index 00000000..0963862b --- /dev/null +++ b/dist/constants/action_type.js @@ -0,0 +1,171 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.XRD = exports.UI = exports.THRESHOLD = exports.SUBMIT = exports.STATUS = exports.SIMULATION = exports.SHIFT = exports.SEC = exports.SCAN = exports.MULTIPLICITY = exports.META = exports.MANAGER = exports.LAYOUT = exports.JCAMP = exports.INTEGRATION = exports.HPLC_MS = exports.FORECAST = exports.EDITPEAK = exports.CYCLIC_VOLTA_METRY = exports.CURVE = exports.AXES = void 0; +const THRESHOLD = exports.THRESHOLD = { + UPDATE_VALUE: 'THRESHOLD_UPDATE_VALUE', + RESET_VALUE: 'THRESHOLD_RESET_VALUE', + TOGGLE_ISEDIT: 'THRESHOLD_TOGGLE_ISEDIT', + UPDATE_UPPER_VALUE: 'THRESHOLD_UPDATE_UPPER_VALUE', + UPDATE_LOWER_VALUE: 'THRESHOLD_UPDATE_LOWER_VALUE' +}; +const EDITPEAK = exports.EDITPEAK = { + ADD_POSITIVE: 'ADD_TO_POSITIVE_EDITPEAK_LIST', + ADD_NEGATIVE: 'ADD_TO_NEGATIVE_EDITPEAK_LIST', + RM_NEGATIVE: 'RM_FROM_NEGATIVE_EDITPEAK_LIST', + RM_POSITIVE: 'RM_FROM_POSITIVE_EDITPEAK_LIST', + SHIFT: 'EDITPEAK_SHIFT', + CLEAR_ALL: 'EDITPEAK_CLEAR_ALL' +}; +const STATUS = exports.STATUS = { + TOGGLEBTNSUBMIT: 'TOGGLE_BTN_SUBMIT', + TOGGLEBTNALL: 'TOGGLE_BTN_ALL', + ENABLEBTNALL: 'ENABLE_BTN_ALL' +}; +const MANAGER = exports.MANAGER = { + RESETALL: 'RESET_ALL', + RESETSHIFT: 'RESET_SHIFT', + RESET_INIT_COMMON: 'RESET_INIT_COMMON', + RESET_INIT_NMR: 'RESET_INIT_NMR', + RESET_INIT_MS: 'RESET_INIT_MS', + RESET_INIT_COMMON_WITH_INTERGATION: 'RESET_INIT_COMMON_WITH_INTERGATION', + RESET_DETECTOR: 'RESET_DETECTOR', + RESET_MULTIPLICITY: 'RESET_MULTIPLICITY' +}; +const LAYOUT = exports.LAYOUT = { + UPDATE: 'UPDATE_LAYOUT' +}; +const SHIFT = exports.SHIFT = { + SET_REF: 'SHIFT_SET_REF', + SET_PEAK: 'SHIFT_SET_PEAK', + RM_PEAK: 'SHIFT_RM_PEAK' +}; +const SCAN = exports.SCAN = { + SET_TARGET: 'SCAN_SET_TARGET', + RESET_TARGET: 'SCAN_RESET_TARGET', + TOGGLE_ISAUTO: 'SCAN_TOGGLE_ISAUTO' +}; +const UI = exports.UI = { + CLICK_TARGET: 'UI_CLICK_TARGET', + VIEWER: { + SET_TYPE: 'UI_VIEWER_SET_TYPE' + }, + SWEEP: { + SET_TYPE: 'UI_SWEEP_SET_TYPE', + SELECT: 'UI_SWEEP_SELECT', + SELECT_ZOOMIN: 'UI_SWEEP_SELECT_ZOOMIN', + SELECT_ZOOMIN_SUBVIEW: 'UI_SWEEP_SELECT_ZOOMIN', + SELECT_ZOOMRESET: 'UI_SWEEP_SELECT_ZOOMRESET', + SELECT_INTEGRATION: 'UI_SWEEP_SELECT_INTEGRATION', + SELECT_MULTIPLICITY: 'UI_SWEEP_SELECT_MULTIPLICITY', + SELECT_MULTIPLICITY_RDC: 'UI_SWEEP_SELECT_MULTIPLICITY_RDC' + }, + WHEEL: { + SCROLL: 'UI_WHEEL_SCROLL' + }, + SUB_VIEWER: { + DISPLAY_VIEWER_AT: 'DISPLAY_VIEWER_AT' + } +}; +const FORECAST = exports.FORECAST = { + INIT_STATUS: 'FORECAST_INIT_STATUS', + SET_IR_STATUS: 'FORECAST_SET_IR_STATUS', + SET_NMR_STATUS: 'FORECAST_SET_NMR_STATUS', + CLEAR_STATUS: 'FORECAST_CLEAR_STATUS' +}; +const SUBMIT = exports.SUBMIT = { + TOGGLE_IS_ASCEND: 'SUBMIT_TOGGLE_IS_ASCEND', + TOGGLE_IS_INTENSITY: 'SUBMIT_TOGGLE_IS_INTENSITY', + UPDATE_OPERATION: 'SUBMIT_UPDATE_OPERATION', + UPDATE_DECIMAL: 'SUBMIT_UPDATE_DECIMAL' +}; +const INTEGRATION = exports.INTEGRATION = { + RM_ONE: 'INTEGRATION_RM_ONE', + SET_REF: 'INTEGRATION_SET_REF', + SET_FKR: 'INTEGRATION_SET_FKR', + RESET_ALL_RDC: 'INTEGRATION_RESET_ALL_RDC', + CLEAR_ALL: 'INTEGRATION_CLEAR_ALL', + SWEEP: 'INTEGRATION_SWEEP' +}; +const SIMULATION = exports.SIMULATION = { + RESET_ALL_RDC: 'SIMULATION_RESET_ALL_RDC' +}; +const MULTIPLICITY = exports.MULTIPLICITY = { + ONE_CLICK: 'MULTIPLICITY_ONE_CLICK', + ONE_CLICK_BY_UI: 'MULTIPLICITY_ONE_CLICK_BY_UI', + PEAK_RM_BY_PANEL: 'MULTIPLICITY_PEAK_RM_BY_PANEL', + PEAK_RM_BY_PANEL_RDC: 'MULTIPLICITY_PEAK_RM_BY_PANEL_RDC', + PEAK_ADD_BY_UI_SAG: 'MULTIPLICITY_PEAK_ADD_BY_UI_SAG', + PEAK_ADD_BY_UI_RDC: 'MULTIPLICITY_PEAK_ADD_BY_UI_RDC', + PEAK_RM_BY_UI: 'MULTIPLICITY_PEAK_RM_BY_UI', + PEAK_RM_BY_UI_RDC: 'MULTIPLICITY_PEAK_RM_BY_UI_RDC', + TYPE_SELECT: 'MULTIPLICITY_TYPE_SELECT', + TYPE_SELECT_RDC: 'MULTIPLICITY_TYPE_SELECT_RDC', + RESET_ALL_RDC: 'MULTIPLICITY_RESET_ALL_RDC', + RESET_ONE: 'MULTIPLICITY_RESET_ONE', + RESET_ONE_RDC: 'MULTIPLICITY_RESET_ONE_RDC', + UPDATE_J: 'MULTIPLICITY_UPDATE_J', + CLEAR_ALL: 'MULTIPLICITY_CLEAR_ALL' +}; +const META = exports.META = { + UPDATE_PEAKS: 'META_UPDATE_PEAKS', + UPDATE_PEAKS_RDC: 'META_UPDATE_PEAKS_RDC', + UPDATE_META_DATA: 'UPDATE_META_DATA', + UPDATE_META_DATA_RDC: 'UPDATE_META_DATA_RDC' +}; +const JCAMP = exports.JCAMP = { + ADD_OTHERS: 'JCAMP_ADD_OTHERS', + RM_OTHERS_ONE: 'JCAMP_RM_OTHERS_ONE', + TOGGLE_SHOW: 'JCAMP_TOGGLE_SHOW', + CLEAR_ALL: 'JCAMP_CLEAR_ALL' +}; +const XRD = exports.XRD = { + UPDATE_WAVE_LENGTH: 'UPDATE_WAVE_LENGTH' +}; +const CYCLIC_VOLTA_METRY = exports.CYCLIC_VOLTA_METRY = { + ADD_PAIR_PEAKS: 'ADD_PAIR_PEAKS', + REMOVE_PAIR_PEAKS: 'REMOVE_PAIR_PEAKS', + ADD_MAX_PEAK: 'ADD_MAX_PEAK', + REMOVE_MAX_PEAK: 'REMOVE_MAX_PEAK', + ADD_MIN_PEAK: 'ADD_MIN_PEAK', + REMOVE_MIN_PEAK: 'REMOVE_MIN_PEAK', + SELECT_PAIR_PEAK: 'SELECT_PAIR_PEAK', + WORK_WITH_MAX_PEAK: 'WORK_WITH_MAX_PEAK', + ADD_PECKER: 'ADD_PECKER', + REMOVE_PECKER: 'REMOVE_PECKER', + RESETALL: 'RESETALL_VOLTA_METRY', + SET_REF: 'VOLTA_METRY_SET_REF', + SELECT_REF_PEAK: 'SELECT_REF_PEAK', + SET_FACTOR: 'CYCLIC_VOLTA_METRY_SET_FACTOR', + SET_AREA_VALUE: 'CYCLIC_VOLTA_METRY_SET_AREA_VALUE', + SET_AREA_UNIT: 'CYCLIC_VOLTA_METRY_SET_AREA_UNIT', + TOGGLE_DENSITY: 'CYCLIC_VOLTA_METRY_TOGGLE_DENSITY' +}; +const CURVE = exports.CURVE = { + SELECT_WORKING_CURVE: 'SELECT_WORKING_CURVE', + SET_ALL_CURVES: 'SET_ALL_CURVES', + SET_SHOULD_SHOW_ALL_CURVES: 'SET_SHOULD_SHOW_ALL_CURVES' +}; +const AXES = exports.AXES = { + UPDATE_X_AXIS: 'UPDATE_X_AXIS', + UPDATE_Y_AXIS: 'UPDATE_Y_AXIS' +}; +const SEC = exports.SEC = { + UPDATE_DETECTOR: 'UPDATE_DETECTOR' +}; +const HPLC_MS = exports.HPLC_MS = { + SET_LCMS_INTEGRATIONS_EXPORT: 'HPLC_MS_SET_LCMS_INTEGRATIONS_EXPORT', + UPDATE_UVVIS_WAVE_LENGTH: 'UPDATE_UVVIS_WAVE_LENGTH', + SELECT_TIC_CURVE: 'SELECT_TIC_CURVE', + UPDATE_HPLCMS_INTEGRATIONS: 'UPDATE_HPLCMS_INTEGRATIONS', + UPDATE_CURRENT_PAGE_VALUE: 'UPDATE_CURRENT_PAGE_VALUE', + UVVIS_UNDO: 'HPLC_MS_UVVIS_UNDO', + UVVIS_REDO: 'HPLC_MS_UVVIS_REDO', + UPDATE_HPLCMS_PEAKS: 'UPDATE_HPLCMS_PEAKS', + REMOVE_HPLCMS_PEAK: 'REMOVE_HPLCMS_PEAK', + CLEAR_INTEGRATION_ALL_HPLCMS: 'CLEAR_INTEGRATION_ALL_HPLCMS', + CLEAR_ALL_PEAKS_HPLCMS: 'CLEAR_ALL_PEAKS_HPLCMS', + CLEAR_STATE: 'HPLC_MS_CLEAR_STATE' +}; \ No newline at end of file diff --git a/dist/constants/list_axes.js b/dist/constants/list_axes.js new file mode 100644 index 00000000..0936a991 --- /dev/null +++ b/dist/constants/list_axes.js @@ -0,0 +1,17 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.LIST_AXES = void 0; +var _list_layout = require("./list_layout"); +const optionsAxisX = { + [_list_layout.LIST_LAYOUT.CYCLIC_VOLTAMMETRY]: ['', 'Voltage in V', 'Voltage vs Ref in V', 'Potential in V', 'Potential vs Ref in V'] +}; +const optionsAxisY = { + [_list_layout.LIST_LAYOUT.CYCLIC_VOLTAMMETRY]: ['', 'Current in A', 'Current in mA'] +}; +const LIST_AXES = exports.LIST_AXES = { + x: optionsAxisX, + y: optionsAxisY +}; \ No newline at end of file diff --git a/dist/constants/list_detectors.js b/dist/constants/list_detectors.js new file mode 100644 index 00000000..fcbda7ec --- /dev/null +++ b/dist/constants/list_detectors.js @@ -0,0 +1,15 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.LIST_DETECTORS = void 0; +const rI = { + name: 'Refractive index', + label: 'RI' +}; +const uV = { + name: 'Ultraviolet', + label: 'UV' +}; +const LIST_DETECTORS = exports.LIST_DETECTORS = [rI, uV]; \ No newline at end of file diff --git a/dist/constants/list_graph.js b/dist/constants/list_graph.js new file mode 100644 index 00000000..24d49820 --- /dev/null +++ b/dist/constants/list_graph.js @@ -0,0 +1,16 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.LIST_ROOT_SVG_GRAPH = exports.LIST_BRUSH_SVG_GRAPH = void 0; +const LIST_ROOT_SVG_GRAPH = exports.LIST_ROOT_SVG_GRAPH = { + LINE: 'd3Line', + RECT: 'd3Rect', + MULTI: 'd3Multi' +}; +const LIST_BRUSH_SVG_GRAPH = exports.LIST_BRUSH_SVG_GRAPH = { + LINE: 'd3Svg', + RECT: 'd3SvgRect', + MULTI: 'd3SvgMulti' +}; \ No newline at end of file diff --git a/dist/constants/list_layout.js b/dist/constants/list_layout.js new file mode 100644 index 00000000..829cb69f --- /dev/null +++ b/dist/constants/list_layout.js @@ -0,0 +1,32 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.LIST_LAYOUT = void 0; +const LIST_LAYOUT = exports.LIST_LAYOUT = { + PLAIN: 'PLAIN', + IR: 'IR', + RAMAN: 'RAMAN', + UVVIS: 'UV/VIS', + H1: '1H', + C13: '13C', + F19: '19F', + P31: '31P', + N15: '15N', + Si29: '29Si', + MS: 'MS', + TGA: 'THERMOGRAVIMETRIC ANALYSIS', + XRD: 'X-RAY DIFFRACTION', + HPLC_UVVIS: 'HPLC UV/VIS', + CYCLIC_VOLTAMMETRY: 'CYCLIC VOLTAMMETRY', + CDS: 'CIRCULAR DICHROISM SPECTROSCOPY', + SEC: 'SIZE EXCLUSION CHROMATOGRAPHY', + AIF: 'AIF', + EMISSIONS: 'Emissions', + DLS_ACF: 'DLS ACF', + DLS_INTENSITY: 'DLS intensity', + DSC: 'DIFFERENTIAL SCANNING CALORIMETRY', + GC: 'GAS CHROMATOGRAPHY', + LC_MS: 'LC/MS' +}; \ No newline at end of file diff --git a/dist/constants/list_shift.js b/dist/constants/list_shift.js new file mode 100644 index 00000000..63eaf99d --- /dev/null +++ b/dist/constants/list_shift.js @@ -0,0 +1,421 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.getListShift = exports.LIST_SHIFT_31P = exports.LIST_SHIFT_29Si = exports.LIST_SHIFT_1H = exports.LIST_SHIFT_19F = exports.LIST_SHIFT_15N = exports.LIST_SHIFT_13C = void 0; +var _list_layout = require("./list_layout"); +/* eslint-disable camelcase */ + +const noReference = { + name: '- - -', + value: 0.0, + label: false +}; +const cActicAcidD4Sept = { + name: 'Acetic acid-d4 (sept)', + value: 20.0, + label: 'Acetic acid-d4' +}; +const cActicAcidD4S = { + name: 'Acetic acid-d4 (s)', + value: 178.990, + label: 'Acetic acid-d4' +}; +const cAcetoneD6Sep = { + name: 'Acetone-d6 (sep)', + value: 29.640, + label: 'Acetone-d6', + nsdb: 'Acetone-D6 ((CD3)2CO)' +}; +const cAcetoneD6Broad = { + name: 'Acetone-d6 (broad)', + value: 206.260, + label: 'Acetone-d6', + nsdb: 'Acetone-D6 ((CD3)2CO)' +}; +const cAcetonitrileD3Sep = { + name: 'Acetonitrile-d3 (sep)', + value: 1.32, + label: 'Acetonitrile-d3', + nsdb: 'Acetonitrile-D3(CD3CN)' +}; +const cAcetonitrileD3S = { + name: 'Acetonitrile-d3 (s)', + value: 118.26, + label: 'Acetonitrile-d3', + nsdb: 'Acetonitrile-D3(CD3CN)' +}; +const cBenzeneT = { + name: 'Benzene (t)', + value: 128.060, + label: 'Benzene-d6', + nsdb: 'Benzene-D6 (C6D6)' +}; +const cChloroformDT = { + name: 'Chloroform-d (t)', + value: 77.16, + label: 'CDCl$3', + nsdb: 'Chloroform-D1 (CDCl3)' +}; +const cCyclohexaneD12Quin = { + name: 'Cyclohexane-d12 (quin)', + value: 26.430, + label: 'C$6D$1$2' +}; +const cDichloromethaneD2Quin = { + name: 'Dichloromethane-d2 (quin)', + value: 53.84, + label: 'CD$2Cl$2' +}; +const cDmfD7Sep1 = { + name: 'DMF-d7 (sep)-1', + value: 29.76, + label: 'DMF-d7' +}; +const cDmfD7Sep2 = { + name: 'DMF-d7 (sep)-2', + value: 34.89, + label: 'DMF-d7' +}; +const cDmfD7T3 = { + name: 'DMF-d7 (t)-3', + value: 163.15, + label: 'DMF-d7' +}; +const cDioxaneD8Quin = { + name: 'Dioxane-d8 (quin)', + value: 66.660, + label: 'Dioxane-d8' +}; +const cDmsoD6 = { + name: 'DMSO-d6', + value: 39.52, + label: 'DMSO-d6', + nsdb: 'Dimethylsulphoxide-D6 (DMSO-D6, C2D6SO)' +}; +const cEthanolD6Sep = { + name: 'Ethanol-d6 (sep)', + value: 17.3, + label: 'Ethanol-d6' +}; +const cEthanolD6Quin = { + name: 'Ethanol-d6 (quin)', + value: 56.96, + label: 'Ethanol-d6' +}; +const cMethanolD4Sep = { + name: 'Methanol-d4 (sep)', + value: 49.00, + label: 'Methanol-d4', + nsdb: 'Methanol-D4 (CD3OD)' +}; +const cPyridineD5T1 = { + name: 'Pyridine-d5 (t)-1', + value: 123.87, + label: 'Pyridine-d5', + nsdb: 'Pyridin-D5 (C5D5N)' +}; +const cPyridineD5T2 = { + name: 'Pyridine-d5 (t)-2', + value: 135.91, + label: 'Pyridine-d5', + nsdb: 'Pyridin-D5 (C5D5N)' +}; +const cPyridineD5T3 = { + name: 'Pyridine-d5 (t)-3', + value: 150.35, + label: 'Pyridine-d5', + nsdb: 'Pyridin-D5 (C5D5N)' +}; +const cThfD8Quin1 = { + name: 'THF-d8 (quin)-1', + value: 25.37, + label: 'THF-d8 ', + nsdb: 'Tetrahydrofuran-D8 (THF-D8, C4D4O)' +}; +const cThfD8Quin2 = { + name: 'THF-d8 (quin)-2', + value: 67.57, + label: 'THF-d8 ', + nsdb: 'Tetrahydrofuran-D8 (THF-D8, C4D4O)' +}; +const cTmsS = { + name: 'TMS (s)', + value: 0.00, + label: 'TMS' +}; +const cTolueneD8Sep1 = { + name: 'Toluene-d8 (sep)-1', + value: 20.4, + label: 'Toluene-d8' +}; +const cTolueneD8T2 = { + name: 'Toluene-d8 (t)-2', + value: 125.49, + label: 'Toluene-d8' +}; +const cTolueneD8T3 = { + name: 'Toluene-d8 (t)-3', + value: 128.33, + label: 'Toluene-d8' +}; +const cTolueneD8T4 = { + name: 'Toluene-d8 (t)-4', + value: 129.24, + label: 'Toluene-d8' +}; +const cTolueneD8T5 = { + name: 'Toluene-d8 (s)-5', + value: 137.86, + label: 'Toluene-d8' +}; +const cTfaDQ1 = { + name: 'TFA-d (q)-1', + value: 116.60, + label: 'TFA-d' +}; +const cTfaDQ2 = { + name: 'TFA-d (q)-2', + value: 164.20, + label: 'TFA-d' +}; +const cTrifluoroethanolD3Quin = { + name: 'Trifluoroethanol-d3 (quin)', + value: 61.80, + label: 'Trifluoroethanol-d3' +}; +const cTrifluoroethanolD3Broad = { + name: 'Trifluoroethanol-d3 (broad)', + value: 126.28, + label: 'Trifluoroethanol-d3' +}; +const cC6D5Cl1 = { + name: 'C6D5Cl (s)', + value: 134.19, + label: 'C6D5Cl' +}; +const cC6D5Cl2 = { + name: 'C6D5Cl (t)-1', + value: 129.26, + label: 'C6D5Cl' +}; +const cC6D5Cl3 = { + name: 'C6D5Cl (t)-2', + value: 128.25, + label: 'C6D5Cl' +}; +const cC6D5Cl4 = { + name: 'C6D5Cl (t)-3', + value: 125.96, + label: 'C6D5Cl' +}; +const LIST_SHIFT_13C = exports.LIST_SHIFT_13C = [noReference, cActicAcidD4Sept, cActicAcidD4S, cAcetoneD6Sep, cAcetoneD6Broad, cAcetonitrileD3Sep, cAcetonitrileD3S, cBenzeneT, cChloroformDT, cCyclohexaneD12Quin, cDichloromethaneD2Quin, cDmfD7Sep1, cDmfD7Sep2, cDmfD7T3, cDioxaneD8Quin, cDmsoD6, cEthanolD6Sep, cEthanolD6Quin, cMethanolD4Sep, cPyridineD5T1, cPyridineD5T2, cPyridineD5T3, cThfD8Quin1, cThfD8Quin2, cTmsS, cTolueneD8Sep1, cTolueneD8T2, cTolueneD8T3, cTolueneD8T4, cTolueneD8T5, cTfaDQ1, cTfaDQ2, cTrifluoroethanolD3Quin, cTrifluoroethanolD3Broad, cC6D5Cl1, cC6D5Cl2, cC6D5Cl3, cC6D5Cl4]; +const hActicAcidD4Quin = { + name: 'Acetic acid-d4 (quin)', + value: 2.04, + label: 'Acetic acid-d4' +}; +const hActicAcidD4S = { + name: 'Acetic acid-d4 (s)', + value: 11.65, + label: 'Acetic acid-d4' +}; +const hAcetoneD6Quin = { + name: 'Acetone-d6 (quin)', + value: 2.05, + label: 'Acetone-d6', + nsdb: 'Acetone-D6 ((CD3)2CO)' +}; +const hAcetonitrileD3Qquin = { + name: 'Acetonitrile-d3 (quin)', + value: 1.94, + label: 'Acetonitrile-d3', + nsdb: 'Acetonitrile-D3(CD3CN)' +}; +const hBenzeneS = { + name: 'Benzene (s)', + value: 7.16, + label: 'Benzene-d6', + nsdb: 'Benzene-D6 (C6D6)' +}; +const hChloroformDS = { + name: 'Chloroform-d (s)', + value: 7.26, + label: 'CDCl$3', + nsdb: 'Chloroform-D1 (CDCl3)' +}; +const hCyclohexaneD12S = { + name: 'Cyclohexane-d12 (s)', + value: 1.38, + label: 'C$6D$1$2' +}; +const hDeuteriumOxideS = { + name: 'D2O (s)', + value: 4.79, + label: 'D$2O', + nsdb: 'Deuteriumoxide (D2O)' +}; +const hDichloroethaneD4S = { + name: 'Dichloroethane-d4 (s)', + value: 3.72, + label: 'Dichloroethane-d4' +}; +const hDichloromethaneD2T = { + name: 'Dichloromethane-d2 (t)', + value: 5.32, + label: 'CD2Cl2', + nsdb: 'Methylenchloride-D2 (CD2Cl2)' +}; +const hDMFD7Quin1 = { + name: 'DMF-d7 (quin)-1', + value: 2.75, + label: 'DMF-d7' +}; +const hDMFD7Quin2 = { + name: 'DMF-d7 (quin)-2', + value: 2.92, + label: 'DMF-d7' +}; +const hDMFD7Broad3 = { + name: 'DMF-d7 (broad)-3', + value: 8.03, + label: 'DMF-d7' +}; +const hDioxaneD8Broad = { + name: 'Dioxane-d8 (broad)', + value: 3.53, + label: 'Dioxane-d8' +}; +const hDMSOD6Quin = { + name: 'DMSO-d6 (quin)', + value: 2.50, + label: 'DMSO-d6', + nsdb: 'Dimethylsulphoxide-D6 (DMSO-D6, C2D6SO)' +}; +const hEthanolD6Broad1 = { + name: 'Ethanol-d6 (broad)-1', + value: 1.11, + label: 'Ethanol-d6' +}; +const hEthanolD6S2 = { + name: 'Ethanol-d6 (s)-2', + value: 3.56, + label: 'Ethanol-d6' +}; +const hEthanolD6S3 = { + name: 'Ethanol-d6 (s)-3', + value: 5.29, + label: 'Ethanol-d6' +}; +const hMethanolD4Quin = { + name: 'Methanol-d4 (quin)', + value: 3.31, + label: 'Methanol-d4', + nsdb: 'Methanol-D4 (CD3OD)' +}; +const hMethanolD4S = { + name: 'Methanol-d4 (s)', + value: 4.87, + label: 'Methanol-d4', + nsdb: 'Methanol-D4 (CD3OD)' +}; +const hNitromethaneD3S = { + name: 'Nitromethane-d3 (s)', + value: 4.33, + label: 'Nitromethane-d3' +}; +const hPyridineD5Broad1 = { + name: 'Pyridine-d5 (broad)-1', + value: 7.22, + label: 'Pyridine-d5', + nsdb: 'Pyridin-D5 (C5D5N)' +}; +const hPyridineD5Broad2 = { + name: 'Pyridine-d5 (broad)-2', + value: 7.58, + label: 'Pyridine-d5', + nsdb: 'Pyridin-D5 (C5D5N)' +}; +const hPyridineD5Broad3 = { + name: 'Pyridine-d5 (broad)-3', + value: 8.74, + label: 'Pyridine-d5', + nsdb: 'Pyridin-D5 (C5D5N)' +}; +const hTHFD8S1 = { + name: 'THF-d8 (s)-1', + value: 1.73, + label: 'THF-d8', + nsdb: 'Tetrahydrofuran-D8 (THF-D8, C4D4O)' +}; +const hTHFD8S2 = { + name: 'THF-d8 (s)-2', + value: 3.58, + label: 'THF-d8', + nsdb: 'Tetrahydrofuran-D8 (THF-D8, C4D4O)' +}; +const hTMSS = { + name: 'TMS (s)', + value: 0.0, + label: 'TMS' +}; +const hTolueneD8Quin = { + name: 'Toluene-d8 (quin)-1', + value: 2.09, + label: 'Toluene-d8' +}; +const hTolueneD8Boad2 = { + name: 'Toluene-d8 (boad)-2', + value: 6.98, + label: 'Toluene-d8' +}; +const hTolueneD8S3 = { + name: 'Toluene-d8 (s)-3', + value: 7.00, + label: 'Toluene-d8' +}; +const hTolueneD8Broad4 = { + name: 'Toluene-d8 (broad)-4', + value: 7.09, + label: 'Toluene-d8' +}; +const hTFADS = { + name: 'TFA-d (s)', + value: 11.5, + label: 'TFA-d' +}; +const hTrifluoroethanolD31 = { + name: 'Trifluoroethanol-d3-1', + value: 3.88, + label: 'Trifluoroethanol-d3' +}; +const hTrifluoroethanolD32 = { + name: 'Trifluoroethanol-d3-2', + value: 5.02, + label: 'Trifluoroethanol-d3' +}; +const LIST_SHIFT_1H = exports.LIST_SHIFT_1H = [noReference, hActicAcidD4Quin, hActicAcidD4S, hAcetoneD6Quin, hAcetonitrileD3Qquin, hBenzeneS, hChloroformDS, hCyclohexaneD12S, hDeuteriumOxideS, hDichloroethaneD4S, hDichloromethaneD2T, hDMFD7Quin1, hDMFD7Quin2, hDMFD7Broad3, hDioxaneD8Broad, hDMSOD6Quin, hEthanolD6Broad1, hEthanolD6S2, hEthanolD6S3, hMethanolD4Quin, hMethanolD4S, hNitromethaneD3S, hPyridineD5Broad1, hPyridineD5Broad2, hPyridineD5Broad3, hTHFD8S1, hTHFD8S2, hTMSS, hTolueneD8Quin, hTolueneD8Boad2, hTolueneD8S3, hTolueneD8Broad4, hTFADS, hTrifluoroethanolD31, hTrifluoroethanolD32]; +const LIST_SHIFT_19F = exports.LIST_SHIFT_19F = [noReference, hActicAcidD4Quin, hActicAcidD4S, hAcetoneD6Quin, hAcetonitrileD3Qquin, hBenzeneS, hChloroformDS, hCyclohexaneD12S, hDeuteriumOxideS, hDichloroethaneD4S, hDichloromethaneD2T, hDMFD7Quin1, hDMFD7Quin2, hDMFD7Broad3, hDioxaneD8Broad, hDMSOD6Quin, hEthanolD6Broad1, hEthanolD6S2, hEthanolD6S3, hMethanolD4Quin, hMethanolD4S, hNitromethaneD3S, hPyridineD5Broad1, hPyridineD5Broad2, hPyridineD5Broad3, hTHFD8S1, hTHFD8S2, hTMSS, hTolueneD8Quin, hTolueneD8Boad2, hTolueneD8S3, hTolueneD8Broad4, hTFADS, hTrifluoroethanolD31, hTrifluoroethanolD32]; +const LIST_SHIFT_31P = exports.LIST_SHIFT_31P = [noReference, hActicAcidD4Quin, hActicAcidD4S, hAcetoneD6Quin, hAcetonitrileD3Qquin, hBenzeneS, hChloroformDS, hCyclohexaneD12S, hDeuteriumOxideS, hDichloroethaneD4S, hDichloromethaneD2T, hDMFD7Quin1, hDMFD7Quin2, hDMFD7Broad3, hDioxaneD8Broad, hDMSOD6Quin, hEthanolD6Broad1, hEthanolD6S2, hEthanolD6S3, hMethanolD4Quin, hMethanolD4S, hNitromethaneD3S, hPyridineD5Broad1, hPyridineD5Broad2, hPyridineD5Broad3, hTHFD8S1, hTHFD8S2, hTMSS, hTolueneD8Quin, hTolueneD8Boad2, hTolueneD8S3, hTolueneD8Broad4, hTFADS, hTrifluoroethanolD31, hTrifluoroethanolD32]; +const LIST_SHIFT_15N = exports.LIST_SHIFT_15N = [noReference, hActicAcidD4Quin, hActicAcidD4S, hAcetoneD6Quin, hAcetonitrileD3Qquin, hBenzeneS, hChloroformDS, hCyclohexaneD12S, hDeuteriumOxideS, hDichloroethaneD4S, hDichloromethaneD2T, hDMFD7Quin1, hDMFD7Quin2, hDMFD7Broad3, hDioxaneD8Broad, hDMSOD6Quin, hEthanolD6Broad1, hEthanolD6S2, hEthanolD6S3, hMethanolD4Quin, hMethanolD4S, hNitromethaneD3S, hPyridineD5Broad1, hPyridineD5Broad2, hPyridineD5Broad3, hTHFD8S1, hTHFD8S2, hTMSS, hTolueneD8Quin, hTolueneD8Boad2, hTolueneD8S3, hTolueneD8Broad4, hTFADS, hTrifluoroethanolD31, hTrifluoroethanolD32]; +const LIST_SHIFT_29Si = exports.LIST_SHIFT_29Si = [noReference, hActicAcidD4Quin, hActicAcidD4S, hAcetoneD6Quin, hAcetonitrileD3Qquin, hBenzeneS, hChloroformDS, hCyclohexaneD12S, hDeuteriumOxideS, hDichloroethaneD4S, hDichloromethaneD2T, hDMFD7Quin1, hDMFD7Quin2, hDMFD7Broad3, hDioxaneD8Broad, hDMSOD6Quin, hEthanolD6Broad1, hEthanolD6S2, hEthanolD6S3, hMethanolD4Quin, hMethanolD4S, hNitromethaneD3S, hPyridineD5Broad1, hPyridineD5Broad2, hPyridineD5Broad3, hTHFD8S1, hTHFD8S2, hTMSS, hTolueneD8Quin, hTolueneD8Boad2, hTolueneD8S3, hTolueneD8Broad4, hTFADS, hTrifluoroethanolD31, hTrifluoroethanolD32]; +const getListShift = layoutSt => { + switch (layoutSt) { + case _list_layout.LIST_LAYOUT.H1: + return LIST_SHIFT_1H; + case _list_layout.LIST_LAYOUT.C13: + return LIST_SHIFT_13C; + case _list_layout.LIST_LAYOUT.F19: + return LIST_SHIFT_19F; + case _list_layout.LIST_LAYOUT.P31: + return LIST_SHIFT_31P; + case _list_layout.LIST_LAYOUT.N15: + return LIST_SHIFT_15N; + case _list_layout.LIST_LAYOUT.Si29: + return LIST_SHIFT_29Si; + default: + return []; + } +}; +exports.getListShift = getListShift; \ No newline at end of file diff --git a/dist/constants/list_ui.js b/dist/constants/list_ui.js new file mode 100644 index 00000000..5d8fb947 --- /dev/null +++ b/dist/constants/list_ui.js @@ -0,0 +1,36 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.LIST_UI_VIEWER_TYPE = exports.LIST_UI_SWEEP_TYPE = exports.LIST_NON_BRUSH_TYPES = void 0; +const LIST_UI_VIEWER_TYPE = exports.LIST_UI_VIEWER_TYPE = { + SPECTRUM: 'spectrum', + ANALYSIS: 'analysis' +}; +const LIST_UI_SWEEP_TYPE = exports.LIST_UI_SWEEP_TYPE = { + ZOOMIN: 'zoom in', + ZOOMRESET: 'zoom reset', + INTEGRATION_ADD: 'integration add', + INTEGRATION_RM: 'integration remove', + INTEGRATION_REF: 'integration reference', + INTEGRATION_SET_REF: 'integration set ref', + MULTIPLICITY_SWEEP_ADD: 'multiplicity sweep add', + MULTIPLICITY_ONE_CLICK: 'multiplicity one click', + MULTIPLICITY_ONE_RM: 'multiplicity one remove', + MULTIPLICITY_PEAK_ADD: 'multiplicity peak add', + MULTIPLICITY_PEAK_RM: 'multiplicity peak remove', + MULTIPLICITY_ALL_CLEAR: 'multiplicity all clear', + PEAK_ADD: 'peak add', + PEAK_DELETE: 'peak delete', + ANCHOR_SHIFT: 'anchor shift', + CYCLIC_VOLTA_ADD_MAX_PEAK: 'cyclic voltammetry add max peak', + CYCLIC_VOLTA_RM_MAX_PEAK: 'cyclic voltammetry remove max peak', + CYCLIC_VOLTA_ADD_MIN_PEAK: 'cyclic voltammetry add min peak', + CYCLIC_VOLTA_RM_MIN_PEAK: 'cyclic voltammetry remove min peak', + CYCLIC_VOLTA_ADD_PECKER: 'cyclic voltammetry add pecker', + CYCLIC_VOLTA_RM_PECKER: 'cyclic voltammetry remove pecker', + CYCLIC_VOLTA_SET_REF: 'cyclic voltammetry set ref', + PEAK_GROUP_SELECT: 'peak group select' +}; +const LIST_NON_BRUSH_TYPES = exports.LIST_NON_BRUSH_TYPES = [LIST_UI_SWEEP_TYPE.PEAK_ADD, LIST_UI_SWEEP_TYPE.PEAK_DELETE, LIST_UI_SWEEP_TYPE.ANCHOR_SHIFT, LIST_UI_SWEEP_TYPE.INTEGRATION_RM, LIST_UI_SWEEP_TYPE.INTEGRATION_SET_REF, LIST_UI_SWEEP_TYPE.MULTIPLICITY_PEAK_ADD, LIST_UI_SWEEP_TYPE.MULTIPLICITY_PEAK_RM, LIST_UI_SWEEP_TYPE.MULTIPLICITY_ONE_CLICK, LIST_UI_SWEEP_TYPE.MULTIPLICITY_ONE_RM, LIST_UI_SWEEP_TYPE.CYCLIC_VOLTA_ADD_MAX_PEAK, LIST_UI_SWEEP_TYPE.CYCLIC_VOLTA_RM_MAX_PEAK, LIST_UI_SWEEP_TYPE.CYCLIC_VOLTA_ADD_MIN_PEAK, LIST_UI_SWEEP_TYPE.CYCLIC_VOLTA_RM_MIN_PEAK, LIST_UI_SWEEP_TYPE.CYCLIC_VOLTA_ADD_PECKER, LIST_UI_SWEEP_TYPE.CYCLIC_VOLTA_RM_PECKER, LIST_UI_SWEEP_TYPE.CYCLIC_VOLTA_SET_REF, LIST_UI_SWEEP_TYPE.PEAK_GROUP_SELECT]; \ No newline at end of file diff --git a/dist/constants/list_wavelength.js b/dist/constants/list_wavelength.js new file mode 100644 index 00000000..2643b05d --- /dev/null +++ b/dist/constants/list_wavelength.js @@ -0,0 +1,31 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.LIST_WAVE_LENGTH = void 0; +const CuKalpha = { + name: 'CuKalpha', + value: 0.15406, + label: 'Cu K\u03B1', + unit: 'nm' +}; +const Fe = { + name: 'Fe', + value: 0.19373, + label: 'Fe', + unit: 'nm' +}; +const Co = { + name: 'Co', + value: 0.17902, + label: 'Co', + unit: 'nm' +}; +const MoKalpha = { + name: 'MoKalpha', + value: 0.07107, + label: 'Mo K\u03B1', + unit: 'nm' +}; +const LIST_WAVE_LENGTH = exports.LIST_WAVE_LENGTH = [CuKalpha, Fe, Co, MoKalpha]; \ No newline at end of file diff --git a/dist/features/lc-ms/entities/extractEntityLCMS.js b/dist/features/lc-ms/entities/extractEntityLCMS.js new file mode 100644 index 00000000..fa0f796c --- /dev/null +++ b/dist/features/lc-ms/entities/extractEntityLCMS.js @@ -0,0 +1,193 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.classify = classify; +exports.default = void 0; +exports.getLcMsInfo = getLcMsInfo; +exports.isLcMsGroup = void 0; +exports.splitAndReindexEntities = splitAndReindexEntities; +const collectCategories = entity => { + const categories = []; + if (Array.isArray(entity.features)) { + entity.features.forEach(feature => { + if (feature?.csCategory) categories.push(...[].concat(feature.csCategory)); + }); + } + if (entity.feature?.csCategory) { + categories.push(...[].concat(entity.feature.csCategory)); + } + if (entity.csCategory) { + categories.push(...[].concat(entity.csCategory)); + } + return categories; +}; +const getEntityValue = (entity, path, fallback = '') => { + const parts = path.split('.'); + let current = entity; + for (let i = 0; i < parts.length; i += 1) { + if (!current) return fallback; + current = current[parts[i]]; + } + return current ?? fallback; +}; +const normalizeUnit = value => String(value || '').toUpperCase().replace(/\s+/g, ''); +const normalizeText = value => String(value || '').toUpperCase(); +const parseNumeric = value => { + if (typeof value === 'number') return Number.isFinite(value) ? value : null; + const text = String(value || '').trim(); + if (!text) return null; + const match = text.match(/[-+]?\d*\.?\d+(?:[eE][-+]?\d+)?/); + if (!match) return null; + const parsed = Number(match[0]); + return Number.isFinite(parsed) ? parsed : null; +}; +const firstSpectrum = entity => entity?.spectra?.[0] || entity?.feature || entity?.features?.[0] || null; +const getFirstTicX = entity => { + const spectrum = firstSpectrum(entity); + const x0 = spectrum?.data?.[0]?.x?.[0]; + return parseNumeric(x0); +}; +const getMzPage = entity => { + const spectrum = firstSpectrum(entity); + return parseNumeric(spectrum?.pageValue ?? spectrum?.page ?? spectrum?.pageSymbol); +}; +function getLcMsInfo(entity = {}) { + if (entity.lcmsKind) { + return { + kind: entity.lcmsKind, + polarity: entity.lcmsPolarity || 'neutral' + }; + } + const categories = collectCategories(entity); + const normalizedCategories = categories.map(String).map(category => category.toUpperCase()); + const scanMode = normalizeText(entity.scanMode || entity.SCAN_MODE || entity.SCANMODE || getEntityValue(entity, 'info.SCAN_MODE') || getEntityValue(entity, 'info.SCANMODE') || getEntityValue(entity, 'spectra.0.scanMode') || getEntityValue(entity, 'spectra.0.SCAN_MODE') || getEntityValue(entity, 'spectra.0.SCANMODE') || getEntityValue(entity, 'feature.scanMode') || getEntityValue(entity, 'feature.SCAN_MODE') || getEntityValue(entity, 'feature.SCANMODE') || getEntityValue(entity, 'features.0.scanMode') || getEntityValue(entity, 'features.0.SCAN_MODE') || getEntityValue(entity, 'features.0.SCANMODE')); + const hasNeg = normalizedCategories.some(category => category.includes('NEGATIVE') || category.startsWith('NEGATIV')) || scanMode.includes('NEGATIVE') || scanMode.includes('NEGATIV'); + const hasPos = normalizedCategories.some(category => category.includes('POSITIVE') || category.startsWith('POSITIV')) || scanMode.includes('POSITIVE') || scanMode.includes('POSITIV'); + let polarity = 'neutral'; + if (hasNeg) { + polarity = 'negative'; + } else if (hasPos) { + polarity = 'positive'; + } + let kind = null; + if (normalizedCategories.some(category => category.includes('TIC'))) kind = 'tic'; + if (!kind && normalizedCategories.some(category => category.includes('MZ'))) kind = 'mz'; + if (!kind && normalizedCategories.some(category => category.includes('UVVIS'))) kind = 'uvvis'; + const dataType = String(entity.dataType || entity.DATATYPE || getEntityValue(entity, 'info.DATATYPE') || getEntityValue(entity, 'spectra.0.dataType') || getEntityValue(entity, 'spectra.0.DATATYPE') || getEntityValue(entity, 'feature.dataType') || getEntityValue(entity, 'feature.DATATYPE') || getEntityValue(entity, 'features.0.dataType') || getEntityValue(entity, 'features.0.DATATYPE')).toUpperCase(); + const type = normalizeText(entity.type || entity.TYPE || getEntityValue(entity, 'info.TYPE') || getEntityValue(entity, 'spectra.0.type') || getEntityValue(entity, 'spectra.0.TYPE') || getEntityValue(entity, 'feature.type') || getEntityValue(entity, 'feature.TYPE') || getEntityValue(entity, 'features.0.type') || getEntityValue(entity, 'features.0.TYPE')); + if (!kind && dataType.includes('MASS TIC')) kind = 'tic'; + if (!kind && dataType.includes('MASS SPECTRUM')) kind = 'mz'; + if (!kind && (dataType.includes('UV') || dataType.includes('UV-VIS'))) kind = 'uvvis'; + if (!kind && type.includes('CHROMATOGRAM')) kind = 'tic'; + if (!kind && type.includes('SPECTRUM') && dataType.includes('MASS')) kind = 'mz'; + const xUnit = normalizeUnit(entity.xUnit || getEntityValue(entity, 'spectra.0.xUnit') || getEntityValue(entity, 'feature.xUnit') || getEntityValue(entity, 'features.0.xUnit')); + const yUnit = normalizeUnit(entity.yUnit || getEntityValue(entity, 'spectra.0.yUnit') || getEntityValue(entity, 'feature.yUnit') || getEntityValue(entity, 'features.0.yUnit')); + if (!kind && xUnit.includes('M/Z')) kind = 'mz'; + if (!kind && (xUnit.includes('TIME') || xUnit.includes('MINUTE')) && (yUnit.includes('INTENSITY') || yUnit.includes('COUNT'))) { + kind = 'tic'; + } + return { + kind: kind || 'unknown', + polarity + }; +} +const alignMzPolarityWithTic = (ticEntities, mzEntities) => { + const ticByPolarity = {}; + ticEntities.forEach(tic => { + const info = getLcMsInfo(tic); + const x = getFirstTicX(tic); + if (info.polarity && x != null) { + ticByPolarity[info.polarity] = x; + } + }); + const ticPolarityKeys = Object.keys(ticByPolarity); + if (ticPolarityKeys.length < 2) return; + for (let i = 0; i < mzEntities.length; i += 1) { + const entity = mzEntities[i]; + const mzPage = getMzPage(entity); + if (mzPage != null) { + let nearestPolarity = null; + let nearestDistance = Infinity; + ticPolarityKeys.forEach(polarity => { + const ticX = ticByPolarity[polarity]; + const distance = Math.abs(mzPage - ticX); + if (distance < nearestDistance) { + nearestDistance = distance; + nearestPolarity = polarity; + } + }); + if (nearestPolarity) { + entity.lcmsPolarity = nearestPolarity; + } + } + } +}; +function classify(entity) { + const { + kind, + polarity + } = getLcMsInfo(entity); + if (kind === 'unknown') return 'unknown'; + return `${kind}_${polarity}`; +} +function splitAndReindexEntities(entities = []) { + const tic = []; + const mz = []; + const uvvis = []; + const unknown = []; + const normalizedEntities = entities.map(entity => ({ + ...entity + })); + normalizedEntities.forEach(e => { + const info = getLcMsInfo(e); + e.lcmsKind = info.kind; + e.lcmsPolarity = info.polarity; + if (info.kind === 'tic') tic.push(e);else if (info.kind === 'mz') mz.push(e);else if (info.kind === 'uvvis') uvvis.push(e);else unknown.push(e); + }); + alignMzPolarityWithTic(tic, mz); + const polarityRank = { + positive: 0, + negative: 1, + neutral: 2 + }; + const byPolarity = (a, b) => { + const aInfo = getLcMsInfo(a); + const bInfo = getLcMsInfo(b); + return (polarityRank[aInfo.polarity] ?? 99) - (polarityRank[bInfo.polarity] ?? 99); + }; + tic.sort(byPolarity).forEach((e, i) => { + e.curveIdx = i; + }); + mz.sort(byPolarity).forEach((e, i) => { + e.curveIdx = i; + }); + return { + ticEntities: tic, + mzEntities: mz, + uvvisEntities: uvvis, + unknownEntities: unknown, + dataEntities: [...mz, ...uvvis, ...unknown], + allEntities: normalizedEntities + }; +} +const isLcMsGroup = (entities = []) => { + if (!entities || !Array.isArray(entities) || entities.length === 0) { + return false; + } + const counts = { + tic: 0, + mz: 0, + uvvis: 0 + }; + entities.forEach(e => { + const { + kind + } = getLcMsInfo(e); + if (counts[kind] !== undefined) counts[kind] += 1; + }); + return counts.uvvis > 0 && (counts.tic > 0 || counts.mz > 0); +}; +exports.isLcMsGroup = isLcMsGroup; +var _default = exports.default = splitAndReindexEntities; \ No newline at end of file diff --git a/dist/features/lc-ms/parsing/chemstation.js b/dist/features/lc-ms/parsing/chemstation.js new file mode 100644 index 00000000..d5f328c0 --- /dev/null +++ b/dist/features/lc-ms/parsing/chemstation.js @@ -0,0 +1,108 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.parseChemstationPages = exports.isChemstationLcms = void 0; +var _lcmsMsPage = require("./lcmsMsPage"); +const parseChemstationPages = (source, jcamp) => { + if (typeof source !== 'string') return []; + const parts = source.split(/##PAGE=/); + if (parts.length <= 1) return []; + const info = jcamp?.info || {}; + const baseSpectrum = Array.isArray(jcamp?.spectra) ? jcamp.spectra[0] : null; + const dataType = baseSpectrum?.dataType || jcamp?.dataType || 'LC/MS'; + const xUnit = info.XUNITS || baseSpectrum?.xUnit || jcamp?.xUnit || ''; + const yUnit = info.YUNITS || baseSpectrum?.yUnit || jcamp?.yUnit || ''; + const spectra = []; + for (let i = 1; i < parts.length; i += 1) { + const block = parts[i]; + const lines = block.split(/\r?\n/); + const pageLine = (lines[0] || '').trim(); + const pageValue = (0, _lcmsMsPage.parsePageValue)(pageLine); + const dataStart = lines.findIndex(line => line.startsWith('##DATA TABLE') || line.startsWith('##XYDATA')); + if (dataStart >= 0) { + const x = []; + const y = []; + for (let j = dataStart + 1; j < lines.length; j += 1) { + const rawLine = lines[j].trim(); + if (rawLine) { + if (rawLine.startsWith('##')) break; + const partsLine = rawLine.split(/[,\s]+/).filter(Boolean); + if (partsLine.length >= 2) { + const xVal = Number(partsLine[0]); + const yVal = Number(partsLine[1]); + if (Number.isFinite(xVal) && Number.isFinite(yVal)) { + x.push(xVal); + y.push(yVal); + } + } + } + } + if (x.length > 0) { + const pageSymbol = pageLine || pageValue; + spectra.push({ + dataType, + xUnit, + yUnit, + pageValue, + page: pageLine || pageValue, + pageSymbol, + data: [{ + x, + y + }] + }); + } + } + } + return spectra; +}; +exports.parseChemstationPages = parseChemstationPages; +const isChemstationLcms = (source, jcamp) => { + if (typeof source !== 'string') return false; + const dt = String(jcamp?.dataType || jcamp?.info?.DATATYPE || '').toUpperCase(); + if (dt.includes('LC/MS') || dt.includes('MASS TIC')) return true; + const spectra = Array.isArray(jcamp?.spectra) ? jcamp.spectra : []; + const info = jcamp?.info || {}; + const scanMode = String(info.SCAN_MODE || info.SCANMODE || '').toUpperCase(); + const type = String(info.TYPE || '').toUpperCase(); + const software = String(info.SOFTWARE || '').toUpperCase(); + const csCategory = jcamp?.info?.$CSCATEGORY; + const categories = Array.isArray(csCategory) ? csCategory.map(c => String(c).toUpperCase()) : []; + const hasPolarityCategory = categories.some(c => c.includes('POSITIVE') || c.includes('NEGATIVE') || c.includes('NEUTRAL')); + const hasTicOrUvvisCategory = categories.some(c => c.includes('TIC') || c.includes('UVVIS')); + const hasHplcUvvisSpectrumDataType = spectra.some(s => { + const sdt = String(s?.dataType || '').toUpperCase(); + return sdt.includes('HPLC UV-VIS') || sdt.includes('UVVIS'); + }); + const hasMassTicSpectrumDataType = spectra.some(s => { + const sdt = String(s?.dataType || '').toUpperCase(); + return sdt.includes('MASS TIC') || sdt.includes('TIC'); + }); + const hasMassSpectrumDataType = spectra.some(s => { + const sdt = String(s?.dataType || '').toUpperCase(); + return sdt.includes('MASS SPECTRUM'); + }); + const hasMassSpectrumRootDataType = dt.includes('MASS SPECTRUM'); + const hasScanModeHint = scanMode.includes('POSITIVE') || scanMode.includes('NEGATIVE') || scanMode.includes('POSITIV') || scanMode.includes('NEGATIV'); + const hasTypeHint = type.includes('MS SPECTRUM') || type.includes('MS CHROMATOGRAM'); + const hasSoftwareHint = software.includes('OPENLAB'); + const hasMultipleSpectra = spectra.length > 1; + const hasPageMetadata = spectra.some(s => s?.page != null || s?.pageValue != null); + const hasNtuplesPageHeader = /##NTUPLES_PAGE_HEADER\s*=/.test(source); + if (hasNtuplesPageHeader && (hasTicOrUvvisCategory || hasHplcUvvisSpectrumDataType || hasMassTicSpectrumDataType || hasMassSpectrumDataType && hasPolarityCategory)) { + return true; + } + if (hasMultipleSpectra && hasPageMetadata && (hasTicOrUvvisCategory || hasHplcUvvisSpectrumDataType || hasMassTicSpectrumDataType || hasMassSpectrumDataType && hasPolarityCategory)) { + return true; + } + if (hasMassSpectrumRootDataType && (hasMassSpectrumDataType || hasScanModeHint || hasTypeHint || hasSoftwareHint)) { + return true; + } + if (hasMassTicSpectrumDataType && (hasTypeHint || hasSoftwareHint || hasScanModeHint || spectra.length > 0)) { + return true; + } + return false; +}; +exports.isChemstationLcms = isChemstationLcms; \ No newline at end of file diff --git a/dist/features/lc-ms/parsing/index.js b/dist/features/lc-ms/parsing/index.js new file mode 100644 index 00000000..83c9d7aa --- /dev/null +++ b/dist/features/lc-ms/parsing/index.js @@ -0,0 +1,39 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "buildLcmsMsPageJcamp", { + enumerable: true, + get: function get() { + return _lcmsMsPage.buildLcmsMsPageJcamp; + } +}); +Object.defineProperty(exports, "inferLcMsCategory", { + enumerable: true, + get: function get() { + return _lcmsCategory.inferLcMsCategory; + } +}); +Object.defineProperty(exports, "isChemstationLcms", { + enumerable: true, + get: function get() { + return _chemstation.isChemstationLcms; + } +}); +Object.defineProperty(exports, "parseChemstationPages", { + enumerable: true, + get: function get() { + return _chemstation.parseChemstationPages; + } +}); +Object.defineProperty(exports, "readLcmsMzPageFromJcampInfo", { + enumerable: true, + get: function get() { + return _lcmsJcampInfo.readLcmsMzPageFromJcampInfo; + } +}); +var _lcmsCategory = require("./lcmsCategory"); +var _lcmsMsPage = require("./lcmsMsPage"); +var _lcmsJcampInfo = require("./lcmsJcampInfo"); +var _chemstation = require("./chemstation"); \ No newline at end of file diff --git a/dist/features/lc-ms/parsing/lcmsCategory.js b/dist/features/lc-ms/parsing/lcmsCategory.js new file mode 100644 index 00000000..67a748a8 --- /dev/null +++ b/dist/features/lc-ms/parsing/lcmsCategory.js @@ -0,0 +1,44 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.normalizeLcMsMode = exports.inferLcMsKind = exports.inferLcMsCategory = void 0; +const normalizeLcMsMode = value => { + const mode = String(value || '').toUpperCase(); + if (!mode) return 'NEUTRAL'; + if (mode.includes('NEGATIVE') || mode.includes('NEGATIV')) return 'NEGATIVE'; + if (mode.includes('POSITIVE') || mode.includes('POSITIV')) return 'POSITIVE'; + if (mode.includes('NEUTRAL')) return 'NEUTRAL'; + return 'NEUTRAL'; +}; +exports.normalizeLcMsMode = normalizeLcMsMode; +const inferLcMsKind = (spectrum, jcamp) => { + const spectrumDataType = String(spectrum?.dataType || '').toUpperCase(); + const jcampDataType = String(jcamp?.dataType || '').toUpperCase(); + const type = String(jcamp?.info?.TYPE || '').toUpperCase(); + const xUnit = String(spectrum?.xUnit || jcamp?.info?.XUNITS || jcamp?.xUnit || '').toUpperCase(); + const yUnit = String(spectrum?.yUnit || jcamp?.info?.YUNITS || jcamp?.yUnit || '').toUpperCase(); + if (spectrumDataType.includes('MASS TIC') || jcampDataType.includes('MASS TIC') || type.includes('CHROMATOGRAM')) { + return 'TIC'; + } + if (spectrumDataType.includes('MASS SPECTRUM') || jcampDataType.includes('MASS SPECTRUM')) { + return 'MZ'; + } + if (xUnit.includes('TIME') || xUnit.includes('MINUTE')) { + if (yUnit.includes('INTENSITY') || yUnit.includes('COUNT')) return 'TIC'; + } + if (xUnit.includes('M/Z') || xUnit.includes('MZ')) return 'MZ'; + return 'SPECTRUM'; +}; +exports.inferLcMsKind = inferLcMsKind; +const inferLcMsCategory = (spectrum, jcamp) => { + const existing = spectrum?.csCategory; + if (existing) return existing; + const category = inferLcMsKind(spectrum, jcamp); + const mode = normalizeLcMsMode(jcamp?.info?.SCAN_MODE || jcamp?.info?.SCANMODE); + if (category === 'UVVIS') return 'UVVIS PEAK TABLE'; + if (category === 'TIC' || category === 'MZ') return `${category} ${mode} SPECTRUM`; + return `${category} SPECTRUM`; +}; +exports.inferLcMsCategory = inferLcMsCategory; \ No newline at end of file diff --git a/dist/features/lc-ms/parsing/lcmsJcampInfo.js b/dist/features/lc-ms/parsing/lcmsJcampInfo.js new file mode 100644 index 00000000..9162bb3c --- /dev/null +++ b/dist/features/lc-ms/parsing/lcmsJcampInfo.js @@ -0,0 +1,18 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.readLcmsMzPageFromJcampInfo = void 0; +var _lcmsMsPage = require("./lcmsMsPage"); +/* eslint-disable import/prefer-default-export */ + +const readLcmsMzPageFromJcampInfo = info => { + if (!info || info.$CSLCMSMZPAGE == null || info.$CSLCMSMZPAGE === '') return null; + const raw = info.$CSLCMSMZPAGE; + const scalar = Array.isArray(raw) ? raw[0] : raw; + if (scalar == null || scalar === '') return null; + const parsed = typeof scalar === 'number' && Number.isFinite(scalar) ? scalar : (0, _lcmsMsPage.parsePageValue)(String(scalar).trim()); + return Number.isFinite(parsed) ? parsed : null; +}; +exports.readLcmsMzPageFromJcampInfo = readLcmsMzPageFromJcampInfo; \ No newline at end of file diff --git a/dist/features/lc-ms/parsing/lcmsMsPage.js b/dist/features/lc-ms/parsing/lcmsMsPage.js new file mode 100644 index 00000000..dee1991c --- /dev/null +++ b/dist/features/lc-ms/parsing/lcmsMsPage.js @@ -0,0 +1,241 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.selectLcmsMsPage = exports.parsePageValue = exports.buildLcmsMsPageJcamp = void 0; +var _extractEntityLCMS = require("../entities/extractEntityLCMS"); +const parsePageValue = raw => { + if (!raw) return null; + const match = String(raw).match(/[-+]?\d*\.?\d+(?:[eE][-+]?\d+)?/); + return match ? parseFloat(match[0]) : null; +}; +exports.parsePageValue = parsePageValue; +const normalizeLcmsRequestPolarity = value => { + if (value == null || value === '') return null; + const text = String(value).trim().toLowerCase(); + if (text === 'positive' || text === 'pos' || text === '+') return 'positive'; + if (text === 'negative' || text === 'neg' || text === '-') return 'negative'; + if (text === 'neutral' || text === 'neu' || text === '0') return 'neutral'; + return text || null; +}; +const stringifyLcmsPageValue = value => { + if (value == null) return ''; + return String(value).trim(); +}; +const getLcmsPageCandidates = (entity = {}) => { + const spectra = Array.isArray(entity?.spectra) ? entity.spectra : []; + if (spectra.length > 0) return spectra; + const features = entity?.features; + if (Array.isArray(features)) return features; + if (features && typeof features === 'object') return Object.values(features); + if (entity?.feature) return [entity.feature]; + return []; +}; +const getSpectrumDataPairs = (spectrum = {}) => { + const data = spectrum?.data?.[0]; + const x = Array.isArray(data?.x) ? data.x : []; + const y = Array.isArray(data?.y) ? data.y : []; + const size = Math.min(x.length, y.length); + return { + x: x.slice(0, size), + y: y.slice(0, size) + }; +}; +const describeLcmsMsSource = (entity = {}, entityIndex = -1) => { + const info = (0, _extractEntityLCMS.getLcMsInfo)(entity); + const title = entity?.title || entity?.info?.TITLE || entity?.info?.$TITLE || 'untitled'; + const scanMode = entity?.scanMode || entity?.SCAN_MODE || entity?.info?.SCAN_MODE || entity?.info?.SCANMODE || ''; + return { + index: entityIndex, + kind: info.kind, + polarity: info.polarity, + title, + scanMode, + spectraCount: getLcmsPageCandidates(entity).length + }; +}; +const selectLcmsMsPage = (entities = [], request = {}) => { + const retentionTimeRaw = stringifyLcmsPageValue(request?.retentionTime); + const retentionTime = parsePageValue(retentionTimeRaw); + const polarity = normalizeLcmsRequestPolarity(request?.polarity); + const tolerance = 1e-5; + const split = (0, _extractEntityLCMS.splitAndReindexEntities)(entities); + const mzEntities = split?.mzEntities || []; + if (mzEntities.length === 0) { + return { + retentionTimeRaw, + retentionTime, + polarity, + entity: null, + entityIndex: -1, + spectrum: null, + sourceFallback: false, + pageFallback: false + }; + } + let candidateEntries = mzEntities.map((entity, index) => ({ + entity, + index + })); + let sourceFallback = false; + if (candidateEntries.length === 1) { + const onlyPolarity = (0, _extractEntityLCMS.getLcMsInfo)(candidateEntries[0].entity).polarity; + sourceFallback = polarity != null && polarity !== onlyPolarity; + } else if (polarity != null) { + const matchingEntries = candidateEntries.filter(({ + entity + }) => (0, _extractEntityLCMS.getLcMsInfo)(entity).polarity === polarity); + if (matchingEntries.length > 0) { + candidateEntries = matchingEntries; + } else { + sourceFallback = true; + } + } + let best = null; + candidateEntries.forEach(({ + entity, + index + }) => { + getLcmsPageCandidates(entity).forEach((spectrum, spectrumIndex) => { + const pageValue = parsePageValue(spectrum?.pageValue ?? spectrum?.page ?? spectrum?.pageSymbol); + const distance = Number.isFinite(retentionTime) && Number.isFinite(pageValue) ? Math.abs(pageValue - retentionTime) : Number.POSITIVE_INFINITY; + const hasExactMatch = Number.isFinite(distance) && distance <= tolerance; + if (!best) { + best = { + entity, + entityIndex: index, + spectrum, + spectrumIndex, + pageValue, + distance, + hasExactMatch + }; + return; + } + if (hasExactMatch && !best.hasExactMatch) { + best = { + entity, + entityIndex: index, + spectrum, + spectrumIndex, + pageValue, + distance, + hasExactMatch + }; + return; + } + if (hasExactMatch === best.hasExactMatch && distance < best.distance) { + best = { + entity, + entityIndex: index, + spectrum, + spectrumIndex, + pageValue, + distance, + hasExactMatch + }; + } + }); + }); + if (!best) { + const fallbackEntity = candidateEntries[0]?.entity || mzEntities[0]; + const fallbackEntityIndex = candidateEntries[0]?.index ?? 0; + const fallbackSpectrum = getLcmsPageCandidates(fallbackEntity)[0] || null; + return { + retentionTimeRaw, + retentionTime, + polarity, + entity: fallbackEntity, + entityIndex: fallbackEntityIndex, + spectrum: fallbackSpectrum, + sourceFallback, + pageFallback: Number.isFinite(retentionTime) + }; + } + return { + retentionTimeRaw, + retentionTime, + polarity, + entity: best.entity, + entityIndex: best.entityIndex, + spectrum: best.spectrum, + sourceFallback, + pageFallback: Number.isFinite(retentionTime) && !best.hasExactMatch + }; +}; +exports.selectLcmsMsPage = selectLcmsMsPage; +const buildLcmsMsPageJcamp = (entities = [], request = {}) => { + const selection = selectLcmsMsPage(entities, request); + const { + retentionTimeRaw, + retentionTime, + polarity, + entity, + entityIndex, + spectrum, + sourceFallback, + pageFallback + } = selection; + const pageHeader = retentionTimeRaw || stringifyLcmsPageValue(spectrum?.pageValue ?? spectrum?.page ?? spectrum?.pageSymbol); + if (!entity || !spectrum) { + const emptyResult = { + jcamp: '', + selection: { + retentionTime: retentionTimeRaw, + polarity, + msSourceChosen: null, + pageChosen: null, + hasPageHeader: false, + fallbackApplied: sourceFallback || pageFallback + } + }; + return emptyResult; + } + const { + x, + y + } = getSpectrumDataPairs(spectrum); + const points = x.map((xValue, index) => `${xValue}, ${y[index]}`); + const minX = x.length > 0 ? Math.min(...x) : null; + const maxX = x.length > 0 ? Math.max(...x) : null; + const minY = y.length > 0 ? Math.min(...y) : null; + const maxY = y.length > 0 ? Math.max(...y) : null; + const xUnit = spectrum?.xUnit || entity?.xUnit || entity?.info?.XUNITS || 'm/z'; + const yUnit = spectrum?.yUnit || entity?.yUnit || entity?.info?.YUNITS || 'Intensity'; + const scanMode = spectrum?.scanMode || entity?.scanMode || entity?.info?.SCAN_MODE || entity?.info?.SCANMODE || ''; + const title = spectrum?.title || entity?.title || entity?.info?.TITLE || 'Spectrum'; + const pageChosen = stringifyLcmsPageValue(spectrum?.pageValue ?? spectrum?.page ?? spectrum?.pageSymbol); + const lines = [`##TITLE=${title}`, '##JCAMP-DX=5.00', '##DATA TYPE=MASS SPECTRUM', '##DATA CLASS=XYPOINTS', '##ORIGIN=Chemspectra', '##OWNER=', `##XUNITS=${xUnit}`, `##YUNITS=${yUnit}`]; + if (scanMode) lines.push(`##SCAN_MODE=${scanMode}`); + if (pageHeader) lines.push(`##PAGE=${pageHeader}`); + lines.push(`##NPOINTS=${points.length}`); + if (minX != null) lines.push(`##FIRSTX=${x[0]}`); + if (maxX != null) lines.push(`##LASTX=${x[x.length - 1]}`); + if (minX != null) lines.push(`##MINX=${minX}`); + if (maxX != null) lines.push(`##MAXX=${maxX}`); + if (minY != null) lines.push(`##MINY=${minY}`); + if (maxY != null) lines.push(`##MAXY=${maxY}`); + if (y.length > 0) lines.push(`##FIRSTY=${y[0]}`); + lines.push('##XYDATA=(XY..XY)'); + lines.push(...points); + lines.push('##END='); + const jcamp = `${lines.join('\n')}\n`; + const selectionLog = { + retentionTime: retentionTimeRaw, + polarity, + msSourceChosen: describeLcmsMsSource(entity, entityIndex), + pageChosen: { + requested: retentionTimeRaw, + selected: pageChosen, + numericRequested: Number.isFinite(retentionTime) ? retentionTime : null + }, + hasPageHeader: pageHeader ? jcamp.includes(`##PAGE=${pageHeader}`) : false, + fallbackApplied: sourceFallback || pageFallback + }; + return { + jcamp, + selection: selectionLog + }; +}; +exports.buildLcmsMsPageJcamp = buildLcmsMsPageJcamp; \ No newline at end of file diff --git a/dist/features/lc-ms/submit/index.js b/dist/features/lc-ms/submit/index.js new file mode 100644 index 00000000..176f8621 --- /dev/null +++ b/dist/features/lc-ms/submit/index.js @@ -0,0 +1,24 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "formatLcmsIntegralsForBackend", { + enumerable: true, + get: function get() { + return _peaks.formatLcmsIntegralsForBackend; + } +}); +Object.defineProperty(exports, "formatLcmsPeaksForBackend", { + enumerable: true, + get: function get() { + return _peaks.formatLcmsPeaksForBackend; + } +}); +Object.defineProperty(exports, "getLcmsMzPageData", { + enumerable: true, + get: function get() { + return _peaks.getLcmsMzPageData; + } +}); +var _peaks = require("./peaks"); \ No newline at end of file diff --git a/dist/features/lc-ms/submit/peaks.js b/dist/features/lc-ms/submit/peaks.js new file mode 100644 index 00000000..bcf37234 --- /dev/null +++ b/dist/features/lc-ms/submit/peaks.js @@ -0,0 +1,66 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.formatLcmsIntegralsForBackend = formatLcmsIntegralsForBackend; +exports.formatLcmsPeaksForBackend = formatLcmsPeaksForBackend; +exports.getLcmsMzPageData = getLcmsMzPageData; +function formatLcmsPeaksForBackend(hplcMsSt) { + const allPeaks = []; + if (hplcMsSt && hplcMsSt.uvvis && hplcMsSt.uvvis.spectraList) { + hplcMsSt.uvvis.spectraList.forEach(spectrum => { + if (spectrum.peaks && spectrum.peaks.length > 0) { + const { + pageValue + } = spectrum; + spectrum.peaks.forEach(peak => { + allPeaks.push({ + ...peak, + wavelength: pageValue + }); + }); + } + }); + } + return allPeaks; +} +function formatLcmsIntegralsForBackend(hplcMsSt) { + const allIntegrals = []; + if (hplcMsSt && hplcMsSt.uvvis && hplcMsSt.uvvis.spectraList) { + hplcMsSt.uvvis.spectraList.forEach(spectrum => { + if (spectrum.integrations && spectrum.integrations.length > 0) { + const { + pageValue + } = spectrum; + spectrum.integrations.forEach(integral => { + allIntegrals.push({ + from: integral.xL, + to: integral.xU, + value: integral.area, + integral: integral.absoluteArea, + wavelength: pageValue + }); + }); + } + }); + } + return allIntegrals; +} +function getLcmsMzPageData(hplcMsSt) { + const tic = hplcMsSt?.tic; + const ms = hplcMsSt?.ms; + if (!tic || !ms) return null; + const polarity = tic.polarity || 'positive'; + let polarityKey = 'neutral'; + if (polarity === 'negative') polarityKey = 'negative';else if (polarity === 'positive') polarityKey = 'positive'; + const ticDataX = tic[polarityKey]?.data?.x; + if (!Array.isArray(ticDataX) || !Number.isFinite(tic.currentPageValue)) return null; + let currentIndex = ms[polarityKey]?.pageValues?.findIndex(value => Number.isFinite(value) && Math.abs(value - tic.currentPageValue) < 1e-6); + if (!Number.isFinite(currentIndex) || currentIndex < 0) { + currentIndex = ticDataX.findIndex(x => Math.abs(x - tic.currentPageValue) < 1e-6); + } + if (currentIndex < 0) return null; + const peaks = ms[polarityKey]?.peaks?.[currentIndex]; + return Array.isArray(peaks) ? peaks : null; +} \ No newline at end of file diff --git a/dist/features/lc-ms/ui/wavelengthSelect.js b/dist/features/lc-ms/ui/wavelengthSelect.js new file mode 100644 index 00000000..e1bad5f7 --- /dev/null +++ b/dist/features/lc-ms/ui/wavelengthSelect.js @@ -0,0 +1,54 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var _react = _interopRequireDefault(require("react")); +var _classnames = _interopRequireDefault(require("classnames")); +var _material = require("@mui/material"); +var _jsxRuntime = require("react/jsx-runtime"); +/* eslint-disable react/function-component-definition */ + +const renderWavelengthSelect = (classes, hplcMsSt, updateWavelengthAct, options = {}) => { + const { + labelId = 'select-decimal-label', + label = 'Decimal', + width = '140px' + } = options; + const uvvis = hplcMsSt && hplcMsSt.uvvis || {}; + const { + listWaveLength = null, + selectedWaveLength + } = uvvis; + const items = listWaveLength ? listWaveLength.map(d => /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.MenuItem, { + value: d, + children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + className: (0, _classnames.default)(classes.txtOpt, 'option-sv-bar-decimal'), + children: d + }) + }, d)) : []; + const hasSelectedWaveLength = listWaveLength && listWaveLength.includes(selectedWaveLength); + const resolvedSelectedWaveLength = hasSelectedWaveLength ? selectedWaveLength : listWaveLength && listWaveLength[0]; + return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.FormControl, { + className: (0, _classnames.default)(classes.fieldDecimal), + variant: "outlined", + style: { + width + }, + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.InputLabel, { + id: labelId, + className: (0, _classnames.default)(classes.selectLabel, 'select-sv-bar-label'), + children: "Wavelength (nm)" + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Select, { + labelId: labelId, + label: label, + value: resolvedSelectedWaveLength, + onChange: updateWavelengthAct, + className: (0, _classnames.default)(classes.selectInput, 'input-sv-bar-decimal'), + children: items + })] + }); +}; +var _default = exports.default = renderWavelengthSelect; \ No newline at end of file diff --git a/dist/fn.js b/dist/fn.js new file mode 100644 index 00000000..1010fad0 --- /dev/null +++ b/dist/fn.js @@ -0,0 +1,24 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var _format = _interopRequireDefault(require("./helpers/format")); +var _chem = require("./helpers/chem"); +var _converter = require("./helpers/converter"); +var _multiplicity_calc = require("./helpers/multiplicity_calc"); +var _carbonFeatures = require("./helpers/carbonFeatures"); +var _list_layout = require("./constants/list_layout"); +/* eslint-disable prefer-object-spread */ + +const FN = Object.assign({}, _format.default, { + ExtractJcamp: _chem.ExtractJcamp, + buildLcmsMsPageJcamp: _chem.buildLcmsMsPageJcamp, + ToXY: _converter.ToXY, + LIST_LAYOUT: _list_layout.LIST_LAYOUT, + CalcMpyCenter: _multiplicity_calc.calcMpyCenter, + CarbonFeatures: _carbonFeatures.carbonFeatures +}); +var _default = exports.default = FN; \ No newline at end of file diff --git a/dist/helpers/brush.js b/dist/helpers/brush.js new file mode 100644 index 00000000..436f51e4 --- /dev/null +++ b/dist/helpers/brush.js @@ -0,0 +1,127 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var _compass = require("./compass"); +var _list_ui = require("../constants/list_ui"); +/* eslint-disable prefer-object-spread */ + +const d3 = require('d3'); +const wheeled = (focus, event) => { + const { + currentExtent, + scrollUiWheelAct, + brushClass + } = focus; + // WORKAROUND: firefox wheel compatibilty + const wheelEvent = focus.isFirefox ? -event.deltaY : event.wheelDelta; // eslint-disable-line + const direction = wheelEvent > 0; + scrollUiWheelAct(Object.assign({}, currentExtent, { + direction, + brushClass + })); +}; +const brushed = (focus, xOnly, event, brushedClass = '.d3Svg') => { + const { + selectUiSweepAct, + data, + dataPks, + brush, + brushX, + w, + h, + scales + } = focus; + const selection = event.selection && event.selection.reverse(); + if (!selection) return; + let xes = [w, 0].map(scales.x.invert).sort((a, b) => a - b); + let yes = [h, 0].map(scales.y.invert).sort((a, b) => a - b); + let xExtent = { + xL: xes[0], + xU: xes[1] + }; + let yExtent = { + yL: yes[0], + yU: yes[1] + }; + if (xOnly) { + xes = selection.map(scales.x.invert).sort((a, b) => a - b); + xExtent = { + xL: xes[0], + xU: xes[1] + }; + } else { + const [begPt, endPt] = selection; + xes = [begPt[0], endPt[0]].map(scales.x.invert).sort((a, b) => a - b); + yes = [begPt[1], endPt[1]].map(scales.y.invert).sort((a, b) => a - b); + xExtent = { + xL: xes[0], + xU: xes[1] + }; + yExtent = { + yL: yes[0], + yU: yes[1] + }; + } + selectUiSweepAct({ + xExtent, + yExtent, + data, + dataPks + }); + let svgSel = null; + if (focus?.svg && typeof focus.svg.selectAll === 'function') { + svgSel = focus.svg; + } else if (typeof brushedClass === 'string') { + svgSel = d3.select(brushedClass); + } + if (svgSel && typeof svgSel.selectAll === 'function' && !svgSel.empty()) { + const brushSelection = xOnly ? svgSel.selectAll('.brushX') : svgSel.selectAll('.brush'); + if (!brushSelection.empty()) { + if (xOnly && brushX) { + brushSelection.call(brushX.move, null); + } else if (brush) { + brushSelection.call(brush.move, null); + } + } + } +}; +const MountBrush = (focus, isUiAddIntgSt, isUiNoBrushSt, brushedClass = '.d3Svg') => { + const { + root, + svg, + brush, + brushX, + w, + h, + uiSt, + graphIndex + } = focus; + if (!root || !svg || typeof svg.selectAll !== 'function') return; + svg.selectAll('.brush, .brushX').remove(); + const isZoomInSubview = uiSt?.zoom?.sweepTypes?.[graphIndex] === _list_ui.LIST_UI_SWEEP_TYPE.ZOOMIN; + const isZoomInGlobal = uiSt?.sweepType === _list_ui.LIST_UI_SWEEP_TYPE.ZOOMIN; + const isIntegrationAdd = uiSt?.sweepType === _list_ui.LIST_UI_SWEEP_TYPE.INTEGRATION_ADD; + const isMultiplicitySweepAdd = uiSt?.sweepType === _list_ui.LIST_UI_SWEEP_TYPE.MULTIPLICITY_SWEEP_ADD; + const isZoomIn = isZoomInSubview || isZoomInGlobal; + if (!(graphIndex === 0 && isIntegrationAdd) && !isZoomIn && !isMultiplicitySweepAdd) return; + const isXAxisOnly = focus?.xOnlyBrush === true; + const xOnly = isUiAddIntgSt || isXAxisOnly && !isZoomIn; + const brushedCb = event => brushed(focus, xOnly, event, brushedClass); + const wheeledCb = event => wheeled(focus, event); + if (isUiNoBrushSt) { + const target = xOnly ? brushX : brush; + const klass = xOnly ? 'brushX' : 'brush'; + target.handleSize(10).extent([[0, 0], [w, h]]).on('end', brushedCb); + root.append('g').attr('class', klass).on('mousemove', event => (0, _compass.MouseMove)(event, focus)).call(target); + } + svg.on('wheel', wheeledCb); +}; +var _default = exports.default = MountBrush; // const resetedCb = () => reseted(main); +// main.svg.on('dblclick', resetedCb); +// const reseted = (main) => { +// const { selectUiSweepAct } = main; +// selectUiSweepAct({ xExtent: false, yExtent: false }); +// }; \ No newline at end of file diff --git a/dist/helpers/calc.js b/dist/helpers/calc.js new file mode 100644 index 00000000..ed9fe07a --- /dev/null +++ b/dist/helpers/calc.js @@ -0,0 +1,17 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.findClosest = exports.calcSlope = exports.almostEqual = void 0; +const almostEqual = (a, b) => Math.abs(a - b) < 0.00000001 * Math.abs(a + b); +exports.almostEqual = almostEqual; +const calcSlope = (x1, y1, x2, y2) => { + if (x2 === x1) { + return 0; + } + return (y2 - y1) / (x2 - x1); +}; +exports.calcSlope = calcSlope; +const findClosest = (arr, target) => arr.reduce((prev, curr) => Math.abs(curr - target) < Math.abs(prev - target) ? curr : prev); // eslint-disable-line +exports.findClosest = findClosest; \ No newline at end of file diff --git a/dist/helpers/carbonFeatures.js b/dist/helpers/carbonFeatures.js new file mode 100644 index 00000000..3c97f566 --- /dev/null +++ b/dist/helpers/carbonFeatures.js @@ -0,0 +1,51 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.carbonFeatures = void 0; +var _multiplicity_calc = require("./multiplicity_calc"); +const carbonFeatures = (peaksEdit, multiplicitySt) => { + const { + selectedIdx, + multiplicities + } = multiplicitySt; + const selectedMultiplicity = multiplicities[selectedIdx]; + const { + stack, + shift + } = selectedMultiplicity; + const nmrMpyCenters = stack.map(stk => { + // eslint-disable-line + return { + x: (0, _multiplicity_calc.calcMpyCenter)(stk.peaks, shift, stk.mpyType), + y: 0 + }; + }); + let targetIdxs = []; + stack.forEach(stk => { + // find peak idxs to be removed + stk.peaks.forEach(p => { + let targetIdx = -1; + let minDiff = 999999999; + peaksEdit.forEach((pe, idx) => { + const xDiff = Math.abs(pe.x - p.x); + if (xDiff < minDiff) { + targetIdx = idx; + minDiff = xDiff; + } + }); + targetIdxs = [...targetIdxs, targetIdx]; + }); + }); + let features = [...nmrMpyCenters]; + peaksEdit.forEach((pe, idx) => { + if (targetIdxs.indexOf(idx) < 0) { + features = [...features, pe]; + } + }); + return features; +}; + +// eslint-disable-line +exports.carbonFeatures = carbonFeatures; \ No newline at end of file diff --git a/dist/helpers/cfg.js b/dist/helpers/cfg.js new file mode 100644 index 00000000..dc2785c4 --- /dev/null +++ b/dist/helpers/cfg.js @@ -0,0 +1,63 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var _format = _interopRequireDefault(require("./format")); +const btnCmdAnaViewer = layoutSt => _format.default.isMsLayout(layoutSt) || _format.default.isLCMsLayout(layoutSt) || _format.default.isRamanLayout(layoutSt) || _format.default.is19FLayout(layoutSt) || _format.default.isUvVisLayout(layoutSt) || _format.default.isHplcUvVisLayout(layoutSt) || _format.default.isTGALayout(layoutSt) || _format.default.isDSCLayout(layoutSt) || _format.default.isXRDLayout(layoutSt) || _format.default.is31PLayout(layoutSt) || _format.default.is15NLayout(layoutSt) || _format.default.is29SiLayout(layoutSt) || _format.default.isCyclicVoltaLayout(layoutSt) || _format.default.isCDSLayout(layoutSt) || _format.default.isSECLayout(layoutSt) || _format.default.isGCLayout(layoutSt); +const hideCmdAnaViewer = () => false; +const btnCmdAddPeak = layoutSt => _format.default.isMsLayout(layoutSt); +const btnCmdRmPeak = layoutSt => _format.default.isMsLayout(layoutSt); +const btnCmdSetRef = layoutSt => !_format.default.isNmrLayout(layoutSt); +const btnCmdIntg = layoutSt => !(_format.default.isNmrLayout(layoutSt) || _format.default.isHplcUvVisLayout(layoutSt) || _format.default.isLCMsLayout(layoutSt)); // eslint-disable-line + +const btnCmdMpy = layoutSt => !_format.default.isNmrLayout(layoutSt); +const btnCmdMpyPeak = (layoutSt, mpySt, curveIdx = 0) => { + const { + multiplicities + } = mpySt; + let smExtextVal = false; + if (multiplicities) { + const selectedMultiplicity = multiplicities[curveIdx]; + if (selectedMultiplicity) { + const { + smExtext + } = selectedMultiplicity; + smExtextVal = smExtext; + } + } + return btnCmdMpy(layoutSt) || !smExtextVal; +}; +const hideCmdThres = layoutSt => _format.default.isMsLayout(layoutSt); +const btnCmdThres = thresVal => !thresVal; + +// const hidePanelPeak = layoutSt => Format.isMsLayout(layoutSt); +const hidePanelPeak = layoutSt => !_format.default.isSECLayout(layoutSt); // eslint-disable-line + +const hidePanelMpy = layoutSt => !_format.default.isNmrLayout(layoutSt); +const hidePanelCompare = layoutSt => !(_format.default.isIrLayout(layoutSt) || _format.default.isHplcUvVisLayout(layoutSt) || _format.default.isXRDLayout(layoutSt)); // eslint-disable-line + +const hideSolvent = layoutSt => !_format.default.isNmrLayout(layoutSt); +const showTwoThreshold = layoutSt => _format.default.isCyclicVoltaLayout(layoutSt); +const hidePanelCyclicVolta = layoutSt => !_format.default.isCyclicVoltaLayout(layoutSt); +const Config = { + btnCmdAnaViewer, + hideCmdAnaViewer, + btnCmdAddPeak, + btnCmdRmPeak, + btnCmdSetRef, + btnCmdIntg, + btnCmdMpy, + btnCmdMpyPeak, + hideCmdThres, + btnCmdThres, + hidePanelPeak, + hidePanelMpy, + hidePanelCompare, + hideSolvent, + showTwoThreshold, + hidePanelCyclicVolta +}; +var _default = exports.default = Config; \ No newline at end of file diff --git a/dist/helpers/chem.js b/dist/helpers/chem.js new file mode 100644 index 00000000..fd85eb79 --- /dev/null +++ b/dist/helpers/chem.js @@ -0,0 +1,1282 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.Topic2Seed = exports.ToThresEndPts = exports.ToShiftPeaks = exports.ToFrequency = exports.GetCyclicVoltaShiftOffset = exports.GetCyclicVoltaRatio = exports.GetCyclicVoltaPreviousShift = exports.GetCyclicVoltaPeakSeparate = exports.GetComparisons = exports.Feature2Peak = exports.Feature2MaxMinPeak = exports.ExtractJcamp = exports.Convert2Thres = exports.Convert2Scan = exports.Convert2Peak = exports.Convert2MaxMinPeak = exports.Convert2DValue = void 0; +Object.defineProperty(exports, "buildLcmsMsPageJcamp", { + enumerable: true, + get: function get() { + return _parsing.buildLcmsMsPageJcamp; + } +}); +exports.convertTopic = exports.convertThresEndPts = void 0; +var _jcampconverter = _interopRequireDefault(require("jcampconverter")); +var _reselect = require("reselect"); +var _shift = require("./shift"); +var _format = _interopRequireDefault(require("./format")); +var _list_layout = require("../constants/list_layout"); +var _integration = require("./integration"); +var _parsing = require("../features/lc-ms/parsing"); +/* eslint-disable +no-mixed-operators, react/function-component-definition, +prefer-object-spread, camelcase, no-plusplus, prefer-destructuring, +max-len */ + +const canIntegrate = layoutSt => !(_format.default.isNmrLayout(layoutSt) || _format.default.isHplcUvVisLayout(layoutSt) || _format.default.isLCMsLayout(layoutSt)); +const getTopic = (_, props) => props.topic; +const getFeature = (_, props) => props.feature; +const getLayout = (state, _) => state.layout; // eslint-disable-line + +const GetCyclicVoltaShiftOffset = (volammetryData = null, curveIdx = 0) => { + if (!volammetryData) return 0.0; + const { + spectraList + } = volammetryData; + const spectra = spectraList[curveIdx]; + if (!spectra) return 0.0; + const { + shift + } = spectra; + const { + ref, + val + } = shift; + if (!ref) return 0.0; + const { + e12 + } = ref; + return e12 - val; +}; +exports.GetCyclicVoltaShiftOffset = GetCyclicVoltaShiftOffset; +const getShiftOffset = (state, _) => { + // eslint-disable-line + const { + curve, + layout, + cyclicvolta + } = state; + const { + curveIdx + } = curve; + if (layout === _list_layout.LIST_LAYOUT.CYCLIC_VOLTAMMETRY && cyclicvolta) { + return GetCyclicVoltaShiftOffset(cyclicvolta, curveIdx); + } + const { + shift + } = state; + const { + shifts + } = shift; + const selectedShift = shifts[curveIdx]; + if (!selectedShift) { + return 0.0; + } + const { + ref, + peak + } = selectedShift; + return (0, _shift.FromManualToOffset)(ref, peak); +}; +const calcXYK = (xs, ys, maxY, offset) => { + const sp = []; + let k = 0; + for (let i = 0; i < ys.length; i += 1) { + // no-downsample + const x = xs[i] - offset; + const y = ys[i]; + const cy = y / maxY; + if (cy > 0.0) { + k += cy; + } + sp.push({ + x, + y, + k + }); + } + return sp; +}; +const calcXY = (xs, ys, maxY, offset) => { + const sp = []; + for (let i = 0; i < ys.length; i += 1) { + // no-downsample + const x = xs[i] - offset; + const y = ys[i]; + sp.push({ + x, + y + }); + } + return sp; +}; +const convertTopic = (topic, layout, feature, offset) => { + if (!feature || !topic) return []; + const { + maxY + } = feature || {}; + const xs = topic.x || []; + const ys = topic.y || []; + const isItgDisable = canIntegrate(layout); + if (!isItgDisable) return calcXYK(xs, ys, maxY, offset); + return calcXY(xs, ys, maxY, offset); +}; +exports.convertTopic = convertTopic; +const Topic2Seed = exports.Topic2Seed = (0, _reselect.createSelector)(getTopic, getLayout, getFeature, getShiftOffset, convertTopic); +const getOthers = (_, props) => props.comparisons; +const calcRescaleXY = (xs, ys, minY, maxY, show) => { + const sp = []; + if (xs.length < 1) return sp; + const [lowerY, upperY] = [Math.min(...ys), Math.max(...ys)]; + const faktor = (maxY - minY) / (upperY - lowerY); + for (let i = 0; i < ys.length; i += 2) { + // downsample + const x = xs[i]; + const y = (ys[i] - lowerY) * faktor + minY; + sp.push({ + x, + y + }); + } + return { + data: sp, + show + }; +}; +const convertComparisons = (layout, comparisons, feature) => { + const { + minY, + maxY + } = feature; + if (!comparisons || !(_format.default.isIrLayout(layout) || _format.default.isHplcUvVisLayout(layout) || _format.default.isXRDLayout(layout))) return []; + return comparisons.map(c => { + const { + spectra, + show + } = c; + const topic = spectra[0].data[0]; + const xs = topic.x; + const ys = topic.y; + return calcRescaleXY(xs, ys, minY, maxY, show); + }); +}; +const GetComparisons = exports.GetComparisons = (0, _reselect.createSelector)(getLayout, getOthers, getFeature, convertComparisons); +const convertFrequency = (layout, feature) => { + if (!_format.default.isNmrLayout(layout)) return false; + const { + observeFrequency + } = feature; + const freq = Array.isArray(observeFrequency) ? observeFrequency[0] : observeFrequency; + return parseFloat(freq) || false; +}; +const ToFrequency = exports.ToFrequency = (0, _reselect.createSelector)(getLayout, getFeature, convertFrequency); +const getThreshold = state => state.threshold ? state.threshold.list[state.curve.curveIdx].value * 1.0 : false; +const Convert2Peak = (feature, threshold, offset, upThreshold = false, lowThreshold = false) => { + if (feature?.operation?.layout === 'LC/MS') { + const data = feature.data[0]; + if (!data) return []; + const { + x, + y + } = data; + const peaks = []; + const maxIntensity = Math.max(...y); + const thresholdValue = threshold || 0; + for (let i = 1; i < y.length - 1; i++) { + const intensity = y[i] / maxIntensity * 100; + if (intensity >= thresholdValue && y[i] > y[i - 1] && y[i] > y[i + 1]) { + peaks.push({ + x: x[i], + y: y[i] + }); + } + } + return peaks; + } + const peak = []; + if (!feature || !feature.data) return peak; + const data = feature.data[0]; + const { + maxY, + peakUp, + thresRef, + minY, + upperThres, + lowerThres, + operation + } = feature; + const { + layout + } = operation; + if (_format.default.isLCMsLayout(layout) && feature.peaks) { + return feature.peaks.map(p => ({ + x: p.x - (offset || 0), + y: p.y + })); + } + if ((_format.default.isCyclicVoltaLayout(layout) || _format.default.isCDSLayout(layout)) && (upperThres || lowerThres)) { + let upperThresVal = upThreshold || upperThres; + if (!upperThresVal) { + upperThresVal = 1.0; + } + let lowerThresVal = lowThreshold || lowerThres; + if (!lowerThresVal) { + lowerThresVal = 1.0; + } + const yUpperThres = parseFloat(upperThresVal) / 100.0 * maxY; + const yLowerThres = parseFloat(lowerThresVal) / 100.0 * minY; + const corrOffset = offset || 0.0; + for (let i = 0; i < data.y.length; i += 1) { + const y = data.y[i]; + const overUpperThres = y >= yUpperThres; + const belowThres = y <= yLowerThres; + if (overUpperThres || belowThres) { + const x = data.x[i] - corrOffset; + peak.push({ + x, + y + }); + } + } + return peak; + } + const thresVal = threshold || thresRef; + const yThres = Number.parseFloat((thresVal * maxY / 100.0).toFixed(10)); + const corrOffset = offset || 0.0; + for (let i = 0; i < data.y.length; i += 1) { + const y = data.y[i]; + const overThres = peakUp && Math.abs(y) >= yThres || !peakUp && Math.abs(y) <= yThres; + if (overThres) { + const x = data.x[i] - corrOffset; + peak.push({ + x, + y + }); + } + } + return peak; +}; +exports.Convert2Peak = Convert2Peak; +const Feature2Peak = exports.Feature2Peak = (0, _reselect.createSelector)(getFeature, getThreshold, getShiftOffset, Convert2Peak); +const Convert2MaxMinPeak = (layout, feature, offset) => { + // eslint-disable-line + const peaks = { + max: [], + min: [], + pecker: [], + refIndex: -1 + }; + if (!_format.default.isCyclicVoltaLayout(layout) || !feature || !feature.data) return null; // eslint-disable-line + // const data = feature.data[0]; // eslint-disable-line + const { + volammetryData + } = feature; + if (volammetryData && volammetryData.length > 0) { + const maxArr = volammetryData.map(peakData => { + // peaks.refIndex = peakData.isRef === true ? idx : -1; + if (peakData.max.x === '') return null; + return { + x: Number(peakData.max.x), + y: Number(peakData.max.y) + }; + }); + const minArr = volammetryData.map(peakData => { + if (peakData.min.x === '') return null; + return { + x: Number(peakData.min.x), + y: Number(peakData.min.y) + }; + }); + const peckerArr = volammetryData.map(peakData => { + if (peakData.pecker.x === '') return null; + return { + x: Number(peakData.pecker.x), + y: Number(peakData.pecker.y) + }; + }); + const refIndex = volammetryData.findIndex(peakData => peakData.isRef === true); + peaks.max = maxArr; + peaks.min = minArr; + peaks.pecker = peckerArr; + peaks.refIndex = refIndex; + return peaks; + } + return peaks; +}; +exports.Convert2MaxMinPeak = Convert2MaxMinPeak; +const Feature2MaxMinPeak = exports.Feature2MaxMinPeak = (0, _reselect.createSelector)(getLayout, getFeature, getShiftOffset, Convert2MaxMinPeak); +const convertThresEndPts = (feature, threshold) => { + const { + maxY, + maxX, + minX, + thresRef + } = feature; + const thresVal = threshold || thresRef || 0; + if (!thresVal || !feature.data) return []; + const yThres = thresVal * maxY / 100.0; + const endPts = [{ + x: minX - 200, + y: yThres + }, { + x: maxX + 200, + y: yThres + }]; + return endPts; +}; +exports.convertThresEndPts = convertThresEndPts; +const ToThresEndPts = exports.ToThresEndPts = (0, _reselect.createSelector)(getFeature, getThreshold, convertThresEndPts); +const getShiftPeak = state => { + const { + curve, + shift + } = state; + const { + curveIdx + } = curve; + const { + shifts + } = shift; + const selectedShift = shifts[curveIdx]; + if (!selectedShift) { + return false; + } + return selectedShift.peak; +}; +const convertSfPeaks = (peak, offset) => { + if (!peak || !peak.x) return []; + return [{ + x: peak.x - offset, + y: peak.y + }]; +}; +const ToShiftPeaks = exports.ToShiftPeaks = (0, _reselect.createSelector)(getShiftPeak, getShiftOffset, convertSfPeaks); + +// - - - - - - - - - - - - - - - - - - - - - - +// ExtractJcamp +// - - - - - - - - - - - - - - - - - - - - - - +const readLayout = jcamp => { + if (jcamp.dataType?.toUpperCase?.() === 'LC/MS') { + return _list_layout.LIST_LAYOUT.LC_MS; + } + const { + xType, + spectra + } = jcamp; + if (xType && _format.default.isNmrLayout(xType)) return xType; + if (!spectra || !Array.isArray(spectra) || spectra.length === 0) { + return false; + } + const { + dataType + } = spectra[0] || {}; + if (dataType) { + if (dataType.includes('INFRARED SPECTRUM')) { + return _list_layout.LIST_LAYOUT.IR; + } + if (dataType.includes('RAMAN SPECTRUM')) { + return _list_layout.LIST_LAYOUT.RAMAN; + } + if (dataType.includes('UV/VIS SPECTRUM')) { + if (dataType.includes('HPLC')) { + return _list_layout.LIST_LAYOUT.HPLC_UVVIS; + } + return _list_layout.LIST_LAYOUT.UVVIS; + } + if (dataType.includes('THERMOGRAVIMETRIC ANALYSIS')) { + return _list_layout.LIST_LAYOUT.TGA; + } + if (dataType.includes('DIFFERENTIAL SCANNING CALORIMETRY')) { + return _list_layout.LIST_LAYOUT.DSC; + } + if (dataType.includes('X-RAY DIFFRACTION')) { + return _list_layout.LIST_LAYOUT.XRD; + } + if (dataType.includes('MASS SPECTRUM')) { + return _list_layout.LIST_LAYOUT.MS; + } + if (dataType.includes('CYCLIC VOLTAMMETRY')) { + return _list_layout.LIST_LAYOUT.CYCLIC_VOLTAMMETRY; + } + if (dataType.includes('CIRCULAR DICHROISM SPECTROSCOPY')) { + return _list_layout.LIST_LAYOUT.CDS; + } + if (dataType.includes('SIZE EXCLUSION CHROMATOGRAPHY')) { + return _list_layout.LIST_LAYOUT.SEC; + } + if (dataType.includes('GAS CHROMATOGRAPHY')) { + return _list_layout.LIST_LAYOUT.GC; + } + if (dataType.includes('SORPTION-DESORPTION MEASUREMENT')) { + return _list_layout.LIST_LAYOUT.AIF; + } + if (dataType.includes('Emissions')) { + return _list_layout.LIST_LAYOUT.EMISSIONS; + } + if (dataType.includes('DLS ACF')) { + return _list_layout.LIST_LAYOUT.DLS_ACF; + } + if (dataType.includes('DLS intensity')) { + return _list_layout.LIST_LAYOUT.DLS_INTENSITY; + } + if (dataType.includes('LC/MS')) { + return _list_layout.LIST_LAYOUT.LC_MS; + } + } + return false; +}; +const extrSpectraShare = (spectra, layout) => spectra.map(s => Object.assign({ + layout +}, s)).filter(r => r != null); +const extrSpectraMs = (jcamp, layout) => { + const csCategories = [].concat(jcamp?.info?.$CSCATEGORY || []).map(c => String(c).toUpperCase()); + const hasUvvisCategory = csCategories.some(c => c.includes('UVVIS')); + const hasUvvisDataType = jcamp?.spectra?.some(s => { + const dt = String(s?.dataType || '').toUpperCase(); + return dt.includes('UV-VIS') || dt.includes('UVVIS') || dt.includes('HPLC UV'); + }); + const jcampDataType = String(jcamp?.dataType || '').toUpperCase(); + const hasUvvisJcampDataType = jcampDataType.includes('UV-VIS') || jcampDataType.includes('UVVIS') || jcampDataType.includes('HPLC UV'); + const isUvvisData = hasUvvisCategory || hasUvvisDataType || hasUvvisJcampDataType; + const hasTicCategory = csCategories.some(c => c.includes('TIC')); + const hasTicDataType = jcamp?.spectra?.some(s => { + const dt = String(s?.dataType || '').toUpperCase(); + return dt.includes('MASS TIC') || dt.includes('TIC'); + }); + const hasTicJcampDataType = jcampDataType.includes('MASS TIC') || jcampDataType.includes('TIC'); + const isTicData = hasTicCategory || hasTicDataType || hasTicJcampDataType; + const getCategory = idx => csCategories[idx] || ''; + const finalSpectra = []; + const parseIntegralsString = raw => { + if (raw == null) return []; + let text = raw; + if (Array.isArray(text)) text = text.join(' '); + text = String(text).trim(); + const groups = text.match(/\(([^)]+)\)/g) || []; + const out = []; + groups.forEach(g => { + const nums = g.replace(/[()]/g, '').split(/[,\s;]+/).map(s => Number(s)).filter(Number.isFinite); + if (nums.length >= 3) { + const [xL, xU, area, absMaybe] = nums; + out.push({ + xL, + xU, + area, + absoluteArea: Number.isFinite(absMaybe) ? absMaybe : Math.abs(area), + xExtent: { + xL, + xU + } + }); + } + }); + return out; + }; + const pickIntegralsForPair = (raw, idx) => { + if (raw == null) return ''; + if (Array.isArray(raw)) return raw[idx] ?? ''; + if (typeof raw === 'string') return idx === 0 ? raw : ''; + return ''; + }; + if (isUvvisData) { + const spectraList = jcamp.spectra || []; + const uvvisSpectra = []; + const peakTablesByPage = new Map(); + const hasPeakData = table => { + const data = table?.data?.[0]; + if (!data) return false; + if (Array.isArray(data)) return data.length >= 2; + if (data?.x && data?.y) return data.x.length > 0 && data.y.length > 0; + return false; + }; + const buildPeaks = source => { + if (!source) return []; + if (Array.isArray(source)) { + const peaks = []; + for (let i = 0; i < source.length - 1; i += 2) { + const x = Number(source[i]); + const y = Number(source[i + 1]); + if (Number.isFinite(x) && Number.isFinite(y)) peaks.push({ + x, + y + }); + } + return peaks; + } + if (source?.x && source?.y) { + const len = Math.min(source.x.length, source.y.length); + const peaks = new Array(len); + for (let j = 0; j < len; j++) peaks[j] = { + x: source.x[j], + y: source.y[j] + }; + return peaks; + } + return []; + }; + spectraList.forEach((s, idx) => { + if (!s) return; + const sDataType = String(s.dataType || '').toUpperCase(); + const isUvvisSpectrum = s.dataType === 'LC/MS' && getCategory(idx).includes('UVVIS') || sDataType.includes('UV-VIS') || sDataType.includes('UVVIS') || sDataType.includes('HPLC UV'); + if (isUvvisSpectrum) { + uvvisSpectra.push({ + spectrum: s, + idx + }); + } + if (s.dataType?.includes('PEAKTABLE')) { + const pageKey = s.pageValue ?? s.page; + if (pageKey == null) return; + const entry = peakTablesByPage.get(pageKey) || {}; + const cat = getCategory(idx); + if (cat.includes('AUTO_PEAK')) entry.auto = s;else if (cat.includes('EDIT_PEAK')) entry.edit = s;else entry.other = s; + peakTablesByPage.set(pageKey, entry); + } + }); + const container = jcamp?.info?.$OBSERVEDINTEGRALS ?? null; + const jcampUnitsField = String(jcamp?.info?.UNITS || '').toUpperCase(); + const jcampUnitsIndicatesMinutes = jcampUnitsField.includes('MINUTE'); + uvvisSpectra.forEach(({ + spectrum + }, pairIdx) => { + const xUnitUpper = String(spectrum?.xUnit || '').toUpperCase(); + const isExplicitMinutes = xUnitUpper.includes('MINUTE') || jcampUnitsIndicatesMinutes; + const isTimeAxis = xUnitUpper.includes('TIME') || xUnitUpper.includes('SECOND'); + const needsSecToMin = isTimeAxis && !isExplicitMinutes; + const scaleX = value => needsSecToMin ? value / 60 : value; + const pageKey = spectrum.pageValue ?? spectrum.page; + const peakTable = peakTablesByPage.get(pageKey); + let selectedPeakTable = null; + if (hasPeakData(peakTable?.edit)) { + selectedPeakTable = peakTable.edit; + } else if (hasPeakData(peakTable?.auto)) { + selectedPeakTable = peakTable.auto; + } else if (hasPeakData(peakTable?.other)) { + selectedPeakTable = peakTable.other; + } else { + selectedPeakTable = peakTable?.edit || peakTable?.auto || peakTable?.other || null; + } + const originalData = spectrum?.data?.[0]; + let normalizedData = spectrum.data; + if (needsSecToMin && originalData?.x) { + normalizedData = [{ + ...originalData, + x: originalData.x.map(scaleX) + }]; + } + const mainSpectrum = { + ...spectrum, + data: normalizedData, + peaks: [], + integrations: [], + csCategory: 'UVVIS PEAK TABLE' + }; + const peakSource = selectedPeakTable?.data?.[0] || spectrum?.data?.[0]; + const peaks = buildPeaks(peakSource).map(p => ({ + ...p, + x: scaleX(p.x) + })); + if (peaks.length) mainSpectrum.peaks = peaks; + const rawText = pickIntegralsForPair(container, pairIdx); + const integrals = parseIntegralsString(rawText).map(integ => ({ + ...integ, + xL: scaleX(integ.xL), + xU: scaleX(integ.xU), + xExtent: { + xL: scaleX(integ.xL), + xU: scaleX(integ.xU) + } + })); + if (integrals.length) mainSpectrum.integrations = integrals; + finalSpectra.push(mainSpectrum); + }); + } else if (isTicData) { + (jcamp.spectra || []).forEach(s => { + const hasPoints = s?.data?.[0]?.x?.length > 0; + if (hasPoints) { + finalSpectra.push({ + ...s, + csCategory: (0, _parsing.inferLcMsCategory)(s, jcamp) + }); + } + }); + } else { + (jcamp.spectra || []).forEach(s => { + const hasPoints = s?.data?.[0]?.x?.length > 0; + if (hasPoints) { + finalSpectra.push({ + ...s, + csCategory: (0, _parsing.inferLcMsCategory)(s, jcamp) + }); + } + }); + } + let spectra = extrSpectraShare(finalSpectra, layout) || []; + const info = jcamp?.info || {}; + if (info.UNITS && info.SYMBOL) { + const unitsString = Array.isArray(info.UNITS) ? info.UNITS[0] : info.UNITS; + const symbolString = Array.isArray(info.SYMBOL) ? info.SYMBOL[0] : info.SYMBOL; + const units = String(unitsString).split(','); + const symbols = String(symbolString).split(','); + let xUnit = null; + let yUnit = null; + symbols.forEach((sym, idx) => { + const curr = String(sym).replace(' ', '').toLowerCase(); + if (curr === 'x') xUnit = units[idx]?.trim?.() || null; + if (curr === 'y') yUnit = units[idx]?.trim?.() || null; + }); + spectra = spectra.map(sp => { + const spectrum = sp; + if (xUnit) spectrum.xUnit = xUnit; + if (yUnit) spectrum.yUnit = yUnit; + return spectrum; + }); + } + return spectra; +}; +const extrSpectraNi = (jcamp, layout) => { + const categorys = jcamp.info.$CSCATEGORY || ['SPECTRUM']; + const targetIdx = categorys.indexOf('SPECTRUM'); + const spectrum = extrSpectraShare(jcamp.spectra, layout)[targetIdx]; + return [spectrum] || [jcamp.spectra[0]]; +}; +const calcThresRef = (s, peakUp) => { + if (!s || !s.data || !Array.isArray(s.data) || !s.data[0] || !s.data[0].y) { + return null; + } + const ys = s.data[0].y; + if (!ys || !Array.isArray(ys) || ys.length === 0) return null; + const ref = peakUp ? Math.min(...ys.map(a => Math.abs(a))) : Math.max(...ys); + if (!s.maxY || s.maxY === 0) return null; + return peakUp ? Math.floor(ref * 100 * 100 / s.maxY) / 100 : Math.ceil(ref * 100 * 100 / s.maxY) / 100; +}; +const calcUpperThres = s => { + if (!s || !s.data || !Array.isArray(s.data) || !s.data[0] || !s.data[0].y) { + return null; + } + const ys = s.data[0].y; + if (!ys || !Array.isArray(ys) || ys.length === 0) return null; + const ref = Math.max(...ys); + if (!s.maxY || s.maxY === 0) return null; + return Math.floor(ref * 100 * 100 / s.maxY) / 100; +}; +const calcLowerThres = s => { + if (!s || !s.data || !Array.isArray(s.data) || !s.data[0] || !s.data[0].y) { + return null; + } + const ys = s.data[0].y; + if (!ys || !Array.isArray(ys) || ys.length === 0) return null; + const ref = Math.min(...ys); + if (!s.minY || s.minY === 0) return null; + return Math.ceil(ref * 100 * 100 / s.minY) / 100; +}; +const extractShift = (s, jcamp) => { + const shift = { + selectX: false, + solventName: false, + solventValue: false + }; + if (!s) return shift; + if (s && s.sampleDescription) { + const desc = s.sampleDescription; + const info = desc.split(/;|=/); + return { + selectX: parseFloat(info[1]), + solventName: info[3], + solventValue: parseFloat(info[5]) + }; + } + return { + selectX: parseFloat(jcamp.info.$CSSOLVENTX) || false, + solventName: jcamp.info.$CSSOLVENTNAME || false, + solventValue: parseFloat(jcamp.info.$CSSOLVENTVALUE) || false + }; +}; +const extractVoltammetryData = jcamp => { + const { + info + } = jcamp; + if (!info.$CSCYCLICVOLTAMMETRYDATA) return null; + const regx = /[^0-9.,E,e,-]/g; + const rawData = info.$CSCYCLICVOLTAMMETRYDATA.split('\n'); + const peakStack = rawData.map(line => { + const splittedLine = line.replace(regx, '').split(','); + const isRef = splittedLine.length > 8 && splittedLine[8] === '1'; + return { + max: { + x: splittedLine[0], + y: splittedLine[1] + }, + min: { + x: splittedLine[2], + y: splittedLine[3] + }, + ratio: splittedLine[4], + delta: splittedLine[5], + pecker: { + x: splittedLine[6], + y: splittedLine[7] + }, + isRef + }; + }); + return peakStack; +}; +const buildPeakFeature = (jcamp, layout, peakUp, s, thresRef, upperThres = false, lowerThres = false) => { + const { + xType, + info + } = jcamp; + const subTyp = xType ? ` - ${xType}` : ''; + const baseFeature = { + typ: s.dataType + subTyp, + peakUp, + thresRef, + scanCount: +info.$CSSCANCOUNT, + scanAutoTarget: +info.$CSSCANAUTOTARGET, + scanEditTarget: +info.$CSSCANEDITTARGET, + shift: extractShift(s, jcamp), + operation: { + layout, + nucleus: xType || '' + }, + observeFrequency: info['.OBSERVEFREQUENCY'], + solventName: info['.SOLVENTNAME'], + upperThres, + lowerThres, + volammetryData: extractVoltammetryData(jcamp), + scanRate: +info.$CSSCANRATE || 0.1, + weAreaValue: info.$CSWEAREAVALUE || '', + weAreaUnit: info.$CSWEAREAUNIT || '', + currentMode: info.$CSCURRENTMODE || '', + csCategory: info.$CSCATEGORY || s.csCategory + }; + if (layout === 'LC/MS') { + if (s.peaks) baseFeature.peaks = s.peaks; + if (s.integrations) baseFeature.integrations = s.integrations; + } + return Object.assign({}, baseFeature, s); +}; +const maxArray = arr => { + let len = arr.length; + let max = -Infinity; + while (len--) { + max = arr[len] > max ? arr[len] : max; + } + return max; +}; +const calcIntgRefArea = (spectra, stack) => { + if (stack.length === 0) return 1; + const data = spectra[0].data[0]; + const xs = data.x; + const ys = data.y; + const maxY = maxArray(ys); + const xyk = calcXYK(xs, ys, maxY, 0); + const { + xL, + xU, + area + } = stack[0]; + const rawArea = (0, _integration.getArea)(xL, xU, xyk); + const raw2realRatio = rawArea / area; + return { + raw2realRatio + }; +}; +const buildIntegFeature = (jcamp, spectra) => { + const { + $OBSERVEDINTEGRALS, + $OBSERVEDMULTIPLETS + } = jcamp.info; + const regx = /[^0-9.,-]/g; + let stack = []; + if ($OBSERVEDINTEGRALS) { + const its = $OBSERVEDINTEGRALS.split('\n').slice(1); + const itStack = its.map(t => { + const ts = t.replace(regx, '').split(','); + return { + xL: parseFloat(ts[0]), + xU: parseFloat(ts[1]), + area: parseFloat(ts[2]), + absoluteArea: parseFloat(ts[3]) + }; + }); + stack = [...stack, ...itStack]; + } + if ($OBSERVEDMULTIPLETS) { + const mps = $OBSERVEDMULTIPLETS.split('\n'); + const mpStack = mps.map(m => { + const ms = m.replace(regx, '').split(','); + return { + xL: parseFloat(ms[1]), + xU: parseFloat(ms[2]), + area: parseFloat(ms[4]) + }; + }); + stack = [...stack, ...mpStack]; + } + const { + raw2realRatio + } = calcIntgRefArea(spectra, stack); + const mStack = stack.map(st => Object.assign({}, st, { + area: st.area * raw2realRatio + })); + return { + refArea: raw2realRatio, + refFactor: 1, + shift: 0, + stack: mStack, + originStack: stack + }; +}; + +/* +const range = (head, tail, length) => { + const actTail = tail || length - 1; + return ( + Array(actTail - head + 1).fill().map((_, idx) => head + idx) + ); +}; +*/ + +const buildSimFeature = jcamp => { + const { + $CSSIMULATIONPEAKS + } = jcamp.info; + let nmrSimPeaks = $CSSIMULATIONPEAKS ? $CSSIMULATIONPEAKS.split('\n') : []; + nmrSimPeaks = nmrSimPeaks.map(x => parseFloat(x).toFixed(2)); + return { + nmrSimPeaks + }; +}; +const buildMpyFeature = jcamp => { + const { + $OBSERVEDMULTIPLETS, + $OBSERVEDMULTIPLETSPEAKS + } = jcamp.info; + const regx = /[^A-Za-z0-9.,-]/g; + const regxNum = /[^0-9.]/g; + let stack = []; + if (!$OBSERVEDMULTIPLETSPEAKS) return { + stack: [] + }; + const allPeaks = $OBSERVEDMULTIPLETSPEAKS.split('\n').map(p => p.replace(regx, '').split(',')); + if ($OBSERVEDMULTIPLETS) { + const mp = $OBSERVEDMULTIPLETS.split('\n'); + const mpStack = mp.map(m => { + const ms = m.replace(regx, '').split(','); + const idx = ms[0]; + let ys = []; + const peaks = allPeaks.map(p => { + if (p[0] === idx) { + ys = [...ys, parseFloat(p[2])]; + return { + x: parseFloat(p[1]), + y: parseFloat(p[2]) + }; + } + return null; + }).filter(r => r != null); + let js = m.split(','); + js = js[js.length - 1].split(' ').map(j => parseFloat(j.replace(regxNum, ''))).filter(Boolean); + return { + js, + mpyType: ms[6], + xExtent: { + xL: parseFloat(ms[1]), + xU: parseFloat(ms[2]) + }, + yExtent: { + yL: Math.min(...ys), + yU: Math.max(...ys) + }, + peaks + }; + }); + stack = [...stack, ...mpStack]; + } + return { + stack, + shift: 0, + smExtext: false + }; +}; +const isPeakTable = s => s.dataType && (s.dataType.includes('PEAKTABLE') || s.dataType.includes('PEAK ASSIGNMENTS')); +const extrFeaturesNi = (jcamp, layout, peakUp, spectra) => { + const nfs = {}; + const category = jcamp.info.$CSCATEGORY; + if (category) { + const idxEditPeak = category.indexOf('EDIT_PEAK'); + if (idxEditPeak >= 0) { + const sEP = jcamp.spectra[idxEditPeak]; + const thresRef = calcThresRef(sEP, peakUp); + nfs.editPeak = buildPeakFeature(jcamp, layout, peakUp, sEP, thresRef); + } + const idxAutoPeak = category.indexOf('AUTO_PEAK'); + if (idxAutoPeak >= 0) { + const sAP = jcamp.spectra[idxAutoPeak]; + const thresRef = calcThresRef(sAP, peakUp); + nfs.autoPeak = buildPeakFeature(jcamp, layout, peakUp, sAP, thresRef); + } + nfs.integration = buildIntegFeature(jcamp, spectra); + nfs.multiplicity = buildMpyFeature(jcamp); + nfs.simulation = buildSimFeature(jcamp); + return nfs; + } + + // workaround for legacy design + const features = jcamp.spectra.map(s => { + const thresRef = calcThresRef(s, peakUp); + return isPeakTable(s) ? buildPeakFeature(jcamp, layout, peakUp, s, thresRef) : null; + }).filter(r => r != null); + const integration = buildIntegFeature(jcamp, spectra); + const multiplicity = buildMpyFeature(jcamp); + const simulation = buildSimFeature(jcamp); + return { + editPeak: features[0], + autoPeak: features[1], + integration, + multiplicity, + simulation + }; +}; +const getBoundary = s => { + const { + x, + y + } = s.data[0]; + const maxX = Math.max(...x); + const minX = Math.min(...x); + const maxY = Math.max(...y); + const minY = Math.min(...y); + return { + maxX, + minX, + maxY, + minY + }; +}; +const extrFeaturesXrd = (jcamp, layout, peakUp) => { + const base = jcamp.spectra[0]; + const features = jcamp.spectra.map(s => { + const upperThres = _format.default.isXRDLayout(layout) ? 100 : calcUpperThres(s); + const lowerThres = _format.default.isXRDLayout(layout) ? 100 : calcLowerThres(s); + const cpo = buildPeakFeature(jcamp, layout, peakUp, s, 100, upperThres, lowerThres); + const bnd = getBoundary(s); + return Object.assign({}, base, cpo, bnd); + }).filter(r => r != null); + const category = jcamp.info.$CSCATEGORY; + if (category) { + const idxEditPeak = category.indexOf('EDIT_PEAK'); + if (idxEditPeak >= 0) { + const sEP = jcamp.spectra[idxEditPeak]; + const thresRef = calcThresRef(sEP, peakUp); + features.editPeak = buildPeakFeature(jcamp, layout, peakUp, sEP, thresRef); + } + const idxAutoPeak = category.indexOf('AUTO_PEAK'); + if (idxAutoPeak >= 0) { + const sAP = jcamp.spectra[idxAutoPeak]; + const thresRef = calcThresRef(sAP, peakUp); + features.autoPeak = buildPeakFeature(jcamp, layout, peakUp, sAP, thresRef); + } + } + return features; +}; +const extrFeaturesCylicVolta = (jcamp, layout, peakUp) => { + const base = jcamp.spectra[0]; + const features = jcamp.spectra.map(s => { + const upperThres = _format.default.isXRDLayout(layout) ? 100 : calcUpperThres(s); + const lowerThres = _format.default.isXRDLayout(layout) ? 100 : calcLowerThres(s); + const cpo = buildPeakFeature(jcamp, layout, peakUp, s, 100, upperThres, lowerThres); + const bnd = getBoundary(s); + let detector = ''; + let secData = null; + if (_format.default.isSECLayout(layout)) { + const { + info + } = jcamp; + detector = info.$DETECTOR ? info.$DETECTOR : ''; + const { + D, + MN, + MP, + MW + } = info; + secData = { + d: D, + mn: MN, + mp: MP, + mw: MW + }; + } + return Object.assign({}, base, cpo, bnd, { + detector, + secData + }); + }).filter(r => r != null); + return features; +}; +const extrFeaturesMs = (jcamp, layout, peakUp, spectra) => { + const thresRef = jcamp.info && jcamp.info.$CSTHRESHOLD * 100 || 5; + const features = spectra.map(s => { + if (!s.data || !s.data[0] || !s.data[0].x || !s.data[0].y) { + return null; + } + const cpo = buildPeakFeature(jcamp, layout, peakUp, s, +thresRef.toFixed(4)); + const bnd = getBoundary(s); + return Object.assign({}, cpo, bnd); + }).filter(r => r != null); + return features; +}; +const extractTemperature = jcamp => { + if ('$CSAUTOMETADATA' in jcamp.info) { + const match = jcamp.info.$CSAUTOMETADATA.match(/TEMPERATURE=([\d.]+)/); + if (match !== null) { + const temperature = match[1]; + return temperature; + } + } + return 'xxx'; +}; +const normalizeXyData = raw => { + if (!raw) return null; + if (Array.isArray(raw)) { + if (raw.length === 0) return null; + const first = raw[0]; + if (first && typeof first === 'object' && !Array.isArray(first)) { + const x = Array.isArray(first.x) ? first.x : []; + const y = Array.isArray(first.y) ? first.y : []; + if (x.length || y.length) return { + x, + y + }; + } + if (Array.isArray(first)) { + if (raw.length === 2 && Array.isArray(raw[0]) && Array.isArray(raw[1])) { + return { + x: raw[0], + y: raw[1] + }; + } + const x = []; + const y = []; + raw.forEach(pair => { + if (!Array.isArray(pair) || pair.length < 2) return; + const xVal = Number(pair[0]); + const yVal = Number(pair[1]); + if (Number.isFinite(xVal) && Number.isFinite(yVal)) { + x.push(xVal); + y.push(yVal); + } + }); + if (x.length || y.length) return { + x, + y + }; + } + } else if (typeof raw === 'object') { + const x = Array.isArray(raw.x) ? raw.x : []; + const y = Array.isArray(raw.y) ? raw.y : []; + if (x.length || y.length) return { + x, + y + }; + } + return null; +}; +const ensureSpectrumData = (spectrum, source) => { + if (!spectrum) return spectrum; + const result = { + ...spectrum + }; + let normalized = normalizeXyData(result.data); + if (!normalized && source) { + normalized = normalizeXyData({ + x: source.x, + y: source.y + }) || normalizeXyData(source.data); + } + if (normalized) { + result.data = [{ + x: normalized.x || [], + y: normalized.y || [] + }]; + } + return result; +}; +const ExtractJcamp = source => { + const jcamp = _jcampconverter.default.convert(source, { + xy: true, + keepRecordsRegExp: /(\$CSTHRESHOLD|\$CSSCANAUTOTARGET|\$CSSCANEDITTARGET|\$CSSCANCOUNT|\$CSSOLVENTNAME|\$CSSOLVENTVALUE|\$CSSOLVENTX|\$CSCATEGORY|\$CSITAREA|\$CSITFACTOR|\$OBSERVEDINTEGRALS|\$OBSERVEDMULTIPLETS|\$OBSERVEDMULTIPLETSPEAKS|\.SOLVENTNAME|\.OBSERVEFREQUENCY|\$CSSIMULATIONPEAKS|\$CSUPPERTHRESHOLD|\$CSLOWERTHRESHOLD|\$CSCYCLICVOLTAMMETRYDATA|UNITS|SYMBOL|\$CSAUTOMETADATA|\$DETECTOR|MN|MW|D|MP|MELTINGPOINT|TG|\$CSSCANRATE|\$CSSPECTRUMDIRECTION|\$CSWEAREAVALUE|\$CSWEAREAUNIT|\$CSCURRENTMODE|\$CSLCMSMZPAGE|SCAN_MODE|SCANMODE|TYPE|SOFTWARE|DATATYPE)/ // eslint-disable-line + }); + const isChemstation = (0, _parsing.isChemstationLcms)(source, jcamp); + const parsedPages = (0, _parsing.parseChemstationPages)(source, jcamp); + const spectraCount = Array.isArray(jcamp.spectra) ? jcamp.spectra.length : 0; + if (parsedPages.length > 1 && spectraCount < parsedPages.length) { + jcamp.spectra = parsedPages; + } + const hasNtuples = jcamp.ntuples && Array.isArray(jcamp.ntuples) && jcamp.ntuples.length > 0; + const hasSpectra = jcamp.spectra && Array.isArray(jcamp.spectra) && jcamp.spectra.length > 0; + const hasNtupleData = hasNtuples && jcamp.ntuples.some(ntuple => !!normalizeXyData(ntuple?.data) || !!normalizeXyData({ + x: ntuple?.x, + y: ntuple?.y + })); + const hasSpectraData = hasSpectra && jcamp.spectra.some(spectrum => !!normalizeXyData(spectrum?.data) || !!normalizeXyData({ + x: spectrum?.x, + y: spectrum?.y + })); + if (hasNtuples && hasNtupleData) { + if (hasSpectra && jcamp.spectra.length === 1 && jcamp.ntuples.length > 1) { + const singleSpectrum = jcamp.spectra[0]; + jcamp.spectra = jcamp.ntuples.map(ntuple => { + const spectrum = { + ...singleSpectrum, + ...ntuple, + dataType: singleSpectrum.dataType || jcamp.dataType || ntuple.dataType, + xUnit: ntuple.xUnit || singleSpectrum.xUnit || jcamp.info?.XUNITS, + yUnit: ntuple.yUnit || singleSpectrum.yUnit || jcamp.info?.YUNITS, + pageValue: ntuple.pageValue || ntuple.page, + page: ntuple.page || ntuple.pageValue, + pageSymbol: ntuple.pageSymbol || ntuple.pageValue || ntuple.page + }; + ensureSpectrumData(spectrum, ntuple); + return spectrum; + }); + } else if (!hasSpectra || !hasSpectraData || jcamp.spectra.length < jcamp.ntuples.length) { + jcamp.spectra = jcamp.ntuples.map(ntuple => { + const spectrum = { + ...ntuple, + dataType: jcamp.dataType || ntuple.dataType, + xUnit: ntuple.xUnit || jcamp.info?.XUNITS, + yUnit: ntuple.yUnit || jcamp.info?.YUNITS, + pageValue: ntuple.pageValue || ntuple.page, + page: ntuple.page || ntuple.pageValue, + pageSymbol: ntuple.pageSymbol || ntuple.pageValue || ntuple.page + }; + ensureSpectrumData(spectrum, ntuple); + return spectrum; + }); + } + } + let layout = readLayout(jcamp); + if (isChemstation) { + layout = _list_layout.LIST_LAYOUT.LC_MS; + } + const peakUp = !_format.default.isIrLayout(layout); + const spectra = _format.default.isMsLayout(layout) || _format.default.isLCMsLayout(layout) ? extrSpectraMs(jcamp, layout) : extrSpectraNi(jcamp, layout); + let features = {}; + if (_format.default.isMsLayout(layout) || _format.default.isLCMsLayout(layout)) { + features = extrFeaturesMs(jcamp, layout, peakUp, spectra); + } else if (_format.default.isXRDLayout(layout)) { + features = extrFeaturesXrd(jcamp, layout, peakUp); + const temperature = extractTemperature(jcamp); + return { + spectra, + features, + layout, + temperature + }; + } else if (_format.default.isCyclicVoltaLayout(layout) || _format.default.isSECLayout(layout) || _format.default.isAIFLayout(layout) || _format.default.isCDSLayout(layout) || _format.default.isGCLayout(layout)) { + features = extrFeaturesCylicVolta(jcamp, layout, peakUp); + } else { + features = extrFeaturesNi(jcamp, layout, peakUp, spectra); + if (_format.default.isDSCLayout(layout)) { + const { + info + } = jcamp; + const { + MELTINGPOINT, + TG + } = info; + const dscMetaData = { + meltingPoint: MELTINGPOINT, + tg: TG + }; + features = Object.assign({}, features, { + dscMetaData + }); + } + } + // const features = Format.isMsLayout(layout) + // ? extrFeaturesMs(jcamp, layout, peakUp) + // : ((Format.isXRDLayout(layout) || Format.isCyclicVoltaLayout(layout)) + // ? extrFeaturesXrd(jcamp, layout, peakUp) : extrFeaturesNi(jcamp, layout, peakUp, spectra)); + + const lcmsMzPageFromInfo = _format.default.isLCMsLayout(layout) ? (0, _parsing.readLcmsMzPageFromJcampInfo)(jcamp.info) : null; + if (lcmsMzPageFromInfo != null) { + return { + spectra, + features, + layout, + lcms_mz_page: lcmsMzPageFromInfo + }; + } + return { + spectra, + features, + layout + }; +}; +exports.ExtractJcamp = ExtractJcamp; +const Convert2Scan = (feature, scanSt) => { + const { + scanAutoTarget, + scanEditTarget + } = feature; + const { + target, + isAuto + } = scanSt; + const hasEdit = !!scanEditTarget; + const defaultIdx = isAuto || !hasEdit ? scanAutoTarget : scanEditTarget; + return target || defaultIdx; +}; +exports.Convert2Scan = Convert2Scan; +const Convert2Thres = (feature, thresSt) => { + const value = thresSt.value || feature.thresRef; + return value; +}; +exports.Convert2Thres = Convert2Thres; +const Convert2DValue = (doubleTheta, lambda = 0.15406, isRadian = true) => { + let theta = doubleTheta / 2; + if (isRadian) { + theta = theta / 180 * Math.PI; + } + const sinTheta = Math.sin(theta); + const dValue = lambda / (2 * sinTheta); + return dValue; +}; +exports.Convert2DValue = Convert2DValue; +const GetCyclicVoltaRatio = (y_max_peak, y_min_peak, y_pecker) => { + const firstExpr = Math.abs(y_min_peak) / Math.abs(y_max_peak); + const secondExpr = 0.485 * Math.abs(y_pecker) / Math.abs(y_max_peak); + const ratio = firstExpr + secondExpr + 0.086; + return ratio; +}; +exports.GetCyclicVoltaRatio = GetCyclicVoltaRatio; +const GetCyclicVoltaPeakSeparate = (x_max_peak, x_min_peak) => { + const delta = Math.abs(x_max_peak - x_min_peak); + return delta; +}; +exports.GetCyclicVoltaPeakSeparate = GetCyclicVoltaPeakSeparate; +const GetCyclicVoltaPreviousShift = (cyclicVolta, curveIdx) => { + if (!cyclicVolta) { + return 0.0; + } + const { + spectraList + } = cyclicVolta; + if (spectraList.length <= curveIdx) { + return 0.0; + } + const { + shift, + hasRefPeak + } = spectraList[curveIdx]; + const { + prevValue + } = shift; + return hasRefPeak ? prevValue : -prevValue; +}; +exports.GetCyclicVoltaPreviousShift = GetCyclicVoltaPreviousShift; \ No newline at end of file diff --git a/dist/helpers/compass.js b/dist/helpers/compass.js new file mode 100644 index 00000000..d83fd1c4 --- /dev/null +++ b/dist/helpers/compass.js @@ -0,0 +1,169 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.TfRescale = exports.MouseMove = exports.MountCompass = exports.ClickCompass = void 0; +var _format = _interopRequireDefault(require("./format")); +var _chem = require("./chem"); +var _list_ui = require("../constants/list_ui"); +const d3 = require('d3'); +const TfRescale = focus => { + const xt = focus.scales.x; + const yt = focus.scales.y; + return { + xt, + yt + }; +}; +exports.TfRescale = TfRescale; +const fetchPt = (event, focus, xt) => { + // const rawMouseX = focus.isFirefox // WORKAROUND d3.mouse firefox compatibility + // ? d3.event.offsetX + // : d3.mouse(focus.root.node())[0]; + const rawMouseX = d3.pointer(event, focus.root.node())[0]; + const mouseX = xt.invert(rawMouseX); + const bisectDate = d3.bisector(d => +d.x).left; + const dt = focus.data; + const ls = dt.length; + const sortData = ls > 0 && dt[0].x > dt[ls - 1].x ? dt.reverse() : dt; + const idx = bisectDate(sortData, +mouseX); + return sortData[idx]; +}; +const fetchFreePt = (event, focus, xt, yt) => { + // const rawMouseX = focus.isFirefox // WORKAROUND d3.mouse firefox compatibility + // ? d3.event.offsetX + // : d3.mouse(focus.root.node())[0]; + // const rawMouseY = focus.isFirefox // WORKAROUND d3.mouse firefox compatibility + // ? d3.event.offsetY + // : d3.mouse(focus.root.node())[1]; + const rawMouseX = d3.pointer(event, focus.root.node())[0]; + const rawMouseY = d3.pointer(event, focus.root.node())[1]; + const mouseX = xt.invert(rawMouseX); + const mouseY = yt.invert(rawMouseY); + const distance2 = (x1, x2, y1, y2) => { + const dx = x1 - x2; + const dy = y1 - y2; + return dx * dx + dy * dy; + }; + let minDistance = Number.MAX_VALUE; + const dt = focus.data; + let selectPoint = null; + dt.forEach(pt => { + const distance = distance2(pt.x, mouseX, pt.y, mouseY); + if (minDistance > distance) { + minDistance = distance; + selectPoint = pt; + } + }); + return selectPoint; +}; +const MouseMove = (event, focus) => { + const { + xt, + yt + } = TfRescale(focus); + const { + freq, + layout, + wavelength + } = focus; + if (_format.default.isCyclicVoltaLayout(layout)) { + const pt = fetchFreePt(event, focus, xt, yt); + if (pt) { + const tx = xt(pt.x); + const ty = yt(pt.y); + focus.root.select('.compass').attr('transform', `translate(${tx},${ty})`); + focus.root.select('.x-hover-line').attr('y1', 0 - ty).attr('y2', focus.h - ty); + focus.root.select('.cursor-txt').attr('transform', `translate(${tx},${10})`).text(pt.x.toFixed(3)); + if (freq) { + focus.root.select('.cursor-txt-hz').attr('transform', `translate(${tx},${20})`).text(`${(pt.x * freq).toFixed(3)} Hz`); + } else { + focus.root.select('.cursor-txt-hz').text(''); + } + } + } else { + const pt = fetchPt(event, focus, xt); + if (pt) { + const tx = xt(pt.x); + const ty = yt(pt.y); + focus.root.select('.compass').attr('transform', `translate(${tx},${ty})`); + focus.root.select('.x-hover-line').attr('y1', 0 - ty).attr('y2', focus.h - ty); + if (_format.default.isXRDLayout(layout)) { + let dValue = 0.0; + if (wavelength) { + dValue = (0, _chem.Convert2DValue)(pt.x, wavelength.value).toExponential(2); + } else { + dValue = (0, _chem.Convert2DValue)(pt.x).toExponential(2); + } + focus.root.select('.cursor-txt-hz').attr('transform', `translate(${tx},${ty - 30})`).text(`2Theta: ${pt.x.toExponential(2)}, d-value: ${dValue}`); + } else if (_format.default.isTGALayout(layout) || _format.default.isDSCLayout(layout)) { + focus.root.select('.cursor-txt').attr('transform', `translate(${tx},${10})`).text(`X: ${pt.x.toFixed(3)}, Y: ${pt.y.toFixed(3)}`); + } else { + focus.root.select('.cursor-txt').attr('transform', `translate(${tx},${10})`).text(pt.x.toFixed(3)); + if (freq) { + focus.root.select('.cursor-txt-hz').attr('transform', `translate(${tx},${20})`).text(`${(pt.x * freq).toFixed(3)} Hz`); + } else { + focus.root.select('.cursor-txt-hz').text(''); + } + } + } + } +}; +exports.MouseMove = MouseMove; +const ClickCompass = (event, focus) => { + event.stopPropagation(); + event.preventDefault(); + const { + layout, + cyclicvoltaSt, + jcampIdx + } = focus; + const isPeakGroupSelect = focus.uiSt?.sweepType === _list_ui.LIST_UI_SWEEP_TYPE.PEAK_GROUP_SELECT; + const isMsGraph = focus.graphIndex === 2; + const isUvvisGraph = focus.graphIndex === 0; + const isLcmsTicGraph = _format.default.isLCMsLayout(layout) && focus.graphIndex === 1; + if (isPeakGroupSelect && isMsGraph) return; + if (isPeakGroupSelect && _format.default.isLCMsLayout(layout) && isUvvisGraph) return; + const { + xt, + yt + } = TfRescale(focus); + let pt = fetchPt(event, focus, xt); + if (_format.default.isCyclicVoltaLayout(layout)) { + pt = fetchFreePt(event, focus, xt, yt); + const onPeak = false; + if (cyclicvoltaSt) { + const { + spectraList + } = cyclicvoltaSt; + const spectra = spectraList[jcampIdx]; + const voltammetryPeakIdx = spectra.selectedIdx; + focus.clickUiTargetAct(pt, onPeak, voltammetryPeakIdx, jcampIdx); + } else { + focus.clickUiTargetAct(pt, onPeak); + } + } else if (isLcmsTicGraph) { + focus.clickUiTargetAct(pt, false, false, jcampIdx, false, 'lcms_tic'); + } else { + focus.clickUiTargetAct(pt, false); + } +}; +exports.ClickCompass = ClickCompass; +const MountCompass = focus => { + const { + root, + w, + h + } = focus; + const compass = root.append('g').attr('class', 'compass'); + const cursor = root.append('g').attr('class', 'cursor'); + const overlay = root.append('rect').attr('class', 'overlay-focus').attr('width', w).attr('height', h).attr('opacity', 0.0); + compass.append('line').attr('class', 'x-hover-line hover-line').attr('stroke', '#777').attr('stroke-width', 1).attr('stroke-dasharray', 2, 2); + compass.append('circle').attr('r', 4).attr('fill', 'none').attr('stroke', '#777').attr('stroke-width', 2); + cursor.append('text').attr('class', 'cursor-txt').attr('font-family', 'Helvetica').style('font-size', '12px').style('text-anchor', 'middle'); + cursor.append('text').attr('class', 'cursor-txt-hz').attr('font-family', 'Helvetica').style('font-size', '12px').style('text-anchor', 'middle').style('fill', '#D68910'); + overlay.on('mousemove', event => MouseMove(event, focus)).on('click', event => ClickCompass(event, focus)); +}; +exports.MountCompass = MountCompass; \ No newline at end of file diff --git a/dist/helpers/converter.js b/dist/helpers/converter.js new file mode 100644 index 00000000..da24848d --- /dev/null +++ b/dist/helpers/converter.js @@ -0,0 +1,99 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.ToXY = exports.PksEdit = exports.PeckersEdit = exports.IsSame = void 0; +const ToXY = data => { + const length = data ? data.length : 0; + if (length === 0) return []; + let peaks = []; + let i = 0; + for (i = 0; i < length; i += 1) { + const { + x, + y + } = data[i]; + peaks = [...peaks, [x, y]]; + } + return peaks; +}; +exports.ToXY = ToXY; +const IsSame = (one, two) => Math.abs((one - two) * 10000000) < 1.0; +exports.IsSame = IsSame; +const pksRmNeg = (dataPks, editPeakSt) => { + const { + selectedIdx, + peaks + } = editPeakSt; + const selectedEditPeaks = peaks[selectedIdx]; + if (!selectedEditPeaks) { + return dataPks; + } + const { + neg + } = selectedEditPeaks; + if (!neg) { + return dataPks; + } + const negXs = neg.map(n => n.x); + const result = dataPks.map(p => { + const idx = negXs.findIndex(nx => IsSame(nx, p.x)); + return idx >= 0 ? null : p; + }).filter(r => r != null); + return result; +}; +const pksAddPos = (dataPks, editPeakSt) => { + const { + selectedIdx, + peaks + } = editPeakSt; + const selectedEditPeaks = peaks[selectedIdx]; + if (!selectedEditPeaks) { + return dataPks; + } + const { + pos + } = selectedEditPeaks; + if (!pos) { + return dataPks; + } + const posXs = pos.map(p => p.x); + const posPks = dataPks.map(p => { + const idx = posXs.findIndex(px => px === p.x); + return idx >= 0 ? null : p; + }).filter(r => r != null); + const result = [...posPks, ...pos]; + return result; +}; +const PksEdit = (dataPks, editPeakSt, voltammetryPeak = false) => { + if (voltammetryPeak && voltammetryPeak.length > 0) { + let modDataPks = []; + voltammetryPeak.forEach(peak => { + if (peak.max) { + modDataPks = [...modDataPks, peak.max]; + } + if (peak.min) { + modDataPks = [...modDataPks, peak.min]; + } + }); + modDataPks = modDataPks.sort((a, b) => a.x - b.x); + return modDataPks; + } + let modDataPks = pksAddPos(dataPks, editPeakSt); + modDataPks = pksRmNeg(modDataPks, editPeakSt); + modDataPks = modDataPks.sort((a, b) => a.x - b.x); + return modDataPks; +}; +exports.PksEdit = PksEdit; +const PeckersEdit = voltammetryPeak => { + let modDataPeckers = []; + voltammetryPeak.forEach(peak => { + if (peak.pecker) { + modDataPeckers = [...modDataPeckers, peak.pecker]; + } + }); + modDataPeckers = modDataPeckers.sort((a, b) => a.x - b.x); + return modDataPeckers; +}; +exports.PeckersEdit = PeckersEdit; \ No newline at end of file diff --git a/dist/helpers/extractEntityLCMS.js b/dist/helpers/extractEntityLCMS.js new file mode 100644 index 00000000..d387fa73 --- /dev/null +++ b/dist/helpers/extractEntityLCMS.js @@ -0,0 +1,30 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "classify", { + enumerable: true, + get: function get() { + return _extractEntityLCMS.classify; + } +}); +Object.defineProperty(exports, "getLcMsInfo", { + enumerable: true, + get: function get() { + return _extractEntityLCMS.getLcMsInfo; + } +}); +Object.defineProperty(exports, "isLcMsGroup", { + enumerable: true, + get: function get() { + return _extractEntityLCMS.isLcMsGroup; + } +}); +Object.defineProperty(exports, "splitAndReindexEntities", { + enumerable: true, + get: function get() { + return _extractEntityLCMS.splitAndReindexEntities; + } +}); +var _extractEntityLCMS = require("../features/lc-ms/entities/extractEntityLCMS"); \ No newline at end of file diff --git a/dist/helpers/extractParams.js b/dist/helpers/extractParams.js new file mode 100644 index 00000000..c7cbe90f --- /dev/null +++ b/dist/helpers/extractParams.js @@ -0,0 +1,170 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.extractParams = void 0; +var _format = _interopRequireDefault(require("./format")); +var _extractEntityLCMS = require("./extractEntityLCMS"); +const getScanIdx = (entity, scanState) => { + const { + target, + isAuto + } = scanState || {}; + const { + features = {}, + spectra = [] + } = entity || {}; + const defaultFeature = features.editPeak || features.autoPeak || features[0] || {}; + const hasEdit = !!defaultFeature?.scanEditTarget; + const defaultIdx = isAuto || !hasEdit ? defaultFeature?.scanAutoTarget : defaultFeature?.scanEditTarget; + const defaultCount = +spectra.length; + let idx = +(target || defaultIdx || 0); + if (idx > defaultCount) idx = defaultCount; + return Math.max(idx - 1, 0); +}; +const extractSharedParams = (entity, thresholdState, scanIdx = 0) => { + const { + spectra = [], + features = {} + } = entity || {}; + const autoPeak = features.autoPeak || features[scanIdx] || features[0] || {}; + const editPeak = features.editPeak || features[scanIdx] || features[0] || {}; + const hasEdit = !!editPeak?.data?.[0]?.x?.length; + const feature = hasEdit && thresholdState?.isEdit ? editPeak : autoPeak; + const { + integration, + multiplicity + } = features; + return { + spectra, + feature, + hasEdit, + integration, + multiplicity + }; +}; +const extractLcmsParams = entity => { + const { + features, + layout + } = entity; + let topicX = []; + let topicY = []; + const entityInfo = (0, _extractEntityLCMS.getLcMsInfo)(entity); + let featuresArray = []; + if (Array.isArray(features)) { + featuresArray = features; + } else if (features && typeof features === 'object') { + featuresArray = Object.values(features); + } + if (entityInfo.kind === 'tic') { + const ticFeature = featuresArray.find(spectrum => spectrum?.data?.[0]?.x?.length > 0); + if (ticFeature?.data?.[0]) { + const { + x, + y + } = ticFeature.data[0]; + topicX = x; + topicY = y; + } + } else { + featuresArray.forEach(spectrum => { + if (!spectrum?.data?.[0]) return; + const { + y + } = spectrum.data[0]; + const { + pageValue + } = spectrum; + topicX.push(pageValue); + topicY.push(Math.max(...y)); + }); + } + return { + topic: { + x: topicX, + y: topicY + }, + feature: { + maxY: topicY.length ? Math.max(...topicY) : 0, + operation: { + layout + }, + data: [{ + x: topicX, + y: topicY + }], + isPeaktable: false + } + }; +}; +const extractMsParams = (entity, thresholdState, scanState, forceLcms = false) => { + const { + layout + } = entity; + if (_format.default.isMsLayout(layout) && !forceLcms) { + const scanIdx = getScanIdx(entity, scanState); + const { + spectra, + feature, + hasEdit + } = extractSharedParams(entity, thresholdState, scanIdx); + const topic = spectra?.[scanIdx]?.data?.[0] || { + x: [], + y: [] + }; + return { + topic, + feature, + hasEdit + }; + } + const { + spectra, + features + } = entity; + const { + topic, + feature + } = extractLcmsParams(entity); + return { + entity, + spectra, + features, + topic, + feature + }; +}; +const extractNonMsParams = (entity, thresholdState) => { + const scanIdx = 0; + const { + spectra, + feature, + hasEdit, + integration, + multiplicity + } = extractSharedParams(entity, thresholdState, scanIdx); + const topic = spectra?.[0]?.data?.[0] || { + x: [], + y: [] + }; + return { + topic, + feature, + hasEdit, + integration, + multiplicity + }; +}; +const extractParams = (entity, thresholdState, scanState, options = {}) => { + const { + forceLcms = false + } = options; + const shouldUseLcmsPath = forceLcms || _format.default.isLCMsLayout(entity.layout); + return _format.default.isMsLayout(entity.layout) || shouldUseLcmsPath ? extractMsParams(entity, thresholdState, scanState, shouldUseLcmsPath) : extractNonMsParams(entity, thresholdState); +}; + +// eslint-disable-line +exports.extractParams = extractParams; \ No newline at end of file diff --git a/dist/helpers/extractPeaksEdit.js b/dist/helpers/extractPeaksEdit.js new file mode 100644 index 00000000..e07e1f22 --- /dev/null +++ b/dist/helpers/extractPeaksEdit.js @@ -0,0 +1,93 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.extractAutoPeaks = exports.extractAreaUnderCurve = void 0; +exports.extractPeaksEdit = extractPeaksEdit; +Object.defineProperty(exports, "formatLcmsIntegralsForBackend", { + enumerable: true, + get: function get() { + return _submit.formatLcmsIntegralsForBackend; + } +}); +Object.defineProperty(exports, "formatLcmsPeaksForBackend", { + enumerable: true, + get: function get() { + return _submit.formatLcmsPeaksForBackend; + } +}); +Object.defineProperty(exports, "getLcmsMzPageData", { + enumerable: true, + get: function get() { + return _submit.getLcmsMzPageData; + } +}); +var _chem = require("./chem"); +var _shift = require("./shift"); +var _format = _interopRequireDefault(require("./format")); +var _integration = require("./integration"); +var _submit = require("../features/lc-ms/submit"); +/* eslint-disable max-len */ + +const niOffset = (shiftSt, atIndex = 0) => { + const { + shifts + } = shiftSt; + const selectedShift = shifts[atIndex]; + if (!selectedShift) { + return 0; + } + const { + ref, + peak + } = selectedShift; + const offset = (0, _shift.FromManualToOffset)(ref, peak); + return offset; +}; +const msOffset = () => 0; +function extractPeaksEdit(hplcMsSt) { + if (!hplcMsSt || !hplcMsSt.uvvis || !hplcMsSt.uvvis.spectraList) return []; + return hplcMsSt.uvvis.spectraList.flatMap(spectrum => spectrum.peaks || []); +} +const extractAutoPeaks = (feature, thresSt, shiftSt, layoutSt, atIndex = 0) => { + const offset = _format.default.isMsLayout(layoutSt) || _format.default.isLCMsLayout(layoutSt) ? msOffset() : niOffset(shiftSt, atIndex); + const peaks = (0, _chem.Convert2Peak)(feature, thresSt.value, offset); + return peaks; +}; +exports.extractAutoPeaks = extractAutoPeaks; +const getAUCValue = (integrationSt, layoutSt) => { + const { + refArea, + refFactor, + stack + } = integrationSt; + if (Array.isArray(stack) && stack.length > 0) { + const data = stack.at(-1); + const ignoreRef = _format.default.isHplcUvVisLayout(layoutSt); + return (0, _integration.calcArea)(data, refArea, refFactor, ignoreRef); + } + return 0; +}; +const extractAreaUnderCurve = (allIntegrationSt, presentIntegrationSt, layoutSt) => { + if (_format.default.isHplcUvVisLayout(layoutSt) && Array.isArray(allIntegrationSt) && presentIntegrationSt) { + const results = []; + allIntegrationSt.forEach(inte => { + const { + integrations + } = inte; + const subResults = []; + integrations.forEach(subInte => { + const aucVal = getAUCValue(subInte, layoutSt); + subResults.push(aucVal); + }); + results.push(subResults); + }); + return results; + } + return null; +}; + +// eslint-disable-line +exports.extractAreaUnderCurve = extractAreaUnderCurve; \ No newline at end of file diff --git a/dist/helpers/focus.js b/dist/helpers/focus.js new file mode 100644 index 00000000..c48f6dc7 --- /dev/null +++ b/dist/helpers/focus.js @@ -0,0 +1,10 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.mpyIdTag = exports.itgIdTag = void 0; +const itgIdTag = d => `${Math.round(1000 * d.xL)}-${Math.round(1000 * d.xU)}`; +exports.itgIdTag = itgIdTag; +const mpyIdTag = d => `${Math.round(1000 * d.xExtent.xL)}-${Math.round(1000 * d.xExtent.xU)}`; +exports.mpyIdTag = mpyIdTag; \ No newline at end of file diff --git a/dist/helpers/format.js b/dist/helpers/format.js new file mode 100644 index 00000000..08a23065 --- /dev/null +++ b/dist/helpers/format.js @@ -0,0 +1,830 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var _converter = require("./converter"); +var _list_layout = require("../constants/list_layout"); +var _multiplicity_calc = require("./multiplicity_calc"); +/* eslint-disable prefer-destructuring */ +/* eslint-disable no-mixed-operators, prefer-object-spread, +function-paren-newline, no-unused-vars, default-param-last */ + +const spectraDigit = layout => { + switch (layout) { + case _list_layout.LIST_LAYOUT.IR: + case _list_layout.LIST_LAYOUT.RAMAN: + case _list_layout.LIST_LAYOUT.UVVIS: + case _list_layout.LIST_LAYOUT.HPLC_UVVIS: + case _list_layout.LIST_LAYOUT.TGA: + case _list_layout.LIST_LAYOUT.DSC: + case _list_layout.LIST_LAYOUT.XRD: + case _list_layout.LIST_LAYOUT.CDS: + case _list_layout.LIST_LAYOUT.SEC: + case _list_layout.LIST_LAYOUT.GC: + case _list_layout.LIST_LAYOUT.LC_MS: + case _list_layout.LIST_LAYOUT.MS: + return 0; + case _list_layout.LIST_LAYOUT.C13: + return 1; + case _list_layout.LIST_LAYOUT.H1: + case _list_layout.LIST_LAYOUT.F19: + case _list_layout.LIST_LAYOUT.P31: + case _list_layout.LIST_LAYOUT.N15: + case _list_layout.LIST_LAYOUT.Si29: + case _list_layout.LIST_LAYOUT.PLAIN: + case _list_layout.LIST_LAYOUT.CYCLIC_VOLTAMMETRY: + default: + return 2; + } +}; +const fixDigit = (input, precision) => { + const output = input || 0.0; + return output.toFixed(precision); +}; +const buildData = entity => { + if (!entity) return { + isExist: false + }; + const sp = entity && entity.spectrum; + const xLabel = sp ? `X (${sp.xUnit})` : ''; + const yLabel = sp ? `Y (${sp.yUnit})` : ''; + return { + entity, + xLabel, + yLabel, + isExist: true + }; +}; +const toPeakStr = peaks => { + const arr = peaks.map(p => `${p.x},${p.y}`); + const str = arr.join('#'); + return str; +}; +const extractUvvisLcmsPeaks = hplcMsSt => { + if (!hplcMsSt?.uvvis) { + return '{}'; + } + const { + listWaveLength = [], + spectraList = [] + } = hplcMsSt.uvvis; + const byWavelength = {}; + spectraList.forEach((spectrum, idx) => { + const wl = listWaveLength[idx]; + const wlKey = String(Math.round(wl)); + (spectrum.peaks || []).forEach((p, n) => { + if (!byWavelength[wlKey]) byWavelength[wlKey] = []; + byWavelength[wlKey].push({ + x: p.x, + y: p.y + }); + }); + }); + return JSON.stringify(byWavelength); +}; +const spectraOps = { + [_list_layout.LIST_LAYOUT.PLAIN]: { + head: '', + tail: '.' + }, + [_list_layout.LIST_LAYOUT.H1]: { + head: '1H', + tail: '.' + }, + [_list_layout.LIST_LAYOUT.C13]: { + head: '13C', + tail: '.' + }, + [_list_layout.LIST_LAYOUT.F19]: { + head: '19F', + tail: '.' + }, + [_list_layout.LIST_LAYOUT.P31]: { + head: '31P', + tail: '.' + }, + [_list_layout.LIST_LAYOUT.N15]: { + head: '15N', + tail: '.' + }, + [_list_layout.LIST_LAYOUT.Si29]: { + head: '29Si', + tail: '.' + }, + [_list_layout.LIST_LAYOUT.IR]: { + head: 'IR', + tail: ' cm-1' + }, + [_list_layout.LIST_LAYOUT.RAMAN]: { + head: 'RAMAN', + tail: ' cm-1' + }, + [_list_layout.LIST_LAYOUT.UVVIS]: { + head: 'UV-VIS (absorption, solvent), λmax', + tail: ' nm' + }, + [_list_layout.LIST_LAYOUT.HPLC_UVVIS]: { + head: 'HPLC UV/VIS (transmittance)', + tail: '' + }, + [_list_layout.LIST_LAYOUT.TGA]: { + head: 'THERMOGRAVIMETRIC ANALYSIS', + tail: ' SECONDS' + }, + [_list_layout.LIST_LAYOUT.DSC]: { + head: 'DIFFERENTIAL SCANNING CALORIMETRY', + tail: ' SECONDS' + }, + [_list_layout.LIST_LAYOUT.MS]: { + head: 'MASS', + tail: ' m/z' + }, + [_list_layout.LIST_LAYOUT.XRD]: { + head: 'XRD', + tail: '.' + }, + [_list_layout.LIST_LAYOUT.CYCLIC_VOLTAMMETRY]: { + head: 'CV', + tail: '.' + }, + [_list_layout.LIST_LAYOUT.CDS]: { + head: 'CIRCULAR DICHROISM SPECTROSCOPY', + tail: '.' + }, + [_list_layout.LIST_LAYOUT.SEC]: { + head: 'SIZE EXCLUSION CHROMATOGRAPHY', + tail: '.' + }, + [_list_layout.LIST_LAYOUT.GC]: { + head: 'GAS CHROMATOGRAPHY', + tail: '.' + }, + [_list_layout.LIST_LAYOUT.EMISSIONS]: { + head: 'EMISSION', + tail: '.' + }, + [_list_layout.LIST_LAYOUT.DLS_INTENSITY]: { + head: 'DLS', + tail: '.' + }, + [_list_layout.LIST_LAYOUT.LC_MS]: { + head: 'HPLC UV/VIS', + tail: '' + } +}; +const rmRef = (peaks, shift, atIndex = 0) => { + if (!shift) return peaks; + const { + shifts + } = shift; + const selectedShift = shifts[atIndex]; + const refValue = selectedShift.ref.value || selectedShift.peak.x; + return peaks.map(p => (0, _converter.IsSame)(p.x, refValue) ? null : p).filter(r => r != null); +}; +const isValidLcmsWavelengthLabel = wl => Number.isFinite(wl) && wl > 0; +const LCMS_INTEGRATION_EXPORT_MODES = ['percent', 'area', 'both']; +const isLcmsIntegrationExportMode = v => LCMS_INTEGRATION_EXPORT_MODES.includes(v); +const formatedLCMS = (hplcMsSt, isAscend, decimal, options = {}) => { + if (!hplcMsSt?.uvvis) { + return ''; + } + const { + lcmsIntegrationsExport: modeOpt, + includeIntegrationArea = false + } = options; + let lcmsIntegrationsExport = modeOpt; + if (!isLcmsIntegrationExportMode(lcmsIntegrationsExport)) { + lcmsIntegrationsExport = hplcMsSt?.lcmsIntegrationsExport; + } + if (!isLcmsIntegrationExportMode(lcmsIntegrationsExport)) { + lcmsIntegrationsExport = includeIntegrationArea ? 'both' : 'percent'; + } + let result = '\n'; + const sections = []; + const parsedDecimal = Number.isFinite(decimal) ? decimal : Number.parseInt(decimal, 10); + const resolvedDecimal = Number.isFinite(parsedDecimal) ? parsedDecimal : 3; + const { + listWaveLength = [], + spectraList = [] + } = hplcMsSt.uvvis || {}; + const ms = hplcMsSt.ms || {}; + const tic = hplcMsSt.tic; + const threshold = hplcMsSt.threshold; + listWaveLength.forEach((wavelength, idx) => { + const spectrum = spectraList[idx]; + if (!spectrum) { + return; + } + const peaks = spectrum.peaks || []; + const integrations = spectrum.integrations || []; + const stack = integrations?.[0]?.stack; + const hasStack = Array.isArray(stack) && stack.length > 0; + const hasList = !hasStack && Array.isArray(integrations) && integrations.length > 0; + const hasIntegrations = hasStack || hasList; + const hasPeaks = peaks.length > 0; + if (!hasPeaks && !hasIntegrations) { + return; + } + const lines = []; + if (isValidLcmsWavelengthLabel(wavelength)) { + lines.push(`Wavelength ${wavelength} nm:`); + } + if (hasPeaks) { + const sortedPeaks = [...peaks].sort((a, b) => b.y - a.y); + const maxIntensity = sortedPeaks[0].y || 1; + const peakLines = sortedPeaks.map(peak => { + const rt = peak.x.toFixed(resolvedDecimal); + const percent = (peak.y / maxIntensity * 100).toFixed(1); + return `${rt} min (${percent}%)`; + }); + lines.push(`Peaks: ${peakLines.join(', ')}`); + } + if (hasIntegrations) { + const entries = hasStack ? stack : integrations; + const refAreaCandidate = hasStack ? integrations?.[0]?.refArea : integrations?.[0]?.refArea ?? integrations?.[0]?.area; + const refArea = refAreaCandidate && refAreaCandidate > 0 ? refAreaCandidate : 1; + const sortedIntegrations = [...entries].sort((a, b) => a.xL - b.xL); + const integrationLines = sortedIntegrations.map(integ => { + const rt = integ.xL.toFixed(resolvedDecimal); + const area = integ.area || integ.absoluteArea || 0; + const percent = (area / refArea * 100).toFixed(1); + const areaStr = Number.isFinite(area) ? area.toExponential(3) : String(area); + if (lcmsIntegrationsExport === 'area') { + return `${rt} min (A=${areaStr})`; + } + if (lcmsIntegrationsExport === 'both') { + return `${rt} min (${percent}%, A=${areaStr})`; + } + return `${rt} min (${percent}%)`; + }); + lines.push(`Integrations: ${integrationLines.join(', ')}`); + } + sections.push(lines.join('\n')); + }); + if (sections.length > 0) { + result = `\n${sections.join('\n\n')}`; + } + const polarity = tic?.polarity || (tic?.isNegative ? 'negative' : 'positive'); + let polarityKey = 'neutral'; + if (polarity === 'negative') { + polarityKey = 'negative'; + } else if (polarity === 'positive') { + polarityKey = 'positive'; + } + let polarityLabel = ''; + if (polarity === 'negative') { + polarityLabel = '−'; + } else if (polarity === 'positive') { + polarityLabel = '+'; + } + if (tic && ms[polarityKey]) { + const pageValues = Array.isArray(ms[polarityKey].pageValues) ? ms[polarityKey].pageValues : []; + const peaksByPage = Array.isArray(ms[polarityKey].peaks) ? ms[polarityKey].peaks : []; + let currentIndex = -1; + if (Number.isFinite(tic.currentPageValue) && pageValues.length > 0) { + currentIndex = pageValues.findIndex(value => Number.isFinite(value) && Math.abs(value - tic.currentPageValue) < 1e-6); + } + if (Array.isArray(tic[polarityKey]?.data?.x)) { + const fallbackIndex = tic[polarityKey].data.x.findIndex(x => Math.abs(x - tic.currentPageValue) < 1e-6); + if (currentIndex < 0) currentIndex = fallbackIndex; + } + if (currentIndex >= 0 && peaksByPage[currentIndex]) { + const peaks = peaksByPage[currentIndex]; + const maxIntensity = Math.max(...peaks.map(p => p.y)) || 1; + const thresholdValue = threshold?.value != null ? threshold.value : 5; + const filtered = peaks.filter(peak => peak.y / maxIntensity * 100 >= thresholdValue); + const sortedPeaks = [...filtered].sort((a, b) => { + if (isAscend) { + return parseFloat(a.x) - parseFloat(b.x); + } + return parseFloat(b.x) - parseFloat(a.x); + }); + const label = polarityLabel ? `${polarityLabel}ESI` : 'ESI'; + if (result) { + result += '\n\n'; + } + const rtPage = tic?.currentPageValue; + const rtDecimal = Math.max(resolvedDecimal, 3); + const rtPart = Number.isFinite(rtPage) ? `RT ${fixDigit(rtPage, rtDecimal)} min, ` : ''; + result += `MS (${label}), ${rtPart}m/z (≥${thresholdValue}%):\n`; + const lines = sortedPeaks.map(peak => { + const mass = fixDigit(peak.x, resolvedDecimal); + const percent = Math.round(peak.y / maxIntensity * 100); + return `${mass} (${percent}%)`; + }); + result += ` ${lines.join(', ')}`; + } else { + if (result) { + result += '\n\n'; + } + result += 'MS: No data for current retention time.\n'; + } + } + return result; +}; +const formatedMS = (peaks, maxY, decimal = 2, isAscend = true) => { + const ascendFunc = (a, b) => parseFloat(a) - parseFloat(b); + const descendFunc = (a, b) => parseFloat(b) - parseFloat(a); + const sortFunc = isAscend ? ascendFunc : descendFunc; + let ordered = {}; + peaks.forEach(p => { + const x = fixDigit(p.x, decimal); + const better = !ordered[x] || p.y > ordered[x]; + if (better) { + ordered = Object.assign({}, ordered, { + [x]: p.y + }); + } + }); + ordered = Object.keys(ordered).sort(sortFunc).map(k => ({ + x: k, + y: ordered[k] + })); + return ordered.map(o => `${o.x} (${parseInt(100 * o.y / maxY, 10)})`).join(', '); +}; +const emLevel = (boundary, val, lowerIsStronger) => { + const { + maxY, + minY + } = boundary; + const ratio = lowerIsStronger ? 100 * (val - minY) / (maxY - minY) : 100 * (maxY - val) / (maxY - minY); + if (ratio > 85) return 'vw'; + if (ratio > 60) return 'w'; + if (ratio > 45) return 'm'; + if (ratio > 30) return 's'; + return 'vs'; +}; +const formatedEm = (peaks, maxY, decimal = 2, isAscend = true, isIntensity = false, boundary = {}, lowerIsStronger = false) => { + const ascendFunc = (a, b) => parseFloat(a) - parseFloat(b); + const descendFunc = (a, b) => parseFloat(b) - parseFloat(a); + const sortFunc = isAscend ? ascendFunc : descendFunc; + let ordered = {}; + peaks.forEach(p => { + const x = fixDigit(p.x, decimal); + const better = !ordered[x] || p.y > ordered[x]; + if (better) { + ordered = Object.assign({}, ordered, { + [x]: p.y + }); + } + }); + ordered = Object.keys(ordered).sort(sortFunc).map(k => ({ + x: k, + y: ordered[k] + })); + if (isIntensity) { + return ordered.map(o => `${o.x} (${emLevel(boundary, o.y, lowerIsStronger)})`).join(', '); + } + return ordered.map(o => `${o.x}`).join(', '); +}; +const formatedUvVis = (peaks, maxY, decimal = 2, isAscend = true, isIntensity = false, boundary = {}, lowerIsStronger = false) => { + const ascendFunc = (a, b) => parseFloat(a) - parseFloat(b); + const descendFunc = (a, b) => parseFloat(b) - parseFloat(a); + const sortFunc = isAscend ? ascendFunc : descendFunc; + let ordered = {}; + peaks.forEach(p => { + const x = fixDigit(p.x, decimal); + const better = !ordered[x] || p.y > ordered[x]; + if (better) { + ordered = Object.assign({}, ordered, { + [x]: p.y + }); + } + }); + ordered = Object.keys(ordered).sort(sortFunc).map(k => ({ + x: k, + y: ordered[k] + })); + + // return ordered.map(o => `${o.x} (${o.y.toFixed(2)})`) + // .join(', '); + return ordered.map(o => `${o.x}`).join(', '); +}; +const formatedEmissions = (peaks, maxY, decimal = 2, isAscend = true, isIntensity = false, boundary = {}, lowerIsStronger = false) => { + const ascendFunc = (a, b) => parseFloat(a) - parseFloat(b); + const descendFunc = (a, b) => parseFloat(b) - parseFloat(a); + const sortFunc = isAscend ? ascendFunc : descendFunc; + let ordered = {}; + peaks.forEach(p => { + const x = fixDigit(p.x, decimal); + const better = !ordered[x] || p.y > ordered[x]; + if (better) { + ordered = Object.assign({}, ordered, { + [x]: p.y + }); + } + }); + ordered = Object.keys(ordered).sort(sortFunc).map(k => ({ + x: k, + y: ordered[k] + })); + return ordered.map(o => `${o.x} nm (${fixDigit(o.y, 2)} a.u.)`).join(', '); +}; +const formatedDLSIntensity = (peaks, maxY, decimal = 2, isAscend = true, isIntensity = false, boundary = {}, lowerIsStronger = false) => { + const ascendFunc = (a, b) => parseFloat(a) - parseFloat(b); + const descendFunc = (a, b) => parseFloat(b) - parseFloat(a); + const sortFunc = isAscend ? ascendFunc : descendFunc; + let ordered = {}; + peaks.forEach(p => { + const x = fixDigit(p.x, decimal); + const better = !ordered[x] || p.y > ordered[x]; + if (better) { + ordered = Object.assign({}, ordered, { + [x]: fixDigit(p.y, 2) + }); + } + }); + ordered = Object.keys(ordered).sort(sortFunc).map(k => ({ + x: k, + y: ordered[k] + })); + return ordered.map(o => `${o.x} nm (${o.y} %)`).join(', '); +}; +const formatedHplcUvVis = (peaks, decimal = 2, integration) => { + let stack = []; + if (integration) { + stack = integration.stack; + } + let ordered = {}; + peaks.forEach(p => { + const x = fixDigit(p.x, decimal); + const better = !ordered[x] || p.y > ordered[x]; + if (better) { + ordered = Object.assign({}, ordered, { + [x]: p.y + }); + } + }); + ordered = Object.keys(ordered).map(k => ({ + x: k, + y: ordered[k] + })); + const arrResult = []; + ordered.forEach(o => { + let pStr = `${o.x} (${o.y.toFixed(2)})`; + if (stack) { + stack.forEach(s => { + if (s.xL <= o.x && s.xU >= o.x) { + pStr = `${o.x} (${o.y.toFixed(2)}, AUC=${s.absoluteArea})`; + } + }); + } + arrResult.push(pStr); + }); + return arrResult.join(', '); +}; +const formatedXRD = (peaks, isAscend = true, waveLength, temperature) => { + const ascendFunc = (a, b) => parseFloat(a) - parseFloat(b); + const descendFunc = (a, b) => parseFloat(b) - parseFloat(a); + const sortFunc = isAscend ? ascendFunc : descendFunc; + let ordered = {}; + peaks.forEach(p => { + const x = fixDigit(p.x, 1); + const better = !ordered[x] || p.y > ordered[x]; + if (better) { + ordered = Object.assign({}, ordered, { + [x]: p.y + }); + } + }); + const XRDSource = waveLength.label; + const XRDWavelength = `${waveLength.value} ${waveLength.unit}`; + ordered = Object.keys(ordered).sort(sortFunc).map(k => ({ + x: k, + y: ordered[k] + })); + return `(${XRDSource}, ${XRDWavelength}, ${temperature} °C), 2θ [°] (d [nm]): ${ordered.map(o => `${o.x} (${fixDigit(o.y, 2)})`).join(', ')}`; +}; +const rmShiftFromPeaks = (peaks, shift, atIndex = 0) => { + const peaksXY = (0, _converter.ToXY)(peaks); + const { + shifts + } = shift; + const selectedShift = shifts[atIndex]; + if (!selectedShift) { + return peaks; + } + // const digit = spectraDigit(layout); + const rmShiftX = selectedShift.ref.value || selectedShift.peak.x; + const result = peaksXY.map(p => { + const srcX = parseFloat(p[0]); + const x = (0, _converter.IsSame)(srcX, rmShiftX) ? null : srcX; + if (!x) return null; + const y = parseFloat(p[1]); + return { + x, + y + }; + }).filter(r => r != null); + return result; +}; +const peaksBody = ({ + peaks, + layout, + decimal, + shift, + isAscend, + isIntensity = false, + boundary = {}, + integration, + atIndex = 0, + waveLength, + temperature, + hplcMsSt = null +}) => { + const result = rmShiftFromPeaks(peaks, shift, atIndex); + const ascendFunc = (a, b) => parseFloat(a.x) - parseFloat(b.x); + const descendFunc = (a, b) => parseFloat(b.x) - parseFloat(a.x); + const sortFunc = isAscend ? ascendFunc : descendFunc; + const ordered = result.sort(sortFunc); + const maxY = Math.max(...ordered.map(o => o.y)); + if (layout === _list_layout.LIST_LAYOUT.LC_MS) { + return formatedLCMS(hplcMsSt, isAscend, decimal); + } + if (layout === _list_layout.LIST_LAYOUT.MS) { + return formatedMS(ordered, maxY, decimal, isAscend); + } + if (layout === _list_layout.LIST_LAYOUT.IR) { + return formatedEm(ordered, maxY, decimal, isAscend, isIntensity, boundary, true); + } + if (layout === _list_layout.LIST_LAYOUT.UVVIS) { + return formatedUvVis(ordered, maxY, decimal, isAscend, isIntensity, boundary, false); + } + if (layout === _list_layout.LIST_LAYOUT.HPLC_UVVIS) { + return formatedHplcUvVis(ordered, decimal, integration); + } + if (layout === _list_layout.LIST_LAYOUT.EMISSIONS) { + return formatedEmissions(ordered, maxY, decimal, isAscend, isIntensity, boundary, false); + } + if (layout === _list_layout.LIST_LAYOUT.DLS_INTENSITY) { + return formatedDLSIntensity(ordered, maxY, decimal, isAscend, isIntensity, boundary, false); + } + if (layout === _list_layout.LIST_LAYOUT.RAMAN || layout === _list_layout.LIST_LAYOUT.TGA || layout === _list_layout.LIST_LAYOUT.DSC || layout === _list_layout.LIST_LAYOUT.CYCLIC_VOLTAMMETRY || layout === _list_layout.LIST_LAYOUT.CDS || layout === _list_layout.LIST_LAYOUT.SEC || layout === _list_layout.LIST_LAYOUT.GC) { + return formatedEm(ordered, maxY, decimal, isAscend, isIntensity, boundary, false); + } + if (layout === _list_layout.LIST_LAYOUT.XRD) { + return formatedXRD(ordered, isAscend, waveLength, temperature); + } + return ordered.map(o => fixDigit(o.x, decimal)).join(', '); +}; +const peaksWrapper = (layout, shift, atIndex = 0) => { + let solvTxt = ''; + const { + shifts + } = shift; + const selectedShift = shifts[atIndex]; + if (selectedShift.ref.label) { + solvTxt = ` (${selectedShift.ref.label})`; + } + if (layout === _list_layout.LIST_LAYOUT.PLAIN || layout === _list_layout.LIST_LAYOUT.DLS_ACF) { + return { + head: '', + tail: '' + }; + } + const ops = spectraOps[layout]; + if (!ops) { + return { + head: '', + tail: '' + }; + } + return { + head: `${ops.head}${solvTxt} = `, + tail: ops.tail + }; +}; +const isNmrLayout = layoutSt => [_list_layout.LIST_LAYOUT.H1, _list_layout.LIST_LAYOUT.C13, _list_layout.LIST_LAYOUT.F19, _list_layout.LIST_LAYOUT.P31, _list_layout.LIST_LAYOUT.N15, _list_layout.LIST_LAYOUT.Si29].indexOf(layoutSt) >= 0; +const is29SiLayout = layoutSt => _list_layout.LIST_LAYOUT.Si29 === layoutSt; +const is15NLayout = layoutSt => _list_layout.LIST_LAYOUT.N15 === layoutSt; +const is31PLayout = layoutSt => _list_layout.LIST_LAYOUT.P31 === layoutSt; +const is19FLayout = layoutSt => _list_layout.LIST_LAYOUT.F19 === layoutSt; +const is13CLayout = layoutSt => _list_layout.LIST_LAYOUT.C13 === layoutSt; +const is1HLayout = layoutSt => _list_layout.LIST_LAYOUT.H1 === layoutSt; +const isMsLayout = layoutSt => _list_layout.LIST_LAYOUT.MS === layoutSt; +const isIrLayout = layoutSt => [_list_layout.LIST_LAYOUT.IR, 'INFRARED'].indexOf(layoutSt) >= 0; +const isRamanLayout = layoutSt => _list_layout.LIST_LAYOUT.RAMAN === layoutSt; +const isUvVisLayout = layoutSt => _list_layout.LIST_LAYOUT.UVVIS === layoutSt; +const isHplcUvVisLayout = layoutSt => _list_layout.LIST_LAYOUT.HPLC_UVVIS === layoutSt; +const isTGALayout = layoutSt => _list_layout.LIST_LAYOUT.TGA === layoutSt; +const isDSCLayout = layoutSt => _list_layout.LIST_LAYOUT.DSC === layoutSt; +const isXRDLayout = layoutSt => _list_layout.LIST_LAYOUT.XRD === layoutSt; +const isCyclicVoltaLayout = layoutSt => _list_layout.LIST_LAYOUT.CYCLIC_VOLTAMMETRY === layoutSt; +const isCDSLayout = layoutSt => _list_layout.LIST_LAYOUT.CDS === layoutSt; +const isSECLayout = layoutSt => _list_layout.LIST_LAYOUT.SEC === layoutSt; +const isGCLayout = layoutSt => _list_layout.LIST_LAYOUT.GC === layoutSt; +const isLCMsLayout = layoutSt => _list_layout.LIST_LAYOUT.LC_MS === layoutSt; +const isEmWaveLayout = layoutSt => [_list_layout.LIST_LAYOUT.IR, _list_layout.LIST_LAYOUT.RAMAN, _list_layout.LIST_LAYOUT.UVVIS, _list_layout.LIST_LAYOUT.HPLC_UVVIS].indexOf(layoutSt) >= 0; +const hasMultiCurves = layoutSt => [_list_layout.LIST_LAYOUT.CYCLIC_VOLTAMMETRY, _list_layout.LIST_LAYOUT.SEC, _list_layout.LIST_LAYOUT.GC, _list_layout.LIST_LAYOUT.AIF].indexOf(layoutSt) >= 0; +const isAIFLayout = layoutSt => _list_layout.LIST_LAYOUT.AIF === layoutSt; +const isEmissionsLayout = layoutSt => _list_layout.LIST_LAYOUT.EMISSIONS === layoutSt; +const isDLSACFLayout = layoutSt => _list_layout.LIST_LAYOUT.DLS_ACF === layoutSt; +const isDLSIntensityLayout = layoutSt => _list_layout.LIST_LAYOUT.DLS_INTENSITY === layoutSt; +const getNmrTyp = layout => { + switch (layout) { + case _list_layout.LIST_LAYOUT.H1: + return 'H'; + case _list_layout.LIST_LAYOUT.C13: + return 'C'; + case _list_layout.LIST_LAYOUT.F19: + return 'F'; + case _list_layout.LIST_LAYOUT.P31: + return 'P'; + case _list_layout.LIST_LAYOUT.N15: + return 'N'; + case _list_layout.LIST_LAYOUT.Si29: + return 'Si'; + default: + return ''; + } +}; +const formatPeaksByPrediction = (peaks, layout, isAscend, decimal, predictions = []) => { + const pDict = {}; + peaks.forEach(p => { + pDict[p.x.toFixed(decimal)] = 0; + }); + predictions.forEach(p => { + const key = p.real.toFixed(decimal); + if (typeof pDict[key] === 'number') { + pDict[key] += 1; + } + }); + const typ = getNmrTyp(layout); + const ascendFunc = (a, b) => parseFloat(a.k) - parseFloat(b.k); + const descendFunc = (a, b) => parseFloat(b.k) - parseFloat(a.k); + const sortFunc = isAscend ? ascendFunc : descendFunc; + const pArr = Object.keys(pDict).map(k => { + if (pDict[k] === 1) return { + k, + v: k + }; + return { + k, + v: `${k} (${pDict[k]}${typ})` + }; + }).sort(sortFunc); + const body = pArr.map(p => p.v).join(', '); + return body; +}; +const compareColors = idx => ['#ABB2B9', '#EDBB99', '#ABEBC6', '#D2B4DE', '#F9E79F'][idx % 5]; +const mutiEntitiesColors = idx => ['#2980b9', '#e4b423', '#8e44ad', '#2c3e50', '#6D214F', '#182C61', '#BDC581'][idx % 7]; +const strNumberFixedDecimal = (number, decimal = -1) => { + if (decimal <= 0) { + return `${number}`; + } + return number.toFixed(Math.max(decimal, (number.toString().split('.')[1] || []).length)); +}; +const strNumberFixedLength = (number, maxLength = -1) => { + if (maxLength <= 0) { + return `${number}`; + } + const splittedNum = number.toString().split('.') || []; + if (splittedNum.length === 0) { + return `${number}`; + } + const integerPart = splittedNum[0]; + if (number >= 0 && maxLength <= integerPart.length || number < 0 && maxLength <= integerPart.length - 1) { + // eslint-disable-line + return `${Math.round(number)}`; + } + const lengthToFix = number >= 0 ? maxLength - integerPart.length : maxLength - integerPart.length + 1; // eslint-disable-line + + return number.toFixed(lengthToFix); +}; +const inlineNotation = (layout, data, sampleName = '') => { + let formattedString = ''; + let quillData = []; + const { + scanRate, + voltaData + } = data; + switch (layout) { + case _list_layout.LIST_LAYOUT.CYCLIC_VOLTAMMETRY: + { + if (!voltaData) { + break; + } + let refString = ''; + let nonRefString = ''; + let refOps = []; + const nonRefOps = []; + const { + listPeaks, + xyData + } = voltaData; + const { + x + } = xyData; + listPeaks.forEach(item => { + const { + isRef, + e12, + max, + min + } = item; + const e12Str = e12 ? strNumberFixedLength(e12, 3) : '0'; + const scanRateStr = scanRate ? strNumberFixedLength(scanRate, 3) : '0'; + if (isRef) { + const posNegString = x[0] > x[1] ? 'neg.' : 'pos.'; + refString = `CV ( mM in vs. Ref (Fc+/Fc) = ${e12Str} V, v = ${scanRateStr} V/s, to ${posNegString}):`; + refOps = [{ + insert: 'CV ( mM in vs. Ref ' + }, { + insert: '(Fc' + }, { + insert: '+', + attributes: { + script: 'super' + } + }, { + insert: '/Fc) ' + }, { + insert: `= ${e12Str} V, v = ${scanRateStr} V/s, to ${posNegString}):` + }]; + } else { + const delta = max && min ? strNumberFixedLength(Math.abs(max.x - min.x) * 1000, 3) : '0'; + nonRefString += `\nE1/2 = ([${sampleName}] , ΔEp) = ${e12Str} V (${delta} mV)`; + const currentNoneOps = [{ + insert: '\nE' + }, { + insert: '1/2', + attributes: { + script: 'sub' + } + }, { + insert: ` = ([${sampleName}] , ΔE` + }, { + insert: 'p', + attributes: { + script: 'sub' + } + }, { + insert: `) = ${e12Str} V (${delta} mV)` + }]; + nonRefOps.push(...currentNoneOps); + } + }); + formattedString = refString + nonRefString; + quillData = [...refOps, ...nonRefOps]; + break; + } + default: + break; + } + return { + quillData, + formattedString + }; +}; +const Format = { + toPeakStr, + extractUvvisLcmsPeaks, + buildData, + spectraDigit, + spectraOps, + peaksBody, + peaksWrapper, + rmRef, + rmShiftFromPeaks, + isNmrLayout, + is13CLayout, + is1HLayout, + is19FLayout, + is31PLayout, + is15NLayout, + is29SiLayout, + isMsLayout, + isIrLayout, + isRamanLayout, + isUvVisLayout, + isHplcUvVisLayout, + isTGALayout, + isDSCLayout, + isXRDLayout, + isCyclicVoltaLayout, + isCDSLayout, + isSECLayout, + isEmissionsLayout, + isDLSIntensityLayout, + isEmWaveLayout, + isGCLayout, + isLCMsLayout, + fixDigit, + formatPeaksByPrediction, + formatedMS, + formatedEm, + calcMpyCenter: _multiplicity_calc.calcMpyCenter, + compareColors, + mutiEntitiesColors, + hasMultiCurves, + isAIFLayout, + isDLSACFLayout, + strNumberFixedDecimal, + formatedXRD, + strNumberFixedLength, + inlineNotation, + formatedLCMS +}; +var _default = exports.default = Format; \ No newline at end of file diff --git a/dist/helpers/init.js b/dist/helpers/init.js new file mode 100644 index 00000000..494047e6 --- /dev/null +++ b/dist/helpers/init.js @@ -0,0 +1,67 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.InitTip = exports.InitScale = exports.InitPathCall = exports.InitAxisCall = void 0; +var _d3Tip = _interopRequireDefault(require("d3-tip")); +var _format = _interopRequireDefault(require("./format")); +const d3 = require('d3'); +const InitScale = (target, reverse = true) => { + const xRange = reverse ? [target.w, 0] : [0, target.w]; + const x = d3.scaleLinear().range(xRange); + const y = d3.scaleLinear().range([target.h, 0]); + return { + x, + y + }; +}; +exports.InitScale = InitScale; +const InitAxisCall = count => { + const yAxisFormat = d3.format('.2n'); + const xAxisCall = d3.axisBottom().ticks(10); + const yAxisCall = d3.axisLeft().ticks(count).tickFormat(yAxisFormat); + return { + x: xAxisCall, + y: yAxisCall + }; +}; +exports.InitAxisCall = InitAxisCall; +const InitPathCall = target => { + const line = d3.line().x(d => target.scales.x(d.x)).y(d => target.scales.y(d.y)); + return line; +}; +exports.InitPathCall = InitPathCall; +const tpStyle = () => { + const stBorder = ' border: 2px solid #aaa;'; + const stBorderRadius = ' border-radius: 5px;'; + const stBackground = ' background: #555;'; + const stColor = ' color: #fff;'; + const stPadding = ' padding: 8px;'; + const stOpacity = ' opacity: 0.9; '; + const stZindex = ' z-index: 1999;'; + const stFontFamily = ' font-family: Helvetica;'; + const style = stBorder + stBorderRadius + stBackground + stColor + stPadding + stOpacity + stPadding + stZindex + stFontFamily; + return style; +}; +const tpDiv = (d, digits, yFactor = 1) => ` +
+ x: ${_format.default.fixDigit(d.x, digits)} +
+ y: ${d3.format('.2~e')(d.y * (yFactor || 1))} +
+ `; +const InitTip = () => { + d3.select('.peak-tp').remove(); + const tip = (0, _d3Tip.default)().attr('class', 'd3-tip').html(({ + d, + layout, + yFactor + }) => tpDiv(d, _format.default.spectraDigit(layout), yFactor || 1)); + return tip; +}; +exports.InitTip = InitTip; \ No newline at end of file diff --git a/dist/helpers/integration.js b/dist/helpers/integration.js new file mode 100644 index 00000000..df03d454 --- /dev/null +++ b/dist/helpers/integration.js @@ -0,0 +1,69 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.getArea = exports.getAbsoluteArea = exports.calcArea = void 0; +var _calc = require("./calc"); +/* eslint-disable no-mixed-operators */ + +const getValueKey = data => { + if (!Array.isArray(data) || data.length === 0) return null; + const sample = data[0]; + if ('k' in sample) return 'k'; + if ('y' in sample) return 'y'; + return null; +}; +const getArea = (xL, xU, data) => { + const valueKey = getValueKey(data); + if (!valueKey) { + return NaN; + } + let area = 0; + for (let i = 1; i < data.length; i += 1) { + const prev = data[i - 1]; + const curr = data[i]; + if (prev.x >= xL && curr.x <= xU) { + const deltaX = curr.x - prev.x; + const avgY = (prev[valueKey] + curr[valueKey]) / 2; + area += deltaX * avgY; + } + } + return area; +}; +exports.getArea = getArea; +const getAbsoluteArea = (xL, xU, data) => { + const valueKey = getValueKey(data); + if (!valueKey) { + return NaN; + } + const ps = data.filter(d => d.x > xL && d.x < xU); + if (ps.length < 2) return 0; + let area = 0; + const point1 = ps[0]; + const point2 = ps[ps.length - 1]; + const slope = (0, _calc.calcSlope)(point1.x, point1[valueKey], point2.x, point2[valueKey]); + let lastY = point1[valueKey]; + for (let i = 1; i < ps.length; i += 1) { + const pt = ps[i]; + const lastPt = ps[i - 1]; + const expectedY = slope * (pt.x - lastPt.x) + lastY; + lastY = expectedY; + const delta = Math.abs(pt[valueKey] - expectedY); + area += delta; + } + return area; +}; +exports.getAbsoluteArea = getAbsoluteArea; +const calcArea = (d, refArea, refFactor, ignoreRef = false) => { + if (ignoreRef) { + const { + absoluteArea + } = d; + return !absoluteArea ? 0 : d.absoluteArea.toFixed(2); + } + return (d.area * refFactor / refArea).toFixed(2); +}; + +// eslint-disable-line +exports.calcArea = calcArea; \ No newline at end of file diff --git a/dist/helpers/mount.js b/dist/helpers/mount.js new file mode 100644 index 00000000..de2c439b --- /dev/null +++ b/dist/helpers/mount.js @@ -0,0 +1,115 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.MountThresLine = exports.MountTags = exports.MountRef = exports.MountPath = exports.MountMarker = exports.MountMainFrame = exports.MountGrid = exports.MountGraphLabel = exports.MountComparePath = exports.MountClip = exports.MountBars = exports.MountAxisLabelY = exports.MountAxisLabelX = exports.MountAxis = void 0; +var _compass = require("./compass"); +const MountTags = target => { + const igbPath = target.root.append('g').attr('class', 'igbPath-clip').attr('clip-path', 'url(#clip)'); + const igcPath = target.root.append('g').attr('class', 'igcPath-clip').attr('clip-path', 'url(#clip)'); + const igtPath = target.root.append('g').attr('class', 'igtPath-clip').attr('clip-path', 'url(#clip)'); + const pPath = target.root.append('g').attr('class', 'pPath-clip').attr('clip-path', 'url(#clip)'); + const bpPath = target.root.append('g').attr('class', 'bpPath-clip').attr('clip-path', 'url(#clip)'); + const bpTxt = target.root.append('g').attr('class', 'bpTxt-clip').attr('clip-path', 'url(#clip)'); + const mpybPath = target.root.append('g').attr('class', 'mpybPath-clip').attr('clip-path', 'url(#clip)'); + const mpyt1Path = target.root.append('g').attr('class', 'mpyt1Path-clip').attr('clip-path', 'url(#clip)'); + const mpyt2Path = target.root.append('g').attr('class', 'mpyt2Path-clip').attr('clip-path', 'url(#clip)'); + const mpypPath = target.root.append('g').attr('class', 'mpypPath-clip').attr('clip-path', 'url(#clip)'); + const aucPath = target.root.append('g').attr('class', 'aucPath-clip').attr('clip-path', 'url(#clip)'); + const peckerPath = target.root.append('g').attr('class', 'peckerPath-clip').attr('clip-path', 'url(#clip)'); + return { + pPath, + bpPath, + bpTxt, + igbPath, + igcPath, + igtPath, + mpybPath, + mpyt1Path, + mpyt2Path, + mpypPath, + aucPath, + peckerPath // eslint-disable-line + }; +}; +exports.MountTags = MountTags; +const MountBars = target => { + const bars = target.root.append('g').attr('class', 'bars-clip').attr('clip-path', 'url(#clip)'); + return bars; +}; +exports.MountBars = MountBars; +const MountRef = target => { + const ref = target.root.append('g').attr('class', 'ref-clip').attr('clip-path', 'url(#ref-clip)'); + return ref; +}; +exports.MountRef = MountRef; +const MountPath = (target, color) => { + const path = target.root.append('g').attr('class', 'line-clip').attr('clip-path', 'url(#clip)').append('path').attr('class', 'line').style('fill', 'none').style('stroke', color).style('stroke-width', 1).on('click', event => (0, _compass.ClickCompass)(event, target)); + return path; +}; +exports.MountPath = MountPath; +const MountComparePath = (target, color, id, alpha = 1) => { + const path = target.root.append('g').attr('class', 'line-clip-compare').attr('id', id).attr('clip-path', 'url(#clip)').append('path').attr('class', 'line').style('fill', 'none').style('stroke', color).style('stroke-opacity', alpha).style('stroke-width', 1).style('stroke-dasharray', '30, 3').on('click', event => (0, _compass.ClickCompass)(event, target)); + return path; +}; +exports.MountComparePath = MountComparePath; +const MountThresLine = (target, color) => { + const thresLineUp = target.root.append('g').attr('class', 'line-clip').attr('clip-path', 'url(#clip)').append('path').attr('class', 'thresholdUp').style('stroke-dasharray', '3, 3').style('fill', 'none').style('stroke', color).style('stroke-width', 1); + const thresLineDw = target.root.append('g').attr('class', 'line-clip').attr('clip-path', 'url(#clip)').append('path').attr('class', 'thresholdDw').style('stroke-dasharray', '3, 3').style('fill', 'none').style('stroke', color).style('stroke-width', 1); + return [thresLineUp, thresLineDw]; +}; +exports.MountThresLine = MountThresLine; +const MountGrid = target => { + const gridTrans = `translate(0, ${target.h})`; + const xGrid = target.root.append('g').attr('class', 'x-grid').attr('transform', gridTrans); + const yGrid = target.root.append('g').attr('class', 'y-grid'); + return { + x: xGrid, + y: yGrid + }; +}; +exports.MountGrid = MountGrid; +const MountAxis = target => { + const xAxisTrans = `translate(0, ${target.h})`; + const xAxis = target.root.append('g').attr('class', 'x-axis').attr('transform', xAxisTrans); + const yAxis = target.root.append('g').attr('class', 'y-axis'); + return { + x: xAxis, + y: yAxis + }; +}; +exports.MountAxis = MountAxis; +const MountAxisLabelX = target => { + const xTrans = `translate(${target.w / 2}, ${target.h + 30})`; + target.root.append('text').attr('text-anchor', 'middle').attr('transform', xTrans).attr('class', 'xLabel').attr('font-family', 'Helvetica').style('font-size', '12px'); +}; +exports.MountAxisLabelX = MountAxisLabelX; +const MountAxisLabelY = target => { + const yR = 'rotate(-90)'; + const yTrans = `translate(${16 - target.margin.l}, ${target.h / 2}) ${yR}`; + target.root.append('text').attr('text-anchor', 'middle').attr('transform', yTrans).attr('class', 'yLabel').attr('font-family', 'Helvetica').style('font-size', '12px'); +}; +exports.MountAxisLabelY = MountAxisLabelY; +const MountGraphLabel = target => { + const xTrans = `translate(${target.w / 2}, ${20})`; + target.root.append('text').attr('text-anchor', 'middle').attr('transform', xTrans).attr('class', 'mark-text').attr('font-family', 'Helvetica').style('font-size', '12px'); +}; +exports.MountGraphLabel = MountGraphLabel; +const MountMarker = (target, color) => { + const tTrans = `translate(${target.w - 80}, -10)`; + const lTrans = `translate(${target.w - 200}, -18)`; + target.root.append('text').attr('text-anchor', 'middle').attr('transform', tTrans).attr('class', 'mark-text').attr('font-family', 'Helvetica'); + target.root.append('rect').attr('transform', lTrans).attr('width', 30).attr('height', 5).attr('class', 'mark-line').style('fill', color); +}; +exports.MountMarker = MountMarker; +const MountClip = target => { + target.svg.append('defs').append('clipPath').attr('id', 'clip').append('rect').attr('width', target.w).attr('height', target.h).attr('x', 0).attr('y', 0); +}; +exports.MountClip = MountClip; +const MountMainFrame = (target, name) => { + const transFrame = `translate(${target.margin.l}, ${target.margin.t})`; + const clsName = `${name}-main`; + target.svg.append('g').attr('class', clsName).attr('transform', transFrame); +}; +exports.MountMainFrame = MountMainFrame; \ No newline at end of file diff --git a/dist/helpers/multiplicity.js b/dist/helpers/multiplicity.js new file mode 100644 index 00000000..c1a420b4 --- /dev/null +++ b/dist/helpers/multiplicity.js @@ -0,0 +1,42 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.mpyBasicPatterns = exports.groupInterval = exports.getInterval = void 0; +const mpyBasicPatterns = exports.mpyBasicPatterns = ['s', 'd', 't', 'q', 'quint', 'h', 'sept', 'o', 'n']; +const getInterval = peaks => { + let itvs = []; + for (let idx = 0; idx < peaks.length - 1; idx += 1) { + const itv = Math.abs(peaks[idx + 1].x - peaks[idx].x); + itvs = [...itvs, itv]; + } + return itvs; +}; +exports.getInterval = getInterval; +const groupInterval = itvs => { + let gitvs = []; + itvs.forEach(vv => { + let applied = false; + gitvs.forEach((gv, idx) => { + if (applied) return; + if (Math.abs((gv.c - vv) / gv.c) <= 0.03) { + const c = (gv.c * gv.es.length + vv) / (gv.es.length + 1); + const es = [...gv.es, vv]; + gitvs = [...gitvs.filter((v, i) => i !== idx), { + c, + es + }]; + applied = true; + } + }); + if (!applied) { + gitvs = [...gitvs, { + c: vv, + es: [vv] + }]; + } + }); + return gitvs; +}; +exports.groupInterval = groupInterval; \ No newline at end of file diff --git a/dist/helpers/multiplicity_calc.js b/dist/helpers/multiplicity_calc.js new file mode 100644 index 00000000..f3bce198 --- /dev/null +++ b/dist/helpers/multiplicity_calc.js @@ -0,0 +1,102 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.calcMpyJStr = exports.calcMpyCoup = exports.calcMpyCenter = void 0; +var _jAnalyzer = _interopRequireDefault(require("../third_party/jAnalyzer")); +var _multiplicity = require("./multiplicity"); +var _multiplicity_verify_basic = require("./multiplicity_verify_basic"); +/* eslint-disable prefer-object-spread, default-param-last */ + +const centerX = (ps, shift) => { + const pxs = ps.map(p => p.x).sort((a, b) => a - b); + const centIdx = (ps.length - 1) / 2; + if (centIdx < 0) return 0; + return pxs[centIdx] - shift; +}; +const calcMpyCenter = (ps, shift, typ) => { + const count = ps.length; + const avgX = ps.reduce((sum, nxt) => sum + nxt.x, 0) / ps.length - shift; + if (typ === 'm') return avgX; + if (count % 2 === 0) return avgX; + return centerX(ps, shift); +}; +exports.calcMpyCenter = calcMpyCenter; +const calcMpyJStr = js => { + if (!Array.isArray(js) || js.length === 0) return ' - '; + const cJ = js.map(j => j.toFixed(3)).join(', '); + return `${cJ}`; +}; +exports.calcMpyJStr = calcMpyJStr; +const calcMpyPeakWidth = (x, metaSt) => { + const { + intervalL, + intervalR, + deltaX + } = metaSt.peaks; + let idxL = null; + intervalL.every((l, idx) => { + if (l.x < x) { + idxL = idx - 1; + return false; + } + return true; + }); + let idxR = null; + intervalR.every((l, idx) => { + if (l.x < x) { + idxR = idx; + return false; + } + return true; + }); + if (!idxL || !idxR) return 10 * deltaX; + return Math.abs(intervalL[idxL].x - intervalR[idxR].x); +}; +const calcMpyCoup = (pks, metaSt) => { + if (pks.length === 0) return { + type: '', + js: '' + }; + const orderPks = pks.sort((a, b) => b.x - a.x); + const { + observeFrequency + } = metaSt.peaks; + const peaks = orderPks.map(p => ({ + x: p.x, + intensity: p.y, + width: calcMpyPeakWidth(p.x, metaSt) + })); + const signal = { + nbPeaks: peaks.length, + observe: observeFrequency, + nucleus: '1H', + peaks + }; + _jAnalyzer.default.compilePattern(signal); + const type = signal.multiplicity; + const js = signal.nmrJs ? signal.nmrJs.map(j => j.coupling).sort() : []; + const isTPCMatch = (0, _multiplicity_verify_basic.verifyTypePeakCount)(type, peaks); + if (!isTPCMatch) return { + type: 'm', + js: [] + }; + if (['s', 'm'].indexOf(type) >= 0) return { + type, + js + }; + const oivs = (0, _multiplicity.getInterval)(orderPks); + if (type === 't') return (0, _multiplicity_verify_basic.verifyTypeT)(type, js, oivs, metaSt); + if (type === 'q') return (0, _multiplicity_verify_basic.verifyTypeQ)(type, js, oivs, metaSt); + if (type === 'quint') return (0, _multiplicity_verify_basic.verifyTypeQuint)(type, js, oivs, metaSt); + if (type === 'h') return (0, _multiplicity_verify_basic.verifyTypeH)(type, js, oivs, metaSt); + if (type === 'sept') return (0, _multiplicity_verify_basic.verifyTypeSept)(type, js, oivs, metaSt); + if (type === 'o') return (0, _multiplicity_verify_basic.verifyTypeO)(type, js, oivs, metaSt); + return { + type, + js + }; +}; +exports.calcMpyCoup = calcMpyCoup; \ No newline at end of file diff --git a/dist/helpers/multiplicity_complat.js b/dist/helpers/multiplicity_complat.js new file mode 100644 index 00000000..66d321ed --- /dev/null +++ b/dist/helpers/multiplicity_complat.js @@ -0,0 +1,100 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.calcMpyComplat = void 0; +var _multiplicity = require("./multiplicity"); +const calcMpyComplat = origPeaks => { + const peaks = origPeaks.sort((a, b) => a.x - b.x); + const count = peaks.length; + const itvs = (0, _multiplicity.getInterval)(peaks); + const gitvs = (0, _multiplicity.groupInterval)(itvs); + let type = 'm'; + let js = []; + switch (count) { + case 1: + type = 's'; + js = []; + break; + case 2: + if (gitvs.length === 1) { + type = 'd'; + js = gitvs.map(g => g.c); + break; + } + break; + case 3: + if (gitvs.length === 1) { + type = 't'; + js = gitvs.map(g => g.c); + break; + } + break; + case 4: + if (gitvs.length === 1) { + type = 'q'; + js = gitvs.map(g => g.c); + break; + } else if (gitvs.length === 2) { + type = 'dd'; + js = gitvs.map(g => g.c); + break; + } + break; + case 5: + if (gitvs.length === 1) { + type = 'quint'; + js = gitvs.map(g => g.c); + break; + } + break; + case 6: + if (gitvs.length === 1) { + type = 'h'; + js = gitvs.map(g => g.c); + break; + } else if (gitvs.length === 2) { + type = 'dt'; + js = gitvs.map(g => g.c); + break; + } + // td + break; + case 7: + if (gitvs.length === 1) { + type = 'sept'; + js = gitvs.map(g => g.c); + break; + } else if (gitvs.length === 3) { + type = 'ddd'; + js = gitvs.map(g => g.c); + break; + } + // td + break; + case 8: + if (gitvs.length === 1) { + type = 'o'; + js = gitvs.map(g => g.c); + break; + } else if (gitvs.length === 2) { + type = 'dq'; + js = gitvs.map(g => g.c); + break; + } else if (gitvs.length === 3) { + type = 'ddd'; + js = gitvs.map(g => g.c); + break; + } + // td + break; + default: + break; + } + return { + type, + js + }; +}; +exports.calcMpyComplat = calcMpyComplat; \ No newline at end of file diff --git a/dist/helpers/multiplicity_manual.js b/dist/helpers/multiplicity_manual.js new file mode 100644 index 00000000..e649508f --- /dev/null +++ b/dist/helpers/multiplicity_manual.js @@ -0,0 +1,125 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.calcMpyManual = void 0; +var _multiplicity = require("./multiplicity"); +/* eslint-disable prefer-object-spread, default-param-last, no-mixed-operators */ + +const isTypeM = mpyType => mpyType === 'm'; +const isTypeBasic = mpyType => _multiplicity.mpyBasicPatterns.slice(1).indexOf(mpyType) >= 0; +const outputTypeM = k => Object.assign({}, k, { + mpyType: 'm', + js: [] +}); +const outputTypeBasic = (k, mpyType, ivs, freq) => { + const numIvs = ivs.length || 1; + const js = [freq * ivs.reduce((sum, x) => sum + x) / numIvs]; + return Object.assign({}, k, { + mpyType, + js + }); +}; +const outputTypeDD = (k, mpyType, ivs, freq) => { + if (ivs.length >= 2) { + const js = [freq * ivs[0], freq * (ivs[0] + ivs[1])]; + return Object.assign({}, k, { + mpyType, + js + }); + } + return Object.assign({}, k, { + mpyType, + js: [] + }); +}; +const outputTypeDT = (k, mpyType, ivs, freq) => { + if (ivs.length >= 4) { + const js = [freq * ivs[0], freq * (ivs[1] + ivs[2] + ivs[3])]; + return Object.assign({}, k, { + mpyType, + js + }); + } + return Object.assign({}, k, { + mpyType, + js: [] + }); +}; +const outputTypeTD = (k, mpyType, ivs, freq) => { + if (ivs.length >= 2) { + const js = [freq * ivs[0], freq * (ivs[0] + ivs[1])]; + return Object.assign({}, k, { + mpyType, + js + }); + } + return Object.assign({}, k, { + mpyType, + js: [] + }); +}; +const outputTypeDQ = (k, mpyType, ivs, freq) => { + if (ivs.length >= 2) { + const js = [freq * ivs[0], freq * (ivs[0] + ivs[1])]; + return Object.assign({}, k, { + mpyType, + js + }); + } // only consider J = ([1,2], [1,3]), not J = ([1,2], [1,5]) + return Object.assign({}, k, { + mpyType, + js: [] + }); +}; +const outputTypeQD = (k, mpyType, ivs, freq) => { + if (ivs.length >= 2) { + const js = [freq * ivs[0], freq * (ivs[0] + ivs[1])]; + return Object.assign({}, k, { + mpyType, + js + }); + } + return Object.assign({}, k, { + mpyType, + js: [] + }); +}; +const outputTypeDDD = (k, mpyType, ivs, freq) => { + if (ivs.length >= 3) { + const js = [freq * ivs[0], freq * (ivs[0] + ivs[1]), freq * (ivs[0] + ivs[1] + ivs[2] + ivs[3])]; + return Object.assign({}, k, { + mpyType, + js + }); + } + return Object.assign({}, k, { + mpyType, + js: [] + }); +}; +const calcMpyManual = (k, mpyType, metaSt) => { + const { + observeFrequency + } = metaSt.peaks; + const freq = observeFrequency || 1.0; + const ivs = (0, _multiplicity.getInterval)(k.peaks); + if (ivs.length === 0) return Object.assign({}, k, { + mpyType, + js: [] + }); + if (isTypeM(mpyType)) return outputTypeM(k); + if (isTypeBasic(mpyType)) return outputTypeBasic(k, mpyType, ivs, freq); + if (mpyType === 'dd') return outputTypeDD(k, mpyType, ivs, freq); + if (mpyType === 'dt') return outputTypeDT(k, mpyType, ivs, freq); + if (mpyType === 'td') return outputTypeTD(k, mpyType, ivs, freq); + if (mpyType === 'dq') return outputTypeDQ(k, mpyType, ivs, freq); + if (mpyType === 'qd') return outputTypeQD(k, mpyType, ivs, freq); + if (mpyType === 'ddd') return outputTypeDDD(k, mpyType, ivs, freq); + return Object.assign({}, k, { + mpyType, + js: [] + }); +}; +exports.calcMpyManual = calcMpyManual; \ No newline at end of file diff --git a/dist/helpers/multiplicity_verify_basic.js b/dist/helpers/multiplicity_verify_basic.js new file mode 100644 index 00000000..f1d7df7a --- /dev/null +++ b/dist/helpers/multiplicity_verify_basic.js @@ -0,0 +1,249 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.verifyTypeT = exports.verifyTypeSept = exports.verifyTypeQuint = exports.verifyTypeQ = exports.verifyTypePeakCount = exports.verifyTypeO = exports.verifyTypeH = void 0; +/* eslint-disable prefer-object-spread, default-param-last, no-mixed-operators */ +// --------------------------------------------------------------- +// verifyTypePeakCount +// --------------------------------------------------------------- + +const verifyTypePeakCount = (type, peaks) => { + const isBasicWrong = type === 's' && peaks.length > 1 || type === 'd' && peaks.length > 2 || type === 't' && peaks.length > 3 || type === 'q' && peaks.length > 4 || type === 'quint' && peaks.length > 5 || type === 'h' && peaks.length > 6 || type === 'sept' && peaks.length > 7 || type === 'o' && peaks.length > 8 || type === 'n' && peaks.length > 9; + let limit = 1; + let mStr = type; + limit *= 5 ** (mStr.match(/quint/g) || []).length; + mStr = mStr.replace(/quint/g, ''); + limit *= 7 ** (mStr.match(/sept/g) || []).length; + mStr = mStr.replace(/sept/g, ''); + limit *= 2 ** (mStr.match(/d/g) || []).length; + mStr = mStr.replace(/d/g, ''); + limit *= 3 ** (mStr.match(/t/g) || []).length; + mStr = mStr.replace(/t/g, ''); + limit *= 4 ** (mStr.match(/q/g) || []).length; + mStr = mStr.replace(/q/g, ''); + limit *= 6 ** (mStr.match(/h/g) || []).length; + mStr = mStr.replace(/h/g, ''); + limit *= 8 ** (mStr.match(/o/g) || []).length; + mStr = mStr.replace(/o/g, ''); + limit *= 9 ** (mStr.match(/n/g) || []).length; + mStr = mStr.replace(/n/g, ''); + const isAdvanWrong = peaks.length > limit; + return !(isBasicWrong || isAdvanWrong); +}; + +// --------------------------------------------------------------- +// Basic Multiplicity verification +// --------------------------------------------------------------- +exports.verifyTypePeakCount = verifyTypePeakCount; +const allowedTolerance = 0.15; +const faktor = 1.1; +const passRuleIntervalCounts = (oivs, limit) => oivs.length === limit; +const getRuleParams = (oivs, metaSt) => { + const { + deltaX, + observeFrequency + } = metaSt.peaks; + const sivs = [...oivs].sort((a, b) => b - a); + const ref = sivs[0]; + const rDeltaX = Math.abs(2 * deltaX / ref); + const tTolerance = rDeltaX > allowedTolerance ? rDeltaX : allowedTolerance; + const tolerance = Math.abs(tTolerance * faktor); + const roivs = oivs.map(oiv => oiv / ref); + const rsivs = sivs.map(siv => siv / ref); + return { + roivs, + rsivs, + tolerance, + observeFrequency + }; +}; +const verifyTypeT = (type, js, oivs, metaSt) => { + if (!passRuleIntervalCounts(oivs, 2)) return { + type: 'm', + js: [] + }; + const { + rsivs, + tolerance + } = getRuleParams(oivs, metaSt); + const isT = Math.abs(rsivs[0] - rsivs[1]) < tolerance; + if (isT) return { + type, + js + }; + return { + type: 'm', + js: [] + }; +}; +exports.verifyTypeT = verifyTypeT; +const verifyTypeQ = (type, js, oivs, metaSt) => { + if (!passRuleIntervalCounts(oivs, 3)) return { + type: 'm', + js: [] + }; + const { + roivs, + rsivs, + tolerance, + observeFrequency + } = getRuleParams(oivs, metaSt); + const isQ = Math.abs(rsivs[0] - rsivs[2]) < tolerance; + if (isQ) return { + type, + js + }; + const isDD = Math.abs(roivs[0] - roivs[2]) < tolerance && Math.abs(roivs[0] - roivs[1]) >= tolerance; + const ddJs = [oivs[0] * observeFrequency, (oivs[0] + oivs[1]) * observeFrequency]; + if (isDD) return { + type: 'dd', + js: ddJs + }; + return { + type: 'm', + js: [] + }; +}; +exports.verifyTypeQ = verifyTypeQ; +const verifyTypeQuint = (type, js, oivs, metaSt) => { + if (!passRuleIntervalCounts(oivs, 4)) return { + type: 'm', + js: [] + }; + const { + rsivs, + tolerance + } = getRuleParams(oivs, metaSt); + const isQuint = Math.abs(rsivs[0] - rsivs[3]) < tolerance; + if (isQuint) return { + type, + js + }; + return { + type: 'm', + js: [] + }; +}; +exports.verifyTypeQuint = verifyTypeQuint; +const verifyTypeH = (type, js, oivs, metaSt) => { + if (!passRuleIntervalCounts(oivs, 5)) return { + type: 'm', + js: [] + }; + const { + roivs, + rsivs, + tolerance, + observeFrequency + } = getRuleParams(oivs, metaSt); + const isH = Math.abs(rsivs[0] - rsivs[4]) < tolerance; + if (isH) return { + type, + js + }; + const isTD = Math.abs(roivs[0] - roivs[2]) < tolerance && Math.abs(roivs[0] - roivs[4]) < tolerance && Math.abs(roivs[1] - roivs[3]) < tolerance && Math.abs(roivs[0] - roivs[1]) >= tolerance; + const tdJs = [oivs[0] * observeFrequency, (oivs[0] + oivs[1]) * observeFrequency]; + if (isTD) return { + type: 'td', + js: tdJs + }; + const isDT1 = Math.abs(roivs[0] - roivs[1]) < tolerance && Math.abs(roivs[0] - roivs[3]) < tolerance && Math.abs(roivs[0] - roivs[4]) < tolerance && Math.abs(roivs[0] - roivs[2]) >= tolerance; + const dt1Js = [oivs[0] * observeFrequency, (oivs[1] + oivs[2] + oivs[3]) * observeFrequency]; + if (isDT1) return { + type: 'dt', + js: dt1Js + }; + const isDT2 = Math.abs(roivs[0] - roivs[4]) < tolerance && Math.abs(roivs[0] - roivs[1] - roivs[2]) < tolerance && Math.abs(roivs[0] - roivs[2] - roivs[3]) < tolerance && Math.abs(roivs[0] - roivs[2]) >= tolerance; + const dt2Js = [oivs[0] * observeFrequency, (oivs[1] + oivs[2] + oivs[3]) * observeFrequency]; + if (isDT2) return { + type: 'dt', + js: dt2Js + }; + return { + type: 'm', + js: [] + }; +}; +exports.verifyTypeH = verifyTypeH; +const verifyTypeSept = (type, js, oivs, metaSt) => { + if (!passRuleIntervalCounts(oivs, 6)) return { + type: 'm', + js: [] + }; + const { + roivs, + rsivs, + tolerance, + observeFrequency + } = getRuleParams(oivs, metaSt); + const isSept = Math.abs(rsivs[0] - rsivs[5]) < tolerance; + if (isSept) return { + type, + js + }; + const isDDD = Math.abs(roivs[0] - roivs[2]) < tolerance && Math.abs(roivs[0] - roivs[3]) < tolerance && Math.abs(roivs[0] - roivs[5]) < tolerance && Math.abs(roivs[1] - roivs[4]) < tolerance && Math.abs(roivs[0] - roivs[1]) >= tolerance; + const dddJs = [oivs[0] * observeFrequency, (oivs[0] + oivs[1]) * observeFrequency, (oivs[0] + oivs[1] + oivs[2]) * observeFrequency]; + if (isDDD) return { + type: 'ddd', + js: dddJs + }; + return { + type: 'm', + js: [] + }; +}; +exports.verifyTypeSept = verifyTypeSept; +const verifyTypeO = (type, js, oivs, metaSt) => { + if (!passRuleIntervalCounts(oivs, 7)) return { + type: 'm', + js: [] + }; + const { + roivs, + rsivs, + tolerance, + observeFrequency + } = getRuleParams(oivs, metaSt); + const isO = Math.abs(rsivs[0] - rsivs[6]) < tolerance; + if (isO) return { + type, + js + }; + const isQD = Math.abs(roivs[0] - roivs[2]) < tolerance && Math.abs(roivs[0] - roivs[4]) < tolerance && Math.abs(roivs[0] - roivs[6]) < tolerance && Math.abs(roivs[1] - roivs[3]) < tolerance && Math.abs(roivs[1] - roivs[5]) < tolerance; + const qdJs = [oivs[0] * observeFrequency, (oivs[0] + oivs[1]) * observeFrequency]; + if (isQD) return { + type: 'qd', + js: qdJs + }; + const isDQ1 = Math.abs(roivs[0] - roivs[1] - roivs[2]) < tolerance && Math.abs(roivs[0] - roivs[2] - roivs[3]) < tolerance && Math.abs(roivs[0] - roivs[3] - roivs[4]) < tolerance && Math.abs(roivs[0] - roivs[4] - roivs[5]) < tolerance && Math.abs(roivs[0] - roivs[6]) < tolerance && Math.abs(roivs[1] - roivs[5]) < tolerance; + const dq1Js = [oivs[0] * observeFrequency, (oivs[0] + oivs[1]) * observeFrequency]; + if (isDQ1) return { + type: 'dq', + js: dq1Js + }; + const isDQ2 = Math.abs(roivs[0] - roivs[1]) < tolerance && Math.abs(roivs[0] - roivs[2]) < tolerance && Math.abs(roivs[0] - roivs[4]) < tolerance && Math.abs(roivs[0] - roivs[5]) < tolerance && Math.abs(roivs[0] - roivs[6]) < tolerance && Math.abs(roivs[0] - roivs[3]) >= tolerance; + const dq2Js = [oivs[0] * observeFrequency, (oivs[0] + oivs[1] + oivs[2] + oivs[3]) * observeFrequency]; + if (isDQ2) return { + type: 'dq', + js: dq2Js + }; + const isDDD1 = Math.abs(roivs[0] - roivs[2]) < tolerance && Math.abs(roivs[0] - roivs[4]) < tolerance && Math.abs(roivs[0] - roivs[6]) < tolerance && Math.abs(roivs[1] - roivs[5]) < tolerance; + const ddd1Js = [oivs[0] * observeFrequency, (oivs[0] + oivs[1]) * observeFrequency, (oivs[0] + oivs[1] + oivs[2] + oivs[3]) * observeFrequency]; + if (isDDD1) return { + type: 'ddd', + js: ddd1Js + }; + const isDDD2 = Math.abs(roivs[0] - roivs[2] - roivs[3]) < tolerance && Math.abs(roivs[0] - roivs[3] - roivs[4]) < tolerance && Math.abs(roivs[0] - roivs[6]) < tolerance && Math.abs(roivs[1] - roivs[5]) < tolerance && Math.abs(roivs[0] - roivs[1]) >= tolerance; + const ddd2Js = [oivs[0] * observeFrequency, (oivs[0] + oivs[1]) * observeFrequency, (oivs[0] + oivs[1] + oivs[2]) * observeFrequency]; + if (isDDD2) return { + type: 'ddd', + js: ddd2Js + }; + return { + type: 'm', + js: [] + }; +}; +exports.verifyTypeO = verifyTypeO; \ No newline at end of file diff --git a/dist/helpers/shift.js b/dist/helpers/shift.js new file mode 100644 index 00000000..917f161e --- /dev/null +++ b/dist/helpers/shift.js @@ -0,0 +1,35 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.VirtalPts = exports.RealPts = exports.FromManualToOffset = exports.CalcResidualX = void 0; +var _list_shift = require("../constants/list_shift"); +/* eslint-disable prefer-object-spread, default-param-last */ + +const shiftNone = _list_shift.LIST_SHIFT_13C[0]; +const FromManualToOffset = (ref, peak) => { + if (!peak || ref.name === shiftNone.name) return 0; + const offset = peak.x - ref.value; + return offset || 0; +}; +exports.FromManualToOffset = FromManualToOffset; +const CalcResidualX = (origRef, origApex, nextApex) => { + if (!nextApex) return 0.0; // nextApex = false + if (origRef.name === shiftNone.name) return 0.0; + const origApexX = origApex ? origApex.x : 0.0; + const origShift = origApexX === 0.0 ? 0.0 : origRef.value; // orig shift + const resX = origShift - origApexX; + return resX; +}; +exports.CalcResidualX = CalcResidualX; +const VirtalPts = (pts, resX) => pts.map(pt => Object.assign({ + x: pt.x + resX, + y: pt.y +})); +exports.VirtalPts = VirtalPts; +const RealPts = (pts, resX) => pts.map(pt => Object.assign({ + x: pt.x - resX, + y: pt.y +})); +exports.RealPts = RealPts; \ No newline at end of file diff --git a/dist/helpers/zoom.js b/dist/helpers/zoom.js new file mode 100644 index 00000000..3fafd924 --- /dev/null +++ b/dist/helpers/zoom.js @@ -0,0 +1,22 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +const d3 = require('d3'); +const resetZoom = main => { + main.svg.call(main.zoom.transform, d3.zoomIdentity); + main.svg.selectAll('.brush').call(main.brush.move, null); +}; +const MountZoom = (main, zoomed) => { + const zoomedCb = event => zoomed(event, main); + const resetZoomCb = event => { + event.stopPropagation(); + event.preventDefault(); + resetZoom(main); + }; + main.zoom.on('zoom', zoomedCb); + main.svg.call(main.zoom).on('contextmenu.zoom', resetZoomCb); +}; +var _default = exports.default = MountZoom; \ No newline at end of file diff --git a/dist/index.js b/dist/index.js new file mode 100644 index 00000000..b41e5d44 --- /dev/null +++ b/dist/index.js @@ -0,0 +1,1075 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); +var _react = _interopRequireDefault(require("react")); +var _reactDom = _interopRequireDefault(require("react-dom")); +var _material = require("@mui/material"); +var _reactQuill = _interopRequireDefault(require("react-quill")); +var _app = require("./app"); +var _extractEntityLCMS = require("./helpers/extractEntityLCMS"); +var _utils = require("./reducers/reducer_hplc_ms/utils"); +var _nmr1h_jcamp = _interopRequireDefault(require("./__tests__/fixtures/nmr1h_jcamp")); +var _nmr1h_2_jcamp = _interopRequireDefault(require("./__tests__/fixtures/nmr1h_2_jcamp")); +var _nmr13c_dept_jcamp = _interopRequireDefault(require("./__tests__/fixtures/nmr13c_dept_jcamp")); +var _nmr13c_jcamp = _interopRequireDefault(require("./__tests__/fixtures/nmr13c_jcamp")); +var _nmr19f_jcamp = _interopRequireDefault(require("./__tests__/fixtures/nmr19f_jcamp")); +var _nmr31p_jcamp = _interopRequireDefault(require("./__tests__/fixtures/nmr31p_jcamp")); +var _nmr15n_jcamp = _interopRequireDefault(require("./__tests__/fixtures/nmr15n_jcamp")); +var _nmr29si_jcamp = _interopRequireDefault(require("./__tests__/fixtures/nmr29si_jcamp")); +var _ir_jcamp = _interopRequireDefault(require("./__tests__/fixtures/ir_jcamp")); +var _compare_ir_1_jcamp = _interopRequireDefault(require("./__tests__/fixtures/compare_ir_1_jcamp")); +var _compare_ir_2_jcamp = _interopRequireDefault(require("./__tests__/fixtures/compare_ir_2_jcamp")); +var _raman_jcamp = _interopRequireDefault(require("./__tests__/fixtures/raman_jcamp")); +var _ms_jcamp = _interopRequireDefault(require("./__tests__/fixtures/ms_jcamp")); +var _lc_ms_jcamp = _interopRequireDefault(require("./__tests__/fixtures/lc_ms_jcamp")); +var _lc_ms_jcamp_ = _interopRequireDefault(require("./__tests__/fixtures/lc_ms_jcamp_2")); +var _lc_ms_jcamp_tic_pos = _interopRequireDefault(require("./__tests__/fixtures/lc_ms_jcamp_tic_pos")); +var _lc_ms_jcamp_tic_neg = _interopRequireDefault(require("./__tests__/fixtures/lc_ms_jcamp_tic_neg")); +var _lc_ms_jcamp_uvvis = _interopRequireDefault(require("./__tests__/fixtures/lc_ms_jcamp_uvvis")); +var _lc_ms_jcamp_tic_chemstation = _interopRequireDefault(require("./__tests__/fixtures/lc_ms_jcamp_tic_chemstation")); +var _lc_ms_jcamp_mz_chemstation = _interopRequireDefault(require("./__tests__/fixtures/lc_ms_jcamp_mz_chemstation")); +var _lc_ms_jcamp_uvvis_chemstation = _interopRequireDefault(require("./__tests__/fixtures/lc_ms_jcamp_uvvis_chemstation")); +var _nmr_result = _interopRequireDefault(require("./__tests__/fixtures/nmr_result")); +var _ir_result = _interopRequireDefault(require("./__tests__/fixtures/ir_result")); +var _phenylalanin = _interopRequireDefault(require("./__tests__/fixtures/phenylalanin")); +var _compare_uv_vis_jcamp = _interopRequireDefault(require("./__tests__/fixtures/compare_uv_vis_jcamp")); +var _uv_vis_jcamp = _interopRequireDefault(require("./__tests__/fixtures/uv_vis_jcamp")); +var _hplc_uvvis_jcamp = _interopRequireDefault(require("./__tests__/fixtures/hplc_uvvis_jcamp")); +var _hplc_uvvis_jcamp_ = _interopRequireDefault(require("./__tests__/fixtures/hplc_uvvis_jcamp_2")); +var _tga_jcamp = _interopRequireDefault(require("./__tests__/fixtures/tga_jcamp")); +var _dsc_jcamp = _interopRequireDefault(require("./__tests__/fixtures/dsc_jcamp")); +var _xrd_jcamp_ = _interopRequireDefault(require("./__tests__/fixtures/xrd_jcamp_1")); +var _xrd_jcamp_2 = _interopRequireDefault(require("./__tests__/fixtures/xrd_jcamp_2")); +var _cyclic_voltammetry_ = _interopRequireDefault(require("./__tests__/fixtures/cyclic_voltammetry_1")); +var _cyclic_voltammetry_2 = _interopRequireDefault(require("./__tests__/fixtures/cyclic_voltammetry_2")); +var _cyclic_voltammetry_3 = _interopRequireDefault(require("./__tests__/fixtures/cyclic_voltammetry_3")); +var _cds_jcamp = _interopRequireDefault(require("./__tests__/fixtures/cds_jcamp")); +var _sec_1_jcamp = _interopRequireDefault(require("./__tests__/fixtures/sec_1_jcamp")); +var _sec_2_jcamp = _interopRequireDefault(require("./__tests__/fixtures/sec_2_jcamp")); +var _sec_3_jcamp = _interopRequireDefault(require("./__tests__/fixtures/sec_3_jcamp")); +var _sec_4_jcamp = _interopRequireDefault(require("./__tests__/fixtures/sec_4_jcamp")); +var _aif_jcamp_ = _interopRequireDefault(require("./__tests__/fixtures/aif_jcamp_1")); +var _aif_jcamp_2 = _interopRequireDefault(require("./__tests__/fixtures/aif_jcamp_2")); +var _gc_1_jcamp = _interopRequireDefault(require("./__tests__/fixtures/gc_1_jcamp")); +var _gc_2_jcamp = _interopRequireDefault(require("./__tests__/fixtures/gc_2_jcamp")); +var _gc_3_jcamp = _interopRequireDefault(require("./__tests__/fixtures/gc_3_jcamp")); +var _emissions_jcamp = _interopRequireDefault(require("./__tests__/fixtures/emissions_jcamp")); +var _dls_acf_jcamp = _interopRequireDefault(require("./__tests__/fixtures/dls_acf_jcamp")); +var _dls_intensity_jcamp = _interopRequireDefault(require("./__tests__/fixtures/dls_intensity_jcamp")); +var _qDescValue = require("./__tests__/fixtures/qDescValue"); +require("./__tests__/style/svg.css"); +var _jsxRuntime = require("react/jsx-runtime"); +/* eslint-disable prefer-object-spread, default-param-last, no-nested-ternary */ + +const pickSelectedSpectrumFromPayload = payload => { + const spectraList = payload?.spectra_list; + if (!Array.isArray(spectraList)) return payload || {}; + if (spectraList.length === 0) return {}; + const selectedIdx = Number.isFinite(payload?.curveSt?.curveIdx) ? payload.curveSt.curveIdx : 0; + return spectraList[selectedIdx] || spectraList[0] || {}; +}; +const normalizeShiftForFormatting = shift => { + if (shift && Array.isArray(shift.shifts)) return shift; + return { + selectedIdx: 0, + shifts: [shift || { + ref: {}, + peak: false, + enable: true + }] + }; +}; +const nmr1HEntity = _app.FN.ExtractJcamp(_nmr1h_jcamp.default); +const nmr1HEntity2 = _app.FN.ExtractJcamp(_nmr1h_2_jcamp.default); +const nmr13CEntity = _app.FN.ExtractJcamp(_nmr13c_jcamp.default); +const nmr13CDeptEntity = _app.FN.ExtractJcamp(_nmr13c_dept_jcamp.default); +const nmr19FEntity = _app.FN.ExtractJcamp(_nmr19f_jcamp.default); +const nmr31PEntity = _app.FN.ExtractJcamp(_nmr31p_jcamp.default); +const nmr15NEntity = _app.FN.ExtractJcamp(_nmr15n_jcamp.default); +const nmr29SiEntity = _app.FN.ExtractJcamp(_nmr29si_jcamp.default); +const irEntity = _app.FN.ExtractJcamp(_ir_jcamp.default); +const compIr1Entity = _app.FN.ExtractJcamp(_compare_ir_1_jcamp.default); +const compIr2Entity = _app.FN.ExtractJcamp(_compare_ir_2_jcamp.default); +const ramanEntity = _app.FN.ExtractJcamp(_raman_jcamp.default); +const msEntity = _app.FN.ExtractJcamp(_ms_jcamp.default); +const lcmsEntity = _app.FN.ExtractJcamp(_lc_ms_jcamp.default); +const lcmsEntity2 = _app.FN.ExtractJcamp(_lc_ms_jcamp_.default); +const hplcMsTicPosEntity = _app.FN.ExtractJcamp(_lc_ms_jcamp_tic_pos.default); +const hplcMsTicNegEntity = _app.FN.ExtractJcamp(_lc_ms_jcamp_tic_neg.default); +const hplcMsUvvisEntity = _app.FN.ExtractJcamp(_lc_ms_jcamp_uvvis.default); +const hplcMsTicChemstationEntity = _app.FN.ExtractJcamp(_lc_ms_jcamp_tic_chemstation.default); +const hplcMsMzChemstationEntity = _app.FN.ExtractJcamp(_lc_ms_jcamp_mz_chemstation.default); +const hplcMsUvvisChemstationEntity = _app.FN.ExtractJcamp(_lc_ms_jcamp_uvvis_chemstation.default); +const uvVisEntity = _app.FN.ExtractJcamp(_uv_vis_jcamp.default); +const compUvVisEntity = _app.FN.ExtractJcamp(_compare_uv_vis_jcamp.default); +const hplcUVVisEntity = _app.FN.ExtractJcamp(_hplc_uvvis_jcamp.default); +const hplcUVVisEntity2 = _app.FN.ExtractJcamp(_hplc_uvvis_jcamp_.default); +const tgaEntity = _app.FN.ExtractJcamp(_tga_jcamp.default); +const dscEntity = _app.FN.ExtractJcamp(_dsc_jcamp.default); +const xrdEntity1 = _app.FN.ExtractJcamp(_xrd_jcamp_.default); +const xrdEntity2 = _app.FN.ExtractJcamp(_xrd_jcamp_2.default); +const cyclicVoltaEntity1 = _app.FN.ExtractJcamp(_cyclic_voltammetry_.default); +const cyclicVoltaEntity2 = _app.FN.ExtractJcamp(_cyclic_voltammetry_2.default); +const cyclicVoltaEntity3 = _app.FN.ExtractJcamp(_cyclic_voltammetry_3.default); +const cdsEntity = _app.FN.ExtractJcamp(_cds_jcamp.default); +const secEntity1 = _app.FN.ExtractJcamp(_sec_1_jcamp.default); +const secEntity2 = _app.FN.ExtractJcamp(_sec_2_jcamp.default); +const secEntity3 = _app.FN.ExtractJcamp(_sec_3_jcamp.default); +const secEntity4 = _app.FN.ExtractJcamp(_sec_4_jcamp.default); +const aifEntity1 = _app.FN.ExtractJcamp(_aif_jcamp_.default); +const aifEntity2 = _app.FN.ExtractJcamp(_aif_jcamp_2.default); +const gcEntity1 = _app.FN.ExtractJcamp(_gc_1_jcamp.default); +const gcEntity2 = _app.FN.ExtractJcamp(_gc_2_jcamp.default); +const gcEntity3 = _app.FN.ExtractJcamp(_gc_3_jcamp.default); +const emissionsEntity = _app.FN.ExtractJcamp(_emissions_jcamp.default); +const dlsAcfEntity = _app.FN.ExtractJcamp(_dls_acf_jcamp.default); +const dlsIntensityEntity = _app.FN.ExtractJcamp(_dls_intensity_jcamp.default); +const cloneData = value => JSON.parse(JSON.stringify(value)); +const parseNumericPage = feature => { + const candidates = [feature?.pageValue, feature?.page, feature?.pageSymbol]; + for (let i = 0; i < candidates.length; i += 1) { + const raw = candidates[i]; + if (raw != null) { + if (typeof raw === 'number' && Number.isFinite(raw)) return raw; + const text = String(raw).split('\n')[0].trim(); + const match = text.match(/[-+]?\d*\.?\d+(?:[eE][-+]?\d+)?/); + if (match) { + const value = Number(match[0]); + if (Number.isFinite(value)) return value; + } + } + } + return null; +}; +const getCurveFeatures = curve => { + if (Array.isArray(curve?.features)) return curve.features; + if (curve?.features && typeof curve.features === 'object') { + return Object.values(curve.features); + } + return []; +}; +const selectClosestMsFeature = (retentionTime, polarity) => { + const featurePool = [...getCurveFeatures(lcmsEntity).map(feature => ({ + curve: lcmsEntity, + feature + })), ...getCurveFeatures(lcmsEntity2).map(feature => ({ + curve: lcmsEntity2, + feature + }))].filter(entry => Number.isFinite(parseNumericPage(entry.feature))); + if (featurePool.length === 0) return null; + const normalizedPolarity = polarity ? String(polarity).toLowerCase() : null; + const filteredPool = normalizedPolarity ? featurePool.filter(entry => (0, _extractEntityLCMS.getLcMsInfo)(entry.curve).polarity === normalizedPolarity) : featurePool; + const pool = filteredPool.length > 0 ? filteredPool : featurePool; + if (pool.length === 0) return null; + if (!Number.isFinite(retentionTime)) return pool[0]; + return pool.reduce((best, entry) => { + const bestRt = parseNumericPage(best.feature); + const currentRt = parseNumericPage(entry.feature); + if (!Number.isFinite(bestRt)) return entry; + if (!Number.isFinite(currentRt)) return best; + return Math.abs(currentRt - retentionTime) < Math.abs(bestRt - retentionTime) ? entry : best; + }, pool[0]); +}; +const buildLcmsStandaloneMultiEntities = (retentionTime, polarity) => { + const selected = selectClosestMsFeature(retentionTime, polarity); + const selectedMsCurve = selected?.curve || lcmsEntity; + const allFeatures = getCurveFeatures(selectedMsCurve); + const msCurve = cloneData(selectedMsCurve); + const spectrArr = Array.isArray(msCurve.spectra) ? msCurve.spectra : []; + const nFeat = allFeatures.length; + const nSpec = spectrArr.length; + const primaryIdx = selected?.feature != null && allFeatures.indexOf(selected.feature) >= 0 ? allFeatures.indexOf(selected.feature) : 0; + let rawLen = Math.min(nFeat, nSpec); + if (primaryIdx >= rawLen) { + rawLen = Math.min(primaryIdx + 1, nFeat, nSpec); + } + const safePrimary = Math.min(primaryIdx, Math.max(0, rawLen - 1)); + const allIndices = Array.from({ + length: rawLen + }, (_, i) => i); + const orderedIdx = [safePrimary, ...allIndices.filter(i => i !== safePrimary)]; + msCurve.features = orderedIdx.map(i => cloneData(allFeatures[i])); + msCurve.spectra = orderedIdx.map(i => cloneData(spectrArr[i])); + const multi = [cloneData(hplcMsTicPosEntity), cloneData(hplcMsTicNegEntity), cloneData(hplcMsUvvisEntity), msCurve]; + const pol = polarity ? String(polarity).toLowerCase() : 'positive'; + const ticEntityForPolarity = pol === 'negative' ? multi[1] : multi[0]; + const ticXs = ticEntityForPolarity?.features?.[0]?.data?.[0]?.x || []; + const rtNum = Number.isFinite(retentionTime) ? retentionTime : parseNumericPage({ + pageValue: retentionTime, + page: retentionTime, + pageSymbol: retentionTime + }); + const snapped = Array.isArray(ticXs) && ticXs.length > 0 && Number.isFinite(rtNum) ? (0, _utils.snapRtToAxis)(rtNum, ticXs) : null; + if (snapped != null && Number.isFinite(snapped)) { + if (msCurve.features[0]) { + msCurve.features[0].pageValue = snapped; + msCurve.features[0].page = String(snapped); + msCurve.features[0].pageSymbol = String(snapped); + } + if (msCurve.spectra?.[0]) { + msCurve.spectra[0].pageValue = snapped; + msCurve.spectra[0].page = String(snapped); + msCurve.spectra[0].pageSymbol = String(snapped); + } + } + return multi; +}; +const getInitialLcmsRetentionTime = () => { + const ticX = hplcMsTicPosEntity?.features?.[0]?.data?.[0]?.x; + return Array.isArray(ticX) && Number.isFinite(ticX[0]) ? ticX[0] : null; +}; +class DemoWriteIr extends _react.default.Component { + constructor(props) { + super(props); + this.state = { + typ: 'nmr 1h', + desc: '', + predictions: false, + molecule: '', + showOthers: false, + descChanged: '', + lcmsDynamicMultiEntities: null + }; + this.onClick = this.onClick.bind(this); + this.writeMpy = this.writeMpy.bind(this); + this.writePeak = this.writePeak.bind(this); + this.formatPks = this.formatPks.bind(this); + this.formatMpy = this.formatMpy.bind(this); + this.savePeaks = this.savePeaks.bind(this); + this.predictOp = this.predictOp.bind(this); + this.updatInput = this.updatInput.bind(this); + this.loadEntity = this.loadEntity.bind(this); + this.loadQuill = this.loadQuill.bind(this); + this.onShowOthers = this.onShowOthers.bind(this); + this.loadOthers = this.loadOthers.bind(this); + this.onDescriptionChanged = this.onDescriptionChanged.bind(this); + this.loadMultiEntities = this.loadMultiEntities.bind(this); + this.handleLcmsPageRequest = this.handleLcmsPageRequest.bind(this); + this.lcmsRequestCounter = 0; + } + onShowOthers(jcamp) { + // eslint-disable-line + this.setState({ + showOthers: true + }); + } + onDescriptionChanged(content) { + // console.log(content) + this.setState({ + descChanged: content + }); + } + componentDidUpdate(_prevProps, prevState) { + const { + typ + } = this.state; + const { + typ: prevTyp + } = prevState; + if (typ === 'lcms' && prevTyp !== 'lcms') { + const initialRt = getInitialLcmsRetentionTime(); + this.handleLcmsPageRequest({ + retentionTime: initialRt, + polarity: 'positive', + trigger: 'initial_load' + }); + } + } + handleLcmsPageRequest(request) { + const { + typ + } = this.state; + if (typ !== 'lcms') return; + const retentionTime = request?.retentionTime; + const polarity = request?.polarity; + const trigger = request?.trigger || 'unknown'; + this.lcmsRequestCounter += 1; + const requestId = this.lcmsRequestCounter; + if (typeof window !== 'undefined') { + // eslint-disable-next-line no-underscore-dangle + const history = Array.isArray(window.__lcmsDemoRequests) ? window.__lcmsDemoRequests : []; + history.push({ + requestId, + retentionTime, + polarity, + trigger, + createdAt: Date.now() + }); + // eslint-disable-next-line no-underscore-dangle + window.__lcmsDemoRequests = history; + } + setTimeout(() => { + if (requestId !== this.lcmsRequestCounter) return; + this.setState({ + lcmsDynamicMultiEntities: buildLcmsStandaloneMultiEntities(retentionTime, polarity) + }); + }, 250); + } + onClick(typ) { + return () => { + const isLcms = typ === 'lcms'; + const initialRt = getInitialLcmsRetentionTime(); + this.setState({ + typ, + desc: '', + predictions: false, + molecule: '', + lcmsDynamicMultiEntities: isLcms ? buildLcmsStandaloneMultiEntities(initialRt) : null + }); + }; + } + loadEntity() { + const { + typ + } = this.state; + switch (typ) { + case 'nmr 1h': + return nmr1HEntity; + case 'nmr 13c': + return nmr13CEntity; + case 'nmr 13c dept': + return nmr13CDeptEntity; + case 'nmr 19f': + return nmr19FEntity; + case 'nmr 31p': + return nmr31PEntity; + case 'nmr 15n': + return nmr15NEntity; + case 'nmr 29si': + return nmr29SiEntity; + case 'ir': + return irEntity; + case 'raman': + return ramanEntity; + case 'uv/vis': + return uvVisEntity; + case 'hplc uv/vis': + return hplcUVVisEntity; + case 'tga': + return tgaEntity; + case 'dsc': + return dscEntity; + case 'xrd': + return xrdEntity1; + case 'cyclic volta': + return cyclicVoltaEntity2; + case 'cds': + return cdsEntity; + case 'sec': + return secEntity1; + case 'aif': + return aifEntity1; + case 'emissions': + return emissionsEntity; + case 'dls acf': + return dlsAcfEntity; + case 'dls intensity': + return dlsIntensityEntity; + case 'gc': + return gcEntity1; + case 'ms': + return msEntity; + case 'lcms': + return lcmsEntity; + case 'lcms chemstation': + return hplcMsUvvisChemstationEntity; + default: + return msEntity; + } + } + loadMultiEntities() { + const { + typ, + lcmsDynamicMultiEntities + } = this.state; + switch (typ) { + case 'cyclic volta': + return [cyclicVoltaEntity1, cyclicVoltaEntity2, cyclicVoltaEntity3]; + case 'multi': + return [nmr1HEntity, nmr1HEntity2]; + case 'multi hplc': + return [hplcUVVisEntity, hplcUVVisEntity2]; + case 'multi ir': + return [compIr1Entity, compIr2Entity]; + case 'multi xrd': + return [xrdEntity1, xrdEntity2]; + case 'sec': + return [secEntity1, secEntity2, secEntity3, secEntity4]; + case 'aif': + return [aifEntity1, aifEntity2]; + case 'gc': + return [gcEntity1, gcEntity2, gcEntity3]; + case 'lcms': + return lcmsDynamicMultiEntities || buildLcmsStandaloneMultiEntities(getInitialLcmsRetentionTime()); + case 'lcms chemstation': + return [hplcMsTicChemstationEntity, hplcMsMzChemstationEntity, hplcMsUvvisChemstationEntity]; + default: + return []; + } + } + loadQuill() { + const { + typ + } = this.state; + switch (typ) { + case 'nmr 1h': + return _qDescValue.q1H; + case 'nmr 13c': + return _qDescValue.q13C; + case 'nmr 13c dept': + return _qDescValue.q13C; + case 'ir': + return _qDescValue.qIR; + case 'nmr 19f': + case 'nmr 31p': + case 'nmr 15n': + case 'nmr 29si': + case 'raman': + case 'uv/vis': + case 'hplc uv/vis': + case 'tga': + case 'dsc': + case 'xrd': + case 'ms': + case 'lcms': + case 'lcms chemstation': + case 'cyclic volta': + case 'cds': + case 'sec': + case 'aif': + case 'emissions': + case 'dls acf': + case 'dls intensity': + case 'gc': + default: + return false; + } + } + loadOthers() { + const { + showOthers, + typ + } = this.state; + const isIr = typ === 'ir'; + const isXRD = typ === 'xrd'; + const others = showOthers ? isIr ? [compIr1Entity, compIr2Entity] : isXRD ? [xrdEntity2] : [compUvVisEntity] : []; + return { + others, + addOthersCb: this.onShowOthers + }; + } + rmDollarSign(target) { + return target.replace(/\$/g, ''); + } + formatPks({ + peaks, + layout, + shift, + isAscend, + decimal, + isIntensity, + integration, + waveLength, + cyclicvoltaSt, + curveSt + }) { + const entity = this.loadEntity(); + const safeLayout = layout || entity?.layout; + const { + features + } = entity; + const { + temperature + } = entity; + const { + maxY, + minY + } = Array.isArray(features) ? {} : features.editPeak || features.autoPeak; + const boundary = { + maxY, + minY + }; + const shiftForFormatting = normalizeShiftForFormatting(shift); + const body = _app.FN.peaksBody({ + peaks, + layout: safeLayout, + decimal, + shift: shiftForFormatting, + isAscend, + isIntensity, + boundary, + integration, + waveLength, + temperature, + hplcMsSt: _app.store.getState().hplcMs + }); + const wrapper = _app.FN.peaksWrapper(safeLayout, shiftForFormatting); + let desc = this.rmDollarSign(wrapper.head) + body + wrapper.tail; + if (_app.FN.isCyclicVoltaLayout(safeLayout) && cyclicvoltaSt?.spectraList && curveSt?.listCurves) { + const { + spectraList + } = cyclicvoltaSt; + const { + curveIdx, + listCurves + } = curveSt; + const selectedVolta = spectraList[curveIdx]; + const selectedCurve = listCurves[curveIdx]; + if (!selectedVolta || !selectedCurve?.feature) return desc; + const { + feature + } = selectedCurve; + const { + scanRate + } = feature; + const data = { + scanRate, + voltaData: { + listPeaks: selectedVolta.list, + xyData: feature.data[0] + } + }; + const inlineData = _app.FN.inlineNotation(layout, data); + const { + formattedString + } = inlineData; + desc = formattedString; + } + return desc; + } + formatMpy({ + multiplicity, + integration, + shift, + isAscend, + decimal, + layout + }) { + // obsv freq + const entity = this.loadEntity(); + const { + features + } = entity; + const { + observeFrequency + } = Array.isArray(features) ? features[0] : features.editPeak || features.autoPeak; + const freq = observeFrequency[0]; + const freqStr = freq ? `${parseInt(freq, 10)} MHz, ` : ''; + // multiplicity + const { + refArea, + refFactor + } = integration; + const shiftVal = multiplicity.shift; + const ms = multiplicity.stack; + const is = integration.stack; + const macs = ms.map(m => { + const { + peaks, + mpyType, + xExtent + } = m; + const { + xL, + xU + } = xExtent; + const it = is.filter(i => i.xL === xL && i.xU === xU)[0] || { + area: 0 + }; + const area = it.area * refFactor / refArea; // eslint-disable-line + const center = _app.FN.calcMpyCenter(peaks, shiftVal, mpyType); + const safeCenter = Number.isFinite(center) ? center : 0; + const xs = m.peaks.map(p => p.x).sort((a, b) => a - b); + const [aIdx, bIdx] = isAscend ? [0, xs.length - 1] : [xs.length - 1, 0]; + const hasValidRange = xs.length > 0 && Number.isFinite(shiftVal); + const mxA = mpyType === 'm' && hasValidRange ? (xs[aIdx] - shiftVal).toFixed(decimal) : safeCenter.toFixed(decimal); + const mxB = mpyType === 'm' && hasValidRange ? (xs[bIdx] - shiftVal).toFixed(decimal) : safeCenter.toFixed(decimal); + return Object.assign({}, m, { + area, + center, + mxA, + mxB + }); + }).sort((a, b) => isAscend ? a.center - b.center : b.center - a.center); + const str = macs.map(m => { + const c = m.center; + const type = m.mpyType; + const it = Math.round(m.area); + const js = m.js.map(j => `J = ${j.toFixed(1)} Hz`).join(', '); + const atomCount = layout === '1H' ? `, ${it}H` : ''; + const location = type === 'm' ? `${m.mxA}–${m.mxB}` : `${c.toFixed(decimal)}`; + return m.js.length === 0 ? `${location} (${type}${atomCount})` : `${location} (${type}, ${js}${atomCount})`; + }).join(', '); + const shiftRef = shift?.ref || {}; + const { + label, + value, + name + } = shiftRef; + const hasValidShiftRef = !!label && Number.isFinite(value) && typeof name === 'string'; + const solvent = hasValidShiftRef ? `${name.split('(')[0].trim()} [${value.toFixed(decimal)} ppm], ` : ''; + return `${layout} NMR (${freqStr}${solvent}ppm) δ = ${str}.`; + } + writeMpy(payload) { + const { + layout, + shift, + isAscend, + decimal, + multiplicity, + integration + } = pickSelectedSpectrumFromPayload(payload); + if (!_app.FN.isNmrLayout(layout)) return; + const desc = this.formatMpy({ + multiplicity, + integration, + shift, + isAscend, + decimal, + layout + }); + this.setState({ + desc + }); + } + writePeak(payload) { + const { + peaks, + layout, + shift, + isAscend, + decimal, + isIntensity, + integration, + waveLength, + cyclicvoltaSt, + curveSt + } = pickSelectedSpectrumFromPayload(payload); + const desc = this.formatPks({ + peaks, + layout, + shift, + isAscend, + decimal, + isIntensity, + integration, + waveLength, + // eslint-disable-line + cyclicvoltaSt, + curveSt // eslint-disable-line + }); + this.setState({ + desc + }); + } + savePeaks(payload) { + const { + peaks, + layout, + shift, + isAscend, + decimal, + isIntensity, + waveLength + } = pickSelectedSpectrumFromPayload(payload); + const entity = this.loadEntity(); + const safeLayout = layout || entity?.layout; + const { + features + } = entity; + const { + temperature + } = entity; + const { + maxY, + minY + } = Array.isArray(features) ? features[0] : features.editPeak || features.autoPeak; + const boundary = { + maxY, + minY + }; + const shiftForFormatting = normalizeShiftForFormatting(shift); + const body = _app.FN.peaksBody({ + peaks, + layout: safeLayout, + decimal, + shift: shiftForFormatting, + isAscend, + isIntensity, + boundary, + waveLength, + temperature, + hplcMsSt: _app.store.getState().hplcMs + }); + /*eslint-disable */ + let message = `Peaks: ${body}\n`; + if (shift?.ref?.label) { + const label = this.rmDollarSign(shift.ref.label); + message += '- - - - - - - - - - -\n'; + message += `Shift solvent = ${label}, ${shift.ref.value}ppm\n`; + } + console.info(message); // eslint-disable-line no-console + this.setState({ + desc: message + }); + /*eslint-disable */ + } + predictOp({ + multiplicity, + curveSt + }) { + const { + curveIdx + } = curveSt; + const { + multiplicities + } = multiplicity; + const selectedMultiplicity = multiplicities[curveIdx]; + const { + stack, + shift + } = selectedMultiplicity; + const targets = stack.map(stk => { + const { + mpyType, + peaks + } = stk; + return _app.FN.CalcMpyCenter(peaks, shift, mpyType); + }); + // console.log(targets) + const { + molecule, + typ + } = this.state; + const predictions = { + running: true + }; + this.setState({ + predictions + }); + // simulate fetching... + const result = typ === 'ir' ? _ir_result.default : _nmr_result.default; + setTimeout(() => { + this.setState({ + predictions: result + }); + }, 2000); + } + updatInput(e) { + const molecule = e.target.value; + this.setState({ + molecule + }); + } + render() { + const { + desc, + predictions, + molecule, + typ + } = this.state; + const entity = this.loadEntity(); + const qDescVal = this.loadQuill(); + const multiEntities = this.loadMultiEntities(); + let operations = [{ + name: 'write peaks', + value: this.writePeak + }, { + name: 'save', + value: this.savePeaks + }].filter(r => r.value); + if (_app.FN.isNmrLayout(entity.layout)) { + operations = [{ + name: 'write multiplicity', + value: this.writeMpy + }, ...operations]; + } + const refreshCb = () => { + console.info('Refresh simulation requested.'); // eslint-disable-line no-console + }; + const forecast = { + btnCb: this.predictOp, + refreshCb, + inputCb: this.updatInput, + molecule: molecule, + predictions + }; + const molSvg = ['nmr 1h', 'ir', 'cyclic volta'].indexOf(typ) >= 0 ? _phenylalanin.default.path : ''; + const others = this.loadOthers(); + return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", { + style: { + width: Math.round(window.innerWidth * 0.96) + }, + children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("div", { + style: { + margin: '0 0 15px 55px' + }, + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Button, { + variant: "contained", + style: { + margin: '0 10px 0 10px' + }, + onClick: this.onClick('nmr 1h'), + children: "NMR 1H" + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Button, { + variant: "contained", + style: { + margin: '0 10px 0 10px' + }, + onClick: this.onClick('nmr 13c'), + children: "NMR 13C" + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Button, { + variant: "contained", + style: { + margin: '0 10px 0 10px' + }, + onClick: this.onClick('nmr 13c dept'), + children: "NMR 13C DEPT" + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Button, { + variant: "contained", + style: { + margin: '0 10px 0 10px' + }, + onClick: this.onClick('nmr 19f'), + children: "NMR 19F" + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Button, { + variant: "contained", + style: { + margin: '0 10px 0 10px' + }, + onClick: this.onClick('nmr 31p'), + children: "NMR 31P" + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Button, { + variant: "contained", + style: { + margin: '0 10px 0 10px' + }, + onClick: this.onClick('nmr 15n'), + children: "NMR 15N" + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Button, { + variant: "contained", + style: { + margin: '0 10px 0 10px' + }, + onClick: this.onClick('nmr 29si'), + children: "NMR 29Si" + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Button, { + variant: "contained", + style: { + margin: '0 10px 0 10px' + }, + onClick: this.onClick('ir'), + children: "IR" + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Button, { + variant: "contained", + style: { + margin: '0 10px 0 10px' + }, + onClick: this.onClick('raman'), + children: "RAMAN" + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Button, { + id: "btn-uv-vis", + variant: "contained", + style: { + margin: '0 10px 0 10px' + }, + onClick: this.onClick('uv/vis'), + children: "UV/VIS" + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Button, { + id: "btn-hplc", + variant: "contained", + style: { + margin: '0 10px 0 10px' + }, + onClick: this.onClick('hplc uv/vis'), + children: "HPLC UV/VIS" + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Button, { + id: "btn-tga", + variant: "contained", + style: { + margin: '0 10px 0 10px' + }, + onClick: this.onClick('tga'), + children: "TGA" + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Button, { + id: "btn-dsc", + variant: "contained", + style: { + margin: '0 10px 0 10px' + }, + onClick: this.onClick('dsc'), + children: "DSC" + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Button, { + id: "btn-xrd", + variant: "contained", + style: { + margin: '0 10px 0 10px' + }, + onClick: this.onClick('xrd'), + children: "XRD" + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Button, { + id: "btn-cv", + variant: "contained", + style: { + margin: '0 10px 0 10px' + }, + onClick: this.onClick('cyclic volta'), + children: "CV" + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Button, { + variant: "contained", + style: { + margin: '0 10px 0 10px' + }, + onClick: this.onClick('cds'), + children: "CDS" + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Button, { + id: "btn-sec", + variant: "contained", + style: { + margin: '0 10px 0 10px' + }, + onClick: this.onClick('sec'), + children: "SEC" + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Button, { + id: "btn-sec", + variant: "contained", + style: { + margin: '0 10px 0 10px' + }, + onClick: this.onClick('gc'), + children: "GC" + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Button, { + id: "btn-sod", + variant: "contained", + style: { + margin: '0 10px 0 10px' + }, + onClick: this.onClick('aif'), + children: "SORPTION-DESORPTION" + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Button, { + variant: "contained", + style: { + margin: '0 10px 0 10px' + }, + onClick: this.onClick('emissions'), + children: "EMISSIONS" + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Button, { + variant: "contained", + style: { + margin: '0 10px 0 10px' + }, + onClick: this.onClick('dls acf'), + children: "DLS ACF" + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Button, { + variant: "contained", + style: { + margin: '0 10px 0 10px' + }, + onClick: this.onClick('dls intensity'), + children: "DLS intensity" + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Button, { + variant: "contained", + style: { + margin: '0 10px 0 10px' + }, + onClick: this.onClick('ms'), + children: "MS" + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Button, { + variant: "contained", + style: { + margin: '0 10px 0 10px' + }, + onClick: this.onClick('lcms'), + children: "LC/MS OpenLab" + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Button, { + variant: "contained", + style: { + margin: '0 10px 0 10px' + }, + onClick: this.onClick('lcms chemstation'), + children: "LC/MS Chemstation" + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Button, { + variant: "contained", + style: { + margin: '0 10px 0 10px' + }, + onClick: this.onClick('multi'), + children: "Multi NMR" + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Button, { + variant: "contained", + style: { + margin: '0 10px 0 10px' + }, + onClick: this.onClick('multi ir'), + children: "Multi IR" + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Button, { + variant: "contained", + style: { + margin: '0 10px 0 10px' + }, + onClick: this.onClick('multi hplc'), + children: "Multi HPLC" + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Button, { + variant: "contained", + style: { + margin: '0 10px 0 10px' + }, + onClick: this.onClick('multi xrd'), + children: "Multi XRD" + })] + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_app.SpectraEditor, { + entity: entity, + multiEntities: multiEntities, + onLcmsPageRequest: this.handleLcmsPageRequest, + others: others, + editorOnly: false, + descriptions: desc, + canChangeDescription: true, + onDescriptionChanged: this.onDescriptionChanged, + molSvg: molSvg, + exactMass: '123.0', + userManualLink: { + cv: "https://www.chemotion.net/chemotionsaurus/docs/eln/chemspectra/cvanalysis" + }, + forecast: forecast, + operations: operations + }), /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", { + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("span", { + children: "Description Changed" + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactQuill.default, { + className: 'card-sv-quill', + value: this.state.descChanged, + modules: { + toolbar: false + }, + readOnly: true + })] + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Grid, { + container: true, + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Grid, { + item: true, + xs: 10, + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.InputBase, { + style: { + margin: '0 0 0 63px' + }, + placeholder: "Description", + multiline: true, + fullWidth: true, + rows: "2", + margin: "dense", + value: desc + }) + }) + })] + }); + } +} + +// - - - DOM - - - +_reactDom.default.render(/*#__PURE__*/(0, _jsxRuntime.jsx)(DemoWriteIr, {}), document.getElementById('root')); +if (typeof window !== 'undefined') { + window.__spectraStore = _app.store; + // eslint-disable-next-line no-underscore-dangle + window.__lcmsDemoRequests = []; +} \ No newline at end of file diff --git a/dist/layer_content.js b/dist/layer_content.js new file mode 100644 index 00000000..7192e375 --- /dev/null +++ b/dist/layer_content.js @@ -0,0 +1,118 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var _react = _interopRequireDefault(require("react")); +var _propTypes = _interopRequireDefault(require("prop-types")); +var _reactRedux = require("react-redux"); +var _redux = require("redux"); +var _index = _interopRequireDefault(require("./components/d3_line/index")); +var _index2 = _interopRequireDefault(require("./components/d3_rect/index")); +var _forecast_viewer = _interopRequireDefault(require("./components/forecast_viewer")); +var _format = _interopRequireDefault(require("./helpers/format")); +var _jsxRuntime = require("react/jsx-runtime"); +/* eslint-disable prefer-object-spread, default-param-last, react/function-component-definition */ + +const extractLayout = (forecast, layoutSt) => { + const safeForecast = forecast && typeof forecast === 'object' ? forecast : {}; + const isEmpty = Object.keys(safeForecast).length === 0 && safeForecast.constructor === Object; + const isNmr = _format.default.isNmrLayout(layoutSt); + const isMs = _format.default.isMsLayout(layoutSt); + const isLCMs = _format.default.isLCMsLayout(layoutSt); + const isIr = _format.default.isIrLayout(layoutSt); + const isUvvis = _format.default.isUvVisLayout(layoutSt) || _format.default.isHplcUvVisLayout(layoutSt); + const isXRD = _format.default.isXRDLayout(layoutSt); + const showForecast = !isEmpty && (isNmr || isIr || isUvvis || isXRD); + return { + showForecast, + isNmr, + isIr, + isMs, + isUvvis, + isXRD, + isLCMs + }; +}; +const Content = ({ + topic, + feature, + cLabel, + xLabel, + yLabel, + forecast, + operations, + layoutSt +}) => { + const { + showForecast, + isNmr, + isIr, + isMs, + isUvvis, + isXRD, + isLCMs + } = extractLayout(forecast, layoutSt); + if (showForecast) { + return /*#__PURE__*/(0, _jsxRuntime.jsx)(_forecast_viewer.default, { + topic: topic, + cLabel: cLabel, + xLabel: xLabel, + yLabel: yLabel, + feature: feature, + forecast: forecast, + isNmr: isNmr, + isIr: isIr, + isUvvis: isUvvis, + isXRD: isXRD, + operations: operations + }); + } + if (isMs) { + return /*#__PURE__*/(0, _jsxRuntime.jsx)(_index2.default, { + topic: topic, + cLabel: cLabel, + xLabel: xLabel, + yLabel: yLabel, + feature: feature, + isHidden: false + }); + } + if (isLCMs) { + return /*#__PURE__*/(0, _jsxRuntime.jsx)(_index2.default, { + topic: topic, + cLabel: cLabel, + xLabel: xLabel, + yLabel: yLabel, + feature: feature, + isHidden: false + }); + } + return /*#__PURE__*/(0, _jsxRuntime.jsx)(_index.default, { + topic: topic, + cLabel: cLabel, + xLabel: xLabel, + yLabel: yLabel, + feature: feature, + isHidden: false + }); +}; +const mapStateToProps = (state, _) => ( +// eslint-disable-line +{ + layoutSt: state.layout +}); +const mapDispatchToProps = dispatch => (0, _redux.bindActionCreators)({}, dispatch); +Content.propTypes = { + topic: _propTypes.default.object.isRequired, + feature: _propTypes.default.object.isRequired, + cLabel: _propTypes.default.string.isRequired, + xLabel: _propTypes.default.string.isRequired, + yLabel: _propTypes.default.string.isRequired, + forecast: _propTypes.default.object.isRequired, + operations: _propTypes.default.array.isRequired, + layoutSt: _propTypes.default.string.isRequired +}; +var _default = exports.default = (0, _redux.compose)((0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps))(Content); \ No newline at end of file diff --git a/dist/layer_init.js b/dist/layer_init.js new file mode 100644 index 00000000..ba5747f9 --- /dev/null +++ b/dist/layer_init.js @@ -0,0 +1,362 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var _react = _interopRequireDefault(require("react")); +var _propTypes = _interopRequireDefault(require("prop-types")); +var _reactRedux = require("react-redux"); +var _redux = require("redux"); +var _styles = require("@mui/styles"); +var _submit = require("./actions/submit"); +var _layout = require("./actions/layout"); +var _manager = require("./actions/manager"); +var _meta = require("./actions/meta"); +var _jcamp = require("./actions/jcamp"); +var _layer_prism = _interopRequireDefault(require("./layer_prism")); +var _format = _interopRequireDefault(require("./helpers/format")); +var _extractEntityLCMS = require("./helpers/extractEntityLCMS"); +var _multi_jcamps_viewer = _interopRequireDefault(require("./components/multi_jcamps_viewer")); +var _hplc_viewer = _interopRequireDefault(require("./components/hplc_viewer")); +var _curve = require("./actions/curve"); +var _hplc_ms = require("./actions/hplc_ms"); +var _jsxRuntime = require("react/jsx-runtime"); +/* eslint-disable prefer-object-spread, default-param-last */ + +const styles = () => ({}); +class LayerInit extends _react.default.Component { + static entitySignature(e) { + if (!e) return 'none'; + const id = e.idDt ?? e.id ?? e.datasetId; + if (id != null && id !== '') return `id:${id}`; + const firstFeature = (Array.isArray(e.features) ? e.features[0] : null) || (Array.isArray(e.spectra) ? e.spectra[0] : null) || null; + const data0 = firstFeature?.data?.[0]; + const xs = data0?.x; + const xLen = Array.isArray(xs) ? xs.length : 0; + const xHead = Array.isArray(xs) && xs.length > 0 ? xs[0] : ''; + const xTail = Array.isArray(xs) && xs.length > 0 ? xs[xs.length - 1] : ''; + return `sig:${e.layout || ''}|${e.title || ''}|${xLen}|${xHead}|${xTail}`; + } + constructor(props) { + super(props); + this.normChange = this.normChange.bind(this); + this.execReset = this.execReset.bind(this); + this.initReducer = this.initReducer.bind(this); + this.updateOthers = this.updateOthers.bind(this); + this.updateMultiEntities = this.updateMultiEntities.bind(this); + } + componentDidMount() { + this.execReset(); + this.initReducer(); + this.updateOthers(); + this.updateMultiEntities(); + } + componentDidUpdate(prevProps) { + const { + others, + multiEntities, + entity, + operations + } = this.props; + this.normChange(prevProps); + if (prevProps.operations !== operations || prevProps.entity !== entity) { + this.initReducer(); + } + if (prevProps.others !== others) { + this.updateOthers(); + } + if (prevProps.multiEntities !== multiEntities || prevProps.entity !== entity) { + this.updateMultiEntities(); + } + } + normChange(prevProps) { + const { + entity, + clearHplcMsStateAct + } = this.props; + if (prevProps.entity !== entity) { + const prevIsLcms = _format.default.isLCMsLayout(prevProps.entity?.layout); + const nextIsLcms = _format.default.isLCMsLayout(entity?.layout); + if (prevIsLcms || nextIsLcms) { + const prevSig = LayerInit.entitySignature(prevProps.entity); + const nextSig = LayerInit.entitySignature(entity); + if (prevSig !== nextSig) { + clearHplcMsStateAct(); + } + } + this.execReset(); + } + } + execReset() { + const { + entity, + updateMetaPeaksAct, + resetInitCommonAct, + resetInitMsAct, + resetInitNmrAct, + resetInitCommonWithIntergationAct, + resetDetectorAct, + updateDSCMetaDataAct, + resetMultiplicityAct, + updateLayoutAct + } = this.props; + if (!entity || !entity.layout) return; + resetInitCommonAct(); + resetDetectorAct(); + const { + layout, + features = {} + } = entity; + updateLayoutAct(layout); + if (_format.default.isMsLayout(layout)) { + // const { autoPeak, editPeak } = features; // TBD + const autoPeak = features.autoPeak || features[0]; + const editPeak = features.editPeak || features[0]; + const baseFeat = editPeak || autoPeak; + resetInitMsAct(baseFeat); + } else if (_format.default.isNmrLayout(layout)) { + const { + integration, + multiplicity, + simulation + } = features; + updateMetaPeaksAct(entity); + resetInitNmrAct({ + integration, + multiplicity, + simulation + }); + } else if (_format.default.isHplcUvVisLayout(layout)) { + const { + integration + } = features; + updateMetaPeaksAct(entity); + resetInitCommonWithIntergationAct({ + integration + }); + } else if (_format.default.isDSCLayout(layout)) { + const { + dscMetaData + } = features; + updateDSCMetaDataAct(dscMetaData); + } else { + resetMultiplicityAct(); + } + } + initReducer() { + const { + operations, + updateOperationAct + } = this.props; + if (Array.isArray(operations) && operations.length > 0) { + updateOperationAct(operations[0]); + } + } + updateOthers() { + const { + others, + addOthersAct + } = this.props; + if (others) { + addOthersAct(others); + } + } + updateMultiEntities() { + const { + multiEntities, + setAllCurvesAct, + entity + } = this.props; + if (!entity || !entity.layout) return; + const lcmsCurveMeta = () => { + const idDt = entity?.idDt ?? entity?.id ?? entity?.datasetId ?? null; + const lcmsUvvisWavelength = entity?.lcms_uvvis_wavelength ?? entity?.lcmsUvvisWavelength; + const uvvisFromMulti = Array.isArray(multiEntities) ? multiEntities.find(e => (0, _extractEntityLCMS.getLcMsInfo)(e).kind === 'uvvis') : null; + const lcmsMzPage = entity?.lcms_mz_page ?? entity?.lcmsMzPage ?? uvvisFromMulti?.lcms_mz_page ?? uvvisFromMulti?.lcmsMzPage; + const lcmsPolarity = entity?.lcms_polarity ?? entity?.lcmsPolarity ?? entity?.ticPolarity; + const out = {}; + if (idDt != null) out.idDt = idDt; + if (lcmsUvvisWavelength != null && lcmsUvvisWavelength !== '') { + out.lcmsUvvisWavelength = lcmsUvvisWavelength; + } + if (lcmsMzPage != null && lcmsMzPage !== '') { + out.lcmsMzPage = lcmsMzPage; + } + if (lcmsPolarity != null && lcmsPolarity !== '') { + out.lcmsPolarity = lcmsPolarity; + } + return Object.keys(out).length ? out : undefined; + }; + const isMultiSpectra = Array.isArray(multiEntities) && multiEntities.length > 1; + if (isMultiSpectra) { + const meta = _format.default.isLCMsLayout(entity.layout) ? lcmsCurveMeta() : undefined; + setAllCurvesAct(multiEntities, meta); + return; + } + if (_format.default.isLCMsLayout(entity.layout)) { + const payload = Array.isArray(multiEntities) && multiEntities.length > 0 ? multiEntities : [entity]; + setAllCurvesAct(payload, lcmsCurveMeta()); + return; + } + if (_format.default.isCyclicVoltaLayout(entity.layout)) { + const payload = Array.isArray(multiEntities) && multiEntities.length > 0 ? multiEntities : [entity]; + setAllCurvesAct(payload); + return; + } + setAllCurvesAct(false); + } + render() { + const { + entity, + cLabel, + xLabel, + yLabel, + forecast, + operations, + descriptions, + molSvg, + editorOnly, + exactMass, + canChangeDescription, + onDescriptionChanged, + multiEntities, + entityFileNames, + userManualLink, + onLcmsPageRequest + } = this.props; + const { + layout + } = entity; + const hasMultiEntities = Array.isArray(multiEntities) && multiEntities.length > 0; + const hasLcmsEntity = hasMultiEntities && multiEntities.some(multiEntity => _format.default.isLCMsLayout(multiEntity?.layout)); + const isDetectedLcmsGroup = hasLcmsEntity && (0, _extractEntityLCMS.isLcMsGroup)(multiEntities); + // For multi mode, trust multiEntities over single entity to avoid mixed-layout misrouting. + const isLcms = hasMultiEntities ? isDetectedLcmsGroup : _format.default.isLCMsLayout(layout); + const target = isLcms ? null : entity.spectra && Array.isArray(entity.spectra) && entity.spectra[0] || null; + const xxLabel = !xLabel && xLabel === '' && target && target.xUnit ? `X (${target.xUnit})` : xLabel; + const yyLabel = !yLabel && yLabel === '' && target && target.yUnit ? `Y (${target.yUnit})` : yLabel; + const isMultiSpectra = Array.isArray(multiEntities) && multiEntities.length > 1; + if (isLcms) { + return /*#__PURE__*/(0, _jsxRuntime.jsx)(_hplc_viewer.default, { + entityFileNames: entityFileNames, + userManualLink: userManualLink, + molSvg: molSvg, + forecast: forecast, + operations: operations, + descriptions: descriptions, + canChangeDescription: canChangeDescription, + onDescriptionChanged: onDescriptionChanged, + editorOnly: editorOnly, + onLcmsPageRequest: onLcmsPageRequest + }); + } + if (isMultiSpectra) { + return /*#__PURE__*/(0, _jsxRuntime.jsx)(_multi_jcamps_viewer.default, { + multiEntities: multiEntities, + entityFileNames: entityFileNames, + userManualLink: userManualLink, + molSvg: molSvg, + exactMass: exactMass, + forecast: forecast, + editorOnly: editorOnly, + operations: operations, + descriptions: descriptions, + canChangeDescription: canChangeDescription, + onDescriptionChanged: onDescriptionChanged + }); + } else if (_format.default.isCyclicVoltaLayout(layout)) { + // eslint-disable-line + return /*#__PURE__*/(0, _jsxRuntime.jsx)(_multi_jcamps_viewer.default, { + multiEntities: [entity], + entityFileNames: entityFileNames, + userManualLink: userManualLink, + molSvg: molSvg, + exactMass: exactMass, + forecast: forecast, + editorOnly: editorOnly, + operations: operations, + descriptions: descriptions, + canChangeDescription: canChangeDescription, + onDescriptionChanged: onDescriptionChanged + }); + } + return /*#__PURE__*/(0, _jsxRuntime.jsx)(_layer_prism.default, { + entity: entity, + cLabel: cLabel, + xLabel: xxLabel, + yLabel: yyLabel, + forecast: forecast, + operations: operations, + descriptions: descriptions, + molSvg: molSvg, + editorOnly: editorOnly, + exactMass: exactMass, + entityFileNames: entityFileNames, + userManualLink: userManualLink, + canChangeDescription: canChangeDescription, + onDescriptionChanged: onDescriptionChanged + }); + } +} +const mapStateToProps = (state, props) => ( +// eslint-disable-line +{}); +const mapDispatchToProps = dispatch => (0, _redux.bindActionCreators)({ + resetInitCommonAct: _manager.resetInitCommon, + resetInitNmrAct: _manager.resetInitNmr, + resetInitMsAct: _manager.resetInitMs, + resetInitCommonWithIntergationAct: _manager.resetInitCommonWithIntergation, + resetDetectorAct: _manager.resetDetector, + resetMultiplicityAct: _manager.resetMultiplicity, + updateOperationAct: _submit.updateOperation, + updateLayoutAct: _layout.updateLayout, + updateMetaPeaksAct: _meta.updateMetaPeaks, + addOthersAct: _jcamp.addOthers, + setAllCurvesAct: _curve.setAllCurves, + updateDSCMetaDataAct: _meta.updateDSCMetaData, + clearHplcMsStateAct: _hplc_ms.clearHplcMsState +}, dispatch); +LayerInit.propTypes = { + entity: _propTypes.default.object.isRequired, + multiEntities: _propTypes.default.array, + // eslint-disable-line + entityFileNames: _propTypes.default.array, + // eslint-disable-line + others: _propTypes.default.object.isRequired, + cLabel: _propTypes.default.string.isRequired, + xLabel: _propTypes.default.string.isRequired, + yLabel: _propTypes.default.string.isRequired, + molSvg: _propTypes.default.string.isRequired, + editorOnly: _propTypes.default.bool.isRequired, + exactMass: _propTypes.default.string.isRequired, + forecast: _propTypes.default.object.isRequired, + operations: _propTypes.default.array.isRequired, + descriptions: _propTypes.default.array.isRequired, + resetInitCommonAct: _propTypes.default.func.isRequired, + resetInitNmrAct: _propTypes.default.func.isRequired, + resetInitMsAct: _propTypes.default.func.isRequired, + resetInitCommonWithIntergationAct: _propTypes.default.func.isRequired, + updateOperationAct: _propTypes.default.func.isRequired, + updateLayoutAct: _propTypes.default.func.isRequired, + updateMetaPeaksAct: _propTypes.default.func.isRequired, + addOthersAct: _propTypes.default.func.isRequired, + canChangeDescription: _propTypes.default.bool.isRequired, + onDescriptionChanged: _propTypes.default.func, + // eslint-disable-line + onLcmsPageRequest: _propTypes.default.func, + setAllCurvesAct: _propTypes.default.func.isRequired, + userManualLink: _propTypes.default.object, + // eslint-disable-line + resetDetectorAct: _propTypes.default.func.isRequired, + resetMultiplicityAct: _propTypes.default.func.isRequired, + updateDSCMetaDataAct: _propTypes.default.func.isRequired, + clearHplcMsStateAct: _propTypes.default.func.isRequired +}; +LayerInit.defaultProps = { + onLcmsPageRequest: null +}; +var _default = exports.default = (0, _reactRedux.connect)( +// eslint-disable-line +mapStateToProps, mapDispatchToProps)((0, _styles.withStyles)(styles)(LayerInit)); // eslint-disable-line \ No newline at end of file diff --git a/dist/layer_prism.js b/dist/layer_prism.js new file mode 100644 index 00000000..745cf7e7 --- /dev/null +++ b/dist/layer_prism.js @@ -0,0 +1,166 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var _react = _interopRequireDefault(require("react")); +var _propTypes = _interopRequireDefault(require("prop-types")); +var _reactRedux = require("react-redux"); +var _redux = require("redux"); +var _Grid = _interopRequireDefault(require("@mui/material/Grid")); +var _styles = require("@mui/styles"); +var _index = _interopRequireDefault(require("./components/panel/index")); +var _index2 = _interopRequireDefault(require("./components/cmd_bar/index")); +var _layer_content = _interopRequireDefault(require("./layer_content")); +var _list_ui = require("./constants/list_ui"); +var _extractParams = require("./helpers/extractParams"); +var _jsxRuntime = require("react/jsx-runtime"); +/* eslint-disable prefer-object-spread, default-param-last, +react/function-component-definition, react/require-default-props +*/ + +const styles = () => ({}); +const getThresholdState = state => { + const curveIdx = state?.curve?.curveIdx; + const thresholdList = state?.threshold?.list; + if (!Array.isArray(thresholdList)) return {}; + if (!Number.isInteger(curveIdx)) return thresholdList[0] || {}; + return thresholdList[curveIdx] || thresholdList[0] || {}; +}; +const LayerPrism = ({ + entity, + cLabel, + xLabel, + yLabel, + forecast, + operations, + descriptions, + molSvg, + editorOnly, + exactMass, + thresSt, + scanSt, + uiSt, + canChangeDescription, + onDescriptionChanged, + entityFileNames, + userManualLink +}) => { + const { + topic, + feature, + hasEdit, + integration, + features + } = (0, _extractParams.extractParams)(entity, thresSt, scanSt); + if (!topic) return null; + const { + viewer + } = uiSt; + if (viewer === _list_ui.LIST_UI_VIEWER_TYPE.ANALYSIS) { + return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", { + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_index2.default, { + feature: feature, + hasEdit: hasEdit, + forecast: forecast, + operations: operations, + editorOnly: editorOnly + }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", { + className: "react-spectrum-editor", + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Grid.default, { + container: true, + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Grid.default, { + item: true, + xs: 12, + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_layer_content.default, { + topic: topic, + feature: feature, + features: features || [], + cLabel: cLabel, + xLabel: xLabel, + yLabel: yLabel, + forecast: forecast, + operations: operations + }) + }) + }) + })] + }); + } + return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", { + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_index2.default, { + feature: feature, + hasEdit: hasEdit, + forecast: forecast, + operations: operations, + editorOnly: editorOnly + }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", { + className: "react-spectrum-editor", + children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Grid.default, { + container: true, + children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Grid.default, { + item: true, + xs: 9, + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_layer_content.default, { + topic: topic, + feature: feature, + features: features || [], + cLabel: cLabel, + xLabel: xLabel, + yLabel: yLabel, + forecast: forecast, + operations: operations + }) + }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Grid.default, { + item: true, + xs: 3, + align: "center", + children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_index.default, { + feature: feature, + integration: integration, + editorOnly: editorOnly, + molSvg: molSvg, + exactMass: exactMass, + entityFileNames: entityFileNames, + userManualLink: userManualLink, + descriptions: descriptions, + canChangeDescription: canChangeDescription, + onDescriptionChanged: onDescriptionChanged + }) + })] + }) + })] + }); +}; +const mapStateToProps = (state, props) => ( +// eslint-disable-line +{ + scanSt: state.scan, + thresSt: getThresholdState(state), + uiSt: state.ui +}); +const mapDispatchToProps = dispatch => (0, _redux.bindActionCreators)({}, dispatch); +LayerPrism.propTypes = { + entity: _propTypes.default.object.isRequired, + cLabel: _propTypes.default.string.isRequired, + xLabel: _propTypes.default.string.isRequired, + yLabel: _propTypes.default.string.isRequired, + molSvg: _propTypes.default.string.isRequired, + editorOnly: _propTypes.default.bool.isRequired, + exactMass: _propTypes.default.string, + forecast: _propTypes.default.object.isRequired, + operations: _propTypes.default.array.isRequired, + descriptions: _propTypes.default.array.isRequired, + thresSt: _propTypes.default.object.isRequired, + scanSt: _propTypes.default.object.isRequired, + uiSt: _propTypes.default.object.isRequired, + canChangeDescription: _propTypes.default.bool.isRequired, + onDescriptionChanged: _propTypes.default.func, + entityFileNames: _propTypes.default.array, + userManualLink: _propTypes.default.object +}; +var _default = exports.default = (0, _reactRedux.connect)( +// eslint-disable-line +mapStateToProps, mapDispatchToProps)((0, _styles.withStyles)(styles)(LayerPrism)); // eslint-disable-line \ No newline at end of file diff --git a/dist/reducers/index.js b/dist/reducers/index.js new file mode 100644 index 00000000..6217cadb --- /dev/null +++ b/dist/reducers/index.js @@ -0,0 +1,53 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var _redux = require("redux"); +var _reducer_threshold = _interopRequireDefault(require("./reducer_threshold")); +var _reducer_edit_peak = _interopRequireDefault(require("./reducer_edit_peak")); +var _reducer_status = _interopRequireDefault(require("./reducer_status")); +var _reducer_manager = _interopRequireDefault(require("./reducer_manager")); +var _reducer_layout = _interopRequireDefault(require("./reducer_layout")); +var _reducer_shift = _interopRequireDefault(require("./reducer_shift")); +var _reducer_scan = _interopRequireDefault(require("./reducer_scan")); +var _reducer_forecast = _interopRequireDefault(require("./reducer_forecast")); +var _reducer_ui = _interopRequireDefault(require("./reducer_ui")); +var _reducer_submit = _interopRequireDefault(require("./reducer_submit")); +var _reducer_integration = _interopRequireDefault(require("./reducer_integration")); +var _reducer_multiplicity = _interopRequireDefault(require("./reducer_multiplicity")); +var _reducer_simulation = _interopRequireDefault(require("./reducer_simulation")); +var _reducer_meta = _interopRequireDefault(require("./reducer_meta")); +var _reducer_jcamp = _interopRequireDefault(require("./reducer_jcamp")); +var _reducer_wavelength = _interopRequireDefault(require("./reducer_wavelength")); +var _reducer_voltammetry = _interopRequireDefault(require("./reducer_voltammetry")); +var _reducer_curve = _interopRequireDefault(require("./reducer_curve")); +var _reducer_axes = _interopRequireDefault(require("./reducer_axes")); +var _reducer_detector = _interopRequireDefault(require("./reducer_detector")); +var _reducer_hplc_ms = _interopRequireDefault(require("./reducer_hplc_ms")); +const rootReducer = (0, _redux.combineReducers)({ + threshold: _reducer_threshold.default, + editPeak: _reducer_edit_peak.default, + status: _reducer_status.default, + manager: _reducer_manager.default, + layout: _reducer_layout.default, + shift: _reducer_shift.default, + scan: _reducer_scan.default, + forecast: _reducer_forecast.default, + ui: _reducer_ui.default, + submit: _reducer_submit.default, + integration: _reducer_integration.default, + multiplicity: _reducer_multiplicity.default, + simulation: _reducer_simulation.default, + meta: _reducer_meta.default, + jcamp: _reducer_jcamp.default, + wavelength: _reducer_wavelength.default, + cyclicvolta: _reducer_voltammetry.default, + curve: _reducer_curve.default, + axesUnits: _reducer_axes.default, + detector: _reducer_detector.default, + hplcMs: _reducer_hplc_ms.default +}); +var _default = exports.default = rootReducer; \ No newline at end of file diff --git a/dist/reducers/reducer_axes.js b/dist/reducers/reducer_axes.js new file mode 100644 index 00000000..b9544a85 --- /dev/null +++ b/dist/reducers/reducer_axes.js @@ -0,0 +1,56 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var _action_type = require("../constants/action_type"); +/* eslint-disable default-param-last, prefer-object-spread */ + +const initialState = { + axes: [{ + xUnit: '', + yUnit: '' + }] +}; +const updateAxis = (state, payload, isYAxis = false) => { + const { + value, + curveIndex + } = payload; + const { + axes + } = state; + let selectedAxes = axes[curveIndex]; + if (!selectedAxes) { + selectedAxes = { + xUnit: '', + yUnit: '' + }; + } + let newAxes = null; + if (isYAxis) { + newAxes = Object.assign({}, selectedAxes, { + yUnit: value + }); + } else { + newAxes = Object.assign({}, selectedAxes, { + xUnit: value + }); + } + axes[curveIndex] = newAxes; + return Object.assign({}, state, { + axes + }); +}; +const axesReducer = (state = initialState, action) => { + switch (action.type) { + case _action_type.AXES.UPDATE_X_AXIS: + return updateAxis(state, action.payload); + case _action_type.AXES.UPDATE_Y_AXIS: + return updateAxis(state, action.payload, true); + default: + return state; + } +}; +var _default = exports.default = axesReducer; \ No newline at end of file diff --git a/dist/reducers/reducer_curve.js b/dist/reducers/reducer_curve.js new file mode 100644 index 00000000..50cf529c --- /dev/null +++ b/dist/reducers/reducer_curve.js @@ -0,0 +1,96 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var _action_type = require("../constants/action_type"); +var _extractParams = require("../helpers/extractParams"); +var _extractEntityLCMS = require("../helpers/extractEntityLCMS"); +var _list_layout = require("../constants/list_layout"); +var _chem = require("../helpers/chem"); +var _format = _interopRequireDefault(require("../helpers/format")); +/* eslint-disable prefer-object-spread, default-param-last, max-len */ + +const initialState = { + listCurves: [], + curveIdx: 0, + isShowAllCurve: false +}; +const setAllCurves = (state, action) => { + const { + payload + } = action; + if (!payload) return { + ...state, + curveIdx: 0, + listCurves: [] + }; + const isLcmsGroup = (0, _extractEntityLCMS.isLcMsGroup)(payload); + const entities = payload.map((entity, idx) => { + const lcmsInfo = (0, _extractEntityLCMS.getLcMsInfo)(entity); + const layout = isLcmsGroup && lcmsInfo.kind !== 'unknown' ? _list_layout.LIST_LAYOUT.LC_MS : entity.layout; + const extracted = (0, _extractParams.extractParams)(entity, { + isEdit: true + }, null, { + forceLcms: isLcmsGroup && lcmsInfo.kind !== 'unknown' + }); + const { + topic, + feature, + hasEdit, + integration, + multiplicity, + features, + entity: entityFromExtract, + spectra + } = extracted; + let finalFeatures = features; + if (!finalFeatures || Array.isArray(finalFeatures) && finalFeatures.length === 0) { + finalFeatures = entityFromExtract?.features || entity.features || []; + } + const maxminPeak = (0, _chem.Convert2MaxMinPeak)(layout, feature, 0); + const color = _format.default.mutiEntitiesColors(idx); + return { + layout, + lcmsKind: lcmsInfo.kind, + lcmsPolarity: lcmsInfo.polarity, + topic, + feature, + hasEdit, + integration, + multiplicity, + maxminPeak, + color, + curveIdx: idx, + features: finalFeatures, + entity: entityFromExtract || entity, + spectra: spectra || entity.spectra + }; + }); + const maxIdx = entities.length - 1; + const safeCurveIdx = Math.min(state.curveIdx || 0, maxIdx); + return { + ...state, + curveIdx: safeCurveIdx, + listCurves: entities + }; +}; +const curveReducer = (state = initialState, action) => { + switch (action.type) { + case _action_type.CURVE.SELECT_WORKING_CURVE: + return Object.assign({}, state, { + curveIdx: action.payload + }); + case _action_type.CURVE.SET_ALL_CURVES: + return setAllCurves(state, action); + case _action_type.CURVE.SET_SHOULD_SHOW_ALL_CURVES: + return Object.assign({}, state, { + isShowAllCurve: action.payload + }); + default: + return state; + } +}; +var _default = exports.default = curveReducer; \ No newline at end of file diff --git a/dist/reducers/reducer_detector.js b/dist/reducers/reducer_detector.js new file mode 100644 index 00000000..203cf350 --- /dev/null +++ b/dist/reducers/reducer_detector.js @@ -0,0 +1,50 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var _action_type = require("../constants/action_type"); +/* eslint-disable no-case-declarations */ +/* eslint-disable default-param-last */ + +const initialState = { + curves: [{ + curveIdx: 0, + selectedDetector: '' + }] +}; +const findCurveIndex = (curves, targetCurveIdx) => curves.findIndex(curve => curve.curveIdx === targetCurveIdx); +const updateOrAppendCurve = (curves, targetCurveIdx, newCurve) => { + const existingCurveIndex = findCurveIndex(curves, targetCurveIdx); + if (existingCurveIndex !== -1) { + return curves.map((curve, index) => index === existingCurveIndex ? { + ...curve, + ...newCurve + } : curve); + } + return [...curves, newCurve]; +}; +const detectorReducer = (state = initialState, action) => { + switch (action.type) { + case _action_type.SEC.UPDATE_DETECTOR: + const { + curveIdx, + selectedDetector + } = action.payload; + // eslint-disable-next-line max-len + const updatedCurves = updateOrAppendCurve(state.curves, curveIdx, { + curveIdx, + selectedDetector + }); + return { + ...state, + curves: updatedCurves + }; + case _action_type.MANAGER.RESET_DETECTOR: + return initialState; + default: + return state; + } +}; +var _default = exports.default = detectorReducer; \ No newline at end of file diff --git a/dist/reducers/reducer_edit_peak.js b/dist/reducers/reducer_edit_peak.js new file mode 100644 index 00000000..35d38bff --- /dev/null +++ b/dist/reducers/reducer_edit_peak.js @@ -0,0 +1,234 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.editPeakReducer = exports.default = void 0; +var _reduxUndo = _interopRequireDefault(require("redux-undo")); +var _action_type = require("../constants/action_type"); +var _undo_redo_config = require("./undo_redo_config"); +var _calc = require("../helpers/calc"); +/* eslint-disable prefer-object-spread, default-param-last */ + +const initialState = { + selectedIdx: 0, + peaks: [{ + prevOffset: 0, + pos: [], + neg: [] + }] +}; +const defaultEmptyPeaks = { + prevOffset: 0, + pos: [], + neg: [] +}; +const addToPos = (state, action) => { + const { + peaks + } = state; + const { + payload + } = action; + const { + dataToAdd, + curveIdx + } = payload; + let selectedEditPeaks = peaks[curveIdx]; + if (!selectedEditPeaks) { + selectedEditPeaks = defaultEmptyPeaks; + } + const oriPosState = selectedEditPeaks.pos; + const oriNegState = selectedEditPeaks.neg; + const idxN = oriNegState.findIndex(n => (0, _calc.almostEqual)(n.x, dataToAdd.x)); + if (idxN >= 0) { + // rm the peak from oriNegState if it is already deleted. + const neg = [...oriNegState.slice(0, idxN), ...oriNegState.slice(idxN + 1)]; + const newSelectedEditPeaks = Object.assign({}, selectedEditPeaks, { + neg + }); + const newPeaks = [...peaks]; + newPeaks[curveIdx] = newSelectedEditPeaks; + return Object.assign({}, state, { + peaks: newPeaks + }); + } + const idxP = oriPosState.findIndex(p => (0, _calc.almostEqual)(p.x, dataToAdd.x)); + if (idxP < 0) { + // add the peak + const pos = [...oriPosState, dataToAdd]; + const newSelectedEditPeaks = Object.assign({}, selectedEditPeaks, { + pos + }); + const newPeaks = [...peaks]; + newPeaks[curveIdx] = newSelectedEditPeaks; + return Object.assign({}, state, { + peaks: newPeaks, + selectedIdx: curveIdx + }); + } + return state; +}; +const rmFromPos = (state, action) => { + const { + selectedIdx, + peaks + } = state; + const selectedEditPeaks = peaks[selectedIdx]; + const oriPosState = selectedEditPeaks.pos; + const idx = oriPosState.findIndex(p => p.x === action.payload.x); + const pos = [...oriPosState.slice(0, idx), ...oriPosState.slice(idx + 1)]; + const newSelectedEditPeaks = Object.assign({}, selectedEditPeaks, { + pos + }); + const newPeaks = [...peaks]; + newPeaks[selectedIdx] = newSelectedEditPeaks; + return Object.assign({}, state, { + peaks: newPeaks + }); +}; +const addToNeg = (state, action) => { + const { + peaks + } = state; + const { + payload + } = action; + const { + dataToAdd, + curveIdx + } = payload; + let selectedEditPeaks = peaks[curveIdx]; + if (!selectedEditPeaks) { + selectedEditPeaks = defaultEmptyPeaks; + } + const oriPosState = selectedEditPeaks.pos; + const oriNegState = selectedEditPeaks.neg; + const idxP = oriPosState.findIndex(n => n.x === dataToAdd.x); + if (idxP >= 0) { + const pos = [...oriPosState.slice(0, idxP), ...oriPosState.slice(idxP + 1)]; + const newSelectedEditPeaks = Object.assign({}, selectedEditPeaks, { + pos + }); + const newPeaks = [...peaks]; + newPeaks[curveIdx] = newSelectedEditPeaks; + return Object.assign({}, state, { + peaks: newPeaks + }); + } + const idxN = oriNegState.findIndex(n => n.x === dataToAdd.x); + if (idxN < 0) { + const neg = [...oriNegState, dataToAdd]; + const newSelectedEditPeaks = Object.assign({}, selectedEditPeaks, { + neg + }); + const newPeaks = [...peaks]; + newPeaks[curveIdx] = newSelectedEditPeaks; + return Object.assign({}, state, { + peaks: newPeaks, + selectedIdx: curveIdx + }); + } + return state; +}; +const rmFromNeg = (state, action) => { + const { + selectedIdx, + peaks + } = state; + const selectedEditPeaks = peaks[selectedIdx]; + const oriNegState = selectedEditPeaks.neg; + const idx = oriNegState.findIndex(n => n.x === action.payload.x); + const neg = [...oriNegState.slice(0, idx), ...oriNegState.slice(idx + 1)]; + const newSelectedEditPeaks = Object.assign({}, selectedEditPeaks, { + neg + }); + const newPeaks = [...peaks]; + newPeaks[selectedIdx] = newSelectedEditPeaks; + return Object.assign({}, state, { + peaks: newPeaks + }); +}; +const processShift = (state, action) => { + const { + payload + } = action; + const { + curveIdx + } = action.payload; + const { + peaks + } = state; + let selectedEditPeaks = peaks[curveIdx]; + if (!selectedEditPeaks) { + selectedEditPeaks = defaultEmptyPeaks; + } + const { + pos, + neg, + prevOffset + } = payload; + const newSelectedEditPeaks = Object.assign({}, selectedEditPeaks, { + pos, + neg, + prevOffset + }); + const newPeaks = [...peaks]; + newPeaks[curveIdx] = newSelectedEditPeaks; + return Object.assign({}, state, { + peaks: newPeaks + }); +}; +const clearAllPeaks = (state, action) => { + const { + curveIdx, + dataPeaks + } = action.payload; + const { + peaks + } = state; + const selectedEditPeaks = peaks[curveIdx]; + const { + pos + } = selectedEditPeaks; + const newSelectedEditPeaks = Object.assign({}, selectedEditPeaks, { + pos: [], + neg: [...pos, ...dataPeaks] + }); + const newPeaks = [...peaks]; + newPeaks[curveIdx] = newSelectedEditPeaks; + return Object.assign({}, state, { + peaks: newPeaks + }); +}; +const editPeakReducer = (state = initialState, action) => { + switch (action.type) { + case _action_type.EDITPEAK.ADD_POSITIVE: + return addToPos(state, action); + case _action_type.EDITPEAK.ADD_NEGATIVE: + return addToNeg(state, action); + case _action_type.EDITPEAK.RM_POSITIVE: + return rmFromPos(state, action); + case _action_type.EDITPEAK.RM_NEGATIVE: + return rmFromNeg(state, action); + case _action_type.EDITPEAK.SHIFT: + return processShift(state, action); + case _action_type.EDITPEAK.CLEAR_ALL: + return clearAllPeaks(state, action); + case _action_type.MANAGER.RESETALL: + return { + selectedIdx: 0, + peaks: [{ + prevOffset: 0, + pos: [], + neg: [] + }] + }; + default: + return _undo_redo_config.undoRedoActions.indexOf(action.type) >= 0 ? Object.assign({}, state) : state; + } +}; +exports.editPeakReducer = editPeakReducer; +const undoableEditPeakReducer = (0, _reduxUndo.default)(editPeakReducer, _undo_redo_config.undoRedoConfig); +var _default = exports.default = undoableEditPeakReducer; \ No newline at end of file diff --git a/dist/reducers/reducer_forecast.js b/dist/reducers/reducer_forecast.js new file mode 100644 index 00000000..7dcb6c05 --- /dev/null +++ b/dist/reducers/reducer_forecast.js @@ -0,0 +1,120 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var _action_type = require("../constants/action_type"); +/* eslint-disable prefer-object-spread, default-param-last */ + +const initialState = { + predictions: { + outline: {}, + output: { + result: [] + } + } +}; +const updateIrResl = (stResl, plPred) => { + const { + sma, + identity, + value + } = plPred; + const { + svgs + } = stResl; + const prevFgs = stResl.fgs; + const nextVal = { + [`status${identity}`]: value + }; + const nextFgs = prevFgs.map(fg => { + if (fg.sma === sma) { + return Object.assign({}, fg, nextVal); + } + return fg; + }); + const nextResult = { + type: 'ir', + fgs: nextFgs, + svgs + }; + return nextResult; +}; +const updateIrStatus = (state, action) => { + const { + predictions + } = action.payload; + const { + outline, + output + } = state.predictions; + const stResl = output.result[0]; + const nextResl = updateIrResl(stResl, predictions); + return Object.assign({}, state, { + predictions: { + outline, + output: { + result: [nextResl] + } + } + }); +}; +const updateNmrResl = (stResl, plPred) => { + const { + idx, + atom, + identity, + value + } = plPred; + const preResult = stResl; + const nextShifts = preResult.shifts.map((s, index) => { + if (s.atom === atom && index === idx) { + return Object.assign({}, s, { + [`status${identity}`]: value + }); + } + return s; + }); + const nextResult = Object.assign({}, preResult, { + shifts: nextShifts + }); + return nextResult; +}; +const updateNmrStatus = (state, action) => { + const { + predictions + } = action.payload; + const { + outline, + output + } = state.predictions; + const stResl = output.result[0]; + const nextResl = updateNmrResl(stResl, predictions); + const newSt = Object.assign({}, state, { + predictions: { + outline, + output: { + result: [nextResl] + } + } + }); + return newSt; +}; +const forecastReducer = (state = initialState, action) => { + switch (action.type) { + case _action_type.FORECAST.INIT_STATUS: + if (!action.payload) return state; + return Object.assign({}, action.payload); + case _action_type.FORECAST.SET_IR_STATUS: + return updateIrStatus(state, action); + case _action_type.FORECAST.SET_NMR_STATUS: + return updateNmrStatus(state, action); + case _action_type.FORECAST.CLEAR_STATUS: + case _action_type.MANAGER.RESETALL: + return initialState; + default: + return state; + } +}; +var _default = exports.default = forecastReducer; \ No newline at end of file diff --git a/dist/reducers/reducer_hplc_ms/hydrate.js b/dist/reducers/reducer_hplc_ms/hydrate.js new file mode 100644 index 00000000..6730dc7c --- /dev/null +++ b/dist/reducers/reducer_hplc_ms/hydrate.js @@ -0,0 +1,307 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.updateLcmsData = void 0; +var _extractEntityLCMS = require("../../helpers/extractEntityLCMS"); +var _utils = require("./utils"); +var _persistence = require("./persistence"); +var _uvvis = require("./uvvis"); +/* eslint-disable prefer-object-spread, import/prefer-default-export */ + +const updateLcmsData = (state, action) => { + const { + payload, + meta: actionMeta + } = action; + if (!payload || payload.length === 0) return state; + const meta = actionMeta && typeof actionMeta === 'object' ? actionMeta : {}; + const normalizeFeatures = curve => { + if (Array.isArray(curve?.features)) return curve.features; + if (Array.isArray(curve?.spectra)) return curve.spectra; + if (curve?.feature) return [curve.feature]; + if (curve?.entity?.features) { + if (Array.isArray(curve.entity.features)) return curve.entity.features; + if (typeof curve.entity.features === 'object') { + return Object.values(curve.entity.features).filter(f => f?.data?.[0]); + } + } + if (curve?.features && typeof curve.features === 'object') { + return Object.values(curve.features).filter(f => f?.data?.[0]); + } + return []; + }; + const getFeaturePageValue = feature => { + const candidates = [feature?.pageValue, feature?.page, feature?.pageSymbol]; + for (let i = 0; i < candidates.length; i += 1) { + const raw = candidates[i]; + if (raw != null) { + if (typeof raw === 'number' && Number.isFinite(raw)) { + return raw; + } + const text = String(raw).split('\n')[0].trim(); + const match = text.match(/[-+]?\d*\.?\d+(?:[eE][-+]?\d+)?/); + if (match) { + const value = Number(match[0]); + if (Number.isFinite(value)) { + return value; + } + } + } + } + return null; + }; + let ticPosData = { + x: [], + y: [] + }; + let ticNegData = { + x: [], + y: [] + }; + let ticNeutralData = { + x: [], + y: [] + }; + let uvvisCurve = null; + const mzPosFeatures = []; + const mzNegFeatures = []; + const mzNeutralFeatures = []; + payload.forEach(curve => { + const { + kind, + polarity + } = (0, _extractEntityLCMS.getLcMsInfo)(curve); + const featuresArr = normalizeFeatures(curve); + if (kind === 'tic') { + const [feature] = featuresArr; + const featureData = feature?.data?.[0]; + if (!featureData || !featureData.x || featureData.x.length === 0) { + return; + } + if (polarity === 'negative') { + ticNegData = featureData; + } else if (polarity === 'positive') { + ticPosData = featureData; + } else { + ticNeutralData = featureData; + } + } else if (kind === 'uvvis') { + uvvisCurve = { + ...curve, + features: featuresArr + }; + } else if (kind === 'mz') { + if (featuresArr.length === 0) return; + if (polarity === 'negative') { + mzNegFeatures.push(...featuresArr); + } else if (polarity === 'positive') { + mzPosFeatures.push(...featuresArr); + } else { + mzNeutralFeatures.push(...featuresArr); + } + } + }); + if (!uvvisCurve || !uvvisCurve.features) return state; + const { + features + } = uvvisCurve; + const getPageValue = fe => { + let raw = fe.pageSymbol || fe.page || fe.pageValue; + if (typeof raw === 'string') { + raw = raw.split('\n')[0].trim(); + const match = raw.match(/[=:]\s*([0-9.+-]+)/); + if (match) { + const [, value] = match; + raw = value; + } else { + raw = raw.replace(/[^0-9.+-]/g, ''); + } + } + const value = parseFloat(raw); + return Number.isFinite(value) ? value : 0; + }; + const filteredFeatures = features.filter(fe => fe.data && fe.data[0] && fe.data[0].x && fe.data[0].x.length > 0 && fe.data[0].y && fe.data[0].y.length > 0); + const listWaveLength = filteredFeatures.map(fe => getPageValue(fe)); + const prevUvvis = state.uvvis || {}; + const nextDatasetKey = meta.idDt ?? meta.datasetId ?? state.lcmsDatasetKey ?? null; + const sameDatasetScope = nextDatasetKey === state.lcmsDatasetKey || nextDatasetKey == null && state.lcmsDatasetKey == null; + const prevSpectraById = (() => { + const map = new Map(); + if (!sameDatasetScope) return map; + const prevList = prevUvvis.spectraList || []; + const prevWls = prevUvvis.listWaveLength || []; + for (let i = 0; i < prevList.length; i += 1) { + const sp = prevList[i]; + if (!sp) continue; // eslint-disable-line no-continue + const wl = prevWls[i]; + const id = (0, _utils.normalizeSpectrumId)(wl ?? sp.pageValue); + map.set(id, sp); + } + return map; + })(); + const spectraList = filteredFeatures.map(fe => { + const pageValue = getPageValue(fe); + const id = (0, _utils.normalizeSpectrumId)(pageValue); + const fromServer = { + data: fe.data[0], + integrations: fe.integrations || [], + peaks: fe.peaks || [], + pageValue + }; + const prevSp = prevSpectraById.get(id); + if (!prevSp) { + return fromServer; + } + return { + ...fromServer, + data: fe.data[0], + integrations: JSON.parse(JSON.stringify(prevSp.integrations || [])), + peaks: (prevSp.peaks || []).map(p => ({ + ...p + })) + }; + }); + const normalizedNew = listWaveLength.map(w => (0, _utils.normalizeSpectrumId)(w)); + const metaWlHint = (0, _utils.readFiniteNumber)(meta.lcmsUvvisWavelength ?? meta.lcms_uvvis_wavelength); + const curveWlHint = (() => { + const c = uvvisCurve; + const v = (0, _utils.readFiniteNumber)(c?.lcms_uvvis_wavelength ?? c?.lcmsUvvisWavelength) ?? (0, _utils.readFiniteNumber)(c?.entity?.lcms_uvvis_wavelength ?? c?.entity?.lcmsUvvisWavelength); + return v; + })(); + let wavelengthIdx = 0; + let resolvedFromPrev = false; + if (prevUvvis.selectedWaveLength != null) { + const idx = normalizedNew.indexOf((0, _utils.normalizeSpectrumId)(prevUvvis.selectedWaveLength)); + if (idx >= 0) { + wavelengthIdx = idx; + resolvedFromPrev = true; + } + } + if (!resolvedFromPrev) { + const persistedWl = (0, _persistence.readPersistedLcmsUvvisWavelength)(nextDatasetKey); + const persistedLastWl = (0, _persistence.readPersistedLastLcmsUvvisWavelength)(); + const hinted = metaWlHint ?? curveWlHint ?? persistedWl ?? persistedLastWl ?? null; + if (hinted != null) { + const idx = normalizedNew.indexOf((0, _utils.normalizeSpectrumId)(hinted)); + if (idx >= 0) { + wavelengthIdx = idx; + } + } + } + const selectedWaveLength = listWaveLength[wavelengthIdx]; + const currentSpectrum = spectraList[wavelengthIdx]; + (0, _persistence.persistLcmsUvvisWavelength)(nextDatasetKey, selectedWaveLength); + const newUvvis = { + ...state.uvvis, + listWaveLength, + selectedWaveLength, + wavelengthIdx, + spectraList, + currentSpectrum + }; + const toMsPayload = fts => { + const peaks = []; + const pageValues = []; + fts.forEach(feature => { + const data = feature?.data?.[0] || {}; + const xValues = Array.isArray(data.x) ? data.x : []; + const yValues = Array.isArray(data.y) ? data.y : []; + const length = Math.min(xValues.length, yValues.length); + peaks.push(xValues.slice(0, length).map((x, i) => ({ + x, + y: yValues[i] || 0 + }))); + pageValues.push(getFeaturePageValue(feature)); + }); + return { + peaks, + pageValues + }; + }; + const available = { + positive: ticPosData?.x?.length > 0, + negative: ticNegData?.x?.length > 0, + neutral: ticNeutralData?.x?.length > 0 + }; + const preferredOrder = ['positive', 'negative', 'neutral']; + const fallbackPolarity = preferredOrder.find(pol => available[pol]) || 'positive'; + const readMetaPolarity = () => (0, _utils.normalizeHintPolarity)(meta.lcmsPolarity ?? meta.lcms_polarity ?? meta.ticPolarity); + const metaPol = readMetaPolarity(); + const persistedTicHints = (0, _persistence.readPersistedLcmsTicHints)(nextDatasetKey); + const selectedPolarity = (0, _utils.pickFirstAvailablePolarity)(available, [metaPol, (0, _utils.normalizeHintPolarity)(persistedTicHints?.polarity), state.tic?.polarity]) || fallbackPolarity; + const ticXsFor = pol => { + if (pol === 'negative') return ticNegData?.x; + if (pol === 'neutral') return ticNeutralData?.x; + return ticPosData?.x; + }; + const nextRtXs = ticXsFor(selectedPolarity) || []; + const rtHintFromMzCurve = pol => { + const c = payload.find(curve => { + const inf = (0, _extractEntityLCMS.getLcMsInfo)(curve); + return inf.kind === 'mz' && inf.polarity === pol; + }); + if (!c) return null; + return (0, _utils.readFiniteNumber)(c.lcms_mz_page ?? c.lcmsMzPage ?? c.entity?.lcms_mz_page ?? c.entity?.lcmsMzPage); + }; + const rtFromMzFeature = pol => { + const findIn = list => { + if (!Array.isArray(list)) return null; + for (let i = 0; i < list.length; i += 1) { + const v = getFeaturePageValue(list[i]); + if (Number.isFinite(v)) return v; + } + return null; + }; + if (pol === 'negative') return findIn(mzNegFeatures); + if (pol === 'neutral') return findIn(mzNeutralFeatures); + return findIn(mzPosFeatures); + }; + const metaRt = (0, _utils.readFiniteNumber)(meta.lcms_mz_page ?? meta.lcmsMzPage); + const curveRt = rtHintFromMzCurve(selectedPolarity); + const uvvisRtHint = (0, _utils.readFiniteNumber)(uvvisCurve?.lcms_mz_page ?? uvvisCurve?.lcmsMzPage ?? uvvisCurve?.entity?.lcms_mz_page ?? uvvisCurve?.entity?.lcmsMzPage); + const mzFeatureRt = rtFromMzFeature(selectedPolarity) ?? rtFromMzFeature('positive') ?? rtFromMzFeature('negative') ?? rtFromMzFeature('neutral'); + const fromHints = (0, _utils.pickFirstRtOnAxis)([metaRt, uvvisRtHint, curveRt], nextRtXs) ?? nextRtXs[0] ?? null; + const persistedMzPage = (0, _utils.readFiniteNumber)(persistedTicHints?.mzPage); + const prevPageFromState = sameDatasetScope ? (0, _utils.readFiniteNumber)(state.tic?.currentPageValue) : null; + let nextCurrentPageValue = fromHints; + const snappedState = (0, _utils.snapRtToAxis)(prevPageFromState, nextRtXs); + const snappedPersisted = (0, _utils.snapRtToAxis)(persistedMzPage, nextRtXs); + if (snappedState != null) { + nextCurrentPageValue = snappedState; + } else if (snappedPersisted != null) { + nextCurrentPageValue = snappedPersisted; + } + if (Number.isFinite(mzFeatureRt)) { + nextCurrentPageValue = mzFeatureRt; + } + const sameDataset = nextDatasetKey != null && state.lcmsDatasetKey != null && nextDatasetKey === state.lcmsDatasetKey; + return { + ...state, + lcmsDatasetKey: nextDatasetKey, + uvvis: newUvvis, + uvvisEditHistory: sameDataset ? state.uvvisEditHistory || (0, _uvvis.emptyUvvisHistory)() : (0, _uvvis.emptyUvvisHistory)(), + ms: { + positive: toMsPayload(mzPosFeatures), + negative: toMsPayload(mzNegFeatures), + neutral: toMsPayload(mzNeutralFeatures) + }, + tic: { + ...state.tic, + currentPageValue: nextCurrentPageValue, + polarity: selectedPolarity, + available, + positive: { + data: ticPosData + }, + negative: { + data: ticNegData + }, + neutral: { + data: ticNeutralData + } + } + }; +}; +exports.updateLcmsData = updateLcmsData; \ No newline at end of file diff --git a/dist/reducers/reducer_hplc_ms/index.js b/dist/reducers/reducer_hplc_ms/index.js new file mode 100644 index 00000000..7ec2a955 --- /dev/null +++ b/dist/reducers/reducer_hplc_ms/index.js @@ -0,0 +1,122 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.initialState = exports.default = void 0; +var _action_type = require("../../constants/action_type"); +var _utils = require("./utils"); +var _hydrate = require("./hydrate"); +var _uvvis = require("./uvvis"); +var _tic = require("./tic"); +/* eslint-disable default-param-last */ + +const initialState = exports.initialState = { + uvvis: { + listWaveLength: null, + selectedWaveLength: null, + wavelengthIdx: 0, + spectraList: [], + currentSpectrum: null + }, + ms: { + positive: { + peaks: [], + pageValues: [] + }, + negative: { + peaks: [], + pageValues: [] + }, + neutral: { + peaks: [], + pageValues: [] + } + }, + uvvisEditHistory: { + past: [], + future: [] + }, + tic: { + currentPageValue: null, + polarity: 'positive', + available: { + positive: false, + negative: false, + neutral: false + }, + positive: { + data: { + x: [], + y: [] + } + }, + negative: { + data: { + x: [], + y: [] + } + }, + neutral: { + data: { + x: [], + y: [] + } + } + }, + threshold: { + isEdit: false, + value: 5, + originalValue: 5 + }, + lcmsIntegrationsExport: 'percent', + lcmsDatasetKey: null, + layout: 'LC/MS' +}; +const clearState = state => ({ + ...initialState, + lcmsIntegrationsExport: state?.lcmsIntegrationsExport ?? initialState.lcmsIntegrationsExport +}); +const hplcMsReducer = (state = initialState, action) => { + switch (action.type) { + case _action_type.HPLC_MS.SET_LCMS_INTEGRATIONS_EXPORT: + { + const next = (0, _utils.normalizeLcmsIntegrationsExport)(action.payload?.lcmsIntegrationsExport); + return { + ...state, + lcmsIntegrationsExport: next + }; + } + case _action_type.CURVE.SET_ALL_CURVES: + return (0, _hydrate.updateLcmsData)(state, action); + case _action_type.HPLC_MS.UPDATE_UVVIS_WAVE_LENGTH: + return (0, _uvvis.updateWavelength)(state, action); + case _action_type.HPLC_MS.SELECT_TIC_CURVE: + return (0, _tic.updateTic)(state, action); + case _action_type.HPLC_MS.UPDATE_CURRENT_PAGE_VALUE: + return (0, _tic.updateCurrentPageValue)(state, action); + case _action_type.HPLC_MS.UVVIS_UNDO: + return (0, _uvvis.uvvisUndo)(state); + case _action_type.HPLC_MS.UVVIS_REDO: + return (0, _uvvis.uvvisRedo)(state); + case _action_type.HPLC_MS.UPDATE_HPLCMS_INTEGRATIONS: + return (0, _uvvis.updateHplcMsIntegrations)(state, action); + case _action_type.HPLC_MS.UPDATE_HPLCMS_PEAKS: + return (0, _uvvis.updateHplcMsPeaks)(state, action); + case _action_type.HPLC_MS.REMOVE_HPLCMS_PEAK: + return (0, _uvvis.removeHplcMsPeak)(state, action); + case _action_type.HPLC_MS.CLEAR_INTEGRATION_ALL_HPLCMS: + return (0, _uvvis.clearIntegrationAllHplcMs)(state, action); + case _action_type.THRESHOLD.UPDATE_VALUE: + return (0, _tic.updateThresholdValue)(state, action); + case _action_type.THRESHOLD.RESET_VALUE: + return (0, _tic.resetThresholdValue)(state); + case _action_type.HPLC_MS.CLEAR_ALL_PEAKS_HPLCMS: + return (0, _uvvis.clearAllPeaksHplcMs)(state, action); + case _action_type.HPLC_MS.CLEAR_STATE: + return clearState(state); + default: + return state; + } +}; +var _default = exports.default = hplcMsReducer; \ No newline at end of file diff --git a/dist/reducers/reducer_hplc_ms/persistence.js b/dist/reducers/reducer_hplc_ms/persistence.js new file mode 100644 index 00000000..4aa23bce --- /dev/null +++ b/dist/reducers/reducer_hplc_ms/persistence.js @@ -0,0 +1,74 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.readPersistedLcmsUvvisWavelength = exports.readPersistedLcmsTicHints = exports.readPersistedLastLcmsUvvisWavelength = exports.persistLcmsUvvisWavelength = exports.persistLcmsTicHints = void 0; +var _utils = require("./utils"); +const LC_WL_STORAGE_PREFIX = 'rsEditor.lcmsUvvisWl:'; +const LC_WL_GLOBAL_STORAGE_KEY = 'rsEditor.lcmsUvvisWl:last'; +const persistLcmsUvvisWavelength = (datasetKey, wavelength) => { + if (wavelength == null) return; + try { + const normalized = String((0, _utils.normalizeSpectrumId)(wavelength)); + sessionStorage.setItem(LC_WL_GLOBAL_STORAGE_KEY, normalized); + if (datasetKey != null) { + sessionStorage.setItem(`${LC_WL_STORAGE_PREFIX}${datasetKey}`, normalized); + } + } catch (_e) { + /* sessionStorage may be unavailable */ + } +}; +exports.persistLcmsUvvisWavelength = persistLcmsUvvisWavelength; +const readPersistedLcmsUvvisWavelength = datasetKey => { + if (datasetKey == null) return null; + try { + const raw = sessionStorage.getItem(`${LC_WL_STORAGE_PREFIX}${datasetKey}`); + if (raw == null || raw === '') return null; + const n = Number(raw); + return Number.isFinite(n) ? n : raw; + } catch (e) { + return null; + } +}; +exports.readPersistedLcmsUvvisWavelength = readPersistedLcmsUvvisWavelength; +const readPersistedLastLcmsUvvisWavelength = () => { + try { + const raw = sessionStorage.getItem(LC_WL_GLOBAL_STORAGE_KEY); + if (raw == null || raw === '') return null; + const n = Number(raw); + return Number.isFinite(n) ? n : raw; + } catch (e) { + return null; + } +}; +exports.readPersistedLastLcmsUvvisWavelength = readPersistedLastLcmsUvvisWavelength; +const LC_TIC_STORAGE_PREFIX = 'rsEditor.lcmsTic:'; +const persistLcmsTicHints = (datasetKey, partial) => { + if (datasetKey == null) return; + try { + const key = `${LC_TIC_STORAGE_PREFIX}${datasetKey}`; + let cur = {}; + const raw = sessionStorage.getItem(key); + if (raw) { + cur = JSON.parse(raw) || {}; + } + sessionStorage.setItem(key, JSON.stringify({ + ...cur, + ...partial + })); + } catch (_e) { + /* sessionStorage may be unavailable */ + } +}; +exports.persistLcmsTicHints = persistLcmsTicHints; +const readPersistedLcmsTicHints = datasetKey => { + if (datasetKey == null) return {}; + try { + const raw = sessionStorage.getItem(`${LC_TIC_STORAGE_PREFIX}${datasetKey}`); + return raw ? JSON.parse(raw) : {}; + } catch (e) { + return {}; + } +}; +exports.readPersistedLcmsTicHints = readPersistedLcmsTicHints; \ No newline at end of file diff --git a/dist/reducers/reducer_hplc_ms/tic.js b/dist/reducers/reducer_hplc_ms/tic.js new file mode 100644 index 00000000..e441fe94 --- /dev/null +++ b/dist/reducers/reducer_hplc_ms/tic.js @@ -0,0 +1,70 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.updateTic = exports.updateThresholdValue = exports.updateCurrentPageValue = exports.resetThresholdValue = void 0; +var _persistence = require("./persistence"); +/* eslint-disable prefer-object-spread */ + +const updateTic = (state, action) => { + const { + polarity + } = action.payload; + (0, _persistence.persistLcmsTicHints)(state.lcmsDatasetKey, { + polarity + }); + return { + ...state, + tic: { + ...state.tic, + polarity + } + }; +}; +exports.updateTic = updateTic; +const updateCurrentPageValue = (state, action) => { + const { + currentPageValue + } = action.payload || {}; + (0, _persistence.persistLcmsTicHints)(state.lcmsDatasetKey, { + mzPage: currentPageValue + }); + return { + ...state, + tic: { + ...state.tic, + currentPageValue + } + }; +}; +exports.updateCurrentPageValue = updateCurrentPageValue; +const updateThresholdValue = (state, action) => { + const { + payload + } = action; + if (payload) { + const { + value + } = payload; + return { + ...state, + threshold: { + isEdit: true, + value, + originalValue: state.threshold.originalValue ?? value + } + }; + } + return state; +}; +exports.updateThresholdValue = updateThresholdValue; +const resetThresholdValue = state => ({ + ...state, + threshold: { + isEdit: true, + value: state.threshold.originalValue, + originalValue: state.threshold.originalValue + } +}); +exports.resetThresholdValue = resetThresholdValue; \ No newline at end of file diff --git a/dist/reducers/reducer_hplc_ms/utils.js b/dist/reducers/reducer_hplc_ms/utils.js new file mode 100644 index 00000000..eacc12c7 --- /dev/null +++ b/dist/reducers/reducer_hplc_ms/utils.js @@ -0,0 +1,70 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.snapRtToAxis = exports.readFiniteNumber = exports.pickFirstRtOnAxis = exports.pickFirstAvailablePolarity = exports.normalizeSpectrumId = exports.normalizeLcmsIntegrationsExport = exports.normalizeHintPolarity = void 0; +const normalizeSpectrumId = value => { + if (value == null) return null; + const numericValue = Number(value); + if (Number.isFinite(numericValue)) return numericValue; + return String(value); +}; +exports.normalizeSpectrumId = normalizeSpectrumId; +const readFiniteNumber = v => { + if (v == null || v === '') return null; + const n = Number(v); + return Number.isFinite(n) ? n : null; +}; +exports.readFiniteNumber = readFiniteNumber; +const normalizeHintPolarity = v => { + if (v == null || v === '') return null; + if (v === 0 || v === '0') return 'positive'; + if (v === 1 || v === '1') return 'negative'; + if (v === 2 || v === '2') return 'neutral'; + const s = String(v).toLowerCase(); + if (s === 'positive' || s === 'pos') return 'positive'; + if (s === 'negative' || s === 'neg') return 'negative'; + if (s === 'neutral' || s === 'neu') return 'neutral'; + return null; +}; +exports.normalizeHintPolarity = normalizeHintPolarity; +const pickFirstAvailablePolarity = (available, candidates) => { + for (let i = 0; i < candidates.length; i += 1) { + const p = candidates[i]; + if (p && available[p]) return p; + } + return null; +}; +exports.pickFirstAvailablePolarity = pickFirstAvailablePolarity; +const pickFirstRtOnAxis = (candidates, xs) => { + if (!Array.isArray(xs) || xs.length === 0) return null; + for (let i = 0; i < candidates.length; i += 1) { + const r = candidates[i]; + if (Number.isFinite(r) && xs.some(x => Math.abs(x - r) < 1e-5)) { + return r; + } + } + return null; +}; + +/** Align an RT (e.g. user click) onto the TIC axis after a data refresh. */ +exports.pickFirstRtOnAxis = pickFirstRtOnAxis; +const snapRtToAxis = (rt, xs) => { + if (!Number.isFinite(rt) || !Array.isArray(xs) || xs.length === 0) return null; + const exact = xs.find(x => Math.abs(x - rt) < 1e-5); + if (exact !== undefined) return exact; + let best = xs[0]; + let bestD = Math.abs(xs[0] - rt); + for (let i = 1; i < xs.length; i += 1) { + const d = Math.abs(xs[i] - rt); + if (d < bestD) { + bestD = d; + best = xs[i]; + } + } + return best; +}; +exports.snapRtToAxis = snapRtToAxis; +const normalizeLcmsIntegrationsExport = value => ['percent', 'area', 'both'].includes(value) ? value : 'percent'; +exports.normalizeLcmsIntegrationsExport = normalizeLcmsIntegrationsExport; \ No newline at end of file diff --git a/dist/reducers/reducer_hplc_ms/uvvis.js b/dist/reducers/reducer_hplc_ms/uvvis.js new file mode 100644 index 00000000..88e290a9 --- /dev/null +++ b/dist/reducers/reducer_hplc_ms/uvvis.js @@ -0,0 +1,377 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.uvvisUndo = exports.uvvisRedo = exports.updateWavelength = exports.updateHplcMsPeaks = exports.updateHplcMsIntegrations = exports.removeHplcMsPeak = exports.recordUvvisEditBefore = exports.emptyUvvisHistory = exports.clearIntegrationAllHplcMs = exports.clearAllPeaksHplcMs = void 0; +var _integration = require("../../helpers/integration"); +var _utils = require("./utils"); +var _persistence = require("./persistence"); +/* eslint-disable prefer-object-spread, default-param-last */ + +const MAX_UVVIS_UNDO = 50; +const emptyUvvisHistory = () => ({ + past: [], + future: [] +}); +exports.emptyUvvisHistory = emptyUvvisHistory; +const captureUvvisEditSnapshot = state => { + const { + uvvis + } = state; + const { + spectraList = [], + selectedWaveLength, + wavelengthIdx + } = uvvis; + return { + selectedWaveLength, + wavelengthIdx, + spectraList: spectraList.map(sp => ({ + peaks: (sp.peaks || []).map(p => ({ + ...p + })), + integrations: JSON.parse(JSON.stringify(sp.integrations || [])) + })) + }; +}; +const restoreUvvisEditSnapshot = (state, snap) => { + const { + uvvis + } = state; + const newSpectraList = uvvis.spectraList.map((sp, i) => { + const p = snap.spectraList[i]; + if (!p) return sp; + return { + ...sp, + peaks: (p.peaks || []).map(x => ({ + ...x + })), + integrations: JSON.parse(JSON.stringify(p.integrations || [])) + }; + }); + const wlIdx = Number.isInteger(snap.wavelengthIdx) ? snap.wavelengthIdx : 0; + const safeIdx = wlIdx >= 0 && wlIdx < newSpectraList.length ? wlIdx : 0; + const currentSpectrum = newSpectraList[safeIdx] || null; + return { + ...state, + uvvis: { + ...uvvis, + selectedWaveLength: snap.selectedWaveLength, + wavelengthIdx: safeIdx, + spectraList: newSpectraList, + currentSpectrum + } + }; +}; +const recordUvvisEditBefore = state => { + const hist = state.uvvisEditHistory || emptyUvvisHistory(); + const snap = captureUvvisEditSnapshot(state); + const past = [...hist.past, snap].slice(-MAX_UVVIS_UNDO); + return { + ...state, + uvvisEditHistory: { + past, + future: [] + } + }; +}; +exports.recordUvvisEditBefore = recordUvvisEditBefore; +const uvvisUndo = state => { + const hist = state.uvvisEditHistory || emptyUvvisHistory(); + if (!hist.past.length) return state; + const past = [...hist.past]; + const prior = past.pop(); + const currentSnap = captureUvvisEditSnapshot(state); + const future = [currentSnap, ...hist.future]; + const restored = restoreUvvisEditSnapshot(state, prior); + return { + ...restored, + uvvisEditHistory: { + past, + future + } + }; +}; +exports.uvvisUndo = uvvisUndo; +const uvvisRedo = state => { + const hist = state.uvvisEditHistory || emptyUvvisHistory(); + if (!hist.future.length) return state; + const [next, ...restFuture] = hist.future; + const past = [...hist.past, captureUvvisEditSnapshot(state)].slice(-MAX_UVVIS_UNDO); + const restored = restoreUvvisEditSnapshot(state, next); + return { + ...restored, + uvvisEditHistory: { + past, + future: restFuture + } + }; +}; +exports.uvvisRedo = uvvisRedo; +const updateHplcMsPeaks = (state, action) => { + const { + spectrumId, + peaks + } = action.payload || {}; + const { + uvvis + } = state; + const { + spectraList = [], + listWaveLength = [] + } = uvvis; + const normalizedSpectrumId = (0, _utils.normalizeSpectrumId)(spectrumId); + const spectrumIndex = listWaveLength.map(waveLength => (0, _utils.normalizeSpectrumId)(waveLength)).indexOf(normalizedSpectrumId); + if (spectrumIndex === -1) return state; + const st = action.meta?.skipUvvisHistory ? state : recordUvvisEditBefore(state); + const newSpectraList = [...spectraList]; + const updatedSpectrum = { + ...newSpectraList[spectrumIndex], + peaks + }; + newSpectraList[spectrumIndex] = updatedSpectrum; + const newCurrentSpectrum = (0, _utils.normalizeSpectrumId)(uvvis.selectedWaveLength) === normalizedSpectrumId ? updatedSpectrum : uvvis.currentSpectrum; + return { + ...st, + uvvis: { + ...uvvis, + spectraList: newSpectraList, + currentSpectrum: newCurrentSpectrum + } + }; +}; +exports.updateHplcMsPeaks = updateHplcMsPeaks; +const updateWavelength = (state, action) => { + const { + payload + } = action; + if (payload?.target) { + const { + value + } = payload.target; + const { + uvvis + } = state; + const { + listWaveLength = [], + spectraList = [] + } = uvvis; + const normalizedValue = (0, _utils.normalizeSpectrumId)(value); + const normalizedWaveLengths = listWaveLength.map(waveLength => (0, _utils.normalizeSpectrumId)(waveLength)); + const wavelengthIdx = normalizedWaveLengths.indexOf(normalizedValue); + const currentSpectrum = spectraList.find((spectrum, index) => normalizedWaveLengths[index] === normalizedValue); + const next = { + ...state, + uvvis: { + ...uvvis, + selectedWaveLength: normalizedValue, + wavelengthIdx, + spectraList, + currentSpectrum + } + }; + (0, _persistence.persistLcmsUvvisWavelength)(state.lcmsDatasetKey, normalizedValue); + return next; + } + return state; +}; +exports.updateWavelength = updateWavelength; +const updateHplcMsIntegrations = (state, action) => { + const { + spectrumId, + integration, + remove, + shift = 0 + } = action.payload || {}; + const { + uvvis + } = state; + const { + spectraList = [], + listWaveLength = [] + } = uvvis; + const normalizedSpectrumId = (0, _utils.normalizeSpectrumId)(spectrumId); + const curveIdx = listWaveLength.map(waveLength => (0, _utils.normalizeSpectrumId)(waveLength)).indexOf(normalizedSpectrumId); + if (curveIdx === -1) { + return state; + } + const selectedSpectrum = spectraList[curveIdx]; + if (!selectedSpectrum) { + return state; + } + const getRange = intg => { + const xL = intg?.xExtent?.xL ?? intg?.xL; + const xU = intg?.xExtent?.xU ?? intg?.xU; + return { + xL, + xU + }; + }; + if (remove) { + const { + xL: rmXL, + xU: rmXU + } = getRange(integration); + if (rmXL == null || rmXU == null) return state; + const stRm = action.meta?.skipUvvisHistory ? state : recordUvvisEditBefore(state); + const uvRm = stRm.uvvis; + const spListRm = uvRm.spectraList; + const specRm = spListRm[curveIdx]; + const intRm = specRm.integrations || []; + const newIntegrations = intRm.filter(intg => { + const { + xL, + xU + } = getRange(intg); + if (xL == null || xU == null) return true; + return !(Math.abs(xL - rmXL) < 1e-6 && Math.abs(xU - rmXU) < 1e-6); + }); + const newSpectrum = { + ...specRm, + integrations: newIntegrations + }; + const newSpectraList = [...spListRm]; + newSpectraList[curveIdx] = newSpectrum; + return { + ...stRm, + uvvis: { + ...uvRm, + spectraList: newSpectraList, + currentSpectrum: (0, _utils.normalizeSpectrumId)(uvRm.selectedWaveLength) === normalizedSpectrumId ? newSpectrum : uvRm.currentSpectrum + } + }; + } + if (!integration) { + return state; + } + const { + xExtent, + data + } = integration; + if (!xExtent || !data || xExtent.xL == null || xExtent.xU == null || xExtent.xU === xExtent.xL) { + return state; + } + const stAdd = action.meta?.skipUvvisHistory ? state : recordUvvisEditBefore(state); + const uvAdd = stAdd.uvvis; + const spListAdd = uvAdd.spectraList; + const specAdd = spListAdd[curveIdx]; + const integrationsAdd = specAdd.integrations || []; + const { + xL, + xU + } = xExtent; + const area = (0, _integration.getArea)(xL, xU, data); + const absoluteArea = (0, _integration.getAbsoluteArea)(xL, xU, data); + const isFirst = integrationsAdd.length === 0; + const newIntegration = { + xL: xL + shift, + xU: xU + shift, + area, + absoluteArea, + refArea: isFirst ? area : integrationsAdd[0]?.refArea ?? area, + xExtent, + data + }; + const newIntegrations = [...integrationsAdd, newIntegration]; + const newSpectrum = { + ...specAdd, + integrations: newIntegrations + }; + const newSpectraList = [...spListAdd]; + newSpectraList[curveIdx] = newSpectrum; + return { + ...stAdd, + uvvis: { + ...uvAdd, + spectraList: newSpectraList, + currentSpectrum: (0, _utils.normalizeSpectrumId)(uvAdd.selectedWaveLength) === normalizedSpectrumId ? newSpectrum : uvAdd.currentSpectrum + } + }; +}; +exports.updateHplcMsIntegrations = updateHplcMsIntegrations; +const removeHplcMsPeak = (state, action) => { + const { + spectrumId, + peak + } = action.payload || {}; + const { + uvvis + } = state; + const { + spectraList = [], + listWaveLength = [] + } = uvvis; + const normalizedSpectrumId = (0, _utils.normalizeSpectrumId)(spectrumId); + const index = listWaveLength.map(waveLength => (0, _utils.normalizeSpectrumId)(waveLength)).indexOf(normalizedSpectrumId); + if (index === -1) return state; + const spectrum = spectraList[index]; + if (!spectrum || !Array.isArray(spectrum.peaks) || !peak) return state; + const stPk = action.meta?.skipUvvisHistory ? state : recordUvvisEditBefore(state); + const uvPk = stPk.uvvis; + const spListPk = uvPk.spectraList; + const spectrumPk = spListPk[index]; + const filteredPeaks = spectrumPk.peaks.filter(p => !(Math.abs(p.x - peak.x) < 1e-6 && Math.abs(p.y - peak.y) < 1e-6)); + const updatedSpectrum = { + ...spectrumPk, + peaks: filteredPeaks + }; + const updatedSpectraList = [...spListPk]; + updatedSpectraList[index] = updatedSpectrum; + return { + ...stPk, + uvvis: { + ...uvPk, + spectraList: updatedSpectraList, + currentSpectrum: (0, _utils.normalizeSpectrumId)(uvPk.selectedWaveLength) === normalizedSpectrumId ? updatedSpectrum : uvPk.currentSpectrum + } + }; +}; +exports.removeHplcMsPeak = removeHplcMsPeak; +const clearIntegrationAllHplcMs = (state, action = {}) => { + const { + uvvis + } = state; + if (!uvvis || !Array.isArray(uvvis.spectraList)) { + return state; + } + const stCl = action.meta?.skipUvvisHistory ? state : recordUvvisEditBefore(state); + const uvCl = stCl.uvvis; + const newSpectraList = uvCl.spectraList.map(spectrum => ({ + ...spectrum, + integrations: [] + })); + const newUvvis = { + ...uvCl, + spectraList: newSpectraList, + currentSpectrum: newSpectraList[uvCl.wavelengthIdx] || null + }; + return { + ...stCl, + uvvis: newUvvis + }; +}; +exports.clearIntegrationAllHplcMs = clearIntegrationAllHplcMs; +const clearAllPeaksHplcMs = (state, action = {}) => { + const { + uvvis + } = state; + if (!uvvis || !Array.isArray(uvvis.spectraList)) { + return state; + } + const stPkAll = action.meta?.skipUvvisHistory ? state : recordUvvisEditBefore(state); + const uvPkAll = stPkAll.uvvis; + const newSpectraList = uvPkAll.spectraList.map(spectrum => ({ + ...spectrum, + peaks: [] + })); + return { + ...stPkAll, + uvvis: { + ...uvPkAll, + spectraList: newSpectraList, + currentSpectrum: newSpectraList[uvPkAll.wavelengthIdx] || null + } + }; +}; +exports.clearAllPeaksHplcMs = clearAllPeaksHplcMs; \ No newline at end of file diff --git a/dist/reducers/reducer_integration.js b/dist/reducers/reducer_integration.js new file mode 100644 index 00000000..9d25b023 --- /dev/null +++ b/dist/reducers/reducer_integration.js @@ -0,0 +1,234 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var _reduxUndo = _interopRequireDefault(require("redux-undo")); +var _action_type = require("../constants/action_type"); +var _integration = require("../helpers/integration"); +var _undo_redo_config = require("./undo_redo_config"); +/* eslint-disable prefer-object-spread, default-param-last */ + +const initialState = { + selectedIdx: 0, + integrations: [{ + stack: [], + refArea: 1, + refFactor: 1, + shift: 0, + edited: false + }] +}; +const defaultEmptyIntegration = { + stack: [], + refArea: 1, + refFactor: 1, + shift: 0, + edited: false +}; +const addToStack = (state, action) => { + const { + newData, + curveIdx + } = action.payload; + const { + integrations + } = state; + let selectedIntegration = integrations[curveIdx]; + if (selectedIntegration === false || selectedIntegration === undefined) { + selectedIntegration = defaultEmptyIntegration; + } + const { + stack, + refArea, + shift + } = selectedIntegration; + const { + xExtent, + data + } = newData; + const { + xL, + xU + } = xExtent; + if (!xL || !xU || xU - xL === 0) { + return state; + } + const area = (0, _integration.getArea)(xL, xU, data); + const defaultRefArea = stack.length === 0 ? area : refArea; + const absoluteArea = (0, _integration.getAbsoluteArea)(xL, xU, data); // area depends on y baseline + const newStack = [...stack, { + xL: xL + shift, + xU: xU + shift, + area, + absoluteArea + }]; + const newIntegration = Object.assign({}, selectedIntegration, { + stack: newStack, + refArea: defaultRefArea + }); + const newArrIntegration = [...integrations]; + newArrIntegration[curveIdx] = newIntegration; + return Object.assign({}, state, { + integrations: newArrIntegration, + selectedIdx: curveIdx + }); +}; +const rmFromStack = (state, action) => { + const { + dataToRemove, + curveIdx + } = action.payload; + const { + xL, + xU, + xExtent + } = dataToRemove; + const { + integrations + } = state; + const selectedIntegration = integrations[curveIdx]; + const { + stack + } = selectedIntegration; + let [txL, txU] = [0, 0]; + if (xL && xU) { + // rm click integration + [txL, txU] = [xL, xU]; + } else if (xExtent) { + // rm click multiplicity + [txL, txU] = [xExtent.xL, xExtent.xU]; + } else { + return state; + } + const newStack = stack.filter(k => k.xL !== txL && k.xU !== txU); + const newIntegration = Object.assign({}, selectedIntegration, { + stack: newStack + }); + const newArrIntegration = [...integrations]; + newArrIntegration[curveIdx] = newIntegration; + return Object.assign({}, state, { + integrations: newArrIntegration, + selectedIdx: curveIdx + }); +}; +const setRef = (state, action) => { + const { + refData, + curveIdx + } = action.payload; + const { + integrations + } = state; + const selectedIntegration = integrations[curveIdx]; + const { + stack + } = selectedIntegration; + const { + xL, + xU + } = refData; + const ref = stack.filter(k => k.xL === xL && k.xU === xU)[0]; + if (!ref) { + return state; + } + const refArea = ref.area; + const newIntegration = Object.assign({}, selectedIntegration, { + refArea + }); + const newArrIntegration = [...integrations]; + newArrIntegration[curveIdx] = newIntegration; + return Object.assign({}, state, { + integrations: newArrIntegration, + selectedIdx: curveIdx + }); +}; +const setFkr = (state, action) => { + const { + payload + } = action; + const { + curveIdx, + factor + } = payload; + const { + integrations + } = state; + const selectedIntegration = integrations[curveIdx]; + const val = parseFloat(factor); + const refFactor = val < 0.01 ? 0.01 : val; + const newIntegration = Object.assign({}, selectedIntegration, { + refFactor + }); + const newArrIntegration = [...integrations]; + newArrIntegration[curveIdx] = newIntegration; + return Object.assign({}, state, { + integrations: newArrIntegration + }); +}; +const setShift = (state, action) => { + const { + selectedIdx, + integrations + } = state; + const selectedIntegration = integrations[selectedIdx]; + const shift = action.payload.prevOffset; + const newIntegration = Object.assign({}, selectedIntegration, { + shift + }); + const newArrIntegration = [...integrations]; + newArrIntegration[selectedIdx] = newIntegration; + return Object.assign({}, state, { + integrations: newArrIntegration + }); +}; +const resetAll = (state, action) => { + const newState = action.payload; + return Object.assign({}, state, newState); +}; +const clearAll = (state, action) => { + const { + payload + } = action; + const { + curveIdx + } = payload; + const { + integrations + } = state; + const newIntegration = Object.assign({}, defaultEmptyIntegration, { + edited: true + }); + const newArrIntegration = [...integrations]; + newArrIntegration[curveIdx] = newIntegration; + return Object.assign({}, state, { + integrations: newArrIntegration, + selectedIdx: curveIdx + }); +}; +const integrationReducer = (state = initialState, action) => { + switch (action.type) { + case _action_type.UI.SWEEP.SELECT_INTEGRATION: + return addToStack(state, action); + case _action_type.INTEGRATION.RM_ONE: + return rmFromStack(state, action); + case _action_type.INTEGRATION.SET_REF: + return setRef(state, action); + case _action_type.INTEGRATION.SET_FKR: + return setFkr(state, action); + case _action_type.INTEGRATION.RESET_ALL_RDC: + return resetAll(state, action); + case _action_type.INTEGRATION.CLEAR_ALL: + return clearAll(state, action); + case _action_type.EDITPEAK.SHIFT: + return setShift(state, action); + case _action_type.MANAGER.RESETALL: + return state; + default: + return _undo_redo_config.undoRedoActions.indexOf(action.type) >= 0 ? Object.assign({}, state) : state; + } +}; +const undoableIntegrationReducer = (0, _reduxUndo.default)(integrationReducer, _undo_redo_config.undoRedoConfig); +var _default = exports.default = undoableIntegrationReducer; \ No newline at end of file diff --git a/dist/reducers/reducer_jcamp.js b/dist/reducers/reducer_jcamp.js new file mode 100644 index 00000000..6c18ec0f --- /dev/null +++ b/dist/reducers/reducer_jcamp.js @@ -0,0 +1,99 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var _action_type = require("../constants/action_type"); +/* eslint-disable prefer-object-spread, default-param-last */ + +const initialState = { + selectedIdx: 0, + jcamps: [{ + others: [], + addOthersCb: false + }] +}; +const addOthers = (state, { + others, + addOthersCb +}) => { + const { + selectedIdx, + jcamps + } = state; + const selectedJcamp = jcamps[selectedIdx]; + if (selectedJcamp.others.length > 5) return state; + const decoOthers = others.map(o => Object.assign({}, o, { + show: true + })); + const newJcamp = Object.assign({}, selectedJcamp, { + others: [...decoOthers].slice(0, 5), + addOthersCb + }); + jcamps[selectedIdx] = newJcamp; + return Object.assign({}, state, { + jcamps + }); +}; +const rmOthersOne = (state, payload) => { + const { + selectedIdx, + jcamps + } = state; + const selectedJcamp = jcamps[selectedIdx]; + const idx = payload; + const { + others + } = selectedJcamp; + const nextOther = others.filter((_, i) => i !== idx); + const newJcamp = Object.assign({}, selectedJcamp, { + others: nextOther + }); + jcamps[selectedIdx] = newJcamp; + return Object.assign({}, state, { + jcamps + }); +}; +const toggleShow = (state, payload) => { + const { + selectedIdx, + jcamps + } = state; + const selectedJcamp = jcamps[selectedIdx]; + const idx = payload; + const { + others + } = selectedJcamp; + const nextOthers = others.map((o, i) => { + if (i !== idx) return o; + const currentShow = o.show; + return Object.assign({}, o, { + show: !currentShow + }); + }); + const newJcamp = Object.assign({}, selectedJcamp, { + others: nextOthers + }); + jcamps[selectedIdx] = newJcamp; + return Object.assign({}, state, { + jcamps + }); +}; +const layoutReducer = (state = initialState, action) => { + switch (action.type) { + case _action_type.JCAMP.ADD_OTHERS: + return addOthers(state, action.payload); + case _action_type.JCAMP.RM_OTHERS_ONE: + return rmOthersOne(state, action.payload); + case _action_type.JCAMP.TOGGLE_SHOW: + return toggleShow(state, action.payload); + case _action_type.JCAMP.CLEAR_ALL: + return initialState; + case _action_type.MANAGER.RESETALL: + return initialState; + default: + return state; + } +}; +var _default = exports.default = layoutReducer; \ No newline at end of file diff --git a/dist/reducers/reducer_layout.js b/dist/reducers/reducer_layout.js new file mode 100644 index 00000000..6b0db6e1 --- /dev/null +++ b/dist/reducers/reducer_layout.js @@ -0,0 +1,22 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var _action_type = require("../constants/action_type"); +var _list_layout = require("../constants/list_layout"); +/* eslint-disable prefer-object-spread, default-param-last */ + +const initialState = _list_layout.LIST_LAYOUT.C13; +const layoutReducer = (state = initialState, action) => { + switch (action.type) { + case _action_type.LAYOUT.UPDATE: + return action.payload; + case _action_type.MANAGER.RESETALL: + return action.payload?.operation?.layout || state; + default: + return state; + } +}; +var _default = exports.default = layoutReducer; \ No newline at end of file diff --git a/dist/reducers/reducer_manager.js b/dist/reducers/reducer_manager.js new file mode 100644 index 00000000..2de439dd --- /dev/null +++ b/dist/reducers/reducer_manager.js @@ -0,0 +1,17 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +/* eslint-disable prefer-object-spread, default-param-last */ +// import { MANAGER } from '../constants/action_type'; + +const initialState = {}; +const managerReducer = (state = initialState, action) => { + switch (action.type) { + default: + return state; + } +}; +var _default = exports.default = managerReducer; \ No newline at end of file diff --git a/dist/reducers/reducer_meta.js b/dist/reducers/reducer_meta.js new file mode 100644 index 00000000..3b92cb0e --- /dev/null +++ b/dist/reducers/reducer_meta.js @@ -0,0 +1,40 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var _action_type = require("../constants/action_type"); +/* eslint-disable prefer-object-spread, default-param-last */ + +const initialState = { + peaks: { + intervalL: null, + intervalR: null, + observeFrequency: null, + deltaX: null + }, + dscMetaData: { + meltingPoint: null, + tg: null + } +}; +const updateMetaData = (state, action) => { + const { + dscMetaData + } = action.payload; + return Object.assign({}, state, { + dscMetaData + }); +}; +const metaReducer = (state = initialState, action) => { + switch (action.type) { + case _action_type.META.UPDATE_PEAKS_RDC: + return Object.assign({}, state, action.payload); + case _action_type.META.UPDATE_META_DATA_RDC: + return updateMetaData(state, action); + default: + return state; + } +}; +var _default = exports.default = metaReducer; \ No newline at end of file diff --git a/dist/reducers/reducer_multiplicity.js b/dist/reducers/reducer_multiplicity.js new file mode 100644 index 00000000..651182e1 --- /dev/null +++ b/dist/reducers/reducer_multiplicity.js @@ -0,0 +1,199 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var _reduxUndo = _interopRequireDefault(require("redux-undo")); +var _action_type = require("../constants/action_type"); +var _undo_redo_config = require("./undo_redo_config"); +/* eslint-disable prefer-object-spread, default-param-last */ + +const initialState = { + selectedIdx: 0, + multiplicities: [{ + stack: [], + shift: 0, + smExtext: false, + edited: false + }] +}; +const defaultEmptyMultiplicity = { + stack: [], + shift: 0, + smExtext: false, + edited: false +}; +const setShift = (state, action) => { + const shift = action.payload.prevOffset; + const { + selectedIdx, + multiplicities + } = state; + const selectedMulti = multiplicities[selectedIdx]; + const newSelectedMulti = Object.assign({}, selectedMulti, { + shift + }); + const newMultiplicities = [...multiplicities]; + newMultiplicities[selectedIdx] = newSelectedMulti; + return Object.assign({}, state, { + multiplicities: newMultiplicities + }); +}; +const rmFromStack = (state, action) => { + const { + dataToRemove, + curveIdx + } = action.payload; + const { + multiplicities + } = state; + const selectedMulti = multiplicities[curveIdx]; + const { + stack + } = selectedMulti; + const { + xL, + xU, + xExtent + } = dataToRemove; + let [txL, txU] = [0, 0]; + if (xL && xU) { + // rm click integration + [txL, txU] = [xL, xU]; + } else if (xExtent) { + // rm click multiplicity + [txL, txU] = [xExtent.xL, xExtent.xU]; + } else { + return state; + } + const newStack = stack.filter(k => { + const [kxL, kxU] = [k.xExtent.xL, k.xExtent.xU]; + return kxL !== txL && kxU !== txU; + }); + const newSmExtext = newStack[0] ? newStack[0].xExtent : false; + const newSelectedMulti = Object.assign({}, selectedMulti, { + stack: newStack, + smExtext: newSmExtext + }); + const newMultiplicities = [...multiplicities]; + newMultiplicities[curveIdx] = newSelectedMulti; + return Object.assign({}, state, { + multiplicities: newMultiplicities, + selectedIdx: curveIdx + }); +}; +const updateMpyJ = (state, action) => { + const { + payload + } = action; + const { + xExtent, + value + } = payload; + if (!value && value !== '') return state; + const { + selectedIdx, + multiplicities + } = state; + const selectedMulti = multiplicities[selectedIdx]; + const { + stack + } = selectedMulti; + const regx = /[^0-9.,-]/g; + const js = value.replace(regx, '').split(',').map(j => parseFloat(j)).filter(j => j); + const newStack = stack.map(k => { + if (k.xExtent.xL === xExtent.xL && k.xExtent.xU === xExtent.xU) { + if (k.mpyType === 'm') return Object.assign({}, k, { + js: [] + }); + return Object.assign({}, k, { + js + }); + } + return k; + }); + const newSelectedMulti = Object.assign({}, selectedMulti, { + stack: newStack + }); + const newMultiplicities = [...multiplicities]; + newMultiplicities[selectedIdx] = newSelectedMulti; + return Object.assign({}, state, { + multiplicities: newMultiplicities + }); +}; +const clickMpyOne = (state, action) => { + const { + payload + } = action; + const { + curveIdx, + payloadData + } = payload; + const { + multiplicities + } = state; + const selectedMulti = multiplicities[curveIdx]; + const newSelectedMulti = Object.assign({}, selectedMulti, { + smExtext: payloadData + }); + const newMultiplicities = [...multiplicities]; + newMultiplicities[curveIdx] = newSelectedMulti; + return Object.assign({}, state, { + multiplicities: newMultiplicities, + selectedIdx: curveIdx + }); +}; +const clearAll = (state, action) => { + const { + payload + } = action; + const { + curveIdx + } = payload; + const { + multiplicities + } = state; + const newSelectedMulti = Object.assign({}, defaultEmptyMultiplicity, { + edited: true + }); + const newMultiplicities = [...multiplicities]; + newMultiplicities[curveIdx] = newSelectedMulti; + return Object.assign({}, state, { + multiplicities: newMultiplicities + }); +}; +const multiplicityReducer = (state = initialState, action) => { + switch (action.type) { + case _action_type.EDITPEAK.SHIFT: + return setShift(state, action); + case _action_type.INTEGRATION.RM_ONE: + return rmFromStack(state, action); + case _action_type.UI.SWEEP.SELECT_MULTIPLICITY_RDC: + case _action_type.MULTIPLICITY.PEAK_RM_BY_PANEL_RDC: + case _action_type.MULTIPLICITY.PEAK_RM_BY_UI_RDC: + case _action_type.MULTIPLICITY.PEAK_ADD_BY_UI_RDC: + case _action_type.MULTIPLICITY.RESET_ONE_RDC: + return action.payload; + case _action_type.MULTIPLICITY.UPDATE_J: + return updateMpyJ(state, action); + case _action_type.MULTIPLICITY.TYPE_SELECT_RDC: + return action.payload; + case _action_type.MULTIPLICITY.ONE_CLICK: + case _action_type.MULTIPLICITY.ONE_CLICK_BY_UI: + return clickMpyOne(state, action); + case _action_type.MULTIPLICITY.RESET_ALL_RDC: + return action.payload; + case _action_type.MULTIPLICITY.CLEAR_ALL: + return clearAll(state, action); + case _action_type.MANAGER.RESETALL: + return state; + case _action_type.MANAGER.RESET_MULTIPLICITY: + return initialState; + default: + return _undo_redo_config.undoRedoActions.indexOf(action.type) >= 0 ? Object.assign({}, state) : state; + } +}; +const undoableMultiplicityReducer = (0, _reduxUndo.default)(multiplicityReducer, _undo_redo_config.undoRedoConfig); +var _default = exports.default = undoableMultiplicityReducer; \ No newline at end of file diff --git a/dist/reducers/reducer_scan.js b/dist/reducers/reducer_scan.js new file mode 100644 index 00000000..99fe706b --- /dev/null +++ b/dist/reducers/reducer_scan.js @@ -0,0 +1,46 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var _action_type = require("../constants/action_type"); +/* eslint-disable prefer-object-spread, default-param-last */ + +const initialState = { + target: false, + count: 1, + isAuto: true +}; +const setTarget = (state, payload) => Object.assign({}, state, { + target: payload +}); +const resetAll = (state, payload) => { + const { + scanCount, + scanEditTarget + } = payload; + return Object.assign({}, state, { + target: false, + count: parseInt(scanCount, 10), + isAuto: !scanEditTarget + }); +}; +const toggleIsAuto = state => Object.assign({}, state, { + isAuto: !state.isAuto, + target: false +}); +const scanReducer = (state = initialState, action) => { + switch (action.type) { + case _action_type.SCAN.SET_TARGET: + case _action_type.SCAN.RESET_TARGET: + return setTarget(state, action.payload); + case _action_type.SCAN.TOGGLE_ISAUTO: + return toggleIsAuto(state); + case _action_type.MANAGER.RESET_INIT_MS: + return resetAll(state, action.payload); + default: + return state; + } +}; +var _default = exports.default = scanReducer; \ No newline at end of file diff --git a/dist/reducers/reducer_shift.js b/dist/reducers/reducer_shift.js new file mode 100644 index 00000000..310ac7d8 --- /dev/null +++ b/dist/reducers/reducer_shift.js @@ -0,0 +1,245 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var _action_type = require("../constants/action_type"); +var _list_shift = require("../constants/list_shift"); +var _shift = require("../helpers/shift"); +/* eslint-disable prefer-object-spread, default-param-last */ + +const shiftNone = _list_shift.LIST_SHIFT_1H[0]; +const normalizeShiftName = input => (input || '').toString().normalize('NFKD').replace(/[^a-z0-9]+/gi, '').toLowerCase(); + +// const initialState = { +// ref: shiftNone, +// peak: false, +// enable: true, +// }; + +const initialState = { + selectedIdx: 0, + shifts: [{ + ref: shiftNone, + peak: false, + enable: true + }] +}; +const defaultEmptyShift = { + ref: shiftNone, + peak: false, + enable: true +}; +const resetRef = payload => { + const { + shift, + layout + } = payload; + if (!shift || !shift.solventName || !shift.solventValue) return shiftNone; + const name = shift.solventName; + const normalizedName = normalizeShiftName(name); + let target = false; + const listShift = (0, _list_shift.getListShift)(layout); + listShift.forEach(l => { + if (normalizeShiftName(l.name) === normalizedName) { + target = l; + } + }); + return target || shiftNone[0]; +}; +const resetEnable = payload => { + const { + typ + } = payload.operation; + switch (typ) { + case 'NMR': + return true; + default: + return false; + } +}; +const resetShift = (state, action) => { + const { + payload + } = action; + const { + curvesInfo + } = payload; + const { + isMultiCurve, + curveIdx, + numberOfCurve + } = curvesInfo; + const { + shifts + } = state; + let selectedShift = shifts[curveIdx]; + if (selectedShift === false || selectedShift === undefined) { + selectedShift = defaultEmptyShift; + } + if (isMultiCurve) { + for (let idx = 0; idx < numberOfCurve; idx += 1) { + const checkShift = shifts[idx]; + if (!checkShift) { + shifts[idx] = defaultEmptyShift; + } + } + } + const newShift = Object.assign({}, defaultEmptyShift, { + ref: resetRef(payload), + enable: resetEnable(payload) + }); + shifts[curveIdx] = newShift; + return Object.assign({}, state, { + shifts, + selectedIdx: curveIdx + }); +}; +const updateShift = (state, action) => { + // eslint-disable-line + const { + selectedIdx, + shifts + } = state; + let selectedShift = shifts[selectedIdx]; + if (selectedShift === false || selectedShift === undefined) { + selectedShift = defaultEmptyShift; + } + const newShift = Object.assign({}, selectedShift, { + ref: false, + enable: selectedShift.enable + }); + shifts[selectedIdx] = newShift; + return Object.assign({}, state, { + shifts, + selectedIdx + }); +}; +const setRef = (state, action) => { + const { + payload + } = action; + const { + dataToSet, + curveIdx + } = payload; + const { + shifts + } = state; + let selectedShift = shifts[curveIdx]; + if (selectedShift === false || selectedShift === undefined) { + selectedShift = defaultEmptyShift; + } + const newShift = Object.assign({}, selectedShift, { + ref: dataToSet, + enable: true + }); + shifts[curveIdx] = newShift; + return Object.assign({}, state, { + shifts, + selectedIdx: curveIdx + }); +}; +const setPeak = (state, action) => { + const { + payload + } = action; + const { + dataToSet, + curveIdx + } = payload; + const { + shifts + } = state; + let selectedShift = shifts[curveIdx]; + if (selectedShift === false || selectedShift === undefined) { + selectedShift = defaultEmptyShift; + } + const resX = (0, _shift.CalcResidualX)(selectedShift.ref, selectedShift.peak, dataToSet); + const trueApex = (0, _shift.RealPts)([dataToSet], resX)[0]; + const isSamePt = selectedShift.peak.x === trueApex.x; + const truePeak = trueApex && trueApex.x && !isSamePt ? trueApex : false; + const newShift = Object.assign({}, selectedShift, { + peak: truePeak, + enable: true + }); + shifts[curveIdx] = newShift; + return Object.assign({}, state, { + shifts, + selectedIdx: curveIdx + }); +}; +const removePeak = (state, action) => { + // eslint-disable-line + const { + selectedIdx, + shifts + } = state; + let selectedShift = shifts[selectedIdx]; + if (selectedShift === false || selectedShift === undefined) { + selectedShift = defaultEmptyShift; + } + const newShift = Object.assign({}, selectedShift, { + peak: false, + enable: true + }); + shifts[selectedIdx] = newShift; + return Object.assign({}, state, { + shifts, + selectedIdx + }); +}; +const addNegative = (state, action) => { + const { + payload + } = action; + const { + dataToAdd, + curveIdx + } = payload; + const { + shifts + } = state; + let selectedShift = shifts[curveIdx]; + if (selectedShift === false || selectedShift === undefined) { + selectedShift = defaultEmptyShift; + } + const rmApex = selectedShift.peak.x === dataToAdd.x; + if (!rmApex) { + return state; + } + const newShift = Object.assign({}, selectedShift, { + peak: false, + enable: true + }); + shifts[curveIdx] = newShift; + return Object.assign({}, state, { + shifts, + selectedIdx: curveIdx + }); +}; +const shiftReducer = (state = initialState, action) => { + switch (action.type) { + case _action_type.SHIFT.SET_REF: + return setRef(state, action); + case _action_type.SHIFT.SET_PEAK: + { + return setPeak(state, action); + } + case _action_type.SHIFT.RM_PEAK: + return removePeak(state, action); + case _action_type.EDITPEAK.ADD_NEGATIVE: + { + return addNegative(state, action); + } + case _action_type.LAYOUT.UPDATE: + return updateShift(initialState, action); + case _action_type.MANAGER.RESETSHIFT: + // case MANAGER.RESETALL: + return resetShift(initialState, action); + default: + return state; + } +}; +var _default = exports.default = shiftReducer; \ No newline at end of file diff --git a/dist/reducers/reducer_simulation.js b/dist/reducers/reducer_simulation.js new file mode 100644 index 00000000..81d0df10 --- /dev/null +++ b/dist/reducers/reducer_simulation.js @@ -0,0 +1,25 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var _action_type = require("../constants/action_type"); +/* eslint-disable prefer-object-spread, default-param-last */ + +const initialState = { + nmrSimPeaks: [] +}; +const resetAll = (state, action) => { + const newState = action.payload; + return Object.assign({}, state, newState); +}; +const simulatioinReducer = (state = initialState, action) => { + switch (action.type) { + case _action_type.SIMULATION.RESET_ALL_RDC: + return resetAll(state, action); + default: + return state; + } +}; +var _default = exports.default = simulatioinReducer; \ No newline at end of file diff --git a/dist/reducers/reducer_status.js b/dist/reducers/reducer_status.js new file mode 100644 index 00000000..e14b5f7c --- /dev/null +++ b/dist/reducers/reducer_status.js @@ -0,0 +1,45 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var _action_type = require("../constants/action_type"); +/* eslint-disable prefer-object-spread, default-param-last */ + +const initialState = { + btnSubmit: false +}; +const statusReducer = (state = initialState, action) => { + switch (action.type) { + case _action_type.STATUS.TOGGLEBTNSUBMIT: + return Object.assign({}, state, { + btnSubmit: false + } // !state.btnSubmit + ); + case _action_type.STATUS.TOGGLEBTNALL: + return Object.assign({}, state, { + btnSubmit: false + } // !state.btnSubmit + ); + case _action_type.STATUS.ENABLEBTNALL: + case _action_type.EDITPEAK.ADDPOSITIVE: + case _action_type.EDITPEAK.RMPOSITIVE: + case _action_type.EDITPEAK.ADDNEGATIVE: + case _action_type.EDITPEAK.RMNEGATIVE: + case _action_type.THRESHOLD.UPDATE_VALUE: + case _action_type.THRESHOLD.RESET_VALUE: + return Object.assign({}, state, { + btnSubmit: false + }); + case _action_type.LAYOUT.UPDATE: + return Object.assign({}, state, { + btnSubmit: false + }); + case _action_type.MANAGER.RESETALL: + return initialState; + default: + return initialState; + } +}; +var _default = exports.default = statusReducer; \ No newline at end of file diff --git a/dist/reducers/reducer_submit.js b/dist/reducers/reducer_submit.js new file mode 100644 index 00000000..7d166344 --- /dev/null +++ b/dist/reducers/reducer_submit.js @@ -0,0 +1,60 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var _action_type = require("../constants/action_type"); +var _format = _interopRequireDefault(require("../helpers/format")); +/* eslint-disable prefer-object-spread, default-param-last */ + +const initialState = { + isAscend: false, + isIntensity: true, + decimal: 2, + operation: { + name: 'empty' + } +}; +const updateOperation = action => ({ + operation: action.payload || initialState.operation +}); +const submitReducer = (state = initialState, action) => { + switch (action.type) { + case _action_type.SUBMIT.TOGGLE_IS_ASCEND: + return Object.assign({}, state, { + isAscend: !state.isAscend + }); + case _action_type.SUBMIT.TOGGLE_IS_INTENSITY: + return Object.assign({}, state, { + isIntensity: !state.isIntensity + }); + case _action_type.SUBMIT.UPDATE_OPERATION: + return Object.assign({}, state, updateOperation(action)); + case _action_type.SUBMIT.UPDATE_DECIMAL: + return Object.assign({}, state, { + decimal: action.payload.target.value + }); + case _action_type.LAYOUT.UPDATE: + { + const decimal = _format.default.spectraDigit(action.payload); + return Object.assign({}, state, { + decimal + }); + } + case _action_type.MANAGER.RESETALL: + { + const layout = action.payload?.operation?.layout; + const decimal = layout ? _format.default.spectraDigit(layout) : state.decimal; + return Object.assign({}, state, { + decimal, + isIntensity: true, + isAscend: false + }); + } + default: + return state; + } +}; +var _default = exports.default = submitReducer; \ No newline at end of file diff --git a/dist/reducers/reducer_threshold.js b/dist/reducers/reducer_threshold.js new file mode 100644 index 00000000..7fc7f727 --- /dev/null +++ b/dist/reducers/reducer_threshold.js @@ -0,0 +1,222 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var _action_type = require("../constants/action_type"); +/* eslint-disable prefer-object-spread, default-param-last */ + +const initialState = { + selectedIdx: 0, + list: [{ + isEdit: true, + value: false, + upper: false, + lower: false + }] +}; + +// const defaultThresHold = { +// isEdit: true, +// value: false, +// upper: false, +// lower: false, +// }; + +const setThresHoldValue = (state, action) => { + const { + payload + } = action; + const { + list, + selectedIdx + } = state; + if (payload) { + const { + value, + curveIdx + } = payload; + const selectedThres = list[curveIdx]; + const newSelectedThres = Object.assign({}, selectedThres, { + value + }); + const newListThres = [...list]; + newListThres[curveIdx] = newSelectedThres; + return Object.assign({}, state, { + list: newListThres, + selectedIdx: curveIdx + }); + } + const selectedThres = list[selectedIdx]; + const newSelectedThres = Object.assign({}, selectedThres, { + value: payload + }); + const newListThres = [...list]; + newListThres[selectedIdx] = newSelectedThres; + return Object.assign({}, state, { + list: newListThres + }); +}; +const setThresHoldUpper = (state, action) => { + const { + payload + } = action; + const { + list, + selectedIdx + } = state; + if (payload) { + const { + value, + curveIdx + } = payload; + const selectedThres = list[curveIdx]; + const newSelectedThres = Object.assign({}, selectedThres, { + upper: value + }); + const newListThres = [...list]; + newListThres[curveIdx] = newSelectedThres; + return Object.assign({}, state, { + list: newListThres, + selectedIdx: curveIdx + }); + } + const selectedThres = list[selectedIdx]; + const newSelectedThres = Object.assign({}, selectedThres, { + upper: payload + }); + const newListThres = [...list]; + newListThres[selectedIdx] = newSelectedThres; + return Object.assign({}, state, { + list: newListThres + }); +}; +const setThresHoldLower = (state, action) => { + const { + payload + } = action; + const { + list, + selectedIdx + } = state; + if (payload) { + const { + value, + curveIdx + } = payload; + const selectedThres = list[curveIdx]; + const newSelectedThres = Object.assign({}, selectedThres, { + lower: value + }); + const newListThres = [...list]; + newListThres[curveIdx] = newSelectedThres; + return Object.assign({}, state, { + list: newListThres, + selectedIdx: curveIdx + }); + } + const selectedThres = list[selectedIdx]; + const newSelectedThres = Object.assign({}, selectedThres, { + lower: payload + }); + const newListThres = [...list]; + newListThres[selectedIdx] = newSelectedThres; + return Object.assign({}, state, { + list: newListThres + }); +}; +const setThresHoldIsEdit = state => { + const { + list, + selectedIdx + } = state; + const selectedThres = list[selectedIdx]; + const { + isEdit + } = selectedThres; + const newSelectedThres = Object.assign({}, selectedThres, { + isEdit: !isEdit + }); + const newListThres = [...list]; + newListThres[selectedIdx] = newSelectedThres; + return Object.assign({}, state, { + list: newListThres + }); +}; +const resetAll = (state, action) => { + const { + payload + } = action; + const { + list + } = state; + const newList = list.map(item => ({ + isEdit: item.isEdit, + value: payload && payload.thresRef, + upper: item.upper, + lower: item.lower + })); + return Object.assign({}, state, { + selectedIdx: 0, + list: newList + }); +}; +const setListThreshold = (state, action) => { + const { + payload + } = action; + const { + list + } = state; + if (payload && payload.length > list.length) { + const newList = payload.map(() => ({ + isEdit: true, + value: false, + upper: false, + lower: false + })); + return Object.assign({}, state, { + list: newList + }); + } + return state; +}; +const resetInitCommon = state => { + const { + list + } = state; + const newList = list.map(item => ({ + isEdit: true, + value: item.value, + upper: item.upper, + lower: item.lower + })); + return Object.assign({}, state, { + selectedIdx: 0, + list: newList + }); +}; +const thresholdReducer = (state = initialState, action) => { + switch (action.type) { + case _action_type.CURVE.SET_ALL_CURVES: + return setListThreshold(state, action); + case _action_type.THRESHOLD.UPDATE_VALUE: + return setThresHoldValue(state, action); + case _action_type.THRESHOLD.UPDATE_UPPER_VALUE: + return setThresHoldUpper(state, action); + case _action_type.THRESHOLD.UPDATE_LOWER_VALUE: + return setThresHoldLower(state, action); + case _action_type.THRESHOLD.RESET_VALUE: + return setThresHoldValue(state, action); + case _action_type.THRESHOLD.TOGGLE_ISEDIT: + return setThresHoldIsEdit(state); + case _action_type.MANAGER.RESET_INIT_COMMON: + return resetInitCommon(state); + case _action_type.MANAGER.RESETALL: + return resetAll(state, action); + default: + return state; + } +}; +var _default = exports.default = thresholdReducer; \ No newline at end of file diff --git a/dist/reducers/reducer_ui.js b/dist/reducers/reducer_ui.js new file mode 100644 index 00000000..db00437d --- /dev/null +++ b/dist/reducers/reducer_ui.js @@ -0,0 +1,185 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var _action_type = require("../constants/action_type"); +var _list_ui = require("../constants/list_ui"); +/* eslint-disable prefer-object-spread, default-param-last */ + +const initialState = { + viewer: _list_ui.LIST_UI_VIEWER_TYPE.SPECTRUM, + sweepType: _list_ui.LIST_UI_SWEEP_TYPE.ZOOMIN, + sweepExtent: { + xExtent: false, + yExtent: false + }, + jcampIdx: 0, + subViewerAt: { + x: null, + y: null + }, + zoom: { + graphIndex: 0, + sweepExtent: [{ + xExtent: false, + yExtent: false + }, { + xExtent: false, + yExtent: false + }, { + xExtent: false, + yExtent: false + }], + sweepTypes: [_list_ui.LIST_UI_SWEEP_TYPE.ZOOMIN, _list_ui.LIST_UI_SWEEP_TYPE.ZOOMRESET, _list_ui.LIST_UI_SWEEP_TYPE.ZOOMRESET] + } +}; +const updateSweepType = (state, action) => { + const { + payload + } = action; + const { + graphIndex, + sweepType + } = payload; + if (!sweepType) { + return Object.assign({}, state, { + sweepType: action.payload, + jcampIdx: action.jcampIdx, + zoom: { + ...state.zoom, + sweepTypes: [_list_ui.LIST_UI_SWEEP_TYPE.ZOOMRESET, _list_ui.LIST_UI_SWEEP_TYPE.ZOOMRESET, _list_ui.LIST_UI_SWEEP_TYPE.ZOOMRESET] + } + }); + } + const { + zoom + } = state; + let newSweepTypes = zoom.sweepTypes.slice(); + if (sweepType === _list_ui.LIST_UI_SWEEP_TYPE.ZOOMIN) { + newSweepTypes = newSweepTypes.map((val, idx) => idx === graphIndex ? _list_ui.LIST_UI_SWEEP_TYPE.ZOOMIN : _list_ui.LIST_UI_SWEEP_TYPE.ZOOMRESET); + } else { + newSweepTypes = newSweepTypes.map(() => _list_ui.LIST_UI_SWEEP_TYPE.ZOOMRESET); + if (graphIndex !== undefined) { + newSweepTypes[graphIndex] = sweepType; + } + } + const newZoom = Object.assign({}, zoom, { + sweepTypes: newSweepTypes, + graphIndex + }); + return Object.assign({}, state, { + zoom: newZoom, + sweepType + }); +}; +const updateZoom = (state, action) => { + const { + payload + } = action; + const { + graphIndex, + zoomValue, + lcmsSyncX + } = payload; + if (!zoomValue) { + return Object.assign({}, state, { + sweepExtent: payload + }); + } + const { + zoom + } = state; + const sweepExtent = Array.isArray(zoom.sweepExtent) ? [...zoom.sweepExtent] : []; + const selectedGraph = sweepExtent[graphIndex]; + const newSweepExtent = Object.assign({}, selectedGraph, zoomValue); + sweepExtent[graphIndex] = newSweepExtent; + if (lcmsSyncX != null && zoomValue && zoomValue.xExtent) { + const otherIdx = lcmsSyncX; + const otherGraph = sweepExtent[otherIdx] || {}; + sweepExtent[otherIdx] = Object.assign({}, otherGraph, { + xExtent: zoomValue.xExtent, + yExtent: false + }); + } + const newZoom = Object.assign({}, zoom, { + sweepExtent, + graphIndex + }); + return Object.assign({}, state, { + zoom: newZoom + }); +}; +const resetZoom = (state, action) => { + const { + payload + } = action; + const { + graphIndex + } = payload || {}; + if (graphIndex === undefined) { + return Object.assign({}, state, { + sweepExtent: { + xExtent: false, + yExtent: false + } + }); + } + const { + zoom + } = state; + const sweepExtent = Array.isArray(zoom.sweepExtent) ? [...zoom.sweepExtent] : []; + const indicesToReset = graphIndex === 0 || graphIndex === 1 ? [0, 1] : [graphIndex]; + indicesToReset.forEach(idx => { + const selectedGraph = sweepExtent[idx] || {}; + sweepExtent[idx] = Object.assign({}, selectedGraph, { + xExtent: false, + yExtent: false + }); + }); + return Object.assign({}, state, { + zoom: { + sweepExtent, + graphIndex, + sweepTypes: [_list_ui.LIST_UI_SWEEP_TYPE.ZOOMRESET, _list_ui.LIST_UI_SWEEP_TYPE.ZOOMRESET, _list_ui.LIST_UI_SWEEP_TYPE.ZOOMRESET] + }, + sweepType: _list_ui.LIST_UI_SWEEP_TYPE.ZOOMRESET + }); +}; +const uiReducer = (state = initialState, action) => { + switch (action.type) { + case _action_type.UI.VIEWER.SET_TYPE: + return Object.assign({}, state, { + viewer: action.payload + }); + case _action_type.UI.SWEEP.SET_TYPE: + if (action.payload.sweepType === _list_ui.LIST_UI_SWEEP_TYPE.ZOOMRESET || action.payload === _list_ui.LIST_UI_SWEEP_TYPE.ZOOMRESET) { + // return Object.assign({}, state, { + // sweepExtent: { xExtent: false, yExtent: false }, + // }); + return resetZoom(state, action); + } + // return Object.assign({}, state, { + // sweepType: action.payload, + // jcampIdx: action.jcampIdx, + // }); + return updateSweepType(state, action); + case _action_type.UI.SWEEP.SELECT_ZOOMIN: + { + // return Object.assign({}, state, { + // sweepExtent: action.payload, + // }); + return updateZoom(state, action); + } + case _action_type.UI.SUB_VIEWER.DISPLAY_VIEWER_AT: + return Object.assign({}, state, { + subViewerAt: action.payload + }); + case _action_type.MANAGER.RESETALL: + return initialState; + default: + return state; + } +}; +var _default = exports.default = uiReducer; \ No newline at end of file diff --git a/dist/reducers/reducer_voltammetry.js b/dist/reducers/reducer_voltammetry.js new file mode 100644 index 00000000..dd9e7727 --- /dev/null +++ b/dist/reducers/reducer_voltammetry.js @@ -0,0 +1,603 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var _action_type = require("../constants/action_type"); +var _chem = require("../helpers/chem"); +/* eslint-disable prefer-object-spread, default-param-last */ + +const initialState = { + spectraList: [], + areaValue: 1.0, + areaUnit: 'cm²', + useCurrentDensity: false +}; +const initSpectra = { + list: [], + origin: [], + selectedIdx: -1, + isWorkMaxPeak: true, + jcampIdx: -1, + shift: { + ref: null, + val: 0, + prevValue: 0 + }, + hasRefPeak: false, + history: [] +}; +const addPairPeak = (state, action) => { + const { + payload + } = action; + const { + spectraList + } = state; + if (payload !== undefined) { + let spectra = spectraList[payload]; + if (!spectra) { + spectra = initSpectra; + spectraList.push(spectra); + } + const { + list, + selectedIdx + } = spectra; + let index = selectedIdx; + index += 1; + const newList = list.map(item => { + // eslint-disable-line + return { + ...item + }; + }); + newList.push({ + min: null, + max: null, + isRef: false, + e12: null, + createdAt: Date.now() + }); + spectraList[payload] = Object.assign({}, spectra, { + list: newList, + selectedIdx: index, + origin: [...newList] + }); // eslint-disable-line + return Object.assign({}, state, { + spectraList + }); + } + return state; +}; +const removePairPeak = (state, action) => { + const { + payload + } = action; + const { + spectraList + } = state; + if (payload !== undefined) { + const { + index, + jcampIdx + } = payload; + const spectra = spectraList[jcampIdx]; + if (spectra) { + const { + list, + origin + } = spectra; + list.splice(index, 1); + origin.splice(index, 1); + spectraList[jcampIdx] = Object.assign({}, spectra, { + list, + selectedIdx: index, + origin + }); + return Object.assign({}, state, { + spectraList + }); + } + return state; + } + return state; +}; +const getE12 = data => { + if (data.max && data.min) { + const { + max, + min + } = data; + const delta = (0, _chem.GetCyclicVoltaPeakSeparate)(max.x, min.x); + return Math.min(max.x, min.x) + 0.5 * delta; + } + return null; +}; +const addPeak = (state, action, isMax = true) => { + const { + payload + } = action; + const { + spectraList + } = state; + if (payload) { + const { + peak, + index, + jcampIdx + } = payload; + const spectra = spectraList[jcampIdx]; + const { + list + } = spectra; + const newList = list.map(item => { + // eslint-disable-line + return { + ...item + }; + }); + let pairPeak = newList[index]; + if (isMax) { + pairPeak = Object.assign({}, pairPeak, { + max: peak + }); + } else { + pairPeak = Object.assign({}, pairPeak, { + min: peak + }); + } + pairPeak.e12 = getE12(pairPeak); + pairPeak.updatedAt = Date.now(); + newList[index] = pairPeak; + spectraList[jcampIdx] = Object.assign({}, spectra, { + list: newList, + selectedIdx: index, + jcampIdx, + origin: [...newList] + }); + return Object.assign({}, state, { + spectraList + }); + } + return state; +}; +const removePeak = (state, action, isMax = true) => { + const { + payload + } = action; + const { + spectraList + } = state; + if (payload) { + const { + index, + jcampIdx + } = payload; + const spectra = spectraList[jcampIdx]; + const { + list + } = spectra; + const newList = list; + const pairPeak = newList[index]; + if (isMax) { + pairPeak.max = null; + } else { + pairPeak.min = null; + } + pairPeak.e12 = getE12(pairPeak); + pairPeak.updatedAt = Date.now(); + newList[index] = pairPeak; + spectraList[jcampIdx] = Object.assign({}, spectra, { + list: newList, + selectedIdx: index, + jcampIdx, + origin: [...newList] + }); + return Object.assign({}, state, { + spectraList + }); + } + return state; +}; +const selectPairPeak = (state, action) => { + const { + payload + } = action; + if (payload !== undefined) { + const { + spectraList + } = state; + const { + index, + jcampIdx + } = payload; + const spectra = spectraList[jcampIdx]; + if (spectra) { + spectraList[jcampIdx] = Object.assign({}, spectra, { + selectedIdx: index + }); + return Object.assign({}, state, { + spectraList + }); + } + return state; + } + return state; +}; +const setWorkWithMaxPeak = (state, action) => { + const { + payload + } = action; + if (payload !== undefined) { + const { + spectraList + } = state; + const { + isMax, + jcampIdx + } = payload; + const spectra = spectraList[jcampIdx]; + if (spectra) { + spectraList[jcampIdx] = Object.assign({}, spectra, { + isWorkMaxPeak: isMax + }); + return Object.assign({}, state, { + spectraList + }); + } + return state; + } + return state; +}; +const addPecker = (state, action) => { + const { + payload + } = action; + const { + spectraList + } = state; + if (payload) { + const { + peak, + index, + jcampIdx + } = payload; + const spectra = spectraList[jcampIdx]; + const { + list + } = spectra; + const newList = list; + const pairPeak = newList[index]; + pairPeak.pecker = peak; + pairPeak.updatedAt = Date.now(); + newList[index] = pairPeak; + spectraList[jcampIdx] = Object.assign({}, spectra, { + list: newList, + selectedIdx: index, + jcampIdx, + origin: [...newList] + }); + return Object.assign({}, state, { + spectraList + }); + } + return state; +}; +const removePecker = (state, action) => { + const { + payload + } = action; + const { + spectraList + } = state; + if (payload) { + const { + index, + jcampIdx + } = payload; + const spectra = spectraList[jcampIdx]; + const { + list + } = spectra; + const newList = list; + const pairPeak = newList[index]; + pairPeak.pecker = null; + pairPeak.updatedAt = Date.now(); + newList[index] = pairPeak; + spectraList[jcampIdx] = Object.assign({}, spectra, { + list: newList, + selectedIdx: index, + jcampIdx, + origin: [...newList] + }); + return Object.assign({}, state, { + spectraList + }); + } + return state; +}; +const setRef = (state, action) => { + const { + payload + } = action; + const { + spectraList + } = state; + if (payload) { + const { + jcampIdx + } = payload; + const spectra = spectraList[jcampIdx]; + const { + list, + shift, + hasRefPeak, + history + } = spectra; + const newShift = Object.assign({}, shift); + const refPeaks = list.filter(pairPeak => pairPeak.isRef === true); + let offset = 0.0; + if (hasRefPeak) { + const currRefPeaks = refPeaks[0]; + newShift.ref = currRefPeaks; + const { + val + } = shift; + const { + e12 + } = currRefPeaks; + offset = e12 - val; + const newList = spectra.list.map(pairPeak => { + //eslint-disable-line + const { + max, + min, + pecker, + isRef + } = pairPeak; + let newMax = null; + let newMin = null; + let newPecker = null; + if (max) { + newMax = hasRefPeak ? { + x: max.x - offset, + y: max.y + } : { + x: max.x + parseFloat(offset), + y: max.y + }; + } + if (min) { + newMin = hasRefPeak ? { + x: min.x - offset, + y: min.y + } : { + x: min.x + parseFloat(offset), + y: min.y + }; + } + if (pecker) { + newPecker = hasRefPeak ? { + x: pecker.x - offset, + y: pecker.y + } : { + x: pecker.x + parseFloat(offset), + y: pecker.y + }; //eslint-disable-line + } + const newPairPeak = Object.assign({}, pairPeak, { + max: newMax, + min: newMin, + pecker: newPecker + }); //eslint-disable-line + newPairPeak.e12 = getE12(newPairPeak); + newPairPeak.updatedAt = Date.now(); + if (isRef) { + newShift.ref = newPairPeak; + newShift.prevValue += offset; + } + return newPairPeak; + }); + history.push(...[newList]); + spectra.list = newList; + } else { + newShift.ref = null; + const { + val + } = newShift; + offset = val; + const newList = spectra.origin.map(pairPeak => { + //eslint-disable-line + const { + max, + min, + pecker + } = pairPeak; + let newMax = null; + let newMin = null; + let newPecker = null; + if (max) { + newMax = { + x: max.x + parseFloat(val), + y: max.y + }; + } + if (min) { + newMin = { + x: min.x + parseFloat(val), + y: min.y + }; + } + if (pecker) { + newPecker = { + x: pecker.x + parseFloat(val), + y: pecker.y + }; + } + const newPairPeak = Object.assign({}, pairPeak, { + max: newMax, + min: newMin, + pecker: newPecker, + isRef: false + }); //eslint-disable-line + newPairPeak.e12 = getE12(newPairPeak); + newPairPeak.updatedAt = Date.now(); + return newPairPeak; + }); + history.push(...[newList]); + spectra.list = newList; + newShift.prevValue = parseFloat(offset); + } + spectraList[jcampIdx] = Object.assign({}, spectra, { + shift: newShift, + jcampIdx + }); + return Object.assign({}, state, { + spectraList + }); + } + return state; +}; +const selectRefPeaks = (state, action) => { + const { + payload + } = action; + const { + spectraList + } = state; + if (payload) { + const { + index, + jcampIdx, + checked + } = payload; + const spectra = spectraList[jcampIdx]; + const { + list, + shift, + history + } = spectra; + const newShift = shift; + const newList = list; + newList.forEach((pairPeak, idx) => { + const newPairPeak = pairPeak; + newPairPeak.isRef = false; + newPairPeak.updatedAt = Date.now(); + if (idx === index) { + newPairPeak.isRef = checked; + newList[index] = newPairPeak; + } + }); + const refPeaks = newList.filter(pairPeak => pairPeak.isRef === true); + const hasRefPeak = refPeaks.length > 0; + history.push(...[newList]); + spectraList[jcampIdx] = Object.assign({}, spectra, { + list: newList, + selectedIdx: index, + jcampIdx, + hasRefPeak, + shift: newShift + }); + return Object.assign({}, state, { + spectraList + }); + } + return state; +}; +const selectRefFactor = (state, action) => { + const { + payload + } = action; + const { + spectraList + } = state; + if (payload) { + const { + factor, + curveIdx + } = payload; + const spectra = spectraList[curveIdx]; + const { + shift + } = spectra; + const newShift = Object.assign({}, shift); + newShift.val = factor; + spectraList[curveIdx] = Object.assign({}, spectra, { + shift: newShift, + jcampIdx: curveIdx + }); + return Object.assign({}, state, { + spectraList + }); + } + return state; +}; +const cyclicVoltaReducer = (state = initialState, action) => { + switch (action.type) { + case _action_type.CYCLIC_VOLTA_METRY.ADD_PAIR_PEAKS: + return addPairPeak(state, action); + case _action_type.CYCLIC_VOLTA_METRY.REMOVE_PAIR_PEAKS: + return removePairPeak(state, action); + case _action_type.CYCLIC_VOLTA_METRY.ADD_MAX_PEAK: + return addPeak(state, action); + case _action_type.CYCLIC_VOLTA_METRY.REMOVE_MAX_PEAK: + return removePeak(state, action); + case _action_type.CYCLIC_VOLTA_METRY.ADD_MIN_PEAK: + return addPeak(state, action, false); + case _action_type.CYCLIC_VOLTA_METRY.REMOVE_MIN_PEAK: + return removePeak(state, action, false); + case _action_type.CYCLIC_VOLTA_METRY.WORK_WITH_MAX_PEAK: + return setWorkWithMaxPeak(state, action); + case _action_type.CYCLIC_VOLTA_METRY.SELECT_PAIR_PEAK: + return selectPairPeak(state, action); + case _action_type.CYCLIC_VOLTA_METRY.ADD_PECKER: + return addPecker(state, action); + case _action_type.CYCLIC_VOLTA_METRY.REMOVE_PECKER: + return removePecker(state, action); + case _action_type.CYCLIC_VOLTA_METRY.SET_REF: + return setRef(state, action); + case _action_type.CYCLIC_VOLTA_METRY.SELECT_REF_PEAK: + return selectRefPeaks(state, action); + case _action_type.CYCLIC_VOLTA_METRY.SET_FACTOR: + return selectRefFactor(state, action); + case _action_type.CYCLIC_VOLTA_METRY.RESETALL: + return Object.assign({}, state, { + spectraList: [] + }); + case _action_type.CYCLIC_VOLTA_METRY.SET_AREA_VALUE: + { + const { + value + } = action.payload; + if (value === '') { + return Object.assign({}, state, { + areaValue: '' + }); + } + const areaValue = Number.isFinite(value) ? value : state.areaValue; + return Object.assign({}, state, { + areaValue + }); + } + case _action_type.CYCLIC_VOLTA_METRY.SET_AREA_UNIT: + { + const { + unit + } = action.payload; + return Object.assign({}, state, { + areaUnit: unit + }); + } + case _action_type.CYCLIC_VOLTA_METRY.TOGGLE_DENSITY: + { + return Object.assign({}, state, { + useCurrentDensity: !state.useCurrentDensity + }); + } + default: + return state; + } +}; +var _default = exports.default = cyclicVoltaReducer; \ No newline at end of file diff --git a/dist/reducers/reducer_wavelength.js b/dist/reducers/reducer_wavelength.js new file mode 100644 index 00000000..7c6de7ab --- /dev/null +++ b/dist/reducers/reducer_wavelength.js @@ -0,0 +1,20 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var _list_wavelength = require("../constants/list_wavelength"); +var _action_type = require("../constants/action_type"); +/* eslint-disable default-param-last */ + +const initialState = _list_wavelength.LIST_WAVE_LENGTH[0]; +const wavelengthReducer = (state = initialState, action) => { + switch (action.type) { + case _action_type.XRD.UPDATE_WAVE_LENGTH: + return action.payload; + default: + return state; + } +}; +var _default = exports.default = wavelengthReducer; \ No newline at end of file diff --git a/dist/reducers/undo_redo_config.js b/dist/reducers/undo_redo_config.js new file mode 100644 index 00000000..7a8cfeaa --- /dev/null +++ b/dist/reducers/undo_redo_config.js @@ -0,0 +1,17 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.undoRedoConfig = exports.undoRedoActions = void 0; +var _reduxUndo = require("redux-undo"); +var _action_type = require("../constants/action_type"); +const undoRedoActions = exports.undoRedoActions = [_action_type.EDITPEAK.ADD_POSITIVE, _action_type.EDITPEAK.ADD_NEGATIVE, _action_type.EDITPEAK.RM_POSITIVE, _action_type.EDITPEAK.RM_NEGATIVE, _action_type.EDITPEAK.SHIFT, _action_type.EDITPEAK.CLEAR_ALL, _action_type.MANAGER.RESETALL, _action_type.MANAGER.RESETSHIFT, _action_type.MANAGER.RESET_INIT_COMMON, _action_type.MANAGER.RESET_INIT_NMR, _action_type.MANAGER.RESET_INIT_MS, _action_type.MANAGER.RESET_INIT_COMMON_WITH_INTERGATION, _action_type.UI.SWEEP.SELECT_INTEGRATION, _action_type.UI.SWEEP.SELECT_MULTIPLICITY_RDC, _action_type.INTEGRATION.RM_ONE, _action_type.INTEGRATION.SET_REF, _action_type.INTEGRATION.SET_FKR, _action_type.INTEGRATION.RESET_ALL, _action_type.INTEGRATION.CLEAR_ALL, _action_type.MULTIPLICITY.PEAK_RM_BY_PANEL_RDC, _action_type.MULTIPLICITY.PEAK_RM_BY_UI_RDC, _action_type.MULTIPLICITY.PEAK_ADD_BY_UI_RDC, _action_type.MULTIPLICITY.RESET_ONE_RDC, _action_type.MULTIPLICITY.UPDATE_J, _action_type.MULTIPLICITY.TYPE_SELECT_RDC, _action_type.MULTIPLICITY.ONE_CLICK, _action_type.MULTIPLICITY.ONE_CLICK_BY_UI, _action_type.MULTIPLICITY.RESET_ALL_RDC, _action_type.MULTIPLICITY.CLEAR_ALL]; +const undoRedoConfig = exports.undoRedoConfig = { + debug: false, + limit: 10, + ignoreInitialState: true, + filter: (0, _reduxUndo.includeAction)(undoRedoActions), + clearHistoryType: [_action_type.EDITPEAK.SHIFT, _action_type.EDITPEAK.CLEAR_ALL, _action_type.MANAGER.RESETALL, _action_type.MANAGER.RESETSHIFT, _action_type.MANAGER.RESET_INIT_COMMON, _action_type.MANAGER.RESET_INIT_NMR, _action_type.MANAGER.RESET_INIT_MS, _action_type.MANAGER.RESET_INIT_COMMON_WITH_INTERGATION], + neverSkipReducer: [_action_type.EDITPEAK.SHIFT, _action_type.EDITPEAK.CLEAR_ALL, _action_type.MANAGER.RESETALL, _action_type.MANAGER.RESETSHIFT, _action_type.MANAGER.RESET_INIT_COMMON, _action_type.MANAGER.RESET_INIT_NMR, _action_type.MANAGER.RESET_INIT_MS, _action_type.MANAGER.RESET_INIT_COMMON_WITH_INTERGATION] +}; \ No newline at end of file diff --git a/dist/sagas/index.js b/dist/sagas/index.js new file mode 100644 index 00000000..6b9c1884 --- /dev/null +++ b/dist/sagas/index.js @@ -0,0 +1,17 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = rootSaga; +var _effects = require("redux-saga/effects"); +var _saga_edit_peak = _interopRequireDefault(require("./saga_edit_peak")); +var _saga_manager = _interopRequireDefault(require("./saga_manager")); +var _saga_ui = _interopRequireDefault(require("./saga_ui")); +var _saga_meta = _interopRequireDefault(require("./saga_meta")); +var _saga_multiplicity = _interopRequireDefault(require("./saga_multiplicity")); +var _saga_multi_entities = _interopRequireDefault(require("./saga_multi_entities")); +function* rootSaga() { + yield (0, _effects.all)([..._saga_edit_peak.default, ..._saga_manager.default, ..._saga_ui.default, ..._saga_meta.default, ..._saga_multiplicity.default, ..._saga_multi_entities.default]); +} \ No newline at end of file diff --git a/dist/sagas/saga_edit_peak.js b/dist/sagas/saga_edit_peak.js new file mode 100644 index 00000000..a68ad59d --- /dev/null +++ b/dist/sagas/saga_edit_peak.js @@ -0,0 +1,75 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var _effects = require("redux-saga/effects"); +var _action_type = require("../constants/action_type"); +var _shift = require("../helpers/shift"); +var _list_shift = require("../constants/list_shift"); +const getShift = state => state.shift; +const getEditPeak = state => state.editPeak.present; +function* addVirtualFactor(action) { + const originShift = yield (0, _effects.select)(getShift); + const origEPeak = yield (0, _effects.select)(getEditPeak); + const { + payload + } = action; + const { + curveIdx + } = payload; + const { + peaks + } = origEPeak; + let currentOriginPeaks = peaks[curveIdx]; + if (currentOriginPeaks === false || currentOriginPeaks === undefined) { + currentOriginPeaks = { + prevOffset: 0, + pos: [], + neg: [] + }; + } + let currentOriginShift = originShift.shifts[curveIdx]; + if (currentOriginShift === false || currentOriginShift === undefined) { + const shiftNone = _list_shift.LIST_SHIFT_1H[0]; + currentOriginShift = { + ref: shiftNone, + peak: false, + enable: true + }; + } + const origRef = currentOriginShift.ref; + const origApex = currentOriginShift.peak; + const { + prevOffset, + pos, + neg + } = currentOriginPeaks; + const absOffset = (0, _shift.FromManualToOffset)(origRef, origApex); + const relOffset = prevOffset - absOffset; + const nextPos = (0, _shift.VirtalPts)(pos, relOffset); + const nextNeg = (0, _shift.VirtalPts)(neg, relOffset); + yield (0, _effects.put)({ + type: _action_type.EDITPEAK.SHIFT, + payload: Object.assign({}, payload, { + // eslint-disable-line + prevOffset: absOffset, + pos: nextPos, + neg: nextNeg + }) + }); +} +const editPeakSagas = [(0, _effects.takeEvery)(_action_type.SHIFT.SET_REF, addVirtualFactor), (0, _effects.takeEvery)(_action_type.SHIFT.SET_PEAK, addVirtualFactor)]; +var _default = exports.default = editPeakSagas; +/* LOGIC + -no po - tg + | picked | another | absoffset | prevOffset | relative | newOffset +------------------------------------------------------------------- +0 | 40 20 - - - 0 +1 | 180 160 -140 0 140 140 +2 | 80 60 -40 -140 -100 100 +3 | 20 0 +20 -100 -120 +------------------------------------------------------------------- + +*/ \ No newline at end of file diff --git a/dist/sagas/saga_lcms_ui.js b/dist/sagas/saga_lcms_ui.js new file mode 100644 index 00000000..27b589b2 --- /dev/null +++ b/dist/sagas/saga_lcms_ui.js @@ -0,0 +1,85 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.lcmsHandleIntegrationAdd = lcmsHandleIntegrationAdd; +exports.lcmsHandleIntegrationRm = lcmsHandleIntegrationRm; +exports.lcmsHandlePeakDelete = lcmsHandlePeakDelete; +exports.lcmsHandleSelectZoomIn = lcmsHandleSelectZoomIn; +exports.lcmsHandleSelectZoomReset = lcmsHandleSelectZoomReset; +var _effects = require("redux-saga/effects"); +var _action_type = require("../constants/action_type"); +function* lcmsHandleSelectZoomIn({ + payload, + zoom +}) { + const { + graphIndex + } = zoom; + let lcmsSyncX; + if ((graphIndex === 0 || graphIndex === 1) && payload?.xExtent) { + lcmsSyncX = graphIndex === 0 ? 1 : 0; + } + yield (0, _effects.put)({ + type: _action_type.UI.SWEEP.SELECT_ZOOMIN, + payload: { + graphIndex, + zoomValue: payload, + ...(lcmsSyncX != null ? { + lcmsSyncX + } : {}) + } + }); +} +function* lcmsHandleSelectZoomReset() { + yield (0, _effects.put)({ + type: _action_type.UI.SWEEP.SELECT_ZOOMRESET, + payload: { + graphIndex: 0 + } + }); + yield (0, _effects.put)({ + type: _action_type.UI.SWEEP.SELECT_ZOOMRESET, + payload: { + graphIndex: 1 + } + }); +} +function* lcmsHandleIntegrationAdd({ + uvvis, + payload +}) { + yield (0, _effects.put)({ + type: _action_type.HPLC_MS.UPDATE_HPLCMS_INTEGRATIONS, + payload: { + spectrumId: uvvis.selectedWaveLength, + integration: payload + } + }); +} +function* lcmsHandlePeakDelete({ + uvvis, + payload +}) { + yield (0, _effects.put)({ + type: _action_type.HPLC_MS.REMOVE_HPLCMS_PEAK, + payload: { + spectrumId: uvvis.selectedWaveLength, + peak: payload + } + }); +} +function* lcmsHandleIntegrationRm({ + uvvis, + payload +}) { + yield (0, _effects.put)({ + type: _action_type.HPLC_MS.UPDATE_HPLCMS_INTEGRATIONS, + payload: { + spectrumId: uvvis.selectedWaveLength, + integration: payload, + remove: true + } + }); +} \ No newline at end of file diff --git a/dist/sagas/saga_manager.js b/dist/sagas/saga_manager.js new file mode 100644 index 00000000..e87aec57 --- /dev/null +++ b/dist/sagas/saga_manager.js @@ -0,0 +1,97 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var _effects = require("redux-saga/effects"); +var _action_type = require("../constants/action_type"); +const getLayout = state => state.layout; +const getCurveSt = state => state.curve; +const getIntegrationSt = state => state.integration.present; +function* resetShift(action) { + const curveSt = yield (0, _effects.select)(getCurveSt); + const layout = yield (0, _effects.select)(getLayout); + const { + payload + } = action; + const { + curveIdx, + listCurves + } = curveSt; + const numberOfCurve = listCurves.length; + yield (0, _effects.put)({ + type: _action_type.MANAGER.RESETSHIFT, + payload: Object.assign( + // eslint-disable-line + {}, payload, { + layout, + curvesInfo: { + isMultiCurve: numberOfCurve > 0, + curveIdx, + numberOfCurve + } + }) + }); +} +function* resetInitNmr(action) { + const curveSt = yield (0, _effects.select)(getCurveSt); + const integationSt = yield (0, _effects.select)(getIntegrationSt); + const { + curveIdx + } = curveSt; + const { + integration, + simulation + } = action.payload; + const { + integrations + } = integationSt; + const newArrIntegration = [...integrations]; + newArrIntegration[curveIdx] = integration; + const payload = Object.assign({}, integationSt, { + integrations: newArrIntegration, + selectedIdx: curveIdx + }); // eslint-disable-line + + if (integration) { + yield (0, _effects.put)({ + type: _action_type.INTEGRATION.RESET_ALL_RDC, + payload + }); + } + if (simulation) { + yield (0, _effects.put)({ + type: _action_type.SIMULATION.RESET_ALL_RDC, + payload: simulation + }); + } +} +function* resetInitCommonWithIntergation(action) { + const curveSt = yield (0, _effects.select)(getCurveSt); + const integationSt = yield (0, _effects.select)(getIntegrationSt); + const { + curveIdx + } = curveSt; + const { + integration + } = action.payload; + const { + integrations + } = integationSt; + const newArrIntegration = [...integrations]; + newArrIntegration[curveIdx] = integration; + const payload = Object.assign({}, integationSt, { + integrations: newArrIntegration, + selectedIdx: curveIdx + }); // eslint-disable-line + + if (integration) { + yield (0, _effects.put)({ + type: _action_type.INTEGRATION.RESET_ALL_RDC, + payload + }); + } +} +const managerSagas = [(0, _effects.takeEvery)(_action_type.MANAGER.RESETALL, resetShift), (0, _effects.takeEvery)(_action_type.MANAGER.RESET_INIT_NMR, resetInitNmr), (0, _effects.takeEvery)(_action_type.MANAGER.RESET_INIT_COMMON_WITH_INTERGATION, resetInitCommonWithIntergation)]; +var _default = exports.default = managerSagas; \ No newline at end of file diff --git a/dist/sagas/saga_meta.js b/dist/sagas/saga_meta.js new file mode 100644 index 00000000..6b3be549 --- /dev/null +++ b/dist/sagas/saga_meta.js @@ -0,0 +1,44 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var _effects = require("redux-saga/effects"); +var _action_type = require("../constants/action_type"); +var _peakInterval = require("../third_party/peakInterval"); +function* updateMetaPeaks(action) { + const { + payload + } = action; + const { + intervalL, + intervalR + } = (0, _peakInterval.getPeakIntervals)(payload); + const { + observeFrequency, + data + } = payload.spectra[0]; + const deltaX = Math.abs(data[0].x[0] - data[0].x[1]); + yield (0, _effects.put)({ + type: _action_type.META.UPDATE_PEAKS_RDC, + payload: { + peaks: { + intervalL, + intervalR, + observeFrequency, + deltaX + } + } + }); +} +function* updateMetaData(action) { + yield (0, _effects.put)({ + type: _action_type.META.UPDATE_META_DATA_RDC, + payload: { + dscMetaData: action.payload + } + }); +} +const metaSagas = [(0, _effects.takeEvery)(_action_type.META.UPDATE_PEAKS, updateMetaPeaks), (0, _effects.takeEvery)(_action_type.META.UPDATE_META_DATA, updateMetaData)]; +var _default = exports.default = metaSagas; \ No newline at end of file diff --git a/dist/sagas/saga_multi_entities.js b/dist/sagas/saga_multi_entities.js new file mode 100644 index 00000000..ee648abd --- /dev/null +++ b/dist/sagas/saga_multi_entities.js @@ -0,0 +1,234 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var _effects = require("redux-saga/effects"); +var _action_type = require("../constants/action_type"); +var _list_layout = require("../constants/list_layout"); +/* eslint-disable no-plusplus */ + +const getLayoutSt = state => state.layout; +const getCurveSt = state => state.curve; +const getIntegrationSt = state => state.integration.present; +const getMultiplicitySt = state => state.multiplicity.present; +function getMaxMinPeak(curve) { + return curve.maxminPeak; +} +function* setCyclicVoltametry(action) { + // eslint-disable-line + const curveSt = yield (0, _effects.select)(getCurveSt); + const { + listCurves + } = curveSt; + if (listCurves) { + yield (0, _effects.put)({ + type: _action_type.CYCLIC_VOLTA_METRY.RESETALL, + payload: null + }); + const numberOfCurves = listCurves.length; + if (numberOfCurves <= 0) { + return; + } + const firstCurve = listCurves[0]; + const { + layout + } = firstCurve; + if (layout !== _list_layout.LIST_LAYOUT.CYCLIC_VOLTAMMETRY) { + return; + } + const cvSt = yield (0, _effects.select)(state => state.cyclicvolta); + const { + feature + } = firstCurve; + if (feature) { + const { + weAreaValue, + weAreaUnit, + currentMode + } = feature; + if (typeof weAreaUnit === 'string' && weAreaUnit.length > 0) { + const unit = weAreaUnit.replace('^2', '²'); + yield (0, _effects.put)({ + type: _action_type.CYCLIC_VOLTA_METRY.SET_AREA_UNIT, + payload: { + unit + } + }); + } else { + yield (0, _effects.put)({ + type: _action_type.CYCLIC_VOLTA_METRY.SET_AREA_UNIT, + payload: { + unit: 'cm²' + } + }); + } + if (weAreaValue !== undefined && weAreaValue !== null) { + let numeric = null; + if (typeof weAreaValue === 'string') { + const parsed = parseFloat(weAreaValue); + if (!Number.isNaN(parsed)) numeric = parsed; + } else if (Number.isFinite(weAreaValue)) { + numeric = weAreaValue; + } + if (Number.isFinite(numeric)) { + yield (0, _effects.put)({ + type: _action_type.CYCLIC_VOLTA_METRY.SET_AREA_VALUE, + payload: { + value: numeric + } + }); + } else { + yield (0, _effects.put)({ + type: _action_type.CYCLIC_VOLTA_METRY.SET_AREA_VALUE, + payload: { + value: 1.0 + } + }); + } + } + if (typeof currentMode === 'string' && currentMode.length > 0) { + const wantDensity = currentMode.toUpperCase() === 'DENSITY'; + if (!!cvSt.useCurrentDensity !== wantDensity) { + yield (0, _effects.put)({ + type: _action_type.CYCLIC_VOLTA_METRY.TOGGLE_DENSITY, + payload: null + }); + } + } + } + for (let index = 0; index < listCurves.length; index++) { + const curve = listCurves[index]; + const maxminPeak = getMaxMinPeak(curve); + yield (0, _effects.put)({ + type: _action_type.CYCLIC_VOLTA_METRY.ADD_PAIR_PEAKS, + payload: index + }); + for (let pidx = 0; pidx < maxminPeak.max.length; pidx++) { + const maxPeak = maxminPeak.max[pidx]; + yield (0, _effects.put)({ + type: _action_type.CYCLIC_VOLTA_METRY.ADD_MAX_PEAK, + payload: { + peak: maxPeak, + index: pidx, + jcampIdx: index + } + }); + const minPeak = maxminPeak.min[pidx]; + yield (0, _effects.put)({ + type: _action_type.CYCLIC_VOLTA_METRY.ADD_MIN_PEAK, + payload: { + peak: minPeak, + index: pidx, + jcampIdx: index + } + }); + const pecker = maxminPeak.pecker[pidx]; + yield (0, _effects.put)({ + type: _action_type.CYCLIC_VOLTA_METRY.ADD_PECKER, + payload: { + peak: pecker, + index: pidx, + jcampIdx: index + } + }); + } + const { + refIndex + } = maxminPeak; + if (refIndex > -1) { + yield (0, _effects.put)({ + type: _action_type.CYCLIC_VOLTA_METRY.SELECT_REF_PEAK, + payload: { + index: refIndex, + jcampIdx: index, + checked: true + } + }); + } + } + } +} +function* setCyclicVoltametryRef(action) { + // eslint-disable-line + const layoutSt = yield (0, _effects.select)(getLayoutSt); + if (layoutSt !== _list_layout.LIST_LAYOUT.CYCLIC_VOLTAMMETRY) { + return; + } + const curveSt = yield (0, _effects.select)(getCurveSt); + const { + curveIdx + } = curveSt; + yield (0, _effects.put)({ + type: _action_type.CYCLIC_VOLTA_METRY.SET_REF, + payload: { + jcampIdx: curveIdx + } + }); +} +function* setInitIntegrations(action) { + // eslint-disable-line + const curveSt = yield (0, _effects.select)(getCurveSt); + const { + listCurves + } = curveSt; + if (listCurves) { + for (let index = 0; index < listCurves.length; index++) { + const integationSt = yield (0, _effects.select)(getIntegrationSt); + const multiplicitySt = yield (0, _effects.select)(getMultiplicitySt); + const curve = listCurves[index]; + const { + integration, + multiplicity, + simulation + } = curve; + if (integration) { + const { + integrations + } = integationSt; + const newArrIntegration = [...integrations]; + if (index < newArrIntegration.length) { + newArrIntegration[index] = integration; + } else { + newArrIntegration.push(integration); + } + const payload = Object.assign({}, integationSt, { + integrations: newArrIntegration, + selectedIdx: index + }); // eslint-disable-line + yield (0, _effects.put)({ + type: _action_type.INTEGRATION.RESET_ALL_RDC, + payload + }); + } + if (multiplicity) { + const { + multiplicities + } = multiplicitySt; + const newArrMultiplicities = [...multiplicities]; + if (index < newArrMultiplicities.length) { + newArrMultiplicities[index] = multiplicity; + } else { + newArrMultiplicities.push(multiplicity); + } + const payload = Object.assign({}, multiplicitySt, { + multiplicities: newArrMultiplicities, + selectedIdx: index + }); // eslint-disable-line + yield (0, _effects.put)({ + type: _action_type.MULTIPLICITY.RESET_ALL_RDC, + payload + }); + } + if (simulation) { + yield (0, _effects.put)({ + type: _action_type.SIMULATION.RESET_ALL_RDC, + payload: simulation + }); + } + } + } +} +const multiEntitiesSagas = [(0, _effects.takeEvery)(_action_type.CURVE.SET_ALL_CURVES, setCyclicVoltametry), (0, _effects.takeEvery)(_action_type.CURVE.SET_ALL_CURVES, setInitIntegrations), (0, _effects.takeEvery)(_action_type.CYCLIC_VOLTA_METRY.SET_FACTOR, setCyclicVoltametryRef)]; +var _default = exports.default = multiEntitiesSagas; \ No newline at end of file diff --git a/dist/sagas/saga_multiplicity.js b/dist/sagas/saga_multiplicity.js new file mode 100644 index 00000000..56645954 --- /dev/null +++ b/dist/sagas/saga_multiplicity.js @@ -0,0 +1,378 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var _effects = require("redux-saga/effects"); +var _action_type = require("../constants/action_type"); +var _multiplicity_calc = require("../helpers/multiplicity_calc"); +var _multiplicity_manual = require("../helpers/multiplicity_manual"); +const getMetaSt = state => state.meta; +const getCurveSt = state => state.curve; +const getMultiplicitySt = state => state.multiplicity.present; +function* selectMpy(action) { + const metaSt = yield (0, _effects.select)(getMetaSt); + const mpySt = yield (0, _effects.select)(getMultiplicitySt); + const { + newData, + curveIdx + } = action.payload; + const { + multiplicities + } = mpySt; + let selectedMulti = multiplicities[curveIdx]; + if (selectedMulti === false || selectedMulti === undefined) { + selectedMulti = { + stack: [], + shift: 0, + smExtext: false, + edited: false + }; + } + const { + xExtent, + yExtent, + dataPks + } = newData; + const { + shift, + stack + } = selectedMulti; + const { + xL, + xU + } = xExtent; + const { + yL, + yU + } = yExtent; + let peaks = dataPks.filter(p => xL <= p.x && p.x <= xU && yL <= p.y && p.y <= yU); + peaks = peaks.map(pk => ({ + x: pk.x + shift, + y: pk.y + })); + const newXExtemt = { + xL: xL + shift, + xU: xU + shift + }; + const coupling = (0, _multiplicity_calc.calcMpyCoup)(peaks, metaSt); + const m = { + peaks, + xExtent: newXExtemt, + yExtent, + mpyType: coupling.type, + js: coupling.js + }; + const newStack = [...stack, m]; + const newSelectedMulti = Object.assign( + // eslint-disable-line + {}, selectedMulti, { + stack: newStack, + smExtext: newXExtemt + }); + const newMultiplicities = [...multiplicities]; + newMultiplicities[curveIdx] = newSelectedMulti; + const payload = Object.assign( + // eslint-disable-line + {}, mpySt, { + multiplicities: newMultiplicities, + selectedIdx: curveIdx + }); + yield (0, _effects.put)({ + type: _action_type.UI.SWEEP.SELECT_MULTIPLICITY_RDC, + payload + }); +} +function* addUiPeakToStack(action) { + const metaSt = yield (0, _effects.select)(getMetaSt); + const mpySt = yield (0, _effects.select)(getMultiplicitySt); + const curveSt = yield (0, _effects.select)(getCurveSt); + const { + curveIdx + } = curveSt; + const { + multiplicities + } = mpySt; + const selectedMulti = multiplicities[curveIdx]; + const { + shift, + stack, + smExtext + } = selectedMulti; + let { + x, + y + } = action.payload; // eslint-disable-line + if (!x || !y) return; + x += shift; + const newPeak = { + x, + y + }; + const { + xL, + xU + } = smExtext; + if (x < xL || xU < x) return; + let isDuplicate = false; + const newStack = stack.map(k => { + if (k.xExtent.xL === xL && k.xExtent.xU === xU) { + const existXs = k.peaks.map(pk => pk.x); + if (existXs.indexOf(newPeak.x) >= 0) { + isDuplicate = true; + return k; + } + const newPks = [...k.peaks, newPeak]; + const coupling = (0, _multiplicity_calc.calcMpyCoup)(newPks, metaSt); + return Object.assign( + // eslint-disable-line + {}, k, { + peaks: newPks, + mpyType: coupling.type, + js: coupling.js + }); + } + return k; + }); + if (isDuplicate) return; + const newSelectedMulti = Object.assign({}, selectedMulti, { + stack: newStack + }); // eslint-disable-line + const newMultiplicities = [...multiplicities]; + newMultiplicities[curveIdx] = newSelectedMulti; + const payload = Object.assign({}, mpySt, { + multiplicities: newMultiplicities + }); // eslint-disable-line + + yield (0, _effects.put)({ + type: _action_type.MULTIPLICITY.PEAK_ADD_BY_UI_RDC, + payload + }); +} +const rmPeakFromStack = (action, metaSt, mpySt, curveIdx = 0) => { + const { + peak, + xExtent + } = action.payload; + const { + multiplicities + } = mpySt; + const selectedMulti = multiplicities[curveIdx]; + const { + stack + } = selectedMulti; + let newStack = stack.map(k => { + if (k.xExtent.xL === xExtent.xL && k.xExtent.xU === xExtent.xU) { + const newPks = k.peaks.filter(pk => pk.x !== peak.x); + const coupling = (0, _multiplicity_calc.calcMpyCoup)(newPks, metaSt); + return Object.assign( + // eslint-disable-line + {}, k, { + peaks: newPks, + mpyType: coupling.type, + js: coupling.js + }); + } + return k; + }); + newStack = newStack.filter(k => k.peaks.length !== 0); + if (newStack.length === 0) { + const newSelectedMulti = Object.assign({}, selectedMulti, { + stack: newStack, + smExtext: false + }); // eslint-disable-line + multiplicities[curveIdx] = newSelectedMulti; + return Object.assign({}, mpySt, { + multiplicities + }); // eslint-disable-line + } + const noSmExtext = newStack.map(k => k.xExtent.xL === xExtent.xL && k.xExtent.xU === xExtent.xU ? 1 : 0).reduce((a, s) => a + s) === 0; + const newSmExtext = noSmExtext ? newStack[0].xExtent : xExtent; + const newSelectedMulti = Object.assign({}, selectedMulti, { + stack: newStack, + smExtext: newSmExtext + }); // eslint-disable-line + const newMultiplicities = [...multiplicities]; + newMultiplicities[curveIdx] = newSelectedMulti; + return Object.assign({}, mpySt, { + multiplicities: newMultiplicities + }); // eslint-disable-line +}; +function* rmPanelPeakFromStack(action) { + const metaSt = yield (0, _effects.select)(getMetaSt); + const mpySt = yield (0, _effects.select)(getMultiplicitySt); + const curveSt = yield (0, _effects.select)(getCurveSt); + const { + curveIdx + } = curveSt; + const payload = rmPeakFromStack(action, metaSt, mpySt, curveIdx); + yield (0, _effects.put)({ + type: _action_type.MULTIPLICITY.PEAK_RM_BY_PANEL_RDC, + payload + }); +} +function* rmUiPeakFromStack(action) { + const metaSt = yield (0, _effects.select)(getMetaSt); + const mpySt = yield (0, _effects.select)(getMultiplicitySt); + const curveSt = yield (0, _effects.select)(getCurveSt); + const { + curveIdx + } = curveSt; + const { + multiplicities + } = mpySt; + const selectedMulti = multiplicities[curveIdx]; + const peak = action.payload; + const xExtent = selectedMulti.smExtext; + const newAction = Object.assign({}, action, { + payload: { + peak, + xExtent + } + }); // eslint-disable-line + + const payload = rmPeakFromStack(newAction, metaSt, mpySt, curveIdx); + yield (0, _effects.put)({ + type: _action_type.MULTIPLICITY.PEAK_RM_BY_UI_RDC, + payload + }); +} +function* resetInitNmr(action) { + const { + multiplicity + } = action.payload; + const curveSt = yield (0, _effects.select)(getCurveSt); + const mpySt = yield (0, _effects.select)(getMultiplicitySt); + const { + curveIdx + } = curveSt; + const { + multiplicities + } = mpySt; + const newMultiplicities = [...multiplicities]; + newMultiplicities[curveIdx] = multiplicity; + const payload = Object.assign({}, mpySt, { + multiplicities: newMultiplicities, + selectedIdx: curveIdx + }); // eslint-disable-line + + if (multiplicity) { + yield (0, _effects.put)({ + type: _action_type.MULTIPLICITY.RESET_ALL_RDC, + payload + }); + } + // const metaSt = yield select(getMetaSt); + // const mpySt = yield select(getMultiplicitySt); + + // if (!multiplicity) { + // yield put({ + // type: MULTIPLICITY.RESET_ALL_RDC, + // payload: mpySt, + // }); + // } + + // const { stack } = multiplicity; + // const newStack = stack.map((k) => { + // const { peaks } = k; + // const coupling = calcMpyCoup(peaks, metaSt); + // return Object.assign( + // {}, + // k, + // { + // peaks, + // mpyType: coupling.type, + // js: coupling.js, + // }, + // ); + // }); + // const payload = Object.assign({}, mpySt, { stack: newStack }); + // yield put({ + // type: MULTIPLICITY.RESET_ALL_RDC, + // payload, + // }); +} +function* resetOne(action) { + const xExtent = action.payload; + const metaSt = yield (0, _effects.select)(getMetaSt); + const mpySt = yield (0, _effects.select)(getMultiplicitySt); + const curveSt = yield (0, _effects.select)(getCurveSt); + const { + curveIdx + } = curveSt; + const { + multiplicities + } = mpySt; + const selectedMulti = multiplicities[curveIdx]; + const { + stack + } = selectedMulti; + const newStack = stack.map(k => { + if (k.xExtent.xL === xExtent.xL && k.xExtent.xU === xExtent.xU) { + const { + peaks + } = k; + const coupling = (0, _multiplicity_calc.calcMpyCoup)(peaks, metaSt); + return Object.assign( + // eslint-disable-line + {}, k, { + peaks, + mpyType: coupling.type, + js: coupling.js + }); + } + return k; + }); + const newSelectedMulti = Object.assign({}, selectedMulti, { + stack: newStack + }); // eslint-disable-line + const newMultiplicities = [...multiplicities]; + newMultiplicities[curveIdx] = newSelectedMulti; + const payload = Object.assign({}, mpySt, { + multiplicities: newMultiplicities + }); // eslint-disable-line + yield (0, _effects.put)({ + type: _action_type.MULTIPLICITY.RESET_ONE_RDC, + payload + }); +} +function* selectMpyType(action) { + const mpySt = yield (0, _effects.select)(getMultiplicitySt); + const metaSt = yield (0, _effects.select)(getMetaSt); + const curveSt = yield (0, _effects.select)(getCurveSt); + const { + curveIdx + } = curveSt; + const { + multiplicities + } = mpySt; + const selectedMulti = multiplicities[curveIdx]; + const { + mpyType, + xExtent + } = action.payload; + const { + stack + } = selectedMulti; + const newStack = stack.map(k => { + const isTargetStack = k.xExtent.xL === xExtent.xL && k.xExtent.xU === xExtent.xU; + if (isTargetStack) return (0, _multiplicity_manual.calcMpyManual)(k, mpyType, metaSt); + return k; + }); + const newSelectedMulti = Object.assign({}, selectedMulti, { + stack: newStack + }); // eslint-disable-line + const newMultiplicities = [...multiplicities]; + newMultiplicities[curveIdx] = newSelectedMulti; + const payload = Object.assign({}, mpySt, { + multiplicities: newMultiplicities + }); // eslint-disable-line + + yield (0, _effects.put)({ + type: _action_type.MULTIPLICITY.TYPE_SELECT_RDC, + payload + }); +} +const multiplicitySagas = [(0, _effects.takeEvery)(_action_type.UI.SWEEP.SELECT_MULTIPLICITY, selectMpy), (0, _effects.takeEvery)(_action_type.MULTIPLICITY.PEAK_ADD_BY_UI_SAG, addUiPeakToStack), (0, _effects.takeEvery)(_action_type.MULTIPLICITY.PEAK_RM_BY_PANEL, rmPanelPeakFromStack), (0, _effects.takeEvery)(_action_type.MULTIPLICITY.PEAK_RM_BY_UI, rmUiPeakFromStack), (0, _effects.takeEvery)(_action_type.MULTIPLICITY.TYPE_SELECT, selectMpyType), (0, _effects.takeEvery)(_action_type.MULTIPLICITY.RESET_ONE, resetOne), (0, _effects.takeEvery)(_action_type.MANAGER.RESET_INIT_NMR, resetInitNmr)]; +var _default = exports.default = multiplicitySagas; \ No newline at end of file diff --git a/dist/sagas/saga_ui.js b/dist/sagas/saga_ui.js new file mode 100644 index 00000000..4a6a3772 --- /dev/null +++ b/dist/sagas/saga_ui.js @@ -0,0 +1,414 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.shouldDisplayLcmsSubViewerAt = exports.default = void 0; +var _effects = require("redux-saga/effects"); +var _action_type = require("../constants/action_type"); +var _list_ui = require("../constants/list_ui"); +var _list_layout = require("../constants/list_layout"); +var _list_graph = require("../constants/list_graph"); +var _saga_lcms_ui = require("./saga_lcms_ui"); +const getUiState = state => state.ui; +const getCurveState = state => state.curve; +const getHplcMsState = state => state.hplcMs; +const getSubViewZoomActionType = () => _action_type.UI.SWEEP.SELECT_ZOOMIN_SUBVIEW || _action_type.UI.SWEEP.SELECT_ZOOMIN; +const calcPeaks = payload => { + const { + xExtent, + yExtent, + dataPks + } = payload; + if (!dataPks) return []; + const { + xL, + xU + } = xExtent; + const { + yL, + yU + } = yExtent; + const peaks = dataPks.filter(p => xL <= p.x && p.x <= xU && yL <= p.y && p.y <= yU); + return peaks; +}; +const getLayoutState = state => state.layout; +function* selectUiSweep(action) { + const uiState = yield (0, _effects.select)(getUiState); + const { + sweepType, + zoom + } = uiState; + const { + payload + } = action; + const curveState = yield (0, _effects.select)(getCurveState); + const { + curveIdx + } = curveState; + const hplcMsState = yield (0, _effects.select)(getHplcMsState); + const { + uvvis + } = hplcMsState; + const layoutState = yield (0, _effects.select)(getLayoutState); + switch (sweepType) { + case _list_ui.LIST_UI_SWEEP_TYPE.ZOOMIN: + if (layoutState === _list_layout.LIST_LAYOUT.LC_MS && uvvis.listWaveLength) { + yield* (0, _saga_lcms_ui.lcmsHandleSelectZoomIn)({ + payload, + zoom + }); + } else { + yield (0, _effects.put)({ + type: _action_type.UI.SWEEP.SELECT_ZOOMIN, + payload + }); + } + break; + case _list_ui.LIST_UI_SWEEP_TYPE.ZOOMRESET: + if (layoutState === _list_layout.LIST_LAYOUT.LC_MS && (payload?.graphIndex === 0 || payload?.graphIndex === 1)) { + yield* (0, _saga_lcms_ui.lcmsHandleSelectZoomReset)(); + } else { + yield (0, _effects.put)({ + type: _action_type.UI.SWEEP.SELECT_ZOOMRESET, + payload + }); + } + break; + case _list_ui.LIST_UI_SWEEP_TYPE.INTEGRATION_ADD: + { + if (uvvis.selectedWaveLength && layoutState === _list_layout.LIST_LAYOUT.LC_MS) { + yield* (0, _saga_lcms_ui.lcmsHandleIntegrationAdd)({ + uvvis, + payload + }); + } else { + yield (0, _effects.put)({ + type: _action_type.UI.SWEEP.SELECT_INTEGRATION, + payload: { + newData: payload, + curveIdx + } + }); + } + break; + } + case _list_ui.LIST_UI_SWEEP_TYPE.MULTIPLICITY_SWEEP_ADD: + { + const peaks = calcPeaks(payload); // eslint-disable-line + if (peaks.length === 0) { + break; + } + const newPayload = { + ...payload, + peaks + }; // eslint-disable-line + + yield (0, _effects.put)({ + type: _action_type.UI.SWEEP.SELECT_INTEGRATION, + payload: { + newData: newPayload, + curveIdx + } + }); + yield (0, _effects.put)({ + type: _action_type.UI.SWEEP.SELECT_MULTIPLICITY, + payload: { + newData: newPayload, + curveIdx + } + }); + break; + } + default: + break; + } + return null; +} +function* scrollUiWheel(action) { + const layoutState = yield (0, _effects.select)(getLayoutState); + const { + payload + } = action; + if (!payload?.xExtent || !payload?.yExtent) return; + const { + xExtent, + yExtent, + direction, + brushClass + } = payload; + const { + yL, + yU + } = yExtent; + const [yeL, yeU] = [yL + (yU - yL) * 0.1, yU - (yU - yL) * 0.1]; + const scale = direction ? 0.8 : 1.25; + let nextExtent = { + xExtent: false, + yExtent: false + }; + let [nyeL, nyeU, h, nytL, nytU] = [0, 1, 1, 0, 1]; + switch (layoutState) { + case _list_layout.LIST_LAYOUT.IR: + case _list_layout.LIST_LAYOUT.RAMAN: + [nyeL, nyeU] = [yeL + (yeU - yeL) * (1 - scale), yeU]; + h = nyeU - nyeL; + [nytL, nytU] = [nyeL - 0.125 * h, nyeU + 0.125 * h]; + nextExtent = { + xExtent, + yExtent: { + yL: nytL, + yU: nytU + } + }; + break; + case _list_layout.LIST_LAYOUT.MS: + [nyeL, nyeU] = [0, yeL + (yeU - yeL) * scale]; + h = nyeU - nyeL; + [nytL, nytU] = [nyeL - 0.125 * h, nyeU + 0.125 * h]; + nextExtent = { + xExtent, + yExtent: { + yL: nytL, + yU: nytU + } + }; + break; + case _list_layout.LIST_LAYOUT.UVVIS: + case _list_layout.LIST_LAYOUT.HPLC_UVVIS: + case _list_layout.LIST_LAYOUT.TGA: + case _list_layout.LIST_LAYOUT.DSC: + case _list_layout.LIST_LAYOUT.XRD: + default: + [nyeL, nyeU] = [yeL, yeL + (yeU - yeL) * scale]; + h = nyeU - nyeL; + [nytL, nytU] = [nyeL - 0.125 * h, nyeU + 0.125 * h]; + nextExtent = { + xExtent, + yExtent: { + yL: nytL, + yU: nytU + } + }; + break; + } + if (brushClass === `.${_list_graph.LIST_BRUSH_SVG_GRAPH.RECT}`) { + yield (0, _effects.put)({ + type: getSubViewZoomActionType(), + payload: nextExtent + }); + } else { + yield (0, _effects.put)({ + type: _action_type.UI.SWEEP.SELECT_ZOOMIN, + payload: nextExtent + }); + } +} +const getUiSweepType = state => state.ui.sweepType; +const shouldDisplayLcmsSubViewerAt = ({ + isLcmsLayout, + payload, + sourceHint, + uiSweepType +}) => isLcmsLayout && sourceHint === 'lcms_tic' && Number.isFinite(payload?.x) && [_list_ui.LIST_UI_SWEEP_TYPE.ZOOMIN, _list_ui.LIST_UI_SWEEP_TYPE.ZOOMRESET, _list_ui.LIST_UI_SWEEP_TYPE.PEAK_GROUP_SELECT].includes(uiSweepType); +exports.shouldDisplayLcmsSubViewerAt = shouldDisplayLcmsSubViewerAt; +function* clickUiTarget(action) { + const { + payload, + onPeak, + voltammetryPeakIdx, + onPecker, + sourceHint + } = action; + const uiSweepType = yield (0, _effects.select)(getUiSweepType); + const curveState = yield (0, _effects.select)(getCurveState); + const { + curveIdx + } = curveState; + const hplcMsState = yield (0, _effects.select)(getHplcMsState); + const { + uvvis + } = hplcMsState; + const isLcmsLayout = (yield (0, _effects.select)(getLayoutState)) === _list_layout.LIST_LAYOUT.LC_MS; + if (shouldDisplayLcmsSubViewerAt({ + isLcmsLayout, + payload, + sourceHint, + uiSweepType + })) { + yield (0, _effects.put)({ + type: _action_type.UI.SUB_VIEWER.DISPLAY_VIEWER_AT, + payload + }); + return; + } + if (uiSweepType === _list_ui.LIST_UI_SWEEP_TYPE.PEAK_ADD && !onPeak) { + const spectrumId = hplcMsState?.uvvis?.selectedWaveLength; + if (isLcmsLayout && spectrumId == null) return; + const currentPeaks = hplcMsState?.uvvis?.currentSpectrum?.peaks || []; + const updatedPeaks = [...currentPeaks, payload]; + yield (0, _effects.put)({ + type: _action_type.HPLC_MS.UPDATE_HPLCMS_PEAKS, + payload: { + spectrumId, + peaks: updatedPeaks + } + }); + } else if (uiSweepType === _list_ui.LIST_UI_SWEEP_TYPE.PEAK_DELETE && onPeak) { + if (isLcmsLayout && uvvis.selectedWaveLength) { + yield* (0, _saga_lcms_ui.lcmsHandlePeakDelete)({ + uvvis, + payload + }); + } else { + yield (0, _effects.put)({ + type: _action_type.EDITPEAK.ADD_NEGATIVE, + payload: { + dataToAdd: payload, + curveIdx + } + }); + } + } else if (uiSweepType === _list_ui.LIST_UI_SWEEP_TYPE.ANCHOR_SHIFT && onPeak) { + yield (0, _effects.put)({ + type: _action_type.SHIFT.SET_PEAK, + payload: { + dataToSet: payload, + curveIdx + } + }); + } else if (uiSweepType === _list_ui.LIST_UI_SWEEP_TYPE.INTEGRATION_RM && onPeak) { + if (uvvis.selectedWaveLength && isLcmsLayout) { + yield* (0, _saga_lcms_ui.lcmsHandleIntegrationRm)({ + uvvis, + payload + }); + } else { + yield (0, _effects.put)({ + type: _action_type.INTEGRATION.RM_ONE, + payload: { + dataToRemove: payload, + curveIdx + } + }); + } + } else if (uiSweepType === _list_ui.LIST_UI_SWEEP_TYPE.MULTIPLICITY_ONE_RM && onPeak) { + yield (0, _effects.put)({ + type: _action_type.INTEGRATION.RM_ONE, + payload: { + dataToRemove: payload, + curveIdx + } + }); + } else if (uiSweepType === _list_ui.LIST_UI_SWEEP_TYPE.INTEGRATION_SET_REF && onPeak) { + yield (0, _effects.put)({ + type: _action_type.INTEGRATION.SET_REF, + payload: { + refData: payload, + curveIdx + } + }); + } else if (uiSweepType === _list_ui.LIST_UI_SWEEP_TYPE.MULTIPLICITY_ONE_CLICK && onPeak) { + const { + xExtent, + xL, + xU + } = payload; + if (xExtent) { + yield (0, _effects.put)({ + type: _action_type.MULTIPLICITY.ONE_CLICK_BY_UI, + payload: { + payloadData: xExtent, + curveIdx + } + }); + } else if (xL && xU) { + yield (0, _effects.put)({ + type: _action_type.MULTIPLICITY.ONE_CLICK_BY_UI, + payload: { + payloadData: { + xL, + xU + }, + curveIdx + } + }); + } + } else if (uiSweepType === _list_ui.LIST_UI_SWEEP_TYPE.MULTIPLICITY_PEAK_ADD) { + yield (0, _effects.put)({ + type: _action_type.MULTIPLICITY.PEAK_ADD_BY_UI_SAG, + payload + }); + } else if (uiSweepType === _list_ui.LIST_UI_SWEEP_TYPE.MULTIPLICITY_PEAK_RM && onPeak) { + yield (0, _effects.put)({ + type: _action_type.MULTIPLICITY.PEAK_RM_BY_UI, + payload + }); + } else if (uiSweepType === _list_ui.LIST_UI_SWEEP_TYPE.CYCLIC_VOLTA_ADD_MAX_PEAK && !onPeak) { + yield (0, _effects.put)({ + type: _action_type.CYCLIC_VOLTA_METRY.ADD_MAX_PEAK, + payload: { + peak: payload, + index: voltammetryPeakIdx, + jcampIdx: curveIdx + } + }); + } else if (uiSweepType === _list_ui.LIST_UI_SWEEP_TYPE.CYCLIC_VOLTA_RM_MAX_PEAK && onPeak) { + yield (0, _effects.put)({ + type: _action_type.CYCLIC_VOLTA_METRY.REMOVE_MAX_PEAK, + payload: { + index: voltammetryPeakIdx, + jcampIdx: curveIdx + } + }); + } else if (uiSweepType === _list_ui.LIST_UI_SWEEP_TYPE.CYCLIC_VOLTA_ADD_MIN_PEAK && !onPeak) { + yield (0, _effects.put)({ + type: _action_type.CYCLIC_VOLTA_METRY.ADD_MIN_PEAK, + payload: { + peak: payload, + index: voltammetryPeakIdx, + jcampIdx: curveIdx + } + }); + } else if (uiSweepType === _list_ui.LIST_UI_SWEEP_TYPE.CYCLIC_VOLTA_RM_MIN_PEAK && onPeak) { + yield (0, _effects.put)({ + type: _action_type.CYCLIC_VOLTA_METRY.REMOVE_MIN_PEAK, + payload: { + index: voltammetryPeakIdx, + jcampIdx: curveIdx + } + }); + } else if (uiSweepType === _list_ui.LIST_UI_SWEEP_TYPE.CYCLIC_VOLTA_ADD_PECKER && !onPecker) { + yield (0, _effects.put)({ + type: _action_type.CYCLIC_VOLTA_METRY.ADD_PECKER, + payload: { + peak: payload, + index: voltammetryPeakIdx, + jcampIdx: curveIdx + } + }); + } else if (uiSweepType === _list_ui.LIST_UI_SWEEP_TYPE.CYCLIC_VOLTA_RM_PECKER && onPecker) { + yield (0, _effects.put)({ + type: _action_type.CYCLIC_VOLTA_METRY.REMOVE_PECKER, + payload: { + index: voltammetryPeakIdx, + jcampIdx: curveIdx + } + }); + } else if (uiSweepType === _list_ui.LIST_UI_SWEEP_TYPE.CYCLIC_VOLTA_SET_REF && onPeak) { + yield (0, _effects.put)({ + type: _action_type.CYCLIC_VOLTA_METRY.SET_REF, + payload: { + index: voltammetryPeakIdx, + jcampIdx: curveIdx + } + }); + } else if (uiSweepType === _list_ui.LIST_UI_SWEEP_TYPE.PEAK_GROUP_SELECT) { + yield (0, _effects.put)({ + type: _action_type.UI.SUB_VIEWER.DISPLAY_VIEWER_AT, + payload + }); + } +} +const managerSagas = [(0, _effects.takeEvery)(_action_type.UI.CLICK_TARGET, clickUiTarget), (0, _effects.takeEvery)(_action_type.UI.SWEEP.SELECT, selectUiSweep), (0, _effects.takeEvery)(_action_type.UI.WHEEL.SCROLL, scrollUiWheel)]; +var _default = exports.default = managerSagas; \ No newline at end of file diff --git a/dist/setupTests.js b/dist/setupTests.js new file mode 100644 index 00000000..859d0d6e --- /dev/null +++ b/dist/setupTests.js @@ -0,0 +1,8 @@ +"use strict"; + +const Enzyme = require('enzyme'); +const AdapterModule = require('@wojtekmaj/enzyme-adapter-react-17'); +const Adapter = AdapterModule.default || AdapterModule; +Enzyme.configure({ + adapter: new Adapter() +}); \ No newline at end of file diff --git a/dist/third_party/jAnalyzer.js b/dist/third_party/jAnalyzer.js new file mode 100644 index 00000000..7d25625b --- /dev/null +++ b/dist/third_party/jAnalyzer.js @@ -0,0 +1,590 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +/* eslint-disable */ +// https://github.com/cheminfo-js/spectra/blob/master/packages/spectra-data/src/peakPicking/jAnalyzer.js + +/* + * This library implements the J analyser described by Cobas et al in the paper: + * A two-stage approach to automatic determination of 1H NMR coupling constants + */ +const patterns = ['s', 'd', 't', 'q', 'quint', 'h', 'sept', 'o', 'n']; +let symRatio = 1.5; +let maxErrorIter1 = 2.5; // Hz +let maxErrorIter2 = 1; // Hz +var _default = exports.default = { + /** + * The compilation process implements at the first stage a normalization procedure described by Golotvin et al. + * embedding in peak-component-counting method described by Hoyes et al. + * @param {object} signal + * @private + */ + compilePattern: function compilePattern(signal) { + signal.multiplicity = 'm'; + // 1.1 symmetrize + // It will add a set of peaks(signal.peaksComp) to the signal that will be used during + // the compilation process. The unit of those peaks will be in Hz + signal.symRank = symmetrizeChoiseBest(signal, maxErrorIter1, 1); + signal.asymmetric = true; + // Is the signal symmetric? + if (signal.symRank >= 0.95 && signal.peaksComp.length < 32) { + signal.asymmetric = false; + var i, j, n, P1, n2, maxFlagged; + let k = 1; + let Jc = []; + + // Loop over the possible number of coupling contributing to the multiplet + for (n = 0; n < 9; n++) { + // 1.2 Normalize. It makes a deep copy of the peaks before to modify them. + let peaks = normalize(signal, n); + // signal.peaksCompX = peaks; + let validPattern = false; // It will change to true, when we find the good patter + // Lets check if the signal could be a singulet. + if (peaks.length === 1 && n === 0) { + validPattern = true; + } else { + if (peaks.length <= 1) { + continue; + } + } + // 1.3 Establish a range for the Heights Hi [peaks.intensity*0.85,peaks.intensity*1.15]; + let ranges = getRanges(peaks); + n2 = Math.pow(2, n); + + // 1.4 Find a combination of integer heights Hi, one from each Si, that sums to 2^n. + let heights = null; + let counter = 1; + while (!validPattern && (heights = getNextCombination(ranges, n2)) !== null && counter < 400) { + // 2.1 Number the components of the multiplet consecutively from 1 to 2n, + // starting at peak 1 + let numbering = new Array(heights.length); + k = 1; + for (i = 0; i < heights.length; i++) { + numbering[i] = new Array(heights[i]); + for (j = 0; j < heights[i]; j++) { + numbering[i][j] = k++; + } + } + Jc = []; // The array to store the detected j-coupling + // 2.2 Set j = 1; J1 = P2 - P1. Flag components 1 and 2 as accounted for. + j = 1; + Jc.push(peaks[1].x - peaks[0].x); + P1 = peaks[0].x; + numbering[0].splice(0, 1); // Flagged + numbering[1].splice(0, 1); // Flagged + k = 1; + let nFlagged = 2; + maxFlagged = Math.pow(2, n) - 1; + while (Jc.length < n && nFlagged < maxFlagged && k < peaks.length) { + counter += 1; + // 4.1. Increment j. Set k to the number of the first unflagged component. + j++; + while (k < peaks.length && numbering[k].length === 0) { + k++; + } + if (k < peaks.length) { + // 4.2 Jj = Pk - P1. + Jc.push(peaks[k].x - peaks[0].x); + // Flag component k and, for each sum of the... + numbering[k].splice(0, 1); // Flageed + nFlagged++; + // Flag the other components of the multiplet + for (let u = 2; u <= j; u++) { + // TODO improve those loops + let jSum = 0; + for (i = 0; i < u; i++) { + jSum += Jc[i]; + } + for (i = 1; i < numbering.length; i++) { + // Maybe 0.25 Hz is too much? + if (Math.abs(peaks[i].x - (P1 + jSum)) < 0.25) { + numbering[i].splice(0, 1); // Flageed + nFlagged++; + break; + } + } + } + } + } + // Calculate the ideal patter by using the extracted j-couplings + let pattern = idealPattern(Jc); + // Compare the ideal pattern with the proposed intensities. + // All the intensities have to match to accept the multiplet + validPattern = true; + for (i = 0; i < pattern.length; i++) { + if (pattern[i].intensity !== heights[i]) { + validPattern = false; + } + } + } + // If we found a valid pattern we should inform about the pattern. + if (validPattern) { + updateSignal(signal, Jc); + } + } + } + // Before to return, change the units of peaksComp from Hz to PPM again + for (i = 0; i < signal.peaksComp.length; i++) { + signal.peaksComp[i].x /= signal.observe; + } + } +}; +/** + * @private + * update the signal + * @param {*} signal + * @param {*} Jc + */ +function updateSignal(signal, Jc) { + // Update the limits of the signal + let peaks = signal.peaksComp; // Always in Hz + let nbPeaks = peaks.length; + signal.startX = peaks[0].x / signal.observe - peaks[0].width; + signal.stopX = peaks[nbPeaks - 1].x / signal.observe + peaks[nbPeaks - 1].width; + + // signal.integralData.from = peaks[0].x / signal.observe - peaks[0].width * 3; + // signal.integralData.to = + // peaks[nbPeaks - 1].x / signal.observe + peaks[nbPeaks - 1].width * 3; + + // Compile the pattern and format the constant couplings + signal.maskPattern = signal.mask2; + signal.multiplicity = abstractPattern(signal, Jc); + signal.pattern = signal.multiplicity; // Our library depends on this parameter, but it is old + // console.log(signal); + /* if (DEBUG) { + console.log('Final j-couplings: ' + JSON.stringify(Jc)); + }*/ +} + +/** + * Returns the multiplet in the compact format + * @param {object} signal + * @param {object} Jc + * @return {string} + * @private + */ +function abstractPattern(signal, Jc) { + let tol = 0.05; + let i; + let pattern = ''; + let cont = 1; + let newNmrJs = []; + if (Jc && Jc.length > 0) { + Jc.sort(function (a, b) { + return Math.abs(b) - Math.abs(a); + }); + for (i = 0; i < Jc.length - 1; i++) { + if (Math.abs(Jc[i] - Jc[i + 1]) < tol) { + cont++; + } else { + newNmrJs.push({ + coupling: Math.abs(Jc[i]), + multiplicity: patterns[cont] + }); + pattern += patterns[cont]; + cont = 1; + } + } + newNmrJs.push({ + coupling: Math.abs(Jc[i]), + multiplicity: patterns[cont] + }); + pattern += patterns[cont]; + signal.nmrJs = newNmrJs; + } else { + pattern = 's'; + // if (Math.abs(signal.startX - signal.stopX) * signal.observe > 16) { + // pattern = 'br s'; + // } + } + return pattern; +} + +/** + * This function creates an ideal pattern from the given J-couplings + * @private + * @param {Array} Jc + * @return {*[]} + * @private + */ +function idealPattern(Jc) { + let hsum = Math.pow(2, Jc.length); + let i, j; + let pattern = [{ + x: 0, + intensity: hsum + }]; + // To split the initial height + for (i = 0; i < Jc.length; i++) { + for (j = pattern.length - 1; j >= 0; j--) { + pattern.push({ + x: pattern[j].x + Jc[i] / 2, + intensity: pattern[j].intensity / 2 + }); + pattern[j].x = pattern[j].x - Jc[i] / 2; + pattern[j].intensity = pattern[j].intensity / 2; + } + } + // To sum the heights in the same positions + pattern.sort(function compare(a, b) { + return a.x - b.x; + }); + for (j = pattern.length - 2; j >= 0; j--) { + if (Math.abs(pattern[j].x - pattern[j + 1].x) < 0.1) { + pattern[j].intensity += pattern[j + 1].intensity; + pattern.splice(j + 1, 1); + } + } + return pattern; +} + +/** + * Find a combination of integer heights Hi, one from each Si, that sums to 2n. + * @param {object} ranges + * @param {number} value + * @return {*} + * @private + */ +function getNextCombination(ranges, value) { + let half = Math.ceil(ranges.values.length * 0.5); + let lng = ranges.values.length; + let sum = 0; + let i, ok; + while (sum !== value) { + // Update the indexes to point at the next possible combination + ok = false; + while (!ok) { + ok = true; + ranges.currentIndex[ranges.active]++; + if (ranges.currentIndex[ranges.active] >= ranges.values[ranges.active].length) { + // In this case, there is no more possible combinations + if (ranges.active + 1 === half) { + return null; + } else { + // If this happens we need to try the next active peak + ranges.currentIndex[ranges.active] = 0; + ok = false; + ranges.active++; + } + } else { + ranges.active = 0; + } + } + // Sum the heights for this combination + sum = 0; + for (i = 0; i < half; i++) { + sum += ranges.values[i][ranges.currentIndex[i]] * 2; + } + if (ranges.values.length % 2 !== 0) { + sum -= ranges.values[half - 1][ranges.currentIndex[half - 1]]; + } + } + // If the sum is equal to the expected value, fill the array to return + if (sum === value) { + let heights = new Array(lng); + for (i = 0; i < half; i++) { + heights[i] = ranges.values[i][ranges.currentIndex[i]]; + heights[lng - i - 1] = ranges.values[i][ranges.currentIndex[i]]; + } + return heights; + } + return null; +} + +/** + * This function generates the possible values that each peak can contribute + * to the multiplet. + * @param {Array} peaks Array of objects with peaks information {intensity} + * @return {{values: Array, currentIndex: Array, active: number}} + * @private + */ +function getRanges(peaks) { + let ranges = new Array(peaks.length); + let currentIndex = new Array(peaks.length); + let min, max; + ranges[0] = [1]; + ranges[peaks.length - 1] = [1]; + currentIndex[0] = -1; + currentIndex[peaks.length - 1] = 0; + for (let i = 1; i < peaks.length - 1; i++) { + min = Math.round(peaks[i].intensity * 0.85); + max = Math.round(peaks[i].intensity * 1.15); + ranges[i] = []; + for (let j = min; j <= max; j++) { + ranges[i].push(j); + } + currentIndex[i] = 0; + } + return { + values: ranges, + currentIndex: currentIndex, + active: 0 + }; +} +/** + * Performs a symmetrization of the signal by using different aproximations to the center. + * It will return the result of the symmetrization that removes less peaks from the signal + * @param {object} signal + * @param {number} maxError + * @param {number} iteration + * @return {*} + * @private + */ +function symmetrizeChoiseBest(signal, maxError, iteration) { + let symRank1 = symmetrize(signal, maxError, iteration); + let tmpPeaks = signal.peaksComp; + let tmpMask = signal.mask; + let cs = signal.delta1; + signal.delta1 = (signal.peaks[0].x + signal.peaks[signal.peaks.length - 1].x) / 2; + let symRank2 = symmetrize(signal, maxError, iteration); + if (signal.peaksComp.length > tmpPeaks.length) { + return symRank2; + } else { + signal.delta1 = cs; + signal.peaksComp = tmpPeaks; + signal.mask = tmpMask; + return symRank1; + } +} + +/** + * This function will return a set of symmetric peaks that will + * be the enter point for the patter compilation process. + * @param {object} signal + * @param {number} maxError + * @param {number} iteration + * @return {number} + * @private + */ +function symmetrize(signal, maxError, iteration) { + // Before to symmetrize we need to keep only the peaks that possibly conforms the multiplete + let max, min, avg, ratio, avgWidth, i; + let peaks = new Array(signal.peaks.length); + // Make a deep copy of the peaks and convert PPM ot HZ + for (i = 0; i < peaks.length; i++) { + peaks[i] = { + x: signal.peaks[i].x * signal.observe, + intensity: signal.peaks[i].intensity, + width: signal.peaks[i].width + }; + } + // Join the peaks that are closer than 0.25 Hz + for (i = peaks.length - 2; i >= 0; i--) { + if (Math.abs(peaks[i].x - peaks[i + 1].x) < 0.25) { + peaks[i].x = peaks[i].x * peaks[i].intensity + peaks[i + 1].x * peaks[i + 1].intensity; + peaks[i].intensity = peaks[i].intensity + peaks[i + 1].intensity; + peaks[i].x /= peaks[i].intensity; + peaks[i].intensity /= 2; + peaks[i].width += peaks[i + 1].width; + peaks.splice(i + 1, 1); + } + } + signal.peaksComp = peaks; + let nbPeaks = peaks.length; + let mask = new Array(nbPeaks); + signal.mask = mask; + let left = 0; + let right = peaks.length - 1; + let cs = signal.delta1 * signal.observe; + let middle = [(peaks[0].x + peaks[nbPeaks - 1].x) / 2, 1]; + maxError = error(Math.abs(cs - middle[0])); + let heightSum = 0; + // We try to symmetrize the extreme peaks. We consider as candidates for symmetricing those which have + // ratio smaller than 3 + for (i = 0; i < nbPeaks; i++) { + mask[i] = true; + heightSum += signal.peaks[i].intensity; + } + while (left <= right) { + mask[left] = true; + mask[right] = true; + if (left === right) { + if (nbPeaks > 2 && Math.abs(peaks[left].x - cs) > maxError) { + mask[left] = false; + } + } else { + max = Math.max(peaks[left].intensity, peaks[right].intensity); + min = Math.min(peaks[left].intensity, peaks[right].intensity); + ratio = max / min; + if (ratio > symRatio) { + if (peaks[left].intensity === min) { + mask[left] = false; + right++; + } else { + mask[right] = false; + left--; + } + } else { + let diffL = Math.abs(peaks[left].x - cs); + let diffR = Math.abs(peaks[right].x - cs); + if (Math.abs(diffL - diffR) < maxError) { + avg = Math.min(peaks[left].intensity, peaks[right].intensity); + avgWidth = Math.min(peaks[left].width, peaks[right].width); + peaks[left].intensity = peaks[right].intensity = avg; + peaks[left].width = peaks[right].width = avgWidth; + middle = [middle[0] + (peaks[right].x + peaks[left].x) / 2, middle[1] + 1]; + } else { + if (Math.max(diffL, diffR) === diffR) { + mask[right] = false; + left--; + } else { + mask[left] = false; + right++; + } + } + } + } + left++; + right--; + // Only alter cs if it is the first iteration of the sym process. + if (iteration === 1) { + cs = chemicalShift(peaks, mask); + // There is not more available peaks + if (isNaN(cs)) { + return 0; + } + } + maxError = error(Math.abs(cs - middle[0] / middle[1])); + } + // To remove the weak peaks and recalculate the cs + for (i = nbPeaks - 1; i >= 0; i--) { + if (mask[i] === false) { + peaks.splice(i, 1); + } + } + cs = chemicalShift(peaks); + if (isNaN(cs)) { + return 0; + } + signal.delta1 = cs / signal.observe; + // Now, the peak should be symmetric in heights, but we need to know if it is symmetric in x + let symFactor = 0; + let weight = 0; + if (peaks.length > 1) { + for (i = Math.ceil(peaks.length / 2) - 1; i >= 0; i--) { + symFactor += (3 + Math.min(Math.abs(peaks[i].x - cs), Math.abs(peaks[peaks.length - 1 - i].x - cs))) / (3 + Math.max(Math.abs(peaks[i].x - cs), Math.abs(peaks[peaks.length - 1 - i].x - cs))) * peaks[i].intensity; + weight += peaks[i].intensity; + } + symFactor /= weight; + } else { + if (peaks.length === 1) { + symFactor = 1; + } + } + let newSumHeights = 0; + for (i = 0; i < peaks.length; i++) { + newSumHeights += peaks[i].intensity; + } + symFactor -= (heightSum - newSumHeights) / heightSum * 0.12; // Removed peaks penalty + // Sometimes we need a second opinion after the first symmetrization. + if (symFactor > 0.8 && symFactor < 0.97 && iteration < 2) { + return symmetrize(signal, maxErrorIter2, 2); + } else { + // Center the given pattern at cs and symmetrize x + if (peaks.length > 1) { + let dxi; + for (i = Math.ceil(peaks.length / 2) - 1; i >= 0; i--) { + dxi = (peaks[i].x - peaks[peaks.length - 1 - i].x) / 2.0; + peaks[i].x = cs + dxi; + peaks[peaks.length - 1 - i].x = cs - dxi; + } + } + } + return symFactor; +} +/** + * Error validator + * @param {number} value + * @return {number} + * @private + */ +function error(value) { + let maxError = value * 2.5; + if (maxError < 0.75) { + maxError = 0.75; + } + if (maxError > 3) { + maxError = 3; + } + return maxError; +} +/** + * @private + * 2 stages normalizarion of the peaks heights to Math.pow(2,n). + * Creates a new mask with the peaks that could contribute to the multiplete + * @param {object} signal + * @param {number} n + * @return {*} + */ +function normalize(signal, n) { + // Perhaps this is slow + let peaks = JSON.parse(JSON.stringify(signal.peaksComp)); + let norm = 0; + let norm2 = 0; + for (var i = 0; i < peaks.length; i++) { + norm += peaks[i].intensity; + } + norm = Math.pow(2, n) / norm; + signal.mask2 = JSON.parse(JSON.stringify(signal.mask)); + let index = signal.mask2.length - 1; + for (i = peaks.length - 1; i >= 0; i--) { + peaks[i].intensity *= norm; + while (index >= 0 && signal.mask2[index] === false) { + index--; + } + if (peaks[i].intensity < 0.75) { + peaks.splice(i, 1); + signal.mask2[index] = false; + } else { + norm2 += peaks[i].intensity; + } + index--; + } + norm2 = Math.pow(2, n) / norm2; + for (i = peaks.length - 1; i >= 0; i--) { + peaks[i].intensity *= norm2; + } + return peaks; +} + +/** + * @private + * Calculates the chemical shift as the weighted sum of the peaks + * @param {Array} peaks + * @param {Array} mask + * @return {number} + */ +function chemicalShift(peaks, mask) { + let sum = 0; + let cs = 0; + let i, area; + if (mask) { + for (i = 0; i < peaks.length; i++) { + if (mask[i] === true) { + area = getArea(peaks[i]); + sum += area; + cs += area * peaks[i].x; + } + } + } else { + for (i = 0; i < peaks.length; i++) { + area = getArea(peaks[i]); + sum += area; + cs += area * peaks[i].x; + } + } + return cs / sum; +} + +/** + * Return the area of a Lorentzian function + * @param {object} peak - object with peak information + * @return {number} + * @private + */ +function getArea(peak) { + return Math.abs(peak.intensity * peak.width * 1.57); // 1.772453851); +} \ No newline at end of file diff --git a/dist/third_party/peakInterval.js b/dist/third_party/peakInterval.js new file mode 100644 index 00000000..406996d0 --- /dev/null +++ b/dist/third_party/peakInterval.js @@ -0,0 +1,105 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.getPeakIntervals = void 0; +var _mlSavitzkyGolayGeneralized = _interopRequireDefault(require("ml-savitzky-golay-generalized")); +// https://github.com/mljs/global-spectral-deconvolution/blob/master/src/gsd.js + +/* eslint-disable no-plusplus, operator-linebreak */ + +const options = { + sgOptions: { + windowSize: 9, + polynomial: 3 + }, + minMaxRatio: 0.00025, + broadRatio: 0.0, + maxCriteria: true, + smoothY: true, + realTopDetection: false, + heightFactor: 0, + boundaries: false, + derivativeThreshold: -1 +}; +const getPeakIntervals = entity => { + const data = entity.spectra[0].data[0]; + const X = data.x; + const dX = X[1] - X[0]; + const Y = (0, _mlSavitzkyGolayGeneralized.default)(data.y, data.x, { + windowSize: options.sgOptions.windowSize, + polynomial: options.sgOptions.polynomial, + derivative: 0 + }); + const dY = (0, _mlSavitzkyGolayGeneralized.default)(data.y, data.x, { + windowSize: options.sgOptions.windowSize, + polynomial: options.sgOptions.polynomial, + derivative: 1 + }); + const ddY = (0, _mlSavitzkyGolayGeneralized.default)(data.y, data.x, { + windowSize: options.sgOptions.windowSize, + polynomial: options.sgOptions.polynomial, + derivative: 2 + }); + let maxDdy = 0; + let maxY = 0; + for (let i = 0; i < Y.length; i++) { + if (Math.abs(ddY[i]) > maxDdy) { + maxDdy = Math.abs(ddY[i]); + } + if (Math.abs(Y[i]) > maxY) { + maxY = Math.abs(Y[i]); + } + } + let lastMax = null; + let lastMin = null; + const minddY = new Array(Y.length - 2); + const intervalL = new Array(Y.length); + const intervalR = new Array(Y.length); + const broadMask = new Array(Y.length - 2); + let minddYLen = 0; + let intervalLLen = 0; + let intervalRLen = 0; + let broadMaskLen = 0; + for (let i = 1; i < Y.length - 1; ++i) { + // filter based on derivativeThreshold + if (Math.abs(dY[i]) > options.derivativeThreshold) { + // Minimum in first derivative + if (dY[i] < dY[i - 1] && dY[i] <= dY[i + 1] || dY[i] <= dY[i - 1] && dY[i] < dY[i + 1]) { + lastMin = { + x: X[i], + index: i + }; + if (dX > 0 && lastMax !== null) { + intervalL[intervalLLen++] = lastMax; + intervalR[intervalRLen++] = lastMin; + } + } + + // Maximum in first derivative + if (dY[i] >= dY[i - 1] && dY[i] > dY[i + 1] || dY[i] > dY[i - 1] && dY[i] >= dY[i + 1]) { + lastMax = { + x: X[i], + index: i + }; + if (dX < 0 && lastMin !== null) { + intervalL[intervalLLen++] = lastMax; + intervalR[intervalRLen++] = lastMin; + } + } + } + // Minimum in second derivative + if (ddY[i] < ddY[i - 1] && ddY[i] < ddY[i + 1]) { + // TODO should we change this to have 3 arrays ? Huge overhead creating arrays + minddY[minddYLen++] = i; // ( [X[i], Y[i], i] ); + broadMask[broadMaskLen++] = Math.abs(ddY[i]) <= options.broadRatio * maxDdy; + } + } + return { + intervalL, + intervalR + }; +}; +exports.getPeakIntervals = getPeakIntervals; \ No newline at end of file diff --git a/package.json b/package.json index 50781776..5e811913 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,7 @@ }, "license": "AGPL-3.0", "dependencies": { - "@complat/react-svg-file-zoom-pan": "1.1.4", + "@complat/react-svg-file-zoom-pan": "1.1.5", "@emotion/react": "^11.11.1", "@emotion/styled": "^11.11.0", "@mdi/js": "^7.2.96", @@ -16,6 +16,7 @@ "@mui/icons-material": "^5.14.9", "@mui/material": "^5.14.9", "@mui/styles": "^5.14.9", + "@pmmmwh/react-refresh-webpack-plugin": "0.4.3", "@popperjs/core": "^2.11.8", "@types/jest": "^29.5.0", "@types/node": "^18.15.11", @@ -26,12 +27,13 @@ "classnames": "^2.3.2", "d3": "^7.8.5", "d3-tip": "^0.9.1", + "html-webpack-plugin": "4.5.2", "jcampconverter": "4.1.0", "ml-savitzky-golay-generalized": "1.1.1", "prop-types": "^15.8.1", "react-dropzone": "^8.0.3", "react-quill": "^2.0.0", - "react-redux": "^7.2.0", + "react-redux": "7.2.9", "redux": "^4.1.1", "redux-saga": "^1.1.3", "redux-undo": "^1.1.0", @@ -40,8 +42,8 @@ "typescript": "^5.0.4" }, "scripts": { - "start": "react-scripts start", - "build": "react-scripts build", + "start": "react-scripts --max_old_space_size=12288 start", + "build": "react-scripts --max_old_space_size=12288 build", "compile": "rm -rf dist && NODE_ENV=production babel --ignore tests,stories ./src --out-dir ./dist", "test": "react-scripts test --env=jsdom --verbose --testPathIgnorePatterns=./src/__tests__/fixtures/", "test:coverage": "CI=true react-scripts test --env=jsdom --verbose --testPathIgnorePatterns=./src/__tests__/fixtures/ --coverage", diff --git a/src/__tests__/fixtures/lc_ms_jcamp.js b/src/__tests__/fixtures/lc_ms_jcamp.js new file mode 100644 index 00000000..6975c2c1 --- /dev/null +++ b/src/__tests__/fixtures/lc_ms_jcamp.js @@ -0,0 +1,2324 @@ +const lcmsJcamp = ` +##TITLE=Spectrum +##JCAMP-DX=5.00 $$ chemotion-converter-app (1.8.0) +##DATA TYPE=MASS SPECTRUM +##DATA CLASS=NTUPLES +##ORIGIN= +##OWNER= +##XUNITS=m/z +##YUNITS=Intensity +##SOFTWARE=openlab +##SCAN_MODE=negativ +##TYPE=ms spectrum +##NTUPLES=MULTIDIMENSIONAL +##VAR_NAME=T, m/z, Intensity +##SYMBOL=T, X, Y +##VAR_TYPE=PAGE, X, Y +##VAR_DIM=1200, 572, 572 +##UNITS=, m/z, Intensity +##PAGE=T= 0.009 +##XYDATA=(XY..XY) +100.5999984741211, 31.25 +101.30000305175781, 42.5 +101.80000305175781, 25.0 +102.0, 25.0 +102.80000305175781, 18.75 +104.30000305175781, 4.375 +105.19999694824219, 21.875 +105.9000015258789, 13.75 +107.0999984741211, 36.25 +108.0, 10.0 +108.80000305175781, 10.0 +112.30000305175781, 60.0 +113.80000305175781, 13.125 +114.9000015258789, 19.375 +116.9000015258789, 3.75 +117.69999694824219, 26.25 +118.9000015258789, 35.625 +119.5, 15.625 +120.30000305175781, 18.75 +121.0999984741211, 31.25 +122.0999984741211, 17.5 +123.5999984741211, 14.375 +124.69999694824219, 36.875 +125.80000305175781, 34.375 +126.69999694824219, 26.875 +127.19999694824219, 15.0 +127.80000305175781, 15.0 +129.3000030517578, 0.0 +129.89999389648438, 9.375 +130.39999389648438, 15.625 +131.6999969482422, 51.25 +132.8000030517578, 30.625 +133.3000030517578, 27.5 +135.1999969482422, 3.75 +136.1999969482422, 8.75 +137.1999969482422, 46.25 +138.0, 51.25 +139.3000030517578, 23.125 +142.3000030517578, 41.25 +143.1999969482422, 10.625 +144.10000610351562, 40.0 +145.6999969482422, 23.75 +146.6999969482422, 9.375 +148.5, 1.25 +149.8000030517578, 45.625 +150.3000030517578, 50.0 +151.10000610351562, 36.875 +152.10000610351562, 35.625 +152.6999969482422, 7.5 +153.8000030517578, 9.375 +155.10000610351562, 11.25 +156.0, 29.375 +156.6999969482422, 13.75 +157.5, 26.25 +158.10000610351562, 26.25 +160.8000030517578, 5.625 +162.10000610351562, 39.375 +163.0, 41.875 +163.39999389648438, 38.125 +164.39999389648438, 33.125 +165.10000610351562, 19.375 +165.6999969482422, 8.125 +166.6999969482422, 4.375 +167.60000610351562, 23.75 +168.1999969482422, 29.375 +168.8000030517578, 8.75 +169.5, 1.25 +171.6999969482422, 39.375 +173.10000610351562, 8.75 +173.5, 13.125 +174.3000030517578, 24.375 +175.0, 31.25 +175.89999389648438, 48.125 +176.39999389648438, 36.875 +178.3000030517578, 5.0 +178.8000030517578, 5.625 +179.6999969482422, 23.125 +180.6999969482422, 8.75 +181.89999389648438, 43.125 +183.10000610351562, 30.0 +183.8000030517578, 21.25 +184.39999389648438, 1.25 +185.89999389648438, 14.375 +186.5, 15.625 +187.1999969482422, 38.75 +187.89999389648438, 55.0 +188.8000030517578, 28.125 +189.5, 28.75 +192.5, 16.875 +193.10000610351562, 14.375 +193.8000030517578, 31.875 +194.3000030517578, 41.875 +195.6999969482422, 6.875 +196.39999389648438, 29.375 +197.5, 1.25 +198.39999389648438, 18.125 +199.1999969482422, 47.5 +200.1999969482422, 39.375 +201.0, 50.0 +201.60000610351562, 36.25 +204.1999969482422, 4.375 +204.5, 5.0 +206.0, 49.375 +206.60000610351562, 43.75 +207.6999969482422, 35.0 +208.1999969482422, 20.0 +208.8000030517578, 9.375 +209.8000030517578, 3.75 +212.1999969482422, 36.25 +213.0, 20.625 +213.8000030517578, 40.0 +214.60000610351562, 26.875 +215.0, 21.875 +217.6999969482422, 12.5 +219.3000030517578, 50.0 +219.8000030517578, 47.5 +221.3000030517578, 8.75 +224.0, 20.0 +224.8000030517578, 33.125 +225.8000030517578, 31.875 +226.6999969482422, 31.875 +230.0, 20.0 +231.0, 63.125 +232.5, 36.875 +233.3000030517578, 2.5 +235.6999969482422, 0.625 +236.10000610351562, 10.625 +236.89999389648438, 16.875 +237.5, 23.75 +238.3000030517578, 40.0 +238.8000030517578, 58.125 +239.6999969482422, 43.75 +240.3000030517578, 10.625 +241.3000030517578, 1.875 +243.1999969482422, 38.125 +244.1999969482422, 43.75 +244.89999389648438, 50.0 +245.1999969482422, 49.375 +249.10000610351562, 19.375 +249.8000030517578, 21.875 +250.8000030517578, 48.125 +251.6999969482422, 22.5 +253.1999969482422, 15.625 +254.5, 10.0 +255.10000610351562, 33.75 +255.60000610351562, 18.75 +256.20001220703125, 23.75 +257.1000061035156, 8.125 +257.6000061035156, 10.625 +258.20001220703125, 13.125 +261.1000061035156, 63.75 +262.20001220703125, 16.25 +262.70001220703125, 31.25 +263.3999938964844, 41.25 +264.70001220703125, 29.375 +267.8999938964844, 23.75 +268.79998779296875, 34.375 +269.70001220703125, 27.5 +270.5, 3.125 +271.20001220703125, 20.0 +271.70001220703125, 6.875 +271.8999938964844, 6.875 +273.79998779296875, 30.625 +274.20001220703125, 36.875 +274.6000061035156, 33.125 +275.79998779296875, 33.75 +276.8999938964844, 16.875 +280.0, 25.0 +280.79998779296875, 49.375 +281.3999938964844, 23.125 +281.79998779296875, 35.0 +282.29998779296875, 23.75 +283.1000061035156, 15.625 +284.8999938964844, 2.5 +285.79998779296875, 8.125 +286.70001220703125, 21.875 +287.20001220703125, 16.25 +288.0, 18.75 +288.70001220703125, 10.0 +289.70001220703125, 10.625 +290.5, 25.0 +292.8999938964844, 37.5 +294.1000061035156, 28.75 +294.70001220703125, 45.0 +295.5, 50.0 +298.1000061035156, 23.75 +298.6000061035156, 5.625 +299.3999938964844, 41.25 +299.79998779296875, 45.0 +300.1000061035156, 45.0 +301.1000061035156, 23.75 +302.0, 26.25 +304.3999938964844, 7.5 +305.20001220703125, 39.375 +306.3999938964844, 54.375 +307.0, 23.125 +308.0, 16.25 +308.8999938964844, 1.25 +311.79998779296875, 59.375 +312.79998779296875, 45.625 +313.79998779296875, 24.375 +314.5, 12.5 +316.0, 4.375 +317.29998779296875, 40.625 +317.8999938964844, 66.875 +318.79998779296875, 18.125 +320.1000061035156, 29.375 +320.70001220703125, 0.625 +323.20001220703125, 4.375 +323.6000061035156, 29.375 +324.6000061035156, 41.25 +324.8999938964844, 38.75 +326.0, 22.5 +326.3999938964844, 22.5 +327.20001220703125, 18.75 +329.3999938964844, 13.125 +330.5, 42.5 +331.1000061035156, 37.5 +332.1000061035156, 35.625 +332.79998779296875, 2.5 +335.70001220703125, 17.5 +336.5, 27.5 +337.5, 36.875 +338.20001220703125, 32.5 +339.8999938964844, 0.0 +342.3999938964844, 28.75 +343.5, 31.25 +344.1000061035156, 34.375 +344.79998779296875, 21.25 +347.29998779296875, 1.875 +348.29998779296875, 8.75 +349.8999938964844, 59.375 +350.5, 37.5 +351.6000061035156, 29.375 +352.3999938964844, 30.0 +354.20001220703125, 12.5 +354.70001220703125, 3.75 +355.6000061035156, 46.25 +356.20001220703125, 28.75 +356.79998779296875, 50.625 +357.3999938964844, 42.5 +357.8999938964844, 25.625 +358.6000061035156, 1.25 +361.0, 36.25 +361.79998779296875, 38.125 +362.5, 44.375 +363.8999938964844, 26.25 +366.1000061035156, 14.375 +367.1000061035156, 26.875 +368.1000061035156, 52.5 +369.70001220703125, 21.875 +370.5, 15.625 +372.5, 11.25 +373.20001220703125, 9.375 +374.1000061035156, 35.625 +374.8999938964844, 11.875 +375.5, 23.125 +375.8999938964844, 30.625 +376.5, 15.625 +377.20001220703125, 19.375 +378.29998779296875, 28.75 +379.5, 23.125 +380.29998779296875, 20.625 +380.6000061035156, 20.0 +381.3999938964844, 41.875 +382.5, 33.75 +383.6000061035156, 12.5 +385.79998779296875, 10.0 +386.20001220703125, 7.5 +386.8999938964844, 23.75 +387.29998779296875, 25.625 +388.1000061035156, 48.125 +388.8999938964844, 19.375 +391.79998779296875, 23.75 +392.70001220703125, 51.25 +393.5, 26.25 +394.0, 33.125 +394.70001220703125, 13.125 +396.0, 1.25 +397.20001220703125, 10.0 +397.79998779296875, 13.125 +399.0, 15.0 +399.79998779296875, 30.0 +400.6000061035156, 20.625 +401.1000061035156, 18.75 +401.79998779296875, 9.375 +403.20001220703125, 34.375 +405.5, 15.0 +406.20001220703125, 42.5 +406.8999938964844, 28.125 +408.79998779296875, 18.75 +409.20001220703125, 11.25 +410.8999938964844, 24.375 +411.5, 18.75 +412.1000061035156, 25.625 +412.70001220703125, 34.375 +413.20001220703125, 35.625 +414.3999938964844, 27.5 +415.1000061035156, 5.0 +416.79998779296875, 2.5 +417.29998779296875, 37.5 +418.1000061035156, 35.0 +419.1000061035156, 11.25 +419.6000061035156, 10.0 +421.1000061035156, 30.625 +422.5, 4.375 +423.20001220703125, 5.0 +423.8999938964844, 12.5 +424.6000061035156, 21.875 +425.20001220703125, 54.375 +426.1000061035156, 22.5 +426.6000061035156, 25.625 +427.20001220703125, 9.375 +428.0, 6.875 +428.6000061035156, 30.0 +429.79998779296875, 8.125 +430.5, 43.125 +431.20001220703125, 16.25 +431.8999938964844, 21.25 +433.29998779296875, 27.5 +433.8999938964844, 11.875 +434.8999938964844, 2.5 +435.6000061035156, 29.375 +436.1000061035156, 8.125 +436.70001220703125, 43.75 +437.70001220703125, 40.625 +438.3999938964844, 32.5 +439.20001220703125, 51.25 +441.6000061035156, 0.625 +442.20001220703125, 14.375 +443.1000061035156, 33.125 +443.5, 26.25 +444.3999938964844, 20.0 +445.20001220703125, 26.25 +445.79998779296875, 28.125 +447.70001220703125, 10.0 +448.1000061035156, 14.375 +448.6000061035156, 24.375 +449.3999938964844, 34.375 +450.29998779296875, 23.75 +451.0, 10.0 +451.70001220703125, 6.875 +454.1000061035156, 5.625 +455.0, 26.25 +455.70001220703125, 53.75 +456.6000061035156, 27.5 +457.5, 31.875 +458.0, 1.875 +459.29998779296875, 5.0 +460.1000061035156, 37.5 +461.20001220703125, 8.75 +462.29998779296875, 31.25 +463.0, 23.75 +464.0, 9.375 +465.3999938964844, 18.75 +467.6000061035156, 23.125 +468.6000061035156, 53.75 +469.8999938964844, 24.375 +470.5, 28.125 +471.3999938964844, 11.875 +472.20001220703125, 10.625 +473.6000061035156, 8.125 +474.3999938964844, 32.5 +475.5, 30.0 +476.3999938964844, 19.375 +477.29998779296875, 46.25 +479.1000061035156, 23.75 +480.29998779296875, 21.25 +480.8999938964844, 36.25 +481.5, 46.25 +482.0, 40.625 +483.1000061035156, 22.5 +484.1000061035156, 15.0 +485.20001220703125, 0.625 +485.70001220703125, 6.875 +486.70001220703125, 47.5 +488.0, 30.0 +488.70001220703125, 25.0 +489.6000061035156, 22.5 +490.5, 19.375 +491.3999938964844, 5.0 +492.3999938964844, 28.125 +493.6000061035156, 43.75 +494.79998779296875, 33.75 +495.8999938964844, 23.125 +496.3999938964844, 14.375 +498.79998779296875, 36.25 +499.79998779296875, 26.875 +500.29998779296875, 43.125 +501.0, 40.0 +502.0, 25.0 +504.70001220703125, 18.125 +505.6000061035156, 41.25 +506.3999938964844, 40.0 +508.20001220703125, 4.375 +510.79998779296875, 27.5 +512.2000122070312, 72.5 +513.0999755859375, 23.125 +513.4000244140625, 23.125 +514.2000122070312, 18.75 +515.9000244140625, 22.5 +518.0, 24.375 +518.5, 9.375 +519.5, 23.75 +520.4000244140625, 23.125 +521.0, 11.875 +522.9000244140625, 33.75 +524.2999877929688, 36.25 +525.5999755859375, 26.25 +526.7999877929688, 2.5 +528.2999877929688, 1.875 +530.0999755859375, 19.375 +530.9000244140625, 58.125 +531.7999877929688, 31.875 +532.5, 32.5 +533.4000244140625, 24.375 +534.4000244140625, 0.625 +534.7999877929688, 4.375 +535.9000244140625, 29.375 +537.4000244140625, 48.125 +538.0, 43.75 +538.7999877929688, 21.25 +542.0, 25.625 +542.9000244140625, 38.75 +543.9000244140625, 45.625 +544.7999877929688, 14.375 +545.7000122070312, 25.625 +546.5999755859375, 9.375 +549.0999755859375, 48.75 +549.9000244140625, 13.75 +550.5999755859375, 8.75 +551.4000244140625, 23.125 +552.7000122070312, 1.875 +554.0, 36.25 +555.0999755859375, 38.75 +555.7000122070312, 55.0 +556.4000244140625, 58.125 +557.4000244140625, 53.75 +560.4000244140625, 11.25 +561.2000122070312, 20.625 +561.7000122070312, 19.375 +562.4000244140625, 33.75 +563.0999755859375, 31.25 +564.7999877929688, 1.875 +566.2999877929688, 6.25 +567.2999877929688, 35.625 +567.9000244140625, 50.625 +568.5, 46.875 +569.9000244140625, 12.5 +570.5, 22.5 +573.0999755859375, 4.375 +573.7000122070312, 11.25 +574.4000244140625, 23.125 +575.7000122070312, 22.5 +576.4000244140625, 21.25 +577.2000122070312, 23.125 +578.2000122070312, 0.625 +579.2999877929688, 6.875 +579.7000122070312, 5.625 +580.4000244140625, 35.0 +580.9000244140625, 25.0 +581.5999755859375, 33.125 +583.2000122070312, 22.5 +585.2000122070312, 1.875 +587.5, 68.75 +588.9000244140625, 21.25 +590.7999877929688, 20.0 +592.2999877929688, 21.875 +593.5, 51.875 +594.5999755859375, 34.375 +595.2999877929688, 50.0 +597.2000122070312, 0.625 +598.5, 42.5 +599.5, 45.625 +600.4000244140625, 30.0 +601.0999755859375, 22.5 +601.5999755859375, 15.0 +603.9000244140625, 4.375 +604.7000122070312, 6.875 +605.5999755859375, 25.0 +606.5999755859375, 19.375 +607.0, 24.375 +607.5, 19.375 +608.0999755859375, 32.5 +610.2999877929688, 3.125 +611.0999755859375, 46.25 +612.2000122070312, 56.25 +613.4000244140625, 38.75 +614.7999877929688, 10.0 +615.5, 2.5 +617.5, 46.25 +618.0, 28.125 +618.7999877929688, 19.375 +620.2000122070312, 38.125 +622.2999877929688, 5.625 +623.0, 10.625 +623.5999755859375, 38.125 +624.0999755859375, 40.625 +625.2000122070312, 46.875 +626.0, 10.625 +627.2000122070312, 5.0 +628.5999755859375, 24.375 +629.5999755859375, 58.75 +630.7000122070312, 56.25 +631.5, 31.875 +631.9000244140625, 27.5 +632.5, 11.25 +633.0, 24.375 +634.2000122070312, 18.125 +636.2999877929688, 15.0 +637.2999877929688, 27.5 +639.0, 8.75 +641.4000244140625, 21.25 +642.5, 40.0 +643.5999755859375, 36.875 +645.0, 8.75 +646.2000122070312, 10.0 +647.0999755859375, 16.25 +648.4000244140625, 7.5 +649.2999877929688, 23.125 +649.7000122070312, 24.375 +650.2000122070312, 37.5 +651.0999755859375, 17.5 +652.5999755859375, 16.875 +654.2000122070312, 57.5 +655.4000244140625, 36.25 +655.9000244140625, 41.25 +656.4000244140625, 34.375 +657.0, 10.0 +657.5999755859375, 18.75 +658.5999755859375, 4.375 +659.7999877929688, 2.5 +661.5, 28.75 +662.5999755859375, 27.5 +663.2000122070312, 25.625 +664.0999755859375, 35.0 +665.4000244140625, 21.25 +666.0, 18.125 +667.2000122070312, 29.375 +668.0999755859375, 40.0 +669.0, 12.5 +669.5, 8.75 +669.9000244140625, 3.125 +672.7000122070312, 8.75 +674.2000122070312, 56.875 +674.7999877929688, 58.75 +675.9000244140625, 53.125 +676.5, 50.625 +678.7000122070312, 20.0 +679.5999755859375, 45.0 +680.2000122070312, 15.625 +680.9000244140625, 23.125 +682.0999755859375, 6.875 +684.7999877929688, 8.125 +685.5, 28.75 +686.4000244140625, 58.75 +687.2000122070312, 39.375 +687.5999755859375, 40.625 +688.5999755859375, 4.375 +689.4000244140625, 7.5 +690.0999755859375, 3.125 +691.7999877929688, 5.625 +692.0999755859375, 6.875 +692.7999877929688, 8.125 +693.0999755859375, 11.25 +694.0999755859375, 23.75 +695.7000122070312, 12.5 +696.7000122070312, 25.625 +698.0999755859375, 32.5 +699.0, 64.375 +700.2000122070312, 28.75 +700.9000244140625, 43.125 +701.7000122070312, 4.375 +706.2999877929688, 49.375 +707.0999755859375, 15.625 +708.0, 21.25 +708.9000244140625, 13.125 +710.0, 23.125 +710.9000244140625, 43.75 +711.9000244140625, 34.375 +712.7000122070312, 18.125 +713.4000244140625, 4.375 +714.0, 19.375 +716.2999877929688, 14.375 +717.5999755859375, 45.625 +718.7999877929688, 60.0 +719.2999877929688, 31.25 +720.2999877929688, 42.5 +721.0999755859375, 13.75 +721.9000244140625, 2.5 +722.7000122070312, 26.25 +724.0, 30.625 +725.4000244140625, 12.5 +727.4000244140625, 26.25 +728.7999877929688, 22.5 +730.4000244140625, 41.875 +731.5999755859375, 48.125 +732.5, 42.5 +733.0, 18.75 +734.2999877929688, 3.75 +736.0999755859375, 45.0 +736.9000244140625, 13.75 +737.7000122070312, 16.875 +738.9000244140625, 3.75 +739.5, 0.625 +740.7999877929688, 23.125 +741.5999755859375, 40.625 +742.5999755859375, 60.0 +743.4000244140625, 70.625 +744.7000122070312, 9.375 +745.2000122070312, 18.75 +745.7000122070312, 13.75 +748.7999877929688, 21.875 +749.2000122070312, 27.5 +750.9000244140625, 41.25 +751.5, 36.25 +752.2999877929688, 32.5 +754.2000122070312, 15.625 +755.5999755859375, 38.75 +756.4000244140625, 12.5 +757.5999755859375, 11.25 +760.7000122070312, 16.25 +761.4000244140625, 50.0 +762.2999877929688, 51.25 +763.2000122070312, 43.75 +764.0, 19.375 +764.5, 3.75 +766.2000122070312, 10.0 +767.2999877929688, 21.25 +768.2999877929688, 23.125 +769.5999755859375, 5.0 +770.5999755859375, 0.625 +773.5, 75.0 +774.5, 46.875 +774.9000244140625, 46.875 +776.7999877929688, 28.75 +778.4000244140625, 6.875 +779.5999755859375, 6.875 +780.5, 4.375 +781.2000122070312, 11.875 +782.2000122070312, 25.0 +783.0, 46.25 +784.5, 29.375 +785.5999755859375, 45.0 +786.7999877929688, 57.5 +788.0999755859375, 41.25 +791.5, 10.0 +792.2000122070312, 18.75 +793.0, 36.25 +793.7000122070312, 30.625 +795.0999755859375, 45.0 +796.2999877929688, 14.375 +797.2999877929688, 4.375 +798.0999755859375, 37.5 +798.7999877929688, 44.375 +799.9000244140625, 5.625 +804.0999755859375, 31.875 +805.0, 43.75 +805.7999877929688, 34.375 +806.2999877929688, 36.25 +807.0, 36.25 +808.2000122070312, 36.875 +809.2999877929688, 10.625 +810.0, 14.375 +811.5, 2.5 +812.5, 9.375 +815.7000122070312, 31.875 +817.2000122070312, 46.875 +818.2000122070312, 66.875 +819.5, 23.125 +820.4000244140625, 28.75 +824.4000244140625, 1.25 +825.0999755859375, 47.5 +826.2999877929688, 8.125 +827.0, 35.0 +828.2999877929688, 26.875 +829.2000122070312, 48.125 +829.5999755859375, 38.125 +830.2999877929688, 40.0 +830.9000244140625, 37.5 +831.7999877929688, 42.5 +832.5, 14.375 +835.5999755859375, 8.125 +836.4000244140625, 29.375 +837.2999877929688, 26.875 +837.9000244140625, 33.125 +838.5, 46.25 +839.2000122070312, 36.25 +839.7999877929688, 22.5 +841.0, 43.125 +842.0, 16.875 +842.5999755859375, 44.375 +843.2000122070312, 11.875 +844.0999755859375, 15.625 +844.7999877929688, 5.625 +845.4000244140625, 13.125 +848.4000244140625, 45.0 +849.0, 56.25 +850.2999877929688, 48.75 +850.7000122070312, 47.5 +851.0, 47.5 +851.7000122070312, 11.875 +852.9000244140625, 15.0 +854.5, 17.5 +855.0999755859375, 26.875 +857.2000122070312, 11.25 +858.5999755859375, 14.375 +859.9000244140625, 25.0 +860.5, 24.375 +861.5, 40.0 +862.2999877929688, 68.125 +863.0999755859375, 69.375 +863.7999877929688, 35.625 +866.5, 0.625 +867.7000122070312, 5.625 +868.4000244140625, 1.25 +869.0999755859375, 25.0 +870.5999755859375, 15.625 +871.0999755859375, 24.375 +873.0999755859375, 44.375 +874.0, 47.5 +874.7999877929688, 39.375 +875.7999877929688, 21.875 +879.0999755859375, 23.75 +880.2000122070312, 26.25 +881.2000122070312, 20.625 +882.2999877929688, 43.125 +884.5, 42.5 +886.2999877929688, 25.625 +887.4000244140625, 11.25 +888.5, 31.25 +889.5999755859375, 6.25 +892.2000122070312, 46.875 +893.2999877929688, 43.125 +894.2000122070312, 50.0 +895.0, 23.75 +895.5, 30.0 +897.5999755859375, 20.0 +898.5999755859375, 33.125 +900.5, 28.125 +901.4000244140625, 6.25 +903.5999755859375, 10.625 +904.4000244140625, 34.375 +905.0999755859375, 58.125 +905.5999755859375, 52.5 +906.5, 40.625 +907.7999877929688, 3.125 +909.5999755859375, 10.625 +910.5, 11.875 +911.0999755859375, 28.125 +911.5999755859375, 53.75 +912.2000122070312, 45.625 +913.0, 11.875 +914.0, 33.75 +915.9000244140625, 20.625 +916.7000122070312, 61.25 +917.5, 51.875 +918.4000244140625, 70.0 +919.9000244140625, 11.875 +923.4000244140625, 9.375 +924.5999755859375, 47.5 +925.4000244140625, 34.375 +926.0999755859375, 67.5 +927.7000122070312, 17.5 +928.4000244140625, 3.75 +929.2999877929688, 31.875 +930.2999877929688, 33.125 +931.0999755859375, 12.5 +931.7000122070312, 2.5 +935.2999877929688, 15.625 +935.7000122070312, 13.75 +936.5, 60.625 +937.5, 80.625 +938.5999755859375, 29.375 +940.2000122070312, 0.625 +941.7000122070312, 18.75 +942.7999877929688, 12.5 +943.7999877929688, 24.375 +946.9000244140625, 18.125 +947.7999877929688, 47.5 +948.2000122070312, 46.875 +948.7999877929688, 56.875 +949.5999755859375, 62.5 +950.2999877929688, 43.75 +951.2000122070312, 27.5 +952.0, 20.625 +956.0, 23.75 +956.5, 16.25 +957.7999877929688, 39.375 +958.7999877929688, 5.625 +959.7000122070312, 19.375 +961.7000122070312, 65.0 +962.9000244140625, 42.5 +967.7000122070312, 42.5 +968.7999877929688, 43.125 +969.7999877929688, 38.125 +970.5999755859375, 33.125 +971.7000122070312, 25.0 +972.2000122070312, 30.625 +973.4000244140625, 45.0 +974.2000122070312, 46.875 +975.2999877929688, 1.875 +976.4000244140625, 8.75 +978.5999755859375, 2.5 +979.2999877929688, 20.625 +980.0, 27.5 +980.7000122070312, 40.625 +981.2999877929688, 55.625 +981.9000244140625, 53.125 +982.7000122070312, 39.375 +985.2000122070312, 31.25 +986.5999755859375, 2.5 +987.7999877929688, 8.75 +988.9000244140625, 5.0 +991.0, 16.25 +992.5999755859375, 69.375 +993.5999755859375, 61.875 +994.7999877929688, 5.625 +995.2999877929688, 7.5 +997.7999877929688, 10.625 +999.0999755859375, 16.25 +1000.0999755859375, 10.625 +1000.5, 0.625 +1003.0999755859375, 44.375 +1003.7000122070312, 51.875 +1004.4000244140625, 48.125 +1004.7000122070312, 44.375 +1005.4000244140625, 41.875 +1006.9000244140625, 21.25 +1011.2000122070312, 31.25 +1011.5999755859375, 28.75 +1012.5999755859375, 48.125 +1013.4000244140625, 48.75 +1014.5999755859375, 23.75 +1015.7999877929688, 21.25 +1016.5, 31.875 +1017.2000122070312, 28.75 +1017.7999877929688, 31.875 +1018.9000244140625, 28.125 +1019.5, 6.875 +1022.4000244140625, 21.25 +1023.7999877929688, 51.875 +1024.5, 50.625 +1025.9000244140625, 31.25 +1027.199951171875, 33.75 +1029.0, 11.25 +1029.800048828125, 23.75 +1030.4000244140625, 6.875 +1031.0, 11.25 +1032.9000244140625, 19.375 +1034.9000244140625, 29.375 +1035.9000244140625, 48.125 +1036.5, 68.125 +1037.5, 58.75 +1038.800048828125, 33.125 +1041.5999755859375, 1.25 +1042.5999755859375, 17.5 +1043.9000244140625, 24.375 +1045.699951171875, 6.875 +1047.0, 23.125 +1047.699951171875, 54.375 +1048.199951171875, 41.875 +1048.699951171875, 47.5 +1049.300048828125, 35.0 +1049.800048828125, 18.125 +1054.0, 5.625 +1055.300048828125, 31.875 +1055.800048828125, 26.875 +1056.300048828125, 22.5 +1057.699951171875, 48.75 +1058.199951171875, 19.375 +1059.0, 31.875 +1060.300048828125, 45.0 +1061.0999755859375, 16.25 +1062.0999755859375, 18.75 +1062.800048828125, 11.25 +1066.0999755859375, 37.5 +1067.0, 31.25 +1067.9000244140625, 54.375 +1068.800048828125, 51.875 +1069.5999755859375, 67.5 +1070.199951171875, 31.875 +1071.0, 19.375 +1071.5999755859375, 10.0 +1073.800048828125, 8.125 +1074.4000244140625, 18.75 +1076.5, 11.25 +1077.800048828125, 16.875 +1079.5999755859375, 61.875 +1080.800048828125, 56.25 +1082.0999755859375, 38.125 +1086.0, 25.0 +1086.699951171875, 12.5 +1088.0999755859375, 15.625 +1088.5999755859375, 11.25 +1089.4000244140625, 16.875 +1090.300048828125, 51.25 +1091.0999755859375, 46.25 +1092.5999755859375, 57.5 +1093.199951171875, 37.5 +1094.0999755859375, 16.875 +1098.9000244140625, 3.125 +1099.300048828125, 21.875 +1100.0, 58.75 +1100.699951171875, 45.0 +1101.800048828125, 30.625 +1103.800048828125, 40.625 +1104.800048828125, 22.5 +1105.800048828125, 5.625 +1106.300048828125, 21.875 +1107.0, 5.625 +1109.199951171875, 12.5 +1109.9000244140625, 11.875 +1110.300048828125, 14.375 +1111.5, 44.375 +1112.199951171875, 55.0 +1113.300048828125, 37.5 +1114.300048828125, 11.875 +1115.300048828125, 19.375 +1116.5999755859375, 10.0 +1117.699951171875, 13.75 +1118.0999755859375, 11.875 +1119.4000244140625, 8.75 +1121.800048828125, 16.25 +1122.4000244140625, 16.875 +1123.5, 34.375 +1124.4000244140625, 69.375 +1125.300048828125, 33.125 +1126.5999755859375, 24.375 +1129.800048828125, 18.75 +1130.300048828125, 30.0 +1131.199951171875, 15.625 +1131.9000244140625, 38.75 +1132.800048828125, 6.25 +1134.0, 13.125 +1134.199951171875, 12.5 +1135.0, 33.125 +1136.0, 53.75 +1136.699951171875, 50.0 +1137.199951171875, 35.625 +1138.0999755859375, 13.75 +1141.199951171875, 3.125 +1142.0999755859375, 20.625 +1142.5, 16.875 +1143.0999755859375, 40.625 +1144.300048828125, 53.125 +1145.0999755859375, 13.75 +1145.800048828125, 39.375 +1146.5999755859375, 33.75 +1147.300048828125, 33.75 +1148.5, 24.375 +1149.5, 24.375 +1151.699951171875, 11.25 +1153.4000244140625, 8.125 +1154.199951171875, 8.125 +1155.9000244140625, 66.25 +1156.800048828125, 70.625 +1157.699951171875, 17.5 +1160.0999755859375, 16.25 +1161.0999755859375, 5.625 +1162.300048828125, 3.125 +1163.199951171875, 23.125 +1164.0, 0.625 +1166.5999755859375, 39.375 +1167.0, 47.5 +1168.0, 50.625 +1168.5999755859375, 49.375 +1169.199951171875, 25.0 +1169.9000244140625, 30.625 +1173.4000244140625, 20.625 +1175.0999755859375, 25.0 +1175.699951171875, 8.75 +1176.199951171875, 26.25 +1176.699951171875, 38.125 +1177.5, 25.0 +1179.0, 48.125 +1180.199951171875, 13.75 +1181.5, 50.625 +1186.5, 53.125 +1187.5999755859375, 63.125 +1189.0999755859375, 20.0 +1190.5, 20.0 +1191.0, 23.75 +1191.699951171875, 34.375 +1192.199951171875, 26.875 +1192.800048828125, 33.75 +1193.699951171875, 20.625 +1194.699951171875, 1.875 +1197.4000244140625, 25.625 +1198.5, 48.125 +1199.300048828125, 54.375 +1200.300048828125, 56.25 +1200.9000244140625, 43.125 +1202.4000244140625, 16.25 +1203.5999755859375, 26.875 +1204.0, 17.5 +1205.199951171875, 13.125 +1205.800048828125, 1.875 +1206.5999755859375, 11.875 +1207.800048828125, 15.625 +1208.800048828125, 15.625 +1210.0, 22.5 +1211.300048828125, 76.875 +1212.199951171875, 53.125 +1212.9000244140625, 45.0 +1213.699951171875, 31.875 +1216.800048828125, 18.125 +1217.5999755859375, 9.375 +1218.5999755859375, 33.125 +1219.0, 29.375 +1219.5, 29.375 +1221.699951171875, 23.75 +1222.699951171875, 38.125 +1223.800048828125, 81.25 +1225.0999755859375, 18.75 +1229.699951171875, 21.25 +1230.4000244140625, 38.75 +1231.4000244140625, 41.25 +1232.0999755859375, 59.375 +1232.699951171875, 23.125 +1233.699951171875, 16.875 +1235.0, 52.5 +1236.199951171875, 6.25 +1236.800048828125, 19.375 +1241.199951171875, 30.625 +1241.800048828125, 35.0 +1242.800048828125, 60.0 +1243.800048828125, 84.375 +1244.4000244140625, 40.625 +1244.9000244140625, 46.875 +1245.699951171875, 4.375 +1247.4000244140625, 25.0 +1248.0, 22.5 +1248.800048828125, 5.0 +1249.9000244140625, 42.5 +1253.5999755859375, 51.25 +1254.5, 60.625 +1255.0999755859375, 83.75 +1255.800048828125, 68.75 +1256.5999755859375, 55.625 +1257.699951171875, 15.625 +1259.9000244140625, 6.875 +1261.800048828125, 15.625 +1262.699951171875, 12.5 +1264.0, 31.25 +1265.0, 30.625 +1266.0, 34.375 +1266.5999755859375, 66.25 +1267.0, 61.25 +1268.0, 82.5 +1268.800048828125, 25.0 +1269.9000244140625, 18.125 +1273.4000244140625, 38.75 +1274.300048828125, 53.125 +1274.699951171875, 55.625 +1275.300048828125, 31.25 +1276.0, 45.0 +1277.5, 26.875 +1278.5, 46.25 +1278.9000244140625, 49.375 +1280.5, 10.625 +1284.5, 0.0 +1285.0999755859375, 23.125 +1286.0, 45.0 +1286.699951171875, 55.625 +1287.0999755859375, 53.75 +1288.0999755859375, 49.375 +1288.699951171875, 38.75 +1289.199951171875, 23.125 +1291.0, 16.25 +1291.9000244140625, 11.875 +1293.199951171875, 6.875 +1297.199951171875, 31.25 +1298.0, 60.625 +1298.699951171875, 49.375 +1299.9000244140625, 56.25 +1300.300048828125, 60.0 +1300.699951171875, 65.625 +1304.0999755859375, 2.5 +1304.800048828125, 18.125 +1305.300048828125, 12.5 +1306.4000244140625, 13.75 +1307.5, 41.875 +1308.5, 38.75 +1309.699951171875, 46.25 +1310.300048828125, 70.625 +1311.800048828125, 55.625 +1312.699951171875, 8.75 +1316.800048828125, 40.625 +1318.0, 36.875 +1318.4000244140625, 30.0 +1319.5999755859375, 71.25 +1321.0999755859375, 34.375 +1321.4000244140625, 29.375 +1322.199951171875, 26.25 +1323.0999755859375, 30.625 +1323.699951171875, 19.375 +1324.699951171875, 22.5 +1328.699951171875, 8.125 +1329.5999755859375, 76.875 +1330.0999755859375, 85.0 +1331.0999755859375, 55.0 +1331.800048828125, 54.375 +1333.0999755859375, 22.5 +1334.4000244140625, 20.625 +1335.5999755859375, 10.0 +1336.4000244140625, 20.625 +1340.5999755859375, 30.625 +1341.300048828125, 54.375 +1342.5, 85.625 +1343.5999755859375, 35.625 +1344.199951171875, 13.125 +1345.0999755859375, 0.0 +1350.5, 26.25 +1351.0999755859375, 44.375 +1351.800048828125, 15.625 +1352.699951171875, 59.375 +1353.5, 47.5 +1354.5, 81.25 +1355.5999755859375, 36.875 +1359.800048828125, 31.25 +1360.4000244140625, 0.625 +1361.800048828125, 58.125 +1363.5999755859375, 58.125 +1364.4000244140625, 31.875 +1365.5, 74.375 +1366.5999755859375, 40.0 +1366.9000244140625, 39.375 +1368.800048828125, 8.125 +1372.300048828125, 30.625 +1373.4000244140625, 51.25 +1374.0, 46.875 +1374.800048828125, 46.875 +1375.800048828125, 77.5 +1376.699951171875, 44.375 +1378.0, 3.125 +1381.0999755859375, 8.75 +1383.4000244140625, 3.125 +1383.9000244140625, 18.125 +1384.800048828125, 62.5 +1385.9000244140625, 80.0 +1386.9000244140625, 73.75 +1387.5999755859375, 66.875 +1391.699951171875, 8.125 +1392.800048828125, 13.125 +1393.199951171875, 15.0 +1394.0, 12.5 +1394.800048828125, 40.0 +1395.199951171875, 31.875 +1396.0, 39.375 +1396.300048828125, 39.375 +1397.199951171875, 58.125 +1397.699951171875, 48.75 +1398.4000244140625, 61.875 +1399.4000244140625, 23.75 +1404.199951171875, 10.0 +1404.699951171875, 17.5 +1405.699951171875, 48.75 +1406.4000244140625, 49.375 +1407.0999755859375, 36.25 +1408.199951171875, 38.75 +1409.5999755859375, 17.5 +1410.5, 51.875 +1416.699951171875, 45.0 +1418.0999755859375, 51.875 +1419.0999755859375, 100.0 +1421.5, 0.0 +1422.699951171875, 13.125 +1423.699951171875, 5.0 +1427.0, 10.625 +1427.5, 18.125 +1428.300048828125, 43.125 +1429.0, 50.0 +1430.0, 86.25 +1430.699951171875, 61.25 +1432.199951171875, 33.75 +1435.800048828125, 2.5 +1437.0999755859375, 7.5 +1437.699951171875, 18.125 +1438.4000244140625, 35.625 +1439.5999755859375, 40.625 +1440.5999755859375, 60.0 +1441.0, 58.75 +1442.0999755859375, 32.5 +1442.699951171875, 28.75 +1443.199951171875, 27.5 +1443.5999755859375, 36.25 +1447.800048828125, 23.75 +1449.300048828125, 76.875 +##PAGE=T= 0.017366666666666666 +##XYDATA=(XY..XY) +100.4000015258789, 1.7247844019497565 +103.19999694824219, 8.998875140607424 +104.9000015258789, 1.2748406449193852 +106.4000015258789, 12.523434570678665 +107.5, 0.8248968878890139 +109.0999984741211, 0.562429696287964 +111.0999984741211, 31.046119235095617 +112.5, 41.31983502062243 +113.0999984741211, 20.622422197225347 +114.30000305175781, 5.961754780652419 +115.19999694824219, 0.11248593925759282 +117.0, 6.074240719910011 +118.0, 1.7247844019497565 +118.80000305175781, 0.5249343832020997 +119.9000015258789, 8.323959505061868 +120.5999984741211, 5.2493438320209975 +121.30000305175781, 0.44994375703037126 +122.30000305175781, 1.7622797150356206 +123.0999984741211, 2.324709411323585 +123.4000015258789, 2.1372328458942635 +124.0999984741211, 1.5373078365204351 +124.69999694824219, 2.924634420697413 +125.69999694824219, 2.5121859767529062 +127.0, 9.823772028496439 +128.3000030517578, 9.861267341582304 +129.0, 3.449568803899513 +129.89999389648438, 1.687289088863892 +130.5, 3.4120734908136483 +131.10000610351562, 8.998875140607424 +132.60000610351562, 3.9745031871016128 +133.1999969482422, 5.88676415448069 +134.60000610351562, 13.910761154855644 +136.60000610351562, 25.23434570678665 +137.1999969482422, 17.885264341957257 +138.39999389648438, 9.22384701912261 +139.3000030517578, 5.099362579677541 +142.10000610351562, 5.399325084364455 +143.89999389648438, 3.899512560929884 +146.6999969482422, 20.547431571053618 +147.5, 1.9872515935508064 +148.1999969482422, 7.874015748031496 +149.39999389648438, 1.0498687664041995 +150.10000610351562, 1.2373453318335208 +150.5, 0.8998875140607425 +151.3000030517578, 1.0123734533183353 +152.8000030517578, 9.29883764529434 +154.89999389648438, 44.8068991376078 +156.60000610351562, 1.8747656542932134 +157.39999389648438, 6.1492313460817405 +158.0, 4.64941882264717 +159.1999969482422, 16.87289088863892 +160.1999969482422, 27.334083239595053 +162.8000030517578, 19.8350206224222 +164.3000030517578, 11.32358455193101 +165.6999969482422, 8.398950131233596 +166.6999969482422, 5.736782902137233 +167.89999389648438, 2.5871766029246346 +168.5, 4.499437570303712 +169.39999389648438, 1.9122609673790778 +170.0, 5.1368578927634045 +171.5, 3.9745031871016128 +172.1999969482422, 8.061492313460818 +173.10000610351562, 3.1496062992125986 +173.89999389648438, 1.2748406449193852 +175.1999969482422, 9.29883764529434 +176.5, 5.549306336707912 +177.1999969482422, 5.62429696287964 +178.6999969482422, 27.559055118110237 +179.5, 9.673790776152982 +180.39999389648438, 10.648668916385452 +181.39999389648438, 25.609298837645294 +182.89999389648438, 0.6374203224596926 +184.6999969482422, 1.5373078365204351 +186.0, 3.899512560929884 +186.6999969482422, 5.961754780652419 +188.1999969482422, 6.224221972253469 +189.0, 0.4874390701162355 +190.39999389648438, 20.172478440194975 +192.39999389648438, 12.11098612673416 +195.0, 5.62429696287964 +196.0, 6.4866891638545185 +197.60000610351562, 17.810273715785527 +198.5, 2.0622422197225347 +199.3000030517578, 1.8372703412073492 +200.3000030517578, 1.6122984626921635 +201.1999969482422, 3.0746156730408702 +202.0, 6.4866891638545185 +202.89999389648438, 0.33745781777277845 +204.1999969482422, 11.023622047244094 +205.10000610351562, 11.77352830896138 +207.0, 20.697412823397077 +208.39999389648438, 8.43644544431946 +209.1999969482422, 2.4746906636670416 +210.10000610351562, 13.87326584176978 +210.89999389648438, 6.374203224596926 +212.39999389648438, 13.123359580052494 +213.60000610351562, 2.6996625421822276 +216.3000030517578, 7.049118860142483 +217.10000610351562, 2.924634420697413 +218.60000610351562, 19.047619047619047 +219.60000610351562, 1.2373453318335208 +222.39999389648438, 17.397825271841022 +223.10000610351562, 7.72403449568804 +224.39999389648438, 0.9373828271466067 +225.60000610351562, 12.82339707536558 +227.1999969482422, 8.548931383577054 +228.5, 11.211098612673416 +229.8000030517578, 10.723659542557181 +231.0, 5.211848518935134 +232.10000610351562, 0.562429696287964 +232.39999389648438, 0.5249343832020997 +232.89999389648438, 0.18747656542932134 +234.8000030517578, 1.4248218972628421 +235.39999389648438, 1.0123734533183353 +236.5, 3.1496062992125986 +238.3000030517578, 31.08361454818148 +238.8000030517578, 17.510311211098614 +240.60000610351562, 12.860892388451445 +242.1999969482422, 2.9621297337832773 +242.89999389648438, 3.8245219347581556 +243.6999969482422, 7.3865766779152615 +244.6999969482422, 14.623172103487065 +246.5, 5.324334458192726 +247.10000610351562, 1.387326584176978 +248.60000610351562, 9.48631421072366 +250.10000610351562, 4.199475065616798 +250.39999389648438, 4.311961004874391 +251.3000030517578, 3.487064116985377 +252.0, 2.5871766029246346 +253.3000030517578, 14.84814398200225 +254.39999389648438, 1.8747656542932134 +255.39999389648438, 3.2620922384701916 +256.5, 10.836145481814773 +258.20001220703125, 17.13535808023997 +259.70001220703125, 3.1121109861267344 +260.70001220703125, 2.362204724409449 +261.70001220703125, 2.249718785151856 +262.79998779296875, 3.937007874015748 +263.3999938964844, 1.9872515935508064 +266.1000061035156, 0.8998875140607425 +267.1000061035156, 8.773903262092238 +267.70001220703125, 2.3997000374953132 +268.70001220703125, 10.611173603299589 +270.5, 8.473940757405325 +272.20001220703125, 1.799775028121485 +273.1000061035156, 1.387326584176978 +274.3999938964844, 10.723659542557181 +276.0, 19.460067491563557 +277.29998779296875, 5.399325084364455 +278.6000061035156, 18.785151856018 +279.20001220703125, 9.74878140232471 +280.70001220703125, 14.360704911886016 +282.20001220703125, 21.034870641169856 +284.29998779296875, 14.023247094113236 +284.8999938964844, 16.272965879265094 +286.6000061035156, 9.448818897637796 +287.20001220703125, 1.5748031496062993 +288.3999938964844, 0.974878140232471 +289.3999938964844, 0.7124109486314211 +289.79998779296875, 0.22497187851518563 +290.29998779296875, 0.14998125234345708 +291.3999938964844, 7.911511061117361 +292.20001220703125, 1.9872515935508064 +294.0, 11.661042369703788 +295.5, 6.749156355455568 +298.1000061035156, 9.823772028496439 +299.0, 2.4371953505811774 +299.8999938964844, 1.1623547056617924 +300.8999938964844, 6.67416572928384 +301.3999938964844, 3.5245594300712413 +302.5, 0.22497187851518563 +304.5, 24.259467566554182 +305.1000061035156, 5.061867266591676 +306.3999938964844, 0.8623922009748782 +307.1000061035156, 0.7124109486314211 +308.3999938964844, 0.7874015748031497 +309.6000061035156, 22.83464566929134 +310.6000061035156, 1.9872515935508064 +311.6000061035156, 4.424446944131984 +312.6000061035156, 0.22497187851518563 +314.29998779296875, 0.33745781777277845 +316.1000061035156, 12.185976752905887 +317.6000061035156, 18.822647169103863 +318.5, 20.209973753280842 +320.8999938964844, 6.074240719910011 +322.5, 17.02287214098238 +323.3999938964844, 1.8747656542932134 +323.79998779296875, 1.6122984626921635 +325.70001220703125, 34.60817397825272 +326.5, 34.34570678665167 +327.29998779296875, 6.449193850768654 +328.20001220703125, 31.046119235095617 +329.70001220703125, 2.9996250468691414 +330.8999938964844, 31.2710911136108 +331.70001220703125, 1.7247844019497565 +334.79998779296875, 1.387326584176978 +335.29998779296875, 2.662167229096363 +336.8999938964844, 2.249718785151856 +338.5, 5.8117735283089615 +340.0, 3.2995875515560558 +341.6000061035156, 39.78252718410199 +342.29998779296875, 12.598425196850394 +343.20001220703125, 1.387326584176978 +343.6000061035156, 1.9872515935508064 +344.8999938964844, 5.0243719535058124 +345.3999938964844, 3.7870266216722914 +348.5, 19.197600299962506 +349.20001220703125, 2.212223472065992 +350.20001220703125, 12.935883014623172 +351.6000061035156, 1.2373453318335208 +352.6000061035156, 10.573678290213724 +353.20001220703125, 3.6370453693288343 +355.5, 19.49756280464942 +357.20001220703125, 24.109486314210724 +359.6000061035156, 2.4371953505811774 +360.70001220703125, 2.099737532808399 +361.20001220703125, 2.1747281589801277 +362.20001220703125, 1.6497937757780279 +363.3999938964844, 19.010123734533185 +364.20001220703125, 21.747281589801275 +365.6000061035156, 9.636295463067118 +367.20001220703125, 17.585301837270343 +368.29998779296875, 2.212223472065992 +368.70001220703125, 1.799775028121485 +370.1000061035156, 1.4998125234345707 +370.6000061035156, 1.9872515935508064 +371.6000061035156, 14.92313460817398 +372.6000061035156, 6.299212598425197 +374.79998779296875, 6.261717285339333 +376.3999938964844, 9.936257967754031 +377.3999938964844, 9.561304836895388 +378.20001220703125, 10.048743907011625 +379.29998779296875, 1.6122984626921635 +380.3999938964844, 10.686164229471316 +381.29998779296875, 1.6122984626921635 +382.5, 3.0371203599550056 +383.6000061035156, 7.536557930258718 +384.5, 3.0371203599550056 +385.29998779296875, 2.2872140982377203 +386.6000061035156, 7.911511061117361 +387.29998779296875, 2.5871766029246346 +390.3999938964844, 13.048368953880766 +391.20001220703125, 17.735283089613798 +393.1000061035156, 13.835770528683915 +395.20001220703125, 14.435695538057743 +397.79998779296875, 2.212223472065992 +399.20001220703125, 17.99775028121485 +400.5, 2.774653168353956 +403.3999938964844, 8.51143607049119 +404.0, 4.0119985001874765 +404.8999938964844, 2.774653168353956 +406.70001220703125, 1.124859392575928 +407.70001220703125, 3.0746156730408702 +409.20001220703125, 0.6749156355455569 +411.20001220703125, 10.573678290213724 +412.3999938964844, 2.7371578552680917 +414.20001220703125, 17.92275965504312 +416.20001220703125, 2.4371953505811774 +416.79998779296875, 2.4746906636670416 +417.3999938964844, 1.7247844019497565 +418.8999938964844, 1.124859392575928 +419.3999938964844, 1.2748406449193852 +420.8999938964844, 0.33745781777277845 +421.8999938964844, 0.6374203224596926 +423.20001220703125, 2.362204724409449 +423.79998779296875, 2.212223472065992 +425.8999938964844, 16.87289088863892 +427.29998779296875, 0.974878140232471 +427.70001220703125, 1.0873640794900639 +428.79998779296875, 2.4371953505811774 +430.5, 6.111736032995876 +432.8999938964844, 21.672290963629546 +433.5, 5.211848518935134 +434.70001220703125, 1.4623172103487065 +435.79998779296875, 1.124859392575928 +437.0, 10.123734533183352 +437.70001220703125, 1.4248218972628421 +438.5, 1.2373453318335208 +439.8999938964844, 36.145481814773156 +441.1000061035156, 1.1623547056617924 +442.5, 7.3865766779152615 +443.20001220703125, 2.662167229096363 +443.79998779296875, 6.67416572928384 +444.79998779296875, 0.6374203224596926 +446.70001220703125, 38.80764904386952 +448.6000061035156, 1.5373078365204351 +449.3999938964844, 0.6749156355455569 +450.5, 5.286839145106862 +451.29998779296875, 0.3749531308586427 +453.6000061035156, 1.2373453318335208 +454.8999938964844, 6.074240719910011 +456.6000061035156, 6.299212598425197 +459.79998779296875, 4.5744281964754405 +461.5, 2.5121859767529062 +463.1000061035156, 8.586426696662917 +464.70001220703125, 11.923509561304838 +465.6000061035156, 0.3749531308586427 +467.0, 10.873640794900638 +468.3999938964844, 2.81214848143982 +470.20001220703125, 10.161229846269217 +472.20001220703125, 1.6497937757780279 +474.0, 32.62092238470191 +475.5, 1.2748406449193852 +476.29998779296875, 0.14998125234345708 +477.79998779296875, 31.2710911136108 +478.6000061035156, 9.261342332208475 +480.5, 2.212223472065992 +481.3999938964844, 10.086239220097488 +482.6000061035156, 0.22497187851518563 +484.3999938964844, 4.199475065616798 +485.6000061035156, 2.249718785151856 +486.3999938964844, 1.1623547056617924 +487.5, 10.048743907011625 +489.1000061035156, 4.986876640419948 +490.70001220703125, 15.785526809148857 +491.79998779296875, 1.8747656542932134 +493.20001220703125, 11.24859392575928 +494.1000061035156, 1.6497937757780279 +495.3999938964844, 0.07499062617172854 +497.1000061035156, 1.5373078365204351 +497.6000061035156, 1.2373453318335208 +498.0, 1.6497937757780279 +498.70001220703125, 2.662167229096363 +499.5, 1.6122984626921635 +500.3999938964844, 0.7874015748031497 +501.3999938964844, 0.0 +503.6000061035156, 1.124859392575928 +505.1000061035156, 15.860517435320586 +505.8999938964844, 0.22497187851518563 +506.3999938964844, 1.0873640794900639 +508.79998779296875, 8.811398575178103 +509.3999938964844, 1.5748031496062993 +511.20001220703125, 28.046494188226472 +512.0, 1.6497937757780279 +513.5, 0.8248968878890139 +514.7000122070312, 21.859767529058868 +517.2999877929688, 23.697037870266218 +519.9000244140625, 11.098612673415824 +520.7000122070312, 12.973378327709037 +522.2000122070312, 1.687289088863892 +523.0, 3.33708286464192 +524.2000122070312, 2.212223472065992 +526.5, 7.911511061117361 +527.0, 5.699287589051369 +527.5999755859375, 6.1492313460817405 +528.2999877929688, 1.5373078365204351 +529.2000122070312, 2.887139107611549 +531.0, 35.9955005624297 +531.7000122070312, 0.4874390701162355 +532.5, 1.4623172103487065 +533.5, 15.748031496062993 +534.0, 6.67416572928384 +535.5, 18.222722159730036 +536.2000122070312, 22.797150356205474 +536.9000244140625, 1.1998500187476566 +537.5, 1.7247844019497565 +538.2999877929688, 0.07499062617172854 +538.7999877929688, 0.562429696287964 +539.5, 0.5999250093738283 +541.5, 8.736407949006376 +543.2000122070312, 10.123734533183352 +544.0, 13.723284589426322 +545.0, 6.7116610423697045 +545.7000122070312, 1.4248218972628421 +546.7000122070312, 12.373453318335208 +547.9000244140625, 1.6122984626921635 +548.5999755859375, 2.4746906636670416 +550.5, 27.371578552680916 +552.4000244140625, 1.3498312710911138 +554.0, 7.686539182602175 +556.0999755859375, 14.960629921259844 +556.7000122070312, 17.247844019497563 +557.7999877929688, 8.548931383577054 +559.4000244140625, 1.7622797150356206 +560.0, 2.324709411323585 +560.5999755859375, 2.099737532808399 +561.5, 2.6996625421822276 +562.7999877929688, 0.5999250093738283 +564.5, 9.22384701912261 +566.7999877929688, 10.086239220097488 +568.0, 0.9373828271466067 +568.5999755859375, 1.9872515935508064 +569.4000244140625, 1.0123734533183353 +571.2999877929688, 14.360704911886016 +572.7000122070312, 12.223472065991752 +574.0999755859375, 24.14698162729659 +574.9000244140625, 2.212223472065992 +578.7000122070312, 9.973753280839896 +579.7000122070312, 1.4998125234345707 +580.5, 2.2872140982377203 +581.2000122070312, 0.7874015748031497 +581.9000244140625, 1.4248218972628421 +583.2000122070312, 16.197975253093365 +584.2000122070312, 0.5249343832020997 +585.0, 1.4623172103487065 +587.0999755859375, 11.77352830896138 +588.7000122070312, 6.1492313460817405 +591.2000122070312, 47.16910386201725 +592.2000122070312, 23.472065991751034 +592.9000244140625, 18.485189351331083 +594.4000244140625, 7.011623547056618 +595.0999755859375, 1.124859392575928 +596.5, 43.04461942257218 +597.4000244140625, 1.3123359580052494 +598.7999877929688, 7.349081364829397 +599.7999877929688, 0.33745781777277845 +600.4000244140625, 0.6749156355455569 +603.0, 16.047994000749906 +603.7999877929688, 1.3123359580052494 +605.2999877929688, 18.897637795275593 +606.2999877929688, 2.212223472065992 +607.0999755859375, 0.5999250093738283 +607.4000244140625, 0.4874390701162355 +608.2000122070312, 0.26246719160104987 +610.0, 0.4874390701162355 +611.7999877929688, 11.736032995875517 +612.5, 1.8747656542932134 +615.7999877929688, 15.37307836520435 +616.9000244140625, 1.4248218972628421 +617.4000244140625, 2.6996625421822276 +618.5, 2.212223472065992 +621.0999755859375, 5.549306336707912 +622.2000122070312, 2.3997000374953132 +622.7999877929688, 1.7247844019497565 +624.2999877929688, 16.460442444694415 +625.7000122070312, 5.174353205849269 +628.5, 1.0498687664041995 +629.4000244140625, 1.2748406449193852 +631.0999755859375, 2.1372328458942635 +631.9000244140625, 0.7499062617172854 +633.0, 0.6374203224596926 +634.4000244140625, 0.14998125234345708 +635.2000122070312, 3.224596925384327 +635.9000244140625, 2.099737532808399 +636.7999877929688, 0.8623922009748782 +637.4000244140625, 2.099737532808399 +638.0, 3.6370453693288343 +641.2000122070312, 15.673040869891265 +642.4000244140625, 3.224596925384327 +643.2999877929688, 1.387326584176978 +643.9000244140625, 1.0873640794900639 +646.2000122070312, 7.874015748031496 +647.2999877929688, 6.4866891638545185 +648.0999755859375, 3.5245594300712413 +649.0999755859375, 2.099737532808399 +650.0999755859375, 2.3997000374953132 +653.0999755859375, 8.43644544431946 +653.7000122070312, 1.8747656542932134 +654.2000122070312, 2.0247469066366706 +656.0, 23.95950506186727 +657.2999877929688, 0.29996250468691416 +658.0, 0.7874015748031497 +659.0, 0.8623922009748782 +659.7999877929688, 2.7371578552680917 +660.9000244140625, 1.1623547056617924 +662.5, 9.898762654668166 +663.5999755859375, 1.1998500187476566 +666.2999877929688, 3.899512560929884 +667.2999877929688, 13.535808023997001 +668.5, 8.998875140607424 +669.5, 0.5249343832020997 +670.7999877929688, 8.43644544431946 +672.2000122070312, 31.19610048743907 +673.2999877929688, 27.446569178852645 +675.0, 0.7874015748031497 +675.9000244140625, 0.07499062617172854 +676.7999877929688, 4.2369703787026625 +678.5, 3.33708286464192 +679.7999877929688, 2.5121859767529062 +681.0999755859375, 12.56092988376453 +681.7999877929688, 1.0498687664041995 +682.4000244140625, 0.14998125234345708 +683.9000244140625, 1.1623547056617924 +684.7999877929688, 1.4998125234345707 +685.7000122070312, 1.6122984626921635 +687.0999755859375, 2.1372328458942635 +687.5999755859375, 1.6122984626921635 +688.5999755859375, 0.4874390701162355 +690.5999755859375, 0.6749156355455569 +691.4000244140625, 0.974878140232471 +692.0, 2.6246719160104988 +692.7999877929688, 4.761904761904762 +694.7000122070312, 12.073490813648295 +696.0999755859375, 0.5999250093738283 +697.4000244140625, 3.8245219347581556 +698.2000122070312, 1.7247844019497565 +699.0, 1.687289088863892 +700.5, 26.35920509936258 +702.2000122070312, 23.134608173978254 +703.7000122070312, 4.9118860142482195 +706.2999877929688, 9.186351706036746 +707.2999877929688, 7.874015748031496 +708.4000244140625, 0.11248593925759282 +709.5, 1.6122984626921635 +711.0, 5.699287589051369 +712.2999877929688, 7.761529808773904 +713.4000244140625, 0.29996250468691416 +715.0, 14.435695538057743 +715.7000122070312, 1.0498687664041995 +716.7999877929688, 18.485189351331083 +717.2000122070312, 16.497937757780278 +718.0, 1.9122609673790778 +718.4000244140625, 2.099737532808399 +719.4000244140625, 5.999250093738283 +720.4000244140625, 1.0873640794900639 +720.9000244140625, 0.29996250468691416 +722.7000122070312, 3.2995875515560558 +724.2000122070312, 8.173978252718411 +724.9000244140625, 1.4623172103487065 +725.5999755859375, 0.14998125234345708 +727.0, 11.061117360329959 +728.2999877929688, 1.4623172103487065 +729.4000244140625, 3.7870266216722914 +730.0, 1.799775028121485 +731.2999877929688, 13.760779902512187 +733.7999877929688, 1.1998500187476566 +734.2999877929688, 1.5748031496062993 +735.2999877929688, 2.5496812898387704 +736.5, 10.273715785526809 +737.0, 8.361454818147733 +739.2999877929688, 0.5999250093738283 +740.0, 0.6749156355455569 +741.0, 3.33708286464192 +742.2000122070312, 4.64941882264717 +742.9000244140625, 8.548931383577054 +744.2000122070312, 2.887139107611549 +747.7000122070312, 8.023997000374953 +748.5, 2.3997000374953132 +749.0999755859375, 1.6497937757780279 +750.2000122070312, 0.14998125234345708 +751.4000244140625, 0.5999250093738283 +752.7999877929688, 0.8623922009748782 +754.7999877929688, 20.322459692538434 +756.7000122070312, 2.212223472065992 +760.2999877929688, 9.448818897637796 +761.5, 1.6497937757780279 +762.0999755859375, 1.5373078365204351 +763.0, 1.4998125234345707 +764.9000244140625, 2.249718785151856 +765.4000244140625, 2.249718785151856 +767.5, 12.11098612673416 +768.2999877929688, 1.8372703412073492 +769.2000122070312, 5.88676415448069 +770.7999877929688, 1.4623172103487065 +771.7999877929688, 1.4998125234345707 +772.5, 1.5748031496062993 +773.5, 2.5496812898387704 +774.7000122070312, 1.5373078365204351 +776.2999877929688, 3.374578177727784 +777.7000122070312, 0.6374203224596926 +778.7999877929688, 1.124859392575928 +779.5999755859375, 2.9621297337832773 +781.7999877929688, 19.91001124859393 +783.2000122070312, 23.95950506186727 +783.9000244140625, 3.33708286464192 +784.5, 7.986501687289089 +785.5, 2.324709411323585 +786.4000244140625, 6.824146981627297 +789.2999877929688, 16.347956505436823 +790.0999755859375, 1.0873640794900639 +790.7000122070312, 1.4248218972628421 +792.0999755859375, 29.95875515560555 +793.0999755859375, 1.1623547056617924 +793.9000244140625, 0.562429696287964 +795.5999755859375, 18.785151856018 +796.5, 1.2373453318335208 +797.4000244140625, 1.6497937757780279 +799.4000244140625, 12.148481439820022 +800.0999755859375, 1.7622797150356206 +802.2000122070312, 1.1998500187476566 +803.4000244140625, 12.785901762279716 +804.0999755859375, 14.360704911886016 +804.9000244140625, 16.197975253093365 +806.0, 1.4998125234345707 +807.4000244140625, 4.724409448818898 +808.5999755859375, 0.44994375703037126 +810.0999755859375, 5.286839145106862 +810.7000122070312, 2.887139107611549 +811.5, 2.6246719160104988 +812.5999755859375, 4.424446944131984 +813.2000122070312, 10.986126734158232 +816.2999877929688, 5.436820397450319 +817.7999877929688, 13.08586426696663 +818.7000122070312, 1.4998125234345707 +821.0999755859375, 13.835770528683915 +822.5, 2.5496812898387704 +823.7000122070312, 8.061492313460818 +824.5999755859375, 0.5999250093738283 +825.2000122070312, 0.3749531308586427 +825.5, 0.4874390701162355 +826.2999877929688, 1.3123359580052494 +827.7000122070312, 12.223472065991752 +829.0999755859375, 2.0247469066366706 +829.5999755859375, 0.8623922009748782 +830.4000244140625, 1.3123359580052494 +830.7999877929688, 1.4998125234345707 +831.7999877929688, 0.8248968878890139 +833.5999755859375, 3.374578177727784 +834.5999755859375, 0.7499062617172854 +835.5999755859375, 1.4998125234345707 +836.4000244140625, 0.8248968878890139 +836.9000244140625, 0.22497187851518563 +838.2000122070312, 1.6497937757780279 +840.0999755859375, 1.0498687664041995 +840.9000244140625, 2.5121859767529062 +842.0999755859375, 11.473565804274466 +843.4000244140625, 1.799775028121485 +844.7999877929688, 13.34833145856768 +845.7000122070312, 1.5373078365204351 +846.0999755859375, 0.4874390701162355 +847.4000244140625, 31.496062992125985 +848.5, 5.774278215223098 +850.0999755859375, 8.173978252718411 +850.9000244140625, 0.8248968878890139 +851.7000122070312, 12.56092988376453 +852.7000122070312, 6.336707911511062 +853.7000122070312, 0.9373828271466067 +854.0999755859375, 1.2748406449193852 +854.7000122070312, 0.8248968878890139 +855.5999755859375, 1.4623172103487065 +857.0, 5.9242594675665545 +857.7000122070312, 0.562429696287964 +859.5, 1.4248218972628421 +860.2999877929688, 0.22497187851518563 +860.9000244140625, 1.7247844019497565 +861.5999755859375, 1.2748406449193852 +862.5999755859375, 2.2872140982377203 +864.0, 0.5999250093738283 +865.7999877929688, 0.974878140232471 +866.9000244140625, 1.3498312710911138 +869.0999755859375, 9.523809523809524 +871.2000122070312, 0.562429696287964 +873.0999755859375, 5.286839145106862 +874.0, 6.7116610423697045 +876.0999755859375, 5.511811023622047 +878.0999755859375, 1.6122984626921635 +879.2000122070312, 6.186726659167604 +879.9000244140625, 1.687289088863892 +881.0, 2.3997000374953132 +881.9000244140625, 2.1747281589801277 +883.5999755859375, 0.26246719160104987 +884.2999877929688, 0.562429696287964 +886.2999877929688, 24.671916010498688 +887.0999755859375, 1.5748031496062993 +888.5999755859375, 4.949381327334083 +890.2999877929688, 0.7124109486314211 +892.4000244140625, 8.811398575178103 +893.0999755859375, 1.8747656542932134 +895.5, 0.26246719160104987 +897.2999877929688, 4.499437570303712 +898.7000122070312, 6.374203224596926 +899.5, 6.4866891638545185 +900.2999877929688, 0.18747656542932134 +901.7000122070312, 0.6749156355455569 +902.2999877929688, 1.5748031496062993 +903.0999755859375, 2.6996625421822276 +904.0, 12.148481439820022 +904.7000122070312, 9.29883764529434 +908.4000244140625, 0.26246719160104987 +910.0, 10.686164229471316 +911.0999755859375, 1.0873640794900639 +911.9000244140625, 1.6497937757780279 +912.4000244140625, 0.5999250093738283 +913.9000244140625, 1.1998500187476566 +915.0, 0.9373828271466067 +915.7999877929688, 3.749531308586427 +917.2000122070312, 1.124859392575928 +918.2999877929688, 2.0247469066366706 +919.4000244140625, 0.14998125234345708 +922.4000244140625, 18.147731533558307 +923.4000244140625, 1.949756280464942 +924.9000244140625, 1.4998125234345707 +927.0, 10.161229846269217 +927.7999877929688, 7.911511061117361 +928.9000244140625, 18.410198725159358 +929.7999877929688, 1.6122984626921635 +930.7999877929688, 0.41244844394450697 +932.7000122070312, 18.410198725159358 +935.4000244140625, 12.03599550056243 +937.0, 4.9118860142482195 +937.9000244140625, 0.562429696287964 +938.5999755859375, 0.11248593925759282 +940.5999755859375, 31.496062992125985 +942.0, 2.324709411323585 +942.7000122070312, 2.3997000374953132 +943.5999755859375, 1.387326584176978 +944.7000122070312, 0.6374203224596926 +947.7999877929688, 17.247844019497563 +948.9000244140625, 0.6374203224596926 +949.2999877929688, 1.2373453318335208 +950.2000122070312, 1.124859392575928 +950.7999877929688, 0.3749531308586427 +953.2000122070312, 14.810648668916386 +953.7999877929688, 19.647544056992878 +955.0999755859375, 1.0123734533183353 +955.9000244140625, 1.7622797150356206 +958.0999755859375, 0.562429696287964 +959.2000122070312, 2.1372328458942635 +960.2999877929688, 4.64941882264717 +961.0999755859375, 13.27334083239595 +961.7999877929688, 2.4371953505811774 +962.5999755859375, 1.3123359580052494 +964.7000122070312, 0.562429696287964 +965.5, 1.2373453318335208 +966.0, 2.249718785151856 +967.2999877929688, 4.724409448818898 +967.7000122070312, 4.9118860142482195 +968.9000244140625, 1.687289088863892 +970.7999877929688, 29.021372328458945 +972.2999877929688, 1.6122984626921635 +973.2999877929688, 1.799775028121485 +974.2000122070312, 1.0498687664041995 +974.9000244140625, 0.562429696287964 +976.9000244140625, 20.172478440194975 +978.2000122070312, 1.387326584176978 +978.9000244140625, 1.7622797150356206 +979.5999755859375, 2.249718785151856 +980.4000244140625, 1.5748031496062993 +981.2000122070312, 0.44994375703037126 +982.4000244140625, 19.310086239220098 +983.7000122070312, 6.186726659167604 +984.7999877929688, 1.124859392575928 +985.5999755859375, 2.3997000374953132 +986.7999877929688, 6.524184476940383 +988.4000244140625, 3.4120734908136483 +990.9000244140625, 15.785526809148857 +992.2000122070312, 2.9621297337832773 +994.2999877929688, 0.3749531308586427 +996.0999755859375, 37.83277090363705 +997.5, 2.4746906636670416 +998.2000122070312, 4.049493813273341 +998.9000244140625, 9.336332958380202 +1001.0, 0.0 +1001.5999755859375, 1.4623172103487065 +1002.7000122070312, 7.574053243344583 +1003.7000122070312, 2.4371953505811774 +1004.5999755859375, 7.124109486314211 +1006.0999755859375, 0.562429696287964 +1007.0, 0.22497187851518563 +1008.2999877929688, 0.4874390701162355 +1009.2999877929688, 1.4998125234345707 +1010.0999755859375, 2.324709411323585 +1010.9000244140625, 1.4623172103487065 +1011.9000244140625, 2.6996625421822276 +1012.9000244140625, 13.385826771653544 +1015.0999755859375, 1.8372703412073492 +1016.0999755859375, 1.7622797150356206 +1017.2000122070312, 5.62429696287964 +1018.5, 2.0247469066366706 +1021.2000122070312, 12.523434570678665 +1021.9000244140625, 2.9996250468691414 +1022.7000122070312, 2.6996625421822276 +1023.5999755859375, 22.75965504311961 +1025.0, 6.861642294713161 +1025.9000244140625, 0.9373828271466067 +1027.199951171875, 0.6749156355455569 +1028.300048828125, 0.974878140232471 +1029.0, 1.387326584176978 +1029.800048828125, 1.9872515935508064 +1030.800048828125, 25.90926134233221 +1032.0999755859375, 21.52230971128609 +1032.9000244140625, 0.8248968878890139 +1034.4000244140625, 15.110611173603301 +1035.199951171875, 1.387326584176978 +1035.800048828125, 1.4623172103487065 +1036.9000244140625, 1.4998125234345707 +1038.199951171875, 19.23509561304837 +1038.9000244140625, 12.11098612673416 +1039.9000244140625, 0.8998875140607425 +1040.5999755859375, 2.249718785151856 +1041.300048828125, 1.8747656542932134 +1042.300048828125, 1.0873640794900639 +1043.0, 1.6122984626921635 +1045.5999755859375, 1.0498687664041995 +1047.0999755859375, 2.774653168353956 +1048.300048828125, 0.9373828271466067 +1049.300048828125, 0.4874390701162355 +1053.300048828125, 3.6370453693288343 +1054.5999755859375, 25.271841019872518 +1055.300048828125, 0.8998875140607425 +1055.800048828125, 1.5373078365204351 +1056.4000244140625, 0.9373828271466067 +1058.0999755859375, 9.22384701912261 +1059.199951171875, 1.5373078365204351 +1059.699951171875, 1.799775028121485 +1061.199951171875, 15.860517435320586 +1062.300048828125, 1.949756280464942 +1064.300048828125, 7.3865766779152615 +1065.0, 0.974878140232471 +1066.5999755859375, 25.159355080614926 +1067.5, 14.473190851143608 +1069.0, 8.773903262092238 +1069.5999755859375, 4.874390701162355 +1071.300048828125, 0.974878140232471 +1071.9000244140625, 3.1496062992125986 +1073.0999755859375, 3.4120734908136483 +1074.0, 1.0873640794900639 +1075.199951171875, 0.33745781777277845 +1076.9000244140625, 1.124859392575928 +1077.4000244140625, 0.44994375703037126 +1078.5, 6.524184476940383 +1079.199951171875, 1.9872515935508064 +1080.0, 1.5373078365204351 +1080.9000244140625, 0.9373828271466067 +1081.300048828125, 1.5748031496062993 +1083.800048828125, 27.74653168353956 +1084.800048828125, 6.899137607799026 +1085.5, 2.362204724409449 +1086.199951171875, 1.2748406449193852 +1086.699951171875, 1.387326584176978 +1087.5, 2.362204724409449 +1089.5999755859375, 2.324709411323585 +1090.4000244140625, 0.03749531308586427 +1091.300048828125, 1.2748406449193852 +1092.0999755859375, 2.5871766029246346 +1092.800048828125, 1.949756280464942 +1094.4000244140625, 11.886014248218974 +1096.0999755859375, 10.611173603299589 +1097.199951171875, 22.42219722534683 +1098.300048828125, 1.2373453318335208 +1098.9000244140625, 1.6497937757780279 +1101.4000244140625, 7.1616047994000755 +1103.0999755859375, 1.5748031496062993 +1103.5999755859375, 2.1372328458942635 +1104.5, 1.8747656542932134 +1105.0, 0.29996250468691416 +1105.699951171875, 1.6122984626921635 +1108.0, 41.432320959880016 +1109.5, 1.9872515935508064 +1110.0, 1.2373453318335208 +1110.699951171875, 1.1998500187476566 +1113.199951171875, 12.148481439820022 +1114.5999755859375, 5.286839145106862 +1115.699951171875, 2.8496437945256843 +1116.9000244140625, 2.324709411323585 +1118.0, 2.212223472065992 +1118.9000244140625, 0.9373828271466067 +1121.0999755859375, 5.736782902137233 +1122.699951171875, 2.774653168353956 +1123.5999755859375, 0.9373828271466067 +1125.300048828125, 18.635170603674542 +1126.699951171875, 0.03749531308586427 +1127.300048828125, 0.4874390701162355 +1129.0, 18.560179977502813 +1130.699951171875, 15.335583052118487 +1132.9000244140625, 35.13310836145482 +1134.0, 0.3749531308586427 +1134.800048828125, 0.974878140232471 +1135.699951171875, 2.81214848143982 +1136.5, 1.799775028121485 +1137.5999755859375, 1.6497937757780279 +1138.4000244140625, 1.687289088863892 +1139.0999755859375, 0.0 +1139.9000244140625, 1.387326584176978 +1140.5, 2.7371578552680917 +1141.300048828125, 1.5748031496062993 +1143.0, 2.2872140982377203 +1143.699951171875, 0.14998125234345708 +1145.199951171875, 2.5871766029246346 +1146.5999755859375, 6.299212598425197 +1148.0999755859375, 20.247469066366705 +1149.699951171875, 4.64941882264717 +1150.300048828125, 5.8117735283089615 +1151.0, 6.67416572928384 +1151.9000244140625, 0.44994375703037126 +1152.4000244140625, 1.0123734533183353 +1153.5999755859375, 13.198350206224223 +1154.300048828125, 10.123734533183352 +1155.199951171875, 0.974878140232471 +1156.0, 0.7874015748031497 +1158.5, 1.0498687664041995 +1159.199951171875, 0.7499062617172854 +1160.199951171875, 2.8496437945256843 +1161.0999755859375, 1.687289088863892 +1162.5999755859375, 0.33745781777277845 +1163.4000244140625, 0.14998125234345708 +1164.0999755859375, 1.1623547056617924 +1165.0, 0.11248593925759282 +1166.5, 21.59730033745782 +1167.199951171875, 1.124859392575928 +1168.0999755859375, 8.136482939632547 +1169.800048828125, 10.123734533183352 +1172.4000244140625, 9.711286089238845 +1172.9000244140625, 12.185976752905887 +1174.5999755859375, 5.1368578927634045 +1175.300048828125, 7.349081364829397 +1176.699951171875, 6.1492313460817405 +1178.4000244140625, 13.010873640794902 +1179.4000244140625, 2.1372328458942635 +1180.4000244140625, 4.311961004874391 +1181.0, 5.511811023622047 +1182.9000244140625, 5.3618297712785905 +1184.0999755859375, 0.26246719160104987 +1185.199951171875, 10.873640794900638 +1186.800048828125, 25.72178477690289 +1188.699951171875, 0.974878140232471 +1189.199951171875, 0.5249343832020997 +1190.0, 0.03749531308586427 +1191.0, 2.662167229096363 +1191.800048828125, 2.212223472065992 +1192.800048828125, 2.0622422197225347 +1193.5, 1.1623547056617924 +1194.0999755859375, 1.124859392575928 +1196.699951171875, 27.821522309711288 +1197.699951171875, 1.6122984626921635 +1198.5999755859375, 12.898387701537308 +1199.5, 2.3997000374953132 +1201.699951171875, 6.1492313460817405 +1203.5999755859375, 11.698537682789652 +1204.5999755859375, 5.88676415448069 +1205.5999755859375, 1.8372703412073492 +1206.300048828125, 0.41244844394450697 +1207.800048828125, 18.11023622047244 +1210.0, 5.0243719535058124 +1211.800048828125, 14.473190851143608 +1213.0999755859375, 0.974878140232471 +1214.5, 11.698537682789652 +1216.4000244140625, 9.261342332208475 +1220.0999755859375, 14.360704911886016 +1220.800048828125, 0.29996250468691416 +1221.199951171875, 0.14998125234345708 +1222.0, 1.8372703412073492 +1223.0, 2.6996625421822276 +1224.300048828125, 9.898762654668166 +1224.9000244140625, 0.9373828271466067 +1227.300048828125, 1.2373453318335208 +1228.0999755859375, 0.974878140232471 +1229.0999755859375, 1.6497937757780279 +1230.300048828125, 11.361079865016874 +1232.699951171875, 18.59767529058868 +1233.699951171875, 17.99775028121485 +1235.199951171875, 13.498312710911136 +1236.699951171875, 1.5748031496062993 +1237.4000244140625, 1.2373453318335208 +1239.199951171875, 1.2373453318335208 +1240.0999755859375, 0.44994375703037126 +1242.199951171875, 22.64716910386202 +1242.800048828125, 22.57217847769029 +1244.5999755859375, 0.0 +1246.5999755859375, 2.0622422197225347 +1247.800048828125, 6.749156355455568 +1248.699951171875, 0.44994375703037126 +1250.300048828125, 16.87289088863892 +1251.0, 6.93663292088489 +1252.300048828125, 0.6749156355455569 +1252.800048828125, 0.8248968878890139 +1253.5999755859375, 2.9996250468691414 +1254.5999755859375, 2.324709411323585 +1255.9000244140625, 19.197600299962506 +1258.699951171875, 1.1998500187476566 +1259.5999755859375, 4.1244844394450695 +1260.5, 2.2872140982377203 +1260.9000244140625, 1.6497937757780279 +1262.5999755859375, 17.360329958755155 +1265.699951171875, 100.0 +1266.5999755859375, 17.810273715785527 +1267.0999755859375, 13.535808023997001 +1267.9000244140625, 0.8248968878890139 +1268.199951171875, 0.7874015748031497 +1268.9000244140625, 0.26246719160104987 +1269.5, 0.3749531308586427 +1270.0999755859375, 0.5999250093738283 +1271.0, 0.6749156355455569 +1272.0999755859375, 2.924634420697413 +1273.0, 2.1372328458942635 +1273.5999755859375, 1.1623547056617924 +1274.0999755859375, 0.33745781777277845 +1276.199951171875, 8.061492313460818 +1278.5999755859375, 11.586051743532058 +1279.4000244140625, 1.8747656542932134 +1280.0, 2.4371953505811774 +1282.0, 19.49756280464942 +1282.5999755859375, 50.0562429696288 +1283.800048828125, 7.011623547056618 +1285.300048828125, 27.22159730033746 +1286.199951171875, 6.224221972253469 +1287.0999755859375, 7.8365204349456326 +1290.0999755859375, 5.999250093738283 +1291.0, 3.59955005624297 +1291.800048828125, 10.611173603299589 +1292.699951171875, 0.29996250468691416 +1293.300048828125, 1.6497937757780279 +1294.5, 0.22497187851518563 +1296.699951171875, 23.322084739407575 +1297.0999755859375, 23.772028496437947 +1297.800048828125, 4.5744281964754405 +1298.199951171875, 5.286839145106862 +1299.5, 29.84626921634796 +1300.9000244140625, 3.2995875515560558 +1301.5999755859375, 0.26246719160104987 +1303.5999755859375, 18.035245594300715 +1304.4000244140625, 15.335583052118487 +1305.0, 0.7874015748031497 +1306.5999755859375, 0.41244844394450697 +1308.5, 12.335958005249344 +1309.800048828125, 11.061117360329959 +1310.9000244140625, 3.9745031871016128 +1312.0999755859375, 0.8623922009748782 +1313.0999755859375, 0.11248593925759282 +1315.0, 6.636670416197975 +1316.0999755859375, 2.212223472065992 +1318.0999755859375, 12.410948631421073 +1318.9000244140625, 41.50731158605175 +1319.9000244140625, 3.6370453693288343 +1320.5999755859375, 8.211473565804274 +1321.9000244140625, 0.29996250468691416 +1322.4000244140625, 0.29996250468691416 +1323.0, 1.5373078365204351 +1324.5, 14.098237720284965 +1327.5, 2.0622422197225347 +1329.199951171875, 9.373828271466067 +1331.300048828125, 23.209598800149983 +1333.800048828125, 58.155230596175485 +1335.800048828125, 0.5249343832020997 +1336.5999755859375, 1.687289088863892 +1337.5, 0.8998875140607425 +1338.0999755859375, 2.81214848143982 +1340.5, 22.084739407574055 +1341.5, 0.7874015748031497 +1342.4000244140625, 4.9118860142482195 +1343.300048828125, 0.7499062617172854 +1344.800048828125, 11.961004874390701 +1345.5999755859375, 12.335958005249344 +1347.699951171875, 38.282714660667416 +1348.699951171875, 1.3123359580052494 +1350.800048828125, 3.937007874015748 +1352.199951171875, 2.5496812898387704 +1353.300048828125, 3.5245594300712413 +1355.300048828125, 6.1492313460817405 +1355.9000244140625, 0.5999250093738283 +1357.0999755859375, 9.411323584551932 +1359.300048828125, 13.310836145481815 +1359.800048828125, 15.035620547431572 +1361.0, 23.88451443569554 +1362.9000244140625, 18.59767529058868 +1365.300048828125, 10.348706411698538 +1366.4000244140625, 3.1496062992125986 +1367.4000244140625, 1.387326584176978 +1368.4000244140625, 1.387326584176978 +1370.0999755859375, 0.44994375703037126 +1370.5999755859375, 0.6749156355455569 +1371.4000244140625, 1.3498312710911138 +1372.4000244140625, 0.6374203224596926 +1373.0, 0.8998875140607425 +1373.5999755859375, 1.4998125234345707 +1374.5, 1.6122984626921635 +1375.300048828125, 0.7874015748031497 +1377.5, 44.16947881514811 +1378.300048828125, 8.51143607049119 +1379.0999755859375, 3.374578177727784 +1380.5999755859375, 25.346831646044247 +1381.0, 25.271841019872518 +1383.9000244140625, 8.173978252718411 +1385.199951171875, 6.41169853768279 +1386.5999755859375, 0.11248593925759282 +1387.5, 1.0123734533183353 +1388.199951171875, 0.5999250093738283 +1388.5999755859375, 1.5748031496062993 +1389.699951171875, 1.6497937757780279 +1391.5999755859375, 10.236220472440946 +1392.800048828125, 0.8248968878890139 +1394.0, 0.03749531308586427 +1396.0, 1.9122609673790778 +1398.5, 6.636670416197975 +1400.199951171875, 29.171353580802403 +1401.0, 9.786276715410574 +1402.300048828125, 0.8248968878890139 +1403.5999755859375, 2.5871766029246346 +1405.199951171875, 2.1747281589801277 +1406.5, 0.7124109486314211 +1407.800048828125, 0.11248593925759282 +1409.199951171875, 1.3498312710911138 +1409.9000244140625, 3.899512560929884 +1411.0, 2.099737532808399 +1412.0, 1.0498687664041995 +1413.800048828125, 16.94788151481065 +1414.9000244140625, 0.974878140232471 +1415.199951171875, 0.8998875140607425 +1416.0, 1.9872515935508064 +1416.4000244140625, 2.5496812898387704 +1418.199951171875, 24.521934758155233 +1419.0999755859375, 1.3123359580052494 +1421.199951171875, 1.9872515935508064 +1421.5, 1.949756280464942 +1422.300048828125, 3.6745406824146984 +1423.5, 2.3997000374953132 +1424.5, 24.296962879640045 +1425.0999755859375, 5.174353205849269 +1426.0999755859375, 7.686539182602175 +1427.5999755859375, 16.1604799400075 +1428.0999755859375, 11.173603299587553 +1428.800048828125, 1.124859392575928 +1429.300048828125, 0.7124109486314211 +1429.9000244140625, 1.3498312710911138 +1431.699951171875, 18.97262842144732 +1433.300048828125, 8.248968878890139 +1434.300048828125, 1.0498687664041995 +1436.5, 16.985376827896513 +1438.199951171875, 0.3749531308586427 +1439.199951171875, 7.9490063742032255 +1439.9000244140625, 3.224596925384327 +1440.5999755859375, 1.0123734533183353 +1441.199951171875, 2.362204724409449 +1441.800048828125, 1.6122984626921635 +1442.800048828125, 2.4746906636670416 +1446.800048828125, 20.28496437945257 +1448.800048828125, 13.198350206224223 +1449.9000244140625, 0.03749531308586427 +##END NTUPLES + +`; + +export default lcmsJcamp; diff --git a/src/__tests__/fixtures/lc_ms_jcamp_2.js b/src/__tests__/fixtures/lc_ms_jcamp_2.js new file mode 100644 index 00000000..29414368 --- /dev/null +++ b/src/__tests__/fixtures/lc_ms_jcamp_2.js @@ -0,0 +1,2869 @@ +const lcmsJcamp2 = ` +##TITLE=Spectrum +##JCAMP-DX=5.00 $$ chemotion-converter-app (1.8.0) +##DATA TYPE=MASS SPECTRUM +##DATA CLASS=NTUPLES +##ORIGIN= +##OWNER= +##XUNITS=m/z +##YUNITS=Intensity +##SOFTWARE=openlab +##SCAN_MODE=positiv +##TYPE=ms spectrum +##NTUPLES=MULTIDIMENSIONAL +##VAR_NAME=T, m/z, Intensity +##SYMBOL=T, X, Y +##VAR_TYPE=PAGE, X, Y +##VAR_DIM=1200, 1189, 1189 +##UNITS=, m/z, Intensity +##PAGE=T= 0.004666666666666667 +##XYDATA=(XY..XY) +103.5, 15.371621621621621 +104.30000305175781, 17.48310810810811 +104.69999694824219, 17.736486486486488 +105.4000015258789, 15.287162162162161 +112.5999984741211, 0.2533783783783784 +114.19999694824219, 13.091216216216216 +114.9000015258789, 16.300675675675674 +115.9000015258789, 14.442567567567567 +116.5999984741211, 12.5 +117.80000305175781, 2.7871621621621623 +123.0999984741211, 1.689189189189189 +124.5, 7.601351351351351 +125.5999984741211, 13.85135135135135 +126.69999694824219, 12.66891891891892 +127.4000015258789, 11.317567567567567 +128.0, 10.72635135135135 +129.39999389648438, 1.2668918918918919 +134.39999389648438, 2.1114864864864864 +135.3000030517578, 10.135135135135135 +136.10000610351562, 13.513513513513512 +136.60000610351562, 11.317567567567567 +137.3000030517578, 13.513513513513512 +137.6999969482422, 11.06418918918919 +138.8000030517578, 10.72635135135135 +139.60000610351562, 6.672297297297297 +140.39999389648438, 3.209459459459459 +146.0, 9.20608108108108 +147.0, 15.625 +147.89999389648438, 19.425675675675674 +148.6999969482422, 15.45608108108108 +155.6999969482422, 1.097972972972973 +158.0, 13.260135135135135 +159.10000610351562, 17.989864864864863 +160.10000610351562, 17.14527027027027 +161.10000610351562, 8.783783783783784 +167.89999389648438, 7.263513513513513 +169.10000610351562, 11.486486486486486 +170.0, 14.695945945945946 +170.6999969482422, 16.300675675675674 +171.3000030517578, 17.652027027027028 +172.60000610351562, 2.7027027027027026 +178.10000610351562, 1.689189189189189 +179.1999969482422, 14.611486486486486 +180.39999389648438, 16.385135135135133 +181.0, 14.02027027027027 +182.39999389648438, 12.58445945945946 +183.10000610351562, 8.277027027027026 +184.10000610351562, 1.1824324324324325 +189.3000030517578, 7.010135135135135 +190.3000030517578, 13.260135135135135 +191.39999389648438, 18.3277027027027 +192.1999969482422, 16.80743243243243 +193.1999969482422, 11.908783783783784 +199.89999389648438, 1.097972972972973 +201.8000030517578, 15.118243243243242 +202.6999969482422, 18.75 +203.6999969482422, 17.820945945945944 +211.3000030517578, 6.672297297297297 +212.60000610351562, 10.219594594594595 +213.5, 10.89527027027027 +213.8000030517578, 10.81081081081081 +214.89999389648438, 19.594594594594593 +223.3000030517578, 18.75 +224.10000610351562, 17.905405405405403 +225.10000610351562, 13.682432432432432 +226.3000030517578, 7.347972972972973 +227.0, 3.4628378378378377 +234.10000610351562, 22.804054054054053 +235.1999969482422, 19.341216216216214 +235.89999389648438, 15.287162162162161 +242.8000030517578, 3.5472972972972974 +244.10000610351562, 9.375 +244.6999969482422, 16.80743243243243 +246.10000610351562, 23.14189189189189 +246.8000030517578, 18.074324324324323 +247.89999389648438, 8.530405405405405 +254.3000030517578, 8.614864864864865 +255.3000030517578, 15.202702702702702 +256.29998779296875, 12.246621621621621 +256.79998779296875, 10.557432432432432 +257.6000061035156, 14.18918918918919 +258.3999938964844, 10.472972972972972 +259.6000061035156, 3.378378378378378 +266.1000061035156, 15.625 +267.1000061035156, 17.39864864864865 +267.70001220703125, 16.0472972972973 +268.20001220703125, 14.611486486486486 +269.29998779296875, 4.898648648648648 +269.79998779296875, 4.72972972972973 +277.5, 15.79391891891892 +277.8999938964844, 15.54054054054054 +278.70001220703125, 17.56756756756757 +287.5, 7.347972972972973 +288.20001220703125, 12.162162162162161 +288.79998779296875, 13.344594594594595 +289.70001220703125, 14.442567567567567 +290.29998779296875, 16.97635135135135 +297.1000061035156, 2.1114864864864864 +298.3999938964844, 10.97972972972973 +299.1000061035156, 9.037162162162161 +299.79998779296875, 9.628378378378379 +300.6000061035156, 11.739864864864865 +302.0, 9.20608108108108 +303.0, 4.476351351351351 +307.8999938964844, 0.08445945945945946 +309.6000061035156, 14.18918918918919 +310.79998779296875, 13.85135135135135 +311.70001220703125, 2.956081081081081 +313.70001220703125, 2.2804054054054053 +314.79998779296875, 3.4628378378378377 +319.8999938964844, 7.85472972972973 +320.5, 9.797297297297296 +321.29998779296875, 8.952702702702702 +322.29998779296875, 4.3074324324324325 +323.0, 3.885135135135135 +324.29998779296875, 1.8581081081081081 +325.8999938964844, 5.658783783783783 +329.20001220703125, 49.5777027027027 +329.8999938964844, 5.996621621621621 +330.6000061035156, 6.503378378378378 +331.29998779296875, 5.827702702702703 +332.79998779296875, 2.8716216216216215 +334.20001220703125, 7.6858108108108105 +334.79998779296875, 5.320945945945946 +335.79998779296875, 7.601351351351351 +336.79998779296875, 6.841216216216216 +339.79998779296875, 43.91891891891892 +340.6000061035156, 6.16554054054054 +341.29998779296875, 8.952702702702702 +342.29998779296875, 6.16554054054054 +343.29998779296875, 4.054054054054054 +345.3999938964844, 3.8006756756756754 +346.0, 5.658783783783783 +346.6000061035156, 3.125 +350.0, 7.939189189189189 +350.6000061035156, 9.712837837837837 +351.5, 10.050675675675675 +352.0, 9.881756756756756 +353.6000061035156, 5.912162162162162 +356.1000061035156, 2.1114864864864864 +357.1000061035156, 7.601351351351351 +358.5, 9.121621621621621 +359.0, 3.9695945945945943 +361.3999938964844, 39.7804054054054 +362.8999938964844, 4.8141891891891895 +363.8999938964844, 3.4628378378378377 +365.0, 2.195945945945946 +366.79998779296875, 2.618243243243243 +367.79998779296875, 2.5337837837837838 +372.20001220703125, 30.91216216216216 +373.0, 7.263513513513513 +373.70001220703125, 4.391891891891892 +374.79998779296875, 3.6317567567567566 +377.29998779296875, 4.8141891891891895 +378.1000061035156, 3.9695945945945943 +378.8999938964844, 8.02364864864865 +379.8999938964844, 9.45945945945946 +382.79998779296875, 36.148648648648646 +384.8999938964844, 5.574324324324325 +385.70001220703125, 1.1824324324324325 +390.20001220703125, 7.85472972972973 +390.8999938964844, 4.138513513513513 +393.1000061035156, 16.216216216216218 +393.5, 14.27364864864865 +394.5, 4.3074324324324325 +395.6000061035156, 2.8716216216216215 +396.1000061035156, 3.0405405405405403 +396.5, 2.8716216216216215 +397.79998779296875, 0.5067567567567568 +400.0, 4.138513513513513 +400.6000061035156, 0.6756756756756757 +401.6000061035156, 10.641891891891891 +404.5, 46.79054054054054 +405.29998779296875, 9.29054054054054 +406.8999938964844, 0.8445945945945945 +411.70001220703125, 1.4358108108108107 +412.6000061035156, 3.6317567567567566 +415.29998779296875, 32.0945945945946 +420.79998779296875, 0.0 +422.0, 5.489864864864865 +422.6000061035156, 14.442567567567567 +423.3999938964844, 10.304054054054054 +426.1000061035156, 45.608108108108105 +427.79998779296875, 5.405405405405405 +433.20001220703125, 7.516891891891892 +434.20001220703125, 7.85472972972973 +436.0, 22.804054054054053 +436.6000061035156, 15.202702702702702 +438.29998779296875, 7.094594594594595 +439.0, 3.8006756756756754 +443.6000061035156, 3.209459459459459 +444.3999938964844, 3.885135135135135 +444.79998779296875, 4.138513513513513 +445.1000061035156, 3.9695945945945943 +447.3999938964844, 49.23986486486486 +449.20001220703125, 4.5608108108108105 +454.79998779296875, 0.16891891891891891 +455.5, 2.5337837837837838 +458.3999938964844, 22.21283783783784 +459.20001220703125, 21.875 +460.3999938964844, 9.037162162162161 +465.1000061035156, 2.195945945945946 +466.70001220703125, 9.037162162162161 +469.1000061035156, 54.729729729729726 +470.0, 15.54054054054054 +470.5, 13.006756756756756 +477.20001220703125, 7.77027027027027 +477.8999938964844, 3.8006756756756754 +479.20001220703125, 17.31418918918919 +480.20001220703125, 38.597972972972975 +481.1000061035156, 17.48310810810811 +481.8999938964844, 7.010135135135135 +482.6000061035156, 3.378378378378378 +488.0, 4.8141891891891895 +490.6000061035156, 56.25 +491.5, 20.52364864864865 +498.70001220703125, 2.2804054054054053 +499.29998779296875, 0.5067567567567568 +501.29998779296875, 26.77364864864865 +502.70001220703125, 18.66554054054054 +503.0, 19.341216216216214 +504.1000061035156, 5.658783783783783 +509.29998779296875, 7.77027027027027 +512.2000122070312, 66.97635135135135 +513.5999755859375, 14.18918918918919 +520.7000122070312, 9.29054054054054 +522.5, 23.986486486486484 +523.0, 26.097972972972972 +523.7000122070312, 30.91216216216216 +525.2000122070312, 11.317567567567567 +530.5, 0.33783783783783783 +531.2999877929688, 4.222972972972973 +533.7000122070312, 68.24324324324324 +534.5, 26.52027027027027 +541.7000122070312, 2.5337837837837838 +544.5, 40.11824324324324 +545.2000122070312, 37.5 +546.0999755859375, 28.125 +553.0999755859375, 8.614864864864865 +555.2999877929688, 65.87837837837837 +564.4000244140625, 5.743243243243243 +565.5, 26.43581081081081 +566.2999877929688, 34.03716216216216 +567.0, 30.236486486486484 +567.7999877929688, 28.716216216216214 +574.2999877929688, 2.195945945945946 +576.7000122070312, 68.3277027027027 +578.5999755859375, 19.594594594594593 +587.5999755859375, 61.402027027027025 +588.5999755859375, 34.54391891891892 +589.2000122070312, 33.9527027027027 +590.2999877929688, 16.385135135135133 +596.2999877929688, 4.5608108108108105 +598.2999877929688, 72.63513513513513 +609.0, 46.11486486486486 +610.5, 39.86486486486486 +619.7999877929688, 69.25675675675676 +620.7999877929688, 36.064189189189186 +622.2000122070312, 16.300675675675674 +630.5999755859375, 38.00675675675676 +631.2999877929688, 37.33108108108108 +632.2000122070312, 30.8277027027027 +632.7000122070312, 33.69932432432432 +641.4000244140625, 69.84797297297297 +644.7000122070312, 7.1790540540540535 +652.2000122070312, 56.08108108108108 +653.0999755859375, 58.61486486486486 +653.9000244140625, 42.398648648648646 +663.0, 71.19932432432432 +663.7999877929688, 39.7804054054054 +673.7999877929688, 45.439189189189186 +674.2999877929688, 39.273648648648646 +675.9000244140625, 38.513513513513516 +677.2999877929688, 6.418918918918918 +684.4000244140625, 72.55067567567568 +686.0, 28.29391891891892 +695.4000244140625, 43.58108108108108 +696.2000122070312, 38.68243243243243 +697.0, 38.85135135135135 +697.7999877929688, 35.979729729729726 +706.0, 66.04729729729729 +706.9000244140625, 32.263513513513516 +707.7000122070312, 31.25 +708.5, 26.18243243243243 +710.0999755859375, 6.418918918918918 +716.7999877929688, 33.61486486486486 +718.5, 38.26013513513514 +719.2000122070312, 32.854729729729726 +727.5999755859375, 66.55405405405405 +728.9000244140625, 30.574324324324323 +731.7999877929688, 1.1824324324324325 +738.2000122070312, 26.60472972972973 +739.9000244140625, 40.70945945945946 +749.0, 50.4222972972973 +749.9000244140625, 29.138513513513512 +751.0999755859375, 28.04054054054054 +751.7999877929688, 25.25337837837838 +752.7000122070312, 15.625 +753.7000122070312, 5.996621621621621 +759.9000244140625, 42.98986486486486 +761.0999755859375, 33.277027027027025 +762.0, 31.41891891891892 +763.2999877929688, 21.70608108108108 +763.5999755859375, 21.368243243243242 +770.5999755859375, 53.63175675675676 +771.5999755859375, 22.21283783783784 +772.7000122070312, 25.16891891891892 +773.4000244140625, 19.341216216216214 +773.9000244140625, 21.62162162162162 +774.7999877929688, 7.939189189189189 +781.5, 26.18243243243243 +782.4000244140625, 26.77364864864865 +783.0, 28.716216216216214 +783.7999877929688, 31.925675675675674 +784.2999877929688, 30.320945945945944 +785.2000122070312, 18.91891891891892 +792.0, 36.486486486486484 +793.7999877929688, 17.06081081081081 +794.7000122070312, 19.425675675675674 +795.5999755859375, 21.62162162162162 +796.7999877929688, 10.219594594594595 +803.0999755859375, 31.672297297297295 +804.5, 23.47972972972973 +805.0, 22.12837837837838 +805.5, 21.283783783783782 +806.2999877929688, 17.652027027027028 +807.5, 7.85472972972973 +808.2000122070312, 2.956081081081081 +809.0999755859375, 0.6756756756756757 +813.7000122070312, 41.4695945945946 +815.2999877929688, 15.033783783783784 +816.0, 19.08783783783784 +816.5, 18.41216216216216 +817.4000244140625, 14.02027027027027 +818.5, 14.611486486486486 +824.2999877929688, 19.1722972972973 +825.4000244140625, 14.02027027027027 +826.7000122070312, 25.33783783783784 +827.4000244140625, 30.489864864864863 +828.5, 19.1722972972973 +829.5999755859375, 4.8141891891891895 +835.0999755859375, 40.79391891891892 +836.0999755859375, 6.081081081081081 +839.0999755859375, 24.91554054054054 +840.0, 14.695945945945946 +846.0999755859375, 13.429054054054054 +846.7999877929688, 26.26689189189189 +848.0, 25.16891891891892 +848.9000244140625, 20.35472972972973 +849.5, 14.949324324324325 +850.5, 7.939189189189189 +851.2000122070312, 5.320945945945946 +852.2999877929688, 0.08445945945945946 +856.7000122070312, 29.64527027027027 +857.7000122070312, 6.925675675675675 +859.0, 14.611486486486486 +859.7000122070312, 14.949324324324325 +861.5999755859375, 7.1790540540540535 +864.0999755859375, 1.6047297297297296 +867.5999755859375, 30.574324324324323 +868.7000122070312, 12.162162162162161 +870.2999877929688, 20.43918918918919 +871.0999755859375, 16.131756756756758 +871.5, 14.695945945945946 +872.7999877929688, 10.641891891891891 +878.2000122070312, 40.03378378378378 +879.0999755859375, 3.9695945945945943 +880.5999755859375, 2.7871621621621623 +882.5999755859375, 15.202702702702702 +883.0999755859375, 18.158783783783782 +884.2999877929688, 8.192567567567567 +885.4000244140625, 5.405405405405405 +889.2000122070312, 31.50337837837838 +890.0, 11.993243243243242 +891.2999877929688, 10.472972972972972 +892.4000244140625, 9.54391891891892 +893.7000122070312, 13.766891891891891 +894.5999755859375, 11.570945945945946 +895.5, 4.64527027027027 +896.5999755859375, 0.5912162162162162 +899.7000122070312, 30.574324324324323 +902.5, 9.121621621621621 +903.4000244140625, 10.89527027027027 +904.2000122070312, 14.611486486486486 +904.5, 15.033783783783784 +905.2999877929688, 3.4628378378378377 +906.7999877929688, 3.209459459459459 +907.5, 1.2668918918918919 +910.7000122070312, 3.8006756756756754 +912.0999755859375, 3.209459459459459 +913.2999877929688, 10.135135135135135 +914.4000244140625, 16.385135135135133 +915.2000122070312, 10.388513513513514 +915.5999755859375, 10.557432432432432 +916.2000122070312, 9.712837837837837 +921.2000122070312, 35.89527027027027 +925.2999877929688, 3.209459459459459 +926.2999877929688, 5.0675675675675675 +927.4000244140625, 9.29054054054054 +928.2000122070312, 17.736486486486488 +928.7999877929688, 11.570945945945946 +932.0999755859375, 19.679054054054053 +933.5, 5.236486486486486 +934.5, 5.743243243243243 +935.2000122070312, 4.983108108108108 +935.7000122070312, 2.449324324324324 +937.5, 9.29054054054054 +938.4000244140625, 12.162162162162161 +939.5999755859375, 14.10472972972973 +942.7999877929688, 32.0945945945946 +946.5999755859375, 0.5067567567567568 +947.5999755859375, 13.682432432432432 +948.5, 7.094594594594595 +949.2000122070312, 10.557432432432432 +950.2000122070312, 9.45945945945946 +951.4000244140625, 5.489864864864865 +953.5999755859375, 4.8141891891891895 +957.9000244140625, 11.402027027027026 +959.2000122070312, 13.682432432432432 +960.0, 11.486486486486486 +960.7000122070312, 8.277027027027026 +961.0, 7.939189189189189 +964.2999877929688, 35.472972972972975 +969.0999755859375, 1.0135135135135136 +970.4000244140625, 9.712837837837837 +971.5999755859375, 21.95945945945946 +975.0999755859375, 20.18581081081081 +981.0999755859375, 8.952702702702702 +983.0999755859375, 19.594594594594593 +985.7999877929688, 32.77027027027027 +991.7999877929688, 6.16554054054054 +993.0, 18.91891891891892 +994.7999877929688, 5.0675675675675675 +996.5999755859375, 24.324324324324323 +1002.0999755859375, 6.081081081081081 +1003.2000122070312, 12.922297297297296 +1004.2000122070312, 20.27027027027027 +1004.7000122070312, 19.847972972972972 +1006.7000122070312, 8.868243243243244 +1007.4000244140625, 50.16891891891892 +1014.4000244140625, 27.533783783783782 +1015.0, 34.45945945945946 +1016.0, 16.554054054054053 +1018.2999877929688, 20.945945945945944 +1024.5, 5.658783783783783 +1025.5999755859375, 22.381756756756758 +1026.5, 27.87162162162162 +1028.9000244140625, 48.986486486486484 +1036.4000244140625, 19.847972972972972 +1037.5, 19.341216216216214 +1038.199951171875, 14.18918918918919 +1039.800048828125, 32.179054054054056 +1048.0999755859375, 28.125 +1050.4000244140625, 55.48986486486486 +1057.9000244140625, 32.0945945945946 +1059.0, 27.027027027027025 +1061.4000244140625, 34.29054054054054 +1069.300048828125, 31.58783783783784 +1069.9000244140625, 29.30743243243243 +1071.9000244140625, 65.96283783783784 +1079.0999755859375, 15.371621621621621 +1079.5, 14.864864864864865 +1080.300048828125, 21.030405405405403 +1080.699951171875, 20.861486486486484 +1081.199951171875, 21.368243243243242 +1082.699951171875, 49.070945945945944 +1090.9000244140625, 26.52027027027027 +1091.5, 22.635135135135133 +1092.800048828125, 34.96621621621622 +1093.5, 67.14527027027027 +1101.300048828125, 27.95608108108108 +1102.199951171875, 33.61486486486486 +1102.9000244140625, 26.68918918918919 +1104.300048828125, 60.72635135135135 +1105.199951171875, 11.655405405405405 +1112.5, 30.320945945945944 +1113.0999755859375, 35.13513513513514 +1115.0999755859375, 74.07094594594595 +1115.9000244140625, 12.58445945945946 +1123.5999755859375, 29.054054054054053 +1125.9000244140625, 54.814189189189186 +1134.4000244140625, 36.82432432432432 +1135.699951171875, 36.402027027027025 +1136.5, 60.30405405405405 +1137.0999755859375, 26.94256756756757 +1144.5999755859375, 20.52364864864865 +1145.5, 33.86824324324324 +1147.4000244140625, 90.28716216216216 +1148.4000244140625, 27.618243243243242 +1156.0999755859375, 28.5472972972973 +1157.0, 27.364864864864863 +1158.0999755859375, 93.91891891891892 +1158.9000244140625, 31.16554054054054 +1165.9000244140625, 20.01689189189189 +1166.9000244140625, 30.06756756756757 +1169.0999755859375, 85.30405405405405 +1169.800048828125, 38.85135135135135 +1177.300048828125, 31.841216216216214 +1178.9000244140625, 43.75 +1179.699951171875, 90.87837837837837 +1188.5999755859375, 27.87162162162162 +1190.4000244140625, 78.04054054054053 +1199.199951171875, 24.408783783783782 +1201.0999755859375, 96.62162162162161 +1208.800048828125, 3.8006756756756754 +1209.9000244140625, 20.43918918918919 +1212.0, 70.35472972972973 +1213.0999755859375, 46.70608108108108 +1220.4000244140625, 18.41216216216216 +1221.0999755859375, 19.341216216216214 +1222.0999755859375, 46.11486486486486 +1222.800048828125, 93.83445945945945 +1233.4000244140625, 76.6891891891892 +1242.4000244140625, 14.18918918918919 +1244.199951171875, 100.0 +1253.300048828125, 17.736486486486488 +1255.0, 72.97297297297297 +1255.800048828125, 58.445945945945944 +1264.0, 11.06418918918919 +1265.800048828125, 96.95945945945945 +1267.4000244140625, 39.7804054054054 +1276.800048828125, 71.11486486486486 +1277.5999755859375, 62.9222972972973 +1287.300048828125, 86.99324324324324 +1296.199951171875, 0.8445945945945945 +1298.199951171875, 74.07094594594595 +1299.0, 57.0945945945946 +1299.4000244140625, 54.22297297297297 +1308.9000244140625, 94.42567567567568 +1319.5, 64.69594594594595 +1320.5, 63.51351351351351 +1321.5, 56.6722972972973 +1330.4000244140625, 88.17567567567568 +1331.300048828125, 49.49324324324324 +1332.0999755859375, 49.91554054054054 +1341.300048828125, 78.80067567567568 +1342.5, 55.74324324324324 +1343.0999755859375, 53.04054054054054 +1352.0, 76.94256756756756 +1353.0, 60.38851351351351 +1353.800048828125, 48.902027027027025 +1362.5999755859375, 58.61486486486486 +1363.5, 55.57432432432432 +1364.0999755859375, 56.84121621621622 +1373.4000244140625, 67.73648648648648 +1375.0999755859375, 46.875 +1376.5, 33.5304054054054 +1384.4000244140625, 48.648648648648646 +1385.699951171875, 52.95608108108108 +1386.800048828125, 43.75 +1395.0, 66.63851351351352 +1395.800048828125, 47.55067567567568 +1396.800048828125, 44.679054054054056 +1397.0999755859375, 44.84797297297297 +1405.699951171875, 40.70945945945946 +1407.300048828125, 54.898648648648646 +1416.5, 64.94932432432432 +1417.699951171875, 39.358108108108105 +1418.300048828125, 43.58108108108108 +1419.0999755859375, 41.0472972972973 +1421.199951171875, 4.983108108108108 +1427.800048828125, 42.314189189189186 +1428.5, 44.5945945945946 +1429.0999755859375, 45.354729729729726 +1429.5999755859375, 44.84797297297297 +1431.300048828125, 26.35135135135135 +1438.0999755859375, 59.29054054054054 +1439.0, 44.51013513513514 +1439.5, 44.763513513513516 +1440.0999755859375, 40.11824324324324 +1448.800048828125, 31.16554054054054 +1449.9000244140625, 37.75337837837838 +##PAGE=T= 0.0133 +##XYDATA=(XY..XY) +100.5999984741211, 10.694919250265237 +102.30000305175781, 4.084639867971236 +103.69999694824219, 6.984557349994105 +104.9000015258789, 3.0310621242484967 +105.5, 7.660910055404927 +106.19999694824219, 8.31515973122716 +107.0999984741211, 2.6287869857361783 +108.5999984741211, 4.293881881409878 +109.4000015258789, 5.634799009784274 +110.69999694824219, 2.988329600377225 +111.30000305175781, 3.2638807025816337 +112.5, 6.137274549098196 +113.19999694824219, 3.3125073676765293 +114.30000305175781, 6.165271719910409 +115.19999694824219, 3.3685017093009546 +116.5, 10.980785099610987 +118.0999984741211, 100.0 +119.19999694824219, 6.720794530236945 +120.5999984741211, 2.2456678062006366 +122.5999984741211, 11.527466698102087 +124.30000305175781, 4.35134975834021 +125.5, 1.9097017564540846 +126.69999694824219, 7.460509253801721 +127.4000015258789, 5.651007898149239 +128.1999969482422, 6.940351290816928 +129.3000030517578, 10.438524107037605 +130.3000030517578, 5.176529529647531 +132.0, 10.12908169279736 +133.39999389648438, 6.9624543204055165 +134.1999969482422, 6.418719792526229 +135.60000610351562, 2.8498172816220677 +136.39999389648438, 5.285571142284569 +137.39999389648438, 10.463574207238006 +138.0, 18.420664859130024 +140.1999969482422, 26.912648827065897 +141.6999969482422, 7.998349640457385 +142.1999969482422, 9.222857479665212 +143.5, 1.000530472710126 +144.6999969482422, 3.532064128256513 +145.6999969482422, 3.5409053400919484 +146.5, 3.050218083225274 +148.5, 1.6253094424142402 +149.8000030517578, 34.351055051279026 +150.39999389648438, 36.47294589178357 +151.60000610351562, 15.691677472592243 +152.3000030517578, 12.790286455263468 +153.5, 1.8419191323824118 +154.0, 1.4691146999882116 +154.60000610351562, 1.315867028173995 +156.1999969482422, 9.026877283979724 +157.1999969482422, 5.771837793233526 +158.1999969482422, 10.637451373334905 +159.0, 7.7817399504892135 +160.1999969482422, 1.5560532830366616 +161.0, 2.7451962749027468 +162.1999969482422, 1.065366026169987 +163.39999389648438, 0.8340209831427561 +164.1999969482422, 1.130201579629848 +165.5, 1.2583991512436639 +166.5, 1.859601556053283 +167.39999389648438, 1.7004597430154427 +168.0, 1.5368973240598844 +168.5, 1.6886714605681952 +169.8000030517578, 3.4348107980667217 +170.60000610351562, 1.6149946952728986 +172.3000030517578, 1.528056112224449 +173.10000610351562, 1.4558528822350583 +174.5, 0.5393139219615702 +176.6999969482422, 2.216197100082518 +178.5, 0.2740775668985029 +179.5, 0.8281268419191323 +180.1999969482422, 1.2495579394082281 +181.39999389648438, 2.188199929270305 +182.1999969482422, 0.7853943180478604 +182.89999389648438, 1.3040787457267475 +184.3000030517578, 2.21914417069433 +186.0, 0.7559236119297418 +187.1999969482422, 1.0108452198514677 +188.0, 0.7411882588706825 +189.3000030517578, 1.2274549098196392 +190.10000610351562, 1.1139926912648828 +192.1999969482422, 1.1832488506424614 +192.89999389648438, 0.8428621949781917 +193.60000610351562, 1.463220558764588 +195.0, 2.4608039608629024 +196.39999389648438, 0.668985028881292 +197.5, 0.584993516444654 +199.5, 2.776140516326771 +200.6999969482422, 2.173464576211246 +202.60000610351562, 2.484380525757397 +203.60000610351562, 0.8281268419191323 +204.60000610351562, 1.0358953200518684 +207.3000030517578, 1.7196157019922198 +208.5, 2.070317104797831 +209.5, 2.80561122244489 +211.39999389648438, 2.033478722150183 +212.3000030517578, 1.9774843805257574 +213.3000030517578, 0.7426617941765885 +214.3000030517578, 2.2471413415065427 +214.6999969482422, 1.7638217611693976 +216.6999969482422, 3.0590592950607096 +217.39999389648438, 3.5188023105033595 +218.89999389648438, 2.2662973004833193 +220.5, 2.0673700341860193 +221.5, 1.939172462572203 +223.5, 2.8571849581515973 +224.5, 1.463220558764588 +225.39999389648438, 1.1375692561593775 +226.0, 1.2009312743133325 +226.60000610351562, 2.242720735588825 +228.60000610351562, 3.112106566073323 +229.5, 0.8089708829423553 +230.39999389648438, 1.731403984439467 +230.89999389648438, 1.9701167039962277 +232.1999969482422, 1.3026052104208417 +233.0, 1.167039962277496 +233.6999969482422, 0.7824472474360485 +234.8000030517578, 1.7255098432158433 +236.3000030517578, 1.12578097371213 +237.39999389648438, 2.967700106094542 +238.39999389648438, 1.1817753153365556 +239.5, 1.41901449958741 +240.8000030517578, 2.048214075209242 +241.39999389648438, 2.2176706353884237 +242.1999969482422, 0.7058234115289402 +243.0, 2.3046092184368736 +244.39999389648438, 2.6847813273606036 +245.1999969482422, 2.170517505599434 +246.10000610351562, 0.3197571613815867 +246.5, 0.38164564422963576 +247.39999389648438, 0.6999292703053165 +248.5, 1.3644936932688907 +249.89999389648438, 1.108098550041259 +250.60000610351562, 1.5531062124248496 +251.3000030517578, 1.6989862077095368 +252.5, 2.032005186844277 +254.1999969482422, 2.3267122480254625 +255.0, 1.3306023812330543 +256.70001220703125, 4.996758222327007 +257.29998779296875, 4.911293174584463 +258.3999938964844, 2.3768124484262643 +259.3999938964844, 2.699516680419663 +261.29998779296875, 2.3694447718967346 +262.79998779296875, 2.2721914417069433 +263.1000061035156, 2.2324059884474834 +264.70001220703125, 1.836024991158788 +265.0, 1.7652952964753035 +266.1000061035156, 1.4116468230578805 +267.5, 1.1316751149357538 +268.5, 1.0830484498408581 +269.70001220703125, 0.8767535070140281 +270.5, 0.9062242131321466 +271.5, 2.3886007308735118 +272.1000061035156, 1.6326771189437699 +273.29998779296875, 1.2362961216550747 +274.20001220703125, 2.2441942708947304 +275.0, 0.3020747377107155 +276.20001220703125, 1.9038076152304608 +277.0, 1.6474124720028291 +277.5, 1.3497583402098314 +278.5, 1.482376517741365 +279.3999938964844, 0.7662383590710833 +280.79998779296875, 1.775610043616645 +281.8999938964844, 2.681834256748792 +282.5, 2.479959919839679 +283.3999938964844, 2.5565837557467876 +285.20001220703125, 2.535954261464105 +285.70001220703125, 0.9121183543557704 +286.70001220703125, 0.7072969468348461 +287.29998779296875, 0.7176116939761876 +288.29998779296875, 0.6630908876576682 +289.79998779296875, 0.9121183543557704 +291.0, 1.337970057762584 +292.20001220703125, 1.5206884356949193 +292.8999938964844, 1.4381704585641872 +293.5, 1.861075091359189 +294.0, 2.1425203347872213 +295.1000061035156, 0.8767535070140281 +295.8999938964844, 1.5162678297772014 +297.0, 2.0261110456206533 +298.6000061035156, 1.6886714605681952 +299.29998779296875, 1.2141930920664858 +300.29998779296875, 2.9146528350819287 +301.3999938964844, 2.929388188140988 +301.8999938964844, 3.4171283743958503 +304.1000061035156, 2.468171637392432 +305.20001220703125, 0.9636920900624779 +306.3999938964844, 1.9789579158316633 +307.3999938964844, 1.2775551102204408 +308.1000061035156, 1.3556524814334552 +309.1000061035156, 2.3517623482258636 +310.1000061035156, 1.402805611222445 +311.0, 0.6380407874572674 +312.0, 4.127372391842509 +312.8999938964844, 3.5865849345750322 +314.1000061035156, 1.610574089355181 +315.20001220703125, 0.7677118943769893 +316.29998779296875, 1.3733349051043262 +318.0, 1.6871979252622893 +319.1000061035156, 1.6709890368973241 +320.8999938964844, 0.8944359306848992 +322.1000061035156, 1.586997524460686 +322.8999938964844, 2.640575268183426 +323.29998779296875, 2.586054461864906 +323.79998779296875, 2.4328067900506896 +324.3999938964844, 3.9372863373806437 +326.0, 0.8885417894612755 +327.70001220703125, 5.381350937168454 +329.20001220703125, 2.0938936696923256 +330.29998779296875, 1.1744076388070257 +331.20001220703125, 1.6120476246610869 +332.3999938964844, 1.25250501002004 +333.6000061035156, 2.1631498290699045 +334.6000061035156, 0.648355534598609 +336.70001220703125, 2.229458917835671 +338.1000061035156, 0.5938347282800895 +338.8999938964844, 0.6291995756218319 +340.6000061035156, 1.5531062124248496 +341.6000061035156, 1.797713073205234 +343.1000061035156, 1.1832488506424614 +344.5, 0.3801721089237298 +345.6000061035156, 1.084521985146764 +346.1000061035156, 1.1405163267711895 +347.29998779296875, 0.45826948013674407 +348.5, 0.6424613933749852 +349.6000061035156, 1.0137922904632795 +350.70001220703125, 2.3355534598608982 +351.5, 1.3070258163385595 +352.5, 1.544265000589414 +354.6000061035156, 1.171460568195214 +355.0, 1.208298950842862 +356.0, 1.6680419662855122 +356.5, 1.3040787457267475 +357.20001220703125, 3.0369562654721207 +358.5, 0.7780266415183308 +360.79998779296875, 0.502475539313922 +362.0, 0.49805493339620416 +362.70001220703125, 0.3241777672993045 +363.6000061035156, 1.0712601673936106 +364.3999938964844, 1.4543793469291524 +365.1000061035156, 1.0064246139337498 +365.79998779296875, 0.3285983732170223 +367.0, 1.4573264175409644 +368.3999938964844, 1.2863963220558765 +369.1000061035156, 1.9155958976777083 +370.1000061035156, 2.0953672049982317 +372.1000061035156, 1.146410467994813 +373.0, 1.3350229871507722 +374.0, 0.6321466462336437 +374.6000061035156, 1.0123187551573736 +375.5, 0.6542496758222327 +376.1000061035156, 0.4287987740186255 +377.70001220703125, 2.507957090651892 +378.79998779296875, 1.000530472710126 +380.20001220703125, 0.8914888600730874 +381.8999938964844, 0.5776258399151244 +382.79998779296875, 1.1036779441235411 +383.29998779296875, 1.5162678297772014 +384.29998779296875, 1.5840504538488742 +386.5, 1.003477543321938 +387.20001220703125, 0.8325474478368502 +389.0, 1.6916185311800072 +389.6000061035156, 1.67246257220323 +390.70001220703125, 1.109572085347165 +392.6000061035156, 0.5157373570670754 +393.20001220703125, 0.271130496286691 +394.6000061035156, 0.8074973476364493 +395.29998779296875, 1.9376989272662972 +396.3999938964844, 0.5776258399151244 +397.1000061035156, 0.6115171519509608 +399.5, 0.1340917128374396 +400.8999938964844, 11.742602852764351 +402.20001220703125, 13.07909937522103 +403.8999938964844, 10.173287751974538 +404.5, 8.266533066132265 +405.20001220703125, 3.408287162560415 +406.6000061035156, 0.6115171519509608 +407.29998779296875, 0.62625250501002 +408.70001220703125, 1.6474124720028291 +410.0, 1.0108452198514677 +410.8999938964844, 0.2888129199575622 +411.20001220703125, 0.30354827301662146 +412.20001220703125, 0.5555228103265354 +414.6000061035156, 0.5864670517505599 +415.29998779296875, 1.0742072380054226 +416.20001220703125, 1.041789461275492 +417.5, 0.7264529058116233 +418.70001220703125, 1.1832488506424614 +419.5, 1.5398443946716962 +420.70001220703125, 1.8537074148296593 +422.20001220703125, 1.1626193563597784 +423.29998779296875, 1.5162678297772014 +424.29998779296875, 2.929388188140988 +425.0, 0.9695862312861016 +426.6000061035156, 0.6380407874572674 +427.6000061035156, 1.485323588353177 +428.70001220703125, 0.6601438170458565 +429.79998779296875, 3.720676647412472 +430.8999938964844, 1.12578097371213 +431.8999938964844, 2.2279853825297655 +434.0, 1.0152658257691853 +434.79998779296875, 0.6321466462336437 +437.0, 1.9568548862430744 +439.70001220703125, 2.006955086643876 +440.6000061035156, 1.0476836024991159 +441.1000061035156, 0.9931627961805964 +441.8999938964844, 0.502475539313922 +443.20001220703125, 0.3197571613815867 +445.3999938964844, 1.4337498526464694 +446.1000061035156, 1.0108452198514677 +447.1000061035156, 3.215254037486738 +449.6000061035156, 0.37722503831191795 +450.5, 0.8413886596722857 +451.6000061035156, 0.439113521159967 +453.1000061035156, 1.6606742897559825 +454.3999938964844, 2.1999882117175527 +455.20001220703125, 0.6498290699045149 +455.79998779296875, 0.670458564187198 +457.0, 0.9740068372038194 +458.5, 0.7131910880584699 +459.3999938964844, 0.7765531062124248 +460.0, 0.44206059177177887 +461.1000061035156, 1.4558528822350583 +462.20001220703125, 0.9224331014971119 +463.1000061035156, 0.41111635034775434 +464.79998779296875, 0.564364022161971 +465.29998779296875, 0.543734527879288 +466.8999938964844, 1.002004008016032 +468.70001220703125, 0.5673110927737829 +470.29998779296875, 1.7697159023930213 +471.1000061035156, 0.2755511022044088 +472.3999938964844, 0.7264529058116233 +472.8999938964844, 0.7691854296828952 +474.1000061035156, 0.02799717081221266 +475.20001220703125, 0.34775433219379936 +476.3999938964844, 0.9091712837439585 +478.5, 0.14145938936696922 +481.1000061035156, 0.8944359306848992 +481.70001220703125, 0.45384887421902625 +483.0, 0.3462807968878934 +483.70001220703125, 0.6115171519509608 +484.6000061035156, 1.1596722857479664 +485.5, 0.37722503831191795 +487.1000061035156, 0.8708593657904043 +487.79998779296875, 0.3521749381115171 +488.8999938964844, 1.1552516798302488 +490.1000061035156, 0.521631498290699 +491.0, 0.04420605917717788 +492.3999938964844, 1.5840504538488742 +493.5, 0.1650359542614641 +494.79998779296875, 0.9062242131321466 +495.5, 0.8885417894612755 +496.3999938964844, 0.33301897913474005 +497.70001220703125, 0.3742779677001061 +498.5, 0.1797713073205234 +499.20001220703125, 0.5717316986915006 +500.1000061035156, 0.5113167511493575 +500.5, 0.3845927148414476 +501.29998779296875, 0.31091594954615115 +502.70001220703125, 0.1591418130378404 +503.70001220703125, 0.6851939172462572 +504.70001220703125, 0.40080160320641284 +505.5, 0.711717552752564 +506.5, 0.5378403866556642 +508.1000061035156, 0.05452080631851939 +509.20001220703125, 0.09725333018979135 +510.5, 0.8281268419191323 +512.0999755859375, 0.3698573617823883 +512.9000244140625, 0.3094424142402452 +514.5, 0.3094424142402452 +515.2999877929688, 0.6321466462336437 +515.7999877929688, 0.45090180360721444 +516.5, 0.019155958976777084 +516.9000244140625, 0.02210302958858894 +518.2000122070312, 1.2790286455263469 +519.0999755859375, 0.2755511022044088 +520.0999755859375, 0.7190852292820936 +521.2000122070312, 0.4450076623835907 +522.0, 0.6645644229635742 +522.7999877929688, 0.2401862548626665 +524.0, 0.3786985736178239 +525.2000122070312, 0.45090180360721444 +525.9000244140625, 0.5334197807379465 +528.2000122070312, 0.4229046327950018 +529.7999877929688, 1.796239537899328 +532.0999755859375, 0.4759519038076152 +533.5999755859375, 1.7476128728044324 +536.5, 0.12082989508428622 +537.2999877929688, 0.002947070611811859 +538.7999877929688, 1.6621478250618884 +540.4000244140625, 0.3492278674997053 +541.0, 0.34775433219379936 +543.0999755859375, 0.04273252387127195 +544.4000244140625, 0.15177413650831073 +545.4000244140625, 0.10609454202522692 +546.4000244140625, 0.019155958976777084 +548.2999877929688, 0.2549216079217258 +549.0, 0.5511022044088176 +551.2000122070312, 1.3556524814334552 +552.4000244140625, 0.2888129199575622 +553.9000244140625, 0.15766827773193445 +555.9000244140625, 0.5172108923729812 +558.0999755859375, 1.105151479429447 +558.9000244140625, 0.07809737121301426 +560.0, 0.4361664505481551 +560.5999755859375, 0.229871507721325 +561.5, 0.10020040080160321 +562.0999755859375, 0.2048214075209242 +563.4000244140625, 0.4700577625839915 +564.0999755859375, 0.35364847341742306 +564.9000244140625, 0.38753978545325946 +566.0, 0.22103029588588943 +566.7999877929688, 0.4626900860544619 +568.9000244140625, 0.40080160320641284 +569.4000244140625, 0.5039490746198279 +570.2999877929688, 0.27702463751031475 +570.9000244140625, 0.3890133207591654 +571.2999877929688, 0.375751503006012 +572.4000244140625, 0.5201579629847931 +573.2999877929688, 0.15177413650831073 +574.0, 0.025050100200400802 +574.5, 0.050100200400801605 +575.5999755859375, 0.5039490746198279 +576.5, 0.16650948956737002 +577.5999755859375, 0.1591418130378404 +579.0999755859375, 0.5452080631851939 +580.2000122070312, 0.09872686549569727 +582.2000122070312, 0.46416362136036776 +582.9000244140625, 0.26670989036897325 +583.5999755859375, 0.004420605917717788 +585.5, 1.1832488506424614 +586.2000122070312, 0.42143109748909585 +587.7999877929688, 0.375751503006012 +589.2000122070312, 0.3860662501473535 +590.4000244140625, 0.04273252387127195 +591.4000244140625, 0.15030060120240482 +592.5999755859375, 0.40080160320641284 +594.0, 0.209242013438642 +596.2000122070312, 1.0683130967817989 +598.5, 0.2814452434280325 +599.5999755859375, 0.46416362136036776 +600.5, 0.1797713073205234 +601.2000122070312, 0.3094424142402452 +602.5, 0.3786985736178239 +603.0, 0.38753978545325946 +604.2000122070312, 0.3595426146410468 +606.4000244140625, 0.1694565601791819 +608.2000122070312, 0.7058234115289402 +609.2999877929688, 0.11640928916656842 +610.0, 0.15324767181421667 +612.7000122070312, 0.16650948956737002 +614.2999877929688, 0.34038665566426973 +615.5999755859375, 0.1650359542614641 +617.0, 0.43174584463043736 +617.7999877929688, 0.2681834256748792 +619.0999755859375, 0.061888482848049035 +621.0999755859375, 0.8428621949781917 +621.7999877929688, 0.5481551337970058 +623.7999877929688, 0.4346929152422492 +624.7999877929688, 0.898856536602617 +625.4000244140625, 0.7411882588706825 +626.0999755859375, 0.30354827301662146 +627.0999755859375, 0.0854650477425439 +627.5, 0.09283272427207356 +628.2999877929688, 0.035364847341742306 +630.2000122070312, 0.5319462454320405 +632.7000122070312, 0.9489567370034185 +633.2999877929688, 0.8148650241659791 +634.0, 0.5186844276788872 +635.0999755859375, 0.02210302958858894 +636.0999755859375, 0.11198868324885064 +637.0999755859375, 1.4661676293763999 +637.9000244140625, 0.08104444182482612 +639.0999755859375, 0.5186844276788872 +640.0, 0.019155958976777084 +640.9000244140625, 0.051573735706707535 +641.9000244140625, 0.6969821996935046 +644.0, 0.5378403866556642 +645.7999877929688, 0.1606153483437463 +647.0999755859375, 0.31238948485205703 +648.7000122070312, 0.04273252387127195 +650.4000244140625, 0.5068961452316397 +651.2000122070312, 0.03241777672993045 +651.7999877929688, 0.07809737121301426 +653.2000122070312, 0.6955086643875987 +653.7999877929688, 0.14145938936696922 +654.9000244140625, 0.11935635977838029 +656.4000244140625, 0.09283272427207356 +658.2000122070312, 0.4788989744194271 +659.4000244140625, 0.6630908876576682 +661.0, 1.130201579629848 +662.4000244140625, 0.5186844276788872 +663.4000244140625, 0.5805729105269363 +664.2999877929688, 0.008841211835435576 +665.7999877929688, 0.3153365554638689 +666.9000244140625, 0.16208888364965224 +668.5999755859375, 0.9961098667924083 +669.5999755859375, 0.0397854532594601 +671.2999877929688, 0.3595426146410468 +672.2000122070312, 0.5348933160438524 +674.0999755859375, 0.2342921136390428 +674.9000244140625, 0.3845927148414476 +675.5, 0.6070965460332429 +677.4000244140625, 0.22692443710951313 +678.0999755859375, 0.36248968525285863 +678.7000122070312, 0.19745373099139454 +682.7000122070312, 0.9356949192502653 +683.5, 0.41111635034775434 +685.0999755859375, 0.22545090180360722 +687.5, 0.8222327006955087 +688.7999877929688, 0.35364847341742306 +689.5, 0.16650948956737002 +691.4000244140625, 0.4892137215607686 +692.5, 0.3683838264764824 +693.2999877929688, 0.07809737121301426 +694.7000122070312, 0.05304727101261346 +695.2999877929688, 0.10167393610750913 +696.9000244140625, 1.1213603677944124 +697.7999877929688, 0.32712483791111635 +699.2999877929688, 0.42437816810090767 +700.0999755859375, 0.08251797713073206 +700.7000122070312, 0.06925615937757869 +702.2999877929688, 0.7072969468348461 +703.5999755859375, 0.1709300954850878 +704.7000122070312, 0.15030060120240482 +705.5999755859375, 0.8340209831427561 +706.4000244140625, 0.047153129788989744 +707.7999877929688, 0.6719320994931038 +709.5999755859375, 0.45090180360721444 +712.0, 0.35659554402923493 +712.9000244140625, 0.011788282447247436 +714.2999877929688, 1.0535777437227396 +716.4000244140625, 0.8237062360014146 +717.2999877929688, 0.02947070611811859 +719.0999755859375, 0.35659554402923493 +720.0, 0.051573735706707535 +720.7999877929688, 0.06336201815395497 +722.7999877929688, 0.45826948013674407 +724.0999755859375, 0.0648355534598609 +725.2999877929688, 0.43763998585406105 +726.2000122070312, 0.09430625957797949 +727.5, 0.048626665094895674 +728.2999877929688, 0.06778262407167275 +729.5, 0.13114464222562772 +731.0999755859375, 0.18271837793233525 +732.0, 0.05894141223623718 +734.7000122070312, 0.23281857833313685 +736.0999755859375, 0.4494282683013085 +737.0999755859375, 0.07367676529529647 +738.0, 0.08251797713073206 +739.5, 0.2519745373099139 +740.5999755859375, 0.23134504302723094 +741.7000122070312, 0.2814452434280325 +742.4000244140625, 0.32270423199339854 +744.2999877929688, 0.12819757161381587 +745.4000244140625, 0.4936343274784864 +746.2999877929688, 0.025050100200400802 +748.2000122070312, 0.7809737121301427 +749.7000122070312, 0.250501002004008 +750.5999755859375, 0.9681126959801957 +752.0999755859375, 0.05452080631851939 +753.2000122070312, 0.0 +754.4000244140625, 0.02799717081221266 +755.4000244140625, 0.7559236119297418 +756.0999755859375, 0.7382411882588706 +758.0, 1.1803017800306495 +759.0, 0.16208888364965224 +760.0999755859375, 0.04567959448308381 +762.0999755859375, 0.878227042319934 +763.2000122070312, 0.05304727101261346 +764.5999755859375, 0.3993280679005069 +765.7999877929688, 0.3212306966874926 +768.2999877929688, 0.2578686785335377 +769.9000244140625, 0.7043498762230342 +771.7000122070312, 0.6174112931745844 +772.7999877929688, 0.47742543911352114 +775.0999755859375, 0.5967817988919014 +775.9000244140625, 0.07072969468348461 +776.5, 0.07515030060120241 +777.7000122070312, 0.22250383119179534 +779.0, 0.02947070611811859 +780.2000122070312, 0.035364847341742306 +781.5999755859375, 0.19745373099139454 +782.0, 0.1591418130378404 +783.0, 0.07515030060120241 +784.0, 0.20629494282683014 +784.5999755859375, 0.08104444182482612 +786.4000244140625, 0.19745373099139454 +787.7999877929688, 0.37722503831191795 +789.9000244140625, 0.2784981728162207 +790.7999877929688, 0.4656371566662737 +791.7000122070312, 0.6748791701049157 +792.5999755859375, 0.02210302958858894 +793.5, 0.047153129788989744 +794.2999877929688, 0.09430625957797949 +795.2999877929688, 0.04567959448308381 +796.7999877929688, 0.30649534362843334 +798.0, 0.014735353059059295 +799.2000122070312, 0.1606153483437463 +800.9000244140625, 0.10609454202522692 +801.9000244140625, 0.0898856536602617 +802.7000122070312, 0.06925615937757869 +803.7000122070312, 0.02799717081221266 +805.5, 1.024107037604621 +806.5, 0.3212306966874926 +807.2000122070312, 0.08104444182482612 +807.7000122070312, 0.09577979488388541 +808.7999877929688, 0.047153129788989744 +809.9000244140625, 0.4523753389131204 +811.0999755859375, 0.502475539313922 +811.5, 0.45679594483083813 +813.2999877929688, 1.7873983260638924 +815.5, 0.9091712837439585 +816.4000244140625, 0.2696569609807851 +817.0999755859375, 0.04420605917717788 +818.5, 0.8251797713073206 +819.5, 0.8399151243663798 +820.2999877929688, 0.08841211835435576 +822.4000244140625, 0.31681009076977484 +823.2999877929688, 0.18124484262642931 +824.5, 0.15766827773193445 +826.2999877929688, 0.3698573617823883 +827.5, 0.08251797713073206 +828.2000122070312, 0.04273252387127195 +828.7999877929688, 0.12082989508428622 +831.0, 0.036838382647648237 +831.7000122070312, 0.050100200400801605 +833.0, 0.23134504302723094 +835.0, 0.02652363550630673 +835.9000244140625, 0.0 +836.5, 0.04125898856536603 +837.0, 0.0795709065189202 +837.5999755859375, 0.11640928916656842 +838.4000244140625, 0.05599434162442532 +839.2000122070312, 0.014735353059059295 +840.0999755859375, 0.010314747141341507 +840.9000244140625, 0.036838382647648237 +843.2000122070312, 0.10609454202522692 +843.9000244140625, 0.09725333018979135 +844.5999755859375, 0.09872686549569727 +845.5, 0.06925615937757869 +846.2000122070312, 0.09725333018979135 +847.2999877929688, 0.0014735353059059295 +849.2999877929688, 0.1900860544618649 +851.5, 0.9356949192502653 +852.2000122070312, 0.09283272427207356 +854.0, 0.050100200400801605 +856.5999755859375, 1.022633502298715 +857.4000244140625, 0.06778262407167275 +858.5, 0.0795709065189202 +859.2999877929688, 0.0 +861.5, 0.05304727101261346 +863.0999755859375, 1.0801013792290464 +864.5, 0.02652363550630673 +865.5999755859375, 0.04420605917717788 +867.0, 0.019155958976777084 +868.0, 0.5039490746198279 +869.2000122070312, 0.3079688789343393 +870.2999877929688, 0.9872686549569728 +871.5, 0.08104444182482612 +874.2999877929688, 0.011788282447247436 +876.0, 0.6513026052104208 +877.0, 0.06041494754214311 +877.7999877929688, 0.05452080631851939 +879.7000122070312, 0.37280443239420014 +880.5999755859375, 0.0397854532594601 +881.2000122070312, 0.06336201815395497 +882.4000244140625, 0.29028645526346813 +884.2000122070312, 0.6100436166450548 +887.0999755859375, 1.146410467994813 +888.2999877929688, 0.6719320994931038 +889.0999755859375, 0.40816927973594247 +889.9000244140625, 0.49805493339620416 +892.7000122070312, 0.061888482848049035 +893.7999877929688, 0.34333372627608155 +895.0999755859375, 0.11198868324885064 +896.7000122070312, 0.3492278674997053 +897.2999877929688, 0.39343392667688315 +899.4000244140625, 0.11198868324885064 +901.0999755859375, 1.651833077920547 +903.5999755859375, 0.3845927148414476 +904.5999755859375, 0.5260521042084169 +906.7999877929688, 0.5776258399151244 +907.4000244140625, 0.44058705646587293 +908.2999877929688, 0.12082989508428622 +910.0, 0.5687846280796888 +911.0, 0.010314747141341507 +912.7999877929688, 0.3845927148414476 +913.9000244140625, 0.06336201815395497 +914.5, 0.07072969468348461 +916.5999755859375, 0.016208888364965226 +918.2999877929688, 0.08251797713073206 +919.2000122070312, 0.11788282447247436 +919.5, 0.1149357538606625 +920.5, 0.10314747141341507 +921.2000122070312, 0.033891312035836375 +922.5, 0.08251797713073206 +924.7999877929688, 0.09577979488388541 +925.7000122070312, 0.07515030060120241 +927.0999755859375, 0.03831191795355417 +929.4000244140625, 0.020629494282683014 +930.5999755859375, 0.0854650477425439 +931.2999877929688, 0.09283272427207356 +931.9000244140625, 0.04420605917717788 +932.2999877929688, 0.0648355534598609 +932.7999877929688, 0.05746787693033125 +933.5, 0.036838382647648237 +934.2999877929688, 0.002947070611811859 +936.7000122070312, 0.048626665094895674 +937.4000244140625, 0.06630908876576683 +938.7000122070312, 0.125250501002004 +939.9000244140625, 0.051573735706707535 +943.4000244140625, 0.11346221855475656 +944.5, 0.10609454202522692 +945.4000244140625, 0.0648355534598609 +948.4000244140625, 0.04273252387127195 +950.4000244140625, 0.013261817753153365 +952.0999755859375, 0.12230343039019215 +954.5, 0.0648355534598609 +955.0999755859375, 0.07072969468348461 +955.9000244140625, 0.09430625957797949 +957.5999755859375, 0.02799717081221266 +958.0999755859375, 0.05304727101261346 +959.7000122070312, 0.023576564894494872 +960.7000122070312, 0.05746787693033125 +961.5999755859375, 0.0854650477425439 +962.0999755859375, 0.06925615937757869 +963.0, 0.036838382647648237 +964.2999877929688, 0.12082989508428622 +964.9000244140625, 0.09577979488388541 +965.9000244140625, 0.023576564894494872 +967.2000122070312, 0.03241777672993045 +968.2999877929688, 0.07809737121301426 +969.0999755859375, 0.0648355534598609 +970.4000244140625, 0.08841211835435576 +974.2999877929688, 0.047153129788989744 +974.9000244140625, 0.1149357538606625 +976.0, 0.09283272427207356 +976.7000122070312, 0.06630908876576683 +977.5999755859375, 0.025050100200400802 +978.7999877929688, 0.047153129788989744 +979.7999877929688, 0.033891312035836375 +980.2999877929688, 0.06925615937757869 +981.5999755859375, 0.12819757161381587 +983.2999877929688, 0.06925615937757869 +985.2999877929688, 0.02799717081221266 +986.5999755859375, 0.047153129788989744 +987.4000244140625, 0.05452080631851939 +988.0999755859375, 0.02652363550630673 +989.5, 0.05894141223623718 +990.5999755859375, 0.036838382647648237 +992.7999877929688, 0.036838382647648237 +993.9000244140625, 0.07809737121301426 +994.7999877929688, 0.07367676529529647 +995.2999877929688, 0.05894141223623718 +998.2000122070312, 0.0014735353059059295 +999.0999755859375, 0.03241777672993045 +1000.0, 0.0795709065189202 +1001.0, 0.10020040080160321 +1001.7999877929688, 0.05452080631851939 +1002.7000122070312, 0.04125898856536603 +1004.9000244140625, 0.02799717081221266 +1005.7999877929688, 0.08693858304844984 +1006.5999755859375, 0.10609454202522692 +1007.0999755859375, 0.02799717081221266 +1007.5999755859375, 0.03241777672993045 +1011.4000244140625, 0.08251797713073206 +1011.9000244140625, 0.06630908876576683 +1012.7999877929688, 0.02947070611811859 +1013.5999755859375, 0.04125898856536603 +1014.7000122070312, 0.061888482848049035 +1015.7999877929688, 0.019155958976777084 +1016.5999755859375, 0.020629494282683014 +1017.2999877929688, 0.016208888364965226 +1018.2000122070312, 0.07072969468348461 +1018.7999877929688, 0.04567959448308381 +1019.0999755859375, 0.04420605917717788 +1019.5999755859375, 0.07072969468348461 +1020.5999755859375, 0.061888482848049035 +1021.2000122070312, 0.036838382647648237 +1022.9000244140625, 0.008841211835435576 +1023.9000244140625, 0.04273252387127195 +1024.5, 0.03831191795355417 +1025.300048828125, 0.09135918896616763 +1025.9000244140625, 0.07367676529529647 +1026.800048828125, 0.07072969468348461 +1027.300048828125, 0.05894141223623718 +1030.0, 0.051573735706707535 +1030.5999755859375, 0.07515030060120241 +1031.699951171875, 0.11198868324885064 +1033.199951171875, 0.05894141223623718 +1035.9000244140625, 0.05599434162442532 +1036.9000244140625, 0.07809737121301426 +1037.300048828125, 0.061888482848049035 +1038.199951171875, 0.09872686549569727 +1039.4000244140625, 0.05599434162442532 +1040.0, 0.013261817753153365 +1041.199951171875, 0.025050100200400802 +1042.199951171875, 0.02947070611811859 +1042.800048828125, 0.04420605917717788 +1043.300048828125, 0.050100200400801605 +1044.300048828125, 0.104621006719321 +1045.300048828125, 0.13851231875515738 +1046.699951171875, 0.05894141223623718 +1048.699951171875, 0.02947070611811859 +1050.0, 0.09135918896616763 +1051.0999755859375, 0.035364847341742306 +1051.9000244140625, 0.06925615937757869 +1052.5999755859375, 0.051573735706707535 +1054.300048828125, 0.016208888364965226 +1055.300048828125, 0.09283272427207356 +1056.0999755859375, 0.09725333018979135 +1057.0999755859375, 0.1340917128374396 +1057.9000244140625, 0.047153129788989744 +1062.0999755859375, 0.08104444182482612 +1063.0, 0.06778262407167275 +1064.0, 0.047153129788989744 +1064.800048828125, 0.025050100200400802 +1065.800048828125, 0.004420605917717788 +1067.199951171875, 0.03831191795355417 +1068.5, 0.07072969468348461 +1070.5999755859375, 0.08841211835435576 +1071.0, 0.05304727101261346 +1073.9000244140625, 0.050100200400801605 +1074.699951171875, 0.11051514794294472 +1075.5999755859375, 0.09430625957797949 +1076.699951171875, 0.09430625957797949 +1077.699951171875, 0.05746787693033125 +1079.300048828125, 0.011788282447247436 +1080.300048828125, 0.061888482848049035 +1080.9000244140625, 0.08104444182482612 +1081.4000244140625, 0.0854650477425439 +1082.800048828125, 0.07072969468348461 +1083.699951171875, 0.02210302958858894 +1086.199951171875, 0.016208888364965226 +1086.699951171875, 0.05599434162442532 +1087.4000244140625, 0.07809737121301426 +1088.5, 0.09135918896616763 +1089.199951171875, 0.04125898856536603 +1089.5999755859375, 0.033891312035836375 +1092.699951171875, 0.033891312035836375 +1093.5999755859375, 0.1149357538606625 +1095.0, 0.04420605917717788 +1095.699951171875, 0.07809737121301426 +1096.5, 0.04273252387127195 +1097.300048828125, 0.019155958976777084 +1098.800048828125, 0.10020040080160321 +1099.199951171875, 0.09135918896616763 +1100.5999755859375, 0.1547212071201226 +1102.0999755859375, 0.02210302958858894 +1104.5, 0.036838382647648237 +1105.300048828125, 0.05452080631851939 +1106.0, 0.09283272427207356 +1106.699951171875, 0.07662383590710833 +1107.5, 0.11640928916656842 +1108.0, 0.125250501002004 +1111.9000244140625, 0.07072969468348461 +1112.800048828125, 0.06925615937757869 +1114.199951171875, 0.033891312035836375 +1117.199951171875, 0.02947070611811859 +1118.199951171875, 0.0795709065189202 +1119.199951171875, 0.12819757161381587 +1120.4000244140625, 0.030944241424024518 +1121.300048828125, 0.005894141223623718 +1124.4000244140625, 0.1149357538606625 +1125.300048828125, 0.09135918896616763 +1125.800048828125, 0.036838382647648237 +1126.9000244140625, 0.013261817753153365 +1127.4000244140625, 0.05304727101261346 +1130.300048828125, 0.104621006719321 +1130.9000244140625, 0.10904161263703878 +1131.9000244140625, 0.035364847341742306 +1132.800048828125, 0.07367676529529647 +1133.5999755859375, 0.06778262407167275 +1135.699951171875, 0.0 +1136.4000244140625, 0.025050100200400802 +1136.9000244140625, 0.051573735706707535 +1137.4000244140625, 0.035364847341742306 +1138.199951171875, 0.0795709065189202 +1138.699951171875, 0.11346221855475656 +1139.699951171875, 0.11640928916656842 +1140.800048828125, 0.017682423670871153 +1141.5, 0.017682423670871153 +1142.300048828125, 0.025050100200400802 +1143.199951171875, 0.0898856536602617 +1143.800048828125, 0.09430625957797949 +1144.699951171875, 0.09283272427207356 +1145.800048828125, 0.02947070611811859 +1147.5, 0.010314747141341507 +1149.4000244140625, 0.13261817753153365 +1150.5999755859375, 0.061888482848049035 +1151.199951171875, 0.05746787693033125 +1152.0, 0.035364847341742306 +1155.300048828125, 0.07515030060120241 +1156.199951171875, 0.03831191795355417 +1156.800048828125, 0.04273252387127195 +1158.0, 0.12230343039019215 +1159.5, 0.04420605917717788 +1160.4000244140625, 0.005894141223623718 +1162.300048828125, 0.1149357538606625 +1162.699951171875, 0.07367676529529647 +1163.5, 0.12230343039019215 +1164.800048828125, 0.04273252387127195 +1167.4000244140625, 0.008841211835435576 +1168.300048828125, 0.0648355534598609 +1168.699951171875, 0.047153129788989744 +1169.199951171875, 0.0648355534598609 +1169.800048828125, 0.033891312035836375 +1170.5, 0.0397854532594601 +1171.0, 0.019155958976777084 +1171.800048828125, 0.005894141223623718 +1173.300048828125, 0.014735353059059295 +1174.0999755859375, 0.030944241424024518 +1174.800048828125, 0.0397854532594601 +1175.699951171875, 0.07072969468348461 +1176.9000244140625, 0.04567959448308381 +1179.4000244140625, 0.02799717081221266 +1180.800048828125, 0.08104444182482612 +1181.5, 0.12377696569609807 +1182.5, 0.020629494282683014 +1182.9000244140625, 0.02947070611811859 +1183.800048828125, 0.08104444182482612 +1185.0999755859375, 0.017682423670871153 +1186.199951171875, 0.0014735353059059295 +1187.0999755859375, 0.048626665094895674 +1188.0999755859375, 0.050100200400801605 +1189.0999755859375, 0.06630908876576683 +1189.800048828125, 0.13998585406106331 +1192.5999755859375, 0.0648355534598609 +1194.0, 0.08104444182482612 +1194.9000244140625, 0.07809737121301426 +1195.4000244140625, 0.02799717081221266 +1196.199951171875, 0.023576564894494872 +1197.0, 0.05894141223623718 +1197.800048828125, 0.016208888364965226 +1198.4000244140625, 0.04567959448308381 +1200.0, 0.10756807733113286 +1201.0, 0.035364847341742306 +1201.800048828125, 0.036838382647648237 +1202.5, 0.014735353059059295 +1203.699951171875, 0.025050100200400802 +1205.5999755859375, 0.1149357538606625 +1207.0, 0.10020040080160321 +1208.0999755859375, 0.06630908876576683 +1210.800048828125, 0.014735353059059295 +1211.4000244140625, 0.104621006719321 +1212.300048828125, 0.06630908876576683 +1212.5999755859375, 0.06041494754214311 +1213.300048828125, 0.07072969468348461 +1214.4000244140625, 0.06041494754214311 +1215.0, 0.03241777672993045 +1215.699951171875, 0.0 +1216.4000244140625, 0.04567959448308381 +1217.5999755859375, 0.09725333018979135 +1219.0, 0.11198868324885064 +1221.699951171875, 0.02947070611811859 +1222.5, 0.03241777672993045 +1223.4000244140625, 0.011788282447247436 +1224.300048828125, 0.0854650477425439 +1225.699951171875, 0.12230343039019215 +1226.800048828125, 0.08251797713073206 +1227.300048828125, 0.03831191795355417 +1228.5999755859375, 0.0014735353059059295 +1229.800048828125, 0.050100200400801605 +1230.199951171875, 0.03831191795355417 +1230.9000244140625, 0.0397854532594601 +1232.0, 0.09872686549569727 +1232.9000244140625, 0.06041494754214311 +1233.699951171875, 0.002947070611811859 +1234.5999755859375, 0.02652363550630673 +1236.5, 0.09283272427207356 +1238.0, 0.04567959448308381 +1238.5999755859375, 0.09577979488388541 +1239.699951171875, 0.019155958976777084 +1240.0999755859375, 0.016208888364965226 +1240.800048828125, 0.035364847341742306 +1242.4000244140625, 0.06925615937757869 +1243.5999755859375, 0.06041494754214311 +1244.9000244140625, 0.02652363550630673 +1245.9000244140625, 0.02652363550630673 +1249.0, 0.15766827773193445 +1250.300048828125, 0.07515030060120241 +1251.4000244140625, 0.0397854532594601 +1252.0999755859375, 0.09135918896616763 +1253.300048828125, 0.033891312035836375 +1254.800048828125, 0.019155958976777084 +1256.0999755859375, 0.09577979488388541 +1257.300048828125, 0.09135918896616763 +1258.199951171875, 0.030944241424024518 +1258.9000244140625, 0.008841211835435576 +1260.699951171875, 0.019155958976777084 +1261.5999755859375, 0.05452080631851939 +1262.5, 0.08399151243663798 +1262.9000244140625, 0.0854650477425439 +1263.5999755859375, 0.036838382647648237 +1264.0999755859375, 0.07809737121301426 +1264.9000244140625, 0.07367676529529647 +1267.300048828125, 0.03241777672993045 +1268.800048828125, 0.11346221855475656 +1269.800048828125, 0.02947070611811859 +1271.0, 0.017682423670871153 +1271.5, 0.016208888364965226 +1273.199951171875, 0.02799717081221266 +1274.300048828125, 0.09577979488388541 +1274.800048828125, 0.09872686549569727 +1275.5999755859375, 0.07809737121301426 +1276.5, 0.10904161263703878 +1278.5999755859375, 0.0014735353059059295 +1279.0999755859375, 0.036838382647648237 +1280.5, 0.025050100200400802 +1281.5, 0.07662383590710833 +1282.199951171875, 0.06925615937757869 +1283.300048828125, 0.05746787693033125 +1284.300048828125, 0.03831191795355417 +1286.0999755859375, 0.04125898856536603 +1287.0, 0.05304727101261346 +1287.5999755859375, 0.0795709065189202 +1288.5, 0.08251797713073206 +1288.800048828125, 0.07809737121301426 +1290.0, 0.007367676529529648 +1292.800048828125, 0.04420605917717788 +1294.0, 0.12819757161381587 +1294.5, 0.0795709065189202 +1295.0999755859375, 0.047153129788989744 +1298.9000244140625, 0.02947070611811859 +1299.4000244140625, 0.061888482848049035 +1300.0999755859375, 0.005894141223623718 +1300.9000244140625, 0.0854650477425439 +1301.800048828125, 0.03831191795355417 +1303.800048828125, 0.019155958976777084 +1304.699951171875, 0.0397854532594601 +1305.5, 0.07367676529529647 +1306.4000244140625, 0.06630908876576683 +1308.199951171875, 0.12082989508428622 +1311.5, 0.07809737121301426 +1312.0999755859375, 0.07515030060120241 +1312.800048828125, 0.11346221855475656 +1313.5, 0.09430625957797949 +1314.4000244140625, 0.030944241424024518 +1315.0999755859375, 0.013261817753153365 +1317.0, 0.0648355534598609 +1317.5999755859375, 0.07809737121301426 +1318.199951171875, 0.10756807733113286 +1318.5999755859375, 0.10167393610750913 +1319.4000244140625, 0.08399151243663798 +1320.4000244140625, 0.051573735706707535 +1321.0999755859375, 0.02210302958858894 +1324.0, 0.09577979488388541 +1325.0, 0.07809737121301426 +1325.5999755859375, 0.11198868324885064 +1326.300048828125, 0.06630908876576683 +1327.0, 0.019155958976777084 +1327.199951171875, 0.020629494282683014 +1327.9000244140625, 0.02799717081221266 +1329.800048828125, 0.020629494282683014 +1330.300048828125, 0.051573735706707535 +1331.300048828125, 0.06041494754214311 +1332.0, 0.07662383590710833 +1332.800048828125, 0.016208888364965226 +1333.5999755859375, 0.02947070611811859 +1335.800048828125, 0.04567959448308381 +1336.4000244140625, 0.06925615937757869 +1336.9000244140625, 0.0648355534598609 +1338.0, 0.1444064599787811 +1339.4000244140625, 0.03241777672993045 +1340.699951171875, 0.02210302958858894 +1342.0999755859375, 0.047153129788989744 +1343.0, 0.0397854532594601 +1343.9000244140625, 0.07220322998939055 +1344.800048828125, 0.08693858304844984 +1345.5999755859375, 0.02652363550630673 +1346.300048828125, 0.016208888364965226 +1348.699951171875, 0.050100200400801605 +1349.0999755859375, 0.06630908876576683 +1349.699951171875, 0.08841211835435576 +1351.300048828125, 0.02652363550630673 +1351.699951171875, 0.02799717081221266 +1352.800048828125, 0.025050100200400802 +1355.4000244140625, 0.048626665094895674 +1356.0, 0.04567959448308381 +1356.800048828125, 0.036838382647648237 +1357.800048828125, 0.04420605917717788 +1358.5999755859375, 0.02799717081221266 +1359.4000244140625, 0.014735353059059295 +1360.300048828125, 0.0 +1361.300048828125, 0.09577979488388541 +1362.0, 0.06925615937757869 +1362.5, 0.051573735706707535 +1363.0, 0.07515030060120241 +1363.9000244140625, 0.05746787693033125 +1365.199951171875, 0.020629494282683014 +1368.0, 0.1444064599787811 +1369.0999755859375, 0.004420605917717788 +1370.4000244140625, 0.061888482848049035 +1371.199951171875, 0.03241777672993045 +1371.699951171875, 0.011788282447247436 +1373.300048828125, 0.036838382647648237 +1374.300048828125, 0.11640928916656842 +1375.0, 0.061888482848049035 +1375.4000244140625, 0.08693858304844984 +1376.5999755859375, 0.02947070611811859 +1378.5, 0.008841211835435576 +1379.9000244140625, 0.06925615937757869 +1380.5999755859375, 0.0854650477425439 +1381.4000244140625, 0.1444064599787811 +1382.699951171875, 0.06041494754214311 +1386.300048828125, 0.07072969468348461 +1387.300048828125, 0.06336201815395497 +1388.300048828125, 0.06925615937757869 +1389.4000244140625, 0.05304727101261346 +1390.699951171875, 0.0014735353059059295 +1392.0, 0.030944241424024518 +1392.800048828125, 0.06630908876576683 +1393.300048828125, 0.07220322998939055 +1394.0, 0.08251797713073206 +1394.800048828125, 0.09283272427207356 +1396.4000244140625, 0.033891312035836375 +1397.9000244140625, 0.014735353059059295 +1399.0, 0.06778262407167275 +1399.800048828125, 0.10314747141341507 +1400.4000244140625, 0.0397854532594601 +1401.0999755859375, 0.048626665094895674 +1405.300048828125, 0.10314747141341507 +1406.0, 0.07220322998939055 +1406.800048828125, 0.11346221855475656 +1407.5999755859375, 0.023576564894494872 +1409.0, 0.023576564894494872 +1410.800048828125, 0.06336201815395497 +1411.5, 0.10609454202522692 +1412.300048828125, 0.13261817753153365 +1414.199951171875, 0.06336201815395497 +1415.5, 0.008841211835435576 +1416.9000244140625, 0.023576564894494872 +1417.9000244140625, 0.0854650477425439 +1418.5999755859375, 0.019155958976777084 +1419.4000244140625, 0.04567959448308381 +1420.4000244140625, 0.017682423670871153 +1420.800048828125, 0.016208888364965226 +1421.699951171875, 0.030944241424024518 +1422.699951171875, 0.016208888364965226 +1424.5999755859375, 0.08104444182482612 +1424.9000244140625, 0.08104444182482612 +1425.5, 0.008841211835435576 +1426.5, 0.02652363550630673 +1427.0999755859375, 0.09872686549569727 +1429.4000244140625, 0.035364847341742306 +1430.4000244140625, 0.11051514794294472 +1431.300048828125, 0.051573735706707535 +1432.0, 0.05894141223623718 +1432.699951171875, 0.0014735353059059295 +1433.300048828125, 0.02947070611811859 +1433.9000244140625, 0.011788282447247436 +1435.300048828125, 0.0648355534598609 +1435.800048828125, 0.047153129788989744 +1436.5999755859375, 0.11935635977838029 +1437.4000244140625, 0.07220322998939055 +1438.199951171875, 0.07367676529529647 +1438.9000244140625, 0.016208888364965226 +1441.4000244140625, 0.025050100200400802 +1442.5, 0.06630908876576683 +1443.5, 0.05304727101261346 +1444.199951171875, 0.051573735706707535 +1444.699951171875, 0.017682423670871153 +1445.199951171875, 0.035364847341742306 +1445.800048828125, 0.04420605917717788 +1446.5, 0.02947070611811859 +1447.0, 0.033891312035836375 +1448.0, 0.02799717081221266 +1449.199951171875, 0.06041494754214311 +##PAGE=T= 0.021633333333333334 +##NPOINTS=1098 +##DATA TABLE=(XY..XY) +100.4000015258789, 22.445998923821968 +101.9000015258789, 51.54892766546237 +103.5999984741211, 47.57475593819663 +104.30000305175781, 34.99884695211008 +105.69999694824219, 50.849411945576136 +107.4000015258789, 15.158736259512644 +108.80000305175781, 23.968022138519487 +109.69999694824219, 20.101468214313165 +110.5, 26.335613805826736 +111.69999694824219, 7.81766469367361 +112.69999694824219, 18.225843646706124 +114.0999984741211, 22.492120839418863 +115.19999694824219, 6.6415558459528015 +117.30000305175781, 64.50918594818971 +118.30000305175781, 65.59305096471672 +119.19999694824219, 31.124606041970942 +120.30000305175781, 12.737335690675685 +121.19999694824219, 23.637481743408408 +122.69999694824219, 100.0 +123.9000015258789, 8.202013990314397 +124.5999984741211, 11.507417941425167 +125.5999984741211, 12.591282957952187 +127.5999984741211, 27.80382811899454 +128.39999389648438, 64.10946267968329 +129.3000030517578, 40.0876316396341 +130.0, 30.378968406487814 +131.5, 66.66922899531093 +132.10000610351562, 78.47643938811592 +133.6999969482422, 21.83104004919671 +134.10000610351562, 21.262203090168345 +136.39999389648438, 25.628411100007686 +137.60000610351562, 83.41148435698362 +138.10000610351562, 66.13113998001383 +139.3000030517578, 12.00707202705819 +140.5, 19.00991621185333 +142.10000610351562, 54.09332000922438 +143.3000030517578, 15.773695134137904 +144.10000610351562, 17.487892997155814 +145.5, 20.662618187408714 +146.39999389648438, 27.634714428472595 +149.6999969482422, 91.08309631793374 +150.3000030517578, 78.83004074102544 +151.5, 20.416634637558612 +152.1999969482422, 20.009224383119378 +152.6999969482422, 14.60527327234991 +153.39999389648438, 11.945576139595664 +154.3000030517578, 5.980475055730648 +155.0, 12.491352140825581 +155.6999969482422, 5.1733415327849945 +156.8000030517578, 10.684910446613882 +157.8000030517578, 23.85271734952725 +159.10000610351562, 20.570374356214927 +160.5, 9.139826274117917 +161.1999969482422, 16.058113613652086 +162.60000610351562, 7.40256745330156 +164.60000610351562, 11.79183642093935 +165.39999389648438, 12.868014451533552 +166.3000030517578, 8.494119455761396 +167.8000030517578, 6.195710661849488 +168.6999969482422, 8.693981090014605 +170.1999969482422, 7.410254439234376 +170.89999389648438, 9.754785148743178 +173.39999389648438, 6.8798524098700895 +174.39999389648438, 3.93573679760166 +175.0, 3.6282573602890307 +175.39999389648438, 3.9280498116688443 +176.39999389648438, 5.63456068875394 +177.5, 4.704435390883234 +178.5, 3.528326543162426 +179.0, 3.436082711968637 +180.5, 9.547236528557152 +181.0, 9.593358444154047 +182.60000610351562, 8.809285879006842 +183.1999969482422, 6.380198324237067 +184.8000030517578, 9.470366669228994 +186.39999389648438, 10.269813206241832 +187.3000030517578, 2.598201245291721 +188.1999969482422, 1.345222538242755 +189.1999969482422, 1.2991006226458606 +190.3000030517578, 2.029364286263356 +191.39999389648438, 2.0216773003305404 +193.39999389648438, 7.986778384195556 +194.0, 9.647167345683757 +195.8000030517578, 11.276808363440693 +196.5, 5.626873702821124 +197.0, 6.841417480206011 +198.60000610351562, 12.022445998923821 +200.3000030517578, 10.169882389115227 +201.60000610351562, 10.338996079637173 +202.10000610351562, 13.636713044815128 +204.39999389648438, 7.14889691751864 +205.8000030517578, 4.212468291183027 +207.39999389648438, 2.1292951033899605 +208.10000610351562, 4.143285417787685 +210.10000610351562, 11.146129602582826 +211.3000030517578, 11.222999461910984 +213.0, 7.379506495503112 +213.8000030517578, 4.427703897301868 +216.3000030517578, 11.64578368821585 +217.39999389648438, 4.158659389653317 +218.1999969482422, 3.351525866707664 +219.10000610351562, 5.211776462449073 +220.89999389648438, 3.6820662618187407 +222.39999389648438, 4.527634714428473 +224.0, 3.4745176416327155 +225.0, 6.2648935352448305 +226.1999969482422, 4.719809362748866 +227.1999969482422, 3.3592128526404794 +227.89999389648438, 2.336843723575986 +229.0, 8.217387962180029 +230.5, 3.436082711968637 +231.60000610351562, 5.104158659389653 +232.39999389648438, 9.94695979706357 +233.5, 5.327081251441309 +234.89999389648438, 2.113921131524329 +235.39999389648438, 2.060112229994619 +236.3000030517578, 4.158659389653317 +237.39999389648438, 6.149588746252594 +238.1999969482422, 5.949727111999385 +240.5, 5.496194941963256 +242.1999969482422, 3.6205703743562148 +242.6999969482422, 4.927357982934891 +243.5, 4.981166884464601 +246.1999969482422, 2.32915673764317 +247.0, 3.343838880774848 +248.60000610351562, 8.70166807594742 +249.8000030517578, 6.864478438004458 +252.1999969482422, 16.803751249135214 +253.60000610351562, 12.629717887616264 +254.3000030517578, 6.357137366438619 +255.39999389648438, 5.819048351141517 +256.1000061035156, 8.801598893074026 +257.1000061035156, 3.2054731339841647 +258.6000061035156, 3.8281189945422396 +260.70001220703125, 27.296487047428702 +262.20001220703125, 12.26074256284111 +263.1000061035156, 13.113998001383656 +264.5, 1.1146129602582826 +266.20001220703125, 8.801598893074026 +268.0, 4.389268967637789 +268.6000061035156, 4.735183334614497 +270.29998779296875, 1.9524944269351987 +271.29998779296875, 10.600353601352909 +272.20001220703125, 7.794603735875163 +273.0, 2.567453301560458 +273.8999938964844, 4.297025136444 +274.5, 2.398339611038512 +275.5, 2.121608117457145 +276.20001220703125, 4.642939503420709 +277.29998779296875, 13.836574679068336 +278.29998779296875, 14.420785609962333 +280.1000061035156, 9.593358444154047 +280.6000061035156, 8.939964639864709 +282.1000061035156, 26.251056960565762 +283.8999938964844, 22.94565300945499 +284.8999938964844, 12.32992543623645 +285.79998779296875, 18.302713506034284 +287.3999938964844, 2.413713582904143 +289.70001220703125, 5.357829195172573 +290.5, 5.227150434314705 +291.5, 7.29494965024214 +292.3999938964844, 5.134906603120916 +293.6000061035156, 5.834422323007148 +295.8999938964844, 5.857483280805596 +296.8999938964844, 8.586363286955184 +297.5, 6.710738719348143 +298.0, 4.235529248981474 +299.8999938964844, 15.012683526789145 +301.20001220703125, 4.55069567222692 +302.3999938964844, 15.842878007533246 +304.0, 19.655623030209853 +306.0, 9.278192020908602 +307.0, 5.311707279575678 +307.70001220703125, 11.39211315243293 +308.8999938964844, 10.431239910830962 +310.1000061035156, 7.863786609270504 +311.6000061035156, 17.633945729879315 +312.29998779296875, 34.93735106464755 +313.29998779296875, 16.350219079099084 +314.0, 8.148205088784687 +315.5, 6.372511338304251 +316.5, 4.5660696440925514 +317.1000061035156, 7.04127911445922 +318.20001220703125, 1.9140594972711198 +319.6000061035156, 7.594742101621954 +319.8999938964844, 7.633177031286032 +321.20001220703125, 4.281651164578369 +322.0, 7.879160581136136 +322.79998779296875, 20.40126066569298 +323.5, 28.787762318394957 +324.5, 3.15935121838727 +325.1000061035156, 3.8050580367437927 +326.1000061035156, 1.7065108770850947 +328.5, 34.62987162733492 +329.29998779296875, 4.512260742562841 +330.6000061035156, 4.3200860942424475 +331.70001220703125, 4.8120531939426545 +333.0, 4.773618264278576 +334.29998779296875, 8.840033822738103 +336.1000061035156, 5.680682604350833 +337.3999938964844, 8.79391190714121 +338.5, 7.825351679606426 +340.1000061035156, 5.027288800061496 +341.70001220703125, 1.3067876085786763 +343.1000061035156, 6.902913367668536 +345.0, 3.282342993312322 +346.6000061035156, 5.680682604350833 +349.1000061035156, 5.7959873933430694 +350.6000061035156, 3.2515950495810593 +352.0, 5.788300407410254 +353.79998779296875, 3.9511107694672916 +354.8999938964844, 7.640864017218848 +356.5, 3.228534091782612 +357.1000061035156, 5.1272196171881 +357.6000061035156, 5.5346298716273346 +358.8999938964844, 3.2669690214466907 +359.70001220703125, 0.7610116073487585 +361.1000061035156, 3.4745176416327155 +362.0, 3.4437696979014527 +363.1000061035156, 5.519255899761703 +364.5, 5.972788069797832 +365.0, 4.535321700361288 +365.79998779296875, 9.939272811130754 +366.3999938964844, 3.5360135290952415 +368.0, 2.1292951033899605 +369.6000061035156, 12.629717887616264 +370.3999938964844, 17.311092320701054 +372.8999938964844, 4.773618264278576 +374.1000061035156, 4.35083403797371 +377.3999938964844, 4.166346375586133 +378.5, 1.252978707048966 +379.6000061035156, 5.465446998231993 +380.20001220703125, 1.375970481974018 +380.8999938964844, 2.175417018986855 +381.6000061035156, 2.8441847951418247 +383.8999938964844, 4.727496348681681 +385.0, 5.511568913828888 +385.79998779296875, 1.96786839880083 +386.8999938964844, 5.334768237374125 +388.8999938964844, 9.001460527327234 +390.29998779296875, 7.9637174263971096 +391.1000061035156, 3.3899607963717426 +392.29998779296875, 8.478745483895764 +393.79998779296875, 9.439618725497732 +394.70001220703125, 0.5842109308939964 +395.5, 2.513644400030748 +396.3999938964844, 0.1998616342532093 +397.20001220703125, 0.4458451841033131 +399.29998779296875, 4.9350449688677065 +400.79998779296875, 59.15135675301714 +402.0, 93.57367976016603 +403.79998779296875, 60.05073410715658 +404.3999938964844, 63.702052425244055 +405.20001220703125, 11.169190560381274 +407.1000061035156, 1.7218848489507264 +409.6000061035156, 1.96786839880083 +411.0, 5.4193250826350985 +412.29998779296875, 2.1446690752555924 +412.8999938964844, 2.5290183718963792 +413.3999938964844, 2.398339611038512 +416.6000061035156, 5.84979629487278 +417.5, 2.713506034283957 +418.29998779296875, 3.52063955722961 +419.20001220703125, 0.5304020293642863 +420.70001220703125, 3.074794373126297 +421.20001220703125, 3.851179952340687 +422.79998779296875, 0.5304020293642863 +424.70001220703125, 4.24321623491429 +425.29998779296875, 2.7673149358136673 +427.1000061035156, 0.7072027058190483 +427.70001220703125, 0.476593127834576 +428.8999938964844, 2.9056806826043506 +429.70001220703125, 1.6527019755553847 +430.79998779296875, 2.6058882312245366 +431.8999938964844, 3.2439080636482434 +433.79998779296875, 1.1530478899223613 +436.0, 3.0056114997309553 +436.6000061035156, 4.212468291183027 +437.20001220703125, 2.32915673764317 +438.5, 2.359904681374433 +439.6000061035156, 2.9748635559996925 +440.79998779296875, 0.16911369052194633 +442.0, 7.471750326696902 +443.0, 2.359904681374433 +444.0, 0.2536705357829195 +444.6000061035156, 0.6380198324237066 +445.0, 0.4842801137673918 +446.29998779296875, 5.811361365208701 +447.0, 3.282342993312322 +447.70001220703125, 4.481512798831578 +448.3999938964844, 2.682758090552694 +449.5, 1.8909985394726727 +451.20001220703125, 0.08455684526097317 +453.0, 4.396955953570605 +454.20001220703125, 3.2515950495810593 +455.0, 0.16911369052194633 +456.3999938964844, 1.9524944269351987 +458.20001220703125, 0.983934199400415 +459.20001220703125, 0.5842109308939964 +460.0, 0.476593127834576 +460.70001220703125, 0.2921054654469982 +461.5, 0.4612191559689445 +463.70001220703125, 4.143285417787685 +464.79998779296875, 3.551387500960873 +465.79998779296875, 4.8120531939426545 +467.3999938964844, 2.990237527865324 +468.20001220703125, 0.5534629871627335 +469.8999938964844, 2.6135752171573525 +471.3999938964844, 6.218771619647936 +473.0, 1.1607348758551772 +475.79998779296875, 4.0817895303251595 +476.5, 2.444461526635406 +477.5, 1.8295026520101467 +478.1000061035156, 1.314474594511492 +479.3999938964844, 0.4842801137673918 +479.8999938964844, 0.31516642324544547 +480.70001220703125, 0.43815819817049734 +481.8999938964844, 2.6443231608886153 +483.3999938964844, 0.476593127834576 +484.8999938964844, 3.6205703743562148 +486.79998779296875, 3.8896148820047656 +487.8999938964844, 4.996540856330233 +489.70001220703125, 4.1970943193173955 +491.0, 1.3067876085786763 +492.5, 2.0677992159274345 +493.3999938964844, 0.3459143669767084 +496.0, 0.09224383119378891 +496.8999938964844, 0.299792451379814 +498.6000061035156, 6.203397647782304 +499.79998779296875, 1.2452917211161503 +500.70001220703125, 1.345222538242755 +501.3999938964844, 1.6527019755553847 +502.3999938964844, 3.0056114997309553 +503.0, 2.628949189022984 +503.6000061035156, 3.374586824506111 +504.29998779296875, 0.11530478899223613 +506.20001220703125, 8.317318779306634 +507.5, 4.81974017987547 +508.3999938964844, 0.35360135290952416 +510.1000061035156, 0.4150972403720501 +510.6000061035156, 0.35360135290952416 +511.8999938964844, 4.250903220847106 +512.7000122070312, 1.9832423706664615 +514.4000244140625, 0.16911369052194633 +515.4000244140625, 3.0132984856637712 +516.0, 1.3990314397724652 +516.9000244140625, 0.3612883388423399 +517.4000244140625, 0.36897532477515566 +518.0, 0.4150972403720501 +518.5999755859375, 0.015373971865631485 +519.7999877929688, 1.6603889614882004 +520.4000244140625, 0.24598354985010376 +521.0999755859375, 0.06918287339534168 +522.4000244140625, 5.749865477746176 +523.2000122070312, 2.0139903143977245 +524.2999877929688, 2.598201245291721 +525.4000244140625, 0.1998616342532093 +525.7999877929688, 0.08455684526097317 +527.2000122070312, 2.167730033054039 +528.2999877929688, 0.5227150434314705 +529.4000244140625, 1.5143362287647013 +530.0999755859375, 0.04612191559689446 +530.5, 0.24598354985010376 +531.2999877929688, 0.13836574679068336 +532.7000122070312, 0.3305403951110769 +533.5999755859375, 1.0377431009301252 +534.9000244140625, 1.8679375816742254 +535.5999755859375, 1.7372588208163577 +536.2000122070312, 1.998616342532093 +537.5, 0.20754862018602505 +539.4000244140625, 2.8903067107387193 +540.4000244140625, 0.299792451379814 +541.5999755859375, 0.23060957798447226 +543.0, 1.5066492428318856 +545.0999755859375, 2.213851948650934 +546.2999877929688, 7.333384579906219 +547.2000122070312, 0.6457068183565223 +549.0999755859375, 2.398339611038512 +550.0, 1.7218848489507264 +551.7000122070312, 0.8686294104081789 +553.2000122070312, 0.5534629871627335 +554.5, 2.5213313859635638 +555.4000244140625, 0.19217464832039358 +559.2999877929688, 1.7987547082788837 +560.0999755859375, 0.568836959028365 +561.0, 1.2606656929817819 +562.4000244140625, 2.359904681374433 +563.0, 1.5373971865631486 +563.9000244140625, 4.9196709970020756 +566.2000122070312, 3.551387500960873 +566.9000244140625, 0.40741025443923434 +567.9000244140625, 3.2977169651779534 +569.2000122070312, 0.33822738104389266 +573.4000244140625, 7.879160581136136 +574.5, 0.12299177492505188 +576.0999755859375, 2.813436851410562 +577.5999755859375, 3.336151894842032 +578.5999755859375, 0.8993773541394419 +579.5999755859375, 0.6380198324237066 +580.5, 0.2844184795141825 +584.2999877929688, 0.5534629871627335 +585.5, 1.6527019755553847 +586.7000122070312, 0.2921054654469982 +587.2000122070312, 0.45353217003612883 +590.5999755859375, 6.334076408640172 +592.7000122070312, 3.5052655853639787 +593.2999877929688, 2.4367745407025905 +594.2000122070312, 0.6764547620877853 +595.0999755859375, 0.299792451379814 +596.2000122070312, 0.507341071565839 +596.7999877929688, 0.3766623107079714 +597.4000244140625, 0.5150280574986548 +597.7000122070312, 0.4612191559689445 +598.7999877929688, 0.4304712122376816 +599.7000122070312, 1.7756937504804364 +600.5, 0.40741025443923434 +602.2999877929688, 0.5611499730955493 +604.5, 2.9133676685371666 +606.2000122070312, 1.9140594972711198 +608.0, 1.522023214697517 +608.7999877929688, 0.2767314935813667 +609.5, 0.40741025443923434 +610.5999755859375, 1.4451533553693596 +611.4000244140625, 0.4689061419017603 +613.0999755859375, 1.1222999461910985 +615.5999755859375, 1.468214313167807 +617.4000244140625, 4.089476516257975 +618.2000122070312, 0.40741025443923434 +621.5, 5.688369590283649 +624.4000244140625, 2.4982704281651165 +625.7000122070312, 0.18448766238757783 +626.2999877929688, 0.17680067645476208 +627.5999755859375, 0.17680067645476208 +628.5999755859375, 0.568836959028365 +631.2000122070312, 3.0671073871934813 +631.9000244140625, 0.17680067645476208 +633.0999755859375, 6.764547620877853 +634.9000244140625, 0.538089015297102 +635.5, 0.3459143669767084 +636.2999877929688, 0.5457760012299178 +637.0, 0.2152356061188408 +639.5999755859375, 0.31516642324544547 +640.0999755859375, 0.6149588746252594 +640.9000244140625, 0.6380198324237066 +641.5, 0.4304712122376816 +643.5999755859375, 2.6750711046198785 +645.7000122070312, 6.180336689983857 +647.2999877929688, 0.5611499730955493 +648.0999755859375, 1.729571834883542 +649.2000122070312, 2.7980628795449305 +650.2000122070312, 0.17680067645476208 +651.5, 1.0992389883926512 +652.7000122070312, 1.6603889614882004 +653.2999877929688, 1.0992389883926512 +654.5, 0.35360135290952416 +655.7000122070312, 2.69044507648551 +657.7999877929688, 2.659697132754247 +658.4000244140625, 1.460527327234991 +659.5999755859375, 3.9895456991313702 +660.2999877929688, 0.599584902759628 +661.5999755859375, 0.6303328464908909 +664.5999755859375, 0.11530478899223613 +665.5999755859375, 0.4689061419017603 +666.7000122070312, 1.729571834883542 +668.0999755859375, 0.299792451379814 +668.9000244140625, 0.7379506495503113 +671.0, 3.167038204320086 +672.7999877929688, 6.695364747482512 +673.9000244140625, 0.24598354985010376 +674.7000122070312, 0.922438311937889 +676.9000244140625, 0.2844184795141825 +677.4000244140625, 0.42278422630486584 +679.2000122070312, 3.0056114997309553 +681.0, 3.0132984856637712 +681.9000244140625, 0.7379506495503113 +682.9000244140625, 3.551387500960873 +684.2000122070312, 2.5290183718963792 +685.2000122070312, 1.3605965101083863 +686.0, 0.2767314935813667 +686.9000244140625, 0.12299177492505188 +687.9000244140625, 0.2152356061188408 +688.7999877929688, 0.49965408563302327 +689.0999755859375, 0.4689061419017603 +690.9000244140625, 1.698823891152279 +693.0999755859375, 0.31516642324544547 +694.2000122070312, 2.652010146821431 +695.2000122070312, 0.23060957798447226 +696.0, 0.299792451379814 +696.7999877929688, 0.6380198324237066 +698.0, 2.867245752940272 +699.7999877929688, 2.6673841186870626 +700.7999877929688, 0.8916903682066262 +701.7999877929688, 2.8288108232761933 +703.2000122070312, 2.183104004919671 +704.0, 0.42278422630486584 +704.7000122070312, 0.2921054654469982 +707.0, 0.19217464832039358 +708.7000122070312, 0.39203628257360285 +710.0, 3.6590053040202934 +711.9000244140625, 3.0056114997309553 +712.4000244140625, 3.282342993312322 +712.9000244140625, 3.0594204012606654 +713.7999877929688, 3.336151894842032 +715.0999755859375, 4.0817895303251595 +717.0, 2.1907909908524865 +718.7999877929688, 0.4689061419017603 +721.5, 1.6065800599584903 +722.4000244140625, 2.1446690752555924 +724.0999755859375, 0.16142670458913058 +724.5999755859375, 0.4458451841033131 +728.0, 0.5227150434314705 +728.2999877929688, 0.5534629871627335 +729.0999755859375, 0.42278422630486584 +730.0, 0.7610116073487585 +730.7000122070312, 0.07686985932815743 +733.2000122070312, 0.31516642324544547 +733.5999755859375, 0.42278422630486584 +734.5, 2.236912906449381 +735.2999877929688, 0.5304020293642863 +735.5999755859375, 0.5304020293642863 +736.2000122070312, 0.13067876085786762 +737.2999877929688, 0.2536705357829195 +739.4000244140625, 2.6443231608886153 +740.5, 5.834422323007148 +741.7000122070312, 2.5520793296948265 +742.2999877929688, 2.536705357829195 +743.4000244140625, 0.5457760012299178 +744.7999877929688, 0.2152356061188408 +745.5999755859375, 0.11530478899223613 +746.5999755859375, 0.3766623107079714 +747.0999755859375, 0.42278422630486584 +747.7000122070312, 0.26135752171573523 +748.7000122070312, 0.1460527327234991 +749.5999755859375, 0.06149588746252594 +752.0, 5.642247674686755 +753.0, 0.5304020293642863 +754.7999877929688, 2.229225920516565 +756.2999877929688, 0.17680067645476208 +757.5, 0.03074794373126297 +758.5, 0.5227150434314705 +759.2999877929688, 0.7225766776846798 +763.9000244140625, 0.1076178030594204 +764.7999877929688, 0.31516642324544547 +765.5, 0.299792451379814 +766.7999877929688, 3.351525866707664 +767.7000122070312, 0.1998616342532093 +768.9000244140625, 1.045430086862941 +769.7000122070312, 2.713506034283957 +771.4000244140625, 0.17680067645476208 +772.0999755859375, 0.3766623107079714 +774.2999877929688, 3.113229302790376 +775.5999755859375, 3.0594204012606654 +776.2999877929688, 1.1837958336536243 +777.0999755859375, 2.713506034283957 +778.0999755859375, 1.4220923975709123 +780.0, 1.9140594972711198 +782.0, 0.04612191559689446 +783.0999755859375, 0.23060957798447226 +784.7999877929688, 4.09716350219079 +785.5999755859375, 1.2145437773848873 +786.2000122070312, 0.19217464832039358 +787.5999755859375, 2.3060957798447226 +788.2999877929688, 2.7596279498808514 +789.2999877929688, 0.13836574679068336 +790.5, 0.4458451841033131 +791.5999755859375, 0.2767314935813667 +793.2000122070312, 0.40741025443923434 +794.5, 0.1460527327234991 +795.2999877929688, 0.7917595510800215 +796.4000244140625, 0.31516642324544547 +797.5, 0.5534629871627335 +798.5, 2.6366361749558 +800.2999877929688, 2.359904681374433 +801.2999877929688, 1.0069951571988622 +803.4000244140625, 3.528326543162426 +805.4000244140625, 0.8916903682066262 +805.9000244140625, 0.6380198324237066 +807.2000122070312, 1.875624567607041 +809.9000244140625, 2.0139903143977245 +810.2000122070312, 2.0139903143977245 +812.2000122070312, 2.982550541932508 +814.2999877929688, 0.3305403951110769 +815.2999877929688, 3.1747251902529015 +816.5, 1.4144054116380966 +818.2000122070312, 2.0754862018602505 +819.0999755859375, 4.9350449688677065 +820.7000122070312, 1.844876623875778 +822.5, 3.5590744868936888 +823.9000244140625, 0.7225766776846798 +825.4000244140625, 0.13836574679068336 +826.0, 0.17680067645476208 +827.0, 0.16142670458913058 +827.7999877929688, 0.22292259205165654 +830.0, 4.058728572526712 +831.2000122070312, 1.55277115842878 +833.7000122070312, 0.5304020293642863 +834.7999877929688, 4.043354600661081 +835.7999877929688, 0.4150972403720501 +837.2999877929688, 3.551387500960873 +838.7999877929688, 1.875624567607041 +839.5999755859375, 0.4458451841033131 +840.4000244140625, 0.4150972403720501 +841.0999755859375, 0.45353217003612883 +842.0999755859375, 0.568836959028365 +843.5, 2.7596279498808514 +846.5, 2.8518717810746406 +847.2000122070312, 0.36897532477515566 +848.2999877929688, 2.1292951033899605 +850.2000122070312, 3.10554231685756 +851.0, 2.413713582904143 +852.0, 0.13067876085786762 +853.5, 1.8986855254054884 +854.5, 0.49965408563302327 +856.7999877929688, 5.081097701591206 +857.9000244140625, 0.12299177492505188 +859.9000244140625, 2.69044507648551 +860.7000122070312, 0.2767314935813667 +861.0, 0.2921054654469982 +862.9000244140625, 1.8295026520101467 +865.0, 1.3990314397724652 +866.7000122070312, 0.40741025443923434 +869.2000122070312, 0.299792451379814 +871.7000122070312, 0.31516642324544547 +872.5999755859375, 0.6533938042893381 +873.2999877929688, 0.7994465370128372 +874.0999755859375, 0.5150280574986548 +875.0999755859375, 1.1299869321239142 +877.4000244140625, 0.9993081712660465 +878.0999755859375, 0.4458451841033131 +878.7000122070312, 0.5611499730955493 +879.4000244140625, 0.3074794373126297 +880.0999755859375, 0.07686985932815743 +881.2999877929688, 0.0076869859328157425 +883.0999755859375, 2.3675916673072486 +883.7999877929688, 0.3459143669767084 +884.5, 0.35360135290952416 +885.0, 0.3459143669767084 +886.0, 0.6226458605580751 +887.0, 0.2844184795141825 +889.0999755859375, 0.0076869859328157425 +890.0, 0.19217464832039358 +891.7000122070312, 3.57444845875932 +892.4000244140625, 0.17680067645476208 +893.5, 0.3074794373126297 +894.5999755859375, 5.134906603120916 +896.2999877929688, 4.227842263048658 +897.2000122070312, 3.4898916134983473 +899.0999755859375, 2.1292951033899605 +900.0999755859375, 0.3305403951110769 +901.7000122070312, 0.3305403951110769 +903.2999877929688, 1.8909985394726727 +906.7000122070312, 2.1446690752555924 +907.7000122070312, 2.1292951033899605 +909.5999755859375, 1.6527019755553847 +910.4000244140625, 1.4451533553693596 +911.5, 3.6666922899531094 +913.2000122070312, 0.0538089015297102 +914.4000244140625, 0.9454992697363364 +915.5, 3.097855330924744 +916.5, 0.9301252978707049 +917.4000244140625, 0.7302636636174955 +918.4000244140625, 0.0538089015297102 +922.0, 7.425628411100007 +923.7000122070312, 5.980475055730648 +924.9000244140625, 3.405334768237374 +927.5, 0.07686985932815743 +928.0999755859375, 0.476593127834576 +929.0, 0.6841417480206011 +930.7000122070312, 1.883311553539857 +931.9000244140625, 1.4451533553693596 +932.7000122070312, 1.55277115842878 +933.4000244140625, 0.3305403951110769 +934.0, 0.5534629871627335 +935.7000122070312, 1.998616342532093 +936.4000244140625, 0.1998616342532093 +938.0, 0.015373971865631485 +940.2999877929688, 1.2991006226458606 +941.5, 0.568836959028365 +942.5999755859375, 0.5150280574986548 +943.5, 0.07686985932815743 +944.2000122070312, 0.0076869859328157425 +946.0999755859375, 1.2452917211161503 +947.5, 0.507341071565839 +948.2000122070312, 0.1998616342532093 +949.2000122070312, 0.23060957798447226 +950.4000244140625, 2.536705357829195 +951.7000122070312, 4.258590206779921 +952.7000122070312, 2.867245752940272 +953.4000244140625, 1.345222538242755 +954.2999877929688, 0.4842801137673918 +955.5, 4.035667614728265 +956.2999877929688, 0.06918287339534168 +958.5, 0.6226458605580751 +960.2000122070312, 1.6065800599584903 +962.0, 3.5590744868936888 +963.5, 0.1076178030594204 +964.5, 1.9140594972711198 +966.0999755859375, 0.5918979168268121 +967.5, 1.0223691290644938 +969.0999755859375, 1.5297102006303327 +971.0999755859375, 3.966484741332923 +971.5999755859375, 2.867245752940272 +972.9000244140625, 0.6380198324237066 +973.7999877929688, 0.269044507648551 +974.2999877929688, 0.09224383119378891 +976.7999877929688, 0.6457068183565223 +977.5, 0.1076178030594204 +978.2999877929688, 0.49965408563302327 +980.0, 1.2299177492505189 +983.0, 0.20754862018602505 +983.4000244140625, 0.20754862018602505 +983.7999877929688, 0.1998616342532093 +984.4000244140625, 0.299792451379814 +984.7999877929688, 0.45353217003612883 +985.5, 0.3305403951110769 +986.2999877929688, 0.8455684526097317 +987.5, 0.04612191559689446 +988.4000244140625, 0.22292259205165654 +990.9000244140625, 3.4283957260358213 +991.7999877929688, 0.6072718886924436 +992.5999755859375, 0.6610807902221538 +993.9000244140625, 0.7302636636174955 +994.7000122070312, 0.02306095779844723 +995.5999755859375, 0.3074794373126297 +997.0, 3.4822046275655314 +998.0999755859375, 0.5304020293642863 +999.5, 2.3137827657775385 +1000.0, 1.998616342532093 +1001.2000122070312, 1.583519102160043 +1003.0999755859375, 3.343838880774848 +1003.9000244140625, 0.3612883388423399 +1004.7000122070312, 0.2536705357829195 +1006.0, 1.583519102160043 +1007.5, 3.635944346221846 +1008.0, 3.5975094165577675 +1008.7999877929688, 2.090860173725882 +1009.7999877929688, 0.43815819817049734 +1011.2000122070312, 3.097855330924744 +1014.2999877929688, 0.3305403951110769 +1015.0, 0.3997232685064186 +1016.0, 0.9454992697363364 +1017.0, 0.3997232685064186 +1017.7999877929688, 0.507341071565839 +1020.2000122070312, 3.789684064878161 +1021.0999755859375, 0.49965408563302327 +1021.9000244140625, 0.35360135290952416 +1022.5, 0.24598354985010376 +1023.0, 0.1998616342532093 +1024.300048828125, 0.2767314935813667 +1025.5, 2.874932738873088 +1026.5, 5.949727111999385 +1027.9000244140625, 0.40741025443923434 +1029.0, 0.538089015297102 +1030.699951171875, 2.4675224844338532 +1032.699951171875, 1.491275270966254 +1033.4000244140625, 0.20754862018602505 +1034.9000244140625, 1.7141978630179107 +1035.9000244140625, 3.097855330924744 +1037.699951171875, 2.113921131524329 +1039.199951171875, 0.0538089015297102 +1040.5999755859375, 1.55277115842878 +1041.9000244140625, 3.966484741332923 +1043.0, 0.23060957798447226 +1046.300048828125, 1.4220923975709123 +1047.0999755859375, 3.3207779229764007 +1047.699951171875, 0.4689061419017603 +1048.800048828125, 0.18448766238757783 +1051.0, 0.08455684526097317 +1051.9000244140625, 0.20754862018602505 +1053.0, 0.6149588746252594 +1053.800048828125, 0.43815819817049734 +1054.699951171875, 0.538089015297102 +1056.9000244140625, 4.735183334614497 +1057.699951171875, 0.038434929664078715 +1058.5, 0.12299177492505188 +1059.0999755859375, 0.2152356061188408 +1060.0999755859375, 4.6967484049504185 +1060.800048828125, 1.5912060880928587 +1062.199951171875, 0.38434929664078715 +1063.5, 3.5437005150280574 +1065.199951171875, 3.4283957260358213 +1066.0, 0.6610807902221538 +1066.699951171875, 0.2921054654469982 +1067.699951171875, 1.0915520024598355 +1069.9000244140625, 0.1076178030594204 +1071.300048828125, 1.760319778614805 +1072.4000244140625, 0.43815819817049734 +1073.5999755859375, 1.4989622568990697 +1074.300048828125, 0.09993081712660465 +1075.300048828125, 0.3997232685064186 +1075.800048828125, 0.2536705357829195 +1077.800048828125, 1.4835882850334383 +1079.5, 1.8602505957414097 +1080.9000244140625, 4.873549081405181 +1083.300048828125, 3.044046429395034 +1084.5999755859375, 4.5737566300253665 +1085.9000244140625, 2.2599738642478284 +1088.0, 0.1460527327234991 +1088.699951171875, 0.6303328464908909 +1089.5, 1.468214313167807 +1090.199951171875, 0.7994465370128372 +1091.4000244140625, 0.3766623107079714 +1092.4000244140625, 0.13836574679068336 +1093.0, 0.11530478899223613 +1093.5999755859375, 0.1998616342532093 +1094.699951171875, 1.0838650165270196 +1095.9000244140625, 0.39203628257360285 +1097.0, 0.599584902759628 +1097.800048828125, 0.953186255669152 +1098.5999755859375, 0.9685602275347835 +1101.199951171875, 2.4982704281651165 +1102.9000244140625, 4.112537474056422 +1103.5999755859375, 3.405334768237374 +1105.199951171875, 3.920362825736029 +1106.5, 1.5066492428318856 +1107.0999755859375, 0.42278422630486584 +1108.4000244140625, 0.299792451379814 +1109.9000244140625, 3.313090937043585 +1111.5, 3.0056114997309553 +1114.699951171875, 0.476593127834576 +1115.199951171875, 0.6303328464908909 +1116.800048828125, 3.5975094165577675 +1117.5999755859375, 3.228534091782612 +1118.699951171875, 2.0216773003305404 +1119.800048828125, 3.4822046275655314 +1121.5999755859375, 2.936428626335614 +1122.699951171875, 0.6610807902221538 +1123.699951171875, 2.4675224844338532 +1126.5, 3.0132984856637712 +1127.4000244140625, 1.468214313167807 +1129.0999755859375, 4.0817895303251595 +1129.699951171875, 4.481512798831578 +1131.0, 0.7917595510800215 +1132.5999755859375, 0.1460527327234991 +1133.199951171875, 0.38434929664078715 +1133.699951171875, 0.5150280574986548 +1135.5, 1.199169805519256 +1136.300048828125, 0.4689061419017603 +1139.0999755859375, 6.111153816588516 +1140.0999755859375, 2.6366361749558 +1140.9000244140625, 3.2669690214466907 +1141.5999755859375, 0.08455684526097317 +1142.199951171875, 0.19217464832039358 +1142.800048828125, 0.33822738104389266 +1145.699951171875, 1.883311553539857 +1146.4000244140625, 0.19217464832039358 +1146.800048828125, 0.16142670458913058 +1147.5999755859375, 0.49965408563302327 +1148.9000244140625, 6.595433930355907 +1149.9000244140625, 0.0076869859328157425 +1152.5999755859375, 2.7826889076792987 +1153.5999755859375, 0.32285340917826116 +1155.0, 1.4835882850334383 +1158.0, 0.38434929664078715 +1159.5999755859375, 4.373894995772157 +1160.4000244140625, 3.851179952340687 +1161.5, 0.2767314935813667 +1162.300048828125, 0.08455684526097317 +1163.5999755859375, 3.920362825736029 +1164.699951171875, 1.7449458067491737 +1165.9000244140625, 0.3074794373126297 +1166.5, 0.7225766776846798 +1167.699951171875, 0.2921054654469982 +1169.0, 0.13836574679068336 +1169.9000244140625, 3.0056114997309553 +1170.5999755859375, 0.3612883388423399 +1171.699951171875, 0.476593127834576 +1172.0, 0.4689061419017603 +1172.699951171875, 0.43815819817049734 +1173.699951171875, 1.875624567607041 +1174.4000244140625, 0.2921054654469982 +1175.5999755859375, 2.775001921746483 +1178.0999755859375, 1.8064416942116994 +1178.9000244140625, 0.5918979168268121 +1180.800048828125, 0.18448766238757783 +1183.4000244140625, 0.5227150434314705 +1184.5999755859375, 6.726112691213775 +1186.199951171875, 0.26135752171573523 +1189.699951171875, 0.33822738104389266 +1190.699951171875, 1.5450841724959643 +1191.300048828125, 1.7680067645476207 +1192.0999755859375, 0.31516642324544547 +1192.9000244140625, 0.16911369052194633 +1193.5, 0.38434929664078715 +1196.199951171875, 0.7302636636174955 +1197.300048828125, 0.40741025443923434 +1197.9000244140625, 0.23060957798447226 +1199.699951171875, 0.1076178030594204 +1200.9000244140625, 0.7302636636174955 +1201.9000244140625, 0.3074794373126297 +1203.5, 2.336843723575986 +1204.4000244140625, 0.476593127834576 +1205.300048828125, 0.13067876085786762 +1205.5999755859375, 0.13067876085786762 +1207.199951171875, 0.03074794373126297 +1207.9000244140625, 0.07686985932815743 +1208.4000244140625, 0.1460527327234991 +1209.4000244140625, 0.43815819817049734 +1209.9000244140625, 0.24598354985010376 +1210.300048828125, 0.32285340917826116 +1211.0, 0.7225766776846798 +1211.9000244140625, 2.1062341455915137 +1213.800048828125, 0.2767314935813667 +1215.5999755859375, 2.628949189022984 +1217.0999755859375, 0.4458451841033131 +1218.0999755859375, 0.4842801137673918 +1219.699951171875, 3.113229302790376 +1222.0, 21.14689830117611 +1223.5, 0.13067876085786762 +1225.199951171875, 0.15373971865631486 +1226.0999755859375, 0.11530478899223613 +1227.0, 0.23060957798447226 +1227.9000244140625, 1.1761088477208086 +1229.0999755859375, 0.6380198324237066 +1229.800048828125, 0.24598354985010376 +1232.699951171875, 0.42278422630486584 +1233.300048828125, 0.33822738104389266 +1234.199951171875, 0.5457760012299178 +1235.199951171875, 0.4919670997002075 +1235.9000244140625, 0.5918979168268121 +1237.199951171875, 0.807133522945653 +1239.4000244140625, 0.22292259205165654 +1240.0, 0.4689061419017603 +1241.0, 0.36897532477515566 +1242.300048828125, 2.4367745407025905 +1243.199951171875, 1.6296410177569374 +1244.0999755859375, 2.7826889076792987 +1244.800048828125, 3.57444845875932 +1245.800048828125, 0.7917595510800215 +1246.800048828125, 0.6380198324237066 +1247.5, 0.4612191559689445 +1248.699951171875, 0.1076178030594204 +1250.0999755859375, 4.758244292412945 +1250.800048828125, 0.0 +1251.5999755859375, 0.06918287339534168 +1252.5, 0.45353217003612883 +1253.199951171875, 0.6533938042893381 +1254.0999755859375, 0.3459143669767084 +1254.699951171875, 0.22292259205165654 +1255.4000244140625, 0.538089015297102 +1258.300048828125, 0.5611499730955493 +1259.5999755859375, 2.7211930202167727 +1260.4000244140625, 3.228534091782612 +1261.0, 4.18940733338458 +1262.699951171875, 1.7680067645476207 +1264.300048828125, 4.481512798831578 +1265.4000244140625, 0.5150280574986548 +1266.4000244140625, 0.4689061419017603 +1267.699951171875, 1.2760396648474133 +1268.4000244140625, 0.06149588746252594 +1269.800048828125, 0.8301944807441002 +1271.0, 0.42278422630486584 +1271.5, 0.33822738104389266 +1272.699951171875, 3.6282573602890307 +1277.0, 0.4612191559689445 +1277.699951171875, 0.5227150434314705 +1279.0999755859375, 1.1299869321239142 +1279.699951171875, 0.5534629871627335 +1280.300048828125, 0.1076178030594204 +1283.0, 1.883311553539857 +1284.0, 2.0985471596586978 +1284.5999755859375, 0.8916903682066262 +1285.300048828125, 0.4458451841033131 +1288.800048828125, 0.4689061419017603 +1290.800048828125, 2.4675224844338532 +1291.9000244140625, 0.31516642324544547 +1292.5, 0.3766623107079714 +1294.199951171875, 0.04612191559689446 +1295.699951171875, 0.33822738104389266 +1296.5999755859375, 2.1369820893227764 +1297.5999755859375, 2.175417018986855 +1300.199951171875, 2.4905834422323005 +1302.4000244140625, 2.4290875547697746 +1303.300048828125, 0.4458451841033131 +1304.300048828125, 0.11530478899223613 +1305.800048828125, 2.421400568836959 +1307.199951171875, 0.06918287339534168 +1307.9000244140625, 0.20754862018602505 +1308.699951171875, 0.6457068183565223 +1310.199951171875, 4.258590206779921 +1311.0, 0.19217464832039358 +1312.699951171875, 1.3375355523099393 +1313.4000244140625, 0.038434929664078715 +1314.699951171875, 0.922438311937889 +1315.9000244140625, 0.31516642324544547 +1316.4000244140625, 0.03074794373126297 +1317.300048828125, 0.5918979168268121 +1318.699951171875, 3.036359443462218 +1319.800048828125, 0.1076178030594204 +1321.4000244140625, 6.610807902221539 +1321.9000244140625, 1.7449458067491737 +1322.699951171875, 0.43815819817049734 +1323.4000244140625, 0.745637635483127 +1324.4000244140625, 0.22292259205165654 +1326.0999755859375, 0.015373971865631485 +1327.300048828125, 0.40741025443923434 +1328.300048828125, 0.38434929664078715 +1329.0, 0.23060957798447226 +1330.5999755859375, 0.7610116073487585 +1331.699951171875, 0.16911369052194633 +1332.9000244140625, 2.7365669920824045 +1333.800048828125, 1.522023214697517 +1334.4000244140625, 0.35360135290952416 +1337.0, 2.7673149358136673 +1338.199951171875, 0.3074794373126297 +1339.300048828125, 0.22292259205165654 +1340.0, 0.38434929664078715 +1340.5, 0.4689061419017603 +1341.199951171875, 0.31516642324544547 +1343.0999755859375, 4.435390883234684 +1344.5, 0.33822738104389266 +1345.5999755859375, 0.24598354985010376 +1346.4000244140625, 0.5304020293642863 +1347.199951171875, 1.4220923975709123 +1348.300048828125, 0.5918979168268121 +1351.5999755859375, 1.6911369052194634 +1352.199951171875, 0.4919670997002075 +1352.5999755859375, 0.3766623107079714 +1354.9000244140625, 4.466138826965946 +1355.5, 2.3214697517103544 +1357.0999755859375, 0.19217464832039358 +1357.800048828125, 0.5534629871627335 +1358.9000244140625, 0.6303328464908909 +1359.699951171875, 0.22292259205165654 +1360.199951171875, 0.015373971865631485 +1360.800048828125, 0.13836574679068336 +1362.300048828125, 6.556999000691828 +1363.199951171875, 0.08455684526097317 +1363.9000244140625, 0.2767314935813667 +1365.5999755859375, 5.250211392113152 +1366.5, 0.1998616342532093 +1367.300048828125, 0.20754862018602505 +1369.0999755859375, 1.998616342532093 +1369.9000244140625, 0.36897532477515566 +1371.4000244140625, 2.659697132754247 +1372.5, 0.299792451379814 +1373.0999755859375, 0.1076178030594204 +1373.9000244140625, 0.5611499730955493 +1376.199951171875, 3.4822046275655314 +1377.4000244140625, 2.8441847951418247 +1379.0, 0.49965408563302327 +1379.699951171875, 0.6610807902221538 +1381.4000244140625, 3.4822046275655314 +1383.699951171875, 9.332000922438311 +1384.5999755859375, 2.9748635559996925 +1385.199951171875, 0.3305403951110769 +1387.0999755859375, 2.4675224844338532 +1388.699951171875, 0.04612191559689446 +1389.4000244140625, 0.07686985932815743 +1390.300048828125, 0.3997232685064186 +1391.800048828125, 0.16911369052194633 +1392.5, 0.12299177492505188 +1394.5999755859375, 2.1907909908524865 +1396.199951171875, 2.359904681374433 +1397.800048828125, 0.16142670458913058 +1399.300048828125, 2.167730033054039 +1399.9000244140625, 1.6296410177569374 +1402.5, 1.5066492428318856 +1403.199951171875, 0.13836574679068336 +1404.0, 0.7994465370128372 +1405.0999755859375, 0.238296563917288 +1405.5, 0.13836574679068336 +1407.4000244140625, 2.9441156122684293 +1408.4000244140625, 0.1998616342532093 +1409.5, 1.729571834883542 +1410.199951171875, 0.5457760012299178 +1411.0999755859375, 5.350142209239757 +1414.300048828125, 2.982550541932508 +1415.4000244140625, 1.6603889614882004 +1416.0999755859375, 2.0985471596586978 +1416.5999755859375, 2.513644400030748 +1417.5999755859375, 0.4919670997002075 +1418.5999755859375, 1.0069951571988622 +1420.4000244140625, 3.0132984856637712 +1421.0999755859375, 0.1460527327234991 +1421.5, 0.13836574679068336 +1422.5999755859375, 0.4458451841033131 +1423.0999755859375, 0.2921054654469982 +1424.699951171875, 0.983934199400415 +1426.300048828125, 2.9056806826043506 +1427.4000244140625, 5.319394265508494 +1429.0, 2.0216773003305404 +1429.9000244140625, 0.2767314935813667 +1430.4000244140625, 0.09993081712660465 +1432.800048828125, 0.22292259205165654 +1434.0999755859375, 1.3605965101083863 +1435.300048828125, 2.3675916673072486 +1436.9000244140625, 4.012606656929818 +1438.5, 2.9518025982012452 +1439.199951171875, 0.24598354985010376 +1440.0, 0.22292259205165654 +1440.9000244140625, 0.35360135290952416 +1441.800048828125, 0.1460527327234991 +1442.5999755859375, 0.0538089015297102 +1444.5, 0.3766623107079714 +1446.0999755859375, 1.1453609039895456 +1447.0, 0.3997232685064186 +1447.5999755859375, 0.18448766238757783 +##END NTUPLES + +`; + +export default lcmsJcamp2; diff --git a/src/__tests__/fixtures/lc_ms_jcamp_mz_chemstation.js b/src/__tests__/fixtures/lc_ms_jcamp_mz_chemstation.js new file mode 100644 index 00000000..a07caa53 --- /dev/null +++ b/src/__tests__/fixtures/lc_ms_jcamp_mz_chemstation.js @@ -0,0 +1,3237 @@ +const lcMsMzChemstationJcamp = ` +##TITLE=Spectrum +##JCAMP-DX=5.00 $$ chemotion-converter-app (1.8.0) +##DATA TYPE=MASS SPECTRUM +##DATA CLASS=NTUPLES +##ORIGIN= +##OWNER= +##XUNITS=m/z +##YUNITS=Intensity +##NTUPLES=MULTIDIMENSIONAL +##VAR_NAME=T, m/z, Intensity +##SYMBOL=T, X, Y +##VAR_TYPE=PAGE, X, Y +##VAR_DIM=824, 369, 369 +##UNITS=, m/z, Intensity +##PAGE=T= 1.1228166666666666 +##XYDATA=(XY..XY) +943.7, 176.0 +871.0, 362.0 +849.9, 365.0 +822.0, 366.0 +786.6, 259.0 +717.8, 268.0 +695.0, 451.0 +671.9, 682.0 +656.7, 218.0 +656.5, 566.0 +643.2, 243.0 +638.3, 740.0 +636.7, 973.0 +634.7, 311.0 +630.8, 164.0 +628.8, 284.0 +620.8, 359.0 +598.8, 207.0 +582.4, 415.0 +576.6, 410.0 +562.9, 393.0 +557.0, 288.0 +554.8, 528.0 +528.1, 326.0 +524.8, 1419.0 +486.7, 351.0 +484.1, 302.0 +455.1, 163.0 +440.1, 871.0 +439.1, 524.0 +436.2, 213.0 +434.3, 241.0 +431.2, 2071.0 +430.7, 249.0 +427.8, 172.0 +415.8, 649.0 +415.1, 789.0 +410.2, 273.0 +409.7, 1192.0 +406.6, 423.0 +404.8, 957.0 +402.8, 566.0 +390.4, 154.0 +388.8, 1174.0 +383.0, 485.0 +381.1, 401.0 +378.1, 213.0 +373.4, 466.0 +370.2, 487.0 +369.9, 430.0 +369.0, 710.0 +367.3, 495.0 +366.9, 1395.0 +365.0, 176.0 +363.4, 176.0 +360.4, 788.0 +358.9, 504.0 +356.8, 684.0 +355.3, 156.0 +354.0, 561.0 +353.0, 731.0 +348.4, 325.0 +342.1, 236.0 +336.1, 277.0 +335.3, 170.0 +332.6, 259.0 +331.0, 261.0 +326.1, 671.0 +324.7, 321.0 +323.0, 649.0 +317.5, 178.0 +317.0, 706.0 +315.4, 1425.0 +314.4, 484.0 +313.5, 395.0 +312.5, 237.0 +312.0, 274.0 +309.3, 474.0 +307.1, 908.0 +306.1, 162.0 +304.2, 1206.0 +301.1, 323.0 +300.2, 830.0 +299.0, 197.0 +297.4, 640.0 +296.9, 444.0 +295.3, 774.0 +294.8, 1440.0 +294.1, 500.0 +290.9, 295.0 +290.6, 492.0 +287.3, 291.0 +283.7, 2229.0 +282.0, 250.0 +281.2, 1482.0 +280.2, 292.0 +279.2, 154.0 +278.9, 359.0 +278.6, 515.0 +277.2, 954.0 +276.2, 698.0 +275.4, 1055.0 +275.2, 694.0 +274.9, 315.0 +274.7, 265.0 +274.3, 534.0 +274.1, 343.0 +273.4, 575.0 +273.2, 409.0 +272.1, 326.0 +269.2, 1041.0 +268.1, 181.0 +267.2, 213.0 +262.3, 683.0 +256.9, 234.0 +255.1, 208.0 +254.0, 483.0 +251.8, 400.0 +251.1, 1342.0 +250.2, 596.0 +249.0, 1099.0 +246.9, 338.0 +246.2, 821.0 +245.7, 503.0 +245.3, 767.0 +244.0, 509.0 +243.7, 413.0 +243.5, 443.0 +237.2, 223.0 +236.4, 237.0 +236.2, 467.0 +235.3, 153.0 +232.2, 933.0 +228.1, 672.0 +227.1, 1310.0 +223.0, 346.0 +222.2, 564.0 +221.7, 659.0 +219.0, 179.0 +218.0, 848.0 +216.3, 671.0 +214.1, 1910.0 +212.1, 1898.0 +207.1, 454.0 +205.3, 719.0 +205.1, 1184.0 +204.8, 815.0 +203.1, 1341.0 +201.0, 873.0 +199.9, 1837.0 +198.1, 1070.0 +197.7, 198.0 +197.4, 782.0 +196.6, 1089.0 +195.9, 495.0 +195.6, 654.0 +195.3, 2179.0 +194.8, 519.0 +194.6, 924.0 +193.9, 950.0 +192.3, 1375.0 +191.3, 1278.0 +188.8, 267.0 +188.3, 688.0 +188.1, 790.0 +187.3, 3030.0 +186.4, 10914.0 +186.2, 10409.0 +185.9, 7283.0 +185.2, 1396.0 +184.8, 1225.0 +184.1, 209.0 +183.0, 1287.0 +182.2, 1471.0 +182.0, 1386.0 +180.3, 624.0 +179.4, 549.0 +179.1, 614.0 +178.4, 8340.0 +178.2, 8688.0 +178.0, 8896.0 +177.2, 99344.0 +176.0, 1209.0 +175.1, 1221.0 +173.6, 304.0 +172.2, 4769.0 +171.9, 1568.0 +171.2, 476.0 +170.0, 630.0 +168.8, 216.0 +167.2, 210.0 +166.7, 293.0 +166.4, 1399.0 +166.0, 1617.0 +164.7, 429.0 +164.3, 2427.0 +164.0, 1799.0 +163.2, 295.0 +163.0, 817.0 +162.7, 253.0 +162.3, 2094.0 +161.9, 293.0 +161.1, 659.0 +160.9, 892.0 +158.8, 811.0 +158.2, 860.0 +158.0, 1511.0 +157.6, 1142.0 +157.2, 1179.0 +157.0, 1093.0 +156.3, 2375.0 +155.9, 772.0 +155.1, 1544.0 +154.9, 1692.0 +154.7, 1331.0 +154.2, 22184.0 +153.9, 15580.0 +153.6, 4012.0 +153.1, 1230.0 +152.8, 578.0 +152.1, 996.0 +151.5, 2841.0 +151.3, 3728.0 +151.0, 5287.0 +150.0, 50632.0 +148.9, 308.0 +148.4, 803.0 +147.8, 271.0 +146.4, 739.0 +145.1, 189.0 +144.2, 221.0 +143.3, 180.0 +142.7, 1137.0 +142.4, 558.0 +142.1, 1718.0 +139.1, 737.0 +138.9, 888.0 +138.3, 1405.0 +138.1, 1484.0 +137.7, 1437.0 +137.4, 267.0 +135.4, 1194.0 +134.4, 929.0 +134.2, 882.0 +133.3, 3915.0 +132.8, 1757.0 +132.5, 581.0 +132.3, 274.0 +131.8, 209.0 +130.5, 450.0 +130.2, 758.0 +130.0, 787.0 +129.7, 1404.0 +129.4, 1158.0 +129.1, 4326.0 +128.7, 557.0 +128.1, 247.0 +126.9, 480.0 +125.3, 699.0 +125.0, 454.0 +124.7, 458.0 +124.5, 650.0 +124.1, 2572.0 +123.8, 1255.0 +123.3, 1643.0 +122.9, 1238.0 +122.7, 831.0 +122.1, 7310.0 +121.1, 78048.0 +120.1, 135872.0 +119.1, 2031616.0 +117.9, 2778.0 +117.1, 760.0 +116.8, 431.0 +116.4, 2041.0 +116.0, 5486.0 +115.0, 241.0 +114.3, 1544.0 +113.9, 951.0 +113.4, 229.0 +113.2, 245.0 +112.8, 777.0 +112.3, 1921.0 +112.0, 969.0 +111.8, 412.0 +110.7, 1207.0 +109.2, 568.0 +108.5, 507.0 +108.3, 1233.0 +107.9, 562.0 +107.3, 187.0 +106.3, 1087.0 +105.9, 362.0 +105.3, 1865.0 +105.0, 3478.0 +104.2, 13681.0 +103.9, 7938.0 +103.7, 3570.0 +103.2, 554.0 +102.9, 1179.0 +102.1, 4880.0 +101.2, 2561.0 +101.0, 3816.0 +100.8, 4148.0 +98.9, 679.0 +97.5, 571.0 +97.1, 165.0 +96.4, 596.0 +95.8, 572.0 +95.3, 1074.0 +95.0, 1183.0 +94.6, 387.0 +94.1, 452.0 +93.8, 1033.0 +93.4, 2132.0 +93.2, 2356.0 +93.0, 8547.0 +92.2, 2426.0 +92.0, 2747.0 +91.2, 70968.0 +90.6, 11736.0 +89.8, 292.0 +89.4, 1275.0 +89.1, 1187.0 +88.7, 364.0 +88.4, 2716.0 +88.2, 5839.0 +86.5, 174.0 +86.2, 337.0 +85.2, 1226.0 +84.8, 603.0 +84.0, 523.0 +82.3, 215.0 +81.0, 2411.0 +80.7, 1598.0 +80.2, 1957.0 +79.8, 822.0 +79.2, 39824.0 +78.2, 1324.0 +77.7, 304.0 +77.2, 2833.0 +76.1, 480.0 +75.8, 301.0 +74.4, 435.0 +72.9, 854.0 +72.2, 810.0 +71.9, 300.0 +71.1, 627.0 +70.3, 1805.0 +68.8, 220.0 +68.1, 404.0 +67.3, 490.0 +65.9, 585.0 +65.3, 1216.0 +65.0, 2231.0 +64.5, 291.0 +64.1, 1864.0 +63.8, 639.0 +63.2, 15748.0 +62.3, 443.0 +61.9, 754.0 +61.7, 319.0 +61.5, 173.0 +61.2, 824.0 +61.0, 641.0 +60.2, 21408.0 +60.0, 20752.0 +57.2, 320.0 +55.3, 849.0 +##PAGE=T= 1.1384333333333334 +##XYDATA=(XY..XY) +927.2, 221.0 +890.9, 168.0 +871.0, 768.0 +849.9, 468.0 +825.7, 284.0 +822.0, 184.0 +767.1, 241.0 +755.8, 227.0 +727.2, 150.0 +717.8, 337.0 +695.0, 354.0 +671.9, 530.0 +656.7, 438.0 +656.5, 555.0 +650.3, 220.0 +646.8, 185.0 +643.2, 499.0 +638.3, 348.0 +636.7, 750.0 +634.7, 161.0 +630.8, 201.0 +628.8, 589.0 +620.8, 182.0 +598.8, 168.0 +585.6, 168.0 +582.4, 325.0 +576.6, 322.0 +562.9, 197.0 +557.7, 279.0 +557.0, 151.0 +554.8, 257.0 +528.1, 416.0 +524.8, 1090.0 +524.0, 176.0 +486.7, 277.0 +484.1, 383.0 +452.7, 197.0 +440.1, 1131.0 +439.1, 409.0 +436.2, 428.0 +431.2, 1587.0 +430.7, 343.0 +430.5, 184.0 +427.8, 336.0 +422.1, 167.0 +421.4, 208.0 +416.7, 214.0 +415.8, 504.0 +415.1, 610.0 +410.2, 155.0 +409.7, 659.0 +406.6, 544.0 +404.8, 738.0 +402.8, 571.0 +394.2, 281.0 +388.8, 540.0 +386.8, 255.0 +383.0, 378.0 +381.1, 523.0 +380.8, 153.0 +379.9, 224.0 +378.1, 429.0 +377.0, 195.0 +373.4, 597.0 +370.2, 381.0 +369.9, 338.0 +369.0, 550.0 +366.9, 1823.0 +365.0, 347.0 +363.4, 346.0 +360.4, 610.0 +358.9, 181.0 +357.9, 239.0 +356.8, 928.0 +355.3, 300.0 +354.0, 725.0 +353.0, 482.0 +342.1, 296.0 +338.2, 157.0 +336.1, 571.0 +335.3, 332.0 +332.6, 532.0 +331.0, 210.0 +327.3, 248.0 +326.1, 1471.0 +324.7, 253.0 +323.9, 163.0 +323.0, 977.0 +320.7, 190.0 +317.5, 350.0 +317.0, 915.0 +315.4, 1278.0 +314.4, 622.0 +313.5, 188.0 +309.3, 371.0 +307.3, 512.0 +307.1, 784.0 +304.2, 929.0 +303.3, 155.0 +301.1, 477.0 +300.2, 1004.0 +299.0, 395.0 +297.4, 883.0 +296.9, 563.0 +295.3, 944.0 +294.8, 1972.0 +294.1, 255.0 +290.9, 375.0 +290.6, 385.0 +288.9, 158.0 +287.3, 153.0 +283.7, 3178.0 +283.1, 417.0 +282.0, 316.0 +281.1, 1585.0 +280.2, 370.0 +279.2, 405.0 +278.9, 449.0 +278.6, 687.0 +277.2, 779.0 +276.2, 561.0 +275.4, 1302.0 +274.9, 168.0 +274.7, 318.0 +274.3, 259.0 +274.1, 268.0 +273.4, 793.0 +271.6, 194.0 +269.2, 984.0 +268.1, 358.0 +267.2, 271.0 +264.2, 237.0 +262.3, 324.0 +256.9, 294.0 +256.1, 170.0 +254.0, 378.0 +251.8, 511.0 +251.1, 1459.0 +250.2, 662.0 +249.0, 1408.0 +246.9, 267.0 +246.2, 563.0 +245.7, 524.0 +245.3, 1001.0 +244.0, 654.0 +243.5, 340.0 +240.3, 248.0 +237.9, 317.0 +237.2, 280.0 +236.4, 297.0 +236.2, 605.0 +232.1, 788.0 +228.1, 793.0 +227.1, 706.0 +225.4, 161.0 +225.0, 176.0 +223.0, 294.0 +222.2, 691.0 +221.7, 924.0 +219.0, 357.0 +218.1, 677.0 +217.1, 322.0 +216.3, 522.0 +214.1, 1191.0 +212.1, 1949.0 +209.4, 163.0 +207.1, 514.0 +205.3, 359.0 +205.1, 938.0 +204.8, 631.0 +203.1, 1103.0 +202.0, 259.0 +201.1, 1245.0 +200.3, 498.0 +199.9, 1361.0 +198.7, 228.0 +198.1, 1395.0 +197.4, 1242.0 +196.6, 1421.0 +196.3, 226.0 +195.9, 637.0 +195.5, 332.0 +195.2, 1723.0 +194.6, 1206.0 +193.9, 1236.0 +192.6, 245.0 +192.3, 1080.0 +191.3, 981.0 +189.2, 207.0 +188.8, 214.0 +188.3, 534.0 +188.1, 983.0 +187.3, 2390.0 +187.0, 1767.0 +186.4, 12547.0 +185.9, 7409.0 +185.2, 1176.0 +184.8, 738.0 +184.1, 547.0 +183.0, 981.0 +182.2, 1250.0 +181.9, 620.0 +180.3, 449.0 +179.4, 936.0 +178.2, 9592.0 +178.0, 9437.0 +177.2, 112616.0 +176.0, 1580.0 +175.1, 1898.0 +174.0, 190.0 +173.7, 380.0 +172.8, 238.0 +172.2, 2800.0 +171.9, 1312.0 +171.2, 315.0 +170.0, 965.0 +166.7, 729.0 +166.4, 990.0 +166.0, 1173.0 +165.0, 273.0 +164.7, 371.0 +164.3, 2869.0 +164.0, 1387.0 +163.2, 182.0 +163.0, 393.0 +162.3, 1903.0 +161.9, 825.0 +161.3, 152.0 +161.1, 871.0 +158.8, 1115.0 +158.2, 1116.0 +158.0, 1363.0 +157.7, 952.0 +157.2, 1182.0 +157.0, 913.0 +156.3, 1825.0 +155.3, 738.0 +155.0, 1556.0 +154.7, 1791.0 +154.2, 17832.0 +153.6, 3466.0 +153.1, 1281.0 +152.8, 759.0 +152.1, 1320.0 +151.5, 2707.0 +151.3, 5224.0 +151.0, 6006.0 +150.0, 56800.0 +148.4, 1042.0 +147.8, 154.0 +146.4, 961.0 +145.1, 398.0 +144.2, 304.0 +143.3, 501.0 +142.7, 1483.0 +142.1, 1575.0 +140.1, 343.0 +139.1, 384.0 +138.9, 644.0 +138.3, 1097.0 +138.1, 1642.0 +137.7, 1607.0 +135.7, 310.0 +135.4, 937.0 +134.4, 738.0 +134.2, 1016.0 +133.3, 5469.0 +133.0, 2655.0 +132.8, 2222.0 +132.5, 910.0 +132.2, 319.0 +131.8, 276.0 +131.1, 258.0 +130.2, 1004.0 +130.0, 940.0 +129.7, 1156.0 +129.1, 4900.0 +128.7, 734.0 +128.1, 507.0 +126.9, 183.0 +125.3, 765.0 +124.7, 227.0 +124.1, 3457.0 +123.8, 758.0 +123.3, 1656.0 +122.9, 1177.0 +122.7, 418.0 +122.1, 7539.0 +121.1, 68040.0 +120.1, 118432.0 +119.1, 1626112.0 +117.9, 2186.0 +117.2, 497.0 +117.0, 298.0 +116.4, 2968.0 +116.0, 6213.0 +115.7, 1438.0 +115.0, 175.0 +114.3, 1367.0 +113.9, 1258.0 +113.1, 231.0 +112.8, 375.0 +112.3, 1365.0 +112.0, 492.0 +110.7, 556.0 +110.2, 276.0 +109.2, 681.0 +108.5, 508.0 +108.3, 992.0 +108.0, 471.0 +106.3, 1003.0 +105.3, 1105.0 +105.0, 2709.0 +104.2, 9466.0 +103.9, 5906.0 +103.7, 3831.0 +103.2, 779.0 +102.9, 949.0 +102.1, 5021.0 +101.2, 4071.0 +101.0, 4939.0 +100.8, 5312.0 +98.8, 547.0 +97.5, 322.0 +97.2, 467.0 +96.4, 770.0 +95.8, 444.0 +95.1, 1239.0 +94.6, 330.0 +94.1, 713.0 +93.8, 983.0 +93.4, 1913.0 +93.2, 1921.0 +93.0, 8787.0 +92.2, 1621.0 +92.0, 1662.0 +91.2, 58192.0 +91.0, 56136.0 +89.8, 367.0 +89.4, 1281.0 +89.2, 1115.0 +89.0, 1105.0 +88.4, 2559.0 +88.2, 6706.0 +86.2, 331.0 +85.2, 1711.0 +84.8, 527.0 +84.0, 340.0 +82.3, 267.0 +82.0, 246.0 +81.0, 2105.0 +80.7, 1773.0 +80.2, 2121.0 +79.8, 473.0 +79.2, 36736.0 +79.0, 37608.0 +77.7, 387.0 +77.2, 2861.0 +76.0, 595.0 +75.6, 370.0 +74.4, 346.0 +74.0, 195.0 +72.9, 660.0 +71.9, 374.0 +70.3, 936.0 +70.0, 481.0 +68.8, 449.0 +68.1, 518.0 +67.3, 631.0 +65.9, 281.0 +65.3, 936.0 +65.0, 1852.0 +64.5, 235.0 +64.1, 1953.0 +63.8, 621.0 +63.2, 11430.0 +62.1, 277.0 +61.9, 358.0 +61.7, 247.0 +61.4, 240.0 +61.2, 1012.0 +60.8, 520.0 +60.2, 20160.0 +57.2, 252.0 +55.3, 1103.0 +##PAGE=T= 1.1540666666666666 +##XYDATA=(XY..XY) +991.3, 169.0 +936.9, 153.0 +927.2, 276.0 +920.6, 319.0 +907.1, 285.0 +895.8, 196.0 +890.9, 233.0 +871.0, 995.0 +849.9, 367.0 +828.9, 169.0 +825.7, 593.0 +784.8, 194.0 +767.1, 487.0 +755.8, 286.0 +727.2, 287.0 +717.8, 266.0 +704.0, 277.0 +695.0, 180.0 +671.9, 257.0 +656.7, 561.0 +650.3, 446.0 +646.8, 230.0 +643.2, 643.0 +636.7, 354.0 +630.8, 163.0 +628.8, 759.0 +590.9, 180.0 +582.4, 167.0 +576.6, 371.0 +557.7, 354.0 +528.1, 327.0 +524.8, 504.0 +524.0, 349.0 +519.6, 237.0 +514.8, 238.0 +484.1, 302.0 +473.7, 150.0 +452.7, 395.0 +440.1, 870.0 +439.0, 258.0 +436.2, 549.0 +433.8, 278.0 +431.2, 724.0 +430.7, 314.0 +430.5, 353.0 +427.8, 429.0 +426.4, 195.0 +422.1, 327.0 +421.4, 261.0 +416.7, 428.0 +415.8, 245.0 +415.1, 292.0 +414.3, 155.0 +409.6, 331.0 +406.6, 425.0 +404.8, 349.0 +402.8, 444.0 +394.2, 483.0 +391.4, 178.0 +386.8, 524.0 +383.0, 190.0 +381.1, 422.0 +380.8, 295.0 +379.9, 282.0 +378.1, 551.0 +377.0, 243.0 +373.4, 464.0 +370.2, 191.0 +369.9, 173.0 +369.0, 265.0 +368.1, 226.0 +366.9, 1398.0 +365.0, 443.0 +363.4, 441.0 +360.4, 293.0 +357.9, 488.0 +356.8, 772.0 +356.1, 159.0 +355.3, 380.0 +354.0, 580.0 +353.0, 185.0 +347.4, 157.0 +344.4, 271.0 +343.8, 153.0 +342.1, 235.0 +338.2, 193.0 +336.1, 736.0 +335.3, 423.0 +334.9, 175.0 +332.6, 686.0 +331.9, 193.0 +328.6, 202.0 +327.3, 317.0 +326.1, 1920.0 +324.2, 203.0 +323.8, 291.0 +323.0, 934.0 +320.7, 379.0 +317.5, 446.0 +317.0, 706.0 +315.4, 756.0 +315.1, 636.0 +314.4, 483.0 +313.5, 234.0 +309.3, 403.0 +307.3, 609.0 +305.9, 188.0 +304.2, 433.0 +303.2, 299.0 +301.1, 465.0 +300.2, 842.0 +299.0, 507.0 +297.4, 765.0 +296.9, 436.0 +295.3, 1049.0 +294.8, 1663.0 +293.7, 345.0 +290.9, 296.0 +290.6, 194.0 +288.9, 298.0 +287.1, 585.0 +283.7, 2772.0 +283.1, 700.0 +282.0, 251.0 +281.1, 2071.0 +280.1, 385.0 +279.1, 741.0 +278.6, 565.0 +277.2, 425.0 +276.2, 338.0 +275.4, 1213.0 +274.7, 244.0 +273.4, 682.0 +271.6, 243.0 +269.2, 619.0 +268.1, 457.0 +267.3, 336.0 +264.2, 297.0 +263.1, 314.0 +262.0, 227.0 +258.0, 164.0 +256.9, 234.0 +256.1, 330.0 +255.3, 188.0 +254.0, 191.0 +253.7, 182.0 +251.8, 399.0 +251.1, 1008.0 +250.2, 735.0 +249.0, 1197.0 +246.2, 272.0 +245.7, 445.0 +245.3, 779.0 +244.8, 251.0 +244.0, 546.0 +243.5, 201.0 +241.0, 184.0 +240.3, 312.0 +237.9, 524.0 +237.2, 255.0 +236.4, 236.0 +236.2, 478.0 +235.2, 160.0 +233.1, 182.0 +232.0, 1065.0 +228.0, 942.0 +226.9, 531.0 +225.3, 422.0 +225.1, 420.0 +223.9, 517.0 +223.0, 275.0 +222.2, 1000.0 +221.7, 809.0 +219.0, 458.0 +218.1, 437.0 +217.1, 678.0 +216.3, 255.0 +214.1, 576.0 +212.1, 1646.0 +210.3, 240.0 +209.5, 303.0 +208.1, 168.0 +207.1, 811.0 +205.1, 497.0 +204.8, 303.0 +203.9, 262.0 +203.1, 720.0 +202.8, 212.0 +202.0, 329.0 +201.1, 1284.0 +200.3, 278.0 +199.8, 1317.0 +198.7, 286.0 +198.1, 1072.0 +197.4, 1330.0 +196.6, 1094.0 +196.3, 281.0 +195.9, 719.0 +195.1, 1656.0 +194.6, 946.0 +193.9, 978.0 +193.0, 227.0 +192.6, 502.0 +192.3, 546.0 +191.3, 455.0 +189.2, 266.0 +188.8, 151.0 +188.3, 259.0 +188.1, 742.0 +187.4, 1916.0 +187.0, 1433.0 +186.3, 12922.0 +185.2, 823.0 +184.1, 1515.0 +183.0, 487.0 +182.2, 714.0 +181.9, 565.0 +181.0, 171.0 +180.2, 248.0 +179.4, 1053.0 +178.1, 12117.0 +177.2, 122024.0 +176.0, 1286.0 +175.1, 2002.0 +173.9, 378.0 +173.7, 383.0 +172.8, 446.0 +172.1, 1819.0 +171.9, 1265.0 +171.3, 241.0 +170.0, 1119.0 +167.2, 178.0 +166.7, 1056.0 +166.4, 608.0 +166.0, 874.0 +165.0, 590.0 +164.3, 2382.0 +162.2, 1308.0 +161.9, 1387.0 +161.3, 188.0 +161.1, 707.0 +160.6, 328.0 +158.8, 942.0 +158.2, 859.0 +157.9, 1105.0 +157.2, 864.0 +157.0, 527.0 +156.1, 2186.0 +155.1, 1623.0 +154.7, 1564.0 +154.3, 13225.0 +153.1, 990.0 +152.8, 605.0 +152.1, 1131.0 +151.0, 7271.0 +150.0, 55296.0 +148.7, 271.0 +148.4, 835.0 +146.4, 742.0 +146.0, 430.0 +145.1, 531.0 +144.3, 462.0 +143.8, 224.0 +143.3, 787.0 +142.7, 1138.0 +142.1, 1574.0 +140.8, 228.0 +140.1, 616.0 +139.3, 179.0 +138.9, 347.0 +138.1, 1413.0 +137.7, 1238.0 +137.0, 270.0 +135.7, 649.0 +135.4, 470.0 +134.1, 1011.0 +133.3, 4769.0 +132.8, 1841.0 +132.5, 915.0 +132.2, 540.0 +131.8, 245.0 +131.0, 342.0 +130.2, 1089.0 +130.0, 997.0 +129.7, 821.0 +129.1, 3710.0 +128.7, 619.0 +128.1, 652.0 +126.1, 166.0 +125.3, 708.0 +124.1, 3117.0 +123.4, 1355.0 +122.9, 783.0 +122.1, 6457.0 +121.1, 57128.0 +120.1, 95760.0 +119.1, 1312256.0 +117.9, 1336.0 +117.2, 246.0 +117.0, 233.0 +116.2, 3022.0 +116.0, 4770.0 +115.7, 1392.0 +114.3, 894.0 +113.9, 999.0 +113.1, 518.0 +112.3, 811.0 +112.0, 419.0 +110.2, 349.0 +109.2, 561.0 +108.5, 394.0 +108.3, 517.0 +108.0, 391.0 +107.1, 248.0 +106.3, 880.0 +105.0, 1435.0 +104.2, 4998.0 +104.0, 4704.0 +103.7, 3251.0 +103.2, 688.0 +102.9, 743.0 +102.1, 4043.0 +101.2, 4753.0 +101.0, 5097.0 +100.8, 4785.0 +98.8, 402.0 +98.2, 170.0 +97.2, 761.0 +96.4, 597.0 +95.8, 242.0 +95.1, 965.0 +94.6, 215.0 +94.1, 781.0 +93.8, 741.0 +93.0, 6340.0 +92.2, 1037.0 +91.9, 827.0 +91.0, 49968.0 +89.8, 337.0 +89.4, 1206.0 +89.2, 1297.0 +89.0, 1243.0 +88.4, 2745.0 +88.2, 6410.0 +86.9, 268.0 +86.2, 386.0 +85.2, 2360.0 +84.1, 266.0 +83.2, 166.0 +82.3, 212.0 +82.0, 311.0 +81.0, 1925.0 +80.7, 1333.0 +80.2, 1605.0 +79.0, 33112.0 +77.7, 561.0 +77.2, 2343.0 +76.0, 463.0 +75.5, 578.0 +74.4, 558.0 +74.0, 510.0 +72.9, 341.0 +71.9, 294.0 +70.0, 744.0 +68.8, 576.0 +68.1, 404.0 +67.8, 246.0 +67.3, 491.0 +65.3, 436.0 +65.0, 1021.0 +64.8, 556.0 +64.1, 1662.0 +63.8, 532.0 +63.1, 8177.0 +62.1, 257.0 +61.2, 1259.0 +60.1, 18336.0 +55.3, 850.0 +##PAGE=T= 1.1696833333333334 +##XYDATA=(XY..XY) +991.3, 208.0 +936.9, 299.0 +927.2, 220.0 +920.6, 672.0 +907.1, 596.0 +895.8, 245.0 +890.8, 258.0 +871.0, 767.0 +849.9, 186.0 +828.9, 211.0 +825.7, 767.0 +814.3, 210.0 +784.8, 388.0 +767.1, 625.0 +755.8, 228.0 +727.2, 364.0 +714.6, 359.0 +712.6, 243.0 +705.7, 161.0 +704.0, 576.0 +656.7, 437.0 +650.3, 572.0 +646.8, 184.0 +643.2, 499.0 +628.8, 586.0 +576.7, 607.0 +557.7, 279.0 +545.1, 187.0 +537.3, 224.0 +528.1, 168.0 +524.0, 446.0 +519.6, 296.0 +514.7, 599.0 +495.4, 163.0 +484.1, 157.0 +473.7, 290.0 +452.7, 506.0 +444.0, 212.0 +440.1, 406.0 +438.9, 299.0 +436.2, 428.0 +435.0, 203.0 +433.8, 352.0 +430.5, 446.0 +427.9, 368.0 +426.4, 387.0 +422.1, 417.0 +421.4, 209.0 +416.7, 548.0 +414.3, 298.0 +410.1, 160.0 +409.6, 422.0 +409.2, 236.0 +408.3, 243.0 +406.6, 211.0 +402.8, 219.0 +394.8, 212.0 +394.3, 747.0 +391.4, 221.0 +386.8, 675.0 +381.1, 228.0 +380.8, 374.0 +379.9, 224.0 +378.1, 429.0 +377.0, 195.0 +373.4, 228.0 +373.0, 167.0 +368.1, 460.0 +366.9, 712.0 +365.0, 347.0 +363.8, 267.0 +363.4, 352.0 +359.2, 266.0 +357.9, 627.0 +356.8, 405.0 +356.1, 225.0 +355.3, 299.0 +354.0, 310.0 +349.2, 238.0 +344.4, 343.0 +342.6, 200.0 +338.2, 157.0 +337.0, 301.0 +336.1, 570.0 +335.3, 332.0 +332.6, 533.0 +331.9, 240.0 +330.3, 233.0 +328.6, 255.0 +328.0, 173.0 +327.1, 423.0 +326.1, 1471.0 +325.1, 331.0 +324.2, 408.0 +323.8, 364.0 +323.0, 572.0 +320.7, 485.0 +317.5, 349.0 +317.0, 335.0 +315.1, 880.0 +314.4, 237.0 +313.5, 189.0 +311.0, 238.0 +310.0, 153.0 +309.4, 575.0 +307.4, 465.0 +305.9, 373.0 +304.0, 172.0 +303.2, 442.0 +300.9, 366.0 +300.1, 680.0 +299.0, 397.0 +298.0, 161.0 +297.3, 486.0 +296.9, 214.0 +295.4, 1155.0 +294.8, 1034.0 +293.8, 574.0 +292.8, 231.0 +290.9, 154.0 +288.9, 373.0 +287.1, 1273.0 +283.7, 1523.0 +283.1, 801.0 +281.1, 1586.0 +280.1, 297.0 +279.1, 1002.0 +278.6, 297.0 +277.1, 164.0 +276.4, 354.0 +275.4, 913.0 +273.4, 377.0 +272.2, 218.0 +271.6, 195.0 +269.2, 219.0 +268.1, 505.0 +267.3, 265.0 +266.1, 252.0 +264.2, 378.0 +263.1, 468.0 +262.1, 520.0 +259.3, 171.0 +258.0, 317.0 +256.1, 421.0 +255.3, 239.0 +253.7, 354.0 +251.8, 199.0 +251.1, 467.0 +250.2, 764.0 +249.0, 685.0 +248.2, 172.0 +245.6, 299.0 +245.3, 373.0 +244.8, 315.0 +244.2, 279.0 +244.0, 335.0 +243.0, 257.0 +241.1, 379.0 +240.3, 247.0 +237.9, 565.0 +237.2, 206.0 +237.0, 212.0 +236.1, 245.0 +235.2, 195.0 +233.1, 265.0 +232.0, 961.0 +231.2, 180.0 +230.8, 440.0 +228.3, 1226.0 +227.0, 541.0 +225.2, 1134.0 +223.9, 1090.0 +223.0, 289.0 +222.2, 1298.0 +221.7, 454.0 +219.0, 359.0 +218.1, 264.0 +217.1, 943.0 +214.0, 547.0 +213.3, 198.0 +212.1, 1396.0 +211.6, 512.0 +210.3, 300.0 +209.5, 480.0 +208.1, 300.0 +207.1, 1157.0 +205.3, 227.0 +203.9, 342.0 +203.3, 766.0 +202.8, 264.0 +202.0, 260.0 +201.0, 1000.0 +199.8, 963.0 +198.7, 228.0 +198.1, 496.0 +197.3, 1065.0 +196.6, 511.0 +196.3, 223.0 +195.8, 761.0 +195.1, 1742.0 +194.6, 459.0 +193.9, 506.0 +193.0, 462.0 +192.6, 648.0 +189.1, 242.0 +188.1, 349.0 +187.4, 1310.0 +186.2, 14594.0 +184.9, 1177.0 +184.1, 2360.0 +182.3, 352.0 +181.8, 588.0 +181.0, 333.0 +180.1, 201.0 +179.4, 877.0 +178.1, 15319.0 +177.2, 129496.0 +176.0, 740.0 +175.1, 1663.0 +174.0, 588.0 +172.8, 544.0 +172.1, 1525.0 +171.3, 302.0 +170.0, 1086.0 +166.7, 959.0 +166.1, 994.0 +165.0, 790.0 +164.3, 1411.0 +163.7, 637.0 +163.0, 230.0 +161.9, 1657.0 +161.3, 153.0 +161.1, 370.0 +160.6, 745.0 +158.8, 503.0 +158.2, 515.0 +157.8, 935.0 +157.2, 397.0 +156.1, 2481.0 +155.1, 1581.0 +154.2, 9731.0 +153.1, 610.0 +152.8, 314.0 +152.1, 668.0 +151.1, 9029.0 +150.1, 57296.0 +148.7, 582.0 +148.4, 451.0 +147.7, 162.0 +147.0, 257.0 +146.4, 350.0 +146.0, 854.0 +145.0, 598.0 +144.2, 637.0 +143.8, 284.0 +143.3, 806.0 +142.7, 525.0 +142.1, 1432.0 +140.8, 292.0 +140.1, 713.0 +139.3, 229.0 +138.9, 205.0 +138.1, 1042.0 +137.7, 602.0 +137.0, 356.0 +135.7, 840.0 +134.1, 851.0 +133.2, 2986.0 +132.8, 1112.0 +132.5, 589.0 +132.2, 753.0 +131.0, 333.0 +130.1, 962.0 +129.1, 1739.0 +128.1, 505.0 +125.9, 284.0 +125.2, 896.0 +124.1, 3337.0 +123.3, 915.0 +122.9, 709.0 +122.1, 4782.0 +121.1, 46816.0 +120.1, 72688.0 +119.1, 1072128.0 +116.3, 3036.0 +116.0, 2783.0 +115.7, 1021.0 +115.1, 308.0 +114.2, 530.0 +113.9, 558.0 +113.2, 728.0 +112.3, 540.0 +110.1, 449.0 +109.2, 313.0 +108.5, 210.0 +108.0, 305.0 +107.1, 507.0 +106.1, 932.0 +105.1, 577.0 +104.3, 2546.0 +104.0, 3085.0 +103.7, 2247.0 +103.2, 425.0 +102.7, 806.0 +102.1, 2541.0 +101.0, 4210.0 +100.2, 211.0 +99.8, 245.0 +98.8, 186.0 +98.2, 280.0 +97.2, 841.0 +96.4, 287.0 +95.1, 626.0 +94.0, 699.0 +93.0, 3687.0 +92.1, 905.0 +91.0, 43136.0 +89.9, 254.0 +89.2, 1307.0 +89.0, 1296.0 +88.2, 8548.0 +86.9, 603.0 +86.0, 508.0 +85.2, 2733.0 +84.1, 416.0 +83.2, 235.0 +82.0, 247.0 +81.1, 2903.0 +80.2, 881.0 +79.0, 28352.0 +77.7, 723.0 +77.2, 1526.0 +76.0, 227.0 +75.5, 622.0 +74.1, 1539.0 +72.8, 169.0 +71.9, 153.0 +70.3, 1163.0 +68.8, 449.0 +68.1, 201.0 +67.8, 310.0 +67.3, 293.0 +65.9, 153.0 +64.8, 379.0 +64.1, 1253.0 +63.0, 7327.0 +62.1, 254.0 +61.2, 1343.0 +60.2, 16520.0 +55.3, 399.0 +##PAGE=T= 1.1853166666666666 +##XYDATA=(XY..XY) +991.3, 168.0 +936.9, 382.0 +920.6, 871.0 +907.1, 771.0 +895.8, 197.0 +890.7, 259.0 +871.0, 361.0 +870.3, 180.0 +834.7, 171.0 +828.9, 171.0 +825.7, 595.0 +814.3, 264.0 +784.8, 498.0 +784.3, 224.0 +767.1, 484.0 +727.2, 287.0 +714.6, 762.0 +712.6, 500.0 +705.7, 198.0 +704.0, 744.0 +656.7, 217.0 +650.3, 444.0 +643.2, 242.0 +628.8, 280.0 +598.6, 212.0 +576.7, 785.0 +545.1, 189.0 +537.3, 280.0 +524.0, 351.0 +522.0, 200.0 +519.6, 235.0 +517.9, 208.0 +514.7, 929.0 +495.4, 316.0 +481.2, 188.0 +473.7, 367.0 +464.2, 203.0 +460.9, 279.0 +457.2, 186.0 +452.7, 395.0 +444.0, 425.0 +438.9, 380.0 +436.2, 211.0 +435.0, 254.0 +433.8, 278.0 +430.4, 437.0 +428.0, 311.0 +426.4, 494.0 +423.9, 151.0 +423.0, 198.0 +422.1, 327.0 +418.2, 188.0 +416.7, 427.0 +415.4, 157.0 +414.3, 379.0 +412.0, 599.0 +410.0, 186.0 +409.6, 332.0 +409.2, 481.0 +408.3, 496.0 +401.5, 151.0 +399.4, 220.0 +398.0, 180.0 +394.8, 427.0 +394.3, 1110.0 +391.4, 178.0 +386.8, 524.0 +380.8, 297.0 +378.1, 213.0 +373.0, 329.0 +368.1, 595.0 +366.8, 253.0 +365.1, 232.0 +363.7, 470.0 +362.3, 273.0 +359.2, 581.0 +357.9, 487.0 +356.0, 235.0 +355.3, 156.0 +352.9, 244.0 +349.2, 440.0 +344.9, 282.0 +344.4, 271.0 +342.6, 250.0 +337.0, 520.0 +336.1, 276.0 +335.3, 170.0 +334.7, 259.0 +332.6, 259.0 +331.9, 192.0 +330.3, 474.0 +328.8, 226.0 +328.0, 214.0 +327.1, 874.0 +326.2, 756.0 +325.0, 821.0 +324.2, 722.0 +323.1, 200.0 +322.2, 188.0 +320.7, 379.0 +320.1, 240.0 +319.8, 261.0 +317.5, 178.0 +315.1, 769.0 +311.0, 487.0 +310.3, 186.0 +309.4, 742.0 +308.5, 281.0 +307.4, 228.0 +305.9, 477.0 +304.9, 246.0 +304.0, 338.0 +303.1, 502.0 +300.9, 212.0 +300.1, 543.0 +299.0, 200.0 +298.0, 198.0 +297.3, 228.0 +295.3, 1031.0 +293.9, 746.0 +292.8, 291.0 +288.9, 380.0 +287.1, 1670.0 +283.7, 352.0 +283.1, 620.0 +281.1, 723.0 +279.8, 239.0 +279.0, 1295.0 +276.4, 616.0 +275.3, 691.0 +274.2, 237.0 +272.2, 441.0 +270.3, 184.0 +268.5, 228.0 +268.1, 517.0 +266.1, 319.0 +264.3, 473.0 +263.1, 456.0 +262.1, 784.0 +259.9, 234.0 +258.0, 402.0 +256.1, 454.0 +255.3, 200.0 +253.7, 451.0 +250.1, 723.0 +249.0, 182.0 +248.2, 213.0 +245.8, 201.0 +244.8, 311.0 +244.2, 353.0 +243.0, 530.0 +242.3, 190.0 +241.1, 507.0 +240.0, 225.0 +237.9, 391.0 +237.4, 276.0 +237.1, 289.0 +235.1, 341.0 +234.1, 253.0 +233.0, 292.0 +232.4, 855.0 +232.1, 671.0 +231.2, 356.0 +230.8, 855.0 +229.9, 420.0 +228.3, 1246.0 +227.0, 461.0 +225.2, 1894.0 +223.9, 1410.0 +223.0, 339.0 +222.2, 1347.0 +219.0, 182.0 +218.1, 202.0 +217.1, 826.0 +214.1, 625.0 +213.3, 302.0 +212.2, 1336.0 +211.5, 394.0 +210.3, 237.0 +209.9, 152.0 +209.5, 568.0 +208.1, 376.0 +207.0, 1099.0 +205.4, 393.0 +203.9, 284.0 +203.3, 761.0 +202.8, 211.0 +200.9, 865.0 +200.3, 430.0 +199.9, 498.0 +199.1, 212.0 +197.3, 673.0 +195.8, 1032.0 +195.1, 1571.0 +193.9, 364.0 +193.0, 594.0 +192.6, 514.0 +188.9, 424.0 +187.2, 1287.0 +186.2, 14593.0 +185.4, 809.0 +184.9, 1699.0 +184.1, 2553.0 +183.4, 173.0 +182.3, 549.0 +181.8, 396.0 +181.0, 425.0 +180.2, 168.0 +179.4, 481.0 +178.1, 16208.0 +177.2, 128232.0 +175.2, 1034.0 +174.0, 622.0 +172.8, 412.0 +171.9, 1372.0 +171.2, 267.0 +170.0, 902.0 +169.2, 229.0 +167.2, 170.0 +166.7, 557.0 +166.1, 1408.0 +165.0, 647.0 +164.3, 720.0 +163.7, 1281.0 +162.9, 333.0 +161.9, 1463.0 +160.6, 1016.0 +159.0, 156.0 +158.2, 342.0 +157.8, 549.0 +157.1, 419.0 +156.0, 2261.0 +155.2, 1618.0 +154.2, 6727.0 +154.0, 6777.0 +153.1, 355.0 +152.1, 317.0 +151.1, 9289.0 +150.1, 55840.0 +148.7, 771.0 +147.7, 190.0 +147.0, 319.0 +146.0, 1200.0 +145.0, 562.0 +144.2, 712.0 +143.3, 538.0 +142.1, 989.0 +140.8, 241.0 +140.1, 516.0 +139.3, 278.0 +138.9, 167.0 +138.0, 899.0 +137.0, 364.0 +136.4, 194.0 +135.7, 648.0 +134.9, 179.0 +134.1, 501.0 +133.1, 1699.0 +132.2, 702.0 +130.9, 326.0 +130.3, 721.0 +129.0, 431.0 +128.1, 245.0 +125.9, 518.0 +125.2, 1244.0 +124.1, 4209.0 +123.1, 1418.0 +122.1, 3447.0 +121.1, 36544.0 +120.1, 56664.0 +119.1, 870016.0 +116.3, 2390.0 +115.1, 306.0 +114.1, 396.0 +113.2, 658.0 +112.3, 697.0 +112.1, 681.0 +110.1, 604.0 +107.9, 328.0 +107.1, 653.0 +106.1, 898.0 +105.0, 259.0 +104.1, 1523.0 +102.6, 605.0 +102.1, 1435.0 +101.0, 2868.0 +100.2, 265.0 +99.8, 500.0 +98.2, 328.0 +97.2, 682.0 +94.9, 292.0 +94.4, 621.0 +93.9, 729.0 +93.1, 2282.0 +92.2, 755.0 +91.1, 36568.0 +90.0, 362.0 +89.0, 1265.0 +88.2, 12160.0 +86.8, 922.0 +86.0, 647.0 +85.2, 2652.0 +84.1, 446.0 +83.2, 276.0 +81.1, 3668.0 +80.2, 390.0 +79.1, 27168.0 +77.7, 560.0 +77.2, 983.0 +75.4, 540.0 +74.1, 2867.0 +72.8, 240.0 +70.3, 1322.0 +68.8, 221.0 +67.8, 245.0 +67.4, 167.0 +65.9, 293.0 +64.9, 213.0 +64.1, 865.0 +63.0, 6903.0 +62.2, 305.0 +61.2, 1216.0 +60.2, 14969.0 +##PAGE=T= 1.2009333333333334 +##XYDATA=(XY..XY) +936.9, 301.0 +920.6, 673.0 +907.1, 597.0 +890.7, 194.0 +834.7, 334.0 +825.7, 288.0 +814.3, 213.0 +784.8, 390.0 +784.3, 281.0 +775.6, 206.0 +767.1, 235.0 +727.2, 150.0 +714.6, 989.0 +712.6, 645.0 +705.7, 161.0 +704.0, 577.0 +650.3, 218.0 +598.6, 429.0 +576.7, 607.0 +565.8, 214.0 +545.1, 155.0 +537.3, 223.0 +524.0, 179.0 +522.0, 401.0 +521.6, 179.0 +517.9, 260.0 +514.7, 921.0 +495.4, 402.0 +481.2, 374.0 +473.7, 288.0 +464.2, 266.0 +460.7, 384.0 +457.2, 231.0 +452.7, 198.0 +444.0, 545.0 +438.9, 300.0 +435.0, 204.0 +430.3, 563.0 +428.1, 313.0 +426.4, 386.0 +423.9, 290.0 +423.0, 247.0 +422.1, 167.0 +418.2, 374.0 +416.7, 212.0 +415.4, 302.0 +414.3, 298.0 +412.0, 1148.0 +410.1, 170.0 +409.2, 618.0 +408.3, 813.0 +401.5, 185.0 +399.4, 521.0 +398.0, 357.0 +394.8, 548.0 +394.4, 1262.0 +386.8, 255.0 +384.4, 170.0 +381.9, 273.0 +381.1, 173.0 +373.0, 419.0 +368.1, 493.0 +366.8, 319.0 +365.2, 210.0 +363.7, 554.0 +362.3, 565.0 +359.1, 799.0 +357.9, 239.0 +356.0, 218.0 +352.9, 308.0 +349.3, 623.0 +344.9, 357.0 +343.7, 198.0 +342.6, 200.0 +337.0, 747.0 +334.7, 504.0 +332.0, 247.0 +330.3, 610.0 +328.9, 177.0 +328.0, 173.0 +327.1, 1258.0 +326.3, 354.0 +325.1, 1499.0 +324.1, 962.0 +322.2, 372.0 +320.2, 573.0 +319.8, 783.0 +315.0, 481.0 +312.9, 171.0 +311.0, 626.0 +310.3, 229.0 +310.0, 200.0 +309.4, 608.0 +308.5, 356.0 +305.9, 374.0 +304.9, 310.0 +304.0, 431.0 +303.1, 378.0 +300.1, 403.0 +298.4, 509.0 +295.1, 849.0 +294.0, 635.0 +292.8, 231.0 +291.0, 386.0 +289.2, 551.0 +287.1, 1297.0 +284.7, 154.0 +283.0, 359.0 +280.9, 471.0 +279.8, 494.0 +279.0, 1873.0 +276.4, 754.0 +275.3, 515.0 +274.2, 485.0 +272.1, 566.0 +271.2, 158.0 +270.3, 364.0 +269.5, 172.0 +268.9, 268.0 +268.5, 288.0 +268.1, 484.0 +266.1, 254.0 +264.3, 534.0 +263.1, 392.0 +262.2, 855.0 +259.9, 461.0 +258.0, 316.0 +256.2, 467.0 +255.1, 185.0 +253.7, 353.0 +251.3, 206.0 +249.9, 543.0 +248.2, 172.0 +245.9, 151.0 +244.9, 227.0 +244.2, 279.0 +243.0, 683.0 +242.3, 377.0 +241.2, 430.0 +240.0, 444.0 +239.1, 172.0 +237.9, 165.0 +237.3, 437.0 +235.0, 748.0 +234.1, 435.0 +233.0, 266.0 +232.4, 1182.0 +231.8, 495.0 +230.8, 1068.0 +229.9, 896.0 +228.3, 972.0 +227.1, 297.0 +225.2, 2140.0 +224.7, 463.0 +223.9, 1082.0 +223.0, 257.0 +222.2, 1053.0 +219.8, 184.0 +218.0, 152.0 +217.0, 538.0 +214.1, 517.0 +213.1, 503.0 +212.1, 1184.0 +211.6, 304.0 +209.9, 185.0 +209.5, 442.0 +208.0, 396.0 +207.0, 687.0 +205.4, 494.0 +203.9, 160.0 +203.3, 500.0 +200.9, 689.0 +200.3, 702.0 +199.1, 210.0 +197.3, 321.0 +197.0, 364.0 +195.8, 936.0 +195.1, 1468.0 +193.8, 655.0 +193.0, 511.0 +192.4, 382.0 +191.1, 236.0 +190.2, 223.0 +188.9, 672.0 +187.2, 1405.0 +186.1, 13241.0 +185.4, 938.0 +184.9, 1830.0 +184.1, 1738.0 +183.4, 215.0 +182.3, 664.0 +181.8, 162.0 +181.0, 334.0 +179.4, 224.0 +178.1, 13499.0 +177.2, 113152.0 +175.1, 535.0 +174.0, 526.0 +172.8, 198.0 +171.9, 1166.0 +171.2, 210.0 +169.9, 669.0 +169.2, 467.0 +167.7, 211.0 +167.2, 229.0 +166.8, 177.0 +166.1, 1307.0 +165.4, 382.0 +165.0, 487.0 +164.2, 466.0 +163.7, 1627.0 +163.0, 355.0 +161.9, 974.0 +160.6, 849.0 +159.0, 159.0 +158.2, 477.0 +157.1, 692.0 +156.0, 1540.0 +155.2, 1347.0 +154.0, 5271.0 +153.0, 237.0 +152.1, 315.0 +151.1, 7042.0 +150.2, 49432.0 +148.7, 622.0 +147.7, 150.0 +147.0, 318.0 +146.0, 1098.0 +145.0, 464.0 +144.1, 670.0 +143.2, 222.0 +142.0, 579.0 +140.1, 239.0 +139.2, 267.0 +138.1, 845.0 +137.0, 299.0 +136.4, 240.0 +135.7, 322.0 +134.9, 198.0 +134.1, 151.0 +133.0, 1431.0 +132.2, 427.0 +130.8, 325.0 +130.4, 826.0 +129.1, 193.0 +125.9, 638.0 +125.2, 1340.0 +124.1, 5270.0 +123.1, 1793.0 +122.0, 3075.0 +121.1, 28584.0 +120.1, 48760.0 +119.1, 693504.0 +116.3, 1551.0 +115.9, 881.0 +115.1, 208.0 +114.0, 285.0 +113.2, 384.0 +112.0, 648.0 +110.1, 667.0 +107.8, 502.0 +107.1, 510.0 +106.1, 557.0 +105.0, 258.0 +104.1, 744.0 +103.5, 416.0 +102.1, 898.0 +101.0, 1613.0 +99.8, 713.0 +98.2, 369.0 +97.2, 451.0 +94.4, 770.0 +93.9, 793.0 +93.1, 2486.0 +92.2, 807.0 +91.1, 29952.0 +88.9, 1165.0 +88.2, 15575.0 +87.2, 1110.0 +86.7, 1030.0 +86.0, 500.0 +85.2, 2213.0 +84.1, 377.0 +83.2, 323.0 +81.0, 3703.0 +79.9, 331.0 +79.1, 26752.0 +77.7, 271.0 +77.2, 746.0 +75.4, 362.0 +74.1, 3610.0 +73.4, 189.0 +72.8, 234.0 +70.3, 931.0 +67.4, 205.0 +65.9, 371.0 +65.0, 368.0 +64.1, 675.0 +63.0, 6064.0 +62.2, 323.0 +61.1, 906.0 +60.2, 12459.0 +##PAGE=T= 1.2165666666666666 +##XYDATA=(XY..XY) +936.9, 156.0 +920.6, 321.0 +907.1, 286.0 +834.7, 425.0 +832.9, 170.0 +784.8, 197.0 +784.3, 225.0 +775.6, 373.0 +765.2, 159.0 +714.6, 763.0 +712.6, 500.0 +704.0, 278.0 +598.6, 551.0 +576.7, 291.0 +565.8, 268.0 +555.2, 158.0 +522.0, 514.0 +521.6, 345.0 +517.9, 207.0 +515.8, 172.0 +514.6, 600.0 +495.4, 316.0 +481.2, 480.0 +464.2, 271.0 +460.6, 469.0 +457.2, 187.0 +444.0, 424.0 +438.9, 156.0 +433.0, 205.0 +430.2, 671.0 +428.1, 248.0 +426.4, 194.0 +423.9, 367.0 +423.0, 199.0 +418.2, 479.0 +415.4, 384.0 +414.3, 154.0 +412.0, 1376.0 +409.2, 480.0 +408.3, 893.0 +404.9, 185.0 +404.1, 160.0 +401.5, 151.0 +399.4, 744.0 +398.0, 456.0 +394.4, 1055.0 +384.4, 331.0 +382.0, 486.0 +381.1, 202.0 +378.2, 186.0 +373.0, 329.0 +369.9, 181.0 +369.0, 173.0 +368.1, 266.0 +367.2, 196.0 +366.8, 253.0 +365.9, 150.0 +365.2, 263.0 +363.7, 410.0 +362.3, 728.0 +359.7, 286.0 +359.1, 711.0 +352.9, 244.0 +349.4, 684.0 +346.1, 300.0 +344.9, 281.0 +343.7, 395.0 +343.3, 178.0 +338.2, 219.0 +337.0, 874.0 +335.9, 151.0 +334.7, 667.0 +333.9, 237.0 +333.3, 215.0 +332.1, 434.0 +330.3, 474.0 +328.9, 152.0 +327.1, 1308.0 +326.3, 453.0 +325.1, 1981.0 +324.1, 1048.0 +322.2, 475.0 +320.2, 863.0 +319.8, 1288.0 +315.0, 225.0 +314.1, 169.0 +312.9, 336.0 +311.0, 486.0 +310.0, 307.0 +309.3, 380.0 +308.4, 284.0 +308.1, 241.0 +305.9, 189.0 +304.8, 331.0 +304.0, 375.0 +303.1, 191.0 +300.2, 244.0 +298.4, 1099.0 +296.8, 179.0 +295.1, 818.0 +294.0, 373.0 +293.4, 383.0 +291.0, 853.0 +289.2, 711.0 +287.1, 624.0 +284.2, 205.0 +283.0, 193.0 +280.9, 1013.0 +279.8, 655.0 +279.0, 2277.0 +277.1, 502.0 +276.4, 603.0 +276.0, 755.0 +275.1, 364.0 +274.2, 751.0 +272.1, 619.0 +270.3, 465.0 +268.9, 553.0 +268.5, 233.0 +268.1, 378.0 +267.2, 259.0 +265.9, 269.0 +264.3, 416.0 +263.1, 384.0 +262.2, 673.0 +259.9, 587.0 +258.0, 164.0 +256.2, 497.0 +255.1, 348.0 +253.7, 180.0 +251.3, 258.0 +249.9, 392.0 +246.9, 214.0 +243.0, 609.0 +242.3, 482.0 +241.3, 314.0 +240.0, 585.0 +239.2, 336.0 +237.3, 482.0 +235.0, 1109.0 +234.1, 530.0 +233.0, 172.0 +232.4, 1119.0 +231.8, 392.0 +230.8, 908.0 +229.9, 1187.0 +229.0, 217.0 +228.3, 499.0 +227.1, 154.0 +225.2, 1624.0 +224.6, 283.0 +223.9, 500.0 +223.4, 200.0 +222.1, 757.0 +219.7, 382.0 +217.0, 239.0 +214.2, 328.0 +213.0, 985.0 +212.0, 1169.0 +209.9, 151.0 +209.5, 219.0 +208.0, 280.0 +207.0, 248.0 +205.4, 382.0 +203.3, 245.0 +200.9, 350.0 +200.3, 823.0 +199.2, 153.0 +196.9, 168.0 +195.8, 609.0 +195.1, 1483.0 +193.8, 837.0 +193.1, 384.0 +192.3, 458.0 +191.1, 483.0 +190.2, 280.0 +188.9, 771.0 +187.9, 200.0 +187.2, 1383.0 +186.1, 11275.0 +185.4, 715.0 +184.9, 1464.0 +184.1, 739.0 +183.4, 174.0 +182.3, 550.0 +181.0, 171.0 +178.1, 9965.0 +177.1, 86952.0 +175.8, 352.0 +174.1, 319.0 +171.9, 749.0 +171.1, 178.0 +170.5, 278.0 +169.9, 421.0 +169.2, 602.0 +167.7, 427.0 +167.2, 287.0 +166.1, 796.0 +165.1, 416.0 +163.7, 1329.0 +163.2, 359.0 +162.3, 467.0 +161.9, 513.0 +161.3, 230.0 +160.6, 447.0 +159.0, 198.0 +158.3, 473.0 +157.1, 885.0 +155.7, 1012.0 +155.2, 894.0 +154.0, 3689.0 +152.9, 238.0 +152.1, 342.0 +151.2, 4108.0 +150.1, 39176.0 +148.8, 318.0 +147.0, 441.0 +146.0, 738.0 +145.0, 327.0 +143.9, 543.0 +141.9, 383.0 +139.2, 330.0 +138.1, 686.0 +137.0, 241.0 +136.4, 192.0 +136.0, 204.0 +135.1, 154.0 +133.0, 1121.0 +132.0, 252.0 +130.8, 312.0 +130.4, 762.0 +129.1, 300.0 +125.9, 492.0 +125.2, 993.0 +124.8, 421.0 +124.1, 4436.0 +123.1, 1898.0 +122.0, 2503.0 +121.1, 21712.0 +120.1, 42528.0 +119.1, 544320.0 +116.8, 514.0 +116.4, 791.0 +115.9, 755.0 +114.0, 191.0 +112.0, 657.0 +111.2, 186.0 +110.1, 682.0 +109.0, 152.0 +107.8, 645.0 +107.2, 323.0 +106.1, 196.0 +105.0, 306.0 +104.2, 371.0 +103.4, 449.0 +102.0, 752.0 +101.1, 883.0 +99.8, 657.0 +98.9, 420.0 +98.2, 343.0 +97.2, 292.0 +94.4, 581.0 +93.9, 760.0 +93.1, 2213.0 +92.2, 770.0 +91.1, 23080.0 +88.9, 889.0 +88.2, 14584.0 +87.2, 1182.0 +86.7, 846.0 +86.0, 256.0 +85.2, 1623.0 +84.1, 222.0 +83.3, 400.0 +81.0, 2679.0 +79.9, 395.0 +79.1, 25344.0 +77.2, 417.0 +75.4, 182.0 +74.1, 3505.0 +72.8, 158.0 +71.2, 158.0 +70.3, 543.0 +67.4, 165.0 +65.9, 317.0 +65.0, 701.0 +64.1, 537.0 +63.1, 5241.0 +62.2, 239.0 +61.0, 619.0 +60.2, 10105.0 +##PAGE=T= 1.2321833333333334 +##XYDATA=(XY..XY) +990.2, 164.0 +834.7, 333.0 +832.9, 209.0 +775.6, 478.0 +765.2, 306.0 +714.6, 360.0 +712.6, 243.0 +613.8, 263.0 +598.6, 429.0 +588.5, 224.0 +565.8, 214.0 +548.2, 243.0 +522.0, 401.0 +521.6, 436.0 +514.6, 247.0 +495.4, 162.0 +481.2, 375.0 +464.2, 238.0 +460.6, 363.0 +448.8, 164.0 +444.0, 209.0 +433.0, 258.0 +430.2, 521.0 +423.9, 290.0 +418.2, 375.0 +415.4, 302.0 +412.0, 1004.0 +409.2, 236.0 +408.3, 765.0 +404.9, 365.0 +399.4, 672.0 +398.0, 357.0 +394.5, 675.0 +394.0, 233.0 +385.1, 154.0 +384.4, 422.0 +382.0, 599.0 +381.1, 163.0 +378.2, 231.0 +373.1, 178.0 +369.9, 357.0 +369.0, 506.0 +367.2, 266.0 +365.9, 285.0 +365.2, 211.0 +364.1, 150.0 +363.7, 191.0 +362.3, 564.0 +361.1, 150.0 +359.7, 363.0 +359.1, 407.0 +354.2, 178.0 +349.5, 739.0 +346.1, 432.0 +343.8, 508.0 +343.2, 441.0 +341.0, 238.0 +338.3, 326.0 +337.8, 159.0 +336.9, 883.0 +335.9, 289.0 +334.7, 541.0 +333.9, 488.0 +333.3, 269.0 +332.1, 556.0 +330.3, 233.0 +329.0, 164.0 +327.1, 1015.0 +326.3, 355.0 +325.2, 2199.0 +324.1, 757.0 +323.5, 164.0 +322.2, 371.0 +320.3, 935.0 +319.8, 1483.0 +319.4, 275.0 +314.1, 194.0 +313.0, 748.0 +311.0, 237.0 +310.0, 385.0 +309.3, 206.0 +308.0, 347.0 +304.8, 242.0 +304.1, 308.0 +300.2, 152.0 +298.4, 1431.0 +297.4, 249.0 +296.8, 590.0 +295.2, 1066.0 +294.2, 176.0 +293.4, 490.0 +291.0, 1140.0 +289.2, 551.0 +284.2, 341.0 +280.9, 1317.0 +279.9, 560.0 +279.0, 2064.0 +277.5, 157.0 +277.1, 1053.0 +276.0, 1182.0 +275.0, 783.0 +274.1, 875.0 +272.9, 187.0 +272.0, 859.0 +271.2, 306.0 +270.3, 364.0 +268.9, 714.0 +268.1, 190.0 +267.2, 538.0 +265.9, 447.0 +264.3, 207.0 +263.1, 441.0 +262.1, 442.0 +259.9, 457.0 +258.5, 220.0 +256.2, 393.0 +255.0, 515.0 +253.3, 221.0 +251.3, 207.0 +250.1, 466.0 +246.9, 431.0 +242.9, 474.0 +242.3, 412.0 +241.8, 228.0 +241.3, 151.0 +240.0, 474.0 +239.2, 516.0 +237.3, 410.0 +235.0, 1079.0 +234.1, 413.0 +232.2, 1061.0 +230.8, 500.0 +229.9, 951.0 +229.0, 440.0 +228.1, 346.0 +225.2, 796.0 +224.0, 306.0 +223.4, 501.0 +222.0, 793.0 +219.6, 601.0 +217.3, 270.0 +214.9, 233.0 +213.8, 274.0 +213.0, 1704.0 +212.0, 1537.0 +210.9, 169.0 +206.3, 189.0 +205.4, 192.0 +202.0, 260.0 +200.3, 772.0 +195.7, 246.0 +195.1, 1352.0 +193.8, 643.0 +193.1, 269.0 +192.3, 374.0 +191.1, 622.0 +190.2, 223.0 +188.9, 604.0 +187.9, 394.0 +187.3, 966.0 +186.1, 9804.0 +184.8, 1093.0 +182.3, 292.0 +181.9, 308.0 +179.1, 461.0 +178.1, 6990.0 +177.1, 62064.0 +175.8, 426.0 +174.2, 278.0 +172.1, 529.0 +170.6, 371.0 +169.9, 172.0 +169.2, 469.0 +167.7, 592.0 +167.2, 228.0 +166.3, 291.0 +165.9, 327.0 +165.1, 498.0 +164.1, 1180.0 +163.2, 496.0 +162.3, 819.0 +161.2, 388.0 +159.0, 165.0 +158.3, 315.0 +157.1, 706.0 +156.6, 238.0 +155.7, 985.0 +155.2, 734.0 +154.0, 2557.0 +152.9, 300.0 +152.1, 356.0 +151.3, 2419.0 +150.1, 27688.0 +147.1, 638.0 +146.3, 310.0 +146.0, 309.0 +145.0, 167.0 +143.9, 415.0 +143.1, 172.0 +141.8, 298.0 +139.1, 412.0 +138.1, 439.0 +137.1, 208.0 +136.0, 245.0 +135.0, 160.0 +133.0, 794.0 +132.0, 435.0 +130.2, 773.0 +129.1, 621.0 +128.5, 288.0 +125.9, 238.0 +125.2, 440.0 +124.8, 331.0 +124.1, 2598.0 +123.1, 1698.0 +122.0, 1772.0 +121.1, 15443.0 +120.1, 34808.0 +119.1, 428096.0 +116.8, 401.0 +116.4, 315.0 +115.9, 494.0 +112.1, 689.0 +111.2, 361.0 +110.1, 635.0 +109.0, 293.0 +107.8, 500.0 +107.2, 243.0 +105.0, 398.0 +104.1, 355.0 +103.4, 338.0 +102.0, 432.0 +101.1, 507.0 +99.8, 450.0 +98.9, 901.0 +98.2, 329.0 +97.2, 204.0 +95.1, 165.0 +94.4, 270.0 +94.0, 535.0 +93.0, 1721.0 +92.1, 570.0 +91.0, 17128.0 +89.3, 655.0 +88.9, 474.0 +88.2, 11701.0 +87.2, 799.0 +86.7, 502.0 +86.3, 277.0 +85.2, 1276.0 +83.3, 492.0 +81.0, 1423.0 +79.9, 359.0 +79.1, 25160.0 +77.0, 367.0 +74.1, 2838.0 +71.2, 277.0 +70.3, 406.0 +66.0, 232.0 +65.0, 882.0 +64.1, 708.0 +63.1, 4237.0 +61.0, 432.0 +60.2, 8959.0 +55.4, 255.0 +##PAGE=T= 1.2478166666666666 +##XYDATA=(XY..XY) +990.2, 203.0 +834.7, 170.0 +832.9, 168.0 +775.6, 374.0 +765.2, 388.0 +718.2, 229.0 +702.9, 208.0 +663.4, 263.0 +656.9, 184.0 +613.8, 333.0 +598.6, 212.0 +588.5, 454.0 +548.2, 306.0 +522.0, 200.0 +521.6, 339.0 +515.0, 232.0 +481.2, 190.0 +464.2, 150.0 +461.9, 279.0 +460.6, 181.0 +449.9, 157.0 +448.8, 318.0 +435.1, 163.0 +433.0, 207.0 +430.2, 254.0 +423.9, 151.0 +418.2, 189.0 +415.4, 157.0 +412.0, 434.0 +411.4, 198.0 +408.3, 441.0 +404.9, 466.0 +399.4, 392.0 +398.5, 277.0 +398.0, 181.0 +394.5, 491.0 +394.0, 311.0 +392.9, 155.0 +385.1, 296.0 +384.4, 331.0 +382.0, 456.0 +378.2, 186.0 +369.9, 456.0 +369.0, 811.0 +367.3, 293.0 +365.9, 361.0 +363.0, 176.0 +362.3, 271.0 +361.1, 287.0 +359.7, 287.0 +357.3, 201.0 +354.2, 221.0 +349.5, 532.0 +346.1, 404.0 +343.8, 401.0 +343.1, 683.0 +341.0, 300.0 +338.3, 337.0 +337.8, 309.0 +337.0, 673.0 +335.9, 419.0 +334.7, 280.0 +333.9, 629.0 +333.3, 214.0 +332.1, 433.0 +329.0, 202.0 +327.1, 657.0 +326.3, 180.0 +325.2, 1668.0 +324.1, 386.0 +323.5, 321.0 +323.1, 227.0 +322.3, 247.0 +320.3, 785.0 +319.8, 1063.0 +319.4, 343.0 +314.1, 152.0 +313.0, 1094.0 +310.8, 153.0 +310.0, 301.0 +309.3, 224.0 +308.0, 490.0 +304.2, 397.0 +303.8, 177.0 +303.3, 237.0 +298.4, 1121.0 +297.4, 440.0 +296.8, 986.0 +295.2, 1439.0 +294.2, 151.0 +293.4, 384.0 +291.0, 919.0 +289.2, 291.0 +287.9, 205.0 +286.8, 154.0 +285.3, 199.0 +284.3, 604.0 +283.3, 260.0 +282.2, 250.0 +280.9, 1011.0 +280.1, 512.0 +279.0, 1367.0 +277.1, 1360.0 +276.0, 1189.0 +275.1, 1219.0 +274.1, 814.0 +272.9, 421.0 +272.0, 1025.0 +271.2, 631.0 +270.3, 183.0 +268.9, 666.0 +267.2, 695.0 +265.9, 574.0 +263.1, 434.0 +262.0, 440.0 +259.9, 265.0 +258.5, 275.0 +258.1, 329.0 +256.2, 342.0 +255.0, 844.0 +253.2, 541.0 +251.3, 391.0 +250.1, 920.0 +246.9, 552.0 +245.3, 328.0 +244.2, 151.0 +242.9, 345.0 +242.4, 294.0 +241.8, 317.0 +240.0, 247.0 +239.2, 580.0 +238.1, 152.0 +237.2, 398.0 +235.0, 676.0 +234.1, 281.0 +232.2, 1186.0 +231.0, 221.0 +229.9, 491.0 +229.0, 669.0 +228.0, 663.0 +226.8, 448.0 +225.2, 191.0 +224.0, 648.0 +223.4, 826.0 +222.0, 867.0 +219.6, 730.0 +217.3, 548.0 +214.9, 475.0 +213.8, 218.0 +213.0, 2122.0 +212.1, 1848.0 +210.9, 206.0 +209.1, 220.0 +206.3, 374.0 +203.1, 162.0 +202.0, 537.0 +201.4, 197.0 +200.2, 498.0 +196.8, 251.0 +196.2, 189.0 +195.1, 1180.0 +193.8, 306.0 +193.1, 214.0 +192.2, 223.0 +191.1, 484.0 +189.0, 409.0 +187.9, 641.0 +187.3, 654.0 +186.1, 7717.0 +184.7, 860.0 +181.9, 457.0 +181.2, 268.0 +179.1, 550.0 +178.1, 6022.0 +177.2, 47312.0 +175.8, 420.0 +174.7, 154.0 +174.2, 197.0 +172.1, 650.0 +170.6, 352.0 +169.2, 231.0 +167.7, 528.0 +166.4, 221.0 +165.8, 194.0 +165.0, 452.0 +164.1, 1663.0 +163.2, 507.0 +162.3, 941.0 +161.1, 560.0 +158.4, 150.0 +157.1, 422.0 +156.6, 299.0 +155.7, 661.0 +155.2, 908.0 +154.0, 1920.0 +152.9, 238.0 +152.1, 373.0 +151.3, 1878.0 +150.1, 20664.0 +147.1, 783.0 +146.1, 296.0 +144.0, 259.0 +143.1, 267.0 +141.8, 252.0 +139.1, 430.0 +138.0, 259.0 +137.1, 251.0 +136.0, 196.0 +135.0, 198.0 +133.0, 540.0 +132.0, 579.0 +130.8, 279.0 +130.1, 1166.0 +129.1, 1079.0 +128.5, 467.0 +124.8, 241.0 +124.2, 1096.0 +123.1, 1428.0 +122.0, 1322.0 +121.0, 12072.0 +120.1, 26352.0 +119.1, 337664.0 +116.8, 201.0 +115.9, 300.0 +112.1, 817.0 +111.2, 490.0 +110.1, 557.0 +109.0, 373.0 +107.8, 243.0 +107.2, 324.0 +105.0, 466.0 +104.1, 345.0 +103.4, 164.0 +102.0, 264.0 +101.1, 618.0 +100.2, 236.0 +99.8, 200.0 +98.9, 1170.0 +98.3, 289.0 +95.1, 547.0 +94.0, 294.0 +93.0, 1052.0 +92.1, 316.0 +91.0, 12653.0 +89.3, 758.0 +88.1, 9226.0 +87.2, 333.0 +86.8, 290.0 +86.2, 386.0 +85.2, 1481.0 +83.8, 269.0 +83.3, 446.0 +81.1, 568.0 +80.7, 557.0 +79.9, 555.0 +79.1, 27128.0 +77.0, 447.0 +74.1, 2094.0 +73.6, 179.0 +71.2, 341.0 +70.2, 522.0 +66.1, 191.0 +65.0, 688.0 +64.1, 987.0 +63.1, 3213.0 +61.3, 265.0 +60.2, 9538.0 +56.7, 204.0 +55.4, 322.0 +##PAGE=T= 1.26345 +##XYDATA=(XY..XY) +990.2, 165.0 +841.5, 151.0 +775.6, 189.0 +773.0, 271.0 +765.2, 306.0 +718.2, 465.0 +702.9, 417.0 +663.4, 596.0 +656.8, 470.0 +613.8, 264.0 +588.5, 583.0 +548.2, 243.0 +530.9, 173.0 +521.6, 172.0 +515.0, 292.0 +483.4, 238.0 +472.7, 173.0 +463.0, 204.0 +461.9, 354.0 +449.9, 302.0 +448.8, 404.0 +445.2, 163.0 +439.3, 218.0 +435.1, 201.0 +422.5, 165.0 +420.0, 322.0 +411.4, 399.0 +408.2, 240.0 +404.9, 447.0 +398.5, 351.0 +394.5, 392.0 +394.0, 393.0 +392.9, 191.0 +385.2, 391.0 +384.4, 169.0 +383.0, 263.0 +382.0, 225.0 +380.0, 501.0 +369.9, 357.0 +369.0, 837.0 +367.3, 219.0 +366.6, 261.0 +365.9, 286.0 +365.2, 154.0 +361.1, 362.0 +359.8, 153.0 +357.3, 361.0 +356.3, 211.0 +354.2, 177.0 +353.2, 218.0 +349.5, 258.0 +348.4, 322.0 +346.1, 252.0 +344.1, 242.0 +343.1, 748.0 +341.0, 239.0 +340.3, 160.0 +338.3, 232.0 +337.8, 393.0 +337.0, 409.0 +335.8, 422.0 +333.9, 489.0 +333.1, 150.0 +332.1, 229.0 +330.0, 282.0 +329.0, 186.0 +328.4, 152.0 +327.2, 532.0 +326.9, 533.0 +325.2, 894.0 +323.5, 408.0 +323.1, 400.0 +322.4, 398.0 +320.4, 520.0 +319.8, 490.0 +319.4, 269.0 +316.1, 170.0 +314.2, 193.0 +313.0, 1237.0 +310.8, 294.0 +310.0, 156.0 +309.3, 223.0 +308.0, 486.0 +304.2, 388.0 +303.8, 343.0 +303.3, 370.0 +298.9, 166.0 +298.4, 558.0 +297.4, 575.0 +296.8, 1202.0 +296.1, 221.0 +295.2, 1568.0 +293.9, 201.0 +293.4, 194.0 +292.1, 163.0 +291.1, 500.0 +287.9, 284.0 +287.3, 228.0 +286.8, 259.0 +285.3, 214.0 +284.3, 764.0 +283.3, 422.0 +282.2, 485.0 +280.9, 469.0 +280.2, 549.0 +279.1, 712.0 +277.1, 1045.0 +275.9, 830.0 +275.1, 1427.0 +274.1, 855.0 +273.0, 653.0 +272.0, 864.0 +271.2, 1019.0 +268.9, 524.0 +267.7, 292.0 +267.2, 539.0 +265.9, 447.0 +262.9, 424.0 +262.0, 329.0 +259.6, 167.0 +258.1, 689.0 +256.1, 400.0 +255.1, 1201.0 +253.2, 879.0 +251.3, 671.0 +250.1, 1196.0 +246.9, 429.0 +245.3, 660.0 +244.2, 185.0 +242.9, 290.0 +242.4, 384.0 +241.8, 368.0 +239.2, 419.0 +238.0, 394.0 +237.2, 689.0 +235.0, 229.0 +234.0, 218.0 +232.2, 922.0 +231.1, 405.0 +230.3, 209.0 +229.0, 693.0 +228.0, 1013.0 +226.8, 733.0 +224.0, 844.0 +223.4, 892.0 +222.4, 550.0 +221.9, 884.0 +219.6, 548.0 +217.3, 723.0 +214.9, 611.0 +213.0, 1928.0 +212.1, 2391.0 +210.9, 167.0 +210.0, 178.0 +209.1, 447.0 +206.3, 477.0 +203.1, 312.0 +202.0, 736.0 +201.4, 397.0 +200.2, 243.0 +196.8, 535.0 +196.2, 260.0 +195.2, 1016.0 +192.1, 249.0 +191.1, 238.0 +189.1, 440.0 +187.9, 705.0 +187.2, 850.0 +186.2, 6459.0 +185.1, 926.0 +184.7, 737.0 +181.9, 454.0 +181.2, 339.0 +179.1, 562.0 +178.1, 6454.0 +177.2, 41648.0 +175.8, 465.0 +174.7, 299.0 +172.2, 860.0 +170.7, 287.0 +167.8, 352.0 +165.0, 346.0 +164.1, 2060.0 +163.2, 427.0 +162.3, 726.0 +161.1, 639.0 +158.8, 273.0 +157.0, 235.0 +156.6, 238.0 +156.1, 191.0 +155.7, 384.0 +155.2, 1123.0 +154.1, 2414.0 +152.1, 388.0 +151.2, 2489.0 +150.1, 20624.0 +149.0, 164.0 +147.1, 749.0 +146.1, 369.0 +144.1, 234.0 +143.1, 405.0 +141.8, 171.0 +139.1, 311.0 +137.1, 286.0 +135.0, 248.0 +133.2, 755.0 +132.0, 477.0 +130.9, 294.0 +130.1, 1240.0 +129.2, 1574.0 +128.5, 498.0 +124.8, 194.0 +124.2, 809.0 +123.8, 490.0 +123.1, 1033.0 +122.6, 231.0 +122.0, 882.0 +121.1, 10936.0 +120.1, 18856.0 +119.1, 264000.0 +116.1, 537.0 +115.0, 216.0 +112.2, 642.0 +111.1, 509.0 +110.1, 448.0 +109.0, 296.0 +108.1, 239.0 +107.1, 370.0 +105.1, 511.0 +104.1, 1041.0 +102.0, 338.0 +101.1, 784.0 +100.5, 162.0 +100.2, 227.0 +98.9, 900.0 +98.4, 259.0 +95.1, 943.0 +93.9, 185.0 +93.1, 628.0 +92.2, 176.0 +91.0, 9938.0 +89.2, 773.0 +88.1, 8730.0 +86.7, 322.0 +86.2, 361.0 +85.2, 1877.0 +83.8, 341.0 +83.3, 294.0 +82.6, 157.0 +81.2, 941.0 +80.6, 358.0 +80.0, 823.0 +79.1, 28464.0 +76.9, 601.0 +75.0, 247.0 +74.1, 1456.0 +73.0, 212.0 +71.2, 269.0 +70.2, 418.0 +66.1, 155.0 +65.0, 339.0 +64.0, 1127.0 +63.0, 2649.0 +61.4, 249.0 +60.1, 10768.0 +56.7, 272.0 +55.4, 301.0 +`; + +export default lcMsMzChemstationJcamp; diff --git a/src/__tests__/fixtures/lc_ms_jcamp_tic_chemstation.js b/src/__tests__/fixtures/lc_ms_jcamp_tic_chemstation.js new file mode 100644 index 00000000..5810b3ac --- /dev/null +++ b/src/__tests__/fixtures/lc_ms_jcamp_tic_chemstation.js @@ -0,0 +1,849 @@ +const lcMsTicChemstationJcamp = ` +##TITLE=Spectrum +##JCAMP-DX=5.00 $$ chemotion-converter-app (1.8.0) +##DATA TYPE=MASS TIC +##DATA CLASS=XYPOINTS +##ORIGIN= +##OWNER= +##XUNITS=MINUTES +##YUNITS=Intensity +##FIRSTX=1.1228166666666666 +##LASTX=13.982933333333333 +##MINX=1.1228166666666666 +##MAXX=13.982933333333333 +##MINY=477198.0 +##MAXY=4132871.0 +##NPOINTS=824 +##FIRSTY=3027291.0 +##XUNITS=MINUTES +##YUNITS=Intensity +##XYDATA=(XY..XY) +1.1228166666666666, 3027291.0 +1.1384333333333334, 2614443.0 +1.1540666666666666, 2082582.0 +1.1696833333333334, 1742539.0 +1.1853166666666666, 1478134.0 +1.2009333333333334, 1230975.0 +1.2165666666666666, 990282.0 +1.2321833333333334, 785095.0 +1.2478166666666666, 644776.0 +1.26345, 557032.0 +1.2790666666666666, 512268.0 +1.2947, 528879.0 +1.3103166666666666, 589122.0 +1.32595, 658357.0 +1.3415666666666666, 728136.0 +1.3572, 838817.0 +1.3728166666666666, 1021997.0 +1.38845, 1209182.0 +1.4040833333333333, 1341838.0 +1.4197, 1379396.0 +1.4353333333333333, 1335289.0 +1.45095, 1232215.0 +1.4665833333333333, 1085246.0 +1.4822, 914457.0 +1.4978333333333333, 787833.0 +1.51345, 701870.0 +1.5290833333333333, 663660.0 +1.5447166666666667, 651376.0 +1.5603333333333333, 634980.0 +1.5759666666666667, 611165.0 +1.5915833333333333, 575253.0 +1.6072166666666667, 545924.0 +1.6228333333333333, 541170.0 +1.6384666666666667, 537490.0 +1.6540833333333333, 545300.0 +1.6697166666666667, 570381.0 +1.68535, 597520.0 +1.7009666666666667, 630019.0 +1.7166, 697538.0 +1.7322166666666667, 779904.0 +1.74785, 862025.0 +1.7634666666666667, 892511.0 +1.7791, 864337.0 +1.7947166666666667, 781954.0 +1.81035, 682217.0 +1.8259833333333333, 592779.0 +1.8416, 536641.0 +1.8572333333333333, 512153.0 +1.87285, 506504.0 +1.8884833333333333, 504130.0 +1.9041, 504854.0 +1.9197333333333333, 495848.0 +1.93535, 488605.0 +1.9509833333333333, 483000.0 +1.9666166666666667, 480113.0 +1.9822333333333333, 479653.0 +1.9978666666666667, 477198.0 +2.0134833333333333, 485124.0 +2.0291166666666665, 501710.0 +2.0447333333333333, 530744.0 +2.0603666666666665, 544189.0 +2.0759833333333333, 546513.0 +2.0916166666666665, 537257.0 +2.10725, 521294.0 +2.1228666666666665, 513657.0 +2.1385, 507896.0 +2.1541166666666665, 508118.0 +2.16975, 500653.0 +2.1853666666666665, 492561.0 +2.201, 488516.0 +2.2166166666666665, 486260.0 +2.23225, 480984.0 +2.2478833333333332, 567749.0 +2.2635, 1094638.0 +2.2791333333333332, 2121084.0 +2.29475, 3250745.0 +2.3103833333333332, 3977718.0 +2.326, 4132871.0 +2.3416333333333332, 3977565.0 +2.35725, 3822055.0 +2.3728833333333332, 3695496.0 +2.388516666666667, 3577773.0 +2.4041333333333332, 3505302.0 +2.419766666666667, 3536560.0 +2.4353833333333332, 3620983.0 +2.451016666666667, 3730384.0 +2.4666333333333332, 3778269.0 +2.482266666666667, 3779607.0 +2.4978833333333332, 3699801.0 +2.513516666666667, 3563842.0 +2.52915, 3387448.0 +2.544766666666667, 3265793.0 +2.5604, 3230421.0 +2.576016666666667, 3252470.0 +2.59165, 3261668.0 +2.607266666666667, 3221924.0 +2.6229, 3153837.0 +2.638516666666667, 3083530.0 +2.65415, 2987816.0 +2.669783333333333, 2921710.0 +2.6854, 2893382.0 +2.701033333333333, 2881821.0 +2.71665, 2851241.0 +2.732283333333333, 2805834.0 +2.7479, 2781692.0 +2.763533333333333, 2791255.0 +2.77915, 2781220.0 +2.794783333333333, 2709204.0 +2.810416666666667, 2612720.0 +2.826033333333333, 2528109.0 +2.841666666666667, 2511209.0 +2.857283333333333, 2520025.0 +2.872916666666667, 2535926.0 +2.888533333333333, 2508578.0 +2.904166666666667, 2461555.0 +2.919783333333333, 2422748.0 +2.935416666666667, 2425836.0 +2.95105, 2418145.0 +2.966666666666667, 2405712.0 +2.9823, 2374387.0 +2.997916666666667, 2365666.0 +3.01355, 2345078.0 +3.029166666666667, 2311669.0 +3.0448, 2238755.0 +3.060416666666667, 2167696.0 +3.07605, 2109982.0 +3.091683333333333, 2091036.0 +3.1073, 2082461.0 +3.122933333333333, 2063997.0 +3.13855, 2069826.0 +3.154183333333333, 2029586.0 +3.1698, 1981975.0 +3.185433333333333, 1906529.0 +3.20105, 1860407.0 +3.216683333333333, 1834368.0 +3.2323166666666667, 1834444.0 +3.247933333333333, 1821507.0 +3.2635666666666667, 1811418.0 +3.279183333333333, 1781011.0 +3.2948166666666667, 1729245.0 +3.310433333333333, 1679472.0 +3.3260666666666667, 1666131.0 +3.341683333333333, 1679344.0 +3.3573166666666667, 1715558.0 +3.372933333333333, 1727502.0 +3.3885666666666667, 1726321.0 +3.4042, 1708895.0 +3.4198166666666667, 1682731.0 +3.43545, 1632539.0 +3.4510666666666667, 1578627.0 +3.4667, 1536472.0 +3.4823166666666667, 1531451.0 +3.49795, 1544597.0 +3.5135833333333335, 1543167.0 +3.5292, 1523978.0 +3.5448333333333335, 1500362.0 +3.56045, 1507339.0 +3.5760833333333335, 1519666.0 +3.5917, 1525841.0 +3.6073333333333335, 1546951.0 +3.62295, 1505702.0 +3.6385833333333335, 1474489.0 +3.6542, 1446277.0 +3.6698333333333335, 1407618.0 +3.6854666666666667, 1381116.0 +3.7010833333333335, 1363704.0 +3.7167166666666667, 1333686.0 +3.7323333333333335, 1293671.0 +3.7479666666666667, 1254680.0 +3.7635833333333335, 1225866.0 +3.7792166666666667, 1217591.0 +3.7948333333333335, 1216820.0 +3.8104666666666667, 1201668.0 +3.8261, 1182382.0 +3.8417166666666667, 1192744.0 +3.85735, 1189250.0 +3.8729666666666667, 1151714.0 +3.8886, 1118104.0 +3.9042166666666667, 1080910.0 +3.91985, 1044189.0 +3.9354666666666667, 1038374.0 +3.9511, 1019469.0 +3.9667333333333334, 1000380.0 +3.98235, 987682.0 +3.9979833333333334, 962935.0 +4.0136, 934536.0 +4.029233333333333, 911706.0 +4.04485, 877584.0 +4.060483333333333, 849361.0 +4.0761, 833012.0 +4.091733333333333, 822915.0 +4.107366666666667, 796870.0 +4.122983333333333, 759443.0 +4.138616666666667, 716767.0 +4.154233333333333, 690625.0 +4.169866666666667, 672528.0 +4.185483333333333, 653928.0 +4.201116666666667, 632407.0 +4.216733333333333, 598961.0 +4.232366666666667, 567746.0 +4.248, 549265.0 +4.263616666666667, 538651.0 +4.27925, 524668.0 +4.294866666666667, 509193.0 +4.3105, 496929.0 +4.326116666666667, 500091.0 +4.34175, 501994.0 +4.357366666666667, 514138.0 +4.373, 514169.0 +4.388633333333333, 515864.0 +4.40425, 503415.0 +4.419883333333333, 492056.0 +4.4355, 487509.0 +4.451133333333333, 484782.0 +4.46675, 488834.0 +4.482383333333333, 499331.0 +4.498, 503866.0 +4.513633333333333, 495993.0 +4.5292666666666666, 482388.0 +4.544883333333333, 478108.0 +4.5605166666666666, 482133.0 +4.576133333333333, 496253.0 +4.5917666666666666, 497054.0 +4.607383333333333, 507124.0 +4.6230166666666666, 514423.0 +4.638633333333333, 520555.0 +4.6542666666666666, 516793.0 +4.6699, 521496.0 +4.6855166666666666, 524679.0 +4.70115, 525565.0 +4.7167666666666666, 522776.0 +4.7324, 526169.0 +4.7480166666666666, 523587.0 +4.76365, 522761.0 +4.7792666666666666, 526616.0 +4.7949, 533056.0 +4.810533333333334, 537231.0 +4.82615, 542475.0 +4.841783333333334, 545512.0 +4.8574, 549356.0 +4.873033333333334, 545543.0 +4.88865, 547490.0 +4.904283333333334, 539361.0 +4.9199, 536606.0 +4.935533333333334, 534892.0 +4.9511666666666665, 538026.0 +4.966783333333334, 538860.0 +4.9824166666666665, 558108.0 +4.998033333333334, 571710.0 +5.0136666666666665, 579944.0 +5.029283333333334, 580532.0 +5.0449166666666665, 572076.0 +5.060533333333334, 568173.0 +5.0761666666666665, 573605.0 +5.0918, 586438.0 +5.1074166666666665, 592043.0 +5.12305, 597088.0 +5.1386666666666665, 595058.0 +5.1543, 588554.0 +5.1699166666666665, 587815.0 +5.18555, 590679.0 +5.2011666666666665, 594384.0 +5.2168, 593084.0 +5.232433333333334, 586765.0 +5.24805, 572991.0 +5.263683333333334, 567962.0 +5.2793, 576558.0 +5.294933333333334, 598103.0 +5.31055, 621708.0 +5.326183333333334, 644920.0 +5.3418, 666362.0 +5.357433333333334, 679629.0 +5.373066666666666, 681871.0 +5.388683333333334, 676889.0 +5.404316666666666, 673815.0 +5.419933333333334, 676363.0 +5.435566666666666, 672539.0 +5.451183333333334, 668464.0 +5.466816666666666, 671287.0 +5.482433333333334, 674494.0 +5.498066666666666, 690529.0 +5.5137, 716464.0 +5.529316666666666, 732221.0 +5.54495, 735378.0 +5.560566666666666, 725853.0 +5.5762, 722418.0 +5.591816666666666, 728436.0 +5.60745, 750516.0 +5.623066666666666, 774033.0 +5.6387, 778783.0 +5.654333333333334, 765642.0 +5.66995, 767533.0 +5.685583333333334, 780458.0 +5.7012, 780830.0 +5.716833333333334, 790233.0 +5.73245, 802003.0 +5.748083333333334, 831979.0 +5.7637, 874803.0 +5.779333333333334, 927209.0 +5.794966666666666, 956723.0 +5.810583333333334, 947911.0 +5.826216666666666, 942123.0 +5.841833333333334, 943717.0 +5.857466666666666, 959656.0 +5.873083333333334, 969905.0 +5.888716666666666, 988802.0 +5.904333333333334, 987775.0 +5.919966666666666, 975049.0 +5.9356, 967765.0 +5.951216666666666, 988333.0 +5.96685, 1018846.0 +5.982466666666666, 1036367.0 +5.9981, 1051463.0 +6.013716666666666, 1054954.0 +6.02935, 1071748.0 +6.044966666666666, 1137288.0 +6.0606, 1216454.0 +6.076233333333334, 1262743.0 +6.09185, 1262913.0 +6.107483333333334, 1222788.0 +6.1231, 1212368.0 +6.138733333333334, 1224889.0 +6.15435, 1267633.0 +6.169983333333334, 1315717.0 +6.1856, 1360717.0 +6.201233333333334, 1395930.0 +6.216866666666666, 1399331.0 +6.232483333333334, 1401614.0 +6.248116666666666, 1419447.0 +6.263733333333334, 1424877.0 +6.279366666666666, 1442115.0 +6.294983333333334, 1440783.0 +6.310616666666666, 1448305.0 +6.326233333333334, 1462158.0 +6.341866666666666, 1496940.0 +6.3575, 1533902.0 +6.373116666666666, 1549829.0 +6.38875, 1556861.0 +6.404366666666666, 1573984.0 +6.42, 1601610.0 +6.435616666666666, 1643414.0 +6.45125, 1700486.0 +6.466866666666666, 1752432.0 +6.4825, 1791523.0 +6.4981333333333335, 1805182.0 +6.51375, 1809779.0 +6.5293833333333335, 1816863.0 +6.545, 1838288.0 +6.5606333333333335, 1846521.0 +6.57625, 1836179.0 +6.5918833333333335, 1771701.0 +6.6075, 1624129.0 +6.6231333333333335, 1411741.0 +6.638766666666666, 1194460.0 +6.6543833333333335, 1045545.0 +6.670016666666666, 963927.0 +6.6856333333333335, 936428.0 +6.701266666666666, 925647.0 +6.7168833333333335, 927296.0 +6.732516666666666, 918393.0 +6.7481333333333335, 911196.0 +6.763766666666666, 918224.0 +6.7794, 923920.0 +6.795016666666666, 941422.0 +6.81065, 949774.0 +6.826266666666666, 954326.0 +6.8419, 951391.0 +6.857516666666666, 953815.0 +6.87315, 963994.0 +6.888766666666666, 985386.0 +6.9044, 993285.0 +6.9200333333333335, 988325.0 +6.93565, 978162.0 +6.9512833333333335, 990768.0 +6.9669, 1008097.0 +6.9825333333333335, 1022499.0 +6.99815, 1025604.0 +7.0137833333333335, 1017623.0 +7.0294, 1023656.0 +7.0450333333333335, 1034942.0 +7.060666666666667, 1046617.0 +7.0762833333333335, 1047073.0 +7.091916666666667, 1052869.0 +7.1075333333333335, 1040617.0 +7.123166666666667, 1020599.0 +7.1387833333333335, 994837.0 +7.154416666666667, 988807.0 +7.1700333333333335, 996655.0 +7.185666666666667, 1016500.0 +7.2013, 1022917.0 +7.216916666666667, 1006165.0 +7.23255, 985740.0 +7.248166666666667, 954512.0 +7.2638, 928716.0 +7.279416666666667, 900485.0 +7.29505, 889046.0 +7.310666666666667, 885434.0 +7.3263, 891300.0 +7.341933333333333, 908041.0 +7.35755, 942331.0 +7.373183333333333, 967922.0 +7.3888, 964411.0 +7.404433333333333, 950357.0 +7.42005, 954155.0 +7.435683333333333, 975609.0 +7.4513, 982689.0 +7.466933333333333, 997918.0 +7.482566666666667, 1008056.0 +7.498183333333333, 1034309.0 +7.513816666666667, 1043518.0 +7.529433333333333, 1069215.0 +7.545066666666667, 1077456.0 +7.560683333333333, 1072581.0 +7.576316666666667, 1049690.0 +7.591933333333333, 1027512.0 +7.607566666666667, 989609.0 +7.6232, 963781.0 +7.638816666666667, 960949.0 +7.65445, 965541.0 +7.670066666666667, 965037.0 +7.6857, 955544.0 +7.701316666666667, 937154.0 +7.71695, 934596.0 +7.732566666666667, 942224.0 +7.7482, 947721.0 +7.763833333333333, 947635.0 +7.77945, 917692.0 +7.795083333333333, 891851.0 +7.8107, 877575.0 +7.826333333333333, 875091.0 +7.84195, 871737.0 +7.857583333333333, 856706.0 +7.8732, 855489.0 +7.888833333333333, 849403.0 +7.904466666666667, 871359.0 +7.920083333333333, 889146.0 +7.935716666666667, 906418.0 +7.951333333333333, 919152.0 +7.966966666666667, 920090.0 +7.982583333333333, 923353.0 +7.998216666666667, 920744.0 +8.013833333333332, 925997.0 +8.029466666666666, 943905.0 +8.0451, 955196.0 +8.060716666666666, 962580.0 +8.07635, 956503.0 +8.091966666666666, 965084.0 +8.1076, 990140.0 +8.123216666666666, 1005665.0 +8.13885, 1017590.0 +8.154466666666666, 1003428.0 +8.1701, 982662.0 +8.185716666666666, 980715.0 +8.20135, 993517.0 +8.216983333333333, 1001491.0 +8.2326, 1011077.0 +8.248233333333333, 1026441.0 +8.26385, 1004456.0 +8.279483333333333, 972309.0 +8.2951, 965304.0 +8.310733333333333, 967268.0 +8.326366666666667, 974789.0 +8.341983333333333, 979619.0 +8.357616666666667, 991311.0 +8.373233333333333, 1008523.0 +8.388866666666667, 1040266.0 +8.404483333333333, 1066292.0 +8.420116666666667, 1083339.0 +8.435733333333333, 1097821.0 +8.451366666666667, 1089432.0 +8.466983333333333, 1100057.0 +8.482616666666667, 1091442.0 +8.49825, 1090298.0 +8.513866666666667, 1073300.0 +8.5295, 1066597.0 +8.545116666666667, 1067119.0 +8.56075, 1083095.0 +8.576366666666667, 1102409.0 +8.592, 1121049.0 +8.607616666666667, 1124128.0 +8.62325, 1116666.0 +8.638883333333334, 1112904.0 +8.6545, 1118485.0 +8.670133333333334, 1114523.0 +8.68575, 1092789.0 +8.701383333333334, 1083640.0 +8.717, 1081444.0 +8.732633333333334, 1103948.0 +8.74825, 1127493.0 +8.763883333333334, 1127583.0 +8.779516666666666, 1116046.0 +8.795133333333334, 1106494.0 +8.810766666666666, 1108317.0 +8.826383333333334, 1107114.0 +8.842016666666666, 1111896.0 +8.857633333333334, 1113666.0 +8.873266666666666, 1125209.0 +8.888883333333334, 1141975.0 +8.904516666666666, 1147064.0 +8.92015, 1126494.0 +8.935766666666666, 1100549.0 +8.9514, 1058374.0 +8.967016666666666, 1026308.0 +8.98265, 989858.0 +8.998266666666666, 980034.0 +9.0139, 987556.0 +9.029516666666666, 1001551.0 +9.04515, 1016437.0 +9.060783333333333, 1017225.0 +9.0764, 1018708.0 +9.092033333333333, 1000758.0 +9.10765, 991149.0 +9.123283333333333, 989861.0 +9.1389, 1003479.0 +9.154533333333333, 1024056.0 +9.17015, 1018166.0 +9.185783333333333, 1005859.0 +9.201416666666667, 997106.0 +9.217033333333333, 985671.0 +9.232666666666667, 1001174.0 +9.248283333333333, 1013208.0 +9.263916666666667, 1023296.0 +9.279533333333333, 1010283.0 +9.295166666666667, 1002577.0 +9.310783333333333, 1010931.0 +9.326416666666667, 1026435.0 +9.34205, 1039343.0 +9.357666666666667, 1049742.0 +9.3733, 1055874.0 +9.388916666666667, 1047890.0 +9.40455, 1031519.0 +9.420166666666667, 1019506.0 +9.4358, 1023747.0 +9.451416666666667, 1034092.0 +9.46705, 1051490.0 +9.482683333333334, 1077113.0 +9.4983, 1083682.0 +9.513933333333334, 1079585.0 +9.52955, 1077114.0 +9.545183333333334, 1085600.0 +9.5608, 1087000.0 +9.576433333333334, 1097770.0 +9.59205, 1102507.0 +9.607683333333334, 1121903.0 +9.623316666666666, 1133405.0 +9.638933333333334, 1158856.0 +9.654566666666666, 1183132.0 +9.670183333333334, 1197059.0 +9.685816666666666, 1222880.0 +9.701433333333334, 1240759.0 +9.717066666666666, 1238938.0 +9.732683333333334, 1243679.0 +9.748316666666666, 1253000.0 +9.76395, 1242141.0 +9.779566666666666, 1231530.0 +9.7952, 1201482.0 +9.810816666666666, 1193362.0 +9.82645, 1171899.0 +9.842066666666666, 1173737.0 +9.8577, 1231696.0 +9.873316666666666, 1347797.0 +9.88895, 1434291.0 +9.904583333333333, 1453707.0 +9.9202, 1382447.0 +9.935833333333333, 1277469.0 +9.95145, 1205125.0 +9.967083333333333, 1177083.0 +9.9827, 1147086.0 +9.998333333333333, 1142023.0 +10.01395, 1137902.0 +10.029583333333333, 1150956.0 +10.045216666666667, 1160440.0 +10.060833333333333, 1168620.0 +10.076466666666667, 1175778.0 +10.092083333333333, 1164629.0 +10.107716666666667, 1166742.0 +10.123333333333333, 1161222.0 +10.138966666666667, 1168422.0 +10.154583333333333, 1161706.0 +10.170216666666667, 1161649.0 +10.18585, 1184723.0 +10.201466666666667, 1216269.0 +10.2171, 1221462.0 +10.232716666666667, 1227623.0 +10.24835, 1236992.0 +10.263966666666667, 1233642.0 +10.2796, 1217614.0 +10.295216666666667, 1192735.0 +10.31085, 1195094.0 +10.326483333333334, 1202836.0 +10.3421, 1217982.0 +10.357733333333334, 1221286.0 +10.37335, 1209344.0 +10.388983333333334, 1204461.0 +10.4046, 1214838.0 +10.420233333333334, 1244749.0 +10.43585, 1262135.0 +10.451483333333334, 1259837.0 +10.467116666666668, 1257168.0 +10.482733333333334, 1285594.0 +10.498366666666668, 1309470.0 +10.513983333333334, 1310691.0 +10.529616666666668, 1284270.0 +10.545233333333334, 1267569.0 +10.560866666666668, 1247449.0 +10.576483333333334, 1236448.0 +10.592116666666668, 1260667.0 +10.60775, 1277927.0 +10.623366666666668, 1280237.0 +10.639, 1286564.0 +10.654616666666668, 1290367.0 +10.67025, 1309748.0 +10.685866666666668, 1325709.0 +10.7015, 1360970.0 +10.717116666666668, 1363843.0 +10.73275, 1366064.0 +10.748383333333333, 1370699.0 +10.764, 1385755.0 +10.779633333333333, 1385476.0 +10.79525, 1373836.0 +10.810883333333333, 1364274.0 +10.8265, 1368821.0 +10.842133333333333, 1389650.0 +10.85775, 1403245.0 +10.873383333333333, 1424796.0 +10.889016666666667, 1444802.0 +10.904633333333333, 1468361.0 +10.920266666666667, 1472111.0 +10.935883333333333, 1463500.0 +10.951516666666667, 1494173.0 +10.967133333333333, 1505478.0 +10.982766666666667, 1520155.0 +10.998383333333333, 1541873.0 +11.014016666666667, 1548807.0 +11.02965, 1515034.0 +11.045266666666667, 1501358.0 +11.0609, 1522980.0 +11.076516666666667, 1550070.0 +11.09215, 1573497.0 +11.107766666666667, 1556319.0 +11.1234, 1524676.0 +11.139016666666667, 1499015.0 +11.15465, 1499134.0 +11.170283333333334, 1526720.0 +11.1859, 1577171.0 +11.201533333333334, 1611298.0 +11.21715, 1651858.0 +11.232783333333334, 1681184.0 +11.2484, 1732876.0 +11.264033333333334, 1803696.0 +11.27965, 1870332.0 +11.295283333333334, 1905747.0 +11.310916666666667, 1926027.0 +11.326533333333334, 1982247.0 +11.342166666666667, 2037452.0 +11.357783333333334, 2078162.0 +11.373416666666667, 2085632.0 +11.389033333333334, 2038437.0 +11.404666666666667, 1972813.0 +11.420283333333334, 1879752.0 +11.435916666666667, 1818918.0 +11.45155, 1791472.0 +11.467166666666667, 1768301.0 +11.4828, 1768602.0 +11.498416666666667, 1766967.0 +11.51405, 1752097.0 +11.529666666666667, 1765977.0 +11.5453, 1766193.0 +11.560916666666667, 1780252.0 +11.57655, 1810692.0 +11.592183333333333, 1850046.0 +11.6078, 1885924.0 +11.623433333333333, 1933722.0 +11.63905, 1973033.0 +11.654683333333333, 1977603.0 +11.6703, 1965654.0 +11.685933333333333, 1926713.0 +11.70155, 1951330.0 +11.717183333333333, 1976103.0 +11.732816666666666, 1975124.0 +11.748433333333333, 1956283.0 +11.764066666666666, 1923716.0 +11.779683333333333, 1911338.0 +11.795316666666666, 1929242.0 +11.810933333333333, 1937194.0 +11.826566666666666, 1919487.0 +11.842183333333333, 1892839.0 +11.857816666666666, 1872617.0 +11.87345, 1882875.0 +11.889066666666666, 1914559.0 +11.9047, 1950311.0 +11.920316666666666, 1987191.0 +11.93595, 2038995.0 +11.951566666666666, 2074939.0 +11.9672, 2096367.0 +11.982816666666666, 2120021.0 +11.99845, 2173175.0 +12.014083333333334, 2226166.0 +12.0297, 2244661.0 +12.045333333333334, 2227421.0 +12.06095, 2223644.0 +12.076583333333334, 2250745.0 +12.0922, 2300281.0 +12.107833333333334, 2329250.0 +12.12345, 2346992.0 +12.139083333333334, 2383488.0 +12.154716666666667, 2417314.0 +12.170333333333334, 2409977.0 +12.185966666666667, 2412179.0 +12.201583333333334, 2432384.0 +12.217216666666667, 2472384.0 +12.232833333333334, 2497442.0 +12.248466666666667, 2474640.0 +12.264083333333334, 2427884.0 +12.279716666666667, 2404462.0 +12.29535, 2393812.0 +12.310966666666667, 2402884.0 +12.3266, 2401751.0 +12.342216666666667, 2386678.0 +12.35785, 2377709.0 +12.373466666666667, 2380177.0 +12.3891, 2391673.0 +12.404716666666667, 2403636.0 +12.42035, 2382149.0 +12.435983333333333, 2349831.0 +12.4516, 2317662.0 +12.467233333333333, 2317762.0 +12.48285, 2330375.0 +12.498483333333333, 2330512.0 +12.5141, 2303156.0 +12.529733333333333, 2250466.0 +12.54535, 2191825.0 +12.560983333333333, 2151873.0 +12.576616666666666, 2100562.0 +12.592233333333333, 2056855.0 +12.607866666666666, 2012743.0 +12.623483333333333, 1971493.0 +12.639116666666666, 1929799.0 +12.654733333333333, 1883973.0 +12.670366666666666, 1870734.0 +12.685983333333333, 1876529.0 +12.701616666666666, 1846406.0 +12.717233333333333, 1777220.0 +12.732866666666666, 1723393.0 +12.7485, 1633338.0 +12.764116666666666, 1562267.0 +12.77975, 1502988.0 +12.795366666666666, 1492099.0 +12.811, 1484227.0 +12.826616666666666, 1437610.0 +12.84225, 1363211.0 +12.857883333333334, 1298260.0 +12.8735, 1254197.0 +12.889133333333334, 1217986.0 +12.90475, 1178466.0 +12.920383333333334, 1142491.0 +12.936, 1085249.0 +12.951633333333334, 1001375.0 +12.96725, 950803.0 +12.982883333333334, 919882.0 +12.9985, 938123.0 +13.014133333333334, 934907.0 +13.029766666666667, 923386.0 +13.045383333333334, 893908.0 +13.061016666666667, 859505.0 +13.076633333333334, 814843.0 +13.092266666666667, 799159.0 +13.107883333333334, 794641.0 +13.123516666666667, 778985.0 +13.139133333333334, 760838.0 +13.154766666666667, 754085.0 +13.1704, 759556.0 +13.186016666666667, 781872.0 +13.20165, 794021.0 +13.217266666666667, 807286.0 +13.2329, 828309.0 +13.248516666666667, 840539.0 +13.26415, 831314.0 +13.279766666666667, 832351.0 +13.2954, 852680.0 +13.311033333333333, 864758.0 +13.32665, 836014.0 +13.342283333333333, 837703.0 +13.3579, 835722.0 +13.373533333333333, 850637.0 +13.38915, 867731.0 +13.404783333333333, 871385.0 +13.4204, 871346.0 +13.436033333333333, 851516.0 +13.451666666666666, 827519.0 +13.467283333333333, 807728.0 +13.482916666666666, 792582.0 +13.498533333333333, 807405.0 +13.514166666666666, 812507.0 +13.529783333333333, 811330.0 +13.545416666666666, 800018.0 +13.561033333333333, 790502.0 +13.576666666666666, 787586.0 +13.5923, 778954.0 +13.607916666666666, 777725.0 +13.62355, 780595.0 +13.639166666666666, 766303.0 +13.6548, 764817.0 +13.670416666666666, 768867.0 +13.68605, 790443.0 +13.701666666666666, 807937.0 +13.7173, 813460.0 +13.732933333333333, 789825.0 +13.74855, 791980.0 +13.764183333333333, 775905.0 +13.7798, 745178.0 +13.795433333333333, 743589.0 +13.81105, 738545.0 +13.826683333333333, 739223.0 +13.8423, 743456.0 +13.857933333333333, 738729.0 +13.873566666666667, 737741.0 +13.889183333333333, 760394.0 +13.904816666666667, 778994.0 +13.920433333333333, 784934.0 +13.936066666666667, 782825.0 +13.951683333333333, 772886.0 +13.967316666666667, 760939.0 +13.982933333333333, 744415.0 +##END=$$ End of the data block + +`; + +export default lcMsTicChemstationJcamp; diff --git a/src/__tests__/fixtures/lc_ms_jcamp_tic_neg.js b/src/__tests__/fixtures/lc_ms_jcamp_tic_neg.js new file mode 100644 index 00000000..b55ad237 --- /dev/null +++ b/src/__tests__/fixtures/lc_ms_jcamp_tic_neg.js @@ -0,0 +1,1228 @@ +const hplcMsTicNegJcamp = ` +##TITLE=Spectrum +##JCAMP-DX=5.00 $$ chemotion-converter-app (1.8.0) +##DATA TYPE=MASS TIC +##DATA CLASS=XYPOINTS +##ORIGIN= +##OWNER= +##XUNITS=MINUTES +##YUNITS=COUNTS +##SOFTWARE=openlab +##SCAN_MODE=negativ +##TYPE=ms chromatogramm +##FIRSTX=0.004666666666666667 +##LASTX=9.997333333333334 +##MINX=0.004666666666666667 +##MAXX=9.997333333333334 +##MINY=220.02685351092623 +##MAXY=13179.64527027027 +##NPOINTS=1200 +##FIRSTY=13179.64527027027 +##XUNITS=MINUTES +##YUNITS=COUNTS +##XYDATA=(XY..XY) +0.004666666666666667, 13179.64527027027 +0.0133, 1118.7286337380644 +0.021633333333333334, 4664.570681835652 +0.029966666666666666, 4602.65455319753 +0.0383, 4216.229180546303 +0.04663333333333333, 5053.640940858195 +0.05496666666666667, 5588.3330719774185 +0.0633, 3291.758241758242 +0.07163333333333334, 4864.118838622552 +0.07996666666666667, 4876.747149564051 +0.0883, 4377.260170768458 +0.09663333333333333, 4592.7988860155165 +0.10496666666666667, 4608.385731183465 +0.1133, 5680.037520252408 +0.12163333333333333, 5329.44218113444 +0.12995, 4574.983178576234 +0.13828333333333334, 4483.936879165095 +0.14661666666666667, 4226.923319659199 +0.15495, 4628.52401273454 +0.16328333333333334, 2610.1635184663096 +0.17161666666666667, 4606.707578136149 +0.17995, 4719.788430241159 +0.18828333333333333, 4417.083664283823 +0.1966166666666667, 4386.144035042515 +0.20495, 4451.935395938394 +0.21328333333333332, 3682.4148642429823 +0.22161666666666666, 4895.910949568378 +0.22995, 3835.3961756979656 +0.23828333333333335, 5385.91492125345 +0.24661666666666668, 4402.893005772587 +0.25495, 3751.401497957331 +0.2632833333333333, 4559.576757532282 +0.2716166666666667, 4532.415340677275 +0.27995, 5706.711928497766 +0.28828333333333334, 4783.778781372622 +0.29661666666666664, 4312.492933860938 +0.30495, 5115.5939258459875 +0.31328333333333336, 4235.085026705139 +0.32161666666666666, 3994.217597471022 +0.32995, 4422.195237131485 +0.3382833333333333, 4048.3918128654973 +0.3466166666666667, 4076.7541436464085 +0.35501666666666665, 4157.745283634702 +0.36335, 3948.836629031252 +0.3716833333333333, 4199.659908436886 +0.3800166666666667, 5655.238012508687 +0.3883333333333333, 4915.378979076772 +0.39668333333333333, 4490.0788741107335 +0.4050166666666667, 4471.79558782463 +0.41335, 4453.946884425807 +0.42168333333333335, 4942.414645450332 +0.43001666666666666, 4641.6420062220195 +0.43835, 4243.853342918764 +0.4466833333333333, 4190.05644811116 +0.45503333333333335, 4743.7215864555565 +0.46335, 4478.11868592382 +0.4717, 4276.433976943207 +0.4800333333333333, 5017.318710099853 +0.48835, 3784.7289039136654 +0.4967, 3355.0202611436293 +0.5050333333333333, 4167.248940756709 +0.5133666666666666, 3464.9150986691143 +0.5217, 5784.931937172775 +0.5300333333333334, 4453.892519970952 +0.5383666666666667, 4851.854204716906 +0.5467, 4865.42025948908 +0.5550333333333334, 4186.460515858681 +0.5633666666666667, 3766.440243511695 +0.5717, 3990.32646507894 +0.5800333333333333, 4742.975677214675 +0.58835, 4331.332300542215 +0.5966833333333333, 4897.298438159562 +0.6050333333333333, 5148.307937632884 +0.61335, 3839.993315508021 +0.6217, 3689.8243243243246 +0.6300333333333333, 2863.917723952326 +0.6383500000000001, 4532.330289797539 +0.6466833333333334, 4167.71414090218 +0.6550333333333334, 3581.2245688819994 +0.6633666666666667, 4644.574197648554 +0.6717, 4354.501122377893 +0.6800333333333334, 4063.2153438328396 +0.6883666666666667, 4436.007446898536 +0.6967, 4693.542600896861 +0.7050333333333333, 5263.708810888252 +0.7133666666666667, 4094.2360283290095 +0.7217, 4668.313738386912 +0.7300333333333333, 3859.444137168142 +0.7383666666666666, 3675.870008552069 +0.7467, 3945.315434374348 +0.7550333333333333, 4958.619820122721 +0.7633666666666666, 3867.9290838852094 +0.7717000000000002, 3598.7668231611897 +0.7800333333333334, 4035.249738037024 +0.7883666666666667, 4724.345549738219 +0.7967, 3855.3161371500473 +0.8050333333333334, 4694.385432473445 +0.8133666666666667, 3813.8947725154626 +0.8217, 3072.2890698177102 +0.8300333333333333, 2681.4618061916103 +0.8383666666666667, 3277.5032794053345 +0.8467, 3788.5970906960847 +0.8550333333333333, 4093.33195918788 +0.8633666666666666, 2723.9901071723 +0.8717, 3494.2109508020435 +0.8800333333333333, 3832.5302352156937 +0.8883500000000001, 3384.2797164292106 +0.8966833333333334, 2398.1107285248277 +0.9050166666666667, 3385.8514001806684 +0.91335, 5049.726860044625 +0.9216833333333333, 4353.491806402439 +0.9300166666666667, 3741.1233003708285 +0.93835, 2984.105529365547 +0.9466833333333333, 2840.4828486204324 +0.9550333333333333, 2737.506048387097 +0.9633666666666667, 3188.8116339026747 +0.9717, 3326.0963392350827 +0.9800333333333333, 3675.589832013111 +0.9883666666666666, 3706.078828292451 +0.9967, 2975.199168687219 +1.0050333333333332, 4151.732480533927 +1.0133666666666667, 3113.479420059933 +1.0217, 3355.4215646534253 +1.0300333333333334, 4015.233145330535 +1.0383666666666667, 4828.557573620174 +1.0466833333333334, 5118.009749638903 +1.0550166666666667, 4780.385839902971 +1.06335, 3908.3646344986996 +1.0716833333333333, 4818.565670467951 +1.0800333333333334, 4323.902937895128 +1.08835, 4219.285447063226 +1.0966833333333332, 3465.3034300791555 +1.1050166666666668, 4507.704468802698 +1.11335, 4038.6787072243346 +1.1217, 4085.1480660757456 +1.1300333333333332, 4599.833639284076 +1.13835, 3564.9551066217737 +1.1466833333333333, 5005.166892474443 +1.1550166666666664, 4271.767426850258 +1.16335, 5564.972803814917 +1.1716833333333334, 6140.695417334797 +1.1800166666666667, 5595.03412567663 +1.18835, 4894.573082489146 +1.1966833333333333, 5241.346548188653 +1.2050166666666666, 5587.624437474431 +1.21335, 4821.034246148088 +1.2216833333333332, 5789.52482974979 +1.2300166666666668, 5260.354944897666 +1.23835, 4662.126163902078 +1.2466833333333334, 5708.108974358974 +1.2550166666666667, 5250.88181485547 +1.26335, 5154.49823082135 +1.2716833333333333, 5896.412871461227 +1.2800166666666664, 5233.8979136192165 +1.28835, 4842.843319687384 +1.2966833333333334, 5556.1650485436885 +1.3050166666666667, 5427.615947925143 +1.31335, 5920.849981837995 +1.3216833333333333, 4320.009798432251 +1.3300166666666666, 3972.6980376714578 +1.33835, 4833.536389868547 +1.3466833333333332, 4963.678179470627 +1.3550333333333333, 3717.0230658337337 +1.3633666666666666, 4239.730145413871 +1.3717, 4805.510998173589 +1.3800333333333332, 1620.4263995167137 +1.38835, 4660.942262474963 +1.3966833333333333, 5229.627151051625 +1.4050333333333334, 4911.433275404738 +1.4133666666666664, 3840.950384346611 +1.4217, 3671.8659068865177 +1.4300333333333333, 6038.774009741752 +1.4383666666666666, 5306.546080964686 +1.4466833333333333, 4499.038808990388 +1.4550333333333334, 3546.2435233160622 +1.4633666666666667, 4833.11978545888 +1.4717, 3955.753942395412 +1.4800333333333333, 4170.067049808429 +1.4884666666666666, 5158.629654478363 +1.4968, 4871.887159533075 +1.5051333333333334, 3654.252379490328 +1.51345, 4480.787518573551 +1.5217833333333333, 5484.811736770692 +1.5301333333333333, 5347.459243843219 +1.53845, 5342.1438241618225 +1.5467833333333334, 5156.936282090937 +1.5551166666666667, 4742.640375876145 +1.56345, 4633.335924141147 +1.5717833333333333, 4413.831366174288 +1.5801166666666666, 5358.872810357959 +1.5884499999999997, 5131.686643835616 +1.5967833333333334, 4163.588465646138 +1.6051166666666667, 3795.2113778705634 +1.61345, 5394.0475081509085 +1.6217833333333334, 4535.935688335781 +1.6301333333333334, 4159.100032372936 +1.63845, 4369.952881478796 +1.6467833333333333, 4092.735956658112 +1.6551166666666666, 5039.327108821636 +1.66345, 5743.861964925513 +1.6717833333333334, 4873.643960895617 +1.6801166666666667, 4885.379880123117 +1.68845, 4659.166601516691 +1.6967833333333333, 4694.591176251767 +1.7051166666666666, 4744.9508067689885 +1.7134499999999997, 4029.7500508026824 +1.7217833333333334, 5102.262443438914 +1.7301166666666667, 4438.601348952787 +1.73845, 5289.409113670506 +1.7467833333333334, 5231.874575118966 +1.7551166666666667, 4664.43856509221 +1.76345, 4905.371043072133 +1.7717833333333333, 5220.1820680178635 +1.7801166666666666, 4885.875375877046 +1.78845, 5122.868020304569 +1.7967833333333334, 3211.93032427695 +1.8051166666666667, 4063.372460813945 +1.81345, 3871.236797274276 +1.8217833333333333, 5630.918959386113 +1.8301166666666666, 5471.932946244615 +1.8384499999999997, 3383.080173595249 +1.8467666666666667, 4487.255769076144 +1.8551166666666667, 4655.067205409417 +1.86345, 4633.279181220047 +1.8717833333333334, 4580.879850238258 +1.8801166666666667, 5470.038261552046 +1.8884333333333336, 4921.146146146146 +1.8967666666666667, 4466.608955693712 +1.9051166666666666, 4107.0397360099 +1.91345, 5209.900542495479 +1.9217833333333334, 4317.547847767104 +1.9301166666666667, 4935.83494411295 +1.93845, 5665.934283452098 +1.9467833333333333, 4650.492748978448 +1.9551166666666666, 4621.569595261599 +1.9634499999999997, 5481.744217935826 +1.9717833333333334, 4748.648225060731 +1.9801166666666667, 3725.263361985394 +1.98845, 5284.810434219054 +1.9967833333333334, 4784.125560538117 +2.005116666666667, 3764.1232976653696 +2.01345, 5244.604779411765 +2.0217833333333335, 3643.8621546103695 +2.030116666666667, 5690.090750756257 +2.03845, 5008.417481218193 +2.0467833333333334, 4186.517185425579 +2.0551166666666667, 4330.355427473583 +2.06345, 4479.116086356037 +2.0717833333333333, 4827.243798955614 +2.0801166666666666, 4661.634965600971 +2.08845, 4367.8712871287125 +2.0967666666666664, 4855.158970804817 +2.1051166666666665, 5477.956382778718 +2.11345, 5529.343963115935 +2.121783333333333, 5605.343819318411 +2.130116666666667, 4806.75194152581 +2.13845, 6649.7685969071 +2.1467833333333335, 4424.730675473776 +2.155116666666667, 4945.282675877113 +2.16345, 4192.943719601636 +2.1717833333333334, 5154.010222134853 +2.180116666666667, 5697.791251624079 +2.18845, 4698.4128353316655 +2.1967666666666665, 4519.900849858357 +2.2051166666666666, 4086.232481450948 +2.213433333333333, 4689.059923034635 +2.221783333333333, 4331.2378281529955 +2.2301166666666665, 4744.019269223778 +2.23845, 4278.721664808621 +2.246783333333333, 4357.541111981206 +2.255116666666667, 4711.5720716744645 +2.26345, 5175.984327217125 +2.2717833333333335, 5634.461470620659 +2.280116666666667, 5269.419787832864 +2.28845, 3862.4284990225183 +2.2967833333333334, 4185.228832028412 +2.305116666666667, 4440.493206628446 +2.31345, 3927.960206447752 +2.3217833333333333, 4140.689865689866 +2.3301166666666666, 3919.5083267248215 +2.33845, 3430.3557100829103 +2.346783333333333, 5672.177337911533 +2.3551166666666665, 4539.320722269991 +2.36345, 4556.800430918395 +2.3718, 5731.207709657576 +2.380133333333333, 5620.103775667918 +2.3884666666666665, 3538.5236447520183 +2.3967833333333335, 4664.499121265378 +2.405133333333333, 5272.657342657342 +2.413466666666667, 3989.80677052127 +2.4218, 4396.24111653395 +2.4301333333333335, 3633.0123319939034 +2.4384666666666663, 5412.690129898968 +2.4468, 4339.682670174285 +2.4551333333333334, 3311.3879451365297 +2.4634666666666667, 4216.652387257574 +2.4718, 4205.224069541734 +2.4801166666666665, 4577.688196394601 +2.48845, 4782.272254280579 +2.496783333333333, 3688.728165938865 +2.505116666666667, 4892.036299657376 +2.51345, 6307.364208118925 +2.5217833333333335, 5085.515913237381 +2.530133333333333, 4079.571209800919 +2.53845, 4588.452109963229 +2.5468, 5331.27144397608 +2.5551333333333335, 4933.77127237457 +2.5634666666666663, 5282.531451070778 +2.5718, 4080.468018720749 +2.5801333333333334, 5671.663309657585 +2.58845, 5201.340066032239 +2.596783333333333, 3886.587591240876 +2.6051166666666665, 5004.075829383886 +2.61345, 4497.767857142857 +2.6218, 4095.706591822802 +2.630133333333333, 4602.997713608265 +2.63845, 3959.178452135598 +2.6467833333333335, 3310.7718405428327 +2.655116666666667, 2585.1062846580407 +2.66345, 3060.1501305483025 +2.6717833333333334, 3457.4956885932497 +2.680116666666667, 3076.6774409273294 +2.68845, 3747.5931726650897 +2.6967833333333333, 3509.5520744094974 +2.7051333333333334, 3456.50522317189 +2.71345, 4053.135409123823 +2.721783333333333, 3739.141515761234 +2.7301333333333333, 3652.4448645242596 +2.73845, 3819.4016140673184 +2.746783333333333, 3918.930070427545 +2.755116666666667, 4209.364026531408 +2.76345, 3844.493331500069 +2.7717833333333335, 3037.674064403829 +2.780116666666667, 3935.575801749271 +2.78845, 4672.877609496521 +2.7967833333333334, 3656.934984520124 +2.805116666666667, 4439.894992555442 +2.81345, 3565.21287642783 +2.8217833333333333, 3590.560975609756 +2.8301166666666666, 3922.0235831114496 +2.83845, 4145.785068630733 +2.8467666666666664, 3694.291292001893 +2.8551166666666665, 2725.602196245129 +2.86345, 2139.356257208766 +2.871783333333333, 2904.2760654490103 +2.880116666666667, 2207.265180975172 +2.88845, 1940.809958826557 +2.8967666666666667, 2381.156538339166 +2.905116666666667, 2264.4841856340527 +2.9134333333333333, 2684.2457627118642 +2.921766666666666, 2322.2257031467557 +2.930116666666667, 2949.2626682501977 +2.9384333333333332, 2717.2286317842054 +2.9467666666666665, 2806.4239828693794 +2.9551166666666666, 2688.3398564905415 +2.963433333333333, 3296.5026478375994 +2.9717666666666664, 3848.004866180049 +2.9801166666666665, 3704.6043882978724 +2.9884333333333335, 4238.19491183201 +2.996783333333333, 3710.0789096126255 +3.005116666666667, 3961.238837165115 +3.01345, 3475.741616509028 +3.0217833333333335, 3324.63190802743 +3.030116666666667, 3063.766498447205 +3.03845, 2934.303876244666 +3.0467833333333334, 3751.6733680227057 +3.055116666666667, 3566.803191489362 +3.06345, 3814.356884057971 +3.0717833333333333, 4159.3870192307695 +3.0801166666666666, 3688.9753566796367 +3.08845, 3279.5003888024885 +3.096783333333333, 2579.394560923731 +3.1051166666666665, 4300.864666579327 +3.11345, 3478.726513569937 +3.121783333333333, 3259.360058845163 +3.130116666666667, 4442.9353778751365 +3.13845, 3649.9634808013357 +3.1467833333333335, 3423.733546071001 +3.155116666666667, 3120.464801444043 +3.1634333333333333, 3058.8398520084565 +3.1717833333333334, 4210.949395432154 +3.180116666666667, 3969.1000918273644 +3.18845, 4000.1008064516127 +3.1967833333333333, 3367.8018575851397 +3.2051166666666666, 4715.764085412915 +3.21345, 3025.7706962244542 +3.221783333333333, 4288.28199617956 +3.2301166666666665, 3601.157770800628 +3.23845, 4196.324185631414 +3.246783333333333, 3474.0698729582577 +3.255116666666667, 3731.3124750099964 +3.26345, 3621.0273972602736 +3.2717833333333335, 2667.9051217464316 +3.280116666666667, 4413.174273858921 +3.28845, 3254.036501150937 +3.2967833333333334, 3580.474824139208 +3.305116666666667, 3275.791484716157 +3.31345, 3306.1837029893927 +3.3217833333333333, 3378.0503032465213 +3.3301166666666666, 2767.208929092501 +3.3384666666666667, 3214.3174820390013 +3.346783333333333, 2603.696365127084 +3.3551333333333333, 2849.4863013698628 +3.36345, 3083.502834278093 +3.371783333333333, 2936.063606360636 +3.380116666666667, 3653.967889908257 +3.38845, 3240.616500453309 +3.3967833333333335, 3862.533512064343 +3.405116666666667, 3505.814985795455 +3.41345, 2481.4405762304923 +3.4217833333333334, 2826.8573752711495 +3.430116666666667, 3230.8880160197164 +3.43845, 2497.7397021177567 +3.4467666666666665, 3454.437394247039 +3.4551, 2758.648851831602 +3.463433333333333, 2460.9515632401703 +3.471783333333333, 3066.322907222726 +3.4801, 3220.9885817307695 +3.4884333333333335, 3998.0532786885246 +3.496766666666667, 2970.4889612227566 +3.505116666666667, 3400.9343278991078 +3.51345, 3626.651831564532 +3.5217833333333335, 2620.91118505247 +3.530116666666667, 3430.0231897067624 +3.53845, 2519.702718006795 +3.546766666666666, 3787.7962899347303 +3.555116666666667, 3518.044792312461 +3.56345, 3579.739165329053 +3.5717833333333333, 3373.3811354228264 +3.5801166666666666, 3674.142312579416 +3.58845, 4236.210317460318 +3.5967666666666664, 3221.0312166488798 +3.6051, 4086.566235059761 +3.6134333333333335, 3028.280786849906 +3.621766666666667, 3232.5390329891716 +3.630116666666667, 3347.7287754562285 +3.6384333333333334, 3386.472017866526 +3.6467666666666667, 3712.4298409728717 +3.655116666666667, 3384.1538357644517 +3.66345, 3339.897828863346 +3.6717833333333334, 2958.7221953578332 +3.680116666666667, 2816.9622684139176 +3.68845, 1095.808458757252 +3.6967833333333333, 968.2429621411733 +3.7051166666666666, 2605.020241009226 +3.71355, 3239.6775184275184 +3.7219, 3437.193396226415 +3.7302333333333335, 3565.816253914034 +3.738566666666667, 3212.2166492965084 +3.7468833333333333, 3552.5916265382557 +3.7552333333333334, 3240.4118605817453 +3.76355, 2932.934266997967 +3.7718833333333333, 2881.7029872673847 +3.7802166666666666, 3262.349397590361 +3.78855, 3253.6542276221176 +3.796883333333333, 4575.017464198393 +3.8052166666666665, 3472.32729089352 +3.8135666666666665, 3462.410239361702 +3.8219, 2817.590149516271 +3.830233333333333, 3116.848617176128 +3.83855, 3704.277421326001 +3.8469, 2846.494798733605 +3.8552333333333335, 2718.541001064963 +3.863566666666667, 2925.169579213612 +3.8719000000000006, 3441.6553687635574 +3.8802333333333334, 3167.2548657304756 +3.8885666666666667, 2513.627202849644 +3.8969, 2734.1318117836313 +3.9052333333333333, 3429.5844653000745 +3.9135666666666666, 2670.75315694528 +3.9219, 3156.02700096432 +3.9302333333333332, 2746.0886002326483 +3.93855, 3465.308594746238 +3.9468833333333335, 2823.3377518557795 +3.955216666666667, 2831.7772317772315 +3.96355, 3046.9780840488024 +3.9719, 2781.707566462168 +3.9802333333333335, 2505.60115350488 +3.9885499999999996, 2964.922884535223 +3.9968833333333333, 2668.5171855317617 +4.005233333333333, 3269.080833700926 +4.01355, 2946.059616169865 +4.021883333333333, 1877.859604629991 +4.030216666666667, 1643.0019520356943 +4.03855, 2845.8780027794323 +4.046883333333334, 3053.4152295865365 +4.0552166666666665, 2695.9360820674688 +4.06355, 2478.145365677046 +4.071883333333333, 2290.752911813644 +4.080216666666667, 2457.993496220777 +4.08855, 2917.6254002134474 +4.096866666666667, 2677.1328565672848 +4.105216666666666, 3086.276536312849 +4.11355, 2675.9888722648216 +4.121883333333333, 3036.8621064060803 +4.130233333333333, 2624.155717986677 +4.13855, 2865.167589175892 +4.146883333333333, 2246.6709656617763 +4.155216666666667, 1968.5897435897434 +4.16355, 2121.3973631764525 +4.171883333333334, 3034.973963548968 +4.180233333333334, 3269.9655254398476 +4.18855, 2697.306956838463 +4.196883333333333, 2914.635195304594 +4.205216666666667, 2349.7563627577315 +4.21355, 1773.9786223277908 +4.221883333333333, 2718.395945140131 +4.230216666666666, 2637.706204052358 +4.23855, 3175.66705957994 +4.246883333333333, 2462.2355896351137 +4.255216666666667, 2276.418886962005 +4.26355, 2822.218121424617 +4.271883333333333, 2538.2937469704316 +4.280216666666667, 3096.964212887439 +4.28855, 2261.300121506683 +4.296883333333333, 3133.0821572580644 +4.305233333333334, 2180.697886042279 +4.31355, 2400.4077371572644 +4.321883333333333, 2240.957605612778 +4.330216666666667, 3007.9180822952057 +4.33855, 2929.1535760487895 +4.346883333333333, 2467.68938264241 +4.355216666666666, 1877.1607011971657 +4.36355, 2871.8573385853742 +4.371883333333333, 3142.497529644269 +4.380216666666667, 2713.26150627615 +4.38855, 2829.363805339642 +4.396883333333333, 2444.54018826937 +4.405216666666667, 2908.2545024558854 +4.41355, 2793.0235975814576 +4.421883333333333, 3001.929267443884 +4.430233333333334, 2354.151605727791 +4.43855, 2189.1311017180255 +4.4469, 2663.508529276164 +4.455233333333333, 2417.7745113011606 +4.463566666666667, 2700.6695370516672 +4.4719, 2409.2203241349102 +4.4802333333333335, 2620.930276476809 +4.488566666666666, 2456.6745826137017 +4.4969, 2068.9656738103886 +4.505233333333333, 2594.6107127176933 +4.513566666666667, 2606.5606433850166 +4.5219, 3142.647312198484 +4.530233333333333, 2713.8598484848485 +4.538566666666667, 2671.8467778968316 +4.5469, 3039.361531038919 +4.555233333333334, 2823.179611650485 +4.563566666666666, 3012.5 +4.5719, 3519.5142378559462 +4.580233333333333, 1394.6568789178489 +4.588566666666667, 1118.2593997361478 +4.5969, 2266.7864304812833 +4.6052333333333335, 2956.4351776068097 +4.613566666666666, 2528.7625474769397 +4.6219, 2553.091866863508 +4.630233333333333, 2378.225047080979 +4.63855, 2533.3078647106763 +4.646883333333333, 2538.905345825296 +4.655216666666667, 2424.2404570241497 +4.66355, 2719.56598034628 +4.671883333333333, 2795.03590384015 +4.6802166666666665, 2558.478853521957 +4.68855, 2917.09067436209 +4.696883333333333, 2914.229215752272 +4.705216666666667, 2301.2169939065675 +4.71355, 2612.8813811579107 +4.721883333333333, 2787.3994586233566 +4.730216666666666, 2036.1010433827569 +4.73855, 3331.7500930405654 +4.746883333333333, 2644.0011199776004 +4.755233333333333, 2667.58658008658 +4.763566666666667, 2765.6589724497394 +4.7719, 2709.948355011477 +4.780233333333333, 3124.593855218855 +4.78855, 2734.755719404631 +4.796883333333333, 2919.306127295757 +4.8052166666666665, 2565.9334084189777 +4.81355, 2456.6154216535974 +4.8219, 3224.6717346233586 +4.830233333333333, 2263.6530364889 +4.838566666666667, 3092.734971770176 +4.8469, 2588.671360884443 +4.8552333333333335, 2461.860697546181 +4.863566666666666, 2929.45094217024 +4.8719, 2894.6418317542348 +4.880233333333333, 2813.050398895367 +4.88855, 2246.602391916091 +4.896883333333333, 2830.585459371774 +4.905233333333333, 3017.4386814560226 +4.913566666666667, 2586.059269893355 +4.9219, 2801.004723555831 +4.930233333333334, 3017.918289516391 +4.938566666666666, 2592.588296398892 +4.9469, 2524.9011605662545 +4.955233333333333, 2235.788672350792 +4.963566666666667, 2295.1154036040484 +4.9719, 2383.057530704589 +4.9802333333333335, 3395.8511586452764 +4.98855, 3264.912896301189 +4.996883333333333, 2278.0055410285145 +5.005216666666667, 2971.824198792383 +5.01355, 2674.546370967742 +5.021883333333333, 2816.7249851101847 +5.030216666666667, 3174.6166147285553 +5.03855, 2797.3285693127964 +5.0469, 3351.042523441355 +5.055233333333334, 3681.9825379411222 +5.063566666666666, 2650.213478717814 +5.0719, 3242.030541153597 +5.080233333333333, 2677.0074069218667 +5.088566666666667, 3393.609178263751 +5.0969, 3260.078926598264 +5.1052333333333335, 3258.998416468725 +5.113566666666666, 2716.8784494930046 +5.1219, 3378.539234203297 +5.130233333333333, 3287.230801335559 +5.138566666666667, 3198.32024100061 +5.1469, 3353.64267970812 +5.155233333333333, 3028.819634079738 +5.163566666666667, 2646.6825810185182 +5.1719, 2702.629024176375 +5.180233333333334, 3387.8484729835554 +5.188566666666666, 3571.0335760517796 +5.1969, 3356.955629843489 +5.20525, 3777.4245864417776 +5.213566666666667, 3314.9445868516286 +5.221916666666667, 3353.7624035281146 +5.23025, 803.5568748401943 +5.238583333333334, 629.7485312797713 +5.2469166666666665, 672.1073650909852 +5.2552666666666665, 1281.8621134020618 +5.263583333333333, 3462.759843061674 +5.271933333333333, 3401.8421785764035 +5.28025, 3361.480307076102 +5.2886, 2838.773930987046 +5.2969333333333335, 2996.6707242848447 +5.305266666666666, 3156.296371239714 +5.3136, 3287.895256916996 +5.321933333333333, 3358.524790502793 +5.330283333333333, 2875.053924505692 +5.338616666666667, 3546.6883070810277 +5.346933333333333, 4121.667800068004 +5.355283333333333, 3643.797889258349 +5.363616666666666, 3741.044859395923 +5.37195, 3306.0662721123826 +5.380283333333334, 3629.0930334453046 +5.388616666666667, 2835.98859422407 +5.39695, 3915.092140319716 +5.405283333333333, 4273.519289983698 +5.413616666666667, 3558.5254250268035 +5.421966666666667, 3320.1185824012937 +5.4303, 3687.968341562591 +5.438633333333334, 3635.6691919191917 +5.4469666666666665, 3224.193076833119 +5.4553, 3137.613095238095 +5.463633333333333, 3873.4584007055714 +5.471966666666666, 3223.280079729403 +5.4803, 3375.4883523416647 +5.4886333333333335, 3364.114684860299 +5.496966666666666, 2604.495862476603 +5.5053, 2471.703480589023 +5.513633333333333, 2371.9744738215345 +5.521966666666667, 2697.197855750487 +5.5303, 2554.6833803073005 +5.53865, 2616.5671677290457 +5.546983333333333, 2687.002243409983 +5.555316666666666, 2758.2552383698576 +5.56365, 2376.566447700859 +5.571983333333334, 2002.3207436780863 +5.580316666666667, 2001.4013296011199 +5.58865, 1991.2843415888483 +5.596983333333333, 1272.0068897637796 +5.605316666666667, 1327.789455024311 +5.613649999999999, 719.4885404492924 +5.6219833333333336, 670.1686593422376 +5.630316666666666, 1079.3610129564195 +5.63865, 1647.1819756930495 +5.646983333333333, 2103.6195895276937 +5.655333333333333, 3180.731453663046 +5.663666666666667, 2027.2688518378175 +5.672, 2493.8490589400694 +5.6803333333333335, 3117.3717059639393 +5.688666666666666, 4285.025922537359 +5.697, 3606.0677842565597 +5.705333333333333, 3586.4490073958737 +5.713666666666667, 3788.512804366079 +5.722, 3077.3746135348674 +5.730333333333333, 3283.242872807017 +5.738666666666668, 2589.721269296741 +5.747, 1654.820374015748 +5.755333333333334, 1628.747967479675 +5.7636666666666665, 1237.5255853203103 +5.772, 1625.689052795031 +5.780333333333333, 2634.125384894041 +5.788666666666667, 3477.6408450704225 +5.797, 3095.458058532564 +5.8053333333333335, 2846.104826546003 +5.813666666666666, 3577.605431309904 +5.822, 3171.5315895597623 +5.830333333333333, 1353.1552245250432 +5.838666666666667, 989.2469645080946 +5.847, 1917.9051043788188 +5.85535, 2759.575250528638 +5.863683333333333, 3620.0348163667736 +5.872016666666667, 3132.675764655905 +5.880350000000001, 3179.2929292929293 +5.888683333333334, 3248.238871041762 +5.897016666666667, 3678.9592607581276 +5.90535, 2920.232016608686 +5.913683333333333, 2944.1378933566434 +5.922016666666667, 3573.73820754717 +5.93035, 3579.049604916593 +5.9386833333333335, 3388.6365030674847 +5.947033333333334, 3263.0750973709837 +5.9553666666666665, 2977.6019960517656 +5.9637, 3364.4338217035015 +5.972033333333333, 2998.3441324694027 +5.980366666666667, 3693.361801242236 +5.9887, 2996.4781746031745 +5.99705, 3742.6982801286813 +6.0053833333333335, 3157.337105812548 +6.013716666666666, 3026.689848080476 +6.022049999999999, 2852.26488657845 +6.030383333333333, 3431.3594470046082 +6.038716666666667, 2893.09875403784 +6.04705, 3531.1073808562196 +6.0554, 2474.4802167338707 +6.063716666666667, 3605.600980201863 +6.072066666666666, 3389.370598591549 +6.0804, 2965.0826848249026 +6.088733333333334, 2664.99529822676 +6.097066666666667, 2970.6858185818583 +6.1054, 2802.4877029021154 +6.113733333333333, 2923.236692015209 +6.122066666666667, 2894.6901688664593 +6.1304, 1612.4788767395626 +6.138733333333334, 1299.762969743023 +6.147049999999999, 1244.1548542920495 +6.1554, 1695.5098835869064 +6.163716666666667, 1532.2845520289272 +6.17205, 2255.7352418207684 +6.180383333333333, 2235.986233598623 +6.188716666666667, 1556.8258123591283 +6.19705, 1260.2410926807497 +6.205383333333334, 1526.020264847512 +6.2137166666666666, 1562.6441663476262 +6.22205, 1430.2937101108498 +6.2304, 1032.9709558823529 +6.238716666666667, 922.7787712785223 +6.24705, 920.5269544894186 +6.2553833333333335, 1407.4160888748818 +6.263716666666666, 1522.7264393105975 +6.272049999999999, 2104.3414634146343 +6.2804, 2500.648982197319 +6.288716666666667, 2187.969268528761 +6.297066666666667, 3001.041369472183 +6.3054, 2146.261316155989 +6.313733333333333, 1904.5801260597946 +6.322066666666666, 1311.0088470319633 +6.3304, 1561.2396599264707 +6.338733333333334, 1858.8605182926829 +6.347066666666667, 2217.7593230443135 +6.3554, 2385.5635859249523 +6.363733333333333, 2838.4380360205832 +6.372066666666667, 2746.5495937002597 +6.3804, 2667.8837647444298 +6.388733333333334, 2304.020029951329 +6.3970666666666665, 2443.186133932724 +6.4054, 2636.4604078706284 +6.413733333333332, 2555.619872199432 +6.422066666666667, 2236.574041872435 +6.4304, 2435.155149403129 +6.438716666666667, 2535.1254958803784 +6.44705, 2310.6603119584056 +6.4554, 2617.9150556300797 +6.463733333333334, 2523.3794188260617 +6.472066666666667, 2242.35576224386 +6.4804, 2407.1747399472133 +6.488733333333333, 2374.3484695350853 +6.497066666666667, 2329.99094009806 +6.5054, 2602.2501929012346 +6.513733333333334, 2927.497041170006 +6.5220666666666665, 2555.7514327757126 +6.5304, 2126.4709201109035 +6.538733333333332, 2134.122455274522 +6.547066666666667, 2449.0788468881256 +6.5554, 2563.2393525770117 +6.563733333333333, 2573.78232376904 +6.572066666666666, 2063.702613837312 +6.5804, 1231.3473259582863 +6.588733333333334, 1434.917297166774 +6.597066666666667, 1821.4443483545251 +6.6054, 1135.6019295302015 +6.613733333333333, 1210.8329824350337 +6.622066666666667, 958.7095915602014 +6.630416666666667, 1076.1774039541676 +6.638733333333334, 1280.1190703902066 +6.6470666666666665, 1563.665546363323 +6.6554, 2181.780250347705 +6.663733333333332, 2168.1464502018844 +6.672066666666667, 1980.8406832927817 +6.6804, 1669.8519080855692 +6.688733333333333, 2094.433868322399 +6.697066666666666, 2700.393149504524 +6.7054, 2410.740779991522 +6.713733333333334, 2748.044886193471 +6.722066666666667, 2790.9520905923346 +6.7304, 1567.1018204599056 +6.738733333333333, 2060.189488071571 +6.747066666666667, 2630.9693020651903 +6.7554, 2445.580768010155 +6.763733333333334, 2387.4952156162285 +6.7720666666666665, 2326.5987487318225 +6.7804, 2082.892957594115 +6.788733333333332, 1801.8506129143648 +6.797066666666667, 2487.1446395855705 +6.805416666666667, 2337.687742248062 +6.81375, 2193.518399050372 +6.8220833333333335, 2456.804677278674 +6.830416666666666, 1390.7959692028985 +6.83875, 1222.0980703074608 +6.847066666666667, 1178.9506244817578 +6.855416666666667, 2336.4219524560613 +6.86375, 2644.2821421391236 +6.872083333333333, 1701.226872040867 +6.880416666666667, 1169.3062153186481 +6.88875, 1159.082702888583 +6.897083333333334, 1331.7430033522958 +6.9054166666666665, 2248.7820424476295 +6.913750000000001, 2753.269726733977 +6.922083333333333, 2649.1608555370526 +6.930416666666667, 2752.0470520352496 +6.93875, 2766.9538253871233 +6.9470833333333335, 2340.1899240761068 +6.955433333333334, 2872.279747979583 +6.963766666666666, 2944.173246078847 +6.9721, 2705.8661488439307 +6.980433333333333, 2550.57529455081 +6.988766666666667, 2704.5023696682465 +6.9971, 3199.1384408602153 +7.005433333333333, 2879.417782738095 +7.013766666666666, 3006.8505747126437 +7.0221, 2509.99446290144 +7.03045, 2677.8819564465953 +7.038783333333333, 1750.0135265559195 +7.047116666666667, 1998.3066739800759 +7.0554499999999996, 2867.633507730015 +7.063783333333333, 3304.617139959432 +7.072116666666667, 3115.580301616915 +7.08045, 2947.6404494382023 +7.088783333333334, 2551.0569852941176 +7.0971166666666665, 2702.986765772299 +7.10545, 2733.7554190751443 +7.113783333333333, 3155.0709402226526 +7.122116666666667, 3836.8804476288965 +7.13045, 3630.2188687753655 +7.1387833333333335, 2941.241197183099 +7.147116666666666, 2205.566623424759 +7.15545, 2152.808035714286 +7.163783333333333, 1871.3494516016715 +7.1722166666666665, 1773.7933753943216 +7.1805666666666665, 1722.4738414047467 +7.188883333333333, 1599.5831997435075 +7.197216666666667, 1925.4584514528701 +7.205566666666667, 1798.0793153740565 +7.2139, 1599.100957240763 +7.2222333333333335, 1782.5621662216288 +7.230566666666666, 1832.9310897435898 +7.2389, 1927.859349258649 +7.247233333333333, 2148.1943982712764 +7.255566666666667, 1884.3233512516044 +7.263899999999999, 1937.9587155963302 +7.272233333333333, 1951.5420751633987 +7.280566666666667, 2157.6293734918995 +7.2889, 1905.9739130434782 +7.297233333333334, 1980.0760248655913 +7.3055666666666665, 1984.969793497364 +7.3139, 1482.2072360010227 +7.322233333333333, 1137.372352496218 +7.330566666666667, 820.7714476160603 +7.338883333333333, 766.8593617150492 +7.347216666666666, 1004.7112819279215 +7.35555, 2162.913158366177 +7.363883333333333, 1870.2974449415003 +7.372216666666666, 1594.5661201022147 +7.38055, 1653.1307541011047 +7.388883333333333, 1487.793869084204 +7.397216666666667, 1412.6470759552656 +7.405566666666667, 1400.497293773704 +7.413883333333334, 1732.974119777628 +7.4222166666666665, 1721.736596736597 +7.4305666666666665, 1145.2362565445026 +7.438883333333333, 760.3716637864824 +7.447233333333333, 638.0930722891567 +7.455566666666667, 785.2887759573895 +7.4639, 998.821328596038 +7.4722333333333335, 1071.2281028956677 +7.480566666666666, 1752.5630533013648 +7.4889, 2173.145715440582 +7.497216666666666, 2563.8237569355524 +7.50555, 2996.066460828343 +7.513883333333333, 3024.1933297180044 +7.522233333333333, 1731.7643229166665 +7.530566666666667, 807.893316127673 +7.5389, 502.7691519802302 +7.5472166666666665, 419.87010360316845 +7.55555, 440.1813431291391 +7.5639, 378.2989365626994 +7.572233333333333, 463.3782908688803 +7.580566666666667, 547.3464156079855 +7.5889, 682.3021667160787 +7.5972333333333335, 918.5700055920593 +7.605566666666666, 1202.5613296309893 +7.6139, 1312.3816098560578 +7.622233333333333, 1129.345515633571 +7.630566666666667, 945.941162109375 +7.638883333333333, 1003.240512904637 +7.647216666666667, 940.8437824122092 +7.655566666666667, 1103.5841546626232 +7.6639, 860.9449683503423 +7.672233333333334, 820.3727545429325 +7.6805666666666665, 923.1574686752076 +7.6889, 827.3518509736975 +7.697233333333333, 899.736922260651 +7.705566666666667, 786.2752072250402 +7.7139, 876.0120819972515 +7.7222333333333335, 799.1324921135647 +7.730566666666666, 888.7230294845092 +7.7389, 691.6613389182834 +7.747233333333333, 938.6474475452551 +7.755566666666667, 739.6739223547149 +7.763916666666668, 1003.1550218340611 +7.77225, 900.3975504127757 +7.780583333333333, 621.9946878279119 +7.788916666666666, 624.334999553691 +7.79725, 535.9931612505142 +7.805583333333334, 578.945614676981 +7.813916666666667, 831.9540367853449 +7.82225, 1135.3226336546888 +7.830583333333333, 1569.198689153871 +7.838916666666667, 1705.867495345951 +7.84725, 1476.8037795403045 +7.855583333333334, 1399.1249597682652 +7.8639, 1540.188345496618 +7.87225, 1732.5463570725306 +7.880583333333333, 1853.688233202986 +7.888916666666668, 1703.2325042158516 +7.89725, 1591.6163938575767 +7.905583333333333, 1450.9710590169068 +7.913916666666666, 1584.5777936055715 +7.92225, 1499.516200711054 +7.930583333333334, 1336.980403800475 +7.938916666666667, 1242.624482520699 +7.94725, 1466.4722074062786 +7.955583333333333, 1406.1884803137004 +7.963916666666667, 1396.8778625954199 +7.97225, 1120.6435079726652 +7.980583333333334, 921.9419682065695 +7.988916666666666, 712.1434043484605 +7.99725, 640.8542372187022 +8.005583333333334, 637.6005577787523 +8.013916666666667, 486.89942869630374 +8.02225, 385.58582560360117 +8.0306, 363.2683183504566 +8.038933333333333, 329.414762972148 +8.047266666666667, 288.5663621427311 +8.0556, 303.7817365235781 +8.063933333333333, 310.379691572988 +8.072266666666666, 277.5058380164034 +8.0806, 287.12067679073033 +8.088933333333333, 276.790988869863 +8.097266666666666, 296.22018169083714 +8.1056, 280.8885954815841 +8.113933333333334, 321.7085040983607 +8.122266666666667, 279.562255859375 +8.1306, 290.01319809715346 +8.138933333333334, 256.6896083320089 +8.147266666666667, 286.6018068013496 +8.1556, 244.3959296969013 +8.163933333333333, 290.8692266202888 +8.172266666666667, 258.3905598783275 +8.1806, 239.0130651505943 +8.188933333333333, 227.85935669985093 +8.197266666666666, 226.4024013488606 +8.205616666666666, 220.02685351092623 +8.21395, 229.53549060542798 +8.222283333333333, 251.92475888804842 +8.230616666666666, 323.4665117170969 +8.23895, 452.22948194961106 +8.247283333333334, 717.0440051020408 +8.255616666666667, 1262.4903350515463 +8.26395, 1522.547058596166 +8.272283333333334, 1522.652108184228 +8.280616666666667, 1564.1088317995911 +8.28895, 1432.4152153145208 +8.297283333333333, 1398.9390257685352 +8.305633333333333, 1585.0310114503816 +8.313966666666667, 1212.7740139046537 +8.3223, 1320.4661112786491 +8.330633333333333, 1481.618685609837 +8.338966666666666, 1445.836759868421 +8.3473, 1551.434645087085 +8.355633333333333, 1978.2780439411538 +8.363966666666666, 1749.7427812811152 +8.3723, 1981.3372687655637 +8.380633333333334, 2101.8409653465346 +8.388966666666667, 2047.9775528169016 +8.3973, 1747.4256261114404 +8.405633333333334, 2031.6070370683817 +8.413966666666667, 1552.0776976254886 +8.4223, 1295.1224328593996 +8.430633333333333, 1231.1247810378804 +8.438966666666667, 814.5236036739551 +8.4473, 631.433789135587 +8.455633333333333, 627.2566558621454 +8.463966666666666, 541.313209494324 +8.4723, 673.5384676903391 +8.480633333333333, 587.2185698847262 +8.48895, 603.9320463895205 +8.497283333333334, 514.9810964083176 +8.505633333333334, 522.4375745891857 +8.513966666666667, 517.980901835775 +8.5223, 513.4609092960288 +8.530633333333334, 500.5263241123387 +8.538966666666665, 526.977407473949 +8.5473, 548.2121805149485 +8.555633333333333, 613.1984988931931 +8.563966666666667, 507.5435606060606 +8.5723, 486.77408550792165 +8.580633333333333, 541.3154489806642 +8.588966666666666, 508.9671668502202 +8.5973, 511.98865943336637 +8.605633333333333, 467.303181800376 +8.613966666666666, 495.6541321680466 +8.6223, 425.1532157277447 +8.630633333333334, 474.9067651497562 +8.638966666666667, 541.73893668346 +8.6473, 652.561250274665 +8.655633333333334, 867.4820257785725 +8.663966666666665, 823.2572739065974 +8.6723, 1249.4321811909022 +8.680633333333333, 1648.48687267658 +8.688966666666667, 1643.4815573770493 +8.6973, 1484.29383748056 +8.705633333333333, 1314.4527908468776 +8.713966666666666, 1558.726111544462 +8.7223, 1468.8040611814345 +8.730633333333333, 1226.078431372549 +8.73895, 1230.570652173913 +8.7473, 1123.3574001889913 +8.755633333333334, 1155.8029140235615 +8.76395, 1161.0842759531465 +8.7723, 910.4655774111675 +8.780633333333334, 1013.2315638075313 +8.78895, 1126.4993320167287 +8.797283333333333, 1114.8351295868617 +8.805633333333333, 1289.3652608401085 +8.81395, 1128.0151305876443 +8.8223, 1375.0882461188437 +8.830633333333333, 1341.7352407651715 +8.83895, 1473.1290494899365 +8.847283333333333, 1429.278726493363 +8.855633333333333, 1279.4148751733703 +8.863966666666666, 1548.7942624155157 +8.8723, 1437.3927471399238 +8.880633333333334, 985.2183749062266 +8.888966666666667, 781.2048840423898 +8.8973, 721.7736964097843 +8.905633333333334, 645.5935707053662 +8.913966666666665, 666.8396233360819 +8.9223, 647.0367091921084 +8.930633333333333, 663.8913170163171 +8.938966666666667, 1015.780029296875 +8.9473, 608.0807690144014 +8.955633333333333, 663.3415866346538 +8.963966666666666, 792.3329028541698 +8.9723, 635.4855029193205 +8.980633333333333, 631.4098639026361 +8.98895, 518.8142627925254 +8.9973, 468.01268793254314 +9.005633333333334, 565.1019029509322 +9.013966666666667, 527.1214681969276 +9.0223, 504.58031429378 +9.030633333333334, 604.2546299102812 +9.03895, 802.1922980341512 +9.047283333333333, 1124.3143562974542 +9.055616666666667, 1088.206449468085 +9.06395, 1244.6228605243991 +9.072283333333333, 1372.8761033229491 +9.080616666666666, 1273.8871308016876 +9.08895, 1191.5982967307214 +9.097283333333333, 1427.5238709227767 +9.105616666666666, 1483.27760458568 +9.11395, 1325.1219471728166 +9.1223, 1372.6198163920692 +9.130633333333334, 1398.1327243417518 +9.138966666666667, 1316.2578599306157 +9.1473, 1345.923271793448 +9.155633333333334, 1265.4632890815496 +9.163966666666665, 1143.0112508755544 +9.1723, 987.0630592841163 +9.180633333333333, 900.6393226760304 +9.188966666666667, 646.2644224126019 +9.1973, 832.73167686232 +9.205633333333333, 753.1391340822877 +9.21395, 625.4156014927128 +9.2223, 657.8298065089566 +9.230633333333333, 613.2076219863883 +9.23895, 627.8583242776783 +9.247283333333334, 678.978105890428 +9.255616666666667, 852.9421722643553 +9.26395, 689.0665400775695 +9.2723, 832.351013711688 +9.280616666666667, 716.3918334464043 +9.28895, 805.7603441999677 +9.2973, 787.1556772834762 +9.305633333333333, 741.6154929342755 +9.313966666666667, 746.620027239326 +9.3223, 683.5291916167664 +9.330633333333333, 631.0480791823308 +9.338966666666666, 584.3676747165285 +9.3473, 607.9802840655664 +9.355633333333333, 623.7246621621622 +9.363966666666666, 683.8141232717405 +9.3723, 727.4511523827346 +9.380633333333334, 786.0370686975443 +9.388966666666667, 941.3122699514806 +9.3973, 1062.2857572744401 +9.405633333333334, 1159.705628673652 +9.413966666666665, 1414.2901223526046 +9.4223, 1269.008819018405 +9.430633333333333, 1351.3685175484547 +9.438966666666667, 1235.5679024327123 +9.4473, 1194.5944216990788 +9.45565, 1210.3728437577563 +9.463983333333333, 1136.474877597325 +9.472316666666666, 1148.5954919626654 +9.48065, 1155.928199404762 +9.488966666666666, 1229.255037568306 +9.4973, 1265.8972897669705 +9.50565, 1202.7779893954169 +9.513966666666667, 1190.6934218950064 +9.522316666666667, 1228.2863959580839 +9.53065, 1208.2945142748863 +9.538966666666665, 1274.6503753263707 +9.5473, 1353.2873163693598 +9.555649999999998, 1394.65679741051 +9.563983333333333, 1324.843668577384 +9.5723, 1327.8740727485683 +9.58065, 1088.566598851125 +9.588966666666666, 1256.639718677494 +9.597316666666666, 1258.8981248298394 +9.60565, 1132.3573950505313 +9.613983333333334, 1060.3296503156873 +9.622316666666666, 1216.5922070744289 +9.63065, 1284.720222513089 +9.638983333333334, 1166.0155233012235 +9.647316666666667, 1098.8168311151906 +9.655666666666667, 1080.9522710487445 +9.663983333333332, 1297.8705609881627 +9.672316666666667, 1251.0150735294117 +9.680649999999998, 1040.8252441638876 +9.688983333333333, 1208.5136316241412 +9.697316666666667, 1076.6004480075453 +9.70565, 1008.6531988995552 +9.713983333333333, 1071.3765194740758 +9.722316666666666, 1215.2873426739493 +9.73065, 1170.2818396226417 +9.738983333333334, 1058.3411235754986 +9.747316666666666, 1120.0338591940153 +9.75565, 1092.7299941588785 +9.763983333333334, 1268.5345358286136 +9.772316666666667, 1419.702141786979 +9.78065, 1203.1693262411347 +9.788983333333332, 1131.2280244338497 +9.797316666666667, 1150.884726821192 +9.805649999999998, 965.2196596746575 +9.813983333333333, 1205.9708500946522 +9.822333333333331, 1348.2108097586297 +9.830666666666668, 1168.7397155618241 +9.838983333333333, 1057.518394934976 +9.847316666666666, 1322.70292721519 +9.855666666666666, 1345.1933874486654 +9.863983333333334, 1260.5260259315207 +9.872316666666666, 1110.9806885488647 +9.880666666666666, 1200.351393560788 +9.888983333333334, 1407.1238132911392 +9.897316666666667, 1029.7090382205513 +9.90565, 1265.0514013324143 +9.914, 1238.8292800985685 +9.922333333333333, 1165.1819655635063 +9.930666666666667, 1249.9266164486382 +9.939, 984.3689649622953 +9.947333333333331, 898.7177702145214 +9.955683333333333, 1003.914196773062 +9.964, 967.0204829083016 +9.97235, 956.7699399656947 +9.980683333333333, 858.9383500711688 +9.989, 764.7998303793963 +9.997333333333334, 747.0852222872185 +##END=$$ End of the data block + +`; + +export default hplcMsTicNegJcamp; diff --git a/src/__tests__/fixtures/lc_ms_jcamp_tic_pos.js b/src/__tests__/fixtures/lc_ms_jcamp_tic_pos.js new file mode 100644 index 00000000..eca43822 --- /dev/null +++ b/src/__tests__/fixtures/lc_ms_jcamp_tic_pos.js @@ -0,0 +1,1228 @@ +const hplcMsTicPosJcamp = ` +##TITLE=Spectrum +##JCAMP-DX=5.00 $$ chemotion-converter-app (1.8.0) +##DATA TYPE=MASS TIC +##DATA CLASS=XYPOINTS +##ORIGIN= +##OWNER= +##XUNITS=MINUTES +##YUNITS=COUNTS +##SOFTWARE=openlab +##SCAN_MODE=positiv +##TYPE=ms chromatogramm +##FIRSTX=0.009 +##LASTX=10.001416666666668 +##MINX=0.009 +##MAXX=10.001416666666668 +##MINY=151.26661858034518 +##MAXY=33702.5 +##NPOINTS=1200 +##FIRSTY=33702.5 +##XUNITS=MINUTES +##YUNITS=COUNTS +##XYDATA=(XY..XY) +0.009, 33702.5 +0.017366666666666666, 7414.098237720285 +0.0257, 11870.477386934672 +0.03403333333333333, 6376.395759717315 +0.042366666666666664, 7593.559322033898 +0.0507, 5743.370582905467 +0.059033333333333333, 8225.99247806101 +0.06736666666666667, 5530.695443645084 +0.0757, 9725.275301520713 +0.08403333333333333, 4184.921348314607 +0.09236666666666667, 5383.000587199061 +0.1007, 9136.290322580644 +0.10903333333333333, 7827.885462555067 +0.11736666666666666, 5750.0 +0.1257, 8930.188679245284 +0.13403333333333334, 4397.9013906447535 +0.14236666666666667, 4771.366828741221 +0.15068333333333334, 7052.065471551052 +0.15903333333333333, 5326.061145740576 +0.16736666666666666, 8773.66026289181 +0.1757, 7082.718524458701 +0.18403333333333333, 6037.382501807665 +0.19236666666666666, 5293.211267605634 +0.2007, 7158.779264214047 +0.20903333333333332, 4675.6197221465545 +0.21735, 7275.883319638456 +0.22568333333333335, 6145.859649122806 +0.23401666666666668, 8460.277910876857 +0.24235, 5596.1193072482365 +0.2506833333333333, 8239.744155271283 +0.25903333333333334, 11895.27983816588 +0.26736666666666664, 6388.40631730079 +0.2757, 6674.773413897281 +0.28403333333333336, 6435.985915492958 +0.2923666666666667, 6255.446584938704 +0.3007, 7296.816087138668 +0.3090333333333333, 5386.977806788513 +0.3173666666666667, 7229.123817359111 +0.3257, 8482.851445663011 +0.33403333333333335, 8714.179841897232 +0.34236666666666665, 8051.3972055888225 +0.3507, 8228.920926168634 +0.3590833333333333, 6271.401370906321 +0.36741666666666667, 6145.700518902891 +0.37575, 5199.468556244464 +0.3840833333333334, 9982.209631728045 +0.3924166666666667, 9013.032324268856 +0.40075, 5543.307839388145 +0.40908333333333335, 6321.512539184953 +0.41741666666666666, 6089.242424242424 +0.42575, 4381.566579634465 +0.4341, 3840.0043131334915 +0.44243333333333335, 8547.663551401869 +0.45075, 4245.08952794357 +0.4591, 7442.320966350302 +0.4674333333333333, 5412.463674523733 +0.47576666666666667, 5892.916528101097 +0.4841, 6992.018779342722 +0.49243333333333333, 7060.95919225915 +0.5007666666666667, 9527.225433526011 +0.5091, 3973.2958709992668 +0.5174333333333333, 8399.236252545825 +0.5257666666666667, 7372.20946256316 +0.5341, 11756.835530881333 +0.5424333333333333, 6811.16564417178 +0.5507666666666666, 8051.737451737452 +0.5591, 7958.664772727273 +0.5674333333333333, 6548.497156783103 +0.5757666666666666, 5015.994108983799 +0.5841, 6836.702568351284 +0.5924333333333334, 8228.423913043478 +0.6007666666666667, 6788.0660177740165 +0.6091, 5586.553524804178 +0.6174333333333333, 6868.077084206117 +0.6257666666666667, 3713.211051776178 +0.6341, 5382.691695832007 +0.6424333333333333, 5730.414163768574 +0.6507666666666668, 6694.525235243798 +0.6591, 6428.543987706493 +0.6674333333333333, 13378.367975365667 +0.6757666666666666, 7436.953754773016 +0.6841, 9437.176097303014 +0.6924333333333333, 5640.236686390533 +0.7007666666666666, 6608.038720538721 +0.7091, 5966.620257570484 +0.7174333333333334, 4122.790813779331 +0.7257666666666667, 7001.397121083827 +0.7341, 8403.915662650603 +0.7424333333333333, 5910.349330721515 +0.7507666666666667, 11589.328859060402 +0.7591166666666667, 5985.845347313237 +0.7674333333333333, 9228.932584269663 +0.7757833333333334, 7659.862385321101 +0.7841166666666667, 6948.309178743962 +0.7924333333333333, 7559.749638902263 +0.8007666666666666, 9296.920289855072 +0.8091166666666667, 7146.915803692031 +0.8174499999999999, 3343.465520609494 +0.8257833333333333, 7471.963048498846 +0.8341166666666666, 6885.924453280319 +0.8424333333333334, 5143.455205135361 +0.8507666666666667, 6074.136321195145 +0.8591166666666666, 5993.641464066257 +0.8674333333333333, 4886.423841059603 +0.8757666666666667, 4458.158995815899 +0.8841, 5383.698384201078 +0.8924333333333333, 4327.768685215494 +0.9007666666666668, 3283.3107756376885 +0.9091, 5243.187367735633 +0.9174333333333333, 2526.7028592110023 +0.9257666666666666, 2331.4238552301767 +0.9341, 1519.443725743855 +0.9424333333333333, 1555.5292031017984 +0.9507666666666666, 1600.5191434133678 +0.9591, 1185.036464410735 +0.9674333333333334, 1038.6358055009823 +0.9757666666666667, 888.8056262617397 +0.9841, 904.5024552281917 +0.9924333333333333, 734.3955793750876 +1.0007666666666666, 683.4263822578162 +1.0091, 663.3788495061011 +1.0174333333333334, 702.1032790808999 +1.0257666666666667, 541.6186575970015 +1.0341, 672.4831976524044 +1.0424333333333333, 835.755060478894 +1.0507666666666666, 952.7305627846454 +1.0591, 840.3074374079529 +1.0674333333333332, 1062.3145220141084 +1.0757666666666668, 1033.5421914357682 +1.0841, 1252.014086736309 +1.0924333333333334, 1250.209471766849 +1.1007666666666667, 1430.5233739837397 +1.1091, 1074.8060762766647 +1.1174333333333333, 1471.301433194637 +1.1257666666666666, 1717.4807922746177 +1.1341, 1343.239405854085 +1.1424333333333334, 1511.8490801372 +1.15075, 1730.906268480189 +1.1591, 1583.4842376577888 +1.167433333333333, 2309.324423097003 +1.1757666666666666, 1655.870189948833 +1.1841, 1802.2861647615296 +1.1924166666666667, 1681.2621889382947 +1.2007666666666668, 2111.4307271526923 +1.2091, 1815.8363124667223 +1.2174333333333334, 2003.1709880868955 +1.2257666666666667, 1868.3683331868901 +1.2341, 2265.3357531760435 +1.2424166666666667, 2379.3724578733295 +1.25075, 2137.55651459104 +1.2591, 2880.4 +1.2674333333333334, 2699.49273375377 +1.2757666666666667, 3028.242742433601 +1.2841, 3319.663120567376 +1.2924166666666668, 3780.790480237994 +1.3007666666666666, 3447.8444483547423 +1.3091, 4141.821649976157 +1.3174333333333332, 4565.8132162887105 +1.3257666666666668, 4246.0004691531785 +1.3341, 4970.529801324503 +1.3424333333333334, 3804.782799473453 +1.3507666666666667, 4525.544344131705 +1.3591, 3322.8970125786163 +1.3674333333333333, 5729.48350071736 +1.3757666666666666, 5231.3551253570295 +1.3841, 3463.5390946502057 +1.3924333333333334, 2656.0787671232874 +1.4007666666666667, 2416.1981461783926 +1.4091, 2089.4874476987447 +1.417433333333333, 4168.664921465968 +1.4257666666666666, 2965.595064133788 +1.4341, 2897.1772914684425 +1.4424333333333332, 2307.129776584056 +1.4507666666666668, 3006.0524091293323 +1.4591, 2835.0088042260286 +1.4674333333333334, 2632.400799314873 +1.4757666666666667, 5605.604431410884 +1.4841, 3650.6522219765643 +1.4925333333333333, 2750.0785422557333 +1.5008666666666666, 3624.798549556809 +1.5092, 4593.996569468268 +1.5175333333333334, 7751.294744859101 +1.5258666666666667, 4213.422498208742 +1.5342, 2549.2722905185815 +1.5425333333333333, 2513.328313253012 +1.5508666666666666, 4168.785714285714 +1.5592, 3525.4524226503213 +1.5675333333333332, 4417.351710558701 +1.5758666666666667, 3861.50099623644 +1.5842, 3980.82788671024 +1.5925333333333334, 2977.6136935727473 +1.6008666666666664, 4139.639222941721 +1.6092, 3716.2815126050423 +1.6175333333333333, 3168.7017543859647 +1.6258666666666666, 2925.281908808629 +1.6342, 4951.660815554955 +1.6425333333333334, 4406.8536585365855 +1.6508666666666667, 3003.772618641174 +1.6592, 3484.362859362859 +1.6675333333333333, 3500.0198767640627 +1.6758666666666666, 5511.24183006536 +1.6842, 4316.4727780362955 +1.6925333333333332, 3352.089971883786 +1.70085, 3545.4988823409876 +1.7092, 5288.372093023256 +1.7175166666666664, 3556.935483870968 +1.72585, 2948.1766820749867 +1.7342, 6380.4895608351335 +1.7425333333333333, 5220.93553907587 +1.7508666666666666, 3236.5398956002987 +1.7592, 4509.0 +1.7675166666666666, 3485.9163346613545 +1.7758666666666667, 7076.525630593978 +1.7841833333333332, 5311.054827175209 +1.7925166666666668, 4934.051841746248 +1.80085, 3978.609013955617 +1.8091833333333334, 4607.41910023678 +1.8175166666666667, 3150.740674638587 +1.82585, 4049.6250852079074 +1.8341833333333333, 3883.876357560568 +1.8425166666666664, 5453.867318862733 +1.85085, 4101.924430884769 +1.8591833333333334, 5292.564841498559 +1.8675166666666667, 3036.1509309606195 +1.87585, 3008.1296839361357 +1.8841833333333333, 4872.67984623833 +1.8925166666666666, 3194.362342638205 +1.90085, 7899.0344827586205 +1.9091833333333332, 3592.762526396621 +1.9175166666666668, 4517.860824742268 +1.92585, 5925.084123585194 +1.9342, 3777.436637131671 +1.9425166666666667, 3402.3486238532114 +1.95085, 3422.899281971667 +1.9591833333333333, 4553.457228751025 +1.9675166666666664, 2928.5782215882073 +1.97585, 3328.29373650108 +1.9841833333333334, 3801.0923330585324 +1.9925166666666667, 4526.2229947852 +2.00085, 4663.299024918743 +2.0091833333333335, 4099.008531242795 +2.017516666666667, 4719.529882470618 +2.02585, 4277.157844539819 +2.0341833333333335, 3491.6938423172837 +2.0425166666666668, 3620.064076892271 +2.05085, 5941.526717557252 +2.0592, 3407.5369365999627 +2.0675166666666667, 3477.814630550949 +2.07585, 3170.8784383318543 +2.0841833333333333, 3736.6530612244896 +2.0925166666666666, 4976.159828372218 +2.10085, 3232.994661615292 +2.109183333333333, 4154.566596194503 +2.1175166666666665, 4227.50735793525 +2.12585, 3601.850780798149 +2.1341833333333335, 4414.024818543667 +2.142516666666667, 3950.699978462201 +2.15085, 4864.464160635069 +2.1591833333333335, 4573.393348337085 +2.1675166666666668, 4274.161461947721 +2.17585, 5382.796317606444 +2.184183333333333, 4969.3511156706845 +2.1925166666666667, 3207.205654197552 +2.20085, 2804.187031606387 +2.2091833333333333, 4982.614311547404 +2.2175166666666666, 3966.3019693654264 +2.22585, 6527.355836849508 +2.234183333333333, 3025.195439739414 +2.2425166666666665, 6525.639178970112 +2.25085, 3403.21109633289 +2.2591833333333335, 2934.497227633748 +2.267516666666667, 4211.283434479658 +2.27585, 4930.632008154944 +2.2841833333333335, 5590.014104372356 +2.2925166666666668, 3896.8408262454436 +2.30085, 4434.7607603233555 +2.309183333333333, 4223.694869486949 +2.3175166666666667, 4791.55524278677 +2.3258666666666667, 4755.499874718115 +2.3342, 3152.0580727504785 +2.3425333333333334, 2845.7452966714905 +2.3508666666666667, 3672.097509645738 +2.3592, 2777.6255049047895 +2.3675333333333333, 3940.1627953146717 +2.3758666666666666, 5556.168359941945 +2.3842, 4184.144030322173 +2.392533333333333, 4442.21912072575 +2.4008666666666665, 6083.717537204552 +2.4092, 4775.393883225208 +2.4175333333333335, 4258.209902666103 +2.425866666666667, 3743.272335844995 +2.4342, 3033.159268929504 +2.442533333333334, 3284.5352690547575 +2.4508666666666667, 4937.082294264339 +2.4592, 3195.3259718650734 +2.4675333333333334, 3000.462412471925 +2.4758666666666667, 4529.100418410042 +2.4842, 4661.705069124424 +2.4925333333333333, 3799.1462113127 +2.5008666666666666, 4909.531392174704 +2.5092, 3875.014778325123 +2.517533333333333, 4427.633184221228 +2.5258666666666665, 3269.9939867708963 +2.5342, 3911.9345185706743 +2.5425333333333335, 4749.392712550607 +2.550866666666667, 4072.290257722537 +2.5592, 3595.8855919241355 +2.567533333333334, 2579.798098368353 +2.5758666666666667, 5739.571647118817 +2.5842, 3432.420508139358 +2.5925333333333334, 3186.6006328243225 +2.6008666666666667, 4602.005850396991 +2.6092, 4014.2567692024313 +2.6175333333333333, 4577.636570561457 +2.6258666666666666, 3337.020150022062 +2.6342, 4244.316339398307 +2.642533333333333, 4016.3318211276733 +2.6508666666666665, 3752.6447574334898 +2.6592, 4567.007471490366 +2.6675333333333335, 3494.9175211769953 +2.675866666666667, 4235.213830755231 +2.6842, 4469.884032114184 +2.692533333333334, 3488.2162009596386 +2.7008666666666667, 4081.596526386106 +2.7092, 2772.483690587139 +2.7175333333333334, 2896.6803039158385 +2.7258666666666667, 4030.7127711629428 +2.7342, 3892.1128107074574 +2.7425333333333333, 2982.9497416627523 +2.7508666666666666, 2948.0360243055557 +2.7592, 3315.090206185567 +2.767533333333333, 3350.991700661134 +2.7758666666666665, 4762.082949308756 +2.7842, 4054.5000779909533 +2.7925333333333335, 3299.822852081488 +2.80085, 2789.1468682505397 +2.809183333333333, 3725.5909277223664 +2.8175166666666667, 2990.6446457112415 +2.82585, 3189.440325281033 +2.8341833333333333, 3041.9417475728155 +2.8425166666666666, 2293.3922910061738 +2.85085, 3255.7177306764816 +2.859183333333333, 1767.841991793588 +2.8675166666666665, 3036.9741454864156 +2.87585, 3634.3561570414045 +2.8841833333333335, 2581.1492389444297 +2.892516666666667, 2612.8407194511406 +2.90085, 3027.987012987013 +2.9091833333333335, 2838.3747412008283 +2.9175166666666668, 2915.451235114654 +2.92585, 2804.6047582501915 +2.934183333333333, 3434.987534132732 +2.9425166666666667, 3245.773886727194 +2.95085, 2466.235540577466 +2.9591833333333333, 2149.0196078431372 +2.9675166666666666, 2740.8088235294117 +2.97585, 2709.6540276078977 +2.984183333333333, 2106.4234679857104 +2.9925166666666665, 2552.0640054472724 +3.00085, 1990.5103823015718 +3.0091833333333335, 2677.916070978051 +3.017516666666667, 2039.0079135302065 +3.02585, 2823.6764161421697 +3.0342, 2693.124334943112 +3.0425166666666668, 2096.3710214409375 +3.05085, 2543.354807921737 +3.059183333333333, 2162.005935518683 +3.0675166666666667, 2755.433551198257 +3.07585, 2017.7933713426478 +3.0842, 2104.1185627188997 +3.0925166666666666, 2140.5088583988277 +3.10085, 2048.1657396412725 +3.109183333333333, 1433.732456140351 +3.1175166666666665, 1792.1933085501857 +3.12585, 1791.4712971078002 +3.1342, 2147.340555014606 +3.142516666666667, 1526.6786355475763 +3.15085, 1954.8934753661786 +3.1591833333333335, 1457.4210706932054 +3.1675166666666668, 1632.5104245640637 +3.17585, 2143.0224564619616 +3.1842, 1639.0014342058087 +3.1925166666666667, 1649.515924719508 +3.20085, 1528.6831103678928 +3.2092, 1754.9192928516525 +3.2175333333333334, 2102.600633197648 +3.2258666666666667, 1361.4716150576805 +3.234183333333333, 1823.4344707250873 +3.2425166666666665, 1682.7063106796115 +3.25085, 1786.1175337186896 +3.2591833333333335, 1326.274591299529 +3.267516666666667, 1320.5456407255706 +3.2758666666666665, 1364.511675607447 +3.2842, 1549.7749660326085 +3.2925166666666668, 1401.1116894705533 +3.30085, 1330.891378818156 +3.3092, 1551.432046453233 +3.317533333333334, 1393.8098928974068 +3.3258666666666667, 1477.2817158503196 +3.3342, 1526.234017246506 +3.3425333333333334, 1304.641166209818 +3.3508666666666667, 1267.4872892694675 +3.3592, 1407.8553697413117 +3.3675333333333333, 1362.6883923849816 +3.3758666666666666, 1142.5145180023228 +3.3842, 1237.9270186335405 +3.392533333333333, 1202.7973145780052 +3.40085, 1290.9480705097665 +3.4092, 996.8720289028332 +3.4175333333333335, 1140.5784484426388 +3.425866666666667, 1216.7900092506939 +3.4342, 1132.145799011532 +3.4425166666666667, 965.9280013584649 +3.45085, 1108.5210720528257 +3.4591833333333333, 1240.052888527258 +3.4675166666666666, 1260.9413545638035 +3.47585, 886.9118835893291 +3.484183333333333, 936.6398794575589 +3.4925166666666665, 959.8027017419125 +3.50085, 1063.4385506163615 +3.5091833333333335, 1208.9653507830938 +3.517516666666667, 933.8170698743074 +3.52585, 998.730274245442 +3.5341833333333335, 1068.5993349958437 +3.5425166666666668, 1037.2192099147949 +3.55085, 915.6309036523929 +3.559183333333333, 842.7333333333333 +3.5675166666666667, 907.6339341594693 +3.57585, 732.830519557722 +3.5841833333333333, 998.3752727768684 +3.5925166666666666, 942.2664381822798 +3.60085, 820.2058995327103 +3.609183333333333, 986.2538940809969 +3.6175166666666665, 961.9878733899699 +3.62585, 849.7539923526766 +3.6341833333333335, 789.2521099452555 +3.642516666666667, 731.4156514461081 +3.65085, 895.0304317868627 +3.6591833333333335, 869.6607567973938 +3.6675166666666668, 820.0959111559819 +3.67585, 761.0647206893213 +3.684183333333333, 706.278741138149 +3.6925166666666667, 715.817393903168 +3.70085, 699.4615238637442 +3.7091833333333333, 894.374933018969 +3.717633333333333, 682.2990820532034 +3.725966666666667, 698.249586244943 +3.7343, 657.2285143237842 +3.7426333333333335, 669.9495496275767 +3.7509666666666663, 720.8588957055215 +3.7593, 654.5955574182733 +3.7676333333333334, 676.4468139994841 +3.7759666666666667, 718.5566688840845 +3.7843, 798.8341062210167 +3.7926333333333333, 763.0925681618295 +3.8009666666666666, 684.557197204282 +3.8093, 687.5294394724447 +3.817633333333333, 938.1129716211808 +3.8259666666666665, 850.8109564876519 +3.8343, 831.7872760238909 +3.842633333333333, 722.128564282141 +3.850966666666667, 749.4727891156464 +3.8593, 688.132999443517 +3.8676333333333335, 976.5706643443642 +3.8759666666666663, 884.5354107648725 +3.8843, 882.6383012481489 +3.8926333333333334, 1008.8071732066983 +3.9009666666666667, 1139.9244332493704 +3.9093, 1395.5554505951256 +3.9176333333333333, 1484.0599798387098 +3.9259666666666666, 1407.8138163437236 +3.9343, 1330.109381158849 +3.942633333333333, 1545.380368842514 +3.9509666666666665, 2012.87835110983 +3.9593, 1559.0888012984 +3.967633333333333, 1947.9421352893235 +3.975966666666667, 2473.983858420848 +3.9843, 2228.6798046738754 +3.9926333333333335, 2286.665154264973 +4.000966666666667, 1998.362429125634 +4.0093, 2289.1369047619046 +4.017633333333333, 2620.0357873210637 +4.025966666666666, 2477.2018348623856 +4.0343, 2415.467053538001 +4.0426166666666665, 2953.1844316674037 +4.05095, 2785.642464013548 +4.059283333333333, 2161.4296767537826 +4.067616666666667, 1423.0644486294204 +4.07595, 729.2473474801061 +4.0843, 624.809619238477 +4.092616666666666, 497.05105633802816 +4.10095, 477.86620082815733 +4.109283333333333, 525.1277901785714 +4.117616666666667, 393.96713954834973 +4.125966666666667, 543.9140751211631 +4.1343, 479.93895186118107 +4.142633333333333, 401.6845511140236 +4.150966666666666, 434.098715651135 +4.1593, 495.96269889428265 +4.167633333333334, 482.78672089825847 +4.175966666666667, 430.9013568813267 +4.1843, 532.7977556745728 +4.192633333333333, 454.73052384150435 +4.20095, 503.7229041301969 +4.2093, 476.17207708225556 +4.217633333333334, 395.58554657428795 +4.225966666666666, 385.8101159311892 +4.2343, 416.6246244775339 +4.242616666666667, 417.9334064821067 +4.25095, 522.5370497748875 +4.2593, 411.67444135662436 +4.267616666666667, 386.94666536661464 +4.275966666666666, 474.7919138976793 +4.2843, 374.7331776253548 +4.292633333333334, 544.4637252535007 +4.300966666666667, 465.9566906747536 +4.3092999999999995, 526.6065933653557 +4.317633333333333, 524.3937919719169 +4.32595, 385.5974602203183 +4.3343, 417.1003766544635 +4.342616666666666, 384.6838662790698 +4.35095, 553.899346058678 +4.3593, 392.51885501527494 +4.367616666666667, 482.1391843971631 +4.37595, 560.7677157714995 +4.3843, 510.75035561877667 +4.392616666666667, 561.8458601286173 +4.40095, 421.39370375445327 +4.409283333333334, 496.8705811651584 +4.4176166666666665, 423.9722662713734 +4.42595, 525.8357558139535 +4.4342999999999995, 407.431204569055 +4.442633333333333, 672.6612971778306 +4.450966666666667, 587.6025906365973 +4.4593, 547.866506153023 +4.467633333333334, 571.4136255772191 +4.475966666666666, 535.892229632817 +4.4843166666666665, 423.4705250990753 +4.492633333333333, 609.1502383015597 +4.500966666666667, 413.953313253012 +4.509316666666667, 466.9802621969033 +4.517633333333333, 452.3198779054584 +4.525966666666666, 452.77179276315786 +4.5343, 471.0535198442603 +4.542633333333334, 488.39311180832857 +4.550966666666667, 452.2235402781802 +4.5592999999999995, 495.58414464534076 +4.567633333333333, 489.2632532689028 +4.575966666666667, 380.02528859608213 +4.5843, 487.0061707115279 +4.592633333333334, 462.8439016557237 +4.600966666666666, 608.9080035440047 +4.6093166666666665, 448.52122109419065 +4.617633333333333, 430.6738468382152 +4.625966666666667, 426.46102308294206 +4.6343, 597.8141739498168 +4.642633333333333, 448.31686297483964 +4.65095, 403.5041272075762 +4.6593, 420.64921222046536 +4.667633333333334, 427.7215453938585 +4.675966666666667, 445.7254623044097 +4.6842999999999995, 410.8667679028133 +4.692633333333333, 405.8069414956358 +4.70095, 589.593962585034 +4.7093, 444.5233506066734 +4.717616666666666, 443.3758431703204 +4.72595, 461.91944847605225 +4.734283333333333, 424.68849567592173 +4.742616666666667, 395.56205830388694 +4.750966666666667, 419.8283333333333 +4.7593, 556.6513455901945 +4.767633333333333, 402.8743099600658 +4.775966666666666, 423.48872950819674 +4.7843, 383.4547967809171 +4.792633333333334, 515.1665700054585 +4.800966666666667, 402.8757385524372 +4.8092999999999995, 489.51906242453515 +4.817633333333333, 457.8107475325258 +4.825966666666667, 502.7687283843874 +4.8343, 394.6420495658466 +4.842633333333334, 422.87528262273906 +4.850966666666666, 540.2691100443132 +4.8593, 377.8285200649501 +4.867633333333333, 410.208817592366 +4.875966666666667, 472.3129646840149 +4.8843, 403.69844799701417 +4.892633333333333, 397.0066823899371 +4.900966666666666, 477.209996538994 +4.9093, 457.1881057878704 +4.917633333333334, 533.7760534662438 +4.925966666666667, 461.85359275962946 +4.934316666666667, 506.8001089324619 +4.942633333333333, 448.95985179786203 +4.950966666666667, 451.4848673048958 +4.959316666666667, 495.8176865304112 +4.967633333333334, 515.3577302631579 +4.975966666666666, 451.71648232677904 +4.9843, 497.5833168512658 +4.992633333333333, 511.2187821006677 +5.000966666666667, 414.02963820731094 +5.0093, 399.97395194900713 +5.017633333333333, 603.259330223259 +5.025966666666666, 511.66558485925117 +5.0343, 490.96719457013575 +5.042633333333334, 664.1159148335315 +5.050966666666667, 440.2304790026247 +5.0592999999999995, 436.15553317859093 +5.06765, 511.5389608141789 +5.075983333333332, 510.80101412649043 +5.084316666666667, 527.6722630602341 +5.09265, 425.4855510752688 +5.100983333333334, 434.26725561426684 +5.1093166666666665, 542.7764040974921 +5.11765, 548.4958189778927 +5.125983333333333, 587.5223715609209 +5.134316666666667, 680.4538182593857 +5.14265, 444.6395547945205 +5.1509833333333335, 501.889764520012 +5.159316666666666, 504.6075200431699 +5.16765, 613.4100322942993 +5.175983333333333, 561.9596581010453 +5.184316666666667, 487.8266953930412 +5.19265, 640.8789378029079 +5.200983333333332, 486.0070190242406 +5.209316666666667, 534.3654010238907 +5.21765, 485.08234797297297 +5.225983333333334, 478.57129086983343 +5.234333333333334, 600.5157969323108 +5.242666666666667, 545.529 +5.251, 593.6587199312715 +5.259333333333333, 565.705074875208 +5.267666666666667, 612.7557544757034 +5.276, 600.4987407211029 +5.2843333333333335, 636.8731066980814 +5.292666666666666, 585.9660336011686 +5.301, 639.0338971643934 +5.30935, 756.7367112138264 +5.317683333333333, 686.9718567251462 +5.326016666666667, 600.7437323446328 +5.33435, 560.8973857232311 +5.342683333333334, 559.7634366246499 +5.351016666666666, 717.7182174670797 +5.35935, 676.7703355236957 +5.367683333333333, 597.1514595272206 +5.376016666666667, 655.942102906051 +5.384366666666667, 588.1437794579732 +5.392683333333333, 749.2272484459984 +5.401033333333333, 679.5049307036247 +5.409366666666667, 737.5457173194903 +5.4177, 716.4036716171618 +5.426033333333334, 661.4189973747981 +5.434366666666667, 786.7201782449725 +5.4427, 795.1869870678936 +5.451033333333333, 728.20374475035 +5.459366666666667, 781.8027257709251 +5.4677, 765.9766922757475 +5.47605, 709.1360249205961 +5.484383333333333, 671.3385025062656 +5.4927, 776.2854914196569 +5.501033333333333, 869.9621423695153 +5.509383333333333, 778.231118266979 +5.5177, 760.3237680288462 +5.526033333333333, 913.6662855276054 +5.534383333333333, 721.4186074721009 +5.542716666666666, 905.4245430645968 +5.55105, 971.185782758388 +5.5594, 817.7206551410374 +5.567733333333333, 955.4005246891396 +5.576066666666667, 979.7021129199861 +5.5844, 947.06444809837 +5.592733333333333, 992.2116374871266 +5.60105, 784.0891117297228 +5.6094, 854.6753817256423 +5.6177166666666665, 766.4157265890344 +5.626066666666666, 920.753596994826 +5.6344, 863.5195501366408 +5.642716666666667, 853.1198435494714 +5.651066666666667, 976.4540420428895 +5.6594, 871.8218734943905 +5.6677333333333335, 896.3865546218487 +5.676066666666666, 995.4476282384381 +5.6844, 885.5387475271165 +5.692733333333333, 852.885660890248 +5.701066666666667, 877.9540636042402 +5.7094, 877.0525481150436 +5.717733333333333, 1091.6422403549077 +5.726066666666667, 775.3934624697337 +5.7344, 1066.8443113772455 +5.742733333333334, 1022.6023788015658 +5.751066666666666, 1050.6065293495074 +5.7594, 1025.9231794342704 +5.767733333333333, 1165.695764909248 +5.776066666666667, 983.8718178978604 +5.784416666666667, 967.643600616808 +5.79275, 1071.5395072917524 +5.801066666666666, 1163.4940175809863 +5.8094166666666665, 1053.7129199779683 +5.81775, 1189.5273620627481 +5.826083333333333, 1047.418337366056 +5.834416666666667, 1028.9554323355292 +5.84275, 1092.611740513696 +5.851083333333333, 976.4151687164933 +5.8594333333333335, 1003.2432869621482 +5.86775, 939.5321942848616 +5.8761, 1073.0934276058342 +5.884433333333333, 1194.2025664527955 +5.89275, 1129.05853761623 +5.9011, 1319.1418619379353 +5.909433333333333, 1184.041849215042 +5.917766666666667, 1299.8126767200754 +5.9261, 1147.8141543000954 +5.934433333333334, 1236.6377421334034 +5.9427666666666665, 1246.491248706126 +5.9511, 1329.9979432332373 +5.959433333333333, 1197.0319840983013 +5.967766666666667, 1343.183466279913 +5.9761, 1162.2876213592233 +5.9844333333333335, 1220.5837664053554 +5.992766666666666, 1142.8311450518042 +6.001116666666666, 1073.0032076984762 +6.0094666666666665, 1022.0496517090556 +6.0178, 1046.1992898538895 +6.026133333333333, 1163.9409120704186 +6.034466666666666, 1254.6508175755914 +6.0428, 1159.5671061823264 +6.0511333333333335, 1280.1308889452762 +6.059466666666666, 1323.4489292323963 +6.0678, 1356.6100652729165 +6.076133333333333, 1450.1184117706339 +6.084466666666667, 1159.0877343186733 +6.0928, 1330.5708717558703 +6.101133333333333, 1317.7127409496943 +6.109466666666667, 1394.3207899015015 +6.1178, 1427.6261018609207 +6.126133333333334, 1478.2311062431545 +6.1344666666666665, 1414.39258070606 +6.1428, 1339.859413202934 +6.151133333333333, 1576.7213728215545 +6.159466666666666, 1427.0718034351146 +6.1678, 1552.8871866295265 +6.1761333333333335, 1644.9561919322593 +6.184466666666666, 1443.9990732159406 +6.1928, 1427.2623058207 +6.201133333333333, 1568.2440911943108 +6.209466666666667, 1465.9673124598291 +6.2178, 1607.1926959619952 +6.226133333333333, 1527.371706645694 +6.234466666666667, 1281.4027350703998 +6.2428, 1621.2538105750027 +6.251133333333334, 1515.530193585669 +6.2594666666666665, 1503.7630000936942 +6.2678, 1555.491177873152 +6.276133333333333, 1791.4914207993304 +6.284466666666666, 1758.7187812187813 +6.2928, 1654.4288039835296 +6.3011333333333335, 2070.8897855796417 +6.309466666666666, 1680.8582404197507 +6.3178, 1793.1454720616568 +6.326133333333333, 1757.1368501529053 +6.334466666666667, 1593.1972111553785 +6.3428, 1632.873790677221 +6.351133333333333, 2003.3413560016386 +6.359466666666667, 1710.9865255052935 +6.3678, 2255.2960859295918 +6.376133333333334, 1918.303832650673 +6.3844666666666665, 1948.7615178836818 +6.3928, 1888.320750121773 +6.401133333333333, 1924.2284244618024 +6.409466666666666, 2009.1919602070857 +6.4178, 2083.0826586040794 +6.4261333333333335, 2116.6553918620966 +6.434466666666666, 2136.7178896786463 +6.4428, 1919.3846591447805 +6.451133333333333, 2094.176978267651 +6.459466666666667, 1967.500245290424 +6.4678, 2048.8483398145377 +6.476133333333333, 2227.053435114504 +6.484466666666667, 2177.507949915532 +6.4928, 3056.3184600515465 +6.501133333333334, 2652.8134646813146 +6.5094666666666665, 2489.0412471294826 +6.5178, 2646.610346266166 +6.526133333333333, 2188.319134993447 +6.534466666666666, 2040.6127861529872 +6.5428, 2325.9512732615085 +6.5511333333333335, 2330.789881130756 +6.5594833333333336, 1851.042301995295 +6.567816666666666, 2330.4466532460997 +6.57615, 2161.6324571766095 +6.584483333333333, 1998.5478184222125 +6.592816666666667, 1833.698593073593 +6.60115, 1927.345313921747 +6.609483333333333, 1584.7922053934246 +6.617816666666666, 1055.1774522483088 +6.62615, 762.3315170633782 +6.634483333333334, 896.4525636227545 +6.642816666666667, 1043.9144407763106 +6.65115, 2108.559948979592 +6.659483333333333, 1742.9554446929296 +6.667816666666667, 1682.5810082994878 +6.676149999999999, 1744.1340288215013 +6.6844833333333336, 1668.1135556801196 +6.6928, 1635.304898367211 +6.70115, 1636.0467230251795 +6.709483333333333, 1577.9094119579502 +6.717816666666667, 1468.486082555749 +6.72615, 1409.552495697074 +6.734483333333333, 1457.2801767973087 +6.742816666666666, 1603.6389172625127 +6.751133333333334, 1669.9528827406925 +6.759483333333334, 1591.9321388865133 +6.767816666666667, 1646.99914483402 +6.77615, 1165.8646555459272 +6.784483333333333, 585.2501132018515 +6.792816666666667, 526.6465053763441 +6.801149999999999, 571.7563023790213 +6.8094833333333336, 397.79565520446096 +6.817816666666666, 467.7442211425206 +6.82615, 515.8585688251443 +6.834483333333333, 471.5278365791702 +6.842816666666667, 349.91717373450797 +6.85115, 328.56770243220785 +6.859483333333333, 287.37534768316584 +6.867816666666666, 308.67468533551795 +6.87615, 281.5978236872495 +6.8845, 281.03496388706503 +6.892816666666667, 346.261504202178 +6.90115, 269.0863501048865 +6.909483333333333, 267.044530839464 +6.917833333333333, 306.30880743982493 +6.926166666666668, 344.47763826185104 +6.9345, 212.53847263003357 +6.942833333333334, 229.2996879865707 +6.9511666666666665, 205.56612696615824 +6.9595, 192.3791678100988 +6.967833333333333, 291.4132355062013 +6.976166666666667, 196.86966607350377 +6.9845, 288.1340455206986 +6.9928333333333335, 276.65925202546293 +7.001166666666666, 176.15788051060267 +7.009516666666666, 165.75209312039908 +7.01785, 175.77163499630257 +7.026183333333333, 173.46960443972924 +7.034516666666667, 259.8710163985149 +7.04285, 172.34091654311132 +7.051183333333333, 259.72429778396764 +7.059533333333333, 163.69418532338307 +7.067866666666666, 253.44277990044867 +7.0762, 263.3970403800166 +7.084533333333334, 343.81432676128964 +7.09285, 163.68619612492628 +7.101183333333333, 251.74477196425195 +7.109533333333333, 242.73030794114706 +7.11785, 151.26661858034518 +7.1262, 220.71463287936143 +7.134533333333334, 238.83491555507743 +7.14285, 160.04984951091046 +7.1512, 162.69337289346976 +7.159533333333333, 222.4611120420018 +7.167866666666667, 266.07744107744105 +7.1763, 447.437333672511 +7.184633333333333, 493.87388973136916 +7.192966666666667, 402.1007053702538 +7.2013, 604.3477895726955 +7.209633333333334, 751.373174359899 +7.217966666666666, 764.5270775209246 +7.2263, 788.5870162708883 +7.234633333333333, 783.5989882662835 +7.242966666666667, 822.4607564874884 +7.2513, 959.1719378953422 +7.25965, 1037.1345618405628 +7.2679833333333335, 839.4523650291828 +7.276316666666665, 969.7123665173958 +7.28465, 907.6528065045289 +7.292966666666667, 980.8003219484883 +7.3013, 979.8579728857328 +7.309633333333333, 773.6362986270022 +7.317966666666667, 691.5172373900972 +7.3263, 935.9460522714833 +7.334633333333334, 766.0289303028395 +7.342966666666666, 999.2349492349492 +7.3513, 845.4303690731011 +7.359633333333333, 885.6550991501416 +7.3679499999999996, 950.7743825868564 +7.3763, 768.1655365566038 +7.384616666666667, 726.0132854688267 +7.39295, 750.4141753861485 +7.4013, 850.3141877856253 +7.409633333333334, 817.098948462432 +7.417966666666667, 827.7052121364724 +7.4263, 922.7913220384205 +7.434633333333333, 894.6017226413835 +7.442966666666667, 938.3931419457736 +7.4513, 835.0977768132716 +7.459633333333334, 674.2025168276266 +7.467966666666666, 671.4547413793102 +7.4763, 543.4709667402705 +7.484633333333333, 575.9690782003973 +7.492966666666667, 365.0222828647715 +7.5013, 408.8025241837969 +7.5096333333333325, 350.51959703854413 +7.517966666666666, 551.0197422936692 +7.5263, 473.1980301850891 +7.534633333333334, 544.4582769290273 +7.542966666666667, 485.2422171438427 +7.5513, 450.61450146401603 +7.559633333333333, 419.13129796759523 +7.567966666666667, 332.171630859375 +7.5763, 355.10558527885865 +7.584633333333334, 489.49119232139674 +7.592966666666666, 456.81435873605943 +7.6013, 334.1387449575741 +7.609633333333333, 418.6292064574807 +7.617966666666667, 601.869006102877 +7.6263, 763.1653780764248 +7.6346333333333325, 1222.158962370862 +7.642966666666666, 1157.9897637158117 +7.6513, 979.5449705402144 +7.659633333333334, 1048.221888542538 +7.667966666666667, 993.3074886535552 +7.6763, 915.4975895316804 +7.684633333333333, 1147.0861784789263 +7.692966666666667, 1141.5068519369163 +7.7013, 1026.6975533386733 +7.709633333333334, 916.0933462532299 +7.717983333333334, 978.4128462944733 +7.7263166666666665, 1119.6633092356428 +7.73465, 1042.6653883029721 +7.742983333333333, 1358.5167441419221 +7.751316666666667, 1051.3178751422533 +7.75965, 1218.3331233198924 +7.7679833333333335, 1198.734775304494 +7.776333333333334, 1552.9493260109837 +7.78465, 995.7444286391656 +7.792983333333333, 1353.9420643104904 +7.801316666666667, 1088.7099479953029 +7.80965, 1281.5463268496005 +7.817983333333333, 1252.827598828697 +7.826316666666667, 1275.269871236325 +7.83465, 1193.4504685408301 +7.842983333333334, 1063.3512706882518 +7.8513166666666665, 1209.4519195444527 +7.85965, 1094.9889527176315 +7.867983333333333, 1200.858316018601 +7.876316666666667, 1307.0566244404229 +7.884666666666667, 1253.1204462659382 +7.893, 864.3511374028349 +7.901316666666665, 1300.6328497712004 +7.90965, 1113.9389502140123 +7.917983333333333, 1219.5094532447624 +7.926333333333333, 830.6050059241705 +7.934666666666667, 1086.8493536913334 +7.943, 1002.9441384413022 +7.951333333333333, 1117.2185875604948 +7.959666666666666, 969.8322868473233 +7.968, 923.7446213425128 +7.976333333333334, 1021.4544983147523 +7.984666666666667, 1069.8316357889191 +7.993, 1047.6768857711959 +8.001333333333333, 1045.9847999267467 +8.009666666666666, 866.6757171747435 +8.018, 1159.879207252387 +8.026333333333334, 919.4775678866588 +8.034666666666666, 928.3694963573014 +8.043, 1038.0271333885667 +8.051333333333334, 1028.3307176789956 +8.059666666666667, 1035.7067462138596 +8.068, 1028.4920917007287 +8.076333333333332, 1069.7362508986341 +8.084666666666667, 861.868838889307 +8.093, 890.5112389313555 +8.101333333333333, 1005.2181142410016 +8.109666666666667, 952.5857833101302 +8.118, 901.7693014705883 +8.12635, 948.8103828041926 +8.134666666666666, 1031.0377948534667 +8.143, 915.6067112563654 +8.151333333333334, 1025.4060181368507 +8.159683333333334, 972.2638449061559 +8.168, 1075.7232953126302 +8.176333333333334, 873.0704509759928 +8.184666666666667, 984.1553704023485 +8.193016666666667, 945.6154152199074 +8.20135, 917.059301380991 +8.209683333333333, 998.1832414244323 +8.218016666666667, 889.690638160026 +8.22635, 929.4967348097672 +8.234683333333333, 812.879521405353 +8.243016666666668, 948.952143253308 +8.25135, 1098.4522911954427 +8.2597, 891.6168941979522 +8.268033333333333, 950.1829409942698 +8.276366666666666, 1071.8250716919295 +8.2847, 1096.7068075694274 +8.293016666666666, 1051.8512964842669 +8.301366666666667, 871.3431799414458 +8.309716666666667, 1163.8373903198415 +8.318033333333334, 1031.0953184492905 +8.326366666666667, 1033.983840629275 +8.3347, 1019.2839796162116 +8.343033333333333, 1095.8767140680548 +8.351366666666667, 1421.249226644669 +8.359716666666667, 1166.5795968737145 +8.36805, 1680.0805933383313 +8.376383333333333, 1493.4093494673698 +8.384716666666666, 1530.1882750277246 +8.393033333333333, 1357.1327215968215 +8.401366666666666, 1372.8647034164744 +8.4097, 1380.1382179280731 +8.418033333333334, 1501.9436295054486 +8.426366666666667, 1504.4804549469966 +8.4347, 1525.4053823395539 +8.443033333333334, 1591.5188601158802 +8.451366666666667, 1306.8551427032849 +8.4597, 1260.1075705297342 +8.468033333333333, 1215.3298274277545 +8.476366666666667, 1378.7812705727454 +8.4847, 1236.0527879568187 +8.493033333333333, 1434.5318308550186 +8.501366666666666, 1262.5355774493705 +8.5097, 1391.9513403567332 +8.518033333333333, 1391.214481852913 +8.526366666666666, 1266.6195965417867 +8.534716666666666, 1432.6400200476132 +8.543033333333334, 1368.0542844068184 +8.551366666666667, 1133.498062015504 +8.559716666666667, 1316.0633618640038 +8.56805, 1129.0458681620992 +8.576383333333334, 1300.635691842197 +8.5847, 1149.7200226244345 +8.593033333333333, 1378.563091288856 +8.601366666666667, 1256.754066659083 +8.6097, 1408.507212776919 +8.618033333333333, 1220.711590296496 +8.626366666666666, 1177.6003458394466 +8.6347, 1146.2342528236316 +8.643033333333333, 1316.379052518244 +8.651366666666666, 1087.922913789702 +8.659700000000003, 1012.4848653011804 +8.668033333333334, 1286.5509505254458 +8.676383333333336, 1338.8848039215686 +8.6847, 978.0366452777221 +8.693033333333334, 1244.5426759597806 +8.701366666666667, 1145.7127071823204 +8.7097, 1048.3712354025815 +8.718033333333333, 1330.8430598466643 +8.726366666666667, 1165.5172858617132 +8.7347, 1333.0495853288169 +8.743033333333333, 1264.010477608765 +8.751366666666666, 1233.6342465753426 +8.7597, 1384.6171507289635 +8.768033333333333, 1272.2222222222224 +8.776366666666666, 1551.0889207377866 +8.784700000000003, 1434.1820528092119 +8.793033333333334, 1645.3743919388464 +8.801366666666667, 1751.7022296811315 +8.8097, 1489.3696814313769 +8.818033333333334, 1783.7419181034484 +8.826366666666667, 1690.6690534795257 +8.8347, 2000.5259401762444 +8.843033333333333, 1722.4363126079447 +8.851366666666667, 1584.4953754080523 +8.8597, 1482.2812590939955 +8.868033333333333, 1827.2683183682518 +8.876366666666666, 2069.2737037453603 +8.8847, 1774.515972894482 +8.893033333333333, 1931.4983713355048 +8.901366666666666, 1824.0794367693943 +8.909716666666666, 1929.5564655669627 +8.91805, 1464.2532886772658 +8.926383333333336, 1450.063348046428 +8.934716666666667, 1831.3840858149215 +8.943033333333334, 1266.9847126112131 +8.951366666666667, 1696.8022506657503 +8.959716666666667, 1714.9101849393858 +8.968033333333333, 1745.7245372440311 +8.976366666666667, 1595.6937340153454 +8.9847, 1492.9788233284944 +8.993033333333333, 1503.3517587939698 +9.001366666666666, 1376.2744495889635 +9.0097, 1600.1037725935269 +9.018033333333333, 1471.589432654829 +9.026366666666666, 1421.7349741490737 +9.034700000000003, 1605.3474842767296 +9.043033333333334, 1310.7524875621891 +9.051366666666667, 1279.0517056999252 +9.0597, 1456.0958619871947 +9.068033333333334, 1733.8988095238096 +9.076366666666667, 1332.8531746031745 +9.0847, 1322.7202493190864 +9.093016666666667, 1468.4112066933774 +9.101366666666667, 1332.325758399478 +9.1097, 1352.552066472429 +9.118033333333333, 1398.682068268583 +9.126366666666666, 1368.2264079558968 +9.1347, 1539.2700363727579 +9.143033333333333, 1307.577746884976 +9.151366666666666, 1279.0521978021977 +9.159700000000003, 1201.0611581642702 +9.168033333333334, 1166.000694123091 +9.176366666666667, 1196.1288746160292 +9.1847, 1137.0696529080676 +9.193033333333334, 1199.0543362144313 +9.201366666666667, 1250.8161554393923 +9.2097, 1062.6405771934176 +9.218033333333333, 1144.119425365193 +9.226366666666667, 1226.8521341463415 +9.2347, 1320.1598015460945 +9.243033333333333, 1510.4720529114252 +9.251366666666666, 1759.1140459485487 +9.2597, 1624.2273397693752 +9.268033333333333, 1497.3156148259454 +9.276366666666666, 1819.875740994072 +9.284700000000003, 2116.6888412017165 +9.293033333333334, 1861.367010470386 +9.301366666666667, 1590.2406150159745 +9.3097, 1758.8742281681857 +9.318033333333334, 2052.7434984263705 +9.326366666666667, 1873.360052948963 +9.3347, 1750.9762050030506 +9.343033333333333, 2005.3886997405968 +9.351366666666667, 2154.6794758278734 +9.3597, 2286.6227229146693 +9.368033333333333, 1941.0487742156693 +9.376366666666666, 2074.7117973746213 +9.3847, 1888.3690590879899 +9.393033333333333, 2113.4170762789004 +9.401366666666666, 2317.887414777962 +9.409716666666666, 2386.218009032744 +9.418033333333334, 2353.1021712662337 +9.426383333333336, 1991.8921615581098 +9.434716666666667, 1968.2623970279437 +9.44305, 2245.9470046082947 +9.451366666666667, 2191.599982791258 +9.459716666666667, 2635.229064039409 +9.46805, 1955.9827637224441 +9.476383333333333, 2457.3616600790515 +9.484716666666667, 2675.285388127854 +9.49305, 2478.2701096892138 +9.501383333333333, 2587.0906007751937 +9.509716666666666, 2524.3502290380407 +9.51805, 2490.16328619278 +9.526383333333333, 2552.3980099502487 +9.534716666666666, 2558.0917394757744 +9.54305, 2131.330361734956 +9.551383333333336, 2418.7488160636485 +9.559716666666667, 2372.7109836946784 +9.56805, 2536.211003175789 +9.576383333333334, 2637.8049980322708 +9.584716666666667, 2322.646927871772 +9.59305, 2593.6490384615386 +9.601383333333333, 2558.438757906843 +9.609716666666667, 2423.9585342333653 +9.618066666666667, 2295.4483810815395 +9.6264, 2835.164620535714 +9.634733333333333, 2334.4424460431655 +9.643066666666666, 2498.1813476378693 +9.6514, 2205.741965973535 +9.659733333333334, 2298.934790663209 +9.668066666666666, 2124.224627988631 +9.6764, 2488.427536231884 +9.684733333333334, 2437.956029185868 +9.693066666666668, 2361.3653273809523 +9.7014, 2351.8528660094926 +9.709733333333334, 2299.7649260544094 +9.718066666666667, 2379.2000891265598 +9.7264, 2350.0235671191554 +9.734733333333333, 2480.5383663366338 +9.743066666666667, 2567.848233885452 +9.751383333333333, 2319.6067888535626 +9.759733333333333, 2474.2480823576907 +9.76805, 2410.914555800294 +9.7764, 2434.0038921071687 +9.784733333333334, 2795.351387188902 +9.793066666666666, 2708.3894529631166 +9.8014, 2652.509023460999 +9.809733333333334, 2390.611626248217 +9.818066666666668, 2979.2310863739435 +9.8264, 2862.8342391304345 +9.834733333333334, 2628.259575312562 +9.843066666666667, 2381.8071663493165 +9.8514, 2689.365150608418 +9.859733333333333, 2320.9127337488867 +9.868066666666667, 2780.3489137590523 +9.8764, 2676.768221003135 +9.884733333333333, 2719.856935014549 +9.893066666666666, 2792.05220713073 +9.901383333333333, 2938.0195599022004 +9.909733333333334, 2753.1940466448445 +9.918066666666666, 3277.16814159292 +9.9264, 3414.004297994269 +9.934733333333334, 2744.6439757778244 +9.943066666666668, 2873.305591818973 +9.951416666666667, 3357.435537401072 +9.959750000000001, 3846.6666666666665 +9.968083333333333, 3327.768087855297 +9.976416666666667, 4361.162331247942 +9.98475, 4003.1831395348836 +9.993083333333333, 5081.540028338646 +10.001416666666668, 6529.719020172911 +##END=$$ End of the data block + +`; + +export default hplcMsTicPosJcamp; diff --git a/src/__tests__/fixtures/lc_ms_jcamp_uvvis.js b/src/__tests__/fixtures/lc_ms_jcamp_uvvis.js new file mode 100644 index 00000000..2581dd42 --- /dev/null +++ b/src/__tests__/fixtures/lc_ms_jcamp_uvvis.js @@ -0,0 +1,48910 @@ +const hplcMsUvvisJcamp = ` + +$$ === CHEMSPECTRA UVVIS PEAK TABLE === +##TITLE=908f81fc-5890-4b40-b630-40c8c39f2c97 +##JCAMP-DX=5.00 +##DATA TYPE=LC/MS +##DATA CLASS=PEAK TABLE +##SYMBOL=X, Y +##ORIGIN= +##OWNER= +##XUNITS=RETENTION TIME +##YUNITS=DETECTOR SIGNAL +##$CSCATEGORY=UVVIS PEAK TABLE +##PAGE=210.0 +##NPOINTS=6000 +##DATA TABLE= (XY..XY), PEAKS +0.0, 41.00287628173828; +0.0999937504529953, 41.16447448730469; +0.1999875009059906, 41.23809814453125; +0.2999812364578247, 41.27324295043945; +0.3999750018119812, 41.219398498535156; +0.4999687373638153, 41.06056594848633; +0.5999624729156494, 40.87778854370117; +0.6999562382698059, 40.772891998291016; +0.7999500036239624, 40.74299240112305; +0.8999437093734741, 40.73250198364258; +0.9999374747276306, 40.724395751953125; +1.099931240081787, 40.72638702392578; +1.1999249458312988, 40.734046936035156; +1.2999186515808105, 40.749244689941406; +1.3999124765396118, 40.773921966552734; +1.4999061822891235, 40.79354476928711; +1.5999000072479248, 40.79488754272461; +1.6998937129974365, 40.789344787597656; +1.7998874187469482, 40.78770446777344; +1.8998812437057495, 40.78060531616211; +1.9998749494552612, 40.76580047607422; +2.0998687744140625, 40.7547721862793; +2.199862480163574, 40.75694274902344; +2.299856185913086, 40.76033020019531; +2.3998498916625977, 40.761680603027344; +2.4998435974121094, 40.77580642700195; +2.599837303161621, 40.804691314697266; +2.699831247329712, 40.841705322265625; +2.7998249530792236, 40.883056640625; +2.8998186588287354, 40.92067337036133; +2.999812364578247, 40.94611740112305; +3.099806070327759, 40.95813751220703; +3.1998000144958496, 40.96222686767578; +3.2997937202453613, 40.960052490234375; +3.399787425994873, 40.95006561279297; +3.4997811317443848, 40.94224548339844; +3.5997748374938965, 40.941341400146484; +3.699768543243408, 40.943607330322266; +3.799762487411499, 40.946109771728516; +3.8997561931610107, 40.949790954589844; +3.9997498989105225, 40.95694351196289; +4.099743843078613, 40.96586990356445; +4.199737548828125, 40.98633575439453; +4.299731254577637, 41.01520919799805; +4.399724960327148, 41.051483154296875; +4.49971866607666, 41.09192657470703; +4.599712371826172, 41.132205963134766; +4.699706077575684, 41.165828704833984; +4.799699783325195, 41.182918548583984; +4.899693489074707, 41.190677642822266; +4.999687194824219, 41.18899917602539; +5.0996809005737305, 41.180946350097656; +5.199674606323242, 41.16980743408203; +5.299668788909912, 41.16355514526367; +5.399662494659424, 41.163841247558594; +5.4996562004089355, 41.167274475097656; +5.599649906158447, 41.178733825683594; +5.699643611907959, 41.19779968261719; +5.799637317657471, 41.22111129760742; +5.899631023406982, 41.23793411254883; +5.999624729156494, 41.24675750732422; +6.099618434906006, 41.25009536743164; +6.199612140655518, 41.24905014038086; +6.299605846405029, 41.24449920654297; +6.399600028991699, 41.235713958740234; +6.499593734741211, 41.23377990722656; +6.599587440490723, 41.247413635253906; +6.699581146240234, 41.2755241394043; +6.799574851989746, 41.307159423828125; +6.899568557739258, 41.33876419067383; +6.9995622634887695, 41.38224411010742; +7.099555969238281, 41.429542541503906; +7.199549674987793, 41.46113204956055; +7.299543380737305, 41.46227264404297; +7.399537086486816, 41.44994354248047; +7.499530792236328, 41.438236236572266; +7.599524974822998, 41.424110412597656; +7.69951868057251, 41.414955139160156; +7.7995123863220215, 41.41764450073242; +7.899506092071533, 41.43928909301758; +7.999499797821045, 41.46206283569336; +8.099493026733398, 41.484153747558594; +8.199487686157227, 41.50978469848633; +8.299481391906738, 41.528045654296875; +8.39947509765625, 41.53370666503906; +8.499468803405762, 41.5336799621582; +8.599462509155273, 41.54676055908203; +8.699456214904785, 41.566162109375; +8.799449920654297, 41.57693862915039; +8.899443626403809, 41.58721160888672; +8.99943733215332, 41.61048126220703; +9.099431037902832, 41.644527435302734; +9.199424743652344, 41.671775817871094; +9.299418449401855, 41.68111801147461; +9.399412155151367, 41.68031311035156; +9.499405860900879, 41.67400360107422; +9.59939956665039, 41.672943115234375; +9.699393272399902, 41.679954528808594; +9.799386978149414, 41.69004440307617; +9.899380683898926, 41.703365325927734; +9.999374389648438, 41.71441650390625; +10.09936809539795, 41.72340774536133; +10.199361801147461, 41.71968078613281; +10.299355506896973, 41.708251953125; +10.399349212646484, 41.70846939086914; +10.499343872070312, 41.72267150878906; +10.599337577819824, 41.73951721191406; +10.699331283569336, 41.74623489379883; +10.799324989318848, 41.74547576904297; +10.89931869506836, 41.747352600097656; +10.999312400817871, 41.74830627441406; +11.099306106567383, 41.746185302734375; +11.199299812316895, 41.743709564208984; +11.299293518066406, 41.74744415283203; +11.399287223815918, 41.764705657958984; +11.49928092956543, 41.78322219848633; +11.599274635314941, 41.79404830932617; +11.699268341064453, 41.79499435424805; +11.799262046813965, 41.79505157470703; +11.899255752563477, 41.806488037109375; +11.999249458312988, 41.82551193237305; +12.0992431640625, 41.85722732543945; +12.199236869812012, 41.90359878540039; +12.299230575561523, 41.9583854675293; +12.399224281311035, 42.01266860961914; +12.499217987060547, 42.048736572265625; +12.599211692810059, 42.06083679199219; +12.69920539855957, 42.03883743286133; +12.799200057983398, 41.991085052490234; +12.89919376373291, 41.94258117675781; +12.999187469482422, 41.91256332397461; +13.099181175231934, 41.90098571777344; +13.199174880981445, 41.89747619628906; +13.299168586730957, 41.899593353271484; +13.399162292480469, 41.90621566772461; +13.49915599822998, 41.91529846191406; +13.599149703979492, 41.92405319213867; +13.699143409729004, 41.93832778930664; +13.799137115478516, 41.96397399902344; +13.899130821228027, 41.99618911743164; +13.999124526977539, 42.028717041015625; +14.09911823272705, 42.057132720947266; +14.199111938476562, 42.07695388793945; +14.299105644226074, 42.08255386352539; +14.399099349975586, 42.06856155395508; +14.499093055725098, 42.043460845947266; +14.59908676147461, 42.01626205444336; +14.699080467224121, 41.9964714050293; +14.799074172973633, 41.9865837097168; +14.899067878723145, 41.98225402832031; +14.999061584472656, 41.98020553588867; +15.099056243896484, 41.98518371582031; +15.199049949645996, 42.00902557373047; +15.299043655395508, 42.03969955444336; +15.39903736114502, 42.0707893371582; +15.499031066894531, 42.10088348388672; +15.599024772644043, 42.130550384521484; +15.699018478393555, 42.15458679199219; +15.799012184143066, 42.159385681152344; +15.899005889892578, 42.15594482421875; +15.99899959564209, 42.15113830566406; +16.0989933013916, 42.14765930175781; +16.198986053466797, 42.1439094543457; +16.298980712890625, 42.13141632080078; +16.398975372314453, 42.11302185058594; +16.49896812438965, 42.088523864746094; +16.598962783813477, 42.05876541137695; +16.698955535888672, 42.03903579711914; +16.7989501953125, 42.043880462646484; +16.898942947387695, 42.07400894165039; +16.998937606811523, 42.11318588256836; +17.09893035888672, 42.14946746826172; +17.198925018310547, 42.18269729614258; +17.298917770385742, 42.2062873840332; +17.39891242980957, 42.214168548583984; +17.498905181884766, 42.214481353759766; +17.598899841308594, 42.21824645996094; +17.69889259338379, 42.22433853149414; +17.798887252807617, 42.224727630615234; +17.898880004882812, 42.22136688232422; +17.99887466430664, 42.224945068359375; +18.098867416381836, 42.231849670410156; +18.198862075805664, 42.22536849975586; +18.29885482788086, 42.20183181762695; +18.398849487304688, 42.16920471191406; +18.498842239379883, 42.12710952758789; +18.59883689880371, 42.066932678222656; +18.69883155822754, 42.00390625; +18.798824310302734, 41.96304702758789; +18.898818969726562, 41.943809509277344; +18.998811721801758, 41.93319320678711; +19.098806381225586, 41.928558349609375; +19.19879913330078, 41.93319320678711; +19.29879379272461, 41.939476013183594; +19.398786544799805, 41.936405181884766; +19.498781204223633, 41.92955780029297; +19.598773956298828, 41.92398452758789; +19.698768615722656, 41.916439056396484; +19.79876136779785, 41.91363525390625; +19.89875602722168, 41.916465759277344; +19.998748779296875, 41.91815948486328; +20.098743438720703, 41.9086799621582; +20.1987361907959, 41.88261032104492; +20.298730850219727, 41.850948333740234; +20.398723602294922, 41.82003402709961; +20.49871826171875, 41.791751861572266; +20.598711013793945, 41.76454162597656; +20.698705673217773, 41.734413146972656; +20.79869842529297, 41.70693588256836; +20.898693084716797, 41.67369842529297; +20.998687744140625, 41.62106704711914; +21.09868049621582, 41.55952453613281; +21.19867515563965, 41.51435089111328; +21.298667907714844, 41.49061584472656; +21.398662567138672, 41.46483612060547; +21.498655319213867, 41.4427604675293; +21.598649978637695, 41.43818283081055; +21.69864273071289, 41.43525695800781; +21.79863739013672, 41.40766525268555; +21.898630142211914, 41.35971450805664; +21.998624801635742, 41.316768646240234; +22.098617553710938, 41.277156829833984; +22.198612213134766, 41.230716705322266; +22.29860496520996, 41.18770980834961; +22.39859962463379, 41.15258026123047; +22.498592376708984, 41.1245002746582; +22.598587036132812, 41.100440979003906; +22.698579788208008, 41.07469177246094; +22.798574447631836, 41.05028533935547; +22.89856719970703, 41.02985382080078; +22.99856185913086, 41.0181884765625; +23.098554611206055, 41.00235366821289; +23.198549270629883, 40.96886444091797; +23.29854393005371, 40.927730560302734; +23.398536682128906, 40.88481521606445; +23.498531341552734, 40.83938217163086; +23.59852409362793, 40.79429626464844; +23.698518753051758, 40.759368896484375; +23.798511505126953, 40.737831115722656; +23.89850616455078, 40.71238708496094; +23.998498916625977, 40.67681884765625; +24.098493576049805, 40.632286071777344; +24.198486328125, 40.584468841552734; +24.298480987548828, 40.544273376464844; +24.398473739624023, 40.51607894897461; +24.49846839904785, 40.50230407714844; +24.598461151123047, 40.49533462524414; +24.698455810546875, 40.4795036315918; +24.79844856262207, 40.448307037353516; +24.8984432220459, 40.399505615234375; +24.998435974121094, 40.34996032714844; +25.098430633544922, 40.309547424316406; +25.198423385620117, 40.26604461669922; +25.298418045043945, 40.21370315551758; +25.39841079711914, 40.15841293334961; +25.49840545654297, 40.115787506103516; +25.598400115966797, 40.078758239746094; +25.698392868041992, 40.04244613647461; +25.79838752746582, 40.01413345336914; +25.898380279541016, 40.003448486328125; +25.998374938964844, 39.995758056640625; +26.09836769104004, 39.969146728515625; +26.198362350463867, 39.92509841918945; +26.298355102539062, 39.87981414794922; +26.39834976196289, 39.84915542602539; +26.498342514038086, 39.834835052490234; +26.598337173461914, 39.835289001464844; +26.69832992553711, 39.84233093261719; +26.798324584960938, 39.85150909423828; +26.898317337036133, 39.85718536376953; +26.99831199645996, 39.84969711303711; +27.098304748535156, 39.81473159790039; +27.198299407958984, 39.75038146972656; +27.29829216003418, 39.68283462524414; +27.398286819458008, 39.62495040893555; +27.498279571533203, 39.57516860961914; +27.59827423095703, 39.53260040283203; +27.698266983032227, 39.51505661010742; +27.798261642456055, 39.529449462890625; +27.898256301879883, 39.54827880859375; +27.998249053955078, 39.55215072631836; +28.098243713378906, 39.541236877441406; +28.1982364654541, 39.53270721435547; +28.29823112487793, 39.52055358886719; +28.398223876953125, 39.505741119384766; +28.498218536376953, 39.49864959716797; +28.59821128845215, 39.503604888916016; +28.698205947875977, 39.505271911621094; +28.798198699951172, 39.482994079589844; +28.898193359375, 39.44398498535156; +28.998186111450195, 39.39680862426758; +29.098180770874023, 39.35798263549805; +29.19817352294922, 39.336055755615234; +29.298168182373047, 39.33834457397461; +29.398160934448242, 39.35672378540039; +29.49815559387207, 39.37831497192383; +29.598148345947266, 39.3983039855957; +29.698143005371094, 39.40475082397461; +29.79813575744629, 39.391361236572266; +29.898130416870117, 39.36398696899414; +29.998123168945312, 39.33680725097656; +30.09811782836914, 39.31251907348633; +30.19811248779297, 39.294376373291016; +30.298105239868164, 39.28776931762695; +30.398099899291992, 39.29188919067383; +30.498092651367188, 39.29511642456055; +30.598087310791016, 39.29536819458008; +30.69808006286621, 39.30284881591797; +30.79807472229004, 39.31272888183594; +30.898067474365234, 39.31201171875; +30.998062133789062, 39.306461334228516; +31.098054885864258, 39.30937576293945; +31.198049545288086, 39.319210052490234; +31.29804229736328, 39.31880569458008; +31.39803695678711, 39.306461334228516; +31.498029708862305, 39.298095703125; +31.598024368286133, 39.294368743896484; +31.698017120361328, 39.29128646850586; +31.798011779785156, 39.28813171386719; +31.89800453186035, 39.29403305053711; +31.99799919128418, 39.309120178222656; +32.097991943359375, 39.32404327392578; +32.1979866027832, 39.33650207519531; +32.29798126220703, 39.34244155883789; +32.397972106933594, 39.34238815307617; +32.49796676635742, 39.33759689331055; +32.59796142578125, 39.332977294921875; +32.69795608520508, 39.332069396972656; +32.797950744628906, 39.340415954589844; +32.89794158935547, 39.36235427856445; +32.9979362487793, 39.39348602294922; +33.097930908203125, 39.429595947265625; +33.19792556762695, 39.46865463256836; +33.297916412353516, 39.51466751098633; +33.397911071777344, 39.54723358154297; +33.49790573120117, 39.5598030090332; +33.597900390625, 39.56121826171875; +33.69789123535156, 39.56489181518555; +33.79788589477539, 39.57213592529297; +33.89788055419922, 39.569766998291016; +33.99787521362305, 39.568668365478516; +34.09786605834961, 39.57864761352539; +34.19786071777344, 39.6018180847168; +34.297855377197266, 39.6247444152832; +34.397850036621094, 39.64104461669922; +34.497840881347656, 39.66358184814453; +34.597835540771484, 39.69727325439453; +34.69783020019531, 39.733707427978516; +34.79782485961914, 39.75629806518555; +34.89781951904297, 39.77018737792969; +34.99781036376953, 39.79006576538086; +35.09780502319336, 39.820247650146484; +35.19779968261719, 39.853816986083984; +35.297794342041016, 39.88021469116211; +35.39778518676758, 39.90901184082031; +35.497779846191406, 39.94078826904297; +35.597774505615234, 39.96947479248047; +35.69776916503906, 39.98158264160156; +35.797760009765625, 39.98805618286133; +35.89775466918945, 40.010372161865234; +35.99774932861328, 40.04351043701172; +36.09774398803711, 40.07978057861328; +36.19773483276367, 40.10946273803711; +36.2977294921875, 40.14059829711914; +36.39772415161133, 40.165184020996094; +36.497718811035156, 40.181392669677734; +36.59770965576172, 40.19776153564453; +36.69770431518555, 40.21904754638672; +36.797698974609375, 40.24574279785156; +36.8976936340332, 40.27367401123047; +36.997684478759766, 40.31061553955078; +37.097679138183594, 40.35231399536133; +37.19767379760742, 40.39318084716797; +37.29766845703125, 40.4279899597168; +37.39766311645508, 40.452823638916016; +37.49765396118164, 40.47197723388672; +37.59764862060547, 40.481693267822266; +37.6976432800293, 40.48291778564453; +37.797637939453125, 40.48738479614258; +37.89762878417969, 40.503204345703125; +37.997623443603516, 40.53835678100586; +38.097618103027344, 40.57711410522461; +38.19761276245117, 40.615028381347656; +38.297603607177734, 40.65176010131836; +38.39759826660156, 40.67781448364258; +38.49759292602539, 40.68996047973633; +38.59758758544922, 40.68961715698242; +38.69757843017578, 40.68991470336914; +38.79757308959961, 40.695987701416016; +38.89756774902344, 40.706424713134766; +38.997562408447266, 40.72260284423828; +39.09755325317383, 40.74081039428711; +39.197547912597656, 40.76292419433594; +39.297542572021484, 40.78920364379883; +39.39753723144531, 40.82489013671875; +39.49753189086914, 40.865272521972656; +39.5975227355957, 40.90898513793945; +39.69751739501953, 40.954322814941406; +39.79751205444336, 40.989540100097656; +39.89750671386719, 41.014678955078125; +39.99749755859375, 41.020198822021484; +40.09749221801758, 41.0166015625; +40.197486877441406, 41.00775146484375; +40.297481536865234, 41.001380920410156; +40.3974723815918, 41.00456237792969; +40.497467041015625, 41.006282806396484; +40.59746170043945, 41.0071907043457; +40.69745635986328, 41.00193786621094; +40.797447204589844, 40.99794387817383; +40.89744186401367, 41.000179290771484; +40.9974365234375, 41.011741638183594; +41.09743118286133, 41.03237533569336; +41.19742202758789, 41.05131912231445; +41.29741668701172, 41.07023620605469; +41.39741134643555, 41.07931900024414; +41.497406005859375, 41.076480865478516; +41.59739685058594, 41.06416702270508; +41.697391510009766, 41.06079864501953; +41.797386169433594, 41.075401306152344; +41.89738082885742, 41.09931182861328; +41.99737548828125, 41.12590789794922; +42.09736633300781, 41.14844512939453; +42.19736099243164, 41.167510986328125; +42.29735565185547, 41.16859436035156; +42.3973503112793, 41.15531539916992; +42.49734115600586, 41.13600540161133; +42.59733581542969, 41.11992645263672; +42.697330474853516, 41.110904693603516; +42.797325134277344, 41.10499572753906; +42.897315979003906, 41.10650634765625; +42.997310638427734, 41.11671447753906; +43.09730529785156, 41.125640869140625; +43.19729995727539, 41.12718200683594; +43.29729080200195, 41.11809158325195; +43.39728546142578, 41.10671615600586; +43.49728012084961, 41.09946823120117; +43.59727478027344, 41.09101104736328; +43.697265625, 41.089393615722656; +43.79726028442383, 41.097686767578125; +43.897254943847656, 41.10921096801758; +43.997249603271484, 41.10578536987305; +44.09724426269531, 41.08131790161133; +44.197235107421875, 41.0479621887207; +44.2972297668457, 41.013023376464844; +44.39722442626953, 40.981510162353516; +44.49721908569336, 40.962093353271484; +44.59720993041992, 40.958106994628906; +44.69720458984375, 40.964111328125; +44.79719924926758, 40.97686767578125; +44.897193908691406, 40.99385452270508; +44.99718475341797, 41.00353240966797; +45.0971794128418, 40.993587493896484; +45.197174072265625, 40.96790313720703; +45.29716873168945, 40.9456787109375; +45.397159576416016, 40.92854309082031; +45.497154235839844, 40.91250228881836; +45.59714889526367, 40.91056442260742; +45.6971435546875, 40.93363952636719; +45.79713439941406, 40.97425079345703; +45.89712905883789, 40.995277404785156; +45.99712371826172, 40.97947311401367; +46.09711837768555, 40.941200256347656; +46.19710922241211, 40.89811325073242; +46.29710388183594, 40.860198974609375; +46.397098541259766, 40.82207489013672; +46.497093200683594, 40.79314422607422; +46.59708786010742, 40.78055953979492; +46.697078704833984, 40.77776336669922; +46.79707336425781, 40.76437759399414; +46.89706802368164, 40.73540115356445; +46.99706268310547, 40.70048141479492; +47.09705352783203, 40.670291900634766; +47.19704818725586, 40.64398193359375; +47.29704284667969, 40.615230560302734; +47.397037506103516, 40.59113693237305; +47.49702835083008, 40.568119049072266; +47.597023010253906, 40.547245025634766; +47.697017669677734, 40.53022003173828; +47.79701232910156, 40.5330810546875; +47.897003173828125, 40.56241226196289; +47.99699783325195, 40.59440612792969; +48.09699249267578, 40.60951614379883; +48.19698715209961, 40.61075973510742; +48.29697799682617, 40.610870361328125; +48.39697265625, 40.602012634277344; +48.49696731567383, 40.574947357177734; +48.596961975097656, 40.53904724121094; +48.696956634521484, 40.513999938964844; +48.79694747924805, 40.498756408691406; +48.896942138671875, 40.479183197021484; +48.9969367980957, 40.454200744628906; +49.09693145751953, 40.42530822753906; +49.196922302246094, 40.4044075012207; +49.29691696166992, 40.401405334472656; +49.39691162109375, 40.417476654052734; +49.49690628051758, 40.44839859008789; +49.59689712524414, 40.47993469238281; +49.69689178466797, 40.50558853149414; +49.7968864440918, 40.518455505371094; +49.896881103515625, 40.51460266113281; +49.99687194824219, 40.51423645019531; +50.096866607666016, 40.5248908996582; +50.196861267089844, 40.5427131652832; +50.29685592651367, 40.55826187133789; +50.396846771240234, 40.57620620727539; +50.49684143066406, 40.60820388793945; +50.59683609008789, 40.640621185302734; +50.69683074951172, 40.667137145996094; +50.79682159423828, 40.69668197631836; +50.89681625366211, 40.74399185180664; +50.99681091308594, 40.80378341674805; +51.096805572509766, 40.85704803466797; +51.196800231933594, 40.90373229980469; +51.296791076660156, 40.9598274230957; +51.396785736083984, 41.05371856689453; +51.49678039550781, 41.27436828613281; +51.59677505493164, 41.76925277709961; +51.6967658996582, 42.70018768310547; +51.79676055908203, 44.14199447631836; +51.89675521850586, 46.08277893066406; +51.99674987792969, 48.47446060180664; +52.09674072265625, 51.24470520019531; +52.19673538208008, 54.315677642822266; +52.296730041503906, 57.580501556396484; +52.396724700927734, 60.922943115234375; +52.4967155456543, 64.2099380493164; +52.596710205078125, 67.31948852539062; +52.69670486450195, 70.14866638183594; +52.79669952392578, 72.61563110351562; +52.896690368652344, 74.67744445800781; +52.99668502807617, 76.3859634399414; +53.0966796875, 77.9127426147461; +53.19667434692383, 79.54548645019531; +53.296669006347656, 81.6641616821289; +53.39665985107422, 84.64432525634766; +53.49665451049805, 88.7834243774414; +53.596649169921875, 94.29904174804688; +53.6966438293457, 101.55204010009766; +53.796634674072266, 111.33660888671875; +53.896629333496094, 124.8280029296875; +53.99662399291992, 143.0805206298828; +54.09661865234375, 166.47543334960938; +54.19660949707031, 194.76229858398438; +54.29660415649414, 227.3883056640625; +54.39659881591797, 263.5312194824219; +54.4965934753418, 302.1302185058594; +54.59658432006836, 342.30596923828125; +54.69657897949219, 383.925048828125; +54.796573638916016, 427.3752136230469; +54.896568298339844, 472.8972473144531; +54.996559143066406, 520.1420288085938; +55.096553802490234, 568.09619140625; +55.19654846191406, 615.2998657226562; +55.29654312133789, 660.3722534179688; +55.39653396606445, 702.6275634765625; +55.49652862548828, 741.8035278320312; +55.59652328491211, 777.51708984375; +55.69651794433594, 809.3270263671875; +55.796512603759766, 837.0746459960938; +55.89650344848633, 860.625244140625; +55.996498107910156, 879.1747436523438; +56.096492767333984, 891.783447265625; +56.19648742675781, 898.0504150390625; +56.296478271484375, 898.1485595703125; +56.3964729309082, 892.6085205078125; +56.49646759033203, 882.3078002929688; +56.59646224975586, 868.5848388671875; +56.69645309448242, 852.7088623046875; +56.79644775390625, 835.809326171875; +56.89644241333008, 818.8573608398438; +56.996437072753906, 802.3504028320312; +57.09642791748047, 785.8206176757812; +57.1964225769043, 767.9820556640625; +57.296417236328125, 747.4675903320312; +57.39641189575195, 723.2107543945312; +57.496402740478516, 694.7015991210938; +57.596397399902344, 662.05615234375; +57.69639205932617, 626.1553955078125; +57.79638671875, 588.3900146484375; +57.89637756347656, 550.0066528320312; +57.99637222290039, 511.7375793457031; +58.09636688232422, 473.8995361328125; +58.19636154174805, 436.8671875; +58.296356201171875, 401.1888122558594; +58.39634704589844, 367.4500732421875; +58.496341705322266, 336.436767578125; +58.596336364746094, 309.32720947265625; +58.69633102416992, 287.47088623046875; +58.796321868896484, 271.81622314453125; +58.89631652832031, 262.6263427734375; +58.99631118774414, 259.56402587890625; +59.09630584716797, 261.6809997558594; +59.19629669189453, 267.4372863769531; +59.29629135131836, 274.96697998046875; +59.39628601074219, 282.5332946777344; +59.496280670166016, 288.82989501953125; +59.59627151489258, 293.1266784667969; +59.696266174316406, 295.3175354003906; +59.796260833740234, 295.751953125; +59.89625549316406, 294.9272155761719; +59.996246337890625, 293.1627197265625; +60.09624099731445, 290.5148010253906; +60.19623565673828, 286.7887878417969; +60.29623031616211, 281.6561584472656; +60.39622497558594, 274.7877197265625; +60.4962158203125, 265.95281982421875; +60.59621047973633, 255.11239624023438; +60.696205139160156, 242.44866943359375; +60.796199798583984, 228.3148193359375; +60.89619064331055, 213.04849243164062; +60.996185302734375, 196.6547393798828; +61.0961799621582, 178.40696716308594; +61.19617462158203, 156.7345428466797; +61.296165466308594, 129.66432189941406; +61.39616012573242, 95.6148681640625; +61.49615478515625, 53.91048049926758; +61.59614944458008, 4.815086841583252; +61.69614028930664, -50.4890251159668; +61.79613494873047, -109.91106414794922; +61.8961296081543, -170.75428771972656; +61.996124267578125, -230.33119201660156; +62.09611511230469, -286.4615478515625; +62.196109771728516, -337.5904235839844; +62.296104431152344, -382.7731628417969; +62.39609909057617, -421.7358703613281; +62.496089935302734, -454.89422607421875; +62.59608459472656, -483.19989013671875; +62.69607925415039, -507.7886047363281; +62.79607391357422, -529.6078491210938; +62.89606857299805, -549.2034912109375; +62.99605941772461, -566.7076416015625; +63.09605407714844, -581.96728515625; +63.196048736572266, -594.730224609375; +63.296043395996094, -604.8988037109375; +63.396034240722656, -612.7670288085938; +63.496028900146484, -619.072021484375; +63.59602355957031, -624.77685546875; +63.69601821899414, -630.7445678710938; +63.7960090637207, -637.5245361328125; +63.89600372314453, -645.3021240234375; +63.99599838256836, -653.9132080078125; +64.09599304199219, -662.8952026367188; +64.19598388671875, -671.6629638671875; +64.29598236083984, -679.7736206054688; +64.3959732055664, -687.0909423828125; +64.49596405029297, -693.731689453125; +64.59596252441406, -699.8998413085938; +64.69595336914062, -705.7883911132812; +64.79594421386719, -711.5386352539062; +64.89594268798828, -717.14404296875; +64.99593353271484, -722.2723388671875; +65.09593200683594, -726.1754760742188; +65.1959228515625, -727.9089965820312; +65.29591369628906, -726.7215576171875; +65.39591217041016, -722.3021240234375; +65.49590301513672, -714.7587890625; +65.59590148925781, -704.5664672851562; +65.69589233398438, -692.586669921875; +65.79588317871094, -679.918701171875; +65.89588165283203, -667.5455932617188; +65.9958724975586, -656.052490234375; +66.09586334228516, -645.6572875976562; +66.19586181640625, -636.40771484375; +66.29585266113281, -628.3026123046875; +66.3958511352539, -621.3095092773438; +66.49584197998047, -615.350830078125; +66.59583282470703, -610.3060913085938; +66.69583129882812, -606.0234985351562; +66.79582214355469, -602.334228515625; +66.89581298828125, -599.0626831054688; +66.99581146240234, -596.0353393554688; +67.0958023071289, -593.0905151367188; +67.19580078125, -590.0755615234375; +67.29579162597656, -586.8447875976562; +67.39578247070312, -583.257080078125; +67.49578094482422, -579.186767578125; +67.59577178955078, -574.5242919921875; +67.69577026367188, -569.1654663085938; +67.79576110839844, -563.0115966796875; +67.895751953125, -555.9763793945312; +67.9957504272461, -547.9994506835938; +68.09574127197266, -539.0457153320312; +68.19573211669922, -529.1145629882812; +68.29573059082031, -518.265380859375; +68.39572143554688, -506.6070251464844; +68.49571990966797, -494.17236328125; +68.59571075439453, -480.86212158203125; +68.6957015991211, -467.02294921875; +68.79570007324219, -454.1895751953125; +68.89569091796875, -444.97845458984375; +68.99568176269531, -441.98492431640625; +69.0956802368164, -446.8220520019531; +69.19567108154297, -460.0732116699219; +69.29566955566406, -481.2046813964844; +69.39566040039062, -508.2304382324219; +69.49565124511719, -537.979736328125; +69.59564971923828, -567.2479858398438; +69.69564056396484, -593.8060913085938; +69.79563903808594, -616.3313598632812; +69.8956298828125, -633.8023681640625; +69.99562072753906, -645.2031860351562; +70.09561920166016, -649.640625; +70.19561004638672, -646.612060546875; +70.29560089111328, -636.374267578125; +70.39559936523438, -620.4119873046875; +70.49559020996094, -601.6005249023438; +70.59558868408203, -583.7080078125; +70.6955795288086, -570.4322509765625; +70.79557037353516, -564.4884643554688; +70.89556884765625, -567.0422973632812; +70.99555969238281, -577.5180053710938; +71.09555053710938, -593.931884765625; +71.19554901123047, -613.659423828125; +71.29553985595703, -634.286376953125; +71.39553833007812, -654.176513671875; +71.49552917480469, -672.552001953125; +71.59552001953125, -689.2197875976562; +71.69551849365234, -704.1990966796875; +71.7955093383789, -717.489990234375; +71.8955078125, -729.0120239257812; +71.99549865722656, -738.66552734375; +72.09548950195312, -746.4727172851562; +72.19548797607422, -752.6832885742188; +72.29547882080078, -757.7227172851562; +72.39546966552734, -762.0062255859375; +72.49546813964844, -765.8054809570312; +72.595458984375, -769.230224609375; +72.6954574584961, -772.2860107421875; +72.79544830322266, -774.9312744140625; +72.89543914794922, -777.1045532226562; +72.99543762207031, -778.746337890625; +73.09542846679688, -779.8192749023438; +73.19541931152344, -780.3375854492188; +73.29541778564453, -780.3709716796875; +73.3954086303711, -780.0291137695312; +73.49540710449219, -779.434326171875; +73.59539794921875, -778.6930541992188; +73.69538879394531, -777.8632202148438; +73.7953872680664, -776.9166259765625; +73.89537811279297, -775.722900390625; +73.99536895751953, -774.0576782226562; +74.09536743164062, -771.6387329101562; +74.19535827636719, -768.150634765625; +74.29535675048828, -763.2509765625; +74.39534759521484, -756.56591796875; +74.4953384399414, -747.6875610351562; +74.5953369140625, -736.2485961914062; +74.69532775878906, -722.1622924804688; +74.79532623291016, -705.9315185546875; +74.89531707763672, -688.703857421875; +74.99530792236328, -671.9319458007812; +75.09530639648438, -656.9323120117188; +75.19529724121094, -644.6094970703125; +75.2952880859375, -635.2719116210938; +75.3952865600586, -628.4584350585938; +75.49527740478516, -622.9951171875; +75.59527587890625, -617.419189453125; +75.69526672363281, -610.4767456054688; +75.79525756835938, -601.3837890625; +75.89525604248047, -589.869140625; +75.99524688720703, -576.1541748046875; +76.0952377319336, -560.8943481445312; +76.19523620605469, -545.0281982421875; +76.29522705078125, -529.5670776367188; +76.39522552490234, -515.38330078125; +76.4952163696289, -503.0049133300781; +76.59520721435547, -492.485595703125; +76.69520568847656, -483.39788818359375; +76.79519653320312, -474.9658203125; +76.89519500732422, -466.2591857910156; +76.99518585205078, -456.37939453125; +77.09517669677734, -444.60614013671875; +77.19517517089844, -430.46856689453125; +77.295166015625, -413.8027648925781; +77.39515686035156, -394.8916015625; +77.49515533447266, -374.6261291503906; +77.59514617919922, -354.4013977050781; +77.69514465332031, -335.68988037109375; +77.79513549804688, -319.6004333496094; +77.89512634277344, -306.6600341796875; +77.99512481689453, -296.70050048828125; +78.0951156616211, -288.7560729980469; +78.19510650634766, -281.1937255859375; +78.29510498046875, -272.17047119140625; +78.39509582519531, -260.14849853515625; +78.4950942993164, -244.14212036132812; +78.59508514404297, -223.6255645751953; +78.69507598876953, -198.25050354003906; +78.79507446289062, -167.61032104492188; +78.89506530761719, -131.2830810546875; +78.99506378173828, -89.1533203125; +79.09505462646484, -41.73816680908203; +79.1950454711914, 9.742684364318848; +79.2950439453125, 63.45707321166992; +79.39503479003906, 117.117919921875; +79.49502563476562, 168.2757568359375; +79.59502410888672, 214.86447143554688; +79.69501495361328, 255.69940185546875; +79.79501342773438, 290.5506591796875; +79.89500427246094, 319.85260009765625; +79.9949951171875, 344.3450622558594; +80.0949935913086, 364.87310791015625; +80.19498443603516, 382.2294616699219; +80.29497528076172, 397.09600830078125; +80.39497375488281, 410.0185852050781; +80.49496459960938, 421.4136657714844; +80.59496307373047, 431.56304931640625; +80.69495391845703, 440.656494140625; +80.7949447631836, 448.8484802246094; +80.89494323730469, 456.2505187988281; +80.99493408203125, 462.9566955566406; +81.09493255615234, 469.0462951660156; +81.1949234008789, 474.59002685546875; +81.29491424560547, 479.6295166015625; +81.39491271972656, 484.20831298828125; +81.49490356445312, 488.3867492675781; +81.59489440917969, 492.1827087402344; +81.69489288330078, 495.6000671386719; +81.79488372802734, 498.68487548828125; +81.89488220214844, 501.4956359863281; +81.994873046875, 504.05767822265625; +82.09486389160156, 506.3681335449219; +82.19486236572266, 508.4652404785156; +82.29485321044922, 510.3797607421875; +82.39484405517578, 512.080810546875; +82.49484252929688, 513.5466918945312; +82.59483337402344, 514.7811889648438; +82.69483184814453, 515.7969970703125; +82.7948226928711, 516.5966186523438; +82.89481353759766, 517.2012939453125; +82.99481201171875, 517.6649169921875; +83.09480285644531, 517.9918212890625; +83.19479370117188, 518.1593627929688; +83.29479217529297, 518.1538696289062; +83.39478302001953, 517.9284057617188; +83.49478149414062, 517.3907470703125; +83.59477233886719, 516.390625; +83.69476318359375, 514.8031005859375; +83.79476165771484, 512.4634399414062; +83.8947525024414, 509.14813232421875; +83.9947509765625, 504.58905029296875; +84.09474182128906, 498.2867431640625; +84.19473266601562, 489.09039306640625; +84.29473114013672, 474.9012145996094; +84.39472198486328, 453.3381042480469; +84.49471282958984, 422.91802978515625; +84.59471130371094, 383.8312683105469; +84.6947021484375, 337.9631042480469; +84.7947006225586, 288.5481262207031; +84.89469146728516, 239.69996643066406; +84.99468231201172, 195.3557891845703; +85.09468078613281, 158.1084747314453; +85.19467163085938, 128.71083068847656; +85.29466247558594, 106.41159057617188; +85.39466094970703, 89.73481750488281; +85.4946517944336, 77.16974639892578; +85.59465026855469, 67.619873046875; +85.69464111328125, 60.41557312011719; +85.79463195800781, 55.06685256958008; +85.8946304321289, 51.11836624145508; +85.99462127685547, 48.160457611083984; +86.09461975097656, 45.90141677856445; +86.19461059570312, 44.13469696044922; +86.29460144042969, 42.7030029296875; +86.39459991455078, 41.50068664550781; +86.49459075927734, 40.47414016723633; +86.5945816040039, 39.6052360534668; +86.694580078125, 38.859134674072266; +86.79457092285156, 38.207435607910156; +86.89456939697266, 37.64138412475586; +86.99456024169922, 37.151580810546875; +87.09455108642578, 36.71158218383789; +87.19454956054688, 36.30542755126953; +87.29454040527344, 35.937286376953125; +87.39453125, 35.613433837890625; +87.4945297241211, 35.322425842285156; +87.59452056884766, 35.05887222290039; +87.69451904296875, 34.81990051269531; +87.79450988769531, 34.601806640625; +87.89450073242188, 34.40123748779297; +87.99449920654297, 34.215091705322266; +88.09449005126953, 34.049720764160156; +88.19448852539062, 33.905155181884766; +88.29447937011719, 33.78557586669922; +88.39447021484375, 33.684730529785156; +88.49446868896484, 33.596858978271484; +88.5944595336914, 33.51600646972656; +88.69445037841797, 33.440032958984375; +88.79444885253906, 33.3795166015625; +88.89443969726562, 33.34694290161133; +88.99443817138672, 33.35038757324219; +89.09442901611328, 33.376426696777344; +89.19441986083984, 33.410587310791016; +89.29441833496094, 33.44892883300781; +89.3944091796875, 33.48530197143555; +89.49440002441406, 33.51762771606445; +89.59439849853516, 33.539859771728516; +89.69438934326172, 33.566280364990234; +89.79438781738281, 33.60975646972656; +89.89437866210938, 33.67046356201172; +89.99436950683594, 33.746055603027344; +90.09436798095703, 33.82729721069336; +90.1943588256836, 33.91830062866211; +90.29434967041016, 34.013671875; +90.39434814453125, 34.112648010253906; +90.49433898925781, 34.21541976928711; +90.5943374633789, 34.31867980957031; +90.69432830810547, 34.41959762573242; +90.79431915283203, 34.515769958496094; +90.89431762695312, 34.61138153076172; +90.99430847167969, 34.71095275878906; +91.09430694580078, 34.81437301635742; +91.19429779052734, 34.91584777832031; +91.2942886352539, 35.018218994140625; +91.394287109375, 35.126708984375; +91.49427795410156, 35.24180603027344; +91.59426879882812, 35.35835266113281; +91.69426727294922, 35.47534942626953; +91.79425811767578, 35.61125564575195; +91.89425659179688, 35.765140533447266; +91.99424743652344, 35.92901611328125; +92.09423828125, 36.095909118652344; +92.1942367553711, 36.2614631652832; +92.29422760009766, 36.420345306396484; +92.39421844482422, 36.548683166503906; +92.49421691894531, 36.656394958496094; +92.59420776367188, 36.748008728027344; +92.69420623779297, 36.82817459106445; +92.79419708251953, 36.899723052978516; +92.8941879272461, 36.968990325927734; +92.99418640136719, 37.053890228271484; +93.09417724609375, 37.14643478393555; +93.19417572021484, 37.247249603271484; +93.2941665649414, 37.35776138305664; +93.39415740966797, 37.47225570678711; +93.49415588378906, 37.58449935913086; +93.59414672851562, 37.68526840209961; +93.69413757324219, 37.77404022216797; +93.79413604736328, 37.85024642944336; +93.89412689208984, 37.92171096801758; +93.99412536621094, 37.997798919677734; +94.0941162109375, 38.07529830932617; +94.19410705566406, 38.151031494140625; +94.29410552978516, 38.22537612915039; +94.39409637451172, 38.30247497558594; +94.49408721923828, 38.37675476074219; +94.59408569335938, 38.44255828857422; +94.69407653808594, 38.50239562988281; +94.79407501220703, 38.56494903564453; +94.8940658569336, 38.638427734375; +94.99405670166016, 38.7166748046875; +95.09405517578125, 38.78361129760742; +95.19404602050781, 38.840309143066406; +95.2940444946289, 38.906715393066406; +95.39403533935547, 38.98920822143555; +95.49402618408203, 39.06803512573242; +95.59402465820312, 39.1335563659668; +95.69401550292969, 39.19070816040039; +95.79400634765625, 39.2449951171875; +95.89400482177734, 39.28826904296875; +95.9939956665039, 39.316734313964844; +96.093994140625, 39.338768005371094; +96.19398498535156, 39.35981369018555; +96.29397583007812, 39.39363479614258; +96.39397430419922, 39.445892333984375; +96.49396514892578, 39.51103210449219; +96.59395599365234, 39.57693099975586; +96.69395446777344, 39.63924789428711; +96.7939453125, 39.69655227661133; +96.8939437866211, 39.73759841918945; +96.99393463134766, 39.75768280029297; +97.09392547607422, 39.770408630371094; +97.19392395019531, 39.792789459228516; +97.29391479492188, 39.82890319824219; +97.39391326904297, 39.87081527709961; +97.49390411376953, 39.91048049926758; +97.5938949584961, 39.94751739501953; +97.69389343261719, 39.97782516479492; +97.79388427734375, 39.99733352661133; +97.89387512207031, 40.0116081237793; +97.9938735961914, 40.034950256347656; +98.09386444091797, 40.08171081542969; +98.19386291503906, 40.14012908935547; +98.29385375976562, 40.18976593017578; +98.39384460449219, 40.22829055786133; +98.49384307861328, 40.262298583984375; +98.59383392333984, 40.29422378540039; +98.6938247680664, 40.3170280456543; +98.7938232421875, 40.33843994140625; +98.89381408691406, 40.37241744995117; +98.99381256103516, 40.41398239135742; +99.09380340576172, 40.4510498046875; +99.19379425048828, 40.48777389526367; +99.29379272460938, 40.53273010253906; +99.39378356933594, 40.576473236083984; +99.4937744140625, 40.60605239868164; +99.5937728881836, 40.626258850097656; +99.69376373291016, 40.647491455078125; +99.79376220703125, 40.65915298461914; +99.89375305175781, 40.65741729736328; +99.99374389648438, 40.656089782714844; +100.09374237060547, 40.66960525512695; +100.19373321533203, 40.69200134277344; +100.29373168945312, 40.7066650390625; +100.39372253417969, 40.71696853637695; +100.49371337890625, 40.731563568115234; +100.59371185302734, 40.74961853027344; +100.6937026977539, 40.766639709472656; +100.79369354248047, 40.779457092285156; +100.89369201660156, 40.798702239990234; +100.99368286132812, 40.82392120361328; +101.09368133544922, 40.849788665771484; +101.19367218017578, 40.86921310424805; +101.29366302490234, 40.877586364746094; +101.39366149902344, 40.87866973876953; +101.49365234375, 40.88249969482422; +101.59364318847656, 40.89822006225586; +101.69364166259766, 40.9168815612793; +101.79363250732422, 40.93186569213867; +101.89363098144531, 40.946468353271484; +101.99362182617188, 40.972434997558594; +102.09361267089844, 41.00102996826172; +102.19361114501953, 41.01479721069336; +102.2936019897461, 41.00929260253906; +102.39360046386719, 40.995872497558594; +102.49359130859375, 40.987789154052734; +102.59358215332031, 40.982887268066406; +102.6935806274414, 40.97825241088867; +102.79357147216797, 40.97814178466797; +102.89356231689453, 40.989322662353516; +102.99356079101562, 41.001312255859375; +103.09355163574219, 40.99599838256836; +103.19355010986328, 40.97583770751953; +103.29354095458984, 40.957427978515625; +103.3935317993164, 40.944976806640625; +103.4935302734375, 40.93306350708008; +103.59352111816406, 40.9285888671875; +103.69351196289062, 40.94538116455078; +103.79351043701172, 40.98343276977539; +103.89350128173828, 41.02476119995117; +103.99349975585938, 41.05430221557617; +104.09349060058594, 41.066734313964844; +104.1934814453125, 41.062129974365234; +104.2934799194336, 41.05520248413086; +104.39347076416016, 41.04291534423828; +104.49346923828125, 41.02232360839844; +104.59346008300781, 41.00362777709961; +104.69345092773438, 40.996761322021484; +104.79344940185547, 41.00528335571289; +104.89344024658203, 41.009700775146484; +104.9934310913086, 41.018619537353516; +105.09342956542969, 41.03419876098633; +105.19342041015625, 41.04069519042969; +105.29341888427734, 41.027286529541016; +105.3934097290039, 41.00170135498047; +105.49340057373047, 40.98698425292969; +105.59339904785156, 40.982322692871094; +105.69338989257812, 40.978633880615234; +105.79338073730469, 40.977046966552734; +105.89337921142578, 40.991031646728516; +105.99337005615234, 41.017173767089844; +106.09336853027344, 41.03351974487305; +106.193359375, 41.0245361328125; +106.29335021972656, 41.000553131103516; +106.39334869384766, 40.981388092041016; +106.49333953857422, 40.96940994262695; +106.59333801269531, 40.962799072265625; +106.69332885742188, 40.96078872680664; +106.79331970214844, 40.972843170166016; +106.89331817626953, 41.005821228027344; +106.9933090209961, 41.05574035644531; +107.09329986572266, 41.10414505004883; +107.19329833984375, 41.13406753540039; +107.29328918457031, 41.14727020263672; +107.3932876586914, 41.14031219482422; +107.49327850341797, 41.109474182128906; +107.59326934814453, 41.05762481689453; +107.69326782226562, 41.01310729980469; +107.79325866699219, 40.998653411865234; +107.89324951171875, 41.005916595458984; +107.99324798583984, 41.018409729003906; +108.0932388305664, 41.02702331542969; +108.1932373046875, 41.03466796875; +108.29322814941406, 41.03241729736328; +108.39321899414062, 41.017921447753906; +108.49321746826172, 40.999732971191406; +108.59320831298828, 40.99468994140625; +108.69319915771484, 41.0101203918457; +108.79319763183594, 41.04025650024414; +108.8931884765625, 41.07521438598633; +108.9931869506836, 41.103214263916016; +109.09317779541016, 41.12144470214844; +109.19316864013672, 41.137062072753906; +109.29316711425781, 41.15489196777344; +109.39315795898438, 41.17118453979492; +109.49315643310547, 41.18526077270508; +109.59314727783203, 41.19781494140625; +109.6931381225586, 41.211299896240234; +109.79313659667969, 41.21905517578125; +109.89312744140625, 41.212955474853516; +109.99311828613281, 41.202754974365234; +110.0931167602539, 41.20005798339844; +110.19310760498047, 41.206485748291016; +110.29310607910156, 41.20718765258789; +110.39309692382812, 41.187442779541016; +110.49308776855469, 41.166351318359375; +110.59308624267578, 41.16212463378906; +110.69307708740234, 41.18443298339844; +110.7930679321289, 41.22193145751953; +110.89306640625, 41.264347076416016; +110.99305725097656, 41.31311798095703; +111.09305572509766, 41.35613250732422; +111.19304656982422, 41.38780975341797; +111.29303741455078, 41.39173126220703; +111.39303588867188, 41.372962951660156; +111.49302673339844, 41.35102844238281; +111.59302520751953, 41.342430114746094; +111.6930160522461, 41.35466384887695; +111.79300689697266, 41.368900299072266; +111.89300537109375, 41.377952575683594; +111.99299621582031, 41.38526916503906; +112.09298706054688, 41.393348693847656; +112.19298553466797, 41.40856170654297; +112.29297637939453, 41.42036437988281; +112.39297485351562, 41.432350158691406; +112.49296569824219, 41.450889587402344; +112.59295654296875, 41.48469161987305; +112.69295501708984, 41.532264709472656; +112.7929458618164, 41.56775665283203; +112.89293670654297, 41.5867805480957; +112.99293518066406, 41.598609924316406; +113.09292602539062, 41.61209487915039; +113.19292449951172, 41.61579895019531; +113.29291534423828, 41.5991096496582; +113.39290618896484, 41.58126449584961; +113.49290466308594, 41.575172424316406; +113.5928955078125, 41.567169189453125; +113.6928939819336, 41.55699157714844; +113.79288482666016, 41.563331604003906; +113.89287567138672, 41.60041427612305; +113.99287414550781, 41.65113067626953; +114.09286499023438, 41.69765090942383; +114.19285583496094, 41.74789047241211; +114.29285430908203, 41.803062438964844; +114.3928451538086, 41.8441162109375; +114.49284362792969, 41.85835266113281; +114.59283447265625, 41.857383728027344; +114.69282531738281, 41.85832214355469; +114.7928237915039, 41.859188079833984; +114.89281463623047, 41.85107421875; +114.99280548095703, 41.844749450683594; +115.09280395507812, 41.86094665527344; +115.19279479980469, 41.89710998535156; +115.29279327392578, 41.931861877441406; +115.39278411865234, 41.95568084716797; +115.4927749633789, 41.97136306762695; +115.5927734375, 41.976531982421875; +115.69276428222656, 41.96106719970703; +115.79275512695312, 41.93468475341797; +115.89275360107422, 41.92055130004883; +115.99274444580078, 41.92043685913086; +116.09274291992188, 41.92487716674805; +116.19273376464844, 41.941314697265625; +116.292724609375, 41.980079650878906; +116.3927230834961, 42.03108596801758; +116.49271392822266, 42.06785583496094; +116.59271240234375, 42.08848571777344; +116.69270324707031, 42.10540771484375; +116.79269409179688, 42.11736297607422; +116.89269256591797, 42.121864318847656; +116.99268341064453, 42.12886047363281; +117.0926742553711, 42.14891815185547; +117.19267272949219, 42.180641174316406; +117.29266357421875, 42.211158752441406; +117.39266204833984, 42.239173889160156; +117.4926528930664, 42.260990142822266; +117.59264373779297, 42.267417907714844; +117.69264221191406, 42.266197204589844; +117.79263305664062, 42.26884841918945; +117.89262390136719, 42.28696060180664; +117.99262237548828, 42.31532669067383; +118.09261322021484, 42.34550094604492; +118.19261169433594, 42.38185119628906; +118.2926025390625, 42.424625396728516; +118.39259338378906, 42.46786880493164; +118.49259185791016, 42.50505447387695; +118.59258270263672, 42.534889221191406; +118.69258117675781, 42.5648078918457; +118.79257202148438, 42.591705322265625; +118.89256286621094, 42.6121711730957; +118.99256134033203, 42.625457763671875; +119.0925521850586, 42.63249969482422; +119.19254302978516, 42.637550354003906; +119.29254150390625, 42.643165588378906; +119.39253234863281, 42.650146484375; +119.4925308227539, 42.65936279296875; +119.59252166748047, 42.68373489379883; +119.69251251220703, 42.736045837402344; +119.79251098632812, 42.805992126464844; +119.89250183105469, 42.87408447265625; +119.99249267578125, 42.93778610229492; +120.09249114990234, 43.00175476074219; +120.1924819946289, 43.05010223388672; +120.29248046875, 43.08295440673828; +120.39247131347656, 43.12066650390625; +120.49246215820312, 43.18184280395508; +120.59246063232422, 43.24905014038086; +120.69245147705078, 43.297977447509766; +120.79244995117188, 43.338523864746094; +120.89244079589844, 43.3697395324707; +120.992431640625, 43.39004898071289; +121.0924301147461, 43.401763916015625; +121.19242095947266, 43.42627716064453; +121.29241180419922, 43.482421875; +121.39241027832031, 43.55818176269531; +121.49240112304688, 43.645999908447266; +121.59239959716797, 43.73660659790039; +121.69239044189453, 43.82862091064453; +121.7923812866211, 43.91797637939453; +121.89237976074219, 44.00348663330078; +121.99237060546875, 44.0994873046875; +122.09236145019531, 44.20374298095703; +122.1923599243164, 44.305137634277344; +122.29235076904297, 44.391727447509766; +122.39234924316406, 44.4752197265625; +122.49234008789062, 44.56893539428711; +122.59233093261719, 44.66238021850586; +122.69232940673828, 44.750885009765625; +122.79232025146484, 44.84103775024414; +122.89231872558594, 44.9477653503418; +122.9923095703125, 45.0697021484375; +123.09230041503906, 45.20175552368164; +123.19229888916016, 45.34666061401367; +123.29228973388672, 45.496063232421875; +123.39228057861328, 45.653594970703125; +123.49227905273438, 45.81681823730469; +123.59226989746094, 45.98664474487305; +123.69226837158203, 46.161415100097656; +123.7922592163086, 46.33876037597656; +123.89225006103516, 46.532535552978516; +123.99224853515625, 46.741268157958984; +124.09223937988281, 46.954132080078125; +124.19223022460938, 47.16227340698242; +124.29222869873047, 47.36093521118164; +124.39221954345703, 47.559410095214844; +124.49221801757812, 47.75605392456055; +124.59220886230469, 47.954097747802734; +124.69219970703125, 48.16264724731445; +124.79219818115234, 48.38388442993164; +124.8921890258789, 48.610694885253906; +124.99217987060547, 48.83877944946289; +125.09217834472656, 49.07893371582031; +125.19216918945312, 49.33171844482422; +125.29216766357422, 49.59097671508789; +125.39215850830078, 49.853919982910156; +125.49214935302734, 50.13041305541992; +125.59214782714844, 50.41997146606445; +125.692138671875, 50.712890625; +125.7921371459961, 51.01316452026367; +125.89212799072266, 51.332763671875; +125.99211883544922, 51.67655563354492; +126.09211730957031, 52.035770416259766; +126.19210815429688, 52.405677795410156; +126.29209899902344, 52.79267501831055; +126.39209747314453, 53.19864273071289; +126.4920883178711, 53.62000274658203; +126.59208679199219, 54.05227279663086; +126.69207763671875, 54.49668502807617; +126.79206848144531, 54.95821762084961; +126.8920669555664, 55.43079376220703; +126.99205780029297, 55.91066360473633; +127.09204864501953, 56.394874572753906; +127.19204711914062, 56.88477325439453; +127.29203796386719, 57.38579559326172; +127.39203643798828, 57.89686584472656; +127.49202728271484, 58.42670822143555; +127.5920181274414, 58.97972106933594; +127.6920166015625, 59.55479431152344; +127.79200744628906, 60.13970184326172; +127.89200592041016, 60.72584533691406; +127.99199676513672, 61.3239631652832; +128.0919952392578, 61.94078063964844; +128.19198608398438, 62.577247619628906; +128.29197692871094, 63.23149108886719; +128.3919677734375, 63.90842056274414; +128.49195861816406, 64.6141357421875; +128.5919647216797, 65.34505462646484; +128.69195556640625, 66.08544921875; +128.7919464111328, 66.82714080810547; +128.89193725585938, 67.5674057006836; +128.99192810058594, 68.32247161865234; +129.09193420410156, 69.10279083251953; +129.19192504882812, 69.89820861816406; +129.2919158935547, 70.70172119140625; +129.39190673828125, 71.50603485107422; +129.4918975830078, 72.32077026367188; +129.59188842773438, 73.14947509765625; +129.69189453125, 73.98645782470703; +129.79188537597656, 74.83817291259766; +129.89187622070312, 75.71794128417969; +129.9918670654297, 76.63062286376953; +130.09185791015625, 77.56576538085938; +130.19186401367188, 78.50343322753906; +130.29185485839844, 79.44216918945312; +130.391845703125, 80.37255096435547; +130.49183654785156, 81.28826904296875; +130.59182739257812, 82.2090835571289; +130.69183349609375, 83.15460968017578; +130.7918243408203, 84.13418579101562; +130.89181518554688, 85.12969970703125; +130.99180603027344, 86.13597869873047; +131.091796875, 87.16027069091797; +131.19180297851562, 88.19673156738281; +131.2917938232422, 89.23975372314453; +131.39178466796875, 90.27980041503906; +131.4917755126953, 91.3340072631836; +131.59176635742188, 92.41777038574219; +131.69175720214844, 93.5272216796875; +131.79176330566406, 94.64350891113281; +131.89175415039062, 95.75991821289062; +131.9917449951172, 96.8944320678711; +132.09173583984375, 98.0507583618164; +132.1917266845703, 99.21159362792969; +132.29173278808594, 100.35636138916016; +132.3917236328125, 101.49067687988281; +132.49171447753906, 102.63390350341797; +132.59170532226562, 103.79177856445312; +132.6916961669922, 104.9558334350586; +132.7917022705078, 106.12371826171875; +132.89169311523438, 107.31388854980469; +132.99168395996094, 108.53150177001953; +133.0916748046875, 109.75809478759766; +133.19166564941406, 110.98007202148438; +133.2916717529297, 112.20600128173828; +133.39166259765625, 113.45487976074219; +133.4916534423828, 114.71100616455078; +133.59164428710938, 115.95084381103516; +133.69163513183594, 117.15657043457031; +133.7916259765625, 118.340576171875; +133.89163208007812, 119.51560974121094; +133.9916229248047, 120.67952728271484; +134.09161376953125, 121.8440933227539; +134.1916046142578, 123.02778625488281; +134.29159545898438, 124.24858856201172; +134.3916015625, 125.4948959350586; +134.49159240722656, 126.75325775146484; +134.59158325195312, 128.0280303955078; +134.6915740966797, 129.3269805908203; +134.79156494140625, 130.62583923339844; +134.89157104492188, 131.89569091796875; +134.99156188964844, 133.12913513183594; +135.091552734375, 134.35328674316406; +135.19154357910156, 135.58734130859375; +135.29153442382812, 136.81204223632812; +135.39154052734375, 138.031005859375; +135.4915313720703, 139.26931762695312; +135.59152221679688, 140.53652954101562; +135.69151306152344, 141.80520629882812; +135.79150390625, 143.04150390625; +135.89149475097656, 144.2523956298828; +135.9915008544922, 145.45669555664062; +136.09149169921875, 146.6629180908203; +136.1914825439453, 147.8685760498047; +136.29147338867188, 149.0625457763672; +136.39146423339844, 150.23983764648438; +136.49147033691406, 151.407958984375; +136.59146118164062, 152.56976318359375; +136.6914520263672, 153.71446228027344; +136.79144287109375, 154.83384704589844; +136.8914337158203, 155.93194580078125; +136.99143981933594, 157.0229034423828; +137.0914306640625, 158.11285400390625; +137.19142150878906, 159.20458984375; +137.29141235351562, 160.29527282714844; +137.3914031982422, 161.38290405273438; +137.4914093017578, 162.4730682373047; +137.59140014648438, 163.57015991210938; +137.69139099121094, 164.66505432128906; +137.7913818359375, 165.75558471679688; +137.89137268066406, 166.8390350341797; +137.99136352539062, 167.9051055908203; +138.09136962890625, 168.9308624267578; +138.1913604736328, 169.90928649902344; +138.29135131835938, 170.8610076904297; +138.39134216308594, 171.79537963867188; +138.4913330078125, 172.71971130371094; +138.59133911132812, 173.64022827148438; +138.6913299560547, 174.5686492919922; +138.79132080078125, 175.50123596191406; +138.8913116455078, 176.42251586914062; +138.99130249023438, 177.3323974609375; +139.09130859375, 178.22891235351562; +139.19129943847656, 179.115234375; +139.29129028320312, 179.99224853515625; +139.3912811279297, 180.8737335205078; +139.49127197265625, 181.75820922851562; +139.59127807617188, 182.62376403808594; +139.69126892089844, 183.4591827392578; +139.791259765625, 184.27857971191406; +139.89125061035156, 185.1042022705078; +139.99124145507812, 185.91522216796875; +140.0912322998047, 186.69610595703125; +140.1912384033203, 187.44847106933594; +140.29122924804688, 188.2061309814453; +140.39122009277344, 188.973388671875; +140.4912109375, 189.72872924804688; +140.59120178222656, 190.47372436523438; +140.6912078857422, 191.20513916015625; +140.79119873046875, 191.92776489257812; +140.8911895751953, 192.6289520263672; +140.99118041992188, 193.30433654785156; +141.09117126464844, 193.96066284179688; +141.19117736816406, 194.59938049316406; +141.29116821289062, 195.24000549316406; +141.3911590576172, 195.89332580566406; +141.49114990234375, 196.53564453125; +141.5911407470703, 197.1504669189453; +141.69114685058594, 197.7291259765625; +141.7911376953125, 198.29412841796875; +141.89112854003906, 198.85357666015625; +141.99111938476562, 199.4027099609375; +142.0911102294922, 199.95516967773438; +142.19110107421875, 200.51258850097656; +142.29110717773438, 201.0889129638672; +142.39109802246094, 201.663330078125; +142.4910888671875, 202.22015380859375; +142.59107971191406, 202.7599334716797; +142.69107055664062, 203.29104614257812; +142.79107666015625, 203.81321716308594; +142.8910675048828, 204.3125762939453; +142.99105834960938, 204.79856872558594; +143.09104919433594, 205.28012084960938; +143.1910400390625, 205.7481231689453; +143.29104614257812, 206.1927490234375; +143.3910369873047, 206.62982177734375; +143.49102783203125, 207.07032775878906; +143.5910186767578, 207.49783325195312; +143.69100952148438, 207.89698791503906; +143.791015625, 208.27316284179688; +143.89100646972656, 208.63027954101562; +143.99099731445312, 208.9746856689453; +144.0909881591797, 209.31436157226562; +144.19097900390625, 209.66526794433594; +144.2909698486328, 210.0341033935547; +144.39097595214844, 210.4208526611328; +144.490966796875, 210.8350372314453; +144.59095764160156, 211.26158142089844; +144.69094848632812, 211.6807098388672; +144.7909393310547, 212.0840606689453; +144.8909454345703, 212.4818878173828; +144.99093627929688, 212.8822784423828; +145.09092712402344, 213.270263671875; +145.19091796875, 213.63070678710938; +145.29090881347656, 213.96563720703125; +145.3909149169922, 214.29713439941406; +145.49090576171875, 214.6386260986328; +145.5908966064453, 214.9803009033203; +145.69088745117188, 215.3131866455078; +145.79087829589844, 215.65330505371094; +145.890869140625, 216.0166778564453; +145.99087524414062, 216.39138793945312; +146.0908660888672, 216.7563934326172; +146.19085693359375, 217.11082458496094; +146.2908477783203, 217.46888732910156; +146.39083862304688, 217.8402557373047; +146.4908447265625, 218.2213134765625; +146.59083557128906, 218.58937072753906; +146.69082641601562, 218.93948364257812; +146.7908172607422, 219.2755889892578; +146.89080810546875, 219.61082458496094; +146.99081420898438, 219.93817138671875; +147.09080505371094, 220.2520294189453; +147.1907958984375, 220.5767364501953; +147.29078674316406, 220.91285705566406; +147.39077758789062, 221.26605224609375; +147.49078369140625, 221.6265106201172; +147.5907745361328, 221.9877471923828; +147.69076538085938, 222.33074951171875; +147.79075622558594, 222.6434783935547; +147.8907470703125, 222.95225524902344; +147.99073791503906, 223.2683563232422; +148.0907440185547, 223.58448791503906; +148.19073486328125, 223.89694213867188; +148.2907257080078, 224.22122192382812; +148.39071655273438, 224.56295776367188; +148.49070739746094, 224.89859008789062; +148.59071350097656, 225.22140502929688; +148.69070434570312, 225.54833984375; +148.7906951904297, 225.8802490234375; +148.89068603515625, 226.21151733398438; +148.9906768798828, 226.55897521972656; +149.09068298339844, 226.94342041015625; +149.190673828125, 227.34774780273438; +149.29066467285156, 227.742431640625; +149.39065551757812, 228.14280700683594; +149.4906463623047, 228.57403564453125; +149.5906524658203, 229.0128173828125; +149.69064331054688, 229.42591857910156; +149.79063415527344, 229.81365966796875; +149.890625, 230.20172119140625; +149.99061584472656, 230.5863037109375; +150.09060668945312, 230.94976806640625; +150.19061279296875, 231.30645751953125; +150.2906036376953, 231.68704223632812; +150.39059448242188, 232.0948486328125; +150.49058532714844, 232.50961303710938; +150.590576171875, 232.92369079589844; +150.69058227539062, 233.34423828125; +150.7905731201172, 233.75523376464844; +150.89056396484375, 234.1374969482422; +150.9905548095703, 234.50592041015625; +151.09054565429688, 234.88775634765625; +151.1905517578125, 235.29541015625; +151.29054260253906, 235.7196044921875; +151.39053344726562, 236.1591796875; +151.4905242919922, 236.59689331054688; +151.59051513671875, 237.02188110351562; +151.69052124023438, 237.43392944335938; +151.79051208496094, 237.8296356201172; +151.8905029296875, 238.21566772460938; +151.99049377441406, 238.5986785888672; +152.09048461914062, 239.0016326904297; +152.1904754638672, 239.42120361328125; +152.2904815673828, 239.83978271484375; +152.39047241210938, 240.2569580078125; +152.49046325683594, 240.66690063476562; +152.5904541015625, 241.0799102783203; +152.69044494628906, 241.4980010986328; +152.7904510498047, 241.93251037597656; +152.89044189453125, 242.39044189453125; +152.9904327392578, 242.8538055419922; +153.09042358398438, 243.30516052246094; +153.19041442871094, 243.72894287109375; +153.29042053222656, 244.131591796875; +153.39041137695312, 244.5259552001953; +153.4904022216797, 244.9091339111328; +153.59039306640625, 245.29525756835938; +153.6903839111328, 245.70016479492188; +153.79039001464844, 246.1351776123047; +153.890380859375, 246.59889221191406; +153.99037170410156, 247.0651092529297; +154.09036254882812, 247.51661682128906; +154.1903533935547, 247.93246459960938; +154.29034423828125, 248.308837890625; +154.39035034179688, 248.6389923095703; +154.49034118652344, 248.93020629882812; +154.59033203125, 249.21929931640625; +154.69032287597656, 249.54391479492188; +154.79031372070312, 249.91226196289062; +154.89031982421875, 250.29714965820312; +154.9903106689453, 250.68161010742188; +155.09030151367188, 251.0496063232422; +155.19029235839844, 251.38998413085938; +155.290283203125, 251.68898010253906; +155.39028930664062, 251.9635772705078; +155.4902801513672, 252.25607299804688; +155.59027099609375, 252.5817108154297; +155.6902618408203, 252.93576049804688; +155.79025268554688, 253.29580688476562; +155.8902587890625, 253.65187072753906; +155.99024963378906, 253.99154663085938; +156.09024047851562, 254.29380798339844; +156.1902313232422, 254.56875610351562; +156.29022216796875, 254.84259033203125; +156.3902130126953, 255.13375854492188; +156.49021911621094, 255.43655395507812; +156.5902099609375, 255.73193359375; +156.69020080566406, 256.00726318359375; +156.79019165039062, 256.26312255859375; +156.8901824951172, 256.4907531738281; +156.9901885986328, 256.6914978027344; +157.09017944335938, 256.8766174316406; +157.19017028808594, 257.07196044921875; +157.2901611328125, 257.3030090332031; +157.39015197753906, 257.55926513671875; +157.4901580810547, 257.83624267578125; +157.59014892578125, 258.1264953613281; +157.6901397705078, 258.4236145019531; +157.79013061523438, 258.7079772949219; +157.89012145996094, 258.9633483886719; +157.99012756347656, 259.1919250488281; +158.09011840820312, 259.39666748046875; +158.1901092529297, 259.57470703125; +158.29010009765625, 259.7362976074219; +158.3900909423828, 259.90924072265625; +158.49008178710938, 260.10546875; +158.590087890625, 260.3286437988281; +158.69007873535156, 260.5720520019531; +158.79006958007812, 260.8286437988281; +158.8900604248047, 261.0846252441406; +158.99005126953125, 261.32293701171875; +159.09005737304688, 261.54681396484375; +159.19004821777344, 261.7557373046875; +159.2900390625, 261.95758056640625; +159.39002990722656, 262.16552734375; +159.49002075195312, 262.3880310058594; +159.59002685546875, 262.6219482421875; +159.6900177001953, 262.8575134277344; +159.79000854492188, 263.0842590332031; +159.88999938964844, 263.2907409667969; +159.989990234375, 263.473876953125; +160.08999633789062, 263.6414489746094; +160.1899871826172, 263.8058776855469; +160.28997802734375, 263.9913635253906; +160.3899688720703, 264.208984375; +160.48995971679688, 264.45452880859375; +160.58995056152344, 264.69976806640625; +160.68995666503906, 264.9254150390625; +160.78994750976562, 265.1434326171875; +160.8899383544922, 265.3583984375; +160.98992919921875, 265.580078125; +161.0899200439453, 265.7996826171875; +161.18992614746094, 266.0211486816406; +161.2899169921875, 266.26580810546875; +161.38990783691406, 266.5440979003906; +161.48989868164062, 266.83782958984375; +161.5898895263672, 267.1135559082031; +161.6898956298828, 267.3617248535156; +161.78988647460938, 267.60772705078125; +161.88987731933594, 267.8503112792969; +161.9898681640625, 268.06939697265625; +162.08985900878906, 268.272705078125; +162.1898651123047, 268.49151611328125; +162.28985595703125, 268.7622985839844; +162.3898468017578, 269.05364990234375; +162.48983764648438, 269.3437194824219; +162.58982849121094, 269.61883544921875; +162.6898193359375, 269.8816833496094; +162.78982543945312, 270.14239501953125; +162.8898162841797, 270.4005432128906; +162.98980712890625, 270.6750183105469; +163.0897979736328, 270.9654846191406; +163.18978881835938, 271.2773742675781; +163.289794921875, 271.60748291015625; +163.38978576660156, 271.9354248046875; +163.48977661132812, 272.2464294433594; +163.5897674560547, 272.5289611816406; +163.68975830078125, 272.79644775390625; +163.78976440429688, 273.0702819824219; +163.88975524902344, 273.3592834472656; +163.98974609375, 273.6725158691406; +164.08973693847656, 274.01776123046875; +164.18972778320312, 274.412841796875; +164.2897186279297, 274.8318786621094; +164.3897247314453, 275.2291259765625; +164.48971557617188, 275.5925598144531; +164.58970642089844, 275.9326477050781; +164.689697265625, 276.24908447265625; +164.78968811035156, 276.52337646484375; +164.8896942138672, 276.7777404785156; +164.98968505859375, 277.0632019042969; +165.0896759033203, 277.3905334472656; +165.18966674804688, 277.7402038574219; +165.28965759277344, 278.08984375; +165.38966369628906, 278.4462585449219; +165.48965454101562, 278.8167419433594; +165.5896453857422, 279.1875305175781; +165.68963623046875, 279.5430908203125; +165.7896270751953, 279.8800048828125; +165.88963317871094, 280.2141418457031; +165.9896240234375, 280.5625305175781; +166.08961486816406, 280.9200134277344; +166.18960571289062, 281.2872009277344; +166.2895965576172, 281.65966796875; +166.38958740234375, 282.04217529296875; +166.48959350585938, 282.431640625; +166.58958435058594, 282.8055725097656; +166.6895751953125, 283.16259765625; +166.78956604003906, 283.4910583496094; +166.88955688476562, 283.81201171875; +166.98956298828125, 284.1414489746094; +167.0895538330078, 284.4849548339844; +167.18954467773438, 284.8422546386719; +167.28953552246094, 285.20428466796875; +167.3895263671875, 285.58551025390625; +167.48953247070312, 285.9950866699219; +167.5895233154297, 286.40570068359375; +167.68951416015625, 286.7889404296875; +167.7895050048828, 287.1529235839844; +167.88949584960938, 287.52288818359375; +167.989501953125, 287.9031982421875; +168.08949279785156, 288.26202392578125; +168.18948364257812, 288.5992431640625; +168.2894744873047, 288.93182373046875; +168.38946533203125, 289.2681884765625; +168.4894561767578, 289.6092834472656; +168.58946228027344, 289.9425048828125; +168.689453125, 290.26422119140625; +168.78944396972656, 290.5773620605469; +168.88943481445312, 290.8980712890625; +168.9894256591797, 291.2308349609375; +169.0894317626953, 291.5570983886719; +169.18942260742188, 291.8735046386719; +169.28941345214844, 292.19549560546875; +169.389404296875, 292.5439758300781; +169.48939514160156, 292.9116516113281; +169.5894012451172, 293.2752990722656; +169.68939208984375, 293.6318054199219; +169.7893829345703, 293.9886169433594; +169.88937377929688, 294.3505554199219; +169.98936462402344, 294.69384765625; +170.08937072753906, 295.01947021484375; +170.18936157226562, 295.34979248046875; +170.2893524169922, 295.6828918457031; +170.38934326171875, 296.00360107421875; +170.4893341064453, 296.30267333984375; +170.58932495117188, 296.60906982421875; +170.6893310546875, 296.9266052246094; +170.78932189941406, 297.23358154296875; +170.88931274414062, 297.53033447265625; +170.9893035888672, 297.84326171875; +171.08929443359375, 298.1913757324219; +171.18930053710938, 298.5552978515625; +171.28929138183594, 298.9183654785156; +171.3892822265625, 299.2937316894531; +171.48927307128906, 299.68634033203125; +171.58926391601562, 300.0729064941406; +171.68927001953125, 300.42645263671875; +171.7892608642578, 300.7471008300781; +171.88925170898438, 301.0538330078125; +171.98924255371094, 301.3606262207031; +172.0892333984375, 301.677978515625; +172.18923950195312, 302.01055908203125; +172.2892303466797, 302.36187744140625; +172.38922119140625, 302.7306823730469; +172.4892120361328, 303.08892822265625; +172.58920288085938, 303.41900634765625; +172.68919372558594, 303.7267761230469; +172.78919982910156, 304.0406799316406; +172.88919067382812, 304.37359619140625; +172.9891815185547, 304.7183837890625; +173.08917236328125, 305.0865783691406; +173.1891632080078, 305.4729919433594; +173.28916931152344, 305.8587951660156; +173.38916015625, 306.2187805175781; +173.48915100097656, 306.5500793457031; +173.58914184570312, 306.8701477050781; +173.6891326904297, 307.1900329589844; +173.7891387939453, 307.51129150390625; +173.88912963867188, 307.83831787109375; +173.98912048339844, 308.170166015625; +174.089111328125, 308.4973449707031; +174.18910217285156, 308.8128356933594; +174.2891082763672, 309.1327819824219; +174.38909912109375, 309.4902038574219; +174.4890899658203, 309.8858337402344; +174.58908081054688, 310.3076171875; +174.68907165527344, 310.74072265625; +174.7890625, 311.1690979003906; +174.88906860351562, 311.57183837890625; +174.9890594482422, 311.92987060546875; +175.08905029296875, 312.2556457519531; +175.1890411376953, 312.565185546875; +175.28903198242188, 312.88311767578125; +175.3890380859375, 313.2270812988281; +175.48902893066406, 313.6014709472656; +175.58901977539062, 314.00689697265625; +175.6890106201172, 314.4294738769531; +175.78900146484375, 314.8575134277344; +175.88900756835938, 315.2782287597656; +175.98899841308594, 315.6842041015625; +176.0889892578125, 316.0802917480469; +176.18898010253906, 316.4681396484375; +176.28897094726562, 316.8564453125; +176.38897705078125, 317.2531433105469; +176.4889678955078, 317.6522216796875; +176.58895874023438, 318.0538330078125; +176.68894958496094, 318.4498291015625; +176.7889404296875, 318.8432922363281; +176.88893127441406, 319.22998046875; +176.9889373779297, 319.6012268066406; +177.08892822265625, 319.97991943359375; +177.1889190673828, 320.37628173828125; +177.28890991210938, 320.7923278808594; +177.38890075683594, 321.1938171386719; +177.48890686035156, 321.5725402832031; +177.58889770507812, 321.9404602050781; +177.6888885498047, 322.2886962890625; +177.78887939453125, 322.6184387207031; +177.8888702392578, 322.92742919921875; +177.98887634277344, 323.2626647949219; +178.0888671875, 323.6269226074219; +178.18885803222656, 324.0101623535156; +178.28884887695312, 324.3966064453125; +178.3888397216797, 324.77728271484375; +178.4888458251953, 325.1662292480469; +178.58883666992188, 325.554443359375; +178.68882751464844, 325.9359130859375; +178.788818359375, 326.30126953125; +178.88880920410156, 326.6527099609375; +178.98880004882812, 326.9957275390625; +179.08880615234375, 327.330810546875; +179.1887969970703, 327.64788818359375; +179.28878784179688, 327.95733642578125; +179.38877868652344, 328.2797546386719; +179.48876953125, 328.6401062011719; +179.58877563476562, 329.04376220703125; +179.6887664794922, 329.4732360839844; +179.78875732421875, 329.904296875; +179.8887481689453, 330.3305358886719; +179.98873901367188, 330.7635803222656; +180.0887451171875, 331.205322265625; +180.18873596191406, 331.6401062011719; +180.28872680664062, 332.04931640625; +180.3887176513672, 332.45941162109375; +180.48870849609375, 332.8831787109375; +180.5886993408203, 333.32147216796875; +180.68870544433594, 333.74090576171875; +180.7886962890625, 334.1323547363281; +180.88868713378906, 334.51513671875; +180.98867797851562, 334.90618896484375; +181.0886688232422, 335.31915283203125; +181.1886749267578, 335.7376403808594; +181.28866577148438, 336.1598815917969; +181.38865661621094, 336.5849609375; +181.4886474609375, 337.0119323730469; +181.58863830566406, 337.4227600097656; +181.6886444091797, 337.8186340332031; +181.78863525390625, 338.2082214355469; +181.8886260986328, 338.6095886230469; +181.98861694335938, 339.0283508300781; +182.08860778808594, 339.4700012207031; +182.18861389160156, 339.9342346191406; +182.28860473632812, 340.4078369140625; +182.3885955810547, 340.8792419433594; +182.48858642578125, 341.33648681640625; +182.5885772705078, 341.7629089355469; +182.68856811523438, 342.15423583984375; +182.78857421875, 342.53289794921875; +182.88856506347656, 342.9029235839844; +182.98855590820312, 343.26824951171875; +183.0885467529297, 343.6364440917969; +183.18853759765625, 344.0430603027344; +183.28854370117188, 344.5055847167969; +183.38853454589844, 344.988525390625; +183.488525390625, 345.4540710449219; +183.58851623535156, 345.8912048339844; +183.68850708007812, 346.3270263671875; +183.78851318359375, 346.7615966796875; +183.8885040283203, 347.1592712402344; +183.98849487304688, 347.49835205078125; +184.08848571777344, 347.8246154785156; +184.1884765625, 348.182861328125; +184.28848266601562, 348.57598876953125; +184.3884735107422, 348.9817810058594; +184.48846435546875, 349.3880615234375; +184.5884552001953, 349.809326171875; +184.68844604492188, 350.2228698730469; +184.78843688964844, 350.61199951171875; +184.88844299316406, 350.965087890625; +184.98843383789062, 351.2923583984375; +185.0884246826172, 351.61138916015625; +185.18841552734375, 351.9194641113281; +185.2884063720703, 352.2104797363281; +185.38841247558594, 352.4852600097656; +185.4884033203125, 352.7694396972656; +185.58839416503906, 353.0843200683594; +185.68838500976562, 353.4300537109375; +185.7883758544922, 353.801513671875; +185.8883819580078, 354.20977783203125; +185.98837280273438, 354.6476135253906; +186.08836364746094, 355.0641174316406; +186.1883544921875, 355.43084716796875; +186.28834533691406, 355.7710266113281; +186.3883514404297, 356.124267578125; +186.48834228515625, 356.47955322265625; +186.5883331298828, 356.8109130859375; +186.68832397460938, 357.14361572265625; +186.78831481933594, 357.4947814941406; +186.8883056640625, 357.86663818359375; +186.98831176757812, 358.2480773925781; +187.0883026123047, 358.6384582519531; +187.18829345703125, 359.0251159667969; +187.2882843017578, 359.3906555175781; +187.38827514648438, 359.7488098144531; +187.48828125, 360.1135559082031; +187.58827209472656, 360.4694519042969; +187.68826293945312, 360.80816650390625; +187.7882537841797, 361.14178466796875; +187.88824462890625, 361.493408203125; +187.98825073242188, 361.8778076171875; +188.08824157714844, 362.2879333496094; +188.188232421875, 362.7188415527344; +188.28822326660156, 363.1669921875; +188.38821411132812, 363.65191650390625; +188.48822021484375, 364.16925048828125; +188.5882110595703, 364.6821594238281; +188.68820190429688, 365.16448974609375; +188.78819274902344, 365.6195373535156; +188.88818359375, 366.0744323730469; +188.98817443847656, 366.53070068359375; +189.0881805419922, 366.971435546875; +189.18817138671875, 367.4022521972656; +189.2881622314453, 367.83319091796875; +189.38815307617188, 368.2812805175781; +189.48814392089844, 368.7335510253906; +189.58815002441406, 369.1817626953125; +189.68814086914062, 369.6324462890625; +189.7881317138672, 370.0963134765625; +189.88812255859375, 370.5817565917969; +189.9881134033203, 371.0884704589844; +190.08811950683594, 371.613037109375; +190.1881103515625, 372.13531494140625; +190.28810119628906, 372.64227294921875; +190.38809204101562, 373.1313171386719; +190.4880828857422, 373.62249755859375; +190.5880889892578, 374.114501953125; +190.68807983398438, 374.59356689453125; +190.78807067871094, 375.0694580078125; +190.8880615234375, 375.5838623046875; +190.98805236816406, 376.1375427246094; +191.08804321289062, 376.6836853027344; +191.18804931640625, 377.1788024902344; +191.2880401611328, 377.6330261230469; +191.38803100585938, 378.0799255371094; +191.48802185058594, 378.52923583984375; +191.5880126953125, 378.98388671875; +191.68801879882812, 379.45269775390625; +191.7880096435547, 379.96002197265625; +191.88800048828125, 380.501708984375; +191.9879913330078, 381.03680419921875; +192.08798217773438, 381.5189208984375; +192.18798828125, 381.9486389160156; +192.28797912597656, 382.3569030761719; +192.38796997070312, 382.7508239746094; +192.4879608154297, 383.1388244628906; +192.58795166015625, 383.5474853515625; +192.68795776367188, 383.99273681640625; +192.78794860839844, 384.462646484375; +192.887939453125, 384.9296569824219; +192.98793029785156, 385.4016418457031; +193.08792114257812, 385.87408447265625; +193.1879119873047, 386.322509765625; +193.2879180908203, 386.7300720214844; +193.38790893554688, 387.100341796875; +193.48789978027344, 387.4737548828125; +193.587890625, 387.8655090332031; +193.68788146972656, 388.2857360839844; +193.7878875732422, 388.7440185546875; +193.88787841796875, 389.2335205078125; +193.9878692626953, 389.7521667480469; +194.08786010742188, 390.258544921875; +194.18785095214844, 390.7352294921875; +194.28785705566406, 391.191650390625; +194.38784790039062, 391.6339416503906; +194.4878387451172, 392.0625915527344; +194.58782958984375, 392.44873046875; +194.6878204345703, 392.8028869628906; +194.78782653808594, 393.1673583984375; +194.8878173828125, 393.5572204589844; +194.98780822753906, 393.97454833984375; +195.08779907226562, 394.42401123046875; +195.1877899169922, 394.92352294921875; +195.28778076171875, 395.4581298828125; +195.38778686523438, 395.984375; +195.48777770996094, 396.4832763671875; +195.5877685546875, 396.94378662109375; +195.68775939941406, 397.35992431640625; +195.78775024414062, 397.75115966796875; +195.88775634765625, 398.15985107421875; +195.9877471923828, 398.58203125; +196.08773803710938, 398.9870300292969; +196.18772888183594, 399.3768615722656; +196.2877197265625, 399.7787170410156; +196.38772583007812, 400.1902160644531; +196.4877166748047, 400.58709716796875; +196.58770751953125, 400.982421875; +196.6876983642578, 401.4004821777344; +196.78768920898438, 401.8481140136719; +196.8876953125, 402.3228759765625; +196.98768615722656, 402.81402587890625; +197.08767700195312, 403.2947082519531; +197.1876678466797, 403.734619140625; +197.28765869140625, 404.1218566894531; +197.3876495361328, 404.47998046875; +197.48765563964844, 404.8294677734375; +197.587646484375, 405.1970520019531; +197.68763732910156, 405.5984802246094; +197.78762817382812, 406.06109619140625; +197.8876190185547, 406.60235595703125; +197.9876251220703, 407.1991882324219; +198.08761596679688, 407.7975769042969; +198.18760681152344, 408.3577880859375; +198.28759765625, 408.8836364746094; +198.38758850097656, 409.3834228515625; +198.4875946044922, 409.8569030761719; +198.58758544921875, 410.2868347167969; +198.6875762939453, 410.6778259277344; +198.78756713867188, 411.0616149902344; +198.88755798339844, 411.4765319824219; +198.987548828125, 411.9247131347656; +199.08755493164062, 412.38653564453125; +199.1875457763672, 412.8553161621094; +199.28753662109375, 413.3509521484375; +199.3875274658203, 413.86126708984375; +199.48751831054688, 414.3426208496094; +199.5875244140625, 414.7727355957031; +199.68751525878906, 415.1648254394531; +199.78750610351562, 415.5425109863281; +199.8874969482422, 415.91607666015625; +199.98748779296875, 416.30914306640625; +200.08749389648438, 416.74676513671875; +200.18748474121094, 417.22320556640625; +200.2874755859375, 417.714111328125; +200.38746643066406, 418.2213134765625; +200.48745727539062, 418.7447814941406; +200.58746337890625, 419.2453918457031; +200.6874542236328, 419.696044921875; +200.78744506835938, 420.1110534667969; +200.88743591308594, 420.52972412109375; +200.9874267578125, 420.9554443359375; +201.08741760253906, 421.3766784667969; +201.1874237060547, 421.8056945800781; +201.28741455078125, 422.2610168457031; +201.3874053955078, 422.74346923828125; +201.48739624023438, 423.2268371582031; +201.58738708496094, 423.6929931640625; +201.68739318847656, 424.1474914550781; +201.78738403320312, 424.6045227050781; +201.8873748779297, 425.0539245605469; +201.98736572265625, 425.500732421875; +202.0873565673828, 425.954833984375; +202.18736267089844, 426.4191589355469; +202.287353515625, 426.8822021484375; +202.38734436035156, 427.3421630859375; +202.48733520507812, 427.8210144042969; +202.5873260498047, 428.3056640625; +202.6873321533203, 428.7879333496094; +202.78732299804688, 429.26739501953125; +202.88731384277344, 429.75518798828125; +202.9873046875, 430.2282409667969; +203.08729553222656, 430.67877197265625; +203.18728637695312, 431.11468505859375; +203.28729248046875, 431.5426025390625; +203.3872833251953, 431.96636962890625; +203.48727416992188, 432.3758544921875; +203.58726501464844, 432.7950134277344; +203.687255859375, 433.2196350097656; +203.78726196289062, 433.6561584472656; +203.8872528076172, 434.1175842285156; +203.98724365234375, 434.6044921875; +204.0872344970703, 435.1214599609375; +204.18722534179688, 435.62713623046875; +204.2872314453125, 436.0968933105469; +204.38722229003906, 436.5270690917969; +204.48721313476562, 436.93548583984375; +204.5872039794922, 437.3521728515625; +204.68719482421875, 437.7826232910156; +204.78720092773438, 438.2411193847656; +204.88719177246094, 438.7245178222656; +204.9871826171875, 439.2221374511719; +205.08717346191406, 439.7156677246094; +205.18716430664062, 440.18817138671875; +205.2871551513672, 440.6460266113281; +205.3871612548828, 441.09344482421875; +205.48715209960938, 441.5418701171875; +205.58714294433594, 441.9843444824219; +205.6871337890625, 442.40386962890625; +205.78712463378906, 442.8135681152344; +205.8871307373047, 443.2264709472656; +205.98712158203125, 443.66680908203125; +206.0871124267578, 444.13232421875; +206.18710327148438, 444.6115417480469; +206.28709411621094, 445.0962829589844; +206.38710021972656, 445.55645751953125; +206.48709106445312, 445.99822998046875; +206.5870819091797, 446.4358215332031; +206.68707275390625, 446.87921142578125; +206.7870635986328, 447.33612060546875; +206.88706970214844, 447.8214416503906; +206.987060546875, 448.34185791015625; +207.08705139160156, 448.8390197753906; +207.18704223632812, 449.27117919921875; +207.2870330810547, 449.6546325683594; +207.38702392578125, 450.0345153808594; +207.48703002929688, 450.4142150878906; +207.58702087402344, 450.7876281738281; +207.68701171875, 451.1597900390625; +207.78700256347656, 451.5347900390625; +207.88699340820312, 451.9139709472656; +207.98699951171875, 452.2929992675781; +208.0869903564453, 452.665283203125; +208.18698120117188, 453.02130126953125; +208.28697204589844, 453.3930358886719; +208.386962890625, 453.82818603515625; +208.48696899414062, 454.31939697265625; +208.5869598388672, 454.8230895996094; +208.68695068359375, 455.298095703125; +208.7869415283203, 455.7555236816406; +208.88693237304688, 456.2038879394531; +208.9869384765625, 456.62994384765625; +209.08692932128906, 457.0309753417969; +209.18692016601562, 457.4306945800781; +209.2869110107422, 457.87017822265625; +209.38690185546875, 458.3616943359375; +209.4868927001953, 458.89593505859375; +209.58689880371094, 459.4265441894531; +209.6868896484375, 459.9064636230469; +209.78688049316406, 460.339111328125; +209.88687133789062, 460.76605224609375; +209.9868621826172, 461.20135498046875; +210.0868682861328, 461.6053466796875; +210.18685913085938, 461.97869873046875; +210.28684997558594, 462.3800048828125; +210.3868408203125, 462.8191223144531; +210.48683166503906, 463.2530822753906; +210.5868377685547, 463.6568298339844; +210.68682861328125, 464.0589904785156; +210.7868194580078, 464.4931640625; +210.88681030273438, 464.9354248046875; +210.98680114746094, 465.361328125; +211.08680725097656, 465.77655029296875; +211.18679809570312, 466.1887512207031; +211.2867889404297, 466.6135559082031; +211.38677978515625, 467.03314208984375; +211.4867706298828, 467.447998046875; +211.58676147460938, 467.8768005371094; +211.686767578125, 468.32952880859375; +211.78675842285156, 468.8197937011719; +211.88674926757812, 469.3390808105469; +211.9867401123047, 469.885986328125; +212.08673095703125, 470.4459533691406; +212.18673706054688, 470.9867858886719; +212.28672790527344, 471.488525390625; +212.38671875, 471.95111083984375; +212.48670959472656, 472.37567138671875; +212.58670043945312, 472.7657470703125; +212.68670654296875, 473.1428527832031; +212.7866973876953, 473.5509948730469; +212.88668823242188, 474.01751708984375; +212.98667907714844, 474.5129089355469; +213.086669921875, 475.0121154785156; +213.18667602539062, 475.4949035644531; +213.2866668701172, 475.9519348144531; +213.38665771484375, 476.378173828125; +213.4866485595703, 476.7781066894531; +213.58663940429688, 477.181396484375; +213.68663024902344, 477.59027099609375; +213.78663635253906, 478.0155944824219; +213.88662719726562, 478.4700012207031; +213.9866180419922, 478.9441223144531; +214.08660888671875, 479.41595458984375; +214.1865997314453, 479.8525390625; +214.28660583496094, 480.2659912109375; +214.3865966796875, 480.679443359375; +214.48658752441406, 481.1061706542969; +214.58657836914062, 481.5430603027344; +214.6865692138672, 481.9945983886719; +214.7865753173828, 482.4523620605469; +214.88656616210938, 482.88934326171875; +214.98655700683594, 483.3042907714844; +215.0865478515625, 483.7071228027344; +215.18653869628906, 484.11566162109375; +215.28652954101562, 484.5196838378906; +215.38653564453125, 484.9342956542969; +215.4865264892578, 485.38397216796875; +215.58651733398438, 485.8500671386719; +215.68650817871094, 486.30914306640625; +215.7864990234375, 486.75567626953125; +215.88650512695312, 487.19610595703125; +215.9864959716797, 487.63653564453125; +216.08648681640625, 488.0813903808594; +216.1864776611328, 488.5264587402344; +216.28646850585938, 488.9673767089844; +216.386474609375, 489.40826416015625; +216.48646545410156, 489.890625; +216.58645629882812, 490.4263000488281; +216.6864471435547, 490.9684753417969; +216.78643798828125, 491.50177001953125; +216.88644409179688, 492.0350646972656; +216.98643493652344, 492.55877685546875; +217.08642578125, 493.0179748535156; +217.18641662597656, 493.4031066894531; +217.28640747070312, 493.78680419921875; +217.3863983154297, 494.2093811035156; +217.4864044189453, 494.62823486328125; +217.58639526367188, 495.0257263183594; +217.68638610839844, 495.43292236328125; +217.786376953125, 495.8847351074219; +217.88636779785156, 496.3665771484375; +217.9863739013672, 496.8395080566406; +218.08636474609375, 497.3236999511719; +218.1863555908203, 497.818603515625; +218.28634643554688, 498.3113098144531; +218.38633728027344, 498.75732421875; +218.48634338378906, 499.1567687988281; +218.58633422851562, 499.5526123046875; +218.6863250732422, 499.94256591796875; +218.78631591796875, 500.33026123046875; +218.8863067626953, 500.7199401855469; +218.98631286621094, 501.166259765625; +219.0863037109375, 501.6686706542969; +219.18629455566406, 502.17156982421875; +219.28628540039062, 502.6623840332031; +219.3862762451172, 503.14117431640625; +219.48626708984375, 503.6228332519531; +219.58627319335938, 504.0589599609375; +219.68626403808594, 504.4535827636719; +219.7862548828125, 504.870849609375; +219.88624572753906, 505.3589782714844; +219.98623657226562, 505.90118408203125; +220.08624267578125, 506.4245300292969; +220.1862335205078, 506.91351318359375; +220.28622436523438, 507.3609924316406; +220.38621520996094, 507.7795715332031; +220.4862060546875, 508.1623229980469; +220.58621215820312, 508.5130310058594; +220.6862030029297, 508.86834716796875; +220.78619384765625, 509.272705078125; +220.8861846923828, 509.73779296875; +220.98617553710938, 510.2098388671875; +221.086181640625, 510.6534118652344; +221.18617248535156, 511.0869140625; +221.28616333007812, 511.5227355957031; +221.3861541748047, 511.951416015625; +221.48614501953125, 512.3673095703125; +221.5861358642578, 512.79736328125; +221.68614196777344, 513.2469482421875; +221.7861328125, 513.7106323242188; +221.88612365722656, 514.195068359375; +221.98611450195312, 514.7031860351562; +222.0861053466797, 515.218505859375; +222.1861114501953, 515.72900390625; +222.28610229492188, 516.244384765625; +222.38609313964844, 516.755126953125; +222.486083984375, 517.266845703125; +222.58607482910156, 517.7542724609375; +222.6860809326172, 518.2272338867188; +222.78607177734375, 518.7018432617188; +222.8860626220703, 519.2001342773438; +222.98605346679688, 519.7095947265625; +223.08604431152344, 520.1895751953125; +223.18605041503906, 520.652099609375; +223.28604125976562, 521.1338500976562; +223.3860321044922, 521.6320190429688; +223.48602294921875, 522.1226196289062; +223.5860137939453, 522.6219482421875; +223.68600463867188, 523.1354370117188; +223.7860107421875, 523.6400146484375; +223.88600158691406, 524.0992431640625; +223.98599243164062, 524.5172729492188; +224.0859832763672, 524.9183959960938; +224.18597412109375, 525.3236694335938; +224.28598022460938, 525.7505493164062; +224.38597106933594, 526.2164916992188; +224.4859619140625, 526.7306518554688; +224.58595275878906, 527.2696533203125; +224.68594360351562, 527.7838745117188; +224.78594970703125, 528.2349243164062; +224.8859405517578, 528.6533813476562; +224.98593139648438, 529.0828857421875; +225.08592224121094, 529.505615234375; +225.1859130859375, 529.91357421875; +225.28591918945312, 530.3322143554688; +225.3859100341797, 530.81201171875; +225.48590087890625, 531.3486938476562; +225.5858917236328, 531.887939453125; +225.68588256835938, 532.416015625; +225.78587341308594, 532.9190673828125; +225.88587951660156, 533.4130249023438; +225.98587036132812, 533.90380859375; +226.0858612060547, 534.3809814453125; +226.18585205078125, 534.841064453125; +226.2858428955078, 535.2764282226562; +226.38584899902344, 535.7327270507812; +226.48583984375, 536.2317504882812; +226.58583068847656, 536.7257690429688; +226.68582153320312, 537.1912841796875; +226.7858123779297, 537.6454467773438; +226.8858184814453, 538.13525390625; +226.98580932617188, 538.6376342773438; +227.08580017089844, 539.123291015625; +227.185791015625, 539.6150512695312; +227.28578186035156, 540.1362915039062; +227.3857879638672, 540.6761474609375; +227.48577880859375, 541.2013549804688; +227.5857696533203, 541.7142333984375; +227.68576049804688, 542.2197265625; +227.78575134277344, 542.7129516601562; +227.8857421875, 543.20166015625; +227.98574829101562, 543.7034301757812; +228.0857391357422, 544.2515869140625; +228.18572998046875, 544.814453125; +228.2857208251953, 545.3258056640625; +228.38571166992188, 545.7791748046875; +228.4857177734375, 546.1866455078125; +228.58570861816406, 546.5889892578125; +228.68569946289062, 546.9618530273438; +228.7856903076172, 547.3304443359375; +228.88568115234375, 547.7605590820312; +228.98568725585938, 548.2499389648438; +229.08567810058594, 548.7811279296875; +229.1856689453125, 549.3261108398438; +229.28565979003906, 549.8779907226562; +229.38565063476562, 550.4129028320312; +229.48565673828125, 550.91357421875; +229.5856475830078, 551.4209594726562; +229.68563842773438, 551.943115234375; +229.78562927246094, 552.4412231445312; +229.8856201171875, 552.922607421875; +229.98561096191406, 553.4445190429688; +230.0856170654297, 553.9973754882812; +230.18560791015625, 554.516357421875; +230.2855987548828, 554.9781494140625; +230.38558959960938, 555.4329833984375; +230.48558044433594, 555.9036254882812; +230.58558654785156, 556.3569946289062; +230.68557739257812, 556.830322265625; +230.7855682373047, 557.3604125976562; +230.88555908203125, 557.9462280273438; +230.9855499267578, 558.540283203125; +231.08555603027344, 559.111572265625; +231.185546875, 559.6629638671875; +231.28553771972656, 560.16552734375; +231.38552856445312, 560.614013671875; +231.4855194091797, 561.0222778320312; +231.58551025390625, 561.4422607421875; +231.68551635742188, 561.8936157226562; +231.78550720214844, 562.380126953125; +231.885498046875, 562.9110717773438; +231.98548889160156, 563.488037109375; +232.08547973632812, 564.0772094726562; +232.18548583984375, 564.618408203125; +232.2854766845703, 565.1068725585938; +232.38546752929688, 565.5621337890625; +232.48545837402344, 565.988525390625; +232.58544921875, 566.3958129882812; +232.68545532226562, 566.8377075195312; +232.7854461669922, 567.3515014648438; +232.88543701171875, 567.9088134765625; +232.9854278564453, 568.4794921875; +233.08541870117188, 569.0637817382812; +233.1854248046875, 569.63427734375; +233.28541564941406, 570.1631469726562; +233.38540649414062, 570.6758422851562; +233.4853973388672, 571.2562255859375; +233.58538818359375, 571.8779296875; +233.6853790283203, 572.483154296875; +233.78538513183594, 573.0646362304688; +233.8853759765625, 573.6260986328125; +233.98536682128906, 574.1376953125; +234.08535766601562, 574.5226440429688; +234.1853485107422, 574.8428955078125; +234.2853546142578, 575.179931640625; +234.38534545898438, 575.5838623046875; +234.48533630371094, 576.0584106445312; +234.5853271484375, 576.5894775390625; +234.68531799316406, 577.1793212890625; +234.7853240966797, 577.8150024414062; +234.88531494140625, 578.4668579101562; +234.9853057861328, 579.0689697265625; +235.08529663085938, 579.589111328125; +235.18528747558594, 580.0520629882812; +235.28529357910156, 580.5123291015625; +235.38528442382812, 580.9612426757812; +235.4852752685547, 581.3814697265625; +235.58526611328125, 581.8013305664062; +235.6852569580078, 582.2516479492188; +235.78524780273438, 582.7428588867188; +235.88525390625, 583.267578125; +235.98524475097656, 583.8270874023438; +236.08523559570312, 584.4200439453125; +236.1852264404297, 585.0421752929688; +236.28521728515625, 585.6954956054688; +236.38522338867188, 586.3363647460938; +236.48521423339844, 586.9058227539062; +236.585205078125, 587.4207153320312; +236.68519592285156, 587.9380493164062; +236.78518676757812, 588.4995727539062; +236.88519287109375, 589.0742797851562; +236.9851837158203, 589.6400146484375; +237.08517456054688, 590.2047119140625; +237.18516540527344, 590.7515869140625; +237.28515625, 591.2713012695312; +237.38516235351562, 591.7444458007812; +237.4851531982422, 592.1954956054688; +237.58514404296875, 592.6543579101562; +237.6851348876953, 593.117431640625; +237.78512573242188, 593.5662231445312; +237.88511657714844, 593.980224609375; +237.98512268066406, 594.4000244140625; +238.08511352539062, 594.8399047851562; +238.1851043701172, 595.2860107421875; +238.28509521484375, 595.7415771484375; +238.3850860595703, 596.2294921875; +238.48509216308594, 596.7960205078125; +238.5850830078125, 597.4122924804688; +238.68507385253906, 598.040771484375; +238.78506469726562, 598.6702270507812; +238.8850555419922, 599.3082885742188; +238.9850616455078, 599.9613647460938; +239.08505249023438, 600.5662841796875; +239.18504333496094, 601.0818481445312; +239.2850341796875, 601.5341186523438; +239.38502502441406, 601.9790649414062; +239.4850311279297, 602.4435424804688; +239.58502197265625, 602.8920288085938; +239.6850128173828, 603.34130859375; +239.78500366210938, 603.8162231445312; +239.88499450683594, 604.32861328125; +239.9849853515625, 604.8530883789062; +240.08499145507812, 605.3636474609375; +240.1849822998047, 605.8607177734375; +240.28497314453125, 606.3335571289062; +240.3849639892578, 606.8087768554688; +240.48495483398438, 607.2859497070312; +240.5849609375, 607.7736206054688; +240.68495178222656, 608.2860107421875; +240.78494262695312, 608.84619140625; +240.8849334716797, 609.4642333984375; +240.98492431640625, 610.088623046875; +241.08493041992188, 610.6890258789062; +241.18492126464844, 611.2451782226562; +241.284912109375, 611.7615966796875; +241.38490295410156, 612.2567138671875; +241.48489379882812, 612.7473754882812; +241.58489990234375, 613.2612915039062; +241.6848907470703, 613.8245239257812; +241.78488159179688, 614.4244995117188; +241.88487243652344, 615.031005859375; +241.98486328125, 615.6182861328125; +242.08485412597656, 616.1934204101562; +242.1848602294922, 616.7777099609375; +242.28485107421875, 617.3372802734375; +242.3848419189453, 617.8695678710938; +242.48483276367188, 618.3851928710938; +242.58482360839844, 618.9176635742188; +242.68482971191406, 619.4752807617188; +242.78482055664062, 620.0328979492188; +242.8848114013672, 620.5841674804688; +242.98480224609375, 621.1571655273438; +243.0847930908203, 621.7600708007812; +243.18479919433594, 622.3623046875; +243.2847900390625, 622.9254760742188; +243.38478088378906, 623.4534912109375; +243.48477172851562, 623.98388671875; +243.5847625732422, 624.5328369140625; +243.6847686767578, 625.1132202148438; +243.78475952148438, 625.6990356445312; +243.88475036621094, 626.282470703125; +243.9847412109375, 626.8695068359375; +244.08473205566406, 627.48583984375; +244.18472290039062, 628.107666015625; +244.28472900390625, 628.706298828125; +244.3847198486328, 629.3125; +244.48471069335938, 629.9439086914062; +244.58470153808594, 630.6074829101562; +244.6846923828125, 631.2835693359375; +244.78469848632812, 631.9572143554688; +244.8846893310547, 632.62548828125; +244.98468017578125, 633.2667846679688; +245.0846710205078, 633.8679809570312; +245.18466186523438, 634.40478515625; +245.28466796875, 634.8787231445312; +245.38465881347656, 635.372802734375; +245.48464965820312, 635.9258422851562; +245.5846405029297, 636.5081176757812; +245.68463134765625, 637.0855712890625; +245.78463745117188, 637.669921875; +245.88462829589844, 638.2835693359375; +245.984619140625, 638.8798828125; +246.08460998535156, 639.4360961914062; +246.18460083007812, 640.0111083984375; +246.2845916748047, 640.657470703125; +246.3845977783203, 641.3530883789062; +246.48458862304688, 642.0232543945312; +246.58457946777344, 642.6302490234375; +246.6845703125, 643.1913452148438; +246.78456115722656, 643.73779296875; +246.8845672607422, 644.2879028320312; +246.98455810546875, 644.8663940429688; +247.0845489501953, 645.5054321289062; +247.18453979492188, 646.1951293945312; +247.28453063964844, 646.8953247070312; +247.38453674316406, 647.5535278320312; +247.48452758789062, 648.1622924804688; +247.5845184326172, 648.7476806640625; +247.68450927734375, 649.302978515625; +247.7845001220703, 649.8247680664062; +247.88450622558594, 650.318359375; +247.9844970703125, 650.8037109375; +248.08448791503906, 651.2942504882812; +248.18447875976562, 651.7852172851562; +248.2844696044922, 652.3070678710938; +248.38446044921875, 652.8959350585938; +248.48446655273438, 653.5662841796875; +248.58445739746094, 654.3017578125; +248.6844482421875, 655.0504760742188; +248.78443908691406, 655.7525634765625; +248.88442993164062, 656.3522338867188; +248.98443603515625, 656.85302734375; +249.0844268798828, 657.3018188476562; +249.18441772460938, 657.763427734375; +249.28440856933594, 658.2836303710938; +249.3843994140625, 658.873291015625; +249.48440551757812, 659.5224609375; +249.5843963623047, 660.1926879882812; +249.68438720703125, 660.8572998046875; +249.7843780517578, 661.4823608398438; +249.88436889648438, 662.0562744140625; +249.98435974121094, 662.6004028320312; +250.08436584472656, 663.1660766601562; +250.18435668945312, 663.7880859375; +250.2843475341797, 664.4296875; +250.38433837890625, 665.0472412109375; +250.4843292236328, 665.6311645507812; +250.58433532714844, 666.2130737304688; +250.684326171875, 666.7925415039062; +250.78431701660156, 667.3598022460938; +250.88430786132812, 667.9232788085938; +250.9842987060547, 668.51123046875; +251.0843048095703, 669.1199340820312; +251.18429565429688, 669.7000122070312; +251.28428649902344, 670.2401123046875; +251.38427734375, 670.7638549804688; +251.48426818847656, 671.31103515625; +251.5842742919922, 671.8829345703125; +251.68426513671875, 672.4664916992188; +251.7842559814453, 673.075439453125; +251.88424682617188, 673.7216796875; +251.98423767089844, 674.361083984375; +252.084228515625, 674.96728515625; +252.18423461914062, 675.5325927734375; +252.2842254638672, 676.1005249023438; +252.38421630859375, 676.7020874023438; +252.4842071533203, 677.3311157226562; +252.58419799804688, 678.0167236328125; +252.6842041015625, 678.7410888671875; +252.78419494628906, 679.4719848632812; +252.88418579101562, 680.1866455078125; +252.9841766357422, 680.8638916015625; +253.08416748046875, 681.5; +253.18417358398438, 682.0625; +253.28416442871094, 682.556396484375; +253.3841552734375, 683.044189453125; +253.48414611816406, 683.5557250976562; +253.58413696289062, 684.1099853515625; +253.68414306640625, 684.6920166015625; +253.7841339111328, 685.3115234375; +253.88412475585938, 685.9745483398438; +253.98411560058594, 686.6574096679688; +254.0841064453125, 687.3402709960938; +254.18409729003906, 687.9930419921875; +254.2841033935547, 688.640380859375; +254.38409423828125, 689.2959594726562; +254.4840850830078, 689.9710083007812; +254.58407592773438, 690.66455078125; +254.68406677246094, 691.3385620117188; +254.78407287597656, 691.9749755859375; +254.88406372070312, 692.5448608398438; +254.9840545654297, 693.0696411132812; +255.08404541015625, 693.58056640625; +255.1840362548828, 694.1150512695312; +255.28404235839844, 694.697509765625; +255.384033203125, 695.32470703125; +255.48402404785156, 695.986083984375; +255.58401489257812, 696.6690673828125; +255.6840057373047, 697.3585815429688; +255.7840118408203, 698.0170288085938; +255.88400268554688, 698.6170654296875; +255.98399353027344, 699.1553955078125; +256.083984375, 699.6547241210938; +256.1839904785156, 700.1307983398438; +256.2839660644531, 700.635498046875; +256.38397216796875, 701.2236938476562; +256.48394775390625, 701.9243774414062; +256.5839538574219, 702.705078125; +256.6839599609375, 703.5158081054688; +256.783935546875, 704.3145751953125; +256.8839416503906, 705.0321044921875; +256.9839172363281, 705.64111328125; +257.08392333984375, 706.1893310546875; +257.1839294433594, 706.7525024414062; +257.2839050292969, 707.337646484375; +257.3839111328125, 707.947265625; +257.48388671875, 708.5946655273438; +257.5838928222656, 709.2575073242188; +257.68389892578125, 709.8785400390625; +257.78387451171875, 710.4354248046875; +257.8838806152344, 711.0083618164062; +257.9838562011719, 711.6489868164062; +258.0838623046875, 712.3362426757812; +258.1838684082031, 713.0552368164062; +258.2838439941406, 713.7927856445312; +258.38385009765625, 714.5301513671875; +258.48382568359375, 715.222900390625; +258.5838317871094, 715.8297119140625; +258.683837890625, 716.392333984375; +258.7838134765625, 716.9441528320312; +258.8838195800781, 717.4815673828125; +258.9837951660156, 717.986572265625; +259.08380126953125, 718.47412109375; +259.18377685546875, 718.9810791015625; +259.2837829589844, 719.4982299804688; +259.3837890625, 720.0260620117188; +259.4837646484375, 720.567626953125; +259.5837707519531, 721.1993408203125; +259.6837463378906, 721.9003295898438; +259.78375244140625, 722.6087646484375; +259.8837585449219, 723.2589111328125; +259.9837341308594, 723.8324584960938; +260.083740234375, 724.4205322265625; +260.1837158203125, 724.9924926757812; +260.2837219238281, 725.5158081054688; +260.38372802734375, 726.0349731445312; +260.48370361328125, 726.6707153320312; +260.5837097167969, 727.43408203125; +260.6836853027344, 728.2005004882812; +260.78369140625, 728.9267578125; +260.8836975097656, 729.6851196289062; +260.9836730957031, 730.47412109375; +261.08367919921875, 731.205322265625; +261.18365478515625, 731.8440551757812; +261.2836608886719, 732.3967895507812; +261.3836669921875, 732.89404296875; +261.483642578125, 733.37158203125; +261.5836486816406, 733.8848876953125; +261.6836242675781, 734.4558715820312; +261.78363037109375, 735.0556030273438; +261.8836364746094, 735.7237548828125; +261.9836120605469, 736.4483642578125; +262.0836181640625, 737.1661987304688; +262.18359375, 737.831787109375; +262.2835998535156, 738.4244995117188; +262.38360595703125, 738.9915771484375; +262.48358154296875, 739.5382690429688; +262.5835876464844, 740.0912475585938; +262.6835632324219, 740.65478515625; +262.7835693359375, 741.2048950195312; +262.8835754394531, 741.7598266601562; +262.9835510253906, 742.3177490234375; +263.08355712890625, 742.9129638671875; +263.18353271484375, 743.56640625; +263.2835388183594, 744.253173828125; +263.3835144042969, 744.935302734375; +263.4835205078125, 745.6143798828125; +263.5835266113281, 746.3278198242188; +263.6835021972656, 747.0211181640625; +263.78350830078125, 747.6195678710938; +263.88348388671875, 748.1446533203125; +263.9834899902344, 748.6763916015625; +264.08349609375, 749.2193603515625; +264.1834716796875, 749.75830078125; +264.2834777832031, 750.2940063476562; +264.3834533691406, 750.8515625; +264.48345947265625, 751.4381103515625; +264.5834655761719, 752.0165405273438; +264.6834411621094, 752.5401000976562; +264.783447265625, 752.986328125; +264.8834228515625, 753.4075317382812; +264.9834289550781, 753.8976440429688; +265.08343505859375, 754.432861328125; +265.18341064453125, 754.9965209960938; +265.2834167480469, 755.6143798828125; +265.3833923339844, 756.275390625; +265.4833984375, 756.9308471679688; +265.5834045410156, 757.5117797851562; +265.6833801269531, 758.056884765625; +265.78338623046875, 758.5864868164062; +265.88336181640625, 759.114990234375; +265.9833679199219, 759.6494750976562; +266.0833740234375, 760.220458984375; +266.183349609375, 760.8154907226562; +266.2833557128906, 761.3690185546875; +266.3833312988281, 761.8828125; +266.48333740234375, 762.3449096679688; +266.5833435058594, 762.8027954101562; +266.6833190917969, 763.2228393554688; +266.7833251953125, 763.6289672851562; +266.88330078125, 764.1337890625; +266.9833068847656, 764.67529296875; +267.08331298828125, 765.2155151367188; +267.18328857421875, 765.6769409179688; +267.2832946777344, 766.1093139648438; +267.3832702636719, 766.4956665039062; +267.4832763671875, 766.783935546875; +267.583251953125, 767.0792846679688; +267.6832580566406, 767.4129638671875; +267.78326416015625, 767.7662963867188; +267.88323974609375, 768.073974609375; +267.9832458496094, 768.3994140625; +268.0832214355469, 768.7857055664062; +268.1832275390625, 769.2461547851562; +268.2832336425781, 769.7313842773438; +268.3832092285156, 770.2012329101562; +268.48321533203125, 770.6402587890625; +268.58319091796875, 771.05712890625; +268.6831970214844, 771.4742431640625; +268.783203125, 771.8658447265625; +268.8831787109375, 772.25830078125; +268.9831848144531, 772.6957397460938; +269.0831604003906, 773.1793823242188; +269.18316650390625, 773.6415405273438; +269.2831726074219, 774.0220947265625; +269.3831481933594, 774.313232421875; +269.483154296875, 774.58984375; +269.5831298828125, 774.901123046875; +269.6831359863281, 775.2816162109375; +269.78314208984375, 775.6840209960938; +269.88311767578125, 776.0823974609375; +269.9831237792969, 776.4608764648438; +270.0830993652344, 776.787109375; +270.18310546875, 777.08349609375; +270.2831115722656, 777.3425903320312; +270.3830871582031, 777.606201171875; +270.48309326171875, 777.909423828125; +270.58306884765625, 778.2986450195312; +270.6830749511719, 778.7377319335938; +270.7830810546875, 779.1614990234375; +270.883056640625, 779.5282592773438; +270.9830627441406, 779.8504638671875; +271.0830383300781, 780.1163940429688; +271.18304443359375, 780.2763061523438; +271.2830505371094, 780.3631591796875; +271.3830261230469, 780.4288330078125; +271.4830322265625, 780.5671997070312; +271.5830078125, 780.7862548828125; +271.6830139160156, 781.0479736328125; +271.7829895019531, 781.3085327148438; +271.88299560546875, 781.5319213867188; +271.9830017089844, 781.7401733398438; +272.0829772949219, 781.9299926757812; +272.1829833984375, 782.091796875; +272.282958984375, 782.2034912109375; +272.3829650878906, 782.2978515625; +272.48297119140625, 782.4190673828125; +272.58294677734375, 782.5286865234375; +272.6829528808594, 782.5947265625; +272.7829284667969, 782.6386108398438; +272.8829345703125, 782.7642822265625; +272.9829406738281, 783.0072021484375; +273.0829162597656, 783.3128662109375; +273.18292236328125, 783.618408203125; +273.28289794921875, 783.848388671875; +273.3829040527344, 783.9586791992188; +273.48291015625, 783.9579467773438; +273.5828857421875, 783.8768920898438; +273.6828918457031, 783.7745361328125; +273.7828674316406, 783.6768188476562; +273.88287353515625, 783.6466064453125; +273.9828796386719, 783.72509765625; +274.0828552246094, 783.8912963867188; +274.182861328125, 784.093994140625; +274.2828369140625, 784.2723999023438; +274.3828430175781, 784.4439697265625; +274.48284912109375, 784.6076049804688; +274.58282470703125, 784.730224609375; +274.6828308105469, 784.7574462890625; +274.7828063964844, 784.6747436523438; +274.8828125, 784.5362548828125; +274.9828186035156, 784.3865966796875; +275.0827941894531, 784.2586059570312; +275.18280029296875, 784.181884765625; +275.28277587890625, 784.14404296875; +275.3827819824219, 784.1232299804688; +275.4827575683594, 784.083251953125; +275.582763671875, 784.0331420898438; +275.6827697753906, 784.0121459960938; +275.7827453613281, 784.0095825195312; +275.88275146484375, 783.9736938476562; +275.98272705078125, 783.88037109375; +276.0827331542969, 783.7597045898438; +276.1827392578125, 783.614990234375; +276.28271484375, 783.3851928710938; +276.3827209472656, 783.0406494140625; +276.4826965332031, 782.6550903320312; +276.58270263671875, 782.3088989257812; +276.6827087402344, 782.0364379882812; +276.7826843261719, 781.8175048828125; +276.8826904296875, 781.6093139648438; +276.982666015625, 781.3875122070312; +277.0826721191406, 781.168701171875; +277.18267822265625, 780.9629516601562; +277.28265380859375, 780.763916015625; +277.3826599121094, 780.566162109375; +277.4826354980469, 780.3994750976562; +277.5826416015625, 780.2644653320312; +277.6826477050781, 780.1372680664062; +277.7826232910156, 779.9721069335938; +277.88262939453125, 779.7296752929688; +277.98260498046875, 779.3827514648438; +278.0826110839844, 778.9608764648438; +278.1826171875, 778.5463256835938; +278.2825927734375, 778.1467895507812; +278.3825988769531, 777.7548217773438; +278.4825744628906, 777.3541870117188; +278.58258056640625, 776.9876098632812; +278.6825866699219, 776.646728515625; +278.7825622558594, 776.2708740234375; +278.882568359375, 775.8571166992188; +278.9825439453125, 775.4329833984375; +279.0825500488281, 775.0549926757812; +279.18255615234375, 774.7008666992188; +279.28253173828125, 774.3641357421875; +279.3825378417969, 774.0564575195312; +279.4825134277344, 773.7451782226562; +279.58251953125, 773.3756713867188; +279.6824951171875, 772.8717041015625; +279.7825012207031, 772.2277221679688; +279.88250732421875, 771.4942626953125; +279.98248291015625, 770.73681640625; +280.0824890136719, 770.0224609375; +280.1824645996094, 769.3875122070312; +280.282470703125, 768.866455078125; +280.3824768066406, 768.4564208984375; +280.4824523925781, 768.08935546875; +280.58245849609375, 767.6757202148438; +280.68243408203125, 767.13720703125; +280.7824401855469, 766.479248046875; +280.8824462890625, 765.7557983398438; +280.982421875, 765.0379028320312; +281.0824279785156, 764.347412109375; +281.1824035644531, 763.66552734375; +281.28240966796875, 763.0202026367188; +281.3824157714844, 762.4273681640625; +281.4823913574219, 761.873046875; +281.5823974609375, 761.2860107421875; +281.682373046875, 760.62744140625; +281.7823791503906, 759.9132690429688; +281.88238525390625, 759.168212890625; +281.98236083984375, 758.4027099609375; +282.0823669433594, 757.5960693359375; +282.1823425292969, 756.7340698242188; +282.2823486328125, 755.852783203125; +282.3823547363281, 755.0393676757812; +282.4823303222656, 754.335205078125; +282.58233642578125, 753.7371215820312; +282.68231201171875, 753.1904296875; +282.7823181152344, 752.66455078125; +282.88232421875, 752.1279907226562; +282.9822998046875, 751.5069580078125; +283.0823059082031, 750.8049926757812; +283.1822814941406, 750.0231323242188; +283.28228759765625, 749.173828125; +283.3822937011719, 748.2579345703125; +283.4822692871094, 747.307861328125; +283.582275390625, 746.4010009765625; +283.6822509765625, 745.4949340820312; +283.7822570800781, 744.50048828125; +283.8822326660156, 743.4227294921875; +283.98223876953125, 742.3526000976562; +284.0822448730469, 741.3390502929688; +284.1822204589844, 740.3529052734375; +284.2822265625, 739.3935546875; +284.3822021484375, 738.5028076171875; +284.4822082519531, 737.6596069335938; +284.58221435546875, 736.7752685546875; +284.68218994140625, 735.8108520507812; +284.7821960449219, 734.7901611328125; +284.8821716308594, 733.7400512695312; +284.982177734375, 732.704345703125; +285.0821838378906, 731.7059326171875; +285.1821594238281, 730.76025390625; +285.28216552734375, 729.8417358398438; +285.38214111328125, 728.896728515625; +285.4821472167969, 727.9110717773438; +285.5821533203125, 726.85302734375; +285.68212890625, 725.7619018554688; +285.7821350097656, 724.7000732421875; +285.8821105957031, 723.6791381835938; +285.98211669921875, 722.6380004882812; +286.0821228027344, 721.5153198242188; +286.1820983886719, 720.3588256835938; +286.2821044921875, 719.2296752929688; +286.382080078125, 718.1341552734375; +286.4820861816406, 717.0450439453125; +286.58209228515625, 715.9590454101562; +286.68206787109375, 714.9020385742188; +286.7820739746094, 713.875244140625; +286.8820495605469, 712.7986450195312; +286.9820556640625, 711.599609375; +287.0820617675781, 710.2745361328125; +287.1820373535156, 708.9221801757812; +287.28204345703125, 707.6035766601562; +287.38201904296875, 706.2929077148438; +287.4820251464844, 704.9994506835938; +287.58203125, 703.74951171875; +287.6820068359375, 702.5715942382812; +287.7820129394531, 701.4307250976562; +287.8819885253906, 700.2705078125; +287.98199462890625, 699.0795288085938; +288.08197021484375, 697.8522338867188; +288.1819763183594, 696.654296875; +288.281982421875, 695.5250244140625; +288.3819580078125, 694.431640625; +288.4819641113281, 693.3077392578125; +288.5819396972656, 692.129150390625; +288.68194580078125, 690.9618530273438; +288.7819519042969, 689.7842407226562; +288.8819274902344, 688.5436401367188; +288.98193359375, 687.2454223632812; +289.0819091796875, 686.0033569335938; +289.1819152832031, 684.8330078125; +289.28192138671875, 683.6365966796875; +289.38189697265625, 682.3477783203125; +289.4819030761719, 680.9927368164062; +289.5818786621094, 679.6591796875; +289.681884765625, 678.2948608398438; +289.7818908691406, 676.8878784179688; +289.8818664550781, 675.4752807617188; +289.98187255859375, 674.12060546875; +290.08184814453125, 672.8095092773438; +290.1818542480469, 671.4252319335938; +290.2818603515625, 669.956298828125; +290.3818359375, 668.4632568359375; +290.4818420410156, 667.0191040039062; +290.5818176269531, 665.6248168945312; +290.68182373046875, 664.2514038085938; +290.7818298339844, 662.8948364257812; +290.8818054199219, 661.58935546875; +290.9818115234375, 660.3120727539062; +291.081787109375, 658.9730834960938; +291.1817932128906, 657.5279541015625; +291.28179931640625, 656.0186157226562; +291.38177490234375, 654.5220947265625; +291.4817810058594, 652.9962768554688; +291.5817565917969, 651.3924560546875; +291.6817626953125, 649.7413330078125; +291.78173828125, 648.0773315429688; +291.8817443847656, 646.417724609375; +291.98175048828125, 644.7718505859375; +292.08172607421875, 643.1525268554688; +292.1817321777344, 641.5607299804688; +292.2817077636719, 639.9619750976562; +292.3817138671875, 638.3681030273438; +292.4817199707031, 636.7683715820312; +292.5816955566406, 635.0729370117188; +292.68170166015625, 633.292724609375; +292.78167724609375, 631.5005493164062; +292.8816833496094, 629.741455078125; +292.981689453125, 628.0043334960938; +293.0816650390625, 626.2613525390625; +293.1816711425781, 624.6109619140625; +293.2816467285156, 623.0780029296875; +293.38165283203125, 621.6312255859375; +293.4816589355469, 620.1964721679688; +293.5816345214844, 618.6885986328125; +293.681640625, 617.1054077148438; +293.7816162109375, 615.446533203125; +293.8816223144531, 613.7578735351562; +293.98162841796875, 612.0390014648438; +294.08160400390625, 610.3082275390625; +294.1816101074219, 608.6080932617188; +294.2815856933594, 606.949462890625; +294.381591796875, 605.3468017578125; +294.4815979003906, 603.7506103515625; +294.5815734863281, 602.1175537109375; +294.68157958984375, 600.4447021484375; +294.78155517578125, 598.7738037109375; +294.8815612792969, 597.1264038085938; +294.9815673828125, 595.4442138671875; +295.08154296875, 593.698974609375; +295.1815490722656, 591.951171875; +295.2815246582031, 590.2431640625; +295.38153076171875, 588.5413208007812; +295.4815368652344, 586.8378295898438; +295.5815124511719, 585.154541015625; +295.6815185546875, 583.5132446289062; +295.781494140625, 581.8836059570312; +295.8815002441406, 580.2434692382812; +295.9814758300781, 578.5993041992188; +296.08148193359375, 576.92626953125; +296.1814880371094, 575.2192993164062; +296.2814636230469, 573.5120239257812; +296.3814697265625, 571.8051147460938; +296.4814453125, 570.09033203125; +296.5814514160156, 568.3367309570312; +296.68145751953125, 566.571533203125; +296.78143310546875, 564.8125; +296.8814392089844, 563.0439453125; +296.9814147949219, 561.2561645507812; +297.0814208984375, 559.457763671875; +297.1814270019531, 557.6903076171875; +297.2814025878906, 555.95556640625; +297.38140869140625, 554.25341796875; +297.48138427734375, 552.564208984375; +297.5813903808594, 550.9075927734375; +297.681396484375, 549.28759765625; +297.7813720703125, 547.6994018554688; +297.8813781738281, 546.122802734375; +297.9813537597656, 544.5215454101562; +298.08135986328125, 542.88232421875; +298.1813659667969, 541.20556640625; +298.2813415527344, 539.4995727539062; +298.38134765625, 537.7825927734375; +298.4813232421875, 536.0888061523438; +298.5813293457031, 534.430908203125; +298.68133544921875, 532.7896728515625; +298.78131103515625, 531.13232421875; +298.8813171386719, 529.456787109375; +298.9812927246094, 527.7574462890625; +299.081298828125, 526.0187377929688; +299.1813049316406, 524.2518920898438; +299.2812805175781, 522.494873046875; +299.38128662109375, 520.7517700195312; +299.48126220703125, 519.0213012695312; +299.5812683105469, 517.2935791015625; +299.6812744140625, 515.555419921875; +299.78125, 513.8023681640625; +299.8812561035156, 512.0390014648438; +299.9812316894531, 510.2900695800781; +300.08123779296875, 508.5292663574219; +300.18121337890625, 506.7467041015625; +300.2812194824219, 504.97760009765625; +300.3812255859375, 503.2296447753906; +300.481201171875, 501.510009765625; +300.5812072753906, 499.81451416015625; +300.6811828613281, 498.1520690917969; +300.78118896484375, 496.504638671875; +300.8811950683594, 494.83551025390625; +300.9811706542969, 493.1549987792969; +301.0811767578125, 491.47607421875; +301.18115234375, 489.8243408203125; +301.2811584472656, 488.2208251953125; +301.38116455078125, 486.6919250488281; +301.48114013671875, 485.2245178222656; +301.5811462402344, 483.7779541015625; +301.6811218261719, 482.2997131347656; +301.7811279296875, 480.7313537597656; +301.8811340332031, 479.0617370605469; +301.9811096191406, 477.31866455078125; +302.08111572265625, 475.54180908203125; +302.18109130859375, 473.7507019042969; +302.2810974121094, 471.9549865722656; +302.381103515625, 470.1993408203125; +302.4810791015625, 468.490966796875; +302.5810852050781, 466.7936706542969; +302.6810607910156, 465.0856628417969; +302.78106689453125, 463.3854675292969; +302.8810729980469, 461.7124328613281; +302.9810485839844, 460.03375244140625; +303.0810546875, 458.34356689453125; +303.1810302734375, 456.6646423339844; +303.2810363769531, 455.0040588378906; +303.38104248046875, 453.33636474609375; +303.48101806640625, 451.637451171875; +303.5810241699219, 449.939453125; +303.6809997558594, 448.2472839355469; +303.781005859375, 446.5599060058594; +303.8810119628906, 444.8789367675781; +303.9809875488281, 443.2286376953125; +304.08099365234375, 441.6236267089844; +304.18096923828125, 440.0411071777344; +304.2809753417969, 438.4610290527344; +304.3809509277344, 436.86334228515625; +304.48095703125, 435.25555419921875; +304.5809631347656, 433.64825439453125; +304.6809387207031, 432.0380859375; +304.78094482421875, 430.4139099121094; +304.88092041015625, 428.78668212890625; +304.9809265136719, 427.16015625; +305.0809326171875, 425.5229797363281; +305.180908203125, 423.85125732421875; +305.2809143066406, 422.1600036621094; +305.3808898925781, 420.4832458496094; +305.48089599609375, 418.8403625488281; +305.5809020996094, 417.2408447265625; +305.6808776855469, 415.68475341796875; +305.7808837890625, 414.1661376953125; +305.880859375, 412.68585205078125; +305.9808654785156, 411.23583984375; +306.08087158203125, 409.79022216796875; +306.18084716796875, 408.3193664550781; +306.2808532714844, 406.8009338378906; +306.3808288574219, 405.2341613769531; +306.4808349609375, 403.62823486328125; +306.5808410644531, 401.99359130859375; +306.6808166503906, 400.3585205078125; +306.78082275390625, 398.7594909667969; +306.88079833984375, 397.22509765625; +306.9808044433594, 395.7475280761719; +307.080810546875, 394.2961730957031; +307.1807861328125, 392.86224365234375; +307.2807922363281, 391.4273376464844; +307.3807678222656, 389.9818115234375; +307.48077392578125, 388.5177001953125; +307.5807800292969, 387.0612487792969; +307.6807556152344, 385.6405334472656; +307.78076171875, 384.253173828125; +307.8807373046875, 382.9075927734375; +307.9807434082031, 381.6031799316406; +308.08074951171875, 380.3424987792969; +308.18072509765625, 379.08648681640625; +308.2807312011719, 377.7999572753906; +308.3807067871094, 376.4718322753906; +308.480712890625, 375.1153564453125; +308.5806884765625, 373.72406005859375; +308.6806945800781, 372.26300048828125; +308.78070068359375, 370.753662109375; +308.88067626953125, 369.2323303222656; +308.9806823730469, 367.7291259765625; +309.0806579589844, 366.22900390625; +309.1806640625, 364.72601318359375; +309.2806701660156, 363.26397705078125; +309.3806457519531, 361.8416748046875; +309.48065185546875, 360.435791015625; +309.58062744140625, 359.03558349609375; +309.6806335449219, 357.6393127441406; +309.7806396484375, 356.2430419921875; +309.880615234375, 354.8179016113281; +309.9806213378906, 353.3888854980469; +310.0805969238281, 351.98199462890625; +310.18060302734375, 350.5842590332031; +310.2806091308594, 349.1979675292969; +310.3805847167969, 347.8511047363281; +310.4805908203125, 346.54522705078125; +310.58056640625, 345.2471923828125; +310.6805725097656, 343.92572021484375; +310.78057861328125, 342.58367919921875; +310.88055419921875, 341.22149658203125; +310.9805603027344, 339.8379211425781; +311.0805358886719, 338.4669494628906; +311.1805419921875, 337.11224365234375; +311.2805480957031, 335.7718505859375; +311.3805236816406, 334.4567565917969; +311.48052978515625, 333.17645263671875; +311.58050537109375, 331.9194030761719; +311.6805114746094, 330.6500549316406; +311.780517578125, 329.38006591796875; +311.8804931640625, 328.1414794921875; +311.9804992675781, 326.9447937011719; +312.0804748535156, 325.7572021484375; +312.18048095703125, 324.5491027832031; +312.28045654296875, 323.3289794921875; +312.3804626464844, 322.1181640625; +312.48046875, 320.9339294433594; +312.5804443359375, 319.76324462890625; +312.6804504394531, 318.6164855957031; +312.7804260253906, 317.50653076171875; +312.88043212890625, 316.4294738769531; +312.9804382324219, 315.3730773925781; +313.0804138183594, 314.30023193359375; +313.180419921875, 313.1901550292969; +313.2803955078125, 312.0425720214844; +313.3804016113281, 310.8668212890625; +313.48040771484375, 309.6822204589844; +313.58038330078125, 308.47979736328125; +313.6803894042969, 307.2607727050781; +313.7803649902344, 306.0384826660156; +313.88037109375, 304.8126525878906; +313.9803771972656, 303.596435546875; +314.0803527832031, 302.39068603515625; +314.18035888671875, 301.2107849121094; +314.28033447265625, 300.0535888671875; +314.3803405761719, 298.916748046875; +314.4803466796875, 297.81414794921875; +314.580322265625, 296.7511901855469; +314.6803283691406, 295.716064453125; +314.7803039550781, 294.66864013671875; +314.88031005859375, 293.62310791015625; +314.9803161621094, 292.6121520996094; +315.0802917480469, 291.6420593261719; +315.1802978515625, 290.6708679199219; +315.2802734375, 289.67376708984375; +315.3802795410156, 288.6944274902344; +315.48028564453125, 287.7477111816406; +315.58026123046875, 286.8070983886719; +315.6802673339844, 285.8327941894531; +315.7802429199219, 284.82861328125; +315.8802490234375, 283.81500244140625; +315.9802551269531, 282.7759094238281; +316.0802307128906, 281.6842346191406; +316.18023681640625, 280.5371398925781; +316.28021240234375, 279.37982177734375; +316.3802185058594, 278.251220703125; +316.4801940917969, 277.1692199707031; +316.5802001953125, 276.1241760253906; +316.6802062988281, 275.1017761230469; +316.7801818847656, 274.0834655761719; +316.88018798828125, 273.0580749511719; +316.98016357421875, 272.0404052734375; +317.0801696777344, 271.04931640625; +317.18017578125, 270.0910949707031; +317.2801513671875, 269.1810302734375; +317.3801574707031, 268.36688232421875; +317.4801330566406, 267.67462158203125; +317.58013916015625, 267.0739440917969; +317.6801452636719, 266.5098571777344; +317.7801208496094, 265.9861145019531; +317.880126953125, 265.54058837890625; +317.9801025390625, 265.1631774902344; +318.0801086425781, 264.81695556640625; +318.18011474609375, 264.50018310546875; +318.28009033203125, 264.2170715332031; +318.3800964355469, 263.92352294921875; +318.4800720214844, 263.5408630371094; +318.580078125, 263.01934814453125; +318.6800842285156, 262.34295654296875; +318.7800598144531, 261.4891052246094; +318.88006591796875, 260.46026611328125; +318.98004150390625, 259.30419921875; +319.0800476074219, 258.0749816894531; +319.1800537109375, 256.80487060546875; +319.280029296875, 255.5233917236328; +319.3800354003906, 254.26895141601562; +319.4800109863281, 253.06854248046875; +319.58001708984375, 251.91061401367188; +319.6800231933594, 250.78146362304688; +319.7799987792969, 249.6855010986328; +319.8800048828125, 248.62429809570312; +319.97998046875, 247.59576416015625; +320.0799865722656, 246.6013641357422; +320.17999267578125, 245.6427764892578; +320.27996826171875, 244.71163940429688; +320.3799743652344, 243.8013458251953; +320.4799499511719, 242.9175567626953; +320.5799560546875, 242.0580596923828; +320.679931640625, 241.20074462890625; +320.7799377441406, 240.3383331298828; +320.87994384765625, 239.49594116210938; +320.97991943359375, 238.68809509277344; +321.0799255371094, 237.89903259277344; +321.1799011230469, 237.1033477783203; +321.2799072265625, 236.3030548095703; +321.3799133300781, 235.50784301757812; +321.4798889160156, 234.71559143066406; +321.57989501953125, 233.92198181152344; +321.67987060546875, 233.12916564941406; +321.7798767089844, 232.34249877929688; +321.8798828125, 231.5664825439453; +321.9798583984375, 230.812255859375; +322.0798645019531, 230.07534790039062; +322.1798400878906, 229.3328094482422; +322.27984619140625, 228.57337951660156; +322.3798522949219, 227.82418823242188; +322.4798278808594, 227.11813354492188; +322.579833984375, 226.4409942626953; +322.6798095703125, 225.76950073242188; +322.7798156738281, 225.09666442871094; +322.87982177734375, 224.43011474609375; +322.97979736328125, 223.76486206054688; +323.0798034667969, 223.08168029785156; +323.1797790527344, 222.380126953125; +323.27978515625, 221.66995239257812; +323.3797912597656, 220.97032165527344; +323.4797668457031, 220.29444885253906; +323.57977294921875, 219.63784790039062; +323.67974853515625, 218.99749755859375; +323.7797546386719, 218.3737335205078; +323.8797607421875, 217.76390075683594; +323.979736328125, 217.16506958007812; +324.0797424316406, 216.56480407714844; +324.1797180175781, 215.96107482910156; +324.27972412109375, 215.3444366455078; +324.3797302246094, 214.72161865234375; +324.4797058105469, 214.1072235107422; +324.5797119140625, 213.51107788085938; +324.6796875, 212.93106079101562; +324.7796936035156, 212.3544464111328; +324.8796691894531, 211.77442932128906; +324.97967529296875, 211.18902587890625; +325.0796813964844, 210.5986785888672; +325.1796569824219, 210.0043182373047; +325.2796630859375, 209.4003448486328; +325.379638671875, 208.7827606201172; +325.4796447753906, 208.16477966308594; +325.57965087890625, 207.5578155517578; +325.67962646484375, 206.9660186767578; +325.7796325683594, 206.37371826171875; +325.8796081542969, 205.79598999023438; +325.9796142578125, 205.25155639648438; +326.0796203613281, 204.7350616455078; +326.1795959472656, 204.2126007080078; +326.27960205078125, 203.6628875732422; +326.37957763671875, 203.10162353515625; +326.4795837402344, 202.53550720214844; +326.57958984375, 201.9648895263672; +326.6795654296875, 201.39813232421875; +326.7795715332031, 200.8538055419922; +326.8795471191406, 200.34381103515625; +326.97955322265625, 199.85675048828125; +327.0795593261719, 199.3739471435547; +327.1795349121094, 198.89344787597656; +327.279541015625, 198.4164581298828; +327.3795166015625, 197.94198608398438; +327.4795227050781, 197.4523468017578; +327.57952880859375, 196.93922424316406; +327.67950439453125, 196.4195556640625; +327.7795104980469, 195.8966827392578; +327.8794860839844, 195.3604278564453; +327.9794921875, 194.8008575439453; +328.0794982910156, 194.24415588378906; +328.1794738769531, 193.72093200683594; +328.27947998046875, 193.23846435546875; +328.37945556640625, 192.78919982910156; +328.4794616699219, 192.36268615722656; +328.5794372558594, 191.94276428222656; +328.679443359375, 191.5040283203125; +328.7794494628906, 191.04640197753906; +328.8794250488281, 190.57164001464844; +328.97943115234375, 190.0821990966797; +329.07940673828125, 189.58482360839844; +329.1794128417969, 189.10516357421875; +329.2794189453125, 188.6649169921875; +329.37939453125, 188.2412567138672; +329.4794006347656, 187.8203582763672; +329.5793762207031, 187.40182495117188; +329.67938232421875, 186.99343872070312; +329.7793884277344, 186.59620666503906; +329.8793640136719, 186.20440673828125; +329.9793701171875, 185.819580078125; +330.079345703125, 185.4252166748047; +330.1793518066406, 185.0113983154297; +330.27935791015625, 184.578857421875; +330.37933349609375, 184.1370391845703; +330.4793395996094, 183.69509887695312; +330.5793151855469, 183.26072692871094; +330.6793212890625, 182.84483337402344; +330.7793273925781, 182.4546356201172; +330.8793029785156, 182.0834503173828; +330.97930908203125, 181.71365356445312; +331.07928466796875, 181.3367156982422; +331.1792907714844, 180.956787109375; +331.279296875, 180.5785675048828; +331.3792724609375, 180.19570922851562; +331.4792785644531, 179.8200225830078; +331.5792541503906, 179.4739227294922; +331.67926025390625, 179.1476287841797; +331.7792663574219, 178.81417846679688; +331.8792419433594, 178.4658203125; +331.979248046875, 178.11801147460938; +332.0792236328125, 177.7648468017578; +332.1792297363281, 177.38229370117188; +332.27923583984375, 176.97360229492188; +332.37921142578125, 176.56463623046875; +332.4792175292969, 176.1672821044922; +332.5791931152344, 175.77818298339844; +332.67919921875, 175.3950653076172; +332.7791748046875, 175.02073669433594; +332.8791809082031, 174.6521759033203; +332.97918701171875, 174.28282165527344; +333.07916259765625, 173.91253662109375; +333.1791687011719, 173.54869079589844; +333.2791442871094, 173.1941375732422; +333.379150390625, 172.8418731689453; +333.4791564941406, 172.49295043945312; +333.5791320800781, 172.1502685546875; +333.67913818359375, 171.82713317871094; +333.77911376953125, 171.51979064941406; +333.8791198730469, 171.20960998535156; +333.9791259765625, 170.89773559570312; +334.0791015625, 170.59085083007812; +334.1791076660156, 170.2975311279297; +334.2790832519531, 169.9982147216797; +334.37908935546875, 169.68585205078125; +334.4790954589844, 169.3869171142578; +334.5790710449219, 169.1288604736328; +334.6790771484375, 168.9234161376953; +334.779052734375, 168.75331115722656; +334.8790588378906, 168.6221466064453; +334.97906494140625, 168.5305633544922; +335.07904052734375, 168.48837280273438; +335.1790466308594, 168.51239013671875; +335.2790222167969, 168.6199493408203; +335.3790283203125, 168.8361053466797; +335.4790344238281, 169.1567840576172; +335.5790100097656, 169.58067321777344; +335.67901611328125, 170.07655334472656; +335.77899169921875, 170.58180236816406; +335.8789978027344, 171.02517700195312; +335.97900390625, 171.33836364746094; +336.0789794921875, 171.47251892089844; +336.1789855957031, 171.38624572753906; +336.2789611816406, 171.0451202392578; +336.37896728515625, 170.4337615966797; +336.4789733886719, 169.5612030029297; +336.5789489746094, 168.47991943359375; +336.678955078125, 167.27757263183594; +336.7789306640625, 166.03182983398438; +336.8789367675781, 164.81492614746094; +336.9789123535156, 163.6832733154297; +337.07891845703125, 162.66868591308594; +337.1789245605469, 161.76852416992188; +337.2789001464844, 160.95077514648438; +337.37890625, 160.1953887939453; +337.4788818359375, 159.4965057373047; +337.5788879394531, 158.8623809814453; +337.67889404296875, 158.30276489257812; +337.77886962890625, 157.82028198242188; +337.8788757324219, 157.40647888183594; +337.9788513183594, 157.0291748046875; +338.078857421875, 156.66403198242188; +338.1788635253906, 156.30718994140625; +338.2788391113281, 155.98231506347656; +338.37884521484375, 155.69503784179688; +338.47882080078125, 155.44239807128906; +338.5788269042969, 155.2315673828125; +338.6788330078125, 155.06582641601562; +338.77880859375, 154.93093872070312; +338.8788146972656, 154.79266357421875; +338.9787902832031, 154.621337890625; +339.07879638671875, 154.40492248535156; +339.1788024902344, 154.15065002441406; +339.2787780761719, 153.86123657226562; +339.3787841796875, 153.51937866210938; +339.478759765625, 153.1163787841797; +339.5787658691406, 152.6885528564453; +339.67877197265625, 152.28009033203125; +339.77874755859375, 151.90475463867188; +339.8787536621094, 151.54478454589844; +339.9787292480469, 151.20298767089844; +340.0787353515625, 150.89369201660156; +340.1787414550781, 150.60826110839844; +340.2787170410156, 150.3098907470703; +340.37872314453125, 149.9619903564453; +340.47869873046875, 149.58319091796875; +340.5787048339844, 149.21421813964844; +340.6787109375, 148.8650360107422; +340.7786865234375, 148.52647399902344; +340.8786926269531, 148.19610595703125; +340.9786682128906, 147.8944549560547; +341.07867431640625, 147.6137237548828; +341.17864990234375, 147.32952880859375; +341.2786560058594, 147.0391387939453; +341.378662109375, 146.75631713867188; +341.4786376953125, 146.4867706298828; +341.5786437988281, 146.22244262695312; +341.6786193847656, 145.966796875; +341.77862548828125, 145.7264862060547; +341.8786315917969, 145.4924774169922; +341.9786071777344, 145.24859619140625; +342.07861328125, 144.99742126464844; +342.1785888671875, 144.7611083984375; +342.2785949707031, 144.5487060546875; +342.37860107421875, 144.34107971191406; +342.47857666015625, 144.11781311035156; +342.5785827636719, 143.87339782714844; +342.6785583496094, 143.62274169921875; +342.778564453125, 143.36419677734375; +342.8785705566406, 143.09768676757812; +342.9785461425781, 142.83285522460938; +343.07855224609375, 142.5863037109375; +343.17852783203125, 142.36875915527344; +343.2785339355469, 142.1622314453125; +343.3785400390625, 141.95655822753906; +343.478515625, 141.7415313720703; +343.5785217285156, 141.534423828125; +343.6784973144531, 141.36061096191406; +343.77850341796875, 141.2270965576172; +343.8785095214844, 141.1112823486328; +343.9784851074219, 140.9807891845703; +344.0784912109375, 140.83154296875; +344.178466796875, 140.65957641601562; +344.2784729003906, 140.45025634765625; +344.37847900390625, 140.1838836669922; +344.47845458984375, 139.885009765625; +344.5784606933594, 139.59335327148438; +344.6784362792969, 139.3263702392578; +344.7784423828125, 139.0705108642578; +344.87841796875, 138.81219482421875; +344.9784240722656, 138.55545043945312; +345.07843017578125, 138.30471801757812; +345.17840576171875, 138.0494384765625; +345.2784118652344, 137.77764892578125; +345.3783874511719, 137.50123596191406; +345.4783935546875, 137.2265625; +345.5783996582031, 136.94827270507812; +345.6783752441406, 136.652099609375; +345.77838134765625, 136.35498046875; +345.87835693359375, 136.07493591308594; +345.9783630371094, 135.79998779296875; +346.078369140625, 135.51998901367188; +346.1783447265625, 135.2444305419922; +346.2783508300781, 134.9971160888672; +346.3783264160156, 134.78024291992188; +346.47833251953125, 134.57791137695312; +346.5783386230469, 134.38479614257812; +346.6783142089844, 134.19171142578125; +346.7783203125, 133.99879455566406; +346.8782958984375, 133.797607421875; +346.9783020019531, 133.57411193847656; +347.07830810546875, 133.3353271484375; +347.17828369140625, 133.0897979736328; +347.2782897949219, 132.85531616210938; +347.3782653808594, 132.63328552246094; +347.478271484375, 132.4271240234375; +347.5782775878906, 132.24404907226562; +347.6782531738281, 132.08230590820312; +347.77825927734375, 131.9337921142578; +347.87823486328125, 131.794189453125; +347.9782409667969, 131.66754150390625; +348.0782470703125, 131.56114196777344; +348.17822265625, 131.46786499023438; +348.2782287597656, 131.3740997314453; +348.3782043457031, 131.2766876220703; +348.47821044921875, 131.19044494628906; +348.5782165527344, 131.12521362304688; +348.6781921386719, 131.07659912109375; +348.7781982421875, 131.02626037597656; +348.878173828125, 130.9678497314453; +348.9781799316406, 130.9078369140625; +349.0781555175781, 130.84347534179688; +349.17816162109375, 130.7637176513672; +349.2781677246094, 130.64956665039062; +349.3781433105469, 130.51023864746094; +349.4781494140625, 130.3566436767578; +349.578125, 130.19418334960938; +349.6781311035156, 130.01268005371094; +349.77813720703125, 129.80467224121094; +349.87811279296875, 129.56944274902344; +349.9781188964844, 129.30885314941406; +350.0780944824219, 129.02618408203125; +350.1781005859375, 128.71774291992188; +350.2781066894531, 128.3885955810547; +350.3780822753906, 128.04119873046875; +350.47808837890625, 127.6893539428711; +350.57806396484375, 127.34056854248047; +350.6780700683594, 127.00178527832031; +350.778076171875, 126.67971801757812; +350.8780517578125, 126.37184143066406; +350.9780578613281, 126.07723236083984; +351.0780334472656, 125.80300903320312; +351.17803955078125, 125.5555648803711; +351.2780456542969, 125.3218994140625; +351.3780212402344, 125.08740997314453; +351.47802734375, 124.84908294677734; +351.5780029296875, 124.6208724975586; +351.6780090332031, 124.3993148803711; +351.77801513671875, 124.17109680175781; +351.87799072265625, 123.93595886230469; +351.9779968261719, 123.70271301269531; +352.0779724121094, 123.47666931152344; +352.177978515625, 123.23812866210938; +352.2779846191406, 122.97370910644531; +352.3779602050781, 122.694091796875; +352.47796630859375, 122.42117309570312; +352.57794189453125, 122.15744018554688; +352.6779479980469, 121.9015121459961; +352.7779541015625, 121.66962432861328; +352.8779296875, 121.46713256835938; +352.9779357910156, 121.27662658691406; +353.0779113769531, 121.07172393798828; +353.17791748046875, 120.85222625732422; +353.27789306640625, 120.63079071044922; +353.3778991699219, 120.40311431884766; +353.4779052734375, 120.16290283203125; +353.577880859375, 119.91675567626953; +353.6778869628906, 119.67908477783203; +353.7778625488281, 119.45263671875; +353.87786865234375, 119.2216567993164; +353.9778747558594, 118.98296356201172; +354.0778503417969, 118.75103759765625; +354.1778564453125, 118.5372314453125; +354.27783203125, 118.33586883544922; +354.3778381347656, 118.13304138183594; +354.47784423828125, 117.9244155883789; +354.57781982421875, 117.7099838256836; +354.6778259277344, 117.49176788330078; +354.7778015136719, 117.27114868164062; +354.8778076171875, 117.04864501953125; +354.9778137207031, 116.8302001953125; +355.0777893066406, 116.6214370727539; +355.17779541015625, 116.4214096069336; +355.27777099609375, 116.22270965576172; +355.3777770996094, 116.02116394042969; +355.477783203125, 115.81627655029297; +355.5777587890625, 115.61250305175781; +355.6777648925781, 115.41315460205078; +355.7777404785156, 115.22423553466797; +355.87774658203125, 115.04521942138672; +355.9777526855469, 114.86779022216797; +356.0777282714844, 114.69502258300781; +356.177734375, 114.52735137939453; +356.2777099609375, 114.3642349243164; +356.3777160644531, 114.20343780517578; +356.47772216796875, 114.04693603515625; +356.57769775390625, 113.90152740478516; +356.6777038574219, 113.75858306884766; +356.7776794433594, 113.60071563720703; +356.877685546875, 113.42607879638672; +356.9776916503906, 113.23735046386719; +357.0776672363281, 113.03091430664062; +357.17767333984375, 112.79843139648438; +357.27764892578125, 112.55237579345703; +357.3776550292969, 112.31604766845703; +357.4776306152344, 112.08695220947266; +357.57763671875, 111.85201263427734; +357.6776428222656, 111.60547637939453; +357.7776184082031, 111.35738372802734; +357.87762451171875, 111.10533905029297; +357.97760009765625, 110.85555267333984; +358.0776062011719, 110.60940551757812; +358.1776123046875, 110.3688735961914; +358.277587890625, 110.13213348388672; +358.3775939941406, 109.8958969116211; +358.4775695800781, 109.66571044921875; +358.57757568359375, 109.43180847167969; +358.6775817871094, 109.1949462890625; +358.7775573730469, 108.96270751953125; +358.8775634765625, 108.74044799804688; +358.9775390625, 108.5282974243164; +359.0775451660156, 108.32540130615234; +359.17755126953125, 108.14049530029297; +359.27752685546875, 107.97954559326172; +359.3775329589844, 107.83065032958984; +359.4775085449219, 107.67304229736328; +359.5775146484375, 107.49838256835938; +359.6775207519531, 107.30916595458984; +359.7774963378906, 107.10437774658203; +359.87750244140625, 106.88365173339844; +359.97747802734375, 106.65156555175781; +360.0774841308594, 106.42491149902344; +360.177490234375, 106.20535278320312; +360.2774658203125, 105.98865509033203; +360.3774719238281, 105.77169799804688; +360.4774475097656, 105.55647277832031; +360.57745361328125, 105.34459686279297; +360.6774597167969, 105.14165496826172; +360.7774353027344, 104.95906066894531; +360.87744140625, 104.79483032226562; +360.9774169921875, 104.63519287109375; +361.0774230957031, 104.4667739868164; +361.1773986816406, 104.30590057373047; +361.27740478515625, 104.16863250732422; +361.3774108886719, 104.05715942382812; +361.4773864746094, 103.96818542480469; +361.577392578125, 103.91079711914062; +361.6773681640625, 103.89295959472656; +361.7773742675781, 103.8893814086914; +361.87738037109375, 103.8746337890625; +361.97735595703125, 103.83538818359375; +362.0773620605469, 103.76486206054688; +362.1773376464844, 103.65174102783203; +362.27734375, 103.48873901367188; +362.3773498535156, 103.2936782836914; +362.4773254394531, 103.07767486572266; +362.57733154296875, 102.84078979492188; +362.67730712890625, 102.58712768554688; +362.7773132324219, 102.32551574707031; +362.8773193359375, 102.06475067138672; +362.977294921875, 101.80096435546875; +363.0773010253906, 101.5324935913086; +363.1772766113281, 101.26460266113281; +363.27728271484375, 100.99980926513672; +363.3772888183594, 100.7326889038086; +363.4772644042969, 100.45352172851562; +363.5772705078125, 100.16603088378906; +363.67724609375, 99.88383483886719; +363.7772521972656, 99.61076354980469; +363.87725830078125, 99.34104919433594; +363.97723388671875, 99.07345581054688; +364.0772399902344, 98.83148193359375; +364.1772155761719, 98.62461853027344; +364.2772216796875, 98.43394470214844; +364.3772277832031, 98.24114227294922; +364.4772033691406, 98.04656982421875; +364.57720947265625, 97.86354064941406; +364.67718505859375, 97.6834945678711; +364.7771911621094, 97.48989868164062; +364.877197265625, 97.28638458251953; +364.9771728515625, 97.08785247802734; +365.0771789550781, 96.90213012695312; +365.1771545410156, 96.72344970703125; +365.27716064453125, 96.547607421875; +365.37713623046875, 96.38011169433594; +365.4771423339844, 96.22615051269531; +365.5771484375, 96.090087890625; +365.6771240234375, 95.96565246582031; +365.7771301269531, 95.84874725341797; +365.8771057128906, 95.73212432861328; +365.97711181640625, 95.61827087402344; +366.0771179199219, 95.50582122802734; +366.1770935058594, 95.37992858886719; +366.277099609375, 95.24598693847656; +366.3770751953125, 95.11017608642578; +366.4770812988281, 94.98253631591797; +366.57708740234375, 94.85678100585938; +366.67706298828125, 94.74256134033203; +366.7770690917969, 94.65644836425781; +366.8770446777344, 94.5923843383789; +366.97705078125, 94.53007507324219; +367.0770568847656, 94.4587173461914; +367.1770324707031, 94.39601135253906; +367.27703857421875, 94.33295440673828; +367.37701416015625, 94.25086975097656; +367.4770202636719, 94.12115478515625; +367.5770263671875, 93.95477294921875; +367.677001953125, 93.76290130615234; +367.7770080566406, 93.52778625488281; +367.8769836425781, 93.23719787597656; +367.97698974609375, 92.90385437011719; +368.0769958496094, 92.58695983886719; +368.1769714355469, 92.30987548828125; +368.2769775390625, 92.0615234375; +368.376953125, 91.83011627197266; +368.4769592285156, 91.62188720703125; +368.57696533203125, 91.44258117675781; +368.67694091796875, 91.26927947998047; +368.7769470214844, 91.08235931396484; +368.8769226074219, 90.87571716308594; +368.9769287109375, 90.65569305419922; +369.0769348144531, 90.42716979980469; +369.1769104003906, 90.19288635253906; +369.27691650390625, 89.96896362304688; +369.37689208984375, 89.7744369506836; +369.4768981933594, 89.61963653564453; +369.5768737792969, 89.49022674560547; +369.6768798828125, 89.3651123046875; +369.7768859863281, 89.23291778564453; +369.8768615722656, 89.08810424804688; +369.97686767578125, 88.91975402832031; +370.07684326171875, 88.7423095703125; +370.1768493652344, 88.58685302734375; +370.27685546875, 88.4761734008789; +370.3768310546875, 88.39473724365234; +370.4768371582031, 88.31421661376953; +370.5768127441406, 88.22724914550781; +370.67681884765625, 88.13224792480469; +370.7768249511719, 88.02265930175781; +370.8768005371094, 87.88636779785156; +370.976806640625, 87.72935485839844; +371.0767822265625, 87.55721282958984; +371.1767883300781, 87.38360595703125; +371.27679443359375, 87.20294189453125; +371.37677001953125, 87.00973510742188; +371.4767761230469, 86.79998779296875; +371.5767517089844, 86.58406829833984; +371.6767578125, 86.38780975341797; +371.7767639160156, 86.20284271240234; +371.8767395019531, 86.01466369628906; +371.97674560546875, 85.82142639160156; +372.07672119140625, 85.64300537109375; +372.1767272949219, 85.48906707763672; +372.2767333984375, 85.34418487548828; +372.376708984375, 85.21507263183594; +372.4767150878906, 85.12274169921875; +372.5766906738281, 85.08316802978516; +372.67669677734375, 85.08387756347656; +372.7767028808594, 85.10639953613281; +372.8766784667969, 85.14694213867188; +372.9766845703125, 85.19782257080078; +373.07666015625, 85.24021911621094; +373.1766662597656, 85.245849609375; +373.27667236328125, 85.20314025878906; +373.37664794921875, 85.11921691894531; +373.4766540527344, 84.99300384521484; +373.5766296386719, 84.82427215576172; +373.6766357421875, 84.6093978881836; +373.776611328125, 84.34751892089844; +373.8766174316406, 84.0456314086914; +373.97662353515625, 83.70894622802734; +374.07659912109375, 83.35062408447266; +374.1766052246094, 82.96892547607422; +374.2765808105469, 82.58032989501953; +374.3765869140625, 82.21656799316406; +374.4765930175781, 81.89160919189453; +374.5765686035156, 81.5997085571289; +374.67657470703125, 81.32975006103516; +374.77655029296875, 81.08905029296875; +374.8765563964844, 80.8805923461914; +374.9765625, 80.68209838867188; +375.0765380859375, 80.48603057861328; +375.1765441894531, 80.29559326171875; +375.2765197753906, 80.11591339111328; +375.37652587890625, 79.94066619873047; +375.4765319824219, 79.75511932373047; +375.5765075683594, 79.55715942382812; +375.676513671875, 79.34939575195312; +375.7764892578125, 79.1378173828125; +375.8764953613281, 78.93074798583984; +375.97650146484375, 78.71939849853516; +376.07647705078125, 78.50012969970703; +376.1764831542969, 78.2807846069336; +376.2764587402344, 78.0657730102539; +376.37646484375, 77.8631362915039; +376.4764709472656, 77.67430114746094; +376.5764465332031, 77.50860595703125; +376.67645263671875, 77.36453247070312; +376.77642822265625, 77.23759460449219; +376.8764343261719, 77.1338882446289; +376.9764404296875, 77.03077697753906; +377.076416015625, 76.90860748291016; +377.1764221191406, 76.77374267578125; +377.2763977050781, 76.65306854248047; +377.37640380859375, 76.55442810058594; +377.47637939453125, 76.4481201171875; +377.5763854980469, 76.33721923828125; +377.6763916015625, 76.23123931884766; +377.7763671875, 76.12457275390625; +377.8763732910156, 75.99671173095703; +377.9763488769531, 75.84648132324219; +378.07635498046875, 75.70919036865234; +378.1763610839844, 75.59819030761719; +378.2763366699219, 75.5048599243164; +378.3763427734375, 75.40705108642578; +378.476318359375, 75.30706787109375; +378.5763244628906, 75.21442413330078; +378.67633056640625, 75.10874938964844; +378.77630615234375, 74.96659088134766; +378.8763122558594, 74.78731536865234; +378.9762878417969, 74.60301208496094; +379.0762939453125, 74.430908203125; +379.1763000488281, 74.26863098144531; +379.2762756347656, 74.1210708618164; +379.37628173828125, 73.99844360351562; +379.47625732421875, 73.8978500366211; +379.5762634277344, 73.8050765991211; +379.67626953125, 73.70529174804688; +379.7762451171875, 73.60924530029297; +379.8762512207031, 73.52836608886719; +379.9762268066406, 73.46453094482422; +380.07623291015625, 73.41378784179688; +380.1762390136719, 73.3760986328125; +380.2762145996094, 73.35830688476562; +380.376220703125, 73.33153533935547; +380.4761962890625, 73.27205657958984; +380.5762023925781, 73.17449188232422; +380.67620849609375, 73.05238342285156; +380.77618408203125, 72.9133529663086; +380.8761901855469, 72.75835418701172; +380.9761657714844, 72.60274505615234; +381.076171875, 72.44985961914062; +381.1761779785156, 72.3057632446289; +381.2761535644531, 72.16967010498047; +381.37615966796875, 72.04164123535156; +381.47613525390625, 71.90486145019531; +381.5761413574219, 71.75296783447266; +381.6761169433594, 71.60647583007812; +381.776123046875, 71.47325897216797; +381.8761291503906, 71.36054992675781; +381.9761047363281, 71.25492095947266; +382.07611083984375, 71.16059875488281; +382.17608642578125, 71.0790023803711; +382.2760925292969, 71.00926971435547; +382.3760986328125, 70.94794464111328; +382.47607421875, 70.88265228271484; +382.5760803222656, 70.81652069091797; +382.6760559082031, 70.76329040527344; +382.77606201171875, 70.72730255126953; +382.8760681152344, 70.69152069091797; +382.9760437011719, 70.64911651611328; +383.0760498046875, 70.60575866699219; +383.176025390625, 70.57540893554688; +383.2760314941406, 70.55640411376953; +383.37603759765625, 70.54258728027344; +383.47601318359375, 70.53035736083984; +383.5760192871094, 70.52045440673828; +383.6759948730469, 70.52284240722656; +383.7760009765625, 70.54065704345703; +383.8760070800781, 70.56411743164062; +383.9759826660156, 70.58222961425781; +384.07598876953125, 70.5892333984375; +384.17596435546875, 70.58637237548828; +384.2759704589844, 70.57576751708984; +384.3759765625, 70.54629516601562; +384.4759521484375, 70.49490356445312; +384.5759582519531, 70.4288101196289; +384.6759338378906, 70.36895751953125; +384.77593994140625, 70.32270050048828; +384.8759460449219, 70.27201080322266; +384.9759216308594, 70.21028900146484; +385.075927734375, 70.14905548095703; +385.1759033203125, 70.10415649414062; +385.2759094238281, 70.066162109375; +385.37591552734375, 70.01598358154297; +385.47589111328125, 69.95598602294922; +385.5758972167969, 69.90052032470703; +385.6758728027344, 69.85955810546875; +385.77587890625, 69.82068634033203; +385.8758544921875, 69.78787994384766; +385.9758605957031, 69.78071594238281; +386.07586669921875, 69.80763244628906; +386.17584228515625, 69.85647583007812; +386.2758483886719, 69.90113830566406; +386.3758239746094, 69.94918823242188; +386.475830078125, 69.9988784790039; +386.5758361816406, 70.04369354248047; +386.6758117675781, 70.07179260253906; +386.77581787109375, 70.082763671875; +386.87579345703125, 70.09086608886719; +386.9757995605469, 70.0948715209961; +387.0758056640625, 70.1063461303711; +387.17578125, 70.11886596679688; +387.2757873535156, 70.13551330566406; +387.3757629394531, 70.17030334472656; +387.47576904296875, 70.23784637451172; +387.5757751464844, 70.35663604736328; +387.6757507324219, 70.55435943603516; +387.7757568359375, 70.90608978271484; +387.875732421875, 71.5107650756836; +387.9757385253906, 72.45984649658203; +388.07574462890625, 73.82781219482422; +388.17572021484375, 75.68610382080078; +388.2757263183594, 78.08454132080078; +388.3757019042969, 81.00666809082031; +388.4757080078125, 84.35477447509766; +388.5757141113281, 87.9674301147461; +388.6756896972656, 91.63265228271484; +388.77569580078125, 95.09868621826172; +388.87567138671875, 98.09468078613281; +388.9756774902344, 100.41345977783203; +389.07568359375, 101.92568969726562; +389.1756591796875, 102.59071350097656; +389.2756652832031, 102.46459197998047; +389.3756408691406, 101.6597671508789; +389.47564697265625, 100.34416961669922; +389.5756530761719, 98.68279266357422; +389.6756286621094, 96.83338165283203; +389.775634765625, 94.93016815185547; +389.8756103515625, 93.05593872070312; +389.9756164550781, 91.26087951660156; +390.0755920410156, 89.55326080322266; +390.17559814453125, 87.92402648925781; +390.2756042480469, 86.36677551269531; +390.3755798339844, 84.8672866821289; +390.4755859375, 83.41616821289062; +390.5755615234375, 82.0287857055664; +390.6755676269531, 80.73414611816406; +390.77557373046875, 79.56327056884766; +390.87554931640625, 78.5130386352539; +390.9755554199219, 77.57380676269531; +391.0755310058594, 76.75028228759766; +391.175537109375, 76.03777313232422; +391.2755432128906, 75.42484283447266; +391.3755187988281, 74.87943267822266; +391.47552490234375, 74.386474609375; +391.57550048828125, 73.95093536376953; +391.6755065917969, 73.57029724121094; +391.7755126953125, 73.23976135253906; +391.87548828125, 72.95441436767578; +391.9754943847656, 72.71317291259766; +392.0754699707031, 72.51924896240234; +392.17547607421875, 72.36658477783203; +392.2754821777344, 72.25933074951172; +392.3754577636719, 72.20695495605469; +392.4754638671875, 72.22180938720703; +392.575439453125, 72.30879974365234; +392.6754455566406, 72.45430755615234; +392.77545166015625, 72.62641143798828; +392.87542724609375, 72.78498840332031; +392.9754333496094, 72.88058471679688; +393.0754089355469, 72.88072967529297; +393.1754150390625, 72.77709197998047; +393.2754211425781, 72.57003021240234; +393.3753967285156, 72.27449798583984; +393.47540283203125, 71.90843963623047; +393.57537841796875, 71.5118637084961; +393.6753845214844, 71.10909271240234; +393.775390625, 70.71369171142578; +393.8753662109375, 70.33246612548828; +393.9753723144531, 69.97835540771484; +394.0753479003906, 69.67072296142578; +394.17535400390625, 69.42413330078125; +394.27532958984375, 69.24114990234375; +394.3753356933594, 69.10125732421875; +394.475341796875, 68.99529266357422; +394.5753173828125, 68.9166030883789; +394.6753234863281, 68.85548400878906; +394.7752990722656, 68.78327941894531; +394.87530517578125, 68.68632507324219; +394.9753112792969, 68.58179473876953; +395.0752868652344, 68.48448181152344; +395.17529296875, 68.3948745727539; +395.2752685546875, 68.3052978515625; +395.3752746582031, 68.2238998413086; +395.47528076171875, 68.15483093261719; +395.57525634765625, 68.09879302978516; +395.6752624511719, 68.05772399902344; +395.7752380371094, 68.03951263427734; +395.875244140625, 68.05757141113281; +395.9752502441406, 68.11873626708984; +396.0752258300781, 68.23690795898438; +396.17523193359375, 68.4179458618164; +396.27520751953125, 68.6540756225586; +396.3752136230469, 68.93974304199219; +396.4752197265625, 69.25782775878906; +396.5751953125, 69.57286071777344; +396.6752014160156, 69.83282470703125; +396.7751770019531, 69.99429321289062; +396.87518310546875, 70.04183197021484; +396.9751892089844, 69.95510864257812; +397.0751647949219, 69.72282409667969; +397.1751708984375, 69.36022186279297; +397.275146484375, 68.89598083496094; +397.3751525878906, 68.36113739013672; +397.47515869140625, 67.78300476074219; +397.57513427734375, 67.20758056640625; +397.6751403808594, 66.68914031982422; +397.7751159667969, 66.28032684326172; +397.8751220703125, 66.03185272216797; +397.97509765625, 65.99158477783203; +398.0751037597656, 66.18655395507812; +398.17510986328125, 66.64042663574219; +398.27508544921875, 67.37349700927734; +398.3750915527344, 68.39533996582031; +398.4750671386719, 69.6822509765625; +398.5750732421875, 71.17129516601562; +398.6750793457031, 72.78166198730469; +398.7750549316406, 74.40779113769531; +398.87506103515625, 75.93383026123047; +398.97503662109375, 77.22361755371094; +399.0750427246094, 78.16246795654297; +399.175048828125, 78.6724853515625; +399.2750244140625, 78.72190856933594; +399.3750305175781, 78.31060028076172; +399.4750061035156, 77.46992492675781; +399.57501220703125, 76.2834701538086; +399.6750183105469, 74.85924530029297; +399.7749938964844, 73.3035888671875; +399.875, 71.70223999023438; +399.9749755859375, 70.12698364257812; +400.0749816894531, 68.63378143310547; +400.17498779296875, 67.25279235839844; +400.27496337890625, 65.99510192871094; +400.3749694824219, 64.87136840820312; +400.4749450683594, 63.89140319824219; +400.574951171875, 63.04856491088867; +400.6749572753906, 62.308414459228516; +400.7749328613281, 61.63705062866211; +400.87493896484375, 61.017147064208984; +400.97491455078125, 60.44450378417969; +401.0749206542969, 59.9116096496582; +401.1749267578125, 59.41144561767578; +401.27490234375, 58.95335388183594; +401.3749084472656, 58.54594039916992; +401.4748840332031, 58.19194793701172; +401.57489013671875, 57.88370895385742; +401.6748962402344, 57.61438751220703; +401.7748718261719, 57.3861083984375; +401.8748779296875, 57.193294525146484; +401.974853515625, 57.02836227416992; +402.0748596191406, 56.87479019165039; +402.1748352050781, 56.70976638793945; +402.27484130859375, 56.52557373046875; +402.3748474121094, 56.32101058959961; +402.4748229980469, 56.104286193847656; +402.5748291015625, 55.88877868652344; +402.6748046875, 55.69381332397461; +402.7748107910156, 55.54035949707031; +402.87481689453125, 55.42044448852539; +402.97479248046875, 55.321449279785156; +403.0747985839844, 55.23500442504883; +403.1747741699219, 55.154541015625; +403.2747802734375, 55.07477951049805; +403.3747863769531, 54.9932861328125; +403.4747619628906, 54.93006134033203; +403.57476806640625, 54.89435958862305; +403.67474365234375, 54.89984893798828; +403.7747497558594, 54.956817626953125; +403.874755859375, 55.070987701416016; +403.9747314453125, 55.24706268310547; +404.0747375488281, 55.481605529785156; +404.1747131347656, 55.79541778564453; +404.27471923828125, 56.200340270996094; +404.3747253417969, 56.69611740112305; +404.4747009277344, 57.28759765625; +404.57470703125, 57.98612594604492; +404.6746826171875, 58.8170051574707; +404.7746887207031, 59.80458068847656; +404.87469482421875, 60.96959686279297; +404.97467041015625, 62.333038330078125; +405.0746765136719, 63.905357360839844; +405.1746520996094, 65.69496154785156; +405.274658203125, 67.71410369873047; +405.3746643066406, 69.95978546142578; +405.4746398925781, 72.4320068359375; +405.57464599609375, 75.14585876464844; +405.67462158203125, 78.11398315429688; +405.7746276855469, 81.34982299804688; +405.8746337890625, 84.8481216430664; +405.974609375, 88.59587860107422; +406.0746154785156, 92.57273864746094; +406.1745910644531, 96.74962615966797; +406.27459716796875, 101.10584259033203; +406.37457275390625, 105.61273956298828; +406.4745788574219, 110.2458724975586; +406.5745849609375, 114.98601531982422; +406.674560546875, 119.81144714355469; +406.7745666503906, 124.69682312011719; +406.8745422363281, 129.6243438720703; +406.97454833984375, 134.57106018066406; +407.0745544433594, 139.51194763183594; +407.1745300292969, 144.4264373779297; +407.2745361328125, 149.30685424804688; +407.37451171875, 154.1522674560547; +407.4745178222656, 158.94178771972656; +407.57452392578125, 163.67855834960938; +407.67449951171875, 168.38580322265625; +407.7745056152344, 173.09803771972656; +407.8744812011719, 177.8495330810547; +407.9744873046875, 182.6500701904297; +408.0744934082031, 187.5320281982422; +408.1744689941406, 192.50738525390625; +408.27447509765625, 197.54005432128906; +408.37445068359375, 202.53582763671875; +408.4744567871094, 207.35325622558594; +408.574462890625, 211.84860229492188; +408.6744384765625, 215.84898376464844; +408.7744445800781, 219.17645263671875; +408.8744201660156, 221.68685913085938; +408.97442626953125, 223.3002471923828; +409.0744323730469, 224.03262329101562; +409.1744079589844, 223.9977264404297; +409.2744140625, 223.36753845214844; +409.3743896484375, 222.32835388183594; +409.4743957519531, 221.07470703125; +409.57440185546875, 219.79603576660156; +409.67437744140625, 218.6441650390625; +409.7743835449219, 217.69580078125; +409.8743591308594, 216.98593139648438; +409.974365234375, 216.5316162109375; +410.0743713378906, 216.3172149658203; +410.1743469238281, 216.3200225830078; +410.27435302734375, 216.5161590576172; +410.37432861328125, 216.88449096679688; +410.4743347167969, 217.40135192871094; +410.5743103027344, 218.04092407226562; +410.67431640625, 218.7936553955078; +410.7743225097656, 219.65191650390625; +410.8742980957031, 220.59947204589844; +410.97430419921875, 221.6141815185547; +411.07427978515625, 222.67723083496094; +411.1742858886719, 223.80714416503906; +411.2742919921875, 225.02980041503906; +411.374267578125, 226.3356170654297; +411.4742736816406, 227.6996307373047; +411.5742492675781, 229.1050567626953; +411.67425537109375, 230.5535430908203; +411.7742614746094, 232.0287628173828; +411.8742370605469, 233.50559997558594; +411.9742431640625, 234.9944610595703; +412.07421875, 236.50485229492188; +412.1742248535156, 238.0498046875; +412.27423095703125, 239.64430236816406; +412.37420654296875, 241.29800415039062; +412.4742126464844, 243.0029296875; +412.5741882324219, 244.73373413085938; +412.6741943359375, 246.49244689941406; +412.7742004394531, 248.3080291748047; +412.8741760253906, 250.19061279296875; +412.97418212890625, 252.1559600830078; +413.07415771484375, 254.24981689453125; +413.1741638183594, 256.5126647949219; +413.274169921875, 258.9679260253906; +413.3741455078125, 261.6001281738281; +413.4741516113281, 264.38751220703125; +413.5741271972656, 267.29718017578125; +413.67413330078125, 270.3159484863281; +413.7741394042969, 273.4642639160156; +413.8741149902344, 276.7621765136719; +413.97412109375, 280.2209777832031; +414.0740966796875, 283.8654479980469; +414.1741027832031, 287.74615478515625; +414.2740783691406, 291.8821105957031; +414.37408447265625, 296.26312255859375; +414.4740905761719, 300.8694763183594; +414.5740661621094, 305.7046203613281; +414.674072265625, 310.7621154785156; +414.7740478515625, 316.0301818847656; +414.8740539550781, 321.5148620605469; +414.97406005859375, 327.23291015625; +415.07403564453125, 333.19964599609375; +415.1740417480469, 339.4015197753906; +415.2740173339844, 345.8497619628906; +415.3740234375, 352.5433349609375; +415.4740295410156, 359.4764099121094; +415.5740051269531, 366.64666748046875; +415.67401123046875, 374.0860595703125; +415.77398681640625, 381.8775634765625; +415.8739929199219, 390.0838623046875; +415.9739990234375, 398.74993896484375; +416.073974609375, 407.8914489746094; +416.1739807128906, 417.55267333984375; +416.2739562988281, 427.74371337890625; +416.37396240234375, 438.4315185546875; +416.4739685058594, 449.5572509765625; +416.5739440917969, 461.0877380371094; +416.6739501953125, 473.0215759277344; +416.77392578125, 485.3412170410156; +416.8739318847656, 498.0205078125; +416.97393798828125, 511.0262145996094; +417.07391357421875, 524.3324584960938; +417.1739196777344, 537.9274291992188; +417.2738952636719, 551.768798828125; +417.3739013671875, 565.7535400390625; +417.4739074707031, 579.796875; +417.5738830566406, 593.8351440429688; +417.67388916015625, 607.8726806640625; +417.77386474609375, 621.9165649414062; +417.8738708496094, 636.0027465820312; +417.973876953125, 650.1580810546875; +418.0738525390625, 664.3826904296875; +418.1738586425781, 678.7078857421875; +418.2738342285156, 693.1530151367188; +418.37384033203125, 707.630615234375; +418.47381591796875, 722.0309448242188; +418.5738220214844, 736.3406982421875; +418.673828125, 750.6178588867188; +418.7738037109375, 764.8442993164062; +418.8738098144531, 778.8579711914062; +418.9737854003906, 792.6405639648438; +419.07379150390625, 806.2158203125; +419.1737976074219, 819.514892578125; +419.2737731933594, 832.3790893554688; +419.373779296875, 844.7608642578125; +419.4737548828125, 856.8519897460938; +419.5737609863281, 868.6964111328125; +419.67376708984375, 880.260986328125; +419.77374267578125, 891.533447265625; +419.8737487792969, 902.6915283203125; +419.9737243652344, 913.818359375; +420.07373046875, 924.7722778320312; +420.1737365722656, 935.5269165039062; +420.2737121582031, 946.1133422851562; +420.37371826171875, 956.5904541015625; +420.47369384765625, 966.8145751953125; +420.5736999511719, 976.6103515625; +420.6737060546875, 985.9064331054688; +420.773681640625, 994.6034545898438; +420.8736877441406, 1002.6002197265625; +420.9736633300781, 1009.83154296875; +421.07366943359375, 1016.3070678710938; +421.1736755371094, 1022.1409301757812; +421.2736511230469, 1027.2694091796875; +421.3736572265625, 1031.54296875; +421.4736328125, 1034.90966796875; +421.5736389160156, 1037.5281982421875; +421.67364501953125, 1039.5533447265625; +421.77362060546875, 1040.7906494140625; +421.8736267089844, 1041.286865234375; +421.9736022949219, 1041.2420654296875; +422.0736083984375, 1040.843017578125; +422.1736145019531, 1040.01513671875; +422.2735900878906, 1038.5794677734375; +422.37359619140625, 1036.777587890625; +422.47357177734375, 1034.6796875; +422.5735778808594, 1032.3629150390625; +422.6735534667969, 1029.8304443359375; +422.7735595703125, 1027.083984375; +422.8735656738281, 1024.2628173828125; +422.9735412597656, 1021.41162109375; +423.07354736328125, 1018.6478271484375; +423.17352294921875, 1015.951416015625; +423.2735290527344, 1013.3294677734375; +423.37353515625, 1010.7803344726562; +423.4735107421875, 1008.2640991210938; +423.5735168457031, 1005.7039184570312; +423.6734924316406, 1003.1278076171875; +423.77349853515625, 1000.7196655273438; +423.8735046386719, 998.5305786132812; +423.9734802246094, 996.6019287109375; +424.073486328125, 994.9570922851562; +424.1734619140625, 993.7982788085938; +424.2734680175781, 993.4158325195312; +424.37347412109375, 993.9132690429688; +424.47344970703125, 995.3958129882812; +424.5734558105469, 997.992919921875; +424.6734313964844, 1002.2238159179688; +424.7734375, 1008.6505126953125; +424.8734436035156, 1017.6821899414062; +424.9734191894531, 1030.0263671875; +425.07342529296875, 1046.8753662109375; +425.17340087890625, 1070.0819091796875; +425.2734069824219, 1101.5137939453125; +425.3734130859375, 1143.0648193359375; +425.473388671875, 1196.569091796875; +425.5733947753906, 1263.0892333984375; +425.6733703613281, 1342.16064453125; +425.77337646484375, 1431.5941162109375; +425.8733825683594, 1528.10400390625; +425.9733581542969, 1626.6995849609375; +426.0733642578125, 1721.3707275390625; +426.17333984375, 1806.94921875; +426.2733459472656, 1879.7403564453125; +426.37335205078125, 1938.201416015625; +426.47332763671875, 1980.5230712890625; +426.5733337402344, 2007.212646484375; +426.6733093261719, 2019.3104248046875; +426.7733154296875, 2016.8568115234375; +426.873291015625, 1998.9501953125; +426.9732971191406, 1961.7745361328125; +427.07330322265625, 1902.15869140625; +427.17327880859375, 1816.418212890625; +427.2732849121094, 1703.5216064453125; +427.3732604980469, 1565.5338134765625; +427.4732666015625, 1407.0621337890625; +427.5732727050781, 1236.5328369140625; +427.6732482910156, 1063.8330078125; +427.77325439453125, 898.6687622070312; +427.87322998046875, 748.2615966796875; +427.9732360839844, 616.9365234375; +428.0732421875, 506.51068115234375; +428.1732177734375, 416.27874755859375; +428.2732238769531, 343.9200439453125; +428.3731994628906, 286.5873107910156; +428.47320556640625, 241.49618530273438; +428.5732116699219, 206.1578369140625; +428.6731872558594, 178.459716796875; +428.773193359375, 156.69549560546875; +428.8731689453125, 139.53182983398438; +428.9731750488281, 125.93138885498047; +429.07318115234375, 115.09877014160156; +429.17315673828125, 106.41871643066406; +429.2731628417969, 99.42900848388672; +429.3731384277344, 93.76936340332031; +429.47314453125, 89.17063903808594; +429.5731506347656, 85.42050170898438; +429.6731262207031, 82.33828735351562; +429.77313232421875, 79.78230285644531; +429.87310791015625, 77.64472198486328; +429.9731140136719, 75.84548950195312; +430.0731201171875, 74.30267333984375; +430.173095703125, 72.94541931152344; +430.2731018066406, 71.74016571044922; +430.3730773925781, 70.6712417602539; +430.47308349609375, 69.71217346191406; +430.57305908203125, 68.82894897460938; +430.6730651855469, 68.00767517089844; +430.7730712890625, 67.25752258300781; +430.873046875, 66.5647201538086; +430.9730529785156, 65.91061401367188; +431.0730285644531, 65.28775787353516; +431.17303466796875, 64.7061538696289; +431.2730407714844, 64.1703109741211; +431.3730163574219, 63.669883728027344; +431.4730224609375, 63.217350006103516; +431.572998046875, 62.81660461425781; +431.6730041503906, 62.476776123046875; +431.77301025390625, 62.19316101074219; +431.87298583984375, 61.95735168457031; +431.9729919433594, 61.7680549621582; +432.0729675292969, 61.61272430419922; +432.1729736328125, 61.49042510986328; +432.2729797363281, 61.386146545410156; +432.3729553222656, 61.2953987121582; +432.47296142578125, 61.2260856628418; +432.57293701171875, 61.18210983276367; +432.6729431152344, 61.15692901611328; +432.77294921875, 61.138084411621094; +432.8729248046875, 61.12332534790039; +432.9729309082031, 61.10905075073242; +433.0729064941406, 61.085201263427734; +433.17291259765625, 61.057701110839844; +433.2729187011719, 61.043121337890625; +433.3728942871094, 61.03947830200195; +433.472900390625, 61.04073715209961; +433.5728759765625, 61.04151916503906; +433.6728820800781, 61.049312591552734; +433.77288818359375, 61.05599594116211; +433.87286376953125, 61.051883697509766; +433.9728698730469, 61.04663848876953; +434.0728454589844, 61.05010986328125; +434.1728515625, 61.06936264038086; +434.2728576660156, 61.097049713134766; +434.3728332519531, 61.123512268066406; +434.47283935546875, 61.14536666870117; +434.57281494140625, 61.1577262878418; +434.6728210449219, 61.15194320678711; +434.7727966308594, 61.1317138671875; +434.872802734375, 61.101600646972656; +434.9728088378906, 61.06464385986328; +435.0727844238281, 61.012081146240234; +435.17279052734375, 60.949832916259766; +435.27276611328125, 60.900882720947266; +435.3727722167969, 60.866615295410156; +435.4727783203125, 60.83673095703125; +435.57275390625, 60.80801773071289; +435.6727600097656, 60.796058654785156; +435.7727355957031, 60.79844284057617; +435.87274169921875, 60.79026412963867; +435.9727478027344, 60.759639739990234; +436.0727233886719, 60.71821594238281; +436.1727294921875, 60.68124008178711; +436.272705078125, 60.64485168457031; +436.3727111816406, 60.6106071472168; +436.47271728515625, 60.592628479003906; +436.57269287109375, 60.60596466064453; +436.6726989746094, 60.64912796020508; +436.7726745605469, 60.718177795410156; +436.8726806640625, 60.82258224487305; +436.9726867675781, 60.96785354614258; +437.0726623535156, 61.16249465942383; +437.17266845703125, 61.416259765625; +437.27264404296875, 61.7597770690918; +437.3726501464844, 62.224544525146484; +437.47265625, 62.83155059814453; +437.5726318359375, 63.59492874145508; +437.6726379394531, 64.51214599609375; +437.7726135253906, 65.56852722167969; +437.87261962890625, 66.73793029785156; +437.9726257324219, 67.98961639404297; +438.0726013183594, 69.27791595458984; +438.172607421875, 70.54460906982422; +438.2725830078125, 71.73448181152344; +438.3725891113281, 72.81253051757812; +438.47259521484375, 73.73165893554688; +438.57257080078125, 74.4373779296875; +438.6725769042969, 74.89017486572266; +438.7725524902344, 75.08467864990234; +438.87255859375, 75.04182434082031; +438.9725341796875, 74.78622436523438; +439.0725402832031, 74.3675765991211; +439.17254638671875, 73.85282135009766; +439.27252197265625, 73.30545806884766; +439.3725280761719, 72.78736877441406; +439.4725036621094, 72.35250091552734; +439.572509765625, 72.04769134521484; +439.6725158691406, 71.88772583007812; +439.7724914550781, 71.85969543457031; +439.87249755859375, 71.95427703857422; +439.97247314453125, 72.15074157714844; +440.0724792480469, 72.40643310546875; +440.1724853515625, 72.64330291748047; +440.2724609375, 72.7782211303711; +440.3724670410156, 72.75826263427734; +440.4724426269531, 72.558837890625; +440.57244873046875, 72.15370178222656; +440.6724548339844, 71.51166534423828; +440.7724304199219, 70.62662506103516; +440.8724365234375, 69.54739379882812; +440.972412109375, 68.33026123046875; +441.0724182128906, 67.01290130615234; +441.17242431640625, 65.63396453857422; +441.27239990234375, 64.25424194335938; +441.3724060058594, 62.94248962402344; +441.4723815917969, 61.731971740722656; +441.5723876953125, 60.63759231567383; +441.6723937988281, 59.65803527832031; +441.7723693847656, 58.788082122802734; +441.87237548828125, 58.028236389160156; +441.97235107421875, 57.375244140625; +442.0723571777344, 56.81431198120117; +442.17236328125, 56.31867218017578; +442.2723388671875, 55.871070861816406; +442.3723449707031, 55.47052001953125; +442.4723205566406, 55.112274169921875; +442.57232666015625, 54.785213470458984; +442.6723327636719, 54.48406982421875; +442.7723083496094, 54.209388732910156; +442.872314453125, 53.96644592285156; +442.9722900390625, 53.7647819519043; +443.0722961425781, 53.602561950683594; +443.1722717285156, 53.469032287597656; +443.27227783203125, 53.358516693115234; +443.3722839355469, 53.27492141723633; +443.4722595214844, 53.23015213012695; +443.572265625, 53.212867736816406; +443.6722412109375, 53.20566940307617; +443.7722473144531, 53.20036315917969; +443.87225341796875, 53.19221878051758; +443.97222900390625, 53.18339157104492; +444.0722351074219, 53.160621643066406; +444.1722106933594, 53.119056701660156; +444.272216796875, 53.06146240234375; +444.3722229003906, 53.00111389160156; +444.4721984863281, 52.95250701904297; +444.57220458984375, 52.906951904296875; +444.67218017578125, 52.862064361572266; +444.7721862792969, 52.81731414794922; +444.8721923828125, 52.78602981567383; +444.97216796875, 52.76497268676758; +445.0721740722656, 52.75577926635742; +445.1721496582031, 52.76844787597656; +445.27215576171875, 52.793853759765625; +445.3721618652344, 52.815608978271484; +445.4721374511719, 52.82486343383789; +445.5721435546875, 52.836387634277344; +445.672119140625, 52.84648513793945; +445.7721252441406, 52.844234466552734; +445.87213134765625, 52.839786529541016; +445.97210693359375, 52.86130905151367; +446.0721130371094, 52.918880462646484; +446.1720886230469, 52.99832534790039; +446.2720947265625, 53.08727264404297; +446.3721008300781, 53.18382263183594; +446.4720764160156, 53.2844123840332; +446.57208251953125, 53.373836517333984; +446.67205810546875, 53.43415451049805; +446.7720642089844, 53.45722198486328; +446.8720397949219, 53.447364807128906; +446.9720458984375, 53.41511154174805; +447.0720520019531, 53.366920471191406; +447.1720275878906, 53.297950744628906; +447.27203369140625, 53.20779800415039; +447.37200927734375, 53.10451889038086; +447.4720153808594, 52.992149353027344; +447.572021484375, 52.86920928955078; +447.6719970703125, 52.730464935302734; +447.7720031738281, 52.58616638183594; +447.8719787597656, 52.45060348510742; +447.97198486328125, 52.326171875; +448.0719909667969, 52.210227966308594; +448.1719665527344, 52.09273147583008; +448.27197265625, 51.97734451293945; +448.3719482421875, 51.87739562988281; +448.4719543457031, 51.791465759277344; +448.57196044921875, 51.72095489501953; +448.67193603515625, 51.66907501220703; +448.7719421386719, 51.645851135253906; +448.8719177246094, 51.64262008666992; +448.971923828125, 51.636322021484375; +449.0719299316406, 51.62346267700195; +449.1719055175781, 51.60721969604492; +449.27191162109375, 51.59788513183594; +449.37188720703125, 51.592506408691406; +449.4718933105469, 51.59366226196289; +449.5718994140625, 51.606319427490234; +449.671875, 51.6305046081543; +449.7718811035156, 51.65553283691406; +449.8718566894531, 51.66634750366211; +449.97186279296875, 51.671138763427734; +450.0718688964844, 51.68106460571289; +450.1718444824219, 51.69338607788086; +450.2718505859375, 51.70077896118164; +450.371826171875, 51.714054107666016; +450.4718322753906, 51.757835388183594; +450.57183837890625, 51.84502029418945; +450.67181396484375, 51.973812103271484; +450.7718200683594, 52.135406494140625; +450.8717956542969, 52.3291015625; +450.9718017578125, 52.55418395996094; +451.07177734375, 52.80672073364258; +451.1717834472656, 53.07908248901367; +451.27178955078125, 53.3808479309082; +451.37176513671875, 53.73623275756836; +451.4717712402344, 54.147422790527344; +451.5717468261719, 54.5973014831543; +451.6717529296875, 55.05411911010742; +451.7717590332031, 55.49894332885742; +451.8717346191406, 55.91004943847656; +451.97174072265625, 56.27909469604492; +452.07171630859375, 56.60054016113281; +452.1717224121094, 56.86259841918945; +452.271728515625, 57.05916213989258; +452.3717041015625, 57.1871337890625; +452.4717102050781, 57.249820709228516; +452.5716857910156, 57.23454666137695; +452.67169189453125, 57.13444900512695; +452.7716979980469, 56.960506439208984; +452.8716735839844, 56.72909164428711; +452.9716796875, 56.450225830078125; +453.0716552734375, 56.12892532348633; +453.1716613769531, 55.778892517089844; +453.27166748046875, 55.421016693115234; +453.37164306640625, 55.06949234008789; +453.4716491699219, 54.74003982543945; +453.5716247558594, 54.446414947509766; +453.671630859375, 54.20663070678711; +453.7716369628906, 54.02511978149414; +453.8716125488281, 53.90575408935547; +453.97161865234375, 53.85963439941406; +454.07159423828125, 53.89594268798828; +454.1716003417969, 54.02433776855469; +454.2716064453125, 54.24070358276367; +454.37158203125, 54.54515075683594; +454.4715881347656, 54.93148422241211; +454.5715637207031, 55.38698959350586; +454.67156982421875, 55.89212417602539; +454.7715759277344, 56.42233657836914; +454.8715515136719, 56.95638656616211; +454.9715576171875, 57.46929168701172; +455.071533203125, 57.93444061279297; +455.1715393066406, 58.305545806884766; +455.2715148925781, 58.53853225708008; +455.37152099609375, 58.59833908081055; +455.4715270996094, 58.47409439086914; +455.5715026855469, 58.170528411865234; +455.6715087890625, 57.69403839111328; +455.771484375, 57.0798454284668; +455.8714904785156, 56.367210388183594; +455.97149658203125, 55.59956359863281; +456.07147216796875, 54.80451965332031; +456.1714782714844, 54.00355911254883; +456.2714538574219, 53.22461700439453; +456.3714599609375, 52.49756622314453; +456.4714660644531, 51.84952926635742; +456.5714416503906, 51.28868103027344; +456.67144775390625, 50.81125259399414; +456.77142333984375, 50.41513442993164; +456.8714294433594, 50.099090576171875; +456.971435546875, 49.85015869140625; +457.0714111328125, 49.64936447143555; +457.1714172363281, 49.48814392089844; +457.2713928222656, 49.36572265625; +457.37139892578125, 49.272483825683594; +457.4714050292969, 49.197837829589844; +457.5713806152344, 49.13637161254883; +457.67138671875, 49.09931945800781; +457.7713623046875, 49.08676528930664; +457.8713684082031, 49.089691162109375; +457.97137451171875, 49.09837341308594; +458.07135009765625, 49.11116409301758; +458.1713562011719, 49.13125991821289; +458.2713317871094, 49.15081787109375; +458.371337890625, 49.17082977294922; +458.4713439941406, 49.202308654785156; +458.5713195800781, 49.25992202758789; +458.67132568359375, 49.339942932128906; +458.77130126953125, 49.429386138916016; +458.8713073730469, 49.51130676269531; +458.9713134765625, 49.56583786010742; +459.0712890625, 49.58057403564453; +459.1712951660156, 49.559913635253906; +459.2712707519531, 49.521400451660156; +459.37127685546875, 49.4706916809082; +459.47125244140625, 49.40998458862305; +459.5712585449219, 49.345909118652344; +459.6712646484375, 49.29373550415039; +459.771240234375, 49.266212463378906; +459.8712463378906, 49.2545051574707; +459.9712219238281, 49.25529479980469; +460.07122802734375, 49.27517318725586; +460.1712341308594, 49.32176208496094; +460.2712097167969, 49.38165283203125; +460.3712158203125, 49.419857025146484; +460.47119140625, 49.434425354003906; +460.5711975097656, 49.43667221069336; +460.67120361328125, 49.44147872924805; +460.77117919921875, 49.457950592041016; +460.8711853027344, 49.4842529296875; +460.9711608886719, 49.53139114379883; +461.0711669921875, 49.60110092163086; +461.1711730957031, 49.69245147705078; +461.2711486816406, 49.78678512573242; +461.37115478515625, 49.86799621582031; +461.47113037109375, 49.94560623168945; +461.5711364746094, 50.021240234375; +461.671142578125, 50.08840560913086; +461.7711181640625, 50.13706588745117; +461.8711242675781, 50.175079345703125; +461.9710998535156, 50.21843338012695; +462.07110595703125, 50.260231018066406; +462.1711120605469, 50.30414581298828; +462.2710876464844, 50.35347366333008; +462.37109375, 50.416961669921875; +462.4710693359375, 50.49290466308594; +462.5710754394531, 50.565486907958984; +462.67108154296875, 50.63603973388672; +462.77105712890625, 50.700992584228516; +462.8710632324219, 50.76848602294922; +462.9710388183594, 50.835208892822266; +463.071044921875, 50.897926330566406; +463.1710205078125, 50.96062088012695; +463.2710266113281, 51.03326416015625; +463.37103271484375, 51.12411880493164; +463.47100830078125, 51.2140007019043; +463.5710144042969, 51.29317855834961; +463.6709899902344, 51.3758659362793; +463.77099609375, 51.47636795043945; +463.8710021972656, 51.590919494628906; +463.9709777832031, 51.71220016479492; +464.07098388671875, 51.84589385986328; +464.17095947265625, 51.992496490478516; +464.2709655761719, 52.13220977783203; +464.3709716796875, 52.25792694091797; +464.470947265625, 52.366493225097656; +464.5709533691406, 52.44644546508789; +464.6709289550781, 52.490234375; +464.77093505859375, 52.49757385253906; +464.8709411621094, 52.48283004760742; +464.9709167480469, 52.44660186767578; +465.0709228515625, 52.395999908447266; +465.1708984375, 52.343101501464844; +465.2709045410156, 52.29141616821289; +465.37091064453125, 52.24343490600586; +465.47088623046875, 52.19923782348633; +465.5708923339844, 52.16717529296875; +465.6708679199219, 52.13502883911133; +465.7708740234375, 52.09083938598633; +465.8708801269531, 52.041664123535156; +465.9708557128906, 51.99755859375; +466.07086181640625, 51.960304260253906; +466.17083740234375, 51.91551208496094; +466.2708435058594, 51.86665725708008; +466.370849609375, 51.816864013671875; +466.4708251953125, 51.75948715209961; +466.5708312988281, 51.70170211791992; +466.6708068847656, 51.64373779296875; +466.77081298828125, 51.58466720581055; +466.8708190917969, 51.51705551147461; +466.9707946777344, 51.45488739013672; +467.07080078125, 51.41340255737305; +467.1707763671875, 51.380245208740234; +467.2707824707031, 51.34023666381836; +467.3707580566406, 51.302024841308594; +467.47076416015625, 51.278404235839844; +467.5707702636719, 51.250614166259766; +467.6707458496094, 51.19793701171875; +467.770751953125, 51.12533950805664; +467.8707275390625, 51.06219482421875; +467.9707336425781, 51.007843017578125; +468.07073974609375, 50.95145797729492; +468.17071533203125, 50.89845657348633; +468.2707214355469, 50.87061309814453; +468.3706970214844, 50.870819091796875; +468.470703125, 50.87363052368164; +468.5707092285156, 50.866455078125; +468.6706848144531, 50.85414505004883; +468.77069091796875, 50.858341217041016; +468.87066650390625, 50.87485885620117; +468.9706726074219, 50.89222717285156; +469.0706787109375, 50.91365432739258; +469.170654296875, 50.944358825683594; +469.2706604003906, 50.97669982910156; +469.3706359863281, 50.99803924560547; +469.47064208984375, 51.02616500854492; +469.5706481933594, 51.08369064331055; +469.6706237792969, 51.17328643798828; +469.7706298828125, 51.293724060058594; +469.87060546875, 51.45566177368164; +469.9706115722656, 51.662235260009766; +470.07061767578125, 51.890106201171875; +470.17059326171875, 52.125274658203125; +470.2705993652344, 52.37010192871094; +470.3705749511719, 52.63813400268555; +470.4705810546875, 52.93145751953125; +470.5705871582031, 53.232879638671875; +470.6705627441406, 53.52610397338867; +470.77056884765625, 53.8041877746582; +470.87054443359375, 54.05773162841797; +470.9705505371094, 54.26047897338867; +471.070556640625, 54.38648986816406; +471.1705322265625, 54.43756103515625; +471.2705383300781, 54.43421936035156; +471.3705139160156, 54.37761688232422; +471.47052001953125, 54.2712516784668; +471.57049560546875, 54.12495803833008; +471.6705017089844, 53.9527473449707; +471.7705078125, 53.76557922363281; +471.8704833984375, 53.561397552490234; +471.9704895019531, 53.350284576416016; +472.0704650878906, 53.145259857177734; +472.17047119140625, 52.95439147949219; +472.2704772949219, 52.782691955566406; +472.3704528808594, 52.628196716308594; +472.470458984375, 52.48252868652344; +472.5704345703125, 52.34520721435547; +472.6704406738281, 52.2115592956543; +472.77044677734375, 52.08271026611328; +472.87042236328125, 51.952110290527344; +472.9704284667969, 51.8082160949707; +473.0704040527344, 51.65541076660156; +473.17041015625, 51.48466491699219; +473.2704162597656, 51.295249938964844; +473.3703918457031, 51.09221649169922; +473.47039794921875, 50.88821792602539; +473.57037353515625, 50.7089729309082; +473.6703796386719, 50.573116302490234; +473.7703857421875, 50.490901947021484; +473.870361328125, 50.45627975463867; +473.9703674316406, 50.47265625; +474.0703430175781, 50.549983978271484; +474.17034912109375, 50.67232131958008; +474.2703552246094, 50.81745147705078; +474.3703308105469, 50.980926513671875; +474.4703369140625, 51.17939376831055; +474.5703125, 51.38894271850586; +474.6703186035156, 51.561771392822266; +474.77032470703125, 51.66246032714844; +474.87030029296875, 51.67732238769531; +474.9703063964844, 51.59641647338867; +475.0702819824219, 51.39698028564453; +475.1702880859375, 51.07887268066406; +475.2702941894531, 50.664306640625; +475.3702697753906, 50.188636779785156; +475.47027587890625, 49.672813415527344; +475.57025146484375, 49.11591720581055; +475.6702575683594, 48.51521682739258; +475.7702331542969, 47.884403228759766; +475.8702392578125, 47.25954818725586; +475.9702453613281, 46.6546630859375; +476.0702209472656, 46.07359313964844; +476.17022705078125, 45.52589416503906; +476.27020263671875, 45.05045700073242; +476.3702087402344, 44.67241287231445; +476.47021484375, 44.3732795715332; +476.5701904296875, 44.13808059692383; +476.6701965332031, 43.959781646728516; +476.7701721191406, 43.839664459228516; +476.87017822265625, 43.75105285644531; +476.9701843261719, 43.67692184448242; +477.0701599121094, 43.623992919921875; +477.170166015625, 43.60301208496094; +477.2701416015625, 43.616512298583984; +477.3701477050781, 43.66184616088867; +477.47015380859375, 43.727806091308594; +477.57012939453125, 43.800777435302734; +477.6701354980469, 43.86594009399414; +477.7701110839844, 43.919795989990234; +477.8701171875, 43.96062469482422; +477.9701232910156, 43.984474182128906; +478.0700988769531, 43.99604415893555; +478.17010498046875, 43.99702835083008; +478.27008056640625, 43.98827362060547; +478.3700866699219, 43.9716796875; +478.4700927734375, 43.954200744628906; +478.570068359375, 43.93815994262695; +478.6700744628906, 43.92764663696289; +478.7700500488281, 43.92723846435547; +478.87005615234375, 43.94034194946289; +478.9700622558594, 43.96154022216797; +479.0700378417969, 43.98104476928711; +479.1700439453125, 43.99214553833008; +479.27001953125, 43.99879837036133; +479.3700256347656, 44.0078010559082; +479.47003173828125, 44.02043533325195; +479.57000732421875, 44.0343017578125; +479.6700134277344, 44.054595947265625; +479.7699890136719, 44.08500289916992; +479.8699951171875, 44.11339569091797; +479.969970703125, 44.12023162841797; +480.0699768066406, 44.107513427734375; +480.16998291015625, 44.08644104003906; +480.26995849609375, 44.06380081176758; +480.3699645996094, 44.04313278198242; +480.4699401855469, 44.02537536621094; +480.5699462890625, 44.010074615478516; +480.6699523925781, 43.983341217041016; +480.7699279785156, 43.94204330444336; +480.86993408203125, 43.89168930053711; +480.96990966796875, 43.83896255493164; +481.0699157714844, 43.78653335571289; +481.169921875, 43.738990783691406; +481.2698974609375, 43.70844268798828; +481.3699035644531, 43.69293975830078; +481.4698791503906, 43.68233108520508; +481.56988525390625, 43.675540924072266; +481.6698913574219, 43.67753982543945; +481.7698669433594, 43.69264221191406; +481.869873046875, 43.710731506347656; +481.9698486328125, 43.73387908935547; +482.0698547363281, 43.76892852783203; +482.16986083984375, 43.82130432128906; +482.26983642578125, 43.885894775390625; +482.3698425292969, 43.94758605957031; +482.4698181152344, 44.003822326660156; +482.56982421875, 44.06139373779297; +482.6698303222656, 44.12578201293945; +482.7698059082031, 44.179134368896484; +482.86981201171875, 44.21821975708008; +482.96978759765625, 44.25939178466797; +483.0697937011719, 44.315574645996094; +483.1697998046875, 44.36747741699219; +483.269775390625, 44.39124298095703; +483.3697814941406, 44.390380859375; +483.4697570800781, 44.376930236816406; +483.56976318359375, 44.35911178588867; +483.66973876953125, 44.338294982910156; +483.7697448730469, 44.31907653808594; +483.8697509765625, 44.312767028808594; +483.9697265625, 44.324703216552734; +484.0697326660156, 44.34814453125; +484.1697082519531, 44.37452697753906; +484.26971435546875, 44.393733978271484; +484.3697204589844, 44.41598892211914; +484.4696960449219, 44.447021484375; +484.5697021484375, 44.49295425415039; +484.669677734375, 44.548885345458984; +484.7696838378906, 44.599571228027344; +484.86968994140625, 44.64457321166992; +484.96966552734375, 44.68735885620117; +485.0696716308594, 44.73037338256836; +485.1696472167969, 44.7664794921875; +485.2696533203125, 44.7949104309082; +485.3696594238281, 44.827110290527344; +485.4696350097656, 44.8687744140625; +485.56964111328125, 44.916873931884766; +485.66961669921875, 44.965492248535156; +485.7696228027344, 45.01506805419922; +485.86962890625, 45.06852340698242; +485.9696044921875, 45.127159118652344; +486.0696105957031, 45.188419342041016; +486.1695861816406, 45.254737854003906; +486.26959228515625, 45.32465362548828; +486.3695983886719, 45.38310241699219; +486.4695739746094, 45.42091369628906; +486.569580078125, 45.435951232910156; +486.6695556640625, 45.43682098388672; +486.7695617675781, 45.4207649230957; +486.86956787109375, 45.38992691040039; +486.96954345703125, 45.35578155517578; +487.0695495605469, 45.31425094604492; +487.1695251464844, 45.25679397583008; +487.26953125, 45.17436218261719; +487.3695373535156, 45.06344223022461; +487.4695129394531, 44.9245719909668; +487.56951904296875, 44.76334762573242; +487.66949462890625, 44.59540557861328; +487.7695007324219, 44.41781234741211; +487.8694763183594, 44.22704315185547; +487.969482421875, 44.03132247924805; +488.0694885253906, 43.83819580078125; +488.1694641113281, 43.64714050292969; +488.26947021484375, 43.44872283935547; +488.36944580078125, 43.258995056152344; +488.4694519042969, 43.08970260620117; +488.5694580078125, 42.93685531616211; +488.66943359375, 42.7911491394043; +488.7694396972656, 42.646305084228516; +488.8694152832031, 42.5130500793457; +488.96942138671875, 42.39440155029297; +489.0694274902344, 42.29124069213867; +489.1694030761719, 42.2037467956543; +489.2694091796875, 42.12747573852539; +489.369384765625, 42.062705993652344; +489.4693908691406, 42.004451751708984; +489.56939697265625, 41.953189849853516; +489.66937255859375, 41.908905029296875; +489.7693786621094, 41.869014739990234; +489.8693542480469, 41.83756637573242; +489.9693603515625, 41.81398391723633; +490.0693664550781, 41.79500198364258; +490.1693420410156, 41.77540588378906; +490.26934814453125, 41.751033782958984; +490.36932373046875, 41.7253303527832; +490.4693298339844, 41.70264434814453; +490.5693359375, 41.68357849121094; +490.6693115234375, 41.664756774902344; +490.7693176269531, 41.638092041015625; +490.8692932128906, 41.59899139404297; +490.96929931640625, 41.553035736083984; +491.0693054199219, 41.49531555175781; +491.1692810058594, 41.41929626464844; +491.269287109375, 41.328704833984375; +491.3692626953125, 41.23878479003906; +491.4692687988281, 41.161983489990234; +491.56927490234375, 41.09156799316406; +491.66925048828125, 41.02597427368164; +491.7692565917969, 40.97756576538086; +491.8692321777344, 40.950557708740234; +491.96923828125, 40.9318733215332; +492.0692138671875, 40.91956329345703; +492.1692199707031, 40.92165756225586; +492.26922607421875, 40.9476318359375; +492.36920166015625, 40.996334075927734; +492.4692077636719, 41.06464385986328; +492.5691833496094, 41.16745376586914; +492.669189453125, 41.306182861328125; +492.7691955566406, 41.468360900878906; +492.8691711425781, 41.64097595214844; +492.96917724609375, 41.82078552246094; +493.06915283203125, 42.02745056152344; +493.1691589355469, 42.26639938354492; +493.2691650390625, 42.53202819824219; +493.369140625, 42.82378387451172; +493.4691467285156, 43.1462516784668; +493.5691223144531, 43.500274658203125; +493.66912841796875, 43.86683654785156; +493.7691345214844, 44.22455978393555; +493.8691101074219, 44.558292388916016; +493.9691162109375, 44.858394622802734; +494.069091796875, 45.11988830566406; +494.1690979003906, 45.336036682128906; +494.26910400390625, 45.50482177734375; +494.36907958984375, 45.62926483154297; +494.4690856933594, 45.7103385925293; +494.5690612792969, 45.739410400390625; +494.6690673828125, 45.707664489746094; +494.7690734863281, 45.62137985229492; +494.8690490722656, 45.48639678955078; +494.96905517578125, 45.300537109375; +495.06903076171875, 45.066043853759766; +495.1690368652344, 44.79990005493164; +495.26904296875, 44.517696380615234; +495.3690185546875, 44.2255973815918; +495.4690246582031, 43.929466247558594; +495.5690002441406, 43.64331817626953; +495.66900634765625, 43.38355255126953; +495.7690124511719, 43.15988540649414; +495.8689880371094, 42.98014831542969; +495.968994140625, 42.83627700805664; +496.0689697265625, 42.717567443847656; +496.1689758300781, 42.61024856567383; +496.2689514160156, 42.51503372192383; +496.36895751953125, 42.4341926574707; +496.4689636230469, 42.365631103515625; +496.5689392089844, 42.310691833496094; +496.6689453125, 42.269134521484375; +496.7689208984375, 42.250694274902344; +496.8689270019531, 42.25529098510742; +496.96893310546875, 42.276031494140625; +497.06890869140625, 42.2991828918457; +497.1689147949219, 42.31805419921875; +497.2688903808594, 42.34006118774414; +497.368896484375, 42.366737365722656; +497.4689025878906, 42.39284896850586; +497.5688781738281, 42.411930084228516; +497.66888427734375, 42.42457580566406; +497.76885986328125, 42.4361457824707; +497.8688659667969, 42.45289993286133; +497.9688720703125, 42.47003936767578; +498.06884765625, 42.477840423583984; +498.1688537597656, 42.475669860839844; +498.2688293457031, 42.47389602661133; +498.36883544921875, 42.482322692871094; +498.4688415527344, 42.491310119628906; +498.5688171386719, 42.496971130371094; +498.6688232421875, 42.50426483154297; +498.768798828125, 42.52012634277344; +498.8688049316406, 42.54405975341797; +498.96881103515625, 42.570247650146484; +499.06878662109375, 42.593353271484375; +499.1687927246094, 42.612483978271484; +499.2687683105469, 42.62424087524414; +499.3687744140625, 42.62871170043945; +499.4687805175781, 42.631797790527344; +499.5687561035156, 42.6346435546875; +499.66876220703125, 42.642696380615234; +499.76873779296875, 42.6602668762207; +499.8687438964844, 42.69585037231445; +499.9687194824219, 42.750179290771484; +500.0687255859375, 42.804969787597656; +500.1687316894531, 42.85696029663086; +500.2687072753906, 42.91240692138672; +500.36871337890625, 42.97971725463867; +500.46868896484375, 43.061458587646484; +500.5686950683594, 43.15119171142578; +500.668701171875, 43.255088806152344; +500.7686767578125, 43.37333297729492; +500.8686828613281, 43.505855560302734; +500.9686584472656, 43.65401077270508; +501.06866455078125, 43.81462097167969; +501.1686706542969, 43.99132537841797; +501.2686462402344, 44.18483352661133; +501.36865234375, 44.39084243774414; +501.4686279296875, 44.601932525634766; +501.5686340332031, 44.80118942260742; +501.66864013671875, 44.98899841308594; +501.76861572265625, 45.165836334228516; +501.8686218261719, 45.3314323425293; +501.9685974121094, 45.49355697631836; +502.068603515625, 45.6556510925293; +502.1686096191406, 45.825130462646484; +502.2685852050781, 45.98328399658203; +502.36859130859375, 46.111419677734375; +502.46856689453125, 46.20843505859375; +502.5685729980469, 46.27431869506836; +502.6685791015625, 46.3160285949707; +502.7685546875, 46.34079360961914; +502.8685607910156, 46.35967254638672; +502.9685363769531, 46.3795280456543; +503.06854248046875, 46.394630432128906; +503.1685485839844, 46.40618896484375; +503.2685241699219, 46.41509246826172; +503.3685302734375, 46.42403793334961; +503.468505859375, 46.43735122680664; +503.5685119628906, 46.4571418762207; +503.66851806640625, 46.488800048828125; +503.76849365234375, 46.52532958984375; +503.8684997558594, 46.5531120300293; +503.9684753417969, 46.553565979003906; +504.0684814453125, 46.532466888427734; +504.16845703125, 46.5064582824707; +504.2684631347656, 46.48444747924805; +504.36846923828125, 46.4701042175293; +504.46844482421875, 46.46836853027344; +504.5684509277344, 46.479068756103516; +504.6684265136719, 46.487831115722656; +504.7684326171875, 46.4821891784668; +504.8684387207031, 46.45429611206055; +504.9684143066406, 46.4026985168457; +505.06842041015625, 46.330421447753906; +505.16839599609375, 46.25106430053711; +505.2684020996094, 46.17530059814453; +505.368408203125, 46.10042953491211; +505.4683837890625, 46.02095413208008; +505.5683898925781, 45.932613372802734; +505.6683654785156, 45.830162048339844; +505.76837158203125, 45.71841812133789; +505.8683776855469, 45.597740173339844; +505.9683532714844, 45.47989273071289; +506.068359375, 45.38552474975586; +506.1683349609375, 45.317665100097656; +506.2683410644531, 45.271881103515625; +506.36834716796875, 45.2249641418457; +506.46832275390625, 45.177974700927734; +506.5683288574219, 45.13483428955078; +506.6683044433594, 45.08504867553711; +506.768310546875, 45.03171920776367; +506.8683166503906, 44.98411560058594; +506.9682922363281, 44.958011627197266; +507.06829833984375, 44.94770050048828; +507.16827392578125, 44.9496955871582; +507.2682800292969, 44.9605598449707; +507.3682861328125, 44.97952651977539; +507.46826171875, 45.001468658447266; +507.5682678222656, 45.02463912963867; +507.6682434082031, 45.056461334228516; +507.76824951171875, 45.096256256103516; +507.8682556152344, 45.150936126708984; +507.9682312011719, 45.22413635253906; +508.0682373046875, 45.3232307434082; +508.168212890625, 45.456111907958984; +508.2682189941406, 45.62242889404297; +508.3681945800781, 45.811004638671875; +508.46820068359375, 46.01697540283203; +508.5682067871094, 46.24708557128906; +508.6681823730469, 46.49261474609375; +508.7681884765625, 46.735504150390625; +508.8681640625, 46.97010040283203; +508.9681701660156, 47.210052490234375; +509.06817626953125, 47.446014404296875; +509.16815185546875, 47.64653015136719; +509.2681579589844, 47.81462860107422; +509.3681335449219, 47.97021484375; +509.4681396484375, 48.110015869140625; +509.5681457519531, 48.20710372924805; +509.6681213378906, 48.25370788574219; +509.76812744140625, 48.261924743652344; +509.86810302734375, 48.23167037963867; +509.9681091308594, 48.14915466308594; +510.068115234375, 48.013790130615234; +510.1680908203125, 47.83343505859375; +510.2680969238281, 47.60844421386719; +510.3680725097656, 47.34402084350586; +510.46807861328125, 47.04111862182617; +510.5680847167969, 46.70231628417969; +510.6680603027344, 46.325862884521484; +510.76806640625, 45.91537857055664; +510.8680419921875, 45.49270248413086; +510.9680480957031, 45.07185363769531; +511.06805419921875, 44.66044998168945; +511.16802978515625, 44.263771057128906; +511.2680358886719, 43.89421463012695; +511.3680114746094, 43.5692138671875; +511.468017578125, 43.29168701171875; +511.5680236816406, 43.047279357910156; +511.6679992675781, 42.82313537597656; +511.76800537109375, 42.601661682128906; +511.86798095703125, 42.37282180786133; +511.9679870605469, 42.12905502319336; +512.0679931640625, 41.8765983581543; +512.16796875, 41.63468551635742; +512.2679443359375, 41.42094421386719; +512.3679809570312, 41.241676330566406; +512.4679565429688, 41.091880798339844; +512.5679321289062, 40.96934127807617; +512.66796875, 40.87343215942383; +512.7679443359375, 40.79570007324219; +512.867919921875, 40.72059631347656; +512.9678955078125, 40.653141021728516; +513.0679321289062, 40.60209655761719; +513.1679077148438, 40.56498336791992; +513.2678833007812, 40.52740478515625; +513.367919921875, 40.483497619628906; +513.4678955078125, 40.44839096069336; +513.56787109375, 40.42938232421875; +513.6679077148438, 40.42022705078125; +513.7678833007812, 40.40763473510742; +513.8678588867188, 40.38985824584961; +513.9678344726562, 40.38161087036133; +514.06787109375, 40.38422393798828; +514.1678466796875, 40.3853645324707; +514.267822265625, 40.371917724609375; +514.3678588867188, 40.35282897949219; +514.4678344726562, 40.32958984375; +514.5678100585938, 40.28976058959961; +514.6677856445312, 40.21607971191406; +514.767822265625, 40.11007308959961; +514.8677978515625, 39.98816680908203; +514.9677734375, 39.85574722290039; +515.0678100585938, 39.71812057495117; +515.1677856445312, 39.582542419433594; +515.2677612304688, 39.454490661621094; +515.3677978515625, 39.33320999145508; +515.4677734375, 39.21099090576172; +515.5677490234375, 39.09300994873047; +515.667724609375, 38.98051452636719; +515.7677612304688, 38.863704681396484; +515.8677368164062, 38.74042510986328; +515.9677124023438, 38.620262145996094; +516.0677490234375, 38.516685485839844; +516.167724609375, 38.4280891418457; +516.2677001953125, 38.3432502746582; +516.3677368164062, 38.261741638183594; +516.4677124023438, 38.1839485168457; +516.5676879882812, 38.10867691040039; +516.6676635742188, 38.03888702392578; +516.7677001953125, 37.976951599121094; +516.86767578125, 37.933631896972656; +516.9676513671875, 37.89811706542969; +517.0676879882812, 37.85944747924805; +517.1676635742188, 37.81694793701172; +517.2676391601562, 37.77363967895508; +517.36767578125, 37.73349380493164; +517.4676513671875, 37.689632415771484; +517.567626953125, 37.65227508544922; +517.6676025390625, 37.634239196777344; +517.7676391601562, 37.62923812866211; +517.8676147460938, 37.62469482421875; +517.9675903320312, 37.613258361816406; +518.067626953125, 37.60151672363281; +518.1676025390625, 37.59299850463867; +518.267578125, 37.583560943603516; +518.3675537109375, 37.571475982666016; +518.4675903320312, 37.556922912597656; +518.5675659179688, 37.53917694091797; +518.6675415039062, 37.5184326171875; +518.767578125, 37.49827194213867; +518.8675537109375, 37.48115158081055; +518.967529296875, 37.473060607910156; +519.0675659179688, 37.47467803955078; +519.1675415039062, 37.482662200927734; +519.2675170898438, 37.487060546875; +519.3674926757812, 37.47753143310547; +519.467529296875, 37.457427978515625; +519.5675048828125, 37.42822265625; +519.66748046875, 37.394100189208984; +519.7675170898438, 37.36233139038086; +519.8674926757812, 37.33011245727539; +519.9674682617188, 37.29540252685547; +520.0675048828125, 37.257789611816406; +520.16748046875, 37.221893310546875; +520.2674560546875, 37.19170379638672; +520.367431640625, 37.16238021850586; +520.4674682617188, 37.150882720947266; +520.5674438476562, 37.169525146484375; +520.6674194335938, 37.20890808105469; +520.7674560546875, 37.2475471496582; +520.867431640625, 37.27106857299805; +520.9674072265625, 37.287532806396484; +521.0674438476562, 37.295921325683594; +521.1674194335938, 37.29385757446289; +521.2673950195312, 37.282108306884766; +521.3673706054688, 37.27656555175781; +521.4674072265625, 37.29032897949219; +521.5673828125, 37.32080078125; +521.6673583984375, 37.354557037353516; +521.7673950195312, 37.393333435058594; +521.8673706054688, 37.439697265625; +521.9673461914062, 37.500553131103516; +522.0673828125, 37.56837463378906; +522.1673583984375, 37.63610076904297; +522.267333984375, 37.707462310791016; +522.3673095703125, 37.77327346801758; +522.4673461914062, 37.84126663208008; +522.5673217773438, 37.90272903442383; +522.6672973632812, 37.96121597290039; +522.767333984375, 38.0231819152832; +522.8673095703125, 38.095855712890625; +522.96728515625, 38.18654251098633; +523.0672607421875, 38.291046142578125; +523.1672973632812, 38.407958984375; +523.2672729492188, 38.53611755371094; +523.3672485351562, 38.66929626464844; +523.46728515625, 38.80739212036133; +523.5672607421875, 38.95512390136719; +523.667236328125, 39.11943817138672; +523.7672729492188, 39.29983139038086; +523.8672485351562, 39.4918098449707; +523.9672241210938, 39.70045471191406; +524.0671997070312, 39.928035736083984; +524.167236328125, 40.17127227783203; +524.2672119140625, 40.426544189453125; +524.3671875, 40.69974136352539; +524.4672241210938, 41.00189208984375; +524.5671997070312, 41.33756637573242; +524.6671752929688, 41.70734405517578; +524.7672119140625, 42.11103820800781; +524.8671875, 42.54539489746094; +524.9671630859375, 43.011390686035156; +525.067138671875, 43.507545471191406; +525.1671752929688, 44.025211334228516; +525.2671508789062, 44.55741500854492; +525.3671264648438, 45.09857177734375; +525.4671630859375, 45.6446647644043; +525.567138671875, 46.18207931518555; +525.6671142578125, 46.704010009765625; +525.7671508789062, 47.2133903503418; +525.8671264648438, 47.699153900146484; +525.9671020507812, 48.15492630004883; +526.0670776367188, 48.570045471191406; +526.1671142578125, 48.93985366821289; +526.26708984375, 49.2470703125; +526.3670654296875, 49.49291229248047; +526.4671020507812, 49.686790466308594; +526.5670776367188, 49.82654571533203; +526.6670532226562, 49.91014862060547; +526.7670288085938, 49.950836181640625; +526.8670654296875, 49.9688835144043; +526.967041015625, 49.95271682739258; +527.0670166015625, 49.894412994384766; +527.1670532226562, 49.798091888427734; +527.2670288085938, 49.67981719970703; +527.3670043945312, 49.54585266113281; +527.467041015625, 49.40983581542969; +527.5670166015625, 49.29639434814453; +527.6669921875, 49.22264099121094; +527.7669677734375, 49.19584655761719; +527.8670043945312, 49.22358703613281; +527.9669799804688, 49.319969177246094; +528.0669555664062, 49.49058532714844; +528.1669921875, 49.741416931152344; +528.2669677734375, 50.07746124267578; +528.366943359375, 50.51247024536133; +528.4669799804688, 51.06016159057617; +528.5669555664062, 51.72601318359375; +528.6669311523438, 52.509361267089844; +528.7669067382812, 53.397029876708984; +528.866943359375, 54.38701248168945; +528.9669189453125, 55.476993560791016; +529.06689453125, 56.65827560424805; +529.1669311523438, 57.91483688354492; +529.2669067382812, 59.243492126464844; +529.3668823242188, 60.645042419433594; +529.4669189453125, 62.11097717285156; +529.56689453125, 63.6356086730957; +529.6668701171875, 65.2161636352539; +529.766845703125, 66.85118865966797; +529.8668823242188, 68.51836395263672; +529.9668579101562, 70.1961669921875; +530.0668334960938, 71.87142181396484; +530.1668701171875, 73.5277099609375; +530.266845703125, 75.15520477294922; +530.3668212890625, 76.7388687133789; +530.4668579101562, 78.26914978027344; +530.5668334960938, 79.73750305175781; +530.6668090820312, 81.14698791503906; +530.7667846679688, 82.5067367553711; +530.8668212890625, 83.80120849609375; +530.966796875, 85.00886535644531; +531.0667724609375, 86.11859893798828; +531.1668090820312, 87.14448547363281; +531.2667846679688, 88.09239959716797; +531.3667602539062, 88.95098114013672; +531.4667358398438, 89.7129135131836; +531.5667724609375, 90.39640808105469; +531.666748046875, 91.02924346923828; +531.7667236328125, 91.60284423828125; +531.8667602539062, 92.08636474609375; +531.9667358398438, 92.46317291259766; +532.0667114257812, 92.75556945800781; +532.166748046875, 92.98015594482422; +532.2667236328125, 93.13996887207031; +532.36669921875, 93.23738098144531; +532.4666748046875, 93.29102325439453; +532.5667114257812, 93.31100463867188; +532.6666870117188, 93.29844665527344; +532.7666625976562, 93.2439956665039; +532.86669921875, 93.13439178466797; +532.9666748046875, 92.98348236083984; +533.066650390625, 92.8045654296875; +533.1666870117188, 92.62147521972656; +533.2666625976562, 92.43975067138672; +533.3666381835938, 92.26222229003906; +533.4666137695312, 92.08978271484375; +533.566650390625, 91.90547180175781; +533.6666259765625, 91.71211242675781; +533.7666015625, 91.51805114746094; +533.8666381835938, 91.32595825195312; +533.9666137695312, 91.13902282714844; +534.0665893554688, 90.96745300292969; +534.1666259765625, 90.83130645751953; +534.2666015625, 90.7362289428711; +534.3665771484375, 90.66781616210938; +534.466552734375, 90.62346649169922; +534.5665893554688, 90.61026763916016; +534.6665649414062, 90.6349105834961; +534.7665405273438, 90.70638275146484; +534.8665771484375, 90.82819366455078; +534.966552734375, 91.01419830322266; +535.0665283203125, 91.26724243164062; +535.16650390625, 91.5873031616211; +535.2665405273438, 91.9838638305664; +535.3665161132812, 92.46663665771484; +535.4664916992188, 93.04324340820312; +535.5665283203125, 93.71720886230469; +535.66650390625, 94.49282836914062; +535.7664794921875, 95.37679290771484; +535.8665161132812, 96.36620330810547; +535.9664916992188, 97.45305633544922; +536.0664672851562, 98.62183380126953; +536.1664428710938, 99.85980987548828; +536.2664794921875, 101.15660095214844; +536.366455078125, 102.49480438232422; +536.4664306640625, 103.85993957519531; +536.5664672851562, 105.2314224243164; +536.6664428710938, 106.59136962890625; +536.7664184570312, 107.90340423583984; +536.866455078125, 109.1197738647461; +536.9664306640625, 110.2096176147461; +537.06640625, 111.14533233642578; +537.1663818359375, 111.90238189697266; +537.2664184570312, 112.4435043334961; +537.3663940429688, 112.74308776855469; +537.4663696289062, 112.79185485839844; +537.56640625, 112.57329559326172; +537.6663818359375, 112.06468200683594; +537.766357421875, 111.24980163574219; +537.8663940429688, 110.13605499267578; +537.9663696289062, 108.74126434326172; +538.0663452148438, 107.08121490478516; +538.1663208007812, 105.16364288330078; +538.266357421875, 102.99659729003906; +538.3663330078125, 100.60330200195312; +538.46630859375, 98.02232360839844; +538.5663452148438, 95.28364562988281; +538.6663208007812, 92.41185760498047; +538.7662963867188, 89.43892669677734; +538.8662719726562, 86.41596984863281; +538.96630859375, 83.38676452636719; +539.0662841796875, 80.3686752319336; +539.166259765625, 77.38947296142578; +539.2662963867188, 74.49950408935547; +539.3662719726562, 71.74725341796875; +539.4662475585938, 69.14376068115234; +539.5662841796875, 66.6756591796875; +539.666259765625, 64.35169982910156; +539.7662353515625, 62.18516159057617; +539.8662109375, 60.16585159301758; +539.9662475585938, 58.27275848388672; +540.0662231445312, 56.501380920410156; +540.1661987304688, 54.858924865722656; +540.2662353515625, 53.344451904296875; +540.3662109375, 51.95132827758789; +540.4661865234375, 50.67450714111328; +540.5662231445312, 49.50791549682617; +540.6661987304688, 48.443599700927734; +540.7661743164062, 47.47777557373047; +540.8661499023438, 46.609989166259766; +540.9661865234375, 45.82614517211914; +541.066162109375, 45.10179901123047; +541.1661376953125, 44.42627716064453; +541.2661743164062, 43.80659103393555; +541.3661499023438, 43.25374984741211; +541.4661254882812, 42.75180435180664; +541.566162109375, 42.281673431396484; +541.6661376953125, 41.84708786010742; +541.76611328125, 41.46406936645508; +541.8660888671875, 41.132911682128906; +541.9661254882812, 40.845924377441406; +542.0661010742188, 40.59495162963867; +542.1660766601562, 40.3829231262207; +542.26611328125, 40.20669937133789; +542.3660888671875, 40.05084991455078; +542.466064453125, 39.91261291503906; +542.5661010742188, 39.78176498413086; +542.6660766601562, 39.66041564941406; +542.7660522460938, 39.542266845703125; +542.8660278320312, 39.42351150512695; +542.966064453125, 39.31299591064453; +543.0660400390625, 39.217071533203125; +543.166015625, 39.13025665283203; +543.2660522460938, 39.04529571533203; +543.3660278320312, 38.97275161743164; +543.4660034179688, 38.924781799316406; +543.5659790039062, 38.88532638549805; +543.666015625, 38.826568603515625; +543.7659912109375, 38.75014114379883; +543.865966796875, 38.673057556152344; +543.9660034179688, 38.60376739501953; +544.0659790039062, 38.53781509399414; +544.1659545898438, 38.47698974609375; +544.2659912109375, 38.42183303833008; +544.365966796875, 38.37539291381836; +544.4659423828125, 38.335533142089844; +544.56591796875, 38.297576904296875; +544.6659545898438, 38.252628326416016; +544.7659301757812, 38.197330474853516; +544.8659057617188, 38.14216613769531; +544.9659423828125, 38.086875915527344; +545.06591796875, 38.03001403808594; +545.1658935546875, 37.963382720947266; +545.2659301757812, 37.90192413330078; +545.3659057617188, 37.85414123535156; +545.4658813476562, 37.81727600097656; +545.5658569335938, 37.78642272949219; +545.6658935546875, 37.761905670166016; +545.765869140625, 37.75054931640625; +545.8658447265625, 37.737152099609375; +545.9658813476562, 37.719154357910156; +546.0658569335938, 37.70164489746094; +546.1658325195312, 37.69557189941406; +546.265869140625, 37.69525909423828; +546.3658447265625, 37.70166015625; +546.4658203125, 37.7237663269043; +546.5657958984375, 37.75468444824219; +546.6658325195312, 37.785396575927734; +546.7658081054688, 37.80514907836914; +546.8657836914062, 37.81884002685547; +546.9658203125, 37.81882858276367; +547.0657958984375, 37.80023193359375; +547.165771484375, 37.777244567871094; +547.2657470703125, 37.75937271118164; +547.3657836914062, 37.75050354003906; +547.4657592773438, 37.745208740234375; +547.5657348632812, 37.75025177001953; +547.665771484375, 37.76504135131836; +547.7657470703125, 37.783390045166016; +547.86572265625, 37.80372619628906; +547.9657592773438, 37.81997299194336; +548.0657348632812, 37.82743835449219; +548.1657104492188, 37.821048736572266; +548.2656860351562, 37.81280517578125; +548.36572265625, 37.80095291137695; +548.4656982421875, 37.779720306396484; +548.565673828125, 37.758460998535156; +548.6657104492188, 37.74925994873047; +548.7656860351562, 37.75765609741211; +548.8656616210938, 37.77366256713867; +548.9656982421875, 37.79587173461914; +549.065673828125, 37.82085418701172; +549.1656494140625, 37.83800506591797; +549.265625, 37.84685516357422; +549.3656616210938, 37.854759216308594; +549.4656372070312, 37.86423110961914; +549.5656127929688, 37.86906433105469; +549.6656494140625, 37.870399475097656; +549.765625, 37.87602615356445; +549.8656005859375, 37.88900375366211; +549.9656372070312, 37.8982048034668; +550.0656127929688, 37.90000915527344; +550.1655883789062, 37.90309143066406; +550.2655639648438, 37.912696838378906; +550.3656005859375, 37.931190490722656; +550.465576171875, 37.94564437866211; +550.5655517578125, 37.95152282714844; +550.6655883789062, 37.953086853027344; +550.7655639648438, 37.950836181640625; +550.8655395507812, 37.94997787475586; +550.9655151367188, 37.94645690917969; +551.0655517578125, 37.94977951049805; +551.16552734375, 37.96657943725586; +551.2655029296875, 37.99203872680664; +551.3655395507812, 38.021141052246094; +551.4655151367188, 38.05609130859375; +551.5654907226562, 38.10774612426758; +551.66552734375, 38.169681549072266; +551.7655029296875, 38.22924041748047; +551.865478515625, 38.276954650878906; +551.9654541015625, 38.31623458862305; +552.0654907226562, 38.33671569824219; +552.1654663085938, 38.32586669921875; +552.2654418945312, 38.291072845458984; +552.365478515625, 38.249874114990234; +552.4654541015625, 38.220985412597656; +552.5654296875, 38.204498291015625; +552.6654663085938, 38.2053337097168; +552.7654418945312, 38.2241325378418; +552.8654174804688, 38.25188446044922; +552.9653930664062, 38.27984619140625; +553.0654296875, 38.30605697631836; +553.1654052734375, 38.33552551269531; +553.265380859375, 38.36581039428711; +553.3654174804688, 38.39772033691406; +553.4653930664062, 38.434417724609375; +553.5653686523438, 38.47807693481445; +553.6654052734375, 38.52358627319336; +553.765380859375, 38.570648193359375; +553.8653564453125, 38.62431716918945; +553.96533203125, 38.680152893066406; +554.0653686523438, 38.73413848876953; +554.1653442382812, 38.788726806640625; +554.2653198242188, 38.8547477722168; +554.3653564453125, 38.929283142089844; +554.46533203125, 38.99955749511719; +554.5653076171875, 39.06681442260742; +554.6653442382812, 39.13887023925781; +554.7653198242188, 39.21744918823242; +554.8652954101562, 39.29133605957031; +554.9652709960938, 39.354793548583984; +555.0653076171875, 39.41395950317383; +555.165283203125, 39.47570037841797; +555.2652587890625, 39.54549789428711; +555.3652954101562, 39.62055587768555; +555.4652709960938, 39.69343185424805; +555.5652465820312, 39.766578674316406; +555.6652221679688, 39.84880447387695; +555.7652587890625, 39.935550689697266; +555.865234375, 40.010841369628906; +555.9652099609375, 40.07024383544922; +556.0652465820312, 40.1311149597168; +556.1652221679688, 40.19693374633789; +556.2651977539062, 40.25730514526367; +556.365234375, 40.31668472290039; +556.4652099609375, 40.382930755615234; +556.565185546875, 40.458984375; +556.6651611328125, 40.52756881713867; +556.7651977539062, 40.589237213134766; +556.8651733398438, 40.655067443847656; +556.9651489257812, 40.72233963012695; +557.065185546875, 40.7923469543457; +557.1651611328125, 40.86619567871094; +557.26513671875, 40.95473861694336; +557.3651733398438, 41.05171585083008; +557.4651489257812, 41.14690399169922; +557.5651245117188, 41.2352294921875; +557.6651000976562, 41.31414794921875; +557.76513671875, 41.387996673583984; +557.8651123046875, 41.46697998046875; +557.965087890625, 41.55945587158203; +558.0651245117188, 41.65777587890625; +558.1651000976562, 41.75349426269531; +558.2650756835938, 41.83976364135742; +558.3651123046875, 41.913299560546875; +558.465087890625, 41.967132568359375; +558.5650634765625, 42.013404846191406; +558.6650390625, 42.07217788696289; +558.7650756835938, 42.160160064697266; +558.8650512695312, 42.271034240722656; +558.9650268554688, 42.394065856933594; +559.0650634765625, 42.51906204223633; +559.1650390625, 42.633056640625; +559.2650146484375, 42.73434066772461; +559.364990234375, 42.82136917114258; +559.4650268554688, 42.912803649902344; +559.5650024414062, 43.01559066772461; +559.6649780273438, 43.12850570678711; +559.7650146484375, 43.245635986328125; +559.864990234375, 43.355018615722656; +559.9649658203125, 43.454654693603516; +560.0650024414062, 43.53936004638672; +560.1649780273438, 43.61351013183594; +560.2649536132812, 43.68683624267578; +560.3649291992188, 43.76728820800781; +560.4649658203125, 43.860389709472656; +560.56494140625, 43.968910217285156; +560.6649169921875, 44.0838623046875; +560.7649536132812, 44.197731018066406; +560.8649291992188, 44.3110237121582; +560.9649047851562, 44.4244384765625; +561.06494140625, 44.53887939453125; +561.1649169921875, 44.64101791381836; +561.264892578125, 44.73796463012695; +561.3648681640625, 44.84143829345703; +561.4649047851562, 44.94308090209961; +561.5648803710938, 45.03504180908203; +561.6648559570312, 45.117431640625; +561.764892578125, 45.21045684814453; +561.8648681640625, 45.31941604614258; +561.96484375, 45.430294036865234; +562.0648803710938, 45.539119720458984; +562.1648559570312, 45.64312744140625; +562.2648315429688, 45.741275787353516; +562.3648071289062, 45.83375930786133; +562.46484375, 45.926578521728516; +562.5648193359375, 46.03166961669922; +562.664794921875, 46.151100158691406; +562.7648315429688, 46.27387237548828; +562.8648071289062, 46.391815185546875; +562.9647827148438, 46.503292083740234; +563.0648193359375, 46.61109161376953; +563.164794921875, 46.712623596191406; +563.2647705078125, 46.8071174621582; +563.36474609375, 46.9101448059082; +563.4647827148438, 47.02942657470703; +563.5647583007812, 47.161712646484375; +563.6647338867188, 47.300533294677734; +563.7647705078125, 47.44366455078125; +563.86474609375, 47.597923278808594; +563.9647216796875, 47.77055358886719; +564.064697265625, 47.96904373168945; +564.1647338867188, 48.178733825683594; +564.2647094726562, 48.383949279785156; +564.3646850585938, 48.5952033996582; +564.4647216796875, 48.83727264404297; +564.564697265625, 49.112327575683594; +564.6646728515625, 49.39765548706055; +564.7647094726562, 49.6773796081543; +564.8646850585938, 49.94829177856445; +564.9646606445312, 50.21473693847656; +565.0646362304688, 50.47833251953125; +565.1646728515625, 50.74647903442383; +565.2646484375, 51.025882720947266; +565.3646240234375, 51.33259201049805; +565.4646606445312, 51.6782112121582; +565.5646362304688, 52.05144119262695; +565.6646118164062, 52.426883697509766; +565.7646484375, 52.7919921875; +565.8646240234375, 53.15732192993164; +565.964599609375, 53.521244049072266; +566.0645751953125, 53.87213134765625; +566.1646118164062, 54.20125961303711; +566.2645874023438, 54.52289581298828; +566.3645629882812, 54.83955764770508; +566.464599609375, 55.14512252807617; +566.5645751953125, 55.44435119628906; +566.66455078125, 55.74615478515625; +566.7645874023438, 56.058929443359375; +566.8645629882812, 56.369693756103516; +566.9645385742188, 56.6696891784668; +567.0645141601562, 56.95158386230469; +567.16455078125, 57.216861724853516; +567.2645263671875, 57.469398498535156; +567.364501953125, 57.707550048828125; +567.4645385742188, 57.9231071472168; +567.5645141601562, 58.11084747314453; +567.6644897460938, 58.27166748046875; +567.7644653320312, 58.40556335449219; +567.864501953125, 58.5140380859375; +567.9644775390625, 58.598079681396484; +568.064453125, 58.658546447753906; +568.1644897460938, 58.699363708496094; +568.2644653320312, 58.73099136352539; +568.3644409179688, 58.75904083251953; +568.4644775390625, 58.77967834472656; +568.564453125, 58.78727722167969; +568.6644287109375, 58.78410339355469; +568.764404296875, 58.77602767944336; +568.8644409179688, 58.757545471191406; +568.9644165039062, 58.72262191772461; +569.0643920898438, 58.67214584350586; +569.1644287109375, 58.614498138427734; +569.264404296875, 58.55903625488281; +569.3643798828125, 58.498382568359375; +569.4644165039062, 58.43006896972656; +569.5643920898438, 58.35573959350586; +569.6643676757812, 58.28130340576172; +569.7643432617188, 58.20315933227539; +569.8643798828125, 58.107032775878906; +569.96435546875, 57.99434280395508; +570.0643310546875, 57.8759765625; +570.1643676757812, 57.764976501464844; +570.2643432617188, 57.66286849975586; +570.3643188476562, 57.55999755859375; +570.46435546875, 57.45728302001953; +570.5643310546875, 57.36018753051758; +570.664306640625, 57.2794303894043; +570.7642822265625, 57.20624923706055; +570.8643188476562, 57.1291389465332; +570.9642944335938, 57.050048828125; +571.0642700195312, 56.98066329956055; +571.164306640625, 56.92660903930664; +571.2642822265625, 56.87980270385742; +571.3642578125, 56.84164047241211; +571.4642333984375, 56.80551528930664; +571.5642700195312, 56.7735595703125; +571.6642456054688, 56.751766204833984; +571.7642211914062, 56.748023986816406; +571.8642578125, 56.75286102294922; +571.9642333984375, 56.75996017456055; +572.064208984375, 56.78379440307617; +572.1642456054688, 56.83966827392578; +572.2642211914062, 56.9207878112793; +572.3641967773438, 57.01279067993164; +572.4641723632812, 57.11948776245117; +572.564208984375, 57.24252700805664; +572.6641845703125, 57.37831497192383; +572.76416015625, 57.51129150390625; +572.8641967773438, 57.63569641113281; +572.9641723632812, 57.74967956542969; +573.0641479492188, 57.858543395996094; +573.1641845703125, 57.968162536621094; +573.26416015625, 58.084808349609375; +573.3641357421875, 58.20625305175781; +573.464111328125, 58.32082748413086; +573.5641479492188, 58.430389404296875; +573.6641235351562, 58.532291412353516; +573.7640991210938, 58.620811462402344; +573.8641357421875, 58.67536544799805; +573.964111328125, 58.6925163269043; +574.0640869140625, 58.69118881225586; +574.1641235351562, 58.667823791503906; +574.2640991210938, 58.60573196411133; +574.3640747070312, 58.49885940551758; +574.4640502929688, 58.36211013793945; +574.5640869140625, 58.20716857910156; +574.6640625, 58.0238037109375; +574.7640380859375, 57.80777359008789; +574.8640747070312, 57.56929397583008; +574.9640502929688, 57.30575180053711; +575.0640258789062, 57.01152420043945; +575.1640625, 56.68037414550781; +575.2640380859375, 56.321449279785156; +575.364013671875, 55.94270706176758; +575.4639892578125, 55.540225982666016; +575.5640258789062, 55.11570739746094; +575.6640014648438, 54.673030853271484; +575.7639770507812, 54.21693801879883; +575.864013671875, 53.737945556640625; +575.9639892578125, 53.23458480834961; +576.06396484375, 52.72576904296875; +576.1639404296875, 52.2303581237793; +576.2639770507812, 51.74506378173828; +576.3639526367188, 51.25630569458008; +576.4639282226562, 50.766624450683594; +576.56396484375, 50.287841796875; +576.6639404296875, 49.81563186645508; +576.763916015625, 49.343788146972656; +576.8639526367188, 48.87813186645508; +576.9639282226562, 48.44090270996094; +577.0639038085938, 48.035221099853516; +577.1638793945312, 47.64594268798828; +577.263916015625, 47.26237869262695; +577.3638916015625, 46.88860321044922; +577.4638671875, 46.538368225097656; +577.5639038085938, 46.20069885253906; +577.6638793945312, 45.873939514160156; +577.7638549804688, 45.56427764892578; +577.8638916015625, 45.28315353393555; +577.9638671875, 45.0234260559082; +578.0638427734375, 44.767303466796875; +578.163818359375, 44.51900100708008; +578.2638549804688, 44.290096282958984; +578.3638305664062, 44.082157135009766; +578.4638061523438, 43.882713317871094; +578.5638427734375, 43.686092376708984; +578.663818359375, 43.50178527832031; +578.7637939453125, 43.33668899536133; +578.8638305664062, 43.184974670410156; +578.9638061523438, 43.04142379760742; +579.0637817382812, 42.906494140625; +579.1637573242188, 42.78227615356445; +579.2637939453125, 42.65849304199219; +579.36376953125, 42.5260009765625; +579.4637451171875, 42.377872467041016; +579.5637817382812, 42.221641540527344; +579.6637573242188, 42.06782531738281; +579.7637329101562, 41.9241943359375; +579.8637084960938, 41.792808532714844; +579.9637451171875, 41.67017364501953; +580.063720703125, 41.55550003051758; +580.1636962890625, 41.441986083984375; +580.2637329101562, 41.33437728881836; +580.3637084960938, 41.230140686035156; +580.4636840820312, 41.121116638183594; +580.563720703125, 40.99607467651367; +580.6636962890625, 40.86411666870117; +580.763671875, 40.73978042602539; +580.8636474609375, 40.613433837890625; +580.9636840820312, 40.48218536376953; +581.0636596679688, 40.35874557495117; +581.1636352539062, 40.25545120239258; +581.263671875, 40.16348648071289; +581.3636474609375, 40.07556915283203; +581.463623046875, 40.001094818115234; +581.5636596679688, 39.938987731933594; +581.6636352539062, 39.88021469116211; +581.7636108398438, 39.826377868652344; +581.8635864257812, 39.776371002197266; +581.963623046875, 39.722965240478516; +582.0635986328125, 39.653682708740234; +582.16357421875, 39.5837516784668; +582.2636108398438, 39.53050994873047; +582.3635864257812, 39.49552917480469; +582.4635620117188, 39.481266021728516; +582.5635986328125, 39.4844856262207; +582.66357421875, 39.50337219238281; +582.7635498046875, 39.517784118652344; +582.863525390625, 39.52621841430664; +582.9635620117188, 39.5354118347168; +583.0635375976562, 39.55259323120117; +583.1635131835938, 39.57275390625; +583.2635498046875, 39.59270477294922; +583.363525390625, 39.62466049194336; +583.4635009765625, 39.663917541503906; +583.5634765625, 39.707496643066406; +583.6635131835938, 39.74016571044922; +583.7634887695312, 39.77443313598633; +583.8634643554688, 39.826236724853516; +583.9635009765625, 39.89297103881836; +584.0634765625, 39.963348388671875; +584.1634521484375, 40.0276985168457; +584.2634887695312, 40.10634231567383; +584.3634643554688, 40.21249771118164; +584.4634399414062, 40.343292236328125; +584.5634155273438, 40.48942947387695; +584.6634521484375, 40.64457702636719; +584.763427734375, 40.81010055541992; +584.8634033203125, 40.98993682861328; +584.9634399414062, 41.1747932434082; +585.0634155273438, 41.35658645629883; +585.1633911132812, 41.53730010986328; +585.263427734375, 41.74076843261719; +585.3634033203125, 41.97248840332031; +585.46337890625, 42.21312713623047; +585.5633544921875, 42.45952606201172; +585.6633911132812, 42.7177848815918; +585.7633666992188, 42.99165344238281; +585.8633422851562, 43.27659225463867; +585.96337890625, 43.58771514892578; +586.0633544921875, 43.937496185302734; +586.163330078125, 44.307640075683594; +586.2633666992188, 44.68092346191406; +586.3633422851562, 45.067466735839844; +586.4633178710938, 45.48566818237305; +586.5632934570312, 45.9431037902832; +586.663330078125, 46.43115234375; +586.7633056640625, 46.94198226928711; +586.86328125, 47.47922134399414; +586.9633178710938, 48.042110443115234; +587.0632934570312, 48.62303924560547; +587.1632690429688, 49.21159744262695; +587.2633056640625, 49.81322479248047; +587.36328125, 50.44898986816406; +587.4632568359375, 51.12969207763672; +587.563232421875, 51.86150360107422; +587.6632690429688, 52.6400146484375; +587.7632446289062, 53.445987701416016; +587.8632202148438, 54.277591705322266; +587.9632568359375, 55.145755767822266; +588.063232421875, 56.04994201660156; +588.1632080078125, 56.97252655029297; +588.26318359375, 57.908119201660156; +588.3632202148438, 58.87513732910156; +588.4631958007812, 59.873043060302734; +588.5631713867188, 60.89148712158203; +588.6632080078125, 61.933956146240234; +588.76318359375, 63.00830078125; +588.8631591796875, 64.10810852050781; +588.9631958007812, 65.21139526367188; +589.0631713867188, 66.3073501586914; +589.1631469726562, 67.39470672607422; +589.2631225585938, 68.47221374511719; +589.3631591796875, 69.53862762451172; +589.463134765625, 70.60237121582031; +589.5631103515625, 71.6744613647461; +589.6631469726562, 72.76288604736328; +589.7631225585938, 73.85916137695312; +589.8630981445312, 74.95543670654297; +589.963134765625, 76.05767059326172; +590.0631103515625, 77.16056823730469; +590.1630859375, 78.25727081298828; +590.2630615234375, 79.3377685546875; +590.3630981445312, 80.4109115600586; +590.4630737304688, 81.49138641357422; +590.5630493164062, 82.58075714111328; +590.6630859375, 83.68134307861328; +590.7630615234375, 84.80484771728516; +590.863037109375, 85.96784210205078; +590.9630737304688, 87.18350982666016; +591.0630493164062, 88.4591064453125; +591.1630249023438, 89.8017349243164; +591.2630004882812, 91.21096801757812; +591.363037109375, 92.67317962646484; +591.4630126953125, 94.1827163696289; +591.56298828125, 95.73930358886719; +591.6630249023438, 97.33426666259766; +591.7630004882812, 98.94752502441406; +591.8629760742188, 100.57608795166016; +591.9629516601562, 102.22933197021484; +592.06298828125, 103.91015625; +592.1629638671875, 105.61427307128906; +592.262939453125, 107.34115600585938; +592.3629760742188, 109.09261322021484; +592.4629516601562, 110.85303497314453; +592.5629272460938, 112.62486267089844; +592.6629638671875, 114.4114990234375; +592.762939453125, 116.20227813720703; +592.8629150390625, 117.97422790527344; +592.962890625, 119.72417449951172; +593.0629272460938, 121.46800231933594; +593.1629028320312, 123.1876449584961; +593.2628784179688, 124.86388397216797; +593.3629150390625, 126.51229095458984; +593.462890625, 128.1565399169922; +593.5628662109375, 129.79624938964844; +593.6629028320312, 131.42111206054688; +593.7628784179688, 133.05160522460938; +593.8628540039062, 134.700439453125; +593.9628295898438, 136.33717346191406; +594.0628662109375, 137.93862915039062; +594.162841796875, 139.507080078125; +594.2628173828125, 141.0505828857422; +594.3628540039062, 142.5660858154297; +594.4628295898438, 144.060791015625; +594.5628051757812, 145.55645751953125; +594.662841796875, 147.05906677246094; +594.7628173828125, 148.56752014160156; +594.86279296875, 150.07945251464844; +594.9627685546875, 151.5838165283203; +595.0628051757812, 153.0635223388672; +595.1627807617188, 154.51548767089844; +595.2627563476562, 155.9600372314453; +595.36279296875, 157.39871215820312; +595.4627685546875, 158.8272705078125; +595.562744140625, 160.24365234375; +595.6627807617188, 161.6575164794922; +595.7627563476562, 163.0763702392578; +595.8627319335938, 164.49891662597656; +595.9627075195312, 165.91712951660156; +596.062744140625, 167.3235626220703; +596.1627197265625, 168.72341918945312; +596.2626953125, 170.13270568847656; +596.3627319335938, 171.56082153320312; +596.4627075195312, 172.98892211914062; +596.5626831054688, 174.41336059570312; +596.6626586914062, 175.84310913085938; +596.7626953125, 177.29434204101562; +596.8626708984375, 178.77072143554688; +596.962646484375, 180.26861572265625; +597.0626831054688, 181.79237365722656; +597.1626586914062, 183.34959411621094; +597.2626342773438, 184.9567108154297; +597.3626708984375, 186.6190948486328; +597.462646484375, 188.32850646972656; +597.5626220703125, 190.07034301757812; +597.66259765625, 191.85543823242188; +597.7626342773438, 193.70022583007812; +597.8626098632812, 195.6071014404297; +597.9625854492188, 197.56472778320312; +598.0626220703125, 199.57168579101562; +598.16259765625, 201.6369171142578; +598.2625732421875, 203.76182556152344; +598.3626098632812, 205.95175170898438; +598.4625854492188, 208.20204162597656; +598.5625610351562, 210.5111083984375; +598.6625366210938, 212.86764526367188; +598.7625732421875, 215.27487182617188; +598.862548828125, 217.7382354736328; +598.9625244140625, 220.25804138183594; +599.0625610351562, 222.81752014160156; +599.1625366210938, 225.39231872558594; +599.2625122070312, 227.96824645996094; +599.362548828125, 230.5373992919922; +599.4625244140625, 233.09906005859375; +599.5625, 235.6273651123047; +599.6624755859375, 238.11988830566406; +599.7625122070312, 240.6109161376953; +599.8624877929688, 243.1777801513672; +##END= + +$$ === CHEMSPECTRA INTEGRALS AND MULTIPLETS === +##PAGE=210.0 +##$OBSERVEDINTEGRALS= (X Y Z) +(400.575614596938113, 440.70274982784308, 1.0) +##$OBSERVEDMULTIPLETS= +##$OBSERVEDMULTIPLETSPEAKS= +##END= + +$$ === CHEMSPECTRA PEAK TABLE EDIT === +##TITLE=908f81fc-5890-4b40-b630-40c8c39f2c97 +##JCAMP-DX=5.00 +##DATA TYPE=LC/MSPEAKTABLE +##DATA CLASS=PEAKTABLE +##$CSCATEGORY=EDIT_PEAK +##$CSTHRESHOLD=0.05 +##MAXX=599.8624877929688 +##MAXY=2019.3104248046875 +##MINX=0.0 +##MINY=-780.3709716796875 +##PAGE=210.0 +##NPOINTS=0 +##PEAKTABLE= (XY..XY) +594.86279296875, 150.07945251464844; +599.2625122070312, 227.96824645996094; +199.68751525878906, 415.1648254394531; +##END= + +$$ === CHEMSPECTRA PEAK TABLE AUTO === +##TITLE=908f81fc-5890-4b40-b630-40c8c39f2c97 +##JCAMP-DX=5.00 +##DATA TYPE=LC/MSPEAKTABLE +##DATA CLASS=PEAKTABLE +##$CSCATEGORY=AUTO_PEAK +##$CSTHRESHOLD=0.05 +##MAXX=599.8624877929688 +##MAXY=2019.3104248046875 +##MINX=0.0 +##MINY=-780.3709716796875 +##PAGE=210.0 +##NPOINTS=11 +##PEAKTABLE= (XY..XY) +426.6733093261719, 2019.3104248046875 +421.8736267089844, 1041.286865234375 +56.296478271484375, 898.1485595703125 +274.6828308105469, 784.7574462890625 +273.3829040527344, 783.9586791992188 +83.19479370117188, 518.1593627929688 +59.796260833740234, 295.751953125 +409.0744323730469, 224.03262329101562 +336.0789794921875, 171.47251892089844 +537.4663696289062, 112.79185485839844 +389.1756591796875, 102.59071350097656 +##END= + +$$ === CHEMSPECTRA UVVIS PEAK TABLE === +##TITLE=908f81fc-5890-4b40-b630-40c8c39f2c97 +##JCAMP-DX=5.00 +##DATA TYPE=LC/MS +##DATA CLASS=PEAK TABLE +##ORIGIN= +##OWNER= +##XUNITS=RETENTION TIME +##YUNITS=DETECTOR SIGNAL +##$CSCATEGORY=UVVIS PEAK TABLE +##PAGE=230.0 +##NPOINTS=6000 +##DATA TABLE= (XY..XY), PEAKS +0.0, 8.788935661315918; +0.0999937504529953, 8.825950622558594; +0.1999875009059906, 8.841976165771484; +0.2999812364578247, 8.850872039794922; +0.3999750018119812, 8.838221549987793; +0.4999687373638153, 8.796662330627441; +0.5999624729156494, 8.744023323059082; +0.6999562382698059, 8.708186149597168; +0.7999500036239624, 8.69286060333252; +0.8999437093734741, 8.683629035949707; +0.9999374747276306, 8.675948143005371; +1.099931240081787, 8.66959285736084; +1.1999249458312988, 8.664533615112305; +1.2999186515808105, 8.658997535705566; +1.3999124765396118, 8.653990745544434; +1.4999061822891235, 8.649468421936035; +1.5999000072479248, 8.645139694213867; +1.6998937129974365, 8.641362190246582; +1.7998874187469482, 8.637592315673828; +1.8998812437057495, 8.634269714355469; +1.9998749494552612, 8.631684303283691; +2.0998687744140625, 8.629806518554688; +2.199862480163574, 8.626617431640625; +2.299856185913086, 8.621454238891602; +2.3998498916625977, 8.61679744720459; +2.4998435974121094, 8.614152908325195; +2.599837303161621, 8.61176872253418; +2.699831247329712, 8.607991218566895; +2.7998249530792236, 8.604623794555664; +2.8998186588287354, 8.60561466217041; +2.999812364578247, 8.609808921813965; +3.099806070327759, 8.614442825317383; +3.1998000144958496, 8.619568824768066; +3.2997937202453613, 8.625388145446777; +3.399787425994873, 8.630871772766113; +3.4997811317443848, 8.631795883178711; +3.5997748374938965, 8.629605293273926; +3.699768543243408, 8.628606796264648; +3.799762487411499, 8.63005256652832; +3.8997561931610107, 8.631780624389648; +3.9997498989105225, 8.63186264038086; +4.099743843078613, 8.633166313171387; +4.199737548828125, 8.635818481445312; +4.299731254577637, 8.636519432067871; +4.399724960327148, 8.63368034362793; +4.49971866607666, 8.630879402160645; +4.599712371826172, 8.632413864135742; +4.699706077575684, 8.636734962463379; +4.799699783325195, 8.640192031860352; +4.899693489074707, 8.642882347106934; +4.999687194824219, 8.646838188171387; +5.0996809005737305, 8.652151107788086; +5.199674606323242, 8.657343864440918; +5.299668788909912, 8.662313461303711; +5.399662494659424, 8.668303489685059; +5.4996562004089355, 8.673556327819824; +5.599649906158447, 8.677310943603516; +5.699643611907959, 8.679933547973633; +5.799637317657471, 8.6818265914917; +5.899631023406982, 8.681848526000977; +5.999624729156494, 8.68054485321045; +6.099618434906006, 8.680917739868164; +6.199612140655518, 8.683599472045898; +6.299605846405029, 8.68810749053955; +6.399600028991699, 8.692279815673828; +6.499593734741211, 8.69720458984375; +6.599587440490723, 8.702754974365234; +6.699581146240234, 8.70846939086914; +6.799574851989746, 8.713356971740723; +6.899568557739258, 8.715293884277344; +6.9995622634887695, 8.715361595153809; +7.099555969238281, 8.713968276977539; +7.199549674987793, 8.7129545211792; +7.299543380737305, 8.712530136108398; +7.399537086486816, 8.712410926818848; +7.499530792236328, 8.711688041687012; +7.599524974822998, 8.70997428894043; +7.69951868057251, 8.707552909851074; +7.7995123863220215, 8.704937934875488; +7.899506092071533, 8.70207691192627; +7.999499797821045, 8.6990966796875; +8.099493026733398, 8.698723793029785; +8.199487686157227, 8.701279640197754; +8.299481391906738, 8.705578804016113; +8.39947509765625, 8.70820140838623; +8.499468803405762, 8.709565162658691; +8.599462509155273, 8.710556030273438; +8.699456214904785, 8.710563659667969; +8.799449920654297, 8.708834648132324; +8.899443626403809, 8.706905364990234; +8.99943733215332, 8.706786155700684; +9.099431037902832, 8.7081937789917; +9.199424743652344, 8.711114883422852; +9.299418449401855, 8.715473175048828; +9.399412155151367, 8.721969604492188; +9.499405860900879, 8.729241371154785; +9.59939956665039, 8.736639976501465; +9.699393272399902, 8.743934631347656; +9.799386978149414, 8.750274658203125; +9.899380683898926, 8.755631446838379; +9.999374389648438, 8.75866413116455; +10.09936809539795, 8.759461402893066; +10.199361801147461, 8.759334564208984; +10.299355506896973, 8.758992195129395; +10.399349212646484, 8.758150100708008; +10.499343872070312, 8.755579948425293; +10.599337577819824, 8.752636909484863; +10.699331283569336, 8.751853942871094; +10.799324989318848, 8.754990577697754; +10.89931869506836, 8.761800765991211; +10.999312400817871, 8.770309448242188; +11.099306106567383, 8.780129432678223; +11.199299812316895, 8.791372299194336; +11.299293518066406, 8.80292797088623; +11.399287223815918, 8.811309814453125; +11.49928092956543, 8.815385818481445; +11.599274635314941, 8.818857192993164; +11.699268341064453, 8.822970390319824; +11.799262046813965, 8.827179908752441; +11.899255752563477, 8.830055236816406; +11.999249458312988, 8.831829071044922; +12.0992431640625, 8.832648277282715; +12.199236869812012, 8.830629348754883; +12.299230575561523, 8.827194213867188; +12.399224281311035, 8.824698448181152; +12.499217987060547, 8.824616432189941; +12.599211692810059, 8.827276229858398; +12.69920539855957, 8.832208633422852; +12.799200057983398, 8.83948040008545; +12.89919376373291, 8.847631454467773; +12.999187469482422, 8.855417251586914; +13.099181175231934, 8.862882614135742; +13.199174880981445, 8.870638847351074; +13.299168586730957, 8.878447532653809; +13.399162292480469, 8.8851900100708; +13.49915599822998, 8.890889167785645; +13.599149703979492, 8.894867897033691; +13.699143409729004, 8.896782875061035; +13.799137115478516, 8.896880149841309; +13.899130821228027, 8.89637279510498; +13.999124526977539, 8.896723747253418; +14.09911823272705, 8.898012161254883; +14.199111938476562, 8.900239944458008; +14.299105644226074, 8.903302192687988; +14.399099349975586, 8.908182144165039; +14.499093055725098, 8.914716720581055; +14.59908676147461, 8.920848846435547; +14.699080467224121, 8.925541877746582; +14.799074172973633, 8.929178237915039; +14.899067878723145, 8.933566093444824; +14.999061584472656, 8.936270713806152; +15.099056243896484, 8.936956405639648; +15.199049949645996, 8.938506126403809; +15.299043655395508, 8.941054344177246; +15.39903736114502, 8.942641258239746; +15.499031066894531, 8.941263198852539; +15.599024772644043, 8.940391540527344; +15.699018478393555, 8.942373275756836; +15.799012184143066, 8.944802284240723; +15.899005889892578, 8.947074890136719; +15.99899959564209, 8.94935417175293; +16.0989933013916, 8.951149940490723; +16.198986053466797, 8.95097827911377; +16.298980712890625, 8.948385238647461; +16.398975372314453, 8.945435523986816; +16.49896812438965, 8.942537307739258; +16.598962783813477, 8.940711975097656; +16.698955535888672, 8.939764976501465; +16.7989501953125, 8.939541816711426; +16.898942947387695, 8.938804626464844; +16.998937606811523, 8.936516761779785; +17.09893035888672, 8.933141708374023; +17.198925018310547, 8.93057918548584; +17.298917770385742, 8.93118953704834; +17.39891242980957, 8.934601783752441; +17.498905181884766, 8.938677787780762; +17.598899841308594, 8.9428129196167; +17.69889259338379, 8.947722434997559; +17.798887252807617, 8.952043533325195; +17.898880004882812, 8.953094482421875; +17.99887466430664, 8.951007843017578; +18.098867416381836, 8.94787883758545; +18.198862075805664, 8.944347381591797; +18.29885482788086, 8.939862251281738; +18.398849487304688, 8.934945106506348; +18.498842239379883, 8.931197166442871; +18.59883689880371, 8.927390098571777; +18.69883155822754, 8.922785758972168; +18.798824310302734, 8.917741775512695; +18.898818969726562, 8.913949012756348; +18.998811721801758, 8.911646842956543; +19.098806381225586, 8.90927791595459; +19.19879913330078, 8.906059265136719; +19.29879379272461, 8.902527809143066; +19.398786544799805, 8.899815559387207; +19.498781204223633, 8.897110939025879; +19.598773956298828, 8.892722129821777; +19.698768615722656, 8.886478424072266; +19.79876136779785, 8.879706382751465; +19.89875602722168, 8.872665405273438; +19.998748779296875, 8.865139961242676; +20.098743438720703, 8.856751441955566; +20.1987361907959, 8.849620819091797; +20.298730850219727, 8.844420433044434; +20.398723602294922, 8.839540481567383; +20.49871826171875, 8.833699226379395; +20.598711013793945, 8.825681686401367; +20.698705673217773, 8.815147399902344; +20.79869842529297, 8.800827026367188; +20.898693084716797, 8.785083770751953; +20.998687744140625, 8.771501541137695; +21.09868049621582, 8.760497093200684; +21.19867515563965, 8.752211570739746; +21.298667907714844, 8.747294425964355; +21.398662567138672, 8.744060516357422; +21.498655319213867, 8.739262580871582; +21.598649978637695, 8.732035636901855; +21.69864273071289, 8.724271774291992; +21.79863739013672, 8.716329574584961; +21.898630142211914, 8.706465721130371; +21.998624801635742, 8.69561767578125; +22.098617553710938, 8.685297966003418; +22.198612213134766, 8.674897193908691; +22.29860496520996, 8.665241241455078; +22.39859962463379, 8.657142639160156; +22.498592376708984, 8.650697708129883; +22.598587036132812, 8.644207954406738; +22.698579788208008, 8.635416984558105; +22.798574447631836, 8.625350952148438; +22.89856719970703, 8.614100456237793; +22.99856185913086, 8.600301742553711; +23.098554611206055, 8.583694458007812; +23.198549270629883, 8.566826820373535; +23.29854393005371, 8.554712295532227; +23.398536682128906, 8.548230171203613; +23.498531341552734, 8.545056343078613; +23.59852409362793, 8.54314136505127; +23.698518753051758, 8.540861129760742; +23.798511505126953, 8.536524772644043; +23.89850616455078, 8.52803897857666; +23.998498916625977, 8.51463508605957; +24.098493576049805, 8.497685432434082; +24.198486328125, 8.479900360107422; +24.298480987548828, 8.46557331085205; +24.398473739624023, 8.455276489257812; +24.49846839904785, 8.44690227508545; +24.598461151123047, 8.438788414001465; +24.698455810546875, 8.431307792663574; +24.79844856262207, 8.425079345703125; +24.8984432220459, 8.417926788330078; +24.998435974121094, 8.409269332885742; +25.098430633544922, 8.399359703063965; +25.198423385620117, 8.387669563293457; +25.298418045043945, 8.374139785766602; +25.39841079711914, 8.359089851379395; +25.49840545654297, 8.343913078308105; +25.598400115966797, 8.330442428588867; +25.698392868041992, 8.319876670837402; +25.79838752746582, 8.313484191894531; +25.898380279541016, 8.308045387268066; +25.998374938964844, 8.30229377746582; +26.09836769104004, 8.295289993286133; +26.198362350463867, 8.287727355957031; +26.298355102539062, 8.27944278717041; +26.39834976196289, 8.26917552947998; +26.498342514038086, 8.25805950164795; +26.598337173461914, 8.246466636657715; +26.69832992553711, 8.236795425415039; +26.798324584960938, 8.228585243225098; +26.898317337036133, 8.222200393676758; +26.99831199645996, 8.219339370727539; +27.098304748535156, 8.21953296661377; +27.198299407958984, 8.219271659851074; +27.29829216003418, 8.214592933654785; +27.398286819458008, 8.205994606018066; +27.498279571533203, 8.195341110229492; +27.59827423095703, 8.183710098266602; +27.698266983032227, 8.173145294189453; +27.798261642456055, 8.165732383728027; +27.898256301879883, 8.161701202392578; +27.998249053955078, 8.159235000610352; +28.098243713378906, 8.157320022583008; +28.1982364654541, 8.154749870300293; +28.29823112487793, 8.150368690490723; +28.398223876953125, 8.144654273986816; +28.498218536376953, 8.139148712158203; +28.59821128845215, 8.134767532348633; +28.698205947875977, 8.130855560302734; +28.798198699951172, 8.127376556396484; +28.898193359375, 8.124329566955566; +28.998186111450195, 8.120514869689941; +29.098180770874023, 8.115612030029297; +29.19817352294922, 8.110560417175293; +29.298168182373047, 8.105881690979004; +29.398160934448242, 8.100173950195312; +29.49815559387207, 8.093908309936523; +29.598148345947266, 8.089944839477539; +29.698143005371094, 8.087851524353027; +29.79813575744629, 8.08394718170166; +29.898130416870117, 8.077092170715332; +29.998123168945312, 8.071176528930664; +30.09811782836914, 8.06868839263916; +30.19811248779297, 8.066914558410645; +30.298105239868164, 8.064434051513672; +30.398099899291992, 8.064180374145508; +30.498092651367188, 8.067384719848633; +30.598087310791016, 8.072100639343262; +30.69808006286621, 8.073986053466797; +30.79807472229004, 8.074365615844727; +30.898067474365234, 8.075528144836426; +30.998062133789062, 8.076563835144043; +31.098054885864258, 8.075579643249512; +31.198049545288086, 8.070953369140625; +31.29804229736328, 8.065022468566895; +31.39803695678711, 8.059605598449707; +31.498029708862305, 8.05550765991211; +31.598024368286133, 8.052349090576172; +31.698017120361328, 8.050695419311523; +31.798011779785156, 8.050889015197754; +31.89800453186035, 8.053414344787598; +31.99799919128418, 8.056320190429688; +32.097991943359375, 8.059173583984375; +32.1979866027832, 8.062936782836914; +32.29798126220703, 8.066259384155273; +32.397972106933594, 8.068330764770508; +32.49796676635742, 8.068821907043457; +32.59796142578125, 8.070208549499512; +32.69795608520508, 8.07310676574707; +32.797950744628906, 8.076675415039062; +32.89794158935547, 8.081696510314941; +32.9979362487793, 8.088506698608398; +33.097930908203125, 8.09630012512207; +33.19792556762695, 8.102782249450684; +33.297916412353516, 8.107050895690918; +33.397911071777344, 8.109993934631348; +33.49790573120117, 8.112415313720703; +33.597900390625, 8.1151123046875; +33.69789123535156, 8.118428230285645; +33.79788589477539, 8.12193775177002; +33.89788055419922, 8.12409782409668; +33.99787521362305, 8.124910354614258; +34.09786605834961, 8.125752449035645; +34.19786071777344, 8.128836631774902; +34.297855377197266, 8.133866310119629; +34.397850036621094, 8.140146255493164; +34.497840881347656, 8.147992134094238; +34.597835540771484, 8.156225204467773; +34.69783020019531, 8.163534164428711; +34.79782485961914, 8.167773246765137; +34.89781951904297, 8.17058277130127; +34.99781036376953, 8.174874305725098; +35.09780502319336, 8.182391166687012; +35.19779968261719, 8.192070007324219; +35.297794342041016, 8.201092720031738; +35.39778518676758, 8.208580017089844; +35.497779846191406, 8.214384078979492; +35.597774505615234, 8.218184471130371; +35.69776916503906, 8.218757629394531; +35.797760009765625, 8.217506408691406; +35.89775466918945, 8.218087196350098; +35.99774932861328, 8.223228454589844; +36.09774398803711, 8.231200218200684; +36.19773483276367, 8.238718032836914; +36.2977294921875, 8.244492530822754; +36.39772415161133, 8.250519752502441; +36.497718811035156, 8.257508277893066; +36.59770965576172, 8.264117240905762; +36.69770431518555, 8.270211219787598; +36.797698974609375, 8.277222633361816; +36.8976936340332, 8.286460876464844; +36.997684478759766, 8.296296119689941; +37.097679138183594, 8.30512523651123; +37.19767379760742, 8.312254905700684; +37.29766845703125, 8.317939758300781; +37.39766311645508, 8.322909355163574; +37.49765396118164, 8.329391479492188; +37.59764862060547, 8.337907791137695; +37.6976432800293, 8.347757339477539; +37.797637939453125, 8.356348037719727; +37.89762878417969, 8.363813400268555; +37.997623443603516, 8.371173858642578; +38.097618103027344, 8.377440452575684; +38.19761276245117, 8.382015228271484; +38.297603607177734, 8.38451862335205; +38.39759826660156, 8.387565612792969; +38.49759292602539, 8.391700744628906; +38.59758758544922, 8.396551132202148; +38.69757843017578, 8.401595115661621; +38.79757308959961, 8.40771198272705; +38.89756774902344, 8.41549015045166; +38.997562408447266, 8.424930572509766; +39.09755325317383, 8.433408737182617; +39.197547912597656, 8.43860912322998; +39.297542572021484, 8.440629005432129; +39.39753723144531, 8.440926551818848; +39.49753189086914, 8.442290306091309; +39.5975227355957, 8.444518089294434; +39.69751739501953, 8.44740104675293; +39.79751205444336, 8.450530052185059; +39.89750671386719, 8.453376770019531; +39.99749755859375, 8.456319808959961; +40.09749221801758, 8.459470748901367; +40.197486877441406, 8.463375091552734; +40.297481536865234, 8.468188285827637; +40.3974723815918, 8.472301483154297; +40.497467041015625, 8.475936889648438; +40.59746170043945, 8.479528427124023; +40.69745635986328, 8.48260498046875; +40.797447204589844, 8.483789443969727; +40.89744186401367, 8.484214782714844; +40.9974365234375, 8.487500190734863; +41.09743118286133, 8.49465274810791; +41.19742202758789, 8.502766609191895; +41.29741668701172, 8.508674621582031; +41.39741134643555, 8.512020111083984; +41.497406005859375, 8.513249397277832; +41.59739685058594, 8.512243270874023; +41.697391510009766, 8.509143829345703; +41.797386169433594, 8.505209922790527; +41.89738082885742, 8.502348899841309; +41.99737548828125, 8.500329971313477; +42.09736633300781, 8.498758316040039; +42.19736099243164, 8.498772621154785; +42.29735565185547, 8.500859260559082; +42.3973503112793, 8.502907752990723; +42.49734115600586, 8.501514434814453; +42.59733581542969, 8.498289108276367; +42.697330474853516, 8.49642562866211; +42.797325134277344, 8.496247291564941; +42.897315979003906, 8.494973182678223; +42.997310638427734, 8.491836547851562; +43.09730529785156, 8.490920066833496; +43.19729995727539, 8.494250297546387; +43.29729080200195, 8.499905586242676; +43.39728546142578, 8.503556251525879; +43.49728012084961, 8.504093170166016; +43.59727478027344, 8.502907752990723; +43.697265625, 8.500449180603027; +43.79726028442383, 8.49604606628418; +43.897254943847656, 8.490033149719238; +43.997249603271484, 8.484818458557129; +44.09724426269531, 8.481487274169922; +44.197235107421875, 8.480034828186035; +44.2972297668457, 8.480273246765137; +44.39722442626953, 8.482276916503906; +44.49721908569336, 8.484580039978027; +44.59720993041992, 8.484930038452148; +44.69720458984375, 8.483633041381836; +44.79719924926758, 8.481681823730469; +44.897193908691406, 8.479043960571289; +44.99718475341797, 8.474610328674316; +45.0971794128418, 8.46878433227539; +45.197174072265625, 8.463605880737305; +45.29716873168945, 8.459992408752441; +45.397159576416016, 8.45782470703125; +45.497154235839844, 8.455388069152832; +45.59714889526367, 8.451133728027344; +45.6971435546875, 8.446246147155762; +45.79713439941406, 8.441582679748535; +45.89712905883789, 8.437424659729004; +45.99712371826172, 8.432321548461914; +46.09711837768555, 8.427016258239746; +46.19710922241211, 8.423998832702637; +46.29710388183594, 8.422077178955078; +46.397098541259766, 8.41955852508545; +46.497093200683594, 8.415468215942383; +46.59708786010742, 8.41072940826416; +46.697078704833984, 8.405126571655273; +46.79707336425781, 8.397579193115234; +46.89706802368164, 8.389152526855469; +46.99706268310547, 8.3812255859375; +47.09705352783203, 8.374184608459473; +47.19704818725586, 8.369192123413086; +47.29704284667969, 8.365839958190918; +47.397037506103516, 8.362099647521973; +47.49702835083008, 8.356310844421387; +47.597023010253906, 8.349723815917969; +47.697017669677734, 8.345462799072266; +47.79701232910156, 8.342780113220215; +47.897003173828125, 8.340619087219238; +47.99699783325195, 8.340038299560547; +48.09699249267578, 8.342042922973633; +48.19698715209961, 8.344732284545898; +48.29697799682617, 8.344389915466309; +48.39697265625, 8.340731620788574; +48.49696731567383, 8.337542533874512; +48.596961975097656, 8.334808349609375; +48.696956634521484, 8.330554008483887; +48.79694747924805, 8.324079513549805; +48.896942138671875, 8.318312644958496; +48.9969367980957, 8.315645217895508; +49.09693145751953, 8.313618659973145; +49.196922302246094, 8.311144828796387; +49.29691696166992, 8.309118270874023; +49.39691162109375, 8.30848503112793; +49.49690628051758, 8.308545112609863; +49.59689712524414, 8.307777404785156; +49.69689178466797, 8.304744720458984; +49.7968864440918, 8.300483703613281; +49.896881103515625, 8.296735763549805; +49.99687194824219, 8.29492473602295; +50.096866607666016, 8.294164657592773; +50.196861267089844, 8.29296588897705; +50.29685592651367, 8.292696952819824; +50.396846771240234, 8.293479919433594; +50.49684143066406, 8.294611930847168; +50.59683609008789, 8.296646118164062; +50.69683074951172, 8.299335479736328; +50.79682159423828, 8.302338600158691; +50.89681625366211, 8.305333137512207; +50.99681091308594, 8.309155464172363; +51.096805572509766, 8.313157081604004; +51.196800231933594, 8.31566047668457; +51.296791076660156, 8.320048332214355; +51.396785736083984, 8.34066390991211; +51.49678039550781, 8.418835639953613; +51.59677505493164, 8.628174781799316; +51.6967658996582, 9.049095153808594; +51.79676055908203, 9.723909378051758; +51.89675521850586, 10.646507263183594; +51.99674987792969, 11.784643173217773; +52.09674072265625, 13.096406936645508; +52.19673538208008, 14.528989791870117; +52.296730041503906, 16.022951126098633; +52.396724700927734, 17.524808883666992; +52.4967155456543, 18.987648010253906; +52.596710205078125, 20.372203826904297; +52.69670486450195, 21.64421272277832; +52.79669952392578, 22.77775764465332; +52.896690368652344, 23.76428985595703; +52.99668502807617, 24.625160217285156; +53.0966796875, 25.424449920654297; +53.19667434692383, 26.273578643798828; +53.296669006347656, 27.326278686523438; +53.39665985107422, 28.736665725708008; +53.49665451049805, 30.61208152770996; +53.596649169921875, 33.02288818359375; +53.6966438293457, 36.08734893798828; +53.796634674072266, 40.073463439941406; +53.896629333496094, 45.36750793457031; +53.99662399291992, 52.318214416503906; +54.09661865234375, 61.09270477294922; +54.19660949707031, 71.69746398925781; +54.29660415649414, 84.06555938720703; +54.39659881591797, 98.03321075439453; +54.4965934753418, 113.34747314453125; +54.59658432006836, 129.8287811279297; +54.69657897949219, 147.53369140625; +54.796573638916016, 166.6698455810547; +54.896568298339844, 187.3620147705078; +54.996559143066406, 209.51622009277344; +55.096553802490234, 232.78211975097656; +55.19654846191406, 256.5754699707031; +55.29654312133789, 280.2568359375; +55.39653396606445, 303.3375244140625; +55.49652862548828, 325.4316101074219; +55.59652328491211, 346.1186218261719; +55.69651794433594, 365.02313232421875; +55.796512603759766, 381.96209716796875; +55.89650344848633, 396.793212890625; +55.996498107910156, 409.1737976074219; +56.096492767333984, 418.7226257324219; +56.19648742675781, 425.28973388671875; +56.296478271484375, 428.9430847167969; +56.3964729309082, 429.8528137207031; +56.49646759033203, 428.3440246582031; +56.59646224975586, 424.9764099121094; +56.69645309448242, 420.3797302246094; +56.79644775390625, 415.1064453125; +56.89644241333008, 409.6132507324219; +56.996437072753906, 404.178955078125; +57.09642791748047, 398.74102783203125; +57.1964225769043, 392.85955810546875; +57.296417236328125, 385.9499206542969; +57.39641189575195, 377.53399658203125; +57.496402740478516, 367.3408508300781; +57.596397399902344, 355.3337097167969; +57.69639205932617, 341.74884033203125; +57.79638671875, 327.0840148925781; +57.89637756347656, 311.8856201171875; +57.99637222290039, 296.5039367675781; +58.09636688232422, 281.1059875488281; +58.19636154174805, 265.87994384765625; +58.296356201171875, 251.10826110839844; +58.39634704589844, 237.07369995117188; +58.496341705322266, 224.06826782226562; +58.596336364746094, 212.5267333984375; +58.69633102416992, 202.99148559570312; +58.796321868896484, 195.87339782714844; +58.89631652832031, 191.29859924316406; +58.99631118774414, 189.13133239746094; +59.09630584716797, 189.00439453125; +59.19629669189453, 190.31854248046875; +59.29629135131836, 192.3392333984375; +59.39628601074219, 194.3688201904297; +59.496280670166016, 195.8902130126953; +59.59627151489258, 196.63352966308594; +59.696266174316406, 196.58209228515625; +59.796260833740234, 195.8995361328125; +59.89625549316406, 194.78692626953125; +59.996246337890625, 193.38096618652344; +60.09624099731445, 191.71141052246094; +60.19623565673828, 189.7046356201172; +60.29623031616211, 187.22471618652344; +60.39622497558594, 184.1262969970703; +60.4962158203125, 180.3080596923828; +60.59621047973633, 175.72804260253906; +60.696205139160156, 170.41700744628906; +60.796199798583984, 164.47218322753906; +60.89619064331055, 157.9982147216797; +60.996185302734375, 150.96913146972656; +61.0961799621582, 143.04644775390625; +61.19617462158203, 133.52825927734375; +61.296165466308594, 121.5544662475586; +61.39616012573242, 106.45222473144531; +61.49615478515625, 87.96334075927734; +61.59614944458008, 66.27674102783203; +61.69614028930664, 42.01433181762695; +61.79613494873047, 16.207233428955078; +61.8961296081543, -9.871177673339844; +61.996124267578125, -34.99906539916992; +62.09611511230469, -58.23567581176758; +62.196109771728516, -78.97735595703125; +62.296104431152344, -96.92445373535156; +62.39609909057617, -112.06780242919922; +62.496089935302734, -124.6779556274414; +62.59608459472656, -135.22488403320312; +62.69607925415039, -144.2313232421875; +62.79607391357422, -152.1177978515625; +62.89606857299805, -159.12612915039062; +62.99605941772461, -165.3278350830078; +63.09605407714844, -170.67652893066406; +63.196048736572266, -175.08551025390625; +63.296043395996094, -178.52650451660156; +63.396034240722656, -181.12600708007812; +63.496028900146484, -183.18002319335938; +63.59602355957031, -185.0657501220703; +63.69601821899414, -187.10855102539062; +63.7960090637207, -189.5011444091797; +63.89600372314453, -192.29139709472656; +63.99599838256836, -195.39276123046875; +64.09599304199219, -198.6105499267578; +64.19598388671875, -201.71014404296875; +64.29598236083984, -204.5202178955078; +64.3959732055664, -206.99411010742188; +64.49596405029297, -209.18936157226562; +64.59596252441406, -211.2019805908203; +64.69595336914062, -213.12562561035156; +64.79594421386719, -215.03634643554688; +64.89594268798828, -216.95921325683594; +64.99593353271484, -218.80152893066406; +65.09593200683594, -220.3108673095703; +65.1959228515625, -221.14967346191406; +65.29591369628906, -221.0384063720703; +65.39591217041016, -219.84568786621094; +65.49590301513672, -217.58299255371094; +65.59590148925781, -214.3918914794922; +65.69589233398438, -210.55966186523438; +65.79588317871094, -206.47140502929688; +65.89588165283203, -202.47659301757812; +65.9958724975586, -198.78440856933594; +66.09586334228516, -195.47349548339844; +66.19586181640625, -192.56011962890625; +66.29585266113281, -190.0413818359375; +66.3958511352539, -187.90179443359375; +66.49584197998047, -186.1130828857422; +66.59583282470703, -184.6348876953125; +66.69583129882812, -183.41680908203125; +66.79582214355469, -182.40333557128906; +66.89581298828125, -181.5381317138672; +66.99581146240234, -180.7624053955078; +67.0958023071289, -180.0155029296875; +67.19580078125, -179.23948669433594; +67.29579162597656, -178.38145446777344; +67.39578247070312, -177.3933868408203; +67.49578094482422, -176.23233032226562; +67.59577178955078, -174.8622283935547; +67.69577026367188, -173.25550842285156; +67.79576110839844, -171.38931274414062; +67.895751953125, -169.24301147460938; +67.9957504272461, -166.79685974121094; +68.09574127197266, -164.03138732910156; +68.19573211669922, -160.93484497070312; +68.29573059082031, -157.506591796875; +68.39572143554688, -153.7584228515625; +68.49571990966797, -149.68321228027344; +68.59571075439453, -145.24562072753906; +68.6957015991211, -140.56491088867188; +68.79570007324219, -136.14942932128906; +68.89569091796875, -132.8739471435547; +68.99568176269531, -131.62789916992188; +69.0956802368164, -132.98394775390625; +69.19567108154297, -137.14999389648438; +69.29566955566406, -143.9378662109375; +69.39566040039062, -152.6732635498047; +69.49565124511719, -162.29469299316406; +69.59564971923828, -171.729248046875; +69.69564056396484, -180.2325897216797; +69.79563903808594, -187.38694763183594; +69.8956298828125, -192.9025421142578; +69.99562072753906, -196.50189208984375; +70.09561920166016, -197.93649291992188; +70.19561004638672, -197.05296325683594; +70.29560089111328, -193.89990234375; +70.39559936523438, -188.8821258544922; +70.49559020996094, -182.84230041503906; +70.59558868408203, -176.9351348876953; +70.6955795288086, -172.3345489501953; +70.79557037353516, -169.93885803222656; +70.89556884765625, -170.17819213867188; +70.99555969238281, -172.9469757080078; +71.09555053710938, -177.6986846923828; +71.19554901123047, -183.664306640625; +71.29553985595703, -190.10137939453125; +71.39553833007812, -196.4784393310547; +71.49552917480469, -202.5191192626953; +71.59552001953125, -208.12094116210938; +71.69551849365234, -213.2362518310547; +71.7955093383789, -217.80743408203125; +71.8955078125, -221.7638702392578; +71.99549865722656, -225.0464630126953; +72.09548950195312, -227.65377807617188; +72.19548797607422, -229.67897033691406; +72.29547882080078, -231.28475952148438; +72.39546966552734, -232.6320343017578; +72.49546813964844, -233.82667541503906; +72.595458984375, -234.91651916503906; +72.6954574584961, -235.9119415283203; +72.79544830322266, -236.80186462402344; +72.89543914794922, -237.56646728515625; +72.99543762207031, -238.1829833984375; +73.09542846679688, -238.631591796875; +73.19541931152344, -238.9031524658203; +73.29541778564453, -239.00619506835938; +73.3954086303711, -238.96597290039062; +73.49540710449219, -238.81614685058594; +73.59539794921875, -238.5912322998047; +73.69538879394531, -238.31817626953125; +73.7953872680664, -238.0057830810547; +73.89537811279297, -237.63352966308594; +73.99536895751953, -237.1514892578125; +74.09536743164062, -236.4872589111328; +74.19535827636719, -235.5525360107422; +74.29535675048828, -234.24220275878906; +74.39534759521484, -232.43374633789062; +74.4953384399414, -229.9861297607422; +74.5953369140625, -226.7595672607422; +74.69532775878906, -222.69244384765625; +74.79532623291016, -217.907958984375; +74.89531707763672, -212.74346923828125; +74.99530792236328, -207.64694213867188; +75.09530639648438, -203.03799438476562; +75.19529724121094, -199.2220458984375; +75.2952880859375, -196.33082580566406; +75.3952865600586, -194.25575256347656; +75.49527740478516, -192.65415954589844; +75.59527587890625, -191.07928466796875; +75.69526672363281, -189.13890075683594; +75.79525756835938, -186.57681274414062; +75.89525604248047, -183.28372192382812; +75.99524688720703, -179.29876708984375; +76.0952377319336, -174.8016357421875; +76.19523620605469, -170.06932067871094; +76.29522705078125, -165.41021728515625; +76.39522552490234, -161.1012725830078; +76.4952163696289, -157.32955932617188; +76.59520721435547, -154.14007568359375; +76.69520568847656, -151.4215087890625; +76.79519653320312, -148.94357299804688; +76.89519500732422, -146.4246368408203; +76.99518585205078, -143.59071350097656; +77.09517669677734, -140.21652221679688; +77.19517517089844, -136.15231323242188; +77.295166015625, -131.3404541015625; +77.39515686035156, -125.85383605957031; +77.49515533447266, -119.9405288696289; +77.59514617919922, -114.00022888183594; +77.69514465332031, -108.46641540527344; +77.79513549804688, -103.67413330078125; +77.89512634277344, -99.79448699951172; +77.99512481689453, -96.7978286743164; +78.0951156616211, -94.41581726074219; +78.19510650634766, -92.17230224609375; +78.29510498046875, -89.51971435546875; +78.39509582519531, -85.99813079833984; +78.4950942993164, -81.31253814697266; +78.59508514404297, -75.30502319335938; +78.69507598876953, -67.87401580810547; +78.79507446289062, -58.90043258666992; +78.89506530761719, -48.25116729736328; +78.99506378173828, -35.8747673034668; +79.09505462646484, -21.901309967041016; +79.1950454711914, -6.6756157875061035; +79.2950439453125, 9.267531394958496; +79.39503479003906, 25.245271682739258; +79.49502563476562, 40.51788330078125; +79.59502410888672, 54.45612335205078; +79.69501495361328, 66.6901626586914; +79.79501342773438, 77.13810729980469; +79.89500427246094, 85.92105102539062; +79.9949951171875, 93.26072692871094; +80.0949935913086, 99.40787506103516; +80.19498443603516, 104.59849548339844; +80.29497528076172, 109.03435516357422; +80.39497375488281, 112.87933349609375; +80.49496459960938, 116.25958251953125; +80.59496307373047, 119.2643051147461; +80.69495391845703, 121.95635986328125; +80.7949447631836, 124.3832778930664; +80.89494323730469, 126.57987213134766; +80.99493408203125, 128.5712890625; +81.09493255615234, 130.37889099121094; +81.1949234008789, 132.02195739746094; +81.29491424560547, 133.51596069335938; +81.39491271972656, 134.87359619140625; +81.49490356445312, 136.1096954345703; +81.59489440917969, 137.23739624023438; +81.69489288330078, 138.26686096191406; +81.79488372802734, 139.2070770263672; +81.89488220214844, 140.0650634765625; +81.994873046875, 140.8458251953125; +82.09486389160156, 141.55258178710938; +82.19486236572266, 142.1892547607422; +82.29485321044922, 142.75880432128906; +82.39484405517578, 143.2606201171875; +82.49484252929688, 143.69229125976562; +82.59483337402344, 144.05381774902344; +82.69483184814453, 144.34823608398438; +82.7948226928711, 144.5795440673828; +82.89481353759766, 144.7489013671875; +82.99481201171875, 144.85842895507812; +83.09480285644531, 144.9148712158203; +83.19479370117188, 144.92396545410156; +83.29479217529297, 144.8850860595703; +83.39478302001953, 144.78863525390625; +83.49478149414062, 144.61575317382812; +83.59477233886719, 144.33309936523438; +83.69476318359375, 143.89566040039062; +83.79476165771484, 143.2522430419922; +83.8947525024414, 142.34681701660156; +83.9947509765625, 141.10768127441406; +84.09474182128906, 139.40138244628906; +84.19473266601562, 136.9268035888672; +84.29473114013672, 133.1311798095703; +84.39472198486328, 127.33541870117188; +84.49471282958984, 119.06287384033203; +84.59471130371094, 108.31560516357422; +84.6947021484375, 95.61589050292969; +84.7947006225586, 81.8692626953125; +84.89469146728516, 68.1876449584961; +84.99468231201172, 55.645233154296875; +85.09468078613281, 44.986568450927734; +85.19467163085938, 36.45606994628906; +85.29466247558594, 29.847660064697266; +85.39466094970703, 24.742490768432617; +85.4946517944336, 20.74808692932129; +85.59465026855469, 17.61045265197754; +85.69464111328125, 15.186593055725098; +85.79463195800781, 13.359472274780273; +85.8946304321289, 12.004547119140625; +85.99462127685547, 10.999798774719238; +86.09461975097656, 10.245874404907227; +86.19461059570312, 9.669661521911621; +86.29460144042969, 9.218729972839355; +86.39459991455078, 8.85599136352539; +86.49459075927734, 8.55360221862793; +86.5945816040039, 8.294001579284668; +86.694580078125, 8.067183494567871; +86.79457092285156, 7.869750022888184; +86.89456939697266, 7.6974334716796875; +86.99456024169922, 7.545769214630127; +87.09455108642578, 7.412396430969238; +87.19454956054688, 7.296114921569824; +87.29454040527344, 7.193148136138916; +87.39453125, 7.097534656524658; +87.4945297241211, 7.007554054260254; +87.59452056884766, 6.924577236175537; +87.69451904296875, 6.849005699157715; +87.79450988769531, 6.779499530792236; +87.89450073242188, 6.717838287353516; +87.99449920654297, 6.6649017333984375; +88.09449005126953, 6.618857383728027; +88.19448852539062, 6.576970100402832; +88.29447937011719, 6.540030479431152; +88.39447021484375, 6.508894443511963; +88.49446868896484, 6.48107385635376; +88.5944595336914, 6.455197811126709; +88.69445037841797, 6.433799743652344; +88.79444885253906, 6.4183549880981445; +88.89443969726562, 6.407164096832275; +88.99443817138672, 6.399646282196045; +89.09442901611328, 6.396241664886475; +89.19441986083984, 6.3974409103393555; +89.29441833496094, 6.402298927307129; +89.3944091796875, 6.411142826080322; +89.49440002441406, 6.422229290008545; +89.59439849853516, 6.431273937225342; +89.69438934326172, 6.439223766326904; +89.79438781738281, 6.4490065574646; +89.89437866210938, 6.46124792098999; +89.99436950683594, 6.473630905151367; +90.09436798095703, 6.486185073852539; +90.1943588256836, 6.504185676574707; +90.29434967041016, 6.5269694328308105; +90.39434814453125, 6.552145004272461; +90.49433898925781, 6.579049110412598; +90.5943374633789, 6.609275817871094; +90.69432830810547, 6.643660545349121; +90.79431915283203, 6.678849220275879; +90.89431762695312, 6.71328592300415; +90.99430847167969, 6.746105670928955; +91.09430694580078, 6.776839256286621; +91.19429779052734, 6.80723762512207; +91.2942886352539, 6.838388919830322; +91.394287109375, 6.869800567626953; +91.49427795410156, 6.901293754577637; +91.59426879882812, 6.932325839996338; +91.69426727294922, 6.964467525482178; +91.79425811767578, 6.996952056884766; +91.89425659179688, 7.029779434204102; +91.99424743652344, 7.062763214111328; +92.09423828125, 7.093832015991211; +92.1942367553711, 7.1238203048706055; +92.29422760009766, 7.152542591094971; +92.39421844482422, 7.180273532867432; +92.49421691894531, 7.207207202911377; +92.59420776367188, 7.23553466796875; +92.69420623779297, 7.267281532287598; +92.79419708251953, 7.298819541931152; +92.8941879272461, 7.327303409576416; +92.99418640136719, 7.352500915527344; +93.09417724609375, 7.375992774963379; +93.19417572021484, 7.3988213539123535; +93.2941665649414, 7.4211506843566895; +93.39415740966797, 7.444582939147949; +93.49415588378906, 7.468790054321289; +93.59414672851562, 7.493406295776367; +93.69413757324219, 7.518895149230957; +93.79413604736328, 7.545799255371094; +93.89412689208984, 7.573709011077881; +93.99412536621094, 7.601946830749512; +94.0941162109375, 7.6299309730529785; +94.19410705566406, 7.65700626373291; +94.29410552978516, 7.682077407836914; +94.39409637451172, 7.702901840209961; +94.49408721923828, 7.7204108238220215; +94.59408569335938, 7.736668109893799; +94.69407653808594, 7.755100727081299; +94.79407501220703, 7.775656700134277; +94.8940658569336, 7.793679714202881; +94.99405670166016, 7.808894157409668; +95.09405517578125, 7.822900772094727; +95.19404602050781, 7.83774995803833; +95.2940444946289, 7.8512282371521; +95.39403533935547, 7.86269474029541; +95.49402618408203, 7.875770568847656; +95.59402465820312, 7.892020225524902; +95.69401550292969, 7.909379959106445; +95.79400634765625, 7.9251604080200195; +95.89400482177734, 7.94138765335083; +95.9939956665039, 7.95897102355957; +96.093994140625, 7.976696014404297; +96.19398498535156, 7.991842746734619; +96.29397583007812, 8.005581855773926; +96.39397430419922, 8.019752502441406; +96.49396514892578, 8.03329086303711; +96.59395599365234, 8.045360565185547; +96.69395446777344, 8.05617904663086; +96.7939453125, 8.068338394165039; +96.8939437866211, 8.081897735595703; +96.99393463134766, 8.09467601776123; +97.09392547607422, 8.106261253356934; +97.19392395019531, 8.116975784301758; +97.29391479492188, 8.12832260131836; +97.39391326904297, 8.139833450317383; +97.49390411376953, 8.149765014648438; +97.5938949584961, 8.158638954162598; +97.69389343261719, 8.166768074035645; +97.79388427734375, 8.173786163330078; +97.89387512207031, 8.179322242736816; +97.9938735961914, 8.183643341064453; +98.09386444091797, 8.18962574005127; +98.19386291503906, 8.19823932647705; +98.29385375976562, 8.208290100097656; +98.39384460449219, 8.219115257263184; +98.49384307861328, 8.229472160339355; +98.59383392333984, 8.239529609680176; +98.6938247680664, 8.248932838439941; +98.7938232421875, 8.25767993927002; +98.89381408691406, 8.266925811767578; +98.99381256103516, 8.27766227722168; +99.09380340576172, 8.290067672729492; +99.19379425048828, 8.302823066711426; +99.29379272460938, 8.313343048095703; +99.39378356933594, 8.320219993591309; +99.4937744140625, 8.323013305664062; +99.5937728881836, 8.323006629943848; +99.69376373291016, 8.321516036987305; +99.79376220703125, 8.319817543029785; +99.89375305175781, 8.319087028503418; +99.99374389648438, 8.32106876373291; +100.09374237060547, 8.3267240524292; +100.19373321533203, 8.333623886108398; +100.29373168945312, 8.339799880981445; +100.39372253417969, 8.345142364501953; +100.49371337890625, 8.351140022277832; +100.59371185302734, 8.356735229492188; +100.6937026977539, 8.359991073608398; +100.79369354248047, 8.362896919250488; +100.89369201660156, 8.367754936218262; +100.99368286132812, 8.372842788696289; +101.09368133544922, 8.375212669372559; +101.19367218017578, 8.375883102416992; +101.29366302490234, 8.377946853637695; +101.39366149902344, 8.380688667297363; +101.49365234375, 8.382179260253906; +101.59364318847656, 8.383899688720703; +101.69364166259766, 8.387401580810547; +101.79363250732422, 8.392162322998047; +101.89363098144531, 8.39736270904541; +101.99362182617188, 8.403308868408203; +102.09361267089844, 8.409283638000488; +102.19361114501953, 8.414127349853516; +102.2936019897461, 8.416950225830078; +102.39360046386719, 8.41839599609375; +102.49359130859375, 8.417956352233887; +102.59358215332031, 8.41564655303955; +102.6935806274414, 8.41250991821289; +102.79357147216797, 8.409507751464844; +102.89356231689453, 8.408501625061035; +102.99356079101562, 8.40876293182373; +103.09355163574219, 8.409015655517578; +103.19355010986328, 8.409194946289062; +103.29354095458984, 8.409597396850586; +103.3935317993164, 8.411079406738281; +103.4935302734375, 8.412383079528809; +103.59352111816406, 8.413471221923828; +103.69351196289062, 8.415550231933594; +103.79351043701172, 8.417516708374023; +103.89350128173828, 8.419126510620117; +103.99349975585938, 8.418657302856445; +104.09349060058594, 8.417129516601562; +104.1934814453125, 8.414976119995117; +104.2934799194336, 8.411497116088867; +104.39347076416016, 8.408442497253418; +104.49346923828125, 8.406266212463379; +104.59346008300781, 8.40554428100586; +104.69345092773438, 8.404790878295898; +104.79344940185547, 8.404068946838379; +104.89344024658203, 8.4042329788208; +104.9934310913086, 8.404471397399902; +105.09342956542969, 8.405335426330566; +105.19342041015625, 8.407137870788574; +105.29341888427734, 8.409671783447266; +105.3934097290039, 8.411317825317383; +105.49340057373047, 8.412003517150879; +105.59339904785156, 8.411720275878906; +105.69338989257812, 8.408747673034668; +105.79338073730469, 8.402474403381348; +105.89337921142578, 8.393950462341309; +105.99337005615234, 8.386492729187012; +106.09336853027344, 8.382253646850586; +106.193359375, 8.381925582885742; +106.29335021972656, 8.38349723815918; +106.39334869384766, 8.384726524353027; +106.49333953857422, 8.385196685791016; +106.59333801269531, 8.385807037353516; +106.69332885742188, 8.385435104370117; +106.79331970214844, 8.382060050964355; +106.89331817626953, 8.376508712768555; +106.9933090209961, 8.371710777282715; +107.09329986572266, 8.369729042053223; +107.19329833984375, 8.368022918701172; +107.29328918457031, 8.365050315856934; +107.3932876586914, 8.362113952636719; +107.49327850341797, 8.361771583557129; +107.59326934814453, 8.363821029663086; +107.69326782226562, 8.365653038024902; +107.79325866699219, 8.367255210876465; +107.89324951171875, 8.36967658996582; +107.99324798583984, 8.373520851135254; +108.0932388305664, 8.377350807189941; +108.1932373046875, 8.379541397094727; +108.29322814941406, 8.38044261932373; +108.39321899414062, 8.379779815673828; +108.49321746826172, 8.3772611618042; +108.59320831298828, 8.373282432556152; +108.69319915771484, 8.368574142456055; +108.79319763183594, 8.365713119506836; +108.8931884765625, 8.366324424743652; +108.9931869506836, 8.371546745300293; +109.09317779541016, 8.379406929016113; +109.19316864013672, 8.385986328125; +109.29316711425781, 8.390129089355469; +109.39315795898438, 8.391491889953613; +109.49315643310547, 8.390315055847168; +109.59314727783203, 8.385851860046387; +109.6931381225586, 8.379958152770996; +109.79313659667969, 8.376381874084473; +109.89312744140625, 8.377775192260742; +109.99311828613281, 8.38296890258789; +110.0931167602539, 8.388683319091797; +110.19310760498047, 8.393444061279297; +110.29310607910156, 8.397333145141602; +110.39309692382812, 8.401639938354492; +110.49308776855469, 8.405759811401367; +110.59308624267578, 8.409380912780762; +110.69307708740234, 8.41321086883545; +110.7930679321289, 8.416324615478516; +110.89306640625, 8.418045997619629; +110.99305725097656, 8.416316986083984; +111.09305572509766, 8.412912368774414; +111.19304656982422, 8.409828186035156; +111.29303741455078, 8.408069610595703; +111.39303588867188, 8.408673286437988; +111.49302673339844, 8.411235809326172; +111.59302520751953, 8.416801452636719; +111.6930160522461, 8.423693656921387; +111.79300689697266, 8.431211471557617; +111.89300537109375, 8.438132286071777; +111.99299621582031, 8.444450378417969; +112.09298706054688, 8.451871871948242; +112.19298553466797, 8.460506439208984; +112.29297637939453, 8.468791961669922; +112.39297485351562, 8.475162506103516; +112.49296569824219, 8.479974746704102; +112.59295654296875, 8.483417510986328; +112.69295501708984, 8.485451698303223; +112.7929458618164, 8.486241340637207; +112.89293670654297, 8.488141059875488; +112.99293518066406, 8.4918212890625; +113.09292602539062, 8.497208595275879; +113.19292449951172, 8.50409984588623; +113.29291534423828, 8.510358810424805; +113.39290618896484, 8.514433860778809; +113.49290466308594, 8.515395164489746; +113.5928955078125, 8.515029907226562; +113.6928939819336, 8.515924453735352; +113.79288482666016, 8.518025398254395; +113.89287567138672, 8.520722389221191; +113.99287414550781, 8.523761749267578; +114.09286499023438, 8.52834415435791; +114.19285583496094, 8.534468650817871; +114.29285430908203, 8.540034294128418; +114.3928451538086, 8.545629501342773; +114.49284362792969, 8.552580833435059; +114.59283447265625, 8.560210227966309; +114.69282531738281, 8.56640911102295; +114.7928237915039, 8.570075035095215; +114.89281463623047, 8.57222843170166; +114.99280548095703, 8.573137283325195; +115.09280395507812, 8.574090957641602; +115.19279479980469, 8.577801704406738; +115.29279327392578, 8.584640502929688; +115.39278411865234, 8.5924711227417; +115.4927749633789, 8.599042892456055; +115.5927734375, 8.603736877441406; +115.69276428222656, 8.60610580444336; +115.79275512695312, 8.606523513793945; +115.89275360107422, 8.605875015258789; +115.99274444580078, 8.605502128601074; +116.09274291992188, 8.606568336486816; +116.19273376464844, 8.611016273498535; +116.292724609375, 8.620262145996094; +116.3927230834961, 8.63201904296875; +116.49271392822266, 8.643857955932617; +116.59271240234375, 8.654422760009766; +116.69270324707031, 8.663274765014648; +116.79269409179688, 8.668877601623535; +116.89269256591797, 8.669912338256836; +116.99268341064453, 8.667953491210938; +117.0926742553711, 8.664764404296875; +117.19267272949219, 8.66416072845459; +117.29266357421875, 8.667461395263672; +117.39266204833984, 8.67454719543457; +117.4926528930664, 8.683189392089844; +117.59264373779297, 8.692004203796387; +117.69264221191406, 8.701547622680664; +117.79263305664062, 8.70955753326416; +117.89262390136719, 8.715256690979004; +117.99262237548828, 8.718154907226562; +118.09261322021484, 8.721537590026855; +118.19261169433594, 8.727617263793945; +118.2926025390625, 8.735589981079102; +118.39259338378906, 8.744091033935547; +118.49259185791016, 8.752256393432617; +118.59258270263672, 8.76202392578125; +118.69258117675781, 8.772544860839844; +118.79257202148438, 8.781492233276367; +118.89256286621094, 8.789322853088379; +118.99256134033203, 8.798554420471191; +119.0925521850586, 8.810467720031738; +119.19254302978516, 8.821040153503418; +119.29254150390625, 8.827969551086426; +119.39253234863281, 8.834153175354004; +119.4925308227539, 8.841328620910645; +119.59252166748047, 8.848674774169922; +119.69251251220703, 8.85470962524414; +119.79251098632812, 8.861199378967285; +119.89250183105469, 8.87022876739502; +119.99249267578125, 8.880704879760742; +120.09249114990234, 8.891277313232422; +120.1924819946289, 8.901834487915039; +120.29248046875, 8.913337707519531; +120.39247131347656, 8.927136421203613; +120.49246215820312, 8.943319320678711; +120.59246063232422, 8.9600830078125; +120.69245147705078, 8.97666072845459; +120.79244995117188, 8.99195671081543; +120.89244079589844, 9.006619453430176; +120.992431640625, 9.021632194519043; +121.0924301147461, 9.036742210388184; +121.19242095947266, 9.05276870727539; +121.29241180419922, 9.070351600646973; +121.39241027832031, 9.090751647949219; +121.49240112304688, 9.111940383911133; +121.59239959716797, 9.131998062133789; +121.69239044189453, 9.151607513427734; +121.7923812866211, 9.17219352722168; +121.89237976074219, 9.194389343261719; +121.99237060546875, 9.218767166137695; +122.09236145019531, 9.246513366699219; +122.1923599243164, 9.276286125183105; +122.29235076904297, 9.30665397644043; +122.39234924316406, 9.336463928222656; +122.49234008789062, 9.365409851074219; +122.59233093261719, 9.394020080566406; +122.69232940673828, 9.424715995788574; +122.79232025146484, 9.459599494934082; +122.89231872558594, 9.497701644897461; +122.9923095703125, 9.536765098571777; +123.09230041503906, 9.575777053833008; +123.19229888916016, 9.61469841003418; +123.29228973388672, 9.652681350708008; +123.39228057861328, 9.690411567687988; +123.49227905273438, 9.730413436889648; +123.59226989746094, 9.775482177734375; +123.69226837158203, 9.825676918029785; +123.7922592163086, 9.879417419433594; +123.89225006103516, 9.935744285583496; +123.99224853515625, 9.995192527770996; +124.09223937988281, 10.057188987731934; +124.19223022460938, 10.11990737915039; +124.29222869873047, 10.183565139770508; +124.39221954345703, 10.248958587646484; +124.49221801757812, 10.316699981689453; +124.59220886230469, 10.385028839111328; +124.69219970703125, 10.453083038330078; +124.79219818115234, 10.522455215454102; +124.8921890258789, 10.59386157989502; +124.99217987060547, 10.666735649108887; +125.09217834472656, 10.740548133850098; +125.19216918945312, 10.816797256469727; +125.29216766357422, 10.896675109863281; +125.39215850830078, 10.980315208435059; +125.49214935302734, 11.067241668701172; +125.59214782714844, 11.158451080322266; +125.692138671875, 11.253886222839355; +125.7921371459961, 11.352494239807129; +125.89212799072266, 11.454679489135742; +125.99211883544922, 11.560514450073242; +126.09211730957031, 11.669203758239746; +126.19210815429688, 11.778876304626465; +126.29209899902344, 11.89003849029541; +126.39209747314453, 12.004859924316406; +126.4920883178711, 12.123957633972168; +126.59208679199219, 12.247413635253906; +126.69207763671875, 12.375943183898926; +126.79206848144531, 12.511417388916016; +126.8920669555664, 12.653403282165527; +126.99205780029297, 12.800037384033203; +127.09204864501953, 12.95033073425293; +127.19204711914062, 13.103432655334473; +127.29203796386719, 13.25942611694336; +127.39203643798828, 13.41754150390625; +127.49202728271484, 13.578981399536133; +127.5920181274414, 13.744250297546387; +127.6920166015625, 13.912812232971191; +127.79200744628906, 14.086254119873047; +127.89200592041016, 14.26584243774414; +127.99199676513672, 14.451898574829102; +128.0919952392578, 14.642842292785645; +128.19198608398438, 14.838665962219238; +128.29197692871094, 15.040151596069336; +128.3919677734375, 15.246332168579102; +128.49195861816406, 15.455312728881836; +128.5919647216797, 15.666738510131836; +128.69195556640625, 15.88266372680664; +128.7919464111328, 16.104459762573242; +128.89193725585938, 16.33090591430664; +128.99192810058594, 16.56032371520996; +129.09193420410156, 16.7938175201416; +129.19192504882812, 17.03371810913086; +129.2919158935547, 17.278656005859375; +129.39190673828125, 17.52495765686035; +129.4918975830078, 17.772823333740234; +129.59188842773438, 18.02486228942871; +129.69189453125, 18.28200340270996; +129.79188537597656, 18.541074752807617; +129.89187622070312, 18.802165985107422; +129.9918670654297, 19.069238662719727; +130.09185791015625, 19.345165252685547; +130.19186401367188, 19.627689361572266; +130.29185485839844, 19.912540435791016; +130.391845703125, 20.200908660888672; +130.49183654785156, 20.494281768798828; +130.59182739257812, 20.79227638244629; +130.69183349609375, 21.091625213623047; +130.7918243408203, 21.39335823059082; +130.89181518554688, 21.70102310180664; +130.99180603027344, 22.014007568359375; +131.091796875, 22.329225540161133; +131.19180297851562, 22.643878936767578; +131.2917938232422, 22.958234786987305; +131.39178466796875, 23.274534225463867; +131.4917755126953, 23.59356689453125; +131.59176635742188, 23.917221069335938; +131.69175720214844, 24.246797561645508; +131.79176330566406, 24.583377838134766; +131.89175415039062, 24.92589569091797; +131.9917449951172, 25.270774841308594; +132.09173583984375, 25.617122650146484; +132.1917266845703, 25.964595794677734; +132.29173278808594, 26.314109802246094; +132.3917236328125, 26.66602325439453; +132.49171447753906, 27.02225685119629; +132.59170532226562, 27.3819637298584; +132.6916961669922, 27.742355346679688; +132.7917022705078, 28.104036331176758; +132.89169311523438, 28.469593048095703; +132.99168395996094, 28.83970069885254; +133.0916748046875, 29.21060562133789; +133.19166564941406, 29.581457138061523; +133.2916717529297, 29.955968856811523; +133.39166259765625, 30.33536720275879; +133.4916534423828, 30.717178344726562; +133.59164428710938, 31.098432540893555; +133.69163513183594, 31.47933578491211; +133.7916259765625, 31.86200523376465; +133.89163208007812, 32.24551010131836; +133.9916229248047, 32.6279411315918; +134.09161376953125, 33.00814437866211; +134.1916046142578, 33.38765335083008; +134.29159545898438, 33.77082824707031; +134.3916015625, 34.15931701660156; +134.49159240722656, 34.55296325683594; +134.59158325195312, 34.94929504394531; +134.6915740966797, 35.346092224121094; +134.79156494140625, 35.741859436035156; +134.89157104492188, 36.135108947753906; +134.99156188964844, 36.52574157714844; +135.091552734375, 36.91234588623047; +135.19154357910156, 37.29566192626953; +135.29153442382812, 37.678226470947266; +135.39154052734375, 38.06290054321289; +135.4915313720703, 38.449851989746094; +135.59152221679688, 38.83625411987305; +135.69151306152344, 39.22021484375; +135.79150390625, 39.602027893066406; +135.89149475097656, 39.98341369628906; +135.9915008544922, 40.3647575378418; +136.09149169921875, 40.74285125732422; +136.1914825439453, 41.117435455322266; +136.29147338867188, 41.49228286743164; +136.39146423339844, 41.86906814575195; +136.49147033691406, 42.245723724365234; +136.59146118164062, 42.61886978149414; +136.6914520263672, 42.991302490234375; +136.79144287109375, 43.3640251159668; +136.8914337158203, 43.73501968383789; +136.99143981933594, 44.101253509521484; +137.0914306640625, 44.462440490722656; +137.19142150878906, 44.81920623779297; +137.29141235351562, 45.17085266113281; +137.3914031982422, 45.518131256103516; +137.4914093017578, 45.86152648925781; +137.59140014648438, 46.202579498291016; +137.69139099121094, 46.54209899902344; +137.7913818359375, 46.88134002685547; +137.89137268066406, 47.21944808959961; +137.99136352539062, 47.554344177246094; +138.09136962890625, 47.88605880737305; +138.1913604736328, 48.21581268310547; +138.29135131835938, 48.542110443115234; +138.39134216308594, 48.862552642822266; +138.4913330078125, 49.17765426635742; +138.59133911132812, 49.490623474121094; +138.6913299560547, 49.80228042602539; +138.79132080078125, 50.109535217285156; +138.8913116455078, 50.41196060180664; +138.99130249023438, 50.7108039855957; +139.09130859375, 51.007972717285156; +139.19129943847656, 51.3028564453125; +139.29129028320312, 51.594703674316406; +139.3912811279297, 51.88483810424805; +139.49127197265625, 52.173152923583984; +139.59127807617188, 52.45931625366211; +139.69126892089844, 52.74009704589844; +139.791259765625, 53.01585006713867; +139.89125061035156, 53.28824996948242; +139.99124145507812, 53.557926177978516; +140.0912322998047, 53.824954986572266; +140.1912384033203, 54.0903434753418; +140.29122924804688, 54.358402252197266; +140.39122009277344, 54.628780364990234; +140.4912109375, 54.8961181640625; +140.59120178222656, 55.15669250488281; +140.6912078857422, 55.41154098510742; +140.79119873046875, 55.66298294067383; +140.8911895751953, 55.910884857177734; +140.99118041992188, 56.152915954589844; +141.09117126464844, 56.391357421875; +141.19117736816406, 56.629180908203125; +141.29116821289062, 56.86710739135742; +141.3911590576172, 57.104164123535156; +141.49114990234375, 57.336181640625; +141.5911407470703, 57.56317138671875; +141.69114685058594, 57.78411102294922; +141.7911376953125, 57.99845504760742; +141.89112854003906, 58.20644760131836; +141.99111938476562, 58.40922927856445; +142.0911102294922, 58.61043167114258; +142.19110107421875, 58.81126403808594; +142.29110717773438, 59.01280212402344; +142.39109802246094, 59.215030670166016; +142.4910888671875, 59.41685104370117; +142.59107971191406, 59.61625289916992; +142.69107055664062, 59.81156921386719; +142.79107666015625, 60.00248336791992; +142.8910675048828, 60.18958282470703; +142.99105834960938, 60.37550354003906; +143.09104919433594, 60.561553955078125; +143.1910400390625, 60.745567321777344; +143.29104614257812, 60.92394256591797; +143.3910369873047, 61.096988677978516; +143.49102783203125, 61.26781463623047; +143.5910186767578, 61.43672180175781; +143.69100952148438, 61.60322570800781; +143.791015625, 61.7689323425293; +143.89100646972656, 61.9373779296875; +143.99099731445312, 62.10938262939453; +144.0909881591797, 62.28117752075195; +144.19097900390625, 62.45064163208008; +144.2909698486328, 62.616886138916016; +144.39097595214844, 62.78096008300781; +144.490966796875, 62.944881439208984; +144.59095764160156, 63.10786437988281; +144.69094848632812, 63.2701301574707; +144.7909393310547, 63.43145751953125; +144.8909454345703, 63.591800689697266; +144.99093627929688, 63.75131607055664; +145.09092712402344, 63.90802001953125; +145.19091796875, 64.06259155273438; +145.29090881347656, 64.21622467041016; +145.3909149169922, 64.36910247802734; +145.49090576171875, 64.522705078125; +145.5908966064453, 64.67617797851562; +145.69088745117188, 64.83000946044922; +145.79087829589844, 64.98397827148438; +145.890869140625, 65.13802337646484; +145.99087524414062, 65.2927474975586; +146.0908660888672, 65.44840240478516; +146.19085693359375, 65.60446166992188; +146.2908477783203, 65.7593002319336; +146.39083862304688, 65.91287231445312; +146.4908447265625, 66.06697082519531; +146.59083557128906, 66.22236633300781; +146.69082641601562, 66.37702178955078; +146.7908172607422, 66.53026580810547; +146.89080810546875, 66.68413543701172; +146.99081420898438, 66.83903503417969; +147.09080505371094, 66.99373626708984; +147.1907958984375, 67.14781188964844; +147.29078674316406, 67.30259704589844; +147.39077758789062, 67.45984649658203; +147.49078369140625, 67.61824798583984; +147.5907745361328, 67.77661895751953; +147.69076538085938, 67.93367004394531; +147.79075622558594, 68.0898208618164; +147.8907470703125, 68.2459716796875; +147.99073791503906, 68.4023666381836; +148.0907440185547, 68.55946350097656; +148.19073486328125, 68.71736907958984; +148.2907257080078, 68.87705993652344; +148.39071655273438, 69.03781127929688; +148.49070739746094, 69.20004272460938; +148.59071350097656, 69.36360931396484; +148.69070434570312, 69.52811431884766; +148.7906951904297, 69.69376373291016; +148.89068603515625, 69.86009979248047; +148.9906768798828, 70.02698516845703; +149.09068298339844, 70.19347381591797; +149.190673828125, 70.36088562011719; +149.29066467285156, 70.5302734375; +149.39065551757812, 70.70198059082031; +149.4906463623047, 70.87508392333984; +149.5906524658203, 71.04936981201172; +149.69064331054688, 71.22398376464844; +149.79063415527344, 71.39739990234375; +149.890625, 71.56996154785156; +149.99061584472656, 71.74266052246094; +150.09060668945312, 71.91693878173828; +150.19061279296875, 72.09183502197266; +150.2906036376953, 72.26699829101562; +150.39059448242188, 72.4428939819336; +150.49058532714844, 72.62155151367188; +150.590576171875, 72.80301666259766; +150.69058227539062, 72.9855728149414; +150.7905731201172, 73.16829681396484; +150.89056396484375, 73.35076141357422; +150.9905548095703, 73.53292846679688; +151.09054565429688, 73.7129898071289; +151.1905517578125, 73.891845703125; +151.29054260253906, 74.07234191894531; +151.39053344726562, 74.25652313232422; +151.4905242919922, 74.44414520263672; +151.59051513671875, 74.63355255126953; +151.69052124023438, 74.82456970214844; +151.79051208496094, 75.01498413085938; +151.8905029296875, 75.20295715332031; +151.99049377441406, 75.3892593383789; +152.09048461914062, 75.57736206054688; +152.1904754638672, 75.76892852783203; +152.2904815673828, 75.96138763427734; +152.39047241210938, 76.15457153320312; +152.49046325683594, 76.35005187988281; +152.5904541015625, 76.5472183227539; +152.69044494628906, 76.74199676513672; +152.7904510498047, 76.93190002441406; +152.89044189453125, 77.11880493164062; +152.9904327392578, 77.30624389648438; +153.09042358398438, 77.4941177368164; +153.19041442871094, 77.68077087402344; +153.29042053222656, 77.8671646118164; +153.39041137695312, 78.05464172363281; +153.4904022216797, 78.2448959350586; +153.59039306640625, 78.43692016601562; +153.6903839111328, 78.62804412841797; +153.79039001464844, 78.81731414794922; +153.890380859375, 79.00491333007812; +153.99037170410156, 79.19294738769531; +154.09036254882812, 79.38153839111328; +154.1903533935547, 79.5673599243164; +154.29034423828125, 79.75092315673828; +154.39035034179688, 79.93409729003906; +154.49034118652344, 80.11753845214844; +154.59033203125, 80.30126190185547; +154.69032287597656, 80.48529815673828; +154.79031372070312, 80.67082214355469; +154.89031982421875, 80.85488891601562; +154.9903106689453, 81.03486633300781; +155.09030151367188, 81.2111587524414; +155.19029235839844, 81.38497161865234; +155.290283203125, 81.55451202392578; +155.39028930664062, 81.71891784667969; +155.4902801513672, 81.8819351196289; +155.59027099609375, 82.04727935791016; +155.6902618408203, 82.21528625488281; +155.79025268554688, 82.38382720947266; +155.8902587890625, 82.5521240234375; +155.99024963378906, 82.71891784667969; +156.09024047851562, 82.88238525390625; +156.1902313232422, 83.0423812866211; +156.29022216796875, 83.200927734375; +156.3902130126953, 83.35950469970703; +156.49021911621094, 83.51801300048828; +156.5902099609375, 83.67778015136719; +156.69020080566406, 83.8383560180664; +156.79019165039062, 83.99837493896484; +156.8901824951172, 84.1546630859375; +156.9901885986328, 84.30610656738281; +157.09017944335938, 84.4545669555664; +157.19017028808594, 84.600341796875; +157.2901611328125, 84.74507141113281; +157.39015197753906, 84.89054870605469; +157.4901580810547, 85.03788757324219; +157.59014892578125, 85.18513488769531; +157.6901397705078, 85.32949829101562; +157.79013061523438, 85.47305297851562; +157.89012145996094, 85.61822509765625; +157.99012756347656, 85.763916015625; +158.09011840820312, 85.90795135498047; +158.1901092529297, 86.05028533935547; +158.29010009765625, 86.19292449951172; +158.3900909423828, 86.3338623046875; +158.49008178710938, 86.4711685180664; +158.590087890625, 86.60631561279297; +158.69007873535156, 86.74280548095703; +158.79006958007812, 86.88096618652344; +158.8900604248047, 87.01948547363281; +158.99005126953125, 87.15850830078125; +159.09005737304688, 87.29888153076172; +159.19004821777344, 87.43910217285156; +159.2900390625, 87.57813262939453; +159.39002990722656, 87.71778869628906; +159.49002075195312, 87.85881805419922; +159.59002685546875, 88.0008316040039; +159.6900177001953, 88.14203643798828; +159.79000854492188, 88.28173065185547; +159.88999938964844, 88.41981506347656; +159.989990234375, 88.55598449707031; +160.08999633789062, 88.6915512084961; +160.1899871826172, 88.82666015625; +160.28997802734375, 88.96333312988281; +160.3899688720703, 89.10379028320312; +160.48995971679688, 89.24787139892578; +160.58995056152344, 89.3939208984375; +160.68995666503906, 89.53995513916016; +160.78994750976562, 89.68622589111328; +160.8899383544922, 89.83309936523438; +160.98992919921875, 89.97899627685547; +161.0899200439453, 90.12303161621094; +161.18992614746094, 90.26673889160156; +161.2899169921875, 90.41305541992188; +161.38990783691406, 90.56334686279297; +161.48989868164062, 90.71631622314453; +161.5898895263672, 90.87093353271484; +161.6898956298828, 91.02698516845703; +161.78988647460938, 91.18376159667969; +161.88987731933594, 91.33938598632812; +161.9898681640625, 91.49484252929688; +162.08985900878906, 91.64973449707031; +162.1898651123047, 91.80567932128906; +162.28985595703125, 91.96249389648438; +162.3898468017578, 92.11993408203125; +162.48983764648438, 92.2789306640625; +162.58982849121094, 92.43628692626953; +162.6898193359375, 92.59334564208984; +162.78982543945312, 92.75003051757812; +162.8898162841797, 92.90935516357422; +162.98980712890625, 93.07266998291016; +163.0897979736328, 93.23888397216797; +163.18978881835938, 93.40928649902344; +163.289794921875, 93.58241271972656; +163.38978576660156, 93.7564697265625; +163.48977661132812, 93.92764282226562; +163.5897674560547, 94.09439086914062; +163.68975830078125, 94.25875854492188; +163.78976440429688, 94.42353057861328; +163.88975524902344, 94.58815002441406; +163.98974609375, 94.75321197509766; +164.08973693847656, 94.9205551147461; +164.18972778320312, 95.0939712524414; +164.2897186279297, 95.27281951904297; +164.3897247314453, 95.45271301269531; +164.48971557617188, 95.63408660888672; +164.58970642089844, 95.8179931640625; +164.689697265625, 96.00392150878906; +164.78968811035156, 96.18846893310547; +164.8896942138672, 96.37085723876953; +164.98968505859375, 96.55394744873047; +165.0896759033203, 96.74065399169922; +165.18966674804688, 96.93010711669922; +165.28965759277344, 97.1216049194336; +165.38966369628906, 97.31441497802734; +165.48965454101562, 97.50801086425781; +165.5896453857422, 97.70071411132812; +165.68963623046875, 97.89009094238281; +165.7896270751953, 98.0787582397461; +165.88963317871094, 98.26829528808594; +165.9896240234375, 98.45699310302734; +166.08961486816406, 98.64227294921875; +166.18960571289062, 98.82524871826172; +166.2895965576172, 99.0093994140625; +166.38958740234375, 99.19473266601562; +166.48959350585938, 99.3796157836914; +166.58958435058594, 99.56578826904297; +166.6895751953125, 99.75753021240234; +166.78956604003906, 99.95538330078125; +166.88955688476562, 100.1549301147461; +166.98956298828125, 100.35174560546875; +167.0895538330078, 100.54569244384766; +167.18954467773438, 100.73917388916016; +167.28953552246094, 100.93215942382812; +167.3895263671875, 101.12393188476562; +167.48953247070312, 101.31648254394531; +167.5895233154297, 101.51117706298828; +167.68951416015625, 101.70706176757812; +167.7895050048828, 101.90123748779297; +167.88949584960938, 102.09187316894531; +167.989501953125, 102.281005859375; +168.08949279785156, 102.469482421875; +168.18948364257812, 102.65825653076172; +168.2894744873047, 102.84768676757812; +168.38946533203125, 103.03777313232422; +168.4894561767578, 103.22897338867188; +168.58946228027344, 103.41975402832031; +168.689453125, 103.60873413085938; +168.78944396972656, 103.79744720458984; +168.88943481445312, 103.988525390625; +168.9894256591797, 104.18209838867188; +169.0894317626953, 104.3759765625; +169.18942260742188, 104.56930541992188; +169.28941345214844, 104.76356506347656; +169.389404296875, 104.95709991455078; +169.48939514160156, 105.14725494384766; +169.5894012451172, 105.33423614501953; +169.68939208984375, 105.52159118652344; +169.7893829345703, 105.70929718017578; +169.88937377929688, 105.89480590820312; +169.98936462402344, 106.07796478271484; +170.08937072753906, 106.2620849609375; +170.18936157226562, 106.45138549804688; +170.2893524169922, 106.64427947998047; +170.38934326171875, 106.8380355834961; +170.4893341064453, 107.03079223632812; +170.58932495117188, 107.22281646728516; +170.6893310546875, 107.41436767578125; +170.78932189941406, 107.60285186767578; +170.88931274414062, 107.7885513305664; +170.9893035888672, 107.97419738769531; +171.08929443359375, 108.16390991210938; +171.18930053710938, 108.3573989868164; +171.28929138183594, 108.55093383789062; +171.3892822265625, 108.74250030517578; +171.48927307128906, 108.93247985839844; +171.58926391601562, 109.12145233154297; +171.68927001953125, 109.30695343017578; +171.7892608642578, 109.49000549316406; +171.88925170898438, 109.67455291748047; +171.98924255371094, 109.86339569091797; +172.0892333984375, 110.05455017089844; +172.18923950195312, 110.24561309814453; +172.2892303466797, 110.43849182128906; +172.38922119140625, 110.63272094726562; +172.4892120361328, 110.82528686523438; +172.58920288085938, 111.01334381103516; +172.68919372558594, 111.20087432861328; +172.78919982910156, 111.39249420166016; +172.88919067382812, 111.58769226074219; +172.9891815185547, 111.78400421142578; +173.08917236328125, 111.98162841796875; +173.1891632080078, 112.18341064453125; +173.28916931152344, 112.38792419433594; +173.38916015625, 112.5919418334961; +173.48915100097656, 112.79454040527344; +173.58914184570312, 112.99703216552734; +173.6891326904297, 113.19904327392578; +173.7891387939453, 113.39850616455078; +173.88912963867188, 113.59542846679688; +173.98912048339844, 113.79072570800781; +174.089111328125, 113.98507690429688; +174.18910217285156, 114.17877960205078; +174.2891082763672, 114.37378692626953; +174.38909912109375, 114.572021484375; +174.4890899658203, 114.7740707397461; +174.58908081054688, 114.97966766357422; +174.68907165527344, 115.18756866455078; +174.7890625, 115.39729309082031; +174.88906860351562, 115.60758209228516; +174.9890594482422, 115.819091796875; +175.08905029296875, 116.03260803222656; +175.1890411376953, 116.24724578857422; +175.28903198242188, 116.4601058959961; +175.3890380859375, 116.6701431274414; +175.48902893066406, 116.88008880615234; +175.58901977539062, 117.09139251708984; +175.6890106201172, 117.30291748046875; +175.78900146484375, 117.51571655273438; +175.88900756835938, 117.73238372802734; +175.98899841308594, 117.95195007324219; +176.0889892578125, 118.16936492919922; +176.18898010253906, 118.38362884521484; +176.28897094726562, 118.59517669677734; +176.38897705078125, 118.80388641357422; +176.4889678955078, 119.01085662841797; +176.58895874023438, 119.21907043457031; +176.68894958496094, 119.4311294555664; +176.7889404296875, 119.6431655883789; +176.88893127441406, 119.85317993164062; +176.9889373779297, 120.06271362304688; +177.08892822265625, 120.27271270751953; +177.1889190673828, 120.48359680175781; +177.28890991210938, 120.69532012939453; +177.38890075683594, 120.9105453491211; +177.48890686035156, 121.12898254394531; +177.58889770507812, 121.34679412841797; +177.6888885498047, 121.5604476928711; +177.78887939453125, 121.76860046386719; +177.8888702392578, 121.97364807128906; +177.98887634277344, 122.17682647705078; +178.0888671875, 122.3798599243164; +178.18885803222656, 122.5842514038086; +178.28884887695312, 122.7916488647461; +178.3888397216797, 123.00238800048828; +178.4888458251953, 123.21504974365234; +178.58883666992188, 123.42915344238281; +178.68882751464844, 123.64432525634766; +178.788818359375, 123.85977172851562; +178.88880920410156, 124.07490539550781; +178.98880004882812, 124.29082489013672; +179.08880615234375, 124.50760650634766; +179.1887969970703, 124.7242202758789; +179.28878784179688, 124.93914031982422; +179.38877868652344, 125.15179443359375; +179.48876953125, 125.36322021484375; +179.58877563476562, 125.57361602783203; +179.6887664794922, 125.78495788574219; +179.78875732421875, 125.99882507324219; +179.8887481689453, 126.2168960571289; +179.98873901367188, 126.43943786621094; +180.0887451171875, 126.66545867919922; +180.18873596191406, 126.89256286621094; +180.28872680664062, 127.11774444580078; +180.3887176513672, 127.33885192871094; +180.48870849609375, 127.5574951171875; +180.5886993408203, 127.77816009521484; +180.68870544433594, 128.00296020507812; +180.7886962890625, 128.23182678222656; +180.88868713378906, 128.461669921875; +180.98867797851562, 128.690673828125; +181.0886688232422, 128.91827392578125; +181.1886749267578, 129.14501953125; +181.28866577148438, 129.37176513671875; +181.38865661621094, 129.5996856689453; +181.4886474609375, 129.830322265625; +181.58863830566406, 130.06362915039062; +181.6886444091797, 130.2954559326172; +181.78863525390625, 130.52224731445312; +181.8886260986328, 130.74642944335938; +181.98861694335938, 130.9711151123047; +182.08860778808594, 131.19793701171875; +182.18861389160156, 131.4273223876953; +182.28860473632812, 131.66090393066406; +182.3885955810547, 131.8999786376953; +182.48858642578125, 132.13914489746094; +182.5885772705078, 132.37496948242188; +182.68856811523438, 132.60826110839844; +182.78857421875, 132.8412628173828; +182.88856506347656, 133.07493591308594; +182.98855590820312, 133.3072509765625; +183.0885467529297, 133.53990173339844; +183.18853759765625, 133.77352905273438; +183.28854370117188, 134.0071258544922; +183.38853454589844, 134.24087524414062; +183.488525390625, 134.47467041015625; +183.58851623535156, 134.708984375; +183.68850708007812, 134.94186401367188; +183.78851318359375, 135.17379760742188; +183.8885040283203, 135.4047088623047; +183.98849487304688, 135.63243103027344; +184.08848571777344, 135.85635375976562; +184.1884765625, 136.07716369628906; +184.28848266601562, 136.29737854003906; +184.3884735107422, 136.51910400390625; +184.48846435546875, 136.74313354492188; +184.5884552001953, 136.96728515625; +184.68844604492188, 137.18679809570312; +184.78843688964844, 137.40098571777344; +184.88844299316406, 137.61485290527344; +184.98843383789062, 137.82882690429688; +185.0884246826172, 138.0435028076172; +185.18841552734375, 138.25949096679688; +185.2884063720703, 138.4794921875; +185.38841247558594, 138.70367431640625; +185.4884033203125, 138.92489624023438; +185.58839416503906, 139.1400909423828; +185.68838500976562, 139.3455810546875; +185.7883758544922, 139.545166015625; +185.8883819580078, 139.74513244628906; +185.98837280273438, 139.94871520996094; +186.08836364746094, 140.1568603515625; +186.1883544921875, 140.36691284179688; +186.28834533691406, 140.58047485351562; +186.3883514404297, 140.79718017578125; +186.48834228515625, 141.01516723632812; +186.5883331298828, 141.2333526611328; +186.68832397460938, 141.451904296875; +186.78831481933594, 141.67193603515625; +186.8883056640625, 141.8924102783203; +186.98831176757812, 142.1128387451172; +187.0883026123047, 142.33314514160156; +187.18829345703125, 142.5528564453125; +187.2882843017578, 142.77313232421875; +187.38827514648438, 142.99496459960938; +187.48828125, 143.22076416015625; +187.58827209472656, 143.4505615234375; +187.68826293945312, 143.68251037597656; +187.7882537841797, 143.9166717529297; +187.88824462890625, 144.1530303955078; +187.98825073242188, 144.3934326171875; +188.08824157714844, 144.63658142089844; +188.188232421875, 144.88084411621094; +188.28822326660156, 145.12600708007812; +188.38821411132812, 145.3705596923828; +188.48822021484375, 145.61459350585938; +188.5882110595703, 145.8578338623047; +188.68820190429688, 146.10211181640625; +188.78819274902344, 146.34996032714844; +188.88818359375, 146.60267639160156; +188.98817443847656, 146.85989379882812; +189.0881805419922, 147.11947631835938; +189.18817138671875, 147.3794708251953; +189.2881622314453, 147.63880920410156; +189.38815307617188, 147.8972625732422; +189.48814392089844, 148.15538024902344; +189.58815002441406, 148.4144744873047; +189.68814086914062, 148.67501831054688; +189.7881317138672, 148.9366455078125; +189.88812255859375, 149.19969177246094; +189.9881134033203, 149.4626922607422; +190.08811950683594, 149.72422790527344; +190.1881103515625, 149.9842071533203; +190.28810119628906, 150.2452392578125; +190.38809204101562, 150.50912475585938; +190.4880828857422, 150.77420043945312; +190.5880889892578, 151.0389862060547; +190.68807983398438, 151.30247497558594; +190.78807067871094, 151.56411743164062; +190.8880615234375, 151.82310485839844; +190.98805236816406, 152.0820770263672; +191.08804321289062, 152.342529296875; +191.18804931640625, 152.60401916503906; +191.2880401611328, 152.86520385742188; +191.38803100585938, 153.12648010253906; +191.48802185058594, 153.3899383544922; +191.5880126953125, 153.65260314941406; +191.68801879882812, 153.91455078125; +191.7880096435547, 154.17544555664062; +191.88800048828125, 154.43629455566406; +191.9879913330078, 154.6972198486328; +192.08798217773438, 154.95755004882812; +192.18798828125, 155.21749877929688; +192.28797912597656, 155.4773406982422; +192.38796997070312, 155.73956298828125; +192.4879608154297, 156.00531005859375; +192.58795166015625, 156.2724151611328; +192.68795776367188, 156.5369415283203; +192.78794860839844, 156.79835510253906; +192.887939453125, 157.0551300048828; +192.98793029785156, 157.30677795410156; +193.08792114257812, 157.5534210205078; +193.1879119873047, 157.7983856201172; +193.2879180908203, 158.0448760986328; +193.38790893554688, 158.29527282714844; +193.48789978027344, 158.55101013183594; +193.587890625, 158.81170654296875; +193.68788146972656, 159.07289123535156; +193.7878875732422, 159.32879638671875; +193.88787841796875, 159.5783233642578; +193.9878692626953, 159.82357788085938; +194.08786010742188, 160.0680694580078; +194.18785095214844, 160.31166076660156; +194.28785705566406, 160.5576629638672; +194.38784790039062, 160.8106231689453; +194.4878387451172, 161.07020568847656; +194.58782958984375, 161.33006286621094; +194.6878204345703, 161.5845947265625; +194.78782653808594, 161.8349609375; +194.8878173828125, 162.08306884765625; +194.98780822753906, 162.3291473388672; +195.08779907226562, 162.57423400878906; +195.1877899169922, 162.82272338867188; +195.28778076171875, 163.07733154296875; +195.38778686523438, 163.33518981933594; +195.48777770996094, 163.5935516357422; +195.5877685546875, 163.84954833984375; +195.68775939941406, 164.10272216796875; +195.78775024414062, 164.35215759277344; +195.88775634765625, 164.59744262695312; +195.9877471923828, 164.84088134765625; +196.08773803710938, 165.08433532714844; +196.18772888183594, 165.3311004638672; +196.2877197265625, 165.5823211669922; +196.38772583007812, 165.83740234375; +196.4877166748047, 166.09519958496094; +196.58770751953125, 166.35479736328125; +196.6876983642578, 166.6167755126953; +196.78768920898438, 166.88101196289062; +196.8876953125, 167.1447296142578; +196.98768615722656, 167.406005859375; +197.08767700195312, 167.66610717773438; +197.1876678466797, 167.92877197265625; +197.28765869140625, 168.19259643554688; +197.3876495361328, 168.45631408691406; +197.48765563964844, 168.72242736816406; +197.587646484375, 168.99366760253906; +197.68763732910156, 169.26927185058594; +197.78762817382812, 169.5453338623047; +197.8876190185547, 169.8243408203125; +197.9876251220703, 170.1074981689453; +198.08761596679688, 170.39268493652344; +198.18760681152344, 170.67654418945312; +198.28759765625, 170.95758056640625; +198.38758850097656, 171.23519897460938; +198.4875946044922, 171.50775146484375; +198.58758544921875, 171.77699279785156; +198.6875762939453, 172.0468292236328; +198.78756713867188, 172.31866455078125; +198.88755798339844, 172.59039306640625; +198.987548828125, 172.86129760742188; +199.08755493164062, 173.13218688964844; +199.1875457763672, 173.40374755859375; +199.28753662109375, 173.67445373535156; +199.3875274658203, 173.94265747070312; +199.48751831054688, 174.21011352539062; +199.5875244140625, 174.48080444335938; +199.68751525878906, 174.75704956054688; +199.78750610351562, 175.03514099121094; +199.8874969482422, 175.3097686767578; +199.98748779296875, 175.5802764892578; +200.08749389648438, 175.85110473632812; +200.18748474121094, 176.1254425048828; +200.2874755859375, 176.40179443359375; +200.38746643066406, 176.67779541015625; +200.48745727539062, 176.95140075683594; +200.58746337890625, 177.22442626953125; +200.6874542236328, 177.49673461914062; +200.78744506835938, 177.76649475097656; +200.88743591308594, 178.0304412841797; +200.9874267578125, 178.28982543945312; +201.08741760253906, 178.55133056640625; +201.1874237060547, 178.8184814453125; +201.28741455078125, 179.0879669189453; +201.3874053955078, 179.35565185546875; +201.48739624023438, 179.62425231933594; +201.58738708496094, 179.894287109375; +201.68739318847656, 180.1636962890625; +201.78738403320312, 180.43211364746094; +201.8873748779297, 180.70339965820312; +201.98736572265625, 180.97808837890625; +202.0873565673828, 181.25010681152344; +202.18736267089844, 181.5203399658203; +202.287353515625, 181.7931365966797; +202.38734436035156, 182.0676727294922; +202.48733520507812, 182.33999633789062; +202.5873260498047, 182.61062622070312; +202.6873321533203, 182.8838653564453; +202.78732299804688, 183.1578826904297; +202.88731384277344, 183.4281768798828; +202.9873046875, 183.6958770751953; +203.08729553222656, 183.9629669189453; +203.18728637695312, 184.22964477539062; +203.28729248046875, 184.49826049804688; +203.3872833251953, 184.7728271484375; +203.48727416992188, 185.05421447753906; +203.58726501464844, 185.33795166015625; +203.687255859375, 185.6216583251953; +203.78726196289062, 185.90493774414062; +203.8872528076172, 186.1859893798828; +203.98724365234375, 186.46356201171875; +204.0872344970703, 186.73817443847656; +204.18722534179688, 187.01104736328125; +204.2872314453125, 187.2834014892578; +204.38722229003906, 187.55906677246094; +204.48721313476562, 187.83949279785156; +204.5872039794922, 188.12156677246094; +204.68719482421875, 188.40115356445312; +204.78720092773438, 188.67918395996094; +204.88719177246094, 188.95726013183594; +204.9871826171875, 189.23252868652344; +205.08717346191406, 189.50503540039062; +205.18716430664062, 189.77943420410156; +205.2871551513672, 190.06101989746094; +205.3871612548828, 190.3470458984375; +205.48715209960938, 190.6343994140625; +205.58714294433594, 190.9195098876953; +205.6871337890625, 191.1996612548828; +205.78712463378906, 191.47280883789062; +205.8871307373047, 191.74008178710938; +205.98712158203125, 192.0065460205078; +206.0871124267578, 192.27340698242188; +206.18710327148438, 192.5446319580078; +206.28709411621094, 192.82208251953125; +206.38710021972656, 193.10252380371094; +206.48709106445312, 193.37889099121094; +206.5870819091797, 193.6480255126953; +206.68707275390625, 193.91490173339844; +206.7870635986328, 194.1813507080078; +206.88706970214844, 194.44554138183594; +206.987060546875, 194.70831298828125; +207.08705139160156, 194.9740753173828; +207.18704223632812, 195.24317932128906; +207.2870330810547, 195.5113525390625; +207.38702392578125, 195.777587890625; +207.48703002929688, 196.04428100585938; +207.58702087402344, 196.31240844726562; +207.68701171875, 196.5807342529297; +207.78700256347656, 196.8513641357422; +207.88699340820312, 197.12454223632812; +207.98699951171875, 197.39828491210938; +208.0869903564453, 197.67210388183594; +208.18698120117188, 197.9490509033203; +208.28697204589844, 198.228271484375; +208.386962890625, 198.5046844482422; +208.48696899414062, 198.77662658691406; +208.5869598388672, 199.04637145996094; +208.68695068359375, 199.31517028808594; +208.7869415283203, 199.58303833007812; +208.88693237304688, 199.8534393310547; +208.9869384765625, 200.12893676757812; +209.08692932128906, 200.4074249267578; +209.18692016601562, 200.68569946289062; +209.2869110107422, 200.96253967285156; +209.38690185546875, 201.2367706298828; +209.4868927001953, 201.5069580078125; +209.58689880371094, 201.7750701904297; +209.6868896484375, 202.0472412109375; +209.78688049316406, 202.32406616210938; +209.88687133789062, 202.6005401611328; +209.9868621826172, 202.87400817871094; +210.0868682861328, 203.14662170410156; +210.18685913085938, 203.42010498046875; +210.28684997558594, 203.6915740966797; +210.3868408203125, 203.96273803710938; +210.48683166503906, 204.24017333984375; +210.5868377685547, 204.5252685546875; +210.68682861328125, 204.8131561279297; +210.7868194580078, 205.09902954101562; +210.88681030273438, 205.38316345214844; +210.98680114746094, 205.66525268554688; +211.08680725097656, 205.9431915283203; +211.18679809570312, 206.21780395507812; +211.2867889404297, 206.4903564453125; +211.38677978515625, 206.7633819580078; +211.4867706298828, 207.04087829589844; +211.58676147460938, 207.3243408203125; +211.686767578125, 207.61248779296875; +211.78675842285156, 207.90126037597656; +211.88674926757812, 208.19200134277344; +211.9867401123047, 208.48236083984375; +212.08673095703125, 208.76747131347656; +212.18673706054688, 209.0475616455078; +212.28672790527344, 209.3269805908203; +212.38671875, 209.61012268066406; +212.48670959472656, 209.89646911621094; +212.58670043945312, 210.1873321533203; +212.68670654296875, 210.48167419433594; +212.7866973876953, 210.77435302734375; +212.88668823242188, 211.06166076660156; +212.98667907714844, 211.34524536132812; +213.086669921875, 211.6278076171875; +213.18667602539062, 211.910400390625; +213.2866668701172, 212.19395446777344; +213.38665771484375, 212.4783172607422; +213.4866485595703, 212.76437377929688; +213.58663940429688, 213.049560546875; +213.68663024902344, 213.33155822753906; +213.78663635253906, 213.60910034179688; +213.88662719726562, 213.884521484375; +213.9866180419922, 214.16375732421875; +214.08660888671875, 214.44601440429688; +214.1865997314453, 214.72836303710938; +214.28660583496094, 215.00979614257812; +214.3865966796875, 215.2918701171875; +214.48658752441406, 215.57449340820312; +214.58657836914062, 215.8544921875; +214.6865692138672, 216.1319580078125; +214.7865753173828, 216.40899658203125; +214.88656616210938, 216.68576049804688; +214.98655700683594, 216.9619903564453; +215.0865478515625, 217.2382354736328; +215.18653869628906, 217.51608276367188; +215.28652954101562, 217.79478454589844; +215.38653564453125, 218.07469177246094; +215.4865264892578, 218.35850524902344; +215.58651733398438, 218.64601135253906; +215.68650817871094, 218.93507385253906; +215.7864990234375, 219.22341918945312; +215.88650512695312, 219.5111846923828; +215.9864959716797, 219.80018615722656; +216.08648681640625, 220.09141540527344; +216.1864776611328, 220.38467407226562; +216.28646850585938, 220.67774963378906; +216.386474609375, 220.967041015625; +216.48646545410156, 221.25439453125; +216.58645629882812, 221.54103088378906; +216.6864471435547, 221.8280792236328; +216.78643798828125, 222.1172637939453; +216.88644409179688, 222.4106903076172; +216.98643493652344, 222.710205078125; +217.08642578125, 223.01258850097656; +217.18641662597656, 223.31593322753906; +217.28640747070312, 223.61663818359375; +217.3863983154297, 223.91236877441406; +217.4864044189453, 224.20066833496094; +217.58639526367188, 224.48287963867188; +217.68638610839844, 224.7631072998047; +217.786376953125, 225.04197692871094; +217.88636779785156, 225.32073974609375; +217.9863739013672, 225.5985565185547; +218.08636474609375, 225.87637329101562; +218.1863555908203, 226.1558074951172; +218.28634643554688, 226.43711853027344; +218.38633728027344, 226.7206573486328; +218.48634338378906, 227.00384521484375; +218.58633422851562, 227.2859649658203; +218.6863250732422, 227.5684051513672; +218.78631591796875, 227.8512420654297; +218.8863067626953, 228.13284301757812; +218.98631286621094, 228.41537475585938; +219.0863037109375, 228.70217895507812; +219.18629455566406, 228.9930419921875; +219.28628540039062, 229.28497314453125; +219.3862762451172, 229.57522583007812; +219.48626708984375, 229.86724853515625; +219.58627319335938, 230.15843200683594; +219.68626403808594, 230.4473419189453; +219.7862548828125, 230.7375946044922; +219.88624572753906, 231.0336151123047; +219.98623657226562, 231.33737182617188; +220.08624267578125, 231.6415557861328; +220.1862335205078, 231.9441680908203; +220.28622436523438, 232.24449157714844; +220.38621520996094, 232.5406494140625; +220.4862060546875, 232.83218383789062; +220.58621215820312, 233.12158203125; +220.6862030029297, 233.4151153564453; +220.78619384765625, 233.71397399902344; +220.8861846923828, 234.0145721435547; +220.98617553710938, 234.31256103515625; +221.086181640625, 234.60748291015625; +221.18617248535156, 234.89932250976562; +221.28616333007812, 235.1873321533203; +221.3861541748047, 235.47164916992188; +221.48614501953125, 235.7578125; +221.5861358642578, 236.05140686035156; +221.68614196777344, 236.3516845703125; +221.7861328125, 236.65481567382812; +221.88612365722656, 236.95745849609375; +221.98611450195312, 237.25892639160156; +222.0861053466797, 237.55787658691406; +222.1861114501953, 237.8552703857422; +222.28610229492188, 238.15145874023438; +222.38609313964844, 238.44927978515625; +222.486083984375, 238.74984741210938; +222.58607482910156, 239.05262756347656; +222.6860809326172, 239.3564910888672; +222.78607177734375, 239.6614227294922; +222.8860626220703, 239.96881103515625; +222.98605346679688, 240.27635192871094; +223.08604431152344, 240.58164978027344; +223.18605041503906, 240.88417053222656; +223.28604125976562, 241.18707275390625; +223.3860321044922, 241.4901580810547; +223.48602294921875, 241.7921600341797; +223.5860137939453, 242.09207153320312; +223.68600463867188, 242.39193725585938; +223.7860107421875, 242.69264221191406; +223.88600158691406, 242.99267578125; +223.98599243164062, 243.29229736328125; +224.0859832763672, 243.59129333496094; +224.18597412109375, 243.88966369628906; +224.28598022460938, 244.18423461914062; +224.38597106933594, 244.47671508789062; +224.4859619140625, 244.76776123046875; +224.58595275878906, 245.05886840820312; +224.68594360351562, 245.3521270751953; +224.78594970703125, 245.64833068847656; +224.8859405517578, 245.95132446289062; +224.98593139648438, 246.25979614257812; +225.08592224121094, 246.5728759765625; +225.1859130859375, 246.8869171142578; +225.28591918945312, 247.1968231201172; +225.3859100341797, 247.50392150878906; +225.48590087890625, 247.80772399902344; +225.5858917236328, 248.10963439941406; +225.68588256835938, 248.41036987304688; +225.78587341308594, 248.7104949951172; +225.88587951660156, 249.01451110839844; +225.98587036132812, 249.32220458984375; +226.0858612060547, 249.63232421875; +226.18585205078125, 249.94204711914062; +226.2858428955078, 250.24830627441406; +226.38584899902344, 250.55125427246094; +226.48583984375, 250.85244750976562; +226.58583068847656, 251.15283203125; +226.68582153320312, 251.4541015625; +226.7858123779297, 251.7576904296875; +226.8858184814453, 252.06520080566406; +226.98580932617188, 252.37632751464844; +227.08580017089844, 252.6866455078125; +227.185791015625, 252.99624633789062; +227.28578186035156, 253.30645751953125; +227.3857879638672, 253.61895751953125; +227.48577880859375, 253.93478393554688; +227.5857696533203, 254.25083923339844; +227.68576049804688, 254.56617736816406; +227.78575134277344, 254.87814331054688; +227.8857421875, 255.18862915039062; +227.98574829101562, 255.49974060058594; +228.0857391357422, 255.80772399902344; +228.18572998046875, 256.1138610839844; +228.2857208251953, 256.4228210449219; +228.38571166992188, 256.74151611328125; +228.4857177734375, 257.0664978027344; +228.58570861816406, 257.3886413574219; +228.68569946289062, 257.7071228027344; +228.7856903076172, 258.0239562988281; +228.88568115234375, 258.3401794433594; +228.98568725585938, 258.65350341796875; +229.08567810058594, 258.9627990722656; +229.1856689453125, 259.2699890136719; +229.28565979003906, 259.5798034667969; +229.38565063476562, 259.8961486816406; +229.48565673828125, 260.2154846191406; +229.5856475830078, 260.53179931640625; +229.68563842773438, 260.8443908691406; +229.78562927246094, 261.15814208984375; +229.8856201171875, 261.47174072265625; +229.98561096191406, 261.7791748046875; +230.0856170654297, 262.0815124511719; +230.18560791015625, 262.3842468261719; +230.2855987548828, 262.6925354003906; +230.38558959960938, 263.005126953125; +230.48558044433594, 263.3220520019531; +230.58558654785156, 263.6425476074219; +230.68557739257812, 263.9648742675781; +230.7855682373047, 264.28662109375; +230.88555908203125, 264.6038513183594; +230.9855499267578, 264.91778564453125; +231.08555603027344, 265.2297058105469; +231.185546875, 265.5438537597656; +231.28553771972656, 265.8626403808594; +231.38552856445312, 266.1844482421875; +231.4855194091797, 266.5093078613281; +231.58551025390625, 266.8367004394531; +231.68551635742188, 267.1683044433594; +231.78550720214844, 267.49993896484375; +231.885498046875, 267.82733154296875; +231.98548889160156, 268.1517028808594; +232.08547973632812, 268.47705078125; +232.18548583984375, 268.80389404296875; +232.2854766845703, 269.12646484375; +232.38546752929688, 269.44635009765625; +232.48545837402344, 269.7678527832031; +232.58544921875, 270.0908203125; +232.68545532226562, 270.41259765625; +232.7854461669922, 270.7319030761719; +232.88543701171875, 271.05426025390625; +232.9854278564453, 271.3797912597656; +233.08541870117188, 271.70562744140625; +233.1854248046875, 272.0325012207031; +233.28541564941406, 272.36187744140625; +233.38540649414062, 272.69427490234375; +233.4853973388672, 273.0243225097656; +233.58538818359375, 273.3492736816406; +233.6853790283203, 273.6717529296875; +233.78538513183594, 273.9952392578125; +233.8853759765625, 274.32122802734375; +233.98536682128906, 274.64794921875; +234.08535766601562, 274.9764099121094; +234.1853485107422, 275.307861328125; +234.2853546142578, 275.64141845703125; +234.38534545898438, 275.9726867675781; +234.48533630371094, 276.298095703125; +234.5853271484375, 276.62152099609375; +234.68531799316406, 276.9469909667969; +234.7853240966797, 277.2773132324219; +234.88531494140625, 277.6103210449219; +234.9853057861328, 277.9453125; +235.08529663085938, 278.2828674316406; +235.18528747558594, 278.6201477050781; +235.28529357910156, 278.9564208984375; +235.38528442382812, 279.2882080078125; +235.4852752685547, 279.6170654296875; +235.58526611328125, 279.9451599121094; +235.6852569580078, 280.27301025390625; +235.78524780273438, 280.59906005859375; +235.88525390625, 280.9208984375; +235.98524475097656, 281.24346923828125; +236.08523559570312, 281.571044921875; +236.1852264404297, 281.9034423828125; +236.28521728515625, 282.23699951171875; +236.38522338867188, 282.57177734375; +236.48521423339844, 282.91046142578125; +236.585205078125, 283.2530822753906; +236.68519592285156, 283.5946350097656; +236.78518676757812, 283.9306640625; +236.88519287109375, 284.26318359375; +236.9851837158203, 284.5951843261719; +237.08517456054688, 284.9281921386719; +237.18516540527344, 285.25885009765625; +237.28515625, 285.5862731933594; +237.38516235351562, 285.9140930175781; +237.4851531982422, 286.24456787109375; +237.58514404296875, 286.5788269042969; +237.6851348876953, 286.91485595703125; +237.78512573242188, 287.25372314453125; +237.88511657714844, 287.5994567871094; +237.98512268066406, 287.95416259765625; +238.08511352539062, 288.3193359375; +238.1851043701172, 288.6965026855469; +238.28509521484375, 289.08544921875; +238.3850860595703, 289.485595703125; +238.48509216308594, 289.892333984375; +238.5850830078125, 290.3009338378906; +238.68507385253906, 290.70941162109375; +238.78506469726562, 291.1112976074219; +238.8850555419922, 291.50201416015625; +238.9850616455078, 291.8759460449219; +239.08505249023438, 292.2320861816406; +239.18504333496094, 292.5700378417969; +239.2850341796875, 292.8853759765625; +239.38502502441406, 293.17999267578125; +239.4850311279297, 293.4605712890625; +239.58502197265625, 293.7354736328125; +239.6850128173828, 294.0090026855469; +239.78500366210938, 294.2862854003906; +239.88499450683594, 294.5721130371094; +239.9849853515625, 294.8678894042969; +240.08499145507812, 295.1702880859375; +240.1849822998047, 295.4784851074219; +240.28497314453125, 295.79449462890625; +240.3849639892578, 296.11676025390625; +240.48495483398438, 296.4423828125; +240.5849609375, 296.7691955566406; +240.68495178222656, 297.0996398925781; +240.78494262695312, 297.43438720703125; +240.8849334716797, 297.7698974609375; +240.98492431640625, 298.10333251953125; +241.08493041992188, 298.4364318847656; +241.18492126464844, 298.7705078125; +241.284912109375, 299.10443115234375; +241.38490295410156, 299.43701171875; +241.48489379882812, 299.7694396972656; +241.58489990234375, 300.1044921875; +241.6848907470703, 300.4407958984375; +241.78488159179688, 300.77618408203125; +241.88487243652344, 301.1114501953125; +241.98486328125, 301.447998046875; +242.08485412597656, 301.7877197265625; +242.1848602294922, 302.1299743652344; +242.28485107421875, 302.4744873046875; +242.3848419189453, 302.82244873046875; +242.48483276367188, 303.17181396484375; +242.58482360839844, 303.5215148925781; +242.68482971191406, 303.87005615234375; +242.78482055664062, 304.21453857421875; +242.8848114013672, 304.5566101074219; +242.98480224609375, 304.900146484375; +243.0847930908203, 305.2484130859375; +243.18479919433594, 305.59906005859375; +243.2847900390625, 305.9510192871094; +243.38478088378906, 306.3096923828125; +243.48477172851562, 306.676025390625; +243.5847625732422, 307.0459899902344; +243.6847686767578, 307.41461181640625; +243.78475952148438, 307.7818298339844; +243.88475036621094, 308.1480407714844; +243.9847412109375, 308.5116271972656; +244.08473205566406, 308.8719482421875; +244.18472290039062, 309.2308349609375; +244.28472900390625, 309.5916748046875; +244.3847198486328, 309.95562744140625; +244.48471069335938, 310.32220458984375; +244.58470153808594, 310.69146728515625; +244.6846923828125, 311.06109619140625; +244.78469848632812, 311.4289855957031; +244.8846893310547, 311.79327392578125; +244.98468017578125, 312.15576171875; +245.0846710205078, 312.5202941894531; +245.18466186523438, 312.8868408203125; +245.28466796875, 313.2556457519531; +245.38465881347656, 313.62451171875; +245.48464965820312, 313.9949645996094; +245.5846405029297, 314.36651611328125; +245.68463134765625, 314.7359619140625; +245.78463745117188, 315.1012268066406; +245.88462829589844, 315.4637145996094; +245.984619140625, 315.8260498046875; +246.08460998535156, 316.1869812011719; +246.18460083007812, 316.5473937988281; +246.2845916748047, 316.90997314453125; +246.3845977783203, 317.2765808105469; +246.48458862304688, 317.64593505859375; +246.58457946777344, 318.01971435546875; +246.6845703125, 318.39697265625; +246.78456115722656, 318.77459716796875; +246.8845672607422, 319.1523132324219; +246.98455810546875, 319.5326232910156; +247.0845489501953, 319.91766357421875; +247.18453979492188, 320.30267333984375; +247.28453063964844, 320.6868591308594; +247.38453674316406, 321.0713806152344; +247.48452758789062, 321.4544677734375; +247.5845184326172, 321.83154296875; +247.68450927734375, 322.2014465332031; +247.7845001220703, 322.5687561035156; +247.88450622558594, 322.9360046386719; +247.9844970703125, 323.2992858886719; +248.08448791503906, 323.6575927734375; +248.18447875976562, 324.0152587890625; +248.2844696044922, 324.3746643066406; +248.38446044921875, 324.73486328125; +248.48446655273438, 325.0967712402344; +248.58445739746094, 325.4660949707031; +248.6844482421875, 325.8413391113281; +248.78443908691406, 326.21820068359375; +248.88442993164062, 326.59564208984375; +248.98443603515625, 326.9750061035156; +249.0844268798828, 327.35443115234375; +249.18441772460938, 327.7305603027344; +249.28440856933594, 328.1057434082031; +249.3843994140625, 328.4810791015625; +249.48440551757812, 328.8561706542969; +249.5843963623047, 329.2287292480469; +249.68438720703125, 329.5988464355469; +249.7843780517578, 329.9684143066406; +249.88436889648438, 330.3374938964844; +249.98435974121094, 330.7061462402344; +250.08436584472656, 331.0734558105469; +250.18435668945312, 331.44195556640625; +250.2843475341797, 331.8138732910156; +250.38433837890625, 332.19024658203125; +250.4843292236328, 332.5713195800781; +250.58433532714844, 332.9564208984375; +250.684326171875, 333.34295654296875; +250.78431701660156, 333.7275085449219; +250.88430786132812, 334.1089172363281; +250.9842987060547, 334.4853820800781; +251.0843048095703, 334.8563232421875; +251.18429565429688, 335.223876953125; +251.28428649902344, 335.59222412109375; +251.38427734375, 335.96331787109375; +251.48426818847656, 336.33624267578125; +251.5842742919922, 336.7098693847656; +251.68426513671875, 337.0840148925781; +251.7842559814453, 337.45928955078125; +251.88424682617188, 337.8359069824219; +251.98423767089844, 338.2141418457031; +252.084228515625, 338.5943298339844; +252.18423461914062, 338.9793395996094; +252.2842254638672, 339.3692626953125; +252.38421630859375, 339.7600402832031; +252.4842071533203, 340.1495361328125; +252.58419799804688, 340.5378112792969; +252.6842041015625, 340.9266052246094; +252.78419494628906, 341.3149719238281; +252.88418579101562, 341.70220947265625; +252.9841766357422, 342.08929443359375; +253.08416748046875, 342.4757995605469; +253.18417358398438, 342.86328125; +253.28416442871094, 343.2544860839844; +253.3841552734375, 343.6512756347656; +253.48414611816406, 344.04962158203125; +253.58413696289062, 344.44451904296875; +253.68414306640625, 344.8356018066406; +253.7841339111328, 345.22344970703125; +253.88412475585938, 345.60906982421875; +253.98411560058594, 345.9927062988281; +254.0841064453125, 346.3780822753906; +254.18409729003906, 346.77288818359375; +254.2841033935547, 347.17877197265625; +254.38409423828125, 347.592529296875; +254.4840850830078, 348.0047302246094; +254.58407592773438, 348.41064453125; +254.68406677246094, 348.812255859375; +254.78407287597656, 349.2080383300781; +254.88406372070312, 349.59771728515625; +254.9840545654297, 349.9834899902344; +255.08404541015625, 350.37042236328125; +255.1840362548828, 350.7580261230469; +255.28404235839844, 351.14080810546875; +255.384033203125, 351.5190734863281; +255.48402404785156, 351.8946228027344; +255.58401489257812, 352.26751708984375; +255.6840057373047, 352.6346435546875; +255.7840118408203, 352.9989929199219; +255.88400268554688, 353.3660888671875; +255.98399353027344, 353.7344970703125; +256.083984375, 354.10076904296875; +256.1839904785156, 354.4639587402344; +256.2839660644531, 354.83306884765625; +256.38397216796875, 355.2096862792969; +256.48394775390625, 355.58966064453125; +256.5839538574219, 355.9715576171875; +256.6839599609375, 356.3594970703125; +256.783935546875, 356.7560119628906; +256.8839416503906, 357.1560363769531; +256.9839172363281, 357.55718994140625; +257.08392333984375, 357.9605407714844; +257.1839294433594, 358.3680419921875; +257.2839050292969, 358.7785339355469; +257.3839111328125, 359.1893615722656; +257.48388671875, 359.59613037109375; +257.5838928222656, 359.9964904785156; +257.68389892578125, 360.3924865722656; +257.78387451171875, 360.78448486328125; +257.8838806152344, 361.1688537597656; +257.9838562011719, 361.5458068847656; +258.0838623046875, 361.9212341308594; +258.1838684082031, 362.29833984375; +258.2838439941406, 362.6761169433594; +258.38385009765625, 363.0556335449219; +258.48382568359375, 363.4421691894531; +258.5838317871094, 363.8345031738281; +258.683837890625, 364.2247009277344; +258.7838134765625, 364.6119384765625; +258.8838195800781, 364.99713134765625; +258.9837951660156, 365.3819580078125; +259.08380126953125, 365.7645263671875; +259.18377685546875, 366.1452941894531; +259.2837829589844, 366.5271911621094; +259.3837890625, 366.9091796875; +259.4837646484375, 367.2941589355469; +259.5837707519531, 367.6824035644531; +259.6837463378906, 368.07342529296875; +259.78375244140625, 368.46478271484375; +259.8837585449219, 368.8580627441406; +259.9837341308594, 369.2566223144531; +260.083740234375, 369.65716552734375; +260.1837158203125, 370.0539245605469; +260.2837219238281, 370.4430236816406; +260.38372802734375, 370.82879638671875; +260.48370361328125, 371.2144470214844; +260.5837097167969, 371.5999450683594; +260.6836853027344, 371.98724365234375; +260.78369140625, 372.37921142578125; +260.8836975097656, 372.7779541015625; +260.9836730957031, 373.1814880371094; +261.08367919921875, 373.5864562988281; +261.18365478515625, 373.9892578125; +261.2836608886719, 374.3848571777344; +261.3836669921875, 374.775146484375; +261.483642578125, 375.1650390625; +261.5836486816406, 375.557373046875; +261.6836242675781, 375.9518127441406; +261.78363037109375, 376.347900390625; +261.8836364746094, 376.74578857421875; +261.9836120605469, 377.1423034667969; +262.0836181640625, 377.5359802246094; +262.18359375, 377.92791748046875; +262.2835998535156, 378.3191223144531; +262.38360595703125, 378.709716796875; +262.48358154296875, 379.1005554199219; +262.5835876464844, 379.489990234375; +262.6835632324219, 379.8790588378906; +262.7835693359375, 380.2689514160156; +262.8835754394531, 380.66015625; +262.9835510253906, 381.0513916015625; +263.08355712890625, 381.44000244140625; +263.18353271484375, 381.82904052734375; +263.2835388183594, 382.2159423828125; +263.3835144042969, 382.594482421875; +263.4835205078125, 382.9645080566406; +263.5835266113281, 383.3303527832031; +263.6835021972656, 383.7000427246094; +263.78350830078125, 384.07464599609375; +263.88348388671875, 384.45269775390625; +263.9834899902344, 384.8310852050781; +264.08349609375, 385.20867919921875; +264.1834716796875, 385.5885314941406; +264.2834777832031, 385.97021484375; +264.3834533691406, 386.353271484375; +264.48345947265625, 386.734375; +264.5834655761719, 387.1153564453125; +264.6834411621094, 387.4929504394531; +264.783447265625, 387.86199951171875; +264.8834228515625, 388.22259521484375; +264.9834289550781, 388.5780944824219; +265.08343505859375, 388.934326171875; +265.18341064453125, 389.294189453125; +265.2834167480469, 389.6598205566406; +265.3833923339844, 390.031005859375; +265.4833984375, 390.4051208496094; +265.5834045410156, 390.77947998046875; +265.6833801269531, 391.1546325683594; +265.78338623046875, 391.53045654296875; +265.88336181640625, 391.90789794921875; +265.9833679199219, 392.28607177734375; +266.0833740234375, 392.6606140136719; +266.183349609375, 393.0268859863281; +266.2833557128906, 393.3826599121094; +266.3833312988281, 393.7288818359375; +266.48333740234375, 394.0682373046875; +266.5833435058594, 394.40093994140625; +266.6833190917969, 394.7320556640625; +266.7833251953125, 395.0646057128906; +266.88330078125, 395.39300537109375; +266.9833068847656, 395.7112731933594; +267.08331298828125, 396.0174560546875; +267.18328857421875, 396.32147216796875; +267.2832946777344, 396.6270751953125; +267.3832702636719, 396.932861328125; +267.4832763671875, 397.24188232421875; +267.583251953125, 397.5577087402344; +267.6832580566406, 397.88134765625; +267.78326416015625, 398.20654296875; +267.88323974609375, 398.52838134765625; +267.9832458496094, 398.8460388183594; +268.0832214355469, 399.1600341796875; +268.1832275390625, 399.4735107421875; +268.2832336425781, 399.7859191894531; +268.3832092285156, 400.0960388183594; +268.48321533203125, 400.402587890625; +268.58319091796875, 400.70703125; +268.6831970214844, 401.0102844238281; +268.783203125, 401.3116455078125; +268.8831787109375, 401.6130065917969; +268.9831848144531, 401.9128112792969; +269.0831604003906, 402.21173095703125; +269.18316650390625, 402.5120849609375; +269.2831726074219, 402.8148193359375; +269.3831481933594, 403.1159973144531; +269.483154296875, 403.40972900390625; +269.5831298828125, 403.7008361816406; +269.6831359863281, 403.9941711425781; +269.78314208984375, 404.28662109375; +269.88311767578125, 404.5751953125; +269.9831237792969, 404.8590087890625; +270.0830993652344, 405.14208984375; +270.18310546875, 405.4207763671875; +270.2831115722656, 405.69268798828125; +270.3830871582031, 405.9612731933594; +270.48309326171875, 406.2279968261719; +270.58306884765625, 406.4937438964844; +270.6830749511719, 406.7583312988281; +270.7830810546875, 407.0221252441406; +270.883056640625, 407.28326416015625; +270.9830627441406, 407.5384826660156; +271.0830383300781, 407.79095458984375; +271.18304443359375, 408.04449462890625; +271.2830505371094, 408.294921875; +271.3830261230469, 408.53997802734375; +271.4830322265625, 408.7815856933594; +271.5830078125, 409.0230407714844; +271.6830139160156, 409.2614440917969; +271.7829895019531, 409.4969482421875; +271.88299560546875, 409.73394775390625; +271.9830017089844, 409.9731750488281; +272.0829772949219, 410.2113952636719; +272.1829833984375, 410.4460144042969; +272.282958984375, 410.6811218261719; +272.3829650878906, 410.91455078125; +272.48297119140625, 411.1407470703125; +272.58294677734375, 411.35723876953125; +272.6829528808594, 411.5650939941406; +272.7829284667969, 411.7672119140625; +272.8829345703125, 411.9641418457031; +272.9829406738281, 412.15789794921875; +273.0829162597656, 412.35235595703125; +273.18292236328125, 412.54510498046875; +273.28289794921875, 412.7323303222656; +273.3829040527344, 412.9148864746094; +273.48291015625, 413.0959777832031; +273.5828857421875, 413.275634765625; +273.6828918457031, 413.4507751464844; +273.7828674316406, 413.625; +273.88287353515625, 413.80450439453125; +273.9828796386719, 413.98956298828125; +274.0828552246094, 414.17327880859375; +274.182861328125, 414.3512268066406; +274.2828369140625, 414.5239562988281; +274.3828430175781, 414.69244384765625; +274.48284912109375, 414.8557434082031; +274.58282470703125, 415.0105285644531; +274.6828308105469, 415.1576843261719; +274.7828063964844, 415.3006896972656; +274.8828125, 415.4391784667969; +274.9828186035156, 415.5733337402344; +275.0827941894531, 415.7037658691406; +275.18280029296875, 415.8304138183594; +275.28277587890625, 415.9531555175781; +275.3827819824219, 416.07275390625; +275.4827575683594, 416.1939697265625; +275.582763671875, 416.31475830078125; +275.6827697753906, 416.4294128417969; +275.7827453613281, 416.54010009765625; +275.88275146484375, 416.6454772949219; +275.98272705078125, 416.7409973144531; +276.0827331542969, 416.82427978515625; +276.1827392578125, 416.90234375; +276.28271484375, 416.9832458496094; +276.3827209472656, 417.0655212402344; +276.4826965332031, 417.14849853515625; +276.58270263671875, 417.2334289550781; +276.6827087402344, 417.3182678222656; +276.7826843261719, 417.3985900878906; +276.8826904296875, 417.4726867675781; +276.982666015625, 417.5423889160156; +277.0826721191406, 417.60955810546875; +277.18267822265625, 417.672119140625; +277.28265380859375, 417.7300720214844; +277.3826599121094, 417.7816162109375; +277.4826354980469, 417.8266296386719; +277.5826416015625, 417.8652648925781; +277.6826477050781, 417.9009094238281; +277.7826232910156, 417.9410095214844; +277.88262939453125, 417.9884948730469; +277.98260498046875, 418.0406799316406; +278.0826110839844, 418.08953857421875; +278.1826171875, 418.1327209472656; +278.2825927734375, 418.16796875; +278.3825988769531, 418.19122314453125; +278.4825744628906, 418.197021484375; +278.58258056640625, 418.18939208984375; +278.6825866699219, 418.1777038574219; +278.7825622558594, 418.1655578613281; +278.882568359375, 418.1516418457031; +278.9825439453125, 418.1347961425781; +279.0825500488281, 418.1192321777344; +279.18255615234375, 418.1053771972656; +279.28253173828125, 418.0877990722656; +279.3825378417969, 418.0622863769531; +279.4825134277344, 418.0281982421875; +279.58251953125, 417.9857482910156; +279.6824951171875, 417.9350891113281; +279.7825012207031, 417.8794250488281; +279.88250732421875, 417.826416015625; +279.98248291015625, 417.7766418457031; +280.0824890136719, 417.7241516113281; +280.1824645996094, 417.6629333496094; +280.282470703125, 417.5926513671875; +280.3824768066406, 417.5165100097656; +280.4824523925781, 417.4344482421875; +280.58245849609375, 417.3502197265625; +280.68243408203125, 417.2668762207031; +280.7824401855469, 417.18585205078125; +280.8824462890625, 417.1068115234375; +280.982421875, 417.0233154296875; +281.0824279785156, 416.93359375; +281.1824035644531, 416.83392333984375; +281.28240966796875, 416.72576904296875; +281.3824157714844, 416.6139831542969; +281.4823913574219, 416.5003662109375; +281.5823974609375, 416.3889465332031; +281.682373046875, 416.2777099609375; +281.7823791503906, 416.1636962890625; +281.88238525390625, 416.045654296875; +281.98236083984375, 415.9243469238281; +282.0823669433594, 415.8009033203125; +282.1823425292969, 415.6752014160156; +282.2823486328125, 415.5447998046875; +282.3823547363281, 415.4082336425781; +282.4823303222656, 415.2661437988281; +282.58233642578125, 415.1188049316406; +282.68231201171875, 414.96636962890625; +282.7823181152344, 414.80548095703125; +282.88232421875, 414.6386413574219; +282.9822998046875, 414.4719543457031; +283.0823059082031, 414.3055114746094; +283.1822814941406, 414.1389465332031; +283.28228759765625, 413.9700622558594; +283.3822937011719, 413.79833984375; +283.4822692871094, 413.61981201171875; +283.582275390625, 413.4301452636719; +283.6822509765625, 413.22955322265625; +283.7822570800781, 413.01800537109375; +283.8822326660156, 412.8009948730469; +283.98223876953125, 412.58160400390625; +284.0822448730469, 412.35797119140625; +284.1822204589844, 412.1253967285156; +284.2822265625, 411.8841552734375; +284.3822021484375, 411.6389465332031; +284.4822082519531, 411.39141845703125; +284.58221435546875, 411.1393127441406; +284.68218994140625, 410.8851013183594; +284.7821960449219, 410.6339111328125; +284.8821716308594, 410.3877868652344; +284.982177734375, 410.14398193359375; +285.0821838378906, 409.8962097167969; +285.1821594238281, 409.6427307128906; +285.28216552734375, 409.3822937011719; +285.38214111328125, 409.11700439453125; +285.4821472167969, 408.8477783203125; +285.5821533203125, 408.5726013183594; +285.68212890625, 408.2900085449219; +285.7821350097656, 408.0021057128906; +285.8821105957031, 407.7115478515625; +285.98211669921875, 407.4154052734375; +286.0821228027344, 407.1117858886719; +286.1820983886719, 406.80712890625; +286.2821044921875, 406.5064392089844; +286.382080078125, 406.203857421875; +286.4820861816406, 405.89520263671875; +286.58209228515625, 405.5843200683594; +286.68206787109375, 405.27618408203125; +286.7820739746094, 404.964111328125; +286.8820495605469, 404.6445007324219; +286.9820556640625, 404.32293701171875; +287.0820617675781, 404.0015869140625; +287.1820373535156, 403.6783447265625; +287.28204345703125, 403.3475036621094; +287.38201904296875, 403.00933837890625; +287.4820251464844, 402.6612548828125; +287.58203125, 402.3025817871094; +287.6820068359375, 401.9363098144531; +287.7820129394531, 401.5639343261719; +287.8819885253906, 401.1858825683594; +287.98199462890625, 400.8040466308594; +288.08197021484375, 400.42303466796875; +288.1819763183594, 400.04327392578125; +288.281982421875, 399.66558837890625; +288.3819580078125, 399.2901611328125; +288.4819641113281, 398.9204406738281; +288.5819396972656, 398.5531005859375; +288.68194580078125, 398.1842346191406; +288.7819519042969, 397.8144226074219; +288.8819274902344, 397.4449462890625; +288.98193359375, 397.0787658691406; +289.0819091796875, 396.7124938964844; +289.1819152832031, 396.342529296875; +289.28192138671875, 395.9648132324219; +289.38189697265625, 395.5776672363281; +289.4819030761719, 395.1810607910156; +289.5818786621094, 394.77288818359375; +289.681884765625, 394.3543395996094; +289.7818908691406, 393.93084716796875; +289.8818664550781, 393.51104736328125; +289.98187255859375, 393.09600830078125; +290.08184814453125, 392.6812438964844; +290.1818542480469, 392.26629638671875; +290.2818603515625, 391.8565368652344; +290.3818359375, 391.4596862792969; +290.4818420410156, 391.0807189941406; +290.5818176269531, 390.72332763671875; +290.68182373046875, 390.39105224609375; +290.7818298339844, 390.0804443359375; +290.8818054199219, 389.7828063964844; +290.9818115234375, 389.48187255859375; +291.081787109375, 389.1583251953125; +291.1817932128906, 388.7984924316406; +291.28179931640625, 388.3938903808594; +291.38177490234375, 387.9451904296875; +291.4817810058594, 387.4525451660156; +291.5817565917969, 386.9222717285156; +291.6817626953125, 386.3648376464844; +291.78173828125, 385.7900390625; +291.8817443847656, 385.2067565917969; +291.98175048828125, 384.62060546875; +292.08172607421875, 384.04010009765625; +292.1817321777344, 383.46826171875; +292.2817077636719, 382.904541015625; +292.3817138671875, 382.3490905761719; +292.4817199707031, 381.8028869628906; +292.5816955566406, 381.2628173828125; +292.68170166015625, 380.72174072265625; +292.78167724609375, 380.1790771484375; +292.8816833496094, 379.6395568847656; +292.981689453125, 379.1064453125; +293.0816650390625, 378.5753173828125; +293.1816711425781, 378.0442199707031; +293.2816467285156, 377.5144958496094; +293.38165283203125, 376.9881591796875; +293.4816589355469, 376.46429443359375; +293.5816345214844, 375.9381408691406; +293.681640625, 375.4082946777344; +293.7816162109375, 374.8766174316406; +293.8816223144531, 374.3485412597656; +293.98162841796875, 373.82025146484375; +294.08160400390625, 373.2857360839844; +294.1816101074219, 372.7445983886719; +294.2815856933594, 372.2032165527344; +294.381591796875, 371.6654052734375; +294.4815979003906, 371.12542724609375; +294.5815734863281, 370.58294677734375; +294.68157958984375, 370.0406494140625; +294.78155517578125, 369.4993896484375; +294.8815612792969, 368.9577941894531; +294.9815673828125, 368.4139099121094; +295.08154296875, 367.8686828613281; +295.1815490722656, 367.3226623535156; +295.2815246582031, 366.7737731933594; +295.38153076171875, 366.22088623046875; +295.4815368652344, 365.66424560546875; +295.5815124511719, 365.1041259765625; +295.6815185546875, 364.54058837890625; +295.781494140625, 363.9734191894531; +295.8815002441406, 363.40716552734375; +295.9814758300781, 362.8458251953125; +296.08148193359375, 362.2860412597656; +296.1814880371094, 361.7219543457031; +296.2814636230469, 361.1524353027344; +296.3814697265625, 360.57977294921875; +296.4814453125, 360.00750732421875; +296.5814514160156, 359.43634033203125; +296.68145751953125, 358.8665466308594; +296.78143310546875, 358.2998046875; +296.8814392089844, 357.736572265625; +296.9814147949219, 357.17559814453125; +297.0814208984375, 356.6092224121094; +297.1814270019531, 356.0339660644531; +297.2814025878906, 355.4534606933594; +297.38140869140625, 354.8733215332031; +297.48138427734375, 354.29754638671875; +297.5813903808594, 353.7269287109375; +297.681396484375, 353.16217041015625; +297.7813720703125, 352.6034240722656; +297.8813781738281, 352.04864501953125; +297.9813537597656, 351.49462890625; +298.08135986328125, 350.9375915527344; +298.1813659667969, 350.377197265625; +298.2813415527344, 349.8177185058594; +298.38134765625, 349.2618408203125; +298.4813232421875, 348.7063903808594; +298.5813293457031, 348.14569091796875; +298.68133544921875, 347.57696533203125; +298.78131103515625, 347.0021667480469; +298.8813171386719, 346.4235534667969; +298.9812927246094, 345.8403015136719; +299.081298828125, 345.2530212402344; +299.1813049316406, 344.6649475097656; +299.2812805175781, 344.0791931152344; +299.38128662109375, 343.4938049316406; +299.48126220703125, 342.90313720703125; +299.5812683105469, 342.3055114746094; +299.6812744140625, 341.7052307128906; +299.78125, 341.107421875; +299.8812561035156, 340.5143127441406; +299.9812316894531, 339.9236755371094; +300.08123779296875, 339.33233642578125; +300.18121337890625, 338.74249267578125; +300.2812194824219, 338.15521240234375; +300.3812255859375, 337.5701599121094; +300.481201171875, 336.9841003417969; +300.5812072753906, 336.39654541015625; +300.6811828613281, 335.81512451171875; +300.78118896484375, 335.2412414550781; +300.8811950683594, 334.6731872558594; +300.9811706542969, 334.1096496582031; +301.0811767578125, 333.5520324707031; +301.18115234375, 333.00579833984375; +301.2811584472656, 332.4683837890625; +301.38116455078125, 331.937255859375; +301.48114013671875, 331.4095458984375; +301.5811462402344, 330.88232421875; +301.6811218261719, 330.35205078125; +301.7811279296875, 329.8138732910156; +301.8811340332031, 329.2640075683594; +301.9811096191406, 328.70068359375; +302.08111572265625, 328.1237487792969; +302.18109130859375, 327.53271484375; +302.2810974121094, 326.9325866699219; +302.381103515625, 326.32708740234375; +302.4810791015625, 325.7232971191406; +302.5810852050781, 325.1249084472656; +302.6810607910156, 324.5313720703125; +302.78106689453125, 323.9408874511719; +302.8810729980469, 323.3492736816406; +302.9810485839844, 322.75665283203125; +303.0810546875, 322.1625061035156; +303.1810302734375, 321.5683898925781; +303.2810363769531, 320.9797668457031; +303.38104248046875, 320.4007873535156; +303.48101806640625, 319.8311462402344; +303.5810241699219, 319.2667541503906; +303.6809997558594, 318.7046813964844; +303.781005859375, 318.14398193359375; +303.8810119628906, 317.5811767578125; +303.9809875488281, 317.0156555175781; +304.08099365234375, 316.4496154785156; +304.18096923828125, 315.8880615234375; +304.2809753417969, 315.33428955078125; +304.3809509277344, 314.7835693359375; +304.48095703125, 314.23052978515625; +304.5809631347656, 313.6742858886719; +304.6809387207031, 313.11810302734375; +304.78094482421875, 312.5618896484375; +304.88092041015625, 312.0030212402344; +304.9809265136719, 311.4425354003906; +305.0809326171875, 310.8866882324219; +305.180908203125, 310.3343505859375; +305.2809143066406, 309.7835388183594; +305.3808898925781, 309.23193359375; +305.48089599609375, 308.6778259277344; +305.5809020996094, 308.12445068359375; +305.6808776855469, 307.5724182128906; +305.7808837890625, 307.0224609375; +305.880859375, 306.4716796875; +305.9808654785156, 305.92425537109375; +306.08087158203125, 305.3839416503906; +306.18084716796875, 304.84527587890625; +306.2808532714844, 304.3022766113281; +306.3808288574219, 303.7576599121094; +306.4808349609375, 303.2176208496094; +306.5808410644531, 302.67828369140625; +306.6808166503906, 302.1387023925781; +306.78082275390625, 301.6033630371094; +306.88079833984375, 301.07861328125; +306.9808044433594, 300.56304931640625; +307.080810546875, 300.0510559082031; +307.1807861328125, 299.5382080078125; +307.2807922363281, 299.0226745605469; +307.3807678222656, 298.507568359375; +307.48077392578125, 297.9941711425781; +307.5807800292969, 297.4826965332031; +307.6807556152344, 296.9730224609375; +307.78076171875, 296.4706726074219; +307.8807373046875, 295.9762878417969; +307.9807434082031, 295.486083984375; +308.08074951171875, 294.99676513671875; +308.18072509765625, 294.50543212890625; +308.2807312011719, 294.0147705078125; +308.3807067871094, 293.5264587402344; +308.480712890625, 293.0438537597656; +308.5806884765625, 292.56488037109375; +308.6806945800781, 292.0846252441406; +308.78070068359375, 291.60406494140625; +308.88067626953125, 291.1234130859375; +308.9806823730469, 290.6419677734375; +309.0806579589844, 290.1574401855469; +309.1806640625, 289.6704406738281; +309.2806701660156, 289.18267822265625; +309.3806457519531, 288.6967468261719; +309.48065185546875, 288.21478271484375; +309.58062744140625, 287.738037109375; +309.6806335449219, 287.2646789550781; +309.7806396484375, 286.79229736328125; +309.880615234375, 286.3249816894531; +309.9806213378906, 285.8646545410156; +310.0805969238281, 285.4129943847656; +310.18060302734375, 284.966552734375; +310.2806091308594, 284.52294921875; +310.3805847167969, 284.087158203125; +310.4805908203125, 283.6614074707031; +310.58056640625, 283.2434387207031; +310.6805725097656, 282.8233642578125; +310.78057861328125, 282.3973388671875; +310.88055419921875, 281.9668884277344; +310.9805603027344, 281.5306396484375; +311.0805358886719, 281.0851745605469; +311.1805419921875, 280.6328125; +311.2805480957031, 280.1824035644531; +311.3805236816406, 279.73870849609375; +311.48052978515625, 279.2982482910156; +311.58050537109375, 278.8583068847656; +311.6805114746094, 278.4221496582031; +311.780517578125, 277.9920959472656; +311.8804931640625, 277.56683349609375; +311.9804992675781, 277.14471435546875; +312.0804748535156, 276.729736328125; +312.18048095703125, 276.32330322265625; +312.28045654296875, 275.9234313964844; +312.3804626464844, 275.5273742675781; +312.48046875, 275.1322326660156; +312.5804443359375, 274.74017333984375; +312.6804504394531, 274.3536682128906; +312.7804260253906, 273.97509765625; +312.88043212890625, 273.6017761230469; +312.9804382324219, 273.2294921875; +313.0804138183594, 272.8610534667969; +313.180419921875, 272.4964904785156; +313.2803955078125, 272.13116455078125; +313.3804016113281, 271.7571105957031; +313.48040771484375, 271.3717956542969; +313.58038330078125, 270.9774475097656; +313.6803894042969, 270.5732727050781; +313.7803649902344, 270.1596984863281; +313.88037109375, 269.7406311035156; +313.9803771972656, 269.3265075683594; +314.0803527832031, 268.92254638671875; +314.18035888671875, 268.5265197753906; +314.28033447265625, 268.13531494140625; +314.3803405761719, 267.7493591308594; +314.4803466796875, 267.3692321777344; +314.580322265625, 266.99053955078125; +314.6803283691406, 266.61529541015625; +314.7803039550781, 266.24993896484375; +314.88031005859375, 265.89532470703125; +314.9803161621094, 265.547607421875; +315.0802917480469, 265.2045593261719; +315.1802978515625, 264.8686828613281; +315.2802734375, 264.53680419921875; +315.3802795410156, 264.2035827636719; +315.48028564453125, 263.87091064453125; +315.58026123046875, 263.5394287109375; +315.6802673339844, 263.2084045410156; +315.7802429199219, 262.8763122558594; +315.8802490234375, 262.5443115234375; +315.9802551269531, 262.21502685546875; +316.0802307128906, 261.88818359375; +316.18023681640625, 261.56427001953125; +316.28021240234375, 261.2437438964844; +316.3802185058594, 260.9236755371094; +316.4801940917969, 260.6016845703125; +316.5802001953125, 260.2779541015625; +316.6802062988281, 259.9549255371094; +316.7801818847656, 259.6338195800781; +316.88018798828125, 259.31634521484375; +316.98016357421875, 259.00982666015625; +317.0801696777344, 258.7215270996094; +317.18017578125, 258.4518127441406; +317.2801513671875, 258.20062255859375; +317.3801574707031, 257.9776916503906; +317.4801330566406, 257.7946472167969; +317.58013916015625, 257.6565856933594; +317.6801452636719, 257.565673828125; +317.7801208496094, 257.52716064453125; +317.880126953125, 257.5440368652344; +317.9801025390625, 257.6058349609375; +318.0801086425781, 257.69293212890625; +318.18011474609375, 257.78582763671875; +318.28009033203125, 257.8636779785156; +318.3800964355469, 257.9040832519531; +318.4800720214844, 257.8818054199219; +318.580078125, 257.7799072265625; +318.6800842285156, 257.592529296875; +318.7800598144531, 257.32135009765625; +318.88006591796875, 256.9732666015625; +318.98004150390625, 256.558837890625; +319.0800476074219, 256.098388671875; +319.1800537109375, 255.61380004882812; +319.280029296875, 255.12327575683594; +319.3800354003906, 254.63905334472656; +319.4800109863281, 254.168701171875; +319.58001708984375, 253.7188262939453; +319.6800231933594, 253.2903594970703; +319.7799987792969, 252.88323974609375; +319.8800048828125, 252.49908447265625; +319.97998046875, 252.13719177246094; +320.0799865722656, 251.7969512939453; +320.17999267578125, 251.47703552246094; +320.27996826171875, 251.1752471923828; +320.3799743652344, 250.88882446289062; +320.4799499511719, 250.61138916015625; +320.5799560546875, 250.33981323242188; +320.679931640625, 250.0701904296875; +320.7799377441406, 249.79971313476562; +320.87994384765625, 249.53221130371094; +320.97991943359375, 249.26771545410156; +321.0799255371094, 249.007568359375; +321.1799011230469, 248.75042724609375; +321.2799072265625, 248.4991455078125; +321.3799133300781, 248.25599670410156; +321.4798889160156, 248.0188751220703; +321.57989501953125, 247.7883758544922; +321.67987060546875, 247.5626220703125; +321.7798767089844, 247.34068298339844; +321.8798828125, 247.12088012695312; +321.9798583984375, 246.9027557373047; +322.0798645019531, 246.68479919433594; +322.1798400878906, 246.46707153320312; +322.27984619140625, 246.2508087158203; +322.3798522949219, 246.03729248046875; +322.4798278808594, 245.8263702392578; +322.579833984375, 245.6183624267578; +322.6798095703125, 245.4146728515625; +322.7798156738281, 245.21432495117188; +322.87982177734375, 245.01535034179688; +322.97979736328125, 244.81744384765625; +323.0798034667969, 244.62098693847656; +323.1797790527344, 244.42539978027344; +323.27978515625, 244.2313995361328; +323.3797912597656, 244.03929138183594; +323.4797668457031, 243.8509063720703; +323.57977294921875, 243.66709899902344; +323.67974853515625, 243.4882354736328; +323.7797546386719, 243.31521606445312; +323.8797607421875, 243.14659118652344; +323.979736328125, 242.98269653320312; +324.0797424316406, 242.82444763183594; +324.1797180175781, 242.67198181152344; +324.27972412109375, 242.52447509765625; +324.3797302246094, 242.3785400390625; +324.4797058105469, 242.23008728027344; +324.5797119140625, 242.07713317871094; +324.6796875, 241.92018127441406; +324.7796936035156, 241.76161193847656; +324.8796691894531, 241.60198974609375; +324.97967529296875, 241.44076538085938; +325.0796813964844, 241.2803497314453; +325.1796569824219, 241.1225128173828; +325.2796630859375, 240.96463012695312; +325.379638671875, 240.80345153808594; +325.4796447753906, 240.64031982421875; +325.57965087890625, 240.48171997070312; +325.67962646484375, 240.3307647705078; +325.7796325683594, 240.18568420410156; +325.8796081542969, 240.04510498046875; +325.9796142578125, 239.908203125; +326.0796203613281, 239.7746124267578; +326.1795959472656, 239.64178466796875; +326.27960205078125, 239.5077667236328; +326.37957763671875, 239.37283325195312; +326.4795837402344, 239.23948669433594; +326.57958984375, 239.10845947265625; +326.6795654296875, 238.9796600341797; +326.7795715332031, 238.8539581298828; +326.8795471191406, 238.73342895507812; +326.97955322265625, 238.61802673339844; +327.0795593261719, 238.5054168701172; +327.1795349121094, 238.39682006835938; +327.279541015625, 238.2915802001953; +327.3795166015625, 238.1866455078125; +327.4795227050781, 238.07876586914062; +327.57952880859375, 237.96853637695312; +327.67950439453125, 237.8583984375; +327.7795104980469, 237.7459716796875; +327.8794860839844, 237.6300048828125; +327.9794921875, 237.51039123535156; +328.0794982910156, 237.3898468017578; +328.1794738769531, 237.27203369140625; +328.27947998046875, 237.15724182128906; +328.37945556640625, 237.04640197753906; +328.4794616699219, 236.94215393066406; +328.5794372558594, 236.8474884033203; +328.679443359375, 236.75958251953125; +328.7794494628906, 236.67308044433594; +328.8794250488281, 236.5878448486328; +328.97943115234375, 236.50657653808594; +329.07940673828125, 236.42820739746094; +329.1794128417969, 236.3527374267578; +329.2794189453125, 236.28282165527344; +329.37939453125, 236.21749877929688; +329.4794006347656, 236.1504364013672; +329.5793762207031, 236.0765380859375; +329.67938232421875, 235.9969482421875; +329.7793884277344, 235.91465759277344; +329.8793640136719, 235.83148193359375; +329.9793701171875, 235.7471160888672; +330.079345703125, 235.66290283203125; +330.1793518066406, 235.5839385986328; +330.27935791015625, 235.51300048828125; +330.37933349609375, 235.44775390625; +330.4793395996094, 235.38433837890625; +330.5793151855469, 235.3239288330078; +330.6793212890625, 235.26931762695312; +330.7793273925781, 235.217529296875; +330.8793029785156, 235.1634063720703; +330.97930908203125, 235.10475158691406; +331.07928466796875, 235.0419464111328; +331.1792907714844, 234.9762420654297; +331.279296875, 234.9071044921875; +331.3792724609375, 234.83242797851562; +331.4792785644531, 234.7513427734375; +331.5792541503906, 234.66392517089844; +331.67926025390625, 234.5706329345703; +331.7792663574219, 234.4747772216797; +331.8792419433594, 234.38006591796875; +331.979248046875, 234.2899169921875; +332.0792236328125, 234.206298828125; +332.1792297363281, 234.12835693359375; +332.27923583984375, 234.0555877685547; +332.37921142578125, 233.9839630126953; +332.4792175292969, 233.91058349609375; +332.5791931152344, 233.8391876220703; +332.67919921875, 233.7718048095703; +332.7791748046875, 233.70787048339844; +332.8791809082031, 233.64454650878906; +332.97918701171875, 233.58111572265625; +333.07916259765625, 233.5194854736328; +333.1791687011719, 233.4583282470703; +333.2791442871094, 233.39491271972656; +333.379150390625, 233.3307342529297; +333.4791564941406, 233.26881408691406; +333.5791320800781, 233.21310424804688; +333.67913818359375, 233.16468811035156; +333.77911376953125, 233.12106323242188; +333.8791198730469, 233.08517456054688; +333.9791259765625, 233.05902099609375; +334.0791015625, 233.04208374023438; +334.1791076660156, 233.0307159423828; +334.2790832519531, 233.02427673339844; +334.37908935546875, 233.02557373046875; +334.4790954589844, 233.03073120117188; +334.5790710449219, 233.0335693359375; +334.6790771484375, 233.035400390625; +334.779052734375, 233.04232788085938; +334.8790588378906, 233.05419921875; +334.97906494140625, 233.066162109375; +335.07904052734375, 233.07835388183594; +335.1790466308594, 233.09629821777344; +335.2790222167969, 233.12181091308594; +335.3790283203125, 233.15155029296875; +335.4790344238281, 233.185546875; +335.5790100097656, 233.22567749023438; +335.67901611328125, 233.27256774902344; +335.77899169921875, 233.31918334960938; +335.8789978027344, 233.35589599609375; +335.97900390625, 233.37466430664062; +336.0789794921875, 233.36895751953125; +336.1789855957031, 233.3373565673828; +336.2789611816406, 233.27720642089844; +336.37896728515625, 233.18943786621094; +336.4789733886719, 233.077392578125; +336.5789489746094, 232.94679260253906; +336.678955078125, 232.80474853515625; +336.7789306640625, 232.65679931640625; +336.8789367675781, 232.51119995117188; +336.9789123535156, 232.3763427734375; +337.07891845703125, 232.25706481933594; +337.1789245605469, 232.15625; +337.2789001464844, 232.07284545898438; +337.37890625, 232.0028839111328; +337.4788818359375, 231.94203186035156; +337.5788879394531, 231.88754272460938; +337.67889404296875, 231.83786010742188; +337.77886962890625, 231.7888641357422; +337.8788757324219, 231.74085998535156; +337.9788513183594, 231.69700622558594; +338.078857421875, 231.65821838378906; +338.1788635253906, 231.6217498779297; +338.2788391113281, 231.587890625; +338.37884521484375, 231.55943298339844; +338.47882080078125, 231.53529357910156; +338.5788269042969, 231.5121612548828; +338.6788330078125, 231.48782348632812; +338.77880859375, 231.46409606933594; +338.8788146972656, 231.43968200683594; +338.9787902832031, 231.41551208496094; +339.07879638671875, 231.3927001953125; +339.1788024902344, 231.37277221679688; +339.2787780761719, 231.35829162597656; +339.3787841796875, 231.34945678710938; +339.478759765625, 231.34764099121094; +339.5787658691406, 231.34893798828125; +339.67877197265625, 231.35043334960938; +339.77874755859375, 231.35247802734375; +339.8787536621094, 231.3551788330078; +339.9787292480469, 231.35626220703125; +340.0787353515625, 231.35069274902344; +340.1787414550781, 231.33799743652344; +340.2787170410156, 231.32022094726562; +340.37872314453125, 231.29739379882812; +340.47869873046875, 231.26629638671875; +340.5787048339844, 231.2256317138672; +340.6787109375, 231.177978515625; +340.7786865234375, 231.12750244140625; +340.8786926269531, 231.07632446289062; +340.9786682128906, 231.0240936279297; +341.07867431640625, 230.9733123779297; +341.17864990234375, 230.9277801513672; +341.2786560058594, 230.8908233642578; +341.378662109375, 230.86117553710938; +341.4786376953125, 230.83590698242188; +341.5786437988281, 230.8114471435547; +341.6786193847656, 230.78759765625; +341.77862548828125, 230.76683044433594; +341.8786315917969, 230.7516632080078; +341.9786071777344, 230.73963928222656; +342.07861328125, 230.72679138183594; +342.1785888671875, 230.71617126464844; +342.2785949707031, 230.70883178710938; +342.37860107421875, 230.70330810546875; +342.47857666015625, 230.69378662109375; +342.5785827636719, 230.6820831298828; +342.6785583496094, 230.6741943359375; +342.778564453125, 230.66891479492188; +342.8785705566406, 230.66294860839844; +342.9785461425781, 230.6525421142578; +343.07855224609375, 230.64083862304688; +343.17852783203125, 230.63064575195312; +343.2785339355469, 230.62277221679688; +343.3785400390625, 230.6193389892578; +343.478515625, 230.62135314941406; +343.5785217285156, 230.628173828125; +343.6784973144531, 230.63685607910156; +343.77850341796875, 230.6467742919922; +343.8785095214844, 230.65805053710938; +343.9784851074219, 230.6660919189453; +344.0784912109375, 230.6686248779297; +344.178466796875, 230.6678924560547; +344.2784729003906, 230.66842651367188; +344.37847900390625, 230.66949462890625; +344.47845458984375, 230.6674346923828; +344.5784606933594, 230.6651611328125; +344.6784362792969, 230.66473388671875; +344.7784423828125, 230.6669158935547; +344.87841796875, 230.67054748535156; +344.9784240722656, 230.6751708984375; +345.07843017578125, 230.6768798828125; +345.17840576171875, 230.67025756835938; +345.2784118652344, 230.6549530029297; +345.3783874511719, 230.6336212158203; +345.4783935546875, 230.60935974121094; +345.5783996582031, 230.5824737548828; +345.6783752441406, 230.55628967285156; +345.77838134765625, 230.5342559814453; +345.87835693359375, 230.51898193359375; +345.9783630371094, 230.5106658935547; +346.078369140625, 230.50376892089844; +346.1783447265625, 230.4945831298828; +346.2783508300781, 230.4882354736328; +346.3783264160156, 230.4920196533203; +346.47833251953125, 230.5063018798828; +346.5783386230469, 230.52484130859375; +346.6783142089844, 230.5455780029297; +346.7783203125, 230.571533203125; +346.8782958984375, 230.60101318359375; +346.9783020019531, 230.62796020507812; +347.07830810546875, 230.6461639404297; +347.17828369140625, 230.65684509277344; +347.2782897949219, 230.66465759277344; +347.3782653808594, 230.67225646972656; +347.478271484375, 230.67665100097656; +347.5782775878906, 230.67787170410156; +347.6782531738281, 230.68186950683594; +347.77825927734375, 230.6925506591797; +347.87823486328125, 230.7095184326172; +347.9782409667969, 230.73056030273438; +348.0782470703125, 230.75790405273438; +348.17822265625, 230.7910919189453; +348.2782287597656, 230.82666015625; +348.3782043457031, 230.86195373535156; +348.47821044921875, 230.89642333984375; +348.5782165527344, 230.92959594726562; +348.6781921386719, 230.96051025390625; +348.7781982421875, 230.9909210205078; +348.878173828125, 231.02529907226562; +348.9781799316406, 231.06529235839844; +349.0781555175781, 231.10926818847656; +349.17816162109375, 231.15567016601562; +349.2781677246094, 231.20364379882812; +349.3781433105469, 231.25172424316406; +349.4781494140625, 231.29420471191406; +349.578125, 231.3302001953125; +349.6781311035156, 231.36065673828125; +349.77813720703125, 231.3846435546875; +349.87811279296875, 231.3983612060547; +349.9781188964844, 231.39918518066406; +350.0780944824219, 231.3877410888672; +350.1781005859375, 231.36395263671875; +350.2781066894531, 231.33177185058594; +350.3780822753906, 231.2967071533203; +350.47808837890625, 231.26174926757812; +350.57806396484375, 231.22715759277344; +350.6780700683594, 231.19332885742188; +350.778076171875, 231.16139221191406; +350.8780517578125, 231.1297149658203; +350.9780578613281, 231.09817504882812; +351.0780334472656, 231.0703887939453; +351.17803955078125, 231.04879760742188; +351.2780456542969, 231.03488159179688; +351.3780212402344, 231.02728271484375; +351.47802734375, 231.02369689941406; +351.5780029296875, 231.0223846435547; +351.6780090332031, 231.0208282470703; +351.77801513671875, 231.01963806152344; +351.87799072265625, 231.01901245117188; +351.9779968261719, 231.02008056640625; +352.0779724121094, 231.02256774902344; +352.177978515625, 231.024658203125; +352.2779846191406, 231.0262451171875; +352.3779602050781, 231.028564453125; +352.47796630859375, 231.03309631347656; +352.57794189453125, 231.03907775878906; +352.6779479980469, 231.0469512939453; +352.7779541015625, 231.0576629638672; +352.8779296875, 231.07200622558594; +352.9779357910156, 231.08834838867188; +353.0779113769531, 231.1035919189453; +353.17791748046875, 231.11627197265625; +353.27789306640625, 231.12583923339844; +353.3778991699219, 231.13107299804688; +353.4779052734375, 231.13040161132812; +353.577880859375, 231.1240997314453; +353.6778869628906, 231.11541748046875; +353.7778625488281, 231.10687255859375; +353.87786865234375, 231.0985870361328; +353.9778747558594, 231.0890350341797; +354.0778503417969, 231.0796661376953; +354.1778564453125, 231.0735626220703; +354.27783203125, 231.07269287109375; +354.3778381347656, 231.07681274414062; +354.47784423828125, 231.08326721191406; +354.57781982421875, 231.09219360351562; +354.6778259277344, 231.10281372070312; +354.7778015136719, 231.11312866210938; +354.8778076171875, 231.1228485107422; +354.9778137207031, 231.13307189941406; +355.0777893066406, 231.14581298828125; +355.17779541015625, 231.16017150878906; +355.27777099609375, 231.17515563964844; +355.3777770996094, 231.191162109375; +355.477783203125, 231.2061309814453; +355.5777587890625, 231.2205810546875; +355.6777648925781, 231.23703002929688; +355.7777404785156, 231.25828552246094; +355.87774658203125, 231.2852325439453; +355.9777526855469, 231.3179168701172; +356.0777282714844, 231.35879516601562; +356.177734375, 231.40574645996094; +356.2777099609375, 231.4562530517578; +356.3777160644531, 231.50709533691406; +356.47772216796875, 231.5587158203125; +356.57769775390625, 231.61117553710938; +356.6777038574219, 231.6615447998047; +356.7776794433594, 231.70755004882812; +356.877685546875, 231.7477264404297; +356.9776916503906, 231.78660583496094; +357.0776672363281, 231.82632446289062; +357.17767333984375, 231.86428833007812; +357.27764892578125, 231.89678955078125; +357.3776550292969, 231.9220428466797; +357.4776306152344, 231.9412384033203; +357.57763671875, 231.95228576660156; +357.6776428222656, 231.9524383544922; +357.7776184082031, 231.94454956054688; +357.87762451171875, 231.9354248046875; +357.97760009765625, 231.93019104003906; +358.0776062011719, 231.9271697998047; +358.1776123046875, 231.92420959472656; +358.277587890625, 231.9230499267578; +358.3775939941406, 231.92665100097656; +358.4775695800781, 231.93382263183594; +358.57757568359375, 231.9430389404297; +358.6775817871094, 231.9562225341797; +358.7775573730469, 231.974609375; +358.8775634765625, 231.99740600585938; +358.9775390625, 232.0220947265625; +359.0775451660156, 232.05047607421875; +359.17755126953125, 232.0835418701172; +359.27752685546875, 232.12095642089844; +359.3775329589844, 232.16404724121094; +359.4775085449219, 232.21206665039062; +359.5775146484375, 232.26319885253906; +359.6775207519531, 232.3145294189453; +359.7774963378906, 232.36557006835938; +359.87750244140625, 232.41856384277344; +359.97747802734375, 232.47390747070312; +360.0774841308594, 232.53189086914062; +360.177490234375, 232.58819580078125; +360.2774658203125, 232.63970947265625; +360.3774719238281, 232.68545532226562; +360.4774475097656, 232.72560119628906; +360.57745361328125, 232.75714111328125; +360.6774597167969, 232.7754364013672; +360.7774353027344, 232.78421020507812; +360.87744140625, 232.78787231445312; +360.9774169921875, 232.7893524169922; +361.0774230957031, 232.78697204589844; +361.1773986816406, 232.78451538085938; +361.27740478515625, 232.7916717529297; +361.3774108886719, 232.81173706054688; +361.4773864746094, 232.84266662597656; +361.577392578125, 232.88182067871094; +361.6773681640625, 232.93165588378906; +361.7773742675781, 232.99298095703125; +361.87738037109375, 233.05958557128906; +361.97735595703125, 233.12583923339844; +362.0773620605469, 233.18836975097656; +362.1773376464844, 233.2442169189453; +362.27734375, 233.2897186279297; +362.3773498535156, 233.322998046875; +362.4773254394531, 233.34616088867188; +362.57733154296875, 233.36012268066406; +362.67730712890625, 233.36610412597656; +362.7773132324219, 233.36607360839844; +362.8773193359375, 233.36334228515625; +362.977294921875, 233.36090087890625; +363.0773010253906, 233.35964965820312; +363.1772766113281, 233.3603973388672; +363.27728271484375, 233.3616180419922; +363.3772888183594, 233.36410522460938; +363.4772644042969, 233.36935424804688; +363.5772705078125, 233.3793487548828; +363.67724609375, 233.3929901123047; +363.7772521972656, 233.41107177734375; +363.87725830078125, 233.43658447265625; +363.97723388671875, 233.46900939941406; +364.0772399902344, 233.5054473876953; +364.1772155761719, 233.5412139892578; +364.2772216796875, 233.57586669921875; +364.3772277832031, 233.6103057861328; +364.4772033691406, 233.64540100097656; +364.57720947265625, 233.6830596923828; +364.67718505859375, 233.72146606445312; +364.7771911621094, 233.75802612304688; +364.877197265625, 233.7930145263672; +364.9771728515625, 233.82933044433594; +365.0771789550781, 233.8711700439453; +365.1771545410156, 233.91726684570312; +365.27716064453125, 233.9676513671875; +365.37713623046875, 234.0254364013672; +365.4771423339844, 234.09442138671875; +365.5771484375, 234.17259216308594; +365.6771240234375, 234.25413513183594; +365.7771301269531, 234.33921813964844; +365.8771057128906, 234.4312744140625; +365.97711181640625, 234.52926635742188; +366.0771179199219, 234.62896728515625; +366.1770935058594, 234.73284912109375; +366.277099609375, 234.85035705566406; +366.3770751953125, 234.98753356933594; +366.4770812988281, 235.14686584472656; +366.57708740234375, 235.3348846435547; +366.67706298828125, 235.55950927734375; +366.7770690917969, 235.8182830810547; +366.8770446777344, 236.09750366210938; +366.97705078125, 236.3813018798828; +367.0770568847656, 236.65536499023438; +367.1770324707031, 236.9047088623047; +367.27703857421875, 237.11166381835938; +367.37701416015625, 237.26622009277344; +367.4770202636719, 237.36424255371094; +367.5770263671875, 237.40756225585938; +367.677001953125, 237.39816284179688; +367.7770080566406, 237.33995056152344; +367.8769836425781, 237.24267578125; +367.97698974609375, 237.11988830566406; +368.0769958496094, 236.98448181152344; +368.1769714355469, 236.8455047607422; +368.2769775390625, 236.71202087402344; +368.376953125, 236.5923309326172; +368.4769592285156, 236.49061584472656; +368.57696533203125, 236.4038848876953; +368.67694091796875, 236.33236694335938; +368.7769470214844, 236.27804565429688; +368.8769226074219, 236.2434539794922; +368.9769287109375, 236.224609375; +369.0769348144531, 236.2167510986328; +369.1769104003906, 236.220703125; +369.27691650390625, 236.2378387451172; +369.37689208984375, 236.26817321777344; +369.4768981933594, 236.30703735351562; +369.5768737792969, 236.35528564453125; +369.6768798828125, 236.41708374023438; +369.7768859863281, 236.49436950683594; +369.8768615722656, 236.5882568359375; +369.97686767578125, 236.70082092285156; +370.07684326171875, 236.83529663085938; +370.1768493652344, 236.99227905273438; +370.27685546875, 237.16729736328125; +370.3768310546875, 237.35374450683594; +370.4768371582031, 237.5428009033203; +370.5768127441406, 237.72598266601562; +370.67681884765625, 237.89923095703125; +370.7768249511719, 238.0593719482422; +370.8768005371094, 238.20193481445312; +370.976806640625, 238.32315063476562; +371.0767822265625, 238.42141723632812; +371.1767883300781, 238.49867248535156; +371.27679443359375, 238.55709838867188; +371.37677001953125, 238.59982299804688; +371.4767761230469, 238.63162231445312; +371.5767517089844, 238.6547088623047; +371.6767578125, 238.673095703125; +371.7767639160156, 238.6940460205078; +371.8767395019531, 238.72439575195312; +371.97674560546875, 238.7671356201172; +372.07672119140625, 238.82582092285156; +372.1767272949219, 238.9091033935547; +372.2767333984375, 239.0240936279297; +372.376708984375, 239.1693572998047; +372.4767150878906, 239.34152221679688; +372.5766906738281, 239.53982543945312; +372.67669677734375, 239.76104736328125; +372.7767028808594, 239.9953155517578; +372.8766784667969, 240.22991943359375; +372.9766845703125, 240.45318603515625; +373.07666015625, 240.6529541015625; +373.1766662597656, 240.81512451171875; +373.27667236328125, 240.928466796875; +373.37664794921875, 240.98741149902344; +373.4766540527344, 240.990966796875; +373.5766296386719, 240.94325256347656; +373.6766357421875, 240.852294921875; +373.776611328125, 240.72889709472656; +373.8766174316406, 240.58746337890625; +373.97662353515625, 240.44285583496094; +374.07659912109375, 240.30580139160156; +374.1766052246094, 240.18113708496094; +374.2765808105469, 240.0705108642578; +374.3765869140625, 239.97918701171875; +374.4765930175781, 239.90821838378906; +374.5765686035156, 239.85630798339844; +374.67657470703125, 239.8240509033203; +374.77655029296875, 239.81369018554688; +374.8765563964844, 239.82518005371094; +374.9765625, 239.85226440429688; +375.0765380859375, 239.88955688476562; +375.1765441894531, 239.93563842773438; +375.2765197753906, 239.98585510253906; +375.37652587890625, 240.0333709716797; +375.4765319824219, 240.07598876953125; +375.5765075683594, 240.11341857910156; +375.676513671875, 240.14906311035156; +375.7764892578125, 240.18157958984375; +375.8764953613281, 240.2123260498047; +375.97650146484375, 240.2445068359375; +376.07647705078125, 240.27932739257812; +376.1764831542969, 240.3204345703125; +376.2764587402344, 240.36734008789062; +376.37646484375, 240.41845703125; +376.4764709472656, 240.47296142578125; +376.5764465332031, 240.53306579589844; +376.67645263671875, 240.60305786132812; +376.77642822265625, 240.6845245361328; +376.8764343261719, 240.7745361328125; +376.9764404296875, 240.87132263183594; +377.076416015625, 240.974365234375; +377.1764221191406, 241.08493041992188; +377.2763977050781, 241.20156860351562; +377.37640380859375, 241.32106018066406; +377.47637939453125, 241.44622802734375; +377.5763854980469, 241.58224487304688; +377.6763916015625, 241.7318572998047; +377.7763671875, 241.89016723632812; +377.8763732910156, 242.052490234375; +377.9763488769531, 242.21514892578125; +378.07635498046875, 242.3729705810547; +378.1763610839844, 242.52053833007812; +378.2763366699219, 242.65313720703125; +378.3763427734375, 242.76588439941406; +378.476318359375, 242.85629272460938; +378.5763244628906, 242.92758178710938; +378.67633056640625, 242.98556518554688; +378.77630615234375, 243.0332794189453; +378.8763122558594, 243.07037353515625; +378.9762878417969, 243.10333251953125; +379.0762939453125, 243.1398162841797; +379.1763000488281, 243.1850128173828; +379.2762756347656, 243.2407684326172; +379.37628173828125, 243.3077850341797; +379.47625732421875, 243.386474609375; +379.5762634277344, 243.47442626953125; +379.67626953125, 243.56954956054688; +379.7762451171875, 243.6713409423828; +379.8762512207031, 243.7783660888672; +379.9762268066406, 243.8858184814453; +380.07623291015625, 243.98992919921875; +380.1762390136719, 244.09054565429688; +380.2762145996094, 244.1887969970703; +380.376220703125, 244.2795867919922; +380.4761962890625, 244.35572814941406; +380.5762023925781, 244.41783142089844; +380.67620849609375, 244.47183227539062; +380.77618408203125, 244.52149963378906; +380.8761901855469, 244.56658935546875; +380.9761657714844, 244.60812377929688; +381.076171875, 244.6507110595703; +381.1761779785156, 244.6962432861328; +381.2761535644531, 244.7454376220703; +381.37615966796875, 244.7969970703125; +381.47613525390625, 244.8491668701172; +381.5761413574219, 244.902587890625; +381.6761169433594, 244.95814514160156; +381.776123046875, 245.01849365234375; +381.8761291503906, 245.0819091796875; +381.9761047363281, 245.14825439453125; +382.07611083984375, 245.21827697753906; +382.17608642578125, 245.29225158691406; +382.2760925292969, 245.3708953857422; +382.3760986328125, 245.45236206054688; +382.47607421875, 245.538818359375; +382.5760803222656, 245.6304931640625; +382.6760559082031, 245.72698974609375; +382.77606201171875, 245.8289794921875; +382.8760681152344, 245.93492126464844; +382.9760437011719, 246.04527282714844; +383.0760498046875, 246.1593017578125; +383.176025390625, 246.27655029296875; +383.2760314941406, 246.39781188964844; +383.37603759765625, 246.5216064453125; +383.47601318359375, 246.64703369140625; +383.5760192871094, 246.77386474609375; +383.6759948730469, 246.90127563476562; +383.7760009765625, 247.03021240234375; +383.8760070800781, 247.15829467773438; +383.9759826660156, 247.28268432617188; +384.07598876953125, 247.4056854248047; +384.17596435546875, 247.52806091308594; +384.2759704589844, 247.65077209472656; +384.3759765625, 247.77244567871094; +384.4759521484375, 247.894775390625; +384.5759582519531, 248.0204620361328; +384.6759338378906, 248.14627075195312; +384.77593994140625, 248.26959228515625; +384.8759460449219, 248.3905792236328; +384.9759216308594, 248.5102996826172; +385.075927734375, 248.62718200683594; +385.1759033203125, 248.7366485595703; +385.2759094238281, 248.83921813964844; +385.37591552734375, 248.94033813476562; +385.47589111328125, 249.0410919189453; +385.5758972167969, 249.14122009277344; +385.6758728027344, 249.24034118652344; +385.77587890625, 249.34263610839844; +385.8758544921875, 249.44827270507812; +385.9758605957031, 249.5548095703125; +386.07586669921875, 249.66275024414062; +386.17584228515625, 249.7730712890625; +386.2758483886719, 249.8862762451172; +386.3758239746094, 250.00099182128906; +386.475830078125, 250.1190185546875; +386.5758361816406, 250.24014282226562; +386.6758117675781, 250.36302185058594; +386.77581787109375, 250.48626708984375; +386.87579345703125, 250.60989379882812; +386.9757995605469, 250.7344970703125; +387.0758056640625, 250.86080932617188; +387.17578125, 250.9909210205078; +387.2757873535156, 251.1256561279297; +387.3757629394531, 251.2718963623047; +387.47576904296875, 251.4422149658203; +387.5757751464844, 251.65322875976562; +387.6757507324219, 251.92462158203125; +387.7757568359375, 252.28663635253906; +387.875732421875, 252.7852783203125; +387.9757385253906, 253.4673614501953; +388.07574462890625, 254.3763427734375; +388.17572021484375, 255.54881286621094; +388.2757263183594, 257.0085754394531; +388.3757019042969, 258.7508850097656; +388.4757080078125, 260.728515625; +388.5757141113281, 262.8557434082031; +388.6756896972656, 265.0129089355469; +388.77569580078125, 267.0634460449219; +388.87567138671875, 268.86846923828125; +388.9756774902344, 270.3076171875; +389.07568359375, 271.30035400390625; +389.1756591796875, 271.8204345703125; +389.2756652832031, 271.901123046875; +389.3756408691406, 271.6153564453125; +389.47564697265625, 271.0587463378906; +389.5756530761719, 270.3330078125; +389.6756286621094, 269.53155517578125; +389.775634765625, 268.7226867675781; +389.8756103515625, 267.93780517578125; +389.9756164550781, 267.18206787109375; +390.0755920410156, 266.4501647949219; +390.17559814453125, 265.7322998046875; +390.2756042480469, 265.0147399902344; +390.3755798339844, 264.28778076171875; +390.4755859375, 263.5542297363281; +390.5755615234375, 262.8318176269531; +390.6755676269531, 262.13995361328125; +390.77557373046875, 261.4952087402344; +390.87554931640625, 260.91046142578125; +390.9755554199219, 260.3948974609375; +391.0755310058594, 259.954345703125; +391.175537109375, 259.5841369628906; +391.2755432128906, 259.27618408203125; +391.3755187988281, 259.02056884765625; +391.47552490234375, 258.8099365234375; +391.57550048828125, 258.6385498046875; +391.6755065917969, 258.5011291503906; +391.7755126953125, 258.3956604003906; +391.87548828125, 258.31964111328125; +391.9754943847656, 258.2701416015625; +392.0754699707031, 258.24542236328125; +392.17547607421875, 258.2448425292969; +392.2754821777344, 258.267822265625; +392.3754577636719, 258.3125305175781; +392.4754638671875, 258.3760681152344; +392.575439453125, 258.457763671875; +392.6754455566406, 258.5530090332031; +392.77545166015625, 258.6558837890625; +392.87542724609375, 258.7578430175781; +392.9754333496094, 258.84771728515625; +393.0754089355469, 258.9170227050781; +393.1754150390625, 258.95989990234375; +393.2754211425781, 258.97686767578125; +393.3753967285156, 258.9717102050781; +393.47540283203125, 258.9515075683594; +393.57537841796875, 258.9266357421875; +393.6753845214844, 258.9043884277344; +393.775390625, 258.8884582519531; +393.8753662109375, 258.8819274902344; +393.9753723144531, 258.8880310058594; +394.0753479003906, 258.907958984375; +394.17535400390625, 258.94073486328125; +394.27532958984375, 258.9845275878906; +394.3753356933594, 259.03729248046875; +394.475341796875, 259.0974426269531; +394.5753173828125, 259.1602783203125; +394.6753234863281, 259.21978759765625; +394.7752990722656, 259.27203369140625; +394.87530517578125, 259.3179016113281; +394.9753112792969, 259.359619140625; +395.0752868652344, 259.3943176269531; +395.17529296875, 259.42193603515625; +395.2752685546875, 259.4488830566406; +395.3752746582031, 259.47991943359375; +395.47528076171875, 259.5176696777344; +395.57525634765625, 259.56475830078125; +395.6752624511719, 259.6283264160156; +395.7752380371094, 259.71612548828125; +395.875244140625, 259.8319396972656; +395.9752502441406, 259.9844055175781; +396.0752258300781, 260.1813049316406; +396.17523193359375, 260.4263000488281; +396.27520751953125, 260.7172546386719; +396.3752136230469, 261.0474853515625; +396.4752197265625, 261.4044494628906; +396.5751953125, 261.7623291015625; +396.6752014160156, 262.08831787109375; +396.7751770019531, 262.3536682128906; +396.87518310546875, 262.53814697265625; +396.9751892089844, 262.6254577636719; +397.0751647949219, 262.6065673828125; +397.1751708984375, 262.4858093261719; +397.275146484375, 262.28466796875; +397.3751525878906, 262.0281677246094; +397.47515869140625, 261.74169921875; +397.57513427734375, 261.4494934082031; +397.6751403808594, 261.17645263671875; +397.7751159667969, 260.9456481933594; +397.8751220703125, 260.7744445800781; +397.97509765625, 260.67962646484375; +398.0751037597656, 260.6697082519531; +398.17510986328125, 260.7494201660156; +398.27508544921875, 260.92230224609375; +398.3750915527344, 261.1897888183594; +398.4750671386719, 261.5461730957031; +398.5750732421875, 261.9736633300781; +398.6750793457031, 262.45196533203125; +398.7750549316406, 262.9560852050781; +398.87506103515625, 263.4503479003906; +398.97503662109375, 263.8948669433594; +399.0750427246094, 264.25347900390625; +399.175048828125, 264.5009765625; +399.2750244140625, 264.6216125488281; +399.3750305175781, 264.6117248535156; +399.4750061035156, 264.48431396484375; +399.57501220703125, 264.26116943359375; +399.6750183105469, 263.9700012207031; +399.7749938964844, 263.6378173828125; +399.875, 263.2882385253906; +399.9749755859375, 262.9418640136719; +400.0749816894531, 262.6131591796875; +400.17498779296875, 262.31158447265625; +400.27496337890625, 262.04022216796875; +400.3749694824219, 261.79913330078125; +400.4749450683594, 261.5884704589844; +400.574951171875, 261.40606689453125; +400.6749572753906, 261.24810791015625; +400.7749328613281, 261.1114196777344; +400.87493896484375, 260.9933166503906; +400.97491455078125, 260.89532470703125; +401.0749206542969, 260.81903076171875; +401.1749267578125, 260.76409912109375; +401.27490234375, 260.7270202636719; +401.3749084472656, 260.70556640625; +401.4748840332031, 260.6991271972656; +401.57489013671875, 260.7033386230469; +401.6748962402344, 260.7121276855469; +401.7748718261719, 260.72369384765625; +401.8748779296875, 260.74176025390625; +401.974853515625, 260.7669677734375; +402.0748596191406, 260.7957458496094; +402.1748352050781, 260.82452392578125; +402.27484130859375, 260.8544006347656; +402.3748474121094, 260.887451171875; +402.4748229980469, 260.9237365722656; +402.5748291015625, 260.9626770019531; +402.6748046875, 261.0061340332031; +402.7748107910156, 261.0581359863281; +402.87481689453125, 261.1204528808594; +402.97479248046875, 261.18994140625; +403.0747985839844, 261.26373291015625; +403.1747741699219, 261.344482421875; +403.2747802734375, 261.4364318847656; +403.3747863769531, 261.5393981933594; +403.4747619628906, 261.6493835449219; +403.57476806640625, 261.7646789550781; +403.67474365234375, 261.885498046875; +403.7747497558594, 262.0145263671875; +403.874755859375, 262.1552734375; +403.9747314453125, 262.3117980957031; +404.0747375488281, 262.4859619140625; +404.1747131347656, 262.6791687011719; +404.27471923828125, 262.8970642089844; +404.3747253417969, 263.14434814453125; +404.4747009277344, 263.423583984375; +404.57470703125, 263.7341613769531; +404.6746826171875, 264.077392578125; +404.7746887207031, 264.4593200683594; +404.87469482421875, 264.8827819824219; +404.97467041015625, 265.34759521484375; +405.0746765136719, 265.8529968261719; +405.1746520996094, 266.4053039550781; +405.274658203125, 267.0150451660156; +405.3746643066406, 267.6892395019531; +405.4746398925781, 268.4302673339844; +405.57464599609375, 269.2362365722656; +405.67462158203125, 270.1092224121094; +405.7746276855469, 271.0498962402344; +405.8746337890625, 272.0581359863281; +405.974609375, 273.12896728515625; +406.0746154785156, 274.25732421875; +406.1745910644531, 275.4402160644531; +406.27459716796875, 276.66943359375; +406.37457275390625, 277.9362487792969; +406.4745788574219, 279.2300720214844; +406.5745849609375, 280.5440368652344; +406.674560546875, 281.8709716796875; +406.7745666503906, 283.20819091796875; +406.8745422363281, 284.5541076660156; +406.97454833984375, 285.9015808105469; +407.0745544433594, 287.2431335449219; +407.1745300292969, 288.5739440917969; +407.2745361328125, 289.8960876464844; +407.37451171875, 291.2064208984375; +407.4745178222656, 292.50360107421875; +407.57452392578125, 293.7907409667969; +407.67449951171875, 295.0728454589844; +407.7745056152344, 296.3566589355469; +407.8744812011719, 297.65130615234375; +407.9744873046875, 298.96826171875; +408.0744934082031, 300.3137512207031; +408.1744689941406, 301.6888732910156; +408.27447509765625, 303.087890625; +408.37445068359375, 304.4923400878906; +408.4744567871094, 305.86492919921875; +408.574462890625, 307.1566162109375; +408.6744384765625, 308.3137512207031; +408.7744445800781, 309.2886962890625; +408.8744201660156, 310.0504150390625; +408.97442626953125, 310.582763671875; +409.0744323730469, 310.888916015625; +409.1744079589844, 310.99249267578125; +409.2744140625, 310.9413757324219; +409.3743896484375, 310.79229736328125; +409.4743957519531, 310.5919189453125; +409.57440185546875, 310.3809814453125; +409.67437744140625, 310.1953430175781; +409.7743835449219, 310.0635681152344; +409.8743591308594, 310.00079345703125; +409.974365234375, 310.0077209472656; +410.0743713378906, 310.0821838378906; +410.1743469238281, 310.22119140625; +410.27435302734375, 310.4206237792969; +410.37432861328125, 310.67327880859375; +410.4743347167969, 310.9662170410156; +410.5743103027344, 311.2893371582031; +410.67431640625, 311.6351013183594; +410.7743225097656, 311.9977111816406; +410.8742980957031, 312.37310791015625; +410.97430419921875, 312.7540588378906; +411.07427978515625, 313.1361389160156; +411.1742858886719, 313.51959228515625; +411.2742919921875, 313.9117431640625; +411.374267578125, 314.31829833984375; +411.4742736816406, 314.7362976074219; +411.5742492675781, 315.1665954589844; +411.67425537109375, 315.6145935058594; +411.7742614746094, 316.0848693847656; +411.8742370605469, 316.57098388671875; +411.9742431640625, 317.0650329589844; +412.07421875, 317.5697326660156; +412.1742248535156, 318.0892333984375; +412.27423095703125, 318.62005615234375; +412.37420654296875, 319.15606689453125; +412.4742126464844, 319.69818115234375; +412.5741882324219, 320.2517395019531; +412.6741943359375, 320.8188781738281; +412.7742004394531, 321.3992004394531; +412.8741760253906, 321.9981384277344; +412.97418212890625, 322.62152099609375; +413.07415771484375, 323.27630615234375; +413.1741638183594, 323.964599609375; +413.274169921875, 324.6863098144531; +413.3741455078125, 325.44561767578125; +413.4741516113281, 326.24609375; +413.5741271972656, 327.08843994140625; +413.67413330078125, 327.967529296875; +413.7741394042969, 328.8861083984375; +413.8741149902344, 329.8500671386719; +413.97412109375, 330.857666015625; +414.0740966796875, 331.905517578125; +414.1741027832031, 332.9970397949219; +414.2740783691406, 334.14154052734375; +414.37408447265625, 335.3394775390625; +414.4740905761719, 336.58746337890625; +414.5740661621094, 337.8885192871094; +414.674072265625, 339.24700927734375; +414.7740478515625, 340.66357421875; +414.8740539550781, 342.13421630859375; +414.97406005859375, 343.6595458984375; +415.07403564453125, 345.2432861328125; +415.1740417480469, 346.885009765625; +415.2740173339844, 348.58233642578125; +415.3740234375, 350.3356018066406; +415.4740295410156, 352.1531066894531; +415.5740051269531, 354.0440673828125; +415.67401123046875, 356.0130920410156; +415.77398681640625, 358.0649719238281; +415.8739929199219, 360.21185302734375; +415.9739990234375, 362.4707336425781; +416.073974609375, 364.85040283203125; +416.1739807128906, 367.3529968261719; +416.2739562988281, 369.98065185546875; +416.37396240234375, 372.7347412109375; +416.4739685058594, 375.6080627441406; +416.5739440917969, 378.5874938964844; +416.6739501953125, 381.66650390625; +416.77392578125, 384.846923828125; +416.8739318847656, 388.12677001953125; +416.97393798828125, 391.500244140625; +417.07391357421875, 394.9635925292969; +417.1739196777344, 398.5121154785156; +417.2738952636719, 402.13470458984375; +417.3739013671875, 405.80670166015625; +417.4739074707031, 409.51287841796875; +417.5738830566406, 413.24920654296875; +417.67388916015625, 417.011474609375; +417.77386474609375, 420.7823181152344; +417.8738708496094, 424.5389709472656; +417.973876953125, 428.2767639160156; +418.0738525390625, 431.9950866699219; +418.1738586425781, 435.6898498535156; +418.2738342285156, 439.3564147949219; +418.37384033203125, 443.0039978027344; +418.47381591796875, 446.65252685546875; +418.5738220214844, 450.30889892578125; +418.673828125, 453.97027587890625; +418.7738037109375, 457.6313171386719; +418.8738098144531, 461.2890319824219; +418.9737854003906, 464.9338073730469; +419.07379150390625, 468.55084228515625; +419.1737976074219, 472.1282653808594; +419.2737731933594, 475.6601257324219; +419.373779296875, 479.142822265625; +419.4737548828125, 482.57379150390625; +419.5737609863281, 485.9531555175781; +419.67376708984375, 489.2817077636719; +419.77374267578125, 492.5610046386719; +419.8737487792969, 495.7920227050781; +419.9737243652344, 498.9759826660156; +420.07373046875, 502.1122131347656; +420.1737365722656, 505.19805908203125; +420.2737121582031, 508.22222900390625; +420.37371826171875, 511.1700744628906; +420.47369384765625, 514.0261840820312; +420.5736999511719, 516.774169921875; +420.6737060546875, 519.3930053710938; +420.773681640625, 521.8612670898438; +420.8736877441406, 524.1671142578125; +420.9736633300781, 526.2989501953125; +421.07366943359375, 528.2442626953125; +421.1736755371094, 529.9889526367188; +421.2736511230469, 531.5224609375; +421.3736572265625, 532.8417358398438; +421.4736328125, 533.9404296875; +421.5736389160156, 534.8258666992188; +421.67364501953125, 535.505126953125; +421.77362060546875, 535.9837646484375; +421.8736267089844, 536.271240234375; +421.9736022949219, 536.3840942382812; +422.0736083984375, 536.3518676757812; +422.1736145019531, 536.1875; +422.2735900878906, 535.90576171875; +422.37359619140625, 535.531494140625; +422.47357177734375, 535.08935546875; +422.5735778808594, 534.5883178710938; +422.6735534667969, 534.0297241210938; +422.7735595703125, 533.4318237304688; +422.8735656738281, 532.8140258789062; +422.9735412597656, 532.1846313476562; +423.07354736328125, 531.548583984375; +423.17352294921875, 530.916259765625; +423.2735290527344, 530.3008422851562; +423.37353515625, 529.701904296875; +423.4735107421875, 529.1134643554688; +423.5735168457031, 528.5347900390625; +423.6734924316406, 527.9692993164062; +423.77349853515625, 527.427490234375; +423.8735046386719, 526.9154052734375; +423.9734802246094, 526.4457397460938; +424.073486328125, 526.0457153320312; +424.1734619140625, 525.7528076171875; +424.2734680175781, 525.6096801757812; +424.37347412109375, 525.6650390625; +424.47344970703125, 525.9904174804688; +424.5734558105469, 526.6822509765625; +424.6734313964844, 527.8524169921875; +424.7734375, 529.6365966796875; +424.8734436035156, 532.2171630859375; +424.9734191894531, 535.8486328125; +425.07342529296875, 540.874267578125; +425.17340087890625, 547.7632446289062; +425.2734069824219, 557.1336059570312; +425.3734130859375, 569.7763671875; +425.473388671875, 586.6414184570312; +425.5733947753906, 608.7677001953125; +425.6733703613281, 637.1513671875; +425.77337646484375, 672.5382690429688; +425.8733825683594, 715.1947631835938; +425.9733581542969, 764.6591796875; +426.0733642578125, 819.4913330078125; +426.17333984375, 877.1937255859375; +426.2733459472656, 934.3064575195312; +426.37335205078125, 986.7135620117188; +426.47332763671875, 1030.075927734375; +426.5733337402344, 1060.34423828125; +426.6733093261719, 1074.3798828125; +426.7733154296875, 1070.4041748046875; +426.873291015625, 1048.25244140625; +426.9732971191406, 1009.3447875976562; +427.07330322265625, 956.4680786132812; +427.17327880859375, 893.3897094726562; +427.2732849121094, 824.3215942382812; +427.3732604980469, 753.4015502929688; +427.4732666015625, 684.2565307617188; +427.5732727050781, 619.7241821289062; +427.6732482910156, 561.7167358398438; +427.77325439453125, 511.24102783203125; +427.87322998046875, 468.5299072265625; +427.9732360839844, 433.2291259765625; +428.0732421875, 404.6000671386719; +428.1732177734375, 381.71044921875; +428.2732238769531, 363.5923156738281; +428.3731994628906, 349.335693359375; +428.47320556640625, 338.1424255371094; +428.5732116699219, 329.3443908691406; +428.6731872558594, 322.40606689453125; +428.773193359375, 316.9137268066406; +428.8731689453125, 312.5470275878906; +428.9731750488281, 309.0654296875; +429.07318115234375, 306.2850036621094; +429.17315673828125, 304.067626953125; +429.2731628417969, 302.30279541015625; +429.3731384277344, 300.899169921875; +429.47314453125, 299.78778076171875; +429.5731506347656, 298.91070556640625; +429.6731262207031, 298.21746826171875; +429.77313232421875, 297.6612548828125; +429.87310791015625, 297.20941162109375; +429.9731140136719, 296.8363342285156; +430.0731201171875, 296.5200500488281; +430.173095703125, 296.2421569824219; +430.2731018066406, 295.9891357421875; +430.3730773925781, 295.7507019042969; +430.47308349609375, 295.51708984375; +430.57305908203125, 295.28118896484375; +430.6730651855469, 295.0398254394531; +430.7730712890625, 294.7943115234375; +430.873046875, 294.5473937988281; +430.9730529785156, 294.30267333984375; +431.0730285644531, 294.0640869140625; +431.17303466796875, 293.83819580078125; +431.2730407714844, 293.62847900390625; +431.3730163574219, 293.43438720703125; +431.4730224609375, 293.2584228515625; +431.572998046875, 293.10479736328125; +431.6730041503906, 292.9755554199219; +431.77301025390625, 292.8660583496094; +431.87298583984375, 292.7722473144531; +431.9729919433594, 292.6942138671875; +432.0729675292969, 292.6300048828125; +432.1729736328125, 292.5774841308594; +432.2729797363281, 292.5325622558594; +432.3729553222656, 292.49383544921875; +432.47296142578125, 292.4610290527344; +432.57293701171875, 292.4336853027344; +432.6729431152344, 292.4129333496094; +432.77294921875, 292.3960266113281; +432.8729248046875, 292.3843688964844; +432.9729309082031, 292.3774719238281; +433.0729064941406, 292.3736267089844; +433.17291259765625, 292.37298583984375; +433.2729187011719, 292.376220703125; +433.3728942871094, 292.3858947753906; +433.472900390625, 292.39837646484375; +433.5728759765625, 292.4140319824219; +433.6728820800781, 292.43670654296875; +433.77288818359375, 292.4673156738281; +433.87286376953125, 292.50262451171875; +433.9728698730469, 292.5392761230469; +434.0728454589844, 292.58123779296875; +434.1728515625, 292.6318054199219; +434.2728576660156, 292.68927001953125; +434.3728332519531, 292.7509460449219; +434.47283935546875, 292.8134460449219; +434.57281494140625, 292.8768615722656; +434.6728210449219, 292.9404296875; +434.7727966308594, 293.00341796875; +434.872802734375, 293.0670166015625; +434.9728088378906, 293.1292724609375; +435.0727844238281, 293.1899108886719; +435.17279052734375, 293.24957275390625; +435.27276611328125, 293.3124084472656; +435.3727722167969, 293.3827819824219; +435.4727783203125, 293.46014404296875; +435.57275390625, 293.5450744628906; +435.6727600097656, 293.6370849609375; +435.7727355957031, 293.7342224121094; +435.87274169921875, 293.8319396972656; +435.9727478027344, 293.92718505859375; +436.0727233886719, 294.021728515625; +436.1727294921875, 294.11602783203125; +436.272705078125, 294.2125549316406; +436.3727111816406, 294.3153076171875; +436.47271728515625, 294.4266357421875; +436.57269287109375, 294.5459899902344; +436.6726989746094, 294.6709899902344; +436.7726745605469, 294.8035583496094; +436.8726806640625, 294.94976806640625; +436.9726867675781, 295.1148681640625; +437.0726623535156, 295.3058166503906; +437.17266845703125, 295.5308532714844; +437.27264404296875, 295.7978210449219; +437.3726501464844, 296.1201171875; +437.47265625, 296.5079040527344; +437.5726318359375, 296.96527099609375; +437.6726379394531, 297.48931884765625; +437.7726135253906, 298.0755615234375; +437.87261962890625, 298.7207336425781; +437.9726257324219, 299.40667724609375; +438.0726013183594, 300.1032409667969; +438.172607421875, 300.7791442871094; +438.2725830078125, 301.4066162109375; +438.3725891113281, 301.9561767578125; +438.47259521484375, 302.3969421386719; +438.57257080078125, 302.70361328125; +438.6725769042969, 302.8643493652344; +438.7725524902344, 302.87738037109375; +438.87255859375, 302.74920654296875; +438.9725341796875, 302.49224853515625; +439.0725402832031, 302.1255798339844; +439.17254638671875, 301.6776123046875; +439.27252197265625, 301.1812744140625; +439.3725280761719, 300.6647644042969; +439.4725036621094, 300.14849853515625; +439.572509765625, 299.6535949707031; +439.6725158691406, 299.197998046875; +439.7724914550781, 298.7920837402344; +439.87249755859375, 298.4368591308594; +439.97247314453125, 298.1322937011719; +440.0724792480469, 297.8765869140625; +440.1724853515625, 297.6612243652344; +440.2724609375, 297.47857666015625; +440.3724670410156, 297.32464599609375; +440.4724426269531, 297.1930847167969; +440.57244873046875, 297.0776672363281; +440.6724548339844, 296.9765930175781; +440.7724304199219, 296.8932189941406; +440.8724365234375, 296.8240661621094; +440.972412109375, 296.7591857910156; +441.0724182128906, 296.6963806152344; +441.17242431640625, 296.6370544433594; +441.27239990234375, 296.5830078125; +441.3724060058594, 296.5297546386719; +441.4723815917969, 296.4763488769531; +441.5723876953125, 296.4295349121094; +441.6723937988281, 296.3956298828125; +441.7723693847656, 296.37396240234375; +441.87237548828125, 296.3578186035156; +441.97235107421875, 296.3448486328125; +442.0723571777344, 296.3385925292969; +442.17236328125, 296.34027099609375; +442.2723388671875, 296.3444519042969; +442.3723449707031, 296.3490295410156; +442.4723205566406, 296.35662841796875; +442.57232666015625, 296.3725280761719; +442.6723327636719, 296.3968505859375; +442.7723083496094, 296.4286193847656; +442.872314453125, 296.46826171875; +442.9722900390625, 296.5146789550781; +443.0722961425781, 296.5672912597656; +443.1722717285156, 296.6258239746094; +443.27227783203125, 296.6880798339844; +443.3722839355469, 296.74871826171875; +443.4722595214844, 296.8025817871094; +443.572265625, 296.84661865234375; +443.6722412109375, 296.8788146972656; +443.7722473144531, 296.89422607421875; +443.87225341796875, 296.8870849609375; +443.97222900390625, 296.8507080078125; +444.0722351074219, 296.78619384765625; +444.1722106933594, 296.7037353515625; +444.272216796875, 296.6136474609375; +444.3722229003906, 296.5211486816406; +444.4721984863281, 296.4271545410156; +444.57220458984375, 296.33642578125; +444.67218017578125, 296.2557373046875; +444.7721862792969, 296.18572998046875; +444.8721923828125, 296.1242370605469; +444.97216796875, 296.0715026855469; +445.0721740722656, 296.0333251953125; +445.1721496582031, 296.0129699707031; +445.27215576171875, 296.0080871582031; +445.3721618652344, 296.0149230957031; +445.4721374511719, 296.0293884277344; +445.5721435546875, 296.048583984375; +445.672119140625, 296.0715026855469; +445.7721252441406, 296.1001281738281; +445.87213134765625, 296.1332702636719; +445.97210693359375, 296.167724609375; +446.0721130371094, 296.20294189453125; +446.1720886230469, 296.23992919921875; +446.2720947265625, 296.2776794433594; +446.3721008300781, 296.3132019042969; +446.4720764160156, 296.3453063964844; +446.57208251953125, 296.3763122558594; +446.67205810546875, 296.4069519042969; +446.7720642089844, 296.43609619140625; +446.8720397949219, 296.46197509765625; +446.9720458984375, 296.4842529296875; +447.0720520019531, 296.5022888183594; +447.1720275878906, 296.51287841796875; +447.27203369140625, 296.51336669921875; +447.37200927734375, 296.5028991699219; +447.4720153808594, 296.486083984375; +447.572021484375, 296.46728515625; +447.6719970703125, 296.4502868652344; +447.7720031738281, 296.4355163574219; +447.8719787597656, 296.42401123046875; +447.97198486328125, 296.41729736328125; +448.0719909667969, 296.41192626953125; +448.1719665527344, 296.4044494628906; +448.27197265625, 296.3940734863281; +448.3719482421875, 296.3857421875; +448.4719543457031, 296.3798522949219; +448.57196044921875, 296.3763427734375; +448.67193603515625, 296.3764343261719; +448.7719421386719, 296.38055419921875; +448.8719177246094, 296.3875427246094; +448.971923828125, 296.3934326171875; +449.0719299316406, 296.3999328613281; +449.1719055175781, 296.4070739746094; +449.27191162109375, 296.4159240722656; +449.37188720703125, 296.4277648925781; +449.4718933105469, 296.44268798828125; +449.5718994140625, 296.4594421386719; +449.671875, 296.47418212890625; +449.7718811035156, 296.4849853515625; +449.8718566894531, 296.4940185546875; +449.97186279296875, 296.5024108886719; +450.0718688964844, 296.5086364746094; +450.1718444824219, 296.5113525390625; +450.2718505859375, 296.5146484375; +450.371826171875, 296.5245666503906; +450.4718322753906, 296.5390930175781; +450.57183837890625, 296.5539855957031; +450.67181396484375, 296.5721740722656; +450.7718200683594, 296.6000671386719; +450.8717956542969, 296.6376647949219; +450.9718017578125, 296.6790771484375; +451.07177734375, 296.72332763671875; +451.1717834472656, 296.7735290527344; +451.27178955078125, 296.8277893066406; +451.37176513671875, 296.880615234375; +451.4717712402344, 296.92999267578125; +451.5717468261719, 296.97784423828125; +451.6717529296875, 297.02239990234375; +451.7717590332031, 297.0619201660156; +451.8717346191406, 297.09527587890625; +451.97174072265625, 297.1226501464844; +452.07171630859375, 297.1440734863281; +452.1717224121094, 297.1578063964844; +452.271728515625, 297.1656494140625; +452.3717041015625, 297.16558837890625; +452.4717102050781, 297.1558837890625; +452.5716857910156, 297.1383972167969; +452.67169189453125, 297.1150817871094; +452.7716979980469, 297.0908508300781; +452.8716735839844, 297.06378173828125; +452.9716796875, 297.03485107421875; +453.0716552734375, 297.0077819824219; +453.1716613769531, 296.9856262207031; +453.27166748046875, 296.9693298339844; +453.37164306640625, 296.9557800292969; +453.4716491699219, 296.9482727050781; +453.5716247558594, 296.95172119140625; +453.671630859375, 296.9689636230469; +453.7716369628906, 297.0003662109375; +453.8716125488281, 297.0470886230469; +453.97161865234375, 297.1116638183594; +454.07159423828125, 297.1952209472656; +454.1716003417969, 297.2971496582031; +454.2716064453125, 297.4172668457031; +454.37158203125, 297.55596923828125; +454.4715881347656, 297.7111511230469; +454.5715637207031, 297.8811340332031; +454.67156982421875, 298.0654602050781; +454.7715759277344, 298.2606506347656; +454.8715515136719, 298.4568786621094; +454.9715576171875, 298.64093017578125; +455.071533203125, 298.8030700683594; +455.1715393066406, 298.9351501464844; +455.2715148925781, 299.02655029296875; +455.37152099609375, 299.0686950683594; +455.4715270996094, 299.062744140625; +455.5715026855469, 299.01361083984375; +455.6715087890625, 298.9256286621094; +455.771484375, 298.7991638183594; +455.8714904785156, 298.6400146484375; +455.97149658203125, 298.46014404296875; +456.07147216796875, 298.26873779296875; +456.1714782714844, 298.0744934082031; +456.2714538574219, 297.8845520019531; +456.3714599609375, 297.7095642089844; +456.4714660644531, 297.5580139160156; +456.5714416503906, 297.43353271484375; +456.67144775390625, 297.3360595703125; +456.77142333984375, 297.2612609863281; +456.8714294433594, 297.2055969238281; +456.971435546875, 297.1674499511719; +457.0714111328125, 297.14501953125; +457.1714172363281, 297.1341552734375; +457.2713928222656, 297.1322937011719; +457.37139892578125, 297.14208984375; +457.4714050292969, 297.1661682128906; +457.5713806152344, 297.2032165527344; +457.67138671875, 297.2497253417969; +457.7713623046875, 297.3045654296875; +457.8713684082031, 297.3699035644531; +457.97137451171875, 297.4464416503906; +458.07135009765625, 297.5334777832031; +458.1713562011719, 297.62725830078125; +458.2713317871094, 297.7257995605469; +458.371337890625, 297.8312072753906; +458.4713439941406, 297.94390869140625; +458.5713195800781, 298.0588684082031; +458.67132568359375, 298.16766357421875; +458.77130126953125, 298.2655029296875; +458.8713073730469, 298.35205078125; +458.9713134765625, 298.4227294921875; +459.0712890625, 298.4704895019531; +459.1712951660156, 298.490966796875; +459.2712707519531, 298.4869384765625; +459.37127685546875, 298.4635314941406; +459.47125244140625, 298.4225158691406; +459.5712585449219, 298.36688232421875; +459.6712646484375, 298.3006591796875; +459.771240234375, 298.2292785644531; +459.8712463378906, 298.1567077636719; +459.9712219238281, 298.08721923828125; +460.07122802734375, 298.0224609375; +460.1712341308594, 297.9620056152344; +460.2712097167969, 297.90582275390625; +460.3712158203125, 297.8584289550781; +460.47119140625, 297.82257080078125; +460.5711975097656, 297.7960510253906; +460.67120361328125, 297.7806396484375; +460.77117919921875, 297.7791748046875; +460.8711853027344, 297.79010009765625; +460.9711608886719, 297.8069763183594; +461.0711669921875, 297.8280029296875; +461.1711730957031, 297.8570556640625; +461.2711486816406, 297.89105224609375; +461.37115478515625, 297.92327880859375; +461.47113037109375, 297.95526123046875; +461.5711364746094, 297.98974609375; +461.671142578125, 298.0229187011719; +461.7711181640625, 298.0503845214844; +461.8711242675781, 298.07342529296875; +461.9710998535156, 298.0962219238281; +462.07110595703125, 298.1165466308594; +462.1711120605469, 298.1340637207031; +462.2710876464844, 298.1537780761719; +462.37109375, 298.1759948730469; +462.4710693359375, 298.1965026855469; +462.5710754394531, 298.2123718261719; +462.67108154296875, 298.2251281738281; +462.77105712890625, 298.23748779296875; +462.8710632324219, 298.2498474121094; +462.9710388183594, 298.2606201171875; +463.071044921875, 298.2713928222656; +463.1710205078125, 298.28314208984375; +463.2710266113281, 298.2967834472656; +463.37103271484375, 298.3095397949219; +463.47100830078125, 298.3184509277344; +463.5710144042969, 298.3244934082031; +463.6709899902344, 298.3324279785156; +463.77099609375, 298.3453369140625; +463.8710021972656, 298.3620910644531; +463.9709777832031, 298.3818664550781; +464.07098388671875, 298.4049987792969; +464.17095947265625, 298.4319763183594; +464.2709655761719, 298.4552001953125; +464.3709716796875, 298.4700622558594; +464.470947265625, 298.47900390625; +464.5709533691406, 298.4859619140625; +464.6709289550781, 298.4936218261719; +464.77093505859375, 298.5002746582031; +464.8709411621094, 298.50958251953125; +464.9709167480469, 298.524169921875; +465.0709228515625, 298.5426330566406; +465.1708984375, 298.5605773925781; +465.2709045410156, 298.57427978515625; +465.37091064453125, 298.588623046875; +465.47088623046875, 298.6061706542969; +465.5708923339844, 298.62542724609375; +465.6708679199219, 298.6427917480469; +465.7708740234375, 298.660400390625; +465.8708801269531, 298.68402099609375; +465.9708557128906, 298.7110900878906; +466.07086181640625, 298.73553466796875; +466.17083740234375, 298.75592041015625; +466.2708435058594, 298.7768859863281; +466.370849609375, 298.80120849609375; +466.4708251953125, 298.82513427734375; +466.5708312988281, 298.8476867675781; +466.6708068847656, 298.871826171875; +466.77081298828125, 298.8985595703125; +466.8708190917969, 298.923095703125; +466.9707946777344, 298.94256591796875; +467.07080078125, 298.9570007324219; +467.1707763671875, 298.9667663574219; +467.2707824707031, 298.9706726074219; +467.3707580566406, 298.9679870605469; +467.47076416015625, 298.96295166015625; +467.5707702636719, 298.955078125; +467.6707458496094, 298.9452209472656; +467.770751953125, 298.9317932128906; +467.8707275390625, 298.91754150390625; +467.9707336425781, 298.9068908691406; +468.07073974609375, 298.89788818359375; +468.17071533203125, 298.8894958496094; +468.2707214355469, 298.88079833984375; +468.3706970214844, 298.8759765625; +468.470703125, 298.8741455078125; +468.5707092285156, 298.8713073730469; +468.6706848144531, 298.8702392578125; +468.77069091796875, 298.8734130859375; +468.87066650390625, 298.87908935546875; +468.9706726074219, 298.8843688964844; +469.0706787109375, 298.89208984375; +469.170654296875, 298.908935546875; +469.2706604003906, 298.93267822265625; +469.3706359863281, 298.9588928222656; +469.47064208984375, 298.98577880859375; +469.5706481933594, 299.014892578125; +469.6706237792969, 299.04913330078125; +469.7706298828125, 299.0874328613281; +469.87060546875, 299.12908935546875; +469.9706115722656, 299.17352294921875; +470.07061767578125, 299.22271728515625; +470.17059326171875, 299.2768249511719; +470.2705993652344, 299.3326416015625; +470.3705749511719, 299.38677978515625; +470.4705810546875, 299.439208984375; +470.5705871582031, 299.4910583496094; +470.6705627441406, 299.5423889160156; +470.77056884765625, 299.5915222167969; +470.87054443359375, 299.63677978515625; +470.9705505371094, 299.6745300292969; +471.070556640625, 299.7021179199219; +471.1705322265625, 299.7201232910156; +471.2705383300781, 299.730712890625; +471.3705139160156, 299.73590087890625; +471.47052001953125, 299.73345947265625; +471.57049560546875, 299.7275695800781; +471.6705017089844, 299.7219543457031; +471.7705078125, 299.71942138671875; +471.8704833984375, 299.7225341796875; +471.9704895019531, 299.73199462890625; +472.0704650878906, 299.750244140625; +472.17047119140625, 299.7734069824219; +472.2704772949219, 299.7997131347656; +472.3704528808594, 299.8291015625; +472.470458984375, 299.85888671875; +472.5704345703125, 299.8881530761719; +472.6704406738281, 299.9141845703125; +472.77044677734375, 299.93682861328125; +472.87042236328125, 299.9530334472656; +472.9704284667969, 299.96087646484375; +473.0704040527344, 299.962646484375; +473.17041015625, 299.9612121582031; +473.2704162597656, 299.9608154296875; +473.3703918457031, 299.9622497558594; +473.47039794921875, 299.96966552734375; +473.57037353515625, 299.98681640625; +473.6703796386719, 300.0154724121094; +473.7703857421875, 300.05462646484375; +473.870361328125, 300.1012878417969; +473.9703674316406, 300.1573791503906; +474.0703430175781, 300.2236022949219; +474.17034912109375, 300.2972106933594; +474.2703552246094, 300.3751525878906; +474.3703308105469, 300.4552917480469; +474.4703369140625, 300.53656005859375; +474.5703125, 300.61328125; +474.6703186035156, 300.67950439453125; +474.77032470703125, 300.73162841796875; +474.87030029296875, 300.7647399902344; +474.9703063964844, 300.7716979980469; +475.0702819824219, 300.748291015625; +475.1702880859375, 300.6963195800781; +475.2702941894531, 300.61798095703125; +475.3702697753906, 300.5152587890625; +475.47027587890625, 300.3891296386719; +475.57025146484375, 300.2446594238281; +475.6702575683594, 300.08636474609375; +475.7702331542969, 299.9232177734375; +475.8702392578125, 299.76513671875; +475.9702453613281, 299.61614990234375; +476.0702209472656, 299.4772033691406; +476.17022705078125, 299.3487243652344; +476.27020263671875, 299.2359619140625; +476.3702087402344, 299.1387939453125; +476.47021484375, 299.052490234375; +476.5701904296875, 298.9771728515625; +476.6701965332031, 298.9163513183594; +476.7701721191406, 298.874267578125; +476.87017822265625, 298.84967041015625; +476.9701843261719, 298.8377380371094; +477.0701599121094, 298.8363952636719; +477.170166015625, 298.8431091308594; +477.2701416015625, 298.8585205078125; +477.3701477050781, 298.8818664550781; +477.47015380859375, 298.9062805175781; +477.57012939453125, 298.9282531738281; +477.6701354980469, 298.9503479003906; +477.7701110839844, 298.97784423828125; +477.8701171875, 299.0098571777344; +477.9701232910156, 299.0400390625; +478.0700988769531, 299.07098388671875; +478.17010498046875, 299.1057434082031; +478.27008056640625, 299.1409912109375; +478.3700866699219, 299.1717529296875; +478.4700927734375, 299.1968078613281; +478.570068359375, 299.22259521484375; +478.6700744628906, 299.2515869140625; +478.7700500488281, 299.2828063964844; +478.87005615234375, 299.317626953125; +478.9700622558594, 299.3585205078125; +479.0700378417969, 299.4075927734375; +479.1700439453125, 299.46044921875; +479.27001953125, 299.5113525390625; +479.3700256347656, 299.5575256347656; +479.47003173828125, 299.59832763671875; +479.57000732421875, 299.6323547363281; +479.6700134277344, 299.6588439941406; +479.7699890136719, 299.67962646484375; +479.8699951171875, 299.6982421875; +479.969970703125, 299.7193603515625; +480.0699768066406, 299.743896484375; +480.16998291015625, 299.7701416015625; +480.26995849609375, 299.7940673828125; +480.3699645996094, 299.8133850097656; +480.4699401855469, 299.8314208984375; +480.5699462890625, 299.8475341796875; +480.6699523925781, 299.8604736328125; +480.7699279785156, 299.86981201171875; +480.86993408203125, 299.8766174316406; +480.96990966796875, 299.8853454589844; +481.0699157714844, 299.89288330078125; +481.169921875, 299.89715576171875; +481.2698974609375, 299.897216796875; +481.3699035644531, 299.8948059082031; +481.4698791503906, 299.89532470703125; +481.56988525390625, 299.8999938964844; +481.6698913574219, 299.9102783203125; +481.7698669433594, 299.92669677734375; +481.869873046875, 299.9469299316406; +481.9698486328125, 299.9686584472656; +482.0698547363281, 299.9898986816406; +482.16986083984375, 300.01104736328125; +482.26983642578125, 300.0323486328125; +482.3698425292969, 300.05255126953125; +482.4698181152344, 300.0730285644531; +482.56982421875, 300.0963439941406; +482.6698303222656, 300.12213134765625; +482.7698059082031, 300.1461486816406; +482.86981201171875, 300.1665954589844; +482.96978759765625, 300.1862487792969; +483.0697937011719, 300.2096862792969; +483.1697998046875, 300.2341613769531; +483.269775390625, 300.2550048828125; +483.3697814941406, 300.27099609375; +483.4697570800781, 300.2847900390625; +483.56976318359375, 300.2967529296875; +483.66973876953125, 300.3044128417969; +483.7697448730469, 300.3111572265625; +483.8697509765625, 300.3188781738281; +483.9697265625, 300.3300476074219; +484.0697326660156, 300.34228515625; +484.1697082519531, 300.3565368652344; +484.26971435546875, 300.3739013671875; +484.3697204589844, 300.39398193359375; +484.4696960449219, 300.418212890625; +484.5697021484375, 300.4464416503906; +484.669677734375, 300.4818420410156; +484.7696838378906, 300.5241394042969; +484.86968994140625, 300.5711364746094; +484.96966552734375, 300.6163024902344; +485.0696716308594, 300.6573791503906; +485.1696472167969, 300.695556640625; +485.2696533203125, 300.7326354980469; +485.3696594238281, 300.76983642578125; +485.4696350097656, 300.8099365234375; +485.56964111328125, 300.8590087890625; +485.66961669921875, 300.917724609375; +485.7696228027344, 300.9828796386719; +485.86962890625, 301.0505065917969; +485.9696044921875, 301.11859130859375; +486.0696105957031, 301.186279296875; +486.1695861816406, 301.2519226074219; +486.26959228515625, 301.3160095214844; +486.3695983886719, 301.3802795410156; +486.4695739746094, 301.44342041015625; +486.569580078125, 301.5030517578125; +486.6695556640625, 301.55609130859375; +486.7695617675781, 301.60107421875; +486.86956787109375, 301.63623046875; +486.96954345703125, 301.65863037109375; +487.0695495605469, 301.66754150390625; +487.1695251464844, 301.6617736816406; +487.26953125, 301.639892578125; +487.3695373535156, 301.601806640625; +487.4695129394531, 301.5500183105469; +487.56951904296875, 301.48724365234375; +487.66949462890625, 301.41455078125; +487.7695007324219, 301.33526611328125; +487.8694763183594, 301.2541198730469; +487.969482421875, 301.171630859375; +488.0694885253906, 301.08447265625; +488.1694641113281, 300.993408203125; +488.26947021484375, 300.90106201171875; +488.36944580078125, 300.8082580566406; +488.4694519042969, 300.7162780761719; +488.5694580078125, 300.62750244140625; +488.66943359375, 300.54486083984375; +488.7694396972656, 300.4683837890625; +488.8694152832031, 300.3978576660156; +488.96942138671875, 300.33428955078125; +489.0694274902344, 300.27532958984375; +489.1694030761719, 300.2209167480469; +489.2694091796875, 300.1706848144531; +489.369384765625, 300.12542724609375; +489.4693908691406, 300.0863037109375; +489.56939697265625, 300.0513000488281; +489.66937255859375, 300.0202331542969; +489.7693786621094, 299.9903564453125; +489.8693542480469, 299.96112060546875; +489.9693603515625, 299.93310546875; +490.0693664550781, 299.9059753417969; +490.1693420410156, 299.8818359375; +490.26934814453125, 299.85931396484375; +490.36932373046875, 299.8393249511719; +490.4693298339844, 299.8248596191406; +490.5693359375, 299.81451416015625; +490.6693115234375, 299.8040466308594; +490.7693176269531, 299.7906799316406; +490.8692932128906, 299.7779235839844; +490.96929931640625, 299.76934814453125; +491.0693054199219, 299.7629089355469; +491.1692810058594, 299.7582702636719; +491.269287109375, 299.756591796875; +491.3692626953125, 299.7582702636719; +491.4692687988281, 299.7622375488281; +491.56927490234375, 299.76824951171875; +491.66925048828125, 299.7763977050781; +491.7692565917969, 299.7857971191406; +491.8692321777344, 299.7972106933594; +491.96923828125, 299.8128662109375; +492.0692138671875, 299.8366394042969; +492.1692199707031, 299.8713684082031; +492.26922607421875, 299.91644287109375; +492.36920166015625, 299.9687194824219; +492.4692077636719, 300.027587890625; +492.5691833496094, 300.09429931640625; +492.669189453125, 300.1675109863281; +492.7691955566406, 300.24322509765625; +492.8691711425781, 300.3242492675781; +492.96917724609375, 300.41583251953125; +493.06915283203125, 300.5189208984375; +493.1691589355469, 300.63055419921875; +493.2691650390625, 300.7498779296875; +493.369140625, 300.8789367675781; +493.4691467285156, 301.0142822265625; +493.5691223144531, 301.15350341796875; +493.66912841796875, 301.2967529296875; +493.7691345214844, 301.4443664550781; +493.8691101074219, 301.5885314941406; +493.9691162109375, 301.71856689453125; +494.069091796875, 301.830078125; +494.1690979003906, 301.9247131347656; +494.26910400390625, 302.0031433105469; +494.36907958984375, 302.06170654296875; +494.4690856933594, 302.09979248046875; +494.5690612792969, 302.1195983886719; +494.6690673828125, 302.12115478515625; +494.7690734863281, 302.1002197265625; +494.8690490722656, 302.0538024902344; +494.96905517578125, 301.9859313964844; +495.06903076171875, 301.90386962890625; +495.1690368652344, 301.8131408691406; +495.26904296875, 301.7197570800781; +495.3690185546875, 301.6286315917969; +495.4690246582031, 301.5434875488281; +495.5690002441406, 301.4642333984375; +495.66900634765625, 301.3885803222656; +495.7690124511719, 301.31689453125; +495.8689880371094, 301.2500915527344; +495.968994140625, 301.1896057128906; +496.0689697265625, 301.13555908203125; +496.1689758300781, 301.08819580078125; +496.2689514160156, 301.0507507324219; +496.36895751953125, 301.0268249511719; +496.4689636230469, 301.0148010253906; +496.5689392089844, 301.00927734375; +496.6689453125, 301.006591796875; +496.7689208984375, 301.00628662109375; +496.8689270019531, 301.00762939453125; +496.96893310546875, 301.0077209472656; +497.06890869140625, 301.005615234375; +497.1689147949219, 301.0025634765625; +497.2688903808594, 300.9994812011719; +497.368896484375, 300.9974060058594; +497.4689025878906, 300.9957275390625; +497.5688781738281, 300.9937744140625; +497.66888427734375, 300.9900207519531; +497.76885986328125, 300.98675537109375; +497.8688659667969, 300.98553466796875; +497.9688720703125, 300.98822021484375; +498.06884765625, 300.9937744140625; +498.1688537597656, 301.0021057128906; +498.2688293457031, 301.0146484375; +498.36883544921875, 301.02880859375; +498.4688415527344, 301.0413818359375; +498.5688171386719, 301.0488586425781; +498.6688232421875, 301.0546875; +498.768798828125, 301.0616455078125; +498.8688049316406, 301.0715637207031; +498.96881103515625, 301.08404541015625; +499.06878662109375, 301.0992126464844; +499.1687927246094, 301.1154479980469; +499.2687683105469, 301.1309814453125; +499.3687744140625, 301.1447448730469; +499.4687805175781, 301.15716552734375; +499.5687561035156, 301.1703186035156; +499.66876220703125, 301.18603515625; +499.76873779296875, 301.2064514160156; +499.8687438964844, 301.228515625; +499.9687194824219, 301.2499694824219; +500.0687255859375, 301.2721862792969; +500.1687316894531, 301.29888916015625; +500.2687072753906, 301.3319091796875; +500.36871337890625, 301.3691101074219; +500.46868896484375, 301.4093322753906; +500.5686950683594, 301.4541931152344; +500.668701171875, 301.5029296875; +500.7686767578125, 301.5532531738281; +500.8686828613281, 301.6055603027344; +500.9686584472656, 301.6627502441406; +501.06866455078125, 301.72711181640625; +501.1686706542969, 301.796875; +501.2686462402344, 301.87054443359375; +501.36865234375, 301.947021484375; +501.4686279296875, 302.0217590332031; +501.5686340332031, 302.0889587402344; +501.66864013671875, 302.1473388671875; +501.76861572265625, 302.1983337402344; +501.8686218261719, 302.24163818359375; +501.9685974121094, 302.27508544921875; +502.068603515625, 302.29852294921875; +502.1686096191406, 302.3151550292969; +502.2685852050781, 302.3277893066406; +502.36859130859375, 302.3348083496094; +502.46856689453125, 302.3332214355469; +502.5685729980469, 302.322265625; +502.6685791015625, 302.30328369140625; +502.7685546875, 302.2774963378906; +502.8685607910156, 302.2459716796875; +502.9685363769531, 302.21221923828125; +503.06854248046875, 302.1800537109375; +503.1685485839844, 302.1503601074219; +503.2685241699219, 302.1218566894531; +503.3685302734375, 302.09503173828125; +503.468505859375, 302.0686340332031; +503.5685119628906, 302.039306640625; +503.66851806640625, 302.0055847167969; +503.76849365234375, 301.9701843261719; +503.8684997558594, 301.9382629394531; +503.9684753417969, 301.9125061035156; +504.0684814453125, 301.8916320800781; +504.16845703125, 301.8755187988281; +504.2684631347656, 301.8653259277344; +504.36846923828125, 301.8601989746094; +504.46844482421875, 301.8570861816406; +504.5684509277344, 301.853271484375; +504.6684265136719, 301.8531188964844; +504.7684326171875, 301.8591613769531; +504.8684387207031, 301.8664855957031; +504.9684143066406, 301.8725280761719; +505.06842041015625, 301.8812255859375; +505.16839599609375, 301.89569091796875; +505.2684020996094, 301.9115905761719; +505.368408203125, 301.9259338378906; +505.4683837890625, 301.9452819824219; +505.5683898925781, 301.9706115722656; +505.6683654785156, 301.9951171875; +505.76837158203125, 302.0133972167969; +505.8683776855469, 302.0275573730469; +505.9683532714844, 302.04119873046875; +506.068359375, 302.052490234375; +506.1683349609375, 302.0630798339844; +506.2683410644531, 302.0760498046875; +506.36834716796875, 302.09246826171875; +506.46832275390625, 302.1106262207031; +506.5683288574219, 302.1317443847656; +506.6683044433594, 302.1575012207031; +506.768310546875, 302.1871643066406; +506.8683166503906, 302.2174377441406; +506.9682922363281, 302.248291015625; +507.06829833984375, 302.2804870605469; +507.16827392578125, 302.30877685546875; +507.2682800292969, 302.3318786621094; +507.3682861328125, 302.3497314453125; +507.46826171875, 302.3667297363281; +507.5682678222656, 302.38427734375; +507.6682434082031, 302.4020080566406; +507.76824951171875, 302.4241638183594; +507.8682556152344, 302.4508056640625; +507.9682312011719, 302.4844665527344; +508.0682373046875, 302.5235290527344; +508.168212890625, 302.5669250488281; +508.2682189941406, 302.61260986328125; +508.3681945800781, 302.65716552734375; +508.46820068359375, 302.7001953125; +508.5682067871094, 302.74005126953125; +508.6681823730469, 302.7779846191406; +508.7681884765625, 302.8162536621094; +508.8681640625, 302.8565368652344; +508.9681701660156, 302.8979797363281; +509.06817626953125, 302.9358825683594; +509.16815185546875, 302.9677429199219; +509.2681579589844, 302.9932861328125; +509.3681335449219, 303.01129150390625; +509.4681396484375, 303.0235290527344; +509.5681457519531, 303.028564453125; +509.6681213378906, 303.027099609375; +509.76812744140625, 303.0180358886719; +509.86810302734375, 303.0022277832031; +509.9681091308594, 302.98028564453125; +510.068115234375, 302.9505615234375; +510.1680908203125, 302.9152526855469; +510.2680969238281, 302.8752136230469; +510.3680725097656, 302.83221435546875; +510.46807861328125, 302.7826843261719; +510.5680847167969, 302.72576904296875; +510.6680603027344, 302.6640930175781; +510.76806640625, 302.6007080078125; +510.8680419921875, 302.5379638671875; +510.9680480957031, 302.47344970703125; +511.06805419921875, 302.4106140136719; +511.16802978515625, 302.35467529296875; +511.2680358886719, 302.30645751953125; +511.3680114746094, 302.2613525390625; +511.468017578125, 302.21820068359375; +511.5680236816406, 302.1815185546875; +511.6679992675781, 302.1506652832031; +511.76800537109375, 302.1184997558594; +511.86798095703125, 302.0856628417969; +511.9679870605469, 302.057861328125; +512.0679931640625, 302.03656005859375; +512.16796875, 302.01910400390625; +512.2679443359375, 302.0072021484375; +512.3679809570312, 302.00634765625; +512.4679565429688, 302.0126953125; +512.5679321289062, 302.020263671875; +512.66796875, 302.02874755859375; +512.7679443359375, 302.0400695800781; +512.867919921875, 302.052978515625; +512.9678955078125, 302.0677795410156; +513.0679321289062, 302.0885314941406; +513.1679077148438, 302.11871337890625; +513.2678833007812, 302.1559753417969; +513.367919921875, 302.197265625; +513.4678955078125, 302.24090576171875; +513.56787109375, 302.2845764160156; +513.6679077148438, 302.3260498046875; +513.7678833007812, 302.3616638183594; +513.8678588867188, 302.39190673828125; +513.9678344726562, 302.42059326171875; +514.06787109375, 302.4480895996094; +514.1678466796875, 302.46795654296875; +514.267822265625, 302.4761657714844; +514.3678588867188, 302.4781494140625; +514.4678344726562, 302.4783935546875; +514.5678100585938, 302.4725036621094; +514.6677856445312, 302.45623779296875; +514.767822265625, 302.43310546875; +514.8677978515625, 302.4057922363281; +514.9677734375, 302.3691101074219; +515.0678100585938, 302.31695556640625; +515.1677856445312, 302.2533264160156; +515.2677612304688, 302.1854553222656; +515.3677978515625, 302.1148986816406; +515.4677734375, 302.03778076171875; +515.5677490234375, 301.9566345214844; +515.667724609375, 301.877685546875; +515.7677612304688, 301.80462646484375; +515.8677368164062, 301.73809814453125; +515.9677124023438, 301.6777038574219; +516.0677490234375, 301.62664794921875; +516.167724609375, 301.5835266113281; +516.2677001953125, 301.5455322265625; +516.3677368164062, 301.5091247558594; +516.4677124023438, 301.4698791503906; +516.5676879882812, 301.42803955078125; +516.6676635742188, 301.3858337402344; +516.7677001953125, 301.3474426269531; +516.86767578125, 301.3131408691406; +516.9676513671875, 301.2825012207031; +517.0676879882812, 301.2585754394531; +517.1676635742188, 301.2403869628906; +517.2676391601562, 301.2247009277344; +517.36767578125, 301.2113952636719; +517.4676513671875, 301.20245361328125; +517.567626953125, 301.1988830566406; +517.6676025390625, 301.1983337402344; +517.7676391601562, 301.2029113769531; +517.8676147460938, 301.212158203125; +517.9675903320312, 301.2214050292969; +518.067626953125, 301.2290344238281; +518.1676025390625, 301.2367858886719; +518.267578125, 301.2458190917969; +518.3675537109375, 301.25390625; +518.4675903320312, 301.26275634765625; +518.5675659179688, 301.2738342285156; +518.6675415039062, 301.28460693359375; +518.767578125, 301.2903747558594; +518.8675537109375, 301.291015625; +518.967529296875, 301.29107666015625; +519.0675659179688, 301.29241943359375; +519.1675415039062, 301.29583740234375; +519.2675170898438, 301.3024597167969; +519.3674926757812, 301.31341552734375; +519.467529296875, 301.3265686035156; +519.5675048828125, 301.3383483886719; +519.66748046875, 301.3476257324219; +519.7675170898438, 301.3535461425781; +519.8674926757812, 301.3564147949219; +519.9674682617188, 301.35687255859375; +520.0675048828125, 301.3564147949219; +520.16748046875, 301.3545837402344; +520.2674560546875, 301.35137939453125; +520.367431640625, 301.34979248046875; +520.4674682617188, 301.3502502441406; +520.5674438476562, 301.3511657714844; +520.6674194335938, 301.3513488769531; +520.7674560546875, 301.3521728515625; +520.867431640625, 301.35369873046875; +520.9674072265625, 301.3541259765625; +521.0674438476562, 301.3531494140625; +521.1674194335938, 301.3518371582031; +521.2673950195312, 301.35418701171875; +521.3673706054688, 301.3623046875; +521.4674072265625, 301.3753967285156; +521.5673828125, 301.389404296875; +521.6673583984375, 301.40289306640625; +521.7673950195312, 301.41839599609375; +521.8673706054688, 301.4338073730469; +521.9673461914062, 301.44647216796875; +522.0673828125, 301.45721435546875; +522.1673583984375, 301.47113037109375; +522.267333984375, 301.4891357421875; +522.3673095703125, 301.5078125; +522.4673461914062, 301.52606201171875; +522.5673217773438, 301.5455627441406; +522.6672973632812, 301.5692138671875; +522.767333984375, 301.5948486328125; +522.8673095703125, 301.6206359863281; +522.96728515625, 301.6483154296875; +523.0672607421875, 301.68011474609375; +523.1672973632812, 301.7165222167969; +523.2672729492188, 301.7546691894531; +523.3672485351562, 301.7971496582031; +523.46728515625, 301.84808349609375; +523.5672607421875, 301.9053955078125; +523.667236328125, 301.9681701660156; +523.7672729492188, 302.0359802246094; +523.8672485351562, 302.10992431640625; +523.9672241210938, 302.1885681152344; +524.0671997070312, 302.2705993652344; +524.167236328125, 302.3598327636719; +524.2672119140625, 302.45880126953125; +524.3671875, 302.5679931640625; +524.4672241210938, 302.68731689453125; +524.5671997070312, 302.8172607421875; +524.6671752929688, 302.9591064453125; +524.7672119140625, 303.11151123046875; +524.8671875, 303.2738342285156; +524.9671630859375, 303.4476013183594; +525.067138671875, 303.6338195800781; +525.1671752929688, 303.8304138183594; +525.2671508789062, 304.0318908691406; +525.3671264648438, 304.2360534667969; +525.4671630859375, 304.4412841796875; +525.567138671875, 304.6468811035156; +525.6671142578125, 304.85009765625; +525.7671508789062, 305.0467224121094; +525.8671264648438, 305.23480224609375; +525.9671020507812, 305.4110412597656; +526.0670776367188, 305.5708312988281; +526.1671142578125, 305.7104187011719; +526.26708984375, 305.82989501953125; +526.3670654296875, 305.9306335449219; +526.4671020507812, 306.0111083984375; +526.5670776367188, 306.0684509277344; +526.6670532226562, 306.1049499511719; +526.7670288085938, 306.1210021972656; +526.8670654296875, 306.1142578125; +526.967041015625, 306.08428955078125; +527.0670166015625, 306.03558349609375; +527.1670532226562, 305.9754333496094; +527.2670288085938, 305.90533447265625; +527.3670043945312, 305.8259582519531; +527.467041015625, 305.7408447265625; +527.5670166015625, 305.6571960449219; +527.6669921875, 305.58160400390625; +527.7669677734375, 305.51458740234375; +527.8670043945312, 305.4557800292969; +527.9669799804688, 305.40509033203125; +528.0669555664062, 305.3648376464844; +528.1669921875, 305.3365173339844; +528.2669677734375, 305.3199462890625; +528.366943359375, 305.3196105957031; +528.4669799804688, 305.3397216796875; +528.5669555664062, 305.383544921875; +528.6669311523438, 305.45098876953125; +528.7669067382812, 305.5412902832031; +528.866943359375, 305.6553039550781; +528.9669189453125, 305.7886962890625; +529.06689453125, 305.93817138671875; +529.1669311523438, 306.1025695800781; +529.2669067382812, 306.28253173828125; +529.3668823242188, 306.4771728515625; +529.4669189453125, 306.6813659667969; +529.56689453125, 306.8931579589844; +529.6668701171875, 307.1116638183594; +529.766845703125, 307.3354187011719; +529.8668823242188, 307.5611572265625; +529.9668579101562, 307.78607177734375; +530.0668334960938, 308.0101013183594; +530.1668701171875, 308.2337646484375; +530.266845703125, 308.4573974609375; +530.3668212890625, 308.67791748046875; +530.4668579101562, 308.89080810546875; +530.5668334960938, 309.0901794433594; +530.6668090820312, 309.2759094238281; +530.7667846679688, 309.44866943359375; +530.8668212890625, 309.60552978515625; +530.966796875, 309.7474365234375; +531.0667724609375, 309.8754577636719; +531.1668090820312, 309.9962463378906; +531.2667846679688, 310.1103515625; +531.3667602539062, 310.21710205078125; +531.4667358398438, 310.31512451171875; +531.5667724609375, 310.40020751953125; +531.666748046875, 310.47393798828125; +531.7667236328125, 310.5361633300781; +531.8667602539062, 310.5883483886719; +531.9667358398438, 310.6289367675781; +532.0667114257812, 310.66058349609375; +532.166748046875, 310.68585205078125; +532.2667236328125, 310.7056579589844; +532.36669921875, 310.7177734375; +532.4666748046875, 310.7214050292969; +532.5667114257812, 310.7156982421875; +532.6666870117188, 310.6996154785156; +532.7666625976562, 310.6768798828125; +532.86669921875, 310.64825439453125; +532.9666748046875, 310.6150817871094; +533.066650390625, 310.5758361816406; +533.1666870117188, 310.53619384765625; +533.2666625976562, 310.50189208984375; +533.3666381835938, 310.4733581542969; +533.4666137695312, 310.447509765625; +533.566650390625, 310.4220275878906; +533.6666259765625, 310.39947509765625; +533.7666015625, 310.3811950683594; +533.8666381835938, 310.365478515625; +533.9666137695312, 310.3507385253906; +534.0665893554688, 310.33892822265625; +534.1666259765625, 310.3338317871094; +534.2666015625, 310.337646484375; +534.3665771484375, 310.35052490234375; +534.466552734375, 310.3737487792969; +534.5665893554688, 310.4054870605469; +534.6665649414062, 310.4461669921875; +534.7665405273438, 310.4974365234375; +534.8665771484375, 310.55975341796875; +534.966552734375, 310.6302490234375; +535.0665283203125, 310.7047424316406; +535.16650390625, 310.7859191894531; +535.2665405273438, 310.8728332519531; +535.3665161132812, 310.9651184082031; +535.4664916992188, 311.064208984375; +535.5665283203125, 311.1735534667969; +535.66650390625, 311.2954406738281; +535.7664794921875, 311.4307861328125; +535.8665161132812, 311.5810241699219; +535.9664916992188, 311.7445373535156; +536.0664672851562, 311.9153137207031; +536.1664428710938, 312.0905456542969; +536.2664794921875, 312.2695007324219; +536.366455078125, 312.44879150390625; +536.4664306640625, 312.6258850097656; +536.5664672851562, 312.7984924316406; +536.6664428710938, 312.9659423828125; +536.7664184570312, 313.1244201660156; +536.866455078125, 313.2680358886719; +536.9664306640625, 313.39141845703125; +537.06640625, 313.4915771484375; +537.1663818359375, 313.5645751953125; +537.2664184570312, 313.6059265136719; +537.3663940429688, 313.6087646484375; +537.4663696289062, 313.5718688964844; +537.56640625, 313.4961242675781; +537.6663818359375, 313.3790283203125; +537.766357421875, 313.21856689453125; +537.8663940429688, 313.01397705078125; +537.9663696289062, 312.7669982910156; +538.0663452148438, 312.47705078125; +538.1663208007812, 312.1463317871094; +538.266357421875, 311.7817077636719; +538.3663330078125, 311.388427734375; +538.46630859375, 310.9697570800781; +538.5663452148438, 310.52947998046875; +538.6663208007812, 310.0738525390625; +538.7662963867188, 309.60888671875; +538.8662719726562, 309.1364440917969; +538.96630859375, 308.6602783203125; +539.0662841796875, 308.18682861328125; +539.166259765625, 307.72381591796875; +539.2662963867188, 307.2768859863281; +539.3662719726562, 306.8492126464844; +539.4662475585938, 306.4453125; +539.5662841796875, 306.06805419921875; +539.666259765625, 305.7181701660156; +539.7662353515625, 305.3956604003906; +539.8662109375, 305.09881591796875; +539.9662475585938, 304.8255615234375; +540.0662231445312, 304.57537841796875; +540.1661987304688, 304.3476257324219; +540.2662353515625, 304.1410827636719; +540.3662109375, 303.9538269042969; +540.4661865234375, 303.7886657714844; +540.5662231445312, 303.6477355957031; +540.6661987304688, 303.5283203125; +540.7661743164062, 303.4263916015625; +540.8661499023438, 303.3384704589844; +540.9661865234375, 303.2618103027344; +541.066162109375, 303.19244384765625; +541.1661376953125, 303.1295166015625; +541.2661743164062, 303.075927734375; +541.3661499023438, 303.0331115722656; +541.4661254882812, 303.0001220703125; +541.566162109375, 302.9757385253906; +541.6661376953125, 302.9591979980469; +541.76611328125, 302.9481201171875; +541.8660888671875, 302.9369201660156; +541.9661254882812, 302.92486572265625; +542.0661010742188, 302.9129638671875; +542.1660766601562, 302.9028625488281; +542.26611328125, 302.892578125; +542.3660888671875, 302.880126953125; +542.466064453125, 302.87017822265625; +542.5661010742188, 302.8666076660156; +542.6660766601562, 302.8714904785156; +542.7660522460938, 302.8810729980469; +542.8660278320312, 302.8929748535156; +542.966064453125, 302.9064025878906; +543.0660400390625, 302.9140319824219; +543.166015625, 302.90924072265625; +543.2660522460938, 302.8948059082031; +543.3660278320312, 302.88238525390625; +543.4660034179688, 302.8783264160156; +543.5659790039062, 302.8782653808594; +543.666015625, 302.88275146484375; +543.7659912109375, 302.89434814453125; +543.865966796875, 302.9083251953125; +543.9660034179688, 302.9150695800781; +544.0659790039062, 302.9149475097656; +544.1659545898438, 302.91717529296875; +544.2659912109375, 302.92425537109375; +544.365966796875, 302.93243408203125; +544.4659423828125, 302.9410400390625; +544.56591796875, 302.95318603515625; +544.6659545898438, 302.96624755859375; +544.7659301757812, 302.97869873046875; +544.8659057617188, 302.9922180175781; +544.9659423828125, 303.0107116699219; +545.06591796875, 303.0314636230469; +545.1658935546875, 303.0500793457031; +545.2659301757812, 303.065185546875; +545.3659057617188, 303.0779113769531; +545.4658813476562, 303.0908508300781; +545.5658569335938, 303.1025085449219; +545.6658935546875, 303.11468505859375; +545.765869140625, 303.1278991699219; +545.8658447265625, 303.1415710449219; +545.9658813476562, 303.15350341796875; +546.0658569335938, 303.1623840332031; +546.1658325195312, 303.1724853515625; +546.265869140625, 303.1849365234375; +546.3658447265625, 303.1986999511719; +546.4658203125, 303.2137451171875; +546.5657958984375, 303.2321472167969; +546.6658325195312, 303.25341796875; +546.7658081054688, 303.27276611328125; +546.8657836914062, 303.2886962890625; +546.9658203125, 303.3049011230469; +547.0657958984375, 303.3248291015625; +547.165771484375, 303.34503173828125; +547.2657470703125, 303.3616638183594; +547.3657836914062, 303.37451171875; +547.4657592773438, 303.3854675292969; +547.5657348632812, 303.393798828125; +547.665771484375, 303.39813232421875; +547.7657470703125, 303.3997497558594; +547.86572265625, 303.4007568359375; +547.9657592773438, 303.4029541015625; +548.0657348632812, 303.4056701660156; +548.1657104492188, 303.40771484375; +548.2656860351562, 303.407958984375; +548.36572265625, 303.4079895019531; +548.4656982421875, 303.409423828125; +548.565673828125, 303.4096374511719; +548.6657104492188, 303.40789794921875; +548.7656860351562, 303.4068603515625; +548.8656616210938, 303.4087829589844; +548.9656982421875, 303.408935546875; +549.065673828125, 303.4039611816406; +549.1656494140625, 303.3985900878906; +549.265625, 303.3952331542969; +549.3656616210938, 303.3928527832031; +549.4656372070312, 303.39013671875; +549.5656127929688, 303.3912353515625; +549.6656494140625, 303.3974914550781; +549.765625, 303.405029296875; +549.8656005859375, 303.4142761230469; +549.9656372070312, 303.424072265625; +550.0656127929688, 303.43267822265625; +550.1655883789062, 303.4361572265625; +550.2655639648438, 303.43670654296875; +550.3656005859375, 303.4365539550781; +550.465576171875, 303.4332580566406; +550.5655517578125, 303.4285583496094; +550.6655883789062, 303.4254150390625; +550.7655639648438, 303.42620849609375; +550.8655395507812, 303.4291076660156; +550.9655151367188, 303.43292236328125; +551.0655517578125, 303.4400329589844; +551.16552734375, 303.4505310058594; +551.2655029296875, 303.46282958984375; +551.3655395507812, 303.47650146484375; +551.4655151367188, 303.4902038574219; +551.5654907226562, 303.5048828125; +551.66552734375, 303.5203552246094; +551.7655029296875, 303.5371398925781; +551.865478515625, 303.5552062988281; +551.9654541015625, 303.57098388671875; +552.0654907226562, 303.58367919921875; +552.1654663085938, 303.59405517578125; +552.2654418945312, 303.6053466796875; +552.365478515625, 303.6157531738281; +552.4654541015625, 303.6211853027344; +552.5654296875, 303.62493896484375; +552.6654663085938, 303.6330871582031; +552.7654418945312, 303.64910888671875; +552.8654174804688, 303.6685485839844; +552.9653930664062, 303.6891174316406; +553.0654296875, 303.7116394042969; +553.1654052734375, 303.73675537109375; +553.265380859375, 303.7607421875; +553.3654174804688, 303.78143310546875; +553.4653930664062, 303.801513671875; +553.5653686523438, 303.82415771484375; +553.6654052734375, 303.85107421875; +553.765380859375, 303.8795471191406; +553.8653564453125, 303.910400390625; +553.96533203125, 303.9419860839844; +554.0653686523438, 303.97174072265625; +554.1653442382812, 304.0004577636719; +554.2653198242188, 304.03125; +554.3653564453125, 304.0685729980469; +554.46533203125, 304.11151123046875; +554.5653076171875, 304.1579895019531; +554.6653442382812, 304.2060241699219; +554.7653198242188, 304.2532043457031; +554.8652954101562, 304.2969055175781; +554.9652709960938, 304.3345031738281; +555.0653076171875, 304.3648681640625; +555.165283203125, 304.389892578125; +555.2652587890625, 304.4129943847656; +555.3652954101562, 304.43505859375; +555.4652709960938, 304.4577941894531; +555.5652465820312, 304.4827880859375; +555.6652221679688, 304.5122985839844; +555.7652587890625, 304.54400634765625; +555.865234375, 304.5763854980469; +555.9652099609375, 304.61236572265625; +556.0652465820312, 304.65216064453125; +556.1652221679688, 304.69378662109375; +556.2651977539062, 304.735107421875; +556.365234375, 304.7768249511719; +556.4652099609375, 304.817138671875; +556.565185546875, 304.8515930175781; +556.6651611328125, 304.88134765625; +556.7651977539062, 304.9102478027344; +556.8651733398438, 304.9404602050781; +556.9651489257812, 304.9709777832031; +557.065185546875, 305.00250244140625; +557.1651611328125, 305.03729248046875; +557.26513671875, 305.07391357421875; +557.3651733398438, 305.10943603515625; +557.4651489257812, 305.14349365234375; +557.5651245117188, 305.17828369140625; +557.6651000976562, 305.21356201171875; +557.76513671875, 305.2475280761719; +557.8651123046875, 305.2803649902344; +557.965087890625, 305.3150634765625; +558.0651245117188, 305.3524169921875; +558.1651000976562, 305.39178466796875; +558.2650756835938, 305.4346618652344; +558.3651123046875, 305.4825744628906; +558.465087890625, 305.53521728515625; +558.5650634765625, 305.5880126953125; +558.6650390625, 305.6377868652344; +558.7650756835938, 305.68414306640625; +558.8650512695312, 305.7289123535156; +558.9650268554688, 305.7750549316406; +559.0650634765625, 305.8204345703125; +559.1650390625, 305.8623046875; +559.2650146484375, 305.8997802734375; +559.364990234375, 305.9361572265625; +559.4650268554688, 305.9710998535156; +559.5650024414062, 306.0036926269531; +559.6649780273438, 306.03656005859375; +559.7650146484375, 306.0752258300781; +559.864990234375, 306.1213684082031; +559.9649658203125, 306.169921875; +560.0650024414062, 306.21942138671875; +560.1649780273438, 306.26763916015625; +560.2649536132812, 306.31500244140625; +560.3649291992188, 306.36029052734375; +560.4649658203125, 306.40301513671875; +560.56494140625, 306.4462585449219; +560.6649169921875, 306.49127197265625; +560.7649536132812, 306.5365905761719; +560.8649291992188, 306.57781982421875; +560.9649047851562, 306.6136474609375; +561.06494140625, 306.6471252441406; +561.1649169921875, 306.6806945800781; +561.264892578125, 306.71435546875; +561.3648681640625, 306.7494812011719; +561.4649047851562, 306.78668212890625; +561.5648803710938, 306.82537841796875; +561.6648559570312, 306.8642578125; +561.764892578125, 306.90289306640625; +561.8648681640625, 306.9405822753906; +561.96484375, 306.9754333496094; +562.0648803710938, 307.0074768066406; +562.1648559570312, 307.0378112792969; +562.2648315429688, 307.0657653808594; +562.3648071289062, 307.0875549316406; +562.46484375, 307.1033630371094; +562.5648193359375, 307.1178283691406; +562.664794921875, 307.1329040527344; +562.7648315429688, 307.1455383300781; +562.8648071289062, 307.1548156738281; +562.9647827148438, 307.16351318359375; +563.0648193359375, 307.17340087890625; +563.164794921875, 307.18359375; +563.2647705078125, 307.1955261230469; +563.36474609375, 307.2121887207031; +563.4647827148438, 307.2313232421875; +563.5647583007812, 307.2483215332031; +563.6647338867188, 307.2605895996094; +563.7647705078125, 307.2703857421875; +563.86474609375, 307.2813415527344; +563.9647216796875, 307.2950439453125; +564.064697265625, 307.30975341796875; +564.1647338867188, 307.3244934082031; +564.2647094726562, 307.34051513671875; +564.3646850585938, 307.3606262207031; +564.4647216796875, 307.3864440917969; +564.564697265625, 307.4148254394531; +564.6646728515625, 307.4439392089844; +564.7647094726562, 307.4712829589844; +564.8646850585938, 307.4977722167969; +564.9646606445312, 307.5224914550781; +565.0646362304688, 307.5425720214844; +565.1646728515625, 307.5611267089844; +565.2646484375, 307.5807800292969; +565.3646240234375, 307.60406494140625; +565.4646606445312, 307.6297912597656; +565.5646362304688, 307.6579284667969; +565.6646118164062, 307.6881103515625; +565.7646484375, 307.7164611816406; +565.8646240234375, 307.742431640625; +565.964599609375, 307.7666320800781; +566.0645751953125, 307.79071044921875; +566.1646118164062, 307.8121643066406; +566.2645874023438, 307.8319091796875; +566.3645629882812, 307.8515625; +566.464599609375, 307.87103271484375; +566.5645751953125, 307.8926086425781; +566.66455078125, 307.9161682128906; +566.7645874023438, 307.94110107421875; +566.8645629882812, 307.96240234375; +566.9645385742188, 307.97772216796875; +567.0645141601562, 307.99078369140625; +567.16455078125, 308.0032958984375; +567.2645263671875, 308.0138854980469; +567.364501953125, 308.0180358886719; +567.4645385742188, 308.01312255859375; +567.5645141601562, 308.00189208984375; +567.6644897460938, 307.9867858886719; +567.7644653320312, 307.96533203125; +567.864501953125, 307.93756103515625; +567.9644775390625, 307.9085388183594; +568.064453125, 307.8851013183594; +568.1644897460938, 307.8659973144531; +568.2644653320312, 307.8427734375; +568.3644409179688, 307.8148498535156; +568.4644775390625, 307.78350830078125; +568.564453125, 307.75048828125; +568.6644287109375, 307.71270751953125; +568.764404296875, 307.6683654785156; +568.8644409179688, 307.6222229003906; +568.9644165039062, 307.57647705078125; +569.0643920898438, 307.531005859375; +569.1644287109375, 307.4832458496094; +569.264404296875, 307.4322814941406; +569.3643798828125, 307.38055419921875; +569.4644165039062, 307.3304443359375; +569.5643920898438, 307.285400390625; +569.6643676757812, 307.24444580078125; +569.7643432617188, 307.20086669921875; +569.8643798828125, 307.1512145996094; +569.96435546875, 307.09478759765625; +570.0643310546875, 307.0350036621094; +570.1643676757812, 306.9732360839844; +570.2643432617188, 306.90997314453125; +570.3643188476562, 306.84796142578125; +570.46435546875, 306.7906799316406; +570.5643310546875, 306.7427978515625; +570.664306640625, 306.7010803222656; +570.7642822265625, 306.6608581542969; +570.8643188476562, 306.6209411621094; +570.9642944335938, 306.5849609375; +571.0642700195312, 306.55181884765625; +571.164306640625, 306.515625; +571.2642822265625, 306.4758605957031; +571.3642578125, 306.4358215332031; +571.4642333984375, 306.40008544921875; +571.5642700195312, 306.3676452636719; +571.6642456054688, 306.3370666503906; +571.7642211914062, 306.311279296875; +571.8642578125, 306.2906494140625; +571.9642333984375, 306.27386474609375; +572.064208984375, 306.2557373046875; +572.1642456054688, 306.2344665527344; +572.2642211914062, 306.2117004394531; +572.3641967773438, 306.1874694824219; +572.4641723632812, 306.16461181640625; +572.564208984375, 306.14404296875; +572.6641845703125, 306.1269226074219; +572.76416015625, 306.1127624511719; +572.8641967773438, 306.1014404296875; +572.9641723632812, 306.0923156738281; +573.0641479492188, 306.0818786621094; +573.1641845703125, 306.0692138671875; +573.26416015625, 306.05487060546875; +573.3641357421875, 306.0407409667969; +573.464111328125, 306.02606201171875; +573.5641479492188, 306.01031494140625; +573.6641235351562, 305.99383544921875; +573.7640991210938, 305.9753112792969; +573.8641357421875, 305.9541931152344; +573.964111328125, 305.930419921875; +574.0640869140625, 305.905029296875; +574.1641235351562, 305.8764953613281; +574.2640991210938, 305.8439636230469; +574.3640747070312, 305.8071594238281; +574.4640502929688, 305.7674255371094; +574.5640869140625, 305.7232971191406; +574.6640625, 305.6723327636719; +574.7640380859375, 305.6134338378906; +574.8640747070312, 305.5471496582031; +574.9640502929688, 305.476318359375; +575.0640258789062, 305.40087890625; +575.1640625, 305.3201599121094; +575.2640380859375, 305.23406982421875; +575.364013671875, 305.14630126953125; +575.4639892578125, 305.0575256347656; +575.5640258789062, 304.96435546875; +575.6640014648438, 304.8627014160156; +575.7639770507812, 304.7549743652344; +575.864013671875, 304.647705078125; +575.9639892578125, 304.5453186035156; +576.06396484375, 304.4461364746094; +576.1639404296875, 304.3475036621094; +576.2639770507812, 304.2516784667969; +576.3639526367188, 304.158447265625; +576.4639282226562, 304.06378173828125; +576.56396484375, 303.9633483886719; +576.6639404296875, 303.860595703125; +576.763916015625, 303.7599182128906; +576.8639526367188, 303.6598815917969; +576.9639282226562, 303.5615234375; +577.0639038085938, 303.4697265625; +577.1638793945312, 303.3833923339844; +577.263916015625, 303.2957458496094; +577.3638916015625, 303.20404052734375; +577.4638671875, 303.1146545410156; +577.5639038085938, 303.02874755859375; +577.6638793945312, 302.9421081542969; +577.7638549804688, 302.8570556640625; +577.8638916015625, 302.77984619140625; +577.9638671875, 302.7113342285156; +578.0638427734375, 302.64410400390625; +578.163818359375, 302.57550048828125; +578.2638549804688, 302.5081481933594; +578.3638305664062, 302.44171142578125; +578.4638061523438, 302.3745422363281; +578.5638427734375, 302.304443359375; +578.663818359375, 302.2342834472656; +578.7637939453125, 302.1676940917969; +578.8638305664062, 302.1033020019531; +578.9638061523438, 302.0401306152344; +579.0637817382812, 301.97564697265625; +579.1637573242188, 301.9136657714844; +579.2637939453125, 301.8554992675781; +579.36376953125, 301.80035400390625; +579.4637451171875, 301.74652099609375; +579.5637817382812, 301.6913757324219; +579.6637573242188, 301.6344299316406; +579.7637329101562, 301.5752258300781; +579.8637084960938, 301.51348876953125; +579.9637451171875, 301.4466857910156; +580.063720703125, 301.377197265625; +580.1636962890625, 301.310302734375; +580.2637329101562, 301.2497253417969; +580.3637084960938, 301.195068359375; +580.4636840820312, 301.1432189941406; +580.563720703125, 301.09527587890625; +580.6636962890625, 301.0498046875; +580.763671875, 301.0038146972656; +580.8636474609375, 300.954833984375; +580.9636840820312, 300.9023742675781; +581.0636596679688, 300.8502197265625; +581.1636352539062, 300.7992248535156; +581.263671875, 300.7514343261719; +581.3636474609375, 300.70623779296875; +581.463623046875, 300.6636657714844; +581.5636596679688, 300.6235046386719; +581.6636352539062, 300.5859680175781; +581.7636108398438, 300.5516662597656; +581.8635864257812, 300.5188903808594; +581.963623046875, 300.4868469238281; +582.0635986328125, 300.45538330078125; +582.16357421875, 300.426513671875; +582.2636108398438, 300.4036865234375; +582.3635864257812, 300.3885498046875; +582.4635620117188, 300.3787841796875; +582.5635986328125, 300.3736572265625; +582.66357421875, 300.37493896484375; +582.7635498046875, 300.3818664550781; +582.863525390625, 300.3892822265625; +582.9635620117188, 300.392333984375; +583.0635375976562, 300.3963623046875; +583.1635131835938, 300.4057312011719; +583.2635498046875, 300.417724609375; +583.363525390625, 300.4279479980469; +583.4635009765625, 300.4364929199219; +583.5634765625, 300.4509582519531; +583.6635131835938, 300.4705810546875; +583.7634887695312, 300.4930419921875; +583.8634643554688, 300.5196533203125; +583.9635009765625, 300.5548095703125; +584.0634765625, 300.598876953125; +584.1634521484375, 300.6462707519531; +584.2634887695312, 300.6971740722656; +584.3634643554688, 300.7544860839844; +584.4634399414062, 300.8180847167969; +584.5634155273438, 300.8850402832031; +584.6634521484375, 300.95501708984375; +584.763427734375, 301.029296875; +584.8634033203125, 301.10589599609375; +584.9634399414062, 301.1848449707031; +585.0634155273438, 301.27032470703125; +585.1633911132812, 301.3672790527344; +585.263427734375, 301.4737854003906; +585.3634033203125, 301.58526611328125; +585.46337890625, 301.7027587890625; +585.5633544921875, 301.827392578125; +585.6633911132812, 301.9585266113281; +585.7633666992188, 302.09527587890625; +585.8633422851562, 302.2424621582031; +585.96337890625, 302.4043884277344; +586.0633544921875, 302.57861328125; +586.163330078125, 302.7608947753906; +586.2633666992188, 302.953125; +586.3633422851562, 303.1584167480469; +586.4633178710938, 303.3748474121094; +586.5632934570312, 303.60113525390625; +586.663330078125, 303.8401184082031; +586.7633056640625, 304.0953674316406; +586.86328125, 304.3634338378906; +586.9633178710938, 304.63787841796875; +587.0632934570312, 304.9199523925781; +587.1632690429688, 305.2145080566406; +587.2633056640625, 305.5251159667969; +587.36328125, 305.8504638671875; +587.4632568359375, 306.19012451171875; +587.563232421875, 306.5481872558594; +587.6632690429688, 306.9256286621094; +587.7632446289062, 307.3195495605469; +587.8632202148438, 307.7261962890625; +587.9632568359375, 308.14910888671875; +588.063232421875, 308.5900573730469; +588.1632080078125, 309.04620361328125; +588.26318359375, 309.51617431640625; +588.3632202148438, 310.00225830078125; +588.4631958007812, 310.50469970703125; +588.5631713867188, 311.01702880859375; +588.6632080078125, 311.5365905761719; +588.76318359375, 312.0608215332031; +588.8631591796875, 312.5852355957031; +588.9631958007812, 313.1054992675781; +589.0631713867188, 313.62152099609375; +589.1631469726562, 314.13812255859375; +589.2631225585938, 314.6538391113281; +589.3631591796875, 315.16729736328125; +589.463134765625, 315.6746520996094; +589.5631103515625, 316.17327880859375; +589.6631469726562, 316.6645812988281; +589.7631225585938, 317.1466979980469; +589.8630981445312, 317.61962890625; +589.963134765625, 318.0868835449219; +590.0631103515625, 318.5554504394531; +590.1630859375, 319.0296325683594; +590.2630615234375, 319.5051574707031; +590.3630981445312, 319.9778747558594; +590.4630737304688, 320.4508056640625; +590.5630493164062, 320.9292907714844; +590.6630859375, 321.4161376953125; +590.7630615234375, 321.9110412597656; +590.863037109375, 322.41485595703125; +590.9630737304688, 322.9361877441406; +591.0630493164062, 323.4804382324219; +591.1630249023438, 324.04559326171875; +591.2630004882812, 324.62640380859375; +591.363037109375, 325.2227783203125; +591.4630126953125, 325.8406982421875; +591.56298828125, 326.48004150390625; +591.6630249023438, 327.1349182128906; +591.7630004882812, 327.8018798828125; +591.8629760742188, 328.4802551269531; +591.9629516601562, 329.16619873046875; +592.06298828125, 329.8525695800781; +592.1629638671875, 330.5362243652344; +592.262939453125, 331.2205505371094; +592.3629760742188, 331.9040832519531; +592.4629516601562, 332.5850830078125; +592.5629272460938, 333.26068115234375; +592.6629638671875, 333.9294128417969; +592.762939453125, 334.5847473144531; +592.8629150390625, 335.21710205078125; +592.962890625, 335.8264465332031; +593.0629272460938, 336.4167785644531; +593.1629028320312, 336.9925842285156; +593.2628784179688, 337.55108642578125; +593.3629150390625, 338.0924377441406; +593.462890625, 338.6214904785156; +593.5628662109375, 339.1380920410156; +593.6629028320312, 339.6377258300781; +593.7628784179688, 340.11138916015625; +593.8628540039062, 340.56060791015625; +593.9628295898438, 340.9891357421875; +594.0628662109375, 341.39581298828125; +594.162841796875, 341.778564453125; +594.2628173828125, 342.1358947753906; +594.3628540039062, 342.4761657714844; +594.4628295898438, 342.8021240234375; +594.5628051757812, 343.1105041503906; +594.662841796875, 343.39788818359375; +594.7628173828125, 343.6661682128906; +594.86279296875, 343.9210205078125; +594.9627685546875, 344.161865234375; +595.0628051757812, 344.3874206542969; +595.1627807617188, 344.59600830078125; +595.2627563476562, 344.7909851074219; +595.36279296875, 344.97216796875; +595.4627685546875, 345.13671875; +595.562744140625, 345.2841491699219; +595.6627807617188, 345.4123229980469; +595.7627563476562, 345.52410888671875; +595.8627319335938, 345.61529541015625; +595.9627075195312, 345.68646240234375; +596.062744140625, 345.7419738769531; +596.1627197265625, 345.7827453613281; +596.2626953125, 345.8108215332031; +596.3627319335938, 345.8263244628906; +596.4627075195312, 345.8341369628906; +596.5626831054688, 345.83697509765625; +596.6626586914062, 345.83038330078125; +596.7626953125, 345.8140563964844; +596.8626708984375, 345.7880859375; +596.962646484375, 345.7545471191406; +597.0626831054688, 345.7168884277344; +597.1626586914062, 345.6776428222656; +597.2626342773438, 345.6405334472656; +597.3626708984375, 345.6050720214844; +597.462646484375, 345.5697021484375; +597.5626220703125, 345.5343933105469; +597.66259765625, 345.4979553222656; +597.7626342773438, 345.45660400390625; +597.8626098632812, 345.4080810546875; +597.9625854492188, 345.3543395996094; +598.0626220703125, 345.29833984375; +598.16259765625, 345.2378234863281; +598.2625732421875, 345.1669006347656; +598.3626098632812, 345.0846252441406; +598.4625854492188, 344.99029541015625; +598.5625610351562, 344.87921142578125; +598.6625366210938, 344.746337890625; +598.7625732421875, 344.5893859863281; +598.862548828125, 344.4070739746094; +598.9625244140625, 344.19140625; +599.0625610351562, 343.93231201171875; +599.1625366210938, 343.6248779296875; +599.2625122070312, 343.2665710449219; +599.362548828125, 342.85296630859375; +599.4625244140625, 342.37640380859375; +599.5625, 341.8275451660156; +599.6624755859375, 341.1988525390625; +599.7625122070312, 340.4930725097656; +599.8624877929688, 339.7599182128906; +##END= + +$$ === CHEMSPECTRA INTEGRALS AND MULTIPLETS === +##PAGE=230.0 +##$OBSERVEDINTEGRALS= (X Y Z) +(400.575614596938113, 440.70274982784308, 1.0) +##$OBSERVEDMULTIPLETS= +##$OBSERVEDMULTIPLETSPEAKS= +##END= + +$$ === CHEMSPECTRA PEAK TABLE EDIT === +##TITLE=908f81fc-5890-4b40-b630-40c8c39f2c97 +##JCAMP-DX=5.00 +##DATA TYPE=LC/MSPEAKTABLE +##DATA CLASS=PEAKTABLE +##$CSCATEGORY=EDIT_PEAK +##$CSTHRESHOLD=0.05 +##MAXX=599.8624877929688 +##MAXY=1074.3798828125 +##MINX=0.0 +##MINY=-239.00619506835938 +##PAGE=230.0 +##NPOINTS=0 +##PEAKTABLE= (XY..XY) +##END= + +$$ === CHEMSPECTRA PEAK TABLE AUTO === +##TITLE=908f81fc-5890-4b40-b630-40c8c39f2c97 +##JCAMP-DX=5.00 +##DATA TYPE=LC/MSPEAKTABLE +##DATA CLASS=PEAKTABLE +##$CSCATEGORY=AUTO_PEAK +##$CSTHRESHOLD=0.05 +##MAXX=599.8624877929688 +##MAXY=1074.3798828125 +##MINX=0.0 +##MINY=-239.00619506835938 +##PAGE=230.0 +##NPOINTS=53 +##PEAKTABLE= (XY..XY) +426.6733093261719, 1074.3798828125 +421.9736022949219, 536.3840942382812 +56.3964729309082, 429.8528137207031 +278.4825744628906, 418.197021484375 +596.5626831054688, 345.83697509765625 +537.3663940429688, 313.6087646484375 +409.1744079589844, 310.99249267578125 +532.4666748046875, 310.7214050292969 +567.364501953125, 308.0180358886719 +526.7670288085938, 306.1210021972656 +550.2655639648438, 303.43670654296875 +548.565673828125, 303.4096374511719 +548.9656982421875, 303.408935546875 +509.5681457519531, 303.028564453125 +543.9660034179688, 302.9150695800781 +543.0660400390625, 302.9140319824219 +438.7725524902344, 302.87738037109375 +514.4678344726562, 302.4783935546875 +502.36859130859375, 302.3348083496094 +494.6690673828125, 302.12115478515625 +487.0695495605469, 301.66754150390625 +519.9674682617188, 301.35687255859375 +520.9674072265625, 301.3541259765625 +496.96893310546875, 301.0077209472656 +474.9703063964844, 300.7716979980469 +473.0704040527344, 299.962646484375 +481.2698974609375, 299.897216796875 +471.3705139160156, 299.73590087890625 +455.37152099609375, 299.0686950683594 +467.2707824707031, 298.9706726074219 +459.1712951660156, 298.490966796875 +452.271728515625, 297.1656494140625 +443.7722473144531, 296.89422607421875 +447.27203369140625, 296.51336669921875 +389.2756652832031, 271.901123046875 +399.2750244140625, 264.6216125488281 +396.9751892089844, 262.6254577636719 +393.2754211425781, 258.97686767578125 +318.3800964355469, 257.9040832519531 +373.4766540527344, 240.990966796875 +367.5770263671875, 237.40756225585938 +335.97900390625, 233.37466430664062 +362.67730712890625, 233.36610412597656 +360.9774169921875, 232.7893524169922 +357.6776428222656, 231.9524383544922 +349.9781188964844, 231.39918518066406 +339.9787292480469, 231.35626220703125 +353.3778991699219, 231.13107299804688 +345.07843017578125, 230.6768798828125 +344.37847900390625, 230.66949462890625 +344.0784912109375, 230.6686248779297 +59.59627151489258, 196.63352966308594 +83.19479370117188, 144.92396545410156 +##END= + +$$ === CHEMSPECTRA UVVIS PEAK TABLE === +##TITLE=908f81fc-5890-4b40-b630-40c8c39f2c97 +##JCAMP-DX=5.00 +##DATA TYPE=LC/MS +##DATA CLASS=PEAK TABLE +##ORIGIN= +##OWNER= +##XUNITS=RETENTION TIME +##YUNITS=DETECTOR SIGNAL +##$CSCATEGORY=UVVIS PEAK TABLE +##PAGE=254.0 +##NPOINTS=6000 +##DATA TABLE= (XY..XY), PEAKS +0.0, -0.5983486771583557; +0.0999937504529953, -0.5888268351554871; +0.1999875009059906, -0.5843192338943481; +0.2999812364578247, -0.5793496966362; +0.3999750018119812, -0.5788803100585938; +0.4999687373638153, -0.5870983004570007; +0.5999624729156494, -0.5982890725135803; +0.6999562382698059, -0.6047636270523071; +0.7999500036239624, -0.6065443158149719; +0.8999437093734741, -0.6089732050895691; +0.9999374747276306, -0.6123185157775879; +1.099931240081787, -0.6144866347312927; +1.1999249458312988, -0.6162375211715698; +1.2999186515808105, -0.6182566285133362; +1.3999124765396118, -0.6197988986968994; +1.4999061822891235, -0.6208717823028564; +1.5999000072479248, -0.622384250164032; +1.6998937129974365, -0.6248131394386292; +1.7998874187469482, -0.6264746189117432; +1.8998812437057495, -0.6268098950386047; +1.9998749494552612, -0.6259903311729431; +2.0998687744140625, -0.6241723895072937; +2.199862480163574, -0.621497631072998; +2.299856185913086, -0.6182193756103516; +2.3998498916625977, -0.6160810589790344; +2.4998435974121094, -0.6156936287879944; +2.599837303161621, -0.6167590618133545; +2.699831247329712, -0.6186887621879578; +2.7998249530792236, -0.6218254566192627; +2.8998186588287354, -0.626489520072937; +2.999812364578247, -0.6312653422355652; +3.099806070327759, -0.6333664059638977; +3.1998000144958496, -0.6325319409370422; +3.2997937202453613, -0.6313472986221313; +3.399787425994873, -0.6312951445579529; +3.4997811317443848, -0.6314367055892944; +3.5997748374938965, -0.6304681301116943; +3.699768543243408, -0.6303191184997559; +3.799762487411499, -0.6322339177131653; +3.8997561931610107, -0.6361529231071472; +3.9997498989105225, -0.6401017308235168; +4.099743843078613, -0.6431564688682556; +4.199737548828125, -0.6452947854995728; +4.299731254577637, -0.6471052765846252; +4.399724960327148, -0.6487667560577393; +4.49971866607666, -0.6491020321846008; +4.599712371826172, -0.6478354334831238; +4.699706077575684, -0.6459057331085205; +4.799699783325195, -0.6449669599533081; +4.899693489074707, -0.6445944309234619; +4.999687194824219, -0.6444603204727173; +5.0996809005737305, -0.6440281867980957; +5.199674606323242, -0.6434395909309387; +5.299668788909912, -0.6422623991966248; +5.399662494659424, -0.64125657081604; +5.4996562004089355, -0.6411969661712646; +5.599649906158447, -0.6414726376533508; +5.699643611907959, -0.6412416696548462; +5.799637317657471, -0.6402060389518738; +5.899631023406982, -0.6395429372787476; +5.999624729156494, -0.6384849548339844; +6.099618434906006, -0.6364732980728149; +6.199612140655518, -0.634312629699707; +6.299605846405029, -0.6334111094474792; +6.399600028991699, -0.6346777081489563; +6.499593734741211, -0.6365031003952026; +6.599587440490723, -0.6378591060638428; +6.699581146240234, -0.6387978792190552; +6.799574851989746, -0.6394609808921814; +6.899568557739258, -0.639602541923523; +6.9995622634887695, -0.6391406059265137; +7.099555969238281, -0.6391629576683044; +7.199549674987793, -0.6406381726264954; +7.299543380737305, -0.6421282887458801; +7.399537086486816, -0.642724335193634; +7.499530792236328, -0.6437599658966064; +7.599524974822998, -0.6455257534980774; +7.69951868057251, -0.647515058517456; +7.7995123863220215, -0.6480515003204346; +7.899506092071533, -0.6482899188995361; +7.999499797821045, -0.6487220525741577; +8.099493026733398, -0.6489530205726624; +8.199487686157227, -0.649571418762207; +8.299481391906738, -0.6505846977233887; +8.39947509765625, -0.6524547934532166; +8.499468803405762, -0.6549805402755737; +8.599462509155273, -0.6585270166397095; +8.699456214904785, -0.6624311208724976; +8.799449920654297, -0.6646886467933655; +8.899443626403809, -0.665128231048584; +8.99943733215332, -0.6648972630500793; +9.099431037902832, -0.664837658405304; +9.199424743652344, -0.664830207824707; +9.299418449401855, -0.6649866700172424; +9.399412155151367, -0.6663650274276733; +9.499405860900879, -0.6687194108963013; +9.59939956665039, -0.6709098815917969; +9.699393272399902, -0.671781599521637; +9.799386978149414, -0.6710365414619446; +9.899380683898926, -0.6692707538604736; +9.999374389648438, -0.6672590970993042; +10.09936809539795, -0.6662234663963318; +10.199361801147461, -0.6665587425231934; +10.299355506896973, -0.6683170795440674; +10.399349212646484, -0.6709247827529907; +10.499343872070312, -0.6735175848007202; +10.599337577819824, -0.6755664944648743; +10.699331283569336, -0.676468014717102; +10.799324989318848, -0.6765276193618774; +10.89931869506836, -0.6762444972991943; +10.999312400817871, -0.6769075989723206; +11.099306106567383, -0.6780922412872314; +11.199299812316895, -0.6790384650230408; +11.299293518066406, -0.6798580288887024; +11.399287223815918, -0.6808862090110779; +11.49928092956543, -0.6819665431976318; +11.599274635314941, -0.681661069393158; +11.699268341064453, -0.6799697875976562; +11.799262046813965, -0.6775557994842529; +11.899255752563477, -0.6753057241439819; +11.999249458312988, -0.6737634539604187; +12.0992431640625, -0.6728768348693848; +12.199236869812012, -0.6730929017066956; +12.299230575561523, -0.6747767329216003; +12.399224281311035, -0.677749514579773; +12.499217987060547, -0.6806403398513794; +12.599211692810059, -0.6821602582931519; +12.69920539855957, -0.6823837757110596; +12.799200057983398, -0.6819069385528564; +12.89919376373291, -0.6814450025558472; +12.999187469482422, -0.6805732846260071; +13.099181175231934, -0.6791204214096069; +13.199174880981445, -0.6781145930290222; +13.299168586730957, -0.67872554063797; +13.399162292480469, -0.6807669997215271; +13.49915599822998, -0.6830319762229919; +13.599149703979492, -0.6854832172393799; +13.699143409729004, -0.6884187459945679; +13.799137115478516, -0.6913542747497559; +13.899130821228027, -0.6932392716407776; +13.999124526977539, -0.6940066814422607; +14.09911823272705, -0.6940364837646484; +14.199111938476562, -0.6935447454452515; +14.299105644226074, -0.692412257194519; +14.399099349975586, -0.6904974579811096; +14.499093055725098, -0.6888061761856079; +14.59908676147461, -0.6877556443214417; +14.699080467224121, -0.6872937083244324; +14.799074172973633, -0.6868541240692139; +14.899067878723145, -0.6860494613647461; +14.999061584472656, -0.6847456097602844; +15.099056243896484, -0.6828382611274719; +15.199049949645996, -0.6821751594543457; +15.299043655395508, -0.6833672523498535; +15.39903736114502, -0.6853267550468445; +15.499031066894531, -0.6870552897453308; +15.599024772644043, -0.6888508796691895; +15.699018478393555, -0.6913989782333374; +15.799012184143066, -0.6921961903572083; +15.899005889892578, -0.6909072399139404; +15.99899959564209, -0.6897300481796265; +16.0989933013916, -0.6904229521751404; +16.198986053466797, -0.6924048066139221; +16.298980712890625, -0.693298876285553; +16.398975372314453, -0.6942376494407654; +16.49896812438965, -0.696130096912384; +16.598962783813477, -0.6980076432228088; +16.698955535888672, -0.6987005472183228; +16.7989501953125, -0.6989389657974243; +16.898942947387695, -0.700920820236206; +16.998937606811523, -0.7043033838272095; +17.09893035888672, -0.7069110870361328; +17.198925018310547, -0.7086917757987976; +17.298917770385742, -0.7105395197868347; +17.39891242980957, -0.7123127579689026; +17.498905181884766, -0.711880624294281; +17.598899841308594, -0.7093846797943115; +17.69889259338379, -0.7077828049659729; +17.798887252807617, -0.7081925868988037; +17.898880004882812, -0.708945095539093; +17.99887466430664, -0.7078126072883606; +18.098867416381836, -0.7070675492286682; +18.198862075805664, -0.707969069480896; +18.29885482788086, -0.7098019123077393; +18.398849487304688, -0.7113441824913025; +18.498842239379883, -0.7129386067390442; +18.59883689880371, -0.7165372371673584; +18.69883155822754, -0.7199123501777649; +18.798824310302734, -0.7208511233329773; +18.898818969726562, -0.7186457514762878; +18.998811721801758, -0.7152706384658813; +19.098806381225586, -0.712469220161438; +19.19879913330078, -0.7105842232704163; +19.29879379272461, -0.7088631391525269; +19.398786544799805, -0.7080063223838806; +19.498781204223633, -0.7084831595420837; +19.598773956298828, -0.7096901535987854; +19.698768615722656, -0.711388885974884; +19.79876136779785, -0.7126703858375549; +19.89875602722168, -0.7150471210479736; +19.998748779296875, -0.7185786962509155; +20.098743438720703, -0.7223859429359436; +20.1987361907959, -0.7256120443344116; +20.298730850219727, -0.7283464074134827; +20.398723602294922, -0.7315352559089661; +20.49871826171875, -0.7346570491790771; +20.598711013793945, -0.7360950112342834; +20.698705673217773, -0.7361993193626404; +20.79869842529297, -0.7359534502029419; +20.898693084716797, -0.7351264357566833; +20.998687744140625, -0.7331296801567078; +21.09868049621582, -0.7308796048164368; +21.19867515563965, -0.7303804159164429; +21.298667907714844, -0.7307305932044983; +21.398662567138672, -0.730559229850769; +21.498655319213867, -0.7295683026313782; +21.598649978637695, -0.7287785410881042; +21.69864273071289, -0.7288530468940735; +21.79863739013672, -0.7292330265045166; +21.898630142211914, -0.7304847240447998; +21.998624801635742, -0.7323473691940308; +22.098617553710938, -0.7345154881477356; +22.198612213134766, -0.7363483309745789; +22.29860496520996, -0.7371008396148682; +22.39859962463379, -0.7374882698059082; +22.498592376708984, -0.7381737232208252; +22.598587036132812, -0.7396042346954346; +22.698579788208008, -0.741124153137207; +22.798574447631836, -0.7418617606163025; +22.89856719970703, -0.7421374320983887; +22.99856185913086, -0.7418692111968994; +23.098554611206055, -0.7412955164909363; +23.198549270629883, -0.7408559322357178; +23.29854393005371, -0.7414445281028748; +23.398536682128906, -0.7437244057655334; +23.498531341552734, -0.746212899684906; +23.59852409362793, -0.7480308413505554; +23.698518753051758, -0.7483959197998047; +23.798511505126953, -0.7477328181266785; +23.89850616455078, -0.7468685507774353; +23.998498916625977, -0.7459670305252075; +24.098493576049805, -0.7450804114341736; +24.198486328125, -0.7438510656356812; +24.298480987548828, -0.7424652576446533; +24.398473739624023, -0.7412061095237732; +24.49846839904785, -0.7402524352073669; +24.598461151123047, -0.7396340370178223; +24.698455810546875, -0.7404983043670654; +24.79844856262207, -0.7434412837028503; +24.8984432220459, -0.7481873035430908; +24.998435974121094, -0.7531791925430298; +25.098430633544922, -0.7567480206489563; +25.198423385620117, -0.7584840059280396; +25.298418045043945, -0.758633017539978; +25.39841079711914, -0.7578283548355103; +25.49840545654297, -0.7568821310997009; +25.598400115966797, -0.7566511631011963; +25.698392868041992, -0.7576942443847656; +25.79838752746582, -0.7600262761116028; +25.898380279541016, -0.7625222206115723; +25.998374938964844, -0.7643327116966248; +26.09836769104004, -0.7654502987861633; +26.198362350463867, -0.7660239934921265; +26.298355102539062, -0.7665976881980896; +26.39834976196289, -0.767141580581665; +26.498342514038086, -0.7676631212234497; +26.598337173461914, -0.7676631212234497; +26.69832992553711, -0.7660612463951111; +26.798324584960938, -0.763624906539917; +26.898317337036133, -0.7613226771354675; +26.99831199645996, -0.7604882121086121; +27.098304748535156, -0.7613971829414368; +27.198299407958984, -0.7636472582817078; +27.29829216003418, -0.7669851183891296; +27.398286819458008, -0.7699653506278992; +27.498279571533203, -0.7715001702308655; +27.59827423095703, -0.7716640830039978; +27.698266983032227, -0.7716193795204163; +27.798261642456055, -0.7720589637756348; +27.898256301879883, -0.7727816700935364; +27.998249053955078, -0.7735192775726318; +28.098243713378906, -0.7746890187263489; +28.1982364654541, -0.7762759923934937; +28.29823112487793, -0.7781758904457092; +28.398223876953125, -0.7800683379173279; +28.498218536376953, -0.7813721895217896; +28.59821128845215, -0.7828548550605774; +28.698205947875977, -0.7848590612411499; +28.798198699951172, -0.78602135181427; +28.898193359375, -0.784747302532196; +28.998186111450195, -0.7823184132575989; +29.098180770874023, -0.7809996604919434; +29.19817352294922, -0.7805749773979187; +29.298168182373047, -0.7797777652740479; +29.398160934448242, -0.7797554135322571; +29.49815559387207, -0.7813498377799988; +29.598148345947266, -0.7834061980247498; +29.698143005371094, -0.7849782705307007; +29.79813575744629, -0.7867217063903809; +29.898130416870117, -0.7892698049545288; +29.998123168945312, -0.7909312844276428; +30.09811782836914, -0.7918700575828552; +30.19811248779297, -0.7935091853141785; +30.298105239868164, -0.7961541414260864; +30.398099899291992, -0.7979422807693481; +30.498092651367188, -0.7981732487678528; +30.598087310791016, -0.7985010743141174; +30.69808006286621, -0.7994771003723145; +30.79807472229004, -0.8000209927558899; +30.898067474365234, -0.799037516117096; +30.998062133789062, -0.7981732487678528; +31.098054885864258, -0.798352062702179; +31.198049545288086, -0.7990449666976929; +31.29804229736328, -0.7988885045051575; +31.39803695678711, -0.7976293563842773; +31.498029708862305, -0.7969886064529419; +31.598024368286133, -0.7966309785842896; +31.698017120361328, -0.7958188652992249; +31.798011779785156, -0.7948130369186401; +31.89800453186035, -0.7951110601425171; +31.99799919128418, -0.7971972227096558; +32.097991943359375, -0.7995143532752991; +32.1979866027832, -0.8019059896469116; +32.29798126220703, -0.8048340678215027; +32.397972106933594, -0.8076727390289307; +32.49796676635742, -0.8093416690826416; +32.59796142578125, -0.8092969655990601; +32.69795608520508, -0.8082836866378784; +32.797950744628906, -0.8069202303886414; +32.89794158935547, -0.8057579398155212; +32.9979362487793, -0.8050426840782166; +33.097930908203125, -0.8042305707931519; +33.19792556762695, -0.8039399981498718; +33.297916412353516, -0.8051544427871704; +33.397911071777344, -0.8077099919319153; +33.49790573120117, -0.8109360933303833; +33.597900390625, -0.8139908313751221; +33.69789123535156, -0.8174777030944824; +33.79788589477539, -0.820644199848175; +33.89788055419922, -0.8223652839660645; +33.99787521362305, -0.8233264088630676; +34.09786605834961, -0.8241534233093262; +34.19786071777344, -0.825442373752594; +34.297855377197266, -0.8259862661361694; +34.397850036621094, -0.8258819580078125; +34.497840881347656, -0.8259937167167664; +34.597835540771484, -0.8262172341346741; +34.69783020019531, -0.8257031440734863; +34.79782485961914, -0.823974609375; +34.89781951904297, -0.8224844932556152; +34.99781036376953, -0.822111964225769; +35.09780502319336, -0.8229091763496399; +35.19779968261719, -0.8243992924690247; +35.297794342041016, -0.826612114906311; +35.39778518676758, -0.8291453123092651; +35.497779846191406, -0.8309260010719299; +35.597774505615234, -0.8313581347465515; +35.69776916503906, -0.8305534720420837; +35.797760009765625, -0.8292943239212036; +35.89775466918945, -0.8285567164421082; +35.99774932861328, -0.8293613791465759; +36.09774398803711, -0.8312314748764038; +36.19773483276367, -0.8330270648002625; +36.2977294921875, -0.8336976170539856; +36.39772415161133, -0.8329376578330994; +36.497718811035156, -0.8311420679092407; +36.59770965576172, -0.8295252919197083; +36.69770431518555, -0.829257071018219; +36.797698974609375, -0.8304119110107422; +36.8976936340332, -0.8321553468704224; +36.997684478759766, -0.8339956402778625; +37.097679138183594, -0.8355379104614258; +37.19767379760742, -0.8355528116226196; +37.29766845703125, -0.8340254426002502; +37.39766311645508, -0.8326545357704163; +37.49765396118164, -0.8328929543495178; +37.59764862060547, -0.8347854018211365; +37.6976432800293, -0.8370652794837952; +37.797637939453125, -0.8390247821807861; +37.89762878417969, -0.8407682180404663; +37.997623443603516, -0.8422359824180603; +38.097618103027344, -0.8433908224105835; +38.19761276245117, -0.8440613746643066; +38.297603607177734, -0.8448734879493713; +38.39759826660156, -0.8469521999359131; +38.49759292602539, -0.8497312664985657; +38.59758758544922, -0.8522719144821167; +38.69757843017578, -0.8541718125343323; +38.79757308959961, -0.8552595973014832; +38.89756774902344, -0.8551180362701416; +38.997562408447266, -0.8539333939552307; +39.09755325317383, -0.8523985743522644; +39.197547912597656, -0.8507817983627319; +39.297542572021484, -0.8490979671478271; +39.39753723144531, -0.8481889963150024; +39.49753189086914, -0.8488595485687256; +39.5975227355957, -0.8501559495925903; +39.69751739501953, -0.8512511849403381; +39.79751205444336, -0.8514821529388428; +39.89750671386719, -0.8503273129463196; +39.99749755859375, -0.8476078510284424; +40.09749221801758, -0.8448809385299683; +40.197486877441406, -0.8438080549240112; +40.297481536865234, -0.8443742990493774; +40.3974723815918, -0.8458644151687622; +40.497467041015625, -0.8481144905090332; +40.59746170043945, -0.8513405919075012; +40.69745635986328, -0.85429847240448; +40.797447204589844, -0.8560940623283386; +40.89744186401367, -0.8575916290283203; +40.9974365234375, -0.859290361404419; +41.09743118286133, -0.8609369397163391; +41.19742202758789, -0.8606836199760437; +41.29741668701172, -0.858604907989502; +41.39741134643555, -0.8559301495552063; +41.497406005859375, -0.8535310626029968; +41.59739685058594, -0.8517205715179443; +41.697391510009766, -0.8505135774612427; +41.797386169433594, -0.851459801197052; +41.89738082885742, -0.8539706468582153; +41.99737548828125, -0.8565336465835571; +42.09736633300781, -0.8576363325119019; +42.19736099243164, -0.8586868643760681; +42.29735565185547, -0.8611083030700684; +42.3973503112793, -0.8637309074401855; +42.49734115600586, -0.8652210235595703; +42.59733581542969, -0.8655712008476257; +42.697330474853516, -0.8662492036819458; +42.797325134277344, -0.8665025234222412; +42.897315979003906, -0.8651986718177795; +42.997310638427734, -0.8621960878372192; +43.09730529785156, -0.8598491549491882; +43.19729995727539, -0.8590370416641235; +43.29729080200195, -0.8588135242462158; +43.39728546142578, -0.8590593934059143; +43.49728012084961, -0.8603036403656006; +43.59727478027344, -0.863783061504364; +43.697265625, -0.8672550320625305; +43.79726028442383, -0.8684247732162476; +43.897254943847656, -0.8671879768371582; +43.997249603271484, -0.865057110786438; +44.09724426269531, -0.8636713027954102; +44.197235107421875, -0.8622556924819946; +44.2972297668457, -0.8610561490058899; +44.39722442626953, -0.8615925908088684; +44.49721908569336, -0.864759087562561; +44.59720993041992, -0.8691176772117615; +44.69720458984375, -0.8726716041564941; +44.79719924926758, -0.8753985166549683; +44.897193908691406, -0.8776858448982239; +44.99718475341797, -0.8792504668235779; +45.0971794128418, -0.8793622255325317; +45.197174072265625, -0.8785277605056763; +45.29716873168945, -0.8778125047683716; +45.397159576416016, -0.8779838681221008; +45.497154235839844, -0.8780211210250854; +45.59714889526367, -0.8781775832176208; +45.6971435546875, -0.8785054087638855; +45.79713439941406, -0.8785948157310486; +45.89712905883789, -0.877678394317627; +45.99712371826172, -0.8757710456848145; +46.09711837768555, -0.8753761649131775; +46.19710922241211, -0.8761435747146606; +46.29710388183594, -0.8775815367698669; +46.397098541259766, -0.8795261383056641; +46.497093200683594, -0.882275402545929; +46.59708786010742, -0.8852779865264893; +46.697078704833984, -0.8873865008354187; +46.79707336425781, -0.8887499570846558; +46.89706802368164, -0.8896365761756897; +46.99706268310547, -0.8907392621040344; +47.09705352783203, -0.8923932909965515; +47.19704818725586, -0.8947402238845825; +47.29704284667969, -0.8979290723800659; +47.397037506103516, -0.9021013975143433; +47.49702835083008, -0.9067431092262268; +47.597023010253906, -0.9101256728172302; +47.697017669677734, -0.9111836552619934; +47.79701232910156, -0.9107962250709534; +47.897003173828125, -0.9094104170799255; +47.99699783325195, -0.907309353351593; +48.09699249267578, -0.9059756994247437; +48.19698715209961, -0.9066015481948853; +48.29697799682617, -0.9090080857276917; +48.39697265625, -0.9113624691963196; +48.49696731567383, -0.9132325649261475; +48.596961975097656, -0.9150207042694092; +48.696956634521484, -0.9158104658126831; +48.79694747924805, -0.9156018495559692; +48.896942138671875, -0.9158775210380554; +48.9969367980957, -0.9181126952171326; +49.09693145751953, -0.9216442704200745; +49.196922302246094, -0.9248554706573486; +49.29691696166992, -0.9275898337364197; +49.39691162109375, -0.9299218654632568; +49.49690628051758, -0.9311661124229431; +49.59689712524414, -0.9311139583587646; +49.69689178466797, -0.9307265281677246; +49.7968864440918, -0.9316280484199524; +49.896881103515625, -0.9337142109870911; +49.99687194824219, -0.9362772107124329; +50.096866607666016, -0.9385272860527039; +50.196861267089844, -0.9401962161064148; +50.29685592651367, -0.9416043758392334; +50.396846771240234, -0.9433329105377197; +50.49684143066406, -0.9456127882003784; +50.59683609008789, -0.9481459856033325; +50.69683074951172, -0.9502619504928589; +50.79682159423828, -0.9517967700958252; +50.89681625366211, -0.9527802467346191; +50.99681091308594, -0.9527057409286499; +51.096805572509766, -0.9524300694465637; +51.196800231933594, -0.9523928165435791; +51.296791076660156, -0.9533539414405823; +51.396785736083984, -0.9523779153823853; +51.49678039550781, -0.934891402721405; +51.59677505493164, -0.8721873164176941; +51.6967658996582, -0.7335543632507324; +51.79676055908203, -0.5072951316833496; +51.89675521850586, -0.20576268434524536; +51.99674987792969, 0.1462996006011963; +52.09674072265625, 0.5195662379264832; +52.19673538208008, 0.8816048502922058; +52.296730041503906, 1.2023746967315674; +52.396724700927734, 1.4648363590240479; +52.4967155456543, 1.6669780015945435; +52.596710205078125, 1.8133670091629028; +52.69670486450195, 1.9101426601409912; +52.79669952392578, 1.9649863243103027; +52.896690368652344, 1.988425850868225; +52.99668502807617, 1.9937753677368164; +53.0966796875, 1.997530460357666; +53.19667434692383, 2.025693655014038; +53.296669006347656, 2.114377975463867; +53.39665985107422, 2.295680284500122; +53.49665451049805, 2.5792269706726074; +53.596649169921875, 2.9509365558624268; +53.6966438293457, 3.3932180404663086; +53.796634674072266, 3.8880631923675537; +53.896629333496094, 4.389382839202881; +53.99662399291992, 4.832126140594482; +54.09661865234375, 5.180843353271484; +54.19660949707031, 5.456648826599121; +54.29660415649414, 5.707479953765869; +54.39659881591797, 5.968190670013428; +54.4965934753418, 6.275631427764893; +54.59658432006836, 6.676450252532959; +54.69657897949219, 7.209859848022461; +54.796573638916016, 7.892206192016602; +54.896568298339844, 8.720904350280762; +54.996559143066406, 9.688846588134766; +55.096553802490234, 10.774917602539062; +55.19654846191406, 11.924676895141602; +55.29654312133789, 13.038061141967773; +55.39653396606445, 13.991199493408203; +55.49652862548828, 14.676697731018066; +55.59652328491211, 15.036262512207031; +55.69651794433594, 15.077180862426758; +55.796512603759766, 14.870584487915039; +55.89650344848633, 14.529951095581055; +55.996498107910156, 14.16759967803955; +56.096492767333984, 13.867944717407227; +56.19648742675781, 13.673782348632812; +56.296478271484375, 13.57854175567627; +56.3964729309082, 13.540148735046387; +56.49646759033203, 13.515413284301758; +56.59646224975586, 13.483166694641113; +56.69645309448242, 13.436436653137207; +56.79644775390625, 13.3712739944458; +56.89644241333008, 13.290606498718262; +56.996437072753906, 13.200387001037598; +57.09642791748047, 13.097837448120117; +57.1964225769043, 12.968972206115723; +57.296417236328125, 12.80026912689209; +57.39641189575195, 12.588366508483887; +57.496402740478516, 12.339532852172852; +57.596397399902344, 12.06690788269043; +57.69639205932617, 11.78907585144043; +57.79638671875, 11.526115417480469; +57.89637756347656, 11.284671783447266; +57.99637222290039, 11.050365447998047; +58.09636688232422, 10.797805786132812; +58.19636154174805, 10.520882606506348; +58.296356201171875, 10.24797534942627; +58.39634704589844, 10.02901840209961; +58.496341705322266, 9.921066284179688; +58.596336364746094, 9.97978401184082; +58.69633102416992, 10.242626190185547; +58.796321868896484, 10.695390701293945; +58.89631652832031, 11.259384155273438; +58.99631118774414, 11.82548713684082; +59.09630584716797, 12.295387268066406; +59.19629669189453, 12.599647521972656; +59.29629135131836, 12.703508377075195; +59.39628601074219, 12.611844062805176; +59.496280670166016, 12.367114067077637; +59.59627151489258, 12.027032852172852; +59.696266174316406, 11.639811515808105; +59.796260833740234, 11.23692798614502; +59.89625549316406, 10.83703327178955; +59.996246337890625, 10.45355224609375; +60.09624099731445, 10.095663070678711; +60.19623565673828, 9.767569541931152; +60.29623031616211, 9.472168922424316; +60.39622497558594, 9.21170425415039; +60.4962158203125, 8.985206604003906; +60.59621047973633, 8.786603927612305; +60.696205139160156, 8.609443664550781; +60.796199798583984, 8.451178550720215; +60.89619064331055, 8.313796997070312; +60.996185302734375, 8.202113151550293; +61.0961799621582, 8.122936248779297; +61.19617462158203, 8.075028419494629; +61.296165466308594, 8.01864242553711; +61.39616012573242, 7.8545732498168945; +61.49615478515625, 7.449984550476074; +61.59614944458008, 6.708249568939209; +61.69614028930664, 5.610294818878174; +61.79613494873047, 4.206411361694336; +61.8961296081543, 2.6043355464935303; +61.996124267578125, 0.9676441550254822; +62.09611511230469, -0.5167722702026367; +62.196109771728516, -1.713573932647705; +62.296104431152344, -2.5822372436523438; +62.39609909057617, -3.160446882247925; +62.496089935302734, -3.5232231616973877; +62.59608459472656, -3.7518739700317383; +62.69607925415039, -3.913573980331421; +62.79607391357422, -4.045285224914551; +62.89606857299805, -4.153430461883545; +62.99605941772461, -4.225261688232422; +63.09605407714844, -4.239410400390625; +63.196048736572266, -4.177123069763184; +63.296043395996094, -4.0365753173828125; +63.396034240722656, -3.846719741821289; +63.496028900146484, -3.665931463241577; +63.59602355957031, -3.5584940910339355; +63.69601821899414, -3.5656094551086426; +63.7960090637207, -3.692418336868286; +63.89600372314453, -3.913998603820801; +63.99599838256836, -4.18536376953125; +64.09599304199219, -4.4501872062683105; +64.19598388671875, -4.6530442237854; +64.29598236083984, -4.761025428771973; +64.3959732055664, -4.7765374183654785; +64.49596405029297, -4.731267929077148; +64.59596252441406, -4.666998863220215; +64.69595336914062, -4.622064590454102; +64.79594421386719, -4.631548881530762; +64.89594268798828, -4.722505569458008; +64.99593353271484, -4.896320343017578; +65.09593200683594, -5.113497257232666; +65.1959228515625, -5.307160377502441; +65.29591369628906, -5.413830280303955; +65.39591217041016, -5.39313268661499; +65.49590301513672, -5.228295803070068; +65.59590148925781, -4.929803371429443; +65.69589233398438, -4.5408830642700195; +65.79588317871094, -4.127144813537598; +65.89588165283203, -3.7501230239868164; +65.9958724975586, -3.4467577934265137; +66.09586334228516, -3.227829933166504; +66.19586181640625, -3.088273048400879; +66.29585266113281, -3.017261505126953; +66.3958511352539, -3.003917694091797; +66.49584197998047, -3.0380189418792725; +66.59583282470703, -3.108888864517212; +66.69583129882812, -3.2074899673461914; +66.79582214355469, -3.326162815093994; +66.89581298828125, -3.457367420196533; +66.99581146240234, -3.5908446311950684; +67.0958023071289, -3.713809013366699; +67.19580078125, -3.8151814937591553; +67.29579162597656, -3.885410785675049; +67.39578247070312, -3.919847249984741; +67.49578094482422, -3.917783498764038; +67.59577178955078, -3.8818345069885254; +67.69577026367188, -3.8192272186279297; +67.79576110839844, -3.737427234649658; +67.895751953125, -3.6442055702209473; +67.9957504272461, -3.539785861968994; +68.09574127197266, -3.4167394638061523; +68.19573211669922, -3.2629966735839844; +68.29573059082031, -3.0614137649536133; +68.39572143554688, -2.7945563793182373; +68.49571990966797, -2.44981050491333; +68.59571075439453, -2.0267739295959473; +68.6957015991211, -1.5456304550170898; +68.79570007324219, -1.0578781366348267; +68.89569091796875, -0.6527751684188843; +68.99568176269531, -0.4355087876319885; +69.0956802368164, -0.4805624485015869; +69.19567108154297, -0.8015856146812439; +69.29566955566406, -1.3498514890670776; +69.39566040039062, -2.03139328956604; +69.49565124511719, -2.727895975112915; +69.59564971923828, -3.329329252243042; +69.69564056396484, -3.7730112075805664; +69.79563903808594, -4.054091930389404; +69.8956298828125, -4.206411361694336; +69.99562072753906, -4.272878170013428; +70.09561920166016, -4.283823013305664; +70.19561004638672, -4.240475654602051; +70.29560089111328, -4.108168125152588; +70.39559936523438, -3.83677339553833; +70.49559020996094, -3.397650957107544; +70.59558868408203, -2.8112456798553467; +70.6955795288086, -2.144835948944092; +70.79557037353516, -1.4883055686950684; +70.89556884765625, -0.9308531880378723; +70.99555969238281, -0.5487501621246338; +71.09555053710938, -0.3978237509727478; +71.19554901123047, -0.4984438419342041; +71.29553985595703, -0.8300095796585083; +71.39553833007812, -1.3460144996643066; +71.49552917480469, -1.9918010234832764; +71.59552001953125, -2.7072951793670654; +71.69551849365234, -3.421701431274414; +71.7955093383789, -4.065237998962402; +71.8955078125, -4.5824198722839355; +71.99549865722656, -4.941098213195801; +72.09548950195312, -5.139946937561035; +72.19548797607422, -5.210533618927002; +72.29547882080078, -5.205005645751953; +72.39546966552734, -5.170792579650879; +72.49546813964844, -5.139529705047607; +72.595458984375, -5.128383636474609; +72.6954574584961, -5.144826889038086; +72.79544830322266, -5.189918041229248; +72.89543914794922, -5.260802745819092; +72.99543762207031, -5.349323272705078; +73.09542846679688, -5.440041542053223; +73.19541931152344, -5.512818813323975; +73.29541778564453, -5.551457405090332; +73.3954086303711, -5.547613143920898; +73.49540710449219, -5.4998321533203125; +73.59539794921875, -5.41470193862915; +73.69538879394531, -5.30695915222168; +73.7953872680664, -5.200326442718506; +73.89537811279297, -5.119316101074219; +73.99536895751953, -5.082510471343994; +74.09536743164062, -5.100637435913086; +74.19535827636719, -5.175590515136719; +74.29535675048828, -5.300894260406494; +74.39534759521484, -5.458362579345703; +74.4953384399414, -5.617626190185547; +74.5953369140625, -5.737915515899658; +74.69532775878906, -5.775638103485107; +74.79532623291016, -5.702711582183838; +74.89531707763672, -5.519702911376953; +74.99530792236328, -5.255251884460449; +75.09530639648438, -4.955127716064453; +75.19529724121094, -4.671819686889648; +75.2952880859375, -4.454262733459473; +75.3952865600586, -4.332736015319824; +75.49527740478516, -4.309535026550293; +75.59527587890625, -4.362635135650635; +75.69526672363281, -4.457794189453125; +75.79525756835938, -4.557445526123047; +75.89525604248047, -4.626072883605957; +75.99524688720703, -4.635892868041992; +76.0952377319336, -4.572637557983398; +76.19523620605469, -4.43868350982666; +76.29522705078125, -4.254110336303711; +76.39522552490234, -4.051931381225586; +76.4952163696289, -3.8696155548095703; +76.59520721435547, -3.737509250640869; +76.69520568847656, -3.6690757274627686; +76.79519653320312, -3.6611409187316895; +76.89519500732422, -3.6985204219818115; +76.99518585205078, -3.762655019760132; +77.09517669677734, -3.8363561630249023; +77.19517517089844, -3.9055795669555664; +77.295166015625, -3.9585976600646973; +77.39515686035156, -3.9805471897125244; +77.49515533447266, -3.9560422897338867; +77.59514617919922, -3.8761868476867676; +77.69514465332031, -3.7450194358825684; +77.79513549804688, -3.5782084465026855; +77.89512634277344, -3.3980534076690674; +77.99512481689453, -3.2304153442382812; +78.0951156616211, -3.0957162380218506; +78.19510650634766, -3.0008480548858643; +78.29510498046875, -2.9381587505340576; +78.39509582519531, -2.893887519836426; +78.4950942993164, -2.8583481311798096; +78.59508514404297, -2.82810640335083; +78.69507598876953, -2.801701545715332; +78.79507446289062, -2.7722268104553223; +78.89506530761719, -2.7247443199157715; +78.99506378173828, -2.6401355266571045; +79.09505462646484, -2.502657413482666; +79.1950454711914, -2.304583787918091; +79.2950439453125, -2.0487160682678223; +79.39503479003906, -1.7519071102142334; +79.49502563476562, -1.4421045780181885; +79.59502410888672, -1.149192452430725; +79.69501495361328, -0.8929893374443054; +79.79501342773438, -0.680387020111084; +79.89500427246094, -0.5095899105072021; +79.9949951171875, -0.3745630383491516; +80.0949935913086, -0.26810914278030396; +80.19498443603516, -0.18333643674850464; +80.29497528076172, -0.11474639177322388; +80.39497375488281, -0.058181583881378174; +80.49496459960938, -0.010535120964050293; +80.59496307373047, 0.030696392059326172; +80.69495391845703, 0.067196786403656; +80.7949447631836, 0.09974837303161621; +80.89494323730469, 0.12943893671035767; +80.99493408203125, 0.15763938426971436; +81.09493255615234, 0.18434971570968628; +81.1949234008789, 0.20928680896759033; +81.29491424560547, 0.23218244314193726; +81.39491271972656, 0.2530142664909363; +81.49490356445312, 0.27044862508773804; +81.59489440917969, 0.2834051847457886; +81.69489288330078, 0.2926662564277649; +81.79488372802734, 0.29921531677246094; +81.89488220214844, 0.3039911389350891; +81.994873046875, 0.30838698148727417; +82.09486389160156, 0.3137737512588501; +82.19486236572266, 0.3198161721229553; +82.29485321044922, 0.3253147006034851; +82.39484405517578, 0.32970309257507324; +82.49484252929688, 0.3332868218421936; +82.59483337402344, 0.3359168767929077; +82.69483184814453, 0.33723562955856323; +82.7948226928711, 0.3372207283973694; +82.89481353759766, 0.336669385433197; +82.99481201171875, 0.3360137343406677; +83.09480285644531, 0.33546239137649536; +83.19479370117188, 0.3341957926750183; +83.29479217529297, 0.33198297023773193; +83.39478302001953, 0.3310889005661011; +83.49478149414062, 0.33502280712127686; +83.59477233886719, 0.3497004508972168; +83.69476318359375, 0.3812462091445923; +83.79476165771484, 0.4361644387245178; +83.8947525024414, 0.5192309617996216; +83.9947509765625, 0.6353482604026794; +84.09474182128906, 0.8005350828170776; +84.19473266601562, 1.0551884174346924; +84.29473114013672, 1.4444142580032349; +84.39472198486328, 1.9610822200775146; +84.49471282958984, 2.541191816329956; +84.59471130371094, 3.113255023956299; +84.6947021484375, 3.634594440460205; +84.7947006225586, 4.052847862243652; +84.89469146728516, 4.284612655639648; +84.99468231201172, 4.280731201171875; +85.09468078613281, 4.058554649353027; +85.19467163085938, 3.6664233207702637; +85.29466247558594, 3.1384081840515137; +85.39466094970703, 2.506345510482788; +85.4946517944336, 1.8308013677597046; +85.59465026855469, 1.1849403381347656; +85.69464111328125, 0.6280466914176941; +85.79463195800781, 0.18961727619171143; +85.8946304321289, -0.13274699449539185; +85.99462127685547, -0.36103278398513794; +86.09461975097656, -0.5214959383010864; +86.19461059570312, -0.6348714232444763; +86.29460144042969, -0.7149428129196167; +86.39459991455078, -0.7729381322860718; +86.49459075927734, -0.81644207239151; +86.5945816040039, -0.8491277694702148; +86.694580078125, -0.8735880255699158; +86.79457092285156, -0.8913874626159668; +86.89456939697266, -0.9050294756889343; +86.99456024169922, -0.9150579571723938; +87.09455108642578, -0.9219422936439514; +87.19454956054688, -0.9261816740036011; +87.29454040527344, -0.9287223219871521; +87.39453125, -0.9312853217124939; +87.4945297241211, -0.934407114982605; +87.59452056884766, -0.9382143616676331; +87.69451904296875, -0.9425505995750427; +87.79450988769531, -0.9477213025093079; +87.89450073242188, -0.9533986449241638; +87.99449920654297, -0.9584352374076843; +88.09449005126953, -0.9627565741539001; +88.19448852539062, -0.9674355387687683; +88.29447937011719, -0.9731203317642212; +88.39447021484375, -0.9787753224372864; +88.49446868896484, -0.9827017784118652; +88.5944595336914, -0.9847134351730347; +88.69445037841797, -0.9859949350357056; +88.79444885253906, -0.9871348738670349; +88.89443969726562, -0.9882897138595581; +88.99443817138672, -0.9900480508804321; +89.09442901611328, -0.9937137365341187; +89.19441986083984, -0.9988248348236084; +89.29441833496094, -1.003138780593872; +89.3944091796875, -1.0060443878173828; +89.49440002441406, -1.0079294443130493; +89.59439849853516, -1.009352445602417; +89.69438934326172, -1.0099186897277832; +89.79438781738281, -1.0097250938415527; +89.89437866210938, -1.0099635124206543; +89.99436950683594, -1.0103881359100342; +90.09436798095703, -1.0104551315307617; +90.1943588256836, -1.0101646184921265; +90.29434967041016, -1.0098814964294434; +90.39434814453125, -1.0099411010742188; +90.49433898925781, -1.0098741054534912; +90.5943374633789, -1.0101348161697388; +90.69432830810547, -1.0109617710113525; +90.79431915283203, -1.0114014148712158; +90.89431762695312, -1.011200189590454; +90.99430847167969, -1.0112076997756958; +91.09430694580078, -1.0119154453277588; +91.19429779052734, -1.0129213333129883; +91.2942886352539, -1.0139495134353638; +91.394287109375, -1.0155365467071533; +91.49427795410156, -1.018330454826355; +91.59426879882812, -1.0213106870651245; +91.69426727294922, -1.0234043598175049; +91.79425811767578, -1.0240674018859863; +91.89425659179688, -1.0236352682113647; +91.99424743652344, -1.02292001247406; +92.09423828125, -1.0211541652679443; +92.1942367553711, -1.0183602571487427; +92.29422760009766, -1.0153577327728271; +92.39421844482422, -1.0133534669876099; +92.49421691894531, -1.0124444961547852; +92.59420776367188, -1.0124967098236084; +92.69420623779297, -1.0129287242889404; +92.79419708251953, -1.0130256414413452; +92.8941879272461, -1.0122730731964111; +92.99418640136719, -1.0107085704803467; +93.09417724609375, -1.0091140270233154; +93.19417572021484, -1.0070651769638062; +93.2941665649414, -1.0051578283309937; +93.39415740966797, -1.004144549369812; +93.49415588378906, -1.0049118995666504; +93.59414672851562, -1.0077133178710938; +93.69413757324219, -1.0113193988800049; +93.79413604736328, -1.0143369436264038; +93.89412689208984, -1.0158717632293701; +93.99412536621094, -1.0157227516174316; +94.0941162109375, -1.0147616863250732; +94.19410705566406, -1.013427972793579; +94.29410552978516, -1.0118186473846436; +94.39409637451172, -1.010514736175537; +94.49408721923828, -1.0104403495788574; +94.59408569335938, -1.0123401880264282; +94.69407653808594, -1.0144188404083252; +94.79407501220703, -1.0140762329101562; +94.8940658569336, -1.0114014148712158; +94.99405670166016, -1.008324384689331; +95.09405517578125, -1.0060741901397705; +95.19404602050781, -1.0040998458862305; +95.2940444946289, -1.0016858577728271; +95.39403533935547, -1.0002553462982178; +95.49402618408203, -1.0008960962295532; +95.59402465820312, -1.0036005973815918; +95.69401550292969, -1.0064914226531982; +95.79400634765625, -1.0078251361846924; +95.89400482177734, -1.0081231594085693; +95.9939956665039, -1.0082497596740723; +96.093994140625, -1.0085105895996094; +96.19398498535156, -1.006990671157837; +96.29397583007812, -1.0038018226623535; +96.39397430419922, -1.0013208389282227; +96.49396514892578, -1.0010749101638794; +96.59395599365234, -1.0014996528625488; +96.69395446777344, -1.0001733303070068; +96.7939453125, -0.998176634311676; +96.8939437866211, -0.9971708059310913; +96.99393463134766, -0.9970963001251221; +97.09392547607422, -0.997588038444519; +97.19392395019531, -0.9994879364967346; +97.29391479492188, -1.0027438402175903; +97.39391326904297, -1.0055675506591797; +97.49390411376953, -1.0069161653518677; +97.5938949584961, -1.0076463222503662; +97.69389343261719, -1.0081901550292969; +97.79388427734375, -1.0085254907608032; +97.89387512207031, -1.0091066360473633; +97.9938735961914, -1.010015606880188; +98.09386444091797, -1.0105297565460205; +98.19386291503906, -1.0101869106292725; +98.29385375976562, -1.0089352130889893; +98.39384460449219, -1.0061933994293213; +98.49384307861328, -1.0018795728683472; +98.59383392333984, -0.9969323873519897; +98.6938247680664, -0.9935647249221802; +98.7938232421875, -0.9922832250595093; +98.89381408691406, -0.9924396872520447; +98.99381256103516, -0.9933561086654663; +99.09380340576172, -0.9944289922714233; +99.19379425048828, -0.9962543845176697; +99.29379272460938, -0.9979009628295898; +99.39378356933594, -0.9987428784370422; +99.4937744140625, -0.9987354278564453; +99.5937728881836, -0.9987726807594299; +99.69376373291016, -1.0001733303070068; +99.79376220703125, -1.0021030902862549; +99.89375305175781, -1.0044127702713013; +99.99374389648438, -1.0063574314117432; +100.09374237060547, -1.0076537132263184; +100.19373321533203, -1.007340908050537; +100.29373168945312, -1.0052695274353027; +100.39372253417969, -1.0027215480804443; +100.49371337890625, -1.0001808404922485; +100.59371185302734, -0.9983927011489868; +100.6937026977539, -0.9969770908355713; +100.79369354248047, -0.996902585029602; +100.89369201660156, -0.9982660412788391; +100.99368286132812, -1.0007693767547607; +101.09368133544922, -1.0035560131072998; +101.19367218017578, -1.005582571029663; +101.29366302490234, -1.0068118572235107; +101.39366149902344, -1.0073258876800537; +101.49365234375, -1.0077431201934814; +101.59364318847656, -1.0077953338623047; +101.69364166259766, -1.0074079036712646; +101.79363250732422, -1.006394624710083; +101.89363098144531, -1.0054707527160645; +101.99362182617188, -1.0059998035430908; +102.09361267089844, -1.0076687335968018; +102.19361114501953, -1.010015606880188; +102.2936019897461, -1.012548804283142; +102.39360046386719, -1.015700340270996; +102.49359130859375, -1.019127607345581; +102.59358215332031, -1.0205060243606567; +102.6935806274414, -1.0191947221755981; +102.79357147216797, -1.0159835815429688; +102.89356231689453, -1.0123178958892822; +102.99356079101562, -1.0092482566833496; +103.09355163574219, -1.0072588920593262; +103.19355010986328, -1.0065808296203613; +103.29354095458984, -1.0060443878173828; +103.3935317993164, -1.004934310913086; +103.4935302734375, -1.0040998458862305; +103.59352111816406, -1.0035858154296875; +103.69351196289062, -1.0025129318237305; +103.79351043701172, -1.0010228157043457; +103.89350128173828, -1.0013729333877563; +103.99349975585938, -1.0039359331130981; +104.09349060058594, -1.0061264038085938; +104.1934814453125, -1.00746750831604; +104.2934799194336, -1.009307861328125; +104.39347076416016, -1.0126829147338867; +104.49346923828125, -1.01552152633667; +104.59346008300781, -1.0165796279907227; +104.69345092773438, -1.016572117805481; +104.79344940185547, -1.015990972518921; +104.89344024658203, -1.0151638984680176; +104.9934310913086, -1.0134577751159668; +105.09342956542969, -1.0117814540863037; +105.19342041015625, -1.0111258029937744; +105.29341888427734, -1.0121538639068604; +105.3934097290039, -1.0131746530532837; +105.49340057373047, -1.012437105178833; +105.59339904785156, -1.0105818510055542; +105.69338989257812, -1.0085477828979492; +105.79338073730469, -1.006975769996643; +105.89337921142578, -1.005411148071289; +105.99337005615234, -1.0047703981399536; +106.09336853027344, -1.0051727294921875; +106.193359375, -1.0061115026474; +106.29335021972656, -1.0074303150177002; +106.39334869384766, -1.0091140270233154; +106.49333953857422, -1.011110782623291; +106.59333801269531, -1.0123028755187988; +106.69332885742188, -1.0128543376922607; +106.79331970214844, -1.0128393173217773; +106.89331817626953, -1.0120198726654053; +106.9933090209961, -1.0098590850830078; +107.09329986572266, -1.0068938732147217; +107.19329833984375, -1.0050759315490723; +107.29328918457031, -1.0050535202026367; +107.3932876586914, -1.0062307119369507; +107.49327850341797, -1.0073184967041016; +107.59326934814453, -1.0080561637878418; +107.69326782226562, -1.0085701942443848; +107.79325866699219, -1.0081603527069092; +107.89324951171875, -1.006953477859497; +107.99324798583984, -1.0054707527160645; +108.0932388305664, -1.0049790143966675; +108.1932373046875, -1.0054185390472412; +108.29322814941406, -1.006223201751709; +108.39321899414062, -1.0074303150177002; +108.49321746826172, -1.009032130241394; +108.59320831298828, -1.0104775428771973; +108.69319915771484, -1.0117590427398682; +108.79319763183594, -1.0131969451904297; +108.8931884765625, -1.0147616863250732; +108.9931869506836, -1.0163559913635254; +109.09317779541016, -1.017153263092041; +109.19316864013672, -1.017242670059204; +109.29316711425781, -1.0162293910980225; +109.39315795898438, -1.0150372982025146; +109.49315643310547, -1.014605164527893; +109.59314727783203, -1.01432204246521; +109.6931381225586, -1.0142102241516113; +109.79313659667969, -1.0144710540771484; +109.89312744140625, -1.0153279304504395; +109.99311828613281, -1.0154173374176025; +110.0931167602539, -1.01350998878479; +110.19310760498047, -1.0114014148712158; +110.29310607910156, -1.0103657245635986; +110.39309692382812, -1.010768175125122; +110.49308776855469, -1.0117366313934326; +110.59308624267578, -1.0126084089279175; +110.69307708740234, -1.0134353637695312; +110.7930679321289, -1.0133757591247559; +110.89306640625, -1.0126307010650635; +110.99305725097656, -1.011498212814331; +111.09305572509766, -1.011192798614502; +111.19304656982422, -1.0125190019607544; +111.29303741455078, -1.0148435831069946; +111.39303588867188, -1.0167807340621948; +111.49302673339844, -1.018010139465332; +111.59302520751953, -1.0194182395935059; +111.6930160522461, -1.020200490951538; +111.79300689697266, -1.0195746421813965; +111.89300537109375, -1.0182335376739502; +111.99299621582031, -1.0182708501815796; +112.09298706054688, -1.0198354721069336; +112.19298553466797, -1.0211914777755737; +112.29297637939453, -1.0222718715667725; +112.39297485351562, -1.0237842798233032; +112.49296569824219, -1.025848150253296; +112.59295654296875, -1.0277106761932373; +112.69295501708984, -1.0288059711456299; +112.7929458618164, -1.0299608707427979; +112.89293670654297, -1.0312646627426147; +112.99293518066406, -1.0325982570648193; +113.09292602539062, -1.033864974975586; +113.19292449951172, -1.035347580909729; +113.29291534423828, -1.03678560256958; +113.39290618896484, -1.0369791984558105; +113.49290466308594, -1.035757303237915; +113.5928955078125, -1.0341777801513672; +113.6928939819336, -1.033700942993164; +113.79288482666016, -1.0345206260681152; +113.89287567138672, -1.0361820459365845; +113.99287414550781, -1.0387003421783447; +114.09286499023438, -1.0426714420318604; +114.19285583496094, -1.0474026203155518; +114.29285430908203, -1.050673484802246; +114.3928451538086, -1.051567554473877; +114.49284362792969, -1.051589846611023; +114.59283447265625, -1.0526702404022217; +114.69282531738281, -1.0538995265960693; +114.7928237915039, -1.0542347431182861; +114.89281463623047, -1.0545551776885986; +114.99280548095703, -1.0559930801391602; +115.09280395507812, -1.0579452514648438; +115.19279479980469, -1.0587871074676514; +115.29279327392578, -1.0585858821868896; +115.39278411865234, -1.0586678981781006; +115.4927749633789, -1.0600016117095947; +115.5927734375, -1.0614917278289795; +115.69276428222656, -1.0619535446166992; +115.79275512695312, -1.0609700679779053; +115.89275360107422, -1.0596885681152344; +115.99274444580078, -1.0592788457870483; +116.09274291992188, -1.0594353675842285; +116.19273376464844, -1.05990469455719; +116.292724609375, -1.0611042976379395; +116.3927230834961, -1.0643303394317627; +116.49271392822266, -1.0691807270050049; +116.59271240234375, -1.0735690593719482; +116.69270324707031, -1.076690912246704; +116.79269409179688, -1.0785013437271118; +116.89269256591797, -1.0788142681121826; +116.99268341064453, -1.076988935470581; +117.0926742553711, -1.0741875171661377; +117.19267272949219, -1.071736216545105; +117.29266357421875, -1.069679856300354; +117.39266204833984, -1.067854404449463; +117.4926528930664, -1.0670349597930908; +117.59264373779297, -1.0681450366973877; +117.69264221191406, -1.0701268911361694; +117.79263305664062, -1.071847915649414; +117.89262390136719, -1.0729730129241943; +117.99262237548828, -1.073606252670288; +118.09261322021484, -1.0738000869750977; +118.19261169433594, -1.0728389024734497; +118.2926025390625, -1.0709240436553955; +118.39259338378906, -1.069404125213623; +118.49259185791016, -1.0684281587600708; +118.59258270263672, -1.0679736137390137; +118.69258117675781, -1.0672658681869507; +118.79257202148438, -1.0670349597930908; +118.89256286621094, -1.0678917169570923; +118.99256134033203, -1.0692030191421509; +119.0925521850586, -1.0705292224884033; +119.19254302978516, -1.0718107223510742; +119.29254150390625, -1.0743513107299805; +119.39253234863281, -1.0779350996017456; +119.4925308227539, -1.0806024074554443; +119.59252166748047, -1.0809898376464844; +119.69251251220703, -1.0803415775299072; +119.79251098632812, -1.0804086923599243; +119.89250183105469, -1.0802745819091797; +119.99249267578125, -1.078575849533081; +120.09249114990234, -1.0766088962554932; +120.1924819946289, -1.0762288570404053; +120.29248046875, -1.0768622159957886; +120.39247131347656, -1.07671320438385; +120.49246215820312, -1.0764896869659424; +120.59246063232422, -1.0772496461868286; +120.69245147705078, -1.0779649019241333; +120.79244995117188, -1.0767579078674316; +120.89244079589844, -1.0746941566467285; +120.992431640625, -1.0735541582107544; +121.0924301147461, -1.0734498500823975; +121.19242095947266, -1.0741353034973145; +121.29241180419922, -1.075871229171753; +121.39241027832031, -1.0793060064315796; +121.49240112304688, -1.0823979377746582; +121.59239959716797, -1.08376145362854; +121.69239044189453, -1.0837316513061523; +121.7923812866211, -1.0826661586761475; +121.89237976074219, -1.0813846588134766; +121.99237060546875, -1.0793358087539673; +122.09236145019531, -1.0766983032226562; +122.1923599243164, -1.0735318660736084; +122.29235076904297, -1.0699927806854248; +122.39234924316406, -1.0670051574707031; +122.49234008789062, -1.0645315647125244; +122.59233093261719, -1.063011646270752; +122.69232940673828, -1.0631531476974487; +122.79232025146484, -1.0650827884674072; +122.89231872558594, -1.0670497417449951; +122.9923095703125, -1.0671541690826416; +123.09230041503906, -1.0652095079421997; +123.19229888916016, -1.0627061128616333; +123.29228973388672, -1.0605528354644775; +123.39228057861328, -1.057915449142456; +123.49227905273438, -1.0554864406585693; +123.59226989746094, -1.0546296834945679; +123.69226837158203, -1.0557174682617188; +123.7922592163086, -1.0572149753570557; +123.89225006103516, -1.0571255683898926; +123.99224853515625, -1.0563209056854248; +124.09223937988281, -1.0556354522705078; +124.19223022460938, -1.054994821548462; +124.29222869873047, -1.053348183631897; +124.39221954345703, -1.0510458946228027; +124.49221801757812, -1.0496526956558228; +124.59220886230469, -1.049146056175232; +124.69219970703125, -1.0483413934707642; +124.79219818115234, -1.0462925434112549; +124.8921890258789, -1.0434315204620361; +124.99217987060547, -1.0393708944320679; +125.09217834472656, -1.0339245796203613; +125.19216918945312, -1.027613878250122; +125.29216766357422, -1.0215566158294678; +125.39215850830078, -1.0164008140563965; +125.49214935302734, -1.0124295949935913; +125.59214782714844, -1.010298728942871; +125.692138671875, -1.0091438293457031; +125.7921371459961, -1.0079071521759033; +125.89212799072266, -1.0066032409667969; +125.99211883544922, -1.005023717880249; +126.09211730957031, -1.003093957901001; +126.19210815429688, -1.0003894567489624; +126.29209899902344, -0.9980574250221252; +126.39209747314453, -0.9966492652893066; +126.4920883178711, -0.9952932596206665; +126.59208679199219, -0.9941756725311279; +126.69207763671875, -0.9934157133102417; +126.79206848144531, -0.9932145476341248; +126.8920669555664, -0.9927153587341309; +126.99205780029297, -0.9917169809341431; +127.09204864501953, -0.9905695915222168; +127.19204711914062, -0.9889379143714905; +127.29203796386719, -0.9869411587715149; +127.39203643798828, -0.985175371170044; +127.49202728271484, -0.9843185544013977; +127.5920181274414, -0.9842738509178162; +127.6920166015625, -0.9842514991760254; +127.79200744628906, -0.9841024875640869; +127.89200592041016, -0.9829625487327576; +127.99199676513672, -0.9799525141716003; +128.0919952392578, -0.9755045175552368; +128.19198608398438, -0.9706541895866394; +128.29197692871094, -0.9670034050941467; +128.3919677734375, -0.963844358921051; +128.49195861816406, -0.9611546993255615; +128.5919647216797, -0.9593814611434937; +128.69195556640625, -0.9581372141838074; +128.7919464111328, -0.9569451212882996; +128.89193725585938, -0.9539425373077393; +128.99192810058594, -0.9495243430137634; +129.09193420410156, -0.9441152215003967; +129.19192504882812, -0.9386464953422546; +129.2919158935547, -0.9338259696960449; +129.39190673828125, -0.9296759963035583; +129.4918975830078, -0.9267106652259827; +129.59188842773438, -0.9244829416275024; +129.69189453125, -0.9226053953170776; +129.79188537597656, -0.9197741746902466; +129.89187622070312, -0.9151473641395569; +129.9918670654297, -0.9088218212127686; +130.09185791015625, -0.9019672870635986; +130.19186401367188, -0.8953064680099487; +130.29185485839844, -0.8885562419891357; +130.391845703125, -0.8820146322250366; +130.49183654785156, -0.876203179359436; +130.59182739257812, -0.8710399270057678; +130.69183349609375, -0.8658021688461304; +130.7918243408203, -0.8602142333984375; +130.89181518554688, -0.8552297949790955; +130.99180603027344, -0.8510351181030273; +131.091796875, -0.8472800254821777; +131.19180297851562, -0.8437708020210266; +131.2917938232422, -0.8401870727539062; +131.39178466796875, -0.8362904191017151; +131.4917755126953, -0.8312240242958069; +131.59176635742188, -0.8243843913078308; +131.69175720214844, -0.8165240287780762; +131.79176330566406, -0.8076056838035583; +131.89175415039062, -0.7978305220603943; +131.9917449951172, -0.7887110114097595; +132.09173583984375, -0.781521201133728; +132.1917266845703, -0.7765069603919983; +132.29173278808594, -0.7717609405517578; +132.3917236328125, -0.7674917578697205; +132.49171447753906, -0.7642954587936401; +132.59170532226562, -0.7617026567459106; +132.6916961669922, -0.7587224245071411; +132.7917022705078, -0.7547810673713684; +132.89169311523438, -0.750124454498291; +132.99168395996094, -0.7441788911819458; +133.0916748046875, -0.7369443774223328; +133.19166564941406, -0.7289424538612366; +133.2916717529297, -0.7207468152046204; +133.39166259765625, -0.7124394178390503; +133.4916534423828, -0.703960657119751; +133.59164428710938, -0.6956979632377625; +133.69163513183594, -0.6877928972244263; +133.7916259765625, -0.6795823574066162; +133.89163208007812, -0.670209527015686; +133.9916229248047, -0.6601065397262573; +134.09161376953125, -0.6505250930786133; +134.1916046142578, -0.6421580910682678; +134.29159545898438, -0.634215772151947; +134.3916015625, -0.6256252527236938; +134.49159240722656, -0.616610050201416; +134.59158325195312, -0.6078928709030151; +134.6915740966797, -0.6002485752105713; +134.79156494140625, -0.5933195352554321; +134.89157104492188, -0.5862265825271606; +134.99156188964844, -0.5789175629615784; +135.091552734375, -0.57220458984375; +135.19154357910156, -0.5667209625244141; +135.29153442382812, -0.5610212683677673; +135.39154052734375, -0.5533024668693542; +135.4915313720703, -0.5432218313217163; +135.59152221679688, -0.5317404866218567; +135.69151306152344, -0.5202367901802063; +135.79150390625, -0.5089491605758667; +135.89149475097656, -0.49820542335510254; +135.9915008544922, -0.48851966857910156; +136.09149169921875, -0.48045068979263306; +136.1914825439453, -0.4734918475151062; +136.29147338867188, -0.46596676111221313; +136.39146423339844, -0.4571303725242615; +136.49147033691406, -0.4473850131034851; +136.59146118164062, -0.4377439618110657; +136.6914520263672, -0.42822957038879395; +136.79144287109375, -0.41893869638442993; +136.8914337158203, -0.4100725054740906; +136.99143981933594, -0.401914119720459; +137.0914306640625, -0.3938451409339905; +137.19142150878906, -0.3847852349281311; +137.29141235351562, -0.37536025047302246; +137.3914031982422, -0.3665536642074585; +137.4914093017578, -0.3584623336791992; +137.59140014648438, -0.3493502736091614; +137.69139099121094, -0.3389716148376465; +137.7913818359375, -0.32842159271240234; +137.89137268066406, -0.3186166286468506; +137.99136352539062, -0.3093034029006958; +138.09136962890625, -0.30005723237991333; +138.1913604736328, -0.2911761403083801; +138.29135131835938, -0.28283149003982544; +138.39134216308594, -0.27551501989364624; +138.4913330078125, -0.26898831129074097; +138.59133911132812, -0.26276707649230957; +138.6913299560547, -0.2556741237640381; +138.79132080078125, -0.2473294734954834; +138.8913116455078, -0.2381354570388794; +138.99130249023438, -0.2280399203300476; +139.09130859375, -0.21700561046600342; +139.19129943847656, -0.2051815390586853; +139.29129028320312, -0.1942068338394165; +139.3912811279297, -0.1843273639678955; +139.49127197265625, -0.1750066876411438; +139.59127807617188, -0.16532838344573975; +139.69126892089844, -0.15494227409362793; +139.791259765625, -0.144176185131073; +139.89125061035156, -0.13303756713867188; +139.99124145507812, -0.12227147817611694; +140.0912322998047, -0.11184811592102051; +140.1912384033203, -0.10233372449874878; +140.29122924804688, -0.09433925151824951; +140.39122009277344, -0.08768588304519653; +140.4912109375, -0.08197873830795288; +140.59120178222656, -0.07685273885726929; +140.6912078857422, -0.07230788469314575; +140.79119873046875, -0.06701797246932983; +140.8911895751953, -0.05963444709777832; +140.99118041992188, -0.049464404582977295; +141.09117126464844, -0.037454068660736084; +141.19117736816406, -0.024333596229553223; +141.29116821289062, -0.010348856449127197; +141.3911590576172, 0.00311434268951416; +141.49114990234375, 0.015214085578918457; +141.5911407470703, 0.024572014808654785; +141.69114685058594, 0.03240257501602173; +141.7911376953125, 0.039711594581604004; +141.89112854003906, 0.04684925079345703; +141.99111938476562, 0.05488097667694092; +142.0911102294922, 0.06402283906936646; +142.19110107421875, 0.07440149784088135; +142.29110717773438, 0.08437782526016235; +142.39109802246094, 0.09272247552871704; +142.4910888671875, 0.09898096323013306; +142.59107971191406, 0.1036226749420166; +142.69107055664062, 0.10792911052703857; +142.79107666015625, 0.11335313320159912; +142.8910675048828, 0.1201927661895752; +142.99105834960938, 0.12817978858947754; +143.09104919433594, 0.13741850852966309; +143.1910400390625, 0.14737993478775024; +143.29104614257812, 0.15736371278762817; +143.3910369873047, 0.16641616821289062; +143.49102783203125, 0.17479807138442993; +143.5910186767578, 0.1825392246246338; +143.69100952148438, 0.1893937587738037; +143.791015625, 0.19540637731552124; +143.89100646972656, 0.20156800746917725; +143.99099731445312, 0.20892173051834106; +144.0909881591797, 0.21795928478240967; +144.19097900390625, 0.2285391092300415; +144.2909698486328, 0.23977458477020264; +144.39097595214844, 0.25065988302230835; +144.490966796875, 0.25968998670578003; +144.59095764160156, 0.2663657069206238; +144.69094848632812, 0.2709701657295227; +144.7909393310547, 0.2749785780906677; +144.8909454345703, 0.2800747752189636; +144.99093627929688, 0.28721243143081665; +145.09092712402344, 0.2958253026008606; +145.19091796875, 0.30510127544403076; +145.29090881347656, 0.3146529197692871; +145.3909149169922, 0.3238767385482788; +145.49090576171875, 0.33226609230041504; +145.5908966064453, 0.33936649560928345; +145.69088745117188, 0.34602731466293335; +145.79087829589844, 0.35290420055389404; +145.890869140625, 0.3598630428314209; +145.99087524414062, 0.3665164113044739; +146.0908660888672, 0.37235021591186523; +146.19085693359375, 0.37772953510284424; +146.2908477783203, 0.38279592990875244; +146.39083862304688, 0.388123095035553; +146.4908447265625, 0.3943890333175659; +146.59083557128906, 0.401519238948822; +146.69082641601562, 0.4091784358024597; +146.7908172607422, 0.41640549898147583; +146.89080810546875, 0.42307376861572266; +146.99081420898438, 0.4286915063858032; +147.09080505371094, 0.43341517448425293; +147.1907958984375, 0.43886154890060425; +147.29078674316406, 0.44555217027664185; +147.39077758789062, 0.45305490493774414; +147.49078369140625, 0.4603266716003418; +147.5907745361328, 0.4675239324569702; +147.69076538085938, 0.47460198402404785; +147.79075622558594, 0.48083066940307617; +147.8907470703125, 0.48610568046569824; +147.99073791503906, 0.49129873514175415; +148.0907440185547, 0.49749016761779785; +148.19073486328125, 0.5042403936386108; +148.2907257080078, 0.5110055208206177; +148.39071655273438, 0.5173608660697937; +148.49070739746094, 0.5235821008682251; +148.59071350097656, 0.5294382572174072; +148.69070434570312, 0.5351528525352478; +148.7906951904297, 0.5418136715888977; +148.89068603515625, 0.5497634410858154; +148.9906768798828, 0.5582273006439209; +149.09068298339844, 0.565849244594574; +149.190673828125, 0.5725473165512085; +149.29066467285156, 0.5784109234809875; +149.39065551757812, 0.5829855799674988; +149.4906463623047, 0.5866587162017822; +149.5906524658203, 0.5908533930778503; +149.69064331054688, 0.5968362092971802; +149.79063415527344, 0.6042346358299255; +149.890625, 0.6118640303611755; +149.99061584472656, 0.6196126341819763; +150.09060668945312, 0.6273835897445679; +150.19061279296875, 0.6350874900817871; +150.2906036376953, 0.6427019834518433; +150.39059448242188, 0.6513893604278564; +150.49058532714844, 0.6612688302993774; +150.590576171875, 0.6708353757858276; +150.69058227539062, 0.6789863109588623; +150.7905731201172, 0.6856918334960938; +150.89056396484375, 0.6925314664840698; +150.9905548095703, 0.6992146372795105; +151.09054565429688, 0.7053986191749573; +151.1905517578125, 0.7117465138435364; +151.29054260253906, 0.7193982601165771; +151.39053344726562, 0.7284209132194519; +151.4905242919922, 0.7369071245193481; +151.59051513671875, 0.7439106702804565; +151.69052124023438, 0.7500573992729187; +151.79051208496094, 0.7562711834907532; +151.8905029296875, 0.76313316822052; +151.99049377441406, 0.7698237895965576; +152.09048461914062, 0.7756277918815613; +152.1904754638672, 0.7809102535247803; +152.2904815673828, 0.7864311337471008; +152.39047241210938, 0.7930099964141846; +152.49046325683594, 0.7997080683708191; +152.5904541015625, 0.8074343204498291; +152.69044494628906, 0.8164569735527039; +152.7904510498047, 0.8260831236839294; +152.89044189453125, 0.8360818028450012; +152.9904327392578, 0.8455514907836914; +153.09042358398438, 0.8546635508537292; +153.19041442871094, 0.8622854948043823; +153.29042053222656, 0.8691027760505676; +153.39041137695312, 0.8767694234848022; +153.4904022216797, 0.8843019604682922; +153.59039306640625, 0.8913278579711914; +153.6903839111328, 0.8982941508293152; +153.79039001464844, 0.9061917662620544; +153.890380859375, 0.9145811200141907; +153.99037170410156, 0.922471284866333; +154.09036254882812, 0.9307414293289185; +154.1903533935547, 0.9404346346855164; +154.29034423828125, 0.9499788284301758; +154.39035034179688, 0.9583011269569397; +154.49034118652344, 0.9655877947807312; +154.59033203125, 0.9724870324134827; +154.69032287597656, 0.9792372584342957; +154.79031372070312, 0.9848847985267639; +154.89031982421875, 0.9905397891998291; +154.9903106689453, 0.9962394833564758; +155.09030151367188, 1.0025725364685059; +155.19029235839844, 1.0098367929458618; +155.290283203125, 1.0182857513427734; +155.39028930664062, 1.0271742343902588; +155.4902801513672, 1.0354294776916504; +155.59027099609375, 1.0438487529754639; +155.6902618408203, 1.0525882244110107; +155.79025268554688, 1.0611861944198608; +155.8902587890625, 1.0683908462524414; +155.99024963378906, 1.07454514503479; +156.09024047851562, 1.080438494682312; +156.1902313232422, 1.0861605405807495; +156.29022216796875, 1.0923669338226318; +156.3902130126953, 1.0995566844940186; +156.49021911621094, 1.10823655128479; +156.5902099609375, 1.117810606956482; +156.69020080566406, 1.1273771524429321; +156.79019165039062, 1.1363625526428223; +156.8901824951172, 1.144237756729126; +156.9901885986328, 1.150883674621582; +157.09017944335938, 1.1558458805084229; +157.19017028808594, 1.1593177318572998; +157.2901611328125, 1.162901520729065; +157.39015197753906, 1.1686458587646484; +157.4901580810547, 1.1764466762542725; +157.59014892578125, 1.184739112854004; +157.6901397705078, 1.1933221817016602; +157.79013061523438, 1.2036190032958984; +157.89012145996094, 1.2151002883911133; +157.99012756347656, 1.2255237102508545; +158.09011840820312, 1.2342631816864014; +158.1901092529297, 1.2425333261489868; +158.29010009765625, 1.250617265701294; +158.3900909423828, 1.2571513652801514; +158.49008178710938, 1.2628509998321533; +158.590087890625, 1.269116997718811; +158.69007873535156, 1.2758076190948486; +158.79006958007812, 1.2828409671783447; +158.8900604248047, 1.290440559387207; +158.99005126953125, 1.2985765933990479; +159.09005737304688, 1.3064219951629639; +159.19004821777344, 1.3138353824615479; +159.2900390625, 1.322157621383667; +159.39002990722656, 1.3298914432525635; +159.49002075195312, 1.3358221054077148; +159.59002685546875, 1.3416707515716553; +159.6900177001953, 1.3481080532073975; +159.79000854492188, 1.354128122329712; +159.88999938964844, 1.35783851146698; +159.989990234375, 1.3610273599624634; +160.08999633789062, 1.365572214126587; +160.1899871826172, 1.3706014156341553; +160.28997802734375, 1.3755261898040771; +160.3899688720703, 1.3805478811264038; +160.48995971679688, 1.387178897857666; +160.58995056152344, 1.3957247734069824; +160.68995666503906, 1.4046802520751953; +160.78994750976562, 1.4117658138275146; +160.8899383544922, 1.4165713787078857; +160.98992919921875, 1.421421766281128; +161.0899200439453, 1.4270470142364502; +161.18992614746094, 1.4317631721496582; +161.2899169921875, 1.4361143112182617; +161.38990783691406, 1.4426857233047485; +161.48989868164062, 1.4513208866119385; +161.5898895263672, 1.4583468437194824; +161.6898956298828, 1.4621168375015259; +161.78988647460938, 1.4654099941253662; +161.88987731933594, 1.469627022743225; +161.9898681640625, 1.4738291501998901; +162.08985900878906, 1.4781206846237183; +162.1898651123047, 1.4842599630355835; +162.28985595703125, 1.4935805797576904; +162.3898468017578, 1.5036463737487793; +162.48983764648438, 1.5123560428619385; +162.58982849121094, 1.5201419591903687; +162.6898193359375, 1.5275180339813232; +162.78982543945312, 1.5341713428497314; +162.8898162841797, 1.5385448932647705; +162.98980712890625, 1.5411601066589355; +163.0897979736328, 1.5439763069152832; +163.18978881835938, 1.5476717948913574; +163.289794921875, 1.5526562929153442; +163.38978576660156, 1.5584454536437988; +163.48977661132812, 1.5653297901153564; +163.5897674560547, 1.5735998153686523; +163.68975830078125, 1.5828460454940796; +163.78976440429688, 1.5919655561447144; +163.88975524902344, 1.5998780727386475; +163.98974609375, 1.6066358089447021; +164.08973693847656, 1.6121864318847656; +164.18972778320312, 1.6169100999832153; +164.2897186279297, 1.6209334135055542; +164.3897247314453, 1.6254112720489502; +164.48971557617188, 1.6309394836425781; +164.58970642089844, 1.6369223594665527; +164.689697265625, 1.6433968544006348; +164.78968811035156, 1.6502811908721924; +164.8896942138672, 1.6576051712036133; +164.98968505859375, 1.6646311283111572; +165.0896759033203, 1.6708598136901855; +165.18966674804688, 1.676924467086792; +165.28965759277344, 1.6832127571105957; +165.38966369628906, 1.6901344060897827; +165.48965454101562, 1.6973018646240234; +165.5896453857422, 1.7039477825164795; +165.68963623046875, 1.7096772193908691; +165.7896270751953, 1.7155334949493408; +165.88963317871094, 1.7221719026565552; +165.9896240234375, 1.7288997173309326; +166.08961486816406, 1.735217809677124; +166.18960571289062, 1.7423405647277832; +166.2895965576172, 1.7514675855636597; +166.38958740234375, 1.7613246440887451; +166.48959350585938, 1.769892930984497; +166.58958435058594, 1.7772018909454346; +166.6895751953125, 1.7848386764526367; +166.78956604003906, 1.7925872802734375; +166.88955688476562, 1.7992854118347168; +166.98956298828125, 1.8053278923034668; +167.0895538330078, 1.8131210803985596; +167.18954467773438, 1.823320984840393; +167.28953552246094, 1.834012508392334; +167.3895263671875, 1.8440932035446167; +167.48953247070312, 1.8531010150909424; +167.5895233154297, 1.860693097114563; +167.68951416015625, 1.8665566444396973; +167.7895050048828, 1.871049404144287; +167.88949584960938, 1.8751845359802246; +167.989501953125, 1.879185438156128; +168.08949279785156, 1.8843263387680054; +168.18948364257812, 1.8917769193649292; +168.2894744873047, 1.9006729125976562; +168.38946533203125, 1.9098520278930664; +168.4894561767578, 1.9189045429229736; +168.58946228027344, 1.9286870956420898; +168.689453125, 1.9388422966003418; +168.78944396972656, 1.9484832286834717; +168.88943481445312, 1.957237720489502; +168.9894256591797, 1.9652247428894043; +169.0894317626953, 1.9734725952148438; +169.18942260742188, 1.9820406436920166; +169.28941345214844, 1.990966558456421; +169.389404296875, 1.9998401403427124; +169.48939514160156, 2.009272575378418; +169.5894012451172, 2.019695997238159; +169.68939208984375, 2.030111789703369; +169.7893829345703, 2.039454936981201; +169.88937377929688, 2.04758358001709; +169.98936462402344, 2.0556747913360596; +170.08937072753906, 2.063840627670288; +170.18936157226562, 2.071201801300049; +170.2893524169922, 2.0773932933807373; +170.38934326171875, 2.0841360092163086; +170.4893341064453, 2.093322515487671; +170.58932495117188, 2.104133367538452; +170.6893310546875, 2.1148176193237305; +170.78932189941406, 2.1245031356811523; +170.88931274414062, 2.1336898803710938; +170.9893035888672, 2.1422133445739746; +171.08929443359375, 2.1486356258392334; +171.18930053710938, 2.153247594833374; +171.28929138183594, 2.1576733589172363; +171.3892822265625, 2.1633803844451904; +171.48927307128906, 2.1709351539611816; +171.58926391601562, 2.1797120571136475; +171.68927001953125, 2.189464807510376; +171.7892608642578, 2.1994411945343018; +171.88925170898438, 2.2091269493103027; +171.98924255371094, 2.2185893058776855; +172.0892333984375, 2.2269935607910156; +172.18923950195312, 2.234131097793579; +172.2892303466797, 2.2404491901397705; +172.38922119140625, 2.247378349304199; +172.4892120361328, 2.2554397583007812; +172.58920288085938, 2.264216423034668; +172.68919372558594, 2.2734105587005615; +172.78919982910156, 2.282135248184204; +172.88919067382812, 2.2899210453033447; +172.9891815185547, 2.296842575073242; +173.08917236328125, 2.303861141204834; +173.1891632080078, 2.311147689819336; +173.28916931152344, 2.3187174797058105; +173.38916015625, 2.326957941055298; +173.48915100097656, 2.3364126682281494; +173.58914184570312, 2.3468658924102783; +173.6891326904297, 2.356581449508667; +173.7891387939453, 2.364896297454834; +173.88912963867188, 2.371631622314453; +173.98912048339844, 2.37800931930542; +174.089111328125, 2.384059190750122; +174.18910217285156, 2.389893054962158; +174.2891082763672, 2.3959875106811523; +174.38909912109375, 2.4026856422424316; +174.4890899658203, 2.4102554321289062; +174.58908081054688, 2.4182722568511963; +174.68907165527344, 2.427175521850586; +174.7890625, 2.43695068359375; +174.88906860351562, 2.447105884552002; +174.9890594482422, 2.4569482803344727; +175.08905029296875, 2.466261386871338; +175.1890411376953, 2.475269079208374; +175.28903198242188, 2.483844757080078; +175.3890380859375, 2.4926810264587402; +175.48902893066406, 2.503000259399414; +175.58901977539062, 2.515390396118164; +175.6890106201172, 2.5298893451690674; +175.78900146484375, 2.5452375411987305; +175.88900756835938, 2.5603623390197754; +175.98899841308594, 2.5736241340637207; +176.0889892578125, 2.584695816040039; +176.18898010253906, 2.5943145751953125; +176.28897094726562, 2.6022419929504395; +176.38897705078125, 2.6082844734191895; +176.4889678955078, 2.6124267578125; +176.58895874023438, 2.6160330772399902; +176.68894958496094, 2.620130777359009; +176.7889404296875, 2.6252567768096924; +176.88893127441406, 2.632833957672119; +176.9889373779297, 2.6430115699768066; +177.08892822265625, 2.6554763317108154; +177.1889190673828, 2.669721841812134; +177.28890991210938, 2.685420274734497; +177.38890075683594, 2.701371908187866; +177.48890686035156, 2.7145519256591797; +177.58889770507812, 2.7248785495758057; +177.6888885498047, 2.7346835136413574; +177.78887939453125, 2.7452855110168457; +177.8888702392578, 2.7557387351989746; +177.98887634277344, 2.7653799057006836; +178.0888671875, 2.7761831283569336; +178.18885803222656, 2.7902424335479736; +178.28884887695312, 2.805560827255249; +178.3888397216797, 2.8191134929656982; +178.4888458251953, 2.83046817779541; +178.58883666992188, 2.841599225997925; +178.68882751464844, 2.8539671897888184; +178.788818359375, 2.8660223484039307; +178.88880920410156, 2.8779730796813965; +178.98880004882812, 2.8920321464538574; +179.08880615234375, 2.909153699874878; +179.1887969970703, 2.9281153678894043; +179.28878784179688, 2.946652412414551; +179.38877868652344, 2.9646456241607666; +179.48876953125, 2.9825119972229004; +179.58877563476562, 2.9994919300079346; +179.6887664794922, 3.015316963195801; +179.78875732421875, 3.0304863452911377; +179.8887481689453, 3.045842170715332; +179.98873901367188, 3.0608177185058594; +180.0887451171875, 3.074854612350464; +180.18873596191406, 3.088071823120117; +180.28872680664062, 3.0994043350219727; +180.3887176513672, 3.1078009605407715; +180.48870849609375, 3.113351821899414; +180.5886993408203, 3.1173973083496094; +180.68870544433594, 3.119431495666504; +180.7886962890625, 3.117628335952759; +180.88868713378906, 3.113008975982666; +180.98867797851562, 3.105923652648926; +181.0886688232422, 3.096289873123169; +181.1886749267578, 3.0831470489501953; +181.28866577148438, 3.067962884902954; +181.38865661621094, 3.0530543327331543; +181.4886474609375, 3.0374302864074707; +181.58863830566406, 3.021158218383789; +181.6886444091797, 3.0050575733184814; +181.78863525390625, 2.99075984954834; +181.8886260986328, 2.977900266647339; +181.98861694335938, 2.9648468494415283; +182.08860778808594, 2.9523074626922607; +182.18861389160156, 2.941220998764038; +182.28860473632812, 2.931796073913574; +182.3885955810547, 2.923861026763916; +182.48858642578125, 2.917692184448242; +182.5885772705078, 2.914763927459717; +182.68856811523438, 2.914905548095703; +182.78857421875, 2.916656494140625; +182.88856506347656, 2.9198453426361084; +182.98855590820312, 2.9241442680358887; +183.0885467529297, 2.930030345916748; +183.18853759765625, 2.9365272521972656; +183.28854370117188, 2.9437170028686523; +183.38853454589844, 2.952583074569702; +183.488525390625, 2.9621646404266357; +183.58851623535156, 2.9712095260620117; +183.68850708007812, 2.9772818088531494; +183.78851318359375, 2.981245517730713; +183.8885040283203, 2.9846205711364746; +183.98849487304688, 2.9883384704589844; +184.08848571777344, 2.992563009262085; +184.1884765625, 2.9976143836975098; +184.28848266601562, 3.005385398864746; +184.3884735107422, 3.015115737915039; +184.48846435546875, 3.0249059200286865; +184.5884552001953, 3.0333399772644043; +184.68844604492188, 3.041006565093994; +184.78843688964844, 3.048919200897217; +184.88844299316406, 3.056429386138916; +184.98843383789062, 3.0643417835235596; +185.0884246826172, 3.073178291320801; +185.18841552734375, 3.0829384326934814; +185.2884063720703, 3.0928924083709717; +185.38841247558594, 3.1026601791381836; +185.4884033203125, 3.1127185821533203; +185.58839416503906, 3.1224937438964844; +185.68838500976562, 3.132082462310791; +185.7883758544922, 3.1417906284332275; +185.8883819580078, 3.15171480178833; +185.98837280273438, 3.1614527702331543; +186.08836364746094, 3.170706272125244; +186.1883544921875, 3.1798629760742188; +186.28834533691406, 3.1890125274658203; +186.3883514404297, 3.1987428665161133; +186.48834228515625, 3.2088756561279297; +186.5883331298828, 3.218628406524658; +186.68832397460938, 3.226928472518921; +186.78831481933594, 3.2332539558410645; +186.8883056640625, 3.2384023666381836; +186.98831176757812, 3.2433793544769287; +187.0883026123047, 3.2493770122528076; +187.18829345703125, 3.256894588470459; +187.2882843017578, 3.265932083129883; +187.38827514648438, 3.2759757041931152; +187.48828125, 3.2865853309631348; +187.58827209472656, 3.2965540885925293; +187.68826293945312, 3.304682731628418; +187.7882537841797, 3.31112003326416; +187.88824462890625, 3.3167452812194824; +187.98825073242188, 3.3230483531951904; +188.08824157714844, 3.3306479454040527; +188.188232421875, 3.3389477729797363; +188.28822326660156, 3.346472978591919; +188.38821411132812, 3.3524856567382812; +188.48822021484375, 3.3585727214813232; +188.5882110595703, 3.3656134605407715; +188.68820190429688, 3.3725647926330566; +188.78819274902344, 3.378801107406616; +188.88818359375, 3.3860058784484863; +188.98817443847656, 3.395333766937256; +189.0881805419922, 3.4053473472595215; +189.18817138671875, 3.414236068725586; +189.2881622314453, 3.4212918281555176; +189.38815307617188, 3.4268646240234375; +189.48814392089844, 3.4312233924865723; +189.58815002441406, 3.435581922531128; +189.68814086914062, 3.440864324569702; +189.7881317138672, 3.4468917846679688; +189.88812255859375, 3.4538209438323975; +189.9881134033203, 3.4625604152679443; +190.08811950683594, 3.4739301204681396; +190.1881103515625, 3.4864470958709717; +190.28810119628906, 3.497727155685425; +190.38809204101562, 3.506779670715332; +190.4880828857422, 3.5142228603363037; +190.5880889892578, 3.5203471183776855; +190.68807983398438, 3.5249218940734863; +190.78807067871094, 3.5283043384552; +190.8880615234375, 3.532789707183838; +190.98805236816406, 3.539778232574463; +191.08804321289062, 3.548435926437378; +191.18804931640625, 3.557920455932617; +191.2880401611328, 3.5680160522460938; +191.38803100585938, 3.5790131092071533; +191.48802185058594, 3.5899877548217773; +191.5880126953125, 3.600396156311035; +191.68801879882812, 3.610536575317383; +191.7880096435547, 3.6206767559051514; +191.88800048828125, 3.6304221153259277; +191.9879913330078, 3.639817237854004; +192.08798217773438, 3.648616313934326; +192.18798828125, 3.6567747592926025; +192.28797912597656, 3.6648213863372803; +192.38796997070312, 3.6734938621520996; +192.4879608154297, 3.682851791381836; +192.58795166015625, 3.692150115966797; +192.68795776367188, 3.7013962268829346; +192.78794860839844, 3.711104393005371; +192.887939453125, 3.720693349838257; +192.98793029785156, 3.7295892238616943; +193.08792114257812, 3.7384555339813232; +193.1879119873047, 3.7471354007720947; +193.2879180908203, 3.754131555557251; +193.38790893554688, 3.759026527404785; +193.48789978027344, 3.7638843059539795; +193.587890625, 3.7708804607391357; +193.68788146972656, 3.7793145179748535; +193.7878875732422, 3.788083791732788; +193.88787841796875, 3.797329902648926; +193.9878692626953, 3.8074402809143066; +194.08786010742188, 3.817863702774048; +194.18785095214844, 3.8270130157470703; +194.28785705566406, 3.8349180221557617; +194.38784790039062, 3.842301607131958; +194.4878387451172, 3.8508920669555664; +194.58782958984375, 3.8605704307556152; +194.6878204345703, 3.870330810546875; +194.78782653808594, 3.8797407150268555; +194.8878173828125, 3.888554811477661; +194.98780822753906, 3.8977861404418945; +195.08779907226562, 3.9069130420684814; +195.1877899169922, 3.9158389568328857; +195.28778076171875, 3.924213409423828; +195.38778686523438, 3.931589365005493; +195.48777770996094, 3.9390101432800293; +195.5877685546875, 3.9467363357543945; +195.68775939941406, 3.954723358154297; +195.78775024414062, 3.9630234241485596; +195.88775634765625, 3.972046136856079; +195.9877471923828, 3.982081890106201; +196.08773803710938, 3.991149425506592; +196.18772888183594, 3.998353958129883; +196.2877197265625, 4.0055437088012695; +196.38772583007812, 4.014163970947266; +196.4877166748047, 4.023425102233887; +196.58770751953125, 4.031546592712402; +196.6876983642578, 4.039458751678467; +196.78768920898438, 4.048437118530273; +196.8876953125, 4.05810022354126; +196.98768615722656, 4.067174911499023; +197.08767700195312, 4.0766520500183105; +197.1876678466797, 4.087895393371582; +197.28765869140625, 4.099994659423828; +197.3876495361328, 4.111848831176758; +197.48765563964844, 4.123456954956055; +197.587646484375, 4.1357951164245605; +197.68763732910156, 4.147887229919434; +197.78762817382812, 4.159458160400391; +197.8876190185547, 4.1718034744262695; +197.9876251220703, 4.184990882873535; +198.08761596679688, 4.1980743408203125; +198.18760681152344, 4.210040092468262; +198.28759765625, 4.221349716186523; +198.38758850097656, 4.23268985748291; +198.4875946044922, 4.243500709533691; +198.58758544921875, 4.253916263580322; +198.6875762939453, 4.2635722160339355; +198.78756713867188, 4.272259712219238; +198.88755798339844, 4.280567169189453; +198.987548828125, 4.2883830070495605; +199.08755493164062, 4.29612398147583; +199.1875457763672, 4.303745746612549; +199.28753662109375, 4.311986446380615; +199.3875274658203, 4.321321964263916; +199.48751831054688, 4.331491947174072; +199.5875244140625, 4.342422008514404; +199.68751525878906, 4.354678153991699; +199.78750610351562, 4.368551254272461; +199.8874969482422, 4.383005142211914; +199.98748779296875, 4.396200180053711; +200.08749389648438, 4.406675815582275; +200.18748474121094, 4.415556907653809; +200.2874755859375, 4.423238277435303; +200.38746643066406, 4.429362773895264; +200.48745727539062, 4.4339447021484375; +200.58746337890625, 4.438638687133789; +200.6874542236328, 4.4455156326293945; +200.78744506835938, 4.453964710235596; +200.88743591308594, 4.4632182121276855; +200.9874267578125, 4.473641395568848; +201.08741760253906, 4.485614776611328; +201.1874237060547, 4.498116493225098; +201.28741455078125, 4.509769439697266; +201.3874053955078, 4.519589424133301; +201.48739624023438, 4.527546405792236; +201.58738708496094, 4.5335516929626465; +201.68739318847656, 4.539251327514648; +201.78738403320312, 4.5464935302734375; +201.8873748779297, 4.555650234222412; +201.98736572265625, 4.565395355224609; +202.0873565673828, 4.574641704559326; +202.18736267089844, 4.5840888023376465; +202.287353515625, 4.5930070877075195; +202.38734436035156, 4.6009345054626465; +202.48733520507812, 4.607655048370361; +202.5873260498047, 4.6151580810546875; +202.6873321533203, 4.624582767486572; +202.78732299804688, 4.63553524017334; +202.88731384277344, 4.647374153137207; +202.9873046875, 4.658274173736572; +203.08729553222656, 4.667788505554199; +203.18728637695312, 4.675961971282959; +203.28729248046875, 4.683516979217529; +203.3872833251953, 4.689387798309326; +203.48727416992188, 4.693619728088379; +203.58726501464844, 4.698835372924805; +203.687255859375, 4.706382751464844; +203.78726196289062, 4.715867519378662; +203.8872528076172, 4.725888252258301; +203.98724365234375, 4.737332344055176; +204.0872344970703, 4.750251770019531; +204.18722534179688, 4.762969970703125; +204.2872314453125, 4.7749505043029785; +204.38722229003906, 4.786558628082275; +204.48721313476562, 4.797734260559082; +204.5872039794922, 4.807599067687988; +204.68719482421875, 4.816032886505127; +204.78720092773438, 4.824586391448975; +204.88719177246094, 4.833661079406738; +204.9871826171875, 4.843458652496338; +205.08717346191406, 4.8542022705078125; +205.18716430664062, 4.866033554077148; +205.2871551513672, 4.879236221313477; +205.3871612548828, 4.892386436462402; +205.48715209960938, 4.905231475830078; +205.58714294433594, 4.917629241943359; +205.6871337890625, 4.929751396179199; +205.78712463378906, 4.94171667098999; +205.8871307373047, 4.952050685882568; +205.98712158203125, 4.961006164550781; +206.0871124267578, 4.968568801879883; +206.18710327148438, 4.975244522094727; +206.28709411621094, 4.981480598449707; +206.38710021972656, 4.987724304199219; +206.48709106445312, 4.994578838348389; +206.5870819091797, 5.0019025802612305; +206.68707275390625, 5.009979248046875; +206.7870635986328, 5.018100261688232; +206.88706970214844, 5.026116847991943; +206.987060546875, 5.033977508544922; +207.08705139160156, 5.042813777923584; +207.18704223632812, 5.052506923675537; +207.2870330810547, 5.061723232269287; +207.38702392578125, 5.070224285125732; +207.48703002929688, 5.078800201416016; +207.58702087402344, 5.08826208114624; +207.68701171875, 5.097500801086426; +207.78700256347656, 5.1064043045043945; +207.88699340820312, 5.116656303405762; +207.98699951171875, 5.128823280334473; +208.0869903564453, 5.141027450561523; +208.18698120117188, 5.15165901184082; +208.28697204589844, 5.160398960113525; +208.386962890625, 5.168624401092529; +208.48696899414062, 5.176290988922119; +208.5869598388672, 5.183793544769287; +208.68695068359375, 5.191318511962891; +208.7869415283203, 5.198992729187012; +208.88693237304688, 5.2083210945129395; +208.9869384765625, 5.2186102867126465; +209.08692932128906, 5.228549003601074; +209.18692016601562, 5.236409664154053; +209.2869110107422, 5.2440314292907715; +209.38690185546875, 5.2526445388793945; +209.4868927001953, 5.261741638183594; +209.58689880371094, 5.270086288452148; +209.6868896484375, 5.277909278869629; +209.78688049316406, 5.286037921905518; +209.88687133789062, 5.293868541717529; +209.9868621826172, 5.301266670227051; +210.0868682861328, 5.308769702911377; +210.18685913085938, 5.317375183105469; +210.28684997558594, 5.327537536621094; +210.3868408203125, 5.339242458343506; +210.48683166503906, 5.351438999176025; +210.5868377685547, 5.362741470336914; +210.68682861328125, 5.372151851654053; +210.7868194580078, 5.380697727203369; +210.88681030273438, 5.389660835266113; +210.98680114746094, 5.399375915527344; +211.08680725097656, 5.409523963928223; +211.18679809570312, 5.420088768005371; +211.2867889404297, 5.431398868560791; +211.38677978515625, 5.4427385330200195; +211.4867706298828, 5.453266143798828; +211.58676147460938, 5.462862491607666; +211.686767578125, 5.472362041473389; +211.78675842285156, 5.4822564125061035; +211.88674926757812, 5.492709636688232; +211.9867401123047, 5.5038557052612305; +212.08673095703125, 5.515329360961914; +212.18673706054688, 5.526713848114014; +212.28672790527344, 5.537286281585693; +212.38671875, 5.5474042892456055; +212.48670959472656, 5.55744743347168; +212.58670043945312, 5.567245006561279; +212.68670654296875, 5.576581001281738; +212.7866973876953, 5.586333751678467; +212.88668823242188, 5.597024917602539; +212.98667907714844, 5.608335018157959; +213.086669921875, 5.619429111480713; +213.18667602539062, 5.630798816680908; +213.2866668701172, 5.643479347229004; +213.38665771484375, 5.655773162841797; +213.4866485595703, 5.666769981384277; +213.58663940429688, 5.676470756530762; +213.68663024902344, 5.685858249664307; +213.78663635253906, 5.6943817138671875; +213.88662719726562, 5.701169490814209; +213.9866180419922, 5.707763195037842; +214.08660888671875, 5.715459823608398; +214.1865997314453, 5.724742889404297; +214.28660583496094, 5.734160423278809; +214.3865966796875, 5.744204044342041; +214.48658752441406, 5.754351615905762; +214.58657836914062, 5.763917922973633; +214.6865692138672, 5.772777080535889; +214.7865753173828, 5.780883312225342; +214.88656616210938, 5.789727210998535; +214.98655700683594, 5.798250198364258; +215.0865478515625, 5.806840896606445; +215.18653869628906, 5.8161540031433105; +215.28652954101562, 5.826614856719971; +215.38653564453125, 5.838438987731934; +215.4865264892578, 5.850061893463135; +215.58651733398438, 5.860745906829834; +215.68650817871094, 5.870543479919434; +215.7864990234375, 5.880154609680176; +215.88650512695312, 5.889832973480225; +215.9864959716797, 5.899421691894531; +216.08648681640625, 5.9099345207214355; +216.1864776611328, 5.921907901763916; +216.28646850585938, 5.934439659118652; +216.386474609375, 5.9456377029418945; +216.48646545410156, 5.956031322479248; +216.58645629882812, 5.966476917266846; +216.6864471435547, 5.977176189422607; +216.78643798828125, 5.987905025482178; +216.88644409179688, 5.998917102813721; +216.98643493652344, 6.011068820953369; +217.08642578125, 6.02427864074707; +217.18641662597656, 6.0382561683654785; +217.28640747070312, 6.0518903732299805; +217.3863983154297, 6.0646162033081055; +217.4864044189453, 6.076216697692871; +217.58639526367188, 6.086796760559082; +217.68638610839844, 6.095789432525635; +217.786376953125, 6.103448390960693; +217.88636779785156, 6.1105194091796875; +217.9863739013672, 6.117202281951904; +218.08636474609375, 6.123892784118652; +218.1863555908203, 6.131418228149414; +218.28634643554688, 6.139665603637695; +218.38633728027344, 6.146975040435791; +218.48634338378906, 6.152294635772705; +218.58633422851562, 6.157293796539307; +218.6863250732422, 6.163336277008057; +218.78631591796875, 6.170384407043457; +218.8863067626953, 6.178267478942871; +218.98631286621094, 6.187409400939941; +219.0863037109375, 6.198726654052734; +219.18629455566406, 6.211019992828369; +219.28628540039062, 6.223082542419434; +219.3862762451172, 6.233096122741699; +219.48626708984375, 6.24091911315918; +219.58627319335938, 6.247758865356445; +219.68626403808594, 6.255090236663818; +219.7862548828125, 6.264016151428223; +219.88624572753906, 6.274722576141357; +219.98623657226562, 6.287693977355957; +220.08624267578125, 6.302431106567383; +220.1862335205078, 6.317399501800537; +220.28622436523438, 6.330802917480469; +220.38621520996094, 6.3421950340271; +220.4862060546875, 6.352551460266113; +220.58621215820312, 6.362460613250732; +220.6862030029297, 6.3720197677612305; +220.78619384765625, 6.38107967376709; +220.8861846923828, 6.3895134925842285; +220.98617553710938, 6.397619724273682; +221.086181640625, 6.406076431274414; +221.18617248535156, 6.415590763092041; +221.28616333007812, 6.426535606384277; +221.3861541748047, 6.438523292541504; +221.48614501953125, 6.451837539672852; +221.5861358642578, 6.466060638427734; +221.68614196777344, 6.479583740234375; +221.7861328125, 6.491035461425781; +221.88612365722656, 6.501190185546875; +221.98611450195312, 6.511956214904785; +222.0861053466797, 6.5234527587890625; +222.1861114501953, 6.534919261932373; +222.28610229492188, 6.545767307281494; +222.38609313964844, 6.556741714477539; +222.486083984375, 6.567783832550049; +222.58607482910156, 6.578341007232666; +222.6860809326172, 6.588913440704346; +222.78607177734375, 6.599947929382324; +222.8860626220703, 6.612770080566406; +222.98605346679688, 6.627231597900391; +223.08604431152344, 6.641753196716309; +223.18605041503906, 6.654910564422607; +223.28604125976562, 6.666228294372559; +223.3860321044922, 6.676994323730469; +223.48602294921875, 6.686672687530518; +223.5860137939453, 6.694801330566406; +223.68600463867188, 6.7024455070495605; +223.7860107421875, 6.711349010467529; +223.88600158691406, 6.721757411956787; +223.98599243164062, 6.732203006744385; +224.0859832763672, 6.742037773132324; +224.18597412109375, 6.750814437866211; +224.28598022460938, 6.758011817932129; +224.38597106933594, 6.764069080352783; +224.4859619140625, 6.770245552062988; +224.58595275878906, 6.777428150177002; +224.68594360351562, 6.785467147827148; +224.78594970703125, 6.7944231033325195; +224.8859405517578, 6.805248737335205; +224.98593139648438, 6.81669282913208; +225.08592224121094, 6.82757043838501; +225.1859130859375, 6.838560104370117; +225.28591918945312, 6.850086212158203; +225.3859100341797, 6.861865520477295; +225.48590087890625, 6.8725199699401855; +225.5858917236328, 6.883576393127441; +225.68588256835938, 6.895378112792969; +225.78587341308594, 6.906040191650391; +225.88587951660156, 6.915286064147949; +225.98587036132812, 6.9244279861450195; +226.0858612060547, 6.934412002563477; +226.18585205078125, 6.94426155090332; +226.2858428955078, 6.953045845031738; +226.38584899902344, 6.96121883392334; +226.48583984375, 6.969831943511963; +226.58583068847656, 6.979085445404053; +226.68582153320312, 6.989434242248535; +226.7858123779297, 7.000900745391846; +226.8858184814453, 7.013768196105957; +226.98580932617188, 7.0283708572387695; +227.08580017089844, 7.0431084632873535; +227.185791015625, 7.0564374923706055; +227.28578186035156, 7.067635536193848; +227.3857879638672, 7.077395915985107; +227.48577880859375, 7.086605072021484; +227.5857696533203, 7.095090866088867; +227.68576049804688, 7.1035475730896; +227.78575134277344, 7.113337516784668; +227.8857421875, 7.125362873077393; +227.98574829101562, 7.138401031494141; +228.0857391357422, 7.150717258453369; +228.18572998046875, 7.162004470825195; +228.2857208251953, 7.173672199249268; +228.38571166992188, 7.186554431915283; +228.4857177734375, 7.200300693511963; +228.58570861816406, 7.213771343231201; +228.68569946289062, 7.226809978485107; +228.7856903076172, 7.240437030792236; +228.88568115234375, 7.2542948722839355; +228.98568725585938, 7.267378330230713; +229.08567810058594, 7.2790679931640625; +229.1856689453125, 7.290542125701904; +229.28565979003906, 7.3030219078063965; +229.38565063476562, 7.316082954406738; +229.48565673828125, 7.329270362854004; +229.5856475830078, 7.342167377471924; +229.68563842773438, 7.354818344116211; +229.78562927246094, 7.368378162384033; +229.8856201171875, 7.383078575134277; +229.98561096191406, 7.397949695587158; +230.0856170654297, 7.411911964416504; +230.18560791015625, 7.425360202789307; +230.2855987548828, 7.4390692710876465; +230.38558959960938, 7.451690673828125; +230.48558044433594, 7.462546348571777; +230.58558654785156, 7.472202301025391; +230.68557739257812, 7.481649398803711; +230.7855682373047, 7.4908881187438965; +230.88555908203125, 7.498964786529541; +230.9855499267578, 7.505729675292969; +231.08555603027344, 7.51107931137085; +231.185546875, 7.516398906707764; +231.28553771972656, 7.522404193878174; +231.38552856445312, 7.52839469909668; +231.4855194091797, 7.53408670425415; +231.58551025390625, 7.540643215179443; +231.68551635742188, 7.549919128417969; +231.78550720214844, 7.561288833618164; +231.885498046875, 7.573596954345703; +231.98548889160156, 7.586874008178711; +232.08547973632812, 7.6020731925964355; +232.18548583984375, 7.618174076080322; +232.2854766845703, 7.6332688331604; +232.38546752929688, 7.646523475646973; +232.48545837402344, 7.658578395843506; +232.58544921875, 7.670886993408203; +232.68545532226562, 7.682867527008057; +232.7854461669922, 7.694616794586182; +232.88543701171875, 7.706851005554199; +232.9854278564453, 7.7204108238220215; +233.08541870117188, 7.735967636108398; +233.1854248046875, 7.751964092254639; +233.28541564941406, 7.768086910247803; +233.38540649414062, 7.784031391143799; +233.4853973388672, 7.799379348754883; +233.58538818359375, 7.81459379196167; +233.6853790283203, 7.828198432922363; +233.78538513183594, 7.8408942222595215; +233.8853759765625, 7.852785110473633; +233.98536682128906, 7.863849639892578; +234.08535766601562, 7.873751163482666; +234.1853485107422, 7.882147789001465; +234.2853546142578, 7.89030647277832; +234.38534545898438, 7.897965431213379; +234.48533630371094, 7.904782772064209; +234.5853271484375, 7.911555290222168; +234.68531799316406, 7.919713973999023; +234.7853240966797, 7.92860221862793; +234.88531494140625, 7.937364101409912; +234.9853057861328, 7.946170806884766; +235.08529663085938, 7.956274032592773; +235.18528747558594, 7.967323303222656; +235.28529357910156, 7.977806091308594; +235.38528442382812, 7.987454414367676; +235.4852752685547, 7.9957990646362305; +235.58526611328125, 8.003629684448242; +235.6852569580078, 8.011959075927734; +235.78524780273438, 8.020840644836426; +235.88525390625, 8.029684066772461; +235.98524475097656, 8.037842750549316; +236.08523559570312, 8.046329498291016; +236.1852264404297, 8.054844856262207; +236.28521728515625, 8.062392234802246; +236.38522338867188, 8.070230484008789; +236.48521423339844, 8.079737663269043; +236.585205078125, 8.091256141662598; +236.68519592285156, 8.103839874267578; +236.78518676757812, 8.117079734802246; +236.88519287109375, 8.130497932434082; +236.9851837158203, 8.142858505249023; +237.08517456054688, 8.154191017150879; +237.18516540527344, 8.165553092956543; +237.28515625, 8.176885604858398; +237.38516235351562, 8.187278747558594; +237.4851531982422, 8.196488380432129; +237.58514404296875, 8.205316543579102; +237.6851348876953, 8.214421272277832; +237.78512573242188, 8.223809242248535; +237.88511657714844, 8.233606338500977; +237.98512268066406, 8.244708061218262; +238.08511352539062, 8.257344245910645; +238.1851043701172, 8.271127700805664; +238.28509521484375, 8.2850980758667; +238.3850860595703, 8.298993110656738; +238.48509216308594, 8.313663482666016; +238.5850830078125, 8.329279899597168; +238.68507385253906, 8.345544815063477; +238.78506469726562, 8.361719131469727; +238.8850555419922, 8.377127647399902; +238.9850616455078, 8.391425132751465; +239.08505249023438, 8.403882026672363; +239.18504333496094, 8.41472339630127; +239.2850341796875, 8.424639701843262; +239.38502502441406, 8.434102058410645; +239.4850311279297, 8.443697929382324; +239.58502197265625, 8.453145980834961; +239.6850128173828, 8.46292781829834; +239.78500366210938, 8.473023414611816; +239.88499450683594, 8.483022689819336; +239.9849853515625, 8.492372512817383; +240.08499145507812, 8.500687599182129; +240.1849822998047, 8.508764266967773; +240.28497314453125, 8.516162872314453; +240.3849639892578, 8.522972106933594; +240.48495483398438, 8.529521942138672; +240.5849609375, 8.536473274230957; +240.68495178222656, 8.54476547241211; +240.78494262695312, 8.55432415008545; +240.8849334716797, 8.566021919250488; +240.98492431640625, 8.578755378723145; +241.08493041992188, 8.591204643249512; +241.18492126464844, 8.603103637695312; +241.284912109375, 8.615046501159668; +241.38490295410156, 8.627586364746094; +241.48489379882812, 8.639439582824707; +241.58489990234375, 8.649892807006836; +241.6848907470703, 8.659951210021973; +241.78488159179688, 8.670605659484863; +241.88487243652344, 8.681647300720215; +241.98486328125, 8.692562103271484; +242.08485412597656, 8.703767776489258; +242.1848602294922, 8.716382026672363; +242.28485107421875, 8.730106353759766; +242.3848419189453, 8.745126724243164; +242.48483276367188, 8.760705947875977; +242.58482360839844, 8.775971412658691; +242.68482971191406, 8.790336608886719; +242.78482055664062, 8.804678916931152; +242.8848114013672, 8.819595336914062; +242.98480224609375, 8.833229064941406; +243.0847930908203, 8.845470428466797; +243.18479919433594, 8.857987403869629; +243.2847900390625, 8.872747421264648; +243.38478088378906, 8.88870620727539; +243.48477172851562, 8.903853416442871; +243.5847625732422, 8.919015884399414; +243.6847686767578, 8.93533992767334; +243.78475952148438, 8.95252799987793; +243.88475036621094, 8.969813346862793; +243.9847412109375, 8.988022804260254; +244.08473205566406, 9.009621620178223; +244.18472290039062, 9.035102844238281; +244.28472900390625, 9.063243865966797; +244.3847198486328, 9.092428207397461; +244.48471069335938, 9.120747566223145; +244.58470153808594, 9.146623611450195; +244.6846923828125, 9.169682502746582; +244.78469848632812, 9.189024925231934; +244.8846893310547, 9.203150749206543; +244.98468017578125, 9.211771011352539; +245.0846710205078, 9.216509819030762; +245.18466186523438, 9.219310760498047; +245.28466796875, 9.219281196594238; +245.38465881347656, 9.216011047363281; +245.48464965820312, 9.211577415466309; +245.5846405029297, 9.20825481414795; +245.68463134765625, 9.20728588104248; +245.78463745117188, 9.208045959472656; +245.88462829589844, 9.210936546325684; +245.984619140625, 9.216584205627441; +246.08460998535156, 9.22537612915039; +246.18460083007812, 9.237117767333984; +246.2845916748047, 9.250797271728516; +246.3845977783203, 9.265780448913574; +246.48458862304688, 9.281963348388672; +246.58457946777344, 9.300403594970703; +246.6845703125, 9.321249961853027; +246.78456115722656, 9.3447265625; +246.8845672607422, 9.371087074279785; +246.98455810546875, 9.400561332702637; +247.0845489501953, 9.432419776916504; +247.18453979492188, 9.464643478393555; +247.28453063964844, 9.495504379272461; +247.38453674316406, 9.522989273071289; +247.48452758789062, 9.545363426208496; +247.5845184326172, 9.561427116394043; +247.68450927734375, 9.570531845092773; +247.7845001220703, 9.572863578796387; +247.88450622558594, 9.569302558898926; +247.9844970703125, 9.562015533447266; +248.08448791503906, 9.553156852722168; +248.18447875976562, 9.544417381286621; +248.2844696044922, 9.536616325378418; +248.38446044921875, 9.531222343444824; +248.48446655273438, 9.529330253601074; +248.58445739746094, 9.530387878417969; +248.6844482421875, 9.532876014709473; +248.78443908691406, 9.536139488220215; +248.88442993164062, 9.541824340820312; +248.98443603515625, 9.549639701843262; +249.0844268798828, 9.558171272277832; +249.18441772460938, 9.566642761230469; +249.28440856933594, 9.576537132263184; +249.3843994140625, 9.5888671875; +249.48440551757812, 9.602241516113281; +249.5843963623047, 9.615466117858887; +249.68438720703125, 9.62817668914795; +249.7843780517578, 9.640582084655762; +249.88436889648438, 9.652495384216309; +249.98435974121094, 9.66357421875; +250.08436584472656, 9.673796653747559; +250.18435668945312, 9.684152603149414; +250.2843475341797, 9.69522476196289; +250.38433837890625, 9.707085609436035; +250.4843292236328, 9.718812942504883; +250.58433532714844, 9.729631423950195; +250.684326171875, 9.739316940307617; +250.78431701660156, 9.747743606567383; +250.88430786132812, 9.757041931152344; +250.9842987060547, 9.768329620361328; +251.0843048095703, 9.781800270080566; +251.18429565429688, 9.796619415283203; +251.28428649902344, 9.812727928161621; +251.38427734375, 9.82998275756836; +251.48426818847656, 9.845547676086426; +251.5842742919922, 9.858258247375488; +251.68426513671875, 9.868756294250488; +251.7842559814453, 9.879141807556152; +251.88424682617188, 9.890548706054688; +251.98423767089844, 9.902693748474121; +252.084228515625, 9.915635108947754; +252.18423461914062, 9.929359436035156; +252.2842254638672, 9.943924903869629; +252.38421630859375, 9.959273338317871; +252.4842071533203, 9.974516868591309; +252.58419799804688, 9.989701271057129; +252.6842041015625, 10.005727767944336; +252.78419494628906, 10.022893905639648; +252.88418579101562, 10.040029525756836; +252.9841766357422, 10.05557918548584; +253.08416748046875, 10.070093154907227; +253.18417358398438, 10.085016250610352; +253.28416442871094, 10.100707054138184; +253.3841552734375, 10.11650276184082; +253.48414611816406, 10.133356094360352; +253.58413696289062, 10.151847839355469; +253.68414306640625, 10.171554565429688; +253.7841339111328, 10.190404891967773; +253.88412475585938, 10.208368301391602; +253.98411560058594, 10.226421356201172; +254.0841064453125, 10.243609428405762; +254.18409729003906, 10.259092330932617; +254.2841033935547, 10.273478507995605; +254.38409423828125, 10.289244651794434; +254.4840850830078, 10.307051658630371; +254.58407592773438, 10.325394630432129; +254.68406677246094, 10.34399127960205; +254.78407287597656, 10.36404800415039; +254.88406372070312, 10.385751724243164; +254.9840545654297, 10.407172203063965; +255.08404541015625, 10.426185607910156; +255.1840362548828, 10.44305419921875; +255.28404235839844, 10.458029747009277; +255.384033203125, 10.47062873840332; +255.48402404785156, 10.479889869689941; +255.58401489257812, 10.486282348632812; +255.6840057373047, 10.490983963012695; +255.7840118408203, 10.494873046875; +255.88400268554688, 10.499715805053711; +255.98399353027344, 10.507218360900879; +256.083984375, 10.51779842376709; +256.1839904785156, 10.530694961547852; +256.2839660644531, 10.544851303100586; +256.38397216796875, 10.560721397399902; +256.48394775390625, 10.578073501586914; +256.5839538574219, 10.59610366821289; +256.6839599609375, 10.615446090698242; +256.783935546875, 10.637142181396484; +256.8839416503906, 10.661773681640625; +256.9839172363281, 10.687604904174805; +257.08392333984375, 10.713614463806152; +257.1839294433594, 10.739109992980957; +257.2839050292969, 10.76302719116211; +257.3839111328125, 10.784499168395996; +257.48388671875, 10.803095817565918; +257.5838928222656, 10.818846702575684; +257.68389892578125, 10.830551147460938; +257.78387451171875, 10.838411331176758; +257.8838806152344, 10.844476699829102; +257.9838562011719, 10.849811553955078; +258.0838623046875, 10.85519027709961; +258.1838684082031, 10.861105918884277; +258.2838439941406, 10.868541717529297; +258.38385009765625, 10.877556800842285; +258.48382568359375, 10.886497497558594; +258.5838317871094, 10.895758628845215; +258.683837890625, 10.906122207641602; +258.7838134765625, 10.91819953918457; +258.8838195800781, 10.931819915771484; +258.9837951660156, 10.945960998535156; +259.08380126953125, 10.960004806518555; +259.18377685546875, 10.973051071166992; +259.2837829589844, 10.984964370727539; +259.3837890625, 10.99663257598877; +259.4837646484375, 11.008993148803711; +259.5837707519531, 11.022917747497559; +259.6837463378906, 11.039241790771484; +259.78375244140625, 11.057562828063965; +259.8837585449219, 11.077351570129395; +259.9837341308594, 11.098541259765625; +260.083740234375, 11.121183395385742; +260.1837158203125, 11.144712448120117; +260.2837219238281, 11.167160987854004; +260.38372802734375, 11.18832778930664; +260.48370361328125, 11.208370208740234; +260.5837097167969, 11.227548599243164; +260.6836853027344, 11.246435165405273; +260.78369140625, 11.26589584350586; +260.8836975097656, 11.287264823913574; +260.9836730957031, 11.310741424560547; +261.08367919921875, 11.335626602172852; +261.18365478515625, 11.360526084899902; +261.2836608886719, 11.384129524230957; +261.3836669921875, 11.40590763092041; +261.483642578125, 11.426560401916504; +261.5836486816406, 11.446341514587402; +261.6836242675781, 11.465758323669434; +261.78363037109375, 11.484757423400879; +261.8836364746094, 11.503599166870117; +261.9836120605469, 11.521689414978027; +262.0836181640625, 11.538185119628906; +262.18359375, 11.552736282348633; +262.2835998535156, 11.565468788146973; +262.38360595703125, 11.577099800109863; +262.48358154296875, 11.588081359863281; +262.5835876464844, 11.599689483642578; +262.6835632324219, 11.612147331237793; +262.7835693359375, 11.625513076782227; +262.8835754394531, 11.6397066116333; +262.9835510253906, 11.654816627502441; +263.08355712890625, 11.670380592346191; +263.18353271484375, 11.68547534942627; +263.2835388183594, 11.700026512145996; +263.3835144042969, 11.714346885681152; +263.4835205078125, 11.728904724121094; +263.5835266113281, 11.74338150024414; +263.6835021972656, 11.757813453674316; +263.78350830078125, 11.772476196289062; +263.88348388671875, 11.78764533996582; +263.9834899902344, 11.803701400756836; +264.08349609375, 11.81963062286377; +264.1834716796875, 11.835180282592773; +264.2834777832031, 11.850580215454102; +264.3834533691406, 11.865854263305664; +264.48345947265625, 11.881769180297852; +264.5834655761719, 11.898994445800781; +264.6834411621094, 11.917956352233887; +264.783447265625, 11.937260627746582; +264.8834228515625, 11.955022811889648; +264.9834289550781, 11.972784996032715; +265.08343505859375, 11.991903305053711; +265.18341064453125, 12.011751174926758; +265.2834167480469, 12.031808853149414; +265.3833923339844, 12.05335521697998; +265.4833984375, 12.078389167785645; +265.5834045410156, 12.10524845123291; +265.6833801269531, 12.131571769714355; +265.78338623046875, 12.156658172607422; +265.88336181640625, 12.180119514465332; +265.9833679199219, 12.201622009277344; +266.0833740234375, 12.221358299255371; +266.183349609375, 12.239553451538086; +266.2833557128906, 12.255653381347656; +266.3833312988281, 12.268826484680176; +266.48333740234375, 12.279525756835938; +266.5833435058594, 12.288511276245117; +266.6833190917969, 12.295782089233398; +266.7833251953125, 12.30156421661377; +266.88330078125, 12.306883811950684; +266.9833068847656, 12.31221866607666; +267.08331298828125, 12.317798614501953; +267.18328857421875, 12.323878288269043; +267.2832946777344, 12.331396102905273; +267.3832702636719, 12.34107494354248; +267.4832763671875, 12.35161018371582; +267.583251953125, 12.361884117126465; +267.6832580566406, 12.37197208404541; +267.78326416015625, 12.383177757263184; +267.88323974609375, 12.394092559814453; +267.9832458496094, 12.402393341064453; +268.0832214355469, 12.407883644104004; +268.1832275390625, 12.41415023803711; +268.2832336425781, 12.422569274902344; +268.3832092285156, 12.431509971618652; +268.48321533203125, 12.44033145904541; +268.58319091796875, 12.450798988342285; +268.6831970214844, 12.46529769897461; +268.783203125, 12.48165225982666; +268.8831787109375, 12.498363494873047; +268.9831848144531, 12.515097618103027; +269.0831604003906, 12.532554626464844; +269.18316650390625, 12.549616813659668; +269.2831726074219, 12.56527042388916; +269.3831481933594, 12.581445693969727; +269.483154296875, 12.599743843078613; +269.5831298828125, 12.619711875915527; +269.6831359863281, 12.640253067016602; +269.78314208984375, 12.660964965820312; +269.88311767578125, 12.680821418762207; +269.9831237792969, 12.697405815124512; +270.0830993652344, 12.710041999816895; +270.18310546875, 12.72130012512207; +270.2831115722656, 12.732773780822754; +270.3830871582031, 12.74508285522461; +270.48309326171875, 12.758135795593262; +270.58306884765625, 12.772232055664062; +270.6830749511719, 12.786470413208008; +270.7830810546875, 12.799196243286133; +270.883056640625, 12.81025218963623; +270.9830627441406, 12.820378303527832; +271.0830383300781, 12.830175399780273; +271.18304443359375, 12.839838981628418; +271.2830505371094, 12.848958015441895; +271.3830261230469, 12.857481956481934; +271.4830322265625, 12.86587142944336; +271.5830078125, 12.874096870422363; +271.6830139160156, 12.882478713989258; +271.7829895019531, 12.891210556030273; +271.88299560546875, 12.900799751281738; +271.9830017089844, 12.910962104797363; +272.0829772949219, 12.920409202575684; +272.1829833984375, 12.928970336914062; +272.282958984375, 12.936942100524902; +272.3829650878906, 12.94444465637207; +272.48297119140625, 12.952163696289062; +272.58294677734375, 12.959845542907715; +272.6829528808594, 12.966968536376953; +272.7829284667969, 12.973726272583008; +272.8829345703125, 12.980386734008789; +272.9829406738281, 12.98779296875; +273.0829162597656, 12.995019912719727; +273.18292236328125, 13.002410888671875; +273.28289794921875, 13.010360717773438; +273.3829040527344, 13.018265724182129; +273.48291015625, 13.025381088256836; +273.5828857421875, 13.031281471252441; +273.6828918457031, 13.036712646484375; +273.7828674316406, 13.042137145996094; +273.88287353515625, 13.047493934631348; +273.9828796386719, 13.052680015563965; +274.0828552246094, 13.058177947998047; +274.182861328125, 13.063743591308594; +274.2828369140625, 13.06896686553955; +274.3828430175781, 13.072877883911133; +274.48284912109375, 13.077214241027832; +274.58282470703125, 13.08301830291748; +274.6828308105469, 13.089359283447266; +274.7828063964844, 13.09510326385498; +274.8828125, 13.099834442138672; +274.9828186035156, 13.105154037475586; +275.0827941894531, 13.110652923583984; +275.18280029296875, 13.115793228149414; +275.28277587890625, 13.12100887298584; +275.3827819824219, 13.126686096191406; +275.4827575683594, 13.13328742980957; +275.582763671875, 13.139941215515137; +275.6827697753906, 13.146058082580566; +275.7827453613281, 13.151518821716309; +275.88275146484375, 13.1564359664917; +275.98272705078125, 13.161502838134766; +276.0827331542969, 13.166248321533203; +276.1827392578125, 13.16946792602539; +276.28271484375, 13.170555114746094; +276.3827209472656, 13.170003890991211; +276.4826965332031, 13.169191360473633; +276.58270263671875, 13.168514251708984; +276.6827087402344, 13.168514251708984; +276.7826843261719, 13.169906616210938; +276.8826904296875, 13.17290210723877; +276.982666015625, 13.177536010742188; +277.0826721191406, 13.182297706604004; +277.18267822265625, 13.186320304870605; +277.28265380859375, 13.189122200012207; +277.3826599121094, 13.190932273864746; +277.4826354980469, 13.192221641540527; +277.5826416015625, 13.192675590515137; +277.6826477050781, 13.192646026611328; +277.7826232910156, 13.191461563110352; +277.88262939453125, 13.188772201538086; +277.98260498046875, 13.18529224395752; +278.0826110839844, 13.181715965270996; +278.1826171875, 13.177238464355469; +278.2825927734375, 13.170942306518555; +278.3825988769531, 13.163596153259277; +278.4825744628906, 13.156868934631348; +278.58258056640625, 13.149998664855957; +278.6825866699219, 13.141639709472656; +278.7825622558594, 13.13211727142334; +278.882568359375, 13.12255859375; +278.9825439453125, 13.113371849060059; +279.0825500488281, 13.103708267211914; +279.18255615234375, 13.093456268310547; +279.28253173828125, 13.082533836364746; +279.3825378417969, 13.070919036865234; +279.4825134277344, 13.059020042419434; +279.58251953125, 13.04781436920166; +279.6824951171875, 13.037130355834961; +279.7825012207031, 13.02669906616211; +279.88250732421875, 13.016841888427734; +279.98248291015625, 13.008735656738281; +280.0824890136719, 13.002366065979004; +280.1824645996094, 12.996814727783203; +280.282470703125, 12.992300033569336; +280.3824768066406, 12.988336563110352; +280.4824523925781, 12.984268188476562; +280.58245849609375, 12.979216575622559; +280.68243408203125, 12.974031448364258; +280.7824401855469, 12.969359397888184; +280.8824462890625, 12.964919090270996; +280.982421875, 12.960992813110352; +281.0824279785156, 12.958675384521484; +281.1824035644531, 12.959308624267578; +281.28240966796875, 12.961655616760254; +281.3824157714844, 12.963570594787598; +281.4823913574219, 12.96438980102539; +281.5823974609375, 12.965462684631348; +281.682373046875, 12.96725845336914; +281.7823791503906, 12.968629837036133; +281.88238525390625, 12.969642639160156; +281.98236083984375, 12.97193717956543; +282.0823669433594, 12.97620677947998; +282.1823425292969, 12.980781555175781; +282.2823486328125, 12.984909057617188; +282.3823547363281, 12.98844051361084; +282.4823303222656, 12.990765571594238; +282.58233642578125, 12.992009162902832; +282.68231201171875, 12.992843627929688; +282.7823181152344, 12.994468688964844; +282.88232421875, 12.996986389160156; +282.9822998046875, 13.000138282775879; +283.0823059082031, 13.004638671875; +283.1822814941406, 13.009123802185059; +283.28228759765625, 13.012528419494629; +283.3822937011719, 13.014242172241211; +283.4822692871094, 13.014689445495605; +283.582275390625, 13.015329360961914; +283.6822509765625, 13.016305923461914; +283.7822570800781, 13.017595291137695; +283.8822326660156, 13.018340110778809; +283.98223876953125, 13.018712043762207; +284.0822448730469, 13.01838493347168; +284.1822204589844, 13.017095565795898; +284.2822265625, 13.015277862548828; +284.3822021484375, 13.014204978942871; +284.4822082519531, 13.015002250671387; +284.58221435546875, 13.01714038848877; +284.68218994140625, 13.020537376403809; +284.7821960449219, 13.024740219116211; +284.8821716308594, 13.029850959777832; +284.982177734375, 13.036831855773926; +285.0821838378906, 13.046361923217773; +285.1821594238281, 13.059123992919922; +285.28216552734375, 13.07496452331543; +285.38214111328125, 13.092912673950195; +285.4821472167969, 13.111122131347656; +285.5821533203125, 13.127737045288086; +285.68212890625, 13.14250373840332; +285.7821350097656, 13.15504264831543; +285.8821105957031, 13.165548324584961; +285.98211669921875, 13.173751831054688; +286.0821228027344, 13.17940616607666; +286.1820983886719, 13.18177604675293; +286.2821044921875, 13.180136680603027; +286.382080078125, 13.174467086791992; +286.4820861816406, 13.163902282714844; +286.58209228515625, 13.150148391723633; +286.68206787109375, 13.136215209960938; +286.7820739746094, 13.124518394470215; +286.8820495605469, 13.115324020385742; +286.9820556640625, 13.108194351196289; +287.0820617675781, 13.103902816772461; +287.1820373535156, 13.102121353149414; +287.28204345703125, 13.101652145385742; +287.38201904296875, 13.101190567016602; +287.4820251464844, 13.100542068481445; +287.58203125, 13.10141372680664; +287.6820068359375, 13.105779647827148; +287.7820129394531, 13.115860939025879; +287.8819885253906, 13.134196281433105; +287.98199462890625, 13.166226387023926; +288.08197021484375, 13.216771125793457; +288.1819763183594, 13.28927230834961; +288.281982421875, 13.3851318359375; +288.3819580078125, 13.50580883026123; +288.4819641113281, 13.652488708496094; +288.5819396972656, 13.82271957397461; +288.68194580078125, 14.013960838317871; +288.7819519042969, 14.22084903717041; +288.8819274902344, 14.437333106994629; +288.98193359375, 14.655158042907715; +289.0819091796875, 14.864020347595215; +289.1819152832031, 15.053995132446289; +289.28192138671875, 15.215404510498047; +289.38189697265625, 15.341736793518066; +289.4819030761719, 15.427925109863281; +289.5818786621094, 15.471391677856445; +289.681884765625, 15.473336219787598; +289.7818908691406, 15.437811851501465; +289.8818664550781, 15.370808601379395; +289.98187255859375, 15.277810096740723; +290.08184814453125, 15.165209770202637; +290.1818542480469, 15.039816856384277; +290.2818603515625, 14.908604621887207; +290.3818359375, 14.777481079101562; +290.4818420410156, 14.649764060974121; +290.5818176269531, 14.528446197509766; +290.68182373046875, 14.416337013244629; +290.7818298339844, 14.315583229064941; +290.8818054199219, 14.224775314331055; +290.9818115234375, 14.141276359558105; +291.081787109375, 14.064237594604492; +291.1817932128906, 13.993687629699707; +291.28179931640625, 13.92930793762207; +291.38177490234375, 13.869508743286133; +291.4817810058594, 13.814300537109375; +291.5817565917969, 13.764090538024902; +291.6817626953125, 13.7180757522583; +291.78173828125, 13.674542427062988; +291.8817443847656, 13.631939888000488; +291.98175048828125, 13.59135627746582; +292.08172607421875, 13.553619384765625; +292.1817321777344, 13.51936149597168; +292.2817077636719, 13.488314628601074; +292.3817138671875, 13.460702896118164; +292.4817199707031, 13.436593055725098; +292.5816955566406, 13.414725303649902; +292.68170166015625, 13.3942289352417; +292.78167724609375, 13.37394905090332; +292.8816833496094, 13.3546142578125; +292.981689453125, 13.337485313415527; +293.0816650390625, 13.323031425476074; +293.1816711425781, 13.309821128845215; +293.2816467285156, 13.296514511108398; +293.38165283203125, 13.284109115600586; +293.4816589355469, 13.272687911987305; +293.5816345214844, 13.261146545410156; +293.681640625, 13.248764038085938; +293.7816162109375, 13.23685073852539; +293.8816223144531, 13.225987434387207; +293.98162841796875, 13.214722633361816; +294.08160400390625, 13.202838897705078; +294.1816101074219, 13.192065238952637; +294.2815856933594, 13.183601379394531; +294.381591796875, 13.17743968963623; +294.4815979003906, 13.1742582321167; +294.5815734863281, 13.175353050231934; +294.68157958984375, 13.18173885345459; +294.78155517578125, 13.191856384277344; +294.8815612792969, 13.204395294189453; +294.9815673828125, 13.217345237731934; +295.08154296875, 13.228185653686523; +295.1815490722656, 13.234451293945312; +295.2815246582031, 13.234130859375; +295.38153076171875, 13.226487159729004; +295.4815368652344, 13.2105131149292; +295.5815124511719, 13.187281608581543; +295.6815185546875, 13.15873908996582; +295.781494140625, 13.127326965332031; +295.8815002441406, 13.093985557556152; +295.9814758300781, 13.059041976928711; +296.08148193359375, 13.02476978302002; +296.1814880371094, 12.992874145507812; +296.2814636230469, 12.964584350585938; +296.3814697265625, 12.93925952911377; +296.4814453125, 12.915797233581543; +296.5814514160156, 12.894399642944336; +296.68145751953125, 12.874618530273438; +296.78143310546875, 12.856819152832031; +296.8814392089844, 12.840487480163574; +296.9814147949219, 12.825526237487793; +297.0814208984375, 12.812651634216309; +297.1814270019531, 12.801997184753418; +297.2814025878906, 12.792952537536621; +297.38140869140625, 12.783743858337402; +297.48138427734375, 12.774102210998535; +297.5813903808594, 12.764506340026855; +297.681396484375, 12.755208015441895; +297.7813720703125, 12.746036529541016; +297.8813781738281, 12.737542152404785; +297.9813537597656, 12.730643272399902; +298.08135986328125, 12.724653244018555; +298.1813659667969, 12.718505859375; +298.2813415527344, 12.711599349975586; +298.38134765625, 12.703940391540527; +298.4813232421875, 12.695707321166992; +298.5813293457031, 12.686707496643066; +298.68133544921875, 12.677103042602539; +298.78131103515625, 12.667097091674805; +298.8813171386719, 12.657329559326172; +298.9812927246094, 12.648172378540039; +299.081298828125, 12.639060974121094; +299.1813049316406, 12.629606246948242; +299.2812805175781, 12.620136260986328; +299.38128662109375, 12.610599517822266; +299.48126220703125, 12.599982261657715; +299.5812683105469, 12.587942123413086; +299.6812744140625, 12.57513427734375; +299.78125, 12.56262493133545; +299.8812561035156, 12.549691200256348; +299.9812316894531, 12.535900115966797; +300.08123779296875, 12.521870613098145; +300.18121337890625, 12.508362770080566; +300.2812194824219, 12.49582290649414; +300.3812255859375, 12.482457160949707; +300.481201171875, 12.467876434326172; +300.5812072753906, 12.453593254089355; +300.6811828613281, 12.44157600402832; +300.78118896484375, 12.432127952575684; +300.8811950683594, 12.424245834350586; +300.9811706542969, 12.417398452758789; +301.0811767578125, 12.411922454833984; +301.18115234375, 12.406691551208496; +301.2811584472656, 12.40074634552002; +301.38116455078125, 12.394137382507324; +301.48114013671875, 12.386650085449219; +301.5811462402344, 12.378692626953125; +301.6811218261719, 12.371063232421875; +301.7811279296875, 12.364975929260254; +301.8811340332031, 12.359209060668945; +301.9811096191406, 12.350998878479004; +302.08111572265625, 12.339629173278809; +302.18109130859375, 12.326576232910156; +302.2810974121094, 12.31252384185791; +302.381103515625, 12.296967506408691; +302.4810791015625, 12.281097412109375; +302.5810852050781, 12.267187118530273; +302.6810607910156, 12.256153106689453; +302.78106689453125, 12.246452331542969; +302.8810729980469, 12.236960411071777; +302.9810485839844, 12.227676391601562; +303.0810546875, 12.217879295349121; +303.1810302734375, 12.206830024719238; +303.2810363769531, 12.193977355957031; +303.38104248046875, 12.180477142333984; +303.48101806640625, 12.166998863220215; +303.5810241699219, 12.154057502746582; +303.6809997558594, 12.141890525817871; +303.781005859375, 12.13085651397705; +303.8810119628906, 12.121685028076172; +303.9809875488281, 12.11358642578125; +304.08099365234375, 12.105576515197754; +304.18096923828125, 12.09697151184082; +304.2809753417969, 12.08790397644043; +304.3809509277344, 12.078508377075195; +304.48095703125, 12.067892074584961; +304.5809631347656, 12.056268692016602; +304.6809387207031, 12.044451713562012; +304.78094482421875, 12.033000946044922; +304.88092041015625, 12.022100448608398; +304.9809265136719, 12.011252403259277; +305.0809326171875, 12.000828742980957; +305.180908203125, 11.991053581237793; +305.2809143066406, 11.982046127319336; +305.3808898925781, 11.973224639892578; +305.48089599609375, 11.963650703430176; +305.5809020996094, 11.953741073608398; +305.6808776855469, 11.943861961364746; +305.7808837890625, 11.934309959411621; +305.880859375, 11.92440128326416; +305.9808654785156, 11.914409637451172; +306.08087158203125, 11.905036926269531; +306.18084716796875, 11.895611763000488; +306.2808532714844, 11.885873794555664; +306.3808288574219, 11.875226974487305; +306.4808349609375, 11.864371299743652; +306.5808410644531, 11.85321044921875; +306.6808166503906, 11.842109680175781; +306.78082275390625, 11.832043647766113; +306.88079833984375, 11.823966979980469; +306.9808044433594, 11.818305015563965; +307.080810546875, 11.81340217590332; +307.1807861328125, 11.8073148727417; +307.2807922363281, 11.799708366394043; +307.3807678222656, 11.791117668151855; +307.48077392578125, 11.780797958374023; +307.5807800292969, 11.768214225769043; +307.6807556152344, 11.75484848022461; +307.78076171875, 11.744178771972656; +307.8807373046875, 11.736027717590332; +307.9807434082031, 11.728376388549805; +308.08074951171875, 11.720858573913574; +308.18072509765625, 11.714667320251465; +308.2807312011719, 11.710702896118164; +308.3807067871094, 11.707231521606445; +308.480712890625, 11.702709197998047; +308.5806884765625, 11.697508811950684; +308.6806945800781, 11.692449569702148; +308.78070068359375, 11.687368392944336; +308.88067626953125, 11.680521011352539; +308.9806823730469, 11.670597076416016; +309.0806579589844, 11.659651756286621; +309.1806640625, 11.649489402770996; +309.2806701660156, 11.640496253967285; +309.3806457519531, 11.63180923461914; +309.48065185546875, 11.62379264831543; +309.58062744140625, 11.618391036987305; +309.6806335449219, 11.615901947021484; +309.7806396484375, 11.61526870727539; +309.880615234375, 11.615373611450195; +309.9806213378906, 11.616371154785156; +310.0805969238281, 11.618494987487793; +310.18060302734375, 11.621050834655762; +310.2806091308594, 11.623665809631348; +310.3805847167969, 11.626988410949707; +310.4805908203125, 11.630810737609863; +310.58056640625, 11.63320255279541; +310.6805725097656, 11.632866859436035; +310.78057861328125, 11.62979793548584; +310.88055419921875, 11.623494148254395; +310.9805603027344, 11.613390922546387; +311.0805358886719, 11.600234031677246; +311.1805419921875, 11.586472511291504; +311.2805480957031, 11.572294235229492; +311.3805236816406, 11.557519912719727; +311.48052978515625, 11.542759895324707; +311.58050537109375, 11.528759956359863; +311.6805114746094, 11.514700889587402; +311.780517578125, 11.499844551086426; +311.8804931640625, 11.485904693603516; +311.9804992675781, 11.473894119262695; +312.0804748535156, 11.463448524475098; +312.18048095703125, 11.45334529876709; +312.28045654296875, 11.444785118103027; +312.3804626464844, 11.439264297485352; +312.48046875, 11.436954498291016; +312.5804443359375, 11.437222480773926; +312.6804504394531, 11.439971923828125; +312.7804260253906, 11.446267127990723; +312.88043212890625, 11.455602645874023; +312.9804382324219, 11.465951919555664; +313.0804138183594, 11.475682258605957; +313.180419921875, 11.483489990234375; +313.2803955078125, 11.48805046081543; +313.3804016113281, 11.487505912780762; +313.48040771484375, 11.481419563293457; +313.58038330078125, 11.470556259155273; +313.6803894042969, 11.455349922180176; +313.7803649902344, 11.436798095703125; +313.88037109375, 11.416390419006348; +313.9803771972656, 11.396236419677734; +314.0803527832031, 11.376447677612305; +314.18035888671875, 11.35683822631836; +314.28033447265625, 11.338218688964844; +314.3803405761719, 11.321976661682129; +314.4803466796875, 11.309012413024902; +314.580322265625, 11.298521995544434; +314.6803283691406, 11.28953742980957; +314.7803039550781, 11.281349182128906; +314.88031005859375, 11.27333927154541; +314.9803161621094, 11.26578426361084; +315.0802917480469, 11.258334159851074; +315.1802978515625, 11.251293182373047; +315.2802734375, 11.245757102966309; +315.3802795410156, 11.242315292358398; +315.48028564453125, 11.240423202514648; +315.58026123046875, 11.238262176513672; +315.6802673339844, 11.235259056091309; +315.7802429199219, 11.231422424316406; +315.8802490234375, 11.22714614868164; +315.9802551269531, 11.222622871398926; +316.0802307128906, 11.218555450439453; +316.18023681640625, 11.215143203735352; +316.28021240234375, 11.212386131286621; +316.3802185058594, 11.209823608398438; +316.4801940917969, 11.206857681274414; +316.5802001953125, 11.203773498535156; +316.6802062988281, 11.200242042541504; +316.7801818847656, 11.195674896240234; +316.88018798828125, 11.189654350280762; +316.98016357421875, 11.183082580566406; +317.0801696777344, 11.177420616149902; +317.18017578125, 11.173375129699707; +317.2801513671875, 11.171854972839355; +317.3801574707031, 11.174872398376465; +317.4801330566406, 11.183314323425293; +317.58013916015625, 11.196002006530762; +317.6801452636719, 11.212162971496582; +317.7801208496094, 11.232100486755371; +317.880126953125, 11.255889892578125; +317.9801025390625, 11.28278636932373; +318.0801086425781, 11.311918258666992; +318.18011474609375, 11.34373950958252; +318.28009033203125, 11.376455307006836; +318.3800964355469, 11.406972885131836; +318.4800720214844, 11.432722091674805; +318.580078125, 11.451080322265625; +318.6800842285156, 11.460124969482422; +318.7800598144531, 11.45826244354248; +318.88006591796875, 11.445924758911133; +318.98004150390625, 11.425100326538086; +319.0800476074219, 11.39827823638916; +319.1800537109375, 11.36791706085205; +319.280029296875, 11.335990905761719; +319.3800354003906, 11.304847717285156; +319.4800109863281, 11.2766695022583; +319.58001708984375, 11.252172470092773; +319.6800231933594, 11.23100471496582; +319.7799987792969, 11.212512969970703; +319.8800048828125, 11.196910858154297; +319.97998046875, 11.183120727539062; +320.0799865722656, 11.169642448425293; +320.17999267578125, 11.156023025512695; +320.27996826171875, 11.143192291259766; +320.3799743652344, 11.132828712463379; +320.4799499511719, 11.12512493133545; +320.5799560546875, 11.1200590133667; +320.679931640625, 11.118046760559082; +320.7799377441406, 11.119604110717773; +320.87994384765625, 11.122367858886719; +320.97991943359375, 11.124096870422363; +321.0799255371094, 11.125572204589844; +321.1799011230469, 11.128410339355469; +321.2799072265625, 11.131465911865234; +321.3799133300781, 11.131540298461914; +321.4798889160156, 11.128984451293945; +321.57989501953125, 11.125773429870605; +321.67987060546875, 11.121071815490723; +321.7798767089844, 11.112980842590332; +321.8798828125, 11.101826667785645; +321.9798583984375, 11.090688705444336; +322.0798645019531, 11.081353187561035; +322.1798400878906, 11.072754859924316; +322.27984619140625, 11.063888549804688; +322.3798522949219, 11.055059432983398; +322.4798278808594, 11.047191619873047; +322.579833984375, 11.039473533630371; +322.6798095703125, 11.031039237976074; +322.7798156738281, 11.021703720092773; +322.87982177734375, 11.012226104736328; +322.97979736328125, 11.002532958984375; +323.0798034667969, 10.993123054504395; +323.1797790527344, 10.985634803771973; +323.27978515625, 10.980308532714844; +323.3797912597656, 10.976850509643555; +323.4797668457031, 10.974913597106934; +323.57977294921875, 10.97613525390625; +323.67974853515625, 10.980293273925781; +323.7797546386719, 10.985724449157715; +323.8797607421875, 10.991997718811035; +323.979736328125, 11.000029563903809; +324.0797424316406, 11.010028839111328; +324.1797180175781, 11.019967079162598; +324.27972412109375, 11.028430938720703; +324.3797302246094, 11.035457611083984; +324.4797058105469, 11.041365623474121; +324.5797119140625, 11.045575141906738; +324.6796875, 11.047765731811523; +324.7796936035156, 11.047720909118652; +324.8796691894531, 11.046112060546875; +324.97967529296875, 11.043257713317871; +325.0796813964844, 11.038869857788086; +325.1796569824219, 11.031903266906738; +325.2796630859375, 11.021740913391113; +325.379638671875, 11.009626388549805; +325.4796447753906, 10.996885299682617; +325.57965087890625, 10.984391212463379; +325.67962646484375, 10.972574234008789; +325.7796325683594, 10.962583541870117; +325.8796081542969, 10.954663276672363; +325.9796142578125, 10.947763442993164; +326.0796203613281, 10.941169738769531; +326.1795959472656, 10.935232162475586; +326.27960205078125, 10.930008888244629; +326.37957763671875, 10.924354553222656; +326.4795837402344, 10.918952941894531; +326.57958984375, 10.916098594665527; +326.6795654296875, 10.916426658630371; +326.7795715332031, 10.917804718017578; +326.8795471191406, 10.91906452178955; +326.97955322265625, 10.921038627624512; +327.0795593261719, 10.923840522766113; +327.1795349121094, 10.925904273986816; +327.279541015625, 10.92668628692627; +327.3795166015625, 10.927289962768555; +327.4795227050781, 10.927736282348633; +327.57952880859375, 10.927491188049316; +327.67950439453125, 10.926864624023438; +327.7795104980469, 10.92634391784668; +327.8794860839844, 10.924972534179688; +327.9794921875, 10.921910285949707; +328.0794982910156, 10.918230056762695; +328.1794738769531, 10.914966583251953; +328.27947998046875, 10.911747932434082; +328.37945556640625, 10.90817928314209; +328.4794616699219, 10.905250549316406; +328.5794372558594, 10.90376091003418; +328.679443359375, 10.90294075012207; +328.7794494628906, 10.903776168823242; +328.8794250488281, 10.906442642211914; +328.97943115234375, 10.910369873046875; +329.07940673828125, 10.913952827453613; +329.1794128417969, 10.916948318481445; +329.2794189453125, 10.920352935791016; +329.37939453125, 10.922119140625; +329.4794006347656, 10.922558784484863; +329.5793762207031, 10.922774314880371; +329.67938232421875, 10.924272537231445; +329.7793884277344, 10.926254272460938; +329.8793640136719, 10.927103042602539; +329.9793701171875, 10.927989959716797; +330.079345703125, 10.929703712463379; +330.1793518066406, 10.932437896728516; +330.27935791015625, 10.935507774353027; +330.37933349609375, 10.938212394714355; +330.4793395996094, 10.941296577453613; +330.5793151855469, 10.945484161376953; +330.6793212890625, 10.950803756713867; +330.7793273925781, 10.956950187683105; +330.8793029785156, 10.964006423950195; +330.97930908203125, 10.973103523254395; +331.07928466796875, 10.983683586120605; +331.1792907714844, 10.993502616882324; +331.279296875, 11.000930786132812; +331.3792724609375, 11.00585651397705; +331.4792785644531, 11.009149551391602; +331.5792541503906, 11.010736465454102; +331.67926025390625, 11.010103225708008; +331.7792663574219, 11.007353782653809; +331.8792419433594, 11.002890586853027; +331.979248046875, 10.997936248779297; +332.0792236328125, 10.992668151855469; +332.1792297363281, 10.987855911254883; +332.27923583984375, 10.983601570129395; +332.37921142578125, 10.980076789855957; +332.4792175292969, 10.976552963256836; +332.5791931152344, 10.97231388092041; +332.67919921875, 10.96770191192627; +332.7791748046875, 10.963342666625977; +332.8791809082031, 10.960638046264648; +332.97918701171875, 10.959118843078613; +333.07916259765625, 10.959207534790039; +333.1791687011719, 10.960824966430664; +333.2791442871094, 10.963648796081543; +333.379150390625, 10.967008590698242; +333.4791564941406, 10.969802856445312; +333.5791320800781, 10.9736328125; +333.67913818359375, 10.97884750366211; +333.77911376953125, 10.985448837280273; +333.8791198730469, 10.993949890136719; +333.9791259765625, 11.005073547363281; +334.0791015625, 11.020027160644531; +334.1791076660156, 11.037826538085938; +334.2790832519531, 11.058032989501953; +334.37908935546875, 11.080570220947266; +334.4790954589844, 11.105634689331055; +334.5790710449219, 11.133350372314453; +334.6790771484375, 11.163063049316406; +334.779052734375, 11.194035530090332; +334.8790588378906, 11.22616958618164; +334.97906494140625, 11.259317398071289; +335.07904052734375, 11.292569160461426; +335.1790466308594, 11.325300216674805; +335.2790222167969, 11.357516288757324; +335.3790283203125, 11.390254020690918; +335.4790344238281, 11.421963691711426; +335.5790100097656, 11.450216293334961; +335.67901611328125, 11.473342895507812; +335.77899169921875, 11.4900541305542; +335.8789978027344, 11.499926567077637; +335.97900390625, 11.501729965209961; +336.0789794921875, 11.4962158203125; +336.1789855957031, 11.484757423400879; +336.2789611816406, 11.467300415039062; +336.37896728515625, 11.445201873779297; +336.4789733886719, 11.41984748840332; +336.5789489746094, 11.394418716430664; +336.678955078125, 11.371515274047852; +336.7789306640625, 11.351995468139648; +336.8789367675781, 11.337213516235352; +336.9789123535156, 11.326469421386719; +337.07891845703125, 11.31997299194336; +337.1789245605469, 11.31711196899414; +337.2789001464844, 11.317700386047363; +337.37890625, 11.322319030761719; +337.4788818359375, 11.332541465759277; +337.5788879394531, 11.350929260253906; +337.67889404296875, 11.378802299499512; +337.77886962890625, 11.41787338256836; +337.8788757324219, 11.469639778137207; +337.9788513183594, 11.536836624145508; +338.078857421875, 11.621162414550781; +338.1788635253906, 11.72374153137207; +338.2788391113281, 11.845231056213379; +338.37884521484375, 11.984027862548828; +338.47882080078125, 12.13519287109375; +338.5788269042969, 12.29080581665039; +338.6788330078125, 12.441821098327637; +338.77880859375, 12.5794038772583; +338.8788146972656, 12.695185661315918; +338.9787902832031, 12.782342910766602; +339.07879638671875, 12.838162422180176; +339.1788024902344, 12.862227439880371; +339.2787780761719, 12.857012748718262; +339.3787841796875, 12.826032638549805; +339.478759765625, 12.773216247558594; +339.5787658691406, 12.702621459960938; +339.67877197265625, 12.61882495880127; +339.77874755859375, 12.527950286865234; +339.8787536621094, 12.434929847717285; +339.9787292480469, 12.343160629272461; +340.0787353515625, 12.255125045776367; +340.1787414550781, 12.174315452575684; +340.2787170410156, 12.102775573730469; +340.37872314453125, 12.040056228637695; +340.47869873046875, 11.984847068786621; +340.5787048339844, 11.936285018920898; +340.6787109375, 11.894367218017578; +340.7786865234375, 11.856712341308594; +340.8786926269531, 11.820830345153809; +340.9786682128906, 11.786371231079102; +341.07867431640625, 11.754229545593262; +341.17864990234375, 11.724859237670898; +341.2786560058594, 11.698230743408203; +341.378662109375, 11.675260543823242; +341.4786376953125, 11.656835556030273; +341.5786437988281, 11.6422700881958; +341.6786193847656, 11.630415916442871; +341.77862548828125, 11.6212739944458; +341.8786315917969, 11.614330291748047; +341.9786071777344, 11.60895824432373; +342.07861328125, 11.604756355285645; +342.1785888671875, 11.601813316345215; +342.2785949707031, 11.600404739379883; +342.37860107421875, 11.599481582641602; +342.47857666015625, 11.598684310913086; +342.5785827636719, 11.597834587097168; +342.6785583496094, 11.597752571105957; +342.778564453125, 11.598803520202637; +342.8785705566406, 11.60132884979248; +342.9785461425781, 11.606648445129395; +343.07855224609375, 11.616684913635254; +343.17852783203125, 11.634007453918457; +343.2785339355469, 11.659733772277832; +343.3785400390625, 11.695049285888672; +343.478515625, 11.741042137145996; +343.5785217285156, 11.797614097595215; +343.6784973144531, 11.86405086517334; +343.77850341796875, 11.938274383544922; +343.8785095214844, 12.017607688903809; +343.9784851074219, 12.098431587219238; +344.0784912109375, 12.175917625427246; +344.178466796875, 12.245945930480957; +344.2784729003906, 12.304082870483398; +344.37847900390625, 12.34730339050293; +344.47845458984375, 12.374006271362305; +344.5784606933594, 12.383445739746094; +344.6784362792969, 12.37657642364502; +344.7784423828125, 12.354925155639648; +344.87841796875, 12.321181297302246; +344.9784240722656, 12.278504371643066; +345.07843017578125, 12.230627059936523; +345.17840576171875, 12.180656433105469; +345.2784118652344, 12.130744934082031; +345.3783874511719, 12.082338333129883; +345.4783935546875, 12.037105560302734; +345.5783996582031, 11.995434761047363; +345.6783752441406, 11.9571533203125; +345.77838134765625, 11.923297882080078; +345.87835693359375, 11.893637657165527; +345.9783630371094, 11.867456436157227; +346.078369140625, 11.844642639160156; +346.1783447265625, 11.826157569885254; +346.2783508300781, 11.812366485595703; +346.3783264160156, 11.801570892333984; +346.47833251953125, 11.793539047241211; +346.5783386230469, 11.788681030273438; +346.6783142089844, 11.78605842590332; +346.7783203125, 11.783994674682617; +346.8782958984375, 11.781655311584473; +346.9783020019531, 11.778839111328125; +347.07830810546875, 11.775710105895996; +347.17828369140625, 11.772335052490234; +347.2782897949219, 11.768527030944824; +347.3782653808594, 11.764280319213867; +347.478271484375, 11.760018348693848; +347.5782775878906, 11.757217407226562; +347.6782531738281, 11.756002426147461; +347.77825927734375, 11.75545883178711; +347.87823486328125, 11.755249977111816; +347.9782409667969, 11.756338119506836; +348.0782470703125, 11.758089065551758; +348.17822265625, 11.758707046508789; +348.2782287597656, 11.758089065551758; +348.3782043457031, 11.758953094482422; +348.47821044921875, 11.763111114501953; +348.5782165527344, 11.769570350646973; +348.6781921386719, 11.777050971984863; +348.7781982421875, 11.78548526763916; +348.878173828125, 11.794269561767578; +348.9781799316406, 11.801950454711914; +349.0781555175781, 11.80860424041748; +349.17816162109375, 11.815637588500977; +349.2781677246094, 11.823765754699707; +349.3781433105469, 11.8328857421875; +349.4781494140625, 11.842489242553711; +349.578125, 11.851824760437012; +349.6781311035156, 11.859543800354004; +349.77813720703125, 11.865250587463379; +349.87811279296875, 11.870503425598145; +349.9781188964844, 11.876567840576172; +350.0780944824219, 11.883788108825684; +350.1781005859375, 11.89166259765625; +350.2781066894531, 11.90038776397705; +350.3780822753906, 11.909701347351074; +350.47808837890625, 11.918828010559082; +350.57806396484375, 11.926762580871582; +350.6780700683594, 11.933252334594727; +350.778076171875, 11.938117027282715; +350.8780517578125, 11.941805839538574; +350.9780578613281, 11.944792747497559; +351.0780334472656, 11.947378158569336; +351.17803955078125, 11.949591636657715; +351.2780456542969, 11.951356887817383; +351.3780212402344, 11.952988624572754; +351.47802734375, 11.95254898071289; +351.5780029296875, 11.948726654052734; +351.6780090332031, 11.940747261047363; +351.77801513671875, 11.9298095703125; +351.87799072265625, 11.917635917663574; +351.9779968261719, 11.905908584594727; +352.0779724121094, 11.896103858947754; +352.177978515625, 11.887825965881348; +352.2779846191406, 11.881053924560547; +352.3779602050781, 11.876203536987305; +352.47796630859375, 11.873595237731934; +352.57794189453125, 11.871509552001953; +352.6779479980469, 11.86952018737793; +352.7779541015625, 11.869475364685059; +352.8779296875, 11.873260498046875; +352.9779357910156, 11.879332542419434; +353.0779113769531, 11.8848237991333; +353.17791748046875, 11.88980770111084; +353.27789306640625, 11.894814491271973; +353.3778991699219, 11.899330139160156; +353.4779052734375, 11.901326179504395; +353.577880859375, 11.900894165039062; +353.6778869628906, 11.90041732788086; +353.7778625488281, 11.901036262512207; +353.87786865234375, 11.90192985534668; +353.9778747558594, 11.901989936828613; +354.0778503417969, 11.901617050170898; +354.1778564453125, 11.90139389038086; +354.27783203125, 11.900641441345215; +354.3778381347656, 11.898614883422852; +354.47784423828125, 11.896602630615234; +354.57781982421875, 11.895410537719727; +354.6778259277344, 11.894620895385742; +354.7778015136719, 11.893577575683594; +354.8778076171875, 11.892021179199219; +354.9778137207031, 11.89108943939209; +355.0777893066406, 11.890597343444824; +355.17779541015625, 11.889971733093262; +355.27777099609375, 11.889643669128418; +355.3777770996094, 11.890061378479004; +355.477783203125, 11.892191886901855; +355.5777587890625, 11.89562702178955; +355.6777648925781, 11.900216102600098; +355.7777404785156, 11.906661033630371; +355.87774658203125, 11.914804458618164; +355.9777526855469, 11.92481803894043; +356.0777282714844, 11.935517311096191; +356.177734375, 11.946089744567871; +356.2777099609375, 11.955849647521973; +356.3777160644531, 11.964268684387207; +356.47772216796875, 11.970467567443848; +356.57769775390625, 11.97323226928711; +356.6777038574219, 11.973246574401855; +356.7776794433594, 11.971846580505371; +356.877685546875, 11.970855712890625; +356.9776916503906, 11.97033405303955; +357.0776672363281, 11.971153259277344; +357.17767333984375, 11.973783493041992; +357.27764892578125, 11.977500915527344; +357.3776550292969, 11.980369567871094; +357.4776306152344, 11.979654312133789; +357.57763671875, 11.976144790649414; +357.6776428222656, 11.971138000488281; +357.7776184082031, 11.96572208404541; +357.87762451171875, 11.960774421691895; +357.97760009765625, 11.957489013671875; +358.0776062011719, 11.95642375946045; +358.1776123046875, 11.956236839294434; +358.277587890625, 11.955700874328613; +358.3775939941406, 11.956363677978516; +358.4775695800781, 11.95828628540039; +358.57757568359375, 11.960856437683105; +358.6775817871094, 11.963501930236816; +358.7775573730469, 11.96583366394043; +358.8775634765625, 11.968173027038574; +358.9775390625, 11.970728874206543; +359.0775451660156, 11.975460052490234; +359.17755126953125, 11.982314109802246; +359.27752685546875, 11.991254806518555; +359.3775329589844, 12.003570556640625; +359.4775085449219, 12.020751953125; +359.5775146484375, 12.041375160217285; +359.6775207519531, 12.062981605529785; +359.7774963378906, 12.08616828918457; +359.87750244140625, 12.112043380737305; +359.97747802734375, 12.139856338500977; +360.0774841308594, 12.1671781539917; +360.177490234375, 12.192755699157715; +360.2774658203125, 12.21628475189209; +360.3774719238281, 12.237019538879395; +360.4774475097656, 12.254335403442383; +360.57745361328125, 12.26776123046875; +360.6774597167969, 12.276403427124023; +360.7774353027344, 12.279436111450195; +360.87744140625, 12.277409553527832; +360.9774169921875, 12.271754264831543; +361.0774230957031, 12.26375961303711; +361.1773986816406, 12.255162239074707; +361.27740478515625, 12.248955726623535; +361.3774108886719, 12.247011184692383; +361.4773864746094, 12.24952220916748; +361.577392578125, 12.255698204040527; +361.6773681640625, 12.265727043151855; +361.7773742675781, 12.27860164642334; +361.87738037109375, 12.292586326599121; +361.97735595703125, 12.306645393371582; +362.0773620605469, 12.320220947265625; +362.1773376464844, 12.331999778747559; +362.27734375, 12.33945083618164; +362.3773498535156, 12.341290473937988; +362.4773254394531, 12.33719253540039; +362.57733154296875, 12.328438758850098; +362.67730712890625, 12.316658973693848; +362.7773132324219, 12.302711486816406; +362.8773193359375, 12.287169456481934; +362.977294921875, 12.271224975585938; +363.0773010253906, 12.256428718566895; +363.1772766113281, 12.24242115020752; +363.27728271484375, 12.228019714355469; +363.3772888183594, 12.214183807373047; +363.4772644042969, 12.202829360961914; +363.5772705078125, 12.194774627685547; +363.67724609375, 12.190006256103516; +363.7772521972656, 12.1884126663208; +363.87725830078125, 12.189380645751953; +363.97723388671875, 12.191713333129883; +364.0772399902344, 12.194477081298828; +364.1772155761719, 12.197114944458008; +364.2772216796875, 12.199178695678711; +364.3772277832031, 12.201666831970215; +364.4772033691406, 12.20567512512207; +364.57720947265625, 12.211434364318848; +364.67718505859375, 12.219063758850098; +364.7771911621094, 12.228824615478516; +364.877197265625, 12.24014949798584; +364.9771728515625, 12.251511573791504; +365.0771789550781, 12.263022422790527; +365.1771545410156, 12.276694297790527; +365.27716064453125, 12.293465614318848; +365.37713623046875, 12.314446449279785; +365.4771423339844, 12.341558456420898; +365.5771484375, 12.375741958618164; +365.6771240234375, 12.414939880371094; +365.7771301269531, 12.455604553222656; +365.8771057128906, 12.496687889099121; +365.97711181640625, 12.537442207336426; +366.0771179199219, 12.57441234588623; +366.1770935058594, 12.604803085327148; +366.277099609375, 12.62924861907959; +366.3770751953125, 12.651115417480469; +366.4770812988281, 12.671425819396973; +366.57708740234375, 12.689367294311523; +366.67706298828125, 12.706853866577148; +366.7770690917969, 12.726523399353027; +366.8770446777344, 12.748167037963867; +366.97705078125, 12.768745422363281; +367.0770568847656, 12.785903930664062; +367.1770324707031, 12.799962997436523; +367.27703857421875, 12.809887886047363; +367.37701416015625, 12.81303882598877; +367.4770202636719, 12.808979034423828; +367.5770263671875, 12.79887580871582; +367.677001953125, 12.784041404724121; +367.7770080566406, 12.764200210571289; +367.8769836425781, 12.740172386169434; +367.97698974609375, 12.714780807495117; +368.0769958496094, 12.690156936645508; +368.1769714355469, 12.667447090148926; +368.2769775390625, 12.648232460021973; +368.376953125, 12.63253402709961; +368.4769592285156, 12.620024681091309; +368.57696533203125, 12.609786987304688; +368.67694091796875, 12.601487159729004; +368.7769470214844, 12.595035552978516; +368.8769226074219, 12.589439392089844; +368.9769287109375, 12.586161613464355; +369.0769348144531, 12.585416793823242; +369.1769104003906, 12.586362838745117; +369.27691650390625, 12.588016510009766; +369.37689208984375, 12.590787887573242; +369.4768981933594, 12.595772743225098; +369.5768737792969, 12.60251522064209; +369.6768798828125, 12.610957145690918; +369.7768859863281, 12.62207317352295; +369.8768615722656, 12.63632583618164; +369.97686767578125, 12.653730392456055; +370.07684326171875, 12.674093246459961; +370.1768493652344, 12.696869850158691; +370.27685546875, 12.721635818481445; +370.3768310546875, 12.747444152832031; +370.4768371582031, 12.774117469787598; +370.5768127441406, 12.80091667175293; +370.67681884765625, 12.826606750488281; +370.7768249511719, 12.850947380065918; +370.8768005371094, 12.874544143676758; +370.976806640625, 12.897700309753418; +371.0767822265625, 12.918695449829102; +371.1767883300781, 12.936308860778809; +371.27679443359375, 12.952878952026367; +371.37677001953125, 12.970887184143066; +371.4767761230469, 12.990921974182129; +371.5767517089844, 13.012639999389648; +371.6767578125, 13.037614822387695; +371.7767639160156, 13.067737579345703; +371.8767395019531, 13.101011276245117; +371.97674560546875, 13.134963989257812; +372.07672119140625, 13.1681489944458; +372.1767272949219, 13.201437950134277; +372.2767333984375, 13.236075401306152; +372.376708984375, 13.27054214477539; +372.4767150878906, 13.302892684936523; +372.5766906738281, 13.331159591674805; +372.67669677734375, 13.35631275177002; +372.7767028808594, 13.378739356994629; +372.8766784667969, 13.39671802520752; +372.9766845703125, 13.40919017791748; +373.07666015625, 13.41584300994873; +373.1766662597656, 13.416990280151367; +373.27667236328125, 13.409786224365234; +373.37664794921875, 13.39241886138916; +373.4766540527344, 13.365387916564941; +373.5766296386719, 13.33156967163086; +373.6766357421875, 13.293437957763672; +373.776611328125, 13.252571105957031; +373.8766174316406, 13.211682319641113; +373.97662353515625, 13.173125267028809; +374.07659912109375, 13.138890266418457; +374.1766052246094, 13.108715057373047; +374.2765808105469, 13.08275032043457; +374.3765869140625, 13.062052726745605; +374.4765930175781, 13.047784805297852; +374.5765686035156, 13.039387702941895; +374.67657470703125, 13.035379409790039; +374.77655029296875, 13.035633087158203; +374.8765563964844, 13.04006576538086; +374.9765625, 13.047419548034668; +375.0765380859375, 13.056978225708008; +375.1765441894531, 13.069293975830078; +375.2765197753906, 13.084389686584473; +375.37652587890625, 13.100676536560059; +375.4765319824219, 13.11667251586914; +375.5765075683594, 13.13196086883545; +375.676513671875, 13.145505905151367; +375.7764892578125, 13.1566743850708; +375.8764953613281, 13.16493034362793; +375.97650146484375, 13.170763969421387; +376.07647705078125, 13.17483139038086; +376.1764831542969, 13.178266525268555; +376.2764587402344, 13.1824312210083; +376.37646484375, 13.188064575195312; +376.4764709472656, 13.19680404663086; +376.5764465332031, 13.2083740234375; +376.67645263671875, 13.221412658691406; +376.77642822265625, 13.234004020690918; +376.8764343261719, 13.245344161987305; +376.9764404296875, 13.255476951599121; +377.076416015625, 13.263717651367188; +377.1764221191406, 13.270415306091309; +377.2763977050781, 13.276107788085938; +377.37640380859375, 13.281911849975586; +377.47637939453125, 13.288028717041016; +377.5763854980469, 13.293094635009766; +377.6763916015625, 13.295709609985352; +377.7763671875, 13.296924591064453; +377.8763732910156, 13.298042297363281; +377.9763488769531, 13.298720359802246; +378.07635498046875, 13.29784107208252; +378.1763610839844, 13.296463012695312; +378.2763366699219, 13.296463012695312; +378.3763427734375, 13.2965669631958; +378.476318359375, 13.296424865722656; +378.5763244628906, 13.297184944152832; +378.67633056640625, 13.301036834716797; +378.77630615234375, 13.308659553527832; +378.8763122558594, 13.31948471069336; +378.9762878417969, 13.333625793457031; +379.0762939453125, 13.350814819335938; +379.1763000488281, 13.371438026428223; +379.2762756347656, 13.395041465759277; +379.37628173828125, 13.421520233154297; +379.47625732421875, 13.449743270874023; +379.5762634277344, 13.480178833007812; +379.67626953125, 13.514585494995117; +379.7762451171875, 13.554282188415527; +379.8762512207031, 13.599790573120117; +379.9762268066406, 13.64921760559082; +380.07623291015625, 13.70208740234375; +380.1762390136719, 13.757802963256836; +380.2762145996094, 13.815350532531738; +380.376220703125, 13.871886253356934; +380.4761962890625, 13.924293518066406; +380.5762023925781, 13.97085952758789; +380.67620849609375, 14.010354995727539; +380.77618408203125, 14.041088104248047; +380.8761901855469, 14.059782028198242; +380.9761657714844, 14.06441593170166; +381.076171875, 14.054290771484375; +381.1761779785156, 14.030218124389648; +381.2761535644531, 13.994142532348633; +381.37615966796875, 13.947635650634766; +381.47613525390625, 13.89331340789795; +381.5761413574219, 13.834722518920898; +381.6761169433594, 13.776175498962402; +381.776123046875, 13.721235275268555; +381.8761291503906, 13.671107292175293; +381.9761047363281, 13.627119064331055; +382.07611083984375, 13.590224266052246; +382.17608642578125, 13.560273170471191; +382.2760925292969, 13.535954475402832; +382.3760986328125, 13.51501750946045; +382.47607421875, 13.496659278869629; +382.5760803222656, 13.481468200683594; +382.6760559082031, 13.47060489654541; +382.77606201171875, 13.464115142822266; +382.8760681152344, 13.461671829223633; +382.9760437011719, 13.463839530944824; +383.0760498046875, 13.470888137817383; +383.176025390625, 13.481415748596191; +383.2760314941406, 13.494745254516602; +383.37603759765625, 13.510852813720703; +383.47601318359375, 13.529032707214355; +383.5760192871094, 13.548113822937012; +383.6759948730469, 13.567715644836426; +383.7760009765625, 13.588115692138672; +383.8760070800781, 13.60739803314209; +383.9759826660156, 13.623968124389648; +384.07598876953125, 13.638459205627441; +384.17596435546875, 13.653471946716309; +384.2759704589844, 13.669692039489746; +384.3759765625, 13.686158180236816; +384.4759521484375, 13.70254898071289; +384.5759582519531, 13.720318794250488; +384.6759338378906, 13.740263938903809; +384.77593994140625, 13.7604398727417; +384.8759460449219, 13.779417037963867; +384.9759216308594, 13.79692554473877; +385.075927734375, 13.813100814819336; +385.1759033203125, 13.825922966003418; +385.2759094238281, 13.833626747131348; +385.37591552734375, 13.836487770080566; +385.47589111328125, 13.835467338562012; +385.5758972167969, 13.83209228515625; +385.6758728027344, 13.827763557434082; +385.77587890625, 13.824105262756348; +385.8758544921875, 13.821929931640625; +385.9758605957031, 13.821654319763184; +386.07586669921875, 13.823278427124023; +386.17584228515625, 13.826519012451172; +386.2758483886719, 13.831570625305176; +386.3758239746094, 13.838484764099121; +386.475830078125, 13.847134590148926; +386.5758361816406, 13.85653018951416; +386.6758117675781, 13.866223335266113; +386.77581787109375, 13.875871658325195; +386.87579345703125, 13.885513305664062; +386.9757995605469, 13.896248817443848; +387.0758056640625, 13.907723426818848; +387.17578125, 13.919055938720703; +387.2757873535156, 13.929888725280762; +387.3757629394531, 13.940654754638672; +387.47576904296875, 13.952091217041016; +387.5757751464844, 13.96458625793457; +387.6757507324219, 13.981401443481445; +387.7757568359375, 14.006487846374512; +387.875732421875, 14.043554306030273; +387.9757385253906, 14.095954895019531; +388.07574462890625, 14.166034698486328; +388.17572021484375, 14.2553071975708; +388.2757263183594, 14.364666938781738; +388.3757019042969, 14.49547004699707; +388.4757080078125, 14.645256042480469; +388.5757141113281, 14.807171821594238; +388.6756896972656, 14.9718599319458; +388.77569580078125, 15.129722595214844; +388.87567138671875, 15.270702362060547; +388.9756774902344, 15.385635375976562; +389.07568359375, 15.471003532409668; +389.1756591796875, 15.528082847595215; +389.2756652832031, 15.561662673950195; +389.3756408691406, 15.577994346618652; +389.47564697265625, 15.586003303527832; +389.5756530761719, 15.592418670654297; +389.6756286621094, 15.599727630615234; +389.775634765625, 15.60803508758545; +389.8756103515625, 15.616565704345703; +389.9756164550781, 15.62228012084961; +390.0755920410156, 15.618666648864746; +390.17559814453125, 15.60068130493164; +390.2756042480469, 15.566378593444824; +390.3755798339844, 15.516310691833496; +390.4755859375, 15.45157241821289; +390.5755615234375, 15.376388549804688; +390.6755676269531, 15.295624732971191; +390.77557373046875, 15.213683128356934; +390.87554931640625, 15.135065078735352; +390.9755554199219, 15.06321907043457; +391.0755310058594, 14.999792098999023; +391.175537109375, 14.943658828735352; +391.2755432128906, 14.8951416015625; +391.3755187988281, 14.855042457580566; +391.47552490234375, 14.821797370910645; +391.57550048828125, 14.793716430664062; +391.6755065917969, 14.770210266113281; +391.7755126953125, 14.752440452575684; +391.87548828125, 14.74018383026123; +391.9754943847656, 14.731928825378418; +392.0754699707031, 14.726981163024902; +392.17547607421875, 14.723889350891113; +392.2754821777344, 14.722540855407715; +392.3754577636719, 14.722928047180176; +392.4754638671875, 14.724895477294922; +392.575439453125, 14.728448867797852; +392.6754455566406, 14.732405662536621; +392.77545166015625, 14.736711502075195; +392.87542724609375, 14.741331100463867; +392.9754333496094, 14.746167182922363; +393.0754089355469, 14.750473022460938; +393.1754150390625, 14.753192901611328; +393.2754211425781, 14.755800247192383; +393.3753967285156, 14.759458541870117; +393.47540283203125, 14.763757705688477; +393.57537841796875, 14.76790714263916; +393.6753845214844, 14.773033142089844; +393.775390625, 14.780618667602539; +393.8753662109375, 14.790423393249512; +393.9753723144531, 14.802962303161621; +394.0753479003906, 14.819160461425781; +394.17535400390625, 14.839008331298828; +394.27532958984375, 14.86051082611084; +394.3753356933594, 14.882445335388184; +394.475341796875, 14.90489387512207; +394.5753173828125, 14.926560401916504; +394.6753234863281, 14.945477485656738; +394.7752990722656, 14.960713386535645; +394.87530517578125, 14.973282814025879; +394.9753112792969, 14.983736038208008; +395.0752868652344, 14.991082191467285; +395.17529296875, 14.994755744934082; +395.2752685546875, 14.995477676391602; +395.3752746582031, 14.99450969696045; +395.47528076171875, 14.992706298828125; +395.57525634765625, 14.991328239440918; +395.6752624511719, 14.993212699890137; +395.7752380371094, 15.001587867736816; +395.875244140625, 15.018649101257324; +395.9752502441406, 15.044868469238281; +396.0752258300781, 15.080987930297852; +396.17523193359375, 15.12716007232666; +396.27520751953125, 15.182778358459473; +396.3752136230469, 15.245922088623047; +396.4752197265625, 15.31424331665039; +396.5751953125, 15.384838104248047; +396.6752014160156, 15.451997756958008; +396.7751770019531, 15.510961532592773; +396.87518310546875, 15.557132720947266; +396.9751892089844, 15.587486267089844; +397.0751647949219, 15.599630355834961; +397.1751708984375, 15.593550682067871; +397.275146484375, 15.57329273223877; +397.3751525878906, 15.54312515258789; +397.47515869140625, 15.507742881774902; +397.57513427734375, 15.470452308654785; +397.6751403808594, 15.435091972351074; +397.7751159667969, 15.405535697937012; +397.8751220703125, 15.384138107299805; +397.97509765625, 15.372358322143555; +398.0751037597656, 15.37209701538086; +398.17510986328125, 15.38527774810791; +398.27508544921875, 15.412420272827148; +398.3750915527344, 15.45235538482666; +398.4750671386719, 15.503339767456055; +398.5750732421875, 15.563264846801758; +398.6750793457031, 15.62763786315918; +398.7750549316406, 15.691436767578125; +398.87506103515625, 15.751070976257324; +398.97503662109375, 15.803031921386719; +399.0750427246094, 15.843473434448242; +399.175048828125, 15.868208885192871; +399.2750244140625, 15.87495231628418; +399.3750305175781, 15.86422348022461; +399.4750061035156, 15.836819648742676; +399.57501220703125, 15.79489517211914; +399.6750183105469, 15.741758346557617; +399.7749938964844, 15.682578086853027; +399.875, 15.62325668334961; +399.9749755859375, 15.56660270690918; +400.0749816894531, 15.514187812805176; +400.17498779296875, 15.46633243560791; +400.27496337890625, 15.4232759475708; +400.3749694824219, 15.384785652160645; +400.4749450683594, 15.349410057067871; +400.574951171875, 15.317633628845215; +400.6749572753906, 15.289015769958496; +400.7749328613281, 15.263736724853516; +400.87493896484375, 15.241771697998047; +400.97491455078125, 15.223339080810547; +401.0749206542969, 15.208109855651855; +401.1749267578125, 15.194684028625488; +401.27490234375, 15.183188438415527; +401.3749084472656, 15.173949241638184; +401.4748840332031, 15.167646408081055; +401.57489013671875, 15.163376808166504; +401.6748962402344, 15.160523414611816; +401.7748718261719, 15.159710884094238; +401.8748779296875, 15.161797523498535; +401.974853515625, 15.167183876037598; +402.0748596191406, 15.173986434936523; +402.1748352050781, 15.180744171142578; +402.27484130859375, 15.187151908874512; +402.3748474121094, 15.193171501159668; +402.4748229980469, 15.198498725891113; +402.5748291015625, 15.201866149902344; +402.6748046875, 15.203155517578125; +402.7748107910156, 15.203468322753906; +402.87481689453125, 15.204050064086914; +402.97479248046875, 15.205100059509277; +403.0747985839844, 15.205606460571289; +403.1747741699219, 15.205122947692871; +403.2747802734375, 15.205010414123535; +403.3747863769531, 15.206724166870117; +403.4747619628906, 15.21025562286377; +403.57476806640625, 15.215017318725586; +403.67474365234375, 15.221796989440918; +403.7747497558594, 15.232033729553223; +403.874755859375, 15.245862007141113; +403.9747314453125, 15.261650085449219; +404.0747375488281, 15.278525352478027; +404.1747131347656, 15.295989990234375; +404.27471923828125, 15.314318656921387; +404.3747253417969, 15.334502220153809; +404.4747009277344, 15.356637954711914; +404.57470703125, 15.3806734085083; +404.6746826171875, 15.40688419342041; +404.7746887207031, 15.43603801727295; +404.87469482421875, 15.46954345703125; +404.97467041015625, 15.507481575012207; +405.0746765136719, 15.55044174194336; +405.1746520996094, 15.599637985229492; +405.274658203125, 15.655509948730469; +405.3746643066406, 15.719398498535156; +405.4746398925781, 15.791609764099121; +405.57464599609375, 15.873887062072754; +405.67462158203125, 15.968695640563965; +405.7746276855469, 16.07806968688965; +405.8746337890625, 16.203365325927734; +405.974609375, 16.34449577331543; +406.0746154785156, 16.501068115234375; +406.1745910644531, 16.67136001586914; +406.27459716796875, 16.852230072021484; +406.37457275390625, 17.039045333862305; +406.4745788574219, 17.2265625; +406.5745849609375, 17.408855438232422; +406.674560546875, 17.579301834106445; +406.7745666503906, 17.731151580810547; +406.8745422363281, 17.85799789428711; +406.97454833984375, 17.956390380859375; +407.0745544433594, 18.026203155517578; +407.1745300292969, 18.069072723388672; +407.2745361328125, 18.087261199951172; +407.37451171875, 18.084712982177734; +407.4745178222656, 18.068790435791016; +407.57452392578125, 18.04645347595215; +407.67449951171875, 18.022157669067383; +407.7745056152344, 17.999774932861328; +407.8744812011719, 17.9847412109375; +407.9744873046875, 17.981260299682617; +408.0744934082031, 17.98936653137207; +408.1744689941406, 18.00771141052246; +408.27447509765625, 18.03550148010254; +408.37445068359375, 18.0731258392334; +408.4744567871094, 18.11800193786621; +408.574462890625, 18.165803909301758; +408.6744384765625, 18.21172332763672; +408.7744445800781, 18.252634048461914; +408.8744201660156, 18.286951065063477; +408.97442626953125, 18.310964584350586; +409.0744323730469, 18.321826934814453; +409.1744079589844, 18.31937599182129; +409.2744140625, 18.3081111907959; +409.3743896484375, 18.293575286865234; +409.4743957519531, 18.27850914001465; +409.57440185546875, 18.26462173461914; +409.67437744140625, 18.251934051513672; +409.7743835449219, 18.241621017456055; +409.8743591308594, 18.235475540161133; +409.974365234375, 18.233366012573242; +410.0743713378906, 18.235727310180664; +410.1743469238281, 18.242530822753906; +410.27435302734375, 18.255054473876953; +410.37432861328125, 18.272907257080078; +410.4743347167969, 18.293418884277344; +410.5743103027344, 18.31462287902832; +410.67431640625, 18.334575653076172; +410.7743225097656, 18.353469848632812; +410.8742980957031, 18.373958587646484; +410.97430419921875, 18.397920608520508; +411.07427978515625, 18.424793243408203; +411.1742858886719, 18.45307731628418; +411.2742919921875, 18.482402801513672; +411.374267578125, 18.512964248657227; +411.4742736816406, 18.543333053588867; +411.5742492675781, 18.57288932800293; +411.67425537109375, 18.602445602416992; +411.7742614746094, 18.632009506225586; +411.8742370605469, 18.66118621826172; +411.9742431640625, 18.691211700439453; +412.07421875, 18.723346710205078; +412.1742248535156, 18.757522583007812; +412.27423095703125, 18.7927188873291; +412.37420654296875, 18.829389572143555; +412.4742126464844, 18.867918014526367; +412.5741882324219, 18.90707015991211; +412.6741943359375, 18.94606590270996; +412.7742004394531, 18.984966278076172; +412.8741760253906, 19.023962020874023; +412.97418212890625, 19.063308715820312; +413.07415771484375, 19.1047420501709; +413.1741638183594, 19.14962387084961; +413.274169921875, 19.197978973388672; +413.3741455078125, 19.24932098388672; +413.4741516113281, 19.303537368774414; +413.5741271972656, 19.360116958618164; +413.67413330078125, 19.41780662536621; +413.7741394042969, 19.475236892700195; +413.8741149902344, 19.53171157836914; +413.97412109375, 19.588106155395508; +414.0740966796875, 19.645795822143555; +414.1741027832031, 19.705698013305664; +414.2740783691406, 19.76821517944336; +414.37408447265625, 19.834980010986328; +414.4740905761719, 19.907012939453125; +414.5740661621094, 19.98213768005371; +414.674072265625, 20.058624267578125; +414.7740478515625, 20.137205123901367; +414.8740539550781, 20.219295501708984; +414.97406005859375, 20.304269790649414; +415.07403564453125, 20.39154624938965; +415.1740417480469, 20.48295783996582; +415.2740173339844, 20.579248428344727; +415.3740234375, 20.679637908935547; +415.4740295410156, 20.783931732177734; +415.5740051269531, 20.893096923828125; +415.67401123046875, 21.008358001708984; +415.77398681640625, 21.13039779663086; +415.8739929199219, 21.261520385742188; +415.9739990234375, 21.40287971496582; +416.073974609375, 21.55370330810547; +416.1739807128906, 21.71241569519043; +416.2739562988281, 21.878681182861328; +416.37396240234375, 22.05339813232422; +416.4739685058594, 22.23612403869629; +416.5739440917969, 22.427515029907227; +416.6739501953125, 22.62796401977539; +416.77392578125, 22.83871078491211; +416.8739318847656, 23.060916900634766; +416.97393798828125, 23.295536041259766; +417.07391357421875, 23.54476547241211; +417.1739196777344, 23.809558868408203; +417.2738952636719, 24.091087341308594; +417.3739013671875, 24.38921546936035; +417.4739074707031, 24.70073890686035; +417.5738830566406, 25.019906997680664; +417.67388916015625, 25.338790893554688; +417.77386474609375, 25.650121688842773; +417.8738708496094, 25.947601318359375; +417.973876953125, 26.224651336669922; +418.0738525390625, 26.477157592773438; +418.1738586425781, 26.70438575744629; +418.2738342285156, 26.90797233581543; +418.37384033203125, 27.09092903137207; +418.47381591796875, 27.257301330566406; +418.5738220214844, 27.41323471069336; +418.673828125, 27.56537437438965; +418.7738037109375, 27.71827507019043; +418.8738098144531, 27.875215530395508; +418.9737854003906, 28.038434982299805; +419.07379150390625, 28.208478927612305; +419.1737976074219, 28.385162353515625; +419.2737731933594, 28.56717300415039; +419.373779296875, 28.754196166992188; +419.4737548828125, 28.945632934570312; +419.5737609863281, 29.1392879486084; +419.67376708984375, 29.333852767944336; +419.77374267578125, 29.529050827026367; +419.8737487792969, 29.72585678100586; +419.9737243652344, 29.92315673828125; +420.07373046875, 30.11932945251465; +420.1737365722656, 30.315481185913086; +420.2737121582031, 30.512914657592773; +420.37371826171875, 30.711620330810547; +420.47369384765625, 30.90903091430664; +420.5736999511719, 31.103900909423828; +420.6737060546875, 31.29600715637207; +420.773681640625, 31.48423957824707; +420.8736877441406, 31.66666603088379; +420.9736633300781, 31.84115219116211; +421.07366943359375, 32.00673294067383; +421.1736755371094, 32.162689208984375; +421.2736511230469, 32.30778884887695; +421.3736572265625, 32.440460205078125; +421.4736328125, 32.558956146240234; +421.5736389160156, 32.66261672973633; +421.67364501953125, 32.75232696533203; +421.77362060546875, 32.82939529418945; +421.8736267089844, 32.89493942260742; +421.9736022949219, 32.94923782348633; +422.0736083984375, 32.993309020996094; +422.1736145019531, 33.02899169921875; +422.2735900878906, 33.05766677856445; +422.37359619140625, 33.07955551147461; +422.47357177734375, 33.09447479248047; +422.5735778808594, 33.103511810302734; +422.6735534667969, 33.109134674072266; +422.7735595703125, 33.1120719909668; +422.8735656738281, 33.11106491088867; +422.9735412597656, 33.10563278198242; +423.07354736328125, 33.09724426269531; +423.17352294921875, 33.087223052978516; +423.2735290527344, 33.07403564453125; +423.37353515625, 33.0567741394043; +423.4735107421875, 33.0363655090332; +423.5735168457031, 33.013954162597656; +423.6734924316406, 32.98899459838867; +423.77349853515625, 32.960968017578125; +423.8735046386719, 32.93205642700195; +423.9734802246094, 32.9041633605957; +424.073486328125, 32.878211975097656; +424.1734619140625, 32.85564422607422; +424.2734680175781, 32.839229583740234; +424.37347412109375, 32.83336639404297; +424.47344970703125, 32.84236145019531; +424.5734558105469, 32.872066497802734; +424.6734313964844, 32.930538177490234; +424.7734375, 33.02702331542969; +424.8734436035156, 33.17396926879883; +424.9734191894531, 33.387245178222656; +425.07342529296875, 33.68669128417969; +425.17340087890625, 34.099884033203125; +425.2734069824219, 34.66556167602539; +425.3734130859375, 35.433692932128906; +425.473388671875, 36.46315002441406; +425.5733947753906, 37.81904983520508; +425.6733703613281, 39.56747055053711; +425.77337646484375, 41.75946044921875; +425.8733825683594, 44.413848876953125; +425.9733581542969, 47.50300216674805; +426.0733642578125, 50.94114685058594; +426.17333984375, 54.57479476928711; +426.2733459472656, 58.18628692626953; +426.37335205078125, 61.513519287109375; +426.47332763671875, 64.27874755859375; +426.5733337402344, 66.22537231445312; +426.6733093261719, 67.15299987792969; +426.7733154296875, 66.94967651367188; +426.873291015625, 65.60873413085938; +426.9732971191406, 63.228851318359375; +427.07330322265625, 59.99808120727539; +427.17327880859375, 56.16273880004883; +427.2732849121094, 51.99335479736328; +427.3732604980469, 47.74891662597656; +427.4732666015625, 43.65037536621094; +427.5732727050781, 39.86369705200195; +427.6732482910156, 36.49396514892578; +427.77325439453125, 33.586761474609375; +427.87322998046875, 31.136951446533203; +427.9732360839844, 29.105730056762695; +428.0732421875, 27.435876846313477; +428.1732177734375, 26.062227249145508; +428.2732238769531, 24.91827392578125; +428.3731994628906, 23.947589874267578; +428.47320556640625, 23.108184814453125; +428.5732116699219, 22.371492385864258; +428.6731872558594, 21.717824935913086; +428.773193359375, 21.134071350097656; +428.8731689453125, 20.61553955078125; +428.9731750488281, 20.16087532043457; +429.07318115234375, 19.769235610961914; +429.17315673828125, 19.43735694885254; +429.2731628417969, 19.159875869750977; +429.3731384277344, 18.93169403076172; +429.47314453125, 18.745683670043945; +429.5731506347656, 18.594213485717773; +429.6731262207031, 18.46909523010254; +429.77313232421875, 18.364213943481445; +429.87310791015625, 18.27601432800293; +429.9731140136719, 18.201374053955078; +430.0731201171875, 18.138139724731445; +430.173095703125, 18.084033966064453; +430.2731018066406, 18.03936004638672; +430.3730773925781, 18.003768920898438; +430.47308349609375, 17.974740982055664; +430.57305908203125, 17.949260711669922; +430.6730651855469, 17.924652099609375; +430.7730712890625, 17.898828506469727; +430.873046875, 17.8684139251709; +430.9730529785156, 17.82974624633789; +431.0730285644531, 17.782241821289062; +431.17303466796875, 17.72708511352539; +431.2730407714844, 17.665647506713867; +431.3730163574219, 17.59858512878418; +431.4730224609375, 17.527297973632812; +431.572998046875, 17.455354690551758; +431.6730041503906, 17.38490104675293; +431.77301025390625, 17.316267013549805; +431.87298583984375, 17.249792098999023; +431.9729919433594, 17.187959671020508; +432.0729675292969, 17.13290786743164; +432.1729736328125, 17.084665298461914; +432.2729797363281, 17.04309844970703; +432.3729553222656, 17.00887107849121; +432.47296142578125, 16.982078552246094; +432.57293701171875, 16.960918426513672; +432.6729431152344, 16.94403648376465; +432.77294921875, 16.9312801361084; +432.8729248046875, 16.92207908630371; +432.9729309082031, 16.914613723754883; +433.0729064941406, 16.90833282470703; +433.17291259765625, 16.904800415039062; +433.2729187011719, 16.905017852783203; +433.3728942871094, 16.90726661682129; +433.472900390625, 16.909927368164062; +433.5728759765625, 16.91338348388672; +433.6728820800781, 16.919315338134766; +433.77288818359375, 16.928001403808594; +433.87286376953125, 16.937702178955078; +433.9728698730469, 16.947538375854492; +434.0728454589844, 16.957626342773438; +434.1728515625, 16.969547271728516; +434.2728576660156, 16.982980728149414; +434.3728332519531, 16.996665954589844; +434.47283935546875, 17.00948143005371; +434.57281494140625, 17.022945404052734; +434.6728210449219, 17.03878402709961; +434.7727966308594, 17.056859970092773; +434.872802734375, 17.075420379638672; +434.9728088378906, 17.09302520751953; +435.0727844238281, 17.110706329345703; +435.17279052734375, 17.128862380981445; +435.27276611328125, 17.147525787353516; +435.3727722167969, 17.16680145263672; +435.4727783203125, 17.187387466430664; +435.57275390625, 17.20956802368164; +435.6727600097656, 17.232589721679688; +435.7727355957031, 17.255016326904297; +435.87274169921875, 17.27597427368164; +435.9727478027344, 17.29409408569336; +436.0727233886719, 17.308794021606445; +436.1727294921875, 17.32016372680664; +436.272705078125, 17.328664779663086; +436.3727111816406, 17.335996627807617; +436.47271728515625, 17.3428955078125; +436.57269287109375, 17.34992790222168; +436.6726989746094, 17.357885360717773; +436.7726745605469, 17.368078231811523; +436.8726806640625, 17.38218879699707; +436.9726867675781, 17.40165138244629; +437.0726623535156, 17.428756713867188; +437.17266845703125, 17.465248107910156; +437.27264404296875, 17.512277603149414; +437.3726501464844, 17.571426391601562; +437.47265625, 17.644420623779297; +437.5726318359375, 17.732240676879883; +437.6726379394531, 17.83527374267578; +437.7726135253906, 17.955108642578125; +437.87261962890625, 18.09140968322754; +437.9726257324219, 18.240428924560547; +438.0726013183594, 18.396198272705078; +438.172607421875, 18.551231384277344; +438.2725830078125, 18.69662857055664; +438.3725891113281, 18.823205947875977; +438.47259521484375, 18.925540924072266; +438.57257080078125, 19.000104904174805; +438.6725769042969, 19.042917251586914; +438.7725524902344, 19.05089569091797; +438.87255859375, 19.026018142700195; +438.9725341796875, 18.972396850585938; +439.0725402832031, 18.89234733581543; +439.17254638671875, 18.789291381835938; +439.27252197265625, 18.670089721679688; +439.3725280761719, 18.544771194458008; +439.4725036621094, 18.419883728027344; +439.572509765625, 18.29884910583496; +439.6725158691406, 18.18492317199707; +439.7724914550781, 18.080352783203125; +439.87249755859375, 17.988189697265625; +439.97247314453125, 17.90829086303711; +440.0724792480469, 17.839967727661133; +440.1724853515625, 17.782196044921875; +440.2724609375, 17.735063552856445; +440.3724670410156, 17.69937515258789; +440.4724426269531, 17.673105239868164; +440.57244873046875, 17.655485153198242; +440.6724548339844, 17.646282196044922; +440.7724304199219, 17.645620346069336; +440.8724365234375, 17.652549743652344; +440.972412109375, 17.665878295898438; +441.0724182128906, 17.686187744140625; +441.17242431640625, 17.71266746520996; +441.27239990234375, 17.744525909423828; +441.3724060058594, 17.782316207885742; +441.4723815917969, 17.827138900756836; +441.5723876953125, 17.87930679321289; +441.6723937988281, 17.935998916625977; +441.7723693847656, 17.99298858642578; +441.87237548828125, 18.04677391052246; +441.97235107421875, 18.093414306640625; +442.0723571777344, 18.12813377380371; +442.17236328125, 18.144838333129883; +442.2723388671875, 18.139631271362305; +442.3723449707031, 18.11302375793457; +442.4723205566406, 18.06564712524414; +442.57232666015625, 17.99866485595703; +442.6723327636719, 17.91419792175293; +442.7723083496094, 17.817825317382812; +442.872314453125, 17.715402603149414; +442.9722900390625, 17.611488342285156; +443.0722961425781, 17.511547088623047; +443.1722717285156, 17.419748306274414; +443.27227783203125, 17.33836555480957; +443.3722839355469, 17.26651954650879; +443.4722595214844, 17.204151153564453; +443.572265625, 17.151899337768555; +443.6722412109375, 17.10918617248535; +443.7722473144531, 17.075300216674805; +443.87225341796875, 17.04943084716797; +443.97222900390625, 17.031267166137695; +444.0722351074219, 17.020084381103516; +444.1722106933594, 17.01536750793457; +444.272216796875, 17.01552391052246; +444.3722229003906, 17.018951416015625; +444.4721984863281, 17.025596618652344; +444.57220458984375, 17.03802490234375; +444.67218017578125, 17.057403564453125; +444.7721862792969, 17.081148147583008; +444.8721923828125, 17.10601234436035; +444.97216796875, 17.13010597229004; +445.0721740722656, 17.152488708496094; +445.1721496582031, 17.170547485351562; +445.27215576171875, 17.18155288696289; +445.3721618652344, 17.18585968017578; +445.4721374511719, 17.186254501342773; +445.5721435546875, 17.18343734741211; +445.672119140625, 17.176136016845703; +445.7721252441406, 17.16400718688965; +445.87213134765625, 17.149784088134766; +445.97210693359375, 17.135889053344727; +446.0721130371094, 17.121896743774414; +446.1720886230469, 17.10805320739746; +446.2720947265625, 17.096660614013672; +446.3721008300781, 17.090261459350586; +446.4720764160156, 17.088979721069336; +446.57208251953125, 17.090469360351562; +446.67205810546875, 17.09363555908203; +446.7720642089844, 17.098114013671875; +446.8720397949219, 17.102703094482422; +446.9720458984375, 17.105989456176758; +447.0720520019531, 17.105876922607422; +447.1720275878906, 17.10231590270996; +447.27203369140625, 17.095752716064453; +447.37200927734375, 17.08698272705078; +447.4720153808594, 17.076536178588867; +447.572021484375, 17.063922882080078; +447.6719970703125, 17.05002784729004; +447.7720031738281, 17.03544044494629; +447.8719787597656, 17.020553588867188; +447.97198486328125, 17.00554084777832; +448.0719909667969, 16.99088478088379; +448.1719665527344, 16.977853775024414; +448.27197265625, 16.96700668334961; +448.3719482421875, 16.958595275878906; +448.4719543457031, 16.951717376708984; +448.57196044921875, 16.945846557617188; +448.67193603515625, 16.940593719482422; +448.7719421386719, 16.93582534790039; +448.8719177246094, 16.931325912475586; +448.971923828125, 16.926244735717773; +449.0719299316406, 16.92107391357422; +449.1719055175781, 16.915903091430664; +449.27191162109375, 16.91217041015625; +449.37188720703125, 16.91058349609375; +449.4718933105469, 16.911752700805664; +449.5718994140625, 16.91550064086914; +449.671875, 16.92070770263672; +449.7718811035156, 16.92606544494629; +449.8718566894531, 16.93075180053711; +449.97186279296875, 16.934677124023438; +450.0718688964844, 16.937002182006836; +450.1718444824219, 16.938560485839844; +450.2718505859375, 16.94050407409668; +450.371826171875, 16.944900512695312; +450.4718322753906, 16.950986862182617; +450.57183837890625, 16.958580017089844; +450.67181396484375, 16.969383239746094; +450.7718200683594, 16.983739852905273; +450.8717956542969, 17.00039291381836; +450.9718017578125, 17.017305374145508; +451.07177734375, 17.03515625; +451.1717834472656, 17.054834365844727; +451.27178955078125, 17.074785232543945; +451.37176513671875, 17.0927791595459; +451.4717712402344, 17.10819435119629; +451.5717468261719, 17.121427536010742; +451.6717529296875, 17.1324462890625; +451.7717590332031, 17.139799118041992; +451.8717346191406, 17.142534255981445; +451.97174072265625, 17.14106559753418; +452.07171630859375, 17.136343002319336; +452.1717224121094, 17.12911605834961; +452.271728515625, 17.11869239807129; +452.3717041015625, 17.10389518737793; +452.4717102050781, 17.085493087768555; +452.5716857910156, 17.06484031677246; +452.67169189453125, 17.043188095092773; +452.7716979980469, 17.02072525024414; +452.8716735839844, 16.99828338623047; +452.9716796875, 16.9776611328125; +453.0716552734375, 16.959049224853516; +453.1716613769531, 16.942590713500977; +453.27166748046875, 16.928157806396484; +453.37164306640625, 16.916446685791016; +453.4716491699219, 16.907804489135742; +453.5716247558594, 16.90115737915039; +453.671630859375, 16.896142959594727; +453.7716369628906, 16.892850875854492; +453.8716125488281, 16.892120361328125; +453.97161865234375, 16.893409729003906; +454.07159423828125, 16.895160675048828; +454.1716003417969, 16.897478103637695; +454.2716064453125, 16.901344299316406; +454.37158203125, 16.90757942199707; +454.4715881347656, 16.915849685668945; +454.5715637207031, 16.926183700561523; +454.67156982421875, 16.93914794921875; +454.7715759277344, 16.95394515991211; +454.8715515136719, 16.96852684020996; +454.9715576171875, 16.98108673095703; +455.071533203125, 16.9910945892334; +455.1715393066406, 16.998775482177734; +455.2715148925781, 17.003908157348633; +455.37152099609375, 17.00658416748047; +455.4715270996094, 17.006912231445312; +455.5715026855469, 17.005115509033203; +455.6715087890625, 17.00139045715332; +455.771484375, 16.996719360351562; +455.8714904785156, 16.991294860839844; +455.97149658203125, 16.985490798950195; +456.07147216796875, 16.98068618774414; +456.1714782714844, 16.97842025756836; +456.2714538574219, 16.978837966918945; +456.3714599609375, 16.980215072631836; +456.4714660644531, 16.983158111572266; +456.5714416503906, 16.989126205444336; +456.67144775390625, 16.997821807861328; +456.77142333984375, 17.008319854736328; +456.8714294433594, 17.020530700683594; +456.971435546875, 17.034746170043945; +457.0714111328125, 17.04973793029785; +457.1714172363281, 17.06325912475586; +457.2713928222656, 17.075725555419922; +457.37139892578125, 17.088436126708984; +457.4714050292969, 17.101600646972656; +457.5713806152344, 17.11501121520996; +457.67138671875, 17.128982543945312; +457.7713623046875, 17.146154403686523; +457.8713684082031, 17.167285919189453; +457.97137451171875, 17.190553665161133; +458.07135009765625, 17.214134216308594; +458.1713562011719, 17.238088607788086; +458.2713317871094, 17.26372528076172; +458.371337890625, 17.289682388305664; +458.4713439941406, 17.31344985961914; +458.5713195800781, 17.333999633789062; +458.67132568359375, 17.351903915405273; +458.77130126953125, 17.366714477539062; +458.8713073730469, 17.37666130065918; +458.9713134765625, 17.380617141723633; +459.0712890625, 17.378889083862305; +459.1712951660156, 17.371692657470703; +459.2712707519531, 17.358661651611328; +459.37127685546875, 17.339445114135742; +459.47125244140625, 17.314746856689453; +459.5712585449219, 17.28608512878418; +459.6712646484375, 17.25452423095703; +459.771240234375, 17.220802307128906; +459.8712463378906, 17.186328887939453; +459.9712219238281, 17.153255462646484; +460.07122802734375, 17.12246322631836; +460.1712341308594, 17.09345054626465; +460.2712097167969, 17.066150665283203; +460.3712158203125, 17.04143714904785; +460.47119140625, 17.019346237182617; +460.5711975097656, 16.99949073791504; +460.67120361328125, 16.982175827026367; +460.77117919921875, 16.968242645263672; +460.8711853027344, 16.957439422607422; +460.9711608886719, 16.94867706298828; +461.0711669921875, 16.941808700561523; +461.1711730957031, 16.936830520629883; +461.2711486816406, 16.93341064453125; +461.37115478515625, 16.92986488342285; +461.47113037109375, 16.925491333007812; +461.5711364746094, 16.920761108398438; +461.671142578125, 16.91670036315918; +461.7711181640625, 16.914411544799805; +461.8711242675781, 16.913808822631836; +461.9710998535156, 16.9149112701416; +462.07110595703125, 16.91738510131836; +462.1711120605469, 16.92099952697754; +462.2710876464844, 16.924768447875977; +462.37109375, 16.927845001220703; +462.4710693359375, 16.929903030395508; +462.5710754394531, 16.930767059326172; +462.67108154296875, 16.93075942993164; +462.77105712890625, 16.92998504638672; +462.8710632324219, 16.92931365966797; +462.9710388183594, 16.928285598754883; +463.071044921875, 16.926557540893555; +463.1710205078125, 16.92418098449707; +463.2710266113281, 16.92140769958496; +463.37103271484375, 16.918912887573242; +463.47100830078125, 16.91595458984375; +463.5710144042969, 16.912683486938477; +463.6709899902344, 16.90854835510254; +463.77099609375, 16.90469741821289; +463.8710021972656, 16.90287208557129; +463.9709777832031, 16.90287971496582; +464.07098388671875, 16.90297508239746; +464.17095947265625, 16.90115737915039; +464.2709655761719, 16.89864730834961; +464.3709716796875, 16.897029876708984; +464.470947265625, 16.894943237304688; +464.5709533691406, 16.892127990722656; +464.6709289550781, 16.890092849731445; +464.77093505859375, 16.8902645111084; +464.8709411621094, 16.89240264892578; +464.9709167480469, 16.894563674926758; +465.0709228515625, 16.89706802368164; +465.1708984375, 16.89948844909668; +465.2709045410156, 16.901039123535156; +465.37091064453125, 16.902618408203125; +465.47088623046875, 16.904949188232422; +465.5708923339844, 16.90870475769043; +465.6708679199219, 16.91413688659668; +465.7708740234375, 16.92108154296875; +465.8708801269531, 16.929977416992188; +465.9708557128906, 16.939416885375977; +466.07086181640625, 16.948848724365234; +466.17083740234375, 16.958354949951172; +466.2708435058594, 16.967191696166992; +466.370849609375, 16.97517967224121; +466.4708251953125, 16.981639862060547; +466.5708312988281, 16.986936569213867; +466.6708068847656, 16.99148178100586; +466.77081298828125, 16.995079040527344; +466.8708190917969, 16.99724006652832; +466.9707946777344, 16.99744987487793; +467.07080078125, 16.99602508544922; +467.1707763671875, 16.9942684173584; +467.2707824707031, 16.991912841796875; +467.3707580566406, 16.988554000854492; +467.47076416015625, 16.983970642089844; +467.5707702636719, 16.977951049804688; +467.6707458496094, 16.971059799194336; +467.770751953125, 16.963481903076172; +467.8707275390625, 16.95591163635254; +467.9707336425781, 16.948028564453125; +468.07073974609375, 16.940475463867188; +468.17071533203125, 16.93497657775879; +468.2707214355469, 16.93203353881836; +468.3706970214844, 16.9303035736084; +468.470703125, 16.928955078125; +468.5707092285156, 16.928070068359375; +468.6706848144531, 16.92812156677246; +468.77069091796875, 16.928665161132812; +468.87066650390625, 16.92984962463379; +468.9706726074219, 16.93187713623047; +469.0706787109375, 16.934656143188477; +469.170654296875, 16.938753128051758; +469.2706604003906, 16.94450569152832; +469.3706359863281, 16.951560974121094; +469.47064208984375, 16.957603454589844; +469.5706481933594, 16.96196937561035; +469.6706237792969, 16.965381622314453; +469.7706298828125, 16.969457626342773; +469.87060546875, 16.97457504272461; +469.9706115722656, 16.98078155517578; +470.07061767578125, 16.98869514465332; +470.17059326171875, 16.998573303222656; +470.2705993652344, 17.008602142333984; +470.3705749511719, 17.016231536865234; +470.4705810546875, 17.02170753479004; +470.5705871582031, 17.027578353881836; +470.6705627441406, 17.03523063659668; +470.77056884765625, 17.042770385742188; +470.87054443359375, 17.049312591552734; +470.9705505371094, 17.056175231933594; +471.070556640625, 17.062894821166992; +471.1705322265625, 17.067291259765625; +471.2705383300781, 17.0681095123291; +471.3705139160156, 17.06710433959961; +471.47052001953125, 17.066843032836914; +471.57049560546875, 17.067678451538086; +471.6705017089844, 17.070383071899414; +471.7705078125, 17.075054168701172; +471.8704833984375, 17.081932067871094; +471.9704895019531, 17.09105110168457; +472.0704650878906, 17.101072311401367; +472.17047119140625, 17.11145782470703; +472.2704772949219, 17.122119903564453; +472.3704528808594, 17.13426399230957; +472.470458984375, 17.147682189941406; +472.5704345703125, 17.160825729370117; +472.6704406738281, 17.1733341217041; +472.77044677734375, 17.184988021850586; +472.87042236328125, 17.193906784057617; +472.9704284667969, 17.19785499572754; +473.0704040527344, 17.19635009765625; +473.17041015625, 17.190792083740234; +473.2704162597656, 17.182722091674805; +473.3703918457031, 17.172931671142578; +473.47039794921875, 17.162561416625977; +473.57037353515625, 17.152137756347656; +473.6703796386719, 17.1422061920166; +473.7703857421875, 17.13380241394043; +473.870361328125, 17.12527847290039; +473.9703674316406, 17.11439323425293; +474.0703430175781, 17.100862503051758; +474.17034912109375, 17.086200714111328; +474.2703552246094, 17.072193145751953; +474.3703308105469, 17.059415817260742; +474.4703369140625, 17.04965591430664; +474.5703125, 17.0436954498291; +474.6703186035156, 17.040908813476562; +474.77032470703125, 17.041414260864258; +474.87030029296875, 17.044410705566406; +474.9703063964844, 17.047725677490234; +475.0702819824219, 17.049074172973633; +475.1702880859375, 17.049030303955078; +475.2702941894531, 17.048917770385742; +475.3702697753906, 17.04837417602539; +475.47027587890625, 17.047636032104492; +475.57025146484375, 17.047592163085938; +475.6702575683594, 17.048784255981445; +475.7702331542969, 17.051525115966797; +475.8702392578125, 17.055519104003906; +475.9702453613281, 17.06113624572754; +476.0702209472656, 17.068296432495117; +476.17022705078125, 17.078109741210938; +476.27020263671875, 17.093189239501953; +476.3702087402344, 17.114990234375; +476.47021484375, 17.144515991210938; +476.5701904296875, 17.182357788085938; +476.6701965332031, 17.228885650634766; +476.7701721191406, 17.283021926879883; +476.87017822265625, 17.34251594543457; +476.9701843261719, 17.405540466308594; +477.0701599121094, 17.47132110595703; +477.170166015625, 17.537296295166016; +477.2701416015625, 17.601131439208984; +477.3701477050781, 17.661638259887695; +477.47015380859375, 17.718225479125977; +477.57012939453125, 17.769716262817383; +477.6701354980469, 17.812341690063477; +477.7701110839844, 17.84441566467285; +477.8701171875, 17.864614486694336; +477.9701232910156, 17.872310638427734; +478.0700988769531, 17.86676788330078; +478.17010498046875, 17.84787368774414; +478.27008056640625, 17.81833267211914; +478.3700866699219, 17.780981063842773; +478.4700927734375, 17.738826751708984; +478.570068359375, 17.69356346130371; +478.6700744628906, 17.647340774536133; +478.7700500488281, 17.6019229888916; +478.87005615234375, 17.559223175048828; +478.9700622558594, 17.51964569091797; +479.0700378417969, 17.482675552368164; +479.1700439453125, 17.447858810424805; +479.27001953125, 17.41563606262207; +479.3700256347656, 17.386913299560547; +479.47003173828125, 17.361379623413086; +479.57000732421875, 17.3378963470459; +479.6700134277344, 17.316423416137695; +479.7699890136719, 17.297775268554688; +479.8699951171875, 17.281509399414062; +479.969970703125, 17.267681121826172; +480.0699768066406, 17.25551414489746; +480.16998291015625, 17.245203018188477; +480.26995849609375, 17.235815048217773; +480.3699645996094, 17.226734161376953; +480.4699401855469, 17.219282150268555; +480.5699462890625, 17.212383270263672; +480.6699523925781, 17.2049617767334; +480.7699279785156, 17.19711685180664; +480.86993408203125, 17.191171646118164; +480.96990966796875, 17.189197540283203; +481.0699157714844, 17.19002342224121; +481.169921875, 17.193540573120117; +481.2698974609375, 17.20072364807129; +481.3699035644531, 17.21198844909668; +481.4698791503906, 17.226577758789062; +481.56988525390625, 17.244234085083008; +481.6698913574219, 17.26585578918457; +481.7698669433594, 17.29206085205078; +481.869873046875, 17.321958541870117; +481.9698486328125, 17.35567283630371; +482.0698547363281, 17.393857955932617; +482.16986083984375, 17.43572235107422; +482.26983642578125, 17.479598999023438; +482.3698425292969, 17.524152755737305; +482.4698181152344, 17.569116592407227; +482.56982421875, 17.613508224487305; +482.6698303222656, 17.655731201171875; +482.7698059082031, 17.695032119750977; +482.86981201171875, 17.73056411743164; +482.96978759765625, 17.76007652282715; +483.0697937011719, 17.78207778930664; +483.1697998046875, 17.795913696289062; +483.269775390625, 17.80164909362793; +483.3697814941406, 17.79877471923828; +483.4697570800781, 17.786941528320312; +483.56976318359375, 17.76795768737793; +483.66973876953125, 17.74286460876465; +483.7697448730469, 17.712890625; +483.8697509765625, 17.67874526977539; +483.9697265625, 17.64089584350586; +484.0697326660156, 17.600692749023438; +484.1697082519531, 17.55938720703125; +484.26971435546875, 17.519481658935547; +484.3697204589844, 17.48272705078125; +484.4696960449219, 17.44986343383789; +484.5697021484375, 17.421968460083008; +484.669677734375, 17.39931869506836; +484.7696838378906, 17.38216781616211; +484.86968994140625, 17.36964988708496; +484.96966552734375, 17.3595027923584; +485.0696716308594, 17.35036849975586; +485.1696472167969, 17.3422908782959; +485.2696533203125, 17.337352752685547; +485.3696594238281, 17.335556030273438; +485.4696350097656, 17.336830139160156; +485.56964111328125, 17.341711044311523; +485.66961669921875, 17.35053253173828; +485.7696228027344, 17.362110137939453; +485.86962890625, 17.374053955078125; +485.9696044921875, 17.38604164123535; +486.0696105957031, 17.397216796875; +486.1695861816406, 17.407752990722656; +486.26959228515625, 17.418012619018555; +486.3695983886719, 17.42763900756836; +486.4695739746094, 17.435691833496094; +486.569580078125, 17.442628860473633; +486.6695556640625, 17.449811935424805; +486.7695617675781, 17.457284927368164; +486.86956787109375, 17.463483810424805; +486.96954345703125, 17.468124389648438; +487.0695495605469, 17.471895217895508; +487.1695251464844, 17.474010467529297; +487.26953125, 17.47350311279297; +487.3695373535156, 17.470211029052734; +487.4695129394531, 17.464920043945312; +487.56951904296875, 17.45809555053711; +487.66949462890625, 17.450145721435547; +487.7695007324219, 17.441436767578125; +487.8694763183594, 17.432100296020508; +487.969482421875, 17.42198371887207; +488.0694885253906, 17.411649703979492; +488.1694641113281, 17.402023315429688; +488.26947021484375, 17.393320083618164; +488.36944580078125, 17.384849548339844; +488.4694519042969, 17.375640869140625; +488.5694580078125, 17.365694046020508; +488.66943359375, 17.3553524017334; +488.7694396972656, 17.34393882751465; +488.8694152832031, 17.330556869506836; +488.96942138671875, 17.31585693359375; +489.0694274902344, 17.302051544189453; +489.1694030761719, 17.289997100830078; +489.2694091796875, 17.279237747192383; +489.369384765625, 17.269580841064453; +489.4693908691406, 17.261564254760742; +489.56939697265625, 17.255090713500977; +489.66937255859375, 17.2491512298584; +489.7693786621094, 17.242631912231445; +489.8693542480469, 17.234689712524414; +489.9693603515625, 17.225109100341797; +490.0693664550781, 17.213895797729492; +490.1693420410156, 17.20172882080078; +490.26934814453125, 17.189697265625; +490.36932373046875, 17.179407119750977; +490.4693298339844, 17.171703338623047; +490.5693359375, 17.16605567932129; +490.6693115234375, 17.161741256713867; +490.7693176269531, 17.158761978149414; +490.8692932128906, 17.155529022216797; +490.96929931640625, 17.15013313293457; +491.0693054199219, 17.143033981323242; +491.1692810058594, 17.13690948486328; +491.269287109375, 17.134056091308594; +491.3692626953125, 17.133102416992188; +491.4692687988281, 17.133689880371094; +491.56927490234375, 17.136320114135742; +491.66925048828125, 17.140932083129883; +491.7692565917969, 17.14731788635254; +491.8692321777344, 17.15510368347168; +491.96923828125, 17.165050506591797; +492.0692138671875, 17.176433563232422; +492.1692199707031, 17.188907623291016; +492.26922607421875, 17.202972412109375; +492.36920166015625, 17.217994689941406; +492.4692077636719, 17.233245849609375; +492.5691833496094, 17.249263763427734; +492.669189453125, 17.268627166748047; +492.7691955566406, 17.292484283447266; +492.8691711425781, 17.32015609741211; +492.96917724609375, 17.350725173950195; +493.06915283203125, 17.383493423461914; +493.1691589355469, 17.417922973632812; +493.2691650390625, 17.45370101928711; +493.369140625, 17.491222381591797; +493.4691467285156, 17.530500411987305; +493.5691223144531, 17.570695877075195; +493.66912841796875, 17.611555099487305; +493.7691345214844, 17.651729583740234; +493.8691101074219, 17.689258575439453; +493.9691162109375, 17.72262191772461; +494.069091796875, 17.750539779663086; +494.1690979003906, 17.772756576538086; +494.26910400390625, 17.78865623474121; +494.36907958984375, 17.79863166809082; +494.4690856933594, 17.80314826965332; +494.5690612792969, 17.801172256469727; +494.6690673828125, 17.79281997680664; +494.7690734863281, 17.779342651367188; +494.8690490722656, 17.76115608215332; +494.96905517578125, 17.73834228515625; +495.06903076171875, 17.71107292175293; +495.1690368652344, 17.68124771118164; +495.26904296875, 17.65042495727539; +495.3690185546875, 17.618648529052734; +495.4690246582031, 17.585926055908203; +495.5690002441406, 17.552778244018555; +495.66900634765625, 17.52118682861328; +495.7690124511719, 17.492525100708008; +495.8689880371094, 17.466337203979492; +495.968994140625, 17.44230079650879; +496.0689697265625, 17.421663284301758; +496.1689758300781, 17.405107498168945; +496.2689514160156, 17.390697479248047; +496.36895751953125, 17.37613296508789; +496.4689636230469, 17.361738204956055; +496.5689392089844, 17.348684310913086; +496.6689453125, 17.337053298950195; +496.7689208984375, 17.326221466064453; +496.8689270019531, 17.315887451171875; +496.96893310546875, 17.306819915771484; +497.06890869140625, 17.29960823059082; +497.1689147949219, 17.293855667114258; +497.2688903808594, 17.288402557373047; +497.368896484375, 17.28247833251953; +497.4689025878906, 17.277114868164062; +497.5688781738281, 17.273239135742188; +497.66888427734375, 17.270103454589844; +497.76885986328125, 17.266937255859375; +497.8688659667969, 17.263919830322266; +497.9688720703125, 17.262094497680664; +498.06884765625, 17.260841369628906; +498.1688537597656, 17.25889778137207; +498.2688293457031, 17.256298065185547; +498.36883544921875, 17.253719329833984; +498.4688415527344, 17.2515811920166; +498.5688171386719, 17.249568939208984; +498.6688232421875, 17.2481689453125; +498.768798828125, 17.2475643157959; +498.8688049316406, 17.247207641601562; +498.96881103515625, 17.246797561645508; +499.06878662109375, 17.24673080444336; +499.1687927246094, 17.247684478759766; +499.2687683105469, 17.248369216918945; +499.3687744140625, 17.24854850769043; +499.4687805175781, 17.249040603637695; +499.5687561035156, 17.25044822692871; +499.66876220703125, 17.251937866210938; +499.76873779296875, 17.2525577545166; +499.8687438964844, 17.253801345825195; +499.9687194824219, 17.256505966186523; +500.0687255859375, 17.260066986083984; +500.1687316894531, 17.2626895904541; +500.2687072753906, 17.263397216796875; +500.36871337890625, 17.262577056884766; +500.46868896484375, 17.260961532592773; +500.5686950683594, 17.259254455566406; +500.668701171875, 17.258995056152344; +500.7686767578125, 17.2611026763916; +500.8686828613281, 17.266124725341797; +500.9686584472656, 17.273239135742188; +501.06866455078125, 17.28208351135254; +501.1686706542969, 17.29250717163086; +501.2686462402344, 17.30278205871582; +501.36865234375, 17.312116622924805; +501.4686279296875, 17.321630477905273; +501.5686340332031, 17.332523345947266; +501.66864013671875, 17.344295501708984; +501.76861572265625, 17.355344772338867; +501.8686218261719, 17.365291595458984; +501.9685974121094, 17.37470245361328; +502.068603515625, 17.38352394104004; +502.1686096191406, 17.39274024963379; +502.2685852050781, 17.40303611755371; +502.36859130859375, 17.414525985717773; +502.46856689453125, 17.426998138427734; +502.5685729980469, 17.4398193359375; +502.6685791015625, 17.453632354736328; +502.7685546875, 17.468326568603516; +502.8685607910156, 17.4833984375; +502.9685363769531, 17.49797248840332; +503.06854248046875, 17.512529373168945; +503.1685485839844, 17.5288028717041; +503.2685241699219, 17.546133041381836; +503.3685302734375, 17.562389373779297; +503.468505859375, 17.5765380859375; +503.5685119628906, 17.591468811035156; +503.66851806640625, 17.60947036743164; +503.76849365234375, 17.630510330200195; +503.8684997558594, 17.65239906311035; +503.9684753417969, 17.67405128479004; +504.0684814453125, 17.69625473022461; +504.16845703125, 17.718463897705078; +504.2684631347656, 17.739049911499023; +504.36846923828125, 17.757572174072266; +504.46844482421875, 17.775691986083984; +504.5684509277344, 17.794891357421875; +504.6684265136719, 17.81365203857422; +504.7684326171875, 17.83042335510254; +504.8684387207031, 17.846256256103516; +504.9684143066406, 17.861276626586914; +505.06842041015625, 17.87515640258789; +505.16839599609375, 17.887666702270508; +505.2684020996094, 17.900266647338867; +505.368408203125, 17.91338539123535; +505.4683837890625, 17.925128936767578; +505.5683898925781, 17.93459129333496; +505.6683654785156, 17.942249298095703; +505.76837158203125, 17.949722290039062; +505.8683776855469, 17.95701026916504; +505.9683532714844, 17.96404266357422; +506.068359375, 17.970808029174805; +506.1683349609375, 17.97703742980957; +506.2683410644531, 17.982908248901367; +506.36834716796875, 17.98829460144043; +506.46832275390625, 17.993480682373047; +506.5683288574219, 17.998598098754883; +506.6683044433594, 18.00445556640625; +506.768310546875, 18.01277732849121; +506.8683166503906, 18.023408889770508; +506.9682922363281, 18.033958435058594; +507.06829833984375, 18.042795181274414; +507.16827392578125, 18.051206588745117; +507.2682800292969, 18.060617446899414; +507.3682861328125, 18.07063865661621; +507.46826171875, 18.079973220825195; +507.5682678222656, 18.089689254760742; +507.6682434082031, 18.101215362548828; +507.76824951171875, 18.113800048828125; +507.8682556152344, 18.126256942749023; +507.9682312011719, 18.137649536132812; +508.0682373046875, 18.148422241210938; +508.168212890625, 18.158584594726562; +508.2682189941406, 18.16846466064453; +508.3681945800781, 18.178157806396484; +508.46820068359375, 18.188140869140625; +508.5682067871094, 18.198884963989258; +508.6681823730469, 18.210664749145508; +508.7681884765625, 18.223344802856445; +508.8681640625, 18.237293243408203; +508.9681701660156, 18.25365447998047; +509.06817626953125, 18.27225112915039; +509.16815185546875, 18.29302978515625; +509.2681579589844, 18.316715240478516; +509.3681335449219, 18.34431266784668; +509.4681396484375, 18.3754940032959; +509.5681457519531, 18.40943145751953; +509.6681213378906, 18.446348190307617; +509.76812744140625, 18.487058639526367; +509.86810302734375, 18.53225326538086; +509.9681091308594, 18.58203887939453; +510.068115234375, 18.636323928833008; +510.1680908203125, 18.694377899169922; +510.2680969238281, 18.756195068359375; +510.3680725097656, 18.822080612182617; +510.46807861328125, 18.891849517822266; +510.5680847167969, 18.964872360229492; +510.6680603027344, 19.03936195373535; +510.76806640625, 19.113771438598633; +510.8680419921875, 19.185945510864258; +510.9680480957031, 19.253559112548828; +511.06805419921875, 19.314714431762695; +511.16802978515625, 19.36794090270996; +511.2680358886719, 19.4116153717041; +511.3680114746094, 19.4436092376709; +511.468017578125, 19.462295532226562; +511.5680236816406, 19.46703338623047; +511.6679992675781, 19.457563400268555; +511.76800537109375, 19.43349838256836; +511.86798095703125, 19.39490509033203; +511.9679870605469, 19.343555450439453; +512.0679931640625, 19.28165626525879; +512.16796875, 19.21133041381836; +512.2679443359375, 19.13391876220703; +512.3679809570312, 19.0511417388916; +512.4679565429688, 18.96631622314453; +512.5679321289062, 18.881521224975586; +512.66796875, 18.797271728515625; +512.7679443359375, 18.714561462402344; +512.867919921875, 18.635385513305664; +512.9678955078125, 18.562786102294922; +513.0679321289062, 18.497697830200195; +513.1679077148438, 18.44016456604004; +513.2678833007812, 18.39032745361328; +513.367919921875, 18.3475399017334; +513.4678955078125, 18.312528610229492; +513.56787109375, 18.284202575683594; +513.6679077148438, 18.26099967956543; +513.7678833007812, 18.242374420166016; +513.8678588867188, 18.228761672973633; +513.9678344726562, 18.220111846923828; +514.06787109375, 18.212310791015625; +514.1678466796875, 18.202430725097656; +514.267822265625, 18.19080924987793; +514.3678588867188, 18.178247451782227; +514.4678344726562, 18.16392707824707; +514.5678100585938, 18.145591735839844; +514.6677856445312, 18.123023986816406; +514.767822265625, 18.096477508544922; +514.8677978515625, 18.065258026123047; +514.9677734375, 18.02861785888672; +515.0678100585938, 17.98633575439453; +515.1677856445312, 17.939926147460938; +515.2677612304688, 17.891571044921875; +515.3677978515625, 17.842336654663086; +515.4677734375, 17.792396545410156; +515.5677490234375, 17.74159049987793; +515.667724609375, 17.69062042236328; +515.7677612304688, 17.6393985748291; +515.8677368164062, 17.587900161743164; +515.9677124023438, 17.537691116333008; +516.0677490234375, 17.490886688232422; +516.167724609375, 17.44780731201172; +516.2677001953125, 17.407432556152344; +516.3677368164062, 17.369375228881836; +516.4677124023438, 17.334171295166016; +516.5676879882812, 17.302274703979492; +516.6676635742188, 17.27392578125; +516.7677001953125, 17.25006103515625; +516.86767578125, 17.231233596801758; +516.9676513671875, 17.216705322265625; +517.0676879882812, 17.204538345336914; +517.1676635742188, 17.19251251220703; +517.2676391601562, 17.17922019958496; +517.36767578125, 17.165250778198242; +517.4676513671875, 17.15223503112793; +517.567626953125, 17.141849517822266; +517.6676025390625, 17.134204864501953; +517.7676391601562, 17.12911605834961; +517.8676147460938, 17.126068115234375; +517.9675903320312, 17.124675750732422; +518.067626953125, 17.124347686767578; +518.1676025390625, 17.123937606811523; +518.267578125, 17.12255859375; +518.3675537109375, 17.11944580078125; +518.4675903320312, 17.115474700927734; +518.5675659179688, 17.111360549926758; +518.6675415039062, 17.107479095458984; +518.767578125, 17.104320526123047; +518.8675537109375, 17.10282325744629; +518.967529296875, 17.103538513183594; +519.0675659179688, 17.105520248413086; +519.1675415039062, 17.106891632080078; +519.2675170898438, 17.105937957763672; +519.3674926757812, 17.10261344909668; +519.467529296875, 17.098047256469727; +519.5675048828125, 17.093212127685547; +519.66748046875, 17.088085174560547; +519.7675170898438, 17.081640243530273; +519.8674926757812, 17.07526969909668; +519.9674682617188, 17.07012176513672; +520.0675048828125, 17.066509246826172; +520.16748046875, 17.063879013061523; +520.2674560546875, 17.061233520507812; +520.367431640625, 17.05916976928711; +520.4674682617188, 17.057231903076172; +520.5674438476562, 17.05478858947754; +520.6674194335938, 17.05109405517578; +520.7674560546875, 17.045623779296875; +520.867431640625, 17.039209365844727; +520.9674072265625, 17.03265380859375; +521.0674438476562, 17.027265548706055; +521.1674194335938, 17.02442741394043; +521.2673950195312, 17.02412986755371; +521.3673706054688, 17.02570915222168; +521.4674072265625, 17.028249740600586; +521.5673828125, 17.03145408630371; +521.6673583984375, 17.03462791442871; +521.7673950195312, 17.036653518676758; +521.8673706054688, 17.036773681640625; +521.9673461914062, 17.036258697509766; +522.0673828125, 17.036027908325195; +522.1673583984375, 17.035871505737305; +522.267333984375, 17.03462791442871; +522.3673095703125, 17.033061981201172; +522.4673461914062, 17.033472061157227; +522.5673217773438, 17.036273956298828; +522.6672973632812, 17.04045295715332; +522.767333984375, 17.045385360717773; +522.8673095703125, 17.05049705505371; +522.96728515625, 17.054460525512695; +523.0672607421875, 17.05661392211914; +523.1672973632812, 17.058626174926758; +523.2672729492188, 17.06250762939453; +523.3672485351562, 17.068191528320312; +523.46728515625, 17.075977325439453; +523.5672607421875, 17.085670471191406; +523.667236328125, 17.097606658935547; +523.7672729492188, 17.110191345214844; +523.8672485351562, 17.123737335205078; +523.9672241210938, 17.139793395996094; +524.0671997070312, 17.158769607543945; +524.167236328125, 17.180830001831055; +524.2672119140625, 17.204612731933594; +524.3671875, 17.230377197265625; +524.4672241210938, 17.257585525512695; +524.5671997070312, 17.28557777404785; +524.6671752929688, 17.31487274169922; +524.7672119140625, 17.346248626708984; +524.8671875, 17.381004333496094; +524.9671630859375, 17.41866111755371; +525.067138671875, 17.457433700561523; +525.1671752929688, 17.497718811035156; +525.2671508789062, 17.540462493896484; +525.3671264648438, 17.585844039916992; +525.4671630859375, 17.631746292114258; +525.567138671875, 17.676576614379883; +525.6671142578125, 17.72065544128418; +525.7671508789062, 17.76350212097168; +525.8671264648438, 17.804325103759766; +525.9671020507812, 17.8426513671875; +526.0670776367188, 17.878740310668945; +526.1671142578125, 17.91269302368164; +526.26708984375, 17.944082260131836; +526.3670654296875, 17.971694946289062; +526.4671020507812, 17.99403953552246; +526.5670776367188, 18.010162353515625; +526.6670532226562, 18.019981384277344; +526.7670288085938, 18.023534774780273; +526.8670654296875, 18.020830154418945; +526.967041015625, 18.012344360351562; +527.0670166015625, 17.999380111694336; +527.1670532226562, 17.983057022094727; +527.2670288085938, 17.96428871154785; +527.3670043945312, 17.94403839111328; +527.467041015625, 17.923555374145508; +527.5670166015625, 17.902851104736328; +527.6669921875, 17.880321502685547; +527.7669677734375, 17.85557746887207; +527.8670043945312, 17.830081939697266; +527.9669799804688, 17.80549430847168; +528.0669555664062, 17.78179359436035; +528.1669921875, 17.75994110107422; +528.2669677734375, 17.741241455078125; +528.366943359375, 17.725683212280273; +528.4669799804688, 17.712480545043945; +528.5669555664062, 17.701915740966797; +528.6669311523438, 17.69474983215332; +528.7669067382812, 17.689184188842773; +528.866943359375, 17.684749603271484; +528.9669189453125, 17.681509017944336; +529.06689453125, 17.680309295654297; +529.1669311523438, 17.681293487548828; +529.2669067382812, 17.68380355834961; +529.3668823242188, 17.688251495361328; +529.4669189453125, 17.69392204284668; +529.56689453125, 17.70103645324707; +529.6668701171875, 17.709196090698242; +529.766845703125, 17.716779708862305; +529.8668823242188, 17.72308349609375; +529.9668579101562, 17.729469299316406; +530.0668334960938, 17.737611770629883; +530.1668701171875, 17.747766494750977; +530.266845703125, 17.758630752563477; +530.3668212890625, 17.768890380859375; +530.4668579101562, 17.77843475341797; +530.5668334960938, 17.787002563476562; +530.6668090820312, 17.795047760009766; +530.7667846679688, 17.801828384399414; +530.8668212890625, 17.80670166015625; +530.966796875, 17.811298370361328; +531.0667724609375, 17.8162899017334; +531.1668090820312, 17.821542739868164; +531.2667846679688, 17.825803756713867; +531.3667602539062, 17.829574584960938; +531.4667358398438, 17.833389282226562; +531.5667724609375, 17.836219787597656; +531.666748046875, 17.837926864624023; +531.7667236328125, 17.839603424072266; +531.8667602539062, 17.84152603149414; +531.9667358398438, 17.842464447021484; +532.0667114257812, 17.841867446899414; +532.166748046875, 17.840869903564453; +532.2667236328125, 17.840116500854492; +532.36669921875, 17.83856773376465; +532.4666748046875, 17.83677864074707; +532.5667114257812, 17.83600425720215; +532.6666870117188, 17.837352752685547; +532.7666625976562, 17.839365005493164; +532.86669921875, 17.841249465942383; +532.9666748046875, 17.843364715576172; +533.066650390625, 17.844661712646484; +533.1666870117188, 17.845012664794922; +533.2666625976562, 17.84478187561035; +533.3666381835938, 17.84552574157715; +533.4666137695312, 17.84766387939453; +533.566650390625, 17.850786209106445; +533.6666259765625, 17.85533905029297; +533.7666015625, 17.861881256103516; +533.8666381835938, 17.870746612548828; +533.9666137695312, 17.881893157958984; +534.0665893554688, 17.894939422607422; +534.1666259765625, 17.909339904785156; +534.2666015625, 17.925113677978516; +534.3665771484375, 17.941810607910156; +534.466552734375, 17.95870018005371; +534.5665893554688, 17.97559928894043; +534.6665649414062, 17.99312973022461; +534.7665405273438, 18.011695861816406; +534.8665771484375, 18.03143310546875; +534.966552734375, 18.052026748657227; +535.0665283203125, 18.073610305786133; +535.16650390625, 18.0949649810791; +535.2665405273438, 18.114707946777344; +535.3665161132812, 18.133745193481445; +535.4664916992188, 18.1524600982666; +535.5665283203125, 18.170766830444336; +535.66650390625, 18.187253952026367; +535.7664794921875, 18.201984405517578; +535.8665161132812, 18.215343475341797; +535.9664916992188, 18.225461959838867; +536.0664672851562, 18.23099708557129; +536.1664428710938, 18.23137664794922; +536.2664794921875, 18.227703094482422; +536.366455078125, 18.22132682800293; +536.4664306640625, 18.212936401367188; +536.5664672851562, 18.202587127685547; +536.6664428710938, 18.189571380615234; +536.7664184570312, 18.174551010131836; +536.866455078125, 18.15833854675293; +536.9664306640625, 18.141382217407227; +537.06640625, 18.12276268005371; +537.1663818359375, 18.101974487304688; +537.2664184570312, 18.07971954345703; +537.3663940429688, 18.055782318115234; +537.4663696289062, 18.02977180480957; +537.56640625, 18.000802993774414; +537.6663818359375, 17.969697952270508; +537.766357421875, 17.938255310058594; +537.8663940429688, 17.906837463378906; +537.9663696289062, 17.87483024597168; +538.0663452148438, 17.84144401550293; +538.1663208007812, 17.806812286376953; +538.266357421875, 17.771482467651367; +538.3663330078125, 17.735347747802734; +538.46630859375, 17.699174880981445; +538.5663452148438, 17.664194107055664; +538.6663208007812, 17.63056182861328; +538.7662963867188, 17.597705841064453; +538.8662719726562, 17.5651912689209; +538.96630859375, 17.532989501953125; +539.0662841796875, 17.500728607177734; +539.166259765625, 17.467924118041992; +539.2662963867188, 17.435245513916016; +539.3662719726562, 17.404340744018555; +539.4662475585938, 17.3758487701416; +539.5662841796875, 17.349824905395508; +539.666259765625, 17.327011108398438; +539.7662353515625, 17.30800437927246; +539.8662109375, 17.292030334472656; +539.9662475585938, 17.27703285217285; +540.0662231445312, 17.262496948242188; +540.1661987304688, 17.249874114990234; +540.2662353515625, 17.238386154174805; +540.3662109375, 17.22624969482422; +540.4661865234375, 17.212949752807617; +540.5662231445312, 17.20102882385254; +540.6661987304688, 17.192163467407227; +540.7661743164062, 17.185375213623047; +540.8661499023438, 17.17898178100586; +540.9661865234375, 17.173297882080078; +541.066162109375, 17.170183181762695; +541.1661376953125, 17.169050216674805; +541.2661743164062, 17.16848373413086; +541.3661499023438, 17.167165756225586; +541.4661254882812, 17.165794372558594; +541.566162109375, 17.164663314819336; +541.6661376953125, 17.16250228881836; +541.76611328125, 17.159223556518555; +541.8660888671875, 17.155296325683594; +541.9661254882812, 17.15087890625; +542.0661010742188, 17.14727210998535; +542.1660766601562, 17.14545440673828; +542.26611328125, 17.146169662475586; +542.3660888671875, 17.148218154907227; +542.466064453125, 17.150089263916016; +542.5661010742188, 17.152109146118164; +542.6660766601562, 17.154373168945312; +542.7660522460938, 17.157108306884766; +542.8660278320312, 17.159618377685547; +542.966064453125, 17.160974502563477; +543.0660400390625, 17.16077995300293; +543.166015625, 17.15919303894043; +543.2660522460938, 17.156496047973633; +543.3660278320312, 17.15298080444336; +543.4660034179688, 17.149038314819336; +543.5659790039062, 17.14575958251953; +543.666015625, 17.144195556640625; +543.7659912109375, 17.145715713500977; +543.865966796875, 17.14990234375; +543.9660034179688, 17.154611587524414; +544.0659790039062, 17.15738296508789; +544.1659545898438, 17.158672332763672; +544.2659912109375, 17.159648895263672; +544.365966796875, 17.159669876098633; +544.4659423828125, 17.157949447631836; +544.56591796875, 17.155311584472656; +544.6659545898438, 17.154521942138672; +544.7659301757812, 17.155467987060547; +544.8659057617188, 17.157047271728516; +544.9659423828125, 17.158977508544922; +545.06591796875, 17.161897659301758; +545.1658935546875, 17.16529655456543; +545.2659301757812, 17.16826820373535; +545.3659057617188, 17.171472549438477; +545.4658813476562, 17.17574119567871; +545.5658569335938, 17.179832458496094; +545.6658935546875, 17.182111740112305; +545.765869140625, 17.183713912963867; +545.8658447265625, 17.185739517211914; +545.9658813476562, 17.187095642089844; +546.0658569335938, 17.186782836914062; +546.1658325195312, 17.18555450439453; +546.265869140625, 17.185270309448242; +546.3658447265625, 17.18600845336914; +546.4658203125, 17.186805725097656; +546.5657958984375, 17.187646865844727; +546.6658325195312, 17.187700271606445; +546.7658081054688, 17.187341690063477; +546.8657836914062, 17.187580108642578; +546.9658203125, 17.188587188720703; +547.0657958984375, 17.190195083618164; +547.165771484375, 17.191768646240234; +547.2657470703125, 17.194091796875; +547.3657836914062, 17.19635772705078; +547.4657592773438, 17.196796417236328; +547.5657348632812, 17.19529151916504; +547.665771484375, 17.193265914916992; +547.7657470703125, 17.191917419433594; +547.86572265625, 17.19061279296875; +547.9657592773438, 17.18895149230957; +548.0657348632812, 17.187162399291992; +548.1657104492188, 17.18526268005371; +548.2656860351562, 17.182558059692383; +548.36572265625, 17.17868423461914; +548.4656982421875, 17.174243927001953; +548.565673828125, 17.16991424560547; +548.6657104492188, 17.166532516479492; +548.7656860351562, 17.16470718383789; +548.8656616210938, 17.163307189941406; +548.9656982421875, 17.16122817993164; +549.065673828125, 17.158246994018555; +549.1656494140625, 17.15518569946289; +549.265625, 17.152570724487305; +549.3656616210938, 17.15021514892578; +549.4656372070312, 17.14869499206543; +549.5656127929688, 17.148279190063477; +549.6656494140625, 17.14869499206543; +549.765625, 17.149761199951172; +549.8656005859375, 17.150930404663086; +549.9656372070312, 17.15245819091797; +550.0656127929688, 17.154417037963867; +550.1655883789062, 17.156511306762695; +550.2655639648438, 17.15789794921875; +550.3656005859375, 17.158180236816406; +550.465576171875, 17.157882690429688; +550.5655517578125, 17.156190872192383; +550.6655883789062, 17.15289878845215; +550.7655639648438, 17.148807525634766; +550.8655395507812, 17.145954132080078; +550.9655151367188, 17.145246505737305; +551.0655517578125, 17.146102905273438; +551.16552734375, 17.148025512695312; +551.2655029296875, 17.150543212890625; +551.3655395507812, 17.153635025024414; +551.4655151367188, 17.15683937072754; +551.5654907226562, 17.15889549255371; +551.66552734375, 17.159343719482422; +551.7655029296875, 17.158687591552734; +551.865478515625, 17.158069610595703; +551.9654541015625, 17.15799331665039; +552.0654907226562, 17.158411026000977; +552.1654663085938, 17.15994644165039; +552.2654418945312, 17.16221046447754; +552.365478515625, 17.165102005004883; +552.4654541015625, 17.16854476928711; +552.5654296875, 17.172962188720703; +552.6654663085938, 17.179027557373047; +552.7654418945312, 17.185508728027344; +552.8654174804688, 17.191238403320312; +552.9653930664062, 17.195470809936523; +553.0654296875, 17.19936752319336; +553.1654052734375, 17.203725814819336; +553.265380859375, 17.20815086364746; +553.3654174804688, 17.212800979614258; +553.4653930664062, 17.218381881713867; +553.5653686523438, 17.22536277770996; +553.6654052734375, 17.2322998046875; +553.765380859375, 17.23859405517578; +553.8653564453125, 17.24371337890625; +553.96533203125, 17.24846649169922; +554.0653686523438, 17.25391387939453; +554.1653442382812, 17.260379791259766; +554.2653198242188, 17.267898559570312; +554.3653564453125, 17.275341033935547; +554.46533203125, 17.282970428466797; +554.5653076171875, 17.290882110595703; +554.6653442382812, 17.298437118530273; +554.7653198242188, 17.305261611938477; +554.8652954101562, 17.311222076416016; +554.9652709960938, 17.316274642944336; +555.0653076171875, 17.3203125; +555.165283203125, 17.323299407958984; +555.2652587890625, 17.326496124267578; +555.3652954101562, 17.330244064331055; +555.4652709960938, 17.333633422851562; +555.5652465820312, 17.33617401123047; +555.6652221679688, 17.338237762451172; +555.7652587890625, 17.3397216796875; +555.865234375, 17.339542388916016; +555.9652099609375, 17.337337493896484; +556.0652465820312, 17.33437156677246; +556.1652221679688, 17.3314208984375; +556.2651977539062, 17.328380584716797; +556.365234375, 17.326526641845703; +556.4652099609375, 17.326616287231445; +556.565185546875, 17.328231811523438; +556.6651611328125, 17.329998016357422; +556.7651977539062, 17.331377029418945; +556.8651733398438, 17.332046508789062; +556.9651489257812, 17.330631256103516; +557.065185546875, 17.327062606811523; +557.1651611328125, 17.321876525878906; +557.26513671875, 17.31637191772461; +557.3651733398438, 17.311237335205078; +557.4651489257812, 17.3070125579834; +557.5651245117188, 17.303802490234375; +557.6651000976562, 17.301179885864258; +557.76513671875, 17.299272537231445; +557.8651123046875, 17.298147201538086; +557.965087890625, 17.297611236572266; +558.0651245117188, 17.297393798828125; +558.1651000976562, 17.297670364379883; +558.2650756835938, 17.297834396362305; +558.3651123046875, 17.2977294921875; +558.465087890625, 17.297134399414062; +558.5650634765625, 17.296463012695312; +558.6650390625, 17.295881271362305; +558.7650756835938, 17.294750213623047; +558.8650512695312, 17.29364776611328; +558.9650268554688, 17.292640686035156; +559.0650634765625, 17.291650772094727; +559.1650390625, 17.289915084838867; +559.2650146484375, 17.28676986694336; +559.364990234375, 17.28336524963379; +559.4650268554688, 17.280555725097656; +559.5650024414062, 17.27890968322754; +559.6649780273438, 17.278060913085938; +559.7650146484375, 17.2777099609375; +559.864990234375, 17.27824592590332; +559.9649658203125, 17.279460906982422; +560.0650024414062, 17.281160354614258; +560.1649780273438, 17.282880783081055; +560.2649536132812, 17.28426742553711; +560.3649291992188, 17.28579330444336; +560.4649658203125, 17.28791046142578; +560.56494140625, 17.290369033813477; +560.6649169921875, 17.292037963867188; +560.7649536132812, 17.29229164123535; +560.8649291992188, 17.292320251464844; +560.9649047851562, 17.292909622192383; +561.06494140625, 17.29304313659668; +561.1649169921875, 17.292217254638672; +561.264892578125, 17.290517807006836; +561.3648681640625, 17.28912353515625; +561.4649047851562, 17.288312911987305; +561.5648803710938, 17.288782119750977; +561.6648559570312, 17.29176139831543; +561.764892578125, 17.29658317565918; +561.8648681640625, 17.30203628540039; +561.96484375, 17.306835174560547; +562.0648803710938, 17.310678482055664; +562.1648559570312, 17.31350326538086; +562.2648315429688, 17.314546585083008; +562.3648071289062, 17.31442642211914; +562.46484375, 17.314292907714844; +562.5648193359375, 17.315187454223633; +562.664794921875, 17.31638526916504; +562.7648315429688, 17.316267013549805; +562.8648071289062, 17.31352424621582; +562.9647827148438, 17.308645248413086; +563.0648193359375, 17.303482055664062; +563.164794921875, 17.29892921447754; +563.2647705078125, 17.295391082763672; +563.36474609375, 17.292194366455078; +563.4647827148438, 17.290494918823242; +563.5647583007812, 17.290271759033203; +563.6647338867188, 17.289348602294922; +563.7647705078125, 17.286441802978516; +563.86474609375, 17.282255172729492; +563.9647216796875, 17.27853012084961; +564.064697265625, 17.275609970092773; +564.1647338867188, 17.272672653198242; +564.2647094726562, 17.270259857177734; +564.3646850585938, 17.26849365234375; +564.4647216796875, 17.26728630065918; +564.564697265625, 17.267160415649414; +564.6646728515625, 17.267196655273438; +564.7647094726562, 17.267040252685547; +564.8646850585938, 17.266176223754883; +564.9646606445312, 17.265207290649414; +565.0646362304688, 17.264068603515625; +565.1646728515625, 17.26154327392578; +565.2646484375, 17.257652282714844; +565.3646240234375, 17.253570556640625; +565.4646606445312, 17.250865936279297; +565.5646362304688, 17.250158309936523; +565.6646118164062, 17.25080680847168; +565.7646484375, 17.252601623535156; +565.8646240234375, 17.25574493408203; +565.964599609375, 17.259910583496094; +566.0645751953125, 17.26441764831543; +566.1646118164062, 17.268173217773438; +566.2645874023438, 17.27036476135254; +566.3645629882812, 17.270795822143555; +566.464599609375, 17.270526885986328; +566.5645751953125, 17.270587921142578; +566.66455078125, 17.271257400512695; +566.7645874023438, 17.271883010864258; +566.8645629882812, 17.272918701171875; +566.9645385742188, 17.274185180664062; +567.0645141601562, 17.275400161743164; +567.16455078125, 17.27650260925293; +567.2645263671875, 17.27771759033203; +567.364501953125, 17.279401779174805; +567.4645385742188, 17.28096580505371; +567.5645141601562, 17.282583236694336; +567.6644897460938, 17.284042358398438; +567.7644653320312, 17.28557014465332; +567.864501953125, 17.286277770996094; +567.9644775390625, 17.285324096679688; +568.064453125, 17.282196044921875; +568.1644897460938, 17.277881622314453; +568.2644653320312, 17.274044036865234; +568.3644409179688, 17.26961898803711; +568.4644775390625, 17.264135360717773; +568.564453125, 17.258136749267578; +568.6644287109375, 17.25444984436035; +568.764404296875, 17.252796173095703; +568.8644409179688, 17.25080680847168; +568.9644165039062, 17.24772834777832; +569.0643920898438, 17.244272232055664; +569.1644287109375, 17.241849899291992; +569.264404296875, 17.239376068115234; +569.3643798828125, 17.237253189086914; +569.4644165039062, 17.23542022705078; +569.5643920898438, 17.234474182128906; +569.6643676757812, 17.234630584716797; +569.7643432617188, 17.23525619506836; +569.8643798828125, 17.23609161376953; +569.96435546875, 17.235658645629883; +570.0643310546875, 17.233938217163086; +570.1643676757812, 17.23065185546875; +570.2643432617188, 17.22618865966797; +570.3643188476562, 17.221025466918945; +570.46435546875, 17.215572357177734; +570.5643310546875, 17.21025276184082; +570.664306640625, 17.205394744873047; +570.7642822265625, 17.2016544342041; +570.8643188476562, 17.198421478271484; +570.9642944335938, 17.196170806884766; +571.0642700195312, 17.194591522216797; +571.164306640625, 17.19332504272461; +571.2642822265625, 17.191692352294922; +571.3642578125, 17.189607620239258; +571.4642333984375, 17.18790054321289; +571.5642700195312, 17.185300827026367; +571.6642456054688, 17.18147850036621; +571.7642211914062, 17.177715301513672; +571.8642578125, 17.175369262695312; +571.9642333984375, 17.174213409423828; +572.064208984375, 17.17240333557129; +572.1642456054688, 17.1696834564209; +572.2642211914062, 17.167016983032227; +572.3641967773438, 17.163768768310547; +572.4641723632812, 17.15947723388672; +572.564208984375, 17.154447555541992; +572.6641845703125, 17.151229858398438; +572.76416015625, 17.150468826293945; +572.8641967773438, 17.150602340698242; +572.9641723632812, 17.151809692382812; +573.0641479492188, 17.154037475585938; +573.1641845703125, 17.15549087524414; +573.26416015625, 17.153196334838867; +573.3641357421875, 17.147958755493164; +573.464111328125, 17.14263153076172; +573.5641479492188, 17.13772201538086; +573.6641235351562, 17.133028030395508; +573.7640991210938, 17.13010597229004; +573.8641357421875, 17.130746841430664; +573.964111328125, 17.132625579833984; +574.0640869140625, 17.132856369018555; +574.1641235351562, 17.13055419921875; +574.2640991210938, 17.127521514892578; +574.3640747070312, 17.124534606933594; +574.4640502929688, 17.120010375976562; +574.5640869140625, 17.114177703857422; +574.6640625, 17.10820198059082; +574.7640380859375, 17.102956771850586; +574.8640747070312, 17.09678840637207; +574.9640502929688, 17.088815689086914; +575.0640258789062, 17.080984115600586; +575.1640625, 17.074377059936523; +575.2640380859375, 17.06822967529297; +575.364013671875, 17.061784744262695; +575.4639892578125, 17.055875778198242; +575.5640258789062, 17.05110740661621; +575.6640014648438, 17.04656982421875; +575.7639770507812, 17.041221618652344; +575.864013671875, 17.035120010375977; +575.9639892578125, 17.028846740722656; +576.06396484375, 17.021961212158203; +576.1639404296875, 17.01409339904785; +576.2639770507812, 17.005876541137695; +576.3639526367188, 16.998470306396484; +576.4639282226562, 16.992136001586914; +576.56396484375, 16.986064910888672; +576.6639404296875, 16.980878829956055; +576.763916015625, 16.97606658935547; +576.8639526367188, 16.97040367126465; +576.9639282226562, 16.96383285522461; +577.0639038085938, 16.957826614379883; +577.1638793945312, 16.9541015625; +577.263916015625, 16.951509475708008; +577.3638916015625, 16.948625564575195; +577.4638671875, 16.945436477661133; +577.5639038085938, 16.94239616394043; +577.6638793945312, 16.939409255981445; +577.7638549804688, 16.93528175354004; +577.8638916015625, 16.93061065673828; +577.9638671875, 16.92698097229004; +578.0638427734375, 16.925073623657227; +578.163818359375, 16.923725128173828; +578.2638549804688, 16.9217586517334; +578.3638305664062, 16.918651580810547; +578.4638061523438, 16.914106369018555; +578.5638427734375, 16.908355712890625; +578.663818359375, 16.901813507080078; +578.7637939453125, 16.895614624023438; +578.8638305664062, 16.89079475402832; +578.9638061523438, 16.88853645324707; +579.0637817382812, 16.88787269592285; +579.1637573242188, 16.88791847229004; +579.2637939453125, 16.887836456298828; +579.36376953125, 16.887210845947266; +579.4637451171875, 16.885154724121094; +579.5637817382812, 16.881391525268555; +579.6637573242188, 16.877941131591797; +579.7637329101562, 16.875595092773438; +579.8637084960938, 16.87440299987793; +579.9637451171875, 16.873031616210938; +580.063720703125, 16.870893478393555; +580.1636962890625, 16.868106842041016; +580.2637329101562, 16.864261627197266; +580.3637084960938, 16.860164642333984; +580.4636840820312, 16.85635757446289; +580.563720703125, 16.853609085083008; +580.6636962890625, 16.852558135986328; +580.763671875, 16.852930068969727; +580.8636474609375, 16.854644775390625; +580.9636840820312, 16.85582160949707; +581.0636596679688, 16.855052947998047; +581.1636352539062, 16.852773666381836; +581.263671875, 16.84977912902832; +581.3636474609375, 16.846574783325195; +581.463623046875, 16.842618942260742; +581.5636596679688, 16.83974266052246; +581.6636352539062, 16.83889389038086; +581.7636108398438, 16.839542388916016; +581.8635864257812, 16.841270446777344; +581.963623046875, 16.843847274780273; +582.0635986328125, 16.847192764282227; +582.16357421875, 16.849674224853516; +582.2636108398438, 16.851871490478516; +582.3635864257812, 16.854598999023438; +582.4635620117188, 16.857154846191406; +582.5635986328125, 16.858882904052734; +582.66357421875, 16.85980796813965; +582.7635498046875, 16.861021041870117; +582.863525390625, 16.862974166870117; +582.9635620117188, 16.865514755249023; +583.0635375976562, 16.867935180664062; +583.1635131835938, 16.86927604675293; +583.2635498046875, 16.87017822265625; +583.363525390625, 16.87154197692871; +583.4635009765625, 16.873046875; +583.5634765625, 16.874582290649414; +583.6635131835938, 16.876474380493164; +583.7634887695312, 16.879417419433594; +583.8634643554688, 16.8823299407959; +583.9635009765625, 16.883955001831055; +584.0634765625, 16.883880615234375; +584.1634521484375, 16.8821964263916; +584.2634887695312, 16.880027770996094; +584.3634643554688, 16.878389358520508; +584.4634399414062, 16.87833595275879; +584.5634155273438, 16.87947654724121; +584.6634521484375, 16.881927490234375; +584.763427734375, 16.885831832885742; +584.8634033203125, 16.890674591064453; +584.9634399414062, 16.896135330200195; +585.0634155273438, 16.90138816833496; +585.1633911132812, 16.906932830810547; +585.263427734375, 16.912452697753906; +585.3634033203125, 16.917377471923828; +585.46337890625, 16.921579360961914; +585.5633544921875, 16.924678802490234; +585.6633911132812, 16.927644729614258; +585.7633666992188, 16.931318283081055; +585.8633422851562, 16.93657112121582; +585.96337890625, 16.943416595458984; +586.0633544921875, 16.950576782226562; +586.163330078125, 16.9580135345459; +586.2633666992188, 16.96567153930664; +586.3633422851562, 16.9735107421875; +586.4633178710938, 16.981199264526367; +586.5632934570312, 16.988985061645508; +586.663330078125, 16.998685836791992; +586.7633056640625, 17.00999641418457; +586.86328125, 17.022171020507812; +586.9633178710938, 17.03462028503418; +587.0632934570312, 17.046810150146484; +587.1632690429688, 17.059228897094727; +587.2633056640625, 17.071657180786133; +587.36328125, 17.08538055419922; +587.4632568359375, 17.100908279418945; +587.563232421875, 17.117277145385742; +587.6632690429688, 17.134607315063477; +587.7632446289062, 17.153457641601562; +587.8632202148438, 17.175100326538086; +587.9632568359375, 17.19877052307129; +588.063232421875, 17.222881317138672; +588.1632080078125, 17.24720001220703; +588.26318359375, 17.271242141723633; +588.3632202148438, 17.29410171508789; +588.4631958007812, 17.315431594848633; +588.5631713867188, 17.336912155151367; +588.6632080078125, 17.36079978942871; +588.76318359375, 17.387479782104492; +588.8631591796875, 17.416961669921875; +588.9631958007812, 17.44857406616211; +589.0631713867188, 17.48076820373535; +589.1631469726562, 17.511167526245117; +589.2631225585938, 17.5384578704834; +589.3631591796875, 17.563886642456055; +589.463134765625, 17.589033126831055; +589.5631103515625, 17.614974975585938; +589.6631469726562, 17.641895294189453; +589.7631225585938, 17.669654846191406; +589.8630981445312, 17.69845199584961; +589.963134765625, 17.728038787841797; +590.0631103515625, 17.75731086730957; +590.1630859375, 17.785593032836914; +590.2630615234375, 17.81236457824707; +590.3630981445312, 17.838157653808594; +590.4630737304688, 17.863073348999023; +590.5630493164062, 17.88701820373535; +590.6630859375, 17.91049575805664; +590.7630615234375, 17.93345069885254; +590.863037109375, 17.956815719604492; +590.9630737304688, 17.981536865234375; +591.0630493164062, 18.008075714111328; +591.1630249023438, 18.03582191467285; +591.2630004882812, 18.063745498657227; +591.363037109375, 18.091716766357422; +591.4630126953125, 18.11888885498047; +591.56298828125, 18.143728256225586; +591.6630249023438, 18.16588592529297; +591.7630004882812, 18.18688201904297; +591.8629760742188, 18.2082576751709; +591.9629516601562, 18.23040771484375; +592.06298828125, 18.25299072265625; +592.1629638671875, 18.27564811706543; +592.262939453125, 18.29755401611328; +592.3629760742188, 18.317981719970703; +592.4629516601562, 18.33713722229004; +592.5629272460938, 18.355005264282227; +592.6629638671875, 18.371417999267578; +592.762939453125, 18.386632919311523; +592.8629150390625, 18.401302337646484; +592.962890625, 18.415904998779297; +593.0629272460938, 18.429555892944336; +593.1629028320312, 18.44221305847168; +593.2628784179688, 18.454097747802734; +593.3629150390625, 18.465511322021484; +593.462890625, 18.47591209411621; +593.5628662109375, 18.48504638671875; +593.6629028320312, 18.49290657043457; +593.7628784179688, 18.499061584472656; +593.8628540039062, 18.504470825195312; +593.9628295898438, 18.51011085510254; +594.0628662109375, 18.516332626342773; +594.162841796875, 18.521413803100586; +594.2628173828125, 18.52478790283203; +594.3628540039062, 18.52757453918457; +594.4628295898438, 18.530092239379883; +594.5628051757812, 18.53226089477539; +594.662841796875, 18.53398895263672; +594.7628173828125, 18.53571891784668; +594.86279296875, 18.536611557006836; +594.9627685546875, 18.537275314331055; +595.0628051757812, 18.53883934020996; +595.1627807617188, 18.542020797729492; +595.2627563476562, 18.54631996154785; +595.36279296875, 18.551149368286133; +595.4627685546875, 18.557720184326172; +595.562744140625, 18.56556510925293; +595.6627807617188, 18.57416343688965; +595.7627563476562, 18.581859588623047; +595.8627319335938, 18.588022232055664; +595.9627075195312, 18.593029022216797; +596.062744140625, 18.597646713256836; +596.1627197265625, 18.602914810180664; +596.2626953125, 18.60869598388672; +596.3627319335938, 18.616214752197266; +596.4627075195312, 18.626720428466797; +596.5626831054688, 18.640756607055664; +596.6626586914062, 18.657320022583008; +596.7626953125, 18.674968719482422; +596.8626708984375, 18.693431854248047; +596.962646484375, 18.711774826049805; +597.0626831054688, 18.729597091674805; +597.1626586914062, 18.747516632080078; +597.2626342773438, 18.766841888427734; +597.3626708984375, 18.788002014160156; +597.462646484375, 18.81060028076172; +597.5626220703125, 18.835201263427734; +597.66259765625, 18.863178253173828; +597.7626342773438, 18.89491844177246; +597.8626098632812, 18.929750442504883; +597.9625854492188, 18.966726303100586; +598.0626220703125, 19.00519371032715; +598.16259765625, 19.04524803161621; +598.2625732421875, 19.087024688720703; +598.3626098632812, 19.1307373046875; +598.4625854492188, 19.17608070373535; +598.5625610351562, 19.222400665283203; +598.6625366210938, 19.270099639892578; +598.7625732421875, 19.319236755371094; +598.862548828125, 19.369140625; +598.9625244140625, 19.41862678527832; +599.0625610351562, 19.466392517089844; +599.1625366210938, 19.512466430664062; +599.2625122070312, 19.556396484375; +599.362548828125, 19.597307205200195; +599.4625244140625, 19.633121490478516; +599.5625, 19.662446975708008; +599.6624755859375, 19.68511199951172; +599.7625122070312, 19.69645881652832; +599.8624877929688, 19.67938995361328; +##END= + +$$ === CHEMSPECTRA INTEGRALS AND MULTIPLETS === +##PAGE=254.0 +##$OBSERVEDINTEGRALS= (X Y Z) +##$OBSERVEDMULTIPLETS= +##$OBSERVEDMULTIPLETSPEAKS= +##END= + +$$ === CHEMSPECTRA PEAK TABLE EDIT === +##TITLE=908f81fc-5890-4b40-b630-40c8c39f2c97 +##JCAMP-DX=5.00 +##DATA TYPE=LC/MSPEAKTABLE +##DATA CLASS=PEAKTABLE +##$CSCATEGORY=EDIT_PEAK +##$CSTHRESHOLD=0.05 +##MAXX=599.8624877929688 +##MAXY=67.15299987792969 +##MINX=0.0 +##MINY=-5.775638103485107 +##PAGE=254.0 +##NPOINTS=0 +##PEAKTABLE= (XY..XY) +##END= + +$$ === CHEMSPECTRA PEAK TABLE AUTO === +##TITLE=908f81fc-5890-4b40-b630-40c8c39f2c97 +##JCAMP-DX=5.00 +##DATA TYPE=LC/MSPEAKTABLE +##DATA CLASS=PEAKTABLE +##$CSCATEGORY=AUTO_PEAK +##$CSTHRESHOLD=0.05 +##MAXX=599.8624877929688 +##MAXY=67.15299987792969 +##MINX=0.0 +##MINY=-5.775638103485107 +##PAGE=254.0 +##NPOINTS=92 +##PEAKTABLE= (XY..XY) +426.6733093261719, 67.15299987792969 +422.7735595703125, 33.1120719909668 +599.7625122070312, 19.69645881652832 +511.5680236816406, 19.46703338623047 +438.7725524902344, 19.05089569091797 +409.0744323730469, 18.321826934814453 +536.1664428710938, 18.23137664794922 +442.17236328125, 18.144838333129883 +407.2745361328125, 18.087261199951172 +526.7670288085938, 18.023534774780273 +477.9701232910156, 17.872310638427734 +533.1666870117188, 17.845012664794922 +531.9667358398438, 17.842464447021484 +494.4690856933594, 17.80314826965332 +483.269775390625, 17.80164909362793 +487.1695251464844, 17.474010467529297 +458.9713134765625, 17.380617141723633 +555.7652587890625, 17.3397216796875 +556.8651733398438, 17.332046508789062 +562.664794921875, 17.31638526916504 +562.2648315429688, 17.314546585083008 +558.2650756835938, 17.297834396362305 +561.06494140625, 17.29304313659668 +567.864501953125, 17.286277770996094 +566.3645629882812, 17.270795822143555 +564.6646728515625, 17.267196655273438 +500.2687072753906, 17.263397216796875 +569.8643798828125, 17.23609161376953 +472.9704284667969, 17.19785499572754 +547.4657592773438, 17.196796417236328 +546.6658325195312, 17.187700271606445 +545.9658813476562, 17.187095642089844 +445.4721374511719, 17.186254501342773 +542.966064453125, 17.160974502563477 +544.365966796875, 17.159669876098633 +551.66552734375, 17.159343719482422 +550.3656005859375, 17.158180236816406 +573.1641845703125, 17.15549087524414 +451.8717346191406, 17.142534255981445 +574.0640869140625, 17.132856369018555 +519.1675415039062, 17.106891632080078 +446.9720458984375, 17.105989456176758 +471.2705383300781, 17.0681095123291 +475.0702819824219, 17.049074172973633 +521.8673706054688, 17.036773681640625 +455.4715270996094, 17.006912231445312 +466.9707946777344, 16.99744987487793 +462.5710754394531, 16.930767059326172 +464.07098388671875, 16.90297508239746 +579.1637573242188, 16.88791847229004 +583.9635009765625, 16.883955001831055 +580.9636840820312, 16.85582160949707 +399.2750244140625, 15.87495231628418 +389.9756164550781, 15.62228012084961 +397.0751647949219, 15.599630355834961 +289.681884765625, 15.473336219787598 +403.0747985839844, 15.205606460571289 +55.69651794433594, 15.077180862426758 +395.2752685546875, 14.995477676391602 +380.9761657714844, 14.06441593170166 +385.37591552734375, 13.836487770080566 +373.1766662597656, 13.416990280151367 +377.9763488769531, 13.298720359802246 +378.3763427734375, 13.2965669631958 +295.1815490722656, 13.234451293945312 +277.5826416015625, 13.192675590515137 +286.1820983886719, 13.18177604675293 +276.28271484375, 13.170555114746094 +283.98223876953125, 13.018712043762207 +339.1788024902344, 12.862227439880371 +367.37701416015625, 12.81303882598877 +59.29629135131836, 12.703508377075195 +344.5784606933594, 12.383445739746094 +362.3773498535156, 12.341290473937988 +360.7774353027344, 12.279436111450195 +357.3776550292969, 11.980369567871094 +356.6777038574219, 11.973246574401855 +351.3780212402344, 11.952988624572754 +353.9778747558594, 11.901989936828613 +353.4779052734375, 11.901326179504395 +348.17822265625, 11.758707046508789 +310.58056640625, 11.63320255279541 +335.97900390625, 11.501729965209961 +313.2803955078125, 11.48805046081543 +318.6800842285156, 11.460124969482422 +321.3799133300781, 11.131540298461914 +324.6796875, 11.047765731811523 +331.5792541503906, 11.010736465454102 +327.4795227050781, 10.927736282348633 +247.7845001220703, 9.572863578796387 +245.18466186523438, 9.219310760498047 +84.89469146728516, 4.284612655639648 +##END= + +$$ === CHEMSPECTRA UVVIS PEAK TABLE === +##TITLE=908f81fc-5890-4b40-b630-40c8c39f2c97 +##JCAMP-DX=5.00 +##DATA TYPE=LC/MS +##DATA CLASS=PEAK TABLE +##ORIGIN= +##OWNER= +##XUNITS=RETENTION TIME +##YUNITS=DETECTOR SIGNAL +##$CSCATEGORY=UVVIS PEAK TABLE +##PAGE=280.0 +##NPOINTS=6000 +##DATA TABLE= (XY..XY), PEAKS +0.0, -0.5910396575927734; +0.0999937504529953, -0.5908459424972534; +0.1999875009059906, -0.5903765559196472; +0.2999812364578247, -0.586584210395813; +0.3999750018119812, -0.5824118852615356; +0.4999687373638153, -0.5822256207466125; +0.5999624729156494, -0.5831867456436157; +0.6999562382698059, -0.5841702222824097; +0.7999500036239624, -0.5857497453689575; +0.8999437093734741, -0.5885884165763855; +0.9999374747276306, -0.5912557244300842; +1.099931240081787, -0.5932152271270752; +1.1999249458312988, -0.5958154797554016; +1.2999186515808105, -0.5983412265777588; +1.3999124765396118, -0.5998313426971436; +1.4999061822891235, -0.6014257669448853; +1.5999000072479248, -0.6032884120941162; +1.6998937129974365, -0.6041675806045532; +1.7998874187469482, -0.6032958626747131; +1.8998812437057495, -0.601939857006073; +1.9998749494552612, -0.6013587117195129; +2.0998687744140625, -0.6006360054016113; +2.199862480163574, -0.6002932786941528; +2.299856185913086, -0.6005316972732544; +2.3998498916625977, -0.6010010838508606; +2.4998435974121094, -0.6011873483657837; +2.599837303161621, -0.601254403591156; +2.699831247329712, -0.6031021475791931; +2.7998249530792236, -0.6062760949134827; +2.8998186588287354, -0.6088688969612122; +2.999812364578247, -0.6108507513999939; +3.099806070327759, -0.6126090884208679; +3.1998000144958496, -0.6143823266029358; +3.2997937202453613, -0.6149709224700928; +3.399787425994873, -0.6148964166641235; +3.4997811317443848, -0.6170272827148438; +3.5997748374938965, -0.6215348839759827; +3.699768543243408, -0.6271973252296448; +3.799762487411499, -0.631675124168396; +3.8997561931610107, -0.6351470947265625; +3.9997498989105225, -0.6379187107086182; +4.099743843078613, -0.6390511989593506; +4.199737548828125, -0.6373673677444458; +4.299731254577637, -0.6326660513877869; +4.399724960327148, -0.6277114152908325; +4.49971866607666, -0.6244182586669922; +4.599712371826172, -0.6225109100341797; +4.699706077575684, -0.6215646862983704; +4.799699783325195, -0.6221607327461243; +4.899693489074707, -0.6251111626625061; +4.999687194824219, -0.6283149123191833; +5.0996809005737305, -0.6292834877967834; +5.199674606323242, -0.6289482116699219; +5.299668788909912, -0.6288588047027588; +5.399662494659424, -0.6306469440460205; +5.4996562004089355, -0.6329938769340515; +5.599649906158447, -0.6340444087982178; +5.699643611907959, -0.6335452198982239; +5.799637317657471, -0.6322413682937622; +5.899631023406982, -0.6307512521743774; +5.999624729156494, -0.6273016333580017; +6.099618434906006, -0.6230920553207397; +6.199612140655518, -0.6209909915924072; +6.299605846405029, -0.6225705146789551; +6.399600028991699, -0.6256997585296631; +6.499593734741211, -0.6283298134803772; +6.599587440490723, -0.630602240562439; +6.699581146240234, -0.6310418248176575; +6.799574851989746, -0.629425048828125; +6.899568557739258, -0.6268993020057678; +6.9995622634887695, -0.6260201334953308; +7.099555969238281, -0.6267726421356201; +7.199549674987793, -0.6267204880714417; +7.299543380737305, -0.6263554096221924; +7.399537086486816, -0.6272122263908386; +7.499530792236328, -0.6293207406997681; +7.599524974822998, -0.630594789981842; +7.69951868057251, -0.6297677755355835; +7.7995123863220215, -0.6294623017311096; +7.899506092071533, -0.6315857172012329; +7.999499797821045, -0.6344616413116455; +8.099493026733398, -0.6363913416862488; +8.199487686157227, -0.6371736526489258; +8.299481391906738, -0.6385743618011475; +8.39947509765625, -0.6407648324966431; +8.499468803405762, -0.6426870822906494; +8.599462509155273, -0.6444007158279419; +8.699456214904785, -0.6457418203353882; +8.799449920654297, -0.6466284394264221; +8.899443626403809, -0.6471872329711914; +8.99943733215332, -0.6477907299995422; +9.099431037902832, -0.6490051746368408; +9.199424743652344, -0.6507709622383118; +9.299418449401855, -0.6530210375785828; +9.399412155151367, -0.6553828716278076; +9.499405860900879, -0.6568431854248047; +9.59939956665039, -0.6566941738128662; +9.699393272399902, -0.6550103425979614; +9.799386978149414, -0.6534233689308167; +9.899380683898926, -0.6532222032546997; +9.999374389648438, -0.6544739007949829; +10.09936809539795, -0.6562992930412292; +10.199361801147461, -0.6578713655471802; +10.299355506896973, -0.6596073508262634; +10.399349212646484, -0.6611421704292297; +10.499343872070312, -0.6619393825531006; +10.599337577819824, -0.6614699959754944; +10.699331283569336, -0.6608292460441589; +10.799324989318848, -0.6606131792068481; +10.89931869506836, -0.6598383188247681; +10.999312400817871, -0.6586462259292603; +11.099306106567383, -0.6580278277397156; +11.199299812316895, -0.6594881415367126; +11.299293518066406, -0.6619691848754883; +11.399287223815918, -0.6651207804679871; +11.49928092956543, -0.668838620185852; +11.599274635314941, -0.6725192070007324; +11.699268341064453, -0.6744638085365295; +11.799262046813965, -0.673539936542511; +11.899255752563477, -0.6713345646858215; +11.999249458312988, -0.6691962480545044; +12.0992431640625, -0.6680041551589966; +12.199236869812012, -0.6665289402008057; +12.299230575561523, -0.6654411554336548; +12.399224281311035, -0.6656274199485779; +12.499217987060547, -0.6665810942649841; +12.599211692810059, -0.6679445505142212; +12.69920539855957, -0.668354332447052; +12.799200057983398, -0.6688982248306274; +12.89919376373291, -0.6693974137306213; +12.999187469482422, -0.6700009107589722; +13.099181175231934, -0.6706789135932922; +13.199174880981445, -0.6698742508888245; +13.299168586730957, -0.6692707538604736; +13.399162292480469, -0.6698817014694214; +13.49915599822998, -0.6714165210723877; +13.599149703979492, -0.6730556488037109; +13.699143409729004, -0.6753355264663696; +13.799137115478516, -0.679999589920044; +13.899130821228027, -0.6851628422737122; +13.999124526977539, -0.6889402866363525; +14.09911823272705, -0.6922930479049683; +14.199111938476562, -0.6957650184631348; +14.299105644226074, -0.6975233554840088; +14.399099349975586, -0.6961598992347717; +14.499093055725098, -0.6926506757736206; +14.59908676147461, -0.6877109408378601; +14.699080467224121, -0.6824508309364319; +14.799074172973633, -0.6772279739379883; +14.899067878723145, -0.6734132766723633; +14.999061584472656, -0.6721168756484985; +15.099056243896484, -0.6732791662216187; +15.199049949645996, -0.6770193576812744; +15.299043655395508, -0.6804540753364563; +15.39903736114502, -0.6833970546722412; +15.499031066894531, -0.6860792636871338; +15.599024772644043, -0.6882473826408386; +15.699018478393555, -0.6891489028930664; +15.799012184143066, -0.6879046559333801; +15.899005889892578, -0.6858706474304199; +15.99899959564209, -0.6841421127319336; +16.0989933013916, -0.6835684180259705; +16.198986053466797, -0.6845816969871521; +16.298980712890625, -0.6872117519378662; +16.398975372314453, -0.6917938590049744; +16.49896812438965, -0.6971582770347595; +16.598962783813477, -0.7017254829406738; +16.698955535888672, -0.7042810320854187; +16.7989501953125, -0.7038414478302002; +16.898942947387695, -0.7015392184257507; +16.998937606811523, -0.6986483931541443; +17.09893035888672, -0.6964579224586487; +17.198925018310547, -0.695645809173584; +17.298917770385742, -0.6964802742004395; +17.39891242980957, -0.6987899541854858; +17.498905181884766, -0.7013529539108276; +17.598899841308594, -0.7031932473182678; +17.69889259338379, -0.705622136592865; +17.798887252807617, -0.7084384560585022; +17.898880004882812, -0.7101595401763916; +17.99887466430664, -0.710703432559967; +18.098867416381836, -0.7116794586181641; +18.198862075805664, -0.7141008973121643; +18.29885482788086, -0.7159784436225891; +18.398849487304688, -0.7164403796195984; +18.498842239379883, -0.7167011499404907; +18.59883689880371, -0.7175058126449585; +18.69883155822754, -0.7178336381912231; +18.798824310302734, -0.7174015045166016; +18.898818969726562, -0.7170289754867554; +18.998811721801758, -0.7174238562583923; +19.098806381225586, -0.7188692688941956; +19.19879913330078, -0.7208660244941711; +19.29879379272461, -0.7232576608657837; +19.398786544799805, -0.7245689630508423; +19.498781204223633, -0.72450190782547; +19.598773956298828, -0.724300742149353; +19.698768615722656, -0.7242858409881592; +19.79876136779785, -0.7247030735015869; +19.89875602722168, -0.7236674427986145; +19.998748779296875, -0.7214918732643127; +20.098743438720703, -0.7199421525001526; +20.1987361907959, -0.7196441292762756; +20.298730850219727, -0.7198229432106018; +20.398723602294922, -0.7180795073509216; +20.49871826171875, -0.7160976529121399; +20.598711013793945, -0.7154941558837891; +20.698705673217773, -0.7154941558837891; +20.79869842529297, -0.7151812314987183; +20.898693084716797, -0.7139816880226135; +20.998687744140625, -0.7145106792449951; +21.09868049621582, -0.7170811295509338; +21.19867515563965, -0.7202252745628357; +21.298667907714844, -0.7232427597045898; +21.398662567138672, -0.7256194949150085; +21.498655319213867, -0.7285624742507935; +21.598649978637695, -0.7297694683074951; +21.69864273071289, -0.7286220788955688; +21.79863739013672, -0.7267072796821594; +21.898630142211914, -0.7260069251060486; +21.998624801635742, -0.7262974977493286; +22.098617553710938, -0.7261186838150024; +22.198612213134766, -0.7265433669090271; +22.29860496520996, -0.7280930876731873; +22.39859962463379, -0.7299035787582397; +22.498592376708984, -0.7303357124328613; +22.598587036132812, -0.7293596863746643; +22.698579788208008, -0.7284060120582581; +22.798574447631836, -0.7284954190254211; +22.89856719970703, -0.7293745875358582; +22.99856185913086, -0.7306709885597229; +23.098554611206055, -0.7322728633880615; +23.198549270629883, -0.7336214184761047; +23.29854393005371, -0.7339268922805786; +23.398536682128906, -0.7332563400268555; +23.498531341552734, -0.7331892848014832; +23.59852409362793, -0.7338300347328186; +23.698518753051758, -0.734180212020874; +23.798511505126953, -0.734284520149231; +23.89850616455078, -0.7344931364059448; +23.998498916625977, -0.7352977991104126; +24.098493576049805, -0.7352307438850403; +24.198486328125, -0.7346644997596741; +24.298480987548828, -0.7344633340835571; +24.398473739624023, -0.736430287361145; +24.49846839904785, -0.7407888770103455; +24.598461151123047, -0.7455646991729736; +24.698455810546875, -0.7496625185012817; +24.79844856262207, -0.752866268157959; +24.8984432220459, -0.7551684975624084; +24.998435974121094, -0.7550418376922607; +25.098430633544922, -0.7524341344833374; +25.198423385620117, -0.7495880126953125; +25.298418045043945, -0.7486939430236816; +25.39841079711914, -0.7491707801818848; +25.49840545654297, -0.7502511143684387; +25.598400115966797, -0.7529035210609436; +25.698392868041992, -0.7564127445220947; +25.79838752746582, -0.7591471076011658; +25.898380279541016, -0.7597208023071289; +25.998374938964844, -0.7580146193504333; +26.09836769104004, -0.7550045847892761; +26.198362350463867, -0.7510483264923096; +26.298355102539062, -0.7478222250938416; +26.39834976196289, -0.7464662194252014; +26.498342514038086, -0.7460266351699829; +26.598337173461914, -0.7459744811058044; +26.69832992553711, -0.7463544607162476; +26.798324584960938, -0.7475763559341431; +26.898317337036133, -0.7493197917938232; +26.99831199645996, -0.7501542568206787; +27.098304748535156, -0.7508322596549988; +27.198299407958984, -0.7517486810684204; +27.29829216003418, -0.7528811693191528; +27.398286819458008, -0.7533952593803406; +27.498279571533203, -0.7533952593803406; +27.59827423095703, -0.7539689540863037; +27.698266983032227, -0.7549598813056946; +27.798261642456055, -0.7563084363937378; +27.898256301879883, -0.7574334740638733; +27.998249053955078, -0.7583573460578918; +28.098243713378906, -0.7591769099235535; +28.1982364654541, -0.7598698139190674; +28.29823112487793, -0.7606521248817444; +28.398223876953125, -0.7619187235832214; +28.498218536376953, -0.7634013891220093; +28.59821128845215, -0.7648542523384094; +28.698205947875977, -0.7653012871742249; +28.798198699951172, -0.7653161883354187; +28.898193359375, -0.7658451795578003; +28.998186111450195, -0.7668212056159973; +29.098180770874023, -0.7680431008338928; +29.19817352294922, -0.7679387927055359; +29.298168182373047, -0.767149031162262; +29.398160934448242, -0.7663369178771973; +29.49815559387207, -0.7669702172279358; +29.598148345947266, -0.7689371705055237; +29.698143005371094, -0.7713660597801208; +29.79813575744629, -0.7739365100860596; +29.898130416870117, -0.7758960127830505; +29.998123168945312, -0.776439905166626; +30.09811782836914, -0.7746964693069458; +30.19811248779297, -0.7727146148681641; +30.298105239868164, -0.7724165916442871; +30.398099899291992, -0.7744580507278442; +30.498092651367188, -0.7775798439979553; +30.598087310791016, -0.781133770942688; +30.69808006286621, -0.7851868867874146; +30.79807472229004, -0.787980854511261; +30.898067474365234, -0.7879585027694702; +30.998062133789062, -0.7861405611038208; +31.098054885864258, -0.784844160079956; +31.198049545288086, -0.7853060960769653; +31.29804229736328, -0.78621506690979; +31.39803695678711, -0.7865950465202332; +31.498029708862305, -0.7877275347709656; +31.598024368286133, -0.789053738117218; +31.698017120361328, -0.7900521159172058; +31.798011779785156, -0.7891133427619934; +31.89800453186035, -0.7872208952903748; +31.99799919128418, -0.7859170436859131; +32.097991943359375, -0.7852092385292053; +32.1979866027832, -0.7847622036933899; +32.29798126220703, -0.7843300700187683; +32.397972106933594, -0.7849633693695068; +32.49796676635742, -0.7859170436859131; +32.59796142578125, -0.7864236831665039; +32.69795608520508, -0.7856860756874084; +32.797950744628906, -0.784657895565033; +32.89794158935547, -0.783875584602356; +32.9979362487793, -0.7827728986740112; +33.097930908203125, -0.7813870906829834; +33.19792556762695, -0.7790997624397278; +33.297916412353516, -0.7774308323860168; +33.397911071777344, -0.7775202393531799; +33.49790573120117, -0.7795318961143494; +33.597900390625, -0.7833614945411682; +33.69789123535156, -0.7874220609664917; +33.79788589477539, -0.7910206913948059; +33.89788055419922, -0.7923021912574768; +33.99787521362305, -0.7916316390037537; +34.09786605834961, -0.7904842495918274; +34.19786071777344, -0.7891729474067688; +34.297855377197266, -0.7890611886978149; +34.397850036621094, -0.7909461855888367; +34.497840881347656, -0.795610249042511; +34.597835540771484, -0.8002296090126038; +34.69783020019531, -0.8022859692573547; +34.79782485961914, -0.8018538355827332; +34.89781951904297, -0.7990226149559021; +34.99781036376953, -0.7949545979499817; +35.09780502319336, -0.7910355925559998; +35.19779968261719, -0.7895231246948242; +35.297794342041016, -0.7914379239082336; +35.39778518676758, -0.7963031530380249; +35.497779846191406, -0.8032247424125671; +35.597774505615234, -0.8104294538497925; +35.69776916503906, -0.8151009678840637; +35.797760009765625, -0.8155554533004761; +35.89775466918945, -0.811457633972168; +35.99774932861328, -0.8050724864006042; +36.09774398803711, -0.800013542175293; +36.19773483276367, -0.7983073592185974; +36.2977294921875, -0.7995069026947021; +36.39772415161133, -0.8019953966140747; +36.497718811035156, -0.8050501346588135; +36.59770965576172, -0.8077174425125122; +36.69770431518555, -0.8086487650871277; +36.797698974609375, -0.8074119687080383; +36.8976936340332, -0.8058175444602966; +36.997684478759766, -0.8053109049797058; +37.097679138183594, -0.806860625743866; +37.19767379760742, -0.8101165294647217; +37.29766845703125, -0.8138790726661682; +37.39766311645508, -0.8174553513526917; +37.49765396118164, -0.819966197013855; +37.59764862060547, -0.8210316300392151; +37.6976432800293, -0.8206814527511597; +37.797637939453125, -0.8201003074645996; +37.89762878417969, -0.820159912109375; +37.997623443603516, -0.8200779557228088; +38.097618103027344, -0.8192434906959534; +38.19761276245117, -0.8188784122467041; +38.297603607177734, -0.8198320865631104; +38.39759826660156, -0.8209198713302612; +38.49759292602539, -0.8213147521018982; +38.59758758544922, -0.8216947317123413; +38.69757843017578, -0.8234232664108276; +38.79757308959961, -0.8261650800704956; +38.89756774902344, -0.8280351758003235; +38.997562408447266, -0.8282586932182312; +39.09755325317383, -0.826910138130188; +39.197547912597656, -0.824466347694397; +39.297542572021484, -0.8210241794586182; +39.39753723144531, -0.8170828223228455; +39.49753189086914, -0.8137598633766174; +39.5975227355957, -0.8117258548736572; +39.69751739501953, -0.8113980293273926; +39.79751205444336, -0.8130893111228943; +39.89750671386719, -0.8167251944541931; +39.99749755859375, -0.8215680718421936; +40.09749221801758, -0.8264258503913879; +40.197486877441406, -0.8302554488182068; +40.297481536865234, -0.8318573236465454; +40.3974723815918, -0.8310750126838684; +40.497467041015625, -0.8291900157928467; +40.59746170043945, -0.8276998996734619; +40.69745635986328, -0.8271709084510803; +40.797447204589844, -0.8277073502540588; +40.89744186401367, -0.8294284343719482; +40.9974365234375, -0.8318498730659485; +41.09743118286133, -0.8334517478942871; +41.19742202758789, -0.8333995938301086; +41.29741668701172, -0.8321627974510193; +41.39741134643555, -0.8320510387420654; +41.497406005859375, -0.8344948291778564; +41.59739685058594, -0.8379220962524414; +41.697391510009766, -0.8415058255195618; +41.797386169433594, -0.8439198136329651; +41.89738082885742, -0.8452460169792175; +41.99737548828125, -0.8441731333732605; +42.09736633300781, -0.840306282043457; +42.19736099243164, -0.8365064859390259; +42.29735565185547, -0.8348599076271057; +42.3973503112793, -0.8362606167793274; +42.49734115600586, -0.8387714624404907; +42.59733581542969, -0.8406862616539001; +42.697330474853516, -0.8417367935180664; +42.797325134277344, -0.8418038487434387; +42.897315979003906, -0.8402317762374878; +42.997310638427734, -0.8377507328987122; +43.09730529785156, -0.8369684219360352; +43.19729995727539, -0.8396506309509277; +43.29729080200195, -0.8447021245956421; +43.39728546142578, -0.8500218391418457; +43.49728012084961, -0.8544027805328369; +43.59727478027344, -0.857323408126831; +43.697265625, -0.8581876754760742; +43.79726028442383, -0.8572414517402649; +43.897254943847656, -0.8560195565223694; +43.997249603271484, -0.8555427193641663; +44.09724426269531, -0.8560344576835632; +44.197235107421875, -0.8574128150939941; +44.2972297668457, -0.8594393730163574; +44.39722442626953, -0.8611083030700684; +44.49721908569336, -0.861041247844696; +44.59720993041992, -0.8598491549491882; +44.69720458984375, -0.8587613701820374; +44.79719924926758, -0.8580014109611511; +44.897193908691406, -0.8570179343223572; +44.99718475341797, -0.8558332920074463; +45.0971794128418, -0.8559152483940125; +45.197174072265625, -0.8564144372940063; +45.29716873168945, -0.857129693031311; +45.397159576416016, -0.8577778935432434; +45.497154235839844, -0.8588880300521851; +45.59714889526367, -0.8604303002357483; +45.6971435546875, -0.861138105392456; +45.79713439941406, -0.8604973554611206; +45.89712905883789, -0.8585825562477112; +45.99712371826172, -0.8568316698074341; +46.09711837768555, -0.8564218878746033; +46.19710922241211, -0.857234001159668; +46.29710388183594, -0.8583143353462219; +46.397098541259766, -0.8598491549491882; +46.497093200683594, -0.8620321750640869; +46.59708786010742, -0.8643493056297302; +46.697078704833984, -0.8652731776237488; +46.79707336425781, -0.8648186922073364; +46.89706802368164, -0.8651316165924072; +46.99706268310547, -0.8680820465087891; +47.09705352783203, -0.8735507726669312; +47.19704818725586, -0.8807629346847534; +47.29704284667969, -0.8897259831428528; +47.397037506103516, -0.899583101272583; +47.49702835083008, -0.9081065654754639; +47.597023010253906, -0.9129643440246582; +47.697017669677734, -0.9141713380813599; +47.79701232910156, -0.9125173091888428; +47.897003173828125, -0.9086281061172485; +47.99699783325195, -0.9038671851158142; +48.09699249267578, -0.8999481797218323; +48.19698715209961, -0.8980855345726013; +48.29697799682617, -0.8977875113487244; +48.39697265625, -0.8988156914710999; +48.49696731567383, -0.9006485342979431; +48.596961975097656, -0.9034574031829834; +48.696956634521484, -0.9073019027709961; +48.79694747924805, -0.9110495448112488; +48.896942138671875, -0.9141936898231506; +48.9969367980957, -0.9152442216873169; +49.09693145751953, -0.9146854281425476; +49.196922302246094, -0.9132623672485352; +49.29691696166992, -0.911712646484375; +49.39691162109375, -0.9114518761634827; +49.49690628051758, -0.9128749370574951; +49.59689712524414, -0.9161978960037231; +49.69689178466797, -0.9209960699081421; +49.7968864440918, -0.9260699152946472; +49.896881103515625, -0.9303092956542969; +49.99687194824219, -0.932641327381134; +50.096866607666016, -0.9324774146080017; +50.196861267089844, -0.9312108159065247; +50.29685592651367, -0.9296536445617676; +50.396846771240234, -0.9282752871513367; +50.49684143066406, -0.9274929761886597; +50.59683609008789, -0.9272471070289612; +50.69683074951172, -0.9275749325752258; +50.79682159423828, -0.9272247552871704; +50.89681625366211, -0.9260252118110657; +50.99681091308594, -0.9249523282051086; +51.096805572509766, -0.9240433573722839; +51.196800231933594, -0.9238645434379578; +51.296791076660156, -0.9240433573722839; +51.396785736083984, -0.9223967790603638; +51.49678039550781, -0.9041205048561096; +51.59677505493164, -0.8384361863136292; +51.6967658996582, -0.6954818964004517; +51.79676055908203, -0.4660114645957947; +51.89675521850586, -0.1651272177696228; +51.99674987792969, 0.1816973090171814; +52.09674072265625, 0.5452483892440796; +52.19673538208008, 0.8910968899726868; +52.296730041503906, 1.189626693725586; +52.396724700927734, 1.427643060684204; +52.4967155456543, 1.6047284603118896; +52.596710205078125, 1.726083517074585; +52.69670486450195, 1.7962157726287842; +52.79669952392578, 1.8225536346435547; +52.896690368652344, 1.8150508403778076; +52.99668502807617, 1.7853975296020508; +53.0966796875, 1.7523393630981445; +53.19667434692383, 1.7436295747756958; +53.296669006347656, 1.797407865524292; +53.39665985107422, 1.9466280937194824; +53.49665451049805, 2.199530601501465; +53.596649169921875, 2.5414228439331055; +53.6966438293457, 2.9508023262023926; +53.796634674072266, 3.409311294555664; +53.896629333496094, 3.875427007675171; +53.99662399291992, 4.290178298950195; +54.09661865234375, 4.616170883178711; +54.19660949707031, 4.860341548919678; +54.29660415649414, 5.054816722869873; +54.39659881591797, 5.219727516174316; +54.4965934753418, 5.374207973480225; +54.59658432006836, 5.546018600463867; +54.69657897949219, 5.763612747192383; +54.796573638916016, 6.039641857147217; +54.896568298339844, 6.367646217346191; +54.996559143066406, 6.734557628631592; +55.096553802490234, 7.122851848602295; +55.19654846191406, 7.493399143218994; +55.29654312133789, 7.770374298095703; +55.39653396606445, 7.859178066253662; +55.49652862548828, 7.684417247772217; +55.59652328491211, 7.221273899078369; +55.69651794433594, 6.502657890319824; +55.796512603759766, 5.611412048339844; +55.89650344848633, 4.664100646972656; +55.996498107910156, 3.7786290645599365; +56.096492767333984, 3.0481889247894287; +56.19648742675781, 2.51766300201416; +56.296478271484375, 2.1754279136657715; +56.3964729309082, 1.9740984439849854; +56.49646759033203, 1.8622801303863525; +56.59646224975586, 1.8033236265182495; +56.69645309448242, 1.7693042755126953; +56.79644775390625, 1.7395689487457275; +56.89644241333008, 1.7016828060150146; +56.996437072753906, 1.6506538391113281; +57.09642791748047, 1.5807077884674072; +57.1964225769043, 1.4855265617370605; +57.296417236328125, 1.3641119003295898; +57.39641189575195, 1.224413514137268; +57.496402740478516, 1.0861232280731201; +57.596397399902344, 0.9735003113746643; +57.69639205932617, 0.9101927280426025; +57.79638671875, 0.9097903966903687; +57.89637756347656, 0.9667053818702698; +57.99637222290039, 1.0532214641571045; +58.09636688232422, 1.1327266693115234; +58.19636154174805, 1.1903643608093262; +58.296356201171875, 1.2472643852233887; +58.39634704589844, 1.3515279293060303; +58.496341705322266, 1.5594661235809326; +58.596336364746094, 1.9229576587677002; +58.69633102416992, 2.4705007076263428; +58.796321868896484, 3.1739025115966797; +58.89631652832031, 3.9411113262176514; +58.99631118774414, 4.652589797973633; +59.09630584716797, 5.209065914154053; +59.19629669189453, 5.551517009735107; +59.29629135131836, 5.661211967468262; +59.39628601074219, 5.5608229637146; +59.496280670166016, 5.309447765350342; +59.59627151489258, 4.975885391235352; +59.696266174316406, 4.611722946166992; +59.796260833740234, 4.2441487312316895; +59.89625549316406, 3.886066436767578; +59.996246337890625, 3.548190116882324; +60.09624099731445, 3.2387077808380127; +60.19623565673828, 2.9639229774475098; +60.29623031616211, 2.7295424938201904; +60.39622497558594, 2.54213809967041; +60.4962158203125, 2.4047420024871826; +60.59621047973633, 2.31325626373291; +60.696205139160156, 2.260878562927246; +60.796199798583984, 2.2427141666412354; +60.89619064331055, 2.259276866912842; +60.996185302734375, 2.317324161529541; +61.0961799621582, 2.433307409286499; +61.19617462158203, 2.6214420795440674; +61.296165466308594, 2.857930898666382; +61.39616012573242, 3.0513927936553955; +61.49615478515625, 3.0686259269714355; +61.59614944458008, 2.8058812618255615; +61.69614028930664, 2.2260918617248535; +61.79613494873047, 1.3521835803985596; +61.8961296081543, 0.26172399520874023; +61.996124267578125, -0.9005889296531677; +62.09611511230469, -1.9555836915969849; +62.196109771728516, -2.768918991088867; +62.296104431152344, -3.2978057861328125; +62.39609909057617, -3.5752429962158203; +62.496089935302734, -3.6692471504211426; +62.59608459472656, -3.6563053131103516; +62.69607925415039, -3.6001503467559814; +62.79607391357422, -3.536529779434204; +62.89606857299805, -3.469578981399536; +62.99605941772461, -3.382392168045044; +63.09605407714844, -3.2492427825927734; +63.196048736572266, -3.0487923622131348; +63.296043395996094, -2.78155517578125; +63.396034240722656, -2.4806857109069824; +63.496028900146484, -2.2083520889282227; +63.59602355957031, -2.030670642852783; +63.69601821899414, -1.988038420677185; +63.7960090637207, -2.081960439682007; +63.89600372314453, -2.279646635055542; +63.99599838256836, -2.528123617172241; +64.09599304199219, -2.763673782348633; +64.19598388671875, -2.9263198375701904; +64.29598236083984, -2.9825568199157715; +64.3959732055664, -2.937309503555298; +64.49596405029297, -2.8273091316223145; +64.59596252441406, -2.698920726776123; +64.69595336914062, -2.597816228866577; +64.79594421386719, -2.5671348571777344; +64.89594268798828, -2.6362686157226562; +64.99593353271484, -2.802684783935547; +65.09593200683594, -3.019362688064575; +65.1959228515625, -3.2126829624176025; +65.29591369628906, -3.313563823699951; +65.39591217041016, -3.2789483070373535; +65.49590301513672, -3.093838691711426; +65.59590148925781, -2.7723164558410645; +65.69589233398438, -2.362839937210083; +65.79588317871094, -1.937605381011963; +65.89588165283203, -1.563720464706421; +65.9958724975586, -1.2758598327636719; +66.09586334228516, -1.079387903213501; +66.19586181640625, -0.9656921029090881; +66.29585266113281, -0.92286616563797; +66.3958511352539, -0.9381026029586792; +66.49584197998047, -0.9981170296669006; +66.59583282470703, -1.094006061553955; +66.69583129882812, -1.217663288116455; +66.79582214355469, -1.360990047454834; +66.89581298828125, -1.5149414539337158; +66.99581146240234, -1.6688928604125977; +67.0958023071289, -1.8113031387329102; +67.19580078125, -1.929253339767456; +67.29579162597656, -2.013765335083008; +67.39578247070312, -2.0604207515716553; +67.49578094482422, -2.068981647491455; +67.59577178955078, -2.0441040992736816; +67.69577026367188, -1.9928886890411377; +67.79576110839844, -1.9229724407196045; +67.895751953125, -1.8401966094970703; +67.9957504272461, -1.7465054988861084; +68.09574127197266, -1.6373469829559326; +68.19573211669922, -1.499563455581665; +68.29573059082031, -1.3146922588348389; +68.39572143554688, -1.0659247636795044; +68.49571990966797, -0.7420778274536133; +68.59571075439453, -0.3437325358390808; +68.6957015991211, 0.109843909740448; +68.79570007324219, 0.5685538053512573; +68.89569091796875, 0.9480267763137817; +68.99568176269531, 1.1495277881622314; +69.0956802368164, 1.102730631828308; +69.19567108154297, 0.7979646325111389; +69.29566955566406, 0.2872943878173828; +69.39566040039062, -0.33448636531829834; +69.49565124511719, -0.95377117395401; +69.59564971923828, -1.4682114124298096; +69.69564056396484, -1.8234550952911377; +69.79563903808594, -2.0228400230407715; +69.8956298828125, -2.1082611083984375; +69.99562072753906, -2.12937593460083; +70.09561920166016, -2.12058424949646; +70.19561004638672, -2.081878423690796; +70.29560089111328, -1.9732787609100342; +70.39559936523438, -1.7360299825668335; +70.49559020996094, -1.3310387134552002; +70.59558868408203, -0.7676258683204651; +70.6955795288086, -0.10428577661514282; +70.79557037353516, 0.5714371800422668; +70.89556884765625, 1.1683330535888672; +70.99555969238281, 1.603625774383545; +71.09555053710938, 1.8129795789718628; +71.19554901123047, 1.7657727003097534; +71.29553985595703, 1.4749095439910889; +71.39553833007812, 0.9832307696342468; +71.49552917480469, 0.34677982330322266; +71.59552001953125, -0.3673359751701355; +71.69551849365234, -1.0819882154464722; +71.7955093383789, -1.7216652631759644; +71.8955078125, -2.2279322147369385; +71.99549865722656, -2.5659947395324707; +72.09548950195312, -2.7349517345428467; +72.19548797607422, -2.770066261291504; +72.29547882080078, -2.728059768676758; +72.39546966552734, -2.6602001190185547; +72.49546813964844, -2.6005804538726807; +72.595458984375, -2.5667176246643066; +72.6954574584961, -2.5654211044311523; +72.79544830322266, -2.598419666290283; +72.89543914794922, -2.6609599590301514; +72.99543762207031, -2.7429909706115723; +73.09542846679688, -2.8257369995117188; +73.19541931152344, -2.8884263038635254; +73.29541778564453, -2.9151439666748047; +73.3954086303711, -2.8961448669433594; +73.49540710449219, -2.8300509452819824; +73.59539794921875, -2.722658157348633; +73.69538879394531, -2.591848373413086; +73.7953872680664, -2.4652554988861084; +73.89537811279297, -2.3713560104370117; +73.99536895751953, -2.333313226699829; +74.09536743164062, -2.364553451538086; +74.19535827636719, -2.4683475494384766; +74.29535675048828, -2.635441780090332; +74.39534759521484, -2.843022346496582; +74.4953384399414, -3.0552148818969727; +74.5953369140625, -3.2248198986053467; +74.69532775878906, -3.3047051429748535; +74.79532623291016, -3.265857696533203; +74.89531707763672, -3.109835147857666; +74.99530792236328, -2.8657243251800537; +75.09530639648438, -2.5799646377563477; +75.19529724121094, -2.3081302642822266; +75.2952880859375, -2.102203607559204; +75.3952865600586, -1.9947439432144165; +75.49527740478516, -1.9896104335784912; +75.59527587890625, -2.0677223205566406; +75.69526672363281, -2.197735071182251; +75.79525756835938, -2.340771198272705; +75.89525604248047, -2.456657648086548; +75.99524688720703, -2.5137438774108887; +76.0952377319336, -2.4948344230651855; +76.19523620605469, -2.400808095932007; +76.29522705078125, -2.2500977516174316; +76.39522552490234, -2.077974319458008; +76.4952163696289, -1.9262208938598633; +76.59520721435547, -1.8272101879119873; +76.69520568847656, -1.7950608730316162; +76.79519653320312, -1.826643943786621; +76.89519500732422, -1.9093527793884277; +76.99518585205078, -2.0256340503692627; +77.09517669677734, -2.157196521759033; +77.19517517089844, -2.2890119552612305; +77.295166015625, -2.4082064628601074; +77.39515686035156, -2.4977848529815674; +77.49515533447266, -2.536594867706299; +77.59514617919922, -2.5113298892974854; +77.69514465332031, -2.4236812591552734; +77.79513549804688, -2.2889673709869385; +77.89512634277344, -2.1308586597442627; +77.99512481689453, -1.9789338111877441; +78.0951156616211, -1.8592774868011475; +78.19510650634766, -1.7837212085723877; +78.29510498046875, -1.7505064010620117; +78.39509582519531, -1.7521605491638184; +78.4950942993164, -1.782834529876709; +78.59508514404297, -1.8383562564849854; +78.69507598876953, -1.915968894958496; +78.79507446289062, -2.0096004009246826; +78.89506530761719, -2.104259967803955; +78.99506378173828, -2.1778271198272705; +79.09505462646484, -2.2093505859375; +79.1950454711914, -2.1871180534362793; +79.2950439453125, -2.110853672027588; +79.39503479003906, -1.9904448986053467; +79.49502563476562, -1.845546007156372; +79.59502410888672, -1.6997978687286377; +79.69501495361328, -1.572445034980774; +79.79501342773438, -1.471295952796936; +79.89500427246094, -1.394338846206665; +79.9949951171875, -1.3367161750793457; +80.0949935913086, -1.2943744659423828; +80.19498443603516, -1.2638270854949951; +80.29497528076172, -1.2408792972564697; +80.39497375488281, -1.2221708297729492; +80.49496459960938, -1.2065246105194092; +80.59496307373047, -1.193530797958374; +80.69495391845703, -1.1832044124603271; +80.7949447631836, -1.1749193668365479; +80.89494323730469, -1.1683330535888672; +80.99493408203125, -1.1641234159469604; +81.09493255615234, -1.1621266603469849; +81.1949234008789, -1.161806344985962; +81.29491424560547, -1.1614634990692139; +81.39491271972656, -1.1607855558395386; +81.49490356445312, -1.1603310108184814; +81.59489440917969, -1.1591613292694092; +81.69489288330078, -1.1566877365112305; +81.79488372802734, -1.152940034866333; +81.89488220214844, -1.1489763259887695; +81.994873046875, -1.1448934078216553; +82.09486389160156, -1.1412873268127441; +82.19486236572266, -1.139521598815918; +82.29485321044922, -1.1397749185562134; +82.39484405517578, -1.1408700942993164; +82.49484252929688, -1.1431127786636353; +82.59483337402344, -1.1467933654785156; +82.69483184814453, -1.1509805917739868; +82.7948226928711, -1.152597427368164; +82.89481353759766, -1.1524856090545654; +82.99481201171875, -1.1532455682754517; +83.09480285644531, -1.1541098356246948; +83.19479370117188, -1.1537597179412842; +83.29479217529297, -1.1511073112487793; +83.39478302001953, -1.1484473943710327; +83.49478149414062, -1.141667366027832; +83.59477233886719, -1.1223628520965576; +83.69476318359375, -1.0822639465332031; +83.79476165771484, -1.0149405002593994; +83.8947525024414, -0.9154677391052246; +83.9947509765625, -0.7759109139442444; +84.09474182128906, -0.579342246055603; +84.19473266601562, -0.28032809495925903; +84.29473114013672, 0.1791641116142273; +84.39472198486328, 0.8113682270050049; +84.49471282958984, 1.5617833137512207; +84.59471130371094, 2.3497939109802246; +84.6947021484375, 3.108248233795166; +84.7947006225586, 3.752671241760254; +84.89469146728516, 4.169218063354492; +84.99468231201172, 4.284404277801514; +85.09468078613281, 4.108644962310791; +85.19467163085938, 3.705605983734131; +85.29466247558594, 3.136075973510742; +85.39466094970703, 2.4587960243225098; +85.4946517944336, 1.7494410276412964; +85.59465026855469, 1.0857582092285156; +85.69464111328125, 0.5239620804786682; +85.79463195800781, 0.0851750373840332; +85.8946304321289, -0.23642927408218384; +85.99462127685547, -0.4622340202331543; +86.09461975097656, -0.617004930973053; +86.19461059570312, -0.7219240069389343; +86.29460144042969, -0.7934272289276123; +86.39459991455078, -0.8427277207374573; +86.49459075927734, -0.8782893419265747; +86.5945816040039, -0.904381275177002; +86.694580078125, -0.9235590696334839; +86.79457092285156, -0.9384080767631531; +86.89456939697266, -0.9517371654510498; +86.99456024169922, -0.9644180536270142; +87.09455108642578, -0.9740516543388367; +87.19454956054688, -0.9812861680984497; +87.29454040527344, -0.9871870279312134; +87.39453125, -0.9929835796356201; +87.4945297241211, -0.9970590472221375; +87.59452056884766, -0.9991377592086792; +87.69451904296875, -1.0020360946655273; +87.79450988769531, -1.006096601486206; +87.89450073242188, -1.0112076997756958; +87.99449920654297, -1.015588641166687; +88.09449005126953, -1.0194406509399414; +88.19448852539062, -1.0229796171188354; +88.29447937011719, -1.025639533996582; +88.39447021484375, -1.028083324432373; +88.49446868896484, -1.0306835174560547; +88.5944595336914, -1.0349228382110596; +88.69445037841797, -1.0402947664260864; +88.79444885253906, -1.0451152324676514; +88.89443969726562, -1.0484232902526855; +88.99443817138672, -1.0498239994049072; +89.09442901611328, -1.0497941970825195; +89.19441986083984, -1.0475590229034424; +89.29441833496094, -1.044437289237976; +89.3944091796875, -1.0424628257751465; +89.49440002441406, -1.042291522026062; +89.59439849853516, -1.0435134172439575; +89.69438934326172, -1.0448694229125977; +89.79438781738281, -1.0464340448379517; +89.89437866210938, -1.0484530925750732; +89.99436950683594, -1.0512545108795166; +90.09436798095703, -1.054786205291748; +90.1943588256836, -1.0581016540527344; +90.29434967041016, -1.0601729154586792; +90.39434814453125, -1.0612010955810547; +90.49433898925781, -1.0617077350616455; +90.5943374633789, -1.0615811347961426; +90.69432830810547, -1.0607540607452393; +90.79431915283203, -1.0597779750823975; +90.89431762695312, -1.0594353675842285; +90.99430847167969, -1.0590702295303345; +91.09430694580078, -1.0575129985809326; +91.19429779052734, -1.0556131601333618; +91.2942886352539, -1.0550320148468018; +91.394287109375, -1.055516242980957; +91.49427795410156, -1.0563209056854248; +91.59426879882812, -1.0578185319900513; +91.69426727294922, -1.05990469455719; +91.79425811767578, -1.0615438222885132; +91.89425659179688, -1.0607987642288208; +91.99424743652344, -1.0594651699066162; +92.09423828125, -1.0590851306915283; +92.1942367553711, -1.058921217918396; +92.29422760009766, -1.058943510055542; +92.39421844482422, -1.05851149559021; +92.49421691894531, -1.0585635900497437; +92.59420776367188, -1.0579824447631836; +92.69420623779297, -1.0571181774139404; +92.79419708251953, -1.0572149753570557; +92.8941879272461, -1.0587499141693115; +92.99418640136719, -1.061640739440918; +93.09417724609375, -1.0650455951690674; +93.19417572021484, -1.0674148797988892; +93.2941665649414, -1.0671168565750122; +93.39415740966797, -1.0648667812347412; +93.49415588378906, -1.061476707458496; +93.59414672851562, -1.0584145784378052; +93.69413757324219, -1.055859088897705; +93.79413604736328, -1.054510474205017; +93.89412689208984, -1.055680274963379; +93.99412536621094, -1.058556079864502; +94.0941162109375, -1.0618195533752441; +94.19410705566406, -1.064039707183838; +94.29410552978516, -1.0648518800735474; +94.39409637451172, -1.0657236576080322; +94.49408721923828, -1.0663793087005615; +94.59408569335938, -1.0657236576080322; +94.69407653808594, -1.0638386011123657; +94.79407501220703, -1.0614842176437378; +94.8940658569336, -1.059718370437622; +94.99405670166016, -1.0582506656646729; +95.09405517578125, -1.0571703910827637; +95.19404602050781, -1.056671142578125; +95.2940444946289, -1.055881381034851; +95.39403533935547, -1.0545775890350342; +95.49402618408203, -1.053541898727417; +95.59402465820312, -1.0535345077514648; +95.69401550292969, -1.052983045578003; +95.79400634765625, -1.0515302419662476; +95.89400482177734, -1.0499358177185059; +95.9939956665039, -1.049637794494629; +96.093994140625, -1.050196647644043; +96.19398498535156, -1.0504871606826782; +96.29397583007812, -1.050926685333252; +96.39397430419922, -1.0515600442886353; +96.49396514892578, -1.0524392127990723; +96.59395599365234, -1.0531022548675537; +96.69395446777344, -1.0533779859542847; +96.7939453125, -1.0540485382080078; +96.8939437866211, -1.0551363229751587; +96.99393463134766, -1.0564178228378296; +97.09392547607422, -1.0568275451660156; +97.19392395019531, -1.0553374290466309; +97.29391479492188, -1.052386999130249; +97.39391326904297, -1.0485053062438965; +97.49390411376953, -1.0449886322021484; +97.5938949584961, -1.0425522327423096; +97.69389343261719, -1.0418965816497803; +97.79388427734375, -1.0443553924560547; +97.89387512207031, -1.0493173599243164; +97.9938735961914, -1.0547786951065063; +98.09386444091797, -1.0581388473510742; +98.19386291503906, -1.0592117309570312; +98.29385375976562, -1.05951726436615; +98.39384460449219, -1.0578930377960205; +98.49384307861328, -1.053929328918457; +98.59383392333984, -1.0481923818588257; +98.6938247680664, -1.0436773300170898; +98.7938232421875, -1.0412261486053467; +98.89381408691406, -1.0392143726348877; +98.99381256103516, -1.0375604629516602; +99.09380340576172, -1.0372772216796875; +99.19379425048828, -1.0388046503067017; +99.29379272460938, -1.0403841733932495; +99.39378356933594, -1.0403990745544434; +99.4937744140625, -1.0400340557098389; +99.5937728881836, -1.0411665439605713; +99.69376373291016, -1.0437965393066406; +99.79376220703125, -1.048140287399292; +99.89375305175781, -1.0534451007843018; +99.99374389648438, -1.0589957237243652; +100.09374237060547, -1.0632127523422241; +100.19373321533203, -1.0654181241989136; +100.29373168945312, -1.0658949613571167; +100.39372253417969, -1.0639578104019165; +100.49371337890625, -1.060783863067627; +100.59371185302734, -1.058429479598999; +100.6937026977539, -1.058235764503479; +100.79369354248047, -1.0587871074676514; +100.89369201660156, -1.0584518909454346; +100.99368286132812, -1.0573639869689941; +101.09368133544922, -1.0561048984527588; +101.19367218017578, -1.0551214218139648; +101.29366302490234, -1.054353952407837; +101.39366149902344, -1.0541528463363647; +101.49365234375, -1.0544359683990479; +101.59364318847656, -1.055382251739502; +101.69364166259766, -1.0565295219421387; +101.79363250732422, -1.0575428009033203; +101.89363098144531, -1.058146357536316; +101.99362182617188, -1.0578781366348267; +102.09361267089844, -1.056969165802002; +102.19361114501953, -1.0557174682617188; +102.2936019897461, -1.0547935962677002; +102.39360046386719, -1.0536909103393555; +102.49359130859375, -1.0520517826080322; +102.59358215332031, -1.0502934455871582; +102.6935806274414, -1.0494663715362549; +102.79357147216797, -1.0494589805603027; +102.89356231689453, -1.050330638885498; +102.99356079101562, -1.0526329278945923; +103.09355163574219, -1.0554641485214233; +103.19355010986328, -1.0579079389572144; +103.29354095458984, -1.059204339981079; +103.3935317993164, -1.0599122047424316; +103.4935302734375, -1.0600835084915161; +103.59352111816406, -1.0590404272079468; +103.69351196289062, -1.0576844215393066; +103.79351043701172, -1.0569169521331787; +103.89350128173828, -1.056373119354248; +103.99349975585938, -1.0559409856796265; +104.09349060058594, -1.055426836013794; +104.1934814453125, -1.0555237531661987; +104.2934799194336, -1.0567903518676758; +104.39347076416016, -1.0580122470855713; +104.49346923828125, -1.0589808225631714; +104.59346008300781, -1.058556079864502; +104.69345092773438, -1.0570287704467773; +104.79344940185547, -1.0545998811721802; +104.89344024658203, -1.0508224964141846; +104.9934310913086, -1.0480433702468872; +105.09342956542969, -1.0470821857452393; +105.19342041015625, -1.0486469268798828; +105.29341888427734, -1.0515600442886353; +105.3934097290039, -1.0542795658111572; +105.49340057373047, -1.0567233562469482; +105.59339904785156, -1.0579452514648438; +105.69338989257812, -1.0589063167572021; +105.79338073730469, -1.0594055652618408; +105.89337921142578, -1.0591075420379639; +105.99337005615234, -1.0587797164916992; +106.09336853027344, -1.0589063167572021; +106.193359375, -1.059330940246582; +106.29335021972656, -1.059308648109436; +106.39334869384766, -1.0590702295303345; +106.49333953857422, -1.0600910186767578; +106.59333801269531, -1.061946153640747; +106.69332885742188, -1.0637567043304443; +106.79331970214844, -1.0661035776138306; +106.89331817626953, -1.0684058666229248; +106.9933090209961, -1.0706037282943726; +107.09329986572266, -1.0719225406646729; +107.19329833984375, -1.072317361831665; +107.29328918457031, -1.0717213153839111; +107.3932876586914, -1.0697021484375; +107.49327850341797, -1.0672881603240967; +107.59326934814453, -1.0642707347869873; +107.69326782226562, -1.0598599910736084; +107.79325866699219, -1.0554566383361816; +107.89324951171875, -1.0530650615692139; +107.99324798583984, -1.0532140731811523; +108.0932388305664, -1.0546371936798096; +108.1932373046875, -1.0566637516021729; +108.29322814941406, -1.0600388050079346; +108.39321899414062, -1.064084529876709; +108.49321746826172, -1.0678619146347046; +108.59320831298828, -1.0701491832733154; +108.69319915771484, -1.0704845190048218; +108.79319763183594, -1.0695457458496094; +108.8931884765625, -1.0681450366973877; +108.9931869506836, -1.0669231414794922; +109.09317779541016, -1.0657682418823242; +109.19316864013672, -1.0643675327301025; +109.29316711425781, -1.062646508216858; +109.39315795898438, -1.0609254837036133; +109.49315643310547, -1.0596885681152344; +109.59314727783203, -1.0594651699066162; +109.6931381225586, -1.058921217918396; +109.79313659667969, -1.0578558444976807; +109.89312744140625, -1.0572001934051514; +109.99311828613281, -1.0577291250228882; +110.0931167602539, -1.059241533279419; +110.19310760498047, -1.0599567890167236; +110.29310607910156, -1.060567855834961; +110.39309692382812, -1.0612382888793945; +110.49308776855469, -1.0626389980316162; +110.59308624267578, -1.0642335414886475; +110.69307708740234, -1.0653064250946045; +110.7930679321289, -1.065269112586975; +110.89306640625, -1.0637789964675903; +110.99305725097656, -1.0618045330047607; +111.09305572509766, -1.060269832611084; +111.19304656982422, -1.0591819286346436; +111.29303741455078, -1.0589510202407837; +111.39303588867188, -1.060225009918213; +111.49302673339844, -1.0629222393035889; +111.59302520751953, -1.066163182258606; +111.6930160522461, -1.0678023099899292; +111.79300689697266, -1.068711280822754; +111.89300537109375, -1.0685548782348633; +111.99299621582031, -1.0676159858703613; +112.09298706054688, -1.0664910078048706; +112.19298553466797, -1.0666251182556152; +112.29297637939453, -1.069784164428711; +112.39297485351562, -1.0741426944732666; +112.49296569824219, -1.078769564628601; +112.59295654296875, -1.0815634727478027; +112.69295501708984, -1.083269715309143; +112.7929458618164, -1.0850205421447754; +112.89293670654297, -1.0866671800613403; +112.99293518066406, -1.0879039764404297; +113.09292602539062, -1.087576150894165; +113.19292449951172, -1.0882914066314697; +113.29291534423828, -1.0905414819717407; +113.39290618896484, -1.0925084352493286; +113.49290466308594, -1.093618631362915; +113.5928955078125, -1.0927543640136719; +113.6928939819336, -1.091174840927124; +113.79288482666016, -1.0890066623687744; +113.89287567138672, -1.0867267847061157; +113.99287414550781, -1.0859817266464233; +114.09286499023438, -1.0854452848434448; +114.19285583496094, -1.0860190391540527; +114.29285430908203, -1.087769865989685; +114.3928451538086, -1.0914057493209839; +114.49284362792969, -1.0962188243865967; +114.59283447265625, -1.0995194911956787; +114.69282531738281, -1.1004283428192139; +114.7928237915039, -1.0989234447479248; +114.89281463623047, -1.0972023010253906; +114.99280548095703, -1.095764398574829; +115.09280395507812, -1.0939687490463257; +115.19279479980469, -1.0914504528045654; +115.29279327392578, -1.0898337364196777; +115.39278411865234, -1.090623378753662; +115.4927749633789, -1.092970371246338; +115.5927734375, -1.0949149131774902; +115.69276428222656, -1.0961518287658691; +115.79275512695312, -1.0979026556015015; +115.89275360107422, -1.1002495288848877; +115.99274444580078, -1.1029317378997803; +116.09274291992188, -1.1045485734939575; +116.19273376464844, -1.104995608329773; +116.292724609375, -1.1053085327148438; +116.3927230834961, -1.1059865951538086; +116.49271392822266, -1.1080875396728516; +116.59271240234375, -1.111023187637329; +116.69270324707031, -1.1146217584609985; +116.79269409179688, -1.117795705795288; +116.89269256591797, -1.1192411184310913; +116.99268341064453, -1.1190698146820068; +117.0926742553711, -1.1171624660491943; +117.19267272949219, -1.1149495840072632; +117.29266357421875, -1.1132508516311646; +117.39266204833984, -1.1128038167953491; +117.4926528930664, -1.113124132156372; +117.59264373779297, -1.1139214038848877; +117.69264221191406, -1.1156350374221802; +117.79263305664062, -1.116827130317688; +117.89262390136719, -1.1172964572906494; +117.99262237548828, -1.1174380779266357; +118.09261322021484, -1.1178553104400635; +118.19261169433594, -1.1186673641204834; +118.2926025390625, -1.1178181171417236; +118.39259338378906, -1.1162012815475464; +118.49259185791016, -1.114964485168457; +118.59258270263672, -1.114748477935791; +118.69258117675781, -1.1159851551055908; +118.79257202148438, -1.1172964572906494; +118.89256286621094, -1.1190102100372314; +118.99256134033203, -1.120753526687622; +119.0925521850586, -1.1220946311950684; +119.19254302978516, -1.1231229305267334; +119.29254150390625, -1.12272047996521; +119.39253234863281, -1.1210217475891113; +119.4925308227539, -1.1196658611297607; +119.59252166748047, -1.1193678379058838; +119.69251251220703, -1.1197775602340698; +119.79251098632812, -1.119591236114502; +119.89250183105469, -1.1197254657745361; +119.99249267578125, -1.121416687965393; +120.09249114990234, -1.123383641242981; +120.1924819946289, -1.1245906352996826; +120.29248046875, -1.125827431678772; +120.39247131347656, -1.1276676654815674; +120.49246215820312, -1.1295452117919922; +120.59246063232422, -1.1305882930755615; +120.69245147705078, -1.131422758102417; +120.79244995117188, -1.132875680923462; +120.89244079589844, -1.133933663368225; +120.992431640625, -1.1342837810516357; +121.0924301147461, -1.1335015296936035; +121.19242095947266, -1.1322274208068848; +121.29241180419922, -1.1316165924072266; +121.39241027832031, -1.1310055255889893; +121.49240112304688, -1.1300816535949707; +121.59239959716797, -1.129664421081543; +121.69239044189453, -1.1305735111236572; +121.7923812866211, -1.1325702667236328; +121.89237976074219, -1.1343286037445068; +121.99237060546875, -1.1368393898010254; +122.09236145019531, -1.1398941278457642; +122.1923599243164, -1.1411011219024658; +122.29235076904297, -1.1402442455291748; +122.39234924316406, -1.138538122177124; +122.49234008789062, -1.136518955230713; +122.59233093261719, -1.1330842971801758; +122.69232940673828, -1.12795090675354; +122.79232025146484, -1.123487949371338; +122.89231872558594, -1.1206120252609253; +122.9923095703125, -1.1188238859176636; +123.09230041503906, -1.1174529790878296; +123.19229888916016, -1.1165738105773926; +123.29228973388672, -1.1170432567596436; +123.39228057861328, -1.1177136898040771; +123.49227905273438, -1.1179596185684204; +123.59226989746094, -1.1182949542999268; +123.69226837158203, -1.1193082332611084; +123.7922592163086, -1.1198073625564575; +123.89225006103516, -1.1191890239715576; +123.99224853515625, -1.1186375617980957; +124.09223937988281, -1.119568943977356; +124.19223022460938, -1.1208131313323975; +124.29222869873047, -1.1201649904251099; +124.39221954345703, -1.118011713027954; +124.49221801757812, -1.1156723499298096; +124.59220886230469, -1.1142045259475708; +124.69219970703125, -1.1125729084014893; +124.79219818115234, -1.1095255613327026; +124.8921890258789, -1.1051521301269531; +124.99217987060547, -1.0999515056610107; +125.09217834472656, -1.0949820280075073; +125.19216918945312, -1.091092824935913; +125.29216766357422, -1.0888054370880127; +125.39215850830078, -1.0885522365570068; +125.49214935302734, -1.0905563831329346; +125.59214782714844, -1.094304084777832; +125.692138671875, -1.0985360145568848; +125.7921371459961, -1.1020749807357788; +125.89212799072266, -1.1040940284729004; +125.99211883544922, -1.1052042245864868; +126.09211730957031, -1.1060237884521484; +126.19210815429688, -1.1071338653564453; +126.29209899902344, -1.1086761951446533; +126.39209747314453, -1.1093690395355225; +126.4920883178711, -1.1090562343597412; +126.59208679199219, -1.1074244976043701; +126.69207763671875, -1.1049284934997559; +126.79206848144531, -1.1024773120880127; +126.8920669555664, -1.0999069213867188; +126.99205780029297, -1.0972023010253906; +127.09204864501953, -1.0944828987121582; +127.19204711914062, -1.0937303304672241; +127.29203796386719, -1.0962486267089844; +127.39203643798828, -1.1016056537628174; +127.49202728271484, -1.1079907417297363; +127.5920181274414, -1.1140778064727783; +127.6920166015625, -1.1192634105682373; +127.79200744628906, -1.1222511529922485; +127.89200592041016, -1.1231675148010254; +127.99199676513672, -1.1223554611206055; +128.0919952392578, -1.1207163333892822; +128.19198608398438, -1.1187865734100342; +128.29197692871094, -1.1166930198669434; +128.3919677734375, -1.115478515625; +128.49195861816406, -1.1152102947235107; +128.5919647216797, -1.1155754327774048; +128.69195556640625, -1.1155307292938232; +128.7919464111328, -1.1154413223266602; +128.89193725585938, -1.1166930198669434; +128.99192810058594, -1.118972897529602; +129.09193420410156, -1.1204705238342285; +129.19192504882812, -1.1195018291473389; +129.2919158935547, -1.1167452335357666; +129.39190673828125, -1.1138544082641602; +129.4918975830078, -1.1110529899597168; +129.59188842773438, -1.10784912109375; +129.69189453125, -1.1039525270462036; +129.79188537597656, -1.100517749786377; +129.89187622070312, -1.0982379913330078; +129.9918670654297, -1.0969936847686768; +130.09185791015625, -1.0962858200073242; +130.19186401367188, -1.0958760976791382; +130.29185485839844, -1.0961443185806274; +130.391845703125, -1.0968446731567383; +130.49183654785156, -1.0981037616729736; +130.59182739257812, -1.0981485843658447; +130.69183349609375, -1.0968595743179321; +130.7918243408203, -1.094900131225586; +130.89181518554688, -1.0929107666015625; +130.99180603027344, -1.0906904935836792; +131.091796875, -1.0883212089538574; +131.19180297851562, -1.087494134902954; +131.2917938232422, -1.0869652032852173; +131.39178466796875, -1.0853633880615234; +131.4917755126953, -1.08259916305542; +131.59176635742188, -1.0811537504196167; +131.69175720214844, -1.0817275047302246; +131.79176330566406, -1.0831429958343506; +131.89175415039062, -1.0845214128494263; +131.9917449951172, -1.0849982500076294; +132.09173583984375, -1.0847673416137695; +132.1917266845703, -1.0833442211151123; +132.29173278808594, -1.0812506675720215; +132.3917236328125, -1.0789036750793457; +132.49171447753906, -1.0769814252853394; +132.59170532226562, -1.0755211114883423; +132.6916961669922, -1.0735392570495605; +132.7917022705078, -1.0700747966766357; +132.89169311523438, -1.064516544342041; +132.99168395996094, -1.0569244623184204; +133.0916748046875, -1.0487288236618042; +133.19166564941406, -1.0418519973754883; +133.2916717529297, -1.0374188423156738; +133.39166259765625, -1.0352283716201782; +133.4916534423828, -1.0351836681365967; +133.59164428710938, -1.0372772216796875; +133.69163513183594, -1.0404958724975586; +133.7916259765625, -1.0428204536437988; +133.89163208007812, -1.0432376861572266; +133.9916229248047, -1.0420531034469604; +134.09161376953125, -1.0392069816589355; +134.1916046142578, -1.034766435623169; +134.29159545898438, -1.0295212268829346; +134.3916015625, -1.025468111038208; +134.49159240722656, -1.0229051113128662; +134.59158325195312, -1.0202302932739258; +134.6915740966797, -1.0167882442474365; +134.79156494140625, -1.0124444961547852; +134.89157104492188, -1.00746750831604; +134.99156188964844, -1.0014102458953857; +135.091552734375, -0.994369387626648; +135.19154357910156, -0.9881556034088135; +135.29153442382812, -0.9832829236984253; +135.39154052734375, -0.9800717234611511; +135.4915313720703, -0.9778812527656555; +135.59152221679688, -0.9767413139343262; +135.69151306152344, -0.9766221046447754; +135.79150390625, -0.9759813547134399; +135.89149475097656, -0.9740963578224182; +135.9915008544922, -0.971473753452301; +136.09149169921875, -0.9685531258583069; +136.1914825439453, -0.9647831320762634; +136.29147338867188, -0.9596496820449829; +136.39146423339844, -0.9542480111122131; +136.49147033691406, -0.949956476688385; +136.59146118164062, -0.9468495845794678; +136.6914520263672, -0.9446889162063599; +136.79144287109375, -0.9422451257705688; +136.8914337158203, -0.9393766522407532; +136.99143981933594, -0.937044620513916; +137.0914306640625, -0.9350702166557312; +137.19142150878906, -0.9325891733169556; +137.29141235351562, -0.9285509586334229; +137.3914031982422, -0.9239241480827332; +137.4914093017578, -0.9189099073410034; +137.59140014648438, -0.9130090475082397; +137.69139099121094, -0.9076744318008423; +137.7913818359375, -0.9037181735038757; +137.89137268066406, -0.8997991681098938; +137.99136352539062, -0.8950158953666687; +138.09136962890625, -0.8911564946174622; +138.1913604736328, -0.8896440267562866; +138.29135131835938, -0.8881688117980957; +138.39134216308594, -0.8837208151817322; +138.4913330078125, -0.8771345019340515; +138.59133911132812, -0.8701309561729431; +138.6913299560547, -0.863000750541687; +138.79132080078125, -0.8547753095626831; +138.8913116455078, -0.8454844355583191; +138.99130249023438, -0.8376762270927429; +139.09130859375, -0.833854079246521; +139.19129943847656, -0.8341073989868164; +139.29129028320312, -0.8360967040061951; +139.3912811279297, -0.8380040526390076; +139.49127197265625, -0.8396431803703308; +139.59127807617188, -0.8408576250076294; +139.69126892089844, -0.8399114012718201; +139.791259765625, -0.8367672562599182; +139.89125061035156, -0.8318275213241577; +139.99124145507812, -0.8257701992988586; +140.0912322998047, -0.8196532726287842; +140.1912384033203, -0.8134320378303528; +140.29122924804688, -0.8079558610916138; +140.39122009277344, -0.8016228675842285; +140.4912109375, -0.7949471473693848; +140.59120178222656, -0.7886514067649841; +140.6912078857422, -0.7824152708053589; +140.79119873046875, -0.7759705185890198; +140.8911895751953, -0.7696822285652161; +140.99118041992188, -0.7658302783966064; +141.09117126464844, -0.7644295692443848; +141.19117736816406, -0.7628872990608215; +141.29116821289062, -0.7603242993354797; +141.3911590576172, -0.7583275437355042; +141.49114990234375, -0.7572770118713379; +141.5911407470703, -0.7554143667221069; +141.69114685058594, -0.7508844137191772; +141.7911376953125, -0.7453411817550659; +141.89112854003906, -0.7401183247566223; +141.99111938476562, -0.7345974445343018; +142.0911102294922, -0.7278323173522949; +142.19110107421875, -0.7213056087493896; +142.29110717773438, -0.7169097661972046; +142.39109802246094, -0.7144883275032043; +142.4910888671875, -0.7122904062271118; +142.59107971191406, -0.7089003920555115; +142.69107055664062, -0.7040202617645264; +142.79107666015625, -0.697113573551178; +142.8910675048828, -0.689193606376648; +142.99105834960938, -0.6820186972618103; +143.09104919433594, -0.6767287850379944; +143.1910400390625, -0.6723776459693909; +143.29104614257812, -0.6684288382530212; +143.3910369873047, -0.665321946144104; +143.49102783203125, -0.6620809435844421; +143.5910186767578, -0.6575584411621094; +143.69100952148438, -0.6513744592666626; +143.791015625, -0.6451234221458435; +143.89100646972656, -0.6400421261787415; +143.99099731445312, -0.6358101963996887; +144.0909881591797, -0.6327629089355469; +144.19097900390625, -0.6310418248176575; +144.2909698486328, -0.6303414702415466; +144.39097595214844, -0.6300359964370728; +144.490966796875, -0.6297975778579712; +144.59095764160156, -0.6297901272773743; +144.69094848632812, -0.6296932697296143; +144.7909393310547, -0.6283223628997803; +144.8909454345703, -0.6256029009819031; +144.99093627929688, -0.6228461861610413; +145.09092712402344, -0.6205141544342041; +145.19091796875, -0.6178319454193115; +145.29090881347656, -0.6144940853118896; +145.3909149169922, -0.6115585565567017; +145.49090576171875, -0.6098970770835876; +145.5908966064453, -0.6086304783821106; +145.69088745117188, -0.6060749292373657; +145.79087829589844, -0.6025955080986023; +145.890869140625, -0.5986839532852173; +145.99087524414062, -0.5949065089225769; +146.0908660888672, -0.5914121866226196; +146.19085693359375, -0.5882754921913147; +146.2908477783203, -0.5870088934898376; +146.39083862304688, -0.5865246057510376; +146.4908447265625, -0.5849003791809082; +146.59083557128906, -0.5812793970108032; +146.69082641601562, -0.575721263885498; +146.7908172607422, -0.5691424012184143; +146.89080810546875, -0.5613043904304504; +146.99081420898438, -0.5531832575798035; +147.09080505371094, -0.5471557378768921; +147.1907958984375, -0.5431175231933594; +147.29078674316406, -0.5400106310844421; +147.39077758789062, -0.5369558930397034; +147.49078369140625, -0.5352124571800232; +147.5907745361328, -0.5355551838874817; +147.69076538085938, -0.5363225936889648; +147.79075622558594, -0.5371719598770142; +147.8907470703125, -0.5387440323829651; +147.99073791503906, -0.5408897995948792; +148.0907440185547, -0.541292130947113; +148.19073486328125, -0.5387216806411743; +148.2907257080078, -0.5341619253158569; +148.39071655273438, -0.5288347601890564; +148.49070739746094, -0.5234405398368835; +148.59071350097656, -0.5189180374145508; +148.69070434570312, -0.5155652761459351; +148.7906951904297, -0.512935221195221; +148.89068603515625, -0.5102753639221191; +148.9906768798828, -0.5077570676803589; +149.09068298339844, -0.5054846405982971; +149.190673828125, -0.5028471350669861; +149.29066467285156, -0.49970299005508423; +149.39065551757812, -0.4962161183357239; +149.4906463623047, -0.49261748790740967; +149.5906524658203, -0.4886016249656677; +149.69064331054688, -0.4842206835746765; +149.79063415527344, -0.479869544506073; +149.890625, -0.47613680362701416; +149.99061584472656, -0.47390908002853394; +150.09060668945312, -0.4733577370643616; +150.19061279296875, -0.4739910364151001; +150.2906036376953, -0.4743635654449463; +150.39059448242188, -0.4735514521598816; +150.49058532714844, -0.47156214714050293; +150.590576171875, -0.4687681794166565; +150.69058227539062, -0.4658922553062439; +150.7905731201172, -0.4624500870704651; +150.89056396484375, -0.45812875032424927; +150.9905548095703, -0.45248866081237793; +151.09054565429688, -0.4465058445930481; +151.1905517578125, -0.44048577547073364; +151.29054260253906, -0.4343464970588684; +151.39053344726562, -0.4284977912902832; +151.4905242919922, -0.42345374822616577; +151.59051513671875, -0.41950494050979614; +151.69052124023438, -0.4155188798904419; +151.79051208496094, -0.41143596172332764; +151.8905029296875, -0.40777772665023804; +151.99049377441406, -0.40524452924728394; +152.09048461914062, -0.40371716022491455; +152.1904754638672, -0.4036128520965576; +152.2904815673828, -0.40511786937713623; +152.39047241210938, -0.40741264820098877; +152.49046325683594, -0.40922313928604126; +152.5904541015625, -0.40956586599349976; +152.69044494628906, -0.4084557294845581; +152.7904510498047, -0.40593743324279785; +152.89044189453125, -0.4029273986816406; +152.9904327392578, -0.4000738263130188; +153.09042358398438, -0.3978461027145386; +153.19041442871094, -0.3956332802772522; +153.29042053222656, -0.3933459520339966; +153.39041137695312, -0.39090216159820557; +153.4904022216797, -0.388316810131073; +153.59039306640625, -0.3848746418952942; +153.6903839111328, -0.3801807761192322; +153.79039001464844, -0.37488341331481934; +153.890380859375, -0.3701820969581604; +153.99037170410156, -0.36663562059402466; +154.09036254882812, -0.36296993494033813; +154.1903533935547, -0.35947561264038086; +154.29034423828125, -0.35587698221206665; +154.39035034179688, -0.35275518894195557; +154.49034118652344, -0.3491342067718506; +154.59033203125, -0.344887375831604; +154.69032287597656, -0.34120678901672363; +154.79031372070312, -0.3387555480003357; +154.89031982421875, -0.33824145793914795; +154.9903106689453, -0.3386959433555603; +155.09030151367188, -0.3393888473510742; +155.19029235839844, -0.33924728631973267; +155.290283203125, -0.3370046615600586; +155.39028930664062, -0.3323853015899658; +155.4902801513672, -0.32635778188705444; +155.59027099609375, -0.3200843930244446; +155.6902618408203, -0.3134384751319885; +155.79025268554688, -0.3069192171096802; +155.8902587890625, -0.3018900752067566; +155.99024963378906, -0.2990216016769409; +156.09024047851562, -0.2966448664665222; +156.1902313232422, -0.2937689423561096; +156.29022216796875, -0.2910718321800232; +156.3902130126953, -0.2876371145248413; +156.49021911621094, -0.2825409173965454; +156.5902099609375, -0.2756193280220032; +156.69020080566406, -0.2692118287086487; +156.79019165039062, -0.26392191648483276; +156.8901824951172, -0.2588629722595215; +156.9901885986328, -0.2546384930610657; +157.09017944335938, -0.25250017642974854; +157.19017028808594, -0.2524033188819885; +157.2901611328125, -0.25222450494766235; +157.39015197753906, -0.25081634521484375; +157.4901580810547, -0.24893134832382202; +157.59014892578125, -0.24733692407608032; +157.6901397705078, -0.2452656626701355; +157.79013061523438, -0.24230778217315674; +157.89012145996094, -0.23849308490753174; +157.99012756347656, -0.23479759693145752; +158.09011840820312, -0.23174285888671875; +158.1901092529297, -0.22890418767929077; +158.29010009765625, -0.2257227897644043; +158.3900909423828, -0.22129714488983154; +158.49008178710938, -0.2164989709854126; +158.590087890625, -0.21252036094665527; +158.69007873535156, -0.20957738161087036; +158.79006958007812, -0.2077147364616394; +158.8900604248047, -0.20514428615570068; +158.99005126953125, -0.202082097530365; +159.09005737304688, -0.19884854555130005; +159.19004821777344, -0.1958906650543213; +159.2900390625, -0.19318610429763794; +159.39002990722656, -0.18996745347976685; +159.49002075195312, -0.18815696239471436; +159.59002685546875, -0.1882985234260559; +159.6900177001953, -0.1896098256111145; +159.79000854492188, -0.1903921365737915; +159.88999938964844, -0.18940120935440063; +159.989990234375, -0.1871734857559204; +160.08999633789062, -0.1838207244873047; +160.1899871826172, -0.1804828643798828; +160.28997802734375, -0.17739087343215942; +160.3899688720703, -0.17407536506652832; +160.48995971679688, -0.17123669385910034; +160.58995056152344, -0.16914308071136475; +160.68995666503906, -0.16767531633377075; +160.78994750976562, -0.1652166247367859; +160.8899383544922, -0.16217678785324097; +160.98992919921875, -0.159338116645813; +161.0899200439453, -0.1565590500831604; +161.18992614746094, -0.15440583229064941; +161.2899169921875, -0.15331804752349854; +161.38990783691406, -0.15381723642349243; +161.48989868164062, -0.1546218991279602; +161.5898895263672, -0.154934823513031; +161.6898956298828, -0.15411525964736938; +161.78988647460938, -0.1519918441772461; +161.88987731933594, -0.1493021845817566; +161.9898681640625, -0.14647096395492554; +162.08985900878906, -0.14438480138778687; +162.1898651123047, -0.14285743236541748; +162.28985595703125, -0.1425221562385559; +162.3898468017578, -0.14344602823257446; +162.48983764648438, -0.14562159776687622; +162.58982849121094, -0.1481771469116211; +162.6898193359375, -0.14893710613250732; +162.78982543945312, -0.1478046178817749; +162.8898162841797, -0.14562159776687622; +162.98980712890625, -0.14276057481765747; +163.0897979736328, -0.13863295316696167; +163.18978881835938, -0.13371556997299194; +163.289794921875, -0.1301690936088562; +163.38978576660156, -0.1292303204536438; +163.48977661132812, -0.13096630573272705; +163.5897674560547, -0.13383477926254272; +163.68975830078125, -0.13580173254013062; +163.78976440429688, -0.1357346773147583; +163.88975524902344, -0.13415515422821045; +163.98974609375, -0.1324862241744995; +164.08973693847656, -0.1309514045715332; +164.18972778320312, -0.13051927089691162; +164.2897186279297, -0.13113021850585938; +164.3897247314453, -0.13165175914764404; +164.48971557617188, -0.13060122728347778; +164.58970642089844, -0.1275092363357544; +164.689697265625, -0.12281537055969238; +164.78968811035156, -0.11674314737319946; +164.8896942138672, -0.10996311902999878; +164.98968505859375, -0.10399520397186279; +165.0896759033203, -0.10056793689727783; +165.18966674804688, -0.10023266077041626; +165.28965759277344, -0.10180473327636719; +165.38966369628906, -0.10307878255844116; +165.48965454101562, -0.10304898023605347; +165.5896453857422, -0.10244548320770264; +165.68963623046875, -0.10143965482711792; +165.7896270751953, -0.09959936141967773; +165.88963317871094, -0.09634345769882202; +165.9896240234375, -0.0921785831451416; +166.08961486816406, -0.08919835090637207; +166.18960571289062, -0.0874251127243042; +166.2895965576172, -0.08612126111984253; +166.38958740234375, -0.08350610733032227; +166.48959350585938, -0.0804215669631958; +166.58958435058594, -0.07799267768859863; +166.6895751953125, -0.07610023021697998; +166.78956604003906, -0.07571280002593994; +166.88955688476562, -0.07674098014831543; +166.98956298828125, -0.07816404104232788; +167.0895538330078, -0.0780448317527771; +167.18954467773438, -0.07666647434234619; +167.28953552246094, -0.07549673318862915; +167.3895263671875, -0.07328391075134277; +167.48953247070312, -0.06933510303497314; +167.5895233154297, -0.06494671106338501; +167.68951416015625, -0.06172060966491699; +167.7895050048828, -0.05982816219329834; +167.88949584960938, -0.05780160427093506; +167.989501953125, -0.056102871894836426; +168.08949279785156, -0.05424022674560547; +168.18948364257812, -0.051684677600860596; +168.2894744873047, -0.047929584980010986; +168.38946533203125, -0.04283338785171509; +168.4894561767578, -0.03684312105178833; +168.58946228027344, -0.03013014793395996; +168.689453125, -0.023037195205688477; +168.78944396972656, -0.01554936170578003; +168.88943481445312, -0.008217990398406982; +168.9894256591797, -0.0011846423149108887; +169.0894317626953, 0.0054389238357543945; +169.18942260742188, 0.011801719665527344; +169.28941345214844, 0.016920268535614014; +169.389404296875, 0.02146512269973755; +169.48939514160156, 0.02662837505340576; +169.5894012451172, 0.032104551792144775; +169.68939208984375, 0.03680586814880371; +169.7893829345703, 0.04056096076965332; +169.88937377929688, 0.04484504461288452; +169.98936462402344, 0.04900991916656494; +170.08937072753906, 0.051997601985931396; +170.18936157226562, 0.05333125591278076; +170.2893524169922, 0.05395710468292236; +170.38934326171875, 0.05498528480529785; +170.4893341064453, 0.05725771188735962; +170.58932495117188, 0.060945749282836914; +170.6893310546875, 0.0650063157081604; +170.78932189941406, 0.0696033239364624; +170.88931274414062, 0.07517635822296143; +170.9893035888672, 0.08128583431243896; +171.08929443359375, 0.08615851402282715; +171.18930053710938, 0.08923560380935669; +171.28929138183594, 0.0918358564376831; +171.3892822265625, 0.09494274854660034; +171.48927307128906, 0.09829550981521606; +171.58926391601562, 0.10082125663757324; +171.68927001953125, 0.10191649198532104; +171.7892608642578, 0.10154396295547485; +171.88925170898438, 0.10044127702713013; +171.98924255371094, 0.09964406490325928; +172.0892333984375, 0.10000914335250854; +172.18923950195312, 0.102996826171875; +172.2892303466797, 0.10831654071807861; +172.38922119140625, 0.11340528726577759; +172.4892120361328, 0.11640042066574097; +172.58920288085938, 0.11763721704483032; +172.68919372558594, 0.11892616748809814; +172.78919982910156, 0.11981278657913208; +172.88919067382812, 0.11942535638809204; +172.9891815185547, 0.1201927661895752; +173.08917236328125, 0.12340396642684937; +173.1891632080078, 0.12822449207305908; +173.28916931152344, 0.13169646263122559; +173.38916015625, 0.133611261844635; +173.48915100097656, 0.13585388660430908; +173.58914184570312, 0.13794004917144775; +173.6891326904297, 0.1391097903251648; +173.7891387939453, 0.13909488916397095; +173.88912963867188, 0.13954192399978638; +173.98912048339844, 0.1407042145729065; +174.089111328125, 0.14232099056243896; +174.18910217285156, 0.14482438564300537; +174.2891082763672, 0.1479312777519226; +174.38909912109375, 0.15144050121307373; +174.4890899658203, 0.15464425086975098; +174.58908081054688, 0.15737861394882202; +174.68907165527344, 0.159434974193573; +174.7890625, 0.1609325408935547; +174.88906860351562, 0.16359984874725342; +174.9890594482422, 0.16830861568450928; +175.08905029296875, 0.17481297254562378; +175.1890411376953, 0.18326938152313232; +175.28903198242188, 0.1932978630065918; +175.3890380859375, 0.20369142293930054; +175.48902893066406, 0.21239370107650757; +175.58901977539062, 0.2196282148361206; +175.6890106201172, 0.22552162408828735; +175.78900146484375, 0.229567289352417; +175.88900756835938, 0.232011079788208; +175.98899841308594, 0.23443251848220825; +176.0889892578125, 0.23790448904037476; +176.18898010253906, 0.24047493934631348; +176.28897094726562, 0.24193525314331055; +176.38897705078125, 0.24309009313583374; +176.4889678955078, 0.24404376745224; +176.58895874023438, 0.2443864941596985; +176.68894958496094, 0.24433434009552002; +176.7889404296875, 0.24604052305221558; +176.88893127441406, 0.250011682510376; +176.9889373779297, 0.2550855278968811; +177.08892822265625, 0.2611875534057617; +177.1889190673828, 0.26758015155792236; +177.28890991210938, 0.27357786893844604; +177.38890075683594, 0.27760863304138184; +177.48890686035156, 0.27976930141448975; +177.58889770507812, 0.2828165888786316; +177.6888885498047, 0.28777867555618286; +177.78887939453125, 0.2938956022262573; +177.8888702392578, 0.2999529242515564; +177.98887634277344, 0.3064349293708801; +178.0888671875, 0.3138035535812378; +178.18885803222656, 0.3200024366378784; +178.28884887695312, 0.32483041286468506; +178.3888397216797, 0.33052265644073486; +178.4888458251953, 0.338628888130188; +178.58883666992188, 0.34802407026290894; +178.68882751464844, 0.3573298454284668; +178.788818359375, 0.3668442368507385; +178.88880920410156, 0.3763064742088318; +178.98880004882812, 0.38536638021469116; +179.08880615234375, 0.394381582736969; +179.1887969970703, 0.4042908549308777; +179.28878784179688, 0.4163980484008789; +179.38877868652344, 0.4307776689529419; +179.48876953125, 0.44690072536468506; +179.58877563476562, 0.46309083700180054; +179.6887664794922, 0.4778057336807251; +179.78875732421875, 0.49098581075668335; +179.8887481689453, 0.5022063851356506; +179.98873901367188, 0.5118250846862793; +180.0887451171875, 0.5192086100578308; +180.18873596191406, 0.5240589380264282; +180.28872680664062, 0.5262568593025208; +180.3887176513672, 0.526130199432373; +180.48870849609375, 0.5249753594398499; +180.5886993408203, 0.5225390195846558; +180.68870544433594, 0.518307089805603; +180.7886962890625, 0.5106404423713684; +180.88868713378906, 0.4994049668312073; +180.98867797851562, 0.4847422242164612; +181.0886688232422, 0.46610087156295776; +181.1886749267578, 0.4436895251274109; +181.28866577148438, 0.41831284761428833; +181.38865661621094, 0.3914982080459595; +181.4886474609375, 0.364549458026886; +181.58863830566406, 0.33802539110183716; +181.6886444091797, 0.3119856119155884; +181.78863525390625, 0.2859830856323242; +181.8886260986328, 0.26025623083114624; +181.98861694335938, 0.23660808801651; +182.08860778808594, 0.2160966396331787; +182.18861389160156, 0.19916892051696777; +182.28860473632812, 0.18474459648132324; +182.3885955810547, 0.17270445823669434; +182.48858642578125, 0.16240030527114868; +182.5885772705078, 0.15366077423095703; +182.68856811523438, 0.14618784189224243; +182.78857421875, 0.14007091522216797; +182.88856506347656, 0.13596564531326294; +182.98855590820312, 0.13300031423568726; +183.0885467529297, 0.13054907321929932; +183.18853759765625, 0.1281946897506714; +183.28854370117188, 0.12648850679397583; +183.38853454589844, 0.12649595737457275; +183.488525390625, 0.12742727994918823; +183.58851623535156, 0.128231942653656; +183.68850708007812, 0.12947618961334229; +183.78851318359375, 0.13125687837600708; +183.8885040283203, 0.13349205255508423; +183.98849487304688, 0.1339167356491089; +184.08848571777344, 0.133611261844635; +184.1884765625, 0.13436377048492432; +184.28848266601562, 0.13612955808639526; +184.3884735107422, 0.13872981071472168; +184.48846435546875, 0.14165043830871582; +184.5884552001953, 0.14515966176986694; +184.68844604492188, 0.1484006643295288; +184.78843688964844, 0.1506507396697998; +184.88844299316406, 0.15252083539962769; +184.98843383789062, 0.1543089747428894; +185.0884246826172, 0.15628337860107422; +185.18841552734375, 0.15910714864730835; +185.2884063720703, 0.16196072101593018; +185.38841247558594, 0.16495585441589355; +185.4884033203125, 0.1688748598098755; +185.58839416503906, 0.17436593770980835; +185.68838500976562, 0.17992407083511353; +185.7883758544922, 0.18306821584701538; +185.8883819580078, 0.18525123596191406; +185.98837280273438, 0.1886114478111267; +186.08836364746094, 0.19226223230361938; +186.1883544921875, 0.19381195306777954; +186.28834533691406, 0.19331276416778564; +186.3883514404297, 0.1936778426170349; +186.48834228515625, 0.1948624849319458; +186.5883331298828, 0.1947954297065735; +186.68832397460938, 0.19413232803344727; +186.78831481933594, 0.19538402557373047; +186.8883056640625, 0.19891560077667236; +186.98831176757812, 0.20151585340499878; +187.0883026123047, 0.2019330859184265; +187.18829345703125, 0.20162761211395264; +187.2882843017578, 0.20202994346618652; +187.38827514648438, 0.2028048038482666; +187.48828125, 0.2039000391960144; +187.58827209472656, 0.20626187324523926; +187.68826293945312, 0.21061301231384277; +187.7882537841797, 0.21535158157348633; +187.88824462890625, 0.21946430206298828; +187.98825073242188, 0.22174417972564697; +188.08824157714844, 0.2216547727584839; +188.188232421875, 0.21952390670776367; +188.28822326660156, 0.21582096815109253; +188.38821411132812, 0.21275877952575684; +188.48822021484375, 0.20969659090042114; +188.5882110595703, 0.20767003297805786; +188.68820190429688, 0.20773708820343018; +188.78819274902344, 0.20968914031982422; +188.88818359375, 0.21289288997650146; +188.98817443847656, 0.21548569202423096; +189.0881805419922, 0.2175942063331604; +189.18817138671875, 0.2186894416809082; +189.2881622314453, 0.2186596393585205; +189.38815307617188, 0.21900981664657593; +189.48814392089844, 0.22007524967193604; +189.58815002441406, 0.22271275520324707; +189.68814086914062, 0.22690743207931519; +189.7881317138672, 0.23227930068969727; +189.88812255859375, 0.23654848337173462; +189.9881134033203, 0.23830682039260864; +190.08811950683594, 0.238664448261261; +190.1881103515625, 0.23797154426574707; +190.28810119628906, 0.23620575666427612; +190.38809204101562, 0.23452937602996826; +190.4880828857422, 0.2343207597732544; +190.5880889892578, 0.23537129163742065; +190.68807983398438, 0.23603439331054688; +190.78807067871094, 0.23651123046875; +190.8880615234375, 0.2371072769165039; +190.98805236816406, 0.23574382066726685; +191.08804321289062, 0.23331493139266968; +191.18804931640625, 0.23170560598373413; +191.2880401611328, 0.23122131824493408; +191.38803100585938, 0.23059546947479248; +191.48802185058594, 0.23018568754196167; +191.5880126953125, 0.23240596055984497; +191.68801879882812, 0.23574382066726685; +191.7880096435547, 0.23759156465530396; +191.88800048828125, 0.23819506168365479; +191.9879913330078, 0.23908168077468872; +192.08798217773438, 0.23981928825378418; +192.18798828125, 0.2385154366493225; +192.28797912597656, 0.2362951636314392; +192.38796997070312, 0.23575127124786377; +192.4879608154297, 0.23744255304336548; +192.58795166015625, 0.24054944515228271; +192.68795776367188, 0.24449080228805542; +192.78794860839844, 0.24995207786560059; +192.887939453125, 0.2560839056968689; +192.98793029785156, 0.26100873947143555; +193.08792114257812, 0.26451796293258667; +193.1879119873047, 0.26704370975494385; +193.2879180908203, 0.2687424421310425; +193.38790893554688, 0.26917457580566406; +193.48789978027344, 0.27061253786087036; +193.587890625, 0.2743154764175415; +193.68788146972656, 0.27873367071151733; +193.7878875732422, 0.28195977210998535; +193.88787841796875, 0.28487294912338257; +193.9878692626953, 0.2892836928367615; +194.08786010742188, 0.29315799474716187; +194.18785095214844, 0.2946779131889343; +194.28785705566406, 0.29397010803222656; +194.38784790039062, 0.2930685877799988; +194.4878387451172, 0.29318034648895264; +194.58782958984375, 0.294610857963562; +194.6878204345703, 0.2972334623336792; +194.78782653808594, 0.3002956509590149; +194.8878173828125, 0.3036782145500183; +194.98780822753906, 0.3070831298828125; +195.08779907226562, 0.30982494354248047; +195.1877899169922, 0.31132251024246216; +195.28778076171875, 0.31232088804244995; +195.38778686523438, 0.3139376640319824; +195.48777770996094, 0.31737983226776123; +195.5877685546875, 0.32151490449905396; +195.68775939941406, 0.3243684768676758; +195.78775024414062, 0.32500922679901123; +195.88775634765625, 0.32357126474380493; +195.9877471923828, 0.3215372562408447; +196.08773803710938, 0.3188326954841614; +196.18772888183594, 0.31672418117523193; +196.2877197265625, 0.31737983226776123; +196.38772583007812, 0.3201290965080261; +196.4877166748047, 0.32342225313186646; +196.58770751953125, 0.3253668546676636; +196.6876983642578, 0.32597780227661133; +196.78768920898438, 0.32641738653182983; +196.8876953125, 0.3261864185333252; +196.98768615722656, 0.3271028399467468; +197.08767700195312, 0.32933056354522705; +197.1876678466797, 0.33386051654815674; +197.28765869140625, 0.34042447805404663; +197.3876495361328, 0.3468245267868042; +197.48765563964844, 0.3523901104927063; +197.587646484375, 0.3558024764060974; +197.68763732910156, 0.35865604877471924; +197.78762817382812, 0.360734760761261; +197.8876190185547, 0.36144256591796875; +197.9876251220703, 0.36184489727020264; +198.08761596679688, 0.36266446113586426; +198.18760681152344, 0.3657490015029907; +198.28759765625, 0.3714039921760559; +198.38758850097656, 0.3781914710998535; +198.4875946044922, 0.38445740938186646; +198.58758544921875, 0.38874149322509766; +198.6875762939453, 0.3913119435310364; +198.78756713867188, 0.3919526934623718; +198.88755798339844, 0.3906339406967163; +198.987548828125, 0.38918107748031616; +199.08755493164062, 0.3894194960594177; +199.1875457763672, 0.3918111324310303; +199.28753662109375, 0.3953129053115845; +199.3875274658203, 0.3984421491622925; +199.48751831054688, 0.4005134105682373; +199.5875244140625, 0.4012584686279297; +199.68751525878906, 0.401519238948822; +199.78750610351562, 0.40205568075180054; +199.8874969482422, 0.40247291326522827; +199.98748779296875, 0.4033893346786499; +200.08749389648438, 0.4057586193084717; +200.18748474121094, 0.40940195322036743; +200.2874755859375, 0.41316449642181396; +200.38746643066406, 0.4156753420829773; +200.48745727539062, 0.4179924726486206; +200.58746337890625, 0.42019039392471313; +200.6874542236328, 0.4216507077217102; +200.78744506835938, 0.42313337326049805; +200.88743591308594, 0.42457878589630127; +200.9874267578125, 0.425681471824646; +201.08741760253906, 0.4261881113052368; +201.1874237060547, 0.42694807052612305; +201.28741455078125, 0.4279389977455139; +201.3874053955078, 0.42798370122909546; +201.48739624023438, 0.4274100065231323; +201.58738708496094, 0.4279613494873047; +201.68739318847656, 0.42986124753952026; +201.78738403320312, 0.4319623112678528; +201.8873748779297, 0.4339441657066345; +201.98736572265625, 0.4355013370513916; +202.0873565673828, 0.43652206659317017; +202.18736267089844, 0.4367828369140625; +202.287353515625, 0.43598562479019165; +202.38734436035156, 0.4339665174484253; +202.48733520507812, 0.4313960671424866; +202.5873260498047, 0.42942166328430176; +202.6873321533203, 0.428810715675354; +202.78732299804688, 0.4293769598007202; +202.88731384277344, 0.43170154094696045; +202.9873046875, 0.43576210737228394; +203.08729553222656, 0.43968111276626587; +203.18728637695312, 0.4427880048751831; +203.28729248046875, 0.4451870918273926; +203.3872833251953, 0.4473179578781128; +203.48727416992188, 0.4485324025154114; +203.58726501464844, 0.44840574264526367; +203.687255859375, 0.4480704665184021; +203.78726196289062, 0.44774264097213745; +203.8872528076172, 0.447981059551239; +203.98724365234375, 0.44886767864227295; +204.0872344970703, 0.450916588306427; +204.18722534179688, 0.45430660247802734; +204.2872314453125, 0.45849382877349854; +204.38722229003906, 0.46284496784210205; +204.48721313476562, 0.46674907207489014; +204.5872039794922, 0.47059357166290283; +204.68719482421875, 0.473998486995697; +204.78720092773438, 0.4773437976837158; +204.88719177246094, 0.48122555017471313; +204.9871826171875, 0.48660486936569214; +205.08717346191406, 0.49283355474472046; +205.18716430664062, 0.49883872270584106; +205.2871551513672, 0.5057528614997864; +205.3871612548828, 0.5141794681549072; +205.48715209960938, 0.5222931504249573; +205.58714294433594, 0.5275756120681763; +205.6871337890625, 0.5303025245666504; +205.78712463378906, 0.5317628383636475; +205.8871307373047, 0.5313828587532043; +205.98712158203125, 0.5278140306472778; +206.0871124267578, 0.5234479904174805; +206.18710327148438, 0.5218982696533203; +206.28709411621094, 0.5242079496383667; +206.38710021972656, 0.5281418561935425; +206.48709106445312, 0.5305707454681396; +206.5870819091797, 0.5317404866218567; +206.68707275390625, 0.5324780941009521; +206.7870635986328, 0.5322173237800598; +206.88706970214844, 0.5296692252159119; +206.987060546875, 0.5255192518234253; +207.08705139160156, 0.5224645137786865; +207.18704223632812, 0.5218014121055603; +207.2870330810547, 0.5225241184234619; +207.38702392578125, 0.5238130688667297; +207.48703002929688, 0.5249679088592529; +207.58702087402344, 0.5251839756965637; +207.68701171875, 0.5241930484771729; +207.78700256347656, 0.5227029323577881; +207.88699340820312, 0.5215555429458618; +207.98699951171875, 0.5207434296607971; +208.0869903564453, 0.520557165145874; +208.18698120117188, 0.5216896533966064; +208.28697204589844, 0.5248188972473145; +208.386962890625, 0.5281120538711548; +208.48696899414062, 0.5297735333442688; +208.5869598388672, 0.5303993821144104; +208.68695068359375, 0.5314275622367859; +208.7869415283203, 0.5338266491889954; +208.88693237304688, 0.5365535616874695; +208.9869384765625, 0.5402937531471252; +209.08692932128906, 0.5458146333694458; +209.18692016601562, 0.5517378449440002; +209.2869110107422, 0.5560964345932007; +209.38690185546875, 0.5574896931648254; +209.4868927001953, 0.5570128560066223; +209.58689880371094, 0.5557537078857422; +209.6868896484375, 0.5548149347305298; +209.78688049316406, 0.5543157458305359; +209.88687133789062, 0.5535036325454712; +209.9868621826172, 0.5529746413230896; +210.0868682861328, 0.5535110831260681; +210.18685913085938, 0.5547702312469482; +210.28684997558594, 0.5545318126678467; +210.3868408203125, 0.551857054233551; +210.48683166503906, 0.549018383026123; +210.5868377685547, 0.5471035838127136; +210.68682861328125, 0.5448609590530396; +210.7868194580078, 0.5412474274635315; +210.88681030273438, 0.5376860499382019; +210.98680114746094, 0.5364418029785156; +211.08680725097656, 0.5373284220695496; +211.18679809570312, 0.5387440323829651; +211.2867889404297, 0.5400478839874268; +211.38677978515625, 0.5412846803665161; +211.4867706298828, 0.5418211221694946; +211.58676147460938, 0.540614128112793; +211.686767578125, 0.5380362272262573; +211.78675842285156, 0.5364418029785156; +211.88674926757812, 0.5370154976844788; +211.9867401123047, 0.5391016602516174; +212.08673095703125, 0.5423203110694885; +212.18673706054688, 0.5480721592903137; +212.28672790527344, 0.555865466594696; +212.38671875, 0.5627349019050598; +212.48670959472656, 0.5661472678184509; +212.58670043945312, 0.5678758025169373; +212.68670654296875, 0.5700960755348206; +212.7866973876953, 0.5719363689422607; +212.88668823242188, 0.57239830493927; +212.98667907714844, 0.5732923746109009; +213.086669921875, 0.576607882976532; +213.18667602539062, 0.581011176109314; +213.2866668701172, 0.584334135055542; +213.38665771484375, 0.5866512656211853; +213.4866485595703, 0.5878210067749023; +213.58663940429688, 0.5872994661331177; +213.68663024902344, 0.5859136581420898; +213.78663635253906, 0.585511326789856; +213.88662719726562, 0.5862191319465637; +213.9866180419922, 0.5869418382644653; +214.08660888671875, 0.5886033177375793; +214.1865997314453, 0.5913823843002319; +214.28660583496094, 0.5942508578300476; +214.3865966796875, 0.5955919623374939; +214.48658752441406, 0.596068799495697; +214.58657836914062, 0.5971863865852356; +214.6865692138672, 0.5993321537971497; +214.7865753173828, 0.6023421883583069; +214.88656616210938, 0.6047338247299194; +214.98655700683594, 0.606052577495575; +215.0865478515625, 0.6064549088478088; +215.18653869628906, 0.6059631705284119; +215.28652954101562, 0.6053522229194641; +215.38653564453125, 0.6052330136299133; +215.4865264892578, 0.606924295425415; +215.58651733398438, 0.61006098985672; +215.68650817871094, 0.6136372685432434; +215.7864990234375, 0.6168857216835022; +215.88650512695312, 0.6187781691551208; +215.9864959716797, 0.6188452243804932; +216.08648681640625, 0.6172731518745422; +216.1864776611328, 0.6151124835014343; +216.28646850585938, 0.6142780184745789; +216.386474609375, 0.6150901317596436; +216.48646545410156, 0.6166771054267883; +216.58645629882812, 0.6181448698043823; +216.6864471435547, 0.6195977330207825; +216.78643798828125, 0.622279942035675; +216.88644409179688, 0.6252452731132507; +216.98643493652344, 0.6280466914176941; +217.08642578125, 0.6306096911430359; +217.18641662597656, 0.6331875920295715; +217.28640747070312, 0.6356462836265564; +217.3863983154297, 0.6372630596160889; +217.4864044189453, 0.6380155682563782; +217.58639526367188, 0.6390661001205444; +217.68638610839844, 0.6412789225578308; +217.786376953125, 0.644199550151825; +217.88636779785156, 0.6465762853622437; +217.9863739013672, 0.6479695439338684; +218.08636474609375, 0.6493926048278809; +218.1863555908203, 0.6508976221084595; +218.28634643554688, 0.6526410579681396; +218.38633728027344, 0.6557181477546692; +218.48634338378906, 0.6597414612770081; +218.58633422851562, 0.6639957427978516; +218.6863250732422, 0.6671100854873657; +218.78631591796875, 0.6681680679321289; +218.8863067626953, 0.6661266088485718; +218.98631286621094, 0.6612613797187805; +219.0863037109375, 0.6564483046531677; +219.18629455566406, 0.6529465317726135; +219.28628540039062, 0.6508678197860718; +219.3862762451172, 0.6500855088233948; +219.48626708984375, 0.6517618894577026; +219.58627319335938, 0.6553903222084045; +219.68626403808594, 0.6596297025680542; +219.7862548828125, 0.6630048155784607; +219.88624572753906, 0.6652027368545532; +219.98623657226562, 0.6675794720649719; +220.08624267578125, 0.6705000996589661; +220.1862335205078, 0.673338770866394; +220.28622436523438, 0.6745830178260803; +220.38621520996094, 0.6751939654350281; +220.4862060546875, 0.6759986281394958; +220.58621215820312, 0.6759092211723328; +220.6862030029297, 0.6746724247932434; +220.78619384765625, 0.6739050149917603; +220.8861846923828, 0.6751716136932373; +220.98617553710938, 0.6774589419364929; +221.086181640625, 0.6797760725021362; +221.18617248535156, 0.6821602582931519; +221.28616333007812, 0.6841272115707397; +221.3861541748047, 0.6854534149169922; +221.48614501953125, 0.6867498159408569; +221.5861358642578, 0.6886646151542664; +221.68614196777344, 0.6916150450706482; +221.7861328125, 0.6958618760108948; +221.88612365722656, 0.700823962688446; +221.98611450195312, 0.7045343518257141; +222.0861053466797, 0.7059648633003235; +222.1861114501953, 0.7067620754241943; +222.28610229492188, 0.7081031799316406; +222.38609313964844, 0.7085353136062622; +222.486083984375, 0.7082968950271606; +222.58607482910156, 0.7087960839271545; +222.6860809326172, 0.7096827030181885; +222.78607177734375, 0.7087886333465576; +222.8860626220703, 0.7048249244689941; +222.98605346679688, 0.7001161575317383; +223.08604431152344, 0.6962418556213379; +223.18605041503906, 0.69427490234375; +223.28604125976562, 0.6947219371795654; +223.3860321044922, 0.6965920329093933; +223.48602294921875, 0.6986185908317566; +223.5860137939453, 0.699654221534729; +223.68600463867188, 0.6995648145675659; +223.7860107421875, 0.6975159049034119; +223.88600158691406, 0.6952211260795593; +223.98599243164062, 0.6950199604034424; +224.0859832763672, 0.6978660821914673; +224.18597412109375, 0.7023364305496216; +224.28598022460938, 0.7067099213600159; +224.38597106933594, 0.7108971476554871; +224.4859619140625, 0.7130801677703857; +224.58595275878906, 0.7132217288017273; +224.68594360351562, 0.7124394178390503; +224.78594970703125, 0.7126778364181519; +224.8859405517578, 0.7148087024688721; +224.98593139648438, 0.7178857922554016; +225.08592224121094, 0.7209107279777527; +225.1859130859375, 0.7222294807434082; +225.28591918945312, 0.7224231958389282; +225.3859100341797, 0.7220134139060974; +225.48590087890625, 0.7214397192001343; +225.5858917236328, 0.7208883762359619; +225.68588256835938, 0.721268355846405; +225.78587341308594, 0.7231980562210083; +225.88587951660156, 0.7253661751747131; +225.98587036132812, 0.7270276546478271; +226.0858612060547, 0.727921724319458; +226.18585205078125, 0.7286891341209412; +226.2858428955078, 0.7296279072761536; +226.38584899902344, 0.7309392094612122; +226.48583984375, 0.7325112819671631; +226.58583068847656, 0.7338672876358032; +226.68582153320312, 0.7355734705924988; +226.7858123779297, 0.7384419441223145; +226.8858184814453, 0.7423758506774902; +226.98580932617188, 0.7465481758117676; +227.08580017089844, 0.7504075765609741; +227.185791015625, 0.7543638348579407; +227.28578186035156, 0.7580146193504333; +227.3857879638672, 0.7597729563713074; +227.48577880859375, 0.7589459419250488; +227.5857696533203, 0.7561966776847839; +227.68576049804688, 0.7549002766609192; +227.78575134277344, 0.7570013403892517; +227.8857421875, 0.7611215114593506; +227.98574829101562, 0.765770673751831; +228.0857391357422, 0.77027827501297; +228.18572998046875, 0.7757321000099182; +228.2857208251953, 0.7801428437232971; +228.38571166992188, 0.781722366809845; +228.4857177734375, 0.7818788290023804; +228.58570861816406, 0.7837042212486267; +228.68569946289062, 0.7894188165664673; +228.7856903076172, 0.7973909378051758; +228.88568115234375, 0.8043274283409119; +228.98568725585938, 0.8089691400527954; +229.08567810058594, 0.8126646280288696; +229.1856689453125, 0.8164271712303162; +229.28565979003906, 0.8194148540496826; +229.38565063476562, 0.8216798305511475; +229.48565673828125, 0.8254647254943848; +229.5856475830078, 0.8319616317749023; +229.68563842773438, 0.8397772908210754; +229.78562927246094, 0.8475407958030701; +229.8856201171875, 0.8546784520149231; +229.98561096191406, 0.861242413520813; +230.0856170654297, 0.8667111396789551; +230.18560791015625, 0.8713230490684509; +230.2855987548828, 0.8751079440116882; +230.38558959960938, 0.8773952722549438; +230.48558044433594, 0.8780807256698608; +230.58558654785156, 0.8767992258071899; +230.68557739257812, 0.8744150400161743; +230.7855682373047, 0.8709803223609924; +230.88555908203125, 0.8662194013595581; +230.9855499267578, 0.8605346083641052; +231.08555603027344, 0.8544400334358215; +231.185546875, 0.8494183421134949; +231.28553771972656, 0.8464306592941284; +231.38552856445312, 0.8447468280792236; +231.4855194091797, 0.8439645171165466; +231.58551025390625, 0.8435174822807312; +231.68551635742188, 0.8445531129837036; +231.78550720214844, 0.8473023772239685; +231.885498046875, 0.8496120572090149; +231.98548889160156, 0.8510127663612366; +232.08547973632812, 0.852636992931366; +232.18548583984375, 0.8564963936805725; +232.2854766845703, 0.8623525500297546; +232.38546752929688, 0.8684322237968445; +232.48545837402344, 0.8754506707191467; +232.58544921875, 0.8833706378936768; +232.68545532226562, 0.8912980556488037; +232.7854461669922, 0.8982792496681213; +232.88543701171875, 0.905066728591919; +232.9854278564453, 0.913664698600769; +233.08541870117188, 0.924527645111084; +233.1854248046875, 0.9372755885124207; +233.28541564941406, 0.9513199329376221; +233.38540649414062, 0.964827835559845; +233.4853973388672, 0.9750574827194214; +233.58538818359375, 0.9801164269447327; +233.6853790283203, 0.9804219007492065; +233.78538513183594, 0.9788423776626587; +233.8853759765625, 0.9768381714820862; +233.98536682128906, 0.9744614362716675; +234.08535766601562, 0.9713545441627502; +234.1853485107422, 0.9673163294792175; +234.2853546142578, 0.9624287486076355; +234.38534545898438, 0.9569302201271057; +234.48533630371094, 0.9501427412033081; +234.5853271484375, 0.9430944919586182; +234.68531799316406, 0.937923789024353; +234.7853240966797, 0.936068594455719; +234.88531494140625, 0.9366199374198914; +234.9853057861328, 0.9361803531646729; +235.08529663085938, 0.9347721934318542; +235.18528747558594, 0.9334981441497803; +235.28529357910156, 0.9315460920333862; +235.38528442382812, 0.9267181158065796; +235.4852752685547, 0.9178891777992249; +235.58526611328125, 0.9073615074157715; +235.6852569580078, 0.8970722556114197; +235.78524780273438, 0.8868500590324402; +235.88525390625, 0.8766129612922668; +235.98524475097656, 0.8685961365699768; +236.08523559570312, 0.8643269538879395; +236.1852264404297, 0.8626878261566162; +236.28521728515625, 0.8616149425506592; +236.38522338867188, 0.8605495095252991; +236.48521423339844, 0.8608698844909668; +236.585205078125, 0.8620768785476685; +236.68519592285156, 0.8630231022834778; +236.78518676757812, 0.8628442883491516; +236.88519287109375, 0.86202472448349; +236.9851837158203, 0.8610039949417114; +237.08517456054688, 0.8591935038566589; +237.18516540527344, 0.8568614721298218; +237.28515625, 0.8547753095626831; +237.38516235351562, 0.8541867136955261; +237.4851531982422, 0.8547455072402954; +237.58514404296875, 0.8550956845283508; +237.6851348876953, 0.8549317717552185; +237.78512573242188, 0.8543655276298523; +237.88511657714844, 0.8540526032447815; +237.98512268066406, 0.8537322282791138; +238.08511352539062, 0.8533746004104614; +238.1851043701172, 0.8545219898223877; +238.28509521484375, 0.857815146446228; +238.3850860595703, 0.8628740906715393; +238.48509216308594, 0.868968665599823; +238.5850830078125, 0.8754655718803406; +238.68507385253906, 0.8816719055175781; +238.78506469726562, 0.8868947625160217; +238.8850555419922, 0.8901581168174744; +238.9850616455078, 0.8910074830055237; +239.08505249023438, 0.8902326226234436; +239.18504333496094, 0.8895471692085266; +239.2850341796875, 0.8900314569473267; +239.38502502441406, 0.890292227268219; +239.4850311279297, 0.8888170123100281; +239.58502197265625, 0.8863359689712524; +239.6850128173828, 0.8828416466712952; +239.78500366210938, 0.877968966960907; +239.88499450683594, 0.8726269006729126; +239.9849853515625, 0.869162380695343; +240.08499145507812, 0.8689165115356445; +240.1849822998047, 0.8701756596565247; +240.28497314453125, 0.871710479259491; +240.3849639892578, 0.8733198046684265; +240.48495483398438, 0.8741691708564758; +240.5849609375, 0.8733496069908142; +240.68495178222656, 0.8711889386177063; +240.78494262695312, 0.8691474795341492; +240.8849334716797, 0.8678212761878967; +240.98492431640625, 0.8668750524520874; +241.08493041992188, 0.8654594421386719; +241.18492126464844, 0.8637309074401855; +241.284912109375, 0.8626207709312439; +241.38490295410156, 0.8628517389297485; +241.48489379882812, 0.8641108870506287; +241.58489990234375, 0.865742564201355; +241.6848907470703, 0.8687004446983337; +241.78488159179688, 0.872686505317688; +241.88487243652344, 0.8772015571594238; +241.98486328125, 0.8815228939056396; +242.08485412597656, 0.8864179253578186; +242.1848602294922, 0.8925125002861023; +242.28485107421875, 0.8978843688964844; +242.3848419189453, 0.9015873074531555; +242.48483276367188, 0.9026750922203064; +242.58482360839844, 0.9022802114486694; +242.68482971191406, 0.9014531970024109; +242.78482055664062, 0.9009987115859985; +242.8848114013672, 0.9018480777740479; +242.98480224609375, 0.9036213159561157; +243.0847930908203, 0.9060055017471313; +243.18479919433594, 0.9081587195396423; +243.2847900390625, 0.9101182222366333; +243.38478088378906, 0.9120181202888489; +243.48477172851562, 0.913769006729126; +243.5847625732422, 0.91572105884552; +243.6847686767578, 0.9178817272186279; +243.78475952148438, 0.9197965264320374; +243.88475036621094, 0.9206235408782959; +243.9847412109375, 0.9198412299156189; +244.08473205566406, 0.918559730052948; +244.18472290039062, 0.9179264307022095; +244.28472900390625, 0.9185746312141418; +244.3847198486328, 0.9202510118484497; +244.48471069335938, 0.9223893284797668; +244.58470153808594, 0.9249374270439148; +244.6846923828125, 0.9274780750274658; +244.78469848632812, 0.9287521243095398; +244.8846893310547, 0.9279772639274597; +244.98468017578125, 0.9259581565856934; +245.0846710205078, 0.9242594242095947; +245.18466186523438, 0.9232908487319946; +245.28466796875, 0.9229183197021484; +245.38465881347656, 0.9233653545379639; +245.48464965820312, 0.9248703718185425; +245.5846405029297, 0.9263679385185242; +245.68463134765625, 0.9266510605812073; +245.78463745117188, 0.9248331189155579; +245.88462829589844, 0.9207874536514282; +245.984619140625, 0.9149909019470215; +246.08460998535156, 0.9093955159187317; +246.18460083007812, 0.9068399667739868; +246.2845916748047, 0.9073242545127869; +246.3845977783203, 0.9104087948799133; +246.48458862304688, 0.9146556258201599; +246.58457946777344, 0.9202733635902405; +246.6845703125, 0.9271427989006042; +246.78456115722656, 0.9337738156318665; +246.8845672607422, 0.9394735097885132; +246.98455810546875, 0.9443536400794983; +247.0845489501953, 0.9497106075286865; +247.18453979492188, 0.9550079703330994; +247.28453063964844, 0.9590163826942444; +247.38453674316406, 0.96140056848526; +247.48452758789062, 0.9633824229240417; +247.5845184326172, 0.9651407599449158; +247.68450927734375, 0.9662583470344543; +247.7845001220703, 0.9673386812210083; +247.88450622558594, 0.9683221578598022; +247.9844970703125, 0.9693428874015808; +248.08448791503906, 0.9698718786239624; +248.18447875976562, 0.9700879454612732; +248.2844696044922, 0.9702667593955994; +248.38446044921875, 0.9697526693344116; +248.48446655273438, 0.9689405560493469; +248.58445739746094, 0.9679123759269714; +248.6844482421875, 0.9669214487075806; +248.78443908691406, 0.9660720825195312; +248.88442993164062, 0.9652078151702881; +248.98443603515625, 0.9652674198150635; +249.0844268798828, 0.9671077132225037; +249.18441772460938, 0.9706318378448486; +249.28440856933594, 0.9744688868522644; +249.3843994140625, 0.9771063923835754; +249.48440551757812, 0.9795650839805603; +249.5843963623047, 0.9821504354476929; +249.68438720703125, 0.9843260049819946; +249.7843780517578, 0.9858235716819763; +249.88436889648438, 0.9874328970909119; +249.98435974121094, 0.9896457195281982; +250.08436584472656, 0.9909197688102722; +250.18435668945312, 0.9904429316520691; +250.2843475341797, 0.9883493185043335; +250.38433837890625, 0.9855553507804871; +250.4843292236328, 0.9822025895118713; +250.58433532714844, 0.9788796305656433; +250.684326171875, 0.9760335087776184; +250.78431701660156, 0.9741410613059998; +250.88430786132812, 0.9732022881507874; +250.9842987060547, 0.9715929627418518; +251.0843048095703, 0.970005989074707; +251.18429565429688, 0.9695291519165039; +251.28428649902344, 0.9701922535896301; +251.38427734375, 0.9706467390060425; +251.48426818847656, 0.970497727394104; +251.5842742919922, 0.9717196226119995; +251.68426513671875, 0.9729191660881042; +251.7842559814453, 0.9735077619552612; +251.88424682617188, 0.9754598140716553; +251.98423767089844, 0.9812042117118835; +252.084228515625, 0.9900778532028198; +252.18423461914062, 0.9977445006370544; +252.2842254638672, 1.0033100843429565; +252.38421630859375, 1.0066479444503784; +252.4842071533203, 1.0082497596740723; +252.58419799804688, 1.0081305503845215; +252.6842041015625, 1.0063722133636475; +252.78419494628906, 1.005627155303955; +252.88418579101562, 1.0081827640533447; +252.9841766357422, 1.0144710540771484; +253.08416748046875, 1.021347999572754; +253.18417358398438, 1.0265111923217773; +253.28416442871094, 1.0305418968200684; +253.3841552734375, 1.0346696376800537; +253.48414611816406, 1.0381712913513184; +253.58413696289062, 1.0395795106887817; +253.68414306640625, 1.0400265455245972; +253.7841339111328, 1.0412261486053467; +253.88412475585938, 1.0436699390411377; +253.98411560058594, 1.0457038879394531; +254.0841064453125, 1.0463297367095947; +254.18409729003906, 1.0466724634170532; +254.2841033935547, 1.047581434249878; +254.38409423828125, 1.0479316711425781; +254.4840850830078, 1.0460093021392822; +254.58407592773438, 1.0428950786590576; +254.68406677246094, 1.0406970977783203; +254.78407287597656, 1.0401978492736816; +254.88406372070312, 1.0398850440979004; +254.9840545654297, 1.0406821966171265; +255.08404541015625, 1.0442286729812622; +255.1840362548828, 1.049600601196289; +255.28404235839844, 1.0545625686645508; +255.384033203125, 1.0575578212738037; +255.48402404785156, 1.05967378616333; +255.58401489257812, 1.061342716217041; +255.6840057373047, 1.063011646270752; +255.7840118408203, 1.065068006515503; +255.88400268554688, 1.067623496055603; +255.98399353027344, 1.0708421468734741; +256.083984375, 1.0754168033599854; +256.1839904785156, 1.0806248188018799; +256.2839660644531, 1.0856389999389648; +256.38397216796875, 1.089930534362793; +256.48394775390625, 1.0934844017028809; +256.5839538574219, 1.0967254638671875; +256.6839599609375, 1.0997354984283447; +256.783935546875, 1.1032968759536743; +256.8839416503906, 1.1063963174819946; +256.9839172363281, 1.1090487241744995; +257.08392333984375, 1.1126174926757812; +257.1839294433594, 1.1173560619354248; +257.2839050292969, 1.121826410293579; +257.3839111328125, 1.1241883039474487; +257.48388671875, 1.1251494884490967; +257.5838928222656, 1.1249333620071411; +257.68389892578125, 1.1234581470489502; +257.78387451171875, 1.1209323406219482; +257.8838806152344, 1.117832899093628; +257.9838562011719, 1.1149570941925049; +258.0838623046875, 1.1127963066101074; +258.1838684082031, 1.1128857135772705; +258.2838439941406, 1.1152102947235107; +258.38385009765625, 1.1183172464370728; +258.48382568359375, 1.120276689529419; +258.5838317871094, 1.1212303638458252; +258.683837890625, 1.122206449508667; +258.7838134765625, 1.1232048273086548; +258.8838195800781, 1.1231154203414917; +258.9837951660156, 1.1225714683532715; +259.08380126953125, 1.1247843503952026; +259.18377685546875, 1.130603313446045; +259.2837829589844, 1.1377110481262207; +259.3837890625, 1.1436492204666138; +259.4837646484375, 1.148782730102539; +259.5837707519531, 1.153215765953064; +259.6837463378906, 1.156456708908081; +259.78375244140625, 1.1589601039886475; +259.8837585449219, 1.1629313230514526; +259.9837341308594, 1.1686160564422607; +260.083740234375, 1.174710750579834; +260.1837158203125, 1.1812001466751099; +260.2837219238281, 1.1879056692123413; +260.38372802734375, 1.1935160160064697; +260.48370361328125, 1.1960715055465698; +260.5837097167969, 1.1967196464538574; +260.6836853027344, 1.1978447437286377; +260.78369140625, 1.2011899948120117; +260.8836975097656, 1.204930305480957; +260.9836730957031, 1.2075231075286865; +261.08367919921875, 1.2087225914001465; +261.18365478515625, 1.2097880840301514; +261.2836608886719, 1.211807131767273; +261.3836669921875, 1.212902307510376; +261.483642578125, 1.2141615152359009; +261.5836486816406, 1.2171268463134766; +261.6836242675781, 1.2220889329910278; +261.78363037109375, 1.2271404266357422; +261.8836364746094, 1.2307093143463135; +261.9836120605469, 1.2340471744537354; +262.0836181640625, 1.236841082572937; +262.18359375, 1.2387409210205078; +262.2835998535156, 1.2401118278503418; +262.38360595703125, 1.241341233253479; +262.48358154296875, 1.2423694133758545; +262.5835876464844, 1.2442320585250854; +262.6835632324219, 1.2477264404296875; +262.7835693359375, 1.2520700693130493; +262.8835754394531, 1.256279706954956; +262.9835510253906, 1.2605488300323486; +263.08355712890625, 1.2656078338623047; +263.18353271484375, 1.270383596420288; +263.2835388183594, 1.2750029563903809; +263.3835144042969, 1.279510498046875; +263.4835205078125, 1.283414602279663; +263.5835266113281, 1.2876689434051514; +263.6835021972656, 1.292325496673584; +263.78350830078125, 1.2966766357421875; +263.88348388671875, 1.2990683317184448; +263.9834899902344, 1.299828290939331; +264.08349609375, 1.3012290000915527; +264.1834716796875, 1.30226469039917; +264.2834777832031, 1.3027042150497437; +264.3834533691406, 1.3037919998168945; +264.48345947265625, 1.3063325881958008; +264.5834655761719, 1.3102517127990723; +264.6834411621094, 1.3139917850494385; +264.783447265625, 1.318387746810913; +264.8834228515625, 1.3235583305358887; +264.9834289550781, 1.3282074928283691; +265.08343505859375, 1.3325140476226807; +265.18341064453125, 1.336902379989624; +265.2834167480469, 1.34157395362854; +265.3833923339844, 1.3462752103805542; +265.4833984375, 1.3524293899536133; +265.5834045410156, 1.3606324195861816; +265.6833801269531, 1.369476318359375; +265.78338623046875, 1.3769418001174927; +265.88336181640625, 1.383557915687561; +265.9833679199219, 1.3902485370635986; +266.0833740234375, 1.393906831741333; +266.183349609375, 1.3930797576904297; +266.2833557128906, 1.3890490531921387; +266.3833312988281, 1.3852715492248535; +266.48333740234375, 1.3836920261383057; +266.5833435058594, 1.3820827007293701; +266.6833190917969, 1.3809576034545898; +266.7833251953125, 1.3809651136398315; +266.88330078125, 1.3821274042129517; +266.9833068847656, 1.3824925422668457; +267.08331298828125, 1.37995183467865; +267.18328857421875, 1.3763084411621094; +267.2832946777344, 1.3742520809173584; +267.3832702636719, 1.3753399848937988; +267.4832763671875, 1.378774642944336; +267.583251953125, 1.3831183910369873; +267.6832580566406, 1.3871266841888428; +267.78326416015625, 1.3910307884216309; +267.88323974609375, 1.3948231935501099; +267.9832458496094, 1.3982802629470825; +268.0832214355469, 1.4005005359649658; +268.1832275390625, 1.4010071754455566; +268.2832336425781, 1.400597333908081; +268.3832092285156, 1.4005303382873535; +268.48321533203125, 1.399502158164978; +268.58319091796875, 1.3963431119918823; +268.6831970214844, 1.3934224843978882; +268.783203125, 1.3949050903320312; +268.8831787109375, 1.401171088218689; +268.9831848144531, 1.4082417488098145; +269.0831604003906, 1.4150440692901611; +269.18316650390625, 1.4223382472991943; +269.2831726074219, 1.4289841651916504; +269.3831481933594, 1.4323368072509766; +269.483154296875, 1.4330670833587646; +269.5831298828125, 1.4341771602630615; +269.6831359863281, 1.4365613460540771; +269.78314208984375, 1.4397501945495605; +269.88311767578125, 1.4434680938720703; +269.9831237792969, 1.4476702213287354; +270.0830993652344, 1.4525353908538818; +270.18310546875, 1.45740807056427; +270.2831115722656, 1.4612748622894287; +270.3830871582031, 1.4636367559432983; +270.48309326171875, 1.4651119709014893; +270.58306884765625, 1.4672801494598389; +270.6830749511719, 1.4704093933105469; +270.7830810546875, 1.4736950397491455; +270.883056640625, 1.477144718170166; +270.9830627441406, 1.480892300605774; +271.0830383300781, 1.4853328466415405; +271.18304443359375, 1.4899895191192627; +271.2830505371094, 1.4935507774353027; +271.3830261230469, 1.4957934617996216; +271.4830322265625, 1.497633695602417; +271.5830078125, 1.498706579208374; +271.6830139160156, 1.4992952346801758; +271.7829895019531, 1.5005767345428467; +271.88299560546875, 1.503288745880127; +271.9830017089844, 1.5076398849487305; +272.0829772949219, 1.5117228031158447; +272.1829833984375, 1.516796588897705; +272.282958984375, 1.5222654342651367; +272.3829650878906, 1.526437759399414; +272.48297119140625, 1.5288517475128174; +272.58294677734375, 1.529313564300537; +272.6829528808594, 1.5291943550109863; +272.7829284667969, 1.5282855033874512; +272.8829345703125, 1.5277936458587646; +272.9829406738281, 1.5286505222320557; +273.0829162597656, 1.5308783054351807; +273.18292236328125, 1.5334486961364746; +273.28289794921875, 1.5355870723724365; +273.3829040527344, 1.5368610620498657; +273.48291015625, 1.5369281768798828; +273.5828857421875, 1.5364587306976318; +273.6828918457031, 1.536145806312561; +273.7828674316406, 1.5373454093933105; +273.88287353515625, 1.5406534671783447; +273.9828796386719, 1.5457048416137695; +274.0828552246094, 1.5507638454437256; +274.182861328125, 1.554146409034729; +274.2828369140625, 1.5556365251541138; +274.3828430175781, 1.5560612678527832; +274.48284912109375, 1.5553683042526245; +274.58282470703125, 1.5538781881332397; +274.6828308105469, 1.553051233291626; +274.7828063964844, 1.5536024570465088; +274.8828125, 1.554936170578003; +274.9828186035156, 1.5563592910766602; +275.0827941894531, 1.558326244354248; +275.18280029296875, 1.560211181640625; +275.28277587890625, 1.560702919960022; +275.3827819824219, 1.5596747398376465; +275.4827575683594, 1.5582070350646973; +275.582763671875, 1.5566871166229248; +275.6827697753906, 1.5543550252914429; +275.7827453613281, 1.5517473220825195; +275.88275146484375, 1.550823450088501; +275.98272705078125, 1.5518516302108765; +276.0827331542969, 1.5537216663360596; +276.1827392578125, 1.5546530485153198; +276.28271484375, 1.5549510717391968; +276.3827209472656, 1.5558526515960693; +276.4826965332031, 1.5566647052764893; +276.58270263671875, 1.5571043491363525; +276.6827087402344, 1.5569255352020264; +276.7826843261719, 1.5575363636016846; +276.8826904296875, 1.559823751449585; +276.982666015625, 1.5626251697540283; +277.0826721191406, 1.5648901462554932; +277.18267822265625, 1.5652105808258057; +277.28265380859375, 1.564621925354004; +277.3826599121094, 1.563943862915039; +277.4826354980469, 1.5626475811004639; +277.5826416015625, 1.5600323677062988; +277.6826477050781, 1.5568509101867676; +277.7826232910156, 1.5552117824554443; +277.88262939453125, 1.5548467636108398; +277.98260498046875, 1.5535205602645874; +278.0826110839844, 1.5503690242767334; +278.1826171875, 1.546621322631836; +278.2825927734375, 1.5427544116973877; +278.3825988769531, 1.5383586883544922; +278.4825744628906, 1.5333741903305054; +278.58258056640625, 1.5299842357635498; +278.6825866699219, 1.5291273593902588; +278.7825622558594, 1.5300140380859375; +278.882568359375, 1.5309677124023438; +278.9825439453125, 1.5306248664855957; +279.0825500488281, 1.529179573059082; +279.18255615234375, 1.5273616313934326; +279.28253173828125, 1.52510404586792; +279.3825378417969, 1.5217363834381104; +279.4825134277344, 1.5169157981872559; +279.58251953125, 1.5114545822143555; +279.6824951171875, 1.5060827732086182; +279.7825012207031, 1.4994516372680664; +279.88250732421875, 1.4922096729278564; +279.98248291015625, 1.4847590923309326; +280.0824890136719, 1.4775171279907227; +280.1824645996094, 1.4704018831253052; +280.282470703125, 1.4629215002059937; +280.3824768066406, 1.4561936855316162; +280.4824523925781, 1.450531244277954; +280.58245849609375, 1.4471113681793213; +280.68243408203125, 1.445598840713501; +280.7824401855469, 1.4445855617523193; +280.8824462890625, 1.4436841011047363; +280.982421875, 1.4420300722122192; +281.0824279785156, 1.4397501945495605; +281.1824035644531, 1.4368221759796143; +281.28240966796875, 1.4340803623199463; +281.3824157714844, 1.4324337244033813; +281.4823913574219, 1.431494951248169; +281.5823974609375, 1.4310628175735474; +281.682373046875, 1.4305859804153442; +281.7823791503906, 1.4299750328063965; +281.88238525390625, 1.4299452304840088; +281.98236083984375, 1.4303028583526611; +282.0823669433594, 1.4305486679077148; +282.1823425292969, 1.4306753873825073; +282.2823486328125, 1.4305263757705688; +282.3823547363281, 1.4297142028808594; +282.4823303222656, 1.4287457466125488; +282.58233642578125, 1.4288276433944702; +282.68231201171875, 1.4303326606750488; +282.7823181152344, 1.4324114322662354; +282.88232421875, 1.4344751834869385; +282.9822998046875, 1.4362633228302002; +283.0823059082031, 1.4370977878570557; +283.1822814941406, 1.4364495277404785; +283.28228759765625, 1.4351904392242432; +283.3822937011719, 1.4342665672302246; +283.4822692871094, 1.434430480003357; +283.582275390625, 1.4359726905822754; +283.6822509765625, 1.4378279447555542; +283.7822570800781, 1.4395713806152344; +283.8822326660156, 1.4403164386749268; +283.98223876953125, 1.4398469924926758; +284.0822448730469, 1.4375299215316772; +284.1822204589844, 1.4336333274841309; +284.2822265625, 1.4298186302185059; +284.3822021484375, 1.42727792263031; +284.4822082519531, 1.4262869358062744; +284.58221435546875, 1.4265999794006348; +284.68218994140625, 1.4280750751495361; +284.7821960449219, 1.4313831329345703; +284.8821716308594, 1.4376864433288574; +284.982177734375, 1.4473646879196167; +285.0821838378906, 1.4601423740386963; +285.1821594238281, 1.4748945236206055; +285.28216552734375, 1.4912559986114502; +285.38214111328125, 1.508392333984375; +285.4821472167969, 1.5257225036621094; +285.5821533203125, 1.5424861907958984; +285.68212890625, 1.557551383972168; +285.7821350097656, 1.570388674736023; +285.8821105957031, 1.5805587768554688; +285.98211669921875, 1.5884711742401123; +286.0821228027344, 1.5927181243896484; +286.1820983886719, 1.5930607318878174; +286.2821044921875, 1.5909075736999512; +286.382080078125, 1.5867799520492554; +286.4820861816406, 1.5804543495178223; +286.58209228515625, 1.5711114406585693; +286.68206787109375, 1.5603601932525635; +286.7820739746094, 1.5494823455810547; +286.8820495605469, 1.5393644571304321; +286.9820556640625, 1.5312284231185913; +287.0820617675781, 1.52568519115448; +287.1820373535156, 1.522280216217041; +287.28204345703125, 1.519150972366333; +287.38201904296875, 1.5164687633514404; +287.4820251464844, 1.5145093202590942; +287.58203125, 1.5128999948501587; +287.6820068359375, 1.5114619731903076; +287.7820129394531, 1.51100754737854; +287.8819885253906, 1.5138163566589355; +287.98199462890625, 1.5196353197097778; +288.08197021484375, 1.529201865196228; +288.1819763183594, 1.5448778867721558; +288.281982421875, 1.5676170587539673; +288.3819580078125, 1.5966743230819702; +288.4819641113281, 1.6304552555084229; +288.5819396972656, 1.6697571277618408; +288.68194580078125, 1.7144157886505127; +288.7819519042969, 1.7626807689666748; +288.8819274902344, 1.8147528171539307; +288.98193359375, 1.8695368766784668; +289.0819091796875, 1.9243285655975342; +289.1819152832031, 1.974552869796753; +289.28192138671875, 2.0171329975128174; +289.38189697265625, 2.051025629043579; +289.4819030761719, 2.073913812637329; +289.5818786621094, 2.0857975482940674; +289.681884765625, 2.087287664413452; +289.7818908691406, 2.081371784210205; +289.8818664550781, 2.070821762084961; +289.98187255859375, 2.055995225906372; +290.08184814453125, 2.0378901958465576; +290.1818542480469, 2.0180270671844482; +290.2818603515625, 2.0008609294891357; +290.3818359375, 1.9890815019607544; +290.4818420410156, 1.9850730895996094; +290.5818176269531, 1.992255449295044; +290.68182373046875, 2.0114035606384277; +290.7818298339844, 2.041295051574707; +290.8818054199219, 2.0772292613983154; +290.9818115234375, 2.1140427589416504; +291.081787109375, 2.1448209285736084; +291.1817932128906, 2.1628811359405518; +291.28179931640625, 2.1671204566955566; +291.38177490234375, 2.1581873893737793; +291.4817810058594, 2.1384880542755127; +291.5817565917969, 2.109229564666748; +291.6817626953125, 2.071939468383789; +291.78173828125, 2.0293593406677246; +291.8817443847656, 1.9837989807128906; +291.98175048828125, 1.939043402671814; +292.08172607421875, 1.896202564239502; +292.1817321777344, 1.8562450408935547; +292.2817077636719, 1.820385456085205; +292.3817138671875, 1.7905831336975098; +292.4817199707031, 1.7680301666259766; +292.5816955566406, 1.7506778240203857; +292.68170166015625, 1.7372667789459229; +292.78167724609375, 1.7269775867462158; +292.8816833496094, 1.7200559377670288; +292.981689453125, 1.715846300125122; +293.0816650390625, 1.7126202583312988; +293.1816711425781, 1.711167335510254; +293.2816467285156, 1.7116963863372803; +293.38165283203125, 1.715071439743042; +293.4816589355469, 1.7208009958267212; +293.5816345214844, 1.7272382974624634; +293.681640625, 1.7337276935577393; +293.7816162109375, 1.7389132976531982; +293.8816223144531, 1.743406057357788; +293.98162841796875, 1.7469227313995361; +294.08160400390625, 1.7485469579696655; +294.1816101074219, 1.7489045858383179; +294.2815856933594, 1.7489045858383179; +294.381591796875, 1.7483681440353394; +294.4815979003906, 1.745887041091919; +294.5815734863281, 1.7419159412384033; +294.68157958984375, 1.7400012016296387; +294.78155517578125, 1.7417073249816895; +294.8815612792969, 1.7447173595428467; +294.9815673828125, 1.746833324432373; +295.08154296875, 1.7480030059814453; +295.1815490722656, 1.7488747835159302; +295.2815246582031, 1.7479584217071533; +295.38153076171875, 1.7433762550354004; +295.4815368652344, 1.7360597848892212; +295.5815124511719, 1.7280950546264648; +295.6815185546875, 1.7201528549194336; +295.781494140625, 1.7109737396240234; +295.8815002441406, 1.6992241144180298; +295.9814758300781, 1.6858577728271484; +296.08148193359375, 1.6715898513793945; +296.1814880371094, 1.6568154096603394; +296.2814636230469, 1.6429200172424316; +296.3814697265625, 1.631446123123169; +296.4814453125, 1.6236827373504639; +296.5814514160156, 1.6185417175292969; +296.68145751953125, 1.6156659126281738; +296.78143310546875, 1.6141161918640137; +296.8814392089844, 1.612648367881775; +296.9814147949219, 1.6108006238937378; +297.0814208984375, 1.6087963581085205; +297.1814270019531, 1.6081780195236206; +297.2814025878906, 1.6081855297088623; +297.38140869140625, 1.60860276222229; +297.48138427734375, 1.609928846359253; +297.5813903808594, 1.612670660018921; +297.681396484375, 1.6179084777832031; +297.7813720703125, 1.624680995941162; +297.8813781738281, 1.6320794820785522; +297.9813537597656, 1.6389265060424805; +298.08135986328125, 1.643836498260498; +298.1813659667969, 1.6467273235321045; +298.2813415527344, 1.6462578773498535; +298.38134765625, 1.641780138015747; +298.4813232421875, 1.6338155269622803; +298.5813293457031, 1.6244277954101562; +298.68133544921875, 1.6153603792190552; +298.78131103515625, 1.6068146228790283; +298.8813171386719, 1.5984699726104736; +298.9812927246094, 1.5916675329208374; +299.081298828125, 1.5860050916671753; +299.1813049316406, 1.5803053379058838; +299.2812805175781, 1.5734508037567139; +299.38128662109375, 1.5659704208374023; +299.48126220703125, 1.5593245029449463; +299.5812683105469, 1.5533417463302612; +299.6812744140625, 1.5494153499603271; +299.78125, 1.5471205711364746; +299.8812561035156, 1.5452728271484375; +299.9812316894531, 1.5415921211242676; +300.08123779296875, 1.5363246202468872; +300.18121337890625, 1.5304312705993652; +300.2812194824219, 1.5238523483276367; +300.3812255859375, 1.51728093624115; +300.481201171875, 1.5120208263397217; +300.5812072753906, 1.5096515417099; +300.6811828613281, 1.5081539154052734; +300.78118896484375, 1.5058964490890503; +300.8811950683594, 1.5025138854980469; +300.9811706542969, 1.4982893466949463; +301.0811767578125, 1.4931261539459229; +301.18115234375, 1.486443042755127; +301.2811584472656, 1.4794617891311646; +301.38116455078125, 1.4732927083969116; +301.48114013671875, 1.4685914516448975; +301.5811462402344, 1.4652385711669922; +301.6811218261719, 1.4624073505401611; +301.7811279296875, 1.460261583328247; +301.8811340332031, 1.4586597681045532; +301.9811096191406, 1.45740807056427; +302.08111572265625, 1.4554411172866821; +302.18109130859375, 1.4515668153762817; +302.2810974121094, 1.4472827911376953; +302.381103515625, 1.4430433511734009; +302.4810791015625, 1.4388785362243652; +302.5810852050781, 1.43351411819458; +302.6810607910156, 1.4273971319198608; +302.78106689453125, 1.4226585626602173; +302.8810729980469, 1.4188215732574463; +302.9810485839844, 1.415036678314209; +303.0810546875, 1.41046941280365; +303.1810302734375, 1.4063193798065186; +303.2810363769531, 1.40260910987854; +303.38104248046875, 1.3987421989440918; +303.48101806640625, 1.3950765132904053; +303.5810241699219, 1.3922899961471558; +303.6809997558594, 1.3905689716339111; +303.781005859375, 1.3884902000427246; +303.8810119628906, 1.3858973979949951; +303.9809875488281, 1.3827309608459473; +304.08099365234375, 1.3790130615234375; +304.18096923828125, 1.3744606971740723; +304.2809753417969, 1.3687759637832642; +304.3809509277344, 1.3629794120788574; +304.48095703125, 1.3580173254013062; +304.5809631347656, 1.353934407234192; +304.6809387207031, 1.3495609760284424; +304.78094482421875, 1.3443976640701294; +304.88092041015625, 1.3405531644821167; +304.9809265136719, 1.339063048362732; +305.0809326171875, 1.3379826545715332; +305.180908203125, 1.3357698917388916; +305.2809143066406, 1.3328566551208496; +305.3808898925781, 1.3285726308822632; +305.48089599609375, 1.3210549354553223; +305.5809020996094, 1.3108477592468262; +305.6808776855469, 1.3026148080825806; +305.7808837890625, 1.2978389263153076; +305.880859375, 1.2940540313720703; +305.9808654785156, 1.2911930084228516; +306.08087158203125, 1.2896583080291748; +306.18084716796875, 1.2887194156646729; +306.2808532714844, 1.2852996587753296; +306.3808288574219, 1.2790336608886719; +306.4808349609375, 1.2731105089187622; +306.5808410644531, 1.2681931257247925; +306.6808166503906, 1.2648775577545166; +306.78082275390625, 1.2626200914382935; +306.88079833984375, 1.261383295059204; +306.9808044433594, 1.26082444190979; +307.080810546875, 1.2591630220413208; +307.1807861328125, 1.2558176517486572; +307.2807922363281, 1.2499988079071045; +307.3807678222656, 1.24277925491333; +307.48077392578125, 1.2354850769042969; +307.5807800292969, 1.22910737991333; +307.6807556152344, 1.2243316173553467; +307.78076171875, 1.2204349040985107; +307.8807373046875, 1.2174993753433228; +307.9807434082031, 1.2155399322509766; +308.08074951171875, 1.2137293815612793; +308.18072509765625, 1.2110843658447266; +308.2807312011719, 1.2074857950210571; +308.3807067871094, 1.2039989233016968; +308.480712890625, 1.1992826461791992; +308.5806884765625, 1.191429853439331; +308.6806945800781, 1.1809096336364746; +308.78070068359375, 1.170732021331787; +308.88067626953125, 1.1623575687408447; +308.9806823730469, 1.155763864517212; +309.0806579589844, 1.1514947414398193; +309.1806640625, 1.1497437953948975; +309.2806701660156, 1.1490583419799805; +309.3806457519531, 1.1476948261260986; +309.48065185546875, 1.1448264122009277; +309.58062744140625, 1.141406536102295; +309.6806335449219, 1.138627529144287; +309.7806396484375, 1.136481761932373; +309.880615234375, 1.1352226734161377; +309.9806213378906, 1.1338367462158203; +310.0805969238281, 1.132495641708374; +310.18060302734375, 1.130692720413208; +310.2806091308594, 1.1274069547653198; +310.3805847167969, 1.1241211891174316; +310.4805908203125, 1.1223032474517822; +310.58056640625, 1.12210214138031; +310.6805725097656, 1.1223628520965576; +310.78057861328125, 1.1231377124786377; +310.88055419921875, 1.1257678270339966; +310.9805603027344, 1.1283681392669678; +311.0805358886719, 1.1280550956726074; +311.1805419921875, 1.1250004768371582; +311.2805480957031, 1.1221394538879395; +311.3805236816406, 1.1198148727416992; +311.48052978515625, 1.116163969039917; +311.58050537109375, 1.1115596294403076; +311.6805114746094, 1.1077970266342163; +311.780517578125, 1.1054575443267822; +311.8804931640625, 1.1033415794372559; +311.9804992675781, 1.1011958122253418; +312.0804748535156, 1.0992884635925293; +312.18048095703125, 1.0976567268371582; +312.28045654296875, 1.0963380336761475; +312.3804626464844, 1.0955333709716797; +312.48046875, 1.0943636894226074; +312.5804443359375, 1.0922998189926147; +312.6804504394531, 1.0900944471359253; +312.7804260253906, 1.088649034500122; +312.88043212890625, 1.088686227798462; +312.9804382324219, 1.0889842510223389; +313.0804138183594, 1.0889172554016113; +313.180419921875, 1.0885670185089111; +313.2803955078125, 1.088663935661316; +313.3804016113281, 1.0885745286941528; +313.48040771484375, 1.087188720703125; +313.58038330078125, 1.0848567485809326; +313.6803894042969, 1.0825693607330322; +313.7803649902344, 1.0808110237121582; +313.88037109375, 1.0790302753448486; +313.9803771972656, 1.0778754949569702; +314.0803527832031, 1.0766983032226562; +314.18035888671875, 1.0752975940704346; +314.28033447265625, 1.0728611946105957; +314.3803405761719, 1.0687932968139648; +314.4803466796875, 1.0635032653808594; +314.580322265625, 1.0575876235961914; +314.6803283691406, 1.0530352592468262; +314.7803039550781, 1.0504275560379028; +314.88031005859375, 1.0499358177185059; +314.9803161621094, 1.0521783828735352; +315.0802917480469, 1.055724859237671; +315.1802978515625, 1.0598227977752686; +315.2802734375, 1.0638163089752197; +315.3802795410156, 1.0667071342468262; +315.48028564453125, 1.067809820175171; +315.58026123046875, 1.065887451171875; +315.6802673339844, 1.0642856359481812; +315.7802429199219, 1.064002513885498; +315.8802490234375, 1.0642260313034058; +315.9802551269531, 1.0640323162078857; +316.0802307128906, 1.0629892349243164; +316.18023681640625, 1.0626167058944702; +316.28021240234375, 1.0607093572616577; +316.3802185058594, 1.0566041469573975; +316.4801940917969, 1.0511949062347412; +316.5802001953125, 1.0465681552886963; +316.6802062988281, 1.0444447994232178; +316.7801818847656, 1.0444819927215576; +316.88018798828125, 1.045823097229004; +316.98016357421875, 1.0493323802947998; +317.0801696777344, 1.0568723678588867; +317.18017578125, 1.070648431777954; +317.2801513671875, 1.0926276445388794; +317.3801574707031, 1.1247992515563965; +317.4801330566406, 1.1722445487976074; +317.58013916015625, 1.238964557647705; +317.6801452636719, 1.3276338577270508; +317.7801208496094, 1.4391467571258545; +317.880126953125, 1.5730857849121094; +317.9801025390625, 1.726813554763794; +318.0801086425781, 1.8928275108337402; +318.18011474609375, 2.061091423034668; +318.28009033203125, 2.220548629760742; +318.3800964355469, 2.3620948791503906; +318.4800720214844, 2.47641658782959; +318.580078125, 2.5557055473327637; +318.6800842285156, 2.5959386825561523; +318.7800598144531, 2.599000930786133; +318.88006591796875, 2.5708823204040527; +318.98004150390625, 2.5162100791931152; +319.0800476074219, 2.4405570030212402; +319.1800537109375, 2.3515076637268066; +319.280029296875, 2.2578611373901367; +319.3800354003906, 2.164475679397583; +319.4800109863281, 2.07283353805542; +319.58001708984375, 1.9847228527069092; +319.6800231933594, 1.9033998250961304; +319.7799987792969, 1.8314049243927002; +319.8800048828125, 1.768842339515686; +319.97998046875, 1.7144157886505127; +320.0799865722656, 1.6669631004333496; +320.17999267578125, 1.626305341720581; +320.27996826171875, 1.5911386013031006; +320.3799743652344, 1.5597790479660034; +320.4799499511719, 1.5316829681396484; +320.5799560546875, 1.5077441930770874; +320.679931640625, 1.4887750148773193; +320.7799377441406, 1.4739632606506348; +320.87994384765625, 1.4632195234298706; +320.97991943359375, 1.4561936855316162; +321.0799255371094, 1.4511868953704834; +321.1799011230469, 1.4458447694778442; +321.2799072265625, 1.438915729522705; +321.3799133300781, 1.4302804470062256; +321.4798889160156, 1.4204905033111572; +321.57989501953125, 1.4096274375915527; +321.67987060546875, 1.396775245666504; +321.7798767089844, 1.38188898563385; +321.8798828125, 1.3649835586547852; +321.9798583984375, 1.348473072052002; +322.0798645019531, 1.3328864574432373; +322.1798400878906, 1.3182387351989746; +322.27984619140625, 1.3052597045898438; +322.3798522949219, 1.2942999601364136; +322.4798278808594, 1.285858392715454; +322.579833984375, 1.2786686420440674; +322.6798095703125, 1.2725815773010254; +322.7798156738281, 1.2671053409576416; +322.87982177734375, 1.2620240449905396; +322.97979736328125, 1.2571215629577637; +323.0798034667969, 1.2526586055755615; +323.1797790527344, 1.247897744178772; +323.27978515625, 1.2421979904174805; +323.3797912597656, 1.2365057468414307; +323.4797668457031, 1.2318342924118042; +323.57977294921875, 1.2283623218536377; +323.67974853515625, 1.2254118919372559; +323.7797546386719, 1.2236088514328003; +323.8797607421875, 1.2236461639404297; +323.979736328125, 1.224823236465454; +324.0797424316406, 1.2251510620117188; +324.1797180175781, 1.224622130393982; +324.27972412109375, 1.224644422531128; +324.3797302246094, 1.2262239456176758; +324.4797058105469, 1.2285858392715454; +324.5797119140625, 1.2310519218444824; +324.6796875, 1.2342557907104492; +324.7796936035156, 1.2372881174087524; +324.8796691894531, 1.2379884719848633; +324.97967529296875, 1.235581874847412; +325.0796813964844, 1.2310669422149658; +325.1796569824219, 1.2252554893493652; +325.2796630859375, 1.218348741531372; +325.379638671875, 1.210458517074585; +325.4796447753906, 1.2030750513076782; +325.57965087890625, 1.1968388557434082; +325.67962646484375, 1.1922270059585571; +325.7796325683594, 1.1885390281677246; +325.8796081542969, 1.185983419418335; +325.9796142578125, 1.1850744485855103; +326.0796203613281, 1.1858493089675903; +326.1795959472656, 1.186288833618164; +326.27960205078125, 1.1846199035644531; +326.37957763671875, 1.1826008558273315; +326.4795837402344, 1.1815056800842285; +326.57958984375, 1.1807904243469238; +326.6795654296875, 1.1777430772781372; +326.7795715332031, 1.1722519397735596; +326.8795471191406, 1.1666789054870605; +326.97955322265625, 1.1624544858932495; +327.0795593261719, 1.1594817638397217; +327.1795349121094, 1.1576488018035889; +327.279541015625, 1.1579618453979492; +327.3795166015625, 1.1607780456542969; +327.4795227050781, 1.1638329029083252; +327.57952880859375, 1.1636465787887573; +327.67950439453125, 1.1592060327529907; +327.7795104980469, 1.153029441833496; +327.8794860839844, 1.1479482650756836; +327.9794921875, 1.1441409587860107; +328.0794982910156, 1.1416226625442505; +328.1794738769531, 1.1399388313293457; +328.27947998046875, 1.1392757892608643; +328.37945556640625, 1.13836669921875; +328.4794616699219, 1.1360571384429932; +328.5794372558594, 1.1333674192428589; +328.679443359375, 1.1301636695861816; +328.7794494628906, 1.1282787322998047; +328.8794250488281, 1.1276155710220337; +328.97943115234375, 1.1276602745056152; +329.07940673828125, 1.1278241872787476; +329.1794128417969, 1.127183437347412; +329.2794189453125, 1.1263861656188965; +329.37939453125, 1.1249110698699951; +329.4794006347656, 1.1234357357025146; +329.5793762207031, 1.1222511529922485; +329.67938232421875, 1.1214687824249268; +329.7793884277344, 1.121140956878662; +329.8793640136719, 1.1201947927474976; +329.9793701171875, 1.1183693408966064; +330.079345703125, 1.116417407989502; +330.1793518066406, 1.1165440082550049; +330.27935791015625, 1.1190102100372314; +330.37933349609375, 1.1216849088668823; +330.4793395996094, 1.124434232711792; +330.5793151855469, 1.1296123266220093; +330.6793212890625, 1.137681245803833; +330.7793273925781, 1.1455044746398926; +330.8793029785156, 1.15106999874115; +330.97930908203125, 1.1569410562515259; +331.07928466796875, 1.1653826236724854; +331.1792907714844, 1.1734888553619385; +331.279296875, 1.177564263343811; +331.3792724609375, 1.177474856376648; +331.4792785644531, 1.1753664016723633; +331.5792541503906, 1.171991229057312; +331.67926025390625, 1.16648530960083; +331.7792663574219, 1.1595338582992554; +331.8792419433594, 1.152940034866333; +331.979248046875, 1.1478811502456665; +332.0792236328125, 1.1437982320785522; +332.1792297363281, 1.1388137340545654; +332.27923583984375, 1.1329724788665771; +332.37921142578125, 1.1276453733444214; +332.4792175292969, 1.1231825351715088; +332.5791931152344, 1.1185779571533203; +332.67919921875, 1.1129155158996582; +332.7791748046875, 1.1077747344970703; +332.8791809082031, 1.1035054922103882; +332.97918701171875, 1.098893642425537; +333.07916259765625, 1.0934323072433472; +333.1791687011719, 1.0875091552734375; +333.2791442871094, 1.0825469493865967; +333.379150390625, 1.079067587852478; +333.4791564941406, 1.0788440704345703; +333.5791320800781, 1.0823979377746582; +333.67913818359375, 1.0889023542404175; +333.77911376953125, 1.0976344347000122; +333.8791198730469, 1.1076629161834717; +333.9791259765625, 1.1173710823059082; +334.0791015625, 1.1240392923355103; +334.1791076660156, 1.1273622512817383; +334.2790832519531, 1.12795090675354; +334.37908935546875, 1.1280626058578491; +334.4790954589844, 1.1291429996490479; +334.5790710449219, 1.1314749717712402; +334.6790771484375, 1.1353492736816406; +334.779052734375, 1.1416822671890259; +334.8790588378906, 1.15203857421875; +334.97906494140625, 1.164726972579956; +335.07904052734375, 1.1771843433380127; +335.1790466308594, 1.1883825063705444; +335.2790222167969, 1.19723379611969; +335.3790283203125, 1.2024641036987305; +335.4790344238281, 1.204840898513794; +335.5790100097656, 1.2060850858688354; +335.67901611328125, 1.2072398662567139; +335.77899169921875, 1.2074261903762817; +335.8789978027344, 1.2069493532180786; +335.97900390625, 1.2071504592895508; +336.0789794921875, 1.2069120407104492; +336.1789855957031, 1.2052208185195923; +336.2789611816406, 1.202404499053955; +336.37896728515625, 1.200728178024292; +336.4789733886719, 1.2014284133911133; +336.5789489746094, 1.2049078941345215; +336.678955078125, 1.2114570140838623; +336.7789306640625, 1.2218132019042969; +336.8789367675781, 1.2370795011520386; +336.9789123535156, 1.257397174835205; +337.07891845703125, 1.2825355529785156; +337.1789245605469, 1.3099759817123413; +337.2789001464844, 1.3385190963745117; +337.37890625, 1.36763596534729; +337.4788818359375, 1.396968960762024; +337.5788879394531, 1.4265328645706177; +337.67889404296875, 1.4554113149642944; +337.77886962890625, 1.4845430850982666; +337.8788757324219, 1.514628529548645; +337.9788513183594, 1.5452876091003418; +338.078857421875, 1.5755295753479004; +338.1788635253906, 1.604139804840088; +338.2788391113281, 1.631535530090332; +338.37884521484375, 1.657508373260498; +338.47882080078125, 1.6826093196868896; +338.5788269042969, 1.7077922821044922; +338.6788330078125, 1.73307204246521; +338.77880859375, 1.7557218074798584; +338.8788146972656, 1.7740130424499512; +338.9787902832031, 1.7870068550109863; +339.07879638671875, 1.7931461334228516; +339.1788024902344, 1.7908960580825806; +339.2787780761719, 1.7797350883483887; +339.3787841796875, 1.7628967761993408; +339.478759765625, 1.7417595386505127; +339.5787658691406, 1.7178654670715332; +339.67877197265625, 1.6917288303375244; +339.77874755859375, 1.6639530658721924; +339.8787536621094, 1.6364679336547852; +339.9787292480469, 1.6097500324249268; +340.0787353515625, 1.5847012996673584; +340.1787414550781, 1.5613734722137451; +340.2787170410156, 1.5409514904022217; +340.37872314453125, 1.5242993831634521; +340.47869873046875, 1.5105082988739014; +340.5787048339844, 1.4991834163665771; +340.6787109375, 1.4906227588653564; +340.7786865234375, 1.4846994876861572; +340.8786926269531, 1.4798790216445923; +340.9786682128906, 1.4753565788269043; +341.07867431640625, 1.4726370573043823; +341.17864990234375, 1.472346544265747; +341.2786560058594, 1.4727115631103516; +341.378662109375, 1.472391128540039; +341.4786376953125, 1.472212314605713; +341.5786437988281, 1.4731659889221191; +341.6786193847656, 1.4740973711013794; +341.77862548828125, 1.4741644859313965; +341.8786315917969, 1.4745519161224365; +341.9786071777344, 1.4755055904388428; +342.07861328125, 1.4766454696655273; +342.1785888671875, 1.477055311203003; +342.2785949707031, 1.4767497777938843; +342.37860107421875, 1.476585865020752; +342.47857666015625, 1.4760196208953857; +342.5785827636719, 1.4756321907043457; +342.6785583496094, 1.4754831790924072; +342.778564453125, 1.4757215976715088; +342.8785705566406, 1.4764740467071533; +342.9785461425781, 1.476868987083435; +343.07855224609375, 1.4780535697937012; +343.17852783203125, 1.4810562133789062; +343.2785339355469, 1.4867186546325684; +343.3785400390625, 1.494981288909912; +343.478515625, 1.5055909156799316; +343.5785217285156, 1.5191882848739624; +343.6784973144531, 1.5352070331573486; +343.77850341796875, 1.552753210067749; +343.8785095214844, 1.5712231397628784; +343.9784851074219, 1.5908032655715942; +344.0784912109375, 1.6100332736968994; +344.178466796875, 1.6256868839263916; +344.2784729003906, 1.6360208988189697; +344.37847900390625, 1.6418546438217163; +344.47845458984375, 1.6439483165740967; +344.5784606933594, 1.6416460275650024; +344.6784362792969, 1.6352758407592773; +344.7784423828125, 1.627929449081421; +344.87841796875, 1.6224980354309082; +344.9784240722656, 1.617148518562317; +345.07843017578125, 1.609116792678833; +345.17840576171875, 1.5982911586761475; +345.2784118652344, 1.5866756439208984; +345.3783874511719, 1.5758647918701172; +345.4783935546875, 1.5659406185150146; +345.5783996582031, 1.5579535961151123; +345.6783752441406, 1.5511959791183472; +345.77838134765625, 1.544691562652588; +345.87835693359375, 1.5376434326171875; +345.9783630371094, 1.5308783054351807; +346.078369140625, 1.5249178409576416; +346.1783447265625, 1.5197768211364746; +346.2783508300781, 1.5168263912200928; +346.3783264160156, 1.517392635345459; +346.47833251953125, 1.5228092670440674; +346.5783386230469, 1.5295445919036865; +346.6783142089844, 1.5330090522766113; +346.7783203125, 1.5331804752349854; +346.8782958984375, 1.5339925289154053; +346.9783020019531, 1.5362873077392578; +347.07830810546875, 1.536741852760315; +347.17828369140625, 1.5350282192230225; +347.2782897949219, 1.5346481800079346; +347.3782653808594, 1.536421537399292; +347.478271484375, 1.537837028503418; +347.5782775878906, 1.5380456447601318; +347.6782531738281, 1.53955078125; +347.77825927734375, 1.5435590744018555; +347.87823486328125, 1.549258828163147; +347.9782409667969, 1.5554354190826416; +348.0782470703125, 1.561775803565979; +348.17822265625, 1.5696063041687012; +348.2782287597656, 1.5788227319717407; +348.3782043457031, 1.5883817672729492; +348.47821044921875, 1.596197485923767; +348.5782165527344, 1.6019270420074463; +348.6781921386719, 1.6066133975982666; +348.7781982421875, 1.609332799911499; +348.878173828125, 1.6083717346191406; +348.9781799316406, 1.6038566827774048; +349.0781555175781, 1.598827600479126; +349.17816162109375, 1.5954822301864624; +349.2781677246094, 1.5924572944641113; +349.3781433105469, 1.5896111726760864; +349.4781494140625, 1.5884711742401123; +349.578125, 1.589827299118042; +349.6781311035156, 1.5925467014312744; +349.77813720703125, 1.596495509147644; +349.87811279296875, 1.604013204574585; +349.9781188964844, 1.6153156757354736; +350.0780944824219, 1.6286522150039673; +350.1781005859375, 1.6427860260009766; +350.2781066894531, 1.6573667526245117; +350.3780822753906, 1.6721934080123901; +350.47808837890625, 1.685239315032959; +350.57806396484375, 1.6957447528839111; +350.6780700683594, 1.7035081386566162; +350.778076171875, 1.7098784446716309; +350.8780517578125, 1.7159507274627686; +350.9780578613281, 1.720145344734192; +351.0780334472656, 1.7221794128417969; +351.17803955078125, 1.7220675945281982; +351.2780456542969, 1.7208009958267212; +351.3780212402344, 1.7175748348236084; +351.47802734375, 1.7116293907165527; +351.5780029296875, 1.7038434743881226; +351.6780090332031, 1.6951189041137695; +351.77801513671875, 1.686394214630127; +351.87799072265625, 1.678183674812317; +351.9779968261719, 1.670576572418213; +352.0779724121094, 1.6621202230453491; +352.177978515625, 1.6529858112335205; +352.2779846191406, 1.6441494226455688; +352.3779602050781, 1.636587142944336; +352.47796630859375, 1.6293599605560303; +352.57794189453125, 1.6213879585266113; +352.6779479980469, 1.6140490770339966; +352.7779541015625, 1.6084089279174805; +352.8779296875, 1.603633165359497; +352.9779357910156, 1.5974714756011963; +353.0779113769531, 1.5905723571777344; +353.17791748046875, 1.5854761600494385; +353.27789306640625, 1.5823841094970703; +353.3778991699219, 1.5785768032073975; +353.4779052734375, 1.5727579593658447; +353.577880859375, 1.5666037797927856; +353.6778869628906, 1.5623047351837158; +353.7778625488281, 1.5585869550704956; +353.87786865234375, 1.5535428524017334; +353.9778747558594, 1.5469119548797607; +354.0778503417969, 1.5387237071990967; +354.1778564453125, 1.5290603637695312; +354.27783203125, 1.516878604888916; +354.3778381347656, 1.5039145946502686; +354.47784423828125, 1.4925003051757812; +354.57781982421875, 1.4834330081939697; +354.6778259277344, 1.4770104885101318; +354.7778015136719, 1.4716088771820068; +354.8778076171875, 1.4665350914001465; +354.9778137207031, 1.460924744606018; +355.0777893066406, 1.4559998512268066; +355.17779541015625, 1.4526023864746094; +355.27777099609375, 1.4499872922897339; +355.3777770996094, 1.4490113258361816; +355.477783203125, 1.4515743255615234; +355.5777587890625, 1.4586597681045532; +355.6777648925781, 1.4684349298477173; +355.7777404785156, 1.4806538820266724; +355.87774658203125, 1.4968514442443848; +355.9777526855469, 1.5170202255249023; +356.0777282714844, 1.5380456447601318; +356.177734375, 1.5575363636016846; +356.2777099609375, 1.575387954711914; +356.3777160644531, 1.5914738178253174; +356.47772216796875, 1.603417158126831; +356.57769775390625, 1.6087367534637451; +356.6777038574219, 1.6083643436431885; +356.7776794433594, 1.6033947467803955; +356.877685546875, 1.593261957168579; +356.9776916503906, 1.5756487846374512; +357.0776672363281, 1.5525891780853271; +357.17767333984375, 1.5283300876617432; +357.27764892578125, 1.503981590270996; +357.3776550292969, 1.479506492614746; +357.4776306152344, 1.4562084674835205; +357.57763671875, 1.437455415725708; +357.6776428222656, 1.422964096069336; +357.7776184082031, 1.4108866453170776; +357.87762451171875, 1.400165319442749; +357.97760009765625, 1.3909413814544678; +358.0776062011719, 1.3832002878189087; +358.1776123046875, 1.377493143081665; +358.277587890625, 1.3745949268341064; +358.3775939941406, 1.3735666275024414; +358.4775695800781, 1.3728737831115723; +358.57757568359375, 1.3724416494369507; +358.6775817871094, 1.3727843761444092; +358.7775573730469, 1.3732686042785645; +358.8775634765625, 1.3739540576934814; +358.9775390625, 1.376338243484497; +359.0775451660156, 1.3824701309204102; +359.17755126953125, 1.391485333442688; +359.27752685546875, 1.4022216796875; +359.3775329589844, 1.4138221740722656; +359.4775085449219, 1.4253482818603516; +359.5775146484375, 1.4351680278778076; +359.6775207519531, 1.4432519674301147; +359.7774963378906, 1.450464129447937; +359.87750244140625, 1.4563649892807007; +359.97747802734375, 1.4603958129882812; +360.0774841308594, 1.4627128839492798; +360.177490234375, 1.4637112617492676; +360.2774658203125, 1.4621541500091553; +360.3774719238281, 1.4580339193344116; +360.4774475097656, 1.453682780265808; +360.57745361328125, 1.4495923519134521; +360.6774597167969, 1.4446749687194824; +360.7774353027344, 1.4403611421585083; +360.87744140625, 1.4401748180389404; +360.9774169921875, 1.4471113681793213; +361.0774230957031, 1.4614760875701904; +361.1773986816406, 1.4850423336029053; +361.27740478515625, 1.5204026699066162; +361.3774108886719, 1.5677958726882935; +361.4773864746094, 1.625530481338501; +361.577392578125, 1.6915053129196167; +361.6773681640625, 1.7619282007217407; +361.7773742675781, 1.8322243690490723; +361.87738037109375, 1.898646354675293; +361.97735595703125, 1.958116888999939; +362.0773620605469, 2.007521629333496; +362.1773376464844, 2.0421743392944336; +362.27734375, 2.0607709884643555; +362.3773498535156, 2.0635128021240234; +362.4773254394531, 2.0509510040283203; +362.57733154296875, 2.0247550010681152; +362.67730712890625, 1.9877254962921143; +362.7773132324219, 1.943737268447876; +362.8773193359375, 1.8951966762542725; +362.977294921875, 1.8445477485656738; +363.0773010253906, 1.7953962087631226; +363.1772766113281, 1.7507598400115967; +363.27728271484375, 1.7109811305999756; +363.3772888183594, 1.674182653427124; +363.4772644042969, 1.6411393880844116; +363.5772705078125, 1.6138255596160889; +363.67724609375, 1.5913770198822021; +363.7772521972656, 1.570478081703186; +363.87725830078125, 1.5494003295898438; +363.97723388671875, 1.530468463897705; +364.0772399902344, 1.5136077404022217; +364.1772155761719, 1.4976189136505127; +364.2772216796875, 1.4823675155639648; +364.3772277832031, 1.4698803424835205; +364.4772033691406, 1.4615952968597412; +364.57720947265625, 1.4561563730239868; +364.67718505859375, 1.452930212020874; +364.7771911621094, 1.4501585960388184; +364.877197265625, 1.4473497867584229; +364.9771728515625, 1.4438555240631104; +365.0771789550781, 1.4398024082183838; +365.1771545410156, 1.4365017414093018; +365.27716064453125, 1.4352426528930664; +365.37713623046875, 1.4385879039764404; +365.4771423339844, 1.4464259147644043; +365.5771484375, 1.4577879905700684; +365.6771240234375, 1.4718621969223022; +365.7771301269531, 1.4873594045639038; +365.8771057128906, 1.5024914741516113; +365.97711181640625, 1.5153735876083374; +366.0771179199219, 1.5270934104919434; +366.1770935058594, 1.53993821144104; +366.277099609375, 1.5542209148406982; +366.3770751953125, 1.5698299407958984; +366.4770812988281, 1.5869289636611938; +366.57708740234375, 1.6063302755355835; +366.67706298828125, 1.6268119812011719; +366.7770690917969, 1.645423412322998; +366.8770446777344, 1.6602426767349243; +366.97705078125, 1.6704201698303223; +367.0770568847656, 1.6768798828125; +367.1770324707031, 1.6800612211227417; +367.27703857421875, 1.6796290874481201; +367.37701416015625, 1.6745328903198242; +367.4770202636719, 1.6640424728393555; +367.5770263671875, 1.6499459743499756; +367.677001953125, 1.6344338655471802; +367.7770080566406, 1.6196296215057373; +367.8769836425781, 1.606114149093628; +367.97698974609375, 1.5936121940612793; +368.0769958496094, 1.582540512084961; +368.1769714355469, 1.573108196258545; +368.2769775390625, 1.5643014907836914; +368.376953125, 1.5527904033660889; +368.4769592285156, 1.5376136302947998; +368.57696533203125, 1.5214457511901855; +368.67694091796875, 1.507274866104126; +368.7769470214844, 1.4960169792175293; +368.8769226074219, 1.4868676662445068; +368.9769287109375, 1.4802887439727783; +369.0769348144531, 1.4763102531433105; +369.1769104003906, 1.474313497543335; +369.27691650390625, 1.473933458328247; +369.37689208984375, 1.4747679233551025; +369.4768981933594, 1.4765411615371704; +369.5768737792969, 1.4786124229431152; +369.6768798828125, 1.4812499284744263; +369.7768859863281, 1.4850050210952759; +369.8768615722656, 1.489661693572998; +369.97686767578125, 1.4939159154891968; +370.07684326171875, 1.497417688369751; +370.1768493652344, 1.5004053115844727; +370.27685546875, 1.5028343200683594; +370.3768310546875, 1.5044138431549072; +370.4768371582031, 1.5051215887069702; +370.5768127441406, 1.5046820640563965; +370.67681884765625, 1.5025883913040161; +370.7768249511719, 1.4993176460266113; +370.8768005371094, 1.4966726303100586; +370.976806640625, 1.496046781539917; +371.0767822265625, 1.4957040548324585; +371.1767883300781, 1.4955475330352783; +371.27679443359375, 1.4958157539367676; +371.37677001953125, 1.4981180429458618; +371.4767761230469, 1.5016124248504639; +371.5767517089844, 1.504749059677124; +371.6767578125, 1.5093610286712646; +371.7767639160156, 1.517459750175476; +371.8767395019531, 1.5315487384796143; +371.97674560546875, 1.552708387374878; +372.07672119140625, 1.5826821327209473; +372.1767272949219, 1.6223714351654053; +372.2767333984375, 1.6697943210601807; +372.376708984375, 1.7235875129699707; +372.4767150878906, 1.7832443714141846; +372.5766906738281, 1.8467381000518799; +372.67669677734375, 1.909509301185608; +372.7767028808594, 1.9673258066177368; +372.8766784667969, 2.0192861557006836; +372.9766845703125, 2.0632669925689697; +373.07666015625, 2.094961643218994; +373.1766662597656, 2.1103620529174805; +373.27667236328125, 2.1090731620788574; +373.37664794921875, 2.092592477798462; +373.4766540527344, 2.062283515930176; +373.5766296386719, 2.020753860473633; +373.6766357421875, 1.971021294593811; +373.776611328125, 1.9164607524871826; +373.8766174316406, 1.8594191074371338; +373.97662353515625, 1.801781415939331; +374.07659912109375, 1.74631929397583; +374.1766052246094, 1.6959681510925293; +374.2765808105469, 1.6529709100723267; +374.3765869140625, 1.6169772148132324; +374.4765930175781, 1.586653232574463; +374.5765686035156, 1.562781572341919; +374.67657470703125, 1.5468225479125977; +374.77655029296875, 1.537837028503418; +374.8765563964844, 1.53350830078125; +374.9765625, 1.534193754196167; +375.0765380859375, 1.5428215265274048; +375.1765441894531, 1.559697151184082; +375.2765197753906, 1.5809834003448486; +375.37652587890625, 1.6028881072998047; +375.4765319824219, 1.624889612197876; +375.5765075683594, 1.6464815139770508; +375.676513671875, 1.664578914642334; +375.7764892578125, 1.6755461692810059; +375.8764953613281, 1.6770809888839722; +375.97650146484375, 1.6694068908691406; +376.07647705078125, 1.6534254550933838; +376.1764831542969, 1.6309171915054321; +376.2764587402344, 1.6044974327087402; +376.37646484375, 1.5766769647598267; +376.4764709472656, 1.5503838062286377; +376.5764465332031, 1.528233289718628; +376.67645263671875, 1.510903239250183; +376.77642822265625, 1.497521996498108; +376.8764343261719, 1.4867112636566162; +376.9764404296875, 1.4782249927520752; +377.076416015625, 1.4718323945999146; +377.1764221191406, 1.4653728008270264; +377.2763977050781, 1.4574229717254639; +377.37640380859375, 1.4471113681793213; +377.47637939453125, 1.4344677925109863; +377.5763854980469, 1.4193803071975708; +377.6763916015625, 1.4021247625350952; +377.7763671875, 1.3844892978668213; +377.8763732910156, 1.3672560453414917; +377.9763488769531, 1.351691722869873; +378.07635498046875, 1.3386383056640625; +378.1763610839844, 1.328371524810791; +378.2763366699219, 1.3202800750732422; +378.3763427734375, 1.313328742980957; +378.476318359375, 1.3087987899780273; +378.5763244628906, 1.307837724685669; +378.67633056640625, 1.3108327388763428; +378.77630615234375, 1.3169124126434326; +378.8763122558594, 1.326143741607666; +378.9762878417969, 1.3396888971328735; +379.0762939453125, 1.3578310012817383; +379.1763000488281, 1.3797879219055176; +379.2762756347656, 1.4043599367141724; +379.37628173828125, 1.4312267303466797; +379.47625732421875, 1.45918869972229; +379.5762634277344, 1.4869942665100098; +379.67626953125, 1.5119836330413818; +379.7762451171875, 1.5312433242797852; +379.8762512207031, 1.5431791543960571; +379.9762268066406, 1.548595666885376; +380.07623291015625, 1.5500038862228394; +380.1762390136719, 1.5479252338409424; +380.2762145996094, 1.5430972576141357; +380.376220703125, 1.5373601913452148; +380.4761962890625, 1.5322790145874023; +380.5762023925781, 1.5283674001693726; +380.67620849609375, 1.5245153903961182; +380.77618408203125, 1.5200004577636719; +380.8761901855469, 1.515381097793579; +380.9761657714844, 1.5104637145996094; +381.076171875, 1.5037283897399902; +381.1761779785156, 1.4930367469787598; +381.2761535644531, 1.4792084693908691; +381.37615966796875, 1.4650970697402954; +381.47613525390625, 1.4518946409225464; +381.5761413574219, 1.4392733573913574; +381.6761169433594, 1.427978277206421; +381.776123046875, 1.4200955629348755; +381.8761291503906, 1.4164671897888184; +381.9761047363281, 1.415148377418518; +382.07611083984375, 1.4126970767974854; +382.17608642578125, 1.4078989028930664; +382.2760925292969, 1.4020651578903198; +382.3760986328125, 1.3961046934127808; +382.47607421875, 1.3887510299682617; +382.5760803222656, 1.3784468173980713; +382.6760559082031, 1.3670549392700195; +382.77606201171875, 1.356378197669983; +382.8760681152344, 1.347556710243225; +382.9760437011719, 1.3399646282196045; +383.0760498046875, 1.3346225023269653; +383.176025390625, 1.333191990852356; +383.2760314941406, 1.3356282711029053; +383.37603759765625, 1.3415441513061523; +383.47601318359375, 1.3485103845596313; +383.5760192871094, 1.3557896614074707; +383.6759948730469, 1.3629570007324219; +383.7760009765625, 1.3717784881591797; +383.8760070800781, 1.3822243213653564; +383.9759826660156, 1.3926401138305664; +384.07598876953125, 1.402527093887329; +384.17596435546875, 1.4119222164154053; +384.2759704589844, 1.4217793941497803; +384.3759765625, 1.4298186302185059; +384.4759521484375, 1.43552565574646; +384.5759582519531, 1.4396607875823975; +384.6759338378906, 1.4438778162002563; +384.77593994140625, 1.4490485191345215; +384.8759460449219, 1.4542341232299805; +384.9759216308594, 1.459077000617981; +385.075927734375, 1.4644041061401367; +385.1759033203125, 1.4717280864715576; +385.2759094238281, 1.4817044734954834; +385.37591552734375, 1.4940053224563599; +385.47589111328125, 1.5066415071487427; +385.5758972167969, 1.5199706554412842; +385.6758728027344, 1.5333294868469238; +385.77587890625, 1.5470609664916992; +385.8758544921875, 1.5609338283538818; +385.9758605957031, 1.5755221843719482; +386.07586669921875, 1.5930086374282837; +386.17584228515625, 1.6120672225952148; +386.2758483886719, 1.6318037509918213; +386.3758239746094, 1.6511380672454834; +386.475830078125, 1.670554280281067; +386.5758361816406, 1.689828872680664; +386.6758117675781, 1.7080307006835938; +386.77581787109375, 1.725830078125; +386.87579345703125, 1.7438828945159912; +386.9757995605469, 1.7629787921905518; +387.0758056640625, 1.7825736999511719; +387.17578125, 1.8022358417510986; +387.2757873535156, 1.8215999603271484; +387.3757629394531, 1.8445775508880615; +387.47576904296875, 1.8766000270843506; +387.5757751464844, 1.9244029521942139; +387.6757507324219, 1.9969195127487183; +387.7757568359375, 2.107605457305908; +387.875732421875, 2.2751762866973877; +387.9757385253906, 2.5187060832977295; +388.07574462890625, 2.8588027954101562; +388.17572021484375, 3.3131465911865234; +388.2757263183594, 3.891110420227051; +388.3757019042969, 4.589460849761963; +388.4757080078125, 5.389161586761475; +388.5757141113281, 6.253920555114746; +388.6756896972656, 7.132082939147949; +388.77569580078125, 7.962003231048584; +388.87567138671875, 8.681863784790039; +388.9756774902344, 9.238317489624023; +389.07568359375, 9.593658447265625; +389.1756591796875, 9.73050308227539; +389.2756652832031, 9.653881072998047; +389.3756408691406, 9.390443801879883; +389.47564697265625, 8.983283996582031; +389.5756530761719, 8.480489730834961; +389.6756286621094, 7.927104949951172; +389.775634765625, 7.362164497375488; +389.8756103515625, 6.81393575668335; +389.9756164550781, 6.30006217956543; +390.0755920410156, 5.827724933624268; +390.17559814453125, 5.398884296417236; +390.2756042480469, 5.013510704040527; +390.3755798339844, 4.668988227844238; +390.4755859375, 4.362203121185303; +390.5755615234375, 4.0906219482421875; +390.6755676269531, 3.852672815322876; +390.77557373046875, 3.6466941833496094; +390.87554931640625, 3.4677982330322266; +390.9755554199219, 3.3121256828308105; +391.0755310058594, 3.17870831489563; +391.175537109375, 3.0662119388580322; +391.2755432128906, 2.971738576889038; +391.3755187988281, 2.8913094997406006; +391.47552490234375, 2.8238892555236816; +391.57550048828125, 2.7683005332946777; +391.6755065917969, 2.7209818363189697; +391.7755126953125, 2.6785805225372314; +391.87548828125, 2.6405975818634033; +391.9754943847656, 2.607926845550537; +392.0754699707031, 2.580963134765625; +392.17547607421875, 2.56033992767334; +392.2754821777344, 2.5478005409240723; +392.3754577636719, 2.544231653213501; +392.4754638671875, 2.548083782196045; +392.575439453125, 2.5575308799743652; +392.6754455566406, 2.570413112640381; +392.77545166015625, 2.584300994873047; +392.87542724609375, 2.595797061920166; +392.9754333496094, 2.603590488433838; +393.0754089355469, 2.605959892272949; +393.1754150390625, 2.600543260574341; +393.2754211425781, 2.5854110717773438; +393.3753967285156, 2.5606751441955566; +393.47540283203125, 2.529062271118164; +393.57537841796875, 2.4923160076141357; +393.6753845214844, 2.4535059928894043; +393.775390625, 2.4161264896392822; +393.8753662109375, 2.3844242095947266; +393.9753723144531, 2.360694169998169; +394.0753479003906, 2.3443551063537598; +394.17535400390625, 2.334803342819214; +394.27532958984375, 2.330780029296875; +394.3753356933594, 2.33064603805542; +394.475341796875, 2.331756114959717; +394.5753173828125, 2.3314058780670166; +394.6753234863281, 2.3292601108551025; +394.7752990722656, 2.3249685764312744; +394.87530517578125, 2.3190526962280273; +394.9753112792969, 2.3131966590881348; +395.0752868652344, 2.30976939201355; +395.17529296875, 2.3101046085357666; +395.2752685546875, 2.3149921894073486; +395.3752746582031, 2.325497627258301; +395.47528076171875, 2.3421273231506348; +395.57525634765625, 2.3653433322906494; +395.6752624511719, 2.397514820098877; +395.7752380371094, 2.4445950984954834; +395.875244140625, 2.511963367462158; +395.9752502441406, 2.6024208068847656; +396.0752258300781, 2.7187466621398926; +396.17523193359375, 2.8627066612243652; +396.27520751953125, 3.0336380004882812; +396.3752136230469, 3.2249019145965576; +396.4752197265625, 3.424227237701416; +396.5751953125, 3.617785930633545; +396.6752014160156, 3.7904233932495117; +396.7751770019531, 3.9250552654266357; +396.87518310546875, 4.004925727844238; +396.9751892089844, 4.018947601318359; +397.0751647949219, 3.965832233428955; +397.1751708984375, 3.8512871265411377; +397.275146484375, 3.685302972793579; +397.3751525878906, 3.4846067428588867; +397.47515869140625, 3.2678022384643555; +397.57513427734375, 3.0523910522460938; +397.6751403808594, 2.8499512672424316; +397.7751159667969, 2.6676058769226074; +397.8751220703125, 2.51088285446167; +397.97509765625, 2.380885124206543; +398.0751037597656, 2.2763237953186035; +398.17510986328125, 2.1926090717315674; +398.27508544921875, 2.1259114742279053; +398.3750915527344, 2.0743608474731445; +398.4750671386719, 2.0363852977752686; +398.5750732421875, 2.0096824169158936; +398.6750793457031, 1.989901065826416; +398.7750549316406, 1.9747018814086914; +398.87506103515625, 1.9643828868865967; +398.97503662109375, 1.9597783088684082; +399.0750427246094, 1.9576027393341064; +399.175048828125, 1.9541680812835693; +399.2750244140625, 1.950301170349121; +399.3750305175781, 1.9475743770599365; +399.4750061035156, 1.9454658031463623; +399.57501220703125, 1.9414796829223633; +399.6750183105469, 1.9360854625701904; +399.7749938964844, 1.9300506114959717; +399.875, 1.9223839044570923; +399.9749755859375, 1.9128620624542236; +400.0749816894531, 1.9024759531021118; +400.17498779296875, 1.8914117813110352; +400.27496337890625, 1.8791780471801758; +400.3749694824219, 1.867018699645996; +400.4749450683594, 1.8564462661743164; +400.574951171875, 1.8474459648132324; +400.6749572753906, 1.839287519454956; +400.7749328613281, 1.832686424255371; +400.87493896484375, 1.827329397201538; +400.97491455078125, 1.8225536346435547; +401.0749206542969, 1.818619728088379; +401.1749267578125, 1.8169059753417969; +401.27490234375, 1.8177404403686523; +401.3749084472656, 1.8199608325958252; +401.4748840332031, 1.8240883350372314; +401.57489013671875, 1.8307119607925415; +401.6748962402344, 1.838982105255127; +401.7748718261719, 1.847878098487854; +401.8748779296875, 1.8551945686340332; +401.974853515625, 1.8613264560699463; +402.0748596191406, 1.8670930862426758; +402.1748352050781, 1.8730908632278442; +402.27484130859375, 1.878671407699585; +402.3748474121094, 1.882620096206665; +402.4748229980469, 1.8861442804336548; +402.5748291015625, 1.8887817859649658; +402.6748046875, 1.8901973962783813; +402.7748107910156, 1.8908381462097168; +402.87481689453125, 1.8925964832305908; +402.97479248046875, 1.896098256111145; +403.0747985839844, 1.900665521621704; +403.1747741699219, 1.9065513610839844; +403.2747802734375, 1.9139721393585205; +403.3747863769531, 1.9225404262542725; +403.4747619628906, 1.9322335720062256; +403.57476806640625, 1.9450857639312744; +403.67474365234375, 1.964189052581787; +403.7747497558594, 1.990415096282959; +403.874755859375, 2.0233168601989746; +403.9747314453125, 2.0627901554107666; +404.0747375488281, 2.1101906299591064; +404.1747131347656, 2.1658687591552734; +404.27471923828125, 2.2287964820861816; +404.3747253417969, 2.3010001182556152; +404.4747009277344, 2.385728120803833; +404.57470703125, 2.4864673614501953; +404.6746826171875, 2.604827404022217; +404.7746887207031, 2.7410759925842285; +404.87469482421875, 2.895481824874878; +404.97467041015625, 3.0679032802581787; +405.0746765136719, 3.259986639022827; +405.1746520996094, 3.4727156162261963; +405.274658203125, 3.7062764167785645; +405.3746643066406, 3.96085524559021; +405.4746398925781, 4.238657474517822; +405.57464599609375, 4.54162073135376; +405.67462158203125, 4.869565486907959; +405.7746276855469, 5.220510005950928; +405.8746337890625, 5.591988563537598; +405.974609375, 5.982234954833984; +406.0746154785156, 6.389915943145752; +406.1745910644531, 6.813511371612549; +406.27459716796875, 7.251553058624268; +406.37457275390625, 7.702208995819092; +406.4745788574219, 8.164257049560547; +406.5745849609375, 8.637569427490234; +406.674560546875, 9.121075630187988; +406.7745666503906, 9.613588333129883; +406.8745422363281, 10.112852096557617; +406.97454833984375, 10.617010116577148; +407.0745544433594, 11.123299598693848; +407.1745300292969, 11.628955841064453; +407.2745361328125, 12.13194465637207; +407.37451171875, 12.628928184509277; +407.4745178222656, 13.116754531860352; +407.57452392578125, 13.594806671142578; +407.67449951171875, 14.066353797912598; +407.7745056152344, 14.53539752960205; +407.8744812011719, 15.004814147949219; +407.9744873046875, 15.47838020324707; +408.0744934082031, 15.959739685058594; +408.1744689941406, 16.448766708374023; +408.27447509765625, 16.940340042114258; +408.37445068359375, 17.425865173339844; +408.4744567871094, 17.893165588378906; +408.574462890625, 18.326416015625; +408.6744384765625, 18.707380294799805; +408.7744445800781, 19.022300720214844; +408.8744201660156, 19.26345443725586; +408.97442626953125, 19.42806625366211; +409.0744323730469, 19.518003463745117; +409.1744079589844, 19.540510177612305; +409.2744140625, 19.51070213317871; +409.3743896484375, 19.445039749145508; +409.4743957519531, 19.359060287475586; +409.57440185546875, 19.26475715637207; +409.67437744140625, 19.174314498901367; +409.7743835449219, 19.098237991333008; +409.8743591308594, 19.041210174560547; +409.974365234375, 19.004047393798828; +410.0743713378906, 18.985219955444336; +410.1743469238281, 18.98600959777832; +410.27435302734375, 19.005529403686523; +410.37432861328125, 19.04153060913086; +410.4743347167969, 19.09062957763672; +410.5743103027344, 19.151010513305664; +410.67431640625, 19.22237777709961; +410.7743225097656, 19.302934646606445; +410.8742980957031, 19.390947341918945; +410.97430419921875, 19.485750198364258; +411.07427978515625, 19.588783264160156; +411.1742858886719, 19.699722290039062; +411.2742919921875, 19.81730842590332; +411.374267578125, 19.94095802307129; +411.4742736816406, 20.071529388427734; +411.5742492675781, 20.207151412963867; +411.67425537109375, 20.34503173828125; +411.7742614746094, 20.4858341217041; +411.8742370605469, 20.631528854370117; +411.9742431640625, 20.78217315673828; +412.07421875, 20.93400764465332; +412.1742248535156, 21.08599281311035; +412.27423095703125, 21.239988327026367; +412.37420654296875, 21.396778106689453; +412.4742126464844, 21.555513381958008; +412.5741882324219, 21.716543197631836; +412.6741943359375, 21.883785247802734; +412.7742004394531, 22.060543060302734; +412.8741760253906, 22.248327255249023; +412.97418212890625, 22.44810676574707; +413.07415771484375, 22.662424087524414; +413.1741638183594, 22.892459869384766; +413.274169921875, 23.137577056884766; +413.3741455078125, 23.398317337036133; +413.4741516113281, 23.677005767822266; +413.5741271972656, 23.974782943725586; +413.67413330078125, 24.28949546813965; +413.7741394042969, 24.62036895751953; +413.8741149902344, 24.969295501708984; +413.97412109375, 25.338083267211914; +414.0740966796875, 25.725528717041016; +414.1741027832031, 26.1307430267334; +414.2740783691406, 26.554428100585938; +414.37408447265625, 26.998004913330078; +414.4740905761719, 27.46225929260254; +414.5740661621094, 27.94880485534668; +414.674072265625, 28.458505630493164; +414.7740478515625, 28.991519927978516; +414.8740539550781, 29.54796028137207; +414.97406005859375, 30.12886619567871; +415.07403564453125, 30.735090255737305; +415.1740417480469, 31.36654281616211; +415.2740173339844, 32.025360107421875; +415.3740234375, 32.71377182006836; +415.4740295410156, 33.43404006958008; +415.5740051269531, 34.18925476074219; +415.67401123046875, 34.984439849853516; +415.77398681640625, 35.82363510131836; +415.8739929199219, 36.709144592285156; +415.9739990234375, 37.643829345703125; +416.073974609375, 38.630977630615234; +416.1739807128906, 39.67096710205078; +416.2739562988281, 40.762290954589844; +416.37396240234375, 41.90504455566406; +416.4739685058594, 43.09711456298828; +416.5739440917969, 44.33470153808594; +416.6739501953125, 45.61431121826172; +416.77392578125, 46.933658599853516; +416.8739318847656, 48.29033279418945; +416.97393798828125, 49.68025588989258; +417.07391357421875, 51.1009635925293; +417.1739196777344, 52.55023956298828; +417.2738952636719, 54.02521896362305; +417.3739013671875, 55.52155685424805; +417.4739074707031, 57.03342819213867; +417.5738830566406, 58.55497741699219; +417.67388916015625, 60.083961486816406; +417.77386474609375, 61.61992263793945; +417.8738708496094, 63.159786224365234; +417.973876953125, 64.70149230957031; +418.0738525390625, 66.24501037597656; +418.1738586425781, 67.7939682006836; +418.2738342285156, 69.34915161132812; +418.37384033203125, 70.91004943847656; +418.47381591796875, 72.47816467285156; +418.5738220214844, 74.05451965332031; +418.673828125, 75.63807678222656; +418.7738037109375, 77.22279357910156; +418.8738098144531, 78.80249786376953; +418.9737854003906, 80.3721694946289; +419.07379150390625, 81.92666625976562; +419.1737976074219, 83.46014404296875; +419.2737731933594, 84.9679183959961; +419.373779296875, 86.44879913330078; +419.4737548828125, 87.90208435058594; +419.5737609863281, 89.32786560058594; +419.67376708984375, 90.72749328613281; +419.77374267578125, 92.1046371459961; +419.8737487792969, 93.46080017089844; +419.9737243652344, 94.79533386230469; +420.07373046875, 96.10824584960938; +420.1737365722656, 97.39837646484375; +420.2737121582031, 98.66244506835938; +420.37371826171875, 99.89263916015625; +420.47369384765625, 101.08230590820312; +420.5736999511719, 102.22464752197266; +420.6737060546875, 103.31387329101562; +420.773681640625, 104.3442611694336; +420.8736877441406, 105.30838775634766; +420.9736633300781, 106.1990737915039; +421.07366943359375, 107.00904083251953; +421.1736755371094, 107.73271942138672; +421.2736511230469, 108.36258697509766; +421.3736572265625, 108.89256286621094; +421.4736328125, 109.32228088378906; +421.5736389160156, 109.65655517578125; +421.67364501953125, 109.90095520019531; +421.77362060546875, 110.06021881103516; +421.8736267089844, 110.1419448852539; +421.9736022949219, 110.1534652709961; +422.0736083984375, 110.10209655761719; +422.1736145019531, 109.99275970458984; +422.2735900878906, 109.83260345458984; +422.37359619140625, 109.63119506835938; +422.47357177734375, 109.39773559570312; +422.5735778808594, 109.14041137695312; +422.6735534667969, 108.8649673461914; +422.7735595703125, 108.57870483398438; +422.8735656738281, 108.28794860839844; +422.9735412597656, 107.99520874023438; +423.07354736328125, 107.699951171875; +423.17352294921875, 107.40231323242188; +423.2735290527344, 107.10425567626953; +423.37353515625, 106.80716705322266; +423.4735107421875, 106.51200103759766; +423.5735168457031, 106.2209701538086; +423.6734924316406, 105.93841552734375; +423.77349853515625, 105.66968536376953; +423.8735046386719, 105.42040252685547; +423.9734802246094, 105.19816589355469; +424.073486328125, 105.01253509521484; +424.1734619140625, 104.87638854980469; +424.2734680175781, 104.80751037597656; +424.37347412109375, 104.8303451538086; +424.47344970703125, 104.97520446777344; +424.5734558105469, 105.27872467041016; +424.6734313964844, 105.78875732421875; +424.7734375, 106.56832122802734; +424.8734436035156, 107.700439453125; +424.9734191894531, 109.29525756835938; +425.07342529296875, 111.50516510009766; +425.17340087890625, 114.53987884521484; +425.2734069824219, 118.67829132080078; +425.3734130859375, 124.27605438232422; +425.473388671875, 131.76119995117188; +425.5733947753906, 141.6062469482422; +425.6733703613281, 154.27272033691406; +425.77337646484375, 170.12216186523438; +425.8733825683594, 189.30760192871094; +425.9733581542969, 211.65162658691406; +426.0733642578125, 236.53701782226562; +426.17333984375, 262.85394287109375; +426.2733459472656, 289.02545166015625; +426.37335205078125, 313.1322021484375; +426.47332763671875, 333.12408447265625; +426.5733337402344, 347.0917663574219; +426.6733093261719, 353.548095703125; +426.7733154296875, 351.6522521972656; +426.873291015625, 341.33477783203125; +426.9732971191406, 323.3028869628906; +427.07330322265625, 298.913818359375; +427.17327880859375, 269.9625244140625; +427.2732849121094, 238.42373657226562; +427.3732604980469, 206.2085418701172; +427.4732666015625, 174.96878051757812; +427.5732727050781, 145.96495056152344; +427.6732482910156, 120.02194213867188; +427.77325439453125, 97.54930114746094; +427.87322998046875, 78.61192321777344; +427.9732360839844, 63.02084732055664; +428.0732421875, 50.42555236816406; +428.1732177734375, 40.39923095703125; +428.2732238769531, 32.50189971923828; +428.3731994628906, 26.324003219604492; +428.47320556640625, 21.509103775024414; +428.5732116699219, 17.759815216064453; +428.6731872558594, 14.835365295410156; +428.773193359375, 12.546494483947754; +428.8731689453125, 10.748296737670898; +428.9731750488281, 9.330086708068848; +429.07318115234375, 8.207276344299316; +429.17315673828125, 7.313549518585205; +429.2731628417969, 6.597824573516846; +429.3731384277344, 6.020635604858398; +429.47314453125, 5.551897048950195; +429.5731506347656, 5.16804313659668; +429.6731262207031, 4.84908390045166; +429.77313232421875, 4.5791120529174805; +429.87310791015625, 4.347391605377197; +429.9731140136719, 4.147492408752441; +430.0731201171875, 3.973662853240967; +430.173095703125, 3.8217453956604004; +430.2731018066406, 3.688216209411621; +430.3730773925781, 3.570720672607422; +430.47308349609375, 3.4664645195007324; +430.57305908203125, 3.3711791038513184; +430.6730651855469, 3.2817795276641846; +430.7730712890625, 3.195561408996582; +430.873046875, 3.1110196113586426; +430.9730529785156, 3.027364730834961; +431.0730285644531, 2.9440298080444336; +431.17303466796875, 2.860888957977295; +431.2730407714844, 2.778209686279297; +431.3730163574219, 2.695791482925415; +431.4730224609375, 2.6145875453948975; +431.572998046875, 2.5357155799865723; +431.6730041503906, 2.4605467319488525; +431.77301025390625, 2.3910329341888428; +431.87298583984375, 2.3284926414489746; +431.9729919433594, 2.272836923599243; +432.0729675292969, 2.221956729888916; +432.1729736328125, 2.1741762161254883; +432.2729797363281, 2.1294803619384766; +432.3729553222656, 2.0870864391326904; +432.47296142578125, 2.045199394226074; +432.57293701171875, 2.002894878387451; +432.6729431152344, 1.9614696502685547; +432.77294921875, 1.9217729568481445; +432.8729248046875, 1.8824636936187744; +432.9729309082031, 1.842498779296875; +433.0729064941406, 1.8041729927062988; +433.17291259765625, 1.7701685428619385; +433.2729187011719, 1.74031400680542; +433.3728942871094, 1.7130300998687744; +433.472900390625, 1.6886367797851562; +433.5728759765625, 1.6690939664840698; +433.6728820800781, 1.6524121761322021; +433.77288818359375, 1.6358792781829834; +433.87286376953125, 1.6182363033294678; +433.9728698730469, 1.600719928741455; +434.0728454589844, 1.5846564769744873; +434.1728515625, 1.5691816806793213; +434.2728576660156, 1.554831862449646; +434.3728332519531, 1.540921688079834; +434.47283935546875, 1.526780366897583; +434.57281494140625, 1.512073040008545; +434.6728210449219, 1.4975593090057373; +434.7727966308594, 1.4843791723251343; +434.872802734375, 1.4718546867370605; +434.9728088378906, 1.4595091342926025; +435.0727844238281, 1.4476404190063477; +435.17279052734375, 1.4373362064361572; +435.27276611328125, 1.4284775257110596; +435.3727722167969, 1.4205724000930786; +435.4727783203125, 1.4140830039978027; +435.57275390625, 1.4093444347381592; +435.6727600097656, 1.4071390628814697; +435.7727355957031, 1.4067590236663818; +435.87274169921875, 1.407362461090088; +435.9727478027344, 1.4077649116516113; +436.0727233886719, 1.4065430164337158; +436.1727294921875, 1.4058500528335571; +436.272705078125, 1.4066472053527832; +436.3727111816406, 1.4094263315200806; +436.47271728515625, 1.4145300388336182; +436.57269287109375, 1.4250725507736206; +436.6726989746094, 1.4462695121765137; +436.7726745605469, 1.4799163341522217; +436.8726806640625, 1.528620719909668; +436.9726867675781, 1.5977249145507812; +437.0726623535156, 1.6952604055404663; +437.17266845703125, 1.8286182880401611; +437.27264404296875, 2.004094362258911; +437.3726501464844, 2.2300779819488525; +437.47265625, 2.5147571563720703; +437.5726318359375, 2.862654685974121; +437.6726379394531, 3.2735838890075684; +437.7726135253906, 3.7439017295837402; +437.87261962890625, 4.2667388916015625; +437.9726257324219, 4.827462196350098; +438.0726013183594, 5.404867172241211; +438.172607421875, 5.973667144775391; +438.2725830078125, 6.506271839141846; +438.3725891113281, 6.974764347076416; +438.47259521484375, 7.352836608886719; +438.57257080078125, 7.621683120727539; +438.6725769042969, 7.7698750495910645; +438.7725524902344, 7.793136119842529; +438.87255859375, 7.694587230682373; +438.9725341796875, 7.485628128051758; +439.0725402832031, 7.184304237365723; +439.17254638671875, 6.810657501220703; +439.27252197265625, 6.385974407196045; +439.3725280761719, 5.934051990509033; +439.4725036621094, 5.478002071380615; +439.572509765625, 5.034729957580566; +439.6725158691406, 4.615068435668945; +439.7724914550781, 4.227511405944824; +439.87249755859375, 3.8790180683135986; +439.97247314453125, 3.571324110031128; +440.0724792480469, 3.3030285835266113; +440.1724853515625, 3.072984457015991; +440.2724609375, 2.8783230781555176; +440.3724670410156, 2.7138888835906982; +440.4724426269531, 2.5733933448791504; +440.57244873046875, 2.4522690773010254; +440.6724548339844, 2.347573757171631; +440.7724304199219, 2.254955530166626; +440.8724365234375, 2.1721646785736084; +440.972412109375, 2.0995066165924072; +441.0724182128906, 2.038329839706421; +441.17242431640625, 1.98891019821167; +441.27239990234375, 1.9489154815673828; +441.3724060058594, 1.9178316593170166; +441.4723815917969, 1.895412802696228; +441.5723876953125, 1.8798857927322388; +441.6723937988281, 1.867339015007019; +441.7723693847656, 1.8548145294189453; +441.87237548828125, 1.842670202255249; +441.97235107421875, 1.8300265073776245; +442.0723571777344, 1.8154010772705078; +442.17236328125, 1.7980337142944336; +442.2723388671875, 1.7787292003631592; +442.3723449707031, 1.7565712928771973; +442.4723205566406, 1.7288029193878174; +442.57232666015625, 1.6956851482391357; +442.6723327636719, 1.659996747970581; +442.7723083496094, 1.624070167541504; +442.872314453125, 1.5884413719177246; +442.9722900390625, 1.5543029308319092; +443.0722961425781, 1.524202585220337; +443.1722717285156, 1.4989376068115234; +443.27227783203125, 1.4769659042358398; +443.3722839355469, 1.4570131301879883; +443.4722595214844, 1.439131736755371; +443.572265625, 1.4237239360809326; +443.6722412109375, 1.4094040393829346; +443.7722473144531, 1.3948827981948853; +443.87225341796875, 1.379936933517456; +443.97222900390625, 1.3639256954193115; +444.0722351074219, 1.3473033905029297; +444.1722106933594, 1.3308300971984863; +444.272216796875, 1.3148188591003418; +444.3722229003906, 1.299656867980957; +444.4721984863281, 1.285463571548462; +444.57220458984375, 1.2739226818084717; +444.67218017578125, 1.2650117874145508; +444.7721862792969, 1.2569129467010498; +444.8721923828125, 1.2497752904891968; +444.97216796875, 1.244105339050293; +445.0721740722656, 1.2406259775161743; +445.1721496582031, 1.2392327785491943; +445.27215576171875, 1.2391581535339355; +445.3721618652344, 1.2413710355758667; +445.4721374511719, 1.2452900409698486; +445.5721435546875, 1.250147819519043; +445.672119140625, 1.2562721967697144; +445.7721252441406, 1.2637227773666382; +445.87213134765625, 1.2729988098144531; +445.97210693359375, 1.284055471420288; +446.0721130371094, 1.2981146574020386; +446.1720886230469, 1.3149902820587158; +446.2720947265625, 1.333303689956665; +446.3721008300781, 1.3515725135803223; +446.4720764160156, 1.3704822063446045; +446.57208251953125, 1.3902932405471802; +446.67205810546875, 1.4095380306243896; +446.7720642089844, 1.4280527830123901; +446.8720397949219, 1.4445111751556396; +446.9720458984375, 1.4588310718536377; +447.0720520019531, 1.4710798263549805; +447.1720275878906, 1.4818012714385986; +447.27203369140625, 1.4912261962890625; +447.37200927734375, 1.497894525527954; +447.4720153808594, 1.5022605657577515; +447.572021484375, 1.505129098892212; +447.6719970703125, 1.505605936050415; +447.7720031738281, 1.5028343200683594; +447.8719787597656, 1.497313380241394; +447.97198486328125, 1.4911963939666748; +448.0719909667969, 1.4850795269012451; +448.1719665527344, 1.4785230159759521; +448.27197265625, 1.471981406211853; +448.3719482421875, 1.465335488319397; +448.4719543457031, 1.4587491750717163; +448.57196044921875, 1.4525353908538818; +448.67193603515625, 1.4484152793884277; +448.7719421386719, 1.4471262693405151; +448.8719177246094, 1.4477894306182861; +448.971923828125, 1.4502182006835938; +449.0719299316406, 1.453869104385376; +449.1719055175781, 1.4575645923614502; +449.27191162109375, 1.4590322971343994; +449.37188720703125, 1.45760178565979; +449.4718933105469, 1.454390525817871; +449.5718994140625, 1.4512465000152588; +449.671875, 1.448124647140503; +449.7718811035156, 1.445084810256958; +449.8718566894531, 1.4433115720748901; +449.97186279296875, 1.4432072639465332; +450.0718688964844, 1.4450178146362305; +450.1718444824219, 1.44761061668396; +450.2718505859375, 1.4518648386001587; +450.371826171875, 1.4572367668151855; +450.4718322753906, 1.4628543853759766; +450.57183837890625, 1.468762755393982; +450.67181396484375, 1.4751553535461426; +450.7718200683594, 1.4818459749221802; +450.8717956542969, 1.4876872301101685; +450.9718017578125, 1.493133544921875; +451.07177734375, 1.4988481998443604; +451.1717834472656, 1.5059858560562134; +451.27178955078125, 1.514136791229248; +451.37176513671875, 1.5224740505218506; +451.4717712402344, 1.530960202217102; +451.5717468261719, 1.5390739440917969; +451.6717529296875, 1.5460922718048096; +451.7717590332031, 1.5502943992614746; +451.8717346191406, 1.5502347946166992; +451.97174072265625, 1.545555830001831; +452.07171630859375, 1.5363246202468872; +452.1717224121094, 1.523993968963623; +452.271728515625, 1.5098228454589844; +452.3717041015625, 1.4933421611785889; +452.4717102050781, 1.4744699001312256; +452.5716857910156, 1.4548227787017822; +452.67169189453125, 1.4357194900512695; +452.7716979980469, 1.4171749353408813; +452.8716735839844, 1.3992860317230225; +452.9716796875, 1.383364200592041; +453.0716552734375, 1.3708100318908691; +453.1716613769531, 1.361243486404419; +453.27166748046875, 1.3539865016937256; +453.37164306640625, 1.3503804206848145; +453.4716491699219, 1.351393699645996; +453.5716247558594, 1.3566091060638428; +453.671630859375, 1.3658702373504639; +453.7716369628906, 1.3808906078338623; +453.8716125488281, 1.404069423675537; +453.97161865234375, 1.4349818229675293; +454.07159423828125, 1.4724209308624268; +454.1716003417969, 1.5178844928741455; +454.2716064453125, 1.5727579593658447; +454.37158203125, 1.6358568668365479; +454.4715881347656, 1.7046854496002197; +454.5715637207031, 1.7778947353363037; +454.67156982421875, 1.8551647663116455; +454.7715759277344, 1.9341483116149902; +454.8715515136719, 2.0104944705963135; +454.9715576171875, 2.0799636840820312; +455.071533203125, 2.139702320098877; +455.1715393066406, 2.186164379119873; +455.2715148925781, 2.2147819995880127; +455.37152099609375, 2.223245859146118; +455.4715270996094, 2.2112057209014893; +455.5715026855469, 2.1793618202209473; +455.6715087890625, 2.1277666091918945; +455.771484375, 2.0593478679656982; +455.8714904785156, 1.9788295030593872; +455.97149658203125, 1.8891692161560059; +456.07147216796875, 1.7943308353424072; +456.1714782714844, 1.6991645097732544; +456.2714538574219, 1.6088411808013916; +456.3714599609375, 1.525662899017334; +456.4714660644531, 1.4512314796447754; +456.5714416503906, 1.3874918222427368; +456.67144775390625, 1.3351068496704102; +456.77142333984375, 1.293569803237915; +456.8714294433594, 1.2612566947937012; +456.971435546875, 1.236557960510254; +457.0714111328125, 1.2176930904388428; +457.1714172363281, 1.2032091617584229; +457.2713928222656, 1.1927857398986816; +457.37139892578125, 1.1859164237976074; +457.4714050292969, 1.1829957962036133; +457.5713806152344, 1.1838674545288086; +457.67138671875, 1.1878609657287598; +457.7713623046875, 1.1946783065795898; +457.8713684082031, 1.2043640613555908; +457.97137451171875, 1.2178645133972168; +458.07135009765625, 1.234375; +458.1713562011719, 1.2536793947219849; +458.2713317871094, 1.2774020433425903; +458.371337890625, 1.3063921928405762; +458.4713439941406, 1.338958740234375; +458.5713195800781, 1.3704746961593628; +458.67132568359375, 1.3987646102905273; +458.77130126953125, 1.4231204986572266; +458.8713073730469, 1.4419853687286377; +458.9713134765625, 1.453958511352539; +459.0712890625, 1.4587864875793457; +459.1712951660156, 1.458369255065918; +459.2712707519531, 1.4538317918777466; +459.37127685546875, 1.4450623989105225; +459.47125244140625, 1.4319568872451782; +459.5712585449219, 1.4148503541946411; +459.6712646484375, 1.3942792415618896; +459.771240234375, 1.370936632156372; +459.8712463378906, 1.3459548950195312; +459.9712219238281, 1.3217926025390625; +460.07122802734375, 1.3000295162200928; +460.1712341308594, 1.2800171375274658; +460.2712097167969, 1.2601540088653564; +460.3712158203125, 1.240760087966919; +460.47119140625, 1.224212408065796; +460.5711975097656, 1.2117698192596436; +460.67120361328125, 1.2029633522033691; +460.77117919921875, 1.1971070766448975; +460.8711853027344, 1.1962578296661377; +460.9711608886719, 1.2003555297851562; +461.0711669921875, 1.2062489986419678; +461.1711730957031, 1.2111589908599854; +461.2711486816406, 1.2155697345733643; +461.37115478515625, 1.2213587760925293; +461.47113037109375, 1.227177619934082; +461.5711364746094, 1.2329742908477783; +461.671142578125, 1.2389123439788818; +461.7711181640625, 1.2446119785308838; +461.8711242675781, 1.2488067150115967; +461.9710998535156, 1.251779556274414; +462.07110595703125, 1.2552142143249512; +462.1711120605469, 1.2584850788116455; +462.2710876464844, 1.261420488357544; +462.37109375, 1.2643784284591675; +462.4710693359375, 1.2672617435455322; +462.5710754394531, 1.2687593698501587; +462.67108154296875, 1.2685805559158325; +462.77105712890625, 1.268133521080017; +462.8710632324219, 1.2679994106292725; +462.9710388183594, 1.2680962085723877; +463.071044921875, 1.2691841125488281; +463.1710205078125, 1.2721717357635498; +463.2710266113281, 1.2762993574142456; +463.37103271484375, 1.281358242034912; +463.47100830078125, 1.2882874011993408; +463.5710144042969, 1.2978464365005493; +463.6709899902344, 1.3073980808258057; +463.77099609375, 1.3156235218048096; +463.8710021972656, 1.323394536972046; +463.9709777832031, 1.3326778411865234; +464.07098388671875, 1.3433992862701416; +464.17095947265625, 1.353226661682129; +464.2709655761719, 1.362360954284668; +464.3709716796875, 1.3721809387207031; +464.470947265625, 1.3835132122039795; +464.5709533691406, 1.3933405876159668; +464.6709289550781, 1.3991222381591797; +464.77093505859375, 1.4013574123382568; +464.8709411621094, 1.4021172523498535; +464.9709167480469, 1.402050256729126; +465.0709228515625, 1.401454210281372; +465.1708984375, 1.4004409313201904; +465.2709045410156, 1.3986974954605103; +465.37091064453125, 1.3963580131530762; +465.47088623046875, 1.3939142227172852; +465.5708923339844, 1.3909786939620972; +465.6708679199219, 1.3864562511444092; +465.7708740234375, 1.3818070888519287; +465.8708801269531, 1.379460096359253; +465.9708557128906, 1.3797581195831299; +466.07086181640625, 1.3816282749176025; +466.17083740234375, 1.384474277496338; +466.2708435058594, 1.3887882232666016; +466.370849609375, 1.393049955368042; +466.4708251953125, 1.3959481716156006; +466.5708312988281, 1.3983473777770996; +466.6708068847656, 1.4005452394485474; +466.77081298828125, 1.4018267393112183; +466.8708190917969, 1.4003291130065918; +466.9707946777344, 1.396775245666504; +467.07080078125, 1.3925955295562744; +467.1707763671875, 1.38773775100708; +467.2707824707031, 1.3822391033172607; +467.3707580566406, 1.376330852508545; +467.47076416015625, 1.370847225189209; +467.5707702636719, 1.3659149408340454; +467.6707458496094, 1.3622119426727295; +467.770751953125, 1.359894871711731; +467.8707275390625, 1.3575778007507324; +467.9707336425781, 1.3548955917358398; +468.07073974609375, 1.3519227504730225; +468.17071533203125, 1.348562479019165; +468.2707214355469, 1.3434216976165771; +468.3706970214844, 1.336134910583496; +468.470703125, 1.328416109085083; +468.5707092285156, 1.3220608234405518; +468.6706848144531, 1.3178660869598389; +468.77069091796875, 1.3163015842437744; +468.87066650390625, 1.3167262077331543; +468.9706726074219, 1.3186484575271606; +469.0706787109375, 1.322068214416504; +469.170654296875, 1.3273060321807861; +469.2706604003906, 1.3348311185836792; +469.3706359863281, 1.3437271118164062; +469.47064208984375, 1.3532862663269043; +469.5706481933594, 1.3647005558013916; +469.6706237792969, 1.3796240091323853; +469.7706298828125, 1.3982877731323242; +469.87060546875, 1.4186725616455078; +469.9706115722656, 1.4406293630599976; +470.07061767578125, 1.466497778892517; +470.17059326171875, 1.4967396259307861; +470.2705993652344, 1.5297458171844482; +470.3705749511719, 1.563645839691162; +470.4705810546875, 1.5986933708190918; +470.5705871582031, 1.6346722841262817; +470.6705627441406, 1.6695111989974976; +470.77056884765625, 1.7009005546569824; +470.87054443359375, 1.7263442277908325; +470.9705505371094, 1.744560956954956; +471.070556640625, 1.7554833889007568; +471.1705322265625, 1.7590075731277466; +471.2705383300781, 1.754380702972412; +471.3705139160156, 1.7422809600830078; +471.47052001953125, 1.7262399196624756; +471.57049560546875, 1.70840322971344; +471.6705017089844, 1.6892030239105225; +471.7705078125, 1.6688034534454346; +471.8704833984375, 1.6501694917678833; +471.9704895019531, 1.6341060400009155; +472.0704650878906, 1.6192495822906494; +472.17047119140625, 1.6058459281921387; +472.2704772949219, 1.5952064990997314; +472.3704528808594, 1.5887691974639893; +472.470458984375, 1.5855133533477783; +472.5704345703125, 1.584686279296875; +472.6704406738281, 1.5856995582580566; +472.77044677734375, 1.5864298343658447; +472.87042236328125, 1.5843734741210938; +472.9704284667969, 1.5774741172790527; +473.0704040527344, 1.5661492347717285; +473.17041015625, 1.5514194965362549; +473.2704162597656, 1.5332847833633423; +473.3703918457031, 1.5137195587158203; +473.47039794921875, 1.4957189559936523; +473.57037353515625, 1.48029625415802; +473.6703796386719, 1.4647841453552246; +473.7703857421875, 1.447655200958252; +473.870361328125, 1.4323145151138306; +473.9703674316406, 1.420907735824585; +474.0703430175781, 1.4121458530426025; +474.17034912109375, 1.406162977218628; +474.2703552246094, 1.4056861400604248; +474.3703308105469, 1.4114453792572021; +474.4703369140625, 1.4187246561050415; +474.5703125, 1.4228596687316895; +474.6703186035156, 1.4235973358154297; +474.77032470703125, 1.4212205410003662; +474.87030029296875, 1.4140903949737549; +474.9703063964844, 1.400761365890503; +475.0702819824219, 1.3796687126159668; +475.1702880859375, 1.3505890369415283; +475.2702941894531, 1.313433051109314; +475.3702697753906, 1.269325613975525; +475.47027587890625, 1.2200250625610352; +475.57025146484375, 1.1667683124542236; +475.6702575683594, 1.1139661073684692; +475.7702331542969, 1.0647401809692383; +475.8702392578125, 1.0194331407546997; +475.9702453613281, 0.97694993019104; +476.0702209472656, 0.9358450770378113; +476.17022705078125, 0.8970499038696289; +476.27020263671875, 0.860653817653656; +476.3702087402344, 0.8273720741271973; +476.47021484375, 0.7971599698066711; +476.5701904296875, 0.7690116763114929; +476.6701965332031, 0.744163990020752; +476.7701721191406, 0.723622739315033; +476.87017822265625, 0.7076188921928406; +476.9701843261719, 0.6948038935661316; +477.0701599121094, 0.6839409470558167; +477.170166015625, 0.6754249334335327; +477.2701416015625, 0.6695687770843506; +477.3701477050781, 0.6667524576187134; +477.47015380859375, 0.6662458181381226; +477.57012939453125, 0.6675124168395996; +477.6701354980469, 0.6700828671455383; +477.7701110839844, 0.6730705499649048; +477.8701171875, 0.6752759218215942; +477.9701232910156, 0.6760433316230774; +478.0700988769531, 0.6761401891708374; +478.17010498046875, 0.6757602095603943; +478.27008056640625, 0.675596296787262; +478.3700866699219, 0.6766021251678467; +478.4700927734375, 0.6793588399887085; +478.570068359375, 0.6831586360931396; +478.6700744628906, 0.6862878799438477; +478.7700500488281, 0.688210129737854; +478.87005615234375, 0.6904080510139465; +478.9700622558594, 0.6941333413124084; +479.0700378417969, 0.6990581750869751; +479.1700439453125, 0.7030516862869263; +479.27001953125, 0.7054954767227173; +479.3700256347656, 0.7072985172271729; +479.47003173828125, 0.707477331161499; +479.57000732421875, 0.7039010524749756; +479.6700134277344, 0.6965994834899902; +479.7699890136719, 0.6877630949020386; +479.8699951171875, 0.6793215870857239; +479.969970703125, 0.6718635559082031; +480.0699768066406, 0.6660521030426025; +480.16998291015625, 0.6626471877098083; +480.26995849609375, 0.6591379642486572; +480.3699645996094, 0.6545782089233398; +480.4699401855469, 0.6490200757980347; +480.5699462890625, 0.6427541375160217; +480.6699523925781, 0.6348639726638794; +480.7699279785156, 0.625118613243103; +480.86993408203125, 0.6162077188491821; +480.96990966796875, 0.6079450249671936; +481.0699157714844, 0.6002709269523621; +481.169921875, 0.5931258201599121; +481.2698974609375, 0.5882158875465393; +481.3699035644531, 0.5855858325958252; +481.4698791503906, 0.584430992603302; +481.56988525390625, 0.5857273936271667; +481.6698913574219, 0.5894675850868225; +481.7698669433594, 0.5945265293121338; +481.869873046875, 0.5987659096717834; +481.9698486328125, 0.6018355488777161; +482.0698547363281, 0.6048679351806641; +482.16986083984375, 0.6094276905059814; +482.26983642578125, 0.616997480392456; +482.3698425292969, 0.6271153688430786; +482.4698181152344, 0.6384029984474182; +482.56982421875, 0.6493628025054932; +482.6698303222656, 0.6600618362426758; +482.7698059082031, 0.6700679659843445; +482.86981201171875, 0.6778985261917114; +482.96978759765625, 0.6835684180259705; +483.0697937011719, 0.6883740425109863; +483.1697998046875, 0.6946921348571777; +483.269775390625, 0.7019862532615662; +483.3697814941406, 0.7097125053405762; +483.4697570800781, 0.7163062691688538; +483.56976318359375, 0.7221102714538574; +483.66973876953125, 0.7273629307746887; +483.7697448730469, 0.730954110622406; +483.8697509765625, 0.7316768169403076; +483.9697265625, 0.7293447852134705; +484.0697326660156, 0.7266923785209656; +484.1697082519531, 0.7249638438224792; +484.26971435546875, 0.7240176200866699; +484.3697204589844, 0.7228255271911621; +484.4696960449219, 0.7222369313240051; +484.5697021484375, 0.7231086492538452; +484.669677734375, 0.7255077362060547; +484.7696838378906, 0.7297992706298828; +484.86968994140625, 0.7368624210357666; +484.96966552734375, 0.7480457425117493; +485.0696716308594, 0.7629916071891785; +485.1696472167969, 0.7796436548233032; +485.2696533203125, 0.7955580949783325; +485.3696594238281, 0.8091405034065247; +485.4696350097656, 0.8198171854019165; +485.56964111328125, 0.8289515972137451; +485.66961669921875, 0.8372291922569275; +485.7696228027344, 0.8466467261314392; +485.86962890625, 0.8584931492805481; +485.9696044921875, 0.8720383048057556; +486.0696105957031, 0.8872225880622864; +486.1695861816406, 0.903785228729248; +486.26959228515625, 0.92305988073349; +486.3695983886719, 0.9425133466720581; +486.4695739746094, 0.9590461850166321; +486.569580078125, 0.9735450148582458; +486.6695556640625, 0.9880885481834412; +486.7695617675781, 1.0027140378952026; +486.86956787109375, 1.0148658752441406; +486.96954345703125, 1.0236725807189941; +487.0695495605469, 1.0308623313903809; +487.1695251464844, 1.0355859994888306; +487.26953125, 1.0354667901992798; +487.3695373535156, 1.0300427675247192; +487.4695129394531, 1.0212733745574951; +487.56951904296875, 1.0112375020980835; +487.66949462890625, 0.9998828172683716; +487.7695007324219, 0.9868443012237549; +487.8694763183594, 0.9727776050567627; +487.969482421875, 0.9571090340614319; +488.0694885253906, 0.9387806057929993; +488.1694641113281, 0.9186789393424988; +488.26947021484375, 0.8985847234725952; +488.36944580078125, 0.8801519870758057; +488.4694519042969, 0.8634477853775024; +488.5694580078125, 0.8489787578582764; +488.66943359375, 0.8374825119972229; +488.7694396972656, 0.8270889520645142; +488.8694152832031, 0.8157119154930115; +488.96942138671875, 0.8033439517021179; +489.0694274902344, 0.7910728454589844; +489.1694030761719, 0.7788613438606262; +489.2694091796875, 0.7658228278160095; +489.369384765625, 0.7528811693191528; +489.4693908691406, 0.7415115833282471; +489.56939697265625, 0.7306113839149475; +489.66937255859375, 0.7191449403762817; +489.7693786621094, 0.7071420550346375; +489.8693542480469, 0.6947517395019531; +489.9693603515625, 0.6822049617767334; +490.0693664550781, 0.6694942712783813; +490.1693420410156, 0.6586089730262756; +490.26934814453125, 0.6497427821159363; +490.36932373046875, 0.6423965096473694; +490.4693298339844, 0.6367266178131104; +490.5693359375, 0.631973147392273; +490.6693115234375, 0.6275027990341187; +490.7693176269531, 0.622577965259552; +490.8692932128906, 0.6177499890327454; +490.96929931640625, 0.6138980388641357; +491.0693054199219, 0.6100013852119446; +491.1692810058594, 0.6065592169761658; +491.269287109375, 0.603601336479187; +491.3692626953125, 0.6011426448822021; +491.4692687988281, 0.599004328250885; +491.56927490234375, 0.596851110458374; +491.66925048828125, 0.5965381860733032; +491.7692565917969, 0.5984604358673096; +491.8692321777344, 0.6033703684806824; +491.96923828125, 0.6109923124313354; +492.0692138671875, 0.6202533841133118; +492.1692199707031, 0.6309300661087036; +492.26922607421875, 0.6430596113204956; +492.36920166015625, 0.6570965051651001; +492.4692077636719, 0.6726235151290894; +492.5691833496094, 0.6883516907691956; +492.669189453125, 0.7048249244689941; +492.7691955566406, 0.7231980562210083; +492.8691711425781, 0.7439106702804565; +492.96917724609375, 0.7667690515518188; +493.06915283203125, 0.7918253540992737; +493.1691589355469, 0.8197352290153503; +493.2691650390625, 0.8509010076522827; +493.369140625, 0.8845031261444092; +493.4691467285156, 0.9191557765007019; +493.5691223144531, 0.9544193744659424; +493.66912841796875, 0.9897872805595398; +493.7691345214844, 1.0242760181427002; +493.8691101074219, 1.0549575090408325; +493.9691162109375, 1.0802223682403564; +494.069091796875, 1.1008232831954956; +494.1690979003906, 1.1170580387115479; +494.26910400390625, 1.1289193630218506; +494.36907958984375, 1.1367499828338623; +494.4690856933594, 1.141384243965149; +494.5690612792969, 1.142136812210083; +494.6690673828125, 1.1365562677383423; +494.7690734863281, 1.1235103607177734; +494.8690490722656, 1.104585886001587; +494.96905517578125, 1.0819659233093262; +495.06903076171875, 1.0578930377960205; +495.1690368652344, 1.034252405166626; +495.26904296875, 1.0113790035247803; +495.3690185546875, 0.9890124201774597; +495.4690246582031, 0.9657666087150574; +495.5690002441406, 0.9419620037078857; +495.66900634765625, 0.9185522794723511; +495.7690124511719, 0.8954331278800964; +495.8689880371094, 0.8745118975639343; +495.968994140625, 0.857323408126831; +496.0689697265625, 0.8437931537628174; +496.1689758300781, 0.8319616317749023; +496.2689514160156, 0.8206069469451904; +496.36895751953125, 0.8112937211990356; +496.4689636230469, 0.803530216217041; +496.5689392089844, 0.7959902286529541; +496.6689453125, 0.7884576916694641; +496.7689208984375, 0.7811188697814941; +496.8689270019531, 0.7739365100860596; +496.96893310546875, 0.7669329643249512; +497.06890869140625, 0.7617101073265076; +497.1689147949219, 0.7585659623146057; +497.2688903808594, 0.7554516196250916; +497.368896484375, 0.7522925734519958; +497.4689025878906, 0.7499605417251587; +497.5688781738281, 0.7487237453460693; +497.66888427734375, 0.7471442222595215; +497.76885986328125, 0.744849443435669; +497.8688659667969, 0.7432326674461365; +497.9688720703125, 0.7420554757118225; +498.06884765625, 0.7404834032058716; +498.1688537597656, 0.7373690605163574; +498.2688293457031, 0.7324069738388062; +498.36883544921875, 0.726751983165741; +498.4688415527344, 0.722348690032959; +498.5688171386719, 0.7199123501777649; +498.6688232421875, 0.7185861468315125; +498.768798828125, 0.7173344492912292; +498.8688049316406, 0.7173866033554077; +498.96881103515625, 0.7192417979240417; +499.06878662109375, 0.7214471697807312; +499.1687927246094, 0.7227808237075806; +499.2687683105469, 0.7233917713165283; +499.3687744140625, 0.7240176200866699; +499.4687805175781, 0.7235407829284668; +499.5687561035156, 0.7210895419120789; +499.66876220703125, 0.717751681804657; +499.76873779296875, 0.714525580406189; +499.8687438964844, 0.7113218307495117; +499.9687194824219, 0.7077530026435852; +500.0687255859375, 0.7042810320854187; +500.1687316894531, 0.7014498114585876; +500.2687072753906, 0.6986483931541443; +500.36871337890625, 0.696323812007904; +500.46868896484375, 0.6945207715034485; +500.5686950683594, 0.6934851408004761; +500.668701171875, 0.6938353180885315; +500.7686767578125, 0.6952658295631409; +500.8686828613281, 0.6981417536735535; +500.9686584472656, 0.7022768259048462; +501.06866455078125, 0.7085055112838745; +501.1686706542969, 0.7177144289016724; +501.2686462402344, 0.7286816835403442; +501.36865234375, 0.740736722946167; +501.4686279296875, 0.7535070180892944; +501.5686340332031, 0.7663518190383911; +501.66864013671875, 0.7786452770233154; +501.76861572265625, 0.7888823747634888; +501.8686218261719, 0.7974728941917419; +501.9685974121094, 0.8046254515647888; +502.068603515625, 0.8105933666229248; +502.1686096191406, 0.8150637149810791; +502.2685852050781, 0.8179321885108948; +502.36859130859375, 0.8191019296646118; +502.46856689453125, 0.818498432636261; +502.5685729980469, 0.8170381188392639; +502.6685791015625, 0.8149519562721252; +502.7685546875, 0.8118823170661926; +502.8685607910156, 0.8081570267677307; +502.9685363769531, 0.8056983351707458; +503.06854248046875, 0.8052662014961243; +503.1685485839844, 0.805199146270752; +503.2685241699219, 0.8027255535125732; +503.3685302734375, 0.7995516061782837; +503.468505859375, 0.7971599698066711; +503.5685119628906, 0.795416533946991; +503.66851806640625, 0.7941499352455139; +503.76849365234375, 0.7939711213111877; +503.8684997558594, 0.7963404059410095; +503.9684753417969, 0.8000880479812622; +504.0684814453125, 0.8043497800827026; +504.16845703125, 0.8090510964393616; +504.2684631347656, 0.8132979273796082; +504.36846923828125, 0.8165538311004639; +504.46844482421875, 0.8199140429496765; +504.5684509277344, 0.8244439959526062; +504.6684265136719, 0.8285567164421082; +504.7684326171875, 0.830233097076416; +504.8684387207031, 0.830434262752533; +504.9684143066406, 0.8319094777107239; +505.06842041015625, 0.8349493145942688; +505.16839599609375, 0.8379891514778137; +505.2684020996094, 0.8409842848777771; +505.368408203125, 0.8453428745269775; +505.4683837890625, 0.8502751588821411; +505.5683898925781, 0.8535683155059814; +505.6683654785156, 0.8546337485313416; +505.76837158203125, 0.8546411991119385; +505.8683776855469, 0.8541643619537354; +505.9683532714844, 0.8514150977134705; +506.068359375, 0.8462294936180115; +506.1683349609375, 0.8398741483688354; +506.2683410644531, 0.8343979716300964; +506.36834716796875, 0.830627977848053; +506.46832275390625, 0.828377902507782; +506.5683288574219, 0.827983021736145; +506.6683044433594, 0.8293911814689636; +506.768310546875, 0.8324459195137024; +506.8683166503906, 0.8350089192390442; +506.9682922363281, 0.8355900645256042; +507.06829833984375, 0.8352175354957581; +507.16827392578125, 0.8362680673599243; +507.2682800292969, 0.8395388722419739; +507.3682861328125, 0.8432716131210327; +507.46826171875, 0.8470863103866577; +507.5682678222656, 0.8510574698448181; +507.6682434082031, 0.8553117513656616; +507.76824951171875, 0.8592233061790466; +507.8682556152344, 0.8624568581581116; +507.9682312011719, 0.866912305355072; +508.0682373046875, 0.8737146854400635; +508.168212890625, 0.8838623762130737; +508.2682189941406, 0.8965358138084412; +508.3681945800781, 0.9104833006858826; +508.46820068359375, 0.9260624647140503; +508.5682067871094, 0.9427517652511597; +508.6681823730469, 0.9605735540390015; +508.7681884765625, 0.9782165288925171; +508.8681640625, 0.9949654340744019; +508.9681701660156, 1.0103881359100342; +509.06817626953125, 1.024290919303894; +509.16815185546875, 1.03678560256958; +509.2681579589844, 1.0483711957931519; +509.3681335449219, 1.06087327003479; +509.4681396484375, 1.0747685432434082; +509.5681457519531, 1.0897815227508545; +509.6681213378906, 1.1036545038223267; +509.76812744140625, 1.1157467365264893; +509.86810302734375, 1.1256486177444458; +509.9681091308594, 1.1335983276367188; +510.068115234375, 1.1410489082336426; +510.1680908203125, 1.148119568824768; +510.2680969238281, 1.155942678451538; +510.3680725097656, 1.164764165878296; +510.46807861328125, 1.1749341487884521; +510.5680847167969, 1.1854171752929688; +510.6680603027344, 1.1942684650421143; +510.76806640625, 1.2027472257614136; +510.8680419921875, 1.2116283178329468; +510.9680480957031, 1.2189745903015137; +511.06805419921875, 1.2220666408538818; +511.16802978515625, 1.2204573154449463; +511.2680358886719, 1.2166351079940796; +511.3680114746094, 1.2109205722808838; +511.468017578125, 1.2022405862808228; +511.5680236816406, 1.1908560991287231; +511.6679992675781, 1.1773333549499512; +511.76800537109375, 1.1609643697738647; +511.86798095703125, 1.1388808488845825; +511.9679870605469, 1.1105165481567383; +512.0679931640625, 1.0785013437271118; +512.16796875, 1.046597957611084; +512.2679443359375, 1.015990972518921; +512.3679809570312, 0.9856373071670532; +512.4679565429688, 0.9544864296913147; +512.5679321289062, 0.9238794445991516; +512.66796875, 0.8944347500801086; +512.7679443359375, 0.8647367358207703; +512.867919921875, 0.8341893553733826; +512.9678955078125, 0.8053556084632874; +513.0679321289062, 0.7813349366188049; +513.1679077148438, 0.7605105638504028; +513.2678833007812, 0.7406696677207947; +513.367919921875, 0.7222890853881836; +513.4678955078125, 0.707678496837616; +513.56787109375, 0.6960704922676086; +513.6679077148438, 0.686250627040863; +513.7678833007812, 0.6785541772842407; +513.8678588867188, 0.6742775440216064; +513.9678344726562, 0.6738230586051941; +514.06787109375, 0.6752163171768188; +514.1678466796875, 0.6762593984603882; +514.267822265625, 0.6757080554962158; +514.3678588867188, 0.6747022271156311; +514.4678344726562, 0.6732717156410217; +514.5678100585938, 0.669434666633606; +514.6677856445312, 0.661604106426239; +514.767822265625, 0.6519034504890442; +514.8677978515625, 0.643707811832428; +514.9677734375, 0.6366744637489319; +515.0678100585938, 0.6292983889579773; +515.1677856445312, 0.6201937794685364; +515.2677612304688, 0.6097108125686646; +515.3677978515625, 0.596947968006134; +515.4677734375, 0.5808547139167786; +515.5677490234375, 0.5623847246170044; +515.667724609375, 0.5427896976470947; +515.7677612304688, 0.5233883857727051; +515.8677368164062, 0.5049780011177063; +515.9677124023438, 0.48933178186416626; +516.0677490234375, 0.47641992568969727; +516.167724609375, 0.46546757221221924; +516.2677001953125, 0.45524537563323975; +516.3677368164062, 0.44639408588409424; +516.4677124023438, 0.43895095586776733; +516.5676879882812, 0.43154507875442505; +516.6676635742188, 0.4241541028022766; +516.7677001953125, 0.41640549898147583; +516.86767578125, 0.40919333696365356; +516.9676513671875, 0.4015415906906128; +517.0676879882812, 0.394284725189209; +517.1676635742188, 0.38871169090270996; +517.2676391601562, 0.38461387157440186; +517.36767578125, 0.38076937198638916; +517.4676513671875, 0.37650763988494873; +517.567626953125, 0.3732442855834961; +517.6676025390625, 0.371687114238739; +517.7676391601562, 0.37097930908203125; +517.8676147460938, 0.3706216812133789; +517.9675903320312, 0.3700926899909973; +518.067626953125, 0.3685951232910156; +518.1676025390625, 0.36548078060150146; +518.267578125, 0.3613084554672241; +518.3675537109375, 0.3577694296836853; +518.4675903320312, 0.3539547324180603; +518.5675659179688, 0.34977495670318604; +518.6675415039062, 0.34614652395248413; +518.767578125, 0.34342706203460693; +518.8675537109375, 0.34080445766448975; +518.967529296875, 0.33677369356155396; +519.0675659179688, 0.3328248858451843; +519.1675415039062, 0.33042579889297485; +519.2675170898438, 0.330120325088501; +519.3674926757812, 0.33195316791534424; +519.467529296875, 0.33354759216308594; +519.5675048828125, 0.33371150493621826; +519.66748046875, 0.33195316791534424; +519.7675170898438, 0.33023208379745483; +519.8674926757812, 0.32858550548553467; +519.9674682617188, 0.326305627822876; +520.0675048828125, 0.3240033984184265; +520.16748046875, 0.3218799829483032; +520.2674560546875, 0.3204941749572754; +520.367431640625, 0.3183037042617798; +520.4674682617188, 0.314176082611084; +520.5674438476562, 0.308401882648468; +520.6674194335938, 0.3021135926246643; +520.7674560546875, 0.29709935188293457; +520.867431640625, 0.2932026982307434; +520.9674072265625, 0.28973817825317383; +521.0674438476562, 0.28730183839797974; +521.1674194335938, 0.28558820486068726; +521.2673950195312, 0.28495490550994873; +521.3673706054688, 0.285416841506958; +521.4674072265625, 0.28670579195022583; +521.5673828125, 0.2884864807128906; +521.6673583984375, 0.29046088457107544; +521.7673950195312, 0.29374659061431885; +521.8673706054688, 0.29859691858291626; +521.9673461914062, 0.30387938022613525; +522.0673828125, 0.30813366174697876; +522.1673583984375, 0.31122565269470215; +522.267333984375, 0.31382590532302856; +522.3673095703125, 0.31617283821105957; +522.4673461914062, 0.3184601664543152; +522.5673217773438, 0.32129138708114624; +522.6672973632812, 0.32601505517959595; +522.767333984375, 0.3319978713989258; +522.8673095703125, 0.33814460039138794; +522.96728515625, 0.34414976835250854; +523.0672607421875, 0.3498643636703491; +523.1672973632812, 0.3555715084075928; +523.2672729492188, 0.36197900772094727; +523.3672485351562, 0.37173181772232056; +523.46728515625, 0.3857612609863281; +523.5672607421875, 0.4034563899040222; +523.667236328125, 0.4243329167366028; +523.7672729492188, 0.4480034112930298; +523.8672485351562, 0.4742816090583801; +523.9672241210938, 0.5016103386878967; +524.0671997070312, 0.5302578210830688; +524.167236328125, 0.5614012479782104; +524.2672119140625, 0.5963742733001709; +524.3671875, 0.6369352340698242; +524.4672241210938, 0.6829202175140381; +524.5671997070312, 0.7338747382164001; +524.6671752929688, 0.7887482643127441; +524.7672119140625, 0.8460953831672668; +524.8671875, 0.9054169058799744; +524.9671630859375, 0.9662285447120667; +525.067138671875, 1.0283589363098145; +525.1671752929688, 1.0921881198883057; +525.2671508789062, 1.1578649282455444; +525.3671264648438, 1.2262091636657715; +525.4671630859375, 1.296393632888794; +525.567138671875, 1.366652488708496; +525.6671142578125, 1.436293125152588; +525.7671508789062, 1.5040487051010132; +525.8671264648438, 1.5682429075241089; +525.9671020507812, 1.6271322965621948; +526.0670776367188, 1.679345965385437; +526.1671142578125, 1.7243847846984863; +526.26708984375, 1.7619655132293701; +526.3670654296875, 1.7926321029663086; +526.4671020507812, 1.817271113395691; +526.5670776367188, 1.834951400756836; +526.6670532226562, 1.8455162048339844; +526.7670288085938, 1.8486454486846924; +526.8670654296875, 1.8445775508880615; +526.967041015625, 1.8328502178192139; +527.0670166015625, 1.813650131225586; +527.1670532226562, 1.789473056793213; +527.2670288085938, 1.7625019550323486; +527.3670043945312, 1.7331987619400024; +527.467041015625, 1.701056957244873; +527.5670166015625, 1.6677007675170898; +527.6669921875, 1.6358941793441772; +527.7669677734375, 1.6061514616012573; +527.8670043945312, 1.5775710344314575; +527.9669799804688, 1.552201747894287; +528.0669555664062, 1.533225178718567; +528.1669921875, 1.5213563442230225; +528.2669677734375, 1.5148744583129883; +528.366943359375, 1.5133395195007324; +528.4669799804688, 1.5189125537872314; +528.5669555664062, 1.532137393951416; +528.6669311523438, 1.5513672828674316; +528.7669067382812, 1.5753135681152344; +528.866943359375, 1.6049220561981201; +528.9669189453125, 1.640833854675293; +529.06689453125, 1.6818866729736328; +529.1669311523438, 1.7268731594085693; +529.2669067382812, 1.7765090465545654; +529.3668823242188, 1.8307119607925415; +529.4669189453125, 1.8876492977142334; +529.56689453125, 1.9460320472717285; +529.6668701171875, 2.006053924560547; +529.766845703125, 2.067997932434082; +529.8668823242188, 2.1303744316101074; +529.9668579101562, 2.1916627883911133; +530.0668334960938, 2.2503137588500977; +530.1668701171875, 2.306945562362671; +530.266845703125, 2.362161874771118; +530.3668212890625, 2.4155826568603516; +530.4668579101562, 2.4666264057159424; +530.5668334960938, 2.5162549018859863; +530.6668090820312, 2.5658159255981445; +530.7667846679688, 2.6131720542907715; +530.8668212890625, 2.655364513397217; +530.966796875, 2.6917457580566406; +531.0667724609375, 2.7227327823638916; +531.1668090820312, 2.7481541633605957; +531.2667846679688, 2.76830792427063; +531.3667602539062, 2.7854740619659424; +531.4667358398438, 2.801492691040039; +531.5667724609375, 2.817012310028076; +531.666748046875, 2.8301849365234375; +531.7667236328125, 2.839081048965454; +531.8667602539062, 2.843029737472534; +531.9667358398438, 2.84285831451416; +532.0667114257812, 2.8409063816070557; +532.166748046875, 2.8369650840759277; +532.2667236328125, 2.8321220874786377; +532.36669921875, 2.828054189682007; +532.4666748046875, 2.8253719806671143; +532.5667114257812, 2.8225183486938477; +532.6666870117188, 2.815641403198242; +532.7666625976562, 2.8044357299804688; +532.86669921875, 2.7916879653930664; +532.9666748046875, 2.778813362121582; +533.066650390625, 2.7660131454467773; +533.1666870117188, 2.753101348876953; +533.2666625976562, 2.741359233856201; +533.3666381835938, 2.7308835983276367; +533.4666137695312, 2.720430374145508; +533.566650390625, 2.711169481277466; +533.6666259765625, 2.7040390968322754; +533.7666015625, 2.699173927307129; +533.8666381835938, 2.6956052780151367; +533.9666137695312, 2.694427967071533; +534.0665893554688, 2.695746660232544; +534.1666259765625, 2.6984362602233887; +534.2666015625, 2.701409101486206; +534.3665771484375, 2.7052907943725586; +534.466552734375, 2.7117207050323486; +534.5665893554688, 2.7210936546325684; +534.6665649414062, 2.733670234680176; +534.7665405273438, 2.7487800121307373; +534.8665771484375, 2.766944408416748; +534.966552734375, 2.7887673377990723; +535.0665283203125, 2.8141512870788574; +535.16650390625, 2.8428807258605957; +535.2665405273438, 2.874784231185913; +535.3665161132812, 2.910398006439209; +535.4664916992188, 2.9498636722564697; +535.5665283203125, 2.9932186603546143; +535.66650390625, 3.0404105186462402; +535.7664794921875, 3.0888617038726807; +535.8665161132812, 3.137402296066284; +535.9664916992188, 3.1862034797668457; +536.0664672851562, 3.2361297607421875; +536.1664428710938, 3.286942958831787; +536.2664794921875, 3.337852716445923; +536.366455078125, 3.3899545669555664; +536.4664306640625, 3.4428908824920654; +536.5664672851562, 3.495119571685791; +536.6664428710938, 3.544248580932617; +536.7664184570312, 3.589063882827759; +536.866455078125, 3.6289618015289307; +536.9664306640625, 3.6627724170684814; +537.06640625, 3.688290596008301; +537.1663818359375, 3.703512191772461; +537.2664184570312, 3.70784854888916; +537.3663940429688, 3.7008376121520996; +537.4663696289062, 3.682590961456299; +537.56640625, 3.6518349647521973; +537.6663818359375, 3.608837604522705; +537.766357421875, 3.554731607437134; +537.8663940429688, 3.4899563789367676; +537.9663696289062, 3.413431406021118; +538.0663452148438, 3.323122978210449; +538.1663208007812, 3.2192766666412354; +538.266357421875, 3.1046197414398193; +538.3663330078125, 2.981714963912964; +538.46630859375, 2.8519482612609863; +538.5663452148438, 2.7158334255218506; +538.6663208007812, 2.573974370956421; +538.7662963867188, 2.4286582469940186; +538.8662719726562, 2.2806525230407715; +538.96630859375, 2.1303744316101074; +539.0662841796875, 1.9799917936325073; +539.166259765625, 1.833215355873108; +539.2662963867188, 1.6927123069763184; +539.3662719726562, 1.5581995248794556; +539.4662475585938, 1.4298558235168457; +539.5662841796875, 1.3089179992675781; +539.666259765625, 1.1953785419464111; +539.7662353515625, 1.0894014835357666; +539.8662109375, 0.9914413094520569; +539.9662475585938, 0.9032338857650757; +540.0662231445312, 0.8256286382675171; +540.1661987304688, 0.7581338286399841; +540.2662353515625, 0.6996244192123413; +540.3662109375, 0.6469860672950745; +540.4661865234375, 0.5983486771583557; +540.5662231445312, 0.552736222743988; +540.6661987304688, 0.5106478929519653; +540.7661743164062, 0.4733353853225708; +540.8661499023438, 0.44177472591400146; +540.9661865234375, 0.4160478711128235; +541.066162109375, 0.39612501859664917; +541.1661376953125, 0.3814026713371277; +541.2661743164062, 0.3712400794029236; +541.3661499023438, 0.36281347274780273; +541.4661254882812, 0.35284459590911865; +541.566162109375, 0.3409385681152344; +541.6661376953125, 0.32798200845718384; +541.76611328125, 0.3156140446662903; +541.8660888671875, 0.3038272261619568; +541.9661254882812, 0.29396265745162964; +542.0661010742188, 0.2869442105293274; +542.1660766601562, 0.2829357981681824; +542.26611328125, 0.28108060359954834; +542.3660888671875, 0.2810657024383545; +542.466064453125, 0.28314441442489624; +542.5661010742188, 0.2849772572517395; +542.6660766601562, 0.2850964665412903; +542.7660522460938, 0.2840384840965271; +542.8660278320312, 0.28315186500549316; +542.966064453125, 0.2817213535308838; +543.0660400390625, 0.2781301736831665; +543.166015625, 0.2745091915130615; +543.2660522460938, 0.2737492322921753; +543.3660278320312, 0.2749338746070862; +543.4660034179688, 0.2760067582130432; +543.5659790039062, 0.2766847610473633; +543.666015625, 0.27740001678466797; +543.7659912109375, 0.27699023485183716; +543.865966796875, 0.27445703744888306; +543.9660034179688, 0.27157366275787354; +544.0659790039062, 0.2696812152862549; +544.1659545898438, 0.2670660614967346; +544.2659912109375, 0.2635195851325989; +544.365966796875, 0.2606809139251709; +544.4659423828125, 0.25942176580429077; +544.56591796875, 0.2591535449028015; +544.6659545898438, 0.25825202465057373; +544.7659301757812, 0.25781989097595215; +544.8659057617188, 0.2584680914878845; +544.9659423828125, 0.25897473096847534; +545.06591796875, 0.2591460943222046; +545.1658935546875, 0.25841593742370605; +545.2659301757812, 0.2589970827102661; +545.3659057617188, 0.2608001232147217; +545.4658813476562, 0.2619251608848572; +545.5658569335938, 0.2621188759803772; +545.6658935546875, 0.2612695097923279; +545.765869140625, 0.2598017454147339; +545.8658447265625, 0.25635212659835815; +545.9658813476562, 0.2523288130760193; +546.0658569335938, 0.2506524324417114; +546.1658325195312, 0.25179237127304077; +546.265869140625, 0.253923237323761; +546.3658447265625, 0.2562403678894043; +546.4658203125, 0.25926530361175537; +546.5657958984375, 0.262238085269928; +546.6658325195312, 0.2634599804878235; +546.7658081054688, 0.2626478672027588; +546.8657836914062, 0.26153773069381714; +546.9658203125, 0.26141107082366943; +547.0657958984375, 0.26232004165649414; +547.165771484375, 0.2639591693878174; +547.2657470703125, 0.2658739686012268; +547.3657836914062, 0.2662762999534607; +547.4657592773438, 0.26372820138931274; +547.5657348632812, 0.2589225769042969; +547.665771484375, 0.2544224262237549; +547.7657470703125, 0.25191158056259155; +547.86572265625, 0.2514496445655823; +547.9657592773438, 0.25331974029541016; +548.0657348632812, 0.25766342878341675; +548.1657104492188, 0.26251375675201416; +548.2656860351562, 0.265367329120636; +548.36572265625, 0.26479363441467285; +548.4656982421875, 0.26107579469680786; +548.565673828125, 0.25553256273269653; +548.6657104492188, 0.2501383423805237; +548.7656860351562, 0.2464205026626587; +548.8656616210938, 0.24491548538208008; +548.9656982421875, 0.24427473545074463; +549.065673828125, 0.24384260177612305; +549.1656494140625, 0.24324655532836914; +549.265625, 0.24256110191345215; +549.3656616210938, 0.24199485778808594; +549.4656372070312, 0.24063140153884888; +549.5656127929688, 0.23937225341796875; +549.6656494140625, 0.2390146255493164; +549.765625, 0.24016201496124268; +549.8656005859375, 0.24094432592391968; +549.9656372070312, 0.24047493934631348; +550.0656127929688, 0.2403557300567627; +550.1655883789062, 0.2412348985671997; +550.2655639648438, 0.24230778217315674; +550.3656005859375, 0.2412945032119751; +550.465576171875, 0.2385154366493225; +550.5655517578125, 0.23511797189712524; +550.6655883789062, 0.23146718740463257; +550.7655639648438, 0.2278834581375122; +550.8655395507812, 0.2249106764793396; +550.9655151367188, 0.2241283655166626; +551.0655517578125, 0.22480636835098267; +551.16552734375, 0.22576749324798584; +551.2655029296875, 0.22570043802261353; +551.3655395507812, 0.22417306900024414; +551.4655151367188, 0.22175908088684082; +551.5654907226562, 0.21919608116149902; +551.66552734375, 0.21789222955703735; +551.7655029296875, 0.2171248197555542; +551.865478515625, 0.21626800298690796; +551.9654541015625, 0.21591782569885254; +552.0654907226562, 0.2163127064704895; +552.1654663085938, 0.21663308143615723; +552.2654418945312, 0.21605193614959717; +552.365478515625, 0.21564215421676636; +552.4654541015625, 0.21654367446899414; +552.5654296875, 0.21774321794509888; +552.6654663085938, 0.21819770336151123; +552.7654418945312, 0.21860748529434204; +552.8654174804688, 0.2201274037361145; +552.9653930664062, 0.22305548191070557; +553.0654296875, 0.22624433040618896; +553.1654052734375, 0.22912025451660156; +553.265380859375, 0.23149698972702026; +553.3654174804688, 0.23395568132400513; +553.4653930664062, 0.23740530014038086; +553.5653686523438, 0.24168193340301514; +553.6654052734375, 0.2464577555656433; +553.765380859375, 0.250890851020813; +553.8653564453125, 0.2553984522819519; +553.96533203125, 0.2600923180580139; +554.0653686523438, 0.2642422914505005; +554.1653442382812, 0.26760995388031006; +554.2653198242188, 0.2703666687011719; +554.3653564453125, 0.27404725551605225; +554.46533203125, 0.2788230776786804; +554.5653076171875, 0.28301775455474854; +554.6653442382812, 0.2856254577636719; +554.7653198242188, 0.2869218587875366; +554.8652954101562, 0.28842687606811523; +554.9652709960938, 0.2900063991546631; +555.0653076171875, 0.2914145588874817; +555.165283203125, 0.29277801513671875; +555.2652587890625, 0.2944245934486389; +555.3652954101562, 0.29606372117996216; +555.4652709960938, 0.2964213490486145; +555.5652465820312, 0.295199453830719; +555.6652221679688, 0.29324740171432495; +555.7652587890625, 0.2918541431427002; +555.865234375, 0.2907663583755493; +555.9652099609375, 0.2892911434173584; +556.0652465820312, 0.28821825981140137; +556.1652221679688, 0.28824806213378906; +556.2651977539062, 0.2886652946472168; +556.365234375, 0.2880766987800598; +556.4652099609375, 0.2870038151741028; +556.565185546875, 0.2864450216293335; +556.6651611328125, 0.28612464666366577; +556.7651977539062, 0.28555840253829956; +556.8651733398438, 0.2839714288711548; +556.9651489257812, 0.2816244959831238; +557.065185546875, 0.2785399556159973; +557.1651611328125, 0.2748817205429077; +557.26513671875, 0.27070194482803345; +557.3651733398438, 0.26601552963256836; +557.4651489257812, 0.26220083236694336; +557.5651245117188, 0.2604275941848755; +557.6651000976562, 0.2605244517326355; +557.76513671875, 0.26150792837142944; +557.8651123046875, 0.2628713846206665; +557.965087890625, 0.26363134384155273; +558.0651245117188, 0.26263296604156494; +558.1651000976562, 0.2593919634819031; +558.2650756835938, 0.2549588680267334; +558.3651123046875, 0.2500489354133606; +558.465087890625, 0.24449825286865234; +558.5650634765625, 0.23968517780303955; +558.6650390625, 0.2369806170463562; +558.7650756835938, 0.2361387014389038; +558.8650512695312, 0.23581087589263916; +558.9650268554688, 0.23593753576278687; +559.0650634765625, 0.23756176233291626; +559.1650390625, 0.24008750915527344; +559.2650146484375, 0.2422332763671875; +559.364990234375, 0.2428591251373291; +559.4650268554688, 0.24291127920150757; +559.5650024414062, 0.24338066577911377; +559.6649780273438, 0.24440139532089233; +559.7650146484375, 0.24531036615371704; +559.864990234375, 0.24525821208953857; +559.9649658203125, 0.24552643299102783; +560.0650024414062, 0.24638324975967407; +560.1649780273438, 0.24652481079101562; +560.2649536132812, 0.2450123429298401; +560.3649291992188, 0.2427920699119568; +560.4649658203125, 0.24127215147018433; +560.56494140625, 0.24060159921646118; +560.6649169921875, 0.23963302373886108; +560.7649536132812, 0.23926794528961182; +560.8649291992188, 0.24054944515228271; +560.9649047851562, 0.24369359016418457; +561.06494140625, 0.24840235710144043; +561.1649169921875, 0.2529025077819824; +561.264892578125, 0.25650858879089355; +561.3648681640625, 0.25831907987594604; +561.4649047851562, 0.2584382891654968; +561.5648803710938, 0.2578645944595337; +561.6648559570312, 0.25738775730133057; +561.764892578125, 0.2581477165222168; +561.8648681640625, 0.2609342336654663; +561.96484375, 0.2654269337654114; +562.0648803710938, 0.27064234018325806; +562.1648559570312, 0.27407705783843994; +562.2648315429688, 0.27533620595932007; +562.3648071289062, 0.2761036157608032; +562.46484375, 0.276908278465271; +562.5648193359375, 0.2774745225906372; +562.664794921875, 0.27717649936676025; +562.7648315429688, 0.27808547019958496; +562.8648071289062, 0.2814382314682007; +562.9647827148438, 0.28440356254577637; +563.0648193359375, 0.2849400043487549; +563.164794921875, 0.28417259454727173; +563.2647705078125, 0.28439611196517944; +563.36474609375, 0.2852305769920349; +563.4647827148438, 0.28464943170547485; +563.5647583007812, 0.2833157777786255; +563.6647338867188, 0.28298795223236084; +563.7647705078125, 0.2844780683517456; +563.86474609375, 0.28824061155319214; +563.9647216796875, 0.294514000415802; +564.064697265625, 0.30197203159332275; +564.1647338867188, 0.3094300627708435; +564.2647094726562, 0.31703710556030273; +564.3646850585938, 0.3254339098930359; +564.4647216796875, 0.3337860107421875; +564.564697265625, 0.3402605652809143; +564.6646728515625, 0.3456324338912964; +564.7647094726562, 0.3529787063598633; +564.8646850585938, 0.36425888538360596; +564.9646606445312, 0.37833303213119507; +565.0646362304688, 0.39270520210266113; +565.1646728515625, 0.40652602910995483; +565.2646484375, 0.4215538501739502; +565.3646240234375, 0.43826550245285034; +565.4646606445312, 0.4559829831123352; +565.5646362304688, 0.47381967306137085; +565.6646118164062, 0.4918202757835388; +565.7646484375, 0.5108416080474854; +565.8646240234375, 0.5298703908920288; +565.964599609375, 0.5476251244544983; +566.0645751953125, 0.5630776286125183; +566.1646118164062, 0.5773380398750305; +566.2645874023438, 0.5924627184867859; +566.3645629882812, 0.6095319986343384; +566.464599609375, 0.6286352872848511; +566.5645751953125, 0.6482452154159546; +566.66455078125, 0.6681680679321289; +566.7645874023438, 0.6873831152915955; +566.8645629882812, 0.7050484418869019; +566.9645385742188, 0.7207691669464111; +567.0645141601562, 0.7353425025939941; +567.16455078125, 0.7496923208236694; +567.2645263671875, 0.7615461945533752; +567.364501953125, 0.7698982954025269; +567.4645385742188, 0.7754340767860413; +567.5645141601562, 0.7800832390785217; +567.6644897460938, 0.7842183113098145; +567.7644653320312, 0.7886290550231934; +567.864501953125, 0.7940977811813354; +567.9644775390625, 0.7994025945663452; +568.064453125, 0.803336501121521; +568.1644897460938, 0.8053258061408997; +568.2644653320312, 0.8062943816184998; +568.3644409179688, 0.8071213960647583; +568.4644775390625, 0.809788703918457; +568.564453125, 0.8152201771736145; +568.6644287109375, 0.8219853043556213; +568.764404296875, 0.8277073502540588; +568.8644409179688, 0.8314922451972961; +568.9644165039062, 0.832676887512207; +569.0643920898438, 0.8300319314002991; +569.1644287109375, 0.8248314261436462; +569.264404296875, 0.8194595575332642; +569.3643798828125, 0.8156523108482361; +569.4644165039062, 0.8121952414512634; +569.5643920898438, 0.8083432912826538; +569.6643676757812, 0.8050799369812012; +569.7643432617188, 0.8022189140319824; +569.8643798828125, 0.7982030510902405; +569.96435546875, 0.7925257086753845; +570.0643310546875, 0.7868260145187378; +570.1643676757812, 0.7821470499038696; +570.2643432617188, 0.7783547043800354; +570.3643188476562, 0.7753521203994751; +570.46435546875, 0.7748007774353027; +570.5643310546875, 0.7768422365188599; +570.664306640625, 0.7801055908203125; +570.7642822265625, 0.7829442620277405; +570.8643188476562, 0.7842257618904114; +570.9642944335938, 0.7850006222724915; +571.0642700195312, 0.7846802473068237; +571.164306640625, 0.7827505469322205; +571.2642822265625, 0.7793456315994263; +571.3642578125, 0.776141881942749; +571.4642333984375, 0.7743462920188904; +571.5642700195312, 0.7729306817054749; +571.6642456054688, 0.7724836468696594; +571.7642211914062, 0.7738023996353149; +571.8642578125, 0.7763132452964783; +571.9642333984375, 0.7783994078636169; +572.064208984375, 0.7811784744262695; +572.1642456054688, 0.7861629128456116; +572.2642211914062, 0.7922649383544922; +572.3641967773438, 0.7980242371559143; +572.4641723632812, 0.8046180009841919; +572.564208984375, 0.8139312267303467; +572.6641845703125, 0.8238926529884338; +572.76416015625, 0.8318424224853516; +572.8641967773438, 0.8377283811569214; +572.9641723632812, 0.8438751101493835; +573.0641479492188, 0.8512437343597412; +573.1641845703125, 0.8582845330238342; +573.26416015625, 0.8646324276924133; +573.3641357421875, 0.8712485432624817; +573.464111328125, 0.878848135471344; +573.5641479492188, 0.8862316608428955; +573.6641235351562, 0.8921921253204346; +573.7640991210938, 0.8973628282546997; +573.8641357421875, 0.9020864963531494; +573.964111328125, 0.9060204029083252; +574.0640869140625, 0.9089335799217224; +574.1641235351562, 0.9111762046813965; +574.2640991210938, 0.9123608469963074; +574.3640747070312, 0.9118914604187012; +574.4640502929688, 0.908873975276947; +574.5640869140625, 0.903785228729248; +574.6640625, 0.8967220783233643; +574.7640380859375, 0.8879527449607849; +574.8640747070312, 0.87776780128479; +574.9640502929688, 0.8656010031700134; +575.0640258789062, 0.8526965975761414; +575.1640625, 0.8382126688957214; +575.2640380859375, 0.8218809962272644; +575.364013671875, 0.8027926087379456; +575.4639892578125, 0.7808059453964233; +575.5640258789062, 0.758439302444458; +575.6640014648438, 0.7366612553596497; +575.7639770507812, 0.7161647081375122; +575.864013671875, 0.6953701376914978; +575.9639892578125, 0.6734728813171387; +576.06396484375, 0.6509795784950256; +576.1639404296875, 0.628054141998291; +576.2639770507812, 0.6050392985343933; +576.3639526367188, 0.5814060568809509; +576.4639282226562, 0.5581080913543701; +576.56396484375, 0.5358979105949402; +576.6639404296875, 0.5150213837623596; +576.763916015625, 0.4933848977088928; +576.8639526367188, 0.4696846008300781; +576.9639282226562, 0.4464685916900635; +577.0639038085938, 0.425487756729126; +577.1638793945312, 0.40730834007263184; +577.263916015625, 0.3899410367012024; +577.3638916015625, 0.3731176257133484; +577.4638671875, 0.35687536001205444; +577.5639038085938, 0.3401562571525574; +577.6638793945312, 0.3232210874557495; +577.7638549804688, 0.3074929118156433; +577.8638916015625, 0.2949908375740051; +577.9638671875, 0.28564780950546265; +578.0638427734375, 0.2785325050354004; +578.163818359375, 0.2719610929489136; +578.2638549804688, 0.26488304138183594; +578.3638305664062, 0.2565532922744751; +578.4638061523438, 0.24725496768951416; +578.5638427734375, 0.23793429136276245; +578.663818359375, 0.22879987955093384; +578.7637939453125, 0.22052228450775146; +578.8638305664062, 0.21363049745559692; +578.9638061523438, 0.20883232355117798; +579.0637817382812, 0.20522624254226685; +579.1637573242188, 0.2016127109527588; +579.2637939453125, 0.19824504852294922; +579.36376953125, 0.1964271068572998; +579.4637451171875, 0.1966133713722229; +579.5637817382812, 0.1972690224647522; +579.6637573242188, 0.19766390323638916; +579.7637329101562, 0.197678804397583; +579.8637084960938, 0.19707530736923218; +579.9637451171875, 0.1946091651916504; +580.063720703125, 0.19030272960662842; +580.1636962890625, 0.18605589866638184; +580.2637329101562, 0.18220394849777222; +580.3637084960938, 0.17824769020080566; +580.4636840820312, 0.17468631267547607; +580.563720703125, 0.17295032739639282; +580.6636962890625, 0.1725703477859497; +580.763671875, 0.17060339450836182; +580.8636474609375, 0.16761571168899536; +580.9636840820312, 0.16538798809051514; +581.0636596679688, 0.16369670629501343; +581.1636352539062, 0.16144663095474243; +581.263671875, 0.15880167484283447; +581.3636474609375, 0.15757232904434204; +581.463623046875, 0.15725940465927124; +581.5636596679688, 0.15702098608016968; +581.6636352539062, 0.15747547149658203; +581.7636108398438, 0.15982240438461304; +581.8635864257812, 0.16383081674575806; +581.963623046875, 0.16770511865615845; +582.0635986328125, 0.1699700951576233; +582.16357421875, 0.17096102237701416; +582.2636108398438, 0.17216801643371582; +582.3635864257812, 0.17255544662475586; +582.4635620117188, 0.1711621880531311; +582.5635986328125, 0.1684129238128662; +582.66357421875, 0.16597658395767212; +582.7635498046875, 0.16430020332336426; +582.863525390625, 0.1615285873413086; +582.9635620117188, 0.1578405499458313; +583.0635375976562, 0.15464425086975098; +583.1635131835938, 0.15335530042648315; +583.2635498046875, 0.15380233526229858; +583.363525390625, 0.1545548439025879; +583.4635009765625, 0.15557557344436646; +583.5634765625, 0.1577511429786682; +583.6635131835938, 0.16014277935028076; +583.7634887695312, 0.16177445650100708; +583.8634643554688, 0.16230344772338867; +583.9635009765625, 0.16354024410247803; +584.0634765625, 0.1659393310546875; +584.1634521484375, 0.16798079013824463; +584.2634887695312, 0.16942620277404785; +584.3634643554688, 0.17029047012329102; +584.4634399414062, 0.17039477825164795; +584.5634155273438, 0.16935914754867554; +584.6634521484375, 0.16780942678451538; +584.763427734375, 0.16691535711288452; +584.8634033203125, 0.16738474369049072; +584.9634399414062, 0.1682564616203308; +585.0634155273438, 0.16926229000091553; +585.1633911132812, 0.16993284225463867; +585.263427734375, 0.17065554857254028; +585.3634033203125, 0.17174333333969116; +585.46337890625, 0.17251074314117432; +585.5633544921875, 0.17201900482177734; +585.6633911132812, 0.17104297876358032; +585.7633666992188, 0.1715049147605896; +585.8633422851562, 0.17320364713668823; +585.96337890625, 0.1736283302307129; +586.0633544921875, 0.17230212688446045; +586.163330078125, 0.17261505126953125; +586.2633666992188, 0.17539411783218384; +586.3633422851562, 0.1787319779396057; +586.4633178710938, 0.18136948347091675; +586.5632934570312, 0.18443167209625244; +586.663330078125, 0.18840283155441284; +586.7633056640625, 0.19178539514541626; +586.86328125, 0.19419938325881958; +586.9633178710938, 0.1959279179573059; +587.0632934570312, 0.19735097885131836; +587.1632690429688, 0.19903481006622314; +587.2633056640625, 0.20132213830947876; +587.36328125, 0.20440667867660522; +587.4632568359375, 0.208146870136261; +587.563232421875, 0.21186470985412598; +587.6632690429688, 0.2147182822227478; +587.7632446289062, 0.21600723266601562; +587.8632202148438, 0.21649152040481567; +587.9632568359375, 0.216655433177948; +588.063232421875, 0.21746009588241577; +588.1632080078125, 0.22011995315551758; +588.26318359375, 0.22529065608978271; +588.3632202148438, 0.2327561378479004; +588.4631958007812, 0.24034082889556885; +588.5631713867188, 0.24765729904174805; +588.6632080078125, 0.25384873151779175; +588.76318359375, 0.2592131495475769; +588.8631591796875, 0.2637207508087158; +588.9631958007812, 0.26704370975494385; +589.0631713867188, 0.26991963386535645; +589.1631469726562, 0.2723410725593567; +589.2631225585938, 0.2752542495727539; +589.3631591796875, 0.2782866358757019; +589.463134765625, 0.2814382314682007; +589.5631103515625, 0.2846941351890564; +589.6631469726562, 0.2881288528442383; +589.7631225585938, 0.29218196868896484; +589.8630981445312, 0.29640644788742065; +589.963134765625, 0.3008618950843811; +590.0631103515625, 0.3063976764678955; +590.1630859375, 0.31391531229019165; +590.2630615234375, 0.3226250410079956; +590.3630981445312, 0.33098459243774414; +590.4630737304688, 0.3391876816749573; +590.5630493164062, 0.34859031438827515; +590.6630859375, 0.35774707794189453; +590.7630615234375, 0.36410242319107056; +590.863037109375, 0.36813318729400635; +590.9630737304688, 0.37279725074768066; +591.0630493164062, 0.37904828786849976; +591.1630249023438, 0.3852173686027527; +591.2630004882812, 0.39111077785491943; +591.363037109375, 0.3989413380622864; +591.4630126953125, 0.4096031188964844; +591.56298828125, 0.4208609461784363; +591.6630249023438, 0.4308074712753296; +591.7630004882812, 0.43927133083343506; +591.8629760742188, 0.44704973697662354; +591.9629516601562, 0.45424699783325195; +592.06298828125, 0.4612356424331665; +592.1629638671875, 0.46800076961517334; +592.262939453125, 0.47472119331359863; +592.3629760742188, 0.4816129803657532; +592.4629516601562, 0.4901587963104248; +592.5629272460938, 0.5008652806282043; +592.6629638671875, 0.5127117037773132; +592.762939453125, 0.5249977111816406; +592.8629150390625, 0.537186861038208; +592.962890625, 0.5492269992828369; +593.0629272460938, 0.5595237016677856; +593.1629028320312, 0.5680844187736511; +593.2628784179688, 0.5762279033660889; +593.3629150390625, 0.5862042307853699; +593.462890625, 0.5991905927658081; +593.5628662109375, 0.6143152713775635; +593.6629028320312, 0.6312727928161621; +593.7628784179688, 0.6484314799308777; +593.8628540039062, 0.6648227572441101; +593.9628295898438, 0.6793290376663208; +594.0628662109375, 0.6917566061019897; +594.162841796875, 0.7039457559585571; +594.2628173828125, 0.7179155945777893; +594.3628540039062, 0.7355436682701111; +594.4628295898438, 0.7558688521385193; +594.5628051757812, 0.7770359516143799; +594.662841796875, 0.7979646325111389; +594.7628173828125, 0.8189454674720764; +594.86279296875, 0.83962082862854; +594.9627685546875, 0.8599832653999329; +595.0628051757812, 0.8806735277175903; +595.1627807617188, 0.9041354060173035; +595.2627563476562, 0.9309500455856323; +595.36279296875, 0.9592324495315552; +595.4627685546875, 0.987708568572998; +595.562744140625, 1.0158419609069824; +595.6627807617188, 1.04522705078125; +595.7627563476562, 1.0752155780792236; +595.8627319335938, 1.1059119701385498; +595.9627075195312, 1.1375993490219116; +596.062744140625, 1.1706724166870117; +596.1627197265625, 1.2054369449615479; +596.2626953125, 1.2415945529937744; +596.3627319335938, 1.279555320739746; +596.4627075195312, 1.3195500373840332; +596.5626831054688, 1.3622119426727295; +596.6626586914062, 1.407064437866211; +596.7626953125, 1.4534220695495605; +596.8626708984375, 1.5008971691131592; +596.962646484375, 1.5508085489273071; +597.0626831054688, 1.6036033630371094; +597.1626586914062, 1.6582608222961426; +597.2626342773438, 1.7141103744506836; +597.3626708984375, 1.771904468536377; +597.462646484375, 1.8325597047805786; +597.5626220703125, 1.895822525024414; +597.66259765625, 1.9615590572357178; +597.7626342773438, 2.0303800106048584; +597.8626098632812, 2.1037757396698; +597.9625854492188, 2.182610273361206; +598.0626220703125, 2.2668168544769287; +598.16259765625, 2.3551509380340576; +598.2625732421875, 2.446331024169922; +598.3626098632812, 2.5397465229034424; +598.4625854492188, 2.6346592903137207; +598.5625610351562, 2.7302205562591553; +598.6625366210938, 2.8270483016967773; +598.7625732421875, 2.9266550540924072; +598.862548828125, 3.0298306941986084; +598.9625244140625, 3.136061191558838; +599.0625610351562, 3.2453908920288086; +599.1625366210938, 3.358513116836548; +599.2625122070312, 3.473952293395996; +599.362548828125, 3.588907480239868; +599.4625244140625, 3.7024617195129395; +599.5625, 3.815345525741577; +599.6624755859375, 3.9267687797546387; +599.7625122070312, 4.029475212097168; +599.8624877929688, 4.098102569580078; +##END= + +$$ === CHEMSPECTRA INTEGRALS AND MULTIPLETS === +##PAGE=280.0 +##$OBSERVEDINTEGRALS= (X Y Z) +##$OBSERVEDMULTIPLETS= +##$OBSERVEDMULTIPLETSPEAKS= +##END= + +$$ === CHEMSPECTRA PEAK TABLE EDIT === +##TITLE=908f81fc-5890-4b40-b630-40c8c39f2c97 +##JCAMP-DX=5.00 +##DATA TYPE=LC/MSPEAKTABLE +##DATA CLASS=PEAKTABLE +##$CSCATEGORY=EDIT_PEAK +##$CSTHRESHOLD=0.05 +##MAXX=599.8624877929688 +##MAXY=353.548095703125 +##MINX=0.0 +##MINY=-3.6692471504211426 +##PAGE=280.0 +##NPOINTS=0 +##PEAKTABLE= (XY..XY) +##END= + +$$ === CHEMSPECTRA PEAK TABLE AUTO === +##TITLE=908f81fc-5890-4b40-b630-40c8c39f2c97 +##JCAMP-DX=5.00 +##DATA TYPE=LC/MSPEAKTABLE +##DATA CLASS=PEAKTABLE +##$CSCATEGORY=AUTO_PEAK +##$CSTHRESHOLD=0.05 +##MAXX=599.8624877929688 +##MAXY=353.548095703125 +##MINX=0.0 +##MINY=-3.6692471504211426 +##PAGE=280.0 +##NPOINTS=3 +##PEAKTABLE= (XY..XY) +426.6733093261719, 353.548095703125 +421.9736022949219, 110.1534652709961 +409.1744079589844, 19.540510177612305 +##END= + +$$ === CHEMSPECTRA UVVIS PEAK TABLE === +##TITLE=908f81fc-5890-4b40-b630-40c8c39f2c97 +##JCAMP-DX=5.00 +##DATA TYPE=LC/MS +##DATA CLASS=PEAK TABLE +##ORIGIN= +##OWNER= +##XUNITS=RETENTION TIME +##YUNITS=DETECTOR SIGNAL +##$CSCATEGORY=UVVIS PEAK TABLE +##PAGE=366.0 +##NPOINTS=6000 +##DATA TABLE= (XY..XY), PEAKS +0.0, -0.3864988684654236; +0.0999937504529953, -0.3903433680534363; +0.1999875009059906, -0.395454466342926; +0.2999812364578247, -0.3979876637458801; +0.3999750018119812, -0.39727985858917236; +0.4999687373638153, -0.3958567976951599; +0.5999624729156494, -0.3942027688026428; +0.6999562382698059, -0.39365142583847046; +0.7999500036239624, -0.39546191692352295; +0.8999437093734741, -0.4004240036010742; +0.9999374747276306, -0.4068613052368164; +1.099931240081787, -0.412866473197937; +1.1999249458312988, -0.4179030656814575; +1.2999186515808105, -0.421375036239624; +1.3999124765396118, -0.42241811752319336; +1.4999061822891235, -0.4198029637336731; +1.5999000072479248, -0.4160180687904358; +1.6998937129974365, -0.4134848713874817; +1.7998874187469482, -0.41189044713974; +1.8998812437057495, -0.4093870520591736; +1.9998749494552612, -0.40686875581741333; +2.0998687744140625, -0.4058852791786194; +2.199862480163574, -0.40503591299057007; +2.299856185913086, -0.4030689597129822; +2.3998498916625977, -0.4016011953353882; +2.4998435974121094, -0.40368735790252686; +2.599837303161621, -0.40859729051589966; +2.699831247329712, -0.4140138626098633; +2.7998249530792236, -0.41778385639190674; +2.8998186588287354, -0.4205480217933655; +2.999812364578247, -0.4231110215187073; +3.099806070327759, -0.4240274429321289; +3.1998000144958496, -0.42244791984558105; +3.2997937202453613, -0.42019039392471313; +3.399787425994873, -0.4202127456665039; +3.4997811317443848, -0.41937828063964844; +3.5997748374938965, -0.4144236445426941; +3.699768543243408, -0.4079192876815796; +3.799762487411499, -0.4047304391860962; +3.8997561931610107, -0.40644407272338867; +3.9997498989105225, -0.4094615578651428; +4.099743843078613, -0.41313469409942627; +4.199737548828125, -0.41791796684265137; +4.299731254577637, -0.42360275983810425; +4.399724960327148, -0.4298090934753418; +4.49971866607666, -0.435754656791687; +4.599712371826172, -0.4427284002304077; +4.699706077575684, -0.4489421844482422; +4.799699783325195, -0.45339763164520264; +4.899693489074707, -0.45521557331085205; +4.999687194824219, -0.4535093903541565; +5.0996809005737305, -0.4481971263885498; +5.199674606323242, -0.4411041736602783; +5.299668788909912, -0.4363134503364563; +5.399662494659424, -0.4339367151260376; +5.4996562004089355, -0.4318132996559143; +5.599649906158447, -0.4289001226425171; +5.699643611907959, -0.4270300269126892; +5.799637317657471, -0.42538344860076904; +5.899631023406982, -0.42385607957839966; +5.999624729156494, -0.42354315519332886; +6.099618434906006, -0.4250630736351013; +6.199612140655518, -0.42701512575149536; +6.299605846405029, -0.42913854122161865; +6.399600028991699, -0.4324093461036682; +6.499593734741211, -0.4350394010543823; +6.599587440490723, -0.43511390686035156; +6.699581146240234, -0.4332512617111206; +6.799574851989746, -0.43126195669174194; +6.899568557739258, -0.42719393968582153; +6.9995622634887695, -0.4226267337799072; +7.099555969238281, -0.4192814230918884; +7.199549674987793, -0.418148934841156; +7.299543380737305, -0.41816383600234985; +7.399537086486816, -0.41998177766799927; +7.499530792236328, -0.4253387451171875; +7.599524974822998, -0.43085217475891113; +7.69951868057251, -0.4348829388618469; +7.7995123863220215, -0.4380568861961365; +7.899506092071533, -0.4415363073348999; +7.999499797821045, -0.4444420337677002; +8.099493026733398, -0.44645369052886963; +8.199487686157227, -0.4484206438064575; +8.299481391906738, -0.4487261176109314; +8.39947509765625, -0.4456862807273865; +8.499468803405762, -0.44142454862594604; +8.599462509155273, -0.43824315071105957; +8.699456214904785, -0.43607503175735474; +8.799449920654297, -0.43423473834991455; +8.899443626403809, -0.4350617527961731; +8.99943733215332, -0.44007599353790283; +9.099431037902832, -0.4471689462661743; +9.199424743652344, -0.4540160298347473; +9.299418449401855, -0.45962631702423096; +9.399412155151367, -0.4639923572540283; +9.499405860900879, -0.4673972725868225; +9.59939956665039, -0.4692152142524719; +9.699393272399902, -0.46897679567337036; +9.799386978149414, -0.467054545879364; +9.899380683898926, -0.46494603157043457; +9.999374389648438, -0.4642903804779053; +10.09936809539795, -0.46525895595550537; +10.199361801147461, -0.4675835371017456; +10.299355506896973, -0.46975910663604736; +10.399349212646484, -0.4714280366897583; +10.499343872070312, -0.4724040627479553; +10.599337577819824, -0.47347694635391235; +10.699331283569336, -0.4732981324195862; +10.799324989318848, -0.47028809785842896; +10.89931869506836, -0.4656389355659485; +10.999312400817871, -0.46102702617645264; +11.099306106567383, -0.4584267735481262; +11.199299812316895, -0.45643746852874756; +11.299293518066406, -0.453069806098938; +11.399287223815918, -0.44867396354675293; +11.49928092956543, -0.44502317905426025; +11.599274635314941, -0.4441589117050171; +11.699268341064453, -0.44502317905426025; +11.799262046813965, -0.44567883014678955; +11.899255752563477, -0.446416437625885; +11.999249458312988, -0.4493221640586853; +12.0992431640625, -0.4548206925392151; +12.199236869812012, -0.4591643810272217; +12.299230575561523, -0.4601329565048218; +12.399224281311035, -0.46015530824661255; +12.499217987060547, -0.46309083700180054; +12.599211692810059, -0.46896934509277344; +12.69920539855957, -0.47490745782852173; +12.799200057983398, -0.47944486141204834; +12.89919376373291, -0.4830211400985718; +12.999187469482422, -0.4851594567298889; +13.099181175231934, -0.48454105854034424; +13.199174880981445, -0.4799962043762207; +13.299168586730957, -0.47219544649124146; +13.399162292480469, -0.46446919441223145; +13.49915599822998, -0.459820032119751; +13.599149703979492, -0.45881420373916626; +13.699143409729004, -0.4605129361152649; +13.799137115478516, -0.4637911915779114; +13.899130821228027, -0.4695430397987366; +13.999124526977539, -0.4765540361404419; +14.09911823272705, -0.48170238733291626; +14.199111938476562, -0.4826784133911133; +14.299105644226074, -0.4801452159881592; +14.399099349975586, -0.4772692918777466; +14.499093055725098, -0.47456473112106323; +14.59908676147461, -0.4713982343673706; +14.699080467224121, -0.4668384790420532; +14.799074172973633, -0.46218186616897583; +14.899067878723145, -0.4587993025779724; +14.999061584472656, -0.4574432969093323; +15.099056243896484, -0.4560202360153198; +15.199049949645996, -0.4540160298347473; +15.299043655395508, -0.4534795880317688; +15.39903736114502, -0.4575997591018677; +15.499031066894531, -0.4636794328689575; +15.599024772644043, -0.46693533658981323; +15.699018478393555, -0.46815723180770874; +15.799012184143066, -0.4702657461166382; +15.899005889892578, -0.47319382429122925; +15.99899959564209, -0.4742369055747986; +16.0989933013916, -0.4752501845359802; +16.198986053466797, -0.47989189624786377; +16.298980712890625, -0.4876852035522461; +16.398975372314453, -0.49407780170440674; +16.49896812438965, -0.49877166748046875; +16.598962783813477, -0.5027353763580322; +16.698955535888672, -0.5059093236923218; +16.7989501953125, -0.5061477422714233; +16.898942947387695, -0.5034282803535461; +16.998937606811523, -0.5004554986953735; +17.09893035888672, -0.4982873797416687; +17.198925018310547, -0.4956349730491638; +17.298917770385742, -0.49185752868652344; +17.39891242980957, -0.4883706569671631; +17.498905181884766, -0.4863664507865906; +17.598899841308594, -0.4865303635597229; +17.69889259338379, -0.48820674419403076; +17.798887252807617, -0.49296021461486816; +17.898880004882812, -0.4996359348297119; +17.99887466430664, -0.5055367946624756; +18.098867416381836, -0.5109980702400208; +18.198862075805664, -0.5162358283996582; +18.29885482788086, -0.5204826593399048; +18.398849487304688, -0.5212649703025818; +18.498842239379883, -0.5174353718757629; +18.59883689880371, -0.512048602104187; +18.69883155822754, -0.5061998963356018; +18.798824310302734, -0.501677393913269; +18.898818969726562, -0.49801915884017944; +18.998811721801758, -0.49430131912231445; +19.098806381225586, -0.4922226071357727; +19.19879913330078, -0.49263983964920044; +19.29879379272461, -0.49524009227752686; +19.398786544799805, -0.4978105425834656; +19.498781204223633, -0.4987195134162903; +19.598773956298828, -0.49917399883270264; +19.698768615722656, -0.499725341796875; +19.79876136779785, -0.5003288388252258; +19.89875602722168, -0.4995763301849365; +19.998748779296875, -0.49695372581481934; +20.098743438720703, -0.4956349730491638; +20.1987361907959, -0.4962533712387085; +20.298730850219727, -0.49776583909988403; +20.398723602294922, -0.497475266456604; +20.49871826171875, -0.49461424350738525; +20.598711013793945, -0.49089640378952026; +20.698705673217773, -0.48782676458358765; +20.79869842529297, -0.4861876368522644; +20.898693084716797, -0.4864633083343506; +20.998687744140625, -0.4889965057373047; +21.09868049621582, -0.4950016736984253; +21.19867515563965, -0.5020648241043091; +21.298667907714844, -0.5064383149147034; +21.398662567138672, -0.5074068903923035; +21.498655319213867, -0.506184995174408; +21.598649978637695, -0.5033686757087708; +21.69864273071289, -0.4991963505744934; +21.79863739013672, -0.4968419671058655; +21.898630142211914, -0.4983171820640564; +21.998624801635742, -0.5013421177864075; +22.098617553710938, -0.5042403936386108; +22.198612213134766, -0.5084797739982605; +22.29860496520996, -0.5139261484146118; +22.39859962463379, -0.5164071917533875; +22.498592376708984, -0.5152449011802673; +22.598587036132812, -0.5139932036399841; +22.698579788208008, -0.5131885409355164; +22.798574447631836, -0.5108192563056946; +22.89856719970703, -0.5074068903923035; +22.99856185913086, -0.5065426230430603; +23.098554611206055, -0.5087703466415405; +23.198549270629883, -0.5112588405609131; +23.29854393005371, -0.5144774913787842; +23.398536682128906, -0.5192458629608154; +23.498531341552734, -0.5240067839622498; +23.59852409362793, -0.525057315826416; +23.698518753051758, -0.5219951272010803; +23.798511505126953, -0.518403947353363; +23.89850616455078, -0.5169808864593506; +23.998498916625977, -0.5177035927772522; +24.098493576049805, -0.5199313163757324; +24.198486328125, -0.5248114466667175; +24.298480987548828, -0.5319267511367798; +24.398473739624023, -0.5386322736740112; +24.49846839904785, -0.5424022674560547; +24.598461151123047, -0.5433559417724609; +24.698455810546875, -0.5425214767456055; +24.79844856262207, -0.5398988723754883; +24.8984432220459, -0.5367100238800049; +24.998435974121094, -0.5345791578292847; +25.098430633544922, -0.532887876033783; +25.198423385620117, -0.5314722657203674; +25.298418045043945, -0.5308240652084351; +25.39841079711914, -0.5318298935890198; +25.49840545654297, -0.5325525999069214; +25.598400115966797, -0.5322545766830444; +25.698392868041992, -0.5329996347427368; +25.79838752746582, -0.5350708961486816; +25.898380279541016, -0.5374327301979065; +25.998374938964844, -0.5397126078605652; +26.09836769104004, -0.5429312586784363; +26.198362350463867, -0.5463957786560059; +26.298355102539062, -0.5481094121932983; +26.39834976196289, -0.5474090576171875; +26.498342514038086, -0.5456805229187012; +26.598337173461914, -0.5422085523605347; +26.69832992553711, -0.5370229482650757; +26.798324584960938, -0.530831515789032; +26.898317337036133, -0.5256980657577515; +26.99831199645996, -0.5222707986831665; +27.098304748535156, -0.5200207233428955; +27.198299407958984, -0.5203410983085632; +27.29829216003418, -0.5241334438323975; +27.398286819458008, -0.5303174257278442; +27.498279571533203, -0.5356073379516602; +27.59827423095703, -0.540517270565033; +27.698266983032227, -0.5454793572425842; +27.798261642456055, -0.5503371357917786; +27.898256301879883, -0.5531832575798035; +27.998249053955078, -0.5545318126678467; +28.098243713378906, -0.5558878183364868; +28.1982364654541, -0.5567073822021484; +28.29823112487793, -0.5566254258155823; +28.398223876953125, -0.5552023649215698; +28.498218536376953, -0.554114580154419; +28.59821128845215, -0.5541518330574036; +28.698205947875977, -0.5558282136917114; +28.798198699951172, -0.557243824005127; +28.898193359375, -0.5566030740737915; +28.998186111450195, -0.5537867546081543; +29.098180770874023, -0.5504488945007324; +29.19817352294922, -0.5481913685798645; +29.298168182373047, -0.5456805229187012; +29.398160934448242, -0.5432963371276855; +29.49815559387207, -0.5418509244918823; +29.598148345947266, -0.5427524447441101; +29.698143005371094, -0.5442425608634949; +29.79813575744629, -0.5451217293739319; +29.898130416870117, -0.5472227931022644; +29.998123168945312, -0.5510225892066956; +30.09811782836914, -0.5565285682678223; +30.19811248779297, -0.5616545677185059; +30.298105239868164, -0.566631555557251; +30.398099899291992, -0.5714148283004761; +30.498092651367188, -0.574752688407898; +30.598087310791016, -0.5764737725257874; +30.69808006286621, -0.5763769149780273; +30.79807472229004, -0.5758032202720642; +30.898067474365234, -0.5749538540840149; +30.998062133789062, -0.5730465054512024; +31.098054885864258, -0.5699470639228821; +31.198049545288086, -0.5660280585289001; +31.29804229736328, -0.5619898438453674; +31.39803695678711, -0.5593746900558472; +31.498029708862305, -0.5586594343185425; +31.598024368286133, -0.559881329536438; +31.698017120361328, -0.5616247653961182; +31.798011779785156, -0.5635768175125122; +31.89800453186035, -0.5671381950378418; +31.99799919128418, -0.5712732672691345; +32.097991943359375, -0.5739852786064148; +32.1979866027832, -0.5727335810661316; +32.29798126220703, -0.5684420466423035; +32.397972106933594, -0.5642324686050415; +32.49796676635742, -0.5617961287498474; +32.59796142578125, -0.5606040358543396; +32.69795608520508, -0.5596727132797241; +32.797950744628906, -0.5600228905677795; +32.89794158935547, -0.563107430934906; +32.9979362487793, -0.5682334303855896; +33.097930908203125, -0.5721524357795715; +33.19792556762695, -0.5721971392631531; +33.297916412353516, -0.5689710378646851; +33.397911071777344, -0.5658045411109924; +33.49790573120117, -0.5651041865348816; +33.597900390625, -0.565260648727417; +33.69789123535156, -0.5646198987960815; +33.79788589477539, -0.5651935935020447; +33.89788055419922, -0.567018985748291; +33.99787521362305, -0.5687102675437927; +34.09786605834961, -0.5679354071617126; +34.19786071777344, -0.5660206079483032; +34.297855377197266, -0.5661845207214355; +34.397850036621094, -0.5680546164512634; +34.497840881347656, -0.5731433629989624; +34.597835540771484, -0.5799159407615662; +34.69783020019531, -0.5866214632987976; +34.79782485961914, -0.5919486284255981; +34.89781951904297, -0.5956739187240601; +34.99781036376953, -0.5979016423225403; +35.09780502319336, -0.5963519215583801; +35.19779968261719, -0.5926787853240967; +35.297794342041016, -0.5891695618629456; +35.39778518676758, -0.5864053964614868; +35.497779846191406, -0.582180917263031; +35.597774505615234, -0.5775466561317444; +35.69776916503906, -0.575527548789978; +35.797760009765625, -0.5755424499511719; +35.89775466918945, -0.5767494440078735; +35.99774932861328, -0.5773454904556274; +36.09774398803711, -0.5776435136795044; +36.19773483276367, -0.5773156881332397; +36.2977294921875, -0.5767121911048889; +36.39772415161133, -0.5775913596153259; +36.497718811035156, -0.5789473652839661; +36.59770965576172, -0.5806833505630493; +36.69770431518555, -0.5834773182868958; +36.797698974609375, -0.5861818790435791; +36.8976936340332, -0.5864128470420837; +36.997684478759766, -0.5829706788063049; +37.097679138183594, -0.5780383944511414; +37.19767379760742, -0.5749538540840149; +37.29766845703125, -0.5744621157646179; +37.39766311645508, -0.5765706300735474; +37.49765396118164, -0.5793198943138123; +37.59764862060547, -0.5815103650093079; +37.6976432800293, -0.5837604403495789; +37.797637939453125, -0.5872026085853577; +37.89762878417969, -0.589713454246521; +37.997623443603516, -0.5900412797927856; +38.097618103027344, -0.5908980965614319; +38.19761276245117, -0.5946308374404907; +38.297603607177734, -0.5998983979225159; +38.39759826660156, -0.6034821271896362; +38.49759292602539, -0.6058365106582642; +38.59758758544922, -0.6082132458686829; +38.69757843017578, -0.609368085861206; +38.79757308959961, -0.6080716848373413; +38.89756774902344, -0.6050840020179749; +38.997562408447266, -0.601552426815033; +39.09755325317383, -0.5983635783195496; +39.197547912597656, -0.5960017442703247; +39.297542572021484, -0.5952939391136169; +39.39753723144531, -0.596560537815094; +39.49753189086914, -0.5975589156150818; +39.5975227355957, -0.596359372138977; +39.69751739501953, -0.591866672039032; +39.79751205444336, -0.5871430039405823; +39.89750671386719, -0.585608184337616; +39.99749755859375, -0.5865022540092468; +40.09749221801758, -0.5888044834136963; +40.197486877441406, -0.5927234888076782; +40.297481536865234, -0.6008371710777283; +40.3974723815918, -0.6096139550209045; +40.497467041015625, -0.6147176027297974; +40.59746170043945, -0.6156414747238159; +40.69745635986328, -0.6156861782073975; +40.797447204589844, -0.6152912974357605; +40.89744186401367, -0.6117895245552063; +40.9974365234375, -0.6047189235687256; +41.09743118286133, -0.597640872001648; +41.19742202758789, -0.5943328142166138; +41.29741668701172, -0.5938783288002014; +41.39741134643555, -0.5939081311225891; +41.497406005859375, -0.5936622619628906; +41.59739685058594, -0.5958005785942078; +41.697391510009766, -0.600077211856842; +41.797386169433594, -0.6039366126060486; +41.89738082885742, -0.6058663129806519; +41.99737548828125, -0.6072595715522766; +42.09736633300781, -0.6092637777328491; +42.19736099243164, -0.6103813648223877; +42.29735565185547, -0.6111562252044678; +42.3973503112793, -0.6130710244178772; +42.49734115600586, -0.6158351898193359; +42.59733581542969, -0.61759352684021; +42.697330474853516, -0.6178170442581177; +42.797325134277344, -0.6181672215461731; +42.897315979003906, -0.6169602274894714; +42.997310638427734, -0.6109550595283508; +43.09730529785156, -0.6029754877090454; +43.19729995727539, -0.5987063050270081; +43.29729080200195, -0.5987882614135742; +43.39728546142578, -0.599302351474762; +43.49728012084961, -0.5991756916046143; +43.59727478027344, -0.6019473075866699; +43.697265625, -0.6070509552955627; +43.79726028442383, -0.6110742688179016; +43.897254943847656, -0.6146952509880066; +43.997249603271484, -0.6192773580551147; +44.09724426269531, -0.623650848865509; +44.197235107421875, -0.6246194243431091; +44.2972297668457, -0.6213486194610596; +44.39722442626953, -0.6168410181999207; +44.49721908569336, -0.6127357482910156; +44.59720993041992, -0.6095543503761292; +44.69720458984375, -0.6072744727134705; +44.79719924926758, -0.605463981628418; +44.897193908691406, -0.6056800484657288; +44.99718475341797, -0.6081759929656982; +45.0971794128418, -0.6127357482910156; +45.197174072265625, -0.6180480122566223; +45.29716873168945, -0.6231591105461121; +45.397159576416016, -0.6290674209594727; +45.497154235839844, -0.6352216005325317; +45.59714889526367, -0.6379559636116028; +45.6971435546875, -0.6359443068504333; +45.79713439941406, -0.631675124168396; +45.89712905883789, -0.6293356418609619; +45.99712371826172, -0.6297603249549866; +46.09711837768555, -0.6315484642982483; +46.19710922241211, -0.6357729434967041; +46.29710388183594, -0.6406009197235107; +46.397098541259766, -0.6426051259040833; +46.497093200683594, -0.6399825215339661; +46.59708786010742, -0.6339401006698608; +46.697078704833984, -0.6274878978729248; +46.79707336425781, -0.6211772561073303; +46.89706802368164, -0.6160065531730652; +46.99706268310547, -0.6145387887954712; +47.09705352783203, -0.6163641810417175; +47.19704818725586, -0.6197988986968994; +47.29704284667969, -0.622972846031189; +47.397037506103516, -0.6261467933654785; +47.49702835083008, -0.6302818655967712; +47.597023010253906, -0.63362717628479; +47.697017669677734, -0.6356611847877502; +47.79701232910156, -0.636272132396698; +47.897003173828125, -0.6358250975608826; +47.99699783325195, -0.635877251625061; +48.09699249267578, -0.635296106338501; +48.19698715209961, -0.6343796849250793; +48.29697799682617, -0.6330534815788269; +48.39697265625, -0.63362717628479; +48.49696731567383, -0.636763870716095; +48.596961975097656, -0.6398186087608337; +48.696956634521484, -0.6426945328712463; +48.79694747924805, -0.644780695438385; +48.896942138671875, -0.6460472941398621; +48.9969367980957, -0.645272433757782; +49.09693145751953, -0.6422474980354309; +49.196922302246094, -0.6389990448951721; +49.29691696166992, -0.6363242864608765; +49.39691162109375, -0.6358548998832703; +49.49690628051758, -0.6382986903190613; +49.59689712524414, -0.6423592567443848; +49.69689178466797, -0.6461367011070251; +49.7968864440918, -0.6483122706413269; +49.896881103515625, -0.6486624479293823; +49.99687194824219, -0.6475746631622314; +50.096866607666016, -0.6447881460189819; +50.196861267089844, -0.641949474811554; +50.29685592651367, -0.6408989429473877; +50.396846771240234, -0.6430670619010925; +50.49684143066406, -0.6484538316726685; +50.59683609008789, -0.6539002060890198; +50.69683074951172, -0.656716525554657; +50.79682159423828, -0.6554722785949707; +50.89681625366211, -0.6518661975860596; +50.99681091308594, -0.6459876894950867; +51.096805572509766, -0.6375163793563843; +51.196800231933594, -0.6305128335952759; +51.296791076660156, -0.6280988454818726; +51.396785736083984, -0.626787543296814; +51.49678039550781, -0.606149435043335; +51.59677505493164, -0.5351677536964417; +51.6967658996582, -0.385776162147522; +51.79676055908203, -0.14872848987579346; +51.89675521850586, 0.1591891050338745; +51.99674987792969, 0.5107298493385315; +52.09674072265625, 0.8741170167922974; +52.19673538208008, 1.2161284685134888; +52.296730041503906, 1.5059187412261963; +52.396724700927734, 1.727864146232605; +52.4967155456543, 1.885063886642456; +52.596710205078125, 1.9838958978652954; +52.69670486450195, 2.0292773246765137; +52.79669952392578, 2.0288898944854736; +52.896690368652344, 1.995190978050232; +52.99668502807617, 1.943841576576233; +53.0966796875, 1.8916577100753784; +53.19667434692383, 1.8659532070159912; +53.296669006347656, 1.903921365737915; +53.39665985107422, 2.035468816757202; +53.49665451049805, 2.266913652420044; +53.596649169921875, 2.580501079559326; +53.6966438293457, 2.958528757095337; +53.796634674072266, 3.384411334991455; +53.896629333496094, 3.8132741451263428; +53.99662399291992, 4.179194450378418; +54.09661865234375, 4.440792083740234; +54.19660949707031, 4.607685089111328; +54.29660415649414, 4.707492828369141; +54.39659881591797, 4.7552289962768555; +54.4965934753418, 4.770360946655273; +54.59658432006836, 4.786983013153076; +54.69657897949219, 4.835076808929443; +54.796573638916016, 4.923261642456055; +54.896568298339844, 5.047708511352539; +54.996559143066406, 5.200989723205566; +55.096553802490234, 5.3698272705078125; +55.19654846191406, 5.516961097717285; +55.29654312133789, 5.573801517486572; +55.39653396606445, 5.457006454467773; +55.49652862548828, 5.097806453704834; +55.59652328491211, 4.474051475524902; +55.69651794433594, 3.6170780658721924; +55.796512603759766, 2.6116669178009033; +55.89650344848633, 1.5757232904434204; +55.996498107910156, 0.62551349401474; +56.096492767333984, -0.1502707600593567; +56.19648742675781, -0.7105842232704163; +56.296478271484375, -1.0633021593093872; +56.3964729309082, -1.2560933828353882; +56.49646759033203, -1.3477280139923096; +56.59646224975586, -1.3840124607086182; +56.69645309448242, -1.3974084854125977; +56.79644775390625, -1.4099254608154297; +56.89644241333008, -1.4380961656570435; +56.996437072753906, -1.4895126819610596; +57.09642791748047, -1.566551685333252; +57.1964225769043, -1.6717612743377686; +57.296417236328125, -1.8022880554199219; +57.39641189575195, -1.946993112564087; +57.496402740478516, -2.0827724933624268; +57.596397399902344, -2.1828935146331787; +57.69639205932617, -2.2268593311309814; +57.79638671875, -2.202712059020996; +57.89637756347656, -2.1164045333862305; +57.99637222290039, -1.9965543746948242; +58.09636688232422, -1.880772352218628; +58.19636154174805, -1.7830133438110352; +58.296356201171875, -1.6744732856750488; +58.39634704589844, -1.501314401626587; +58.496341705322266, -1.2097358703613281; +58.596336364746094, -0.7552355527877808; +58.69633102416992, -0.1173168420791626; +58.796321868896484, 0.6688907742500305; +58.89631652832031, 1.503288745880127; +58.99631118774414, 2.2607593536376953; +59.09630584716797, 2.8436408042907715; +59.19629669189453, 3.2002105712890625; +59.29629135131836, 3.3202171325683594; +59.39628601074219, 3.235161304473877; +59.496280670166016, 3.008984088897705; +59.59627151489258, 2.710923671722412; +59.696266174316406, 2.389408588409424; +59.796260833740234, 2.0702853202819824; +59.89625549316406, 1.7661899328231812; +59.996246337890625, 1.4826581478118896; +60.09624099731445, 1.2218282222747803; +60.19623565673828, 0.9876936674118042; +60.29623031616211, 0.7897913455963135; +60.39622497558594, 0.638425350189209; +60.4962158203125, 0.5360469222068787; +60.59621047973633, 0.4781559109687805; +60.696205139160156, 0.4597902297973633; +60.796199798583984, 0.4795193672180176; +60.89619064331055, 0.5393102765083313; +60.996185302734375, 0.6450563669204712; +61.0961799621582, 0.8133649826049805; +61.19617462158203, 1.057744026184082; +61.296165466308594, 1.3529434204101562; +61.39616012573242, 1.604355812072754; +61.49615478515625, 1.6777068376541138; +61.59614944458008, 1.4691352844238281; +61.69614028930664, 0.9426847100257874; +61.79613494873047, 0.1266002655029297; +61.8961296081543, -0.8924305438995361; +61.996124267578125, -1.9613280296325684; +62.09611511230469, -2.9027984142303467; +62.196109771728516, -3.5906434059143066; +62.296104431152344, -3.990165948867798; +62.39609909057617, -4.141569137573242; +62.496089935302734, -4.123337745666504; +62.59608459472656, -4.021897792816162; +62.69607925415039, -3.901243209838867; +62.79607391357422, -3.7887320518493652; +62.89606857299805, -3.680281400680542; +62.99605941772461, -3.55572247505188; +63.09605407714844, -3.386884927749634; +63.196048736572266, -3.1505675315856934; +63.296043395996094, -2.8499438762664795; +63.396034240722656, -2.52529239654541; +63.496028900146484, -2.244494915008545; +63.59602355957031, -2.0735561847686768; +63.69601821899414, -2.0461976528167725; +63.7960090637207, -2.155698776245117; +63.89600372314453, -2.361297607421875; +63.99599838256836, -2.603776693344116; +64.09599304199219, -2.818465232849121; +64.19598388671875, -2.949059009552002; +64.29598236083984, -2.9693543910980225; +64.3959732055664, -2.8907508850097656; +64.49596405029297, -2.7552247047424316; +64.59596252441406, -2.6142969131469727; +64.69595336914062, -2.5129542350769043; +64.79594421386719, -2.49008846282959; +64.89594268798828, -2.5700478553771973; +64.99593353271484, -2.744779109954834; +65.09593200683594, -2.959907054901123; +65.1959228515625, -3.1368584632873535; +65.29591369628906, -3.2104625701904297; +65.39591217041016, -3.1417980194091797; +65.49590301513672, -2.9182286262512207; +65.59590148925781, -2.5577471256256104; +65.69589233398438, -2.118349075317383; +65.79588317871094, -1.6783475875854492; +65.89588165283203, -1.2983009815216064; +65.9958724975586, -1.006290316581726; +66.09586334228516, -0.8061453700065613; +66.19586181640625, -0.6917417049407959; +66.29585266113281, -0.6519779562950134; +66.3958511352539, -0.6708651781082153; +66.49584197998047, -0.7355585694313049; +66.59583282470703, -0.8366107940673828; +66.69583129882812, -0.9661167860031128; +66.79582214355469, -1.115649938583374; +66.89581298828125, -1.272737979888916; +66.99581146240234, -1.4256536960601807; +67.0958023071289, -1.5629456043243408; +67.19580078125, -1.6756579875946045; +67.29579162597656, -1.755833625793457; +67.39578247070312, -1.797407865524292; +67.49578094482422, -1.8006861209869385; +67.59577178955078, -1.7713159322738647; +67.69577026367188, -1.717858076095581; +67.79576110839844, -1.6473009586334229; +67.895751953125, -1.562848687171936; +67.9957504272461, -1.4637038707733154; +68.09574127197266, -1.3445987701416016; +68.19573211669922, -1.193232774734497; +68.29573059082031, -0.9916797280311584; +68.39572143554688, -0.7209628820419312; +68.49571990966797, -0.372178852558136; +68.59571075439453, 0.05137920379638672; +68.6957015991211, 0.5290210247039795; +68.79570007324219, 1.008555293083191; +68.89569091796875, 1.4009326696395874; +68.99568176269531, 1.6013383865356445; +69.0956802368164, 1.5383809804916382; +69.19567108154297, 1.2063384056091309; +69.29566955566406, 0.6650015711784363; +69.39566040039062, 0.015363097190856934; +69.49565124511719, -0.6235241889953613; +69.59564971923828, -1.146934986114502; +69.69564056396484, -1.499474048614502; +69.79563903808594, -1.6880333423614502; +69.8956298828125, -1.761317253112793; +69.99562072753906, -1.7727539539337158; +70.09561920166016, -1.7562434673309326; +70.19561004638672, -1.7100870609283447; +70.29560089111328, -1.591712236404419; +70.39559936523438, -1.3392791748046875; +70.49559020996094, -0.9109526872634888; +70.59558868408203, -0.31714141368865967; +70.6955795288086, 0.3779307007789612; +70.79557037353516, 1.083865761756897; +70.89556884765625, 1.7067716121673584; +70.99555969238281, 2.1614134311676025; +71.09555053710938, 2.3794918060302734; +71.19554901123047, 2.326503276824951; +71.29553985595703, 2.0143091678619385; +71.39553833007812, 1.4876872301101685; +71.49552917480469, 0.80832839012146; +71.59552001953125, 0.047944486141204834; +71.69551849365234, -0.7108971476554871; +71.7955093383789, -1.3834164142608643; +71.8955078125, -1.9033923149108887; +71.99549865722656, -2.235844612121582; +72.09548950195312, -2.388522148132324; +72.19548797607422, -2.404376983642578; +72.29547882080078, -2.343289613723755; +72.39546966552734, -2.260610580444336; +72.49546813964844, -2.192251443862915; +72.595458984375, -2.155475378036499; +72.6954574584961, -2.1540746688842773; +72.79544830322266, -2.1868348121643066; +72.89543914794922, -2.251133441925049; +72.99543762207031, -2.33540678024292; +73.09542846679688, -2.419844150543213; +73.19541931152344, -2.4832115173339844; +73.29541778564453, -2.507246971130371; +73.3954086303711, -2.4811477661132812; +73.49540710449219, -2.4019927978515625; +73.59539794921875, -2.2811293601989746; +73.69538879394531, -2.141028642654419; +73.7953872680664, -2.008810520172119; +73.89537811279297, -1.9139275550842285; +73.99536895751953, -1.8810182809829712; +74.09536743164062, -1.925431251525879; +74.19535827636719, -2.0463764667510986; +74.29535675048828, -2.228759288787842; +74.39534759521484, -2.447456121444702; +74.4953384399414, -2.666644811630249; +74.5953369140625, -2.838812828063965; +74.69532775878906, -2.914719343185425; +74.79532623291016, -2.8652474880218506; +74.89531707763672, -2.6942715644836426; +74.99530792236328, -2.434328079223633; +75.09530639648438, -2.1347925662994385; +75.19529724121094, -1.8535703420639038; +75.2952880859375, -1.6450061798095703; +75.3952865600586, -1.5422329902648926; +75.49527740478516, -1.5486180782318115; +75.59527587890625, -1.642204761505127; +75.69526672363281, -1.787506103515625; +75.79525756835938, -1.9434243440628052; +75.89525604248047, -2.06721568107605; +75.99524688720703, -2.124704360961914; +76.0952377319336, -2.097561836242676; +76.19523620605469, -1.98891019821167; +76.29522705078125, -1.822270393371582; +76.39522552490234, -1.6366169452667236; +76.4952163696289, -1.4745444059371948; +76.59520721435547, -1.369349718093872; +76.69520568847656, -1.337073802947998; +76.79519653320312, -1.377575159072876; +76.89519500732422, -1.4751031398773193; +76.99518585205078, -1.6072466373443604; +77.09517669677734, -1.7544255256652832; +77.19517517089844, -1.9030570983886719; +77.295166015625, -2.0395443439483643; +77.39515686035156, -2.140939235687256; +77.49515533447266, -2.1851136684417725; +77.59514617919922, -2.1594390869140625; +77.69514465332031, -2.068251371383667; +77.79513549804688, -1.927189588546753; +77.89512634277344, -1.7608628273010254; +77.99512481689453, -1.602262258529663; +78.0951156616211, -1.4797077178955078; +78.19510650634766, -1.407153844833374; +78.29510498046875, -1.3816505670547485; +78.39509582519531, -1.394912600517273; +78.4950942993164, -1.4416649341583252; +78.59508514404297, -1.5192701816558838; +78.69507598876953, -1.6248524188995361; +78.79507446289062, -1.748979091644287; +78.89506530761719, -1.8724277019500732; +78.99506378173828, -1.9714758396148682; +79.09505462646484, -2.0250155925750732; +79.1950454711914, -2.019479751586914; +79.2950439453125, -1.9522011280059814; +79.39503479003906, -1.8342509269714355; +79.49502563476562, -1.6894787549972534; +79.59502410888672, -1.5445127487182617; +79.69501495361328, -1.4169738292694092; +79.79501342773438, -1.3132542371749878; +79.89500427246094, -1.2339725494384766; +79.9949951171875, -1.1775791645050049; +80.0949935913086, -1.1401623487472534; +80.19498443603516, -1.1148228645324707; +80.29497528076172, -1.0960474014282227; +80.39497375488281, -1.0821819305419922; +80.49496459960938, -1.0719373226165771; +80.59496307373047, -1.063145637512207; +80.69495391845703, -1.0543391704559326; +80.7949447631836, -1.0455474853515625; +80.89494323730469, -1.0385960340499878; +80.99493408203125, -1.0345056056976318; +81.09493255615234, -1.03233003616333; +81.1949234008789, -1.030094861984253; +81.29491424560547, -1.0262653827667236; +81.39491271972656, -1.0211169719696045; +81.49490356445312, -1.0160431861877441; +81.59489440917969, -1.0121538639068604; +81.69489288330078, -1.0097920894622803; +81.79488372802734, -1.0081753730773926; +81.89488220214844, -1.0081380605697632; +81.994873046875, -1.0103211402893066; +82.09486389160156, -1.014150619506836; +82.19486236572266, -1.0169446468353271; +82.29485321044922, -1.0172500610351562; +82.39484405517578, -1.016661524772644; +82.49484252929688, -1.0134577751159668; +82.59483337402344, -1.0087265968322754; +82.69483184814453, -1.003652811050415; +82.7948226928711, -0.9989365935325623; +82.89481353759766, -0.9933188557624817; +82.99481201171875, -0.9858384728431702; +83.09480285644531, -0.9821876883506775; +83.19479370117188, -0.9829699993133545; +83.29479217529297, -0.9848475456237793; +83.39478302001953, -0.983700156211853; +83.49478149414062, -0.9756609797477722; +83.59477233886719, -0.9552612900733948; +83.69476318359375, -0.9123086929321289; +83.79476165771484, -0.8405372500419617; +83.8947525024414, -0.7351487874984741; +83.9947509765625, -0.5902796983718872; +84.09474182128906, -0.3902167081832886; +84.19473266601562, -0.08857995271682739; +84.29473114013672, 0.37626922130584717; +84.39472198486328, 1.0218992233276367; +84.49471282958984, 1.7941370010375977; +84.59471130371094, 2.605557441711426; +84.6947021484375, 3.3805742263793945; +84.7947006225586, 4.030928134918213; +84.89469146728516, 4.44104528427124; +84.99468231201172, 4.536792755126953; +85.09468078613281, 4.331603527069092; +85.19467163085938, 3.896854877471924; +85.29466247558594, 3.3034310340881348; +85.39466094970703, 2.6143863201141357; +85.4946517944336, 1.9050687551498413; +85.59465026855469, 1.2520849704742432; +85.69464111328125, 0.7073283195495605; +85.79463195800781, 0.2880021929740906; +85.8946304321289, -0.01658499240875244; +85.99462127685547, -0.23049861192703247; +86.09461975097656, -0.3784000873565674; +86.19461059570312, -0.48089027404785156; +86.29460144042969, -0.5512014031410217; +86.39459991455078, -0.5992278456687927; +86.49459075927734, -0.6325915455818176; +86.5945816040039, -0.6563439965248108; +86.694580078125, -0.6731748580932617; +86.79457092285156, -0.6854459643363953; +86.89456939697266, -0.6959512829780579; +86.99456024169922, -0.7054954767227173; +87.09455108642578, -0.7136687636375427; +87.19454956054688, -0.7200464606285095; +87.29454040527344, -0.7253438234329224; +87.39453125, -0.7295235991477966; +87.4945297241211, -0.7330998778343201; +87.59452056884766, -0.7354691624641418; +87.69451904296875, -0.7354766130447388; +87.79450988769531, -0.7339194416999817; +87.89450073242188, -0.7334202527999878; +87.99449920654297, -0.7366836071014404; +88.09449005126953, -0.7417798042297363; +88.19448852539062, -0.7484182715415955; +88.29447937011719, -0.7581710815429688; +88.39447021484375, -0.7701590657234192; +88.49446868896484, -0.7803961634635925; +88.5944595336914, -0.7861554622650146; +88.69445037841797, -0.7908046245574951; +88.79444885253906, -0.7963255047798157; +88.89443969726562, -0.8010044693946838; +88.99443817138672, -0.8029043674468994; +89.09442901611328, -0.8030980825424194; +89.19441986083984, -0.8040890097618103; +89.29441833496094, -0.8054673671722412; +89.3944091796875, -0.8060112595558167; +89.49440002441406, -0.8067190647125244; +89.59439849853516, -0.8087232708930969; +89.69438934326172, -0.8115321397781372; +89.79438781738281, -0.8123293519020081; +89.89437866210938, -0.810667872428894; +89.99436950683594, -0.808030366897583; +90.09436798095703, -0.8048489689826965; +90.1943588256836, -0.8019730448722839; +90.29434967041016, -0.8001923561096191; +90.39434814453125, -0.8020848035812378; +90.49433898925781, -0.806860625743866; +90.5943374633789, -0.8128732442855835; +90.69432830810547, -0.8196309208869934; +90.79431915283203, -0.8263513445854187; +90.89431762695312, -0.8320361375808716; +90.99430847167969, -0.8342564105987549; +91.09430694580078, -0.8342862129211426; +91.19429779052734, -0.833556056022644; +91.2942886352539, -0.8326694369316101; +91.394287109375, -0.832192599773407; +91.49427795410156, -0.832587480545044; +91.59426879882812, -0.8346140384674072; +91.69426727294922, -0.8373036980628967; +91.79425811767578, -0.8405819535255432; +91.89425659179688, -0.8427277207374573; +91.99424743652344, -0.8413791656494141; +92.09423828125, -0.8358359336853027; +92.1942367553711, -0.8305162191390991; +92.29422760009766, -0.8276328444480896; +92.39421844482422, -0.8246973156929016; +92.49421691894531, -0.8203759789466858; +92.59420776367188, -0.817522406578064; +92.69420623779297, -0.8206963539123535; +92.79419708251953, -0.8250176906585693; +92.8941879272461, -0.8254572749137878; +92.99418640136719, -0.8238032460212708; +93.09417724609375, -0.8250698447227478; +93.19417572021484, -0.8300095796585083; +93.2941665649414, -0.8342340588569641; +93.39415740966797, -0.8359178900718689; +93.49415588378906, -0.837177038192749; +93.59414672851562, -0.8380711078643799; +93.69413757324219, -0.8370280265808105; +93.79413604736328, -0.8332878351211548; +93.89412689208984, -0.8286386728286743; +93.99412536621094, -0.8271709084510803; +94.0941162109375, -0.8293837308883667; +94.19410705566406, -0.8329302072525024; +94.29410552978516, -0.836104154586792; +94.39409637451172, -0.8399412035942078; +94.49408721923828, -0.8450895547866821; +94.59408569335938, -0.8484199643135071; +94.69407653808594, -0.8473321795463562; +94.79407501220703, -0.8439123630523682; +94.8940658569336, -0.8413121104240417; +94.99405670166016, -0.838547945022583; +95.09405517578125, -0.8329302072525024; +95.19404602050781, -0.8256435394287109; +95.2940444946289, -0.8210092782974243; +95.39403533935547, -0.8202418684959412; +95.49402618408203, -0.8214563131332397; +95.59402465820312, -0.8240267634391785; +95.69401550292969, -0.8282586932182312; +95.79400634765625, -0.8341819047927856; +95.89400482177734, -0.8405819535255432; +95.9939956665039, -0.8462518453598022; +96.093994140625, -0.8490607142448425; +96.19398498535156, -0.8483529090881348; +96.29397583007812, -0.8462667465209961; +96.39397430419922, -0.8440911769866943; +96.49396514892578, -0.8410215377807617; +96.59395599365234, -0.8367449045181274; +96.69395446777344, -0.8342787623405457; +96.7939453125, -0.8355602622032166; +96.8939437866211, -0.8397847414016724; +96.99393463134766, -0.8441656827926636; +97.09392547607422, -0.8478164672851562; +97.19392395019531, -0.8510127663612366; +97.29391479492188, -0.8535608649253845; +97.39391326904297, -0.8549168705940247; +97.49390411376953, -0.8555129170417786; +97.5938949584961, -0.8572116494178772; +97.69389343261719, -0.8595585823059082; +97.79388427734375, -0.8609890937805176; +97.89387512207031, -0.8603706955909729; +97.9938735961914, -0.8567050099372864; +98.09386444091797, -0.8500367403030396; +98.19386291503906, -0.8421391248703003; +98.29385375976562, -0.8367821574211121; +98.39384460449219, -0.835716724395752; +98.49384307861328, -0.837177038192749; +98.59383392333984, -0.8410289883613586; +98.6938247680664, -0.8460953831672668; +98.7938232421875, -0.8503645658493042; +98.89381408691406, -0.8519664406776428; +98.99381256103516, -0.8499175310134888; +99.09380340576172, -0.8466541767120361; +99.19379425048828, -0.842854380607605; +99.29379272460938, -0.8398145437240601; +99.39378356933594, -0.8380860090255737; +99.4937744140625, -0.837475061416626; +99.5937728881836, -0.8398666977882385; +99.69376373291016, -0.8435919880867004; +99.79376220703125, -0.8469671010971069; +99.89375305175781, -0.8488893508911133; +99.99374389648438, -0.8499845862388611; +100.09374237060547, -0.8501112461090088; +100.19373321533203, -0.8469298481941223; +100.29373168945312, -0.8425191044807434; +100.39372253417969, -0.8411183953285217; +100.49371337890625, -0.8439496159553528; +100.59371185302734, -0.8475780487060547; +100.6937026977539, -0.8496567606925964; +100.79369354248047, -0.8504614233970642; +100.89369201660156, -0.849410891532898; +100.99368286132812, -0.8443742990493774; +101.09368133544922, -0.8360594511032104; +101.19367218017578, -0.8296370506286621; +101.29366302490234, -0.8290335536003113; +101.39366149902344, -0.8340701460838318; +101.49365234375, -0.8419156074523926; +101.59364318847656, -0.8505284786224365; +101.69364166259766, -0.8580535650253296; +101.79363250732422, -0.8621290326118469; +101.89363098144531, -0.8623078465461731; +101.99362182617188, -0.8602887392044067; +102.09361267089844, -0.8577033877372742; +102.19361114501953, -0.85478276014328; +102.2936019897461, -0.8524954319000244; +102.39360046386719, -0.8524283766746521; +102.49359130859375, -0.8547604084014893; +102.59358215332031, -0.8590519428253174; +102.6935806274414, -0.8641183376312256; +102.79357147216797, -0.8698850870132446; +102.89356231689453, -0.8752346038818359; +102.99356079101562, -0.8797869086265564; +103.09355163574219, -0.8824989199638367; +103.19355010986328, -0.8824989199638367; +103.29354095458984, -0.8813738822937012; +103.3935317993164, -0.8803904056549072; +103.4935302734375, -0.8807778358459473; +103.59352111816406, -0.8816570043563843; +103.69351196289062, -0.8826553821563721; +103.79351043701172, -0.8825138211250305; +103.89350128173828, -0.8798614144325256; +103.99349975585938, -0.8762702345848083; +104.09349060058594, -0.8726194500923157; +104.1934814453125, -0.8699670433998108; +104.2934799194336, -0.8684620261192322; +104.39347076416016, -0.869452953338623; +104.49346923828125, -0.8729323744773865; +104.59346008300781, -0.8761808276176453; +104.69345092773438, -0.8772611618041992; +104.79344940185547, -0.8749291300773621; +104.89344024658203, -0.8715540170669556; +104.9934310913086, -0.8700340986251831; +105.09342956542969, -0.8719488978385925; +105.19342041015625, -0.8752048015594482; +105.29341888427734, -0.8775442838668823; +105.3934097290039, -0.8799359202384949; +105.49340057373047, -0.8814483880996704; +105.59339904785156, -0.8800700306892395; +105.69338989257812, -0.8765906095504761; +105.79338073730469, -0.8744820952415466; +105.89337921142578, -0.8758977055549622; +105.99337005615234, -0.878259539604187; +106.09336853027344, -0.8798539638519287; +106.193359375, -0.8810833096504211; +106.29335021972656, -0.8805394172668457; +106.39334869384766, -0.8768215775489807; +106.49333953857422, -0.8706822991371155; +106.59333801269531, -0.8652210235595703; +106.69332885742188, -0.8635595440864563; +106.79331970214844, -0.8644759654998779; +106.89331817626953, -0.8660182356834412; +106.9933090209961, -0.867106020450592; +107.09329986572266, -0.8691176772117615; +107.19329833984375, -0.8735582232475281; +107.29328918457031, -0.8776113390922546; +107.3932876586914, -0.8787736296653748; +107.49327850341797, -0.8775964379310608; +107.59326934814453, -0.8774921298027039; +107.69326782226562, -0.8787810802459717; +107.79325866699219, -0.8791908621788025; +107.89324951171875, -0.8777156472206116; +107.99324798583984, -0.8760392665863037; +108.0932388305664, -0.8754059672355652; +108.1932373046875, -0.8760690689086914; +108.29322814941406, -0.8757114410400391; +108.39321899414062, -0.8722767233848572; +108.49321746826172, -0.8664131164550781; +108.59320831298828, -0.8613765239715576; +108.69319915771484, -0.8598491549491882; +108.79319763183594, -0.8609965443611145; +108.8931884765625, -0.8636936545372009; +108.9931869506836, -0.8677318692207336; +109.09317779541016, -0.8743926882743835; +109.19316864013672, -0.8811876177787781; +109.29316711425781, -0.885985791683197; +109.39315795898438, -0.8873641490936279; +109.49315643310547, -0.8865520358085632; +109.59314727783203, -0.8843913674354553; +109.6931381225586, -0.8806511759757996; +109.79313659667969, -0.8774101734161377; +109.89312744140625, -0.8748173713684082; +109.99311828613281, -0.8732602000236511; +110.0931167602539, -0.8729398250579834; +110.19310760498047, -0.8753910660743713; +110.29310607910156, -0.8797943592071533; +110.39309692382812, -0.8845925331115723; +110.49308776855469, -0.8895769715309143; +110.59308624267578, -0.8940994739532471; +110.69307708740234, -0.8966922760009766; +110.7930679321289, -0.8965656161308289; +110.89306640625, -0.8948370814323425; +110.99305725097656, -0.8916258811950684; +111.09305572509766, -0.887647271156311; +111.19304656982422, -0.8851364254951477; +111.29303741455078, -0.8855536580085754; +111.39303588867188, -0.8882209658622742; +111.49302673339844, -0.8913874626159668; +111.59302520751953, -0.8948072791099548; +111.6930160522461, -0.8986294269561768; +111.79300689697266, -0.901252031326294; +111.89300537109375, -0.9022578597068787; +111.99299621582031, -0.9014606475830078; +112.09298706054688, -0.8998885750770569; +112.19298553466797, -0.8981972932815552; +112.29297637939453, -0.896260142326355; +112.39297485351562, -0.8946359157562256; +112.49296569824219, -0.8954256772994995; +112.59295654296875, -0.8989423513412476; +112.69295501708984, -0.9041205048561096; +112.7929458618164, -0.9081512689590454; +112.89293670654297, -0.9092539548873901; +112.99293518066406, -0.9098351001739502; +113.09292602539062, -0.9084939956665039; +113.19292449951172, -0.9051114320755005; +113.29291534423828, -0.9001567959785461; +113.39290618896484, -0.8975565433502197; +113.49290466308594, -0.9001195430755615; +113.5928955078125, -0.9042173624038696; +113.6928939819336, -0.909164547920227; +113.79288482666016, -0.9141713380813599; +113.89287567138672, -0.919640064239502; +113.99287414550781, -0.9229928255081177; +114.09286499023438, -0.9233728051185608; +114.19285583496094, -0.9220689535140991; +114.29285430908203, -0.9186938405036926; +114.3928451538086, -0.9147375822067261; +114.49284362792969, -0.9112507104873657; +114.59283447265625, -0.910542905330658; +114.69282531738281, -0.9105950593948364; +114.7928237915039, -0.9094700217247009; +114.89281463623047, -0.9080618619918823; +114.99280548095703, -0.9079501032829285; +115.09280395507812, -0.9094700217247009; +115.19279479980469, -0.9100884199142456; +115.29279327392578, -0.9103491902351379; +115.39278411865234, -0.9112432599067688; +115.4927749633789, -0.9117051959037781; +115.5927734375, -0.911615788936615; +115.69276428222656, -0.9100139141082764; +115.79275512695312, -0.90741366147995; +115.89275360107422, -0.9029880166053772; +115.99274444580078, -0.8987113833427429; +116.09274291992188, -0.8971169590950012; +116.19273376464844, -0.8972138166427612; +116.292724609375, -0.8996427059173584; +116.3927230834961, -0.9046122431755066; +116.49271392822266, -0.9115934371948242; +116.59271240234375, -0.9169653058052063; +116.69270324707031, -0.9199976921081543; +116.79269409179688, -0.9202733635902405; +116.89269256591797, -0.9163692593574524; +116.99268341064453, -0.9105876088142395; +117.0926742553711, -0.9069740772247314; +117.19267272949219, -0.9077563881874084; +117.29266357421875, -0.9086579084396362; +117.39266204833984, -0.9081736207008362; +117.4926528930664, -0.90838223695755; +117.59264373779297, -0.9095817804336548; +117.69264221191406, -0.910341739654541; +117.79263305664062, -0.9083077311515808; +117.89262390136719, -0.9053722023963928; +117.99262237548828, -0.9035319089889526; +118.09261322021484, -0.9032189846038818; +118.19261169433594, -0.903785228729248; +118.2926025390625, -0.9035170078277588; +118.39259338378906, -0.9042844176292419; +118.49259185791016, -0.9064003825187683; +118.59258270263672, -0.9101331233978271; +118.69258117675781, -0.9143427014350891; +118.79257202148438, -0.9167864918708801; +118.89256286621094, -0.9174048900604248; +118.99256134033203, -0.9167492389678955; +119.0925521850586, -0.9173974394798279; +119.19254302978516, -0.917583703994751; +119.29254150390625, -0.91591477394104; +119.39253234863281, -0.9125694632530212; +119.4925308227539, -0.9094923734664917; +119.59252166748047, -0.9077489376068115; +119.69251251220703, -0.9063705801963806; +119.79251098632812, -0.906623899936676; +119.89250183105469, -0.9097829461097717; +119.99249267578125, -0.9150058031082153; +120.09249114990234, -0.920511782169342; +120.1924819946289, -0.9236112236976624; +120.29248046875, -0.9254589676856995; +120.39247131347656, -0.9267330169677734; +120.49246215820312, -0.9273216128349304; +120.59246063232422, -0.9271278977394104; +120.69245147705078, -0.9257346391677856; +120.79244995117188, -0.9247362613677979; +120.89244079589844, -0.9231492877006531; +120.992431640625, -0.9197890758514404; +121.0924301147461, -0.9149089455604553; +121.19242095947266, -0.9112134575843811; +121.29241180419922, -0.9119734168052673; +121.39241027832031, -0.9158030152320862; +121.49240112304688, -0.9192749857902527; +121.59239959716797, -0.9222179651260376; +121.69239044189453, -0.9263604879379272; +121.7923812866211, -0.9320303797721863; +121.89237976074219, -0.935681164264679; +121.99237060546875, -0.9356290102005005; +122.09236145019531, -0.9354948997497559; +122.1923599243164, -0.9372681379318237; +122.29235076904297, -0.9369775652885437; +122.39234924316406, -0.9312480688095093; +122.49234008789062, -0.9227916598320007; +122.59233093261719, -0.918947160243988; +122.69232940673828, -0.9198784828186035; +122.79232025146484, -0.9215772151947021; +122.89231872558594, -0.9233355522155762; +122.9923095703125, -0.9258463978767395; +123.09230041503906, -0.9292364120483398; +123.19229888916016, -0.9314641356468201; +123.29228973388672, -0.9316429495811462; +123.39228057861328, -0.9300336241722107; +123.49227905273438, -0.9281039237976074; +123.59226989746094, -0.9267330169677734; +123.69226837158203, -0.925704836845398; +123.7922592163086, -0.9231269359588623; +123.89225006103516, -0.919342041015625; +123.99224853515625, -0.9166747331619263; +124.09223937988281, -0.9159967303276062; +124.19223022460938, -0.9173229336738586; +124.29222869873047, -0.918366014957428; +124.39221954345703, -0.9183138608932495; +124.49221801757812, -0.9173080325126648; +124.59220886230469, -0.9158551692962646; +124.69219970703125, -0.9135380387306213; +124.79219818115234, -0.9099319577217102; +124.8921890258789, -0.9061992168426514; +124.99217987060547, -0.9026601910591125; +125.09217834472656, -0.8999854326248169; +125.19216918945312, -0.8975714445114136; +125.29216766357422, -0.8953437209129333; +125.39215850830078, -0.8940249681472778; +125.49214935302734, -0.8938834071159363; +125.59214782714844, -0.8951127529144287; +125.692138671875, -0.8966997265815735; +125.7921371459961, -0.8987188339233398; +125.89212799072266, -0.902317464351654; +125.99211883544922, -0.906720757484436; +126.09211730957031, -0.9107962250709534; +126.19210815429688, -0.9137019515037537; +126.29209899902344, -0.9146332740783691; +126.39209747314453, -0.9131729602813721; +126.4920883178711, -0.9099915623664856; +126.59208679199219, -0.9067729115486145; +126.69207763671875, -0.9051486849784851; +126.79206848144531, -0.9051263332366943; +126.8920669555664, -0.905647873878479; +126.99205780029297, -0.9068548679351807; +127.09204864501953, -0.9085163474082947; +127.19204711914062, -0.9111091494560242; +127.29203796386719, -0.9138286113739014; +127.39203643798828, -0.9154081344604492; +127.49202728271484, -0.9175390005111694; +127.5920181274414, -0.9214803576469421; +127.6920166015625, -0.9266436100006104; +127.79200744628906, -0.9309500455856323; +127.89200592041016, -0.9325891733169556; +127.99199676513672, -0.9318441152572632; +128.0919952392578, -0.9285584092140198; +128.19198608398438, -0.9237751364707947; +128.29197692871094, -0.9205937385559082; +128.3919677734375, -0.9204000234603882; +128.49195861816406, -0.9234920144081116; +128.5919647216797, -0.9292885661125183; +128.69195556640625, -0.935867428779602; +128.7919464111328, -0.9407177567481995; +128.89193725585938, -0.9422823786735535; +128.99192810058594, -0.9424835443496704; +129.09193420410156, -0.9435266256332397; +129.19192504882812, -0.9450539946556091; +129.2919158935547, -0.9464845061302185; +129.39190673828125, -0.9474009275436401; +129.4918975830078, -0.9465962648391724; +129.59188842773438, -0.9422600269317627; +129.69189453125, -0.9343475103378296; +129.79188537597656, -0.9271129965782166; +129.89187622070312, -0.9235665202140808; +129.9918670654297, -0.9233877062797546; +130.09185791015625, -0.9245127439498901; +130.19186401367188, -0.9263455867767334; +130.29185485839844, -0.9288117289543152; +130.391845703125, -0.9297803044319153; +130.49183654785156, -0.9286999702453613; +130.59182739257812, -0.926382839679718; +130.69183349609375, -0.9242519736289978; +130.7918243408203, -0.9222254157066345; +130.89181518554688, -0.921197235584259; +130.99180603027344, -0.92267245054245; +131.091796875, -0.925309956073761; +131.19180297851562, -0.9283646941184998; +131.2917938232422, -0.9306445717811584; +131.39178466796875, -0.9327679872512817; +131.4917755126953, -0.9322464466094971; +131.59176635742188, -0.9278655052185059; +131.69175720214844, -0.9204298257827759; +131.79176330566406, -0.9119957685470581; +131.89175415039062, -0.9044334292411804; +131.9917449951172, -0.8980929851531982; +132.09173583984375, -0.8950233459472656; +132.1917266845703, -0.8963271975517273; +132.29173278808594, -0.9005069732666016; +132.3917236328125, -0.9039491415023804; +132.49171447753906, -0.906035304069519; +132.59170532226562, -0.9069070219993591; +132.6916961669922, -0.9064227342605591; +132.7917022705078, -0.9033903479576111; +132.89169311523438, -0.9006485342979431; +132.99168395996094, -0.9007826447486877; +133.0916748046875, -0.9016171097755432; +133.19166564941406, -0.9003281593322754; +133.2916717529297, -0.8976161479949951; +133.39166259765625, -0.894501805305481; +133.4916534423828, -0.890977680683136; +133.59164428710938, -0.8861646056175232; +133.69163513183594, -0.8835047483444214; +133.7916259765625, -0.8861571550369263; +133.89163208007812, -0.8906722068786621; +133.9916229248047, -0.8937269449234009; +134.09161376953125, -0.8940994739532471; +134.1916046142578, -0.8954554796218872; +134.29159545898438, -0.8971020579338074; +134.3916015625, -0.8952915668487549; +134.49159240722656, -0.889897346496582; +134.59158325195312, -0.8839443325996399; +134.6915740966797, -0.878550112247467; +134.79156494140625, -0.8718520402908325; +134.89157104492188, -0.8644610643386841; +134.99156188964844, -0.8589103817939758; +135.091552734375, -0.8561462163925171; +135.19154357910156, -0.8545368909835815; +135.29153442382812, -0.853411853313446; +135.39154052734375, -0.8526071906089783; +135.4915313720703, -0.8503347635269165; +135.59152221679688, -0.845886766910553; +135.69151306152344, -0.8410438895225525; +135.79150390625, -0.8365735411643982; +135.89149475097656, -0.8323490619659424; +135.9915008544922, -0.8277744054794312; +136.09149169921875, -0.8236542344093323; +136.1914825439453, -0.8205324411392212; +136.29147338867188, -0.8174106478691101; +136.39146423339844, -0.815756618976593; +136.49147033691406, -0.8168593049049377; +136.59146118164062, -0.8191987872123718; +136.6914520263672, -0.8214935660362244; +136.79144287109375, -0.8228570222854614; +136.8914337158203, -0.82407146692276; +136.99143981933594, -0.8244514465332031; +137.0914306640625, -0.8218809962272644; +137.19142150878906, -0.8164644241333008; +137.29141235351562, -0.8095428347587585; +137.3914031982422, -0.8029788732528687; +137.4914093017578, -0.7976368069648743; +137.59140014648438, -0.7931143045425415; +137.69139099121094, -0.789448618888855; +137.7913818359375, -0.7865428924560547; +137.89137268066406, -0.783190131187439; +137.99136352539062, -0.7790550589561462; +138.09136962890625, -0.7743015885353088; +138.1913604736328, -0.7689446210861206; +138.29135131835938, -0.763624906539917; +138.39134216308594, -0.7596462965011597; +138.4913330078125, -0.7567480206489563; +138.59133911132812, -0.7530450820922852; +138.6913299560547, -0.7479637861251831; +138.79132080078125, -0.7439702749252319; +138.8913116455078, -0.7423162460327148; +138.99130249023438, -0.7398948073387146; +139.09130859375, -0.7352456450462341; +139.19129943847656, -0.7305815815925598; +139.29129028320312, -0.7273480296134949; +139.3912811279297, -0.7239431142807007; +139.49127197265625, -0.719025731086731; +139.59127807617188, -0.7154643535614014; +139.69126892089844, -0.715695321559906; +139.791259765625, -0.7176101207733154; +139.89125061035156, -0.7172524929046631; +139.99124145507812, -0.7142201066017151; +140.0912322998047, -0.7099583745002747; +140.1912384033203, -0.7067322731018066; +140.29122924804688, -0.7035583257675171; +140.39122009277344, -0.6991103291511536; +140.4912109375, -0.693194568157196; +140.59120178222656, -0.6856918334960938; +140.6912078857422, -0.6773024797439575; +140.79119873046875, -0.6678998470306396; +140.8911895751953, -0.6591305136680603; +140.99118041992188, -0.6523281335830688; +141.09117126464844, -0.6494075059890747; +141.19117736816406, -0.650264322757721; +141.29116821289062, -0.6525367498397827; +141.3911590576172, -0.6528273224830627; +141.49114990234375, -0.6504356861114502; +141.5911407470703, -0.6475001573562622; +141.69114685058594, -0.6443411111831665; +141.7911376953125, -0.6411895155906677; +141.89112854003906, -0.6394758820533752; +141.99111938476562, -0.640869140625; +142.0911102294922, -0.6451308727264404; +142.19110107421875, -0.6494596600532532; +142.29110717773438, -0.6523802876472473; +142.39109802246094, -0.6514266133308411; +142.4910888671875, -0.6443038582801819; +142.59107971191406, -0.6312727928161621; +142.69107055664062, -0.6168261170387268; +142.79107666015625, -0.6059110164642334; +142.8910675048828, -0.5993545055389404; +142.99105834960938, -0.596560537815094; +143.09104919433594, -0.5968660116195679; +143.1910400390625, -0.5992352962493896; +143.29104614257812, -0.5990639328956604; +143.3910369873047, -0.5947127938270569; +143.49102783203125, -0.5881339311599731; +143.5910186767578, -0.5826428532600403; +143.69100952148438, -0.5794093012809753; +143.791015625, -0.5774348974227905; +143.89100646972656, -0.5766600370407104; +143.99099731445312, -0.5750060081481934; +144.0909881591797, -0.5720183253288269; +144.19097900390625, -0.5681142210960388; +144.2909698486328, -0.5642026662826538; +144.39097595214844, -0.5607455968856812; +144.490966796875, -0.5583837628364563; +144.59095764160156, -0.5593821406364441; +144.69094848632812, -0.5625933408737183; +144.7909393310547, -0.5665197968482971; +144.8909454345703, -0.5694404244422913; +144.99093627929688, -0.5715936422348022; +145.09092712402344, -0.573277473449707; +145.19091796875, -0.5727410316467285; +145.29090881347656, -0.5701705813407898; +145.3909149169922, -0.5642548203468323; +145.49090576171875, -0.55723637342453; +145.5908966064453, -0.5517303943634033; +145.69088745117188, -0.5482882261276245; +145.79087829589844, -0.5469024181365967; +145.890869140625, -0.5450472235679626; +145.99087524414062, -0.5446597933769226; +146.0908660888672, -0.5459263920783997; +146.19085693359375, -0.5470961332321167; +146.2908477783203, -0.5470290780067444; +146.39083862304688, -0.5456134676933289; +146.4908447265625, -0.5450844764709473; +146.59083557128906, -0.5444660782814026; +146.69082641601562, -0.5425736308097839; +146.7908172607422, -0.5403086543083191; +146.89080810546875, -0.5377456545829773; +146.99081420898438, -0.5336552858352661; +147.09080505371094, -0.5270391702651978; +147.1907958984375, -0.5193948745727539; +147.29078674316406, -0.5136579275131226; +147.39077758789062, -0.5099847912788391; +147.49078369140625, -0.5081519484519958; +147.5907745361328, -0.5065873265266418; +147.69076538085938, -0.5054175853729248; +147.79075622558594, -0.5055218935012817; +147.8907470703125, -0.5073025822639465; +147.99073791503906, -0.5088970065116882; +148.0907440185547, -0.5080550909042358; +148.19073486328125, -0.5070492625236511; +148.2907257080078, -0.5086138844490051; +148.39071655273438, -0.5123987793922424; +148.49070739746094, -0.5142465233802795; +148.59071350097656, -0.513516366481781; +148.69070434570312, -0.5119740962982178; +148.7906951904297, -0.5095675587654114; +148.89068603515625, -0.5052909255027771; +148.9906768798828, -0.5003660917282104; +149.09068298339844, -0.49820542335510254; +149.190673828125, -0.49952417612075806; +149.29066467285156, -0.5026012659072876; +149.39065551757812, -0.5064606666564941; +149.4906463623047, -0.5099624395370483; +149.5906524658203, -0.51087886095047; +149.69064331054688, -0.5076825618743896; +149.79063415527344, -0.5017444491386414; +149.890625, -0.4953816533088684; +149.99061584472656, -0.4893690347671509; +150.09060668945312, -0.4839375615119934; +150.19061279296875, -0.48062950372695923; +150.2906036376953, -0.48051029443740845; +150.39059448242188, -0.48270076513290405; +150.49058532714844, -0.4845261573791504; +150.590576171875, -0.48600882291793823; +150.69058227539062, -0.48744678497314453; +150.7905731201172, -0.48736482858657837; +150.89056396484375, -0.4847869277000427; +150.9905548095703, -0.47951191663742065; +151.09054565429688, -0.4746541380882263; +151.1905517578125, -0.4713386297225952; +151.29054260253906, -0.469699501991272; +151.39053344726562, -0.4698634147644043; +151.4905242919922, -0.46931207180023193; +151.59051513671875, -0.46744197607040405; +151.69052124023438, -0.4648268222808838; +151.79051208496094, -0.4622340202331543; +151.8905029296875, -0.4588216543197632; +151.99049377441406, -0.453069806098938; +152.09048461914062, -0.44717639684677124; +152.1904754638672, -0.44412165880203247; +152.2904815673828, -0.4438534379005432; +152.39047241210938, -0.44367462396621704; +152.49046325683594, -0.4430711269378662; +152.5904541015625, -0.44283270835876465; +152.69044494628906, -0.44345855712890625; +152.7904510498047, -0.44342130422592163; +152.89044189453125, -0.4420056939125061; +152.9904327392578, -0.44164061546325684; +153.09042358398438, -0.4431009292602539; +153.19041442871094, -0.4460960626602173; +153.29042053222656, -0.4498139023780823; +153.39041137695312, -0.4537627100944519; +153.4904022216797, -0.4582703113555908; +153.59039306640625, -0.46140700578689575; +153.6903839111328, -0.46202540397644043; +153.79039001464844, -0.4610493779182434; +153.890380859375, -0.45893341302871704; +153.99037170410156, -0.45603513717651367; +154.09036254882812, -0.4514753818511963; +154.1903533935547, -0.4459843039512634; +154.29034423828125, -0.44177472591400146; +154.39035034179688, -0.438787043094635; +154.49034118652344, -0.4353374242782593; +154.59033203125, -0.43095648288726807; +154.69032287597656, -0.4257112741470337; +154.79031372070312, -0.42050331830978394; +154.89031982421875, -0.4152432084083557; +154.9903106689453, -0.4104822874069214; +155.09030151367188, -0.40765106678009033; +155.19029235839844, -0.4059299826622009; +155.290283203125, -0.4050135612487793; +155.39028930664062, -0.4048570990562439; +155.4902801513672, -0.40568411350250244; +155.59027099609375, -0.40628761053085327; +155.6902618408203, -0.40625035762786865; +155.79025268554688, -0.4043877124786377; +155.8902587890625, -0.40227919816970825; +155.99024963378906, -0.40067732334136963; +156.09024047851562, -0.398978590965271; +156.1902313232422, -0.3971979022026062; +156.29022216796875, -0.39439648389816284; +156.3902130126953, -0.3936663269996643; +156.49021911621094, -0.3933906555175781; +156.5902099609375, -0.3917291760444641; +156.69020080566406, -0.38817524909973145; +156.79019165039062, -0.3836601972579956; +156.8901824951172, -0.38107484579086304; +156.9901885986328, -0.3810673952102661; +157.09017944335938, -0.3842189908027649; +157.19017028808594, -0.38716942071914673; +157.2901611328125, -0.38763880729675293; +157.39015197753906, -0.3856047987937927; +157.4901580810547, -0.3814697265625; +157.59014892578125, -0.3755316138267517; +157.6901397705078, -0.36773085594177246; +157.79013061523438, -0.3618001937866211; +157.89012145996094, -0.3610178828239441; +157.99012756347656, -0.3630518913269043; +158.09011840820312, -0.3642141819000244; +158.1901092529297, -0.3628060221672058; +158.29010009765625, -0.36107003688812256; +158.3900909423828, -0.361807644367218; +158.49008178710938, -0.36244094371795654; +158.590087890625, -0.3634914755821228; +158.69007873535156, -0.3661811351776123; +158.79006958007812, -0.3695562481880188; +158.8900604248047, -0.37229806184768677; +158.99005126953125, -0.3715306520462036; +159.09005737304688, -0.368267297744751; +159.19004821777344, -0.3640800714492798; +159.2900390625, -0.36153942346572876; +159.39002990722656, -0.3616213798522949; +159.49002075195312, -0.3619566559791565; +159.59002685546875, -0.3605782985687256; +159.6900177001953, -0.3589168190956116; +159.79000854492188, -0.3588572144508362; +159.88999938964844, -0.35815685987472534; +159.989990234375, -0.3564506769180298; +160.08999633789062, -0.3553330898284912; +160.1899871826172, -0.3576353192329407; +160.28997802734375, -0.3632158041000366; +160.3899688720703, -0.3692135214805603; +160.48995971679688, -0.37374347448349; +160.58995056152344, -0.3749281167984009; +160.68995666503906, -0.37275999784469604; +160.78994750976562, -0.36907196044921875; +160.8899383544922, -0.3656521439552307; +160.98992919921875, -0.3626197576522827; +161.0899200439453, -0.35922229290008545; +161.18992614746094, -0.35718828439712524; +161.2899169921875, -0.35782158374786377; +161.38990783691406, -0.35996735095977783; +161.48989868164062, -0.35991519689559937; +161.5898895263672, -0.35697221755981445; +161.6898956298828, -0.35387277603149414; +161.78988647460938, -0.3530159592628479; +161.88987731933594, -0.3535747528076172; +161.9898681640625, -0.35361945629119873; +162.08985900878906, -0.35312026739120483; +162.1898651123047, -0.3527700901031494; +162.28985595703125, -0.35355985164642334; +162.3898468017578, -0.35340338945388794; +162.48983764648438, -0.3523677587509155; +162.58982849121094, -0.3510117530822754; +162.6898193359375, -0.35040080547332764; +162.78982543945312, -0.35271793603897095; +162.8898162841797, -0.3566369414329529; +162.98980712890625, -0.3611519932746887; +163.0897979736328, -0.3636777400970459; +163.18978881835938, -0.3628656268119812; +163.289794921875, -0.35947561264038086; +163.38978576660156, -0.35140663385391235; +163.48977661132812, -0.34105777740478516; +163.5897674560547, -0.33114105463027954; +163.68975830078125, -0.32517313957214355; +163.78976440429688, -0.32370537519454956; +163.88975524902344, -0.3249943256378174; +163.98974609375, -0.3294944763183594; +164.08973693847656, -0.3351271152496338; +164.18972778320312, -0.3409162163734436; +164.2897186279297, -0.3447532653808594; +164.3897247314453, -0.3463849425315857; +164.48971557617188, -0.3453195095062256; +164.58970642089844, -0.342540442943573; +164.689697265625, -0.3403574228286743; +164.78968811035156, -0.3401041030883789; +164.8896942138672, -0.34224987030029297; +164.98968505859375, -0.346548855304718; +165.0896759033203, -0.35331398248672485; +165.18966674804688, -0.3599002957344055; +165.28965759277344, -0.3629550337791443; +165.38966369628906, -0.3613382577896118; +165.48965454101562, -0.3581419587135315; +165.5896453857422, -0.35581737756729126; +165.68963623046875, -0.35437941551208496; +165.7896270751953, -0.3532320261001587; +165.88963317871094, -0.35281479358673096; +165.9896240234375, -0.3534853458404541; +166.08961486816406, -0.3534182906150818; +166.18960571289062, -0.35199522972106934; +166.2895965576172, -0.3492683172225952; +166.38958740234375, -0.3464743494987488; +166.48959350585938, -0.34408271312713623; +166.58958435058594, -0.3420338034629822; +166.6895751953125, -0.3407225012779236; +166.78956604003906, -0.33948570489883423; +166.88955688476562, -0.3384724259376526; +166.98956298828125, -0.3372654318809509; +167.0895538330078, -0.3370046615600586; +167.18954467773438, -0.3382489085197449; +167.28953552246094, -0.34005194902420044; +167.3895263671875, -0.3409087657928467; +167.48953247070312, -0.3412589430809021; +167.5895233154297, -0.34245848655700684; +167.68951416015625, -0.34483522176742554; +167.7895050048828, -0.3461316227912903; +167.88949584960938, -0.34430623054504395; +167.989501953125, -0.34105032682418823; +168.08949279785156, -0.33859163522720337; +168.18948364257812, -0.33852458000183105; +168.2894744873047, -0.3379508852958679; +168.38946533203125, -0.3352239727973938; +168.4894561767578, -0.3319159150123596; +168.58946228027344, -0.32804906368255615; +168.689453125, -0.3231242299079895; +168.78944396972656, -0.31706690788269043; +168.88943481445312, -0.31210482120513916; +168.9894256591797, -0.3092139959335327; +169.0894317626953, -0.3075525164604187; +169.18942260742188, -0.3079622983932495; +169.28941345214844, -0.3100484609603882; +169.389404296875, -0.3111138939857483; +169.48939514160156, -0.30975043773651123; +169.5894012451172, -0.3071129322052002; +169.68939208984375, -0.30497461557388306; +169.7893829345703, -0.3040581941604614; +169.88937377929688, -0.3057941794395447; +169.98936462402344, -0.3103911876678467; +170.08937072753906, -0.31563639640808105; +170.18936157226562, -0.32104551792144775; +170.2893524169922, -0.3258809447288513; +170.38934326171875, -0.32921135425567627; +170.4893341064453, -0.3280714154243469; +170.58932495117188, -0.3241300582885742; +170.6893310546875, -0.32097846269607544; +170.78932189941406, -0.31925737857818604; +170.88931274414062, -0.3188401460647583; +170.9893035888672, -0.31907111406326294; +171.08929443359375, -0.3201216459274292; +171.18930053710938, -0.32116472721099854; +171.28929138183594, -0.32151490449905396; +171.3892822265625, -0.32132863998413086; +171.48927307128906, -0.3206580877304077; +171.58926391601562, -0.3193318843841553; +171.68927001953125, -0.316813588142395; +171.7892608642578, -0.31334906816482544; +171.88925170898438, -0.3085508942604065; +171.98924255371094, -0.30288100242614746; +172.0892333984375, -0.29671192169189453; +172.18923950195312, -0.29128044843673706; +172.2892303466797, -0.2896040678024292; +172.38922119140625, -0.29153376817703247; +172.4892120361328, -0.2962872385978699; +172.58920288085938, -0.30075758695602417; +172.68919372558594, -0.30472129583358765; +172.78919982910156, -0.30769407749176025; +172.88919067382812, -0.3086552023887634; +172.9891815185547, -0.30747801065444946; +173.08917236328125, -0.3045126795768738; +173.1891632080078, -0.3015771508216858; +173.28916931152344, -0.2984926104545593; +173.38916015625, -0.2953186631202698; +173.48915100097656, -0.29321014881134033; +173.58914184570312, -0.29190629720687866; +173.6891326904297, -0.2916306257247925; +173.7891387939453, -0.2924427390098572; +173.88912963867188, -0.2929791808128357; +173.98912048339844, -0.2923905849456787; +174.089111328125, -0.28934329748153687; +174.18910217285156, -0.2863854169845581; +174.2891082763672, -0.2847015857696533; +174.38909912109375, -0.2845302224159241; +174.4890899658203, -0.28646737337112427; +174.58908081054688, -0.28943270444869995; +174.68907165527344, -0.2924725413322449; +174.7890625, -0.29355287551879883; +174.88906860351562, -0.2943798899650574; +174.9890594482422, -0.2960711717605591; +175.08905029296875, -0.29905885457992554; +175.1890411376953, -0.3025531768798828; +175.28903198242188, -0.30637532472610474; +175.3890380859375, -0.31107664108276367; +175.48902893066406, -0.3151446580886841; +175.58901977539062, -0.3155842423439026; +175.6890106201172, -0.31138211488723755; +175.78900146484375, -0.30531734228134155; +175.88900756835938, -0.3005415201187134; +175.98899841308594, -0.2973005175590515; +176.0889892578125, -0.2932250499725342; +176.18898010253906, -0.2890750765800476; +176.28897094726562, -0.2858191728591919; +176.38897705078125, -0.2843514084815979; +176.4889678955078, -0.28364360332489014; +176.58895874023438, -0.2841353416442871; +176.68894958496094, -0.2864077687263489; +176.7889404296875, -0.28918683528900146; +176.88893127441406, -0.2909824252128601; +176.9889373779297, -0.29080361127853394; +177.08892822265625, -0.2895444631576538; +177.1889190673828, -0.28765201568603516; +177.28890991210938, -0.2861395478248596; +177.38890075683594, -0.2867504954338074; +177.48890686035156, -0.28962641954421997; +177.58889770507812, -0.2929121255874634; +177.6888885498047, -0.29431283473968506; +177.78887939453125, -0.29315054416656494; +177.8888702392578, -0.2900809049606323; +177.98887634277344, -0.28593093156814575; +178.0888671875, -0.28233975172042847; +178.18885803222656, -0.2807006239891052; +178.28884887695312, -0.28146058320999146; +178.3888397216797, -0.2834126353263855; +178.4888458251953, -0.28493255376815796; +178.58883666992188, -0.2855658531188965; +178.68882751464844, -0.2853497862815857; +178.788818359375, -0.28348714113235474; +178.88880920410156, -0.2795904874801636; +178.98880004882812, -0.2741217613220215; +179.08880615234375, -0.2689436078071594; +179.1887969970703, -0.26457011699676514; +179.28878784179688, -0.2609938383102417; +179.38877868652344, -0.26029348373413086; +179.48876953125, -0.26266276836395264; +179.58877563476562, -0.26785582304000854; +179.6887664794922, -0.2724453806877136; +179.78875732421875, -0.27436763048171997; +179.8887481689453, -0.2743825316429138; +179.98873901367188, -0.2732276916503906; +180.0887451171875, -0.2723187208175659; +180.18873596191406, -0.2708807587623596; +180.28872680664062, -0.271335244178772; +180.3887176513672, -0.2750307321548462; +180.48870849609375, -0.2811551094055176; +180.5886993408203, -0.28565526008605957; +180.68870544433594, -0.28583407402038574; +180.7886962890625, -0.28280913829803467; +180.88868713378906, -0.27939677238464355; +180.98867797851562, -0.27717649936676025; +181.0886688232422, -0.2742558717727661; +181.1886749267578, -0.27086585760116577; +181.28866577148438, -0.26873499155044556; +181.38865661621094, -0.2696588635444641; +181.4886474609375, -0.2711564302444458; +181.58863830566406, -0.27141720056533813; +181.6886444091797, -0.27129054069519043; +181.78863525390625, -0.2722442150115967; +181.8886260986328, -0.2739354968070984; +181.98861694335938, -0.2749115228652954; +182.08860778808594, -0.27498602867126465; +182.18861389160156, -0.2736225724220276; +182.28860473632812, -0.2705082297325134; +182.3885955810547, -0.2667531371116638; +182.48858642578125, -0.263117253780365; +182.5885772705078, -0.25963783264160156; +182.68856811523438, -0.25578588247299194; +182.78857421875, -0.2520903944969177; +182.88856506347656, -0.24969875812530518; +182.98855590820312, -0.24715811014175415; +183.0885467529297, -0.24531781673431396; +183.18853759765625, -0.2444833517074585; +183.28854370117188, -0.24474412202835083; +183.38853454589844, -0.24686753749847412; +183.488525390625, -0.2511367201805115; +183.58851623535156, -0.2572983503341675; +183.68850708007812, -0.26153773069381714; +183.78851318359375, -0.2628713846206665; +183.8885040283203, -0.2645030617713928; +183.98849487304688, -0.2664998173713684; +184.08848571777344, -0.26786327362060547; +184.1884765625, -0.2688094973564148; +184.28848266601562, -0.2710893750190735; +184.3884735107422, -0.27407705783843994; +184.48846435546875, -0.27398765087127686; +184.5884552001953, -0.2719014883041382; +184.68844604492188, -0.2695322036743164; +184.78843688964844, -0.267617404460907; +184.88844299316406, -0.26532262563705444; +184.98843383789062, -0.2615898847579956; +185.0884246826172, -0.25822222232818604; +185.18841552734375, -0.2567991614341736; +185.2884063720703, -0.2574622631072998; +185.38841247558594, -0.25781989097595215; +185.4884033203125, -0.256560742855072; +185.58839416503906, -0.2566203474998474; +185.68838500976562, -0.25691837072372437; +185.7883758544922, -0.2538338303565979; +185.8883819580078, -0.2474263310432434; +185.98837280273438, -0.24241209030151367; +186.08836364746094, -0.2421736717224121; +186.1883544921875, -0.2435445785522461; +186.28834533691406, -0.24400651454925537; +186.3883514404297, -0.24586915969848633; +186.48834228515625, -0.25010108947753906; +186.5883331298828, -0.25357306003570557; +186.68832397460938, -0.2527087926864624; +186.78831481933594, -0.24894624948501587; +186.8883056640625, -0.24743378162384033; +186.98831176757812, -0.24752318859100342; +187.0883026123047, -0.24506449699401855; +187.18829345703125, -0.2401992678642273; +187.2882843017578, -0.2361983060836792; +187.38827514648438, -0.2352595329284668; +187.48828125, -0.234849750995636; +187.58827209472656, -0.234849750995636; +187.68826293945312, -0.23664534091949463; +187.7882537841797, -0.24078786373138428; +187.88824462890625, -0.24581700563430786; +187.98825073242188, -0.24931132793426514; +188.08824157714844, -0.2514570951461792; +188.188232421875, -0.25156885385513306; +188.28822326660156, -0.2511516213417053; +188.38821411132812, -0.25015324354171753; +188.48822021484375, -0.25003403425216675; +188.5882110595703, -0.2520829439163208; +188.68820190429688, -0.25516748428344727; +188.78819274902344, -0.2573058009147644; +188.88818359375, -0.257737934589386; +188.98817443847656, -0.2584382891654968; +189.0881805419922, -0.26007741689682007; +189.18817138671875, -0.2619698643684387; +189.2881622314453, -0.26369839906692505; +189.38815307617188, -0.26595592498779297; +189.48814392089844, -0.2690032124519348; +189.58815002441406, -0.27158111333847046; +189.68814086914062, -0.27339160442352295; +189.7881317138672, -0.2741962671279907; +189.88812255859375, -0.275149941444397; +189.9881134033203, -0.2763494849205017; +190.08811950683594, -0.27639418840408325; +190.1881103515625, -0.2747252583503723; +190.28810119628906, -0.27085840702056885; +190.38809204101562, -0.2657845616340637; +190.4880828857422, -0.25925785303115845; +190.5880889892578, -0.25328993797302246; +190.68807983398438, -0.24864822626113892; +190.78807067871094, -0.2463012933731079; +190.8880615234375, -0.24648010730743408; +190.98805236816406, -0.24756044149398804; +191.08804321289062, -0.24838745594024658; +191.18804931640625, -0.2479255199432373; +191.2880401611328, -0.24910271167755127; +191.38803100585938, -0.2517327666282654; +191.48802185058594, -0.2521201968193054; +191.5880126953125, -0.2502351999282837; +191.68801879882812, -0.2488270401954651; +191.7880096435547, -0.2501979470252991; +191.88800048828125, -0.25177001953125; +191.9879913330078, -0.2506747841835022; +192.08798217773438, -0.2493336796760559; +192.18798828125, -0.24821609258651733; +192.28797912597656, -0.24647265672683716; +192.38796997070312, -0.24297833442687988; +192.4879608154297, -0.23961812257766724; +192.58795166015625, -0.23861229419708252; +192.68795776367188, -0.23858994245529175; +192.78794860839844, -0.23861974477767944; +192.887939453125, -0.23869425058364868; +192.98793029785156, -0.23823976516723633; +193.08792114257812, -0.23528188467025757; +193.1879119873047, -0.22933632135391235; +193.2879180908203, -0.22332370281219482; +193.38790893554688, -0.2212226390838623; +193.48789978027344, -0.22296607494354248; +193.587890625, -0.22642314434051514; +193.68788146972656, -0.23021548986434937; +193.7878875732422, -0.23403018712997437; +193.88787841796875, -0.2376958727836609; +193.9878692626953, -0.24003535509109497; +194.08786010742188, -0.23987144231796265; +194.18785095214844, -0.2378523349761963; +194.28785705566406, -0.23474544286727905; +194.38784790039062, -0.2323836088180542; +194.4878387451172, -0.2307295799255371; +194.58782958984375, -0.2277567982673645; +194.6878204345703, -0.22505968809127808; +194.78782653808594, -0.2250075340270996; +194.8878173828125, -0.2292916178703308; +194.98780822753906, -0.23645907640457153; +195.08779907226562, -0.24297088384628296; +195.1877899169922, -0.24749338626861572; +195.28778076171875, -0.24925917387008667; +195.38778686523438, -0.24797022342681885; +195.48777770996094, -0.24376064538955688; +195.5877685546875, -0.23693591356277466; +195.68775939941406, -0.23049116134643555; +195.78775024414062, -0.22605061531066895; +195.88775634765625, -0.22369623184204102; +195.9877471923828, -0.22272765636444092; +196.08773803710938, -0.22274255752563477; +196.18772888183594, -0.22365152835845947; +196.2877197265625, -0.22487342357635498; +196.38772583007812, -0.22582709789276123; +196.4877166748047, -0.22645294666290283; +196.58770751953125, -0.22754818201065063; +196.6876983642578, -0.22855401039123535; +196.78768920898438, -0.22893399000167847; +196.8876953125, -0.2289414405822754; +196.98768615722656, -0.22864341735839844; +197.08767700195312, -0.22730976343154907; +197.1876678466797, -0.22385269403457642; +197.28765869140625, -0.21854043006896973; +197.3876495361328, -0.21193921566009521; +197.48765563964844, -0.2042725682258606; +197.587646484375, -0.1981183886528015; +197.68763732910156, -0.1962706446647644; +197.78762817382812, -0.1971125602722168; +197.8876190185547, -0.19948184490203857; +197.9876251220703, -0.20354241132736206; +198.08761596679688, -0.21030008792877197; +198.18760681152344, -0.21797418594360352; +198.28759765625, -0.22252649068832397; +198.38758850097656, -0.22410601377487183; +198.4875946044922, -0.22426992654800415; +198.58758544921875, -0.22410601377487183; +198.6875762939453, -0.22272765636444092; +198.78756713867188, -0.2206563949584961; +198.88755798339844, -0.2210065722465515; +198.987548828125, -0.2252534031867981; +199.08755493164062, -0.22999197244644165; +199.1875457763672, -0.23204833269119263; +199.28753662109375, -0.23248791694641113; +199.3875274658203, -0.23378431797027588; +199.48751831054688, -0.23393332958221436; +199.5875244140625, -0.2306625247001648; +199.68751525878906, -0.226728618144989; +199.78750610351562, -0.22596120834350586; +199.8874969482422, -0.22810697555541992; +199.98748779296875, -0.22858381271362305; +200.08749389648438, -0.22684037685394287; +200.18748474121094, -0.22517144680023193; +200.2874755859375, -0.22536516189575195; +200.38746643066406, -0.22619962692260742; +200.48745727539062, -0.22616982460021973; +200.58746337890625, -0.22636353969573975; +200.6874542236328, -0.22705644369125366; +200.78744506835938, -0.22727251052856445; +200.88743591308594, -0.22527575492858887; +200.9874267578125, -0.22166967391967773; +201.08741760253906, -0.21819770336151123; +201.1874237060547, -0.21522492170333862; +201.28741455078125, -0.21284818649291992; +201.3874053955078, -0.21208077669143677; +201.48739624023438, -0.21354109048843384; +201.58738708496094, -0.21632015705108643; +201.68739318847656, -0.21785497665405273; +201.78738403320312, -0.21778792142868042; +201.8873748779297, -0.21750479936599731; +201.98736572265625, -0.21705776453018188; +202.0873565673828, -0.21494925022125244; +202.18736267089844, -0.21113455295562744; +202.287353515625, -0.20839273929595947; +202.38734436035156, -0.2073720097541809; +202.48733520507812, -0.20676851272583008; +202.5873260498047, -0.20582973957061768; +202.6873321533203, -0.20607560873031616; +202.78732299804688, -0.20714104175567627; +202.88731384277344, -0.20644813776016235; +202.9873046875, -0.20335614681243896; +203.08729553222656, -0.20022690296173096; +203.18728637695312, -0.19977986812591553; +203.28729248046875, -0.20097941160202026; +203.3872833251953, -0.20293891429901123; +203.48727416992188, -0.20538270473480225; +203.58726501464844, -0.2090558409690857; +203.687255859375, -0.21278858184814453; +203.78726196289062, -0.21417438983917236; +203.8872528076172, -0.2138093113899231; +203.98724365234375, -0.21251291036605835; +204.0872344970703, -0.21153688430786133; +204.18722534179688, -0.21112710237503052; +204.2872314453125, -0.21106749773025513; +204.38722229003906, -0.2112165093421936; +204.48721313476562, -0.21082907915115356; +204.5872039794922, -0.21067261695861816; +204.68719482421875, -0.21197646856307983; +204.78720092773438, -0.21426379680633545; +204.88719177246094, -0.215776264667511; +204.9871826171875, -0.2158135175704956; +205.08717346191406, -0.21507591009140015; +205.18716430664062, -0.21420419216156006; +205.2871551513672, -0.21292269229888916; +205.3871612548828, -0.21050125360488892; +205.48715209960938, -0.20641833543777466; +205.58714294433594, -0.2009868621826172; +205.6871337890625, -0.19580870866775513; +205.78712463378906, -0.1920163631439209; +205.8871307373047, -0.1878887414932251; +205.98712158203125, -0.18400698900222778; +206.0871124267578, -0.18337368965148926; +206.18710327148438, -0.18762797117233276; +206.28709411621094, -0.19425153732299805; +206.38710021972656, -0.19926577806472778; +206.48709106445312, -0.20282715559005737; +206.5870819091797, -0.2055540680885315; +206.68707275390625, -0.20609050989151; +206.7870635986328, -0.20372122526168823; +206.88706970214844, -0.19863992929458618; +206.987060546875, -0.19366294145584106; +207.08705139160156, -0.1909807324409485; +207.18704223632812, -0.1897960901260376; +207.2870330810547, -0.1901760697364807; +207.38702392578125, -0.19186735153198242; +207.48703002929688, -0.19550323486328125; +207.58702087402344, -0.19963085651397705; +207.68701171875, -0.20263344049453735; +207.78700256347656, -0.20588934421539307; +207.88699340820312, -0.20898133516311646; +207.98699951171875, -0.21111220121383667; +208.0869903564453, -0.2118721604347229; +208.18698120117188, -0.21192431449890137; +208.28697204589844, -0.21199136972427368; +208.386962890625, -0.21179765462875366; +208.48696899414062, -0.2124682068824768; +208.5869598388672, -0.2139061689376831; +208.68695068359375, -0.21358579397201538; +208.7869415283203, -0.21064281463623047; +208.88693237304688, -0.20564347505569458; +208.9869384765625, -0.20115822553634644; +209.08692932128906, -0.1978650689125061; +209.18692016601562, -0.1947358250617981; +209.2869110107422, -0.19267946481704712; +209.38690185546875, -0.19221752882003784; +209.4868927001953, -0.19353628158569336; +209.58689880371094, -0.19482523202896118; +209.6868896484375, -0.19641220569610596; +209.78688049316406, -0.1999884843826294; +209.88687133789062, -0.204332172870636; +209.9868621826172, -0.20788609981536865; +210.0868682861328, -0.2096220850944519; +210.18685913085938, -0.20880252122879028; +210.28684997558594, -0.20425021648406982; +210.3868408203125, -0.19681453704833984; +210.48683166503906, -0.19066035747528076; +210.5868377685547, -0.1876428723335266; +210.68682861328125, -0.18715858459472656; +210.7868194580078, -0.18812716007232666; +210.88681030273438, -0.19030272960662842; +210.98680114746094, -0.19259750843048096; +211.08680725097656, -0.19358843564987183; +211.18679809570312, -0.19374489784240723; +211.2867889404297, -0.19299238920211792; +211.38677978515625, -0.1921728253364563; +211.4867706298828, -0.19196420907974243; +211.58676147460938, -0.19250810146331787; +211.686767578125, -0.1933574676513672; +211.78675842285156, -0.19460171461105347; +211.88674926757812, -0.1984909176826477; +211.9867401123047, -0.20431727170944214; +212.08673095703125, -0.20934641361236572; +212.18673706054688, -0.21384656429290771; +212.28672790527344, -0.21918118000030518; +212.38671875, -0.22390484809875488; +212.48670959472656, -0.2246275544166565; +212.58670043945312, -0.2208501100540161; +212.68670654296875, -0.21601468324661255; +212.7866973876953, -0.21125376224517822; +212.88668823242188, -0.20684301853179932; +212.98667907714844, -0.2035871148109436; +213.086669921875, -0.20147114992141724; +213.18667602539062, -0.20074844360351562; +213.2866668701172, -0.20026415586471558; +213.38665771484375, -0.20096451044082642; +213.4866485595703, -0.2027750015258789; +213.58663940429688, -0.20503252744674683; +213.68663024902344, -0.2071782946586609; +213.78663635253906, -0.20945072174072266; +213.88662719726562, -0.2113059163093567; +213.9866180419922, -0.21047890186309814; +214.08660888671875, -0.20599365234375; +214.1865997314453, -0.19984692335128784; +214.28660583496094, -0.19545108079910278; +214.3865966796875, -0.19165873527526855; +214.48658752441406, -0.18847733736038208; +214.58657836914062, -0.18684566020965576; +214.6865692138672, -0.18762797117233276; +214.7865753173828, -0.18930435180664062; +214.88656616210938, -0.1896694302558899; +214.98655700683594, -0.19071996212005615; +215.0865478515625, -0.1934841275215149; +215.18653869628906, -0.19741803407669067; +215.28652954101562, -0.20141154527664185; +215.38653564453125, -0.20316243171691895; +215.4865264892578, -0.20211189985275269; +215.58651733398438, -0.19992142915725708; +215.68650817871094, -0.1983046531677246; +215.7864990234375, -0.1979619264602661; +215.88650512695312, -0.19747763872146606; +215.9864959716797, -0.19782036542892456; +216.08648681640625, -0.20056217908859253; +216.1864776611328, -0.2053380012512207; +216.28646850585938, -0.2107173204421997; +216.386474609375, -0.21424144506454468; +216.48646545410156, -0.21580606698989868; +216.58645629882812, -0.21683424711227417; +216.6864471435547, -0.2175644040107727; +216.78643798828125, -0.21707266569137573; +216.88644409179688, -0.21444261074066162; +216.98643493652344, -0.21245330572128296; +217.08642578125, -0.2130568027496338; +217.18641662597656, -0.21415948867797852; +217.28640747070312, -0.2133697271347046; +217.3863983154297, -0.2097487449645996; +217.4864044189453, -0.20573288202285767; +217.58639526367188, -0.20191073417663574; +217.68638610839844, -0.19741803407669067; +217.786376953125, -0.19387900829315186; +217.88636779785156, -0.19335001707077026; +217.9863739013672, -0.19562244415283203; +218.08636474609375, -0.19846856594085693; +218.1863555908203, -0.20043551921844482; +218.28634643554688, -0.20247697830200195; +218.38633728027344, -0.20466744899749756; +218.48634338378906, -0.20512938499450684; +218.58633422851562, -0.20378828048706055; +218.6863250732422, -0.20207464694976807; +218.78631591796875, -0.20049512386322021; +218.8863067626953, -0.19834190607070923; +218.98631286621094, -0.194646418094635; +219.0863037109375, -0.1917630434036255; +219.18629455566406, -0.1913011074066162; +219.28628540039062, -0.19227713346481323; +219.3862762451172, -0.19352883100509644; +219.48626708984375, -0.19449740648269653; +219.58627319335938, -0.19507110118865967; +219.68626403808594, -0.194549560546875; +219.7862548828125, -0.19244849681854248; +219.88624572753906, -0.18943101167678833; +219.98623657226562, -0.18747150897979736; +220.08624267578125, -0.18735229969024658; +220.1862335205078, -0.1888573169708252; +220.28622436523438, -0.19227713346481323; +220.38621520996094, -0.19790232181549072; +220.4862060546875, -0.20523369312286377; +220.58621215820312, -0.21079927682876587; +220.6862030029297, -0.21419674158096313; +220.78619384765625, -0.21710991859436035; +220.8861846923828, -0.21996349096298218; +220.98617553710938, -0.2210959792137146; +221.086181640625, -0.21942704916000366; +221.18617248535156, -0.2164691686630249; +221.28616333007812, -0.2127811312675476; +221.3861541748047, -0.20923465490341187; +221.48614501953125, -0.2070292830467224; +221.5861358642578, -0.20729750394821167; +221.68614196777344, -0.20795315504074097; +221.7861328125, -0.207558274269104; +221.88612365722656, -0.20756572484970093; +221.98611450195312, -0.2087801694869995; +222.0861053466797, -0.20888447761535645; +222.1861114501953, -0.2061501145362854; +222.28610229492188, -0.20312517881393433; +222.38609313964844, -0.20386278629302979; +222.486083984375, -0.20654499530792236; +222.58607482910156, -0.2073049545288086; +222.6860809326172, -0.20598620176315308; +222.78607177734375, -0.20635873079299927; +222.8860626220703, -0.21081417798995972; +222.98605346679688, -0.21521002054214478; +223.08604431152344, -0.21696090698242188; +223.18605041503906, -0.2167150378227234; +223.28604125976562, -0.21700561046600342; +223.3860321044922, -0.21664798259735107; +223.48602294921875, -0.21383166313171387; +223.5860137939453, -0.21000206470489502; +223.68600463867188, -0.2079010009765625; +223.7860107421875, -0.20954012870788574; +223.88600158691406, -0.21291524171829224; +223.98599243164062, -0.2162829041481018; +224.0859832763672, -0.2187192440032959; +224.18597412109375, -0.22102147340774536; +224.28598022460938, -0.22390484809875488; +224.38597106933594, -0.22588670253753662; +224.4859619140625, -0.22555887699127197; +224.58595275878906, -0.2234131097793579; +224.68594360351562, -0.22117793560028076; +224.78594970703125, -0.21927803754806519; +224.8859405517578, -0.2169981598854065; +224.98593139648438, -0.21392107009887695; +225.08592224121094, -0.21195411682128906; +225.1859130859375, -0.21157413721084595; +225.28591918945312, -0.21070241928100586; +225.3859100341797, -0.20753592252731323; +225.48590087890625, -0.20208954811096191; +225.5858917236328, -0.19741803407669067; +225.68588256835938, -0.19406527280807495; +225.78587341308594, -0.19179284572601318; +225.88587951660156, -0.1909807324409485; +225.98587036132812, -0.19118934869766235; +226.0858612060547, -0.19235163927078247; +226.18585205078125, -0.19255280494689941; +226.2858428955078, -0.19118934869766235; +226.38584899902344, -0.18797814846038818; +226.48583984375, -0.1849159598350525; +226.58583068847656, -0.18558651208877563; +226.68582153320312, -0.18957257270812988; +226.7858123779297, -0.19440054893493652; +226.8858184814453, -0.19750744104385376; +226.98580932617188, -0.20020455121994019; +227.08580017089844, -0.20252913236618042; +227.185791015625, -0.20261108875274658; +227.28578186035156, -0.20054727792739868; +227.3857879638672, -0.19922107458114624; +227.48577880859375, -0.20163506269454956; +227.5857696533203, -0.20503252744674683; +227.68576049804688, -0.2064332365989685; +227.78575134277344, -0.20609796047210693; +227.8857421875, -0.20572543144226074; +227.98574829101562, -0.20392239093780518; +228.0857391357422, -0.19937008619308472; +228.18572998046875, -0.19580870866775513; +228.2857208251953, -0.1957714557647705; +228.38571166992188, -0.1977682113647461; +228.4857177734375, -0.19852817058563232; +228.58570861816406, -0.19872188568115234; +228.68569946289062, -0.2005845308303833; +228.7856903076172, -0.20395219326019287; +228.88568115234375, -0.20859390497207642; +228.98568725585938, -0.21276623010635376; +229.08567810058594, -0.21673738956451416; +229.1856689453125, -0.220470130443573; +229.28565979003906, -0.22321194410324097; +229.38565063476562, -0.22370368242263794; +229.48565673828125, -0.22046267986297607; +229.5856475830078, -0.21563470363616943; +229.68563842773438, -0.2113431692123413; +229.78562927246094, -0.20859390497207642; +229.8856201171875, -0.20668655633926392; +229.98561096191406, -0.2042129635810852; +230.0856170654297, -0.20195543766021729; +230.18560791015625, -0.20179152488708496; +230.2855987548828, -0.202961266040802; +230.38558959960938, -0.20462274551391602; +230.48558044433594, -0.20709633827209473; +230.58558654785156, -0.21076202392578125; +230.68557739257812, -0.21452456712722778; +230.7855682373047, -0.2162456512451172; +230.88555908203125, -0.2171248197555542; +230.9855499267578, -0.21789222955703735; +231.08555603027344, -0.21797418594360352; +231.185546875, -0.2176836133003235; +231.28553771972656, -0.21632760763168335; +231.38552856445312, -0.21317601203918457; +231.4855194091797, -0.20819902420043945; +231.58551025390625, -0.20406395196914673; +231.68551635742188, -0.20272284746170044; +231.78550720214844, -0.20200759172439575; +231.885498046875, -0.20188093185424805; +231.98548889160156, -0.2039000391960144; +232.08547973632812, -0.2083033323287964; +232.18548583984375, -0.21065771579742432; +232.2854766845703, -0.2089366316795349; +232.38546752929688, -0.20572543144226074; +232.48545837402344, -0.20259618759155273; +232.58544921875, -0.2001449465751648; +232.68545532226562, -0.19662827253341675; +232.7854461669922, -0.19326061010360718; +232.88543701171875, -0.1910179853439331; +232.9854278564453, -0.19226223230361938; +233.08541870117188, -0.197581946849823; +233.1854248046875, -0.20342320203781128; +233.28541564941406, -0.20762532949447632; +233.38540649414062, -0.2107769250869751; +233.4853973388672, -0.21467357873916626; +233.58538818359375, -0.21626055240631104; +233.6853790283203, -0.21401792764663696; +233.78538513183594, -0.20914524793624878; +233.8853759765625, -0.2052411437034607; +233.98536682128906, -0.20375847816467285; +234.08535766601562, -0.2027750015258789; +234.1853485107422, -0.20295381546020508; +234.2853546142578, -0.20447373390197754; +234.38534545898438, -0.208929181098938; +234.48533630371094, -0.21550804376602173; +234.5853271484375, -0.2209395170211792; +234.68531799316406, -0.2241581678390503; +234.7853240966797, -0.2243444323539734; +234.88531494140625, -0.2243146300315857; +234.9853057861328, -0.224284827709198; +235.08529663085938, -0.2232566475868225; +235.18528747558594, -0.22133439779281616; +235.28529357910156, -0.21851062774658203; +235.38528442382812, -0.21617114543914795; +235.4852752685547, -0.21347403526306152; +235.58526611328125, -0.21057575941085815; +235.6852569580078, -0.2079308032989502; +235.78524780273438, -0.2054646611213684; +235.88525390625, -0.20416080951690674; +235.98524475097656, -0.20629167556762695; +236.08523559570312, -0.21117180585861206; +236.1852264404297, -0.2162531018257141; +236.28521728515625, -0.2181529998779297; +236.38522338867188, -0.21722912788391113; +236.48521423339844, -0.21567940711975098; +236.585205078125, -0.21375715732574463; +236.68519592285156, -0.21107494831085205; +236.78518676757812, -0.20784884691238403; +236.88519287109375, -0.20731240510940552; +236.9851837158203, -0.2125278115272522; +237.08517456054688, -0.2207830548286438; +237.18516540527344, -0.2267211675643921; +237.28515625, -0.22873282432556152; +237.38516235351562, -0.2290979027748108; +237.4851531982422, -0.22927671670913696; +237.58514404296875, -0.22652745246887207; +237.6851348876953, -0.22135674953460693; +237.78512573242188, -0.21623820066452026; +237.88511657714844, -0.21353363990783691; +237.98512268066406, -0.2133771777153015; +238.08511352539062, -0.21504610776901245; +238.1851043701172, -0.21886080503463745; +238.28509521484375, -0.22251158952713013; +238.3850860595703, -0.2245083451271057; +238.48509216308594, -0.22398680448532104; +238.5850830078125, -0.2218484878540039; +238.68507385253906, -0.21982192993164062; +238.78506469726562, -0.21786242723464966; +238.8850555419922, -0.21526217460632324; +238.9850616455078, -0.21133571863174438; +239.08505249023438, -0.20832568407058716; +239.18504333496094, -0.20883232355117798; +239.2850341796875, -0.21129101514816284; +239.38502502441406, -0.21428614854812622; +239.4850311279297, -0.2184659242630005; +239.58502197265625, -0.2224072813987732; +239.6850128173828, -0.22339075803756714; +239.78500366210938, -0.21941959857940674; +239.88499450683594, -0.21392107009887695; +239.9849853515625, -0.20875781774520874; +240.08499145507812, -0.20483136177062988; +240.1849822998047, -0.20389258861541748; +240.28497314453125, -0.2047121524810791; +240.3849639892578, -0.2053380012512207; +240.48495483398438, -0.20454823970794678; +240.5849609375, -0.20473450422286987; +240.68495178222656, -0.20650029182434082; +240.78494262695312, -0.20927190780639648; +240.8849334716797, -0.21405518054962158; +240.98492431640625, -0.22204220294952393; +241.08493041992188, -0.23114681243896484; +241.18492126464844, -0.23709237575531006; +241.284912109375, -0.23848563432693481; +241.38490295410156, -0.23761391639709473; +241.48489379882812, -0.23576617240905762; +241.58489990234375, -0.23123621940612793; +241.6848907470703, -0.2237185835838318; +241.78488159179688, -0.21636486053466797; +241.88487243652344, -0.2116560935974121; +241.98486328125, -0.2097487449645996; +242.08485412597656, -0.20992755889892578; +242.1848602294922, -0.21253526210784912; +242.28485107421875, -0.2159401774406433; +242.3848419189453, -0.218905508518219; +242.48483276367188, -0.2218484878540039; +242.58482360839844, -0.2247244119644165; +242.68482971191406, -0.2264752984046936; +242.78482055664062, -0.22651255130767822; +242.8848114013672, -0.22638589143753052; +242.98480224609375, -0.22652000188827515; +243.0847930908203, -0.2265647053718567; +243.18479919433594, -0.22614747285842896; +243.2847900390625, -0.2250373363494873; +243.38478088378906, -0.2235323190689087; +243.48477172851562, -0.22324174642562866; +243.5847625732422, -0.22552162408828735; +243.6847686767578, -0.22824108600616455; +243.78475952148438, -0.23001432418823242; +243.88475036621094, -0.23195147514343262; +243.9847412109375, -0.2346336841583252; +244.08473205566406, -0.23606419563293457; +244.18472290039062, -0.23448467254638672; +244.28472900390625, -0.23239105939865112; +244.3847198486328, -0.23162364959716797; +244.48471069335938, -0.23130327463150024; +244.58470153808594, -0.23086369037628174; +244.6846923828125, -0.23125112056732178; +244.78469848632812, -0.2336949110031128; +244.8846893310547, -0.2358853816986084; +244.98468017578125, -0.235632061958313; +245.0846710205078, -0.2340450882911682; +245.18466186523438, -0.23237615823745728; +245.28466796875, -0.23015588521957397; +245.38465881347656, -0.22529810667037964; +245.48464965820312, -0.2200603485107422; +245.5846405029297, -0.21664798259735107; +245.68463134765625, -0.2148076891899109; +245.78463745117188, -0.21506845951080322; +245.88462829589844, -0.21795183420181274; +245.984619140625, -0.22292882204055786; +246.08460998535156, -0.2275332808494568; +246.18460083007812, -0.23099035024642944; +246.2845916748047, -0.2341046929359436; +246.3845977783203, -0.23458898067474365; +246.48458862304688, -0.23338943719863892; +246.58457946777344, -0.23176521062850952; +246.6845703125, -0.22940337657928467; +246.78456115722656, -0.2254769206047058; +246.8845672607422, -0.22073835134506226; +246.98455810546875, -0.2175644040107727; +247.0845489501953, -0.21395832300186157; +247.18453979492188, -0.2095252275466919; +247.28453063964844, -0.20650774240493774; +247.38453674316406, -0.2058073878288269; +247.48452758789062, -0.20550191402435303; +247.5845184326172, -0.20372867584228516; +247.68450927734375, -0.2020522952079773; +247.7845001220703, -0.2024620771408081; +247.88450622558594, -0.20536035299301147; +247.9844970703125, -0.2088695764541626; +248.08448791503906, -0.21260976791381836; +248.18447875976562, -0.21670013666152954; +248.2844696044922, -0.22098422050476074; +248.38446044921875, -0.22436678409576416; +248.48446655273438, -0.22530555725097656; +248.58445739746094, -0.22552907466888428; +248.6844482421875, -0.2265721559524536; +248.78443908691406, -0.23055821657180786; +248.88442993164062, -0.23623555898666382; +248.98443603515625, -0.23997575044631958; +249.0844268798828, -0.23981183767318726; +249.18441772460938, -0.23706257343292236; +249.28440856933594, -0.23394078016281128; +249.3843994140625, -0.22921711206436157; +249.48440551757812, -0.2235695719718933; +249.5843963623047, -0.22077560424804688; +249.68438720703125, -0.22405385971069336; +249.7843780517578, -0.23081153631210327; +249.88436889648438, -0.2360418438911438; +249.98435974121094, -0.23902207612991333; +250.08436584472656, -0.23996084928512573; +250.18435668945312, -0.23905187845230103; +250.2843475341797, -0.23526698350906372; +250.38433837890625, -0.23043900728225708; +250.4843292236328, -0.22696703672409058; +250.58433532714844, -0.22557377815246582; +250.684326171875, -0.22543221712112427; +250.78431701660156, -0.22555887699127197; +250.88430786132812, -0.2274438738822937; +250.9842987060547, -0.2306923270225525; +251.0843048095703, -0.23486465215682983; +251.18429565429688, -0.2398863434791565; +251.28428649902344, -0.2456456422805786; +251.38427734375, -0.2505481243133545; +251.48426818847656, -0.2521723508834839; +251.5842742919922, -0.2524182200431824; +251.68426513671875, -0.25341659784317017; +251.7842559814453, -0.25410205125808716; +251.88424682617188, -0.25369226932525635; +251.98423767089844, -0.25281310081481934; +252.084228515625, -0.2522990107536316; +252.18423461914062, -0.25068968534469604; +252.2842254638672, -0.24672597646713257; +252.38421630859375, -0.2410784363746643; +252.4842071533203, -0.23514777421951294; +252.58419799804688, -0.231035053730011; +252.6842041015625, -0.22970885038375854; +252.78419494628906, -0.2309158444404602; +252.88418579101562, -0.2324804663658142; +252.9841766357422, -0.23297220468521118; +253.08416748046875, -0.23145228624343872; +253.18417358398438, -0.22805482149124146; +253.28416442871094, -0.2239719033241272; +253.3841552734375, -0.2208501100540161; +253.48414611816406, -0.21992623805999756; +253.58413696289062, -0.22085756063461304; +253.68414306640625, -0.2225339412689209; +253.7841339111328, -0.22368133068084717; +253.88412475585938, -0.22402405738830566; +253.98411560058594, -0.22345781326293945; +254.0841064453125, -0.22319704294204712; +254.18409729003906, -0.2247840166091919; +254.2841033935547, -0.2278164029121399; +254.38409423828125, -0.23104995489120483; +254.4840850830078, -0.23318082094192505; +254.58407592773438, -0.23498386144638062; +254.68406677246094, -0.23728609085083008; +254.78407287597656, -0.2392008900642395; +254.88406372070312, -0.24086982011795044; +254.9840545654297, -0.24268031120300293; +255.08404541015625, -0.2447664737701416; +255.1840362548828, -0.24527311325073242; +255.28404235839844, -0.24199485778808594; +255.384033203125, -0.23628026247024536; +255.48402404785156, -0.23183226585388184; +255.58401489257812, -0.23005902767181396; +255.6840057373047, -0.23070722818374634; +255.7840118408203, -0.23199617862701416; +255.88400268554688, -0.23474544286727905; +255.98399353027344, -0.23932009935379028; +256.083984375, -0.24434179067611694; +256.1839904785156, -0.24907290935516357; +256.2839660644531, -0.25200843811035156; +256.38397216796875, -0.2534240484237671; +256.48394775390625, -0.2522319555282593; +256.5839538574219, -0.24859607219696045; +256.6839599609375, -0.2424865961074829; +256.783935546875, -0.2354159951210022; +256.8839416503906, -0.22998452186584473; +256.9839172363281, -0.2278462052345276; +257.08392333984375, -0.22927671670913696; +257.1839294433594, -0.23212283849716187; +257.2839050292969, -0.23545324802398682; +257.3839111328125, -0.23820996284484863; +257.48388671875, -0.23940950632095337; +257.5838928222656, -0.23934990167617798; +257.68389892578125, -0.23774802684783936; +257.78387451171875, -0.2348572015762329; +257.8838806152344, -0.2309158444404602; +257.9838562011719, -0.22720545530319214; +258.0838623046875, -0.22526830434799194; +258.1838684082031, -0.22435933351516724; +258.2838439941406, -0.22551417350769043; +258.38385009765625, -0.23025274276733398; +258.48382568359375, -0.2385452389717102; +258.5838317871094, -0.24800747632980347; +258.683837890625, -0.25435537099838257; +258.7838134765625, -0.256560742855072; +258.8838195800781, -0.25597959756851196; +258.9837951660156, -0.25262683629989624; +259.08380126953125, -0.24762749671936035; +259.18377685546875, -0.2423897385597229; +259.2837829589844, -0.24150311946868896; +259.3837890625, -0.2453327178955078; +259.4837646484375, -0.2501830458641052; +259.5837707519531, -0.2540573477745056; +259.6837463378906, -0.25629252195358276; +259.78375244140625, -0.25516748428344727; +259.8837585449219, -0.24884939193725586; +259.9837341308594, -0.23934245109558105; +260.083740234375, -0.2303197979927063; +260.1837158203125, -0.22423267364501953; +260.2837219238281, -0.22046267986297607; +260.38372802734375, -0.22090226411819458; +260.48370361328125, -0.22558122873306274; +260.5837097167969, -0.23311376571655273; +260.6836853027344, -0.24011731147766113; +260.78369140625, -0.24324655532836914; +260.8836975097656, -0.24522840976715088; +260.9836730957031, -0.24790316820144653; +261.08367919921875, -0.2510175108909607; +261.18365478515625, -0.25150924921035767; +261.2836608886719, -0.2491474151611328; +261.3836669921875, -0.24750828742980957; +261.483642578125, -0.24604052305221558; +261.5836486816406, -0.24292618036270142; +261.6836242675781, -0.2388209104537964; +261.78363037109375, -0.23671984672546387; +261.8836364746094, -0.2390146255493164; +261.9836120605469, -0.24402886629104614; +262.0836181640625, -0.24878233671188354; +262.18359375, -0.25221705436706543; +262.2835998535156, -0.25428086519241333; +262.38360595703125, -0.2545192837715149; +262.48358154296875, -0.25188177824020386; +262.5835876464844, -0.24648010730743408; +262.6835632324219, -0.24194270372390747; +262.7835693359375, -0.2403557300567627; +262.8835754394531, -0.2412647008895874; +262.9835510253906, -0.2430155873298645; +263.08355712890625, -0.2450123429298401; +263.18353271484375, -0.24818629026412964; +263.2835388183594, -0.25159120559692383; +263.3835144042969, -0.2527758479118347; +263.4835205078125, -0.2500489354133606; +263.5835266113281, -0.24565309286117554; +263.6835021972656, -0.2418309450149536; +263.78350830078125, -0.2391412854194641; +263.88348388671875, -0.23649632930755615; +263.9834899902344, -0.23434311151504517; +264.08349609375, -0.23431330919265747; +264.1834716796875, -0.2366974949836731; +264.2834777832031, -0.24136900901794434; +264.3834533691406, -0.24577230215072632; +264.48345947265625, -0.24727731943130493; +264.5834655761719, -0.24628639221191406; +264.6834411621094, -0.24434179067611694; +264.783447265625, -0.24296343326568604; +264.8834228515625, -0.24108588695526123; +264.9834289550781, -0.23879855871200562; +265.08343505859375, -0.2387017011642456; +265.18341064453125, -0.24116039276123047; +265.2834167480469, -0.24610012769699097; +265.3833923339844, -0.25075674057006836; +265.4833984375, -0.25491416454315186; +265.5834045410156, -0.2590790390968323; +265.6833801269531, -0.26267021894454956; +265.78338623046875, -0.26523321866989136; +265.88336181640625, -0.2653449773788452; +265.9833679199219, -0.2646297216415405; +266.0833740234375, -0.2640038728713989; +266.183349609375, -0.2635344862937927; +266.2833557128906, -0.26200711727142334; +266.3833312988281, -0.25948137044906616; +266.48333740234375, -0.2568066120147705; +266.5833435058594, -0.25507062673568726; +266.6833190917969, -0.2545490860939026; +266.7833251953125, -0.25675445795059204; +266.88330078125, -0.26282668113708496; +266.9833068847656, -0.27014315128326416; +267.08331298828125, -0.27649104595184326; +267.18328857421875, -0.27855485677719116; +267.2832946777344, -0.27667731046676636; +267.3832702636719, -0.2712234854698181; +267.4832763671875, -0.2634897828102112; +267.583251953125, -0.2567768096923828; +267.6832580566406, -0.2528280019760132; +267.78326416015625, -0.253044068813324; +267.88323974609375, -0.25540590286254883; +267.9832458496094, -0.2586543560028076; +268.0832214355469, -0.2614930272102356; +268.1832275390625, -0.26354193687438965; +268.2832336425781, -0.2647861838340759; +268.3832092285156, -0.26588141918182373; +268.48321533203125, -0.2680644392967224; +268.58319091796875, -0.2712160348892212; +268.6831970214844, -0.2759397029876709; +268.783203125, -0.2807900309562683; +268.8831787109375, -0.28249621391296387; +268.9831848144531, -0.2792626619338989; +269.0831604003906, -0.27267634868621826; +269.18316650390625, -0.26728957891464233; +269.2831726074219, -0.26288628578186035; +269.3831481933594, -0.25767087936401367; +269.483154296875, -0.25375187397003174; +269.5831298828125, -0.2529323101043701; +269.6831359863281, -0.25490671396255493; +269.78314208984375, -0.2550557255744934; +269.88311767578125, -0.25413185358047485; +269.9831237792969, -0.2565830945968628; +270.0830993652344, -0.2623945474624634; +270.18310546875, -0.2695247530937195; +270.2831115722656, -0.2751350402832031; +270.3830871582031, -0.280134379863739; +270.48309326171875, -0.2828836441040039; +270.58306884765625, -0.2806633710861206; +270.6830749511719, -0.2734661102294922; +270.7830810546875, -0.26439130306243896; +270.883056640625, -0.25697052478790283; +270.9830627441406, -0.2517104148864746; +271.0830383300781, -0.2494528889656067; +271.18304443359375, -0.2506673336029053; +271.2830505371094, -0.25538355112075806; +271.3830261230469, -0.26054680347442627; +271.4830322265625, -0.263407826423645; +271.5830078125, -0.2644732594490051; +271.6830139160156, -0.26591867208480835; +271.7829895019531, -0.26857852935791016; +271.88299560546875, -0.2710297703742981; +271.9830017089844, -0.27260929346084595; +272.0829772949219, -0.2735033631324768; +272.1829833984375, -0.27320533990859985; +272.282958984375, -0.2713203430175781; +272.3829650878906, -0.2686530351638794; +272.48297119140625, -0.2675577998161316; +272.58294677734375, -0.26932358741760254; +272.6829528808594, -0.27448683977127075; +272.7829284667969, -0.2822205424308777; +272.8829345703125, -0.287763774394989; +272.9829406738281, -0.28746575117111206; +273.0829162597656, -0.2818107604980469; +273.18292236328125, -0.2757236361503601; +273.28289794921875, -0.2703070640563965; +273.3829040527344, -0.2646893262863159; +273.48291015625, -0.2605915069580078; +273.5828857421875, -0.25975704193115234; +273.6828918457031, -0.2606585621833801; +273.7828674316406, -0.2602413296699524; +273.88287353515625, -0.2589598298072815; +273.9828796386719, -0.258617103099823; +274.0828552246094, -0.2603456377983093; +274.182861328125, -0.2637133002281189; +274.2828369140625, -0.2681463956832886; +274.3828430175781, -0.27104467153549194; +274.48284912109375, -0.2717748284339905; +274.58282470703125, -0.27066469192504883; +274.6828308105469, -0.26935338973999023; +274.7828063964844, -0.26963651180267334; +274.8828125, -0.27320533990859985; +274.9828186035156, -0.27973949909210205; +275.0827941894531, -0.28599053621292114; +275.18280029296875, -0.29018521308898926; +275.28277587890625, -0.29192864894866943; +275.3827819824219, -0.29146671295166016; +275.4827575683594, -0.2884194254875183; +275.582763671875, -0.28377771377563477; +275.6827697753906, -0.27998536825180054; +275.7827453613281, -0.2771541476249695; +275.88275146484375, -0.27623772621154785; +275.98272705078125, -0.27774274349212646; +276.0827331542969, -0.2810060977935791; +276.1827392578125, -0.28461962938308716; +276.28271484375, -0.28698891401290894; +276.3827209472656, -0.2898573875427246; +276.4826965332031, -0.2919882535934448; +276.58270263671875, -0.29030442237854004; +276.6827087402344, -0.28455257415771484; +276.7826843261719, -0.27827173471450806; +276.8826904296875, -0.2757534384727478; +276.982666015625, -0.2760961651802063; +277.0826721191406, -0.27654320001602173; +277.18267822265625, -0.2777576446533203; +277.28265380859375, -0.28187036514282227; +277.3826599121094, -0.2875030040740967; +277.4826354980469, -0.2898797392845154; +277.5826416015625, -0.28777867555618286; +277.6826477050781, -0.28493255376815796; +277.7826232910156, -0.2838820219039917; +277.88262939453125, -0.2822205424308777; +277.98260498046875, -0.2792477607727051; +278.0826110839844, -0.2775117754936218; +278.1826171875, -0.2792924642562866; +278.2825927734375, -0.28233975172042847; +278.3825988769531, -0.2835988998413086; +278.4825744628906, -0.28464198112487793; +278.58258056640625, -0.28649717569351196; +278.6825866699219, -0.28833746910095215; +278.7825622558594, -0.2879723906517029; +278.882568359375, -0.28724968433380127; +278.9825439453125, -0.2893507480621338; +279.0825500488281, -0.29265135526657104; +279.18255615234375, -0.2959519624710083; +279.28253173828125, -0.299111008644104; +279.3825378417969, -0.3020539879798889; +279.4825134277344, -0.30224770307540894; +279.58251953125, -0.29885023832321167; +279.6824951171875, -0.2954155206680298; +279.7825012207031, -0.29356032609939575; +279.88250732421875, -0.2920106053352356; +279.98248291015625, -0.2913326025009155; +280.0824890136719, -0.2924725413322449; +280.1824645996094, -0.29405951499938965; +280.282470703125, -0.29455870389938354; +280.3824768066406, -0.2945363521575928; +280.4824523925781, -0.29643625020980835; +280.58245849609375, -0.298917293548584; +280.68243408203125, -0.3007277846336365; +280.7824401855469, -0.3028959035873413; +280.8824462890625, -0.3053024411201477; +280.982421875, -0.3064200282096863; +281.0824279785156, -0.30536949634552; +281.1824035644531, -0.3039613366127014; +281.28240966796875, -0.304587185382843; +281.3824157714844, -0.30556321144104004; +281.4823913574219, -0.3049224615097046; +281.5823974609375, -0.30269473791122437; +281.682373046875, -0.3005713224411011; +281.7823791503906, -0.2993568778038025; +281.88238525390625, -0.2967938780784607; +281.98236083984375, -0.2939179539680481; +282.0823669433594, -0.292167067527771; +282.1823425292969, -0.2937689423561096; +282.2823486328125, -0.2970844507217407; +282.3823547363281, -0.30006468296051025; +282.4823303222656, -0.3026500344276428; +282.58233642578125, -0.30402839183807373; +282.68231201171875, -0.30535459518432617; +282.7823181152344, -0.30553340911865234; +282.88232421875, -0.30431896448135376; +282.9822998046875, -0.3023594617843628; +283.0823059082031, -0.3014206886291504; +283.1822814941406, -0.3021657466888428; +283.28228759765625, -0.302240252494812; +283.3822937011719, -0.30059367418289185; +283.4822692871094, -0.29887259006500244; +283.582275390625, -0.29893964529037476; +283.6822509765625, -0.30056387186050415; +283.7822570800781, -0.30329078435897827; +283.8822326660156, -0.3071725368499756; +283.98223876953125, -0.31209737062454224; +284.0822448730469, -0.31641125679016113; +284.1822204589844, -0.3185570240020752; +284.2822265625, -0.3178343176841736; +284.3822021484375, -0.31629204750061035; +284.4822082519531, -0.3158301115036011; +284.58221435546875, -0.3156512975692749; +284.68218994140625, -0.31484663486480713; +284.7821960449219, -0.3132373094558716; +284.8821716308594, -0.31254440546035767; +284.982177734375, -0.31288713216781616; +285.0821838378906, -0.31261146068573; +285.1821594238281, -0.31181424856185913; +285.28216552734375, -0.30963122844696045; +285.38214111328125, -0.30584633350372314; +285.4821472167969, -0.3001019358634949; +285.5821533203125, -0.2930685877799988; +285.68212890625, -0.2870708703994751; +285.7821350097656, -0.28348714113235474; +285.8821105957031, -0.28292834758758545; +285.98211669921875, -0.2845451235771179; +286.0821228027344, -0.288546085357666; +286.1820983886719, -0.29333680868148804; +286.2821044921875, -0.29749423265457153; +286.382080078125, -0.3004148602485657; +286.4820861816406, -0.3030151128768921; +286.58209228515625, -0.3064349293708801; +286.68206787109375, -0.30885636806488037; +286.7820739746094, -0.3101080656051636; +286.8820495605469, -0.3109648823738098; +286.9820556640625, -0.310264527797699; +287.0820617675781, -0.30854344367980957; +287.1820373535156, -0.3061145544052124; +287.28204345703125, -0.3045126795768738; +287.38201904296875, -0.30359625816345215; +287.4820251464844, -0.3016442060470581; +287.58203125, -0.30143558979034424; +287.6820068359375, -0.30416250228881836; +287.7820129394531, -0.3093332052230835; +287.8819885253906, -0.3142803907394409; +287.98199462890625, -0.31735748052597046; +288.08197021484375, -0.3203675150871277; +288.1819763183594, -0.32338500022888184; +288.281982421875, -0.325717031955719; +288.3819580078125, -0.3256648778915405; +288.4819641113281, -0.32376497983932495; +288.5819396972656, -0.3220662474632263; +288.68194580078125, -0.3218725323677063; +288.7819519042969, -0.3224387764930725; +288.8819274902344, -0.32060593366622925; +288.98193359375, -0.31753629446029663; +289.0819091796875, -0.3159269690513611; +289.1819152832031, -0.31766295433044434; +289.28192138671875, -0.3199949860572815; +289.38189697265625, -0.319942831993103; +289.4819030761719, -0.31889230012893677; +289.5818786621094, -0.3187209367752075; +289.681884765625, -0.3188624978065491; +289.7818908691406, -0.3177225589752197; +289.8818664550781, -0.31635165214538574; +289.98187255859375, -0.3161504864692688; +290.08184814453125, -0.3175288438796997; +290.1818542480469, -0.31942129135131836; +290.2818603515625, -0.3218352794647217; +290.3818359375, -0.32316893339157104; +290.4818420410156, -0.32276660203933716; +290.5818176269531, -0.32164156436920166; +290.68182373046875, -0.32126158475875854; +290.7818298339844, -0.3205612301826477; +290.8818054199219, -0.3182068467140198; +290.9818115234375, -0.31737983226776123; +291.081787109375, -0.31945109367370605; +291.1817932128906, -0.3231838345527649; +291.28179931640625, -0.32511353492736816; +291.38177490234375, -0.3260672092437744; +291.4817810058594, -0.32717734575271606; +291.5817565917969, -0.3275871276855469; +291.6817626953125, -0.32683461904525757; +291.78173828125, -0.3266185522079468; +291.8817443847656, -0.32801181077957153; +291.98175048828125, -0.3310367465019226; +292.08172607421875, -0.3365427255630493; +292.1817321777344, -0.3423169255256653; +292.2817077636719, -0.34543871879577637; +292.3817138671875, -0.344887375831604; +292.4817199707031, -0.34421682357788086; +292.5816955566406, -0.34236907958984375; +292.68170166015625, -0.3365427255630493; +292.78167724609375, -0.32785534858703613; +292.8816833496094, -0.32030045986175537; +292.981689453125, -0.3161206841468811; +293.0816650390625, -0.31416863203048706; +293.1816711425781, -0.3148019313812256; +293.2816467285156, -0.31654536724090576; +293.38165283203125, -0.3182440996170044; +293.4816589355469, -0.3207176923751831; +293.5816345214844, -0.32419711351394653; +293.681640625, -0.32579898834228516; +293.7816162109375, -0.3248751163482666; +293.8816223144531, -0.32523274421691895; +293.98162841796875, -0.3295689821243286; +294.08160400390625, -0.3356263041496277; +294.1816101074219, -0.3399848937988281; +294.2815856933594, -0.3433302044868469; +294.381591796875, -0.3452003002166748; +294.4815979003906, -0.3447011113166809; +294.5815734863281, -0.34155696630477905; +294.68157958984375, -0.33718347549438477; +294.78155517578125, -0.33286213874816895; +294.8815612792969, -0.3291517496109009; +294.9815673828125, -0.3259629011154175; +295.08154296875, -0.3237873315811157; +295.1815490722656, -0.32235682010650635; +295.2815246582031, -0.3218501806259155; +295.38153076171875, -0.3225281834602356; +295.4815368652344, -0.3242567181587219; +295.5815124511719, -0.32920390367507935; +295.6815185546875, -0.336669385433197; +295.781494140625, -0.3438219428062439; +295.8815002441406, -0.3480836749076843; +295.9814758300781, -0.34821033477783203; +296.08148193359375, -0.3460347652435303; +296.1814880371094, -0.34334510564804077; +296.2814636230469, -0.3421306610107422; +296.3814697265625, -0.34465640783309937; +296.4814453125, -0.34802407026290894; +296.5814514160156, -0.35190582275390625; +296.68145751953125, -0.3563016653060913; +296.78143310546875, -0.36081671714782715; +296.8814392089844, -0.3639981150627136; +296.9814147949219, -0.3636479377746582; +297.0814208984375, -0.36329030990600586; +297.1814270019531, -0.36332011222839355; +297.2814025878906, -0.36231428384780884; +297.38140869140625, -0.3598406910896301; +297.48138427734375, -0.356823205947876; +297.5813903808594, -0.35659968852996826; +297.681396484375, -0.35738199949264526; +297.7813720703125, -0.35738199949264526; +297.8813781738281, -0.3563016653060913; +297.9813537597656, -0.3556087613105774; +298.08135986328125, -0.3568306565284729; +298.1813659667969, -0.3570467233657837; +298.2813415527344, -0.35647302865982056; +298.38134765625, -0.35694241523742676; +298.4813232421875, -0.3588870167732239; +298.5813293457031, -0.3605261445045471; +298.68133544921875, -0.360339879989624; +298.78131103515625, -0.36147236824035645; +298.8813171386719, -0.3643035888671875; +298.9812927246094, -0.36741793155670166; +299.081298828125, -0.36895275115966797; +299.1813049316406, -0.36919862031936646; +299.2812805175781, -0.370614230632782; +299.38128662109375, -0.37179142236709595; +299.48126220703125, -0.3715604543685913; +299.5812683105469, -0.37013739347457886; +299.6812744140625, -0.36957859992980957; +299.78125, -0.3698766231536865; +299.8812561035156, -0.3680512309074402; +299.9812316894531, -0.364549458026886; +300.08123779296875, -0.3614574670791626; +300.18121337890625, -0.3595426678657532; +300.2812194824219, -0.3587380051612854; +300.3812255859375, -0.3593564033508301; +300.481201171875, -0.36153197288513184; +300.5812072753906, -0.3629550337791443; +300.6811828613281, -0.36478787660598755; +300.78118896484375, -0.36819279193878174; +300.8811950683594, -0.37120282649993896; +300.9811706542969, -0.37132948637008667; +301.0811767578125, -0.36979466676712036; +301.18115234375, -0.369928777217865; +301.2811584472656, -0.3694295883178711; +301.38116455078125, -0.3677383065223694; +301.48114013671875, -0.3683418035507202; +301.5811462402344, -0.37310272455215454; +301.6811218261719, -0.37833303213119507; +301.7811279296875, -0.3800392150878906; +301.8811340332031, -0.3803372383117676; +301.9811096191406, -0.38082897663116455; +302.08111572265625, -0.38032978773117065; +302.18109130859375, -0.3772452473640442; +302.2810974121094, -0.3726854920387268; +302.381103515625, -0.3699660301208496; +302.4810791015625, -0.36975741386413574; +302.5810852050781, -0.3705248236656189; +302.6810607910156, -0.3704652190208435; +302.78106689453125, -0.37015974521636963; +302.8810729980469, -0.371493399143219; +302.9810485839844, -0.37220120429992676; +303.0810546875, -0.3695189952850342; +303.1810302734375, -0.3645271062850952; +303.2810363769531, -0.3602132201194763; +303.38104248046875, -0.3582760691642761; +303.48101806640625, -0.3558620810508728; +303.5810241699219, -0.35338103771209717; +303.6809997558594, -0.3543570637702942; +303.781005859375, -0.3586709499359131; +303.8810119628906, -0.36409497261047363; +303.9809875488281, -0.36741048097610474; +304.08099365234375, -0.3698095679283142; +304.18096923828125, -0.3723427653312683; +304.2809753417969, -0.3725811839103699; +304.3809509277344, -0.3711804747581482; +304.48095703125, -0.3694891929626465; +304.5809631347656, -0.3691166639328003; +304.6809387207031, -0.36966055631637573; +304.78094482421875, -0.3701895475387573; +304.88092041015625, -0.37135928869247437; +304.9809265136719, -0.3723055124282837; +305.0809326171875, -0.37172436714172363; +305.180908203125, -0.37004798650741577; +305.2809143066406, -0.36957859992980957; +305.3808898925781, -0.37188082933425903; +305.48089599609375, -0.3748685121536255; +305.5809020996094, -0.3771558403968811; +305.6808776855469, -0.37945061922073364; +305.7808837890625, -0.3818795084953308; +305.880859375, -0.38246065378189087; +305.9808654785156, -0.3795698285102844; +306.08087158203125, -0.3747493028640747; +306.18084716796875, -0.3705024719238281; +306.2808532714844, -0.3687441349029541; +306.3808288574219, -0.3699958324432373; +306.4808349609375, -0.37313252687454224; +306.5808410644531, -0.37691742181777954; +306.6808166503906, -0.38160383701324463; +306.78082275390625, -0.38643181324005127; +306.88079833984375, -0.390760600566864; +306.9808044433594, -0.39261579513549805; +307.080810546875, -0.39180368185043335; +307.1807861328125, -0.3893449902534485; +307.2807922363281, -0.3868192434310913; +307.3807678222656, -0.38476288318634033; +307.48077392578125, -0.3814101219177246; +307.5807800292969, -0.3777816891670227; +307.6807556152344, -0.3760680556297302; +307.78076171875, -0.37598609924316406; +307.8807373046875, -0.3768056631088257; +307.9807434082031, -0.37804991006851196; +308.08074951171875, -0.37992000579833984; +308.18072509765625, -0.3805980086326599; +308.2807312011719, -0.3808513283729553; +308.3807067871094, -0.3834962844848633; +308.480712890625, -0.38673728704452515; +308.5806884765625, -0.3871023654937744; +308.6806945800781, -0.38348883390426636; +308.78070068359375, -0.37997961044311523; +308.88067626953125, -0.37820637226104736; +308.9806823730469, -0.3774017095565796; +309.0806579589844, -0.377461314201355; +309.1806640625, -0.3800243139266968; +309.2806701660156, -0.38570165634155273; +309.3806457519531, -0.3921911120414734; +309.48065185546875, -0.3954470157623291; +309.58062744140625, -0.39393454790115356; +309.6806335449219, -0.3893747925758362; +309.7806396484375, -0.3848150372505188; +309.880615234375, -0.3821179270744324; +309.9806213378906, -0.379808247089386; +310.0805969238281, -0.37744641304016113; +310.18060302734375, -0.37526339292526245; +310.2806091308594, -0.3737509250640869; +310.3805847167969, -0.37195533514022827; +310.4805908203125, -0.36957859992980957; +310.58056640625, -0.37026405334472656; +310.6805725097656, -0.37682056427001953; +310.78057861328125, -0.3878474235534668; +310.88055419921875, -0.3992319107055664; +310.9805603027344, -0.40781497955322266; +311.0805358886719, -0.41265785694122314; +311.1805419921875, -0.4137754440307617; +311.2805480957031, -0.4115775227546692; +311.3805236816406, -0.4069581627845764; +311.48052978515625, -0.40043145418167114; +311.58050537109375, -0.395454466342926; +311.6805114746094, -0.3947541117668152; +311.780517578125, -0.3965646028518677; +311.8804931640625, -0.3968551754951477; +311.9804992675781, -0.395357608795166; +312.0804748535156, -0.39587169885635376; +312.18048095703125, -0.39714574813842773; +312.28045654296875, -0.39690732955932617; +312.3804626464844, -0.3965049982070923; +312.48046875, -0.39990246295928955; +312.5804443359375, -0.40677934885025024; +312.6804504394531, -0.4127994179725647; +312.7804260253906, -0.41637569665908813; +312.88043212890625, -0.41668862104415894; +312.9804382324219, -0.41400641202926636; +313.0804138183594, -0.41156262159347534; +313.180419921875, -0.41212886571884155; +313.2803955078125, -0.41625648736953735; +313.3804016113281, -0.42144209146499634; +313.48040771484375, -0.42653828859329224; +313.58038330078125, -0.43030083179473877; +313.6803894042969, -0.43004006147384644; +313.7803649902344, -0.42594969272613525; +313.88037109375, -0.4208683967590332; +313.9803771972656, -0.41816383600234985; +314.0803527832031, -0.41769444942474365; +314.18035888671875, -0.4176199436187744; +314.28033447265625, -0.41656941175460815; +314.3803405761719, -0.41478872299194336; +314.4803466796875, -0.41234493255615234; +314.580322265625, -0.40774792432785034; +314.6803283691406, -0.4019588232040405; +314.7803039550781, -0.39908289909362793; +314.88031005859375, -0.40096044540405273; +314.9803161621094, -0.4037395119667053; +315.0802917480469, -0.40368735790252686; +315.1802978515625, -0.40192902088165283; +315.2802734375, -0.4015043377876282; +315.3802795410156, -0.4009157419204712; +315.48028564453125, -0.39843469858169556; +315.58026123046875, -0.39565563201904297; +315.6802673339844, -0.39583444595336914; +315.7802429199219, -0.401034951210022; +315.8802490234375, -0.4085153341293335; +315.9802551269531, -0.4168078303337097; +316.0802307128906, -0.42384862899780273; +316.18023681640625, -0.4291236400604248; +316.28021240234375, -0.43192505836486816; +316.3802185058594, -0.4318505525588989; +316.4801940917969, -0.4301220178604126; +316.5802001953125, -0.4250034689903259; +316.6802062988281, -0.4170238971710205; +316.7801818847656, -0.40912628173828125; +316.88018798828125, -0.4034563899040222; +316.98016357421875, -0.3992319107055664; +317.0801696777344, -0.3944486379623413; +317.18017578125, -0.3926381468772888; +317.2801513671875, -0.39612501859664917; +317.3801574707031, -0.40224194526672363; +317.4801330566406, -0.40844082832336426; +317.58013916015625, -0.4145503044128418; +317.6801452636719, -0.4211887717247009; +317.7801208496094, -0.42547285556793213; +317.880126953125, -0.42666494846343994; +317.9801025390625, -0.42632222175598145; +318.0801086425781, -0.4250630736351013; +318.18011474609375, -0.4225596785545349; +318.28009033203125, -0.41934847831726074; +318.3800964355469, -0.41762739419937134; +318.4800720214844, -0.4157647490501404; +318.580078125, -0.41294097900390625; +318.6800842285156, -0.40997564792633057; +318.7800598144531, -0.4090815782546997; +318.88006591796875, -0.4105716943740845; +318.98004150390625, -0.41387975215911865; +319.0800476074219, -0.4193037748336792; +319.1800537109375, -0.4250630736351013; +319.280029296875, -0.43039023876190186; +319.3800354003906, -0.43439120054244995; +319.4800109863281, -0.4361271858215332; +319.58001708984375, -0.4350244998931885; +319.6800231933594, -0.43157488107681274; +319.7799987792969, -0.42944401502609253; +319.8800048828125, -0.42951107025146484; +319.97998046875, -0.4306212067604065; +320.0799865722656, -0.4331618547439575; +320.17999267578125, -0.436633825302124; +320.27996826171875, -0.44149160385131836; +320.3799743652344, -0.44517219066619873; +320.4799499511719, -0.44684112071990967; +320.5799560546875, -0.446513295173645; +320.679931640625, -0.44415146112442017; +320.7799377441406, -0.44079869985580444; +320.87994384765625, -0.4370659589767456; +320.97991943359375, -0.43461471796035767; +321.0799255371094, -0.43335556983947754; +321.1799011230469, -0.43388456106185913; +321.2799072265625, -0.43654441833496094; +321.3799133300781, -0.4406273365020752; +321.4798889160156, -0.4436969757080078; +321.57989501953125, -0.4432946443557739; +321.67987060546875, -0.4405006766319275; +321.7798767089844, -0.43777376413345337; +321.8798828125, -0.43657422065734863; +321.9798583984375, -0.43680518865585327; +322.0798645019531, -0.43798238039016724; +322.1798400878906, -0.43951719999313354; +322.27984619140625, -0.44161081314086914; +322.3798522949219, -0.44274330139160156; +322.4798278808594, -0.4421323537826538; +322.579833984375, -0.4386007785797119; +322.6798095703125, -0.4345551133155823; +322.7798156738281, -0.4330351948738098; +322.87982177734375, -0.4342198371887207; +322.97979736328125, -0.4362836480140686; +323.0798034667969, -0.4368424415588379; +323.1797790527344, -0.43748319149017334; +323.27978515625, -0.4384368658065796; +323.3797912597656, -0.43898075819015503; +323.4797668457031, -0.4385411739349365; +323.57977294921875, -0.43823570013046265; +323.67974853515625, -0.44015049934387207; +323.7797546386719, -0.4439428448677063; +323.8797607421875, -0.44734030961990356; +323.979736328125, -0.45032799243927; +324.0797424316406, -0.45222043991088867; +324.1797180175781, -0.45397132635116577; +324.27972412109375, -0.45590102672576904; +324.3797302246094, -0.4588589072227478; +324.4797058105469, -0.46368688344955444; +324.5797119140625, -0.467933714389801; +324.6796875, -0.47187507152557373; +324.7796936035156, -0.4749596118927002; +324.8796691894531, -0.47598034143447876; +324.97967529296875, -0.47273188829421997; +325.0796813964844, -0.46659260988235474; +325.1796569824219, -0.4604458808898926; +325.2796630859375, -0.45568495988845825; +325.379638671875, -0.4512593150138855; +325.4796447753906, -0.4482567310333252; +325.57965087890625, -0.4481896758079529; +325.67962646484375, -0.4497319459915161; +325.7796325683594, -0.45299530029296875; +325.8796081542969, -0.4555806517601013; +325.9796142578125, -0.45721977949142456; +326.0796203613281, -0.45656412839889526; +326.1795959472656, -0.4552900791168213; +326.27960205078125, -0.45571476221084595; +326.37957763671875, -0.45675039291381836; +326.4795837402344, -0.4574805498123169; +326.57958984375, -0.4574880003929138; +326.6795654296875, -0.4581958055496216; +326.7795715332031, -0.459425151348114; +326.8795471191406, -0.46068429946899414; +326.97955322265625, -0.46163052320480347; +327.0795593261719, -0.4626959562301636; +327.1795349121094, -0.46453624963760376; +327.279541015625, -0.46691298484802246; +327.3795166015625, -0.4698410630226135; +327.4795227050781, -0.4722699522972107; +327.57952880859375, -0.47360360622406006; +327.67950439453125, -0.47469884157180786; +327.7795104980469, -0.4747435450553894; +327.8794860839844, -0.4737973213195801; +327.9794921875, -0.47156959772109985; +328.0794982910156, -0.46853721141815186; +328.1794738769531, -0.46487897634506226; +328.27947998046875, -0.45996904373168945; +328.37945556640625, -0.4563480615615845; +328.4794616699219, -0.45490264892578125; +328.5794372558594, -0.4542320966720581; +328.679443359375, -0.4530474543571472; +328.7794494628906, -0.45343488454818726; +328.8794250488281, -0.45875459909439087; +328.97943115234375, -0.467933714389801; +329.07940673828125, -0.4769861698150635; +329.1794128417969, -0.48441439867019653; +329.2794189453125, -0.4896968603134155; +329.37939453125, -0.4921257495880127; +329.4794006347656, -0.49207359552383423; +329.5793762207031, -0.4906654357910156; +329.67938232421875, -0.4898831248283386; +329.7793884277344, -0.4895403981208801; +329.8793640136719, -0.49107521772384644; +329.9793701171875, -0.4951208829879761; +330.079345703125, -0.4966333508491516; +330.1793518066406, -0.49220025539398193; +330.27935791015625, -0.48435479402542114; +330.37933349609375, -0.47878921031951904; +330.4793395996094, -0.47563761472702026; +330.5793151855469, -0.47141313552856445; +330.6793212890625, -0.4682987928390503; +330.7793273925781, -0.46853721141815186; +330.8793029785156, -0.4705563187599182; +330.97930908203125, -0.47113001346588135; +331.07928466796875, -0.47175586223602295; +331.1792907714844, -0.474587082862854; +331.279296875, -0.4785284399986267; +331.3792724609375, -0.482708215713501; +331.4792785644531, -0.48752129077911377; +331.5792541503906, -0.49360841512680054; +331.67926025390625, -0.4991665482521057; +331.7792663574219, -0.5037784576416016; +331.8792419433594, -0.507451593875885; +331.979248046875, -0.5105137825012207; +332.0792236328125, -0.5117505788803101; +332.1792297363281, -0.5107149481773376; +332.27923583984375, -0.5071014165878296; +332.37921142578125, -0.5013495683670044; +332.4792175292969, -0.4949420690536499; +332.5791931152344, -0.48886239528656006; +332.67919921875, -0.4846528172492981; +332.7791748046875, -0.48179179430007935; +332.8791809082031, -0.47975778579711914; +332.97918701171875, -0.47741830348968506; +333.07916259765625, -0.4753917455673218; +333.1791687011719, -0.4736185073852539; +333.2791442871094, -0.4714950919151306; +333.379150390625, -0.4704594612121582; +333.4791564941406, -0.4724860191345215; +333.5791320800781, -0.4779919981956482; +333.67913818359375, -0.48285722732543945; +333.77911376953125, -0.4854053258895874; +333.8791198730469, -0.4873499274253845; +333.9791259765625, -0.48964470624923706; +334.0791015625, -0.49079209566116333; +334.1791076660156, -0.49055367708206177; +334.2790832519531, -0.49185752868652344; +334.37908935546875, -0.49708783626556396; +334.4790954589844, -0.5031749606132507; +334.5790710449219, -0.5066320300102234; +334.6790771484375, -0.5068406462669373; +334.779052734375, -0.5045756697654724; +334.8790588378906, -0.5003288388252258; +334.97906494140625, -0.4935339093208313; +335.07904052734375, -0.48729777336120605; +335.1790466308594, -0.48341602087020874; +335.2790222167969, -0.4811137914657593; +335.3790283203125, -0.4798993468284607; +335.4790344238281, -0.48065185546875; +335.5790100097656, -0.4834309220314026; +335.67901611328125, -0.48580020666122437; +335.77899169921875, -0.48676133155822754; +335.8789978027344, -0.48948824405670166; +335.97900390625, -0.4949122667312622; +336.0789794921875, -0.5014315247535706; +336.1789855957031, -0.5061998963356018; +336.2789611816406, -0.5091056227684021; +336.37896728515625, -0.5106329917907715; +336.4789733886719, -0.5091801285743713; +336.5789489746094, -0.5042552947998047; +336.678955078125, -0.49552321434020996; +336.7789306640625, -0.4839375615119934; +336.8789367675781, -0.4694834351539612; +336.9789123535156, -0.4527643322944641; +337.07891845703125, -0.4361644387245178; +337.1789245605469, -0.4206746816635132; +337.2789001464844, -0.4064291715621948; +337.37890625, -0.3936365246772766; +337.4788818359375, -0.38283318281173706; +337.5788879394531, -0.375114381313324; +337.67889404296875, -0.3704279661178589; +337.77886962890625, -0.3688409924507141; +337.8788757324219, -0.37107616662979126; +337.9788513183594, -0.3776252269744873; +338.078857421875, -0.3877803683280945; +338.1788635253906, -0.39843469858169556; +338.2788391113281, -0.4075095057487488; +338.37884521484375, -0.41543692350387573; +338.47882080078125, -0.42307376861572266; +338.5788269042969, -0.4295632243156433; +338.6788330078125, -0.4350394010543823; +338.77880859375, -0.44064223766326904; +338.8788146972656, -0.4452839493751526; +338.9787902832031, -0.44674426317214966; +339.07879638671875, -0.4453212022781372; +339.1788024902344, -0.4441589117050171; +339.2787780761719, -0.4444420337677002; +339.3787841796875, -0.4463121294975281; +339.478759765625, -0.45261532068252563; +339.5787658691406, -0.46356022357940674; +339.67877197265625, -0.47522783279418945; +339.77874755859375, -0.4826784133911133; +339.8787536621094, -0.4872828722000122; +339.9787292480469, -0.4912763833999634; +340.0787353515625, -0.4914328455924988; +340.1787414550781, -0.4851892590522766; +340.2787170410156, -0.4750490188598633; +340.37872314453125, -0.4684329032897949; +340.47869873046875, -0.46787410974502563; +340.5787048339844, -0.4706159234046936; +340.6787109375, -0.47422945499420166; +340.7786865234375, -0.47910213470458984; +340.8786926269531, -0.48592686653137207; +340.9786682128906, -0.4909038543701172; +341.07867431640625, -0.4896223545074463; +341.17864990234375, -0.4834607243537903; +341.2786560058594, -0.47867000102996826; +341.378662109375, -0.4790499806404114; +341.4786376953125, -0.48307329416275024; +341.5786437988281, -0.48829615116119385; +341.6786193847656, -0.4939138889312744; +341.77862548828125, -0.4993155598640442; +341.8786315917969, -0.5017518997192383; +341.9786071777344, -0.5004629492759705; +342.07861328125, -0.49645453691482544; +342.1785888671875, -0.4902854561805725; +342.2785949707031, -0.4826262593269348; +342.37860107421875, -0.4755258560180664; +342.47857666015625, -0.4712417721748352; +342.5785827636719, -0.46975165605545044; +342.6785583496094, -0.4704669117927551; +342.778564453125, -0.4744008183479309; +342.8785705566406, -0.4803985357284546; +342.9785461425781, -0.4854723811149597; +343.07855224609375, -0.48845261335372925; +343.17852783203125, -0.4893466830253601; +343.2785339355469, -0.488772988319397; +343.3785400390625, -0.48651546239852905; +343.478515625, -0.4852712154388428; +343.5785217285156, -0.48689544200897217; +343.6784973144531, -0.49036741256713867; +343.77850341796875, -0.49404799938201904; +343.8785095214844, -0.49595534801483154; +343.9784851074219, -0.4970282316207886; +344.0784912109375, -0.4964470863342285; +344.178466796875, -0.49464404582977295; +344.2784729003906, -0.4920363426208496; +344.37847900390625, -0.49108266830444336; +344.47845458984375, -0.49261748790740967; +344.5784606933594, -0.4932880401611328; +344.6784362792969, -0.49148499965667725; +344.7784423828125, -0.4868730902671814; +344.87841796875, -0.4820972681045532; +344.9784240722656, -0.47728419303894043; +345.07843017578125, -0.4735887050628662; +345.17840576171875, -0.47350674867630005; +345.2784118652344, -0.4774853587150574; +345.3783874511719, -0.483877956867218; +345.4783935546875, -0.4907771944999695; +345.5783996582031, -0.4968121647834778; +345.6783752441406, -0.5011707544326782; +345.77838134765625, -0.5025193095207214; +345.87835693359375, -0.49985945224761963; +345.9783630371094, -0.49480050802230835; +346.078369140625, -0.48960745334625244; +346.1783447265625, -0.48682093620300293; +346.2783508300781, -0.48635900020599365; +346.3783264160156, -0.4876330494880676; +346.47833251953125, -0.4911571741104126; +346.5783386230469, -0.4966855049133301; +346.6783142089844, -0.500895082950592; +346.7783203125, -0.5017593502998352; +346.8782958984375, -0.5006939172744751; +346.9783020019531, -0.5004703998565674; +347.07830810546875, -0.5026161670684814; +347.17828369140625, -0.5047321319580078; +347.2782897949219, -0.5063861608505249; +347.3782653808594, -0.5085691809654236; +347.478271484375, -0.5119964480400085; +347.5782775878906, -0.5150362849235535; +347.6782531738281, -0.5157515406608582; +347.77825927734375, -0.515669584274292; +347.87823486328125, -0.5157887935638428; +347.9782409667969, -0.5147978663444519; +348.0782470703125, -0.5117282271385193; +348.17822265625, -0.508531928062439; +348.2782287597656, -0.5068555474281311; +348.3782043457031, -0.5069449543952942; +348.47821044921875, -0.5073398351669312; +348.5782165527344, -0.5066618323326111; +348.6781921386719, -0.5047395825386047; +348.7781982421875, -0.5026906728744507; +348.878173828125, -0.501677393913269; +348.9781799316406, -0.5002021789550781; +349.0781555175781, -0.4984736442565918; +349.17816162109375, -0.49833208322525024; +349.2781677246094, -0.5015060305595398; +349.3781433105469, -0.5046576261520386; +349.4781494140625, -0.5049034953117371; +349.578125, -0.5039572715759277; +349.6781311035156, -0.504709780216217; +349.77813720703125, -0.5084127187728882; +349.87811279296875, -0.5128458142280579; +349.9781188964844, -0.5185976624488831; +350.0780944824219, -0.5256682634353638; +350.1781005859375, -0.532492995262146; +350.2781066894531, -0.5362555384635925; +350.3780822753906, -0.5373954772949219; +350.47808837890625, -0.5360543727874756; +350.57806396484375, -0.532984733581543; +350.6780700683594, -0.5289465188980103; +350.778076171875, -0.5237534642219543; +350.8780517578125, -0.5189254879951477; +350.9780578613281, -0.5124956369400024; +351.0780334472656, -0.5058571696281433; +351.17803955078125, -0.5006194114685059; +351.2780456542969, -0.4982277750968933; +351.3780212402344, -0.5004033446311951; +351.47802734375, -0.5047693848609924; +351.5780029296875, -0.5091726779937744; +351.6780090332031, -0.5134269595146179; +351.77801513671875, -0.5174800753593445; +351.87799072265625, -0.5216449499130249; +351.9779968261719, -0.5247741937637329; +352.0779724121094, -0.527992844581604; +352.177978515625, -0.5332678556442261; +352.2779846191406, -0.5384907126426697; +352.3779602050781, -0.5405694246292114; +352.47796630859375, -0.5386918783187866; +352.57794189453125, -0.5354955792427063; +352.6779479980469, -0.5333647131919861; +352.7779541015625, -0.5303546786308289; +352.8779296875, -0.5267485976219177; +352.9779357910156, -0.525742769241333; +353.0779113769531, -0.5282014608383179; +353.17791748046875, -0.5310028791427612; +353.27789306640625, -0.530436635017395; +353.3778991699219, -0.5298033356666565; +353.4779052734375, -0.531323254108429; +353.577880859375, -0.5332529544830322; +353.6778869628906, -0.5326792597770691; +353.7778625488281, -0.5310699343681335; +353.87786865234375, -0.5312114953994751; +353.9778747558594, -0.5337148904800415; +354.0778503417969, -0.536501407623291; +354.1778564453125, -0.5376487970352173; +354.27783203125, -0.5383118987083435; +354.3778381347656, -0.5398541688919067; +354.47784423828125, -0.5442649126052856; +354.57781982421875, -0.5489513278007507; +354.6778259277344, -0.5518496036529541; +354.7778015136719, -0.5535483360290527; +354.8778076171875, -0.5557462573051453; +354.9778137207031, -0.557631254196167; +355.0777893066406, -0.5557313561439514; +355.17779541015625, -0.5508586764335632; +355.27777099609375, -0.5477964878082275; +355.3777770996094, -0.5479156970977783; +355.477783203125, -0.5485415458679199; +355.5777587890625, -0.5484521389007568; +355.6777648925781, -0.5493462085723877; +355.7777404785156, -0.5519315600395203; +355.87774658203125, -0.552348792552948; +355.9777526855469, -0.5497932434082031; +356.0777282714844, -0.5481764674186707; +356.177734375, -0.5483031272888184; +356.2777099609375, -0.5483701825141907; +356.3777160644531, -0.5467832088470459; +356.47772216796875, -0.5462691187858582; +356.57769775390625, -0.5493983626365662; +356.6777038574219, -0.5524531006813049; +356.7776794433594, -0.553421676158905; +356.877685546875, -0.5526840686798096; +356.9776916503906, -0.5528926849365234; +357.0776672363281, -0.5546286702156067; +357.17767333984375, -0.5549639463424683; +357.27764892578125, -0.5545243620872498; +357.3776550292969, -0.555671751499176; +357.4776306152344, -0.5584880709648132; +357.57763671875, -0.5592629313468933; +357.6776428222656, -0.5562976002693176; +357.7776184082031, -0.5522817373275757; +357.87762451171875, -0.547751784324646; +357.97760009765625, -0.54197758436203; +358.0776062011719, -0.5362853407859802; +358.1776123046875, -0.5336925387382507; +358.277587890625, -0.5335062742233276; +358.3775939941406, -0.5331188440322876; +358.4775695800781, -0.53367018699646; +358.57757568359375, -0.536404550075531; +358.6775817871094, -0.5417540669441223; +358.7775573730469, -0.5480125546455383; +358.8775634765625, -0.5539730191230774; +358.9775390625, -0.5586296319961548; +359.0775451660156, -0.5614608526229858; +359.17755126953125, -0.5632266402244568; +359.27752685546875, -0.562623143196106; +359.3775329589844, -0.5594342947006226; +359.4775085449219, -0.5550757050514221; +359.5775146484375, -0.5516931414604187; +359.6775207519531, -0.5500242114067078; +359.7774963378906, -0.5487576127052307; +359.87750244140625, -0.5470439791679382; +359.97747802734375, -0.5443841218948364; +360.0774841308594, -0.5412846803665161; +360.177490234375, -0.5395933985710144; +360.2774658203125, -0.5392357707023621; +360.3774719238281, -0.5385503172874451; +360.4774475097656, -0.5381926894187927; +360.57745361328125, -0.5389004945755005; +360.6774597167969, -0.5407258868217468; +360.7774353027344, -0.5413591861724854; +360.87744140625, -0.5386769771575928; +360.9774169921875, -0.5315020680427551; +361.0774230957031, -0.5179792642593384; +361.1773986816406, -0.4993900656700134; +361.27740478515625, -0.47701597213745117; +361.3774108886719, -0.45068562030792236; +361.4773864746094, -0.41928887367248535; +361.577392578125, -0.38433074951171875; +361.6773681640625, -0.3485381603240967; +361.7773742675781, -0.31241774559020996; +361.87738037109375, -0.27683377265930176; +361.97735595703125, -0.24324655532836914; +362.0773620605469, -0.21602213382720947; +362.1773376464844, -0.19847601652145386; +362.27734375, -0.1902952790260315; +362.3773498535156, -0.1907646656036377; +362.4773254394531, -0.19678473472595215; +362.57733154296875, -0.20790845155715942; +362.67730712890625, -0.22270530462265015; +362.7773132324219, -0.23977458477020264; +362.8773193359375, -0.2591833472251892; +362.977294921875, -0.27848780155181885; +363.0773010253906, -0.29668956995010376; +363.1772766113281, -0.3126412630081177; +363.27728271484375, -0.327475368976593; +363.3772888183594, -0.33983588218688965; +363.4772644042969, -0.34943222999572754; +363.5772705078125, -0.35703182220458984; +363.67724609375, -0.3659278154373169; +363.7772521972656, -0.37688761949539185; +363.87725830078125, -0.38677453994750977; +363.97723388671875, -0.39493292570114136; +364.0772399902344, -0.40093064308166504; +364.1772155761719, -0.40647387504577637; +364.2772216796875, -0.4106685519218445; +364.3772277832031, -0.4130825400352478; +364.4772033691406, -0.41478127241134644; +364.57720947265625, -0.416293740272522; +364.67718505859375, -0.41878968477249146; +364.7771911621094, -0.42159855365753174; +364.877197265625, -0.42356550693511963; +364.9771728515625, -0.42528659105300903; +365.0771789550781, -0.429689884185791; +365.1771545410156, -0.43876469135284424; +365.27716064453125, -0.4487186670303345; +365.37713623046875, -0.4555061459541321; +365.4771423339844, -0.45821070671081543; +365.5771484375, -0.4588663578033447; +365.6771240234375, -0.45721232891082764; +365.7771301269531, -0.4522055387496948; +365.8771057128906, -0.44693052768707275; +365.97711181640625, -0.4444420337677002; +366.0771179199219, -0.4449710249900818; +366.1770935058594, -0.44523924589157104; +366.277099609375, -0.4436001181602478; +366.3770751953125, -0.44061988592147827; +366.4770812988281, -0.4371926188468933; +366.57708740234375, -0.43586641550064087; +366.67706298828125, -0.4385635256767273; +366.7770690917969, -0.44417381286621094; +366.8770446777344, -0.45018643140792847; +366.97705078125, -0.4553794860839844; +367.0770568847656, -0.4586726427078247; +367.1770324707031, -0.4593357443809509; +367.27703857421875, -0.45803189277648926; +367.37701416015625, -0.4592984914779663; +367.4770202636719, -0.464513897895813; +367.5770263671875, -0.4702955484390259; +367.677001953125, -0.4762783646583557; +367.7770080566406, -0.48109889030456543; +367.8769836425781, -0.4839077591896057; +367.97698974609375, -0.4826560616493225; +368.0769958496094, -0.47994405031204224; +368.1769714355469, -0.47998130321502686; +368.2769775390625, -0.47981739044189453; +368.376953125, -0.4785507917404175; +368.4769592285156, -0.4794374108314514; +368.57696533203125, -0.48472732305526733; +368.67694091796875, -0.49129873514175415; +368.7769470214844, -0.4956871271133423; +368.8769226074219, -0.5007758736610413; +368.9769287109375, -0.5088821053504944; +369.0769348144531, -0.5150288343429565; +369.1769104003906, -0.5159750580787659; +369.27691650390625, -0.5121752619743347; +369.37689208984375, -0.5064830183982849; +369.4768981933594, -0.49986690282821655; +369.5768737792969, -0.491507351398468; +369.6768798828125, -0.48483163118362427; +369.7768859863281, -0.48088282346725464; +369.8768615722656, -0.48070400953292847; +369.97686767578125, -0.4834085702896118; +370.07684326171875, -0.4866570234298706; +370.1768493652344, -0.48857927322387695; +370.27685546875, -0.4884451627731323; +370.3768310546875, -0.49020349979400635; +370.4768371582031, -0.49379467964172363; +370.5768127441406, -0.49652159214019775; +370.67681884765625, -0.49780309200286865; +370.7768249511719, -0.5010440945625305; +370.8768005371094, -0.5069896578788757; +370.976806640625, -0.5097761750221252; +371.0767822265625, -0.5078613758087158; +371.1767883300781, -0.5047321319580078; +371.27679443359375, -0.5044862627983093; +371.37677001953125, -0.5069822072982788; +371.4767761230469, -0.5098730325698853; +371.5767517089844, -0.5136281251907349; +371.6767578125, -0.5175694823265076; +371.7767639160156, -0.5214139819145203; +371.8767395019531, -0.5228593945503235; +371.97674560546875, -0.5208253860473633; +372.07672119140625, -0.5160719156265259; +372.1767272949219, -0.5108565092086792; +372.2767333984375, -0.5068853497505188; +372.376708984375, -0.5037412047386169; +372.4767150878906, -0.5012601613998413; +372.5766906738281, -0.49967318773269653; +372.67669677734375, -0.4995763301849365; +372.7767028808594, -0.5002543330192566; +372.8766784667969, -0.501677393913269; +372.9766845703125, -0.5031749606132507; +373.07666015625, -0.5061626434326172; +373.1766662597656, -0.5111023783683777; +373.27667236328125, -0.5177929997444153; +373.37664794921875, -0.5231127142906189; +373.4766540527344, -0.5257204174995422; +373.5766296386719, -0.5274638533592224; +373.6766357421875, -0.5278289318084717; +373.776611328125, -0.52613765001297; +373.8766174316406, -0.5220472812652588; +373.97662353515625, -0.5185380578041077; +374.07659912109375, -0.5172565579414368; +374.1766052246094, -0.517033040523529; +374.2765808105469, -0.5178079009056091; +374.3765869140625, -0.5172640085220337; +374.4765930175781, -0.5128756165504456; +374.5765686035156, -0.5056038498878479; +374.67657470703125, -0.49833953380584717; +374.77655029296875, -0.4918724298477173; +374.8765563964844, -0.4823654890060425; +374.9765625, -0.47075748443603516; +375.0765380859375, -0.46196579933166504; +375.1765441894531, -0.45690685510635376; +375.2765197753906, -0.45158714056015015; +375.37652587890625, -0.44502317905426025; +375.4765319824219, -0.44117867946624756; +375.5765075683594, -0.44149160385131836; +375.676513671875, -0.44451653957366943; +375.7764892578125, -0.44915080070495605; +375.8764953613281, -0.45514851808547974; +375.97650146484375, -0.46106427907943726; +376.07647705078125, -0.46606361865997314; +376.1764831542969, -0.47171860933303833; +376.2764587402344, -0.478208065032959; +376.37646484375, -0.4838183522224426; +376.4764709472656, -0.48929452896118164; +376.5764465332031, -0.49717724323272705; +376.67645263671875, -0.5086958408355713; +376.77642822265625, -0.5209669470787048; +376.8764343261719, -0.529944896697998; +376.9764404296875, -0.5337372422218323; +377.076416015625, -0.5337968468666077; +377.1764221191406, -0.5335062742233276; +377.2763977050781, -0.5332157015800476; +377.37640380859375, -0.5308240652084351; +377.47637939453125, -0.5261078476905823; +377.5763854980469, -0.5247890949249268; +377.6763916015625, -0.5299597978591919; +377.7763671875, -0.5381256341934204; +377.8763732910156, -0.5454272031784058; +377.9763488769531, -0.5526915192604065; +378.07635498046875, -0.5625709891319275; +378.1763610839844, -0.5730614066123962; +378.2763366699219, -0.5800500512123108; +378.3763427734375, -0.5838051438331604; +378.476318359375, -0.5857199430465698; +378.5763244628906, -0.5867257714271545; +378.67633056640625, -0.5866363644599915; +378.77630615234375, -0.584527850151062; +378.8763122558594, -0.5816817283630371; +378.9762878417969, -0.5785226821899414; +379.0762939453125, -0.576704740524292; +379.1763000488281, -0.5777999758720398; +379.2762756347656, -0.581592321395874; +379.37628173828125, -0.58756023645401; +379.47625732421875, -0.5946308374404907; +379.5762634277344, -0.6000921130180359; +379.67626953125, -0.6023943424224854; +379.7762451171875, -0.6012991070747375; +379.8762512207031, -0.5990117788314819; +379.9762268066406, -0.5978792905807495; +380.07623291015625, -0.596858561038971; +380.1762390136719, -0.5958005785942078; +380.2762145996094, -0.5954056978225708; +380.376220703125, -0.5960240960121155; +380.4761962890625, -0.5980432033538818; +380.5762023925781, -0.5994215607643127; +380.67620849609375, -0.5979835987091064; +380.77618408203125, -0.5939006805419922; +380.8761901855469, -0.5882903933525085; +380.9761657714844, -0.5832090973854065; +381.076171875, -0.5773082375526428; +381.1761779785156, -0.5696713924407959; +381.2761535644531, -0.5623698234558105; +381.37615966796875, -0.5559474229812622; +381.47613525390625, -0.5486607551574707; +381.5761413574219, -0.5391165614128113; +381.6761169433594, -0.5296990275382996; +381.776123046875, -0.5240738391876221; +381.8761291503906, -0.5222037434577942; +381.9761047363281, -0.5229637026786804; +382.07611083984375, -0.5263686180114746; +382.17608642578125, -0.5320683121681213; +382.2760925292969, -0.5389153957366943; +382.3760986328125, -0.5447044968605042; +382.47607421875, -0.54902583360672; +382.5760803222656, -0.551760196685791; +382.6760559082031, -0.5539432168006897; +382.77606201171875, -0.5578473210334778; +382.8760681152344, -0.5619078874588013; +382.9760437011719, -0.5636140704154968; +383.0760498046875, -0.5609616637229919; +383.176025390625, -0.5563050508499146; +383.2760314941406, -0.5537942051887512; +383.37603759765625, -0.5522742867469788; +383.47601318359375, -0.5521699786186218; +383.5760192871094, -0.5537644028663635; +383.6759948730469, -0.5597919225692749; +383.7760009765625, -0.5683675408363342; +383.8760070800781, -0.5727484822273254; +383.9759826660156, -0.5707591772079468; +384.07598876953125, -0.56418776512146; +384.17596435546875, -0.5574822425842285; +384.2759704589844, -0.5504712462425232; +384.3759765625, -0.5445703864097595; +384.4759521484375, -0.542670488357544; +384.5759582519531, -0.545799732208252; +384.6759338378906, -0.5517005920410156; +384.77593994140625, -0.5560144782066345; +384.8759460449219, -0.5590543150901794; +384.9759216308594, -0.5608052015304565; +385.075927734375, -0.5621761083602905; +385.1759033203125, -0.5628019571304321; +385.2759094238281, -0.5609467625617981; +385.37591552734375, -0.5572587251663208; +385.47589111328125, -0.5525127053260803; +385.5758972167969, -0.5486905574798584; +385.6758728027344, -0.5455911159515381; +385.77587890625, -0.5407929420471191; +385.8758544921875, -0.5328580737113953; +385.9758605957031, -0.5221068859100342; +386.07586669921875, -0.5115047097206116; +386.17584228515625, -0.501878559589386; +386.2758483886719, -0.4916563630104065; +386.3758239746094, -0.48094242811203003; +386.475830078125, -0.4724636673927307; +386.5758361816406, -0.46750158071517944; +386.6758117675781, -0.46280771493911743; +386.77581787109375, -0.45637786388397217; +386.87579345703125, -0.4483535885810852; +386.9757995605469, -0.44052302837371826; +387.0758056640625, -0.432625412940979; +387.17578125, -0.4264339804649353; +387.2757873535156, -0.42334944009780884; +387.3757629394531, -0.4221722483634949; +387.47576904296875, -0.4217997193336487; +387.5757751464844, -0.4232749342918396; +387.6757507324219, -0.430278480052948; +387.7757568359375, -0.4415586590766907; +387.875732421875, -0.4528462886810303; +387.9757385253906, -0.46368688344955444; +388.07574462890625, -0.4764050245285034; +388.17572021484375, -0.4906654357910156; +388.2757263183594, -0.5020797252655029; +388.3757019042969, -0.5082860589027405; +388.4757080078125, -0.5129128694534302; +388.5757141113281, -0.5185902118682861; +388.6756896972656, -0.5248039960861206; +388.77569580078125, -0.529460608959198; +388.87567138671875, -0.5314573645591736; +388.9756774902344, -0.5312934517860413; +389.07568359375, -0.529944896697998; +389.1756591796875, -0.5285143852233887; +389.2756652832031, -0.5267858505249023; +389.3756408691406, -0.5230680108070374; +389.47564697265625, -0.5195215344429016; +389.5756530761719, -0.5199313163757324; +389.6756286621094, -0.5239248275756836; +389.775634765625, -0.5265846848487854; +389.8756103515625, -0.5258470773696899; +389.9756164550781, -0.5264207720756531; +390.0755920410156, -0.5306750535964966; +390.17559814453125, -0.536113977432251; +390.2756042480469, -0.5393177270889282; +390.3755798339844, -0.5402043461799622; +390.4755859375, -0.5399137735366821; +390.5755615234375, -0.5393251776695251; +390.6755676269531, -0.5387216806411743; +390.77557373046875, -0.5363598465919495; +390.87554931640625, -0.5317330360412598; +390.9755554199219, -0.527799129486084; +391.0755310058594, -0.5269944667816162; +391.175537109375, -0.5278885364532471; +391.2755432128906, -0.5272477865219116; +391.3755187988281, -0.5253180861473083; +391.47552490234375, -0.5246922373771667; +391.57550048828125, -0.5245059728622437; +391.6755065917969, -0.5232319235801697; +391.7755126953125, -0.5195736885070801; +391.87548828125, -0.5149543285369873; +391.9754943847656, -0.5131512880325317; +392.0754699707031, -0.5144178867340088; +392.17547607421875, -0.5178600549697876; +392.2754821777344, -0.5220100283622742; +392.3754577636719, -0.5277246236801147; +392.4754638671875, -0.532202422618866; +392.575439453125, -0.5324557423591614; +392.6754455566406, -0.5293041467666626; +392.77545166015625, -0.52671879529953; +392.87542724609375, -0.5263537168502808; +392.9754333496094, -0.525258481502533; +393.0754089355469, -0.5250722169876099; +393.1754150390625, -0.5260929465293884; +393.2754211425781, -0.5266666412353516; +393.3753967285156, -0.5244165658950806; +393.47540283203125, -0.5194246768951416; +393.57537841796875, -0.5141422152519226; +393.6753845214844, -0.5082786083221436; +393.775390625, -0.5018860101699829; +393.8753662109375, -0.49693137407302856; +393.9753723144531, -0.492095947265625; +394.0753479003906, -0.48595666885375977; +394.17535400390625, -0.4788711667060852; +394.27532958984375, -0.47450512647628784; +394.3753356933594, -0.4718899726867676; +394.475341796875, -0.4663988947868347; +394.5753173828125, -0.4599243402481079; +394.6753234863281, -0.45669078826904297; +394.7752990722656, -0.4580393433570862; +394.87530517578125, -0.458255410194397; +394.9753112792969, -0.4574209451675415; +395.0752868652344, -0.4613250494003296; +395.17529296875, -0.47038495540618896; +395.2752685546875, -0.4808753728866577; +395.3752746582031, -0.48932433128356934; +395.47528076171875, -0.49673765897750854; +395.57525634765625, -0.5047991871833801; +395.6752624511719, -0.5123540759086609; +395.7752380371094, -0.5189031362533569; +395.875244140625, -0.5246177315711975; +395.9752502441406, -0.530146062374115; +396.0752258300781, -0.5364939570426941; +396.17523193359375, -0.5420967936515808; +396.27520751953125, -0.5457028746604919; +396.3752136230469, -0.5470141768455505; +396.4752197265625, -0.5481541156768799; +396.5751953125, -0.5499571561813354; +396.6752014160156, -0.5535408854484558; +396.7751770019531, -0.5591362714767456; +396.87518310546875, -0.5654692649841309; +396.9751892089844, -0.5710050463676453; +397.0751647949219, -0.574059784412384; +397.1751708984375, -0.5766004323959351; +397.275146484375, -0.5778893828392029; +397.3751525878906, -0.5773529410362244; +397.47515869140625, -0.575922429561615; +397.57513427734375, -0.5767792463302612; +397.6751403808594, -0.5817711353302002; +397.7751159667969, -0.5878731608390808; +397.8751220703125, -0.5935877561569214; +397.97509765625, -0.5984529852867126; +398.0751037597656, -0.6020069122314453; +398.17510986328125, -0.6034746766090393; +398.27508544921875, -0.6017610430717468; +398.3750915527344, -0.5984827876091003; +398.4750671386719, -0.5954205989837646; +398.5750732421875, -0.5946233868598938; +398.6750793457031, -0.596165657043457; +398.7750549316406, -0.5974918603897095; +398.87506103515625, -0.598028302192688; +398.97503662109375, -0.5979463458061218; +399.0750427246094, -0.5978047847747803; +399.175048828125, -0.596851110458374; +399.2750244140625, -0.596262514591217; +399.3750305175781, -0.597052276134491; +399.4750061035156, -0.5978494882583618; +399.57501220703125, -0.5978420376777649; +399.6750183105469, -0.5971267819404602; +399.7749938964844, -0.5966797471046448; +399.875, -0.5956441164016724; +399.9749755859375, -0.592842698097229; +400.0749816894531, -0.5912184715270996; +400.17498779296875, -0.5937442183494568; +400.27496337890625, -0.6000474095344543; +400.3749694824219, -0.6066039204597473; +400.4749450683594, -0.6102919578552246; +400.574951171875, -0.6137341260910034; +400.6749572753906, -0.6170943379402161; +400.7749328613281, -0.6188154220581055; +400.87493896484375, -0.6191059947013855; +400.97491455078125, -0.6193071603775024; +401.0749206542969, -0.6211549043655396; +401.1749267578125, -0.6221979856491089; +401.27490234375, -0.6217285990715027; +401.3749084472656, -0.6197765469551086; +401.4748840332031, -0.6161108613014221; +401.57489013671875, -0.6129592657089233; +401.6748962402344, -0.6128177046775818; +401.7748718261719, -0.6168857216835022; +401.8748779296875, -0.623360276222229; +401.974853515625, -0.6305351853370667; +402.0748596191406, -0.6371885538101196; +402.1748352050781, -0.64106285572052; +402.27484130859375, -0.6413459777832031; +402.3748474121094, -0.6391555070877075; +402.4748229980469, -0.6364881992340088; +402.5748291015625, -0.6342455744743347; +402.6748046875, -0.6332024931907654; +402.7748107910156, -0.6342530250549316; +402.87481689453125, -0.6367117166519165; +402.97479248046875, -0.6393566727638245; +403.0747985839844, -0.64057856798172; +403.1747741699219, -0.6395205855369568; +403.2747802734375, -0.6380975246429443; +403.3747863769531, -0.6382167339324951; +403.4747619628906, -0.639989972114563; +403.57476806640625, -0.6417036056518555; +403.67474365234375, -0.6417557597160339; +403.7747497558594, -0.6410032510757446; +403.874755859375, -0.6372183561325073; +403.9747314453125, -0.6306320428848267; +404.0747375488281, -0.6244853138923645; +404.1747131347656, -0.6218254566192627; +404.27471923828125, -0.6239190697669983; +404.3747253417969, -0.6275326013565063; +404.4747009277344, -0.631183385848999; +404.57470703125, -0.6335228681564331; +404.6746826171875, -0.6331130862236023; +404.7746887207031, -0.630207359790802; +404.87469482421875, -0.6257519125938416; +404.97467041015625, -0.622093677520752; +405.0746765136719, -0.6208643317222595; +405.1746520996094, -0.6212145090103149; +405.274658203125, -0.620722770690918; +405.3746643066406, -0.6179586052894592; +405.4746398925781, -0.6134212017059326; +405.57464599609375, -0.6075426936149597; +405.67462158203125, -0.6003081798553467; +405.7746276855469, -0.5928277969360352; +405.8746337890625, -0.5881115794181824; +405.974609375, -0.5845874547958374; +406.0746154785156, -0.5791112780570984; +406.1745910644531, -0.5734935402870178; +406.27459716796875, -0.5720332264900208; +406.37457275390625, -0.5754604935646057; +406.4745788574219, -0.5793347954750061; +406.5745849609375, -0.5822926759719849; +406.674560546875, -0.5859211087226868; +406.7745666503906, -0.5892813205718994; +406.8745422363281, -0.589415431022644; +406.97454833984375, -0.5848854780197144; +407.0745544433594, -0.5774050951004028; +407.1745300292969, -0.5699098110198975; +407.2745361328125, -0.5649253726005554; +407.37451171875, -0.5624741315841675; +407.4745178222656, -0.5613937973976135; +407.57452392578125, -0.5605369806289673; +407.67449951171875, -0.5602836608886719; +407.7745056152344, -0.5616918206214905; +407.8744812011719, -0.5626752972602844; +407.9744873046875, -0.5610883235931396; +408.0744934082031, -0.5562081933021545; +408.1744689941406, -0.5513131618499756; +408.27447509765625, -0.5479902029037476; +408.37445068359375, -0.5440115928649902; +408.4744567871094, -0.5382522940635681; +408.574462890625, -0.5329176783561707; +408.6744384765625, -0.5305558443069458; +408.7744445800781, -0.5304664373397827; +408.8744201660156, -0.5315020680427551; +408.97442626953125, -0.5331486463546753; +409.0744323730469, -0.535525381565094; +409.1744079589844, -0.5372613668441772; +409.2744140625, -0.5360767245292664; +409.3743896484375, -0.5310773849487305; +409.4743957519531, -0.5229711532592773; +409.57440185546875, -0.5141422152519226; +409.67437744140625, -0.5063191056251526; +409.7743835449219, -0.499628484249115; +409.8743591308594, -0.49521028995513916; +409.974365234375, -0.49235671758651733; +410.0743713378906, -0.4895329475402832; +410.1743469238281, -0.4872828722000122; +410.27435302734375, -0.48620253801345825; +410.37432861328125, -0.48550963401794434; +410.4743347167969, -0.483587384223938; +410.5743103027344, -0.48042088747024536; +410.67431640625, -0.4775524139404297; +410.7743225097656, -0.4727989435195923; +410.8742980957031, -0.4663541913032532; +410.97430419921875, -0.46303868293762207; +411.07427978515625, -0.463828444480896; +411.1742858886719, -0.4654005169868469; +411.2742919921875, -0.4645884037017822; +411.374267578125, -0.46327710151672363; +411.4742736816406, -0.462554395198822; +411.5742492675781, -0.45859068632125854; +411.67425537109375, -0.45117735862731934; +411.7742614746094, -0.44371187686920166; +411.8742370605469, -0.4377439618110657; +411.9742431640625, -0.43273717164993286; +412.07421875, -0.4282146692276001; +412.1742248535156, -0.42729079723358154; +412.27423095703125, -0.430569052696228; +412.37420654296875, -0.43480098247528076; +412.4742126464844, -0.4382207989692688; +412.5741882324219, -0.4394054412841797; +412.6741943359375, -0.4387497901916504; +412.7742004394531, -0.4347190260887146; +412.8741760253906, -0.4272386431694031; +412.97418212890625, -0.41901320219039917; +413.07415771484375, -0.413261353969574; +413.1741638183594, -0.41222572326660156; +413.274169921875, -0.41334331035614014; +413.3741455078125, -0.4138275980949402; +413.4741516113281, -0.41224807500839233; +413.5741271972656, -0.40850043296813965; +413.67413330078125, -0.40145963430404663; +413.7741394042969, -0.3916695713996887; +413.8741149902344, -0.3829747438430786; +413.97412109375, -0.37825852632522583; +414.0740966796875, -0.3771930932998657; +414.1741027832031, -0.3786236047744751; +414.2740783691406, -0.3829970955848694; +414.37408447265625, -0.38868188858032227; +414.4740905761719, -0.39299577474594116; +414.5740661621094, -0.39346516132354736; +414.674072265625, -0.39199739694595337; +414.7740478515625, -0.39096176624298096; +414.8740539550781, -0.3919452428817749; +414.97406005859375, -0.394672155380249; +415.07403564453125, -0.3968924283981323; +415.1740417480469, -0.39880722761154175; +415.2740173339844, -0.40018558502197266; +415.3740234375, -0.4011616110801697; +415.4740295410156, -0.39940327405929565; +415.5740051269531, -0.394672155380249; +415.67401123046875, -0.39048492908477783; +415.77398681640625, -0.39186328649520874; +415.8739929199219, -0.39974600076675415; +415.9739990234375, -0.410422682762146; +416.073974609375, -0.42109936475753784; +416.1739807128906, -0.43147802352905273; +416.2739562988281, -0.441916286945343; +416.37396240234375, -0.4492923617362976; +416.4739685058594, -0.4527047276496887; +416.5739440917969, -0.45427680015563965; +416.6739501953125, -0.45686960220336914; +416.77392578125, -0.460699200630188; +416.8739318847656, -0.46369433403015137; +416.97393798828125, -0.4654601216316223; +417.07391357421875, -0.46528875827789307; +417.1739196777344, -0.46372413635253906; +417.2738952636719, -0.46087801456451416; +417.3739013671875, -0.4571452736854553; +417.4739074707031, -0.451795756816864; +417.5738830566406, -0.44476985931396484; +417.67388916015625, -0.43720752000808716; +417.77386474609375, -0.4289373755455017; +417.8738708496094, -0.4208311438560486; +417.973876953125, -0.41425228118896484; +418.0738525390625, -0.41194260120391846; +418.1738586425781, -0.412866473197937; +418.2738342285156, -0.41653215885162354; +418.37384033203125, -0.42466074228286743; +418.47381591796875, -0.43607503175735474; +418.5738220214844, -0.4458427429199219; +418.673828125, -0.45073777437210083; +418.7738037109375, -0.4541054368019104; +418.8738098144531, -0.45762211084365845; +418.9737854003906, -0.4593655467033386; +419.07379150390625, -0.4583820700645447; +419.1737976074219, -0.4583299160003662; +419.2737731933594, -0.46084821224212646; +419.373779296875, -0.4631355404853821; +419.4737548828125, -0.4637613892555237; +419.5737609863281, -0.4621073603630066; +419.67376708984375, -0.4598274827003479; +419.77374267578125, -0.4580765962600708; +419.8737487792969, -0.4579871892929077; +419.9737243652344, -0.4587098956108093; +420.07373046875, -0.4569515585899353; +420.1737365722656, -0.45280158519744873; +420.2737121582031, -0.44824182987213135; +420.37371826171875, -0.44451653957366943; +420.47369384765625, -0.44018030166625977; +420.5736999511719, -0.43570250272750854; +420.6737060546875, -0.43451786041259766; +420.773681640625, -0.4364773631095886; +420.8736877441406, -0.4384070634841919; +420.9736633300781, -0.43714791536331177; +421.07366943359375, -0.4356652498245239; +421.1736755371094, -0.43458491563796997; +421.2736511230469, -0.43157488107681274; +421.3736572265625, -0.4277750849723816; +421.4736328125, -0.4262104630470276; +421.5736389160156, -0.4280507564544678; +421.67364501953125, -0.42670220136642456; +421.77362060546875, -0.42154639959335327; +421.8736267089844, -0.4162788391113281; +421.9736022949219, -0.41381269693374634; +422.0736083984375, -0.41274726390838623; +422.1736145019531, -0.41138380765914917; +422.2735900878906, -0.41193515062332153; +422.37359619140625, -0.4146769642829895; +422.47357177734375, -0.4172176122665405; +422.5735778808594, -0.4156157374382019; +422.6735534667969, -0.4085525870323181; +422.7735595703125, -0.3997385501861572; +422.8735656738281, -0.3936365246772766; +422.9735412597656, -0.3918856382369995; +423.07354736328125, -0.39336085319519043; +423.17352294921875, -0.3954768180847168; +423.2735290527344, -0.3973767161369324; +423.37353515625, -0.3984719514846802; +423.4735107421875, -0.39923936128616333; +423.5735168457031, -0.39880722761154175; +423.6734924316406, -0.3972873091697693; +423.77349853515625, -0.39900094270706177; +423.8735046386719, -0.4069134593009949; +423.9734802246094, -0.41860342025756836; +424.073486328125, -0.42807310819625854; +424.1734619140625, -0.43348968029022217; +424.2734680175781, -0.43683499097824097; +424.37347412109375, -0.4387274384498596; +424.47344970703125, -0.44004619121551514; +424.5734558105469, -0.4418864846229553; +424.6734313964844, -0.4452243447303772; +424.7734375, -0.4496276378631592; +424.8734436035156, -0.45321136713027954; +424.9734191894531, -0.453457236289978; +425.07342529296875, -0.45011937618255615; +425.17340087890625, -0.44436007738113403; +425.2734069824219, -0.43863803148269653; +425.3734130859375, -0.4314109683036804; +425.473388671875, -0.42235851287841797; +425.5733947753906, -0.4146844148635864; +425.6733703613281, -0.40825456380844116; +425.77337646484375, -0.3994479775428772; +425.8733825683594, -0.38311630487442017; +425.9733581542969, -0.361710786819458; +426.0733642578125, -0.33890455961227417; +426.17333984375, -0.3155916929244995; +426.2733459472656, -0.2915039658546448; +426.37335205078125, -0.26960670948028564; +426.47332763671875, -0.25487691164016724; +426.5733337402344, -0.24747103452682495; +426.6733093261719, -0.246390700340271; +426.7733154296875, -0.25022029876708984; +426.873291015625, -0.2583339810371399; +426.9732971191406, -0.2694278955459595; +427.07330322265625, -0.2819821238517761; +427.17327880859375, -0.29984116554260254; +427.2732849121094, -0.3233402967453003; +427.3732604980469, -0.35100430250167847; +427.4732666015625, -0.3798678517341614; +427.5732727050781, -0.40759146213531494; +427.6732482910156, -0.4341527819633484; +427.77325439453125, -0.45511871576309204; +427.87322998046875, -0.469014048576355; +427.9732360839844, -0.47607719898223877; +428.0732421875, -0.4790946841239929; +428.1732177734375, -0.4810318350791931; +428.2732238769531, -0.48200786113739014; +428.3731994628906, -0.4822090268135071; +428.47320556640625, -0.48357248306274414; +428.5732116699219, -0.48860907554626465; +428.6731872558594, -0.4983246326446533; +428.773193359375, -0.5093663930892944; +428.8731689453125, -0.5179941654205322; +428.9731750488281, -0.5251020193099976; +429.07318115234375, -0.5307868123054504; +429.17315673828125, -0.5342662334442139; +429.2731628417969, -0.5341395735740662; +429.3731384277344, -0.5328208208084106; +429.47314453125, -0.5326122045516968; +429.5731506347656, -0.5318745970726013; +429.6731262207031, -0.5299970507621765; +429.77313232421875, -0.527501106262207; +429.87310791015625, -0.5226805806159973; +429.9731140136719, -0.5134642124176025; +430.0731201171875, -0.5016699433326721; +430.173095703125, -0.49061328172683716; +430.2731018066406, -0.47881901264190674; +430.3730773925781, -0.4627406597137451; +430.47308349609375, -0.4440993070602417; +430.57305908203125, -0.4276484251022339; +430.6730651855469, -0.4158616065979004; +430.7730712890625, -0.4073977470397949; +430.873046875, -0.4014149308204651; +430.9730529785156, -0.3977641463279724; +431.0730285644531, -0.3964826464653015; +431.17303466796875, -0.39749592542648315; +431.2730407714844, -0.39824843406677246; +431.3730163574219, -0.39830803871154785; +431.4730224609375, -0.3985390067100525; +431.572998046875, -0.4017949104309082; +431.6730041503906, -0.4084780812263489; +431.77301025390625, -0.415898859500885; +431.87298583984375, -0.4235580563545227; +431.9729919433594, -0.43163448572158813; +432.0729675292969, -0.4418417811393738; +432.1729736328125, -0.45333802700042725; +432.2729797363281, -0.4626661539077759; +432.3729553222656, -0.468328595161438; +432.47296142578125, -0.47185271978378296; +432.57293701171875, -0.47623366117477417; +432.6729431152344, -0.48029422760009766; +432.77294921875, -0.4821792244911194; +432.8729248046875, -0.4845038056373596; +432.9729309082031, -0.4896968603134155; +433.0729064941406, -0.4962831735610962; +433.17291259765625, -0.5000606179237366; +433.2729187011719, -0.5011633038520813; +433.3728942871094, -0.501193106174469; +433.472900390625, -0.499725341796875; +433.5728759765625, -0.49573183059692383; +433.6728820800781, -0.49023330211639404; +433.77288818359375, -0.48695504665374756; +433.87286376953125, -0.4860982298851013; +433.9728698730469, -0.48585981130599976; +434.0728454589844, -0.4863068461418152; +434.1728515625, -0.48813968896865845; +434.2728576660156, -0.4906803369522095; +434.3728332519531, -0.4905015230178833; +434.47283935546875, -0.4875585436820984; +434.57281494140625, -0.48545747995376587; +434.6728210449219, -0.48576295375823975; +434.7727966308594, -0.4886835813522339; +434.872802734375, -0.49277395009994507; +434.9728088378906, -0.49780309200286865; +435.0727844238281, -0.5025863647460938; +435.17279052734375, -0.5052685737609863; +435.27276611328125, -0.5048587918281555; +435.3727722167969, -0.500507652759552; +435.4727783203125, -0.4936829209327698; +435.57275390625, -0.48639625310897827; +435.6727600097656, -0.4810616374015808; +435.7727355957031, -0.47966837882995605; +435.87274169921875, -0.4836767911911011; +435.9727478027344, -0.49091875553131104; +436.0727233886719, -0.4993155598640442; +436.1727294921875, -0.505983829498291; +436.272705078125, -0.5089938640594482; +436.3727111816406, -0.5053207278251648; +436.47271728515625, -0.49468129873275757; +436.57269287109375, -0.48013776540756226; +436.6726989746094, -0.4608258605003357; +436.7726745605469, -0.4348680377006531; +436.8726806640625, -0.39986521005630493; +436.9726867675781, -0.3556087613105774; +437.0726623535156, -0.2964809536933899; +437.17266845703125, -0.2174973487854004; +437.27264404296875, -0.11795014142990112; +437.3726501464844, 0.004887580871582031; +437.47265625, 0.15705078840255737; +437.5726318359375, 0.3454536199569702; +437.6726379394531, 0.569663941860199; +437.7726135253906, 0.8269324898719788; +437.87261962890625, 1.115649938583374; +437.9726257324219, 1.42828369140625; +438.0726013183594, 1.7515718936920166; +438.172607421875, 2.0685791969299316; +438.2725830078125, 2.363391160964966; +438.3725891113281, 2.6223957538604736; +438.47259521484375, 2.8318910598754883; +438.57257080078125, 2.980984687805176; +438.6725769042969, 3.0627622604370117; +438.7725524902344, 3.074519395828247; +438.87255859375, 3.019191265106201; +438.9725341796875, 2.9028878211975098; +439.0725402832031, 2.7358531951904297; +439.17254638671875, 2.5299861431121826; +439.27252197265625, 2.2970290184020996; +439.3725280761719, 2.0496175289154053; +439.4725036621094, 1.79933762550354; +439.572509765625, 1.5552566051483154; +439.6725158691406, 1.3251080513000488; +439.7724914550781, 1.1142120361328125; +439.87249755859375, 0.9251385927200317; +439.97247314453125, 0.7574334740638733; +440.0724792480469, 0.6119385361671448; +440.1724853515625, 0.4895254969596863; +440.2724609375, 0.3834962844848633; +440.3724670410156, 0.2867504954338074; +440.4724426269531, 0.1984238624572754; +440.57244873046875, 0.12209266424179077; +440.6724548339844, 0.05790591239929199; +440.7724304199219, 0.002987682819366455; +440.8724365234375, -0.043369829654693604; +440.972412109375, -0.08109211921691895; +441.0724182128906, -0.1115947961807251; +441.17242431640625, -0.13621896505355835; +441.27239990234375, -0.1576840877532959; +441.3724060058594, -0.1781061291694641; +441.4723815917969, -0.1974254846572876; +441.5723876953125, -0.212840735912323; +441.6723937988281, -0.22415071725845337; +441.7723693847656, -0.2330690622329712; +441.87237548828125, -0.24136900901794434; +441.97235107421875, -0.25004148483276367; +442.0723571777344, -0.25863200426101685; +442.17236328125, -0.26717036962509155; +442.2723388671875, -0.27498602867126465; +442.3723449707031, -0.28430670499801636; +442.4723205566406, -0.29556453227996826; +442.57232666015625, -0.3067702054977417; +442.6723327636719, -0.31707435846328735; +442.7723083496094, -0.32735615968704224; +442.872314453125, -0.33914297819137573; +442.9722900390625, -0.3502070903778076; +443.0722961425781, -0.3586411476135254; +443.1722717285156, -0.3652796149253845; +443.27227783203125, -0.37117302417755127; +443.3722839355469, -0.3751888871192932; +443.4722595214844, -0.3760308027267456; +443.572265625, -0.37603825330734253; +443.6722412109375, -0.3780052065849304; +443.7722473144531, -0.3826916217803955; +443.87225341796875, -0.388219952583313; +443.97222900390625, -0.39445608854293823; +444.0722351074219, -0.40046125650405884; +444.1722106933594, -0.40427595376968384; +444.272216796875, -0.4055723547935486; +444.3722229003906, -0.4035830497741699; +444.4721984863281, -0.3986358642578125; +444.57220458984375, -0.391639769077301; +444.67218017578125, -0.3856644034385681; +444.7721862792969, -0.3832802176475525; +444.8721923828125, -0.3827288746833801; +444.97216796875, -0.3834441304206848; +445.0721740722656, -0.3858804702758789; +445.1721496582031, -0.39036571979522705; +445.27215576171875, -0.39584189653396606; +445.3721618652344, -0.4005134105682373; +445.4721374511719, -0.4047378897666931; +445.5721435546875, -0.40861964225769043; +445.672119140625, -0.4127994179725647; +445.7721252441406, -0.4181116819381714; +445.87213134765625, -0.42350590229034424; +445.97210693359375, -0.4282519221305847; +446.0721130371094, -0.4306510090827942; +446.1720886230469, -0.43223053216934204; +446.2720947265625, -0.43451786041259766; +446.3721008300781, -0.4375353455543518; +446.4720764160156, -0.440157949924469; +446.57208251953125, -0.4402920603752136; +446.67205810546875, -0.43913722038269043; +446.7720642089844, -0.4372596740722656; +446.8720397949219, -0.4339739680290222; +446.9720458984375, -0.4274994134902954; +447.0720520019531, -0.420890748500824; +447.1720275878906, -0.41840970516204834; +447.27203369140625, -0.42063742876052856; +447.37200927734375, -0.4240646958351135; +447.4720153808594, -0.4264563322067261; +447.572021484375, -0.428617000579834; +447.6719970703125, -0.4295334219932556; +447.7720031738281, -0.429302453994751; +447.8719787597656, -0.42939186096191406; +447.97198486328125, -0.43151527643203735; +448.0719909667969, -0.4342123866081238; +448.1719665527344, -0.4370063543319702; +448.27197265625, -0.44205784797668457; +448.3719482421875, -0.44890493154525757; +448.4719543457031, -0.4556924104690552; +448.57196044921875, -0.460699200630188; +448.67193603515625, -0.4668682813644409; +448.7719421386719, -0.4753991961479187; +448.8719177246094, -0.4832223057746887; +448.971923828125, -0.4890859127044678; +449.0719299316406, -0.4924684762954712; +449.1719055175781, -0.4958435893058777; +449.27191162109375, -0.49912184476852417; +449.37188720703125, -0.5020499229431152; +449.4718933105469, -0.5051344633102417; +449.5718994140625, -0.5084574222564697; +449.671875, -0.512436032295227; +449.7718811035156, -0.5162209272384644; +449.8718566894531, -0.5190446972846985; +449.97186279296875, -0.519484281539917; +450.0718688964844, -0.5186721682548523; +450.1718444824219, -0.518307089805603; +450.2718505859375, -0.5198344588279724; +450.371826171875, -0.5225762724876404; +450.4718322753906, -0.5256012082099915; +450.57183837890625, -0.5289018154144287; +450.67181396484375, -0.5301386117935181; +450.7718200683594, -0.5281642079353333; +450.8717956542969, -0.5249455571174622; +450.9718017578125, -0.5231797695159912; +451.07177734375, -0.5234628915786743; +451.1717834472656, -0.5243271589279175; +451.27178955078125, -0.5264505743980408; +451.37176513671875, -0.5315616726875305; +451.4717712402344, -0.5374327301979065; +451.5717468261719, -0.5418211221694946; +451.6717529296875, -0.5446970462799072; +451.7717590332031, -0.5486905574798584; +451.8717346191406, -0.5550235509872437; +451.97174072265625, -0.5602985620498657; +452.07171630859375, -0.562518835067749; +452.1717224121094, -0.5615353584289551; +452.271728515625, -0.5586221814155579; +452.3717041015625, -0.5546733736991882; +452.4717102050781, -0.5503445863723755; +452.5716857910156, -0.5480572581291199; +452.67169189453125, -0.5494430661201477; +452.7716979980469, -0.5544424057006836; +452.8716735839844, -0.5599334836006165; +452.9716796875, -0.5633905529975891; +453.0716552734375, -0.5636364221572876; +453.1716613769531, -0.5630627274513245; +453.27166748046875, -0.5615055561065674; +453.37164306640625, -0.5584731698036194; +453.4716491699219, -0.5562230944633484; +453.5716247558594, -0.5564764142036438; +453.671630859375, -0.5600005388259888; +453.7716369628906, -0.5618110299110413; +453.8716125488281, -0.5616173148155212; +453.97161865234375, -0.5608052015304565; +454.07159423828125, -0.5604550242424011; +454.1716003417969, -0.5605593323707581; +454.2716064453125, -0.559777021408081; +454.37158203125, -0.5586594343185425; +454.4715881347656, -0.5563050508499146; +454.5715637207031, -0.5516782402992249; +454.67156982421875, -0.5451738834381104; +454.7715759277344, -0.5381777882575989; +454.8715515136719, -0.532396137714386; +454.9715576171875, -0.5279332399368286; +455.071533203125, -0.5252435803413391; +455.1715393066406, -0.5253404378890991; +455.2715148925781, -0.528283417224884; +455.37152099609375, -0.533662736415863; +455.4715270996094, -0.5397722125053406; +455.5715026855469, -0.5460605025291443; +455.6715087890625, -0.5517750978469849; +455.771484375, -0.5573555827140808; +455.8714904785156, -0.563204288482666; +455.97149658203125, -0.5669817328453064; +456.07147216796875, -0.5677267909049988; +456.1714782714844, -0.5658864974975586; +456.2714538574219, -0.563696026802063; +456.3714599609375, -0.5599707365036011; +456.4714660644531, -0.5521327257156372; +456.5714416503906, -0.5422458052635193; +456.67144775390625, -0.5332157015800476; +456.77142333984375, -0.526726245880127; +456.8714294433594, -0.5205124616622925; +456.971435546875, -0.514000654220581; +457.0714111328125, -0.5087479948997498; +457.1714172363281, -0.5050376057624817; +457.2713928222656, -0.5029961466789246; +457.37139892578125, -0.5023181438446045; +457.4714050292969, -0.5034357309341431; +457.5713806152344, -0.5067884922027588; +457.67138671875, -0.512637197971344; +457.7713623046875, -0.5198046565055847; +457.8713684082031, -0.5263090133666992; +457.97137451171875, -0.5317181348800659; +458.07135009765625, -0.5366876721382141; +458.1713562011719, -0.5423352122306824; +458.2713317871094, -0.5483478307723999; +458.371337890625, -0.5557835102081299; +458.4713439941406, -0.5649328231811523; +458.5713195800781, -0.5727857351303101; +458.67132568359375, -0.5786120891571045; +458.77130126953125, -0.5830228328704834; +458.8713073730469, -0.5870163440704346; +458.9713134765625, -0.5889758467674255; +459.0712890625, -0.587858259677887; +459.1712951660156, -0.5860552191734314; +459.2712707519531, -0.5842149257659912; +459.37127685546875, -0.5820170044898987; +459.47125244140625, -0.578172504901886; +459.5712585449219, -0.5739331245422363; +459.6712646484375, -0.5714893341064453; +459.771240234375, -0.5721673369407654; +459.8712463378906, -0.5757883191108704; +459.9712219238281, -0.5810409784317017; +460.07122802734375, -0.5877092480659485; +460.1712341308594, -0.594109296798706; +460.2712097167969, -0.597149133682251; +460.3712158203125, -0.5958527326583862; +460.47119140625, -0.592350959777832; +460.5711975097656, -0.5888193845748901; +460.67120361328125, -0.5845874547958374; +460.77117919921875, -0.5805343389511108; +460.8711853027344, -0.5802810192108154; +460.9711608886719, -0.5845576524734497; +461.0711669921875, -0.5893558263778687; +461.1711730957031, -0.5909204483032227; +461.2711486816406, -0.5900934338569641; +461.37115478515625, -0.5882829427719116; +461.47113037109375, -0.5858540534973145; +461.5711364746094, -0.582478940486908; +461.671142578125, -0.580132007598877; +461.7711181640625, -0.5794242024421692; +461.8711242675781, -0.5802586674690247; +461.9710998535156, -0.5812942981719971; +462.07110595703125, -0.5817040801048279; +462.1711120605469, -0.5817711353302002; +462.2710876464844, -0.5824193358421326; +462.37109375, -0.5830675363540649; +462.4710693359375, -0.5820915102958679; +462.5710754394531, -0.5805417895317078; +462.67108154296875, -0.5796775221824646; +462.77105712890625, -0.5794316530227661; +462.8710632324219, -0.5771666765213013; +462.9710388183594, -0.5737170577049255; +463.071044921875, -0.5723312497138977; +463.1710205078125, -0.5743503570556641; +463.2710266113281, -0.5770400166511536; +463.37103271484375, -0.5774572491645813; +463.47100830078125, -0.5761012434959412; +463.5710144042969, -0.5743652582168579; +463.6709899902344, -0.5730167031288147; +463.77099609375, -0.5698800086975098; +463.8710021972656, -0.566042959690094; +463.9709777832031, -0.5632415413856506; +464.07098388671875, -0.5621016025543213; +464.17095947265625, -0.5625039339065552; +464.2709655761719, -0.5639120936393738; +464.3709716796875, -0.5675926804542542; +464.470947265625, -0.5720034241676331; +464.5709533691406, -0.5765929818153381; +464.6709289550781, -0.5807802081108093; +464.77093505859375, -0.5833357572555542; +464.8709411621094, -0.5825385451316833; +464.9709167480469, -0.5786046385765076; +465.0709228515625, -0.573672354221344; +465.1708984375, -0.5704835057258606; +465.2709045410156, -0.5705952644348145; +465.37091064453125, -0.5745291709899902; +465.47088623046875, -0.5808994174003601; +465.5708923339844, -0.5876421928405762; +465.6708679199219, -0.5953758955001831; +465.7708740234375, -0.6024986505508423; +465.8708801269531, -0.6076321005821228; +465.9708557128906, -0.6093904376029968; +466.07086181640625, -0.6097182631492615; +466.17083740234375, -0.6102249026298523; +466.2708435058594, -0.6098300218582153; +466.370849609375, -0.6085336208343506; +466.4708251953125, -0.6077587604522705; +466.5708312988281, -0.6086677312850952; +466.6708068847656, -0.6095394492149353; +466.77081298828125, -0.6091594696044922; +466.8708190917969, -0.6082653999328613; +466.9707946777344, -0.6066262722015381; +467.07080078125, -0.6020963191986084; +467.1707763671875, -0.5956962704658508; +467.2707824707031, -0.590398907661438; +467.3707580566406, -0.5882009863853455; +467.47076416015625, -0.5880892276763916; +467.5707702636719, -0.5888566374778748; +467.6707458496094, -0.5906000733375549; +467.770751953125, -0.5927383899688721; +467.8707275390625, -0.5954504013061523; +467.9707336425781, -0.5989372730255127; +468.07073974609375, -0.6028413772583008; +468.17071533203125, -0.6066933274269104; +468.2707214355469, -0.6102398037910461; +468.3706970214844, -0.6121322512626648; +468.470703125, -0.6114169955253601; +468.5707092285156, -0.6073266267776489; +468.6706848144531, -0.6016939878463745; +468.77069091796875, -0.597052276134491; +468.87066650390625, -0.5951598286628723; +468.9706726074219, -0.5969181656837463; +469.0706787109375, -0.6009116768836975; +469.170654296875, -0.6054714322090149; +469.2706604003906, -0.6081461906433105; +469.3706359863281, -0.6092116236686707; +469.47064208984375, -0.6097778677940369; +469.5706481933594, -0.6108880043029785; +469.6706237792969, -0.6120055913925171; +469.7706298828125, -0.6131529808044434; +469.87060546875, -0.6157085299491882; +469.9706115722656, -0.6186962127685547; +470.07061767578125, -0.6206482648849487; +470.17059326171875, -0.6217882037162781; +470.2705993652344, -0.6234943866729736; +470.3705749511719, -0.6260350346565247; +470.4705810546875, -0.6280243396759033; +470.5705871582031, -0.6301701068878174; +470.6705627441406, -0.6340816617012024; +470.77056884765625, -0.6374344229698181; +470.87054443359375, -0.6390884518623352; +470.9705505371094, -0.6388798356056213; +471.070556640625, -0.6388947367668152; +471.1705322265625, -0.6384998559951782; +471.2705383300781, -0.6360262632369995; +471.3705139160156, -0.6326064467430115; +471.47052001953125, -0.6285682320594788; +471.57049560546875, -0.6259232759475708; +471.6705017089844, -0.6257742643356323; +471.7705078125, -0.6272122263908386; +471.8704833984375, -0.6282776594161987; +471.9704895019531, -0.6277486681938171; +472.0704650878906, -0.6269738078117371; +472.17047119140625, -0.6263479590415955; +472.2704772949219, -0.6247833371162415; +472.3704528808594, -0.6251707673072815; +472.470458984375, -0.6285086274147034; +472.5704345703125, -0.6346553564071655; +472.6704406738281, -0.6411373615264893; +472.77044677734375, -0.6463602185249329; +472.87042236328125, -0.6498992443084717; +472.9704284667969, -0.6492510437965393; +473.0704040527344, -0.6451159715652466; +473.17041015625, -0.6403699517250061; +473.2704162597656, -0.6379261612892151; +473.3703918457031, -0.638820230960846; +473.47039794921875, -0.6407648324966431; +473.57037353515625, -0.642240047454834; +473.6703796386719, -0.6432607769966125; +473.7703857421875, -0.6433650851249695; +473.870361328125, -0.6424635648727417; +473.9703674316406, -0.6402134895324707; +474.0703430175781, -0.6379783153533936; +474.17034912109375, -0.6375685334205627; +474.2703552246094, -0.6392598152160645; +474.3703308105469, -0.6436184048652649; +474.4703369140625, -0.6498172879219055; +474.5703125, -0.6542280316352844; +474.6703186035156, -0.6547495722770691; +474.77032470703125, -0.6509050726890564; +474.87030029296875, -0.6451606750488281; +474.9703063964844, -0.6379857659339905; +475.0702819824219, -0.6296634674072266; +475.1702880859375, -0.6243214011192322; +475.2702941894531, -0.623561441898346; +475.3702697753906, -0.6287544965744019; +475.47027587890625, -0.6371960043907166; +475.57025146484375, -0.6469115614891052; +475.6702575683594, -0.6550773978233337; +475.7702331542969, -0.6583333015441895; +475.8702392578125, -0.659257173538208; +475.9702453613281, -0.6592348217964172; +476.0702209472656, -0.658184289932251; +476.17022705078125, -0.6548464298248291; +476.27020263671875, -0.6506219506263733; +476.3702087402344, -0.6494075059890747; +476.47021484375, -0.6503760814666748; +476.5701904296875, -0.6517395377159119; +476.6701965332031, -0.653579831123352; +476.7701721191406, -0.6558001041412354; +476.87017822265625, -0.6593987345695496; +476.9701843261719, -0.6628856062889099; +477.0701599121094, -0.6657913327217102; +477.170166015625, -0.6671994924545288; +477.2701416015625, -0.667080283164978; +477.3701477050781, -0.6673932075500488; +477.47015380859375, -0.6682872772216797; +477.57012939453125, -0.6685033440589905; +477.6701354980469, -0.666305422782898; +477.7701110839844, -0.6632134318351746; +477.8701171875, -0.660426914691925; +477.9701232910156, -0.6577819585800171; +478.0700988769531, -0.6547421216964722; +478.17010498046875, -0.6524473428726196; +478.27008056640625, -0.6518587470054626; +478.3700866699219, -0.6506815552711487; +478.4700927734375, -0.6485730409622192; +478.570068359375, -0.6473734974861145; +478.6700744628906, -0.6481185555458069; +478.7700500488281, -0.6493180990219116; +478.87005615234375, -0.6505995988845825; +478.9700622558594, -0.6528869271278381; +479.0700378417969, -0.6558746099472046; +479.1700439453125, -0.6575584411621094; +479.27001953125, -0.6560906767845154; +479.3700256347656, -0.6525591015815735; +479.47003173828125, -0.648200511932373; +479.57000732421875, -0.646345317363739; +479.6700134277344, -0.6475672125816345; +479.7699890136719, -0.6492659449577332; +479.8699951171875, -0.6493404507637024; +479.969970703125, -0.6476864218711853; +480.0699768066406, -0.6466209888458252; +480.16998291015625, -0.6456226110458374; +480.26995849609375, -0.6435737013816833; +480.3699645996094, -0.6420314311981201; +480.4699401855469, -0.6438717246055603; +480.5699462890625, -0.6486475467681885; +480.6699523925781, -0.6531402468681335; +480.7699279785156, -0.6545260548591614; +480.86993408203125, -0.6539076566696167; +480.96990966796875, -0.6545260548591614; +481.0699157714844, -0.6569474935531616; +481.169921875, -0.6612986326217651; +481.2698974609375, -0.6644576787948608; +481.3699035644531, -0.6665065884590149; +481.4698791503906, -0.6676912307739258; +481.56988525390625, -0.665910542011261; +481.6698913574219, -0.6596148014068604; +481.7698669433594, -0.6478726863861084; +481.869873046875, -0.6351619958877563; +481.9698486328125, -0.6247758865356445; +482.0698547363281, -0.6194934248924255; +482.16986083984375, -0.6206333637237549; +482.26983642578125, -0.6262063980102539; +482.3698425292969, -0.6348341703414917; +482.4698181152344, -0.6449371576309204; +482.56982421875, -0.654660165309906; +482.6698303222656, -0.6608739495277405; +482.7698059082031, -0.661797821521759; +482.86981201171875, -0.6609410047531128; +482.96978759765625, -0.6621479988098145; +483.0697937011719, -0.6651505827903748; +483.1697998046875, -0.6683170795440674; +483.269775390625, -0.6693750619888306; +483.3697814941406, -0.6689652800559998; +483.4697570800781, -0.6686300039291382; +483.56976318359375, -0.6671324372291565; +483.66973876953125, -0.6642118096351624; +483.7697448730469, -0.6592348217964172; +483.8697509765625, -0.655047595500946; +483.9697265625, -0.6535947322845459; +484.0697326660156, -0.6522759795188904; +484.1697082519531, -0.6489232182502747; +484.26971435546875, -0.6439089775085449; +484.3697204589844, -0.641457736492157; +484.4696960449219, -0.6429105997085571; +484.5697021484375, -0.6447285413742065; +484.669677734375, -0.644683837890625; +484.7696838378906, -0.6453394889831543; +484.86968994140625, -0.6491616368293762; +484.96966552734375, -0.6541609764099121; +485.0696716308594, -0.6572827696800232; +485.1696472167969, -0.6592795252799988; +485.2696533203125, -0.6629079580307007; +485.3696594238281, -0.6676614284515381; +485.4696350097656, -0.671088695526123; +485.56964111328125, -0.6730630993843079; +485.66961669921875, -0.674717128276825; +485.7696228027344, -0.6765946745872498; +485.86962890625, -0.677943229675293; +485.9696044921875, -0.6784424185752869; +486.0696105957031, -0.6791725754737854; +486.1695861816406, -0.6800293922424316; +486.26959228515625, -0.680387020111084; +486.3695983886719, -0.6796345114707947; +486.4695739746094, -0.6787702441215515; +486.569580078125, -0.677935779094696; +486.6695556640625, -0.6762966513633728; +486.7695617675781, -0.672556459903717; +486.86956787109375, -0.6674900650978088; +486.96954345703125, -0.6629303097724915; +487.0695495605469, -0.6588175892829895; +487.1695251464844, -0.6572529673576355; +487.26953125, -0.6579086184501648; +487.3695373535156, -0.6606802344322205; +487.4695129394531, -0.6650462746620178; +487.56951904296875, -0.6699562072753906; +487.66949462890625, -0.6750300526618958; +487.7695007324219, -0.6764009594917297; +487.8694763183594, -0.6747022271156311; +487.969482421875, -0.673241913318634; +488.0694885253906, -0.673346221446991; +488.1694641113281, -0.6737262010574341; +488.26947021484375, -0.6715282797813416; +488.36944580078125, -0.6694048643112183; +488.4694519042969, -0.669427216053009; +488.5694580078125, -0.6708055734634399; +488.66943359375, -0.6716027855873108; +488.7694396972656, -0.6710737943649292; +488.8694152832031, -0.6723329424858093; +488.96942138671875, -0.6753057241439819; +489.0694274902344, -0.6773769855499268; +489.1694030761719, -0.674910843372345; +489.2694091796875, -0.6676614284515381; +489.369384765625, -0.6602182984352112; +489.4693908691406, -0.6553083658218384; +489.56939697265625, -0.6536990404129028; +489.66937255859375, -0.65583735704422; +489.7693786621094, -0.6622597575187683; +489.8693542480469, -0.6723403930664062; +489.9693603515625, -0.6816461682319641; +490.0693664550781, -0.6876438856124878; +490.1693420410156, -0.6895214319229126; +490.26934814453125, -0.6874948740005493; +490.36932373046875, -0.6827265024185181; +490.4693298339844, -0.6769374012947083; +490.5693359375, -0.6736814975738525; +490.6693115234375, -0.672556459903717; +490.7693176269531, -0.6733536720275879; +490.8692932128906, -0.6757825613021851; +490.96929931640625, -0.6793290376663208; +491.0693054199219, -0.6818398833274841; +491.1692810058594, -0.6810054183006287; +491.269287109375, -0.6779953837394714; +491.3692626953125, -0.6734952330589294; +491.4692687988281, -0.6679892539978027; +491.56927490234375, -0.6635934114456177; +491.66925048828125, -0.66375732421875; +491.7692565917969, -0.6680712103843689; +491.8692321777344, -0.6731972098350525; +491.96923828125, -0.6774291396141052; +492.0692138671875, -0.6799474358558655; +492.1692199707031, -0.6793811917304993; +492.26922607421875, -0.6750002503395081; +492.36920166015625, -0.6695613265037537; +492.4692077636719, -0.6660595536231995; +492.5691833496094, -0.6652921438217163; +492.669189453125, -0.6674453616142273; +492.7691955566406, -0.6720870733261108; +492.8691711425781, -0.6759017705917358; +492.96917724609375, -0.6765648722648621; +493.06915283203125, -0.6748735904693604; +493.1691589355469, -0.6722137331962585; +493.2691650390625, -0.6693974137306213; +493.369140625, -0.6667077541351318; +493.4691467285156, -0.6673410534858704; +493.5691223144531, -0.6718635559082031; +493.66912841796875, -0.6771981716156006; +493.7691345214844, -0.6816238164901733; +493.8691101074219, -0.6848499178886414; +493.9691162109375, -0.6875842809677124; +494.069091796875, -0.689774751663208; +494.1690979003906, -0.6911233067512512; +494.26910400390625, -0.6924420595169067; +494.36907958984375, -0.6927028298377991; +494.4690856933594, -0.6922036409378052; +494.5690612792969, -0.6911009550094604; +494.6690673828125, -0.689484179019928; +494.7690734863281, -0.6872266530990601; +494.8690490722656, -0.6854906678199768; +494.96905517578125, -0.6856769323348999; +495.06903076171875, -0.6869807839393616; +495.1690368652344, -0.6888434290885925; +495.26904296875, -0.6904676556587219; +495.3690185546875, -0.6929934024810791; +495.4690246582031, -0.6945878267288208; +495.5690002441406, -0.694572925567627; +495.66900634765625, -0.693008303642273; +495.7690124511719, -0.6897598505020142; +495.8689880371094, -0.6867051124572754; +495.968994140625, -0.6834939122200012; +496.0689697265625, -0.6812959909439087; +496.1689758300781, -0.6804540753364563; +496.2689514160156, -0.6812214851379395; +496.36895751953125, -0.6850436329841614; +496.4689636230469, -0.6893426179885864; +496.5689392089844, -0.6918981671333313; +496.6689453125, -0.6927922368049622; +496.7689208984375, -0.6924867630004883; +496.8689270019531, -0.6913989782333374; +496.96893310546875, -0.6884858012199402; +497.06890869140625, -0.683911144733429; +497.1689147949219, -0.680290162563324; +497.2688903808594, -0.6777718663215637; +497.368896484375, -0.6761699914932251; +497.4689025878906, -0.6764978170394897; +497.5688781738281, -0.6788969039916992; +497.66888427734375, -0.6837248802185059; +497.76885986328125, -0.6878674030303955; +497.8688659667969, -0.6906390190124512; +497.9688720703125, -0.6929263472557068; +498.06884765625, -0.6937608122825623; +498.1688537597656, -0.6923601031303406; +498.2688293457031, -0.6900578737258911; +498.36883544921875, -0.6899237632751465; +498.4688415527344, -0.6930157542228699; +498.5688171386719, -0.6981268525123596; +498.6688232421875, -0.7038265466690063; +498.768798828125, -0.7089376449584961; +498.8688049316406, -0.7108151912689209; +498.96881103515625, -0.7086768746376038; +499.06878662109375, -0.7034167647361755; +499.1687927246094, -0.6973668932914734; +499.2687683105469, -0.691629946231842; +499.3687744140625, -0.6874799728393555; +499.4687805175781, -0.6861388683319092; +499.5687561035156, -0.6880536675453186; +499.66876220703125, -0.6902217864990234; +499.76873779296875, -0.6895735859870911; +499.8687438964844, -0.6878301501274109; +499.9687194824219, -0.6863400340080261; +500.0687255859375, -0.6856247782707214; +500.1687316894531, -0.6840527057647705; +500.2687072753906, -0.6838887929916382; +500.36871337890625, -0.6867572665214539; +500.46868896484375, -0.690653920173645; +500.5686950683594, -0.69408118724823; +500.668701171875, -0.6967931985855103; +500.7686767578125, -0.7000938057899475; +500.8686828613281, -0.702202320098877; +500.9686584472656, -0.7019117474555969; +501.06866455078125, -0.699557363986969; +501.1686706542969, -0.6965547800064087; +501.2686462402344, -0.6936565041542053; +501.36865234375, -0.6910711526870728; +501.4686279296875, -0.6896406412124634; +501.5686340332031, -0.6892010569572449; +501.66864013671875, -0.6890818476676941; +501.76861572265625, -0.6889402866363525; +501.8686218261719, -0.689089298248291; +501.9685974121094, -0.6886348128318787; +502.068603515625, -0.6871894001960754; +502.1686096191406, -0.6855130195617676; +502.2685852050781, -0.6856992840766907; +502.36859130859375, -0.6872117519378662; +502.46856689453125, -0.6881877779960632; +502.5685729980469, -0.6885528564453125; +502.6685791015625, -0.6885230541229248; +502.7685546875, -0.6893202662467957; +502.8685607910156, -0.6907656788825989; +502.9685363769531, -0.6934776902198792; +503.06854248046875, -0.6969794631004333; +503.1685485839844, -0.700339674949646; +503.2685241699219, -0.7032603025436401; +503.3685302734375, -0.705033540725708; +503.468505859375, -0.7045120000839233; +503.5685119628906, -0.7004737854003906; +503.66851806640625, -0.6948411464691162; +503.76849365234375, -0.6883442401885986; +503.8684997558594, -0.6828084588050842; +503.9684753417969, -0.6787329912185669; +504.0684814453125, -0.6757378578186035; +504.16845703125, -0.6744414567947388; +504.2684631347656, -0.6740838289260864; +504.36846923828125, -0.6756484508514404; +504.46844482421875, -0.6780698895454407; +504.5684509277344, -0.6810575723648071; +504.6684265136719, -0.6858780980110168; +504.7684326171875, -0.6912723183631897; +504.8684387207031, -0.6952956318855286; +504.9684143066406, -0.6967857480049133; +505.06842041015625, -0.6965473294258118; +505.16839599609375, -0.6948709487915039; +505.2684020996094, -0.6913170218467712; +505.368408203125, -0.6866529583930969; +505.4683837890625, -0.6838738918304443; +505.5683898925781, -0.6843358278274536; +505.6683654785156, -0.6861686706542969; +505.76837158203125, -0.6871446967124939; +505.8683776855469, -0.6868839263916016; +505.9683532714844, -0.6875768303871155; +506.068359375, -0.6892457604408264; +506.1683349609375, -0.6906762719154358; +506.2683410644531, -0.6908401846885681; +506.36834716796875, -0.6909891963005066; +506.46832275390625, -0.6925836205482483; +506.5683288574219, -0.6937235593795776; +506.6683044433594, -0.6924346089363098; +506.768310546875, -0.6888583302497864; +506.8683166503906, -0.6861016154289246; +506.9682922363281, -0.6848946213722229; +507.06829833984375, -0.6818994879722595; +507.16827392578125, -0.6759911775588989; +507.2682800292969, -0.6680190563201904; +507.3682861328125, -0.659555196762085; +507.46826171875, -0.6509646773338318; +507.5682678222656, -0.6426572799682617; +507.6682434082031, -0.6350204348564148; +507.76824951171875, -0.6280764937400818; +507.8682556152344, -0.6220713257789612; +507.9682312011719, -0.6175115704536438; +508.0682373046875, -0.6136521697044373; +508.168212890625, -0.6087273359298706; +508.2682189941406, -0.6043910980224609; +508.3681945800781, -0.6019771099090576; +508.46820068359375, -0.6013587117195129; +508.5682067871094, -0.6012767553329468; +508.6681823730469, -0.6026402115821838; +508.7681884765625, -0.6070360541343689; +508.8681640625, -0.6123632192611694; +508.9681701660156, -0.6172880530357361; +509.06817626953125, -0.6208568811416626; +509.16815185546875, -0.6243586540222168; +509.2681579589844, -0.6272494792938232; +509.3681335449219, -0.6287544965744019; +509.4681396484375, -0.6308481097221375; +509.5681457519531, -0.6329938769340515; +509.6681213378906, -0.6349682807922363; +509.76812744140625, -0.6359517574310303; +509.86810302734375, -0.635877251625061; +509.9681091308594, -0.6362199783325195; +510.068115234375, -0.6355121731758118; +510.1680908203125, -0.6346702575683594; +510.2680969238281, -0.6350800395011902; +510.3680725097656, -0.6362944841384888; +510.46807861328125, -0.6381198763847351; +510.5680847167969, -0.639699399471283; +510.6680603027344, -0.6420910358428955; +510.76806640625, -0.6448179483413696; +510.8680419921875, -0.6463527679443359; +510.9680480957031, -0.6461888551712036; +511.06805419921875, -0.6442293524742126; +511.16802978515625, -0.641949474811554; +511.2680358886719, -0.6409808993339539; +511.3680114746094, -0.642038881778717; +511.468017578125, -0.6434544920921326; +511.5680236816406, -0.6441250443458557; +511.6679992675781, -0.6453916430473328; +511.76800537109375, -0.645168125629425; +511.86798095703125, -0.6413534283638; +511.9679870605469, -0.6337165832519531; +512.0679931640625, -0.6261393427848816; +512.16796875, -0.6222724914550781; +512.2679443359375, -0.6207972764968872; +512.3679809570312, -0.6230473518371582; +512.4679565429688, -0.627957284450531; +512.5679321289062, -0.6353557109832764; +512.66796875, -0.644288957118988; +512.7679443359375, -0.6534159183502197; +512.867919921875, -0.661708414554596; +512.9678955078125, -0.6668344140052795; +513.0679321289062, -0.6709322333335876; +513.1679077148438, -0.6753802299499512; +513.2678833007812, -0.6798580288887024; +513.367919921875, -0.6823763251304626; +513.4678955078125, -0.682927668094635; +513.56787109375, -0.6823167204856873; +513.6679077148438, -0.6813332438468933; +513.7678833007812, -0.6802976131439209; +513.8678588867188, -0.6792172789573669; +513.9678344726562, -0.678718090057373; +514.06787109375, -0.6790533661842346; +514.1678466796875, -0.6805956363677979; +514.267822265625, -0.6803646683692932; +514.3678588867188, -0.6783530116081238; +514.4678344726562, -0.6769225001335144; +514.5678100585938, -0.6766915321350098; +514.6677856445312, -0.6754547357559204; +514.767822265625, -0.6728246808052063; +514.8677978515625, -0.673435628414154; +514.9677734375, -0.6772279739379883; +515.0678100585938, -0.6806179881095886; +515.1677856445312, -0.6817951798439026; +515.2677612304688, -0.6832778453826904; +515.3677978515625, -0.6870180368423462; +515.4677734375, -0.6913840770721436; +515.5677490234375, -0.6952360272407532; +515.667724609375, -0.6996169686317444; +515.7677612304688, -0.705912709236145; +515.8677368164062, -0.7131099700927734; +515.9677124023438, -0.7187053561210632; +516.0677490234375, -0.7219091057777405; +516.167724609375, -0.725284218788147; +516.2677001953125, -0.7288306951522827; +516.3677368164062, -0.730857253074646; +516.4677124023438, -0.7316991686820984; +516.5676879882812, -0.7333531975746155; +516.6676635742188, -0.7351115345954895; +516.7677001953125, -0.7336288690567017; +516.86767578125, -0.7290095090866089; +516.9676513671875, -0.7238835096359253; +517.0676879882812, -0.7197856903076172; +517.1676635742188, -0.7170736789703369; +517.2676391601562, -0.7172673940658569; +517.36767578125, -0.7210150361061096; +517.4676513671875, -0.7265135645866394; +517.567626953125, -0.7322058081626892; +517.6676025390625, -0.7373467087745667; +517.7676391601562, -0.7414892315864563; +517.8676147460938, -0.7440671324729919; +517.9675903320312, -0.7443204522132874; +518.067626953125, -0.7429793477058411; +518.1676025390625, -0.7401406764984131; +518.267578125, -0.7365792989730835; +518.3675537109375, -0.7302761077880859; +518.4675903320312, -0.7214769721031189; +518.5675659179688, -0.7134154438972473; +518.6675415039062, -0.7097423076629639; +518.767578125, -0.7103011012077332; +518.8675537109375, -0.711880624294281; +518.967529296875, -0.715695321559906; +519.0675659179688, -0.7213577628135681; +519.1675415039062, -0.7271096110343933; +519.2675170898438, -0.7293149828910828; +519.3674926757812, -0.7285997271537781; +519.467529296875, -0.7281303405761719; +519.5675048828125, -0.7285475730895996; +519.66748046875, -0.7292479276657104; +519.7675170898438, -0.7291734218597412; +519.8674926757812, -0.7290691137313843; +519.9674682617188, -0.7290765643119812; +520.0675048828125, -0.7292702794075012; +520.16748046875, -0.7290467619895935; +520.2674560546875, -0.7287859916687012; +520.367431640625, -0.729002058506012; +520.4674682617188, -0.7313266396522522; +520.5674438476562, -0.7364079356193542; +520.6674194335938, -0.7405653595924377; +520.7674560546875, -0.7415935397148132; +520.867431640625, -0.7393285632133484; +520.9674072265625, -0.7358267903327942; +521.0674438476562, -0.7320791482925415; +521.1674194335938, -0.7273480296134949; +521.2673950195312, -0.7238388061523438; +521.3673706054688, -0.7230788469314575; +521.4674072265625, -0.725284218788147; +521.5673828125, -0.7300451397895813; +521.6673583984375, -0.7342472672462463; +521.7673950195312, -0.7369890809059143; +521.8673706054688, -0.7381364703178406; +521.9673461914062, -0.7389262318611145; +522.0673828125, -0.74024498462677; +522.1673583984375, -0.740446150302887; +522.267333984375, -0.7404237985610962; +522.3673095703125, -0.7402077317237854; +522.4673461914062, -0.7411539554595947; +522.5673217773438, -0.7426068186759949; +522.6672973632812, -0.7429495453834534; +522.767333984375, -0.7420703768730164; +522.8673095703125, -0.7404163479804993; +522.96728515625, -0.7396340370178223; +523.0672607421875, -0.7390454411506653; +523.1672973632812, -0.7388070225715637; +523.2672729492188, -0.7400438189506531; +523.3672485351562, -0.741519033908844; +523.46728515625, -0.7422715425491333; +523.5672607421875, -0.7414072751998901; +523.667236328125, -0.7392540574073792; +523.7672729492188, -0.7354170083999634; +523.8672485351562, -0.729776918888092; +523.9672241210938, -0.7262378931045532; +524.0671997070312, -0.7266402244567871; +524.167236328125, -0.730663537979126; +524.2672119140625, -0.7355734705924988; +524.3671875, -0.7410794496536255; +524.4672241210938, -0.746503472328186; +524.5671997070312, -0.7493868470191956; +524.6671752929688, -0.7481500506401062; +524.7672119140625, -0.7440969347953796; +524.8671875, -0.7411986589431763; +524.9671630859375, -0.7408559322357178; +525.067138671875, -0.7417425513267517; +525.1671752929688, -0.7415339350700378; +525.2671508789062, -0.7404088973999023; +525.3671264648438, -0.7389262318611145; +525.4671630859375, -0.7364377379417419; +525.567138671875, -0.7316321134567261; +525.6671142578125, -0.7261410355567932; +525.7671508789062, -0.7234886288642883; +525.8671264648438, -0.7243603467941284; +525.9671020507812, -0.7269084453582764; +526.0670776367188, -0.7298141717910767; +526.1671142578125, -0.7338002324104309; +526.26708984375, -0.738188624382019; +526.3670654296875, -0.7410049438476562; +526.4671020507812, -0.740930438041687; +526.5670776367188, -0.7385164499282837; +526.6670532226562, -0.7343292236328125; +526.7670288085938, -0.7278993725776672; +526.8670654296875, -0.7224380970001221; +526.967041015625, -0.7204562425613403; +527.0670166015625, -0.722251832485199; +527.1670532226562, -0.7260739803314209; +527.2670288085938, -0.7311925292015076; +527.3670043945312, -0.7364973425865173; +527.467041015625, -0.7380768656730652; +527.5670166015625, -0.7350295782089233; +527.6669921875, -0.7301270961761475; +527.7669677734375, -0.7263347506523132; +527.8670043945312, -0.7227957248687744; +527.9669799804688, -0.7201358675956726; +528.0669555664062, -0.7202029228210449; +528.1669921875, -0.7228925824165344; +528.2669677734375, -0.7269531488418579; +528.366943359375, -0.7311180233955383; +528.4669799804688, -0.7356107234954834; +528.5669555664062, -0.7399842143058777; +528.6669311523438, -0.7419511675834656; +528.7669067382812, -0.741221010684967; +528.866943359375, -0.7372796535491943; +528.9669189453125, -0.7313638925552368; +529.06689453125, -0.7258132100105286; +529.1669311523438, -0.7227882742881775; +529.2669067382812, -0.72479248046875; +529.3668823242188, -0.7298365235328674; +529.4669189453125, -0.7352679967880249; +529.56689453125, -0.7393136620521545; +529.6668701171875, -0.7417872548103333; +529.766845703125, -0.7422417402267456; +529.8668823242188, -0.7394254207611084; +529.9668579101562, -0.7343068718910217; +530.0668334960938, -0.7292106747627258; +530.1668701171875, -0.72508305311203; +530.266845703125, -0.721953809261322; +530.3668212890625, -0.7186830043792725; +530.4668579101562, -0.7157549262046814; +530.5668334960938, -0.7141456007957458; +530.6668090820312, -0.7145926356315613; +530.7667846679688, -0.7176324725151062; +530.8668212890625, -0.7217079401016235; +530.966796875, -0.7256120443344116; +531.0667724609375, -0.7280856370925903; +531.1668090820312, -0.7304474711418152; +531.2667846679688, -0.7336139678955078; +531.3667602539062, -0.7368549704551697; +531.4667358398438, -0.7387474179267883; +531.5667724609375, -0.7398724555969238; +531.666748046875, -0.7417276501655579; +531.7667236328125, -0.7434561848640442; +531.8667602539062, -0.7455125451087952; +531.9667358398438, -0.7474422454833984; +532.0667114257812, -0.7495284080505371; +532.166748046875, -0.7507354021072388; +532.2667236328125, -0.7504448294639587; +532.36669921875, -0.7495582103729248; +532.4666748046875, -0.7471740245819092; +532.5667114257812, -0.7431730628013611; +532.6666870117188, -0.7389038801193237; +532.7666625976562, -0.7368475198745728; +532.86669921875, -0.7382556796073914; +532.9666748046875, -0.740543007850647; +533.066650390625, -0.7399171590805054; +533.1666870117188, -0.7352381944656372; +533.2666625976562, -0.7275864481925964; +533.3666381835938, -0.7196739315986633; +533.4666137695312, -0.7126927375793457; +533.566650390625, -0.7079169154167175; +533.6666259765625, -0.7078051567077637; +533.7666015625, -0.7146373391151428; +533.8666381835938, -0.7272735238075256; +533.9666137695312, -0.7397904992103577; +534.0665893554688, -0.7471963763237; +534.1666259765625, -0.7490292191505432; +534.2666015625, -0.7477924227714539; +534.3665771484375, -0.7442906498908997; +534.466552734375, -0.7388070225715637; +534.5665893554688, -0.7322728633880615; +534.6665649414062, -0.7284432649612427; +534.7665405273438, -0.7290467619895935; +534.8665771484375, -0.7322579622268677; +534.966552734375, -0.7352679967880249; +535.0665283203125, -0.7363110780715942; +535.16650390625, -0.7367134094238281; +535.2665405273438, -0.736624002456665; +535.3665161132812, -0.735938549041748; +535.4664916992188, -0.7340312004089355; +535.5665283203125, -0.730372965335846; +535.66650390625, -0.7258430123329163; +535.7664794921875, -0.7223039865493774; +535.8665161132812, -0.7206499576568604; +535.9664916992188, -0.7193014025688171; +536.0664672851562, -0.7177069783210754; +536.1664428710938, -0.7171630859375; +536.2664794921875, -0.7186606526374817; +536.366455078125, -0.719808042049408; +536.4664306640625, -0.7185935974121094; +536.5664672851562, -0.71696937084198; +536.6664428710938, -0.7168203592300415; +536.7664184570312, -0.7172226905822754; +536.866455078125, -0.7174834609031677; +536.9664306640625, -0.718235969543457; +537.06640625, -0.7194653153419495; +537.1663818359375, -0.7193833589553833; +537.2664184570312, -0.7180273532867432; +537.3663940429688, -0.7177740335464478; +537.4663696289062, -0.7190778851509094; +537.56640625, -0.7219314575195312; +537.6663818359375, -0.7274150848388672; +537.766357421875, -0.7356181740760803; +537.8663940429688, -0.7450208067893982; +537.9663696289062, -0.7535368204116821; +538.0663452148438, -0.7607936859130859; +538.1663208007812, -0.7664337754249573; +538.266357421875, -0.7699504494667053; +538.3663330078125, -0.7717609405517578; +538.46630859375, -0.7711797952651978; +538.5663452148438, -0.7693395018577576; +538.6663208007812, -0.7671713829040527; +538.7662963867188, -0.7662028074264526; +538.8662719726562, -0.7648244500160217; +538.96630859375, -0.7612556219100952; +539.0662841796875, -0.7581785321235657; +539.166259765625, -0.7567703723907471; +539.2662963867188, -0.7568821310997009; +539.3662719726562, -0.7560104131698608; +539.4662475585938, -0.7558241486549377; +539.5662841796875, -0.7586553692817688; +539.666259765625, -0.76264888048172; +539.7662353515625, -0.7650703191757202; +539.8662109375, -0.764407217502594; +539.9662475585938, -0.7621720433235168; +540.0662231445312, -0.759512186050415; +540.1661987304688, -0.7580742239952087; +540.2662353515625, -0.7579401135444641; +540.3662109375, -0.7590353488922119; +540.4661865234375, -0.7615014910697937; +540.5662231445312, -0.7666051387786865; +540.6661987304688, -0.7728263735771179; +540.7661743164062, -0.7756203413009644; +540.8661499023438, -0.7747560739517212; +540.9661865234375, -0.7735639810562134; +541.066162109375, -0.7743909955024719; +541.1661376953125, -0.7741749286651611; +541.2661743164062, -0.772431492805481; +541.3661499023438, -0.7722154259681702; +541.4661254882812, -0.7758140563964844; +541.566162109375, -0.7805600762367249; +541.6661376953125, -0.7821843028068542; +541.76611328125, -0.7817298173904419; +541.8660888671875, -0.7809028029441833; +541.9661254882812, -0.781722366809845; +542.0661010742188, -0.7805004715919495; +542.1660766601562, -0.776432454586029; +542.26611328125, -0.772915780544281; +542.3660888671875, -0.7726848125457764; +542.466064453125, -0.7738843560218811; +542.5661010742188, -0.7719323039054871; +542.6660766601562, -0.7693320512771606; +542.7660522460938, -0.7689148187637329; +542.8660278320312, -0.7703155279159546; +542.966064453125, -0.77037513256073; +543.0660400390625, -0.7673203945159912; +543.166015625, -0.7620155811309814; +543.2660522460938, -0.7562786340713501; +543.3660278320312, -0.7537901401519775; +543.4660034179688, -0.7543042302131653; +543.5659790039062, -0.7556602358818054; +543.666015625, -0.7574111223220825; +543.7659912109375, -0.7603168487548828; +543.865966796875, -0.7637068629264832; +543.9660034179688, -0.7634833455085754; +544.0659790039062, -0.7596537470817566; +544.1659545898438, -0.7554292678833008; +544.2659912109375, -0.7540881633758545; +544.365966796875, -0.7559657096862793; +544.4659423828125, -0.7589235901832581; +544.56591796875, -0.7611066102981567; +544.6659545898438, -0.7625073194503784; +544.7659301757812, -0.7622987031936646; +544.8659057617188, -0.7604658603668213; +544.9659423828125, -0.7575303316116333; +545.06591796875, -0.7543787360191345; +545.1658935546875, -0.7527917623519897; +545.2659301757812, -0.7522851228713989; +545.3659057617188, -0.7530972361564636; +545.4658813476562, -0.7547959685325623; +545.5658569335938, -0.7562786340713501; +545.6658935546875, -0.756293535232544; +545.765869140625, -0.7538124918937683; +545.8658447265625, -0.750325620174408; +545.9658813476562, -0.74748694896698; +546.0658569335938, -0.7450506091117859; +546.1658325195312, -0.742785632610321; +546.265869140625, -0.7416605949401855; +546.3658447265625, -0.743083655834198; +546.4658203125, -0.7455572485923767; +546.5657958984375, -0.748172402381897; +546.6658325195312, -0.7506236433982849; +546.7658081054688, -0.7534101605415344; +546.8657836914062, -0.7565096020698547; +546.9658203125, -0.7590577006340027; +547.0657958984375, -0.7614791393280029; +547.165771484375, -0.7637292146682739; +547.2657470703125, -0.7655546069145203; +547.3657836914062, -0.7660537958145142; +547.4657592773438, -0.7655620574951172; +547.5657348632812, -0.7653683423995972; +547.665771484375, -0.7676705718040466; +547.7657470703125, -0.7705241441726685; +547.86572265625, -0.771746039390564; +547.9657592773438, -0.7720291614532471; +548.0657348632812, -0.7722005248069763; +548.1657104492188, -0.7708892226219177; +548.2656860351562, -0.7652938365936279; +548.36572265625, -0.759713351726532; +548.4656982421875, -0.7592812180519104; +548.565673828125, -0.7626190781593323; +548.6657104492188, -0.7647871971130371; +548.7656860351562, -0.7655099034309387; +548.8656616210938, -0.7677525281906128; +548.9656982421875, -0.7698684930801392; +549.065673828125, -0.7687807083129883; +549.1656494140625, -0.7651448249816895; +549.265625, -0.7635951042175293; +549.3656616210938, -0.765576958656311; +549.4656372070312, -0.769197940826416; +549.5656127929688, -0.7719770073890686; +549.6656494140625, -0.7730647921562195; +549.765625, -0.7726401090621948; +549.8656005859375, -0.7704123854637146; +549.9656372070312, -0.7680505514144897; +550.0656127929688, -0.7660165429115295; +550.1655883789062, -0.7638335227966309; +550.2655639648438, -0.7607564330101013; +550.3656005859375, -0.7590949535369873; +550.465576171875, -0.7605180144309998; +550.5655517578125, -0.7616057991981506; +550.6655883789062, -0.7584169507026672; +550.7655639648438, -0.7530227303504944; +550.8655395507812, -0.7511749863624573; +550.9655151367188, -0.7527992129325867; +551.0655517578125, -0.7549375295639038; +551.16552734375, -0.7567256689071655; +551.2655029296875, -0.7608607411384583; +551.3655395507812, -0.7669627666473389; +551.4655151367188, -0.7711127400398254; +551.5654907226562, -0.7718876004219055; +551.66552734375, -0.7705390453338623; +551.7655029296875, -0.7699355483055115; +551.865478515625, -0.769495964050293; +551.9654541015625, -0.7672980427742004; +552.0654907226562, -0.76284259557724; +552.1654663085938, -0.7575005292892456; +552.2654418945312, -0.7540285587310791; +552.365478515625, -0.7516145706176758; +552.4654541015625, -0.7495209574699402; +552.5654296875, -0.7476508617401123; +552.6654663085938, -0.7476732134819031; +552.7654418945312, -0.7500723004341125; +552.8654174804688, -0.7533207535743713; +552.9653930664062, -0.7559880614280701; +553.0654296875, -0.7569640874862671; +553.1654052734375, -0.7568150758743286; +553.265380859375, -0.7551982998847961; +553.3654174804688, -0.7523521780967712; +553.4653930664062, -0.7481351494789124; +553.5653686523438, -0.7427334785461426; +553.6654052734375, -0.7380470633506775; +553.765380859375, -0.7351040840148926; +553.8653564453125, -0.7339194416999817; +553.96533203125, -0.7328540086746216; +554.0653686523438, -0.7310435175895691; +554.1653442382812, -0.7301270961761475; +554.2653198242188, -0.7313713431358337; +554.3653564453125, -0.7343366742134094; +554.46533203125, -0.7372573018074036; +554.5653076171875, -0.7373541593551636; +554.6653442382812, -0.7336512207984924; +554.7653198242188, -0.7269307971000671; +554.8652954101562, -0.7190108299255371; +554.9652709960938, -0.7118284702301025; +555.0653076171875, -0.7065758109092712; +555.165283203125, -0.7050409913063049; +555.2652587890625, -0.7059723138809204; +555.3652954101562, -0.7064267992973328; +555.4652709960938, -0.7053613662719727; +555.5652465820312, -0.7031187415122986; +555.6652221679688, -0.7004588842391968; +555.7652587890625, -0.6973892450332642; +555.865234375, -0.6963163614273071; +555.9652099609375, -0.6975531578063965; +556.0652465820312, -0.6991550326347351; +556.1652221679688, -0.7007569074630737; +556.2651977539062, -0.7015988230705261; +556.365234375, -0.7013306021690369; +556.4652099609375, -0.6986036896705627; +556.565185546875, -0.6961673498153687; +556.6651611328125, -0.6954073905944824; +556.7651977539062, -0.6930753588676453; +556.8651733398438, -0.6881952285766602; +556.9651489257812, -0.6836056709289551; +557.065185546875, -0.6829127669334412; +557.1651611328125, -0.6833821535110474; +557.26513671875, -0.6809011101722717; +557.3651733398438, -0.6775557994842529; +557.4651489257812, -0.6772875785827637; +557.5651245117188, -0.6784796714782715; +557.6651000976562, -0.6760060787200928; +557.76513671875, -0.6697475910186768; +557.8651123046875, -0.6659999489784241; +557.965087890625, -0.6671920418739319; +558.0651245117188, -0.6698146462440491; +558.1651000976562, -0.6711557507514954; +558.2650756835938, -0.6722584366798401; +558.3651123046875, -0.6756037473678589; +558.465087890625, -0.6796494126319885; +558.5650634765625, -0.6819441914558411; +558.6650390625, -0.6821006536483765; +558.7650756835938, -0.6807669997215271; +558.8650512695312, -0.6795525550842285; +558.9650268554688, -0.677742063999176; +559.0650634765625, -0.6751269102096558; +559.1650390625, -0.6730854511260986; +559.2650146484375, -0.6731823086738586; +559.364990234375, -0.6765276193618774; +559.4650268554688, -0.6802678108215332; +559.5650024414062, -0.6833076477050781; +559.6649780273438, -0.6857290863990784; +559.7650146484375, -0.6866753101348877; +559.864990234375, -0.6853863596916199; +559.9649658203125, -0.6819292902946472; +560.0650024414062, -0.6774365901947021; +560.1649780273438, -0.6722509860992432; +560.2649536132812, -0.6663352251052856; +560.3649291992188, -0.6620511412620544; +560.4649658203125, -0.6601586937904358; +560.56494140625, -0.6596669554710388; +560.6649169921875, -0.6608888506889343; +560.7649536132812, -0.6628036499023438; +560.8649291992188, -0.6655901670455933; +560.9649047851562, -0.6674006581306458; +561.06494140625, -0.6680861115455627; +561.1649169921875, -0.6682649254798889; +561.264892578125, -0.6677955389022827; +561.3648681640625, -0.6684735417366028; +561.4649047851562, -0.6695762276649475; +561.5648803710938, -0.669822096824646; +561.6648559570312, -0.6691887974739075; +561.764892578125, -0.6674677133560181; +561.8648681640625, -0.666007399559021; +561.96484375, -0.6643310189247131; +562.0648803710938, -0.6636157631874084; +562.1648559570312, -0.6648227572441101; +562.2648315429688, -0.666104257106781; +562.3648071289062, -0.6674379110336304; +562.46484375, -0.6679370999336243; +562.5648193359375, -0.6684735417366028; +562.664794921875, -0.6685927510261536; +562.7648315429688, -0.6690472364425659; +562.8648071289062, -0.6723850965499878; +562.9647827148438, -0.678427517414093; +563.0648193359375, -0.687628984451294; +563.164794921875, -0.6979703903198242; +563.2647705078125, -0.7084682583808899; +563.36474609375, -0.71687251329422; +563.4647827148438, -0.7201582193374634; +563.5647583007812, -0.7190480828285217; +563.6647338867188, -0.714033842086792; +563.7647705078125, -0.7082521915435791; +563.86474609375, -0.7032155990600586; +563.9647216796875, -0.7003992795944214; +564.064697265625, -0.7006525993347168; +564.1647338867188, -0.7021501660346985; +564.2647094726562, -0.7049739360809326; +564.3646850585938, -0.7089301943778992; +564.4647216796875, -0.7125884294509888; +564.564697265625, -0.7150173187255859; +564.6646728515625, -0.7160305976867676; +564.7647094726562, -0.71725994348526; +564.8646850585938, -0.7191672921180725; +564.9646606445312, -0.7208585739135742; +565.0646362304688, -0.7238909602165222; +565.1646728515625, -0.7261261343955994; +565.2646484375, -0.7259473204612732; +565.3646240234375, -0.7244572043418884; +565.4646606445312, -0.723525881767273; +565.5646362304688, -0.7252022624015808; +565.6646118164062, -0.7271692156791687; +565.7646484375, -0.7306113839149475; +565.8646240234375, -0.7382035255432129; +565.964599609375, -0.7486045360565186; +566.0645751953125, -0.7573068141937256; +566.1646118164062, -0.759713351726532; +566.2645874023438, -0.757358968257904; +566.3645629882812, -0.7532387971878052; +566.464599609375, -0.748172402381897; +566.5645751953125, -0.7425174117088318; +566.66455078125, -0.7385388016700745; +566.7645874023438, -0.7377639412879944; +566.8645629882812, -0.7404759526252747; +566.9645385742188, -0.7438510656356812; +567.0645141601562, -0.7459297776222229; +567.16455078125, -0.7478147745132446; +567.2645263671875, -0.7514208555221558; +567.364501953125, -0.7569044828414917; +567.4645385742188, -0.7601231336593628; +567.5645141601562, -0.7613003253936768; +567.6644897460938, -0.7629618048667908; +567.7644653320312, -0.7642954587936401; +567.864501953125, -0.7620006799697876; +567.9644775390625, -0.7561445236206055; +568.064453125, -0.750415027141571; +568.1644897460938, -0.7452294230461121; +568.2644653320312, -0.7399097084999084; +568.3644409179688, -0.7365494966506958; +568.4644775390625, -0.7364898920059204; +568.564453125, -0.737115740776062; +568.6644287109375, -0.7365867495536804; +568.764404296875, -0.7363110780715942; +568.8644409179688, -0.7377117872238159; +568.9644165039062, -0.7398203015327454; +569.0643920898438, -0.742398202419281; +569.1644287109375, -0.7472187280654907; +569.264404296875, -0.754229724407196; +569.3643798828125, -0.7620677351951599; +569.4644165039062, -0.7673799991607666; +569.5643920898438, -0.7675141096115112; +569.6643676757812, -0.76264888048172; +569.7643432617188, -0.75540691614151; +569.8643798828125, -0.7489398121833801; +569.96435546875, -0.7431507110595703; +570.0643310546875, -0.7377788424491882; +570.1643676757812, -0.7350072264671326; +570.2643432617188, -0.7356032729148865; +570.3643188476562, -0.7387697696685791; +570.46435546875, -0.7422193884849548; +570.5643310546875, -0.7445365190505981; +570.664306640625, -0.7474273443222046; +570.7642822265625, -0.7502436637878418; +570.8643188476562, -0.752277672290802; +570.9642944335938, -0.7518008351325989; +571.0642700195312, -0.7479488849639893; +571.164306640625, -0.7431432604789734; +571.2642822265625, -0.7384940981864929; +571.3642578125, -0.7342919707298279; +571.4642333984375, -0.7303282618522644; +571.5642700195312, -0.728018581867218; +571.6642456054688, -0.7305443286895752; +571.7642211914062, -0.7383450865745544; +571.8642578125, -0.748075544834137; +571.9642333984375, -0.7570013403892517; +572.064208984375, -0.764600932598114; +572.1642456054688, -0.7697418332099915; +572.2642211914062, -0.7704198360443115; +572.3641967773438, -0.7655993103981018; +572.4641723632812, -0.7595792412757874; +572.564208984375, -0.7555112242698669; +572.6641845703125, -0.7526874542236328; +572.76416015625, -0.7518976926803589; +572.8641967773438, -0.7551610469818115; +572.9641723632812, -0.7626786828041077; +573.0641479492188, -0.7693842053413391; +573.1641845703125, -0.7732808589935303; +573.26416015625, -0.7765218615531921; +573.3641357421875, -0.7803291082382202; +573.464111328125, -0.7823407649993896; +573.5641479492188, -0.7804408669471741; +573.6641235351562, -0.7775649428367615; +573.7640991210938, -0.7776245474815369; +573.8641357421875, -0.7806941866874695; +573.964111328125, -0.7819607853889465; +574.0640869140625, -0.7798895239830017; +574.1641235351562, -0.7785335183143616; +574.2640991210938, -0.7803812623023987; +574.3640747070312, -0.780835747718811; +574.4640502929688, -0.7761716842651367; +574.5640869140625, -0.7704123854637146; +574.6640625, -0.7677450776100159; +574.7640380859375, -0.7658675312995911; +574.8640747070312, -0.7613152265548706; +574.9640502929688, -0.7575750350952148; +575.0640258789062, -0.758536159992218; +575.1640625, -0.7633641362190247; +575.2640380859375, -0.7680952548980713; +575.364013671875, -0.7722899317741394; +575.4639892578125, -0.7768049836158752; +575.5640258789062, -0.7795467972755432; +575.6640014648438, -0.7791072130203247; +575.7639770507812, -0.7772892713546753; +575.864013671875, -0.7768794894218445; +575.9639892578125, -0.7767528295516968; +576.06396484375, -0.7756873965263367; +576.1639404296875, -0.7752478122711182; +576.2639770507812, -0.7776394486427307; +576.3639526367188, -0.7795542478561401; +576.4639282226562, -0.7782429456710815; +576.56396484375, -0.7758438587188721; +576.6639404296875, -0.7746890187263489; +576.763916015625, -0.7752925157546997; +576.8639526367188, -0.7741302251815796; +576.9639282226562, -0.7716044783592224; +577.0639038085938, -0.7699728012084961; +577.1638793945312, -0.7699057459831238; +577.263916015625, -0.7700547575950623; +577.3638916015625, -0.7680505514144897; +577.4638671875, -0.7659196853637695; +577.5639038085938, -0.7661506533622742; +577.6638793945312, -0.7671043276786804; +577.7638549804688, -0.7679164409637451; +577.8638916015625, -0.769488513469696; +577.9638671875, -0.7716640830039978; +578.0638427734375, -0.7724910974502563; +578.163818359375, -0.7707104086875916; +578.2638549804688, -0.7681474089622498; +578.3638305664062, -0.7638335227966309; +578.4638061523438, -0.7569193840026855; +578.5638427734375, -0.7494315505027771; +578.663818359375, -0.744745135307312; +578.7637939453125, -0.7432848215103149; +578.8638305664062, -0.7432624697685242; +578.9638061523438, -0.7453933358192444; +579.0637817382812, -0.7493346929550171; +579.1637573242188, -0.75492262840271; +579.2637939453125, -0.7604584097862244; +579.36376953125, -0.7643252611160278; +579.4637451171875, -0.7666498422622681; +579.5637817382812, -0.7672235369682312; +579.6637573242188, -0.767730176448822; +579.7637329101562, -0.7679462432861328; +579.8637084960938, -0.7677748799324036; +579.9637451171875, -0.7674768567085266; +580.063720703125, -0.7666274905204773; +580.1636962890625, -0.7649362087249756; +580.2637329101562, -0.7627308368682861; +580.3637084960938, -0.7619932293891907; +580.4636840820312, -0.76284259557724; +580.563720703125, -0.7635653018951416; +580.6636962890625, -0.7638335227966309; +580.763671875, -0.7654502987861633; +580.8636474609375, -0.7689595222473145; +580.9636840820312, -0.7722675800323486; +581.0636596679688, -0.7732436060905457; +581.1636352539062, -0.7723942399024963; +581.263671875, -0.772230327129364; +581.3636474609375, -0.7738843560218811; +581.463623046875, -0.7767006754875183; +581.5636596679688, -0.7790103554725647; +581.6636352539062, -0.7800757884979248; +581.7636108398438, -0.7811561226844788; +581.8635864257812, -0.7814615964889526; +581.963623046875, -0.7810592651367188; +582.0635986328125, -0.780254602432251; +582.16357421875, -0.7792115211486816; +582.2636108398438, -0.7791221141815186; +582.3635864257812, -0.7794871926307678; +582.4635620117188, -0.7820352911949158; +582.5635986328125, -0.7854998111724854; +582.66357421875, -0.7877498865127563; +582.7635498046875, -0.7879287004470825; +582.863525390625, -0.7864013314247131; +582.9635620117188, -0.7857531309127808; +583.0635375976562, -0.7852315902709961; +583.1635131835938, -0.7834434509277344; +583.2635498046875, -0.7812082767486572; +583.363525390625, -0.7819384336471558; +583.4635009765625, -0.787392258644104; +583.5634765625, -0.7943287491798401; +583.6635131835938, -0.7985606789588928; +583.7634887695312, -0.7994323968887329; +583.8634643554688, -0.7982105016708374; +583.9635009765625, -0.7960647344589233; +584.0634765625, -0.7927045226097107; +584.1634521484375, -0.7890388369560242; +584.2634887695312, -0.7870122790336609; +584.3634643554688, -0.7890909910202026; +584.4634399414062, -0.7947087287902832; +584.5634155273438, -0.799030065536499; +584.6634521484375, -0.7970184087753296; +584.763427734375, -0.7887408137321472; +584.8634033203125, -0.7788240909576416; +584.9634399414062, -0.7698461413383484; +585.0634155273438, -0.7621124386787415; +585.1633911132812, -0.7566437125205994; +585.263427734375, -0.7580220699310303; +585.3634033203125, -0.7664859294891357; +585.46337890625, -0.7781088352203369; +585.5633544921875, -0.7879212498664856; +585.6633911132812, -0.7934719324111938; +585.7633666992188, -0.796101987361908; +585.8633422851562, -0.7964000105857849; +585.96337890625, -0.7956176996231079; +586.0633544921875, -0.7935389876365662; +586.163330078125, -0.7912516593933105; +586.2633666992188, -0.7897093892097473; +586.3633422851562, -0.7891878485679626; +586.4633178710938, -0.7893666625022888; +586.5632934570312, -0.7899254560470581; +586.663330078125, -0.7906705141067505; +586.7633056640625, -0.7898509502410889; +586.86328125, -0.7873401045799255; +586.9633178710938, -0.7837191224098206; +587.0632934570312, -0.7797926664352417; +587.1632690429688, -0.775068998336792; +587.2633056640625, -0.7705762982368469; +587.36328125, -0.768609344959259; +587.4632568359375, -0.770077109336853; +587.563232421875, -0.7722601294517517; +587.6632690429688, -0.7725730538368225; +587.7632446289062, -0.7724389433860779; +587.8632202148438, -0.7724165916442871; +587.9632568359375, -0.7717907428741455; +588.063232421875, -0.768907368183136; +588.1632080078125, -0.7651820778846741; +588.26318359375, -0.7606968283653259; +588.3632202148438, -0.7549524307250977; +588.4631958007812, -0.7494240999221802; +588.5631713867188, -0.745631754398346; +588.6632080078125, -0.7436498999595642; +588.76318359375, -0.7430016994476318; +588.8631591796875, -0.7445141673088074; +588.9631958007812, -0.746600329875946; +589.0631713867188, -0.7470250129699707; +589.1631469726562, -0.7453560829162598; +589.2631225585938, -0.7421374320983887; +589.3631591796875, -0.7377564907073975; +589.463134765625, -0.7332637906074524; +589.5631103515625, -0.730372965335846; +589.6631469726562, -0.7284581661224365; +589.7631225585938, -0.7257834076881409; +589.8630981445312, -0.7234513759613037; +589.963134765625, -0.7215514779090881; +590.0631103515625, -0.7197633385658264; +590.1630859375, -0.7166936993598938; +590.2630615234375, -0.7128119468688965; +590.3630981445312, -0.708162784576416; +590.4630737304688, -0.7025748491287231; +590.5630493164062, -0.6969273090362549; +590.6630859375, -0.6901547312736511; +590.7630615234375, -0.6821751594543457; +590.863037109375, -0.6733611226081848; +590.9630737304688, -0.6662085652351379; +591.0630493164062, -0.6614550948143005; +591.1630249023438, -0.6584227085113525; +591.2630004882812, -0.6566122174263; +591.363037109375, -0.6546303629875183; +591.4630126953125, -0.6509870290756226; +591.56298828125, -0.6447881460189819; +591.6630249023438, -0.6375983357429504; +591.7630004882812, -0.6309673190116882; +591.8629760742188, -0.6241127848625183; +591.9629516601562, -0.6171539425849915; +592.06298828125, -0.6121024489402771; +592.1629638671875, -0.6092935800552368; +592.262939453125, -0.6052851676940918; +592.3629760742188, -0.5985498428344727; +592.4629516601562, -0.591963529586792; +592.5629272460938, -0.5874335765838623; +592.6629638671875, -0.5826428532600403; +592.762939453125, -0.5762726068496704; +592.8629150390625, -0.5697086453437805; +592.962890625, -0.5642399191856384; +593.0629272460938, -0.5586519837379456; +593.1629028320312, -0.5512535572052002; +593.2628784179688, -0.5408674478530884; +593.3629150390625, -0.5266815423965454; +593.462890625, -0.510096549987793; +593.5628662109375, -0.4924461245536804; +593.6629028320312, -0.47513097524642944; +593.7628784179688, -0.45964866876602173; +593.8628540039062, -0.44877827167510986; +593.9628295898438, -0.44364482164382935; +594.0628662109375, -0.4398748278617859; +594.162841796875, -0.4331916570663452; +594.2628173828125, -0.42288005352020264; +594.3628540039062, -0.4097670316696167; +594.4628295898438, -0.39342790842056274; +594.5628051757812, -0.3735050559043884; +594.662841796875, -0.3537684679031372; +594.7628173828125, -0.33614039421081543; +594.86279296875, -0.31885504722595215; +594.9627685546875, -0.3003031015396118; +595.0628051757812, -0.282779335975647; +595.1627807617188, -0.2687498927116394; +595.2627563476562, -0.2567395567893982; +595.36279296875, -0.2436712384223938; +595.4627685546875, -0.2301633358001709; +595.562744140625, -0.2174675464630127; +595.6627807617188, -0.20366907119750977; +595.7627563476562, -0.18440186977386475; +595.8627319335938, -0.16079097986221313; +595.9627075195312, -0.1370459794998169; +596.062744140625, -0.11282414197921753; +596.1627197265625, -0.08608400821685791; +596.2626953125, -0.056996941566467285; +596.3627319335938, -0.029228627681732178; +596.4627075195312, -0.00225752592086792; +596.5626831054688, 0.025957822799682617; +596.6626586914062, 0.05523115396499634; +596.7626953125, 0.08488446474075317; +596.8626708984375, 0.11379271745681763; +596.962646484375, 0.14212727546691895; +597.0626831054688, 0.17146766185760498; +597.1626586914062, 0.20271539688110352; +597.2626342773438, 0.23534148931503296; +597.3626708984375, 0.26760250329971313; +597.462646484375, 0.3001689910888672; +597.5626220703125, 0.33517926931381226; +597.66259765625, 0.373058021068573; +597.7626342773438, 0.4130452871322632; +597.8626098632812, 0.45405328273773193; +597.9625854492188, 0.49749016761779785; +598.0626220703125, 0.5447790026664734; +598.16259765625, 0.5966201424598694; +598.2625732421875, 0.6512999534606934; +598.3626098632812, 0.7093027234077454; +598.4625854492188, 0.7712393999099731; +598.5625610351562, 0.835910439491272; +598.6625366210938, 0.9016022086143494; +598.7625732421875, 0.9682998061180115; +598.862548828125, 1.0381191968917847; +598.9625244140625, 1.1100993156433105; +599.0625610351562, 1.1841580867767334; +599.1625366210938, 1.2602732181549072; +599.2625122070312, 1.3391971588134766; +599.362548828125, 1.4187544584274292; +599.4625244140625, 1.4967620372772217; +599.5625, 1.574978232383728; +599.6624755859375, 1.6542673110961914; +599.7625122070312, 1.727931261062622; +599.8624877929688, 1.765027642250061; +##END= + +$$ === CHEMSPECTRA INTEGRALS AND MULTIPLETS === +##PAGE=366.0 +##$OBSERVEDINTEGRALS= (X Y Z) +##$OBSERVEDMULTIPLETS= +##$OBSERVEDMULTIPLETSPEAKS= +##END= + +$$ === CHEMSPECTRA PEAK TABLE EDIT === +##TITLE=908f81fc-5890-4b40-b630-40c8c39f2c97 +##JCAMP-DX=5.00 +##DATA TYPE=LC/MSPEAKTABLE +##DATA CLASS=PEAKTABLE +##$CSCATEGORY=EDIT_PEAK +##$CSTHRESHOLD=0.05 +##MAXX=599.8624877929688 +##MAXY=5.573801517486572 +##MINX=0.0 +##MINY=-4.141569137573242 +##PAGE=366.0 +##NPOINTS=0 +##PEAKTABLE= (XY..XY) +##END= + +$$ === CHEMSPECTRA PEAK TABLE AUTO === +##TITLE=908f81fc-5890-4b40-b630-40c8c39f2c97 +##JCAMP-DX=5.00 +##DATA TYPE=LC/MSPEAKTABLE +##DATA CLASS=PEAKTABLE +##$CSCATEGORY=AUTO_PEAK +##$CSTHRESHOLD=0.05 +##MAXX=599.8624877929688 +##MAXY=5.573801517486572 +##MINX=0.0 +##MINY=-4.141569137573242 +##PAGE=366.0 +##NPOINTS=8 +##PEAKTABLE= (XY..XY) +55.29654312133789, 5.573801517486572 +84.99468231201172, 4.536792755126953 +59.29629135131836, 3.3202171325683594 +438.7725524902344, 3.074519395828247 +71.09555053710938, 2.3794918060302734 +52.69670486450195, 2.0292773246765137 +61.49615478515625, 1.6777068376541138 +68.99568176269531, 1.6013383865356445 +##END= + +$$ === CHEMSPECTRA UVVIS PEAK TABLE === +##TITLE=908f81fc-5890-4b40-b630-40c8c39f2c97 +##JCAMP-DX=5.00 +##DATA TYPE=LC/MS +##DATA CLASS=PEAK TABLE +##ORIGIN= +##OWNER= +##XUNITS=RETENTION TIME +##YUNITS=DETECTOR SIGNAL +##$CSCATEGORY=UVVIS PEAK TABLE +##PAGE=450.0 +##NPOINTS=6000 +##DATA TABLE= (XY..XY), PEAKS +0.0, -0.038370490074157715; +0.0999937504529953, -0.04165619611740112; +0.1999875009059906, -0.04442781209945679; +0.2999812364578247, -0.046350061893463135; +0.3999750018119812, -0.04608184099197388; +0.4999687373638153, -0.043936073780059814; +0.5999624729156494, -0.04199892282485962; +0.6999562382698059, -0.042438507080078125; +0.7999500036239624, -0.04439800977706909; +0.8999437093734741, -0.04474073648452759; +0.9999374747276306, -0.042922794818878174; +1.099931240081787, -0.03906339406967163; +1.1999249458312988, -0.03413856029510498; +1.2999186515808105, -0.03045797348022461; +1.3999124765396118, -0.030599534511566162; +1.4999061822891235, -0.03582984209060669; +1.5999000072479248, -0.042572617530822754; +1.6998937129974365, -0.04894286394119263; +1.7998874187469482, -0.05641579627990723; +1.8998812437057495, -0.06354600191116333; +1.9998749494552612, -0.06783008575439453; +2.0998687744140625, -0.06759166717529297; +2.199862480163574, -0.06525963544845581; +2.299856185913086, -0.06333738565444946; +2.3998498916625977, -0.06052851676940918; +2.4998435974121094, -0.059157609939575195; +2.599837303161621, -0.05854666233062744; +2.699831247329712, -0.05782395601272583; +2.7998249530792236, -0.05584210157394409; +2.8998186588287354, -0.053398311138153076; +2.999812364578247, -0.05085021257400513; +3.099806070327759, -0.0453069806098938; +3.1998000144958496, -0.03895163536071777; +3.2997937202453613, -0.034689903259277344; +3.399787425994873, -0.03509223461151123; +3.4997811317443848, -0.038407742977142334; +3.5997748374938965, -0.042907893657684326; +3.699768543243408, -0.04688650369644165; +3.799762487411499, -0.046975910663604736; +3.8997561931610107, -0.044442713260650635; +3.9997498989105225, -0.041484832763671875; +4.099743843078613, -0.038854777812957764; +4.199737548828125, -0.03678351640701294; +4.299731254577637, -0.03583729267120361; +4.399724960327148, -0.0391155481338501; +4.49971866607666, -0.04538893699645996; +4.599712371826172, -0.05141645669937134; +4.699706077575684, -0.05687028169631958; +4.799699783325195, -0.06169825792312622; +4.899693489074707, -0.06490945816040039; +4.999687194824219, -0.06391853094100952; +5.0996809005737305, -0.05777180194854736; +5.199674606323242, -0.04798918962478638; +5.299668788909912, -0.03916025161743164; +5.399662494659424, -0.03364682197570801; +5.4996562004089355, -0.03167241811752319; +5.599649906158447, -0.030606985092163086; +5.699643611907959, -0.029549002647399902; +5.799637317657471, -0.03080815076828003; +5.899631023406982, -0.03319978713989258; +5.999624729156494, -0.034831464290618896; +6.099618434906006, -0.035099685192108154; +6.199612140655518, -0.036247074604034424; +6.299605846405029, -0.04015117883682251; +6.399600028991699, -0.044383108615875244; +6.499593734741211, -0.047557055950164795; +6.599587440490723, -0.04971027374267578; +6.699581146240234, -0.05188584327697754; +6.799574851989746, -0.05540996789932251; +6.899568557739258, -0.05990266799926758; +6.9995622634887695, -0.06462633609771729; +7.099555969238281, -0.0666007399559021; +7.199549674987793, -0.06576627492904663; +7.299543380737305, -0.06362795829772949; +7.399537086486816, -0.06058812141418457; +7.499530792236328, -0.05762279033660889; +7.599524974822998, -0.054620206356048584; +7.69951868057251, -0.053182244300842285; +7.7995123863220215, -0.05229562520980835; +7.899506092071533, -0.0510290265083313; +7.999499797821045, -0.05078315734863281; +8.099493026733398, -0.05049258470535278; +8.199487686157227, -0.05025416612625122; +8.299481391906738, -0.04973262548446655; +8.39947509765625, -0.05075335502624512; +8.499468803405762, -0.053159892559051514; +8.599462509155273, -0.05529075860977173; +8.699456214904785, -0.057309865951538086; +8.799449920654297, -0.060245394706726074; +8.899443626403809, -0.06412714719772339; +8.99943733215332, -0.06554275751113892; +9.099431037902832, -0.0636950135231018; +9.199424743652344, -0.058457255363464355; +9.299418449401855, -0.05183368921279907; +9.399412155151367, -0.046558678150177; +9.499405860900879, -0.04407763481140137; +9.59939956665039, -0.046193599700927734; +9.699393272399902, -0.051155686378479004; +9.799386978149414, -0.058144330978393555; +9.899380683898926, -0.0672563910484314; +9.999374389648438, -0.07614493370056152; +10.09936809539795, -0.08265674114227295; +10.199361801147461, -0.08477270603179932; +10.299355506896973, -0.08472800254821777; +10.399349212646484, -0.08422881364822388; +10.499343872070312, -0.08211284875869751; +10.599337577819824, -0.07834285497665405; +10.699331283569336, -0.07477402687072754; +10.799324989318848, -0.07408857345581055; +10.89931869506836, -0.0758245587348938; +10.999312400817871, -0.07691234350204468; +11.099306106567383, -0.07558614015579224; +11.199299812316895, -0.07207691669464111; +11.299293518066406, -0.069446861743927; +11.399287223815918, -0.06951391696929932; +11.49928092956543, -0.07014721632003784; +11.599274635314941, -0.0699758529663086; +11.699268341064453, -0.0694766640663147; +11.799262046813965, -0.06998330354690552; +11.899255752563477, -0.07018446922302246; +11.999249458312988, -0.06779283285140991; +12.0992431640625, -0.06490945816040039; +12.199236869812012, -0.06490200757980347; +12.299230575561523, -0.0691637396812439; +12.399224281311035, -0.07623434066772461; +12.499217987060547, -0.08232146501541138; +12.599211692810059, -0.0863000750541687; +12.69920539855957, -0.08874386548995972; +12.799200057983398, -0.08971989154815674; +12.89919376373291, -0.08848309516906738; +12.999187469482422, -0.08296966552734375; +13.099181175231934, -0.07567554712295532; +13.199174880981445, -0.07060915231704712; +13.299168586730957, -0.06911158561706543; +13.399162292480469, -0.07095932960510254; +13.49915599822998, -0.07385760545730591; +13.599149703979492, -0.07832050323486328; +13.699143409729004, -0.08451193571090698; +13.799137115478516, -0.0904574990272522; +13.899130821228027, -0.09484589099884033; +13.999124526977539, -0.09655952453613281; +14.09911823272705, -0.09675323963165283; +14.199111938476562, -0.0966489315032959; +14.299105644226074, -0.09796768426895142; +14.399099349975586, -0.10142475366592407; +14.499093055725098, -0.10495632886886597; +14.59908676147461, -0.10661035776138306; +14.699080467224121, -0.10804831981658936; +14.799074172973633, -0.10986626148223877; +14.899067878723145, -0.10825693607330322; +14.999061584472656, -0.10169297456741333; +15.099056243896484, -0.09483098983764648; +15.199049949645996, -0.09313225746154785; +15.299043655395508, -0.09372085332870483; +15.39903736114502, -0.093020498752594; +15.499031066894531, -0.09149312973022461; +15.599024772644043, -0.09054690599441528; +15.699018478393555, -0.0874549150466919; +15.799012184143066, -0.07873773574829102; +15.899005889892578, -0.06875395774841309; +15.99899959564209, -0.06210058927536011; +16.0989933013916, -0.06002187728881836; +16.198986053466797, -0.05968660116195679; +16.298980712890625, -0.05945563316345215; +16.398975372314453, -0.06037205457687378; +16.49896812438965, -0.06239861249923706; +16.598962783813477, -0.0634118914604187; +16.698955535888672, -0.06017833948135376; +16.7989501953125, -0.05459040403366089; +16.898942947387695, -0.049524009227752686; +16.998937606811523, -0.0469014048576355; +17.09893035888672, -0.044189393520355225; +17.198925018310547, -0.04233419895172119; +17.298917770385742, -0.04427134990692139; +17.39891242980957, -0.04713982343673706; +17.498905181884766, -0.0500604510307312; +17.598899841308594, -0.05383044481277466; +17.69889259338379, -0.06054341793060303; +17.798887252807617, -0.06787478923797607; +17.898880004882812, -0.07300078868865967; +17.99887466430664, -0.07782876491546631; +18.098867416381836, -0.08229166269302368; +18.198862075805664, -0.08474290370941162; +18.29885482788086, -0.08446723222732544; +18.398849487304688, -0.08249282836914062; +18.498842239379883, -0.08072704076766968; +18.59883689880371, -0.08079409599304199; +18.69883155822754, -0.08270144462585449; +18.798824310302734, -0.08535385131835938; +18.898818969726562, -0.08707493543624878; +18.998811721801758, -0.08971244096755981; +19.098806381225586, -0.09530782699584961; +19.19879913330078, -0.10161846876144409; +19.29879379272461, -0.10605156421661377; +19.398786544799805, -0.10674446821212769; +19.498781204223633, -0.10463595390319824; +19.598773956298828, -0.09984523057937622; +19.698768615722656, -0.0926777720451355; +19.79876136779785, -0.08456408977508545; +19.89875602722168, -0.07717311382293701; +19.998748779296875, -0.07347762584686279; +20.098743438720703, -0.07453560829162598; +20.1987361907959, -0.078544020652771; +20.298730850219727, -0.08118897676467896; +20.398723602294922, -0.08176267147064209; +20.49871826171875, -0.08343905210494995; +20.598711013793945, -0.08615851402282715; +20.698705673217773, -0.08788704872131348; +20.79869842529297, -0.08629262447357178; +20.898693084716797, -0.08458644151687622; +20.998687744140625, -0.08527934551239014; +21.09868049621582, -0.085391104221344; +21.19867515563965, -0.08250027894973755; +21.298667907714844, -0.07731467485427856; +21.398662567138672, -0.07385015487670898; +21.498655319213867, -0.07277727127075195; +21.598649978637695, -0.07257610559463501; +21.69864273071289, -0.073947012424469; +21.79863739013672, -0.07794052362442017; +21.898630142211914, -0.08272379636764526; +21.998624801635742, -0.08498132228851318; +22.098617553710938, -0.08319318294525146; +22.198612213134766, -0.07761269807815552; +22.29860496520996, -0.0711977481842041; +22.39859962463379, -0.06581097841262817; +22.498592376708984, -0.06292015314102173; +22.598587036132812, -0.06323307752609253; +22.698579788208008, -0.06674230098724365; +22.798574447631836, -0.07509440183639526; +22.89856719970703, -0.08448213338851929; +22.99856185913086, -0.091552734375; +23.098554611206055, -0.09546428918838501; +23.198549270629883, -0.09772926568984985; +23.29854393005371, -0.1004934310913086; +23.398536682128906, -0.10149925947189331; +23.498531341552734, -0.10022521018981934; +23.59852409362793, -0.09834021329879761; +23.698518753051758, -0.09842216968536377; +23.798511505126953, -0.10066479444503784; +23.89850616455078, -0.10161101818084717; +23.998498916625977, -0.10102242231369019; +24.098493576049805, -0.09991228580474854; +24.198486328125, -0.09935349225997925; +24.298480987548828, -0.09769946336746216; +24.398473739624023, -0.09413808584213257; +24.49846839904785, -0.09094178676605225; +24.598461151123047, -0.08954852819442749; +24.698455810546875, -0.09068846702575684; +24.79844856262207, -0.09138882160186768; +24.8984432220459, -0.08986890316009521; +24.998435974121094, -0.08743256330490112; +25.098430633544922, -0.084705650806427; +25.198423385620117, -0.08172541856765747; +25.298418045043945, -0.07766485214233398; +25.39841079711914, -0.07600337266921997; +25.49840545654297, -0.07953494787216187; +25.598400115966797, -0.08615851402282715; +25.698392868041992, -0.09323656558990479; +25.79838752746582, -0.09898096323013306; +25.898380279541016, -0.1029670238494873; +25.998374938964844, -0.10233372449874878; +26.09836769104004, -0.0965222716331482; +26.198362350463867, -0.08884817361831665; +26.298355102539062, -0.08272379636764526; +26.39834976196289, -0.08001178503036499; +26.498342514038086, -0.08050352334976196; +26.598337173461914, -0.08394569158554077; +26.69832992553711, -0.08865445852279663; +26.798324584960938, -0.09352713823318481; +26.898317337036133, -0.09814649820327759; +26.99831199645996, -0.1006200909614563; +27.098304748535156, -0.09959936141967773; +27.198299407958984, -0.09695440530776978; +27.29829216003418, -0.09542703628540039; +27.398286819458008, -0.09480863809585571; +27.498279571533203, -0.09275972843170166; +27.59827423095703, -0.08913129568099976; +27.698266983032227, -0.08583813905715942; +27.798261642456055, -0.08291751146316528; +27.898256301879883, -0.08133798837661743; +27.998249053955078, -0.0815168023109436; +28.098243713378906, -0.08272379636764526; +28.1982364654541, -0.08255243301391602; +28.29823112487793, -0.08232146501541138; +28.398223876953125, -0.08486956357955933; +28.498218536376953, -0.08884072303771973; +28.59821128845215, -0.09038299322128296; +28.698205947875977, -0.09004026651382446; +28.798198699951172, -0.09307265281677246; +28.898193359375, -0.0990554690361023; +28.998186111450195, -0.10341405868530273; +29.098180770874023, -0.1039355993270874; +29.19817352294922, -0.1026839017868042; +29.298168182373047, -0.1007765531539917; +29.398160934448242, -0.0966489315032959; +29.49815559387207, -0.09118020534515381; +29.598148345947266, -0.08653849363327026; +29.698143005371094, -0.08387118577957153; +29.79813575744629, -0.08424371480941772; +29.898130416870117, -0.08884817361831665; +29.998123168945312, -0.09685009717941284; +30.09811782836914, -0.10460615158081055; +30.19811248779297, -0.10970234870910645; +30.298105239868164, -0.11289119720458984; +30.398099899291992, -0.1145973801612854; +30.498092651367188, -0.11467188596725464; +30.598087310791016, -0.11236965656280518; +30.69808006286621, -0.10721385478973389; +30.79807472229004, -0.10039657354354858; +30.898067474365234, -0.0940561294555664; +30.998062133789062, -0.09004026651382446; +31.098054885864258, -0.0874251127243042; +31.198049545288086, -0.08573383092880249; +31.29804229736328, -0.08738040924072266; +31.39803695678711, -0.09336322546005249; +31.498029708862305, -0.09958446025848389; +31.598024368286133, -0.10245293378829956; +31.698017120361328, -0.10199844837188721; +31.798011779785156, -0.10169297456741333; +31.89800453186035, -0.10211765766143799; +31.99799919128418, -0.10264664888381958; +32.097991943359375, -0.10348856449127197; +32.1979866027832, -0.10339915752410889; +32.29798126220703, -0.10181963443756104; +32.397972106933594, -0.09848922491073608; +32.49796676635742, -0.09579211473464966; +32.59796142578125, -0.09369850158691406; +32.69795608520508, -0.09292364120483398; +32.797950744628906, -0.09439140558242798; +32.89794158935547, -0.09695440530776978; +32.9979362487793, -0.09909272193908691; +33.097930908203125, -0.09904056787490845; +33.19792556762695, -0.09863823652267456; +33.297916412353516, -0.09772181510925293; +33.397911071777344, -0.09576976299285889; +33.49790573120117, -0.0937432050704956; +33.597900390625, -0.09318441152572632; +33.69789123535156, -0.09419023990631104; +33.79788589477539, -0.09527057409286499; +33.89788055419922, -0.09675323963165283; +33.99787521362305, -0.0994950532913208; +34.09786605834961, -0.10477006435394287; +34.19786071777344, -0.11099874973297119; +34.297855377197266, -0.11605024337768555; +34.397850036621094, -0.11826306581497192; +34.497840881347656, -0.1172870397567749; +34.597835540771484, -0.11492520570755005; +34.69783020019531, -0.11043250560760498; +34.79782485961914, -0.10535866022109985; +34.89781951904297, -0.10161101818084717; +34.99781036376953, -0.10147690773010254; +35.09780502319336, -0.10547786951065063; +35.19779968261719, -0.11158734560012817; +35.297794342041016, -0.11827796697616577; +35.39778518676758, -0.12214481830596924; +35.497779846191406, -0.12197345495223999; +35.597774505615234, -0.11914223432540894; +35.69776916503906, -0.11520832777023315; +35.797760009765625, -0.11207163333892822; +35.89775466918945, -0.11153519153594971; +35.99774932861328, -0.1125633716583252; +36.09774398803711, -0.11329352855682373; +36.19773483276367, -0.11248141527175903; +36.2977294921875, -0.11151283979415894; +36.39772415161133, -0.11061131954193115; +36.497718811035156, -0.10777264833450317; +36.59770965576172, -0.10576844215393066; +36.69770431518555, -0.10787695646286011; +36.797698974609375, -0.1131594181060791; +36.8976936340332, -0.11926144361495972; +36.997684478759766, -0.12376159429550171; +37.097679138183594, -0.12689828872680664; +37.19767379760742, -0.12876838445663452; +37.29766845703125, -0.12912601232528687; +37.39766311645508, -0.12936443090438843; +37.49765396118164, -0.128038227558136; +37.59764862060547, -0.12448430061340332; +37.6976432800293, -0.11986494064331055; +37.797637939453125, -0.11643767356872559; +37.89762878417969, -0.11442601680755615; +37.997623443603516, -0.11099874973297119; +38.097618103027344, -0.10594725608825684; +38.19761276245117, -0.10246783494949341; +38.297603607177734, -0.10219961404800415; +38.39759826660156, -0.10352581739425659; +38.49759292602539, -0.10370463132858276; +38.59758758544922, -0.10272860527038574; +38.69757843017578, -0.10301172733306885; +38.79757308959961, -0.10485202074050903; +38.89756774902344, -0.10644644498825073; +38.997562408447266, -0.10520219802856445; +39.09755325317383, -0.10281801223754883; +39.197547912597656, -0.1028105616569519; +39.297542572021484, -0.10407716035842896; +39.39753723144531, -0.10533630847930908; +39.49753189086914, -0.10617822408676147; +39.5975227355957, -0.10858476161956787; +39.69751739501953, -0.11192262172698975; +39.79751205444336, -0.11424720287322998; +39.89750671386719, -0.11535733938217163; +39.99749755859375, -0.11497735977172852; +40.09749221801758, -0.11360645294189453; +40.197486877441406, -0.11088699102401733; +40.297481536865234, -0.10792911052703857; +40.3974723815918, -0.1052170991897583; +40.497467041015625, -0.10482221841812134; +40.59746170043945, -0.10727345943450928; +40.69745635986328, -0.11085718870162964; +40.797447204589844, -0.11374801397323608; +40.89744186401367, -0.11582672595977783; +40.9974365234375, -0.12036412954330444; +41.09743118286133, -0.12574344873428345; +41.19742202758789, -0.1292899250984192; +41.29741668701172, -0.1298859715461731; +41.39741134643555, -0.1292303204536438; +41.497406005859375, -0.12825429439544678; +41.59739685058594, -0.12367218732833862; +41.697391510009766, -0.11669844388961792; +41.797386169433594, -0.10940432548522949; +41.89738082885742, -0.10434538125991821; +41.99737548828125, -0.10245293378829956; +42.09736633300781, -0.1028701663017273; +42.19736099243164, -0.10582059621810913; +42.29735565185547, -0.11006742715835571; +42.3973503112793, -0.11616945266723633; +42.49734115600586, -0.12246519327163696; +42.59733581542969, -0.12668222188949585; +42.697330474853516, -0.12830644845962524; +42.797325134277344, -0.1281946897506714; +42.897315979003906, -0.12665241956710815; +42.997310638427734, -0.12326985597610474; +43.09730529785156, -0.1203194260597229; +43.19729995727539, -0.11866539716720581; +43.29729080200195, -0.11796504259109497; +43.39728546142578, -0.11726468801498413; +43.49728012084961, -0.11701881885528564; +43.59727478027344, -0.11598318815231323; +43.697265625, -0.11324882507324219; +43.79726028442383, -0.11099874973297119; +43.897254943847656, -0.1113787293434143; +43.997249603271484, -0.11338293552398682; +44.09724426269531, -0.11254847049713135; +44.197235107421875, -0.11043250560760498; +44.2972297668457, -0.11116266250610352; +44.39722442626953, -0.11594593524932861; +44.49721908569336, -0.12131035327911377; +44.59720993041992, -0.12294203042984009; +44.69720458984375, -0.1255124807357788; +44.79719924926758, -0.13013184070587158; +44.897193908691406, -0.1337602734565735; +44.99718475341797, -0.13285130262374878; +45.0971794128418, -0.12892484664916992; +45.197174072265625, -0.12730807065963745; +45.29716873168945, -0.12681633234024048; +45.397159576416016, -0.1263841986656189; +45.497154235839844, -0.12505054473876953; +45.59714889526367, -0.12356042861938477; +45.6971435546875, -0.12154132127761841; +45.79713439941406, -0.12049078941345215; +45.89712905883789, -0.12051314115524292; +45.99712371826172, -0.12090802192687988; +46.09711837768555, -0.12254714965820312; +46.19710922241211, -0.12505054473876953; +46.29710388183594, -0.12775510549545288; +46.397098541259766, -0.12868642807006836; +46.497093200683594, -0.12925267219543457; +46.59708786010742, -0.1299157738685608; +46.697078704833984, -0.12961030006408691; +46.79707336425781, -0.12980401515960693; +46.89706802368164, -0.13221800327301025; +46.99706268310547, -0.1358315348625183; +47.09705352783203, -0.13776123523712158; +47.19704818725586, -0.1370832324028015; +47.29704284667969, -0.13396143913269043; +47.397037506103516, -0.12747198343276978; +47.49702835083008, -0.11897832155227661; +47.597023010253906, -0.11194497346878052; +47.697017669677734, -0.10845810174942017; +47.79701232910156, -0.10742247104644775; +47.897003173828125, -0.10851770639419556; +47.99699783325195, -0.11231005191802979; +48.09699249267578, -0.11888891458511353; +48.19698715209961, -0.12546777725219727; +48.29697799682617, -0.1298859715461731; +48.39697265625, -0.13212859630584717; +48.49696731567383, -0.1322031021118164; +48.596961975097656, -0.13084709644317627; +48.696956634521484, -0.12787431478500366; +48.79694747924805, -0.12455135583877563; +48.896942138671875, -0.1214742660522461; +48.9969367980957, -0.11884421110153198; +49.09693145751953, -0.11740624904632568; +49.196922302246094, -0.11865794658660889; +49.29691696166992, -0.12136250734329224; +49.39691162109375, -0.12334436178207397; +49.49690628051758, -0.12345612049102783; +49.59689712524414, -0.12364238500595093; +49.69689178466797, -0.12459605932235718; +49.7968864440918, -0.12357532978057861; +49.896881103515625, -0.12258440256118774; +49.99687194824219, -0.12375414371490479; +50.096866607666016, -0.12777000665664673; +50.196861267089844, -0.1315772533416748; +50.29685592651367, -0.13446062803268433; +50.396846771240234, -0.1378282904624939; +50.49684143066406, -0.13905763626098633; +50.59683609008789, -0.13528019189834595; +50.69683074951172, -0.1273825764656067; +50.79682159423828, -0.12051314115524292; +50.89681625366211, -0.11686980724334717; +50.99681091308594, -0.11502206325531006; +51.096805572509766, -0.11479109525680542; +51.196800231933594, -0.11843442916870117; +51.296791076660156, -0.12534111738204956; +51.396785736083984, -0.12715160846710205; +51.49678039550781, -0.10489672422409058; +51.59677505493164, -0.031791627407073975; +51.6967658996582, 0.11871755123138428; +51.79676055908203, 0.3534480929374695; +51.89675521850586, 0.6560832262039185; +51.99674987792969, 0.9970143437385559; +52.09674072265625, 1.3438687324523926; +52.19673538208008, 1.6651525497436523; +52.296730041503906, 1.932509183883667; +52.396724700927734, 2.137519359588623; +52.4967155456543, 2.282902717590332; +52.596710205078125, 2.3761539459228516; +52.69670486450195, 2.423226833343506; +52.79669952392578, 2.4313106536865234; +52.896690368652344, 2.411141872406006; +52.99668502807617, 2.3707077503204346; +53.0966796875, 2.326145648956299; +53.19667434692383, 2.30411434173584; +53.296669006347656, 2.340421199798584; +53.39665985107422, 2.46390700340271; +53.49665451049805, 2.678781747817993; +53.596649169921875, 2.9700324535369873; +53.6966438293457, 3.3195390701293945; +53.796634674072266, 3.707751750946045; +53.896629333496094, 4.087053298950195; +53.99662399291992, 4.390403747558594; +54.09661865234375, 4.577651500701904; +54.19660949707031, 4.657290935516357; +54.29660415649414, 4.661060810089111; +54.39659881591797, 4.61284065246582; +54.4965934753418, 4.537858009338379; +54.59658432006836, 4.472352504730225; +54.69657897949219, 4.446946144104004; +54.796573638916016, 4.4753031730651855; +54.896568298339844, 4.555150985717773; +54.996559143066406, 4.6753363609313965; +55.096553802490234, 4.821806907653809; +55.19654846191406, 4.962362289428711; +55.29654312133789, 5.038879871368408; +55.39653396606445, 4.9705281257629395; +55.49652862548828, 4.68120002746582; +55.59652328491211, 4.138246059417725; +55.69651794433594, 3.366440534591675; +55.796512603759766, 2.444706916809082; +55.89650344848633, 1.4814287424087524; +55.996498107910156, 0.5851313471794128; +56.096492767333984, -0.15438348054885864; +56.19648742675781, -0.6873011589050293; +56.296478271484375, -1.018911600112915; +56.3964729309082, -1.1948943138122559; +56.49646759033203, -1.2707934379577637; +56.59646224975586, -1.2909024953842163; +56.69645309448242, -1.2882649898529053; +56.79644775390625, -1.2878551483154297; +56.89644241333008, -1.3011544942855835; +56.996437072753906, -1.333467721939087; +57.09642791748047, -1.3922899961471558; +57.1964225769043, -1.483336091041565; +57.296417236328125, -1.603245735168457; +57.39641189575195, -1.7373710870742798; +57.496402740478516, -1.8631742000579834; +57.596397399902344, -1.9558072090148926; +57.69639205932617, -1.9905418157577515; +57.79638671875, -1.9540488719940186; +57.89637756347656, -1.854412317276001; +57.99637222290039, -1.7237663269042969; +58.09636688232422, -1.598358154296875; +58.19636154174805, -1.4899224042892456; +58.296356201171875, -1.37367844581604; +58.39634704589844, -1.1977404356002808; +58.496341705322266, -0.9091943502426147; +58.596336364746094, -0.4634186625480652; +58.69633102416992, 0.1556798815727234; +58.796321868896484, 0.9095817804336548; +58.89631652832031, 1.702345848083496; +58.99631118774414, 2.415046215057373; +59.09630584716797, 2.957768678665161; +59.19629669189453, 3.2847747802734375; +59.29629135131836, 3.389559745788574; +59.39628601074219, 3.3029987812042236; +59.496280670166016, 3.0845775604248047; +59.59627151489258, 2.8005316257476807; +59.696266174316406, 2.4970993995666504; +59.796260833740234, 2.1968557834625244; +59.89625549316406, 1.9093677997589111; +59.996246337890625, 1.6420185565948486; +60.09624099731445, 1.4006048440933228; +60.19623565673828, 1.1882930994033813; +60.29623031616211, 1.0117292404174805; +60.39622497558594, 0.8777007460594177; +60.4962158203125, 0.7887855172157288; +60.59621047973633, 0.7416009902954102; +60.696205139160156, 0.7301643490791321; +60.796199798583984, 0.7545053958892822; +60.89619064331055, 0.8152797818183899; +60.996185302734375, 0.9194463491439819; +61.0961799621582, 1.0822862386703491; +61.19617462158203, 1.3136714696884155; +61.296165466308594, 1.5880167484283447; +61.39616012573242, 1.8148422241210938; +61.49615478515625, 1.870192527770996; +61.59614944458008, 1.6580893993377686; +61.69614028930664, 1.149810791015625; +61.79613494873047, 0.37970393896102905; +61.8961296081543, -0.5624517798423767; +61.996124267578125, -1.5308409929275513; +62.09611511230469, -2.3622214794158936; +62.196109771728516, -2.942845344543457; +62.296104431152344, -3.2508671283721924; +62.39609909057617, -3.3386497497558594; +62.496089935302734, -3.290839433670044; +62.59608459472656, -3.1876637935638428; +62.69607925415039, -3.0821785926818848; +62.79607391357422, -2.9933600425720215; +62.89606857299805, -2.9098615646362305; +62.99605941772461, -2.8044283390045166; +63.09605407714844, -2.6476755142211914; +63.196048736572266, -2.422422170639038; +63.296043395996094, -2.134852170944214; +63.396034240722656, -1.8260478973388672; +63.496028900146484, -1.5622079372406006; +63.59602355957031, -1.4067888259887695; +63.69601821899414, -1.3901591300964355; +63.7960090637207, -1.5017316341400146; +63.89600372314453, -1.7033741474151611; +63.99599838256836, -1.9375755786895752; +64.09599304199219, -2.1400675773620605; +64.19598388671875, -2.2573471069335938; +64.29598236083984, -2.266310214996338; +64.3959732055664, -2.1820812225341797; +64.49596405029297, -2.045571804046631; +64.59596252441406, -1.906663179397583; +64.69595336914062, -1.8100589513778687; +64.79594421386719, -1.7917603254318237; +64.89594268798828, -1.8737167119979858; +64.99593353271484, -2.0448341369628906; +65.09593200683594, -2.252124309539795; +65.1959228515625, -2.4198219776153564; +65.29591369628906, -2.484187602996826; +65.39591217041016, -2.4095773696899414; +65.49590301513672, -2.185523509979248; +65.59590148925781, -1.832552194595337; +65.69589233398438, -1.4068856239318848; +65.79588317871094, -0.9827762842178345; +65.89588165283203, -0.6207302212715149; +65.9958724975586, -0.3481954336166382; +66.09586334228516, -0.16855448484420776; +66.19586181640625, -0.07180124521255493; +66.29585266113281, -0.04442781209945679; +66.3958511352539, -0.07220357656478882; +66.49584197998047, -0.14134496450424194; +66.59583282470703, -0.24049729108810425; +66.69583129882812, -0.36138296127319336; +66.79582214355469, -0.5001872777938843; +66.89581298828125, -0.6504654884338379; +66.99581146240234, -0.80060213804245; +67.0958023071289, -0.9384453296661377; +67.19580078125, -1.0539442300796509; +67.29579162597656, -1.1385828256607056; +67.39578247070312, -1.1841282844543457; +67.49578094482422, -1.1890679597854614; +67.59577178955078, -1.1595711708068848; +67.69577026367188, -1.1040046215057373; +67.79576110839844, -1.0306090116500854; +67.895751953125, -0.9446069598197937; +67.9957504272461, -0.8474066853523254; +68.09574127197266, -0.7320791482925415; +68.19573211669922, -0.5845129489898682; +68.29573059082031, -0.3879740834236145; +68.39572143554688, -0.12523680925369263; +68.49571990966797, 0.21407008171081543; +68.59571075439453, 0.6278529763221741; +68.6957015991211, 1.0938570499420166; +68.79570007324219, 1.5597269535064697; +68.89569091796875, 1.940138578414917; +68.99568176269531, 2.1356046199798584; +69.0956802368164, 2.076052188873291; +69.19567108154297, 1.7549619674682617; +69.29566955566406, 1.2308210134506226; +69.39566040039062, 0.6022900342941284; +69.49565124511719, -0.015206634998321533; +69.59564971923828, -0.5201920866966248; +69.69564056396484, -0.8577257394790649; +69.79563903808594, -1.0335817337036133; +69.8956298828125, -1.0980143547058105; +69.99562072753906, -1.1065304279327393; +70.09561920166016, -1.0926649570465088; +70.19561004638672, -1.0525137186050415; +70.29560089111328, -0.9422227740287781; +70.39559936523438, -0.699751079082489; +70.49559020996094, -0.2813860774040222; +70.59558868408203, 0.3021806478500366; +70.6955795288086, 0.9852424263954163; +70.79557037353516, 1.676112413406372; +70.89556884765625, 2.283237934112549; +70.99555969238281, 2.7233362197875977; +71.09555053710938, 2.929694890975952; +71.19554901123047, 2.8708503246307373; +71.29553985595703, 2.5609657764434814; +71.39553833007812, 2.044506311416626; +71.49552917480469, 1.3795866966247559; +71.59552001953125, 0.6362050771713257; +71.69551849365234, -0.10295957326889038; +71.7955093383789, -0.7538199424743652; +71.8955078125, -1.2526512145996094; +71.99549865722656, -1.5675201416015625; +72.09548950195312, -1.7057061195373535; +72.19548797607422, -1.7099082469940186; +72.29547882080078, -1.6415045261383057; +72.39546966552734, -1.5564262866973877; +72.49546813964844, -1.4890730381011963; +72.595458984375, -1.4537944793701172; +72.6954574584961, -1.4549269676208496; +72.79544830322266, -1.4897212982177734; +72.89543914794922, -1.5527009963989258; +72.99543762207031, -1.6309394836425781; +73.09542846679688, -1.7041712999343872; +73.19541931152344, -1.7530248165130615; +73.29541778564453, -1.7631723880767822; +73.3954086303711, -1.7301589250564575; +73.49540710449219, -1.6524717807769775; +73.59539794921875, -1.5375242233276367; +73.69538879394531, -1.4064908027648926; +73.7953872680664, -1.286044716835022; +73.89537811279297, -1.2031569480895996; +73.99536895751953, -1.1778026819229126; +74.09536743164062, -1.222178339958191; +74.19535827636719, -1.338467001914978; +74.29535675048828, -1.5143752098083496; +74.39534759521484, -1.7265901565551758; +74.4953384399414, -1.9382014274597168; +74.5953369140625, -2.100743293762207; +74.69532775878906, -2.168632984161377; +74.79532623291016, -2.114623785018921; +74.89531707763672, -1.9432604312896729; +74.99530792236328, -1.686394214630127; +75.09530639648438, -1.394338846206665; +75.19529724121094, -1.1246874332427979; +75.2952880859375, -0.9290724992752075; +75.3952865600586, -0.839628279209137; +75.49527740478516, -0.858403742313385; +75.59527587890625, -0.9612515568733215; +75.69526672363281, -1.1106133460998535; +75.79525756835938, -1.265324592590332; +75.89525604248047, -1.3862848281860352; +75.99524688720703, -1.442216396331787; +76.0952377319336, -1.4180392026901245; +76.19523620605469, -1.3179630041122437; +76.29522705078125, -1.1645257472991943; +76.39522552490234, -0.9940490126609802; +76.4952163696289, -0.8459314703941345; +76.59520721435547, -0.7498711347579956; +76.69520568847656, -0.7194057106971741; +76.79519653320312, -0.7530301809310913; +76.89519500732422, -0.8378699421882629; +76.99518585205078, -0.9579434990882874; +77.09517669677734, -1.0977461338043213; +77.19517517089844, -1.2443959712982178; +77.295166015625, -1.3796091079711914; +77.39515686035156, -1.4799386262893677; +77.49515533447266, -1.521982192993164; +77.59514617919922, -1.4942139387130737; +77.69514465332031, -1.4006048440933228; +77.79513549804688, -1.2572481632232666; +77.89512634277344, -1.0915100574493408; +77.99512481689453, -0.9369552135467529; +78.0951156616211, -0.823482871055603; +78.19510650634766, -0.7615536451339722; +78.29510498046875, -0.7447376847267151; +78.39509582519531, -0.7620900869369507; +78.4950942993164, -0.8082017302513123; +78.59508514404297, -0.8826181292533875; +78.69507598876953, -0.9842216968536377; +78.79507446289062, -1.103132963180542; +78.89506530761719, -1.2201144695281982; +78.99506378173828, -1.3133138418197632; +79.09505462646484, -1.36368727684021; +79.1950454711914, -1.3578758239746094; +79.2950439453125, -1.2917444705963135; +79.39503479003906, -1.1777207851409912; +79.49502563476562, -1.0407119989395142; +79.59502410888672, -0.9060055017471313; +79.69501495361328, -0.7896199822425842; +79.79501342773438, -0.6969347596168518; +79.89500427246094, -0.6257370114326477; +79.9949951171875, -0.5709752440452576; +80.0949935913086, -0.5287081003189087; +80.19498443603516, -0.4968494176864624; +80.29497528076172, -0.47311931848526; +80.39497375488281, -0.4551932215690613; +80.49496459960938, -0.4406571388244629; +80.59496307373047, -0.4298463463783264; +80.69495391845703, -0.42179226875305176; +80.7949447631836, -0.4143565893173218; +80.89494323730469, -0.4079267382621765; +80.99493408203125, -0.4038959741592407; +81.09493255615234, -0.40362775325775146; +81.1949234008789, -0.40362775325775146; +81.29491424560547, -0.4020482301712036; +81.39491271972656, -0.3987550735473633; +81.49490356445312, -0.3927648067474365; +81.59489440917969, -0.38361549377441406; +81.69489288330078, -0.37316232919692993; +81.79488372802734, -0.3646761178970337; +81.89488220214844, -0.3598630428314209; +81.994873046875, -0.3577768802642822; +82.09486389160156, -0.3569498658180237; +82.19486236572266, -0.3572925925254822; +82.29485321044922, -0.3575459122657776; +82.39484405517578, -0.3582015633583069; +82.49484252929688, -0.35972148180007935; +82.59483337402344, -0.3618970513343811; +82.69483184814453, -0.3649964928627014; +82.7948226928711, -0.3669857978820801; +82.89481353759766, -0.36735832691192627; +82.99481201171875, -0.36644935607910156; +83.09480285644531, -0.36460161209106445; +83.19479370117188, -0.36378204822540283; +83.29479217529297, -0.36372244358062744; +83.39478302001953, -0.36137551069259644; +83.49478149414062, -0.35272538661956787; +83.59477233886719, -0.33117830753326416; +83.69476318359375, -0.29046088457107544; +83.79476165771484, -0.22333860397338867; +83.8947525024414, -0.12372434139251709; +83.9947509765625, 0.012926757335662842; +84.09474182128906, 0.20284205675125122; +84.19473266601562, 0.491119921207428; +84.29473114013672, 0.9374171495437622; +84.39472198486328, 1.5529468059539795; +84.49471282958984, 2.27925181388855; +84.59471130371094, 3.0322744846343994; +84.6947021484375, 3.7449450492858887; +84.7947006225586, 4.339389324188232; +84.89469146728516, 4.708766937255859; +84.99468231201172, 4.786320209503174; +85.09468078613281, 4.589572429656982; +85.19467163085938, 4.187606334686279; +85.29466247558594, 3.643639326095581; +85.39466094970703, 3.0114874839782715; +85.4946517944336, 2.357944965362549; +85.59465026855469, 1.7525404691696167; +85.69464111328125, 1.245453953742981; +85.79463195800781, 0.8539482951164246; +85.8946304321289, 0.5689635872840881; +85.99462127685547, 0.36769360303878784; +86.09461975097656, 0.22736191749572754; +86.19461059570312, 0.13045966625213623; +86.29460144042969, 0.06360560655593872; +86.39459991455078, 0.017173588275909424; +86.49459075927734, -0.017181038856506348; +86.5945816040039, -0.044152140617370605; +86.694580078125, -0.06501376628875732; +86.79457092285156, -0.08089840412139893; +86.89456939697266, -0.09371340274810791; +86.99456024169922, -0.10447204113006592; +87.09455108642578, -0.11353939771652222; +87.19454956054688, -0.12008100748062134; +87.29454040527344, -0.12519210577011108; +87.39453125, -0.1299455761909485; +87.4945297241211, -0.13437122106552124; +87.59452056884766, -0.13955682516098022; +87.69451904296875, -0.144079327583313; +87.79450988769531, -0.146523118019104; +87.89450073242188, -0.14651566743850708; +87.99449920654297, -0.1452714204788208; +88.09449005126953, -0.14557689428329468; +88.19448852539062, -0.1468360424041748; +88.29447937011719, -0.14828145503997803; +88.39447021484375, -0.15138089656829834; +88.49446868896484, -0.15685707330703735; +88.5944595336914, -0.16421079635620117; +88.69445037841797, -0.17007440328598022; +88.79444885253906, -0.17336755990982056; +88.89443969726562, -0.17457455396652222; +88.99443817138672, -0.1730024814605713; +89.09442901611328, -0.16921013593673706; +89.19441986083984, -0.1650005578994751; +89.29441833496094, -0.16195327043533325; +89.3944091796875, -0.1600608229637146; +89.49440002441406, -0.16022473573684692; +89.59439849853516, -0.16295909881591797; +89.69438934326172, -0.16544759273529053; +89.79438781738281, -0.1642182469367981; +89.89437866210938, -0.16129761934280396; +89.99436950683594, -0.16126781702041626; +90.09436798095703, -0.16395747661590576; +90.1943588256836, -0.16792118549346924; +90.29434967041016, -0.17220526933670044; +90.39434814453125, -0.17708539962768555; +90.49433898925781, -0.1811683177947998; +90.5943374633789, -0.18262118101119995; +90.69432830810547, -0.1825392246246338; +90.79431915283203, -0.18147379159927368; +90.89431762695312, -0.18136948347091675; +90.99430847167969, -0.18358975648880005; +91.09430694580078, -0.18862634897232056; +91.19429779052734, -0.193864107131958; +91.2942886352539, -0.1975223422050476; +91.394287109375, -0.20153820514678955; +91.49427795410156, -0.20650774240493774; +91.59426879882812, -0.210493803024292; +91.69426727294922, -0.20997971296310425; +91.79425811767578, -0.20704418420791626; +91.89425659179688, -0.2052411437034607; +91.99424743652344, -0.20523369312286377; +92.09423828125, -0.20675361156463623; +92.1942367553711, -0.209026038646698; +92.29422760009766, -0.2121254801750183; +92.39421844482422, -0.21407008171081543; +92.49421691894531, -0.21372735500335693; +92.59420776367188, -0.21092593669891357; +92.69420623779297, -0.2059638500213623; +92.79419708251953, -0.20078569650650024; +92.8941879272461, -0.19694119691848755; +92.99418640136719, -0.19627809524536133; +93.09417724609375, -0.1961737871170044; +93.19417572021484, -0.19361823797225952; +93.2941665649414, -0.18828362226486206; +93.39415740966797, -0.18171966075897217; +93.49415588378906, -0.1778528094291687; +93.59414672851562, -0.17770379781723022; +93.69413757324219, -0.17968565225601196; +93.79413604736328, -0.182226300239563; +93.89412689208984, -0.18639862537384033; +93.99412536621094, -0.1932084560394287; +94.0941162109375, -0.1998692750930786; +94.19410705566406, -0.20112842321395874; +94.29410552978516, -0.19969791173934937; +94.39409637451172, -0.1989230513572693; +94.49408721923828, -0.1971721649169922; +94.59408569335938, -0.1927688717842102; +94.69407653808594, -0.1855716109275818; +94.79407501220703, -0.18058717250823975; +94.8940658569336, -0.1771673560142517; +94.99405670166016, -0.1749768853187561; +95.09405517578125, -0.17540901899337769; +95.19404602050781, -0.17756223678588867; +95.2940444946289, -0.1809820532798767; +95.39403533935547, -0.18416345119476318; +95.49402618408203, -0.18677860498428345; +95.59402465820312, -0.1884251832962036; +95.69401550292969, -0.18753856420516968; +95.79400634765625, -0.1843869686126709; +95.89400482177734, -0.1787319779396057; +95.9939956665039, -0.17154216766357422; +96.093994140625, -0.16605108976364136; +96.19398498535156, -0.1636222004890442; +96.29397583007812, -0.1641884446144104; +96.39397430419922, -0.1663491129875183; +96.49396514892578, -0.17081201076507568; +96.59395599365234, -0.17625093460083008; +96.69395446777344, -0.18027424812316895; +96.7939453125, -0.1817271113395691; +96.8939437866211, -0.18212199211120605; +96.99393463134766, -0.1835748553276062; +97.09392547607422, -0.18568336963653564; +97.19392395019531, -0.18850713968276978; +97.29391479492188, -0.19019842147827148; +97.39391326904297, -0.19096583127975464; +97.49390411376953, -0.19322335720062256; +97.5938949584961, -0.1971721649169922; +97.69389343261719, -0.20209699869155884; +97.79388427734375, -0.2058669924736023; +97.89387512207031, -0.20854175090789795; +97.9938735961914, -0.20878762006759644; +98.09386444091797, -0.20319223403930664; +98.19386291503906, -0.19499659538269043; +98.29385375976562, -0.18796324729919434; +98.39384460449219, -0.1852288842201233; +98.49384307861328, -0.183984637260437; +98.59383392333984, -0.1826062798500061; +98.6938247680664, -0.18200278282165527; +98.7938232421875, -0.1816079020500183; +98.89381408691406, -0.18130242824554443; +98.99381256103516, -0.1790076494216919; +99.09380340576172, -0.17897039651870728; +99.19379425048828, -0.18217414617538452; +99.29379272460938, -0.18687546253204346; +99.39378356933594, -0.19115209579467773; +99.4937744140625, -0.19587576389312744; +99.5937728881836, -0.20357221364974976; +99.69376373291016, -0.21135061979293823; +99.79376220703125, -0.21810829639434814; +99.89375305175781, -0.22523105144500732; +99.99374389648438, -0.22917240858078003; +100.09374237060547, -0.2254769206047058; +100.19373321533203, -0.21522492170333862; +100.29373168945312, -0.20463019609451294; +100.39372253417969, -0.19691884517669678; +100.49371337890625, -0.1886710524559021; +100.59371185302734, -0.18183887004852295; +100.6937026977539, -0.18014758825302124; +100.79369354248047, -0.1834779977798462; +100.89369201660156, -0.18918514251708984; +100.99368286132812, -0.19396841526031494; +101.09368133544922, -0.19940733909606934; +101.19367218017578, -0.20445138216018677; +101.29366302490234, -0.20637363195419312; +101.39366149902344, -0.2047419548034668; +101.49365234375, -0.19998103380203247; +101.59364318847656, -0.19640475511550903; +101.69364166259766, -0.19576400518417358; +101.79363250732422, -0.19840151071548462; +101.89363098144531, -0.2030506730079651; +101.99362182617188, -0.2076476812362671; +102.09361267089844, -0.21272152662277222; +102.19361114501953, -0.21606683731079102; +102.2936019897461, -0.21561235189437866; +102.39360046386719, -0.20997971296310425; +102.49359130859375, -0.20213425159454346; +102.59358215332031, -0.19455701112747192; +102.6935806274414, -0.18656998872756958; +102.79357147216797, -0.1789182424545288; +102.89356231689453, -0.17395615577697754; +102.99356079101562, -0.17404556274414062; +103.09355163574219, -0.17640739679336548; +103.19355010986328, -0.17958134412765503; +103.29354095458984, -0.18256902694702148; +103.3935317993164, -0.18528103828430176; +103.4935302734375, -0.18586963415145874; +103.59352111816406, -0.18478929996490479; +103.69351196289062, -0.1846998929977417; +103.79351043701172, -0.1848563551902771; +103.89350128173828, -0.18624961376190186; +103.99349975585938, -0.1884177327156067; +104.09349060058594, -0.19174814224243164; +104.1934814453125, -0.19466131925582886; +104.2934799194336, -0.19559264183044434; +104.39347076416016, -0.19613653421401978; +104.49346923828125, -0.19472837448120117; +104.59346008300781, -0.19083172082901; +104.69345092773438, -0.18721818923950195; +104.79344940185547, -0.18636882305145264; +104.89344024658203, -0.1886412501335144; +104.9934310913086, -0.19101053476333618; +105.09342956542969, -0.19349157810211182; +105.19342041015625, -0.19782036542892456; +105.29341888427734, -0.202864408493042; +105.3934097290039, -0.20697712898254395; +105.49340057373047, -0.20931661128997803; +105.59339904785156, -0.2100914716720581; +105.69338989257812, -0.2094358205795288; +105.79338073730469, -0.20705163478851318; +105.89337921142578, -0.20431727170944214; +105.99337005615234, -0.20188093185424805; +106.09336853027344, -0.1993030309677124; +106.193359375, -0.1969859004020691; +106.29335021972656, -0.19544363021850586; +106.39334869384766, -0.19508600234985352; +106.49333953857422, -0.19446015357971191; +106.59333801269531, -0.19358843564987183; +106.69332885742188, -0.19203126430511475; +106.79331970214844, -0.19063055515289307; +106.89331817626953, -0.18971413373947144; +106.9933090209961, -0.1880750060081482; +107.09329986572266, -0.18556416034698486; +107.19329833984375, -0.18215179443359375; +107.29328918457031, -0.1817271113395691; +107.3932876586914, -0.1836642622947693; +107.49327850341797, -0.18721073865890503; +107.59326934814453, -0.19302219152450562; +107.69326782226562, -0.20012259483337402; +107.79325866699219, -0.20579248666763306; +107.89324951171875, -0.2063065767288208; +107.99324798583984, -0.2030879259109497; +108.0932388305664, -0.19816309213638306; +108.1932373046875, -0.19384175539016724; +108.29322814941406, -0.19267946481704712; +108.39321899414062, -0.19729137420654297; +108.49321746826172, -0.20678341388702393; +108.59320831298828, -0.21713972091674805; +108.69319915771484, -0.22491812705993652; +108.79319763183594, -0.22845715284347534; +108.8931884765625, -0.22856146097183228; +108.9931869506836, -0.22490322589874268; +109.09317779541016, -0.21786242723464966; +109.19316864013672, -0.21123886108398438; +109.29316711425781, -0.20948797464370728; +109.39315795898438, -0.21225214004516602; +109.49315643310547, -0.21510571241378784; +109.59314727783203, -0.2161264419555664; +109.6931381225586, -0.21685659885406494; +109.79313659667969, -0.2170279622077942; +109.89312744140625, -0.21582096815109253; +109.99311828613281, -0.2133399248123169; +110.0931167602539, -0.2105236053466797; +110.19310760498047, -0.2084672451019287; +110.29310607910156, -0.20755082368850708; +110.39309692382812, -0.20857155323028564; +110.49308776855469, -0.2101510763168335; +110.59308624267578, -0.21129101514816284; +110.69307708740234, -0.2118423581123352; +110.7930679321289, -0.21182000637054443; +110.89306640625, -0.21185725927352905; +110.99305725097656, -0.21104514598846436; +111.09305572509766, -0.20977109670639038; +111.19304656982422, -0.2090856432914734; +111.29303741455078, -0.20980089902877808; +111.39303588867188, -0.21059811115264893; +111.49302673339844, -0.2099350094795227; +111.59302520751953, -0.2084970474243164; +111.6930160522461, -0.20612776279449463; +111.79300689697266, -0.20263344049453735; +111.89300537109375, -0.20013749599456787; +111.99299621582031, -0.20179897546768188; +112.09298706054688, -0.20693987607955933; +112.19298553466797, -0.21285563707351685; +112.29297637939453, -0.2180933952331543; +112.39297485351562, -0.22064894437789917; +112.49296569824219, -0.21763890981674194; +112.59295654296875, -0.2102181315422058; +112.69295501708984, -0.20273029804229736; +112.7929458618164, -0.19758939743041992; +112.89293670654297, -0.1942962408065796; +112.99293518066406, -0.19419193267822266; +113.09292602539062, -0.1993328332901001; +113.19292449951172, -0.2065226435661316; +113.29291534423828, -0.2103075385093689; +113.39290618896484, -0.20997226238250732; +113.49290466308594, -0.21025538444519043; +113.5928955078125, -0.21201372146606445; +113.6928939819336, -0.2127513289451599; +113.79288482666016, -0.21238625049591064; +113.89287567138672, -0.21494925022125244; +113.99287414550781, -0.2195611596107483; +114.09286499023438, -0.22035092115402222; +114.19285583496094, -0.21783262491226196; +114.29285430908203, -0.21588057279586792; +114.3928451538086, -0.21617114543914795; +114.49284362792969, -0.21491199731826782; +114.59283447265625, -0.21251291036605835; +114.69282531738281, -0.21163374185562134; +114.7928237915039, -0.2119988203048706; +114.89281463623047, -0.21182000637054443; +114.99280548095703, -0.21055340766906738; +115.09280395507812, -0.20963698625564575; +115.19279479980469, -0.20747631788253784; +115.29279327392578, -0.20399689674377441; +115.39278411865234, -0.20020455121994019; +115.4927749633789, -0.197485089302063; +115.5927734375, -0.19606947898864746; +115.69276428222656, -0.1966133713722229; +115.79275512695312, -0.20129233598709106; +115.89275360107422, -0.20822137594223022; +115.99274444580078, -0.21378695964813232; +116.09274291992188, -0.21507591009140015; +116.19273376464844, -0.21246075630187988; +116.292724609375, -0.20879507064819336; +116.3927230834961, -0.2049580216407776; +116.49271392822266, -0.20168721675872803; +116.59271240234375, -0.19859522581100464; +116.69270324707031, -0.197678804397583; +116.79269409179688, -0.19944459199905396; +116.89269256591797, -0.20135194063186646; +116.99268341064453, -0.20176172256469727; +117.0926742553711, -0.20334869623184204; +117.19267272949219, -0.2094358205795288; +117.29266357421875, -0.2171918749809265; +117.39266204833984, -0.22289901971817017; +117.4926528930664, -0.2253502607345581; +117.59264373779297, -0.22521615028381348; +117.69264221191406, -0.22138655185699463; +117.79263305664062, -0.2147182822227478; +117.89262390136719, -0.2087429165840149; +117.99262237548828, -0.20697712898254395; +118.09261322021484, -0.20729750394821167; +118.19261169433594, -0.2080574631690979; +118.2926025390625, -0.20976364612579346; +118.39259338378906, -0.21160393953323364; +118.49259185791016, -0.21225214004516602; +118.59258270263672, -0.21023303270339966; +118.69258117675781, -0.20926445722579956; +118.79257202148438, -0.21161139011383057; +118.89256286621094, -0.21588802337646484; +118.99256134033203, -0.21968036890029907; +119.0925521850586, -0.22239983081817627; +119.19254302978516, -0.2245679497718811; +119.29254150390625, -0.22551417350769043; +119.39253234863281, -0.2224743366241455; +119.4925308227539, -0.2150610089302063; +119.59252166748047, -0.20767748355865479; +119.69251251220703, -0.20404905080795288; +119.79251098632812, -0.20348280668258667; +119.89250183105469, -0.20266324281692505; +119.99249267578125, -0.20097196102142334; +120.09249114990234, -0.20140409469604492; +120.1924819946289, -0.20351260900497437; +120.29248046875, -0.20463019609451294; +120.39247131347656, -0.2039596438407898; +120.49246215820312, -0.20473450422286987; +120.59246063232422, -0.21035224199295044; +120.69245147705078, -0.21757930517196655; +120.79244995117188, -0.22196024656295776; +120.89244079589844, -0.22132694721221924; +120.992431640625, -0.2170279622077942; +121.0924301147461, -0.21072477102279663; +121.19242095947266, -0.20373612642288208; +121.29241180419922, -0.19878149032592773; +121.39241027832031, -0.196896493434906; +121.49240112304688, -0.19869953393936157; +121.59239959716797, -0.2039298415184021; +121.69239044189453, -0.21129101514816284; +121.7923812866211, -0.21880120038986206; +121.89237976074219, -0.2248212695121765; +121.99237060546875, -0.22923946380615234; +122.09236145019531, -0.23129582405090332; +122.1923599243164, -0.22917985916137695; +122.29235076904297, -0.2212822437286377; +122.39234924316406, -0.21044164896011353; +122.49234008789062, -0.2006813883781433; +122.59233093261719, -0.19522756338119507; +122.69232940673828, -0.19463896751403809; +122.79232025146484, -0.1976117491722107; +122.89231872558594, -0.20279735326766968; +122.9923095703125, -0.2058669924736023; +123.09230041503906, -0.20403414964675903; +123.19229888916016, -0.19768625497817993; +123.29228973388672, -0.18861889839172363; +123.39228057861328, -0.18017739057540894; +123.49227905273438, -0.17549097537994385; +123.59226989746094, -0.17568469047546387; +123.69226837158203, -0.17952919006347656; +123.7922592163086, -0.18556416034698486; +123.89225006103516, -0.19268691539764404; +123.99224853515625, -0.1994594931602478; +124.09223937988281, -0.20328909158706665; +124.19223022460938, -0.2057775855064392; +124.29222869873047, -0.20783394575119019; +124.39221954345703, -0.20889192819595337; +124.49221801757812, -0.20895153284072876; +124.59220886230469, -0.20769983530044556; +124.69219970703125, -0.20695477724075317; +124.79219818115234, -0.20553171634674072; +124.8921890258789, -0.2042725682258606; +124.99217987060547, -0.201493501663208; +125.09217834472656, -0.19650161266326904; +125.19216918945312, -0.19125640392303467; +125.29216766357422, -0.18740445375442505; +125.39215850830078, -0.18505752086639404; +125.49214935302734, -0.1825764775276184; +125.59214782714844, -0.18109381198883057; +125.692138671875, -0.1806989312171936; +125.7921371459961, -0.18087029457092285; +125.89212799072266, -0.18134713172912598; +125.99211883544922, -0.18301606178283691; +126.09211730957031, -0.18481910228729248; +126.19210815429688, -0.18505007028579712; +126.29209899902344, -0.1847967505455017; +126.39209747314453, -0.18543004989624023; +126.4920883178711, -0.18608570098876953; +126.59208679199219, -0.18512457609176636; +126.69207763671875, -0.18428266048431396; +126.79206848144531, -0.18449127674102783; +126.8920669555664, -0.18590688705444336; +126.99205780029297, -0.18920749425888062; +127.09204864501953, -0.19458681344985962; +127.19204711914062, -0.2010837197303772; +127.29203796386719, -0.20582228899002075; +127.39203643798828, -0.20875036716461182; +127.49202728271484, -0.21079927682876587; +127.5920181274414, -0.21144002676010132; +127.6920166015625, -0.21125376224517822; +127.79200744628906, -0.21122395992279053; +127.89200592041016, -0.21183490753173828; +127.99199676513672, -0.2138689160346985; +128.0919952392578, -0.21688640117645264; +128.19198608398438, -0.21922588348388672; +128.29197692871094, -0.2201572060585022; +128.3919677734375, -0.21868199110031128; +128.49195861816406, -0.21704286336898804; +128.5919647216797, -0.21611899137496948; +128.69195556640625, -0.21526962518692017; +128.7919464111328, -0.21425634622573853; +128.89193725585938, -0.21172314882278442; +128.99192810058594, -0.20894408226013184; +129.09193420410156, -0.20634382963180542; +129.19192504882812, -0.2029314637184143; +129.2919158935547, -0.19785761833190918; +129.39190673828125, -0.1922398805618286; +129.4918975830078, -0.18839538097381592; +129.59188842773438, -0.18781423568725586; +129.69189453125, -0.18864870071411133; +129.79188537597656, -0.1900121569633484; +129.89187622070312, -0.19349902868270874; +129.9918670654297, -0.19860267639160156; +130.09185791015625, -0.2035200595855713; +130.19186401367188, -0.20657479763031006; +130.29185485839844, -0.20822137594223022; +130.391845703125, -0.20966678857803345; +130.49183654785156, -0.20901858806610107; +130.59182739257812, -0.20585209131240845; +130.69183349609375, -0.2017393708229065; +130.7918243408203, -0.1982375979423523; +130.89181518554688, -0.19662082195281982; +130.99180603027344, -0.19552558660507202; +131.091796875, -0.19346922636032104; +131.19180297851562, -0.19156932830810547; +131.2917938232422, -0.19077956676483154; +131.39178466796875, -0.19150227308273315; +131.4917755126953, -0.19094347953796387; +131.59176635742188, -0.18896162509918213; +131.69175720214844, -0.18859654664993286; +131.79176330566406, -0.18996000289916992; +131.89175415039062, -0.19169598817825317; +131.9917449951172, -0.1912638545036316; +132.09173583984375, -0.18961727619171143; +132.1917266845703, -0.18829107284545898; +132.29173278808594, -0.18715858459472656; +132.3917236328125, -0.1859515905380249; +132.49171447753906, -0.18373876810073853; +132.59170532226562, -0.18116086721420288; +132.6916961669922, -0.18021464347839355; +132.7917022705078, -0.18018484115600586; +132.89169311523438, -0.17927587032318115; +132.99168395996094, -0.17616897821426392; +133.0916748046875, -0.17193704843521118; +133.19166564941406, -0.16786903142929077; +133.2916717529297, -0.16354024410247803; +133.39166259765625, -0.160999596118927; +133.4916534423828, -0.1612454652786255; +133.59164428710938, -0.16325712203979492; +133.69163513183594, -0.16348809003829956; +133.7916259765625, -0.16073137521743774; +133.89163208007812, -0.1558065414428711; +133.9916229248047, -0.14831870794296265; +134.09161376953125, -0.14044344425201416; +134.1916046142578, -0.13390183448791504; +134.29159545898438, -0.12992322444915771; +134.3916015625, -0.12908875942230225; +134.49159240722656, -0.1309216022491455; +134.59158325195312, -0.13446062803268433; +134.6915740966797, -0.13727694749832153; +134.79156494140625, -0.13844668865203857; +134.89157104492188, -0.13945996761322021; +134.99156188964844, -0.13863295316696167; +135.091552734375, -0.13484060764312744; +135.19154357910156, -0.12872368097305298; +135.29153442382812, -0.12173503637313843; +135.39154052734375, -0.11385977268218994; +135.4915313720703, -0.10528415441513062; +135.59152221679688, -0.09895116090774536; +135.69151306152344, -0.09632855653762817; +135.79150390625, -0.097617506980896; +135.89149475097656, -0.10085105895996094; +135.9915008544922, -0.10651350021362305; +136.09149169921875, -0.11263787746429443; +136.1914825439453, -0.11489540338516235; +136.29147338867188, -0.11195987462997437; +136.39146423339844, -0.1029670238494873; +136.49147033691406, -0.09164214134216309; +136.59146118164062, -0.08020550012588501; +136.6914520263672, -0.07052719593048096; +136.79144287109375, -0.06346404552459717; +136.8914337158203, -0.05903095006942749; +136.99143981933594, -0.05727261304855347; +137.0914306640625, -0.054970383644104004; +137.19142150878906, -0.050961971282958984; +137.29141235351562, -0.04763156175613403; +137.3914031982422, -0.047266483306884766; +137.4914093017578, -0.045880675315856934; +137.59140014648438, -0.04270672798156738; +137.69139099121094, -0.04045665264129639; +137.7913818359375, -0.04137307405471802; +137.89137268066406, -0.04322826862335205; +137.99136352539062, -0.042848289012908936; +138.09136962890625, -0.04379451274871826; +138.1913604736328, -0.045962631702423096; +138.29135131835938, -0.04741549491882324; +138.39134216308594, -0.04507601261138916; +138.4913330078125, -0.0373348593711853; +138.59133911132812, -0.02857297658920288; +138.6913299560547, -0.021010637283325195; +138.79132080078125, -0.016801059246063232; +138.8913116455078, -0.01564621925354004; +138.99130249023438, -0.014550983905792236; +139.09130859375, -0.012174248695373535; +139.19129943847656, -0.006355345249176025; +139.29129028320312, 0.0020265579223632812; +139.3912811279297, 0.012315809726715088; +139.49127197265625, 0.02434849739074707; +139.59127807617188, 0.03536045551300049; +139.69126892089844, 0.04184991121292114; +139.791259765625, 0.04383176565170288; +139.89125061035156, 0.042416155338287354; +139.99124145507812, 0.03882497549057007; +140.0912322998047, 0.03260374069213867; +140.1912384033203, 0.023946166038513184; +140.29122924804688, 0.015273690223693848; +140.39122009277344, 0.00702589750289917; +140.4912109375, 0.001952052116394043; +140.59120178222656, 0.0020265579223632812; +140.6912078857422, 0.008322298526763916; +140.79119873046875, 0.01849234104156494; +140.8911895751953, 0.02779066562652588; +140.99118041992188, 0.03501772880554199; +141.09117126464844, 0.04088878631591797; +141.19117736816406, 0.04583597183227539; +141.29116821289062, 0.04824250936508179; +141.3911590576172, 0.04918873310089111; +141.49114990234375, 0.05158036947250366; +141.5911407470703, 0.05646049976348877; +141.69114685058594, 0.06433576345443726; +141.7911376953125, 0.07279962301254272; +141.89112854003906, 0.08013099431991577; +141.99111938476562, 0.08556991815567017; +142.0911102294922, 0.08948147296905518; +142.19110107421875, 0.09293854236602783; +142.29110717773438, 0.09213387966156006; +142.39109802246094, 0.0888928771018982; +142.4910888671875, 0.08732080459594727; +142.59107971191406, 0.08890777826309204; +142.69107055664062, 0.09357184171676636; +142.79107666015625, 0.09795278310775757; +142.8910675048828, 0.10325759649276733; +142.99105834960938, 0.10870397090911865; +143.09104919433594, 0.11365115642547607; +143.1910400390625, 0.1193806529045105; +143.29104614257812, 0.12689083814620972; +143.3910369873047, 0.1361370086669922; +143.49102783203125, 0.14378875494003296; +143.5910186767578, 0.1479312777519226; +143.69100952148438, 0.14912337064743042; +143.791015625, 0.14784187078475952; +143.89100646972656, 0.14344602823257446; +143.99099731445312, 0.13734400272369385; +144.0909881591797, 0.13339519500732422; +144.19097900390625, 0.13262778520584106; +144.2909698486328, 0.13399869203567505; +144.39097595214844, 0.13602524995803833; +144.490966796875, 0.138893723487854; +144.59095764160156, 0.14337897300720215; +144.69094848632812, 0.14857947826385498; +144.7909393310547, 0.1545548439025879; +144.8909454345703, 0.16020983457565308; +144.99093627929688, 0.16429275274276733; +145.09092712402344, 0.1668483018875122; +145.19091796875, 0.1677200198173523; +145.29090881347656, 0.1671314239501953; +145.3909149169922, 0.164031982421875; +145.49090576171875, 0.1590624451637268; +145.5908966064453, 0.15556812286376953; +145.69088745117188, 0.15598535537719727; +145.79087829589844, 0.15942752361297607; +145.890869140625, 0.16408413648605347; +145.99087524414062, 0.17032772302627563; +146.0908660888672, 0.17834454774856567; +146.19085693359375, 0.1853853464126587; +146.2908477783203, 0.18759071826934814; +146.39083862304688, 0.186040997505188; +146.4908447265625, 0.18426775932312012; +146.59083557128906, 0.18315017223358154; +146.69082641601562, 0.1822337508201599; +146.7908172607422, 0.1822933554649353; +146.89080810546875, 0.1839175820350647; +146.99081420898438, 0.18546730279922485; +147.09080505371094, 0.1850128173828125; +147.1907958984375, 0.18426775932312012; +147.29078674316406, 0.1847967505455017; +147.39077758789062, 0.18512457609176636; +147.49078369140625, 0.18385052680969238; +147.5907745361328, 0.18171966075897217; +147.69076538085938, 0.18061697483062744; +147.79075622558594, 0.18037110567092896; +147.8907470703125, 0.18011033535003662; +147.99073791503906, 0.17955154180526733; +148.0907440185547, 0.1810118556022644; +148.19073486328125, 0.18640607595443726; +148.2907257080078, 0.19486993551254272; +148.39071655273438, 0.20362436771392822; +148.49070739746094, 0.21176040172576904; +148.59071350097656, 0.21946430206298828; +148.69070434570312, 0.22411346435546875; +148.7906951904297, 0.22349506616592407; +148.89068603515625, 0.2183765172958374; +148.9906768798828, 0.2125874161720276; +149.09068298339844, 0.20734965801239014; +149.190673828125, 0.20385533571243286; +149.29066467285156, 0.20451098680496216; +149.39065551757812, 0.20971894264221191; +149.4906463623047, 0.21767616271972656; +149.5906524658203, 0.22501498460769653; +149.69064331054688, 0.23020803928375244; +149.79063415527344, 0.23287534713745117; +149.890625, 0.23308396339416504; +149.99061584472656, 0.23083388805389404; +150.09060668945312, 0.22681057453155518; +150.19061279296875, 0.22363662719726562; +150.2906036376953, 0.22330880165100098; +150.39059448242188, 0.2264752984046936; +150.49058532714844, 0.23058056831359863; +150.590576171875, 0.23311376571655273; +150.69058227539062, 0.23383647203445435; +150.7905731201172, 0.23354589939117432; +150.89056396484375, 0.23365020751953125; +150.9905548095703, 0.23211538791656494; +151.09054565429688, 0.22886693477630615; +151.1905517578125, 0.22840499877929688; +151.29054260253906, 0.2330988645553589; +151.39053344726562, 0.24122744798660278; +151.4905242919922, 0.24884939193725586; +151.59051513671875, 0.25584548711776733; +151.69052124023438, 0.2624690532684326; +151.79051208496094, 0.268496572971344; +151.8905029296875, 0.27414411306381226; +151.99049377441406, 0.2776011824607849; +152.09048461914062, 0.2782270312309265; +152.1904754638672, 0.2764388918876648; +152.2904815673828, 0.27605146169662476; +152.39047241210938, 0.2771243453025818; +152.49046325683594, 0.2773553133010864; +152.5904541015625, 0.27636438608169556; +152.69044494628906, 0.27370452880859375; +152.7904510498047, 0.2701506018638611; +152.89044189453125, 0.2648979425430298; +152.9904327392578, 0.2589225769042969; +153.09042358398438, 0.2539828419685364; +153.19041442871094, 0.25288015604019165; +153.29042053222656, 0.2561211585998535; +153.39041137695312, 0.2612993121147156; +153.4904022216797, 0.2665296196937561; +153.59039306640625, 0.2708062529563904; +153.6903839111328, 0.2729669213294983; +153.79039001464844, 0.2719387412071228; +153.890380859375, 0.2700313925743103; +153.99037170410156, 0.26960670948028564; +154.09036254882812, 0.2709031105041504; +154.1903533935547, 0.2729669213294983; +154.29034423828125, 0.27602165937423706; +154.39035034179688, 0.27904659509658813; +154.49034118652344, 0.28129667043685913; +154.59033203125, 0.2837032079696655; +154.69032287597656, 0.287473201751709; +154.79031372070312, 0.2916306257247925; +154.89031982421875, 0.29461830854415894; +154.9903106689453, 0.29814988374710083; +155.09030151367188, 0.30110031366348267; +155.19029235839844, 0.30275434255599976; +155.290283203125, 0.30318647623062134; +155.39028930664062, 0.3032088279724121; +155.4902801513672, 0.3030821681022644; +155.59027099609375, 0.30165910720825195; +155.6902618408203, 0.30137598514556885; +155.79025268554688, 0.30397623777389526; +155.8902587890625, 0.30750036239624023; +155.99024963378906, 0.31147152185440063; +156.09024047851562, 0.3150254487991333; +156.1902313232422, 0.3181770443916321; +156.29022216796875, 0.32066553831100464; +156.3902130126953, 0.3208667039871216; +156.49021911621094, 0.3204420208930969; +156.5902099609375, 0.31825900077819824; +156.69020080566406, 0.3158971667289734; +156.79019165039062, 0.31494349241256714; +156.8901824951172, 0.31585991382598877; +156.9901885986328, 0.31910091638565063; +157.09017944335938, 0.32185763120651245; +157.19017028808594, 0.32466650009155273; +157.2901611328125, 0.32702088356018066; +157.39015197753906, 0.32945722341537476; +157.4901580810547, 0.33139437437057495; +157.59014892578125, 0.33176690340042114; +157.6901397705078, 0.33057481050491333; +157.79013061523438, 0.32783299684524536; +157.89012145996094, 0.3245323896408081; +157.99012756347656, 0.3206804394721985; +158.09011840820312, 0.316523015499115; +158.1901092529297, 0.3118366003036499; +158.29010009765625, 0.30841678380966187; +158.3900909423828, 0.30803680419921875; +158.49008178710938, 0.3118366003036499; +158.590087890625, 0.31798332929611206; +158.69007873535156, 0.3245249390602112; +158.79006958007812, 0.3314390778541565; +158.8900604248047, 0.3381296992301941; +158.99005126953125, 0.34324079751968384; +159.09005737304688, 0.3456398844718933; +159.19004821777344, 0.3455430269241333; +159.2900390625, 0.3443583846092224; +159.39002990722656, 0.3435388207435608; +159.49002075195312, 0.34486502408981323; +159.59002685546875, 0.34868717193603516; +159.6900177001953, 0.35412609577178955; +159.79000854492188, 0.3582015633583069; +159.88999938964844, 0.3595128655433655; +159.989990234375, 0.35762786865234375; +160.08999633789062, 0.35469233989715576; +160.1899871826172, 0.35287439823150635; +160.28997802734375, 0.35071372985839844; +160.3899688720703, 0.34902244806289673; +160.48995971679688, 0.34812837839126587; +160.58995056152344, 0.34883618354797363; +160.68995666503906, 0.3492310643196106; +160.78994750976562, 0.34803152084350586; +160.8899383544922, 0.3465786576271057; +160.98992919921875, 0.3470703959465027; +161.0899200439453, 0.34900009632110596; +161.18992614746094, 0.3508627414703369; +161.2899169921875, 0.35256147384643555; +161.38990783691406, 0.35231560468673706; +161.48989868164062, 0.34956634044647217; +161.5898895263672, 0.3448501229286194; +161.6898956298828, 0.3407225012779236; +161.78988647460938, 0.33801794052124023; +161.88987731933594, 0.33520907163619995; +161.9898681640625, 0.3349706530570984; +162.08985900878906, 0.3397241234779358; +162.1898651123047, 0.3482028841972351; +162.28985595703125, 0.35625696182250977; +162.3898468017578, 0.36147236824035645; +162.48983764648438, 0.3646165132522583; +162.58982849121094, 0.36615878343582153; +162.6898193359375, 0.36640465259552; +162.78982543945312, 0.3654062747955322; +162.8898162841797, 0.3646835684776306; +162.98980712890625, 0.36428868770599365; +163.0897979736328, 0.36279112100601196; +163.18978881835938, 0.35928189754486084; +163.289794921875, 0.355258584022522; +163.38978576660156, 0.3529265522956848; +163.48977661132812, 0.35388022661209106; +163.5897674560547, 0.3586709499359131; +163.68975830078125, 0.3652796149253845; +163.78976440429688, 0.3713369369506836; +163.88975524902344, 0.3741830587387085; +163.98974609375, 0.37482380867004395; +164.08973693847656, 0.3722533583641052; +164.18972778320312, 0.36659836769104004; +164.2897186279297, 0.36013126373291016; +164.3897247314453, 0.35490840673446655; +164.48971557617188, 0.3507956862449646; +164.58970642089844, 0.34534186124801636; +164.689697265625, 0.34146010875701904; +164.78968811035156, 0.34168362617492676; +164.8896942138672, 0.34652650356292725; +164.98968505859375, 0.3522112965583801; +165.0896759033203, 0.35671889781951904; +165.18966674804688, 0.35987794399261475; +165.28965759277344, 0.35949796438217163; +165.38966369628906, 0.3555119037628174; +165.48965454101562, 0.35092979669570923; +165.5896453857422, 0.34837424755096436; +165.68963623046875, 0.34777820110321045; +165.7896270751953, 0.34875422716140747; +165.88963317871094, 0.3528296947479248; +165.9896240234375, 0.3587007522583008; +166.08961486816406, 0.36232173442840576; +166.18960571289062, 0.36325305700302124; +166.2895965576172, 0.3630891442298889; +166.38958740234375, 0.36253035068511963; +166.48959350585938, 0.3607422113418579; +166.58958435058594, 0.35900622606277466; +166.6895751953125, 0.35846978425979614; +166.78956604003906, 0.35896897315979004; +166.88955688476562, 0.3596097230911255; +166.98956298828125, 0.3595426678657532; +167.0895538330078, 0.3587976098060608; +167.18954467773438, 0.35706907510757446; +167.28953552246094, 0.3548040986061096; +167.3895263671875, 0.3529191017150879; +167.48953247070312, 0.35197287797927856; +167.5895233154297, 0.35318732261657715; +167.68951416015625, 0.3557279706001282; +167.7895050048828, 0.35965442657470703; +167.88949584960938, 0.3646388649940491; +167.989501953125, 0.3698766231536865; +168.08949279785156, 0.3744959831237793; +168.18948364257812, 0.376284122467041; +168.2894744873047, 0.3762766718864441; +168.38946533203125, 0.3755241632461548; +168.4894561767578, 0.3757849335670471; +168.58946228027344, 0.37736445665359497; +168.689453125, 0.3794729709625244; +168.78944396972656, 0.3820955753326416; +168.88943481445312, 0.38319826126098633; +168.9894256591797, 0.3816857933998108; +169.0894317626953, 0.376679003238678; +169.18942260742188, 0.3686249256134033; +169.28941345214844, 0.3597736358642578; +169.389404296875, 0.3528520464897156; +169.48939514160156, 0.3511160612106323; +169.5894012451172, 0.3543645143508911; +169.68939208984375, 0.36132335662841797; +169.7893829345703, 0.3700330853462219; +169.88937377929688, 0.378437340259552; +169.98936462402344, 0.3851577639579773; +170.08937072753906, 0.3897622227668762; +170.18936157226562, 0.39098411798477173; +170.2893524169922, 0.3871321678161621; +170.38934326171875, 0.3793388605117798; +170.4893341064453, 0.37113577127456665; +170.58932495117188, 0.36501139402389526; +170.6893310546875, 0.3607124090194702; +170.78932189941406, 0.35922229290008545; +170.88931274414062, 0.3622099757194519; +170.9893035888672, 0.36835670471191406; +171.08929443359375, 0.3735348582267761; +171.18930053710938, 0.37666410207748413; +171.28929138183594, 0.37939101457595825; +171.3892822265625, 0.3830045461654663; +171.48927307128906, 0.38658082485198975; +171.58926391601562, 0.39024651050567627; +171.68927001953125, 0.3952234983444214; +171.7892608642578, 0.3990679979324341; +171.88925170898438, 0.39865076541900635; +171.98924255371094, 0.39439648389816284; +172.0892333984375, 0.39130449295043945; +172.18923950195312, 0.39171427488327026; +172.2892303466797, 0.3944411873817444; +172.38922119140625, 0.3988519310951233; +172.4892120361328, 0.40496140718460083; +172.58920288085938, 0.41075795888900757; +172.68919372558594, 0.4121512174606323; +172.78919982910156, 0.4085227847099304; +172.88919067382812, 0.40183961391448975; +172.9891815185547, 0.3947317600250244; +173.08917236328125, 0.38802623748779297; +173.1891632080078, 0.3835707902908325; +173.28916931152344, 0.3827214241027832; +173.38916015625, 0.38430094718933105; +173.48915100097656, 0.38763880729675293; +173.58914184570312, 0.3916323184967041; +173.6891326904297, 0.3974437713623047; +173.7891387939453, 0.4038885235786438; +173.88912963867188, 0.4078596830368042; +173.98912048339844, 0.4095807671546936; +174.089111328125, 0.41034072637557983; +174.18910217285156, 0.4112944006919861; +174.2891082763672, 0.4100203514099121; +174.38909912109375, 0.40505826473236084; +174.4890899658203, 0.4001632332801819; +174.58908081054688, 0.39762258529663086; +174.68907165527344, 0.39668381214141846; +174.7890625, 0.39537250995635986; +174.88906860351562, 0.39411336183547974; +174.9890594482422, 0.39567798376083374; +175.08905029296875, 0.39950013160705566; +175.1890411376953, 0.40356069803237915; +175.28903198242188, 0.40637701749801636; +175.3890380859375, 0.40824711322784424; +175.48902893066406, 0.4093274474143982; +175.58901977539062, 0.408366322517395; +175.6890106201172, 0.40543079376220703; +175.78900146484375, 0.40190666913986206; +175.88900756835938, 0.39818137884140015; +175.98899841308594, 0.39555132389068604; +176.0889892578125, 0.3954842686653137; +176.18898010253906, 0.39914995431900024; +176.28897094726562, 0.40415674448013306; +176.38897705078125, 0.4078969359397888; +176.4889678955078, 0.411011278629303; +176.58895874023438, 0.4137754440307617; +176.68894958496094, 0.41582435369491577; +176.7889404296875, 0.4146471619606018; +176.88893127441406, 0.4117116332054138; +176.9889373779297, 0.4098862409591675; +177.08892822265625, 0.40837377309799194; +177.1889190673828, 0.40653347969055176; +177.28890991210938, 0.4040449857711792; +177.38890075683594, 0.4042387008666992; +177.48890686035156, 0.4074573516845703; +177.58889770507812, 0.4096776247024536; +177.6888885498047, 0.40978938341140747; +177.78887939453125, 0.4078298807144165; +177.8888702392578, 0.4086419939994812; +177.98887634277344, 0.41303783655166626; +178.0888671875, 0.4185587167739868; +178.18885803222656, 0.4243031144142151; +178.28884887695312, 0.4294291138648987; +178.3888397216797, 0.43385475873947144; +178.4888458251953, 0.4338100552558899; +178.58883666992188, 0.4278048872947693; +178.68882751464844, 0.4200860857963562; +178.788818359375, 0.4143565893173218; +178.88880920410156, 0.4134029150009155; +178.98880004882812, 0.4168003797531128; +179.08880615234375, 0.4219561815261841; +179.1887969970703, 0.4261434078216553; +179.28878784179688, 0.4261881113052368; +179.38877868652344, 0.4241839051246643; +179.48876953125, 0.42337924242019653; +179.58877563476562, 0.4241764545440674; +179.6887664794922, 0.4259273409843445; +179.78875732421875, 0.428907573223114; +179.8887481689453, 0.43464452028274536; +179.98873901367188, 0.44058263301849365; +180.0887451171875, 0.4430338740348816; +180.18873596191406, 0.4421323537826538; +180.28872680664062, 0.4410594701766968; +180.3887176513672, 0.43980032205581665; +180.48870849609375, 0.4366859793663025; +180.5886993408203, 0.4322230815887451; +180.68870544433594, 0.4289373755455017; +180.7886962890625, 0.4276782274246216; +180.88868713378906, 0.4256442189216614; +180.98867797851562, 0.4232451319694519; +181.0886688232422, 0.42044371366500854; +181.1886749267578, 0.4171133041381836; +181.28866577148438, 0.41335076093673706; +181.38865661621094, 0.41162967681884766; +181.4886474609375, 0.41328370571136475; +181.58863830566406, 0.4141107201576233; +181.6886444091797, 0.4122704267501831; +181.78863525390625, 0.410325825214386; +181.8886260986328, 0.41131675243377686; +181.98861694335938, 0.4131793975830078; +182.08860778808594, 0.41384994983673096; +182.18861389160156, 0.4154667258262634; +182.28860473632812, 0.4209354519844055; +182.3885955810547, 0.42913854122161865; +182.48858642578125, 0.4359632730484009; +182.5885772705078, 0.4396289587020874; +182.68856811523438, 0.44076889753341675; +182.78857421875, 0.44058263301849365; +182.88856506347656, 0.43917447328567505; +182.98855590820312, 0.43594837188720703; +183.0885467529297, 0.4307478666305542; +183.18853759765625, 0.42431801557540894; +183.28854370117188, 0.4191100597381592; +183.38853454589844, 0.41828304529190063; +183.488525390625, 0.4207119345664978; +183.58851623535156, 0.42306631803512573; +183.68850708007812, 0.42335689067840576; +183.78851318359375, 0.424116849899292; +183.8885040283203, 0.42764097452163696; +183.98849487304688, 0.42966753244400024; +184.08848571777344, 0.4280507564544678; +184.1884765625, 0.4251152276992798; +184.28848266601562, 0.4242733120918274; +184.3884735107422, 0.42444467544555664; +184.48846435546875, 0.42290985584259033; +184.5884552001953, 0.4224330186843872; +184.68844604492188, 0.42504072189331055; +184.78843688964844, 0.430963933467865; +184.88844299316406, 0.43958425521850586; +184.98843383789062, 0.44921040534973145; +185.0884246826172, 0.4578307271003723; +185.18841552734375, 0.46475231647491455; +185.2884063720703, 0.4714652895927429; +185.38841247558594, 0.47712773084640503; +185.4884033203125, 0.4794374108314514; +185.58839416503906, 0.4784911870956421; +185.68838500976562, 0.47639012336730957; +185.7883758544922, 0.47375261783599854; +185.8883819580078, 0.4713311791419983; +185.98837280273438, 0.47097355127334595; +186.08836364746094, 0.4729628562927246; +186.1883544921875, 0.4746243357658386; +186.28834533691406, 0.4748925566673279; +186.3883514404297, 0.47416985034942627; +186.48834228515625, 0.4716813564300537; +186.5883331298828, 0.46703219413757324; +186.68832397460938, 0.46131014823913574; +186.78831481933594, 0.4571974277496338; +186.8883056640625, 0.45599043369293213; +186.98831176757812, 0.4562661051750183; +187.0883026123047, 0.4566982388496399; +187.18829345703125, 0.4550144076347351; +187.2882843017578, 0.4508569836616516; +187.38827514648438, 0.4462301731109619; +187.48828125, 0.4406869411468506; +187.58827209472656, 0.43477863073349; +187.68826293945312, 0.43053925037384033; +187.7882537841797, 0.4309415817260742; +187.88824462890625, 0.43558329343795776; +187.98825073242188, 0.4410296678543091; +188.08824157714844, 0.44658780097961426; +188.188232421875, 0.45222043991088867; +188.28822326660156, 0.45721232891082764; +188.38821411132812, 0.45955926179885864; +188.48822021484375, 0.46008825302124023; +188.5882110595703, 0.46003609895706177; +188.68820190429688, 0.4598870873451233; +188.78819274902344, 0.4595741629600525; +188.88818359375, 0.45958906412124634; +188.98817443847656, 0.46180933713912964; +189.0881805419922, 0.4648640751838684; +189.18817138671875, 0.46740472316741943; +189.2881622314453, 0.4682689905166626; +189.38815307617188, 0.46781450510025024; +189.48814392089844, 0.4661679267883301; +189.58815002441406, 0.4639625549316406; +189.68814086914062, 0.46227872371673584; +189.7881317138672, 0.4605203866958618; +189.88812255859375, 0.45862793922424316; +189.9881134033203, 0.45590847730636597; +190.08811950683594, 0.45177340507507324; +190.1881103515625, 0.44523924589157104; +190.28810119628906, 0.43842196464538574; +190.38809204101562, 0.4359707236289978; +190.4880828857422, 0.438198447227478; +190.5880889892578, 0.44364482164382935; +190.68807983398438, 0.4502013325691223; +190.78807067871094, 0.45634061098098755; +190.8880615234375, 0.45993924140930176; +190.98805236816406, 0.4584267735481262; +191.08804321289062, 0.4534721374511719; +191.18804931640625, 0.4486292600631714; +191.2880401611328, 0.44536590576171875; +191.38803100585938, 0.44514238834381104; +191.48802185058594, 0.44786930084228516; +191.5880126953125, 0.4530027508735657; +191.68801879882812, 0.45831501483917236; +191.7880096435547, 0.4627108573913574; +191.88800048828125, 0.46794116497039795; +191.9879913330078, 0.47216564416885376; +192.08798217773438, 0.47346949577331543; +192.18798828125, 0.4727467894554138; +192.28797912597656, 0.4726722836494446; +192.38796997070312, 0.473804771900177; +192.4879608154297, 0.4734322428703308; +192.58795166015625, 0.471651554107666; +192.68795776367188, 0.4704222083091736; +192.78794860839844, 0.4698336124420166; +192.887939453125, 0.46996772289276123; +192.98793029785156, 0.4691183567047119; +193.08792114257812, 0.46674907207489014; +193.1879119873047, 0.46515464782714844; +193.2879180908203, 0.4660263657569885; +193.38790893554688, 0.4700273275375366; +193.48789978027344, 0.4730150103569031; +193.587890625, 0.4739686846733093; +193.68788146972656, 0.4753097891807556; +193.7878875732422, 0.47641992568969727; +193.88787841796875, 0.4764273762702942; +193.9878692626953, 0.47456473112106323; +194.08786010742188, 0.47391653060913086; +194.18785095214844, 0.4747360944747925; +194.28785705566406, 0.47466903924942017; +194.38784790039062, 0.47373026609420776; +194.4878387451172, 0.4728063941001892; +194.58782958984375, 0.4716441035270691; +194.6878204345703, 0.46953558921813965; +194.78782653808594, 0.46719610691070557; +194.8878173828125, 0.4664808511734009; +194.98780822753906, 0.46650320291519165; +195.08779907226562, 0.4658028483390808; +195.1877899169922, 0.46366453170776367; +195.28778076171875, 0.46097487211227417; +195.38778686523438, 0.45943260192871094; +195.48777770996094, 0.4588961601257324; +195.5877685546875, 0.45911967754364014; +195.68775939941406, 0.4581660032272339; +195.78775024414062, 0.4574283957481384; +195.88775634765625, 0.4584565758705139; +195.9877471923828, 0.4610121250152588; +196.08773803710938, 0.4631355404853821; +196.18772888183594, 0.46327710151672363; +196.2877197265625, 0.46431273221969604; +196.38772583007812, 0.46703219413757324; +196.4877166748047, 0.4690214991569519; +196.58770751953125, 0.46821683645248413; +196.6876983642578, 0.466175377368927; +196.78768920898438, 0.4656389355659485; +196.8876953125, 0.46612322330474854; +196.98768615722656, 0.4667937755584717; +197.08767700195312, 0.4672706127166748; +197.1876678466797, 0.46884268522262573; +197.28765869140625, 0.4720613360404968; +197.3876495361328, 0.47712773084640503; +197.48765563964844, 0.48442184925079346; +197.587646484375, 0.49138814210891724; +197.68763732910156, 0.49617886543273926; +197.78762817382812, 0.4976913332939148; +197.8876190185547, 0.49693137407302856; +197.9876251220703, 0.49599260091781616; +198.08761596679688, 0.49423426389694214; +198.18760681152344, 0.49136579036712646; +198.28759765625, 0.4887431859970093; +198.38758850097656, 0.4872232675552368; +198.4875946044922, 0.4867836833000183; +198.58758544921875, 0.48507750034332275; +198.6875762939453, 0.4814714193344116; +198.78756713867188, 0.4776492714881897; +198.88755798339844, 0.4745200276374817; +198.987548828125, 0.47404319047927856; +199.08755493164062, 0.47653913497924805; +199.1875457763672, 0.48066675662994385; +199.28753662109375, 0.4848167300224304; +199.3875274658203, 0.4871487617492676; +199.48751831054688, 0.48798322677612305; +199.5875244140625, 0.48676133155822754; +199.68751525878906, 0.48325955867767334; +199.78750610351562, 0.47791749238967896; +199.8874969482422, 0.4710480570793152; +199.98748779296875, 0.46393275260925293; +200.08749389648438, 0.4585087299346924; +200.18748474121094, 0.45612454414367676; +200.2874755859375, 0.4555061459541321; +200.38746643066406, 0.45599043369293213; +200.48745727539062, 0.4590526223182678; +200.58746337890625, 0.4664883017539978; +200.6874542236328, 0.47495216131210327; +200.78744506835938, 0.48148632049560547; +200.88743591308594, 0.48607587814331055; +200.9874267578125, 0.48867613077163696; +201.08741760253906, 0.48866868019104004; +201.1874237060547, 0.4855990409851074; +201.28741455078125, 0.48229843378067017; +201.3874053955078, 0.47782808542251587; +201.48739624023438, 0.4723891615867615; +201.58738708496094, 0.46844035387039185; +201.68739318847656, 0.4678964614868164; +201.78738403320312, 0.4695504903793335; +201.8873748779297, 0.4717335104942322; +201.98736572265625, 0.4756525158882141; +202.0873565673828, 0.4801899194717407; +202.18736267089844, 0.48267096281051636; +202.287353515625, 0.4831477999687195; +202.38734436035156, 0.4842430353164673; +202.48733520507812, 0.4865378141403198; +202.5873260498047, 0.48786401748657227; +202.6873321533203, 0.487305223941803; +202.78732299804688, 0.4866942763328552; +202.88731384277344, 0.4873424768447876; +202.9873046875, 0.4876628518104553; +203.08729553222656, 0.48647820949554443; +203.18728637695312, 0.4856809973716736; +203.28729248046875, 0.48726052045822144; +203.3872833251953, 0.49055367708206177; +203.48727416992188, 0.49295276403427124; +203.58726501464844, 0.4960298538208008; +203.687255859375, 0.5001574754714966; +203.78726196289062, 0.5030035972595215; +203.8872528076172, 0.5029365420341492; +203.98724365234375, 0.5013421177864075; +204.0872344970703, 0.5005151033401489; +204.18722534179688, 0.49833208322525024; +204.2872314453125, 0.49395114183425903; +204.38722229003906, 0.49079209566116333; +204.48721313476562, 0.491216778755188; +204.5872039794922, 0.49585849046707153; +204.68719482421875, 0.5015358328819275; +204.78720092773438, 0.5048662424087524; +204.88719177246094, 0.5069747567176819; +204.9871826171875, 0.5088597536087036; +205.08717346191406, 0.5097314715385437; +205.18716430664062, 0.5057975649833679; +205.2871551513672, 0.49971044063568115; +205.3871612548828, 0.49871206283569336; +205.48715209960938, 0.502556562423706; +205.58714294433594, 0.5058050155639648; +205.6871337890625, 0.5062073469161987; +205.78712463378906, 0.5063489079475403; +205.8871307373047, 0.5057156085968018; +205.98712158203125, 0.5020797252655029; +206.0871124267578, 0.4968494176864624; +206.18710327148438, 0.49555301666259766; +206.28709411621094, 0.4983469843864441; +206.38710021972656, 0.5023777484893799; +206.48709106445312, 0.5049929022789001; +206.5870819091797, 0.5058273673057556; +206.68707275390625, 0.504709780216217; +206.7870635986328, 0.4993230104446411; +206.88706970214844, 0.49233436584472656; +206.987060546875, 0.48676878213882446; +207.08705139160156, 0.4855915904045105; +207.18704223632812, 0.48594921827316284; +207.2870330810547, 0.4861578345298767; +207.38702392578125, 0.48742443323135376; +207.48703002929688, 0.4905015230178833; +207.58702087402344, 0.4927441477775574; +207.68701171875, 0.4909709095954895; +207.78700256347656, 0.48866868019104004; +207.88699340820312, 0.4887431859970093; +207.98699951171875, 0.4898160696029663; +208.0869903564453, 0.48866868019104004; +208.18698120117188, 0.4861578345298767; +208.28697204589844, 0.484660267829895; +208.386962890625, 0.48432499170303345; +208.48696899414062, 0.48553943634033203; +208.5869598388672, 0.4892498254776001; +208.68695068359375, 0.495418906211853; +208.7869415283203, 0.5036145448684692; +208.88693237304688, 0.5126670002937317; +208.9869384765625, 0.5198270082473755; +209.08692932128906, 0.5215480923652649; +209.18692016601562, 0.5187913775444031; +209.2869110107422, 0.515379011631012; +209.38690185546875, 0.5114078521728516; +209.4868927001953, 0.5064830183982849; +209.58689880371094, 0.501774251461029; +209.6868896484375, 0.5008578300476074; +209.78688049316406, 0.5013570189476013; +209.88687133789062, 0.4998445510864258; +209.9868621826172, 0.4977285861968994; +210.0868682861328, 0.49770623445510864; +210.18685913085938, 0.49962103366851807; +210.28684997558594, 0.4989206790924072; +210.3868408203125, 0.49751996994018555; +210.48683166503906, 0.49787014722824097; +210.5868377685547, 0.5003660917282104; +210.68682861328125, 0.5022436380386353; +210.7868194580078, 0.5016550421714783; +210.88681030273438, 0.5002990365028381; +210.98680114746094, 0.49880892038345337; +211.08680725097656, 0.4970729351043701; +211.18679809570312, 0.4956275224685669; +211.2867889404297, 0.4961341619491577; +211.38677978515625, 0.5006566643714905; +211.4867706298828, 0.5079135298728943; +211.58676147460938, 0.5145594477653503; +211.686767578125, 0.5194917321205139; +211.78675842285156, 0.521630048751831; +211.88674926757812, 0.5194768309593201; +211.9867401123047, 0.511951744556427; +212.08673095703125, 0.5028471350669861; +212.18673706054688, 0.4972293972969055; +212.28672790527344, 0.4959404468536377; +212.38671875, 0.49760937690734863; +212.48670959472656, 0.49971044063568115; +212.58670043945312, 0.5016401410102844; +212.68670654296875, 0.5015432834625244; +212.7866973876953, 0.4985928535461426; +212.88668823242188, 0.494152307510376; +212.98667907714844, 0.491410493850708; +213.086669921875, 0.49295276403427124; +213.18667602539062, 0.4994794726371765; +213.2866668701172, 0.509411096572876; +213.38665771484375, 0.5210563540458679; +213.4866485595703, 0.5312561988830566; +213.58663940429688, 0.5361959338188171; +213.68663024902344, 0.5366802215576172; +213.78663635253906, 0.5344003438949585; +213.88662719726562, 0.5317330360412598; +213.9866180419922, 0.5275681614875793; +214.08660888671875, 0.5228817462921143; +214.1865997314453, 0.5197897553443909; +214.28660583496094, 0.5180016160011292; +214.3865966796875, 0.5153119564056396; +214.48658752441406, 0.5105361342430115; +214.58657836914062, 0.505790114402771; +214.6865692138672, 0.5029812455177307; +214.7865753173828, 0.5007758736610413; +214.88656616210938, 0.4981234669685364; +214.98655700683594, 0.49605220556259155; +215.0865478515625, 0.49507617950439453; +215.18653869628906, 0.49539655447006226; +215.28652954101562, 0.4956647753715515; +215.38653564453125, 0.4954710602760315; +215.4865264892578, 0.49395114183425903; +215.58651733398438, 0.4916265606880188; +215.68650817871094, 0.49030035734176636; +215.7864990234375, 0.4892870783805847; +215.88650512695312, 0.48592686653137207; +215.9864959716797, 0.4806593060493469; +216.08648681640625, 0.4770010709762573; +216.1864776611328, 0.4761219024658203; +216.28646850585938, 0.4755556583404541; +216.386474609375, 0.4738345742225647; +216.48646545410156, 0.4745498299598694; +216.58645629882812, 0.4792064428329468; +216.6864471435547, 0.48510730266571045; +216.78643798828125, 0.48933178186416626; +216.88644409179688, 0.4916340112686157; +216.98643493652344, 0.4938095808029175; +217.08642578125, 0.49377232789993286; +217.18641662597656, 0.4924312233924866; +217.28640747070312, 0.49208104610443115; +217.3863983154297, 0.49495697021484375; +217.4864044189453, 0.5001947283744812; +217.58639526367188, 0.5026683211326599; +217.68638610839844, 0.5039423704147339; +217.786376953125, 0.5045086145401001; +217.88636779785156, 0.5056709051132202; +217.9863739013672, 0.5067437887191772; +218.08636474609375, 0.5064085125923157; +218.1863555908203, 0.5064010620117188; +218.28634643554688, 0.5043745040893555; +218.38633728027344, 0.5013048648834229; +218.48634338378906, 0.4959180951118469; +218.58633422851562, 0.48823654651641846; +218.6863250732422, 0.4808679223060608; +218.78631591796875, 0.47609955072402954; +218.8863067626953, 0.47584623098373413; +218.98631286621094, 0.47710537910461426; +219.0863037109375, 0.47988444566726685; +219.18629455566406, 0.48401206731796265; +219.28628540039062, 0.4883483052253723; +219.3862762451172, 0.49227476119995117; +219.48626708984375, 0.4961267113685608; +219.58627319335938, 0.500112771987915; +219.68626403808594, 0.5029216408729553; +219.7862548828125, 0.50363689661026; +219.88624572753906, 0.504128634929657; +219.98623657226562, 0.5044862627983093; +220.08624267578125, 0.5041435360908508; +220.1862335205078, 0.5040615797042847; +220.28622436523438, 0.5057230591773987; +220.38621520996094, 0.5096197128295898; +220.4862060546875, 0.5124881863594055; +220.58621215820312, 0.5126222968101501; +220.6862030029297, 0.5112215876579285; +220.78619384765625, 0.5084648728370667; +220.8861846923828, 0.502951443195343; +220.98617553710938, 0.4952922463417053; +221.086181640625, 0.48923492431640625; +221.18617248535156, 0.4880949854850769; +221.28616333007812, 0.48885494470596313; +221.3861541748047, 0.49005448818206787; +221.48614501953125, 0.4917606711387634; +221.5861358642578, 0.4939958453178406; +221.68614196777344, 0.49515068531036377; +221.7861328125, 0.49411505460739136; +221.88612365722656, 0.4941672086715698; +221.98611450195312, 0.49582868814468384; +222.0861053466797, 0.49845874309539795; +222.1861114501953, 0.5003288388252258; +222.28610229492188, 0.5017593502998352; +222.38609313964844, 0.5035549402236938; +222.486083984375, 0.5032047629356384; +222.58607482910156, 0.49927830696105957; +222.6860809326172, 0.4935935139656067; +222.78607177734375, 0.4890710115432739; +222.8860626220703, 0.4864037036895752; +222.98605346679688, 0.4842430353164673; +223.08604431152344, 0.48357993364334106; +223.18605041503906, 0.4849433898925781; +223.28604125976562, 0.48595666885375977; +223.3860321044922, 0.48564374446868896; +223.48602294921875, 0.48392266035079956; +223.5860137939453, 0.481240451335907; +223.68600463867188, 0.4777461290359497; +223.7860107421875, 0.47532469034194946; +223.88600158691406, 0.4750862717628479; +223.98599243164062, 0.4757121205329895; +224.0859832763672, 0.47700852155685425; +224.18597412109375, 0.4796832799911499; +224.28598022460938, 0.48360973596572876; +224.38597106933594, 0.4868507385253906; +224.4859619140625, 0.48846006393432617; +224.58595275878906, 0.48976391553878784; +224.68594360351562, 0.49079954624176025; +224.78594970703125, 0.4919692873954773; +224.8859405517578, 0.49342215061187744; +224.98593139648438, 0.4965290427207947; +225.08592224121094, 0.5012974143028259; +225.1859130859375, 0.505104660987854; +225.28591918945312, 0.5065649747848511; +225.3859100341797, 0.5056336522102356; +225.48590087890625, 0.5040019750595093; +225.5858917236328, 0.5020871758460999; +225.68588256835938, 0.5000382661819458; +225.78587341308594, 0.49818307161331177; +225.88587951660156, 0.4966333508491516; +225.98587036132812, 0.4969462752342224; +226.0858612060547, 0.4990026354789734; +226.18585205078125, 0.5012303590774536; +226.2858428955078, 0.5027875304222107; +226.38584899902344, 0.5040764808654785; +226.48583984375, 0.5060359835624695; +226.58583068847656, 0.5046874284744263; +226.68582153320312, 0.49849599599838257; +226.7858123779297, 0.49047917127609253; +226.8858184814453, 0.48520416021347046; +226.98580932617188, 0.4835277795791626; +227.08580017089844, 0.48370659351348877; +227.185791015625, 0.48551708459854126; +227.28578186035156, 0.4889294505119324; +227.3857879638672, 0.4913508892059326; +227.48577880859375, 0.49014389514923096; +227.5857696533203, 0.48798322677612305; +227.68576049804688, 0.48707425594329834; +227.78575134277344, 0.488772988319397; +227.8857421875, 0.4918724298477173; +227.98574829101562, 0.49593299627304077; +228.0857391357422, 0.5007311701774597; +228.18572998046875, 0.5035623908042908; +228.2857208251953, 0.5035102367401123; +228.38571166992188, 0.5005896091461182; +228.4857177734375, 0.49632787704467773; +228.58570861816406, 0.49126148223876953; +228.68569946289062, 0.4854723811149597; +228.7856903076172, 0.48172473907470703; +228.88568115234375, 0.48220157623291016; +228.98568725585938, 0.4852190613746643; +229.08567810058594, 0.48758089542388916; +229.1856689453125, 0.48951804637908936; +229.28565979003906, 0.49211084842681885; +229.38565063476562, 0.49229711294174194; +229.48565673828125, 0.4878491163253784; +229.5856475830078, 0.4818961024284363; +229.68563842773438, 0.47897547483444214; +229.78562927246094, 0.4790574312210083; +229.8856201171875, 0.4800856113433838; +229.98561096191406, 0.4826858639717102; +230.0856170654297, 0.4869401454925537; +230.18560791015625, 0.4914030432701111; +230.2855987548828, 0.4937276244163513; +230.38558959960938, 0.493563711643219; +230.48558044433594, 0.49079954624176025; +230.58558654785156, 0.48564374446868896; +230.68557739257812, 0.4801824688911438; +230.7855682373047, 0.47644972801208496; +230.88555908203125, 0.4752501845359802; +230.9855499267578, 0.4752129316329956; +231.08555603027344, 0.47691911458969116; +231.185546875, 0.48107653856277466; +231.28553771972656, 0.4867091774940491; +231.38552856445312, 0.4916340112686157; +231.4855194091797, 0.494636595249176; +231.58551025390625, 0.49805641174316406; +231.68551635742188, 0.5014464259147644; +231.78550720214844, 0.502757728099823; +231.885498046875, 0.5012080073356628; +231.98548889160156, 0.4986971616744995; +232.08547973632812, 0.49739331007003784; +232.18548583984375, 0.4950612783432007; +232.2854766845703, 0.4926025867462158; +232.38546752929688, 0.4927143454551697; +232.48545837402344, 0.4954040050506592; +232.58544921875, 0.49880146980285645; +232.68545532226562, 0.4999116063117981; +232.7854461669922, 0.49955397844314575; +232.88543701171875, 0.49814581871032715; +232.9854278564453, 0.497572124004364; +233.08541870117188, 0.49920380115509033; +233.1854248046875, 0.5002692341804504; +233.28541564941406, 0.49945712089538574; +233.38540649414062, 0.49682706594467163; +233.4853973388672, 0.49526989459991455; +233.58538818359375, 0.49336254596710205; +233.6853790283203, 0.49005448818206787; +233.78538513183594, 0.4886612296104431; +233.8853759765625, 0.4921257495880127; +233.98536682128906, 0.5005523562431335; +234.08535766601562, 0.5085542798042297; +234.1853485107422, 0.5121231079101562; +234.2853546142578, 0.5120337009429932; +234.38534545898438, 0.5096793174743652; +234.48533630371094, 0.5049780011177063; +234.5853271484375, 0.49705058336257935; +234.68531799316406, 0.4880577325820923; +234.7853240966797, 0.4817098379135132; +234.88531494140625, 0.4787519574165344; +234.9853057861328, 0.4767179489135742; +235.08529663085938, 0.4747733473777771; +235.18528747558594, 0.47350674867630005; +235.28529357910156, 0.4739239811897278; +235.38528442382812, 0.4762783646583557; +235.4852752685547, 0.47982484102249146; +235.58526611328125, 0.4842504858970642; +235.6852569580078, 0.4887580871582031; +235.78524780273438, 0.4924982786178589; +235.88525390625, 0.49411505460739136; +235.98524475097656, 0.49376487731933594; +236.08523559570312, 0.4919320344924927; +236.1852264404297, 0.4896000027656555; +236.28521728515625, 0.4872754216194153; +236.38522338867188, 0.48645585775375366; +236.48521423339844, 0.4879012703895569; +236.585205078125, 0.4907771944999695; +236.68519592285156, 0.49276649951934814; +236.78518676757812, 0.49267709255218506; +236.88519287109375, 0.49255043268203735; +236.9851837158203, 0.49445778131484985; +237.08517456054688, 0.49871206283569336; +237.18516540527344, 0.5026981234550476; +237.28515625, 0.505201518535614; +237.38516235351562, 0.506274402141571; +237.4851531982422, 0.5065128207206726; +237.58514404296875, 0.5043298006057739; +237.6851348876953, 0.49870461225509644; +237.78512573242188, 0.48929452896118164; +237.88511657714844, 0.47853589057922363; +237.98512268066406, 0.4704520106315613; +238.08511352539062, 0.46465545892715454; +238.1851043701172, 0.46119093894958496; +238.28509521484375, 0.45987963676452637; +238.3850860595703, 0.46347081661224365; +238.48509216308594, 0.4709213972091675; +238.5850830078125, 0.47800689935684204; +238.68507385253906, 0.48220157623291016; +238.78506469726562, 0.48153847455978394; +238.8850555419922, 0.47675520181655884; +238.9850616455078, 0.46937912702560425; +239.08505249023438, 0.4624202847480774; +239.18504333496094, 0.45787543058395386; +239.2850341796875, 0.4552900791168213; +239.38502502441406, 0.45511871576309204; +239.4850311279297, 0.4587620496749878; +239.58502197265625, 0.4648268222808838; +239.6850128173828, 0.470183789730072; +239.78500366210938, 0.4726499319076538; +239.88499450683594, 0.47403573989868164; +239.9849853515625, 0.47639012336730957; +240.08499145507812, 0.4782527685165405; +240.1849822998047, 0.4793107509613037; +240.28497314453125, 0.4803016781806946; +240.3849639892578, 0.4820525646209717; +240.48495483398438, 0.48492103815078735; +240.5849609375, 0.48911571502685547; +240.68495178222656, 0.49533694982528687; +240.78494262695312, 0.5009546875953674; +240.8849334716797, 0.5035102367401123; +240.98492431640625, 0.502273440361023; +241.08493041992188, 0.49786269664764404; +241.18492126464844, 0.4914402961730957; +241.284912109375, 0.4837214946746826; +241.38490295410156, 0.4788339138031006; +241.48489379882812, 0.4791542887687683; +241.58489990234375, 0.48451870679855347; +241.6848907470703, 0.49179792404174805; +241.78488159179688, 0.49768388271331787; +241.88487243652344, 0.5010142922401428; +241.98486328125, 0.49955397844314575; +242.08485412597656, 0.4934072494506836; +242.1848602294922, 0.48522651195526123; +242.28485107421875, 0.479184091091156; +242.3848419189453, 0.477030873298645; +242.48483276367188, 0.47639012336730957; +242.58482360839844, 0.47701597213745117; +242.68482971191406, 0.47704577445983887; +242.78482055664062, 0.4762411117553711; +242.8848114013672, 0.4738643765449524; +242.98480224609375, 0.4717782139778137; +243.0847930908203, 0.47218799591064453; +243.18479919433594, 0.4736408591270447; +243.2847900390625, 0.4775300621986389; +243.38478088378906, 0.482410192489624; +243.48477172851562, 0.48661231994628906; +243.5847625732422, 0.4876479506492615; +243.6847686767578, 0.48526376485824585; +243.78475952148438, 0.48167258501052856; +243.88475036621094, 0.4774704575538635; +243.9847412109375, 0.47357380390167236; +244.08473205566406, 0.4709884524345398; +244.18472290039062, 0.4686117172241211; +244.28472900390625, 0.4669949412345886; +244.3847198486328, 0.4671141505241394; +244.48471069335938, 0.4692748188972473; +244.58470153808594, 0.47273188829421997; +244.6846923828125, 0.47544389963150024; +244.78469848632812, 0.4784688353538513; +244.8846893310547, 0.48229098320007324; +244.98468017578125, 0.48567354679107666; +245.0846710205078, 0.48692524433135986; +245.18466186523438, 0.4854351282119751; +245.28466796875, 0.4825964570045471; +245.38465881347656, 0.4781484603881836; +245.48464965820312, 0.47135353088378906; +245.5846405029297, 0.4636123776435852; +245.68463134765625, 0.4588514566421509; +245.78463745117188, 0.4591122269630432; +245.88462829589844, 0.46350061893463135; +245.984619140625, 0.4699230194091797; +246.08460998535156, 0.4762411117553711; +246.18460083007812, 0.4819408059120178; +246.2845916748047, 0.48469752073287964; +246.3845977783203, 0.48442184925079346; +246.48458862304688, 0.48147886991500854; +246.58457946777344, 0.4775524139404297; +246.6845703125, 0.4734024405479431; +246.78456115722656, 0.4683658480644226; +246.8845672607422, 0.46418607234954834; +246.98455810546875, 0.4623532295227051; +247.0845489501953, 0.4640519618988037; +247.18453979492188, 0.4682019352912903; +247.28453063964844, 0.47440826892852783; +247.38453674316406, 0.48154592514038086; +247.48452758789062, 0.4874393343925476; +247.5845184326172, 0.48958510160446167; +247.68450927734375, 0.48635154962539673; +247.7845001220703, 0.4795342683792114; +247.88450622558594, 0.472433865070343; +247.9844970703125, 0.4677698016166687; +248.08448791503906, 0.4662126302719116; +248.18447875976562, 0.4659593105316162; +248.2844696044922, 0.4663243889808655; +248.38446044921875, 0.46740472316741943; +248.48446655273438, 0.4687681794166565; +248.58445739746094, 0.46987831592559814; +248.6844482421875, 0.46965479850769043; +248.78443908691406, 0.46969205141067505; +248.88442993164062, 0.4706457257270813; +248.98443603515625, 0.47194212675094604; +249.0844268798828, 0.47156959772109985; +249.18441772460938, 0.4695132374763489; +249.28440856933594, 0.46687573194503784; +249.3843994140625, 0.46409666538238525; +249.48440551757812, 0.46262890100479126; +249.5843963623047, 0.4637092351913452; +249.68438720703125, 0.46769529581069946; +249.7843780517578, 0.4711821675300598; +249.88436889648438, 0.4723966121673584; +249.98435974121094, 0.4727169871330261; +250.08436584472656, 0.47384947538375854; +250.18435668945312, 0.47516077756881714; +250.2843475341797, 0.47584623098373413; +250.38433837890625, 0.4763305187225342; +250.4843292236328, 0.47738850116729736; +250.58433532714844, 0.4776269197463989; +250.684326171875, 0.47656893730163574; +250.78431701660156, 0.4766210913658142; +250.88430786132812, 0.47751516103744507; +250.9842987060547, 0.47788023948669434; +251.0843048095703, 0.4755929112434387; +251.18429565429688, 0.4723742604255676; +251.28428649902344, 0.4692673683166504; +251.38427734375, 0.4647970199584961; +251.48426818847656, 0.4600211977958679; +251.5842742919922, 0.4574283957481384; +251.68426513671875, 0.4575476050376892; +251.7842559814453, 0.45724213123321533; +251.88424682617188, 0.4553496837615967; +251.98423767089844, 0.4528239369392395; +252.084228515625, 0.45099109411239624; +252.18423461914062, 0.45015662908554077; +252.2842254638672, 0.45036524534225464; +252.38421630859375, 0.45233964920043945; +252.4842071533203, 0.4549473524093628; +252.58419799804688, 0.4575178027153015; +252.6842041015625, 0.4601478576660156; +252.78419494628906, 0.4615858197212219; +252.88418579101562, 0.4634931683540344; +252.9841766357422, 0.46690553426742554; +253.08416748046875, 0.4706829786300659; +253.18417358398438, 0.4713386297225952; +253.28416442871094, 0.4665106534957886; +253.3841552734375, 0.4604607820510864; +253.48414611816406, 0.455513596534729; +253.58413696289062, 0.4506409168243408; +253.68414306640625, 0.4458427429199219; +253.7841339111328, 0.4444047808647156; +253.88412475585938, 0.4471093416213989; +253.98411560058594, 0.44939666986465454; +254.0841064453125, 0.4497915506362915; +254.18409729003906, 0.4501417279243469; +254.2841033935547, 0.45140087604522705; +254.38409423828125, 0.4520416259765625; +254.4840850830078, 0.4532262682914734; +254.58407592773438, 0.45778602361679077; +254.68406677246094, 0.464119017124176; +254.78407287597656, 0.4706084728240967; +254.88406372070312, 0.4764869809150696; +254.9840545654297, 0.4805326461791992; +255.08404541015625, 0.48048049211502075; +255.1840362548828, 0.47522783279418945; +255.28404235839844, 0.4681050777435303; +255.384033203125, 0.46112388372421265; +255.48402404785156, 0.4560127854347229; +255.58401489257812, 0.4529878497123718; +255.6840057373047, 0.450916588306427; +255.7840118408203, 0.4498586058616638; +255.88400268554688, 0.44942647218704224; +255.98399353027344, 0.45130401849746704; +256.083984375, 0.4545077681541443; +256.1839904785156, 0.45796483755111694; +256.2839660644531, 0.46259164810180664; +256.38397216796875, 0.46865642070770264; +256.48394775390625, 0.47498196363449097; +256.5839538574219, 0.4774332046508789; +256.6839599609375, 0.4752501845359802; +256.783935546875, 0.4710257053375244; +256.8839416503906, 0.46709924936294556; +256.9839172363281, 0.46359747648239136; +257.08392333984375, 0.45953691005706787; +257.1839294433594, 0.4564449191093445; +257.2839050292969, 0.45524537563323975; +257.3839111328125, 0.4563480615615845; +257.48388671875, 0.4585757851600647; +257.5838928222656, 0.46156346797943115; +257.68389892578125, 0.4656091332435608; +257.78387451171875, 0.469990074634552; +257.8838806152344, 0.47425925731658936; +257.9838562011719, 0.4765018820762634; +258.0838623046875, 0.47670304775238037; +258.1838684082031, 0.4747360944747925; +258.2838439941406, 0.4714950919151306; +258.38385009765625, 0.46800076961517334; +258.48382568359375, 0.4641339182853699; +258.5838317871094, 0.46081095933914185; +258.683837890625, 0.45809149742126465; +258.7838134765625, 0.45662373304367065; +258.8838195800781, 0.4546418786048889; +258.9837951660156, 0.4501268267631531; +259.08380126953125, 0.4441961646080017; +259.18377685546875, 0.439472496509552; +259.2837829589844, 0.4379451274871826; +259.3837890625, 0.4381611943244934; +259.4837646484375, 0.4399791359901428; +259.5837707519531, 0.4451647400856018; +259.6837463378906, 0.45236945152282715; +259.78375244140625, 0.45831501483917236; +259.8837585449219, 0.46087801456451416; +259.9837341308594, 0.4615113139152527; +260.083740234375, 0.4627034068107605; +260.1837158203125, 0.4628896713256836; +260.2837219238281, 0.4623234272003174; +260.38372802734375, 0.46136975288391113; +260.48370361328125, 0.4607364535331726; +260.5837097167969, 0.45999884605407715; +260.6836853027344, 0.4576444625854492; +260.78369140625, 0.45531243085861206; +260.8836975097656, 0.4533231258392334; +260.9836730957031, 0.4530996084213257; +261.08367919921875, 0.4531368613243103; +261.18365478515625, 0.45274943113327026; +261.2836608886719, 0.45277178287506104; +261.3836669921875, 0.4527568817138672; +261.483642578125, 0.4524439573287964; +261.5836486816406, 0.4497841000556946; +261.6836242675781, 0.44649094343185425; +261.78363037109375, 0.44430047273635864; +261.8836364746094, 0.4433095455169678; +261.9836120605469, 0.4437267780303955; +262.0836181640625, 0.4455745220184326; +262.18359375, 0.4480406641960144; +262.2835998535156, 0.4510805010795593; +262.38360595703125, 0.4550069570541382; +262.48358154296875, 0.45891106128692627; +262.5835876464844, 0.461481511592865; +262.6835632324219, 0.4631131887435913; +262.7835693359375, 0.46694278717041016; +262.8835754394531, 0.4711821675300598; +262.9835510253906, 0.4722177982330322; +263.08355712890625, 0.4692152142524719; +263.18353271484375, 0.4633292555809021; +263.2835388183594, 0.4563182592391968; +263.3835144042969, 0.44945627450942993; +263.4835205078125, 0.44558197259902954; +263.5835266113281, 0.44593214988708496; +263.6835021972656, 0.4504546523094177; +263.78350830078125, 0.4576444625854492; +263.88348388671875, 0.46397000551223755; +263.9834899902344, 0.4668384790420532; +264.08349609375, 0.4658997058868408; +264.1834716796875, 0.4640519618988037; +264.2834777832031, 0.46139955520629883; +264.3834533691406, 0.45834481716156006; +264.48345947265625, 0.45593082904815674; +264.5834655761719, 0.45423954725265503; +264.6834411621094, 0.45258551836013794; +264.783447265625, 0.45021623373031616; +264.8834228515625, 0.4485324025154114; +264.9834289550781, 0.4467219114303589; +265.08343505859375, 0.4448890686035156; +265.18341064453125, 0.4445984959602356; +265.2834167480469, 0.44715404510498047; +265.3833923339844, 0.45137107372283936; +265.4833984375, 0.45439600944519043; +265.5834045410156, 0.4569888114929199; +265.6833801269531, 0.46050548553466797; +265.78338623046875, 0.4648864269256592; +265.88336181640625, 0.4682689905166626; +265.9833679199219, 0.4689842462539673; +266.0833740234375, 0.46722590923309326; +266.183349609375, 0.46362727880477905; +266.2833557128906, 0.45771896839141846; +266.3833312988281, 0.449545681476593; +266.48333740234375, 0.4404783248901367; +266.5833435058594, 0.4320889711380005; +266.6833190917969, 0.425972044467926; +266.7833251953125, 0.42369961738586426; +266.88330078125, 0.42563676834106445; +266.9833068847656, 0.42901188135147095; +267.08331298828125, 0.4305317997932434; +267.18328857421875, 0.43026357889175415; +267.2832946777344, 0.4307106137275696; +267.3832702636719, 0.43195486068725586; +267.4832763671875, 0.43314695358276367; +267.583251953125, 0.4347488284111023; +267.6832580566406, 0.4389733076095581; +267.78326416015625, 0.4438459873199463; +267.88323974609375, 0.44627487659454346; +267.9832458496094, 0.44579803943634033; +268.0832214355469, 0.444166362285614; +268.1832275390625, 0.4428848624229431; +268.2832336425781, 0.4403144121170044; +268.3832092285156, 0.4385337233543396; +268.48321533203125, 0.4394948482513428; +268.58319091796875, 0.44179707765579224; +268.6831970214844, 0.44269859790802; +268.783203125, 0.4416331648826599; +268.8831787109375, 0.44049322605133057; +268.9831848144531, 0.4402175545692444; +269.0831604003906, 0.4392564296722412; +269.18316650390625, 0.437416136264801; +269.2831726074219, 0.43636560440063477; +269.3831481933594, 0.4367157816886902; +269.483154296875, 0.4377290606498718; +269.5831298828125, 0.43945759534835815; +269.6831359863281, 0.4415437579154968; +269.78314208984375, 0.44318288564682007; +269.88311767578125, 0.4425719380378723; +269.9831237792969, 0.441625714302063; +270.0830993652344, 0.44292956590652466; +270.18310546875, 0.4458501935005188; +270.2831115722656, 0.4497244954109192; +270.3830871582031, 0.4551112651824951; +270.48309326171875, 0.46228617429733276; +270.58306884765625, 0.46721845865249634; +270.6830749511719, 0.46556442975997925; +270.7830810546875, 0.45847147703170776; +270.883056640625, 0.44989585876464844; +270.9830627441406, 0.4407912492752075; +271.0830383300781, 0.43204426765441895; +271.18304443359375, 0.42641907930374146; +271.2830505371094, 0.4283040761947632; +271.3830261230469, 0.43372809886932373; +271.4830322265625, 0.43660402297973633; +271.5830078125, 0.438101589679718; +271.6830139160156, 0.44085830450057983; +271.7829895019531, 0.44548511505126953; +271.88299560546875, 0.4463568329811096; +271.9830017089844, 0.44462084770202637; +272.0829772949219, 0.44364482164382935; +272.1829833984375, 0.4421621561050415; +272.282958984375, 0.4380717873573303; +272.3829650878906, 0.4307180643081665; +272.48297119140625, 0.4250034689903259; +272.58294677734375, 0.42060762643814087; +272.6829528808594, 0.41648000478744507; +272.7829284667969, 0.4135817289352417; +272.8829345703125, 0.41315704584121704; +272.9829406738281, 0.41387975215911865; +273.0829162597656, 0.4121512174606323; +273.18292236328125, 0.41103363037109375; +273.28289794921875, 0.4132464528083801; +273.3829040527344, 0.41765719652175903; +273.48291015625, 0.42132288217544556; +273.5828857421875, 0.42360275983810425; +273.6828918457031, 0.4266276955604553; +273.7828674316406, 0.42825937271118164; +273.88287353515625, 0.4273727536201477; +273.9828796386719, 0.4239082336425781; +274.0828552246094, 0.4199966788291931; +274.182861328125, 0.4179328680038452; +274.2828369140625, 0.42053312063217163; +274.3828430175781, 0.4268139600753784; +274.48284912109375, 0.43229758739471436; +274.58282470703125, 0.4347562789916992; +274.6828308105469, 0.43614208698272705; +274.7828063964844, 0.4389062523841858; +274.8828125, 0.4390701651573181; +274.9828186035156, 0.4343166947364807; +275.0827941894531, 0.4277825355529785; +275.18280029296875, 0.4244595766067505; +275.28277587890625, 0.4225596785545349; +275.3827819824219, 0.41757524013519287; +275.4827575683594, 0.41093677282333374; +275.582763671875, 0.4082620143890381; +275.6827697753906, 0.41031092405319214; +275.7827453613281, 0.41346997022628784; +275.88275146484375, 0.4162043333053589; +275.98272705078125, 0.4201829433441162; +276.0827331542969, 0.42538344860076904; +276.1827392578125, 0.4282146692276001; +276.28271484375, 0.4276558756828308; +276.3827209472656, 0.4251524806022644; +276.4826965332031, 0.42366236448287964; +276.58270263671875, 0.4239603877067566; +276.6827087402344, 0.42497366666793823; +276.7826843261719, 0.42670220136642456; +276.8826904296875, 0.42910128831863403; +276.982666015625, 0.43182075023651123; +277.0826721191406, 0.4336312413215637; +277.18267822265625, 0.43299049139022827; +277.28265380859375, 0.4298165440559387; +277.3826599121094, 0.4253461956977844; +277.4826354980469, 0.4227384924888611; +277.5826416015625, 0.4223436117172241; +277.6826477050781, 0.42238831520080566; +277.7826232910156, 0.42188167572021484; +277.88262939453125, 0.42250752449035645; +277.98260498046875, 0.42520463466644287; +278.0826110839844, 0.42753666639328003; +278.1826171875, 0.42957067489624023; +278.2825927734375, 0.43258070945739746; +278.3825988769531, 0.4368722438812256; +278.4825744628906, 0.4397928714752197; +278.58258056640625, 0.4405975341796875; +278.6825866699219, 0.4399046301841736; +278.7825622558594, 0.4377216100692749; +278.882568359375, 0.43398141860961914; +278.9825439453125, 0.4301220178604126; +279.0825500488281, 0.4279091954231262; +279.18255615234375, 0.4275813698768616; +279.28253173828125, 0.4266798496246338; +279.3825378417969, 0.42385607957839966; +279.4825134277344, 0.42013823986053467; +279.58251953125, 0.41788816452026367; +279.6824951171875, 0.41815638542175293; +279.7825012207031, 0.4179850220680237; +279.88250732421875, 0.417955219745636; +279.98248291015625, 0.4215240478515625; +280.0824890136719, 0.4293769598007202; +280.1824645996094, 0.43680518865585327; +280.282470703125, 0.43929368257522583; +280.3824768066406, 0.43933093547821045; +280.4824523925781, 0.4398748278617859; +280.58245849609375, 0.43880194425582886; +280.68243408203125, 0.432819128036499; +280.7824401855469, 0.4232674837112427; +280.8824462890625, 0.4148930311203003; +280.982421875, 0.40965527296066284; +281.0824279785156, 0.40671974420547485; +281.1824035644531, 0.405237078666687; +281.28240966796875, 0.40596723556518555; +281.3824157714844, 0.4081428050994873; +281.4823913574219, 0.40997564792633057; +281.5823974609375, 0.4102960228919983; +281.682373046875, 0.41047483682632446; +281.7823791503906, 0.4118978977203369; +281.88238525390625, 0.41407346725463867; +281.98236083984375, 0.4170611500740051; +282.0823669433594, 0.42047351598739624; +282.1823425292969, 0.42410939931869507; +282.2823486328125, 0.4256218671798706; +282.3823547363281, 0.4235804080963135; +282.4823303222656, 0.41925162076950073; +282.58233642578125, 0.4148557782173157; +282.68231201171875, 0.412479043006897; +282.7823181152344, 0.41218847036361694; +282.88232421875, 0.41282176971435547; +282.9822998046875, 0.41344761848449707; +283.0823059082031, 0.41378289461135864; +283.1822814941406, 0.41413307189941406; +283.28228759765625, 0.41382014751434326; +283.3822937011719, 0.4118680953979492; +283.4822692871094, 0.4098042845726013; +283.582275390625, 0.4091188311576843; +283.6822509765625, 0.4092082381248474; +283.7822570800781, 0.4076138138771057; +283.8822326660156, 0.40409713983535767; +283.98223876953125, 0.40049850940704346; +284.0822448730469, 0.3973841667175293; +284.1822204589844, 0.3953501582145691; +284.2822265625, 0.3959536552429199; +284.3822021484375, 0.3994777798652649; +284.4822082519531, 0.40375441312789917; +284.58221435546875, 0.4061982035636902; +284.68218994140625, 0.40693581104278564; +284.7821960449219, 0.4066750407218933; +284.8821716308594, 0.40344148874282837; +284.982177734375, 0.39774179458618164; +285.0821838378906, 0.39234012365341187; +285.1821594238281, 0.389687716960907; +285.28216552734375, 0.3898441791534424; +285.38214111328125, 0.3909096121788025; +285.4821472167969, 0.39474666118621826; +285.5821533203125, 0.40068477392196655; +285.68212890625, 0.4068538546562195; +285.7821350097656, 0.4121512174606323; +285.8821105957031, 0.41600316762924194; +285.98211669921875, 0.4192069172859192; +286.0821228027344, 0.42016804218292236; +286.1820983886719, 0.42038410902023315; +286.2821044921875, 0.42169541120529175; +286.382080078125, 0.423528254032135; +286.4820861816406, 0.42528659105300903; +286.58209228515625, 0.42694807052612305; +286.68206787109375, 0.42891502380371094; +286.7820739746094, 0.42828917503356934; +286.8820495605469, 0.4232823848724365; +286.9820556640625, 0.4163309931755066; +287.0820617675781, 0.4096701741218567; +287.1820373535156, 0.4025101661682129; +287.28204345703125, 0.39520859718322754; +287.38201904296875, 0.39096176624298096; +287.4820251464844, 0.39127469062805176; +287.58203125, 0.3945082426071167; +287.6820068359375, 0.3980770707130432; +287.7820129394531, 0.4032701253890991; +287.8819885253906, 0.40908902883529663; +287.98199462890625, 0.41275471448898315; +288.08197021484375, 0.4123300313949585; +288.1819763183594, 0.4091411828994751; +288.281982421875, 0.4060491919517517; +288.3819580078125, 0.40286779403686523; +288.4819641113281, 0.3987997770309448; +288.5819396972656, 0.39499253034591675; +288.68194580078125, 0.3931671380996704; +288.7819519042969, 0.3938227891921997; +288.8819274902344, 0.39730221033096313; +288.98193359375, 0.40231645107269287; +289.0819091796875, 0.40780752897262573; +289.1819152832031, 0.41262805461883545; +289.28192138671875, 0.4169642925262451; +289.38189697265625, 0.4202425479888916; +289.4819030761719, 0.4196763038635254; +289.5818786621094, 0.41522830724716187; +289.681884765625, 0.4091113805770874; +289.7818908691406, 0.40296465158462524; +289.8818664550781, 0.39661675691604614; +289.98187255859375, 0.39017200469970703; +290.08184814453125, 0.3847777843475342; +290.1818542480469, 0.3817155957221985; +290.2818603515625, 0.38179755210876465; +290.3818359375, 0.38424134254455566; +290.4818420410156, 0.38743019104003906; +290.5818176269531, 0.3892555832862854; +290.68182373046875, 0.3903806209564209; +290.7818298339844, 0.39017945528030396; +290.8818054199219, 0.3874078392982483; +290.9818115234375, 0.38389116525650024; +291.081787109375, 0.3825575113296509; +291.1817932128906, 0.38427114486694336; +291.28179931640625, 0.3857612609863281; +291.38177490234375, 0.3851577639579773; +291.4817810058594, 0.38358569145202637; +291.5817565917969, 0.37983059883117676; +291.6817626953125, 0.3744587302207947; +291.78173828125, 0.369437038898468; +291.8817443847656, 0.36688894033432007; +291.98175048828125, 0.3669634461402893; +292.08172607421875, 0.36853551864624023; +292.1817321777344, 0.3725290298461914; +292.2817077636719, 0.37761032581329346; +292.3817138671875, 0.38120150566101074; +292.4817199707031, 0.38285553455352783; +292.5816955566406, 0.38492679595947266; +292.68170166015625, 0.38798898458480835; +292.78167724609375, 0.3906860947608948; +292.8816833496094, 0.3914386034011841; +292.981689453125, 0.3904402256011963; +293.0816650390625, 0.38905441761016846; +293.1816711425781, 0.3882274031639099; +293.2816467285156, 0.3891363739967346; +293.38165283203125, 0.3909692168235779; +293.4816589355469, 0.39317458868026733; +293.5816345214844, 0.3963485360145569; +293.681640625, 0.3992915153503418; +293.7816162109375, 0.4008784890174866; +293.8816223144531, 0.40209293365478516; +293.98162841796875, 0.4057660698890686; +294.08160400390625, 0.4117116332054138; +294.1816101074219, 0.4165172576904297; +294.2815856933594, 0.4189908504486084; +294.381591796875, 0.4199221730232239; +294.4815979003906, 0.41906535625457764; +294.5815734863281, 0.415995717048645; +294.68157958984375, 0.41091442108154297; +294.78155517578125, 0.40653347969055176; +294.8815612792969, 0.40374696254730225; +294.9815673828125, 0.4013180732727051; +295.08154296875, 0.39899349212646484; +295.1815490722656, 0.3966391086578369; +295.2815246582031, 0.3971904516220093; +295.38153076171875, 0.4006922245025635; +295.4815368652344, 0.404946506023407; +295.5815124511719, 0.4067346453666687; +295.6815185546875, 0.40422379970550537; +295.781494140625, 0.3992244601249695; +295.8815002441406, 0.3936663269996643; +295.9814758300781, 0.388123095035553; +296.08148193359375, 0.38327276706695557; +296.1814880371094, 0.3812536597251892; +296.2814636230469, 0.3830939531326294; +296.3814697265625, 0.38655102252960205; +296.4814453125, 0.38826465606689453; +296.5814514160156, 0.3883466124534607; +296.68145751953125, 0.3891885280609131; +296.78143310546875, 0.39177387952804565; +296.8814392089844, 0.39495527744293213; +296.9814147949219, 0.39725005626678467; +297.0814208984375, 0.3975778818130493; +297.1814270019531, 0.3953129053115845; +297.2814025878906, 0.3902316093444824; +297.38140869140625, 0.3827288746833801; +297.48138427734375, 0.37329643964767456; +297.5813903808594, 0.3651082515716553; +297.681396484375, 0.36104023456573486; +297.7813720703125, 0.360146164894104; +297.8813781738281, 0.3596991300582886; +297.9813537597656, 0.35821646451950073; +298.08135986328125, 0.3568977117538452; +298.1813659667969, 0.3554597496986389; +298.2813415527344, 0.35262107849121094; +298.38134765625, 0.35081058740615845; +298.4813232421875, 0.3530457615852356; +298.5813293457031, 0.3601759672164917; +298.68133544921875, 0.36790966987609863; +298.78131103515625, 0.3723129630088806; +298.8813171386719, 0.3722533583641052; +298.9812927246094, 0.368751585483551; +299.081298828125, 0.36257505416870117; +299.1813049316406, 0.35580992698669434; +299.2812805175781, 0.3521442413330078; +299.38128662109375, 0.35152584314346313; +299.48126220703125, 0.3526434302330017; +299.5812683105469, 0.35506486892700195; +299.6812744140625, 0.36060065031051636; +299.78125, 0.36656856536865234; +299.8812561035156, 0.3711208701133728; +299.9812316894531, 0.3749579191207886; +300.08123779296875, 0.3798454999923706; +300.18121337890625, 0.38386136293411255; +300.2812194824219, 0.38433074951171875; +300.3812255859375, 0.3829151391983032; +300.481201171875, 0.37982314825057983; +300.5812072753906, 0.375404953956604; +300.6811828613281, 0.37057697772979736; +300.78118896484375, 0.36797672510147095; +300.8811950683594, 0.36851316690444946; +300.9811706542969, 0.36997348070144653; +301.0811767578125, 0.3714337944984436; +301.18115234375, 0.3739967942237854; +301.2811584472656, 0.37747621536254883; +301.38116455078125, 0.38076192140579224; +301.48114013671875, 0.3829151391983032; +301.5811462402344, 0.38407742977142334; +301.6811218261719, 0.38401782512664795; +301.7811279296875, 0.3817155957221985; +301.8811340332031, 0.3784596920013428; +301.9811096191406, 0.3744736313819885; +302.08111572265625, 0.36772340536117554; +302.18109130859375, 0.3597065806388855; +302.2810974121094, 0.3539919853210449; +302.381103515625, 0.3523677587509155; +302.4810791015625, 0.3531128168106079; +302.5810852050781, 0.3550425171852112; +302.6810607910156, 0.36059319972991943; +302.78106689453125, 0.3682747483253479; +302.8810729980469, 0.3743693232536316; +302.9810485839844, 0.3764629364013672; +303.0810546875, 0.3739595413208008; +303.1810302734375, 0.3688037395477295; +303.2810363769531, 0.362493097782135; +303.38104248046875, 0.35782158374786377; +303.48101806640625, 0.35759806632995605; +303.5810241699219, 0.3606453537940979; +303.6809997558594, 0.3656148910522461; +303.781005859375, 0.3696829080581665; +303.8810119628906, 0.3714710474014282; +303.9809875488281, 0.36969780921936035; +304.08099365234375, 0.3636553883552551; +304.18096923828125, 0.35825371742248535; +304.2809753417969, 0.35612285137176514; +304.3809509277344, 0.35782158374786377; +304.48095703125, 0.3599971532821655; +304.5809631347656, 0.36031007766723633; +304.6809387207031, 0.36037713289260864; +304.78094482421875, 0.3606453537940979; +304.88092041015625, 0.3611147403717041; +304.9809265136719, 0.36053359508514404; +305.0809326171875, 0.3603249788284302; +305.180908203125, 0.3621131181716919; +305.2809143066406, 0.36475807428359985; +305.3808898925781, 0.3653690218925476; +305.48089599609375, 0.3628060221672058; +305.5809020996094, 0.35978853702545166; +305.6808776855469, 0.3571733832359314; +305.7808837890625, 0.35478919744491577; +305.880859375, 0.35296380519866943; +305.9808654785156, 0.3536045551300049; +306.08087158203125, 0.35687536001205444; +306.18084716796875, 0.3590136766433716; +306.2808532714844, 0.3606528043746948; +306.3808288574219, 0.3634840250015259; +306.4808349609375, 0.36700814962387085; +306.5808410644531, 0.36934763193130493; +306.6808166503906, 0.37047266960144043; +306.78082275390625, 0.3717392683029175; +306.88079833984375, 0.3716573119163513; +306.9808044433594, 0.36900490522384644; +307.080810546875, 0.3629550337791443; +307.1807861328125, 0.3534853458404541; +307.2807922363281, 0.3434419631958008; +307.3807678222656, 0.3367215394973755; +307.48077392578125, 0.33496320247650146; +307.5807800292969, 0.3365650773048401; +307.6807556152344, 0.34249573945999146; +307.78076171875, 0.351928174495697; +307.8807373046875, 0.3611072897911072; +307.9807434082031, 0.3670006990432739; +308.08074951171875, 0.3697052597999573; +308.18072509765625, 0.37054717540740967; +308.2807312011719, 0.3687143325805664; +308.3807067871094, 0.3666728734970093; +308.480712890625, 0.36525726318359375; +308.5806884765625, 0.36393851041793823; +308.6806945800781, 0.36188215017318726; +308.78070068359375, 0.3601163625717163; +308.88067626953125, 0.35928189754486084; +308.9806823730469, 0.3583058714866638; +309.0806579589844, 0.3589019179344177; +309.1806640625, 0.36101043224334717; +309.2806701660156, 0.361613929271698; +309.3806457519531, 0.35966187715530396; +309.48065185546875, 0.3561079502105713; +309.58062744140625, 0.35212934017181396; +309.6806335449219, 0.34599751234054565; +309.7806396484375, 0.33932924270629883; +309.880615234375, 0.3365352749824524; +309.9806213378906, 0.338137149810791; +310.0805969238281, 0.3428235650062561; +310.18060302734375, 0.3468915820121765; +310.2806091308594, 0.3495141863822937; +310.3805847167969, 0.3496631979942322; +310.4805908203125, 0.34852325916290283; +310.58056640625, 0.3468245267868042; +310.6805725097656, 0.3456324338912964; +310.78057861328125, 0.3461092710494995; +310.88055419921875, 0.3475695848464966; +310.9805603027344, 0.3490820527076721; +311.0805358886719, 0.3495216369628906; +311.1805419921875, 0.3500506281852722; +311.2805480957031, 0.35053491592407227; +311.3805236816406, 0.35065412521362305; +311.48052978515625, 0.35097450017929077; +311.58050537109375, 0.35202503204345703; +311.6805114746094, 0.3527700901031494; +311.780517578125, 0.35230815410614014; +311.8804931640625, 0.3507360816001892; +311.9804992675781, 0.34881383180618286; +312.0804748535156, 0.3467351198196411; +312.18048095703125, 0.3470182418823242; +312.28045654296875, 0.3503188490867615; +312.3804626464844, 0.3543943166732788; +312.48046875, 0.3550797700881958; +312.5804443359375, 0.35052746534347534; +312.6804504394531, 0.34356117248535156; +312.7804260253906, 0.3357827663421631; +312.88043212890625, 0.3304705023765564; +312.9804382324219, 0.3278478980064392; +313.0804138183594, 0.3283768892288208; +313.180419921875, 0.33146142959594727; +313.2803955078125, 0.33546239137649536; +313.3804016113281, 0.3388524055480957; +313.48040771484375, 0.3380104899406433; +313.58038330078125, 0.3342553973197937; +313.6803894042969, 0.3306344151496887; +313.7803649902344, 0.3295987844467163; +313.88037109375, 0.33026188611984253; +313.9803771972656, 0.3307908773422241; +314.0803527832031, 0.33308565616607666; +314.18035888671875, 0.33702701330184937; +314.28033447265625, 0.3409832715988159; +314.3803405761719, 0.3450661897659302; +314.4803466796875, 0.3493949770927429; +314.580322265625, 0.3524571657180786; +314.6803283691406, 0.3512576222419739; +314.7803039550781, 0.3461688756942749; +314.88031005859375, 0.3409460186958313; +314.9803161621094, 0.3369748592376709; +315.0802917480469, 0.334225594997406; +315.1802978515625, 0.3325268626213074; +315.2802734375, 0.3314167261123657; +315.3802795410156, 0.3321245312690735; +315.48028564453125, 0.3355666995048523; +315.58026123046875, 0.3388524055480957; +315.6802673339844, 0.3391951322555542; +315.7802429199219, 0.33749639987945557; +315.8802490234375, 0.3374069929122925; +315.9802551269531, 0.33886730670928955; +316.0802307128906, 0.33789128065109253; +316.18023681640625, 0.3349781036376953; +316.28021240234375, 0.3329664468765259; +316.3802185058594, 0.3338158130645752; +316.4801940917969, 0.33577531576156616; +316.5802001953125, 0.33640116453170776; +316.6802062988281, 0.3359466791152954; +316.7801818847656, 0.33627450466156006; +316.88018798828125, 0.33736974000930786; +316.98016357421875, 0.3380030393600464; +317.0801696777344, 0.3378167748451233; +317.18017578125, 0.33874809741973877; +317.2801513671875, 0.33996254205703735; +317.3801574707031, 0.34008920192718506; +317.4801330566406, 0.3397837281227112; +317.58013916015625, 0.3401711583137512; +317.6801452636719, 0.3398582339286804; +317.7801208496094, 0.3365650773048401; +317.880126953125, 0.3335326910018921; +317.9801025390625, 0.3321245312690735; +318.0801086425781, 0.3311634063720703; +318.18011474609375, 0.3275051712989807; +318.28009033203125, 0.3234073519706726; +318.3800964355469, 0.3224685788154602; +318.4800720214844, 0.32357126474380493; +318.580078125, 0.32500922679901123; +318.6800842285156, 0.3256946802139282; +318.7800598144531, 0.3266856074333191; +318.88006591796875, 0.32857805490493774; +318.98004150390625, 0.3314763307571411; +319.0800476074219, 0.33470243215560913; +319.1800537109375, 0.33677369356155396; +319.280029296875, 0.33742189407348633; +319.3800354003906, 0.3367960453033447; +319.4800109863281, 0.3347918391227722; +319.58001708984375, 0.3299638628959656; +319.6800231933594, 0.3237128257751465; +319.7799987792969, 0.31863898038864136; +319.8800048828125, 0.31609833240509033; +319.97998046875, 0.31601637601852417; +320.0799865722656, 0.3164708614349365; +320.17999267578125, 0.3172680735588074; +320.27996826171875, 0.31929463148117065; +320.3799743652344, 0.32151490449905396; +320.4799499511719, 0.322878360748291; +320.5799560546875, 0.32407045364379883; +320.679931640625, 0.3264620900154114; +320.7799377441406, 0.33010542392730713; +320.87994384765625, 0.3321543335914612; +320.97991943359375, 0.3336966037750244; +321.0799255371094, 0.3363415598869324; +321.1799011230469, 0.34046173095703125; +321.2799072265625, 0.34509599208831787; +321.3799133300781, 0.3478899598121643; +321.4798889160156, 0.34834444522857666; +321.57989501953125, 0.3455355763435364; +321.67987060546875, 0.3405064344406128; +321.7798767089844, 0.33405423164367676; +321.8798828125, 0.3276616334915161; +321.9798583984375, 0.3229379653930664; +322.0798645019531, 0.32073259353637695; +322.1798400878906, 0.3220289945602417; +322.27984619140625, 0.3260597586631775; +322.3798522949219, 0.3309324383735657; +322.4798278808594, 0.33439695835113525; +322.579833984375, 0.3355666995048523; +322.6798095703125, 0.3342479467391968; +322.7798156738281, 0.33026188611984253; +322.87982177734375, 0.32591819763183594; +322.97979736328125, 0.3226473927497864; +323.0798034667969, 0.3193765878677368; +323.1797790527344, 0.31585991382598877; +323.27978515625, 0.3132373094558716; +323.3797912597656, 0.31351298093795776; +323.4797668457031, 0.3137737512588501; +323.57977294921875, 0.3142133355140686; +323.67974853515625, 0.3168359398841858; +323.7797546386719, 0.32141804695129395; +323.8797607421875, 0.32617896795272827; +323.979736328125, 0.3275349736213684; +324.0797424316406, 0.325910747051239; +324.1797180175781, 0.32094866037368774; +324.27972412109375, 0.31401216983795166; +324.3797302246094, 0.3070235252380371; +324.4797058105469, 0.30149519443511963; +324.5797119140625, 0.29884278774261475; +324.6796875, 0.2993270754814148; +324.7796936035156, 0.30162930488586426; +324.8796691894531, 0.30282139778137207; +324.97967529296875, 0.30218809843063354; +325.0796813964844, 0.3001391887664795; +325.1796569824219, 0.298425555229187; +325.2796630859375, 0.2972260117530823; +325.379638671875, 0.29718130826950073; +325.4796447753906, 0.2987682819366455; +325.57965087890625, 0.3010407090187073; +325.67962646484375, 0.3023669123649597; +325.7796325683594, 0.3017336130142212; +325.8796081542969, 0.29940903186798096; +325.9796142578125, 0.2953037619590759; +326.0796203613281, 0.29190629720687866; +326.1795959472656, 0.2916380763053894; +326.27960205078125, 0.2950429916381836; +326.37957763671875, 0.30021369457244873; +326.4795837402344, 0.3063604235649109; +326.57958984375, 0.31344592571258545; +326.6795654296875, 0.31747668981552124; +326.7795715332031, 0.3157109022140503; +326.8795471191406, 0.31045079231262207; +326.97955322265625, 0.3048926591873169; +327.0795593261719, 0.2988576889038086; +327.1795349121094, 0.2927333116531372; +327.279541015625, 0.2892613410949707; +327.3795166015625, 0.28883665800094604; +327.4795227050781, 0.2881363034248352; +327.57952880859375, 0.2850145101547241; +327.67950439453125, 0.2808496356010437; +327.7795104980469, 0.2777799963951111; +327.8794860839844, 0.2763420343399048; +327.9794921875, 0.2780705690383911; +328.0794982910156, 0.2837926149368286; +328.1794738769531, 0.29230862855911255; +328.27947998046875, 0.3010109066963196; +328.37945556640625, 0.3070831298828125; +328.4794616699219, 0.31065940856933594; +328.5794372558594, 0.3099888563156128; +328.679443359375, 0.30519813299179077; +328.7794494628906, 0.29969215393066406; +328.8794250488281, 0.29730796813964844; +328.97943115234375, 0.29778480529785156; +329.07940673828125, 0.2973303198814392; +329.1794128417969, 0.2963617444038391; +329.2794189453125, 0.29744207859039307; +329.37939453125, 0.2991482615470886; +329.4794006347656, 0.2992302179336548; +329.5793762207031, 0.2961978316307068; +329.67938232421875, 0.2928897738456726; +329.7793884277344, 0.29098987579345703; +329.8793640136719, 0.2900660037994385; +329.9793701171875, 0.2889186143875122; +330.079345703125, 0.28771162033081055; +330.1793518066406, 0.2889782190322876; +330.27935791015625, 0.2923235297203064; +330.37933349609375, 0.2938508987426758; +330.4793395996094, 0.2917945384979248; +330.5793151855469, 0.2892687916755676; +330.6793212890625, 0.28768181800842285; +330.7793273925781, 0.28727948665618896; +330.8793029785156, 0.2886578440666199; +330.97930908203125, 0.29464811086654663; +331.07928466796875, 0.30235201120376587; +331.1792907714844, 0.3062412142753601; +331.279296875, 0.3052428364753723; +331.3792724609375, 0.301167368888855; +331.4792785644531, 0.2945438027381897; +331.5792541503906, 0.284731388092041; +331.67926025390625, 0.275343656539917; +331.7792663574219, 0.27132779359817505; +331.8792419433594, 0.273779034614563; +331.979248046875, 0.2796947956085205; +332.0792236328125, 0.2871304750442505; +332.1792297363281, 0.29572099447250366; +332.27923583984375, 0.30387938022613525; +332.37921142578125, 0.3112480044364929; +332.4792175292969, 0.3156587481498718; +332.5791931152344, 0.31878799200057983; +332.67919921875, 0.32051652669906616; +332.7791748046875, 0.32003968954086304; +332.8791809082031, 0.31660497188568115; +332.97918701171875, 0.3080442547798157; +333.07916259765625, 0.2973824739456177; +333.1791687011719, 0.28583407402038574; +333.2791442871094, 0.2765059471130371; +333.379150390625, 0.26964396238327026; +333.4791564941406, 0.26791542768478394; +333.5791320800781, 0.27277320623397827; +333.67913818359375, 0.28227269649505615; +333.77911376953125, 0.290893018245697; +333.8791198730469, 0.2940148115158081; +333.9791259765625, 0.2932548522949219; +334.0791015625, 0.2912282943725586; +334.1791076660156, 0.28833746910095215; +334.2790832519531, 0.2829805016517639; +334.37908935546875, 0.2775117754936218; +334.4790954589844, 0.2740621566772461; +334.5790710449219, 0.27329474687576294; +334.6790771484375, 0.2725645899772644; +334.779052734375, 0.2728775143623352; +334.8790588378906, 0.2752244472503662; +334.97906494140625, 0.27852505445480347; +335.07904052734375, 0.2812817692756653; +335.1790466308594, 0.28254836797714233; +335.2790222167969, 0.28230249881744385; +335.3790283203125, 0.279061496257782; +335.4790344238281, 0.273287296295166; +335.5790100097656, 0.2671778202056885; +335.67901611328125, 0.2637729048728943; +335.77899169921875, 0.2642124891281128; +335.8789978027344, 0.26726722717285156; +335.97900390625, 0.2711638808250427; +336.0789794921875, 0.2742186188697815; +336.1789855957031, 0.2764984965324402; +336.2789611816406, 0.27780234813690186; +336.37896728515625, 0.2770945429801941; +336.4789733886719, 0.2751946449279785; +336.5789489746094, 0.2747774124145508; +336.678955078125, 0.27770549058914185; +336.7789306640625, 0.28086453676223755; +336.8789367675781, 0.28157979249954224; +336.9789123535156, 0.2799183130264282; +337.07891845703125, 0.27754902839660645; +337.1789245605469, 0.27604401111602783; +337.2789001464844, 0.27520209550857544; +337.37890625, 0.2754479646682739; +337.4788818359375, 0.2765282988548279; +337.5788879394531, 0.2793446183204651; +337.67889404296875, 0.28492510318756104; +337.77886962890625, 0.2895444631576538; +337.8788757324219, 0.2905651926994324; +337.9788513183594, 0.2890750765800476; +338.078857421875, 0.28742849826812744; +338.1788635253906, 0.28607994318008423; +338.2788391113281, 0.28355419635772705; +338.37884521484375, 0.2802535891532898; +338.47882080078125, 0.2794414758682251; +338.5788269042969, 0.28187036514282227; +338.6788330078125, 0.2855658531188965; +338.77880859375, 0.2869069576263428; +338.8788146972656, 0.2854764461517334; +338.9787902832031, 0.2862662076950073; +339.07879638671875, 0.2890154719352722; +339.1788024902344, 0.29180943965911865; +339.2787780761719, 0.29255449771881104; +339.3787841796875, 0.2930760383605957; +339.478759765625, 0.29315799474716187; +339.5787658691406, 0.28814375400543213; +339.67877197265625, 0.27836114168167114; +339.77874755859375, 0.26967376470565796; +339.8787536621094, 0.26785582304000854; +339.9787292480469, 0.27000904083251953; +340.0787353515625, 0.2710297703742981; +340.1787414550781, 0.2699419856071472; +340.2787170410156, 0.2701953053474426; +340.37872314453125, 0.27063488960266113; +340.47869873046875, 0.26895105838775635; +340.5787048339844, 0.2668648958206177; +340.6787109375, 0.2668723464012146; +340.7786865234375, 0.2700984477996826; +340.8786926269531, 0.27217715978622437; +340.9786682128906, 0.27123838663101196; +341.07867431640625, 0.2678409218788147; +341.17864990234375, 0.2630949020385742; +341.2786560058594, 0.26009976863861084; +341.378662109375, 0.25841593742370605; +341.4786376953125, 0.257246196269989; +341.5786437988281, 0.2560615539550781; +341.6786193847656, 0.25650113821029663; +341.77862548828125, 0.26109814643859863; +341.8786315917969, 0.2676770091056824; +341.9786071777344, 0.2740100026130676; +342.07861328125, 0.27930736541748047; +342.1785888671875, 0.2846941351890564; +342.2785949707031, 0.28987228870391846; +342.37860107421875, 0.2915412187576294; +342.47857666015625, 0.28949230909347534; +342.5785827636719, 0.28623640537261963; +342.6785583496094, 0.284537672996521; +342.778564453125, 0.2841576933860779; +342.8785705566406, 0.28412044048309326; +342.9785461425781, 0.2841353416442871; +343.07855224609375, 0.28393417596817017; +343.17852783203125, 0.2833902835845947; +343.2785339355469, 0.28236955404281616; +343.3785400390625, 0.28076767921447754; +343.478515625, 0.2765953540802002; +343.5785217285156, 0.2710968255996704; +343.6784973144531, 0.2654716372489929; +343.77850341796875, 0.2601742744445801; +343.8785095214844, 0.25532394647598267; +343.9784851074219, 0.2517104148864746; +344.0784912109375, 0.2511739730834961; +344.178466796875, 0.2535879611968994; +344.2784729003906, 0.2590939402580261; +344.37847900390625, 0.26801973581314087; +344.47845458984375, 0.27626752853393555; +344.5784606933594, 0.279255211353302; +344.6784362792969, 0.27726590633392334; +344.7784423828125, 0.27433037757873535; +344.87841796875, 0.2738684415817261; +344.9784240722656, 0.2728775143623352; +345.07843017578125, 0.27104467153549194; +345.17840576171875, 0.27029961347579956; +345.2784118652344, 0.27176737785339355; +345.3783874511719, 0.27314573526382446; +345.4783935546875, 0.2701282501220703; +345.5783996582031, 0.2632513642311096; +345.6783752441406, 0.2562999725341797; +345.77838134765625, 0.2528876066207886; +345.87835693359375, 0.2533644437789917; +345.9783630371094, 0.25521963834762573; +346.078369140625, 0.2580210566520691; +346.1783447265625, 0.264488160610199; +346.2783508300781, 0.27495622634887695; +346.3783264160156, 0.28517842292785645; +346.47833251953125, 0.28927624225616455; +346.5783386230469, 0.28756260871887207; +346.6783142089844, 0.28299540281295776; +346.7783203125, 0.2771839499473572; +346.8782958984375, 0.2703666687011719; +346.9783020019531, 0.2640262246131897; +347.07830810546875, 0.2611130475997925; +347.17828369140625, 0.26157498359680176; +347.2782897949219, 0.26394426822662354; +347.3782653808594, 0.26476383209228516; +347.478271484375, 0.26339292526245117; +347.5782775878906, 0.2614036202430725; +347.6782531738281, 0.2617388963699341; +347.77825927734375, 0.2648383378982544; +347.87823486328125, 0.26883184909820557; +347.9782409667969, 0.27191638946533203; +348.0782470703125, 0.27292966842651367; +348.17822265625, 0.27148425579071045; +348.2782287597656, 0.26754289865493774; +348.3782043457031, 0.26357918977737427; +348.47821044921875, 0.2611503005027771; +348.5782165527344, 0.26128441095352173; +348.6781921386719, 0.26156753301620483; +348.7781982421875, 0.2607181668281555; +348.878173828125, 0.2594068646430969; +348.9781799316406, 0.2575591206550598; +349.0781555175781, 0.2551525831222534; +349.17816162109375, 0.2533718943595886; +349.2781677246094, 0.2557411789894104; +349.3781433105469, 0.2627447247505188; +349.4781494140625, 0.2695992588996887; +349.578125, 0.2724453806877136; +349.6781311035156, 0.272899866104126; +349.77813720703125, 0.2718418836593628; +349.87811279296875, 0.2693384885787964; +349.9781188964844, 0.2638474106788635; +350.0780944824219, 0.2584904432296753; +350.1781005859375, 0.25738775730133057; +350.2781066894531, 0.2608448266983032; +350.3780822753906, 0.26635825634002686; +350.47808837890625, 0.26892125606536865; +350.57806396484375, 0.26916712522506714; +350.6780700683594, 0.2689659595489502; +350.778076171875, 0.26807188987731934; +350.8780517578125, 0.26379525661468506; +350.9780578613281, 0.2566501498222351; +351.0780334472656, 0.251084566116333; +351.17803955078125, 0.24996697902679443; +351.2780456542969, 0.25087594985961914; +351.3780212402344, 0.2513602375984192; +351.47802734375, 0.25038421154022217; +351.5780029296875, 0.2505555748939514; +351.6780090332031, 0.2527981996536255; +351.77801513671875, 0.25545060634613037; +351.87799072265625, 0.25556981563568115; +351.9779968261719, 0.25235116481781006; +352.0779724121094, 0.24896115064620972; +352.177978515625, 0.24531036615371704; +352.2779846191406, 0.2415180206298828; +352.3779602050781, 0.23774802684783936; +352.47796630859375, 0.23647397756576538; +352.57794189453125, 0.23818016052246094; +352.6779479980469, 0.23997575044631958; +352.7779541015625, 0.24140626192092896; +352.8779296875, 0.24200975894927979; +352.9779357910156, 0.2420470118522644; +353.0779113769531, 0.24162232875823975; +353.17791748046875, 0.2409815788269043; +353.27789306640625, 0.241205096244812; +353.3778991699219, 0.24205446243286133; +353.4779052734375, 0.24352222681045532; +353.577880859375, 0.24560093879699707; +353.6778869628906, 0.24837255477905273; +353.7778625488281, 0.25106221437454224; +353.87786865234375, 0.25228410959243774; +353.9778747558594, 0.25025755167007446; +354.0778503417969, 0.24585425853729248; +354.1778564453125, 0.24084001779556274; +354.27783203125, 0.23526698350906372; +354.3778381347656, 0.23026764392852783; +354.47784423828125, 0.22782385349273682; +354.57781982421875, 0.22996217012405396; +354.6778259277344, 0.2336651086807251; +354.7778015136719, 0.23540109395980835; +354.8778076171875, 0.23480504751205444; +354.9778137207031, 0.23377686738967896; +355.0777893066406, 0.23292750120162964; +355.17779541015625, 0.23106485605239868; +355.27777099609375, 0.2290681004524231; +355.3777770996094, 0.2294108271598816; +355.477783203125, 0.23210793733596802; +355.5777587890625, 0.233478844165802; +355.6777648925781, 0.23189187049865723; +355.7777404785156, 0.22817403078079224; +355.87774658203125, 0.22386759519577026; +355.9777526855469, 0.21771341562271118; +356.0777282714844, 0.2109035849571228; +356.177734375, 0.2066493034362793; +356.2777099609375, 0.20460784435272217; +356.3777160644531, 0.20453333854675293; +356.47772216796875, 0.2068653702735901; +356.57769775390625, 0.21206587553024292; +356.6777038574219, 0.21860003471374512; +356.7776794433594, 0.2238452434539795; +356.877685546875, 0.22849440574645996; +356.9776916503906, 0.2320706844329834; +357.0776672363281, 0.23358315229415894; +357.17767333984375, 0.23465603590011597; +357.27764892578125, 0.23439526557922363; +357.3776550292969, 0.23115426301956177; +357.4776306152344, 0.2244710922241211; +357.57763671875, 0.21781772375106812; +357.6776428222656, 0.21350383758544922; +357.7776184082031, 0.20901858806610107; +357.87762451171875, 0.20460784435272217; +357.97760009765625, 0.20357966423034668; +358.0776062011719, 0.20684301853179932; +358.1776123046875, 0.21104514598846436; +358.277587890625, 0.2130940556526184; +358.3775939941406, 0.2140924334526062; +358.4775695800781, 0.21471083164215088; +358.57757568359375, 0.21263957023620605; +358.6775817871094, 0.20800530910491943; +358.7775573730469, 0.20428001880645752; +358.8775634765625, 0.204332172870636; +358.9775390625, 0.20622462034225464; +359.0775451660156, 0.2068653702735901; +359.17755126953125, 0.20802021026611328; +359.27752685546875, 0.21182000637054443; +359.3775329589844, 0.21641701459884644; +359.4775085449219, 0.21863728761672974; +359.5775146484375, 0.219099223613739; +359.6775207519531, 0.2199113368988037; +359.7774963378906, 0.2196580171585083; +359.87750244140625, 0.21575391292572021; +359.97747802734375, 0.2102181315422058; +360.0774841308594, 0.20629167556762695; +360.177490234375, 0.20282715559005737; +360.2774658203125, 0.1996457576751709; +360.3774719238281, 0.19763410091400146; +360.4774475097656, 0.19846856594085693; +360.57745361328125, 0.19940733909606934; +360.6774597167969, 0.19773095846176147; +360.7774353027344, 0.19758939743041992; +360.87744140625, 0.20126253366470337; +360.9774169921875, 0.20838528871536255; +361.0774230957031, 0.21395832300186157; +361.1773986816406, 0.21607428789138794; +361.27740478515625, 0.21740049123764038; +361.3774108886719, 0.21720677614212036; +361.4773864746094, 0.21433085203170776; +361.577392578125, 0.20866841077804565; +361.6773681640625, 0.20340830087661743; +361.7773742675781, 0.20179897546768188; +361.87738037109375, 0.20276010036468506; +361.97735595703125, 0.20481646060943604; +362.0773620605469, 0.2057775855064392; +362.1773376464844, 0.20369887351989746; +362.27734375, 0.20019710063934326; +362.3773498535156, 0.1984909176826477; +362.4773254394531, 0.20010769367218018; +362.57733154296875, 0.20345300436019897; +362.67730712890625, 0.2070888876914978; +362.7773132324219, 0.21173804998397827; +362.8773193359375, 0.21595507860183716; +362.977294921875, 0.21463632583618164; +363.0773010253906, 0.20711123943328857; +363.1772766113281, 0.19656866788864136; +363.27728271484375, 0.1875460147857666; +363.3772888183594, 0.1815706491470337; +363.4772644042969, 0.1787915825843811; +363.5772705078125, 0.18068403005599976; +363.67724609375, 0.18458068370819092; +363.7772521972656, 0.1877620816230774; +363.87725830078125, 0.18977373838424683; +363.97723388671875, 0.19139796495437622; +364.0772399902344, 0.19316375255584717; +364.1772155761719, 0.19385665655136108; +364.2772216796875, 0.19441545009613037; +364.3772277832031, 0.19556283950805664; +364.4772033691406, 0.19688159227371216; +364.57720947265625, 0.1990199089050293; +364.67718505859375, 0.20224601030349731; +364.7771911621094, 0.20536035299301147; +364.877197265625, 0.2065524458885193; +364.9771728515625, 0.20565837621688843; +365.0771789550781, 0.20436197519302368; +365.1771545410156, 0.20328909158706665; +365.27716064453125, 0.20075589418411255; +365.37713623046875, 0.1960843801498413; +365.4771423339844, 0.19158422946929932; +365.5771484375, 0.18918514251708984; +365.6771240234375, 0.18797814846038818; +365.7771301269531, 0.18489360809326172; +365.8771057128906, 0.18021464347839355; +365.97711181640625, 0.17698854207992554; +366.0771179199219, 0.1763179898262024; +366.1770935058594, 0.17733871936798096; +366.277099609375, 0.1798868179321289; +366.3770751953125, 0.18475204706192017; +366.4770812988281, 0.1916736364364624; +366.57708740234375, 0.19741058349609375; +366.67706298828125, 0.1990795135498047; +366.7770690917969, 0.19727647304534912; +366.8770446777344, 0.1939907670021057; +366.97705078125, 0.19127130508422852; +367.0770568847656, 0.18921494483947754; +367.1770324707031, 0.1889243721961975; +367.27703857421875, 0.19015371799468994; +367.37701416015625, 0.19244104623794556; +367.4770202636719, 0.19406527280807495; +367.5770263671875, 0.19381195306777954; +367.677001953125, 0.19230693578720093; +367.7770080566406, 0.1894533634185791; +367.8769836425781, 0.1860484480857849; +367.97698974609375, 0.18277764320373535; +368.0769958496094, 0.180169939994812; +368.1769714355469, 0.17748773097991943; +368.2769775390625, 0.1735091209411621; +368.376953125, 0.16991794109344482; +368.4769592285156, 0.16852468252182007; +368.57696533203125, 0.16830116510391235; +368.67694091796875, 0.16727298498153687; +368.7769470214844, 0.16622990369796753; +368.8769226074219, 0.16722828149795532; +368.9769287109375, 0.16968697309494019; +369.0769348144531, 0.17179548740386963; +369.1769104003906, 0.17311424016952515; +369.27691650390625, 0.17473846673965454; +369.37689208984375, 0.17699599266052246; +369.4768981933594, 0.17900019884109497; +369.5768737792969, 0.18168240785598755; +369.6768798828125, 0.18721818923950195; +369.7768859863281, 0.19375979900360107; +369.8768615722656, 0.1983046531677246; +369.97686767578125, 0.19968301057815552; +370.07684326171875, 0.1998692750930786; +370.1768493652344, 0.19835680723190308; +370.27685546875, 0.19212067127227783; +370.3768310546875, 0.1842901110649109; +370.4768371582031, 0.18061697483062744; +370.5768127441406, 0.18289685249328613; +370.67681884765625, 0.187702476978302; +370.7768249511719, 0.19140541553497314; +370.8768005371094, 0.1938939094543457; +370.976806640625, 0.19380450248718262; +371.0767822265625, 0.19091367721557617; +371.1767883300781, 0.18661469221115112; +371.27679443359375, 0.18130987882614136; +371.37677001953125, 0.17512589693069458; +371.4767761230469, 0.16900897026062012; +371.5767517089844, 0.16686320304870605; +371.6767578125, 0.16824156045913696; +371.7767639160156, 0.16958266496658325; +371.8767395019531, 0.16868114471435547; +371.97674560546875, 0.16761571168899536; +372.07672119140625, 0.16958266496658325; +372.1767272949219, 0.17321854829788208; +372.2767333984375, 0.17408281564712524; +372.376708984375, 0.1705065369606018; +372.4767150878906, 0.1670345664024353; +372.5766906738281, 0.16598403453826904; +372.67669677734375, 0.1640915870666504; +372.7767028808594, 0.15693902969360352; +372.8766784667969, 0.14775991439819336; +372.9766845703125, 0.1419857144355774; +373.07666015625, 0.14019757509231567; +373.1766662597656, 0.14157593250274658; +373.27667236328125, 0.14524906873703003; +373.37664794921875, 0.15289336442947388; +373.4766540527344, 0.1641884446144104; +373.5766296386719, 0.17593055963516235; +373.6766357421875, 0.18550455570220947; +373.776611328125, 0.19141286611557007; +373.8766174316406, 0.19540637731552124; +373.97662353515625, 0.19632279872894287; +374.07659912109375, 0.19172579050064087; +374.1766052246094, 0.18186867237091064; +374.2765808105469, 0.16982853412628174; +374.3765869140625, 0.157870352268219; +374.4765930175781, 0.14585256576538086; +374.5765686035156, 0.13596564531326294; +374.67657470703125, 0.13031065464019775; +374.77655029296875, 0.13112276792526245; +374.8765563964844, 0.1362934708595276; +374.9765625, 0.1427382230758667; +375.0765380859375, 0.14863908290863037; +375.1765441894531, 0.1523420214653015; +375.2765197753906, 0.15486031770706177; +375.37652587890625, 0.15569478273391724; +375.4765319824219, 0.15454739332199097; +375.5765075683594, 0.15147030353546143; +375.676513671875, 0.14778226613998413; +375.7764892578125, 0.1451149582862854; +375.8764953613281, 0.14257431030273438; +375.97650146484375, 0.13884156942367554; +376.07647705078125, 0.13587623834609985; +376.1764831542969, 0.13551115989685059; +376.2764587402344, 0.13761967420578003; +376.37646484375, 0.13940781354904175; +376.4764709472656, 0.14107674360275269; +376.5764465332031, 0.14273077249526978; +376.67645263671875, 0.14365464448928833; +376.77642822265625, 0.14419108629226685; +376.8764343261719, 0.144176185131073; +376.9764404296875, 0.14542043209075928; +377.076416015625, 0.1460835337638855; +377.1764221191406, 0.14563649892807007; +377.2763977050781, 0.14262646436691284; +377.37640380859375, 0.13721734285354614; +377.47637939453125, 0.13128668069839478; +377.5763854980469, 0.12758374214172363; +377.6763916015625, 0.12615323066711426; +377.7763671875, 0.12602657079696655; +377.8763732910156, 0.12743473052978516; +377.9763488769531, 0.13065338134765625; +378.07635498046875, 0.13381987810134888; +378.1763610839844, 0.13221800327301025; +378.2763366699219, 0.12751668691635132; +378.3763427734375, 0.12234598398208618; +378.476318359375, 0.118255615234375; +378.5763244628906, 0.11435151100158691; +378.67633056640625, 0.10979175567626953; +378.77630615234375, 0.10782480239868164; +378.8763122558594, 0.10927021503448486; +378.9762878417969, 0.11437386274337769; +379.0762939453125, 0.120602548122406; +379.1763000488281, 0.12647360563278198; +379.2762756347656, 0.13427436351776123; +379.37628173828125, 0.14240294694900513; +379.47625732421875, 0.14837831258773804; +379.5762634277344, 0.15051662921905518; +379.67626953125, 0.15172362327575684; +379.7762451171875, 0.15306472778320312; +379.8762512207031, 0.15189498662948608; +379.9762268066406, 0.14910101890563965; +380.07623291015625, 0.14629215002059937; +380.1762390136719, 0.1436769962310791; +380.2762145996094, 0.13922899961471558; +380.376220703125, 0.13325363397598267; +380.4761962890625, 0.1288577914237976; +380.5762023925781, 0.12853741645812988; +380.67620849609375, 0.13165920972824097; +380.77618408203125, 0.13565272092819214; +380.8761901855469, 0.13837963342666626; +380.9761657714844, 0.13977289199829102; +381.076171875, 0.1407414674758911; +381.1761779785156, 0.13965368270874023; +381.2761535644531, 0.13744086027145386; +381.37615966796875, 0.13601034879684448; +381.47613525390625, 0.1354217529296875; +381.5761413574219, 0.13472139835357666; +381.6761169433594, 0.1324787735939026; +381.776123046875, 0.13118237257003784; +381.8761291503906, 0.13078004121780396; +381.9761047363281, 0.13014674186706543; +382.07611083984375, 0.1313909888267517; +382.17608642578125, 0.13674050569534302; +382.2760925292969, 0.1452118158340454; +382.3760986328125, 0.1512467861175537; +382.47607421875, 0.1526474952697754; +382.5760803222656, 0.1529902219772339; +382.6760559082031, 0.15436112880706787; +382.77606201171875, 0.15567243099212646; +382.8760681152344, 0.1556873321533203; +382.9760437011719, 0.15560537576675415; +383.0760498046875, 0.15675276517868042; +383.176025390625, 0.15766918659210205; +383.2760314941406, 0.1565888524055481; +383.37603759765625, 0.15304237604141235; +383.47601318359375, 0.1490190625190735; +383.5760192871094, 0.14712661504745483; +383.6759948730469, 0.14632195234298706; +383.7760009765625, 0.14475733041763306; +383.8760070800781, 0.14219433069229126; +383.9759826660156, 0.14147162437438965; +384.07598876953125, 0.1429244875907898; +384.17596435546875, 0.14346837997436523; +384.2759704589844, 0.14334172010421753; +384.3759765625, 0.1459270715713501; +384.4759521484375, 0.15191733837127686; +384.5759582519531, 0.15889853239059448; +384.6759338378906, 0.16327202320098877; +384.77593994140625, 0.16439706087112427; +384.8759460449219, 0.16365200281143188; +384.9759216308594, 0.1611262559890747; +385.075927734375, 0.15679746866226196; +385.1759033203125, 0.1495257019996643; +385.2759094238281, 0.14307349920272827; +385.37591552734375, 0.142611563205719; +385.47589111328125, 0.14761090278625488; +385.5758972167969, 0.1536235213279724; +385.6758728027344, 0.15920400619506836; +385.77587890625, 0.16586482524871826; +385.8758544921875, 0.17131119966506958; +385.9758605957031, 0.17045438289642334; +386.07586669921875, 0.1650303602218628; +386.17584228515625, 0.16107410192489624; +386.2758483886719, 0.16086548566818237; +386.3758239746094, 0.1614987850189209; +386.475830078125, 0.16226619482040405; +386.5758361816406, 0.1638159155845642; +386.6758117675781, 0.1651570200920105; +386.77581787109375, 0.1633092761039734; +386.87579345703125, 0.1586228609085083; +386.9757995605469, 0.1546218991279602; +387.0758056640625, 0.15250593423843384; +387.17578125, 0.15288591384887695; +387.2757873535156, 0.15488266944885254; +387.3757629394531, 0.15858560800552368; +387.47576904296875, 0.16134977340698242; +387.5757751464844, 0.1608729362487793; +387.6757507324219, 0.15839934349060059; +387.7757568359375, 0.15562772750854492; +387.875732421875, 0.15207380056381226; +387.9757385253906, 0.14647841453552246; +388.07574462890625, 0.14290213584899902; +388.17572021484375, 0.14369189739227295; +388.2757263183594, 0.14737993478775024; +388.3757019042969, 0.15003979206085205; +388.4757080078125, 0.15176087617874146; +388.5757141113281, 0.1549050211906433; +388.6756896972656, 0.15700608491897583; +388.77569580078125, 0.15810132026672363; +388.87567138671875, 0.15908479690551758; +388.9756774902344, 0.16169250011444092; +389.07568359375, 0.16558170318603516; +389.1756591796875, 0.16670674085617065; +389.2756652832031, 0.1645982265472412; +389.3756408691406, 0.16031414270401; +389.47564697265625, 0.15725940465927124; +389.5756530761719, 0.15725940465927124; +389.6756286621094, 0.16129016876220703; +389.775634765625, 0.17126649618148804; +389.8756103515625, 0.18393248319625854; +389.9756164550781, 0.19390136003494263; +390.0755920410156, 0.19538402557373047; +390.17559814453125, 0.19035488367080688; +390.2756042480469, 0.18125027418136597; +390.3755798339844, 0.16933679580688477; +390.4755859375, 0.15874207019805908; +390.5755615234375, 0.1519322395324707; +390.6755676269531, 0.15240907669067383; +390.77557373046875, 0.15908479690551758; +390.87554931640625, 0.1686587929725647; +390.9755554199219, 0.1769736409187317; +391.0755310058594, 0.18128752708435059; +391.175537109375, 0.18437206745147705; +391.2755432128906, 0.18711388111114502; +391.3755187988281, 0.18756836652755737; +391.47552490234375, 0.18528848886489868; +391.57550048828125, 0.18267333507537842; +391.6755065917969, 0.18131732940673828; +391.7755126953125, 0.17976760864257812; +391.87548828125, 0.17877668142318726; +391.9754943847656, 0.17920881509780884; +392.0754699707031, 0.180758535861969; +392.17547607421875, 0.18177926540374756; +392.2754821777344, 0.18233805894851685; +392.3754577636719, 0.18375366926193237; +392.4754638671875, 0.18590688705444336; +392.575439453125, 0.18820911645889282; +392.6754455566406, 0.1911446452140808; +392.77545166015625, 0.1948922872543335; +392.87542724609375, 0.1972392201423645; +392.9754333496094, 0.19691139459609985; +393.0754089355469, 0.1929551362991333; +393.1754150390625, 0.18800795078277588; +393.2754211425781, 0.18411129713058472; +393.3753967285156, 0.18306076526641846; +393.47540283203125, 0.18664449453353882; +393.57537841796875, 0.19187480211257935; +393.6753845214844, 0.19584596157073975; +393.775390625, 0.19565969705581665; +393.8753662109375, 0.19092857837677002; +393.9753723144531, 0.18478929996490479; +394.0753479003906, 0.1800134778022766; +394.17535400390625, 0.1787617802619934; +394.27532958984375, 0.18021464347839355; +394.3753356933594, 0.18364191055297852; +394.475341796875, 0.18832087516784668; +394.5753173828125, 0.19103288650512695; +394.6753234863281, 0.19037723541259766; +394.7752990722656, 0.18728524446487427; +394.87530517578125, 0.18330663442611694; +394.9753112792969, 0.1792311668395996; +395.0752868652344, 0.17593055963516235; +395.17529296875, 0.17424672842025757; +395.2752685546875, 0.1716911792755127; +395.3752746582031, 0.1675933599472046; +395.47528076171875, 0.16469508409500122; +395.57525634765625, 0.1630038022994995; +395.6752624511719, 0.1605600118637085; +395.7752380371094, 0.15756487846374512; +395.875244140625, 0.15666335821151733; +395.9752502441406, 0.15864521265029907; +396.0752258300781, 0.16158074140548706; +396.17523193359375, 0.16514211893081665; +396.27520751953125, 0.16908347606658936; +396.3752136230469, 0.17114728689193726; +396.4752197265625, 0.17058104276657104; +396.5751953125, 0.16776472330093384; +396.6752014160156, 0.16325712203979492; +396.7751770019531, 0.15780329704284668; +396.87518310546875, 0.15353411436080933; +396.9751892089844, 0.15388429164886475; +397.0751647949219, 0.15860050916671753; +397.1751708984375, 0.16529858112335205; +397.275146484375, 0.17085671424865723; +397.3751525878906, 0.17495453357696533; +397.47515869140625, 0.176355242729187; +397.57513427734375, 0.173322856426239; +397.6751403808594, 0.16696006059646606; +397.7751159667969, 0.15912950038909912; +397.8751220703125, 0.15301257371902466; +397.97509765625, 0.15094876289367676; +398.0751037597656, 0.15416741371154785; +398.17510986328125, 0.16123801469802856; +398.27508544921875, 0.1675337553024292; +398.3750915527344, 0.17227977514266968; +398.4750671386719, 0.17501413822174072; +398.5750732421875, 0.173814594745636; +398.6750793457031, 0.16923248767852783; +398.7750549316406, 0.16441941261291504; +398.87506103515625, 0.16304105520248413; +398.97503662109375, 0.16225874423980713; +399.0750427246094, 0.1592785120010376; +399.175048828125, 0.15442818403244019; +399.2750244140625, 0.14764070510864258; +399.3750305175781, 0.13944506645202637; +399.4750061035156, 0.1299828290939331; +399.57501220703125, 0.1225098967552185; +399.6750183105469, 0.1203492283821106; +399.7749938964844, 0.12261420488357544; +399.875, 0.1271367073059082; +399.9749755859375, 0.13124197721481323; +400.0749816894531, 0.13390183448791504; +400.17498779296875, 0.13530254364013672; +400.27496337890625, 0.13465434312820435; +400.3749694824219, 0.13228505849838257; +400.4749450683594, 0.1299157738685608; +400.574951171875, 0.1271069049835205; +400.6749572753906, 0.12469291687011719; +400.7749328613281, 0.12344121932983398; +400.87493896484375, 0.12309849262237549; +400.97491455078125, 0.12502819299697876; +401.0749206542969, 0.1277625560760498; +401.1749267578125, 0.130578875541687; +401.27490234375, 0.13209879398345947; +401.3749084472656, 0.1306682825088501; +401.4748840332031, 0.128135085105896; +401.57489013671875, 0.12323260307312012; +401.6748962402344, 0.11751800775527954; +401.7748718261719, 0.11404603719711304; +401.8748779296875, 0.11401623487472534; +401.974853515625, 0.11683255434036255; +402.0748596191406, 0.11916458606719971; +402.1748352050781, 0.12082606554031372; +402.27484130859375, 0.12006610631942749; +402.3748474121094, 0.1160353422164917; +402.4748229980469, 0.1103430986404419; +402.5748291015625, 0.10574609041213989; +402.6748046875, 0.10379403829574585; +402.7748107910156, 0.10448694229125977; +402.87481689453125, 0.10757148265838623; +402.97479248046875, 0.11229515075683594; +403.0747985839844, 0.11817365884780884; +403.1747741699219, 0.12440979480743408; +403.2747802734375, 0.12969970703125; +403.3747863769531, 0.13086199760437012; +403.4747619628906, 0.1289770007133484; +403.57476806640625, 0.12552738189697266; +403.67474365234375, 0.11976063251495361; +403.7747497558594, 0.11095404624938965; +403.874755859375, 0.10126084089279175; +403.9747314453125, 0.09524822235107422; +404.0747375488281, 0.09368360042572021; +404.1747131347656, 0.09591877460479736; +404.27471923828125, 0.10045617818832397; +404.3747253417969, 0.10548532009124756; +404.4747009277344, 0.1093447208404541; +404.57470703125, 0.11151283979415894; +404.6746826171875, 0.11171400547027588; +404.7746887207031, 0.11035054922103882; +404.87469482421875, 0.10880082845687866; +404.97467041015625, 0.109061598777771; +405.0746765136719, 0.1107826828956604; +405.1746520996094, 0.11277198791503906; +405.274658203125, 0.11523813009262085; +405.3746643066406, 0.11785328388214111; +405.4746398925781, 0.12089312076568604; +405.57464599609375, 0.12309104204177856; +405.67462158203125, 0.1246333122253418; +405.7746276855469, 0.12540817260742188; +405.8746337890625, 0.12574344873428345; +405.974609375, 0.12391805648803711; +406.0746154785156, 0.11871755123138428; +406.1745910644531, 0.11371076107025146; +406.27459716796875, 0.11211633682250977; +406.37457275390625, 0.11446326971054077; +406.4745788574219, 0.116690993309021; +406.5745849609375, 0.11968612670898438; +406.674560546875, 0.12529641389846802; +406.7745666503906, 0.13124197721481323; +406.8745422363281, 0.13377517461776733; +406.97454833984375, 0.1321732997894287; +407.0745544433594, 0.12943893671035767; +407.1745300292969, 0.1261681318283081; +407.2745361328125, 0.12195855379104614; +407.37451171875, 0.11760741472244263; +407.4745178222656, 0.11532753705978394; +407.57452392578125, 0.1144111156463623; +407.67449951171875, 0.11399388313293457; +407.7745056152344, 0.1142844557762146; +407.8744812011719, 0.11748820543289185; +407.9744873046875, 0.12328475713729858; +408.0744934082031, 0.12977421283721924; +408.1744689941406, 0.1368001103401184; +408.27447509765625, 0.14504045248031616; +408.37445068359375, 0.15307962894439697; +408.4744567871094, 0.15725940465927124; +408.574462890625, 0.15803426504135132; +408.6744384765625, 0.15685707330703735; +408.7744445800781, 0.15469640493392944; +408.8744201660156, 0.15051662921905518; +408.97442626953125, 0.14666467905044556; +409.0744323730469, 0.14449656009674072; +409.1744079589844, 0.14317035675048828; +409.2744140625, 0.14214962720870972; +409.3743896484375, 0.14306604862213135; +409.4743957519531, 0.14691054821014404; +409.57440185546875, 0.15100091695785522; +409.67437744140625, 0.1552104949951172; +409.7743835449219, 0.16031414270401; +409.8743591308594, 0.16560405492782593; +409.974365234375, 0.16795843839645386; +410.0743713378906, 0.16664713621139526; +410.1743469238281, 0.16523152589797974; +410.27435302734375, 0.16470253467559814; +410.37432861328125, 0.1641586422920227; +410.4743347167969, 0.16178935766220093; +410.5743103027344, 0.15829503536224365; +410.67431640625, 0.15441328287124634; +410.7743225097656, 0.14987587928771973; +410.8742980957031, 0.14425069093704224; +410.97430419921875, 0.13863295316696167; +411.07427978515625, 0.1377686858177185; +411.1742858886719, 0.14306604862213135; +411.2742919921875, 0.15229731798171997; +411.374267578125, 0.160902738571167; +411.4742736816406, 0.16794353723526; +411.5742492675781, 0.1730099320411682; +411.67425537109375, 0.17486512660980225; +411.7742614746094, 0.1743510365486145; +411.8742370605469, 0.17394870519638062; +411.9742431640625, 0.17467141151428223; +412.07421875, 0.1756623387336731; +412.1742248535156, 0.17643719911575317; +412.27423095703125, 0.17847120761871338; +412.37420654296875, 0.1825466752052307; +412.4742126464844, 0.18750131130218506; +412.5741882324219, 0.19058585166931152; +412.6741943359375, 0.18962472677230835; +412.7742004394531, 0.18739700317382812; +412.8741760253906, 0.18637627363204956; +412.97418212890625, 0.18621981143951416; +413.07415771484375, 0.18496811389923096; +413.1741638183594, 0.18420815467834473; +413.274169921875, 0.18683075904846191; +413.3741455078125, 0.19081681966781616; +413.4741516113281, 0.19299983978271484; +413.5741271972656, 0.19104033708572388; +413.67413330078125, 0.187799334526062; +413.7741394042969, 0.18706172704696655; +413.8741149902344, 0.19055604934692383; +413.97412109375, 0.19594281911849976; +414.0740966796875, 0.19843131303787231; +414.1741027832031, 0.19721686840057373; +414.2740783691406, 0.19435584545135498; +414.37408447265625, 0.19200891256332397; +414.4740905761719, 0.18949806690216064; +414.5740661621094, 0.18630921840667725; +414.674072265625, 0.18287450075149536; +414.7740478515625, 0.18164515495300293; +414.8740539550781, 0.1835450530052185; +414.97406005859375, 0.1860484480857849; +415.07403564453125, 0.18820911645889282; +415.1740417480469, 0.1913905143737793; +415.2740173339844, 0.19852817058563232; +415.3740234375, 0.20833313465118408; +415.4740295410156, 0.21623820066452026; +415.5740051269531, 0.22158771753311157; +415.67401123046875, 0.22429972887039185; +415.77398681640625, 0.22436678409576416; +415.8739929199219, 0.22088736295700073; +415.9739990234375, 0.21522492170333862; +416.073974609375, 0.20957738161087036; +416.1739807128906, 0.20378828048706055; +416.2739562988281, 0.1988336443901062; +416.37396240234375, 0.1959279179573059; +416.4739685058594, 0.195331871509552; +416.5739440917969, 0.19496679306030273; +416.6739501953125, 0.19563734531402588; +416.77392578125, 0.19916146993637085; +416.8739318847656, 0.20642578601837158; +416.97393798828125, 0.21502375602722168; +417.07391357421875, 0.22315233945846558; +417.1739196777344, 0.22987276315689087; +417.2738952636719, 0.23467093706130981; +417.3739013671875, 0.2368837594985962; +417.4739074707031, 0.2354159951210022; +417.5738830566406, 0.23142993450164795; +417.67388916015625, 0.2261623740196228; +417.77386474609375, 0.22222846746444702; +417.8738708496094, 0.21903961896896362; +417.973876953125, 0.21832436323165894; +418.0738525390625, 0.21993368864059448; +418.1738586425781, 0.22230297327041626; +418.2738342285156, 0.22304803133010864; +418.37384033203125, 0.22120028734207153; +418.47381591796875, 0.21976977586746216; +418.5738220214844, 0.21660327911376953; +418.673828125, 0.21047890186309814; +418.7738037109375, 0.2023950219154358; +418.8738098144531, 0.19665062427520752; +418.9737854003906, 0.1942366361618042; +419.07379150390625, 0.19328296184539795; +419.1737976074219, 0.19413232803344727; +419.2737731933594, 0.19672513008117676; +419.373779296875, 0.200711190700531; +419.4737548828125, 0.20396709442138672; +419.5737609863281, 0.2061799168586731; +419.67376708984375, 0.20601600408554077; +419.77374267578125, 0.20288676023483276; +419.8737487792969, 0.19860267639160156; +419.9737243652344, 0.19590556621551514; +420.07373046875, 0.19587576389312744; +420.1737365722656, 0.19743293523788452; +420.2737121582031, 0.2002120018005371; +420.37371826171875, 0.20378828048706055; +420.47369384765625, 0.20564347505569458; +420.5736999511719, 0.2027451992034912; +420.6737060546875, 0.19774585962295532; +420.773681640625, 0.19691139459609985; +420.8736877441406, 0.20117312669754028; +420.9736633300781, 0.20722299814224243; +421.07366943359375, 0.21328777074813843; +421.1736755371094, 0.22061914205551147; +421.2736511230469, 0.2273842692375183; +421.3736572265625, 0.22955983877182007; +421.4736328125, 0.2275705337524414; +421.5736389160156, 0.2237856388092041; +421.67364501953125, 0.22052228450775146; +421.77362060546875, 0.21807104349136353; +421.8736267089844, 0.21713227033615112; +421.9736022949219, 0.21619349718093872; +422.0736083984375, 0.21401792764663696; +422.1736145019531, 0.21125376224517822; +422.2735900878906, 0.2080574631690979; +422.37359619140625, 0.20306557416915894; +422.47357177734375, 0.19628554582595825; +422.5735778808594, 0.19253045320510864; +422.6735534667969, 0.1928582787513733; +422.7735595703125, 0.19585341215133667; +422.8735656738281, 0.19866228103637695; +422.9735412597656, 0.20363181829452515; +423.07354736328125, 0.21098554134368896; +423.17352294921875, 0.2159401774406433; +423.2735290527344, 0.21810084581375122; +423.37353515625, 0.21663308143615723; +423.4735107421875, 0.21374225616455078; +423.5735168457031, 0.20836293697357178; +423.6734924316406, 0.20156800746917725; +423.77349853515625, 0.19619613885879517; +423.8735046386719, 0.19012391567230225; +423.9734802246094, 0.18423795700073242; +424.073486328125, 0.18006563186645508; +424.1734619140625, 0.18002837896347046; +424.2734680175781, 0.18268823623657227; +424.37347412109375, 0.18533319234848022; +424.47344970703125, 0.18998980522155762; +424.5734558105469, 0.1969859004020691; +424.6734313964844, 0.20481646060943604; +424.7734375, 0.21062791347503662; +424.8734436035156, 0.21298229694366455; +424.9734191894531, 0.21162629127502441; +425.07342529296875, 0.20672380924224854; +425.17340087890625, 0.20079314708709717; +425.2734069824219, 0.19685178995132446; +425.3734130859375, 0.1963004469871521; +425.473388671875, 0.1994296908378601; +425.5733947753906, 0.2053976058959961; +425.6733703613281, 0.21082907915115356; +425.77337646484375, 0.21376460790634155; +425.8733825683594, 0.21566450595855713; +425.9733581542969, 0.21895766258239746; +426.0733642578125, 0.22161751985549927; +426.17333984375, 0.220566987991333; +426.2733459472656, 0.2176910638809204; +426.37335205078125, 0.21626800298690796; +426.47332763671875, 0.2141222357749939; +426.5733337402344, 0.2074316143989563; +426.6733093261719, 0.19729137420654297; +426.7733154296875, 0.18978863954544067; +426.873291015625, 0.18664449453353882; +426.9732971191406, 0.1842603087425232; +427.07330322265625, 0.18126517534255981; +427.17327880859375, 0.178605318069458; +427.2732849121094, 0.17848610877990723; +427.3732604980469, 0.18002837896347046; +427.4732666015625, 0.18113106489181519; +427.5732727050781, 0.18256157636642456; +427.6732482910156, 0.18387287855148315; +427.77325439453125, 0.18536299467086792; +427.87322998046875, 0.18614530563354492; +427.9732360839844, 0.1865178346633911; +428.0732421875, 0.18912553787231445; +428.1732177734375, 0.19331276416778564; +428.2732238769531, 0.1974925398826599; +428.3731994628906, 0.19975006580352783; +428.47320556640625, 0.19952654838562012; +428.5732116699219, 0.1980513334274292; +428.6731872558594, 0.1955777406692505; +428.773193359375, 0.19385665655136108; +428.8731689453125, 0.19408762454986572; +428.9731750488281, 0.19560754299163818; +429.07318115234375, 0.19743293523788452; +429.17315673828125, 0.19818544387817383; +429.2731628417969, 0.1986473798751831; +429.3731384277344, 0.1988634467124939; +429.47314453125, 0.1984909176826477; +429.5731506347656, 0.19825249910354614; +429.6731262207031, 0.19978731870651245; +429.77313232421875, 0.20260363817214966; +429.87310791015625, 0.20656734704971313; +429.9731140136719, 0.21016597747802734; +430.0731201171875, 0.21202117204666138; +430.173095703125, 0.21162629127502441; +430.2731018066406, 0.20930171012878418; +430.3730773925781, 0.2072453498840332; +430.47308349609375, 0.20238757133483887; +430.57305908203125, 0.19471347332000732; +430.6730651855469, 0.18777698278427124; +430.7730712890625, 0.18545985221862793; +430.873046875, 0.18745660781860352; +430.9730529785156, 0.18890947103500366; +431.0730285644531, 0.18913298845291138; +431.17303466796875, 0.1889541745185852; +431.2730407714844, 0.18920749425888062; +431.3730163574219, 0.18708407878875732; +431.4730224609375, 0.18242746591567993; +431.572998046875, 0.17984211444854736; +431.6730041503906, 0.18384307622909546; +431.77301025390625, 0.19378215074539185; +431.87298583984375, 0.20460039377212524; +431.9729919433594, 0.2132132649421692; +432.0729675292969, 0.21900981664657593; +432.1729736328125, 0.2226009964942932; +432.2729797363281, 0.2225637435913086; +432.3729553222656, 0.21886825561523438; +432.47296142578125, 0.21392852067947388; +432.57293701171875, 0.2123415470123291; +432.6729431152344, 0.21424144506454468; +432.77294921875, 0.21469593048095703; +432.8729248046875, 0.21187961101531982; +432.9729309082031, 0.20781904458999634; +433.0729064941406, 0.2065598964691162; +433.17291259765625, 0.2067461609840393; +433.2729187011719, 0.2061203122138977; +433.3728942871094, 0.20476430654525757; +433.472900390625, 0.20477920770645142; +433.5728759765625, 0.20804256200790405; +433.6728820800781, 0.21148473024368286; +433.77288818359375, 0.2146884799003601; +433.87286376953125, 0.21721422672271729; +433.9728698730469, 0.22092461585998535; +434.0728454589844, 0.2245679497718811; +434.1728515625, 0.2245679497718811; +434.2728576660156, 0.22276490926742554; +434.3728332519531, 0.22008270025253296; +434.47283935546875, 0.21729618310928345; +434.57281494140625, 0.21360069513320923; +434.6728210449219, 0.2108067274093628; +434.7727966308594, 0.21282583475112915; +434.872802734375, 0.21654367446899414; +434.9728088378906, 0.2183094620704651; +435.0727844238281, 0.22004544734954834; +435.17279052734375, 0.22488832473754883; +435.27276611328125, 0.23126602172851562; +435.3727722167969, 0.2326369285583496; +435.4727783203125, 0.2312883734703064; +435.57275390625, 0.2330690622329712; +435.6727600097656, 0.23711472749710083; +435.7727355957031, 0.23896992206573486; +435.87274169921875, 0.23701786994934082; +435.9727478027344, 0.2376660704612732; +436.0727233886719, 0.24162977933883667; +436.1727294921875, 0.24571269750595093; +436.272705078125, 0.2502650022506714; +436.3727111816406, 0.255681574344635; +436.47271728515625, 0.2606809139251709; +436.57269287109375, 0.2605020999908447; +436.6726989746094, 0.2550855278968811; +436.7726745605469, 0.24815648794174194; +436.8726806640625, 0.24128705263137817; +436.9726867675781, 0.23587048053741455; +437.0726623535156, 0.23581832647323608; +437.17266845703125, 0.24292618036270142; +437.27264404296875, 0.2562999725341797; +437.3726501464844, 0.274166464805603; +437.47265625, 0.2974867820739746; +437.5726318359375, 0.32720714807510376; +437.6726379394531, 0.35769492387771606; +437.7726135253906, 0.3846511244773865; +437.87261962890625, 0.40777772665023804; +437.9726257324219, 0.42917579412460327; +438.0726013183594, 0.4495084285736084; +438.172607421875, 0.46800076961517334; +438.2725830078125, 0.4872232675552368; +438.3725891113281, 0.5082562565803528; +438.47259521484375, 0.527597963809967; +438.57257080078125, 0.5407407879829407; +438.6725769042969, 0.5452260375022888; +438.7725524902344, 0.5421414971351624; +438.87255859375, 0.5339682102203369; +438.9725341796875, 0.5223006010055542; +439.0725402832031, 0.5088895559310913; +439.17254638671875, 0.49307942390441895; +439.27252197265625, 0.47519057989120483; +439.3725280761719, 0.455707311630249; +439.4725036621094, 0.4354342818260193; +439.572509765625, 0.4165247082710266; +439.6725158691406, 0.3990456461906433; +439.7724914550781, 0.38345158100128174; +439.87249755859375, 0.3688111901283264; +439.97247314453125, 0.35519152879714966; +440.0724792480469, 0.34108757972717285; +440.1724853515625, 0.3269761800765991; +440.2724609375, 0.31597912311553955; +440.3724670410156, 0.3098621964454651; +440.4724426269531, 0.30684471130371094; +440.57244873046875, 0.3033354878425598; +440.6724548339844, 0.3016740083694458; +440.7724304199219, 0.301852822303772; +440.8724365234375, 0.30012428760528564; +440.972412109375, 0.29324740171432495; +441.0724182128906, 0.2819150686264038; +441.17242431640625, 0.2719387412071228; +441.27239990234375, 0.26267021894454956; +441.3724060058594, 0.254899263381958; +441.4723815917969, 0.25097280740737915; +441.5723876953125, 0.2529844641685486; +441.6723937988281, 0.26123225688934326; +441.7723693847656, 0.2696216106414795; +441.87237548828125, 0.27533620595932007; +441.97235107421875, 0.27670711278915405; +442.0723571777344, 0.2753734588623047; +442.17236328125, 0.27517974376678467; +442.2723388671875, 0.276908278465271; +442.3723449707031, 0.27927011251449585; +442.4723205566406, 0.2811029553413391; +442.57232666015625, 0.2817884087562561; +442.6723327636719, 0.28102099895477295; +442.7723083496094, 0.27629733085632324; +442.872314453125, 0.267907977104187; +442.9722900390625, 0.2615004777908325; +443.0722961425781, 0.25878846645355225; +443.1722717285156, 0.25781989097595215; +443.27227783203125, 0.2569854259490967; +443.3722839355469, 0.2559274435043335; +443.4722595214844, 0.2552047371864319; +443.572265625, 0.2525150775909424; +443.6722412109375, 0.2494603395462036; +443.7722473144531, 0.24811923503875732; +443.87225341796875, 0.24467706680297852; +443.97222900390625, 0.23826956748962402; +444.0722351074219, 0.23292750120162964; +444.1722106933594, 0.2340078353881836; +444.272216796875, 0.23943185806274414; +444.3722229003906, 0.2440810203552246; +444.4721984863281, 0.24854391813278198; +444.57220458984375, 0.254996120929718; +444.67218017578125, 0.2610310912132263; +444.7721862792969, 0.2627819776535034; +444.8721923828125, 0.2610310912132263; +444.97216796875, 0.25938451290130615; +445.0721740722656, 0.2606511116027832; +445.1721496582031, 0.26226043701171875; +445.27215576171875, 0.2628043293952942; +445.3721618652344, 0.26285648345947266; +445.4721374511719, 0.2625659108161926; +445.5721435546875, 0.26122480630874634; +445.672119140625, 0.25713443756103516; +445.7721252441406, 0.2537667751312256; +445.87213134765625, 0.2519190311431885; +445.97210693359375, 0.24954229593276978; +446.0721130371094, 0.2450793981552124; +446.1720886230469, 0.24065375328063965; +446.2720947265625, 0.23856759071350098; +446.3721008300781, 0.23689121007919312; +446.4720764160156, 0.23478269577026367; +446.57208251953125, 0.23409724235534668; +446.67205810546875, 0.23453682661056519; +446.7720642089844, 0.23552775382995605; +446.8720397949219, 0.2369210124015808; +446.9720458984375, 0.2397969365119934; +447.0720520019531, 0.24311989545822144; +447.1720275878906, 0.24313479661941528; +447.27203369140625, 0.24046003818511963; +447.37200927734375, 0.23889541625976562; +447.4720153808594, 0.2404525876045227; +447.572021484375, 0.24339556694030762; +447.6719970703125, 0.2462044358253479; +447.7720031738281, 0.25085359811782837; +447.8719787597656, 0.2574548125267029; +447.97198486328125, 0.26138126850128174; +448.0719909667969, 0.26028603315353394; +448.1719665527344, 0.2555474638938904; +448.27197265625, 0.24963915348052979; +448.3719482421875, 0.24323910474777222; +448.4719543457031, 0.23686885833740234; +448.57196044921875, 0.23186206817626953; +448.67193603515625, 0.22958219051361084; +448.7719421386719, 0.2292916178703308; +448.8719177246094, 0.23004412651062012; +448.971923828125, 0.2296045422554016; +449.0719299316406, 0.22829324007034302; +449.1719055175781, 0.22829324007034302; +449.27191162109375, 0.22783130407333374; +449.37188720703125, 0.22489577531814575; +449.4718933105469, 0.22043287754058838; +449.5718994140625, 0.21795928478240967; +449.671875, 0.21924078464508057; +449.7718811035156, 0.2214387059211731; +449.8718566894531, 0.22444874048233032; +449.97186279296875, 0.2297908067703247; +450.0718688964844, 0.23595988750457764; +450.1718444824219, 0.2391412854194641; +450.2718505859375, 0.23706257343292236; +450.371826171875, 0.23218989372253418; +450.4718322753906, 0.22796541452407837; +450.57183837890625, 0.2258196473121643; +450.67181396484375, 0.2246648073196411; +450.7718200683594, 0.22573024034500122; +450.8717956542969, 0.22880733013153076; +450.9718017578125, 0.23211538791656494; +451.07177734375, 0.23262202739715576; +451.1717834472656, 0.23029744625091553; +451.27178955078125, 0.22845715284347534; +451.37176513671875, 0.2278536558151245; +451.4717712402344, 0.22705644369125366; +451.5717468261719, 0.2248808741569519; +451.6717529296875, 0.2245008945465088; +451.7717590332031, 0.2267211675643921; +451.8717346191406, 0.22980570793151855; +451.97174072265625, 0.23121386766433716; +452.07171630859375, 0.2316311001777649; +452.1717224121094, 0.2329796552658081; +452.271728515625, 0.23296475410461426; +452.3717041015625, 0.23105740547180176; +452.4717102050781, 0.22766739130020142; +452.5716857910156, 0.22526830434799194; +452.67169189453125, 0.22453069686889648; +452.7716979980469, 0.2244114875793457; +452.8716735839844, 0.22447854280471802; +452.9716796875, 0.2244114875793457; +453.0716552734375, 0.22539496421813965; +453.1716613769531, 0.22637099027633667; +453.27166748046875, 0.2260357141494751; +453.37164306640625, 0.22269785404205322; +453.4716491699219, 0.21818280220031738; +453.5716247558594, 0.2152174711227417; +453.671630859375, 0.21307915449142456; +453.7716369628906, 0.21058320999145508; +453.8716125488281, 0.20787864923477173; +453.97161865234375, 0.20880252122879028; +454.07159423828125, 0.21411478519439697; +454.1716003417969, 0.21910667419433594; +454.2716064453125, 0.22151321172714233; +454.37158203125, 0.2224370837211609; +454.4715881347656, 0.2252534031867981; +454.5715637207031, 0.22936612367630005; +454.67156982421875, 0.23087114095687866; +454.7715759277344, 0.22917985916137695; +454.8715515136719, 0.2261325716972351; +454.9715576171875, 0.22476166486740112; +455.071533203125, 0.22414326667785645; +455.1715393066406, 0.2223178744316101; +455.2715148925781, 0.2209693193435669; +455.37152099609375, 0.22176653146743774; +455.4715270996094, 0.22502243518829346; +455.5715026855469, 0.22766739130020142; +455.6715087890625, 0.22868812084197998; +455.771484375, 0.22855401039123535; +455.8714904785156, 0.22730231285095215; +455.97149658203125, 0.22464245557785034; +456.07147216796875, 0.22032111883163452; +456.1714782714844, 0.21707266569137573; +456.2714538574219, 0.2174675464630127; +456.3714599609375, 0.22227317094802856; +456.4714660644531, 0.22923201322555542; +456.5714416503906, 0.23568421602249146; +456.67144775390625, 0.24086236953735352; +456.77142333984375, 0.24424493312835693; +456.8714294433594, 0.24471431970596313; +456.971435546875, 0.24194270372390747; +457.0714111328125, 0.23693591356277466; +457.1714172363281, 0.23242831230163574; +457.2713928222656, 0.22902339696884155; +457.37139892578125, 0.22673606872558594; +457.4714050292969, 0.22640079259872437; +457.5713806152344, 0.22977590560913086; +457.67138671875, 0.23697316646575928; +457.7713623046875, 0.24428963661193848; +457.8713684082031, 0.24966895580291748; +457.97137451171875, 0.25347620248794556; +458.07135009765625, 0.25553256273269653; +458.1713562011719, 0.2540498971939087; +458.2713317871094, 0.24869292974472046; +458.371337890625, 0.24320930242538452; +458.4713439941406, 0.23977458477020264; +458.5713195800781, 0.23694336414337158; +458.67132568359375, 0.2331659197807312; +458.77130126953125, 0.22726505994796753; +458.8713073730469, 0.21979957818984985; +458.9713134765625, 0.21186470985412598; +459.0712890625, 0.2056509256362915; +459.1712951660156, 0.20264089107513428; +459.2712707519531, 0.20217150449752808; +459.37127685546875, 0.203840434551239; +459.47125244140625, 0.20653754472732544; +459.5712585449219, 0.2103671431541443; +459.6712646484375, 0.2143457531929016; +459.771240234375, 0.21727383136749268; +459.8712463378906, 0.21910667419433594; +459.9712219238281, 0.22088736295700073; +460.07122802734375, 0.22374838590621948; +460.1712341308594, 0.22460520267486572; +460.2712097167969, 0.22273510694503784; +460.3712158203125, 0.21988153457641602; +460.47119140625, 0.21851807832717896; +460.5711975097656, 0.2184659242630005; +460.67120361328125, 0.21919608116149902; +460.77117919921875, 0.22230297327041626; +460.8711853027344, 0.22663921117782593; +460.9711608886719, 0.23083388805389404; +461.0711669921875, 0.23187696933746338; +461.1711730957031, 0.23048371076583862; +461.2711486816406, 0.22755563259124756; +461.37115478515625, 0.22396445274353027; +461.47113037109375, 0.22139400243759155; +461.5711364746094, 0.21792948246002197; +461.671142578125, 0.21407008171081543; +461.7711181640625, 0.21009892225265503; +461.8711242675781, 0.2080872654914856; +461.9710998535156, 0.20826607942581177; +462.07110595703125, 0.20763278007507324; +462.1711120605469, 0.20670145750045776; +462.2710876464844, 0.20541250705718994; +462.37109375, 0.20484626293182373; +462.4710693359375, 0.20467489957809448; +462.5710754394531, 0.20515918731689453; +462.67108154296875, 0.20796805620193481; +462.77105712890625, 0.2131536602973938; +462.8710632324219, 0.22045522928237915; +462.9710388183594, 0.22777169942855835; +463.071044921875, 0.23253262042999268; +463.1710205078125, 0.23399293422698975; +463.2710266113281, 0.23256242275238037; +463.37103271484375, 0.22836029529571533; +463.47100830078125, 0.22415071725845337; +463.5710144042969, 0.2215355634689331; +463.6709899902344, 0.22047758102416992; +463.77099609375, 0.21866708993911743; +463.8710021972656, 0.21504610776901245; +463.9709777832031, 0.2121254801750183; +464.07098388671875, 0.2089366316795349; +464.17095947265625, 0.20521879196166992; +464.2709655761719, 0.2013072371482849; +464.3709716796875, 0.19831955432891846; +464.470947265625, 0.19777566194534302; +464.5709533691406, 0.19969791173934937; +464.6709289550781, 0.20416080951690674; +464.77093505859375, 0.2087801694869995; +464.8709411621094, 0.21207332611083984; +464.9709167480469, 0.21427124738693237; +465.0709228515625, 0.2160891890525818; +465.1708984375, 0.21614879369735718; +465.2709045410156, 0.21432340145111084; +465.37091064453125, 0.21267682313919067; +465.47088623046875, 0.21289288997650146; +465.5708923339844, 0.21331757307052612; +465.6708679199219, 0.21303445100784302; +465.7708740234375, 0.2134069800376892; +465.8708801269531, 0.21442025899887085; +465.9708557128906, 0.21410733461380005; +466.07086181640625, 0.21129846572875977; +466.17083740234375, 0.20916759967803955; +466.2708435058594, 0.2073347568511963; +466.370849609375, 0.20521879196166992; +466.4708251953125, 0.20217150449752808; +466.5708312988281, 0.19975006580352783; +466.6708068847656, 0.19953399896621704; +466.77081298828125, 0.20241737365722656; +466.8708190917969, 0.2084299921989441; +466.9707946777344, 0.2130642533302307; +467.07080078125, 0.21339207887649536; +467.1707763671875, 0.21108239889144897; +467.2707824707031, 0.2090930938720703; +467.3707580566406, 0.20603090524673462; +467.47076416015625, 0.20025670528411865; +467.5707702636719, 0.19401311874389648; +467.6707458496094, 0.19115209579467773; +467.770751953125, 0.1911446452140808; +467.8707275390625, 0.1903250813484192; +467.9707336425781, 0.186823308467865; +468.07073974609375, 0.18243491649627686; +468.17071533203125, 0.1814812421798706; +468.2707214355469, 0.1851096749305725; +468.3706970214844, 0.19234418869018555; +468.470703125, 0.20094215869903564; +468.5707092285156, 0.20875036716461182; +468.6706848144531, 0.21404772996902466; +468.77069091796875, 0.21424144506454468; +468.87066650390625, 0.2095550298690796; +468.9706726074219, 0.20308047533035278; +469.0706787109375, 0.1979619264602661; +469.170654296875, 0.19674748182296753; +469.2706604003906, 0.19852817058563232; +469.3706359863281, 0.2035275101661682; +469.47064208984375, 0.21123886108398438; +469.5706481933594, 0.2183094620704651; +469.6706237792969, 0.2230629324913025; +469.7706298828125, 0.22430717945098877; +469.87060546875, 0.2237558364868164; +469.9706115722656, 0.22207200527191162; +470.07061767578125, 0.21758675575256348; +470.17059326171875, 0.21190941333770752; +470.2705993652344, 0.2079010009765625; +470.3705749511719, 0.2093389630317688; +470.4705810546875, 0.21551549434661865; +470.5705871582031, 0.2203434705734253; +470.6705627441406, 0.22222846746444702; +470.77056884765625, 0.22245198488235474; +470.87054443359375, 0.22283941507339478; +470.9705505371094, 0.22167712450027466; +471.070556640625, 0.2180635929107666; +471.1705322265625, 0.21401047706604004; +471.2705383300781, 0.21260976791381836; +471.3705139160156, 0.2132505178451538; +471.47052001953125, 0.21282583475112915; +471.57049560546875, 0.2102106809616089; +471.6705017089844, 0.20761042833328247; +471.7705078125, 0.20810216665267944; +471.8704833984375, 0.20847469568252563; +471.9704895019531, 0.2044886350631714; +472.0704650878906, 0.19718706607818604; +472.17047119140625, 0.19106268882751465; +472.2704772949219, 0.18727034330368042; +472.3704528808594, 0.1840740442276001; +472.470458984375, 0.1822635531425476; +472.5704345703125, 0.18402934074401855; +472.6704406738281, 0.18800795078277588; +472.77044677734375, 0.19081681966781616; +472.87042236328125, 0.19118189811706543; +472.9704284667969, 0.19118934869766235; +473.0704040527344, 0.19022077322006226; +473.17041015625, 0.18771737813949585; +473.2704162597656, 0.18562376499176025; +473.3703918457031, 0.1851096749305725; +473.47039794921875, 0.18565356731414795; +473.57037353515625, 0.18533319234848022; +473.6703796386719, 0.18601864576339722; +473.7703857421875, 0.19003450870513916; +473.870361328125, 0.19560754299163818; +473.9703674316406, 0.1998022198677063; +474.0703430175781, 0.20202994346618652; +474.17034912109375, 0.20354986190795898; +474.2703552246094, 0.20582228899002075; +474.3703308105469, 0.20857155323028564; +474.4703369140625, 0.209808349609375; +474.5703125, 0.20936131477355957; +474.6703186035156, 0.20791590213775635; +474.77032470703125, 0.20829588174819946; +474.87030029296875, 0.21197646856307983; +474.9703063964844, 0.2149641513824463; +475.0702819824219, 0.21476298570632935; +475.1702880859375, 0.21185725927352905; +475.2702941894531, 0.20976364612579346; +475.3702697753906, 0.20791590213775635; +475.47027587890625, 0.20276755094528198; +475.57025146484375, 0.1963973045349121; +475.6702575683594, 0.19362568855285645; +475.7702331542969, 0.19565969705581665; +475.8702392578125, 0.19953399896621704; +475.9702453613281, 0.20054727792739868; +476.0702209472656, 0.200517475605011; +476.17022705078125, 0.20164251327514648; +476.27020263671875, 0.2036839723587036; +476.3702087402344, 0.20465999841690063; +476.47021484375, 0.20370632410049438; +476.5701904296875, 0.20572543144226074; +476.6701965332031, 0.20887702703475952; +476.7701721191406, 0.21054595708847046; +476.87017822265625, 0.21000951528549194; +476.9701843261719, 0.2105310559272766; +477.0701599121094, 0.21248310804367065; +477.170166015625, 0.21119415760040283; +477.2701416015625, 0.20740926265716553; +477.3701477050781, 0.2037137746810913; +477.47015380859375, 0.20288676023483276; +477.57012939453125, 0.20357221364974976; +477.6701354980469, 0.2045556902885437; +477.7701110839844, 0.20629167556762695; +477.8701171875, 0.20822137594223022; +477.9701232910156, 0.20901113748550415; +478.0700988769531, 0.20660459995269775; +478.17010498046875, 0.20091980695724487; +478.27008056640625, 0.19463151693344116; +478.3700866699219, 0.19107013940811157; +478.4700927734375, 0.1912936568260193; +478.570068359375, 0.19416213035583496; +478.6700744628906, 0.19828230142593384; +478.7700500488281, 0.20341575145721436; +478.87005615234375, 0.20828098058700562; +478.9700622558594, 0.2113431692123413; +479.0700378417969, 0.21316111087799072; +479.1700439453125, 0.2140328288078308; +479.27001953125, 0.21363049745559692; +479.3700256347656, 0.21191686391830444; +479.47003173828125, 0.2113133668899536; +479.57000732421875, 0.21261721849441528; +479.6700134277344, 0.21287798881530762; +479.7699890136719, 0.21129846572875977; +479.8699951171875, 0.21025538444519043; +479.969970703125, 0.21027028560638428; +480.0699768066406, 0.20812451839447021; +480.16998291015625, 0.20276755094528198; +480.26995849609375, 0.196799635887146; +480.3699645996094, 0.19387155771255493; +480.4699401855469, 0.19419193267822266; +480.5699462890625, 0.1977086067199707; +480.6699523925781, 0.20363926887512207; +480.7699279785156, 0.21028518676757812; +480.86993408203125, 0.2170354127883911; +480.96990966796875, 0.22167712450027466; +481.0699157714844, 0.22362172603607178; +481.169921875, 0.2234131097793579; +481.2698974609375, 0.22223591804504395; +481.3699035644531, 0.22130459547042847; +481.4698791503906, 0.2200305461883545; +481.56988525390625, 0.22005289793014526; +481.6698913574219, 0.2200007438659668; +481.7698669433594, 0.21713972091674805; +481.869873046875, 0.21187961101531982; +481.9698486328125, 0.20673125982284546; +482.0698547363281, 0.20372867584228516; +482.16986083984375, 0.201396644115448; +482.26983642578125, 0.1988634467124939; +482.3698425292969, 0.1969262957572937; +482.4698181152344, 0.193864107131958; +482.56982421875, 0.18987804651260376; +482.6698303222656, 0.18695741891860962; +482.7698059082031, 0.1861974596977234; +482.86981201171875, 0.18652528524398804; +482.96978759765625, 0.18688291311264038; +483.0697937011719, 0.19028782844543457; +483.1697998046875, 0.19638985395431519; +483.269775390625, 0.20042061805725098; +483.3697814941406, 0.20019710063934326; +483.4697570800781, 0.19828230142593384; +483.56976318359375, 0.1974254846572876; +483.66973876953125, 0.1969859004020691; +483.7697448730469, 0.19565224647521973; +483.8697509765625, 0.19584596157073975; +483.9697265625, 0.19881129264831543; +484.0697326660156, 0.20343810319900513; +484.1697082519531, 0.20739436149597168; +484.26971435546875, 0.2107769250869751; +484.3697204589844, 0.2148449420928955; +484.4696960449219, 0.2189725637435913; +484.5697021484375, 0.2202242612838745; +484.669677734375, 0.2194717526435852; +484.7696838378906, 0.22004544734954834; +484.86968994140625, 0.22140145301818848; +484.96966552734375, 0.22013485431671143; +485.0696716308594, 0.21510571241378784; +485.1696472167969, 0.209808349609375; +485.2696533203125, 0.20635128021240234; +485.3696594238281, 0.2017766237258911; +485.4696350097656, 0.1950785517692566; +485.56964111328125, 0.18872320652008057; +485.66961669921875, 0.18487125635147095; +485.7696228027344, 0.18422305583953857; +485.86962890625, 0.18437951803207397; +485.9696044921875, 0.1872032880783081; +486.0696105957031, 0.19290298223495483; +486.1695861816406, 0.2004280686378479; +486.26959228515625, 0.20651519298553467; +486.3695983886719, 0.2099350094795227; +486.4695739746094, 0.21182000637054443; +486.569580078125, 0.21179765462875366; +486.6695556640625, 0.20876526832580566; +486.7695617675781, 0.20262598991394043; +486.86956787109375, 0.19746273756027222; +486.96954345703125, 0.19456446170806885; +487.0695495605469, 0.1934245228767395; +487.1695251464844, 0.19109249114990234; +487.26953125, 0.1888573169708252; +487.3695373535156, 0.18890202045440674; +487.4695129394531, 0.1889541745185852; +487.56951904296875, 0.1876354217529297; +487.66949462890625, 0.1843273639678955; +487.7695007324219, 0.18209964036941528; +487.8694763183594, 0.18164515495300293; +487.969482421875, 0.1809149980545044; +488.0694885253906, 0.1794770359992981; +488.1694641113281, 0.17653405666351318; +488.26947021484375, 0.1736283302307129; +488.36944580078125, 0.1718774437904358; +488.4694519042969, 0.17265230417251587; +488.5694580078125, 0.1765042543411255; +488.66943359375, 0.18290430307388306; +488.7694396972656, 0.19124895334243774; +488.8694152832031, 0.1989230513572693; +488.96942138671875, 0.2052411437034607; +489.0694274902344, 0.21004676818847656; +489.1694030761719, 0.2132803201675415; +489.2694091796875, 0.21475553512573242; +489.369384765625, 0.21310150623321533; +489.4693908691406, 0.20976364612579346; +489.56939697265625, 0.2051815390586853; +489.66937255859375, 0.2011507749557495; +489.7693786621094, 0.19946694374084473; +489.8693542480469, 0.19863992929458618; +489.9693603515625, 0.19788742065429688; +490.0693664550781, 0.19726157188415527; +490.1693420410156, 0.19829720258712769; +490.26934814453125, 0.1994892954826355; +490.36932373046875, 0.19704550504684448; +490.4693298339844, 0.19140541553497314; +490.5693359375, 0.18649548292160034; +490.6693115234375, 0.18478929996490479; +490.7693176269531, 0.18487870693206787; +490.8692932128906, 0.1841410994529724; +490.96929931640625, 0.18367916345596313; +491.0693054199219, 0.18684566020965576; +491.1692810058594, 0.1931115984916687; +491.269287109375, 0.19972026348114014; +491.3692626953125, 0.2032071352005005; +491.4692687988281, 0.20463764667510986; +491.56927490234375, 0.20541250705718994; +491.66925048828125, 0.20409375429153442; +491.7692565917969, 0.20109117031097412; +491.8692321777344, 0.1978054642677307; +491.96923828125, 0.19898265600204468; +492.0692138671875, 0.20281225442886353; +492.1692199707031, 0.20682811737060547; +492.26922607421875, 0.20977109670639038; +492.36920166015625, 0.21116435527801514; +492.4692077636719, 0.21028518676757812; +492.5691833496094, 0.20482391119003296; +492.669189453125, 0.19884854555130005; +492.7691955566406, 0.19603967666625977; +492.8691711425781, 0.1970157027244568; +492.96917724609375, 0.19963830709457397; +493.06915283203125, 0.20232796669006348; +493.1691589355469, 0.20642578601837158; +493.2691650390625, 0.21135061979293823; +493.369140625, 0.21535158157348633; +493.4691467285156, 0.21576881408691406; +493.5691223144531, 0.21186470985412598; +493.66912841796875, 0.2075880765914917; +493.7691345214844, 0.20545721054077148; +493.8691101074219, 0.20578503608703613; +493.9691162109375, 0.20668655633926392; +494.069091796875, 0.20826607942581177; +494.1690979003906, 0.2114325761795044; +494.26910400390625, 0.2132803201675415; +494.36907958984375, 0.2110004425048828; +494.4690856933594, 0.20366907119750977; +494.5690612792969, 0.1936778426170349; +494.6690673828125, 0.18586218357086182; +494.7690734863281, 0.18298625946044922; +494.8690490722656, 0.18376857042312622; +494.96905517578125, 0.18534809350967407; +495.06903076171875, 0.1876354217529297; +495.1690368652344, 0.1909807324409485; +495.26904296875, 0.19344687461853027; +495.3690185546875, 0.19340962171554565; +495.4690246582031, 0.19299983978271484; +495.5690002441406, 0.19314885139465332; +495.66900634765625, 0.1922696828842163; +495.7690124511719, 0.19091367721557617; +495.8689880371094, 0.1918599009513855; +495.968994140625, 0.1964569091796875; +496.0689697265625, 0.20257383584976196; +496.1689758300781, 0.20920485258102417; +496.2689514160156, 0.21570175886154175; +496.36895751953125, 0.220470130443573; +496.4689636230469, 0.22093206644058228; +496.5689392089844, 0.21588802337646484; +496.6689453125, 0.20832568407058716; +496.7689208984375, 0.2016797661781311; +496.8689270019531, 0.19725412130355835; +496.96893310546875, 0.19463896751403809; +497.06890869140625, 0.19419938325881958; +497.1689147949219, 0.19644945859909058; +497.2688903808594, 0.19885599613189697; +497.368896484375, 0.19838660955429077; +497.4689025878906, 0.1958310604095459; +497.5688781738281, 0.19340217113494873; +497.66888427734375, 0.19146502017974854; +497.76885986328125, 0.18975138664245605; +497.8688659667969, 0.1880750060081482; +497.9688720703125, 0.18791109323501587; +498.06884765625, 0.18873810768127441; +498.1688537597656, 0.18889456987380981; +498.2688293457031, 0.1876726746559143; +498.36883544921875, 0.18549710512161255; +498.4688415527344, 0.18469244241714478; +498.5688171386719, 0.18552690744400024; +498.6688232421875, 0.18628686666488647; +498.768798828125, 0.18578022718429565; +498.8688049316406, 0.1844838261604309; +498.96881103515625, 0.18490105867385864; +499.06878662109375, 0.18662214279174805; +499.1687927246094, 0.18800050020217896; +499.2687683105469, 0.18919259309768677; +499.3687744140625, 0.19241124391555786; +499.4687805175781, 0.1977980136871338; +499.5687561035156, 0.20125508308410645; +499.66876220703125, 0.20093470811843872; +499.76873779296875, 0.19885599613189697; +499.8687438964844, 0.19831210374832153; +499.9687194824219, 0.19993633031845093; +500.0687255859375, 0.20141899585723877; +500.1687316894531, 0.2017095685005188; +500.2687072753906, 0.20125508308410645; +500.36871337890625, 0.2015233039855957; +500.46868896484375, 0.20359456539154053; +500.5686950683594, 0.2054348587989807; +500.668701171875, 0.2065598964691162; +500.7686767578125, 0.20728260278701782; +500.8686828613281, 0.20857155323028564; +500.9686584472656, 0.21069496870040894; +501.06866455078125, 0.21160393953323364; +501.1686706542969, 0.21135807037353516; +501.2686462402344, 0.2113059163093567; +501.36865234375, 0.21436065435409546; +501.4686279296875, 0.22046267986297607; +501.5686340332031, 0.2260357141494751; +501.66864013671875, 0.22833794355392456; +501.76861572265625, 0.2270042896270752; +501.8686218261719, 0.2231001853942871; +501.9685974121094, 0.21726638078689575; +502.068603515625, 0.21094828844070435; +502.1686096191406, 0.20534545183181763; +502.2685852050781, 0.20094960927963257; +502.36859130859375, 0.19901245832443237; +502.46856689453125, 0.19950419664382935; +502.5685729980469, 0.20062923431396484; +502.6685791015625, 0.20115822553634644; +502.7685546875, 0.2022087574005127; +502.8685607910156, 0.20557641983032227; +502.9685363769531, 0.20854920148849487; +503.06854248046875, 0.21048635244369507; +503.1685485839844, 0.21198391914367676; +503.2685241699219, 0.212743878364563; +503.3685302734375, 0.21164864301681519; +503.468505859375, 0.2077743411064148; +503.5685119628906, 0.20437687635421753; +503.66851806640625, 0.20247697830200195; +503.76849365234375, 0.2014562487602234; +503.8684997558594, 0.19991397857666016; +503.9684753417969, 0.19824504852294922; +504.0684814453125, 0.1987665891647339; +504.16845703125, 0.2018064260482788; +504.2684631347656, 0.2047717571258545; +504.36846923828125, 0.20592659711837769; +504.46844482421875, 0.20579993724822998; +504.5684509277344, 0.20504742860794067; +504.6684265136719, 0.2020522952079773; +504.7684326171875, 0.19549578428268433; +504.8684387207031, 0.18791109323501587; +504.9684143066406, 0.18298625946044922; +505.06842041015625, 0.18322467803955078; +505.16839599609375, 0.1869499683380127; +505.2684020996094, 0.19153207540512085; +505.368408203125, 0.19499659538269043; +505.4683837890625, 0.19854307174682617; +505.5683898925781, 0.20370632410049438; +505.6683654785156, 0.21050870418548584; +505.76837158203125, 0.21697580814361572; +505.8683776855469, 0.2211257815361023; +505.9683532714844, 0.2217218279838562; +506.068359375, 0.2183467149734497; +506.1683349609375, 0.21148473024368286; +506.2683410644531, 0.20294636487960815; +506.36834716796875, 0.19580870866775513; +506.46832275390625, 0.19212067127227783; +506.5683288574219, 0.19310414791107178; +506.6683044433594, 0.1972094178199768; +506.768310546875, 0.20393729209899902; +506.8683166503906, 0.21132081747055054; +506.9682922363281, 0.21620094776153564; +507.06829833984375, 0.21868199110031128; +507.16827392578125, 0.22108107805252075; +507.2682800292969, 0.22470951080322266; +507.3682861328125, 0.22492557764053345; +507.46826171875, 0.2194419503211975; +507.5682678222656, 0.2129971981048584; +507.6682434082031, 0.20890682935714722; +507.76824951171875, 0.20566582679748535; +507.8682556152344, 0.2003312110900879; +507.9682312011719, 0.1955777406692505; +508.0682373046875, 0.19451230764389038; +508.168212890625, 0.19682198762893677; +508.2682189941406, 0.19959360361099243; +508.3681945800781, 0.20144879817962646; +508.46820068359375, 0.20407140254974365; +508.5682067871094, 0.20753592252731323; +508.6681823730469, 0.20958483219146729; +508.7681884765625, 0.2059638500213623; +508.8681640625, 0.19875168800354004; +508.9681701660156, 0.1928284764289856; +509.06817626953125, 0.19040703773498535; +509.16815185546875, 0.19010156393051147; +509.2681579589844, 0.19057095050811768; +509.3681335449219, 0.19455701112747192; +509.4681396484375, 0.20082294940948486; +509.5681457519531, 0.2047121524810791; +509.6681213378906, 0.2032443881034851; +509.76812744140625, 0.19825249910354614; +509.86810302734375, 0.19449740648269653; +509.9681091308594, 0.19408762454986572; +510.068115234375, 0.19603222608566284; +510.1680908203125, 0.19985437393188477; +510.2680969238281, 0.20432472229003906; +510.3680725097656, 0.20796805620193481; +510.46807861328125, 0.2086535096168518; +510.5680847167969, 0.20582973957061768; +510.6680603027344, 0.20056217908859253; +510.76806640625, 0.19559264183044434; +510.8680419921875, 0.19372254610061646; +510.9680480957031, 0.19411742687225342; +511.06805419921875, 0.19317865371704102; +511.16802978515625, 0.18863379955291748; +511.2680358886719, 0.186040997505188; +511.3680114746094, 0.18668174743652344; +511.468017578125, 0.18658488988876343; +511.5680236816406, 0.1848265528678894; +511.6679992675781, 0.1856982707977295; +511.76800537109375, 0.1935139298439026; +511.86798095703125, 0.20181387662887573; +511.9679870605469, 0.2059340476989746; +512.0679931640625, 0.20714104175567627; +512.16796875, 0.20793825387954712; +512.2679443359375, 0.20848959684371948; +512.3679809570312, 0.20663440227508545; +512.4679565429688, 0.20334869623184204; +512.5679321289062, 0.20057708024978638; +512.66796875, 0.19983947277069092; +512.7679443359375, 0.201299786567688; +512.867919921875, 0.203058123588562; +512.9678955078125, 0.20268559455871582; +513.0679321289062, 0.20040571689605713; +513.1679077148438, 0.19943714141845703; +513.2678833007812, 0.20065158605575562; +513.367919921875, 0.20062178373336792; +513.4678955078125, 0.1979246735572815; +513.56787109375, 0.19577890634536743; +513.6679077148438, 0.19678473472595215; +513.7678833007812, 0.19760429859161377; +513.8678588867188, 0.19659847021102905; +513.9678344726562, 0.19571930170059204; +514.06787109375, 0.19597262144088745; +514.1678466796875, 0.19484758377075195; +514.267822265625, 0.19054114818572998; +514.3678588867188, 0.18562376499176025; +514.4678344726562, 0.1805722713470459; +514.5678100585938, 0.174596905708313; +514.6677856445312, 0.1692250370979309; +514.767822265625, 0.16663223505020142; +514.8677978515625, 0.16807019710540771; +514.9677734375, 0.17263740301132202; +515.0678100585938, 0.17940253019332886; +515.1677856445312, 0.18631666898727417; +515.2677612304688, 0.19104033708572388; +515.3677978515625, 0.19187480211257935; +515.4677734375, 0.189170241355896; +515.5677490234375, 0.18303841352462769; +515.667724609375, 0.17665326595306396; +515.7677612304688, 0.173322856426239; +515.8677368164062, 0.17365068197250366; +515.9677124023438, 0.17648935317993164; +516.0677490234375, 0.17986446619033813; +516.167724609375, 0.1830458641052246; +516.2677001953125, 0.1839175820350647; +516.3677368164062, 0.18365681171417236; +516.4677124023438, 0.18332898616790771; +516.5676879882812, 0.18324702978134155; +516.6676635742188, 0.18332898616790771; +516.7677001953125, 0.1844465732574463; +516.86767578125, 0.18724054098129272; +516.9676513671875, 0.18959492444992065; +517.0676879882812, 0.19069761037826538; +517.1676635742188, 0.19061565399169922; +517.2676391601562, 0.1887008547782898; +517.36767578125, 0.1845434308052063; +517.4676513671875, 0.17928332090377808; +517.567626953125, 0.17412006855010986; +517.6676025390625, 0.16955286264419556; +517.7676391601562, 0.16641616821289062; +517.8676147460938, 0.16663223505020142; +517.9675903320312, 0.1696571707725525; +518.067626953125, 0.17330050468444824; +518.1676025390625, 0.17668306827545166; +518.267578125, 0.17909705638885498; +518.3675537109375, 0.18165260553359985; +518.4675903320312, 0.18449127674102783; +518.5675659179688, 0.1882687211036682; +518.6675415039062, 0.19247084856033325; +518.767578125, 0.19484013319015503; +518.8675537109375, 0.19629299640655518; +518.967529296875, 0.1969560980796814; +519.0675659179688, 0.19576400518417358; +519.1675415039062, 0.19153952598571777; +519.2675170898438, 0.1863241195678711; +519.3674926757812, 0.18391013145446777; +519.467529296875, 0.18344074487686157; +519.5675048828125, 0.18180906772613525; +519.66748046875, 0.17786771059036255; +519.7675170898438, 0.17393380403518677; +519.8674926757812, 0.17074495553970337; +519.9674682617188, 0.1680925488471985; +520.0675048828125, 0.16558170318603516; +520.16748046875, 0.16392767429351807; +520.2674560546875, 0.16383826732635498; +520.367431640625, 0.16488879919052124; +520.4674682617188, 0.16725808382034302; +520.5674438476562, 0.17099082469940186; +520.6674194335938, 0.17639994621276855; +520.7674560546875, 0.18274039030075073; +520.867431640625, 0.18908828496932983; +520.9674072265625, 0.19437819719314575; +521.0674438476562, 0.19706040620803833; +521.1674194335938, 0.1972392201423645; +521.2673950195312, 0.19647926092147827; +521.3673706054688, 0.19581615924835205; +521.4674072265625, 0.19500404596328735; +521.5673828125, 0.19302964210510254; +521.6673583984375, 0.19205361604690552; +521.7673950195312, 0.19262731075286865; +521.8673706054688, 0.1927018165588379; +521.9673461914062, 0.1911744475364685; +522.0673828125, 0.1889541745185852; +522.1673583984375, 0.18821656703948975; +522.267333984375, 0.18683075904846191; +522.3673095703125, 0.18314272165298462; +522.4673461914062, 0.17923861742019653; +522.5673217773438, 0.17812848091125488; +522.6672973632812, 0.1801624894142151; +522.767333984375, 0.1823529601097107; +522.8673095703125, 0.1840144395828247; +522.96728515625, 0.1855716109275818; +523.0672607421875, 0.18711388111114502; +523.1672973632812, 0.18809735774993896; +523.2672729492188, 0.1872628927230835; +523.3672485351562, 0.18606334924697876; +523.46728515625, 0.18599629402160645; +523.5672607421875, 0.18833577632904053; +523.667236328125, 0.19073486328125; +523.7672729492188, 0.19025802612304688; +523.8672485351562, 0.18925219774246216; +523.9672241210938, 0.18893182277679443; +524.0671997070312, 0.18899887800216675; +524.167236328125, 0.1872032880783081; +524.2672119140625, 0.18371641635894775; +524.3671875, 0.18173456192016602; +524.4672241210938, 0.1823827624320984; +524.5671997070312, 0.18496066331863403; +524.6671752929688, 0.1866370439529419; +524.7672119140625, 0.18697232007980347; +524.8671875, 0.18909573554992676; +524.9671630859375, 0.19394606351852417; +525.067138671875, 0.1983940601348877; +525.1671752929688, 0.20091235637664795; +525.2671508789062, 0.2017766237258911; +525.3671264648438, 0.20077824592590332; +525.4671630859375, 0.19706785678863525; +525.567138671875, 0.19140541553497314; +525.6671142578125, 0.1857355237007141; +525.7671508789062, 0.17949193716049194; +525.8671264648438, 0.1730993390083313; +525.9671020507812, 0.16913563013076782; +526.0670776367188, 0.16892701387405396; +526.1671142578125, 0.17092376947402954; +526.26708984375, 0.17337501049041748; +526.3670654296875, 0.17658621072769165; +526.4671020507812, 0.18243491649627686; +526.5670776367188, 0.18934905529022217; +526.6670532226562, 0.1932084560394287; +526.7670288085938, 0.1916065812110901; +526.8670654296875, 0.18765777349472046; +526.967041015625, 0.18598884344100952; +527.0670166015625, 0.18633157014846802; +527.1670532226562, 0.18658488988876343; +527.2670288085938, 0.1865476369857788; +527.3670043945312, 0.18656253814697266; +527.467041015625, 0.18490105867385864; +527.5670166015625, 0.18037110567092896; +527.6669921875, 0.17333775758743286; +527.7669677734375, 0.1651868224143982; +527.8670043945312, 0.15763193368911743; +527.9669799804688, 0.15332549810409546; +528.0669555664062, 0.15310198068618774; +528.1669921875, 0.1562163233757019; +528.2669677734375, 0.16233325004577637; +528.366943359375, 0.17039477825164795; +528.4669799804688, 0.1778528094291687; +528.5669555664062, 0.18227100372314453; +528.6669311523438, 0.18515437841415405; +528.7669067382812, 0.18728524446487427; +528.866943359375, 0.18877536058425903; +528.9669189453125, 0.19031763076782227; +529.06689453125, 0.19283592700958252; +529.1669311523438, 0.19577890634536743; +529.2669067382812, 0.1956447958946228; +529.3668823242188, 0.19179284572601318; +529.4669189453125, 0.1862943172454834; +529.56689453125, 0.1827329397201538; +529.6668701171875, 0.18306076526641846; +529.766845703125, 0.18709152936935425; +529.8668823242188, 0.193767249584198; +529.9668579101562, 0.20174682140350342; +530.0668334960938, 0.20885467529296875; +530.1668701171875, 0.21155178546905518; +530.266845703125, 0.2087429165840149; +530.3668212890625, 0.20360946655273438; +530.4668579101562, 0.19946694374084473; +530.5668334960938, 0.19562989473342896; +530.6668090820312, 0.19045919179916382; +530.7667846679688, 0.1859515905380249; +530.8668212890625, 0.18385052680969238; +530.966796875, 0.18326938152313232; +531.0667724609375, 0.18250197172164917; +531.1668090820312, 0.18282979726791382; +531.2667846679688, 0.18681585788726807; +531.3667602539062, 0.1919269561767578; +531.4667358398438, 0.19576400518417358; +531.5667724609375, 0.19659847021102905; +531.666748046875, 0.19534677267074585; +531.7667236328125, 0.1922398805618286; +531.8667602539062, 0.18624216318130493; +531.9667358398438, 0.17983466386795044; +532.0667114257812, 0.1742914319038391; +532.166748046875, 0.1715049147605896; +532.2667236328125, 0.17107278108596802; +532.36669921875, 0.1726299524307251; +532.4666748046875, 0.1751631498336792; +532.5667114257812, 0.17870962619781494; +532.6666870117188, 0.18412619829177856; +532.7666625976562, 0.1896992325782776; +532.86669921875, 0.19441545009613037; +532.9666748046875, 0.19837915897369385; +533.066650390625, 0.2023652195930481; +533.1666870117188, 0.204332172870636; +533.2666625976562, 0.20260363817214966; +533.3666381835938, 0.19965320825576782; +533.4666137695312, 0.19572675228118896; +533.566650390625, 0.19003450870513916; +533.6666259765625, 0.1837611198425293; +533.7666015625, 0.18109381198883057; +533.8666381835938, 0.18339604139328003; +533.9666137695312, 0.186040997505188; +534.0665893554688, 0.1867637038230896; +534.1666259765625, 0.18905103206634521; +534.2666015625, 0.1938268542289734; +534.3665771484375, 0.19672513008117676; +534.466552734375, 0.1935809850692749; +534.5665893554688, 0.1875460147857666; +534.6665649414062, 0.18513202667236328; +534.7665405273438, 0.18458068370819092; +534.8665771484375, 0.18431991338729858; +534.966552734375, 0.18377602100372314; +535.0665283203125, 0.18486380577087402; +535.16650390625, 0.18662214279174805; +535.2665405273438, 0.18656253814697266; +535.3665161132812, 0.18477439880371094; +535.4664916992188, 0.18037855625152588; +535.5665283203125, 0.17568469047546387; +535.66650390625, 0.17376989126205444; +535.7664794921875, 0.17564743757247925; +535.8665161132812, 0.17898529767990112; +535.9664916992188, 0.18149614334106445; +536.0664672851562, 0.18337368965148926; +536.1664428710938, 0.18469244241714478; +536.2664794921875, 0.18375366926193237; +536.366455078125, 0.18060952425003052; +536.4664306640625, 0.17621368169784546; +536.5664672851562, 0.171661376953125; +536.6664428710938, 0.1663118600845337; +536.7664184570312, 0.16104429960250854; +536.866455078125, 0.15860795974731445; +536.9664306640625, 0.16012787818908691; +537.06640625, 0.16357749700546265; +537.1663818359375, 0.16610324382781982; +537.2664184570312, 0.16858428716659546; +537.3663940429688, 0.17095357179641724; +537.4663696289062, 0.17101317644119263; +537.56640625, 0.16880780458450317; +537.6663818359375, 0.16699731349945068; +537.766357421875, 0.16811490058898926; +537.8663940429688, 0.16990303993225098; +537.9663696289062, 0.17070025205612183; +538.0663452148438, 0.17121434211730957; +538.1663208007812, 0.1696944236755371; +538.266357421875, 0.16580522060394287; +538.3663330078125, 0.15999376773834229; +538.46630859375, 0.15638023614883423; +538.5663452148438, 0.15648454427719116; +538.6663208007812, 0.15944987535476685; +538.7662963867188, 0.1654103398323059; +538.8662719726562, 0.17242878675460815; +538.96630859375, 0.17896294593811035; +539.0662841796875, 0.18279999494552612; +539.166259765625, 0.18374621868133545; +539.2662963867188, 0.18280744552612305; +539.3662719726562, 0.17945468425750732; +539.4662475585938, 0.1732856035232544; +539.5662841796875, 0.1673176884651184; +539.666259765625, 0.16514956951141357; +539.7662353515625, 0.16683340072631836; +539.8662109375, 0.16874074935913086; +539.9662475585938, 0.1693814992904663; +540.0662231445312, 0.17139315605163574; +540.1661987304688, 0.17310678958892822; +540.2662353515625, 0.17202645540237427; +540.3662109375, 0.16933679580688477; +540.4661865234375, 0.16824156045913696; +540.5662231445312, 0.17084181308746338; +540.6661987304688, 0.173814594745636; +540.7661743164062, 0.1769810914993286; +540.8661499023438, 0.1806393265724182; +540.9661865234375, 0.18425285816192627; +541.066162109375, 0.18647313117980957; +541.1661376953125, 0.1856982707977295; +541.2661743164062, 0.1842603087425232; +541.3661499023438, 0.18437951803207397; +541.4661254882812, 0.1853257417678833; +541.566162109375, 0.18420815467834473; +541.6661376953125, 0.18092244863510132; +541.76611328125, 0.17677992582321167; +541.8660888671875, 0.17230957746505737; +541.9661254882812, 0.165596604347229; +542.0661010742188, 0.15898793935775757; +542.1660766601562, 0.15539675951004028; +542.26611328125, 0.15470385551452637; +542.3660888671875, 0.1575946807861328; +542.466064453125, 0.16442686319351196; +542.5661010742188, 0.17580389976501465; +542.6660766601562, 0.1879855990409851; +542.7660522460938, 0.19709765911102295; +542.8660278320312, 0.20179152488708496; +542.966064453125, 0.20261108875274658; +543.0660400390625, 0.1998990774154663; +543.166015625, 0.19352883100509644; +543.2660522460938, 0.1826062798500061; +543.3660278320312, 0.17036497592926025; +543.4660034179688, 0.16064941883087158; +543.5659790039062, 0.1547783613204956; +543.666015625, 0.15269964933395386; +543.7659912109375, 0.15390664339065552; +543.865966796875, 0.15739351511001587; +543.9660034179688, 0.1593753695487976; +544.0659790039062, 0.15922635793685913; +544.1659545898438, 0.15866011381149292; +544.2659912109375, 0.15885382890701294; +544.365966796875, 0.15795975923538208; +544.4659423828125, 0.15700608491897583; +544.56591796875, 0.15985965728759766; +544.6659545898438, 0.16599148511886597; +544.7659301757812, 0.17176568508148193; +544.8659057617188, 0.17407536506652832; +544.9659423828125, 0.1744106411933899; +545.06591796875, 0.17455965280532837; +545.1658935546875, 0.17370283603668213; +545.2659301757812, 0.17201155424118042; +545.3659057617188, 0.16941875219345093; +545.4658813476562, 0.1677870750427246; +545.5658569335938, 0.16692280769348145; +545.6658935546875, 0.16723573207855225; +545.765869140625, 0.1687556505203247; +545.8658447265625, 0.1716315746307373; +545.9658813476562, 0.17563998699188232; +546.0658569335938, 0.17901510000228882; +546.1658325195312, 0.1822933554649353; +546.265869140625, 0.18464773893356323; +546.3658447265625, 0.1864507794380188; +546.4658203125, 0.18721073865890503; +546.5657958984375, 0.1871734857559204; +546.6658325195312, 0.18595904111862183; +546.7658081054688, 0.18414855003356934; +546.8657836914062, 0.1842603087425232; +546.9658203125, 0.18633902072906494; +547.0657958984375, 0.18802285194396973; +547.165771484375, 0.1874789595603943; +547.2657470703125, 0.18668919801712036; +547.3657836914062, 0.18589943647384644; +547.4657592773438, 0.18515437841415405; +547.5657348632812, 0.18463283777236938; +547.665771484375, 0.18509477376937866; +547.7657470703125, 0.18693506717681885; +547.86572265625, 0.1901760697364807; +547.9657592773438, 0.19354373216629028; +548.0657348632812, 0.19421428442001343; +548.1657104492188, 0.19182264804840088; +548.2656860351562, 0.18913298845291138; +548.36572265625, 0.18762797117233276; +548.4656982421875, 0.18468499183654785; +548.565673828125, 0.18014013767242432; +548.6657104492188, 0.17625093460083008; +548.7656860351562, 0.17467141151428223; +548.8656616210938, 0.17520040273666382; +548.9656982421875, 0.17702579498291016; +549.065673828125, 0.18068403005599976; +549.1656494140625, 0.1860782504081726; +549.265625, 0.19131600856781006; +549.3656616210938, 0.19349902868270874; +549.4656372070312, 0.19086897373199463; +549.5656127929688, 0.18617510795593262; +549.6656494140625, 0.1828595995903015; +549.765625, 0.18180161714553833; +549.8656005859375, 0.18241256475448608; +549.9656372070312, 0.18503516912460327; +550.0656127929688, 0.18899142742156982; +550.1655883789062, 0.19150972366333008; +550.2655639648438, 0.190049409866333; +550.3656005859375, 0.18516182899475098; +550.465576171875, 0.17948448657989502; +550.5655517578125, 0.1746639609336853; +550.6655883789062, 0.17214566469192505; +550.7655639648438, 0.17224997282028198; +550.8655395507812, 0.17477571964263916; +550.9655151367188, 0.1796334981918335; +551.0655517578125, 0.18569082021713257; +551.16552734375, 0.1911073923110962; +551.2655029296875, 0.19402801990509033; +551.3655395507812, 0.19387900829315186; +551.4655151367188, 0.19174069166183472; +551.5654907226562, 0.18841028213500977; +551.66552734375, 0.18346309661865234; +551.7655029296875, 0.17711520195007324; +551.865478515625, 0.17155706882476807; +551.9654541015625, 0.16888976097106934; +552.0654907226562, 0.16941875219345093; +552.1654663085938, 0.17023086547851562; +552.2654418945312, 0.17143040895462036; +552.365478515625, 0.17399340867996216; +552.4654541015625, 0.1766011118888855; +552.5654296875, 0.17767399549484253; +552.6654663085938, 0.1780986785888672; +552.7654418945312, 0.18162280321121216; +552.8654174804688, 0.18647313117980957; +552.9653930664062, 0.18896162509918213; +553.0654296875, 0.18943846225738525; +553.1654052734375, 0.19046664237976074; +553.265380859375, 0.19124895334243774; +553.3654174804688, 0.18781423568725586; +553.4653930664062, 0.18177181482315063; +553.5653686523438, 0.17753243446350098; +553.6654052734375, 0.17690658569335938; +553.765380859375, 0.1796931028366089; +553.8653564453125, 0.18472224473953247; +553.96533203125, 0.1911371946334839; +554.0653686523438, 0.19602477550506592; +554.1653442382812, 0.19798427820205688; +554.2653198242188, 0.19754469394683838; +554.3653564453125, 0.1935213804244995; +554.46533203125, 0.18774718046188354; +554.5653076171875, 0.1835450530052185; +554.6653442382812, 0.18461793661117554; +554.7653198242188, 0.18910318613052368; +554.8652954101562, 0.1932978630065918; +554.9652709960938, 0.19612908363342285; +555.0653076171875, 0.19770115613937378; +555.165283203125, 0.19771605730056763; +555.2652587890625, 0.1948326826095581; +555.3652954101562, 0.19106268882751465; +555.4652709960938, 0.1889243721961975; +555.5652465820312, 0.1901090145111084; +555.6652221679688, 0.19236654043197632; +555.7652587890625, 0.19381940364837646; +555.865234375, 0.19422918558120728; +555.9652099609375, 0.19344687461853027; +556.0652465820312, 0.1915767788887024; +556.1652221679688, 0.18659234046936035; +556.2651977539062, 0.18039345741271973; +556.365234375, 0.17524510622024536; +556.4652099609375, 0.1735091209411621; +556.565185546875, 0.17637014389038086; +556.6651611328125, 0.1822635531425476; +556.7651977539062, 0.19012391567230225; +556.8651733398438, 0.19825249910354614; +556.9651489257812, 0.20518898963928223; +557.065185546875, 0.20928680896759033; +557.1651611328125, 0.20939111709594727; +557.26513671875, 0.20651519298553467; +557.3651733398438, 0.20208954811096191; +557.4651489257812, 0.19659101963043213; +557.5651245117188, 0.19146502017974854; +557.6651000976562, 0.18833577632904053; +557.76513671875, 0.18708407878875732; +557.8651123046875, 0.18750131130218506; +557.965087890625, 0.1902058720588684; +558.0651245117188, 0.19519776105880737; +558.1651000976562, 0.20053982734680176; +558.2650756835938, 0.2029314637184143; +558.3651123046875, 0.20271539688110352; +558.465087890625, 0.2008378505706787; +558.5650634765625, 0.19798427820205688; +558.6650390625, 0.19451230764389038; +558.7650756835938, 0.19132345914840698; +558.8650512695312, 0.1912936568260193; +558.9650268554688, 0.19400566816329956; +559.0650634765625, 0.19826740026474; +559.1650390625, 0.20087510347366333; +559.2650146484375, 0.2017691731452942; +559.364990234375, 0.20134449005126953; +559.4650268554688, 0.20024925470352173; +559.5650024414062, 0.1989230513572693; +559.6649780273438, 0.19659847021102905; +559.7650146484375, 0.19640475511550903; +559.864990234375, 0.19822269678115845; +559.9649658203125, 0.20101666450500488; +560.0650024414062, 0.20238012075424194; +560.1649780273438, 0.20310282707214355; +560.2649536132812, 0.20482391119003296; +560.3649291992188, 0.20634382963180542; +560.4649658203125, 0.20512938499450684; +560.56494140625, 0.20246952772140503; +560.6649169921875, 0.19997358322143555; +560.7649536132812, 0.19724667072296143; +560.8649291992188, 0.19485503435134888; +560.9649047851562, 0.19448250532150269; +561.06494140625, 0.1994594931602478; +561.1649169921875, 0.20679086446762085; +561.264892578125, 0.21261721849441528; +561.3648681640625, 0.21614879369735718; +561.4649047851562, 0.21755695343017578; +561.5648803710938, 0.21804124116897583; +561.6648559570312, 0.21702051162719727; +561.764892578125, 0.21560490131378174; +561.8648681640625, 0.21420419216156006; +561.96484375, 0.2129673957824707; +562.0648803710938, 0.21228939294815063; +562.1648559570312, 0.21082162857055664; +562.2648315429688, 0.20794570446014404; +562.3648071289062, 0.20582228899002075; +562.46484375, 0.2065896987915039; +562.5648193359375, 0.20929425954818726; +562.664794921875, 0.2103075385093689; +562.7648315429688, 0.20784884691238403; +562.8648071289062, 0.20423531532287598; +562.9647827148438, 0.20041316747665405; +563.0648193359375, 0.1977682113647461; +563.164794921875, 0.1972988247871399; +563.2647705078125, 0.20009279251098633; +563.36474609375, 0.20609796047210693; +563.4647827148438, 0.21297484636306763; +563.5647583007812, 0.2171844244003296; +563.6647338867188, 0.21710991859436035; +563.7647705078125, 0.21342933177947998; +563.86474609375, 0.2084299921989441; +563.9647216796875, 0.20370632410049438; +564.064697265625, 0.19925832748413086; +564.1647338867188, 0.19559264183044434; +564.2647094726562, 0.19158422946929932; +564.3646850585938, 0.18790364265441895; +564.4647216796875, 0.18467754125595093; +564.564697265625, 0.18250197172164917; +564.6646728515625, 0.18096715211868286; +564.7647094726562, 0.1805424690246582; +564.8646850585938, 0.18377602100372314; +564.9646606445312, 0.18952786922454834; +565.0646362304688, 0.19660592079162598; +565.1646728515625, 0.2023950219154358; +565.2646484375, 0.2065524458885193; +565.3646240234375, 0.20838528871536255; +565.4646606445312, 0.20751357078552246; +565.5646362304688, 0.20590424537658691; +565.6646118164062, 0.20332634449005127; +565.7646484375, 0.20027905702590942; +565.8646240234375, 0.1978650689125061; +565.964599609375, 0.19828975200653076; +566.0645751953125, 0.20228326320648193; +566.1646118164062, 0.20713359117507935; +566.2645874023438, 0.20997971296310425; +566.3645629882812, 0.20825862884521484; +566.464599609375, 0.20266324281692505; +566.5645751953125, 0.1964569091796875; +566.66455078125, 0.19125640392303467; +566.7645874023438, 0.18683820962905884; +566.8645629882812, 0.18534809350967407; +566.9645385742188, 0.1899227499961853; +567.0645141601562, 0.19828975200653076; +567.16455078125, 0.20477920770645142; +567.2645263671875, 0.2063959836959839; +567.364501953125, 0.20579248666763306; +567.4645385742188, 0.2046525478363037; +567.5645141601562, 0.20307302474975586; +567.6644897460938, 0.2032741904258728; +567.7644653320312, 0.20585209131240845; +567.864501953125, 0.20895153284072876; +567.9644775390625, 0.21019577980041504; +568.064453125, 0.20974129438400269; +568.1644897460938, 0.20983070135116577; +568.2644653320312, 0.20883232355117798; +568.3644409179688, 0.20526349544525146; +568.4644775390625, 0.20100176334381104; +568.564453125, 0.19866973161697388; +568.6644287109375, 0.1981183886528015; +568.764404296875, 0.19643455743789673; +568.8644409179688, 0.19307434558868408; +568.9644165039062, 0.19045919179916382; +569.0643920898438, 0.18978863954544067; +569.1644287109375, 0.18844753503799438; +569.264404296875, 0.1851692795753479; +569.3643798828125, 0.18126517534255981; +569.4644165039062, 0.17999857664108276; +569.5643920898438, 0.18124282360076904; +569.6643676757812, 0.1841336488723755; +569.7643432617188, 0.18927454948425293; +569.8643798828125, 0.19673258066177368; +569.96435546875, 0.2038329839706421; +570.0643310546875, 0.2070888876914978; +570.1643676757812, 0.20745396614074707; +570.2643432617188, 0.2073720097541809; +570.3643188476562, 0.21038949489593506; +570.46435546875, 0.21511316299438477; +570.5643310546875, 0.2199113368988037; +570.664306640625, 0.2247542142868042; +570.7642822265625, 0.22876262664794922; +570.8643188476562, 0.22909045219421387; +570.9642944335938, 0.22187083959579468; +571.0642700195312, 0.21038204431533813; +571.164306640625, 0.20050257444381714; +571.2642822265625, 0.19492954015731812; +571.3642578125, 0.19255280494689941; +571.4642333984375, 0.19347667694091797; +571.5642700195312, 0.19735097885131836; +571.6642456054688, 0.202082097530365; +571.7642211914062, 0.20249933004379272; +571.8642578125, 0.19762665033340454; +571.9642333984375, 0.19172579050064087; +572.064208984375, 0.18879026174545288; +572.1642456054688, 0.1891106367111206; +572.2642211914062, 0.18900632858276367; +572.3641967773438, 0.1909881830215454; +572.4641723632812, 0.19779056310653687; +572.564208984375, 0.20754337310791016; +572.6641845703125, 0.21392107009887695; +572.76416015625, 0.21503865718841553; +572.8641967773438, 0.21554529666900635; +572.9641723632812, 0.21783262491226196; +573.0641479492188, 0.21952390670776367; +573.1641845703125, 0.21754205226898193; +573.26416015625, 0.21436810493469238; +573.3641357421875, 0.2140253782272339; +573.464111328125, 0.2164691686630249; +573.5641479492188, 0.21681934595108032; +573.6641235351562, 0.21354109048843384; +573.7640991210938, 0.2102479338645935; +573.8641357421875, 0.20947307348251343; +573.964111328125, 0.20994246006011963; +574.0640869140625, 0.20913779735565186; +574.1641235351562, 0.2078413963317871; +574.2640991210938, 0.2085864543914795; +574.3640747070312, 0.21141767501831055; +574.4640502929688, 0.21186470985412598; +574.5640869140625, 0.20782649517059326; +574.6640625, 0.20315498113632202; +574.7640380859375, 0.2034604549407959; +574.8640747070312, 0.20601600408554077; +574.9640502929688, 0.20746886730194092; +575.0640258789062, 0.20920485258102417; +575.1640625, 0.21128356456756592; +575.2640380859375, 0.21113455295562744; +575.364013671875, 0.207655131816864; +575.4639892578125, 0.20457059144973755; +575.5640258789062, 0.2009570598602295; +575.6640014648438, 0.19475817680358887; +575.7639770507812, 0.1891404390335083; +575.864013671875, 0.18756091594696045; +575.9639892578125, 0.1883283257484436; +576.06396484375, 0.1877322793006897; +576.1639404296875, 0.18656998872756958; +576.2639770507812, 0.18646568059921265; +576.3639526367188, 0.18656998872756958; +576.4639282226562, 0.18528103828430176; +576.56396484375, 0.18417835235595703; +576.6639404296875, 0.18672645092010498; +576.763916015625, 0.1928284764289856; +576.8639526367188, 0.19993633031845093; +576.9639282226562, 0.20506978034973145; +577.0639038085938, 0.2085268497467041; +577.1638793945312, 0.21007657051086426; +577.263916015625, 0.20775198936462402; +577.3638916015625, 0.20174682140350342; +577.4638671875, 0.19557029008865356; +577.5639038085938, 0.19359588623046875; +577.6638793945312, 0.1970827579498291; +577.7638549804688, 0.20417571067810059; +577.8638916015625, 0.21072477102279663; +577.9638671875, 0.21454691886901855; +578.0638427734375, 0.21504610776901245; +578.163818359375, 0.21367520093917847; +578.2638549804688, 0.20976364612579346; +578.3638305664062, 0.20319223403930664; +578.4638061523438, 0.19626319408416748; +578.5638427734375, 0.1910179853439331; +578.663818359375, 0.18833577632904053; +578.7637939453125, 0.18747150897979736; +578.8638305664062, 0.1883283257484436; +578.9638061523438, 0.1892969012260437; +579.0637817382812, 0.1911446452140808; +579.1637573242188, 0.19463151693344116; +579.2637939453125, 0.2003982663154602; +579.36376953125, 0.2048686146736145; +579.4637451171875, 0.20594894886016846; +579.5637817382812, 0.2068057656288147; +579.6637573242188, 0.20898878574371338; +579.7637329101562, 0.21313130855560303; +579.8637084960938, 0.21504610776901245; +579.9637451171875, 0.2140253782272339; +580.063720703125, 0.21170824766159058; +580.1636962890625, 0.20894408226013184; +580.2637329101562, 0.20590424537658691; +580.3637084960938, 0.20025670528411865; +580.4636840820312, 0.19341707229614258; +580.563720703125, 0.1875460147857666; +580.6636962890625, 0.18319487571716309; +580.763671875, 0.17934292554855347; +580.8636474609375, 0.17582625150680542; +580.9636840820312, 0.1756921410560608; +581.0636596679688, 0.1804754137992859; +581.1636352539062, 0.1877620816230774; +581.263671875, 0.1927986741065979; +581.3636474609375, 0.19438564777374268; +581.463623046875, 0.1936778426170349; +581.5636596679688, 0.19200891256332397; +581.6636352539062, 0.19021332263946533; +581.7636108398438, 0.18974393606185913; +581.8635864257812, 0.19112229347229004; +581.963623046875, 0.19243359565734863; +582.0635986328125, 0.19241124391555786; +582.16357421875, 0.19218027591705322; +582.2636108398438, 0.19133836030960083; +582.3635864257812, 0.18899142742156982; +582.4635620117188, 0.1860782504081726; +582.5635986328125, 0.183984637260437; +582.66357421875, 0.182323157787323; +582.7635498046875, 0.17852336168289185; +582.863525390625, 0.1751631498336792; +582.9635620117188, 0.17437338829040527; +583.0635375976562, 0.17577409744262695; +583.1635131835938, 0.1788884401321411; +583.2635498046875, 0.18341094255447388; +583.363525390625, 0.189267098903656; +583.4635009765625, 0.192299485206604; +583.5634765625, 0.19118189811706543; +583.6635131835938, 0.18814951181411743; +583.7634887695312, 0.1841336488723755; +583.8634643554688, 0.1796633005142212; +583.9635009765625, 0.17454475164413452; +584.0634765625, 0.1715347170829773; +584.1634521484375, 0.17020851373672485; +584.2634887695312, 0.17020106315612793; +584.3634643554688, 0.17165392637252808; +584.4634399414062, 0.1752227544784546; +584.5634155273438, 0.18002837896347046; +584.6634521484375, 0.18277019262313843; +584.763427734375, 0.18499046564102173; +584.8634033203125, 0.18721818923950195; +584.9634399414062, 0.18916279077529907; +585.0634155273438, 0.19018352031707764; +585.1633911132812, 0.19068270921707153; +585.263427734375, 0.19308924674987793; +585.3634033203125, 0.19598007202148438; +585.46337890625, 0.1974254846572876; +585.5633544921875, 0.19762665033340454; +585.6633911132812, 0.19684433937072754; +585.7633666992188, 0.19615888595581055; +585.8633422851562, 0.19501149654388428; +585.96337890625, 0.1933649182319641; +586.0633544921875, 0.1931115984916687; +586.163330078125, 0.19324570894241333; +586.2633666992188, 0.19275397062301636; +586.3633422851562, 0.19122660160064697; +586.4633178710938, 0.19051134586334229; +586.5632934570312, 0.19230693578720093; +586.663330078125, 0.19387900829315186; +586.7633056640625, 0.19508600234985352; +586.86328125, 0.1975521445274353; +586.9633178710938, 0.2027079463005066; +587.0632934570312, 0.20748376846313477; +587.1632690429688, 0.2084001898765564; +587.2633056640625, 0.20729005336761475; +587.36328125, 0.2076178789138794; +587.4632568359375, 0.21003186702728271; +587.563232421875, 0.21234899759292603; +587.6632690429688, 0.21298974752426147; +587.7632446289062, 0.21263957023620605; +587.8632202148438, 0.21229684352874756; +587.9632568359375, 0.21358579397201538; +588.063232421875, 0.21570920944213867; +588.1632080078125, 0.21684914827346802; +588.26318359375, 0.218316912651062; +588.3632202148438, 0.22164732217788696; +588.4631958007812, 0.22654980421066284; +588.5631713867188, 0.22826343774795532; +588.6632080078125, 0.22730976343154907; +588.76318359375, 0.22696703672409058; +588.8631591796875, 0.22829324007034302; +588.9631958007812, 0.23099780082702637; +589.0631713867188, 0.23370981216430664; +589.1631469726562, 0.2377629280090332; +589.2631225585938, 0.2413541078567505; +589.3631591796875, 0.24330615997314453; +589.463134765625, 0.244922935962677; +589.5631103515625, 0.2479851245880127; +589.6631469726562, 0.253334641456604; +589.7631225585938, 0.2596750855445862; +589.8630981445312, 0.2666488289833069; +589.963134765625, 0.2742856740951538; +590.0631103515625, 0.28067827224731445; +590.1630859375, 0.2844706177711487; +590.2630615234375, 0.28664618730545044; +590.3630981445312, 0.2891421318054199; +590.4630737304688, 0.29111653566360474; +590.5630493164062, 0.2919211983680725; +590.6630859375, 0.29440224170684814; +590.7630615234375, 0.2999454736709595; +590.863037109375, 0.30650943517684937; +590.9630737304688, 0.3106445074081421; +591.0630493164062, 0.31447410583496094; +591.1630249023438, 0.3204718232154846; +591.2630004882812, 0.3266260027885437; +591.363037109375, 0.33082813024520874; +591.4630126953125, 0.33310800790786743; +591.56298828125, 0.33642351627349854; +591.6630249023438, 0.3415048122406006; +591.7630004882812, 0.3472641110420227; +591.8629760742188, 0.3526732325553894; +591.9629516601562, 0.35797059535980225; +592.06298828125, 0.36401301622390747; +592.1629638671875, 0.3704652190208435; +592.262939453125, 0.3744885325431824; +592.3629760742188, 0.3748759627342224; +592.4629516601562, 0.37582963705062866; +592.5629272460938, 0.38133561611175537; +592.6629638671875, 0.3906264901161194; +592.762939453125, 0.40105730295181274; +592.8629150390625, 0.4141703248023987; +592.962890625, 0.4323497414588928; +593.0629272460938, 0.4513561725616455; +593.1629028320312, 0.46681612730026245; +593.2628784179688, 0.4787072539329529; +593.3629150390625, 0.4892125725746155; +593.462890625, 0.496692955493927; +593.5628662109375, 0.4987642168998718; +593.6629028320312, 0.4977211356163025; +593.7628784179688, 0.4955753684043884; +593.8628540039062, 0.49549341201782227; +593.9628295898438, 0.4991590976715088; +594.0628662109375, 0.5091279745101929; +594.162841796875, 0.5255192518234253; +594.2628173828125, 0.5443990230560303; +594.3628540039062, 0.5628690123558044; +594.4628295898438, 0.577978789806366; +594.5628051757812, 0.5906745791435242; +594.662841796875, 0.6023645401000977; +594.7628173828125, 0.6130039691925049; +594.86279296875, 0.622771680355072; +594.9627685546875, 0.6311163306236267; +595.0628051757812, 0.6393492221832275; +595.1627807617188, 0.6489753723144531; +595.2627563476562, 0.6599277257919312; +595.36279296875, 0.6729960441589355; +595.4627685546875, 0.6887614727020264; +595.562744140625, 0.7079765200614929; +595.6627807617188, 0.7283389568328857; +595.7627563476562, 0.7454007863998413; +595.8627319335938, 0.7585734128952026; +595.9627075195312, 0.7704496383666992; +596.062744140625, 0.7842481136322021; +596.1627197265625, 0.801675021648407; +596.2626953125, 0.8222758769989014; +596.3627319335938, 0.8438155055046082; +596.4627075195312, 0.8650347590446472; +596.5626831054688, 0.8844584226608276; +596.6626586914062, 0.9025931358337402; +596.7626953125, 0.9199976921081543; +596.8626708984375, 0.9386986494064331; +596.962646484375, 0.9617209434509277; +597.0626831054688, 0.9887814521789551; +597.1626586914062, 1.0194108486175537; +597.2626342773438, 1.0527446269989014; +597.3626708984375, 1.0864436626434326; +597.462646484375, 1.1193901300430298; +597.5626220703125, 1.1504292488098145; +597.66259765625, 1.1801645755767822; +597.7626342773438, 1.2088567018508911; +597.8626098632812, 1.2376084327697754; +597.9625854492188, 1.2704282999038696; +598.0626220703125, 1.3085081577301025; +598.16259765625, 1.3520047664642334; +598.2625732421875, 1.3995617628097534; +598.3626098632812, 1.4505833387374878; +598.4625854492188, 1.5049129724502563; +598.5625610351562, 1.5599801540374756; +598.6625366210938, 1.6147568225860596; +598.7625732421875, 1.6685128211975098; +598.862548828125, 1.7228126525878906; +598.9625244140625, 1.7784833908081055; +599.0625610351562, 1.8354580402374268; +599.1625366210938, 1.8951668739318848; +599.2625122070312, 1.9595921039581299; +599.362548828125, 2.0316169261932373; +599.4625244140625, 2.1090359687805176; +599.5625, 2.188608169555664; +599.6624755859375, 2.267770528793335; +599.7625122070312, 2.3398995399475098; +599.8624877929688, 2.373292922973633; +##END= + +$$ === CHEMSPECTRA INTEGRALS AND MULTIPLETS === +##PAGE=450.0 +##$OBSERVEDINTEGRALS= (X Y Z) +##$OBSERVEDMULTIPLETS= +##$OBSERVEDMULTIPLETSPEAKS= +##END= + +$$ === CHEMSPECTRA PEAK TABLE EDIT === +##TITLE=908f81fc-5890-4b40-b630-40c8c39f2c97 +##JCAMP-DX=5.00 +##DATA TYPE=LC/MSPEAKTABLE +##DATA CLASS=PEAKTABLE +##$CSCATEGORY=EDIT_PEAK +##$CSTHRESHOLD=0.05 +##MAXX=599.8624877929688 +##MAXY=5.038879871368408 +##MINX=0.0 +##MINY=-3.3386497497558594 +##PAGE=450.0 +##NPOINTS=0 +##PEAKTABLE= (XY..XY) +##END= + +$$ === CHEMSPECTRA PEAK TABLE AUTO === +##TITLE=908f81fc-5890-4b40-b630-40c8c39f2c97 +##JCAMP-DX=5.00 +##DATA TYPE=LC/MSPEAKTABLE +##DATA CLASS=PEAKTABLE +##$CSCATEGORY=AUTO_PEAK +##$CSTHRESHOLD=0.05 +##MAXX=599.8624877929688 +##MAXY=5.038879871368408 +##MINX=0.0 +##MINY=-3.3386497497558594 +##PAGE=450.0 +##NPOINTS=100 +##PEAKTABLE= (XY..XY) +55.29654312133789, 5.038879871368408 +84.99468231201172, 4.786320209503174 +54.29660415649414, 4.661060810089111 +59.29629135131836, 3.389559745788574 +71.09555053710938, 2.929694890975952 +52.79669952392578, 2.4313106536865234 +68.99568176269531, 2.1356046199798584 +61.49615478515625, 1.870192527770996 +438.6725769042969, 0.5452260375022888 +213.68663024902344, 0.5366802215576172 +211.78675842285156, 0.521630048751831 +209.08692932128906, 0.5215480923652649 +220.58621215820312, 0.5126222968101501 +234.1853485107422, 0.5121231079101562 +205.08717346191406, 0.5097314715385437 +217.9863739013672, 0.5067437887191772 +225.28591918945312, 0.5065649747848511 +237.4851531982422, 0.5065128207206726 +205.78712463378906, 0.5063489079475403 +226.48583984375, 0.5060359835624695 +206.5870819091797, 0.5058273673057556 +219.98623657226562, 0.5044862627983093 +228.18572998046875, 0.5035623908042908 +222.38609313964844, 0.5035549402236938 +240.8849334716797, 0.5035102367401123 +203.78726196289062, 0.5030035972595215 +231.78550720214844, 0.502757728099823 +210.68682861328125, 0.5022436380386353 +212.58670043945312, 0.5016401410102844 +209.78688049316406, 0.5013570189476013 +241.88487243652344, 0.5010142922401428 +233.1854248046875, 0.5002692341804504 +232.68545532226562, 0.4999116063117981 +210.18685913085938, 0.49962103366851807 +593.5628662109375, 0.4987642168998718 +197.78762817382812, 0.4976913332939148 +215.28652954101562, 0.4956647753715515 +221.68614196777344, 0.49515068531036377 +235.88525390625, 0.49411505460739136 +216.98643493652344, 0.4938095808029175 +230.2855987548828, 0.4937276244163513 +236.68519592285156, 0.49276649951934814 +207.58702087402344, 0.4927441477775574 +229.38565063476562, 0.49229711294174194 +227.3857879638672, 0.4913508892059326 +207.98699951171875, 0.4898160696029663 +247.5845184326172, 0.48958510160446167 +200.9874267578125, 0.48867613077163696 +199.48751831054688, 0.48798322677612305 +202.5873260498047, 0.48786401748657227 +202.9873046875, 0.4876628518104553 +243.5847625732422, 0.4876479506492615 +245.0846710205078, 0.48692524433135986 +223.28604125976562, 0.48595666885375977 +246.2845916748047, 0.48469752073287964 +238.68507385253906, 0.48220157623291016 +254.9840545654297, 0.4805326461791992 +185.4884033203125, 0.4794374108314514 +250.9842987060547, 0.47788023948669434 +250.58433532714844, 0.4776269197463989 +256.5839538574219, 0.4774332046508789 +242.68482971191406, 0.47704577445983887 +258.0838623046875, 0.47670304775238037 +193.88787841796875, 0.4764273762702942 +186.28834533691406, 0.4748925566673279 +194.18785095214844, 0.4747360944747925 +192.38796997070312, 0.473804771900177 +192.08798217773438, 0.47346949577331543 +262.9835510253906, 0.4722177982330322 +248.98443603515625, 0.47194212675094604 +253.18417358398438, 0.4713386297225952 +192.887939453125, 0.46996772289276123 +248.58445739746094, 0.46987831592559814 +196.4877166748047, 0.4690214991569519 +265.9833679199219, 0.4689842462539673 +189.2881622314453, 0.4682689905166626 +270.58306884765625, 0.46721845865249634 +263.9834899902344, 0.4668384790420532 +194.98780822753906, 0.46650320291519165 +260.1837158203125, 0.4628896713256836 +188.48822021484375, 0.46008825302124023 +190.8880615234375, 0.45993924140930176 +195.5877685546875, 0.45911967754364014 +251.68426513671875, 0.4575476050376892 +187.0883026123047, 0.4566982388496399 +261.08367919921875, 0.4531368613243103 +261.2836608886719, 0.45277178287506104 +271.88299560546875, 0.4463568329811096 +267.88323974609375, 0.44627487659454346 +269.78314208984375, 0.44318288564682007 +180.0887451171875, 0.4430338740348816 +268.6831970214844, 0.44269859790802 +182.68856811523438, 0.44076889753341675 +278.58258056640625, 0.4405975341796875 +280.4824523925781, 0.4398748278617859 +274.8828125, 0.4390701651573181 +178.3888397216797, 0.43385475873947144 +277.0826721191406, 0.4336312413215637 +267.08331298828125, 0.4305317997932434 +183.98849487304688, 0.42966753244400024 +##END= + +$$ === CHEMSPECTRA UVVIS PEAK TABLE === +##TITLE=908f81fc-5890-4b40-b630-40c8c39f2c97 +##JCAMP-DX=5.00 +##DATA TYPE=LC/MS +##DATA CLASS=PEAK TABLE +##ORIGIN= +##OWNER= +##XUNITS=RETENTION TIME +##YUNITS=DETECTOR SIGNAL +##$CSCATEGORY=UVVIS PEAK TABLE +##PAGE=550.0 +##NPOINTS=6000 +##DATA TABLE= (XY..XY), PEAKS +0.0, -0.007450580596923828; +0.0999937504529953, -0.005446374416351318; +0.1999875009059906, 0.004038214683532715; +0.2999812364578247, 0.017717480659484863; +0.3999750018119812, 0.03202259540557861; +0.4999687373638153, 0.046759843826293945; +0.5999624729156494, 0.059470534324645996; +0.6999562382698059, 0.06828457117080688; +0.7999500036239624, 0.06793439388275146; +0.8999437093734741, 0.062018632888793945; +0.9999374747276306, 0.056862831115722656; +1.099931240081787, 0.05441904067993164; +1.1999249458312988, 0.05208700895309448; +1.2999186515808105, 0.047110021114349365; +1.3999124765396118, 0.03968179225921631; +1.4999061822891235, 0.03151595592498779; +1.5999000072479248, 0.024609267711639404; +1.6998937129974365, 0.021770596504211426; +1.7998874187469482, 0.023633241653442383; +1.8998812437057495, 0.028640031814575195; +1.9998749494552612, 0.03508478403091431; +2.0998687744140625, 0.04110485315322876; +2.199862480163574, 0.044949352741241455; +2.299856185913086, 0.04541128873825073; +2.3998498916625977, 0.04188716411590576; +2.4998435974121094, 0.03536790609359741; +2.599837303161621, 0.030517578125; +2.699831247329712, 0.03215670585632324; +2.7998249530792236, 0.03743171691894531; +2.8998186588287354, 0.04032999277114868; +2.999812364578247, 0.04026293754577637; +3.099806070327759, 0.04192441701889038; +3.1998000144958496, 0.044815242290496826; +3.2997937202453613, 0.04289299249649048; +3.399787425994873, 0.03819167613983154; +3.4997811317443848, 0.037282705307006836; +3.5997748374938965, 0.04223734140396118; +3.699768543243408, 0.0453069806098938; +3.799762487411499, 0.04260241985321045; +3.8997561931610107, 0.04010647535324097; +3.9997498989105225, 0.04287064075469971; +4.099743843078613, 0.048004090785980225; +4.199737548828125, 0.04787743091583252; +4.299731254577637, 0.042207539081573486; +4.399724960327148, 0.03719329833984375; +4.49971866607666, 0.034227967262268066; +4.599712371826172, 0.029928982257843018; +4.699706077575684, 0.021286308765411377; +4.799699783325195, 0.012092292308807373; +4.899693489074707, 0.008247792720794678; +4.999687194824219, 0.007040798664093018; +5.0996809005737305, 0.00692903995513916; +5.199674606323242, 0.008560717105865479; +5.299668788909912, 0.012308359146118164; +5.399662494659424, 0.016003847122192383; +5.4996562004089355, 0.017911195755004883; +5.599649906158447, 0.02154707908630371; +5.699643611907959, 0.025540590286254883; +5.799637317657471, 0.0273287296295166; +5.899631023406982, 0.02921372652053833; +5.999624729156494, 0.03621727228164673; +6.099618434906006, 0.04585087299346924; +6.199612140655518, 0.052928924560546875; +6.299605846405029, 0.05505979061126709; +6.399600028991699, 0.05342066287994385; +6.499593734741211, 0.04985928535461426; +6.599587440490723, 0.04330277442932129; +6.699581146240234, 0.037007033824920654; +6.799574851989746, 0.03343820571899414; +6.899568557739258, 0.0330805778503418; +6.9995622634887695, 0.03230571746826172; +7.099555969238281, 0.027798116207122803; +7.199549674987793, 0.021889805793762207; +7.299543380737305, 0.01621246337890625; +7.399537086486816, 0.010095536708831787; +7.499530792236328, 0.0057443976402282715; +7.599524974822998, 0.006750226020812988; +7.69951868057251, 0.014893710613250732; +7.7995123863220215, 0.027686357498168945; +7.899506092071533, 0.04027038812637329; +7.999499797821045, 0.048026442527770996; +8.099493026733398, 0.047206878662109375; +8.199487686157227, 0.0411495566368103; +8.299481391906738, 0.03359466791152954; +8.39947509765625, 0.02648681402206421; +8.499468803405762, 0.02117455005645752; +8.599462509155273, 0.025063753128051758; +8.699456214904785, 0.039108097553253174; +8.799449920654297, 0.05570054054260254; +8.899443626403809, 0.06614625453948975; +8.99943733215332, 0.06780028343200684; +9.099431037902832, 0.06525218486785889; +9.199424743652344, 0.059626996517181396; +9.299418449401855, 0.053159892559051514; +9.399412155151367, 0.04712492227554321; +9.499405860900879, 0.04234910011291504; +9.59939956665039, 0.040493905544281006; +9.699393272399902, 0.03907829523086548; +9.799386978149414, 0.03445148468017578; +9.899380683898926, 0.02864748239517212; +9.999374389648438, 0.026829540729522705; +10.09936809539795, 0.03177672624588013; +10.199361801147461, 0.03813207149505615; +10.299355506896973, 0.0408664345741272; +10.399349212646484, 0.041522085666656494; +10.499343872070312, 0.04012882709503174; +10.599337577819824, 0.037439167499542236; +10.699331283569336, 0.03384053707122803; +10.799324989318848, 0.029727816581726074; +10.89931869506836, 0.027574598789215088; +10.999312400817871, 0.02565234899520874; +11.099306106567383, 0.02384185791015625; +11.199299812316895, 0.018328428268432617; +11.299293518066406, 0.010989606380462646; +11.399287223815918, 0.008091330528259277; +11.49928092956543, 0.009328126907348633; +11.599274635314941, 0.011302530765533447; +11.699268341064453, 0.010482966899871826; +11.799262046813965, 0.010810792446136475; +11.899255752563477, 0.012755393981933594; +11.999249458312988, 0.011429190635681152; +12.0992431640625, 0.006861984729766846; +12.199236869812012, 0.004172325134277344; +12.299230575561523, 0.00854581594467163; +12.399224281311035, 0.016957521438598633; +12.499217987060547, 0.02425163984298706; +12.599211692810059, 0.03092736005783081; +12.69920539855957, 0.03834068775177002; +12.799200057983398, 0.04424154758453369; +12.89919376373291, 0.04429370164871216; +12.999187469482422, 0.04209578037261963; +13.099181175231934, 0.04184246063232422; +13.199174880981445, 0.042825937271118164; +13.299168586730957, 0.03994256258010864; +13.399162292480469, 0.03359466791152954; +13.49915599822998, 0.028289854526519775; +13.599149703979492, 0.022016465663909912; +13.699143409729004, 0.01592189073562622; +13.799137115478516, 0.010006129741668701; +13.899130821228027, 0.008568167686462402; +13.999124526977539, 0.011622905731201172; +14.09911823272705, 0.01592189073562622; +14.199111938476562, 0.019103288650512695; +14.299105644226074, 0.016294419765472412; +14.399099349975586, 0.010974705219268799; +14.499093055725098, 0.006370246410369873; +14.59908676147461, 0.004820525646209717; +14.699080467224121, 0.003732740879058838; +14.799074172973633, 0.002644956111907959; +14.899067878723145, 0.005580484867095947; +14.999061584472656, 0.012800097465515137; +15.099056243896484, 0.021062791347503662; +15.199049949645996, 0.025622546672821045; +15.299043655395508, 0.029146671295166016; +15.39903736114502, 0.03275275230407715; +15.499031066894531, 0.035993754863739014; +15.599024772644043, 0.03771483898162842; +15.699018478393555, 0.038273632526397705; +15.799012184143066, 0.037513673305511475; +15.899005889892578, 0.03375113010406494; +15.99899959564209, 0.028461217880249023; +16.0989933013916, 0.023320317268371582; +16.198986053466797, 0.019818544387817383; +16.298980712890625, 0.018067657947540283; +16.398975372314453, 0.019490718841552734; +16.49896812438965, 0.02199411392211914; +16.598962783813477, 0.02487003803253174; +16.698955535888672, 0.02905726432800293; +16.7989501953125, 0.03377348184585571; +16.898942947387695, 0.037632882595062256; +16.998937606811523, 0.03933161497116089; +17.09893035888672, 0.03994256258010864; +17.198925018310547, 0.03995746374130249; +17.298917770385742, 0.03854185342788696; +17.39891242980957, 0.03501772880554199; +17.498905181884766, 0.02820044755935669; +17.598899841308594, 0.018835067749023438; +17.69889259338379, 0.010326504707336426; +17.798887252807617, 0.002078711986541748; +17.898880004882812, -0.005461275577545166; +17.99887466430664, -0.010348856449127197; +18.098867416381836, -0.011064112186431885; +18.198862075805664, -0.010661780834197998; +18.29885482788086, -0.012926757335662842; +18.398849487304688, -0.013113021850585938; +18.498842239379883, -0.012405216693878174; +18.59883689880371, -0.011876225471496582; +18.69883155822754, -0.012852251529693604; +18.798824310302734, -0.011421740055084229; +18.898818969726562, -0.0040084123611450195; +18.998811721801758, 0.005491077899932861; +19.098806381225586, 0.01683831214904785; +19.19879913330078, 0.027865171432495117; +19.29879379272461, 0.03696233034133911; +19.398786544799805, 0.041075050830841064; +19.498781204223633, 0.03988295793533325; +19.598773956298828, 0.03523379564285278; +19.698768615722656, 0.028192996978759766; +19.79876136779785, 0.020056962966918945; +19.89875602722168, 0.01644343137741089; +19.998748779296875, 0.022426247596740723; +20.098743438720703, 0.03520399332046509; +20.1987361907959, 0.05075335502624512; +20.298730850219727, 0.06324052810668945; +20.398723602294922, 0.07073581218719482; +20.49871826171875, 0.07093697786331177; +20.598711013793945, 0.06259232759475708; +20.698705673217773, 0.0497475266456604; +20.79869842529297, 0.03446638584136963; +20.898693084716797, 0.02130866050720215; +20.998687744140625, 0.014036893844604492; +21.09868049621582, 0.015184283256530762; +21.19867515563965, 0.02422928810119629; +21.298667907714844, 0.0332370400428772; +21.398662567138672, 0.037536025047302246; +21.498655319213867, 0.03784894943237305; +21.598649978637695, 0.03719329833984375; +21.69864273071289, 0.03584474325180054; +21.79863739013672, 0.029824674129486084; +21.898630142211914, 0.02125650644302368; +21.998624801635742, 0.013522803783416748; +22.098617553710938, 0.009991228580474854; +22.198612213134766, 0.007957220077514648; +22.29860496520996, 0.0033080577850341797; +22.39859962463379, -0.0008344650268554688; +22.498592376708984, -0.000648200511932373; +22.598587036132812, 0.005431473255157471; +22.698579788208008, 0.013053417205810547; +22.798574447631836, 0.01841038465499878; +22.89856719970703, 0.02177804708480835; +22.99856185913086, 0.024668872356414795; +23.098554611206055, 0.028170645236968994; +23.198549270629883, 0.029303133487701416; +23.29854393005371, 0.026091933250427246; +23.398536682128906, 0.02232193946838379; +23.498531341552734, 0.021927058696746826; +23.59852409362793, 0.02578645944595337; +23.698518753051758, 0.028789043426513672; +23.798511505126953, 0.02794712781906128; +23.89850616455078, 0.02139061689376831; +23.998498916625977, 0.011041760444641113; +24.098493576049805, 0.0007003545761108398; +24.198486328125, -0.007756054401397705; +24.298480987548828, -0.014349818229675293; +24.398473739624023, -0.017680227756500244; +24.49846839904785, -0.014133751392364502; +24.598461151123047, -0.004656612873077393; +24.698455810546875, 0.0077784061431884766; +24.79844856262207, 0.01697242259979248; +24.8984432220459, 0.021286308765411377; +24.998435974121094, 0.02524256706237793; +25.098430633544922, 0.032864511013031006; +25.198423385620117, 0.04240870475769043; +25.298418045043945, 0.044323503971099854; +25.39841079711914, 0.03825873136520386; +25.49840545654297, 0.03491342067718506; +25.598400115966797, 0.03644078969955444; +25.698392868041992, 0.03644824028015137; +25.79838752746582, 0.03236532211303711; +25.898380279541016, 0.030949711799621582; +25.998374938964844, 0.0368654727935791; +26.09836769104004, 0.04250556230545044; +26.198362350463867, 0.042051076889038086; +26.298355102539062, 0.03653019666671753; +26.39834976196289, 0.028893351554870605; +26.498342514038086, 0.02250075340270996; +26.598337173461914, 0.016704201698303223; +26.69832992553711, 0.012189149856567383; +26.798324584960938, 0.009194016456604004; +26.898317337036133, 0.007525086402893066; +26.99831199645996, 0.007398426532745361; +27.098304748535156, 0.006541609764099121; +27.198299407958984, 0.004902482032775879; +27.29829216003418, 0.0011995434761047363; +27.398286819458008, -0.0025257468223571777; +27.498279571533203, -0.00476837158203125; +27.59827423095703, -0.005260109901428223; +27.698266983032227, -0.005424022674560547; +27.798261642456055, -0.006109476089477539; +27.898256301879883, -0.004999339580535889; +27.998249053955078, 0.00024586915969848633; +28.098243713378906, 0.01154094934463501; +28.1982364654541, 0.02405792474746704; +28.29823112487793, 0.03463774919509888; +28.398223876953125, 0.04075467586517334; +28.498218536376953, 0.04412233829498291; +28.59821128845215, 0.042751431465148926; +28.698205947875977, 0.03498047590255737; +28.798198699951172, 0.024802982807159424; +28.898193359375, 0.014886260032653809; +28.998186111450195, 0.006839632987976074; +29.098180770874023, 0.00038743019104003906; +29.19817352294922, -0.000521540641784668; +29.298168182373047, 0.0038295984268188477; +29.398160934448242, 0.008761882781982422; +29.49815559387207, 0.01173466444015503; +29.598148345947266, 0.01644343137741089; +29.698143005371094, 0.0225752592086792; +29.79813575744629, 0.025622546672821045; +29.898130416870117, 0.02469867467880249; +29.998123168945312, 0.020660459995269775; +30.09811782836914, 0.015042722225189209; +30.19811248779297, 0.006847083568572998; +30.298105239868164, -0.0009313225746154785; +30.398099899291992, -0.00502169132232666; +30.498092651367188, -0.005781650543212891; +30.598087310791016, -0.002518296241760254; +30.69808006286621, 0.004932284355163574; +30.79807472229004, 0.013612210750579834; +30.898067474365234, 0.02133101224899292; +30.998062133789062, 0.024959444999694824; +31.098054885864258, 0.02411752939224243; +31.198049545288086, 0.02086162567138672; +31.29804229736328, 0.01790374517440796; +31.39803695678711, 0.018365681171417236; +31.498029708862305, 0.0211372971534729; +31.598024368286133, 0.02469867467880249; +31.698017120361328, 0.029303133487701416; +31.798011779785156, 0.034146010875701904; +31.89800453186035, 0.03744661808013916; +31.99799919128418, 0.038757920265197754; +32.097991943359375, 0.03714859485626221; +32.1979866027832, 0.035740435123443604; +32.29798126220703, 0.03448128700256348; +32.397972106933594, 0.03259629011154175; +32.49796676635742, 0.030942261219024658; +32.59796142578125, 0.028915703296661377; +32.69795608520508, 0.026673078536987305; +32.797950744628906, 0.02177804708480835; +32.89794158935547, 0.01689046621322632; +32.9979362487793, 0.014103949069976807; +33.097930908203125, 0.011354684829711914; +33.19792556762695, 0.00622868537902832; +33.297916412353516, 0.0009834766387939453; +33.397911071777344, -0.0013932585716247559; +33.49790573120117, -0.0003725290298461914; +33.597900390625, 0.002376735210418701; +33.69789123535156, 0.004880130290985107; +33.79788589477539, 0.006444752216339111; +33.89788055419922, 0.007793307304382324; +33.99787521362305, 0.011593103408813477; +34.09786605834961, 0.013880431652069092; +34.19786071777344, 0.012196600437164307; +34.297855377197266, 0.01115351915359497; +34.397850036621094, 0.013135373592376709; +34.497840881347656, 0.014856457710266113; +34.597835540771484, 0.011824071407318115; +34.69783020019531, 0.008903443813323975; +34.79782485961914, 0.009767711162567139; +34.89781951904297, 0.011801719665527344; +34.99781036376953, 0.013731420040130615; +35.09780502319336, 0.014841556549072266; +35.19779968261719, 0.016227364540100098; +35.297794342041016, 0.016652047634124756; +35.39778518676758, 0.017002224922180176; +35.497779846191406, 0.016339123249053955; +35.597774505615234, 0.015117228031158447; +35.69776916503906, 0.01449882984161377; +35.797760009765625, 0.013567507266998291; +35.89775466918945, 0.012859702110290527; +35.99774932861328, 0.012211501598358154; +36.09774398803711, 0.015109777450561523; +36.19773483276367, 0.019393861293792725; +36.2977294921875, 0.02292543649673462; +36.39772415161133, 0.024370849132537842; +36.497718811035156, 0.021338462829589844; +36.59770965576172, 0.014662742614746094; +36.69770431518555, 0.005684792995452881; +36.797698974609375, -0.00011175870895385742; +36.8976936340332, -0.0009387731552124023; +36.997684478759766, 0.00017881393432617188; +37.097679138183594, -0.00048428773880004883; +37.19767379760742, -0.005610287189483643; +37.29766845703125, -0.013187527656555176; +37.39766311645508, -0.021494925022125244; +37.49765396118164, -0.028207898139953613; +37.59764862060547, -0.03144890069961548; +37.6976432800293, -0.02958625555038452; +37.797637939453125, -0.02228468656539917; +37.89762878417969, -0.014275312423706055; +37.997623443603516, -0.010833144187927246; +38.097618103027344, -0.012896955013275146; +38.19761276245117, -0.01636892557144165; +38.297603607177734, -0.017024576663970947; +38.39759826660156, -0.015914440155029297; +38.49759292602539, -0.014230608940124512; +38.59758758544922, -0.011712312698364258; +38.69757843017578, -0.006727874279022217; +38.79757308959961, -0.0002086162567138672; +38.89756774902344, 0.005058944225311279; +38.997562408447266, 0.009894371032714844; +39.09755325317383, 0.013940036296844482; +39.197547912597656, 0.016763806343078613; +39.297542572021484, 0.015407800674438477; +39.39753723144531, 0.010952353477478027; +39.49753189086914, 0.005759298801422119; +39.5975227355957, 0.0005438923835754395; +39.69751739501953, -0.003129243850708008; +39.79751205444336, -0.005461275577545166; +39.89750671386719, -0.008359551429748535; +39.99749755859375, -0.01214444637298584; +40.09749221801758, -0.014238059520721436; +40.197486877441406, -0.013962388038635254; +40.297481536865234, -0.01519918441772461; +40.3974723815918, -0.017680227756500244; +40.497467041015625, -0.017784535884857178; +40.59746170043945, -0.017024576663970947; +40.69745635986328, -0.01942366361618042; +40.797447204589844, -0.023730099201202393; +40.89744186401367, -0.023320317268371582; +40.9974365234375, -0.019535422325134277; +41.09743118286133, -0.01599639654159546; +41.19742202758789, -0.011913478374481201; +41.29741668701172, -0.006921589374542236; +41.39741134643555, -0.004395842552185059; +41.497406005859375, -0.005297362804412842; +41.59739685058594, -0.0029578804969787598; +41.697391510009766, 0.005207955837249756; +41.797386169433594, 0.014416873455047607; +41.89738082885742, 0.02139061689376831; +41.99737548828125, 0.028081238269805908; +42.09736633300781, 0.03185868263244629; +42.19736099243164, 0.028677284717559814; +42.29735565185547, 0.021226704120635986; +42.3973503112793, 0.014089047908782959; +42.49734115600586, 0.011309981346130371; +42.59733581542969, 0.009045004844665527; +42.697330474853516, 0.006780028343200684; +42.797325134277344, 0.003635883331298828; +42.897315979003906, -0.0008791685104370117; +42.997310638427734, -0.0035017728805541992; +43.09730529785156, -0.007711350917816162; +43.19729995727539, -0.00893324613571167; +43.29729080200195, -0.003285706043243408; +43.39728546142578, 0.008359551429748535; +43.49728012084961, 0.018574297428131104; +43.59727478027344, 0.02100318670272827; +43.697265625, 0.021226704120635986; +43.79726028442383, 0.01893937587738037; +43.897254943847656, 0.012159347534179688; +43.997249603271484, 0.0039711594581604; +44.09724426269531, 0.0007599592208862305; +44.197235107421875, 0.004388391971588135; +44.2972297668457, 0.008516013622283936; +44.39722442626953, 0.008881092071533203; +44.49721908569336, 0.005200505256652832; +44.59720993041992, -0.0002682209014892578; +44.69720458984375, -0.0038444995880126953; +44.79719924926758, -0.004351139068603516; +44.897193908691406, -0.0027492642402648926; +44.99718475341797, 0.0015422701835632324; +45.0971794128418, 0.008001923561096191; +45.197174072265625, 0.014506280422210693; +45.29716873168945, 0.016413629055023193; +45.397159576416016, 0.014707446098327637; +45.497154235839844, 0.01344829797744751; +45.59714889526367, 0.012017786502838135; +45.6971435546875, 0.010751187801361084; +45.79713439941406, 0.009104609489440918; +45.89712905883789, 0.0071749091148376465; +45.99712371826172, 0.0018551945686340332; +46.09711837768555, -0.004507601261138916; +46.19710922241211, -0.006064772605895996; +46.29710388183594, -0.003904104232788086; +46.397098541259766, -0.002518296241760254; +46.497093200683594, -0.0012665987014770508; +46.59708786010742, 0.0028312206268310547; +46.697078704833984, 0.009112060070037842; +46.79707336425781, 0.01434236764907837; +46.89706802368164, 0.018388032913208008; +46.99706268310547, 0.020213425159454346; +47.09705352783203, 0.016801059246063232; +47.19704818725586, 0.010162591934204102; +47.29704284667969, 0.0035762786865234375; +47.397037506103516, -0.001125037670135498; +47.49702835083008, -0.005796551704406738; +47.597023010253906, -0.007957220077514648; +47.697017669677734, -0.007040798664093018; +47.79701232910156, -0.0028461217880249023; +47.897003173828125, 5.9604644775390625e-05; +47.99699783325195, -0.0005960464477539062; +48.09699249267578, -0.004559755325317383; +48.19698715209961, -0.009141862392425537; +48.29697799682617, -0.010281801223754883; +48.39697265625, -0.007659196853637695; +48.49696731567383, -0.003919005393981934; +48.596961975097656, -0.0014901161193847656; +48.696956634521484, -0.0003948807716369629; +48.79694747924805, -0.0014901161193847656; +48.896942138671875, -0.005379319190979004; +48.9969367980957, -0.01481175422668457; +49.09693145751953, -0.02812594175338745; +49.196922302246094, -0.041618943214416504; +49.29691696166992, -0.05052238702774048; +49.39691162109375, -0.05266070365905762; +49.49690628051758, -0.05064159631729126; +49.59689712524414, -0.04717707633972168; +49.69689178466797, -0.04044175148010254; +49.7968864440918, -0.029765069484710693; +49.896881103515625, -0.017218291759490967; +49.99687194824219, -0.005170702934265137; +50.096866607666016, 0.005848705768585205; +50.196861267089844, 0.01554936170578003; +50.29685592651367, 0.022098422050476074; +50.396846771240234, 0.02612173557281494; +50.49684143066406, 0.02664327621459961; +50.59683609008789, 0.02508610486984253; +50.69683074951172, 0.024765729904174805; +50.79682159423828, 0.027738511562347412; +50.89681625366211, 0.030979514122009277; +50.99681091308594, 0.027336180210113525; +51.096805572509766, 0.020660459995269775; +51.196800231933594, 0.014260411262512207; +51.296791076660156, 0.010207295417785645; +51.396785736083984, 0.01014024019241333; +51.49678039550781, 0.02790987491607666; +51.59677505493164, 0.0947415828704834; +51.6967658996582, 0.2351328730583191; +51.79676055908203, 0.4571974277496338; +51.89675521850586, 0.7474496960639954; +51.99674987792969, 1.0832250118255615; +52.09674072265625, 1.4346911907196045; +52.19673538208008, 1.7662272453308105; +52.296730041503906, 2.0503923892974854; +52.396724700927734, 2.2703261375427246; +52.4967155456543, 2.419419527053833; +52.596710205078125, 2.500034809112549; +52.69670486450195, 2.5261118412017822; +52.79669952392578, 2.516374111175537; +52.896690368652344, 2.4810657501220703; +52.99668502807617, 2.4299025535583496; +53.0966796875, 2.378091335296631; +53.19667434692383, 2.355947971343994; +53.296669006347656, 2.396576166152954; +53.39665985107422, 2.5222227573394775; +53.49665451049805, 2.7365610599517822; +53.596649169921875, 3.0195860862731934; +53.6966438293457, 3.353126287460327; +53.796634674072266, 3.714278221130371; +53.896629333496094, 4.0551347732543945; +53.99662399291992, 4.3037309646606445; +54.09661865234375, 4.416406154632568; +54.19660949707031, 4.410646915435791; +54.29660415649414, 4.328764915466309; +54.39659881591797, 4.197992324829102; +54.4965934753418, 4.041805744171143; +54.59658432006836, 3.9041712284088135; +54.69657897949219, 3.8246586322784424; +54.796573638916016, 3.8167014122009277; +54.896568298339844, 3.8749799728393555; +54.996559143066406, 3.9927289485931396; +55.096553802490234, 4.162631988525391; +55.19654846191406, 4.356056213378906; +55.29654312133789, 4.509016990661621; +55.39653396606445, 4.536770343780518; +55.49652862548828, 4.358127593994141; +55.59652328491211, 3.931194543838501; +55.69651794433594, 3.270432472229004; +55.796512603759766, 2.4429783821105957; +55.89650344848633, 1.5514864921569824; +55.996498107910156, 0.7029995322227478; +56.096492767333984, -0.006258487701416016; +56.19648742675781, -0.5215629935264587; +56.296478271484375, -0.8456185460090637; +56.3964729309082, -1.0190904140472412; +56.49646759033203, -1.0882987976074219; +56.59646224975586, -1.0931342840194702; +56.69645309448242, -1.0764524936676025; +56.79644775390625, -1.0674148797988892; +56.89644241333008, -1.0734349489212036; +56.996437072753906, -1.100197434425354; +57.09642791748047, -1.1617839336395264; +57.1964225769043, -1.2677834033966064; +57.296417236328125, -1.404799461364746; +57.39641189575195, -1.54837965965271; +57.496402740478516, -1.6784443855285645; +57.596397399902344, -1.769550085067749; +57.69639205932617, -1.7953813076019287; +57.79638671875, -1.742720603942871; +57.89637756347656, -1.629643201828003; +57.99637222290039, -1.4947503805160522; +58.09636688232422, -1.3718678951263428; +58.19636154174805, -1.267164945602417; +58.296356201171875, -1.1555328369140625; +58.39634704589844, -0.9892135858535767; +58.496341705322266, -0.7152259349822998; +58.596336364746094, -0.28971582651138306; +58.69633102416992, 0.3042370080947876; +58.796321868896484, 1.0229125022888184; +58.89631652832031, 1.7706304788589478; +58.99631118774414, 2.438142776489258; +59.09630584716797, 2.9477477073669434; +59.19629669189453, 3.258183479309082; +59.29629135131836, 3.3598244190216064; +59.39628601074219, 3.283508062362671; +59.496280670166016, 3.0889809131622314; +59.59627151489258, 2.8349831104278564; +59.696266174316406, 2.557523488998413; +59.796260833740234, 2.275712728500366; +59.89625549316406, 2.003326892852783; +59.996246337890625, 1.7448291778564453; +60.09624099731445, 1.5017614364624023; +60.19623565673828, 1.2838468551635742; +60.29623031616211, 1.1049435138702393; +60.39622497558594, 0.9741336107254028; +60.4962158203125, 0.8894503116607666; +60.59621047973633, 0.8481964468955994; +60.696205139160156, 0.8471831679344177; +60.796199798583984, 0.879146158695221; +60.89619064331055, 0.9434521198272705; +60.996185302734375, 1.0476336479187012; +61.0961799621582, 1.2059881687164307; +61.19617462158203, 1.425154447555542; +61.296165466308594, 1.6761348247528076; +61.39616012573242, 1.8701106309890747; +61.49615478515625, 1.8865094184875488; +61.59614944458008, 1.6395151615142822; +61.69614028930664, 1.1124461889266968; +61.79613494873047, 0.34853070974349976; +61.8961296081543, -0.5615353584289551; +61.996124267578125, -1.47266685962677; +62.09611511230469, -2.229794979095459; +62.196109771728516, -2.73445987701416; +62.296104431152344, -2.9759554862976074; +62.39609909057617, -3.01326060295105; +62.496089935302734, -2.9302239418029785; +62.59608459472656, -2.806894540786743; +62.69607925415039, -2.694033145904541; +62.79607391357422, -2.6070027351379395; +62.89606857299805, -2.5338382720947266; +62.99605941772461, -2.445645570755005; +63.09605407714844, -2.3100078105926514; +63.196048736572266, -2.1047070026397705; +63.296043395996094, -1.8371269702911377; +63.396034240722656, -1.5524699687957764; +63.496028900146484, -1.3171210289001465; +63.59602355957031, -1.1885390281677246; +63.69601821899414, -1.1901483535766602; +63.7960090637207, -1.3130381107330322; +63.89600372314453, -1.5204474925994873; +63.99599838256836, -1.7539262771606445; +64.09599304199219, -1.9496679306030273; +64.19598388671875, -2.0574779510498047; +64.29598236083984, -2.060920000076294; +64.3959732055664, -1.9739419221878052; +64.49596405029297, -1.8340349197387695; +64.59596252441406, -1.6902313232421875; +64.69595336914062, -1.5880241394042969; +64.79594421386719, -1.5672073364257812; +64.89594268798828, -1.648716688156128; +64.99593353271484, -1.8181874752044678; +65.09593200683594, -2.0221099853515625; +65.1959228515625, -2.1856799125671387; +65.29591369628906, -2.249129056930542; +65.39591217041016, -2.1752266883850098; +65.49590301513672, -1.9545331001281738; +65.59590148925781, -1.6113519668579102; +65.69589233398438, -1.203387975692749; +65.79588317871094, -0.8013024926185608; +65.89588165283203, -0.4572272300720215; +65.9958724975586, -0.19544363021850586; +66.09586334228516, -0.016070902347564697; +66.19586181640625, 0.08636713027954102; +66.29585266113281, 0.12067705392837524; +66.3958511352539, 0.09623914957046509; +66.49584197998047, 0.025078654289245605; +66.59583282470703, -0.08340179920196533; +66.69583129882812, -0.22584199905395508; +66.79582214355469, -0.3891885280609131; +66.89581298828125, -0.5552098155021667; +66.99581146240234, -0.7092729210853577; +67.0958023071289, -0.8447691798210144; +67.19580078125, -0.9550824761390686; +67.29579162597656, -1.0243505239486694; +67.39578247070312, -1.0474398136138916; +67.49578094482422, -1.031123161315918; +67.59577178955078, -0.9856522083282471; +67.69577026367188, -0.9177848696708679; +67.79576110839844, -0.8309558033943176; +67.895751953125, -0.735744833946228; +67.9957504272461, -0.6370097398757935; +68.09574127197266, -0.5290359258651733; +68.19573211669922, -0.39201974868774414; +68.29573059082031, -0.20287185907363892; +68.39572143554688, 0.05551427602767944; +68.49571990966797, 0.3892183303833008; +68.59571075439453, 0.7920563220977783; +68.6957015991211, 1.245245337486267; +68.79570007324219, 1.697711706161499; +68.89569091796875, 2.0638928413391113; +68.99568176269531, 2.2421553134918213; +69.0956802368164, 2.1693854331970215; +69.19567108154297, 1.8467307090759277; +69.29566955566406, 1.3307780027389526; +69.39566040039062, 0.7149428129196167; +69.49565124511719, 0.10821223258972168; +69.59564971923828, -0.38576871156692505; +69.69564056396484, -0.7126107811927795; +69.79563903808594, -0.8807852864265442; +69.8956298828125, -0.9391307830810547; +69.99562072753906, -0.9411051869392395; +70.09561920166016, -0.9173974394798279; +70.19561004638672, -0.8651837706565857; +70.29560089111328, -0.7435157895088196; +70.39559936523438, -0.49095600843429565; +70.49559020996094, -0.0676959753036499; +70.59558868408203, 0.5120262503623962; +70.6955795288086, 1.181676983833313; +70.79557037353516, 1.8525793552398682; +70.89556884765625, 2.4359524250030518; +70.99555969238281, 2.8502793312072754; +71.09555053710938, 3.0321106910705566; +71.19554901123047, 2.9575676918029785; +71.29553985595703, 2.644829511642456; +71.39553833007812, 2.1330416202545166; +71.49552917480469, 1.4762431383132935; +71.59552001953125, 0.7458627223968506; +71.69551849365234, 0.027798116207122803; +71.7955093383789, -0.5996227264404297; +71.8955078125, -1.0799765586853027; +71.99549865722656, -1.3818144798278809; +72.09548950195312, -1.5083327293395996; +72.19548797607422, -1.505732536315918; +72.29547882080078, -1.4398247003555298; +72.39546966552734, -1.3645291328430176; +72.49546813964844, -1.307629108428955; +72.595458984375, -1.2781097888946533; +72.6954574584961, -1.2810454368591309; +72.79544830322266, -1.312851905822754; +72.89543914794922, -1.3689994812011719; +72.99543762207031, -1.4403611421585083; +73.09542846679688, -1.511521577835083; +73.19541931152344, -1.5634074211120605; +73.29541778564453, -1.5812963247299194; +73.3954086303711, -1.556657314300537; +73.49540710449219, -1.4841928482055664; +73.59539794921875, -1.368485450744629; +73.69538879394531, -1.2293086051940918; +73.7953872680664, -1.0988786220550537; +73.89537811279297, -1.0052919387817383; +73.99536895751953, -0.9724348783493042; +74.09536743164062, -1.017622709274292; +74.19535827636719, -1.1439919471740723; +74.29535675048828, -1.3379082679748535; +74.39534759521484, -1.569703221321106; +74.4953384399414, -1.795932650566101; +74.5953369140625, -1.964785099029541; +74.69532775878906, -2.0283162593841553; +74.79532623291016, -1.9644051790237427; +74.89531707763672, -1.7839148044586182; +74.99530792236328, -1.5217289924621582; +75.09530639648438, -1.2307689189910889; +75.19529724121094, -0.9670928120613098; +75.2952880859375, -0.7790252566337585; +75.3952865600586, -0.6940513849258423; +75.49527740478516, -0.711388885974884; +75.59527587890625, -0.8089914917945862; +75.69526672363281, -0.9534284472465515; +75.79525756835938, -1.1069625616073608; +75.89525604248047, -1.230865716934204; +75.99524688720703, -1.2891441583633423; +76.0952377319336, -1.2630671262741089; +76.19523620605469, -1.1550039052963257; +76.29522705078125, -0.989183783531189; +76.39522552490234, -0.8051767945289612; +76.4952163696289, -0.6468966603279114; +76.59520721435547, -0.5485266447067261; +76.69520568847656, -0.5227401852607727; +76.79519653320312, -0.5677342414855957; +76.89519500732422, -0.667668879032135; +76.99518585205078, -0.8035376667976379; +77.09517669677734, -0.9560585021972656; +77.19517517089844, -1.1105611324310303; +77.295166015625, -1.250728964805603; +77.39515686035156, -1.3542249202728271; +77.49515533447266, -1.3988687992095947; +77.59514617919922, -1.369781732559204; +77.69514465332031, -1.270398497581482; +77.79513549804688, -1.1188983917236328; +77.89512634277344, -0.9471699595451355; +77.99512481689453, -0.788465142250061; +78.0951156616211, -0.6712973117828369; +78.19510650634766, -0.6065741181373596; +78.29510498046875, -0.5894824862480164; +78.39509582519531, -0.6080269813537598; +78.4950942993164, -0.6542876362800598; +78.59508514404297, -0.7279589772224426; +78.69507598876953, -0.8268803358078003; +78.79507446289062, -0.9453818202018738; +78.89506530761719, -1.0661184787750244; +78.99506378173828, -1.1664106845855713; +79.09505462646484, -1.2231543064117432; +79.1950454711914, -1.2205243110656738; +79.2950439453125, -1.1568516492843628; +79.39503479003906, -1.0431110858917236; +79.49502563476562, -0.9035170078277588; +79.59502410888672, -0.764697790145874; +79.69501495361328, -0.6434470415115356; +79.79501342773438, -0.5451440811157227; +79.89500427246094, -0.4661828279495239; +79.9949951171875, -0.4063248634338379; +80.0949935913086, -0.36101043224334717; +80.19498443603516, -0.32270699739456177; +80.29497528076172, -0.2913251519203186; +80.39497375488281, -0.26891380548477173; +80.49496459960938, -0.2589300274848938; +80.59496307373047, -0.25466829538345337; +80.69495391845703, -0.25349855422973633; +80.7949447631836, -0.2586767077445984; +80.89494323730469, -0.26895105838775635; +80.99493408203125, -0.2813562750816345; +81.09493255615234, -0.28918683528900146; +81.1949234008789, -0.2913326025009155; +81.29491424560547, -0.2910792827606201; +81.39491271972656, -0.2899765968322754; +81.49490356445312, -0.2870410680770874; +81.59489440917969, -0.27976930141448975; +81.69489288330078, -0.27011334896087646; +81.79488372802734, -0.26392191648483276; +81.89488220214844, -0.26160478591918945; +81.994873046875, -0.2611801028251648; +82.09486389160156, -0.2609863877296448; +82.19486236572266, -0.25937706232070923; +82.29485321044922, -0.25728344917297363; +82.39484405517578, -0.25416165590286255; +82.49484252929688, -0.24908781051635742; +82.59483337402344, -0.24083256721496582; +82.69483184814453, -0.23099035024642944; +82.7948226928711, -0.2253204584121704; +82.89481353759766, -0.22591650485992432; +82.99481201171875, -0.22833794355392456; +83.09480285644531, -0.22987276315689087; +83.19479370117188, -0.231035053730011; +83.29479217529297, -0.23458898067474365; +83.39478302001953, -0.2380162477493286; +83.49478149414062, -0.23198872804641724; +83.59477233886719, -0.2095252275466919; +83.69476318359375, -0.1658797264099121; +83.79476165771484, -0.09712576866149902; +83.8947525024414, 0.003255903720855713; +83.9947509765625, 0.1427978277206421; +84.09474182128906, 0.33386051654815674; +84.19473266601562, 0.6148666143417358; +84.29473114013672, 1.0410025119781494; +84.39472198486328, 1.621335744857788; +84.49471282958984, 2.3005902767181396; +84.59471130371094, 2.998188018798828; +84.6947021484375, 3.652848243713379; +84.7947006225586, 4.193417549133301; +84.89469146728516, 4.521243095397949; +84.99468231201172, 4.579208850860596; +85.09468078613281, 4.389710903167725; +85.19467163085938, 4.020057678222656; +85.29466247558594, 3.5260841846466064; +85.39466094970703, 2.9500575065612793; +85.4946517944336, 2.3517906665802; +85.59465026855469, 1.7953068017959595; +85.69464111328125, 1.3276338577270508; +85.79463195800781, 0.962287187576294; +85.8946304321289, 0.689089298248291; +85.99462127685547, 0.4956051707267761; +86.09461975097656, 0.3659576177597046; +86.19461059570312, 0.2809390425682068; +86.29460144042969, 0.22011995315551758; +86.39459991455078, 0.17543882131576538; +86.49459075927734, 0.14499574899673462; +86.5945816040039, 0.12393295764923096; +86.694580078125, 0.10606646537780762; +86.79457092285156, 0.08966028690338135; +86.89456939697266, 0.07819384336471558; +86.99456024169922, 0.07209181785583496; +87.09455108642578, 0.06911158561706543; +87.19454956054688, 0.06765127182006836; +87.29454040527344, 0.06733834743499756; +87.39453125, 0.06610900163650513; +87.4945297241211, 0.06255507469177246; +87.59452056884766, 0.05641579627990723; +87.69451904296875, 0.05078315734863281; +87.79450988769531, 0.04557520151138306; +87.89450073242188, 0.03559142351150513; +87.99449920654297, 0.02311915159225464; +88.09449005126953, 0.011324882507324219; +88.19448852539062, 0.00581890344619751; +88.29447937011719, 0.005036592483520508; +88.39447021484375, 0.004306435585021973; +88.49446868896484, 0.005602836608886719; +88.5944595336914, 0.01084059476852417; +88.69445037841797, 0.019863247871398926; +88.79444885253906, 0.025875866413116455; +88.89443969726562, 0.024221837520599365; +88.99443817138672, 0.017508864402770996; +89.09442901611328, 0.007934868335723877; +89.19441986083984, -0.002779066562652588; +89.29441833496094, -0.013053417205810547; +89.3944091796875, -0.020742416381835938; +89.49440002441406, -0.025734305381774902; +89.59439849853516, -0.031091272830963135; +89.69438934326172, -0.03390759229660034; +89.79438781738281, -0.0314861536026001; +89.89437866210938, -0.028185546398162842; +89.99436950683594, -0.03170967102050781; +90.09436798095703, -0.041350722312927246; +90.1943588256836, -0.04982203245162964; +90.29434967041016, -0.056177377700805664; +90.39434814453125, -0.06521493196487427; +90.49433898925781, -0.07443875074386597; +90.5943374633789, -0.07769465446472168; +90.69432830810547, -0.07281452417373657; +90.79431915283203, -0.06334483623504639; +90.89431762695312, -0.05179643630981445; +90.99430847167969, -0.038020312786102295; +91.09430694580078, -0.02806633710861206; +91.19429779052734, -0.025115907192230225; +91.2942886352539, -0.02981722354888916; +91.394287109375, -0.03575533628463745; +91.49427795410156, -0.03927946090698242; +91.59426879882812, -0.04363059997558594; +91.69426727294922, -0.045262277126312256; +91.79425811767578, -0.03997236490249634; +91.89425659179688, -0.027880072593688965; +91.99424743652344, -0.017754733562469482; +92.09423828125, -0.01440197229385376; +92.1942367553711, -0.01338869333267212; +92.29422760009766, -0.012718141078948975; +92.39421844482422, -0.012174248695373535; +92.49421691894531, -0.011377036571502686; +92.59420776367188, -0.01019984483718872; +92.69420623779297, -0.00918656587600708; +92.79419708251953, -0.011242926120758057; +92.8941879272461, -0.01706928014755249; +92.99418640136719, -0.025369226932525635; +93.09417724609375, -0.032879412174224854; +93.19417572021484, -0.033639371395111084; +93.2941665649414, -0.02933293581008911; +93.39415740966797, -0.021405518054962158; +93.49415588378906, -0.011220574378967285; +93.59414672851562, -0.00260770320892334; +93.69413757324219, 0.0025257468223571777; +93.79413604736328, 0.0026300549507141113; +93.89412689208984, 0.00019371509552001953; +93.99412536621094, -0.00683218240737915; +94.0941162109375, -0.01689046621322632; +94.19410705566406, -0.023953616619110107; +94.29410552978516, -0.026576220989227295; +94.39409637451172, -0.030621886253356934; +94.49408721923828, -0.03766268491744995; +94.59408569335938, -0.04085153341293335; +94.69407653808594, -0.036619603633880615; +94.79407501220703, -0.031165778636932373; +94.8940658569336, -0.030547380447387695; +94.99405670166016, -0.03248453140258789; +95.09405517578125, -0.03705918788909912; +95.19404602050781, -0.0448077917098999; +95.2940444946289, -0.058360397815704346; +95.39403533935547, -0.07080286741256714; +95.49402618408203, -0.07736682891845703; +95.59402465820312, -0.07490813732147217; +95.69401550292969, -0.06320327520370483; +95.79400634765625, -0.048391520977020264; +95.89400482177734, -0.03682076930999756; +95.9939956665039, -0.0356137752532959; +96.093994140625, -0.04124641418457031; +96.19398498535156, -0.04874914884567261; +96.29397583007812, -0.05350261926651001; +96.39397430419922, -0.05551427602767944; +96.49396514892578, -0.05459785461425781; +96.59395599365234, -0.049233436584472656; +96.69395446777344, -0.044226646423339844; +96.7939453125, -0.04488229751586914; +96.8939437866211, -0.05211681127548218; +96.99393463134766, -0.05973130464553833; +97.09392547607422, -0.06265193223953247; +97.19392395019531, -0.06202608346939087; +97.29391479492188, -0.05759298801422119; +97.39391326904297, -0.051818788051605225; +97.49390411376953, -0.04754960536956787; +97.5938949584961, -0.042282044887542725; +97.69389343261719, -0.034675002098083496; +97.79388427734375, -0.02472102642059326; +97.89387512207031, -0.017546117305755615; +97.9938735961914, -0.012420117855072021; +98.09386444091797, -0.0079423189163208; +98.19386291503906, -0.006355345249176025; +98.29385375976562, -0.005207955837249756; +98.39384460449219, -0.0022426247596740723; +98.49384307861328, 0.0021979212760925293; +98.59383392333984, 0.001385807991027832; +98.6938247680664, -0.006429851055145264; +98.7938232421875, -0.01862645149230957; +98.89381408691406, -0.03343075513839722; +98.99381256103516, -0.05161762237548828; +99.09380340576172, -0.06899982690811157; +99.19379425048828, -0.07911771535873413; +99.29379272460938, -0.07761269807815552; +99.39378356933594, -0.06747245788574219; +99.4937744140625, -0.05572289228439331; +99.5937728881836, -0.0460892915725708; +99.69376373291016, -0.04085898399353027; +99.79376220703125, -0.03653764724731445; +99.89375305175781, -0.03410130739212036; +99.99374389648438, -0.03453344106674194; +100.09374237060547, -0.03543496131896973; +100.19373321533203, -0.032685697078704834; +100.29373168945312, -0.025294721126556396; +100.39372253417969, -0.01648813486099243; +100.49371337890625, -0.008240342140197754; +100.59371185302734, -0.0015497207641601562; +100.6937026977539, -0.0008121132850646973; +100.79369354248047, -0.006251037120819092; +100.89369201660156, -0.012233853340148926; +100.99368286132812, -0.018961727619171143; +101.09368133544922, -0.028058886528015137; +101.19367218017578, -0.04001706838607788; +101.29366302490234, -0.05172938108444214; +101.39366149902344, -0.05988776683807373; +101.49365234375, -0.06505101919174194; +101.59364318847656, -0.06525218486785889; +101.69364166259766, -0.06068497896194458; +101.79363250732422, -0.04998594522476196; +101.89363098144531, -0.033736228942871094; +101.99362182617188, -0.018365681171417236; +102.09361267089844, -0.009775161743164062; +102.19361114501953, -0.007309019565582275; +102.2936019897461, -0.008650124073028564; +102.39360046386719, -0.013679265975952148; +102.49359130859375, -0.021219253540039062; +102.59358215332031, -0.028409063816070557; +102.6935806274414, -0.030942261219024658; +102.79357147216797, -0.03100186586380005; +102.89356231689453, -0.030055642127990723; +102.99356079101562, -0.028789043426513672; +103.09355163574219, -0.0279843807220459; +103.19355010986328, -0.027492642402648926; +103.29354095458984, -0.030249357223510742; +103.3935317993164, -0.034227967262268066; +103.4935302734375, -0.03477931022644043; +103.59352111816406, -0.03255903720855713; +103.69351196289062, -0.027664005756378174; +103.79351043701172, -0.021107494831085205; +103.89350128173828, -0.01224130392074585; +103.99349975585938, -0.007204711437225342; +104.09349060058594, -0.01249462366104126; +104.1934814453125, -0.024549663066864014; +104.2934799194336, -0.03853440284729004; +104.39347076416016, -0.049971044063568115; +104.49346923828125, -0.058554112911224365; +104.59346008300781, -0.061377882957458496; +104.69345092773438, -0.05642324686050415; +104.79344940185547, -0.04610419273376465; +104.89344024658203, -0.03483891487121582; +104.9934310913086, -0.02718716859817505; +105.09342956542969, -0.021941959857940674; +105.19342041015625, -0.014685094356536865; +105.29341888427734, -0.0037923455238342285; +105.3934097290039, 0.006556510925292969; +105.49340057373047, 0.011555850505828857; +105.59339904785156, 0.011868774890899658; +105.69338989257812, 0.008910894393920898; +105.79338073730469, 0.0010579824447631836; +105.89337921142578, -0.013232231140136719; +105.99337005615234, -0.029630959033966064; +106.09336853027344, -0.04256516695022583; +106.193359375, -0.05078315734863281; +106.29335021972656, -0.05631893873214722; +106.39334869384766, -0.05850940942764282; +106.49333953857422, -0.05526095628738403; +106.59333801269531, -0.04828721284866333; +106.69332885742188, -0.039674341678619385; +106.79331970214844, -0.03127753734588623; +106.89331817626953, -0.021442770957946777; +106.9933090209961, -0.01294165849685669; +107.09329986572266, -0.009611248970031738; +107.19329833984375, -0.010401010513305664; +107.29328918457031, -0.011324882507324219; +107.3932876586914, -0.010266900062561035; +107.49327850341797, -0.01068413257598877; +107.59326934814453, -0.011041760444641113; +107.69326782226562, -0.008851289749145508; +107.79325866699219, -0.00451505184173584; +107.89324951171875, -0.00321120023727417; +107.99324798583984, -0.0050514936447143555; +108.0932388305664, -0.005863606929779053; +108.1932373046875, -0.006854534149169922; +108.29322814941406, -0.011816620826721191; +108.39321899414062, -0.021412968635559082; +108.49321746826172, -0.03024190664291382; +108.59320831298828, -0.035740435123443604; +108.69319915771484, -0.0427737832069397; +108.79319763183594, -0.05348026752471924; +108.8931884765625, -0.06377696990966797; +108.9931869506836, -0.06771832704544067; +109.09317779541016, -0.06537884473800659; +109.19316864013672, -0.06172060966491699; +109.29316711425781, -0.05730241537094116; +109.39315795898438, -0.05218386650085449; +109.49315643310547, -0.04594773054122925; +109.59314727783203, -0.04010647535324097; +109.6931381225586, -0.037066638469696045; +109.79313659667969, -0.035025179386138916; +109.89312744140625, -0.03127753734588623; +109.99311828613281, -0.025212764739990234; +110.0931167602539, -0.021204352378845215; +110.19310760498047, -0.023253262042999268; +110.29310607910156, -0.027477741241455078; +110.39309692382812, -0.0316128134727478; +110.49308776855469, -0.03726780414581299; +110.59308624267578, -0.043019652366638184; +110.69307708740234, -0.04258006811141968; +110.7930679321289, -0.03567337989807129; +110.89306640625, -0.029183924198150635; +110.99305725097656, -0.027567148208618164; +111.09305572509766, -0.028714537620544434; +111.19304656982422, -0.03080815076828003; +111.29303741455078, -0.035353004932403564; +111.39303588867188, -0.03847479820251465; +111.49302673339844, -0.03705918788909912; +111.59302520751953, -0.031754374504089355; +111.6930160522461, -0.02467632293701172; +111.79300689697266, -0.016495585441589355; +111.89300537109375, -0.008851289749145508; +111.99299621582031, -0.0053942203521728516; +112.09298706054688, -0.005587935447692871; +112.19298553466797, -0.007033348083496094; +112.29297637939453, -0.009775161743164062; +112.39297485351562, -0.01481175422668457; +112.49296569824219, -0.021927058696746826; +112.59295654296875, -0.029630959033966064; +112.69295501708984, -0.037454068660736084; +112.7929458618164, -0.04363059997558594; +112.89293670654297, -0.04454702138900757; +112.99293518066406, -0.041171908378601074; +113.09292602539062, -0.03337860107421875; +113.19292449951172, -0.02041459083557129; +113.29291534423828, -0.005416572093963623; +113.39290618896484, 0.005908310413360596; +113.49290466308594, 0.008083879947662354; +113.5928955078125, 0.004254281520843506; +113.6928939819336, -0.001169741153717041; +113.79288482666016, -0.007137656211853027; +113.89287567138672, -0.013738870620727539; +113.99287414550781, -0.020869076251983643; +114.09286499023438, -0.027298927307128906; +114.19285583496094, -0.03269314765930176; +114.29285430908203, -0.03810226917266846; +114.3928451538086, -0.04477053880691528; +114.49284362792969, -0.04999339580535889; +114.59283447265625, -0.049076974391937256; +114.69282531738281, -0.04200637340545654; +114.7928237915039, -0.03614276647567749; +114.89281463623047, -0.036910176277160645; +114.99280548095703, -0.043176114559173584; +115.09280395507812, -0.05258619785308838; +115.19279479980469, -0.06566941738128662; +115.29279327392578, -0.07994472980499268; +115.39278411865234, -0.0853314995765686; +115.4927749633789, -0.07858872413635254; +115.5927734375, -0.06370246410369873; +115.69276428222656, -0.04894286394119263; +115.79275512695312, -0.0346451997756958; +115.89275360107422, -0.01878291368484497; +115.99274444580078, -0.005111098289489746; +116.09274291992188, 0.0022202730178833008; +116.19273376464844, 0.0012516975402832031; +116.292724609375, -0.0019446015357971191; +116.3927230834961, -0.00467151403427124; +116.49271392822266, -0.005148351192474365; +116.59271240234375, -0.005200505256652832; +116.69270324707031, -0.005431473255157471; +116.79269409179688, -0.005781650543212891; +116.89269256591797, -0.006854534149169922; +116.99268341064453, -0.006489455699920654; +117.0926742553711, -0.008367002010345459; +117.19267272949219, -0.013843178749084473; +117.29266357421875, -0.01940131187438965; +117.39266204833984, -0.02259761095046997; +117.4926528930664, -0.023283064365386963; +117.59264373779297, -0.025935471057891846; +117.69264221191406, -0.028245151042938232; +117.79263305664062, -0.02806633710861206; +117.89262390136719, -0.029750168323516846; +117.99262237548828, -0.03306567668914795; +118.09261322021484, -0.036075711250305176; +118.19261169433594, -0.035509467124938965; +118.2926025390625, -0.037066638469696045; +118.39259338378906, -0.042729079723358154; +118.49259185791016, -0.04704296588897705; +118.59258270263672, -0.045552849769592285; +118.69258117675781, -0.04020333290100098; +118.79257202148438, -0.036753714084625244; +118.89256286621094, -0.03439188003540039; +118.99256134033203, -0.03001093864440918; +119.0925521850586, -0.024549663066864014; +119.19254302978516, -0.023320317268371582; +119.29254150390625, -0.02642720937728882; +119.39253234863281, -0.027999281883239746; +119.4925308227539, -0.024653971195220947; +119.59252166748047, -0.02337247133255005; +119.69251251220703, -0.0284537672996521; +119.79251098632812, -0.036403536796569824; +119.89250183105469, -0.041268765926361084; +119.99249267578125, -0.044189393520355225; +120.09249114990234, -0.048063695430755615; +120.1924819946289, -0.05077570676803589; +120.29248046875, -0.0497475266456604; +120.39247131347656, -0.047713518142700195; +120.49246215820312, -0.049173831939697266; +120.59246063232422, -0.05327165126800537; +120.69245147705078, -0.05504488945007324; +120.79244995117188, -0.05247443914413452; +120.89244079589844, -0.04709511995315552; +120.992431640625, -0.0386163592338562; +121.0924301147461, -0.027827918529510498; +121.19242095947266, -0.020228326320648193; +121.29241180419922, -0.019729137420654297; +121.39241027832031, -0.02256035804748535; +121.49240112304688, -0.02411752939224243; +121.59239959716797, -0.025585293769836426; +121.69239044189453, -0.03055483102798462; +121.7923812866211, -0.0363960862159729; +121.89237976074219, -0.041738152503967285; +121.99237060546875, -0.047363340854644775; +122.09236145019531, -0.051178038120269775; +122.1923599243164, -0.04832446575164795; +122.29235076904297, -0.0387728214263916; +122.39234924316406, -0.03061443567276001; +122.49234008789062, -0.02642720937728882; +122.59233093261719, -0.024400651454925537; +122.69232940673828, -0.025682151317596436; +122.79232025146484, -0.033818185329437256; +122.89231872558594, -0.04575401544570923; +122.9923095703125, -0.05272775888442993; +123.09230041503906, -0.051505863666534424; +123.19229888916016, -0.044114887714385986; +123.29228973388672, -0.03355741500854492; +123.39228057861328, -0.02212822437286377; +123.49227905273438, -0.01169741153717041; +123.59226989746094, -0.002779066562652588; +123.69226837158203, 3.725290298461914e-05; +123.7922592163086, -0.003859400749206543; +123.89225006103516, -0.012412667274475098; +123.99224853515625, -0.017799437046051025; +124.09223937988281, -0.019647181034088135; +124.19223022460938, -0.021904706954956055; +124.29222869873047, -0.022642314434051514; +124.39221954345703, -0.02018362283706665; +124.49221801757812, -0.014029443264007568; +124.59220886230469, -0.010013580322265625; +124.69219970703125, -0.009082257747650146; +124.79219818115234, -0.009588897228240967; +124.8921890258789, -0.009059906005859375; +124.99217987060547, -0.008553266525268555; +125.09217834472656, -0.008590519428253174; +125.19216918945312, -0.008314847946166992; +125.29216766357422, -0.006280839443206787; +125.39215850830078, -0.0012367963790893555; +125.49214935302734, 0.0027567148208618164; +125.59214782714844, 0.003859400749206543; +125.692138671875, 0.0021532177925109863; +125.7921371459961, 0.00016391277313232422; +125.89212799072266, -0.0011324882507324219; +125.99211883544922, -0.003039836883544922; +126.09211730957031, -0.004641711711883545; +126.19210815429688, -0.005498528480529785; +126.29209899902344, -0.0058710575103759766; +126.39209747314453, -0.0074729323387146; +126.4920883178711, -0.010117888450622559; +126.59208679199219, -0.013694167137145996; +126.69207763671875, -0.01749396324157715; +126.79206848144531, -0.018812716007232666; +126.8920669555664, -0.017315149307250977; +126.99205780029297, -0.0130385160446167; +127.09204864501953, -0.011198222637176514; +127.19204711914062, -0.013224780559539795; +127.29203796386719, -0.016510486602783203; +127.39203643798828, -0.020876526832580566; +127.49202728271484, -0.026434659957885742; +127.5920181274414, -0.03456324338912964; +127.6920166015625, -0.039868056774139404; +127.79200744628906, -0.04032254219055176; +127.89200592041016, -0.038020312786102295; +127.99199676513672, -0.03425031900405884; +128.0919952392578, -0.028952956199645996; +128.19198608398438, -0.022038817405700684; +128.29197692871094, -0.016458332538604736; +128.3919677734375, -0.011883676052093506; +128.49195861816406, -0.006571412086486816; +128.5919647216797, -0.001691281795501709; +128.69195556640625, 0.002034008502960205; +128.7919464111328, 0.004813075065612793; +128.89193725585938, 0.00727921724319458; +128.99192810058594, 0.0076070427894592285; +129.09193420410156, 0.004291534423828125; +129.19192504882812, -0.0008568167686462402; +129.2919158935547, -0.0054836273193359375; +129.39190673828125, -0.009797513484954834; +129.4918975830078, -0.015132129192352295; +129.59188842773438, -0.020071864128112793; +129.69189453125, -0.02323836088180542; +129.79188537597656, -0.024653971195220947; +129.89187622070312, -0.028908252716064453; +129.9918670654297, -0.03618746995925903; +130.09185791015625, -0.042654573917388916; +130.19186401367188, -0.046059489250183105; +130.29185485839844, -0.04626810550689697; +130.391845703125, -0.04466623067855835; +130.49183654785156, -0.03834068775177002; +130.59182739257812, -0.027142465114593506; +130.69183349609375, -0.0157281756401062; +130.7918243408203, -0.007420778274536133; +130.89181518554688, -0.003285706043243408; +130.99180603027344, 7.450580596923828e-05; +131.091796875, 0.001087784767150879; +131.19180297851562, -0.002600252628326416; +131.2917938232422, -0.009372830390930176; +131.39178466796875, -0.01461803913116455; +131.4917755126953, -0.013299286365509033; +131.59176635742188, -0.008694827556610107; +131.69175720214844, -0.003293156623840332; +131.79176330566406, 0.005342066287994385; +131.89175415039062, 0.019371509552001953; +131.9917449951172, 0.034108757972717285; +132.09173583984375, 0.04093348979949951; +132.1917266845703, 0.03962963819503784; +132.29173278808594, 0.037088990211486816; +132.3917236328125, 0.03466755151748657; +132.49171447753906, 0.0292360782623291; +132.59170532226562, 0.020042061805725098; +132.6916961669922, 0.0116005539894104; +132.7917022705078, 0.0070035457611083984; +132.89169311523438, 0.0030472874641418457; +132.99168395996094, -0.0015944242477416992; +133.0916748046875, -0.003032386302947998; +133.19166564941406, 0.003680586814880371; +133.2916717529297, 0.015459954738616943; +133.39166259765625, 0.02421438694000244; +133.4916534423828, 0.026904046535491943; +133.59164428710938, 0.025354325771331787; +133.69163513183594, 0.02193450927734375; +133.7916259765625, 0.014625489711761475; +133.89163208007812, 0.00651925802230835; +133.9916229248047, 0.0012069940567016602; +134.09161376953125, 0.0017210841178894043; +134.1916046142578, 0.008478760719299316; +134.29159545898438, 0.020287930965423584; +134.3916015625, 0.03604590892791748; +134.49159240722656, 0.04820525646209717; +134.59158325195312, 0.05677342414855957; +134.6915740966797, 0.06259232759475708; +134.79156494140625, 0.06890296936035156; +134.89157104492188, 0.0718533992767334; +134.99156188964844, 0.0685080885887146; +135.091552734375, 0.06385892629623413; +135.19154357910156, 0.06064772605895996; +135.29153442382812, 0.06092339754104614; +135.39154052734375, 0.06017833948135376; +135.4915313720703, 0.060535967350006104; +135.59152221679688, 0.06572157144546509; +135.69151306152344, 0.07377564907073975; +135.79150390625, 0.07843971252441406; +135.89149475097656, 0.07531046867370605; +135.9915008544922, 0.06953626871109009; +136.09149169921875, 0.06555020809173584; +136.1914825439453, 0.06373226642608643; +136.29147338867188, 0.06569176912307739; +136.39146423339844, 0.07718056440353394; +136.49147033691406, 0.09741634130477905; +136.59146118164062, 0.1206621527671814; +136.6914520263672, 0.1381710171699524; +136.79144287109375, 0.14913082122802734; +136.8914337158203, 0.15253573656082153; +136.99143981933594, 0.14977902173995972; +137.0914306640625, 0.1494958996772766; +137.19142150878906, 0.15169382095336914; +137.29141235351562, 0.15473365783691406; +137.3914031982422, 0.1573711633682251; +137.4914093017578, 0.16879290342330933; +137.59140014648438, 0.1884177327156067; +137.69139099121094, 0.20007789134979248; +137.7913818359375, 0.19825249910354614; +137.89137268066406, 0.19328296184539795; +137.99136352539062, 0.19332021474838257; +138.09136962890625, 0.19222497940063477; +138.1913604736328, 0.18641352653503418; +138.29135131835938, 0.1838579773902893; +138.39134216308594, 0.18952041864395142; +138.4913330078125, 0.1964867115020752; +138.59133911132812, 0.19713491201400757; +138.6913299560547, 0.19566714763641357; +138.79132080078125, 0.19653141498565674; +138.8913116455078, 0.1997053623199463; +138.99130249023438, 0.20475685596466064; +139.09130859375, 0.21230429410934448; +139.19129943847656, 0.22330135107040405; +139.29129028320312, 0.23146718740463257; +139.3912811279297, 0.23633986711502075; +139.49127197265625, 0.24070590734481812; +139.59127807617188, 0.24315714836120605; +139.69126892089844, 0.24161487817764282; +139.791259765625, 0.23631006479263306; +139.89125061035156, 0.2316012978553772; +139.99124145507812, 0.22508949041366577; +140.0912322998047, 0.2174675464630127; +140.1912384033203, 0.2155005931854248; +140.29122924804688, 0.22573024034500122; +140.39122009277344, 0.24390965700149536; +140.4912109375, 0.25866925716400146; +140.59120178222656, 0.2652406692504883; +140.6912078857422, 0.265464186668396; +140.79119873046875, 0.2615898847579956; +140.8911895751953, 0.2547800540924072; +140.99118041992188, 0.24551153182983398; +141.09117126464844, 0.23826956748962402; +141.19117736816406, 0.2370402216911316; +141.29116821289062, 0.24341046810150146; +141.3911590576172, 0.2540498971939087; +141.49114990234375, 0.26331841945648193; +141.5911407470703, 0.27183443307876587; +141.69114685058594, 0.28201937675476074; +141.7911376953125, 0.2974197268486023; +141.89112854003906, 0.3115534782409668; +141.99111938476562, 0.3218427300453186; +142.0911102294922, 0.32825767993927; +142.19110107421875, 0.33542513847351074; +142.29110717773438, 0.3445371985435486; +142.39109802246094, 0.34993141889572144; +142.4910888671875, 0.3492385149002075; +142.59107971191406, 0.34252554178237915; +142.69107055664062, 0.3360956907272339; +142.79107666015625, 0.32848864793777466; +142.8910675048828, 0.3172755241394043; +142.99105834960938, 0.3068670630455017; +143.09104919433594, 0.3049299120903015; +143.1910400390625, 0.3124848008155823; +143.29104614257812, 0.3210008144378662; +143.3910369873047, 0.32657384872436523; +143.49102783203125, 0.3318414092063904; +143.5910186767578, 0.33449381589889526; +143.69100952148438, 0.3333091735839844; +143.791015625, 0.3315359354019165; +143.89100646972656, 0.3328174352645874; +143.99099731445312, 0.3367587924003601; +144.0909881591797, 0.34042447805404663; +144.19097900390625, 0.34900009632110596; +144.2909698486328, 0.3611147403717041; +144.39097595214844, 0.3720968961715698; +144.490966796875, 0.37807971239089966; +144.59095764160156, 0.38017332553863525; +144.69094848632812, 0.3803670406341553; +144.7909393310547, 0.37510693073272705; +144.8909454345703, 0.3652423620223999; +144.99093627929688, 0.3535524010658264; +145.09092712402344, 0.3435090184211731; +145.19091796875, 0.3356263041496277; +145.29090881347656, 0.3312528133392334; +145.3909149169922, 0.3314763307571411; +145.49090576171875, 0.33473968505859375; +145.5908966064453, 0.3371387720108032; +145.69088745117188, 0.33529847860336304; +145.79087829589844, 0.33276528120040894; +145.890869140625, 0.3328770399093628; +145.99087524414062, 0.33629685640335083; +146.0908660888672, 0.3394484519958496; +146.19085693359375, 0.34246593713760376; +146.2908477783203, 0.3505796194076538; +146.39083862304688, 0.3617331385612488; +146.4908447265625, 0.3695264458656311; +146.59083557128906, 0.37185847759246826; +146.69082641601562, 0.3742501139640808; +146.7908172607422, 0.3771930932998657; +146.89080810546875, 0.37792325019836426; +146.99081420898438, 0.3778114914894104; +147.09080505371094, 0.3809109330177307; +147.1907958984375, 0.38504600524902344; +147.29078674316406, 0.3848746418952942; +147.39077758789062, 0.37804245948791504; +147.49078369140625, 0.3689080476760864; +147.5907745361328, 0.36200881004333496; +147.69076538085938, 0.36090612411499023; +147.79075622558594, 0.3649592399597168; +147.8907470703125, 0.3702118992805481; +147.99073791503906, 0.3773719072341919; +148.0907440185547, 0.38467347621917725; +148.19073486328125, 0.38967281579971313; +148.2907257080078, 0.39001554250717163; +148.39071655273438, 0.38795173168182373; +148.49070739746094, 0.3887489438056946; +148.59071350097656, 0.39087235927581787; +148.69070434570312, 0.39152055978775024; +148.7906951904297, 0.39058178663253784; +148.89068603515625, 0.3893449902534485; +148.9906768798828, 0.39082765579223633; +149.09068298339844, 0.39677321910858154; +149.190673828125, 0.4076734185218811; +149.29066467285156, 0.4193931818008423; +149.39065551757812, 0.4276558756828308; +149.4906463623047, 0.4320219159126282; +149.5906524658203, 0.43442100286483765; +149.69064331054688, 0.4347562789916992; +149.79063415527344, 0.43341517448425293; +149.890625, 0.4349052906036377; +149.99061584472656, 0.4413500428199768; +150.09060668945312, 0.4500746726989746; +150.19061279296875, 0.4564449191093445; +150.2906036376953, 0.4568919539451599; +150.39059448242188, 0.45308470726013184; +150.49058532714844, 0.4449039697647095; +150.590576171875, 0.43398886919021606; +150.69058227539062, 0.4227980971336365; +150.7905731201172, 0.4126131534576416; +150.89056396484375, 0.40559470653533936; +150.9905548095703, 0.4017949104309082; +151.09054565429688, 0.4032626748085022; +151.1905517578125, 0.4079490900039673; +151.29054260253906, 0.4119873046875; +151.39053344726562, 0.415116548538208; +151.4905242919922, 0.4211887717247009; +151.59051513671875, 0.43006986379623413; +151.69052124023438, 0.4388540983200073; +151.79051208496094, 0.44508278369903564; +151.8905029296875, 0.45003741979599; +151.99049377441406, 0.4514828324317932; +152.09048461914062, 0.44462084770202637; +152.1904754638672, 0.4318356513977051; +152.2904815673828, 0.4188641905784607; +152.39047241210938, 0.4113614559173584; +152.49046325683594, 0.4097968339920044; +152.5904541015625, 0.4122406244277954; +152.69044494628906, 0.4204884171485901; +152.7904510498047, 0.4332438111305237; +152.89044189453125, 0.4464834928512573; +152.9904327392578, 0.45677274465560913; +153.09042358398438, 0.463142991065979; +153.19041442871094, 0.47040730714797974; +153.29042053222656, 0.4763752222061157; +153.39041137695312, 0.47963857650756836; +153.4904022216797, 0.47982484102249146; +153.59039306640625, 0.4792064428329468; +153.6903839111328, 0.47975778579711914; +153.79039001464844, 0.479966402053833; +153.890380859375, 0.4789009690284729; +153.99037170410156, 0.4772096872329712; +154.09036254882812, 0.47694146633148193; +154.1903533935547, 0.4781186580657959; +154.29034423828125, 0.47988444566726685; +154.39035034179688, 0.48129260540008545; +154.49034118652344, 0.484660267829895; +154.59033203125, 0.4886612296104431; +154.69032287597656, 0.49117952585220337; +154.79031372070312, 0.4913732409477234; +154.89031982421875, 0.4903152585029602; +154.9903106689453, 0.4907846450805664; +155.09030151367188, 0.4940107464790344; +155.19029235839844, 0.5000829696655273; +155.290283203125, 0.5062595009803772; +155.39028930664062, 0.5106255412101746; +155.4902801513672, 0.5152523517608643; +155.59027099609375, 0.5225092172622681; +155.6902618408203, 0.5317255854606628; +155.79025268554688, 0.5396232008934021; +155.8902587890625, 0.5461126565933228; +155.99024963378906, 0.5515590310096741; +156.09024047851562, 0.5530714988708496; +156.1902313232422, 0.5493760108947754; +156.29022216796875, 0.5424469709396362; +156.3902130126953, 0.5398169159889221; +156.49021911621094, 0.5428493022918701; +156.5902099609375, 0.5523189902305603; +156.69020080566406, 0.5674287676811218; +156.79019165039062, 0.5852356553077698; +156.8901824951172, 0.6018728017807007; +156.9901885986328, 0.6103962659835815; +157.09017944335938, 0.6110519170761108; +157.19017028808594, 0.6032735109329224; +157.2901611328125, 0.5901157855987549; +157.39015197753906, 0.575721263885498; +157.4901580810547, 0.5623027682304382; +157.59014892578125, 0.5542859435081482; +157.6901397705078, 0.5527585744857788; +157.79013061523438, 0.5565136671066284; +157.89012145996094, 0.5626082420349121; +157.99012756347656, 0.5675181746482849; +158.09011840820312, 0.5724430084228516; +158.1901092529297, 0.5763843655586243; +158.29010009765625, 0.5785524845123291; +158.3900909423828, 0.5807057023048401; +158.49008178710938, 0.5849525332450867; +158.590087890625, 0.5920082330703735; +158.69007873535156, 0.5970001220703125; +158.79006958007812, 0.5951970815658569; +158.8900604248047, 0.5885064601898193; +158.99005126953125, 0.5831420421600342; +159.09005737304688, 0.5821213126182556; +159.19004821777344, 0.5858615040779114; +159.2900390625, 0.5935877561569214; +159.39002990722656, 0.6062015891075134; +159.49002075195312, 0.6198808550834656; +159.59002685546875, 0.6296411156654358; +159.6900177001953, 0.6353706121444702; +159.79000854492188, 0.6366148591041565; +159.88999938964844, 0.6347000598907471; +159.989990234375, 0.6285384297370911; +160.08999633789062, 0.6203502416610718; +160.1899871826172, 0.6109327077865601; +160.28997802734375, 0.5970597267150879; +160.3899688720703, 0.5797445774078369; +160.48995971679688, 0.5647465586662292; +160.58995056152344, 0.5587264895439148; +160.68995666503906, 0.5602538585662842; +160.78994750976562, 0.567317008972168; +160.8899383544922, 0.5782917141914368; +160.98992919921875, 0.5906671285629272; +161.0899200439453, 0.598318874835968; +161.18992614746094, 0.6019920110702515; +161.2899169921875, 0.604875385761261; +161.38990783691406, 0.6049275398254395; +161.48989868164062, 0.6018728017807007; +161.5898895263672, 0.5985945463180542; +161.6898956298828, 0.5984008312225342; +161.78988647460938, 0.5973652005195618; +161.88987731933594, 0.5928352475166321; +161.9898681640625, 0.5880743265151978; +162.08985900878906, 0.5840659141540527; +162.1898651123047, 0.5791261792182922; +162.28985595703125, 0.5742982029914856; +162.3898468017578, 0.5700737237930298; +162.48983764648438, 0.5675926804542542; +162.58982849121094, 0.5640089511871338; +162.6898193359375, 0.5610883235931396; +162.78982543945312, 0.5587488412857056; +162.8898162841797, 0.5568116903305054; +162.98980712890625, 0.5585402250289917; +163.0897979736328, 0.5631744861602783; +163.18978881835938, 0.5702674388885498; +163.289794921875, 0.5745217204093933; +163.38978576660156, 0.5760416388511658; +163.48977661132812, 0.5731359124183655; +163.5897674560547, 0.5653277039527893; +163.68975830078125, 0.5560815334320068; +163.78976440429688, 0.5494430661201477; +163.88975524902344, 0.5478188395500183; +163.98974609375, 0.5459561944007874; +164.08973693847656, 0.5433186888694763; +164.18972778320312, 0.5404502153396606; +164.2897186279297, 0.5407854914665222; +164.3897247314453, 0.542663037776947; +164.48971557617188, 0.5415305495262146; +164.58970642089844, 0.5398094654083252; +164.689697265625, 0.5406662821769714; +164.78968811035156, 0.5459040403366089; +164.8896942138672, 0.5499571561813354; +164.98968505859375, 0.5503818392753601; +165.0896759033203, 0.5510672926902771; +165.18966674804688, 0.5530118942260742; +165.28965759277344, 0.5534365773200989; +165.38966369628906, 0.5490407347679138; +165.48965454101562, 0.5416497588157654; +165.5896453857422, 0.5362480878829956; +165.68963623046875, 0.5350485444068909; +165.7896270751953, 0.5386993288993835; +165.88963317871094, 0.5453974008560181; +165.9896240234375, 0.5533397197723389; +166.08961486816406, 0.5609095096588135; +166.18960571289062, 0.5669072270393372; +166.2895965576172, 0.5718246102333069; +166.38958740234375, 0.573381781578064; +166.48959350585938, 0.5709156394004822; +166.58958435058594, 0.5649998784065247; +166.6895751953125, 0.5608424544334412; +166.78956604003906, 0.5606561899185181; +166.88955688476562, 0.5620196461677551; +166.98956298828125, 0.5638375878334045; +167.0895538330078, 0.5675628781318665; +167.18954467773438, 0.5733519792556763; +167.28953552246094, 0.578664243221283; +167.3895263671875, 0.5805939435958862; +167.48953247070312, 0.579535961151123; +167.5895233154297, 0.5814433097839355; +167.68951416015625, 0.5867332220077515; +167.7895050048828, 0.595390796661377; +167.88949584960938, 0.6016939878463745; +167.989501953125, 0.6026029586791992; +168.08949279785156, 0.6011947989463806; +168.18948364257812, 0.5946606397628784; +168.2894744873047, 0.5873739719390869; +168.38946533203125, 0.5832016468048096; +168.4894561767578, 0.5853921175003052; +168.58946228027344, 0.5924999713897705; +168.689453125, 0.5985498428344727; +168.78944396972656, 0.6041601300239563; +168.88943481445312, 0.606536865234375; +168.9894256591797, 0.6033256649971008; +169.0894317626953, 0.5959868431091309; +169.18942260742188, 0.5890876054763794; +169.28941345214844, 0.583551824092865; +169.389404296875, 0.5796700716018677; +169.48939514160156, 0.5788952112197876; +169.5894012451172, 0.583551824092865; +169.68939208984375, 0.592358410358429; +169.7893829345703, 0.5997717380523682; +169.88937377929688, 0.6052404642105103; +169.98936462402344, 0.6098523736000061; +170.08937072753906, 0.6147846579551697; +170.18936157226562, 0.61827152967453; +170.2893524169922, 0.6172657012939453; +170.38934326171875, 0.6149262189865112; +170.4893341064453, 0.6148815155029297; +170.58932495117188, 0.6170421838760376; +170.6893310546875, 0.6184279918670654; +170.78932189941406, 0.6152987480163574; +170.88931274414062, 0.6104707717895508; +170.9893035888672, 0.607416033744812; +171.08929443359375, 0.6060376763343811; +171.18930053710938, 0.6045401096343994; +171.28929138183594, 0.6036907434463501; +171.3892822265625, 0.6064325571060181; +171.48927307128906, 0.6105899810791016; +171.58926391601562, 0.6123855710029602; +171.68927001953125, 0.6133764982223511; +171.7892608642578, 0.615239143371582; +171.88925170898438, 0.6162077188491821; +171.98924255371094, 0.614166259765625; +172.0892333984375, 0.6128102540969849; +172.18923950195312, 0.6147176027297974; +172.2892303466797, 0.6158947944641113; +172.38922119140625, 0.6141141057014465; +172.4892120361328, 0.6122216582298279; +172.58920288085938, 0.6146356463432312; +172.68919372558594, 0.6190910935401917; +172.78919982910156, 0.6239041686058044; +172.88919067382812, 0.631086528301239; +172.9891815185547, 0.6413906812667847; +173.08917236328125, 0.6523579359054565; +173.1891632080078, 0.6633177399635315; +173.28916931152344, 0.6750971078872681; +173.38916015625, 0.6868466734886169; +173.48915100097656, 0.6962642073631287; +173.58914184570312, 0.7029697299003601; +173.6891326904297, 0.707283616065979; +173.7891387939453, 0.7054060697555542; +173.88912963867188, 0.6975159049034119; +173.98912048339844, 0.685080885887146; +174.089111328125, 0.672556459903717; +174.18910217285156, 0.6620809435844421; +174.2891082763672, 0.6555542349815369; +174.38909912109375, 0.6540566682815552; +174.4890899658203, 0.6563887000083923; +174.58908081054688, 0.6626620888710022; +174.68907165527344, 0.6707310676574707; +174.7890625, 0.6793290376663208; +174.88906860351562, 0.6857290863990784; +174.9890594482422, 0.6899014115333557; +175.08905029296875, 0.6940066814422607; +175.1890411376953, 0.6980821490287781; +175.28903198242188, 0.7013380527496338; +175.3890380859375, 0.7009357213973999; +175.48902893066406, 0.6971508264541626; +175.58901977539062, 0.6934255361557007; +175.6890106201172, 0.6903558969497681; +175.78900146484375, 0.6901100277900696; +175.88900756835938, 0.6910413503646851; +175.98899841308594, 0.6931126117706299; +176.0889892578125, 0.6964430212974548; +176.18898010253906, 0.6981939077377319; +176.28897094726562, 0.699065625667572; +176.38897705078125, 0.6983131170272827; +176.4889678955078, 0.699259340763092; +176.58895874023438, 0.7044672966003418; +176.68894958496094, 0.711880624294281; +176.7889404296875, 0.7177442312240601; +176.88893127441406, 0.7181614637374878; +176.9889373779297, 0.7133930921554565; +177.08892822265625, 0.7060989737510681; +177.1889190673828, 0.699266791343689; +177.28890991210938, 0.69398432970047; +177.38890075683594, 0.6908848881721497; +177.48890686035156, 0.6888583302497864; +177.58889770507812, 0.6852671504020691; +177.6888885498047, 0.6784647703170776; +177.78887939453125, 0.6683692336082458; +177.8888702392578, 0.658966600894928; +177.98887634277344, 0.6529614329338074; +178.0888671875, 0.6514638662338257; +178.18885803222656, 0.6569549441337585; +178.28884887695312, 0.6661340594291687; +178.3888397216797, 0.6712153553962708; +178.4888458251953, 0.6676465272903442; +178.58883666992188, 0.660337507724762; +178.68882751464844, 0.656910240650177; +178.788818359375, 0.6562098860740662; +178.88880920410156, 0.6559416651725769; +178.98880004882812, 0.6590560078620911; +179.08880615234375, 0.6686821579933167; +179.1887969970703, 0.6815269589424133; +179.28878784179688, 0.690944492816925; +179.38877868652344, 0.6952956318855286; +179.48876953125, 0.6968379020690918; +179.58877563476562, 0.6978586316108704; +179.6887664794922, 0.6968826055526733; +179.78875732421875, 0.6923899054527283; +179.8887481689453, 0.6837695837020874; +179.98873901367188, 0.6744042038917542; +180.0887451171875, 0.6695017218589783; +180.18873596191406, 0.669620931148529; +180.28872680664062, 0.6704479455947876; +180.3887176513672, 0.6699934601783752; +180.48870849609375, 0.6708428263664246; +180.5886993408203, 0.6732866168022156; +180.68870544433594, 0.6714016199111938; +180.7886962890625, 0.6624236702919006; +180.88868713378906, 0.6507039070129395; +180.98867797851562, 0.6407648324966431; +181.0886688232422, 0.6337761878967285; +181.1886749267578, 0.629037618637085; +181.28866577148438, 0.6271377205848694; +181.38865661621094, 0.627860426902771; +181.4886474609375, 0.6325319409370422; +181.58863830566406, 0.6398558616638184; +181.6886444091797, 0.6475523114204407; +181.78863525390625, 0.6523206830024719; +181.8886260986328, 0.6554871797561646; +181.98861694335938, 0.6583407521247864; +182.08860778808594, 0.6584599614143372; +182.18861389160156, 0.6541907787322998; +182.28860473632812, 0.6486177444458008; +182.3885955810547, 0.6474480032920837; +182.48858642578125, 0.6494224071502686; +182.5885772705078, 0.6504356861114502; +182.68856811523438, 0.6501823663711548; +182.78857421875, 0.6510764360427856; +182.88856506347656, 0.6505921483039856; +182.98855590820312, 0.6430149078369141; +183.0885467529297, 0.6312355399131775; +183.18853759765625, 0.6246864795684814; +183.28854370117188, 0.6270557641983032; +183.38853454589844, 0.6346926093101501; +183.488525390625, 0.6427019834518433; +183.58851623535156, 0.6523057818412781; +183.68850708007812, 0.6620138883590698; +183.78851318359375, 0.6679221987724304; +183.8885040283203, 0.6702020764350891; +183.98849487304688, 0.6738528609275818; +184.08848571777344, 0.6818696856498718; +184.1884765625, 0.6904229521751404; +184.28848266601562, 0.6961822509765625; +184.3884735107422, 0.7005631923675537; +184.48846435546875, 0.7042959332466125; +184.5884552001953, 0.7027983665466309; +184.68844604492188, 0.6942972540855408; +184.78843688964844, 0.6833076477050781; +184.88844299316406, 0.6741434335708618; +184.98843383789062, 0.666588544845581; +185.0884246826172, 0.6576254963874817; +185.18841552734375, 0.6491765379905701; +185.2884063720703, 0.6453469395637512; +185.38841247558594, 0.6488636136054993; +185.4884033203125, 0.6581470370292664; +185.58839416503906, 0.6674453616142273; +185.68838500976562, 0.6743669509887695; +185.7883758544922, 0.6802752614021301; +185.8883819580078, 0.6878077983856201; +185.98837280273438, 0.6947219371795654; +186.08836364746094, 0.6983280181884766; +186.1883544921875, 0.697307288646698; +186.28834533691406, 0.6927922368049622; +186.3883514404297, 0.6876438856124878; +186.48834228515625, 0.6823837757110596; +186.5883331298828, 0.6750822067260742; +186.68832397460938, 0.667184591293335; +186.78831481933594, 0.6629973649978638; +186.8883056640625, 0.665612518787384; +186.98831176757812, 0.6716921925544739; +187.0883026123047, 0.6775930523872375; +187.18829345703125, 0.6839409470558167; +187.2882843017578, 0.6894320249557495; +187.38827514648438, 0.6939172744750977; +187.48828125, 0.6961673498153687; +187.58827209472656, 0.6964579224586487; +187.68826293945312, 0.6949007511138916; +187.7882537841797, 0.6927624344825745; +187.88824462890625, 0.6915554404258728; +187.98825073242188, 0.6904155015945435; +188.08824157714844, 0.6892159581184387; +188.188232421875, 0.6878748536109924; +188.28822326660156, 0.6885379552841187; +188.38821411132812, 0.6920993328094482; +188.48822021484375, 0.6973594427108765; +188.5882110595703, 0.7023438811302185; +188.68820190429688, 0.704444944858551; +188.78819274902344, 0.705815851688385; +188.88818359375, 0.7073134183883667; +188.98817443847656, 0.706993043422699; +189.0881805419922, 0.7061287760734558; +189.18817138671875, 0.7075369358062744; +189.2881622314453, 0.7118359208106995; +189.38815307617188, 0.7149726152420044; +189.48814392089844, 0.7139667868614197; +189.58815002441406, 0.7105693221092224; +189.68814086914062, 0.7076337933540344; +189.7881317138672, 0.7070302963256836; +189.88812255859375, 0.7100701332092285; +189.9881134033203, 0.7151961326599121; +190.08811950683594, 0.7227286696434021; +190.1881103515625, 0.7343888282775879; +190.28810119628906, 0.7478818297386169; +190.38809204101562, 0.757753849029541; +190.4880828857422, 0.7612705230712891; +190.5880889892578, 0.7597655057907104; +190.68807983398438, 0.7522180676460266; +190.78807067871094, 0.7368847727775574; +190.8880615234375, 0.718340277671814; +190.98805236816406, 0.7039755582809448; +191.08804321289062, 0.6941482424736023; +191.18804931640625, 0.6894990801811218; +191.2880401611328, 0.689871609210968; +191.38803100585938, 0.6950795650482178; +191.48802185058594, 0.6986483931541443; +191.5880126953125, 0.6955116987228394; +191.68801879882812, 0.692322850227356; +191.7880096435547, 0.6926804780960083; +191.88800048828125, 0.6971731781959534; +191.9879913330078, 0.7032975554466248; +192.08798217773438, 0.7107406854629517; +192.18798828125, 0.7216259837150574; +192.28797912597656, 0.7304325699806213; +192.38796997070312, 0.7342696189880371; +192.4879608154297, 0.7313787937164307; +192.58795166015625, 0.7232949137687683; +192.68795776367188, 0.7143095135688782; +192.78794860839844, 0.7069110870361328; +192.887939453125, 0.7054954767227173; +192.98793029785156, 0.7091015577316284; +193.08792114257812, 0.7164925336837769; +193.1879119873047, 0.72517991065979; +193.2879180908203, 0.7341206073760986; +193.38790893554688, 0.7431507110595703; +193.48789978027344, 0.7505863904953003; +193.587890625, 0.7552579045295715; +193.68788146972656, 0.758729875087738; +193.7878875732422, 0.7627531886100769; +193.88787841796875, 0.7680505514144897; +193.9878692626953, 0.7697120308876038; +194.08786010742188, 0.7661134004592896; +194.18785095214844, 0.761568546295166; +194.28785705566406, 0.7599592208862305; +194.38784790039062, 0.7610544562339783; +194.4878387451172, 0.760987401008606; +194.58782958984375, 0.7600784301757812; +194.6878204345703, 0.759512186050415; +194.78782653808594, 0.7572248578071594; +194.8878173828125, 0.7522627711296082; +194.98780822753906, 0.7461979985237122; +195.08779907226562, 0.7431730628013611; +195.1877899169922, 0.7474571466445923; +195.28778076171875, 0.7568150758743286; +195.38778686523438, 0.7691308856010437; +195.48777770996094, 0.7813945412635803; +195.5877685546875, 0.7905438542366028; +195.68775939941406, 0.7940977811813354; +195.78775024414062, 0.7913634181022644; +195.88775634765625, 0.7882118225097656; +195.9877471923828, 0.7876232266426086; +196.08773803710938, 0.7877424359321594; +196.18772888183594, 0.7895976305007935; +196.2877197265625, 0.7947087287902832; +196.38772583007812, 0.8027106523513794; +196.4877166748047, 0.8082836866378784; +196.58770751953125, 0.8099377155303955; +196.6876983642578, 0.8102506399154663; +196.78768920898438, 0.8101612329483032; +196.8876953125, 0.8078962564468384; +196.98768615722656, 0.8033141493797302; +197.08767700195312, 0.7999911904335022; +197.1876678466797, 0.7974281907081604; +197.28765869140625, 0.7938742637634277; +197.3876495361328, 0.7880628108978271; +197.48765563964844, 0.7835254073143005; +197.587646484375, 0.7816329598426819; +197.68763732910156, 0.7800757884979248; +197.78762817382812, 0.7785484194755554; +197.8876190185547, 0.779367983341217; +197.9876251220703, 0.7847398519515991; +198.08761596679688, 0.7918700575828552; +198.18760681152344, 0.7984861731529236; +198.28759765625, 0.8019357919692993; +198.38758850097656, 0.8017271757125854; +198.4875946044922, 0.7977932691574097; +198.58758544921875, 0.7920116186141968; +198.6875762939453, 0.7881596684455872; +198.78756713867188, 0.7836371660232544; +198.88755798339844, 0.7784292101860046; +198.987548828125, 0.7754862308502197; +199.08755493164062, 0.7789582014083862; +199.1875457763672, 0.7869228720664978; +199.28753662109375, 0.7911399006843567; +199.3875274658203, 0.790812075138092; +199.48751831054688, 0.7916167378425598; +199.5875244140625, 0.7965937256813049; +199.68751525878906, 0.8004680275917053; +199.78750610351562, 0.7986128330230713; +199.8874969482422, 0.7933154702186584; +199.98748779296875, 0.7917433977127075; +200.08749389648438, 0.79345703125; +200.18748474121094, 0.7947161793708801; +200.2874755859375, 0.7948130369186401; +200.38746643066406, 0.7986649870872498; +200.48745727539062, 0.8046552538871765; +200.58746337890625, 0.8065253496170044; +200.6874542236328, 0.8018985390663147; +200.78744506835938, 0.7939636707305908; +200.88743591308594, 0.7860288023948669; +200.9874267578125, 0.7761716842651367; +201.08741760253906, 0.7700100541114807; +201.1874237060547, 0.7698535919189453; +201.28741455078125, 0.7755830883979797; +201.3874053955078, 0.7810220122337341; +201.48739624023438, 0.7824227213859558; +201.58738708496094, 0.7787644863128662; +201.68739318847656, 0.7705762982368469; +201.78738403320312, 0.7633566856384277; +201.8873748779297, 0.7586255669593811; +201.98736572265625, 0.7560178637504578; +202.0873565673828, 0.757068395614624; +202.18736267089844, 0.7638782262802124; +202.287353515625, 0.7743388414382935; +202.38734436035156, 0.7807835936546326; +202.48733520507812, 0.7818266749382019; +202.5873260498047, 0.7846951484680176; +202.6873321533203, 0.7894113659858704; +202.78732299804688, 0.7924512028694153; +202.88731384277344, 0.7910281419754028; +202.9873046875, 0.7886365056037903; +203.08729553222656, 0.7863268256187439; +203.18728637695312, 0.7795393466949463; +203.28729248046875, 0.7694140076637268; +203.3872833251953, 0.7596313953399658; +203.48727416992188, 0.7518380880355835; +203.58726501464844, 0.743083655834198; +203.687255859375, 0.7322356104850769; +203.78726196289062, 0.7232949137687683; +203.8872528076172, 0.7190629839897156; +203.98724365234375, 0.719994306564331; +204.0872344970703, 0.7243603467941284; +204.18722534179688, 0.734373927116394; +204.2872314453125, 0.7491335272789001; +204.38722229003906, 0.7642284035682678; +204.48721313476562, 0.7745102047920227; +204.5872039794922, 0.7796958088874817; +204.68719482421875, 0.7829293608665466; +204.78720092773438, 0.7822588086128235; +204.88719177246094, 0.7789433002471924; +204.9871826171875, 0.7750913500785828; +205.08717346191406, 0.7752403616905212; +205.18716430664062, 0.7759183645248413; +205.2871551513672, 0.7736757397651672; +205.3871612548828, 0.7694214582443237; +205.48715209960938, 0.7633492350578308; +205.58714294433594, 0.7585957646369934; +205.6871337890625, 0.7516816258430481; +205.78712463378906, 0.7454901933670044; +205.8871307373047, 0.7421523332595825; +205.98712158203125, 0.7431209087371826; +206.0871124267578, 0.7478594779968262; +206.18710327148438, 0.7472559809684753; +206.28709411621094, 0.7413625717163086; +206.38710021972656, 0.734962522983551; +206.48709106445312, 0.7336363196372986; +206.5870819091797, 0.7339119911193848; +206.68707275390625, 0.7301792502403259; +206.7870635986328, 0.7289648056030273; +206.88706970214844, 0.7354766130447388; +206.987060546875, 0.7450059056282043; +207.08705139160156, 0.7494911551475525; +207.18704223632812, 0.7502064108848572; +207.2870330810547, 0.7544234395027161; +207.38702392578125, 0.7581561803817749; +207.48703002929688, 0.757075846195221; +207.58702087402344, 0.7512867450714111; +207.68701171875, 0.7467195391654968; +207.78700256347656, 0.7442235946655273; +207.88699340820312, 0.7410943508148193; +207.98699951171875, 0.7405206561088562; +208.0869903564453, 0.7425025105476379; +208.18698120117188, 0.7457584142684937; +208.28697204589844, 0.74758380651474; +208.386962890625, 0.7484033703804016; +208.48696899414062, 0.7507950067520142; +208.5869598388672, 0.7524266839027405; +208.68695068359375, 0.751793384552002; +208.7869415283203, 0.7498636841773987; +208.88693237304688, 0.7478073239326477; +208.9869384765625, 0.7484033703804016; +209.08692932128906, 0.7513388991355896; +209.18692016601562, 0.7570162415504456; +209.2869110107422, 0.7627904415130615; +209.38690185546875, 0.7636174559593201; +209.4868927001953, 0.7591694593429565; +209.58689880371094, 0.7496923208236694; +209.6868896484375, 0.7377341389656067; +209.78688049316406, 0.72479248046875; +209.88687133789062, 0.713646411895752; +209.9868621826172, 0.7084459066390991; +210.0868682861328, 0.7077604532241821; +210.18685913085938, 0.7120966911315918; +210.28684997558594, 0.7201284170150757; +210.3868408203125, 0.7303953170776367; +210.48683166503906, 0.7425248622894287; +210.5868377685547, 0.7567554712295532; +210.68682861328125, 0.7728412747383118; +210.7868194580078, 0.7833167910575867; +210.88681030273438, 0.7852837443351746; +210.98680114746094, 0.7828250527381897; +211.08680725097656, 0.7776618003845215; +211.18679809570312, 0.7708370685577393; +211.2867889404297, 0.7632598280906677; +211.38677978515625, 0.7604807615280151; +211.4867706298828, 0.7604211568832397; +211.58676147460938, 0.7565319538116455; +211.686767578125, 0.7508248090744019; +211.78675842285156, 0.7450804114341736; +211.88674926757812, 0.7421448826789856; +211.9867401123047, 0.7417872548103333; +212.08673095703125, 0.7434114813804626; +212.18673706054688, 0.7482916116714478; +212.28672790527344, 0.752478837966919; +212.38671875, 0.7577016949653625; +212.48670959472656, 0.7638335227966309; +212.58670043945312, 0.7689967751502991; +212.68670654296875, 0.7732585072517395; +212.7866973876953, 0.7751360535621643; +212.88668823242188, 0.7737874984741211; +212.98667907714844, 0.767238438129425; +213.086669921875, 0.7551312446594238; +213.18667602539062, 0.7418543100357056; +213.2866668701172, 0.7327571511268616; +213.38665771484375, 0.7309615612030029; +213.4866485595703, 0.7378831505775452; +213.58663940429688, 0.7504895329475403; +213.68663024902344, 0.7642433047294617; +213.78663635253906, 0.7724538445472717; +213.88662719726562, 0.7715821266174316; +213.9866180419922, 0.7640570402145386; +214.08660888671875, 0.7552579045295715; +214.1865997314453, 0.74777752161026; +214.28660583496094, 0.7430240511894226; +214.3865966796875, 0.743381679058075; +214.48658752441406, 0.7474645972251892; +214.58657836914062, 0.754043459892273; +214.6865692138672, 0.759027898311615; +214.7865753173828, 0.7624253630638123; +214.88656616210938, 0.7665455341339111; +214.98655700683594, 0.7715374231338501; +215.0865478515625, 0.7771030068397522; +215.18653869628906, 0.7768198847770691; +215.28652954101562, 0.7680654525756836; +215.38653564453125, 0.7553920149803162; +215.4865264892578, 0.743962824344635; +215.58651733398438, 0.7355362176895142; +215.68650817871094, 0.7276013493537903; +215.7864990234375, 0.7221922278404236; +215.88650512695312, 0.7228106260299683; +215.9864959716797, 0.7261112332344055; +216.08648681640625, 0.7256567478179932; +216.1864776611328, 0.7204562425613403; +216.28646850585938, 0.7213801145553589; +216.386474609375, 0.7332935929298401; +216.48646545410156, 0.7533356547355652; +216.58645629882812, 0.7707998156547546; +216.6864471435547, 0.784061849117279; +216.78643798828125, 0.7935091853141785; +216.88644409179688, 0.7972046732902527; +216.98643493652344, 0.7944479584693909; +217.08642578125, 0.7868781685829163; +217.18641662597656, 0.7797107100486755; +217.28640747070312, 0.7742345333099365; +217.3863983154297, 0.7717758417129517; +217.4864044189453, 0.7721036672592163; +217.58639526367188, 0.7721632719039917; +217.68638610839844, 0.7674917578697205; +217.786376953125, 0.7620826363563538; +217.88636779785156, 0.7623583078384399; +217.9863739013672, 0.7684901356697083; +218.08636474609375, 0.7718801498413086; +218.1863555908203, 0.7710382342338562; +218.28634643554688, 0.770077109336853; +218.38633728027344, 0.7720217108726501; +218.48634338378906, 0.7716938853263855; +218.58633422851562, 0.7659420371055603; +218.6863250732422, 0.760398805141449; +218.78631591796875, 0.7589086890220642; +218.8863067626953, 0.7621124386787415; +218.98631286621094, 0.7643401622772217; +219.0863037109375, 0.7626339793205261; +219.18629455566406, 0.7594302296638489; +219.28628540039062, 0.7551535964012146; +219.3862762451172, 0.7508769631385803; +219.48626708984375, 0.7461830973625183; +219.58627319335938, 0.7427483797073364; +219.68626403808594, 0.743478536605835; +219.7862548828125, 0.7487013936042786; +219.88624572753906, 0.7572174072265625; +219.98623657226562, 0.7641911506652832; +220.08624267578125, 0.7682144641876221; +220.1862335205078, 0.768713653087616; +220.28622436523438, 0.7687360048294067; +220.38621520996094, 0.7681623101234436; +220.4862060546875, 0.7680729031562805; +220.58621215820312, 0.7716640830039978; +220.6862030029297, 0.7786303758621216; +220.78619384765625, 0.7869154214859009; +220.8861846923828, 0.7898285984992981; +220.98617553710938, 0.7875114679336548; +221.086181640625, 0.7834956049919128; +221.18617248535156, 0.7806122303009033; +221.28616333007812, 0.7771402597427368; +221.3861541748047, 0.7718279957771301; +221.48614501953125, 0.7701069116592407; +221.5861358642578, 0.7739365100860596; +221.68614196777344, 0.7796883583068848; +221.7861328125, 0.7806196808815002; +221.88612365722656, 0.7776468992233276; +221.98611450195312, 0.7754266262054443; +222.0861053466797, 0.773109495639801; +222.1861114501953, 0.7681921124458313; +222.28610229492188, 0.7600262761116028; +222.38609313964844, 0.7534772157669067; +222.486083984375, 0.7509812712669373; +222.58607482910156, 0.7532387971878052; +222.6860809326172, 0.7576644420623779; +222.78607177734375, 0.7614791393280029; +222.8860626220703, 0.7632598280906677; +222.98605346679688, 0.7635578513145447; +223.08604431152344, 0.7654651999473572; +223.18605041503906, 0.7675513625144958; +223.28604125976562, 0.7698014378547668; +223.3860321044922, 0.7720813155174255; +223.48602294921875, 0.7779374718666077; +223.5860137939453, 0.7865503430366516; +223.68600463867188, 0.7940083742141724; +223.7860107421875, 0.7971078157424927; +223.88600158691406, 0.7963404059410095; +223.98599243164062, 0.7972791790962219; +224.0859832763672, 0.7990673184394836; +224.18597412109375, 0.8010119199752808; +224.28598022460938, 0.8009150624275208; +224.38597106933594, 0.8012726902961731; +224.4859619140625, 0.8037537336349487; +224.58595275878906, 0.804804265499115; +224.68594360351562, 0.8032321929931641; +224.78594970703125, 0.798933207988739; +224.8859405517578, 0.7985755801200867; +224.98593139648438, 0.8037909865379333; +225.08592224121094, 0.8097812533378601; +225.1859130859375, 0.8140578866004944; +225.28591918945312, 0.8160024881362915; +225.3859100341797, 0.8184537291526794; +225.48590087890625, 0.817619264125824; +225.5858917236328, 0.8124187588691711; +225.68588256835938, 0.8075088262557983; +225.78587341308594, 0.8036196231842041; +225.88587951660156, 0.8017197251319885; +225.98587036132812, 0.8004829287528992; +226.0858612060547, 0.8017048239707947; +226.18585205078125, 0.8061006665229797; +226.2858428955078, 0.8111223578453064; +226.38584899902344, 0.8177533745765686; +226.48583984375, 0.8239820599555969; +226.58583068847656, 0.8297935128211975; +226.68582153320312, 0.8332580327987671; +226.7858123779297, 0.8330643177032471; +226.8858184814453, 0.8285492658615112; +226.98580932617188, 0.8201822638511658; +227.08580017089844, 0.812239944934845; +227.185791015625, 0.8046627044677734; +227.28578186035156, 0.7964372634887695; +227.3857879638672, 0.7869452238082886; +227.48577880859375, 0.7805079221725464; +227.5857696533203, 0.7808282971382141; +227.68576049804688, 0.7866472005844116; +227.78575134277344, 0.7944181561470032; +227.8857421875, 0.802360475063324; +227.98574829101562, 0.811547040939331; +228.0857391357422, 0.8228644728660583; +228.18572998046875, 0.8340626955032349; +228.2857208251953, 0.8406192064285278; +228.38571166992188, 0.8429735898971558; +228.4857177734375, 0.844515860080719; +228.58570861816406, 0.8477717638015747; +228.68569946289062, 0.8492916822433472; +228.7856903076172, 0.8459612727165222; +228.88568115234375, 0.8411109447479248; +228.98568725585938, 0.8357912302017212; +229.08567810058594, 0.8318871259689331; +229.1856689453125, 0.8281096816062927; +229.28565979003906, 0.8268430829048157; +229.38565063476562, 0.8294656872749329; +229.48565673828125, 0.8301511406898499; +229.5856475830078, 0.8297786116600037; +229.68563842773438, 0.8295997977256775; +229.78562927246094, 0.8314847946166992; +229.8856201171875, 0.8331164717674255; +229.98561096191406, 0.8334442973136902; +230.0856170654297, 0.8372664451599121; +230.18560791015625, 0.8415281772613525; +230.2855987548828, 0.8412450551986694; +230.38558959960938, 0.835902988910675; +230.48558044433594, 0.8298680186271667; +230.58558654785156, 0.824563205242157; +230.68557739257812, 0.8193701505661011; +230.7855682373047, 0.8185729384422302; +230.88555908203125, 0.8246153593063354; +230.9855499267578, 0.8343532681465149; +231.08555603027344, 0.8413642644882202; +231.185546875, 0.8452236652374268; +231.28553771972656, 0.847943127155304; +231.38552856445312, 0.8489340543746948; +231.4855194091797, 0.8480846881866455; +231.58551025390625, 0.8466839790344238; +231.68551635742188, 0.8456185460090637; +231.78550720214844, 0.8455589413642883; +231.885498046875, 0.8450672030448914; +231.98548889160156, 0.844031572341919; +232.08547973632812, 0.8422955870628357; +232.18548583984375, 0.8424222469329834; +232.2854766845703, 0.8464008569717407; +232.38546752929688, 0.8510798215866089; +232.48545837402344, 0.8548498153686523; +232.58544921875, 0.8580759167671204; +232.68545532226562, 0.8612871170043945; +232.7854461669922, 0.8601471781730652; +232.88543701171875, 0.8557215332984924; +232.9854278564453, 0.8513182401657104; +233.08541870117188, 0.8481591939926147; +233.1854248046875, 0.8415132761001587; +233.28541564941406, 0.8300840854644775; +233.38540649414062, 0.8212849497795105; +233.4853973388672, 0.8180961012840271; +233.58538818359375, 0.818207859992981; +233.6853790283203, 0.8165761828422546; +233.78538513183594, 0.8147880434989929; +233.8853759765625, 0.8194297552108765; +233.98536682128906, 0.8280128240585327; +234.08535766601562, 0.8349940180778503; +234.1853485107422, 0.8365362882614136; +234.2853546142578, 0.8375123143196106; +234.38534545898438, 0.8445903658866882; +234.48533630371094, 0.8523762226104736; +234.5853271484375, 0.8539333939552307; +234.68531799316406, 0.845007598400116; +234.7853240966797, 0.833265483379364; +234.88531494140625, 0.8246973156929016; +234.9853057861328, 0.8194595575332642; +235.08529663085938, 0.8165985345840454; +235.18528747558594, 0.817127525806427; +235.28529357910156, 0.8221566677093506; +235.38528442382812, 0.8272677659988403; +235.4852752685547, 0.8289217948913574; +235.58526611328125, 0.8254274725914001; +235.6852569580078, 0.8204728364944458; +235.78524780273438, 0.818990170955658; +235.88525390625, 0.8210018277168274; +235.98524475097656, 0.8257627487182617; +236.08523559570312, 0.8308291435241699; +236.1852264404297, 0.8350089192390442; +236.28521728515625, 0.8375272154808044; +236.38522338867188, 0.8345544338226318; +236.48521423339844, 0.8296221494674683; +236.585205078125, 0.8253306150436401; +236.68519592285156, 0.8215233683586121; +236.78518676757812, 0.8185878396034241; +236.88519287109375, 0.8170157670974731; +236.9851837158203, 0.8205845952033997; +237.08517456054688, 0.8269399404525757; +237.18516540527344, 0.8293166756629944; +237.28515625, 0.8281022310256958; +237.38516235351562, 0.8269399404525757; +237.4851531982422, 0.8258894085884094; +237.58514404296875, 0.8210465312004089; +237.6851348876953, 0.8114725351333618; +237.78512573242188, 0.8046850562095642; +237.88511657714844, 0.8044466376304626; +237.98512268066406, 0.8057355880737305; +238.08511352539062, 0.8036941289901733; +238.1851043701172, 0.7993429899215698; +238.28509521484375, 0.7977783679962158; +238.3850860595703, 0.8033290505409241; +238.48509216308594, 0.8124783635139465; +238.5850830078125, 0.8196160197257996; +238.68507385253906, 0.8213892579078674; +238.78506469726562, 0.8181482553482056; +238.8850555419922, 0.8146092295646667; +238.9850616455078, 0.8096098899841309; +239.08505249023438, 0.8036419749259949; +239.18504333496094, 0.7988959550857544; +239.2850341796875, 0.7994696497917175; +239.38502502441406, 0.8053705096244812; +239.4850311279297, 0.8120089769363403; +239.58502197265625, 0.8151009678840637; +239.6850128173828, 0.8146464824676514; +239.78500366210938, 0.8118003606796265; +239.88499450683594, 0.808030366897583; +239.9849853515625, 0.8029043674468994; +240.08499145507812, 0.7934197783470154; +240.1849822998047, 0.7813200354576111; +240.28497314453125, 0.7698386907577515; +240.3849639892578, 0.7641986012458801; +240.48495483398438, 0.7644146680831909; +240.5849609375, 0.766754150390625; +240.68495178222656, 0.7704272866249084; +240.78494262695312, 0.7751286029815674; +240.8849334716797, 0.7835999131202698; +240.98492431640625, 0.7947683334350586; +241.08493041992188, 0.8036419749259949; +241.18492126464844, 0.8089244365692139; +241.284912109375, 0.8142665028572083; +241.38490295410156, 0.8202642202377319; +241.48489379882812, 0.8217617869377136; +241.58489990234375, 0.8143559098243713; +241.6848907470703, 0.8040890097618103; +241.78488159179688, 0.7966682314872742; +241.88487243652344, 0.7910281419754028; +241.98486328125, 0.786222517490387; +242.08485412597656, 0.7831156253814697; +242.1848602294922, 0.7821545004844666; +242.28485107421875, 0.7827877998352051; +242.3848419189453, 0.7856413722038269; +242.48483276367188, 0.7905662059783936; +242.58482360839844, 0.793851912021637; +242.68482971191406, 0.7924064993858337; +242.78482055664062, 0.7878690958023071; +242.8848114013672, 0.7805228233337402; +242.98480224609375, 0.7720142602920532; +243.0847930908203, 0.7652640342712402; +243.18479919433594, 0.7631182670593262; +243.2847900390625, 0.7650479674339294; +243.38478088378906, 0.7699355483055115; +243.48477172851562, 0.7767155766487122; +243.5847625732422, 0.7843226194381714; +243.6847686767578, 0.7887706160545349; +243.78475952148438, 0.7899776101112366; +243.88475036621094, 0.7901191711425781; +243.9847412109375, 0.7906332612037659; +244.08473205566406, 0.7906556129455566; +244.18472290039062, 0.7865652441978455; +244.28472900390625, 0.7796064019203186; +244.3847198486328, 0.7723793387413025; +244.48471069335938, 0.76274573802948; +244.58470153808594, 0.7480159401893616; +244.6846923828125, 0.7316917181015015; +244.78469848632812, 0.7209330797195435; +244.8846893310547, 0.7176697254180908; +244.98468017578125, 0.7154643535614014; +245.0846710205078, 0.7153227925300598; +245.18466186523438, 0.7199198007583618; +245.28466796875, 0.7284283638000488; +245.38465881347656, 0.7365867495536804; +245.48464965820312, 0.739656388759613; +245.5846405029297, 0.7406473159790039; +245.68463134765625, 0.7383078336715698; +245.78463745117188, 0.7338747382164001; +245.88462829589844, 0.7284730672836304; +245.984619140625, 0.7224157452583313; +246.08460998535156, 0.7178857922554016; +246.18460083007812, 0.7139667868614197; +246.2845916748047, 0.7148385047912598; +246.3845977783203, 0.7201135158538818; +246.48458862304688, 0.7257983088493347; +246.58457946777344, 0.730171799659729; +246.6845703125, 0.732816755771637; +246.78456115722656, 0.7368624210357666; +246.8845672607422, 0.7404834032058716; +246.98455810546875, 0.7407888770103455; +247.0845489501953, 0.7380098104476929; +247.18453979492188, 0.7338151335716248; +247.28453063964844, 0.7318258285522461; +247.38453674316406, 0.7311701774597168; +247.48452758789062, 0.7306486368179321; +247.5845184326172, 0.7316321134567261; +247.68450927734375, 0.7364004850387573; +247.7845001220703, 0.7426217198371887; +247.88450622558594, 0.7453560829162598; +247.9844970703125, 0.7436424493789673; +248.08448791503906, 0.7388368248939514; +248.18447875976562, 0.7319152355194092; +248.2844696044922, 0.7214397192001343; +248.38446044921875, 0.7130429148674011; +248.48446655273438, 0.7102116942405701; +248.58445739746094, 0.7119551301002502; +248.6844482421875, 0.7167905569076538; +248.78443908691406, 0.7230937480926514; +248.88442993164062, 0.731542706489563; +248.98443603515625, 0.736624002456665; +249.0844268798828, 0.7364898920059204; +249.18441772460938, 0.7348507642745972; +249.28440856933594, 0.7336065173149109; +249.3843994140625, 0.7340312004089355; +249.48440551757812, 0.735357403755188; +249.5843963623047, 0.7369369268417358; +249.68438720703125, 0.7382184267044067; +249.7843780517578, 0.737704336643219; +249.88436889648438, 0.7380768656730652; +249.98435974121094, 0.7384419441223145; +250.08436584472656, 0.7349476218223572; +250.18435668945312, 0.7285475730895996; +250.2843475341797, 0.7234513759613037; +250.38433837890625, 0.7242932915687561; +250.4843292236328, 0.7282271981239319; +250.58433532714844, 0.7331892848014832; +250.684326171875, 0.74053555727005; +250.78431701660156, 0.7498413324356079; +250.88430786132812, 0.7576793432235718; +250.9842987060547, 0.7600411772727966; +251.0843048095703, 0.7580295205116272; +251.18429565429688, 0.7563382387161255; +251.28428649902344, 0.7550790905952454; +251.38427734375, 0.7519498467445374; +251.48426818847656, 0.7464587688446045; +251.5842742919922, 0.7401853799819946; +251.68426513671875, 0.7335320115089417; +251.7842559814453, 0.7239058613777161; +251.88424682617188, 0.7128864526748657; +251.98423767089844, 0.7064417004585266; +252.084228515625, 0.7072016596794128; +252.18423461914062, 0.7118061184883118; +252.2842254638672, 0.7165074348449707; +252.38421630859375, 0.7213801145553589; +252.4842071533203, 0.7264316082000732; +252.58419799804688, 0.7277056574821472; +252.6842041015625, 0.7246211171150208; +252.78419494628906, 0.7212609052658081; +252.88418579101562, 0.7205307483673096; +252.9841766357422, 0.7207766175270081; +253.08416748046875, 0.7199198007583618; +253.18417358398438, 0.719211995601654; +253.28416442871094, 0.7200688123703003; +253.3841552734375, 0.7202327251434326; +253.48414611816406, 0.7191672921180725; +253.58413696289062, 0.718727707862854; +253.68414306640625, 0.7211789488792419; +253.7841339111328, 0.7264167070388794; +253.88412475585938, 0.7308945059776306; +253.98411560058594, 0.7345005869865417; +254.0841064453125, 0.7383227348327637; +254.18409729003906, 0.7408484816551208; +254.2841033935547, 0.7426068186759949; +254.38409423828125, 0.7450878620147705; +254.4840850830078, 0.7477924227714539; +254.58407592773438, 0.7498636841773987; +254.68406677246094, 0.7507503032684326; +254.78407287597656, 0.7525980472564697; +254.88406372070312, 0.7534772157669067; +254.9840545654297, 0.7497817277908325; +255.08404541015625, 0.7448196411132812; +255.1840362548828, 0.7403045892715454; +255.28404235839844, 0.7361695170402527; +255.384033203125, 0.73203444480896; +255.48402404785156, 0.7285177707672119; +255.58401489257812, 0.7272586226463318; +255.6840057373047, 0.7285550236701965; +255.7840118408203, 0.7306113839149475; +255.88400268554688, 0.7312968373298645; +255.98399353027344, 0.7269978523254395; +256.083984375, 0.720880925655365; +256.1839904785156, 0.7163956761360168; +256.2839660644531, 0.7129758596420288; +256.38397216796875, 0.7126182317733765; +256.48394775390625, 0.7141456007957458; +256.5839538574219, 0.7192641496658325; +256.6839599609375, 0.7230564951896667; +256.783935546875, 0.7250681519508362; +256.8839416503906, 0.7255971431732178; +256.9839172363281, 0.7221251726150513; +257.08392333984375, 0.7159411907196045; +257.1839294433594, 0.7080510258674622; +257.2839050292969, 0.7039979100227356; +257.3839111328125, 0.7032975554466248; +257.48388671875, 0.7051154971122742; +257.5838928222656, 0.7099583745002747; +257.68389892578125, 0.7173642516136169; +257.78387451171875, 0.7273778319358826; +257.8838806152344, 0.7355138659477234; +257.9838562011719, 0.7405132055282593; +258.0838623046875, 0.7424205541610718; +258.1838684082031, 0.7414817810058594; +258.2838439941406, 0.7394030690193176; +258.38385009765625, 0.7369890809059143; +258.48382568359375, 0.7361471652984619; +258.5838317871094, 0.7341653108596802; +258.683837890625, 0.7284656167030334; +258.7838134765625, 0.7212460041046143; +258.8838195800781, 0.7160380482673645; +258.9837951660156, 0.7125884294509888; +259.08380126953125, 0.707380473613739; +259.18377685546875, 0.7010400295257568; +259.2837829589844, 0.6969645619392395; +259.3837890625, 0.6941333413124084; +259.4837646484375, 0.692315399646759; +259.5837707519531, 0.6934404373168945; +259.6837463378906, 0.700041651725769; +259.78375244140625, 0.708065927028656; +259.8837585449219, 0.7121264934539795; +259.9837341308594, 0.7156133651733398; +260.083740234375, 0.719115138053894; +260.1837158203125, 0.7203966379165649; +260.2837219238281, 0.7178932428359985; +260.38372802734375, 0.7180199027061462; +260.48370361328125, 0.7249340415000916; +260.5837097167969, 0.7309988141059875; +260.6836853027344, 0.731341540813446; +260.78369140625, 0.7279962301254272; +260.8836975097656, 0.725284218788147; +260.9836730957031, 0.7237866520881653; +261.08367919921875, 0.7218644022941589; +261.18365478515625, 0.7211640477180481; +261.2836608886719, 0.7233992218971252; +261.3836669921875, 0.7284805178642273; +261.483642578125, 0.737316906452179; +261.5836486816406, 0.7461681962013245; +261.6836242675781, 0.7526576519012451; +261.78363037109375, 0.758148729801178; +261.8836364746094, 0.7637590169906616; +261.9836120605469, 0.7688626646995544; +262.0836181640625, 0.7681995630264282; +262.18359375, 0.7609575986862183; +262.2835998535156, 0.7500350475311279; +262.38360595703125, 0.7371082901954651; +262.48358154296875, 0.7225051522254944; +262.5835876464844, 0.7079765200614929; +262.6835632324219, 0.6965473294258118; +262.7835693359375, 0.6911382079124451; +262.8835754394531, 0.6897449493408203; +262.9835510253906, 0.6905645132064819; +263.08355712890625, 0.6937086582183838; +263.18353271484375, 0.6978064775466919; +263.2835388183594, 0.7030889391899109; +263.3835144042969, 0.7075071334838867; +263.4835205078125, 0.711001455783844; +263.5835266113281, 0.7130205631256104; +263.6835021972656, 0.7124245166778564; +263.78350830078125, 0.7100850343704224; +263.88348388671875, 0.7051229476928711; +263.9834899902344, 0.6979107856750488; +264.08349609375, 0.691726803779602; +264.1834716796875, 0.6885156035423279; +264.2834777832031, 0.6890743970870972; +264.3834533691406, 0.6917640566825867; +264.48345947265625, 0.6961748003959656; +264.5834655761719, 0.7036998867988586; +264.6834411621094, 0.7109642028808594; +264.783447265625, 0.7179528474807739; +264.8834228515625, 0.7239952683448792; +264.9834289550781, 0.7267743349075317; +265.08343505859375, 0.7246136665344238; +265.18341064453125, 0.718139111995697; +265.2834167480469, 0.7139295339584351; +265.3833923339844, 0.7117912173271179; +265.4833984375, 0.7124543190002441; +265.5834045410156, 0.717751681804657; +265.6833801269531, 0.7252246141433716; +265.78338623046875, 0.730954110622406; +265.88336181640625, 0.730559229850769; +265.9833679199219, 0.7273703813552856; +266.0833740234375, 0.7198899984359741; +266.183349609375, 0.7072016596794128; +266.2833557128906, 0.6932169198989868; +266.3833312988281, 0.6853938102722168; +266.48333740234375, 0.6864890456199646; +266.5833435058594, 0.6894916296005249; +266.6833190917969, 0.691533088684082; +266.7833251953125, 0.6927549839019775; +266.88330078125, 0.6970688700675964; +266.9833068847656, 0.7014572620391846; +267.08331298828125, 0.7022097706794739; +267.18328857421875, 0.7022395730018616; +267.2832946777344, 0.703662633895874; +267.3832702636719, 0.7063671946525574; +267.4832763671875, 0.7058456540107727; +267.583251953125, 0.6989240646362305; +267.6832580566406, 0.6865113973617554; +267.78326416015625, 0.6738230586051941; +267.88323974609375, 0.6673038005828857; +267.9832458496094, 0.6676092743873596; +268.0832214355469, 0.6694495677947998; +268.1832275390625, 0.6729364395141602; +268.2832336425781, 0.6830319762229919; +268.3832092285156, 0.6969496607780457; +268.48321533203125, 0.7061660289764404; +268.58319091796875, 0.7066652178764343; +268.6831970214844, 0.7028430700302124; +268.783203125, 0.6992891430854797; +268.8831787109375, 0.6957799196243286; +268.9831848144531, 0.6903931498527527; +269.0831604003906, 0.6837174296379089; +269.18316650390625, 0.6788372993469238; +269.2831726074219, 0.6799623370170593; +269.3831481933594, 0.686347484588623; +269.483154296875, 0.6888210773468018; +269.5831298828125, 0.6843432784080505; +269.6831359863281, 0.6794854998588562; +269.78314208984375, 0.6824657320976257; +269.88311767578125, 0.6896331906318665; +269.9831237792969, 0.6913915276527405; +270.0830993652344, 0.6892457604408264; +270.18310546875, 0.6925761699676514; +270.2831115722656, 0.7008537650108337; +270.3830871582031, 0.7054358720779419; +270.48309326171875, 0.7031410932540894; +270.58306884765625, 0.7021576166152954; +270.6830749511719, 0.7064118981361389; +270.7830810546875, 0.7098019123077393; +270.883056640625, 0.7082447409629822; +270.9830627441406, 0.7040649652481079; +271.0830383300781, 0.7052421569824219; +271.18304443359375, 0.7117614150047302; +271.2830505371094, 0.7187426090240479; +271.3830261230469, 0.7212311029434204; +271.4830322265625, 0.7197409868240356; +271.5830078125, 0.7177665829658508; +271.6830139160156, 0.7130056619644165; +271.7829895019531, 0.703953206539154; +271.88299560546875, 0.6963908672332764; +271.9830017089844, 0.6932765245437622; +272.0829772949219, 0.6921812891960144; +272.1829833984375, 0.6905421614646912; +272.282958984375, 0.6907656788825989; +272.3829650878906, 0.6960928440093994; +272.48297119140625, 0.6994754076004028; +272.58294677734375, 0.6984993815422058; +272.6829528808594, 0.6962567567825317; +272.7829284667969, 0.6938725709915161; +272.8829345703125, 0.6896480917930603; +272.9829406738281, 0.6813108921051025; +273.0829162597656, 0.6736963987350464; +273.18292236328125, 0.6704404950141907; +273.28289794921875, 0.6715655326843262; +273.3829040527344, 0.6758645176887512; +273.48291015625, 0.6792396306991577; +273.5828857421875, 0.6797239184379578; +273.6828918457031, 0.6765052676200867; +273.7828674316406, 0.6720572710037231; +273.88287353515625, 0.6682053208351135; +273.9828796386719, 0.6662383675575256; +274.0828552246094, 0.6678774952888489; +274.182861328125, 0.6732046604156494; +274.2828369140625, 0.682540237903595; +274.3828430175781, 0.6933808326721191; +274.48284912109375, 0.7035136222839355; +274.58282470703125, 0.7091909646987915; +274.6828308105469, 0.7118284702301025; +274.7828063964844, 0.7142573595046997; +274.8828125, 0.7193610072135925; +274.9828186035156, 0.7263049483299255; +275.0827941894531, 0.7320716977119446; +275.18280029296875, 0.7343068718910217; +275.28277587890625, 0.7342696189880371; +275.3827819824219, 0.7344409823417664; +275.4827575683594, 0.7349923253059387; +275.582763671875, 0.7346868515014648; +275.6827697753906, 0.7317736744880676; +275.7827453613281, 0.7289722561836243; +275.88275146484375, 0.7275566458702087; +275.98272705078125, 0.7274001836776733; +276.0827331542969, 0.7244870066642761; +276.1827392578125, 0.7170513272285461; +276.28271484375, 0.7093325257301331; +276.3827209472656, 0.7059723138809204; +276.4826965332031, 0.7043555378913879; +276.58270263671875, 0.6986632943153381; +276.6827087402344, 0.6907805800437927; +276.7826843261719, 0.6888359785079956; +276.8826904296875, 0.693589448928833; +276.982666015625, 0.6976425647735596; +277.0826721191406, 0.6972700357437134; +277.18267822265625, 0.6993114948272705; +277.28265380859375, 0.7056370377540588; +277.3826599121094, 0.7086321711540222; +277.4826354980469, 0.7043182849884033; +277.5826416015625, 0.6969943642616272; +277.6826477050781, 0.6936565041542053; +277.7826232910156, 0.689975917339325; +277.88262939453125, 0.6828457117080688; +277.98260498046875, 0.6785616278648376; +278.0826110839844, 0.6844401359558105; +278.1826171875, 0.697016716003418; +278.2825927734375, 0.706702470779419; +278.3825988769531, 0.7102489471435547; +278.4825744628906, 0.711977481842041; +278.58258056640625, 0.7108896970748901; +278.6825866699219, 0.702492892742157; +278.7825622558594, 0.6895139813423157; +278.882568359375, 0.679314136505127; +278.9825439453125, 0.6776973605155945; +279.0825500488281, 0.6801113486289978; +279.18255615234375, 0.6828010082244873; +279.28253173828125, 0.6852596998214722; +279.3825378417969, 0.6881803274154663; +279.4825134277344, 0.6890818476676941; +279.58251953125, 0.6854608654975891; +279.6824951171875, 0.6821155548095703; +279.7825012207031, 0.6828680634498596; +279.88250732421875, 0.6864070892333984; +279.98248291015625, 0.6889253854751587; +280.0824890136719, 0.6915852427482605; +280.1824645996094, 0.695452094078064; +280.282470703125, 0.6976425647735596; +280.3824768066406, 0.6946027278900146; +280.4824523925781, 0.6903782486915588; +280.58245849609375, 0.6892979145050049; +280.68243408203125, 0.6919503211975098; +280.7824401855469, 0.6958693265914917; +280.8824462890625, 0.6995052099227905; +280.982421875, 0.7044374942779541; +281.0824279785156, 0.7084235548973083; +281.1824035644531, 0.7081106305122375; +281.28240966796875, 0.7026493549346924; +281.3824157714844, 0.6961822509765625; +281.4823913574219, 0.6913244724273682; +281.5823974609375, 0.6875842809677124; +281.682373046875, 0.6835460662841797; +281.7823791503906, 0.6821751594543457; +281.88238525390625, 0.6821826100349426; +281.98236083984375, 0.6825253367424011; +282.0823669433594, 0.683121383190155; +282.1823425292969, 0.6857588887214661; +282.2823486328125, 0.6914958357810974; +282.3823547363281, 0.6962120532989502; +282.4823303222656, 0.6999075412750244; +282.58233642578125, 0.7027909159660339; +282.68231201171875, 0.7052794098854065; +282.7823181152344, 0.7049962878227234; +282.88232421875, 0.7009059190750122; +282.9822998046875, 0.6962865591049194; +283.0823059082031, 0.692225992679596; +283.1822814941406, 0.6873086094856262; +283.28228759765625, 0.6809011101722717; +283.3822937011719, 0.6777271628379822; +283.4822692871094, 0.6801038980484009; +283.582275390625, 0.6865784525871277; +283.6822509765625, 0.6940141320228577; +283.7822570800781, 0.6996691226959229; +283.8822326660156, 0.7023438811302185; +283.98223876953125, 0.700831413269043; +284.0822448730469, 0.6964728236198425; +284.1822204589844, 0.6879717111587524; +284.2822265625, 0.6773024797439575; +284.3822021484375, 0.6687045097351074; +284.4822082519531, 0.6659179925918579; +284.58221435546875, 0.667475163936615; +284.68218994140625, 0.668056309223175; +284.7821960449219, 0.6676986813545227; +284.8821716308594, 0.6681680679321289; +284.982177734375, 0.6709173321723938; +285.0821838378906, 0.6743520498275757; +285.1821594238281, 0.6762370467185974; +285.28216552734375, 0.6792247295379639; +285.38214111328125, 0.6861686706542969; +285.4821472167969, 0.6944984197616577; +285.5821533203125, 0.6994009017944336; +285.68212890625, 0.6996020674705505; +285.7821350097656, 0.6995648145675659; +285.8821105957031, 0.7006898522377014; +285.98211669921875, 0.6990954279899597; +286.0821228027344, 0.695645809173584; +286.1820983886719, 0.6929263472557068; +286.2821044921875, 0.6921812891960144; +286.382080078125, 0.6886795163154602; +286.4820861816406, 0.6806105375289917; +286.58209228515625, 0.673443078994751; +286.68206787109375, 0.6705000996589661; +286.7820739746094, 0.6698742508888245; +286.8820495605469, 0.6671249866485596; +286.9820556640625, 0.6639361381530762; +287.0820617675781, 0.664927065372467; +287.1820373535156, 0.6697028875350952; +287.28204345703125, 0.6728246808052063; +287.38201904296875, 0.6734728813171387; +287.4820251464844, 0.6766617298126221; +287.58203125, 0.6849616765975952; +287.6820068359375, 0.6921738386154175; +287.7820129394531, 0.692903995513916; +287.8819885253906, 0.6897076964378357; +287.98199462890625, 0.6869509816169739; +288.08197021484375, 0.6839781999588013; +288.1819763183594, 0.6795600056648254; +288.281982421875, 0.6771013140678406; +288.3819580078125, 0.6794705986976624; +288.4819641113281, 0.6869956851005554; +288.5819396972656, 0.697009265422821; +288.68194580078125, 0.7060393691062927; +288.7819519042969, 0.7111057639122009; +288.8819274902344, 0.7104277610778809; +288.98193359375, 0.7059574127197266; +289.0819091796875, 0.6991922855377197; +289.1819152832031, 0.6899908185005188; +289.28192138671875, 0.6818696856498718; +289.38189697265625, 0.675983726978302; +289.4819030761719, 0.672467052936554; +289.5818786621094, 0.6694197654724121; +289.681884765625, 0.6670728325843811; +289.7818908691406, 0.6681904196739197; +289.8818664550781, 0.6721764802932739; +289.98187255859375, 0.6795674562454224; +290.08184814453125, 0.6888061761856079; +290.1818542480469, 0.6980821490287781; +290.2818603515625, 0.7048547267913818; +290.3818359375, 0.7083937525749207; +290.4818420410156, 0.707678496837616; +290.5818176269531, 0.7021725177764893; +290.68182373046875, 0.6935074925422668; +290.7818298339844, 0.686056911945343; +290.8818054199219, 0.6801113486289978; +290.9818115234375, 0.6726086139678955; +291.081787109375, 0.6639435887336731; +291.1817932128906, 0.6559714674949646; +291.28179931640625, 0.6538853049278259; +291.38177490234375, 0.6567835807800293; +291.4817810058594, 0.6620511412620544; +291.5817565917969, 0.6685033440589905; +291.6817626953125, 0.6750971078872681; +291.78173828125, 0.6848499178886414; +291.8817443847656, 0.6929486989974976; +291.98175048828125, 0.6945580244064331; +292.08172607421875, 0.6906092166900635; +292.1817321777344, 0.6861388683319092; +292.2817077636719, 0.685080885887146; +292.3817138671875, 0.6836205720901489; +292.4817199707031, 0.6793960928916931; +292.5816955566406, 0.6745010614395142; +292.68170166015625, 0.6720945239067078; +292.78167724609375, 0.6716921925544739; +292.8816833496094, 0.6705597043037415; +292.981689453125, 0.6668940186500549; +293.0816650390625, 0.6611570715904236; +293.1816711425781, 0.6553307175636292; +293.2816467285156, 0.650063157081604; +293.38165283203125, 0.6448701024055481; +293.4816589355469, 0.6400421261787415; +293.5816345214844, 0.6371960043907166; +293.681640625, 0.6385296583175659; +293.7816162109375, 0.6441399455070496; +293.8816223144531, 0.6516724824905396; +293.98162841796875, 0.6579235196113586; +294.08160400390625, 0.6630569696426392; +294.1816101074219, 0.665612518787384; +294.2815856933594, 0.6654411554336548; +294.381591796875, 0.6610900163650513; +294.4815979003906, 0.6564483046531677; +294.5815734863281, 0.6575211882591248; +294.68157958984375, 0.6620436906814575; +294.78155517578125, 0.6678551435470581; +294.8815612792969, 0.6713941693305969; +294.9815673828125, 0.6745979189872742; +295.08154296875, 0.6770193576812744; +295.1815490722656, 0.6732121109962463; +295.2815246582031, 0.6610676646232605; +295.38153076171875, 0.6453841924667358; +295.4815368652344, 0.6335452198982239; +295.5815124511719, 0.6294995546340942; +295.6815185546875, 0.6285086274147034; +295.781494140625, 0.6275922060012817; +295.8815002441406, 0.6288439035415649; +295.9814758300781, 0.6330534815788269; +296.08148193359375, 0.6387680768966675; +296.1814880371094, 0.6396397948265076; +296.2814636230469, 0.6377324461936951; +296.3814697265625, 0.6373301148414612; +296.4814453125, 0.6406232714653015; +296.5814514160156, 0.6446912884712219; +296.68145751953125, 0.6460323929786682; +296.78143310546875, 0.6466805934906006; +296.8814392089844, 0.6448328495025635; +296.9814147949219, 0.6405115127563477; +297.0814208984375, 0.6338208913803101; +297.1814270019531, 0.6269887089729309; +297.2814025878906, 0.6228834390640259; +297.38140869140625, 0.6183981895446777; +297.48138427734375, 0.6161853671073914; +297.5813903808594, 0.6178468465805054; +297.681396484375, 0.6245449185371399; +297.7813720703125, 0.6311014294624329; +297.8813781738281, 0.6330236792564392; +297.9813537597656, 0.6353110074996948; +298.08135986328125, 0.6401166319847107; +298.1813659667969, 0.6448328495025635; +298.2813415527344, 0.6451904773712158; +298.38134765625, 0.6460472941398621; +298.4813232421875, 0.650256872177124; +298.5813293457031, 0.6539151072502136; +298.68133544921875, 0.6520450115203857; +298.78131103515625, 0.6493106484413147; +298.8813171386719, 0.6489604711532593; +298.9812927246094, 0.6486773490905762; +299.081298828125, 0.646345317363739; +299.1813049316406, 0.6450116634368896; +299.2812805175781, 0.6477907299995422; +299.38128662109375, 0.6491169333457947; +299.48126220703125, 0.6464347243309021; +299.5812683105469, 0.6424859166145325; +299.6812744140625, 0.6412938237190247; +299.78125, 0.6414800882339478; +299.8812561035156, 0.6408840417861938; +299.9812316894531, 0.6395876407623291; +300.08123779296875, 0.6394535303115845; +300.18121337890625, 0.6415396928787231; +300.2812194824219, 0.6443411111831665; +300.3812255859375, 0.6444156169891357; +300.481201171875, 0.6421804428100586; +300.5812072753906, 0.6428658962249756; +300.6811828613281, 0.6494596600532532; +300.78118896484375, 0.657990574836731; +300.8811950683594, 0.66404789686203; +300.9811706542969, 0.6707608699798584; +301.0811767578125, 0.6810575723648071; +301.18115234375, 0.6930604577064514; +301.2811584472656, 0.7019564509391785; +301.38116455078125, 0.7030367851257324; +301.48114013671875, 0.6989166140556335; +301.5811462402344, 0.692710280418396; +301.6811218261719, 0.6851032376289368; +301.7811279296875, 0.6744116544723511; +301.8811340332031, 0.6599873304367065; +301.9811096191406, 0.6486698985099792; +302.08111572265625, 0.6405115127563477; +302.18109130859375, 0.6300583481788635; +302.2810974121094, 0.6163343787193298; +302.381103515625, 0.6065294146537781; +302.4810791015625, 0.6069391965866089; +302.5810852050781, 0.6132721900939941; +302.6810607910156, 0.6221979856491089; +302.78106689453125, 0.6344765424728394; +302.8810729980469, 0.6498247385025024; +302.9810485839844, 0.6622076034545898; +303.0810546875, 0.6670206785202026; +303.1810302734375, 0.6662756204605103; +303.2810363769531, 0.6616860628128052; +303.38104248046875, 0.6593838334083557; +303.48101806640625, 0.6650760769844055; +303.5810241699219, 0.6747469305992126; +303.6809997558594, 0.6784051656723022; +303.781005859375, 0.6704255938529968; +303.8810119628906, 0.6578639149665833; +303.9809875488281, 0.6446987390518188; +304.08099365234375, 0.6289780139923096; +304.18096923828125, 0.6132796406745911; +304.2809753417969, 0.6033182144165039; +304.3809509277344, 0.6032437086105347; +304.48095703125, 0.6111487746238708; +304.5809631347656, 0.6199628114700317; +304.6809387207031, 0.6196349859237671; +304.78094482421875, 0.6115809082984924; +304.88092041015625, 0.6051957607269287; +304.9809265136719, 0.6059706211090088; +305.0809326171875, 0.6118938326835632; +305.180908203125, 0.6202608346939087; +305.2809143066406, 0.6311684846878052; +305.3808898925781, 0.6375834345817566; +305.48089599609375, 0.633537769317627; +305.5809020996094, 0.6226152181625366; +305.6808776855469, 0.6097182631492615; +305.7808837890625, 0.595584511756897; +305.880859375, 0.5844682455062866; +305.9808654785156, 0.5806460976600647; +306.08087158203125, 0.5871951580047607; +306.18084716796875, 0.5962476134300232; +306.2808532714844, 0.601842999458313; +306.3808288574219, 0.6025508046150208; +306.4808349609375, 0.6007775664329529; +306.5808410644531, 0.6031021475791931; +306.6808166503906, 0.6082355976104736; +306.78082275390625, 0.618666410446167; +306.88079833984375, 0.6325840950012207; +306.9808044433594, 0.6496310234069824; +307.080810546875, 0.6662607192993164; +307.1807861328125, 0.6751269102096558; +307.2807922363281, 0.6749778985977173; +307.3807678222656, 0.6644204258918762; +307.48077392578125, 0.64888596534729; +307.5807800292969, 0.63333660364151; +307.6807556152344, 0.6195381283760071; +307.78076171875, 0.6103143095970154; +307.8807373046875, 0.61015784740448; +307.9807434082031, 0.620529055595398; +308.08074951171875, 0.6347447633743286; +308.18072509765625, 0.6444305181503296; +308.2807312011719, 0.647515058517456; +308.3807067871094, 0.6467029452323914; +308.480712890625, 0.6421059370040894; +308.5806884765625, 0.6349459290504456; +308.6806945800781, 0.6275102496147156; +308.78070068359375, 0.6232187151908875; +308.88067626953125, 0.624336302280426; +308.9806823730469, 0.6265416741371155; +309.0806579589844, 0.6275773048400879; +309.1806640625, 0.6272345781326294; +309.2806701660156, 0.6284043192863464; +309.3806457519531, 0.6313100457191467; +309.48065185546875, 0.6324425339698792; +309.58062744140625, 0.6356015801429749; +309.6806335449219, 0.637538731098175; +309.7806396484375, 0.6346553564071655; +309.880615234375, 0.6273090839385986; +309.9806213378906, 0.6246119737625122; +310.0805969238281, 0.629030168056488; +310.18060302734375, 0.6308779120445251; +310.2806091308594, 0.6261616945266724; +310.3805847167969, 0.6197914481163025; +310.4805908203125, 0.6172358989715576; +310.58056640625, 0.6123706698417664; +310.6805725097656, 0.6024762988090515; +310.78057861328125, 0.5936399102210999; +310.88055419921875, 0.5935952067375183; +310.9805603027344, 0.6030052900314331; +311.0805358886719, 0.610746443271637; +311.1805419921875, 0.6147176027297974; +311.2805480957031, 0.6163045763969421; +311.3805236816406, 0.6171837449073792; +311.48052978515625, 0.6155073642730713; +311.58050537109375, 0.6088167428970337; +311.6805114746094, 0.6034821271896362; +311.780517578125, 0.6004795432090759; +311.8804931640625, 0.601157546043396; +311.9804992675781, 0.6040036678314209; +312.0804748535156, 0.609472393989563; +312.18048095703125, 0.6155446171760559; +312.28045654296875, 0.6216391921043396; +312.3804626464844, 0.6276145577430725; +312.48046875, 0.631183385848999; +312.5804443359375, 0.6341487169265747; +312.6804504394531, 0.6342455744743347; +312.7804260253906, 0.6298571825027466; +312.88043212890625, 0.6167814135551453; +312.9804382324219, 0.5984976887702942; +313.0804138183594, 0.5835145711898804; +313.180419921875, 0.5750805139541626; +313.2803955078125, 0.5749091506004333; +313.3804016113281, 0.5814135074615479; +313.48040771484375, 0.5885586142539978; +313.58038330078125, 0.5896985530853271; +313.6803894042969, 0.5849525332450867; +313.7803649902344, 0.5791857838630676; +313.88037109375, 0.5729496479034424; +313.9803771972656, 0.5660653114318848; +314.0803527832031, 0.5622729659080505; +314.18035888671875, 0.568777322769165; +314.28033447265625, 0.5815550684928894; +314.3803405761719, 0.5886778235435486; +314.4803466796875, 0.5871057510375977; +314.580322265625, 0.5830377340316772; +314.6803283691406, 0.5862787365913391; +314.7803039550781, 0.5924105644226074; +314.88031005859375, 0.5954578518867493; +314.9803161621094, 0.5966499447822571; +315.0802917480469, 0.5982667207717896; +315.1802978515625, 0.597141683101654; +315.2802734375, 0.5907639861106873; +315.3802795410156, 0.5827099084854126; +315.48028564453125, 0.5782768130302429; +315.58026123046875, 0.5772411823272705; +315.6802673339844, 0.5776286125183105; +315.7802429199219, 0.581689178943634; +315.8802490234375, 0.5870312452316284; +315.9802551269531, 0.5910992622375488; +316.0802307128906, 0.5924254655838013; +316.18023681640625, 0.5935505032539368; +316.28021240234375, 0.5973055958747864; +316.3802185058594, 0.60262531042099; +316.4801940917969, 0.607714056968689; +316.5802001953125, 0.6107836961746216; +316.6802062988281, 0.6122663617134094; +316.7801818847656, 0.6122887134552002; +316.88018798828125, 0.6096288561820984; +316.98016357421875, 0.6045326590538025; +317.0801696777344, 0.5972832441329956; +317.18017578125, 0.5908608436584473; +317.2801513671875, 0.5858391523361206; +317.3801574707031, 0.5837231874465942; +317.4801330566406, 0.5853399634361267; +317.58013916015625, 0.5914047360420227; +317.6801452636719, 0.5990266799926758; +317.7801208496094, 0.6037577986717224; +317.880126953125, 0.6063729524612427; +317.9801025390625, 0.6082579493522644; +318.0801086425781, 0.6107687950134277; +318.18011474609375, 0.6097406148910522; +318.28009033203125, 0.6070137023925781; +318.3800964355469, 0.6040185689926147; +318.4800720214844, 0.6004422903060913; +318.580078125, 0.5956590175628662; +318.6800842285156, 0.5888119339942932; +318.7800598144531, 0.5834251642227173; +318.88006591796875, 0.5813091993331909; +318.98004150390625, 0.5866140127182007; +319.0800476074219, 0.5998238921165466; +319.1800537109375, 0.6145387887954712; +319.280029296875, 0.6261691451072693; +319.3800354003906, 0.6324425339698792; +319.4800109863281, 0.6388798356056213; +319.58001708984375, 0.6435811519622803; +319.6800231933594, 0.6406530737876892; +319.7799987792969, 0.6315186619758606; +319.8800048828125, 0.6216391921043396; +319.97998046875, 0.6147325038909912; +320.0799865722656, 0.6072446703910828; +320.17999267578125, 0.6012916564941406; +320.27996826171875, 0.6017312407493591; +320.3799743652344, 0.6079599261283875; +320.4799499511719, 0.6144195795059204; +320.5799560546875, 0.617682933807373; +320.679931640625, 0.6171390414237976; +320.7799377441406, 0.6105303764343262; +320.87994384765625, 0.5998611450195312; +320.97991943359375, 0.5881041288375854; +321.0799255371094, 0.5788728594779968; +321.1799011230469, 0.5736351013183594; +321.2799072265625, 0.5702301859855652; +321.3799133300781, 0.5681589245796204; +321.4798889160156, 0.5676820874214172; +321.57989501953125, 0.5709230899810791; +321.67987060546875, 0.5738884210586548; +321.7798767089844, 0.5740523338317871; +321.8798828125, 0.5749017000198364; +321.9798583984375, 0.5798488855361938; +322.0798645019531, 0.5847141146659851; +322.1798400878906, 0.5824491381645203; +322.27984619140625, 0.5760788917541504; +322.3798522949219, 0.5687698721885681; +322.4798278808594, 0.5612000823020935; +322.579833984375, 0.5547180771827698; +322.6798095703125, 0.5537942051887512; +322.7798156738281, 0.5597099661827087; +322.87982177734375, 0.5685314536094666; +322.97979736328125, 0.5764588713645935; +323.0798034667969, 0.5807355046272278; +323.1797790527344, 0.5795657634735107; +323.27978515625, 0.5731284618377686; +323.3797912597656, 0.5661845207214355; +323.4797668457031, 0.5623698234558105; +323.57977294921875, 0.5628541111946106; +323.67974853515625, 0.5680322647094727; +323.7797546386719, 0.5746409296989441; +323.8797607421875, 0.5768463015556335; +323.979736328125, 0.5709975957870483; +324.0797424316406, 0.5589127540588379; +324.1797180175781, 0.5497708916664124; +324.27972412109375, 0.5465596914291382; +324.3797302246094, 0.5460456013679504; +324.4797058105469, 0.5479231476783752; +324.5797119140625, 0.5553066730499268; +324.6796875, 0.5715489387512207; +324.7796936035156, 0.5866587162017822; +324.8796691894531, 0.5924850702285767; +324.97967529296875, 0.5900636315345764; +325.0796813964844, 0.5826503038406372; +325.1796569824219, 0.573277473449707; +325.2796630859375, 0.5608201026916504; +325.379638671875, 0.5487650632858276; +325.4796447753906, 0.5412101745605469; +325.57965087890625, 0.5423277616500854; +325.67962646484375, 0.551469624042511; +325.7796325683594, 0.5610287189483643; +325.8796081542969, 0.5660951137542725; +325.9796142578125, 0.5672052502632141; +326.0796203613281, 0.5667060613632202; +326.1795959472656, 0.5649030208587646; +326.27960205078125, 0.563502311706543; +326.37957763671875, 0.5662664771080017; +326.4795837402344, 0.5704611539840698; +326.57958984375, 0.5701035261154175; +326.6795654296875, 0.5640238523483276; +326.7795715332031, 0.556066632270813; +326.8795471191406, 0.5480647087097168; +326.97955322265625, 0.5397647619247437; +327.0795593261719, 0.5316361784934998; +327.1795349121094, 0.5287602543830872; +327.279541015625, 0.5321428179740906; +327.3795166015625, 0.5340650677680969; +327.4795227050781, 0.5293861031532288; +327.57952880859375, 0.5213841795921326; +327.67950439453125, 0.5190148949623108; +327.7795104980469, 0.5192831158638; +327.8794860839844, 0.5176067352294922; +327.9794921875, 0.5199238657951355; +328.0794982910156, 0.5316510796546936; +328.1794738769531, 0.545203685760498; +328.27947998046875, 0.5524232983589172; +328.37945556640625, 0.5559995770454407; +328.4794616699219, 0.5599409341812134; +328.5794372558594, 0.5569532513618469; +328.679443359375, 0.5447790026664734; +328.7794494628906, 0.5320906639099121; +328.8794250488281, 0.5254149436950684; +328.97943115234375, 0.5222931504249573; +329.07940673828125, 0.5188807845115662; +329.1794128417969, 0.5179941654205322; +329.2794189453125, 0.5190148949623108; +329.37939453125, 0.5214735865592957; +329.4794006347656, 0.5222111940383911; +329.5793762207031, 0.5213990807533264; +329.67938232421875, 0.5195960402488708; +329.7793884277344, 0.5193650722503662; +329.8793640136719, 0.5227625370025635; +329.9793701171875, 0.5238428711891174; +330.079345703125, 0.5208104848861694; +330.1793518066406, 0.5179718136787415; +330.27935791015625, 0.5195438861846924; +330.37933349609375, 0.5237385630607605; +330.4793395996094, 0.5247369408607483; +330.5793151855469, 0.5235299468040466; +330.6793212890625, 0.5233287811279297; +330.7793273925781, 0.5256608128547668; +330.8793029785156, 0.5303472280502319; +330.97930908203125, 0.5351528525352478; +331.07928466796875, 0.5404949188232422; +331.1792907714844, 0.5464106798171997; +331.279296875, 0.5538240075111389; +331.3792724609375, 0.5609914660453796; +331.4792785644531, 0.5642175674438477; +331.5792541503906, 0.5609020590782166; +331.67926025390625, 0.5549266934394836; +331.7792663574219, 0.5528554320335388; +331.8792419433594, 0.5560144782066345; +331.979248046875, 0.5589351058006287; +332.0792236328125, 0.5562976002693176; +332.1792297363281, 0.5542486906051636; +332.27923583984375, 0.5539953708648682; +332.37921142578125, 0.552833080291748; +332.4792175292969, 0.5464181303977966; +332.5791931152344, 0.536896288394928; +332.67919921875, 0.535428524017334; +332.7791748046875, 0.5383118987083435; +332.8791809082031, 0.5394667387008667; +332.97918701171875, 0.5353614687919617; +333.07916259765625, 0.5305930972099304; +333.1791687011719, 0.5294680595397949; +333.2791442871094, 0.525154173374176; +333.379150390625, 0.51889568567276; +333.4791564941406, 0.5173236131668091; +333.5791320800781, 0.5221515893936157; +333.67913818359375, 0.5287528038024902; +333.77911376953125, 0.5324184894561768; +333.8791198730469, 0.5357041954994202; +333.9791259765625, 0.5433410406112671; +334.0791015625, 0.552743673324585; +334.1791076660156, 0.5621090531349182; +334.2790832519531, 0.5691796541213989; +334.37908935546875, 0.5748718976974487; +334.4790954589844, 0.5784779787063599; +334.5790710449219, 0.5732625722885132; +334.6790771484375, 0.5599930882453918; +334.779052734375, 0.5429759621620178; +334.8790588378906, 0.52642822265625; +334.97906494140625, 0.5133897066116333; +335.07904052734375, 0.5055144429206848; +335.1790466308594, 0.5063861608505249; +335.2790222167969, 0.5098879337310791; +335.3790283203125, 0.5106925964355469; +335.4790344238281, 0.5099773406982422; +335.5790100097656, 0.5072653293609619; +335.67901611328125, 0.501483678817749; +335.77899169921875, 0.4924461245536804; +335.8789978027344, 0.4867091774940491; +335.97900390625, 0.4861205816268921; +336.0789794921875, 0.48626959323883057; +336.1789855957031, 0.486813485622406; +336.2789611816406, 0.49467384815216064; +336.37896728515625, 0.5092471837997437; +336.4789733886719, 0.5249157547950745; +336.5789489746094, 0.5378946661949158; +336.678955078125, 0.5493536591529846; +336.7789306640625, 0.5583763122558594; +336.8789367675781, 0.5540698766708374; +336.9789123535156, 0.5389750003814697; +337.07891845703125, 0.5220398306846619; +337.1789245605469, 0.5112141370773315; +337.2789001464844, 0.5077347159385681; +337.37890625, 0.508435070514679; +337.4788818359375, 0.5178377032279968; +337.5788879394531, 0.5334541201591492; +337.67889404296875, 0.5522966384887695; +337.77886962890625, 0.5700066685676575; +337.8788757324219, 0.5840733647346497; +337.9788513183594, 0.591374933719635; +338.078857421875, 0.5889162421226501; +338.1788635253906, 0.5807280540466309; +338.2788391113281, 0.571034848690033; +338.37884521484375, 0.5632936954498291; +338.47882080078125, 0.5553066730499268; +338.5788269042969, 0.5510300397872925; +338.6788330078125, 0.5520284175872803; +338.77880859375, 0.5535855889320374; +338.8788146972656, 0.5505755543708801; +338.9787902832031, 0.5403459072113037; +339.07879638671875, 0.5284696817398071; +339.1788024902344, 0.516943633556366; +339.2787780761719, 0.5087032914161682; +339.3787841796875, 0.5051568150520325; +339.478759765625, 0.5040988326072693; +339.5787658691406, 0.5030855536460876; +339.67877197265625, 0.5027055740356445; +339.77874755859375, 0.5048364400863647; +339.8787536621094, 0.5082562565803528; +339.9787292480469, 0.5127713084220886; +340.0787353515625, 0.5179867148399353; +340.1787414550781, 0.5250126123428345; +340.2787170410156, 0.5320534110069275; +340.37872314453125, 0.5382224917411804; +340.47869873046875, 0.5446299910545349; +340.5787048339844, 0.548042356967926; +340.6787109375, 0.5469471216201782; +340.7786865234375, 0.539928674697876; +340.8786926269531, 0.5298852920532227; +340.9786682128906, 0.519774854183197; +341.07867431640625, 0.5116462707519531; +341.17864990234375, 0.5066469311714172; +341.2786560058594, 0.5077645182609558; +341.378662109375, 0.5151405930519104; +341.4786376953125, 0.5249679088592529; +341.5786437988281, 0.5316808819770813; +341.6786193847656, 0.5315691232681274; +341.77862548828125, 0.5273371934890747; +341.8786315917969, 0.5212947726249695; +341.9786071777344, 0.516943633556366; +342.07861328125, 0.5151331424713135; +342.1785888671875, 0.5159005522727966; +342.2785949707031, 0.5182325839996338; +342.37860107421875, 0.5199238657951355; +342.47857666015625, 0.5189552903175354; +342.5785827636719, 0.5144029855728149; +342.6785583496094, 0.5105286836624146; +342.778564453125, 0.512242317199707; +342.8785705566406, 0.5186200141906738; +342.9785461425781, 0.5267634987831116; +343.07855224609375, 0.5330145359039307; +343.17852783203125, 0.5386173725128174; +343.2785339355469, 0.5396977066993713; +343.3785400390625, 0.5324855446815491; +343.478515625, 0.5209296941757202; +343.5785217285156, 0.5114153027534485; +343.6784973144531, 0.5086585879325867; +343.77850341796875, 0.5090460181236267; +343.8785095214844, 0.5107223987579346; +343.9784851074219, 0.5161240696907043; +344.0784912109375, 0.5241408944129944; +344.178466796875, 0.5309581756591797; +344.2784729003906, 0.5339160561561584; +344.37847900390625, 0.5340501666069031; +344.47845458984375, 0.5334019660949707; +344.5784606933594, 0.5306899547576904; +344.6784362792969, 0.5276650190353394; +344.7784423828125, 0.5258917808532715; +344.87841796875, 0.5261600017547607; +344.9784240722656, 0.5284249782562256; +345.07843017578125, 0.5334988236427307; +345.17840576171875, 0.5394294857978821; +345.2784118652344, 0.5428344011306763; +345.3783874511719, 0.5434900522232056; +345.4783935546875, 0.542081892490387; +345.5783996582031, 0.5397796630859375; +345.6783752441406, 0.5337968468666077; +345.77838134765625, 0.5284994840621948; +345.87835693359375, 0.527605414390564; +345.9783630371094, 0.5317628383636475; +346.078369140625, 0.5369558930397034; +346.1783447265625, 0.5378350615501404; +346.2783508300781, 0.5364939570426941; +346.3783264160156, 0.5357339978218079; +346.47833251953125, 0.5369037389755249; +346.5783386230469, 0.5403012037277222; +346.6783142089844, 0.5451291799545288; +346.7783203125, 0.5500540137290955; +346.8782958984375, 0.5531609058380127; +346.9783020019531, 0.5532056093215942; +347.07830810546875, 0.5493015050888062; +347.17828369140625, 0.538356602191925; +347.2782897949219, 0.5240514874458313; +347.3782653808594, 0.516250729560852; +347.478271484375, 0.517621636390686; +347.5782775878906, 0.5203410983085632; +347.6782531738281, 0.5182474851608276; +347.77825927734375, 0.5127862095832825; +347.87823486328125, 0.5083605647087097; +347.9782409667969, 0.5046576261520386; +348.0782470703125, 0.5024224519729614; +348.17822265625, 0.5024746060371399; +348.2782287597656, 0.504031777381897; +348.3782043457031, 0.5098655819892883; +348.47821044921875, 0.5190819501876831; +348.5782165527344, 0.5299299955368042; +348.6781921386719, 0.5378276109695435; +348.7781982421875, 0.5409494042396545; +348.878173828125, 0.542961061000824; +348.9781799316406, 0.5455389618873596; +349.0781555175781, 0.5476251244544983; +349.17816162109375, 0.5457028746604919; +349.2781677246094, 0.5401670932769775; +349.3781433105469, 0.5361884832382202; +349.4781494140625, 0.5363747477531433; +349.578125, 0.5350485444068909; +349.6781311035156, 0.5296096205711365; +349.77813720703125, 0.521145761013031; +349.87811279296875, 0.5129501223564148; +349.9781188964844, 0.5067437887191772; +350.0780944824219, 0.5010515451431274; +350.1781005859375, 0.497184693813324; +350.2781066894531, 0.49591064453125; +350.3780822753906, 0.49724429845809937; +350.47808837890625, 0.5004927515983582; +350.57806396484375, 0.5030035972595215; +350.6780700683594, 0.5068108439445496; +350.778076171875, 0.5145594477653503; +350.8780517578125, 0.5272254347801208; +350.9780578613281, 0.5447641015052795; +351.0780334472656, 0.5625039339065552; +351.17803955078125, 0.5760341882705688; +351.2780456542969, 0.5812495946884155; +351.3780212402344, 0.5802884697914124; +351.47802734375, 0.5739182233810425; +351.5780029296875, 0.5626082420349121; +351.6780090332031, 0.5507469177246094; +351.77801513671875, 0.5399510264396667; +351.87799072265625, 0.5283951759338379; +351.9779968261719, 0.5124583840370178; +352.0779724121094, 0.4971027374267578; +352.177978515625, 0.48911571502685547; +352.2779846191406, 0.4879012703895569; +352.3779602050781, 0.49277395009994507; +352.47796630859375, 0.5026310682296753; +352.57794189453125, 0.5171746015548706; +352.6779479980469, 0.5324110388755798; +352.7779541015625, 0.542864203453064; +352.8779296875, 0.5465522408485413; +352.9779357910156, 0.5464628338813782; +353.0779113769531, 0.5470216274261475; +353.17791748046875, 0.547260046005249; +353.27789306640625, 0.5446448922157288; +353.3778991699219, 0.5387216806411743; +353.4779052734375, 0.5327612161636353; +353.577880859375, 0.5266293883323669; +353.6778869628906, 0.5195066332817078; +353.7778625488281, 0.5111396312713623; +353.87786865234375, 0.5016699433326721; +353.9778747558594, 0.4925057291984558; +354.0778503417969, 0.48885494470596313; +354.1778564453125, 0.4932582378387451; +354.27783203125, 0.5040168762207031; +354.3778381347656, 0.5185753107070923; +354.47784423828125, 0.5335956811904907; +354.57781982421875, 0.5474388599395752; +354.6778259277344, 0.5542933940887451; +354.7778015136719, 0.5537867546081543; +354.8778076171875, 0.5450770258903503; +354.9778137207031, 0.530831515789032; +355.0777893066406, 0.5207285284996033; +355.17779541015625, 0.5187466740608215; +355.27777099609375, 0.5242452025413513; +355.3777770996094, 0.5308538675308228; +355.477783203125, 0.539243221282959; +355.5777587890625, 0.5516856908798218; +355.6777648925781, 0.5605071783065796; +355.7777404785156, 0.5611702799797058; +355.87774658203125, 0.5549341440200806; +355.9777526855469, 0.5511194467544556; +356.0777282714844, 0.5523338913917542; +356.177734375, 0.5535557866096497; +356.2777099609375, 0.5539059638977051; +356.3777160644531, 0.5525499582290649; +356.47772216796875, 0.5527809262275696; +356.57769775390625, 0.5510672926902771; +356.6777038574219, 0.5454644560813904; +356.7776794433594, 0.5382373929023743; +356.877685546875, 0.5318373441696167; +356.9776916503906, 0.5312636494636536; +357.0776672363281, 0.5305111408233643; +357.17767333984375, 0.525057315826416; +357.27764892578125, 0.5198344588279724; +357.3776550292969, 0.5219951272010803; +357.4776306152344, 0.5344226956367493; +357.57763671875, 0.546284019947052; +357.6776428222656, 0.5530789494514465; +357.7776184082031, 0.55713951587677; +357.87762451171875, 0.5583986639976501; +357.97760009765625, 0.5514994263648987; +358.0776062011719, 0.5350783467292786; +358.1776123046875, 0.5162283778190613; +358.277587890625, 0.5046501755714417; +358.3775939941406, 0.5033835768699646; +358.4775695800781, 0.5065351724624634; +358.57757568359375, 0.5117803812026978; +358.6775817871094, 0.5154088139533997; +358.7775573730469, 0.5198642611503601; +358.8775634765625, 0.5215033888816833; +358.9775390625, 0.5155801773071289; +359.0775451660156, 0.5076825618743896; +359.17755126953125, 0.5036219954490662; +359.27752685546875, 0.5074888467788696; +359.3775329589844, 0.5126222968101501; +359.4775085449219, 0.5145147442817688; +359.5775146484375, 0.5184188485145569; +359.6775207519531, 0.5254969000816345; +359.7774963378906, 0.5344897508621216; +359.87750244140625, 0.5410090088844299; +359.97747802734375, 0.5442872643470764; +360.0774841308594, 0.5467832088470459; +360.177490234375, 0.5488395690917969; +360.2774658203125, 0.5529150366783142; +360.3774719238281, 0.5565732717514038; +360.4774475097656, 0.5574896931648254; +360.57745361328125, 0.5561262369155884; +360.6774597167969, 0.5569756031036377; +360.7774353027344, 0.5591437220573425; +360.87744140625, 0.5583763122558594; +360.9774169921875, 0.5560219287872314; +361.0774230957031, 0.5563646554946899; +361.1773986816406, 0.5593225359916687; +361.27740478515625, 0.5592256784439087; +361.3774108886719, 0.554986298084259; +361.4773864746094, 0.5462318658828735; +361.577392578125, 0.5322694778442383; +361.6773681640625, 0.5151927471160889; +361.7773742675781, 0.5000904202461243; +361.87738037109375, 0.49201399087905884; +361.97735595703125, 0.4924014210700989; +362.0773620605469, 0.49864500761032104; +362.1773376464844, 0.5072653293609619; +362.27734375, 0.5114749073982239; +362.3773498535156, 0.5126595497131348; +362.4773254394531, 0.5109012126922607; +362.57733154296875, 0.5038976669311523; +362.67730712890625, 0.4927441477775574; +362.7773132324219, 0.48106908798217773; +362.8773193359375, 0.4754886031150818; +362.977294921875, 0.4726499319076538; +363.0773010253906, 0.4708021879196167; +363.1772766113281, 0.4704594612121582; +363.27728271484375, 0.47185271978378296; +363.3772888183594, 0.4743710160255432; +363.4772644042969, 0.475861132144928; +363.5772705078125, 0.47854334115982056; +363.67724609375, 0.48345327377319336; +363.7772521972656, 0.4890933632850647; +363.87725830078125, 0.49263983964920044; +363.97723388671875, 0.4935711622238159; +364.0772399902344, 0.494934618473053; +364.1772155761719, 0.49776583909988403; +364.2772216796875, 0.49920380115509033; +364.3772277832031, 0.4979074001312256; +364.4772033691406, 0.49370527267456055; +364.57720947265625, 0.48864632844924927; +364.67718505859375, 0.4844292998313904; +364.7771911621094, 0.4807114601135254; +364.877197265625, 0.47801434993743896; +364.9771728515625, 0.47531723976135254; +365.0771789550781, 0.4744529724121094; +365.1771545410156, 0.4758909344673157; +365.27716064453125, 0.47707557678222656; +365.37713623046875, 0.47537684440612793; +365.4771423339844, 0.469796359539032; +365.5771484375, 0.4658624529838562; +365.6771240234375, 0.4648566246032715; +365.7771301269531, 0.4659593105316162; +365.8771057128906, 0.4695281386375427; +365.97711181640625, 0.4753097891807556; +366.0771179199219, 0.48086047172546387; +366.1770935058594, 0.4827454686164856; +366.277099609375, 0.4836246371269226; +366.3770751953125, 0.48248469829559326; +366.4770812988281, 0.4738718271255493; +366.57708740234375, 0.45924633741378784; +366.67706298828125, 0.44731050729751587; +366.7770690917969, 0.44414401054382324; +366.8770446777344, 0.44512003660202026; +366.97705078125, 0.44595450162887573; +367.0770568847656, 0.4508271813392639; +367.1770324707031, 0.4621371626853943; +367.27703857421875, 0.4771426320075989; +367.37701416015625, 0.486716628074646; +367.4770202636719, 0.4914477467536926; +367.5770263671875, 0.49561262130737305; +367.677001953125, 0.49724429845809937; +367.7770080566406, 0.4932284355163574; +367.8769836425781, 0.4825517535209656; +367.97698974609375, 0.46797841787338257; +368.0769958496094, 0.4493817687034607; +368.1769714355469, 0.4297122359275818; +368.2769775390625, 0.416293740272522; +368.376953125, 0.40955841541290283; +368.4769592285156, 0.40616095066070557; +368.57696533203125, 0.4078671336174011; +368.67694091796875, 0.4154518246650696; +368.7769470214844, 0.42570382356643677; +368.8769226074219, 0.4313960671424866; +368.9769287109375, 0.43395906686782837; +369.0769348144531, 0.4383698105812073; +369.1769104003906, 0.44468045234680176; +369.27691650390625, 0.45295804738998413; +369.37689208984375, 0.4637092351913452; +369.4768981933594, 0.47475844621658325; +369.5768737792969, 0.4817768931388855; +369.6768798828125, 0.4824697971343994; +369.7768859863281, 0.47725439071655273; +369.8768615722656, 0.4666373133659363; +369.97686767578125, 0.44968724250793457; +370.07684326171875, 0.4323422908782959; +370.1768493652344, 0.41953474283218384; +370.27685546875, 0.4100203514099121; +370.3768310546875, 0.40330737829208374; +370.4768371582031, 0.40240585803985596; +370.5768127441406, 0.40968507528305054; +370.67681884765625, 0.4199221730232239; +370.7768249511719, 0.427834689617157; +370.8768005371094, 0.432722270488739; +370.976806640625, 0.4357472062110901; +371.0767822265625, 0.43445825576782227; +371.1767883300781, 0.4289597272872925; +371.27679443359375, 0.4216507077217102; +371.37677001953125, 0.41329115629196167; +371.4767761230469, 0.4032701253890991; +371.5767517089844, 0.3922805190086365; +371.6767578125, 0.3835707902908325; +371.7767639160156, 0.37754327058792114; +371.8767395019531, 0.37520378828048706; +371.97674560546875, 0.3749951720237732; +372.07672119140625, 0.37935376167297363; +372.1767272949219, 0.386655330657959; +372.2767333984375, 0.3945007920265198; +372.376708984375, 0.39762258529663086; +372.4767150878906, 0.3940016031265259; +372.5766906738281, 0.3899708390235901; +372.67669677734375, 0.3884434700012207; +372.7767028808594, 0.3896579146385193; +372.8766784667969, 0.39152055978775024; +372.9766845703125, 0.39412081241607666; +373.07666015625, 0.39687007665634155; +373.1766662597656, 0.3975406289100647; +373.27667236328125, 0.3950744867324829; +373.37664794921875, 0.3916919231414795; +373.4766540527344, 0.3882870078086853; +373.5766296386719, 0.3872513771057129; +373.6766357421875, 0.3887936472892761; +373.776611328125, 0.39096176624298096; +373.8766174316406, 0.3950968384742737; +373.97662353515625, 0.3981366753578186; +374.07659912109375, 0.39934366941452026; +374.1766052246094, 0.3998875617980957; +374.2765808105469, 0.40416419506073; +374.3765869140625, 0.4137754440307617; +374.4765930175781, 0.4227831959724426; +374.5765686035156, 0.4300922155380249; +374.67657470703125, 0.43538957834243774; +374.77655029296875, 0.43604522943496704; +374.8765563964844, 0.4243925213813782; +374.9765625, 0.40149688720703125; +375.0765380859375, 0.3778114914894104; +375.1765441894531, 0.3605186939239502; +375.2765197753906, 0.3487691283226013; +375.37652587890625, 0.3382861614227295; +375.4765319824219, 0.33273547887802124; +375.5765075683594, 0.33477693796157837; +375.676513671875, 0.33896416425704956; +375.7764892578125, 0.3404095768928528; +375.8764953613281, 0.3397315740585327; +375.97650146484375, 0.3431588411331177; +376.07647705078125, 0.351637601852417; +376.1764831542969, 0.361517071723938; +376.2764587402344, 0.3695636987686157; +376.37646484375, 0.37241727113723755; +376.4764709472656, 0.3703758120536804; +376.5764465332031, 0.3640800714492798; +376.67645263671875, 0.3553628921508789; +376.77642822265625, 0.3458186984062195; +376.8764343261719, 0.33799558877944946; +376.9764404296875, 0.3330707550048828; +377.076416015625, 0.3281012177467346; +377.1764221191406, 0.32261013984680176; +377.2763977050781, 0.32010674476623535; +377.37640380859375, 0.32285600900650024; +377.47637939453125, 0.32699108123779297; +377.5763854980469, 0.3313124179840088; +377.6763916015625, 0.3393888473510742; +377.7763671875, 0.35181641578674316; +377.8763732910156, 0.36431849002838135; +377.9763488769531, 0.3721863031387329; +378.07635498046875, 0.37817656993865967; +378.1763610839844, 0.38238614797592163; +378.2763366699219, 0.38263946771621704; +378.3763427734375, 0.3760010004043579; +378.476318359375, 0.3644227981567383; +378.5763244628906, 0.3526955842971802; +378.67633056640625, 0.3452226519584656; +378.77630615234375, 0.34447014331817627; +378.8763122558594, 0.3488883376121521; +378.9762878417969, 0.3577321767807007; +379.0762939453125, 0.36322325468063354; +379.1763000488281, 0.3626421093940735; +379.2762756347656, 0.35621970891952515; +379.37628173828125, 0.3501996397972107; +379.47625732421875, 0.3494471311569214; +379.5762634277344, 0.3503933548927307; +379.67626953125, 0.35583972930908203; +379.7762451171875, 0.36635249853134155; +379.8762512207031, 0.37854164838790894; +379.9762268066406, 0.3852471709251404; +380.07623291015625, 0.382348895072937; +380.1762390136719, 0.37667155265808105; +380.2762145996094, 0.3724098205566406; +380.376220703125, 0.3680810332298279; +380.4761962890625, 0.3623664379119873; +380.5762023925781, 0.35806745290756226; +380.67620849609375, 0.35847723484039307; +380.77618408203125, 0.3606528043746948; +380.8761901855469, 0.36053359508514404; +380.9761657714844, 0.36047399044036865; +381.076171875, 0.36369264125823975; +381.1761779785156, 0.365525484085083; +381.2761535644531, 0.3629028797149658; +381.37615966796875, 0.36165863275527954; +381.47613525390625, 0.3658980131149292; +381.5761413574219, 0.37301331758499146; +381.6761169433594, 0.3770068287849426; +381.776123046875, 0.3780350089073181; +381.8761291503906, 0.37804991006851196; +381.9761047363281, 0.37338584661483765; +382.07611083984375, 0.36535412073135376; +382.17608642578125, 0.35662949085235596; +382.2760925292969, 0.3501623868942261; +382.3760986328125, 0.347137451171875; +382.47607421875, 0.347040593624115; +382.5760803222656, 0.3496408462524414; +382.6760559082031, 0.35247206687927246; +382.77606201171875, 0.3532320261001587; +382.8760681152344, 0.3511682152748108; +382.9760437011719, 0.34859031438827515; +383.0760498046875, 0.34731626510620117; +383.176025390625, 0.348798930644989; +383.2760314941406, 0.35180896520614624; +383.37603759765625, 0.3535524010658264; +383.47601318359375, 0.3538653254508972; +383.5760192871094, 0.3529265522956848; +383.6759948730469, 0.35202503204345703; +383.7760009765625, 0.3514289855957031; +383.8760070800781, 0.3532692790031433; +383.9759826660156, 0.3610178828239441; +384.07598876953125, 0.37323683500289917; +384.17596435546875, 0.3847777843475342; +384.2759704589844, 0.3925412893295288; +384.3759765625, 0.3958791494369507; +384.4759521484375, 0.39374083280563354; +384.5759582519531, 0.38548558950424194; +384.6759338378906, 0.3744959831237793; +384.77593994140625, 0.3651231527328491; +384.8759460449219, 0.3596469759941101; +384.9759216308594, 0.3580451011657715; +385.075927734375, 0.3594532608985901; +385.1759033203125, 0.3628656268119812; +385.2759094238281, 0.36854296922683716; +385.37591552734375, 0.37745386362075806; +385.47589111328125, 0.38865208625793457; +385.5758972167969, 0.397704541683197; +385.6758728027344, 0.40090084075927734; +385.77587890625, 0.4004836082458496; +385.8758544921875, 0.39821863174438477; +385.9758605957031, 0.3943145275115967; +386.07586669921875, 0.3869161009788513; +386.17584228515625, 0.3786012530326843; +386.2758483886719, 0.37273019552230835; +386.3758239746094, 0.36916881799697876; +386.475830078125, 0.36704540252685547; +386.5758361816406, 0.3703311085700989; +386.6758117675781, 0.3796517848968506; +386.77581787109375, 0.3912597894668579; +386.87579345703125, 0.3999248147010803; +386.9757995605469, 0.4040375351905823; +387.0758056640625, 0.4040822386741638; +387.17578125, 0.39752572774887085; +387.2757873535156, 0.38696080446243286; +387.3757629394531, 0.37566572427749634; +387.47576904296875, 0.36750733852386475; +387.5757751464844, 0.36450475454330444; +387.6757507324219, 0.36491453647613525; +387.7757568359375, 0.3666803240776062; +387.875732421875, 0.366896390914917; +387.9757385253906, 0.36650896072387695; +388.07574462890625, 0.367090106010437; +388.17572021484375, 0.3665909171104431; +388.2757263183594, 0.3657117486000061; +388.3757019042969, 0.36632269620895386; +388.4757080078125, 0.37047266960144043; +388.5757141113281, 0.3753155469894409; +388.6756896972656, 0.3794655203819275; +388.77569580078125, 0.382743775844574; +388.87567138671875, 0.3858804702758789; +388.9756774902344, 0.3854706883430481; +389.07568359375, 0.3789141774177551; +389.1756591796875, 0.3711581230163574; +389.2756652832031, 0.3649219870567322; +389.3756408691406, 0.3641471266746521; +389.47564697265625, 0.3679543733596802; +389.5756530761719, 0.37642568349838257; +389.6756286621094, 0.3877505660057068; +389.775634765625, 0.39845705032348633; +389.8756103515625, 0.4080832004547119; +389.9756164550781, 0.41359663009643555; +390.0755920410156, 0.41124969720840454; +390.17559814453125, 0.4001110792160034; +390.2756042480469, 0.38423389196395874; +390.3755798339844, 0.36647915840148926; +390.4755859375, 0.3499165177345276; +390.5755615234375, 0.33852458000183105; +390.6755676269531, 0.336185097694397; +390.77557373046875, 0.34127384424209595; +390.87554931640625, 0.347331166267395; +390.9755554199219, 0.35112351179122925; +391.0755310058594, 0.3504157066345215; +391.175537109375, 0.34587085247039795; +391.2755432128906, 0.3383904695510864; +391.3755187988281, 0.33318251371383667; +391.47552490234375, 0.3350451588630676; +391.57550048828125, 0.3450140357017517; +391.6755065917969, 0.3595277667045593; +391.7755126953125, 0.3721565008163452; +391.87548828125, 0.3790706396102905; +391.9754943847656, 0.3784447908401489; +392.0754699707031, 0.372961163520813; +392.17547607421875, 0.3646761178970337; +392.2754821777344, 0.35740435123443604; +392.3754577636719, 0.3569573163986206; +392.4754638671875, 0.3631114959716797; +392.575439453125, 0.3704279661178589; +392.6754455566406, 0.3752484917640686; +392.77545166015625, 0.37836283445358276; +392.87542724609375, 0.3809928894042969; +392.9754333496094, 0.37920475006103516; +393.0754089355469, 0.3756210207939148; +393.1754150390625, 0.3717392683029175; +393.2754211425781, 0.37023425102233887; +393.3753967285156, 0.3704652190208435; +393.47540283203125, 0.3685206174850464; +393.57537841796875, 0.3606751561164856; +393.6753845214844, 0.34665316343307495; +393.775390625, 0.3347620368003845; +393.8753662109375, 0.32592564821243286; +393.9753723144531, 0.3210529685020447; +394.0753479003906, 0.3217533230781555; +394.17535400390625, 0.32954663038253784; +394.27532958984375, 0.3412216901779175; +394.3753356933594, 0.3535524010658264; +394.475341796875, 0.36525726318359375; +394.5753173828125, 0.37360936403274536; +394.6753234863281, 0.376775860786438; +394.7752990722656, 0.3769099712371826; +394.87530517578125, 0.3744885325431824; +394.9753112792969, 0.368557870388031; +395.0752868652344, 0.3601387143135071; +395.17529296875, 0.3541111946105957; +395.2752685546875, 0.3530755639076233; +395.3752746582031, 0.35484880208969116; +395.47528076171875, 0.35712867975234985; +395.57525634765625, 0.356525182723999; +395.6752624511719, 0.35512447357177734; +395.7752380371094, 0.3522038459777832; +395.875244140625, 0.3459751605987549; +395.9752502441406, 0.3364458680152893; +396.0752258300781, 0.3264695405960083; +396.17523193359375, 0.31935423612594604; +396.27520751953125, 0.3168955445289612; +396.3752136230469, 0.31667202711105347; +396.4752197265625, 0.31942129135131836; +396.5751953125, 0.32401829957962036; +396.6752014160156, 0.3305375576019287; +396.7751770019531, 0.339604914188385; +396.87518310546875, 0.3432631492614746; +396.9751892089844, 0.34252554178237915; +397.0751647949219, 0.3363564610481262; +397.1751708984375, 0.3313794732093811; +397.275146484375, 0.33126771450042725; +397.3751525878906, 0.3336668014526367; +397.47515869140625, 0.3382861614227295; +397.57513427734375, 0.34121423959732056; +397.6751403808594, 0.34562498331069946; +397.7751159667969, 0.3511384129524231; +397.8751220703125, 0.35528838634490967; +397.97509765625, 0.3601759672164917; +398.0751037597656, 0.36785006523132324; +398.17510986328125, 0.3765374422073364; +398.27508544921875, 0.38060545921325684; +398.3750915527344, 0.3776848316192627; +398.4750671386719, 0.37375837564468384; +398.5750732421875, 0.3702118992805481; +398.6750793457031, 0.3667175769805908; +398.7750549316406, 0.36222487688064575; +398.87506103515625, 0.3577917814254761; +398.97503662109375, 0.3561154007911682; +399.0750427246094, 0.35691261291503906; +399.175048828125, 0.36046653985977173; +399.2750244140625, 0.36200881004333496; +399.3750305175781, 0.3615543246269226; +399.4750061035156, 0.3622397780418396; +399.57501220703125, 0.3618374466896057; +399.6750183105469, 0.3580749034881592; +399.7749938964844, 0.3470107913017273; +399.875, 0.3345608711242676; +399.9749755859375, 0.32648444175720215; +400.0749816894531, 0.32357126474380493; +400.17498779296875, 0.32667070627212524; +400.27496337890625, 0.3306865692138672; +400.3749694824219, 0.3327503800392151; +400.4749450683594, 0.33129751682281494; +400.574951171875, 0.33042579889297485; +400.6749572753906, 0.33523887395858765; +400.7749328613281, 0.3442913293838501; +400.87493896484375, 0.35240501165390015; +400.97491455078125, 0.35928189754486084; +401.0749206542969, 0.36618858575820923; +401.1749267578125, 0.3708004951477051; +401.27490234375, 0.3715977072715759; +401.3749084472656, 0.3692731261253357; +401.4748840332031, 0.365331768989563; +401.57489013671875, 0.36222487688064575; +401.6748962402344, 0.36253780126571655; +401.7748718261719, 0.3657713532447815; +401.8748779296875, 0.3650858998298645; +401.974853515625, 0.357992947101593; +402.0748596191406, 0.35256892442703247; +402.1748352050781, 0.3507062792778015; +402.27484130859375, 0.35150349140167236; +402.3748474121094, 0.3556087613105774; +402.4748229980469, 0.3624260425567627; +402.5748291015625, 0.36951154470443726; +402.6748046875, 0.3721565008163452; +402.7748107910156, 0.3733783960342407; +402.87481689453125, 0.3744661808013916; +402.97479248046875, 0.3724247217178345; +403.0747985839844, 0.3688335418701172; +403.1747741699219, 0.36623328924179077; +403.2747802734375, 0.36707520484924316; +403.3747863769531, 0.36787986755371094; +403.4747619628906, 0.3647357225418091; +403.57476806640625, 0.357702374458313; +403.67474365234375, 0.3493204712867737; +403.7747497558594, 0.34439563751220703; +403.874755859375, 0.34096091985702515; +403.9747314453125, 0.3388449549674988; +404.0747375488281, 0.3404542803764343; +404.1747131347656, 0.34628063440322876; +404.27471923828125, 0.3541335463523865; +404.3747253417969, 0.35766512155532837; +404.4747009277344, 0.3596469759941101; +404.57470703125, 0.3628581762313843; +404.6746826171875, 0.36722421646118164; +404.7746887207031, 0.3743767738342285; +404.87469482421875, 0.3819093108177185; +404.97467041015625, 0.3892481327056885; +405.0746765136719, 0.39233267307281494; +405.1746520996094, 0.39048492908477783; +405.274658203125, 0.3867596387863159; +405.3746643066406, 0.3805086016654968; +405.4746398925781, 0.37385523319244385; +405.57464599609375, 0.36803632974624634; +405.67462158203125, 0.36497414112091064; +405.7746276855469, 0.36375224590301514; +405.8746337890625, 0.36282092332839966; +405.974609375, 0.36228448152542114; +406.0746154785156, 0.3617629408836365; +406.1745910644531, 0.3619864583015442; +406.27459716796875, 0.3613606095314026; +406.37457275390625, 0.36081671714782715; +406.4745788574219, 0.35963207483291626; +406.5745849609375, 0.35871565341949463; +406.674560546875, 0.35879015922546387; +406.7745666503906, 0.36088377237319946; +406.8745422363281, 0.3670826554298401; +406.97454833984375, 0.3755837678909302; +407.0745544433594, 0.3825649619102478; +407.1745300292969, 0.3849044442176819; +407.2745361328125, 0.38189440965652466; +407.37451171875, 0.37432461977005005; +407.4745178222656, 0.36475807428359985; +407.57452392578125, 0.3558620810508728; +407.67449951171875, 0.3513321280479431; +407.7745056152344, 0.35124272108078003; +407.8744812011719, 0.35497546195983887; +407.9744873046875, 0.3590807318687439; +408.0744934082031, 0.3617703914642334; +408.1744689941406, 0.36375224590301514; +408.27447509765625, 0.36529451608657837; +408.37445068359375, 0.36541372537612915; +408.4744567871094, 0.36253780126571655; +408.574462890625, 0.36165863275527954; +408.6744384765625, 0.36507099866867065; +408.7744445800781, 0.37073343992233276; +408.8744201660156, 0.37316232919692993; +408.97442626953125, 0.37389248609542847; +409.0744323730469, 0.3788992762565613; +409.1744079589844, 0.389881432056427; +409.2744140625, 0.40375441312789917; +409.3743896484375, 0.41718780994415283; +409.4743957519531, 0.42866915464401245; +409.57440185546875, 0.4345700144767761; +409.67437744140625, 0.4337579011917114; +409.7743835449219, 0.42559951543807983; +409.8743591308594, 0.41134655475616455; +409.974365234375, 0.39245933294296265; +410.0743713378906, 0.37616491317749023; +410.1743469238281, 0.36831945180892944; +410.27435302734375, 0.36726146936416626; +410.37432861328125, 0.36898255348205566; +410.4743347167969, 0.37276744842529297; +410.5743103027344, 0.37829577922821045; +410.67431640625, 0.38123875856399536; +410.7743225097656, 0.38123130798339844; +410.8742980957031, 0.3811493515968323; +410.97430419921875, 0.38477033376693726; +411.07427978515625, 0.3907307982444763; +411.1742858886719, 0.3980398178100586; +411.2742919921875, 0.40584057569503784; +411.374267578125, 0.40828436613082886; +411.4742736816406, 0.40234625339508057; +411.5742492675781, 0.3899484872817993; +411.67425537109375, 0.37785619497299194; +411.7742614746094, 0.37015974521636963; +411.8742370605469, 0.3664866089820862; +411.9742431640625, 0.3675892949104309; +412.07421875, 0.37407130002975464; +412.1742248535156, 0.38410723209381104; +412.27423095703125, 0.39555877447128296; +412.37420654296875, 0.40552765130996704; +412.4742126464844, 0.41365623474121094; +412.5741882324219, 0.41875243186950684; +412.6741943359375, 0.41753053665161133; +412.7742004394531, 0.410713255405426; +412.8741760253906, 0.40262192487716675; +412.97418212890625, 0.3976672887802124; +413.07415771484375, 0.39580464363098145; +413.1741638183594, 0.3947243094444275; +413.274169921875, 0.3961920738220215; +413.3741455078125, 0.400736927986145; +413.4741516113281, 0.40659308433532715; +413.5741271972656, 0.4123374819755554; +413.67413330078125, 0.41806697845458984; +413.7741394042969, 0.42466074228286743; +413.8741149902344, 0.43048709630966187; +413.97412109375, 0.43586641550064087; +414.0740966796875, 0.438101589679718; +414.1741027832031, 0.43513625860214233; +414.2740783691406, 0.4248693585395813; +414.37408447265625, 0.4127919673919678; +414.4740905761719, 0.4053637385368347; +414.5740661621094, 0.4000663757324219; +414.674072265625, 0.3941655158996582; +414.7740478515625, 0.386655330657959; +414.8740539550781, 0.3855600953102112; +414.97406005859375, 0.39183348417282104; +415.07403564453125, 0.4013925790786743; +415.1740417480469, 0.409834086894989; +415.2740173339844, 0.41434913873672485; +415.3740234375, 0.4165917634963989; +415.4740295410156, 0.4154816269874573; +415.5740051269531, 0.4118606448173523; +415.67401123046875, 0.40734559297561646; +415.77398681640625, 0.4046112298965454; +415.8739929199219, 0.40746480226516724; +415.9739990234375, 0.4130452871322632; +416.073974609375, 0.41887909173965454; +416.1739807128906, 0.4235878586769104; +416.2739562988281, 0.42638927698135376; +416.37396240234375, 0.4262179136276245; +416.4739685058594, 0.4230961203575134; +416.5739440917969, 0.42150914669036865; +416.6739501953125, 0.42176246643066406; +416.77392578125, 0.4218295216560364; +416.8739318847656, 0.41872262954711914; +416.97393798828125, 0.41857361793518066; +417.07391357421875, 0.4231855273246765; +417.1739196777344, 0.429399311542511; +417.2738952636719, 0.43448060750961304; +417.3739013671875, 0.43732672929763794; +417.4739074707031, 0.44085830450057983; +417.5738830566406, 0.44161826372146606; +417.67388916015625, 0.43833255767822266; +417.77386474609375, 0.4345029592514038; +417.8738708496094, 0.43244659900665283; +417.973876953125, 0.43345242738723755; +418.0738525390625, 0.4363059997558594; +418.1738586425781, 0.44142454862594604; +418.2738342285156, 0.4501268267631531; +418.37384033203125, 0.45862793922424316; +418.47381591796875, 0.46300143003463745; +418.5738220214844, 0.4619583487510681; +418.673828125, 0.4590451717376709; +418.7738037109375, 0.45596063137054443; +418.8738098144531, 0.4517659544944763; +418.9737854003906, 0.4456639289855957; +419.07379150390625, 0.44058263301849365; +419.1737976074219, 0.4386231303215027; +419.2737731933594, 0.4379674792289734; +419.373779296875, 0.4377886652946472; +419.4737548828125, 0.4333704710006714; +419.5737609863281, 0.42532384395599365; +419.67376708984375, 0.4174262285232544; +419.77374267578125, 0.4110187292098999; +419.8737487792969, 0.4074275493621826; +419.9737243652344, 0.4037395119667053; +420.07373046875, 0.40306150913238525; +420.1737365722656, 0.4061758518218994; +420.2737121582031, 0.4107654094696045; +420.37371826171875, 0.41598081588745117; +420.47369384765625, 0.41875988245010376; +420.5736999511719, 0.42010098695755005; +420.6737060546875, 0.420108437538147; +420.773681640625, 0.41982531547546387; +420.8736877441406, 0.4216209053993225; +420.9736633300781, 0.42764097452163696; +421.07366943359375, 0.43498724699020386; +421.1736755371094, 0.4384070634841919; +421.2736511230469, 0.4391521215438843; +421.3736572265625, 0.4405006766319275; +421.4736328125, 0.4395022988319397; +421.5736389160156, 0.4302188754081726; +421.67364501953125, 0.4160180687904358; +421.77362060546875, 0.4043653607368469; +421.8736267089844, 0.39683282375335693; +421.9736022949219, 0.3907531499862671; +422.0736083984375, 0.3870353102684021; +422.1736145019531, 0.3872215747833252; +422.2735900878906, 0.390760600566864; +422.37359619140625, 0.39877742528915405; +422.47357177734375, 0.4108622670173645; +422.5735778808594, 0.4234015941619873; +422.6735534667969, 0.43150782585144043; +422.7735595703125, 0.43798983097076416; +422.8735656738281, 0.44646114110946655; +422.9735412597656, 0.4511922597885132; +423.07354736328125, 0.4489794373512268; +423.17352294921875, 0.44229626655578613; +423.2735290527344, 0.4366263747215271; +423.37353515625, 0.42969733476638794; +423.4735107421875, 0.42003393173217773; +423.5735168457031, 0.41372328996658325; +423.6734924316406, 0.41043758392333984; +423.77349853515625, 0.4097670316696167; +423.8735046386719, 0.41162967681884766; +423.9734802246094, 0.41788816452026367; +424.073486328125, 0.423334538936615; +424.1734619140625, 0.4222095012664795; +424.2734680175781, 0.4167482256889343; +424.37347412109375, 0.4101097583770752; +424.47344970703125, 0.4031360149383545; +424.5734558105469, 0.3962516784667969; +424.6734313964844, 0.39193034172058105; +424.7734375, 0.3903508186340332; +424.8734436035156, 0.3916919231414795; +424.9734191894531, 0.39468705654144287; +425.07342529296875, 0.39502978324890137; +425.17340087890625, 0.3896579146385193; +425.2734069824219, 0.38148462772369385; +425.3734130859375, 0.37600845098495483; +425.473388671875, 0.37370622158050537; +425.5733947753906, 0.3725811839103699; +425.6733703613281, 0.3750026226043701; +425.77337646484375, 0.3844648599624634; +425.8733825683594, 0.4009753465652466; +425.9733581542969, 0.41719526052474976; +426.0733642578125, 0.4255622625350952; +426.17333984375, 0.4240870475769043; +426.2733459472656, 0.4176422953605652; +426.37335205078125, 0.4103556275367737; +426.47332763671875, 0.3999099135398865; +426.5733337402344, 0.386752188205719; +426.6733093261719, 0.37626177072525024; +426.7733154296875, 0.3717392683029175; +426.873291015625, 0.37276744842529297; +426.9732971191406, 0.37457048892974854; +427.07330322265625, 0.37864595651626587; +427.17327880859375, 0.3840699791908264; +427.2732849121094, 0.38674473762512207; +427.3732604980469, 0.3862306475639343; +427.4732666015625, 0.3821626305580139; +427.5732727050781, 0.37838518619537354; +427.6732482910156, 0.3759041428565979; +427.77325439453125, 0.3763958811759949; +427.87322998046875, 0.3822594881057739; +427.9732360839844, 0.3927275538444519; +428.0732421875, 0.4033297300338745; +428.1732177734375, 0.4095807671546936; +428.2732238769531, 0.40858983993530273; +428.3731994628906, 0.4018545150756836; +428.47320556640625, 0.389784574508667; +428.5732116699219, 0.3757402300834656; +428.6731872558594, 0.3643408417701721; +428.773193359375, 0.3593713045120239; +428.8731689453125, 0.36035478115081787; +428.9731750488281, 0.3647059202194214; +429.07318115234375, 0.37348270416259766; +429.17315673828125, 0.38198381662368774; +429.2731628417969, 0.3861039876937866; +429.3731384277344, 0.38583576679229736; +429.47314453125, 0.38301944732666016; +429.5731506347656, 0.3803521394729614; +429.6731262207031, 0.3773421049118042; +429.77313232421875, 0.37545710802078247; +429.87310791015625, 0.37747621536254883; +429.9731140136719, 0.3784075379371643; +430.0731201171875, 0.3778040409088135; +430.173095703125, 0.37617236375808716; +430.2731018066406, 0.3723427653312683; +430.3730773925781, 0.3694966435432434; +430.47308349609375, 0.36565959453582764; +430.57305908203125, 0.3614872694015503; +430.6730651855469, 0.3573670983314514; +430.7730712890625, 0.3541409969329834; +430.873046875, 0.3568902611732483; +430.9730529785156, 0.3649517893791199; +431.0730285644531, 0.3779903054237366; +431.17303466796875, 0.39429962635040283; +431.2730407714844, 0.4109293222427368; +431.3730163574219, 0.4224032163619995; +431.4730224609375, 0.4241243004798889; +431.572998046875, 0.41281431913375854; +431.6730041503906, 0.3956109285354614; +431.77301025390625, 0.3810599446296692; +431.87298583984375, 0.3724396228790283; +431.9729919433594, 0.370614230632782; +432.0729675292969, 0.37276744842529297; +432.1729736328125, 0.3816261887550354; +432.2729797363281, 0.38976967334747314; +432.3729553222656, 0.3912299871444702; +432.47296142578125, 0.3857463598251343; +432.57293701171875, 0.3789439797401428; +432.6729431152344, 0.3778189420700073; +432.77294921875, 0.3806799650192261; +432.8729248046875, 0.38636475801467896; +432.9729309082031, 0.3938823938369751; +433.0729064941406, 0.40218979120254517; +433.17291259765625, 0.408366322517395; +433.2729187011719, 0.41081756353378296; +433.3728942871094, 0.4078671336174011; +433.472900390625, 0.40090084075927734; +433.5728759765625, 0.39348751306533813; +433.6728820800781, 0.3876909613609314; +433.77288818359375, 0.38261711597442627; +433.87286376953125, 0.37564337253570557; +433.9728698730469, 0.3718063235282898; +434.0728454589844, 0.37404149770736694; +434.1728515625, 0.37901103496551514; +434.2728576660156, 0.38351118564605713; +434.3728332519531, 0.3878772258758545; +434.47283935546875, 0.3942325711250305; +434.57281494140625, 0.4001408815383911; +434.6728210449219, 0.4027709364891052; +434.7727966308594, 0.39933621883392334; +434.872802734375, 0.39096176624298096; +434.9728088378906, 0.38442015647888184; +435.0727844238281, 0.3821924328804016; +435.17279052734375, 0.38511306047439575; +435.27276611328125, 0.39067864418029785; +435.3727722167969, 0.4005357623100281; +435.4727783203125, 0.41328370571136475; +435.57275390625, 0.422745943069458; +435.6727600097656, 0.4275515675544739; +435.7727355957031, 0.4264041781425476; +435.87274169921875, 0.42129307985305786; +435.9727478027344, 0.4154965281486511; +436.0727233886719, 0.4130154848098755; +436.1727294921875, 0.4129260778427124; +436.272705078125, 0.4112422466278076; +436.3727111816406, 0.40668249130249023; +436.47271728515625, 0.4024431109428406; +436.57269287109375, 0.4002675414085388; +436.6726989746094, 0.3970786929130554; +436.7726745605469, 0.3924369812011719; +436.8726806640625, 0.38871169090270996; +436.9726867675781, 0.3912821412086487; +437.0726623535156, 0.40172040462493896; +437.17266845703125, 0.41376054286956787; +437.27264404296875, 0.42603909969329834; +437.3726501464844, 0.4408508539199829; +437.47265625, 0.4564225673675537; +437.5726318359375, 0.4641488194465637; +437.6726379394531, 0.45812875032424927; +437.7726135253906, 0.4445984959602356; +437.87261962890625, 0.4286468029022217; +437.9726257324219, 0.40943920612335205; +438.0726013183594, 0.39030611515045166; +438.172607421875, 0.3794357180595398; +438.2725830078125, 0.37951022386550903; +438.3725891113281, 0.38436055183410645; +438.47259521484375, 0.3897175192832947; +438.57257080078125, 0.3982335329055786; +438.6725769042969, 0.40972232818603516; +438.7725524902344, 0.4190504550933838; +438.87255859375, 0.4235208034515381; +438.9725341796875, 0.42676180601119995; +439.0725402832031, 0.428907573223114; +439.17254638671875, 0.4254952073097229; +439.27252197265625, 0.41703879833221436; +439.3725280761719, 0.4083588719367981; +439.4725036621094, 0.40184706449508667; +439.572509765625, 0.394478440284729; +439.6725158691406, 0.3857463598251343; +439.7724914550781, 0.38060545921325684; +439.87249755859375, 0.38126111030578613; +439.97247314453125, 0.386752188205719; +440.0724792480469, 0.3951415419578552; +440.1724853515625, 0.40449947118759155; +440.2724609375, 0.4147440195083618; +440.3724670410156, 0.42488425970077515; +440.4724426269531, 0.43110549449920654; +440.57244873046875, 0.4323124885559082; +440.6724548339844, 0.42954832315444946; +440.7724304199219, 0.42825937271118164; +440.8724365234375, 0.43213367462158203; +440.972412109375, 0.4383400082588196; +441.0724182128906, 0.4436299204826355; +441.17242431640625, 0.44271349906921387; +441.27239990234375, 0.4372522234916687; +441.3724060058594, 0.429302453994751; +441.4723815917969, 0.41972845792770386; +441.5723876953125, 0.4073530435562134; +441.6723937988281, 0.3949403762817383; +441.7723693847656, 0.38946419954299927; +441.87237548828125, 0.39311498403549194; +441.97235107421875, 0.4007890820503235; +442.0723571777344, 0.4036352038383484; +442.17236328125, 0.40109455585479736; +442.2723388671875, 0.39790570735931396; +442.3723449707031, 0.39664655923843384; +442.4723205566406, 0.3961101174354553; +442.57232666015625, 0.39709359407424927; +442.6723327636719, 0.40334463119506836; +442.7723083496094, 0.4138350486755371; +442.872314453125, 0.4233941435813904; +442.9722900390625, 0.426270067691803; +443.0722961425781, 0.4251152276992798; +443.1722717285156, 0.4220157861709595; +443.27227783203125, 0.4213079810142517; +443.3722839355469, 0.42585283517837524; +443.4722595214844, 0.4357844591140747; +443.572265625, 0.45093148946762085; +443.6722412109375, 0.46197324991226196; +443.7722473144531, 0.4664212465286255; +443.87225341796875, 0.4613548517227173; +443.97222900390625, 0.4512891173362732; +444.0722351074219, 0.4385709762573242; +444.1722106933594, 0.42523443698883057; +444.272216796875, 0.41985511779785156; +444.3722229003906, 0.4216879606246948; +444.4721984863281, 0.4255622625350952; +444.57220458984375, 0.4259571433067322; +444.67218017578125, 0.4245936870574951; +444.7721862792969, 0.42165815830230713; +444.8721923828125, 0.41078031063079834; +444.97216796875, 0.3940016031265259; +445.0721740722656, 0.38120150566101074; +445.1721496582031, 0.37604570388793945; +445.27215576171875, 0.3734901547431946; +445.3721618652344, 0.37000328302383423; +445.4721374511719, 0.3672987222671509; +445.5721435546875, 0.36840885877609253; +445.672119140625, 0.3719627857208252; +445.7721252441406, 0.37603825330734253; +445.87213134765625, 0.38032233715057373; +445.97210693359375, 0.3857463598251343; +446.0721130371094, 0.3946647047996521; +446.1720886230469, 0.40624290704727173; +446.2720947265625, 0.414922833442688; +446.3721008300781, 0.4156380891799927; +446.4720764160156, 0.41000545024871826; +446.57208251953125, 0.40441006422042847; +446.67205810546875, 0.4015713930130005; +446.7720642089844, 0.3976598381996155; +446.8720397949219, 0.3946051001548767; +446.9720458984375, 0.3980100154876709; +447.0720520019531, 0.40344148874282837; +447.1720275878906, 0.403866171836853; +447.27203369140625, 0.397413969039917; +447.37200927734375, 0.392228364944458; +447.4720153808594, 0.3916621208190918; +447.572021484375, 0.39090216159820557; +447.6719970703125, 0.3936663269996643; +447.7720031738281, 0.40303170680999756; +447.8719787597656, 0.4161521792411804; +447.97198486328125, 0.4245862364768982; +448.0719909667969, 0.42366236448287964; +448.1719665527344, 0.4201531410217285; +448.27197265625, 0.417560338973999; +448.3719482421875, 0.4130229353904724; +448.4719543457031, 0.4059597849845886; +448.57196044921875, 0.3995820879936218; +448.67193603515625, 0.39977580308914185; +448.7719421386719, 0.40446966886520386; +448.8719177246094, 0.409543514251709; +448.971923828125, 0.41569769382476807; +449.0719299316406, 0.4224628210067749; +449.1719055175781, 0.42695552110671997; +449.27191162109375, 0.42766332626342773; +449.37188720703125, 0.4258081316947937; +449.4718933105469, 0.4209950566291809; +449.5718994140625, 0.4122704267501831; +449.671875, 0.4021003842353821; +449.7718811035156, 0.39780139923095703; +449.8718566894531, 0.4005730152130127; +449.97186279296875, 0.40647387504577637; +450.0718688964844, 0.41384249925613403; +450.1718444824219, 0.4208385944366455; +450.2718505859375, 0.4294291138648987; +450.371826171875, 0.43336302042007446; +450.4718322753906, 0.42960047721862793; +450.57183837890625, 0.42226165533065796; +450.67181396484375, 0.4150569438934326; +450.7718200683594, 0.40890276432037354; +450.8717956542969, 0.40009617805480957; +450.9718017578125, 0.3930330276489258; +451.07177734375, 0.39032846689224243; +451.1717834472656, 0.38918107748031616; +451.27178955078125, 0.3879815340042114; +451.37176513671875, 0.38848817348480225; +451.4717712402344, 0.39231032133102417; +451.5717468261719, 0.3999173641204834; +451.6717529296875, 0.4085749387741089; +451.7717590332031, 0.4158094525337219; +451.8717346191406, 0.4187151789665222; +451.97174072265625, 0.42001157999038696; +452.07171630859375, 0.4217177629470825; +452.1717224121094, 0.420302152633667; +452.271728515625, 0.4164204001426697; +452.3717041015625, 0.4103034734725952; +452.4717102050781, 0.4047304391860962; +452.5716857910156, 0.39739906787872314; +452.67169189453125, 0.38745254278182983; +452.7716979980469, 0.3784596920013428; +452.8716735839844, 0.37085264921188354; +452.9716796875, 0.3674924373626709; +453.0716552734375, 0.36535412073135376; +453.1716613769531, 0.3638043999671936; +453.27166748046875, 0.36488473415374756; +453.37164306640625, 0.3679320216178894; +453.4716491699219, 0.37188082933425903; +453.5716247558594, 0.37463754415512085; +453.671630859375, 0.3826245665550232; +453.7716369628906, 0.3980100154876709; +453.8716125488281, 0.4146695137023926; +453.97161865234375, 0.42691826820373535; +454.07159423828125, 0.43310970067977905; +454.1716003417969, 0.4352182149887085; +454.2716064453125, 0.4291534423828125; +454.37158203125, 0.4145130515098572; +454.4715881347656, 0.3975033760070801; +454.5715637207031, 0.3841966390609741; +454.67156982421875, 0.3755241632461548; +454.7715759277344, 0.3716498613357544; +454.8715515136719, 0.3731921315193176; +454.9715576171875, 0.3792122006416321; +455.071533203125, 0.38801878690719604; +455.1715393066406, 0.3974810242652893; +455.2715148925781, 0.40756911039352417; +455.37152099609375, 0.4143640398979187; +455.4715270996094, 0.41885673999786377; +455.5715026855469, 0.42241066694259644; +455.6715087890625, 0.42317062616348267; +455.771484375, 0.4192963242530823; +455.8714904785156, 0.41125714778900146; +455.97149658203125, 0.4046410322189331; +456.07147216796875, 0.3991052508354187; +456.1714782714844, 0.3942921757698059; +456.2714538574219, 0.39076805114746094; +456.3714599609375, 0.38958340883255005; +456.4714660644531, 0.3913789987564087; +456.5714416503906, 0.39392709732055664; +456.67144775390625, 0.3984123468399048; +456.77142333984375, 0.4040747880935669; +456.8714294433594, 0.4092603921890259; +456.971435546875, 0.41347742080688477; +457.0714111328125, 0.41538476943969727; +457.1714172363281, 0.41582435369491577; +457.2713928222656, 0.41278451681137085; +457.37139892578125, 0.40693581104278564; +457.4714050292969, 0.4006624221801758; +457.5713806152344, 0.3960728645324707; +457.67138671875, 0.39624422788619995; +457.7713623046875, 0.4012882709503174; +457.8713684082031, 0.41130930185317993; +457.97137451171875, 0.4234611988067627; +458.07135009765625, 0.43267756700515747; +458.1713562011719, 0.4367753863334656; +458.2713317871094, 0.4360973834991455; +458.371337890625, 0.4316568374633789; +458.4713439941406, 0.42344629764556885; +458.5713195800781, 0.41156262159347534; +458.67132568359375, 0.40099769830703735; +458.77130126953125, 0.3950968384742737; +458.8713073730469, 0.39429962635040283; +458.9713134765625, 0.39508938789367676; +459.0712890625, 0.39584189653396606; +459.1712951660156, 0.3992989659309387; +459.2712707519531, 0.4051029682159424; +459.37127685546875, 0.4103332757949829; +459.47125244140625, 0.41122734546661377; +459.5712585449219, 0.4112944006919861; +459.6712646484375, 0.412575900554657; +459.771240234375, 0.41306763887405396; +459.8712463378906, 0.41196495294570923; +459.9712219238281, 0.41194260120391846; +460.07122802734375, 0.41504204273223877; +460.1712341308594, 0.418052077293396; +460.2712097167969, 0.4178285598754883; +460.3712158203125, 0.4149600863456726; +460.47119140625, 0.4120543599128723; +460.5711975097656, 0.40987879037857056; +460.67120361328125, 0.4082322120666504; +460.77117919921875, 0.4068836569786072; +460.8711853027344, 0.40978193283081055; +460.9711608886719, 0.4177466034889221; +461.0711669921875, 0.42845308780670166; +461.1711730957031, 0.4360899329185486; +461.2711486816406, 0.4366561770439148; +461.37115478515625, 0.43264031410217285; +461.47113037109375, 0.42726844549179077; +461.5711364746094, 0.42235106229782104; +461.671142578125, 0.4187151789665222; +461.7711181640625, 0.41750818490982056; +461.8711242675781, 0.4210174083709717; +461.9710998535156, 0.42851269245147705; +462.07110595703125, 0.43605268001556396; +462.1711120605469, 0.44302642345428467; +462.2710876464844, 0.44623762369155884; +462.37109375, 0.4451870918273926; +462.4710693359375, 0.4416927695274353; +462.5710754394531, 0.43760985136032104; +462.67108154296875, 0.4339292645454407; +462.77105712890625, 0.42781978845596313; +462.8710632324219, 0.42364001274108887; +462.9710388183594, 0.4234388470649719; +463.071044921875, 0.4254058003425598; +463.1710205078125, 0.4255324602127075; +463.2710266113281, 0.42413175106048584; +463.37103271484375, 0.42395293712615967; +463.47100830078125, 0.4228949546813965; +463.5710144042969, 0.4199370741844177; +463.6709899902344, 0.41513144969940186; +463.77099609375, 0.41015446186065674; +463.8710021972656, 0.40534138679504395; +463.9709777832031, 0.40169060230255127; +464.07098388671875, 0.3982335329055786; +464.17095947265625, 0.3938749432563782; +464.2709655761719, 0.3894716501235962; +464.3709716796875, 0.3880038857460022; +464.470947265625, 0.39261579513549805; +464.5709533691406, 0.400736927986145; +464.6709289550781, 0.40990114212036133; +464.77093505859375, 0.41569024324417114; +464.8709411621094, 0.418052077293396; +464.9709167480469, 0.4199221730232239; +465.0709228515625, 0.4216432571411133; +465.1708984375, 0.42232125997543335; +465.2709045410156, 0.4195868968963623; +465.37091064453125, 0.4179254174232483; +465.47088623046875, 0.4192665219306946; +465.5708923339844, 0.41961669921875; +465.6708679199219, 0.4131495952606201; +465.7708740234375, 0.39889663457870483; +465.8708801269531, 0.3851950168609619; +465.9708557128906, 0.37692487239837646; +466.07086181640625, 0.3781914710998535; +466.17083740234375, 0.38745254278182983; +466.2708435058594, 0.40096044540405273; +466.370849609375, 0.4166066646575928; +466.4708251953125, 0.42963773012161255; +466.5708312988281, 0.43673813343048096; +466.6708068847656, 0.4330873489379883; +466.77081298828125, 0.4222095012664795; +466.8708190917969, 0.41175633668899536; +466.9707946777344, 0.402696430683136; +467.07080078125, 0.3948807716369629; +467.1707763671875, 0.3901869058609009; +467.2707824707031, 0.3902018070220947; +467.3707580566406, 0.3914833068847656; +467.47076416015625, 0.390566885471344; +467.5707702636719, 0.3890097141265869; +467.6707458496094, 0.3919526934623718; +467.770751953125, 0.3985464572906494; +467.8707275390625, 0.40534138679504395; +467.9707336425781, 0.40809065103530884; +468.07073974609375, 0.4058033227920532; +468.17071533203125, 0.4033893346786499; +468.2707214355469, 0.4007294774055481; +468.3706970214844, 0.39792805910110474; +468.470703125, 0.3948509693145752; +468.5707092285156, 0.39383023977279663; +468.6706848144531, 0.39671361446380615; +468.77069091796875, 0.4008263349533081; +468.87066650390625, 0.40055811405181885; +468.9706726074219, 0.3926903009414673; +469.0706787109375, 0.3799647092819214; +469.170654296875, 0.36985427141189575; +469.2706604003906, 0.36544352769851685; +469.3706359863281, 0.36425888538360596; +469.47064208984375, 0.3686845302581787; +469.5706481933594, 0.3782510757446289; +469.6706237792969, 0.38727372884750366; +469.7706298828125, 0.3919824957847595; +469.87060546875, 0.39196014404296875; +469.9706115722656, 0.39143115282058716; +470.07061767578125, 0.38677453994750977; +470.17059326171875, 0.3825724124908447; +470.2705993652344, 0.38907676935195923; +470.3705749511719, 0.4038810729980469; +470.4705810546875, 0.41819363832473755; +470.5705871582031, 0.42200833559036255; +470.6705627441406, 0.4200786352157593; +470.77056884765625, 0.4154667258262634; +470.87054443359375, 0.4055798053741455; +470.9705505371094, 0.39289146661758423; +471.070556640625, 0.38261711597442627; +471.1705322265625, 0.3830939531326294; +471.2705383300781, 0.393792986869812; +471.3705139160156, 0.4061013460159302; +471.47052001953125, 0.413261353969574; +471.57049560546875, 0.4136413335800171; +471.6705017089844, 0.411108136177063; +471.7705078125, 0.4072338342666626; +471.8704833984375, 0.4014521837234497; +471.9704895019531, 0.39684027433395386; +472.0704650878906, 0.398881733417511; +472.17047119140625, 0.4088357090950012; +472.2704772949219, 0.4221796989440918; +472.3704528808594, 0.43189525604248047; +472.470458984375, 0.43770670890808105; +472.5704345703125, 0.4420280456542969; +472.6704406738281, 0.4423558712005615; +472.77044677734375, 0.4372447729110718; +472.87042236328125, 0.4300326108932495; +472.9704284667969, 0.42732059955596924; +473.0704040527344, 0.4270225763320923; +473.17041015625, 0.42257457971572876; +473.2704162597656, 0.41534751653671265; +473.3703918457031, 0.4095211625099182; +473.47039794921875, 0.40441006422042847; +473.57037353515625, 0.3958791494369507; +473.6703796386719, 0.387534499168396; +473.7703857421875, 0.38795918226242065; +473.870361328125, 0.39967894554138184; +473.9703674316406, 0.41846930980682373; +474.0703430175781, 0.4392266273498535; +474.17034912109375, 0.45878440141677856; +474.2703552246094, 0.4720836877822876; +474.3703308105469, 0.4756227135658264; +474.4703369140625, 0.46787410974502563; +474.5703125, 0.4505068063735962; +474.6703186035156, 0.4280880093574524; +474.77032470703125, 0.4060715436935425; +474.87030029296875, 0.3899410367012024; +474.9703063964844, 0.3811568021774292; +475.0702819824219, 0.38117915391921997; +475.1702880859375, 0.3887861967086792; +475.2702941894531, 0.39967894554138184; +475.3702697753906, 0.40888041257858276; +475.47027587890625, 0.413455069065094; +475.57025146484375, 0.41553378105163574; +475.6702575683594, 0.41653215885162354; +475.7702331542969, 0.41638314723968506; +475.8702392578125, 0.41272491216659546; +475.9702453613281, 0.40683895349502563; +476.0702209472656, 0.40394067764282227; +476.17022705078125, 0.40328502655029297; +476.27020263671875, 0.39789825677871704; +476.3702087402344, 0.3878474235534668; +476.47021484375, 0.3820061683654785; +476.5701904296875, 0.38896501064300537; +476.6701965332031, 0.4040375351905823; +476.7701721191406, 0.41966140270233154; +476.87017822265625, 0.4350394010543823; +476.9701843261719, 0.4492327570915222; +477.0701599121094, 0.46194344758987427; +477.170166015625, 0.46450644731521606; +477.2701416015625, 0.4559159278869629; +477.3701477050781, 0.44145435094833374; +477.47015380859375, 0.42745471000671387; +477.57012939453125, 0.4173889756202698; +477.6701354980469, 0.4078224301338196; +477.7701110839844, 0.4058554768562317; +477.8701171875, 0.4136189818382263; +477.9701232910156, 0.4272535443305969; +478.0700988769531, 0.43730437755584717; +478.17010498046875, 0.438883900642395; +478.27008056640625, 0.4340857267379761; +478.3700866699219, 0.4226267337799072; +478.4700927734375, 0.4087090492248535; +478.570068359375, 0.3963783383369446; +478.6700744628906, 0.39198994636535645; +478.7700500488281, 0.39614737033843994; +478.87005615234375, 0.406511127948761; +478.9700622558594, 0.41694194078445435; +479.0700378417969, 0.4215613007545471; +479.1700439453125, 0.4210919141769409; +479.27001953125, 0.41716545820236206; +479.3700256347656, 0.41466206312179565; +479.47003173828125, 0.4135146737098694; +479.57000732421875, 0.41491538286209106; +479.6700134277344, 0.4180446267127991; +479.7699890136719, 0.42222440242767334; +479.8699951171875, 0.4258006811141968; +479.969970703125, 0.42413920164108276; +480.0699768066406, 0.4190206527709961; +480.16998291015625, 0.41493773460388184; +480.26995849609375, 0.41472911834716797; +480.3699645996094, 0.4145503044128418; +480.4699401855469, 0.41119009256362915; +480.5699462890625, 0.4071369767189026; +480.6699523925781, 0.4037618637084961; +480.7699279785156, 0.39915740489959717; +480.86993408203125, 0.3950446844100952; +480.96990966796875, 0.3930330276489258; +481.0699157714844, 0.39461255073547363; +481.169921875, 0.39862096309661865; +481.2698974609375, 0.40527433156967163; +481.3699035644531, 0.4132464528083801; +481.4698791503906, 0.41560083627700806; +481.56988525390625, 0.41037052869796753; +481.6698913574219, 0.4008188843727112; +481.7698669433594, 0.39071589708328247; +481.869873046875, 0.3812536597251892; +481.9698486328125, 0.3754124045372009; +482.0698547363281, 0.3776475787162781; +482.16986083984375, 0.38858503103256226; +482.26983642578125, 0.40274113416671753; +482.3698425292969, 0.414237380027771; +482.4698181152344, 0.4213303327560425; +482.56982421875, 0.4250854253768921; +482.6698303222656, 0.42844563722610474; +482.7698059082031, 0.43164193630218506; +482.86981201171875, 0.43433159589767456; +482.96978759765625, 0.43380260467529297; +483.0697937011719, 0.42966753244400024; +483.1697998046875, 0.42319297790527344; +483.269775390625, 0.4176199436187744; +483.3697814941406, 0.41382014751434326; +483.4697570800781, 0.40934234857559204; +483.56976318359375, 0.4069134593009949; +483.66973876953125, 0.4064515233039856; +483.7697448730469, 0.405140221118927; +483.8697509765625, 0.39876997470855713; +483.9697265625, 0.3898218274116516; +484.0697326660156, 0.38580596446990967; +484.1697082519531, 0.3884062170982361; +484.26971435546875, 0.3952831029891968; +484.3697204589844, 0.40334463119506836; +484.4696960449219, 0.4088655114173889; +484.5697021484375, 0.4100799560546875; +484.669677734375, 0.40809810161590576; +484.7696838378906, 0.40596723556518555; +484.86968994140625, 0.40438026189804077; +484.96966552734375, 0.40122121572494507; +485.0696716308594, 0.39883702993392944; +485.1696472167969, 0.39981305599212646; +485.2696533203125, 0.402696430683136; +485.3696594238281, 0.40456652641296387; +485.4696350097656, 0.4064217209815979; +485.56964111328125, 0.41259825229644775; +485.66961669921875, 0.41954219341278076; +485.7696228027344, 0.42460858821868896; +485.86962890625, 0.4270300269126892; +485.9696044921875, 0.4298463463783264; +486.0696105957031, 0.43020397424697876; +486.1695861816406, 0.42526423931121826; +486.26959228515625, 0.4164949059486389; +486.3695983886719, 0.40619075298309326; +486.4695739746094, 0.39952248334884644; +486.569580078125, 0.39484351873397827; +486.6695556640625, 0.39158761501312256; +486.7695617675781, 0.38701295852661133; +486.86956787109375, 0.3846660256385803; +486.96954345703125, 0.3842785954475403; +487.0695495605469, 0.3809407353401184; +487.1695251464844, 0.375404953956604; +487.26953125, 0.3744661808013916; +487.3695373535156, 0.3805309534072876; +487.4695129394531, 0.38648396730422974; +487.56951904296875, 0.38983672857284546; +487.66949462890625, 0.3938153386116028; +487.7695007324219, 0.40124356746673584; +487.8694763183594, 0.4074573516845703; +487.969482421875, 0.40934979915618896; +488.0694885253906, 0.408954918384552; +488.1694641113281, 0.4100203514099121; +488.26947021484375, 0.4124641418457031; +488.36944580078125, 0.4115849733352661; +488.4694519042969, 0.40559470653533936; +488.5694580078125, 0.400051474571228; +488.66943359375, 0.3997981548309326; +488.7694396972656, 0.4011690616607666; +488.8694152832031, 0.4021003842353821; +488.96942138671875, 0.40377676486968994; +489.0694274902344, 0.4104152321815491; +489.1694030761719, 0.42025744915008545; +489.2694091796875, 0.42808055877685547; +489.369384765625, 0.43338537216186523; +489.4693908691406, 0.43676793575286865; +489.56939697265625, 0.4387795925140381; +489.66937255859375, 0.4373490810394287; +489.7693786621094, 0.4322528839111328; +489.8693542480469, 0.4263147711753845; +489.9693603515625, 0.4231780767440796; +490.0693664550781, 0.42144954204559326; +490.1693420410156, 0.42244046926498413; +490.26934814453125, 0.42647868394851685; +490.36932373046875, 0.430867075920105; +490.4693298339844, 0.43579936027526855; +490.5693359375, 0.440157949924469; +490.6693115234375, 0.4458576440811157; +490.7693176269531, 0.4481971263885498; +490.8692932128906, 0.44495612382888794; +490.96929931640625, 0.44011324644088745; +491.0693054199219, 0.4340261220932007; +491.1692810058594, 0.4279389977455139; +491.269287109375, 0.41982531547546387; +491.3692626953125, 0.41203945875167847; +491.4692687988281, 0.4058852791786194; +491.56927490234375, 0.40180981159210205; +491.66925048828125, 0.40206313133239746; +491.7692565917969, 0.40371716022491455; +491.8692321777344, 0.4075393080711365; +491.96923828125, 0.41178613901138306; +492.0692138671875, 0.41773170232772827; +492.1692199707031, 0.4253312945365906; +492.26922607421875, 0.4321858286857605; +492.36920166015625, 0.4387199878692627; +492.4692077636719, 0.44111907482147217; +492.5691833496094, 0.4436299204826355; +492.669189453125, 0.4470646381378174; +492.7691955566406, 0.4494115710258484; +492.8691711425781, 0.44855475425720215; +492.96917724609375, 0.44664740562438965; +493.06915283203125, 0.4494711756706238; +493.1691589355469, 0.45296549797058105; +493.2691650390625, 0.45346468687057495; +493.369140625, 0.45262277126312256; +493.4691467285156, 0.45471638441085815; +493.5691223144531, 0.45574456453323364; +493.66912841796875, 0.4528835415840149; +493.7691345214844, 0.44608861207962036; +493.8691101074219, 0.4372596740722656; +493.9691162109375, 0.426754355430603; +494.069091796875, 0.4137307405471802; +494.1690979003906, 0.404946506023407; +494.26910400390625, 0.401817262172699; +494.36907958984375, 0.40256232023239136; +494.4690856933594, 0.40499866008758545; +494.5690612792969, 0.4070699214935303; +494.6690673828125, 0.40931999683380127; +494.7690734863281, 0.4085451364517212; +494.8690490722656, 0.4038289189338684; +494.96905517578125, 0.3999248147010803; +495.06903076171875, 0.401228666305542; +495.1690368652344, 0.4086345434188843; +495.26904296875, 0.41947513818740845; +495.3690185546875, 0.4304945468902588; +495.4690246582031, 0.439472496509552; +495.5690002441406, 0.44401735067367554; +495.66900634765625, 0.4424378275871277; +495.7690124511719, 0.43563544750213623; +495.8689880371094, 0.4280209541320801; +495.968994140625, 0.4214644432067871; +496.0689697265625, 0.41550397872924805; +496.1689758300781, 0.40847063064575195; +496.2689514160156, 0.4011392593383789; +496.36895751953125, 0.3972575068473816; +496.4689636230469, 0.3929436206817627; +496.5689392089844, 0.3887191414833069; +496.6689453125, 0.3872886300086975; +496.7689208984375, 0.39262324571609497; +496.8689270019531, 0.40312111377716064; +496.96893310546875, 0.41112303733825684; +497.06890869140625, 0.4161149263381958; +497.1689147949219, 0.4193410277366638; +497.2688903808594, 0.4242211580276489; +497.368896484375, 0.42813271284103394; +497.4689025878906, 0.42825937271118164; +497.5688781738281, 0.42697787284851074; +497.66888427734375, 0.42763352394104004; +497.76885986328125, 0.4315227270126343; +497.8688659667969, 0.4331618547439575; +497.9688720703125, 0.43158233165740967; +498.06884765625, 0.4294887185096741; +498.1688537597656, 0.42894482612609863; +498.2688293457031, 0.428810715675354; +498.36883544921875, 0.4248395562171936; +498.4688415527344, 0.4188716411590576; +498.5688171386719, 0.4139021039009094; +498.6688232421875, 0.4127100110054016; +498.768798828125, 0.4131719470024109; +498.8688049316406, 0.4129931330680847; +498.96881103515625, 0.415116548538208; +499.06878662109375, 0.4210248589515686; +499.1687927246094, 0.4271790385246277; +499.2687683105469, 0.4300028085708618; +499.3687744140625, 0.43135136365890503; +499.4687805175781, 0.4332736134529114; +499.5687561035156, 0.4326552152633667; +499.66876220703125, 0.4263445734977722; +499.76873779296875, 0.41916221380233765; +499.8687438964844, 0.4149526357650757; +499.9687194824219, 0.41253864765167236; +500.0687255859375, 0.4092752933502197; +500.1687316894531, 0.40581822395324707; +500.2687072753906, 0.40481239557266235; +500.36871337890625, 0.4074797034263611; +500.46868896484375, 0.4122406244277954; +500.5686950683594, 0.4172325134277344; +500.668701171875, 0.42103976011276245; +500.7686767578125, 0.42388588190078735; +500.8686828613281, 0.42553991079330444; +500.9686584472656, 0.42364001274108887; +501.06866455078125, 0.4196763038635254; +501.1686706542969, 0.41641294956207275; +501.2686462402344, 0.4148706793785095; +501.36865234375, 0.41456520557403564; +501.4686279296875, 0.4145205020904541; +501.5686340332031, 0.4151090979576111; +501.66864013671875, 0.41641294956207275; +501.76861572265625, 0.4184320569038391; +501.8686218261719, 0.42057037353515625; +501.9685974121094, 0.4209280014038086; +502.068603515625, 0.42051076889038086; +502.1686096191406, 0.4208385944366455; +502.2685852050781, 0.42144954204559326; +502.36859130859375, 0.4198625683784485; +502.46856689453125, 0.4183650016784668; +502.5685729980469, 0.4195868968963623; +502.6685791015625, 0.4223957657814026; +502.7685546875, 0.4211217164993286; +502.8685607910156, 0.4133656620979309; +502.9685363769531, 0.40559470653533936; +503.06854248046875, 0.4010424017906189; +503.1685485839844, 0.3998801112174988; +503.2685241699219, 0.3997981548309326; +503.3685302734375, 0.4016980528831482; +503.468505859375, 0.40741264820098877; +503.5685119628906, 0.4117637872695923; +503.66851806640625, 0.41200220584869385; +503.76849365234375, 0.40509551763534546; +503.8684997558594, 0.3926977515220642; +503.9684753417969, 0.38123875856399536; +504.0684814453125, 0.3726184368133545; +504.16845703125, 0.3680586814880371; +504.2684631347656, 0.36447495222091675; +504.36846923828125, 0.36498159170150757; +504.46844482421875, 0.37160515785217285; +504.5684509277344, 0.379219651222229; +504.6684265136719, 0.38511306047439575; +504.7684326171875, 0.39040297269821167; +504.8684387207031, 0.398978590965271; +504.9684143066406, 0.41047483682632446; +505.06842041015625, 0.42297691106796265; +505.16839599609375, 0.4347562789916992; +505.2684020996094, 0.4445016384124756; +505.368408203125, 0.45115500688552856; +505.4683837890625, 0.4538297653198242; +505.5683898925781, 0.45252591371536255; +505.6683654785156, 0.44642388820648193; +505.76837158203125, 0.43836236000061035; +505.8683776855469, 0.42948126792907715; +505.9683532714844, 0.41950494050979614; +506.068359375, 0.40962547063827515; +506.1683349609375, 0.40090084075927734; +506.2683410644531, 0.3956705331802368; +506.36834716796875, 0.39239227771759033; +506.46832275390625, 0.3910064697265625; +506.5683288574219, 0.3934428095817566; +506.6683044433594, 0.3992244601249695; +506.768310546875, 0.40781497955322266; +506.8683166503906, 0.4147067666053772; +506.9682922363281, 0.4186108708381653; +507.06829833984375, 0.4222765564918518; +507.16827392578125, 0.424019992351532; +507.2682800292969, 0.42428821325302124; +507.3682861328125, 0.4213303327560425; +507.46826171875, 0.41988492012023926; +507.5682678222656, 0.42185187339782715; +507.6682434082031, 0.42172521352767944; +507.76824951171875, 0.41765719652175903; +507.8682556152344, 0.40975213050842285; +507.9682312011719, 0.4039257764816284; +508.0682373046875, 0.39943307638168335; +508.168212890625, 0.39699673652648926; +508.2682189941406, 0.3988295793533325; +508.3681945800781, 0.40425360202789307; +508.46820068359375, 0.4098042845726013; +508.5682067871094, 0.4125833511352539; +508.6681823730469, 0.41550397872924805; +508.7681884765625, 0.4177689552307129; +508.8681640625, 0.4154890775680542; +508.9681701660156, 0.40858983993530273; +509.06817626953125, 0.40061771869659424; +509.16815185546875, 0.39511919021606445; +509.2681579589844, 0.39252638816833496; +509.3681335449219, 0.3924444317817688; +509.4681396484375, 0.39505958557128906; +509.5681457519531, 0.39795786142349243; +509.6681213378906, 0.4008263349533081; +509.76812744140625, 0.4005357623100281; +509.86810302734375, 0.3965422511100769; +509.9681091308594, 0.393010675907135; +510.068115234375, 0.39464980363845825; +510.1680908203125, 0.4029273986816406; +510.2680969238281, 0.4113540053367615; +510.3680725097656, 0.4168301820755005; +510.46807861328125, 0.4179328680038452; +510.5680847167969, 0.4143863916397095; +510.6680603027344, 0.4078894853591919; +510.76806640625, 0.4021152853965759; +510.8680419921875, 0.4011690616607666; +510.9680480957031, 0.4042312502861023; +511.06805419921875, 0.4094168543815613; +511.16802978515625, 0.41418522596359253; +511.2680358886719, 0.4180222749710083; +511.3680114746094, 0.4218295216560364; +511.468017578125, 0.4250630736351013; +511.5680236816406, 0.42700767517089844; +511.6679992675781, 0.4251822829246521; +511.76800537109375, 0.41894614696502686; +511.86798095703125, 0.4096999764442444; +511.9679870605469, 0.3998503088951111; +512.0679931640625, 0.3941729664802551; +512.16796875, 0.39320439100265503; +512.2679443359375, 0.3943592309951782; +512.3679809570312, 0.3934800624847412; +512.4679565429688, 0.39067864418029785; +512.5679321289062, 0.3905966877937317; +512.66796875, 0.3918856382369995; +512.7679443359375, 0.3930330276489258; +512.867919921875, 0.3926008939743042; +512.9678955078125, 0.39483606815338135; +513.0679321289062, 0.3991350531578064; +513.1679077148438, 0.39892643690109253; +513.2678833007812, 0.39492547512054443; +513.367919921875, 0.3909394145011902; +513.4678955078125, 0.3931596875190735; +513.56787109375, 0.39809197187423706; +513.6679077148438, 0.4036054015159607; +513.7678833007812, 0.40922313928604126; +513.8678588867188, 0.4129186272621155; +513.9678344726562, 0.4127770662307739; +514.06787109375, 0.40815770626068115; +514.1678466796875, 0.4035383462905884; +514.267822265625, 0.4005357623100281; +514.3678588867188, 0.3994107246398926; +514.4678344726562, 0.40193647146224976; +514.5678100585938, 0.40853023529052734; +514.6677856445312, 0.41469186544418335; +514.767822265625, 0.41797757148742676; +514.8677978515625, 0.4209056496620178; +514.9677734375, 0.4243031144142151; +515.0678100585938, 0.42428821325302124; +515.1677856445312, 0.4205554723739624; +515.2677612304688, 0.4203617572784424; +515.3677978515625, 0.42460113763809204; +515.4677734375, 0.42588263750076294; +515.5677490234375, 0.4222169518470764; +515.667724609375, 0.416293740272522; +515.7677612304688, 0.40934234857559204; +515.8677368164062, 0.3978237509727478; +515.9677124023438, 0.3854110836982727; +516.0677490234375, 0.3788992762565613; +516.167724609375, 0.3799647092819214; +516.2677001953125, 0.38808584213256836; +516.3677368164062, 0.4026368260383606; +516.4677124023438, 0.422842800617218; +516.5676879882812, 0.44111162424087524; +516.6676635742188, 0.4526376724243164; +516.7677001953125, 0.45508891344070435; +516.86767578125, 0.44848769903182983; +516.9676513671875, 0.43748319149017334; +517.0676879882812, 0.42460113763809204; +517.1676635742188, 0.415310263633728; +517.2676391601562, 0.40984153747558594; +517.36767578125, 0.4088059067726135; +517.4676513671875, 0.41222572326660156; +517.567626953125, 0.41538476943969727; +517.6676025390625, 0.4197657108306885; +517.7676391601562, 0.4234015941619873; +517.8676147460938, 0.42704492807388306; +517.9675903320312, 0.42910128831863403; +518.067626953125, 0.4286244511604309; +518.1676025390625, 0.42781978845596313; +518.267578125, 0.42735785245895386; +518.3675537109375, 0.4270225763320923; +518.4675903320312, 0.42254477739334106; +518.5675659179688, 0.4152655601501465; +518.6675415039062, 0.40905922651290894; +518.767578125, 0.40569156408309937; +518.8675537109375, 0.4014819860458374; +518.967529296875, 0.39889663457870483; +519.0675659179688, 0.4042312502861023; +519.1675415039062, 0.4148706793785095; +519.2675170898438, 0.4225596785545349; +519.3674926757812, 0.4221871495246887; +519.467529296875, 0.41778385639190674; +519.5675048828125, 0.4120767116546631; +519.66748046875, 0.405237078666687; +519.7675170898438, 0.39952993392944336; +519.8674926757812, 0.39821863174438477; +519.9674682617188, 0.4009827971458435; +520.0675048828125, 0.40431320667266846; +520.16748046875, 0.40384382009506226; +520.2674560546875, 0.39853155612945557; +520.367431640625, 0.391542911529541; +520.4674682617188, 0.3854408860206604; +520.5674438476562, 0.38261711597442627; +520.6674194335938, 0.38276612758636475; +520.7674560546875, 0.3860965371131897; +520.867431640625, 0.39280205965042114; +520.9674072265625, 0.4006698727607727; +521.0674438476562, 0.4072040319442749; +521.1674194335938, 0.40978193283081055; +521.2673950195312, 0.40809065103530884; +521.3673706054688, 0.4042685031890869; +521.4674072265625, 0.4005506634712219; +521.5673828125, 0.39584189653396606; +521.6673583984375, 0.3906860947608948; +521.7673950195312, 0.38865208625793457; +521.8673706054688, 0.3900974988937378; +521.9673461914062, 0.3908202052116394; +522.0673828125, 0.3856644034385681; +522.1673583984375, 0.37789344787597656; +522.267333984375, 0.369437038898468; +522.3673095703125, 0.35915523767471313; +522.4673461914062, 0.34874677658081055; +522.5673217773438, 0.34236907958984375; +522.6672973632812, 0.3430768847465515; +522.767333984375, 0.34771114587783813; +522.8673095703125, 0.355452299118042; +522.96728515625, 0.3663375973701477; +523.0672607421875, 0.379905104637146; +523.1672973632812, 0.3955960273742676; +523.2672729492188, 0.4092678427696228; +523.3672485351562, 0.4198327660560608; +523.46728515625, 0.4256144165992737; +523.5672607421875, 0.4281774163246155; +523.667236328125, 0.4272088408470154; +523.7672729492188, 0.4212483763694763; +523.8672485351562, 0.41428953409194946; +523.9672241210938, 0.41040778160095215; +524.0671997070312, 0.4113689064979553; +524.167236328125, 0.41243433952331543; +524.2672119140625, 0.41224807500839233; +524.3671875, 0.4112645983695984; +524.4672241210938, 0.4101768136024475; +524.5671997070312, 0.40587037801742554; +524.6671752929688, 0.39796531200408936; +524.7672119140625, 0.39043277502059937; +524.8671875, 0.38538873195648193; +524.9671630859375, 0.3843382000923157; +525.067138671875, 0.3867298364639282; +525.1671752929688, 0.3911033272743225; +525.2671508789062, 0.3942251205444336; +525.3671264648438, 0.3942549228668213; +525.4671630859375, 0.39273500442504883; +525.567138671875, 0.3906860947608948; +525.6671142578125, 0.3890097141265869; +525.7671508789062, 0.38824230432510376; +525.8671264648438, 0.3911256790161133; +525.9671020507812, 0.3982558846473694; +526.0670776367188, 0.4070773720741272; +526.1671142578125, 0.41353702545166016; +526.26708984375, 0.41503459215164185; +526.3670654296875, 0.4158690571784973; +526.4671020507812, 0.41706860065460205; +526.5670776367188, 0.4185810685157776; +526.6670532226562, 0.4196092486381531; +526.7670288085938, 0.4211217164993286; +526.8670654296875, 0.42442232370376587; +526.967041015625, 0.42616575956344604; +527.0670166015625, 0.4259869456291199; +527.1670532226562, 0.42428821325302124; +527.2670288085938, 0.4230961203575134; +527.3670043945312, 0.4231184720993042; +527.467041015625, 0.4215314984321594; +527.5670166015625, 0.4166215658187866; +527.6669921875, 0.40981918573379517; +527.7669677734375, 0.40584057569503784; +527.8670043945312, 0.4067569971084595; +527.9669799804688, 0.4091784358024597; +528.0669555664062, 0.4101395606994629; +528.1669921875, 0.40934234857559204; +528.2669677734375, 0.4082620143890381; +528.366943359375, 0.40621310472488403; +528.4669799804688, 0.4001334309577942; +528.5669555664062, 0.39205700159072876; +528.6669311523438, 0.38596242666244507; +528.7669067382812, 0.385776162147522; +528.866943359375, 0.3881379961967468; +528.9669189453125, 0.3887489438056946; +529.06689453125, 0.3894343972206116; +529.1669311523438, 0.39087235927581787; +529.2669067382812, 0.39312243461608887; +529.3668823242188, 0.3921091556549072; +529.4669189453125, 0.38999319076538086; +529.56689453125, 0.3909394145011902; +529.6668701171875, 0.39570778608322144; +529.766845703125, 0.40274858474731445; +529.8668823242188, 0.4085823893547058; +529.9668579101562, 0.4151836037635803; +530.0668334960938, 0.42489171028137207; +530.1668701171875, 0.43579190969467163; +530.266845703125, 0.44014304876327515; +530.3668212890625, 0.43691694736480713; +530.4668579101562, 0.4332438111305237; +530.5668334960938, 0.43289363384246826; +530.6668090820312, 0.43138861656188965; +530.7667846679688, 0.42586028575897217; +530.8668212890625, 0.4230514168739319; +530.966796875, 0.4258304834365845; +531.0667724609375, 0.4283636808395386; +531.1668090820312, 0.4267767071723938; +531.2667846679688, 0.42223185300827026; +531.3667602539062, 0.4169344902038574; +531.4667358398438, 0.4077106714248657; +531.5667724609375, 0.39514899253845215; +531.666748046875, 0.3863722085952759; +531.7667236328125, 0.38351863622665405; +531.8667602539062, 0.3837272524833679; +531.9667358398438, 0.3828480839729309; +532.0667114257812, 0.38557499647140503; +532.166748046875, 0.39224326610565186; +532.2667236328125, 0.3968477249145508; +532.36669921875, 0.3977268934249878; +532.4666748046875, 0.3991648554801941; +532.5667114257812, 0.40662288665771484; +532.6666870117188, 0.4161521792411804; +532.7666625976562, 0.424705445766449; +532.86669921875, 0.43332576751708984; +532.9666748046875, 0.44261664152145386; +533.066650390625, 0.44833123683929443; +533.1666870117188, 0.4450604319572449; +533.2666625976562, 0.43445825576782227; +533.3666381835938, 0.4235580563545227; +533.4666137695312, 0.41784346103668213; +533.566650390625, 0.4140213131904602; +533.6666259765625, 0.41056424379348755; +533.7666015625, 0.4113614559173584; +533.8666381835938, 0.41669607162475586; +533.9666137695312, 0.42106956243515015; +534.0665893554688, 0.4188269376754761; +534.1666259765625, 0.4132091999053955; +534.2666015625, 0.4088357090950012; +534.3665771484375, 0.40818750858306885; +534.466552734375, 0.41154026985168457; +534.5665893554688, 0.42029470205307007; +534.6665649414062, 0.43302029371261597; +534.7665405273438, 0.443778932094574; +534.8665771484375, 0.4485026001930237; +534.966552734375, 0.4462003707885742; +535.0665283203125, 0.4413500428199768; +535.16650390625, 0.4339441657066345; +535.2665405273438, 0.42285770177841187; +535.3665161132812, 0.414527952671051; +535.4664916992188, 0.4139021039009094; +535.5665283203125, 0.4186555743217468; +535.66650390625, 0.4205778241157532; +535.7664794921875, 0.41744858026504517; +535.8665161132812, 0.41365623474121094; +535.9664916992188, 0.40937960147857666; +536.0664672851562, 0.4027560353279114; +536.1664428710938, 0.3948211669921875; +536.2664794921875, 0.38789212703704834; +536.366455078125, 0.38283318281173706; +536.4664306640625, 0.37994980812072754; +536.5664672851562, 0.3808066248893738; +536.6664428710938, 0.3838762640953064; +536.7664184570312, 0.3831610083580017; +536.866455078125, 0.3768429160118103; +536.9664306640625, 0.36787986755371094; +537.06640625, 0.3575533628463745; +537.1663818359375, 0.34452974796295166; +537.2664184570312, 0.33438950777053833; +537.3663940429688, 0.33355504274368286; +537.4663696289062, 0.3416687250137329; +537.56640625, 0.35393983125686646; +537.6663818359375, 0.36785751581192017; +537.766357421875, 0.3819093108177185; +537.8663940429688, 0.3909170627593994; +537.9663696289062, 0.39649009704589844; +538.0663452148438, 0.4026666283607483; +538.1663208007812, 0.40972232818603516; +538.266357421875, 0.41703879833221436; +538.3663330078125, 0.42448192834854126; +538.46630859375, 0.43148547410964966; +538.5663452148438, 0.4336312413215637; +538.6663208007812, 0.4277825355529785; +538.7662963867188, 0.4174038767814636; +538.8662719726562, 0.40321797132492065; +538.96630859375, 0.38743019104003906; +539.0662841796875, 0.3750994801521301; +539.166259765625, 0.3681182861328125; +539.2662963867188, 0.3659948706626892; +539.3662719726562, 0.3639012575149536; +539.4662475585938, 0.36166608333587646; +539.5662841796875, 0.36037713289260864; +539.666259765625, 0.3596171736717224; +539.7662353515625, 0.3568306565284729; +539.8662109375, 0.3531426191329956; +539.9662475585938, 0.3538951277732849; +540.0662231445312, 0.3606528043746948; +540.1661987304688, 0.3693699836730957; +540.2662353515625, 0.37261098623275757; +540.3662109375, 0.36966055631637573; +540.4661865234375, 0.36282092332839966; +540.5662231445312, 0.35293400287628174; +540.6661987304688, 0.34411996603012085; +540.7661743164062, 0.3398880362510681; +540.8661499023438, 0.343911349773407; +540.9661865234375, 0.35844743251800537; +541.066162109375, 0.3797262907028198; +541.1661376953125, 0.40236860513687134; +541.2661743164062, 0.41741877794265747; +541.3661499023438, 0.4198402166366577; +541.4661254882812, 0.4121139645576477; +541.566162109375, 0.4006624221801758; +541.6661376953125, 0.3933161497116089; +541.76611328125, 0.3908425569534302; +541.8660888671875, 0.3910362720489502; +541.9661254882812, 0.39458274841308594; +542.0661010742188, 0.40259212255477905; +542.1660766601562, 0.4101693630218506; +542.26611328125, 0.41297078132629395; +542.3660888671875, 0.4153922200202942; +542.466064453125, 0.4213079810142517; +542.5661010742188, 0.4268661141395569; +542.6660766601562, 0.42600929737091064; +542.7660522460938, 0.41981786489486694; +542.8660278320312, 0.4110857844352722; +542.966064453125, 0.39834529161453247; +543.0660400390625, 0.38426369428634644; +543.166015625, 0.3734603524208069; +543.2660522460938, 0.36989152431488037; +543.3660278320312, 0.3712102770805359; +543.4660034179688, 0.3743991255760193; +543.5659790039062, 0.37776678800582886; +543.666015625, 0.37954002618789673; +543.7659912109375, 0.3821030259132385; +543.865966796875, 0.3864765167236328; +543.9660034179688, 0.3944709897041321; +544.0659790039062, 0.4032552242279053; +544.1659545898438, 0.4097297787666321; +544.2659912109375, 0.416584312915802; +544.365966796875, 0.4264265298843384; +544.4659423828125, 0.438496470451355; +544.56591796875, 0.4471689462661743; +544.6659545898438, 0.450626015663147; +544.7659301757812, 0.45083463191986084; +544.8659057617188, 0.4455745220184326; +544.9659423828125, 0.43185800313949585; +545.06591796875, 0.4133954644203186; +545.1658935546875, 0.40025264024734497; +545.2659301757812, 0.3959536552429199; +545.3659057617188, 0.3977641463279724; +545.4658813476562, 0.4039853811264038; +545.5658569335938, 0.4137679934501648; +545.6658935546875, 0.42361021041870117; +545.765869140625, 0.4282444715499878; +545.8658447265625, 0.4268437623977661; +545.9658813476562, 0.42375922203063965; +546.0658569335938, 0.41928887367248535; +546.1658325195312, 0.4143565893173218; +546.265869140625, 0.4091113805770874; +546.3658447265625, 0.4043206572532654; +546.4658203125, 0.40090084075927734; +546.5657958984375, 0.3991648554801941; +546.6658325195312, 0.3992617130279541; +546.7658081054688, 0.399075448513031; +546.8657836914062, 0.39514899253845215; +546.9658203125, 0.38748234510421753; +547.0657958984375, 0.38186460733413696; +547.165771484375, 0.3800392150878906; +547.2657470703125, 0.3809705376625061; +547.3657836914062, 0.38333237171173096; +547.4657592773438, 0.3914088010787964; +547.5657348632812, 0.4039257764816284; +547.665771484375, 0.4123672842979431; +547.7657470703125, 0.4123225808143616; +547.86572265625, 0.40971487760543823; +547.9657592773438, 0.41025876998901367; +548.0657348632812, 0.41363388299942017; +548.1657104492188, 0.4174858331680298; +548.2656860351562, 0.41940808296203613; +548.36572265625, 0.41885673999786377; +548.4656982421875, 0.41604042053222656; +548.565673828125, 0.41450560092926025; +548.6657104492188, 0.41290372610092163; +548.7656860351562, 0.41127949953079224; +548.8656616210938, 0.4159286618232727; +548.9656982421875, 0.42875856161117554; +549.065673828125, 0.4433766007423401; +549.1656494140625, 0.4493892192840576; +549.265625, 0.44771283864974976; +549.3656616210938, 0.4420652985572815; +549.4656372070312, 0.43176114559173584; +549.5656127929688, 0.4185587167739868; +549.6656494140625, 0.4093647003173828; +549.765625, 0.40891021490097046; +549.8656005859375, 0.41457265615463257; +549.9656372070312, 0.4225820302963257; +550.0656127929688, 0.4315897822380066; +550.1655883789062, 0.44158101081848145; +550.2655639648438, 0.44929981231689453; +550.3656005859375, 0.4527345299720764; +550.465576171875, 0.4504546523094177; +550.5655517578125, 0.4458427429199219; +550.6655883789062, 0.44368207454681396; +550.7655639648438, 0.4447475075721741; +550.8655395507812, 0.4424974322319031; +550.9655151367188, 0.43463706970214844; +551.0655517578125, 0.4269033670425415; +551.16552734375, 0.4234910011291504; +551.2655029296875, 0.42232125997543335; +551.3655395507812, 0.4224926233291626; +551.4655151367188, 0.42566657066345215; +551.5654907226562, 0.429689884185791; +551.66552734375, 0.4299357533454895; +551.7655029296875, 0.4254952073097229; +551.865478515625, 0.4190579056739807; +551.9654541015625, 0.4097670316696167; +552.0654907226562, 0.40102750062942505; +552.1654663085938, 0.397317111492157; +552.2654418945312, 0.39680302143096924; +552.365478515625, 0.393599271774292; +552.4654541015625, 0.38530677556991577; +552.5654296875, 0.3758072853088379; +552.6654663085938, 0.3665313124656677; +552.7654418945312, 0.3597959876060486; +552.8654174804688, 0.36060065031051636; +552.9653930664062, 0.3709942102432251; +553.0654296875, 0.3848820924758911; +553.1654052734375, 0.39573758840560913; +553.265380859375, 0.40121376514434814; +553.3654174804688, 0.40221959352493286; +553.4653930664062, 0.3996416926383972; +553.5653686523438, 0.39198994636535645; +553.6654052734375, 0.38314610719680786; +553.765380859375, 0.37736445665359497; +553.8653564453125, 0.379711389541626; +553.96533203125, 0.388413667678833; +554.0653686523438, 0.3984197974205017; +554.1653442382812, 0.40791183710098267; +554.2653198242188, 0.4157647490501404; +554.3653564453125, 0.42200833559036255; +554.46533203125, 0.42387843132019043; +554.5653076171875, 0.420890748500824; +554.6653442382812, 0.4139542579650879; +554.7653198242188, 0.4057362675666809; +554.8652954101562, 0.397704541683197; +554.9652709960938, 0.39048492908477783; +555.0653076171875, 0.3860369324684143; +555.165283203125, 0.38444995880126953; +555.2652587890625, 0.38732588291168213; +555.3652954101562, 0.39514899253845215; +555.4652709960938, 0.40628761053085327; +555.5652465820312, 0.4167705774307251; +555.6652221679688, 0.4251226782798767; +555.7652587890625, 0.4323199391365051; +555.865234375, 0.4363805055618286; +555.9652099609375, 0.4338175058364868; +556.0652465820312, 0.4268959164619446; +556.1652221679688, 0.4184320569038391; +556.2651977539062, 0.40659308433532715; +556.365234375, 0.39186328649520874; +556.4652099609375, 0.3810077905654907; +556.565185546875, 0.3786832094192505; +556.6651611328125, 0.3831237554550171; +556.7651977539062, 0.39399415254592896; +556.8651733398438, 0.41153281927108765; +556.9651489257812, 0.4313066601753235; +557.065185546875, 0.444754958152771; +557.1651611328125, 0.4515796899795532; +557.26513671875, 0.45483559370040894; +557.3651733398438, 0.4553496837615967; +557.4651489257812, 0.450819730758667; +557.5651245117188, 0.4414767026901245; +557.6651000976562, 0.43151527643203735; +557.76513671875, 0.4216879606246948; +557.8651123046875, 0.4136413335800171; +557.965087890625, 0.407584011554718; +558.0651245117188, 0.4056170582771301; +558.1651000976562, 0.4078373312950134; +558.2650756835938, 0.412769615650177; +558.3651123046875, 0.41728466749191284; +558.465087890625, 0.4152953624725342; +558.5650634765625, 0.40396302938461304; +558.6650390625, 0.3869757056236267; +558.7650756835938, 0.37175416946411133; +558.8650512695312, 0.3648102283477783; +558.9650268554688, 0.36769360303878784; +559.0650634765625, 0.3783702850341797; +559.1650390625, 0.39248913526535034; +559.2650146484375, 0.4063248634338379; +559.364990234375, 0.4201158881187439; +559.4650268554688, 0.43050944805145264; +559.5650024414062, 0.4347488284111023; +559.6649780273438, 0.43485313653945923; +559.7650146484375, 0.43545663356781006; +559.864990234375, 0.4374310374259949; +559.9649658203125, 0.43594837188720703; +560.0650024414062, 0.4297122359275818; +560.1649780273438, 0.4223734140396118; +560.2649536132812, 0.415898859500885; +560.3649291992188, 0.409543514251709; +560.4649658203125, 0.40290504693984985; +560.56494140625, 0.3986731171607971; +560.6649169921875, 0.39987266063690186; +560.7649536132812, 0.40445476770401; +560.8649291992188, 0.4096180200576782; +560.9649047851562, 0.4146471619606018; +561.06494140625, 0.4208385944366455; +561.1649169921875, 0.42664259672164917; +561.264892578125, 0.43135136365890503; +561.3648681640625, 0.43495744466781616; +561.4649047851562, 0.43864548206329346; +561.5648803710938, 0.4417151212692261; +561.6648559570312, 0.44302642345428467; +561.764892578125, 0.44246017932891846; +561.8648681640625, 0.43789297342300415; +561.96484375, 0.4322826862335205; +562.0648803710938, 0.4259273409843445; +562.1648559570312, 0.4213675856590271; +562.2648315429688, 0.4213377833366394; +562.3648071289062, 0.42588263750076294; +562.46484375, 0.43326616287231445; +562.5648193359375, 0.43804943561553955; +562.664794921875, 0.44020265340805054; +562.7648315429688, 0.4427507519721985; +562.8648071289062, 0.4431679844856262; +562.9647827148438, 0.44126808643341064; +563.0648193359375, 0.436246395111084; +563.164794921875, 0.42954087257385254; +563.2647705078125, 0.42366236448287964; +563.36474609375, 0.41843950748443604; +563.4647827148438, 0.41449815034866333; +563.5647583007812, 0.4094913601875305; +563.6647338867188, 0.40406733751296997; +563.7647705078125, 0.40271878242492676; +563.86474609375, 0.4074797034263611; +563.9647216796875, 0.41712820529937744; +564.064697265625, 0.429004430770874; +564.1647338867188, 0.4425942897796631; +564.2647094726562, 0.459328293800354; +564.3646850585938, 0.4753917455673218; +564.4647216796875, 0.4861876368522644; +564.564697265625, 0.48764050006866455; +564.6646728515625, 0.4815831780433655; +564.7647094726562, 0.469401478767395; +564.8646850585938, 0.4508495330810547; +564.9646606445312, 0.4293695092201233; +565.0646362304688, 0.4102960228919983; +565.1646728515625, 0.39993226528167725; +565.2646484375, 0.3954172134399414; +565.3646240234375, 0.39502233266830444; +565.4646606445312, 0.39843469858169556; +565.5646362304688, 0.4057884216308594; +565.6646118164062, 0.4143714904785156; +565.7646484375, 0.4216209053993225; +565.8646240234375, 0.429689884185791; +565.964599609375, 0.4381537437438965; +566.0645751953125, 0.4452913999557495; +566.1646118164062, 0.4480406641960144; +566.2645874023438, 0.4486292600631714; +566.3645629882812, 0.446908175945282; +566.464599609375, 0.44151395559310913; +566.5645751953125, 0.431939959526062; +566.66455078125, 0.4209950566291809; +566.7645874023438, 0.41406601667404175; +566.8645629882812, 0.4099830985069275; +566.9645385742188, 0.4075095057487488; +567.0645141601562, 0.4075393080711365; +567.16455078125, 0.4123300313949585; +567.2645263671875, 0.42084604501724243; +567.364501953125, 0.42854249477386475; +567.4645385742188, 0.43626874685287476; +567.5645141601562, 0.44552236795425415; +567.6644897460938, 0.4551112651824951; +567.7644653320312, 0.4618242383003235; +567.864501953125, 0.46312808990478516; +567.9644775390625, 0.46031177043914795; +568.064453125, 0.4541054368019104; +568.1644897460938, 0.4456043243408203; +568.2644653320312, 0.4381909966468811; +568.3644409179688, 0.43313950300216675; +568.4644775390625, 0.4327148199081421; +568.564453125, 0.43524056673049927; +568.6644287109375, 0.4371628165245056; +568.764404296875, 0.43563544750213623; +568.8644409179688, 0.42916834354400635; +568.9644165039062, 0.42364001274108887; +569.0643920898438, 0.42254477739334106; +569.1644287109375, 0.4239678382873535; +569.264404296875, 0.4260540008544922; +569.3643798828125, 0.4313141107559204; +569.4644165039062, 0.4409477114677429; +569.5643920898438, 0.4496574401855469; +569.6643676757812, 0.4511028528213501; +569.7643432617188, 0.45099854469299316; +569.8643798828125, 0.4539862275123596; +569.96435546875, 0.4571154713630676; +570.0643310546875, 0.45658648014068604; +570.1643676757812, 0.4565119743347168; +570.2643432617188, 0.46218931674957275; +570.3643188476562, 0.46750158071517944; +570.46435546875, 0.4663616418838501; +570.5643310546875, 0.4595071077346802; +570.664306640625, 0.45158714056015015; +570.7642822265625, 0.44377148151397705; +570.8643188476562, 0.4368126392364502; +570.9642944335938, 0.4309415817260742; +571.0642700195312, 0.42816996574401855; +571.164306640625, 0.4304051399230957; +571.2642822265625, 0.4377290606498718; +571.3642578125, 0.44310837984085083; +571.4642333984375, 0.4441291093826294; +571.5642700195312, 0.44605135917663574; +571.6642456054688, 0.44915080070495605; +571.7642211914062, 0.4475340247154236; +571.8642578125, 0.439472496509552; +571.9642333984375, 0.43617188930511475; +572.064208984375, 0.4424750804901123; +572.1642456054688, 0.4514530301094055; +572.2642211914062, 0.45765936374664307; +572.3641967773438, 0.4641413688659668; +572.4641723632812, 0.47347694635391235; +572.564208984375, 0.4781559109687805; +572.6641845703125, 0.47063082456588745; +572.76416015625, 0.45599043369293213; +572.8641967773438, 0.4439800977706909; +572.9641723632812, 0.43508410453796387; +573.0641479492188, 0.42398273944854736; +573.1641845703125, 0.4097744822502136; +573.26416015625, 0.3957226872444153; +573.3641357421875, 0.3822147846221924; +573.464111328125, 0.3688037395477295; +573.5641479492188, 0.3606453537940979; +573.6641235351562, 0.36109238862991333; +573.7640991210938, 0.3687068819999695; +573.8641357421875, 0.37948042154312134; +573.964111328125, 0.3912821412086487; +574.0640869140625, 0.4045218229293823; +574.1641235351562, 0.4161149263381958; +574.2640991210938, 0.42563676834106445; +574.3640747070312, 0.432334840297699; +574.4640502929688, 0.4371330142021179; +574.5640869140625, 0.4401057958602905; +574.6640625, 0.44089555740356445; +574.7640380859375, 0.43988972902297974; +574.8640747070312, 0.43848901987075806; +574.9640502929688, 0.4414990544319153; +575.0640258789062, 0.44912099838256836; +575.1640625, 0.4562586545944214; +575.2640380859375, 0.4551336169242859; +575.364013671875, 0.4473477602005005; +575.4639892578125, 0.43711066246032715; +575.5640258789062, 0.4273131489753723; +575.6640014648438, 0.4169866442680359; +575.7639770507812, 0.40824711322784424; +575.864013671875, 0.40414929389953613; +575.9639892578125, 0.40377676486968994; +576.06396484375, 0.4055723547935486; +576.1639404296875, 0.4053190350532532; +576.2639770507812, 0.4057958722114563; +576.3639526367188, 0.40940940380096436; +576.4639282226562, 0.4168674349784851; +576.56396484375, 0.42625516653060913; +576.6639404296875, 0.4318356513977051; +576.763916015625, 0.43207406997680664; +576.8639526367188, 0.42778998613357544; +576.9639282226562, 0.4220008850097656; +577.0639038085938, 0.41572004556655884; +577.1638793945312, 0.407196581363678; +577.263916015625, 0.3985762596130371; +577.3638916015625, 0.3948286175727844; +577.4638671875, 0.3953278064727783; +577.5639038085938, 0.3974512219429016; +577.6638793945312, 0.3995448350906372; +577.7638549804688, 0.4042088985443115; +577.8638916015625, 0.4111453890800476; +577.9638671875, 0.41766464710235596; +578.0638427734375, 0.42328983545303345; +578.163818359375, 0.4286244511604309; +578.2638549804688, 0.4333704710006714; +578.3638305664062, 0.436246395111084; +578.4638061523438, 0.4385262727737427; +578.5638427734375, 0.4393532872200012; +578.663818359375, 0.440843403339386; +578.7637939453125, 0.4426538944244385; +578.8638305664062, 0.44768303632736206; +578.9638061523438, 0.45462697744369507; +579.0637817382812, 0.4584267735481262; +579.1637573242188, 0.45827776193618774; +579.2637939453125, 0.45242905616760254; +579.36376953125, 0.44430047273635864; +579.4637451171875, 0.4330053925514221; +579.5637817382812, 0.41935592889785767; +579.6637573242188, 0.4073232412338257; +579.7637329101562, 0.40081143379211426; +579.8637084960938, 0.40333718061447144; +579.9637451171875, 0.41194260120391846; +580.063720703125, 0.421375036239624; +580.1636962890625, 0.42951852083206177; +580.2637329101562, 0.43845921754837036; +580.3637084960938, 0.44821202754974365; +580.4636840820312, 0.45518577098846436; +580.563720703125, 0.456005334854126; +580.6636962890625, 0.4550442099571228; +580.763671875, 0.45433640480041504; +580.8636474609375, 0.45146793127059937; +580.9636840820312, 0.4439502954483032; +581.0636596679688, 0.4341006278991699; +581.1636352539062, 0.42520463466644287; +581.263671875, 0.4188418388366699; +581.3636474609375, 0.4199966788291931; +581.463623046875, 0.42732805013656616; +581.5636596679688, 0.436633825302124; +581.6636352539062, 0.44198334217071533; +581.7636108398438, 0.4442185163497925; +581.8635864257812, 0.44514238834381104; +581.963623046875, 0.44067949056625366; +582.0635986328125, 0.4309937357902527; +582.16357421875, 0.418245792388916; +582.2636108398438, 0.40905922651290894; +582.3635864257812, 0.40574371814727783; +582.4635620117188, 0.40484219789505005; +582.5635986328125, 0.4014521837234497; +582.66357421875, 0.39643049240112305; +582.7635498046875, 0.3956109285354614; +582.863525390625, 0.3995150327682495; +582.9635620117188, 0.4021972417831421; +583.0635375976562, 0.4026070237159729; +583.1635131835938, 0.4052594304084778; +583.2635498046875, 0.4108324646949768; +583.363525390625, 0.4147365689277649; +583.4635009765625, 0.41399896144866943; +583.5634765625, 0.41284412145614624; +583.6635131835938, 0.4114210605621338; +583.7634887695312, 0.40877610445022583; +583.8634643554688, 0.40621310472488403; +583.9635009765625, 0.40678679943084717; +584.0634765625, 0.41137635707855225; +584.1634521484375, 0.4174858331680298; +584.2634887695312, 0.4265233874320984; +584.3634643554688, 0.43685734272003174; +584.4634399414062, 0.44570863246917725; +584.5634155273438, 0.4501938819885254; +584.6634521484375, 0.4498511552810669; +584.763427734375, 0.4453212022781372; +584.8634033203125, 0.43651461601257324; +584.9634399414062, 0.42778998613357544; +585.0634155273438, 0.41937828063964844; +585.1633911132812, 0.41193515062332153; +585.263427734375, 0.4055202007293701; +585.3634033203125, 0.4008635878562927; +585.46337890625, 0.399269163608551; +585.5633544921875, 0.39931386709213257; +585.6633911132812, 0.4028826951980591; +585.7633666992188, 0.4088357090950012; +585.8633422851562, 0.4154816269874573; +585.96337890625, 0.4236474633216858; +586.0633544921875, 0.4323199391365051; +586.163330078125, 0.4397854208946228; +586.2633666992188, 0.44395774602890015; +586.3633422851562, 0.4456564784049988; +586.4633178710938, 0.44768303632736206; +586.5632934570312, 0.4494860768318176; +586.663330078125, 0.4476308822631836; +586.7633056640625, 0.4431009292602539; +586.86328125, 0.4377812147140503; +586.9633178710938, 0.43385475873947144; +587.0632934570312, 0.43014436960220337; +587.1632690429688, 0.42525678873062134; +587.2633056640625, 0.4240944981575012; +587.36328125, 0.42860954999923706; +587.4632568359375, 0.43364614248275757; +587.563232421875, 0.4340335726737976; +587.6632690429688, 0.4307180643081665; +587.7632446289062, 0.42904913425445557; +587.8632202148438, 0.429302453994751; +587.9632568359375, 0.42819976806640625; +588.063232421875, 0.4299059510231018; +588.1632080078125, 0.43736398220062256; +588.26318359375, 0.4468187689781189; +588.3632202148438, 0.4524141550064087; +588.4631958007812, 0.4513189196586609; +588.5631713867188, 0.4463568329811096; +588.6632080078125, 0.4397928714752197; +588.76318359375, 0.43376535177230835; +588.8631591796875, 0.4326626658439636; +588.9631958007812, 0.43489784002304077; +589.0631713867188, 0.43971091508865356; +589.1631469726562, 0.44530630111694336; +589.2631225585938, 0.4509463906288147; +589.3631591796875, 0.4550740122795105; +589.463134765625, 0.4545450210571289; +589.5631103515625, 0.4541724920272827; +589.6631469726562, 0.4547238349914551; +589.7631225585938, 0.4552900791168213; +589.8630981445312, 0.4540756344795227; +589.963134765625, 0.45165419578552246; +590.0631103515625, 0.45242905616760254; +590.1630859375, 0.4542022943496704; +590.2630615234375, 0.45789778232574463; +590.3630981445312, 0.4650726914405823; +590.4630737304688, 0.4785507917404175; +590.5630493164062, 0.4975944757461548; +590.6630859375, 0.515572726726532; +590.7630615234375, 0.5275681614875793; +590.863037109375, 0.5347654223442078; +590.9630737304688, 0.5397796630859375; +591.0630493164062, 0.5384981632232666; +591.1630249023438, 0.5305483937263489; +591.2630004882812, 0.5258470773696899; +591.363037109375, 0.5340427160263062; +591.4630126953125, 0.5514770746231079; +591.56298828125, 0.5693361163139343; +591.6630249023438, 0.5864575505256653; +591.7630004882812, 0.6035119295120239; +591.8629760742188, 0.6143376231193542; +591.9629516601562, 0.617586076259613; +592.06298828125, 0.619255006313324; +592.1629638671875, 0.6245672702789307; +592.262939453125, 0.630892813205719; +592.3629760742188, 0.6343498826026917; +592.4629516601562, 0.6377100944519043; +592.5629272460938, 0.639885663986206; +592.6629638671875, 0.6386265158653259; +592.762939453125, 0.6337463855743408; +592.8629150390625, 0.6333589553833008; +592.962890625, 0.6424412131309509; +593.0629272460938, 0.658571720123291; +593.1629028320312, 0.6796866655349731; +593.2628784179688, 0.699557363986969; +593.3629150390625, 0.7165074348449707; +593.462890625, 0.729091465473175; +593.5628662109375, 0.7392093539237976; +593.6629028320312, 0.7468909025192261; +593.7628784179688, 0.7528811693191528; +593.8628540039062, 0.7606074213981628; +593.9628295898438, 0.7733702659606934; +594.0628662109375, 0.7900670170783997; +594.162841796875, 0.8037090301513672; +594.2628173828125, 0.8119046688079834; +594.3628540039062, 0.8173808455467224; +594.4628295898438, 0.8268281817436218; +594.5628051757812, 0.83952397108078; +594.662841796875, 0.8522793650627136; +594.7628173828125, 0.8691772818565369; +594.86279296875, 0.8947700262069702; +594.9627685546875, 0.9214207530021667; +595.0628051757812, 0.9397491812705994; +595.1627807617188, 0.9515583515167236; +595.2627563476562, 0.9651631116867065; +595.36279296875, 0.9827464818954468; +595.4627685546875, 0.9982138872146606; +595.562744140625, 1.011453628540039; +595.6627807617188, 1.025207281112671; +595.7627563476562, 1.039139986038208; +595.8627319335938, 1.0503828525543213; +595.9627075195312, 1.058258056640625; +596.062744140625, 1.0672285556793213; +596.1627197265625, 1.0792388916015625; +596.2626953125, 1.0929927825927734; +596.3627319335938, 1.1076257228851318; +596.4627075195312, 1.124523639678955; +596.5626831054688, 1.142844557762146; +596.6626586914062, 1.1583342552185059; +596.7626953125, 1.171603798866272; +596.8626708984375, 1.1850297451019287; +596.962646484375, 1.2001246213912964; +597.0626831054688, 1.2143328189849854; +597.1626586914062, 1.2278854846954346; +597.2626342773438, 1.2437775135040283; +597.3626708984375, 1.2627317905426025; +597.462646484375, 1.2827366590499878; +597.5626220703125, 1.3047009706497192; +597.66259765625, 1.331225037574768; +597.7626342773438, 1.3611167669296265; +597.8626098632812, 1.3937280178070068; +597.9625854492188, 1.428157091140747; +598.0626220703125, 1.4688894748687744; +598.16259765625, 1.5139355659484863; +598.2625732421875, 1.5629754066467285; +598.3626098632812, 1.61704421043396; +598.4625854492188, 1.674056053161621; +598.5625610351562, 1.7320811748504639; +598.6625366210938, 1.7870813608169556; +598.7625732421875, 1.843698263168335; +598.862548828125, 1.9021406173706055; +598.9625244140625, 1.9623935222625732; +599.0625610351562, 2.0256190299987793; +599.1625366210938, 2.0919666290283203; +599.2625122070312, 2.1626129150390625; +599.362548828125, 2.2327451705932617; +599.4625244140625, 2.301983594894409; +599.5625, 2.3701562881469727; +599.6624755859375, 2.435445785522461; +599.7625122070312, 2.495534658432007; +599.8624877929688, 2.5202109813690186; +##END= + +$$ === CHEMSPECTRA INTEGRALS AND MULTIPLETS === +##PAGE=550.0 +##$OBSERVEDINTEGRALS= (X Y Z) +##$OBSERVEDMULTIPLETS= +##$OBSERVEDMULTIPLETSPEAKS= +##END= + +$$ === CHEMSPECTRA PEAK TABLE EDIT === +##TITLE=908f81fc-5890-4b40-b630-40c8c39f2c97 +##JCAMP-DX=5.00 +##DATA TYPE=LC/MSPEAKTABLE +##DATA CLASS=PEAKTABLE +##$CSCATEGORY=EDIT_PEAK +##$CSTHRESHOLD=0.05 +##MAXX=599.8624877929688 +##MAXY=4.579208850860596 +##MINX=0.0 +##MINY=-3.01326060295105 +##PAGE=550.0 +##NPOINTS=0 +##PEAKTABLE= (XY..XY) +##END= + +$$ === CHEMSPECTRA PEAK TABLE AUTO === +##TITLE=908f81fc-5890-4b40-b630-40c8c39f2c97 +##JCAMP-DX=5.00 +##DATA TYPE=LC/MSPEAKTABLE +##DATA CLASS=PEAKTABLE +##$CSCATEGORY=AUTO_PEAK +##$CSTHRESHOLD=0.05 +##MAXX=599.8624877929688 +##MAXY=4.579208850860596 +##MINX=0.0 +##MINY=-3.01326060295105 +##PAGE=550.0 +##NPOINTS=100 +##PEAKTABLE= (XY..XY) +84.99468231201172, 4.579208850860596 +55.39653396606445, 4.536770343780518 +54.09661865234375, 4.416406154632568 +59.29629135131836, 3.3598244190216064 +71.09555053710938, 3.0321106910705566 +52.69670486450195, 2.5261118412017822 +68.99568176269531, 2.2421553134918213 +61.49615478515625, 1.8865094184875488 +232.68545532226562, 0.8612871170043945 +234.5853271484375, 0.8539333939552307 +228.68569946289062, 0.8492916822433472 +231.38552856445312, 0.8489340543746948 +230.18560791015625, 0.8415281772613525 +236.28521728515625, 0.8375272154808044 +226.68582153320312, 0.8332580327987671 +229.48565673828125, 0.8301511406898499 +237.18516540527344, 0.8293166756629944 +235.4852752685547, 0.8289217948913574 +241.48489379882812, 0.8217617869377136 +238.68507385253906, 0.8213892579078674 +225.3859100341797, 0.8184537291526794 +233.58538818359375, 0.818207859992981 +239.58502197265625, 0.8151009678840637 +196.6876983642578, 0.8102506399154663 +200.58746337890625, 0.8065253496170044 +237.98512268066406, 0.8057355880737305 +224.58595275878906, 0.804804265499115 +198.28759765625, 0.8019357919692993 +224.18597412109375, 0.8010119199752808 +199.68751525878906, 0.8004680275917053 +216.88644409179688, 0.7972046732902527 +223.7860107421875, 0.7971078157424927 +195.68775939941406, 0.7940977811813354 +242.58482360839844, 0.793851912021637 +202.78732299804688, 0.7924512028694153 +199.28753662109375, 0.7911399006843567 +244.08473205566406, 0.7906556129455566 +220.8861846923828, 0.7898285984992981 +210.88681030273438, 0.7852837443351746 +204.68719482421875, 0.7829293608665466 +201.48739624023438, 0.7824227213859558 +221.7861328125, 0.7806196808815002 +215.0865478515625, 0.7771030068397522 +205.18716430664062, 0.7759183645248413 +212.7866973876953, 0.7751360535621643 +213.78663635253906, 0.7724538445472717 +217.58639526367188, 0.7721632719039917 +218.38633728027344, 0.7720217108726501 +218.08636474609375, 0.7718801498413086 +193.9878692626953, 0.7697120308876038 +261.9836120605469, 0.7688626646995544 +220.28622436523438, 0.7687360048294067 +218.98631286621094, 0.7643401622772217 +209.38690185546875, 0.7636174559593201 +190.4880828857422, 0.7612705230712891 +194.38784790039062, 0.7610544562339783 +250.9842987060547, 0.7600411772727966 +207.38702392578125, 0.7581561803817749 +254.88406372070312, 0.7534772157669067 +208.5869598388672, 0.7524266839027405 +206.0871124267578, 0.7478594779968262 +247.88450622558594, 0.7453560829162598 +258.0838623046875, 0.7424205541610718 +246.98455810546875, 0.7407888770103455 +245.5846405029297, 0.7406473159790039 +249.98435974121094, 0.7384419441223145 +249.68438720703125, 0.7382184267044067 +248.98443603515625, 0.736624002456665 +275.4827575683594, 0.7349923253059387 +275.18280029296875, 0.7343068718910217 +192.38796997070312, 0.7342696189880371 +206.5870819091797, 0.7339119911193848 +260.6836853027344, 0.731341540813446 +255.88400268554688, 0.7312968373298645 +265.78338623046875, 0.730954110622406 +252.58419799804688, 0.7277056574821472 +264.9834289550781, 0.7267743349075317 +215.9864959716797, 0.7261112332344055 +256.8839416503906, 0.7255971431732178 +271.3830261230469, 0.7212311029434204 +252.9841766357422, 0.7207766175270081 +260.1837158203125, 0.7203966379165649 +253.3841552734375, 0.7202327251434326 +176.88893127441406, 0.7181614637374878 +189.38815307617188, 0.7149726152420044 +263.5835266113281, 0.7130205631256104 +278.4825744628906, 0.711977481842041 +288.7819519042969, 0.7111057639122009 +270.7830810546875, 0.7098019123077393 +277.3826599121094, 0.7086321711540222 +281.0824279785156, 0.7084235548973083 +290.3818359375, 0.7083937525749207 +188.88818359375, 0.7073134183883667 +173.6891326904297, 0.707283616065979 +268.58319091796875, 0.7066652178764343 +267.3832702636719, 0.7063671946525574 +270.3830871582031, 0.7054358720779419 +282.68231201171875, 0.7052794098854065 +184.48846435546875, 0.7042959332466125 +301.38116455078125, 0.7030367851257324 +##END= + +$$ === CHEMSPECTRA UVVIS PEAK TABLE === +##TITLE=908f81fc-5890-4b40-b630-40c8c39f2c97 +##JCAMP-DX=5.00 +##DATA TYPE=LC/MS +##DATA CLASS=PEAK TABLE +##ORIGIN= +##OWNER= +##XUNITS=RETENTION TIME +##YUNITS=DETECTOR SIGNAL +##$CSCATEGORY=UVVIS PEAK TABLE +##PAGE=580.0 +##NPOINTS=6000 +##DATA TABLE= (XY..XY), PEAKS +0.0, -0.03793090581893921; +0.0999937504529953, -0.04332512617111206; +0.1999875009059906, -0.04637986421585083; +0.2999812364578247, -0.04717707633972168; +0.3999750018119812, -0.04682689905166626; +0.4999687373638153, -0.047326087951660156; +0.5999624729156494, -0.048376619815826416; +0.6999562382698059, -0.05129724740982056; +0.7999500036239624, -0.05631148815155029; +0.8999437093734741, -0.06156414747238159; +0.9999374747276306, -0.0643804669380188; +1.099931240081787, -0.0635385513305664; +1.1999249458312988, -0.06046891212463379; +1.2999186515808105, -0.056765973567962646; +1.3999124765396118, -0.053748488426208496; +1.4999061822891235, -0.052288174629211426; +1.5999000072479248, -0.052168965339660645; +1.6998937129974365, -0.05178898572921753; +1.7998874187469482, -0.050827860832214355; +1.8998812437057495, -0.04964321851730347; +1.9998749494552612, -0.04912912845611572; +2.0998687744140625, -0.049091875553131104; +2.199862480163574, -0.04822760820388794; +2.299856185913086, -0.04746764898300171; +2.3998498916625977, -0.04739314317703247; +2.4998435974121094, -0.0489354133605957; +2.599837303161621, -0.050790607929229736; +2.699831247329712, -0.05219876766204834; +2.7998249530792236, -0.05430728197097778; +2.8998186588287354, -0.05657225847244263; +2.999812364578247, -0.058457255363464355; +3.099806070327759, -0.05871802568435669; +3.1998000144958496, -0.05879998207092285; +3.2997937202453613, -0.05981326103210449; +3.399787425994873, -0.06157904863357544; +3.4997811317443848, -0.0637546181678772; +3.5997748374938965, -0.06584823131561279; +3.699768543243408, -0.06800144910812378; +3.799762487411499, -0.06917864084243774; +3.8997561931610107, -0.06861984729766846; +3.9997498989105225, -0.06656348705291748; +4.099743843078613, -0.0645369291305542; +4.199737548828125, -0.06382167339324951; +4.299731254577637, -0.06460398435592651; +4.399724960327148, -0.0656023621559143; +4.49971866607666, -0.06627291440963745; +4.599712371826172, -0.0674128532409668; +4.699706077575684, -0.06905943155288696; +4.799699783325195, -0.07080286741256714; +4.899693489074707, -0.07120519876480103; +4.999687194824219, -0.06961077451705933; +5.0996809005737305, -0.06654113531112671; +5.199674606323242, -0.06267428398132324; +5.299668788909912, -0.058688223361968994; +5.399662494659424, -0.055149197578430176; +5.4996562004089355, -0.053495168685913086; +5.599649906158447, -0.05546212196350098; +5.699643611907959, -0.060014426708221436; +5.799637317657471, -0.06452202796936035; +5.899631023406982, -0.06827712059020996; +5.999624729156494, -0.07149577140808105; +6.099618434906006, -0.0737905502319336; +6.199612140655518, -0.07417052984237671; +6.299605846405029, -0.0729188323020935; +6.399600028991699, -0.0710412859916687; +6.499593734741211, -0.06872415542602539; +6.599587440490723, -0.06674975156784058; +6.699581146240234, -0.06537884473800659; +6.799574851989746, -0.06435811519622803; +6.899568557739258, -0.06373226642608643; +6.9995622634887695, -0.06373971700668335; +7.099555969238281, -0.0648200511932373; +7.199549674987793, -0.06465613842010498; +7.299543380737305, -0.06207078695297241; +7.399537086486816, -0.058010220527648926; +7.499530792236328, -0.05412101745605469; +7.599524974822998, -0.05161017179489136; +7.69951868057251, -0.04980713129043579; +7.7995123863220215, -0.049367547035217285; +7.899506092071533, -0.051252543926239014; +7.999499797821045, -0.05507469177246094; +8.099493026733398, -0.059820711612701416; +8.199487686157227, -0.06407499313354492; +8.299481391906738, -0.0673532485961914; +8.39947509765625, -0.06945431232452393; +8.499468803405762, -0.06993114948272705; +8.599462509155273, -0.06936490535736084; +8.699456214904785, -0.06898492574691772; +8.799449920654297, -0.06911903619766235; +8.899443626403809, -0.06908178329467773; +8.99943733215332, -0.06832927465438843; +9.099431037902832, -0.06742775440216064; +9.199424743652344, -0.06680935621261597; +9.299418449401855, -0.0648796558380127; +9.399412155151367, -0.062212347984313965; +9.499405860900879, -0.06084144115447998; +9.59939956665039, -0.06111711263656616; +9.699393272399902, -0.06284564733505249; +9.799386978149414, -0.06548315286636353; +9.899380683898926, -0.06949156522750854; +9.999374389648438, -0.07383525371551514; +10.09936809539795, -0.0761076807975769; +10.199361801147461, -0.07737427949905396; +10.299355506896973, -0.07865577936172485; +10.399349212646484, -0.08038431406021118; +10.499343872070312, -0.08271634578704834; +10.599337577819824, -0.08491426706314087; +10.699331283569336, -0.08731335401535034; +10.799324989318848, -0.08913874626159668; +10.89931869506836, -0.08989125490188599; +10.999312400817871, -0.08974224328994751; +11.099306106567383, -0.0882372260093689; +11.199299812316895, -0.08505582809448242; +11.299293518066406, -0.0815466046333313; +11.399287223815918, -0.07852166891098022; +11.49928092956543, -0.07639825344085693; +11.599274635314941, -0.07483363151550293; +11.699268341064453, -0.07387250661849976; +11.799262046813965, -0.07434189319610596; +11.899255752563477, -0.07507950067520142; +11.999249458312988, -0.07544457912445068; +12.0992431640625, -0.07452070713043213; +12.199236869812012, -0.07212162017822266; +12.299230575561523, -0.06905198097229004; +12.399224281311035, -0.06667524576187134; +12.499217987060547, -0.06677210330963135; +12.599211692810059, -0.06804615259170532; +12.69920539855957, -0.06823241710662842; +12.799200057983398, -0.0666007399559021; +12.89919376373291, -0.06438791751861572; +12.999187469482422, -0.06266683340072632; +13.099181175231934, -0.06108731031417847; +13.199174880981445, -0.060051679611206055; +13.299168586730957, -0.06134063005447388; +13.399162292480469, -0.06557255983352661; +13.49915599822998, -0.07018446922302246; +13.599149703979492, -0.07318705320358276; +13.699143409729004, -0.07477402687072754; +13.799137115478516, -0.07661432027816772; +13.899130821228027, -0.0791698694229126; +13.999124526977539, -0.08039921522140503; +14.09911823272705, -0.08077919483184814; +14.199111938476562, -0.08108466863632202; +14.299105644226074, -0.08095800876617432; +14.399099349975586, -0.07949769496917725; +14.499093055725098, -0.07665902376174927; +14.59908676147461, -0.0746697187423706; +14.699080467224121, -0.07362663745880127; +14.799074172973633, -0.07244199514389038; +14.899067878723145, -0.07058680057525635; +14.999061584472656, -0.06864219903945923; +15.099056243896484, -0.06709247827529907; +15.199049949645996, -0.06592273712158203; +15.299043655395508, -0.06540119647979736; +15.39903736114502, -0.0658184289932251; +15.499031066894531, -0.06727874279022217; +15.599024772644043, -0.06999820470809937; +15.699018478393555, -0.07320195436477661; +15.799012184143066, -0.07625669240951538; +15.899005889892578, -0.07822364568710327; +15.99899959564209, -0.07915496826171875; +16.0989933013916, -0.07957965135574341; +16.198986053466797, -0.07880479097366333; +16.298980712890625, -0.07767230272293091; +16.398975372314453, -0.07656961679458618; +16.49896812438965, -0.07633119821548462; +16.598962783813477, -0.07672607898712158; +16.698955535888672, -0.07638335227966309; +16.7989501953125, -0.07550418376922607; +16.898942947387695, -0.07396936416625977; +16.998937606811523, -0.07105618715286255; +17.09893035888672, -0.06729364395141602; +17.198925018310547, -0.06468594074249268; +17.298917770385742, -0.06573647260665894; +17.39891242980957, -0.06924569606781006; +17.498905181884766, -0.07227808237075806; +17.598899841308594, -0.07465481758117676; +17.69889259338379, -0.07700920104980469; +17.798887252807617, -0.07776916027069092; +17.898880004882812, -0.0754818320274353; +17.99887466430664, -0.07227063179016113; +18.098867416381836, -0.07111579179763794; +18.198862075805664, -0.07215887308120728; +18.29885482788086, -0.0730752944946289; +18.398849487304688, -0.07382035255432129; +18.498842239379883, -0.07495284080505371; +18.59883689880371, -0.07562339305877686; +18.69883155822754, -0.07538497447967529; +18.798824310302734, -0.07507205009460449; +18.898818969726562, -0.07556378841400146; +18.998811721801758, -0.07727742195129395; +19.098806381225586, -0.07911771535873413; +19.19879913330078, -0.08007138967514038; +19.29879379272461, -0.07920712232589722; +19.398786544799805, -0.07722526788711548; +19.498781204223633, -0.07560104131698608; +19.598773956298828, -0.07322430610656738; +19.698768615722656, -0.06927549839019775; +19.79876136779785, -0.06492435932159424; +19.89875602722168, -0.062465667724609375; +19.998748779296875, -0.06099790334701538; +20.098743438720703, -0.05862116813659668; +20.1987361907959, -0.056490302085876465; +20.298730850219727, -0.056706368923187256; +20.398723602294922, -0.05907565355300903; +20.49871826171875, -0.06193667650222778; +20.598711013793945, -0.06476044654846191; +20.698705673217773, -0.06824731826782227; +20.79869842529297, -0.07101893424987793; +20.898693084716797, -0.07174909114837646; +20.998687744140625, -0.07054954767227173; +21.09868049621582, -0.06876140832901001; +21.19867515563965, -0.06668269634246826; +21.298667907714844, -0.06428360939025879; +21.398662567138672, -0.06225705146789551; +21.498655319213867, -0.06161630153656006; +21.598649978637695, -0.062443315982818604; +21.69864273071289, -0.06354600191116333; +21.79863739013672, -0.0645667314529419; +21.898630142211914, -0.06561726331710815; +21.998624801635742, -0.06648898124694824; +22.098617553710938, -0.06648153066635132; +22.198612213134766, -0.06495416164398193; +22.29860496520996, -0.06225705146789551; +22.39859962463379, -0.0595971941947937; +22.498592376708984, -0.056974589824676514; +22.598587036132812, -0.05510449409484863; +22.698579788208008, -0.05490332841873169; +22.798574447631836, -0.05628913640975952; +22.89856719970703, -0.05891919136047363; +22.99856185913086, -0.06232410669326782; +23.098554611206055, -0.06673485040664673; +23.198549270629883, -0.07042288780212402; +23.29854393005371, -0.07144361734390259; +23.398536682128906, -0.07082521915435791; +23.498531341552734, -0.07066875696182251; +23.59852409362793, -0.07113069295883179; +23.698518753051758, -0.07106363773345947; +23.798511505126953, -0.07127970457077026; +23.89850616455078, -0.07245689630508423; +23.998498916625977, -0.07395446300506592; +24.098493576049805, -0.07453560829162598; +24.198486328125, -0.07470697164535522; +24.298480987548828, -0.07551908493041992; +24.398473739624023, -0.07682293653488159; +24.49846839904785, -0.07829815149307251; +24.598461151123047, -0.07938593626022339; +24.698455810546875, -0.08048117160797119; +24.79844856262207, -0.08141249418258667; +24.8984432220459, -0.08195638656616211; +24.998435974121094, -0.08117407560348511; +25.098430633544922, -0.07928162813186646; +25.198423385620117, -0.0782310962677002; +25.298418045043945, -0.0772625207901001; +25.39841079711914, -0.07604807615280151; +25.49840545654297, -0.07387995719909668; +25.598400115966797, -0.07285922765731812; +25.698392868041992, -0.07347017526626587; +25.79838752746582, -0.07431954145431519; +25.898380279541016, -0.07510930299758911; +25.998374938964844, -0.07487833499908447; +26.09836769104004, -0.07483363151550293; +26.198362350463867, -0.07478147745132446; +26.298355102539062, -0.07528811693191528; +26.39834976196289, -0.07625669240951538; +26.498342514038086, -0.07813423871994019; +26.598337173461914, -0.08164346218109131; +26.69832992553711, -0.08516758680343628; +26.798324584960938, -0.08694082498550415; +26.898317337036133, -0.08656829595565796; +26.99831199645996, -0.085391104221344; +27.098304748535156, -0.08399039506912231; +27.198299407958984, -0.08223950862884521; +27.29829216003418, -0.080890953540802; +27.398286819458008, -0.08089840412139893; +27.498279571533203, -0.08174777030944824; +27.59827423095703, -0.08203089237213135; +27.698266983032227, -0.08121132850646973; +27.798261642456055, -0.07981061935424805; +27.898256301879883, -0.07865577936172485; +27.998249053955078, -0.07849931716918945; +28.098243713378906, -0.0800788402557373; +28.1982364654541, -0.08337199687957764; +28.29823112487793, -0.0865831971168518; +28.398223876953125, -0.08860975503921509; +28.498218536376953, -0.08921325206756592; +28.59821128845215, -0.08900463581085205; +28.698205947875977, -0.08831173181533813; +28.798198699951172, -0.08727610111236572; +28.898193359375, -0.08618086576461792; +28.998186111450195, -0.08527934551239014; +29.098180770874023, -0.0845491886138916; +29.19817352294922, -0.08349865674972534; +29.298168182373047, -0.08179247379302979; +29.398160934448242, -0.07994472980499268; +29.49815559387207, -0.07958710193634033; +29.598148345947266, -0.08088350296020508; +29.698143005371094, -0.08290261030197144; +29.79813575744629, -0.08486956357955933; +29.898130416870117, -0.08616596460342407; +29.998123168945312, -0.08632242679595947; +30.09811782836914, -0.08521229028701782; +30.19811248779297, -0.08378922939300537; +30.298105239868164, -0.08258223533630371; +30.398099899291992, -0.0813603401184082; +30.498092651367188, -0.08008629083633423; +30.598087310791016, -0.07978081703186035; +30.69808006286621, -0.08072704076766968; +30.79807472229004, -0.08187443017959595; +30.898067474365234, -0.08306652307510376; +30.998062133789062, -0.08452683687210083; +31.098054885864258, -0.08659064769744873; +31.198049545288086, -0.08757412433624268; +31.29804229736328, -0.08714944124221802; +31.39803695678711, -0.08607655763626099; +31.498029708862305, -0.0850781798362732; +31.598024368286133, -0.08413940668106079; +31.698017120361328, -0.0829845666885376; +31.798011779785156, -0.08213520050048828; +31.89800453186035, -0.08058547973632812; +31.99799919128418, -0.07823854684829712; +32.097991943359375, -0.07542222738265991; +32.1979866027832, -0.07379800081253052; +32.29798126220703, -0.07369369268417358; +32.397972106933594, -0.07450580596923828; +32.49796676635742, -0.07701665163040161; +32.59796142578125, -0.08102506399154663; +32.69795608520508, -0.08522719144821167; +32.797950744628906, -0.08647143840789795; +32.89794158935547, -0.0850781798362732; +32.9979362487793, -0.08320063352584839; +33.097930908203125, -0.0812634825706482; +33.19792556762695, -0.0788271427154541; +33.297916412353516, -0.07641315460205078; +33.397911071777344, -0.0766366720199585; +33.49790573120117, -0.07829070091247559; +33.597900390625, -0.07906556129455566; +33.69789123535156, -0.07834285497665405; +33.79788589477539, -0.07808208465576172; +33.89788055419922, -0.07913261651992798; +33.99787521362305, -0.08009374141693115; +34.09786605834961, -0.08075684309005737; +34.19786071777344, -0.08138269186019897; +34.297855377197266, -0.0828281044960022; +34.397850036621094, -0.0834241509437561; +34.497840881347656, -0.08270144462585449; +34.597835540771484, -0.08103996515274048; +34.69783020019531, -0.07993727922439575; +34.79782485961914, -0.07967650890350342; +34.89781951904297, -0.07910281419754028; +34.99781036376953, -0.07861107587814331; +35.09780502319336, -0.07893145084381104; +35.19779968261719, -0.08089840412139893; +35.297794342041016, -0.08319318294525146; +35.39778518676758, -0.08561462163925171; +35.497779846191406, -0.08772313594818115; +35.597774505615234, -0.08942931890487671; +35.69776916503906, -0.08951127529144287; +35.797760009765625, -0.08715689182281494; +35.89775466918945, -0.08386373519897461; +35.99774932861328, -0.08160620927810669; +36.09774398803711, -0.08158385753631592; +36.19773483276367, -0.08195638656616211; +36.2977294921875, -0.08215755224227905; +36.39772415161133, -0.0819861888885498; +36.497718811035156, -0.08127838373184204; +36.59770965576172, -0.07936358451843262; +36.69770431518555, -0.07722526788711548; +36.797698974609375, -0.07700920104980469; +36.8976936340332, -0.07822364568710327; +36.997684478759766, -0.08028745651245117; +37.097679138183594, -0.08219480514526367; +37.19767379760742, -0.08352845907211304; +37.29766845703125, -0.08397549390792847; +37.39766311645508, -0.0841096043586731; +37.49765396118164, -0.08468329906463623; +37.59764862060547, -0.08583813905715942; +37.6976432800293, -0.08741766214370728; +37.797637939453125, -0.08906424045562744; +37.89762878417969, -0.08989870548248291; +37.997623443603516, -0.08874386548995972; +38.097618103027344, -0.0863298773765564; +38.19761276245117, -0.08320063352584839; +38.297603607177734, -0.08080899715423584; +38.39759826660156, -0.07978826761245728; +38.49759292602539, -0.08024275302886963; +38.59758758544922, -0.08188188076019287; +38.69757843017578, -0.08367002010345459; +38.79757308959961, -0.08577853441238403; +38.89756774902344, -0.08777529001235962; +38.997562408447266, -0.0896751880645752; +39.09755325317383, -0.09075552225112915; +39.197547912597656, -0.09052455425262451; +39.297542572021484, -0.09036064147949219; +39.39753723144531, -0.0913962721824646; +39.49753189086914, -0.09237974882125854; +39.5975227355957, -0.09100139141082764; +39.69751739501953, -0.08808821439743042; +39.79751205444336, -0.08647143840789795; +39.89750671386719, -0.08672475814819336; +39.99749755859375, -0.08655339479446411; +40.09749221801758, -0.08575618267059326; +40.197486877441406, -0.08616596460342407; +40.297481536865234, -0.08697807788848877; +40.3974723815918, -0.0859871506690979; +40.497467041015625, -0.08268654346466064; +40.59746170043945, -0.07925927639007568; +40.69745635986328, -0.07730722427368164; +40.797447204589844, -0.07573515176773071; +40.89744186401367, -0.07478147745132446; +40.9974365234375, -0.07477402687072754; +41.09743118286133, -0.07515400648117065; +41.19742202758789, -0.07539242506027222; +41.29741668701172, -0.0750124454498291; +41.39741134643555, -0.07522851228713989; +41.497406005859375, -0.07605552673339844; +41.59739685058594, -0.07795542478561401; +41.697391510009766, -0.08112192153930664; +41.797386169433594, -0.08438527584075928; +41.89738082885742, -0.08719414472579956; +41.99737548828125, -0.08921325206756592; +42.09736633300781, -0.09132176637649536; +42.19736099243164, -0.09334087371826172; +42.29735565185547, -0.09511411190032959; +42.3973503112793, -0.09658187627792358; +42.49734115600586, -0.09654462337493896; +42.59733581542969, -0.09393692016601562; +42.697330474853516, -0.08934736251831055; +42.797325134277344, -0.08396059274673462; +42.897315979003906, -0.07861107587814331; +42.997310638427734, -0.07481873035430908; +43.09730529785156, -0.07475912570953369; +43.19729995727539, -0.07896870374679565; +43.29729080200195, -0.08466839790344238; +43.39728546142578, -0.0894591212272644; +43.49728012084961, -0.09248405694961548; +43.59727478027344, -0.09325146675109863; +43.697265625, -0.09150803089141846; +43.79726028442383, -0.08814781904220581; +43.897254943847656, -0.0852048397064209; +43.997249603271484, -0.08343905210494995; +44.09724426269531, -0.0826418399810791; +44.197235107421875, -0.08244067430496216; +44.2972297668457, -0.08250772953033447; +44.39722442626953, -0.08306652307510376; +44.49721908569336, -0.08337944746017456; +44.59720993041992, -0.08349865674972534; +44.69720458984375, -0.08308142423629761; +44.79719924926758, -0.08133798837661743; +44.897193908691406, -0.0787973403930664; +44.99718475341797, -0.07575750350952148; +45.0971794128418, -0.07372349500656128; +45.197174072265625, -0.07223337888717651; +45.29716873168945, -0.07103383541107178; +45.397159576416016, -0.07111579179763794; +45.497154235839844, -0.0723227858543396; +45.59714889526367, -0.0740736722946167; +45.6971435546875, -0.07487833499908447; +45.79713439941406, -0.07465481758117676; +45.89712905883789, -0.07414817810058594; +45.99712371826172, -0.07337331771850586; +46.09711837768555, -0.07245689630508423; +46.19710922241211, -0.07110834121704102; +46.29710388183594, -0.06979703903198242; +46.397098541259766, -0.06974488496780396; +46.497093200683594, -0.07186084985733032; +46.59708786010742, -0.07661432027816772; +46.697078704833984, -0.08174031972885132; +46.79707336425781, -0.0855177640914917; +46.89706802368164, -0.08779764175415039; +46.99706268310547, -0.08924305438995361; +47.09705352783203, -0.08955597877502441; +47.19704818725586, -0.08757412433624268; +47.29704284667969, -0.08450448513031006; +47.397037506103516, -0.08215010166168213; +47.49702835083008, -0.0810474157333374; +47.597023010253906, -0.08065998554229736; +47.697017669677734, -0.08063763380050659; +47.79701232910156, -0.08131563663482666; +47.897003173828125, -0.08290261030197144; +47.99699783325195, -0.08550286293029785; +48.09699249267578, -0.08796900510787964; +48.19698715209961, -0.0893622636795044; +48.29697799682617, -0.08900463581085205; +48.39697265625, -0.0863298773765564; +48.49696731567383, -0.08218735456466675; +48.596961975097656, -0.07727742195129395; +48.696956634521484, -0.07340312004089355; +48.79694747924805, -0.07089227437973022; +48.896942138671875, -0.06990879774093628; +48.9969367980957, -0.07121264934539795; +49.09693145751953, -0.07396191358566284; +49.196922302246094, -0.07703900337219238; +49.29691696166992, -0.0792965292930603; +49.39691162109375, -0.08004903793334961; +49.49690628051758, -0.07977336645126343; +49.59689712524414, -0.07939338684082031; +49.69689178466797, -0.07970631122589111; +49.7968864440918, -0.08083879947662354; +49.896881103515625, -0.08122622966766357; +49.99687194824219, -0.08226186037063599; +50.096866607666016, -0.0836402177810669; +50.196861267089844, -0.08421391248703003; +50.29685592651367, -0.08381158113479614; +50.396846771240234, -0.08308142423629761; +50.49684143066406, -0.08333474397659302; +50.59683609008789, -0.08337199687957764; +50.69683074951172, -0.08380413055419922; +50.79682159423828, -0.08515268564224243; +50.89681625366211, -0.08591264486312866; +50.99681091308594, -0.08510053157806396; +51.096805572509766, -0.08437782526016235; +51.196800231933594, -0.08479505777359009; +51.296791076660156, -0.08445978164672852; +51.396785736083984, -0.07870793342590332; +51.49678039550781, -0.054739415645599365; +51.59677505493164, 0.014699995517730713; +51.6967658996582, 0.1595020294189453; +51.79676055908203, 0.38868188858032227; +51.89675521850586, 0.6854161620140076; +51.99674987792969, 1.0221749544143677; +52.09674072265625, 1.3696849346160889; +52.19673538208008, 1.6957447528839111; +52.296730041503906, 1.9720792770385742; +52.396724700927734, 2.1865293979644775; +52.4967155456543, 2.3423657417297363; +52.596710205078125, 2.446301221847534; +52.69670486450195, 2.5042221546173096; +52.79669952392578, 2.523221015930176; +52.896690368652344, 2.512678623199463; +52.99668502807617, 2.4825706481933594; +53.0966796875, 2.446770668029785; +53.19667434692383, 2.430051565170288; +53.296669006347656, 2.4659335613250732; +53.39665985107422, 2.5794804096221924; +53.49665451049805, 2.7716457843780518; +53.596649169921875, 3.024406671524048; +53.6966438293457, 3.320969581604004; +53.796634674072266, 3.6460087299346924; +53.896629333496094, 3.9553418159484863; +53.99662399291992, 4.181027412414551; +54.09661865234375, 4.277393341064453; +54.19660949707031, 4.25193452835083; +54.29660415649414, 4.142105579376221; +54.39659881591797, 3.981210231781006; +54.4965934753418, 3.8027615547180176; +54.59658432006836, 3.6481544971466064; +54.69657897949219, 3.551222324371338; +54.796573638916016, 3.5274922847747803; +54.896568298339844, 3.5780296325683594; +54.996559143066406, 3.695711612701416; +55.096553802490234, 3.8693323135375977; +55.19654846191406, 4.072770595550537; +55.29654312133789, 4.251435279846191; +55.39653396606445, 4.319600582122803; +55.49652862548828, 4.185840606689453; +55.59652328491211, 3.7950799465179443; +55.69651794433594, 3.152616262435913; +55.796512603759766, 2.324953556060791; +55.89650344848633, 1.4187469482421875; +55.996498107910156, 0.5500242114067078; +56.096492767333984, -0.1837611198425293; +56.19648742675781, -0.7260888814926147; +56.296478271484375, -1.0735318660736084; +56.3964729309082, -1.265622615814209; +56.49646759033203, -1.3551563024520874; +56.59646224975586, -1.3871119022369385; +56.69645309448242, -1.3947784900665283; +56.79644775390625, -1.4026389122009277; +56.89644241333008, -1.425541877746582; +56.996437072753906, -1.4704391956329346; +57.09642791748047, -1.5399456024169922; +57.1964225769043, -1.6336888074874878; +57.296417236328125, -1.7447099685668945; +57.39641189575195, -1.8585994243621826; +57.496402740478516, -1.954965353012085; +57.596397399902344, -2.010680675506592; +57.69639205932617, -2.00734281539917; +57.79638671875, -1.9383877515792847; +57.89637756347656, -1.8187165260314941; +57.99637222290039, -1.6808509826660156; +58.09636688232422, -1.5564634799957275; +58.19636154174805, -1.452200174331665; +58.296356201171875, -1.3409481048583984; +58.39634704589844, -1.1736303567886353; +58.496341705322266, -0.8953586220741272; +58.596336364746094, -0.4613026976585388; +58.69633102416992, 0.14032423496246338; +58.796321868896484, 0.8641555905342102; +58.89631652832031, 1.6131997108459473; +58.99631118774414, 2.276480197906494; +59.09630584716797, 2.76982045173645; +59.19629669189453, 3.0502676963806152; +59.29629135131836, 3.1173973083496094; +59.39628601074219, 3.0097737312316895; +59.496280670166016, 2.7893259525299072; +59.59627151489258, 2.515554428100586; +59.696266174316406, 2.226628303527832; +59.796260833740234, 1.9411742687225342; +59.89625549316406, 1.6684383153915405; +59.996246337890625, 1.4140158891677856; +60.09624099731445, 1.1826902627944946; +60.19623565673828, 0.9805560111999512; +60.29623031616211, 0.8153393864631653; +60.39622497558594, 0.6932094693183899; +60.4962158203125, 0.6141215562820435; +60.59621047973633, 0.5740523338317871; +60.696205139160156, 0.5677193403244019; +60.796199798583984, 0.5924627184867859; +60.89619064331055, 0.6506815552711487; +60.996185302734375, 0.7508322596549988; +61.0961799621582, 0.9070113301277161; +61.19617462158203, 1.1263787746429443; +61.296165466308594, 1.3773367404937744; +61.39616012573242, 1.5686005353927612; +61.49615478515625, 1.5813038349151611; +61.59614944458008, 1.3327524662017822; +61.69614028930664, 0.8099451661109924; +61.79613494873047, 0.05683302879333496; +61.8961296081543, -0.8321627974510193; +61.996124267578125, -1.7136335372924805; +62.09611511230469, -2.4364962577819824; +62.196109771728516, -2.9088706970214844; +62.296104431152344, -3.1294374465942383; +62.39609909057617, -3.1611175537109375; +62.496089935302734, -3.088667869567871; +62.59608459472656, -2.9850378036499023; +62.69607925415039, -2.89393949508667; +62.79607391357422, -2.8227715492248535; +62.89606857299805, -2.75258731842041; +62.99605941772461, -2.653531789779663; +63.09605407714844, -2.496659755706787; +63.196048736572266, -2.2685675621032715; +63.296043395996094, -1.9808635711669922; +63.396034240722656, -1.678168773651123; +63.496028900146484, -1.4244318008422852; +63.59602355957031, -1.2784451246261597; +63.69601821899414, -1.2685209512710571; +63.7960090637207, -1.384474277496338; +63.89600372314453, -1.5858337879180908; +63.99599838256836, -1.8159523010253906; +64.09599304199219, -2.0155906677246094; +64.19598388671875, -2.1352767944335938; +64.29598236083984, -2.1526143550872803; +64.3959732055664, -2.0803213119506836; +64.49596405029297, -1.95955491065979; +64.59596252441406, -1.83771550655365; +64.69595336914062, -1.7579048871994019; +64.79594421386719, -1.753814458847046; +64.89594268798828, -1.8416717052459717; +64.99593353271484, -2.004854440689087; +65.09593200683594, -2.189755439758301; +65.1959228515625, -2.328075408935547; +65.29591369628906, -2.3617520332336426; +65.39591217041016, -2.2590830326080322; +65.49590301513672, -2.0162835121154785; +65.59590148925781, -1.6601234674453735; +65.69589233398438, -1.2471153736114502; +65.79588317871094, -0.8439496159553528; +65.89588165283203, -0.5029290914535522; +65.9958724975586, -0.24669617414474487; +66.09586334228516, -0.07621943950653076; +66.19586181640625, 0.016547739505767822; +66.29585266113281, 0.04421919584274292; +66.3958511352539, 0.020489096641540527; +66.49584197998047, -0.042922794818878174; +66.59583282470703, -0.1376718282699585; +66.69583129882812, -0.25672465562820435; +66.79582214355469, -0.3919675946235657; +66.89581298828125, -0.5349814891815186; +66.99581146240234, -0.6756782531738281; +67.0958023071289, -0.8019506931304932; +67.19580078125, -0.903785228729248; +67.29579162597656, -0.9738430380821228; +67.39578247070312, -1.0076687335968018; +67.49578094482422, -1.004122257232666; +67.59577178955078, -0.9679421782493591; +67.69577026367188, -0.9087026119232178; +67.79576110839844, -0.8347854018211365; +67.895751953125, -0.7512718439102173; +67.9957504272461, -0.6578788161277771; +68.09574127197266, -0.5480796098709106; +68.19573211669922, -0.4073306918144226; +68.29573059082031, -0.2160891890525818; +68.39572143554688, 0.04414469003677368; +68.49571990966797, 0.382937490940094; +68.59571075439453, 0.7963553071022034; +68.6957015991211, 1.261398196220398; +68.79570007324219, 1.7250850200653076; +68.89569091796875, 2.101376533508301; +68.99568176269531, 2.290226459503174; +69.0956802368164, 2.223201036453247; +69.19567108154297, 1.8966645002365112; +69.29566955566406, 1.3707504272460938; +69.39566040039062, 0.7456988096237183; +69.49565124511719, 0.1360476016998291; +69.59564971923828, -0.35902857780456543; +69.69564056396484, -0.688500702381134; +69.79563903808594, -0.860355794429779; +69.8956298828125, -0.922277569770813; +69.99562072753906, -0.9291023015975952; +70.09561920166016, -0.9164810180664062; +70.19561004638672, -0.8807927370071411; +70.29560089111328, -0.7745847105979919; +70.39559936523438, -0.5323141813278198; +70.49559020996094, -0.11332333087921143; +70.59558868408203, 0.4679188132286072; +70.6955795288086, 1.1440068483352661; +70.79557037353516, 1.823164463043213; +70.89556884765625, 2.41363787651062; +70.99555969238281, 2.832345724105835; +71.09555053710938, 3.015316963195801; +71.19554901123047, 2.935469150543213; +71.29553985595703, 2.611488103866577; +71.39553833007812, 2.090290069580078; +71.49552917480469, 1.4305486679077148; +71.59552001953125, 0.7022693753242493; +71.69551849365234, -0.014536082744598389; +71.7955093383789, -0.6420984864234924; +71.8955078125, -1.1197402477264404; +71.99549865722656, -1.4162287712097168; +72.09548950195312, -1.5402510166168213; +72.19548797607422, -1.5386492013931274; +72.29547882080078, -1.4722198247909546; +72.39546966552734, -1.392148494720459; +72.49546813964844, -1.3312771320343018; +72.595458984375, -1.3053864240646362; +72.6954574584961, -1.3178884983062744; +72.79544830322266, -1.364588737487793; +72.89543914794922, -1.4380961656570435; +72.99543762207031, -1.5263333320617676; +73.09542846679688, -1.610659122467041; +73.19541931152344, -1.6705617904663086; +73.29541778564453, -1.6897916793823242; +73.3954086303711, -1.6599297523498535; +73.49540710449219, -1.5822052955627441; +73.59539794921875, -1.4665052890777588; +73.69538879394531, -1.3325884342193604; +73.7953872680664, -1.2079030275344849; +73.89537811279297, -1.1218562126159668; +73.99536895751953, -1.096293330192566; +74.09536743164062, -1.1420621871948242; +74.19535827636719, -1.2579113245010376; +74.29535675048828, -1.430638074874878; +74.39534759521484, -1.6345679759979248; +74.4953384399414, -1.831181287765503; +74.5953369140625, -1.97442626953125; +74.69532775878906, -2.0204410552978516; +74.79532623291016, -1.9457340240478516; +74.89531707763672, -1.7572417259216309; +74.99530792236328, -1.4890506267547607; +75.09530639648438, -1.1930391788482666; +75.19529724121094, -0.9258314967155457; +75.2952880859375, -0.7358938455581665; +75.3952865600586, -0.650256872177124; +75.49527740478516, -0.6694719195365906; +75.59527587890625, -0.7705017924308777; +75.69526672363281, -0.91523677110672; +75.79525756835938, -1.0623931884765625; +75.89525604248047, -1.1759028434753418; +75.99524688720703, -1.2282953262329102; +76.0952377319336, -1.202486515045166; +76.19523620605469, -1.098528504371643; +76.29522705078125, -0.9391754865646362; +76.39522552490234, -0.7643178105354309; +76.4952163696289, -0.6164386868476868; +76.59520721435547, -0.5256235599517822; +76.69520568847656, -0.5054399371147156; +76.79519653320312, -0.5534589290618896; +76.89519500732422, -0.6554797291755676; +76.99518585205078, -0.7911399006843567; +77.09517669677734, -0.9417831897735596; +77.19517517089844, -1.0934696197509766; +77.295166015625, -1.2305974960327148; +77.39515686035156, -1.3334081172943115; +77.49515533447266, -1.3811886310577393; +77.59514617919922, -1.3616234064102173; +77.69514465332031, -1.2758225202560425; +77.79513549804688, -1.1383519172668457; +77.89512634277344, -0.9780600666999817; +77.99512481689453, -0.8285343647003174; +78.0951156616211, -0.71677565574646; +78.19510650634766, -0.6545484066009521; +78.29510498046875, -0.639207661151886; +78.39509582519531, -0.6631612777709961; +78.4950942993164, -0.7179677486419678; +78.59508514404297, -0.799126923084259; +78.69507598876953, -0.9033381938934326; +78.79507446289062, -1.021549105644226; +78.89506530761719, -1.1354014873504639; +78.99506378173828, -1.2229979038238525; +79.09505462646484, -1.2672245502471924; +79.1950454711914, -1.2572407722473145; +79.2950439453125, -1.190058946609497; +79.39503479003906, -1.0757670402526855; +79.49502563476562, -0.9386762976646423; +79.59502410888672, -0.8034631609916687; +79.69501495361328, -0.6841719150543213; +79.79501342773438, -0.5864426493644714; +79.89500427246094, -0.5108490586280823; +79.9949951171875, -0.45609474182128906; +80.0949935913086, -0.41622668504714966; +80.19498443603516, -0.38682669401168823; +80.29497528076172, -0.36650151014328003; +80.39497375488281, -0.35287439823150635; +80.49496459960938, -0.3436431288719177; +80.59496307373047, -0.33605098724365234; +80.69495391845703, -0.32952427864074707; +80.7949447631836, -0.3229677677154541; +80.89494323730469, -0.315345823764801; +80.99493408203125, -0.3074854612350464; +81.09493255615234, -0.3005415201187134; +81.1949234008789, -0.2944767475128174; +81.29491424560547, -0.28814375400543213; +81.39491271972656, -0.2814978361129761; +81.49490356445312, -0.275932252407074; +81.59489440917969, -0.2719983458518982; +81.69489288330078, -0.26913732290267944; +81.79488372802734, -0.2666786313056946; +81.89488220214844, -0.26533007621765137; +81.994873046875, -0.2659931778907776; +82.09486389160156, -0.26708096265792847; +82.19486236572266, -0.2666935324668884; +82.29485321044922, -0.264681875705719; +82.39484405517578, -0.262334942817688; +82.49484252929688, -0.25937706232070923; +82.59483337402344, -0.2545490860939026; +82.69483184814453, -0.24880468845367432; +82.7948226928711, -0.2442672848701477; +82.89481353759766, -0.241793692111969; +82.99481201171875, -0.2415105700492859; +83.09480285644531, -0.24283677339553833; +83.19479370117188, -0.24466216564178467; +83.29479217529297, -0.24537742137908936; +83.39478302001953, -0.2428293228149414; +83.49478149414062, -0.23287534713745117; +83.59477233886719, -0.2081841230392456; +83.69476318359375, -0.16289949417114258; +83.79476165771484, -0.09345263242721558; +83.8947525024414, 0.0036954879760742188; +83.9947509765625, 0.13528764247894287; +84.09474182128906, 0.3181919455528259; +84.19473266601562, 0.5951970815658569; +84.29473114013672, 1.0224729776382446; +84.39472198486328, 1.6104578971862793; +84.49471282958984, 2.301454544067383; +84.59471130371094, 3.0097813606262207; +84.6947021484375, 3.667726993560791; +84.7947006225586, 4.203118324279785; +84.89469146728516, 4.521280288696289; +84.99468231201172, 4.565968990325928; +85.09468078613281, 4.360705375671387; +85.19467163085938, 3.9757192134857178; +85.29466247558594, 3.4708008766174316; +85.39466094970703, 2.890475034713745; +85.4946517944336, 2.2907330989837646; +85.59465026855469, 1.7328486442565918; +85.69464111328125, 1.2606456279754639; +85.79463195800781, 0.8907392621040344; +85.8946304321289, 0.6179437041282654; +85.99462127685547, 0.42536109685897827; +86.09461975097656, 0.2918839454650879; +86.19461059570312, 0.1989901065826416; +86.29460144042969, 0.13425201177597046; +86.39459991455078, 0.09110569953918457; +86.49459075927734, 0.062309205532073975; +86.5945816040039, 0.04111975431442261; +86.694580078125, 0.02370774745941162; +86.79457092285156, 0.008672475814819336; +86.89456939697266, -0.003203749656677246; +86.99456024169922, -0.012993812561035156; +87.09455108642578, -0.021412968635559082; +87.19454956054688, -0.02761930227279663; +87.29454040527344, -0.03135204315185547; +87.39453125, -0.03368407487869263; +87.4945297241211, -0.036947429180145264; +87.59452056884766, -0.04203617572784424; +87.69451904296875, -0.048138201236724854; +87.79450988769531, -0.055223703384399414; +87.89450073242188, -0.06269663572311401; +87.99449920654297, -0.06809830665588379; +88.09449005126953, -0.0696331262588501; +88.19448852539062, -0.06887316703796387; +88.29447937011719, -0.06909668445587158; +88.39447021484375, -0.0710412859916687; +88.49446868896484, -0.07249414920806885; +88.5944595336914, -0.07343292236328125; +88.69445037841797, -0.07634609937667847; +88.79444885253906, -0.08088350296020508; +88.89443969726562, -0.08340924978256226; +88.99443817138672, -0.08206069469451904; +89.09442901611328, -0.08007138967514038; +89.19441986083984, -0.08036941289901733; +89.29441833496094, -0.08266419172286987; +89.3944091796875, -0.08599460124969482; +89.49440002441406, -0.09078532457351685; +89.59439849853516, -0.09657442569732666; +89.69438934326172, -0.10185688734054565; +89.79438781738281, -0.10523200035095215; +89.89437866210938, -0.10613352060317993; +89.99436950683594, -0.10494142770767212; +90.09436798095703, -0.1017451286315918; +90.1943588256836, -0.09828060865402222; +90.29434967041016, -0.0958368182182312; +90.39434814453125, -0.09551644325256348; +90.49433898925781, -0.0966489315032959; +90.5943374633789, -0.0973045825958252; +90.69432830810547, -0.0977441668510437; +90.79431915283203, -0.09881705045700073; +90.89431762695312, -0.10038912296295166; +90.99430847167969, -0.10163336992263794; +91.09430694580078, -0.10267645120620728; +91.19429779052734, -0.10526925325393677; +91.2942886352539, -0.10915100574493408; +91.394287109375, -0.11262297630310059; +91.49427795410156, -0.1150369644165039; +91.59426879882812, -0.11639297008514404; +91.69426727294922, -0.1171305775642395; +91.79425811767578, -0.11719763278961182; +91.89425659179688, -0.11691451072692871; +91.99424743652344, -0.11632591485977173; +92.09423828125, -0.11456012725830078; +92.1942367553711, -0.11061131954193115; +92.29422760009766, -0.10606646537780762; +92.39421844482422, -0.1024007797241211; +92.49421691894531, -0.1009032130241394; +92.59420776367188, -0.10128319263458252; +92.69420623779297, -0.10320544242858887; +92.79419708251953, -0.10697543621063232; +92.8941879272461, -0.11131167411804199; +92.99418640136719, -0.11510401964187622; +93.09417724609375, -0.11649727821350098; +93.19417572021484, -0.11552870273590088; +93.2941665649414, -0.1136884093284607; +93.39415740966797, -0.11158734560012817; +93.49415588378906, -0.10869652032852173; +93.59414672851562, -0.10491907596588135; +93.69413757324219, -0.10157376527786255; +93.79413604736328, -0.09973347187042236; +93.89412689208984, -0.09880214929580688; +93.99412536621094, -0.09863823652267456; +94.0941162109375, -0.09924918413162231; +94.19410705566406, -0.09991973638534546; +94.29410552978516, -0.10029971599578857; +94.39409637451172, -0.10069459676742554; +94.49408721923828, -0.10225176811218262; +94.59408569335938, -0.10526180267333984; +94.69407653808594, -0.10900944471359253; +94.79407501220703, -0.11268258094787598; +94.8940658569336, -0.11505186557769775; +94.99405670166016, -0.11531263589859009; +95.09405517578125, -0.11400878429412842; +95.19404602050781, -0.11122971773147583; +95.2940444946289, -0.10813027620315552; +95.39403533935547, -0.10619312524795532; +95.49402618408203, -0.10640174150466919; +95.59402465820312, -0.10830163955688477; +95.69401550292969, -0.10882318019866943; +95.79400634765625, -0.10702013969421387; +95.89400482177734, -0.1040920615196228; +95.9939956665039, -0.10180473327636719; +96.093994140625, -0.10055303573608398; +96.19398498535156, -0.0988394021987915; +96.29397583007812, -0.09746849536895752; +96.39397430419922, -0.09826570749282837; +96.49396514892578, -0.1017153263092041; +96.59395599365234, -0.10560452938079834; +96.69395446777344, -0.10722875595092773; +96.7939453125, -0.10708719491958618; +96.8939437866211, -0.10661035776138306; +96.99393463134766, -0.10678917169570923; +97.09392547607422, -0.10677427053451538; +97.19392395019531, -0.10503828525543213; +97.29391479492188, -0.10323524475097656; +97.39391326904297, -0.10357052087783813; +97.49390411376953, -0.10620057582855225; +97.5938949584961, -0.10825693607330322; +97.69389343261719, -0.10775774717330933; +97.79388427734375, -0.10690093040466309; +97.89387512207031, -0.1063123345375061; +97.9938735961914, -0.10515749454498291; +98.09386444091797, -0.10264664888381958; +98.19386291503906, -0.1002773642539978; +98.29385375976562, -0.0986829400062561; +98.39384460449219, -0.09642541408538818; +98.49384307861328, -0.09312480688095093; +98.59383392333984, -0.09059906005859375; +98.6938247680664, -0.09078532457351685; +98.7938232421875, -0.09334832429885864; +98.89381408691406, -0.09725987911224365; +98.99381256103516, -0.10214745998382568; +99.09380340576172, -0.10713189840316772; +99.19379425048828, -0.1104697585105896; +99.29379272460938, -0.11111795902252197; +99.39378356933594, -0.10969489812850952; +99.4937744140625, -0.10706484317779541; +99.5937728881836, -0.10363012552261353; +99.69376373291016, -0.10035187005996704; +99.79376220703125, -0.09832531213760376; +99.89375305175781, -0.09749829769134521; +99.99374389648438, -0.09709596633911133; +100.09374237060547, -0.09809434413909912; +100.19373321533203, -0.10140985250473022; +100.29373168945312, -0.10641664266586304; +100.39372253417969, -0.11076033115386963; +100.49371337890625, -0.11361390352249146; +100.59371185302734, -0.11501461267471313; +100.6937026977539, -0.11555850505828857; +100.79369354248047, -0.11505186557769775; +100.89369201660156, -0.11382997035980225; +100.99368286132812, -0.11274218559265137; +101.09368133544922, -0.11215358972549438; +101.19367218017578, -0.11212378740310669; +101.29366302490234, -0.11131167411804199; +101.39366149902344, -0.10939687490463257; +101.49365234375, -0.10632723569869995; +101.59364318847656, -0.10282546281814575; +101.69364166259766, -0.09991973638534546; +101.79363250732422, -0.09795278310775757; +101.89363098144531, -0.09674578905105591; +101.99362182617188, -0.096149742603302; +102.09361267089844, -0.0966489315032959; +102.19361114501953, -0.09846687316894531; +102.2936019897461, -0.1003071665763855; +102.39360046386719, -0.10083615779876709; +102.49359130859375, -0.0999942421913147; +102.59358215332031, -0.09849667549133301; +102.6935806274414, -0.0977441668510437; +102.79357147216797, -0.09757280349731445; +102.89356231689453, -0.09768456220626831; +102.99356079101562, -0.09782612323760986; +103.09355163574219, -0.09879469871520996; +103.19355010986328, -0.10024756193161011; +103.29354095458984, -0.10029226541519165; +103.3935317993164, -0.09920448064804077; +103.4935302734375, -0.0982135534286499; +103.59352111816406, -0.09863823652267456; +103.69351196289062, -0.09926408529281616; +103.79351043701172, -0.09941309690475464; +103.89350128173828, -0.09932368993759155; +103.99349975585938, -0.0994652509689331; +104.09349060058594, -0.09992718696594238; +104.1934814453125, -0.09992718696594238; +104.2934799194336, -0.09954720735549927; +104.39347076416016, -0.09957700967788696; +104.49346923828125, -0.10115653276443481; +104.59346008300781, -0.10263174772262573; +104.69345092773438, -0.10228902101516724; +104.79344940185547, -0.10113418102264404; +104.89344024658203, -0.1012161374092102; +104.9934310913086, -0.1028403639793396; +105.09342956542969, -0.1041218638420105; +105.19342041015625, -0.10465830564498901; +105.29341888427734, -0.10532885789871216; +105.3934097290039, -0.10539591312408447; +105.49340057373047, -0.10364502668380737; +105.59339904785156, -0.10063499212265015; +105.69338989257812, -0.09830296039581299; +105.79338073730469, -0.09738653898239136; +105.89337921142578, -0.09687989950180054; +105.99337005615234, -0.09691715240478516; +106.09336853027344, -0.09812414646148682; +106.193359375, -0.09939819574356079; +106.29335021972656, -0.0993385910987854; +106.39334869384766, -0.0982433557510376; +106.49333953857422, -0.09684264659881592; +106.59333801269531, -0.09517371654510498; +106.69332885742188, -0.09306520223617554; +106.79331970214844, -0.091552734375; +106.89331817626953, -0.0903978943824768; +106.9933090209961, -0.08937716484069824; +107.09329986572266, -0.08901208639144897; +107.19329833984375, -0.08991360664367676; +107.29328918457031, -0.09101629257202148; +107.3932876586914, -0.09131431579589844; +107.49327850341797, -0.09144097566604614; +107.59326934814453, -0.09153783321380615; +107.69326782226562, -0.09193271398544312; +107.79325866699219, -0.09231269359588623; +107.89324951171875, -0.09288638830184937; +107.99324798583984, -0.0936165452003479; +108.0932388305664, -0.09490549564361572; +108.1932373046875, -0.09713321924209595; +108.29322814941406, -0.0990256667137146; +108.39321899414062, -0.09914487600326538; +108.49321746826172, -0.09779632091522217; +108.59320831298828, -0.09649991989135742; +108.69319915771484, -0.09594857692718506; +108.79319763183594, -0.09632110595703125; +108.8931884765625, -0.09723752737045288; +108.9931869506836, -0.0985860824584961; +109.09317779541016, -0.09959191083908081; +109.19316864013672, -0.09974092245101929; +109.29316711425781, -0.09927153587341309; +109.39315795898438, -0.09834766387939453; +109.49315643310547, -0.09720772504806519; +109.59314727783203, -0.0964924693107605; +109.6931381225586, -0.09702146053314209; +109.79313659667969, -0.09817630052566528; +109.89312744140625, -0.09895861148834229; +109.99311828613281, -0.09896606206893921; +110.0931167602539, -0.09851902723312378; +110.19310760498047, -0.09809434413909912; +110.29310607910156, -0.09807944297790527; +110.39309692382812, -0.09925663471221924; +110.49308776855469, -0.10126084089279175; +110.59308624267578, -0.10289996862411499; +110.69307708740234, -0.10453909635543823; +110.7930679321289, -0.10636448860168457; +110.89306640625, -0.1077800989151001; +110.99305725097656, -0.10742992162704468; +111.09305572509766, -0.10557472705841064; +111.19304656982422, -0.10381639003753662; +111.29303741455078, -0.10226666927337646; +111.39303588867188, -0.10064244270324707; +111.49302673339844, -0.09894371032714844; +111.59302520751953, -0.09751319885253906; +111.6930160522461, -0.09574741125106812; +111.79300689697266, -0.09343773126602173; +111.89300537109375, -0.09171664714813232; +111.99299621582031, -0.09151548147201538; +112.09298706054688, -0.09253621101379395; +112.19298553466797, -0.09436160326004028; +112.29297637939453, -0.09725242853164673; +112.39297485351562, -0.10102242231369019; +112.49296569824219, -0.10434538125991821; +112.59295654296875, -0.10576844215393066; +112.69295501708984, -0.1059994101524353; +112.7929458618164, -0.10628998279571533; +112.89293670654297, -0.10705739259719849; +112.99293518066406, -0.10719895362854004; +113.09292602539062, -0.10667741298675537; +113.19292449951172, -0.1063421368598938; +113.29291534423828, -0.10577589273452759; +113.39290618896484, -0.10401755571365356; +113.49290466308594, -0.10228157043457031; +113.5928955078125, -0.10167062282562256; +113.6928939819336, -0.10089576244354248; +113.79288482666016, -0.09924918413162231; +113.89287567138672, -0.09798258543014526; +113.99287414550781, -0.09791553020477295; +114.09286499023438, -0.09688735008239746; +114.19285583496094, -0.09440630674362183; +114.29285430908203, -0.09305775165557861; +114.3928451538086, -0.09335577487945557; +114.49284362792969, -0.0931769609451294; +114.59283447265625, -0.09167194366455078; +114.69282531738281, -0.09031593799591064; +114.7928237915039, -0.08974224328994751; +114.89281463623047, -0.08919835090637207; +114.99280548095703, -0.08894503116607666; +115.09280395507812, -0.08989125490188599; +115.19279479980469, -0.09235739707946777; +115.29279327392578, -0.09556859731674194; +115.39278411865234, -0.0988692045211792; +115.4927749633789, -0.10082125663757324; +115.5927734375, -0.10119378566741943; +115.69276428222656, -0.10073184967041016; +115.79275512695312, -0.09984523057937622; +115.89275360107422, -0.09783357381820679; +115.99274444580078, -0.09504705667495728; +116.09274291992188, -0.09308755397796631; +116.19273376464844, -0.09209662675857544; +116.292724609375, -0.09138137102127075; +116.3927230834961, -0.09044259786605835; +116.49271392822266, -0.08989125490188599; +116.59271240234375, -0.08971989154815674; +116.69270324707031, -0.08957833051681519; +116.79269409179688, -0.08971244096755981; +116.89269256591797, -0.09018182754516602; +116.99268341064453, -0.09119510650634766; +117.0926742553711, -0.09306520223617554; +117.19267272949219, -0.09479373693466187; +117.29266357421875, -0.0960230827331543; +117.39266204833984, -0.09678304195404053; +117.4926528930664, -0.09769201278686523; +117.59264373779297, -0.09804964065551758; +117.69264221191406, -0.09656697511672974; +117.79263305664062, -0.09422004222869873; +117.89262390136719, -0.09269267320632935; +117.99262237548828, -0.09199976921081543; +118.09261322021484, -0.09126216173171997; +118.19261169433594, -0.08987635374069214; +118.2926025390625, -0.08925795555114746; +118.39259338378906, -0.08929520845413208; +118.49259185791016, -0.08939951658248901; +118.59258270263672, -0.09012967348098755; +118.69258117675781, -0.09255856275558472; +118.79257202148438, -0.09670853614807129; +118.89256286621094, -0.10058283805847168; +118.99256134033203, -0.10410696268081665; +119.0925521850586, -0.1063123345375061; +119.19254302978516, -0.10663270950317383; +119.29254150390625, -0.10441988706588745; +119.39253234863281, -0.10076910257339478; +119.4925308227539, -0.09765475988388062; +119.59252166748047, -0.09595602750778198; +119.69251251220703, -0.09582191705703735; +119.79251098632812, -0.09568780660629272; +119.89250183105469, -0.09491294622421265; +119.99249267578125, -0.09444355964660645; +120.09249114990234, -0.09531527757644653; +120.1924819946289, -0.09605288505554199; +120.29248046875, -0.09516626596450806; +120.39247131347656, -0.09384751319885254; +120.49246215820312, -0.09304285049438477; +120.59246063232422, -0.0928342342376709; +120.69245147705078, -0.0917091965675354; +120.79244995117188, -0.09036064147949219; +120.89244079589844, -0.09017437696456909; +120.992431640625, -0.09056925773620605; +121.0924301147461, -0.09134411811828613; +121.19242095947266, -0.09163469076156616; +121.29241180419922, -0.09259581565856934; +121.39241027832031, -0.09381771087646484; +121.49240112304688, -0.09469687938690186; +121.59239959716797, -0.09527802467346191; +121.69239044189453, -0.09572505950927734; +121.7923812866211, -0.095367431640625; +121.89237976074219, -0.09284168481826782; +121.99237060546875, -0.08989870548248291; +122.09236145019531, -0.08850544691085815; +122.1923599243164, -0.08907914161682129; +122.29235076904297, -0.08935481309890747; +122.39234924316406, -0.09025633335113525; +122.49234008789062, -0.09309500455856323; +122.59233093261719, -0.0960230827331543; +122.69232940673828, -0.09621679782867432; +122.79232025146484, -0.09339302778244019; +122.89231872558594, -0.09056925773620605; +122.9923095703125, -0.08855760097503662; +123.09230041503906, -0.0871121883392334; +123.19229888916016, -0.08603185415267944; +123.29228973388672, -0.08622556924819946; +123.39228057861328, -0.08806586265563965; +123.49227905273438, -0.08991360664367676; +123.59226989746094, -0.08977949619293213; +123.69226837158203, -0.08693337440490723; +123.7922592163086, -0.0832676887512207; +123.89225006103516, -0.08052587509155273; +123.99224853515625, -0.07846206426620483; +124.09223937988281, -0.07736682891845703; +124.19223022460938, -0.07768720388412476; +124.29222869873047, -0.07884949445724487; +124.39221954345703, -0.07952749729156494; +124.49221801757812, -0.07899850606918335; +124.59220886230469, -0.0781714916229248; +124.69219970703125, -0.07712841033935547; +124.79219818115234, -0.07549673318862915; +124.8921890258789, -0.07400661706924438; +124.99217987060547, -0.07390230894088745; +125.09217834472656, -0.07520616054534912; +125.19216918945312, -0.07697194814682007; +125.29216766357422, -0.07792562246322632; +125.39215850830078, -0.07886439561843872; +125.49214935302734, -0.08042901754379272; +125.59214782714844, -0.08136779069900513; +125.692138671875, -0.08055567741394043; +125.7921371459961, -0.07739663124084473; +125.89212799072266, -0.07376819849014282; +125.99211883544922, -0.0706017017364502; +126.09211730957031, -0.06844103336334229; +126.19210815429688, -0.06815791130065918; +126.29209899902344, -0.06957352161407471; +126.39209747314453, -0.07215887308120728; +126.4920883178711, -0.07507950067520142; +126.59208679199219, -0.07700175046920776; +126.69207763671875, -0.07747858762741089; +126.79206848144531, -0.07686018943786621; +126.8920669555664, -0.07686018943786621; +126.99205780029297, -0.07903575897216797; +127.09204864501953, -0.08220970630645752; +127.19204711914062, -0.0857040286064148; +127.29203796386719, -0.08837878704071045; +127.39203643798828, -0.08965283632278442; +127.49202728271484, -0.08952617645263672; +127.5920181274414, -0.0881776213645935; +127.6920166015625, -0.08723139762878418; +127.79200744628906, -0.08773058652877808; +127.89200592041016, -0.09028613567352295; +127.99199676513672, -0.09445101022720337; +128.0919952392578, -0.09843707084655762; +128.19198608398438, -0.10097026824951172; +128.29197692871094, -0.10226666927337646; +128.3919677734375, -0.10332465171813965; +128.49195861816406, -0.1039355993270874; +128.5919647216797, -0.10335445404052734; +128.69195556640625, -0.10108202695846558; +128.7919464111328, -0.09793788194656372; +128.89193725585938, -0.09449571371078491; +128.99192810058594, -0.09075552225112915; +129.09193420410156, -0.08741021156311035; +129.19192504882812, -0.08542090654373169; +129.2919158935547, -0.08573383092880249; +129.39190673828125, -0.08781254291534424; +129.4918975830078, -0.09029358625411987; +129.59188842773438, -0.0918954610824585; +129.69189453125, -0.09222328662872314; +129.79188537597656, -0.09096413850784302; +129.89187622070312, -0.08864700794219971; +129.9918670654297, -0.08579343557357788; +130.09185791015625, -0.08296221494674683; +130.19186401367188, -0.08098781108856201; +130.29185485839844, -0.07952749729156494; +130.391845703125, -0.07799267768859863; +130.49183654785156, -0.07562339305877686; +130.59182739257812, -0.07302314043045044; +130.69183349609375, -0.07133185863494873; +130.7918243408203, -0.07046014070510864; +130.89181518554688, -0.07003545761108398; +130.99180603027344, -0.07110089063644409; +131.091796875, -0.07411837577819824; +131.19180297851562, -0.07799267768859863; +131.2917938232422, -0.08060038089752197; +131.39178466796875, -0.08101761341094971; +131.4917755126953, -0.07999688386917114; +131.59176635742188, -0.07695704698562622; +131.69175720214844, -0.07269531488418579; +131.79176330566406, -0.06899237632751465; +131.89175415039062, -0.06743520498275757; +131.9917449951172, -0.06755441427230835; +132.09173583984375, -0.06785988807678223; +132.1917266845703, -0.06875395774841309; +132.29173278808594, -0.07018446922302246; +132.3917236328125, -0.07030367851257324; +132.49171447753906, -0.06803125143051147; +132.59170532226562, -0.0642240047454834; +132.6916961669922, -0.060185790061950684; +132.7917022705078, -0.05580484867095947; +132.89169311523438, -0.050537288188934326; +132.99168395996094, -0.04554539918899536; +133.0916748046875, -0.042088329792022705; +133.19166564941406, -0.04050135612487793; +133.2916717529297, -0.04077702760696411; +133.39166259765625, -0.04214048385620117; +133.4916534423828, -0.044114887714385986; +133.59164428710938, -0.045359134674072266; +133.69163513183594, -0.0453069806098938; +133.7916259765625, -0.04488229751586914; +133.89163208007812, -0.04478543996810913; +133.9916229248047, -0.04562735557556152; +134.09161376953125, -0.046022236347198486; +134.1916046142578, -0.046387314796447754; +134.29159545898438, -0.04702061414718628; +134.3916015625, -0.04677474498748779; +134.49159240722656, -0.04408508539199829; +134.59158325195312, -0.03813207149505615; +134.6915740966797, -0.031575560569763184; +134.79156494140625, -0.02606213092803955; +134.89157104492188, -0.022180378437042236; +134.99156188964844, -0.01920759677886963; +135.091552734375, -0.017039477825164795; +135.19154357910156, -0.015653669834136963; +135.29153442382812, -0.014528632164001465; +135.39154052734375, -0.0133514404296875; +135.4915313720703, -0.011049211025238037; +135.59152221679688, -0.006712973117828369; +135.69151306152344, -7.450580596923828e-05; +135.79150390625, 0.006288290023803711; +135.89149475097656, 0.01045316457748413; +135.9915008544922, 0.01325458288192749; +136.09149169921875, 0.016041100025177002; +136.1914825439453, 0.017687678337097168; +136.29147338867188, 0.016607344150543213; +136.39146423339844, 0.014029443264007568; +136.49147033691406, 0.012598931789398193; +136.59146118164062, 0.01354515552520752; +136.6914520263672, 0.01668184995651245; +136.79144287109375, 0.02139061689376831; +136.8914337158203, 0.027567148208618164; +136.99143981933594, 0.034399330615997314; +137.0914306640625, 0.04060566425323486; +137.19142150878906, 0.04468858242034912; +137.29141235351562, 0.046156346797943115; +137.3914031982422, 0.046387314796447754; +137.4914093017578, 0.046275556087493896; +137.59140014648438, 0.04712492227554321; +137.69139099121094, 0.04953891038894653; +137.7913818359375, 0.05360692739486694; +137.89137268066406, 0.058785080909729004; +137.99136352539062, 0.06427615880966187; +138.09136962890625, 0.06923824548721313; +138.1913604736328, 0.07256120443344116; +138.29135131835938, 0.07436424493789673; +138.39134216308594, 0.07615983486175537; +138.4913330078125, 0.07858872413635254; +138.59133911132812, 0.08065253496170044; +138.6913299560547, 0.08232146501541138; +138.79132080078125, 0.08575618267059326; +138.8913116455078, 0.09223073720932007; +138.99130249023438, 0.09988248348236084; +139.09130859375, 0.1063719391822815; +139.19129943847656, 0.11181831359863281; +139.29129028320312, 0.11661648750305176; +139.3912811279297, 0.12018531560897827; +139.49127197265625, 0.12158602476119995; +139.59127807617188, 0.12224167585372925; +139.69126892089844, 0.12376904487609863; +139.791259765625, 0.12665241956710815; +139.89125061035156, 0.13030320405960083; +139.99124145507812, 0.13368576765060425; +140.0912322998047, 0.13592839241027832; +140.1912384033203, 0.13668835163116455; +140.29122924804688, 0.13752281665802002; +140.39122009277344, 0.1391395926475525; +140.4912109375, 0.14221668243408203; +140.59120178222656, 0.1466795802116394; +140.6912078857422, 0.15266239643096924; +140.79119873046875, 0.15961378812789917; +140.8911895751953, 0.16577541828155518; +140.99118041992188, 0.17076730728149414; +141.09117126464844, 0.17474591732025146; +141.19117736816406, 0.17786026000976562; +141.29116821289062, 0.18040835857391357; +141.3911590576172, 0.18236041069030762; +141.49114990234375, 0.18376857042312622; +141.5911407470703, 0.18426775932312012; +141.69114685058594, 0.1848563551902771; +141.7911376953125, 0.18755346536636353; +141.89112854003906, 0.1926720142364502; +141.99111938476562, 0.19922107458114624; +142.0911102294922, 0.20544975996017456; +142.19110107421875, 0.21111220121383667; +142.29110717773438, 0.21611899137496948; +142.39109802246094, 0.22061914205551147; +142.4910888671875, 0.22560358047485352; +142.59107971191406, 0.2310425043106079; +142.69107055664062, 0.2367943525314331; +142.79107666015625, 0.2422034740447998; +142.8910675048828, 0.24759024381637573; +142.99105834960938, 0.25218725204467773; +143.09104919433594, 0.2551525831222534; +143.1910400390625, 0.2578124403953552; +143.29104614257812, 0.2624914050102234; +143.3910369873047, 0.26994943618774414; +143.49102783203125, 0.2781003713607788; +143.5910186767578, 0.2851933240890503; +143.69100952148438, 0.29012560844421387; +143.791015625, 0.2934262156486511; +143.89100646972656, 0.29577314853668213; +143.99099731445312, 0.2987012267112732; +144.0909881591797, 0.3026798367500305; +144.19097900390625, 0.3072097897529602; +144.2909698486328, 0.31270086765289307; +144.39097595214844, 0.3177523612976074; +144.490966796875, 0.3215372562408447; +144.59095764160156, 0.3230050206184387; +144.69094848632812, 0.32335519790649414; +144.7909393310547, 0.32469630241394043; +144.8909454345703, 0.3272891044616699; +144.99093627929688, 0.33139437437057495; +145.09092712402344, 0.3369078040122986; +145.19091796875, 0.34322589635849; +145.29090881347656, 0.3490820527076721; +145.3909149169922, 0.353395938873291; +145.49090576171875, 0.3561973571777344; +145.5908966064453, 0.35816431045532227; +145.69088745117188, 0.36019831895828247; +145.79087829589844, 0.36354362964630127; +145.890869140625, 0.36848336458206177; +145.99087524414062, 0.3739967942237854; +146.0908660888672, 0.3794059157371521; +146.19085693359375, 0.38436800241470337; +146.2908477783203, 0.3882944583892822; +146.39083862304688, 0.39073824882507324; +146.4908447265625, 0.39262324571609497; +146.59083557128906, 0.39452314376831055; +146.69082641601562, 0.39573758840560913; +146.7908172607422, 0.3961995244026184; +146.89080810546875, 0.3968179225921631; +146.99081420898438, 0.39759278297424316; +147.09080505371094, 0.3971084952354431; +147.1907958984375, 0.3959387540817261; +147.29078674316406, 0.3965124487876892; +147.39077758789062, 0.3992542624473572; +147.49078369140625, 0.40175020694732666; +147.5907745361328, 0.40340423583984375; +147.69076538085938, 0.4046931862831116; +147.79075622558594, 0.4066005349159241; +147.8907470703125, 0.40881335735321045; +147.99073791503906, 0.4110783338546753; +148.0907440185547, 0.4140585660934448; +148.19073486328125, 0.4175901412963867; +148.2907257080078, 0.4215538501739502; +148.39071655273438, 0.4250258207321167; +148.49070739746094, 0.42735785245895386; +148.59071350097656, 0.42844563722610474; +148.69070434570312, 0.4294365644454956; +148.7906951904297, 0.43067336082458496; +148.89068603515625, 0.4322752356529236; +148.9906768798828, 0.4341229796409607; +149.09068298339844, 0.43626874685287476; +149.190673828125, 0.4391223192214966; +149.29066467285156, 0.4414096474647522; +149.39065551757812, 0.4426911473274231; +149.4906463623047, 0.44269859790802; +149.5906524658203, 0.44213980436325073; +149.69064331054688, 0.44098496437072754; +149.79063415527344, 0.43848901987075806; +149.890625, 0.4353821277618408; +149.99061584472656, 0.4324391484260559; +150.09060668945312, 0.43001025915145874; +150.19061279296875, 0.4274994134902954; +150.2906036376953, 0.4250183701515198; +150.39059448242188, 0.4233047366142273; +150.49058532714844, 0.42244046926498413; +150.590576171875, 0.4219263792037964; +150.69058227539062, 0.4217401146888733; +150.7905731201172, 0.4211738705635071; +150.89056396484375, 0.4202127456665039; +150.9905548095703, 0.41944533586502075; +151.09054565429688, 0.4184991121292114; +151.1905517578125, 0.41710585355758667; +151.29054260253906, 0.4147961735725403; +151.39053344726562, 0.4123672842979431; +151.4905242919922, 0.4102662205696106; +151.59051513671875, 0.4075393080711365; +151.69052124023438, 0.4046410322189331; +151.79051208496094, 0.40206313133239746; +151.8905029296875, 0.40036439895629883; +151.99049377441406, 0.3999769687652588; +152.09048461914062, 0.4003942012786865; +152.1904754638672, 0.4010200500488281; +152.2904815673828, 0.4006996750831604; +152.39047241210938, 0.39886683225631714; +152.49046325683594, 0.3961622714996338; +152.5904541015625, 0.3934800624847412; +152.69044494628906, 0.3908202052116394; +152.7904510498047, 0.38817524909973145; +152.89044189453125, 0.38573890924453735; +152.9904327392578, 0.3845691680908203; +153.09042358398438, 0.3850609064102173; +153.19041442871094, 0.38520246744155884; +153.29042053222656, 0.38436800241470337; +153.39041137695312, 0.38342177867889404; +153.4904022216797, 0.3839731216430664; +153.59039306640625, 0.38642436265945435; +153.6903839111328, 0.3885701298713684; +153.79039001464844, 0.38965046405792236; +153.890380859375, 0.38973987102508545; +153.99037170410156, 0.3891661763191223; +154.09036254882812, 0.38826465606689453; +154.1903533935547, 0.3867819905281067; +154.29034423828125, 0.3859773278236389; +154.39035034179688, 0.38651376962661743; +154.49034118652344, 0.388123095035553; +154.59033203125, 0.3900304436683655; +154.69032287597656, 0.3913268446922302; +154.79031372070312, 0.3912001848220825; +154.89031982421875, 0.38907676935195923; +154.9903106689453, 0.38555264472961426; +155.09030151367188, 0.382348895072937; +155.19029235839844, 0.38058310747146606; +155.290283203125, 0.3793090581893921; +155.39028930664062, 0.3784596920013428; +155.4902801513672, 0.3784671425819397; +155.59027099609375, 0.3801807761192322; +155.6902618408203, 0.3828778862953186; +155.79025268554688, 0.38542598485946655; +155.8902587890625, 0.38886070251464844; +155.99024963378906, 0.3928244113922119; +156.09024047851562, 0.3954470157623291; +156.1902313232422, 0.3956332802772522; +156.29022216796875, 0.3941282629966736; +156.3902130126953, 0.39296597242355347; +156.49021911621094, 0.39164721965789795; +156.5902099609375, 0.3894045948982239; +156.69020080566406, 0.3880038857460022; +156.79019165039062, 0.38889050483703613; +156.8901824951172, 0.3920421004295349; +156.9901885986328, 0.39565563201904297; +157.09017944335938, 0.3982558846473694; +157.19017028808594, 0.40102750062942505; +157.2901611328125, 0.40411949157714844; +157.39015197753906, 0.4067942500114441; +157.4901580810547, 0.40844082832336426; +157.59014892578125, 0.40984898805618286; +157.6901397705078, 0.4123225808143616; +157.79013061523438, 0.41522830724716187; +157.89012145996094, 0.4182979464530945; +157.99012756347656, 0.42203813791275024; +158.09011840820312, 0.4262775182723999; +158.1901092529297, 0.4290640354156494; +158.29010009765625, 0.42992085218429565; +158.3900909423828, 0.42989104986190796; +158.49008178710938, 0.4298761487007141; +158.590087890625, 0.4289597272872925; +158.69007873535156, 0.42641162872314453; +158.79006958007812, 0.42381882667541504; +158.8900604248047, 0.4231780767440796; +158.99005126953125, 0.42515993118286133; +159.09005737304688, 0.42764097452163696; +159.19004821777344, 0.42967498302459717; +159.2900390625, 0.4317238926887512; +159.39002990722656, 0.43451040983200073; +159.49002075195312, 0.4364773631095886; +159.59002685546875, 0.4365071654319763; +159.6900177001953, 0.4367902874946594; +159.79000854492188, 0.43927133083343506; +159.88999938964844, 0.44420361518859863; +159.989990234375, 0.4501044750213623; +160.08999633789062, 0.45609474182128906; +160.1899871826172, 0.46137720346450806; +160.28997802734375, 0.46560168266296387; +160.3899688720703, 0.46832114458084106; +160.48995971679688, 0.46947598457336426; +160.58995056152344, 0.4689246416091919; +160.68995666503906, 0.4681050777435303; +160.78994750976562, 0.46884268522262573; +160.8899383544922, 0.4700198769569397; +160.98992919921875, 0.4707798361778259; +161.0899200439453, 0.47078728675842285; +161.18992614746094, 0.4715919494628906; +161.2899169921875, 0.4731863737106323; +161.38990783691406, 0.4748106002807617; +161.48989868164062, 0.4774853587150574; +161.5898895263672, 0.48092007637023926; +161.6898956298828, 0.4848986864089966; +161.78988647460938, 0.48808008432388306; +161.88987731933594, 0.4901289939880371; +161.9898681640625, 0.49135833978652954; +162.08985900878906, 0.49207359552383423; +162.1898651123047, 0.49354881048202515; +162.28985595703125, 0.49645453691482544; +162.3898468017578, 0.5012005567550659; +162.48983764648438, 0.506967306137085; +162.58982849121094, 0.5123317241668701; +162.6898193359375, 0.5167871713638306; +162.78982543945312, 0.5201920866966248; +162.8898162841797, 0.521831214427948; +162.98980712890625, 0.5212798714637756; +163.0897979736328, 0.5204454064369202; +163.18978881835938, 0.5209743976593018; +163.289794921875, 0.5221813917160034; +163.38978576660156, 0.523492693901062; +163.48977661132812, 0.5258098244667053; +163.5897674560547, 0.5294978618621826; +163.68975830078125, 0.5322322249412537; +163.78976440429688, 0.5326494574546814; +163.88975524902344, 0.5322545766830444; +163.98974609375, 0.5326196551322937; +164.08973693847656, 0.5338266491889954; +164.18972778320312, 0.5358457565307617; +164.2897186279297, 0.538848340511322; +164.3897247314453, 0.5431473255157471; +164.48971557617188, 0.5481541156768799; +164.58970642089844, 0.552743673324585; +164.689697265625, 0.5570352077484131; +164.78968811035156, 0.5604401230812073; +164.8896942138672, 0.5629435181617737; +164.98968505859375, 0.5637854337692261; +165.0896759033203, 0.562720000743866; +165.18966674804688, 0.5612075328826904; +165.28965759277344, 0.5593672394752502; +165.38966369628906, 0.5575716495513916; +165.48965454101562, 0.5558580160140991; +165.5896453857422, 0.5556195974349976; +165.68963623046875, 0.5572214722633362; +165.7896270751953, 0.5587339401245117; +165.88963317871094, 0.5592331290245056; +165.9896240234375, 0.5593299865722656; +166.08961486816406, 0.5604103207588196; +166.18960571289062, 0.5628615617752075; +166.2895965576172, 0.5655959248542786; +166.38958740234375, 0.5685165524482727; +166.48959350585938, 0.5716904997825623; +166.58958435058594, 0.5741417407989502; +166.6895751953125, 0.5751624703407288; +166.78956604003906, 0.5736798048019409; +166.88955688476562, 0.5706474184989929; +166.98956298828125, 0.5668997764587402; +167.0895538330078, 0.5623102188110352; +167.18954467773438, 0.5575269460678101; +167.28953552246094, 0.552937388420105; +167.3895263671875, 0.5501061677932739; +167.48953247070312, 0.5483552813529968; +167.5895233154297, 0.5460977554321289; +167.68951416015625, 0.5426034331321716; +167.7895050048828, 0.5387067794799805; +167.88949584960938, 0.535815954208374; +167.989501953125, 0.5326345562934875; +168.08949279785156, 0.5291849374771118; +168.18948364257812, 0.5261227488517761; +168.2894744873047, 0.5248710513114929; +168.38946533203125, 0.5251765251159668; +168.4894561767578, 0.5251690745353699; +168.58946228027344, 0.5245804786682129; +168.689453125, 0.5229488015174866; +168.78944396972656, 0.5204230546951294; +168.88943481445312, 0.5172044038772583; +168.9894256591797, 0.5144849419593811; +169.0894317626953, 0.5132779479026794; +169.18942260742188, 0.513024628162384; +169.28941345214844, 0.512927770614624; +169.389404296875, 0.5128234624862671; +169.48939514160156, 0.512830913066864; +169.5894012451172, 0.5117803812026978; +169.68939208984375, 0.5100741982460022; +169.7893829345703, 0.5086809396743774; +169.88937377929688, 0.5085095763206482; +169.98936462402344, 0.5091354250907898; +170.08937072753906, 0.5100071430206299; +170.18936157226562, 0.5105659365653992; +170.2893524169922, 0.5091726779937744; +170.38934326171875, 0.5059614777565002; +170.4893341064453, 0.5019232630729675; +170.58932495117188, 0.4981309175491333; +170.6893310546875, 0.4945993423461914; +170.78932189941406, 0.49180537462234497; +170.88931274414062, 0.48989057540893555; +170.9893035888672, 0.4881620407104492; +171.08929443359375, 0.4866570234298706; +171.18930053710938, 0.48592686653137207; +171.28929138183594, 0.4854947328567505; +171.3892822265625, 0.48429518938064575; +171.48927307128906, 0.48341602087020874; +171.58926391601562, 0.48410147428512573; +171.68927001953125, 0.4847124218940735; +171.7892608642578, 0.4832223057746887; +171.88925170898438, 0.4800856113433838; +171.98924255371094, 0.47720223665237427; +172.0892333984375, 0.475272536277771; +172.18923950195312, 0.4735887050628662; +172.2892303466797, 0.4725828766822815; +172.38922119140625, 0.47292560338974; +172.4892120361328, 0.4743337631225586; +172.58920288085938, 0.47632306814193726; +172.68919372558594, 0.4777088761329651; +172.78919982910156, 0.47791749238967896; +172.88919067382812, 0.477425754070282; +172.9891815185547, 0.476934015750885; +173.08917236328125, 0.47723203897476196; +173.1891632080078, 0.4773661494255066; +173.28916931152344, 0.4760921001434326; +173.38916015625, 0.4738271236419678; +173.48915100097656, 0.471651554107666; +173.58914184570312, 0.46994537115097046; +173.6891326904297, 0.4682019352912903; +173.7891387939453, 0.46654045581817627; +173.88912963867188, 0.466078519821167; +173.98912048339844, 0.4668906331062317; +174.089111328125, 0.4679933190345764; +174.18910217285156, 0.4690885543823242; +174.2891082763672, 0.46959519386291504; +174.38909912109375, 0.46959519386291504; +174.4890899658203, 0.4694312810897827; +174.58908081054688, 0.4698634147644043; +174.68907165527344, 0.4712045192718506; +174.7890625, 0.4725232720375061; +174.88906860351562, 0.47403573989868164; +174.9890594482422, 0.4752650856971741; +175.08905029296875, 0.4755929112434387; +175.1890411376953, 0.47487765550613403; +175.28903198242188, 0.47385692596435547; +175.3890380859375, 0.47303736209869385; +175.48902893066406, 0.47153234481811523; +175.58901977539062, 0.46959519386291504; +175.6890106201172, 0.4687309265136719; +175.78900146484375, 0.4694908857345581; +175.88900756835938, 0.4704967141151428; +175.98899841308594, 0.47103315591812134; +176.0889892578125, 0.47166645526885986; +176.18898010253906, 0.47307461500167847; +176.28897094726562, 0.4746541380882263; +176.38897705078125, 0.475175678730011; +176.4889678955078, 0.47434866428375244; +176.58895874023438, 0.47285109758377075; +176.68894958496094, 0.4719942808151245; +176.7889404296875, 0.4721134901046753; +176.88893127441406, 0.4727765917778015; +176.9889373779297, 0.4739686846733093; +177.08892822265625, 0.47612935304641724; +177.1889190673828, 0.47972798347473145; +177.28890991210938, 0.48417598009109497; +177.38890075683594, 0.48833340406417847; +177.48890686035156, 0.49060583114624023; +177.58889770507812, 0.49060583114624023; +177.6888885498047, 0.4895254969596863; +177.78887939453125, 0.4882216453552246; +177.8888702392578, 0.4871264100074768; +177.98887634277344, 0.4859715700149536; +178.0888671875, 0.4863440990447998; +178.18885803222656, 0.48904865980148315; +178.28884887695312, 0.4931986331939697; +178.3888397216797, 0.4971921443939209; +178.4888458251953, 0.4992559552192688; +178.58883666992188, 0.49930810928344727; +178.68882751464844, 0.49789249897003174; +178.788818359375, 0.4959776997566223; +178.88880920410156, 0.4946961998939514; +178.98880004882812, 0.49342960119247437; +179.08880615234375, 0.4921257495880127; +179.1887969970703, 0.4921033978462219; +179.28878784179688, 0.4936233162879944; +179.38877868652344, 0.49588829278945923; +179.48876953125, 0.4973262548446655; +179.58877563476562, 0.4985406994819641; +179.6887664794922, 0.5006343126296997; +179.78875732421875, 0.5028992891311646; +179.8887481689453, 0.5042031407356262; +179.98873901367188, 0.5044117569923401; +180.0887451171875, 0.504620373249054; +180.18873596191406, 0.5065798759460449; +180.28872680664062, 0.51078200340271; +180.3887176513672, 0.5158707499504089; +180.48870849609375, 0.5213543772697449; +180.5886993408203, 0.5278438329696655; +180.68870544433594, 0.5356147885322571; +180.7886962890625, 0.5413368344306946; +180.88868713378906, 0.5436241626739502; +180.98867797851562, 0.5443692207336426; +181.0886688232422, 0.5448311567306519; +181.1886749267578, 0.5445778369903564; +181.28866577148438, 0.5430802702903748; +181.38865661621094, 0.5430132150650024; +181.4886474609375, 0.5447715520858765; +181.58863830566406, 0.5466863512992859; +181.6886444091797, 0.5481094121932983; +181.78863525390625, 0.54921954870224; +181.8886260986328, 0.5495175719261169; +181.98861694335938, 0.5482137203216553; +182.08860778808594, 0.5463883280754089; +182.18861389160156, 0.5457103252410889; +182.28860473632812, 0.5468428134918213; +182.3885955810547, 0.5492568016052246; +182.48858642578125, 0.5524083971977234; +182.5885772705078, 0.5558580160140991; +182.68856811523438, 0.5589723587036133; +182.78857421875, 0.5616843700408936; +182.88856506347656, 0.5637332797050476; +182.98855590820312, 0.5652010440826416; +183.0885467529297, 0.5671977996826172; +183.18853759765625, 0.5710422992706299; +183.28854370117188, 0.5771070718765259; +183.38853454589844, 0.5838796496391296; +183.488525390625, 0.5895569920539856; +183.58851623535156, 0.593818724155426; +183.68850708007812, 0.5975291132926941; +183.78851318359375, 0.6000027060508728; +183.8885040283203, 0.6005764007568359; +183.98849487304688, 0.6002187728881836; +184.08848571777344, 0.600375235080719; +184.1884765625, 0.6015971302986145; +184.28848266601562, 0.6029754877090454; +184.3884735107422, 0.6048157811164856; +184.48846435546875, 0.6068870425224304; +184.5884552001953, 0.6089285016059875; +184.68844604492188, 0.6109103560447693; +184.78843688964844, 0.6133094429969788; +184.88844299316406, 0.6161034107208252; +184.98843383789062, 0.6187409162521362; +185.0884246826172, 0.6211772561073303; +185.18841552734375, 0.6233826279640198; +185.2884063720703, 0.6254017353057861; +185.38841247558594, 0.6266981363296509; +185.4884033203125, 0.6273612380027771; +185.58839416503906, 0.6275400519371033; +185.68838500976562, 0.6278082728385925; +185.7883758544922, 0.6283968687057495; +185.8883819580078, 0.6296634674072266; +185.98837280273438, 0.6319507956504822; +186.08836364746094, 0.6349608302116394; +186.1883544921875, 0.638812780380249; +186.28834533691406, 0.6433874368667603; +186.3883514404297, 0.6476491689682007; +186.48834228515625, 0.6503090262413025; +186.5883331298828, 0.6501823663711548; +186.68832397460938, 0.6480589509010315; +186.78831481933594, 0.6446093320846558; +186.8883056640625, 0.6402656435966492; +186.98831176757812, 0.6368160247802734; +187.0883026123047, 0.634506344795227; +187.18829345703125, 0.6340593099594116; +187.2882843017578, 0.634215772151947; +187.38827514648438, 0.6343722343444824; +187.48828125, 0.6344616413116455; +187.58827209472656, 0.6339028477668762; +187.68826293945312, 0.6337016820907593; +187.7882537841797, 0.6340444087982178; +187.88824462890625, 0.635191798210144; +187.98825073242188, 0.6360858678817749; +188.08824157714844, 0.6361976265907288; +188.188232421875, 0.6351321935653687; +188.28822326660156, 0.632256269454956; +188.38821411132812, 0.6272941827774048; +188.48822021484375, 0.6210654973983765; +188.5882110595703, 0.6158649921417236; +188.68820190429688, 0.6128326058387756; +188.78819274902344, 0.612214207649231; +188.88818359375, 0.6139278411865234; +188.98817443847656, 0.6170272827148438; +189.0881805419922, 0.6205067038536072; +189.18817138671875, 0.6231442093849182; +189.2881622314453, 0.6241053342819214; +189.38815307617188, 0.6232932209968567; +189.48814392089844, 0.6206631660461426; +189.58815002441406, 0.6168410181999207; +189.68814086914062, 0.6116703152656555; +189.7881317138672, 0.6054267287254333; +189.88812255859375, 0.5996972322463989; +189.9881134033203, 0.5956441164016724; +190.08811950683594, 0.5934685468673706; +190.1881103515625, 0.5926415324211121; +190.28810119628906, 0.5936771631240845; +190.38809204101562, 0.5960837006568909; +190.4880828857422, 0.5977600812911987; +190.5880889892578, 0.5972981452941895; +190.68807983398438, 0.5947425961494446; +190.78807067871094, 0.592157244682312; +190.8880615234375, 0.5903393030166626; +190.98805236816406, 0.5889087915420532; +191.08804321289062, 0.5862191319465637; +191.18804931640625, 0.5821883678436279; +191.2880401611328, 0.5778297781944275; +191.38803100585938, 0.5733296275138855; +191.48802185058594, 0.5685314536094666; +191.5880126953125, 0.5637481808662415; +191.68801879882812, 0.5608871579170227; +191.7880096435547, 0.5604103207588196; +191.88800048828125, 0.5616173148155212; +191.9879913330078, 0.5631595849990845; +192.08798217773438, 0.5637332797050476; +192.18798828125, 0.5620419979095459; +192.28797912597656, 0.5589649081230164; +192.38796997070312, 0.555969774723053; +192.4879608154297, 0.5533099174499512; +192.58795166015625, 0.5514770746231079; +192.68795776367188, 0.5504265427589417; +192.78794860839844, 0.5513131618499756; +192.887939453125, 0.5522668361663818; +192.98793029785156, 0.5521029233932495; +193.08792114257812, 0.5516260862350464; +193.1879119873047, 0.5509331822395325; +193.2879180908203, 0.5496963858604431; +193.38790893554688, 0.5472004413604736; +193.48789978027344, 0.5449354648590088; +193.587890625, 0.5441531538963318; +193.68788146972656, 0.5443766713142395; +193.7878875732422, 0.5435049533843994; +193.88787841796875, 0.54217129945755; +193.9878692626953, 0.5424916744232178; +194.08786010742188, 0.5451217293739319; +194.18785095214844, 0.5471855401992798; +194.28785705566406, 0.5462989211082458; +194.38784790039062, 0.5437061190605164; +194.4878387451172, 0.5418658256530762; +194.58782958984375, 0.5404427647590637; +194.6878204345703, 0.5377978086471558; +194.78782653808594, 0.5348548293113708; +194.8878173828125, 0.5333125591278076; +194.98780822753906, 0.53386390209198; +195.08779907226562, 0.5346238613128662; +195.1877899169922, 0.5349889397621155; +195.28778076171875, 0.5360767245292664; +195.38778686523438, 0.5379095673561096; +195.48777770996094, 0.5396008491516113; +195.5877685546875, 0.5397573113441467; +195.68775939941406, 0.5385950207710266; +195.78775024414062, 0.536307692527771; +195.88775634765625, 0.5328133702278137; +195.9877471923828, 0.5283355712890625; +196.08773803710938, 0.523589551448822; +196.18772888183594, 0.5200356245040894; +196.2877197265625, 0.517621636390686; +196.38772583007812, 0.5157813429832458; +196.4877166748047, 0.5141496658325195; +196.58770751953125, 0.5136355757713318; +196.6876983642578, 0.5150362849235535; +196.78768920898438, 0.5179643630981445; +196.8876953125, 0.521436333656311; +196.98768615722656, 0.5250051617622375; +197.08767700195312, 0.5279704928398132; +197.1876678466797, 0.5298852920532227; +197.28765869140625, 0.5294159054756165; +197.3876495361328, 0.5264356732368469; +197.48765563964844, 0.5225613713264465; +197.587646484375, 0.5200505256652832; +197.68763732910156, 0.519774854183197; +197.78762817382812, 0.5202069878578186; +197.8876190185547, 0.5218163132667542; +197.9876251220703, 0.5248412489891052; +198.08761596679688, 0.5284324288368225; +198.18760681152344, 0.5302652716636658; +198.28759765625, 0.5305111408233643; +198.38758850097656, 0.5310401320457458; +198.4875946044922, 0.5321130156517029; +198.58758544921875, 0.5325973033905029; +198.6875762939453, 0.5323663353919983; +198.78756713867188, 0.5321726202964783; +198.88755798339844, 0.5323588848114014; +198.987548828125, 0.5325451493263245; +199.08755493164062, 0.5318596959114075; +199.1875457763672, 0.5302876234054565; +199.28753662109375, 0.5280822515487671; +199.3875274658203, 0.526726245880127; +199.48751831054688, 0.5259960889816284; +199.5875244140625, 0.5248785018920898; +199.68751525878906, 0.5229339003562927; +199.78750610351562, 0.521346926689148; +199.8874969482422, 0.5208253860473633; +199.98748779296875, 0.5199462175369263; +200.08749389648438, 0.5179271101951599; +200.18748474121094, 0.5158185958862305; +200.2874755859375, 0.5159452557563782; +200.38746643066406, 0.5184859037399292; +200.48745727539062, 0.5212947726249695; +200.58746337890625, 0.5226954817771912; +200.6874542236328, 0.5227476358413696; +200.78744506835938, 0.5226731300354004; +200.88743591308594, 0.5225241184234619; +200.9874267578125, 0.5216971039772034; +201.08741760253906, 0.5211606621742249; +201.1874237060547, 0.5220696330070496; +201.28741455078125, 0.5241706967353821; +201.3874053955078, 0.526033341884613; +201.48739624023438, 0.5272254347801208; +201.58738708496094, 0.5279630422592163; +201.68739318847656, 0.5284622311592102; +201.78738403320312, 0.528283417224884; +201.8873748779297, 0.5277097225189209; +201.98736572265625, 0.5273222923278809; +202.0873565673828, 0.5275905132293701; +202.18736267089844, 0.5284324288368225; +202.287353515625, 0.5290508270263672; +202.38734436035156, 0.529855489730835; +202.48733520507812, 0.5314275622367859; +202.5873260498047, 0.5338266491889954; +202.6873321533203, 0.5364269018173218; +202.78732299804688, 0.5389377474784851; +202.88731384277344, 0.5411580204963684; +202.9873046875, 0.5425885319709778; +203.08729553222656, 0.5436614155769348; +203.18728637695312, 0.5449280142784119; +203.28729248046875, 0.5452856421470642; +203.3872833251953, 0.5442053079605103; +203.48727416992188, 0.54188072681427; +203.58726501464844, 0.5402565002441406; +203.687255859375, 0.5394443869590759; +203.78726196289062, 0.537775456905365; +203.8872528076172, 0.5359351634979248; +203.98724365234375, 0.5343183875083923; +204.0872344970703, 0.534452497959137; +204.18722534179688, 0.5347579717636108; +204.2872314453125, 0.5345419049263; +204.38722229003906, 0.5345270037651062; +204.48721313476562, 0.5342811346054077; +204.5872039794922, 0.5346387624740601; +204.68719482421875, 0.5356669425964355; +204.78720092773438, 0.5383193492889404; +204.88719177246094, 0.5423277616500854; +204.9871826171875, 0.5461499094963074; +205.08717346191406, 0.5489140748977661; +205.18716430664062, 0.5503371357917786; +205.2871551513672, 0.5516931414604187; +205.3871612548828, 0.5535334348678589; +205.48715209960938, 0.554598867893219; +205.58714294433594, 0.5541443824768066; +205.6871337890625, 0.5536749958992004; +205.78712463378906, 0.5540475249290466; +205.8871307373047, 0.5550980567932129; +205.98712158203125, 0.5562677979469299; +206.0871124267578, 0.5581751465797424; +206.18710327148438, 0.5618184804916382; +206.28709411621094, 0.5661100149154663; +206.38710021972656, 0.5698874592781067; +206.48709106445312, 0.571712851524353; +206.5870819091797, 0.5714297294616699; +206.68707275390625, 0.5713775753974915; +206.7870635986328, 0.5732476711273193; +206.88706970214844, 0.5773827433586121; +206.987060546875, 0.5816444754600525; +207.08705139160156, 0.5841627717018127; +207.18704223632812, 0.5852952599525452; +207.2870330810547, 0.584721565246582; +207.38702392578125, 0.5830228328704834; +207.48703002929688, 0.5804970860481262; +207.58702087402344, 0.5785226821899414; +207.68701171875, 0.5784332752227783; +207.78700256347656, 0.5810260772705078; +207.88699340820312, 0.5859285593032837; +207.98699951171875, 0.5913004279136658; +208.0869903564453, 0.5957260727882385; +208.18698120117188, 0.6002858281135559; +208.28697204589844, 0.6055012345314026; +208.386962890625, 0.6092414259910583; +208.48696899414062, 0.6099268794059753; +208.5869598388672, 0.6081759929656982; +208.68695068359375, 0.6068125367164612; +208.7869415283203, 0.6059035658836365; +208.88693237304688, 0.605069100856781; +208.9869384765625, 0.6052181124687195; +209.08692932128906, 0.6070807576179504; +209.18692016601562, 0.6110444664955139; +209.2869110107422, 0.6153136491775513; +209.38690185546875, 0.6188973784446716; +209.4868927001953, 0.6213262677192688; +209.58689880371094, 0.6224066019058228; +209.6868896484375, 0.6233230233192444; +209.78688049316406, 0.6244853138923645; +209.88687133789062, 0.626295804977417; +209.9868621826172, 0.6278380751609802; +210.0868682861328, 0.6284713745117188; +210.18685913085938, 0.629030168056488; +210.28684997558594, 0.6299689412117004; +210.3868408203125, 0.6308630108833313; +210.48683166503906, 0.631287693977356; +210.5868377685547, 0.632748007774353; +210.68682861328125, 0.6356313824653625; +210.7868194580078, 0.6386563181877136; +210.88681030273438, 0.6401166319847107; +210.98680114746094, 0.6407424807548523; +211.08680725097656, 0.6410852074623108; +211.18679809570312, 0.640183687210083; +211.2867889404297, 0.6396770477294922; +211.38677978515625, 0.6411373615264893; +211.4867706298828, 0.6437376141548157; +211.58676147460938, 0.6452798843383789; +211.686767578125, 0.6459206342697144; +211.78675842285156, 0.6479248404502869; +211.88674926757812, 0.649869441986084; +211.9867401123047, 0.6495416164398193; +212.08673095703125, 0.6484165787696838; +212.18673706054688, 0.64820796251297; +212.28672790527344, 0.6483569741249084; +212.38671875, 0.6469562649726868; +212.48670959472656, 0.6448030471801758; +212.58670043945312, 0.644288957118988; +212.68670654296875, 0.6451085209846497; +212.7866973876953, 0.6465986371040344; +212.88668823242188, 0.6491094827651978; +212.98667907714844, 0.6527379155158997; +213.086669921875, 0.6560906767845154; +213.18667602539062, 0.6578266620635986; +213.2866668701172, 0.6587877869606018; +213.38665771484375, 0.6604492664337158; +213.4866485595703, 0.6621628999710083; +213.58663940429688, 0.6627887487411499; +213.68663024902344, 0.6635040044784546; +213.78663635253906, 0.6651058793067932; +213.88662719726562, 0.6674528121948242; +213.9866180419922, 0.6688982248306274; +214.08660888671875, 0.6696507334709167; +214.1865997314453, 0.6713047623634338; +214.28660583496094, 0.6735622882843018; +214.3865966796875, 0.6757974624633789; +214.48658752441406, 0.6767958402633667; +214.58657836914062, 0.6764158606529236; +214.6865692138672, 0.6747990846633911; +214.7865753173828, 0.6727203726768494; +214.88656616210938, 0.6717890501022339; +214.98655700683594, 0.6721317768096924; +215.0865478515625, 0.6729140877723694; +215.18653869628906, 0.6733983755111694; +215.28652954101562, 0.6752461194992065; +215.38653564453125, 0.6786435842514038; +215.4865264892578, 0.6815046072006226; +215.58651733398438, 0.6817057728767395; +215.68650817871094, 0.6795674562454224; +215.7864990234375, 0.6767287850379944; +215.88650512695312, 0.6728172302246094; +215.9864959716797, 0.6671547889709473; +216.08648681640625, 0.659942626953125; +216.1864776611328, 0.6531998515129089; +216.28646850585938, 0.650264322757721; +216.386474609375, 0.651329755783081; +216.48646545410156, 0.654563307762146; +216.58645629882812, 0.6572306156158447; +216.6864471435547, 0.6582587957382202; +216.78643798828125, 0.6584674119949341; +216.88644409179688, 0.6561279296875; +216.98643493652344, 0.6521791219711304; +217.08642578125, 0.6473585963249207; +217.18641662597656, 0.6438270211219788; +217.28640747070312, 0.6429031491279602; +217.3863983154297, 0.6433650851249695; +217.4864044189453, 0.6448924541473389; +217.58639526367188, 0.646345317363739; +217.68638610839844, 0.647619366645813; +217.786376953125, 0.6480365991592407; +217.88636779785156, 0.6479546427726746; +217.9863739013672, 0.6478726863861084; +218.08636474609375, 0.6471127271652222; +218.1863555908203, 0.6454885005950928; +218.28634643554688, 0.6441101431846619; +218.38633728027344, 0.6443262100219727; +218.48634338378906, 0.6455183029174805; +218.58633422851562, 0.6462410092353821; +218.6863250732422, 0.6461814045906067; +218.78631591796875, 0.6451085209846497; +218.8863067626953, 0.6430819630622864; +218.98631286621094, 0.640183687210083; +219.0863037109375, 0.6363466382026672; +219.18629455566406, 0.6322488188743591; +219.28628540039062, 0.6290450692176819; +219.3862762451172, 0.6273835897445679; +219.48626708984375, 0.6257444620132446; +219.58627319335938, 0.6226897239685059; +219.68626403808594, 0.6188452243804932; +219.7862548828125, 0.6159543991088867; +219.88624572753906, 0.6143301725387573; +219.98623657226562, 0.6126463413238525; +220.08624267578125, 0.6106346845626831; +220.1862335205078, 0.6089955568313599; +220.28622436523438, 0.6083399057388306; +220.38621520996094, 0.6079673767089844; +220.4862060546875, 0.6074011325836182; +220.58621215820312, 0.607028603553772; +220.6862030029297, 0.6071403622627258; +220.78619384765625, 0.6079375743865967; +220.8861846923828, 0.608488917350769; +220.98617553710938, 0.6081610918045044; +221.086181640625, 0.6064847111701965; +221.18617248535156, 0.6039664149284363; +221.28616333007812, 0.6022825837135315; +221.3861541748047, 0.6025061011314392; +221.48614501953125, 0.6044059991836548; +221.5861358642578, 0.6062164902687073; +221.68614196777344, 0.6063058972358704; +221.7861328125, 0.6046518683433533; +221.88612365722656, 0.6019920110702515; +221.98611450195312, 0.5977973341941833; +222.0861053466797, 0.5919411778450012; +222.1861114501953, 0.5866512656211853; +222.28610229492188, 0.5842819809913635; +222.38609313964844, 0.5848705768585205; +222.486083984375, 0.5863457918167114; +222.58607482910156, 0.5871206521987915; +222.6860809326172, 0.5878731608390808; +222.78607177734375, 0.5879849195480347; +222.8860626220703, 0.5876645445823669; +222.98605346679688, 0.5867853760719299; +223.08604431152344, 0.5855560302734375; +223.18605041503906, 0.5847513675689697; +223.28604125976562, 0.5837082862854004; +223.3860321044922, 0.5824640393257141; +223.48602294921875, 0.5804672837257385; +223.5860137939453, 0.5778074264526367; +223.68600463867188, 0.5742684006690979; +223.7860107421875, 0.5702972412109375; +223.88600158691406, 0.5673766136169434; +223.98599243164062, 0.5659684538841248; +224.0859832763672, 0.565454363822937; +224.18597412109375, 0.5650371313095093; +224.28598022460938, 0.5653351545333862; +224.38597106933594, 0.5660131573677063; +224.4859619140625, 0.5656629800796509; +224.58595275878906, 0.5641505122184753; +224.68594360351562, 0.5620792508125305; +224.78594970703125, 0.5598217248916626; +224.8859405517578, 0.5570128560066223; +224.98593139648438, 0.554203987121582; +225.08592224121094, 0.5513876676559448; +225.1859130859375, 0.548236072063446; +225.28591918945312, 0.5448833107948303; +225.3859100341797, 0.5427524447441101; +225.48590087890625, 0.5415603518486023; +225.5858917236328, 0.5402490496635437; +225.68588256835938, 0.5392283201217651; +225.78587341308594, 0.5391240119934082; +225.88587951660156, 0.5397722125053406; +225.98587036132812, 0.5402788519859314; +226.0858612060547, 0.5414411425590515; +226.18585205078125, 0.5436241626739502; +226.2858428955078, 0.545993447303772; +226.38584899902344, 0.5474761128425598; +226.48583984375, 0.5474686622619629; +226.58583068847656, 0.5463287234306335; +226.68582153320312, 0.543646514415741; +226.7858123779297, 0.5398988723754883; +226.8858184814453, 0.5364567041397095; +226.98580932617188, 0.5344897508621216; +227.08580017089844, 0.5344748497009277; +227.185791015625, 0.5345717072486877; +227.28578186035156, 0.5341619253158569; +227.3857879638672, 0.5332157015800476; +227.48577880859375, 0.5320906639099121; +227.5857696533203, 0.5305185914039612; +227.68576049804688, 0.5284994840621948; +227.78575134277344, 0.5268752574920654; +227.8857421875, 0.5254298448562622; +227.98574829101562, 0.5239546298980713; +228.0857391357422, 0.5224645137786865; +228.18572998046875, 0.5214810371398926; +228.2857208251953, 0.5208253860473633; +228.38571166992188, 0.5203709006309509; +228.4857177734375, 0.5210712552070618; +228.58570861816406, 0.5226209759712219; +228.68569946289062, 0.5235522985458374; +228.7856903076172, 0.5231797695159912; +228.88568115234375, 0.5217045545578003; +228.98568725585938, 0.5202442407608032; +229.08567810058594, 0.5184635519981384; +229.1856689453125, 0.5162283778190613; +229.28565979003906, 0.5141422152519226; +229.38565063476562, 0.5121231079101562; +229.48565673828125, 0.5106925964355469; +229.5856475830078, 0.5104318261146545; +229.68563842773438, 0.5119815468788147; +229.78562927246094, 0.5159303545951843; +229.8856201171875, 0.5207359790802002; +229.98561096191406, 0.5253031849861145; +230.0856170654297, 0.5288273096084595; +230.18560791015625, 0.530637800693512; +230.2855987548828, 0.5306974053382874; +230.38558959960938, 0.528194010257721; +230.48558044433594, 0.5237683653831482; +230.58558654785156, 0.5186274647712708; +230.68557739257812, 0.5144253373146057; +230.7855682373047, 0.5126222968101501; +230.88555908203125, 0.5124285817146301; +230.9855499267578, 0.5130171775817871; +231.08555603027344, 0.5136653780937195; +231.185546875, 0.5146041512489319; +231.28553771972656, 0.5160048604011536; +231.38552856445312, 0.5159974098205566; +231.4855194091797, 0.5146190524101257; +231.58551025390625, 0.5129203200340271; +231.68551635742188, 0.5129128694534302; +231.78550720214844, 0.5145594477653503; +231.885498046875, 0.5155205726623535; +231.98548889160156, 0.5151852965354919; +232.08547973632812, 0.5133748054504395; +232.18548583984375, 0.5112737417221069; +232.2854766845703, 0.509016215801239; +232.38546752929688, 0.5064681172370911; +232.48545837402344, 0.5049630999565125; +232.58544921875, 0.504128634929657; +232.68545532226562, 0.5036443471908569; +232.7854461669922, 0.502564013004303; +232.88543701171875, 0.5015209317207336; +232.9854278564453, 0.5014762282371521; +233.08541870117188, 0.5010068416595459; +233.1854248046875, 0.5001872777938843; +233.28541564941406, 0.5005225539207458; +233.38540649414062, 0.5037635564804077; +233.4853973388672, 0.5088523030281067; +233.58538818359375, 0.5132108926773071; +233.6853790283203, 0.5159452557563782; +233.78538513183594, 0.5179941654205322; +233.8853759765625, 0.5187541246414185; +233.98536682128906, 0.5168989300727844; +234.08535766601562, 0.5130842328071594; +234.1853485107422, 0.5092322826385498; +234.2853546142578, 0.506766140460968; +234.38534545898438, 0.5056783556938171; +234.48533630371094, 0.505305826663971; +234.5853271484375, 0.5049258470535278; +234.68531799316406, 0.5035027861595154; +234.7853240966797, 0.501580536365509; +234.88531494140625, 0.5006119608879089; +234.9853057861328, 0.5005672574043274; +235.08529663085938, 0.5013346672058105; +235.18528747558594, 0.5028322339057922; +235.28529357910156, 0.5049481987953186; +235.38528442382812, 0.5065128207206726; +235.4852752685547, 0.5065128207206726; +235.58526611328125, 0.5053281784057617; +235.6852569580078, 0.5038231611251831; +235.78524780273438, 0.5026087164878845; +235.88525390625, 0.5016401410102844; +235.98524475097656, 0.5007237195968628; +236.08523559570312, 0.5004778504371643; +236.1852264404297, 0.5006343126296997; +236.28521728515625, 0.5000531673431396; +236.38522338867188, 0.49811601638793945; +236.48521423339844, 0.49564987421035767; +236.585205078125, 0.494249165058136; +236.68519592285156, 0.4931911826133728; +236.78518676757812, 0.49149245023727417; +236.88519287109375, 0.4899725317955017; +236.9851837158203, 0.4891529679298401; +237.08517456054688, 0.4893392324447632; +237.18516540527344, 0.4893466830253601; +237.28515625, 0.48964470624923706; +237.38516235351562, 0.49164146184921265; +237.4851531982422, 0.49474090337753296; +237.58514404296875, 0.4987642168998718; +237.6851348876953, 0.5022063851356506; +237.78512573242188, 0.5043074488639832; +237.88511657714844, 0.5045533180236816; +237.98512268066406, 0.5032345652580261; +238.08511352539062, 0.5021542310714722; +238.1851043701172, 0.5012303590774536; +238.28509521484375, 0.4999488592147827; +238.3850860595703, 0.498160719871521; +238.48509216308594, 0.49636512994766235; +238.5850830078125, 0.49339234828948975; +238.68507385253906, 0.48930197954177856; +238.78506469726562, 0.4855841398239136; +238.8850555419922, 0.4830211400985718; +238.9850616455078, 0.4814043641090393; +239.08505249023438, 0.479966402053833; +239.18504333496094, 0.48063695430755615; +239.2850341796875, 0.48307329416275024; +239.38502502441406, 0.48564374446868896; +239.4850311279297, 0.48818439245224; +239.58502197265625, 0.4909932613372803; +239.6850128173828, 0.49505382776260376; +239.78500366210938, 0.49939751625061035; +239.88499450683594, 0.5026236176490784; +239.9849853515625, 0.5046725273132324; +240.08499145507812, 0.5065351724624634; +240.1849822998047, 0.5088374018669128; +240.28497314453125, 0.5105063319206238; +240.3849639892578, 0.5103647708892822; +240.48495483398438, 0.5092322826385498; +240.5849609375, 0.5075335502624512; +240.68495178222656, 0.5044564604759216; +240.78494262695312, 0.5002766847610474; +240.8849334716797, 0.49636512994766235; +240.98492431640625, 0.49336254596710205; +241.08493041992188, 0.49013644456863403; +241.18492126464844, 0.4865601658821106; +241.284912109375, 0.4848390817642212; +241.38490295410156, 0.48595666885375977; +241.48489379882812, 0.48804283142089844; +241.58489990234375, 0.48948079347610474; +241.6848907470703, 0.49164891242980957; +241.78488159179688, 0.49529969692230225; +241.88487243652344, 0.4976987838745117; +241.98486328125, 0.4962235689163208; +242.08485412597656, 0.4923194646835327; +242.1848602294922, 0.4891827702522278; +242.28485107421875, 0.4872456192970276; +242.3848419189453, 0.4854947328567505; +242.48483276367188, 0.4840642213821411; +242.58482360839844, 0.48426538705825806; +242.68482971191406, 0.48561394214630127; +242.78482055664062, 0.48691779375076294; +242.8848114013672, 0.487692654132843; +242.98480224609375, 0.4883185029029846; +243.0847930908203, 0.4892423748970032; +243.18479919433594, 0.4898756742477417; +243.2847900390625, 0.4903525114059448; +243.38478088378906, 0.49029290676116943; +243.48477172851562, 0.4892870783805847; +243.5847625732422, 0.48738718032836914; +243.6847686767578, 0.48520416021347046; +243.78475952148438, 0.4839301109313965; +243.88475036621094, 0.48416852951049805; +243.9847412109375, 0.48580020666122437; +244.08473205566406, 0.48835575580596924; +244.18472290039062, 0.49064308404922485; +244.28472900390625, 0.49105286598205566; +244.3847198486328, 0.4891529679298401; +244.48471069335938, 0.4855841398239136; +244.58470153808594, 0.48198550939559937; +244.6846923828125, 0.4789605736732483; +244.78469848632812, 0.4766210913658142; +244.8846893310547, 0.4764273762702942; +244.98468017578125, 0.4782751202583313; +245.0846710205078, 0.4803761839866638; +245.18466186523438, 0.48070400953292847; +245.28466796875, 0.4799589514732361; +245.38465881347656, 0.4802718758583069; +245.48464965820312, 0.4815980792045593; +245.5846405029297, 0.4827529191970825; +245.68463134765625, 0.48322975635528564; +245.78463745117188, 0.48342347145080566; +245.88462829589844, 0.4829689860343933; +245.984619140625, 0.48167258501052856; +246.08460998535156, 0.4794374108314514; +246.18460083007812, 0.477425754070282; +246.2845916748047, 0.47595053911209106; +246.3845977783203, 0.475369393825531; +246.48458862304688, 0.4765242338180542; +246.58457946777344, 0.4789009690284729; +246.6845703125, 0.4811137914657593; +246.78456115722656, 0.48182904720306396; +246.8845672607422, 0.4822239279747009; +246.98455810546875, 0.4839673638343811; +247.0845489501953, 0.48608332872390747; +247.18453979492188, 0.4869922995567322; +247.28453063964844, 0.48639625310897827; +247.38453674316406, 0.48504769802093506; +247.48452758789062, 0.4838705062866211; +247.5845184326172, 0.4821568727493286; +247.68450927734375, 0.4795342683792114; +247.7845001220703, 0.47638267278671265; +247.88450622558594, 0.47448277473449707; +247.9844970703125, 0.47538429498672485; +248.08448791503906, 0.4778653383255005; +248.18447875976562, 0.4802793264389038; +248.2844696044922, 0.4814714193344116; +248.38446044921875, 0.48210471868515015; +248.48446655273438, 0.4824027419090271; +248.58445739746094, 0.4818663001060486; +248.6844482421875, 0.48041343688964844; +248.78443908691406, 0.47801434993743896; +248.88442993164062, 0.4765912890434265; +248.98443603515625, 0.47704577445983887; +249.0844268798828, 0.47913193702697754; +249.18441772460938, 0.48188120126724243; +249.28440856933594, 0.48464536666870117; +249.3843994140625, 0.4877224564552307; +249.48440551757812, 0.48979371786117554; +249.5843963623047, 0.48948079347610474; +249.68438720703125, 0.4871785640716553; +249.7843780517578, 0.48410147428512573; +249.88436889648438, 0.4809275269508362; +249.98435974121094, 0.4768446087837219; +250.08436584472656, 0.47200918197631836; +250.18435668945312, 0.4685893654823303; +250.2843475341797, 0.4671439528465271; +250.38433837890625, 0.4671737551689148; +250.4843292236328, 0.46822428703308105; +250.58433532714844, 0.47037750482559204; +250.684326171875, 0.47322362661361694; +250.78431701660156, 0.4748627543449402; +250.88430786132812, 0.4750937223434448; +250.9842987060547, 0.4746764898300171; +251.0843048095703, 0.47409534454345703; +251.18429565429688, 0.4734992980957031; +251.28428649902344, 0.4728361964225769; +251.38427734375, 0.47235190868377686; +251.48426818847656, 0.4721209406852722; +251.5842742919922, 0.4724562168121338; +251.68426513671875, 0.47354400157928467; +251.7842559814453, 0.47500431537628174; +251.88424682617188, 0.4776120185852051; +251.98423767089844, 0.4818961024284363; +252.084228515625, 0.4870370030403137; +252.18423461914062, 0.491119921207428; +252.2842254638672, 0.49267709255218506; +252.38421630859375, 0.4929378628730774; +252.4842071533203, 0.4924088716506958; +252.58419799804688, 0.49170106649398804; +252.6842041015625, 0.4910603165626526; +252.78419494628906, 0.4900917410850525; +252.88418579101562, 0.48951804637908936; +252.9841766357422, 0.4893392324447632; +253.08416748046875, 0.4903748631477356; +253.18417358398438, 0.49123913049697876; +253.28416442871094, 0.4911497235298157; +253.3841552734375, 0.4910975694656372; +253.48414611816406, 0.4915297031402588; +253.58413696289062, 0.49230456352233887; +253.68414306640625, 0.4919767379760742; +253.7841339111328, 0.49126148223876953; +253.88412475585938, 0.49145519733428955; +253.98411560058594, 0.4916638135910034; +254.0841064453125, 0.4911571741104126; +254.18409729003906, 0.4901885986328125; +254.2841033935547, 0.4897192120552063; +254.38409423828125, 0.48997998237609863; +254.4840850830078, 0.48979371786117554; +254.58407592773438, 0.49004703760147095; +254.68406677246094, 0.4910007119178772; +254.78407287597656, 0.49202144145965576; +254.88406372070312, 0.49266964197158813; +254.9840545654297, 0.49295276403427124; +255.08404541015625, 0.493071973323822; +255.1840362548828, 0.49261003732681274; +255.28404235839844, 0.4916265606880188; +255.384033203125, 0.4904717206954956; +255.48402404785156, 0.4892274737358093; +255.58401489257812, 0.48813968896865845; +255.6840057373047, 0.4871562123298645; +255.7840118408203, 0.48667192459106445; +255.88400268554688, 0.48757344484329224; +255.98399353027344, 0.4906207323074341; +256.083984375, 0.4948750138282776; +256.1839904785156, 0.4983097314834595; +256.2839660644531, 0.5005970597267151; +256.38397216796875, 0.5027279257774353; +256.48394775390625, 0.5048811435699463; +256.5839538574219, 0.5056858062744141; +256.6839599609375, 0.5046650767326355; +256.783935546875, 0.5029812455177307; +256.8839416503906, 0.5015507340431213; +256.9839172363281, 0.49971044063568115; +257.08392333984375, 0.497184693813324; +257.1839294433594, 0.4949793219566345; +257.2839050292969, 0.4950016736984253; +257.3839111328125, 0.4968121647834778; +257.48388671875, 0.49959123134613037; +257.5838928222656, 0.5023479461669922; +257.68389892578125, 0.5043298006057739; +257.78387451171875, 0.5041509866714478; +257.8838806152344, 0.5012452602386475; +257.9838562011719, 0.49699097871780396; +258.0838623046875, 0.49283355474472046; +258.1838684082031, 0.48914551734924316; +258.2838439941406, 0.4858672618865967; +258.38385009765625, 0.48504024744033813; +258.48382568359375, 0.4869028925895691; +258.5838317871094, 0.49076229333877563; +258.683837890625, 0.49483031034469604; +258.7838134765625, 0.49908459186553955; +258.8838195800781, 0.5034133791923523; +258.9837951660156, 0.5055069923400879; +259.08380126953125, 0.5045682191848755; +259.18377685546875, 0.5017668008804321; +259.2837829589844, 0.4993528127670288; +259.3837890625, 0.49773603677749634; +259.4837646484375, 0.4960373044013977; +259.5837707519531, 0.4950985312461853; +259.6837463378906, 0.4957616329193115; +259.78375244140625, 0.4975423216819763; +259.8837585449219, 0.4994198679924011; +259.9837341308594, 0.5005449056625366; +260.083740234375, 0.501483678817749; +260.1837158203125, 0.5014166235923767; +260.2837219238281, 0.5004778504371643; +260.38372802734375, 0.49939751625061035; +260.48370361328125, 0.49823522567749023; +260.5837097167969, 0.4971921443939209; +260.6836853027344, 0.49583613872528076; +260.78369140625, 0.49598515033721924; +260.8836975097656, 0.49801915884017944; +260.9836730957031, 0.5003362894058228; +261.08367919921875, 0.5020499229431152; +261.18365478515625, 0.5032718181610107; +261.2836608886719, 0.5054771900177002; +261.3836669921875, 0.507943332195282; +261.483642578125, 0.509120523929596; +261.5836486816406, 0.5096495151519775; +261.6836242675781, 0.5096271634101868; +261.78363037109375, 0.5095973610877991; +261.8836364746094, 0.5097240209579468; +261.9836120605469, 0.5106329917907715; +262.0836181640625, 0.512436032295227; +262.18359375, 0.5134269595146179; +262.2835998535156, 0.5134046077728271; +262.38360595703125, 0.5125030875205994; +262.48358154296875, 0.5103573203086853; +262.5835876464844, 0.5074441432952881; +262.6835632324219, 0.5051195621490479; +262.7835693359375, 0.504620373249054; +262.8835754394531, 0.5057454109191895; +262.9835510253906, 0.5083009600639343; +263.08355712890625, 0.5127787590026855; +263.18353271484375, 0.5174428224563599; +263.2835388183594, 0.5205422639846802; +263.3835144042969, 0.5210638046264648; +263.4835205078125, 0.5201622843742371; +263.5835266113281, 0.5186498165130615; +263.6835021972656, 0.5168914794921875; +263.78350830078125, 0.5158036947250366; +263.88348388671875, 0.5154907703399658; +263.9834899902344, 0.5166158080101013; +264.08349609375, 0.5182251334190369; +264.1834716796875, 0.5194246768951416; +264.2834777832031, 0.5188509821891785; +264.3834533691406, 0.5170479416847229; +264.48345947265625, 0.5153343081474304; +264.5834655761719, 0.5142092704772949; +264.6834411621094, 0.5136802792549133; +264.783447265625, 0.5134642124176025; +264.8834228515625, 0.5139186978340149; +264.9834289550781, 0.5146190524101257; +265.08343505859375, 0.5148649215698242; +265.18341064453125, 0.5143657326698303; +265.2834167480469, 0.5136951804161072; +265.3833923339844, 0.5128830671310425; +265.4833984375, 0.5123838782310486; +265.5834045410156, 0.511854887008667; +265.6833801269531, 0.5117729306221008; +265.78338623046875, 0.5128234624862671; +265.88336181640625, 0.5151703953742981; +265.9833679199219, 0.5183294415473938; +266.0833740234375, 0.5199909210205078; +266.183349609375, 0.5192533135414124; +266.2833557128906, 0.5162954330444336; +266.3833312988281, 0.5124136805534363; +266.48333740234375, 0.5083680152893066; +266.5833435058594, 0.505201518535614; +266.6833190917969, 0.5043819546699524; +266.7833251953125, 0.5062147974967957; +266.88330078125, 0.5097836256027222; +266.9833068847656, 0.5128607153892517; +267.08331298828125, 0.513814389705658; +267.18328857421875, 0.5130767822265625; +267.2832946777344, 0.5121082067489624; +267.3832702636719, 0.5119219422340393; +267.4832763671875, 0.5119368433952332; +267.583251953125, 0.5116760730743408; +267.6832580566406, 0.5122348666191101; +267.78326416015625, 0.5144402384757996; +267.88323974609375, 0.5178898572921753; +267.9832458496094, 0.5208626389503479; +268.0832214355469, 0.5232468247413635; +268.1832275390625, 0.5257725715637207; +268.2832336425781, 0.5281195044517517; +268.3832092285156, 0.5285441875457764; +268.48321533203125, 0.525742769241333; +268.58319091796875, 0.5216598510742188; +268.6831970214844, 0.5191117525100708; +268.783203125, 0.5190744996070862; +268.8831787109375, 0.5207732319831848; +268.9831848144531, 0.5222409963607788; +269.0831604003906, 0.5232170224189758; +269.18316650390625, 0.5247965455055237; +269.2831726074219, 0.5262792110443115; +269.3831481933594, 0.5268305540084839; +269.483154296875, 0.5253627896308899; +269.5831298828125, 0.5235299468040466; +269.6831359863281, 0.5232393741607666; +269.78314208984375, 0.5234181880950928; +269.88311767578125, 0.523097813129425; +269.9831237792969, 0.5220696330070496; +270.0830993652344, 0.5219504237174988; +270.18310546875, 0.5237609148025513; +270.2831115722656, 0.5263686180114746; +270.3830871582031, 0.5284324288368225; +270.48309326171875, 0.5292296409606934; +270.58306884765625, 0.5289018154144287; +270.6830749511719, 0.5283355712890625; +270.7830810546875, 0.5268678069114685; +270.883056640625, 0.5249306559562683; +270.9830627441406, 0.5240589380264282; +271.0830383300781, 0.5249828100204468; +271.18304443359375, 0.5266666412353516; +271.2830505371094, 0.5276501178741455; +271.3830261230469, 0.5291402339935303; +271.4830322265625, 0.5313083529472351; +271.5830078125, 0.5321726202964783; +271.6830139160156, 0.5304291844367981; +271.7829895019531, 0.5278363823890686; +271.88299560546875, 0.5257353186607361; +271.9830017089844, 0.5246251821517944; +272.0829772949219, 0.5237534642219543; +272.1829833984375, 0.5236342549324036; +272.282958984375, 0.5240291357040405; +272.3829650878906, 0.5235373973846436; +272.48297119140625, 0.5222409963607788; +272.58294677734375, 0.5194023251533508; +272.6829528808594, 0.516250729560852; +272.7829284667969, 0.513121485710144; +272.8829345703125, 0.5110278725624084; +272.9829406738281, 0.5103573203086853; +273.0829162597656, 0.5108118057250977; +273.18292236328125, 0.5123242735862732; +273.28289794921875, 0.5138665437698364; +273.3829040527344, 0.5153492093086243; +273.48291015625, 0.5167648196220398; +273.5828857421875, 0.5187615752220154; +273.6828918457031, 0.5218163132667542; +273.7828674316406, 0.5248263478279114; +273.88287353515625, 0.5269721150398254; +273.9828796386719, 0.5281791090965271; +274.0828552246094, 0.5289912223815918; +274.182861328125, 0.5294531583786011; +274.2828369140625, 0.5294904112815857; +274.3828430175781, 0.5290135741233826; +274.48284912109375, 0.5281344056129456; +274.58282470703125, 0.5260929465293884; +274.6828308105469, 0.5232393741607666; +274.7828063964844, 0.5205422639846802; +274.8828125, 0.5174726247787476; +274.9828186035156, 0.5145147442817688; +275.0827941894531, 0.5128383636474609; +275.18280029296875, 0.5138814449310303; +275.28277587890625, 0.5172491073608398; +275.3827819824219, 0.5210116505622864; +275.4827575683594, 0.5247369408607483; +275.582763671875, 0.5275830626487732; +275.6827697753906, 0.5291774868965149; +275.7827453613281, 0.5298927426338196; +275.88275146484375, 0.5306154489517212; +275.98272705078125, 0.5311593413352966; +276.0827331542969, 0.530049204826355; +276.1827392578125, 0.5278363823890686; +276.28271484375, 0.5251988768577576; +276.3827209472656, 0.5223378539085388; +276.4826965332031, 0.51889568567276; +276.58270263671875, 0.516064465045929; +276.6827087402344, 0.5153194069862366; +276.7826843261719, 0.5158334970474243; +276.8826904296875, 0.516749918460846; +276.982666015625, 0.5178749561309814; +277.0826721191406, 0.5182474851608276; +277.18267822265625, 0.5174353718757629; +277.28265380859375, 0.5157813429832458; +277.3826599121094, 0.515572726726532; +277.4826354980469, 0.5171075463294983; +277.5826416015625, 0.5193799734115601; +277.6826477050781, 0.5221813917160034; +277.7826232910156, 0.5254000425338745; +277.88262939453125, 0.5285143852233887; +277.98260498046875, 0.530734658241272; +278.0826110839844, 0.5313679575920105; +278.1826171875, 0.5301088094711304; +278.2825927734375, 0.527597963809967; +278.3825988769531, 0.5249306559562683; +278.4825744628906, 0.523000955581665; +278.58258056640625, 0.5214959383010864; +278.6825866699219, 0.5209967494010925; +278.7825622558594, 0.5219429731369019; +278.882568359375, 0.5233809351921082; +278.9825439453125, 0.5235522985458374; +279.0825500488281, 0.5226805806159973; +279.18255615234375, 0.5217269062995911; +279.28253173828125, 0.520363450050354; +279.3825378417969, 0.51870197057724; +279.4825134277344, 0.517427921295166; +279.58251953125, 0.5177110433578491; +279.6824951171875, 0.5179122090339661; +279.7825012207031, 0.5167126655578613; +279.88250732421875, 0.5154311656951904; +279.98248291015625, 0.5144849419593811; +280.0824890136719, 0.5138739943504333; +280.1824645996094, 0.5133673548698425; +280.282470703125, 0.5137845873832703; +280.3824768066406, 0.5151554942131042; +280.4824523925781, 0.5163252353668213; +280.58245849609375, 0.5175396800041199; +280.68243408203125, 0.5182623863220215; +280.7824401855469, 0.5174875259399414; +280.8824462890625, 0.515371561050415; +280.982421875, 0.5137547850608826; +281.0824279785156, 0.5133152008056641; +281.1824035644531, 0.5129724740982056; +281.28240966796875, 0.512935221195221; +281.3824157714844, 0.5138814449310303; +281.4823913574219, 0.5157738924026489; +281.5823974609375, 0.5171000957489014; +281.682373046875, 0.5178079009056091; +281.7823791503906, 0.5173012614250183; +281.88238525390625, 0.5153566598892212; +281.98236083984375, 0.5120411515235901; +282.0823669433594, 0.5087554454803467; +282.1823425292969, 0.507161021232605; +282.2823486328125, 0.5065277218818665; +282.3823547363281, 0.5070790648460388; +282.4823303222656, 0.5086660385131836; +282.58233642578125, 0.5112141370773315; +282.68231201171875, 0.5137622356414795; +282.7823181152344, 0.5144327878952026; +282.88232421875, 0.5137398838996887; +282.9822998046875, 0.5127415060997009; +283.0823059082031, 0.5117356777191162; +283.1822814941406, 0.5113035440444946; +283.28228759765625, 0.5111396312713623; +283.3822937011719, 0.5114451050758362; +283.4822692871094, 0.5111172795295715; +283.582275390625, 0.5098506808280945; +283.6822509765625, 0.5086138844490051; +283.7822570800781, 0.5080774426460266; +283.8822326660156, 0.5083233118057251; +283.98223876953125, 0.5090013146400452; +284.0822448730469, 0.5101785063743591; +284.1822204589844, 0.5116686224937439; +284.2822265625, 0.5129054188728333; +284.3822021484375, 0.5126073956489563; +284.4822082519531, 0.5100518465042114; +284.58221435546875, 0.5060955882072449; +284.68218994140625, 0.5026459693908691; +284.7821960449219, 0.5004331469535828; +284.8821716308594, 0.4985034465789795; +284.982177734375, 0.4967227578163147; +285.0821838378906, 0.49567222595214844; +285.1821594238281, 0.49533694982528687; +285.28216552734375, 0.49502402544021606; +285.38214111328125, 0.4945993423461914; +285.4821472167969, 0.4953816533088684; +285.5821533203125, 0.4978254437446594; +285.68212890625, 0.5014389753341675; +285.7821350097656, 0.5054250359535217; +285.8821105957031, 0.5092695355415344; +285.98211669921875, 0.5124732851982117; +286.0821228027344, 0.5136206746101379; +286.1820983886719, 0.5120113492012024; +286.2821044921875, 0.5095228552818298; +286.382080078125, 0.5076602101325989; +286.4820861816406, 0.5063042044639587; +286.58209228515625, 0.5040392279624939; +286.68206787109375, 0.5018562078475952; +286.7820739746094, 0.5012303590774536; +286.8820495605469, 0.5005449056625366; +286.9820556640625, 0.4985332489013672; +287.0820617675781, 0.495128333568573; +287.1820373535156, 0.49295276403427124; +287.28204345703125, 0.4926025867462158; +287.38201904296875, 0.49279630184173584; +287.4820251464844, 0.49377232789993286; +287.58203125, 0.49596279859542847; +287.6820068359375, 0.49936771392822266; +287.7820129394531, 0.5017369985580444; +287.8819885253906, 0.5019605159759521; +287.98199462890625, 0.5016401410102844; +288.08197021484375, 0.5014315247535706; +288.1819763183594, 0.5000755190849304; +288.281982421875, 0.49661099910736084; +288.3819580078125, 0.4920586943626404; +288.4819641113281, 0.48830360174179077; +288.5819396972656, 0.48522651195526123; +288.68194580078125, 0.4822239279747009; +288.7819519042969, 0.4798322916030884; +288.8819274902344, 0.4796907305717468; +288.98193359375, 0.48251450061798096; +289.0819091796875, 0.48632174730300903; +289.1819152832031, 0.48945099115371704; +289.28192138671875, 0.4914477467536926; +289.38189697265625, 0.4929155111312866; +289.4819030761719, 0.4939660429954529; +289.5818786621094, 0.49427151679992676; +289.681884765625, 0.49455463886260986; +289.7818908691406, 0.4956275224685669; +289.8818664550781, 0.4981383681297302; +289.98187255859375, 0.501677393913269; +290.08184814453125, 0.5036816000938416; +290.1818542480469, 0.502467155456543; +290.2818603515625, 0.4985630512237549; +290.3818359375, 0.4933550953865051; +290.4818420410156, 0.48773735761642456; +290.5818176269531, 0.48229843378067017; +290.68182373046875, 0.478990375995636; +290.7818298339844, 0.47863274812698364; +290.8818054199219, 0.48026442527770996; +290.9818115234375, 0.48273056745529175; +291.081787109375, 0.4855617880821228; +291.1817932128906, 0.48807263374328613; +291.28179931640625, 0.489845871925354; +291.38177490234375, 0.49164146184921265; +291.4817810058594, 0.49395859241485596; +291.5817565917969, 0.49533694982528687; +291.6817626953125, 0.4947185516357422; +291.78173828125, 0.4925727844238281; +291.8817443847656, 0.4900991916656494; +291.98175048828125, 0.487692654132843; +292.08172607421875, 0.48426538705825806; +292.1817321777344, 0.48059970140457153; +292.2817077636719, 0.4763305187225342; +292.3817138671875, 0.47309696674346924; +292.4817199707031, 0.47159940004348755; +292.5816955566406, 0.47082453966140747; +292.68170166015625, 0.4709213972091675; +292.78167724609375, 0.4715844988822937; +292.8816833496094, 0.47441571950912476; +292.981689453125, 0.47817081212997437; +293.0816650390625, 0.4804283380508423; +293.1816711425781, 0.4809573292732239; +293.2816467285156, 0.4807710647583008; +293.38165283203125, 0.4819631576538086; +293.4816589355469, 0.483684241771698; +293.5816345214844, 0.48392266035079956; +293.681640625, 0.4824325442314148; +293.7816162109375, 0.48084557056427; +293.8816223144531, 0.47978758811950684; +293.98162841796875, 0.47814100980758667; +294.08160400390625, 0.4758015275001526; +294.1816101074219, 0.4740804433822632; +294.2815856933594, 0.473707914352417; +294.381591796875, 0.4733577370643616; +294.4815979003906, 0.4728659987449646; +294.5815734863281, 0.4723072052001953; +294.68157958984375, 0.47129392623901367; +294.78155517578125, 0.46993792057037354; +294.8815612792969, 0.4686787724494934; +294.9815673828125, 0.46735256910324097; +295.08154296875, 0.4650577902793884; +295.1815490722656, 0.4626363515853882; +295.2815246582031, 0.46171247959136963; +295.38153076171875, 0.46265870332717896; +295.4815368652344, 0.4644542932510376; +295.5815124511719, 0.4668906331062317; +295.6815185546875, 0.4698261618614197; +295.781494140625, 0.4723742604255676; +295.8815002441406, 0.4742071032524109; +295.9814758300781, 0.47441571950912476; +296.08148193359375, 0.47331303358078003; +296.1814880371094, 0.47103315591812134; +296.2814636230469, 0.4687309265136719; +296.3814697265625, 0.4668384790420532; +296.4814453125, 0.4649311304092407; +296.5814514160156, 0.4630237817764282; +296.68145751953125, 0.46081840991973877; +296.78143310546875, 0.4590079188346863; +296.8814392089844, 0.45786052942276; +296.9814147949219, 0.45774132013320923; +297.0814208984375, 0.4579499363899231; +297.1814270019531, 0.45836716890335083; +297.2814025878906, 0.4595741629600525; +297.38140869140625, 0.46096742153167725; +297.48138427734375, 0.46187639236450195; +297.5813903808594, 0.4612654447555542; +297.681396484375, 0.45984983444213867; +297.7813720703125, 0.4582405090332031; +297.8813781738281, 0.4566982388496399; +297.9813537597656, 0.45590102672576904; +298.08135986328125, 0.45524537563323975; +298.1813659667969, 0.45515596866607666; +298.2813415527344, 0.4549771547317505; +298.38134765625, 0.4544109106063843; +298.4813232421875, 0.45383721590042114; +298.5813293457031, 0.4539117217063904; +298.68133544921875, 0.4552006721496582; +298.78131103515625, 0.456199049949646; +298.8813171386719, 0.4565492272377014; +298.9812927246094, 0.4571154713630676; +299.081298828125, 0.4580691456794739; +299.1813049316406, 0.4582330584526062; +299.2812805175781, 0.4568025469779968; +299.38128662109375, 0.45572221279144287; +299.48126220703125, 0.45640021562576294; +299.5812683105469, 0.4578828811645508; +299.6812744140625, 0.4583969712257385; +299.78125, 0.45790523290634155; +299.8812561035156, 0.45780837535858154; +299.9812316894531, 0.45715272426605225; +300.08123779296875, 0.4548579454421997; +300.18121337890625, 0.4515349864959717; +300.2812194824219, 0.44927746057510376; +300.3812255859375, 0.44833868741989136; +300.481201171875, 0.44637173414230347; +300.5812072753906, 0.4431530833244324; +300.6811828613281, 0.44064223766326904; +300.78118896484375, 0.43917447328567505; +300.8811950683594, 0.4375576972961426; +300.9811706542969, 0.43608248233795166; +301.0811767578125, 0.43773651123046875; +301.18115234375, 0.4431679844856262; +301.2811584472656, 0.4496052861213684; +301.38116455078125, 0.4542917013168335; +301.48114013671875, 0.4576742649078369; +301.5811462402344, 0.4607886075973511; +301.6811218261719, 0.4631727933883667; +301.7811279296875, 0.4636421799659729; +301.8811340332031, 0.4611685872077942; +301.9811096191406, 0.45815110206604004; +302.08111572265625, 0.4549846053123474; +302.18109130859375, 0.4512667655944824; +302.2810974121094, 0.44629722833633423; +302.381103515625, 0.4414096474647522; +302.4810791015625, 0.4396960139274597; +302.5810852050781, 0.43992698192596436; +302.6810607910156, 0.44101476669311523; +302.78106689453125, 0.4417300224304199; +302.8810729980469, 0.4424452781677246; +302.9810485839844, 0.4429742693901062; +303.0810546875, 0.44242292642593384; +303.1810302734375, 0.44145435094833374; +303.2810363769531, 0.44036656618118286; +303.38104248046875, 0.4386007785797119; +303.48101806640625, 0.43617933988571167; +303.5810241699219, 0.4336833953857422; +303.6809997558594, 0.43103843927383423; +303.781005859375, 0.42816251516342163; +303.8810119628906, 0.4253387451171875; +303.9809875488281, 0.42463839054107666; +304.08099365234375, 0.42582303285598755; +304.18096923828125, 0.4270225763320923; +304.2809753417969, 0.4273727536201477; +304.3809509277344, 0.42776018381118774; +304.48095703125, 0.42970478534698486; +304.5809631347656, 0.43273717164993286; +304.6809387207031, 0.4349648952484131; +304.78094482421875, 0.4353523254394531; +304.88092041015625, 0.43542683124542236; +304.9809265136719, 0.43573975563049316; +305.0809326171875, 0.4356652498245239; +305.180908203125, 0.4334747791290283; +305.2809143066406, 0.4295855760574341; +305.3808898925781, 0.4269108176231384; +305.48089599609375, 0.42526423931121826; +305.5809020996094, 0.4243627190589905; +305.6808776855469, 0.4239007830619812; +305.7808837890625, 0.4256442189216614; +305.880859375, 0.4301294684410095; +305.9808654785156, 0.4353523254394531; +306.08087158203125, 0.43942779302597046; +306.18084716796875, 0.4409477114677429; +306.2808532714844, 0.4386305809020996; +306.3808288574219, 0.43267756700515747; +306.4808349609375, 0.4262998700141907; +306.5808410644531, 0.42141973972320557; +306.6808166503906, 0.41909515857696533; +306.78082275390625, 0.4182755947113037; +306.88079833984375, 0.4184842109680176; +306.9808044433594, 0.4194900393486023; +307.080810546875, 0.4199594259262085; +307.1807861328125, 0.4194974899291992; +307.2807922363281, 0.41816383600234985; +307.3807678222656, 0.4165545105934143; +307.48077392578125, 0.4163309931755066; +307.5807800292969, 0.41791051626205444; +307.6807556152344, 0.41963160037994385; +307.78076171875, 0.42076408863067627; +307.8807373046875, 0.4216805100440979; +307.9807434082031, 0.4240646958351135; +308.08074951171875, 0.4270896315574646; +308.18072509765625, 0.42847543954849243; +308.2807312011719, 0.4285946488380432; +308.3807067871094, 0.4279986023902893; +308.480712890625, 0.4261210560798645; +308.5806884765625, 0.42216479778289795; +308.6806945800781, 0.41776150465011597; +308.78070068359375, 0.4157125949859619; +308.88067626953125, 0.41551142930984497; +308.9806823730469, 0.4154816269874573; +309.0806579589844, 0.4153996706008911; +309.1806640625, 0.4155263304710388; +309.2806701660156, 0.41557103395462036; +309.3806457519531, 0.4135221242904663; +309.48065185546875, 0.4094913601875305; +309.58062744140625, 0.40490925312042236; +309.6806335449219, 0.4013851284980774; +309.7806396484375, 0.40046870708465576; +309.880615234375, 0.40140748023986816; +309.9806213378906, 0.40340423583984375; +310.0805969238281, 0.4052072763442993; +310.18060302734375, 0.4068315029144287; +310.2806091308594, 0.40819495916366577; +310.3805847167969, 0.40835142135620117; +310.4805908203125, 0.4066675901412964; +310.58056640625, 0.40449202060699463; +310.6805725097656, 0.4037991166114807; +310.78057861328125, 0.4051029682159424; +310.88055419921875, 0.4071667790412903; +310.9805603027344, 0.40800124406814575; +311.0805358886719, 0.4070103168487549; +311.1805419921875, 0.4040449857711792; +311.2805480957031, 0.4002377390861511; +311.3805236816406, 0.39624422788619995; +311.48052978515625, 0.3936886787414551; +311.58050537109375, 0.3931671380996704; +311.6805114746094, 0.3940165042877197; +311.780517578125, 0.3956928849220276; +311.8804931640625, 0.3973767161369324; +311.9804992675781, 0.3986954689025879; +312.0804748535156, 0.39795786142349243; +312.18048095703125, 0.39489567279815674; +312.28045654296875, 0.39171427488327026; +312.3804626464844, 0.3904774785041809; +312.48046875, 0.3919452428817749; +312.5804443359375, 0.3945007920265198; +312.6804504394531, 0.3971084952354431; +312.7804260253906, 0.3998503088951111; +312.88043212890625, 0.40243566036224365; +312.9804382324219, 0.4043504595756531; +313.0804138183594, 0.40441006422042847; +313.180419921875, 0.4029422998428345; +313.2803955078125, 0.4012659192085266; +313.3804016113281, 0.39999932050704956; +313.48040771484375, 0.3982558846473694; +313.58038330078125, 0.3951340913772583; +313.6803894042969, 0.39070844650268555; +313.7803649902344, 0.38655102252960205; +313.88037109375, 0.38336217403411865; +313.9803771972656, 0.38120895624160767; +314.0803527832031, 0.3800541162490845; +314.18035888671875, 0.37989020347595215; +314.28033447265625, 0.38057565689086914; +314.3803405761719, 0.38133561611175537; +314.4803466796875, 0.38139522075653076; +314.580322265625, 0.3811344504356384; +314.6803283691406, 0.3819391131401062; +314.7803039550781, 0.3832206130027771; +314.88031005859375, 0.38468092679977417; +314.9803161621094, 0.3852546215057373; +315.0802917480469, 0.3856196999549866; +315.1802978515625, 0.38655102252960205; +315.2802734375, 0.38729608058929443; +315.3802795410156, 0.38836896419525146; +315.48028564453125, 0.3898739814758301; +315.58026123046875, 0.3926977515220642; +315.6802673339844, 0.3965049982070923; +315.7802429199219, 0.3985986113548279; +315.8802490234375, 0.39833784103393555; +315.9802551269531, 0.3967955708503723; +316.0802307128906, 0.39502233266830444; +316.18023681640625, 0.39333850145339966; +316.28021240234375, 0.39114803075790405; +316.3802185058594, 0.38939714431762695; +316.4801940917969, 0.38861483335494995; +316.5802001953125, 0.38826465606689453; +316.6802062988281, 0.3882795572280884; +316.7801818847656, 0.3875941038131714; +316.88018798828125, 0.3856644034385681; +316.98016357421875, 0.383131206035614; +317.0801696777344, 0.3814399242401123; +317.18017578125, 0.3802180290222168; +317.2801513671875, 0.37823617458343506; +317.3801574707031, 0.37557631731033325; +317.4801330566406, 0.3743395209312439; +317.58013916015625, 0.3747418522834778; +317.6801452636719, 0.3753378987312317; +317.7801208496094, 0.3748014569282532; +317.880126953125, 0.3728941082954407; +317.9801025390625, 0.37069618701934814; +318.0801086425781, 0.36801397800445557; +318.18011474609375, 0.3648102283477783; +318.28009033203125, 0.3608241677284241; +318.3800964355469, 0.357016921043396; +318.4800720214844, 0.35424530506134033; +318.580078125, 0.3530532121658325; +318.6800842285156, 0.3534182906150818; +318.7800598144531, 0.35513192415237427; +318.88006591796875, 0.3581717610359192; +318.98004150390625, 0.36212801933288574; +319.0800476074219, 0.36650151014328003; +319.1800537109375, 0.3695636987686157; +319.280029296875, 0.3706216812133789; +319.3800354003906, 0.37019699811935425; +319.4800109863281, 0.36822259426116943; +319.58001708984375, 0.36516785621643066; +319.6800231933594, 0.3623589873313904; +319.7799987792969, 0.36119669675827026; +319.8800048828125, 0.3619194030761719; +319.97998046875, 0.3629922866821289; +320.0799865722656, 0.36475062370300293; +320.17999267578125, 0.36709755659103394; +320.27996826171875, 0.36857277154922485; +320.3799743652344, 0.3682747483253479; +320.4799499511719, 0.36630779504776; +320.5799560546875, 0.3643929958343506; +320.679931640625, 0.3625452518463135; +320.7799377441406, 0.3601685166358948; +320.87994384765625, 0.3565847873687744; +320.97991943359375, 0.3525093197822571; +321.0799255371094, 0.34899264574050903; +321.1799011230469, 0.3468543291091919; +321.2799072265625, 0.3459826111793518; +321.3799133300781, 0.3461390733718872; +321.4798889160156, 0.34736841917037964; +321.57989501953125, 0.3488883376121521; +321.67987060546875, 0.34990161657333374; +321.7798767089844, 0.35008788108825684; +321.8798828125, 0.3500208258628845; +321.9798583984375, 0.34949928522109985; +322.0798645019531, 0.3478899598121643; +322.1798400878906, 0.3451704978942871; +322.27984619140625, 0.3417283296585083; +322.3798522949219, 0.33830106258392334; +322.4798278808594, 0.3352835774421692; +322.579833984375, 0.33380836248397827; +322.6798095703125, 0.3347620368003845; +322.7798156738281, 0.3376379609107971; +322.87982177734375, 0.340782105922699; +322.97979736328125, 0.34302473068237305; +323.0798034667969, 0.34371018409729004; +323.1797790527344, 0.3433302044868469; +323.27978515625, 0.3420412540435791; +323.3797912597656, 0.3400743007659912; +323.4797668457031, 0.3382489085197449; +323.57977294921875, 0.33587217330932617; +323.67974853515625, 0.33354759216308594; +323.7797546386719, 0.33148378133773804; +323.8797607421875, 0.33007562160491943; +323.979736328125, 0.32936036586761475; +324.0797424316406, 0.3283396363258362; +324.1797180175781, 0.3267154097557068; +324.27972412109375, 0.32383203506469727; +324.3797302246094, 0.32023340463638306; +324.4797058105469, 0.3167688846588135; +324.5797119140625, 0.31410157680511475; +324.6796875, 0.3130584955215454; +324.7796936035156, 0.3138333559036255; +324.8796691894531, 0.31638890504837036; +324.97967529296875, 0.31982362270355225; +325.0796813964844, 0.32326579093933105; +325.1796569824219, 0.32573938369750977; +325.2796630859375, 0.32573938369750977; +325.379638671875, 0.3243982791900635; +325.4796447753906, 0.32292306423187256; +325.57965087890625, 0.3210678696632385; +325.67962646484375, 0.31769275665283203; +325.7796325683594, 0.31322240829467773; +325.8796081542969, 0.3102794289588928; +325.9796142578125, 0.308796763420105; +326.0796203613281, 0.30750036239624023; +326.1795959472656, 0.305861234664917; +326.27960205078125, 0.30490756034851074; +326.37957763671875, 0.3052353858947754; +326.4795837402344, 0.30562281608581543; +326.57958984375, 0.30457228422164917; +326.6795654296875, 0.30231475830078125; +326.7795715332031, 0.30084699392318726; +326.8795471191406, 0.30110031366348267; +326.97955322265625, 0.301264226436615; +327.0795593261719, 0.2996698021888733; +327.1795349121094, 0.2972409129142761; +327.279541015625, 0.29525160789489746; +327.3795166015625, 0.29330700635910034; +327.4795227050781, 0.29043108224868774; +327.57952880859375, 0.28790533542633057; +327.67950439453125, 0.2869218587875366; +327.7795104980469, 0.2872273325920105; +327.8794860839844, 0.2882257103919983; +327.9794921875, 0.2889558672904968; +328.0794982910156, 0.28982013463974; +328.1794738769531, 0.29052048921585083; +328.27947998046875, 0.29136985540390015; +328.37945556640625, 0.29189884662628174; +328.4794616699219, 0.29158592224121094; +328.5794372558594, 0.2905726432800293; +328.679443359375, 0.2881735563278198; +328.7794494628906, 0.28486549854278564; +328.8794250488281, 0.2814456820487976; +328.97943115234375, 0.27917325496673584; +329.07940673828125, 0.2769455313682556; +329.1794128417969, 0.2735033631324768; +329.2794189453125, 0.2695843577384949; +329.37939453125, 0.26616454124450684; +329.4794006347656, 0.2636536955833435; +329.5793762207031, 0.2612471580505371; +329.67938232421875, 0.2597346901893616; +329.7793884277344, 0.2594664692878723; +329.8793640136719, 0.25960057973861694; +329.9793701171875, 0.25969743728637695; +330.079345703125, 0.2591162919998169; +330.1793518066406, 0.25848299264907837; +330.27935791015625, 0.2581477165222168; +330.37933349609375, 0.2589300274848938; +330.4793395996094, 0.2613738179206848; +330.5793151855469, 0.2644732594490051; +330.6793212890625, 0.26698410511016846; +330.7793273925781, 0.26845186948776245; +330.8793029785156, 0.26917457580566406; +330.97930908203125, 0.2692118287086487; +331.07928466796875, 0.26839226484298706; +331.1792907714844, 0.26644766330718994; +331.279296875, 0.2646222710609436; +331.3792724609375, 0.2633333206176758; +331.4792785644531, 0.26169419288635254; +331.5792541503906, 0.25981664657592773; +331.67926025390625, 0.25907158851623535; +331.7792663574219, 0.26128441095352173; +331.8792419433594, 0.2654343843460083; +331.979248046875, 0.2682730555534363; +332.0792236328125, 0.2696812152862549; +332.1792297363281, 0.2702847123146057; +332.27923583984375, 0.27010589838027954; +332.37921142578125, 0.2684369683265686; +332.4792175292969, 0.2654418349266052; +332.5791931152344, 0.26363879442214966; +332.67919921875, 0.2629682421684265; +332.7791748046875, 0.2628639340400696; +332.8791809082031, 0.2626180648803711; +332.97918701171875, 0.2613440155982971; +333.07916259765625, 0.25942176580429077; +333.1791687011719, 0.25659799575805664; +333.2791442871094, 0.2536699175834656; +333.379150390625, 0.25140494108200073; +333.4791564941406, 0.24969130754470825; +333.5791320800781, 0.24880468845367432; +333.67913818359375, 0.248737633228302; +333.77911376953125, 0.25013089179992676; +333.8791198730469, 0.2520903944969177; +333.9791259765625, 0.2515241503715515; +334.0791015625, 0.24807453155517578; +334.1791076660156, 0.24331361055374146; +334.2790832519531, 0.23971498012542725; +334.37908935546875, 0.23739784955978394; +334.4790954589844, 0.23651868104934692; +334.5790710449219, 0.23765861988067627; +334.6790771484375, 0.24002790451049805; +334.779052734375, 0.2435147762298584; +334.8790588378906, 0.24624913930892944; +334.97906494140625, 0.24712085723876953; +335.07904052734375, 0.24478137493133545; +335.1790466308594, 0.2413615584373474; +335.2790222167969, 0.23987889289855957; +335.3790283203125, 0.2408251166343689; +335.4790344238281, 0.24305284023284912; +335.5790100097656, 0.24541467428207397; +335.67901611328125, 0.2486780285835266; +335.77899169921875, 0.2521723508834839; +335.8789978027344, 0.25487691164016724; +335.97900390625, 0.2553611993789673; +336.0789794921875, 0.2538040280342102; +336.1789855957031, 0.25163590908050537; +336.2789611816406, 0.250399112701416; +336.37896728515625, 0.25059282779693604; +336.4789733886719, 0.25097280740737915; +336.5789489746094, 0.2507343888282776; +336.678955078125, 0.24903565645217896; +336.7789306640625, 0.246390700340271; +336.8789367675781, 0.2432018518447876; +336.9789123535156, 0.23981183767318726; +337.07891845703125, 0.23630261421203613; +337.1789245605469, 0.23224949836730957; +337.2789001464844, 0.22882968187332153; +337.37890625, 0.2266019582748413; +337.4788818359375, 0.22549927234649658; +337.5788879394531, 0.22437423467636108; +337.67889404296875, 0.22242218255996704; +337.77886962890625, 0.2208426594734192; +337.8788757324219, 0.22064149379730225; +337.9788513183594, 0.2216547727584839; +338.078857421875, 0.22285431623458862; +338.1788635253906, 0.2251937985420227; +338.2788391113281, 0.2295374870300293; +338.37884521484375, 0.23487210273742676; +338.47882080078125, 0.23842602968215942; +338.5788269042969, 0.23856759071350098; +338.6788330078125, 0.23651123046875; +338.77880859375, 0.23339688777923584; +338.8788146972656, 0.2295970916748047; +338.9787902832031, 0.22546201944351196; +339.07879638671875, 0.22187083959579468; +339.1788024902344, 0.22032111883163452; +339.2787780761719, 0.22080540657043457; +339.3787841796875, 0.22283196449279785; +339.478759765625, 0.22560358047485352; +339.5787658691406, 0.2277269959449768; +339.67877197265625, 0.22868067026138306; +339.77874755859375, 0.22891908884048462; +339.8787536621094, 0.22903084754943848; +339.9787292480469, 0.22852420806884766; +340.0787353515625, 0.2281665802001953; +340.1787414550781, 0.22836029529571533; +340.2787170410156, 0.22965669631958008; +340.37872314453125, 0.2308487892150879; +340.47869873046875, 0.231131911277771; +340.5787048339844, 0.22976845502853394; +340.6787109375, 0.22707879543304443; +340.7786865234375, 0.2256259322166443; +340.8786926269531, 0.22571533918380737; +340.9786682128906, 0.2268776297569275; +341.07867431640625, 0.2281591296195984; +341.17864990234375, 0.22967159748077393; +341.2786560058594, 0.23015588521957397; +341.378662109375, 0.22801756858825684; +341.4786376953125, 0.2251267433166504; +341.5786437988281, 0.22288411855697632; +341.6786193847656, 0.22126734256744385; +341.77862548828125, 0.21960586309432983; +341.8786315917969, 0.2182796597480774; +341.9786071777344, 0.21772831678390503; +342.07861328125, 0.217340886592865; +342.1785888671875, 0.21710991859436035; +342.2785949707031, 0.21746009588241577; +342.37860107421875, 0.21746009588241577; +342.47857666015625, 0.21701306104660034; +342.5785827636719, 0.21664798259735107; +342.6785583496094, 0.2163127064704895; +342.778564453125, 0.21553784608840942; +342.8785705566406, 0.21398067474365234; +342.9785461425781, 0.2131834626197815; +343.07855224609375, 0.21335482597351074; +343.17852783203125, 0.2141520380973816; +343.2785339355469, 0.21521002054214478; +343.3785400390625, 0.216655433177948; +343.478515625, 0.2177804708480835; +343.5785217285156, 0.21791458129882812; +343.6784973144531, 0.21739304065704346; +343.77850341796875, 0.21652132272720337; +343.8785095214844, 0.21576136350631714; +343.9784851074219, 0.21445006132125854; +344.0784912109375, 0.21303445100784302; +344.178466796875, 0.21142512559890747; +344.2784729003906, 0.21000951528549194; +344.37847900390625, 0.20964443683624268; +344.47845458984375, 0.20936131477355957; +344.5784606933594, 0.20867586135864258; +344.6784362792969, 0.20754337310791016; +344.7784423828125, 0.20743906497955322; +344.87841796875, 0.20772218704223633; +344.9784240722656, 0.20659714937210083; +345.07843017578125, 0.2040565013885498; +345.17840576171875, 0.2014264464378357; +345.2784118652344, 0.19990652799606323; +345.3783874511719, 0.19896775484085083; +345.4783935546875, 0.1993924379348755; +345.5783996582031, 0.201396644115448; +345.6783752441406, 0.20475685596466064; +345.77838134765625, 0.20860880613327026; +345.87835693359375, 0.21156668663024902; +345.9783630371094, 0.2131834626197815; +346.078369140625, 0.21253526210784912; +346.1783447265625, 0.21157413721084595; +346.2783508300781, 0.2117156982421875; +346.3783264160156, 0.21284818649291992; +346.47833251953125, 0.21436065435409546; +346.5783386230469, 0.2148449420928955; +346.6783142089844, 0.21494925022125244; +346.7783203125, 0.21401792764663696; +346.8782958984375, 0.21260976791381836; +346.9783020019531, 0.21117180585861206; +347.07830810546875, 0.21101534366607666; +347.17828369140625, 0.2128109335899353; +347.2782897949219, 0.21489709615707397; +347.3782653808594, 0.21536648273468018; +347.478271484375, 0.21269172430038452; +347.5782775878906, 0.20895153284072876; +347.6782531738281, 0.2047419548034668; +347.77825927734375, 0.201493501663208; +347.87823486328125, 0.200025737285614; +347.9782409667969, 0.20004808902740479; +348.0782470703125, 0.20157545804977417; +348.17822265625, 0.2032741904258728; +348.2782287597656, 0.20529329776763916; +348.3782043457031, 0.2069622278213501; +348.47821044921875, 0.20784884691238403; +348.5782165527344, 0.2086833119392395; +348.6781921386719, 0.20973384380340576; +348.7781982421875, 0.21097064018249512; +348.878173828125, 0.21152198314666748; +348.9781799316406, 0.21072477102279663; +349.0781555175781, 0.20860880613327026; +349.17816162109375, 0.2064332365989685; +349.2781677246094, 0.20463764667510986; +349.3781433105469, 0.20176172256469727; +349.4781494140625, 0.19812583923339844; +349.578125, 0.19508600234985352; +349.6781311035156, 0.19421428442001343; +349.77813720703125, 0.19490718841552734; +349.87811279296875, 0.19582360982894897; +349.9781188964844, 0.19746273756027222; +350.0780944824219, 0.19840896129608154; +350.1781005859375, 0.19771605730056763; +350.2781066894531, 0.19546598196029663; +350.3780822753906, 0.19222497940063477; +350.47808837890625, 0.19010156393051147; +350.57806396484375, 0.18937140703201294; +350.6780700683594, 0.19019097089767456; +350.778076171875, 0.19127875566482544; +350.8780517578125, 0.19140541553497314; +350.9780578613281, 0.19108504056930542; +351.0780334472656, 0.1901686191558838; +351.17803955078125, 0.18870830535888672; +351.2780456542969, 0.1871660351753235; +351.3780212402344, 0.18736720085144043; +351.47802734375, 0.18940120935440063; +351.5780029296875, 0.1914501190185547; +351.6780090332031, 0.19174069166183472; +351.77801513671875, 0.19084662199020386; +351.87799072265625, 0.1899227499961853; +351.9779968261719, 0.18832087516784668; +352.0779724121094, 0.1866072416305542; +352.177978515625, 0.18537044525146484; +352.2779846191406, 0.1847296953201294; +352.3779602050781, 0.1835078001022339; +352.47796630859375, 0.18167495727539062; +352.57794189453125, 0.1801624894142151; +352.6779479980469, 0.17961114645004272; +352.7779541015625, 0.18018484115600586; +352.8779296875, 0.1822337508201599; +352.9779357910156, 0.18519163131713867; +353.0779113769531, 0.18637627363204956; +353.17791748046875, 0.1847967505455017; +353.27789306640625, 0.1800060272216797; +353.3778991699219, 0.17399340867996216; +353.4779052734375, 0.1682192087173462; +353.577880859375, 0.16420334577560425; +353.6778869628906, 0.16270577907562256; +353.7778625488281, 0.16269832849502563; +353.87786865234375, 0.16373395919799805; +353.9778747558594, 0.16508251428604126; +354.0778503417969, 0.16668438911437988; +354.1778564453125, 0.16813725233078003; +354.27783203125, 0.1686885952949524; +354.3778381347656, 0.16918033361434937; +354.47784423828125, 0.16988813877105713; +354.57781982421875, 0.17021596431732178; +354.6778259277344, 0.16943365335464478; +354.7778015136719, 0.1672804355621338; +354.8778076171875, 0.1651868224143982; +354.9778137207031, 0.16319751739501953; +355.0777893066406, 0.1612827181816101; +355.17779541015625, 0.1593455672264099; +355.27777099609375, 0.15785545110702515; +355.3777770996094, 0.1569986343383789; +355.477783203125, 0.15719980001449585; +355.5777587890625, 0.15822798013687134; +355.6777648925781, 0.15954673290252686; +355.7777404785156, 0.16145408153533936; +355.87774658203125, 0.1635923981666565; +355.9777526855469, 0.16570091247558594; +356.0777282714844, 0.16713887453079224; +356.177734375, 0.1681298017501831; +356.2777099609375, 0.16964226961135864; +356.3777160644531, 0.1707226037979126; +356.47772216796875, 0.1695379614830017; +356.57769775390625, 0.16577541828155518; +356.6777038574219, 0.16057491302490234; +356.7776794433594, 0.15565752983093262; +356.877685546875, 0.15132874250411987; +356.9776916503906, 0.1473352313041687; +357.0776672363281, 0.14478713274002075; +357.17767333984375, 0.14449656009674072; +357.27764892578125, 0.14676153659820557; +357.3776550292969, 0.15123188495635986; +357.4776306152344, 0.15567243099212646; +357.57763671875, 0.15810132026672363; +357.6776428222656, 0.15801191329956055; +357.7776184082031, 0.1564323902130127; +357.87762451171875, 0.15491247177124023; +357.97760009765625, 0.1526176929473877; +358.0776062011719, 0.15009194612503052; +358.1776123046875, 0.14831125736236572; +358.277587890625, 0.1483038067817688; +358.3775939941406, 0.15016645193099976; +358.4775695800781, 0.1524612307548523; +358.57757568359375, 0.1543983817100525; +358.6775817871094, 0.155717134475708; +358.7775573730469, 0.15651434659957886; +358.8775634765625, 0.15643984079360962; +358.9775390625, 0.15488266944885254; +359.0775451660156, 0.15184283256530762; +359.17755126953125, 0.14907121658325195; +359.27752685546875, 0.14706701040267944; +359.3775329589844, 0.14615803956985474; +359.4775085449219, 0.14586001634597778; +359.5775146484375, 0.14591962099075317; +359.6775207519531, 0.14628469944000244; +359.7774963378906, 0.1468658447265625; +359.87750244140625, 0.14781951904296875; +359.97747802734375, 0.14948099851608276; +360.0774841308594, 0.15097856521606445; +360.177490234375, 0.1522749662399292; +360.2774658203125, 0.15344470739364624; +360.3774719238281, 0.1536160707473755; +360.4774475097656, 0.15273690223693848; +360.57745361328125, 0.15013664960861206; +360.6774597167969, 0.14740973711013794; +360.7774353027344, 0.1451745629310608; +360.87744140625, 0.1437738537788391; +360.9774169921875, 0.14343112707138062; +361.0774230957031, 0.14351308345794678; +361.1773986816406, 0.14432519674301147; +361.27740478515625, 0.14507770538330078; +361.3774108886719, 0.14512240886688232; +361.4773864746094, 0.1441165804862976; +361.577392578125, 0.14191120862960815; +361.6773681640625, 0.13918429613113403; +361.7773742675781, 0.13602524995803833; +361.87738037109375, 0.13338029384613037; +361.97735595703125, 0.13187527656555176; +362.0773620605469, 0.1309216022491455; +362.1773376464844, 0.12970715761184692; +362.27734375, 0.12825429439544678; +362.3773498535156, 0.12706220149993896; +362.4773254394531, 0.1251623034477234; +362.57733154296875, 0.12224167585372925; +362.67730712890625, 0.11914968490600586; +362.7773132324219, 0.11719763278961182; +362.8773193359375, 0.11625885963439941; +362.977294921875, 0.11591613292694092; +363.0773010253906, 0.1176595687866211; +363.1772766113281, 0.12052059173583984; +363.27728271484375, 0.12288987636566162; +363.3772888183594, 0.12378394603729248; +363.4772644042969, 0.12417882680892944; +363.5772705078125, 0.12506544589996338; +363.67724609375, 0.12495368719100952; +363.7772521972656, 0.12336671352386475; +363.87725830078125, 0.12119114398956299; +363.97723388671875, 0.11993199586868286; +364.0772399902344, 0.12055784463882446; +364.1772155761719, 0.12240558862686157; +364.2772216796875, 0.12509524822235107; +364.3772277832031, 0.12838095426559448; +364.4772033691406, 0.13127923011779785; +364.57720947265625, 0.1328587532043457; +364.67718505859375, 0.13174861669540405; +364.7771911621094, 0.12867897748947144; +364.877197265625, 0.12505054473876953; +364.9771728515625, 0.12288987636566162; +365.0771789550781, 0.12277811765670776; +365.1771545410156, 0.12328475713729858; +365.27716064453125, 0.12335926294326782; +365.37713623046875, 0.1226961612701416; +365.4771423339844, 0.12250244617462158; +365.5771484375, 0.12321770191192627; +365.6771240234375, 0.12446194887161255; +365.7771301269531, 0.12572109699249268; +365.8771057128906, 0.12684613466262817; +365.97711181640625, 0.1279786229133606; +366.0771179199219, 0.12841075658798218; +366.1770935058594, 0.1270771026611328; +366.277099609375, 0.12418627738952637; +366.3770751953125, 0.12201070785522461; +366.4770812988281, 0.12201070785522461; +366.57708740234375, 0.12362748384475708; +366.67706298828125, 0.12461841106414795; +366.7770690917969, 0.12381374835968018; +366.8770446777344, 0.12270361185073853; +366.97705078125, 0.12183189392089844; +367.0770568847656, 0.12066960334777832; +367.1770324707031, 0.11868774890899658; +367.27703857421875, 0.11757016181945801; +367.37701416015625, 0.11877715587615967; +367.4770202636719, 0.1198798418045044; +367.5770263671875, 0.11943280696868896; +367.677001953125, 0.1185387372970581; +367.7770080566406, 0.1190677285194397; +367.8769836425781, 0.1200065016746521; +367.97698974609375, 0.12024492025375366; +368.0769958496094, 0.12117624282836914; +368.1769714355469, 0.12323260307312012; +368.2769775390625, 0.12474507093429565; +368.376953125, 0.12455880641937256; +368.4769592285156, 0.12351572513580322; +368.57696533203125, 0.12293457984924316; +368.67694091796875, 0.12308359146118164; +368.7769470214844, 0.123634934425354; +368.8769226074219, 0.1255124807357788; +368.9769287109375, 0.12838095426559448; +369.0769348144531, 0.13134628534317017; +369.1769104003906, 0.1326426863670349; +369.27691650390625, 0.13142824172973633; +369.37689208984375, 0.12937188148498535; +369.4768981933594, 0.1264438033103943; +369.5768737792969, 0.12333691120147705; +369.6768798828125, 0.1216307282447815; +369.7768859863281, 0.12259930372238159; +369.8768615722656, 0.12589991092681885; +369.97686767578125, 0.12856721878051758; +370.07684326171875, 0.13027340173721313; +370.1768493652344, 0.13130903244018555; +370.27685546875, 0.13059377670288086; +370.3768310546875, 0.12785941362380981; +370.4768371582031, 0.12452155351638794; +370.5768127441406, 0.12242794036865234; +370.67681884765625, 0.12221932411193848; +370.7768249511719, 0.12274086475372314; +370.8768005371094, 0.12375414371490479; +370.976806640625, 0.1253187656402588; +371.0767822265625, 0.1270100474357605; +371.1767883300781, 0.12890994548797607; +371.27679443359375, 0.12918561697006226; +371.37677001953125, 0.1282915472984314; +371.4767761230469, 0.12848526239395142; +371.5767517089844, 0.13008713722229004; +371.6767578125, 0.13242661952972412; +371.7767639160156, 0.1340806484222412; +371.8767395019531, 0.1365169882774353; +371.97674560546875, 0.139579176902771; +372.07672119140625, 0.14072656631469727; +372.1767272949219, 0.13991445302963257; +372.2767333984375, 0.1382008194923401; +372.376708984375, 0.1362636685371399; +372.4767150878906, 0.1345127820968628; +372.5766906738281, 0.13339519500732422; +372.67669677734375, 0.13358145952224731; +372.7767028808594, 0.13447552919387817; +372.8766784667969, 0.13507157564163208; +372.9766845703125, 0.1361072063446045; +373.07666015625, 0.13693422079086304; +373.1766662597656, 0.13742595911026; +373.27667236328125, 0.13786554336547852; +373.37664794921875, 0.1382976770401001; +373.4766540527344, 0.13887882232666016; +373.5766296386719, 0.1392960548400879; +373.6766357421875, 0.1397356390953064; +373.776611328125, 0.1404285430908203; +373.8766174316406, 0.14078617095947266; +373.97662353515625, 0.14100223779678345; +374.07659912109375, 0.1415833830833435; +374.1766052246094, 0.14261901378631592; +374.2765808105469, 0.14354288578033447; +374.3765869140625, 0.1435801386833191; +374.4765930175781, 0.14321506023406982; +374.5765686035156, 0.14301389455795288; +374.67657470703125, 0.14340132474899292; +374.77655029296875, 0.14456361532211304; +374.8765563964844, 0.14612078666687012; +374.9765625, 0.1479014754295349; +375.0765380859375, 0.14927983283996582; +375.1765441894531, 0.1499280333518982; +375.2765197753906, 0.14954805374145508; +375.37652587890625, 0.14781951904296875; +375.4765319824219, 0.14594197273254395; +375.5765075683594, 0.14477968215942383; +375.676513671875, 0.14527887105941772; +375.7764892578125, 0.14700740575790405; +375.8764953613281, 0.14979392290115356; +375.97650146484375, 0.1539960503578186; +376.07647705078125, 0.15857070684432983; +376.1764831542969, 0.1618117094039917; +376.2764587402344, 0.16359984874725342; +376.37646484375, 0.1653134822845459; +376.4764709472656, 0.16704201698303223; +376.5764465332031, 0.16798824071884155; +376.67645263671875, 0.16865134239196777; +376.77642822265625, 0.1701265573501587; +376.8764343261719, 0.17132610082626343; +376.9764404296875, 0.1711323857307434; +377.076416015625, 0.17038732767105103; +377.1764221191406, 0.16977638006210327; +377.2763977050781, 0.16863644123077393; +377.37640380859375, 0.16625970602035522; +377.47637939453125, 0.1645311713218689; +377.5763854980469, 0.16448646783828735; +377.6763916015625, 0.16441196203231812; +377.7763671875, 0.16285479068756104; +377.8763732910156, 0.15991926193237305; +377.9763488769531, 0.15769898891448975; +378.07635498046875, 0.15648454427719116; +378.1763610839844, 0.1552775502204895; +378.2763366699219, 0.154249370098114; +378.3763427734375, 0.154249370098114; +378.476318359375, 0.1565888524055481; +378.5763244628906, 0.16049295663833618; +378.67633056640625, 0.16430765390396118; +378.77630615234375, 0.16767531633377075; +378.8763122558594, 0.17102807760238647; +378.9762878417969, 0.17365813255310059; +379.0762939453125, 0.17496943473815918; +379.1763000488281, 0.17592310905456543; +379.2762756347656, 0.1777559518814087; +379.37628173828125, 0.17981231212615967; +379.47625732421875, 0.1799464225769043; +379.5762634277344, 0.17885863780975342; +379.67626953125, 0.178508460521698; +379.7762451171875, 0.1789182424545288; +379.8762512207031, 0.17846375703811646; +379.9762268066406, 0.17718970775604248; +380.07623291015625, 0.17783045768737793; +380.1762390136719, 0.18224865198135376; +380.2762145996094, 0.1879185438156128; +380.376220703125, 0.19155442714691162; +380.4761962890625, 0.19293278455734253; +380.5762023925781, 0.19330531358718872; +380.67620849609375, 0.19260495901107788; +380.77618408203125, 0.18946826457977295; +380.8761901855469, 0.1847594976425171; +380.9761657714844, 0.1810714602470398; +381.076171875, 0.17942488193511963; +381.1761779785156, 0.17934292554855347; +381.2761535644531, 0.1800432801246643; +381.37615966796875, 0.18177926540374756; +381.47613525390625, 0.18449127674102783; +381.5761413574219, 0.18721073865890503; +381.6761169433594, 0.1895129680633545; +381.776123046875, 0.19163638353347778; +381.8761291503906, 0.19372999668121338; +381.9761047363281, 0.19478797912597656; +382.07611083984375, 0.19481033086776733; +382.17608642578125, 0.19446760416030884; +382.2760925292969, 0.1938343048095703; +382.3760986328125, 0.19275397062301636; +382.47607421875, 0.1918897032737732; +382.5760803222656, 0.1918897032737732; +382.6760559082031, 0.19152462482452393; +382.77606201171875, 0.19044429063796997; +382.8760681152344, 0.18978118896484375; +382.9760437011719, 0.18967688083648682; +383.0760498046875, 0.18943846225738525; +383.176025390625, 0.18915534019470215; +383.2760314941406, 0.19035488367080688; +383.37603759765625, 0.19273161888122559; +383.47601318359375, 0.19463896751403809; +383.5760192871094, 0.19618868827819824; +383.6759948730469, 0.19774585962295532; +383.7760009765625, 0.1991167664527893; +383.8760070800781, 0.1993030309677124; +383.9759826660156, 0.19797682762145996; +384.07598876953125, 0.19602477550506592; +384.17596435546875, 0.1927390694618225; +384.2759704589844, 0.18828362226486206; +384.3759765625, 0.18322467803955078; +384.4759521484375, 0.17896294593811035; +384.5759582519531, 0.17711520195007324; +384.6759338378906, 0.17689913511276245; +384.77593994140625, 0.1785680651664734; +384.8759460449219, 0.18158555030822754; +384.9759216308594, 0.18575042486190796; +385.075927734375, 0.1895129680633545; +385.1759033203125, 0.19140541553497314; +385.2759094238281, 0.19235163927078247; +385.37591552734375, 0.19305944442749023; +385.47589111328125, 0.19406527280807495; +385.5758972167969, 0.19485503435134888; +385.6758728027344, 0.19536912441253662; +385.77587890625, 0.19556283950805664; +385.8758544921875, 0.19516050815582275; +385.9758605957031, 0.19437819719314575; +386.07586669921875, 0.19269436597824097; +386.17584228515625, 0.19040703773498535; +386.2758483886719, 0.1881718635559082; +386.3758239746094, 0.18669664859771729; +386.475830078125, 0.18531829118728638; +386.5758361816406, 0.18329918384552002; +386.6758117675781, 0.18147379159927368; +386.77581787109375, 0.1796931028366089; +386.87579345703125, 0.17793476581573486; +386.9757995605469, 0.17610937356948853; +387.0758056640625, 0.17672032117843628; +387.17578125, 0.1802295446395874; +387.2757873535156, 0.18408894538879395; +387.3757629394531, 0.18637627363204956; +387.47576904296875, 0.18747150897979736; +387.5757751464844, 0.18884241580963135; +387.6757507324219, 0.1886710524559021; +387.7757568359375, 0.18519163131713867; +387.875732421875, 0.18040835857391357; +387.9757385253906, 0.17710775136947632; +388.07574462890625, 0.17534196376800537; +388.17572021484375, 0.17355382442474365; +388.2757263183594, 0.17143785953521729; +388.3757019042969, 0.17051398754119873; +388.4757080078125, 0.17101317644119263; +388.5757141113281, 0.17227232456207275; +388.6756896972656, 0.17393380403518677; +388.77569580078125, 0.1756623387336731; +388.87567138671875, 0.17751753330230713; +388.9756774902344, 0.1786649227142334; +389.07568359375, 0.17811357975006104; +389.1756591796875, 0.17677992582321167; +389.2756652832031, 0.17584115266799927; +389.3756408691406, 0.17610937356948853; +389.47564697265625, 0.17686933279037476; +389.5756530761719, 0.17833709716796875; +389.6756286621094, 0.180758535861969; +389.775634765625, 0.1828521490097046; +389.8756103515625, 0.1837611198425293; +389.9756164550781, 0.18312036991119385; +390.0755920410156, 0.18124282360076904; +390.17559814453125, 0.17757713794708252; +390.2756042480469, 0.1730397343635559; +390.3755798339844, 0.16833096742630005; +390.4755859375, 0.16395002603530884; +390.5755615234375, 0.15964359045028687; +390.6755676269531, 0.15713274478912354; +390.77557373046875, 0.15795230865478516; +390.87554931640625, 0.16055256128311157; +390.9755554199219, 0.16316771507263184; +391.0755310058594, 0.1639053225517273; +391.175537109375, 0.1641884446144104; +391.2755432128906, 0.1640617847442627; +391.3755187988281, 0.16308575868606567; +391.47552490234375, 0.1613423228263855; +391.57550048828125, 0.1597478985786438; +391.6755065917969, 0.16019493341445923; +391.7755126953125, 0.1614987850189209; +391.87548828125, 0.16219913959503174; +391.9754943847656, 0.16154348850250244; +392.0754699707031, 0.15985965728759766; +392.17547607421875, 0.15835464000701904; +392.2754821777344, 0.15667825937271118; +392.3754577636719, 0.1551806926727295; +392.4754638671875, 0.15285611152648926; +392.575439453125, 0.1502782106399536; +392.6754455566406, 0.1493319869041443; +392.77545166015625, 0.1491829752922058; +392.87542724609375, 0.148676335811615; +392.9754333496094, 0.14792382717132568; +393.0754089355469, 0.14927983283996582; +393.1754150390625, 0.15173107385635376; +393.2754211425781, 0.15216320753097534; +393.3753967285156, 0.1510828733444214; +393.47540283203125, 0.15044957399368286; +393.57537841796875, 0.15030056238174438; +393.6753845214844, 0.1491755247116089; +393.775390625, 0.1472756266593933; +393.8753662109375, 0.14568865299224854; +393.9753723144531, 0.14426559209823608; +394.0753479003906, 0.14314055442810059; +394.17535400390625, 0.1425817608833313; +394.27532958984375, 0.14254450798034668; +394.3753356933594, 0.14391541481018066; +394.475341796875, 0.1477748155593872; +394.5753173828125, 0.15275925397872925; +394.6753234863281, 0.15573203563690186; +394.7752990722656, 0.15528500080108643; +394.87530517578125, 0.15267729759216309; +394.9753112792969, 0.14895200729370117; +395.0752868652344, 0.1439303159713745; +395.17529296875, 0.13924390077590942; +395.2752685546875, 0.13734400272369385; +395.3752746582031, 0.13806670904159546; +395.47528076171875, 0.13934820890426636; +395.57525634765625, 0.13981014490127563; +395.6752624511719, 0.13925880193710327; +395.7752380371094, 0.1365765929222107; +395.875244140625, 0.13108551502227783; +395.9752502441406, 0.12505054473876953; +396.0752258300781, 0.12119859457015991; +396.17523193359375, 0.11887401342391968; +396.27520751953125, 0.11777132749557495; +396.3752136230469, 0.11807680130004883; +396.4752197265625, 0.11940300464630127; +396.5751953125, 0.11996179819107056; +396.6752014160156, 0.11830776929855347; +396.7751770019531, 0.11586397886276245; +396.87518310546875, 0.1125633716583252; +396.9751892089844, 0.10869652032852173; +397.0751647949219, 0.1047477126121521; +397.1751708984375, 0.10125339031219482; +397.275146484375, 0.09810179471969604; +397.3751525878906, 0.09547919034957886; +397.47515869140625, 0.09465217590332031; +397.57513427734375, 0.09556114673614502; +397.6751403808594, 0.09739398956298828; +397.7751159667969, 0.0985562801361084; +397.8751220703125, 0.0988990068435669; +397.97509765625, 0.09829550981521606; +398.0751037597656, 0.09582191705703735; +398.17510986328125, 0.09137392044067383; +398.27508544921875, 0.08561462163925171; +398.3750915527344, 0.08022040128707886; +398.4750671386719, 0.07577240467071533; +398.5750732421875, 0.07158517837524414; +398.6750793457031, 0.06793439388275146; +398.7750549316406, 0.06527453660964966; +398.87506103515625, 0.06323307752609253; +398.97503662109375, 0.06152689456939697; +399.0750427246094, 0.059798359870910645; +399.175048828125, 0.05817413330078125; +399.2750244140625, 0.05679577589035034; +399.3750305175781, 0.05529075860977173; +399.4750061035156, 0.05435943603515625; +399.57501220703125, 0.053726136684417725; +399.6750183105469, 0.05342066287994385; +399.7749938964844, 0.05344301462173462; +399.875, 0.05344301462173462; +399.9749755859375, 0.053822994232177734; +400.0749816894531, 0.05369633436203003; +400.17498779296875, 0.05320459604263306; +400.27496337890625, 0.05263090133666992; +400.3749694824219, 0.05278736352920532; +400.4749450683594, 0.05316734313964844; +400.574951171875, 0.05310773849487305; +400.6749572753906, 0.052616000175476074; +400.7749328613281, 0.052288174629211426; +400.87493896484375, 0.052191317081451416; +400.97491455078125, 0.051856040954589844; +401.0749206542969, 0.05093216896057129; +401.1749267578125, 0.050030648708343506; +401.27490234375, 0.05083531141281128; +401.3749084472656, 0.05272030830383301; +401.4748840332031, 0.05377084016799927; +401.57489013671875, 0.05217641592025757; +401.6748962402344, 0.04941225051879883; +401.7748718261719, 0.046312808990478516; +401.8748779296875, 0.04203617572784424; +401.974853515625, 0.03653764724731445; +402.0748596191406, 0.031657516956329346; +402.1748352050781, 0.029139220714569092; +402.27484130859375, 0.028930604457855225; +402.3748474121094, 0.02995133399963379; +402.4748229980469, 0.03138929605484009; +402.5748291015625, 0.032357871532440186; +402.6748046875, 0.03236532211303711; +402.7748107910156, 0.031501054763793945; +402.87481689453125, 0.02981722354888916; +402.97479248046875, 0.02699345350265503; +403.0747985839844, 0.02333521842956543; +403.1747741699219, 0.019729137420654297; +403.2747802734375, 0.016771256923675537; +403.3747863769531, 0.01481175422668457; +403.4747619628906, 0.0136643648147583; +403.57476806640625, 0.013440847396850586; +403.67474365234375, 0.013805925846099854; +403.7747497558594, 0.014953315258026123; +403.874755859375, 0.016205012798309326; +403.9747314453125, 0.016167759895324707; +404.0747375488281, 0.014610588550567627; +404.1747131347656, 0.012822449207305908; +404.27471923828125, 0.012375414371490479; +404.3747253417969, 0.012643635272979736; +404.4747009277344, 0.01243501901626587; +404.57470703125, 0.01224130392074585; +404.6746826171875, 0.012949109077453613; +404.7746887207031, 0.014573335647583008; +404.87469482421875, 0.015333294868469238; +404.97467041015625, 0.014744699001312256; +405.0746765136719, 0.014394521713256836; +405.1746520996094, 0.01586228609085083; +405.274658203125, 0.01798570156097412; +405.3746643066406, 0.01837313175201416; +405.4746398925781, 0.0166967511177063; +405.57464599609375, 0.014781951904296875; +405.67462158203125, 0.013634562492370605; +405.7746276855469, 0.01185387372970581; +405.8746337890625, 0.010013580322265625; +405.974609375, 0.00867992639541626; +406.0746154785156, 0.008530914783477783; +406.1745910644531, 0.008225440979003906; +406.27459716796875, 0.007688999176025391; +406.37457275390625, 0.007718801498413086; +406.4745788574219, 0.007517635822296143; +406.5745849609375, 0.007703900337219238; +406.674560546875, 0.008672475814819336; +406.7745666503906, 0.01195073127746582; +406.8745422363281, 0.015817582607269287; +406.97454833984375, 0.01796334981918335; +407.0745544433594, 0.018730759620666504; +407.1745300292969, 0.01952052116394043; +407.2745361328125, 0.021494925022125244; +407.37451171875, 0.02329796552658081; +407.4745178222656, 0.025197863578796387; +407.57452392578125, 0.02863258123397827; +407.67449951171875, 0.03276020288467407; +407.7745056152344, 0.03521144390106201; +407.8744812011719, 0.03486126661300659; +407.9744873046875, 0.031851232051849365; +408.0744934082031, 0.027291476726531982; +408.1744689941406, 0.0227317214012146; +408.27447509765625, 0.020138919353485107; +408.37445068359375, 0.01919269561767578; +408.4744567871094, 0.017993152141571045; +408.574462890625, 0.01773238182067871; +408.6744384765625, 0.01936405897140503; +408.7744445800781, 0.021569430828094482; +408.8744201660156, 0.02281367778778076; +408.97442626953125, 0.02396106719970703; +409.0744323730469, 0.026747584342956543; +409.1744079589844, 0.029452145099639893; +409.2744140625, 0.030055642127990723; +409.3743896484375, 0.02921372652053833; +409.4743957519531, 0.02777576446533203; +409.57440185546875, 0.026188790798187256; +409.67437744140625, 0.02477318048477173; +409.7743835449219, 0.02374500036239624; +409.8743591308594, 0.023208558559417725; +409.974365234375, 0.022716820240020752; +410.0743713378906, 0.02296268939971924; +410.1743469238281, 0.025063753128051758; +410.27435302734375, 0.02810359001159668; +410.37432861328125, 0.03183633089065552; +410.4743347167969, 0.03573298454284668; +410.5743103027344, 0.039033591747283936; +410.67431640625, 0.0418052077293396; +410.7743225097656, 0.043138861656188965; +410.8742980957031, 0.043526291847229004; +410.97430419921875, 0.04286319017410278; +411.07427978515625, 0.0425875186920166; +411.1742858886719, 0.043742358684539795; +411.2742919921875, 0.0444948673248291; +411.374267578125, 0.04369765520095825; +411.4742736816406, 0.041522085666656494; +411.5742492675781, 0.03970414400100708; +411.67425537109375, 0.038661062717437744; +411.7742614746094, 0.037789344787597656; +411.8742370605469, 0.037282705307006836; +411.9742431640625, 0.038489699363708496; +412.07421875, 0.041253864765167236; +412.1742248535156, 0.04460662603378296; +412.27423095703125, 0.04669278860092163; +412.37420654296875, 0.047869980335235596; +412.4742126464844, 0.0491216778755188; +412.5741882324219, 0.05061924457550049; +412.6741943359375, 0.0524669885635376; +412.7742004394531, 0.05441159009933472; +412.8741760253906, 0.0567510724067688; +412.97418212890625, 0.058747828006744385; +413.07415771484375, 0.06064027547836304; +413.1741638183594, 0.06189197301864624; +413.274169921875, 0.062346458435058594; +413.3741455078125, 0.061981379985809326; +413.4741516113281, 0.06160140037536621; +413.5741271972656, 0.06254017353057861; +413.67413330078125, 0.06426125764846802; +413.7741394042969, 0.06629526615142822; +413.8741149902344, 0.06826221942901611; +413.97412109375, 0.06948411464691162; +414.0740966796875, 0.069446861743927; +414.1741027832031, 0.06700307130813599; +414.2740783691406, 0.06292015314102173; +414.37408447265625, 0.05872547626495361; +414.4740905761719, 0.05555152893066406; +414.5740661621094, 0.05402415990829468; +414.674072265625, 0.053025782108306885; +414.7740478515625, 0.05184859037399292; +414.8740539550781, 0.051081180572509766; +414.97406005859375, 0.05159527063369751; +415.07403564453125, 0.05386769771575928; +415.1740417480469, 0.05682557821273804; +415.2740173339844, 0.06000697612762451; +415.3740234375, 0.06307661533355713; +415.4740295410156, 0.06522983312606812; +415.5740051269531, 0.06590038537979126; +415.67401123046875, 0.06495416164398193; +415.77398681640625, 0.06391853094100952; +415.8739929199219, 0.06467103958129883; +415.9739990234375, 0.06814301013946533; +416.073974609375, 0.07272511720657349; +416.1739807128906, 0.0758245587348938; +416.2739562988281, 0.0762641429901123; +416.37396240234375, 0.0745132565498352; +416.4739685058594, 0.07152557373046875; +416.5739440917969, 0.06843358278274536; +416.6739501953125, 0.06619840860366821; +416.77392578125, 0.065632164478302; +416.8739318847656, 0.06762146949768066; +416.97393798828125, 0.07248669862747192; +417.07391357421875, 0.0791698694229126; +417.1739196777344, 0.0851750373840332; +417.2738952636719, 0.08863210678100586; +417.3739013671875, 0.08910894393920898; +417.4739074707031, 0.08711963891983032; +417.5738830566406, 0.08425116539001465; +417.67388916015625, 0.08203089237213135; +417.77386474609375, 0.08102506399154663; +417.8738708496094, 0.08083879947662354; +417.973876953125, 0.0821724534034729; +418.0738525390625, 0.0855475664138794; +418.1738586425781, 0.08960813283920288; +418.2738342285156, 0.09118765592575073; +418.37384033203125, 0.08969753980636597; +418.47381591796875, 0.08781999349594116; +418.5738220214844, 0.08726119995117188; +418.673828125, 0.08706748485565186; +418.7738037109375, 0.08556246757507324; +418.8738098144531, 0.08406490087509155; +418.9737854003906, 0.08372962474822998; +419.07379150390625, 0.08437037467956543; +419.1737976074219, 0.08494406938552856; +419.2737731933594, 0.08524954319000244; +419.373779296875, 0.08650869131088257; +419.4737548828125, 0.08872896432876587; +419.5737609863281, 0.09212642908096313; +419.67376708984375, 0.09593367576599121; +419.77374267578125, 0.09939074516296387; +419.8737487792969, 0.1017153263092041; +419.9737243652344, 0.10179728269577026; +420.07373046875, 0.0998377799987793; +420.1737365722656, 0.09673088788986206; +420.2737121582031, 0.0935867428779602; +420.37371826171875, 0.09045004844665527; +420.47369384765625, 0.08733570575714111; +420.5736999511719, 0.08530169725418091; +420.6737060546875, 0.08522719144821167; +420.773681640625, 0.08659064769744873; +420.8736877441406, 0.0878944993019104; +420.9736633300781, 0.08873641490936279; +421.07366943359375, 0.08860975503921509; +421.1736755371094, 0.08749961853027344; +421.2736511230469, 0.08704513311386108; +421.3736572265625, 0.08819997310638428; +421.4736328125, 0.09033083915710449; +421.5736389160156, 0.09182840585708618; +421.67364501953125, 0.09397417306900024; +421.77362060546875, 0.09671598672866821; +421.8736267089844, 0.0969618558883667; +421.9736022949219, 0.09335577487945557; +422.0736083984375, 0.08812546730041504; +422.1736145019531, 0.08322298526763916; +422.2735900878906, 0.07816404104232788; +422.37359619140625, 0.07290393114089966; +422.47357177734375, 0.07004290819168091; +422.5735778808594, 0.07016211748123169; +422.6735534667969, 0.07150322198867798; +422.7735595703125, 0.07332116365432739; +422.8735656738281, 0.07580965757369995; +422.9735412597656, 0.07911026477813721; +423.07354736328125, 0.08148699998855591; +423.17352294921875, 0.08223205804824829; +423.2735290527344, 0.08188188076019287; +423.37353515625, 0.08232146501541138; +423.4735107421875, 0.08363276720046997; +423.5735168457031, 0.08475780487060547; +423.6734924316406, 0.08441507816314697; +423.77349853515625, 0.0836402177810669; +423.8735046386719, 0.08359551429748535; +423.9734802246094, 0.08333474397659302; +424.073486328125, 0.08189678192138672; +424.1734619140625, 0.0806078314781189; +424.2734680175781, 0.08152425289154053; +424.37347412109375, 0.0845491886138916; +424.47344970703125, 0.08825957775115967; +424.5734558105469, 0.09151548147201538; +424.6734313964844, 0.09448826313018799; +424.7734375, 0.09632855653762817; +424.8734436035156, 0.09590387344360352; +424.9734191894531, 0.09315460920333862; +425.07342529296875, 0.08953362703323364; +425.17340087890625, 0.08694827556610107; +425.2734069824219, 0.0859871506690979; +425.3734130859375, 0.0861436128616333; +425.473388671875, 0.08784979581832886; +425.5733947753906, 0.09075552225112915; +425.6733703613281, 0.09400397539138794; +425.77337646484375, 0.09635090827941895; +425.8733825683594, 0.0979006290435791; +425.9733581542969, 0.10005384683609009; +426.0733642578125, 0.10313093662261963; +426.17333984375, 0.10591745376586914; +426.2733459472656, 0.10750442743301392; +426.37335205078125, 0.10842829942703247; +426.47332763671875, 0.10918080806732178; +426.5733337402344, 0.10854750871658325; +426.6733093261719, 0.10491162538528442; +426.7733154296875, 0.09925663471221924; +426.873291015625, 0.09382516145706177; +426.9732971191406, 0.08971989154815674; +427.07330322265625, 0.0859871506690979; +427.17327880859375, 0.08231401443481445; +427.2732849121094, 0.07937848567962646; +427.3732604980469, 0.07795542478561401; +427.4732666015625, 0.0774487853050232; +427.5732727050781, 0.07667392492294312; +427.6732482910156, 0.07627159357070923; +427.77325439453125, 0.07682293653488159; +427.87322998046875, 0.07873028516769409; +427.9732360839844, 0.08048862218856812; +428.0732421875, 0.08185207843780518; +428.1732177734375, 0.08374452590942383; +428.2732238769531, 0.08618086576461792; +428.3731994628906, 0.08843094110488892; +428.47320556640625, 0.0896453857421875; +428.5732116699219, 0.0907406210899353; +428.6731872558594, 0.09133666753768921; +428.773193359375, 0.09040534496307373; +428.8731689453125, 0.08767843246459961; +428.9731750488281, 0.08544325828552246; +429.07318115234375, 0.08483231067657471; +429.17315673828125, 0.08533895015716553; +429.2731628417969, 0.08656084537506104; +429.3731384277344, 0.088520348072052; +429.47314453125, 0.0917389988899231; +429.5731506347656, 0.09478628635406494; +429.6731262207031, 0.09775161743164062; +429.77313232421875, 0.10110437870025635; +429.87310791015625, 0.10381639003753662; +429.9731140136719, 0.10564178228378296; +430.0731201171875, 0.10637938976287842; +430.173095703125, 0.10652095079421997; +430.2731018066406, 0.10574609041213989; +430.3730773925781, 0.1033097505569458; +430.47308349609375, 0.10159611701965332; +430.57305908203125, 0.10169297456741333; +430.6730651855469, 0.1031532883644104; +430.7730712890625, 0.1045912504196167; +430.873046875, 0.10397285223007202; +430.9730529785156, 0.10187923908233643; +431.0730285644531, 0.09753555059432983; +431.17303466796875, 0.09310990571975708; +431.2730407714844, 0.0902414321899414; +431.3730163574219, 0.08924305438995361; +431.4730224609375, 0.09010732173919678; +431.572998046875, 0.09285658597946167; +431.6730041503906, 0.09878724813461304; +431.77301025390625, 0.10491162538528442; +431.87298583984375, 0.1088753342628479; +431.9729919433594, 0.11086463928222656; +432.0729675292969, 0.11271238327026367; +432.1729736328125, 0.11374801397323608; +432.2729797363281, 0.11204183101654053; +432.3729553222656, 0.10867416858673096; +432.47296142578125, 0.10528415441513062; +432.57293701171875, 0.1025572419166565; +432.6729431152344, 0.10088086128234863; +432.77294921875, 0.10078400373458862; +432.8729248046875, 0.10169297456741333; +432.9729309082031, 0.10264664888381958; +433.0729064941406, 0.10295212268829346; +433.17291259765625, 0.10322034358978271; +433.2729187011719, 0.10364502668380737; +433.3728942871094, 0.10552257299423218; +433.472900390625, 0.11011213064193726; +433.5728759765625, 0.11618435382843018; +433.6728820800781, 0.12190639972686768; +433.77288818359375, 0.12566149234771729; +433.87286376953125, 0.12826919555664062; +433.9728698730469, 0.12980401515960693; +434.0728454589844, 0.12974441051483154; +434.1728515625, 0.12861937284469604; +434.2728576660156, 0.1272261142730713; +434.3728332519531, 0.1260116696357727; +434.47283935546875, 0.12351572513580322; +434.57281494140625, 0.11970102787017822; +434.6728210449219, 0.11615455150604248; +434.7727966308594, 0.11370331048965454; +434.872802734375, 0.11277943849563599; +434.9728088378906, 0.11364370584487915; +435.0727844238281, 0.11716783046722412; +435.17279052734375, 0.12179464101791382; +435.27276611328125, 0.12545287609100342; +435.3727722167969, 0.1275762915611267; +435.4727783203125, 0.1288875937461853; +435.57275390625, 0.12958794832229614; +435.6727600097656, 0.12964755296707153; +435.7727355957031, 0.12942403554916382; +435.87274169921875, 0.12927502393722534; +435.9727478027344, 0.1278519630432129; +436.0727233886719, 0.12483447790145874; +436.1727294921875, 0.12169033288955688; +436.272705078125, 0.11855363845825195; +436.3727111816406, 0.116005539894104; +436.47271728515625, 0.11426210403442383; +436.57269287109375, 0.11566281318664551; +436.6726989746094, 0.12038648128509521; +436.7726745605469, 0.12600421905517578; +436.8726806640625, 0.13109296560287476; +436.9726867675781, 0.13463199138641357; +437.0726623535156, 0.13642758131027222; +437.17266845703125, 0.13674050569534302; +437.27264404296875, 0.13642758131027222; +437.3726501464844, 0.1365169882774353; +437.47265625, 0.13687461614608765; +437.5726318359375, 0.13740360736846924; +437.6726379394531, 0.13899803161621094; +437.7726135253906, 0.14125555753707886; +437.87261962890625, 0.14238059520721436; +437.9726257324219, 0.141240656375885; +438.0726013183594, 0.13815611600875854; +438.172607421875, 0.13511627912521362; +438.2725830078125, 0.1329183578491211; +438.3725891113281, 0.13215839862823486; +438.47259521484375, 0.13308227062225342; +438.57257080078125, 0.13480335474014282; +438.6725769042969, 0.13741850852966309; +438.7725524902344, 0.14002621173858643; +438.87255859375, 0.14197826385498047; +438.9725341796875, 0.14238804578781128; +439.0725402832031, 0.14141201972961426; +439.17254638671875, 0.14112144708633423; +439.27252197265625, 0.14056265354156494; +439.3725280761719, 0.13847649097442627; +439.4725036621094, 0.1340806484222412; +439.572509765625, 0.12959539890289307; +439.6725158691406, 0.128038227558136; +439.7724914550781, 0.12877583503723145; +439.87249755859375, 0.13116002082824707; +439.97247314453125, 0.13427436351776123; +440.0724792480469, 0.13887137174606323; +440.1724853515625, 0.14384090900421143; +440.2724609375, 0.14667212963104248; +440.3724670410156, 0.14682114124298096; +440.4724426269531, 0.14582276344299316; +440.57244873046875, 0.14493614435195923; +440.6724548339844, 0.14322996139526367; +440.7724304199219, 0.13998150825500488; +440.8724365234375, 0.13619661331176758; +440.972412109375, 0.13378262519836426; +441.0724182128906, 0.13299286365509033; +441.17242431640625, 0.13363361358642578; +441.27239990234375, 0.1357942819595337; +441.3724060058594, 0.13909488916397095; +441.4723815917969, 0.14232099056243896; +441.5723876953125, 0.14369934797286987; +441.6723937988281, 0.14350563287734985; +441.7723693847656, 0.14349818229675293; +441.87237548828125, 0.1445487141609192; +441.97235107421875, 0.14671683311462402; +442.0723571777344, 0.14922022819519043; +442.17236328125, 0.151708722114563; +442.2723388671875, 0.1536831259727478; +442.3723449707031, 0.15428662300109863; +442.4723205566406, 0.153370201587677; +442.57232666015625, 0.15119463205337524; +442.6723327636719, 0.1490265130996704; +442.7723083496094, 0.14778971672058105; +442.872314453125, 0.14705955982208252; +442.9722900390625, 0.146619975566864; +443.0722961425781, 0.1463070511817932; +443.1722717285156, 0.14634430408477783; +443.27227783203125, 0.14763325452804565; +443.3722839355469, 0.15050917863845825; +443.4722595214844, 0.15414506196975708; +443.572265625, 0.15569478273391724; +443.6722412109375, 0.15494227409362793; +443.7722473144531, 0.1538693904876709; +443.87225341796875, 0.1521855592727661; +443.97222900390625, 0.14938414096832275; +444.0722351074219, 0.14634430408477783; +444.1722106933594, 0.1460239291191101; +444.272216796875, 0.14825165271759033; +444.3722229003906, 0.15056878328323364; +444.4721984863281, 0.15169382095336914; +444.57220458984375, 0.15162676572799683; +444.67218017578125, 0.15164166688919067; +444.7721862792969, 0.15304237604141235; +444.8721923828125, 0.15597790479660034; +444.97216796875, 0.15792250633239746; +445.0721740722656, 0.15830248594284058; +445.1721496582031, 0.1583397388458252; +445.27215576171875, 0.15833228826522827; +445.3721618652344, 0.15697628259658813; +445.4721374511719, 0.15415996313095093; +445.5721435546875, 0.15266239643096924; +445.672119140625, 0.1527443528175354; +445.7721252441406, 0.1531168818473816; +445.87213134765625, 0.1530870795249939; +445.97210693359375, 0.15278160572052002; +446.0721130371094, 0.15185773372650146; +446.1720886230469, 0.15075504779815674; +446.2720947265625, 0.15047192573547363; +446.3721008300781, 0.15111267566680908; +446.4720764160156, 0.15189498662948608; +446.57208251953125, 0.1527145504951477; +446.67205810546875, 0.15485286712646484; +446.7720642089844, 0.1573115587234497; +446.8720397949219, 0.1587793231010437; +446.9720458984375, 0.15904754400253296; +447.0720520019531, 0.15833228826522827; +447.1720275878906, 0.15638768672943115; +447.27203369140625, 0.15212595462799072; +447.37200927734375, 0.1470223069190979; +447.4720153808594, 0.14319270849227905; +447.572021484375, 0.14059245586395264; +447.6719970703125, 0.13908743858337402; +447.7720031738281, 0.13846904039382935; +447.8719787597656, 0.13978034257888794; +447.97198486328125, 0.14228373765945435; +448.0719909667969, 0.14501065015792847; +448.1719665527344, 0.14853477478027344; +448.27197265625, 0.15312433242797852; +448.3719482421875, 0.15845149755477905; +448.4719543457031, 0.1636222004890442; +448.57196044921875, 0.16767531633377075; +448.67193603515625, 0.17027556896209717; +448.7719421386719, 0.1709386706352234; +448.8719177246094, 0.1701638102531433; +448.971923828125, 0.16866624355316162; +449.0719299316406, 0.1668483018875122; +449.1719055175781, 0.16494840383529663; +449.27191162109375, 0.16235560178756714; +449.37188720703125, 0.15919655561447144; +449.4718933105469, 0.1552477478981018; +449.5718994140625, 0.15097856521606445; +449.671875, 0.14735758304595947; +449.7718811035156, 0.14499574899673462; +449.8718566894531, 0.1444295048713684; +449.97186279296875, 0.14522671699523926; +450.0718688964844, 0.14781951904296875; +450.1718444824219, 0.15135854482650757; +450.2718505859375, 0.15357881784439087; +450.371826171875, 0.15451759099960327; +450.4718322753906, 0.1553669571876526; +450.57183837890625, 0.15658140182495117; +450.67181396484375, 0.1568719744682312; +450.7718200683594, 0.15648454427719116; +450.8717956542969, 0.1565888524055481; +450.9718017578125, 0.15613436698913574; +451.07177734375, 0.1534298062324524; +451.1717834472656, 0.14968961477279663; +451.27178955078125, 0.14662742614746094; +451.37176513671875, 0.14500319957733154; +451.4717712402344, 0.1452043652534485; +451.5717468261719, 0.14835596084594727; +451.6717529296875, 0.15376508235931396; +451.7717590332031, 0.15848875045776367; +451.8717346191406, 0.16079097986221313; +451.97174072265625, 0.16113370656967163; +452.07171630859375, 0.16045570373535156; +452.1717224121094, 0.15863031148910522; +452.271728515625, 0.15672296285629272; +452.3717041015625, 0.15623122453689575; +452.4717102050781, 0.15826523303985596; +452.5716857910156, 0.16123056411743164; +452.67169189453125, 0.16379356384277344; +452.7716979980469, 0.16514211893081665; +452.8716735839844, 0.1649409532546997; +452.9716796875, 0.16397982835769653; +453.0716552734375, 0.16230344772338867; +453.1716613769531, 0.16014277935028076; +453.27166748046875, 0.15693902969360352; +453.37164306640625, 0.15380233526229858; +453.4716491699219, 0.15312433242797852; +453.5716247558594, 0.15508383512496948; +453.671630859375, 0.15844404697418213; +453.7716369628906, 0.16245990991592407; +453.8716125488281, 0.167161226272583; +453.97161865234375, 0.1721009612083435; +454.07159423828125, 0.17574429512023926; +454.1716003417969, 0.17699599266052246; +454.2716064453125, 0.17626583576202393; +454.37158203125, 0.17350167036056519; +454.4715881347656, 0.16958266496658325; +454.5715637207031, 0.16526132822036743; +454.67156982421875, 0.1611262559890747; +454.7715759277344, 0.15824288129806519; +454.8715515136719, 0.15695393085479736; +454.9715576171875, 0.15795975923538208; +455.071533203125, 0.1606270670890808; +455.1715393066406, 0.16345828771591187; +455.2715148925781, 0.16541779041290283; +455.37152099609375, 0.16579777002334595; +455.4715270996094, 0.16544759273529053; +455.5715026855469, 0.164717435836792; +455.6715087890625, 0.16341358423233032; +455.771484375, 0.16214698553085327; +455.8714904785156, 0.1613423228263855; +455.97149658203125, 0.16136467456817627; +456.07147216796875, 0.1612529158592224; +456.1714782714844, 0.16066431999206543; +456.2714538574219, 0.15970319509506226; +456.3714599609375, 0.15901774168014526; +456.4714660644531, 0.15839189291000366; +456.5714416503906, 0.1577809453010559; +456.67144775390625, 0.15754997730255127; +456.77142333984375, 0.15853345394134521; +456.8714294433594, 0.16106665134429932; +456.971435546875, 0.16371160745620728; +457.0714111328125, 0.1661926507949829; +457.1714172363281, 0.16880035400390625; +457.2713928222656, 0.17176568508148193; +457.37139892578125, 0.17395615577697754; +457.4714050292969, 0.1743808388710022; +457.5713806152344, 0.17383694648742676; +457.67138671875, 0.17318874597549438; +457.7713623046875, 0.1721009612083435; +457.8713684082031, 0.17081201076507568; +457.97137451171875, 0.16941875219345093; +458.07135009765625, 0.1682490110397339; +458.1713562011719, 0.167161226272583; +458.2713317871094, 0.16689300537109375; +458.371337890625, 0.16780942678451538; +458.4713439941406, 0.16892701387405396; +458.5713195800781, 0.16987323760986328; +458.67132568359375, 0.17105787992477417; +458.77130126953125, 0.1726001501083374; +458.8713073730469, 0.1731663942337036; +458.9713134765625, 0.17252564430236816; +459.0712890625, 0.17088651657104492; +459.1712951660156, 0.16883760690689087; +459.2712707519531, 0.1665055751800537; +459.37127685546875, 0.1643449068069458; +459.47125244140625, 0.1633092761039734; +459.5712585449219, 0.1634061336517334; +459.6712646484375, 0.16445666551589966; +459.771240234375, 0.1665055751800537; +459.8712463378906, 0.16985833644866943; +459.9712219238281, 0.1736953854560852; +460.07122802734375, 0.1766681671142578; +460.1712341308594, 0.17765909433364868; +460.2712097167969, 0.17689168453216553; +460.3712158203125, 0.17505139112472534; +460.47119140625, 0.1727268099784851; +460.5711975097656, 0.17052888870239258; +460.67120361328125, 0.16816705465316772; +460.77117919921875, 0.1659691333770752; +460.8711853027344, 0.164717435836792; +460.9711608886719, 0.16476213932037354; +461.0711669921875, 0.16541779041290283; +461.1711730957031, 0.16587227582931519; +461.2711486816406, 0.16605108976364136; +461.37115478515625, 0.16683340072631836; +461.47113037109375, 0.16863644123077393; +461.5711364746094, 0.1706629991531372; +461.671142578125, 0.1726001501083374; +461.7711181640625, 0.17464905977249146; +461.8711242675781, 0.1771003007888794; +461.9710998535156, 0.17917901277542114; +462.07110595703125, 0.17998367547988892; +462.1711120605469, 0.18014758825302124; +462.2710876464844, 0.17999857664108276; +462.37109375, 0.17952173948287964; +462.4710693359375, 0.17853081226348877; +462.5710754394531, 0.17757713794708252; +462.67108154296875, 0.17665326595306396; +462.77105712890625, 0.1754462718963623; +462.8710632324219, 0.17420202493667603; +462.9710388183594, 0.17334520816802979; +463.071044921875, 0.17320364713668823; +463.1710205078125, 0.17330050468444824; +463.2710266113281, 0.17296522855758667; +463.37103271484375, 0.17182528972625732; +463.47100830078125, 0.1705959439277649; +463.5710144042969, 0.16944855451583862; +463.6709899902344, 0.16880035400390625; +463.77099609375, 0.16858428716659546; +463.8710021972656, 0.16930699348449707; +463.9709777832031, 0.170975923538208; +464.07098388671875, 0.17195940017700195; +464.17095947265625, 0.17185509204864502; +464.2709655761719, 0.17098337411880493; +464.3709716796875, 0.17084181308746338; +464.470947265625, 0.17193704843521118; +464.5709533691406, 0.17318129539489746; +464.6709289550781, 0.17432868480682373; +464.77093505859375, 0.17555803060531616; +464.8709411621094, 0.17692148685455322; +464.9709167480469, 0.17764419317245483; +465.0709228515625, 0.1768544316291809; +465.1708984375, 0.17552822828292847; +465.2709045410156, 0.17464160919189453; +465.37091064453125, 0.1744478940963745; +465.47088623046875, 0.17442554235458374; +465.5708923339844, 0.17350167036056519; +465.6708679199219, 0.17189979553222656; +465.7708740234375, 0.170879065990448; +465.8708801269531, 0.17070025205612183; +465.9708557128906, 0.17070770263671875; +466.07086181640625, 0.17007440328598022; +466.17083740234375, 0.17007440328598022; +466.2708435058594, 0.1712515950202942; +466.370849609375, 0.1715347170829773; +466.4708251953125, 0.1698508858680725; +466.5708312988281, 0.16635656356811523; +466.6708068847656, 0.16282498836517334; +466.77081298828125, 0.1609399914741516; +466.8708190917969, 0.1609399914741516; +466.9707946777344, 0.161878764629364; +467.07080078125, 0.16236305236816406; +467.1707763671875, 0.16359984874725342; +467.2707824707031, 0.16654282808303833; +467.3707580566406, 0.16901642084121704; +467.47076416015625, 0.16949325799942017; +467.5707702636719, 0.16967952251434326; +467.6707458496094, 0.17201155424118042; +467.770751953125, 0.17546117305755615; +467.8707275390625, 0.17680972814559937; +467.9707336425781, 0.17596036195755005; +468.07073974609375, 0.17461925745010376; +468.17071533203125, 0.1741349697113037; +468.2707214355469, 0.17363578081130981; +468.3706970214844, 0.17229467630386353; +468.470703125, 0.17143785953521729; +468.5707092285156, 0.17135590314865112; +468.6706848144531, 0.1715049147605896; +468.77069091796875, 0.17070770263671875; +468.87066650390625, 0.16897916793823242; +468.9706726074219, 0.1674368977546692; +469.0706787109375, 0.16668438911437988; +469.170654296875, 0.16732513904571533; +469.2706604003906, 0.16835331916809082; +469.3706359863281, 0.16873329877853394; +469.47064208984375, 0.16907602548599243; +469.5706481933594, 0.17071515321731567; +469.6706237792969, 0.17337501049041748; +469.7706298828125, 0.17481297254562378; +469.87060546875, 0.1749172806739807; +469.9706115722656, 0.17458945512771606; +470.07061767578125, 0.17406046390533447; +470.17059326171875, 0.17182528972625732; +470.2705993652344, 0.16871094703674316; +470.3705749511719, 0.16739219427108765; +470.4705810546875, 0.16772747039794922; +470.5705871582031, 0.16804784536361694; +470.6705627441406, 0.16672909259796143; +470.77056884765625, 0.1646280288696289; +470.87054443359375, 0.16248971223831177; +470.9705505371094, 0.16054511070251465; +471.070556640625, 0.1602768898010254; +471.1705322265625, 0.16204267740249634; +471.2705383300781, 0.16555935144424438; +471.3705139160156, 0.1686885952949524; +471.47052001953125, 0.16938894987106323; +471.57049560546875, 0.16821175813674927; +471.6705017089844, 0.16661733388900757; +471.7705078125, 0.16595423221588135; +471.8704833984375, 0.16577541828155518; +471.9704895019531, 0.1660361886024475; +472.0704650878906, 0.16796588897705078; +472.17047119140625, 0.17058104276657104; +472.2704772949219, 0.17134100198745728; +472.3704528808594, 0.1705661416053772; +472.470458984375, 0.17013400793075562; +472.5704345703125, 0.17161667346954346; +472.6704406738281, 0.1735091209411621; +472.77044677734375, 0.17439574003219604; +472.87042236328125, 0.17457455396652222; +472.9704284667969, 0.17384439706802368; +473.0704040527344, 0.17318874597549438; +473.17041015625, 0.17350167036056519; +473.2704162597656, 0.17457455396652222; +473.3703918457031, 0.1759752631187439; +473.47039794921875, 0.17812848091125488; +473.57037353515625, 0.18081068992614746; +473.6703796386719, 0.1831650733947754; +473.7703857421875, 0.183984637260437; +473.870361328125, 0.18364191055297852; +473.9703674316406, 0.1832917332649231; +474.0703430175781, 0.18261373043060303; +474.17034912109375, 0.1819133758544922; +474.2703552246094, 0.1811981201171875; +474.3703308105469, 0.1802295446395874; +474.4703369140625, 0.17917901277542114; +474.5703125, 0.1778528094291687; +474.6703186035156, 0.1766979694366455; +474.77032470703125, 0.17593801021575928; +474.87030029296875, 0.1752302050590515; +474.9703063964844, 0.17430633306503296; +475.0702819824219, 0.17333030700683594; +475.1702880859375, 0.17274171113967896; +475.2702941894531, 0.1725703477859497; +475.3702697753906, 0.1722201704978943; +475.47027587890625, 0.1719444990158081; +475.57025146484375, 0.17277896404266357; +475.6702575683594, 0.17465651035308838; +475.7702331542969, 0.17657876014709473; +475.8702392578125, 0.1778826117515564; +475.9702453613281, 0.17873942852020264; +476.0702209472656, 0.17870962619781494; +476.17022705078125, 0.17754733562469482; +476.27020263671875, 0.17556548118591309; +476.3702087402344, 0.1734718680381775; +476.47021484375, 0.17171353101730347; +476.5701904296875, 0.1703202724456787; +476.6701965332031, 0.1699700951576233; +476.7701721191406, 0.17105042934417725; +476.87017822265625, 0.17308443784713745; +476.9701843261719, 0.1754462718963623; +477.0701599121094, 0.17720460891723633; +477.170166015625, 0.17808377742767334; +477.2701416015625, 0.17837435007095337; +477.3701477050781, 0.17771869897842407; +477.47015380859375, 0.17673522233963013; +477.57012939453125, 0.17608702182769775; +477.6701354980469, 0.17530471086502075; +477.7701110839844, 0.17417967319488525; +477.8701171875, 0.17261505126953125; +477.9701232910156, 0.17185509204864502; +478.0700988769531, 0.17198175191879272; +478.17010498046875, 0.17171353101730347; +478.27008056640625, 0.17121434211730957; +478.3700866699219, 0.17084181308746338; +478.4700927734375, 0.17089396715164185; +478.570068359375, 0.17104297876358032; +478.6700744628906, 0.17101317644119263; +478.7700500488281, 0.17217546701431274; +478.87005615234375, 0.1759156584739685; +478.9700622558594, 0.18104910850524902; +479.0700378417969, 0.18478929996490479; +479.1700439453125, 0.1853257417678833; +479.27001953125, 0.1835450530052185; +479.3700256347656, 0.18086284399032593; +479.47003173828125, 0.17701834440231323; +479.57000732421875, 0.17321854829788208; +479.6700134277344, 0.17117708921432495; +479.7699890136719, 0.17148256301879883; +479.8699951171875, 0.17376244068145752; +479.969970703125, 0.17565488815307617; +480.0699768066406, 0.17540901899337769; +480.16998291015625, 0.1722201704978943; +480.26995849609375, 0.16742944717407227; +480.3699645996094, 0.16365200281143188; +480.4699401855469, 0.16197562217712402; +480.5699462890625, 0.1622512936592102; +480.6699523925781, 0.16439706087112427; +480.7699279785156, 0.1676604151725769; +480.86993408203125, 0.17117708921432495; +480.96990966796875, 0.17349421977996826; +481.0699157714844, 0.17318874597549438; +481.169921875, 0.17129629850387573; +481.2698974609375, 0.17042458057403564; +481.3699035644531, 0.1723840832710266; +481.4698791503906, 0.17621368169784546; +481.56988525390625, 0.1795068383216858; +481.6698913574219, 0.18215924501419067; +481.7698669433594, 0.1845434308052063; +481.869873046875, 0.1856684684753418; +481.9698486328125, 0.1851394772529602; +482.0698547363281, 0.183790922164917; +482.16986083984375, 0.18426775932312012; +482.26983642578125, 0.18554925918579102; +482.3698425292969, 0.1857951283454895; +482.4698181152344, 0.18571317195892334; +482.56982421875, 0.18637627363204956; +482.6698303222656, 0.18874555826187134; +482.7698059082031, 0.1901760697364807; +482.86981201171875, 0.1897066831588745; +482.96978759765625, 0.18813461065292358; +483.0697937011719, 0.18547475337982178; +483.1697998046875, 0.18208473920822144; +483.269775390625, 0.17799437046051025; +483.3697814941406, 0.17512589693069458; +483.4697570800781, 0.17439574003219604; +483.56976318359375, 0.1754462718963623; +483.66973876953125, 0.17806142568588257; +483.7697448730469, 0.18233060836791992; +483.8697509765625, 0.18683075904846191; +483.9697265625, 0.18977373838424683; +484.0697326660156, 0.19106268882751465; +484.1697082519531, 0.19159168004989624; +484.26971435546875, 0.1913309097290039; +484.3697204589844, 0.18878281116485596; +484.4696960449219, 0.18524378538131714; +484.5697021484375, 0.18293410539627075; +484.669677734375, 0.1824498176574707; +484.7696838378906, 0.1833587884902954; +484.86968994140625, 0.18545985221862793; +484.96966552734375, 0.1886114478111267; +485.0696716308594, 0.19143521785736084; +485.1696472167969, 0.19269436597824097; +485.2696533203125, 0.19359588623046875; +485.3696594238281, 0.1943334937095642; +485.4696350097656, 0.1947954297065735; +485.56964111328125, 0.1943334937095642; +485.66961669921875, 0.19353628158569336; +485.7696228027344, 0.1931712031364441; +485.86962890625, 0.1926124095916748; +485.9696044921875, 0.19096583127975464; +486.0696105957031, 0.18755346536636353; +486.1695861816406, 0.1837015151977539; +486.26959228515625, 0.1798495650291443; +486.3695983886719, 0.1764744520187378; +486.4695739746094, 0.17401576042175293; +486.569580078125, 0.17455220222473145; +486.6695556640625, 0.17828494310379028; +486.7695617675781, 0.1839771866798401; +486.86956787109375, 0.1896992325782776; +486.96954345703125, 0.19356608390808105; +487.0695495605469, 0.19513815641403198; +487.1695251464844, 0.19428879022598267; +487.26953125, 0.1929253339767456; +487.3695373535156, 0.1918002963066101; +487.4695129394531, 0.19142776727676392; +487.56951904296875, 0.19212067127227783; +487.66949462890625, 0.19377470016479492; +487.7695007324219, 0.19546598196029663; +487.8694763183594, 0.19509345293045044; +487.969482421875, 0.19244104623794556; +488.0694885253906, 0.18855184316635132; +488.1694641113281, 0.1848861575126648; +488.26947021484375, 0.18212944269180298; +488.36944580078125, 0.18105655908584595; +488.4694519042969, 0.1821368932723999; +488.5694580078125, 0.18419325351715088; +488.66943359375, 0.18609315156936646; +488.7694396972656, 0.18687546253204346; +488.8694152832031, 0.18690526485443115; +488.96942138671875, 0.18592923879623413; +489.0694274902344, 0.1842007040977478; +489.1694030761719, 0.1830458641052246; +489.2694091796875, 0.18349289894104004; +489.369384765625, 0.18551945686340332; +489.4693908691406, 0.1871362328529358; +489.56939697265625, 0.18756836652755737; +489.66937255859375, 0.1867637038230896; +489.7693786621094, 0.1853257417678833; +489.8693542480469, 0.18293410539627075; +489.9693603515625, 0.1805424690246582; +490.0693664550781, 0.18025189638137817; +490.1693420410156, 0.1820400357246399; +490.26934814453125, 0.18440932035446167; +490.36932373046875, 0.18536299467086792; +490.4693298339844, 0.18724799156188965; +490.5693359375, 0.1903325319290161; +490.6693115234375, 0.1928284764289856; +490.7693176269531, 0.19428879022598267; +490.8692932128906, 0.19565969705581665; +490.96929931640625, 0.19843876361846924; +491.0693054199219, 0.19954144954681396; +491.1692810058594, 0.1981481909751892; +491.269287109375, 0.1962035894393921; +491.3692626953125, 0.1943334937095642; +491.4692687988281, 0.19240379333496094; +491.56927490234375, 0.1895129680633545; +491.66925048828125, 0.18686801195144653; +491.7692565917969, 0.18467754125595093; +491.8692321777344, 0.18130242824554443; +491.96923828125, 0.17764419317245483; +492.0692138671875, 0.17533451318740845; +492.1692199707031, 0.1755356788635254; +492.26922607421875, 0.17669051885604858; +492.36920166015625, 0.17739832401275635; +492.4692077636719, 0.17734616994857788; +492.5691833496094, 0.17590075731277466; +492.669189453125, 0.17318129539489746; +492.7691955566406, 0.16988813877105713; +492.8691711425781, 0.16804039478302002; +492.96917724609375, 0.16813725233078003; +493.06915283203125, 0.170096755027771; +493.1691589355469, 0.1727566123008728; +493.2691650390625, 0.176355242729187; +493.369140625, 0.18107891082763672; +493.4691467285156, 0.18616020679473877; +493.5691223144531, 0.19011646509170532; +493.66912841796875, 0.1920163631439209; +493.7691345214844, 0.19305944442749023; +493.8691101074219, 0.19261986017227173; +493.9691162109375, 0.18984079360961914; +494.069091796875, 0.18436461687088013; +494.1690979003906, 0.17843395471572876; +494.26910400390625, 0.17481297254562378; +494.36907958984375, 0.17388910055160522; +494.4690856933594, 0.17458945512771606; +494.5690612792969, 0.17542392015457153; +494.6690673828125, 0.17660856246948242; +494.7690734863281, 0.17889589071273804; +494.8690490722656, 0.18205493688583374; +494.96905517578125, 0.18511712551116943; +495.06903076171875, 0.18633157014846802; +495.1690368652344, 0.18578022718429565; +495.26904296875, 0.1846104860305786; +495.3690185546875, 0.18352270126342773; +495.4690246582031, 0.18142163753509521; +495.5690002441406, 0.17771869897842407; +495.66900634765625, 0.17461180686950684; +495.7690124511719, 0.17384439706802368; +495.8689880371094, 0.1750662922859192; +495.968994140625, 0.17671287059783936; +496.0689697265625, 0.1780986785888672; +496.1689758300781, 0.17980486154556274; +496.2689514160156, 0.1819208264350891; +496.36895751953125, 0.1837015151977539; +496.4689636230469, 0.1854151487350464; +496.5689392089844, 0.1874491572380066; +496.6689453125, 0.19047409296035767; +496.7689208984375, 0.19361823797225952; +496.8689270019531, 0.19580870866775513; +496.96893310546875, 0.19744783639907837; +497.06890869140625, 0.19837170839309692; +497.1689147949219, 0.19767135381698608; +497.2688903808594, 0.19531697034835815; +497.368896484375, 0.19262731075286865; +497.4689025878906, 0.19099563360214233; +497.5688781738281, 0.1909807324409485; +497.66888427734375, 0.19150227308273315; +497.76885986328125, 0.19221007823944092; +497.8688659667969, 0.1920759677886963; +497.9688720703125, 0.19081681966781616; +498.06884765625, 0.1886412501335144; +498.1688537597656, 0.1857280731201172; +498.2688293457031, 0.1828223466873169; +498.36883544921875, 0.1805722713470459; +498.4688415527344, 0.18003582954406738; +498.5688171386719, 0.1810118556022644; +498.6688232421875, 0.18204748630523682; +498.768798828125, 0.18220394849777222; +498.8688049316406, 0.18199533224105835; +498.96881103515625, 0.18228590488433838; +499.06878662109375, 0.1825094223022461; +499.1687927246094, 0.18314272165298462; +499.2687683105469, 0.18499791622161865; +499.3687744140625, 0.1873299479484558; +499.4687805175781, 0.1893267035484314; +499.5687561035156, 0.18997490406036377; +499.66876220703125, 0.18991529941558838; +499.76873779296875, 0.18863379955291748; +499.8687438964844, 0.18656998872756958; +499.9687194824219, 0.18563121557235718; +500.0687255859375, 0.18614530563354492; +500.1687316894531, 0.18762052059173584; +500.2687072753906, 0.18959492444992065; +500.36871337890625, 0.1926124095916748; +500.46868896484375, 0.19632279872894287; +500.5686950683594, 0.19807368516921997; +500.668701171875, 0.19713491201400757; +500.7686767578125, 0.19488483667373657; +500.8686828613281, 0.19281357526779175; +500.9686584472656, 0.19111484289169312; +501.06866455078125, 0.18930435180664062; +501.1686706542969, 0.18847733736038208; +501.2686462402344, 0.1887977123260498; +501.36865234375, 0.18990784883499146; +501.4686279296875, 0.19055604934692383; +501.5686340332031, 0.1899227499961853; +501.66864013671875, 0.18872320652008057; +501.76861572265625, 0.1884251832962036; +501.8686218261719, 0.18852949142456055; +501.9685974121094, 0.1873224973678589; +502.068603515625, 0.18493086099624634; +502.1686096191406, 0.18418580293655396; +502.2685852050781, 0.18512457609176636; +502.36859130859375, 0.18509477376937866; +502.46856689453125, 0.18364191055297852; +502.5685729980469, 0.18239766359329224; +502.6685791015625, 0.18221139907836914; +502.7685546875, 0.18149614334106445; +502.8685607910156, 0.1804828643798828; +502.9685363769531, 0.18068403005599976; +503.06854248046875, 0.1827627420425415; +503.1685485839844, 0.18684566020965576; +503.2685241699219, 0.19237399101257324; +503.3685302734375, 0.1974925398826599; +503.468505859375, 0.20051002502441406; +503.5685119628906, 0.20076334476470947; +503.66851806640625, 0.199146568775177; +503.76849365234375, 0.19590556621551514; +503.8684997558594, 0.19186735153198242; +503.9684753417969, 0.18912553787231445; +504.0684814453125, 0.18811970949172974; +504.16845703125, 0.1878589391708374; +504.2684631347656, 0.18734484910964966; +504.36846923828125, 0.18630176782608032; +504.46844482421875, 0.18446892499923706; +504.5684509277344, 0.1821368932723999; +504.6684265136719, 0.18122047185897827; +504.7684326171875, 0.18341094255447388; +504.8684387207031, 0.18758326768875122; +504.9684143066406, 0.19236654043197632; +505.06842041015625, 0.19674748182296753; +505.16839599609375, 0.19937008619308472; +505.2684020996094, 0.1991167664527893; +505.368408203125, 0.19632279872894287; +505.4683837890625, 0.1938343048095703; +505.5683898925781, 0.19291043281555176; +505.6683654785156, 0.19322335720062256; +505.76837158203125, 0.19452720880508423; +505.8683776855469, 0.1961737871170044; +505.9683532714844, 0.19791722297668457; +506.068359375, 0.19832700490951538; +506.1683349609375, 0.19781291484832764; +506.2683410644531, 0.196799635887146; +506.36834716796875, 0.19554048776626587; +506.46832275390625, 0.19416958093643188; +506.5683288574219, 0.1928582787513733; +506.6683044433594, 0.19255280494689941; +506.768310546875, 0.1925453543663025; +506.8683166503906, 0.19247829914093018; +506.9682922363281, 0.19232183694839478; +507.06829833984375, 0.19202381372451782; +507.16827392578125, 0.19124150276184082; +507.2682800292969, 0.18967688083648682; +507.3682861328125, 0.1883283257484436; +507.46826171875, 0.187605619430542; +507.5682678222656, 0.18615275621414185; +507.6682434082031, 0.18449872732162476; +507.76824951171875, 0.18334388732910156; +507.8682556152344, 0.1828521490097046; +507.9682312011719, 0.1820698380470276; +508.0682373046875, 0.18127262592315674; +508.168212890625, 0.18180906772613525; +508.2682189941406, 0.1824796199798584; +508.3681945800781, 0.18212944269180298; +508.46820068359375, 0.1801326870918274; +508.5682067871094, 0.17706304788589478; +508.6681823730469, 0.17389655113220215; +508.7681884765625, 0.17151981592178345; +508.8681640625, 0.171758234500885; +508.9681701660156, 0.17414987087249756; +509.06817626953125, 0.17777830362319946; +509.16815185546875, 0.18195807933807373; +509.2681579589844, 0.18546730279922485; +509.3681335449219, 0.18785148859024048; +509.4681396484375, 0.18774718046188354; +509.5681457519531, 0.18625706434249878; +509.6681213378906, 0.18516182899475098; +509.76812744140625, 0.18523633480072021; +509.86810302734375, 0.1857653260231018; +509.9681091308594, 0.18590688705444336; +510.068115234375, 0.18697232007980347; +510.1680908203125, 0.19018352031707764; +510.2680969238281, 0.19409507513046265; +510.3680725097656, 0.19643455743789673; +510.46807861328125, 0.1963302493095398; +510.5680847167969, 0.19547343254089355; +510.6680603027344, 0.19522756338119507; +510.76806640625, 0.19397586584091187; +510.8680419921875, 0.19159913063049316; +510.9680480957031, 0.1882612705230713; +511.06805419921875, 0.18602609634399414; +511.16802978515625, 0.18456578254699707; +511.2680358886719, 0.18347054719924927; +511.3680114746094, 0.1835450530052185; +511.468017578125, 0.18446147441864014; +511.5680236816406, 0.18560141324996948; +511.6679992675781, 0.18621236085891724; +511.76800537109375, 0.18690526485443115; +511.86798095703125, 0.18768012523651123; +511.9679870605469, 0.18750131130218506; +512.0679931640625, 0.18662214279174805; +512.16796875, 0.18697232007980347; +512.2679443359375, 0.18884986639022827; +512.3679809570312, 0.19071996212005615; +512.4679565429688, 0.19086897373199463; +512.5679321289062, 0.19062310457229614; +512.66796875, 0.1909509301185608; +512.7679443359375, 0.19124150276184082; +512.867919921875, 0.19052624702453613; +512.9678955078125, 0.1893267035484314; +513.0679321289062, 0.18889456987380981; +513.1679077148438, 0.1893565058708191; +513.2678833007812, 0.19052624702453613; +513.367919921875, 0.1918599009513855; +513.4678955078125, 0.1932010054588318; +513.56787109375, 0.1941770315170288; +513.6679077148438, 0.19484758377075195; +513.7678833007812, 0.19435584545135498; +513.8678588867188, 0.19197911024093628; +513.9678344726562, 0.18963217735290527; +514.06787109375, 0.18969178199768066; +514.1678466796875, 0.19174814224243164; +514.267822265625, 0.19253790378570557; +514.3678588867188, 0.19194930791854858; +514.4678344726562, 0.19256025552749634; +514.5678100585938, 0.19447505474090576; +514.6677856445312, 0.19568949937820435; +514.767822265625, 0.19563734531402588; +514.8677978515625, 0.19684433937072754; +514.9677734375, 0.19913911819458008; +515.0678100585938, 0.1997426152229309; +515.1677856445312, 0.19740313291549683; +515.2677612304688, 0.19369274377822876; +515.3677978515625, 0.19060075283050537; +515.4677734375, 0.18792599439620972; +515.5677490234375, 0.18531084060668945; +515.667724609375, 0.1835078001022339; +515.7677612304688, 0.18327683210372925; +515.8677368164062, 0.1840740442276001; +515.9677124023438, 0.18471479415893555; +516.0677490234375, 0.18505007028579712; +516.167724609375, 0.18575787544250488; +516.2677001953125, 0.1874193549156189; +516.3677368164062, 0.18981844186782837; +516.4677124023438, 0.19215047359466553; +516.5676879882812, 0.19419193267822266; +516.6676635742188, 0.19571185111999512; +516.7677001953125, 0.19678473472595215; +516.86767578125, 0.19656866788864136; +516.9676513671875, 0.19458681344985962; +517.0676879882812, 0.1912638545036316; +517.1676635742188, 0.1868903636932373; +517.2676391601562, 0.18242746591567993; +517.36767578125, 0.1785680651664734; +517.4676513671875, 0.1761019229888916; +517.567626953125, 0.17528235912322998; +517.6676025390625, 0.1767277717590332; +517.7676391601562, 0.1809448003768921; +517.8676147460938, 0.1865178346633911; +517.9675903320312, 0.19025802612304688; +518.067626953125, 0.19109249114990234; +518.1676025390625, 0.19077211618423462; +518.267578125, 0.1903325319290161; +518.3675537109375, 0.18950551748275757; +518.4675903320312, 0.1881122589111328; +518.5675659179688, 0.18812716007232666; +518.6675415039062, 0.1901760697364807; +518.767578125, 0.19273161888122559; +518.8675537109375, 0.1948922872543335; +518.967529296875, 0.1970231533050537; +519.0675659179688, 0.1994892954826355; +519.1675415039062, 0.20097941160202026; +519.2675170898438, 0.2017095685005188; +519.3674926757812, 0.20235776901245117; +519.467529296875, 0.20209699869155884; +519.5675048828125, 0.19990652799606323; +519.66748046875, 0.19629299640655518; +519.7675170898438, 0.19365549087524414; +519.8674926757812, 0.1924559473991394; +519.9674682617188, 0.19191205501556396; +520.0675048828125, 0.19210577011108398; +520.16748046875, 0.1928955316543579; +520.2674560546875, 0.19387155771255493; +520.367431640625, 0.19438564777374268; +520.4674682617188, 0.1938939094543457; +520.5674438476562, 0.1926422119140625; +520.6674194335938, 0.19075721502304077; +520.7674560546875, 0.18840283155441284; +520.867431640625, 0.18578022718429565; +520.9674072265625, 0.18390268087387085; +521.0674438476562, 0.18383562564849854; +521.1674194335938, 0.18564611673355103; +521.2673950195312, 0.18771737813949585; +521.3673706054688, 0.1897960901260376; +521.4674072265625, 0.19221752882003784; +521.5673828125, 0.19519031047821045; +521.6673583984375, 0.19859522581100464; +521.7673950195312, 0.2010241150856018; +521.8673706054688, 0.20250678062438965; +521.9673461914062, 0.20244717597961426; +522.0673828125, 0.20116567611694336; +522.1673583984375, 0.19840896129608154; +522.267333984375, 0.19409507513046265; +522.3673095703125, 0.19038468599319458; +522.4673461914062, 0.18862634897232056; +522.5673217773438, 0.1904889941215515; +522.6672973632812, 0.19472837448120117; +522.767333984375, 0.19922852516174316; +522.8673095703125, 0.20208954811096191; +522.96728515625, 0.2027750015258789; +523.0672607421875, 0.20281225442886353; +523.1672973632812, 0.20229816436767578; +523.2672729492188, 0.20210444927215576; +523.3672485351562, 0.20335614681243896; +523.46728515625, 0.20647794008255005; +523.5672607421875, 0.20956993103027344; +523.667236328125, 0.2098679542541504; +523.7672729492188, 0.20732730627059937; +523.8672485351562, 0.20323693752288818; +523.9672241210938, 0.19831210374832153; +524.0671997070312, 0.19375979900360107; +524.167236328125, 0.19045919179916382; +524.2672119140625, 0.18991529941558838; +524.3671875, 0.19131600856781006; +524.4672241210938, 0.19340217113494873; +524.5671997070312, 0.1959875226020813; +524.6671752929688, 0.1982077956199646; +524.7672119140625, 0.2001151442527771; +524.8671875, 0.20100921392440796; +524.9671630859375, 0.20225346088409424; +525.067138671875, 0.20431727170944214; +525.1671752929688, 0.20579248666763306; +525.2671508789062, 0.20545721054077148; +525.3671264648438, 0.20346790552139282; +525.4671630859375, 0.2009943127632141; +525.567138671875, 0.19858777523040771; +525.6671142578125, 0.1965835690498352; +525.7671508789062, 0.19497424364089966; +525.8671264648438, 0.1939237117767334; +525.9671020507812, 0.19328296184539795; +526.0670776367188, 0.1939535140991211; +526.1671142578125, 0.19456446170806885; +526.26708984375, 0.19400566816329956; +526.3670654296875, 0.19365549087524414; +526.4671020507812, 0.19474327564239502; +526.5670776367188, 0.19694119691848755; +526.6670532226562, 0.19807368516921997; +526.7670288085938, 0.1981481909751892; +526.8670654296875, 0.19793212413787842; +526.967041015625, 0.19634515047073364; +527.0670166015625, 0.19305944442749023; +527.1670532226562, 0.18900632858276367; +527.2670288085938, 0.18552690744400024; +527.3670043945312, 0.18348544836044312; +527.467041015625, 0.18262118101119995; +527.5670166015625, 0.18322467803955078; +527.6669921875, 0.18655508756637573; +527.7669677734375, 0.19174814224243164; +527.8670043945312, 0.19747018814086914; +527.9669799804688, 0.20164251327514648; +528.0669555664062, 0.20457804203033447; +528.1669921875, 0.2073422074317932; +528.2669677734375, 0.2083703875541687; +528.366943359375, 0.20807236433029175; +528.4669799804688, 0.2068057656288147; +528.5669555664062, 0.20561367273330688; +528.6669311523438, 0.2038031816482544; +528.7669067382812, 0.20137429237365723; +528.866943359375, 0.20037591457366943; +528.9669189453125, 0.20107626914978027; +529.06689453125, 0.20278245210647583; +529.1669311523438, 0.20441412925720215; +529.2669067382812, 0.20570307970046997; +529.3668823242188, 0.20607560873031616; +529.4669189453125, 0.20426511764526367; +529.56689453125, 0.20062178373336792; +529.6668701171875, 0.19671767950057983; +529.766845703125, 0.19472092390060425; +529.8668823242188, 0.19412487745285034; +529.9668579101562, 0.1933947205543518; +530.0668334960938, 0.19274652004241943; +530.1668701171875, 0.19393861293792725; +530.266845703125, 0.19723176956176758; +530.3668212890625, 0.19972771406173706; +530.4668579101562, 0.20065158605575562; +530.5668334960938, 0.20117312669754028; +530.6668090820312, 0.20178407430648804; +530.7667846679688, 0.20106881856918335; +530.8668212890625, 0.1988038420677185; +530.966796875, 0.1963973045349121; +531.0667724609375, 0.19440054893493652; +531.1668090820312, 0.19300729036331177; +531.2667846679688, 0.1931712031364441; +531.3667602539062, 0.19492954015731812; +531.4667358398438, 0.19625574350357056; +531.5667724609375, 0.1958310604095459; +531.666748046875, 0.19555538892745972; +531.7667236328125, 0.19727647304534912; +531.8667602539062, 0.19874423742294312; +531.9667358398438, 0.19852817058563232; +532.0667114257812, 0.19766390323638916; +532.166748046875, 0.1979619264602661; +532.2667236328125, 0.19850581884384155; +532.36669921875, 0.1977682113647461; +532.4666748046875, 0.1963004469871521; +532.5667114257812, 0.1948028802871704; +532.6666870117188, 0.19381940364837646; +532.7666625976562, 0.1942366361618042; +532.86669921875, 0.19582360982894897; +532.9666748046875, 0.1970827579498291; +533.066650390625, 0.19710510969161987; +533.1666870117188, 0.19650906324386597; +533.2666625976562, 0.19677728414535522; +533.3666381835938, 0.1984238624572754; +533.4666137695312, 0.20132958889007568; +533.566650390625, 0.20463019609451294; +533.6666259765625, 0.2073422074317932; +533.7666015625, 0.20872801542282104; +533.8666381835938, 0.20776689052581787; +533.9666137695312, 0.20356476306915283; +534.0665893554688, 0.1976415514945984; +534.1666259765625, 0.19272416830062866; +534.2666015625, 0.19019842147827148; +534.3665771484375, 0.18987804651260376; +534.466552734375, 0.19130855798721313; +534.5665893554688, 0.19465386867523193; +534.6665649414062, 0.1980513334274292; +534.7665405273438, 0.199832022190094; +534.8665771484375, 0.2001449465751648; +534.966552734375, 0.19988417625427246; +535.0665283203125, 0.20015984773635864; +535.16650390625, 0.20013749599456787; +535.2665405273438, 0.19919872283935547; +535.3665161132812, 0.19709020853042603; +535.4664916992188, 0.19466876983642578; +535.5665283203125, 0.19265711307525635; +535.66650390625, 0.1901090145111084; +535.7664794921875, 0.18703937530517578; +535.8665161132812, 0.1848861575126648; +535.9664916992188, 0.18536299467086792; +536.0664672851562, 0.18762052059173584; +536.1664428710938, 0.1894831657409668; +536.2664794921875, 0.19007176160812378; +536.366455078125, 0.18994510173797607; +536.4664306640625, 0.1903325319290161; +536.5664672851562, 0.1914575695991516; +536.6664428710938, 0.19338726997375488; +536.7664184570312, 0.19565224647521973; +536.866455078125, 0.19812583923339844; +536.9664306640625, 0.20027905702590942; +537.06640625, 0.20131468772888184; +537.1663818359375, 0.20048022270202637; +537.2664184570312, 0.19787251949310303; +537.3663940429688, 0.19510090351104736; +537.4663696289062, 0.19326061010360718; +537.56640625, 0.19247829914093018; +537.6663818359375, 0.19261986017227173; +537.766357421875, 0.1937374472618103; +537.8663940429688, 0.19571185111999512; +537.9663696289062, 0.19754469394683838; +538.0663452148438, 0.19885599613189697; +538.1663208007812, 0.1998692750930786; +538.266357421875, 0.20022690296173096; +538.3663330078125, 0.19978731870651245; +538.46630859375, 0.19875913858413696; +538.5663452148438, 0.19796937704086304; +538.6663208007812, 0.19696354866027832; +538.7662963867188, 0.19621849060058594; +538.8662719726562, 0.19632279872894287; +538.96630859375, 0.19782781600952148; +539.0662841796875, 0.20007044076919556; +539.166259765625, 0.2023354172706604; +539.2662963867188, 0.20487606525421143; +539.3662719726562, 0.20681321620941162; +539.4662475585938, 0.2073347568511963; +539.5662841796875, 0.20647794008255005; +539.666259765625, 0.20554661750793457; +539.7662353515625, 0.20535290241241455; +539.8662109375, 0.205211341381073; +539.9662475585938, 0.2048686146736145; +540.0662231445312, 0.20493566989898682; +540.1661987304688, 0.20503997802734375; +540.2662353515625, 0.20410120487213135; +540.3662109375, 0.20203739404678345; +540.4661865234375, 0.1989901065826416; +540.5662231445312, 0.19550323486328125; +540.6661987304688, 0.1922398805618286; +540.7661743164062, 0.1905485987663269; +540.8661499023438, 0.19069761037826538; +540.9661865234375, 0.19041448831558228; +541.066162109375, 0.19065290689468384; +541.1661376953125, 0.19227713346481323; +541.2661743164062, 0.1951158046722412; +541.3661499023438, 0.1971423625946045; +541.4661254882812, 0.19816309213638306; +541.566162109375, 0.20001083612442017; +541.6661376953125, 0.2021193504333496; +541.76611328125, 0.20360946655273438; +541.8660888671875, 0.20451843738555908; +541.9661254882812, 0.20509958267211914; +542.0661010742188, 0.20547211170196533; +542.1660766601562, 0.205114483833313; +542.26611328125, 0.20451843738555908; +542.3660888671875, 0.20474940538406372; +542.466064453125, 0.20485371351242065; +542.5661010742188, 0.20451098680496216; +542.6660766601562, 0.20302832126617432; +542.7660522460938, 0.2019926905632019; +542.8660278320312, 0.20215660333633423; +542.966064453125, 0.20232796669006348; +543.0660400390625, 0.20219385623931885; +543.166015625, 0.20228326320648193; +543.2660522460938, 0.20319968461990356; +543.3660278320312, 0.20382553339004517; +543.4660034179688, 0.20381063222885132; +543.5659790039062, 0.20376592874526978; +543.666015625, 0.2041161060333252; +543.7659912109375, 0.20442157983779907; +543.865966796875, 0.20457804203033447; +543.9660034179688, 0.20484626293182373; +544.0659790039062, 0.2051219344139099; +544.1659545898438, 0.20498782396316528; +544.2659912109375, 0.20399689674377441; +544.365966796875, 0.20260363817214966; +544.4659423828125, 0.2022385597229004; +544.56591796875, 0.20357966423034668; +544.6659545898438, 0.20509958267211914; +544.7659301757812, 0.20603835582733154; +544.8659057617188, 0.20675361156463623; +544.9659423828125, 0.20743906497955322; +545.06591796875, 0.20756572484970093; +545.1658935546875, 0.20720064640045166; +545.2659301757812, 0.20732730627059937; +545.3659057617188, 0.20817667245864868; +545.4658813476562, 0.2088695764541626; +545.5658569335938, 0.20883232355117798; +545.6658935546875, 0.20767003297805786; +545.765869140625, 0.20556151866912842; +545.8658447265625, 0.20357221364974976; +545.9658813476562, 0.2015233039855957; +546.0658569335938, 0.19981712102890015; +546.1658325195312, 0.19951164722442627; +546.265869140625, 0.20162761211395264; +546.3658447265625, 0.20494312047958374; +546.4658203125, 0.20685046911239624; +546.5657958984375, 0.20658224821090698; +546.6658325195312, 0.20510703325271606; +546.7658081054688, 0.20342320203781128; +546.8657836914062, 0.20004808902740479; +546.9658203125, 0.1951158046722412; +547.0657958984375, 0.19047409296035767; +547.165771484375, 0.18880516290664673; +547.2657470703125, 0.19039958715438843; +547.3657836914062, 0.19200891256332397; +547.4657592773438, 0.19244849681854248; +547.5657348632812, 0.19244104623794556; +547.665771484375, 0.19300729036331177; +547.7657470703125, 0.19352883100509644; +547.86572265625, 0.19262731075286865; +547.9657592773438, 0.191614031791687; +548.0657348632812, 0.19341707229614258; +548.1657104492188, 0.1977980136871338; +548.2656860351562, 0.20249933004379272; +548.36572265625, 0.20585954189300537; +548.4656982421875, 0.20817667245864868; +548.565673828125, 0.21041184663772583; +548.6657104492188, 0.21100789308547974; +548.7656860351562, 0.20983070135116577; +548.8656616210938, 0.20729005336761475; +548.9656982421875, 0.20460039377212524; +549.065673828125, 0.2028048038482666; +549.1656494140625, 0.20240247249603271; +549.265625, 0.2034902572631836; +549.3656616210938, 0.20439177751541138; +549.4656372070312, 0.2045854926109314; +549.5656127929688, 0.20372122526168823; +549.6656494140625, 0.2018958330154419; +549.765625, 0.19947439432144165; +549.8656005859375, 0.19671767950057983; +549.9656372070312, 0.19456446170806885; +550.0656127929688, 0.1940503716468811; +550.1655883789062, 0.19572675228118896; +550.2655639648438, 0.19891560077667236; +550.3656005859375, 0.2011507749557495; +550.465576171875, 0.20104646682739258; +550.5655517578125, 0.19963085651397705; +550.6655883789062, 0.19785761833190918; +550.7655639648438, 0.1963004469871521; +550.8655395507812, 0.1940205693244934; +550.9655151367188, 0.19153207540512085; +551.0655517578125, 0.19095838069915771; +551.16552734375, 0.19221007823944092; +551.2655029296875, 0.19365549087524414; +551.3655395507812, 0.19352883100509644; +551.4655151367188, 0.19328296184539795; +551.5654907226562, 0.19425153732299805; +551.66552734375, 0.19528716802597046; +551.7655029296875, 0.19596517086029053; +551.865478515625, 0.19738078117370605; +551.9654541015625, 0.19968301057815552; +552.0654907226562, 0.2016797661781311; +552.1654663085938, 0.2027377486228943; +552.2654418945312, 0.2032741904258728; +552.365478515625, 0.203840434551239; +552.4654541015625, 0.20348280668258667; +552.5654296875, 0.20240247249603271; +552.6654663085938, 0.20121783018112183; +552.7654418945312, 0.20050257444381714; +552.8654174804688, 0.20138919353485107; +552.9653930664062, 0.20297616720199585; +553.0654296875, 0.20494312047958374; +553.1654052734375, 0.206872820854187; +553.265380859375, 0.20863115787506104; +553.3654174804688, 0.2095624804496765; +553.4653930664062, 0.2091825008392334; +553.5653686523438, 0.2088099718093872; +553.6654052734375, 0.20891427993774414; +553.765380859375, 0.20883232355117798; +553.8653564453125, 0.2085864543914795; +553.96533203125, 0.20863115787506104; +554.0653686523438, 0.20883232355117798; +554.1653442382812, 0.20799040794372559; +554.2653198242188, 0.20712614059448242; +554.3653564453125, 0.20836293697357178; +554.46533203125, 0.21112710237503052; +554.5653076171875, 0.21376460790634155; +554.6653442382812, 0.21514296531677246; +554.7653198242188, 0.21627545356750488; +554.8652954101562, 0.21685659885406494; +554.9652709960938, 0.21660327911376953; +555.0653076171875, 0.21582096815109253; +555.165283203125, 0.21520256996154785; +555.2652587890625, 0.2147182822227478; +555.3652954101562, 0.21395832300186157; +555.4652709960938, 0.2131238579750061; +555.5652465820312, 0.21185725927352905; +555.6652221679688, 0.2106800675392151; +555.7652587890625, 0.21011382341384888; +555.865234375, 0.21029263734817505; +555.9652099609375, 0.21045655012130737; +556.0652465820312, 0.21014362573623657; +556.1652221679688, 0.20989775657653809; +556.2651977539062, 0.20989775657653809; +556.365234375, 0.2094954252243042; +556.4652099609375, 0.2082735300064087; +556.565185546875, 0.20653754472732544; +556.6651611328125, 0.20492076873779297; +556.7651977539062, 0.20331144332885742; +556.8651733398438, 0.2017691731452942; +556.9651489257812, 0.20115822553634644; +557.065185546875, 0.2019926905632019; +557.1651611328125, 0.20384788513183594; +557.26513671875, 0.20571798086166382; +557.3651733398438, 0.20691007375717163; +557.4651489257812, 0.20701438188552856; +557.5651245117188, 0.20615756511688232; +557.6651000976562, 0.20538270473480225; +557.76513671875, 0.20544230937957764; +557.8651123046875, 0.20575523376464844; +557.965087890625, 0.2065598964691162; +558.0651245117188, 0.2080574631690979; +558.1651000976562, 0.20974129438400269; +558.2650756835938, 0.21035224199295044; +558.3651123046875, 0.2105608582496643; +558.465087890625, 0.21207332611083984; +558.5650634765625, 0.21330267190933228; +558.6650390625, 0.2129003405570984; +558.7650756835938, 0.21132081747055054; +558.8650512695312, 0.21048635244369507; +558.9650268554688, 0.20975619554519653; +559.0650634765625, 0.20836293697357178; +559.1650390625, 0.2083107829093933; +559.2650146484375, 0.20968914031982422; +559.364990234375, 0.2111494541168213; +559.4650268554688, 0.21135807037353516; +559.5650024414062, 0.211372971534729; +559.6649780273438, 0.21148473024368286; +559.7650146484375, 0.2111569046974182; +559.864990234375, 0.21172314882278442; +559.9649658203125, 0.2132207155227661; +560.0650024414062, 0.21530687808990479; +560.1649780273438, 0.2168118953704834; +560.2649536132812, 0.21755695343017578; +560.3649291992188, 0.21725893020629883; +560.4649658203125, 0.21525472402572632; +560.56494140625, 0.21263957023620605; +560.6649169921875, 0.21008402109146118; +560.7649536132812, 0.20764023065567017; +560.8649291992188, 0.20566582679748535; +560.9649047851562, 0.20476430654525757; +561.06494140625, 0.20504742860794067; +561.1649169921875, 0.20647794008255005; +561.264892578125, 0.20804256200790405; +561.3648681640625, 0.20950287580490112; +561.4649047851562, 0.21073967218399048; +561.5648803710938, 0.2116858959197998; +561.6648559570312, 0.21260976791381836; +561.764892578125, 0.21280348300933838; +561.8648681640625, 0.212937593460083; +561.96484375, 0.21358579397201538; +562.0648803710938, 0.2144351601600647; +562.1648559570312, 0.21586567163467407; +562.2648315429688, 0.21729618310928345; +562.3648071289062, 0.21857768297195435; +562.46484375, 0.2181902527809143; +562.5648193359375, 0.21573901176452637; +562.664794921875, 0.21164864301681519; +562.7648315429688, 0.20697712898254395; +562.8648071289062, 0.20344555377960205; +562.9647827148438, 0.20126253366470337; +563.0648193359375, 0.201396644115448; +563.164794921875, 0.20375847816467285; +563.2647705078125, 0.20772218704223633; +563.36474609375, 0.21097064018249512; +563.4647827148438, 0.21214783191680908; +563.5647583007812, 0.21245330572128296; +563.6647338867188, 0.21288543939590454; +563.7647705078125, 0.21319091320037842; +563.86474609375, 0.21255016326904297; +563.9647216796875, 0.2114027738571167; +564.064697265625, 0.2102106809616089; +564.1647338867188, 0.20864605903625488; +564.2647094726562, 0.206775963306427; +564.3646850585938, 0.2048686146736145; +564.4647216796875, 0.2046152949333191; +564.564697265625, 0.2058073878288269; +564.6646728515625, 0.20746886730194092; +564.7647094726562, 0.20962953567504883; +564.8646850585938, 0.21156668663024902; +564.9646606445312, 0.21280348300933838; +565.0646362304688, 0.21186470985412598; +565.1646728515625, 0.2098679542541504; +565.2646484375, 0.20951032638549805; +565.3646240234375, 0.21067261695861816; +565.4646606445312, 0.21230429410934448; +565.5646362304688, 0.21348893642425537; +565.6646118164062, 0.21550804376602173; +565.7646484375, 0.21873414516448975; +565.8646240234375, 0.22101402282714844; +565.964599609375, 0.22166967391967773; +566.0645751953125, 0.22097676992416382; +566.1646118164062, 0.2195984125137329; +566.2645874023438, 0.21751970052719116; +566.3645629882812, 0.2149343490600586; +566.464599609375, 0.2124384045600891; +566.5645751953125, 0.20926445722579956; +566.66455078125, 0.20626187324523926; +566.7645874023438, 0.2052411437034607; +566.8645629882812, 0.20609050989151; +566.9645385742188, 0.2061203122138977; +567.0645141601562, 0.20441412925720215; +567.16455078125, 0.20313262939453125; +567.2645263671875, 0.202961266040802; +567.364501953125, 0.20238757133483887; +567.4645385742188, 0.20053237676620483; +567.5645141601562, 0.19966810941696167; +567.6644897460938, 0.20073354244232178; +567.7644653320312, 0.20253658294677734; +567.864501953125, 0.2039894461631775; +567.9644775390625, 0.2052411437034607; +568.064453125, 0.20632892847061157; +568.1644897460938, 0.20615756511688232; +568.2644653320312, 0.20498782396316528; +568.3644409179688, 0.20382553339004517; +568.4644775390625, 0.20287185907363892; +568.564453125, 0.20191073417663574; +568.6644287109375, 0.20097196102142334; +568.764404296875, 0.20117312669754028; +568.8644409179688, 0.20204484462738037; +568.9644165039062, 0.20194798707962036; +569.0643920898438, 0.20034611225128174; +569.1644287109375, 0.19869953393936157; +569.264404296875, 0.19869953393936157; +569.3643798828125, 0.19946694374084473; +569.4644165039062, 0.20018219947814941; +569.5643920898438, 0.20190328359603882; +569.6643676757812, 0.2048090100288391; +569.7643432617188, 0.20700693130493164; +569.8643798828125, 0.20720809698104858; +569.96435546875, 0.2063065767288208; +570.0643310546875, 0.20599365234375; +570.1643676757812, 0.20556896924972534; +570.2643432617188, 0.20494312047958374; +570.3643188476562, 0.2048686146736145; +570.46435546875, 0.2057403326034546; +570.5643310546875, 0.2076476812362671; +570.664306640625, 0.20897388458251953; +570.7642822265625, 0.20860880613327026; +570.8643188476562, 0.20599365234375; +570.9642944335938, 0.2018064260482788; +571.0642700195312, 0.1977086067199707; +571.164306640625, 0.19459426403045654; +571.2642822265625, 0.19213557243347168; +571.3642578125, 0.18997490406036377; +571.4642333984375, 0.18871575593948364; +571.5642700195312, 0.18959492444992065; +571.6642456054688, 0.19143521785736084; +571.7642211914062, 0.19189715385437012; +571.8642578125, 0.1913011074066162; +571.9642333984375, 0.19241124391555786; +572.064208984375, 0.19618123769760132; +572.1642456054688, 0.19918382167816162; +572.2642211914062, 0.19948184490203857; +572.3641967773438, 0.19767135381698608; +572.4641723632812, 0.19568949937820435; +572.564208984375, 0.19287317991256714; +572.6641845703125, 0.18882006406784058; +572.76416015625, 0.18562376499176025; +572.8641967773438, 0.18459558486938477; +572.9641723632812, 0.18543750047683716; +573.0641479492188, 0.1865774393081665; +573.1641845703125, 0.18759816884994507; +573.26416015625, 0.1891106367111206; +573.3641357421875, 0.1908913254737854; +573.464111328125, 0.1930519938468933; +573.5641479492188, 0.1955851912498474; +573.6641235351562, 0.19771605730056763; +573.7640991210938, 0.19869953393936157; +573.8641357421875, 0.19819289445877075; +573.964111328125, 0.196702778339386; +574.0640869140625, 0.1949891448020935; +574.1641235351562, 0.1932010054588318; +574.2640991210938, 0.1919195055961609; +574.3640747070312, 0.19163638353347778; +574.4640502929688, 0.19206106662750244; +574.5640869140625, 0.19308924674987793; +574.6640625, 0.19399821758270264; +574.7640380859375, 0.1948624849319458; +574.8640747070312, 0.19500404596328735; +574.9640502929688, 0.19486993551254272; +575.0640258789062, 0.19507110118865967; +575.1640625, 0.19533932209014893; +575.2640380859375, 0.19441545009613037; +575.364013671875, 0.19205361604690552; +575.4639892578125, 0.1910179853439331; +575.5640258789062, 0.19262731075286865; +575.6640014648438, 0.19519031047821045; +575.7639770507812, 0.1964867115020752; +575.864013671875, 0.19688904285430908; +575.9639892578125, 0.1975223422050476; +576.06396484375, 0.19818544387817383; +576.1639404296875, 0.1979246735572815; +576.2639770507812, 0.1976490020751953; +576.3639526367188, 0.19807368516921997; +576.4639282226562, 0.19910931587219238; +576.56396484375, 0.2000182867050171; +576.6639404296875, 0.1993998885154724; +576.763916015625, 0.19723176956176758; +576.8639526367188, 0.19419193267822266; +576.9639282226562, 0.1920759677886963; +577.0639038085938, 0.19044429063796997; +577.1638793945312, 0.18899887800216675; +577.263916015625, 0.18803030252456665; +577.3638916015625, 0.1880750060081482; +577.4638671875, 0.18893927335739136; +577.5639038085938, 0.18999725580215454; +577.6638793945312, 0.19269436597824097; +577.7638549804688, 0.19595026969909668; +577.8638916015625, 0.1977682113647461; +577.9638671875, 0.19662082195281982; +578.0638427734375, 0.1935139298439026; +578.163818359375, 0.18974393606185913; +578.2638549804688, 0.1854151487350464; +578.3638305664062, 0.18246471881866455; +578.4638061523438, 0.18299371004104614; +578.5638427734375, 0.1859515905380249; +578.663818359375, 0.188387930393219; +578.7637939453125, 0.18869340419769287; +578.8638305664062, 0.18833577632904053; +578.9638061523438, 0.18776953220367432; +579.0637817382812, 0.1864507794380188; +579.1637573242188, 0.18505007028579712; +579.2637939453125, 0.18433481454849243; +579.36376953125, 0.18449872732162476; +579.4637451171875, 0.18378347158432007; +579.5637817382812, 0.18190592527389526; +579.6637573242188, 0.17980486154556274; +579.7637329101562, 0.17896294593811035; +579.8637084960938, 0.17971545457839966; +579.9637451171875, 0.18136948347091675; +580.063720703125, 0.18364191055297852; +580.1636962890625, 0.18656253814697266; +580.2637329101562, 0.18955767154693604; +580.3637084960938, 0.19177794456481934; +580.4636840820312, 0.19312649965286255; +580.563720703125, 0.19435584545135498; +580.6636962890625, 0.19588321447372437; +580.763671875, 0.19673258066177368; +580.8636474609375, 0.195235013961792; +580.9636840820312, 0.1920461654663086; +581.0636596679688, 0.18902868032455444; +581.1636352539062, 0.1865178346633911; +581.263671875, 0.18455088138580322; +581.3636474609375, 0.18338114023208618; +581.463623046875, 0.18508732318878174; +581.5636596679688, 0.18817931413650513; +581.6636352539062, 0.18981844186782837; +581.7636108398438, 0.18996000289916992; +581.8635864257812, 0.18889456987380981; +581.963623046875, 0.18640607595443726; +582.0635986328125, 0.18165260553359985; +582.16357421875, 0.1768246293067932; +582.2636108398438, 0.17414242029190063; +582.3635864257812, 0.17298758029937744; +582.4635620117188, 0.1722872257232666; +582.5635986328125, 0.17282366752624512; +582.66357421875, 0.17574429512023926; +582.7635498046875, 0.17971545457839966; +582.863525390625, 0.18299371004104614; +582.9635620117188, 0.18527358770370483; +583.0635375976562, 0.18649548292160034; +583.1635131835938, 0.1865774393081665; +583.2635498046875, 0.18545985221862793; +583.363525390625, 0.18353015184402466; +583.4635009765625, 0.1813247799873352; +583.5634765625, 0.17946958541870117; +583.6635131835938, 0.1796036958694458; +583.7634887695312, 0.18136948347091675; +583.8634643554688, 0.1828223466873169; +583.9635009765625, 0.1828894019126892; +584.0634765625, 0.18312036991119385; +584.1634521484375, 0.18422305583953857; +584.2634887695312, 0.1845434308052063; +584.3634643554688, 0.1831650733947754; +584.4634399414062, 0.18111616373062134; +584.5634155273438, 0.18066167831420898; +584.6634521484375, 0.18183141946792603; +584.763427734375, 0.18309801816940308; +584.8634033203125, 0.18373876810073853; +584.9634399414062, 0.18387287855148315; +585.0634155273438, 0.18515437841415405; +585.1633911132812, 0.1875162124633789; +585.263427734375, 0.18934160470962524; +585.3634033203125, 0.19021332263946533; +585.46337890625, 0.19027292728424072; +585.5633544921875, 0.1899823546409607; +585.6633911132812, 0.18883496522903442; +585.7633666992188, 0.1872926950454712; +585.8633422851562, 0.1863911747932434; +585.96337890625, 0.18695741891860962; +586.0633544921875, 0.189267098903656; +586.163330078125, 0.19273161888122559; +586.2633666992188, 0.19543617963790894; +586.3633422851562, 0.19582360982894897; +586.4633178710938, 0.1952052116394043; +586.5632934570312, 0.19536912441253662; +586.663330078125, 0.19657611846923828; +586.7633056640625, 0.1977980136871338; +586.86328125, 0.19865483045578003; +586.9633178710938, 0.19972026348114014; +587.0632934570312, 0.20007789134979248; +587.1632690429688, 0.1988336443901062; +587.2633056640625, 0.19603222608566284; +587.36328125, 0.19308924674987793; +587.4632568359375, 0.19228458404541016; +587.563232421875, 0.1931712031364441; +587.6632690429688, 0.19481778144836426; +587.7632446289062, 0.19609928131103516; +587.8632202148438, 0.19726157188415527; +587.9632568359375, 0.1988038420677185; +588.063232421875, 0.19981712102890015; +588.1632080078125, 0.2007707953453064; +588.26318359375, 0.20160526037216187; +588.3632202148438, 0.20312517881393433; +588.4631958007812, 0.2055540680885315; +588.5631713867188, 0.2086535096168518; +588.6632080078125, 0.21204352378845215; +588.76318359375, 0.21497905254364014; +588.8631591796875, 0.2184063196182251; +588.9631958007812, 0.22238492965698242; +589.0631713867188, 0.22623687982559204; +589.1631469726562, 0.2290681004524231; +589.2631225585938, 0.23085623979568481; +589.3631591796875, 0.23289024829864502; +589.463134765625, 0.23428350687026978; +589.5631103515625, 0.23425370454788208; +589.6631469726562, 0.2336651086807251; +589.7631225585938, 0.23438036441802979; +589.8630981445312, 0.23725628852844238; +589.963134765625, 0.24115294218063354; +590.0631103515625, 0.24627149105072021; +590.1630859375, 0.2523064613342285; +590.2630615234375, 0.2576783299446106; +590.3630981445312, 0.2605915069580078; +590.4630737304688, 0.2609044313430786; +590.5630493164062, 0.25928765535354614; +590.6630859375, 0.2566799521446228; +590.7630615234375, 0.2551078796386719; +590.863037109375, 0.2563744783401489; +590.9630737304688, 0.2605915069580078; +591.0630493164062, 0.266052782535553; +591.1630249023438, 0.2716332674026489; +591.2630004882812, 0.2765059471130371; +591.363037109375, 0.28020888566970825; +591.4630126953125, 0.2831891179084778; +591.56298828125, 0.2862289547920227; +591.6630249023438, 0.29034167528152466; +591.7630004882812, 0.295981764793396; +591.8629760742188, 0.30306726694107056; +591.9629516601562, 0.31057000160217285; +592.06298828125, 0.31729787588119507; +592.1629638671875, 0.32270699739456177; +592.262939453125, 0.3270953893661499; +592.3629760742188, 0.3304779529571533; +592.4629516601562, 0.3334805369377136; +592.5629272460938, 0.33789873123168945; +592.6629638671875, 0.3438517451286316; +592.762939453125, 0.35156309604644775; +592.8629150390625, 0.36090612411499023; +592.962890625, 0.3710836172103882; +593.0629272460938, 0.38063526153564453; +593.1629028320312, 0.3878548741340637; +593.2628784179688, 0.39371103048324585; +593.3629150390625, 0.39846450090408325; +593.462890625, 0.4021748900413513; +593.5628662109375, 0.4063323140144348; +593.6629028320312, 0.41235238313674927; +593.7628784179688, 0.4200786352157593; +593.8628540039062, 0.4289895296096802; +593.9628295898438, 0.4386976361274719; +594.0628662109375, 0.4490315914154053; +594.162841796875, 0.45900046825408936; +594.2628173828125, 0.4693269729614258; +594.3628540039062, 0.48148632049560547; +594.4628295898438, 0.49395114183425903; +594.5628051757812, 0.505596399307251; +594.662841796875, 0.5158707499504089; +594.7628173828125, 0.5266889929771423; +594.86279296875, 0.5384385585784912; +594.9627685546875, 0.5499571561813354; +595.0628051757812, 0.5611777305603027; +595.1627807617188, 0.5729198455810547; +595.2627563476562, 0.5864948034286499; +595.36279296875, 0.6010010838508606; +595.4627685546875, 0.6146430969238281; +595.562744140625, 0.6279423832893372; +595.6627807617188, 0.6418973207473755; +595.7627563476562, 0.6567314267158508; +595.8627319335938, 0.6720051169395447; +595.9627075195312, 0.6874650716781616; +596.062744140625, 0.7033571600914001; +596.1627197265625, 0.718921422958374; +596.2626953125, 0.7346794009208679; +596.3627319335938, 0.7507279515266418; +596.4627075195312, 0.767044723033905; +596.5626831054688, 0.7840469479560852; +596.6626586914062, 0.8022114634513855; +596.7626953125, 0.8225142955780029; +596.8626708984375, 0.8445307612419128; +596.962646484375, 0.8680820465087891; +597.0626831054688, 0.8936077356338501; +597.1626586914062, 0.9213685989379883; +597.2626342773438, 0.9518489241600037; +597.3626708984375, 0.9830892086029053; +597.462646484375, 1.0133981704711914; +597.5626220703125, 1.0435134172439575; +597.66259765625, 1.0738074779510498; +597.7626342773438, 1.1059045791625977; +597.8626098632812, 1.140400767326355; +597.9625854492188, 1.1793150901794434; +598.0626220703125, 1.2233331203460693; +598.16259765625, 1.2708828449249268; +598.2625732421875, 1.322418451309204; +598.3626098632812, 1.3768746852874756; +598.4625854492188, 1.4332085847854614; +598.5625610351562, 1.490756869316101; +598.6625366210938, 1.5508532524108887; +598.7625732421875, 1.6156210899353027; +598.862548828125, 1.6836152076721191; +598.9625244140625, 1.7529056072235107; +599.0625610351562, 1.8221960067749023; +599.1625366210938, 1.8914566040039062; +599.2625122070312, 1.9611046314239502; +599.362548828125, 2.0296945571899414; +599.4625244140625, 2.0957961082458496; +599.5625, 2.158947229385376; +599.6624755859375, 2.22019100189209; +599.7625122070312, 2.273432970046997; +599.8624877929688, 2.284616231918335; +##END= + +$$ === CHEMSPECTRA INTEGRALS AND MULTIPLETS === +##PAGE=580.0 +##$OBSERVEDINTEGRALS= (X Y Z) +##$OBSERVEDMULTIPLETS= +##$OBSERVEDMULTIPLETSPEAKS= +##END= + +$$ === CHEMSPECTRA PEAK TABLE EDIT === +##TITLE=908f81fc-5890-4b40-b630-40c8c39f2c97 +##JCAMP-DX=5.00 +##DATA TYPE=LC/MSPEAKTABLE +##DATA CLASS=PEAKTABLE +##$CSCATEGORY=EDIT_PEAK +##$CSTHRESHOLD=0.05 +##MAXX=599.8624877929688 +##MAXY=4.565968990325928 +##MINX=0.0 +##MINY=-3.1611175537109375 +##PAGE=580.0 +##NPOINTS=0 +##PEAKTABLE= (XY..XY) +##END= + +$$ === CHEMSPECTRA PEAK TABLE AUTO === +##TITLE=908f81fc-5890-4b40-b630-40c8c39f2c97 +##JCAMP-DX=5.00 +##DATA TYPE=LC/MSPEAKTABLE +##DATA CLASS=PEAKTABLE +##$CSCATEGORY=AUTO_PEAK +##$CSTHRESHOLD=0.05 +##MAXX=599.8624877929688 +##MAXY=4.565968990325928 +##MINX=0.0 +##MINY=-3.1611175537109375 +##PAGE=580.0 +##NPOINTS=100 +##PEAKTABLE= (XY..XY) +84.99468231201172, 4.565968990325928 +55.39653396606445, 4.319600582122803 +54.09661865234375, 4.277393341064453 +59.29629135131836, 3.1173973083496094 +71.09555053710938, 3.015316963195801 +52.79669952392578, 2.523221015930176 +68.99568176269531, 2.290226459503174 +61.49615478515625, 1.5813038349151611 +215.58651733398438, 0.6817057728767395 +214.48658752441406, 0.6767958402633667 +216.78643798828125, 0.6584674119949341 +186.48834228515625, 0.6503090262413025 +211.88674926757812, 0.649869441986084 +212.28672790527344, 0.6483569741249084 +217.786376953125, 0.6480365991592407 +218.58633422851562, 0.6462410092353821 +211.08680725097656, 0.6410852074623108 +188.08824157714844, 0.6361976265907288 +187.48828125, 0.6344616413116455 +189.2881622314453, 0.6241053342819214 +208.48696899414062, 0.6099268794059753 +220.8861846923828, 0.608488917350769 +221.68614196777344, 0.6063058972358704 +183.8885040283203, 0.6005764007568359 +190.4880828857422, 0.5977600812911987 +222.78607177734375, 0.5879849195480347 +207.18704223632812, 0.5852952599525452 +166.6895751953125, 0.5751624703407288 +206.48709106445312, 0.571712851524353 +224.38597106933594, 0.5660131573677063 +164.98968505859375, 0.5637854337692261 +192.08798217773438, 0.5637332797050476 +205.48715209960938, 0.554598867893219 +192.887939453125, 0.5522668361663818 +181.8886260986328, 0.5495175719261169 +226.38584899902344, 0.5474761128425598 +194.18785095214844, 0.5471855401992798 +203.28729248046875, 0.5452856421470642 +181.0886688232422, 0.5448311567306519 +193.68788146972656, 0.5443766713142395 +195.5877685546875, 0.5397573113441467 +204.18722534179688, 0.5347579717636108 +227.185791015625, 0.5345717072486877 +163.78976440429688, 0.5326494574546814 +198.58758544921875, 0.5325973033905029 +198.987548828125, 0.5325451493263245 +271.5830078125, 0.5321726202964783 +278.0826110839844, 0.5313679575920105 +275.98272705078125, 0.5311593413352966 +230.2855987548828, 0.5306974053382874 +197.1876678466797, 0.5298852920532227 +274.2828369140625, 0.5294904112815857 +270.48309326171875, 0.5292296409606934 +268.3832092285156, 0.5285441875457764 +201.68739318847656, 0.5284622311592102 +269.3831481933594, 0.5268305540084839 +168.38946533203125, 0.5251765251159668 +272.282958984375, 0.5240291357040405 +228.68569946289062, 0.5235522985458374 +278.9825439453125, 0.5235522985458374 +269.78314208984375, 0.5234181880950928 +200.6874542236328, 0.5227476358413696 +162.8898162841797, 0.521831214427948 +263.3835144042969, 0.5210638046264648 +266.0833740234375, 0.5199909210205078 +264.1834716796875, 0.5194246768951416 +233.8853759765625, 0.5187541246414185 +280.68243408203125, 0.5182623863220215 +277.0826721191406, 0.5182474851608276 +279.6824951171875, 0.5179122090339661 +281.682373046875, 0.5178079009056091 +231.28553771972656, 0.5160048604011536 +231.885498046875, 0.5155205726623535 +265.08343505859375, 0.5148649215698242 +282.7823181152344, 0.5144327878952026 +267.08331298828125, 0.513814389705658 +286.0821228027344, 0.5136206746101379 +262.18359375, 0.5134269595146179 +284.2822265625, 0.5129054188728333 +169.48939514160156, 0.512830913066864 +267.4832763671875, 0.5119368433952332 +283.3822937011719, 0.5114451050758362 +170.18936157226562, 0.5105659365653992 +240.28497314453125, 0.5105063319206238 +261.5836486816406, 0.5096495151519775 +235.38528442382812, 0.5065128207206726 +256.5839538574219, 0.5056858062744141 +258.9837951660156, 0.5055069923400879 +237.88511657714844, 0.5045533180236816 +257.68389892578125, 0.5043298006057739 +290.08184814453125, 0.5036816000938416 +287.8819885253906, 0.5019605159759521 +260.083740234375, 0.501483678817749 +236.1852264404297, 0.5006343126296997 +178.58883666992188, 0.49930810928344727 +241.88487243652344, 0.4976987838745117 +291.5817565917969, 0.49533694982528687 +255.08404541015625, 0.493071973323822 +252.38421630859375, 0.4929378628730774 +253.58413696289062, 0.49230456352233887 +##END= + +`; + +export default hplcMsUvvisJcamp; diff --git a/src/__tests__/fixtures/lc_ms_jcamp_uvvis_chemstation.js b/src/__tests__/fixtures/lc_ms_jcamp_uvvis_chemstation.js new file mode 100644 index 00000000..7f06b087 --- /dev/null +++ b/src/__tests__/fixtures/lc_ms_jcamp_uvvis_chemstation.js @@ -0,0 +1,15426 @@ +const lcMsUvvisChemstationJcamp = ` + +$$ === CHEMSPECTRA UVVIS PEAK TABLE === +##TITLE=618becfe-a0ce-4983-ba36-5fdcbb7ed595 +##JCAMP-DX=5.00 +##DATA TYPE=LC/MS +##DATA CLASS=PEAK TABLE +##SYMBOL=X, Y +##ORIGIN= +##OWNER= +##XUNITS=RETENTION TIME +##YUNITS=DETECTOR SIGNAL +##UNITS=, MINUTES, ARBITRARY UNITS +##$CSCATEGORY=UVVIS PEAK TABLE +##PAGE=230 +##NPOINTS=3001 +##DATA TABLE= (XY..XY), PEAKS +-0.0435, -4374704305.0; +-0.03683333333333333, -4479966680.0; +-0.03016666666666666, -4505229650.0; +-0.023499999999999997, -3907339360.0; +-0.01683333333333333, -3482079365.0; +-0.010166666666666664, -3195765705.0; +-0.003499999999999996, -3309449070.0; +0.003166666666666672, -3498921345.0; +0.00983333333333334, -3389448475.0; +0.016500000000000008, -3667341145.0; +0.02316666666666667, -3886286885.0; +0.029833333333333337, -3915760350.0; +0.036500000000000005, -3553657780.0; +0.04316666666666667, -3347343525.0; +0.04983333333333334, -3461026890.0; +0.05650000000000001, -4273652425.0; +0.06316666666666668, -4892595190.0; +0.06983333333333334, -4648386480.0; +0.07650000000000001, -3625236195.0; +0.08316666666666668, -2888399570.0; +0.08983333333333333, -2863136600.0; +0.09650000000000002, -2938925510.0; +0.10316666666666667, -3178923725.0; +0.10983333333333335, -3663130650.0; +0.1165, -4383125295.0; +0.12316666666666669, -4543124105.0; +0.12983333333333336, -4147337575.0; +0.1365, -3056819370.0; +0.14316666666666666, -1675777010.0; +0.14983333333333337, -581048310.0; +0.15650000000000003, 67367920.0; +0.16316666666666668, 298945145.0; +0.16983333333333334, 593679795.0; +0.1765, 610521775.0; +0.1831666666666667, 513680390.0; +0.18983333333333335, 239998215.0; +0.1965, 214735245.0; +0.20316666666666666, -172630295.0; +0.20983333333333337, -871572465.0; +0.21650000000000003, -1629461565.0; +0.22316666666666668, -2223141360.0; +0.2298333333333334, -2172615420.0; +0.23650000000000004, -2399982150.0; +0.2431666666666667, -2408403140.0; +0.24983333333333335, -2319982745.0; +0.25650000000000006, -1903143740.0; +0.2631666666666667, -1827354830.0; +0.26983333333333337, -2025248095.0; +0.2765, -1793670870.0; +0.2831666666666667, -989466325.0; +0.2898333333333334, -168419800.0; +0.29650000000000004, 324208115.0; +0.3031666666666667, 597890290.0; +0.30983333333333335, 669468705.0; +0.31650000000000006, 134735840.0; +0.3231666666666667, -1246306520.0; +0.32983333333333337, -2766295215.0; +0.3365, -3692604115.0; +0.34316666666666673, -3461026890.0; +0.3498333333333334, -3023135410.0; +0.35650000000000004, -2715769275.0; +0.3631666666666667, -2126299975.0; +0.3698333333333334, -1237885530.0; +0.37650000000000006, -526311875.0; +0.3831666666666667, -922098405.0; +0.38983333333333337, -1612619585.0; +0.3965, -1625251070.0; +0.40316666666666673, -955782365.0; +0.4098333333333334, -383155045.0; +0.41650000000000004, -383155045.0; +0.4231666666666667, -416839005.0; +0.4298333333333334, -172630295.0; +0.43650000000000005, -155788315.0; +0.4431666666666667, -235787720.0; +0.44983333333333336, -143156830.0; +0.4565, 193682770.0; +0.4631666666666667, 328418610.0; +0.46983333333333344, 122104355.0; +0.47650000000000003, 101051880.0; +0.48316666666666674, -442101975.0; +0.48983333333333334, -1448410280.0; +0.49650000000000005, -2724190265.0; +0.5031666666666668, -3406290455.0; +0.5098333333333334, -3267344120.0; +0.5165000000000001, -3162081745.0; +0.5231666666666667, -2850505115.0; +0.5298333333333334, -2446297595.0; +0.5365000000000001, -1755776415.0; +0.5431666666666667, -1650514040.0; +0.5498333333333334, -2597875415.0; +0.5565000000000001, -3355764515.0; +0.5631666666666667, -3494710850.0; +0.5698333333333334, -2947346500.0; +0.5765, -2732611255.0; +0.5831666666666667, -2703137790.0; +0.5898333333333334, -2433666110.0; +0.5965, -2218930865.0; +0.6031666666666667, -2079984530.0; +0.6098333333333333, -2458929080.0; +0.6165, -2922083530.0; +0.6231666666666668, -3292607090.0; +0.6298333333333334, -3035766895.0; +0.6365000000000001, -3132608280.0; +0.6431666666666668, -3469447880.0; +0.6498333333333334, -3835760945.0; +0.6565000000000001, -3785235005.0; +0.6631666666666667, -3414711445.0; +0.6698333333333334, -3932602330.0; +0.6765000000000001, -4433651235.0; +0.6831666666666667, -5174698355.0; +0.6898333333333334, -5507327460.0; +0.6965000000000001, -5789430625.0; +0.7031666666666667, -5932587455.0; +0.7098333333333334, -5835746070.0; +0.7165, -5705220725.0; +0.7231666666666667, -5759957160.0; +0.7298333333333334, -6029428840.0; +0.7365, -5919955970.0; +0.7431666666666668, -5612589835.0; +0.7498333333333334, -5056804495.0; +0.7565000000000001, -4652596975.0; +0.7631666666666668, -4332599355.0; +0.7698333333333334, -4530492620.0; +0.7765000000000001, -5612589835.0; +0.7831666666666668, -6884159325.0; +0.7898333333333334, -7873625650.0; +0.7965000000000001, -8399937525.0; +0.8031666666666667, -8610462275.0; +0.8098333333333334, -8260991190.0; +0.8165000000000001, -7536786050.0; +0.8231666666666667, -6547319725.0; +0.8298333333333334, -5987323890.0; +0.8365, -5494695975.0; +0.8431666666666667, -4816806280.0; +0.8498333333333334, -4122074605.0; +0.8565, -3536815800.0; +0.8631666666666667, -4033654210.0; +0.8698333333333335, -4871542715.0; +0.8765000000000001, -5427328055.0; +0.8831666666666668, -5722062705.0; +0.8898333333333334, -5726273200.0; +0.8965000000000001, -5570484885.0; +0.9031666666666668, -4265231435.0; +0.9098333333333334, -1869459780.0; +0.9165000000000001, 324208115.0; +0.9231666666666667, 2037879580.0; +0.9298333333333334, 2846294620.0; +0.9365000000000001, 3031556400.0; +0.9431666666666667, 2745242740.0; +0.9498333333333334, 1705250475.0; +0.9565, 905256425.0; +0.9631666666666668, 218945740.0; +0.9698333333333334, 290524155.0; +0.9765, 437891480.0; +0.9831666666666669, 75788910.0; +0.9898333333333335, -572627320.0; +0.9965, -1435778795.0; +1.0031666666666665, -1818933840.0; +1.0098333333333334, -1747355425.0; +1.0165, -164209305.0; +1.0231666666666666, 3191555210.0; +1.0298333333333334, 9730453945.0; +1.0365, 24092452390.0; +1.0431666666666666, 56008004490.0; +1.0498333333333334, 117893860000.0; +1.0565, 212124738100.0; +1.0631666666666666, 320443932470.0; +1.0698333333333334, 405133828900.0; +1.0765, 428615759515.0; +1.0831666666666666, 370898294055.0; +1.0898333333333332, 231749855295.0; +1.0965, 28231368975.0; +1.1031666666666666, -204806897790.0; +1.1098333333333332, -421891599000.0; +1.1165, -588446149715.0; +1.1231666666666666, -698790592180.0; +1.1298333333333332, -770305849755.0; +1.1365, -820781263815.0; +1.1431666666666667, -857008362795.0; +1.1498333333333333, -875054544365.0; +1.1565, -867681967620.0; +1.1631666666666667, -827433845915.0; +1.1698333333333333, -750756521470.0; +1.1764999999999999, -642222591855.0; +1.1831666666666667, -513937230195.0; +1.1898333333333333, -379597176725.0; +1.1965, -249130778655.0; +1.2031666666666667, -125203279320.0; +1.2098333333333333, -5233645285.0; +1.2165, 114424412120.0; +1.2231666666666667, 236204559005.0; +1.2298333333333333, 359647851415.0; +1.2365, 485141654890.0; +1.2431666666666668, 609582834615.0; +1.2498333333333334, 725485130480.0; +1.2565, 818503386020.0; +1.2631666666666665, 867943018310.0; +1.2698333333333334, 855429427170.0; +1.2765, 774390029905.0; +1.2831666666666666, 638546829720.0; +1.2898333333333334, 473735423935.0; +1.2965, 306574561940.0; +1.3031666666666666, 163384047980.0; +1.3098333333333334, 63890051130.0; +1.3165, 14054632310.0; +1.3231666666666666, 1221043550.0; +1.3298333333333334, 5141014395.0; +1.3365, 12871483215.0; +1.3431666666666666, 18698808295.0; +1.3498333333333332, 22286150035.0; +1.3565, 23961927045.0; +1.3631666666666666, 25077708220.0; +1.3698333333333332, 26147173950.0; +1.3765, 26871379090.0; +1.3831666666666667, 27317691560.0; +1.3898333333333333, 27439795915.0; +1.3965, 27528216310.0; +1.4031666666666667, 27764004030.0; +1.4098333333333333, 28479788180.0; +1.4165, 29448202030.0; +1.4231666666666667, 30340826970.0; +1.4298333333333333, 30732403005.0; +1.4365, 30846086370.0; +1.4431666666666667, 30643982610.0; +1.4498333333333333, 30323984990.0; +1.4565, 30100828755.0; +1.4631666666666667, 29936619450.0; +1.4698333333333333, 30096618260.0; +1.4765, 30147144200.0; +1.4831666666666667, 29734515690.0; +1.4898333333333333, 28837680255.0; +1.4965, 27818740465.0; +1.5031666666666668, 26921905030.0; +1.5098333333333334, 25540862670.0; +1.5165, 23671402890.0; +1.5231666666666668, 22433517360.0; +1.5298333333333334, 22050362315.0; +1.5365, 22164045680.0; +1.5431666666666666, 21987204890.0; +1.5498333333333334, 21822995585.0; +1.5565, 22037730830.0; +1.5631666666666666, 21822995585.0; +1.5698333333333334, 21225105295.0; +1.5765, 20151429070.0; +1.5831666666666666, 18799860175.0; +1.5898333333333334, 17208293065.0; +1.5965, 15705146350.0; +1.6031666666666666, 15094624575.0; +1.6098333333333334, 14804100420.0; +1.6165, 14454629335.0; +1.6231666666666666, 14429366365.0; +1.6298333333333332, 15178834475.0; +1.6365, 16033564960.0; +1.6431666666666667, 15978828525.0; +1.6498333333333333, 15528305560.0; +1.6565, 15717777835.0; +1.6631666666666667, 16433561985.0; +1.6698333333333333, 16433561985.0; +1.6765, 15797777240.0; +1.6831666666666667, 15178834475.0; +1.6898333333333333, 14753574480.0; +1.6965000000000001, 13806213105.0; +1.7031666666666667, 12319908370.0; +1.7098333333333333, 11835701445.0; +1.7165, 12058857680.0; +1.7231666666666667, 12711484405.0; +1.7298333333333333, 12522012130.0; +1.7365, 11717807585.0; +1.7431666666666668, 11279916105.0; +1.7498333333333334, 10812551160.0; +1.7565, 10547289975.0; +1.7631666666666668, 10143082455.0; +1.7698333333333334, 10345186215.0; +1.7765, 11612545210.0; +1.7831666666666668, 12652537475.0; +1.7898333333333334, 13515688950.0; +1.7965, 14307262010.0; +1.8031666666666666, 15014625170.0; +1.8098333333333334, 15873566150.0; +1.8165, 15852513675.0; +1.8231666666666666, 15524095065.0; +1.8298333333333334, 14829363390.0; +1.8365, 14138842210.0; +1.8431666666666666, 13734634690.0; +1.8498333333333334, 12530433120.0; +1.8565, 10913603040.0; +1.8631666666666666, 9477824245.0; +1.8698333333333335, 8610462275.0; +1.8765, 7810468225.0; +1.8831666666666667, 6741002495.0; +1.8898333333333333, 6004165870.0; +1.8965, 5953639930.0; +1.9031666666666667, 5974692405.0; +1.9098333333333333, 6117849235.0; +1.9165, 6808370415.0; +1.9231666666666667, 7549417535.0; +1.9298333333333333, 8117834360.0; +1.9365, 8159939310.0; +1.9431666666666667, 8774671580.0; +1.9498333333333333, 9919926220.0; +1.9565, 11460967390.0; +1.9631666666666667, 13839897065.0; +1.9698333333333335, 16968294850.0; +1.9765, 20374585305.0; +1.9831666666666667, 22761935970.0; +1.9898333333333336, 23696665860.0; +1.9965, 23393510220.0; +2.003166666666667, 22084046275.0; +2.009833333333334, 20176692040.0; +2.0165, 18446178595.0; +2.023166666666667, 17237766530.0; +2.0298333333333334, 16025143970.0; +2.0365, 15065151110.0; +2.043166666666667, 14867257845.0; +2.0498333333333334, 16412509510.0; +2.0565, 19545117790.0; +2.063166666666667, 23738770810.0; +2.0698333333333334, 28985047580.0; +2.0765000000000002, 34012378610.0; +2.083166666666667, 38269189055.0; +2.0898333333333334, 40601803285.0; +2.0965000000000003, 40669171205.0; +2.103166666666667, 38576555190.0; +2.1098333333333334, 34799741175.0; +2.1165000000000003, 30269248555.0; +2.123166666666667, 25102971190.0; +2.1298333333333335, 19907220360.0; +2.1365000000000003, 14841994875.0; +2.143166666666667, 10420975125.0; +2.1498333333333335, 7031526650.0; +2.1565000000000003, 4517861135.0; +2.163166666666667, 2467350070.0; +2.1698333333333335, 501048905.0; +2.1765000000000003, -888414445.0; +2.183166666666667, -1781039385.0; +2.1898333333333335, -2551559970.0; +2.1965000000000003, -3574710255.0; +2.2031666666666667, -4471545690.0; +2.2098333333333335, -4997857565.0; +2.2165000000000004, -3284186100.0; +2.2231666666666667, 141796840115.0; +2.2298333333333336, 914944773995.0; +2.2365000000000004, 2570831405615.0; +2.2431666666666668, 4995524950770.0; +2.2498333333333336, 7695205924375.0; +2.2565000000000004, 10407640487335.0; +2.2631666666666668, 12933272229125.0; +2.2698333333333336, 14724879956575.0; +2.2765000000000004, 15489366902240.0; +2.283166666666667, 15322151303810.0; +2.2898333333333336, 14769334362785.0; +2.2965000000000004, 14125890727380.0; +2.303166666666667, 13492190177405.0; +2.3098333333333336, 12940935330025.0; +2.3165000000000004, 12520525825265.0; +2.323166666666667, 12254919379675.0; +2.3298333333333336, 12101122628810.0; +2.3365000000000005, 12020508491540.0; +2.343166666666667, 11971755169935.0; +2.3498333333333337, 11942972226115.0; +2.3565000000000005, 11936437537875.0; +2.363166666666667, 11946816408050.0; +2.3698333333333337, 11965216271200.0; +2.3765000000000005, 11988411888155.0; +2.383166666666667, 12011236981550.0; +2.3898333333333337, 12030807362310.0; +2.3965, 12033708393365.0; +2.403166666666667, 12031123149435.0; +2.4098333333333337, 12018420086020.0; +2.4165, 11997409715970.0; +2.423166666666667, 11966054159705.0; +2.4298333333333337, 11934584920075.0; +2.4365, 11904736721020.0; +2.443166666666667, 11870240135485.0; +2.4498333333333338, 11834000405020.0; +2.4565, 11799394346615.0; +2.463166666666667, 11771032452295.0; +2.4698333333333338, 11750472605210.0; +2.4765, 11750586288575.0; +2.483166666666667, 11759874640545.0; +2.489833333333334, 11773588222760.0; +2.4965, 11777630297960.0; +2.503166666666667, 11777390299745.0; +2.509833333333334, 11770358773095.0; +2.5165, 11749516822845.0; +2.523166666666667, 11729390656745.0; +2.529833333333334, 11717799164010.0; +2.5365, 11714228664250.0; +2.543166666666667, 11701079288365.0; +2.549833333333334, 11670502673675.0; +2.5565, 11631665067795.0; +2.563166666666667, 11577787573775.0; +2.5698333333333334, 11505514427100.0; +2.5765000000000002, 11433093913100.0; +2.583166666666667, 11372968044500.0; +2.5898333333333334, 11323178941125.0; +2.5965000000000003, 11270130914620.0; +2.603166666666667, 11211108195710.0; +2.6098333333333334, 11144157114715.0; +2.6165000000000003, 11066827163545.0; +2.623166666666667, 10984810931440.0; +2.6298333333333335, 10907944134720.0; +2.6365000000000003, 10822336350380.0; +2.643166666666667, 10732021232630.0; +2.6498333333333335, 10649057639150.0; +2.6565000000000003, 10575289766750.0; +2.663166666666667, 10501201896730.0; +2.6698333333333335, 10427055079780.0; +2.6765000000000003, 10366339741880.0; +2.683166666666667, 10315173806640.0; +2.6898333333333335, 10255860563575.0; +2.6965000000000003, 10184160044220.0; +2.703166666666667, 10109411126485.0; +2.7098333333333335, 10026594900330.0; +2.7165000000000004, 9942898680720.0; +2.723166666666667, 9852423564160.0; +2.7298333333333336, 9772613631435.0; +2.7365000000000004, 9704689926095.0; +2.7431666666666668, 9645326157090.0; +2.7498333333333336, 9578897177475.0; +2.7565000000000004, 9493373603035.0; +2.7631666666666668, 9403555323695.0; +2.7698333333333336, 9309004447975.0; +2.7765000000000004, 9209240979445.0; +2.783166666666667, 9108715411320.0; +2.7898333333333336, 9012034025130.0; +2.7965000000000004, 8923453631320.0; +2.803166666666667, 8831100633990.0; +2.8098333333333336, 8727135091450.0; +2.8165000000000004, 8610521221930.0; +2.823166666666667, 8474808547090.0; +2.8298333333333336, 8338497981960.0; +2.8365000000000005, 8202098996435.0; +2.843166666666667, 8072735748055.0; +2.8498333333333337, 7950345079395.0; +2.8565000000000005, 7835971193215.0; +2.863166666666667, 7726999372120.0; +2.8698333333333337, 7620208587435.0; +2.8765000000000005, 7519211443870.0; +2.883166666666667, 7420138496520.0; +2.8898333333333337, 7319739243245.0; +2.8965000000000005, 7217697896920.0; +2.903166666666667, 7120629145190.0; +2.9098333333333337, 7020065682610.0; +2.9165000000000005, 6917594865795.0; +2.923166666666667, 6814201950575.0; +2.9298333333333337, 6715200581640.0; +2.9365, 6622388640355.0; +2.943166666666667, 6528869335910.0; +2.9498333333333338, 6434234250290.0; +2.9565, 6336559187280.0; +2.963166666666667, 6241595683050.0; +2.9698333333333338, 6146442706545.0; +2.9765, 6049773951840.0; +2.983166666666667, 5956347278285.0; +2.989833333333334, 5870642652560.0; +2.9965, 5788609578475.0; +3.003166666666667, 5705894404200.0; +3.009833333333334, 5623617121405.0; +3.0165, 5535655670360.0; +3.023166666666667, 5434094320465.0; +3.029833333333334, 5319998326955.0; +3.0365, 5191110864510.0; +3.043166666666667, 5048939290340.0; +3.049833333333334, 4891753091000.0; +3.0565, 4732293224360.0; +3.063166666666667, 4580942771090.0; +3.069833333333334, 4442017488565.0; +3.0765000000000002, 4318233146060.0; +3.083166666666667, 4208250806165.0; +3.089833333333334, 4115590442700.0; +3.0965000000000003, 4037683653715.0; +3.103166666666667, 3970315733715.0; +3.1098333333333334, 3909575132845.0; +3.1165000000000003, 3856080793870.0; +3.123166666666667, 3808679041160.0; +3.1298333333333335, 3762557278930.0; +3.1365000000000003, 3714902896520.0; +3.143166666666667, 3668200085980.0; +3.1498333333333335, 3622781476415.0; +3.1565000000000003, 3578701804260.0; +3.163166666666667, 3534154767160.0; +3.1698333333333335, 3490075095005.0; +3.1765000000000003, 3447435412140.0; +3.183166666666667, 3408096757355.0; +3.1898333333333335, 3373014913015.0; +3.1965000000000003, 3340227788450.0; +3.203166666666667, 3308101711600.0; +3.2098333333333335, 3276000897720.0; +3.2165000000000004, 3244628499475.0; +3.223166666666667, 3213188733310.0; +3.2298333333333336, 3181344759625.0; +3.2365000000000004, 3147816587940.0; +3.243166666666667, 3114452625560.0; +3.2498333333333336, 3083370751470.0; +3.2565000000000004, 3055943587040.0; +3.263166666666667, 3030680617040.0; +3.2698333333333336, 3004558706060.0; +3.2765000000000004, 2977064173710.0; +3.283166666666667, 2948740173845.0; +3.2898333333333336, 2921321430405.0; +3.2965000000000004, 2892761642820.0; +3.303166666666667, 2864302907115.0; +3.3098333333333336, 2837667315745.0; +3.3165000000000004, 2815216956405.0; +3.323166666666667, 2795621312675.0; +3.3298333333333336, 2775730934295.0; +3.3365000000000005, 2756072133140.0; +3.343166666666667, 2735849125655.0; +3.3498333333333337, 2715146121740.0; +3.3565000000000005, 2693078917445.0; +3.363166666666667, 2670990660675.0; +3.3698333333333337, 2650342393195.0; +3.3765000000000005, 2629790967100.0; +3.383166666666667, 2608869017445.0; +3.3898333333333337, 2584608145255.0; +3.3965000000000005, 2558696759025.0; +3.403166666666667, 2532600111015.0; +3.4098333333333337, 2508368712290.0; +3.4165000000000005, 2485981510375.0; +3.423166666666667, 2463164837970.0; +3.4298333333333337, 2441922890695.0; +3.4365000000000006, 2422714612505.0; +3.443166666666667, 2406491575270.0; +3.4498333333333338, 2389552753885.0; +3.4565000000000006, 2371973937260.0; +3.463166666666667, 2354584592910.0; +3.4698333333333338, 2338588922405.0; +3.4765, 2322260622795.0; +3.483166666666667, 2303827075685.0; +3.489833333333334, 2285393528575.0; +3.4965, 2267406293935.0; +3.503166666666667, 2250244316315.0; +3.509833333333334, 2232560237315.0; +3.5165, 2214046690800.0; +3.523166666666667, 2195891036360.0; +3.529833333333334, 2178489060525.0; +3.5365, 2162274444280.0; +3.543166666666667, 2146788243670.0; +3.549833333333334, 2131238885635.0; +3.5565, 2115942157300.0; +3.563166666666667, 2099424385415.0; +3.569833333333334, 2081348730380.0; +3.5765000000000002, 2061563614375.0; +3.583166666666667, 2041471132235.0; +3.589833333333334, 2021012337030.0; +3.5965000000000003, 2001450377260.0; +3.603166666666667, 1982953672725.0; +3.609833333333334, 1965265383230.0; +3.6165000000000003, 1948254983430.0; +3.623166666666667, 1932074051145.0; +3.629833333333334, 1917547843395.0; +3.6365000000000003, 1902015327340.0; +3.643166666666667, 1884567036060.0; +3.6498333333333335, 1866238751325.0; +3.6565000000000003, 1847986255500.0; +3.663166666666667, 1828799029785.0; +3.6698333333333335, 1808778126060.0; +3.6765000000000003, 1789157219360.0; +3.683166666666667, 1771557350260.0; +3.6898333333333335, 1754951157980.0; +3.6965000000000003, 1738046020555.0; +3.703166666666667, 1721456670255.0; +3.7098333333333335, 1704639953225.0; +3.7165000000000004, 1688181128270.0; +3.723166666666667, 1671410726685.0; +3.7298333333333336, 1654084539760.0; +3.7365000000000004, 1636787826300.0; +3.743166666666667, 1618910064530.0; +3.7498333333333336, 1600535464350.0; +3.7565000000000004, 1581533500415.0; +3.763166666666667, 1562030487575.0; +3.7698333333333336, 1543575887990.0; +3.7765000000000004, 1525066551970.0; +3.7831666666666672, 1507319315545.0; +3.7898333333333336, 1489445764270.0; +3.7965000000000004, 1471643791410.0; +3.8031666666666673, 1453808134590.0; +3.8098333333333336, 1434275648285.0; +3.8165000000000004, 1414768424950.0; +3.823166666666667, 1394372787170.0; +3.8298333333333336, 1374280305030.0; +3.8365000000000005, 1354074139525.0; +3.843166666666667, 1334385864905.0; +3.8498333333333337, 1315388111465.0; +3.8565000000000005, 1295282997840.0; +3.863166666666667, 1275228410155.0; +3.8698333333333337, 1255396978705.0; +3.8765000000000005, 1236361330810.0; +3.883166666666667, 1216626740745.0; +3.8898333333333337, 1196264786925.0; +3.8965000000000005, 1176273356665.0; +3.903166666666667, 1155414564435.0; +3.9098333333333337, 1134244195575.0; +3.9165000000000005, 1112400147515.0; +3.923166666666667, 1091545565780.0; +3.9298333333333337, 1071482557105.0; +3.9365000000000006, 1051634283675.0; +3.943166666666667, 1031773378760.0; +3.9498333333333338, 1010923007520.0; +3.9565, 989314747180.0; +3.963166666666667, 966325444480.0; +3.9698333333333338, 942443516840.0; +3.9765000000000006, 918363695935.0; +3.9831666666666674, 894864923340.0; +3.9898333333333333, 872174565785.0; +3.9965, 850077888025.0; +4.003166666666667, 828309628875.0; +4.009833333333334, 806730842000.0; +4.016500000000001, 784853109980.0; +4.0231666666666674, 762714327270.0; +4.029833333333333, 740870279210.0; +4.0365, 718967284220.0; +4.043166666666667, 696853764480.0; +4.049833333333334, 674546561970.0; +4.056500000000001, 652365674310.0; +4.0631666666666675, 630172155165.0; +4.069833333333333, 607839689685.0; +4.0765, 585620907570.0; +4.083166666666667, 564012647230.0; +4.089833333333334, 542193862140.0; +4.096500000000001, 520172973290.0; +4.103166666666667, 498497345030.0; +4.1098333333333334, 476788032810.0; +4.1165, 454623987130.0; +4.123166666666667, 431946261060.0; +4.129833333333334, 410030634585.0; +4.136500000000001, 389192894830.0; +4.143166666666667, 368136209335.0; +4.1498333333333335, 346906893545.0; +4.1565, 326928094770.0; +4.163166666666667, 309130332405.0; +4.169833333333334, 292562034580.0; +4.176500000000001, 276141104080.0; +4.183166666666667, 260419115750.0; +4.1898333333333335, 245909749980.0; +4.1965, 232760374095.0; +4.203166666666667, 221008882550.0; +4.209833333333334, 210878431580.0; +4.216500000000001, 202558493460.0; +4.223166666666667, 195674334135.0; +4.229833333333334, 190520688255.0; +4.2365, 186225983355.0; +4.243166666666667, 182007067365.0; +4.249833333333334, 177758677910.0; +4.256500000000001, 173948179935.0; +4.263166666666667, 170925044525.0; +4.269833333333334, 168087170895.0; +4.2765, 165514558450.0; +4.283166666666667, 162718789770.0; +4.289833333333334, 160407228015.0; +4.2965, 158664083085.0; +4.303166666666667, 157838826065.0; +4.309833333333334, 157771458145.0; +4.3165000000000004, 157741984680.0; +4.323166666666667, 158369348435.0; +4.329833333333334, 158655662095.0; +4.3365, 158285138535.0; +4.343166666666667, 156819886275.0; +4.349833333333334, 154950426495.0; +4.3565000000000005, 153771487895.0; +4.363166666666667, 153219913050.0; +4.369833333333334, 153236755030.0; +4.3765, 153969381160.0; +4.383166666666667, 155864103910.0; +4.389833333333334, 158024087845.0; +4.3965000000000005, 159308288820.0; +4.403166666666667, 159047238130.0; +4.409833333333334, 158659872590.0; +4.4165, 158899870805.0; +4.423166666666667, 159375656740.0; +4.429833333333334, 159763022280.0; +4.4365000000000006, 160516700885.0; +4.443166666666667, 162596685415.0; +4.449833333333333, 164550355095.0; +4.4565, 165177718850.0; +4.463166666666667, 164933510140.0; +4.469833333333334, 164424040245.0; +4.476500000000001, 164617723015.0; +4.483166666666667, 164592460045.0; +4.489833333333333, 165034562020.0; +4.4965, 165889292505.0; +4.503166666666667, 166958758235.0; +4.509833333333334, 168512430890.0; +4.516500000000001, 169548212660.0; +4.5231666666666674, 170411364135.0; +4.529833333333333, 170832413635.0; +4.5365, 171110306305.0; +4.543166666666667, 171649249665.0; +4.549833333333334, 172457664705.0; +4.556500000000001, 173687129245.0; +4.5631666666666675, 174659753590.0; +4.569833333333333, 175455537145.0; +4.5765, 176958683860.0; +4.583166666666667, 178428146615.0; +4.589833333333334, 179531296305.0; +4.596500000000001, 179716558085.0; +4.6031666666666675, 179893398875.0; +4.6098333333333334, 180226027980.0; +4.6165, 180268132930.0; +4.623166666666667, 180642866985.0; +4.629833333333334, 180731287380.0; +4.636500000000001, 180693392925.0; +4.643166666666667, 180550236095.0; +4.6498333333333335, 180760760845.0; +4.6565, 181312335690.0; +4.663166666666667, 181573386380.0; +4.669833333333334, 182087066770.0; +4.676500000000001, 183455477645.0; +4.683166666666667, 185333358415.0; +4.6898333333333335, 186967030475.0; +4.6965, 188070180165.0; +4.703166666666667, 189505958960.0; +4.709833333333334, 191442786660.0; +4.716500000000001, 193308035945.0; +4.723166666666667, 194356449200.0; +4.729833333333334, 195131180280.0; +4.7365, 196171172545.0; +4.743166666666667, 196882746200.0; +4.749833333333334, 197143796890.0; +4.756500000000001, 196811167785.0; +4.763166666666667, 197072218475.0; +4.769833333333334, 197396426590.0; +4.7765, 197796423615.0; +4.783166666666667, 198550102220.0; +4.789833333333334, 199160623995.0; +4.796500000000001, 199813250720.0; +4.803166666666667, 200234300220.0; +4.809833333333334, 201160609120.0; +4.8165000000000004, 202175338415.0; +4.823166666666667, 202739544745.0; +4.829833333333334, 203779537010.0; +4.8365, 205324788675.0; +4.843166666666667, 207177406475.0; +4.849833333333334, 208457396955.0; +4.8565000000000005, 209627914565.0; +4.863166666666667, 211168955735.0; +4.869833333333334, 212082633150.0; +4.8765, 212651049975.0; +4.883166666666667, 212680523440.0; +4.889833333333334, 212853153735.0; +4.8965000000000005, 212992100070.0; +4.903166666666667, 212878416705.0; +4.909833333333334, 213181572345.0; +4.9165, 213202624820.0; +4.923166666666667, 213804725605.0; +4.929833333333334, 214983664205.0; +4.9365000000000006, 216646809730.0; +4.943166666666667, 218095220010.0; +4.949833333333334, 218987844950.0; +4.9565, 220057310680.0; +4.963166666666667, 221459405515.0; +4.969833333333334, 222853079360.0; +4.976500000000001, 223859387665.0; +4.983166666666667, 225055168245.0; +4.989833333333333, 226318316745.0; +4.9965, 227261467625.0; +5.003166666666667, 227631991185.0; +5.009833333333334, 227893041875.0; +5.016500000000001, 228831982260.0; +5.0231666666666674, 229686712745.0; +5.029833333333333, 230351970955.0; +5.0365, 231514067575.0; +5.043166666666667, 233114055675.0; +5.049833333333334, 235311934065.0; +5.056500000000001, 236831922760.0; +5.0631666666666675, 238461384325.0; +5.069833333333333, 240339265095.0; +5.0765, 242162409430.0; +5.083166666666667, 243505557335.0; +5.089833333333334, 243766608025.0; +5.096500000000001, 243252927635.0; +5.1031666666666675, 242781352195.0; +5.1098333333333334, 242903456550.0; +5.1165, 243833975945.0; +5.123166666666667, 244899231180.0; +5.129833333333334, 246309747005.0; +5.136500000000001, 248473941435.0; +5.1431666666666676, 250760240220.0; +5.1498333333333335, 252983381580.0; +5.1565, 254835999380.0; +5.163166666666667, 257004404305.0; +5.169833333333334, 258520182505.0; +5.176500000000001, 259732805065.0; +5.183166666666667, 260305432385.0; +5.1898333333333335, 260444378720.0; +5.1965, 260570693570.0; +5.203166666666667, 260705429410.0; +5.209833333333334, 261240162275.0; +5.216500000000001, 261543317915.0; +5.223166666666667, 261804368605.0; +5.229833333333334, 262591731170.0; +5.2365, 262835939880.0; +5.243166666666667, 262979096710.0; +5.249833333333334, 263126464035.0; +5.256500000000001, 263795932740.0; +5.263166666666667, 265185396090.0; +5.269833333333334, 266675911320.0; +5.2765, 268899052680.0; +5.283166666666667, 270856932855.0; +5.289833333333334, 272280080165.0; +5.296500000000001, 273240073025.0; +5.303166666666667, 273905331235.0; +5.309833333333334, 274330591230.0; +5.3165000000000004, 274208486875.0; +5.323166666666667, 274461116575.0; +5.329833333333334, 275446372405.0; +5.336500000000001, 276818993775.0; +5.343166666666667, 278591612170.0; +5.349833333333334, 280418967000.0; +5.3565000000000005, 282583161430.0; +5.363166666666667, 284174728540.0; +5.369833333333334, 285922083965.0; +5.3765, 287446283155.0; +5.383166666666667, 288423117995.0; +5.389833333333334, 288907324920.0; +5.3965000000000005, 289412584320.0; +5.403166666666667, 290427313615.0; +5.409833333333334, 291623094195.0; +5.4165, 293164135365.0; +5.423166666666667, 294894648810.0; +5.429833333333334, 296949370370.0; +5.4365000000000006, 298915671535.0; +5.443166666666667, 300983024580.0; +5.449833333333334, 302423013870.0; +5.4565, 303041956635.0; +5.463166666666667, 303307217820.0; +5.469833333333334, 303458795640.0; +5.476500000000001, 303694583360.0; +5.483166666666667, 303858792665.0; +5.489833333333334, 304014580980.0; +5.4965, 305134572650.0; +5.503166666666667, 306776665700.0; +5.509833333333334, 308629283500.0; +5.516500000000001, 309846116555.0; +5.5231666666666674, 310742951990.0; +5.529833333333333, 312123994350.0; +5.5365, 313635562055.0; +5.543166666666667, 315041867385.0; +5.549833333333334, 316149227570.0; +5.556500000000001, 317479743990.0; +5.5631666666666675, 319159731495.0; +5.569833333333333, 320831298010.0; +5.5765, 322069183540.0; +5.583166666666667, 323033386895.0; +5.589833333333334, 324342850840.0; +5.596500000000001, 326081785275.0; +5.6031666666666675, 327841772185.0; +5.6098333333333334, 329475444245.0; +5.6165, 331088063830.0; +5.623166666666667, 333231205785.0; +5.629833333333334, 335003824180.0; +5.636500000000001, 336464865945.0; +5.6431666666666676, 337568015635.0; +5.6498333333333335, 338700638790.0; +5.6565, 340262732435.0; +5.663166666666667, 341782721130.0; +5.669833333333334, 343795337740.0; +5.676500000000001, 346140583455.0; +5.683166666666668, 348574249565.0; +5.6898333333333335, 350671076075.0; +5.6965, 352001592495.0; +5.703166666666667, 353066847730.0; +5.709833333333334, 354191049895.0; +5.716500000000001, 355386830475.0; +5.723166666666667, 356637347490.0; +5.729833333333334, 357858391040.0; +5.7365, 359134171025.0; +5.743166666666667, 360144689825.0; +5.749833333333334, 360603633780.0; +5.756500000000001, 360418372000.0; +5.763166666666667, 359828902700.0; +5.769833333333334, 359673114385.0; +5.7765, 360279425665.0; +5.783166666666667, 361319417930.0; +5.789833333333334, 362287831780.0; +5.796500000000001, 363626769190.0; +5.803166666666667, 365816226590.0; +5.809833333333334, 368073051910.0; +5.8165000000000004, 369475146745.0; +5.823166666666667, 370494086535.0; +5.829833333333334, 371816181965.0; +5.836500000000001, 373513011450.0; +5.843166666666667, 375222472420.0; +5.849833333333334, 376780355570.0; +5.8565000000000005, 378207713375.0; +5.863166666666667, 379256126630.0; +5.869833333333334, 379752965040.0; +5.876500000000001, 379677176130.0; +5.883166666666667, 379226653165.0; +5.889833333333334, 378700341290.0; +5.8965000000000005, 378611920895.0; +5.903166666666667, 379007707425.0; +5.909833333333334, 379534019300.0; +5.9165, 379811911970.0; +5.923166666666667, 379390862470.0; +5.929833333333334, 378637183865.0; +5.9365000000000006, 378254028820.0; +5.943166666666667, 378401396145.0; +5.949833333333334, 379517177320.0; +5.9565, 380851904235.0; +5.963166666666667, 382253999070.0; +5.969833333333334, 383500305590.0; +5.976500000000001, 384708717655.0; +5.983166666666667, 385832919820.0; +5.989833333333334, 386641334860.0; +5.9965, 387685537620.0; +6.003166666666667, 389247631265.0; +6.009833333333334, 391378141735.0; +6.016500000000001, 393576020125.0; +6.0231666666666674, 395677057130.0; +6.029833333333334, 397613884830.0; +6.0365, 399378082235.0; +6.043166666666667, 401129648155.0; +6.049833333333334, 402893845560.0; +6.056500000000001, 404767515835.0; +6.0631666666666675, 406826447890.0; +6.069833333333333, 408658013215.0; +6.0765, 410199054385.0; +6.083166666666667, 411748516545.0; +6.089833333333334, 413516924445.0; +6.096500000000001, 415580066995.0; +6.1031666666666675, 417512684200.0; +6.1098333333333334, 420093717635.0; +6.1165, 422881065325.0; +6.123166666666667, 425988410635.0; +6.129833333333334, 429272596735.0; +6.136500000000001, 432531519865.0; +6.1431666666666676, 435596760225.0; +6.1498333333333335, 438287266530.0; +6.1565, 441798819360.0; +6.163166666666667, 445579843870.0; +6.169833333333334, 448729294130.0; +6.176500000000001, 450758752720.0; +6.183166666666668, 452969262595.0; +6.1898333333333335, 455411349695.0; +6.1965, 457676596005.0; +6.203166666666667, 459739738555.0; +6.209833333333334, 462501823275.0; +6.216500000000001, 465802851355.0; +6.223166666666668, 468998617060.0; +6.229833333333334, 472282803160.0; +6.2365, 475806987475.0; +6.243166666666667, 479878536140.0; +6.249833333333334, 483891137875.0; +6.256500000000001, 488055317430.0; +6.263166666666667, 491731079565.0; +6.269833333333334, 494733162500.0; +6.2765, 497571036130.0; +6.283166666666667, 499945755310.0; +6.289833333333334, 501962582415.0; +6.296500000000001, 502994153690.0; +6.303166666666667, 503962567540.0; +6.309833333333334, 504926770895.0; +6.3165000000000004, 504977296835.0; +6.323166666666667, 503655201405.0; +6.329833333333334, 501554164400.0; +6.336500000000001, 500160490555.0; +6.343166666666667, 499777335510.0; +6.349833333333334, 499903650360.0; +6.3565000000000005, 500771012330.0; +6.363166666666667, 502450999835.0; +6.369833333333334, 504749930105.0; +6.376500000000001, 507444646905.0; +6.383166666666667, 510539360730.0; +6.389833333333334, 514042492570.0; +6.3965000000000005, 517322468175.0; +6.403166666666667, 520560338830.0; +6.409833333333334, 523806630475.0; +6.416500000000001, 526825555390.0; +6.423166666666667, 529276063480.0; +6.429833333333334, 531785518500.0; +6.4365000000000006, 534956021235.0; +6.443166666666667, 538993885940.0; +6.449833333333334, 543697008855.0; +6.4565, 548631708995.0; +6.463166666666667, 553296937455.0; +6.469833333333334, 557242171270.0; +6.476500000000001, 561200036570.0; +6.483166666666667, 564922114150.0; +6.489833333333334, 568959978855.0; +6.4965, 573292578210.0; +6.503166666666667, 577999911620.0; +6.509833333333334, 583178820470.0; +6.516500000000001, 588231414470.0; +6.5231666666666674, 594054529055.0; +6.529833333333334, 600071326410.0; +6.5365, 606344963960.0; +6.543166666666667, 611961764290.0; +6.549833333333334, 615742788800.0; +6.556500000000001, 615675420880.0; +6.5631666666666675, 610698615790.0; +6.569833333333334, 600648164225.0; +6.5765, 586383007165.0; +6.583166666666667, 569212608555.0; +6.589833333333334, 551520108565.0; +6.596500000000001, 536122328350.0; +6.6031666666666675, 524097154630.0; +6.6098333333333334, 515621428195.0; +6.6165, 510118311230.0; +6.623166666666667, 507389910470.0; +6.629833333333334, 506274129295.0; +6.636500000000001, 506173077415.0; +6.6431666666666676, 506472022560.0; +6.6498333333333335, 506724652260.0; +6.6565, 506998334435.0; +6.663166666666667, 507920432840.0; +6.669833333333334, 509600420345.0; +6.676500000000001, 510893042310.0; +6.683166666666668, 511861456160.0; +6.6898333333333335, 513305655945.0; +6.6965, 515798268985.0; +6.703166666666667, 518248777075.0; +6.709833333333334, 520480339425.0; +6.716500000000001, 522105590495.0; +6.723166666666668, 522779269695.0; +6.729833333333334, 521448753275.0; +6.7365, 517785622625.0; +6.743166666666667, 511983560515.0; +6.749833333333334, 504253091695.0; +6.756500000000001, 495903680110.0; +6.763166666666668, 487440585160.0; +6.769833333333334, 479575380500.0; +6.7765, 472110172865.0; +6.783166666666667, 466084954520.0; +6.789833333333334, 461617619325.0; +6.796500000000001, 458897639555.0; +6.803166666666667, 457487123730.0; +6.809833333333334, 457394492840.0; +6.8165000000000004, 458169223920.0; +6.823166666666667, 458535536985.0; +6.829833333333334, 458876587080.0; +6.836500000000001, 458581852430.0; +6.843166666666667, 458034488080.0; +6.849833333333334, 457609228085.0; +6.8565000000000005, 458047119565.0; +6.863166666666667, 459432372420.0; +6.869833333333334, 460493417160.0; +6.876500000000001, 461276569230.0; +6.883166666666667, 461891301500.0; +6.889833333333334, 462354455950.0; +6.8965000000000005, 462362876940.0; +6.903166666666667, 462148141695.0; +6.909833333333334, 462531296740.0; +6.916500000000001, 463996549000.0; +6.923166666666667, 466682844810.0; +6.929833333333334, 469680717250.0; +6.9365000000000006, 472901745925.0; +6.943166666666667, 475646988665.0; +6.949833333333334, 477811183095.0; +6.956500000000001, 478868017340.0; +6.963166666666667, 478973279715.0; +6.969833333333334, 478922753775.0; +6.976500000000001, 478253285070.0; +6.983166666666667, 477971181905.0; +6.989833333333334, 477954339925.0; +6.9965, 478918543280.0; +7.003166666666667, 480038534950.0; +7.009833333333334, 481188000085.0; +7.016500000000001, 482699567790.0; +7.0231666666666674, 484451133710.0; +7.029833333333334, 486131121215.0; +7.0365, 487550058030.0; +7.043166666666667, 489074257220.0; +7.049833333333334, 490552140965.0; +7.056500000000001, 492067919165.0; +7.0631666666666675, 493166858360.0; +7.069833333333334, 494177377160.0; +7.0765, 494977371210.0; +7.083166666666667, 495962627040.0; +7.089833333333334, 496834199505.0; +7.096500000000001, 497962612165.0; +7.1031666666666675, 498998393935.0; +7.109833333333334, 500699433915.0; +7.1165, 502501525775.0; +7.123166666666667, 503958357045.0; +7.129833333333334, 504884665945.0; +7.136500000000001, 504762561590.0; +7.1431666666666676, 504598352285.0; +7.1498333333333335, 504387827535.0; +7.1565, 504737298620.0; +7.163166666666667, 504825719015.0; +7.169833333333334, 505061506735.0; +7.176500000000001, 505701501975.0; +7.183166666666668, 507330963540.0; +7.1898333333333335, 508884636195.0; +7.1965, 510109890240.0; +7.203166666666667, 511149882505.0; +7.209833333333334, 511941455565.0; +7.216500000000001, 512400399520.0; +7.223166666666668, 512080401900.0; +7.229833333333334, 512013033980.0; +7.2365, 512265663680.0; +7.243166666666667, 513242498520.0; +7.249833333333334, 514783539690.0; +7.256500000000001, 516867734715.0; +7.263166666666668, 519431926170.0; +7.269833333333334, 521604541590.0; +7.2765, 523486632855.0; +7.283166666666667, 525120304915.0; +7.289833333333334, 526728714005.0; +7.296500000000001, 528193966265.0; +7.303166666666668, 529267642490.0; +7.309833333333334, 530320266240.0; +7.3165000000000004, 531288680090.0; +7.323166666666667, 532214988990.0; +7.329833333333334, 533650767785.0; +7.336500000000001, 535814962215.0; +7.343166666666667, 538480205550.0; +7.349833333333334, 540682294435.0; +7.3565000000000005, 542324387485.0; +7.363166666666667, 544012795980.0; +7.369833333333334, 545890676750.0; +7.376500000000001, 547890661875.0; +7.383166666666667, 549819068585.0; +7.389833333333334, 552054841430.0; +7.3965000000000005, 554640085360.0; +7.403166666666667, 557019015035.0; +7.409833333333334, 558581108680.0; +7.416500000000001, 558896895805.0; +7.423166666666667, 558176901160.0; +7.429833333333334, 557633747305.0; +7.4365000000000006, 557650589285.0; +7.443166666666667, 558421109870.0; +7.449833333333334, 559103210060.0; +7.456500000000001, 560816881525.0; +7.463166666666667, 563865279905.0; +7.469833333333334, 567233675905.0; +7.476500000000001, 570037865575.0; +7.483166666666667, 571730484565.0; +7.489833333333334, 573650470285.0; +7.496500000000001, 575027302150.0; +7.503166666666667, 575747296795.0; +7.509833333333334, 575637823925.0; +7.516500000000001, 575406246700.0; +7.5231666666666674, 575591508480.0; +7.529833333333334, 575877822140.0; +7.5365, 576328345105.0; +7.543166666666667, 576947287870.0; +7.549833333333334, 578042016570.0; +7.556500000000001, 579094640320.0; +7.5631666666666675, 580185158525.0; +7.569833333333334, 580580945055.0; +7.5765, 580488314165.0; +7.583166666666667, 579128324280.0; +7.589833333333334, 577709387465.0; +7.596500000000001, 576362029065.0; +7.6031666666666675, 574682041560.0; +7.609833333333334, 572901002175.0; +7.6165, 571385223975.0; +7.623166666666667, 571254698630.0; +7.629833333333334, 571347329520.0; +7.636500000000001, 571393644965.0; +7.6431666666666676, 571692590110.0; +7.649833333333334, 572875739205.0; +7.6565, 574627305125.0; +7.663166666666667, 575995716000.0; +7.669833333333334, 576500975400.0; +7.676500000000001, 576837815000.0; +7.683166666666668, 577536757170.0; +7.6898333333333335, 578610433395.0; +7.6965, 579220955170.0; +7.703166666666667, 579734635560.0; +7.709833333333334, 580530419115.0; +7.716500000000001, 581410412570.0; +7.723166666666668, 582256722065.0; +7.729833333333334, 583178820470.0; +7.7365, 584244075705.0; +7.743166666666667, 585229331535.0; +7.749833333333334, 586206166375.0; +7.756500000000001, 587877732890.0; +7.763166666666668, 589456668515.0; +7.769833333333334, 590513502760.0; +7.7765, 591768230270.0; +7.783166666666667, 593338744905.0; +7.789833333333334, 594867154590.0; +7.796500000000001, 595528202305.0; +7.803166666666668, 595835568440.0; +7.809833333333334, 595974514775.0; +7.8165000000000004, 595557675770.0; +7.823166666666667, 595174520725.0; +7.829833333333334, 595793463490.0; +7.836500000000001, 597043980505.0; +7.843166666666668, 598850282860.0; +7.849833333333334, 600669216700.0; +7.8565000000000005, 602694464795.0; +7.863166666666667, 604475504180.0; +7.869833333333334, 605414444565.0; +7.876500000000001, 606639698610.0; +7.883166666666667, 607372324740.0; +7.889833333333334, 608395475025.0; +7.8965000000000005, 609810201345.0; +7.903166666666667, 611949132805.0; +7.909833333333334, 614163853175.0; +7.916500000000001, 615751209790.0; +7.923166666666667, 616972253340.0; +7.929833333333334, 617620669570.0; +7.9365000000000006, 617637511550.0; +7.943166666666667, 616732255125.0; +7.949833333333334, 615730157315.0; +7.9565, 614450166835.0; +7.963166666666668, 613797540110.0; +7.969833333333334, 613439648035.0; +7.9765000000000015, 613923854960.0; +7.983166666666667, 615001741680.0; +7.989833333333333, 616391205030.0; +7.996500000000001, 617961719665.0; +8.003166666666667, 618231191345.0; +8.009833333333335, 618151191940.0; +8.0165, 618168033920.0; +8.023166666666667, 619288025590.0; +8.029833333333334, 620959592105.0; +8.0365, 622142741200.0; +8.043166666666668, 624332198600.0; +8.049833333333334, 626723759760.0; +8.0565, 628572167065.0; +8.063166666666667, 628841638745.0; +8.069833333333333, 628218485485.0; +8.076500000000001, 628323747860.0; +8.083166666666667, 628904796170.0; +8.089833333333335, 630344785460.0; +8.0965, 631932142075.0; +8.103166666666667, 633965811160.0; +8.109833333333334, 636016322225.0; +8.1165, 638323673485.0; +8.123166666666668, 640479446925.0; +8.129833333333334, 641658385525.0; +8.1365, 642845745115.0; +8.143166666666668, 644517311630.0; +8.149833333333333, 646546770220.0; +8.156500000000001, 647818339710.0; +8.163166666666667, 648361493565.0; +8.169833333333335, 649620431570.0; +8.1765, 651056210365.0; +8.183166666666667, 651860414910.0; +8.189833333333334, 652479357675.0; +8.1965, 653397245585.0; +8.203166666666668, 654913023785.0; +8.209833333333334, 655873016645.0; +8.2165, 656862482970.0; +8.223166666666668, 658062474045.0; +8.229833333333334, 659367727495.0; +8.236500000000001, 660630875995.0; +8.243166666666667, 661666657765.0; +8.249833333333333, 663022437155.0; +8.2565, 664079271400.0; +8.263166666666667, 664592951790.0; +8.269833333333334, 664820318520.0; +8.2765, 664769792580.0; +8.283166666666668, 664879265450.0; +8.289833333333334, 664778213570.0; +8.2965, 665030843270.0; +8.303166666666668, 666395043650.0; +8.309833333333334, 668508712140.0; +8.316500000000001, 671131850525.0; +8.323166666666667, 673536043170.0; +8.329833333333333, 675868657400.0; +8.336500000000001, 677771801140.0; +8.343166666666667, 678950739740.0; +8.349833333333335, 679775996760.0; +8.3565, 680495991405.0; +8.363166666666668, 681927559705.0; +8.369833333333334, 683481232360.0; +8.3765, 685013852540.0; +8.383166666666668, 686348579455.0; +8.389833333333334, 687868568150.0; +8.396500000000001, 690340128715.0; +8.403166666666667, 692546428095.0; +8.409833333333333, 694639044110.0; +8.416500000000001, 696251663695.0; +8.423166666666667, 697321129425.0; +8.429833333333335, 697607443085.0; +8.4365, 697089552200.0; +8.443166666666666, 696697976165.0; +8.449833333333334, 696702186660.0; +8.4565, 697022184280.0; +8.463166666666668, 697716915955.0; +8.469833333333334, 698516910005.0; +8.476500000000001, 699413745440.0; +8.483166666666667, 700601105030.0; +8.489833333333333, 701447414525.0; +8.496500000000001, 701708465215.0; +8.503166666666667, 701763201650.0; +8.509833333333335, 702255829565.0; +8.5165, 703060034110.0; +8.523166666666667, 702975824210.0; +8.529833333333334, 702706352530.0; +8.5365, 702777930945.0; +8.543166666666668, 703523188560.0; +8.549833333333334, 704420023995.0; +8.556500000000002, 704554759835.0; +8.563166666666667, 704415813500.0; +8.569833333333333, 704205288750.0; +8.576500000000001, 704866336465.0; +8.583166666666667, 705674751505.0; +8.589833333333335, 706331588725.0; +8.5965, 707489474850.0; +8.603166666666667, 709510512450.0; +8.609833333333334, 711977862520.0; +8.6165, 713918900715.0; +8.623166666666668, 715169417730.0; +8.629833333333334, 716377829795.0; +8.6365, 717274665230.0; +8.643166666666668, 718036764825.0; +8.649833333333333, 718495708780.0; +8.656500000000001, 718992547190.0; +8.663166666666667, 719295702830.0; +8.669833333333335, 719177808970.0; +8.6765, 719266229365.0; +8.683166666666667, 719695699855.0; +8.689833333333334, 720592535290.0; +8.6965, 721459897260.0; +8.703166666666668, 722904097045.0; +8.709833333333334, 724714609895.0; +8.7165, 725986179385.0; +8.723166666666668, 726592490665.0; +8.729833333333334, 726739857990.0; +8.736500000000001, 727544062535.0; +8.743166666666667, 728824053015.0; +8.749833333333335, 729670362510.0; +8.7565, 730407199135.0; +8.763166666666667, 730714565270.0; +8.769833333333334, 731581927240.0; +8.7765, 731598769220.0; +8.783166666666668, 731405086450.0; +8.789833333333334, 731948240305.0; +8.7965, 733872436520.0; +8.803166666666668, 736449259460.0; +8.809833333333334, 737981879640.0; +8.816500000000001, 739303975070.0; +8.823166666666667, 740411335255.0; +8.829833333333333, 742301847510.0; +8.836500000000001, 743783941750.0; +8.843166666666667, 745013406290.0; +8.849833333333335, 746036556575.0; +8.8565, 747253389630.0; +8.863166666666668, 748280750410.0; +8.869833333333334, 748103909620.0; +8.8765, 747118653790.0; +8.883166666666668, 746558657955.0; +8.889833333333334, 746381817165.0; +8.896500000000001, 745872347270.0; +8.903166666666667, 744870249460.0; +8.909833333333333, 743674468880.0; +8.916500000000001, 743076578590.0; +8.923166666666667, 742765001960.0; +8.929833333333335, 744032360955.0; +8.9365, 746470237560.0; +8.943166666666666, 749261795745.0; +8.949833333333334, 751931249575.0; +8.9565, 754310179250.0; +8.963166666666668, 755851220420.0; +8.969833333333334, 755981745765.0; +8.976500000000001, 755202804190.0; +8.983166666666667, 754773333700.0; +8.989833333333333, 754735439245.0; +8.996500000000001, 754790175680.0; +9.003166666666667, 754954384985.0; +9.009833333333335, 755619643195.0; +9.0165, 756625951500.0; +9.023166666666667, 757518576440.0; +9.029833333333334, 757960678415.0; +9.0365, 758676462565.0; +9.043166666666668, 759665928890.0; +9.049833333333334, 760693289670.0; +9.056500000000002, 761505915205.0; +9.063166666666667, 762583801925.0; +9.069833333333333, 763788003495.0; +9.076500000000001, 764790101305.0; +9.083166666666667, 765707989215.0; +9.089833333333335, 766781665440.0; +9.0965, 768124813345.0; +9.103166666666667, 769042701255.0; +9.109833333333334, 769889010750.0; +9.1165, 770630057870.0; +9.123166666666668, 771594261225.0; +9.129833333333334, 772145836070.0; +9.1365, 772571096065.0; +9.143166666666668, 772941619625.0; +9.149833333333333, 774116347730.0; +9.156500000000001, 775122656035.0; +9.163166666666667, 775577389495.0; +9.169833333333335, 775712125335.0; +9.1765, 776006859985.0; +9.183166666666667, 776874221955.0; +9.189833333333334, 777400533830.0; +9.1965, 777910003725.0; +9.203166666666668, 778651050845.0; +9.209833333333334, 779888936375.0; +9.2165, 781122611410.0; +9.223166666666668, 782482601295.0; +9.229833333333334, 784512059885.0; +9.236500000000001, 787383617475.0; +9.243166666666667, 790482541795.0; +9.249833333333335, 793328836415.0; +9.2565, 796154078560.0; +9.263166666666667, 798221431605.0; +9.269833333333334, 800124575345.0; +9.2765, 802078245025.0; +9.283166666666668, 805198221820.0; +9.289833333333334, 809084508705.0; +9.2965, 813741316175.0; +9.303166666666668, 820309688375.0; +9.309833333333334, 827391740965.0; +9.316500000000001, 834558003455.0; +9.323166666666667, 840701115660.0; +9.329833333333333, 847218961920.0; +9.336500000000001, 854242067580.0; +9.343166666666667, 861100963935.0; +9.349833333333335, 868355646820.0; +9.3565, 876014537225.0; +9.363166666666668, 883812373965.0; +9.369833333333334, 890431272105.0; +9.3765, 896043861940.0; +9.383166666666668, 900717511390.0; +9.389833333333334, 904734323620.0; +9.396500000000001, 908410085755.0; +9.403166666666667, 912894262930.0; +9.409833333333333, 918325801480.0; +9.416500000000001, 923504710330.0; +9.423166666666667, 928178359780.0; +9.429833333333335, 932376223295.0; +9.4365, 936241457705.0; +9.443166666666668, 939382486975.0; +9.449833333333334, 942321412485.0; +9.4565, 945795070860.0; +9.463166666666668, 949289781710.0; +9.469833333333334, 951466607625.0; +9.476500000000001, 950721350010.0; +9.483166666666667, 945816123335.0; +9.489833333333333, 936051985430.0; +9.496500000000001, 922018405595.0; +9.503166666666667, 905458528760.0; +9.509833333333335, 888330235100.0; +9.5165, 872279828160.0; +9.523166666666667, 859370450490.0; +9.529833333333334, 850284202280.0; +9.5365, 844755822345.0; +9.543166666666668, 841345321395.0; +9.549833333333334, 839745333295.0; +9.556500000000002, 839753754285.0; +9.563166666666667, 840280066160.0; +9.569833333333333, 840987429320.0; +9.576500000000001, 841787423370.0; +9.583166666666667, 843012677415.0; +9.589833333333335, 843863197405.0; +9.5965, 844789506305.0; +9.603166666666667, 846431599355.0; +9.609833333333334, 848406321510.0; +9.6165, 850456832575.0; +9.623166666666668, 852397870770.0; +9.629833333333334, 854823115890.0; +9.636500000000002, 857189414080.0; +9.643166666666668, 858625192875.0; +9.649833333333333, 859593606725.0; +9.656500000000001, 860789387305.0; +9.663166666666667, 862536742730.0; +9.669833333333335, 864515675380.0; +9.6765, 866014611600.0; +9.683166666666667, 867239865645.0; +9.689833333333334, 868393541275.0; +9.6965, 869046168000.0; +9.703166666666668, 868999852555.0; +9.709833333333334, 868216700485.0; +9.7165, 867172497725.0; +9.723166666666668, 866448292585.0; +9.729833333333334, 865820928830.0; +9.736500000000001, 865143039135.0; +9.743166666666667, 864338834590.0; +9.749833333333335, 863555682520.0; +9.7565, 863454630640.0; +9.763166666666667, 863884101130.0; +9.769833333333334, 864376729045.0; +9.7765, 864347255580.0; +9.783166666666668, 864027257960.0; +9.789833333333334, 863997784495.0; +9.7965, 863745154795.0; +9.803166666666668, 863092528070.0; +9.809833333333334, 862616742135.0; +9.816500000000001, 863092528070.0; +9.823166666666667, 863930416575.0; +9.829833333333335, 864608306270.0; +9.836500000000001, 865517773190.0; +9.843166666666667, 866338819715.0; +9.849833333333335, 866915657530.0; +9.8565, 867138813765.0; +9.863166666666668, 868069333160.0; +9.869833333333334, 869147219880.0; +9.8765, 869686163240.0; +9.883166666666668, 869955634920.0; +9.889833333333334, 870406157885.0; +9.896500000000001, 870919838275.0; +9.903166666666667, 871399834705.0; +9.909833333333333, 872705088155.0; +9.916500000000001, 875467172875.0; +9.923166666666667, 878772411450.0; +9.929833333333335, 881214498550.0; +9.9365, 882869223085.0; +9.943166666666668, 883681848620.0; +9.949833333333334, 884111319110.0; +9.9565, 883980793765.0; +9.963166666666668, 883959741290.0; +9.969833333333334, 884839734745.0; +9.976500000000001, 886195514135.0; +9.983166666666667, 888086026390.0; +9.989833333333333, 889424963800.0; +9.996500000000001, 890271273295.0; +10.003166666666667, 890869163585.0; +10.009833333333335, 891433369915.0; +10.0165, 892704939405.0; +10.023166666666667, 893631248305.0; +10.029833333333334, 894010192855.0; +10.0365, 893454407515.0; +10.043166666666668, 892751254850.0; +10.049833333333334, 891900734860.0; +10.056500000000002, 890784953685.0; +10.063166666666667, 890401798640.0; +10.069833333333333, 891820735455.0; +10.076500000000001, 894949133240.0; +10.083166666666667, 898410160130.0; +10.089833333333335, 901808029595.0; +10.0965, 905130110150.0; +10.103166666666667, 907892194870.0; +10.109833333333334, 909357447130.0; +10.1165, 909866917025.0; +10.123166666666668, 909909021975.0; +10.129833333333334, 909959547915.0; +10.136500000000002, 909639550295.0; +10.143166666666668, 910014284350.0; +10.149833333333333, 911466905125.0; +10.156500000000001, 913908992225.0; +10.163166666666667, 916490025660.0; +10.169833333333335, 918890007810.0; +10.1765, 921748933915.0; +10.183166666666667, 924191021015.0; +10.189833333333334, 925668904760.0; +10.1965, 925454169515.0; +10.203166666666668, 924784700810.0; +10.209833333333334, 924763648335.0; +10.2165, 925428906545.0; +10.223166666666668, 926279426535.0; +10.229833333333334, 927239419395.0; +10.236500000000001, 928915196405.0; +10.243166666666667, 930713077770.0; +10.249833333333335, 932148856565.0; +10.2565, 932961482100.0; +10.263166666666667, 933323584670.0; +10.269833333333334, 932932008635.0; +10.2765, 932102541120.0; +10.283166666666668, 931719386075.0; +10.289833333333334, 932110962110.0; +10.2965, 932220434980.0; +10.303166666666668, 932342539335.0; +10.309833333333334, 932641484480.0; +10.316500000000001, 934085684265.0; +10.323166666666667, 935588830980.0; +10.329833333333335, 936553034335.0; +10.336500000000001, 937458290760.0; +10.343166666666667, 938258284810.0; +10.349833333333335, 939883535880.0; +10.3565, 941049842995.0; +10.363166666666668, 942472990305.0; +10.369833333333334, 943517193065.0; +10.3765, 944835078000.0; +10.383166666666668, 946561380950.0; +10.389833333333334, 947946633805.0; +10.396500000000001, 948864521715.0; +10.403166666666667, 949260308245.0; +10.409833333333333, 950624508625.0; +10.416500000000001, 951837131185.0; +10.423166666666667, 952224496725.0; +10.429833333333335, 952161339300.0; +10.4365, 953150805625.0; +10.443166666666668, 954910792535.0; +10.449833333333334, 955340263025.0; +10.4565, 955315000055.0; +10.463166666666668, 955782365000.0; +10.469833333333334, 956569727565.0; +10.476500000000001, 956367623805.0; +10.483166666666667, 955470788370.0; +10.489833333333333, 955677102625.0; +10.496500000000001, 956872883205.0; +10.503166666666667, 958325503980.0; +10.509833333333335, 959765493270.0; +10.5165, 961226535035.0; +10.523166666666668, 962578103930.0; +10.529833333333334, 963407571445.0; +10.5365, 964030724705.0; +10.543166666666668, 965348609640.0; +10.549833333333334, 967243332390.0; +10.556500000000002, 969117002665.0; +10.563166666666667, 970927515515.0; +10.569833333333333, 973045394500.0; +10.576500000000001, 975399061205.0; +10.583166666666667, 977335888905.0; +10.589833333333335, 978889561560.0; +10.5965, 980316919365.0; +10.603166666666667, 981310596185.0; +10.609833333333334, 981807434595.0; +10.6165, 982464271815.0; +10.623166666666668, 982813742900.0; +10.629833333333334, 983091635570.0; +10.636500000000002, 983933734570.0; +10.643166666666668, 985580038115.0; +10.649833333333333, 987487392350.0; +10.656500000000001, 988451595705.0; +10.663166666666667, 989011591540.0; +10.669833333333335, 989874743015.0; +10.6765, 990565264195.0; +10.683166666666667, 991398942205.0; +10.689833333333334, 992249462195.0; +10.6965, 993975765145.0; +10.703166666666668, 996750481350.0; +10.709833333333334, 998826255385.0; +10.716500000000002, 1000876766450.0; +10.723166666666668, 1003142012760.0; +10.729833333333334, 1005790414115.0; +10.736500000000001, 1007339876275.0; +10.743166666666667, 1007083036080.0; +10.749833333333335, 1006649355095.0; +10.7565, 1006123043220.0; +10.763166666666667, 1005617783820.0; +10.769833333333334, 1005415680060.0; +10.7765, 1006687249550.0; +10.783166666666668, 1008493551905.0; +10.789833333333334, 1010295643765.0; +10.7965, 1012320891860.0; +10.803166666666668, 1014451402330.0; +10.809833333333334, 1015744024295.0; +10.816500000000001, 1015036661135.0; +10.823166666666667, 1014657716585.0; +10.829833333333335, 1015613498950.0; +10.836500000000001, 1017226118535.0; +10.843166666666667, 1018165058920.0; +10.849833333333335, 1019112420295.0; +10.8565, 1021002932550.0; +10.863166666666668, 1023558703015.0; +10.869833333333334, 1025706055465.0; +10.8765, 1027529199800.0; +10.883166666666668, 1029739709675.0; +10.889833333333334, 1031369171240.0; +10.896500000000001, 1032476531425.0; +10.903166666666667, 1032922843895.0; +10.909833333333335, 1033465997750.0; +10.916500000000001, 1034430201105.0; +10.923166666666667, 1034952302485.0; +10.929833333333335, 1035651244655.0; +10.9365, 1036324923855.0; +10.943166666666668, 1037087023450.0; +10.949833333333334, 1037832281065.0; +10.9565, 1038131226210.0; +10.963166666666668, 1038063858290.0; +10.969833333333334, 1037748071165.0; +10.976500000000001, 1038089121260.0; +10.983166666666667, 1038897536300.0; +10.989833333333333, 1040232263215.0; +10.996500000000001, 1041659621020.0; +11.003166666666667, 1044190128515.0; +11.009833333333335, 1047760628275.0; +11.0165, 1051364811995.0; +11.023166666666668, 1055048995120.0; +11.029833333333334, 1057790027365.0; +11.0365, 1060067905160.0; +11.043166666666668, 1060842636240.0; +11.049833333333334, 1060366850305.0; +11.056500000000002, 1059078438835.0; +11.063166666666667, 1057103716680.0; +11.069833333333333, 1055861620655.0; +11.076500000000001, 1054872154330.0; +11.083166666666667, 1054560577700.0; +11.089833333333335, 1054387947405.0; +11.0965, 1054956364230.0; +11.103166666666667, 1056261617680.0; +11.109833333333334, 1057305820440.0; +11.1165, 1058017394095.0; +11.123166666666668, 1058657389335.0; +11.129833333333334, 1060021589715.0; +11.136500000000002, 1061798418605.0; +11.143166666666668, 1064143664320.0; +11.149833333333333, 1066425752610.0; +11.156500000000001, 1068939418125.0; +11.163166666666667, 1072139394325.0; +11.169833333333335, 1076202522000.0; +11.1765, 1080627752245.0; +11.183166666666667, 1084063516165.0; +11.189833333333334, 1086749811975.0; +11.1965, 1089966630155.0; +11.203166666666668, 1093579234865.0; +11.209833333333334, 1096749737600.0; +11.216500000000002, 1098800248665.0; +11.223166666666668, 1101006548045.0; +11.229833333333334, 1104046525435.0; +11.236500000000001, 1106345455705.0; +11.243166666666667, 1107608604205.0; +11.249833333333335, 1108669648945.0; +11.2565, 1110429635855.0; +11.263166666666667, 1112341200585.0; +11.269833333333334, 1114619078380.0; +11.2765, 1118522207245.0; +11.283166666666668, 1123322171545.0; +11.289833333333334, 1127557929515.0; +11.2965, 1130538959975.0; +11.303166666666668, 1133048414995.0; +11.309833333333334, 1135385239720.0; +11.316500000000001, 1136917859900.0; +11.323166666666667, 1138214692360.0; +11.329833333333335, 1139835732935.0; +11.336500000000001, 1142332556470.0; +11.343166666666667, 1143764124770.0; +11.349833333333335, 1143570442000.0; +11.3565, 1141444142025.0; +11.363166666666668, 1137919957710.0; +11.369833333333334, 1133309465685.0; +11.3765, 1127372667735.0; +11.383166666666668, 1122349547200.0; +11.389833333333334, 1118071684280.0; +11.396500000000001, 1115027496395.0; +11.403166666666667, 1112791723550.0; +11.409833333333335, 1111743310295.0; +11.416500000000001, 1111924361580.0; +11.423166666666667, 1111861204155.0; +11.429833333333335, 1111659100395.0; +11.4365, 1111040157630.0; +11.443166666666668, 1110530687735.0; +11.449833333333334, 1110012796850.0; +11.4565, 1109970691900.0; +11.463166666666668, 1110652792090.0; +11.469833333333334, 1111928572075.0; +11.476500000000001, 1114703288280.0; +11.483166666666667, 1118955888230.0; +11.489833333333333, 1123991640250.0; +11.496500000000001, 1129044234250.0; +11.503166666666667, 1134475772800.0; +11.509833333333335, 1140155730555.0; +11.5165, 1144517803375.0; +11.523166666666668, 1147684095615.0; +11.529833333333334, 1151195648445.0; +11.5365, 1155616668195.0; +11.543166666666668, 1160004003985.0; +11.549833333333334, 1163507135825.0; +11.556500000000002, 1167241844890.0; +11.563166666666667, 1171283920090.0; +11.569833333333333, 1175317574300.0; +11.576500000000001, 1179191229700.0; +11.583166666666667, 1183085937575.0; +11.589833333333335, 1187279590595.0; +11.5965, 1191199561440.0; +11.603166666666668, 1194799534665.0; +11.609833333333334, 1197995300370.0; +11.6165, 1200812121525.0; +11.623166666666668, 1203603679710.0; +11.629833333333334, 1206778392940.0; +11.636500000000002, 1210428892105.0; +11.643166666666668, 1213953076420.0; +11.649833333333333, 1217136210640.0; +11.656500000000001, 1219654086650.0; +11.663166666666667, 1220727762875.0; +11.669833333333335, 1219704612590.0; +11.6765, 1215910956595.0; +11.683166666666667, 1209788896865.0; +11.689833333333334, 1202386846655.0; +11.6965, 1194930060010.0; +11.703166666666668, 1187603798710.0; +11.709833333333334, 1180062802165.0; +11.716500000000002, 1173557587390.0; +11.723166666666668, 1168846043485.0; +11.729833333333334, 1165376595605.0; +11.736500000000001, 1162332407720.0; +11.743166666666667, 1160555578830.0; +11.749833333333335, 1160324001605.0; +11.7565, 1161018733280.0; +11.763166666666667, 1161717675450.0; +11.769833333333334, 1162298723760.0; +11.7765, 1162715562765.0; +11.783166666666668, 1162239776830.0; +11.789833333333334, 1161987147130.0; +11.796500000000002, 1162012410100.0; +11.803166666666668, 1162656615835.0; +11.809833333333334, 1163540819785.0; +11.816500000000001, 1164281866905.0; +11.823166666666667, 1165267122735.0; +11.829833333333335, 1165991327875.0; +11.836500000000001, 1166989215190.0; +11.843166666666667, 1167755525280.0; +11.849833333333335, 1168020786465.0; +11.8565, 1168109206860.0; +11.863166666666668, 1168580782300.0; +11.869833333333334, 1170155507430.0; +11.8765, 1172382859285.0; +11.883166666666668, 1175300732320.0; +11.889833333333334, 1178332288720.0; +11.896500000000001, 1181102794430.0; +11.903166666666667, 1183073306090.0; +11.909833333333335, 1184904871415.0; +11.916500000000001, 1186189072390.0; +11.923166666666667, 1186765910205.0; +11.929833333333335, 1187153275745.0; +11.9365, 1188054321675.0; +11.943166666666668, 1189544836905.0; +11.949833333333334, 1190319567985.0; +11.9565, 1191553243020.0; +11.963166666666668, 1193380597850.0; +11.969833333333334, 1195346899015.0; +11.976500000000001, 1196930045135.0; +11.983166666666667, 1198597401155.0; +11.989833333333335, 1200260546680.0; +11.996500000000001, 1200955278355.0; +12.003166666666667, 1201186855580.0; +12.009833333333335, 1201502642705.0; +12.0165, 1202247900320.0; +12.023166666666668, 1202407899130.0; +12.029833333333334, 1203275261100.0; +12.0365, 1204424726235.0; +12.043166666666668, 1205729979685.0; +12.049833333333334, 1206744708980.0; +12.056500000000002, 1207784701245.0; +12.063166666666667, 1209649950530.0; +12.069833333333333, 1211241517640.0; +12.076500000000001, 1212946768115.0; +12.083166666666667, 1214037286320.0; +12.089833333333335, 1215052015615.0; +12.0965, 1215456223135.0; +12.103166666666668, 1215329908285.0; +12.109833333333334, 1215363592245.0; +12.1165, 1216079376395.0; +12.123166666666668, 1217338314400.0; +12.129833333333334, 1218866724085.0; +12.136500000000002, 1220639342480.0; +12.143166666666668, 1222618275130.0; +12.149833333333333, 1223393006210.0; +12.156500000000001, 1223287743835.0; +12.163166666666667, 1223502479080.0; +12.169833333333335, 1224243526200.0; +12.1765, 1225691936480.0; +12.183166666666667, 1227649816655.0; +12.189833333333334, 1230243481575.0; +12.1965, 1232382413035.0; +12.203166666666668, 1233220301540.0; +12.209833333333334, 1233565562130.0; +12.216500000000002, 1233725560940.0; +12.223166666666668, 1233767665890.0; +12.229833333333334, 1234096084500.0; +12.236500000000001, 1234496081525.0; +12.243166666666667, 1235658178145.0; +12.249833333333335, 1237283429215.0; +12.2565, 1238681313555.0; +12.263166666666667, 1239809726215.0; +12.269833333333334, 1241637081045.0; +12.2765, 1245241264765.0; +12.283166666666668, 1249300181945.0; +12.289833333333334, 1252277001910.0; +12.296500000000002, 1254167514165.0; +12.303166666666668, 1255771712760.0; +12.309833333333334, 1256411708000.0; +12.316500000000001, 1256516970375.0; +12.323166666666667, 1256992756310.0; +12.329833333333335, 1258521165995.0; +12.336500000000001, 1260799043790.0; +12.343166666666667, 1262681135055.0; +12.349833333333335, 1264634804735.0; +12.3565, 1266041110065.0; +12.363166666666668, 1267081102330.0; +12.369833333333334, 1268066358160.0; +12.3765, 1269097929435.0; +12.383166666666668, 1270108448235.0; +12.389833333333334, 1270668444070.0; +12.396500000000001, 1271236860895.0; +12.403166666666667, 1271683173365.0; +12.409833333333335, 1272041065440.0; +12.416500000000001, 1272495798900.0; +12.423166666666667, 1274171575910.0; +12.429833333333335, 1277106290925.0; +12.4365, 1280167320790.0; +12.443166666666668, 1282234673835.0; +12.449833333333334, 1283455717385.0; +12.4565, 1283897819360.0; +12.463166666666668, 1282942036995.0; +12.469833333333334, 1280731527120.0; +12.476500000000001, 1278929435260.0; +12.483166666666667, 1278537859225.0; +12.489833333333335, 1279161012485.0; +12.496500000000001, 1280929420385.0; +12.503166666666667, 1283687294610.0; +12.509833333333335, 1287211478925.0; +12.5165, 1290200930375.0; +12.523166666666668, 1292588281040.0; +12.529833333333334, 1295021947150.0; +12.5365, 1297169299600.0; +12.543166666666668, 1299005075420.0; +12.549833333333334, 1300162961545.0; +12.556500000000002, 1301535582915.0; +12.563166666666667, 1303165044480.0; +12.569833333333333, 1304057669420.0; +12.576500000000001, 1304356614565.0; +12.583166666666667, 1304765032580.0; +12.589833333333335, 1306070286030.0; +12.5965, 1307173435720.0; +12.603166666666668, 1308322900855.0; +12.609833333333334, 1309312367180.0; +12.6165, 1311392351710.0; +12.623166666666668, 1314259698805.0; +12.629833333333334, 1317716515200.0; +12.636500000000002, 1320828071005.0; +12.643166666666668, 1322301744255.0; +12.649833333333333, 1323628050180.0; +12.656500000000001, 1324225940470.0; +12.663166666666667, 1324166993540.0; +12.669833333333335, 1322225955345.0; +12.6765, 1320103865865.0; +12.683166666666668, 1319501765080.0; +12.689833333333334, 1320617546255.0; +12.6965, 1322945949990.0; +12.703166666666668, 1325017513530.0; +12.709833333333334, 1327745914290.0; +12.716500000000002, 1330225895845.0; +12.723166666666668, 1332743771855.0; +12.729833333333334, 1333834290060.0; +12.736500000000001, 1333905868475.0; +12.743166666666667, 1333307978185.0; +12.749833333333335, 1332600615025.0; +12.7565, 1333051137990.0; +12.763166666666667, 1333691133230.0; +12.769833333333334, 1334840598365.0; +12.7765, 1335556382515.0; +12.783166666666668, 1337606893580.0; +12.789833333333334, 1340512135130.0; +12.796500000000002, 1343194220445.0; +12.803166666666668, 1345320520420.0; +12.809833333333334, 1347008928915.0; +12.816500000000001, 1348840494240.0; +12.823166666666667, 1349421542550.0; +12.829833333333335, 1349042598000.0; +12.836500000000001, 1348225761970.0; +12.843166666666667, 1348133131080.0; +12.849833333333335, 1348684705925.0; +12.8565, 1350255220560.0; +12.863166666666668, 1352314152615.0; +12.869833333333334, 1354730976745.0; +12.876500000000002, 1357724638690.0; +12.883166666666668, 1360827773505.0; +12.889833333333334, 1364095117625.0; +12.896500000000001, 1366554046705.0; +12.903166666666667, 1369665602510.0; +12.909833333333335, 1373092945440.0; +12.916500000000001, 1376478183420.0; +12.923166666666667, 1378852902600.0; +12.929833333333335, 1380852887725.0; +12.9365, 1383593919970.0; +12.943166666666668, 1386810738150.0; +12.949833333333334, 1390078082270.0; +12.9565, 1393223322035.0; +12.963166666666668, 1396747506350.0; +12.969833333333334, 1400419057990.0; +12.976500000000001, 1403690612605.0; +12.983166666666667, 1406111647230.0; +12.989833333333335, 1408498997895.0; +12.996500000000001, 1410692665790.0; +13.003166666666667, 1413669485755.0; +13.009833333333335, 1416637884730.0; +13.0165, 1419997859740.0; +13.023166666666668, 1423294677325.0; +13.029833333333334, 1426094656500.0; +13.0365, 1428372534295.0; +13.043166666666668, 1429673577250.0; +13.049833333333334, 1431004093670.0; +13.056500000000002, 1432149348310.0; +13.063166666666667, 1433303023940.0; +13.069833333333335, 1435075642335.0; +13.076500000000001, 1438035620320.0; +13.083166666666667, 1441770329385.0; +13.089833333333335, 1444755570340.0; +13.0965, 1446806081405.0; +13.103166666666668, 1448469226930.0; +13.109833333333334, 1449833427310.0; +13.1165, 1450721841755.0; +13.123166666666668, 1451382889470.0; +13.129833333333334, 1453046034995.0; +13.136500000000002, 1455492332590.0; +13.143166666666668, 1457669158505.0; +13.149833333333333, 1459109147795.0; +13.156500000000001, 1460384927780.0; +13.163166666666667, 1462515438250.0; +13.169833333333335, 1464540686345.0; +13.1765, 1466725933250.0; +13.183166666666668, 1469568017375.0; +13.189833333333334, 1473239569015.0; +13.1965, 1476410071750.0; +13.203166666666668, 1478574266180.0; +13.209833333333334, 1480102675865.0; +13.216500000000002, 1480839512490.0; +13.223166666666668, 1480224780220.0; +13.229833333333334, 1479593205970.0; +13.236500000000001, 1479694257850.0; +13.243166666666667, 1479243734885.0; +13.249833333333335, 1477930060445.0; +13.2565, 1476498492145.0; +13.263166666666667, 1476296388385.0; +13.269833333333334, 1475845865420.0; +13.2765, 1474338508210.0; +13.283166666666668, 1473041675750.0; +13.289833333333334, 1472671152190.0; +13.296500000000002, 1473247990005.0; +13.303166666666668, 1473235358520.0; +13.309833333333334, 1472111156355.0; +13.316500000000001, 1470591167660.0; +13.323166666666667, 1468826970255.0; +13.329833333333335, 1466978562950.0; +13.336500000000001, 1464658580205.0; +13.343166666666667, 1463041750125.0; +13.349833333333335, 1462485964785.0; +13.3565, 1463197538440.0; +13.363166666666668, 1464456476445.0; +13.369833333333334, 1465210155050.0; +13.376500000000002, 1465016472280.0; +13.383166666666668, 1463959638035.0; +13.389833333333334, 1463104907550.0; +13.396500000000001, 1461867022020.0; +13.403166666666667, 1459875457885.0; +13.409833333333335, 1457770210385.0; +13.416500000000001, 1456237590205.0; +13.423166666666667, 1456140748820.0; +13.429833333333335, 1456637587230.0; +13.4365, 1457955472165.0; +13.443166666666668, 1459387040465.0; +13.449833333333334, 1461067027970.0; +13.4565, 1461921758455.0; +13.463166666666668, 1461311236680.0; +13.469833333333334, 1459307041060.0; +13.476500000000001, 1456898637920.0; +13.483166666666667, 1455302860315.0; +13.489833333333335, 1454389182900.0; +13.496500000000001, 1454591286660.0; +13.503166666666667, 1454873389825.0; +13.509833333333335, 1454877600320.0; +13.5165, 1454658654580.0; +13.523166666666668, 1454321814980.0; +13.529833333333334, 1453892344490.0; +13.5365, 1453113402915.0; +13.543166666666668, 1453020772025.0; +13.549833333333334, 1453993396370.0; +13.556500000000002, 1454671286065.0; +13.563166666666667, 1454570234185.0; +13.569833333333335, 1454081816765.0; +13.576500000000001, 1454018659340.0; +13.583166666666667, 1453656556770.0; +13.589833333333335, 1452957614600.0; +13.5965, 1452014463720.0; +13.603166666666668, 1451496572835.0; +13.609833333333334, 1450309213245.0; +13.6165, 1448928170885.0; +13.623166666666668, 1448123966340.0; +13.629833333333334, 1448065019410.0; +13.636500000000002, 1448726067125.0; +13.643166666666668, 1449572376620.0; +13.649833333333333, 1451332363530.0; +13.656500000000001, 1453008140540.0; +13.663166666666667, 1453766029640.0; +13.669833333333335, 1453829187065.0; +13.6765, 1453858660530.0; +13.683166666666668, 1453732345680.0; +13.689833333333334, 1453959712410.0; +13.6965, 1455210229425.0; +13.703166666666668, 1457791262860.0; +13.709833333333334, 1460203876495.0; +13.716500000000002, 1461307026185.0; +13.723166666666668, 1461841759050.0; +13.729833333333334, 1462338597460.0; +13.736500000000001, 1462953329730.0; +13.743166666666667, 1462978592700.0; +13.749833333333335, 1463088065570.0; +13.7565, 1464313319615.0; +13.763166666666669, 1466826985130.0; +13.769833333333334, 1468923811640.0; +13.7765, 1469466965495.0; +13.783166666666668, 1469113283915.0; +13.789833333333334, 1468208027490.0; +13.796500000000002, 1467391191460.0; +13.803166666666668, 1466195410880.0; +13.809833333333334, 1465614362570.0; +13.816500000000001, 1465462784750.0; +13.823166666666667, 1465538573660.0; +13.829833333333335, 1466115411475.0; +13.836500000000001, 1466881721565.0; +13.843166666666667, 1467344876015.0; +13.849833333333335, 1466961720970.0; +13.8565, 1465993307120.0; +13.863166666666668, 1465205944555.0; +13.869833333333334, 1465121734655.0; +13.876500000000002, 1465302785940.0; +13.883166666666668, 1465892255240.0; +13.889833333333334, 1466574355430.0; +13.896500000000001, 1468405920755.0; +13.903166666666667, 1470683798550.0; +13.909833333333335, 1472860624465.0; +13.916500000000001, 1474346929200.0; +13.923166666666667, 1474549032960.0; +13.929833333333335, 1475146923250.0; +13.9365, 1475551130770.0; +13.943166666666668, 1476549018085.0; +13.949833333333334, 1476835331745.0; +13.956500000000002, 1476645859470.0; +13.963166666666668, 1476650069965.0; +13.969833333333334, 1476123758090.0; +13.976500000000001, 1475546920275.0; +13.983166666666667, 1474970082460.0; +13.989833333333335, 1475311132555.0; +13.996500000000001, 1475938496310.0; +14.003166666666667, 1477180592335.0; +14.009833333333335, 1478612160635.0; +14.0165, 1479647942405.0; +14.023166666666668, 1479761625770.0; +14.029833333333334, 1479172156470.0; +14.0365, 1480056360420.0; +14.043166666666668, 1481071089715.0; +14.049833333333334, 1482839497615.0; +14.056500000000002, 1485563687880.0; +14.063166666666667, 1489774182880.0; +14.069833333333335, 1494683620050.0; +14.076500000000001, 1497807807340.0; +14.083166666666667, 1500586734040.0; +14.089833333333335, 1503155135990.0; +14.0965, 1505449855765.0; +14.103166666666668, 1506839319115.0; +14.109833333333334, 1507369841485.0; +14.1165, 1509142459880.0; +14.123166666666668, 1510868762830.0; +14.129833333333334, 1512136121825.0; +14.136500000000002, 1512506645385.0; +14.143166666666668, 1513129798645.0; +14.149833333333333, 1513719267945.0; +14.156500000000001, 1513214008545.0; +14.163166666666667, 1512148753310.0; +14.169833333333335, 1510338240460.0; +14.1765, 1508001415735.0; +14.183166666666668, 1504350916570.0; +14.189833333333334, 1500881468690.0; +14.1965, 1497833070310.0; +14.203166666666668, 1495176247965.0; +14.209833333333334, 1492780476310.0; +14.216500000000002, 1490889964055.0; +14.223166666666668, 1488898399920.0; +14.229833333333334, 1486599469650.0; +14.236500000000001, 1482881602565.0; +14.243166666666667, 1478784790930.0; +14.249833333333335, 1474894293550.0; +14.2565, 1471559581510.0; +14.263166666666669, 1468869075205.0; +14.269833333333334, 1465812255835.0; +14.2765, 1463955427540.0; +14.283166666666668, 1462187019640.0; +14.289833333333334, 1460557558075.0; +14.296500000000002, 1459795458480.0; +14.303166666666668, 1459492302840.0; +14.309833333333334, 1459913352340.0; +14.316500000000001, 1459723880065.0; +14.323166666666667, 1460667030945.0; +14.329833333333335, 1461984915880.0; +14.336500000000001, 1462629121615.0; +14.343166666666667, 1462864909335.0; +14.349833333333335, 1463635429920.0; +14.3565, 1465753308905.0; +14.363166666666668, 1467395401955.0; +14.369833333333334, 1468532235605.0; +14.376500000000002, 1468869075205.0; +14.383166666666668, 1469698542720.0; +14.389833333333334, 1470186960140.0; +14.396500000000001, 1470523799740.0; +14.403166666666667, 1471445898145.0; +14.409833333333335, 1473466935745.0; +14.416500000000001, 1476692174915.0; +14.423166666666667, 1479551101020.0; +14.429833333333335, 1481100563180.0; +14.4365, 1481420560800.0; +14.443166666666668, 1481041616250.0; +14.449833333333334, 1480923722390.0; +14.456500000000002, 1480624777245.0; +14.463166666666668, 1480662671700.0; +14.469833333333334, 1481879504755.0; +14.476500000000001, 1483845805920.0; +14.483166666666667, 1485450004515.0; +14.489833333333335, 1485538424910.0; +14.496500000000001, 1485795265105.0; +14.503166666666667, 1485887895995.0; +14.509833333333335, 1486064736785.0; +14.5165, 1485626845305.0; +14.523166666666668, 1485828949065.0; +14.529833333333334, 1487483673600.0; +14.5365, 1488708927645.0; +14.543166666666668, 1489163661105.0; +14.549833333333334, 1488860505465.0; +14.556500000000002, 1490565755940.0; +14.563166666666667, 1492637319480.0; +14.569833333333335, 1493799416100.0; +14.576500000000001, 1494460463815.0; +14.583166666666667, 1496068872905.0; +14.589833333333335, 1498228856840.0; +14.5965, 1498633064360.0; +14.603166666666668, 1498405697630.0; +14.609833333333334, 1497896227735.0; +14.6165, 1497205706555.0; +14.623166666666668, 1495795190730.0; +14.629833333333334, 1494275202035.0; +14.636500000000002, 1493108894920.0; +14.643166666666668, 1492060481665.0; +14.649833333333335, 1491323645040.0; +14.656500000000001, 1491201540685.0; +14.663166666666667, 1490940489995.0; +14.669833333333335, 1490544703465.0; +14.6765, 1490127864460.0; +14.683166666666668, 1490359441685.0; +14.689833333333334, 1491045752370.0; +14.6965, 1491736273550.0; +14.703166666666668, 1493045737495.0; +14.709833333333334, 1494073098275.0; +14.716500000000002, 1494889934305.0; +14.723166666666668, 1494435200845.0; +14.729833333333334, 1493681522240.0; +14.736500000000001, 1493626785805.0; +14.743166666666667, 1493605733330.0; +14.749833333333335, 1494169939660.0; +14.7565, 1494889934305.0; +14.763166666666669, 1496363607555.0; +14.769833333333334, 1497525704175.0; +14.7765, 1497159391110.0; +14.783166666666668, 1496692026165.0; +14.789833333333334, 1496557290325.0; +14.796500000000002, 1497630966550.0; +14.803166666666668, 1499104639800.0; +14.809833333333334, 1501033046510.0; +14.816500000000001, 1502847769855.0; +14.823166666666667, 1504094076375.0; +14.829833333333335, 1504136181325.0; +14.836500000000001, 1503950919545.0; +14.843166666666669, 1504110918355.0; +14.849833333333335, 1504881438940.0; +14.8565, 1506283533775.0; +14.863166666666668, 1507790890985.0; +14.869833333333334, 1510249820065.0; +14.876500000000002, 1512169805785.0; +14.883166666666668, 1512843484985.0; +14.889833333333334, 1512359278060.0; +14.896500000000001, 1511761387770.0; +14.903166666666667, 1511538231535.0; +14.909833333333335, 1511323496290.0; +14.916500000000001, 1510628764615.0; +14.923166666666667, 1510119294720.0; +14.929833333333335, 1509348774135.0; +14.9365, 1508872988200.0; +14.943166666666668, 1508515096125.0; +14.949833333333334, 1507828785440.0; +14.956500000000002, 1506986686440.0; +14.963166666666668, 1506026693580.0; +14.969833333333334, 1505997220115.0; +14.976500000000001, 1506940370995.0; +14.983166666666667, 1508371939295.0; +14.989833333333335, 1510144557690.0; +14.996500000000001, 1512157174300.0; +15.003166666666667, 1514451894075.0; +15.009833333333335, 1515971882770.0; +15.0165, 1515887672870.0; +15.023166666666668, 1514927680010.0; +15.029833333333334, 1514022423585.0; +15.036500000000002, 1513647689530.0; +15.043166666666668, 1513639268540.0; +15.049833333333334, 1513774004380.0; +15.056500000000002, 1514152948930.0; +15.063166666666667, 1513997160615.0; +15.069833333333335, 1513525585175.0; +15.076500000000001, 1512915063400.0; +15.083166666666667, 1512068753905.0; +15.089833333333335, 1510982446195.0; +15.0965, 1509601403835.0; +15.103166666666668, 1509538246410.0; +15.109833333333334, 1509887717495.0; +15.1165, 1510152978680.0; +15.123166666666668, 1511045603620.0; +15.129833333333334, 1513176114090.0; +15.136500000000002, 1516889770680.0; +15.143166666666668, 1519639223915.0; +15.149833333333335, 1521403421320.0; +15.156500000000001, 1522367624675.0; +15.163166666666667, 1521386579340.0; +15.169833333333335, 1519357120750.0; +15.1765, 1516249775440.0; +15.183166666666668, 1514376105165.0; +15.189833333333334, 1512586644790.0; +15.1965, 1511331917280.0; +15.203166666666668, 1511719282820.0; +15.209833333333334, 1512805590530.0; +15.216500000000002, 1513967687150.0; +15.223166666666668, 1513243482010.0; +15.229833333333334, 1512510855880.0; +15.236500000000001, 1512531908355.0; +15.243166666666667, 1513049799240.0; +15.249833333333335, 1513921371705.0; +15.2565, 1514641366350.0; +15.263166666666669, 1516068724155.0; +15.269833333333334, 1517967657400.0; +15.2765, 1519390804710.0; +15.283166666666668, 1520312903115.0; +15.289833333333334, 1520384481530.0; +15.296500000000002, 1520599216775.0; +15.303166666666668, 1520784478555.0; +15.309833333333334, 1520763426080.0; +15.316500000000001, 1519795012230.0; +15.323166666666667, 1518296076010.0; +15.329833333333335, 1517251873250.0; +15.336500000000001, 1516936086125.0; +15.343166666666669, 1517601344335.0; +15.349833333333335, 1518409759375.0; +15.3565, 1519795012230.0; +15.363166666666668, 1521672893000.0; +15.369833333333334, 1523512879315.0; +15.376500000000002, 1524599187025.0; +15.383166666666668, 1524359188810.0; +15.389833333333334, 1524679186430.0; +15.396500000000001, 1525529706420.0; +15.403166666666667, 1526085491760.0; +15.409833333333335, 1525104446425.0; +15.416500000000001, 1524157085050.0; +15.423166666666667, 1524599187025.0; +15.429833333333335, 1525260234740.0; +15.4365, 1525559179885.0; +15.443166666666668, 1525382339095.0; +15.449833333333334, 1526102333740.0; +15.456500000000002, 1527037063630.0; +15.463166666666668, 1526889696305.0; +15.469833333333334, 1525365497115.0; +15.476500000000001, 1523870771390.0; +15.483166666666667, 1523268670605.0; +15.489833333333335, 1523403406445.0; +15.496500000000001, 1522872884075.0; +15.503166666666667, 1522030785075.0; +15.509833333333335, 1521563420130.0; +15.5165, 1520919214395.0; +15.523166666666668, 1520813952020.0; +15.529833333333334, 1520498164895.0; +15.536500000000002, 1521049739740.0; +15.543166666666668, 1521874996760.0; +15.549833333333334, 1522952883480.0; +15.556500000000002, 1524262347425.0; +15.563166666666667, 1524342346830.0; +15.569833333333335, 1523672878125.0; +15.576500000000001, 1521870786265.0; +15.583166666666667, 1520275008660.0; +15.589833333333335, 1519226595405.0; +15.5965, 1518178182150.0; +15.603166666666668, 1517117137410.0; +15.609833333333334, 1516203459995.0; +15.6165, 1516001356235.0; +15.623166666666668, 1515887672870.0; +15.629833333333334, 1515327677035.0; +15.636500000000002, 1515942409305.0; +15.643166666666668, 1517702396215.0; +15.649833333333335, 1520426586480.0; +15.656500000000001, 1522839200115.0; +15.663166666666667, 1525348655135.0; +15.669833333333335, 1527714953325.0; +15.6765, 1528464421435.0; +15.683166666666668, 1528397053515.0; +15.689833333333334, 1527929688570.0; +15.6965, 1528072845400.0; +15.703166666666668, 1528388632525.0; +15.709833333333334, 1529373888355.0; +15.716500000000002, 1531150717245.0; +15.723166666666668, 1532397023765.0; +15.729833333333335, 1533277017220.0; +15.736500000000001, 1534312798990.0; +15.743166666666667, 1535260160365.0; +15.749833333333335, 1535272791850.0; +15.7565, 1534759111460.0; +15.763166666666669, 1535251739375.0; +15.769833333333334, 1535883313625.0; +15.7765, 1535634894420.0; +15.783166666666668, 1535622262935.0; +15.789833333333334, 1537382249845.0; +15.796500000000002, 1540152755555.0; +15.803166666666668, 1542843261860.0; +15.809833333333334, 1545424295295.0; +15.816500000000001, 1548826375255.0; +15.823166666666667, 1552434769470.0; +15.829833333333335, 1555769481510.0; +15.836500000000001, 1559462085625.0; +15.843166666666669, 1563794684980.0; +15.849833333333335, 1569508326695.0; +15.8565, 1576480906415.0; +15.863166666666668, 1585175578590.0; +15.869833333333334, 1594404983630.0; +15.876500000000002, 1604270173415.0; +15.883166666666668, 1614855357845.0; +15.889833333333334, 1626922636515.0; +15.896500000000001, 1640366747050.0; +15.903166666666667, 1653806647090.0; +15.909833333333335, 1666918128520.0; +15.916500000000001, 1679301194315.0; +15.923166666666669, 1691608471200.0; +15.929833333333335, 1703246279380.0; +15.9365, 1713919884205.0; +15.943166666666668, 1723511391815.0; +15.949833333333334, 1732071328150.0; +15.9565, 1739317590045.0; +15.963166666666668, 1744445972955.0; +15.969833333333336, 1747422792920.0; +15.9765, 1748403838255.0; +15.983166666666667, 1749115411910.0; +15.989833333333335, 1750071194275.0; +15.996500000000003, 1751266974855.0; +16.003166666666665, 1752546965335.0; +16.009833333333333, 1754546950460.0; +16.0165, 1758180607645.0; +16.023166666666665, 1762151104430.0; +16.029833333333332, 1765734235675.0; +16.0365, 1767944745550.0; +16.043166666666664, 1769595259590.0; +16.049833333333332, 1770500516015.0; +16.0565, 1769986835625.0; +16.063166666666667, 1767334223775.0; +16.06983333333333, 1763216359665.0; +16.0765, 1759115337535.0; +16.083166666666667, 1754723791250.0; +16.08983333333333, 1749052254485.0; +16.0965, 1741667046255.0; +16.103166666666667, 1733595527340.0; +16.109833333333334, 1724761908830.0; +16.1165, 1714888298055.0; +16.123166666666666, 1703511540565.0; +16.129833333333334, 1691179000710.0; +16.136499999999998, 1677124368400.0; +16.143166666666666, 1662236058080.0; +16.149833333333333, 1647019329150.0; +16.156499999999998, 1632152071305.0; +16.163166666666665, 1617600600585.0; +16.169833333333333, 1601849138790.0; +16.1765, 1586000835610.0; +16.183166666666665, 1569015698780.0; +16.189833333333333, 1551575828490.0; +16.1965, 1533584383355.0; +16.203166666666664, 1515748726535.0; +16.209833333333332, 1499222533660.0; +16.2165, 1483702649090.0; +16.223166666666668, 1469041705500.0; +16.229833333333332, 1454848126855.0; +16.2365, 1440869283455.0; +16.243166666666667, 1426911492530.0; +16.24983333333333, 1412010550725.0; +16.2565, 1396499087145.0; +16.263166666666667, 1381252884750.0; +16.269833333333334, 1366305627500.0; +16.2765, 1351194160945.0; +16.283166666666666, 1335977432015.0; +16.289833333333334, 1322449111580.0; +16.296499999999998, 1310297623010.0; +16.303166666666666, 1298520868495.0; +16.309833333333334, 1286908323285.0; +16.316499999999998, 1275497881835.0; +16.323166666666665, 1264533752855.0; +16.329833333333333, 1253304362690.0; +16.3365, 1242070762030.0; +16.343166666666665, 1230816108895.0; +16.349833333333333, 1219620402690.0; +16.3565, 1208828904005.0; +16.363166666666665, 1198391086900.0; +16.369833333333332, 1187928006825.0; +16.3765, 1177355453880.0; +16.383166666666668, 1167313423305.0; +16.389833333333332, 1157111393920.0; +16.3965, 1147347256015.0; +16.403166666666667, 1137482066230.0; +16.40983333333333, 1127970558025.0; +16.4165, 1118307472000.0; +16.423166666666667, 1108391756275.0; +16.42983333333333, 1098901300545.0; +16.4365, 1089448739270.0; +16.443166666666666, 1080013019975.0; +16.449833333333334, 1070547827215.0; +16.4565, 1061065792475.0; +16.463166666666666, 1052198490005.0; +16.469833333333334, 1043470133870.0; +16.476499999999998, 1034484937540.0; +16.483166666666666, 1025053428740.0; +16.489833333333333, 1014771399950.0; +16.4965, 1004628317495.0; +16.503166666666665, 994106290490.0; +16.509833333333333, 983689525860.0; +16.5165, 973390655090.0; +16.523166666666665, 964220196980.0; +16.529833333333332, 956102362620.0; +16.5365, 948329788850.0; +16.543166666666664, 940515110130.0; +16.549833333333332, 932788851805.0; +16.5565, 925871008520.0; +16.563166666666667, 918418432370.0; +16.56983333333333, 911146907505.0; +16.5765, 903597489970.0; +16.583166666666667, 895993336000.0; +16.58983333333333, 888262867180.0; +16.5965, 879875561140.0; +16.603166666666667, 871724042820.0; +16.609833333333334, 863555682520.0; +16.6165, 855833634690.0; +16.623166666666666, 848920001900.0; +16.629833333333334, 842461102570.0; +16.636499999999998, 836625356500.0; +16.643166666666666, 830907504290.0; +16.649833333333333, 824688603175.0; +16.6565, 818267598300.0; +16.663166666666665, 811758173030.0; +16.669833333333333, 805572955875.0; +16.6765, 799055109615.0; +16.683166666666665, 792229897220.0; +16.689833333333333, 785573104625.0; +16.6965, 779265783115.0; +16.703166666666664, 772979514080.0; +16.709833333333332, 766124828220.0; +16.7165, 759185932460.0; +16.723166666666668, 752360720065.0; +16.729833333333332, 746310238750.0; +16.7365, 740680806935.0; +16.743166666666667, 735859790160.0; +16.74983333333333, 731304034570.0; +16.7565, 726714595020.0; +16.763166666666667, 721981998640.0; +16.769833333333334, 716790458305.0; +16.7765, 711611549455.0; +16.783166666666666, 705472647745.0; +16.789833333333334, 698967432970.0; +16.796499999999998, 692373797800.0; +16.803166666666666, 685957003420.0; +16.809833333333334, 679961258540.0; +16.816499999999998, 673927619205.0; +16.823166666666665, 668639237485.0; +16.829833333333333, 664441373970.0; +16.8365, 660651928470.0; +16.843166666666665, 657153007125.0; +16.849833333333333, 653696190730.0; +16.8565, 650664634330.0; +16.863166666666665, 647026766650.0; +16.869833333333332, 641708911465.0; +16.8765, 635730008565.0; +16.883166666666668, 629953209425.0; +16.889833333333332, 624066937415.0; +16.8965, 617405934325.0; +16.903166666666667, 610652300345.0; +16.90983333333333, 605532338425.0; +16.9165, 601296580455.0; +16.923166666666667, 597043980505.0; +16.92983333333333, 592681907685.0; +16.9365, 588387202785.0; +16.943166666666666, 584761966590.0; +16.949833333333334, 580728312380.0; +16.9565, 577162023115.0; +16.963166666666666, 573372577615.0; +16.969833333333334, 569604184590.0; +16.976499999999998, 565667371765.0; +16.983166666666666, 561018985285.0; +16.989833333333333, 556231652470.0; +16.9965, 551419056685.0; +17.003166666666665, 547309613565.0; +17.009833333333333, 543612798955.0; +17.0165, 540358086320.0; +17.023166666666665, 537608633085.0; +17.029833333333332, 534762338465.0; +17.0365, 531010787420.0; +17.043166666666664, 526652925095.0; +17.049833333333332, 522290852275.0; +17.0565, 518598248160.0; +17.063166666666667, 514779329195.0; +17.06983333333333, 510724622510.0; +17.0765, 506135182960.0; +17.083166666666667, 501335218660.0; +17.08983333333333, 496994198315.0; +17.0965, 492699493415.0; +17.103166666666667, 488758470095.0; +17.109833333333334, 484670079450.0; +17.1165, 481634312555.0; +17.123166666666666, 479453276145.0; +17.129833333333334, 477103819935.0; +17.136499999999998, 474038579575.0; +17.143166666666666, 470148082195.0; +17.149833333333333, 466623897880.0; +17.1565, 462632348620.0; +17.163166666666665, 457958699170.0; +17.169833333333333, 452472424185.0; +17.1765, 446754571975.0; +17.183166666666665, 442093554010.0; +17.189833333333333, 438299898015.0; +17.1965, 435192552705.0; +17.203166666666664, 431971524030.0; +17.209833333333332, 429184176340.0; +17.2165, 426674721320.0; +17.223166666666668, 424060003925.0; +17.229833333333332, 420952658615.0; +17.2365, 417622157070.0; +17.243166666666667, 414531653740.0; +17.24983333333333, 411373782490.0; +17.2565, 408371699555.0; +17.263166666666667, 405036987515.0; +17.269833333333334, 401100174690.0; +17.2765, 397180203845.0; +17.283166666666666, 393466547255.0; +17.289833333333334, 389912889475.0; +17.296499999999998, 386157127935.0; +17.303166666666666, 382249788575.0; +17.309833333333334, 378759288220.0; +17.316499999999998, 375096157570.0; +17.323166666666665, 370986714450.0; +17.329833333333333, 366995165190.0; +17.3365, 363117299295.0; +17.343166666666665, 359559431020.0; +17.349833333333333, 355925773835.0; +17.3565, 352633166745.0; +17.363166666666665, 349917397470.0; +17.369833333333332, 346881630575.0; +17.3765, 343567971010.0; +17.383166666666668, 339946945310.0; +17.389833333333332, 336658548715.0; +17.3965, 333753307165.0; +17.403166666666667, 330877539080.0; +17.40983333333333, 327799667235.0; +17.4165, 324856531230.0; +17.423166666666667, 322326023735.0; +17.42983333333333, 320077619405.0; +17.4365, 317016589540.0; +17.443166666666666, 313105039685.0; +17.449833333333334, 309315594185.0; +17.4565, 305618779575.0; +17.463166666666666, 301669335265.0; +17.469833333333334, 297488313730.0; +17.476499999999998, 293707289220.0; +17.483166666666666, 290974677965.0; +17.489833333333333, 288077857405.0; +17.4965, 285105247935.0; +17.503166666666665, 281930534705.0; +17.509833333333333, 279029503650.0; +17.5165, 276296892395.0; +17.523166666666665, 273092705700.0; +17.529833333333332, 269837993065.0; +17.5365, 266414860630.0; +17.543166666666668, 263290673340.0; +17.549833333333332, 260132802090.0; +17.5565, 256457039955.0; +17.563166666666667, 252604437030.0; +17.56983333333333, 249109726180.0; +17.5765, 246419219875.0; +17.583166666666667, 243631872185.0; +17.58983333333333, 240027688465.0; +17.5965, 236394031280.0; +17.603166666666667, 233055108745.0; +17.609833333333334, 229876185020.0; +17.6165, 226099371005.0; +17.623166666666666, 222057295805.0; +17.629833333333334, 217627855065.0; +17.636499999999998, 213312097690.0; +17.643166666666666, 209505810210.0; +17.649833333333333, 206246887080.0; +17.6565, 203366908500.0; +17.663166666666665, 200293247150.0; +17.669833333333333, 197838528565.0; +17.6765, 195514335325.0; +17.683166666666665, 192617514765.0; +17.689833333333333, 189211224310.0; +17.6965, 185240727525.0; +17.703166666666664, 181733385190.0; +17.709833333333332, 178432357110.0; +17.7165, 175089224080.0; +17.723166666666668, 171779775010.0; +17.729833333333332, 168120854855.0; +17.7365, 164908247170.0; +17.743166666666667, 161750375920.0; +17.74983333333333, 158516715760.0; +17.7565, 155337792035.0; +17.763166666666667, 151531504555.0; +17.769833333333334, 147721006580.0; +17.7765, 143123146040.0; +17.783166666666666, 138533706490.0; +17.789833333333334, 134133739215.0; +17.796499999999998, 129822192335.0; +17.803166666666666, 126188535150.0; +17.809833333333334, 122689613805.0; +17.816499999999998, 120011738985.0; +17.823166666666665, 117439126540.0; +17.829833333333333, 114445464595.0; +17.8365, 111544433540.0; +17.843166666666665, 108331825855.0; +17.849833333333333, 105300269455.0; +17.8565, 101936083950.0; +17.863166666666665, 98281374290.0; +17.869833333333332, 94706664035.0; +17.8765, 90908797545.0; +17.883166666666668, 87073036600.0; +17.889833333333332, 83136223775.0; +17.8965, 79035201645.0; +17.903166666666667, 74757338725.0; +17.90983333333333, 70357371450.0; +17.9165, 65877404770.0; +17.923166666666667, 61490068980.0; +17.92983333333333, 56525895375.0; +17.9365, 51351197020.0; +17.943166666666666, 46732284005.0; +17.949833333333334, 43195468205.0; +17.9565, 39940755570.0; +17.963166666666666, 36353413830.0; +17.969833333333334, 32947123375.0; +17.976499999999998, 29949250935.0; +17.983166666666666, 27102956315.0; +17.989833333333333, 23486141110.0; +17.9965, 19928272835.0; +18.003166666666665, 16425140995.0; +18.009833333333333, 12980956085.0; +18.0165, 9894663250.0; +18.023166666666665, 6985211205.0; +18.029833333333332, 4581018560.0; +18.0365, 2134720965.0; +18.043166666666668, -21052475.0; +18.049833333333332, -2172615420.0; +18.0565, -4547334600.0; +18.063166666666667, -7536786050.0; +18.06983333333333, -11174653730.0; +18.0765, -15039888140.0; +18.083166666666667, -18614598395.0; +18.08983333333333, -21237736780.0; +18.0965, -23692455365.0; +18.103166666666667, -25540862670.0; +18.109833333333334, -26905063050.0; +18.1165, -28260842440.0; +18.123166666666666, -30008197865.0; +18.129833333333334, -32163971305.0; +18.136499999999998, -33789222375.0; +18.143166666666666, -35839733440.0; +18.149833333333333, -37717614210.0; +18.1565, -38736554000.0; +18.163166666666665, -38340767470.0; +18.169833333333333, -37481826490.0; +18.1765, -37233407285.0; +18.183166666666665, -37157618375.0; +18.189833333333333, -37578667875.0; +18.1965, -38450240340.0; +18.203166666666664, -40029175965.0; +18.209833333333332, -41747057925.0; +18.2165, -42829155140.0; +18.223166666666668, -43107047810.0; +18.229833333333332, -42446000095.0; +18.2365, -41456533770.0; +18.243166666666667, -40121806855.0; +18.24983333333333, -38774448455.0; +18.2565, -37709193220.0; +18.263166666666667, -36900778180.0; +18.269833333333334, -36395518780.0; +18.2765, -35675524135.0; +18.283166666666666, -35292369090.0; +18.289833333333334, -34719741770.0; +18.296499999999998, -34092378015.0; +18.303166666666666, -32900807930.0; +18.309833333333334, -31351345770.0; +18.316499999999998, -29772410145.0; +18.323166666666665, -28138738085.0; +18.329833333333333, -26509276520.0; +18.3365, -24593501295.0; +18.343166666666665, -23246142895.0; +18.349833333333333, -22820882900.0; +18.3565, -22825093395.0; +18.363166666666665, -22829303890.0; +18.369833333333332, -22841935375.0; +18.3765, -23094565075.0; +18.383166666666668, -22884040325.0; +18.389833333333332, -21662996775.0; +18.3965, -20058798180.0; +18.403166666666667, -18404073645.0; +18.40983333333333, -17103030690.0; +18.4165, -16016722980.0; +18.423166666666667, -14964099230.0; +18.429833333333335, -13587267365.0; +18.4365, -11882016890.0; +18.443166666666666, -9936768200.0; +18.449833333333334, -7667311395.0; +18.4565, -5330486670.0; +18.463166666666666, -4008391240.0; +18.469833333333334, -3658920155.0; +18.476499999999998, -3528394810.0; +18.483166666666666, -3301028080.0; +18.489833333333333, -3469447880.0; +18.4965, -3402079960.0; +18.503166666666665, -2134720965.0; +18.509833333333333, -282103165.0; +18.5165, 1069465730.0; +18.523166666666665, 1675777010.0; +18.529833333333332, 2214720370.0; +18.5365, 2277877795.0; +18.543166666666668, 1898933245.0; +18.549833333333332, 1359989885.0; +18.5565, 1385252855.0; +18.563166666666667, 2037879580.0; +18.56983333333333, 3111555805.0; +18.5765, 4614702520.0; +18.583166666666667, 6399952400.0; +18.58983333333333, 8020992975.0; +18.5965, 9006248805.0; +18.603166666666667, 9170458110.0; +18.609833333333334, 8850460490.0; +18.6165, 8416779505.0; +18.623166666666666, 7557838525.0; +18.629833333333334, 6610477150.0; +18.636499999999998, 5907324485.0; +18.643166666666666, 6025218345.0; +18.649833333333333, 6581003685.0; +18.6565, 7183104470.0; +18.663166666666665, 7435734170.0; +18.669833333333333, 7309419320.0; +18.6765, 6993632195.0; +18.683166666666665, 6707318535.0; +18.689833333333333, 6888369820.0; +18.6965, 7494681100.0; +18.703166666666664, 8404148020.0; +18.709833333333332, 9199931575.0; +18.7165, 10180976910.0; +18.723166666666668, 11077812345.0; +18.729833333333332, 11460967390.0; +18.7365, 11170443235.0; +18.743166666666667, 10812551160.0; +18.74983333333333, 11052549375.0; +18.7565, 11385178480.0; +18.763166666666667, 11658860655.0; +18.769833333333334, 11700965605.0; +18.7765, 11511493330.0; +18.783166666666666, 11229390165.0; +18.789833333333334, 11153601255.0; +18.796499999999998, 10837814130.0; +18.803166666666666, 10303081265.0; +18.809833333333334, 9793611370.0; +18.8165, 9852558300.0; +18.823166666666665, 10277818295.0; +18.829833333333333, 10420975125.0; +18.8365, 10450448590.0; +18.843166666666665, 10239923840.0; +18.849833333333333, 10004136120.0; +18.8565, 9465192760.0; +18.863166666666665, 8682040690.0; +18.869833333333332, 7949414560.0; +18.8765, 7242051400.0; +18.883166666666668, 7187314965.0; +18.889833333333332, 7566259515.0; +18.8965, 8686251185.0; +18.903166666666667, 9970452160.0; +18.90983333333333, 10850445615.0; +18.9165, 11940963820.0; +18.923166666666667, 12711484405.0; +18.929833333333335, 13385163605.0; +18.9365, 13162007370.0; +18.943166666666666, 12517801635.0; +18.949833333333334, 12172541045.0; +18.9565, 11945174315.0; +18.963166666666666, 11882016890.0; +18.969833333333334, 11254653135.0; +18.976499999999998, 11031496900.0; +18.983166666666666, 11132548780.0; +18.989833333333333, 11254653135.0; +18.9965, 11073601850.0; +19.003166666666665, 10665183835.0; +19.009833333333333, 10644131360.0; +19.0165, 10442027600.0; +19.023166666666665, 10218871365.0; +19.029833333333332, 10092556515.0; +19.0365, 10105188000.0; +19.043166666666668, 9793611370.0; +19.049833333333332, 9583086620.0; +19.0565, 9633612560.0; +19.063166666666667, 9684138500.0; +19.06983333333333, 9562034145.0; +19.0765, 9258878505.0; +19.083166666666667, 9140984645.0; +19.08983333333333, 8568357325.0; +19.0965, 7860994165.0; +19.103166666666667, 7482049615.0; +19.109833333333334, 7305208825.0; +19.1165, 6749423485.0; +19.123166666666666, 5949429435.0; +19.129833333333334, 5322065680.0; +19.136499999999998, 5376802115.0; +19.143166666666666, 5625221320.0; +19.149833333333333, 5966271415.0; +19.1565, 6585214180.0; +19.163166666666665, 7153631005.0; +19.169833333333333, 7793626245.0; +19.1765, 7886257135.0; +19.183166666666665, 7511523080.0; +19.189833333333333, 6850475365.0; +19.1965, 6239953590.0; +19.203166666666664, 6623108635.0; +19.209833333333332, 7077842095.0; +19.2165, 7317840310.0; +19.223166666666668, 6926264275.0; +19.229833333333332, 6568372200.0; +19.2365, 6311532005.0; +19.243166666666667, 5802062110.0; +19.24983333333333, 5233645285.0; +19.2565, 4976805090.0; +19.263166666666667, 5414696570.0; +19.269833333333334, 5650484290.0; +19.2765, 5507327460.0; +19.283166666666666, 4530492620.0; +19.289833333333334, 3418921940.0; +19.296499999999998, 2319982745.0; +19.303166666666666, 1658935030.0; +19.309833333333334, 1549462160.0; +19.3165, 1650514040.0; +19.323166666666665, 1772618395.0; +19.329833333333333, 2172615420.0; +19.3365, 2934715015.0; +19.343166666666665, 3709446095.0; +19.349833333333333, 3941023320.0; +19.3565, 3642078175.0; +19.363166666666665, 3385237980.0; +19.369833333333332, 3393658970.0; +19.3765, 2922083530.0; +19.383166666666668, 2067353045.0; +19.389833333333332, 1128412660.0; +19.3965, 1153675630.0; +19.403166666666667, 1696829485.0; +19.40983333333333, 1890512255.0; +19.4165, 2147352450.0; +19.423166666666667, 2492613040.0; +19.429833333333335, 3233660160.0; +19.4365, 3465237385.0; +19.443166666666666, 3507342335.0; +19.449833333333334, 3372606495.0; +19.4565, 3136818775.0; +19.463166666666666, 2698927295.0; +19.469833333333334, 1928406710.0; +19.476499999999998, 1132623155.0; +19.483166666666666, 787362565.0; +19.489833333333333, 1128412660.0; +19.4965, 1713671465.0; +19.503166666666665, 2067353045.0; +19.509833333333333, 2997872440.0; +19.5165, 4517861135.0; +19.523166666666665, 5806272605.0; +19.529833333333332, 6349426460.0; +19.5365, 6467320320.0; +19.543166666666668, 6854685860.0; +19.549833333333332, 6555740715.0; +19.5565, 5444170035.0; +19.563166666666667, 4096811635.0; +19.56983333333333, 3132608280.0; +19.5765, 2479981555.0; +19.583166666666667, 1212622560.0; +19.58983333333333, 4210495.0; +19.5965, -395786530.0; +19.603166666666667, -71578415.0; +19.609833333333334, 244208710.0; +19.6165, -138946335.0; +19.623166666666666, -345260590.0; +19.629833333333334, -307366135.0; +19.636499999999998, -227366730.0; +19.643166666666666, -298945145.0; +19.649833333333333, -181051285.0; +19.6565, 425259995.0; +19.663166666666665, 1595777605.0; +19.669833333333333, 2816821155.0; +19.6765, 3869444905.0; +19.683166666666665, 4159969060.0; +19.689833333333333, 3650499165.0; +19.6965, 2665243335.0; +19.703166666666668, 1338937410.0; +19.709833333333332, 25262970.0; +19.7165, -976834840.0; +19.723166666666668, -1355779390.0; +19.729833333333332, -1250517015.0; +19.7365, -808415040.0; +19.743166666666667, -96841385.0; +19.74983333333333, 1141044145.0; +19.7565, 1974722155.0; +19.763166666666667, 2341035220.0; +19.769833333333334, 2884189075.0; +19.7765, 3692604115.0; +19.783166666666666, 4239968465.0; +19.789833333333334, 3726288075.0; +19.796499999999998, 2964188480.0; +19.803166666666666, 2399982150.0; +19.809833333333334, 1406305330.0; +19.8165, 530522370.0; +19.823166666666665, 446312470.0; +19.829833333333333, 1726302950.0; +19.8365, 3511552830.0; +19.843166666666665, 4757859350.0; +19.849833333333333, 5738904685.0; +19.8565, 5873640525.0; +19.863166666666665, 5279960730.0; +19.869833333333332, 3696814610.0; +19.8765, 1785249880.0; +19.883166666666668, 277892670.0; +19.889833333333332, -341050095.0; +19.8965, -58946930.0; +19.903166666666667, 534732865.0; +19.90983333333333, 1002097810.0; +19.9165, 1023150285.0; +19.923166666666667, 783152070.0; +19.929833333333335, 50525940.0; +19.9365, -673679200.0; +19.943166666666666, -1258938005.0; +19.949833333333334, -1343147905.0; +19.9565, -1128412660.0; +##END= + +$$ === CHEMSPECTRA INTEGRALS AND MULTIPLETS === +##PAGE=230 +##$OBSERVEDINTEGRALS= (X Y Z) +(2.0, 4.2, 15489366902240.0) +##$OBSERVEDMULTIPLETS= +##$OBSERVEDMULTIPLETSPEAKS= +##END= + +$$ === CHEMSPECTRA PEAK TABLE EDIT === +##TITLE=618becfe-a0ce-4983-ba36-5fdcbb7ed595 +##JCAMP-DX=5.00 +##DATA TYPE=LC/MSPEAKTABLE +##DATA CLASS=PEAKTABLE +##$CSCATEGORY=EDIT_PEAK +##$CSTHRESHOLD=0.05 +##MAXX=19.9565 +##MAXY=15489366902240.0 +##MINX=-0.0435 +##MINY=-875054544365.0 +##PAGE=230 +##NPOINTS=2 +##PEAKTABLE= (XY..XY) +14.149833333333333, 1513719267945.0 +14.883166666666668, 1512843484985.0 +##END= + +$$ === CHEMSPECTRA PEAK TABLE AUTO === +##TITLE=618becfe-a0ce-4983-ba36-5fdcbb7ed595 +##JCAMP-DX=5.00 +##DATA TYPE=LC/MSPEAKTABLE +##DATA CLASS=PEAKTABLE +##$CSCATEGORY=AUTO_PEAK +##$CSTHRESHOLD=0.05 +##MAXX=19.9565 +##MAXY=15489366902240.0 +##MINX=-0.0435 +##MINY=-875054544365.0 +##PAGE=230 +##NPOINTS=0 +##PEAKTABLE= (XY..XY) +##END= + +$$ === CHEMSPECTRA UVVIS PEAK TABLE === +##TITLE=618becfe-a0ce-4983-ba36-5fdcbb7ed595 +##JCAMP-DX=5.00 +##DATA TYPE=LC/MS +##DATA CLASS=PEAK TABLE +##ORIGIN= +##OWNER= +##XUNITS=RETENTION TIME +##YUNITS=DETECTOR SIGNAL +##$CSCATEGORY=UVVIS PEAK TABLE +##PAGE=254 +##NPOINTS=3001 +##DATA TABLE= (XY..XY), PEAKS +-0.0435, -3671551640.0; +-0.03683333333333333, -3355764515.0; +-0.03016666666666666, -2930504520.0; +-0.023499999999999997, -2269456805.0; +-0.01683333333333333, -1730513445.0; +-0.010166666666666664, -1376831865.0; +-0.003499999999999996, -1461041765.0; +0.003166666666666672, -2004195620.0; +0.00983333333333334, -2576822940.0; +0.016500000000000008, -3010503925.0; +0.02316666666666667, -3069450855.0; +0.029833333333333337, -2850505115.0; +0.036500000000000005, -2362087695.0; +0.04316666666666667, -1696829485.0; +0.04983333333333334, -1094728700.0; +0.05650000000000001, -930519395.0; +0.06316666666666668, -993676820.0; +0.06983333333333334, -1056834245.0; +0.07650000000000001, -1065255235.0; +0.08316666666666668, -1044202760.0; +0.08983333333333333, -964203355.0; +0.09650000000000002, -867361970.0; +0.10316666666666667, -1052623750.0; +0.10983333333333335, -1376831865.0; +0.1165, -1591567110.0; +0.12316666666666669, -1448410280.0; +0.12983333333333336, -1191570085.0; +0.1365, -627363755.0; +0.14316666666666666, 134735840.0; +0.14983333333333337, 673679200.0; +0.15650000000000003, 981045335.0; +0.16316666666666668, 837888505.0; +0.16983333333333334, 501048905.0; +0.1765, -138946335.0; +0.1831666666666667, -492627915.0; +0.18983333333333335, -517890885.0; +0.1965, -454733460.0; +0.20316666666666666, -707363160.0; +0.20983333333333337, -1170517610.0; +0.21650000000000003, -1410515825.0; +0.22316666666666668, -1515778200.0; +0.2298333333333334, -1166307115.0; +0.23650000000000004, -816836030.0; +0.2431666666666667, -147367325.0; +0.24983333333333335, 673679200.0; +0.25650000000000006, 1343147905.0; +0.2631666666666667, 1402094835.0; +0.26983333333333337, 749468110.0; +0.2765, 138946335.0; +0.2831666666666667, -202103760.0; +0.2898333333333334, -534732865.0; +0.29650000000000004, -821046525.0; +0.3031666666666667, -959992860.0; +0.30983333333333335, -1048413255.0; +0.31650000000000006, -1347358400.0; +0.3231666666666667, -1873670275.0; +0.32983333333333337, -2092616015.0; +0.3365, -2181036410.0; +0.34316666666666673, -1966301165.0; +0.3498333333333334, -1587356615.0; +0.35650000000000004, -1237885530.0; +0.3631666666666667, -909466920.0; +0.3698333333333334, -901045930.0; +0.37650000000000006, -644205735.0; +0.3831666666666667, -568416825.0; +0.38983333333333337, -479996430.0; +0.3965, -79999405.0; +0.40316666666666673, 551574845.0; +0.4098333333333334, 1061044740.0; +0.41650000000000004, 677889695.0; +0.4231666666666667, -122104355.0; +0.4298333333333334, -1035781770.0; +0.43650000000000005, -2046300570.0; +0.4431666666666667, -3035766895.0; +0.44983333333333336, -3650499165.0; +0.4565, -3684183125.0; +0.4631666666666667, -3330501545.0; +0.46983333333333344, -2926294025.0; +0.47650000000000003, -2513665515.0; +0.48316666666666674, -2324193240.0; +0.48983333333333334, -2218930865.0; +0.49650000000000005, -2075774035.0; +0.5031666666666668, -1962090670.0; +0.5098333333333334, -1890512255.0; +0.5165000000000001, -2075774035.0; +0.5231666666666667, -2227351855.0; +0.5298333333333334, -2501034030.0; +0.5365000000000001, -2854715610.0; +0.5431666666666667, -3187344715.0; +0.5498333333333334, -3389448475.0; +0.5565000000000001, -2930504520.0; +0.5631666666666667, -2147352450.0; +0.5698333333333334, -1216833055.0; +0.5765, -673679200.0; +0.5831666666666667, -703152665.0; +0.5898333333333334, -947361375.0; +0.5965, -1402094835.0; +0.6031666666666667, -1776828890.0; +0.6098333333333333, -2138931460.0; +0.6165, -2374719180.0; +0.6231666666666668, -2298930270.0; +0.6298333333333334, -1978932650.0; +0.6365000000000001, -2202088885.0; +0.6431666666666668, -2934715015.0; +0.6498333333333334, -3882076390.0; +0.6565000000000001, -4315757375.0; +0.6631666666666667, -4138916585.0; +0.6698333333333334, -3903128865.0; +0.6765000000000001, -3414711445.0; +0.6831666666666667, -3010503925.0; +0.6898333333333334, -2471560565.0; +0.6965000000000001, -1999985125.0; +0.7031666666666667, -1612619585.0; +0.7098333333333334, -1785249880.0; +0.7165, -2105247500.0; +0.7231666666666667, -2273667300.0; +0.7298333333333334, -2370508685.0; +0.7365, -2345245715.0; +0.7431666666666668, -2778926700.0; +0.7498333333333334, -2833663135.0; +0.7565000000000001, -2715769275.0; +0.7631666666666668, -2341035220.0; +0.7698333333333334, -1949459185.0; +0.7765000000000001, -2084195025.0; +0.7831666666666668, -2214720370.0; +0.7898333333333334, -2421034625.0; +0.7965000000000001, -2433666110.0; +0.8031666666666667, -2362087695.0; +0.8098333333333334, -2294719775.0; +0.8165000000000001, -2016827105.0; +0.8231666666666667, -1835775820.0; +0.8298333333333334, -1713671465.0; +0.8365, -1642093050.0; +0.8431666666666667, -1633672060.0; +0.8498333333333334, -1427357805.0; +0.8565, -1279990480.0; +0.8631666666666667, -1077886720.0; +0.8698333333333335, -997887315.0; +0.8765000000000001, -808415040.0; +0.8831666666666668, -736836625.0; +0.8898333333333334, -1258938005.0; +0.8965000000000001, -2126299975.0; +0.9031666666666668, -2635769870.0; +0.9098333333333334, -2547349475.0; +0.9165000000000001, -2458929080.0; +0.9231666666666667, -2231562350.0; +0.9298333333333334, -1347358400.0; +0.9365000000000001, 197893265.0; +0.9431666666666667, 1882091265.0; +0.9498333333333334, 3204186695.0; +0.9565, 4248389455.0; +0.9631666666666668, 4639965490.0; +0.9698333333333334, 4530492620.0; +0.9765, 4021022725.0; +0.9831666666666669, 3225239170.0; +0.9898333333333335, 2227351855.0; +0.9965, 1376831865.0; +1.0031666666666665, 1141044145.0; +1.0098333333333334, 1094728700.0; +1.0165, 1309463945.0; +1.0231666666666666, 1528409685.0; +1.0298333333333334, 2025248095.0; +1.0365, 2492613040.0; +1.0431666666666666, 2863136600.0; +1.0498333333333334, 3705235600.0; +1.0565, 4892595190.0; +1.0631666666666666, 6421004875.0; +1.0698333333333334, 7764152780.0; +1.0765, 8631514750.0; +1.0831666666666666, 8829408015.0; +1.0898333333333332, 7705205850.0; +1.0965, 5111540930.0; +1.1031666666666666, 1275779985.0; +1.1098333333333332, -3852602925.0; +1.1165, -12660958465.0; +1.1231666666666666, -29477675495.0; +1.1298333333333332, -56496421910.0; +1.1365, -90121434980.0; +1.1431666666666667, -122222248860.0; +1.1498333333333333, -143657878905.0; +1.1565, -146142070955.0; +1.1631666666666667, -124984333580.0; +1.1698333333333333, -81363605380.0; +1.1764999999999999, -23094565075.0; +1.1831666666666667, 38349188460.0; +1.1898333333333333, 92369839310.0; +1.1965, 131784283005.0; +1.2031666666666667, 155619895200.0; +1.2098333333333333, 167207177440.0; +1.2165, 170916623535.0; +1.2231666666666667, 170070314040.0; +1.2298333333333333, 166440867350.0; +1.2365, 161973532155.0; +1.2431666666666668, 156933569640.0; +1.2498333333333334, 150133620215.0; +1.2565, 136946349875.0; +1.2631666666666665, 111161278495.0; +1.2698333333333334, 69730007695.0; +1.2765, 15334622790.0; +1.2831666666666666, -43561781270.0; +1.2898333333333334, -97835061820.0; +1.2965, -139552646280.0; +1.3031666666666666, -161708270970.0; +1.3098333333333334, -162285108785.0; +1.3165, -145304182450.0; +1.3231666666666666, -120167527300.0; +1.3298333333333334, -95321396305.0; +1.3365, -74239447840.0; +1.3431666666666666, -58033252585.0; +1.3498333333333332, -45911237480.0; +1.3565, -37102881940.0; +1.3631666666666666, -30109249745.0; +1.3698333333333332, -24639816740.0; +1.3765, -20538794610.0; +1.3831666666666667, -17241977025.0; +1.3898333333333333, -14277788545.0; +1.3965, -11962016295.0; +1.4031666666666667, -10500974530.0; +1.4098333333333333, -9183089595.0; +1.4165, -7722047830.0; +1.4231666666666667, -6416794380.0; +1.4298333333333333, -5802062110.0; +1.4365, -5330486670.0; +1.4431666666666667, -4778911825.0; +1.4498333333333333, -4159969060.0; +1.4565, -3418921940.0; +1.4631666666666667, -2543138980.0; +1.4698333333333333, -1242096025.0; +1.4765, 101051880.0; +1.4831666666666667, 1178938600.0; +1.4898333333333333, 2029458590.0; +1.4965, 2555770465.0; +1.5031666666666668, 2884189075.0; +1.5098333333333334, 2821031650.0; +1.5165, 2391561160.0; +1.5231666666666668, 1772618395.0; +1.5298333333333334, 888414445.0; +1.5365, -202103760.0; +1.5431666666666666, -1515778200.0; +1.5498333333333334, -2669453830.0; +1.5565, -3077871845.0; +1.5631666666666666, -2719979770.0; +1.5698333333333334, -1797881365.0; +1.5765, -703152665.0; +1.5831666666666666, 79999405.0; +1.5898333333333334, 530522370.0; +1.5965, 694731675.0; +1.6031666666666666, 913677415.0; +1.6098333333333334, 1107360185.0; +1.6165, 1199991075.0; +1.6231666666666666, 1477883745.0; +1.6298333333333332, 1705250475.0; +1.6365, 1671566515.0; +1.6431666666666667, 1191570085.0; +1.6498333333333333, 799994050.0; +1.6565, 825257020.0; +1.6631666666666667, 1115781175.0; +1.6698333333333333, 1621040575.0; +1.6765, 2357877200.0; +1.6831666666666667, 3343133030.0; +1.6898333333333333, 4071548665.0; +1.6965000000000001, 4033654210.0; +1.7031666666666667, 3637867680.0; +1.7098333333333333, 3507342335.0; +1.7165, 3528394810.0; +1.7231666666666667, 3785235005.0; +1.7298333333333333, 3907339360.0; +1.7365, 4353651830.0; +1.7431666666666668, 5056804495.0; +1.7498333333333334, 5482064490.0; +1.7565, 5604168845.0; +1.7631666666666668, 5027331030.0; +1.7698333333333334, 4450493215.0; +1.7765, 4159969060.0; +1.7831666666666668, 3759972035.0; +1.7898333333333334, 3385237980.0; +1.7965, 3065240360.0; +1.8031666666666666, 2884189075.0; +1.8098333333333334, 3086292835.0; +1.8165, 3157871250.0; +1.8231666666666666, 3258923130.0; +1.8298333333333334, 3178923725.0; +1.8365, 2871557590.0; +1.8431666666666666, 2589454425.0; +1.8498333333333334, 1789460375.0; +1.8565, 665258210.0; +1.8631666666666666, -21052475.0; +1.8698333333333335, -117893860.0; +1.8765, 252629700.0; +1.8831666666666667, 652626725.0; +1.8898333333333333, 993676820.0; +1.8965, 1254727510.0; +1.9031666666666667, 774731080.0; +1.9098333333333333, 214735245.0; +1.9165, 63157425.0; +1.9231666666666667, 109472870.0; +1.9298333333333333, 265261185.0; +1.9365, 378944550.0; +1.9431666666666667, 837888505.0; +1.9498333333333333, 1035781770.0; +1.9565, 736836625.0; +1.9631666666666667, 627363755.0; +1.9698333333333335, 938940385.0; +1.9765, 1621040575.0; +1.9831666666666667, 2029458590.0; +1.9898333333333336, 1844196810.0; +1.9965, 1389463350.0; +2.003166666666667, 829467515.0; +2.009833333333334, 509469895.0; +2.0165, 294734650.0; +2.023166666666667, 223156235.0; +2.0298333333333334, 261050690.0; +2.0365, 395786530.0; +2.043166666666667, 509469895.0; +2.0498333333333334, 311576630.0; +2.0565, 206314255.0; +2.063166666666667, 429470490.0; +2.0698333333333334, 1233675035.0; +2.0765000000000002, 1966301165.0; +2.083166666666667, 2454718585.0; +2.0898333333333334, 2479981555.0; +2.0965000000000003, 2050511065.0; +2.103166666666667, 1250517015.0; +2.1098333333333334, 589469300.0; +2.1165000000000003, 408418015.0; +2.123166666666667, 353681580.0; +2.1298333333333335, 425259995.0; +2.1365000000000003, 538943360.0; +2.143166666666667, 837888505.0; +2.1498333333333335, 1061044740.0; +2.1565000000000003, 1010518800.0; +2.163166666666667, 913677415.0; +2.1698333333333335, 1061044740.0; +2.1765000000000003, 1494725725.0; +2.183166666666667, 1911564730.0; +2.1898333333333335, 1978932650.0; +2.1965000000000003, 1709460970.0; +2.2031666666666667, 1111570680.0; +2.2098333333333335, 484206925.0; +2.2165000000000004, 248419205.0; +2.2231666666666667, 36454465710.0; +2.2298333333333336, 348161621055.0; +2.2365000000000004, 1257279069970.0; +2.2431666666666668, 2802164421905.0; +2.2498333333333336, 4591645849380.0; +2.2565000000000004, 6084055802130.0; +2.2631666666666668, 7006175259605.0; +2.2698333333333336, 7198165410615.0; +2.2765000000000004, 6529252490955.0; +2.283166666666667, 5110909355750.0; +2.2898333333333336, 3399431558645.0; +2.2965000000000004, 1960309630615.0; +2.303166666666667, 1042177511905.0; +2.3098333333333336, 571263119620.0; +2.3165000000000004, 359563641515.0; +2.323166666666667, 258848601115.0; +2.3298333333333336, 204512163140.0; +2.3365000000000005, 172802925295.0; +2.343166666666667, 152950441370.0; +2.3498333333333337, 139982116770.0; +2.3565000000000005, 131295865585.0; +2.363166666666667, 125253805260.0; +2.3698333333333337, 120959100360.0; +2.3765000000000005, 117797018615.0; +2.383166666666667, 115165459240.0; +2.3898333333333337, 112816003030.0; +2.3965, 110681282065.0; +2.403166666666667, 109178135350.0; +2.4098333333333337, 108184458530.0; +2.4165, 107590778735.0; +2.423166666666667, 107384464480.0; +2.4298333333333337, 107839197940.0; +2.4365, 108251826450.0; +2.443166666666667, 108247615955.0; +2.4498333333333338, 107885513385.0; +2.4565, 107797092990.0; +2.463166666666667, 108083406650.0; +2.4698333333333338, 107948670810.0; +2.4765, 107552884280.0; +2.483166666666667, 106736048250.0; +2.489833333333334, 106032895585.0; +2.4965, 105064481735.0; +2.503166666666667, 103738175810.0; +2.509833333333334, 102357133450.0; +2.5165, 101228720790.0; +2.523166666666667, 101211878810.0; +2.529833333333334, 101957136425.0; +2.5365, 103098180570.0; +2.543166666666667, 104209751250.0; +2.549833333333334, 105321321930.0; +2.5565, 106719206270.0; +2.563166666666667, 107893934375.0; +2.5698333333333334, 108849716740.0; +2.5765000000000002, 109797078115.0; +2.583166666666667, 111232856910.0; +2.5898333333333334, 113342314905.0; +2.5965000000000003, 115691771115.0; +2.603166666666667, 117775966140.0; +2.6098333333333334, 119190692460.0; +2.6165000000000003, 120058054430.0; +2.623166666666667, 120175948290.0; +2.6298333333333335, 119304375825.0; +2.6365000000000003, 117514915450.0; +2.643166666666667, 115641245175.0; +2.6498333333333335, 113986520640.0; +2.6565000000000003, 112087587395.0; +2.663166666666667, 109498132970.0; +2.6698333333333335, 106584470430.0; +2.6765000000000003, 103927648085.0; +2.683166666666667, 101590823360.0; +2.6898333333333335, 99249788140.0; +2.6965000000000003, 96807701040.0; +2.703166666666667, 94967714725.0; +2.7098333333333335, 93910880480.0; +2.7165000000000004, 93388779100.0; +2.723166666666667, 92677205445.0; +2.7298333333333336, 91738265060.0; +2.7365000000000004, 90917218535.0; +2.7431666666666668, 90108803495.0; +2.7498333333333336, 89073021725.0; +2.7565000000000004, 87814083720.0; +2.7631666666666668, 86529882745.0; +2.7698333333333336, 85430943550.0; +2.7765000000000004, 84517266135.0; +2.783166666666667, 83894112875.0; +2.7898333333333336, 83334117040.0; +2.7965000000000004, 82580438435.0; +2.803166666666667, 81948864185.0; +2.8098333333333336, 81388868350.0; +2.8165000000000004, 81026765780.0; +2.823166666666667, 80483611925.0; +2.8298333333333336, 79915195100.0; +2.8365000000000005, 79081517090.0; +2.843166666666667, 77540475920.0; +2.8498333333333337, 75456280895.0; +2.8565000000000005, 72921562905.0; +2.863166666666667, 70315266500.0; +2.8698333333333337, 67687917620.0; +2.8765000000000005, 64988990325.0; +2.883166666666667, 62774269955.0; +2.8898333333333337, 61245860270.0; +2.8965000000000005, 60092184640.0; +2.903166666666667, 59090086830.0; +2.9098333333333337, 57755359915.0; +2.9165000000000005, 56934313390.0; +2.923166666666667, 56113266865.0; +2.9298333333333337, 55048011630.0; +2.9365, 54054334810.0; +2.943166666666667, 53149078385.0; +2.9498333333333338, 52576451065.0; +2.9565, 51906982360.0; +2.963166666666667, 51380670485.0; +2.9698333333333338, 50837516630.0; +2.9765, 49944891690.0; +2.983166666666667, 48643848735.0; +2.989833333333334, 47224911920.0; +2.9965, 45961763420.0; +3.003166666666667, 44858613730.0; +3.009833333333334, 43915462850.0; +3.0165, 43077574345.0; +3.023166666666667, 42454421085.0; +3.029833333333334, 42231264850.0; +3.0365, 41839688815.0; +3.043166666666667, 41490217730.0; +3.049833333333334, 41027063280.0; +3.0565, 40791275560.0; +3.063166666666667, 40509172395.0; +3.069833333333334, 40096543885.0; +3.0765000000000002, 39309181320.0; +3.083166666666667, 37683930250.0; +3.089833333333334, 35544998790.0; +3.0965000000000003, 33195542580.0; +3.103166666666667, 31006085180.0; +3.1098333333333334, 28652418475.0; +3.1165000000000003, 26770327210.0; +3.123166666666667, 25494547225.0; +3.1298333333333335, 24652448225.0; +3.1365000000000003, 23629297940.0; +3.143166666666667, 22627200130.0; +3.1498333333333335, 21869311030.0; +3.1565000000000003, 21246157770.0; +3.163166666666667, 20576689065.0; +3.1698333333333335, 19860904915.0; +3.1765000000000003, 19191436210.0; +3.183166666666667, 18429336615.0; +3.1898333333333335, 17540922170.0; +3.1965000000000003, 16795664555.0; +3.203166666666667, 16029354465.0; +3.2098333333333335, 15427253680.0; +3.2165000000000004, 15132519030.0; +3.223166666666667, 15296728335.0; +3.2298333333333336, 15776724765.0; +3.2365000000000004, 15983039020.0; +3.243166666666667, 15823040210.0; +3.2498333333333336, 15254623385.0; +3.2565000000000004, 14753574480.0; +3.263166666666667, 14260946565.0; +3.2698333333333336, 13629372315.0; +3.2765000000000004, 12926219650.0; +3.283166666666667, 12496749160.0; +3.2898333333333336, 12610432525.0; +3.2965000000000004, 12391486785.0; +3.303166666666667, 11726228575.0; +3.3098333333333336, 10762025220.0; +3.3165000000000004, 9802032360.0; +3.323166666666667, 8816776530.0; +3.3298333333333336, 7553628030.0; +3.3365000000000005, 6757844475.0; +3.343166666666667, 6399952400.0; +3.3498333333333337, 6442057350.0; +3.3565000000000005, 6408373390.0; +3.363166666666667, 6399952400.0; +3.3698333333333337, 6509425270.0; +3.3765000000000005, 6484162300.0; +3.383166666666667, 6218901115.0; +3.3898333333333337, 5473643500.0; +3.3965000000000005, 4816806280.0; +3.403166666666667, 4277862920.0; +3.4098333333333337, 3827339955.0; +3.4165000000000005, 3288396595.0; +3.423166666666667, 2677874820.0; +3.4298333333333337, 2269456805.0; +3.4365000000000006, 1713671465.0; +3.443166666666667, 1208412065.0; +3.4498333333333338, 602100785.0; +3.4565000000000006, -235787720.0; +3.463166666666667, -1119991670.0; +3.4698333333333338, -1439989290.0; +3.4765, -1153675630.0; +3.483166666666667, -1086307710.0; +3.489833333333334, -1482094240.0; +3.4965, -1536830675.0; +3.503166666666667, -968413850.0; +3.509833333333334, -433680985.0; +3.5165, -463154450.0; +3.523166666666667, -618942765.0; +3.529833333333334, -517890885.0; +3.5365, -509469895.0; +3.543166666666667, -1090518205.0; +3.549833333333334, -2105247500.0; +3.5565, -2648401355.0; +3.563166666666667, -2652611850.0; +3.569833333333334, -2492613040.0; +3.5765000000000002, -2509455020.0; +3.583166666666667, -2298930270.0; +3.589833333333334, -2071563540.0; +3.5965000000000003, -2265246310.0; +3.603166666666667, -3077871845.0; +3.609833333333334, -4050496190.0; +3.6165000000000003, -4724175390.0; +3.623166666666667, -5233645285.0; +3.629833333333334, -5490485480.0; +3.6365000000000003, -5587326865.0; +3.643166666666667, -5317855185.0; +3.6498333333333335, -4867332220.0; +3.6565000000000003, -4433651235.0; +3.663166666666667, -4332599355.0; +3.6698333333333335, -4602071035.0; +3.6765000000000003, -5301013205.0; +3.683166666666667, -6096796760.0; +3.6898333333333335, -6669424080.0; +3.6965000000000003, -6926264275.0; +3.703166666666667, -6787317940.0; +3.7098333333333335, -6488372795.0; +3.7165000000000004, -5919955970.0; +3.723166666666667, -5486274985.0; +3.7298333333333336, -5381012610.0; +3.7365000000000004, -5461012015.0; +3.743166666666667, -5768378150.0; +3.7498333333333336, -6387320915.0; +3.7565000000000004, -7254682885.0; +3.763166666666667, -8037834955.0; +3.7698333333333336, -8311517130.0; +3.7765000000000004, -8766250590.0; +3.7831666666666672, -9229405040.0; +3.7898333333333336, -9410456325.0; +3.7965000000000004, -8993617320.0; +3.8031666666666673, -8159939310.0; +3.8098333333333336, -7642048425.0; +3.8165000000000004, -7023105660.0; +3.823166666666667, -6766265465.0; +3.8298333333333336, -6677845070.0; +3.8365000000000005, -6842054375.0; +3.843166666666667, -7128368035.0; +3.8498333333333337, -7482049615.0; +3.8565000000000005, -8324148615.0; +3.863166666666667, -8766250590.0; +3.8698333333333337, -8875723460.0; +3.8765000000000005, -8555725840.0; +3.883166666666667, -8572567820.0; +3.8898333333333337, -8795724055.0; +3.8965000000000005, -8660988215.0; +3.903166666666667, -8513620890.0; +3.9098333333333337, -8210465250.0; +3.9165000000000005, -8336780100.0; +3.923166666666667, -8319938120.0; +3.9298333333333337, -8210465250.0; +3.9365000000000006, -8075729410.0; +3.943166666666667, -8332569605.0; +3.9498333333333338, -9199931575.0; +3.9565, -10180976910.0; +3.963166666666667, -11014654920.0; +3.9698333333333338, -11734649565.0; +3.9765000000000006, -12555696090.0; +3.9831666666666674, -13090428955.0; +3.9898333333333333, -13140954895.0; +3.9965, -12842009750.0; +4.003166666666667, -12589380050.0; +4.009833333333334, -12138857085.0; +4.016500000000001, -11456756895.0; +4.0231666666666674, -10917813535.0; +4.029833333333333, -10993602445.0; +4.0365, -11587282240.0; +4.043166666666667, -12130436095.0; +4.049833333333334, -12517801635.0; +4.056500000000001, -13014640045.0; +4.0631666666666675, -13726213700.0; +4.069833333333333, -13962001420.0; +4.0765, -13637793305.0; +4.083166666666667, -13098849945.0; +4.089833333333334, -13044113510.0; +4.096500000000001, -13355690140.0; +4.103166666666667, -13545162415.0; +4.1098333333333334, -13886212510.0; +4.1165, -14576733690.0; +4.123166666666667, -15528305560.0; +4.129833333333334, -16151458820.0; +4.136500000000001, -16012512485.0; +4.143166666666667, -15444095660.0; +4.1498333333333335, -14863047350.0; +4.1565, -14273578050.0; +4.163166666666667, -13827265580.0; +4.169833333333334, -13557793900.0; +4.176500000000001, -13663056275.0; +4.183166666666667, -13983053895.0; +4.1898333333333335, -14324103990.0; +4.1965, -14728311510.0; +4.203166666666667, -15187255465.0; +4.209833333333334, -15591462985.0; +4.216500000000001, -16016722980.0; +4.223166666666667, -16450403965.0; +4.229833333333334, -16820927525.0; +4.2365, -17081978215.0; +4.243166666666667, -17107241185.0; +4.249833333333334, -17119872670.0; +4.256500000000001, -17376712865.0; +4.263166666666667, -17860919790.0; +4.269833333333334, -18500915030.0; +4.2765, -18964069480.0; +4.283166666666667, -19435644920.0; +4.289833333333334, -19545117790.0; +4.2965, -19237751655.0; +4.303166666666667, -18555651465.0; +4.309833333333334, -17578816625.0; +4.3165000000000004, -16909347920.0; +4.323166666666667, -16260931690.0; +4.329833333333334, -16113564365.0; +4.3365, -16037775455.0; +4.343166666666667, -16357773075.0; +4.349833333333334, -16867242970.0; +4.3565000000000005, -17111451680.0; +4.363166666666667, -17237766530.0; +4.369833333333334, -17372502370.0; +4.3765, -17877761770.0; +4.383166666666667, -18050392065.0; +4.389833333333334, -18075655035.0; +4.3965000000000005, -18033550085.0; +4.403166666666667, -18176706915.0; +4.409833333333334, -18210390875.0; +4.4165, -17776709890.0; +4.423166666666667, -17385133855.0; +4.429833333333334, -17132504155.0; +4.4365000000000006, -17300923955.0; +4.443166666666667, -17355660390.0; +4.449833333333333, -17465133260.0; +4.4565, -18147233450.0; +4.463166666666667, -18867228095.0; +4.469833333333334, -19456697395.0; +4.476500000000001, -19157752250.0; +4.483166666666667, -18804070670.0; +4.489833333333333, -18168285925.0; +4.4965, -17448291280.0; +4.503166666666667, -16926189900.0; +4.509833333333334, -16252510700.0; +4.516500000000001, -15671462390.0; +4.5231666666666674, -14711469530.0; +4.529833333333333, -14100947755.0; +4.5365, -13966211915.0; +4.543166666666667, -14189368150.0; +4.549833333333334, -14669364580.0; +4.556500000000001, -15309359820.0; +4.5631666666666675, -16340931095.0; +4.569833333333333, -17317765935.0; +4.5765, -17444080785.0; +4.583166666666667, -17208293065.0; +4.589833333333334, -17014610295.0; +4.596500000000001, -17220924550.0; +4.6031666666666675, -17389344350.0; +4.6098333333333334, -17359870885.0; +4.6165, -17503027715.0; +4.623166666666667, -17389344350.0; +4.629833333333334, -17355660390.0; +4.636500000000001, -17473554250.0; +4.643166666666667, -17730394445.0; +4.6498333333333335, -17966182165.0; +4.6565, -17894603750.0; +4.663166666666667, -18016708105.0; +4.669833333333334, -18143022955.0; +4.676500000000001, -17961971670.0; +4.683166666666667, -17545132665.0; +4.6898333333333335, -17250398015.0; +4.6965, -17519869695.0; +4.703166666666667, -17625132070.0; +4.709833333333334, -17237766530.0; +4.716500000000001, -16559876835.0; +4.723166666666667, -16210405750.0; +4.729833333333334, -16033564960.0; +4.7365, -15557779025.0; +4.743166666666667, -15014625170.0; +4.749833333333334, -14825152895.0; +4.756500000000001, -15292517840.0; +4.763166666666667, -15860934665.0; +4.769833333333334, -16315668125.0; +4.7765, -16534613865.0; +4.783166666666667, -16829348515.0; +4.789833333333334, -17208293065.0; +4.796500000000001, -17570395635.0; +4.803166666666667, -17709341970.0; +4.809833333333334, -17785130880.0; +4.8165000000000004, -17978813650.0; +4.823166666666667, -18244074835.0; +4.829833333333334, -18151443945.0; +4.8365, -17599869100.0; +4.843166666666667, -16896716435.0; +4.849833333333334, -16446193470.0; +4.8565000000000005, -16256721195.0; +4.863166666666667, -16004091495.0; +4.869833333333334, -16143037830.0; +4.8765, -16429351490.0; +4.883166666666667, -17073557225.0; +4.889833333333334, -17448291280.0; +4.8965000000000005, -17524080190.0; +4.903166666666667, -17595658605.0; +4.909833333333334, -17254608510.0; +4.9165, -17145135640.0; +4.923166666666667, -17035662770.0; +4.929833333333334, -17233556035.0; +4.9365000000000006, -17279871480.0; +4.943166666666667, -17178819600.0; +4.949833333333334, -17149346135.0; +4.9565, -16926189900.0; +4.963166666666667, -16429351490.0; +4.969833333333334, -15768303775.0; +4.976500000000001, -15612515460.0; +4.983166666666667, -15507253085.0; +4.989833333333333, -15595673480.0; +4.9965, -16016722980.0; +5.003166666666667, -16926189900.0; +5.009833333333334, -17785130880.0; +5.016500000000001, -17848288305.0; +5.0231666666666674, -17679868505.0; +5.029833333333333, -17633553060.0; +5.0365, -17313555440.0; +5.043166666666667, -16336720600.0; +5.049833333333334, -14900941805.0; +5.056500000000001, -14113579240.0; +5.0631666666666675, -13877791520.0; +5.069833333333333, -13465163010.0; +5.0765, -12825167770.0; +5.083166666666667, -12530433120.0; +5.089833333333334, -12652537475.0; +5.096500000000001, -12989377075.0; +5.1031666666666675, -13035692520.0; +5.1098333333333334, -13124112915.0; +5.1165, -13002008560.0; +5.123166666666667, -12829378265.0; +5.129833333333334, -12732536880.0; +5.136500000000001, -12404118270.0; +5.1431666666666676, -12218856490.0; +5.1498333333333335, -11759912535.0; +5.1565, -11524124815.0; +5.163166666666667, -10896761060.0; +5.169833333333334, -10172555920.0; +5.176500000000001, -9178879100.0; +5.183166666666667, -8189412775.0; +5.1898333333333335, -8020992975.0; +5.1965, -8307306635.0; +5.203166666666667, -9056774745.0; +5.209833333333334, -9743085430.0; +5.216500000000001, -10698867795.0; +5.223166666666667, -11839911940.0; +5.229833333333334, -12164120055.0; +5.2365, -12147278075.0; +5.243166666666667, -11915700850.0; +5.249833333333334, -12193593520.0; +5.256500000000001, -12728326385.0; +5.263166666666667, -13023061035.0; +5.269833333333334, -13246217270.0; +5.2765, -13279901230.0; +5.283166666666667, -13528320435.0; +5.289833333333334, -13469373505.0; +5.296500000000001, -12896746185.0; +5.303166666666667, -11987279265.0; +5.309833333333334, -11119917295.0; +5.3165000000000004, -10576763440.0; +5.323166666666667, -10113608990.0; +5.329833333333334, -9768348400.0; +5.336500000000001, -9654665035.0; +5.343166666666667, -9448350780.0; +5.349833333333334, -9233615535.0; +5.3565000000000005, -8762040095.0; +5.363166666666667, -8660988215.0; +5.369833333333334, -8589409800.0; +5.3765, -8703093165.0; +5.383166666666667, -9077827220.0; +5.389833333333334, -9532560680.0; +5.3965000000000005, -9995715130.0; +5.403166666666667, -9949399685.0; +5.409833333333334, -9595718105.0; +5.4165, -8694672175.0; +5.423166666666667, -7700995355.0; +5.429833333333334, -6829422890.0; +5.4365000000000006, -6345215965.0; +5.443166666666667, -6117849235.0; +5.449833333333334, -6231532600.0; +5.4565, -6669424080.0; +5.463166666666667, -6926264275.0; +5.469833333333334, -6976790215.0; +5.476500000000001, -6753633980.0; +5.483166666666667, -6159954185.0; +5.489833333333334, -5326276175.0; +5.4965, -4374704305.0; +5.503166666666667, -4202074010.0; +5.509833333333334, -4172600545.0; +5.516500000000001, -4202074010.0; +5.5231666666666674, -4193653020.0; +5.529833333333333, -4168390050.0; +5.5365, -4130495595.0; +5.543166666666667, -3802076985.0; +5.549833333333334, -3671551640.0; +5.556500000000001, -3553657780.0; +5.5631666666666675, -3372606495.0; +5.569833333333333, -3149450260.0; +5.5765, -3115766300.0; +5.583166666666667, -3149450260.0; +5.589833333333334, -3073661350.0; +5.596500000000001, -2728400760.0; +5.6031666666666675, -2193667895.0; +5.6098333333333334, -1482094240.0; +5.6165, -799994050.0; +5.623166666666667, -16841980.0; +5.629833333333334, 715784150.0; +5.636500000000001, 1090518205.0; +5.6431666666666676, 989466325.0; +5.6498333333333335, 812625535.0; +5.6565, 1094728700.0; +5.663166666666667, 1322095430.0; +5.669833333333334, 1431568300.0; +5.676500000000001, 1701039980.0; +5.683166666666668, 2261035815.0; +5.6898333333333335, 2879978580.0; +5.6965, 3149450260.0; +5.703166666666667, 3490500355.0; +5.709833333333334, 3848392430.0; +5.716500000000001, 4176811040.0; +5.723166666666667, 4408388265.0; +5.729833333333334, 4572597570.0; +5.7365, 5035752020.0; +5.743166666666667, 5717852210.0; +5.749833333333334, 6618898140.0; +5.756500000000001, 7124157540.0; +5.763166666666667, 7220998925.0; +5.769833333333334, 7313629815.0; +5.7765, 7427313180.0; +5.783166666666667, 7448365655.0; +5.789833333333334, 7347313775.0; +5.796500000000001, 7747310800.0; +5.803166666666667, 8690461680.0; +5.809833333333334, 9423087810.0; +5.8165000000000004, 9380982860.0; +5.823166666666667, 8964143855.0; +5.829833333333334, 8660988215.0; +5.836500000000001, 8387306040.0; +5.843166666666667, 7919941095.0; +5.849833333333334, 7637837930.0; +5.8565000000000005, 7882046640.0; +5.863166666666667, 8437831980.0; +5.869833333333334, 8808355540.0; +5.876500000000001, 8875723460.0; +5.883166666666667, 8757829600.0; +5.889833333333334, 8311517130.0; +5.8965000000000005, 7498891595.0; +5.903166666666667, 6543109230.0; +5.909833333333334, 5427328055.0; +5.9165, 4479966680.0; +5.923166666666667, 3730498570.0; +5.929833333333334, 3503131840.0; +5.9365000000000006, 3726288075.0; +5.943166666666667, 3844181935.0; +5.949833333333334, 4033654210.0; +5.9565, 4248389455.0; +5.963166666666667, 4513650640.0; +5.969833333333334, 4863121725.0; +5.976500000000001, 5444170035.0; +5.983166666666667, 6244164085.0; +5.989833333333334, 6951527245.0; +5.9965, 7465207635.0; +6.003166666666667, 8079939905.0; +6.009833333333334, 8526252375.0; +6.016500000000001, 8732566630.0; +6.0231666666666674, 8930459895.0; +6.029833333333334, 9536771175.0; +6.0365, 10277818295.0; +6.043166666666667, 10825182645.0; +6.049833333333334, 11258863630.0; +6.056500000000001, 11780965010.0; +6.0631666666666675, 12551485595.0; +6.069833333333333, 13204112320.0; +6.0765, 13759897660.0; +6.083166666666667, 14067263795.0; +6.089833333333334, 14117789735.0; +6.096500000000001, 14248315080.0; +6.1031666666666675, 14328314485.0; +6.1098333333333334, 14884099825.0; +6.1165, 15574621005.0; +6.123166666666667, 16589350300.0; +6.129833333333334, 17898814245.0; +6.136500000000001, 19220909675.0; +6.1431666666666676, 20290375405.0; +6.1498333333333335, 21014580545.0; +6.1565, 22222992610.0; +6.163166666666667, 24016663480.0; +6.169833333333334, 25890333755.0; +6.176500000000001, 27178745225.0; +6.183166666666668, 28627155505.0; +6.1898333333333335, 30126091725.0; +6.1965, 31330293295.0; +6.203166666666667, 31751342795.0; +6.209833333333334, 32227128730.0; +6.216500000000001, 33250279015.0; +6.223166666666668, 34559742960.0; +6.229833333333334, 35957627300.0; +6.2365, 37279722730.0; +6.243166666666667, 38984973205.0; +6.249833333333334, 40627066255.0; +6.256500000000001, 42446000095.0; +6.263166666666667, 44210197500.0; +6.269833333333334, 45957552925.0; +6.2765, 47772276270.0; +6.283166666666667, 49208055065.0; +6.289833333333334, 50290152280.0; +6.296500000000001, 50673307325.0; +6.303166666666667, 50900674055.0; +6.309833333333334, 50968041975.0; +6.3165000000000004, 50681728315.0; +6.323166666666667, 50252257825.0; +6.329833333333334, 50155416440.0; +6.336500000000001, 50643833860.0; +6.343166666666667, 51334355040.0; +6.349833333333334, 52184875030.0; +6.3565000000000005, 53822757585.0; +6.363166666666667, 56016425480.0; +6.369833333333334, 58361671195.0; +6.376500000000001, 60437445230.0; +6.383166666666667, 62471114315.0; +6.389833333333334, 64462678450.0; +6.3965000000000005, 66020561600.0; +6.403166666666667, 67355288515.0; +6.409833333333334, 68681594440.0; +6.416500000000001, 70273161550.0; +6.423166666666667, 71818413215.0; +6.429833333333334, 73460506265.0; +6.4365000000000006, 75224703670.0; +6.443166666666667, 76997322065.0; +6.449833333333334, 78374153930.0; +6.4565, 79452040650.0; +6.463166666666667, 80508874895.0; +6.469833333333334, 81414131320.0; +6.476500000000001, 82134125965.0; +6.483166666666667, 82753068730.0; +6.489833333333334, 83877270895.0; +6.4965, 85481469490.0; +6.503166666666667, 87077247095.0; +6.509833333333334, 88458289455.0; +6.516500000000001, 89746700925.0; +6.5231666666666674, 91355110015.0; +6.529833333333334, 92963519105.0; +6.5365, 94298246020.0; +6.543166666666667, 94963504230.0; +6.549833333333334, 94723506015.0; +6.556500000000001, 92904572175.0; +6.5631666666666675, 89211968060.0; +6.569833333333334, 83174118230.0; +6.5765, 74967863475.0; +6.583166666666667, 65144778640.0; +6.589833333333334, 54824855395.0; +6.596500000000001, 45102822440.0; +6.6031666666666675, 36408150265.0; +6.6098333333333334, 29288203220.0; +6.6165, 23953506055.0; +6.623166666666667, 20500900155.0; +6.629833333333334, 18496704535.0; +6.636500000000001, 17456712270.0; +6.6431666666666676, 16951452870.0; +6.6498333333333335, 16378825550.0; +6.6565, 15789356250.0; +6.663166666666667, 15566200015.0; +6.669833333333334, 15743040805.0; +6.676500000000001, 15835671695.0; +6.683166666666668, 15633567935.0; +6.6898333333333335, 15608304965.0; +6.6965, 15898829120.0; +6.703166666666667, 16071459415.0; +6.709833333333334, 15978828525.0; +6.716500000000001, 15713567340.0; +6.723166666666668, 15717777835.0; +6.729833333333334, 15721988330.0; +6.7365, 15376727740.0; +6.743166666666667, 14597786165.0; +6.749833333333334, 13355690140.0; +6.756500000000001, 12054647185.0; +6.763166666666668, 10665183835.0; +6.769833333333334, 9490455730.0; +6.7765, 8265201685.0; +6.783166666666667, 7334682290.0; +6.789833333333334, 6736792000.0; +6.796500000000001, 6682055565.0; +6.803166666666667, 6652582100.0; +6.809833333333334, 6501004280.0; +6.8165000000000004, 6652582100.0; +6.823166666666667, 6665213585.0; +6.829833333333334, 6791528435.0; +6.836500000000001, 6311532005.0; +6.843166666666667, 5839956565.0; +6.849833333333334, 5835746070.0; +6.8565000000000005, 6101007255.0; +6.863166666666667, 6602056160.0; +6.869833333333334, 6736792000.0; +6.876500000000001, 7052579125.0; +6.883166666666667, 7498891595.0; +6.889833333333334, 7789415750.0; +6.8965000000000005, 7616785455.0; +6.903166666666667, 7069421105.0; +6.909833333333334, 6610477150.0; +6.916500000000001, 6454688835.0; +6.923166666666667, 6538898735.0; +6.929833333333334, 6501004280.0; +6.9365000000000006, 6753633980.0; +6.943166666666667, 7288366845.0; +6.949833333333334, 8008361490.0; +6.956500000000001, 8513620890.0; +6.963166666666667, 8934670390.0; +6.969833333333334, 9460982265.0; +6.976500000000001, 9936768200.0; +6.983166666666667, 10437817105.0; +6.989833333333334, 10787288190.0; +6.9965, 11107285810.0; +7.003166666666667, 11145180265.0; +7.009833333333334, 11242021650.0; +7.016500000000001, 11094654325.0; +7.0231666666666674, 10778867200.0; +7.029833333333334, 10631499875.0; +7.0365, 10846235120.0; +7.043166666666667, 11284126600.0; +7.049833333333334, 11376757490.0; +7.056500000000001, 11835701445.0; +7.0631666666666675, 12627274505.0; +7.069833333333334, 13288322220.0; +7.0765, 13267269745.0; +7.083166666666667, 12968324600.0; +7.089833333333334, 12593590545.0; +7.096500000000001, 12109383620.0; +7.1031666666666675, 11482019865.0; +7.109833333333334, 11435704420.0; +7.1165, 11966226790.0; +7.123166666666667, 12551485595.0; +7.129833333333334, 12989377075.0; +7.136500000000001, 12812536285.0; +7.1431666666666676, 12332539855.0; +7.1498333333333335, 11658860655.0; +7.1565, 11322021055.0; +7.163166666666667, 10943076505.0; +7.169833333333334, 10829393140.0; +7.176500000000001, 11263074125.0; +7.183166666666668, 12399907775.0; +7.1898333333333335, 13220954300.0; +7.1965, 13317795685.0; +7.203166666666667, 13448321030.0; +7.209833333333334, 13780950135.0; +7.216500000000001, 14046211320.0; +7.223166666666668, 13780950135.0; +7.229833333333334, 13431479050.0; +7.2365, 13254638260.0; +7.243166666666667, 13275690735.0; +7.249833333333334, 13225164795.0; +7.256500000000001, 13212533310.0; +7.263166666666668, 13149375885.0; +7.269833333333334, 13073586975.0; +7.2765, 13166217865.0; +7.283166666666667, 13162007370.0; +7.289833333333334, 13103060440.0; +7.296500000000001, 12985166580.0; +7.303166666666668, 13018850540.0; +7.309833333333334, 13271480240.0; +7.3165000000000004, 13284111725.0; +7.323166666666667, 13170428360.0; +7.329833333333334, 13250427765.0; +7.336500000000001, 13528320435.0; +7.343166666666667, 13970422410.0; +7.349833333333334, 14100947755.0; +7.3565000000000005, 14113579240.0; +7.363166666666667, 13835686570.0; +7.369833333333334, 13414637070.0; +7.376500000000001, 13170428360.0; +7.383166666666667, 13056744995.0; +7.389833333333334, 13288322220.0; +7.3965000000000005, 13696740235.0; +7.403166666666667, 14635680620.0; +7.409833333333334, 15924092090.0; +7.416500000000001, 16951452870.0; +7.423166666666667, 17380923360.0; +7.429833333333334, 17481975240.0; +7.4365000000000006, 17625132070.0; +7.443166666666667, 17844077810.0; +7.449833333333334, 17705131475.0; +7.456500000000001, 17646184545.0; +7.463166666666667, 18210390875.0; +7.469833333333334, 19199857200.0; +7.476500000000001, 20164060555.0; +7.483166666666667, 20618794015.0; +7.489833333333334, 21060895990.0; +7.496500000000001, 21326157175.0; +7.503166666666667, 21166158365.0; +7.509833333333334, 20736687875.0; +7.516500000000001, 20555636590.0; +7.5231666666666674, 20871423715.0; +7.529833333333334, 21317736185.0; +7.5365, 21700891230.0; +7.543166666666667, 21890363505.0; +7.549833333333334, 21839837565.0; +7.556500000000001, 21456682520.0; +7.5631666666666675, 21317736185.0; +7.569833333333334, 21300894205.0; +7.5765, 21364051630.0; +7.583166666666667, 21284052225.0; +7.589833333333334, 21481945490.0; +7.596500000000001, 21865100535.0; +7.6031666666666675, 21742996180.0; +7.609833333333334, 21246157770.0; +7.6165, 20879844705.0; +7.623166666666667, 20985107080.0; +7.629833333333334, 20943002130.0; +7.636500000000001, 20454584710.0; +7.6431666666666676, 19810378975.0; +7.649833333333334, 19334593040.0; +7.6565, 18959858985.0; +7.663166666666667, 18964069480.0; +7.669833333333334, 19044068885.0; +7.676500000000001, 19330382545.0; +7.683166666666668, 19473539375.0; +7.6898333333333335, 19625117195.0; +7.6965, 19684064125.0; +7.703166666666667, 19469328880.0; +7.709833333333334, 19250383140.0; +7.716500000000001, 18829333640.0; +7.723166666666668, 18665124335.0; +7.729833333333334, 18783018195.0; +7.7365, 18968279975.0; +7.743166666666667, 18947227500.0; +7.749833333333334, 18871438590.0; +7.756500000000001, 19233541160.0; +7.763166666666668, 19599854225.0; +7.769833333333334, 19709327095.0; +7.7765, 19818799965.0; +7.783166666666667, 20197744515.0; +7.789833333333334, 20601952035.0; +7.796500000000001, 20673530450.0; +7.803166666666668, 20829318765.0; +7.809833333333334, 21174579355.0; +7.8165000000000004, 21414577570.0; +7.823166666666667, 21347209650.0; +7.829833333333334, 21574576380.0; +7.836500000000001, 22404043895.0; +7.843166666666668, 23608245465.0; +7.849833333333334, 24395608030.0; +7.8565000000000005, 24593501295.0; +7.863166666666667, 24677711195.0; +7.869833333333334, 24576659315.0; +7.876500000000001, 24222977735.0; +7.883166666666667, 23321931805.0; +7.889833333333334, 22597726665.0; +7.8965000000000005, 22471411815.0; +7.903166666666667, 22627200130.0; +7.909833333333334, 22850356365.0; +7.916500000000001, 23284037350.0; +7.923166666666667, 24100873380.0; +7.929833333333334, 24938761885.0; +7.9365000000000006, 25376653365.0; +7.943166666666667, 25368232375.0; +7.949833333333334, 25132444655.0; +7.9565, 24530343870.0; +7.963166666666668, 23751402295.0; +7.969833333333334, 22749304485.0; +7.9765000000000015, 22328254985.0; +7.983166666666667, 22791409435.0; +7.989833333333333, 23637718930.0; +7.996500000000001, 24509291395.0; +8.003166666666667, 24888235945.0; +8.009833333333335, 25490336730.0; +8.0165, 25835597320.0; +8.023166666666667, 25684019500.0; +8.029833333333334, 25364021880.0; +8.0365, 24947182875.0; +8.043166666666668, 25212444060.0; +8.049833333333334, 25536652175.0; +8.0565, 25928228210.0; +8.063166666666667, 26105069000.0; +8.069833333333333, 26206120880.0; +8.076500000000001, 26597696915.0; +8.083166666666667, 26867168595.0; +8.089833333333335, 26985062455.0; +8.0965, 26795590180.0; +8.103166666666667, 26896642060.0; +8.109833333333334, 27140850770.0; +8.1165, 27599794725.0; +8.123166666666668, 28046107195.0; +8.129833333333334, 28349262835.0; +8.1365, 28669260455.0; +8.143166666666668, 28799785800.0; +8.149833333333333, 28778733325.0; +8.156500000000001, 28496630160.0; +8.163166666666667, 28117685610.0; +8.169833333333335, 27919792345.0; +8.1765, 27692425615.0; +8.183166666666667, 27502953340.0; +8.189833333333334, 27566110765.0; +8.1965, 27827161455.0; +8.203166666666668, 28273473925.0; +8.209833333333334, 28593471545.0; +8.2165, 29216624805.0; +8.223166666666668, 29873462025.0; +8.229833333333334, 30302932515.0; +8.236500000000001, 30349247960.0; +8.243166666666667, 30029250340.0; +8.249833333333333, 29709252720.0; +8.2565, 29456623020.0; +8.263166666666667, 29321887180.0; +8.269833333333334, 29267150745.0; +8.2765, 29094520450.0; +8.283166666666668, 29107151935.0; +8.289833333333334, 29283992725.0; +8.2965, 29469254505.0; +8.303166666666668, 29705042225.0; +8.309833333333334, 29953461430.0; +8.316500000000001, 30471352315.0; +8.323166666666667, 31149242010.0; +8.329833333333333, 31890289130.0; +8.336500000000001, 32665020210.0; +8.343166666666667, 33182911095.0; +8.349833333333335, 33785011880.0; +8.3565, 34269218805.0; +8.363166666666668, 34963950480.0; +8.369833333333334, 35827101955.0; +8.3765, 36601833035.0; +8.383166666666668, 37178670850.0; +8.389833333333334, 37372353620.0; +8.396500000000001, 38024980345.0; +8.403166666666667, 38542871230.0; +8.409833333333333, 38980762710.0; +8.416500000000001, 39380759735.0; +8.423166666666667, 40079701905.0; +8.429833333333335, 41056536745.0; +8.4365, 41662848025.0; +8.443166666666666, 41957582675.0; +8.449833333333334, 41848109805.0; +8.4565, 41633374560.0; +8.463166666666668, 41755478915.0; +8.469833333333334, 42003898120.0; +8.476500000000001, 42134423465.0; +8.483166666666667, 42521789005.0; +8.489833333333333, 43250204640.0; +8.496500000000001, 44092303640.0; +8.503166666666667, 44656509970.0; +8.509833333333335, 45174400855.0; +8.5165, 46054394310.0; +8.523166666666667, 46597548165.0; +8.529833333333334, 47128070535.0; +8.5365, 47540699045.0; +8.543166666666668, 48033326960.0; +8.549833333333334, 48547007350.0; +8.556500000000002, 48677532695.0; +8.563166666666667, 48610164775.0; +8.569833333333333, 48088063395.0; +8.576500000000001, 47772276270.0; +8.583166666666667, 47502804590.0; +8.589833333333335, 46930177270.0; +8.5965, 46248077080.0; +8.603166666666667, 45738607185.0; +8.609833333333334, 45485977485.0; +8.6165, 44976507590.0; +8.623166666666668, 43915462850.0; +8.629833333333334, 42723892765.0; +8.6365, 41721794955.0; +8.643166666666668, 41271271990.0; +8.649833333333333, 41102852190.0; +8.656500000000001, 41170220110.0; +8.663166666666667, 41574427630.0; +8.669833333333335, 42281790790.0; +8.6765, 42808102665.0; +8.683166666666667, 42774418705.0; +8.689833333333334, 42290211780.0; +8.6965, 41523901690.0; +8.703166666666668, 40584961305.0; +8.709833333333334, 39464969635.0; +8.7165, 38378661925.0; +8.723166666666668, 37616562330.0; +8.729833333333334, 37351301145.0; +8.736500000000001, 37561825895.0; +8.743166666666667, 38075506285.0; +8.749833333333335, 38622870635.0; +8.7565, 39262865875.0; +8.763166666666667, 39536548050.0; +8.769833333333334, 39389180725.0; +8.7765, 38576555190.0; +8.783166666666668, 37936559950.0; +8.789833333333334, 37616562330.0; +8.7965, 37839718565.0; +8.803166666666668, 38357609450.0; +8.809833333333334, 38875500335.0; +8.816500000000001, 39477601120.0; +8.823166666666667, 39612336960.0; +8.829833333333333, 39675494385.0; +8.836500000000001, 39401812210.0; +8.843166666666667, 39267076370.0; +8.849833333333335, 39456548645.0; +8.8565, 39940755570.0; +8.863166666666668, 40467067445.0; +8.869833333333334, 40728118135.0; +8.8765, 40829170015.0; +8.883166666666668, 41073378725.0; +8.889833333333334, 41401797335.0; +8.896500000000001, 41949161685.0; +8.903166666666667, 42584946430.0; +8.909833333333333, 42989153950.0; +8.916500000000001, 43254415135.0; +8.923166666666667, 43216520680.0; +8.929833333333335, 43389150975.0; +8.9365, 43511255330.0; +8.943166666666666, 43772306020.0; +8.949833333333334, 44290196905.0; +8.9565, 44997560065.0; +8.963166666666668, 45671239265.0; +8.969833333333334, 45860711540.0; +8.976500000000001, 45763870155.0; +8.983166666666667, 45481766990.0; +8.989833333333333, 45401767585.0; +8.996500000000001, 45325978675.0; +9.003166666666667, 45136506400.0; +9.009833333333335, 44930192145.0; +9.0165, 44698614920.0; +9.023166666666667, 44909139670.0; +9.029833333333334, 45043875510.0; +9.0365, 45250189765.0; +9.043166666666668, 45401767585.0; +9.049833333333334, 45393346595.0; +9.056500000000002, 45439662040.0; +9.063166666666667, 45359662635.0; +9.069833333333333, 45321768180.0; +9.076500000000001, 45191242835.0; +9.083166666666667, 45136506400.0; +9.089833333333335, 45544924415.0; +9.0965, 46252287575.0; +9.103166666666667, 46770178460.0; +9.109833333333334, 46942808755.0; +9.1165, 46888072320.0; +9.123166666666668, 47031229150.0; +9.129833333333334, 47027018655.0; +9.1365, 47005966180.0; +9.143166666666668, 46942808755.0; +9.149833333333333, 47351226770.0; +9.156500000000001, 47911222605.0; +9.163166666666667, 48256483195.0; +9.169833333333335, 48311219630.0; +9.1765, 48205957255.0; +9.183166666666667, 48298588145.0; +9.189833333333334, 48340693095.0; +9.1965, 48277535670.0; +9.203166666666668, 48370166560.0; +9.209833333333334, 48808058040.0; +9.2165, 49073319225.0; +9.223166666666668, 49111213680.0; +9.229833333333334, 48841742000.0; +9.236500000000001, 48820689525.0; +9.243166666666667, 48824900020.0; +9.249833333333335, 48951214870.0; +9.2565, 49456474270.0; +9.263166666666667, 50155416440.0; +9.269833333333334, 51469090880.0; +9.2765, 53056447495.0; +9.283166666666668, 55005906680.0; +9.289833333333334, 56551158345.0; +9.2965, 57957463675.0; +9.303166666666668, 59683766625.0; +9.309833333333334, 61170071360.0; +9.316500000000001, 62492166790.0; +9.323166666666667, 63372160245.0; +9.329833333333333, 64757413100.0; +9.336500000000001, 66386874665.0; +9.343166666666667, 68201598010.0; +9.349833333333335, 70281582540.0; +9.3565, 72513144890.0; +9.363166666666668, 74820496150.0; +9.369833333333334, 76908901670.0; +9.3765, 78942570755.0; +9.383166666666668, 80382560045.0; +9.389833333333334, 81228869540.0; +9.396500000000001, 81923601215.0; +9.403166666666667, 83258328130.0; +9.409833333333333, 85035157020.0; +9.416500000000001, 86647776605.0; +9.423166666666667, 88260396190.0; +9.429833333333335, 89978278150.0; +9.4365, 91578266250.0; +9.443166666666668, 92538259110.0; +9.449833333333334, 93022466035.0; +9.4565, 93447726030.0; +9.463166666666668, 93780355135.0; +9.469833333333334, 94007721865.0; +9.476500000000001, 93620356325.0; +9.483166666666667, 92171946045.0; +9.489833333333333, 89304598950.0; +9.496500000000001, 85254102760.0; +9.503166666666667, 80605716280.0; +9.509833333333335, 75612069210.0; +9.5165, 70694211050.0; +9.523166666666667, 66677398820.0; +9.529833333333334, 64180575285.0; +9.5365, 63186898465.0; +9.543166666666668, 63136372525.0; +9.549833333333334, 63742683805.0; +9.556500000000002, 64942674880.0; +9.563166666666667, 66163718430.0; +9.569833333333333, 67081606340.0; +9.576500000000001, 67704759600.0; +9.583166666666667, 68247913455.0; +9.589833333333335, 68694225925.0; +9.5965, 69460536015.0; +9.603166666666667, 70744736990.0; +9.609833333333334, 72323672615.0; +9.6165, 73700504480.0; +9.623166666666668, 74711023280.0; +9.629833333333334, 75666805645.0; +9.636500000000002, 76260485440.0; +9.643166666666668, 76572062070.0; +9.649833333333333, 76807849790.0; +9.656500000000001, 77359424635.0; +9.663166666666667, 78142576705.0; +9.669833333333335, 79144674515.0; +9.6765, 79982563020.0; +9.683166666666667, 80517295885.0; +9.689833333333334, 80681505190.0; +9.6965, 80508874895.0; +9.703166666666668, 79948879060.0; +9.709833333333334, 78588889175.0; +9.7165, 76702587415.0; +9.723166666666668, 74584708430.0; +9.729833333333334, 72243673210.0; +9.736500000000001, 69628955815.0; +9.743166666666667, 67199500200.0; +9.749833333333335, 65338461410.0; +9.7565, 64045839445.0; +9.763166666666667, 62972163220.0; +9.769833333333334, 62146906200.0; +9.7765, 61620594325.0; +9.783166666666668, 61199544825.0; +9.789833333333334, 60685864435.0; +9.7965, 59995343255.0; +9.803166666666668, 59376400490.0; +9.809833333333334, 59199559700.0; +9.816500000000001, 59363769005.0; +9.823166666666667, 59473241875.0; +9.829833333333335, 59481662865.0; +9.836500000000001, 59772187020.0; +9.843166666666667, 60315340875.0; +9.849833333333335, 60614286020.0; +9.8565, 60711127405.0; +9.863166666666668, 61005862055.0; +9.869833333333334, 61431122050.0; +9.8765, 61687962245.0; +9.883166666666668, 61645857295.0; +9.889833333333334, 61730067195.0; +9.896500000000001, 61860592540.0; +9.903166666666667, 61730067195.0; +9.909833333333333, 61422701060.0; +9.916500000000001, 61296386210.0; +9.923166666666667, 61473227000.0; +9.929833333333335, 61671120265.0; +9.9365, 61730067195.0; +9.943166666666668, 62079538280.0; +9.949833333333334, 62807953915.0; +9.9565, 63325844800.0; +9.963166666666668, 63515317075.0; +9.969833333333334, 63309002820.0; +9.976500000000001, 62917426785.0; +9.983166666666667, 62378483425.0; +9.989833333333333, 61734277690.0; +9.996500000000001, 61494279475.0; +10.003166666666667, 61447964030.0; +10.009833333333335, 61532173930.0; +10.0165, 61919539470.0; +10.023166666666667, 62189011150.0; +10.029833333333334, 62433219860.0; +10.0365, 62517429760.0; +10.043166666666668, 62820585400.0; +10.049833333333334, 63182687970.0; +10.056500000000002, 63405844205.0; +10.063166666666667, 63788999250.0; +10.069833333333333, 64395310530.0; +10.076500000000001, 64795307555.0; +10.083166666666667, 64685834685.0; +10.089833333333335, 64306890135.0; +10.0965, 64155312315.0; +10.103166666666667, 64302679640.0; +10.109833333333334, 64563730330.0; +10.1165, 65081621215.0; +10.123166666666668, 65772142395.0; +10.129833333333334, 66715293275.0; +10.136500000000002, 67468971880.0; +10.143166666666668, 67885810885.0; +10.149833333333333, 67864758410.0; +10.156500000000001, 67746864550.0; +10.163166666666667, 67847916430.0; +10.169833333333335, 68130019595.0; +10.1765, 68391070285.0; +10.183166666666667, 68567911075.0; +10.189833333333334, 68807909290.0; +10.1965, 68828961765.0; +10.203166666666668, 68664752460.0; +10.209833333333334, 68538437610.0; +10.2165, 68626858005.0; +10.223166666666668, 68816330280.0; +10.229833333333334, 68900540180.0; +10.236500000000001, 69191064335.0; +10.243166666666667, 69452115025.0; +10.249833333333335, 69637376805.0; +10.2565, 69713165715.0; +10.263166666666667, 69544745915.0; +10.269833333333334, 69148959385.0; +10.2765, 68647910480.0; +10.283166666666668, 68508964145.0; +10.289833333333334, 68887908695.0; +10.2965, 69363694630.0; +10.303166666666668, 70125794225.0; +10.309833333333334, 70938419760.0; +10.316500000000001, 71683677375.0; +10.323166666666667, 71940517570.0; +10.329833333333335, 71536310050.0; +10.336500000000001, 70972103720.0; +10.343166666666667, 70243688085.0; +10.349833333333335, 69763691655.0; +10.3565, 69494219975.0; +10.363166666666668, 69637376805.0; +10.369833333333334, 69852112050.0; +10.3765, 70104741750.0; +10.383166666666668, 70445791845.0; +10.389833333333334, 70997366690.0; +10.396500000000001, 71536310050.0; +10.403166666666667, 71965780540.0; +10.409833333333333, 72551039345.0; +10.416500000000001, 73191034585.0; +10.423166666666667, 73969976160.0; +10.429833333333335, 74445762095.0; +10.4365, 74765759715.0; +10.443166666666668, 74929969020.0; +10.449833333333334, 75068915355.0; +10.4565, 75292071590.0; +10.463166666666668, 75393123470.0; +10.469833333333334, 75460491390.0; +10.476500000000001, 75447859905.0; +10.483166666666667, 75346808025.0; +10.489833333333333, 75241545650.0; +10.496500000000001, 75165756740.0; +10.503166666666667, 75376281490.0; +10.509833333333335, 75624700695.0; +10.5165, 76222590985.0; +10.523166666666668, 77182583845.0; +10.529833333333334, 78239418090.0; +10.5365, 78900465805.0; +10.543166666666668, 79359409760.0; +10.549833333333334, 80066772920.0; +10.556500000000002, 80605716280.0; +10.563166666666667, 80938345385.0; +10.569833333333333, 81165712115.0; +10.576500000000001, 81830970325.0; +10.583166666666667, 82614122395.0; +10.589833333333335, 83532010305.0; +10.5965, 84761474845.0; +10.603166666666667, 85931992455.0; +10.609833333333334, 86955142740.0; +10.6165, 87637242930.0; +10.623166666666668, 88024608470.0; +10.629833333333334, 88336185100.0; +10.636500000000002, 88605656780.0; +10.643166666666668, 89161442120.0; +10.649833333333333, 89721437955.0; +10.656500000000001, 90209855375.0; +10.663166666666667, 90496169035.0; +10.669833333333335, 90470906065.0; +10.6765, 89978278150.0; +10.683166666666667, 89321440930.0; +10.689833333333334, 88921443905.0; +10.6965, 89102495190.0; +10.703166666666668, 89628807065.0; +10.709833333333334, 89919331220.0; +10.716500000000002, 90353012205.0; +10.723166666666668, 90925639525.0; +10.729833333333334, 91523529815.0; +10.736500000000001, 91851948425.0; +10.743166666666667, 92251945450.0; +10.749833333333335, 92769836335.0; +10.7565, 92854046235.0; +10.763166666666667, 92475101685.0; +10.769833333333334, 92197209015.0; +10.7765, 92294050400.0; +10.783166666666668, 91881421890.0; +10.789833333333334, 91291952590.0; +10.7965, 90942481505.0; +10.803166666666668, 90862482100.0; +10.809833333333334, 90096172010.0; +10.816500000000001, 88677235195.0; +10.823166666666667, 88251975200.0; +10.829833333333335, 88622498760.0; +10.836500000000001, 89047758755.0; +10.843166666666667, 88837234005.0; +10.849833333333335, 88942496380.0; +10.8565, 89624596570.0; +10.863166666666668, 90087751020.0; +10.869833333333334, 90150908445.0; +10.8765, 90496169035.0; +10.883166666666668, 92070894165.0; +10.889833333333334, 94142457705.0; +10.896500000000001, 95683498875.0; +10.903166666666667, 96365599065.0; +10.909833333333335, 96832964010.0; +10.916500000000001, 97414012320.0; +10.923166666666667, 97152961630.0; +10.929833333333335, 96079285405.0; +10.9365, 94727716510.0; +10.943166666666668, 93729829195.0; +10.949833333333334, 93195096330.0; +10.9565, 92668784455.0; +10.963166666666668, 92441417725.0; +10.969833333333334, 92588785050.0; +10.976500000000001, 93531935930.0; +10.983166666666667, 94811926410.0; +10.989833333333333, 95822445210.0; +10.996500000000001, 96239284215.0; +11.003166666666667, 96352967580.0; +11.009833333333335, 96512966390.0; +11.0165, 96289810155.0; +11.023166666666668, 96129811345.0; +11.029833333333334, 95940339070.0; +11.0365, 96382441045.0; +11.043166666666668, 96950857870.0; +11.049833333333334, 97106646185.0; +11.056500000000002, 96626649755.0; +11.063166666666667, 95435079670.0; +11.069833333333333, 94378245425.0; +11.076500000000001, 93224569795.0; +11.083166666666667, 92445628220.0; +11.089833333333335, 92239313965.0; +11.0965, 92984571580.0; +11.103166666666667, 94327719485.0; +11.109833333333334, 95670867390.0; +11.1165, 96820332525.0; +11.123166666666668, 97620326575.0; +11.129833333333334, 98218216865.0; +11.136500000000002, 98900317055.0; +11.143166666666668, 100205570505.0; +11.149833333333333, 101898189495.0; +11.156500000000001, 103536072050.0; +11.163166666666667, 104963429855.0; +11.169833333333335, 106609733400.0; +11.1765, 108180248035.0; +11.183166666666667, 109232871785.0; +11.189833333333334, 109961287420.0; +11.1965, 111241277900.0; +11.203166666666668, 113300209955.0; +11.209833333333334, 115253879635.0; +11.216500000000002, 116824394270.0; +11.223166666666668, 118234910095.0; +11.229833333333334, 119738056810.0; +11.236500000000001, 121055941745.0; +11.243166666666667, 122209617375.0; +11.249833333333335, 123502239340.0; +11.2565, 124971702095.0; +11.263166666666667, 126529585245.0; +11.269833333333334, 128192730770.0; +11.2765, 129944296690.0; +11.283166666666668, 131455864395.0; +11.289833333333334, 132836906755.0; +11.2965, 134011634860.0; +11.303166666666668, 135140047520.0; +11.309833333333334, 136041093450.0; +11.316500000000001, 136710562155.0; +11.323166666666667, 137228453040.0; +11.329833333333335, 137342136405.0; +11.336500000000001, 137220032050.0; +11.343166666666667, 136112671865.0; +11.349833333333335, 134024266345.0; +11.3565, 130811658660.0; +11.363166666666668, 126799056925.0; +11.369833333333334, 122247511830.0; +11.3765, 117329653670.0; +11.383166666666668, 112820213525.0; +11.389833333333334, 108681296940.0; +11.396500000000001, 105342374405.0; +11.403166666666667, 102693973050.0; +11.409833333333335, 100946617625.0; +11.416500000000001, 99999256250.0; +11.423166666666667, 99662416650.0; +11.429833333333335, 99902414865.0; +11.4365, 100235043970.0; +11.443166666666668, 100883460200.0; +11.449833333333334, 101557139400.0; +11.4565, 102180292660.0; +11.463166666666668, 102672920575.0; +11.469833333333334, 103102391065.0; +11.476500000000001, 103952911055.0; +11.483166666666667, 104786589065.0; +11.489833333333333, 105578162125.0; +11.496500000000001, 106597101915.0; +11.503166666666667, 108079196155.0; +11.509833333333335, 110331810980.0; +11.5165, 112660214715.0; +11.523166666666668, 115283353100.0; +11.529833333333334, 118053858810.0; +11.5365, 120698049670.0; +11.543166666666668, 123215925680.0; +11.549833333333334, 125295910210.0; +11.556500000000002, 127489578105.0; +11.563166666666667, 129679035505.0; +11.569833333333333, 131834808945.0; +11.576500000000001, 133969529910.0; +11.583166666666667, 136015830480.0; +11.589833333333335, 138066341545.0; +11.5965, 139780013010.0; +11.603166666666668, 141135792400.0; +11.609833333333334, 142457887830.0; +11.6165, 143893666625.0; +11.623166666666668, 145464181260.0; +11.629833333333334, 147097853320.0; +11.636500000000002, 148626263005.0; +11.643166666666668, 150007305365.0; +11.649833333333333, 151144139015.0; +11.656500000000001, 152175710290.0; +11.663166666666667, 152226236230.0; +11.669833333333335, 150933614265.0; +11.6765, 148179950535.0; +11.683166666666667, 144432609985.0; +11.689833333333334, 139666329645.0; +11.6965, 134007424365.0; +11.703166666666668, 128125362850.0; +11.709833333333334, 122563298955.0; +11.716500000000002, 117935964950.0; +11.723166666666668, 114331781230.0; +11.729833333333334, 111801273735.0; +11.736500000000001, 109982339895.0; +11.743166666666667, 109169714360.0; +11.749833333333335, 109270766240.0; +11.7565, 109898129995.0; +11.763166666666667, 110226548605.0; +11.769833333333334, 110062339300.0; +11.7765, 109637079305.0; +11.783166666666668, 109001294560.0; +11.789833333333334, 108487614170.0; +11.796500000000002, 108007617740.0; +11.803166666666668, 107700251605.0; +11.809833333333334, 107632883685.0; +11.816500000000001, 107919197345.0; +11.823166666666667, 108369720310.0; +11.829833333333335, 108230773975.0; +11.836500000000001, 107961302295.0; +11.843166666666667, 107889723880.0; +11.849833333333335, 108226563480.0; +11.8565, 108613929020.0; +11.863166666666668, 108891821690.0; +11.869833333333334, 109451817525.0; +11.8765, 110037076330.0; +11.883166666666668, 110458125830.0; +11.889833333333334, 110491809790.0; +11.896500000000001, 110159180685.0; +11.903166666666667, 109792867620.0; +11.909833333333335, 109771815145.0; +11.916500000000001, 110049707815.0; +11.923166666666667, 110609703650.0; +11.929833333333335, 111274961860.0; +11.9365, 111936009575.0; +11.943166666666668, 112411795510.0; +11.949833333333334, 112458110955.0; +11.9565, 112483373925.0; +11.963166666666668, 112546531350.0; +11.969833333333334, 112525478875.0; +11.976500000000001, 112588636300.0; +11.983166666666667, 112841266000.0; +11.989833333333335, 113152842630.0; +11.996500000000001, 113291788965.0; +12.003166666666667, 113304420450.0; +12.009833333333335, 113409682825.0; +12.0165, 113944415690.0; +12.023166666666668, 114479148555.0; +12.029833333333334, 115077038845.0; +12.0365, 115068617855.0; +12.043166666666668, 115018091915.0; +12.049833333333334, 114984407955.0; +12.056500000000002, 114967565975.0; +12.063166666666667, 115131775280.0; +12.069833333333333, 115346510525.0; +12.076500000000001, 115767560025.0; +12.083166666666667, 115818085965.0; +12.089833333333335, 115611771710.0; +12.0965, 115072828350.0; +12.103166666666668, 114441254100.0; +12.109833333333334, 114091783015.0; +12.1165, 114394938655.0; +12.123166666666668, 115148617260.0; +12.129833333333334, 116112820615.0; +12.136500000000002, 116845446745.0; +12.143166666666668, 117422284560.0; +12.149833333333333, 117350706145.0; +12.156500000000001, 116967551100.0; +12.163166666666667, 116542291105.0; +12.169833333333335, 116415976255.0; +12.1765, 116773868330.0; +12.183166666666667, 117093865950.0; +12.189833333333334, 117220180800.0; +12.1965, 117152812880.0; +12.203166666666668, 117274917235.0; +12.209833333333334, 117514915450.0; +12.216500000000002, 117683335250.0; +12.223166666666668, 117801229110.0; +12.229833333333334, 118159121185.0; +12.236500000000001, 118281225540.0; +12.243166666666667, 118091753265.0; +12.249833333333335, 117742282180.0; +12.2565, 117350706145.0; +12.263166666666667, 117157023375.0; +12.269833333333334, 117279127730.0; +12.2765, 117944385940.0; +12.283166666666668, 118761221970.0; +12.289833333333334, 119283323350.0; +12.296500000000002, 119645425920.0; +12.303166666666668, 120112790865.0; +12.309833333333334, 120744365115.0; +12.316500000000001, 121388570850.0; +12.323166666666667, 121679095005.0; +12.329833333333335, 121712778965.0; +12.336500000000001, 121788567875.0; +12.343166666666667, 121780146885.0; +12.349833333333335, 121405412830.0; +12.3565, 120655944720.0; +12.363166666666668, 120344368090.0; +12.369833333333334, 120858048480.0; +12.3765, 121603306095.0; +12.383166666666668, 122201196385.0; +12.389833333333334, 122630666875.0; +12.396500000000001, 123060137365.0; +12.403166666666667, 123215925680.0; +12.409833333333335, 123093821325.0; +12.416500000000001, 123064347860.0; +12.423166666666667, 123300135580.0; +12.429833333333335, 123796973990.0; +12.4365, 124521179130.0; +12.443166666666668, 125194858330.0; +12.449833333333334, 125771696145.0; +12.4565, 126150640695.0; +12.463166666666668, 126361165445.0; +12.469833333333334, 126108535745.0; +12.476500000000001, 125653802285.0; +12.483166666666667, 125321173180.0; +12.489833333333335, 125102227440.0; +12.496500000000001, 124740124870.0; +12.503166666666667, 124150655570.0; +12.509833333333335, 123910657355.0; +12.5165, 124104340125.0; +12.523166666666668, 124883281700.0; +12.529833333333334, 125868537530.0; +12.5365, 126748530985.0; +12.543166666666668, 127405368205.0; +12.549833333333334, 127590629985.0; +12.556500000000002, 127527472560.0; +12.563166666666667, 127300105830.0; +12.569833333333333, 127253790385.0; +12.576500000000001, 127413789195.0; +12.583166666666667, 127792733745.0; +12.589833333333335, 128348519085.0; +12.5965, 128647464230.0; +12.603166666666668, 128967461850.0; +12.609833333333334, 129009566800.0; +12.6165, 129203249570.0; +12.623166666666668, 129451668775.0; +12.629833333333334, 130196926390.0; +12.636500000000002, 131569547760.0; +12.643166666666668, 132668486955.0; +12.649833333333333, 133636900805.0; +12.656500000000001, 134340053470.0; +12.663166666666667, 135304256825.0; +12.669833333333335, 135998988500.0; +12.6765, 136251618200.0; +12.683166666666668, 136630562750.0; +12.689833333333334, 137165295615.0; +12.6965, 137872658775.0; +12.703166666666668, 137994763130.0; +12.709833333333334, 138062131050.0; +12.716500000000002, 137944237190.0; +12.723166666666668, 137674765510.0; +12.729833333333334, 136937928885.0; +12.736500000000001, 136407406515.0; +12.743166666666667, 136028461965.0; +12.749833333333335, 135569518010.0; +12.7565, 135266362370.0; +12.763166666666667, 135135837025.0; +12.769833333333334, 135464255635.0; +12.7765, 135169520985.0; +12.783166666666668, 135106363560.0; +12.789833333333334, 135346361775.0; +12.796500000000002, 135918989095.0; +12.803166666666668, 136504247900.0; +12.809833333333334, 136878981955.0; +12.816500000000001, 137662134025.0; +12.823166666666667, 138238971840.0; +12.829833333333335, 138424233620.0; +12.836500000000001, 138180024910.0; +12.843166666666667, 137594766105.0; +12.849833333333335, 136878981955.0; +12.8565, 136327407110.0; +12.863166666666668, 136247407705.0; +12.869833333333334, 136605299780.0; +12.876500000000002, 136937928885.0; +12.883166666666668, 137354767890.0; +12.889833333333334, 137805290855.0; +12.896500000000001, 137708449470.0; +12.903166666666667, 137262137000.0; +12.909833333333335, 136824245520.0; +12.916500000000001, 136900034430.0; +12.923166666666667, 137076875220.0; +12.929833333333335, 137451609275.0; +12.9365, 138142130455.0; +12.943166666666668, 139047386880.0; +12.949833333333334, 139573698755.0; +12.9565, 139624224695.0; +12.963166666666668, 139409489450.0; +12.969833333333334, 139177912225.0; +12.976500000000001, 139047386880.0; +12.983166666666667, 139034755395.0; +12.989833333333335, 139342121530.0; +12.996500000000001, 139531593805.0; +13.003166666666667, 139716855585.0; +13.009833333333335, 139809486475.0; +13.0165, 140230535975.0; +13.023166666666668, 140710532405.0; +13.029833333333334, 140971583095.0; +13.0365, 141236844280.0; +13.043166666666668, 141485263485.0; +13.049833333333334, 141674735760.0; +13.056500000000002, 141380001110.0; +13.063166666666667, 140933688640.0; +13.069833333333335, 140765268840.0; +13.076500000000001, 141102108440.0; +13.083166666666667, 141822103085.0; +13.089833333333335, 142424203870.0; +13.0965, 142853674360.0; +13.103166666666668, 143005252180.0; +13.109833333333334, 142862095350.0; +13.1165, 142386309415.0; +13.123166666666668, 141518947445.0; +13.129833333333334, 140824215770.0; +13.136500000000002, 140420008250.0; +13.143166666666668, 140260009440.0; +13.149833333333333, 140272640925.0; +13.156500000000001, 140226325480.0; +13.163166666666667, 140592638545.0; +13.169833333333335, 140748426860.0; +13.1765, 140874741710.0; +13.183166666666668, 140824215770.0; +13.189833333333334, 140769479335.0; +13.1965, 140647374980.0; +13.203166666666668, 140297903895.0; +13.209833333333334, 140070537165.0; +13.216500000000002, 139780013010.0; +13.223166666666668, 139144228265.0; +13.229833333333334, 138706336785.0; +13.236500000000001, 138765283715.0; +13.243166666666667, 138975808465.0; +13.249833333333335, 138908440545.0; +13.2565, 138765283715.0; +13.263166666666667, 139274753610.0; +13.269833333333334, 139758960535.0; +13.2765, 139691592615.0; +13.283166666666668, 139497909845.0; +13.289833333333334, 139624224695.0; +13.296500000000002, 139906327860.0; +13.303166666666668, 139611593210.0; +13.309833333333334, 139064228860.0; +13.316500000000001, 139232648660.0; +13.323166666666667, 139843170435.0; +13.329833333333335, 140491586665.0; +13.336500000000001, 140702111415.0; +13.343166666666667, 141118950420.0; +13.349833333333335, 141257896755.0; +13.3565, 140693690425.0; +13.363166666666668, 139489488855.0; +13.369833333333334, 138276866295.0; +13.376500000000002, 137763185905.0; +13.383166666666668, 137598976600.0; +13.389833333333334, 137809501350.0; +13.396500000000001, 137931605705.0; +13.403166666666667, 138083183525.0; +13.409833333333335, 138137919960.0; +13.416500000000001, 137758975410.0; +13.423166666666667, 137123190665.0; +13.429833333333335, 136588457800.0; +13.4365, 136630562750.0; +13.443166666666668, 137089506705.0; +13.449833333333334, 137716870460.0; +13.4565, 138196866890.0; +13.463166666666668, 138676863320.0; +13.469833333333334, 139097912820.0; +13.476500000000001, 139611593210.0; +13.483166666666667, 139792644495.0; +13.489833333333335, 139556856775.0; +13.496500000000001, 139371594995.0; +13.503166666666667, 139283174600.0; +13.509833333333335, 139278964105.0; +13.5165, 138895809060.0; +13.523166666666668, 138504233025.0; +13.529833333333334, 138188445900.0; +13.5365, 137973710655.0; +13.543166666666668, 137775817390.0; +13.549833333333334, 137417925315.0; +13.556500000000002, 137110559180.0; +13.563166666666667, 136942139380.0; +13.569833333333335, 137076875220.0; +13.576500000000001, 137312662940.0; +13.583166666666667, 137346346900.0; +13.589833333333335, 137426346305.0; +13.5965, 137716870460.0; +13.603166666666668, 138386339165.0; +13.609833333333334, 138895809060.0; +13.6165, 139329490045.0; +13.623166666666668, 139721066080.0; +13.629833333333334, 140137905085.0; +13.636500000000002, 140592638545.0; +13.643166666666668, 140958951610.0; +13.649833333333333, 141316843685.0; +13.656500000000001, 141283159725.0; +13.663166666666667, 141013688045.0; +13.669833333333335, 140904215175.0; +13.6765, 140828426265.0; +13.683166666666668, 140436850230.0; +13.689833333333334, 139965274790.0; +13.6965, 140078958155.0; +13.703166666666668, 140685269435.0; +13.709833333333334, 140824215770.0; +13.716500000000002, 140285272410.0; +13.723166666666668, 139451594400.0; +13.729833333333334, 138862125100.0; +13.736500000000001, 138403181145.0; +13.743166666666667, 138053710060.0; +13.749833333333335, 137876869270.0; +13.7565, 137952658180.0; +13.763166666666669, 138668442330.0; +13.769833333333334, 139350542520.0; +13.7765, 139683171625.0; +13.783166666666668, 139598961725.0; +13.789833333333334, 139434752420.0; +13.796500000000002, 139527383310.0; +13.803166666666668, 139401068460.0; +13.809833333333334, 139468436380.0; +13.816500000000001, 139666329645.0; +13.823166666666667, 139990537760.0; +13.829833333333335, 140542112605.0; +13.836500000000001, 141102108440.0; +13.843166666666667, 141337896160.0; +13.849833333333335, 141152634380.0; +13.8565, 140845268245.0; +13.863166666666668, 140803163295.0; +13.869833333333334, 140782110820.0; +13.876500000000002, 140403166270.0; +13.883166666666668, 140045274195.0; +13.889833333333334, 139750539545.0; +13.896500000000001, 139851591425.0; +13.903166666666667, 139780013010.0; +13.909833333333335, 139695803110.0; +13.916500000000001, 139691592615.0; +13.923166666666667, 139615803705.0; +13.929833333333335, 139767381525.0; +13.9365, 139838959940.0; +13.943166666666668, 140331587855.0; +13.949833333333334, 140575796565.0; +13.956500000000002, 140744216365.0; +13.963166666666668, 141144213390.0; +13.969833333333334, 141552631405.0; +13.976500000000001, 142036838330.0; +13.983166666666667, 142104206250.0; +13.989833333333335, 141826313580.0; +13.996500000000001, 141085266460.0; +14.003166666666667, 140154747065.0; +14.009833333333335, 139329490045.0; +14.0165, 138306339760.0; +14.023166666666668, 137363188880.0; +14.029833333333334, 136857929480.0; +14.0365, 137607397590.0; +14.043166666666668, 138798967675.0; +14.049833333333334, 140028432215.0; +14.056500000000002, 141102108440.0; +14.063166666666667, 142062101300.0; +14.069833333333335, 142908410795.0; +14.076500000000001, 142992620695.0; +14.083166666666667, 142857884855.0; +14.089833333333335, 142592623670.0; +14.0965, 142327362485.0; +14.103166666666668, 142116837735.0; +14.109833333333334, 141952628430.0; +14.1165, 142209468625.0; +14.123166666666668, 142293678525.0; +14.129833333333334, 142205258130.0; +14.136500000000002, 141817892590.0; +14.143166666666668, 141548420910.0; +14.149833333333333, 141215791805.0; +14.156500000000001, 140554744090.0; +14.163166666666667, 139746329050.0; +14.169833333333335, 138878967080.0; +14.1765, 138411602135.0; +14.183166666666668, 138028447090.0; +14.189833333333334, 138154761940.0; +14.1965, 138512654015.0; +14.203166666666668, 138958966485.0; +14.209833333333334, 139527383310.0; +14.216500000000002, 140205273005.0; +14.223166666666668, 140769479335.0; +14.229833333333334, 141182107845.0; +14.236500000000001, 141304212200.0; +14.243166666666667, 141674735760.0; +14.249833333333335, 141619999325.0; +14.2565, 141013688045.0; +14.263166666666669, 140213693995.0; +14.269833333333334, 139540014795.0; +14.2765, 139712645090.0; +14.283166666666668, 139767381525.0; +14.289833333333334, 139944222315.0; +14.296500000000002, 140373692805.0; +14.303166666666668, 141123160915.0; +14.309833333333334, 141809471600.0; +14.316500000000001, 141489473980.0; +14.323166666666667, 141110529430.0; +14.329833333333335, 140900004680.0; +14.336500000000001, 141110529430.0; +14.343166666666667, 141161055370.0; +14.349833333333335, 140992635570.0; +14.3565, 141051582500.0; +14.363166666666668, 141085266460.0; +14.369833333333334, 141291580715.0; +14.376500000000002, 141426316555.0; +14.383166666666668, 141834734570.0; +14.389833333333334, 142163153180.0; +14.396500000000001, 142462098325.0; +14.403166666666667, 142832621885.0; +14.409833333333335, 142950515745.0; +14.416500000000001, 142899989805.0; +14.423166666666667, 142331572980.0; +14.429833333333335, 141645262295.0; +14.4365, 140963162105.0; +14.443166666666668, 140331587855.0; +14.449833333333334, 139977906275.0; +14.456500000000002, 139518962320.0; +14.463166666666668, 139497909845.0; +14.469833333333334, 140036853205.0; +14.476500000000001, 140689479930.0; +14.483166666666667, 141177897350.0; +14.489833333333335, 141468421505.0; +14.496500000000001, 141990522885.0; +14.503166666666667, 142259994565.0; +14.509833333333335, 142116837735.0; +14.5165, 141779998135.0; +14.523166666666668, 141582104870.0; +14.529833333333334, 141716840710.0; +14.5365, 141834734570.0; +14.543166666666668, 141961049420.0; +14.549833333333334, 141986312390.0; +14.556500000000002, 142664202085.0; +14.563166666666667, 143455775145.0; +14.569833333333335, 143931561080.0; +14.576500000000001, 143927350585.0; +14.583166666666667, 144108401870.0; +14.589833333333335, 144563135330.0; +14.5965, 144605240280.0; +14.603166666666668, 144398926025.0; +14.609833333333334, 143918929595.0; +14.6165, 143729457320.0; +14.623166666666668, 143666299895.0; +14.629833333333334, 143678931380.0; +14.636500000000002, 143548406035.0; +14.643166666666668, 143358933760.0; +14.649833333333335, 143422091185.0; +14.656500000000001, 143535774550.0; +14.663166666666667, 143055778120.0; +14.669833333333335, 142508413770.0; +14.6765, 142154732190.0; +14.683166666666668, 142487361295.0; +14.689833333333334, 142828411390.0; +14.6965, 142958936735.0; +14.703166666666668, 143476827620.0; +14.709833333333334, 143801035735.0; +14.716500000000002, 144049454940.0; +14.723166666666668, 143552616530.0; +14.729833333333334, 143430512175.0; +14.736500000000001, 143775772765.0; +14.743166666666667, 144062086425.0; +14.749833333333335, 144521030380.0; +14.7565, 145026289780.0; +14.763166666666669, 145813652345.0; +14.769833333333334, 146163123430.0; +14.7765, 146015756105.0; +14.783166666666668, 145822073335.0; +14.789833333333334, 145278919480.0; +14.796500000000002, 144499977905.0; +14.803166666666668, 143666299895.0; +14.809833333333334, 143228408415.0; +14.816500000000001, 143009462675.0; +14.823166666666667, 142988410200.0; +14.829833333333335, 143047357130.0; +14.836500000000001, 143472617125.0; +14.843166666666669, 143998929000.0; +14.849833333333335, 144424188995.0; +14.8565, 144841028000.0; +14.863166666666668, 144950500870.0; +14.869833333333334, 145228393540.0; +14.876500000000002, 145236814530.0; +14.883166666666668, 144899974930.0; +14.889833333333334, 144588398300.0; +14.896500000000001, 144546293350.0; +14.903166666666667, 144904185425.0; +14.909833333333335, 145106289185.0; +14.916500000000001, 145131552155.0; +14.923166666666667, 145316813935.0; +14.929833333333335, 145173657105.0; +14.9365, 144659976715.0; +14.943166666666668, 143948403060.0; +14.949833333333334, 143342091780.0; +14.956500000000002, 142862095350.0; +14.963166666666668, 142339993970.0; +14.969833333333334, 142095785260.0; +14.976500000000001, 142407361890.0; +14.983166666666667, 142878937330.0; +14.989833333333335, 143586300490.0; +14.996500000000001, 144344189590.0; +15.003166666666667, 145291550965.0; +15.009833333333335, 146003124620.0; +15.0165, 145935756700.0; +15.023166666666668, 145451549775.0; +15.029833333333334, 144819975525.0; +15.036500000000002, 144445241470.0; +15.043166666666668, 144078928405.0; +15.049833333333334, 143699983855.0; +15.056500000000002, 143489459105.0; +15.063166666666667, 143245250395.0; +15.069833333333335, 142857884855.0; +15.076500000000001, 142445256345.0; +15.083166666666667, 142352625455.0; +15.089833333333335, 142537887235.0; +15.0965, 142622097135.0; +15.103166666666668, 142773674955.0; +15.109833333333334, 142752622480.0; +15.1165, 142638939115.0; +15.123166666666668, 142588413175.0; +15.129833333333334, 142714728025.0; +15.136500000000002, 143379986235.0; +15.143166666666668, 144095770385.0; +15.149833333333335, 144954711365.0; +15.156500000000001, 145859967790.0; +15.163166666666667, 146163123430.0; +15.169833333333335, 146314701250.0; +15.1765, 146070492540.0; +15.183166666666668, 146116807985.0; +15.189833333333334, 146163123430.0; +15.1965, 146125228975.0; +15.203166666666668, 146222070360.0; +15.209833333333334, 145822073335.0; +15.216500000000002, 145342076905.0; +15.223166666666668, 144617871765.0; +15.229833333333334, 144121033355.0; +15.236500000000001, 143784193755.0; +15.243166666666667, 143565248015.0; +15.249833333333335, 143931561080.0; +15.2565, 144546293350.0; +15.263166666666669, 145224183045.0; +15.269833333333334, 145813652345.0; +15.2765, 146521015505.0; +15.283166666666668, 147641007175.0; +15.289833333333334, 148601000035.0; +15.296500000000002, 149013628545.0; +15.303166666666668, 148845208745.0; +15.309833333333334, 148407317265.0; +15.316500000000001, 147611533710.0; +15.323166666666667, 146394700655.0; +15.329833333333335, 145190499085.0; +15.336500000000001, 144601029785.0; +15.343166666666669, 144714713150.0; +15.349833333333335, 144946290375.0; +15.3565, 145064184235.0; +15.363166666666668, 145064184235.0; +15.369833333333334, 145135762650.0; +15.376500000000002, 145329445420.0; +15.383166666666668, 145249446015.0; +15.389833333333334, 145401023835.0; +15.396500000000001, 145708389970.0; +15.403166666666667, 146230491350.0; +15.409833333333335, 146255754320.0; +15.416500000000001, 146158912935.0; +15.423166666666667, 146302069765.0; +15.429833333333335, 146243122835.0; +15.4365, 146099966005.0; +15.443166666666668, 145986282640.0; +15.449833333333334, 146533646990.0; +15.456500000000002, 147211536685.0; +15.463166666666668, 147472587375.0; +15.469833333333334, 147350483020.0; +15.476500000000001, 147211536685.0; +15.483166666666667, 147093642825.0; +15.489833333333335, 146735750750.0; +15.496500000000001, 145809441850.0; +15.503166666666667, 145118920670.0; +15.509833333333335, 145009447800.0; +15.5165, 145219972550.0; +15.523166666666668, 145426286805.0; +15.529833333333334, 145417865815.0; +15.536500000000002, 145590496110.0; +15.543166666666668, 145594706605.0; +15.549833333333334, 145552601655.0; +15.556500000000002, 145329445420.0; +15.563166666666667, 144912606415.0; +15.569833333333335, 144710502655.0; +15.576500000000001, 144693660675.0; +15.583166666666667, 144845238495.0; +15.589833333333335, 144942079880.0; +15.5965, 145081026215.0; +15.603166666666668, 145346287400.0; +15.609833333333334, 145430497300.0; +15.6165, 145438918290.0; +15.623166666666668, 145535759675.0; +15.629833333333334, 145792599870.0; +15.636500000000002, 146449437090.0; +15.643166666666668, 147215747180.0; +15.649833333333335, 148024162220.0; +15.656500000000001, 148491527165.0; +15.663166666666667, 148748367360.0; +15.669833333333335, 148710472905.0; +15.6765, 148201003010.0; +15.683166666666668, 147489429355.0; +15.689833333333334, 146815750155.0; +15.6965, 146605225405.0; +15.703166666666668, 146832592135.0; +15.709833333333334, 147266273120.0; +15.716500000000002, 147544165790.0; +15.723166666666668, 147358904010.0; +15.729833333333335, 147177852725.0; +15.736500000000001, 147017853915.0; +15.743166666666667, 146689435305.0; +15.749833333333335, 146201017885.0; +15.7565, 145944177690.0; +15.763166666666669, 146238912340.0; +15.769833333333334, 146546278475.0; +15.7765, 146575751940.0; +15.783166666666668, 146811539660.0; +15.789833333333334, 147321009555.0; +15.796500000000002, 147834689945.0; +15.803166666666668, 148007320240.0; +15.809833333333334, 147965215290.0; +15.816500000000001, 148116793110.0; +15.823166666666667, 147834689945.0; +15.829833333333335, 147472587375.0; +15.836500000000001, 147249431140.0; +15.843166666666669, 147434692920.0; +15.849833333333335, 147657849155.0; +15.8565, 147822058460.0; +15.863166666666668, 148537842610.0; +15.869833333333334, 149371520620.0; +15.876500000000002, 150057831305.0; +15.883166666666668, 150462038825.0; +15.889833333333334, 151274664360.0; +15.896500000000001, 152369393060.0; +15.903166666666667, 153207281565.0; +15.909833333333335, 153733593440.0; +15.916500000000001, 154171484920.0; +15.923166666666669, 154596744915.0; +15.929833333333335, 154651481350.0; +15.9365, 154377799175.0; +15.943166666666668, 154133590465.0; +15.949833333333334, 154171484920.0; +15.9565, 154213589870.0; +15.963166666666668, 153965170665.0; +15.969833333333336, 153565173640.0; +15.9765, 153198860575.0; +15.983166666666667, 152769390085.0; +15.989833333333335, 152015711480.0; +15.996500000000003, 150979929710.0; +16.003166666666665, 149944147940.0; +16.009833333333333, 149064154485.0; +16.0165, 148398896275.0; +16.023166666666665, 147754690540.0; +16.029833333333332, 147194694705.0; +16.0365, 146584172930.0; +16.043166666666664, 145881020265.0; +16.049833333333332, 144727344635.0; +16.0565, 143072620100.0; +16.063166666666667, 141152634380.0; +16.06983333333333, 139017913415.0; +16.0765, 136992665320.0; +16.083166666666667, 135274783360.0; +16.08983333333333, 133788478625.0; +16.0965, 132251647950.0; +16.103166666666667, 130121137480.0; +16.109833333333334, 127805365230.0; +16.1165, 125632749810.0; +16.123166666666666, 123350661520.0; +16.129833333333334, 121144362140.0; +16.136499999999998, 118639117615.0; +16.143166666666666, 116458081205.0; +16.149833333333333, 114378096675.0; +16.156499999999998, 112133902840.0; +16.163166666666665, 109881288015.0; +16.169833333333333, 107110782305.0; +16.1765, 104837115005.0; +16.183166666666665, 102672920575.0; +16.189833333333333, 100538199610.0; +16.1965, 98155059440.0; +16.203166666666664, 95620341450.0; +16.209833333333332, 93502462465.0; +16.2165, 91203532195.0; +16.223166666666668, 88635130245.0; +16.229833333333332, 86117254235.0; +16.2365, 84058322180.0; +16.243166666666667, 82639385365.0; +16.24983333333333, 81266763995.0; +16.2565, 79814143220.0; +16.263166666666667, 78500468780.0; +16.269833333333334, 76988901075.0; +16.2765, 75039441890.0; +16.283166666666666, 72483671425.0; +16.289833333333334, 70290003530.0; +16.296499999999998, 68530016620.0; +16.303166666666666, 66896344560.0; +16.309833333333334, 65346882400.0; +16.316499999999998, 63822683210.0; +16.323166666666665, 62551113720.0; +16.329833333333333, 60812179285.0; +16.3365, 58909035545.0; +16.343166666666665, 56955365865.0; +16.349833333333333, 55153274005.0; +16.3565, 53730126695.0; +16.363166666666665, 52555398590.0; +16.369833333333332, 51599616225.0; +16.3765, 50395414655.0; +16.383166666666668, 49309106945.0; +16.389833333333332, 48151220820.0; +16.3965, 47325963800.0; +16.403166666666667, 46332286980.0; +16.40983333333333, 45359662635.0; +16.4165, 44517563635.0; +16.423166666666667, 43692306615.0; +16.42983333333333, 43330204045.0; +16.4365, 42483894550.0; +16.443166666666666, 41380744860.0; +16.449833333333334, 40222858735.0; +16.4565, 39149182510.0; +16.463166666666666, 38479713805.0; +16.469833333333334, 37570246885.0; +16.476499999999998, 36888146695.0; +16.483166666666666, 36062889675.0; +16.489833333333333, 34879740580.0; +16.4965, 33852379800.0; +16.503166666666665, 32761861595.0; +16.509833333333333, 31839763190.0; +16.5165, 30833454885.0; +16.523166666666665, 30521878255.0; +16.529833333333332, 30900822805.0; +16.5365, 31473450125.0; +16.543166666666664, 31768184775.0; +16.549833333333332, 31932394080.0; +16.5565, 32366075065.0; +16.563166666666667, 32462916450.0; +16.56983333333333, 32311338630.0; +16.5765, 31886078635.0; +16.583166666666667, 31860815665.0; +16.58983333333333, 31873447150.0; +16.5965, 31667132895.0; +16.603166666666667, 31599764975.0; +16.609833333333334, 31839763190.0; +16.6165, 32113445365.0; +16.623166666666666, 31902920615.0; +16.629833333333334, 31473450125.0; +16.636499999999998, 31229241415.0; +16.643166666666666, 31069242605.0; +16.649833333333333, 30530299245.0; +16.6565, 29932408955.0; +16.663166666666665, 29898724995.0; +16.669833333333333, 30521878255.0; +16.6765, 30993453695.0; +16.683166666666665, 31098716070.0; +16.689833333333333, 31001874685.0; +16.6965, 30997664190.0; +16.703166666666664, 30610298650.0; +16.709833333333332, 29587148365.0; +16.7165, 28585050555.0; +16.723166666666668, 27974528780.0; +16.729833333333332, 28345052340.0; +16.7365, 29086099460.0; +16.743166666666667, 30083986775.0; +16.74983333333333, 31039769140.0; +16.7565, 31877657645.0; +16.763166666666667, 32681862190.0; +16.769833333333334, 32854492485.0; +16.7765, 32862913475.0; +16.783166666666666, 32555547340.0; +16.789833333333334, 32526073875.0; +16.796499999999998, 32551336845.0; +16.803166666666666, 32273444175.0; +16.809833333333334, 31860815665.0; +16.816499999999998, 31052400625.0; +16.823166666666665, 30256617070.0; +16.829833333333333, 29473465000.0; +16.8365, 28702944415.0; +16.843166666666665, 28366104815.0; +16.849833333333333, 28610313525.0; +16.8565, 29713463215.0; +16.863166666666665, 30955559240.0; +16.869833333333332, 31822921210.0; +16.8765, 32715546150.0; +16.883166666666668, 33498698220.0; +16.889833333333332, 33587118615.0; +16.8965, 32631336250.0; +16.903166666666667, 31751342795.0; +16.90983333333333, 31797658240.0; +16.9165, 32096603385.0; +16.923166666666667, 32454495460.0; +16.92983333333333, 32875544960.0; +16.9365, 33612381585.0; +16.943166666666666, 34062904550.0; +16.949833333333334, 33553434655.0; +16.9565, 32875544960.0; +16.963166666666666, 32222918235.0; +16.969833333333334, 32298707145.0; +16.976499999999998, 32488179420.0; +16.983166666666666, 32505021400.0; +16.989833333333333, 32648178230.0; +16.9965, 32812387535.0; +17.003166666666665, 33031333275.0; +17.009833333333333, 32850281990.0; +17.0165, 32883965950.0; +17.023166666666665, 33401856835.0; +17.029833333333332, 34025010095.0; +17.0365, 34366060190.0; +17.043166666666664, 34353428705.0; +17.049833333333332, 34142903955.0; +17.0565, 33831327325.0; +17.063166666666667, 33309225945.0; +17.06983333333333, 33031333275.0; +17.0765, 33073438225.0; +17.083166666666667, 33439751290.0; +17.08983333333333, 33987115640.0; +17.0965, 34138693460.0; +17.103166666666667, 34130272470.0; +17.109833333333334, 33667118020.0; +17.1165, 33149227135.0; +17.123166666666666, 32702914665.0; +17.129833333333334, 32467126945.0; +17.136499999999998, 32631336250.0; +17.143166666666666, 33086069710.0; +17.149833333333333, 33957642175.0; +17.1565, 34837635630.0; +17.163166666666665, 35435525920.0; +17.169833333333333, 35456578395.0; +17.1765, 34917635035.0; +17.183166666666665, 34163956430.0; +17.189833333333333, 33620802575.0; +17.1965, 33414488320.0; +17.203166666666664, 33166069115.0; +17.209833333333332, 33170279610.0; +17.2165, 33536592675.0; +17.223166666666668, 34227113855.0; +17.229833333333332, 34547111475.0; +17.2365, 34374481180.0; +17.243166666666667, 34345007715.0; +17.24983333333333, 34340797220.0; +17.2565, 34551321970.0; +17.263166666666667, 34580795435.0; +17.269833333333334, 34479743555.0; +17.2765, 34517638010.0; +17.283166666666666, 34412375635.0; +17.289833333333334, 34412375635.0; +17.296499999999998, 34231324350.0; +17.303166666666666, 34155535440.0; +17.309833333333334, 34265008310.0; +17.316499999999998, 34315534250.0; +17.323166666666665, 34256587320.0; +17.329833333333333, 34294481775.0; +17.3365, 34349218210.0; +17.343166666666665, 34273429300.0; +17.349833333333333, 34180798410.0; +17.3565, 34336586725.0; +17.363166666666665, 34905003550.0; +17.369833333333332, 34980792460.0; +17.3765, 34648163355.0; +17.383166666666668, 34252376825.0; +17.389833333333332, 34016589105.0; +17.3965, 33949221185.0; +17.403166666666667, 33776590890.0; +17.40983333333333, 33869221780.0; +17.4165, 34563953455.0; +17.423166666666667, 35397631465.0; +17.42983333333333, 36037626705.0; +17.4365, 35898680370.0; +17.443166666666666, 35519735820.0; +17.449833333333334, 35464999385.0; +17.4565, 35292369090.0; +17.463166666666666, 34926056025.0; +17.469833333333334, 34458691080.0; +17.476499999999998, 34374481180.0; +17.483166666666666, 34917635035.0; +17.489833333333333, 35439736415.0; +17.4965, 36332361355.0; +17.503166666666665, 37279722730.0; +17.509833333333333, 38214452620.0; +17.5165, 38904973800.0; +17.523166666666665, 38993394195.0; +17.529833333333332, 38867079345.0; +17.5365, 38496555785.0; +17.543166666666668, 38252347075.0; +17.549833333333332, 38256557570.0; +17.5565, 38416556380.0; +17.563166666666667, 38702870040.0; +17.56983333333333, 38871289840.0; +17.5765, 38766027465.0; +17.583166666666667, 38526029250.0; +17.58983333333333, 38424977370.0; +17.5965, 38677607070.0; +17.603166666666667, 38930236770.0; +17.609833333333334, 39094446075.0; +17.6165, 39250234390.0; +17.623166666666666, 39629178940.0; +17.629833333333334, 39389180725.0; +17.636499999999998, 38761816970.0; +17.643166666666666, 38370240935.0; +17.649833333333333, 38580765685.0; +17.6565, 39081814590.0; +17.663166666666665, 39355496765.0; +17.669833333333333, 39793388245.0; +17.6765, 40109175370.0; +17.683166666666665, 39991281510.0; +17.689833333333333, 39561811020.0; +17.6965, 39081814590.0; +17.703166666666664, 38757606475.0; +17.709833333333332, 38782869445.0; +17.7165, 39288128845.0; +17.723166666666668, 40210227250.0; +17.729833333333332, 40744960115.0; +17.7365, 40740749620.0; +17.743166666666667, 40542856355.0; +17.74983333333333, 40500751405.0; +17.7565, 40627066255.0; +17.763166666666667, 40446014970.0; +17.769833333333334, 40534435365.0; +17.7765, 40803907045.0; +17.783166666666666, 41380744860.0; +17.789833333333334, 41886004260.0; +17.796499999999998, 42079687030.0; +17.803166666666666, 42429158115.0; +17.809833333333334, 42837576130.0; +17.816499999999998, 43730201070.0; +17.823166666666665, 44307038885.0; +17.829833333333333, 44391248785.0; +17.8365, 44770193335.0; +17.843166666666665, 45342820655.0; +17.849833333333333, 46420707375.0; +17.8565, 47115439050.0; +17.863166666666665, 47974380030.0; +17.869833333333332, 48921741405.0; +17.8765, 49481737240.0; +17.883166666666668, 49784892880.0; +17.889833333333332, 49768050900.0; +17.8965, 49936470700.0; +17.903166666666667, 50281731290.0; +17.90983333333333, 50719622770.0; +17.9165, 51304881575.0; +17.923166666666667, 51944876815.0; +17.92983333333333, 52222769485.0; +17.9365, 51881719390.0; +17.943166666666666, 51048041380.0; +17.949833333333334, 50648044355.0; +17.9565, 50660675840.0; +17.963166666666666, 51031199400.0; +17.969833333333334, 51742773055.0; +17.976499999999998, 53271182740.0; +17.983166666666666, 55359588260.0; +17.989833333333333, 57005891805.0; +17.9965, 58029042090.0; +18.003166666666665, 58500617530.0; +18.009833333333333, 58786931190.0; +18.0165, 58925877525.0; +18.023166666666665, 58854299110.0; +18.029833333333332, 58862720100.0; +18.0365, 58976403465.0; +18.043166666666668, 59367979500.0; +18.049833333333332, 59970080285.0; +18.0565, 60610075525.0; +18.063166666666667, 61043756510.0; +18.06983333333333, 61207965815.0; +18.0765, 61250070765.0; +18.083166666666667, 61140597895.0; +18.08983333333333, 61216386805.0; +18.0965, 61435332545.0; +18.103166666666667, 62395325405.0; +18.109833333333334, 63818472715.0; +18.1165, 65102673690.0; +18.123166666666666, 65911088730.0; +18.129833333333334, 66062666550.0; +18.136499999999998, 66273191300.0; +18.143166666666666, 66134244965.0; +18.149833333333333, 66130034470.0; +18.1565, 66445821595.0; +18.163166666666665, 67300552080.0; +18.169833333333333, 68290018405.0; +18.1765, 68664752460.0; +18.183166666666665, 68656331470.0; +18.189833333333333, 68163703555.0; +18.1965, 67410024950.0; +18.203166666666664, 66403716645.0; +18.209833333333332, 65574249130.0; +18.2165, 65300566955.0; +18.223166666666668, 65393197845.0; +18.229833333333332, 65557407150.0; +18.2365, 65435302795.0; +18.243166666666667, 65296356460.0; +18.24983333333333, 64942674880.0; +18.2565, 64235311720.0; +18.263166666666667, 63170056485.0; +18.269833333333334, 62079538280.0; +18.2765, 61544805415.0; +18.283166666666666, 61098492945.0; +18.289833333333334, 60753232355.0; +18.296499999999998, 59961659295.0; +18.303166666666666, 59085876335.0; +18.309833333333334, 58134304465.0; +18.316499999999998, 56963786855.0; +18.323166666666665, 55658533405.0; +18.329833333333333, 54395384905.0; +18.3365, 53713284715.0; +18.343166666666665, 53245919770.0; +18.349833333333333, 52736449875.0; +18.3565, 52285926910.0; +18.363166666666665, 51957508300.0; +18.369833333333332, 51410143950.0; +18.3765, 50328046735.0; +18.383166666666668, 48997530315.0; +18.389833333333332, 47763855280.0; +18.3965, 46437549355.0; +18.403166666666667, 44896508185.0; +18.40983333333333, 43191257710.0; +18.4165, 41654427035.0; +18.423166666666667, 40273384675.0; +18.429833333333335, 38947078750.0; +18.4365, 37721824705.0; +18.443166666666666, 36791305310.0; +18.449833333333334, 36391308285.0; +18.4565, 36126047100.0; +18.463166666666666, 35544998790.0; +18.469833333333334, 34888161570.0; +18.476499999999998, 34361849695.0; +18.483166666666666, 33886063760.0; +18.489833333333333, 32846071495.0; +18.4965, 31751342795.0; +18.503166666666665, 31241872900.0; +18.509833333333333, 30951348745.0; +18.5165, 30370300435.0; +18.523166666666665, 29347150150.0; +18.529833333333332, 28627155505.0; +18.5365, 27928213335.0; +18.543166666666668, 27174534730.0; +18.549833333333332, 26302962265.0; +18.5565, 25540862670.0; +18.563166666666667, 24909288420.0; +18.56983333333333, 24088241895.0; +18.5765, 23174564480.0; +18.583166666666667, 22307202510.0; +18.58983333333333, 21726154200.0; +18.5965, 21414577570.0; +18.603166666666667, 21081948465.0; +18.609833333333334, 20719845895.0; +18.6165, 20606162530.0; +18.623166666666666, 20176692040.0; +18.629833333333334, 19199857200.0; +18.636499999999998, 17713552465.0; +18.643166666666666, 16492508915.0; +18.649833333333333, 15528305560.0; +18.6565, 14631470125.0; +18.663166666666665, 13848318055.0; +18.669833333333333, 13490425980.0; +18.6765, 13599898850.0; +18.683166666666665, 13873581025.0; +18.689833333333333, 14277788545.0; +18.6965, 14543049730.0; +18.703166666666664, 14639891115.0; +18.709833333333332, 14235683595.0; +18.7165, 13675687760.0; +18.723166666666668, 13035692520.0; +18.729833333333332, 12530433120.0; +18.7365, 12345171340.0; +18.743166666666667, 12425170745.0; +18.74983333333333, 12905167175.0; +18.7565, 13313585190.0; +18.763166666666667, 13637793305.0; +18.769833333333334, 13482004990.0; +18.7765, 12623064010.0; +18.783166666666666, 11625176695.0; +18.789833333333334, 11073601850.0; +18.796499999999998, 10795709180.0; +18.803166666666666, 10109398495.0; +18.809833333333334, 9284141475.0; +18.8165, 8976775340.0; +18.823166666666665, 9258878505.0; +18.829833333333333, 9498876720.0; +18.8365, 9562034145.0; +18.843166666666665, 9839926815.0; +18.849833333333333, 10218871365.0; +18.8565, 10210450375.0; +18.863166666666665, 9540981670.0; +18.869833333333332, 8370464060.0; +18.8765, 7103105065.0; +18.883166666666668, 6235743095.0; +18.889833333333332, 5684168250.0; +18.8965, 5743115180.0; +18.903166666666667, 5894693000.0; +18.90983333333333, 5852588050.0; +18.9165, 5599958350.0; +18.923166666666667, 5103119940.0; +18.929833333333335, 4892595190.0; +18.9365, 4635754995.0; +18.943166666666666, 4324178365.0; +18.949833333333334, 4349441335.0; +18.9565, 4690491430.0; +18.963166666666666, 5035752020.0; +18.969833333333334, 4715754400.0; +18.976499999999998, 4378914800.0; +18.983166666666666, 4488387670.0; +18.989833333333333, 4732596380.0; +18.9965, 4837858755.0; +19.003166666666665, 5094698950.0; +19.009833333333333, 5692589240.0; +19.0165, 5936797950.0; +19.023166666666665, 5587326865.0; +19.029833333333332, 5157856375.0; +19.0365, 4951542120.0; +19.043166666666668, 4362072820.0; +19.049833333333332, 3865234410.0; +19.0565, 3667341145.0; +19.063166666666667, 3810497975.0; +19.06983333333333, 3679972630.0; +19.0765, 3376816990.0; +19.083166666666667, 3393658970.0; +19.08983333333333, 3322080555.0; +19.0965, 2951556995.0; +19.103166666666667, 2652611850.0; +19.109833333333334, 2808400165.0; +19.1165, 2888399570.0; +19.123166666666666, 3035766895.0; +19.129833333333334, 3216818180.0; +19.136499999999998, 3827339955.0; +19.143166666666666, 4122074605.0; +19.149833333333333, 3890497380.0; +19.1565, 3696814610.0; +19.163166666666665, 3246291645.0; +19.169833333333333, 2917873035.0; +19.1765, 2602085910.0; +19.183166666666665, 2597875415.0; +19.189833333333333, 2774716205.0; +19.1965, 2593664920.0; +19.203166666666664, 2479981555.0; +19.209833333333332, 2122089480.0; +19.2165, 1709460970.0; +19.223166666666668, 1094728700.0; +19.229833333333332, 757889100.0; +19.2365, 778941575.0; +19.243166666666667, 1048413255.0; +19.24983333333333, 1385252855.0; +19.2565, 1633672060.0; +19.263166666666667, 2277877795.0; +19.269833333333334, 2926294025.0; +19.2765, 3688393620.0; +19.283166666666666, 3894707875.0; +19.289833333333334, 3793655995.0; +19.296499999999998, 3385237980.0; +19.303166666666666, 2829452640.0; +19.309833333333334, 2181036410.0; +19.3165, 1372621370.0; +19.323166666666665, 707363160.0; +19.329833333333333, 572627320.0; +19.3365, 1082097215.0; +19.343166666666665, 1671566515.0; +19.349833333333333, 2147352450.0; +19.3565, 2286298785.0; +19.363166666666665, 2484192050.0; +19.369833333333332, 2559980960.0; +19.3765, 2193667895.0; +19.383166666666668, 1486304735.0; +19.389833333333332, 294734650.0; +19.3965, -404207520.0; +19.403166666666667, -783152070.0; +19.40983333333333, -850519990.0; +19.4165, -656837220.0; +19.423166666666667, -181051285.0; +19.429833333333335, 576837815.0; +19.4365, 938940385.0; +19.443166666666666, 892624940.0; +19.449833333333334, 496838410.0; +19.4565, 96841385.0; +19.463166666666666, -332629105.0; +19.469833333333334, -475785935.0; +19.476499999999998, -239998215.0; +19.483166666666666, 341050095.0; +19.489833333333333, 829467515.0; +19.4965, 1073676225.0; +19.503166666666665, 1031571275.0; +19.509833333333333, 1216833055.0; +19.5165, 1465252260.0; +19.523166666666665, 1789460375.0; +19.529833333333332, 2176825915.0; +19.5365, 2458929080.0; +19.543166666666668, 2871557590.0; +19.549833333333332, 2703137790.0; +19.5565, 2147352450.0; +19.563166666666667, 1351568895.0; +19.56983333333333, 922098405.0; +19.5765, 837888505.0; +19.583166666666667, 446312470.0; +19.58983333333333, -134735840.0; +19.5965, -454733460.0; +19.603166666666667, -345260590.0; +19.609833333333334, -593679795.0; +19.6165, -1359989885.0; +19.623166666666666, -1983143145.0; +19.629833333333334, -2033669085.0; +19.636499999999998, -1810512850.0; +19.643166666666666, -1856828295.0; +19.649833333333333, -2058932055.0; +19.6565, -2193667895.0; +19.663166666666665, -2067353045.0; +19.669833333333333, -1776828890.0; +19.6765, -1528409685.0; +19.683166666666665, -1250517015.0; +19.689833333333333, -1010518800.0; +19.6965, -614732270.0; +19.703166666666668, -366313065.0; +19.709833333333332, -454733460.0; +19.7165, -905256425.0; +19.723166666666668, -1461041765.0; +19.729833333333332, -1814723345.0; +19.7365, -2063142550.0; +19.743166666666667, -2223141360.0; +19.74983333333333, -2025248095.0; +19.7565, -1519988695.0; +19.763166666666667, -1094728700.0; +19.769833333333334, -694731675.0; +19.7765, -370523560.0; +19.783166666666666, -126314850.0; +19.789833333333334, -298945145.0; +19.796499999999998, -484206925.0; +19.803166666666666, -311576630.0; +19.809833333333334, -290524155.0; +19.8165, -505259400.0; +19.823166666666665, -955782365.0; +19.829833333333333, -1094728700.0; +19.8365, -1023150285.0; +19.843166666666665, -1267358995.0; +19.849833333333333, -1258938005.0; +19.8565, -1271569490.0; +19.863166666666665, -976834840.0; +19.869833333333332, -947361375.0; +19.8765, -964203355.0; +19.883166666666668, -791573060.0; +19.889833333333332, -787362565.0; +19.8965, -728415635.0; +19.903166666666667, -825257020.0; +19.90983333333333, -690521180.0; +19.9165, -905256425.0; +19.923166666666667, -1330516420.0; +19.929833333333335, -1945248690.0; +19.9365, -2202088885.0; +19.943166666666666, -2046300570.0; +19.949833333333334, -1768407900.0; +19.9565, -1566304140.0; +##END= + +$$ === CHEMSPECTRA INTEGRALS AND MULTIPLETS === +##PAGE=254 +##$OBSERVEDINTEGRALS= (X Y Z) +##$OBSERVEDMULTIPLETS= +##$OBSERVEDMULTIPLETSPEAKS= +##END= + +$$ === CHEMSPECTRA PEAK TABLE EDIT === +##TITLE=618becfe-a0ce-4983-ba36-5fdcbb7ed595 +##JCAMP-DX=5.00 +##DATA TYPE=LC/MSPEAKTABLE +##DATA CLASS=PEAKTABLE +##$CSCATEGORY=EDIT_PEAK +##$CSTHRESHOLD=0.05 +##MAXX=19.9565 +##MAXY=7198165410615.0 +##MINX=-0.0435 +##MINY=-162285108785.0 +##PAGE=254 +##NPOINTS=0 +##PEAKTABLE= (XY..XY) +##END= + +$$ === CHEMSPECTRA PEAK TABLE AUTO === +##TITLE=618becfe-a0ce-4983-ba36-5fdcbb7ed595 +##JCAMP-DX=5.00 +##DATA TYPE=LC/MSPEAKTABLE +##DATA CLASS=PEAKTABLE +##$CSCATEGORY=AUTO_PEAK +##$CSTHRESHOLD=0.05 +##MAXX=19.9565 +##MAXY=7198165410615.0 +##MINX=-0.0435 +##MINY=-162285108785.0 +##PAGE=254 +##NPOINTS=1 +##PEAKTABLE= (XY..XY) +2.2698333333333336, 7198165410615.0 +##END= + +$$ === CHEMSPECTRA UVVIS PEAK TABLE === +##TITLE=618becfe-a0ce-4983-ba36-5fdcbb7ed595 +##JCAMP-DX=5.00 +##DATA TYPE=LC/MS +##DATA CLASS=PEAK TABLE +##ORIGIN= +##OWNER= +##XUNITS=RETENTION TIME +##YUNITS=DETECTOR SIGNAL +##$CSCATEGORY=UVVIS PEAK TABLE +##PAGE=280 +##NPOINTS=3001 +##DATA TABLE= (XY..XY), PEAKS +-0.0435, 92630890.0; +-0.03683333333333333, 63157425.0; +-0.03016666666666666, 181051285.0; +-0.023499999999999997, 522101380.0; +-0.01683333333333333, 484206925.0; +-0.010166666666666664, 189472275.0; +-0.003499999999999996, 42104950.0; +0.003166666666666672, 63157425.0; +0.00983333333333334, 197893265.0; +0.016500000000000008, -16841980.0; +0.02316666666666667, -84209900.0; +0.029833333333333337, 181051285.0; +0.036500000000000005, 673679200.0; +0.04316666666666667, 1145254640.0; +0.04983333333333334, 1292621965.0; +0.05650000000000001, 1094728700.0; +0.06316666666666668, 774731080.0; +0.06983333333333334, 517890885.0; +0.07650000000000001, 458943955.0; +0.08316666666666668, 412628510.0; +0.08983333333333333, 509469895.0; +0.09650000000000002, 997887315.0; +0.10316666666666667, 1574725130.0; +0.10983333333333335, 2037879580.0; +0.1165, 2084195025.0; +0.12316666666666669, 2172615420.0; +0.12983333333333336, 2138931460.0; +0.1365, 1882091265.0; +0.14316666666666666, 1423147310.0; +0.14983333333333337, 833678010.0; +0.15650000000000003, 547364350.0; +0.16316666666666668, 416839005.0; +0.16983333333333334, 576837815.0; +0.1765, 694731675.0; +0.1831666666666667, 1048413255.0; +0.18983333333333335, 1532620180.0; +0.1965, 1924196215.0; +0.20316666666666666, 1793670870.0; +0.20983333333333337, 1267358995.0; +0.21650000000000003, 938940385.0; +0.22316666666666668, 639995240.0; +0.2298333333333334, 488417420.0; +0.23650000000000004, 126314850.0; +0.2431666666666667, 29473465.0; +0.24983333333333335, 193682770.0; +0.25650000000000006, 534732865.0; +0.2631666666666667, 749468110.0; +0.26983333333333337, 572627320.0; +0.2765, 341050095.0; +0.2831666666666667, 138946335.0; +0.2898333333333334, -138946335.0; +0.29650000000000004, -383155045.0; +0.3031666666666667, -581048310.0; +0.30983333333333335, -458943955.0; +0.31650000000000006, -151577820.0; +0.3231666666666667, 159998810.0; +0.32983333333333337, 454733460.0; +0.3365, 269471680.0; +0.34316666666666673, 33683960.0; +0.3498333333333334, -391576035.0; +0.35650000000000004, -715784150.0; +0.3631666666666667, -1023150285.0; +0.3698333333333334, -1191570085.0; +0.37650000000000006, -896835435.0; +0.3831666666666667, -656837220.0; +0.38983333333333337, -362102570.0; +0.3965, -92630890.0; +0.40316666666666673, 383155045.0; +0.4098333333333334, 669468705.0; +0.41650000000000004, 442101975.0; +0.4231666666666667, 231577225.0; +0.4298333333333334, 239998215.0; +0.43650000000000005, 214735245.0; +0.4431666666666667, 16841980.0; +0.44983333333333336, -96841385.0; +0.4565, 42104950.0; +0.4631666666666667, 151577820.0; +0.46983333333333344, -33683960.0; +0.47650000000000003, -151577820.0; +0.48316666666666674, -505259400.0; +0.48983333333333334, -1069465730.0; +0.49650000000000005, -1431568300.0; +0.5031666666666668, -1330516420.0; +0.5098333333333334, -652626725.0; +0.5165000000000001, -159998810.0; +0.5231666666666667, 362102570.0; +0.5298333333333334, 871572465.0; +0.5365000000000001, 1221043550.0; +0.5431666666666667, 1199991075.0; +0.5498333333333334, 808415040.0; +0.5565000000000001, 614732270.0; +0.5631666666666667, 719994645.0; +0.5698333333333334, 1044202760.0; +0.5765, 1267358995.0; +0.5831666666666667, 1187359590.0; +0.5898333333333334, 955782365.0; +0.5965, 572627320.0; +0.6031666666666667, 273682175.0; +0.6098333333333333, -46315445.0; +0.6165, -458943955.0; +0.6231666666666668, -707363160.0; +0.6298333333333334, -707363160.0; +0.6365000000000001, -711573655.0; +0.6431666666666668, -930519395.0; +0.6498333333333334, -1191570085.0; +0.6565000000000001, -1069465730.0; +0.6631666666666667, -774731080.0; +0.6698333333333334, -749468110.0; +0.6765000000000001, -858940980.0; +0.6831666666666667, -1103149690.0; +0.6898333333333334, -1199991075.0; +0.6965000000000001, -1267358995.0; +0.7031666666666667, -1195780580.0; +0.7098333333333334, -1229464540.0; +0.7165, -1178938600.0; +0.7231666666666667, -926308900.0; +0.7298333333333334, -661047715.0; +0.7365, -484206925.0; +0.7431666666666668, -648416230.0; +0.7498333333333334, -597890290.0; +0.7565000000000001, -484206925.0; +0.7631666666666668, -282103165.0; +0.7698333333333334, -185261780.0; +0.7765000000000001, -311576630.0; +0.7831666666666668, -412628510.0; +0.7898333333333334, -509469895.0; +0.7965000000000001, -572627320.0; +0.8031666666666667, -783152070.0; +0.8098333333333334, -943150880.0; +0.8165000000000001, -871572465.0; +0.8231666666666667, -543153855.0; +0.8298333333333334, -315787125.0; +0.8365, 0.0; +0.8431666666666667, 362102570.0; +0.8498333333333334, 863151475.0; +0.8565, 1279990480.0; +0.8631666666666667, 1503146715.0; +0.8698333333333335, 1717881960.0; +0.8765000000000001, 1911564730.0; +0.8831666666666668, 1987353640.0; +0.8898333333333334, 1861038790.0; +0.8965000000000001, 1759986910.0; +0.9031666666666668, 2012616610.0; +0.9098333333333334, 2378929675.0; +0.9165000000000001, 2391561160.0; +0.9231666666666667, 2239983340.0; +0.9298333333333334, 2117878985.0; +0.9365000000000001, 1995774630.0; +0.9431666666666667, 1890512255.0; +0.9498333333333334, 1793670870.0; +0.9565, 1941038195.0; +0.9631666666666668, 2008406115.0; +0.9698333333333334, 1941038195.0; +0.9765, 1713671465.0; +0.9831666666666669, 1431568300.0; +0.9898333333333335, 1355779390.0; +0.9965, 1406305330.0; +1.0031666666666665, 1570514635.0; +1.0098333333333334, 1541041170.0; +1.0165, 1755776415.0; +1.0231666666666666, 1890512255.0; +1.0298333333333334, 1768407900.0; +1.0365, 1225254045.0; +1.0431666666666666, 421049500.0; +1.0498333333333334, -214735245.0; +1.0565, -1048413255.0; +1.0631666666666666, -1713671465.0; +1.0698333333333334, -1894722750.0; +1.0765, -943150880.0; +1.0831666666666666, 1212622560.0; +1.0898333333333332, 3995759755.0; +1.0965, 6682055565.0; +1.1031666666666666, 8585199305.0; +1.1098333333333332, 8745198115.0; +1.1165, 4176811040.0; +1.1231666666666666, -8888354945.0; +1.1298333333333332, -31709237845.0; +1.1365, -60155342065.0; +1.1431666666666667, -86955142740.0; +1.1498333333333333, -104117120360.0; +1.1565, -104340276595.0; +1.1631666666666667, -83422537435.0; +1.1698333333333333, -42850207615.0; +1.1764999999999999, 9852558300.0; +1.1831666666666667, 64458467955.0; +1.1898333333333333, 111788642250.0; +1.1965, 145438918290.0; +1.2031666666666667, 164445092720.0; +1.2098333333333333, 171708196595.0; +1.2165, 171337673035.0; +1.2231666666666667, 166668234080.0; +1.2298333333333333, 159371446245.0; +1.2365, 151396768715.0; +1.2431666666666668, 142904200300.0; +1.2498333333333334, 132626382005.0; +1.2565, 116062294675.0; +1.2631666666666665, 88167765300.0; +1.2698333333333334, 47490173105.0; +1.2765, -2378929675.0; +1.2831666666666666, -54062755800.0; +1.2898333333333334, -100087676645.0; +1.2965, -133497954470.0; +1.3031666666666666, -149068364980.0; +1.3098333333333334, -145910493730.0; +1.3165, -128866409970.0; +1.3231666666666666, -105982369645.0; +1.3298333333333334, -84066743170.0; +1.3365, -65810036850.0; +1.3431666666666666, -51582774245.0; +1.3498333333333332, -40867064470.0; +1.3565, -32820808525.0; +1.3631666666666666, -26530328995.0; +1.3698333333333332, -21452472025.0; +1.3765, -17321976430.0; +1.3831666666666667, -13831476075.0; +1.3898333333333333, -10795709180.0; +1.3965, -8711514155.0; +1.4031666666666667, -7376787240.0; +1.4098333333333333, -6387320915.0; +1.4165, -5389433600.0; +1.4231666666666667, -4564176580.0; +1.4298333333333333, -4151548070.0; +1.4365, -3557868275.0; +1.4431666666666667, -2698927295.0; +1.4498333333333333, -1646303545.0; +1.4565, -669468705.0; +1.4631666666666667, 58946930.0; +1.4698333333333333, 905256425.0; +1.4765, 1793670870.0; +1.4831666666666667, 2475771060.0; +1.4898333333333333, 3098924320.0; +1.4965, 3629446690.0; +1.5031666666666668, 4362072820.0; +1.5098333333333334, 4799964300.0; +1.5165, 4842069250.0; +1.5231666666666668, 4795753805.0; +1.5298333333333334, 4639965490.0; +1.5365, 4450493215.0; +1.5431666666666666, 4050496190.0; +1.5498333333333334, 3962075795.0; +1.5565, 4303125890.0; +1.5631666666666666, 4416809255.0; +1.5698333333333334, 4248389455.0; +1.5765, 4004180745.0; +1.5831666666666666, 3970496785.0; +1.5898333333333334, 3688393620.0; +1.5965, 3195765705.0; +1.6031666666666666, 3132608280.0; +1.6098333333333334, 3562078770.0; +1.6165, 3966286290.0; +1.6231666666666666, 4092601140.0; +1.6298333333333332, 4479966680.0; +1.6365, 4989436575.0; +1.6431666666666667, 5212592810.0; +1.6498333333333333, 5069435980.0; +1.6565, 5145224890.0; +1.6631666666666667, 5305223700.0; +1.6698333333333333, 4955752615.0; +1.6765, 4256810445.0; +1.6831666666666667, 3806287480.0; +1.6898333333333333, 3844181935.0; +1.6965000000000001, 3751551045.0; +1.7031666666666667, 3482079365.0; +1.7098333333333333, 3402079960.0; +1.7165, 3427342930.0; +1.7231666666666667, 3612604710.0; +1.7298333333333333, 3532605305.0; +1.7365, 3351554020.0; +1.7431666666666668, 3322080555.0; +1.7498333333333334, 3616815205.0; +1.7565, 4307336385.0; +1.7631666666666668, 4804174795.0; +1.7698333333333334, 5229434790.0; +1.7765, 6054691810.0; +1.7831666666666668, 6926264275.0; +1.7898333333333334, 7418892190.0; +1.7965, 7423102685.0; +1.8031666666666666, 7258893380.0; +1.8098333333333334, 7439944665.0; +1.8165, 7208367440.0; +1.8231666666666666, 6724160515.0; +1.8298333333333334, 6244164085.0; +1.8365, 6341005470.0; +1.8431666666666666, 6673634575.0; +1.8498333333333334, 6269427055.0; +1.8565, 5351539145.0; +1.8631666666666666, 4863121725.0; +1.8698333333333335, 5039962515.0; +1.8765, 5086277960.0; +1.8831666666666667, 4837858755.0; +1.8898333333333333, 4639965490.0; +1.8965, 4884174200.0; +1.9031666666666667, 4766280340.0; +1.9098333333333333, 4252599950.0; +1.9165, 3793655995.0; +1.9231666666666667, 3473658375.0; +1.9298333333333333, 3477868870.0; +1.9365, 3410500950.0; +1.9431666666666667, 3456816395.0; +1.9498333333333333, 3456816395.0; +1.9565, 3271554615.0; +1.9631666666666667, 3275765110.0; +1.9698333333333335, 3448395405.0; +1.9765, 3755761540.0; +1.9831666666666667, 3936812825.0; +1.9898333333333336, 3924181340.0; +1.9965, 3936812825.0; +2.003166666666667, 3734709065.0; +2.009833333333334, 3376816990.0; +2.0165, 3039977390.0; +2.023166666666667, 2947346500.0; +2.0298333333333334, 2968398975.0; +2.0365, 3035766895.0; +2.043166666666667, 3052608875.0; +2.0498333333333334, 2825242145.0; +2.0565, 2408403140.0; +2.063166666666667, 1945248690.0; +2.0698333333333334, 1730513445.0; +2.0765000000000002, 1490515230.0; +2.083166666666667, 1532620180.0; +2.0898333333333334, 1941038195.0; +2.0965000000000003, 2623138385.0; +2.103166666666667, 3082082340.0; +2.1098333333333334, 3372606495.0; +2.1165000000000003, 3705235600.0; +2.123166666666667, 3898918370.0; +2.1298333333333335, 3663130650.0; +2.1365000000000003, 3069450855.0; +2.143166666666667, 2644190860.0; +2.1498333333333335, 2602085910.0; +2.1565000000000003, 2846294620.0; +2.163166666666667, 3136818775.0; +2.1698333333333335, 3629446690.0; +2.1765000000000003, 4164179555.0; +2.183166666666667, 4408388265.0; +2.1898333333333335, 4341020345.0; +2.1965000000000003, 4029443715.0; +2.2031666666666667, 3814708470.0; +2.2098333333333335, 3650499165.0; +2.2165000000000004, 3519973820.0; +2.2231666666666667, 4206284505.0; +2.2298333333333336, 11528335310.0; +2.2365000000000004, 38248136580.0; +2.2431666666666668, 84129900595.0; +2.2498333333333336, 127721155330.0; +2.2565000000000004, 146748382235.0; +2.2631666666666668, 137956868675.0; +2.2698333333333336, 111363382255.0; +2.2765000000000004, 65523723190.0; +2.283166666666667, 3650499165.0; +2.2898333333333336, -52180664535.0; +2.2965000000000004, -80386770540.0; +2.303166666666667, -78854150360.0; +2.3098333333333336, -64542677855.0; +2.3165000000000004, -49136476650.0; +2.323166666666667, -35877627895.0; +2.3298333333333336, -25587178115.0; +2.3365000000000005, -17797762365.0; +2.343166666666667, -12100962630.0; +2.3498333333333337, -7877836145.0; +2.3565000000000005, -4576808065.0; +2.363166666666667, -1999985125.0; +2.3698333333333337, 715784150.0; +2.3765000000000005, 4054706685.0; +2.383166666666667, 8063097925.0; +2.3898333333333337, 12698852920.0; +2.3965, 17667237020.0; +2.403166666666667, 22985092205.0; +2.4098333333333337, 27945055315.0; +2.4165, 32096603385.0; +2.423166666666667, 35153422755.0; +2.4298333333333337, 37368143125.0; +2.4365, 38707080535.0; +2.443166666666667, 38976552215.0; +2.4498333333333338, 38100769255.0; +2.4565, 36319729870.0; +2.463166666666667, 34020799600.0; +2.4698333333333338, 31271346365.0; +2.4765, 28551366595.0; +2.483166666666667, 25806123855.0; +2.489833333333334, 23431404675.0; +2.4965, 21187210840.0; +2.503166666666667, 19233541160.0; +2.509833333333334, 17932498205.0; +2.5165, 17355660390.0; +2.523166666666667, 17970392660.0; +2.529833333333334, 19612485710.0; +2.5365, 22387201915.0; +2.543166666666667, 25755597915.0; +2.549833333333334, 29102941440.0; +2.5565, 32079761405.0; +2.563166666666667, 34488164545.0; +2.5698333333333334, 36307098385.0; +2.5765000000000002, 37498668470.0; +2.583166666666667, 38547081725.0; +2.5898333333333334, 39827072205.0; +2.5965000000000003, 41258640505.0; +2.603166666666667, 42589156925.0; +2.6098333333333334, 43667043645.0; +2.6165000000000003, 44770193335.0; +2.623166666666667, 45477556495.0; +2.6298333333333335, 45380715110.0; +2.6365000000000003, 44403880270.0; +2.643166666666667, 43052311375.0; +2.6498333333333335, 41717584460.0; +2.6565000000000003, 40180753785.0; +2.663166666666667, 38269189055.0; +2.6698333333333335, 36290256405.0; +2.6765000000000003, 34665005335.0; +2.683166666666667, 33372383370.0; +2.6898333333333335, 32239760215.0; +2.6965000000000003, 31043979635.0; +2.703166666666667, 30197670140.0; +2.7098333333333335, 29616621830.0; +2.7165000000000004, 29048205005.0; +2.723166666666667, 28361894320.0; +2.7298333333333336, 27801898485.0; +2.7365000000000004, 27734530565.0; +2.7431666666666668, 27827161455.0; +2.7498333333333336, 27970318285.0; +2.7565000000000004, 28231368975.0; +2.7631666666666668, 28766101840.0; +2.7698333333333336, 29128204410.0; +2.7765000000000004, 29465044010.0; +2.783166666666667, 30193459645.0; +2.7898333333333336, 31313451315.0; +2.7965000000000004, 32462916450.0; +2.803166666666667, 33296594460.0; +2.8098333333333336, 33995536630.0; +2.8165000000000004, 34517638010.0; +2.823166666666667, 34627110880.0; +2.8298333333333336, 34357639200.0; +2.8365000000000005, 33730275445.0; +2.843166666666667, 32749230110.0; +2.8498333333333337, 31578712500.0; +2.8565000000000005, 30193459645.0; +2.863166666666667, 28454525210.0; +2.8698333333333337, 26601907410.0; +2.8765000000000005, 24816657530.0; +2.883166666666667, 23578772000.0; +2.8898333333333337, 22618779140.0; +2.8965000000000005, 21578786875.0; +2.903166666666667, 20867213220.0; +2.9098333333333337, 20079850655.0; +2.9165000000000005, 19637748680.0; +2.923166666666667, 18980911460.0; +2.9298333333333337, 18357758200.0; +2.9365, 18075655035.0; +2.943166666666667, 17604079595.0; +2.9498333333333338, 17309344945.0; +2.9565, 17056715245.0; +2.963166666666667, 17275660985.0; +2.9698333333333338, 17557764150.0; +2.9765, 17751446920.0; +2.983166666666667, 18147233450.0; +2.989833333333334, 18543019980.0; +2.9965, 18686176810.0; +3.003166666666667, 18475652060.0; +3.009833333333334, 18319863745.0; +3.0165, 18189338400.0; +3.023166666666667, 17865130285.0; +3.029833333333334, 17764078405.0; +3.0365, 17776709890.0; +3.043166666666667, 17978813650.0; +3.049833333333334, 17966182165.0; +3.0565, 18084076025.0; +3.063166666666667, 18328284735.0; +3.069833333333334, 18484073050.0; +3.0765000000000002, 18332495230.0; +3.083166666666667, 17780920385.0; +3.089833333333334, 16745138615.0; +3.0965000000000003, 15166202990.0; +3.103166666666667, 13199901825.0; +3.1098333333333334, 11056759870.0; +3.1165000000000003, 9317825435.0; +3.123166666666667, 7957835550.0; +3.1298333333333335, 7204156945.0; +3.1365000000000003, 6572582695.0; +3.143166666666667, 6159954185.0; +3.1498333333333335, 5637852805.0; +3.1565000000000003, 5073646475.0; +3.163166666666667, 4492598165.0; +3.1698333333333335, 4058917180.0; +3.1765000000000003, 3932602330.0; +3.183166666666667, 3882076390.0; +3.1898333333333335, 3987338765.0; +3.1965000000000003, 4185232030.0; +3.203166666666667, 4303125890.0; +3.2098333333333335, 4290494405.0; +3.2165000000000004, 4202074010.0; +3.223166666666667, 4122074605.0; +3.2298333333333336, 3882076390.0; +3.2365000000000004, 3237870655.0; +3.243166666666667, 2425245120.0; +3.2498333333333336, 1494725725.0; +3.2565000000000004, 736836625.0; +3.263166666666667, 223156235.0; +3.2698333333333336, -202103760.0; +3.2765000000000004, -652626725.0; +3.283166666666667, -1162096620.0; +3.2898333333333336, -1612619585.0; +3.2965000000000004, -2315772250.0; +3.303166666666667, -3216818180.0; +3.3098333333333336, -3873655400.0; +3.3165000000000004, -4151548070.0; +3.323166666666667, -4189442525.0; +3.3298333333333336, -4277862920.0; +3.3365000000000005, -4286283910.0; +3.343166666666667, -4332599355.0; +3.3498333333333337, -4543124105.0; +3.3565000000000005, -4905226675.0; +3.363166666666667, -5427328055.0; +3.3698333333333337, -6029428840.0; +3.3765000000000005, -6631529625.0; +3.383166666666667, -7077842095.0; +3.3898333333333337, -7507312585.0; +3.3965000000000005, -7890467630.0; +3.403166666666667, -8117834360.0; +3.4098333333333337, -8130465845.0; +3.4165000000000005, -8033624460.0; +3.423166666666667, -7966256540.0; +3.4298333333333337, -7835731195.0; +3.4365000000000006, -7797836740.0; +3.443166666666667, -7789415750.0; +3.4498333333333338, -8138886835.0; +3.4565000000000006, -8837829005.0; +3.463166666666667, -9654665035.0; +3.4698333333333338, -10256765820.0; +3.4765, -10652552350.0; +3.483166666666667, -11195706205.0; +3.489833333333334, -11460967390.0; +3.4965, -11439914915.0; +3.503166666666667, -11334652540.0; +3.509833333333334, -11431493925.0; +3.5165, -11642018675.0; +3.523166666666667, -11570440260.0; +3.529833333333334, -11460967390.0; +3.5365, -11199916700.0; +3.543166666666667, -11056759870.0; +3.549833333333334, -11229390165.0; +3.5565, -11629387190.0; +3.563166666666667, -12185172530.0; +3.569833333333334, -12618853515.0; +3.5765000000000002, -13094639450.0; +3.583166666666667, -13204112320.0; +3.589833333333334, -13073586975.0; +3.5965000000000003, -12850430740.0; +3.603166666666667, -13052534500.0; +3.609833333333334, -13688319245.0; +3.6165000000000003, -14277788545.0; +3.623166666666667, -14618838640.0; +3.629833333333334, -14551470720.0; +3.6365000000000003, -14256736070.0; +3.643166666666667, -13747266175.0; +3.6498333333333335, -13191480835.0; +3.6565000000000003, -12922009155.0; +3.663166666666667, -12980956085.0; +3.6698333333333335, -13267269745.0; +3.6765000000000003, -13679898255.0; +3.683166666666667, -13991474885.0; +3.6898333333333335, -13869370530.0; +3.6965000000000003, -13540951920.0; +3.703166666666667, -13549372910.0; +3.7098333333333335, -13970422410.0; +3.7165000000000004, -14286209535.0; +3.723166666666667, -14315683000.0; +3.7298333333333336, -14614628145.0; +3.7365000000000004, -15119887545.0; +3.743166666666667, -15452516650.0; +3.7498333333333336, -15553568530.0; +3.7565000000000004, -15831461200.0; +3.763166666666667, -16374615055.0; +3.7698333333333336, -16521982380.0; +3.7765000000000004, -16441982975.0; +3.7831666666666672, -16117774860.0; +3.7898333333333336, -15898829120.0; +3.7965000000000004, -15650409915.0; +3.8031666666666673, -15503042590.0; +3.8098333333333336, -15814619220.0; +3.8165000000000004, -16084090900.0; +3.823166666666667, -16361983570.0; +3.8298333333333336, -16538824360.0; +3.8365000000000005, -16652507725.0; +3.843166666666667, -16437772480.0; +3.8498333333333337, -15823040210.0; +3.8565000000000005, -15566200015.0; +3.863166666666667, -15675672885.0; +3.8698333333333337, -15966197040.0; +3.8765000000000005, -16164090305.0; +3.883166666666667, -16732507130.0; +3.8898333333333337, -17477764745.0; +3.8965000000000005, -17890393255.0; +3.903166666666667, -18004076620.0; +3.9098333333333337, -17751446920.0; +3.9165000000000005, -17355660390.0; +3.923166666666667, -16505140400.0; +3.9298333333333337, -16084090900.0; +3.9365000000000006, -16155669315.0; +3.943166666666667, -16463035450.0; +3.9498333333333338, -16677770695.0; +3.9565, -16841980000.0; +3.963166666666667, -17208293065.0; +3.9698333333333338, -17229345540.0; +3.9765000000000006, -17014610295.0; +3.9831666666666674, -16761980595.0; +3.9898333333333333, -16917768910.0; +3.9965, -17494606725.0; +4.003166666666667, -18050392065.0; +4.009833333333334, -18408284140.0; +4.016500000000001, -18399863150.0; +4.0231666666666674, -18210390875.0; +4.029833333333333, -17688289495.0; +4.0365, -16892505940.0; +4.043166666666667, -16008301990.0; +4.049833333333334, -15313570315.0; +4.056500000000001, -15010414675.0; +4.0631666666666675, -15149361010.0; +4.069833333333333, -15469358630.0; +4.0765, -15936723575.0; +4.083166666666667, -16538824360.0; +4.089833333333334, -17343028905.0; +4.096500000000001, -18092497015.0; +4.103166666666667, -18340916220.0; +4.1098333333333334, -18547230475.0; +4.1165, -18812491660.0; +4.123166666666667, -19111436805.0; +4.129833333333334, -19220909675.0; +4.136500000000001, -18938806510.0; +4.143166666666667, -18639861365.0; +4.1498333333333335, -18357758200.0; +4.1565, -18088286520.0; +4.163166666666667, -17759867910.0; +4.169833333333334, -17313555440.0; +4.176500000000001, -17145135640.0; +4.183166666666667, -17204082570.0; +4.1898333333333335, -17410396825.0; +4.1965, -17591448110.0; +4.203166666666667, -17772499395.0; +4.209833333333334, -17983024145.0; +4.216500000000001, -18126180975.0; +4.223166666666667, -18117759985.0; +4.229833333333334, -17743025930.0; +4.2365, -17254608510.0; +4.243166666666667, -16972505345.0; +4.249833333333334, -16976715840.0; +4.256500000000001, -17157767125.0; +4.263166666666667, -17473554250.0; +4.269833333333334, -17945129690.0; +4.2765, -18391442160.0; +4.283166666666667, -18841965125.0; +4.289833333333334, -19073542350.0; +4.2965, -19199857200.0; +4.303166666666667, -19326172050.0; +4.309833333333334, -19490381355.0; +4.3165000000000004, -19637748680.0; +4.323166666666667, -19351435020.0; +4.329833333333334, -19355645515.0; +4.3365, -19637748680.0; +4.343166666666667, -20012482735.0; +4.349833333333334, -20159850060.0; +4.3565000000000005, -20214586495.0; +4.363166666666667, -20399848275.0; +4.369833333333334, -20231428475.0; +4.3765, -19776695015.0; +4.383166666666667, -19161962745.0; +4.389833333333334, -18921964530.0; +4.3965000000000005, -18892491065.0; +4.403166666666667, -19124068290.0; +4.409833333333334, -19418802940.0; +4.4165, -19439855415.0; +4.423166666666667, -19557749275.0; +4.429833333333334, -19940904320.0; +4.4365000000000006, -20614583520.0; +4.443166666666667, -20799845300.0; +4.449833333333333, -20660898965.0; +4.4565, -20808266290.0; +4.463166666666667, -20896686685.0; +4.469833333333334, -20749319360.0; +4.476500000000001, -20041956200.0; +4.483166666666667, -19650380165.0; +4.489833333333333, -19545117790.0; +4.4965, -19705116600.0; +4.503166666666667, -19987219765.0; +4.509833333333334, -20088271645.0; +4.516500000000001, -20420900750.0; +4.5231666666666674, -20846160745.0; +4.529833333333333, -21393525095.0; +4.5365, -21759838160.0; +4.543166666666667, -21684049250.0; +4.549833333333334, -21410367075.0; +4.556500000000001, -21044054010.0; +4.5631666666666675, -20896686685.0; +4.569833333333333, -20921949655.0; +4.5765, -20715635400.0; +4.583166666666667, -20804055795.0; +4.589833333333334, -20955633615.0; +4.596500000000001, -21178789850.0; +4.6031666666666675, -21149316385.0; +4.6098333333333334, -21018791040.0; +4.6165, -21048264505.0; +4.623166666666667, -20985107080.0; +4.629833333333334, -21170368860.0; +4.636500000000001, -21477734995.0; +4.643166666666667, -21726154200.0; +4.6498333333333335, -21978783900.0; +4.6565, -22273518550.0; +4.663166666666667, -22505095775.0; +4.669833333333334, -22345096965.0; +4.676500000000001, -22100888255.0; +4.683166666666667, -21860890040.0; +4.6898333333333335, -21561944895.0; +4.6965, -21284052225.0; +4.703166666666667, -20985107080.0; +4.709833333333334, -20732477380.0; +4.716500000000001, -20176692040.0; +4.723166666666667, -19873536400.0; +4.729833333333334, -19747221550.0; +4.7365, -19587222740.0; +4.743166666666667, -19431434425.0; +4.749833333333334, -19540907295.0; +4.756500000000001, -20176692040.0; +4.763166666666667, -20871423715.0; +4.769833333333334, -21422998560.0; +4.7765, -21717733210.0; +4.783166666666667, -21945099940.0; +4.789833333333334, -22193519145.0; +4.796500000000001, -22425096370.0; +4.803166666666667, -22345096965.0; +4.809833333333334, -21982994395.0; +4.8165000000000004, -21780890635.0; +4.823166666666667, -21995625880.0; +4.829833333333334, -22020888850.0; +4.8365, -21376683115.0; +4.843166666666667, -20374585305.0; +4.849833333333334, -19818799965.0; +4.8565000000000005, -19671432640.0; +4.863166666666667, -19469328880.0; +4.869833333333334, -19435644920.0; +4.8765, -19848273430.0; +4.883166666666667, -20808266290.0; +4.889833333333334, -21490366480.0; +4.8965000000000005, -21582997370.0; +4.903166666666667, -21578786875.0; +4.909833333333334, -21570365885.0; +4.9165, -21747206675.0; +4.923166666666667, -21734575190.0; +4.929833333333334, -21641944300.0; +4.9365000000000006, -21355630640.0; +4.943166666666667, -20660898965.0; +4.949833333333334, -19911430855.0; +4.9565, -19473539375.0; +4.963166666666667, -19279856605.0; +4.969833333333334, -19267225120.0; +4.976500000000001, -19566170265.0; +4.983166666666667, -19978798775.0; +4.989833333333333, -20391427285.0; +4.9965, -20429321740.0; +5.003166666666667, -20244059960.0; +5.009833333333334, -19860904915.0; +5.016500000000001, -19456697395.0; +5.0231666666666674, -19524065315.0; +5.029833333333333, -19974588280.0; +5.0365, -20383006295.0; +5.043166666666667, -20547215600.0; +5.049833333333334, -20513531640.0; +5.056500000000001, -20551426095.0; +5.0631666666666675, -20416690255.0; +5.069833333333333, -19953535805.0; +5.0765, -19343014030.0; +5.083166666666667, -19031437400.0; +5.089833333333334, -19119857795.0; +5.096500000000001, -19481960365.0; +5.1031666666666675, -19789326500.0; +5.1098333333333334, -19970377785.0; +5.1165, -20008272240.0; +5.123166666666667, -19999851250.0; +5.129833333333334, -20029324715.0; +5.136500000000001, -19978798775.0; +5.1431666666666676, -19907220360.0; +5.1498333333333335, -19557749275.0; +5.1565, -19157752250.0; +5.163166666666667, -18627229880.0; +5.169833333333334, -18134601965.0; +5.176500000000001, -17380923360.0; +5.183166666666667, -16753559605.0; +5.1898333333333335, -16850400990.0; +5.1965, -17204082570.0; +5.203166666666667, -17334607915.0; +5.209833333333334, -17237766530.0; +5.216500000000001, -17498817220.0; +5.223166666666667, -18008287115.0; +5.229833333333334, -17983024145.0; +5.2365, -18084076025.0; +5.243166666666667, -18450389090.0; +5.249833333333334, -18905122550.0; +5.256500000000001, -18997753440.0; +5.263166666666667, -18715650275.0; +5.269833333333334, -18631440375.0; +5.2765, -18606177405.0; +5.283166666666667, -18766176215.0; +5.289833333333334, -18972490470.0; +5.296500000000001, -18976700965.0; +5.303166666666667, -18905122550.0; +5.309833333333334, -18711439780.0; +5.3165000000000004, -18530388495.0; +5.323166666666667, -18244074835.0; +5.329833333333334, -17991445135.0; +5.336500000000001, -18050392065.0; +5.343166666666667, -17928287710.0; +5.349833333333334, -18058813055.0; +5.3565000000000005, -18134601965.0; +5.363166666666667, -18391442160.0; +5.369833333333334, -18218811865.0; +5.3765, -18113549490.0; +5.383166666666667, -18391442160.0; +5.389833333333334, -18623019385.0; +5.3965000000000005, -18673545325.0; +5.403166666666667, -18576703940.0; +5.409833333333334, -18770386710.0; +5.4165, -18724071265.0; +5.423166666666667, -18387231665.0; +5.429833333333334, -17801972860.0; +5.4365000000000006, -17254608510.0; +5.443166666666667, -16900926930.0; +5.449833333333334, -16900926930.0; +5.4565, -17119872670.0; +5.463166666666667, -17389344350.0; +5.469833333333334, -17970392660.0; +5.476500000000001, -18854596610.0; +5.483166666666667, -19675643135.0; +5.489833333333334, -20231428475.0; +5.4965, -20673530450.0; +5.503166666666667, -21309315195.0; +5.509833333333334, -21629312815.0; +5.516500000000001, -21667207270.0; +5.5231666666666674, -21359841135.0; +5.529833333333333, -20879844705.0; +5.5365, -20269322930.0; +5.543166666666667, -19684064125.0; +5.549833333333334, -19376697990.0; +5.556500000000001, -19174594230.0; +5.5631666666666675, -19052489875.0; +5.569833333333333, -19187225715.0; +5.5765, -19734590065.0; +5.583166666666667, -20387216790.0; +5.589833333333334, -20690372430.0; +5.596500000000001, -20576689065.0; +5.6031666666666675, -20454584710.0; +5.6098333333333334, -20256691445.0; +5.6165, -19919851845.0; +5.623166666666667, -19124068290.0; +5.629833333333334, -18383021170.0; +5.636500000000001, -17970392660.0; +5.6431666666666676, -17894603750.0; +5.6498333333333335, -17873551275.0; +5.6565, -17469343755.0; +5.663166666666667, -17376712865.0; +5.669833333333334, -17536711675.0; +5.676500000000001, -17823025335.0; +5.683166666666668, -17860919790.0; +5.6898333333333335, -17608290090.0; +5.6965, -17671447515.0; +5.703166666666667, -17578816625.0; +5.709833333333334, -17448291280.0; +5.716500000000001, -17119872670.0; +5.723166666666667, -16719875645.0; +5.729833333333334, -16374615055.0; +5.7365, -15650409915.0; +5.743166666666667, -14825152895.0; +5.749833333333334, -13730424195.0; +5.756500000000001, -12728326385.0; +5.763166666666667, -11797806990.0; +5.769833333333334, -10993602445.0; +5.7765, -10648341855.0; +5.783166666666667, -10917813535.0; +5.789833333333334, -11886227385.0; +5.796500000000001, -12875693710.0; +5.803166666666667, -13431479050.0; +5.809833333333334, -13667266770.0; +5.8165000000000004, -14020948350.0; +5.823166666666667, -14412524385.0; +5.829833333333334, -14463050325.0; +5.836500000000001, -14277788545.0; +5.843166666666667, -14488313295.0; +5.849833333333334, -15208307940.0; +5.8565000000000005, -15987249515.0; +5.863166666666667, -16315668125.0; +5.869833333333334, -16319878620.0; +5.876500000000001, -16180932285.0; +5.883166666666667, -15873566150.0; +5.889833333333334, -15414622195.0; +5.8965000000000005, -14778837450.0; +5.903166666666667, -14260946565.0; +5.909833333333334, -14004106370.0; +5.9165, -14092526765.0; +5.923166666666667, -14420945375.0; +5.929833333333334, -14745153490.0; +5.9365000000000006, -15056730120.0; +5.943166666666667, -15267254870.0; +5.949833333333334, -15372517245.0; +5.9565, -15469358630.0; +5.963166666666667, -15713567340.0; +5.969833333333334, -16008301990.0; +5.976500000000001, -16227247730.0; +5.983166666666667, -16298826145.0; +5.989833333333334, -16033564960.0; +5.9965, -15439885165.0; +6.003166666666667, -14551470720.0; +6.009833333333334, -13696740235.0; +6.016500000000001, -12913588165.0; +6.0231666666666674, -12374644805.0; +6.029833333333334, -11945174315.0; +6.0365, -11629387190.0; +6.043166666666667, -11309389570.0; +6.049833333333334, -11098864820.0; +6.056500000000001, -10972549970.0; +6.0631666666666675, -10930445020.0; +6.069833333333333, -11237811155.0; +6.0765, -11831490950.0; +6.083166666666667, -12623064010.0; +6.089833333333334, -13271480240.0; +6.096500000000001, -13574635880.0; +6.1031666666666675, -13663056275.0; +6.1098333333333334, -13536741425.0; +6.1165, -13566214890.0; +6.123166666666667, -13557793900.0; +6.129833333333334, -13317795685.0; +6.136500000000001, -13111481430.0; +6.1431666666666676, -13119902420.0; +6.1498333333333335, -13431479050.0; +6.1565, -13397795090.0; +6.163166666666667, -13065165985.0; +6.169833333333334, -12879904205.0; +6.176500000000001, -13103060440.0; +6.183166666666668, -13237796280.0; +6.1898333333333335, -13225164795.0; +6.1965, -13359900635.0; +6.203166666666667, -13793581620.0; +6.209833333333334, -14117789735.0; +6.216500000000001, -13962001420.0; +6.223166666666668, -13574635880.0; +6.229833333333334, -13039903015.0; +6.2365, -12639905990.0; +6.243166666666667, -12218856490.0; +6.249833333333334, -11957805800.0; +6.256500000000001, -11945174315.0; +6.263166666666667, -12248329955.0; +6.269833333333334, -12778852325.0; +6.2765, -12968324600.0; +6.283166666666667, -12943061630.0; +6.289833333333334, -12778852325.0; +6.296500000000001, -12825167770.0; +6.303166666666667, -12820957275.0; +6.309833333333334, -12500959655.0; +6.3165000000000004, -12105173125.0; +6.323166666666667, -11860964415.0; +6.329833333333334, -11995700255.0; +6.336500000000001, -12269382430.0; +6.343166666666667, -12484117675.0; +6.349833333333334, -12799904800.0; +6.3565000000000005, -13023061035.0; +6.363166666666667, -13435689545.0; +6.369833333333334, -13684108750.0; +6.376500000000001, -13802002610.0; +6.383166666666667, -13764108155.0; +6.389833333333334, -13738845185.0; +6.3965000000000005, -13953580430.0; +6.403166666666667, -13978843400.0; +6.409833333333334, -13717792710.0; +6.416500000000001, -13124112915.0; +6.423166666666667, -12484117675.0; +6.429833333333334, -11936753325.0; +6.4365000000000006, -11633597685.0; +6.443166666666667, -11654650160.0; +6.449833333333334, -12016752730.0; +6.4565, -12425170745.0; +6.463166666666667, -12858851730.0; +6.469833333333334, -13435689545.0; +6.476500000000001, -13865160035.0; +6.483166666666667, -14105158250.0; +6.489833333333334, -13911475480.0; +6.4965, -13780950135.0; +6.503166666666667, -13949369935.0; +6.509833333333334, -14105158250.0; +6.516500000000001, -13991474885.0; +6.5231666666666674, -13406216080.0; +6.529833333333334, -13031482025.0; +6.5365, -12804115295.0; +6.543166666666667, -12740957870.0; +6.549833333333334, -12690431930.0; +6.556500000000001, -13237796280.0; +6.5631666666666675, -14172526170.0; +6.569833333333334, -15014625170.0; +6.5765, -15490411105.0; +6.583166666666667, -15709356845.0; +6.589833333333334, -15734619815.0; +6.596500000000001, -15309359820.0; +6.6031666666666675, -14736732500.0; +6.6098333333333334, -14471471315.0; +6.6165, -14753574480.0; +6.623166666666667, -15174623980.0; +6.629833333333334, -15536726550.0; +6.636500000000001, -15545147540.0; +6.6431666666666676, -15511463580.0; +6.6498333333333335, -15532516055.0; +6.6565, -15229360415.0; +6.663166666666667, -14534628740.0; +6.669833333333334, -13789371125.0; +6.676500000000001, -13789371125.0; +6.683166666666668, -14277788545.0; +6.6898333333333335, -14660943590.0; +6.6965, -14863047350.0; +6.703166666666667, -15267254870.0; +6.709833333333334, -15936723575.0; +6.716500000000001, -16656718220.0; +6.723166666666668, -16787243565.0; +6.729833333333334, -16601981785.0; +6.7365, -16370404560.0; +6.743166666666667, -16151458820.0; +6.749833333333334, -15743040805.0; +6.756500000000001, -14884099825.0; +6.763166666666668, -14328314485.0; +6.769833333333334, -14012527360.0; +6.7765, -14042000825.0; +6.783166666666667, -13999895875.0; +6.789833333333334, -13983053895.0; +6.796500000000001, -13966211915.0; +6.803166666666667, -13974632905.0; +6.809833333333334, -13999895875.0; +6.8165000000000004, -13898843995.0; +6.823166666666667, -13919896470.0; +6.829833333333334, -13940948945.0; +6.836500000000001, -14273578050.0; +6.843166666666667, -14568312700.0; +6.849833333333334, -14719890520.0; +6.8565000000000005, -14530418245.0; +6.863166666666667, -14054632310.0; +6.869833333333334, -13696740235.0; +6.876500000000001, -13524109940.0; +6.883166666666667, -13494636475.0; +6.889833333333334, -13599898850.0; +6.8965000000000005, -14122000230.0; +6.903166666666667, -15178834475.0; +6.909833333333334, -16252510700.0; +6.916500000000001, -16888295445.0; +6.923166666666667, -16930400395.0; +6.929833333333334, -16677770695.0; +6.9365000000000006, -16008301990.0; +6.943166666666667, -15056730120.0; +6.949833333333334, -14012527360.0; +6.956500000000001, -13140954895.0; +6.963166666666667, -12766220840.0; +6.969833333333334, -12644116485.0; +6.976500000000001, -12858851730.0; +6.983166666666667, -13128323410.0; +6.989833333333334, -13528320435.0; +6.9965, -13730424195.0; +7.003166666666667, -13743055680.0; +7.009833333333334, -13730424195.0; +7.016500000000001, -13962001420.0; +7.0231666666666674, -14088316270.0; +7.029833333333334, -14050421815.0; +7.0365, -14012527360.0; +7.043166666666667, -14071474290.0; +7.049833333333334, -14206210130.0; +7.056500000000001, -13974632905.0; +7.0631666666666675, -13616740830.0; +7.069833333333334, -13212533310.0; +7.0765, -12997798065.0; +7.083166666666667, -12871483215.0; +7.089833333333334, -12728326385.0; +7.096500000000001, -12437802230.0; +7.1031666666666675, -12349381835.0; +7.109833333333334, -12311487380.0; +7.1165, -12239908965.0; +7.123166666666667, -12008331740.0; +7.129833333333334, -12033594710.0; +7.136500000000001, -12770431335.0; +7.1431666666666676, -13402005585.0; +7.1498333333333335, -13604109345.0; +7.1565, -13279901230.0; +7.163166666666667, -13469373505.0; +7.169833333333334, -13709371720.0; +7.176500000000001, -13616740830.0; +7.183166666666668, -13414637070.0; +7.1898333333333335, -13776739640.0; +7.1965, -14749363985.0; +7.203166666666667, -15174623980.0; +7.209833333333334, -14959888735.0; +7.216500000000001, -14500944780.0; +7.223166666666668, -14159894685.0; +7.229833333333334, -13692529740.0; +7.2365, -12930430145.0; +7.243166666666667, -12029384215.0; +7.249833333333334, -11444125410.0; +7.256500000000001, -11448335905.0; +7.263166666666668, -11848332930.0; +7.269833333333334, -12399907775.0; +7.2765, -12682010940.0; +7.283166666666667, -13069376480.0; +7.289833333333334, -13562004395.0; +7.296500000000001, -13764108155.0; +7.303166666666668, -13486215485.0; +7.309833333333334, -12783062820.0; +7.3165000000000004, -12416749755.0; +7.323166666666667, -12496749160.0; +7.329833333333334, -12614643020.0; +7.336500000000001, -12618853515.0; +7.343166666666667, -12559906585.0; +7.349833333333334, -12804115295.0; +7.3565000000000005, -13225164795.0; +7.363166666666667, -13448321030.0; +7.369833333333334, -13402005585.0; +7.376500000000001, -13157796875.0; +7.383166666666667, -13166217865.0; +7.389833333333334, -13343058655.0; +7.3965000000000005, -13490425980.0; +7.403166666666667, -13284111725.0; +7.409833333333334, -13006219055.0; +7.416500000000001, -12964114105.0; +7.423166666666667, -13090428955.0; +7.429833333333334, -13048324005.0; +7.4365000000000006, -12871483215.0; +7.443166666666667, -12892535690.0; +7.449833333333334, -13187270340.0; +7.456500000000001, -13220954300.0; +7.463166666666667, -12770431335.0; +7.469833333333334, -12180962035.0; +7.476500000000001, -11486230360.0; +7.483166666666667, -10833603635.0; +7.489833333333334, -10130450970.0; +7.496500000000001, -9936768200.0; +7.503166666666667, -10071504040.0; +7.509833333333334, -10475711560.0; +7.516500000000001, -11002023435.0; +7.5231666666666674, -11372546995.0; +7.529833333333334, -11658860655.0; +7.5365, -11675702635.0; +7.543166666666667, -11755702040.0; +7.549833333333334, -11823069960.0; +7.556500000000001, -12117804610.0; +7.5631666666666675, -12370434310.0; +7.569833333333334, -12538854110.0; +7.5765, -12332539855.0; +7.583166666666667, -12084120650.0; +7.589833333333334, -11616755705.0; +7.596500000000001, -11056759870.0; +7.6031666666666675, -10783077695.0; +7.609833333333334, -10783077695.0; +7.6165, -11098864820.0; +7.623166666666667, -11313600065.0; +7.629833333333334, -11709386595.0; +7.636500000000001, -11856753920.0; +7.6431666666666676, -11793596495.0; +7.649833333333334, -11448335905.0; +7.6565, -11170443235.0; +7.663166666666667, -10884129575.0; +7.669833333333334, -10585184430.0; +7.676500000000001, -10353607205.0; +7.683166666666668, -10147292950.0; +7.6898333333333335, -10016767605.0; +7.6965, -9856768795.0; +7.703166666666667, -9671507015.0; +7.709833333333334, -9355719890.0; +7.716500000000001, -9322035930.0; +7.723166666666668, -9439929790.0; +7.729833333333334, -9414666820.0; +7.7365, -8968354350.0; +7.743166666666667, -8307306635.0; +7.749833333333334, -7818889215.0; +7.756500000000001, -7187314965.0; +7.763166666666668, -6757844475.0; +7.769833333333334, -6648371605.0; +7.7765, -6745212990.0; +7.783166666666667, -6690476555.0; +7.789833333333334, -6442057350.0; +7.796500000000001, -6336794975.0; +7.803166666666668, -6151533195.0; +7.809833333333334, -5789430625.0; +7.8165000000000004, -5642063300.0; +7.823166666666667, -5970481910.0; +7.829833333333334, -6105217750.0; +7.836500000000001, -5595747855.0; +7.843166666666668, -4564176580.0; +7.849833333333334, -3873655400.0; +7.8565000000000005, -3541026295.0; +7.863166666666667, -3115766300.0; +7.869833333333334, -2863136600.0; +7.876500000000001, -2854715610.0; +7.883166666666667, -3191555210.0; +7.889833333333334, -3309449070.0; +7.8965000000000005, -3237870655.0; +7.903166666666667, -3351554020.0; +7.909833333333334, -3604183720.0; +7.916500000000001, -3856813420.0; +7.923166666666667, -4159969060.0; +7.929833333333334, -4564176580.0; +7.9365000000000006, -5056804495.0; +7.943166666666667, -5402065085.0; +7.949833333333334, -5549432410.0; +7.9565, -5747325675.0; +7.963166666666668, -5772588645.0; +7.969833333333334, -5898903495.0; +7.9765000000000015, -5701010230.0; +7.983166666666667, -5246276770.0; +7.989833333333333, -4762069845.0; +7.996500000000001, -4488387670.0; +8.003166666666667, -4804174795.0; +8.009833333333335, -4728385885.0; +8.0165, -4513650640.0; +8.023166666666667, -4391546285.0; +8.029833333333334, -4404177770.0; +8.0365, -4429440740.0; +8.043166666666668, -3764182530.0; +8.049833333333334, -3309449070.0; +8.0565, -3149450260.0; +8.063166666666667, -3338922535.0; +8.069833333333333, -3587341740.0; +8.076500000000001, -3747340550.0; +8.083166666666667, -4193653020.0; +8.089833333333335, -4589439550.0; +8.0965, -4833648260.0; +8.103166666666667, -4846279745.0; +8.109833333333334, -5035752020.0; +8.1165, -5208382315.0; +8.123166666666668, -5355749640.0; +8.129833333333334, -5831535575.0; +8.1365, -6635740120.0; +8.143166666666668, -7418892190.0; +8.149833333333333, -7856783670.0; +8.156500000000001, -8176781290.0; +8.163166666666667, -8509410395.0; +8.169833333333335, -8256780695.0; +8.1765, -7696784860.0; +8.183166666666667, -7140999520.0; +8.189833333333334, -6656792595.0; +8.1965, -6395741905.0; +8.203166666666668, -6488372795.0; +8.209833333333334, -7452576150.0; +8.2165, -8298885645.0; +8.223166666666668, -8580988810.0; +8.229833333333334, -8538883860.0; +8.236500000000001, -8530462870.0; +8.243166666666667, -8357832575.0; +8.249833333333333, -7490470605.0; +8.2565, -6568372200.0; +8.263166666666667, -6235743095.0; +8.269833333333334, -6235743095.0; +8.2765, -6294690025.0; +8.283166666666668, -6261006065.0; +8.289833333333334, -6484162300.0; +8.2965, -6901001305.0; +8.303166666666668, -7086263085.0; +8.309833333333334, -7111526055.0; +8.316500000000001, -6972579720.0; +8.323166666666667, -6799949425.0; +8.329833333333333, -6551530220.0; +8.336500000000001, -6109428245.0; +8.343166666666667, -5856798545.0; +8.349833333333335, -5679957755.0; +8.3565, -5536800925.0; +8.363166666666668, -5027331030.0; +8.369833333333334, -4332599355.0; +8.3765, -3886286885.0; +8.383166666666668, -3696814610.0; +8.389833333333334, -3722077580.0; +8.396500000000001, -3536815800.0; +8.403166666666667, -3448395405.0; +8.409833333333333, -3094713825.0; +8.416500000000001, -2437876605.0; +8.423166666666667, -1322095430.0; +8.429833333333335, -58946930.0; +8.4365, 1073676225.0; +8.443166666666666, 1957880175.0; +8.449833333333334, 2450508090.0; +8.4565, 2875768085.0; +8.463166666666668, 3368396000.0; +8.469833333333334, 3932602330.0; +8.476500000000001, 4484177175.0; +8.483166666666667, 5309434195.0; +8.489833333333333, 6357847450.0; +8.496500000000001, 7376787240.0; +8.503166666666667, 8223096735.0; +8.509833333333335, 9204142070.0; +8.5165, 10303081265.0; +8.523166666666667, 10833603635.0; +8.529833333333334, 10909392545.0; +8.5365, 10812551160.0; +8.543166666666668, 10934655515.0; +8.549833333333334, 11153601255.0; +8.556500000000002, 11162022245.0; +8.563166666666667, 11237811155.0; +8.569833333333333, 11229390165.0; +8.576500000000001, 11056759870.0; +8.583166666666667, 10374659680.0; +8.589833333333335, 9039932765.0; +8.5965, 7713626840.0; +8.603166666666667, 6753633980.0; +8.609833333333334, 6117849235.0; +8.6165, 5650484290.0; +8.623166666666668, 5406275580.0; +8.629833333333334, 5566274390.0; +8.6365, 5557853400.0; +8.643166666666668, 5166277365.0; +8.649833333333333, 4479966680.0; +8.656500000000001, 3751551045.0; +8.663166666666667, 2926294025.0; +8.669833333333335, 2113668490.0; +8.6765, 1604198595.0; +8.683166666666667, 1562093645.0; +8.689833333333334, 1591567110.0; +8.6965, 1229464540.0; +8.703166666666668, 661047715.0; +8.709833333333334, 126314850.0; +8.7165, -328418610.0; +8.723166666666668, -896835435.0; +8.729833333333334, -1254727510.0; +8.736500000000001, -1002097810.0; +8.743166666666667, -421049500.0; +8.749833333333335, -256840195.0; +8.7565, -581048310.0; +8.763166666666667, -1145254640.0; +8.769833333333334, -1503146715.0; +8.7765, -1907354235.0; +8.783166666666668, -2084195025.0; +8.789833333333334, -1907354235.0; +8.7965, -1263148500.0; +8.803166666666668, -639995240.0; +8.809833333333334, -412628510.0; +8.816500000000001, -353681580.0; +8.823166666666667, -757889100.0; +8.829833333333333, -1271569490.0; +8.836500000000001, -2058932055.0; +8.843166666666667, -2471560565.0; +8.849833333333335, -2665243335.0; +8.8565, -2635769870.0; +8.863166666666668, -2349456210.0; +8.869833333333334, -1886301760.0; +8.8765, -1326305925.0; +8.883166666666668, -703152665.0; +8.889833333333334, -37894455.0; +8.896500000000001, 564206330.0; +8.903166666666667, 892624940.0; +8.909833333333333, 698942170.0; +8.916500000000001, 261050690.0; +8.923166666666667, -218945740.0; +8.929833333333335, -248419205.0; +8.9365, -138946335.0; +8.943166666666666, -117893860.0; +8.949833333333334, 67367920.0; +8.9565, 551574845.0; +8.963166666666668, 892624940.0; +8.969833333333334, 703152665.0; +8.976500000000001, 176840790.0; +8.983166666666667, -54736435.0; +8.989833333333333, 46315445.0; +8.996500000000001, 227366730.0; +9.003166666666667, 164209305.0; +9.009833333333335, 71578415.0; +9.0165, -96841385.0; +9.023166666666667, -197893265.0; +9.029833333333334, -433680985.0; +9.0365, -564206330.0; +9.043166666666668, -425259995.0; +9.049833333333334, -370523560.0; +9.056500000000002, -324208115.0; +9.063166666666667, -197893265.0; +9.069833333333333, -46315445.0; +9.076500000000001, -159998810.0; +9.083166666666667, -581048310.0; +9.089833333333335, -799994050.0; +9.0965, -463154450.0; +9.103166666666667, -122104355.0; +9.109833333333334, 155788315.0; +9.1165, 311576630.0; +9.123166666666668, 736836625.0; +9.129833333333334, 934729890.0; +9.1365, 707363160.0; +9.143166666666668, 176840790.0; +9.149833333333333, 0.0; +9.156500000000001, 159998810.0; +9.163166666666667, 290524155.0; +9.169833333333335, 648416230.0; +9.1765, 1031571275.0; +9.183166666666667, 1301042955.0; +9.189833333333334, 1052623750.0; +9.1965, 442101975.0; +9.203166666666668, 143156830.0; +9.209833333333334, 4210495.0; +9.2165, -92630890.0; +9.223166666666668, -67367920.0; +9.229833333333334, 50525940.0; +9.236500000000001, 416839005.0; +9.243166666666667, 530522370.0; +9.249833333333335, 661047715.0; +9.2565, 905256425.0; +9.263166666666667, 1271569490.0; +9.269833333333334, 1747355425.0; +9.2765, 2303140765.0; +9.283166666666668, 3166292240.0; +9.289833333333334, 3970496785.0; +9.2965, 4770490835.0; +9.303166666666668, 5545221915.0; +9.309833333333334, 6336794975.0; +9.316500000000001, 6955737740.0; +9.323166666666667, 7191525460.0; +9.329833333333333, 7258893380.0; +9.336500000000001, 7208367440.0; +9.343166666666667, 7317840310.0; +9.349833333333335, 7709416345.0; +9.3565, 8505199900.0; +9.363166666666668, 9166247615.0; +9.369833333333334, 9343088405.0; +9.3765, 9140984645.0; +9.383166666666668, 8943091380.0; +9.389833333333334, 8757829600.0; +9.396500000000001, 8256780695.0; +9.403166666666667, 7890467630.0; +9.409833333333333, 8025203470.0; +9.416500000000001, 8686251185.0; +9.423166666666667, 9246247020.0; +9.429833333333335, 9271509990.0; +9.4365, 9018880290.0; +9.443166666666668, 8606251780.0; +9.449833333333334, 8340990595.0; +9.4565, 8168360300.0; +9.463166666666668, 8172570795.0; +9.469833333333334, 8555725840.0; +9.476500000000001, 9237826030.0; +9.483166666666667, 9894663250.0; +9.489833333333333, 9983083645.0; +9.496500000000001, 9494666225.0; +9.503166666666667, 8867302470.0; +9.509833333333335, 8231517725.0; +9.5165, 7355734765.0; +9.523166666666667, 6421004875.0; +9.529833333333334, 5869430030.0; +9.5365, 5865219535.0; +9.543166666666668, 5932587455.0; +9.549833333333334, 5995744880.0; +9.556500000000002, 6303111015.0; +9.563166666666667, 6825212395.0; +9.569833333333333, 7355734765.0; +9.576500000000001, 7679942880.0; +9.583166666666667, 7915730600.0; +9.589833333333335, 7789415750.0; +9.5965, 7646258920.0; +9.603166666666667, 7886257135.0; +9.609833333333334, 8319938120.0; +9.6165, 8715724650.0; +9.623166666666668, 8677830195.0; +9.629833333333334, 8913617915.0; +9.636500000000002, 9351509395.0; +9.643166666666668, 9620981075.0; +9.649833333333333, 9591507610.0; +9.656500000000001, 9427298305.0; +9.663166666666667, 9583086620.0; +9.669833333333335, 10042030575.0; +9.6765, 10454659085.0; +9.683166666666667, 10753604230.0; +9.689833333333334, 11086233335.0; +9.6965, 11435704420.0; +9.703166666666668, 11587282240.0; +9.709833333333334, 11237811155.0; +9.7165, 10686236310.0; +9.723166666666668, 10180976910.0; +9.729833333333334, 9654665035.0; +9.736500000000001, 9094669200.0; +9.743166666666667, 8530462870.0; +9.749833333333335, 8109413370.0; +9.7565, 7789415750.0; +9.763166666666667, 7755731790.0; +9.769833333333334, 7856783670.0; +9.7765, 7932572580.0; +9.783166666666668, 7995730005.0; +9.789833333333334, 8130465845.0; +9.7965, 8096781885.0; +9.803166666666668, 7473628625.0; +9.809833333333334, 6732581505.0; +9.816500000000001, 6467320320.0; +9.823166666666667, 6606266655.0; +9.829833333333335, 6652582100.0; +9.836500000000001, 6791528435.0; +9.843166666666667, 7107315560.0; +9.849833333333335, 7380997735.0; +9.8565, 7322050805.0; +9.863166666666668, 7292577340.0; +9.869833333333334, 7431523675.0; +9.8765, 7397839715.0; +9.883166666666668, 7237840905.0; +9.889833333333334, 7494681100.0; +9.896500000000001, 8054676935.0; +9.903166666666667, 8256780695.0; +9.909833333333333, 7928362085.0; +9.916500000000001, 7570470010.0; +9.923166666666667, 7515733575.0; +9.929833333333335, 7263103875.0; +9.9365, 6686266060.0; +9.943166666666668, 6311532005.0; +9.949833333333334, 6479951805.0; +9.9565, 6858896355.0; +9.963166666666668, 7115736550.0; +9.969833333333334, 7237840905.0; +9.976500000000001, 7220998925.0; +9.983166666666667, 7077842095.0; +9.989833333333333, 6934685265.0; +9.996500000000001, 7077842095.0; +10.003166666666667, 7347313775.0; +10.009833333333335, 7347313775.0; +10.0165, 7490470605.0; +10.023166666666667, 7692574365.0; +10.029833333333334, 7995730005.0; +10.0365, 8008361490.0; +10.043166666666668, 7932572580.0; +10.049833333333334, 8054676935.0; +10.056500000000002, 8155728815.0; +10.063166666666667, 8340990595.0; +10.069833333333333, 8458884455.0; +10.076500000000001, 8644146235.0; +10.083166666666667, 8656777720.0; +10.089833333333335, 8547304850.0; +10.0965, 8635725245.0; +10.103166666666667, 8799934550.0; +10.109833333333334, 8947301875.0; +10.1165, 8783092570.0; +10.123166666666668, 8458884455.0; +10.129833333333334, 8260991190.0; +10.136500000000002, 8159939310.0; +10.143166666666668, 8404148020.0; +10.149833333333333, 8602041285.0; +10.156500000000001, 8938880885.0; +10.163166666666667, 9313614940.0; +10.169833333333335, 9764137905.0; +10.1765, 9966241665.0; +10.183166666666667, 9802032360.0; +10.189833333333334, 9806242855.0; +10.1965, 10143082455.0; +10.203166666666668, 10724130765.0; +10.209833333333334, 11254653135.0; +10.2165, 11675702635.0; +10.223166666666668, 12029384215.0; +10.229833333333334, 12105173125.0; +10.236500000000001, 11848332930.0; +10.243166666666667, 11326231550.0; +10.249833333333335, 10846235120.0; +10.2565, 10597815915.0; +10.263166666666667, 10223081860.0; +10.269833333333334, 9713611965.0; +10.2765, 9204142070.0; +10.283166666666668, 9044143260.0; +10.289833333333334, 9195721080.0; +10.2965, 9237826030.0; +10.303166666666668, 9477824245.0; +10.309833333333334, 9827295330.0; +10.316500000000001, 10412554135.0; +10.323166666666667, 10964128980.0; +10.329833333333335, 11187285215.0; +10.336500000000001, 11427283430.0; +10.343166666666667, 11620966200.0; +10.349833333333335, 11949384810.0; +10.3565, 12075699660.0; +10.363166666666668, 12033594710.0; +10.369833333333334, 11789386000.0; +10.3765, 11865174910.0; +10.383166666666668, 12109383620.0; +10.389833333333334, 12336750350.0; +10.396500000000001, 12248329955.0; +10.403166666666667, 12029384215.0; +10.409833333333333, 12265171935.0; +10.416500000000001, 12315697875.0; +10.423166666666667, 12159909560.0; +10.429833333333335, 11865174910.0; +10.4365, 12151488570.0; +10.443166666666668, 12842009750.0; +10.449833333333334, 13402005585.0; +10.4565, 13974632905.0; +10.463166666666668, 14652522600.0; +10.469833333333334, 15263044375.0; +10.476500000000001, 15515674075.0; +10.483166666666667, 15423043185.0; +10.489833333333333, 15435674670.0; +10.496500000000001, 15393569720.0; +10.503166666666667, 15313570315.0; +10.509833333333335, 15317780810.0; +10.5165, 15625146945.0; +10.523166666666668, 16168300800.0; +10.529833333333334, 16543034855.0; +10.5365, 16677770695.0; +10.543166666666668, 16964084355.0; +10.549833333333334, 17587237615.0; +10.556500000000002, 18387231665.0; +10.563166666666667, 19317751060.0; +10.569833333333333, 20357743325.0; +10.576500000000001, 21658786280.0; +10.583166666666667, 22715620525.0; +10.589833333333335, 23519825070.0; +10.5965, 24079820905.0; +10.603166666666667, 24399818525.0; +10.609833333333334, 24597711790.0; +10.6165, 24652448225.0; +10.623166666666668, 24382976545.0; +10.629833333333334, 23835612195.0; +10.636500000000002, 23132459530.0; +10.643166666666668, 22635621120.0; +10.649833333333333, 22231413600.0; +10.656500000000001, 21839837565.0; +10.663166666666667, 21759838160.0; +10.669833333333335, 22109309245.0; +10.6765, 22715620525.0; +10.683166666666667, 23296668835.0; +10.689833333333334, 23641929425.0; +10.6965, 24016663480.0; +10.703166666666668, 24458765455.0; +10.709833333333334, 24618764265.0; +10.716500000000002, 24576659315.0; +10.723166666666668, 24391397535.0; +10.729833333333334, 24302977140.0; +10.736500000000001, 24307187635.0; +10.743166666666667, 24408239515.0; +10.749833333333335, 24740868620.0; +10.7565, 24976656340.0; +10.763166666666667, 24989287825.0; +10.769833333333334, 25018761290.0; +10.7765, 25081918715.0; +10.783166666666668, 24694553175.0; +10.789833333333334, 23970348035.0; +10.7965, 23372457745.0; +10.803166666666668, 23233511410.0; +10.809833333333334, 23136670025.0; +10.816500000000001, 22917724285.0; +10.823166666666667, 23406141705.0; +10.829833333333335, 24201925260.0; +10.836500000000001, 24711395155.0; +10.843166666666667, 24593501295.0; +10.849833333333335, 24639816740.0; +10.8565, 24934551390.0; +10.863166666666668, 24997708815.0; +10.869833333333334, 24782973570.0; +10.8765, 24804026045.0; +10.883166666666668, 25460863265.0; +10.889833333333334, 26075595535.0; +10.896500000000001, 26513487015.0; +10.903166666666667, 26791379685.0; +10.909833333333335, 27275586610.0; +10.916500000000001, 27911371355.0; +10.923166666666667, 28075580660.0; +10.929833333333335, 27966107790.0; +10.9365, 27797687990.0; +10.943166666666668, 27726109575.0; +10.949833333333334, 27671373140.0; +10.9565, 27397690965.0; +10.963166666666668, 27191376710.0; +10.969833333333334, 26989272950.0; +10.976500000000001, 26766116715.0; +10.983166666666667, 26450329590.0; +10.989833333333333, 26302962265.0; +10.996500000000001, 26307172760.0; +11.003166666666667, 26496645035.0; +11.009833333333335, 26787169190.0; +11.0165, 26985062455.0; +11.023166666666668, 27102956315.0; +11.029833333333334, 26757695725.0; +11.0365, 26349277710.0; +11.043166666666668, 25700861480.0; +11.049833333333334, 24997708815.0; +11.056500000000002, 24168241300.0; +11.063166666666667, 23305089825.0; +11.069833333333333, 22719831020.0; +11.076500000000001, 22109309245.0; +11.083166666666667, 21519839945.0; +11.089833333333335, 20976686090.0; +11.0965, 20972475595.0; +11.103166666666667, 21460893015.0; +11.109833333333334, 22193519145.0; +11.1165, 22934566265.0; +11.123166666666668, 23869296155.0; +11.129833333333334, 24841920500.0; +11.136500000000002, 25755597915.0; +11.143166666666668, 26711380280.0; +11.149833333333333, 27730320070.0; +11.156500000000001, 28947153125.0; +11.163166666666667, 30105039250.0; +11.169833333333335, 31414503195.0; +11.1765, 32711335655.0; +11.183166666666667, 33780801385.0; +11.189833333333334, 34568163950.0; +11.1965, 35439736415.0; +11.203166666666668, 36673411450.0; +11.209833333333334, 38134453215.0; +11.216500000000002, 39616547455.0; +11.223166666666668, 41216535555.0; +11.229833333333334, 42938628010.0; +11.236500000000001, 44471248190.0; +11.243166666666667, 45751238670.0; +11.249833333333335, 46845967370.0; +11.2565, 47784907755.0; +11.263166666666667, 48496481410.0; +11.269833333333334, 49128055660.0; +11.2765, 49835418820.0; +11.283166666666668, 50626991880.0; +11.289833333333334, 51557511275.0; +11.2965, 52488030670.0; +11.303166666666668, 53443813035.0; +11.309833333333334, 54349069460.0; +11.316500000000001, 55262746875.0; +11.323166666666667, 56138529835.0; +11.329833333333335, 56555368840.0; +11.336500000000001, 56597473790.0; +11.343166666666667, 55582744495.0; +11.349833333333335, 53519601945.0; +11.3565, 50504887525.0; +11.363166666666668, 46753336480.0; +11.369833333333334, 42530209995.0; +11.3765, 37890244505.0; +11.383166666666668, 33894484750.0; +11.389833333333334, 30627140630.0; +11.396500000000001, 28062949175.0; +11.403166666666667, 26058753555.0; +11.409833333333335, 24749289610.0; +11.416500000000001, 24029294965.0; +11.423166666666667, 23359826260.0; +11.429833333333335, 22820882900.0; +11.4365, 22374570430.0; +11.443166666666668, 22071414790.0; +11.449833333333334, 21662996775.0; +11.4565, 21519839945.0; +11.463166666666668, 21919836970.0; +11.469833333333334, 22778777950.0; +11.476500000000001, 24126136350.0; +11.483166666666667, 25915596725.0; +11.489833333333333, 28244000460.0; +11.496500000000001, 30913454290.0; +11.503166666666667, 33662907525.0; +11.509833333333335, 36547096600.0; +11.5165, 39275497360.0; +11.523166666666668, 42197580890.0; +11.529833333333334, 45427030555.0; +11.5365, 48732269130.0; +11.543166666666668, 51991192260.0; +11.549833333333334, 55031169650.0; +11.556500000000002, 58370092185.0; +11.563166666666667, 61814277095.0; +11.569833333333333, 65148989135.0; +11.576500000000001, 68302649890.0; +11.583166666666667, 71426837180.0; +11.589833333333335, 74656286845.0; +11.5965, 77603633345.0; +11.603166666666668, 79995194505.0; +11.609833333333334, 82218335865.0; +11.6165, 84458319205.0; +11.623166666666668, 86774091455.0; +11.629833333333334, 88837234005.0; +11.636500000000002, 90811956160.0; +11.643166666666668, 92883519700.0; +11.649833333333333, 94702453540.0; +11.656500000000001, 95944549565.0; +11.663166666666667, 95477184620.0; +11.669833333333335, 92938256135.0; +11.6765, 88083555400.0; +11.683166666666667, 81346763400.0; +11.689833333333334, 73047877755.0; +11.6965, 63856367170.0; +11.703166666666668, 55056432620.0; +11.709833333333334, 47485962610.0; +11.716500000000002, 41439691790.0; +11.723166666666668, 36681832440.0; +11.729833333333334, 33178700600.0; +11.736500000000001, 30627140630.0; +11.743166666666667, 28837680255.0; +11.749833333333335, 27566110765.0; +11.7565, 26753485230.0; +11.763166666666667, 25839807815.0; +11.769833333333334, 24753500105.0; +11.7765, 23608245465.0; +11.783166666666668, 22622989635.0; +11.789833333333334, 22033520335.0; +11.796500000000002, 21561944895.0; +11.803166666666668, 21460893015.0; +11.809833333333334, 21574576380.0; +11.816500000000001, 22004046870.0; +11.823166666666667, 22652463100.0; +11.829833333333335, 23098775570.0; +11.836500000000001, 23528246060.0; +11.843166666666667, 23936664075.0; +11.849833333333335, 24340871595.0; +11.8565, 24568238325.0; +11.863166666666668, 24585080305.0; +11.869833333333334, 24564027830.0; +11.8765, 24458765455.0; +11.883166666666668, 24286135160.0; +11.889833333333334, 24054557935.0; +11.896500000000001, 23654560910.0; +11.903166666666667, 23212458935.0; +11.909833333333335, 23237721905.0; +11.916500000000001, 23654560910.0; +11.923166666666667, 24231398725.0; +11.929833333333335, 24690342680.0; +11.9365, 25081918715.0; +11.943166666666668, 25372442870.0; +11.949833333333334, 25385074355.0; +11.9565, 25376653365.0; +11.963166666666668, 25326127425.0; +11.969833333333334, 25254549010.0; +11.976500000000001, 25469284255.0; +11.983166666666667, 25961912170.0; +11.989833333333335, 26378751175.0; +11.996500000000001, 26538749985.0; +12.003166666666667, 26795590180.0; +12.009833333333335, 27279797105.0; +12.0165, 27549268785.0; +12.023166666666668, 27208218690.0; +12.029833333333334, 26618749390.0; +12.0365, 25789281875.0; +12.043166666666668, 25145076140.0; +12.049833333333334, 24618764265.0; +12.056500000000002, 24521922880.0; +12.063166666666667, 24858762480.0; +12.069833333333333, 25604020095.0; +12.076500000000001, 26475592560.0; +12.083166666666667, 26913484040.0; +12.089833333333335, 26955588990.0; +12.0965, 26677696320.0; +12.103166666666668, 26391382660.0; +12.109833333333334, 26121910980.0; +12.1165, 26008227615.0; +12.123166666666668, 25936649200.0; +12.129833333333334, 25957701675.0; +12.136500000000002, 25780860885.0; +12.143166666666668, 25591388610.0; +12.149833333333333, 24947182875.0; +12.156500000000001, 24387187040.0; +12.163166666666667, 24004031995.0; +12.169833333333335, 24033505460.0; +12.1765, 24366134565.0; +12.183166666666667, 24711395155.0; +12.189833333333334, 24917709410.0; +12.1965, 24681921690.0; +12.203166666666668, 24378766050.0; +12.209833333333334, 24151399320.0; +12.216500000000002, 24256661695.0; +12.223166666666668, 24488238920.0; +12.229833333333334, 25060866240.0; +12.236500000000001, 25709282470.0; +12.243166666666667, 26273488800.0; +12.249833333333335, 26580854935.0; +12.2565, 26454540085.0; +12.263166666666667, 26227173355.0; +12.269833333333334, 26155594940.0; +12.2765, 26479803055.0; +12.283166666666668, 26732432755.0; +12.289833333333334, 26547170975.0; +12.296500000000002, 26290330780.0; +12.303166666666668, 26239804840.0; +12.309833333333334, 26222962860.0; +12.316500000000001, 25890333755.0; +12.323166666666667, 25435600295.0; +12.329833333333335, 25284022475.0; +12.336500000000001, 25359811385.0; +12.343166666666667, 25191391585.0; +12.349833333333335, 24833499510.0; +12.3565, 24488238920.0; +12.363166666666668, 24366134565.0; +12.369833333333334, 24404029020.0; +12.3765, 24433502485.0; +12.383166666666668, 24652448225.0; +12.389833333333334, 24879814955.0; +12.396500000000001, 25081918715.0; +12.403166666666667, 25081918715.0; +12.409833333333335, 24989287825.0; +12.416500000000001, 24825078520.0; +12.423166666666667, 24635606245.0; +12.429833333333335, 24542975355.0; +12.4365, 24702974165.0; +12.443166666666668, 24959814360.0; +12.449833333333334, 25250338515.0; +12.4565, 25410337325.0; +12.463166666666668, 25359811385.0; +12.469833333333334, 25006129805.0; +12.476500000000001, 24787184065.0; +12.483166666666667, 24989287825.0; +12.489833333333335, 25465073760.0; +12.496500000000001, 25978754150.0; +12.503166666666667, 26361909195.0; +12.509833333333335, 26766116715.0; +12.5165, 27031377900.0; +12.523166666666668, 26964009980.0; +12.529833333333334, 26597696915.0; +12.5365, 26290330780.0; +12.543166666666668, 26193489395.0; +12.549833333333334, 26378751175.0; +12.556500000000002, 26412435135.0; +12.563166666666667, 26496645035.0; +12.569833333333333, 26564012955.0; +12.576500000000001, 26795590180.0; +12.583166666666667, 27178745225.0; +12.589833333333335, 27650320665.0; +12.5965, 28172422045.0; +12.603166666666668, 28850311740.0; +12.609833333333334, 29233466785.0; +12.6165, 29199782825.0; +12.623166666666668, 28858732730.0; +12.629833333333334, 28462946200.0; +12.636500000000002, 27995581255.0; +12.643166666666668, 27056640870.0; +12.649833333333333, 26513487015.0; +12.656500000000001, 26555591965.0; +12.663166666666667, 27296639085.0; +12.669833333333335, 27999791750.0; +12.6765, 28749259860.0; +12.683166666666668, 29785041630.0; +12.689833333333334, 30963980230.0; +12.6965, 32062919425.0; +12.703166666666668, 32353443580.0; +12.709833333333334, 32513442390.0; +12.716500000000002, 32593441795.0; +12.723166666666668, 32867123970.0; +12.729833333333334, 32719756645.0; +12.736500000000001, 32298707145.0; +12.743166666666667, 31852394675.0; +12.749833333333335, 31288188345.0; +12.7565, 30833454885.0; +12.763166666666667, 30231354100.0; +12.769833333333334, 29873462025.0; +12.7765, 29309255695.0; +12.783166666666668, 29178730350.0; +12.789833333333334, 29385044605.0; +12.796500000000002, 29502938465.0; +12.803166666666668, 29397676090.0; +12.809833333333334, 29073467975.0; +12.816500000000001, 29010310550.0; +12.823166666666667, 28610313525.0; +12.829833333333335, 27911371355.0; +12.836500000000001, 27136640275.0; +12.843166666666667, 26627170380.0; +12.849833333333335, 26340856720.0; +12.8565, 26437698105.0; +12.863166666666668, 26686117310.0; +12.869833333333334, 27001904435.0; +12.876500000000002, 27334533540.0; +12.883166666666668, 27439795915.0; +12.889833333333334, 27372427995.0; +12.896500000000001, 26622959885.0; +12.903166666666667, 25915596725.0; +12.909833333333335, 25208233565.0; +12.916500000000001, 24782973570.0; +12.923166666666667, 24484028425.0; +12.929833333333335, 24332450605.0; +12.9365, 24404029020.0; +12.943166666666668, 24433502485.0; +12.949833333333334, 24399818525.0; +12.9565, 24265082685.0; +12.963166666666668, 24100873380.0; +12.969833333333334, 23957716550.0; +12.976500000000001, 23776665265.0; +12.983166666666667, 23793507245.0; +12.989833333333335, 24100873380.0; +12.996500000000001, 24412450010.0; +13.003166666666667, 24761921095.0; +13.009833333333335, 24888235945.0; +13.0165, 25166128615.0; +13.023166666666668, 25140865645.0; +13.029833333333334, 24677711195.0; +13.0365, 23810349225.0; +13.043166666666668, 22715620525.0; +13.049833333333334, 21881942515.0; +13.056500000000002, 21195631830.0; +13.063166666666667, 20959844110.0; +13.069833333333335, 21081948465.0; +13.076500000000001, 21439840540.0; +13.083166666666667, 21881942515.0; +13.089833333333335, 22168256175.0; +13.0965, 22311413005.0; +13.103166666666668, 22092467265.0; +13.109833333333334, 21637733805.0; +13.1165, 21124053415.0; +13.123166666666668, 20475637185.0; +13.129833333333334, 19818799965.0; +13.136500000000002, 19187225715.0; +13.143166666666668, 18724071265.0; +13.149833333333333, 18412494635.0; +13.156500000000001, 18185127905.0; +13.163166666666667, 18387231665.0; +13.169833333333335, 18509336020.0; +13.1765, 18437757605.0; +13.183166666666668, 18176706915.0; +13.189833333333334, 18046181570.0; +13.1965, 17936708700.0; +13.203166666666668, 17831446325.0; +13.209833333333334, 18008287115.0; +13.216500000000002, 18564072455.0; +13.223166666666668, 18997753440.0; +13.229833333333334, 19338803535.0; +13.236500000000001, 19890378380.0; +13.243166666666667, 20340901345.0; +13.249833333333335, 20416690255.0; +13.2565, 19860904915.0; +13.263166666666667, 19250383140.0; +13.269833333333334, 18479862555.0; +13.2765, 17469343755.0; +13.283166666666668, 16812506535.0; +13.289833333333334, 16884084950.0; +13.296500000000002, 17688289495.0; +13.303166666666668, 18429336615.0; +13.309833333333334, 18863017600.0; +13.316500000000001, 19271435615.0; +13.323166666666667, 19347224525.0; +13.329833333333335, 18905122550.0; +13.336500000000001, 17953550680.0; +13.343166666666667, 17570395635.0; +13.349833333333335, 17705131475.0; +13.3565, 17831446325.0; +13.363166666666668, 17734604940.0; +13.369833333333334, 17532501180.0; +13.376500000000002, 17519869695.0; +13.383166666666668, 17187240590.0; +13.389833333333334, 16808296040.0; +13.396500000000001, 16223037235.0; +13.403166666666667, 15743040805.0; +13.409833333333335, 15587252490.0; +13.416500000000001, 15578831500.0; +13.423166666666667, 15692514865.0; +13.429833333333335, 15595673480.0; +13.4365, 15797777240.0; +13.443166666666668, 16172511295.0; +13.449833333333334, 16509350895.0; +13.4565, 16551455845.0; +13.463166666666668, 16530403370.0; +13.469833333333334, 16812506535.0; +13.476500000000001, 17271450490.0; +13.483166666666667, 17540922170.0; +13.489833333333335, 17439870290.0; +13.496500000000001, 17418817815.0; +13.503166666666667, 17351449895.0; +13.509833333333335, 17254608510.0; +13.5165, 17060925740.0; +13.523166666666668, 16938821385.0; +13.529833333333334, 16976715840.0; +13.5365, 17014610295.0; +13.543166666666668, 17220924550.0; +13.549833333333334, 17414607320.0; +13.556500000000002, 17511448705.0; +13.563166666666667, 17427238805.0; +13.569833333333335, 17267239995.0; +13.576500000000001, 17275660985.0; +13.583166666666667, 17406186330.0; +13.589833333333335, 17608290090.0; +13.5965, 17814604345.0; +13.603166666666668, 18387231665.0; +13.609833333333334, 19014595420.0; +13.6165, 19473539375.0; +13.623166666666668, 19494591850.0; +13.629833333333334, 19220909675.0; +13.636500000000002, 18888280570.0; +13.643166666666668, 18610387900.0; +13.649833333333333, 18446178595.0; +13.656500000000001, 18172496420.0; +13.663166666666667, 17835656820.0; +13.669833333333335, 17776709890.0; +13.6765, 17881972265.0; +13.683166666666668, 17620921575.0; +13.689833333333334, 17406186330.0; +13.6965, 17465133260.0; +13.703166666666668, 17869340780.0; +13.709833333333334, 17945129690.0; +13.716500000000002, 17839867315.0; +13.723166666666668, 17764078405.0; +13.729833333333334, 17549343160.0; +13.736500000000001, 17279871480.0; +13.743166666666667, 16989347325.0; +13.749833333333335, 16930400395.0; +13.7565, 16917768910.0; +13.763166666666669, 17170398610.0; +13.769833333333334, 17427238805.0; +13.7765, 17389344350.0; +13.783166666666668, 17052504750.0; +13.789833333333334, 16564087330.0; +13.796500000000002, 16168300800.0; +13.803166666666668, 15633567935.0; +13.809833333333334, 15330412295.0; +13.816500000000001, 15292517840.0; +13.823166666666667, 15709356845.0; +13.829833333333335, 16399878025.0; +13.836500000000001, 17065136235.0; +13.843166666666667, 17389344350.0; +13.849833333333335, 17368291875.0; +13.8565, 17326186925.0; +13.863166666666668, 17208293065.0; +13.869833333333334, 16938821385.0; +13.876500000000002, 16656718220.0; +13.883166666666668, 16761980595.0; +13.889833333333334, 16959873860.0; +13.896500000000001, 17132504155.0; +13.903166666666667, 17149346135.0; +13.909833333333335, 17233556035.0; +13.916500000000001, 17098820195.0; +13.923166666666667, 16644086735.0; +13.929833333333335, 16412509510.0; +13.9365, 16543034855.0; +13.943166666666668, 17073557225.0; +13.949833333333334, 17553553655.0; +13.956500000000002, 18037760580.0; +13.963166666666668, 18589335425.0; +13.969833333333334, 18896701560.0; +13.976500000000001, 18783018195.0; +13.983166666666667, 18357758200.0; +13.989833333333335, 17806183355.0; +13.996500000000001, 17250398015.0; +14.003166666666667, 16829348515.0; +14.009833333333335, 16766191090.0; +14.0165, 16791454060.0; +14.023166666666668, 16589350300.0; +14.029833333333334, 16201984760.0; +14.0365, 16290405155.0; +14.043166666666668, 16353562580.0; +14.049833333333334, 16126195850.0; +14.056500000000002, 15776724765.0; +14.063166666666667, 15907250110.0; +14.069833333333335, 16303036640.0; +14.076500000000001, 16176721790.0; +14.083166666666667, 15890408130.0; +14.089833333333335, 15776724765.0; +14.0965, 15873566150.0; +14.103166666666668, 15780935260.0; +14.109833333333334, 15444095660.0; +14.1165, 15250412890.0; +14.123166666666668, 15246202395.0; +14.129833333333334, 15507253085.0; +14.136500000000002, 15823040210.0; +14.143166666666668, 16239879215.0; +14.149833333333333, 16795664555.0; +14.156500000000001, 17393554845.0; +14.163166666666667, 17873551275.0; +14.169833333333335, 17743025930.0; +14.1765, 17317765935.0; +14.183166666666668, 16825138020.0; +14.189833333333334, 16597771290.0; +14.1965, 16530403370.0; +14.203166666666668, 16370404560.0; +14.209833333333334, 16475666935.0; +14.216500000000002, 16749349110.0; +14.223166666666668, 16926189900.0; +14.229833333333334, 17010399800.0; +14.236500000000001, 16681981190.0; +14.243166666666667, 16458824955.0; +14.249833333333335, 16067248920.0; +14.2565, 15730409320.0; +14.263166666666669, 15755672290.0; +14.269833333333334, 15856724170.0; +14.2765, 16319878620.0; +14.283166666666668, 16345141590.0; +14.289833333333334, 16180932285.0; +14.296500000000002, 16046196445.0; +14.303166666666668, 15814619220.0; +14.309833333333334, 15696725360.0; +14.316500000000001, 15494621600.0; +14.323166666666667, 15966197040.0; +14.329833333333335, 16656718220.0; +14.336500000000001, 17237766530.0; +14.343166666666667, 17570395635.0; +14.349833333333335, 17633553060.0; +14.3565, 17696710485.0; +14.363166666666668, 17452501775.0; +14.369833333333334, 17380923360.0; +14.376500000000002, 17191451085.0; +14.383166666666668, 17056715245.0; +14.389833333333334, 16825138020.0; +14.396500000000001, 16484087925.0; +14.403166666666667, 16256721195.0; +14.409833333333335, 15987249515.0; +14.416500000000001, 15915671100.0; +14.423166666666667, 15650409915.0; +14.429833333333335, 15334622790.0; +14.4365, 15208307940.0; +14.443166666666668, 15275675860.0; +14.449833333333334, 15490411105.0; +14.456500000000002, 15549358035.0; +14.463166666666668, 15734619815.0; +14.469833333333334, 16201984760.0; +14.476500000000001, 16623034260.0; +14.483166666666667, 16820927525.0; +14.489833333333335, 16589350300.0; +14.496500000000001, 16475666935.0; +14.503166666666667, 16383036045.0; +14.509833333333335, 16336720600.0; +14.5165, 16130406345.0; +14.523166666666668, 15903039615.0; +14.529833333333334, 16079880405.0; +14.5365, 16303036640.0; +14.543166666666668, 16509350895.0; +14.549833333333334, 16324089115.0; +14.556500000000002, 16517771885.0; +14.563166666666667, 16863032475.0; +14.569833333333335, 17241977025.0; +14.576500000000001, 17216714055.0; +14.583166666666667, 17073557225.0; +14.589833333333335, 16938821385.0; +14.5965, 16690402180.0; +14.603166666666668, 16593560795.0; +14.609833333333334, 16109353870.0; +14.6165, 15755672290.0; +14.623166666666668, 15726198825.0; +14.629833333333334, 16399878025.0; +14.636500000000002, 17056715245.0; +14.643166666666668, 17326186925.0; +14.649833333333335, 17696710485.0; +14.656500000000001, 18130391470.0; +14.663166666666667, 17974603155.0; +14.669833333333335, 17292502965.0; +14.6765, 16538824360.0; +14.683166666666668, 16252510700.0; +14.689833333333334, 16058827930.0; +14.6965, 15919881595.0; +14.703166666666668, 16281984165.0; +14.709833333333334, 16593560795.0; +14.716500000000002, 16778822575.0; +14.723166666666668, 16425140995.0; +14.729833333333334, 16248300205.0; +14.736500000000001, 16437772480.0; +14.743166666666667, 16463035450.0; +14.749833333333335, 16623034260.0; +14.7565, 16787243565.0; +14.763166666666669, 17166188115.0; +14.769833333333334, 17208293065.0; +14.7765, 16825138020.0; +14.783166666666668, 16530403370.0; +14.789833333333334, 16084090900.0; +14.796500000000002, 15797777240.0; +14.803166666666668, 15734619815.0; +14.809833333333334, 16311457630.0; +14.816500000000001, 16837769505.0; +14.823166666666667, 17195661580.0; +14.829833333333335, 17368291875.0; +14.836500000000001, 17764078405.0; +14.843166666666669, 18223022360.0; +14.849833333333335, 18458810080.0; +14.8565, 18774597205.0; +14.863166666666668, 18905122550.0; +14.869833333333334, 19153541755.0; +14.876500000000002, 18989332450.0; +14.883166666666668, 18345126715.0; +14.889833333333334, 17532501180.0; +14.896500000000001, 16985136830.0; +14.903166666666667, 16959873860.0; +14.909833333333335, 17132504155.0; +14.916500000000001, 17220924550.0; +14.923166666666667, 17385133855.0; +14.929833333333335, 17225135045.0; +14.9365, 17006189305.0; +14.943166666666668, 16934610890.0; +14.949833333333334, 17039873265.0; +14.956500000000002, 17103030690.0; +14.963166666666668, 16921979405.0; +14.969833333333334, 16993557820.0; +14.976500000000001, 17098820195.0; +14.983166666666667, 17006189305.0; +14.989833333333335, 16681981190.0; +14.996500000000001, 16488298420.0; +15.003166666666667, 16677770695.0; +15.009833333333335, 16875663960.0; +15.0165, 16799875050.0; +15.023166666666668, 16383036045.0; +15.029833333333334, 16033564960.0; +15.036500000000002, 16016722980.0; +15.043166666666668, 16100932880.0; +15.049833333333334, 16105143375.0; +15.056500000000002, 16079880405.0; +15.063166666666667, 16105143375.0; +15.069833333333335, 16155669315.0; +15.076500000000001, 16353562580.0; +15.083166666666667, 16812506535.0; +15.089833333333335, 17313555440.0; +15.0965, 17368291875.0; +15.103166666666668, 17241977025.0; +15.109833333333334, 17023031285.0; +15.1165, 16711454655.0; +15.123166666666668, 16269352680.0; +15.129833333333334, 15966197040.0; +15.136500000000002, 16197774265.0; +15.143166666666668, 16463035450.0; +15.149833333333335, 16509350895.0; +15.156500000000001, 16210405750.0; +15.163166666666667, 15730409320.0; +15.169833333333335, 15511463580.0; +15.1765, 15347254275.0; +15.183166666666668, 15679883380.0; +15.189833333333334, 16092511890.0; +15.1965, 16627244755.0; +15.203166666666668, 16993557820.0; +15.209833333333334, 16850400990.0; +15.216500000000002, 16526192875.0; +15.223166666666668, 15755672290.0; +15.229833333333334, 15073572100.0; +15.236500000000001, 14547260225.0; +15.243166666666667, 14404103395.0; +15.249833333333335, 14639891115.0; +15.2565, 14955678240.0; +15.263166666666669, 15355675265.0; +15.269833333333334, 15831461200.0; +15.2765, 16185142780.0; +15.283166666666668, 16315668125.0; +15.289833333333334, 16260931690.0; +15.296500000000002, 16361983570.0; +15.303166666666668, 16648297230.0; +15.309833333333334, 16909347920.0; +15.316500000000001, 16938821385.0; +15.323166666666667, 16968294850.0; +15.329833333333335, 16900926930.0; +15.336500000000001, 16639876240.0; +15.343166666666669, 16357773075.0; +15.349833333333335, 16269352680.0; +15.3565, 16437772480.0; +15.363166666666668, 16538824360.0; +15.369833333333334, 16804085545.0; +15.376500000000002, 17161977620.0; +15.383166666666668, 17216714055.0; +15.389833333333334, 17052504750.0; +15.396500000000001, 16888295445.0; +15.403166666666667, 16930400395.0; +15.409833333333335, 16547245350.0; +15.416500000000001, 15983039020.0; +15.423166666666667, 15877776645.0; +15.429833333333335, 15961986545.0; +15.4365, 16180932285.0; +15.443166666666668, 16256721195.0; +15.449833333333334, 16728296635.0; +15.456500000000002, 17423028310.0; +15.463166666666668, 17738815435.0; +15.469833333333334, 17604079595.0; +15.476500000000001, 17044083760.0; +15.483166666666667, 16475666935.0; +15.489833333333335, 15995670505.0; +15.496500000000001, 15528305560.0; +15.503166666666667, 15220939425.0; +15.509833333333335, 15275675860.0; +15.5165, 15528305560.0; +15.523166666666668, 16063038425.0; +15.529833333333334, 16492508915.0; +15.536500000000002, 16913558415.0; +15.543166666666668, 17098820195.0; +15.549833333333334, 17098820195.0; +15.556500000000002, 17124083165.0; +15.563166666666667, 17031452275.0; +15.569833333333335, 16917768910.0; +15.576500000000001, 16610402775.0; +15.583166666666667, 16235668720.0; +15.589833333333335, 16050406940.0; +15.5965, 15978828525.0; +15.603166666666668, 15869355655.0; +15.609833333333334, 15654620410.0; +15.6165, 15498832095.0; +15.623166666666668, 15595673480.0; +15.629833333333334, 15658830905.0; +15.636500000000002, 15974618030.0; +15.643166666666668, 16134616840.0; +15.649833333333335, 16248300205.0; +15.656500000000001, 16260931690.0; +15.663166666666667, 16505140400.0; +15.669833333333335, 16837769505.0; +15.6765, 16770401585.0; +15.683166666666668, 16846190495.0; +15.689833333333334, 17006189305.0; +15.6965, 17161977620.0; +15.703166666666668, 17048294255.0; +15.709833333333334, 16846190495.0; +15.716500000000002, 16745138615.0; +15.723166666666668, 16328299610.0; +15.729833333333335, 15890408130.0; +15.736500000000001, 15599883975.0; +15.743166666666667, 15364096255.0; +15.749833333333335, 14959888735.0; +15.7565, 14475681810.0; +15.763166666666669, 14395682405.0; +15.769833333333334, 14509365770.0; +15.7765, 14593575670.0; +15.783166666666668, 14783047945.0; +15.789833333333334, 15309359820.0; +15.796500000000002, 16041985950.0; +15.803166666666668, 16366194065.0; +15.809833333333334, 16260931690.0; +15.816500000000001, 16058827930.0; +15.823166666666667, 15776724765.0; +15.829833333333335, 15431464175.0; +15.836500000000001, 14968309725.0; +15.843166666666669, 14719890520.0; +15.849833333333335, 14711469530.0; +15.8565, 14812521410.0; +15.863166666666668, 14884099825.0; +15.869833333333334, 14564102205.0; +15.876500000000002, 13995685380.0; +15.883166666666668, 13380953110.0; +15.889833333333334, 12888325195.0; +15.896500000000001, 12816746780.0; +15.903166666666667, 12888325195.0; +15.909833333333335, 13077797470.0; +15.916500000000001, 13166217865.0; +15.923166666666669, 13140954895.0; +15.929833333333335, 13124112915.0; +15.9365, 12964114105.0; +15.943166666666668, 12913588165.0; +15.949833333333334, 12896746185.0; +15.9565, 12555696090.0; +15.963166666666668, 11978858275.0; +15.969833333333336, 11380967985.0; +15.9765, 10703078290.0; +15.983166666666667, 10029399090.0; +15.989833333333335, 9385193355.0; +15.996500000000003, 9254668010.0; +16.003166666666665, 9166247615.0; +16.009833333333333, 8707303660.0; +16.0165, 7936783075.0; +16.023166666666665, 6947316750.0; +16.029833333333332, 6067323295.0; +16.0365, 5136803900.0; +16.043166666666664, 4509440145.0; +16.049833333333332, 4071548665.0; +16.0565, 3941023320.0; +16.063166666666667, 3541026295.0; +16.06983333333333, 2745242740.0; +16.0765, 1751565920.0; +16.083166666666667, 749468110.0; +16.08983333333333, -210524750.0; +16.0965, -1385252855.0; +16.103166666666667, -2463139575.0; +16.109833333333334, -3376816990.0; +16.1165, -4117864110.0; +16.123166666666666, -5305223700.0; +16.129833333333334, -6791528435.0; +16.136499999999998, -8446252970.0; +16.143166666666666, -9818874340.0; +16.149833333333333, -10846235120.0; +16.156499999999998, -11962016295.0; +16.163166666666665, -12820957275.0; +16.169833333333333, -13919896470.0; +16.1765, -14968309725.0; +16.183166666666665, -16420930500.0; +16.189833333333333, -18197759390.0; +16.1965, -19827220955.0; +16.203166666666664, -20930370645.0; +16.209833333333332, -21115632425.0; +16.2165, -20989317575.0; +16.223166666666668, -20968265100.0; +16.229833333333332, -21124053415.0; +16.2365, -21267210245.0; +16.243166666666667, -21515629450.0; +16.24983333333333, -22159835185.0; +16.2565, -23157722500.0; +16.263166666666667, -23785086255.0; +16.269833333333334, -24113504865.0; +16.2765, -24500870405.0; +16.283166666666666, -25225075545.0; +16.289833333333334, -25924017715.0; +16.296499999999998, -26526118500.0; +16.303166666666666, -27351375520.0; +16.309833333333334, -28134527590.0; +16.316499999999998, -28968205600.0; +16.323166666666665, -29671358265.0; +16.329833333333333, -30366089940.0; +16.3365, -30576614690.0; +16.343166666666665, -30665035085.0; +16.349833333333333, -30892401815.0; +16.3565, -31145031515.0; +16.363166666666665, -31262925375.0; +16.369833333333332, -31507134085.0; +16.3765, -32378706550.0; +16.383166666666668, -33326067925.0; +16.389833333333332, -34298692270.0; +16.3965, -34921845530.0; +16.403166666666667, -35662892650.0; +16.40983333333333, -36210257000.0; +16.4165, -36454465710.0; +16.423166666666667, -36302887890.0; +16.42983333333333, -35633419185.0; +16.4365, -34892372065.0; +16.443166666666666, -34079746530.0; +16.449833333333334, -33389225350.0; +16.4565, -32926070900.0; +16.463166666666666, -32488179420.0; +16.469833333333334, -32231339225.0; +16.476499999999998, -31945025565.0; +16.483166666666666, -31730290320.0; +16.489833333333333, -31591343985.0; +16.4965, -31275556860.0; +16.503166666666665, -31031348150.0; +16.509833333333333, -30631351125.0; +16.5165, -30281880040.0; +16.523166666666665, -29700831730.0; +16.529833333333332, -28955574115.0; +16.5365, -28088212145.0; +16.543166666666664, -27241902650.0; +16.549833333333332, -26576644440.0; +16.5565, -25907175735.0; +16.563166666666667, -25456652770.0; +16.56983333333333, -24917709410.0; +16.5765, -24622974760.0; +16.583166666666667, -24753500105.0; +16.58983333333333, -25048234755.0; +16.5965, -25174549605.0; +16.603166666666667, -24879814955.0; +16.609833333333334, -24517712385.0; +16.6165, -24079820905.0; +16.623166666666666, -23284037350.0; +16.629833333333334, -22340886470.0; +16.636499999999998, -21582997370.0; +16.643166666666666, -21027212030.0; +16.649833333333333, -20681951440.0; +16.6565, -20336690850.0; +16.663166666666665, -19890378380.0; +16.669833333333333, -19246172645.0; +16.6765, -18631440375.0; +16.683166666666665, -18383021170.0; +16.689833333333333, -18311442755.0; +16.6965, -18100918005.0; +16.703166666666664, -17650395040.0; +16.709833333333332, -17136714650.0; +16.7165, -16543034855.0; +16.723166666666668, -15936723575.0; +16.729833333333332, -15145150515.0; +16.7365, -14492523790.0; +16.743166666666667, -13877791520.0; +16.74983333333333, -13477794495.0; +16.7565, -13145165390.0; +16.763166666666667, -12484117675.0; +16.769833333333334, -11700965605.0; +16.7765, -10606236905.0; +16.783166666666666, -10020978100.0; +16.789833333333334, -9684138500.0; +16.796499999999998, -9418877315.0; +16.803166666666666, -9233615535.0; +16.809833333333334, -9056774745.0; +16.816499999999998, -9212563060.0; +16.823166666666665, -9056774745.0; +16.829833333333333, -8749408610.0; +16.8365, -8484147425.0; +16.843166666666665, -8016782480.0; +16.849833333333333, -7279945855.0; +16.8565, -6067323295.0; +16.863166666666665, -5204171820.0; +16.869833333333332, -4690491430.0; +16.8765, -4273652425.0; +16.883166666666668, -4071548665.0; +16.889833333333332, -4349441335.0; +16.8965, -5111540930.0; +16.903166666666667, -5439959540.0; +16.90983333333333, -4905226675.0; +16.9165, -4075759160.0; +16.923166666666667, -3216818180.0; +16.92983333333333, -2324193240.0; +16.9365, -1423147310.0; +16.943166666666666, -808415040.0; +16.949833333333334, -972624345.0; +16.9565, -1317884935.0; +16.963166666666666, -1629461565.0; +16.969833333333334, -1591567110.0; +16.976499999999998, -1519988695.0; +16.983166666666666, -1536830675.0; +16.989833333333333, -1431568300.0; +16.9965, -1258938005.0; +17.003166666666665, -1065255235.0; +17.009833333333333, -943150880.0; +17.0165, -479996430.0; +17.023166666666665, 239998215.0; +17.029833333333332, 943150880.0; +17.0365, 1486304735.0; +17.043166666666664, 2159983935.0; +17.049833333333332, 2858926105.0; +17.0565, 3410500950.0; +17.063166666666667, 3751551045.0; +17.06983333333333, 4050496190.0; +17.0765, 4391546285.0; +17.083166666666667, 4593650045.0; +17.08983333333333, 4821016775.0; +17.0965, 4816806280.0; +17.103166666666667, 4951542120.0; +17.109833333333334, 5082067465.0; +17.1165, 5258908255.0; +17.123166666666666, 5414696570.0; +17.129833333333334, 5410486075.0; +17.136499999999998, 5646273795.0; +17.143166666666666, 5865219535.0; +17.149833333333333, 6269427055.0; +17.1565, 6454688835.0; +17.163166666666665, 6543109230.0; +17.169833333333333, 6858896355.0; +17.1765, 7267314370.0; +17.183166666666665, 7962046045.0; +17.189833333333333, 8602041285.0; +17.1965, 9402035335.0; +17.203166666666664, 10223081860.0; +17.209833333333332, 10896761060.0; +17.2165, 11380967985.0; +17.223166666666668, 11688334120.0; +17.229833333333332, 11886227385.0; +17.2365, 12079910155.0; +17.243166666666667, 12214645995.0; +17.24983333333333, 12269382430.0; +17.2565, 12467275695.0; +17.263166666666667, 12644116485.0; +17.269833333333334, 12795694305.0; +17.2765, 13090428955.0; +17.283166666666666, 13633582810.0; +17.289833333333334, 14387261415.0; +17.296499999999998, 14888310320.0; +17.303166666666666, 15086203585.0; +17.309833333333334, 15410411700.0; +17.316499999999998, 15641988925.0; +17.323166666666665, 15595673480.0; +17.329833333333333, 15389359225.0; +17.3365, 15090414080.0; +17.343166666666665, 14964099230.0; +17.349833333333333, 14841994875.0; +17.3565, 14926204775.0; +17.363166666666665, 15372517245.0; +17.369833333333332, 15793566745.0; +17.3765, 16475666935.0; +17.383166666666668, 17246187520.0; +17.389833333333332, 17873551275.0; +17.3965, 18353547705.0; +17.403166666666667, 18441968100.0; +17.40983333333333, 18366179190.0; +17.4165, 18189338400.0; +17.423166666666667, 18054602560.0; +17.42983333333333, 18227232855.0; +17.4365, 18311442755.0; +17.443166666666666, 18623019385.0; +17.449833333333334, 19263014625.0; +17.4565, 19907220360.0; +17.463166666666666, 20446163720.0; +17.469833333333334, 20837739755.0; +17.476499999999998, 21275631235.0; +17.483166666666666, 21844048060.0; +17.489833333333333, 22172466670.0; +17.4965, 22677726070.0; +17.503166666666665, 23044039135.0; +17.509833333333333, 23393510220.0; +17.5165, 23574561505.0; +17.523166666666665, 23599824475.0; +17.529833333333332, 23658771405.0; +17.5365, 23469299130.0; +17.543166666666668, 23338773785.0; +17.549833333333332, 23435615170.0; +17.5565, 23675613385.0; +17.563166666666667, 23713507840.0; +17.56983333333333, 23633508435.0; +17.5765, 23679823880.0; +17.583166666666667, 23991400510.0; +17.58983333333333, 24252451200.0; +17.5965, 24559817335.0; +17.603166666666667, 24947182875.0; +17.609833333333334, 25368232375.0; +17.6165, 25928228210.0; +17.623166666666666, 26564012955.0; +17.629833333333334, 26745064240.0; +17.636499999999998, 26795590180.0; +17.643166666666666, 27145061265.0; +17.649833333333333, 27822950960.0; +17.6565, 28319789370.0; +17.663166666666665, 28551366595.0; +17.669833333333333, 28976626590.0; +17.6765, 29250308765.0; +17.683166666666665, 29199782825.0; +17.689833333333333, 29406097080.0; +17.6965, 29945040440.0; +17.703166666666664, 30441878850.0; +17.709833333333332, 30681877065.0; +17.7165, 30879770330.0; +17.723166666666668, 31241872900.0; +17.729833333333332, 31296609335.0; +17.7365, 31456608145.0; +17.743166666666667, 32105024375.0; +17.74983333333333, 33267120995.0; +17.7565, 34395533655.0; +17.763166666666667, 34846056620.0; +17.769833333333334, 35212369685.0; +17.7765, 35178685725.0; +17.783166666666666, 35098686320.0; +17.789833333333334, 35006055430.0; +17.796499999999998, 35136580775.0; +17.803166666666666, 35709208095.0; +17.809833333333334, 35957627300.0; +17.816499999999998, 36429202740.0; +17.823166666666665, 36799726300.0; +17.829833333333333, 37006040555.0; +17.8365, 37456563520.0; +17.843166666666665, 37911296980.0; +17.849833333333333, 38846026870.0; +17.8565, 39561811020.0; +17.863166666666665, 40353384080.0; +17.869833333333332, 41250219515.0; +17.8765, 41776531390.0; +17.883166666666668, 42349158710.0; +17.889833333333332, 42845997120.0; +17.8965, 43464939885.0; +17.903166666666667, 43873357900.0; +17.90983333333333, 44037567205.0; +17.9165, 44382827795.0; +17.923166666666667, 44938613135.0; +17.92983333333333, 45359662635.0; +17.9365, 45565976890.0; +17.943166666666666, 45827027580.0; +17.949833333333334, 46664916085.0; +17.9565, 47671224390.0; +17.963166666666666, 48412271510.0; +17.969833333333334, 48947004375.0; +17.976499999999998, 49507000210.0; +17.983166666666666, 50012259610.0; +17.989833333333333, 50155416440.0; +17.9965, 50454361585.0; +18.003166666666665, 51081725340.0; +18.009833333333333, 51869087905.0; +18.0165, 52715397400.0; +18.023166666666665, 53544864915.0; +18.029833333333332, 54479594805.0; +18.0365, 55220641925.0; +18.043166666666668, 55995373005.0; +18.049833333333332, 56803788045.0; +18.0565, 57565887640.0; +18.063166666666667, 58125883475.0; +18.06983333333333, 58315355750.0; +18.0765, 58340618720.0; +18.083166666666667, 58100620505.0; +18.08983333333333, 58003779120.0; +18.0965, 57991147635.0; +18.103166666666667, 58399565650.0; +18.109833333333334, 59224822670.0; +18.1165, 60109026620.0; +18.123166666666666, 60930073145.0; +18.129833333333334, 61645857295.0; +18.136499999999998, 62563745205.0; +18.143166666666666, 63203740445.0; +18.149833333333333, 63645842420.0; +18.1565, 63881630140.0; +18.163166666666665, 64180575285.0; +18.169833333333333, 64386889540.0; +18.1765, 64290048155.0; +18.183166666666665, 64155312315.0; +18.189833333333333, 63927945585.0; +18.1965, 63738473310.0; +18.203166666666664, 63414265195.0; +18.209833333333332, 62997426190.0; +18.2165, 62618481640.0; +18.223166666666668, 62205853130.0; +18.229833333333332, 61869013530.0; +18.2365, 61616383830.0; +18.243166666666667, 61696383235.0; +18.24983333333333, 61927960460.0; +18.2565, 61839540065.0; +18.263166666666667, 61334280665.0; +18.269833333333334, 60500602655.0; +18.2765, 59683766625.0; +18.283166666666666, 58601669410.0; +18.289833333333334, 57490098730.0; +18.296499999999998, 56559579335.0; +18.303166666666666, 56134319340.0; +18.309833333333334, 55902742115.0; +18.316499999999998, 55384851230.0; +18.323166666666665, 54635383120.0; +18.329833333333333, 53932230455.0; +18.3365, 53359603135.0; +18.343166666666665, 52488030670.0; +18.349833333333333, 51271197615.0; +18.3565, 50184889905.0; +18.363166666666665, 49275422985.0; +18.369833333333332, 48134378840.0; +18.3765, 46652284600.0; +18.383166666666668, 45351241645.0; +18.389833333333332, 44408090765.0; +18.3965, 43414413945.0; +18.403166666666667, 42071266040.0; +18.40983333333333, 40547066850.0; +18.4165, 39397601715.0; +18.423166666666667, 38639712615.0; +18.429833333333335, 37894455000.0; +18.4365, 36980777585.0; +18.443166666666666, 36189204525.0; +18.449833333333334, 35978679775.0; +18.4565, 35873417400.0; +18.463166666666666, 35208159190.0; +18.469833333333334, 34319744745.0; +18.476499999999998, 33587118615.0; +18.483166666666666, 33069227730.0; +18.489833333333333, 32151339820.0; +18.4965, 31065032110.0; +18.503166666666665, 30206091130.0; +18.509833333333333, 29456623020.0; +18.5165, 28542945605.0; +18.523166666666665, 27469269380.0; +18.529833333333332, 26433487610.0; +18.5365, 25208233565.0; +18.543166666666668, 24046136945.0; +18.549833333333332, 23178774975.0; +18.5565, 22829303890.0; +18.563166666666667, 22757725475.0; +18.56983333333333, 22639831615.0; +18.5765, 22425096370.0; +18.583166666666667, 22138782710.0; +18.58983333333333, 21827206080.0; +18.5965, 21431419550.0; +18.603166666666667, 20850371240.0; +18.609833333333334, 20265112435.0; +18.6165, 20180902535.0; +18.623166666666666, 20185113030.0; +18.629833333333334, 20004061745.0; +18.636499999999998, 19456697395.0; +18.643166666666666, 19065121360.0; +18.649833333333333, 18749334235.0; +18.6565, 18231443350.0; +18.663166666666665, 17557764150.0; +18.669833333333333, 17086188710.0; +18.6765, 16913558415.0; +18.683166666666665, 16644086735.0; +18.689833333333333, 16357773075.0; +18.6965, 16138827335.0; +18.703166666666664, 16029354465.0; +18.709833333333332, 15616725955.0; +18.7165, 15178834475.0; +18.723166666666668, 15010414675.0; +18.729833333333332, 15035677645.0; +18.7365, 14993572695.0; +18.743166666666667, 14745153490.0; +18.74983333333333, 14530418245.0; +18.7565, 14256736070.0; +18.763166666666667, 13924106965.0; +18.769833333333334, 13469373505.0; +18.7765, 12740957870.0; +18.783166666666666, 11970437285.0; +18.789833333333334, 11490440855.0; +18.796499999999998, 11014654920.0; +18.803166666666666, 10202029385.0; +18.809833333333334, 9157826625.0; +18.8165, 8530462870.0; +18.823166666666665, 8479936930.0; +18.829833333333333, 8484147425.0; +18.8365, 8420990000.0; +18.843166666666665, 8416779505.0; +18.849833333333333, 8652567225.0; +18.8565, 8732566630.0; +18.863166666666665, 8602041285.0; +18.869833333333332, 8374674555.0; +18.8765, 8138886835.0; +18.883166666666668, 7953625055.0; +18.889833333333332, 7700995355.0; +18.8965, 7734679315.0; +18.903166666666667, 7679942880.0; +18.90983333333333, 7435734170.0; +18.9165, 7279945855.0; +18.923166666666667, 7284156350.0; +18.929833333333335, 7587311990.0; +18.9365, 7566259515.0; +18.943166666666666, 7258893380.0; +18.949833333333334, 7170472985.0; +18.9565, 7456786645.0; +18.963166666666666, 7743100305.0; +18.969833333333334, 7309419320.0; +18.976499999999998, 6795738930.0; +18.983166666666666, 6698897545.0; +18.989833333333333, 6808370415.0; +18.9965, 6534688240.0; +19.003166666666665, 6214690620.0; +19.009833333333333, 6467320320.0; +19.0165, 6745212990.0; +19.023166666666665, 6606266655.0; +19.029833333333332, 6079954780.0; +19.0365, 5839956565.0; +19.043166666666668, 5650484290.0; +19.049833333333332, 5368381125.0; +19.0565, 5128382910.0; +19.063166666666667, 5035752020.0; +19.06983333333333, 4993647070.0; +19.0765, 4791543310.0; +19.083166666666667, 4732596380.0; +19.08983333333333, 4736806875.0; +19.0965, 4787332815.0; +19.103166666666667, 5128382910.0; +19.109833333333334, 5734694190.0; +19.1165, 6122059730.0; +19.123166666666666, 5924166465.0; +19.129833333333334, 5166277365.0; +19.136499999999998, 4383125295.0; +19.143166666666666, 3368396000.0; +19.149833333333333, 2244193835.0; +19.1565, 1511567705.0; +19.163166666666665, 1414726320.0; +19.169833333333333, 2113668490.0; +19.1765, 2774716205.0; +19.183166666666665, 3233660160.0; +19.189833333333333, 3482079365.0; +19.1965, 3545236790.0; +19.203166666666664, 3675762135.0; +19.209833333333332, 3671551640.0; +19.2165, 3962075795.0; +19.223166666666668, 4387335790.0; +19.229833333333332, 4732596380.0; +19.2365, 4715754400.0; +19.243166666666667, 4551545095.0; +19.24983333333333, 4244178960.0; +19.2565, 3793655995.0; +19.263166666666667, 3461026890.0; +19.269833333333334, 3208397190.0; +19.2765, 3166292240.0; +19.283166666666666, 2732611255.0; +19.289833333333334, 2185246905.0; +19.296499999999998, 1583146120.0; +19.303166666666666, 1317884935.0; +19.309833333333334, 1469462755.0; +19.3165, 1793670870.0; +19.323166666666665, 2117878985.0; +19.329833333333333, 2475771060.0; +19.3365, 3199976200.0; +19.343166666666665, 3696814610.0; +19.349833333333333, 3865234410.0; +19.3565, 3654709660.0; +19.363166666666665, 3465237385.0; +19.369833333333332, 3482079365.0; +19.3765, 3027345905.0; +19.383166666666668, 2564191455.0; +19.389833333333332, 1945248690.0; +19.3965, 1675777010.0; +19.403166666666667, 1642093050.0; +19.40983333333333, 1423147310.0; +19.4165, 1498936220.0; +19.423166666666667, 1785249880.0; +19.429833333333335, 2471560565.0; +19.4365, 2947346500.0; +19.443166666666666, 3301028080.0; +19.449833333333334, 3814708470.0; +19.4565, 4319967870.0; +19.463166666666666, 4467335195.0; +19.469833333333334, 4079969655.0; +19.476499999999998, 3456816395.0; +19.483166666666666, 2686295810.0; +19.489833333333333, 1738934435.0; +19.4965, 867361970.0; +19.503166666666665, 126314850.0; +19.509833333333333, -159998810.0; +19.5165, 4210495.0; +19.523166666666665, 538943360.0; +19.529833333333332, 1090518205.0; +19.5365, 1288411470.0; +19.543166666666668, 1275779985.0; +19.549833333333332, 985255830.0; +19.5565, 505259400.0; +19.563166666666667, 37894455.0; +19.56983333333333, -67367920.0; +19.5765, 96841385.0; +19.583166666666667, 252629700.0; +19.58983333333333, 526311875.0; +19.5965, 1086307710.0; +19.603166666666667, 1646303545.0; +19.609833333333334, 1785249880.0; +19.6165, 1667356020.0; +19.623166666666666, 1785249880.0; +19.629833333333334, 2046300570.0; +19.636499999999998, 2227351855.0; +19.643166666666666, 2214720370.0; +19.649833333333333, 2113668490.0; +19.6565, 1991564135.0; +19.663166666666665, 1924196215.0; +19.669833333333333, 1844196810.0; +19.6765, 1915775225.0; +19.683166666666665, 2042090075.0; +19.689833333333333, 2362087695.0; +19.6965, 2732611255.0; +19.703166666666668, 2795768680.0; +19.709833333333332, 2589454425.0; +19.7165, 2088405520.0; +19.723166666666668, 1776828890.0; +19.729833333333332, 1524199190.0; +19.7365, 1347358400.0; +19.743166666666667, 1322095430.0; +19.74983333333333, 1494725725.0; +19.7565, 1536830675.0; +19.763166666666667, 1229464540.0; +19.769833333333334, 1090518205.0; +19.7765, 1174728105.0; +19.783166666666666, 1242096025.0; +19.789833333333334, 896835435.0; +19.796499999999998, 581048310.0; +19.803166666666666, 421049500.0; +19.809833333333334, 58946930.0; +19.8165, -391576035.0; +19.823166666666665, -724205140.0; +19.829833333333333, -555785340.0; +19.8365, -134735840.0; +19.843166666666665, 227366730.0; +19.849833333333333, 551574845.0; +19.8565, 479996430.0; +19.863166666666665, 315787125.0; +19.869833333333332, 33683960.0; +19.8765, -21052475.0; +19.883166666666668, 206314255.0; +19.889833333333332, 492627915.0; +19.8965, 854730485.0; +19.903166666666667, 1010518800.0; +19.90983333333333, 1098939195.0; +19.9165, 715784150.0; +19.923166666666667, 21052475.0; +19.929833333333335, -867361970.0; +19.9365, -1498936220.0; +19.943166666666666, -1705250475.0; +19.949833333333334, -1545251665.0; +19.9565, -1263148500.0; +##END= + +$$ === CHEMSPECTRA INTEGRALS AND MULTIPLETS === +##PAGE=280 +##$OBSERVEDINTEGRALS= (X Y Z) +##$OBSERVEDMULTIPLETS= +##$OBSERVEDMULTIPLETSPEAKS= +##END= + +$$ === CHEMSPECTRA PEAK TABLE EDIT === +##TITLE=618becfe-a0ce-4983-ba36-5fdcbb7ed595 +##JCAMP-DX=5.00 +##DATA TYPE=LC/MSPEAKTABLE +##DATA CLASS=PEAKTABLE +##$CSCATEGORY=EDIT_PEAK +##$CSTHRESHOLD=0.05 +##MAXX=19.9565 +##MAXY=171708196595.0 +##MINX=-0.0435 +##MINY=-149068364980.0 +##PAGE=280 +##NPOINTS=0 +##PEAKTABLE= (XY..XY) +1.2098333333333333, 171708196595.0 +2.2565000000000004, 146748382235.0 +11.656500000000001, 95944549565.0 +18.169833333333333, 64386889540.0 +18.24983333333333, 61927960460.0 +18.0765, 58340618720.0 +11.336500000000001, 56597473790.0 +2.623166666666667, 45477556495.0 +2.443166666666667, 38976552215.0 +17.769833333333334, 35212369685.0 +2.823166666666667, 34627110880.0 +12.723166666666668, 32867123970.0 +12.796500000000002, 29502938465.0 +##END= + +$$ === CHEMSPECTRA PEAK TABLE AUTO === +##TITLE=618becfe-a0ce-4983-ba36-5fdcbb7ed595 +##JCAMP-DX=5.00 +##DATA TYPE=LC/MSPEAKTABLE +##DATA CLASS=PEAKTABLE +##$CSCATEGORY=AUTO_PEAK +##$CSTHRESHOLD=0.05 +##MAXX=19.9565 +##MAXY=171708196595.0 +##MINX=-0.0435 +##MINY=-149068364980.0 +##PAGE=280 +##NPOINTS=100 +##PEAKTABLE= (XY..XY) +##END= + +$$ === CHEMSPECTRA UVVIS PEAK TABLE === +##TITLE=618becfe-a0ce-4983-ba36-5fdcbb7ed595 +##JCAMP-DX=5.00 +##DATA TYPE=LC/MS +##DATA CLASS=PEAK TABLE +##ORIGIN= +##OWNER= +##XUNITS=RETENTION TIME +##YUNITS=DETECTOR SIGNAL +##$CSCATEGORY=UVVIS PEAK TABLE +##PAGE=300 +##NPOINTS=3001 +##DATA TABLE= (XY..XY), PEAKS +-0.0435, -75788910.0; +-0.03683333333333333, -117893860.0; +-0.03016666666666666, -172630295.0; +-0.023499999999999997, -33683960.0; +-0.01683333333333333, 185261780.0; +-0.010166666666666664, 391576035.0; +-0.003499999999999996, 227366730.0; +0.003166666666666672, -155788315.0; +0.00983333333333334, -581048310.0; +0.016500000000000008, -1090518205.0; +0.02316666666666667, -1528409685.0; +0.029833333333333337, -1663145525.0; +0.036500000000000005, -1402094835.0; +0.04316666666666667, -770520585.0; +0.04983333333333334, 12631485.0; +0.05650000000000001, 265261185.0; +0.06316666666666668, 54736435.0; +0.06983333333333334, -463154450.0; +0.07650000000000001, -749468110.0; +0.08316666666666668, -1166307115.0; +0.08983333333333333, -1587356615.0; +0.09650000000000002, -1709460970.0; +0.10316666666666667, -1494725725.0; +0.10983333333333335, -1162096620.0; +0.1165, -1254727510.0; +0.12316666666666669, -1221043550.0; +0.12983333333333336, -1027360780.0; +0.1365, -387365540.0; +0.14316666666666666, 151577820.0; +0.14983333333333337, 366313065.0; +0.15650000000000003, 703152665.0; +0.16316666666666668, 1086307710.0; +0.16983333333333334, 1397884340.0; +0.1765, 1103149690.0; +0.1831666666666667, 837888505.0; +0.18983333333333335, 951571870.0; +0.1965, 1204201570.0; +0.20316666666666666, 993676820.0; +0.20983333333333337, 290524155.0; +0.21650000000000003, -357892075.0; +0.22316666666666668, -854730485.0; +0.2298333333333334, -1077886720.0; +0.23650000000000004, -1444199785.0; +0.2431666666666667, -1629461565.0; +0.24983333333333335, -1519988695.0; +0.25650000000000006, -1039992265.0; +0.2631666666666667, -732626130.0; +0.26983333333333337, -766310090.0; +0.2765, -808415040.0; +0.2831666666666667, -821046525.0; +0.2898333333333334, -905256425.0; +0.29650000000000004, -922098405.0; +0.3031666666666667, -833678010.0; +0.30983333333333335, -896835435.0; +0.31650000000000006, -1166307115.0; +0.3231666666666667, -1439989290.0; +0.32983333333333337, -1435778795.0; +0.3365, -1667356020.0; +0.34316666666666673, -1747355425.0; +0.3498333333333334, -1465252260.0; +0.35650000000000004, -1023150285.0; +0.3631666666666667, -888414445.0; +0.3698333333333334, -1098939195.0; +0.37650000000000006, -959992860.0; +0.3831666666666667, -837888505.0; +0.38983333333333337, -1128412660.0; +0.3965, -1431568300.0; +0.40316666666666673, -968413850.0; +0.4098333333333334, -4210495.0; +0.41650000000000004, 467364945.0; +0.4231666666666667, 425259995.0; +0.4298333333333334, 298945145.0; +0.43650000000000005, 8420990.0; +0.4431666666666667, -488417420.0; +0.44983333333333336, -766310090.0; +0.4565, -614732270.0; +0.4631666666666667, -522101380.0; +0.46983333333333344, -627363755.0; +0.47650000000000003, -475785935.0; +0.48316666666666674, -463154450.0; +0.48983333333333334, -892624940.0; +0.49650000000000005, -1263148500.0; +0.5031666666666668, -854730485.0; +0.5098333333333334, 197893265.0; +0.5165000000000001, 901045930.0; +0.5231666666666667, 1258938005.0; +0.5298333333333334, 1376831865.0; +0.5365000000000001, 1166307115.0; +0.5431666666666667, 538943360.0; +0.5498333333333334, -202103760.0; +0.5565000000000001, -479996430.0; +0.5631666666666667, -210524750.0; +0.5698333333333334, 227366730.0; +0.5765, 572627320.0; +0.5831666666666667, 509469895.0; +0.5898333333333334, 336839600.0; +0.5965, 21052475.0; +0.6031666666666667, -273682175.0; +0.6098333333333333, -585258805.0; +0.6165, -825257020.0; +0.6231666666666668, -825257020.0; +0.6298333333333334, -661047715.0; +0.6365000000000001, -618942765.0; +0.6431666666666668, -631574250.0; +0.6498333333333334, -450522965.0; +0.6565000000000001, -168419800.0; +0.6631666666666667, 164209305.0; +0.6698333333333334, 126314850.0; +0.6765000000000001, 189472275.0; +0.6831666666666667, 202103760.0; +0.6898333333333334, 197893265.0; +0.6965000000000001, 269471680.0; +0.7031666666666667, 593679795.0; +0.7098333333333334, 795783555.0; +0.7165, 648416230.0; +0.7231666666666667, 202103760.0; +0.7298333333333334, -298945145.0; +0.7365, -661047715.0; +0.7431666666666668, -1191570085.0; +0.7498333333333334, -1170517610.0; +0.7565000000000001, -736836625.0; +0.7631666666666668, -88420395.0; +0.7698333333333334, 446312470.0; +0.7765000000000001, 741047120.0; +0.7831666666666668, 1296832460.0; +0.7898333333333334, 1911564730.0; +0.7965000000000001, 2273667300.0; +0.8031666666666667, 2336824725.0; +0.8098333333333334, 2197878390.0; +0.8165000000000001, 2197878390.0; +0.8231666666666667, 2155773440.0; +0.8298333333333334, 1793670870.0; +0.8365, 1633672060.0; +0.8431666666666667, 1764197405.0; +0.8498333333333334, 2008406115.0; +0.8565, 1679987505.0; +0.8631666666666667, 837888505.0; +0.8698333333333335, 58946930.0; +0.8765000000000001, -463154450.0; +0.8831666666666668, -858940980.0; +0.8898333333333334, -1258938005.0; +0.8965000000000001, -1355779390.0; +0.9031666666666668, -1061044740.0; +0.9098333333333334, -597890290.0; +0.9165000000000001, -374734055.0; +0.9231666666666667, -117893860.0; +0.9298333333333334, 341050095.0; +0.9365000000000001, 917887910.0; +0.9431666666666667, 1604198595.0; +0.9498333333333334, 2029458590.0; +0.9565, 2366298190.0; +0.9631666666666668, 2336824725.0; +0.9698333333333334, 2147352450.0; +0.9765, 1705250475.0; +0.9831666666666669, 947361375.0; +0.9898333333333335, 513680390.0; +0.9965, 538943360.0; +1.0031666666666665, 926308900.0; +1.0098333333333334, 1317884935.0; +1.0165, 2025248095.0; +1.0231666666666666, 2858926105.0; +1.0298333333333334, 3452605900.0; +1.0365, 3246291645.0; +1.0431666666666666, 2109457995.0; +1.0498333333333334, 475785935.0; +1.0565, -1351568895.0; +1.0631666666666666, -2572612445.0; +1.0698333333333334, -3065240360.0; +1.0765, -2244193835.0; +1.0831666666666666, -58946930.0; +1.0898333333333332, 3094713825.0; +1.0965, 6075744285.0; +1.1031666666666666, 7957835550.0; +1.1098333333333332, 7692574365.0; +1.1165, 2446297595.0; +1.1231666666666666, -10698867795.0; +1.1298333333333332, -32471337440.0; +1.1365, -58445881095.0; +1.1431666666666667, -81995179630.0; +1.1498333333333333, -95805603230.0; +1.1565, -93515093950.0; +1.1631666666666667, -72142621330.0; +1.1698333333333333, -33856590295.0; +1.1764999999999999, 14214631120.0; +1.1831666666666667, 63056373120.0; +1.1898333333333333, 104744484115.0; +1.1965, 134020055850.0; +1.2031666666666667, 150542038230.0; +1.2098333333333333, 157165146865.0; +1.2165, 157114620925.0; +1.2231666666666667, 152929388895.0; +1.2298333333333333, 145927335710.0; +1.2365, 137923184715.0; +1.2431666666666668, 129144302640.0; +1.2498333333333334, 118365435440.0; +1.2565, 101809769100.0; +1.2631666666666665, 75068915355.0; +1.2698333333333334, 37624983320.0; +1.2765, -6905211800.0; +1.2831666666666666, -51814351470.0; +1.2898333333333334, -90955112990.0; +1.2965, -118963325730.0; +1.3031666666666666, -130988499450.0; +1.3098333333333334, -126820109400.0; +1.3165, -111085489585.0; +1.3231666666666666, -91296163085.0; +1.3298333333333334, -72791037560.0; +1.3365, -56925892400.0; +1.3431666666666666, -44138619085.0; +1.3498333333333332, -34222903360.0; +1.3565, -26884010575.0; +1.3631666666666666, -21166158365.0; +1.3698333333333332, -16774612080.0; +1.3765, -13444110535.0; +1.3831666666666667, -10829393140.0; +1.3898333333333333, -8412569010.0; +1.3965, -6564161705.0; +1.4031666666666667, -5199961325.0; +1.4098333333333333, -3835760945.0; +1.4165, -2648401355.0; +1.4231666666666667, -1919985720.0; +1.4298333333333333, -2185246905.0; +1.4365, -2362087695.0; +1.4431666666666667, -2155773440.0; +1.4498333333333333, -1574725130.0; +1.4565, -762099595.0; +1.4631666666666667, 50525940.0; +1.4698333333333333, 1246306520.0; +1.4765, 2126299975.0; +1.4831666666666667, 2336824725.0; +1.4898333333333333, 2021037600.0; +1.4965, 1541041170.0; +1.5031666666666668, 1402094835.0; +1.5098333333333334, 1166307115.0; +1.5165, 968413850.0; +1.5231666666666668, 1141044145.0; +1.5298333333333334, 1494725725.0; +1.5365, 1907354235.0; +1.5431666666666666, 1919985720.0; +1.5498333333333334, 1831565325.0; +1.5565, 1873670275.0; +1.5631666666666666, 1772618395.0; +1.5698333333333334, 1738934435.0; +1.5765, 1696829485.0; +1.5831666666666666, 1835775820.0; +1.5898333333333334, 2088405520.0; +1.5965, 2273667300.0; +1.6031666666666666, 2597875415.0; +1.6098333333333334, 2976819965.0; +1.6165, 3157871250.0; +1.6231666666666666, 3254712635.0; +1.6298333333333332, 3305238575.0; +1.6365, 3503131840.0; +1.6431666666666667, 3612604710.0; +1.6498333333333333, 3562078770.0; +1.6565, 3692604115.0; +1.6631666666666667, 3717867085.0; +1.6698333333333333, 3591552235.0; +1.6765, 3292607090.0; +1.6831666666666667, 3052608875.0; +1.6898333333333333, 2947346500.0; +1.6965000000000001, 2724190265.0; +1.7031666666666667, 2534717990.0; +1.7098333333333333, 2614717395.0; +1.7165, 2690506305.0; +1.7231666666666667, 2993661945.0; +1.7298333333333333, 3141029270.0; +1.7365, 3174713230.0; +1.7431666666666668, 3456816395.0; +1.7498333333333334, 3785235005.0; +1.7565, 4235757970.0; +1.7631666666666668, 4319967870.0; +1.7698333333333334, 4597860540.0; +1.7765, 5389433600.0; +1.7831666666666668, 5949429435.0; +1.7898333333333334, 6336794975.0; +1.7965, 6602056160.0; +1.8031666666666666, 6892580315.0; +1.8098333333333334, 7258893380.0; +1.8165, 7284156350.0; +1.8231666666666666, 7233630410.0; +1.8298333333333334, 6964158730.0; +1.8365, 6791528435.0; +1.8431666666666666, 6753633980.0; +1.8498333333333334, 6176796165.0; +1.8565, 5279960730.0; +1.8631666666666666, 4922068655.0; +1.8698333333333335, 5326276175.0; +1.8765, 5987323890.0; +1.8831666666666667, 6227322105.0; +1.8898333333333333, 6383110420.0; +1.8965, 6627319130.0; +1.9031666666666667, 6408373390.0; +1.9098333333333333, 5772588645.0; +1.9165, 4959963110.0; +1.9231666666666667, 4383125295.0; +1.9298333333333333, 3999970250.0; +1.9365, 3343133030.0; +1.9431666666666667, 2795768680.0; +1.9498333333333333, 2353666705.0; +1.9565, 2046300570.0; +1.9631666666666667, 1882091265.0; +1.9698333333333335, 1835775820.0; +1.9765, 2286298785.0; +1.9831666666666667, 2808400165.0; +1.9898333333333336, 2976819965.0; +1.9965, 2922083530.0; +2.003166666666667, 2749453235.0; +2.009833333333334, 2787347690.0; +2.0165, 2762084720.0; +2.023166666666667, 2522086505.0; +2.0298333333333334, 2046300570.0; +2.0365, 1473673250.0; +2.043166666666667, 1073676225.0; +2.0498333333333334, 846309495.0; +2.0565, 774731080.0; +2.063166666666667, 770520585.0; +2.0698333333333334, 1069465730.0; +2.0765000000000002, 1279990480.0; +2.083166666666667, 1511567705.0; +2.0898333333333334, 1402094835.0; +2.0965000000000003, 1056834245.0; +2.103166666666667, 732626130.0; +2.1098333333333334, 783152070.0; +2.1165000000000003, 1292621965.0; +2.123166666666667, 1898933245.0; +2.1298333333333335, 2404192645.0; +2.1365000000000003, 2778926700.0; +2.143166666666667, 3069450855.0; +2.1498333333333335, 3385237980.0; +2.1565000000000003, 3705235600.0; +2.163166666666667, 3713656590.0; +2.1698333333333335, 3696814610.0; +2.1765000000000003, 3810497975.0; +2.183166666666667, 4037864705.0; +2.1898333333333335, 4075759160.0; +2.1965000000000003, 3570499760.0; +2.2031666666666667, 2989451450.0; +2.2098333333333335, 2522086505.0; +2.2165000000000004, 2109457995.0; +2.2231666666666667, 2972609470.0; +2.2298333333333336, 18113549490.0; +2.2365000000000004, 78344680465.0; +2.2431666666666668, 188482808675.0; +2.2498333333333336, 307917709845.0; +2.2565000000000004, 386729755255.0; +2.2631666666666668, 411133784275.0; +2.2698333333333336, 394093911010.0; +2.2765000000000004, 325513368450.0; +2.283166666666667, 207156354000.0; +2.2898333333333336, 81270974490.0; +2.2965000000000004, -2349456210.0; +2.303166666666667, -30930296270.0; +2.3098333333333336, -30841875875.0; +2.3165000000000004, -22862987850.0; +2.323166666666667, -13932527955.0; +2.3298333333333336, -6117849235.0; +2.3365000000000005, 698942170.0; +2.343166666666667, 6029428840.0; +2.3498333333333337, 9823084835.0; +2.3565000000000005, 12799904800.0; +2.363166666666667, 15717777835.0; +2.3698333333333337, 19688274620.0; +2.3765000000000005, 24993498320.0; +2.383166666666667, 32109234870.0; +2.3898333333333337, 41574427630.0; +2.3965, 52942764130.0; +2.403166666666667, 65300566955.0; +2.4098333333333337, 76883638700.0; +2.4165, 86698302545.0; +2.423166666666667, 93809828600.0; +2.4298333333333337, 97889798255.0; +2.4365, 98710844780.0; +2.443166666666667, 96820332525.0; +2.4498333333333338, 92980361085.0; +2.4565, 87847767680.0; +2.463166666666667, 81860443790.0; +2.4698333333333338, 75271019115.0; +2.4765, 68837382755.0; +2.483166666666667, 62610060650.0; +2.489833333333334, 57144838140.0; +2.4965, 52243821960.0; +2.503166666666667, 48184904780.0; +2.509833333333334, 45069138480.0; +2.5165, 43010206425.0; +2.523166666666667, 42547051975.0; +2.529833333333334, 43587044240.0; +2.5365, 46125972725.0; +2.543166666666667, 49523842190.0; +2.549833333333334, 53186972840.0; +2.5565, 56647999730.0; +2.563166666666667, 59422715935.0; +2.5698333333333334, 60972178095.0; +2.5765000000000002, 61401648585.0; +2.583166666666667, 61300596705.0; +2.5898333333333334, 61359543635.0; +2.5965000000000003, 61481647990.0; +2.603166666666667, 61035335520.0; +2.6098333333333334, 60176394540.0; +2.6165000000000003, 58955350990.0; +2.623166666666667, 57136417150.0; +2.6298333333333335, 54252228075.0; +2.6365000000000003, 50673307325.0; +2.643166666666667, 47679645380.0; +2.6498333333333335, 45368083625.0; +2.6565000000000003, 43073363850.0; +2.663166666666667, 40475488435.0; +2.6698333333333335, 38180768660.0; +2.6765000000000003, 36328150860.0; +2.683166666666667, 34328165735.0; +2.6898333333333335, 31961867545.0; +2.6965000000000003, 30088197270.0; +2.703166666666667, 29288203220.0; +2.7098333333333335, 29279782230.0; +2.7165000000000004, 29410307575.0; +2.723166666666667, 29309255695.0; +2.7298333333333336, 29174519855.0; +2.7365000000000004, 29098730945.0; +2.7431666666666668, 29077678470.0; +2.7498333333333336, 28972416095.0; +2.7565000000000004, 29010310550.0; +2.7631666666666668, 29115572925.0; +2.7698333333333336, 29098730945.0; +2.7765000000000004, 28871364215.0; +2.783166666666667, 28917679660.0; +2.7898333333333336, 29275571735.0; +2.7965000000000004, 29726094700.0; +2.803166666666667, 30332405980.0; +2.8098333333333336, 31157663000.0; +2.8165000000000004, 31987130515.0; +2.823166666666667, 32294496650.0; +2.8298333333333336, 32134497840.0; +2.8365000000000005, 31633448935.0; +2.843166666666667, 30837665380.0; +2.8498333333333337, 29873462025.0; +2.8565000000000005, 28702944415.0; +2.863166666666667, 27208218690.0; +2.8698333333333337, 25473494750.0; +2.8765000000000005, 23721928830.0; +2.883166666666667, 22353517955.0; +2.8898333333333337, 21372472620.0; +2.8965000000000005, 20601952035.0; +2.903166666666667, 20084061150.0; +2.9098333333333337, 19284067100.0; +2.9165000000000005, 18492494040.0; +2.923166666666667, 17423028310.0; +2.9298333333333337, 16378825550.0; +2.9365, 15865145160.0; +2.943166666666667, 15629357440.0; +2.9498333333333338, 15734619815.0; +2.9565, 15818829715.0; +2.963166666666667, 16126195850.0; +2.9698333333333338, 16412509510.0; +2.9765, 16319878620.0; +2.983166666666667, 16071459415.0; +2.989833333333334, 16041985950.0; +2.9965, 16151458820.0; +3.003166666666667, 16143037830.0; +3.009833333333334, 16180932285.0; +3.0165, 16277773670.0; +3.023166666666667, 16463035450.0; +3.029833333333334, 16715665150.0; +3.0365, 16879874455.0; +3.043166666666667, 17435659795.0; +3.049833333333334, 17490396230.0; +3.0565, 17267239995.0; +3.063166666666667, 16530403370.0; +3.069833333333334, 15801987735.0; +3.0765000000000002, 15170413485.0; +3.083166666666667, 14100947755.0; +3.089833333333334, 12951482620.0; +3.0965000000000003, 11726228575.0; +3.103166666666667, 10698867795.0; +3.1098333333333334, 9427298305.0; +3.1165000000000003, 8084150400.0; +3.123166666666667, 6762054970.0; +3.1298333333333335, 5852588050.0; +3.1365000000000003, 5170487860.0; +3.143166666666667, 4985226080.0; +3.1498333333333335, 4922068655.0; +3.1565000000000003, 4795753805.0; +3.163166666666667, 4496808660.0; +3.1698333333333335, 4025233220.0; +3.1765000000000003, 3461026890.0; +3.183166666666667, 2534717990.0; +3.1898333333333335, 1692618990.0; +3.1965000000000003, 1204201570.0; +3.203166666666667, 816836030.0; +3.2098333333333335, 501048905.0; +3.2165000000000004, 193682770.0; +3.223166666666667, 126314850.0; +3.2298333333333336, 256840195.0; +3.2365000000000004, 298945145.0; +3.243166666666667, 248419205.0; +3.2498333333333336, -218945740.0; +3.2565000000000004, -479996430.0; +3.263166666666667, -530522370.0; +3.2698333333333336, -728415635.0; +3.2765000000000004, -1082097215.0; +3.283166666666667, -1170517610.0; +3.2898333333333336, -677889695.0; +3.2965000000000004, -665258210.0; +3.303166666666667, -1330516420.0; +3.3098333333333336, -2113668490.0; +3.3165000000000004, -2661032840.0; +3.323166666666667, -3056819370.0; +3.3298333333333336, -3566289265.0; +3.3365000000000005, -3709446095.0; +3.343166666666667, -3709446095.0; +3.3498333333333337, -3776814015.0; +3.3565000000000005, -4033654210.0; +3.363166666666667, -4193653020.0; +3.3698333333333337, -4404177770.0; +3.3765000000000005, -4858911230.0; +3.383166666666667, -5271539740.0; +3.3898333333333337, -5781009635.0; +3.3965000000000005, -6063112800.0; +3.403166666666667, -6610477150.0; +3.4098333333333337, -6896790810.0; +3.4165000000000005, -6968369225.0; +3.423166666666667, -7039947640.0; +3.4298333333333337, -7128368035.0; +3.4365000000000006, -7755731790.0; +3.443166666666667, -8315727625.0; +3.4498333333333338, -9166247615.0; +3.4565000000000006, -10084135525.0; +3.463166666666667, -10993602445.0; +3.4698333333333338, -11460967390.0; +3.4765, -11427283430.0; +3.483166666666667, -11503072340.0; +3.489833333333334, -11511493330.0; +3.4965, -11242021650.0; +3.503166666666667, -10433606610.0; +3.509833333333334, -9776769390.0; +3.5165, -9406245830.0; +3.523166666666667, -9153616130.0; +3.529833333333334, -8867302470.0; +3.5365, -8740987620.0; +3.543166666666667, -9178879100.0; +3.549833333333334, -9928347210.0; +3.5565, -10479922055.0; +3.563166666666667, -10711499280.0; +3.569833333333334, -10745183240.0; +3.5765000000000002, -10757814725.0; +3.583166666666667, -10374659680.0; +3.589833333333334, -9789400875.0; +3.5965000000000003, -9524139690.0; +3.603166666666667, -9945189190.0; +3.609833333333334, -10951497495.0; +3.6165000000000003, -11768333525.0; +3.623166666666667, -12294645400.0; +3.629833333333334, -12530433120.0; +3.6365000000000003, -12580959060.0; +3.643166666666667, -12450433715.0; +3.6498333333333335, -12143067580.0; +3.6565000000000003, -11999910750.0; +3.663166666666667, -12366223815.0; +3.6698333333333335, -12917798660.0; +3.6765000000000003, -13296743210.0; +3.683166666666667, -13103060440.0; +3.6898333333333335, -12757799850.0; +3.6965000000000003, -12694642425.0; +3.703166666666667, -12922009155.0; +3.7098333333333335, -13330427170.0; +3.7165000000000004, -13839897065.0; +3.723166666666667, -14479892305.0; +3.7298333333333336, -14934625765.0; +3.7365000000000004, -15145150515.0; +3.743166666666667, -15132519030.0; +3.7498333333333336, -15073572100.0; +3.7565000000000004, -15077782595.0; +3.763166666666667, -15065151110.0; +3.7698333333333336, -14799889925.0; +3.7765000000000004, -14412524385.0; +3.7831666666666672, -13907264985.0; +3.7898333333333336, -13591477860.0; +3.7965000000000004, -13372532120.0; +3.8031666666666673, -13279901230.0; +3.8098333333333336, -13692529740.0; +3.8165000000000004, -14172526170.0; +3.823166666666667, -14846205370.0; +3.8298333333333336, -15326201800.0; +3.8365000000000005, -15519884570.0; +3.843166666666667, -15498832095.0; +3.8498333333333337, -15490411105.0; +3.8565000000000005, -15961986545.0; +3.863166666666667, -16197774265.0; +3.8698333333333337, -16151458820.0; +3.8765000000000005, -15987249515.0; +3.883166666666667, -16256721195.0; +3.8898333333333337, -16374615055.0; +3.8965000000000005, -15940934070.0; +3.903166666666667, -15519884570.0; +3.9098333333333337, -15317780810.0; +3.9165000000000005, -15549358035.0; +3.923166666666667, -15587252490.0; +3.9298333333333337, -15557779025.0; +3.9365000000000006, -15743040805.0; +3.943166666666667, -16374615055.0; +3.9498333333333338, -17170398610.0; +3.9565, -17583027120.0; +3.963166666666667, -17570395635.0; +3.9698333333333338, -17658816030.0; +3.9765000000000006, -17747236425.0; +3.9831666666666674, -17486185735.0; +3.9898333333333333, -16985136830.0; +3.9965, -16686191685.0; +4.003166666666667, -16665139210.0; +4.009833333333334, -16551455845.0; +4.016500000000001, -16214616245.0; +4.0231666666666674, -15924092090.0; +4.029833333333333, -15730409320.0; +4.0365, -15507253085.0; +4.043166666666667, -15439885165.0; +4.049833333333334, -15427253680.0; +4.056500000000001, -15545147540.0; +4.0631666666666675, -15743040805.0; +4.069833333333333, -15570410510.0; +4.0765, -15376727740.0; +4.083166666666667, -15060940615.0; +4.089833333333334, -15166202990.0; +4.096500000000001, -15574621005.0; +4.103166666666667, -15658830905.0; +4.1098333333333334, -15898829120.0; +4.1165, -16252510700.0; +4.123166666666667, -16808296040.0; +4.129833333333334, -16934610890.0; +4.136500000000001, -16467245945.0; +4.143166666666667, -16248300205.0; +4.1498333333333335, -16349352085.0; +4.1565, -16319878620.0; +4.163166666666667, -15961986545.0; +4.169833333333334, -15679883380.0; +4.176500000000001, -15768303775.0; +4.183166666666667, -15608304965.0; +4.1898333333333335, -15128308535.0; +4.1965, -14766205965.0; +4.203166666666667, -14871468340.0; +4.209833333333334, -15031467150.0; +4.216500000000001, -15006204180.0; +4.223166666666667, -14976730715.0; +4.229833333333334, -15212518435.0; +4.2365, -15844092685.0; +4.243166666666667, -16429351490.0; +4.249833333333334, -16804085545.0; +4.256500000000001, -17018820790.0; +4.263166666666667, -17566185140.0; +4.269833333333334, -18206180380.0; +4.2765, -18223022360.0; +4.283166666666667, -17957761175.0; +4.289833333333334, -17629342565.0; +4.2965, -17814604345.0; +4.303166666666667, -17957761175.0; +4.309833333333334, -17751446920.0; +4.3165000000000004, -17532501180.0; +4.323166666666667, -17187240590.0; +4.329833333333334, -17376712865.0; +4.3365, -17511448705.0; +4.343166666666667, -17785130880.0; +4.349833333333334, -18079865530.0; +4.3565000000000005, -18328284735.0; +4.363166666666667, -18336705725.0; +4.369833333333334, -17869340780.0; +4.3765, -17431449300.0; +4.383166666666667, -17056715245.0; +4.389833333333334, -17174609105.0; +4.3965000000000005, -17439870290.0; +4.403166666666667, -17991445135.0; +4.409833333333334, -18648282355.0; +4.4165, -18917754035.0; +4.423166666666667, -18858807105.0; +4.429833333333334, -18521967505.0; +4.4365000000000006, -18551440970.0; +4.443166666666667, -18635650870.0; +4.449833333333333, -18521967505.0; +4.4565, -18458810080.0; +4.463166666666667, -18391442160.0; +4.469833333333334, -18568282950.0; +4.476500000000001, -18412494635.0; +4.483166666666667, -18336705725.0; +4.489833333333333, -18294600775.0; +4.4965, -18576703940.0; +4.503166666666667, -19229330665.0; +4.509833333333334, -19545117790.0; +4.516500000000001, -19620906700.0; +4.5231666666666674, -19267225120.0; +4.529833333333333, -19086173835.0; +4.5365, -18989332450.0; +4.543166666666667, -18652492850.0; +4.549833333333334, -18446178595.0; +4.556500000000001, -18711439780.0; +4.5631666666666675, -19709327095.0; +4.569833333333333, -20639846490.0; +4.5765, -20728266885.0; +4.583166666666667, -20656688470.0; +4.589833333333334, -20551426095.0; +4.596500000000001, -20463005700.0; +4.6031666666666675, -19915641350.0; +4.6098333333333334, -19174594230.0; +4.6165, -18913543540.0; +4.623166666666667, -18547230475.0; +4.629833333333334, -18269337805.0; +4.636500000000001, -17974603155.0; +4.643166666666667, -17945129690.0; +4.6498333333333335, -18420915625.0; +4.6565, -19128278785.0; +4.663166666666667, -20096692635.0; +4.669833333333334, -20707214410.0; +4.676500000000001, -20631425500.0; +4.683166666666667, -20025114220.0; +4.6898333333333335, -19018805915.0; +4.6965, -18084076025.0; +4.703166666666667, -17246187520.0; +4.709833333333334, -16644086735.0; +4.716500000000001, -16391457035.0; +4.723166666666667, -16399878025.0; +4.729833333333334, -16509350895.0; +4.7365, -16387246540.0; +4.743166666666667, -16197774265.0; +4.749833333333334, -16273563175.0; +4.756500000000001, -16660928715.0; +4.763166666666667, -17208293065.0; +4.769833333333334, -17789341375.0; +4.7765, -18189338400.0; +4.783166666666667, -18248285330.0; +4.789833333333334, -17865130285.0; +4.796500000000001, -17591448110.0; +4.803166666666667, -17481975240.0; +4.809833333333334, -17444080785.0; +4.8165000000000004, -17503027715.0; +4.823166666666667, -18025129095.0; +4.829833333333334, -18707229285.0; +4.8365, -19014595420.0; +4.843166666666667, -18858807105.0; +4.849833333333334, -18884070075.0; +4.8565000000000005, -19250383140.0; +4.863166666666667, -19540907295.0; +4.869833333333334, -19793536995.0; +4.8765, -19827220955.0; +4.883166666666667, -20037745705.0; +4.889833333333334, -19831431450.0; +4.8965000000000005, -19128278785.0; +4.903166666666667, -18155654440.0; +4.909833333333334, -17052504750.0; +4.9165, -16593560795.0; +4.923166666666667, -16484087925.0; +4.929833333333334, -16871453465.0; +4.9365000000000006, -17174609105.0; +4.943166666666667, -17153556630.0; +4.949833333333334, -17001978810.0; +4.9565, -16858821980.0; +4.963166666666667, -16846190495.0; +4.969833333333334, -16614613270.0; +4.976500000000001, -16572508320.0; +4.983166666666667, -16543034855.0; +4.989833333333333, -16644086735.0; +4.9965, -16492508915.0; +5.003166666666667, -16214616245.0; +5.009833333333334, -15961986545.0; +5.016500000000001, -15553568530.0; +5.0231666666666674, -15658830905.0; +5.029833333333333, -16420930500.0; +5.0365, -17359870885.0; +5.043166666666667, -17827235830.0; +5.049833333333334, -17772499395.0; +5.056500000000001, -18016708105.0; +5.0631666666666675, -18130391470.0; +5.069833333333333, -17595658605.0; +5.0765, -16614613270.0; +5.083166666666667, -15919881595.0; +5.089833333333334, -15738830310.0; +5.096500000000001, -15835671695.0; +5.1031666666666675, -15793566745.0; +5.1098333333333334, -15772514270.0; +5.1165, -15793566745.0; +5.123166666666667, -16210405750.0; +5.129833333333334, -16644086735.0; +5.136500000000001, -16829348515.0; +5.1431666666666676, -17098820195.0; +5.1498333333333335, -17241977025.0; +5.1565, -17347239400.0; +5.163166666666667, -16791454060.0; +5.169833333333334, -16311457630.0; +5.176500000000001, -15688304370.0; +5.183166666666667, -15023046160.0; +5.1898333333333335, -14799889925.0; +5.1965, -14850415865.0; +5.203166666666667, -15199886950.0; +5.209833333333334, -15511463580.0; +5.216500000000001, -16134616840.0; +5.223166666666667, -17166188115.0; +5.229833333333334, -17721973455.0; +5.2365, -18117759985.0; +5.243166666666667, -18298811270.0; +5.249833333333334, -18391442160.0; +5.256500000000001, -18134601965.0; +5.263166666666667, -17515659200.0; +5.269833333333334, -16993557820.0; +5.2765, -16589350300.0; +5.283166666666667, -16239879215.0; +5.289833333333334, -15991460010.0; +5.296500000000001, -15743040805.0; +5.303166666666667, -15620936450.0; +5.309833333333334, -15587252490.0; +5.3165000000000004, -15705146350.0; +5.323166666666667, -15961986545.0; +5.329833333333334, -15987249515.0; +5.336500000000001, -15903039615.0; +5.343166666666667, -15288307345.0; +5.349833333333334, -14719890520.0; +5.3565000000000005, -14105158250.0; +5.363166666666667, -13877791520.0; +5.369833333333334, -13713582215.0; +5.3765, -13898843995.0; +5.383166666666667, -14492523790.0; +5.389833333333334, -15086203585.0; +5.3965000000000005, -15389359225.0; +5.403166666666667, -15263044375.0; +5.409833333333334, -15124098040.0; +5.4165, -14753574480.0; +5.423166666666667, -14446208345.0; +5.429833333333334, -14235683595.0; +5.4365000000000006, -14189368150.0; +5.443166666666667, -14176736665.0; +5.449833333333334, -14357787950.0; +5.4565, -14795679430.0; +5.463166666666667, -14972520220.0; +5.469833333333334, -14761995470.0; +5.476500000000001, -14534628740.0; +5.483166666666667, -14227262605.0; +5.489833333333334, -13671477265.0; +5.4965, -12652537475.0; +5.503166666666667, -12075699660.0; +5.509833333333334, -12020963225.0; +5.516500000000001, -12336750350.0; +5.5231666666666674, -12947272125.0; +5.529833333333333, -13789371125.0; +5.5365, -14707259035.0; +5.543166666666667, -15195676455.0; +5.549833333333334, -15490411105.0; +5.556500000000001, -15557779025.0; +5.5631666666666675, -15216728930.0; +5.569833333333333, -14639891115.0; +5.5765, -14235683595.0; +5.583166666666667, -14252525575.0; +5.589833333333334, -14235683595.0; +5.596500000000001, -14075684785.0; +5.6031666666666675, -14088316270.0; +5.6098333333333334, -14361998445.0; +5.6165, -14749363985.0; +5.623166666666667, -14728311510.0; +5.629833333333334, -14374629930.0; +5.636500000000001, -13839897065.0; +5.6431666666666676, -13444110535.0; +5.6498333333333335, -13014640045.0; +5.6565, -12311487380.0; +5.663166666666667, -11860964415.0; +5.669833333333334, -11717807585.0; +5.676500000000001, -11949384810.0; +5.683166666666668, -12138857085.0; +5.6898333333333335, -12332539855.0; +5.6965, -13002008560.0; +5.703166666666667, -13427268555.0; +5.709833333333334, -13629372315.0; +5.716500000000001, -13393584595.0; +5.723166666666667, -13174638855.0; +5.729833333333334, -12660958465.0; +5.7365, -11212548185.0; +5.743166666666667, -9355719890.0; +5.749833333333334, -7608364465.0; +5.756500000000001, -6538898735.0; +5.763166666666667, -5776799140.0; +5.769833333333334, -5347328650.0; +5.7765, -5511537955.0; +5.783166666666667, -6475741310.0; +5.789833333333334, -7642048425.0; +5.796500000000001, -8294675150.0; +5.803166666666667, -8265201685.0; +5.809833333333334, -8324148615.0; +5.8165000000000004, -8858881480.0; +5.823166666666667, -9465192760.0; +5.829833333333334, -9810453350.0; +5.836500000000001, -9962031170.0; +5.843166666666667, -10214660870.0; +5.849833333333334, -10404133145.0; +5.8565000000000005, -10597815915.0; +5.863166666666667, -10665183835.0; +5.869833333333334, -10799919675.0; +5.876500000000001, -10943076505.0; +5.883166666666667, -11153601255.0; +5.889833333333334, -11343073530.0; +5.8965000000000005, -11136759275.0; +5.903166666666667, -10610447400.0; +5.909833333333334, -10130450970.0; +5.9165, -10054662060.0; +5.923166666666667, -10399922650.0; +5.929833333333334, -10652552350.0; +5.9365000000000006, -10808340665.0; +5.943166666666667, -11157811750.0; +5.949833333333334, -11482019865.0; +5.9565, -11515703825.0; +5.963166666666667, -11309389570.0; +5.969833333333334, -11086233335.0; +5.976500000000001, -10829393140.0; +5.983166666666667, -10467290570.0; +5.989833333333334, -10235713345.0; +5.9965, -10159924435.0; +6.003166666666667, -9700980480.0; +6.009833333333334, -8618883265.0; +6.016500000000001, -6909422295.0; +6.0231666666666674, -5044173010.0; +6.029833333333334, -3061029865.0; +6.0365, -1322095430.0; +6.043166666666667, -21052475.0; +6.049833333333334, 458943955.0; +6.056500000000001, -63157425.0; +6.0631666666666675, -1136833650.0; +6.069833333333333, -2656822345.0; +6.0765, -4155758565.0; +6.083166666666667, -5696799735.0; +6.089833333333334, -7170472985.0; +6.096500000000001, -8286254160.0; +6.1031666666666675, -9098879695.0; +6.1098333333333334, -9359930385.0; +6.1165, -9448350780.0; +6.123166666666667, -8997827815.0; +6.129833333333334, -7860994165.0; +6.136500000000001, -6475741310.0; +6.1431666666666676, -5233645285.0; +6.1498333333333335, -4345230840.0; +6.1565, -3225239170.0; +6.163166666666667, -2319982745.0; +6.169833333333334, -2054721560.0; +6.176500000000001, -2488402545.0; +6.183166666666668, -2884189075.0; +6.1898333333333335, -3406290455.0; +6.1965, -4298915395.0; +6.203166666666667, -5658905280.0; +6.209833333333334, -6644161110.0; +6.216500000000001, -7187314965.0; +6.223166666666668, -7663100900.0; +6.229833333333334, -7999940500.0; +6.2365, -8353622080.0; +6.243166666666667, -8340990595.0; +6.249833333333334, -8719935145.0; +6.256500000000001, -9212563060.0; +6.263166666666667, -9545192165.0; +6.269833333333334, -9258878505.0; +6.2765, -8391516535.0; +6.283166666666667, -7865204660.0; +6.289833333333334, -7734679315.0; +6.296500000000001, -7932572580.0; +6.303166666666667, -8054676935.0; +6.309833333333334, -8273622675.0; +6.3165000000000004, -8783092570.0; +6.323166666666667, -9296772960.0; +6.329833333333334, -9557823650.0; +6.336500000000001, -9519929195.0; +6.343166666666667, -9494666225.0; +6.349833333333334, -9844137310.0; +6.3565000000000005, -10079925030.0; +6.363166666666667, -10147292950.0; +6.369833333333334, -10084135525.0; +6.376500000000001, -10168345425.0; +6.383166666666667, -10357817700.0; +6.389833333333334, -10509395520.0; +6.3965000000000005, -10820972150.0; +6.403166666666667, -10930445020.0; +6.409833333333334, -10602026410.0; +6.416500000000001, -10362028195.0; +6.423166666666667, -10694657300.0; +6.429833333333334, -11351494520.0; +6.4365000000000006, -11667281645.0; +6.443166666666667, -11583071745.0; +6.449833333333334, -11633597685.0; +6.4565, -11507282835.0; +6.463166666666667, -10985181455.0; +6.469833333333334, -10332554730.0; +6.476500000000001, -10117819485.0; +6.483166666666667, -10665183835.0; +6.489833333333334, -11271495115.0; +6.4965, -11629387190.0; +6.503166666666667, -11869385405.0; +6.509833333333334, -12096752135.0; +6.516500000000001, -12387276290.0; +6.5231666666666674, -12362013320.0; +6.529833333333334, -12378855300.0; +6.5365, -12412539260.0; +6.543166666666667, -12467275695.0; +6.549833333333334, -12395697280.0; +6.556500000000001, -12362013320.0; +6.5631666666666675, -12197804015.0; +6.569833333333334, -11949384810.0; +6.5765, -11688334120.0; +6.583166666666667, -11785175505.0; +6.589833333333334, -12273592925.0; +6.596500000000001, -12711484405.0; +6.6031666666666675, -13216743805.0; +6.6098333333333334, -13528320435.0; +6.6165, -13789371125.0; +6.623166666666667, -13873581025.0; +6.629833333333334, -13932527955.0; +6.636500000000001, -14075684785.0; +6.6431666666666676, -14286209535.0; +6.6498333333333335, -14850415865.0; +6.6565, -15536726550.0; +6.663166666666667, -15751461795.0; +6.669833333333334, -15376727740.0; +6.676500000000001, -14993572695.0; +6.683166666666668, -14879889330.0; +6.6898333333333335, -14707259035.0; +6.6965, -14189368150.0; +6.703166666666667, -13797792115.0; +6.709833333333334, -13599898850.0; +6.716500000000001, -13486215485.0; +6.723166666666668, -13136744400.0; +6.729833333333334, -12842009750.0; +6.7365, -12686221435.0; +6.743166666666667, -12551485595.0; +6.749833333333334, -12399907775.0; +6.756500000000001, -11873595900.0; +6.763166666666668, -11368336500.0; +6.769833333333334, -10825182645.0; +6.7765, -10804130170.0; +6.783166666666667, -11069391355.0; +6.789833333333334, -11599913725.0; +6.796500000000001, -12214645995.0; +6.803166666666667, -12976745590.0; +6.809833333333334, -13637793305.0; +6.8165000000000004, -13957790925.0; +6.823166666666667, -14260946565.0; +6.829833333333334, -14197789140.0; +6.836500000000001, -14134631715.0; +6.843166666666667, -13768318650.0; +6.849833333333334, -13330427170.0; +6.8565000000000005, -12686221435.0; +6.863166666666667, -11844122435.0; +6.869833333333334, -11418862440.0; +6.876500000000001, -11389388975.0; +6.883166666666667, -11696755110.0; +6.889833333333334, -12235698470.0; +6.8965000000000005, -13166217865.0; +6.903166666666667, -14269367555.0; +6.909833333333334, -14938836260.0; +6.916500000000001, -14804100420.0; +6.923166666666667, -14096737260.0; +6.929833333333334, -13482004990.0; +6.9365000000000006, -13006219055.0; +6.943166666666667, -12728326385.0; +6.949833333333334, -12842009750.0; +6.956500000000001, -13562004395.0; +6.963166666666667, -14513576265.0; +6.969833333333334, -15111466555.0; +6.976500000000001, -15326201800.0; +6.983166666666667, -15199886950.0; +6.989833333333334, -14879889330.0; +6.9965, -14307262010.0; +7.003166666666667, -14016737855.0; +7.009833333333334, -13890423005.0; +7.016500000000001, -14004106370.0; +7.0231666666666674, -14113579240.0; +7.029833333333334, -14046211320.0; +7.0365, -13860949540.0; +7.043166666666667, -13477794495.0; +7.049833333333334, -13309374695.0; +7.056500000000001, -12934640640.0; +7.0631666666666675, -12762010345.0; +7.069833333333334, -12774641830.0; +7.0765, -13002008560.0; +7.083166666666667, -12846220245.0; +7.089833333333334, -12159909560.0; +7.096500000000001, -11334652540.0; +7.1031666666666675, -10795709180.0; +7.109833333333334, -10353607205.0; +7.1165, -9898873745.0; +7.123166666666667, -9658875530.0; +7.129833333333334, -9932557705.0; +7.136500000000001, -10648341855.0; +7.1431666666666676, -10719920270.0; +7.1498333333333335, -10079925030.0; +7.1565, -9031511775.0; +7.163166666666667, -8614672770.0; +7.169833333333334, -8517831385.0; +7.176500000000001, -8391516535.0; +7.183166666666668, -8319938120.0; +7.1898333333333335, -8825197520.0; +7.1965, -9709401470.0; +7.203166666666667, -10105188000.0; +7.209833333333334, -10020978100.0; +7.216500000000001, -9780979885.0; +7.223166666666668, -9679928005.0; +7.229833333333334, -9671507015.0; +7.2365, -9747295925.0; +7.243166666666667, -9823084835.0; +7.249833333333334, -9743085430.0; +7.256500000000001, -9570455135.0; +7.263166666666668, -9473613750.0; +7.269833333333334, -9372561870.0; +7.2765, -9183089595.0; +7.283166666666667, -9044143260.0; +7.289833333333334, -9157826625.0; +7.296500000000001, -9263089000.0; +7.303166666666668, -9246247020.0; +7.309833333333334, -9115721675.0; +7.3165000000000004, -8985196330.0; +7.323166666666667, -8964143855.0; +7.329833333333334, -8829408015.0; +7.336500000000001, -8888354945.0; +7.343166666666667, -9039932765.0; +7.349833333333334, -9229405040.0; +7.3565000000000005, -9402035335.0; +7.363166666666667, -9608349590.0; +7.369833333333334, -9844137310.0; +7.376500000000001, -9936768200.0; +7.383166666666667, -9911505230.0; +7.389833333333334, -9743085430.0; +7.3965000000000005, -9448350780.0; +7.403166666666667, -8980985835.0; +7.409833333333334, -8900986430.0; +7.416500000000001, -9187300090.0; +7.423166666666667, -9587297115.0; +7.429833333333334, -9709401470.0; +7.4365000000000006, -9730453945.0; +7.443166666666667, -9700980480.0; +7.449833333333334, -9423087810.0; +7.456500000000001, -8724145640.0; +7.463166666666667, -7886257135.0; +7.469833333333334, -7511523080.0; +7.476500000000001, -7486260110.0; +7.483166666666667, -7814678720.0; +7.489833333333334, -7894678125.0; +7.496500000000001, -8075729410.0; +7.503166666666667, -8467305445.0; +7.509833333333334, -9082037715.0; +7.516500000000001, -9654665035.0; +7.5231666666666674, -9827295330.0; +7.529833333333334, -10071504040.0; +7.5365, -10450448590.0; +7.543166666666667, -10997812940.0; +7.549833333333334, -11376757490.0; +7.556500000000001, -11810438475.0; +7.5631666666666675, -12088331145.0; +7.569833333333334, -12218856490.0; +7.5765, -11911490355.0; +7.583166666666667, -11435704420.0; +7.589833333333334, -10568342450.0; +7.596500000000001, -9667296520.0; +7.6031666666666675, -9136774150.0; +7.609833333333334, -9225194545.0; +7.6165, -9789400875.0; +7.623166666666667, -10168345425.0; +7.629833333333334, -10534658490.0; +7.636500000000001, -10589394925.0; +7.6431666666666676, -10686236310.0; +7.649833333333334, -10425185620.0; +7.6565, -10088346020.0; +7.663166666666667, -9898873745.0; +7.669833333333334, -10092556515.0; +7.676500000000001, -10450448590.0; +7.683166666666668, -10500974530.0; +7.6898333333333335, -10412554135.0; +7.6965, -10404133145.0; +7.703166666666667, -10345186215.0; +7.709833333333334, -10020978100.0; +7.716500000000001, -9844137310.0; +7.723166666666668, -9835716320.0; +7.729833333333334, -9730453945.0; +7.7365, -9258878505.0; +7.743166666666667, -8905196925.0; +7.749833333333334, -8858881480.0; +7.756500000000001, -8488357920.0; +7.763166666666668, -8020992975.0; +7.769833333333334, -7646258920.0; +7.7765, -7414681695.0; +7.783166666666667, -6854685860.0; +7.789833333333334, -6210480125.0; +7.796500000000001, -5907324485.0; +7.803166666666668, -5738904685.0; +7.809833333333334, -5524169440.0; +7.8165000000000004, -5263118750.0; +7.823166666666667, -5250487265.0; +7.829833333333334, -5035752020.0; +7.836500000000001, -4665228460.0; +7.843166666666668, -4282073415.0; +7.849833333333334, -4399967275.0; +7.8565000000000005, -5006278555.0; +7.863166666666667, -5397854590.0; +7.869833333333334, -5461012015.0; +7.876500000000001, -5212592810.0; +7.883166666666667, -5132593405.0; +7.889833333333334, -4846279745.0; +7.8965000000000005, -4408388265.0; +7.903166666666667, -4210495000.0; +7.909833333333334, -4437861730.0; +7.916500000000001, -4576808065.0; +7.923166666666667, -4143127080.0; +7.929833333333334, -3326291050.0; +7.9365000000000006, -2437876605.0; +7.943166666666667, -1688408495.0; +7.949833333333334, -1077886720.0; +7.9565, -1027360780.0; +7.963166666666668, -1237885530.0; +7.969833333333334, -1806302355.0; +7.9765000000000015, -2130510470.0; +7.983166666666667, -2067353045.0; +7.989833333333333, -1705250475.0; +7.996500000000001, -1010518800.0; +8.003166666666667, -875782960.0; +8.009833333333335, -736836625.0; +8.0165, -863151475.0; +8.023166666666667, -1048413255.0; +8.029833333333334, -1435778795.0; +8.0365, -2303140765.0; +8.043166666666668, -2564191455.0; +8.049833333333334, -2479981555.0; +8.0565, -1941038195.0; +8.063166666666667, -1629461565.0; +8.069833333333333, -1444199785.0; +8.076500000000001, -808415040.0; +8.083166666666667, -235787720.0; +8.089833333333335, 71578415.0; +8.0965, -303155640.0; +8.103166666666667, -669468705.0; +8.109833333333334, -981045335.0; +8.1165, -1494725725.0; +8.123166666666668, -2319982745.0; +8.129833333333334, -3359975010.0; +8.1365, -4084180150.0; +8.143166666666668, -4669438955.0; +8.149833333333333, -5178908850.0; +8.156500000000001, -5562063895.0; +8.163166666666667, -5692589240.0; +8.169833333333335, -5494695975.0; +8.1765, -5393644095.0; +8.183166666666667, -5486274985.0; +8.189833333333334, -5397854590.0; +8.1965, -5292592215.0; +8.203166666666668, -5364170630.0; +8.209833333333334, -5873640525.0; +8.2165, -6109428245.0; +8.223166666666668, -5966271415.0; +8.229833333333334, -5856798545.0; +8.236500000000001, -6021007850.0; +8.243166666666667, -6164164680.0; +8.249833333333333, -5873640525.0; +8.2565, -5604168845.0; +8.263166666666667, -5519958945.0; +8.269833333333334, -5414696570.0; +8.2765, -5305223700.0; +8.283166666666668, -5258908255.0; +8.289833333333334, -5528379935.0; +8.2965, -5894693000.0; +8.303166666666668, -6088375770.0; +8.309833333333334, -6332584480.0; +8.316500000000001, -6501004280.0; +8.323166666666667, -6526267250.0; +8.329833333333333, -6168375175.0; +8.336500000000001, -5595747855.0; +8.343166666666667, -5233645285.0; +8.349833333333335, -4888384695.0; +8.3565, -4686280935.0; +8.363166666666668, -4484177175.0; +8.369833333333334, -4522071630.0; +8.3765, -4665228460.0; +8.383166666666668, -4690491430.0; +8.389833333333334, -4661017965.0; +8.396500000000001, -4029443715.0; +8.403166666666667, -3254712635.0; +8.409833333333333, -2294719775.0; +8.416500000000001, -1532620180.0; +8.423166666666667, -1115781175.0; +8.429833333333335, -968413850.0; +8.4365, -1124202165.0; +8.443166666666666, -1254727510.0; +8.449833333333334, -1355779390.0; +8.4565, -1242096025.0; +8.463166666666668, -559995835.0; +8.469833333333334, 189472275.0; +8.476500000000001, 576837815.0; +8.483166666666667, 783152070.0; +8.489833333333333, 1077886720.0; +8.496500000000001, 1494725725.0; +8.503166666666667, 1734723940.0; +8.509833333333335, 2214720370.0; +8.5165, 3086292835.0; +8.523166666666667, 3684183125.0; +8.529833333333334, 3848392430.0; +8.5365, 3726288075.0; +8.543166666666668, 3734709065.0; +8.549833333333334, 3890497380.0; +8.556500000000002, 3852602925.0; +8.563166666666667, 3734709065.0; +8.569833333333333, 3549447285.0; +8.576500000000001, 3061029865.0; +8.583166666666667, 1949459185.0; +8.589833333333335, 277892670.0; +8.5965, -1141044145.0; +8.603166666666667, -1873670275.0; +8.609833333333334, -2227351855.0; +8.6165, -2311561755.0; +8.623166666666668, -2214720370.0; +8.629833333333334, -1999985125.0; +8.6365, -1995774630.0; +8.643166666666668, -2231562350.0; +8.649833333333333, -2559980960.0; +8.656500000000001, -2799979175.0; +8.663166666666667, -3090503330.0; +8.669833333333335, -3250502140.0; +8.6765, -3397869465.0; +8.683166666666667, -3494710850.0; +8.689833333333334, -3541026295.0; +8.6965, -3524184315.0; +8.703166666666668, -3292607090.0; +8.709833333333334, -3157871250.0; +8.7165, -3107345310.0; +8.723166666666668, -3069450855.0; +8.729833333333334, -2968398975.0; +8.736500000000001, -2795768680.0; +8.743166666666667, -2602085910.0; +8.749833333333335, -2492613040.0; +8.7565, -2336824725.0; +8.763166666666667, -2467350070.0; +8.769833333333334, -2724190265.0; +8.7765, -3330501545.0; +8.783166666666668, -3545236790.0; +8.789833333333334, -3191555210.0; +8.7965, -2458929080.0; +8.803166666666668, -1903143740.0; +8.809833333333334, -1713671465.0; +8.816500000000001, -1343147905.0; +8.823166666666667, -1406305330.0; +8.829833333333333, -1705250475.0; +8.836500000000001, -2639980365.0; +8.843166666666667, -3469447880.0; +8.849833333333335, -4079969655.0; +8.8565, -4425230245.0; +8.863166666666668, -4543124105.0; +8.869833333333334, -4762069845.0; +8.8765, -4711543905.0; +8.883166666666668, -4151548070.0; +8.889833333333334, -3322080555.0; +8.896500000000001, -2741032245.0; +8.903166666666667, -2698927295.0; +8.909833333333333, -2892610065.0; +8.916500000000001, -2858926105.0; +8.923166666666667, -2795768680.0; +8.929833333333335, -2496823535.0; +8.9365, -2357877200.0; +8.943166666666666, -2261035815.0; +8.949833333333334, -2155773440.0; +8.9565, -1966301165.0; +8.963166666666668, -1970511660.0; +8.969833333333334, -2256825320.0; +8.976500000000001, -2332614230.0; +8.983166666666667, -1751565920.0; +8.989833333333333, -837888505.0; +8.996500000000001, -176840790.0; +9.003166666666667, 58946930.0; +9.009833333333335, -4210495.0; +9.0165, -555785340.0; +9.023166666666667, -1431568300.0; +9.029833333333334, -2353666705.0; +9.0365, -2648401355.0; +9.043166666666668, -2387350665.0; +9.049833333333334, -1915775225.0; +9.056500000000002, -1334726915.0; +9.063166666666667, -728415635.0; +9.069833333333333, -290524155.0; +9.076500000000001, -522101380.0; +9.083166666666667, -1031571275.0; +9.089833333333335, -1444199785.0; +9.0965, -1507357210.0; +9.103166666666667, -1536830675.0; +9.109833333333334, -1679987505.0; +9.1165, -1869459780.0; +9.123166666666668, -2122089480.0; +9.129833333333334, -2370508685.0; +9.1365, -2555770465.0; +9.143166666666668, -2711558780.0; +9.149833333333333, -2454718585.0; +9.156500000000001, -1932617205.0; +9.163166666666667, -1267358995.0; +9.169833333333335, -812625535.0; +9.1765, -538943360.0; +9.183166666666667, -517890885.0; +9.189833333333334, -778941575.0; +9.1965, -1216833055.0; +9.203166666666668, -1364200380.0; +9.209833333333334, -1006308305.0; +9.2165, -522101380.0; +9.223166666666668, 105262375.0; +9.229833333333334, 618942765.0; +9.236500000000001, 1208412065.0; +9.243166666666667, 1519988695.0; +9.249833333333335, 1633672060.0; +9.2565, 1679987505.0; +9.263166666666667, 1658935030.0; +9.269833333333334, 1663145525.0; +9.2765, 1482094240.0; +9.283166666666668, 1503146715.0; +9.289833333333334, 1553672655.0; +9.2965, 1722092455.0; +9.303166666666668, 2092616015.0; +9.309833333333334, 2656822345.0; +9.316500000000001, 3389448475.0; +9.323166666666667, 3983128270.0; +9.329833333333333, 4635754995.0; +9.336500000000001, 5347328650.0; +9.343166666666667, 5823114585.0; +9.349833333333335, 5936797950.0; +9.3565, 5932587455.0; +9.363166666666668, 5831535575.0; +9.369833333333334, 5494695975.0; +9.3765, 5077856970.0; +9.383166666666668, 4724175390.0; +9.389833333333334, 4387335790.0; +9.396500000000001, 3882076390.0; +9.403166666666667, 3393658970.0; +9.409833333333333, 3145239765.0; +9.416500000000001, 2833663135.0; +9.423166666666667, 2534717990.0; +9.429833333333335, 2501034030.0; +9.4365, 2593664920.0; +9.443166666666668, 2606296405.0; +9.449833333333334, 2298930270.0; +9.4565, 2294719775.0; +9.463166666666668, 2606296405.0; +9.469833333333334, 2938925510.0; +9.476500000000001, 3061029865.0; +9.483166666666667, 3065240360.0; +9.489833333333333, 3477868870.0; +9.496500000000001, 3835760945.0; +9.503166666666667, 4050496190.0; +9.509833333333335, 3966286290.0; +9.5165, 3818918965.0; +9.523166666666667, 3806287480.0; +9.529833333333334, 3722077580.0; +9.5365, 3646288670.0; +9.543166666666668, 3444184910.0; +9.549833333333334, 3469447880.0; +9.556500000000002, 3911549855.0; +9.563166666666667, 4370493810.0; +9.569833333333333, 4522071630.0; +9.576500000000001, 4303125890.0; +9.583166666666667, 4151548070.0; +9.589833333333335, 3776814015.0; +9.5965, 3402079960.0; +9.603166666666667, 3389448475.0; +9.609833333333334, 3671551640.0; +9.6165, 4261020940.0; +9.623166666666668, 4576808065.0; +9.629833333333334, 5225224295.0; +9.636500000000002, 6021007850.0; +9.643166666666668, 6762054970.0; +9.649833333333333, 7162051995.0; +9.656500000000001, 7103105065.0; +9.663166666666667, 6858896355.0; +9.669833333333335, 6458899330.0; +9.6765, 5768378150.0; +9.683166666666667, 5073646475.0; +9.689833333333334, 4842069250.0; +9.6965, 4964173605.0; +9.703166666666668, 5343118155.0; +9.709833333333334, 5709431220.0; +9.7165, 6159954185.0; +9.723166666666668, 6298900520.0; +9.729833333333334, 5919955970.0; +9.736500000000001, 5170487860.0; +9.743166666666667, 4395756780.0; +9.749833333333335, 3797866490.0; +9.7565, 3461026890.0; +9.763166666666667, 3444184910.0; +9.769833333333334, 3524184315.0; +9.7765, 3844181935.0; +9.783166666666668, 4391546285.0; +9.789833333333334, 4917858160.0; +9.7965, 4955752615.0; +9.803166666666668, 4690491430.0; +9.809833333333334, 4471545690.0; +9.816500000000001, 4450493215.0; +9.823166666666667, 4218915990.0; +9.829833333333335, 3945233815.0; +9.836500000000001, 4046285695.0; +9.843166666666667, 4286283910.0; +9.849833333333335, 4728385885.0; +9.8565, 5225224295.0; +9.863166666666668, 6084165275.0; +9.869833333333334, 6829422890.0; +9.8765, 7208367440.0; +9.883166666666668, 7469418130.0; +9.889833333333334, 7654679910.0; +9.896500000000001, 7751521295.0; +9.903166666666667, 7570470010.0; +9.909833333333333, 7427313180.0; +9.916500000000001, 7250472390.0; +9.923166666666667, 6821001900.0; +9.929833333333335, 6214690620.0; +9.9365, 5372591620.0; +9.943166666666668, 4572597570.0; +9.949833333333334, 3915760350.0; +9.9565, 3751551045.0; +9.963166666666668, 4037864705.0; +9.969833333333334, 4362072820.0; +9.976500000000001, 4644175985.0; +9.983166666666667, 4959963110.0; +9.989833333333333, 5166277365.0; +9.996500000000001, 5178908850.0; +10.003166666666667, 5284171225.0; +10.009833333333335, 5490485480.0; +10.0165, 5852588050.0; +10.023166666666667, 5827325080.0; +10.029833333333334, 5806272605.0; +10.0365, 5987323890.0; +10.043166666666668, 6248374580.0; +10.049833333333334, 6362057945.0; +10.056500000000002, 6282058540.0; +10.063166666666667, 6412583885.0; +10.069833333333333, 6589424675.0; +10.076500000000001, 6530477745.0; +10.083166666666667, 5915745475.0; +10.089833333333335, 5221013800.0; +10.0965, 4837858755.0; +10.103166666666667, 4926279150.0; +10.109833333333334, 5250487265.0; +10.1165, 5397854590.0; +10.123166666666668, 5402065085.0; +10.129833333333334, 5322065680.0; +10.136500000000002, 5039962515.0; +10.143166666666668, 4884174200.0; +10.149833333333333, 4606281530.0; +10.156500000000001, 4547334600.0; +10.163166666666667, 4618913015.0; +10.169833333333335, 5119961920.0; +10.1765, 5755746665.0; +10.183166666666667, 6088375770.0; +10.189833333333334, 6357847450.0; +10.1965, 6501004280.0; +10.203166666666668, 6842054375.0; +10.209833333333334, 6959948235.0; +10.2165, 7048368630.0; +10.223166666666668, 6947316750.0; +10.229833333333334, 6791528435.0; +10.236500000000001, 6774686455.0; +10.243166666666667, 6808370415.0; +10.249833333333335, 6972579720.0; +10.2565, 7132578530.0; +10.263166666666667, 7195735955.0; +10.269833333333334, 7086263085.0; +10.2765, 6981000710.0; +10.283166666666668, 7208367440.0; +10.289833333333334, 7810468225.0; +10.2965, 8256780695.0; +10.303166666666668, 8740987620.0; +10.309833333333334, 9212563060.0; +10.316500000000001, 9789400875.0; +10.323166666666667, 9856768795.0; +10.329833333333335, 9250457515.0; +10.336500000000001, 8635725245.0; +10.343166666666667, 8282043665.0; +10.349833333333335, 8265201685.0; +10.3565, 8029413965.0; +10.363166666666668, 7734679315.0; +10.369833333333334, 7427313180.0; +10.3765, 7469418130.0; +10.383166666666668, 7536786050.0; +10.389833333333334, 7511523080.0; +10.396500000000001, 7343103280.0; +10.403166666666667, 7490470605.0; +10.409833333333333, 8176781290.0; +10.416500000000001, 8732566630.0; +10.423166666666667, 9060985240.0; +10.429833333333335, 9162037120.0; +10.4365, 9494666225.0; +10.443166666666668, 9869400280.0; +10.449833333333334, 10079925030.0; +10.4565, 10185187405.0; +10.463166666666668, 10256765820.0; +10.469833333333334, 10437817105.0; +10.476500000000001, 10778867200.0; +10.483166666666667, 11065180860.0; +10.489833333333333, 11317810560.0; +10.496500000000001, 11410441450.0; +10.503166666666667, 11557808775.0; +10.509833333333335, 11688334120.0; +10.5165, 11802017485.0; +10.523166666666668, 12113594115.0; +10.529833333333334, 12488328170.0; +10.5365, 13052534500.0; +10.543166666666668, 13738845185.0; +10.549833333333334, 14391471910.0; +10.556500000000002, 14749363985.0; +10.563166666666667, 14774626955.0; +10.569833333333333, 14947257250.0; +10.576500000000001, 15578831500.0; +10.583166666666667, 16223037235.0; +10.589833333333335, 16783033070.0; +10.5965, 17254608510.0; +10.603166666666667, 17654605535.0; +10.609833333333334, 18105128500.0; +10.6165, 18206180380.0; +10.623166666666668, 17848288305.0; +10.629833333333334, 17271450490.0; +10.636500000000002, 16896716435.0; +10.643166666666668, 17010399800.0; +10.649833333333333, 16934610890.0; +10.656500000000001, 16580929310.0; +10.663166666666667, 16349352085.0; +10.669833333333335, 16475666935.0; +10.6765, 16707244160.0; +10.683166666666667, 16736717625.0; +10.689833333333334, 16543034855.0; +10.6965, 16484087925.0; +10.703166666666668, 16761980595.0; +10.709833333333334, 16875663960.0; +10.716500000000002, 16833559010.0; +10.723166666666668, 16669349705.0; +10.729833333333334, 16656718220.0; +10.736500000000001, 16879874455.0; +10.743166666666667, 17225135045.0; +10.749833333333335, 17806183355.0; +10.7565, 18079865530.0; +10.763166666666667, 18180917410.0; +10.769833333333334, 18412494635.0; +10.7765, 18930385520.0; +10.783166666666668, 18863017600.0; +10.789833333333334, 18345126715.0; +10.7965, 18105128500.0; +10.803166666666668, 18235653845.0; +10.809833333333334, 18121970480.0; +10.816500000000001, 17317765935.0; +10.823166666666667, 17119872670.0; +10.829833333333335, 17755657415.0; +10.836500000000001, 18681966315.0; +10.843166666666667, 19170383735.0; +10.849833333333335, 19612485710.0; +10.8565, 20109324120.0; +10.863166666666668, 20277743920.0; +10.869833333333334, 19903009865.0; +10.8765, 19448276405.0; +10.883166666666668, 19675643135.0; +10.889833333333334, 20227217980.0; +10.896500000000001, 21023001535.0; +10.903166666666667, 21768259150.0; +10.909833333333335, 22387201915.0; +10.916500000000001, 22947197750.0; +10.923166666666667, 22997723690.0; +10.929833333333335, 22719831020.0; +10.9365, 22307202510.0; +10.943166666666668, 22193519145.0; +10.949833333333334, 22606147655.0; +10.9565, 22879829830.0; +10.963166666666668, 22833514385.0; +10.969833333333334, 22639831615.0; +10.976500000000001, 22509306270.0; +10.983166666666667, 22117730235.0; +10.989833333333333, 21431419550.0; +10.996500000000001, 20711424905.0; +11.003166666666667, 20500900155.0; +11.009833333333335, 20711424905.0; +11.0165, 20791424310.0; +11.023166666666668, 20753529855.0; +11.029833333333334, 20088271645.0; +11.0365, 19330382545.0; +11.043166666666668, 18155654440.0; +11.049833333333334, 16774612080.0; +11.056500000000002, 15439885165.0; +11.063166666666667, 14328314485.0; +11.069833333333333, 14029369340.0; +11.076500000000001, 13983053895.0; +11.083166666666667, 14336735475.0; +11.089833333333335, 14783047945.0; +11.0965, 15456727145.0; +11.103166666666667, 16088301395.0; +11.109833333333334, 16437772480.0; +11.1165, 16429351490.0; +11.123166666666668, 16235668720.0; +11.129833333333334, 15991460010.0; +11.136500000000002, 15831461200.0; +11.143166666666668, 15987249515.0; +11.149833333333333, 16336720600.0; +11.156500000000001, 17031452275.0; +11.163166666666667, 17616711080.0; +11.169833333333335, 18235653845.0; +11.1765, 18825123145.0; +11.183166666666667, 19372487495.0; +11.189833333333334, 19663011650.0; +11.1965, 19814589470.0; +11.203166666666668, 20138797585.0; +11.209833333333334, 20370374810.0; +11.216500000000002, 20231428475.0; +11.223166666666668, 19945114815.0; +11.229833333333334, 20054587685.0; +11.236500000000001, 20201955010.0; +11.243166666666667, 20277743920.0; +11.249833333333335, 20665109460.0; +11.2565, 21561944895.0; +11.263166666666667, 22391412410.0; +11.269833333333334, 22955618740.0; +11.2765, 23822980710.0; +11.283166666666668, 24816657530.0; +11.289833333333334, 25418758315.0; +11.2965, 25469284255.0; +11.303166666666668, 25444021285.0; +11.309833333333334, 25355600890.0; +11.316500000000001, 24829289015.0; +11.323166666666667, 24126136350.0; +11.329833333333335, 23536667050.0; +11.336500000000001, 23275616360.0; +11.343166666666667, 22934566265.0; +11.349833333333335, 22492464290.0; +11.3565, 21932468455.0; +11.363166666666668, 21279841730.0; +11.369833333333334, 20513531640.0; +11.3765, 19469328880.0; +11.383166666666668, 18681966315.0; +11.389833333333334, 18159864935.0; +11.396500000000001, 18058813055.0; +11.403166666666667, 18016708105.0; +11.409833333333335, 18004076620.0; +11.416500000000001, 18151443945.0; +11.423166666666667, 18277758795.0; +11.429833333333335, 18260916815.0; +11.4365, 18100918005.0; +11.443166666666668, 18218811865.0; +11.449833333333334, 18559861960.0; +11.4565, 19258804130.0; +11.463166666666668, 20159850060.0; +11.469833333333334, 21393525095.0; +11.476500000000001, 23288247845.0; +11.483166666666667, 25675598510.0; +11.489833333333333, 28559787585.0; +11.496500000000001, 31477660620.0; +11.503166666666667, 34614479395.0; +11.509833333333335, 38024980345.0; +11.5165, 41199693575.0; +11.523166666666668, 44256512945.0; +11.529833333333334, 47418594690.0; +11.5365, 50875411085.0; +11.543166666666668, 54509068270.0; +11.549833333333334, 58210093375.0; +11.556500000000002, 62193221645.0; +11.563166666666667, 66306875260.0; +11.569833333333333, 70260530065.0; +11.576500000000001, 74306815760.0; +11.583166666666667, 78555205215.0; +11.589833333333335, 82849910115.0; +11.5965, 86496198785.0; +11.603166666666668, 89308809445.0; +11.609833333333334, 91590897735.0; +11.6165, 93607724840.0; +11.623166666666668, 95611920460.0; +11.629833333333334, 97628747565.0; +11.636500000000002, 100083466150.0; +11.643166666666668, 103026602155.0; +11.649833333333333, 106125526475.0; +11.656500000000001, 108470772190.0; +11.663166666666667, 108500245655.0; +11.669833333333335, 105531846680.0; +11.6765, 99161367745.0; +11.683166666666667, 89851963300.0; +11.689833333333334, 78264681060.0; +11.6965, 65650038040.0; +11.703166666666668, 53460655015.0; +11.709833333333334, 42803892170.0; +11.716500000000002, 34454480585.0; +11.723166666666668, 28210316500.0; +11.729833333333334, 23898769620.0; +11.736500000000001, 20863002725.0; +11.743166666666667, 19056700370.0; +11.749833333333335, 17999866125.0; +11.7565, 17625132070.0; +11.763166666666667, 17860919790.0; +11.769833333333334, 18248285330.0; +11.7765, 18585124930.0; +11.783166666666668, 18736702750.0; +11.789833333333334, 18989332450.0; +11.796500000000002, 19208278190.0; +11.803166666666668, 19090384330.0; +11.809833333333334, 18715650275.0; +11.816500000000001, 18298811270.0; +11.823166666666667, 17987234640.0; +11.829833333333335, 17646184545.0; +11.836500000000001, 17300923955.0; +11.843166666666667, 17065136235.0; +11.849833333333335, 17077767720.0; +11.8565, 17385133855.0; +11.863166666666668, 17764078405.0; +11.869833333333334, 18164075430.0; +11.8765, 18593545920.0; +11.883166666666668, 19216699180.0; +11.889833333333334, 19759853035.0; +11.896500000000001, 19924062340.0; +11.903166666666667, 19839852440.0; +11.909833333333335, 20168271050.0; +11.916500000000001, 20593531045.0; +11.923166666666667, 20892476190.0; +11.929833333333335, 20938791635.0; +11.9365, 20858792230.0; +11.943166666666668, 20547215600.0; +11.949833333333334, 19865115410.0; +11.9565, 19574591255.0; +11.963166666666668, 19738800560.0; +11.969833333333334, 20029324715.0; +11.976500000000001, 20281954415.0; +11.983166666666667, 20799845300.0; +11.989833333333335, 21305104700.0; +11.996500000000001, 21216684305.0; +12.003166666666667, 20837739755.0; +12.009833333333335, 20631425500.0; +12.0165, 20972475595.0; +12.023166666666668, 21355630640.0; +12.029833333333334, 21789311625.0; +12.0365, 21818785090.0; +12.043166666666668, 21599839350.0; +12.049833333333334, 21149316385.0; +12.056500000000002, 20555636590.0; +12.063166666666667, 19583012245.0; +12.069833333333333, 18315653250.0; +12.076500000000001, 17456712270.0; +12.083166666666667, 17069346730.0; +12.089833333333335, 17326186925.0; +12.0965, 17789341375.0; +12.103166666666668, 18732492255.0; +12.109833333333334, 19903009865.0; +12.1165, 21124053415.0; +12.123166666666668, 21810364100.0; +12.129833333333334, 21974573405.0; +12.136500000000002, 21835627070.0; +12.143166666666668, 21759838160.0; +12.149833333333333, 21486155985.0; +12.156500000000001, 21170368860.0; +12.163166666666667, 20863002725.0; +12.169833333333335, 20618794015.0; +12.1765, 20538794610.0; +12.183166666666667, 20260901940.0; +12.189833333333334, 19873536400.0; +12.1965, 19439855415.0; +12.203166666666668, 19359856010.0; +12.209833333333334, 19528275810.0; +12.216500000000002, 19574591255.0; +12.223166666666668, 19650380165.0; +12.229833333333334, 20138797585.0; +12.236500000000001, 20745108865.0; +12.243166666666667, 21161947870.0; +12.249833333333335, 21288262720.0; +12.2565, 21086158960.0; +12.263166666666667, 20841950250.0; +12.269833333333334, 20319848870.0; +12.2765, 19903009865.0; +12.283166666666668, 19620906700.0; +12.289833333333334, 19667222145.0; +12.296500000000002, 20134587090.0; +12.303166666666668, 20610373025.0; +12.309833333333334, 21031422525.0; +12.316500000000001, 21284052225.0; +12.323166666666667, 21275631235.0; +12.329833333333335, 20997738565.0; +12.336500000000001, 20858792230.0; +12.343166666666667, 20791424310.0; +12.349833333333335, 20711424905.0; +12.3565, 20374585305.0; +12.363166666666668, 20311427880.0; +12.369833333333334, 20686161935.0; +12.3765, 20867213220.0; +12.383166666666668, 20909318170.0; +12.389833333333334, 20951423120.0; +12.396500000000001, 21300894205.0; +12.403166666666667, 21561944895.0; +12.409833333333335, 21368262125.0; +12.416500000000001, 21035633020.0; +12.423166666666667, 21094579950.0; +12.429833333333335, 21393525095.0; +12.4365, 21755627665.0; +12.443166666666668, 21599839350.0; +12.449833333333334, 21233526285.0; +12.4565, 20905107675.0; +12.463166666666668, 20319848870.0; +12.469833333333334, 19532486305.0; +12.476500000000001, 18787228690.0; +12.483166666666667, 18905122550.0; +12.489833333333335, 19561959770.0; +12.496500000000001, 20079850655.0; +12.503166666666667, 20176692040.0; +12.509833333333335, 20294585900.0; +12.5165, 20429321740.0; +12.523166666666668, 20496689660.0; +12.529833333333334, 20496689660.0; +12.5365, 20934581140.0; +12.543166666666668, 22041941325.0; +12.549833333333334, 23098775570.0; +12.556500000000002, 23890348630.0; +12.563166666666667, 24041926450.0; +12.569833333333333, 23721928830.0; +12.576500000000001, 23111407055.0; +12.583166666666667, 22319833995.0; +12.589833333333335, 21911415980.0; +12.5965, 21465103510.0; +12.603166666666668, 21507208460.0; +12.609833333333334, 21726154200.0; +12.6165, 21995625880.0; +12.623166666666668, 22117730235.0; +12.629833333333334, 22117730235.0; +12.636500000000002, 22319833995.0; +12.643166666666668, 22105098750.0; +12.649833333333333, 21890363505.0; +12.656500000000001, 21801943110.0; +12.663166666666667, 22155624690.0; +12.669833333333335, 22387201915.0; +12.6765, 22694568050.0; +12.683166666666668, 23355615765.0; +12.689833333333334, 24151399320.0; +12.6965, 24774552580.0; +12.703166666666668, 24681921690.0; +12.709833333333334, 24618764265.0; +12.716500000000002, 24130346845.0; +12.723166666666668, 23797717740.0; +12.729833333333334, 23422983685.0; +12.736500000000001, 23220879925.0; +12.743166666666667, 22993513195.0; +12.749833333333335, 22576674190.0; +12.7565, 22568253200.0; +12.763166666666667, 22395622905.0; +12.769833333333334, 22210361125.0; +12.7765, 21452472025.0; +12.783166666666668, 20993528070.0; +12.789833333333334, 20698793420.0; +12.796500000000002, 20378795800.0; +12.803166666666668, 20025114220.0; +12.809833333333334, 19768274025.0; +12.816500000000001, 20273533425.0; +12.823166666666667, 20614583520.0; +12.829833333333335, 20576689065.0; +12.836500000000001, 20214586495.0; +12.843166666666667, 19957746300.0; +12.849833333333335, 19709327095.0; +12.8565, 19410381950.0; +12.863166666666668, 19330382545.0; +12.869833333333334, 19519854820.0; +12.876500000000002, 19700906105.0; +12.883166666666668, 19692485115.0; +12.889833333333334, 19709327095.0; +12.896500000000001, 19477749870.0; +12.903166666666667, 19330382545.0; +12.909833333333335, 19204067695.0; +12.916500000000001, 19086173835.0; +12.923166666666667, 18509336020.0; +12.929833333333335, 17650395040.0; +12.9365, 16837769505.0; +12.943166666666668, 16071459415.0; +12.949833333333334, 15216728930.0; +12.9565, 14500944780.0; +12.963166666666668, 14378840425.0; +12.969833333333334, 14673575075.0; +12.976500000000001, 14968309725.0; +12.983166666666667, 15069361605.0; +12.989833333333335, 15372517245.0; +12.996500000000001, 15671462390.0; +13.003166666666667, 15957776050.0; +13.009833333333335, 15961986545.0; +13.0165, 16201984760.0; +13.023166666666668, 16707244160.0; +13.029833333333334, 17174609105.0; +13.0365, 17625132070.0; +13.043166666666668, 17528290685.0; +13.049833333333334, 17098820195.0; +13.056500000000002, 16281984165.0; +13.063166666666667, 15321991305.0; +13.069833333333335, 14614628145.0; +13.076500000000001, 14227262605.0; +13.083166666666667, 14328314485.0; +13.089833333333335, 14559891710.0; +13.0965, 14749363985.0; +13.103166666666668, 14871468340.0; +13.109833333333334, 14943046755.0; +13.1165, 14875678835.0; +13.123166666666668, 14614628145.0; +13.129833333333334, 14383050920.0; +13.136500000000002, 14193578645.0; +13.143166666666668, 13924106965.0; +13.149833333333333, 13465163010.0; +13.156500000000001, 12905167175.0; +13.163166666666667, 12724115890.0; +13.169833333333335, 12656747970.0; +13.1765, 12804115295.0; +13.183166666666668, 13077797470.0; +13.189833333333334, 13317795685.0; +13.1965, 13279901230.0; +13.203166666666668, 13212533310.0; +13.209833333333334, 13524109940.0; +13.216500000000002, 13869370530.0; +13.223166666666668, 13705161225.0; +13.229833333333334, 13540951920.0; +13.236500000000001, 13764108155.0; +13.243166666666667, 13806213105.0; +13.249833333333335, 13326216675.0; +13.2565, 12627274505.0; +13.263166666666667, 12256750945.0; +13.269833333333334, 11785175505.0; +13.2765, 11284126600.0; +13.283166666666668, 11246232145.0; +13.289833333333334, 11738860060.0; +13.296500000000002, 12420960250.0; +13.303166666666668, 12863062225.0; +13.309833333333334, 13271480240.0; +13.316500000000001, 13797792115.0; +13.323166666666667, 14058842805.0; +13.329833333333335, 13978843400.0; +13.336500000000001, 13574635880.0; +13.343166666666667, 13427268555.0; +13.349833333333335, 13267269745.0; +13.3565, 12884114700.0; +13.363166666666668, 12387276290.0; +13.369833333333334, 11936753325.0; +13.376500000000002, 11730439070.0; +13.383166666666668, 11477809370.0; +13.389833333333334, 11515703825.0; +13.396500000000001, 11654650160.0; +13.403166666666667, 11667281645.0; +13.409833333333335, 11486230360.0; +13.416500000000001, 11220969175.0; +13.423166666666667, 11355705015.0; +13.429833333333335, 11477809370.0; +13.4365, 11637808180.0; +13.443166666666668, 11999910750.0; +13.449833333333334, 12534643615.0; +13.4565, 12846220245.0; +13.463166666666668, 12719905395.0; +13.469833333333334, 12820957275.0; +13.476500000000001, 13414637070.0; +13.483166666666667, 13949369935.0; +13.489833333333335, 14223052110.0; +13.496500000000001, 14593575670.0; +13.503166666666667, 15090414080.0; +13.509833333333335, 15284096850.0; +13.5165, 14804100420.0; +13.523166666666668, 14176736665.0; +13.529833333333334, 13810423600.0; +13.5365, 13730424195.0; +13.543166666666668, 13696740235.0; +13.549833333333334, 13486215485.0; +13.556500000000002, 13157796875.0; +13.563166666666667, 12888325195.0; +13.569833333333335, 12833588760.0; +13.576500000000001, 13044113510.0; +13.583166666666667, 13439900040.0; +13.589833333333335, 13797792115.0; +13.5965, 13919896470.0; +13.603166666666668, 13962001420.0; +13.609833333333334, 13620951325.0; +13.6165, 13035692520.0; +13.623166666666668, 12340960845.0; +13.629833333333334, 12050436690.0; +13.636500000000002, 12353592330.0; +13.643166666666668, 12905167175.0; +13.649833333333333, 13620951325.0; +13.656500000000001, 14071474290.0; +13.663166666666667, 14113579240.0; +13.669833333333335, 13991474885.0; +13.6765, 13688319245.0; +13.683166666666668, 13044113510.0; +13.689833333333334, 12218856490.0; +13.6965, 11734649565.0; +13.703166666666668, 11764123030.0; +13.709833333333334, 11663071150.0; +13.716500000000002, 11536756300.0; +13.723166666666668, 11633597685.0; +13.729833333333334, 11852543425.0; +13.736500000000001, 11768333525.0; +13.743166666666667, 11271495115.0; +13.749833333333335, 10669394330.0; +13.7565, 10138871960.0; +13.763166666666669, 10100977505.0; +13.769833333333334, 10332554730.0; +13.7765, 10648341855.0; +13.783166666666668, 10926234525.0; +13.789833333333334, 11267284620.0; +13.796500000000002, 11764123030.0; +13.803166666666668, 11924121840.0; +13.809833333333334, 12100962630.0; +13.816500000000001, 12214645995.0; +13.823166666666667, 12547275100.0; +13.829833333333335, 13060955490.0; +13.836500000000001, 13233585785.0; +13.843166666666667, 12724115890.0; +13.849833333333335, 11545177290.0; +13.8565, 10627289380.0; +13.863166666666668, 9869400280.0; +13.869833333333334, 9220984050.0; +13.876500000000002, 8665198710.0; +13.883166666666668, 8808355540.0; +13.889833333333334, 9519929195.0; +13.896500000000001, 10231502850.0; +13.903166666666667, 10724130765.0; +13.909833333333335, 10976760465.0; +13.916500000000001, 11330442045.0; +13.923166666666667, 11503072340.0; +13.929833333333335, 11772544020.0; +13.9365, 11886227385.0; +13.943166666666668, 12109383620.0; +13.949833333333334, 12176751540.0; +13.956500000000002, 12063068175.0; +13.963166666666668, 12037805205.0; +13.969833333333334, 11966226790.0; +13.976500000000001, 11945174315.0; +13.983166666666667, 11852543425.0; +13.989833333333335, 11730439070.0; +13.996500000000001, 11557808775.0; +14.003166666666667, 11254653135.0; +14.009833333333335, 11002023435.0; +14.0165, 10774656705.0; +14.023166666666668, 10745183240.0; +14.029833333333334, 11010444425.0; +14.0365, 11802017485.0; +14.043166666666668, 12458854705.0; +14.049833333333334, 12639905990.0; +14.056500000000002, 12580959060.0; +14.063166666666667, 12530433120.0; +14.069833333333335, 12517801635.0; +14.076500000000001, 11886227385.0; +14.083166666666667, 11246232145.0; +14.089833333333335, 11077812345.0; +14.0965, 11322021055.0; +14.103166666666668, 11557808775.0; +14.109833333333334, 11313600065.0; +14.1165, 11275705610.0; +14.123166666666668, 11309389570.0; +14.129833333333334, 11309389570.0; +14.136500000000002, 10858866605.0; +14.143166666666668, 10311502255.0; +14.149833333333333, 10197818890.0; +14.156500000000001, 10433606610.0; +14.163166666666667, 10930445020.0; +14.169833333333335, 11056759870.0; +14.1765, 10959918485.0; +14.183166666666668, 10534658490.0; +14.189833333333334, 10159924435.0; +14.1965, 9738874935.0; +14.203166666666668, 9275720485.0; +14.209833333333334, 9044143260.0; +14.216500000000002, 9195721080.0; +14.223166666666668, 9633612560.0; +14.229833333333334, 10328344235.0; +14.236500000000001, 11060970365.0; +14.243166666666667, 11894648375.0; +14.249833333333335, 12513591140.0; +14.2565, 12934640640.0; +14.263166666666669, 13338848160.0; +14.269833333333334, 13402005585.0; +14.2765, 13284111725.0; +14.283166666666668, 12694642425.0; +14.289833333333334, 12126225600.0; +14.296500000000002, 12025173720.0; +14.303166666666668, 12227277480.0; +14.309833333333334, 12669379455.0; +14.316500000000001, 12926219650.0; +14.323166666666667, 13494636475.0; +14.329833333333335, 14033579835.0; +14.336500000000001, 14100947755.0; +14.343166666666667, 13528320435.0; +14.349833333333335, 12711484405.0; +14.3565, 12109383620.0; +14.363166666666668, 11343073530.0; +14.369833333333334, 10783077695.0; +14.376500000000002, 10610447400.0; +14.383166666666668, 11385178480.0; +14.389833333333334, 12260961440.0; +14.396500000000001, 12879904205.0; +14.403166666666667, 13431479050.0; +14.409833333333335, 13844107560.0; +14.416500000000001, 14172526170.0; +14.423166666666667, 13869370530.0; +14.429833333333335, 13414637070.0; +14.4365, 13216743805.0; +14.443166666666668, 13212533310.0; +14.449833333333334, 13267269745.0; +14.456500000000002, 12943061630.0; +14.463166666666668, 12665168960.0; +14.469833333333334, 12513591140.0; +14.476500000000001, 12315697875.0; +14.483166666666667, 12042015700.0; +14.489833333333335, 11692544615.0; +14.496500000000001, 11557808775.0; +14.503166666666667, 11090443830.0; +14.509833333333335, 10808340665.0; +14.5165, 10694657300.0; +14.523166666666668, 11023075910.0; +14.529833333333334, 11557808775.0; +14.5365, 12050436690.0; +14.543166666666668, 12597801040.0; +14.549833333333334, 12534643615.0; +14.556500000000002, 12517801635.0; +14.563166666666667, 12273592925.0; +14.569833333333335, 11966226790.0; +14.576500000000001, 11629387190.0; +14.583166666666667, 11616755705.0; +14.589833333333335, 11999910750.0; +14.5965, 12054647185.0; +14.603166666666668, 11764123030.0; +14.609833333333334, 11153601255.0; +14.6165, 10846235120.0; +14.623166666666668, 10964128980.0; +14.629833333333334, 11364126005.0; +14.636500000000002, 11557808775.0; +14.643166666666668, 11793596495.0; +14.649833333333335, 12349381835.0; +14.656500000000001, 12888325195.0; +14.663166666666667, 12900956680.0; +14.669833333333335, 12420960250.0; +14.6765, 12063068175.0; +14.683166666666668, 11856753920.0; +14.689833333333334, 11671492140.0; +14.6965, 11498861845.0; +14.703166666666668, 11747281050.0; +14.709833333333334, 12159909560.0; +14.716500000000002, 12715694900.0; +14.723166666666668, 13006219055.0; +14.729833333333334, 13439900040.0; +14.736500000000001, 13844107560.0; +14.743166666666667, 13747266175.0; +14.749833333333335, 13629372315.0; +14.7565, 13439900040.0; +14.763166666666669, 13460952515.0; +14.769833333333334, 13027271530.0; +14.7765, 12206225005.0; +14.783166666666668, 11427283430.0; +14.789833333333334, 10602026410.0; +14.796500000000002, 10084135525.0; +14.803166666666668, 9928347210.0; +14.809833333333334, 10218871365.0; +14.816500000000001, 10479922055.0; +14.823166666666667, 10673604825.0; +14.829833333333335, 10896761060.0; +14.836500000000001, 11364126005.0; +14.843166666666669, 11755702040.0; +14.849833333333335, 12223066985.0; +14.8565, 13039903015.0; +14.863166666666668, 14100947755.0; +14.869833333333334, 15216728930.0; +14.876500000000002, 15557779025.0; +14.883166666666668, 15225149920.0; +14.889833333333334, 14441997850.0; +14.896500000000001, 13780950135.0; +14.903166666666667, 13111481430.0; +14.909833333333335, 12576748565.0; +14.916500000000001, 12378855300.0; +14.923166666666667, 12555696090.0; +14.929833333333335, 12635695495.0; +14.9365, 12425170745.0; +14.943166666666668, 12290434905.0; +14.949833333333334, 12063068175.0; +14.956500000000002, 11620966200.0; +14.963166666666668, 11103075315.0; +14.969833333333334, 10778867200.0; +14.976500000000001, 10795709180.0; +14.983166666666667, 10602026410.0; +14.989833333333335, 10332554730.0; +14.996500000000001, 10050451565.0; +15.003166666666667, 9928347210.0; +15.009833333333335, 9991504635.0; +15.0165, 9886242260.0; +15.023166666666668, 9789400875.0; +15.029833333333334, 9738874935.0; +15.036500000000002, 10079925030.0; +15.043166666666668, 10753604230.0; +15.049833333333334, 11599913725.0; +15.056500000000002, 12395697280.0; +15.063166666666667, 12879904205.0; +15.069833333333335, 13136744400.0; +15.076500000000001, 13195691330.0; +15.083166666666667, 13170428360.0; +15.089833333333335, 12875693710.0; +15.0965, 12454644210.0; +15.103166666666668, 12345171340.0; +15.109833333333334, 12391486785.0; +15.1165, 12336750350.0; +15.123166666666668, 11995700255.0; +15.129833333333334, 11486230360.0; +15.136500000000002, 11124127790.0; +15.143166666666668, 10749393735.0; +15.149833333333335, 10391501660.0; +15.156500000000001, 10063083050.0; +15.163166666666667, 9368351375.0; +15.169833333333335, 8934670390.0; +15.1765, 8631514750.0; +15.183166666666668, 8926249400.0; +15.189833333333334, 9187300090.0; +15.1965, 9536771175.0; +15.203166666666668, 10252555325.0; +15.209833333333334, 10854656110.0; +15.216500000000002, 11166232740.0; +15.223166666666668, 10774656705.0; +15.229833333333334, 10366238690.0; +15.236500000000001, 9957820675.0; +15.243166666666667, 9486245235.0; +15.249833333333335, 9300983455.0; +15.2565, 9507297710.0; +15.263166666666669, 9882031765.0; +15.269833333333334, 10210450375.0; +15.2765, 10572552945.0; +15.283166666666668, 11199916700.0; +15.289833333333334, 11793596495.0; +15.296500000000002, 12008331740.0; +15.303166666666668, 12100962630.0; +15.309833333333334, 12185172530.0; +15.316500000000001, 12256750945.0; +15.323166666666667, 12340960845.0; +15.329833333333335, 12197804015.0; +15.336500000000001, 12016752730.0; +15.343166666666669, 11818859465.0; +15.349833333333335, 11700965605.0; +15.3565, 11713597090.0; +15.363166666666668, 11473598875.0; +15.369833333333334, 11187285215.0; +15.376500000000002, 10993602445.0; +15.383166666666668, 10951497495.0; +15.389833333333334, 11309389570.0; +15.396500000000001, 11642018675.0; +15.403166666666667, 11983068770.0; +15.409833333333335, 11856753920.0; +15.416500000000001, 11747281050.0; +15.423166666666667, 11785175505.0; +15.429833333333335, 11574650755.0; +15.4365, 11246232145.0; +15.443166666666668, 10854656110.0; +15.449833333333334, 10905182050.0; +15.456500000000002, 11031496900.0; +15.463166666666668, 11023075910.0; +15.469833333333334, 10812551160.0; +15.476500000000001, 10715709775.0; +15.483166666666667, 10930445020.0; +15.489833333333335, 11536756300.0; +15.496500000000001, 11911490355.0; +15.503166666666667, 11974647780.0; +15.509833333333335, 12075699660.0; +15.5165, 12029384215.0; +15.523166666666668, 11945174315.0; +15.529833333333334, 11486230360.0; +15.536500000000002, 11271495115.0; +15.543166666666668, 11204127195.0; +15.549833333333334, 11267284620.0; +15.556500000000002, 11439914915.0; +15.563166666666667, 11355705015.0; +15.569833333333335, 11406230955.0; +15.576500000000001, 11465177885.0; +15.583166666666667, 11810438475.0; +15.589833333333335, 12164120055.0; +15.5965, 12265171935.0; +15.603166666666668, 12235698470.0; +15.609833333333334, 11966226790.0; +15.6165, 11654650160.0; +15.623166666666668, 11326231550.0; +15.629833333333334, 11027286405.0; +15.636500000000002, 11119917295.0; +15.643166666666668, 11199916700.0; +15.649833333333335, 11187285215.0; +15.656500000000001, 11014654920.0; +15.663166666666667, 10905182050.0; +15.669833333333335, 10770446210.0; +15.6765, 10260976315.0; +15.683166666666668, 10147292950.0; +15.689833333333334, 10383080670.0; +15.6965, 10707288785.0; +15.703166666666668, 10690446805.0; +15.709833333333334, 10703078290.0; +15.716500000000002, 10976760465.0; +15.723166666666668, 10858866605.0; +15.729833333333335, 10698867795.0; +15.736500000000001, 10795709180.0; +15.743166666666667, 11149390760.0; +15.749833333333335, 11338863035.0; +15.7565, 11456756895.0; +15.763166666666669, 12033594710.0; +15.769833333333334, 12471486190.0; +15.7765, 12239908965.0; +15.783166666666668, 11633597685.0; +15.789833333333334, 11136759275.0; +15.796500000000002, 10656762845.0; +15.803166666666668, 10122029980.0; +15.809833333333334, 9764137905.0; +15.816500000000001, 9915715725.0; +15.823166666666667, 10164134930.0; +15.829833333333335, 10307291760.0; +15.836500000000001, 10433606610.0; +15.843166666666669, 10538868985.0; +15.849833333333335, 10656762845.0; +15.8565, 10711499280.0; +15.863166666666668, 10930445020.0; +15.869833333333334, 11002023435.0; +15.876500000000002, 10867287595.0; +15.883166666666668, 10378870175.0; +15.889833333333334, 9974662655.0; +15.896500000000001, 9974662655.0; +15.903166666666667, 10223081860.0; +15.909833333333335, 10576763440.0; +15.916500000000001, 10871498090.0; +15.923166666666669, 11077812345.0; +15.929833333333335, 10938866010.0; +15.9365, 10340975720.0; +15.943166666666668, 9519929195.0; +15.949833333333334, 8652567225.0; +15.9565, 7738889810.0; +15.963166666666668, 6976790215.0; +15.969833333333336, 6458899330.0; +15.9765, 5903113990.0; +15.983166666666667, 5397854590.0; +15.989833333333335, 5132593405.0; +15.996500000000003, 5098909445.0; +16.003166666666665, 4804174795.0; +16.009833333333333, 4042075200.0; +16.0165, 3237870655.0; +16.023166666666665, 2231562350.0; +16.029833333333332, 1178938600.0; +16.0365, 235787720.0; +16.043166666666664, -159998810.0; +16.049833333333332, -214735245.0; +16.0565, -117893860.0; +16.063166666666667, -143156830.0; +16.06983333333333, -602100785.0; +16.0765, -1751565920.0; +16.083166666666667, -3477868870.0; +16.08983333333333, -5275750235.0; +16.0965, -7094684075.0; +16.103166666666667, -8749408610.0; +16.109833333333334, -10210450375.0; +16.1165, -11162022245.0; +16.123166666666666, -11907279860.0; +16.129833333333334, -12850430740.0; +16.136499999999998, -14172526170.0; +16.143166666666666, -15604094470.0; +16.149833333333333, -16690402180.0; +16.156499999999998, -17730394445.0; +16.163166666666665, -18715650275.0; +16.169833333333333, -20075640160.0; +16.1765, -21212473810.0; +16.183166666666665, -22155624690.0; +16.189833333333333, -23300879330.0; +16.1965, -24517712385.0; +16.203166666666664, -25599809600.0; +16.209833333333332, -25776650390.0; +16.2165, -25726124450.0; +16.223166666666668, -26109279495.0; +16.229833333333332, -26698748795.0; +16.2365, -27115587800.0; +16.243166666666667, -27326112550.0; +16.24983333333333, -27928213335.0; +16.2565, -28867153720.0; +16.263166666666667, -29317676685.0; +16.269833333333334, -29347150150.0; +16.2765, -29671358265.0; +16.283166666666666, -30412405385.0; +16.289833333333334, -31043979635.0; +16.296499999999998, -31460818640.0; +16.303166666666666, -32147129325.0; +16.309833333333334, -33018701790.0; +16.316499999999998, -33730275445.0; +16.323166666666665, -34206061380.0; +16.329833333333333, -34589216425.0; +16.3365, -34622900385.0; +16.343166666666665, -34391323160.0; +16.349833333333333, -34269218805.0; +16.3565, -34471322565.0; +16.363166666666665, -34871319590.0; +16.369833333333332, -35494472850.0; +16.3765, -36526044125.0; +16.383166666666668, -37515510450.0; +16.389833333333332, -38618660140.0; +16.3965, -39216550430.0; +16.403166666666667, -39717599335.0; +16.40983333333333, -39886019135.0; +16.4165, -39532337555.0; +16.423166666666667, -38816553405.0; +16.42983333333333, -37494457975.0; +16.4365, -36496570660.0; +16.443166666666666, -35688155620.0; +16.449833333333334, -35237632655.0; +16.4565, -35523946315.0; +16.463166666666666, -36184994030.0; +16.469833333333334, -36879725705.0; +16.476499999999998, -36820778775.0; +16.483166666666666, -36231309475.0; +16.489833333333333, -35641840175.0; +16.4965, -34753425730.0; +16.503166666666665, -33928168710.0; +16.509833333333333, -33178700600.0; +16.5165, -32993438820.0; +16.523166666666665, -32816598030.0; +16.529833333333332, -32382917045.0; +16.5365, -31713448340.0; +16.543166666666664, -30968190725.0; +16.549833333333332, -30260827565.0; +16.5565, -29187151340.0; +16.563166666666667, -28286105410.0; +16.56983333333333, -27254534135.0; +16.5765, -26576644440.0; +16.583166666666667, -26058753555.0; +16.58983333333333, -25780860885.0; +16.5965, -25810334350.0; +16.603166666666667, -25844018310.0; +16.609833333333334, -25814544845.0; +16.6165, -25279811980.0; +16.623166666666666, -24559817335.0; +16.629833333333334, -23924032590.0; +16.636499999999998, -23246142895.0; +16.643166666666666, -22290360530.0; +16.649833333333333, -21364051630.0; +16.6565, -20749319360.0; +16.663166666666665, -20008272240.0; +16.669833333333333, -18997753440.0; +16.6765, -18092497015.0; +16.683166666666665, -17540922170.0; +16.689833333333333, -17001978810.0; +16.6965, -16248300205.0; +16.703166666666664, -15755672290.0; +16.709833333333332, -15625146945.0; +16.7165, -15486200610.0; +16.723166666666668, -15229360415.0; +16.729833333333332, -14938836260.0; +16.7365, -14968309725.0; +16.743166666666667, -14863047350.0; +16.74983333333333, -14770416460.0; +16.7565, -14496734285.0; +16.763166666666667, -13978843400.0; +16.769833333333334, -13389374100.0; +16.7765, -12429381240.0; +16.783166666666666, -11751491545.0; +16.789833333333334, -10778867200.0; +16.796499999999998, -9802032360.0; +16.803166666666666, -9191510585.0; +16.809833333333334, -8892565440.0; +16.816499999999998, -8926249400.0; +16.823166666666665, -8568357325.0; +16.829833333333333, -8071518915.0; +16.8365, -7869415155.0; +16.843166666666665, -7696784860.0; +16.849833333333333, -7486260110.0; +16.8565, -6821001900.0; +16.863166666666665, -6218901115.0; +16.869833333333332, -5869430030.0; +16.8765, -5427328055.0; +16.883166666666668, -4981015585.0; +16.889833333333332, -4804174795.0; +16.8965, -5149435385.0; +16.903166666666667, -5477853995.0; +16.90983333333333, -5469433005.0; +16.9165, -5494695975.0; +16.923166666666667, -5364170630.0; +16.92983333333333, -4791543310.0; +16.9365, -3924181340.0; +16.943166666666666, -3381027485.0; +16.949833333333334, -3528394810.0; +16.9565, -3452605900.0; +16.963166666666666, -3237870655.0; +16.969833333333334, -2703137790.0; +16.976499999999998, -2189457400.0; +16.983166666666666, -1503146715.0; +16.989833333333333, -353681580.0; +16.9965, 669468705.0; +17.003166666666665, 1242096025.0; +17.009833333333333, 1039992265.0; +17.0165, 581048310.0; +17.023166666666665, 416839005.0; +17.029833333333332, 362102570.0; +17.0365, 168419800.0; +17.043166666666664, 71578415.0; +17.049833333333332, 404207520.0; +17.0565, 1296832460.0; +17.063166666666667, 1861038790.0; +17.06983333333333, 2016827105.0; +17.0765, 2176825915.0; +17.083166666666667, 2585243930.0; +17.08983333333333, 3111555805.0; +17.0965, 3010503925.0; +17.103166666666667, 2795768680.0; +17.109833333333334, 2501034030.0; +17.1165, 2412613635.0; +17.123166666666666, 2618927890.0; +17.129833333333334, 3229449665.0; +17.136499999999998, 4538913610.0; +17.143166666666666, 5890482505.0; +17.149833333333333, 7376787240.0; +17.1565, 8408358515.0; +17.163166666666665, 8791513560.0; +17.169833333333333, 8442042475.0; +17.1765, 7431523675.0; +17.183166666666665, 6694687050.0; +17.189833333333333, 6416794380.0; +17.1965, 6981000710.0; +17.203166666666664, 7797836740.0; +17.209833333333332, 8682040690.0; +17.2165, 9608349590.0; +17.223166666666668, 10437817105.0; +17.229833333333332, 10783077695.0; +17.2365, 10383080670.0; +17.243166666666667, 9924136715.0; +17.24983333333333, 9793611370.0; +17.2565, 10294660275.0; +17.263166666666667, 10753604230.0; +17.269833333333334, 11195706205.0; +17.2765, 11882016890.0; +17.283166666666666, 12728326385.0; +17.289833333333334, 13284111725.0; +17.296499999999998, 13119902420.0; +17.303166666666666, 12745168365.0; +17.309833333333334, 12639905990.0; +17.316499999999998, 12753589355.0; +17.323166666666665, 12665168960.0; +17.329833333333333, 12677800445.0; +17.3365, 12888325195.0; +17.343166666666665, 13431479050.0; +17.349833333333333, 13911475480.0; +17.3565, 14197789140.0; +17.363166666666665, 14660943590.0; +17.369833333333332, 14959888735.0; +17.3765, 15347254275.0; +17.383166666666668, 15532516055.0; +17.389833333333332, 15764093280.0; +17.3965, 16210405750.0; +17.403166666666667, 16585139805.0; +17.40983333333333, 16947242375.0; +17.4165, 17435659795.0; +17.423166666666667, 18172496420.0; +17.42983333333333, 18867228095.0; +17.4365, 18947227500.0; +17.443166666666666, 18753544730.0; +17.449833333333334, 18614598395.0; +17.4565, 18218811865.0; +17.463166666666666, 17507238210.0; +17.469833333333334, 16900926930.0; +17.476499999999998, 16736717625.0; +17.483166666666666, 16964084355.0; +17.489833333333333, 16989347325.0; +17.4965, 17031452275.0; +17.503166666666665, 17195661580.0; +17.509833333333333, 17591448110.0; +17.5165, 18147233450.0; +17.523166666666665, 18728281760.0; +17.529833333333332, 19629327690.0; +17.5365, 20639846490.0; +17.543166666666668, 21629312815.0; +17.549833333333332, 22345096965.0; +17.5565, 22728252010.0; +17.563166666666667, 22804040920.0; +17.56983333333333, 22669305080.0; +17.5765, 22597726665.0; +17.583166666666667, 22450359340.0; +17.58983333333333, 22446148845.0; +17.5965, 22812461910.0; +17.603166666666667, 23427194180.0; +17.609833333333334, 23987190015.0; +17.6165, 24404029020.0; +17.623166666666666, 25039813765.0; +17.629833333333334, 25178760100.0; +17.636499999999998, 25073497725.0; +17.643166666666666, 25094550200.0; +17.649833333333333, 25625072570.0; +17.6565, 26260857315.0; +17.663166666666665, 26496645035.0; +17.669833333333333, 26858747605.0; +17.6765, 26884010575.0; +17.683166666666665, 26433487610.0; +17.689833333333333, 25717703460.0; +17.6965, 25073497725.0; +17.703166666666664, 25060866240.0; +17.709833333333332, 25524020690.0; +17.7165, 26302962265.0; +17.723166666666668, 27065061860.0; +17.729833333333332, 27473479875.0; +17.7365, 27869266405.0; +17.743166666666667, 28328210360.0; +17.74983333333333, 28862943225.0; +17.7565, 29460833515.0; +17.763166666666667, 29763989155.0; +17.769833333333334, 30117670735.0; +17.7765, 30037671330.0; +17.783166666666666, 29759778660.0; +17.789833333333334, 29393465595.0; +17.796499999999998, 29098730945.0; +17.803166666666666, 29486096485.0; +17.809833333333334, 30201880635.0; +17.816499999999998, 31519765570.0; +17.823166666666665, 32517652885.0; +17.829833333333333, 32976596840.0; +17.8365, 33797643365.0; +17.843166666666665, 34631321375.0; +17.849833333333333, 35384999980.0; +17.8565, 35494472850.0; +17.863166666666665, 35738681560.0; +17.869833333333332, 36551307095.0; +17.8765, 37027093030.0; +17.883166666666668, 37170249860.0; +17.889833333333332, 37178670850.0; +17.8965, 37448142530.0; +17.903166666666667, 38142874205.0; +17.90983333333333, 38862868850.0; +17.9165, 39923913590.0; +17.923166666666667, 41435481295.0; +17.92983333333333, 42947049000.0; +17.9365, 44033356710.0; +17.943166666666666, 44307038885.0; +17.949833333333334, 44399669775.0; +17.9565, 44222828985.0; +17.963166666666666, 43835463445.0; +17.969833333333334, 43561781270.0; +17.976499999999998, 43932304830.0; +17.983166666666666, 44938613135.0; +17.989833333333333, 45961763420.0; +17.9965, 46744915490.0; +18.003166666666665, 47081755090.0; +18.009833333333333, 47174385980.0; +18.0165, 47250174890.0; +18.023166666666665, 47233332910.0; +18.029833333333332, 47102807565.0; +18.0365, 47271227365.0; +18.043166666666668, 48336482600.0; +18.049833333333332, 50109100995.0; +18.0565, 51784878005.0; +18.063166666666667, 52799607300.0; +18.06983333333333, 53351182145.0; +18.0765, 53717495210.0; +18.083166666666667, 53688021745.0; +18.08983333333333, 53241709275.0; +18.0965, 52492241165.0; +18.103166666666667, 52361715820.0; +18.109833333333334, 52984869080.0; +18.1165, 53662758775.0; +18.123166666666666, 54197491640.0; +18.129833333333334, 54559594210.0; +18.136499999999998, 55161694995.0; +18.143166666666666, 55435377170.0; +18.149833333333333, 55574323505.0; +18.1565, 55906952610.0; +18.163166666666665, 56525895375.0; +18.169833333333333, 57245890020.0; +18.1765, 57755359915.0; +18.183166666666665, 58252198325.0; +18.189833333333333, 58420618125.0; +18.1965, 58222724860.0; +18.203166666666664, 57616413580.0; +18.209833333333332, 56896418935.0; +18.2165, 56555368840.0; +18.223166666666668, 56538526860.0; +18.229833333333332, 56483790425.0; +18.2365, 55978531025.0; +18.243166666666667, 55372219745.0; +18.24983333333333, 54774329455.0; +18.2565, 53784863130.0; +18.263166666666667, 52399610275.0; +18.269833333333334, 51144882765.0; +18.2765, 50530150495.0; +18.283166666666666, 50050154065.0; +18.289833333333334, 49553315655.0; +18.296499999999998, 48900688930.0; +18.303166666666666, 48336482600.0; +18.309833333333334, 47747013300.0; +18.316499999999998, 47123860040.0; +18.323166666666665, 46580706185.0; +18.329833333333333, 46285971535.0; +18.3365, 46521759255.0; +18.343166666666665, 46913335290.0; +18.349833333333333, 46984913705.0; +18.3565, 46711231530.0; +18.363166666666665, 46197551140.0; +18.369833333333332, 45405978080.0; +18.3765, 43978620275.0; +18.383166666666668, 42496526035.0; +18.389833333333332, 41321797930.0; +18.3965, 40332331605.0; +18.403166666666667, 39191287460.0; +18.40983333333333, 37978664900.0; +18.4165, 37271301740.0; +18.423166666666667, 36673411450.0; +18.429833333333335, 36029205715.0; +18.4365, 34959739985.0; +18.443166666666666, 33928168710.0; +18.449833333333334, 33157648125.0; +18.4565, 32412390510.0; +18.463166666666666, 31397661215.0; +18.469833333333334, 30260827565.0; +18.476499999999998, 29385044605.0; +18.483166666666666, 28669260455.0; +18.489833333333333, 27806108980.0; +18.4965, 27031377900.0; +18.503166666666665, 26652433350.0; +18.509833333333333, 26319804245.0; +18.5165, 25928228210.0; +18.523166666666665, 25557704650.0; +18.529833333333332, 25136655150.0; +18.5365, 23856664670.0; +18.543166666666668, 22142993205.0; +18.549833333333332, 20601952035.0; +18.5565, 19524065315.0; +18.563166666666667, 18467231070.0; +18.56983333333333, 17460922765.0; +18.5765, 17233556035.0; +18.583166666666667, 17481975240.0; +18.58983333333333, 17919866720.0; +18.5965, 18130391470.0; +18.603166666666667, 18256706320.0; +18.609833333333334, 18307232260.0; +18.6165, 18383021170.0; +18.623166666666666, 18058813055.0; +18.629833333333334, 17490396230.0; +18.636499999999998, 16846190495.0; +18.643166666666666, 16656718220.0; +18.649833333333333, 16492508915.0; +18.6565, 15991460010.0; +18.663166666666665, 15330412295.0; +18.669833333333333, 14606207155.0; +18.6765, 13978843400.0; +18.683166666666665, 13056744995.0; +18.689833333333333, 12458854705.0; +18.6965, 12399907775.0; +18.703166666666664, 12740957870.0; +18.709833333333332, 12896746185.0; +18.7165, 12745168365.0; +18.723166666666668, 12442012725.0; +18.729833333333332, 11818859465.0; +18.7365, 10787288190.0; +18.743166666666667, 9608349590.0; +18.74983333333333, 8833618510.0; +18.7565, 8475726435.0; +18.763166666666667, 8534673365.0; +18.769833333333334, 8808355540.0; +18.7765, 8917828410.0; +18.783166666666666, 8892565440.0; +18.789833333333334, 9086248210.0; +18.796499999999998, 9364140880.0; +18.803166666666666, 9406245830.0; +18.809833333333334, 9098879695.0; +18.8165, 8943091380.0; +18.823166666666665, 8964143855.0; +18.829833333333333, 8711514155.0; +18.8365, 8454673960.0; +18.843166666666665, 8252570200.0; +18.849833333333333, 8340990595.0; +18.8565, 8315727625.0; +18.863166666666665, 8290464655.0; +18.869833333333332, 8244149210.0; +18.8765, 7974677530.0; +18.883166666666668, 7793626245.0; +18.889833333333332, 7726258325.0; +18.8965, 8029413965.0; +18.903166666666667, 8214675745.0; +18.90983333333333, 8206254755.0; +18.9165, 8033624460.0; +18.923166666666667, 7755731790.0; +18.929833333333335, 7515733575.0; +18.9365, 6968369225.0; +18.943166666666666, 6197848640.0; +18.949833333333334, 5498906470.0; +18.9565, 5258908255.0; +18.963166666666666, 5183119345.0; +18.969833333333334, 4715754400.0; +18.976499999999998, 4408388265.0; +18.983166666666666, 4555755590.0; +18.989833333333333, 5014699545.0; +18.9965, 5044173010.0; +19.003166666666665, 4905226675.0; +19.009833333333333, 5061014990.0; +19.0165, 5183119345.0; +19.023166666666665, 5023120535.0; +19.029833333333332, 4585229055.0; +19.0365, 4303125890.0; +19.043166666666668, 3915760350.0; +19.049833333333332, 3532605305.0; +19.0565, 3343133030.0; +19.063166666666667, 3292607090.0; +19.06983333333333, 3427342930.0; +19.0765, 3671551640.0; +19.083166666666667, 4063127675.0; +19.08983333333333, 4286283910.0; +19.0965, 4223126485.0; +19.103166666666667, 4282073415.0; +19.109833333333334, 4446282720.0; +19.1165, 4463124700.0; +19.123166666666666, 4307336385.0; +19.129833333333334, 3915760350.0; +19.136499999999998, 3663130650.0; +19.143166666666666, 3254712635.0; +19.149833333333333, 2707348285.0; +19.1565, 2328403735.0; +19.163166666666665, 2058932055.0; +19.169833333333333, 2227351855.0; +19.1765, 2261035815.0; +19.183166666666665, 2197878390.0; +19.189833333333333, 1970511660.0; +19.1965, 1713671465.0; +19.203166666666664, 1734723940.0; +19.209833333333332, 1591567110.0; +19.2165, 1667356020.0; +19.223166666666668, 1848407305.0; +19.229833333333332, 2244193835.0; +19.2365, 2378929675.0; +19.243166666666667, 2450508090.0; +19.24983333333333, 2496823535.0; +19.2565, 2442087100.0; +19.263166666666667, 2488402545.0; +19.269833333333334, 2471560565.0; +19.2765, 2635769870.0; +19.283166666666666, 2454718585.0; +19.289833333333334, 2391561160.0; +19.296499999999998, 2248404330.0; +19.303166666666666, 2185246905.0; +19.309833333333334, 2172615420.0; +19.3165, 2298930270.0; +19.323166666666665, 2501034030.0; +19.329833333333333, 2917873035.0; +19.3365, 3583131245.0; +19.343166666666665, 4046285695.0; +19.349833333333333, 4164179555.0; +19.3565, 4004180745.0; +19.363166666666665, 4063127675.0; +19.369833333333332, 4063127675.0; +19.3765, 3541026295.0; +19.383166666666668, 2905241550.0; +19.389833333333332, 2248404330.0; +19.3965, 1945248690.0; +19.403166666666667, 1524199190.0; +19.40983333333333, 770520585.0; +19.4165, 315787125.0; +19.423166666666667, 134735840.0; +19.429833333333335, 479996430.0; +19.4365, 425259995.0; +19.443166666666666, 181051285.0; +19.449833333333334, 92630890.0; +19.4565, 484206925.0; +19.463166666666666, 1103149690.0; +19.469833333333334, 1301042955.0; +19.476499999999998, 1465252260.0; +19.483166666666666, 1785249880.0; +19.489833333333333, 2357877200.0; +19.4965, 2791558185.0; +19.503166666666665, 2774716205.0; +19.509833333333333, 2955767490.0; +19.5165, 3145239765.0; +19.523166666666665, 3313659565.0; +19.529833333333332, 3141029270.0; +19.5365, 2627348880.0; +19.543166666666668, 2370508685.0; +19.549833333333332, 1898933245.0; +19.5565, 1654724535.0; +19.563166666666667, 1608409090.0; +19.56983333333333, 1886301760.0; +19.5765, 2172615420.0; +19.583166666666667, 1898933245.0; +19.58983333333333, 1650514040.0; +19.5965, 1406305330.0; +19.603166666666667, 1170517610.0; +19.609833333333334, 690521180.0; +19.6165, 197893265.0; +19.623166666666666, 214735245.0; +19.629833333333334, 627363755.0; +19.636499999999998, 1204201570.0; +19.643166666666666, 1482094240.0; +19.649833333333333, 1456831270.0; +19.6565, 1263148500.0; +19.663166666666665, 1330516420.0; +19.669833333333333, 1225254045.0; +19.6765, 1069465730.0; +19.683166666666665, 917887910.0; +19.689833333333333, 938940385.0; +19.6965, 1086307710.0; +19.703166666666668, 635784745.0; +19.709833333333332, 58946930.0; +19.7165, -707363160.0; +19.723166666666668, -1107360185.0; +19.729833333333332, -1170517610.0; +19.7365, -1103149690.0; +19.743166666666667, -703152665.0; +19.74983333333333, -25262970.0; +19.7565, 631574250.0; +19.763166666666667, 614732270.0; +19.769833333333334, 210524750.0; +19.7765, 8420990.0; +19.783166666666666, 16841980.0; +19.789833333333334, -231577225.0; +19.796499999999998, -572627320.0; +19.803166666666666, -530522370.0; +19.809833333333334, -193682770.0; +19.8165, 231577225.0; +19.823166666666665, 661047715.0; +19.829833333333333, 1296832460.0; +19.8365, 2079984530.0; +19.843166666666665, 2614717395.0; +19.849833333333333, 2719979770.0; +19.8565, 1983143145.0; +19.863166666666665, 884203950.0; +19.869833333333332, -223156235.0; +19.8765, -976834840.0; +19.883166666666668, -1566304140.0; +19.889833333333332, -2004195620.0; +19.8965, -1999985125.0; +19.903166666666667, -1637882555.0; +19.90983333333333, -1212622560.0; +19.9165, -1035781770.0; +19.923166666666667, -741047120.0; +19.929833333333335, -421049500.0; +19.9365, -63157425.0; +19.943166666666666, 143156830.0; +19.949833333333334, 602100785.0; +19.9565, 1115781175.0; +##END= + +$$ === CHEMSPECTRA INTEGRALS AND MULTIPLETS === +##PAGE=300 +##$OBSERVEDINTEGRALS= (X Y Z) +##$OBSERVEDMULTIPLETS= +##$OBSERVEDMULTIPLETSPEAKS= +##END= + +$$ === CHEMSPECTRA PEAK TABLE EDIT === +##TITLE=618becfe-a0ce-4983-ba36-5fdcbb7ed595 +##JCAMP-DX=5.00 +##DATA TYPE=LC/MSPEAKTABLE +##DATA CLASS=PEAKTABLE +##$CSCATEGORY=EDIT_PEAK +##$CSTHRESHOLD=0.05 +##MAXX=19.9565 +##MAXY=411133784275.0 +##MINX=-0.0435 +##MINY=-130988499450.0 +##PAGE=300 +##NPOINTS=0 +##PEAKTABLE= (XY..XY) +##END= + +$$ === CHEMSPECTRA PEAK TABLE AUTO === +##TITLE=618becfe-a0ce-4983-ba36-5fdcbb7ed595 +##JCAMP-DX=5.00 +##DATA TYPE=LC/MSPEAKTABLE +##DATA CLASS=PEAKTABLE +##$CSCATEGORY=AUTO_PEAK +##$CSTHRESHOLD=0.05 +##MAXX=19.9565 +##MAXY=411133784275.0 +##MINX=-0.0435 +##MINY=-130988499450.0 +##PAGE=300 +##NPOINTS=34 +##PEAKTABLE= (XY..XY) +2.2631666666666668, 411133784275.0 +1.2098333333333333, 157165146865.0 +11.663166666666667, 108500245655.0 +2.4365, 98710844780.0 +2.5965000000000003, 61481647990.0 +2.5765000000000002, 61401648585.0 +18.189833333333333, 58420618125.0 +18.0765, 53717495210.0 +18.0165, 47250174890.0 +18.349833333333333, 46984913705.0 +17.949833333333334, 44399669775.0 +2.823166666666667, 32294496650.0 +17.769833333333334, 30117670735.0 +2.7165000000000004, 29410307575.0 +2.7631666666666668, 29115572925.0 +17.6765, 26884010575.0 +11.2965, 25469284255.0 +17.629833333333334, 25178760100.0 +12.6965, 24774552580.0 +12.563166666666667, 24041926450.0 +10.923166666666667, 22997723690.0 +10.9565, 22879829830.0 +17.563166666666667, 22804040920.0 +12.636500000000002, 22319833995.0 +12.129833333333334, 21974573405.0 +12.0365, 21818785090.0 +12.4365, 21755627665.0 +12.403166666666667, 21561944895.0 +11.989833333333335, 21305104700.0 +12.249833333333335, 21288262720.0 +12.316500000000001, 21284052225.0 +11.929833333333335, 20938791635.0 +11.0165, 20791424310.0 +12.823166666666667, 20614583520.0 +##END= + +$$ === CHEMSPECTRA UVVIS PEAK TABLE === +##TITLE=618becfe-a0ce-4983-ba36-5fdcbb7ed595 +##JCAMP-DX=5.00 +##DATA TYPE=LC/MS +##DATA CLASS=PEAK TABLE +##ORIGIN= +##OWNER= +##XUNITS=RETENTION TIME +##YUNITS=DETECTOR SIGNAL +##$CSCATEGORY=UVVIS PEAK TABLE +##PAGE=400 +##NPOINTS=3001 +##DATA TABLE= (XY..XY), PEAKS +-0.0435, 54736435.0; +-0.03683333333333333, 319997620.0; +-0.03016666666666666, 635784745.0; +-0.023499999999999997, 1115781175.0; +-0.01683333333333333, 1469462755.0; +-0.010166666666666664, 1545251665.0; +-0.003499999999999996, 1355779390.0; +0.003166666666666672, 1212622560.0; +0.00983333333333334, 972624345.0; +0.016500000000000008, 585258805.0; +0.02316666666666667, 248419205.0; +0.029833333333333337, 164209305.0; +0.036500000000000005, 290524155.0; +0.04316666666666667, 391576035.0; +0.04983333333333334, 610521775.0; +0.05650000000000001, 711573655.0; +0.06316666666666668, 863151475.0; +0.06983333333333334, 1065255235.0; +0.07650000000000001, 1309463945.0; +0.08316666666666668, 1519988695.0; +0.08983333333333333, 1629461565.0; +0.09650000000000002, 1835775820.0; +0.10316666666666667, 1941038195.0; +0.10983333333333335, 1772618395.0; +0.1165, 1372621370.0; +0.12316666666666669, 1195780580.0; +0.12983333333333336, 1115781175.0; +0.1365, 1098939195.0; +0.14316666666666666, 1002097810.0; +0.14983333333333337, 972624345.0; +0.15650000000000003, 1065255235.0; +0.16316666666666668, 1039992265.0; +0.16983333333333334, 1023150285.0; +0.1765, 972624345.0; +0.1831666666666667, 1077886720.0; +0.18983333333333335, 1330516420.0; +0.1965, 1633672060.0; +0.20316666666666666, 1642093050.0; +0.20983333333333337, 1199991075.0; +0.21650000000000003, 602100785.0; +0.22316666666666668, 159998810.0; +0.2298333333333334, -8420990.0; +0.23650000000000004, -92630890.0; +0.2431666666666667, 189472275.0; +0.24983333333333335, 749468110.0; +0.25650000000000006, 1326305925.0; +0.2631666666666667, 1414726320.0; +0.26983333333333337, 1086307710.0; +0.2765, 673679200.0; +0.2831666666666667, 185261780.0; +0.2898333333333334, -101051880.0; +0.29650000000000004, -101051880.0; +0.3031666666666667, 172630295.0; +0.30983333333333335, 467364945.0; +0.31650000000000006, 467364945.0; +0.3231666666666667, 248419205.0; +0.32983333333333337, -109472870.0; +0.3365, -543153855.0; +0.34316666666666673, -639995240.0; +0.3498333333333334, -471575440.0; +0.35650000000000004, -42104950.0; +0.3631666666666667, 412628510.0; +0.3698333333333334, 597890290.0; +0.37650000000000006, 686310685.0; +0.3831666666666667, 290524155.0; +0.38983333333333337, -218945740.0; +0.3965, -501048905.0; +0.40316666666666673, -298945145.0; +0.4098333333333334, 227366730.0; +0.41650000000000004, 450522965.0; +0.4231666666666667, 665258210.0; +0.4298333333333334, 719994645.0; +0.43650000000000005, 618942765.0; +0.4431666666666667, 492627915.0; +0.44983333333333336, 509469895.0; +0.4565, 799994050.0; +0.4631666666666667, 875782960.0; +0.46983333333333344, 905256425.0; +0.47650000000000003, 985255830.0; +0.48316666666666674, 1018939790.0; +0.48983333333333334, 955782365.0; +0.49650000000000005, 943150880.0; +0.5031666666666668, 1141044145.0; +0.5098333333333334, 1507357210.0; +0.5165000000000001, 1671566515.0; +0.5231666666666667, 1482094240.0; +0.5298333333333334, 993676820.0; +0.5365000000000001, 463154450.0; +0.5431666666666667, 172630295.0; +0.5498333333333334, -46315445.0; +0.5565000000000001, 37894455.0; +0.5631666666666667, 391576035.0; +0.5698333333333334, 968413850.0; +0.5765, 1381042360.0; +0.5831666666666667, 1439989290.0; +0.5898333333333334, 1439989290.0; +0.5965, 1338937410.0; +0.6031666666666667, 1229464540.0; +0.6098333333333333, 1044202760.0; +0.6165, 905256425.0; +0.6231666666666668, 955782365.0; +0.6298333333333334, 1119991670.0; +0.6365000000000001, 1031571275.0; +0.6431666666666668, 673679200.0; +0.6498333333333334, 252629700.0; +0.6565000000000001, 155788315.0; +0.6631666666666667, 319997620.0; +0.6698333333333334, 341050095.0; +0.6765000000000001, 458943955.0; +0.6831666666666667, 719994645.0; +0.6898333333333334, 1145254640.0; +0.6965000000000001, 1385252855.0; +0.7031666666666667, 1334726915.0; +0.7098333333333334, 1010518800.0; +0.7165, 694731675.0; +0.7231666666666667, 404207520.0; +0.7298333333333334, 185261780.0; +0.7365, 88420395.0; +0.7431666666666668, 21052475.0; +0.7498333333333334, 307366135.0; +0.7565000000000001, 538943360.0; +0.7631666666666668, 741047120.0; +0.7698333333333334, 846309495.0; +0.7765000000000001, 846309495.0; +0.7831666666666668, 901045930.0; +0.7898333333333334, 757889100.0; +0.7965000000000001, 677889695.0; +0.8031666666666667, 652626725.0; +0.8098333333333334, 450522965.0; +0.8165000000000001, 147367325.0; +0.8231666666666667, -147367325.0; +0.8298333333333334, -319997620.0; +0.8365, -324208115.0; +0.8431666666666667, -206314255.0; +0.8498333333333334, 349471085.0; +0.8565, 858940980.0; +0.8631666666666667, 1002097810.0; +0.8698333333333335, 842099000.0; +0.8765000000000001, 745257615.0; +0.8831666666666668, 665258210.0; +0.8898333333333334, 412628510.0; +0.8965000000000001, 378944550.0; +0.9031666666666668, 787362565.0; +0.9098333333333334, 1435778795.0; +0.9165000000000001, 1675777010.0; +0.9231666666666667, 1642093050.0; +0.9298333333333334, 1578935625.0; +0.9365000000000001, 1574725130.0; +0.9431666666666667, 1667356020.0; +0.9498333333333334, 1818933840.0; +0.9565, 2168404925.0; +0.9631666666666668, 2286298785.0; +0.9698333333333334, 2155773440.0; +0.9765, 1827354830.0; +0.9831666666666669, 1448410280.0; +0.9898333333333335, 955782365.0; +0.9965, 311576630.0; +1.0031666666666665, -63157425.0; +1.0098333333333334, -197893265.0; +1.0165, 58946930.0; +1.0231666666666666, 362102570.0; +1.0298333333333334, 854730485.0; +1.0365, 1250517015.0; +1.0431666666666666, 1178938600.0; +1.0498333333333334, 774731080.0; +1.0565, 4210495.0; +1.0631666666666666, -606311280.0; +1.0698333333333334, -858940980.0; +1.0765, -252629700.0; +1.0831666666666666, 1473673250.0; +1.0898333333333332, 3785235005.0; +1.0965, 5713641715.0; +1.1031666666666666, 6513635765.0; +1.1098333333333332, 5541011420.0; +1.1165, 901045930.0; +1.1231666666666666, -9372561870.0; +1.1298333333333332, -25069287230.0; +1.1365, -42513368015.0; +1.1431666666666667, -57330099920.0; +1.1498333333333333, -65102673690.0; +1.1565, -60879547205.0; +1.1631666666666667, -41991266635.0; +1.1698333333333333, -10425185620.0; +1.1764999999999999, 27574531755.0; +1.1831666666666667, 65300566955.0; +1.1898333333333333, 97418222815.0; +1.1965, 119603320970.0; +1.2031666666666667, 130912710540.0; +1.2098333333333333, 133481112490.0; +1.2165, 130773764205.0; +1.2231666666666667, 125519066445.0; +1.2298333333333333, 118921220780.0; +1.2365, 112201270760.0; +1.2431666666666668, 105043429260.0; +1.2498333333333334, 96032969960.0; +1.2565, 81755181415.0; +1.2631666666666665, 59641661675.0; +1.2698333333333334, 30559772710.0; +1.2765, -1949459185.0; +1.2831666666666666, -33511329705.0; +1.2898333333333334, -60614286020.0; +1.2965, -79624670945.0; +1.3031666666666666, -87696189860.0; +1.3098333333333334, -85611994835.0; +1.3165, -76980480085.0; +1.3231666666666666, -66083719025.0; +1.3298333333333334, -55359588260.0; +1.3365, -45380715110.0; +1.3431666666666666, -36614464520.0; +1.3498333333333332, -29220835300.0; +1.3565, -23511404080.0; +1.3631666666666666, -19090384330.0; +1.3698333333333332, -15671462390.0; +1.3765, -12787273315.0; +1.3831666666666667, -10164134930.0; +1.3898333333333333, -7700995355.0; +1.3965, -5667326270.0; +1.4031666666666667, -3978917775.0; +1.4098333333333333, -2463139575.0; +1.4165, -1187359590.0; +1.4231666666666667, -311576630.0; +1.4298333333333333, 0.0; +1.4365, 248419205.0; +1.4431666666666667, 362102570.0; +1.4498333333333333, 383155045.0; +1.4565, 252629700.0; +1.4631666666666667, 109472870.0; +1.4698333333333333, 164209305.0; +1.4765, 227366730.0; +1.4831666666666667, 248419205.0; +1.4898333333333333, 408418015.0; +1.4965, 656837220.0; +1.5031666666666668, 930519395.0; +1.5098333333333334, 1035781770.0; +1.5165, 947361375.0; +1.5231666666666668, 1023150285.0; +1.5298333333333334, 1077886720.0; +1.5365, 1191570085.0; +1.5431666666666666, 1111570680.0; +1.5498333333333334, 1035781770.0; +1.5565, 1309463945.0; +1.5631666666666666, 1587356615.0; +1.5698333333333334, 1911564730.0; +1.5765, 2147352450.0; +1.5831666666666666, 2357877200.0; +1.5898333333333334, 2475771060.0; +1.5965, 2475771060.0; +1.6031666666666666, 2736821750.0; +1.6098333333333334, 3018924915.0; +1.6165, 3115766300.0; +1.6231666666666666, 3065240360.0; +1.6298333333333332, 3107345310.0; +1.6365, 3229449665.0; +1.6431666666666667, 3090503330.0; +1.6498333333333333, 3002082935.0; +1.6565, 3141029270.0; +1.6631666666666667, 3368396000.0; +1.6698333333333333, 3461026890.0; +1.6765, 3503131840.0; +1.6831666666666667, 3738919560.0; +1.6898333333333333, 3755761540.0; +1.6965000000000001, 3381027485.0; +1.7031666666666667, 2926294025.0; +1.7098333333333333, 2770505710.0; +1.7165, 2639980365.0; +1.7231666666666667, 2505244525.0; +1.7298333333333333, 2319982745.0; +1.7365, 2282088290.0; +1.7431666666666668, 2564191455.0; +1.7498333333333334, 3010503925.0; +1.7565, 3705235600.0; +1.7631666666666668, 3957865300.0; +1.7698333333333334, 3768393025.0; +1.7765, 3599973225.0; +1.7831666666666668, 3237870655.0; +1.7898333333333334, 2799979175.0; +1.7965, 2155773440.0; +1.8031666666666666, 1759986910.0; +1.8098333333333334, 2067353045.0; +1.8165, 2269456805.0; +1.8231666666666666, 2282088290.0; +1.8298333333333334, 1966301165.0; +1.8365, 1764197405.0; +1.8431666666666666, 1738934435.0; +1.8498333333333334, 1376831865.0; +1.8565, 1061044740.0; +1.8631666666666666, 1082097215.0; +1.8698333333333335, 1292621965.0; +1.8765, 1431568300.0; +1.8831666666666667, 1557883150.0; +1.8898333333333333, 1823144335.0; +1.8965, 2096826510.0; +1.9031666666666667, 1983143145.0; +1.9098333333333333, 1856828295.0; +1.9165, 1890512255.0; +1.9231666666666667, 1785249880.0; +1.9298333333333333, 1709460970.0; +1.9365, 1570514635.0; +1.9431666666666667, 1701039980.0; +1.9498333333333333, 1713671465.0; +1.9565, 1498936220.0; +1.9631666666666667, 1351568895.0; +1.9698333333333335, 1258938005.0; +1.9765, 1355779390.0; +1.9831666666666667, 1578935625.0; +1.9898333333333336, 1844196810.0; +1.9965, 2159983935.0; +2.003166666666667, 2185246905.0; +2.009833333333334, 2210509875.0; +2.0165, 2256825320.0; +2.023166666666667, 2252614825.0; +2.0298333333333334, 2037879580.0; +2.0365, 1747355425.0; +2.043166666666667, 1747355425.0; +2.0498333333333334, 1726302950.0; +2.0565, 1713671465.0; +2.063166666666667, 1625251070.0; +2.0698333333333334, 1852617800.0; +2.0765000000000002, 1962090670.0; +2.083166666666667, 1873670275.0; +2.0898333333333334, 1646303545.0; +2.0965000000000003, 1250517015.0; +2.103166666666667, 821046525.0; +2.1098333333333334, 362102570.0; +2.1165000000000003, 101051880.0; +2.123166666666667, 25262970.0; +2.1298333333333335, 218945740.0; +2.1365000000000003, 669468705.0; +2.143166666666667, 1124202165.0; +2.1498333333333335, 1688408495.0; +2.1565000000000003, 2408403140.0; +2.163166666666667, 3073661350.0; +2.1698333333333335, 3309449070.0; +2.1765000000000003, 3208397190.0; +2.183166666666667, 2947346500.0; +2.1898333333333335, 2690506305.0; +2.1965000000000003, 2286298785.0; +2.2031666666666667, 1924196215.0; +2.2098333333333335, 1789460375.0; +2.2165000000000004, 1793670870.0; +2.2231666666666667, 1844196810.0; +2.2298333333333336, 151577820.0; +2.2365000000000004, -6021007850.0; +2.2431666666666668, -16972505345.0; +2.2498333333333336, -31612396460.0; +2.2565000000000004, -46909124795.0; +2.2631666666666668, -61995328380.0; +2.2698333333333336, -74673128825.0; +2.2765000000000004, -81216238055.0; +2.283166666666667, -81064660235.0; +2.2898333333333336, -75026810405.0; +2.2965000000000004, -66660556840.0; +2.303166666666667, -56993260320.0; +2.3098333333333336, -47149123010.0; +2.3165000000000004, -38210242125.0; +2.323166666666667, -30555562215.0; +2.3298333333333336, -24627185255.0; +2.3365000000000005, -20117745110.0; +2.343166666666667, -16719875645.0; +2.3498333333333337, -14201999635.0; +2.3565000000000005, -12227277480.0; +2.363166666666667, -10816761655.0; +2.3698333333333337, -9814663845.0; +2.3765000000000005, -9098879695.0; +2.383166666666667, -8686251185.0; +2.3898333333333337, -8294675150.0; +2.3965, -7987309015.0; +2.403166666666667, -7637837930.0; +2.4098333333333337, -7237840905.0; +2.4165, -6631529625.0; +2.423166666666667, -5789430625.0; +2.4298333333333337, -4618913015.0; +2.4365, -3351554020.0; +2.443166666666667, -2105247500.0; +2.4498333333333338, -951571870.0; +2.4565, 189472275.0; +2.463166666666667, 1288411470.0; +2.4698333333333338, 2021037600.0; +2.4765, 2593664920.0; +2.483166666666667, 2993661945.0; +2.489833333333334, 3465237385.0; +2.4965, 3583131245.0; +2.503166666666667, 3254712635.0; +2.509833333333334, 2682085315.0; +2.5165, 2084195025.0; +2.523166666666667, 2058932055.0; +2.529833333333334, 2501034030.0; +2.5365, 3650499165.0; +2.543166666666667, 5187329840.0; +2.549833333333334, 6989421700.0; +2.5565, 8934670390.0; +2.563166666666667, 10749393735.0; +2.5698333333333334, 12492538665.0; +2.5765000000000002, 14092526765.0; +2.583166666666667, 16008301990.0; +2.5898333333333334, 18353547705.0; +2.5965000000000003, 20947212625.0; +2.603166666666667, 23393510220.0; +2.6098333333333334, 25473494750.0; +2.6165000000000003, 27212429185.0; +2.623166666666667, 28168211550.0; +2.6298333333333335, 28172422045.0; +2.6365000000000003, 27460848390.0; +2.643166666666667, 26719801270.0; +2.6498333333333335, 26185068405.0; +2.6565000000000003, 25540862670.0; +2.663166666666667, 24871393965.0; +2.6698333333333335, 24172451795.0; +2.6765000000000003, 23553509030.0; +2.683166666666667, 22740883495.0; +2.6898333333333335, 21578786875.0; +2.6965000000000003, 20324059365.0; +2.703166666666667, 19364066505.0; +2.7098333333333335, 18993542945.0; +2.7165000000000004, 19014595420.0; +2.723166666666667, 19052489875.0; +2.7298333333333336, 19204067695.0; +2.7365000000000004, 19503012840.0; +2.7431666666666668, 19810378975.0; +2.7498333333333336, 20075640160.0; +2.7565000000000004, 20315638375.0; +2.7631666666666668, 20686161935.0; +2.7698333333333336, 20879844705.0; +2.7765000000000004, 21157737375.0; +2.783166666666667, 21688259745.0; +2.7898333333333336, 22201940135.0; +2.7965000000000004, 22538779735.0; +2.803166666666667, 22799830425.0; +2.8098333333333336, 23262984875.0; +2.8165000000000004, 23604034970.0; +2.823166666666667, 23684034375.0; +2.8298333333333336, 23751402295.0; +2.8365000000000005, 23742981305.0; +2.843166666666667, 23342984280.0; +2.8498333333333337, 22467201320.0; +2.8565000000000005, 21481945490.0; +2.863166666666667, 20378795800.0; +2.8698333333333337, 19132489280.0; +2.8765000000000005, 17549343160.0; +2.883166666666667, 16185142780.0; +2.8898333333333337, 15191465960.0; +2.8965000000000005, 14281999040.0; +2.903166666666667, 13452531525.0; +2.9098333333333337, 12534643615.0; +2.9165000000000005, 12307276885.0; +2.923166666666667, 12404118270.0; +2.9298333333333337, 12559906585.0; +2.9365, 12783062820.0; +2.943166666666667, 12964114105.0; +2.9498333333333338, 13145165390.0; +2.9565, 12989377075.0; +2.963166666666667, 12644116485.0; +2.9698333333333338, 12399907775.0; +2.9765, 12311487380.0; +2.983166666666667, 12505170150.0; +2.989833333333334, 12724115890.0; +2.9965, 12724115890.0; +3.003166666666667, 12673589950.0; +3.009833333333334, 12829378265.0; +3.0165, 13094639450.0; +3.023166666666667, 13065165985.0; +3.029833333333334, 13069376480.0; +3.0365, 13107270935.0; +3.043166666666667, 13372532120.0; +3.049833333333334, 13271480240.0; +3.0565, 13086218460.0; +3.063166666666667, 12926219650.0; +3.069833333333334, 12745168365.0; +3.0765000000000002, 12399907775.0; +3.083166666666667, 11540966795.0; +3.089833333333334, 10500974530.0; +3.0965000000000003, 9162037120.0; +3.103166666666667, 7671521890.0; +3.1098333333333334, 6113638740.0; +3.1165000000000003, 4871542715.0; +3.123166666666667, 4050496190.0; +3.1298333333333335, 3549447285.0; +3.1365000000000003, 3136818775.0; +3.143166666666667, 2917873035.0; +3.1498333333333335, 2728400760.0; +3.1565000000000003, 2648401355.0; +3.163166666666667, 2509455020.0; +3.1698333333333335, 2256825320.0; +3.1765000000000003, 1839986315.0; +3.183166666666667, 1381042360.0; +3.1898333333333335, 1199991075.0; +3.1965000000000003, 1334726915.0; +3.203166666666667, 1456831270.0; +3.2098333333333335, 1519988695.0; +3.2165000000000004, 1528409685.0; +3.223166666666667, 1456831270.0; +3.2298333333333336, 1221043550.0; +3.2365000000000004, 665258210.0; +3.243166666666667, 143156830.0; +3.2498333333333336, -496838410.0; +3.2565000000000004, -905256425.0; +3.263166666666667, -1199991075.0; +3.2698333333333336, -1524199190.0; +3.2765000000000004, -1861038790.0; +3.283166666666667, -2096826510.0; +3.2898333333333336, -2037879580.0; +3.2965000000000004, -2138931460.0; +3.303166666666667, -2345245715.0; +3.3098333333333336, -2661032840.0; +3.3165000000000004, -3090503330.0; +3.323166666666667, -3755761540.0; +3.3298333333333336, -4471545690.0; +3.3365000000000005, -4863121725.0; +3.343166666666667, -5128382910.0; +3.3498333333333337, -5279960730.0; +3.3565000000000005, -5347328650.0; +3.363166666666667, -5469433005.0; +3.3698333333333337, -5755746665.0; +3.3765000000000005, -6319952995.0; +3.383166666666667, -6631529625.0; +3.3898333333333337, -6690476555.0; +3.3965000000000005, -6673634575.0; +3.403166666666667, -6770475960.0; +3.4098333333333337, -6905211800.0; +3.4165000000000005, -6968369225.0; +3.423166666666667, -7183104470.0; +3.4298333333333337, -7620995950.0; +3.4365000000000006, -8016782480.0; +3.443166666666667, -7734679315.0; +3.4498333333333338, -7204156945.0; +3.4565000000000006, -6879948830.0; +3.463166666666667, -7073631600.0; +3.4698333333333338, -7271524865.0; +3.4765, -7427313180.0; +3.483166666666667, -7953625055.0; +3.489833333333334, -8719935145.0; +3.4965, -9305193950.0; +3.503166666666667, -9473613750.0; +3.509833333333334, -9536771175.0; +3.5165, -9810453350.0; +3.523166666666667, -10050451565.0; +3.529833333333334, -10004136120.0; +3.5365, -9583086620.0; +3.543166666666667, -9162037120.0; +3.549833333333334, -9039932765.0; +3.5565, -8968354350.0; +3.563166666666667, -8892565440.0; +3.569833333333334, -8896775935.0; +3.5765000000000002, -9372561870.0; +3.583166666666667, -9633612560.0; +3.589833333333334, -9599928600.0; +3.5965000000000003, -9486245235.0; +3.603166666666667, -9722032955.0; +3.609833333333334, -10290449780.0; +3.6165000000000003, -10673604825.0; +3.623166666666667, -11149390760.0; +3.629833333333334, -11414651945.0; +3.6365000000000003, -11376757490.0; +3.643166666666667, -11145180265.0; +3.6498333333333335, -10951497495.0; +3.6565000000000003, -10980970960.0; +3.663166666666667, -10959918485.0; +3.6698333333333335, -11027286405.0; +3.6765000000000003, -11284126600.0; +3.683166666666667, -11397809965.0; +3.6898333333333335, -11060970365.0; +3.6965000000000003, -10509395520.0; +3.703166666666667, -10282028790.0; +3.7098333333333335, -10437817105.0; +3.7165000000000004, -10724130765.0; +3.723166666666667, -11006233930.0; +3.7298333333333336, -11292547590.0; +3.7365000000000004, -11406230955.0; +3.743166666666667, -11220969175.0; +3.7498333333333336, -10900971555.0; +3.7565000000000004, -10631499875.0; +3.763166666666667, -10467290570.0; +3.7698333333333336, -10265186810.0; +3.7765000000000004, -10248344830.0; +3.7831666666666672, -10143082455.0; +3.7898333333333336, -10033609585.0; +3.7965000000000004, -9827295330.0; +3.8031666666666673, -9591507610.0; +3.8098333333333336, -9612560085.0; +3.8165000000000004, -9591507610.0; +3.823166666666667, -9932557705.0; +3.8298333333333336, -10269397305.0; +3.8365000000000005, -10492553540.0; +3.843166666666667, -10677815320.0; +3.8498333333333337, -10812551160.0; +3.8565000000000005, -11288337095.0; +3.863166666666667, -11608334715.0; +3.8698333333333337, -11999910750.0; +3.8765000000000005, -12416749755.0; +3.883166666666667, -12875693710.0; +3.8898333333333337, -13216743805.0; +3.8965000000000005, -13204112320.0; +3.903166666666667, -13128323410.0; +3.9098333333333337, -12858851730.0; +3.9165000000000005, -12500959655.0; +3.923166666666667, -12033594710.0; +3.9298333333333337, -11730439070.0; +3.9365000000000006, -11498861845.0; +3.943166666666667, -11326231550.0; +3.9498333333333338, -11018865415.0; +3.9565, -10825182645.0; +3.963166666666667, -10808340665.0; +3.9698333333333338, -10879919080.0; +3.9765000000000006, -11153601255.0; +3.9831666666666674, -11435704420.0; +3.9898333333333333, -11898858870.0; +3.9965, -12155699065.0; +4.003166666666667, -12303066390.0; +4.009833333333334, -12294645400.0; +4.016500000000001, -12252540450.0; +4.0231666666666674, -12206225005.0; +4.029833333333333, -12092541640.0; +4.0365, -12092541640.0; +4.043166666666667, -12067278670.0; +4.049833333333334, -12058857680.0; +4.056500000000001, -11957805800.0; +4.0631666666666675, -11928332335.0; +4.069833333333333, -11692544615.0; +4.0765, -11444125410.0; +4.083166666666667, -11103075315.0; +4.089833333333334, -10993602445.0; +4.096500000000001, -11006233930.0; +4.103166666666667, -10947287000.0; +4.1098333333333334, -11237811155.0; +4.1165, -11772544020.0; +4.123166666666667, -12463065200.0; +4.129833333333334, -12837799255.0; +4.136500000000001, -12867272720.0; +4.143166666666667, -13018850540.0; +4.1498333333333335, -13275690735.0; +4.1565, -13364111130.0; +4.163166666666667, -13039903015.0; +4.169833333333334, -12593590545.0; +4.176500000000001, -12357802825.0; +4.183166666666667, -12197804015.0; +4.1898333333333335, -12004121245.0; +4.1965, -11776754515.0; +4.203166666666667, -11818859465.0; +4.209833333333334, -11945174315.0; +4.216500000000001, -12218856490.0; +4.223166666666667, -12551485595.0; +4.229833333333334, -12677800445.0; +4.2365, -12656747970.0; +4.243166666666667, -12757799850.0; +4.249833333333334, -13103060440.0; +4.256500000000001, -13364111130.0; +4.263166666666667, -13233585785.0; +4.269833333333334, -13098849945.0; +4.2765, -13267269745.0; +4.283166666666667, -13730424195.0; +4.289833333333334, -13957790925.0; +4.2965, -14029369340.0; +4.303166666666667, -14147263200.0; +4.309833333333334, -14378840425.0; +4.3165000000000004, -14463050325.0; +4.323166666666667, -14210420625.0; +4.329833333333334, -14193578645.0; +4.3365, -14180947160.0; +4.343166666666667, -14100947755.0; +4.349833333333334, -13679898255.0; +4.3565000000000005, -13174638855.0; +4.363166666666667, -12669379455.0; +4.369833333333334, -12117804610.0; +4.3765, -11667281645.0; +4.383166666666667, -11452546400.0; +4.389833333333334, -11730439070.0; +4.3965000000000005, -12378855300.0; +4.403166666666667, -13267269745.0; +4.409833333333334, -14016737855.0; +4.4165, -14404103395.0; +4.423166666666667, -14543049730.0; +4.429833333333334, -14580944185.0; +4.4365000000000006, -14724101015.0; +4.443166666666667, -14736732500.0; +4.449833333333333, -14724101015.0; +4.4565, -14833573885.0; +4.463166666666667, -14930415270.0; +4.469833333333334, -15077782595.0; +4.476500000000001, -15018835665.0; +4.483166666666667, -15157782000.0; +4.489833333333333, -15309359820.0; +4.4965, -15456727145.0; +4.503166666666667, -15591462985.0; +4.509833333333334, -15372517245.0; +4.516500000000001, -14913573290.0; +4.5231666666666674, -14033579835.0; +4.529833333333333, -13263059250.0; +4.5365, -12976745590.0; +4.543166666666667, -12993587570.0; +4.549833333333334, -13208322815.0; +4.556500000000001, -13524109940.0; +4.5631666666666675, -14336735475.0; +4.569833333333333, -15258833880.0; +4.5765, -15599883975.0; +4.583166666666667, -15797777240.0; +4.589833333333334, -15949355060.0; +4.596500000000001, -16033564960.0; +4.6031666666666675, -15486200610.0; +4.6098333333333334, -14665154085.0; +4.6165, -14185157655.0; +4.623166666666667, -13780950135.0; +4.629833333333334, -13646214295.0; +4.636500000000001, -13835686570.0; +4.643166666666667, -14509365770.0; +4.6498333333333335, -15507253085.0; +4.6565, -16500929905.0; +4.663166666666667, -17368291875.0; +4.669833333333334, -17734604940.0; +4.676500000000001, -17583027120.0; +4.683166666666667, -17119872670.0; +4.6898333333333335, -16500929905.0; +4.6965, -16100932880.0; +4.703166666666667, -15797777240.0; +4.709833333333334, -15612515460.0; +4.716500000000001, -15313570315.0; +4.723166666666667, -15115677050.0; +4.729833333333334, -14972520220.0; +4.7365, -14728311510.0; +4.743166666666667, -14467260820.0; +4.749833333333334, -14450418840.0; +4.756500000000001, -14854626360.0; +4.763166666666667, -15254623385.0; +4.769833333333334, -15456727145.0; +4.7765, -15246202395.0; +4.783166666666667, -14964099230.0; +4.789833333333334, -14694627550.0; +4.796500000000001, -14686206560.0; +4.803166666666667, -14677785570.0; +4.809833333333334, -14551470720.0; +4.8165000000000004, -14576733690.0; +4.823166666666667, -14837784380.0; +4.829833333333334, -15132519030.0; +4.8365, -15098835070.0; +4.843166666666667, -15027256655.0; +4.849833333333334, -15052519625.0; +4.8565000000000005, -14968309725.0; +4.863166666666667, -14576733690.0; +4.869833333333334, -14134631715.0; +4.8765, -13827265580.0; +4.883166666666667, -13789371125.0; +4.889833333333334, -13818844590.0; +4.8965000000000005, -13865160035.0; +4.903166666666667, -14147263200.0; +4.909833333333334, -14383050920.0; +4.9165, -14745153490.0; +4.923166666666667, -14905152300.0; +4.929833333333334, -15115677050.0; +4.9365000000000006, -15401990710.0; +4.943166666666667, -15427253680.0; +4.949833333333334, -15364096255.0; +4.9565, -15069361605.0; +4.963166666666667, -14837784380.0; +4.969833333333334, -14656733095.0; +4.976500000000001, -14610417650.0; +4.983166666666667, -14580944185.0; +4.989833333333333, -14589365175.0; +4.9965, -14976730715.0; +5.003166666666667, -15591462985.0; +5.009833333333334, -16041985950.0; +5.016500000000001, -15894618625.0; +5.0231666666666674, -15591462985.0; +5.029833333333333, -15465148135.0; +5.0365, -15107256060.0; +5.043166666666667, -14526207750.0; +5.049833333333334, -13919896470.0; +5.056500000000001, -13945159440.0; +5.0631666666666675, -14281999040.0; +5.069833333333333, -14517786760.0; +5.0765, -14648312105.0; +5.083166666666667, -14820942400.0; +5.089833333333334, -15199886950.0; +5.096500000000001, -15633567935.0; +5.1031666666666675, -15894618625.0; +5.1098333333333334, -15928302585.0; +5.1165, -15667251895.0; +5.123166666666667, -15334622790.0; +5.129833333333334, -14829363390.0; +5.136500000000001, -14336735475.0; +5.1431666666666676, -14324103990.0; +5.1498333333333335, -14311472505.0; +5.1565, -14185157655.0; +5.163166666666667, -13519899445.0; +5.169833333333334, -13124112915.0; +5.176500000000001, -12711484405.0; +5.183166666666667, -12231487975.0; +5.1898333333333335, -12235698470.0; +5.1965, -12635695495.0; +5.203166666666667, -13317795685.0; +5.209833333333334, -13709371720.0; +5.216500000000001, -13928317460.0; +5.223166666666667, -14054632310.0; +5.229833333333334, -13789371125.0; +5.2365, -13726213700.0; +5.243166666666667, -13827265580.0; +5.249833333333334, -14054632310.0; +5.256500000000001, -14252525575.0; +5.263166666666667, -14277788545.0; +5.269833333333334, -14340945970.0; +5.2765, -14286209535.0; +5.283166666666667, -14412524385.0; +5.289833333333334, -14711469530.0; +5.296500000000001, -14934625765.0; +5.303166666666667, -15086203585.0; +5.309833333333334, -15195676455.0; +5.3165000000000004, -15263044375.0; +5.323166666666667, -15027256655.0; +5.329833333333334, -14475681810.0; +5.336500000000001, -14151473695.0; +5.343166666666667, -13738845185.0; +5.349833333333334, -13359900635.0; +5.3565000000000005, -12766220840.0; +5.363166666666667, -12572538070.0; +5.369833333333334, -12572538070.0; +5.3765, -12753589355.0; +5.383166666666667, -13082007965.0; +5.389833333333334, -13486215485.0; +5.3965000000000005, -13949369935.0; +5.403166666666667, -14252525575.0; +5.409833333333334, -14500944780.0; +5.4165, -14370419435.0; +5.423166666666667, -14147263200.0; +5.429833333333334, -13776739640.0; +5.4365000000000006, -13427268555.0; +5.443166666666667, -13178849350.0; +5.449833333333334, -13145165390.0; +5.4565, -13376742615.0; +5.463166666666667, -13376742615.0; +5.469833333333334, -13338848160.0; +5.476500000000001, -13460952515.0; +5.483166666666667, -13642003800.0; +5.489833333333334, -13785160630.0; +5.4965, -13751476670.0; +5.503166666666667, -14029369340.0; +5.509833333333334, -14265157060.0; +5.516500000000001, -14488313295.0; +5.5231666666666674, -14521997255.0; +5.529833333333333, -14475681810.0; +5.5365, -14269367555.0; +5.543166666666667, -13734634690.0; +5.549833333333334, -13220954300.0; +5.556500000000001, -12715694900.0; +5.5631666666666675, -12446223220.0; +5.569833333333333, -12353592330.0; +5.5765, -12618853515.0; +5.583166666666667, -13250427765.0; +5.589833333333334, -14029369340.0; +5.596500000000001, -14648312105.0; +5.6031666666666675, -14888310320.0; +5.6098333333333334, -14837784380.0; +5.6165, -14597786165.0; +5.623166666666667, -14176736665.0; +5.629833333333334, -13667266770.0; +5.636500000000001, -13385163605.0; +5.6431666666666676, -13498846970.0; +5.6498333333333335, -13726213700.0; +5.6565, -13810423600.0; +5.663166666666667, -14122000230.0; +5.669833333333334, -14673575075.0; +5.676500000000001, -14888310320.0; +5.683166666666668, -14378840425.0; +5.6898333333333335, -13490425980.0; +5.6965, -12951482620.0; +5.703166666666667, -12589380050.0; +5.709833333333334, -12269382430.0; +5.716500000000001, -12113594115.0; +5.723166666666667, -12315697875.0; +5.729833333333334, -12867272720.0; +5.7365, -13115691925.0; +5.743166666666667, -12896746185.0; +5.749833333333334, -12404118270.0; +5.756500000000001, -12231487975.0; +5.763166666666667, -12357802825.0; +5.769833333333334, -12349381835.0; +5.7765, -12210435500.0; +5.783166666666667, -12248329955.0; +5.789833333333334, -12572538070.0; +5.796500000000001, -12749378860.0; +5.803166666666667, -12454644210.0; +5.809833333333334, -12113594115.0; +5.8165000000000004, -12143067580.0; +5.823166666666667, -12378855300.0; +5.829833333333334, -12505170150.0; +5.836500000000001, -12303066390.0; +5.843166666666667, -12290434905.0; +5.849833333333334, -12345171340.0; +5.8565000000000005, -12547275100.0; +5.863166666666667, -12648326980.0; +5.869833333333334, -12623064010.0; +5.876500000000001, -12618853515.0; +5.883166666666667, -12639905990.0; +5.889833333333334, -12863062225.0; +5.8965000000000005, -12791483810.0; +5.903166666666667, -12433591735.0; +5.909833333333334, -12012542235.0; +5.9165, -11890437880.0; +5.923166666666667, -12008331740.0; +5.929833333333334, -12042015700.0; +5.9365000000000006, -12067278670.0; +5.943166666666667, -12168330550.0; +5.949833333333334, -12282013915.0; +5.9565, -12176751540.0; +5.963166666666667, -11915700850.0; +5.969833333333334, -11726228575.0; +5.976500000000001, -11738860060.0; +5.983166666666667, -12138857085.0; +5.989833333333334, -12564117080.0; +5.9965, -12909377670.0; +6.003166666666667, -13027271530.0; +6.009833333333334, -13183059845.0; +6.016500000000001, -13258848755.0; +6.0231666666666674, -13157796875.0; +6.029833333333334, -13060955490.0; +6.0365, -13149375885.0; +6.043166666666667, -13334637665.0; +6.049833333333334, -13267269745.0; +6.056500000000001, -12993587570.0; +6.0631666666666675, -12711484405.0; +6.069833333333333, -12580959060.0; +6.0765, -12387276290.0; +6.083166666666667, -12151488570.0; +6.089833333333334, -12113594115.0; +6.096500000000001, -12277803420.0; +6.1031666666666675, -12391486785.0; +6.1098333333333334, -12218856490.0; +6.1165, -12202014510.0; +6.123166666666667, -12269382430.0; +6.129833333333334, -12239908965.0; +6.136500000000001, -11983068770.0; +6.1431666666666676, -11860964415.0; +6.1498333333333335, -12063068175.0; +6.1565, -12176751540.0; +6.163166666666667, -12210435500.0; +6.169833333333334, -12155699065.0; +6.176500000000001, -12265171935.0; +6.183166666666668, -12008331740.0; +6.1898333333333335, -11692544615.0; +6.1965, -11397809965.0; +6.203166666666667, -11359915510.0; +6.209833333333334, -11313600065.0; +6.216500000000001, -11208337690.0; +6.223166666666668, -11410441450.0; +6.229833333333334, -11650439665.0; +6.2365, -11974647780.0; +6.243166666666667, -11940963820.0; +6.249833333333334, -11919911345.0; +6.256500000000001, -11983068770.0; +6.263166666666667, -12075699660.0; +6.269833333333334, -12075699660.0; +6.2765, -11650439665.0; +6.283166666666667, -11376757490.0; +6.289833333333334, -11187285215.0; +6.296500000000001, -11258863630.0; +6.303166666666667, -11385178480.0; +6.309833333333334, -11465177885.0; +6.3165000000000004, -11776754515.0; +6.323166666666667, -12092541640.0; +6.329833333333334, -12391486785.0; +6.336500000000001, -12408328765.0; +6.343166666666667, -12159909560.0; +6.349833333333334, -11898858870.0; +6.3565000000000005, -11562019270.0; +6.363166666666667, -11359915510.0; +6.369833333333334, -11183074720.0; +6.376500000000001, -10951497495.0; +6.383166666666667, -10564131955.0; +6.389833333333334, -10138871960.0; +6.3965000000000005, -9903084240.0; +6.403166666666667, -9776769390.0; +6.409833333333334, -9780979885.0; +6.416500000000001, -10122029980.0; +6.423166666666667, -10930445020.0; +6.429833333333334, -11865174910.0; +6.4365000000000006, -12522012130.0; +6.443166666666667, -12804115295.0; +6.449833333333334, -12820957275.0; +6.4565, -12564117080.0; +6.463166666666667, -12176751540.0; +6.469833333333334, -11793596495.0; +6.476500000000001, -11519914320.0; +6.483166666666667, -11646229170.0; +6.489833333333334, -11844122435.0; +6.4965, -11987279265.0; +6.503166666666667, -12012542235.0; +6.509833333333334, -12218856490.0; +6.516500000000001, -12576748565.0; +6.5231666666666674, -12572538070.0; +6.529833333333334, -12538854110.0; +6.5365, -12736747375.0; +6.543166666666667, -13145165390.0; +6.549833333333334, -13258848755.0; +6.556500000000001, -13153586380.0; +6.5631666666666675, -12850430740.0; +6.569833333333334, -12391486785.0; +6.5765, -11671492140.0; +6.583166666666667, -10913603040.0; +6.589833333333334, -10362028195.0; +6.596500000000001, -10130450970.0; +6.6031666666666675, -10336765225.0; +6.6098333333333334, -10778867200.0; +6.6165, -11220969175.0; +6.623166666666667, -11473598875.0; +6.629833333333334, -11540966795.0; +6.636500000000001, -11385178480.0; +6.6431666666666676, -11178864225.0; +6.6498333333333335, -11225179670.0; +6.6565, -11393599470.0; +6.663166666666667, -11423072935.0; +6.669833333333334, -11195706205.0; +6.676500000000001, -11128338285.0; +6.683166666666668, -11271495115.0; +6.6898333333333335, -11418862440.0; +6.6965, -11477809370.0; +6.703166666666667, -11608334715.0; +6.709833333333334, -11894648375.0; +6.716500000000001, -12311487380.0; +6.723166666666668, -12522012130.0; +6.729833333333334, -12576748565.0; +6.7365, -12408328765.0; +6.743166666666667, -12282013915.0; +6.749833333333334, -12307276885.0; +6.756500000000001, -12100962630.0; +6.763166666666668, -11873595900.0; +6.769833333333334, -11183074720.0; +6.7765, -10669394330.0; +6.783166666666667, -10235713345.0; +6.789833333333334, -10159924435.0; +6.796500000000001, -10286239285.0; +6.803166666666667, -10420975125.0; +6.809833333333334, -10757814725.0; +6.8165000000000004, -11132548780.0; +6.823166666666667, -11802017485.0; +6.829833333333334, -12147278075.0; +6.836500000000001, -12340960845.0; +6.843166666666667, -12307276885.0; +6.849833333333334, -12092541640.0; +6.8565000000000005, -11663071150.0; +6.863166666666667, -10846235120.0; +6.869833333333334, -10172555920.0; +6.876500000000001, -9747295925.0; +6.883166666666667, -9654665035.0; +6.889833333333334, -9844137310.0; +6.8965000000000005, -10298870770.0; +6.903166666666667, -10934655515.0; +6.909833333333334, -11427283430.0; +6.916500000000001, -11473598875.0; +6.923166666666667, -11191495710.0; +6.929833333333334, -10997812940.0; +6.9365000000000006, -10778867200.0; +6.943166666666667, -10551500470.0; +6.949833333333334, -10269397305.0; +6.956500000000001, -10307291760.0; +6.963166666666667, -10639920865.0; +6.969833333333334, -10858866605.0; +6.976500000000001, -11035707395.0; +6.983166666666667, -11111496305.0; +6.989833333333334, -11317810560.0; +6.9965, -11271495115.0; +7.003166666666667, -10968339475.0; +7.009833333333334, -10665183835.0; +7.016500000000001, -10656762845.0; +7.0231666666666674, -10715709775.0; +7.029833333333334, -10593605420.0; +7.0365, -10387291165.0; +7.043166666666667, -10383080670.0; +7.049833333333334, -10698867795.0; +7.056500000000001, -10905182050.0; +7.0631666666666675, -11119917295.0; +7.069833333333334, -11275705610.0; +7.0765, -11599913725.0; +7.083166666666667, -11848332930.0; +7.089833333333334, -11978858275.0; +7.096500000000001, -11818859465.0; +7.1031666666666675, -11705176100.0; +7.109833333333334, -11612545210.0; +7.1165, -11402020460.0; +7.123166666666667, -10934655515.0; +7.129833333333334, -10442027600.0; +7.136500000000001, -10467290570.0; +7.1431666666666676, -10425185620.0; +7.1498333333333335, -10256765820.0; +7.1565, -10037820080.0; +7.163166666666667, -10496764035.0; +7.169833333333334, -10955707990.0; +7.176500000000001, -11035707395.0; +7.183166666666668, -10791498685.0; +7.1898333333333335, -10715709775.0; +7.1965, -10816761655.0; +7.203166666666667, -10568342450.0; +7.209833333333334, -10164134930.0; +7.216500000000001, -9835716320.0; +7.223166666666668, -9734664440.0; +7.229833333333334, -9789400875.0; +7.2365, -9860979290.0; +7.243166666666667, -9983083645.0; +7.249833333333334, -10218871365.0; +7.256500000000001, -10530447995.0; +7.263166666666668, -10850445615.0; +7.269833333333334, -10968339475.0; +7.2765, -10833603635.0; +7.283166666666667, -10677815320.0; +7.289833333333334, -10543079480.0; +7.296500000000001, -10349396710.0; +7.303166666666668, -10231502850.0; +7.309833333333334, -10168345425.0; +7.3165000000000004, -10307291760.0; +7.323166666666667, -10244134335.0; +7.329833333333334, -9983083645.0; +7.336500000000001, -9814663845.0; +7.343166666666667, -9629402065.0; +7.349833333333334, -9587297115.0; +7.3565000000000005, -9658875530.0; +7.363166666666667, -10008346615.0; +7.369833333333334, -10332554730.0; +7.376500000000001, -10374659680.0; +7.383166666666667, -10416764630.0; +7.389833333333334, -10618868390.0; +7.3965000000000005, -10804130170.0; +7.403166666666667, -10787288190.0; +7.409833333333334, -10820972150.0; +7.416500000000001, -11048338880.0; +7.423166666666667, -11448335905.0; +7.429833333333334, -11477809370.0; +7.4365000000000006, -11359915510.0; +7.443166666666667, -11098864820.0; +7.449833333333334, -10913603040.0; +7.456500000000001, -10522027005.0; +7.463166666666667, -9827295330.0; +7.469833333333334, -9275720485.0; +7.476500000000001, -8816776530.0; +7.483166666666667, -8682040690.0; +7.489833333333334, -8458884455.0; +7.496500000000001, -8635725245.0; +7.503166666666667, -8993617320.0; +7.509833333333334, -9364140880.0; +7.516500000000001, -9528350185.0; +7.5231666666666674, -9444140285.0; +7.529833333333334, -9511508205.0; +7.5365, -9494666225.0; +7.543166666666667, -9679928005.0; +7.549833333333334, -9890452755.0; +7.556500000000001, -10454659085.0; +7.5631666666666675, -10896761060.0; +7.569833333333334, -11065180860.0; +7.5765, -10745183240.0; +7.583166666666667, -10290449780.0; +7.589833333333334, -9755716915.0; +7.596500000000001, -9090458705.0; +7.6031666666666675, -8816776530.0; +7.609833333333334, -8947301875.0; +7.6165, -9355719890.0; +7.623166666666667, -9532560680.0; +7.629833333333334, -9709401470.0; +7.636500000000001, -9898873745.0; +7.6431666666666676, -9966241665.0; +7.649833333333334, -9810453350.0; +7.6565, -9806242855.0; +7.663166666666667, -9949399685.0; +7.669833333333334, -10256765820.0; +7.676500000000001, -10395712155.0; +7.683166666666668, -10256765820.0; +7.6898333333333335, -9974662655.0; +7.6965, -9654665035.0; +7.703166666666667, -9338877910.0; +7.709833333333334, -8770461085.0; +7.716500000000001, -8387306040.0; +7.723166666666668, -8231517725.0; +7.729833333333334, -8105202875.0; +7.7365, -7865204660.0; +7.743166666666667, -7759942285.0; +7.749833333333334, -8054676935.0; +7.756500000000001, -8210465250.0; +7.763166666666668, -8446252970.0; +7.769833333333334, -8934670390.0; +7.7765, -9578876125.0; +7.783166666666667, -9882031765.0; +7.789833333333334, -9700980480.0; +7.796500000000001, -9553613155.0; +7.803166666666668, -9279930980.0; +7.809833333333334, -8728356135.0; +7.8165000000000004, -8239938715.0; +7.823166666666667, -8235728220.0; +7.829833333333334, -8530462870.0; +7.836500000000001, -8711514155.0; +7.843166666666668, -8829408015.0; +7.849833333333334, -9271509990.0; +7.8565000000000005, -9797821865.0; +7.863166666666667, -9907294735.0; +7.869833333333334, -9751506420.0; +7.876500000000001, -9562034145.0; +7.883166666666667, -9574665630.0; +7.889833333333334, -9334667415.0; +7.8965000000000005, -8858881480.0; +7.903166666666667, -8500989405.0; +7.909833333333334, -8362043070.0; +7.916500000000001, -8231517725.0; +7.923166666666667, -7936783075.0; +7.929833333333334, -7667311395.0; +7.9365000000000006, -7629416940.0; +7.943166666666667, -7886257135.0; +7.949833333333334, -8269412180.0; +7.9565, -8749408610.0; +7.963166666666668, -9002038310.0; +7.969833333333334, -9229405040.0; +7.9765000000000015, -9174668605.0; +7.983166666666667, -8829408015.0; +7.989833333333333, -8399937525.0; +7.996500000000001, -8126255350.0; +8.003166666666667, -8362043070.0; +8.009833333333335, -8509410395.0; +8.0165, -8433621485.0; +8.023166666666667, -8185202280.0; +8.029833333333334, -7852573175.0; +8.0365, -7688363870.0; +8.043166666666668, -7132578530.0; +8.049833333333334, -6648371605.0; +8.0565, -6513635765.0; +8.063166666666667, -6770475960.0; +8.069833333333333, -6951527245.0; +8.076500000000001, -6753633980.0; +8.083166666666667, -6821001900.0; +8.089833333333335, -7044158135.0; +8.0965, -7195735955.0; +8.103166666666667, -6938895760.0; +8.109833333333334, -6635740120.0; +8.1165, -6277848045.0; +8.123166666666668, -5743115180.0; +8.129833333333334, -5208382315.0; +8.1365, -4816806280.0; +8.143166666666668, -4602071035.0; +8.149833333333333, -4698912420.0; +8.156500000000001, -5082067465.0; +8.163166666666667, -5818904090.0; +8.169833333333335, -6534688240.0; +8.1765, -7288366845.0; +8.183166666666667, -7945204065.0; +8.189833333333334, -8138886835.0; +8.1965, -8063097925.0; +8.203166666666668, -7772573770.0; +8.209833333333334, -7650469415.0; +8.2165, -7322050805.0; +8.223166666666668, -6955737740.0; +8.229833333333334, -6753633980.0; +8.236500000000001, -6623108635.0; +8.243166666666667, -6593635170.0; +8.249833333333333, -6303111015.0; +8.2565, -5928376960.0; +8.263166666666667, -5595747855.0; +8.269833333333334, -5322065680.0; +8.2765, -5562063895.0; +8.283166666666668, -6021007850.0; +8.289833333333334, -6698897545.0; +8.2965, -7389418725.0; +8.303166666666668, -7978888025.0; +8.309833333333334, -8740987620.0; +8.316500000000001, -9275720485.0; +8.323166666666667, -9406245830.0; +8.329833333333333, -9199931575.0; +8.336500000000001, -8972564845.0; +8.343166666666667, -9107300685.0; +8.349833333333335, -9178879100.0; +8.3565, -9094669200.0; +8.363166666666668, -8846249995.0; +8.369833333333334, -8522041880.0; +8.3765, -8239938715.0; +8.383166666666668, -7810468225.0; +8.389833333333334, -7267314370.0; +8.396500000000001, -6576793190.0; +8.403166666666667, -6197848640.0; +8.409833333333333, -6105217750.0; +8.416500000000001, -5936797950.0; +8.423166666666667, -5595747855.0; +8.429833333333335, -5376802115.0; +8.4365, -5406275580.0; +8.443166666666666, -5355749640.0; +8.449833333333334, -5191540335.0; +8.4565, -5191540335.0; +8.463166666666668, -5284171225.0; +8.469833333333334, -5376802115.0; +8.476500000000001, -5423117560.0; +8.483166666666667, -5469433005.0; +8.489833333333333, -5621010825.0; +8.496500000000001, -5886272010.0; +8.503166666666667, -6345215965.0; +8.509833333333335, -6804159920.0; +8.5165, -7056789620.0; +8.523166666666667, -7220998925.0; +8.529833333333334, -7128368035.0; +8.5365, -6930474770.0; +8.543166666666668, -6378899925.0; +8.549833333333334, -5633642310.0; +8.556500000000002, -5221013800.0; +8.563166666666667, -5132593405.0; +8.569833333333333, -5338907660.0; +8.576500000000001, -5334697165.0; +8.583166666666667, -5612589835.0; +8.589833333333335, -6046270820.0; +8.5965, -6084165275.0; +8.603166666666667, -5612589835.0; +8.609833333333334, -5065225485.0; +8.6165, -4947331625.0; +8.623166666666668, -4825227270.0; +8.629833333333334, -4505229650.0; +8.6365, -4223126485.0; +8.643166666666668, -4126285100.0; +8.649833333333333, -4214705495.0; +8.656500000000001, -4273652425.0; +8.663166666666667, -4442072225.0; +8.669833333333335, -4707333410.0; +8.6765, -4976805090.0; +8.683166666666667, -5048383505.0; +8.689833333333334, -4858911230.0; +8.6965, -4492598165.0; +8.703166666666668, -4046285695.0; +8.709833333333334, -3839971440.0; +8.7165, -3932602330.0; +8.723166666666668, -4362072820.0; +8.729833333333334, -4682070440.0; +8.736500000000001, -4821016775.0; +8.743166666666667, -4736806875.0; +8.749833333333335, -4585229055.0; +8.7565, -4404177770.0; +8.763166666666667, -4517861135.0; +8.769833333333334, -4854700735.0; +8.7765, -5604168845.0; +8.783166666666668, -6197848640.0; +8.789833333333334, -6387320915.0; +8.7965, -6088375770.0; +8.803166666666668, -5637852805.0; +8.809833333333334, -5452591025.0; +8.816500000000001, -5077856970.0; +8.823166666666667, -4901016180.0; +8.829833333333333, -4909437170.0; +8.836500000000001, -5490485480.0; +8.843166666666667, -5991534385.0; +8.849833333333335, -6227322105.0; +8.8565, -6357847450.0; +8.863166666666668, -6488372795.0; +8.869833333333334, -6707318535.0; +8.8765, -6673634575.0; +8.883166666666668, -6319952995.0; +8.889833333333334, -5793641120.0; +8.896500000000001, -5301013205.0; +8.903166666666667, -4943121130.0; +8.909833333333333, -4757859350.0; +8.916500000000001, -4597860540.0; +8.923166666666667, -4484177175.0; +8.929833333333335, -4294704900.0; +8.9365, -4075759160.0; +8.943166666666666, -4037864705.0; +8.949833333333334, -4096811635.0; +8.9565, -4223126485.0; +8.963166666666668, -4404177770.0; +8.969833333333334, -4530492620.0; +8.976500000000001, -4753648855.0; +8.983166666666667, -4656807470.0; +8.989833333333333, -4223126485.0; +8.996500000000001, -3722077580.0; +9.003166666666667, -3473658375.0; +9.009833333333335, -3557868275.0; +9.0165, -3591552235.0; +9.023166666666667, -3557868275.0; +9.029833333333334, -3528394810.0; +9.0365, -3296817585.0; +9.043166666666668, -3031556400.0; +9.049833333333334, -2732611255.0; +9.056500000000002, -2576822940.0; +9.063166666666667, -2471560565.0; +9.069833333333333, -2724190265.0; +9.076500000000001, -3414711445.0; +9.083166666666667, -4239968465.0; +9.089833333333335, -4905226675.0; +9.0965, -5254697760.0; +9.103166666666667, -5536800925.0; +9.109833333333334, -5583116370.0; +9.1165, -5414696570.0; +9.123166666666668, -4959963110.0; +9.129833333333334, -4606281530.0; +9.1365, -4370493810.0; +9.143166666666668, -4252599950.0; +9.149833333333333, -3856813420.0; +9.156500000000001, -3385237980.0; +9.163166666666667, -2879978580.0; +9.169833333333335, -2484192050.0; +9.1765, -2252614825.0; +9.183166666666667, -2075774035.0; +9.189833333333334, -2075774035.0; +9.1965, -2265246310.0; +9.203166666666668, -2644190860.0; +9.209833333333334, -2715769275.0; +9.2165, -2677874820.0; +9.223166666666668, -2690506305.0; +9.229833333333334, -2985240955.0; +9.236500000000001, -3292607090.0; +9.243166666666667, -3452605900.0; +9.249833333333335, -3633657185.0; +9.2565, -3435763920.0; +9.263166666666667, -3111555805.0; +9.269833333333334, -2618927890.0; +9.2765, -2189457400.0; +9.283166666666668, -1907354235.0; +9.289833333333334, -2092616015.0; +9.2965, -2618927890.0; +9.303166666666668, -2858926105.0; +9.309833333333334, -2922083530.0; +9.316500000000001, -2997872440.0; +9.323166666666667, -3098924320.0; +9.329833333333333, -2728400760.0; +9.336500000000001, -2159983935.0; +9.343166666666667, -1873670275.0; +9.349833333333335, -1578935625.0; +9.3565, -1128412660.0; +9.363166666666668, -816836030.0; +9.369833333333334, -917887910.0; +9.3765, -1271569490.0; +9.383166666666668, -1482094240.0; +9.389833333333334, -1844196810.0; +9.396500000000001, -2307351260.0; +9.403166666666667, -2623138385.0; +9.409833333333333, -2635769870.0; +9.416500000000001, -2555770465.0; +9.423166666666667, -2522086505.0; +9.429833333333335, -2534717990.0; +9.4365, -2585243930.0; +9.443166666666668, -2812610660.0; +9.449833333333334, -3187344715.0; +9.4565, -3515763325.0; +9.463166666666668, -3911549855.0; +9.469833333333334, -4109443120.0; +9.476500000000001, -4054706685.0; +9.483166666666667, -3498921345.0; +9.489833333333333, -2728400760.0; +9.496500000000001, -2159983935.0; +9.503166666666667, -1688408495.0; +9.509833333333335, -1456831270.0; +9.5165, -1439989290.0; +9.523166666666667, -1701039980.0; +9.529833333333334, -2033669085.0; +9.5365, -2214720370.0; +9.543166666666668, -2378929675.0; +9.549833333333334, -2387350665.0; +9.556500000000002, -2197878390.0; +9.563166666666667, -1953669680.0; +9.569833333333333, -1654724535.0; +9.576500000000001, -1334726915.0; +9.583166666666667, -1031571275.0; +9.589833333333335, -1128412660.0; +9.5965, -1330516420.0; +9.603166666666667, -1338937410.0; +9.609833333333334, -1402094835.0; +9.6165, -1595777605.0; +9.623166666666668, -1861038790.0; +9.629833333333334, -1713671465.0; +9.636500000000002, -1423147310.0; +9.643166666666668, -1250517015.0; +9.649833333333333, -1103149690.0; +9.656500000000001, -985255830.0; +9.663166666666667, -901045930.0; +9.669833333333335, -774731080.0; +9.6765, -669468705.0; +9.683166666666667, -669468705.0; +9.689833333333334, -875782960.0; +9.6965, -985255830.0; +9.703166666666668, -812625535.0; +9.709833333333334, -534732865.0; +9.7165, -433680985.0; +9.723166666666668, -492627915.0; +9.729833333333334, -593679795.0; +9.736500000000001, -778941575.0; +9.743166666666667, -1048413255.0; +9.749833333333335, -1410515825.0; +9.7565, -1482094240.0; +9.763166666666667, -1145254640.0; +9.769833333333334, -661047715.0; +9.7765, -332629105.0; +9.783166666666668, -147367325.0; +9.789833333333334, 239998215.0; +9.7965, 530522370.0; +9.803166666666668, 492627915.0; +9.809833333333334, 75788910.0; +9.816500000000001, -151577820.0; +9.823166666666667, -155788315.0; +9.829833333333335, -164209305.0; +9.836500000000001, -159998810.0; +9.843166666666667, -164209305.0; +9.849833333333335, 126314850.0; +9.8565, 425259995.0; +9.863166666666668, 757889100.0; +9.869833333333334, 905256425.0; +9.8765, 711573655.0; +9.883166666666668, 261050690.0; +9.889833333333334, -29473465.0; +9.896500000000001, -58946930.0; +9.903166666666667, 4210495.0; +9.909833333333333, 71578415.0; +9.916500000000001, 349471085.0; +9.923166666666667, 888414445.0; +9.929833333333335, 1258938005.0; +9.9365, 1317884935.0; +9.943166666666668, 1048413255.0; +9.949833333333334, 661047715.0; +9.9565, 181051285.0; +9.963166666666668, -134735840.0; +9.969833333333334, -273682175.0; +9.976500000000001, -252629700.0; +9.983166666666667, -96841385.0; +9.989833333333333, 147367325.0; +9.996500000000001, 526311875.0; +10.003166666666667, 850519990.0; +10.009833333333335, 989466325.0; +10.0165, 1048413255.0; +10.023166666666667, 1014729295.0; +10.029833333333334, 1098939195.0; +10.0365, 1174728105.0; +10.043166666666668, 1246306520.0; +10.049833333333334, 1343147905.0; +10.056500000000002, 1393673845.0; +10.063166666666667, 1376831865.0; +10.069833333333333, 1157886125.0; +10.076500000000001, 854730485.0; +10.083166666666667, 694731675.0; +10.089833333333335, 749468110.0; +10.0965, 968413850.0; +10.103166666666667, 1174728105.0; +10.109833333333334, 1166307115.0; +10.1165, 1073676225.0; +10.123166666666668, 762099595.0; +10.129833333333334, 568416825.0; +10.136500000000002, 349471085.0; +10.143166666666668, 475785935.0; +10.149833333333333, 879993455.0; +10.156500000000001, 1511567705.0; +10.163166666666667, 2105247500.0; +10.169833333333335, 2429455615.0; +10.1765, 2639980365.0; +10.183166666666667, 2778926700.0; +10.189833333333334, 2972609470.0; +10.1965, 2951556995.0; +10.203166666666668, 2879978580.0; +10.209833333333334, 2724190265.0; +10.2165, 2610506900.0; +10.223166666666668, 2442087100.0; +10.229833333333334, 2294719775.0; +10.236500000000001, 2143141955.0; +10.243166666666667, 1751565920.0; +10.249833333333335, 1322095430.0; +10.2565, 955782365.0; +10.263166666666667, 551574845.0; +10.269833333333334, 75788910.0; +10.2765, -294734650.0; +10.283166666666668, -185261780.0; +10.289833333333334, 349471085.0; +10.2965, 926308900.0; +10.303166666666668, 1688408495.0; +10.309833333333334, 2332614230.0; +10.316500000000001, 3103134815.0; +10.323166666666667, 3835760945.0; +10.329833333333335, 4387335790.0; +10.336500000000001, 4656807470.0; +10.343166666666667, 4383125295.0; +10.349833333333335, 4134706090.0; +10.3565, 3877865895.0; +10.363166666666668, 3781024510.0; +10.369833333333334, 3536815800.0; +10.3765, 3414711445.0; +10.383166666666668, 3608394215.0; +10.389833333333334, 3844181935.0; +10.396500000000001, 3865234410.0; +10.403166666666667, 3604183720.0; +10.409833333333333, 3507342335.0; +10.416500000000001, 3452605900.0; +10.423166666666667, 3246291645.0; +10.429833333333335, 2888399570.0; +10.4365, 2799979175.0; +10.443166666666668, 2867347095.0; +10.449833333333334, 2875768085.0; +10.4565, 2846294620.0; +10.463166666666668, 2934715015.0; +10.469833333333334, 3107345310.0; +10.476500000000001, 3090503330.0; +10.483166666666667, 2922083530.0; +10.489833333333333, 2846294620.0; +10.496500000000001, 2762084720.0; +10.503166666666667, 2799979175.0; +10.509833333333335, 3031556400.0; +10.5165, 3359975010.0; +10.523166666666668, 3722077580.0; +10.529833333333334, 3839971440.0; +10.5365, 3894707875.0; +10.543166666666668, 4042075200.0; +10.549833333333334, 4130495595.0; +10.556500000000002, 4071548665.0; +10.563166666666667, 3839971440.0; +10.569833333333333, 3604183720.0; +10.576500000000001, 3473658375.0; +10.583166666666667, 3246291645.0; +10.589833333333335, 3023135410.0; +10.5965, 3035766895.0; +10.603166666666667, 3153660755.0; +10.609833333333334, 3301028080.0; +10.6165, 3347343525.0; +10.623166666666668, 3204186695.0; +10.629833333333334, 3301028080.0; +10.636500000000002, 3629446690.0; +10.643166666666668, 4294704900.0; +10.649833333333333, 4955752615.0; +10.656500000000001, 5444170035.0; +10.663166666666667, 5747325675.0; +10.669833333333335, 5755746665.0; +10.6765, 5381012610.0; +10.683166666666667, 4825227270.0; +10.689833333333334, 4155758565.0; +10.6965, 3667341145.0; +10.703166666666668, 3701025105.0; +10.709833333333334, 3806287480.0; +10.716500000000002, 4151548070.0; +10.723166666666668, 4387335790.0; +10.729833333333334, 4778911825.0; +10.736500000000001, 5178908850.0; +10.743166666666667, 5199961325.0; +10.749833333333335, 5023120535.0; +10.7565, 4475756185.0; +10.763166666666667, 4164179555.0; +10.769833333333334, 4176811040.0; +10.7765, 4378914800.0; +10.783166666666668, 4454703710.0; +10.789833333333334, 4547334600.0; +10.7965, 4896805685.0; +10.803166666666668, 5275750235.0; +10.809833333333334, 5229434790.0; +10.816500000000001, 4863121725.0; +10.823166666666667, 5069435980.0; +10.829833333333335, 5823114585.0; +10.836500000000001, 6606266655.0; +10.843166666666667, 6816791405.0; +10.849833333333335, 7018895165.0; +10.8565, 7347313775.0; +10.863166666666668, 7423102685.0; +10.869833333333334, 6976790215.0; +10.8765, 6387320915.0; +10.883166666666668, 6294690025.0; +10.889833333333334, 6332584480.0; +10.896500000000001, 6421004875.0; +10.903166666666667, 6391531410.0; +10.909833333333335, 6526267250.0; +10.916500000000001, 6938895760.0; +10.923166666666667, 7174683480.0; +10.929833333333335, 7288366845.0; +10.9365, 7191525460.0; +10.943166666666668, 7027316155.0; +10.949833333333334, 6661003090.0; +10.9565, 5995744880.0; +10.963166666666668, 5397854590.0; +10.969833333333334, 4922068655.0; +10.976500000000001, 4741017370.0; +10.983166666666667, 4829437765.0; +10.989833333333333, 5322065680.0; +10.996500000000001, 5911534980.0; +11.003166666666667, 6458899330.0; +11.009833333333335, 6976790215.0; +11.0165, 7343103280.0; +11.023166666666668, 7578891000.0; +11.029833333333334, 7431523675.0; +11.0365, 7364155755.0; +11.043166666666668, 7258893380.0; +11.049833333333334, 7157841500.0; +11.056500000000002, 6833633385.0; +11.063166666666667, 6341005470.0; +11.069833333333333, 6105217750.0; +11.076500000000001, 6046270820.0; +11.083166666666667, 6269427055.0; +11.089833333333335, 6433636360.0; +11.0965, 6791528435.0; +11.103166666666667, 7208367440.0; +11.109833333333334, 7528365060.0; +11.1165, 7423102685.0; +11.123166666666668, 7010474175.0; +11.129833333333334, 6711529030.0; +11.136500000000002, 6778896950.0; +11.143166666666668, 7149420510.0; +11.149833333333333, 7359945260.0; +11.156500000000001, 7397839715.0; +11.163166666666667, 7368366250.0; +11.169833333333335, 7566259515.0; +11.1765, 7671521890.0; +11.183166666666667, 7519944070.0; +11.189833333333334, 7212577935.0; +11.1965, 7313629815.0; +11.203166666666668, 7772573770.0; +11.209833333333334, 8054676935.0; +11.216500000000002, 8004150995.0; +11.223166666666668, 7940993570.0; +11.229833333333334, 8185202280.0; +11.236500000000001, 8269412180.0; +11.243166666666667, 8122044855.0; +11.249833333333335, 7999940500.0; +11.2565, 8046255945.0; +11.263166666666667, 8084150400.0; +11.269833333333334, 8159939310.0; +11.2765, 8378885050.0; +11.283166666666668, 8429410990.0; +11.289833333333334, 8147307825.0; +11.2965, 7747310800.0; +11.303166666666668, 7490470605.0; +11.309833333333334, 7115736550.0; +11.316500000000001, 6547319725.0; +11.323166666666667, 6202059135.0; +11.329833333333335, 6223111610.0; +11.336500000000001, 6585214180.0; +11.343166666666667, 6879948830.0; +11.349833333333335, 7195735955.0; +11.3565, 7507312585.0; +11.363166666666668, 7688363870.0; +11.369833333333334, 7688363870.0; +11.3765, 7477839120.0; +11.383166666666668, 7423102685.0; +11.389833333333334, 7490470605.0; +11.396500000000001, 7684153375.0; +11.403166666666667, 7894678125.0; +11.409833333333335, 8122044855.0; +11.416500000000001, 8374674555.0; +11.423166666666667, 8450463465.0; +11.429833333333335, 8564146830.0; +11.4365, 8736777125.0; +11.443166666666668, 9216773555.0; +11.449833333333334, 9633612560.0; +11.4565, 9970452160.0; +11.463166666666668, 10244134335.0; +11.469833333333334, 10105188000.0; +11.476500000000001, 9797821865.0; +11.483166666666667, 9242036525.0; +11.489833333333333, 9010459300.0; +11.496500000000001, 8900986430.0; +11.503166666666667, 8842039500.0; +11.509833333333335, 9098879695.0; +11.5165, 9317825435.0; +11.523166666666668, 9511508205.0; +11.529833333333334, 9562034145.0; +11.5365, 9654665035.0; +11.543166666666668, 9797821865.0; +11.549833333333334, 9540981670.0; +11.556500000000002, 9271509990.0; +11.563166666666667, 9140984645.0; +11.569833333333333, 9124142665.0; +11.576500000000001, 9204142070.0; +11.583166666666667, 9486245235.0; +11.589833333333335, 10235713345.0; +11.5965, 10926234525.0; +11.603166666666668, 11313600065.0; +11.609833333333334, 11355705015.0; +11.6165, 11018865415.0; +11.623166666666668, 10399922650.0; +11.629833333333334, 9570455135.0; +11.636500000000002, 9052564250.0; +11.643166666666668, 8745198115.0; +11.649833333333333, 8766250590.0; +11.656500000000001, 9056774745.0; +11.663166666666667, 9242036525.0; +11.669833333333335, 9351509395.0; +11.6765, 9170458110.0; +11.683166666666667, 9305193950.0; +11.689833333333334, 9620981075.0; +11.6965, 10058872555.0; +11.703166666666668, 10425185620.0; +11.709833333333334, 10513606015.0; +11.716500000000002, 10753604230.0; +11.723166666666668, 10804130170.0; +11.729833333333334, 10719920270.0; +11.736500000000001, 10500974530.0; +11.743166666666667, 10707288785.0; +11.749833333333335, 11452546400.0; +11.7565, 12092541640.0; +11.763166666666667, 12286224410.0; +11.769833333333334, 12063068175.0; +11.7765, 11709386595.0; +11.783166666666668, 11166232740.0; +11.789833333333334, 10677815320.0; +11.796500000000002, 10311502255.0; +11.803166666666668, 10185187405.0; +11.809833333333334, 10126240475.0; +11.816500000000001, 10155713940.0; +11.823166666666667, 10265186810.0; +11.829833333333335, 10012557110.0; +11.836500000000001, 9789400875.0; +11.843166666666667, 9717822460.0; +11.849833333333335, 10029399090.0; +11.8565, 10336765225.0; +11.863166666666668, 10479922055.0; +11.869833333333334, 10656762845.0; +11.8765, 10808340665.0; +11.883166666666668, 11128338285.0; +11.889833333333334, 11258863630.0; +11.896500000000001, 11246232145.0; +11.903166666666667, 11094654325.0; +11.909833333333335, 11435704420.0; +11.916500000000001, 11953595305.0; +11.923166666666667, 12197804015.0; +11.929833333333335, 12138857085.0; +11.9365, 12033594710.0; +11.943166666666668, 12223066985.0; +11.949833333333334, 12248329955.0; +11.9565, 12336750350.0; +11.963166666666668, 12408328765.0; +11.969833333333334, 12458854705.0; +11.976500000000001, 12614643020.0; +11.983166666666667, 12783062820.0; +11.989833333333335, 12833588760.0; +11.996500000000001, 12766220840.0; +12.003166666666667, 12896746185.0; +12.009833333333335, 13233585785.0; +12.0165, 13406216080.0; +12.023166666666668, 13229375290.0; +12.029833333333334, 13006219055.0; +12.0365, 12492538665.0; +12.043166666666668, 11894648375.0; +12.049833333333334, 11393599470.0; +12.056500000000002, 11334652540.0; +12.063166666666667, 11557808775.0; +12.069833333333333, 11768333525.0; +12.076500000000001, 12075699660.0; +12.083166666666667, 12332539855.0; +12.089833333333335, 12593590545.0; +12.0965, 12736747375.0; +12.103166666666668, 12955693115.0; +12.109833333333334, 13275690735.0; +12.1165, 13642003800.0; +12.123166666666668, 13793581620.0; +12.129833333333334, 13772529145.0; +12.136500000000002, 13553583405.0; +12.143166666666668, 13254638260.0; +12.149833333333333, 12736747375.0; +12.156500000000001, 12332539855.0; +12.163166666666667, 12252540450.0; +12.169833333333335, 12408328765.0; +12.1765, 12682010940.0; +12.183166666666667, 12863062225.0; +12.189833333333334, 12829378265.0; +12.1965, 12635695495.0; +12.203166666666668, 12513591140.0; +12.209833333333334, 12505170150.0; +12.216500000000002, 12543064605.0; +12.223166666666668, 12715694900.0; +12.229833333333334, 13452531525.0; +12.236500000000001, 14185157655.0; +12.243166666666667, 14610417650.0; +12.249833333333335, 14690417055.0; +12.2565, 14580944185.0; +12.263166666666667, 14340945970.0; +12.269833333333334, 13919896470.0; +12.2765, 13759897660.0; +12.283166666666668, 13835686570.0; +12.289833333333334, 13911475480.0; +12.296500000000002, 13882002015.0; +12.303166666666668, 13844107560.0; +12.309833333333334, 13835686570.0; +12.316500000000001, 14050421815.0; +12.323166666666667, 14130421220.0; +12.329833333333335, 14172526170.0; +12.336500000000001, 14185157655.0; +12.343166666666667, 14054632310.0; +12.349833333333335, 13776739640.0; +12.3565, 13039903015.0; +12.363166666666668, 12467275695.0; +12.369833333333334, 12164120055.0; +12.3765, 12143067580.0; +12.383166666666668, 12315697875.0; +12.389833333333334, 12387276290.0; +12.396500000000001, 12576748565.0; +12.403166666666667, 12618853515.0; +12.409833333333335, 12673589950.0; +12.416500000000001, 12686221435.0; +12.423166666666667, 12762010345.0; +12.429833333333335, 13039903015.0; +12.4365, 13372532120.0; +12.443166666666668, 13679898255.0; +12.449833333333334, 14016737855.0; +12.4565, 14345156465.0; +12.463166666666668, 14572523195.0; +12.469833333333334, 14441997850.0; +12.476500000000001, 14155684190.0; +12.483166666666667, 14050421815.0; +12.489833333333335, 13991474885.0; +12.496500000000001, 13936738450.0; +12.503166666666667, 13814634095.0; +12.509833333333335, 13789371125.0; +12.5165, 13924106965.0; +12.523166666666668, 13983053895.0; +12.529833333333334, 13999895875.0; +12.5365, 14016737855.0; +12.543166666666668, 14075684785.0; +12.549833333333334, 14269367555.0; +12.556500000000002, 14378840425.0; +12.563166666666667, 14425155870.0; +12.569833333333333, 14138842210.0; +12.576500000000001, 13654635285.0; +12.583166666666667, 13098849945.0; +12.589833333333335, 12602011535.0; +12.5965, 12138857085.0; +12.603166666666668, 11860964415.0; +12.609833333333334, 11557808775.0; +12.6165, 11334652540.0; +12.623166666666668, 11402020460.0; +12.629833333333334, 11856753920.0; +12.636500000000002, 12517801635.0; +12.643166666666668, 12770431335.0; +12.649833333333333, 13174638855.0; +12.656500000000001, 13827265580.0; +12.663166666666667, 14509365770.0; +12.669833333333335, 14677785570.0; +12.6765, 14336735475.0; +12.683166666666668, 14084105775.0; +12.689833333333334, 13957790925.0; +12.6965, 13957790925.0; +12.703166666666668, 13882002015.0; +12.709833333333334, 14008316865.0; +12.716500000000002, 14168315675.0; +12.723166666666668, 14324103990.0; +12.729833333333334, 14248315080.0; +12.736500000000001, 14037790330.0; +12.743166666666667, 13608319840.0; +12.749833333333335, 12976745590.0; +12.7565, 12703063415.0; +12.763166666666667, 12669379455.0; +12.769833333333334, 12884114700.0; +12.7765, 12623064010.0; +12.783166666666668, 12450433715.0; +12.789833333333334, 12395697280.0; +12.796500000000002, 12113594115.0; +12.803166666666668, 11667281645.0; +12.809833333333334, 11225179670.0; +12.816500000000001, 11469388380.0; +12.823166666666667, 11734649565.0; +12.829833333333335, 11810438475.0; +12.836500000000001, 11844122435.0; +12.843166666666667, 12016752730.0; +12.849833333333335, 12134646590.0; +12.8565, 12012542235.0; +12.863166666666668, 11755702040.0; +12.869833333333334, 11604124220.0; +12.876500000000002, 11465177885.0; +12.883166666666668, 11174653730.0; +12.889833333333334, 10736762250.0; +12.896500000000001, 10151503445.0; +12.903166666666667, 9789400875.0; +12.909833333333335, 9553613155.0; +12.916500000000001, 9456771770.0; +12.923166666666667, 9355719890.0; +12.929833333333335, 9347298900.0; +12.9365, 9431508800.0; +12.943166666666668, 9562034145.0; +12.949833333333334, 9595718105.0; +12.9565, 9583086620.0; +12.963166666666668, 9684138500.0; +12.969833333333334, 10054662060.0; +12.976500000000001, 10399922650.0; +12.983166666666667, 10324133740.0; +12.989833333333335, 10037820080.0; +12.996500000000001, 9713611965.0; +13.003166666666667, 9679928005.0; +13.009833333333335, 9482034740.0; +13.0165, 9292562465.0; +13.023166666666668, 9414666820.0; +13.029833333333334, 9932557705.0; +13.0365, 10530447995.0; +13.043166666666668, 10652552350.0; +13.049833333333334, 10446238095.0; +13.056500000000002, 10130450970.0; +13.063166666666667, 9793611370.0; +13.069833333333335, 9330456920.0; +13.076500000000001, 8778882075.0; +13.083166666666667, 8269412180.0; +13.089833333333335, 7987309015.0; +13.0965, 7911520105.0; +13.103166666666668, 7898888620.0; +13.109833333333334, 7911520105.0; +13.1165, 7831520700.0; +13.123166666666668, 7743100305.0; +13.129833333333334, 7633627435.0; +13.136500000000002, 7486260110.0; +13.143166666666668, 7220998925.0; +13.149833333333333, 6825212395.0; +13.156500000000001, 6522056755.0; +13.163166666666667, 6585214180.0; +13.169833333333335, 6698897545.0; +13.1765, 6757844475.0; +13.183166666666668, 6631529625.0; +13.189833333333334, 6631529625.0; +13.1965, 6715739525.0; +13.203166666666668, 6934685265.0; +13.209833333333334, 7183104470.0; +13.216500000000002, 7254682885.0; +13.223166666666668, 7166262490.0; +13.229833333333334, 7056789620.0; +13.236500000000001, 7035737145.0; +13.243166666666667, 6581003685.0; +13.249833333333335, 6042060325.0; +13.2565, 5852588050.0; +13.263166666666667, 6248374580.0; +13.269833333333334, 6707318535.0; +13.2765, 6850475365.0; +13.283166666666668, 7086263085.0; +13.289833333333334, 7347313775.0; +13.296500000000002, 7364155755.0; +13.303166666666668, 6757844475.0; +13.309833333333334, 6004165870.0; +13.316500000000001, 5688378745.0; +13.323166666666667, 5743115180.0; +13.329833333333335, 5941008445.0; +13.336500000000001, 6054691810.0; +13.343166666666667, 6446267845.0; +13.349833333333335, 6745212990.0; +13.3565, 6968369225.0; +13.363166666666668, 7077842095.0; +13.369833333333334, 6964158730.0; +13.376500000000002, 6719950020.0; +13.383166666666668, 6319952995.0; +13.389833333333334, 6210480125.0; +13.396500000000001, 5974692405.0; +13.403166666666667, 5461012015.0; +13.409833333333335, 5111540930.0; +13.416500000000001, 5204171820.0; +13.423166666666667, 5734694190.0; +13.429833333333335, 6197848640.0; +13.4365, 6509425270.0; +13.443166666666668, 6631529625.0; +13.449833333333334, 6517846260.0; +13.4565, 6227322105.0; +13.463166666666668, 5877851020.0; +13.469833333333334, 5528379935.0; +13.476500000000001, 5296802710.0; +13.483166666666667, 5178908850.0; +13.489833333333335, 5166277365.0; +13.496500000000001, 5242066275.0; +13.503166666666667, 5301013205.0; +13.509833333333335, 5465222510.0; +13.5165, 5823114585.0; +13.523166666666668, 6395741905.0; +13.529833333333334, 7107315560.0; +13.5365, 7549417535.0; +13.543166666666668, 7831520700.0; +13.549833333333334, 8016782480.0; +13.556500000000002, 8084150400.0; +13.563166666666667, 7983098520.0; +13.569833333333335, 7486260110.0; +13.576500000000001, 7027316155.0; +13.583166666666667, 6606266655.0; +13.589833333333335, 6227322105.0; +13.5965, 5793641120.0; +13.603166666666668, 5444170035.0; +13.609833333333334, 5292592215.0; +13.6165, 5271539740.0; +13.623166666666668, 5216803305.0; +13.629833333333334, 5174698355.0; +13.636500000000002, 5313644690.0; +13.643166666666668, 5658905280.0; +13.649833333333333, 6185217155.0; +13.656500000000001, 6606266655.0; +13.663166666666667, 6816791405.0; +13.669833333333335, 6875738335.0; +13.6765, 6850475365.0; +13.683166666666668, 6547319725.0; +13.689833333333334, 6088375770.0; +13.6965, 5898903495.0; +13.703166666666668, 6214690620.0; +13.709833333333334, 6656792595.0; +13.716500000000002, 6934685265.0; +13.723166666666668, 7191525460.0; +13.729833333333334, 7557838525.0; +13.736500000000001, 7776784265.0; +13.743166666666667, 7591522485.0; +13.749833333333335, 7225209420.0; +13.7565, 6892580315.0; +13.763166666666669, 6833633385.0; +13.769833333333334, 6799949425.0; +13.7765, 6783107445.0; +13.783166666666668, 6837843880.0; +13.789833333333334, 6888369820.0; +13.796500000000002, 6867317345.0; +13.803166666666668, 6610477150.0; +13.809833333333334, 6378899925.0; +13.816500000000001, 6079954780.0; +13.823166666666667, 5848377555.0; +13.829833333333335, 5793641120.0; +13.836500000000001, 6050481315.0; +13.843166666666667, 6298900520.0; +13.849833333333335, 6252585075.0; +13.8565, 6218901115.0; +13.863166666666668, 6290479530.0; +13.869833333333334, 6484162300.0; +13.876500000000002, 6479951805.0; +13.883166666666668, 6610477150.0; +13.889833333333334, 6926264275.0; +13.896500000000001, 7309419320.0; +13.903166666666667, 7414681695.0; +13.909833333333335, 7338892785.0; +13.916500000000001, 7246261895.0; +13.923166666666667, 6993632195.0; +13.929833333333335, 6879948830.0; +13.9365, 6686266060.0; +13.943166666666668, 6829422890.0; +13.949833333333334, 7018895165.0; +13.956500000000002, 7322050805.0; +13.963166666666668, 7654679910.0; +13.969833333333334, 7852573175.0; +13.976500000000001, 8185202280.0; +13.983166666666667, 8526252375.0; +13.989833333333335, 8669409205.0; +13.996500000000001, 8332569605.0; +14.003166666666667, 7932572580.0; +14.009833333333335, 7688363870.0; +14.0165, 7414681695.0; +14.023166666666668, 6964158730.0; +14.029833333333334, 6501004280.0; +14.0365, 6661003090.0; +14.043166666666668, 6837843880.0; +14.049833333333334, 6901001305.0; +14.056500000000002, 6909422295.0; +14.063166666666667, 7098894570.0; +14.069833333333335, 7477839120.0; +14.076500000000001, 7296787835.0; +14.083166666666667, 6875738335.0; +14.089833333333335, 6395741905.0; +14.0965, 6088375770.0; +14.103166666666668, 5941008445.0; +14.109833333333334, 5625221320.0; +14.1165, 5503116965.0; +14.123166666666668, 5583116370.0; +14.129833333333334, 5886272010.0; +14.136500000000002, 6046270820.0; +14.143166666666668, 5907324485.0; +14.149833333333333, 5797851615.0; +14.156500000000001, 5701010230.0; +14.163166666666667, 5671536765.0; +14.169833333333335, 5423117560.0; +14.1765, 5178908850.0; +14.183166666666668, 5107330435.0; +14.189833333333334, 5162066870.0; +14.1965, 5199961325.0; +14.203166666666668, 5103119940.0; +14.209833333333334, 5128382910.0; +14.216500000000002, 5465222510.0; +14.223166666666668, 5642063300.0; +14.229833333333334, 5919955970.0; +14.236500000000001, 6223111610.0; +14.243166666666667, 6905211800.0; +14.249833333333335, 7355734765.0; +14.2565, 7220998925.0; +14.263166666666669, 6972579720.0; +14.269833333333334, 6745212990.0; +14.2765, 6854685860.0; +14.283166666666668, 6753633980.0; +14.289833333333334, 6799949425.0; +14.296500000000002, 7393629220.0; +14.303166666666668, 8265201685.0; +14.309833333333334, 8892565440.0; +14.316500000000001, 8753619105.0; +14.323166666666667, 8488357920.0; +14.329833333333335, 8159939310.0; +14.336500000000001, 7663100900.0; +14.343166666666667, 6997842690.0; +14.349833333333335, 6538898735.0; +14.3565, 6665213585.0; +14.363166666666668, 6943106255.0; +14.369833333333334, 7330471795.0; +14.376500000000002, 7338892785.0; +14.383166666666668, 7263103875.0; +14.389833333333334, 6976790215.0; +14.396500000000001, 6682055565.0; +14.403166666666667, 6488372795.0; +14.409833333333335, 6349426460.0; +14.416500000000001, 6517846260.0; +14.423166666666667, 6795738930.0; +14.429833333333335, 7018895165.0; +14.4365, 6993632195.0; +14.443166666666668, 6749423485.0; +14.449833333333334, 6656792595.0; +14.456500000000002, 6770475960.0; +14.463166666666668, 6943106255.0; +14.469833333333334, 7225209420.0; +14.476500000000001, 7469418130.0; +14.483166666666667, 7705205850.0; +14.489833333333335, 7608364465.0; +14.496500000000001, 7284156350.0; +14.503166666666667, 6821001900.0; +14.509833333333335, 6458899330.0; +14.5165, 6324163490.0; +14.523166666666668, 6261006065.0; +14.529833333333334, 6256795570.0; +14.5365, 6164164680.0; +14.543166666666668, 6075744285.0; +14.549833333333334, 5717852210.0; +14.556500000000002, 5650484290.0; +14.563166666666667, 5713641715.0; +14.569833333333335, 5953639930.0; +14.576500000000001, 6117849235.0; +14.583166666666667, 6479951805.0; +14.589833333333335, 7162051995.0; +14.5965, 7515733575.0; +14.603166666666668, 7620995950.0; +14.609833333333334, 7423102685.0; +14.6165, 7313629815.0; +14.623166666666668, 7338892785.0; +14.629833333333334, 7519944070.0; +14.636500000000002, 7831520700.0; +14.643166666666668, 8269412180.0; +14.649833333333335, 8787303065.0; +14.656500000000001, 9254668010.0; +14.663166666666667, 9229405040.0; +14.669833333333335, 8812566035.0; +14.6765, 8180991785.0; +14.683166666666668, 7671521890.0; +14.689833333333334, 7359945260.0; +14.6965, 7258893380.0; +14.703166666666668, 7507312585.0; +14.709833333333334, 7591522485.0; +14.716500000000002, 7519944070.0; +14.723166666666668, 7111526055.0; +14.729833333333334, 6854685860.0; +14.736500000000001, 6753633980.0; +14.743166666666667, 6458899330.0; +14.749833333333335, 6399952400.0; +14.7565, 6505214775.0; +14.763166666666669, 6888369820.0; +14.769833333333334, 7098894570.0; +14.7765, 6968369225.0; +14.783166666666668, 6888369820.0; +14.789833333333334, 6715739525.0; +14.796500000000002, 6686266060.0; +14.803166666666668, 6639950615.0; +14.809833333333334, 6581003685.0; +14.816500000000001, 6218901115.0; +14.823166666666667, 5755746665.0; +14.829833333333335, 5292592215.0; +14.836500000000001, 5039962515.0; +14.843166666666669, 4922068655.0; +14.849833333333335, 4981015585.0; +14.8565, 5469433005.0; +14.863166666666668, 5970481910.0; +14.869833333333334, 6446267845.0; +14.876500000000002, 6593635170.0; +14.883166666666668, 6644161110.0; +14.889833333333334, 6538898735.0; +14.896500000000001, 6492583290.0; +14.903166666666667, 6534688240.0; +14.909833333333335, 6585214180.0; +14.916500000000001, 6378899925.0; +14.923166666666667, 6096796760.0; +14.929833333333335, 5877851020.0; +14.9365, 5823114585.0; +14.943166666666668, 5911534980.0; +14.949833333333334, 6029428840.0; +14.956500000000002, 6244164085.0; +14.963166666666668, 6151533195.0; +14.969833333333334, 5814693595.0; +14.976500000000001, 5435749045.0; +14.983166666666667, 5246276770.0; +14.989833333333335, 5532590430.0; +14.996500000000001, 5987323890.0; +15.003166666666667, 6656792595.0; +15.009833333333335, 7178893975.0; +15.0165, 7288366845.0; +15.023166666666668, 7035737145.0; +15.029833333333334, 6564161705.0; +15.036500000000002, 6315742500.0; +15.043166666666668, 6151533195.0; +15.049833333333334, 6143112205.0; +15.056500000000002, 6235743095.0; +15.063166666666667, 6282058540.0; +15.069833333333335, 6130480720.0; +15.076500000000001, 5827325080.0; +15.083166666666667, 5599958350.0; +15.089833333333335, 5389433600.0; +15.0965, 5065225485.0; +15.103166666666668, 4901016180.0; +15.109833333333334, 4867332220.0; +15.1165, 4854700735.0; +15.123166666666668, 4901016180.0; +15.129833333333334, 5225224295.0; +15.136500000000002, 6046270820.0; +15.143166666666668, 6682055565.0; +15.149833333333335, 7073631600.0; +15.156500000000001, 7292577340.0; +15.163166666666667, 7351524270.0; +15.169833333333335, 7515733575.0; +15.1765, 7431523675.0; +15.183166666666668, 7658890405.0; +15.189833333333334, 7755731790.0; +15.1965, 7882046640.0; +15.203166666666668, 8004150995.0; +15.209833333333334, 7688363870.0; +15.216500000000002, 7107315560.0; +15.223166666666668, 6277848045.0; +15.229833333333334, 5785220130.0; +15.236500000000001, 5587326865.0; +15.243166666666667, 5444170035.0; +15.249833333333335, 5637852805.0; +15.2565, 6218901115.0; +15.263166666666669, 7018895165.0; +15.269833333333334, 7705205850.0; +15.2765, 7882046640.0; +15.283166666666668, 7835731195.0; +15.289833333333334, 7595732980.0; +15.296500000000002, 7271524865.0; +15.303166666666668, 6926264275.0; +15.309833333333334, 6572582695.0; +15.316500000000001, 6370478935.0; +15.323166666666667, 6429425865.0; +15.329833333333335, 6576793190.0; +15.336500000000001, 6623108635.0; +15.343166666666669, 6551530220.0; +15.349833333333335, 6572582695.0; +15.3565, 6879948830.0; +15.363166666666668, 7094684075.0; +15.369833333333334, 7187314965.0; +15.376500000000002, 7250472390.0; +15.383166666666668, 7103105065.0; +15.389833333333334, 7031526650.0; +15.396500000000001, 6879948830.0; +15.403166666666667, 6917843285.0; +15.409833333333335, 6698897545.0; +15.416500000000001, 6475741310.0; +15.423166666666667, 6652582100.0; +15.429833333333335, 6715739525.0; +15.4365, 6682055565.0; +15.443166666666668, 6492583290.0; +15.449833333333334, 6627319130.0; +15.456500000000002, 6812580910.0; +15.463166666666668, 6559951210.0; +15.469833333333334, 6252585075.0; +15.476500000000001, 6071533790.0; +15.483166666666667, 6075744285.0; +15.489833333333335, 6244164085.0; +15.496500000000001, 6378899925.0; +15.503166666666667, 6522056755.0; +15.509833333333335, 6665213585.0; +15.5165, 6821001900.0; +15.523166666666668, 7208367440.0; +15.529833333333334, 7288366845.0; +15.536500000000002, 7208367440.0; +15.543166666666668, 7225209420.0; +15.549833333333334, 7439944665.0; +15.556500000000002, 7435734170.0; +15.563166666666667, 7010474175.0; +15.569833333333335, 6719950020.0; +15.576500000000001, 6728371010.0; +15.583166666666667, 6791528435.0; +15.589833333333335, 6715739525.0; +15.5965, 6703108040.0; +15.603166666666668, 6770475960.0; +15.609833333333334, 7014684670.0; +15.6165, 7326261300.0; +15.623166666666668, 7658890405.0; +15.629833333333334, 7705205850.0; +15.636500000000002, 7688363870.0; +15.643166666666668, 7692574365.0; +15.649833333333335, 7633627435.0; +15.656500000000001, 7393629220.0; +15.663166666666667, 7191525460.0; +15.669833333333335, 7279945855.0; +15.6765, 7528365060.0; +15.683166666666668, 7633627435.0; +15.689833333333334, 7317840310.0; +15.6965, 6665213585.0; +15.703166666666668, 5974692405.0; +15.709833333333334, 5435749045.0; +15.716500000000002, 5107330435.0; +15.723166666666668, 4909437170.0; +15.729833333333335, 5103119940.0; +15.736500000000001, 5658905280.0; +15.743166666666667, 6218901115.0; +15.749833333333335, 6513635765.0; +15.7565, 6366268440.0; +15.763166666666669, 6294690025.0; +15.769833333333334, 6341005470.0; +15.7765, 6471530815.0; +15.783166666666668, 6677845070.0; +15.789833333333334, 7014684670.0; +15.796500000000002, 7646258920.0; +15.803166666666668, 8122044855.0; +15.809833333333334, 8122044855.0; +15.816500000000001, 7890467630.0; +15.823166666666667, 7595732980.0; +15.829833333333335, 7220998925.0; +15.836500000000001, 6572582695.0; +15.843166666666669, 5924166465.0; +15.849833333333335, 5793641120.0; +15.8565, 5894693000.0; +15.863166666666668, 5983113395.0; +15.869833333333334, 5835746070.0; +15.876500000000002, 5562063895.0; +15.883166666666668, 5044173010.0; +15.889833333333334, 4261020940.0; +15.896500000000001, 3679972630.0; +15.903166666666667, 3326291050.0; +15.909833333333335, 3124187290.0; +15.916500000000001, 3031556400.0; +15.923166666666669, 2947346500.0; +15.929833333333335, 2909452045.0; +15.9365, 2602085910.0; +15.943166666666668, 2105247500.0; +15.949833333333334, 1616830080.0; +15.9565, 1107360185.0; +15.963166666666668, 892624940.0; +15.969833333333336, 728415635.0; +15.9765, 593679795.0; +15.983166666666667, 534732865.0; +15.989833333333335, 576837815.0; +15.996500000000003, 597890290.0; +16.003166666666665, 202103760.0; +16.009833333333333, -538943360.0; +16.0165, -1397884340.0; +16.023166666666665, -2244193835.0; +16.029833333333332, -2981030460.0; +16.0365, -3566289265.0; +16.043166666666664, -3894707875.0; +16.049833333333332, -4248389455.0; +16.0565, -4825227270.0; +16.063166666666667, -5886272010.0; +16.06983333333333, -7300998330.0; +16.0765, -8694672175.0; +16.083166666666667, -9999925625.0; +16.08983333333333, -11157811750.0; +16.0965, -12231487975.0; +16.103166666666667, -13073586975.0; +16.109833333333334, -13802002610.0; +16.1165, -14669364580.0; +16.123166666666666, -15823040210.0; +16.129833333333334, -17153556630.0; +16.136499999999998, -18745123740.0; +16.143166666666666, -20256691445.0; +16.149833333333333, -21502997965.0; +16.156499999999998, -22572463695.0; +16.163166666666665, -23570351010.0; +16.169833333333333, -24745079115.0; +16.1765, -25490336730.0; +16.183166666666665, -26126121475.0; +16.189833333333333, -26879800080.0; +16.1965, -27936634325.0; +16.203166666666664, -29052415500.0; +16.209833333333332, -29923987965.0; +16.2165, -30841875875.0; +16.223166666666668, -31806079230.0; +16.229833333333332, -32673441200.0; +16.2365, -33157648125.0; +16.243166666666667, -33355541390.0; +16.24983333333333, -33473435250.0; +16.2565, -33599750100.0; +16.263166666666667, -33486066735.0; +16.269833333333334, -33182911095.0; +16.2765, -32888176445.0; +16.283166666666666, -32837650505.0; +16.289833333333334, -32774493080.0; +16.296499999999998, -32715546150.0; +16.303166666666666, -32761861595.0; +16.309833333333334, -32833440010.0; +16.316499999999998, -33203963570.0; +16.323166666666665, -33553434655.0; +16.329833333333333, -34075536035.0; +16.3365, -34323955240.0; +16.343166666666665, -34585005930.0; +16.349833333333333, -35035528895.0; +16.3565, -35212369685.0; +16.363166666666665, -35195527705.0; +16.369833333333332, -35060791865.0; +16.3765, -35300790080.0; +16.383166666666668, -35540788295.0; +16.389833333333332, -35793417995.0; +16.3965, -35835522945.0; +16.403166666666667, -35784997005.0; +16.40983333333333, -35334474040.0; +16.4165, -34749215235.0; +16.423166666666667, -34185008905.0; +16.42983333333333, -33473435250.0; +16.4365, -33010280800.0; +16.443166666666666, -32711335655.0; +16.449833333333334, -32715546150.0; +16.4565, -32782914070.0; +16.463166666666666, -32681862190.0; +16.469833333333334, -32530284370.0; +16.476499999999998, -32054498435.0; +16.483166666666666, -31351345770.0; +16.489833333333333, -30597667165.0; +16.4965, -29612411335.0; +16.503166666666665, -28711365405.0; +16.509833333333333, -27810319475.0; +16.5165, -27439795915.0; +16.523166666666665, -27380848985.0; +16.529833333333332, -27406111955.0; +16.5365, -27347165025.0; +16.543166666666664, -27208218690.0; +16.549833333333332, -27233481660.0; +16.5565, -26997693940.0; +16.563166666666667, -26610328400.0; +16.56983333333333, -25886123260.0; +16.5765, -25334548415.0; +16.583166666666667, -24985077330.0; +16.58983333333333, -24538764860.0; +16.5965, -23915611600.0; +16.603166666666667, -22959829235.0; +16.609833333333334, -22084046275.0; +16.6165, -21393525095.0; +16.623166666666666, -20959844110.0; +16.629833333333334, -20783003320.0; +16.636499999999998, -20677740945.0; +16.643166666666666, -20572478570.0; +16.649833333333333, -20509321145.0; +16.6565, -20231428475.0; +16.663166666666665, -19595643730.0; +16.669833333333333, -18778807700.0; +16.6765, -18265127310.0; +16.683166666666665, -18197759390.0; +16.689833333333333, -18096707510.0; +16.6965, -17667237020.0; +16.703166666666664, -17153556630.0; +16.709833333333332, -16787243565.0; +16.7165, -16319878620.0; +16.723166666666668, -15566200015.0; +16.729833333333332, -14585154680.0; +16.7365, -14025158845.0; +16.743166666666667, -13625161820.0; +16.74983333333333, -13279901230.0; +16.7565, -12787273315.0; +16.763166666666667, -12345171340.0; +16.769833333333334, -12214645995.0; +16.7765, -11844122435.0; +16.783166666666666, -11498861845.0; +16.789833333333334, -10884129575.0; +16.796499999999998, -10395712155.0; +16.803166666666666, -10046241070.0; +16.809833333333334, -9835716320.0; +16.816499999999998, -10004136120.0; +16.823166666666665, -10265186810.0; +16.829833333333333, -10534658490.0; +16.8365, -10669394330.0; +16.843166666666665, -10509395520.0; +16.849833333333333, -10008346615.0; +16.8565, -9103090190.0; +16.863166666666665, -8235728220.0; +16.869833333333332, -7780994760.0; +16.8765, -7595732980.0; +16.883166666666668, -7519944070.0; +16.889833333333332, -7583101495.0; +16.8965, -7802047235.0; +16.903166666666667, -7772573770.0; +16.90983333333333, -7162051995.0; +16.9165, -6425215370.0; +16.923166666666667, -5751536170.0; +16.92983333333333, -5128382910.0; +16.9365, -4353651830.0; +16.943166666666666, -3637867680.0; +16.949833333333334, -3258923130.0; +16.9565, -2850505115.0; +16.963166666666666, -2686295810.0; +16.969833333333334, -2669453830.0; +16.976499999999998, -3119976795.0; +16.983166666666666, -3633657185.0; +16.989833333333333, -3856813420.0; +16.9965, -3726288075.0; +17.003166666666665, -3452605900.0; +17.009833333333333, -3267344120.0; +17.0165, -3010503925.0; +17.023166666666665, -2631559375.0; +17.029833333333332, -2130510470.0; +17.0365, -1823144335.0; +17.043166666666664, -1444199785.0; +17.049833333333332, -1056834245.0; +17.0565, -374734055.0; +17.063166666666667, 218945740.0; +17.06983333333333, 421049500.0; +17.0765, 277892670.0; +17.083166666666667, -42104950.0; +17.08983333333333, -63157425.0; +17.0965, -155788315.0; +17.103166666666667, -75788910.0; +17.109833333333334, 29473465.0; +17.1165, 408418015.0; +17.123166666666666, 947361375.0; +17.129833333333334, 1334726915.0; +17.136499999999998, 1583146120.0; +17.143166666666666, 1545251665.0; +17.149833333333333, 1654724535.0; +17.1565, 1797881365.0; +17.163166666666665, 2021037600.0; +17.169833333333333, 2336824725.0; +17.1765, 2635769870.0; +17.183166666666665, 2985240955.0; +17.189833333333333, 3187344715.0; +17.1965, 3317870060.0; +17.203166666666664, 3317870060.0; +17.209833333333332, 3355764515.0; +17.2165, 3448395405.0; +17.223166666666668, 3591552235.0; +17.229833333333332, 3519973820.0; +17.2365, 3157871250.0; +17.243166666666667, 2732611255.0; +17.24983333333333, 2530507495.0; +17.2565, 2871557590.0; +17.263166666666667, 3275765110.0; +17.269833333333334, 3726288075.0; +17.2765, 4303125890.0; +17.283166666666666, 5056804495.0; +17.289833333333334, 5583116370.0; +17.296499999999998, 5528379935.0; +17.303166666666666, 5469433005.0; +17.309833333333334, 5823114585.0; +17.316499999999998, 6286269035.0; +17.323166666666665, 6387320915.0; +17.329833333333333, 6265216560.0; +17.3365, 6202059135.0; +17.343166666666665, 6303111015.0; +17.349833333333333, 6252585075.0; +17.3565, 6193638145.0; +17.363166666666665, 6370478935.0; +17.369833333333332, 6677845070.0; +17.3765, 7098894570.0; +17.383166666666668, 7347313775.0; +17.389833333333332, 7620995950.0; +17.3965, 8109413370.0; +17.403166666666667, 8534673365.0; +17.40983333333333, 8791513560.0; +17.4165, 8917828410.0; +17.423166666666667, 9124142665.0; +17.42983333333333, 9410456325.0; +17.4365, 9393614345.0; +17.443166666666666, 9284141475.0; +17.449833333333334, 9322035930.0; +17.4565, 9305193950.0; +17.463166666666666, 9199931575.0; +17.469833333333334, 8989406825.0; +17.476499999999998, 8980985835.0; +17.483166666666666, 9338877910.0; +17.489833333333333, 9519929195.0; +17.4965, 9776769390.0; +17.503166666666665, 10054662060.0; +17.509833333333333, 10522027005.0; +17.5165, 10884129575.0; +17.523166666666665, 11086233335.0; +17.529833333333332, 11616755705.0; +17.5365, 12168330550.0; +17.543166666666668, 12391486785.0; +17.549833333333332, 12374644805.0; +17.5565, 12340960845.0; +17.563166666666667, 12484117675.0; +17.56983333333333, 12589380050.0; +17.5765, 12665168960.0; +17.583166666666667, 12799904800.0; +17.58983333333333, 12846220245.0; +17.5965, 12922009155.0; +17.603166666666667, 12972535095.0; +17.609833333333334, 12926219650.0; +17.6165, 12972535095.0; +17.623166666666666, 13220954300.0; +17.629833333333334, 13246217270.0; +17.636499999999998, 13423058060.0; +17.643166666666666, 13987264390.0; +17.649833333333333, 14951467745.0; +17.6565, 15797777240.0; +17.663166666666665, 16214616245.0; +17.669833333333333, 16909347920.0; +17.6765, 17625132070.0; +17.683166666666665, 17852498800.0; +17.689833333333333, 17583027120.0; +17.6965, 17103030690.0; +17.703166666666664, 17216714055.0; +17.709833333333332, 17667237020.0; +17.7165, 18020918600.0; +17.723166666666668, 18311442755.0; +17.729833333333332, 18597756415.0; +17.7365, 19183015220.0; +17.743166666666667, 19616696205.0; +17.74983333333333, 19599854225.0; +17.7565, 19330382545.0; +17.763166666666667, 18917754035.0; +17.769833333333334, 19018805915.0; +17.7765, 19115647300.0; +17.783166666666666, 19389329475.0; +17.789833333333334, 19890378380.0; +17.796499999999998, 20627215005.0; +17.803166666666666, 21507208460.0; +17.809833333333334, 21945099940.0; +17.816499999999998, 22597726665.0; +17.823166666666665, 23111407055.0; +17.829833333333333, 23296668835.0; +17.8365, 23528246060.0; +17.843166666666665, 23801928235.0; +17.849833333333333, 24374555555.0; +17.8565, 24606132780.0; +17.863166666666665, 24841920500.0; +17.869833333333332, 25368232375.0; +17.8765, 25772439895.0; +17.883166666666668, 26210331375.0; +17.889833333333332, 26656643845.0; +17.8965, 27351375520.0; +17.903166666666667, 28050317690.0; +17.90983333333333, 28420841250.0; +17.9165, 28812417285.0; +17.923166666666667, 29418728565.0; +17.92983333333333, 29978724400.0; +17.9365, 30197670140.0; +17.943166666666666, 30256617070.0; +17.949833333333334, 30778718450.0; +17.9565, 31431345175.0; +17.963166666666666, 31797658240.0; +17.969833333333334, 31915552100.0; +17.976499999999998, 32248181205.0; +17.983166666666666, 32808177040.0; +17.989833333333333, 33182911095.0; +17.9965, 33460803765.0; +18.003166666666665, 33667118020.0; +18.009833333333333, 33839748315.0; +18.0165, 34079746530.0; +18.023166666666665, 34395533655.0; +18.029833333333332, 35001844935.0; +18.0365, 35730260570.0; +18.043166666666668, 36736568875.0; +18.049833333333332, 37848139555.0; +18.0565, 38732343505.0; +18.063166666666667, 39229181915.0; +18.06983333333333, 39149182510.0; +18.0765, 38824974395.0; +18.083166666666667, 38349188460.0; +18.08983333333333, 38273399550.0; +18.0965, 38530239745.0; +18.103166666666667, 39144972015.0; +18.109833333333334, 40020754975.0; +18.1165, 40917590410.0; +18.123166666666666, 41696531985.0; +18.129833333333334, 41869162280.0; +18.136499999999998, 41835478320.0; +18.143166666666666, 41507059710.0; +18.149833333333333, 41406007830.0; +18.1565, 41486007235.0; +18.163166666666665, 41856530795.0; +18.169833333333333, 42513368015.0; +18.1765, 42968101475.0; +18.183166666666665, 43313362065.0; +18.189833333333333, 43224941670.0; +18.1965, 42854418110.0; +18.203166666666664, 42252317325.0; +18.209833333333332, 41675479510.0; +18.2165, 41481796740.0; +18.223166666666668, 41448112780.0; +18.229833333333332, 41418639315.0; +18.2365, 41123904665.0; +18.243166666666667, 40833380510.0; +18.24983333333333, 40429172990.0; +18.2565, 39827072205.0; +18.263166666666667, 39254444885.0; +18.269833333333334, 38829184890.0; +18.2765, 38728133010.0; +18.283166666666666, 38504976775.0; +18.289833333333334, 38235505095.0; +18.296499999999998, 38008138365.0; +18.303166666666666, 37877613020.0; +18.309833333333334, 37704982725.0; +18.316499999999998, 37144986890.0; +18.323166666666665, 36222888485.0; +18.329833333333333, 35178685725.0; +18.3365, 34142903955.0; +18.343166666666665, 33014491295.0; +18.349833333333333, 31810289725.0; +18.3565, 30972401220.0; +18.363166666666665, 30601877660.0; +18.369833333333332, 30218722615.0; +18.3765, 29486096485.0; +18.383166666666668, 28698733920.0; +18.389833333333332, 28054528185.0; +18.3965, 27284007600.0; +18.403166666666667, 26252436325.0; +18.40983333333333, 25250338515.0; +18.4165, 24555606840.0; +18.423166666666667, 23894559125.0; +18.429833333333335, 23018776165.0; +18.4365, 22016678355.0; +18.443166666666666, 21136684900.0; +18.449833333333334, 20673530450.0; +18.4565, 20353532830.0; +18.463166666666666, 19953535805.0; +18.469833333333334, 19587222740.0; +18.476499999999998, 19338803535.0; +18.483166666666666, 19132489280.0; +18.489833333333333, 18526178000.0; +18.4965, 17924077215.0; +18.503166666666665, 17663026525.0; +18.509833333333333, 17692499990.0; +18.5165, 17663026525.0; +18.523166666666665, 17330397420.0; +18.529833333333332, 16610402775.0; +18.5365, 15380938235.0; +18.543166666666668, 14147263200.0; +18.549833333333332, 13170428360.0; +18.5565, 12686221435.0; +18.563166666666667, 12564117080.0; +18.56983333333333, 12888325195.0; +18.5765, 13389374100.0; +18.583166666666667, 13654635285.0; +18.58983333333333, 13540951920.0; +18.5965, 13048324005.0; +18.603166666666667, 12378855300.0; +18.609833333333334, 11730439070.0; +18.6165, 11486230360.0; +18.623166666666666, 11204127195.0; +18.629833333333334, 10732551755.0; +18.636499999999998, 10168345425.0; +18.643166666666666, 9995715130.0; +18.649833333333333, 9957820675.0; +18.6565, 9671507015.0; +18.663166666666665, 9334667415.0; +18.669833333333333, 9115721675.0; +18.6765, 9132563655.0; +18.683166666666665, 8858881480.0; +18.689833333333333, 8420990000.0; +18.6965, 8050466440.0; +18.703166666666664, 7898888620.0; +18.709833333333332, 7987309015.0; +18.7165, 8063097925.0; +18.723166666666668, 8231517725.0; +18.729833333333332, 8408358515.0; +18.7365, 8593620295.0; +18.743166666666667, 8589409800.0; +18.74983333333333, 8265201685.0; +18.7565, 7823099710.0; +18.763166666666667, 7482049615.0; +18.769833333333334, 7225209420.0; +18.7765, 6631529625.0; +18.783166666666666, 5978902900.0; +18.789833333333334, 5646273795.0; +18.796499999999998, 5507327460.0; +18.803166666666666, 5132593405.0; +18.809833333333334, 4538913610.0; +18.8165, 4349441335.0; +18.823166666666665, 4551545095.0; +18.829833333333333, 4829437765.0; +18.8365, 4778911825.0; +18.843166666666665, 4618913015.0; +18.849833333333333, 4433651235.0; +18.8565, 4134706090.0; +18.863166666666665, 3932602330.0; +18.869833333333332, 3818918965.0; +18.8765, 3873655400.0; +18.883166666666668, 4235757970.0; +18.889833333333332, 4816806280.0; +18.8965, 5389433600.0; +18.903166666666667, 5389433600.0; +18.90983333333333, 4964173605.0; +18.9165, 4682070440.0; +18.923166666666667, 4408388265.0; +18.929833333333335, 4117864110.0; +18.9365, 3877865895.0; +18.943166666666666, 3755761540.0; +18.949833333333334, 3696814610.0; +18.9565, 3402079960.0; +18.963166666666666, 3111555805.0; +18.969833333333334, 2799979175.0; +18.976499999999998, 2597875415.0; +18.983166666666666, 2425245120.0; +18.989833333333333, 2345245715.0; +18.9965, 2311561755.0; +19.003166666666665, 2252614825.0; +19.009833333333333, 2227351855.0; +19.0165, 2033669085.0; +19.023166666666665, 1882091265.0; +19.029833333333332, 1688408495.0; +19.0365, 1625251070.0; +19.043166666666668, 1359989885.0; +19.049833333333332, 1086307710.0; +19.0565, 808415040.0; +19.063166666666667, 707363160.0; +19.06983333333333, 821046525.0; +19.0765, 955782365.0; +19.083166666666667, 1233675035.0; +19.08983333333333, 1595777605.0; +19.0965, 2071563540.0; +19.103166666666667, 2467350070.0; +19.109833333333334, 2564191455.0; +19.1165, 2458929080.0; +19.123166666666666, 2429455615.0; +19.129833333333334, 2172615420.0; +19.136499999999998, 1962090670.0; +19.143166666666666, 1743144930.0; +19.149833333333333, 1696829485.0; +19.1565, 1755776415.0; +19.163166666666665, 1675777010.0; +19.169833333333333, 1844196810.0; +19.1765, 1962090670.0; +19.183166666666665, 2012616610.0; +19.189833333333333, 2012616610.0; +19.1965, 1949459185.0; +19.203166666666664, 2176825915.0; +19.209833333333332, 2345245715.0; +19.2165, 2446297595.0; +19.223166666666668, 2298930270.0; +19.229833333333332, 2164194430.0; +19.2365, 1987353640.0; +19.243166666666667, 1709460970.0; +19.24983333333333, 1191570085.0; +19.2565, 568416825.0; +19.263166666666667, 353681580.0; +19.269833333333334, 206314255.0; +19.2765, 332629105.0; +19.283166666666666, 294734650.0; +19.289833333333334, 492627915.0; +19.296499999999998, 753678605.0; +19.303166666666666, 1052623750.0; +19.309833333333334, 1410515825.0; +19.3165, 1814723345.0; +19.323166666666665, 2168404925.0; +19.329833333333333, 2492613040.0; +19.3365, 2787347690.0; +19.343166666666665, 2682085315.0; +19.349833333333333, 2315772250.0; +19.3565, 1751565920.0; +19.363166666666665, 1490515230.0; +19.369833333333332, 1448410280.0; +19.3765, 1461041765.0; +19.383166666666668, 1806302355.0; +19.389833333333332, 2143141955.0; +19.3965, 2496823535.0; +19.403166666666667, 2648401355.0; +19.40983333333333, 2458929080.0; +19.4165, 2202088885.0; +19.423166666666667, 1844196810.0; +19.429833333333335, 1482094240.0; +19.4365, 947361375.0; +19.443166666666666, 585258805.0; +19.449833333333334, 724205140.0; +19.4565, 1115781175.0; +19.463166666666666, 1418936815.0; +19.469833333333334, 1629461565.0; +19.476499999999998, 1882091265.0; +19.483166666666666, 1962090670.0; +19.489833333333333, 1814723345.0; +19.4965, 1633672060.0; +19.503166666666665, 1414726320.0; +19.509833333333333, 1351568895.0; +19.5165, 1418936815.0; +19.523166666666665, 1696829485.0; +19.529833333333332, 1962090670.0; +19.5365, 1941038195.0; +19.543166666666668, 1936827700.0; +19.549833333333332, 1903143740.0; +19.5565, 1856828295.0; +19.563166666666667, 1713671465.0; +19.56983333333333, 1599988100.0; +19.5765, 1621040575.0; +19.583166666666667, 1524199190.0; +19.58983333333333, 1381042360.0; +19.5965, 1410515825.0; +19.603166666666667, 1532620180.0; +19.609833333333334, 1393673845.0; +19.6165, 985255830.0; +19.623166666666666, 774731080.0; +19.629833333333334, 871572465.0; +19.636499999999998, 1069465730.0; +19.643166666666666, 1141044145.0; +19.649833333333333, 1284200975.0; +19.6565, 1469462755.0; +19.663166666666665, 1557883150.0; +19.669833333333333, 1397884340.0; +19.6765, 1094728700.0; +19.683166666666665, 791573060.0; +19.689833333333333, 555785340.0; +19.6965, 614732270.0; +19.703166666666668, 959992860.0; +19.709833333333332, 1448410280.0; +19.7165, 1692618990.0; +19.723166666666668, 1726302950.0; +19.729833333333332, 1498936220.0; +19.7365, 1107360185.0; +19.743166666666667, 728415635.0; +19.74983333333333, 534732865.0; +19.7565, 568416825.0; +19.763166666666667, 496838410.0; +19.769833333333334, 732626130.0; +19.7765, 1065255235.0; +19.783166666666666, 1216833055.0; +19.789833333333334, 1002097810.0; +19.796499999999998, 669468705.0; +19.803166666666666, 656837220.0; +19.809833333333334, 505259400.0; +19.8165, 370523560.0; +19.823166666666665, 181051285.0; +19.829833333333333, 286313660.0; +19.8365, 719994645.0; +19.843166666666665, 1044202760.0; +19.849833333333333, 1157886125.0; +19.8565, 774731080.0; +19.863166666666665, 454733460.0; +19.869833333333332, 105262375.0; +19.8765, -425259995.0; +19.883166666666668, -875782960.0; +19.889833333333332, -938940385.0; +19.8965, -547364350.0; +19.903166666666667, -197893265.0; +19.90983333333333, -58946930.0; +19.9165, -29473465.0; +19.923166666666667, 16841980.0; +19.929833333333335, -189472275.0; +19.9365, -345260590.0; +19.943166666666666, -421049500.0; +19.949833333333334, -185261780.0; +19.9565, 42104950.0; +##END= + +$$ === CHEMSPECTRA INTEGRALS AND MULTIPLETS === +##PAGE=400 +##$OBSERVEDINTEGRALS= (X Y Z) +##$OBSERVEDMULTIPLETS= +##$OBSERVEDMULTIPLETSPEAKS= +##END= + +$$ === CHEMSPECTRA PEAK TABLE EDIT === +##TITLE=618becfe-a0ce-4983-ba36-5fdcbb7ed595 +##JCAMP-DX=5.00 +##DATA TYPE=LC/MSPEAKTABLE +##DATA CLASS=PEAKTABLE +##$CSCATEGORY=EDIT_PEAK +##$CSTHRESHOLD=0.05 +##MAXX=19.9565 +##MAXY=133481112490.0 +##MINX=-0.0435 +##MINY=-87696189860.0 +##PAGE=400 +##NPOINTS=0 +##PEAKTABLE= (XY..XY) +##END= + +$$ === CHEMSPECTRA PEAK TABLE AUTO === +##TITLE=618becfe-a0ce-4983-ba36-5fdcbb7ed595 +##JCAMP-DX=5.00 +##DATA TYPE=LC/MSPEAKTABLE +##DATA CLASS=PEAKTABLE +##$CSCATEGORY=AUTO_PEAK +##$CSTHRESHOLD=0.05 +##MAXX=19.9565 +##MAXY=133481112490.0 +##MINX=-0.0435 +##MINY=-87696189860.0 +##PAGE=400 +##NPOINTS=92 +##PEAKTABLE= (XY..XY) +1.2098333333333333, 133481112490.0 +18.183166666666665, 43313362065.0 +18.129833333333334, 41869162280.0 +18.063166666666667, 39229181915.0 +2.6298333333333335, 28172422045.0 +2.8298333333333336, 23751402295.0 +17.743166666666667, 19616696205.0 +17.683166666666665, 17852498800.0 +18.509833333333333, 17692499990.0 +12.249833333333335, 14690417055.0 +12.669833333333335, 14677785570.0 +12.463166666666668, 14572523195.0 +12.563166666666667, 14425155870.0 +12.723166666666668, 14324103990.0 +12.336500000000001, 14185157655.0 +12.289833333333334, 13911475480.0 +12.123166666666668, 13793581620.0 +18.583166666666667, 13654635285.0 +12.0165, 13406216080.0 +3.043166666666667, 13372532120.0 +2.9498333333333338, 13145165390.0 +3.0165, 13094639450.0 +17.603166666666667, 12972535095.0 +12.769833333333334, 12884114700.0 +12.183166666666667, 12863062225.0 +11.989833333333335, 12833588760.0 +2.989833333333334, 12724115890.0 +17.543166666666668, 12391486785.0 +11.763166666666667, 12286224410.0 +11.923166666666667, 12197804015.0 +12.849833333333335, 12134646590.0 +11.609833333333334, 11355705015.0 +11.889833333333334, 11258863630.0 +11.723166666666668, 10804130170.0 +13.043166666666668, 10652552350.0 +12.976500000000001, 10399922650.0 +11.823166666666667, 10265186810.0 +11.463166666666668, 10244134335.0 +11.543166666666668, 9797821865.0 +12.949833333333334, 9595718105.0 +17.42983333333333, 9410456325.0 +11.669833333333335, 9351509395.0 +17.449833333333334, 9322035930.0 +14.656500000000001, 9254668010.0 +18.6765, 9132563655.0 +14.309833333333334, 8892565440.0 +13.989833333333335, 8669409205.0 +18.7365, 8593620295.0 +11.283166666666668, 8429410990.0 +11.236500000000001, 8269412180.0 +15.803166666666668, 8122044855.0 +13.556500000000002, 8084150400.0 +11.209833333333334, 8054676935.0 +15.203166666666668, 8004150995.0 +13.109833333333334, 7911520105.0 +15.2765, 7882046640.0 +13.736500000000001, 7776784265.0 +14.483166666666667, 7705205850.0 +15.629833333333334, 7705205850.0 +15.643166666666668, 7692574365.0 +11.363166666666668, 7688363870.0 +11.1765, 7671521890.0 +15.683166666666668, 7633627435.0 +14.603166666666668, 7620995950.0 +14.709833333333334, 7591522485.0 +11.023166666666668, 7578891000.0 +11.109833333333334, 7528365060.0 +15.169833333333335, 7515733575.0 +14.069833333333335, 7477839120.0 +15.549833333333334, 7439944665.0 +10.863166666666668, 7423102685.0 +13.903166666666667, 7414681695.0 +11.156500000000001, 7397839715.0 +13.296500000000002, 7364155755.0 +14.249833333333335, 7355734765.0 +14.376500000000002, 7338892785.0 +10.929833333333335, 7288366845.0 +15.0165, 7288366845.0 +15.529833333333334, 7288366845.0 +13.216500000000002, 7254682885.0 +15.376500000000002, 7250472390.0 +14.769833333333334, 7098894570.0 +13.363166666666668, 7077842095.0 +14.429833333333335, 7018895165.0 +15.403166666666667, 6917843285.0 +13.789833333333334, 6888369820.0 +13.669833333333335, 6875738335.0 +14.2765, 6854685860.0 +15.456500000000002, 6812580910.0 +15.583166666666667, 6791528435.0 +13.1765, 6757844475.0 +15.429833333333335, 6715739525.0 +##END= + + +`; + +export default lcMsUvvisChemstationJcamp; diff --git a/src/__tests__/units/actions/curve.test.tsx b/src/__tests__/units/actions/curve.test.tsx index 9245600c..9a22763d 100644 --- a/src/__tests__/units/actions/curve.test.tsx +++ b/src/__tests__/units/actions/curve.test.tsx @@ -32,6 +32,15 @@ describe('Test redux actions for curve', () => { expect(type).toEqual(CURVE.SET_ALL_CURVES) expect(payload).toEqual(listCurves) }) + + it('Set all curves with optional meta (LC-MS hints)', () => { + const listCurves = [{ curve: 1 }] + const meta = { idDt: '42', lcmsUvvisWavelength: 254 } + const action = setAllCurves(listCurves, meta) + expect(action.type).toEqual(CURVE.SET_ALL_CURVES) + expect(action.payload).toEqual(listCurves) + expect(action.meta).toEqual(meta) + }) }) describe('Test should display all curves', () => { diff --git a/src/__tests__/units/actions/lcms.test.tsx b/src/__tests__/units/actions/lcms.test.tsx new file mode 100644 index 00000000..d1e68c68 --- /dev/null +++ b/src/__tests__/units/actions/lcms.test.tsx @@ -0,0 +1,221 @@ +import { + selectWavelength, + changeTic, + updateCurrentPageValue, + clearIntegrationAllHplcMs, + clearAllPeaksHplcMs, +} from "../../../actions/hplc_ms"; +import { clickUiTarget } from "../../../actions/ui"; +import { HPLC_MS } from "../../../constants/action_type"; +import { ExtractJcamp, buildLcmsMsPageJcamp } from "../../../helpers/chem"; +import { LIST_LAYOUT } from "../../../constants/list_layout"; +import { getLcMsInfo, splitAndReindexEntities } from "../../../helpers/extractEntityLCMS"; +import { shouldDisplayLcmsSubViewerAt } from "../../../sagas/saga_ui"; +import hplcMsTicPosJcamp from "../../fixtures/lc_ms_jcamp_tic_pos"; +import hplcMsTicNegJcamp from "../../fixtures/lc_ms_jcamp_tic_neg"; +import hplcMsUvvisJcamp from "../../fixtures/lc_ms_jcamp_uvvis"; +import lcMsMzChemstationJcamp from "../../fixtures/lc_ms_jcamp_mz_chemstation"; + +const hasSpectrumData = (entity: any) => { + const data = entity?.spectra?.[0]?.data?.[0]; + return Array.isArray(data?.x) && data.x.length > 0 + && Array.isArray(data?.y) && data.y.length > 0; +}; + +const extractPages = (entity: any) => { + const rawPages = (entity?.spectra || []).map((sp: any) => sp.pageValue ?? sp.page); + const parsed = rawPages + .map((value: any) => parseFloat(String(value).match(/[-+]?\d*\.?\d+(?:[eE][-+]?\d+)?/)?.[0] || '')) + .filter((value: number) => Number.isFinite(value)); + return parsed; +}; + +const buildMzEntity = (polarity: 'positive' | 'negative' | 'neutral', pageValues: number[]) => ({ + layout: LIST_LAYOUT.LC_MS, + lcmsKind: 'mz', + lcmsPolarity: polarity, + title: `ms-${polarity}`, + spectra: pageValues.map((pageValue) => ({ + pageValue, + page: String(pageValue), + pageSymbol: String(pageValue), + xUnit: 'm/z', + yUnit: 'Intensity', + data: [{ x: [100, 101, 102], y: [10, 15, 8] }], + })), +}); + +describe('LCMS actions', () => { + it('selectWavelength returns correct action', () => { + const payload = { target: { value: 254 } }; + const action = selectWavelength(payload); + expect(action.type).toEqual(HPLC_MS.UPDATE_UVVIS_WAVE_LENGTH); + expect(action.payload).toEqual(payload); + }); + + it('changeTic maps numeric values to polarity', () => { + expect(changeTic({ target: { value: 0 } }).payload.polarity).toEqual('positive'); + expect(changeTic({ target: { value: 1 } }).payload.polarity).toEqual('negative'); + expect(changeTic({ target: { value: 2 } }).payload.polarity).toEqual('neutral'); + }); + + it('changeTic keeps explicit polarity', () => { + expect(changeTic({ polarity: 'negative' }).payload.polarity).toEqual('negative'); + expect(changeTic({ polarity: 'positive' }).payload.polarity).toEqual('positive'); + }); + + it('updateCurrentPageValue returns correct action', () => { + const action = updateCurrentPageValue(1.234); + expect(action.type).toEqual(HPLC_MS.UPDATE_CURRENT_PAGE_VALUE); + expect(action.payload).toEqual({ currentPageValue: 1.234 }); + }); + + it('clearIntegrationAllHplcMs returns correct action', () => { + const action = clearIntegrationAllHplcMs({ source: 'test' }); + expect(action.type).toEqual(HPLC_MS.CLEAR_INTEGRATION_ALL_HPLCMS); + expect(action.payload).toEqual({ source: 'test' }); + }); + + it('clearAllPeaksHplcMs returns correct action', () => { + const action = clearAllPeaksHplcMs({ source: 'test' }); + expect(action.type).toEqual(HPLC_MS.CLEAR_ALL_PEAKS_HPLCMS); + expect(action.payload).toEqual({ source: 'test' }); + }); + + it('clickUiTarget keeps the LCMS TIC source hint', () => { + const action = clickUiTarget( + { x: 1.234, y: 42 }, + true, + 0, + 1, + false, + 'lcms_tic' as any, + ); + expect(action.payload).toEqual({ x: 1.234, y: 42 }); + expect(action.sourceHint).toEqual('lcms_tic'); + expect(action.jcampIdx).toEqual(1); + }); + + it('opens the LCMS subviewer from TIC clicks in zoom mode', () => { + expect(shouldDisplayLcmsSubViewerAt({ + isLcmsLayout: true, + payload: { x: 1.234, y: 42 }, + sourceHint: 'lcms_tic', + uiSweepType: 'zoom in', + })).toEqual(true); + + expect(shouldDisplayLcmsSubViewerAt({ + isLcmsLayout: true, + payload: { x: 1.234, y: 42 }, + sourceHint: 'lcms_tic', + uiSweepType: 'peak add', + })).toEqual(false); + + expect(shouldDisplayLcmsSubViewerAt({ + isLcmsLayout: true, + payload: { x: 1.234, y: 42 }, + sourceHint: null, + uiSweepType: 'zoom in', + })).toEqual(false); + }); +}); + +describe('LCMS ExtractJcamp', () => { + it('Extract TIC (positive) with data and layout', () => { + const entity = ExtractJcamp(hplcMsTicPosJcamp); + expect(entity.layout).toEqual(LIST_LAYOUT.LC_MS); + expect(hasSpectrumData(entity)).toEqual(true); + expect(getLcMsInfo(entity).kind).toEqual('tic'); + }); + + it('Extract TIC (negative) with data and layout', () => { + const entity = ExtractJcamp(hplcMsTicNegJcamp); + expect(entity.layout).toEqual(LIST_LAYOUT.LC_MS); + expect(hasSpectrumData(entity)).toEqual(true); + expect(getLcMsInfo(entity).kind).toEqual('tic'); + }); + + it('Extract UVVIS with data and layout', () => { + const entity: any = ExtractJcamp(hplcMsUvvisJcamp); + expect(entity.layout).toEqual(LIST_LAYOUT.LC_MS); + expect(Array.isArray(entity.features)).toEqual(true); + expect(entity.features.length).toBeGreaterThan(0); + expect(hasSpectrumData(entity)).toEqual(true); + expect(getLcMsInfo(entity).kind).toEqual('uvvis'); + }); + + it('Extract UVVIS reads ##$CSLCMSMZPAGE from first CHEMSPECTRA UVVIS peak table block', () => { + const injected = hplcMsUvvisJcamp.replace( + '$$ === CHEMSPECTRA UVVIS PEAK TABLE ===\n', + '$$ === CHEMSPECTRA UVVIS PEAK TABLE ===\n##$CSLCMSMZPAGE=1.234\n', + ); + const entity: any = ExtractJcamp(injected); + expect(entity.lcms_mz_page).toBeCloseTo(1.234); + }); + + it('Extract UVVIS ignores empty ##$CSLCMSMZPAGE (fallback: no lcms_mz_page key)', () => { + const injected = hplcMsUvvisJcamp.replace( + '$$ === CHEMSPECTRA UVVIS PEAK TABLE ===\n', + '$$ === CHEMSPECTRA UVVIS PEAK TABLE ===\n##$CSLCMSMZPAGE=\n', + ); + const entity: any = ExtractJcamp(injected); + expect(entity.lcms_mz_page).toBeUndefined(); + }); + + it('Extract Chemstation MZ with multiple pages', () => { + const entity: any = ExtractJcamp(lcMsMzChemstationJcamp); + expect(entity.layout).toEqual(LIST_LAYOUT.LC_MS); + expect(Array.isArray(entity.features)).toEqual(true); + expect(entity.features.length).toBeGreaterThan(0); + const pages = extractPages(entity); + expect(new Set(pages).size).toBeGreaterThan(1); + }); +}); + +describe('LCMS grouping', () => { + it('Split entities into TIC/UVVIS/MZ groups', () => { + const entities = [ + ExtractJcamp(hplcMsTicPosJcamp), + ExtractJcamp(hplcMsTicNegJcamp), + ExtractJcamp(hplcMsUvvisJcamp), + ExtractJcamp(lcMsMzChemstationJcamp), + ]; + const { ticEntities, uvvisEntities, mzEntities } = splitAndReindexEntities(entities); + expect(ticEntities.length).toBeGreaterThanOrEqual(2); + expect(uvvisEntities.length).toBeGreaterThanOrEqual(1); + expect(mzEntities.length).toBeGreaterThanOrEqual(1); + }); +}); + +describe('LCMS MS page on request', () => { + it('chooses the MS source from requested polarity and returns a single-page JCAMP', () => { + const positiveEntity = buildMzEntity('positive', [1.16165161, 2.5]); + const negativeEntity = buildMzEntity('negative', [1.16165161]); + + const result = buildLcmsMsPageJcamp( + [positiveEntity, negativeEntity], + { retentionTime: '1.16165161', polarity: 'positive' }, + ); + + expect(result.selection.msSourceChosen?.polarity).toEqual('positive'); + expect(result.selection.pageChosen?.selected).toEqual('1.16165161'); + expect(result.selection.fallbackApplied).toEqual(false); + expect(result.jcamp).toContain('##PAGE=1.16165161'); + expect(result.jcamp.match(/##PAGE=/g)).toHaveLength(1); + expect(result.jcamp).not.toContain('##PAGE=2.5'); + }); + + it('uses the only MS source even when polarity is not discriminant', () => { + const onlyMsEntity = buildMzEntity('neutral', [1.16165161, 1.8]); + + const result = buildLcmsMsPageJcamp( + [onlyMsEntity], + { retentionTime: '1.16165161', polarity: 'negative' }, + ); + + expect(result.selection.msSourceChosen?.polarity).toEqual('neutral'); + expect(result.selection.fallbackApplied).toEqual(true); + expect(result.jcamp).toContain('##PAGE=1.16165161'); + expect(result.jcamp.match(/##PAGE=/g)).toHaveLength(1); + }); +}); diff --git a/src/__tests__/units/components/cmd_bar/r05_submit_btn.test.js b/src/__tests__/units/components/cmd_bar/r05_submit_btn.test.js index 584c2bd2..42f6c89e 100644 --- a/src/__tests__/units/components/cmd_bar/r05_submit_btn.test.js +++ b/src/__tests__/units/components/cmd_bar/r05_submit_btn.test.js @@ -4,9 +4,13 @@ import { fireEvent, render } from '@testing-library/react'; import '@testing-library/jest-dom'; import BtnSubmit from '../../../../components/cmd_bar/r05_submit_btn'; +import Format from '../../../../helpers/format'; jest.mock('../../../../helpers/extractPeaksEdit', () => ({ - extractPeaksEdit: jest.fn(() => [{ x: 1, y: 2 }]), + extractPeaksEdit: () => [{ x: 1, y: 2 }], + formatLcmsPeaksForBackend: () => [{ peakMock: true }], + formatLcmsIntegralsForBackend: () => [{ integralMock: true }], + getLcmsMzPageData: () => ({ mzPageDataMock: true }), })); const mockStore = configureStore([]); @@ -27,6 +31,7 @@ const buildBaseState = (overrides = {}) => ({ axesUnits: { axes: [{ xUnit: '', yUnit: '' }] }, detector: {}, meta: { dscMetaData: {} }, + hplcMs: {}, ...overrides, }); @@ -109,4 +114,76 @@ describe('', () => { expect(noFlagsPayload.spectra_list[0]).not.toHaveProperty('keepPred'); expect(noFlagsPayload.spectra_list[0]).not.toHaveProperty('simulatenmr'); }); + + describe('layout LC/MS', () => { + const uvvisFeature = { xUnit: 'min', yUnit: 'mAU', scanAutoTarget: 1, thresRef: 3 }; + let formatedLcmsSpy; + + beforeEach(() => { + formatedLcmsSpy = jest.spyOn(Format, 'formatedLCMS').mockReturnValue('lcms_head_text'); + }); + + afterEach(() => { + formatedLcmsSpy.mockRestore(); + }); + + it('replicates lcms_* onto each UVVIS entry in spectra_list', () => { + const operationValue = jest.fn(); + const state = buildBaseState({ + layout: 'LC/MS', + curve: { + curveIdx: 0, + listCurves: [ + { lcmsKind: 'uvvis', feature: { ...uvvisFeature, scanAutoTarget: 1 } }, + { lcmsKind: 'uvvis', feature: { ...uvvisFeature, scanAutoTarget: 2 } }, + ], + }, + hplcMs: { + uvvis: { selectedWaveLength: 220 }, + tic: { currentPageValue: 1.25 }, + }, + }); + + renderBtnSubmit(state, operationValue); + + const payload = operationValue.mock.calls[0][0]; + expect(payload.spectra_list).toHaveLength(2); + payload.spectra_list.forEach((entry) => { + expect(entry.lcms_peaks).toEqual([{ peakMock: true }]); + expect(entry.lcms_integrals).toEqual([{ integralMock: true }]); + expect(entry.lcms_integrations_export).toBe('percent'); + expect(entry.lcms_peaks_text).toBe('lcms_head_text'); + expect(entry.lcms_uvvis_wavelength).toBe(220); + expect(entry.lcms_mz_page).toBe(1.25); + expect(entry.lcms_mz_page_data).toEqual({ mzPageDataMock: true }); + }); + expect(payload.lcms_peaks).toEqual([{ peakMock: true }]); + expect(formatedLcmsSpy).toHaveBeenCalled(); + }); + + it('with no UVVIS in listCurves (fallback to feature), no lcms_* on the spectrum item', () => { + const operationValue = jest.fn(); + const state = buildBaseState({ + layout: 'LC/MS', + curve: { + curveIdx: 0, + listCurves: [{ lcmsKind: 'tic', feature: uvvisFeature }], + }, + hplcMs: { + uvvis: { selectedWaveLength: 210 }, + tic: { currentPageValue: 0.5 }, + }, + }); + + renderBtnSubmit(state, operationValue); + + const payload = operationValue.mock.calls[0][0]; + expect(payload.spectra_list).toHaveLength(1); + const entry = payload.spectra_list[0]; + expect(entry).not.toHaveProperty('lcms_peaks'); + expect(entry).not.toHaveProperty('lcms_integrals'); + expect(entry).not.toHaveProperty('lcms_peaks_text'); + expect(payload.lcms_peaks).toEqual([{ peakMock: true }]); + }); + }); }); diff --git a/src/__tests__/units/components/d3_line_rect.test.js b/src/__tests__/units/components/d3_line_rect.test.js new file mode 100644 index 00000000..07b08b07 --- /dev/null +++ b/src/__tests__/units/components/d3_line_rect.test.js @@ -0,0 +1,51 @@ +import { isLcmsMsPageLoading } from '../../../components/d3_line_rect/index'; + +describe('isLcmsMsPageLoading', () => { + const buildMzEntity = (polarity, pageValues) => ({ + layout: 'LC/MS', + lcmsKind: 'mz', + lcmsPolarity: polarity, + features: pageValues.map((pageValue) => ({ + pageValue, + data: [{ x: [100, 101], y: [10, 5] }], + })), + }); + + it('returns true when the requested RT is not available yet', () => { + const state = { + tic: { + polarity: 'positive', + currentPageValue: 2.5, + }, + }; + + expect(isLcmsMsPageLoading([ + buildMzEntity('positive', [1.2]), + ], state)).toEqual(true); + }); + + it('returns false when the requested RT is already present', () => { + const state = { + tic: { + polarity: 'negative', + currentPageValue: 2.5, + }, + }; + + expect(isLcmsMsPageLoading([ + buildMzEntity('positive', [1.2]), + buildMzEntity('negative', [2.5]), + ], state)).toEqual(false); + }); + + it('returns true when no MS page has been received yet', () => { + const state = { + tic: { + polarity: 'positive', + currentPageValue: 2.5, + }, + }; + + expect(isLcmsMsPageLoading([], state)).toEqual(true); + }); +}); diff --git a/src/__tests__/units/components/hplc_viewer.test.js b/src/__tests__/units/components/hplc_viewer.test.js new file mode 100644 index 00000000..16828f79 --- /dev/null +++ b/src/__tests__/units/components/hplc_viewer.test.js @@ -0,0 +1,99 @@ +import React from 'react'; +import { render, screen } from '@testing-library/react'; +import '@testing-library/jest-dom'; +import configureStore from 'redux-mock-store'; +import { Provider } from 'react-redux'; +import { createTheme } from '@mui/material'; +import { ThemeProvider } from '@mui/styles'; + +import HPLCViewer from '../../../components/hplc_viewer'; +import { LIST_LAYOUT } from '../../../constants/list_layout'; + +jest.mock('../../../components/cmd_bar/index', () => (props) => ( +
+ {props.editorOnly ? 'editorOnly' : 'editable'}-{props.hideThreshold ? 'hideThreshold' : 'showThreshold'} +
+)); + +jest.mock('../../../components/d3_line_rect/index', () => (props) => ( +
+ tic:{props.ticEntities?.length || 0}-uvvis:{props.uvvisEntities?.length || 0}-mz:{props.mzEntities?.length || 0} +
+)); + +jest.mock('../../../components/panel/index', () => (props) => ( +
+ {props.integration ? 'hasIntegration' : 'noIntegration'} +
+)); + +const mockStore = configureStore([]); +const theme = createTheme(); + +const renderWithStore = (state, extraProps = {}) => { + const store = mockStore(state); + return render( + + + {}} + editorOnly={true} + {...extraProps} + /> + + , + ); +}; + +describe('', () => { + it('renders empty view when there are no entities', () => { + renderWithStore({ + curve: { listCurves: [], curveIdx: 0 }, + layout: LIST_LAYOUT.LC_MS, + integration: { present: { integrations: [] } }, + hplcMs: {}, + }); + + expect(screen.queryByTestId('cmd-bar')).not.toBeInTheDocument(); + expect(screen.queryByTestId('viewer-line-rect')).not.toBeInTheDocument(); + expect(screen.queryByTestId('panel-viewer')).not.toBeInTheDocument(); + }); + + it('renders LCMS blocks with split entities and selected integration', () => { + const entities = [ + { + csCategory: ['tic', 'positive'], + feature: { xUnit: 'min', yUnit: 'intensity' }, + topic: { x: [1, 2], y: [10, 20] }, + }, + { + csCategory: ['uvvis'], + feature: { xUnit: 'nm', yUnit: 'AU' }, + topic: { x: [210], y: [0.4] }, + }, + { + csCategory: ['mz', 'negative'], + feature: { xUnit: 'm/z', yUnit: 'counts' }, + topic: { x: [100], y: [5] }, + }, + ]; + + renderWithStore({ + curve: { listCurves: entities, curveIdx: 1 }, + layout: LIST_LAYOUT.LC_MS, + integration: { present: { integrations: [null, { id: 'int-2' }, null] } }, + hplcMs: { tic: { polarity: 'positive' } }, + }); + + expect(screen.getByTestId('cmd-bar')).toHaveTextContent('editorOnly-hideThreshold'); + expect(screen.getByTestId('viewer-line-rect')).toHaveTextContent('tic:1-uvvis:1-mz:1'); + expect(screen.getByTestId('panel-viewer')).toHaveTextContent('hasIntegration'); + }); +}); diff --git a/src/__tests__/units/components/panel/info.test.js b/src/__tests__/units/components/panel/info.test.js index 647164e7..ebd7fc62 100644 --- a/src/__tests__/units/components/panel/info.test.js +++ b/src/__tests__/units/components/panel/info.test.js @@ -1,5 +1,5 @@ import React from "react"; -import { render, screen } from '@testing-library/react'; +import { render } from '@testing-library/react'; import InfoPanel from '../../../../components/panel/info'; import configureStore from 'redux-mock-store' import { Provider } from 'react-redux'; @@ -19,7 +19,7 @@ const store = mockStore({ shifts: [], }, simulation: { - + nmrSimPeaks: [], }, detector: { curves: [ @@ -29,10 +29,12 @@ const store = mockStore({ }, ], }, - meta: {} -}); -const failedStore = mockStore({ - + meta: { + dscMetaData: {}, + }, + hplcMs: { + uvvis: { spectraList: [], listWaveLength: [] }, + }, }); const dispatchMock = () => Promise.resolve({}); store.dispatch = jest.fn(dispatchMock); @@ -43,8 +45,14 @@ const theme = createTheme({ }, }); -const feature = { - +const feature = {}; +const baseProps = { + feature, + integration: {}, + editorOnly: false, + molSvg: '', + descriptions: '', + canChangeDescription: false, }; describe("", () => { @@ -55,23 +63,11 @@ describe("", () => { } }); - test('Cannot render info panel', () => { - const renderer = - - - {}} /> - - - ; - const {queryByTestId} = render(renderer); - expect(queryByTestId('PanelInfo')).not.toBeInTheDocument(); - }); - - test('Render info panel', () => { + test('Render info panel', () => { const renderer = - {}} feature={feature} /> + {}} {...baseProps} /> ; diff --git a/src/__tests__/units/features/lc-ms/parsing/lcmsCategory.test.js b/src/__tests__/units/features/lc-ms/parsing/lcmsCategory.test.js new file mode 100644 index 00000000..053912b4 --- /dev/null +++ b/src/__tests__/units/features/lc-ms/parsing/lcmsCategory.test.js @@ -0,0 +1,70 @@ +import { + normalizeLcMsMode, + inferLcMsKind, + inferLcMsCategory, +} from '../../../../../features/lc-ms/parsing/lcmsCategory'; + +describe('lc-ms/parsing lcmsCategory', () => { + describe('normalizeLcMsMode', () => { + it('maps vendor strings to NEGATIVE / POSITIVE / NEUTRAL', () => { + expect(normalizeLcMsMode('Positive Mode')).toBe('POSITIVE'); + expect(normalizeLcMsMode('NEGATIV')).toBe('NEGATIVE'); + expect(normalizeLcMsMode('neutral scan')).toBe('NEUTRAL'); + }); + + it('returns NEUTRAL for empty or unknown', () => { + expect(normalizeLcMsMode('')).toBe('NEUTRAL'); + expect(normalizeLcMsMode(null)).toBe('NEUTRAL'); + expect(normalizeLcMsMode('unknown')).toBe('NEUTRAL'); + }); + }); + + describe('inferLcMsKind', () => { + it('detects TIC from MASS TIC or CHROMATOGRAM', () => { + expect(inferLcMsKind({ dataType: 'MASS TIC' }, {})).toBe('TIC'); + expect(inferLcMsKind({}, { dataType: 'mass tic' })).toBe('TIC'); + expect(inferLcMsKind({}, { info: { TYPE: 'CHROMATOGRAM' } })).toBe('TIC'); + }); + + it('detects MZ from MASS SPECTRUM', () => { + expect(inferLcMsKind({ dataType: 'MASS SPECTRUM' }, {})).toBe('MZ'); + }); + + it('uses time + intensity units as TIC', () => { + expect( + inferLcMsKind( + { xUnit: 'Minutes', yUnit: 'Intensity' }, + {}, + ), + ).toBe('TIC'); + }); + + it('uses m/z axis as MZ', () => { + expect(inferLcMsKind({ xUnit: 'm/z' }, {})).toBe('MZ'); + }); + + it('defaults to SPECTRUM when nothing matches', () => { + expect(inferLcMsKind({}, {})).toBe('SPECTRUM'); + }); + }); + + describe('inferLcMsCategory', () => { + it('returns existing csCategory when present', () => { + expect( + inferLcMsCategory( + { csCategory: 'CUSTOM LABEL' }, + {}, + ), + ).toBe('CUSTOM LABEL'); + }); + + it('builds TIC / MZ + mode + SPECTRUM when not preset', () => { + const jcamp = { info: { SCAN_MODE: 'Positive' } }; + const ticKind = { dataType: 'MASS TIC' }; + expect(inferLcMsCategory(ticKind, jcamp)).toBe('TIC POSITIVE SPECTRUM'); + + const mzKind = { dataType: 'MASS SPECTRUM' }; + expect(inferLcMsCategory(mzKind, jcamp)).toBe('MZ POSITIVE SPECTRUM'); + }); + }); +}); diff --git a/src/__tests__/units/features/lc-ms/submit/peaks.test.js b/src/__tests__/units/features/lc-ms/submit/peaks.test.js new file mode 100644 index 00000000..30ab8948 --- /dev/null +++ b/src/__tests__/units/features/lc-ms/submit/peaks.test.js @@ -0,0 +1,204 @@ +import { + formatLcmsPeaksForBackend, + formatLcmsIntegralsForBackend, + getLcmsMzPageData, +} from '../../../../../features/lc-ms/submit/peaks'; + +describe('lc-ms/submit peaks — backend payload shape', () => { + describe('formatLcmsPeaksForBackend', () => { + it('returns empty array when state is missing or has no spectraList', () => { + expect(formatLcmsPeaksForBackend(null)).toEqual([]); + expect(formatLcmsPeaksForBackend({})).toEqual([]); + expect(formatLcmsPeaksForBackend({ uvvis: {} })).toEqual([]); + expect(formatLcmsPeaksForBackend({ uvvis: { spectraList: null } })).toEqual([]); + }); + + it('adds wavelength from spectrum pageValue to each peak (single channel)', () => { + const hplcMsSt = { + uvvis: { + spectraList: [ + { + pageValue: 254, + peaks: [ + { x: 1.2, y: 10, _meta: 'a' }, + { x: 3.4, y: 20 }, + ], + }, + ], + }, + }; + const out = formatLcmsPeaksForBackend(hplcMsSt); + expect(out).toEqual([ + { x: 1.2, y: 10, _meta: 'a', wavelength: 254 }, + { x: 3.4, y: 20, wavelength: 254 }, + ]); + }); + + it('flattens peaks from multiple UV channels with distinct wavelengths', () => { + const hplcMsSt = { + uvvis: { + spectraList: [ + { pageValue: 230, peaks: [{ x: 0.1, y: 1 }] }, + { pageValue: 280, peaks: [{ x: 0.2, y: 2 }, { x: 0.3, y: 3 }] }, + { pageValue: 210, peaks: [] }, + ], + }, + }; + const out = formatLcmsPeaksForBackend(hplcMsSt); + expect(out).toHaveLength(3); + expect(out[0]).toMatchObject({ x: 0.1, wavelength: 230 }); + expect(out[1]).toMatchObject({ x: 0.2, wavelength: 280 }); + expect(out[2]).toMatchObject({ x: 0.3, wavelength: 280 }); + }); + + it('ignores spectra with no peaks', () => { + const hplcMsSt = { + uvvis: { + spectraList: [ + { pageValue: 254, peaks: [] }, + { pageValue: 230, peaks: [{ x: 1, y: 1 }] }, + ], + }, + }; + expect(formatLcmsPeaksForBackend(hplcMsSt)).toEqual([ + { x: 1, y: 1, wavelength: 230 }, + ]); + }); + }); + + describe('formatLcmsIntegralsForBackend', () => { + it('returns empty when no integrals', () => { + expect(formatLcmsIntegralsForBackend(null)).toEqual([]); + expect(formatLcmsIntegralsForBackend({ uvvis: { spectraList: [] } })).toEqual([]); + }); + + it('maps integration fields to backend keys (from, to, value, integral, wavelength)', () => { + const hplcMsSt = { + uvvis: { + spectraList: [ + { + pageValue: 254, + integrations: [ + { xL: 1, xU: 2, area: 100, absoluteArea: 1000 }, + { xL: 3, xU: 4, area: 50, absoluteArea: 500 }, + ], + }, + ], + }, + }; + expect(formatLcmsIntegralsForBackend(hplcMsSt)).toEqual([ + { from: 1, to: 2, value: 100, integral: 1000, wavelength: 254 }, + { from: 3, to: 4, value: 50, integral: 500, wavelength: 254 }, + ]); + }); + }); + + describe('getLcmsMzPageData', () => { + it('returns null when tic or ms is missing', () => { + expect(getLcmsMzPageData(null)).toBeNull(); + expect(getLcmsMzPageData({})).toBeNull(); + expect(getLcmsMzPageData({ tic: {} })).toBeNull(); + expect(getLcmsMzPageData({ ms: {} })).toBeNull(); + }); + + it('returns null when TIC x axis is missing or currentPageValue is not finite', () => { + const base = { + tic: { + polarity: 'positive', + currentPageValue: 0.5, + positive: { data: {} }, + }, + ms: { positive: { pageValues: [0.5], peaks: [[{ x: 100, y: 1 }]] } }, + }; + expect(getLcmsMzPageData({ ...base, tic: { ...base.tic, currentPageValue: NaN } })).toBeNull(); + }); + + it('returns null when RT does not match any TIC point or page value', () => { + const hplcMsSt = { + tic: { + polarity: 'positive', + currentPageValue: 0.99, + positive: { data: { x: [0.1, 0.2] } }, + }, + ms: { + positive: { + pageValues: [0.1, 0.2], + peaks: [[{ x: 50, y: 1 }], [{ x: 60, y: 2 }]], + }, + }, + }; + expect(getLcmsMzPageData(hplcMsSt)).toBeNull(); + }); + + it('resolves MS peak array for positive polarity via pageValues', () => { + const peakRow = [{ x: 120.1, y: 999 }, { x: 121, y: 1 }]; + const hplcMsSt = { + tic: { + polarity: 'positive', + currentPageValue: 0.5, + positive: { data: { x: [0.4, 0.5, 0.6] } }, + }, + ms: { + positive: { + pageValues: [0.4, 0.5, 0.6], + peaks: [[], peakRow, []], + }, + }, + }; + expect(getLcmsMzPageData(hplcMsSt)).toEqual(peakRow); + }); + + it('uses negative polarity and matching pageValues', () => { + const peakRow = [{ x: 200, y: 1 }]; + const hplcMsSt = { + tic: { + polarity: 'negative', + currentPageValue: 1.0, + negative: { data: { x: [1.0] } }, + }, + ms: { + negative: { + pageValues: [1.0], + peaks: [peakRow], + }, + }, + }; + expect(getLcmsMzPageData(hplcMsSt)).toEqual(peakRow); + }); + + it('falls back to TIC x index when pageValues does not list the RT', () => { + const peakRow = [{ x: 300, y: 1 }]; + const hplcMsSt = { + tic: { + polarity: 'positive', + currentPageValue: 0.5, + positive: { data: { x: [0.3, 0.5, 0.7] } }, + }, + ms: { + positive: { + pageValues: null, + peaks: [[], peakRow, []], + }, + }, + }; + expect(getLcmsMzPageData(hplcMsSt)).toEqual(peakRow); + }); + + it('returns null when peaks slot is not an array', () => { + const hplcMsSt = { + tic: { + polarity: 'positive', + currentPageValue: 0.5, + positive: { data: { x: [0.5] } }, + }, + ms: { + positive: { + pageValues: [0.5], + peaks: [null], + }, + }, + }; + expect(getLcmsMzPageData(hplcMsSt)).toBeNull(); + }); + }); +}); diff --git a/src/__tests__/units/helpers/calc.test.tsx b/src/__tests__/units/helpers/calc.test.tsx index 171e0da0..7f0b7d6b 100644 --- a/src/__tests__/units/helpers/calc.test.tsx +++ b/src/__tests__/units/helpers/calc.test.tsx @@ -1,4 +1,4 @@ -import { almostEqual, calcSlope } from '../../../helpers/calc'; +import { almostEqual, calcSlope, findClosest } from '../../../helpers/calc'; describe('Test calculation helpers', () => { describe('Test almostEqual function', () => { @@ -39,4 +39,20 @@ describe('Test calculation helpers', () => { expect(output).toEqual(3); }); }); + + describe('Test findClosest function', () => { + it('Get closest number from array of interger', () => { + const arr = [ 1, 2, 4, 5, 6, 6, 8, 9 ]; + const target = 2.7; + const output = findClosest(arr, target) + expect(output).toEqual(2); + }); + + it('Get closest number from array of float', () => { + const arr = [ 1.0, 1.5, 1.9 ]; + const target = 1.2; + const output = findClosest(arr, target) + expect(output).toEqual(1.0); + }); + }); }); diff --git a/src/__tests__/units/helpers/extractEntityLCMS.test.tsx b/src/__tests__/units/helpers/extractEntityLCMS.test.tsx new file mode 100644 index 00000000..d6c98941 --- /dev/null +++ b/src/__tests__/units/helpers/extractEntityLCMS.test.tsx @@ -0,0 +1,151 @@ +import { + classify, + getLcMsInfo, + isLcMsGroup, + splitAndReindexEntities, +} from '../../../helpers/extractEntityLCMS'; + +describe('extractEntityLCMS helpers', () => { + describe('getLcMsInfo', () => { + it('prefers explicit lcms fields when present', () => { + const entity = { + lcmsKind: 'mz', + lcmsPolarity: 'negative', + csCategory: ['tic positive'], + }; + + expect(getLcMsInfo(entity)).toEqual({ + kind: 'mz', + polarity: 'negative', + }); + }); + + it('detects tic positive from csCategory', () => { + const entity = { + csCategory: ['mass tic', 'positive mode'], + }; + + expect(getLcMsInfo(entity)).toEqual({ + kind: 'tic', + polarity: 'positive', + }); + }); + + it('detects mz from dataType when categories are missing', () => { + const entity = { + dataType: 'Mass Spectrum', + }; + + expect(getLcMsInfo(entity)).toEqual({ + kind: 'mz', + polarity: 'neutral', + }); + }); + + it('detects tic from units fallback', () => { + const entity = { + spectra: [ + { + xUnit: 'Time', + yUnit: 'Intensity', + }, + ], + }; + + expect(getLcMsInfo(entity)).toEqual({ + kind: 'tic', + polarity: 'neutral', + }); + }); + + it('returns unknown when no signal can classify entity', () => { + expect(getLcMsInfo({})).toEqual({ + kind: 'unknown', + polarity: 'neutral', + }); + }); + }); + + describe('classify', () => { + it('returns unknown label for unknown entities', () => { + expect(classify({})).toEqual('unknown'); + }); + + it('returns composite label for known entities', () => { + expect(classify({ csCategory: ['uvvis', 'positive'] })).toEqual('uvvis_positive'); + }); + }); + + describe('splitAndReindexEntities', () => { + it('splits by kind, sorts by polarity and sets curveIdx', () => { + const ticNegative: any = { csCategory: ['tic', 'negative'] }; + const ticPositive: any = { csCategory: ['tic', 'positive'] }; + const mzNeutral = { csCategory: ['mz'] }; + const uvvis = { csCategory: ['uvvis'] }; + const unknown = {}; + + const result = splitAndReindexEntities([ + ticNegative, + ticPositive, + mzNeutral, + uvvis, + unknown, + ]); + + expect(result.ticEntities).toHaveLength(2); + expect(result.ticEntities[0]).not.toBe(ticPositive); + expect(result.ticEntities[1]).not.toBe(ticNegative); + expect(result.ticEntities[0]).toMatchObject({ csCategory: ['tic', 'positive'] }); + expect(result.ticEntities[1]).toMatchObject({ csCategory: ['tic', 'negative'] }); + expect(result.ticEntities[0].curveIdx).toEqual(0); + expect(result.ticEntities[1].curveIdx).toEqual(1); + + expect(result.mzEntities).toHaveLength(1); + expect(result.mzEntities[0]).not.toBe(mzNeutral); + expect(result.mzEntities[0]).toMatchObject({ csCategory: ['mz'] }); + expect(result.mzEntities[0].curveIdx).toEqual(0); + + expect(result.uvvisEntities).toEqual([ + expect.objectContaining({ csCategory: ['uvvis'] }), + ]); + expect(result.unknownEntities).toEqual([ + expect.objectContaining({}), + ]); + expect(result.dataEntities[0]).toMatchObject({ csCategory: ['mz'] }); + expect(result.allEntities).toHaveLength(5); + expect(result.ticEntities[0].lcmsKind).toEqual('tic'); + expect(result.ticEntities[0].lcmsPolarity).toEqual('positive'); + expect(ticPositive.lcmsKind).toBeUndefined(); + expect(ticPositive.lcmsPolarity).toBeUndefined(); + }); + }); + + describe('isLcMsGroup', () => { + it('returns false on empty input', () => { + expect(isLcMsGroup([])).toEqual(false); + expect(isLcMsGroup(null as any)).toEqual(false); + }); + + it('returns true when uvvis + tic is present', () => { + const entities = [ + { csCategory: ['uvvis'] }, + { csCategory: ['tic', 'positive'] }, + ]; + + expect(isLcMsGroup(entities)).toEqual(true); + }); + + it('returns true when uvvis + mz is present', () => { + const entities = [ + { csCategory: ['uvvis'] }, + { csCategory: ['mz', 'negative'] }, + ]; + + expect(isLcMsGroup(entities)).toEqual(true); + }); + + it('returns false when uvvis exists alone', () => { + expect(isLcMsGroup([{ csCategory: ['uvvis'] }])).toEqual(false); + }); + }); +}); diff --git a/src/__tests__/units/helpers/extractParams.test.tsx b/src/__tests__/units/helpers/extractParams.test.tsx index 28edc8bf..e4bc6dbe 100644 --- a/src/__tests__/units/helpers/extractParams.test.tsx +++ b/src/__tests__/units/helpers/extractParams.test.tsx @@ -1,27 +1,104 @@ import { LIST_LAYOUT } from "../../../constants/list_layout"; import { extractParams } from "../../../helpers/extractParams"; -describe('Test extract paramaters helper', () => { - describe('Extract params for MS layout', () => { - //TODO: Need more implementations - const entity = { +describe('Test extract parameters helper', () => { + describe('MS layout', () => { + const msEntity = { layout: LIST_LAYOUT.MS, features: { - editPeak: [] + autoPeak: { + scanAutoTarget: 2, + data: [{ x: [1], y: [10] }], + origin: 'auto', + }, + editPeak: { + scanEditTarget: 1, + data: [{ x: [2], y: [20] }], + origin: 'edit', + }, + integration: [{ id: 1 }], + multiplicity: [{ id: 2 }], }, - spectra: [{ - data: [] - }] - } - const thresholdState = {} - const scanState = { - target: 1, - isAuto: true - } - - it('Extract MS params succeed', () => { - const extractedData = extractParams(entity, thresholdState, scanState) - expect(extractedData).not.toBeNull() - }) - }) -}) \ No newline at end of file + spectra: [ + { data: [{ x: [100], y: [1000] }] }, + { data: [{ x: [200], y: [2000] }] }, + ], + }; + + it('uses selected scan spectrum and auto feature when threshold is not edited', () => { + const params: any = extractParams( + msEntity as any, + { isEdit: false } as any, + { target: 2, isAuto: true } as any, + ); + expect(params.topic).toEqual({ x: [200], y: [2000] }); + expect(params.feature.origin).toEqual('auto'); + expect(params.hasEdit).toEqual(true); + }); + + it('prefers edit feature when threshold is edited and edit data exists', () => { + const params: any = extractParams( + msEntity as any, + { isEdit: true } as any, + { target: null, isAuto: false } as any, + ); + expect(params.topic).toEqual({ x: [100], y: [1000] }); + expect(params.feature.origin).toEqual('edit'); + expect(params.hasEdit).toEqual(true); + }); + + it('supports forceLcms option even on MS layout', () => { + const params: any = extractParams( + msEntity as any, + { isEdit: false } as any, + { target: 1, isAuto: true } as any, + { forceLcms: true } as any, + ); + expect(params.entity.layout).toEqual(LIST_LAYOUT.MS); + expect(params.topic).toEqual({ x: [undefined, undefined], y: [10, 20] }); + expect(params.feature.operation.layout).toEqual(LIST_LAYOUT.MS); + }); + }); + + describe('LC/MS layout', () => { + it('extracts TIC x/y directly from first valid spectrum', () => { + const lcmsEntity = { + layout: LIST_LAYOUT.LC_MS, + csCategory: ['tic', 'positive'], + features: [ + { data: [{ x: [1, 2], y: [11, 22] }] }, + ], + spectra: [{ data: [{ x: [0], y: [0] }] }], + }; + + const params: any = extractParams( + lcmsEntity as any, + { isEdit: false } as any, + { target: 1, isAuto: true } as any, + ); + expect(params.topic).toEqual({ x: [1, 2], y: [11, 22] }); + expect(params.feature.maxY).toEqual(22); + expect(params.feature.operation.layout).toEqual(LIST_LAYOUT.LC_MS); + }); + + it('extracts UVVIS/MZ profile from pageValue and max y per feature', () => { + const lcmsEntity = { + layout: LIST_LAYOUT.LC_MS, + csCategory: ['uvvis'], + features: [ + { pageValue: 210, data: [{ x: [1], y: [3, 9, 4] }] }, + { pageValue: 220, data: [{ x: [2], y: [8, 1, 7] }] }, + ], + spectra: [{ data: [{ x: [0], y: [0] }] }], + }; + + const params: any = extractParams( + lcmsEntity as any, + { isEdit: false } as any, + { target: 1, isAuto: true } as any, + ); + expect(params.topic).toEqual({ x: [210, 220], y: [9, 8] }); + expect(params.feature.maxY).toEqual(9); + }); + }); +}); \ No newline at end of file diff --git a/src/__tests__/units/helpers/extractPeaksEdit.test.tsx b/src/__tests__/units/helpers/extractPeaksEdit.test.tsx index edb4c685..9b4e6024 100644 --- a/src/__tests__/units/helpers/extractPeaksEdit.test.tsx +++ b/src/__tests__/units/helpers/extractPeaksEdit.test.tsx @@ -1,30 +1,36 @@ -import { extractPeaksEdit, extractAreaUnderCurve, extractAutoPeaks } from "../../../helpers/extractPeaksEdit"; +import { + extractPeaksEdit, + extractAreaUnderCurve, + extractAutoPeaks, + getLcmsMzPageData, +} from "../../../helpers/extractPeaksEdit"; import { LIST_LAYOUT } from "../../../constants/list_layout"; import { LIST_SHIFT_1H } from "../../../constants/list_shift"; describe('Test extract edited peaks and area under curve', () => { describe('Test extract edited peaks', () => { - const editPeakSt = { - peaks: { x: [1, 2], y: [1, 2]}, - selectedIdx: 0 - } - const feature = { data: [{ x: [1, 2, 3], y: [1, 2, 3] }], operation: { layout: '1H'}, maxY: 2, peakUp: true } - const threshold = { value: 55 } - const shiftSt = { - shifts: [ - { ref: LIST_SHIFT_1H[1], peak: { x: 2, y: 2 } } - ] + const hplcMsSt = { + uvvis: { + spectraList: [ + { + peaks: [{ x: 2, y: 2 }, { x: 3, y: 3 }], + }, + { + peaks: [{ x: 4, y: 4 }], + }, + ], + }, } - it('Extract with MS layout', () => { - const peaks = extractPeaksEdit(feature, editPeakSt, threshold, shiftSt, LIST_LAYOUT.MS) - const expectedPeaks = [{x: 2, y: 2}, {x: 3, y: 3}] + it('Extract flattened peaks from LCMS spectra list', () => { + const peaks = extractPeaksEdit(hplcMsSt) + const expectedPeaks = [{ x: 2, y: 2 }, { x: 3, y: 3 }, { x: 4, y: 4 }] expect(peaks).toEqual(expectedPeaks) }) - it('Extract with non-MS layout', () => { - const peaks = extractPeaksEdit(feature, editPeakSt, threshold, shiftSt, LIST_LAYOUT.H1) - const expectedPeaks = [{x: 2.04, y: 2}, {x: 3.04, y: 3}] + it('Return empty array when LCMS state is missing', () => { + const peaks = extractPeaksEdit(null) + const expectedPeaks: any[] = [] expect(peaks).toEqual(expectedPeaks) }) }) @@ -51,6 +57,25 @@ describe('Test extract edited peaks and area under curve', () => { }) }) + describe('Test LCMS page extraction by retention time', () => { + it('Get MS peaks by pageValues in single-page payload mode', () => { + const hplcMsSt = { + tic: { + polarity: 'positive', + currentPageValue: 7.2, + positive: { data: { x: [0.1, 0.2, 0.3] } }, + }, + ms: { + positive: { + pageValues: [7.2], + peaks: [[{ x: 101.1, y: 12 }]], + }, + }, + } + expect(getLcmsMzPageData(hplcMsSt as any)).toEqual([{ x: 101.1, y: 12 }]) + }) + }) + describe('Test extract AUC', () => { type IntegrationValue = { area: number } type Integration = { refArea: number, refFactor: number, stack: Array} diff --git a/src/__tests__/units/helpers/format.test.tsx b/src/__tests__/units/helpers/format.test.tsx index aedb086d..7e3d0e1e 100644 --- a/src/__tests__/units/helpers/format.test.tsx +++ b/src/__tests__/units/helpers/format.test.tsx @@ -154,6 +154,22 @@ describe('Test format helper', () => { const body = Format.peaksBody(params) expect(body).toEqual('2.0 nm (2.00 %), 1.0 nm (1.00 %)') }) + + describe('LC_MS layout', () => { + const lcmsState = { + uvvis: { + listWaveLength: [254], + spectraList: [{ peaks: [{ x: 14, y: 100 }], integrations: [] }], + }, + } + + it('Get peaks for LC_MS layout from explicit hplcMsSt', () => { + params.layout = LIST_LAYOUT.LC_MS + const explicit = Format.peaksBody({ ...params, hplcMsSt: lcmsState }) + const reference = Format.formatedLCMS(lcmsState, params.isAscend, params.decimal) + expect(explicit).toEqual(reference) + }) + }) }) describe('Test get peak wrapper string', () => { @@ -504,4 +520,84 @@ describe('Test format helper', () => { expect(quillData).toEqual(expectedQuillData) }) }) + + describe('formatedLCMS (LC-MS UV/VIS export)', () => { + it('skips wavelength section when there are no peaks and no integrations', () => { + const hplcMsSt = { + uvvis: { + listWaveLength: [230, 254, 280], + spectraList: [ + { peaks: [{ x: 14, y: 100 }], integrations: [] }, + { peaks: [], integrations: [] }, + { peaks: [{ x: 1, y: 100 }], integrations: [] }, + ], + }, + }; + const text = Format.formatedLCMS(hplcMsSt, true, 0); + expect(text).not.toContain('Wavelength 254 nm:'); + expect(text).toContain('Wavelength 230 nm:'); + expect(text).toContain('Wavelength 280 nm:'); + }) + + it('formats MS block RT with at least 3 decimal places', () => { + const hplcMsSt = { + uvvis: { listWaveLength: [], spectraList: [] }, + tic: { + polarity: 'positive', + currentPageValue: 1, + positive: { data: { x: [1], y: [1] } }, + negative: { data: { x: [], y: [] } }, + neutral: { data: { x: [], y: [] } }, + }, + ms: { + positive: { + peaks: [[{ x: 119, y: 100 }, { x: 177, y: 16 }]], + }, + negative: { peaks: [] }, + neutral: { peaks: [] }, + }, + threshold: { value: 5 }, + }; + const text = Format.formatedLCMS(hplcMsSt, true, 0); + expect(text).toContain('RT 1.000 min'); + }) + + it('integration text: percent, area-only, or both (options + state)', () => { + const base = { + uvvis: { + listWaveLength: [210], + spectraList: [{ + peaks: [], + integrations: [{ + refArea: 100, + stack: [ + { xL: 2, area: 50 }, + { xL: 5, area: 100 }, + ], + }], + }], + }, + }; + const pct = Format.formatedLCMS(base, true, 0, { lcmsIntegrationsExport: 'percent' }); + expect(pct).toContain('Integrations: 2 min (50.0%), 5 min (100.0%)'); + expect(pct).not.toContain('A='); + + const areaOnly = Format.formatedLCMS(base, true, 0, { lcmsIntegrationsExport: 'area' }); + expect(areaOnly).toContain('Integrations:'); + expect(areaOnly).toMatch(/2 min \(A=/); + expect(areaOnly).not.toContain('%'); + + const both = Format.formatedLCMS(base, true, 0, { lcmsIntegrationsExport: 'both' }); + expect(both).toContain('2 min (50.0%, A='); + expect(both).toContain('5 min (100.0%, A='); + + const fromState = Format.formatedLCMS( + { ...base, lcmsIntegrationsExport: 'area' }, + true, + 0, + {}, + ); + expect(fromState).toMatch(/2 min \(A=/); + }) + }) }) diff --git a/src/__tests__/units/helpers/integration.test.tsx b/src/__tests__/units/helpers/integration.test.tsx index 4a46892b..2d947760 100644 --- a/src/__tests__/units/helpers/integration.test.tsx +++ b/src/__tests__/units/helpers/integration.test.tsx @@ -3,13 +3,13 @@ import { calcArea, getAbsoluteArea, getArea } from "../../../helpers/integration describe('Test helper for integration', () => { describe('Test get area', () => { it('Do not have area', () => { - const area = getArea(0, 1, [{k: 1}, {k: 1}]) - expect(area).toEqual(0) + const area = getArea(0, 1, [{x: 0, k: 0}, {x: 1, k: 0}]) + expect(area).toEqual(0.0) }) it('Have area', () => { - const area = getArea(0, 1, [{k: 2}, {k: 1}]) - expect(area).toEqual(1) + const area = getArea(0, 1, [{x: 0, k: 2}, {x: 1, k: 0}]) + expect(area).toEqual(1.0) }) }) diff --git a/src/__tests__/units/layer_init_lcms.test.tsx b/src/__tests__/units/layer_init_lcms.test.tsx new file mode 100644 index 00000000..b54ee6c6 --- /dev/null +++ b/src/__tests__/units/layer_init_lcms.test.tsx @@ -0,0 +1,121 @@ +import React from 'react'; +import { render, screen } from '@testing-library/react'; +import '@testing-library/jest-dom'; +import { Provider } from 'react-redux'; +import configureStore from 'redux-mock-store'; + +import LayerInit from '../../layer_init'; +import { LIST_LAYOUT } from '../../constants/list_layout'; + +jest.mock('../../components/hplc_viewer', () => () => ( +
+)); + +jest.mock('../../components/multi_jcamps_viewer', () => () => ( +
+)); + +jest.mock('../../layer_prism', () => () => ( +
+)); + +const mockStore = configureStore([]); + +const baseStoreState = { + layout: LIST_LAYOUT.LC_MS, + curve: { listCurves: [], curveIdx: 0 }, + hplcMs: {}, +}; + +const baseProps = { + others: { something: true }, + cLabel: '', + xLabel: '', + yLabel: '', + molSvg: '', + editorOnly: true, + exactMass: '', + forecast: {}, + operations: [], + descriptions: [], + canChangeDescription: false, + onDescriptionChanged: () => {}, +}; + +const renderLayer = (props: any, storeState = baseStoreState) => render( + + + , +); + +const ticEntity = { + layout: LIST_LAYOUT.LC_MS, + lcmsKind: 'tic', + lcmsPolarity: 'positive', + spectra: [{ pageValue: 1, data: [{ x: [1], y: [1] }] }], +}; +const uvvisEntity = { + layout: LIST_LAYOUT.LC_MS, + lcmsKind: 'uvvis', + spectra: [{ pageValue: 254, data: [{ x: [254], y: [0.5] }] }], +}; +const mzEntity = { + layout: LIST_LAYOUT.LC_MS, + lcmsKind: 'mz', + lcmsPolarity: 'positive', + spectra: [{ pageValue: 1, data: [{ x: [100], y: [10] }] }], +}; + +describe('LayerInit routing — LCMS group detection', () => { + it('routes to HPLCViewer when multiEntities form an LCMS group', () => { + renderLayer({ + entity: ticEntity, + multiEntities: [ticEntity, uvvisEntity, mzEntity], + }); + + expect(screen.getByTestId('hplc-viewer')).toBeInTheDocument(); + expect(screen.queryByTestId('multi-jcamps-viewer')).not.toBeInTheDocument(); + expect(screen.queryByTestId('layer-prism')).not.toBeInTheDocument(); + }); + + it('routes to HPLCViewer for a lone LCMS entity (no multiEntities)', () => { + renderLayer({ + entity: uvvisEntity, + multiEntities: [], + }); + + expect(screen.getByTestId('hplc-viewer')).toBeInTheDocument(); + }); + + it('routes to MultiJcampsViewer when multiEntities are mixed and not an LCMS group', () => { + // Mixed-layout case: an entity reports LC_MS layout but the group does not + // qualify as a real LCMS dataset (only one MZ, no TIC, no UVVIS), + // so we must not misroute to HPLCViewer. + const otherEntity = { + layout: LIST_LAYOUT.IR, + spectra: [{ pageValue: 0, data: [{ x: [1], y: [1] }] }], + }; + renderLayer({ + entity: otherEntity, + multiEntities: [otherEntity, mzEntity], + }, { ...baseStoreState, layout: LIST_LAYOUT.IR }); + + expect(screen.queryByTestId('hplc-viewer')).not.toBeInTheDocument(); + expect(screen.getByTestId('multi-jcamps-viewer')).toBeInTheDocument(); + }); + + it('routes to LayerPrism for a single non-LCMS entity', () => { + const irEntity = { + layout: LIST_LAYOUT.IR, + spectra: [{ xUnit: 'cm-1', yUnit: 'AU', data: [{ x: [1], y: [1] }] }], + }; + renderLayer({ + entity: irEntity, + multiEntities: [], + }, { ...baseStoreState, layout: LIST_LAYOUT.IR }); + + expect(screen.getByTestId('layer-prism')).toBeInTheDocument(); + expect(screen.queryByTestId('hplc-viewer')).not.toBeInTheDocument(); + expect(screen.queryByTestId('multi-jcamps-viewer')).not.toBeInTheDocument(); + }); +}); diff --git a/src/__tests__/units/reducers/reducer_curve.test.tsx b/src/__tests__/units/reducers/reducer_curve.test.tsx index 4f124093..531d50eb 100644 --- a/src/__tests__/units/reducers/reducer_curve.test.tsx +++ b/src/__tests__/units/reducers/reducer_curve.test.tsx @@ -39,7 +39,7 @@ describe('Test redux curve reducer', () => { it('Set all curves without payload', () => { action.type = CURVE.SET_ALL_CURVES const { listCurves } = curveReducer(curveState, action) - expect(listCurves).toEqual(null) + expect(listCurves).toEqual([]) }) it('Set all curves', () => { diff --git a/src/__tests__/units/reducers/reducer_hplc_ms.test.tsx b/src/__tests__/units/reducers/reducer_hplc_ms.test.tsx new file mode 100644 index 00000000..b8e57eec --- /dev/null +++ b/src/__tests__/units/reducers/reducer_hplc_ms.test.tsx @@ -0,0 +1,403 @@ +import hplcMsReducer from "../../../reducers/reducer_hplc_ms"; +import { CURVE, HPLC_MS } from "../../../constants/action_type"; + +const createTicCurve = (polarity: 'positive' | 'negative' | 'neutral', x = [1, 2], y = [10, 20]) => ({ + csCategory: ['tic', polarity], + features: [{ data: [{ x, y }] }], +}); + +const createUvvisCurve = () => ({ + csCategory: ['uvvis'], + features: [ + { + pageSymbol: 'Wavelength=210', + data: [{ x: [1, 2], y: [0.1, 0.2] }], + integrations: [{ xL: 1, xU: 2 }], + peaks: [{ x: 1.5, y: 0.15 }], + }, + { + pageValue: '220', + data: [{ x: [3, 4], y: [0.3, 0.4] }], + integrations: [{ xL: 3, xU: 4 }], + peaks: [{ x: 3.5, y: 0.35 }], + }, + ], +}); + +const createUvvisCurveNoServerIntegrations = () => ({ + csCategory: ['uvvis'], + features: [ + { + pageSymbol: 'Wavelength=210', + data: [{ x: [1, 2], y: [0.1, 0.2] }], + integrations: [], + peaks: [{ x: 1.5, y: 0.15 }], + }, + { + pageValue: '220', + data: [{ x: [3, 4], y: [0.3, 0.4] }], + integrations: [], + peaks: [{ x: 3.5, y: 0.35 }], + }, + ], +}); + +const createMzCurve = (polarity: 'positive' | 'negative' | 'neutral', pageValue?: number) => ({ + csCategory: ['mz', polarity], + features: [{ + ...(pageValue !== undefined ? { pageValue } : {}), + data: [{ x: [100, 101], y: [5, 6] }], + }], +}); + +describe('Test redux reducer_hplc_ms', () => { + beforeEach(() => { + sessionStorage.clear(); + }); + + it('gets default state', () => { + const state = hplcMsReducer(undefined, { type: '@@INIT' } as any); + expect(state.layout).toEqual('LC/MS'); + expect(state.tic.polarity).toEqual('positive'); + expect(state.uvvis.spectraList).toEqual([]); + expect(state.lcmsIntegrationsExport).toEqual('percent'); + expect(state.lcmsDatasetKey).toEqual(null); + }); + + it('sets lcmsIntegrationsExport and normalizes invalid values', () => { + const s0 = hplcMsReducer(undefined, { type: '@@INIT' } as any); + const s1 = hplcMsReducer(s0, { + type: HPLC_MS.SET_LCMS_INTEGRATIONS_EXPORT, + payload: { lcmsIntegrationsExport: 'both' }, + } as any); + expect(s1.lcmsIntegrationsExport).toEqual('both'); + const s2 = hplcMsReducer(s1, { + type: HPLC_MS.SET_LCMS_INTEGRATIONS_EXPORT, + payload: { lcmsIntegrationsExport: 'invalid' }, + } as any); + expect(s2.lcmsIntegrationsExport).toEqual('percent'); + }); + + it('sets LCMS curves and applies TIC fallback polarity', () => { + const action = { + type: CURVE.SET_ALL_CURVES, + payload: [ + createTicCurve('negative'), + createUvvisCurve(), + createMzCurve('positive'), + ], + }; + + const state = hplcMsReducer(undefined, action as any); + + expect(state.uvvis.listWaveLength).toEqual([210, 220]); + expect(state.uvvis.selectedWaveLength).toEqual(210); + expect(state.uvvis.currentSpectrum.pageValue).toEqual(210); + + expect(state.tic.available).toEqual({ + positive: false, + negative: true, + neutral: false, + }); + expect(state.tic.polarity).toEqual('negative'); + expect(state.tic.negative.data.x).toEqual([1, 2]); + + expect(state.ms.positive.peaks[0]).toEqual([ + { x: 100, y: 5 }, + { x: 101, y: 6 }, + ]); + expect(state.ms.positive.pageValues).toEqual([null]); + }); + + it('keeps previous state when SET_ALL_CURVES does not contain UVVIS', () => { + const hydrated = hplcMsReducer(undefined, { + type: CURVE.SET_ALL_CURVES, + payload: [createTicCurve('positive'), createUvvisCurve(), createMzCurve('positive')], + } as any); + expect(hydrated.uvvis.spectraList.length).toBeGreaterThan(0); + + const next = hplcMsReducer(hydrated, { + type: CURVE.SET_ALL_CURVES, + payload: [createMzCurve('negative')], + } as any); + + expect(next).toBe(hydrated); + }); + + it('clears hplc/ms state on HPLC_MS.CLEAR_STATE while preserving export preference', () => { + const hydrated = hplcMsReducer(undefined, { + type: CURVE.SET_ALL_CURVES, + payload: [createTicCurve('positive'), createUvvisCurve(), createMzCurve('positive')], + meta: { idDt: 'dataset-A' }, + } as any); + const withExport = hplcMsReducer(hydrated, { + type: HPLC_MS.SET_LCMS_INTEGRATIONS_EXPORT, + payload: { lcmsIntegrationsExport: 'both' }, + } as any); + expect(withExport.lcmsDatasetKey).toEqual('dataset-A'); + expect(withExport.uvvis.spectraList.length).toBeGreaterThan(0); + + const cleared = hplcMsReducer(withExport, { type: HPLC_MS.CLEAR_STATE } as any); + expect(cleared.lcmsDatasetKey).toEqual(null); + expect(cleared.uvvis.spectraList).toEqual([]); + expect(cleared.tic.available).toEqual({ positive: false, negative: false, neutral: false }); + expect(cleared.lcmsIntegrationsExport).toEqual('both'); + }); + + it('clears integrations and peaks for all UVVIS spectra', () => { + const hydrated = hplcMsReducer(undefined, { + type: CURVE.SET_ALL_CURVES, + payload: [createTicCurve('positive'), createUvvisCurve()], + } as any); + + const withSelectedSpectrum = hplcMsReducer(hydrated, { + type: HPLC_MS.UPDATE_UVVIS_WAVE_LENGTH, + payload: { target: { value: 220 } }, + } as any); + + expect(withSelectedSpectrum.uvvis.currentSpectrum?.pageValue).toEqual(220); + expect(withSelectedSpectrum.uvvis.spectraList[1].integrations.length).toBeGreaterThan(0); + expect(withSelectedSpectrum.uvvis.spectraList[1].peaks.length).toBeGreaterThan(0); + + const clearedIntegrations = hplcMsReducer(withSelectedSpectrum, { + type: HPLC_MS.CLEAR_INTEGRATION_ALL_HPLCMS, + } as any); + expect(clearedIntegrations.uvvis.spectraList.every((sp: any) => sp.integrations.length === 0)).toEqual(true); + + const clearedPeaks = hplcMsReducer(clearedIntegrations, { + type: HPLC_MS.CLEAR_ALL_PEAKS_HPLCMS, + } as any); + expect(clearedPeaks.uvvis.spectraList.every((sp: any) => sp.peaks.length === 0)).toEqual(true); + expect(clearedPeaks.uvvis.currentSpectrum?.pageValue).toEqual(220); + }); + + it('restores TIC RT from sessionStorage for the same dataset id', () => { + const payload = [ + createTicCurve('positive', [1, 2, 3], [10, 20, 30]), + createUvvisCurve(), + createMzCurve('positive'), + ]; + let state = hplcMsReducer(undefined, { + type: CURVE.SET_ALL_CURVES, + payload, + meta: { idDt: 'persist-rt-1' }, + } as any); + state = hplcMsReducer(state, { + type: HPLC_MS.UPDATE_CURRENT_PAGE_VALUE, + payload: { currentPageValue: 2 }, + } as any); + const cleared = hplcMsReducer(undefined, { type: '@@INIT' } as any); + expect(cleared.tic.currentPageValue).toEqual(null); + const reloaded = hplcMsReducer(cleared, { + type: CURVE.SET_ALL_CURVES, + payload, + meta: { idDt: 'persist-rt-1' }, + } as any); + expect(reloaded.tic.currentPageValue).toEqual(2); + }); + + it('restores TIC polarity and RT page from meta (ELN / JCAMP reopen)', () => { + const payload = [ + createTicCurve('negative', [1, 2, 3], [10, 20, 30]), + createUvvisCurve(), + createMzCurve('negative'), + ]; + const state = hplcMsReducer(undefined, { + type: CURVE.SET_ALL_CURVES, + payload, + meta: { lcmsPolarity: 'negative', lcmsMzPage: 2 }, + } as any); + expect(state.tic.polarity).toEqual('negative'); + expect(state.tic.currentPageValue).toEqual(2); + }); + + it('restores TIC RT from UVVIS ##$CSLCMSMZPAGE (lcms_mz_page on uvvis curve)', () => { + const uvvis = { ...createUvvisCurve(), lcms_mz_page: 2 }; + const payload = [ + createTicCurve('positive', [1, 2, 3], [10, 20, 30]), + uvvis, + createMzCurve('positive'), + ]; + const state = hplcMsReducer(undefined, { + type: CURVE.SET_ALL_CURVES, + payload, + } as any); + expect(state.tic.currentPageValue).toEqual(2); + }); + + it('lets a user-selected TIC page override UVVIS ##$CSLCMSMZPAGE after bootstrap', () => { + const uvvis = { ...createUvvisCurve(), lcms_mz_page: 2 }; + const payload = [ + createTicCurve('positive', [1, 2, 3], [10, 20, 30]), + uvvis, + createMzCurve('positive'), + ]; + let state = hplcMsReducer(undefined, { + type: CURVE.SET_ALL_CURVES, + payload, + } as any); + + expect(state.tic.currentPageValue).toEqual(2); + + state = hplcMsReducer(state, { + type: HPLC_MS.UPDATE_CURRENT_PAGE_VALUE, + payload: { currentPageValue: 3 }, + } as any); + + expect(state.tic.currentPageValue).toEqual(3); + + const afterReload = hplcMsReducer(state, { + type: CURVE.SET_ALL_CURVES, + payload, + } as any); + expect(afterReload.tic.currentPageValue).toEqual(3); + }); + + it('selects wavelength from meta.lcmsUvvisWavelength when nothing to restore from state', () => { + const payload = [ + createTicCurve('positive'), + createUvvisCurve(), + createMzCurve('positive'), + ]; + const state = hplcMsReducer(undefined, { + type: CURVE.SET_ALL_CURVES, + payload, + meta: { idDt: 'test-dt', lcmsUvvisWavelength: 220 }, + } as any); + expect(state.uvvis.selectedWaveLength).toEqual(220); + expect(state.uvvis.wavelengthIdx).toEqual(1); + expect(state.lcmsDatasetKey).toEqual('test-dt'); + }); + + it('preserves unsaved UVVIS peaks and integrations when SET_ALL_CURVES refreshes curves', () => { + const payload = [ + createTicCurve('positive', [1, 2, 3], [10, 20, 30]), + createUvvisCurveNoServerIntegrations(), + createMzCurve('positive'), + ]; + let state = hplcMsReducer(undefined, { type: CURVE.SET_ALL_CURVES, payload } as any); + state = hplcMsReducer(state, { + type: HPLC_MS.UPDATE_HPLCMS_PEAKS, + payload: { + spectrumId: state.uvvis.listWaveLength[0], + peaks: [{ x: 1.1, y: 0.11 }], + }, + } as any); + state = hplcMsReducer(state, { + type: HPLC_MS.UPDATE_HPLCMS_INTEGRATIONS, + payload: { + spectrumId: state.uvvis.listWaveLength[0], + integration: { + xExtent: { xL: 1, xU: 1.5 }, + data: { x: [1, 1.5], y: [0.1, 0.15] }, + }, + }, + } as any); + const refreshedPayload = [ + createTicCurve('positive', [1, 2, 3, 4], [10, 20, 30, 40]), + createUvvisCurveNoServerIntegrations(), + createMzCurve('positive'), + ]; + state = hplcMsReducer(state, { type: CURVE.SET_ALL_CURVES, payload: refreshedPayload } as any); + expect(state.uvvis.spectraList[0].peaks).toEqual([{ x: 1.1, y: 0.11 }]); + expect(state.uvvis.spectraList[0].integrations.length).toEqual(1); + }); + + it('preserves selected wavelength when SET_ALL_CURVES reloads the same UVVIS order', () => { + const payload = [ + createTicCurve('positive'), + createUvvisCurve(), + createMzCurve('positive'), + ]; + let state = hplcMsReducer(undefined, { type: CURVE.SET_ALL_CURVES, payload } as any); + state = hplcMsReducer(state, { + type: HPLC_MS.UPDATE_UVVIS_WAVE_LENGTH, + payload: { target: { value: 220 } }, + } as any); + expect(state.uvvis.selectedWaveLength).toEqual(220); + const reloaded = hplcMsReducer(state, { type: CURVE.SET_ALL_CURVES, payload } as any); + expect(reloaded.uvvis.selectedWaveLength).toEqual(220); + expect(reloaded.uvvis.wavelengthIdx).toEqual(1); + }); + + it('restores selected wavelength after a full reset with a new dataset id', () => { + const payload = [ + createTicCurve('positive'), + createUvvisCurve(), + createMzCurve('positive'), + ]; + let state = hplcMsReducer(undefined, { + type: CURVE.SET_ALL_CURVES, + payload, + meta: { idDt: 'before-save' }, + } as any); + state = hplcMsReducer(state, { + type: HPLC_MS.UPDATE_UVVIS_WAVE_LENGTH, + payload: { target: { value: 220 } }, + } as any); + + const resetState = hplcMsReducer(undefined, { type: '@@INIT' } as any); + const reloaded = hplcMsReducer(resetState, { + type: CURVE.SET_ALL_CURVES, + payload, + meta: { idDt: 'after-save' }, + } as any); + + expect(reloaded.uvvis.selectedWaveLength).toEqual(220); + expect(reloaded.uvvis.wavelengthIdx).toEqual(1); + }); + + it('aligns currentPageValue with the new MZ feature pageValue (cross-polarity case)', () => { + const initial = hplcMsReducer(undefined, { + type: CURVE.SET_ALL_CURVES, + payload: [ + createTicCurve('positive', [8.58, 8.59], [10, 20]), + createTicCurve('negative', [8.575, 8.585], [30, 40]), + createUvvisCurve(), + createMzCurve('positive', 8.58), + ], + } as any); + expect(initial.tic.polarity).toEqual('positive'); + expect(initial.tic.currentPageValue).toEqual(8.58); + + const polarityFlipped = hplcMsReducer( + { ...initial, tic: { ...initial.tic, polarity: 'negative' } }, + { + type: CURVE.SET_ALL_CURVES, + payload: [ + createTicCurve('positive', [8.58, 8.59], [10, 20]), + createTicCurve('negative', [8.575, 8.585], [30, 40]), + createUvvisCurve(), + createMzCurve('negative', 8.575), + ], + } as any, + ); + + expect(polarityFlipped.tic.polarity).toEqual('negative'); + expect(polarityFlipped.tic.currentPageValue).toEqual(8.575); + }); + + it('uvvis undo/redo restores peaks after UPDATE_HPLCMS_PEAKS', () => { + const payload = [ + createTicCurve('positive'), + createUvvisCurve(), + createMzCurve('positive'), + ]; + let state = hplcMsReducer(undefined, { type: CURVE.SET_ALL_CURVES, payload } as any); + const origPeaks = state.uvvis.spectraList[0].peaks; + state = hplcMsReducer(state, { + type: HPLC_MS.UPDATE_HPLCMS_PEAKS, + payload: { + spectrumId: state.uvvis.listWaveLength[0], + peaks: [...origPeaks, { x: 5, y: 0.5 }], + }, + } as any); + expect(state.uvvis.spectraList[0].peaks.length).toEqual(origPeaks.length + 1); + expect(state.uvvisEditHistory.past.length).toEqual(1); + state = hplcMsReducer(state, { type: HPLC_MS.UVVIS_UNDO } as any); + expect(state.uvvis.spectraList[0].peaks).toEqual(origPeaks); + expect(state.uvvisEditHistory.future.length).toEqual(1); + state = hplcMsReducer(state, { type: HPLC_MS.UVVIS_REDO } as any); + expect(state.uvvis.spectraList[0].peaks.length).toEqual(origPeaks.length + 1); + }); +}); diff --git a/src/__tests__/units/reducers/reducer_ui.test.tsx b/src/__tests__/units/reducers/reducer_ui.test.tsx new file mode 100644 index 00000000..74107c12 --- /dev/null +++ b/src/__tests__/units/reducers/reducer_ui.test.tsx @@ -0,0 +1,84 @@ +import uiReducer from "../../../reducers/reducer_ui"; +import { UI } from "../../../constants/action_type"; +import { LIST_UI_SWEEP_TYPE } from "../../../constants/list_ui"; + +describe('Test redux reducer_ui', () => { + it('keeps only the selected graph in zoom mode', () => { + const next = uiReducer(undefined, { + type: UI.SWEEP.SET_TYPE, + payload: { + graphIndex: 1, + sweepType: LIST_UI_SWEEP_TYPE.ZOOMIN, + }, + } as any); + + expect(next.zoom.sweepTypes).toEqual([ + LIST_UI_SWEEP_TYPE.ZOOMRESET, + LIST_UI_SWEEP_TYPE.ZOOMIN, + LIST_UI_SWEEP_TYPE.ZOOMRESET, + ]); + expect(next.sweepType).toEqual(LIST_UI_SWEEP_TYPE.ZOOMIN); + }); + + it('turns off UV/Vis zoom when TIC peak group selection starts', () => { + const next = uiReducer(undefined, { + type: UI.SWEEP.SET_TYPE, + payload: { + graphIndex: 1, + sweepType: LIST_UI_SWEEP_TYPE.PEAK_GROUP_SELECT, + }, + } as any); + + expect(next.zoom.sweepTypes).toEqual([ + LIST_UI_SWEEP_TYPE.ZOOMRESET, + LIST_UI_SWEEP_TYPE.PEAK_GROUP_SELECT, + LIST_UI_SWEEP_TYPE.ZOOMRESET, + ]); + expect(next.sweepType).toEqual(LIST_UI_SWEEP_TYPE.PEAK_GROUP_SELECT); + }); + + describe('LCMS synced zoom (lcmsSyncX)', () => { + const xExtent = { xL: 0.5, xU: 1.5 }; + + it('mirrors xExtent from graph 0 onto graph 1 when lcmsSyncX = 1', () => { + const next = uiReducer(undefined, { + type: UI.SWEEP.SELECT_ZOOMIN, + payload: { + graphIndex: 0, + zoomValue: { xExtent, yExtent: { yL: 0, yU: 1 } }, + lcmsSyncX: 1, + }, + } as any); + + expect(next.zoom.sweepExtent[0]).toEqual({ xExtent, yExtent: { yL: 0, yU: 1 } }); + expect(next.zoom.sweepExtent[1]).toEqual({ xExtent, yExtent: false }); + }); + + it('mirrors xExtent from graph 1 onto graph 0 when lcmsSyncX = 0', () => { + const next = uiReducer(undefined, { + type: UI.SWEEP.SELECT_ZOOMIN, + payload: { + graphIndex: 1, + zoomValue: { xExtent, yExtent: { yL: 0, yU: 1 } }, + lcmsSyncX: 0, + }, + } as any); + + expect(next.zoom.sweepExtent[1]).toEqual({ xExtent, yExtent: { yL: 0, yU: 1 } }); + expect(next.zoom.sweepExtent[0]).toEqual({ xExtent, yExtent: false }); + }); + + it('does not touch the other graph when lcmsSyncX is absent', () => { + const next = uiReducer(undefined, { + type: UI.SWEEP.SELECT_ZOOMIN, + payload: { + graphIndex: 0, + zoomValue: { xExtent, yExtent: { yL: 0, yU: 1 } }, + }, + } as any); + + expect(next.zoom.sweepExtent[0]).toEqual({ xExtent, yExtent: { yL: 0, yU: 1 } }); + expect(next.zoom.sweepExtent[1]).toEqual({ xExtent: false, yExtent: false }); + }); + }); +}); diff --git a/src/__tests__/units/sagas/saga_ui_lcms.test.tsx b/src/__tests__/units/sagas/saga_ui_lcms.test.tsx new file mode 100644 index 00000000..28acaca9 --- /dev/null +++ b/src/__tests__/units/sagas/saga_ui_lcms.test.tsx @@ -0,0 +1,398 @@ +import { put, select } from 'redux-saga/effects'; + +import managerSagas, { shouldDisplayLcmsSubViewerAt } from '../../../sagas/saga_ui'; +import { + UI, EDITPEAK, INTEGRATION, HPLC_MS, +} from '../../../constants/action_type'; +import { LIST_UI_SWEEP_TYPE } from '../../../constants/list_ui'; +import { LIST_LAYOUT } from '../../../constants/list_layout'; + +const findSagaByActionType = (actionType: string) => { + const entry = managerSagas.find((s: any) => s?.payload?.args?.[0] === actionType); + if (!entry) { + throw new Error(`No saga registered for ${actionType}`); + } + return (entry as any).payload.args[1]; +}; + +const selectUiSweep = findSagaByActionType(UI.SWEEP.SELECT); +const clickUiTarget = findSagaByActionType(UI.CLICK_TARGET); + +const drainSelects = ( + iter: any, + values: any[], +) => { + let { value, done } = iter.next(); + let i = 0; + while (!done && value && value.type === 'SELECT') { + if (i >= values.length) { + throw new Error('Not enough mock values for selects'); + } + ({ value, done } = iter.next(values[i])); + i += 1; + } + return { value, done }; +}; + +describe('saga_ui — LCMS branches in selectUiSweep', () => { + const baseState = { + ui: { + sweepType: LIST_UI_SWEEP_TYPE.ZOOMIN, + zoom: { graphIndex: 0 }, + }, + curve: { curveIdx: 0 }, + hplcMs: { uvvis: { listWaveLength: [230, 254], selectedWaveLength: 254 } }, + layout: LIST_LAYOUT.LC_MS, + }; + + it('ZOOMIN on graph 0 in LCMS dispatches lcmsSyncX = 1', () => { + const action = { + type: UI.SWEEP.SELECT, + payload: { xExtent: { xL: 0.1, xU: 0.5 } }, + } as any; + const iter = selectUiSweep(action); + + const { value } = drainSelects(iter, [ + baseState.ui, + baseState.curve, + baseState.hplcMs, + baseState.layout, + ]); + + expect(value).toEqual(put({ + type: UI.SWEEP.SELECT_ZOOMIN, + payload: { + graphIndex: 0, + zoomValue: action.payload, + lcmsSyncX: 1, + }, + })); + }); + + it('ZOOMIN on graph 1 in LCMS dispatches lcmsSyncX = 0', () => { + const action = { + type: UI.SWEEP.SELECT, + payload: { xExtent: { xL: 0.1, xU: 0.5 } }, + } as any; + const iter = selectUiSweep(action); + + const { value } = drainSelects(iter, [ + { ...baseState.ui, zoom: { graphIndex: 1 } }, + baseState.curve, + baseState.hplcMs, + baseState.layout, + ]); + + expect(value).toEqual(put({ + type: UI.SWEEP.SELECT_ZOOMIN, + payload: { + graphIndex: 1, + zoomValue: action.payload, + lcmsSyncX: 0, + }, + })); + }); + + it('ZOOMIN outside LC_MS layout dispatches plain payload (no lcmsSyncX)', () => { + const action = { + type: UI.SWEEP.SELECT, + payload: { xExtent: { xL: 0.1, xU: 0.5 } }, + } as any; + const iter = selectUiSweep(action); + + const { value } = drainSelects(iter, [ + baseState.ui, + baseState.curve, + { uvvis: {} }, + LIST_LAYOUT.H1, + ]); + + expect(value).toEqual(put({ + type: UI.SWEEP.SELECT_ZOOMIN, + payload: action.payload, + })); + }); + + it('ZOOMRESET on graph 0 in LCMS resets graphs 0 then 1', () => { + const action = { + type: UI.SWEEP.SELECT, + payload: { graphIndex: 0 }, + } as any; + const iter = selectUiSweep(action); + + const { value: first } = drainSelects(iter, [ + { ...baseState.ui, sweepType: LIST_UI_SWEEP_TYPE.ZOOMRESET }, + baseState.curve, + baseState.hplcMs, + baseState.layout, + ]); + expect(first).toEqual(put({ + type: UI.SWEEP.SELECT_ZOOMRESET, + payload: { graphIndex: 0 }, + })); + const { value: second } = iter.next(); + expect(second).toEqual(put({ + type: UI.SWEEP.SELECT_ZOOMRESET, + payload: { graphIndex: 1 }, + })); + }); + + it('INTEGRATION_ADD on LCMS with selectedWaveLength dispatches HPLC_MS update', () => { + const action = { + type: UI.SWEEP.SELECT, + payload: { xL: 1, xU: 2 }, + } as any; + const iter = selectUiSweep(action); + + const { value } = drainSelects(iter, [ + { ...baseState.ui, sweepType: LIST_UI_SWEEP_TYPE.INTEGRATION_ADD }, + baseState.curve, + baseState.hplcMs, + baseState.layout, + ]); + + expect(value).toEqual(put({ + type: HPLC_MS.UPDATE_HPLCMS_INTEGRATIONS, + payload: { + spectrumId: 254, + integration: action.payload, + }, + })); + }); + + it('INTEGRATION_ADD outside LCMS keeps the generic UI integration path', () => { + const action = { + type: UI.SWEEP.SELECT, + payload: { xL: 1, xU: 2 }, + } as any; + const iter = selectUiSweep(action); + + const { value } = drainSelects(iter, [ + { ...baseState.ui, sweepType: LIST_UI_SWEEP_TYPE.INTEGRATION_ADD }, + baseState.curve, + { uvvis: {} }, + LIST_LAYOUT.H1, + ]); + + expect(value).toEqual(put({ + type: UI.SWEEP.SELECT_INTEGRATION, + payload: { newData: action.payload, curveIdx: baseState.curve.curveIdx }, + })); + }); +}); + +describe('saga_ui — clickUiTarget LCMS branches', () => { + const lcmsState = { + uvvis: { selectedWaveLength: 280, currentSpectrum: { peaks: [] } }, + }; + + it('opens the LCMS subviewer when click comes from TIC in zoom mode', () => { + const action = { + type: UI.CLICK_TARGET, + payload: { x: 1.5, y: 0 }, + sourceHint: 'lcms_tic', + onPeak: false, + onPecker: false, + voltammetryPeakIdx: 0, + } as any; + const iter = clickUiTarget(action); + + const { value } = drainSelects(iter, [ + LIST_UI_SWEEP_TYPE.ZOOMIN, + { curveIdx: 0 }, + lcmsState, + LIST_LAYOUT.LC_MS, + ]); + + expect(value).toEqual(put({ + type: UI.SUB_VIEWER.DISPLAY_VIEWER_AT, + payload: action.payload, + })); + }); + + it('PEAK_ADD on LCMS dispatches UPDATE_HPLCMS_PEAKS with selected wavelength', () => { + const action = { + type: UI.CLICK_TARGET, + payload: { x: 5, y: 10 }, + sourceHint: null, + onPeak: false, + onPecker: false, + voltammetryPeakIdx: 0, + } as any; + const iter = clickUiTarget(action); + + const { value } = drainSelects(iter, [ + LIST_UI_SWEEP_TYPE.PEAK_ADD, + { curveIdx: 0 }, + lcmsState, + LIST_LAYOUT.LC_MS, + ]); + + expect(value).toEqual(put({ + type: HPLC_MS.UPDATE_HPLCMS_PEAKS, + payload: { + spectrumId: 280, + peaks: [action.payload], + }, + })); + }); + + it('PEAK_ADD on LCMS without selected wavelength is a no-op', () => { + const action = { + type: UI.CLICK_TARGET, + payload: { x: 5, y: 10 }, + sourceHint: null, + onPeak: false, + onPecker: false, + voltammetryPeakIdx: 0, + } as any; + const iter = clickUiTarget(action); + + const { value, done } = drainSelects(iter, [ + LIST_UI_SWEEP_TYPE.PEAK_ADD, + { curveIdx: 0 }, + { uvvis: { selectedWaveLength: null, currentSpectrum: { peaks: [] } } }, + LIST_LAYOUT.LC_MS, + ]); + expect(done).toEqual(true); + expect(value).toBeUndefined(); + }); + + it('PEAK_DELETE on LCMS uses REMOVE_HPLCMS_PEAK for the selected wavelength', () => { + const action = { + type: UI.CLICK_TARGET, + payload: { x: 5, y: 10 }, + sourceHint: null, + onPeak: true, + onPecker: false, + voltammetryPeakIdx: 0, + } as any; + const iter = clickUiTarget(action); + + const { value } = drainSelects(iter, [ + LIST_UI_SWEEP_TYPE.PEAK_DELETE, + { curveIdx: 0 }, + lcmsState, + LIST_LAYOUT.LC_MS, + ]); + + expect(value).toEqual(put({ + type: HPLC_MS.REMOVE_HPLCMS_PEAK, + payload: { + spectrumId: 280, + peak: action.payload, + }, + })); + }); + + it('PEAK_DELETE outside LCMS falls back to EDITPEAK.ADD_NEGATIVE', () => { + const action = { + type: UI.CLICK_TARGET, + payload: { x: 5, y: 10 }, + sourceHint: null, + onPeak: true, + onPecker: false, + voltammetryPeakIdx: 0, + } as any; + const iter = clickUiTarget(action); + + const { value } = drainSelects(iter, [ + LIST_UI_SWEEP_TYPE.PEAK_DELETE, + { curveIdx: 0 }, + { uvvis: {} }, + LIST_LAYOUT.H1, + ]); + + expect(value).toEqual(put({ + type: EDITPEAK.ADD_NEGATIVE, + payload: { dataToAdd: action.payload, curveIdx: 0 }, + })); + }); + + it('INTEGRATION_RM on LCMS with selected wavelength removes via HPLC_MS update', () => { + const action = { + type: UI.CLICK_TARGET, + payload: { x: 1, y: 1 }, + sourceHint: null, + onPeak: true, + onPecker: false, + voltammetryPeakIdx: 0, + } as any; + const iter = clickUiTarget(action); + + const { value } = drainSelects(iter, [ + LIST_UI_SWEEP_TYPE.INTEGRATION_RM, + { curveIdx: 0 }, + lcmsState, + LIST_LAYOUT.LC_MS, + ]); + + expect(value).toEqual(put({ + type: HPLC_MS.UPDATE_HPLCMS_INTEGRATIONS, + payload: { + spectrumId: 280, + integration: action.payload, + remove: true, + }, + })); + }); + + it('INTEGRATION_RM outside LCMS falls back to INTEGRATION.RM_ONE', () => { + const action = { + type: UI.CLICK_TARGET, + payload: { x: 1, y: 1 }, + sourceHint: null, + onPeak: true, + onPecker: false, + voltammetryPeakIdx: 0, + } as any; + const iter = clickUiTarget(action); + + const { value } = drainSelects(iter, [ + LIST_UI_SWEEP_TYPE.INTEGRATION_RM, + { curveIdx: 0 }, + { uvvis: {} }, + LIST_LAYOUT.H1, + ]); + + expect(value).toEqual(put({ + type: INTEGRATION.RM_ONE, + payload: { dataToRemove: action.payload, curveIdx: 0 }, + })); + }); +}); + +describe('shouldDisplayLcmsSubViewerAt', () => { + it('matches each whitelisted sweep type when click comes from TIC', () => { + [ + LIST_UI_SWEEP_TYPE.ZOOMIN, + LIST_UI_SWEEP_TYPE.ZOOMRESET, + LIST_UI_SWEEP_TYPE.PEAK_GROUP_SELECT, + ].forEach((uiSweepType) => { + expect(shouldDisplayLcmsSubViewerAt({ + isLcmsLayout: true, + payload: { x: 1.234, y: 0 }, + sourceHint: 'lcms_tic', + uiSweepType, + })).toEqual(true); + }); + }); + + it('rejects when layout is not LCMS', () => { + expect(shouldDisplayLcmsSubViewerAt({ + isLcmsLayout: false, + payload: { x: 1.234, y: 0 }, + sourceHint: 'lcms_tic', + uiSweepType: LIST_UI_SWEEP_TYPE.ZOOMIN, + })).toEqual(false); + }); + + it('rejects when payload x is not finite', () => { + expect(shouldDisplayLcmsSubViewerAt({ + isLcmsLayout: true, + payload: { x: null, y: 0 }, + sourceHint: 'lcms_tic', + uiSweepType: LIST_UI_SWEEP_TYPE.ZOOMIN, + })).toEqual(false); + }); +}); diff --git a/src/actions/curve.js b/src/actions/curve.js index 853818be..39b7d58b 100644 --- a/src/actions/curve.js +++ b/src/actions/curve.js @@ -7,10 +7,11 @@ const selectCurve = (payload) => ( } ); -const setAllCurves = (payload) => ( +const setAllCurves = (payload, meta) => ( { type: CURVE.SET_ALL_CURVES, payload, + ...(meta && typeof meta === 'object' ? { meta } : {}), } ); diff --git a/src/actions/hplc_ms.js b/src/actions/hplc_ms.js new file mode 100644 index 00000000..235df529 --- /dev/null +++ b/src/actions/hplc_ms.js @@ -0,0 +1,59 @@ +import { HPLC_MS } from '../constants/action_type'; + +const normalizeTicPolarity = (value) => { + if (value === 0 || value === '0') return 'positive'; + if (value === 1 || value === '1') return 'negative'; + if (value === 2 || value === '2') return 'neutral'; + if (value === 'positive' || value === 'negative' || value === 'neutral') return value; + return 'positive'; +}; + +export const setLcmsIntegrationsExport = (lcmsIntegrationsExport) => ({ + type: HPLC_MS.SET_LCMS_INTEGRATIONS_EXPORT, + payload: { lcmsIntegrationsExport }, +}); + +export const selectWavelength = (payload) => ({ + type: HPLC_MS.UPDATE_UVVIS_WAVE_LENGTH, + payload, +}); + +export const changeTic = (payload) => { + const rawValue = payload?.target?.value ?? payload?.polarity ?? 'positive'; + const polarity = normalizeTicPolarity(rawValue); + return { + type: HPLC_MS.SELECT_TIC_CURVE, + payload: { + polarity, + }, + }; +}; + +export const updateCurrentPageValue = (currentPageValue) => ({ + type: HPLC_MS.UPDATE_CURRENT_PAGE_VALUE, + payload: { + currentPageValue, + }, +}); + +export const uvvisUndo = () => ({ + type: HPLC_MS.UVVIS_UNDO, +}); + +export const uvvisRedo = () => ({ + type: HPLC_MS.UVVIS_REDO, +}); + +export const clearIntegrationAllHplcMs = (payload) => ({ + type: HPLC_MS.CLEAR_INTEGRATION_ALL_HPLCMS, + payload, +}); + +export const clearAllPeaksHplcMs = (payload) => ({ + type: HPLC_MS.CLEAR_ALL_PEAKS_HPLCMS, + payload, +}); + +export const clearHplcMsState = () => ({ + type: HPLC_MS.CLEAR_STATE, +}); diff --git a/src/actions/ui.js b/src/actions/ui.js index 46424f92..24823199 100644 --- a/src/actions/ui.js +++ b/src/actions/ui.js @@ -29,16 +29,27 @@ const scrollUiWheel = (payload) => ( } ); -const clickUiTarget = (payload, onPeak, voltammetryPeakIdx = 0, jcampIdx = 0, onPecker = false) => ( - { - type: UI.CLICK_TARGET, - payload, - onPeak, - voltammetryPeakIdx, - jcampIdx, - onPecker, - } -); +const clickUiTarget = ( + payload, + onPeak, + voltammetryPeakIdx = 0, + jcampIdx = 0, + onPecker = false, + sourceHint = null, +) => ({ + type: UI.CLICK_TARGET, + payload, + onPeak, + voltammetryPeakIdx, + jcampIdx, + onPecker, + sourceHint, +}); + +const displaySubViewerAt = (payload) => ({ + type: UI.SUB_VIEWER.DISPLAY_VIEWER_AT, + payload: payload == null ? { x: null, y: null } : payload, +}); export { setUiViewerType, @@ -46,4 +57,5 @@ export { selectUiSweep, scrollUiWheel, clickUiTarget, + displaySubViewerAt, }; diff --git a/src/app.js b/src/app.js index 68bff55a..8017f46e 100644 --- a/src/app.js +++ b/src/app.js @@ -22,7 +22,12 @@ const store = compose( applyMiddleware(...middlewares), )(createStore)(reducers); -sagaMiddleware.run(sagas); +try { + sagaMiddleware.run(sagas); +} catch (error) { + // Keep startup failure visible without crashing silently. + console.error('[SpectraEditor] Failed to start sagas', error); // eslint-disable-line no-console +} // - - - helper - - - const ensureQuillDelta = (descs) => { @@ -31,11 +36,16 @@ const ensureQuillDelta = (descs) => { }; // - - - React - - - +// LC/MS: when `onLcmsPageRequest` is set, the host (e.g. ELN) must reload `multiEntities` +// with MS data for the requested RT/polarity. Triggers include `user_click`, `initial`, +// and `tic_polarity` (TIC polarity dropdown). The standalone demo in `src/index.js` +// implements a local mock via `buildLcmsStandaloneMultiEntities`. const SpectraEditor = ({ entity, others, cLabel, xLabel, yLabel, operations, forecast, molSvg, editorOnly, descriptions, exactMass, canChangeDescription, onDescriptionChanged, multiEntities, multiMolSvgs, entityFileNames, userManualLink, + onLcmsPageRequest, }) => ( @@ -57,6 +67,7 @@ const SpectraEditor = ({ exactMass={exactMass} canChangeDescription={canChangeDescription} onDescriptionChanged={onDescriptionChanged} + onLcmsPageRequest={onLcmsPageRequest} /> @@ -81,14 +92,15 @@ SpectraEditor.propTypes = { editorOnly: PropTypes.bool, canChangeDescription: PropTypes.bool, onDescriptionChanged: PropTypes.func, + onLcmsPageRequest: PropTypes.func, userManualLink: PropTypes.object, exactMass: PropTypes.string, }; SpectraEditor.defaultProps = { others: { others: [], addOthersCb: false }, - multiEntities: false, - entityFileNames: false, + multiEntities: [], + entityFileNames: [], cLabel: '', xLabel: '', yLabel: '', @@ -101,8 +113,9 @@ SpectraEditor.defaultProps = { editorOnly: false, canChangeDescription: false, userManualLink: {}, + onLcmsPageRequest: null, }; export { - SpectraEditor, FN, + SpectraEditor, FN, store, }; diff --git a/src/components/cmd_bar/01_viewer.js b/src/components/cmd_bar/01_viewer.js index d1dff1a2..3837f6bc 100644 --- a/src/components/cmd_bar/01_viewer.js +++ b/src/components/cmd_bar/01_viewer.js @@ -33,35 +33,39 @@ const Viewer = ({ return ( Spectrum Viewer}> - - - + + + + + { hideCmdAnaViewerSt ? null : ( Analysis Viewer}> - - - + + + + + ) } diff --git a/src/components/cmd_bar/03_peak.js b/src/components/cmd_bar/03_peak.js index ddcee5e1..aa219869 100644 --- a/src/components/cmd_bar/03_peak.js +++ b/src/components/cmd_bar/03_peak.js @@ -18,6 +18,8 @@ import { LIST_UI_SWEEP_TYPE } from '../../constants/list_ui'; import TriBtn from './tri_btn'; import { clearAllPeaks } from '../../actions/edit_peak'; import { extractAutoPeaks } from '../../helpers/extractPeaksEdit'; +import { clearAllPeaksHplcMs } from '../../actions/hplc_ms'; +import { LIST_LAYOUT } from '../../constants/list_layout'; const styles = () => ( Object.assign( @@ -32,29 +34,33 @@ const Peak = ({ isFocusRmPeakSt, disableRmPeakSt, isFocusSetRefSt, disableSetRefSt, isHandleMaxAndMinPeaksSt, - cyclicVotaSt, curveSt, + cyclicVoltaState, curveSt, clearAllPeaksAct, feature, - editPeakSt, thresSt, shiftSt, layoutSt, + editPeakSt, thresSt, shiftSt, layoutSt, clearAllPeaksHplcMsAct, }) => { let onSweepPeakAdd = () => setUiSweepTypeAct(LIST_UI_SWEEP_TYPE.PEAK_ADD); - let onSweepPeakDELETE = () => setUiSweepTypeAct(LIST_UI_SWEEP_TYPE.PEAK_DELETE); + let onSweepPeakDelete = () => setUiSweepTypeAct(LIST_UI_SWEEP_TYPE.PEAK_DELETE); let onSweepAnchorShift = () => setUiSweepTypeAct(LIST_UI_SWEEP_TYPE.ANCHOR_SHIFT); const { curveIdx } = curveSt; const onClearAll = () => { - const dataPeaks = extractAutoPeaks(feature, thresSt, shiftSt, layoutSt); - clearAllPeaksAct({ curveIdx, dataPeaks }); + if (layoutSt === LIST_LAYOUT.LC_MS) { + clearAllPeaksHplcMsAct(); + } else { + const dataPeaks = extractAutoPeaks(feature, thresSt, shiftSt, layoutSt); + clearAllPeaksAct({ curveIdx, dataPeaks }); + } }; if (isHandleMaxAndMinPeaksSt) { - const { spectraList } = cyclicVotaSt; + const { spectraList } = cyclicVoltaState; const spectra = spectraList[curveIdx]; if (spectra) { const { isWorkMaxPeak } = spectra; if (isWorkMaxPeak) { onSweepPeakAdd = () => setUiSweepTypeAct(LIST_UI_SWEEP_TYPE.CYCLIC_VOLTA_ADD_MAX_PEAK, curveIdx); - onSweepPeakDELETE = () => setUiSweepTypeAct(LIST_UI_SWEEP_TYPE.CYCLIC_VOLTA_RM_MAX_PEAK, curveIdx); + onSweepPeakDelete = () => setUiSweepTypeAct(LIST_UI_SWEEP_TYPE.CYCLIC_VOLTA_RM_MAX_PEAK, curveIdx); } else { onSweepPeakAdd = () => setUiSweepTypeAct(LIST_UI_SWEEP_TYPE.CYCLIC_VOLTA_ADD_MIN_PEAK, curveIdx); - onSweepPeakDELETE = () => setUiSweepTypeAct(LIST_UI_SWEEP_TYPE.CYCLIC_VOLTA_RM_MIN_PEAK, curveIdx); + onSweepPeakDelete = () => setUiSweepTypeAct(LIST_UI_SWEEP_TYPE.CYCLIC_VOLTA_RM_MIN_PEAK, curveIdx); } onSweepAnchorShift = () => setUiSweepTypeAct(LIST_UI_SWEEP_TYPE.CYCLIC_VOLTA_SET_REF, curveIdx); } @@ -88,7 +94,7 @@ const Peak = ({ ) } disabled={disableRmPeakSt} - onClick={onSweepPeakDELETE} + onClick={onSweepPeakDelete} > P- @@ -135,7 +141,7 @@ const mapStateToProps = (state, props) => ( // eslint-disable-line isFocusSetRefSt: state.ui.sweepType === LIST_UI_SWEEP_TYPE.ANCHOR_SHIFT || state.ui.sweepType === LIST_UI_SWEEP_TYPE.CYCLIC_VOLTA_SET_REF, disableSetRefSt: Cfg.btnCmdSetRef(state.layout), isHandleMaxAndMinPeaksSt: !Cfg.hidePanelCyclicVolta(state.layout), - cyclicVotaSt: state.cyclicvolta, + cyclicVoltaState: state.cyclicvolta, curveSt: state.curve, editPeakSt: state.editPeak.present, thresSt: state.threshold.list[state.curve.curveIdx], @@ -148,6 +154,7 @@ const mapDispatchToProps = (dispatch) => ( bindActionCreators({ setUiSweepTypeAct: setUiSweepType, clearAllPeaksAct: clearAllPeaks, + clearAllPeaksHplcMsAct: clearAllPeaksHplcMs, }, dispatch) ); @@ -161,7 +168,7 @@ Peak.propTypes = { disableSetRefSt: PropTypes.bool.isRequired, setUiSweepTypeAct: PropTypes.func.isRequired, isHandleMaxAndMinPeaksSt: PropTypes.bool.isRequired, - cyclicVotaSt: PropTypes.object.isRequired, + cyclicVoltaState: PropTypes.object.isRequired, curveSt: PropTypes.object.isRequired, clearAllPeaksAct: PropTypes.func.isRequired, feature: PropTypes.object.isRequired, @@ -169,6 +176,7 @@ Peak.propTypes = { thresSt: PropTypes.object.isRequired, layoutSt: PropTypes.string.isRequired, shiftSt: PropTypes.object.isRequired, + clearAllPeaksHplcMsAct: PropTypes.func.isRequired, }; export default compose( diff --git a/src/components/cmd_bar/04_integration.js b/src/components/cmd_bar/04_integration.js index 77356585..5c91eff5 100644 --- a/src/components/cmd_bar/04_integration.js +++ b/src/components/cmd_bar/04_integration.js @@ -17,6 +17,10 @@ import { mdiReflectVertical, mdiMathIntegral } from '@mdi/js'; import { clearIntegrationAll, setIntegrationFkr, } from '../../actions/integration'; +import { + clearIntegrationAllHplcMs, +} from '../../actions/hplc_ms'; + import { setUiSweepType } from '../../actions/ui'; import { LIST_UI_SWEEP_TYPE, @@ -25,6 +29,7 @@ import Cfg from '../../helpers/cfg'; import TriBtn from './tri_btn'; import { MuButton, commonStyle, focusStyle } from './common'; import Format from '../../helpers/format'; +import { LIST_LAYOUT } from '../../constants/list_layout'; const styles = () => ( Object.assign( @@ -93,13 +98,19 @@ const Integration = ({ classes, ignoreRef, isDisableSt, isFocusAddIntgSt, isFocusRmIntgSt, isFocusSetRefSt, setUiSweepTypeAct, setIntegrationFkrAct, clearIntegrationAllAct, - curveSt, integrationSt, + curveSt, integrationSt, clearIntegrationAllHplcMsAct, layoutSt, }) => { const onSweepIntegtAdd = () => setUiSweepTypeAct(LIST_UI_SWEEP_TYPE.INTEGRATION_ADD); const onSweepIntegtRm = () => setUiSweepTypeAct(LIST_UI_SWEEP_TYPE.INTEGRATION_RM); const onSweepIntegtSR = () => setUiSweepTypeAct(LIST_UI_SWEEP_TYPE.INTEGRATION_SET_REF); const { curveIdx } = curveSt; - const onClearAll = () => clearIntegrationAllAct({ curveIdx }); + const onClearAll = () => { + if (layoutSt === LIST_LAYOUT.LC_MS) { + clearIntegrationAllHplcMsAct(); + } else { + clearIntegrationAllAct({ curveIdx }); + } + }; return ( @@ -200,6 +211,7 @@ const mapStateToProps = (state, props) => ( // eslint-disable-line ignoreRef: Format.isHplcUvVisLayout(state.layout), curveSt: state.curve, integrationSt: state.integration.present, + layoutSt: state.layout, } ); @@ -208,6 +220,7 @@ const mapDispatchToProps = (dispatch) => ( setUiSweepTypeAct: setUiSweepType, setIntegrationFkrAct: setIntegrationFkr, clearIntegrationAllAct: clearIntegrationAll, + clearIntegrationAllHplcMsAct: clearIntegrationAllHplcMs, }, dispatch) ); @@ -221,8 +234,10 @@ Integration.propTypes = { setUiSweepTypeAct: PropTypes.func.isRequired, setIntegrationFkrAct: PropTypes.func.isRequired, clearIntegrationAllAct: PropTypes.func.isRequired, + clearIntegrationAllHplcMsAct: PropTypes.func.isRequired, curveSt: PropTypes.object.isRequired, integrationSt: PropTypes.object.isRequired, + layoutSt: PropTypes.string.isRequired, }; export default connect( diff --git a/src/components/cmd_bar/08_peak_group.js b/src/components/cmd_bar/08_peak_group.js new file mode 100644 index 00000000..118df4d7 --- /dev/null +++ b/src/components/cmd_bar/08_peak_group.js @@ -0,0 +1,86 @@ +/* eslint-disable prefer-object-spread, react/function-component-definition */ +import React from 'react'; +import { connect } from 'react-redux'; +import { bindActionCreators, compose } from 'redux'; +import classNames from 'classnames'; +import PropTypes from 'prop-types'; + +import withStyles from '@mui/styles/withStyles'; +import Tooltip from '@mui/material/Tooltip'; +import TroubleshootIcon from '@mui/icons-material/Troubleshoot'; + +import { setUiSweepType } from '../../actions/ui'; +import { MuButton, commonStyle, focusStyle } from './common'; +import { LIST_UI_SWEEP_TYPE } from '../../constants/list_ui'; +import Format from '../../helpers/format'; + +const styles = () => ( + Object.assign( + {}, + commonStyle, + ) +); + +const PeakGroup = ({ + classes, feature, isSelectingGroupSt, setUiSweepTypeAct, + graphIndex, +}) => { + if (!feature || !feature.operation) { + return null; + } + const { operation } = feature; + const { layout } = operation || {}; + if (!layout || !Format.isLCMsLayout(layout)) { + return null; + } + const onSelectPeakGroup = () => { + const payload = { + graphIndex, + sweepType: LIST_UI_SWEEP_TYPE.PEAK_GROUP_SELECT, + }; + setUiSweepTypeAct(payload); + }; + + return ( + + Select peak group}> + + + + + + ); +}; + +const mapStateToProps = (state, _) => ( // eslint-disable-line + { + isSelectingGroupSt: state.ui.sweepType === LIST_UI_SWEEP_TYPE.PEAK_GROUP_SELECT, + } +); + +const mapDispatchToProps = (dispatch) => ( + bindActionCreators({ + setUiSweepTypeAct: setUiSweepType, + }, dispatch) +); + +PeakGroup.propTypes = { + classes: PropTypes.object.isRequired, + feature: PropTypes.object.isRequired, + isSelectingGroupSt: PropTypes.bool.isRequired, + setUiSweepTypeAct: PropTypes.func.isRequired, + graphIndex: PropTypes.number.isRequired, +}; + +export default compose( + connect(mapStateToProps, mapDispatchToProps), + withStyles(styles), +)(PeakGroup); diff --git a/src/components/cmd_bar/common.js b/src/components/cmd_bar/common.js index 824e61a2..c2819cfe 100644 --- a/src/components/cmd_bar/common.js +++ b/src/components/cmd_bar/common.js @@ -19,13 +19,15 @@ const useStyles = makeStyles((theme) => ({ }, })); -const MuButton = (props) => { +const MuButton = React.forwardRef((props, ref) => { const classes = useStyles(); const { className, ...other } = props; return ( - + +