Search
We found 1 example(s) We found example(s) We couldn't find
Tag results Tag results for tag:
[{"id":"lcjs-example-0000-lineSeries","title":"Line Series","tags":["xy","line","legendbox"],"description":"Example showcasing the use of Line Series. Also known as Line Graph and Line Chart.","src":"/*\r\n * LightningChartJS example that showcases a simple XY line series.\r\n */\r\n// Import LightningChartJS\r\nconst lcjs = require('@arction/lcjs')\r\n\r\n// Extract required parts from LightningChartJS.\r\nconst {\r\n lightningChart,\r\n SolidLine,\r\n SolidFill,\r\n ColorRGBA,\r\n AxisTickStrategies,\r\n UIOrigins,\r\n DataPatterns,\r\n Themes\r\n} = lcjs\r\n\r\n// Decide on an origin for DateTime axis.\r\nconst dateOrigin = new Date(2018, 8, 1)\r\n\r\n// ----- Cache used styles -----\r\nconst customStrokeStyle = new SolidLine({ fillStyle: new SolidFill({ color: ColorRGBA(200, 50, 50) }), thickness: 2 })\r\n\r\n// Create a XY Chart.\r\nconst chart = lightningChart().ChartXY({\r\n // theme: Themes.dark\r\n})\r\n// Modify the default X Axis to use DateTime TickStrategy, and set the origin for the DateTime Axis.\r\nchart.getDefaultAxisX().setTickStrategy(AxisTickStrategies.DateTime, (tickStrategy) => tickStrategy.setDateOrigin(dateOrigin))\r\n\r\nchart.setPadding({\r\n right: 50\r\n})\r\n .setTitle('Diesel and Gasoline Price Comparison')\r\n\r\nconst diesel = [\r\n { x: 0, y: 1.52 },\r\n { x: 1, y: 1.52 },\r\n { x: 2, y: 1.52 },\r\n { x: 3, y: 1.58 },\r\n { x: 4, y: 2.00 },\r\n { x: 5, y: 2.00 },\r\n { x: 6, y: 2.00 },\r\n { x: 7, y: 2.00 },\r\n { x: 8, y: 2.26 },\r\n { x: 9, y: 1.90 },\r\n { x: 10, y: 1.90 },\r\n { x: 11, y: 1.90 },\r\n { x: 12, y: 1.90 },\r\n { x: 13, y: 1.60 },\r\n { x: 14, y: 1.60 },\r\n { x: 15, y: 1.60 },\r\n { x: 16, y: 1.00 },\r\n { x: 17, y: 1.00 },\r\n { x: 18, y: 1.00 },\r\n { x: 19, y: 1.74 },\r\n { x: 20, y: 1.47 },\r\n { x: 21, y: 1.47 },\r\n { x: 22, y: 1.47 },\r\n { x: 23, y: 1.74 },\r\n { x: 24, y: 1.74 },\r\n { x: 25, y: 1.74 },\r\n { x: 27, y: 1.5 },\r\n { x: 28, y: 1.5 },\r\n { x: 29, y: 1.5 }\r\n]\r\n\r\nconst gasoline = [\r\n { x: 0, y: 1.35 },\r\n { x: 1, y: 1.35 },\r\n { x: 2, y: 1.35 },\r\n { x: 3, y: 1.35 },\r\n { x: 4, y: 1.90 },\r\n { x: 5, y: 1.90 },\r\n { x: 6, y: 1.90 },\r\n { x: 7, y: 1.92 },\r\n { x: 8, y: 1.50 },\r\n { x: 9, y: 1.50 },\r\n { x: 10, y: 1.3 },\r\n { x: 11, y: 1.3 },\r\n { x: 12, y: 1.3 },\r\n { x: 13, y: 1.3 },\r\n { x: 14, y: 1.3 },\r\n { x: 15, y: 1.32 },\r\n { x: 16, y: 1.40 },\r\n { x: 17, y: 1.44 },\r\n { x: 18, y: 1.02 },\r\n { x: 19, y: 1.02 },\r\n { x: 20, y: 1.02 },\r\n { x: 21, y: 1.02 },\r\n { x: 22, y: 1.02 },\r\n { x: 23, y: 1.02 },\r\n { x: 24, y: 1.02 },\r\n { x: 25, y: 1.02 },\r\n { x: 27, y: 1.30 },\r\n { x: 28, y: 1.30 },\r\n { x: 29, y: 1.30 }\r\n]\r\n\r\n// Add two line series.\r\nconst lineSeries = chart.addLineSeries({ dataPattern: DataPatterns.horizontalProgressive })\r\n .setName('Diesel')\r\n\r\nconst lineSeries2 = chart.addLineSeries({ dataPattern: DataPatterns.horizontalProgressive })\r\n .setName('Gasoline')\r\n .setStrokeStyle(customStrokeStyle)\r\n\r\n// Set the correct value to use for the data frequency.\r\n// 1000ms * 60s * 60min * 24h\r\nconst dataFrequency = 1000 * 60 * 60 * 24\r\n\r\n// Add the points to each Series - the X values are multiplied by dataFrequency to set the values properly on the X Axis.\r\nlineSeries2.add(diesel.map((point) => ({ x: point.x * dataFrequency, y: point.y })))\r\nlineSeries.add(gasoline.map((point) => ({ x: point.x * dataFrequency, y: point.y })))\r\n\r\n// Setup view nicely.\r\nchart.getDefaultAxisY()\r\n .setTitle('$/litre')\r\n .setInterval(0, 3, false, true)\r\n\r\n// Enable AutoCursor auto-fill.\r\nchart.setAutoCursor(cursor => cursor\r\n .setResultTableAutoTextStyle(true)\r\n .disposeTickMarkerX()\r\n .setTickMarkerYAutoTextStyle(true)\r\n)\r\nconst legend = chart.addLegendBox()\r\n .setOrigin(UIOrigins.RightTop)\r\n .setPosition({ x: 90, y: 90 })\r\n .setMargin({ left: 10, right: 10, top: 10, bottom: 10 })\r\n\r\n// Add Chart to LegendBox.\r\nlegend.add(chart)\r\n","url":null,"readme":"*Also known as a Line Graph or Line Chart*\r\n\r\nThis example shows the basic usage of a line series. The line series is drawn on a Cartesian coordinate system and represents the relationship between two variables. Line series display information as a series of data points connected by straight line segments. They are most often used to visualize the changes in data or reveal trends in a dataset.\r\n\r\nThis type of series does not contain the visual representation of 'markers' for the data points but only continuously connected line between all of them. Additionally, it allows drawing lines in any direction.\r\n\r\nThe chart can be created with few simple lines of code:\r\n\r\n```javascript\r\n// Create a new ChartXY.\r\nconst chart = lightningChart().ChartXY()\r\n\r\n// Add a line series using default X and Y axes.\r\nconst series = chart.addLineSeries()\r\n```\r\n\r\nThe series accepts points in format `{ x: number, y: number }`. Any number of points can be added with a single call.\r\n\r\n```javascript\r\n// Single point.\r\nseries.add({ x: 50, y: 60 })\r\n\r\n// Multiple points at once.\r\nseries.add([\r\n { x: 55, y: 60 },\r\n { x: 60, y: 62},\r\n { x: 65, y: 65}\r\n])\r\n```\r\n","image":"lineSeries.png"},{"id":"lcjs-example-0001-simpleScatter","title":"Scatter Chart","tags":["scatter","point","xy","legendbox"],"description":"Using a point series to display a Point Graph. Also known as a Scatter Graph, Scatter Series, Point Graph, Scatter diagram or Scattergram.","src":"/*\r\n * LightningChartJS example that showcases a simple scatter series.\r\n */\r\n// Import LightningChartJS\r\nconst lcjs = require('@arction/lcjs')\r\n\r\n// Extract required parts from LightningChartJS.\r\nconst {\r\n lightningChart,\r\n AxisTickStrategies,\r\n emptyLine,\r\n PointShape,\r\n SolidFill,\r\n ColorRGBA,\r\n UIElementBuilders,\r\n UIButtonPictures,\r\n UIOrigins,\r\n LegendBoxBuilders,\r\n Themes\r\n} = lcjs\r\n\r\n// Decide on an origin for DateTime axis.\r\nconst dateOrigin = new Date(2018, 6, 1)\r\n// Create a XY Chart.\r\nconst chart = lightningChart().ChartXY({\r\n // theme: Themes.dark\r\n})\r\n\r\n// Modify the default X Axis to use DateTime TickStrategy, and set the origin for the DateTime Axis.\r\nchart.getDefaultAxisX().setTickStrategy(AxisTickStrategies.DateTime, (tickStrategy) => tickStrategy.setDateOrigin(dateOrigin))\r\n\r\nchart.setTitle('Product Sales')\r\n .setAutoCursor(cursor => {\r\n cursor.disposeTickMarkerY()\r\n cursor.setGridStrokeYStyle(emptyLine)\r\n })\r\n\r\n// Create a LegendBox as part of the chart.\r\nconst legend = chart.addLegendBox(LegendBoxBuilders.HorizontalLegendBox)\r\n .setPosition({ x: 5, y: 95 })\r\n .setOrigin(UIOrigins.LeftTop)\r\n\r\n// Apply Style color for each group\r\nconst smartPhonesColor = new SolidFill({ color: ColorRGBA(200, 0, 200) })\r\nconst laptopColor = new SolidFill({ color: ColorRGBA(0, 200, 200) })\r\nconst smartTvColor = new SolidFill({ color: ColorRGBA(200, 200, 0) })\r\n\r\n// Create series.\r\nconst smartPhonesSeries = chart.addPointSeries({ pointShape: PointShape.Circle })\r\n .setName('Smart Phones')\r\n .setPointFillStyle(smartPhonesColor)\r\n .setPointSize(10)\r\n\r\nconst laptopsSeries = chart.addPointSeries({ pointShape: PointShape.Square })\r\n .setName('Laptops')\r\n .setPointFillStyle(laptopColor)\r\n .setPointSize(10)\r\n\r\nconst smartTvSeries = chart.addPointSeries({ pointShape: PointShape.Triangle })\r\n .setName('Smart TV')\r\n .setPointFillStyle(smartTvColor)\r\n .setPointSize(10)\r\n\r\n// Generate some points using for each day of 3 months\r\nconst dataFrequency = 1000 * 60 * 60 * 24\r\n\r\n// Setup view nicely.\r\nchart.getDefaultAxisX()\r\n .setInterval(0, 92 * dataFrequency)\r\n\r\nchart.getDefaultAxisY()\r\n .setScrollStrategy(undefined)\r\n .setInterval(0, 2000)\r\n .setTitle('Units Sold')\r\n\r\n// Data for the plotting\r\nconst smartPhoneData = [\r\n { x: 0, y: 200 },\r\n { x: 1, y: 220 },\r\n { x: 2, y: 260 },\r\n { x: 3, y: 264 },\r\n { x: 4, y: 280 },\r\n { x: 5, y: 288 },\r\n { x: 6, y: 280 },\r\n { x: 7, y: 248 },\r\n { x: 8, y: 292 },\r\n { x: 9, y: 308 },\r\n { x: 10, y: 316 },\r\n { x: 11, y: 328 },\r\n { x: 12, y: 344 },\r\n { x: 13, y: 360 },\r\n { x: 14, y: 388 },\r\n { x: 15, y: 404 },\r\n { x: 16, y: 432 },\r\n { x: 17, y: 444 },\r\n { x: 18, y: 432 },\r\n { x: 19, y: 444 },\r\n { x: 20, y: 452 },\r\n { x: 21, y: 460 },\r\n { x: 22, y: 464 },\r\n { x: 23, y: 492 },\r\n { x: 24, y: 508 },\r\n { x: 25, y: 492 },\r\n { x: 26, y: 520 },\r\n { x: 27, y: 532 },\r\n { x: 28, y: 548 },\r\n { x: 29, y: 576 },\r\n { x: 30, y: 600 },\r\n { x: 31, y: 608 },\r\n { x: 32, y: 628 },\r\n { x: 33, y: 624 },\r\n { x: 34, y: 640 },\r\n { x: 35, y: 672 },\r\n { x: 36, y: 692 },\r\n { x: 37, y: 716 },\r\n { x: 38, y: 732 },\r\n { x: 39, y: 744 },\r\n { x: 40, y: 760 },\r\n { x: 41, y: 792 },\r\n { x: 42, y: 840 },\r\n { x: 43, y: 884 },\r\n { x: 44, y: 880 },\r\n { x: 45, y: 900 },\r\n { x: 46, y: 928 },\r\n { x: 47, y: 992 },\r\n { x: 48, y: 980 },\r\n { x: 49, y: 1004 },\r\n { x: 50, y: 1032 },\r\n { x: 51, y: 1056 },\r\n { x: 52, y: 1072 },\r\n { x: 53, y: 1080 },\r\n { x: 54, y: 1108 },\r\n { x: 55, y: 1136 },\r\n { x: 56, y: 1160 },\r\n { x: 57, y: 1188 },\r\n { x: 58, y: 1200 },\r\n { x: 59, y: 1204 },\r\n { x: 60, y: 1220 },\r\n { x: 61, y: 1244 },\r\n { x: 62, y: 1272 },\r\n { x: 63, y: 1308 },\r\n { x: 64, y: 1340 },\r\n { x: 65, y: 1364 },\r\n { x: 66, y: 1388 },\r\n { x: 67, y: 1400 },\r\n { x: 68, y: 1420 },\r\n { x: 69, y: 1480 },\r\n { x: 70, y: 1460 },\r\n { x: 71, y: 1484 },\r\n { x: 72, y: 1520 },\r\n { x: 73, y: 1552 },\r\n { x: 74, y: 1568 },\r\n { x: 75, y: 1600 },\r\n { x: 76, y: 1620 },\r\n { x: 77, y: 1632 },\r\n { x: 78, y: 1660 },\r\n { x: 79, y: 1680 },\r\n { x: 80, y: 1740 },\r\n { x: 81, y: 1728 },\r\n { x: 82, y: 1772 },\r\n { x: 83, y: 1792 },\r\n { x: 84, y: 1788 },\r\n { x: 85, y: 1800 },\r\n { x: 86, y: 1808 },\r\n { x: 87, y: 1840 },\r\n { x: 88, y: 1872 },\r\n { x: 89, y: 1900 },\r\n { x: 90, y: 1932 }\r\n]\r\nconst laptopsData = [\r\n { x: 0, y: 70 },\r\n { x: 1, y: 57.2 },\r\n { x: 2, y: 88.4 },\r\n { x: 3, y: 83.6 },\r\n { x: 4, y: 80.8 },\r\n { x: 5, y: 106 },\r\n { x: 6, y: 117.2 },\r\n { x: 7, y: 108.4 },\r\n { x: 8, y: 95.6 },\r\n { x: 9, y: 108.8 },\r\n { x: 10, y: 118 },\r\n { x: 11, y: 127.2 },\r\n { x: 12, y: 138.4 },\r\n { x: 13, y: 131.6 },\r\n { x: 14, y: 128.8 },\r\n { x: 15, y: 142 },\r\n { x: 16, y: 157.2 },\r\n { x: 17, y: 164.4 },\r\n { x: 18, y: 163.6 },\r\n { x: 19, y: 182.8 },\r\n { x: 20, y: 192 },\r\n { x: 21, y: 199.2 },\r\n { x: 22, y: 204.4 },\r\n { x: 23, y: 213.6 },\r\n { x: 24, y: 226.8 },\r\n { x: 25, y: 218 },\r\n { x: 26, y: 229.2 },\r\n { x: 27, y: 228.4 },\r\n { x: 28, y: 243.6 },\r\n { x: 29, y: 254.8 },\r\n { x: 30, y: 264 },\r\n { x: 31, y: 287.2 },\r\n { x: 32, y: 266.4 },\r\n { x: 33, y: 277.6 },\r\n { x: 34, y: 278.8 },\r\n { x: 35, y: 306 },\r\n { x: 36, y: 311.2 },\r\n { x: 37, y: 320.4 },\r\n { x: 38, y: 333.6 },\r\n { x: 39, y: 324.8 },\r\n { x: 40, y: 330 },\r\n { x: 41, y: 353.2 },\r\n { x: 42, y: 378.4 },\r\n { x: 43, y: 401.6 },\r\n { x: 44, y: 396.8 },\r\n { x: 45, y: 396 },\r\n { x: 46, y: 413.2 },\r\n { x: 47, y: 452.4 },\r\n { x: 48, y: 441.6 },\r\n { x: 49, y: 444.8 },\r\n { x: 50, y: 462 },\r\n { x: 51, y: 485.2 },\r\n { x: 52, y: 492.4 },\r\n { x: 53, y: 483.6 },\r\n { x: 54, y: 494.8 },\r\n { x: 55, y: 514 },\r\n { x: 56, y: 531.2 },\r\n { x: 57, y: 536.4 },\r\n { x: 58, y: 535.6 },\r\n { x: 59, y: 544.8 },\r\n { x: 60, y: 556 },\r\n { x: 61, y: 557.2 },\r\n { x: 62, y: 566.4 },\r\n { x: 63, y: 587.6 },\r\n { x: 64, y: 602.8 },\r\n { x: 65, y: 624 },\r\n { x: 66, y: 639.2 },\r\n { x: 67, y: 640.4 },\r\n { x: 68, y: 645.6 },\r\n { x: 69, y: 678.8 },\r\n { x: 70, y: 660 },\r\n { x: 71, y: 683.2 },\r\n { x: 72, y: 694.4 },\r\n { x: 73, y: 709.6 },\r\n { x: 74, y: 712.8 },\r\n { x: 75, y: 722 },\r\n { x: 76, y: 745.2 },\r\n { x: 77, y: 744.4 },\r\n { x: 78, y: 755.6 },\r\n { x: 79, y: 768.8 },\r\n { x: 80, y: 792 },\r\n { x: 81, y: 793.2 },\r\n { x: 82, y: 820.4 },\r\n { x: 83, y: 817.6 },\r\n { x: 84, y: 820.8 },\r\n { x: 85, y: 816 },\r\n { x: 86, y: 831.2 },\r\n { x: 87, y: 844.4 },\r\n { x: 88, y: 853.6 },\r\n { x: 89, y: 870.8 },\r\n { x: 90, y: 886 }\r\n]\r\nconst smartTvData = [\r\n { x: 0, y: 10 },\r\n { x: 1, y: 15.5 },\r\n { x: 2, y: 21.1 },\r\n { x: 3, y: 27 },\r\n { x: 4, y: 30.8 },\r\n { x: 5, y: 38 },\r\n { x: 6, y: 40 },\r\n { x: 7, y: 44.4 },\r\n { x: 8, y: 47.6 },\r\n { x: 9, y: 50.8 },\r\n { x: 10, y: 52 },\r\n { x: 11, y: 54.2 },\r\n { x: 12, y: 59.4 },\r\n { x: 13, y: 65.6 },\r\n { x: 14, y: 57.8 },\r\n { x: 15, y: 62 },\r\n { x: 16, y: 74.2 },\r\n { x: 17, y: 70.4 },\r\n { x: 18, y: 82.6 },\r\n { x: 19, y: 74.8 },\r\n { x: 20, y: 84 },\r\n { x: 21, y: 87.2 },\r\n { x: 22, y: 98.4 },\r\n { x: 23, y: 99.6 },\r\n { x: 24, y: 98.8 },\r\n { x: 25, y: 98 },\r\n { x: 26, y: 102.2 },\r\n { x: 27, y: 99.4 },\r\n { x: 28, y: 111.6 },\r\n { x: 29, y: 121.8 },\r\n { x: 30, y: 117 },\r\n { x: 31, y: 127.2 },\r\n { x: 32, y: 117.4 },\r\n { x: 33, y: 125.6 },\r\n { x: 34, y: 131.8 },\r\n { x: 35, y: 136 },\r\n { x: 36, y: 138.2 },\r\n { x: 37, y: 142.4 },\r\n { x: 38, y: 148.6 },\r\n { x: 39, y: 146.8 },\r\n { x: 40, y: 157 },\r\n { x: 41, y: 159.2 },\r\n { x: 42, y: 168.4 },\r\n { x: 43, y: 184.6 },\r\n { x: 44, y: 181.8 },\r\n { x: 45, y: 189 },\r\n { x: 46, y: 195.2 },\r\n { x: 47, y: 202.4 },\r\n { x: 48, y: 197.6 },\r\n { x: 49, y: 207.8 },\r\n { x: 50, y: 218 },\r\n { x: 51, y: 216.2 },\r\n { x: 52, y: 221.4 },\r\n { x: 53, y: 226.6 },\r\n { x: 54, y: 231.8 },\r\n { x: 55, y: 233 },\r\n { x: 56, y: 241.2 },\r\n { x: 57, y: 250.4 },\r\n { x: 58, y: 246.6 },\r\n { x: 59, y: 248.8 },\r\n { x: 60, y: 251 },\r\n { x: 61, y: 254.2 },\r\n { x: 62, y: 267.4 },\r\n { x: 63, y: 275.6 },\r\n { x: 64, y: 282.8 },\r\n { x: 65, y: 285 },\r\n { x: 66, y: 291.2 },\r\n { x: 67, y: 292.4 },\r\n { x: 68, y: 292.6 },\r\n { x: 69, y: 304.8 },\r\n { x: 70, y: 307 },\r\n { x: 71, y: 313.2 },\r\n { x: 72, y: 317.4 },\r\n { x: 73, y: 326.6 },\r\n { x: 74, y: 327.8 },\r\n { x: 75, y: 338 },\r\n { x: 76, y: 342.2 },\r\n { x: 77, y: 345.4 },\r\n { x: 78, y: 350.6 },\r\n { x: 79, y: 347.8 },\r\n { x: 80, y: 371 },\r\n { x: 81, y: 362.2 },\r\n { x: 82, y: 376.4 },\r\n { x: 83, y: 378.6 },\r\n { x: 84, y: 378.8 },\r\n { x: 85, y: 372 },\r\n { x: 86, y: 375.2 },\r\n { x: 87, y: 385.4 },\r\n { x: 88, y: 390.6 },\r\n { x: 89, y: 396.8 },\r\n { x: 90, y: 406 }\r\n]\r\n\r\n// Adding points to the series\r\nsmartPhonesSeries.add(smartPhoneData.map((point) => ({ x: point.x * dataFrequency, y: point.y })))\r\nlaptopsSeries.add(laptopsData.map((point) => ({ x: point.x * dataFrequency, y: point.y })))\r\nsmartTvSeries.add(smartTvData.map((point) => ({ x: point.x * dataFrequency, y: point.y })))\r\n\r\n// Add series to LegendBox and style entries.\r\nlegend.add(\r\n smartPhonesSeries,\r\n true,\r\n 'Product Sales',\r\n UIElementBuilders.CheckBox\r\n .setPictureOff(UIButtonPictures.Circle)\r\n .setPictureOn(UIButtonPictures.Circle)\r\n)\r\nlegend.add(\r\n laptopsSeries,\r\n true,\r\n 'Product Sales',\r\n UIElementBuilders.CheckBox\r\n .setPictureOff(UIButtonPictures.Rectangle)\r\n .setPictureOn(UIButtonPictures.Rectangle)\r\n)\r\nlegend.add(\r\n smartTvSeries,\r\n true,\r\n 'Product Sales',\r\n UIElementBuilders.CheckBox\r\n .setPictureOff(UIButtonPictures.Diamond)\r\n .setPictureOn(UIButtonPictures.Diamond)\r\n)\r\n\r\n// Enable AutoCursor auto-fill.\r\nchart.setAutoCursor((cursor) => {\r\n cursor\r\n .setResultTableAutoTextStyle(true)\r\n .disposeTickMarkerX()\r\n .setTickMarkerXAutoTextStyle(false)\r\n .setTickMarkerYAutoTextStyle(false)\r\n})\r\n","url":null,"readme":"*Also known as a Scatter Graph, Scatter Series, Point Graph, Scatter diagram or Scattergram*\r\n\r\nThis example shows a simple Point Graph with points drawn using PointSeries for a visual representation of the data points 'markers'. The point graph is a type of chart or mathematical diagram drawn on a Cartesian coordinate system and represents the relationship between two variables.\r\n\r\nThis type of series does not contain the visual representation of lines for the connection of data points but only data 'markers'.\r\n\r\nThe chart can be created with few simple lines of code:\r\n\r\n```javascript\r\n// Add a scatter series with markers using default X and Y axes.\r\nconst pointSeries = chart.addPointSeries()\r\n```\r\n\r\nThe PointSeries API allows configuring the visual representation of data markers.\r\n\r\n- PointShape: *enum*\r\n\r\n | PointShape | Description |\r\n | :-----------: | :--------------------------------------: |\r\n | Rectangle | The series with rectangle-shaped points |\r\n | Triangle | The series with triangle-shaped points. |\r\n | Square | The series with square-shaped points. |\r\n\r\n PointShape must be specified upon creation of Series!\r\n\r\n ```javascript\r\n // Add a scatter series with markers using default X and Y axes. Select Circle PointShape.\r\n const pointSeries = chart.addPointSeries( { pointShape: PointShape.Circle } )\r\n ```\r\n\r\n- PointSize: *number*\r\n ```javascript\r\n pointSeries\r\n .setPointSize(5.0)\r\n ```\r\n\r\n- FillStyle\r\n Scatter Series with markers provides an ability to specify a fill style of data markers as well as individual point fill style (explained further).\r\n\r\n ```javascript\r\n pointSeries\r\n .setPointFillStyle(fillStyleObject)\r\n ```\r\n\r\n- IndividualPointFill: *FillStyle*\r\n\r\n The style indicates individual per point coloring. The style enables the usage of individual fill taken from the input. \r\n The series can accept points in format `{ x: number, y: number, color: Color }`\r\n If the color is not provided during the input of data points ( e.g. in format `{ x: number, y: number }` ), the configurable fallback color is used.\r\n ```javascript\r\n // Create the instance of IndividualPointFill fill style.\r\n const individualStyle = new IndividualPointFill()\r\n // Set red color as a fallback color\r\n individualStyle.setFallbackColor( ColorRGBA( 255, 0, 0 ) )\r\n ```\r\n\r\nAs it was mentioned before, the series accepts points in format `{ x: number, y: number: color: Color }` with specified IndividualPointFill to enable individual point coloring or `{ x: number, y: number }` for other fill styles. Any number of points can be added with a single call similarly to line series with point markers.\r\n\r\n- Dataset without colors. If IndividualPointFill is specified, the fallback color is used. Otherwise, the specified fill style is used.\r\n\r\n ```javascript\r\n // Dataset of Vec2 data points without color.\r\n pointSeries\r\n .add([\r\n { x: 5, y: 10 },\r\n { x: 7.5, y: 20 },\r\n { x: 10, y: 30 }\r\n ])\r\n ```\r\n- Dataset with individual colors. If IndividualPointFill is specified, the color from data point or fallback color is used. Otherwise, the specified fill style is used.\r\n\r\n ```javascript\r\n // Dataset of Vec2Color data points with individual color.\r\n pointSeries\r\n .add([\r\n // use red color if IndividualPointFill is specified\r\n { x: 2.5, y: 0, color: ColorRGBA( 255, 0, 0 ) },\r\n // use fallback color if IndividualPointFill is specified\r\n { x: 5, y: 10 },\r\n // use green color if IndividualPointFill is specified\r\n { x: 7.5, y: 20, color: ColorRGBA( 0, 255, 0 ) },\r\n // use blue color if IndividualPointFill is specified\r\n { x: 10, y: 30, color: ColorRGBA( 0, 0, 255 ) },\r\n ])\r\n ```\r\n","image":"simpleScatter.png"},{"id":"lcjs-example-0002-styledSplines","title":"Styled Splines","tags":["spline","xy"],"description":"Example showing how to draw and style Spline Series.","src":"/*\r\n * LightningChartJS example that showcases creation and styling of spline-series.\r\n */\r\n// Import LightningChartJS\r\nconst lcjs = require('@arction/lcjs')\r\n\r\n// Extract required parts from LightningChartJS.\r\nconst {\r\n lightningChart,\r\n AxisTickStrategies,\r\n AxisScrollStrategies,\r\n PointShape,\r\n SolidFill,\r\n ColorHEX,\r\n Themes\r\n} = lcjs\r\n\r\nconst {\r\n createProgressiveRandomGenerator\r\n} = require('@arction/xydata')\r\n// Decide on an origin for DateTime axis.\r\nconst dateOrigin = new Date()\r\nconst dataFrequency = 1000\r\nconst chart = lightningChart().ChartXY({\r\n // theme: Themes.dark\r\n})\r\n\r\nchart\r\n .setTitle('Live power consumption')\r\n // Modify the default X Axis to use DateTime TickStrategy, and set the origin for the DateTime Axis.\r\n .getDefaultAxisX().setTickStrategy(\r\n AxisTickStrategies.DateTime,\r\n (tickStrategy) => tickStrategy.setDateOrigin(dateOrigin)\r\n )\r\n // Progressive DateTime view of 61 seconds.\r\n .setInterval(-61 * 1000, 0)\r\n .setScrollStrategy(AxisScrollStrategies.progressive)\r\n\r\nchart.getDefaultAxisY()\r\n .setTitle('Power consumption (kW)')\r\n .setInterval(0, 500)\r\n .setScrollStrategy(AxisScrollStrategies.expansion)\r\n\r\nconst series = chart.addSplineSeries({ pointShape: PointShape.Circle })\r\n .setName('Power consumption')\r\n .setStrokeStyle((strokeStyle) => strokeStyle\r\n .setThickness(4)\r\n .setFillStyle(new SolidFill({ color: ColorHEX('#A9ED59') }))\r\n )\r\n .setPointSize(8)\r\n .setCursorInterpolationEnabled(false)\r\n .setResultTableFormatter((tableBuilder, series, x, y) => tableBuilder\r\n .addRow(series.getName())\r\n .addRow(series.axisX.formatValue(x))\r\n .addRow(series.axisY.formatValue(y) + ' kW')\r\n )\r\n\r\n// Stream some random data.\r\ncreateProgressiveRandomGenerator()\r\n .setNumberOfPoints(10000)\r\n .generate()\r\n .setStreamBatchSize(1)\r\n .setStreamInterval(1000)\r\n .setStreamRepeat(true)\r\n .toStream()\r\n .forEach(point => {\r\n point.x = point.x * dataFrequency\r\n point.y = point.y * 2000\r\n series.add(point)\r\n })\r\n","url":null,"readme":"This example shows how to draw and style spline-series. \r\n\r\nFirst create the series using chart method.\r\n\r\n```javascript\r\n// Add a spline series using default X and Y axes.\r\nconst splineSeries = chart.addSplineSeries()\r\n```\r\n\r\n## Option 1: Styling using a style object.\r\n\r\nThe first option for styling of series is to create a new object that contains the necessary information about visual settings. In the case of line-series, the object must be type of *SolidLine* to be visible.\r\n\r\n```javascript\r\n// Create a new instance of visible solid line-style.\r\nconst strokeStyle = new SolidLine()\r\n // Set desired fill style of the stroke.\r\n .setFillStyle(\r\n // SolidLine can have only SolidFill fill-style.\r\n new SolidFill().setColor(ColorRGBA(96, 204, 232))\r\n )\r\n // Set thickness of the stroke.\r\n .setThickness(5.0)\r\n\r\n// Apply styling settings to the series.\r\nsplineSeries.setStrokeStyle(strokeStyle)\r\n```\r\n\r\n## Option 2: Styling using a mutator function.\r\n\r\nUsually, it can be even more easy to simply modify the existing *Style* of a component, rather than constructing a new one. This is done using so-called *mutator-functions*. Here's an example:\r\n\r\n```javascript\r\n// Modify the previous Stroke style of a SplineSeries, by overriding its previous thickness.\r\nsplineSeries.setStrokeStyle(strokeStyle => strokeStyle.setThickness(1.0))\r\n```\r\n\r\nOur coding practices include fluent, self-returning API, which allows us to easily call multiple setters in one statement.\r\n\r\n```javascript\r\nsplineSeries\r\n .setStrokeStyle(strokeStyle)\r\n // 'transparentFill' is a static constant\r\n // that needs to be imported from the library in order to be used.\r\n // It is used to draw things with transparent fill that aren't disposable \r\n // - like the points of a PointLineSeries.\r\n .setPointFillStyle(transparentFill)\r\n```\r\n","image":"styledSplines.png"},{"id":"lcjs-example-0003-pointLinePlot","title":"Point Line Series","tags":["point-line","xy","point","line"],"description":"Basic use of Point Line Series. Also known as a Line Series, Line Graph, Line Chart, and Line with Markers.","src":"/*\r\n * LightningChartJS example that showcases point & line -series with different point types.\r\n */\r\n// Import LightningChartJS\r\nconst lcjs = require('@arction/lcjs')\r\n\r\n// Extract required parts from LightningChartJS.\r\nconst {\r\n lightningChart,\r\n ColorPalettes,\r\n SolidFill,\r\n PointShape,\r\n Themes\r\n} = lcjs\r\n\r\n// ----- Cache styles -----\r\nconst pointSize = 10\r\nconst palette = ColorPalettes.warm(3)\r\nconst colors = [0, 1, 2].map(palette)\r\nconst fillStyles = colors.map(color => new SolidFill({ color }))\r\n\r\n// Create a XY Chart.\r\nconst chart = lightningChart().ChartXY({\r\n // theme: Themes.dark\r\n})\r\n .setTitle('Car Mileage Comparison')\r\n\r\n// Add point line series with different point styles with a few static points.\r\n// Combine different LineStyles, FillStyles and PointShapes.\r\n\r\n// Add line series with rectangle-shaped points.\r\nchart.addPointLineSeries()\r\n .setName('Sports Car')\r\n .setPointFillStyle(fillStyles[0])\r\n .setStrokeStyle((strokeStyle) => strokeStyle.setFillStyle(fillStyles[0]))\r\n .setPointSize(pointSize)\r\n .add([\r\n { x: 0, y: 0 },\r\n { x: 50, y: 10 },\r\n { x: 80, y: 20 },\r\n { x: 100, y: 30 },\r\n { x: 150, y: 40 },\r\n { x: 180, y: 50 },\r\n { x: 230, y: 60 },\r\n { x: 290, y: 70 }\r\n ])\r\n\r\n// Add line series with circle-shaped points.\r\nchart.addPointLineSeries({ pointShape: PointShape.Circle })\r\n .setName('Family Car')\r\n .setPointSize(pointSize)\r\n .setPointFillStyle(fillStyles[1])\r\n .setStrokeStyle((strokeStyle) => strokeStyle.setFillStyle(fillStyles[1]))\r\n .add([\r\n { x: 0, y: 0 },\r\n { x: 100, y: 10 },\r\n { x: 230, y: 20 },\r\n { x: 390, y: 30 },\r\n { x: 470, y: 40 },\r\n { x: 540, y: 50 },\r\n { x: 600, y: 60 },\r\n { x: 800, y: 70 }\r\n ])\r\n\r\n// Add line series with triangle-shaped points.\r\nchart.addPointLineSeries({ pointShape: PointShape.Triangle })\r\n .setName('Pick-up Car')\r\n .setPointSize(pointSize)\r\n .setPointFillStyle(fillStyles[2])\r\n .setStrokeStyle((strokeStyle) => strokeStyle.setFillStyle(fillStyles[2]))\r\n .add([\r\n { x: 0, y: 0 },\r\n { x: 80, y: 10 },\r\n { x: 100, y: 20 },\r\n { x: 150, y: 30 },\r\n { x: 230, y: 40 },\r\n { x: 380, y: 50 },\r\n { x: 450, y: 60 },\r\n { x: 580, y: 70 }\r\n ])\r\n\r\n// Setup view nicely.\r\nchart.getDefaultAxisX()\r\n .setInterval(0, 1000, false, true)\r\n .setTitle('Km')\r\nchart.getDefaultAxisY()\r\n .setInterval(0, 100, false, true)\r\n .setTitle('Litre')\r\nchart.setAutoCursor((cursor) => cursor\r\n .setResultTableAutoTextStyle(true)\r\n .setTickMarkerXAutoTextStyle(true)\r\n .setTickMarkerYAutoTextStyle(true)\r\n)\r\n","url":null,"readme":"*Also known as a Line Series, Line Graph, Line Chart, and Line with Markers*\r\n\r\nThis example shows the basic usage of a line series with 'markers' for visual representation of the data points. Similarly to line series, it is drawn on a Cartesian coordinate system and represents the relationship between two variables. Line series display information as a series of data points connected by straight line segments in any direction. This type of series additionally draws data markers on top of the line at the location specified in a dataset.\r\n\r\nThe chart can be created with few simple lines of code:\r\n\r\n```javascript\r\n// Add a line series with markers using default X and Y axes.\r\nconst lineSeries = chart.addPointLineSeries()\r\n```\r\n\r\nLine Series with markers provides an ability to specify styles for both markers and lines individually.\r\n\r\n```javascript\r\nlineSeries\r\n .setStrokeStyle(lineStyleObject)\r\n .setPointFillStyle(fillStyleObject)\r\n```\r\n\r\nIt shares the same API with the PointSeries, which allows configuring the visual representation of data markers.\r\n\r\n- PointShape: *enum*\r\n\r\n | PointShape | Description |\r\n | :-----------: | :--------------------------------------: |\r\n | Rectangle | The series with rectangle-shaped points |\r\n | Triangle | The series with triangle-shaped points. |\r\n | Square | The series with square-shaped points. |\r\n\r\n PointShape must be specified upon creation of Series!\r\n\r\n ```javascript\r\n // Add a line series with markers using default X and Y axes. Select Circle PointShape.\r\n const lineSeries = chart.addPointLineSeries( { pointShape: PointShape.Circle } )\r\n ```\r\n\r\n- PointSize: *number*\r\n\r\n ```javascript\r\n lineSeries.setPointSize(5.0)\r\n ```\r\n\r\n- IndividualPointFill: *FillStyle*\r\n\r\n The style indicates individual per point coloring. The style enables the usage of individual fill taken from the input. \r\n The series can accept points in format `{ x: number, y: number, color: Color }`\r\n If the color is not provided during the input of data points ( e.g. in format `{ x: number, y: number }` ), the configurable fallback color is used.\r\n\r\n ```javascript\r\n // Create the instance of IndividualPointFill fill style.\r\n const individualStyle = new IndividualPointFill()\r\n // Set red color as a fallback color\r\n individualStyle.setFallbackColor( ColorRGBA( 255, 0, 0 ) )\r\n ```\r\n\r\nAs it was mentioned before, the series accepts points in format `{ x: number, y: number: color: Color }` with specified IndividualPointFill to enable individual point coloring or `{ x: number, y: number }` for other fill styles. Any number of points can be added with a single call similarly to line series with point markers.\r\n\r\n- Dataset without colors.\r\n - If IndividualPointFill is specified, the fallback color is used. Otherwise, the specified fill style is used.\r\n\r\n ```javascript\r\n // Dataset of Vec2 data points without color.\r\n lineSeries\r\n .add([\r\n { x: 5, y: 10 },\r\n { x: 7.5, y: 20 },\r\n { x: 10, y: 30 }\r\n ])\r\n ```\r\n\r\n- Dataset with individual colors.\r\n - If IndividualPointFill is specified, the color from data point or fallback color is used. Otherwise, the specified fill style is used.\r\n\r\n ```javascript\r\n // Dataset of Vec2Color data points with individual color.\r\n lineSeries\r\n .add([\r\n // use red color if IndividualPointFill is specified\r\n { x: 2.5, y: 0, color: ColorRGBA( 255, 0, 0 ) },\r\n // use fallback color if IndividualPointFill is specified\r\n { x: 5, y: 10 },\r\n // use green color if IndividualPointFill is specified\r\n { x: 7.5, y: 20, color: ColorRGBA( 0, 255, 0 ) },\r\n // use blue color if IndividualPointFill is specified\r\n { x: 10, y: 30, color: ColorRGBA( 0, 0, 255 ) },\r\n ])\r\n ```\r\n","image":"pointLinePlot.png"},{"id":"lcjs-example-0004-1MillionPointsLineTrace","title":"1 Million Points Line Trace","tags":["line","xy"],"description":"Example plotting a million data points using progressive Line Series.","src":"/*\r\n * LightningChartJS example that showcases a line series with 1 Million streamed points with animated transitions.\r\n */\r\n// Import LightningChartJS\r\nconst lcjs = require('@arction/lcjs')\r\n\r\n// Extract required parts from LightningChartJS.\r\nconst {\r\n lightningChart,\r\n DataPatterns,\r\n Themes\r\n} = lcjs\r\n\r\n// Import data-generator from 'xydata'-library.\r\nconst {\r\n createProgressiveTraceGenerator\r\n} = require('@arction/xydata')\r\n\r\n// Create a XY Chart.\r\nconst chart = lightningChart().ChartXY({\r\n // theme: Themes.dark\r\n})\r\n .setTitle('1 Million Points Line Trace')\r\n\r\n// Create progressive line series.\r\nconst series = chart.addLineSeries({ dataPattern: DataPatterns.horizontalProgressive })\r\n\r\n// Generate traced points stream using 'xydata'-library.\r\ncreateProgressiveTraceGenerator()\r\n .setNumberOfPoints(1000 * 1000)\r\n .generate()\r\n .toPromise()\r\n .then(data => {\r\n setInterval(() => {\r\n series.add(data.splice(0, 20000))\r\n }, 50)\r\n })\r\n","url":null,"readme":"This example plots a million data points using progressive line series.\r\n\r\n## Progressive series\r\n\r\nProgressive series are highly optimized series for the rendering of high-volume and high-density data while keeping full interactivity.\r\nThese optimizations are enabled by selecting a ***DataPattern***, which needs to be specified during the creation of the series instance and cannot be changed further for performance related reasons.\r\n\r\nThe ***DataPatterns***-collections object contains all different directions for progressive data patterns:\r\n- Select ***DataPatterns.horizontalProgressive*** to handle horizontal progressive datasets efficiently.\r\n- Select ***DataPatterns.horizontalRegressive*** to handle horizontal regressive datasets efficiently.\r\n- Select ***DataPatterns.verticalProgressive*** to handle vertical progressive datasets efficiently.\r\n- Select ***DataPatterns.verticalRegressive*** to handle vertical regressive datasets efficiently.\r\n\r\n```javascript\r\n// Create line series optimized for horizontally progressive data.\r\nconst series = chart.addLineSeries(\r\n // Using the DataPatterns object to select the certain pattern for the line series.\r\n { dataPattern: DataPatterns.horizontalProgressive }\r\n)\r\n```\r\n\r\n**NOTE #1:**\r\n\r\nThe series created based on specified ***DataPattern*** is highly optimized **only** for the selected pattern. We do not recommend to provide data that contradict with specified ***DataPattern***.\r\n\r\n**NOTE #2:**\r\n\r\nThe scrolling of data in progressive series can also be automated and optimized by specifying ***ScrollStrategy*** for both x-axis & y-axis to perform the scrolling efficiently.\r\n\r\n- Select ***AxisScrollStrategies.expansion***. Automatically increases a scale if some points are out of scale. Retains progressivity/regressivity of used scale.\r\n- Select ***AxisScrollStrategies.fitting***. Automatically increases a scale if some points are out of scale and reduces it if there is too much empty space. Retains progressivity/regressivity of used scale.\r\n- Select ***AxisScrollStrategies.progressive***. Automatically scrolls a scale in a positive direction.\r\n- Select ***AxisScrollStrategies.regressive***. Automatically scrolls a scale to a negative direction.\r\n- Pass ***undefined*** to disable automatic scrolling. Scale can then be manually set using *setInterval* method of ***Axis***\r\n\r\nFor this particular example and based on the selected ***DataPatterns***, the configuration of the axis can be either ***AxisScrollStrategies.progressive*** or ***AxisScrollStrategies.regressive***.\r\n\r\nFor example\r\n- ***DataPatterns.horizontalProgressive*** series is created. X-axis scrolling should be configured with ***AxisScrollStrategies.progressive***. Y-scrolling can be any.\r\n\r\n ```javascript\r\n // Configure axis to have progressive scrolling.\r\n axisX.setScrollStrategy( AxisScrollStrategies.progressive )\r\n ```\r\n\r\n- ***DataPatterns.horizontalRegressive*** series is created. X-axis scrolling should be configured with ***AxisScrollStrategies.regressive***. Y-scrolling can be any.\r\n \r\n ```javascript\r\n // Configure axis to have regressive scrolling.\r\n axisX.setScrollStrategy( AxisScrollStrategies.regressive )\r\n ```\r\n\r\n- ***DataPatterns.verticalProgressive*** series is created. Y-axis scrolling should be configured with ***AxisScrollStrategies.progressive***. X-scrolling can be any.\r\n \r\n ```javascript\r\n // Configure axis to have progressive scrolling.\r\n axisY.setScrollStrategy( AxisScrollStrategies.progressive )\r\n ```\r\n\r\n- ***DataPatterns.verticalRegressive*** series is created. Y-axis scrolling should be configured with ***AxisScrollStrategies.regressive***. X-scrolling can be any.\r\n \r\n ```javascript\r\n // Configure axis to have regressive scrolling.\r\n axisY.setScrollStrategy( AxisScrollStrategies.regressive )\r\n ```\r\n","image":"1mPointsLineTrace.png"},{"id":"lcjs-example-0005-stepPlot","title":"Step Series","tags":["step","xy","legendbox"],"description":"Example showing the use of a Step Series with different preprocessing modes. Also known as a Step Graph or Step Chart.","src":"/*\r\n * LightningChartJS example that showcases step-series with dynamically changeable stepping-options.\r\n */\r\n// Import LightningChartJS\r\nconst lcjs = require('@arction/lcjs')\r\n\r\n// Extract required parts from LightningChartJS.\r\nconst {\r\n lightningChart,\r\n StepOptions,\r\n UILayoutBuilders,\r\n UIElementBuilders,\r\n UIButtonPictures,\r\n UIBackgrounds,\r\n UIOrigins,\r\n emptyFill,\r\n emptyLine,\r\n AxisTickStrategies,\r\n SolidFill,\r\n Themes\r\n} = lcjs\r\n\r\nconst chart = lightningChart().ChartXY({\r\n // theme: Themes.dark\r\n}).setTitle('Survey Report')\r\n\r\nconst reportTableXlabel = ['January', 'February', 'March', 'April', 'May', 'June', 'July',\r\n 'August', 'September', 'October', 'November', 'December']\r\n\r\n// Create step series for each available step-option.\r\n// The step-function can not be changed during runtime!\r\nconst stepSeries = []\r\nconst addSeries = (stepOption) =>\r\n stepSeries.push(\r\n chart.addStepSeries({ mode: stepOption })\r\n // Show identifier of stepping option as the name of the Series.\r\n .setName(StepOptions[stepOption])\r\n .dispose()\r\n .setResultTableFormatter((builder, _, xValue, yValue) =>\r\n builder\r\n .addRow('Survey Report')\r\n .addRow('Month: ' + reportTableXlabel[Math.trunc(xValue)])\r\n .addRow('Amount: ' + yValue.toFixed(2))\r\n )\r\n )\r\naddSeries(StepOptions.before)\r\naddSeries(StepOptions.middle)\r\naddSeries(StepOptions.after)\r\n\r\n// X-axis of the series\r\nconst axisX = chart.getDefaultAxisX()\r\n .setMouseInteractions(false)\r\n // Disable default ticks.\r\n .setTickStrategy(AxisTickStrategies.Empty)\r\n\r\n// Enable AutoCursor auto-fill.\r\nchart.setAutoCursor(cursor => {\r\n (cursor)\r\n .setResultTableAutoTextStyle(true)\r\n .disposeTickMarkerX()\r\n .setTickMarkerYAutoTextStyle(true)\r\n})\r\n\r\n// Generate progressive points and add it to every series.\r\nconst data = [{\r\n x: 'Jan', y: 1\r\n}, {\r\n x: 'Feb', y: 11\r\n}, {\r\n x: 'Mar', y: 21\r\n}, {\r\n x: 'Apr', y: 15\r\n}, {\r\n x: 'May', y: 57\r\n}, {\r\n x: 'Jun', y: 77\r\n}, {\r\n x: 'Jul', y: 47\r\n}, {\r\n x: 'Aug', y: 24\r\n}, {\r\n x: 'Sep', y: 76\r\n}, {\r\n x: 'Oct', y: 88\r\n}, {\r\n x: 'Nov', y: 99\r\n}, {\r\n x: 'Dec', y: 3\r\n}]\r\nlet x = 0\r\nlet changedData = []\r\n\r\nstepSeries.forEach((values, i) => {\r\n changedData = data.map((changex, index) => ({ x: index, y: changex.y }))\r\n values.add(changedData)\r\n})\r\n\r\nchangedData.forEach((_, index) => {\r\n // Add custom tick, more like categorical axis.\r\n axisX.addCustomTick()\r\n .setValue(index)\r\n .setGridStrokeLength(0)\r\n .setTextFormatter((_) => data[index].x)\r\n .setMarker((marker) => marker\r\n .setBackground((background) => background\r\n .setFillStyle(emptyFill)\r\n .setStrokeStyle(emptyLine)\r\n )\r\n .setTextFillStyle(new SolidFill())\r\n )\r\n x += 1\r\n})\r\nchart.getDefaultAxisY()\r\n .setTitle('Amount / Month')\r\n .setInterval(0, 100)\r\n\r\n// Add UI controls for switching between step-mode-options.\r\n// NOTE: This is not the focus of the example, and will be better covered elsewhere.\r\nconst stepControls = chart.addUIElement(UILayoutBuilders.Column.setBackground(UIBackgrounds.Rectangle))\r\nstepControls.addElement(UIElementBuilders.TextBox)\r\n .setText('Step options')\r\nconst buttonLayout = stepControls.addElement(UILayoutBuilders.Row)\r\nconst radioButtons = []\r\nlet switching = false\r\nconst radioButtonBuilder = UIElementBuilders.CheckBox\r\n .setPictureOff(UIButtonPictures.Rectangle)\r\n .setPictureOn(UIButtonPictures.Diamond)\r\n .addStyler((checkBox) => {\r\n radioButtons.push(checkBox)\r\n checkBox\r\n .setOn(false)\r\n .setPadding({ left: 10, bottom: 5 })\r\n // Add radio button logic immediately afterwards so that it is applied after plot.\r\n // Attach logic (otherwise plot logic will override this)\r\n setTimeout(() => {\r\n checkBox.onSwitch((activatedButton, state) => {\r\n if (switching) {\r\n return\r\n }\r\n switching = true\r\n if (state) {\r\n // Deactivate other buttons\r\n for (const button of radioButtons)\r\n if (button !== activatedButton)\r\n button.setOn(false)\r\n } else {\r\n // Prevent turning of the selected option\r\n activatedButton.setOn(true)\r\n }\r\n switching = false\r\n })\r\n }, 100)\r\n })\r\nstepSeries[0].attach(\r\n buttonLayout.addElement(radioButtonBuilder)\r\n)\r\nstepSeries[1].attach(\r\n buttonLayout.addElement(radioButtonBuilder)\r\n)\r\nstepSeries[2].attach(\r\n buttonLayout.addElement(radioButtonBuilder)\r\n)\r\nconst margin = 10\r\nstepControls\r\n .setPosition({ x: 30, y: 80 })\r\n .setOrigin(UIOrigins.CenterBottom)\r\n .setMargin(margin)\r\n\r\n// Apply initial selection\r\nstepSeries[1].restore()\r\n","url":null,"readme":"*Also known as a Step Graph or Step Chart*\r\n\r\nThis example shows the basic usage of a step series with different preprocessing modes. Similarly to line series, it is drawn on a Cartesian coordinate system and represents the relationship between two variables. However, it is used to visualize the changing variables that have irregular fluctuation forming a step-like progression.\r\n\r\nThe data that changes at irregular intervals remains constant between the changes. The vertical risers of a chart denote changes in the data and their magnitude, the horizontal - the constancy of the data within the interval.\r\n\r\n\r\n\r\nCreation of a step series is equal to any basic line series, with the exception of an additional optional parameter, which specifies the 'step option' of the series.\r\n\r\n```javascript\r\nconst stepSeries = chart.addStepSeries( { mode: stepOption } )\r\n```\r\nThere is no need in data preparation, step chart will be generated automatically from the provided curve based on selected step mode.\r\n\r\n| Step Options | Description |\r\n| :-----------: | :-----------------------------------------------------: |\r\n| before | The magnitude changes before the next interval start. |\r\n| middle | The magnitude changes at the midpoint of the interval. |\r\n| after | The magnitude changes after the previous interval end. |\r\n\r\nThe series accepts points in format `{ x: number, y: number: color: Color }` with specified IndividualPointFill to enable individual point coloring or `{ x: number, y: number }` for other fill styles. Any number of points can be added with a single call similarly to line series with point markers.\r\n","image":"stepPlot.png"},{"id":"lcjs-example-0006-pointClusters","title":"Point Clusters","tags":["point-cluster","point","xy","rectangle"],"description":"Example showing how to create clusters of differently colored points. Using Point Series.","src":"/*\r\n * LightningChartJS example that showcases clusters of points.\r\n */\r\n// Import LightningChartJS\r\nconst lcjs = require('@arction/lcjs')\r\n\r\n// Extract required parts from LightningChartJS.\r\nconst {\r\n lightningChart,\r\n SolidFill,\r\n SolidLine,\r\n ColorPalettes,\r\n emptyFill,\r\n AxisTickStrategies,\r\n PointShape,\r\n Themes\r\n} = lcjs\r\n\r\n// ----- Cache used styles -----\r\nconst pointSize = 10\r\nconst palette = ColorPalettes.fullSpectrum(10)\r\nconst colors = [0, 6].map(palette)\r\nconst fillStyles = colors.map(color => new SolidFill({ color }))\r\n// Decide on an origin for DateTime axis.\r\nconst dateOrigin = new Date(2018, 8, 1)\r\n\r\n// Create a XY Chart.\r\nconst chart = lightningChart().ChartXY({\r\n // theme: Themes.dark\r\n})\r\n .setTitle('Salary differences between Kuopio and Helsinki')\r\n .setPadding({\r\n right: 50\r\n })\r\n\r\n// Modify the default X Axis to use DateTime TickStrategy, and set the origin for the DateTime Axis.\r\nchart.getDefaultAxisX()\r\n .setTickStrategy(\r\n AxisTickStrategies.DateTime,\r\n (tickStrategy) => tickStrategy.setDateOrigin(dateOrigin)\r\n )\r\n\r\n// Add a series for each cluster of points\r\nconst fstClusterSeries = chart.addPointSeries({ pointShape: PointShape.Circle })\r\n .setName('Kuopio')\r\n .setPointFillStyle(fillStyles[0])\r\n .setPointSize(pointSize)\r\nconst sndClusterSeries = chart.addPointSeries({ pointShape: PointShape.Triangle })\r\n .setName('Helsinki')\r\n .setPointFillStyle(fillStyles[1])\r\n .setPointSize(pointSize)\r\n\r\n// The point supplied to series will have their X values multiplied by this value (for easier addition of DateTime-values).\r\nconst dataFrequency = 1000 * 60 * 60 * 24\r\nconst kuopioPoints = [\r\n { x: 12.152641878669275, y: 5335.336538461539 },\r\n { x: 11.62426614481409, y: 5259.615384615385 },\r\n { x: 10.919765166340508, y: 5082.932692307692 },\r\n { x: 10.156555772994128, y: 4923.076923076923 },\r\n { x: 9.334637964774949, y: 4796.875 },\r\n { x: 8.101761252446183, y: 4704.326923076923 },\r\n { x: 6.634050880626223, y: 4620.192307692308 },\r\n { x: 3.933463796477495, y: 4418.2692307692305 },\r\n { x: 3.111545988258317, y: 4342.548076923077 },\r\n { x: 2.8180039138943247, y: 4199.5192307692305 },\r\n { x: 2.8180039138943247, y: 4014.423076923077 },\r\n { x: 2.4657534246575334, y: 3930.2884615384614 },\r\n { x: 2.407045009784736, y: 3745.1923076923076 },\r\n { x: 2.935420743639921, y: 3408.653846153846 },\r\n { x: 3.6399217221135025, y: 3307.6923076923076 },\r\n { x: 5.107632093933463, y: 3181.4903846153848 },\r\n { x: 6.868884540117416, y: 3181.4903846153848 },\r\n { x: 7.749510763209393, y: 3198.3173076923076 },\r\n { x: 9.217221135029353, y: 3316.1057692307695 },\r\n { x: 10.215264187866929, y: 3475.9615384615386 },\r\n { x: 11.037181996086105, y: 3585.3365384615386 },\r\n { x: 12.035225048923678, y: 3719.951923076923 },\r\n { x: 12.798434442270057, y: 3778.846153846154 },\r\n { x: 16.027397260273972, y: 3820.9134615384614 },\r\n { x: 22.544031311154598, y: 3896.6346153846152 },\r\n { x: 24.187866927592953, y: 3963.9423076923076 },\r\n { x: 24.83365949119374, y: 4325.721153846154 },\r\n { x: 24.65753424657534, y: 4435.096153846154 },\r\n { x: 24.422700587084147, y: 4603.365384615385 },\r\n { x: 24.129158512720156, y: 4754.807692307692 },\r\n { x: 22.4853228962818, y: 5082.932692307692 },\r\n { x: 21.78082191780822, y: 5167.067307692308 },\r\n { x: 19.080234833659492, y: 5562.5 },\r\n { x: 17.31898238747554, y: 5722.3557692307695 },\r\n { x: 16.262230919765166, y: 5865.384615384615 },\r\n { x: 15.264187866927593, y: 5924.278846153846 },\r\n { x: 14.324853228962818, y: 5966.346153846154 },\r\n { x: 11.859099804305282, y: 5915.865384615385 },\r\n { x: 10.919765166340508, y: 5865.384615384615 },\r\n { x: 7.749510763209393, y: 5579.326923076923 },\r\n { x: 6.164383561643835, y: 5419.471153846154 },\r\n { x: 5.048923679060665, y: 5108.173076923077 },\r\n { x: 3.5812133072407044, y: 4460.336538461539 },\r\n { x: 2.8767123287671232, y: 4174.278846153846 },\r\n { x: 0.3522504892367906, y: 4342.548076923077 },\r\n { x: 0.3522504892367906, y: 4056.4903846153848 },\r\n { x: 0.23483365949119372, y: 3551.6826923076924 },\r\n { x: 0.410958904109589, y: 3282.4519230769233 },\r\n { x: 0.23483365949119372, y: 3046.875 },\r\n { x: 0.410958904109589, y: 2887.019230769231 },\r\n { x: 0.6457925636007827, y: 2693.5096153846152 },\r\n { x: 2.759295499021526, y: 2643.028846153846 },\r\n { x: 3.7573385518590996, y: 2643.028846153846 },\r\n { x: 5.98825831702544, y: 2668.269230769231 },\r\n { x: 9.510763209393346, y: 2693.5096153846152 },\r\n { x: 10.391389432485322, y: 2802.8846153846157 },\r\n { x: 11.037181996086105, y: 3030.048076923077 },\r\n { x: 11.741682974559687, y: 3274.038461538462 },\r\n { x: 12.857142857142856, y: 3475.9615384615386 },\r\n { x: 14.383561643835616, y: 3602.1634615384614 },\r\n { x: 15.205479452054796, y: 3652.6442307692305 },\r\n { x: 16.43835616438356, y: 3711.5384615384614 },\r\n { x: 17.96477495107632, y: 3804.0865384615386 },\r\n { x: 19.256360078277883, y: 4090.1442307692305 },\r\n { x: 19.021526418786692, y: 4233.173076923077 },\r\n { x: 17.201565557729943, y: 4384.615384615385 },\r\n { x: 15.088062622309199, y: 4435.096153846154 },\r\n { x: 12.270058708414872, y: 4376.201923076923 },\r\n { x: 10.626223091976517, y: 4207.932692307692 },\r\n { x: 8.336594911937379, y: 3862.9807692307695 },\r\n { x: 7.808219178082191, y: 3770.4326923076924 },\r\n { x: 5.283757338551859, y: 4485.576923076923 },\r\n { x: 4.87279843444227, y: 3896.6346153846152 },\r\n { x: 4.285714285714286, y: 3669.471153846154 },\r\n { x: 2.172211350293542, y: 4578.125 },\r\n { x: 3.933463796477495, y: 4981.971153846154 },\r\n { x: 5.518590998043054, y: 5335.336538461539 },\r\n { x: 7.749510763209393, y: 5798.076923076923 },\r\n { x: 10.09784735812133, y: 5688.701923076923 },\r\n { x: 9.628180039138943, y: 5352.163461538461 },\r\n { x: 13.209393346379647, y: 5570.913461538461 },\r\n { x: 12.68101761252446, y: 5772.836538461539 },\r\n { x: 14.794520547945204, y: 5688.701923076923 },\r\n { x: 16.203522504892366, y: 5461.538461538461 },\r\n { x: 18.493150684931507, y: 5183.8942307692305 },\r\n { x: 20.19569471624266, y: 4998.798076923077 },\r\n { x: 21.42857142857143, y: 4788.461538461539 },\r\n { x: 22.07436399217221, y: 4443.509615384615 },\r\n { x: 22.720156555772995, y: 4123.798076923077 },\r\n { x: 21.722113502935418, y: 4039.6634615384614 },\r\n { x: 19.608610567514678, y: 4443.509615384615 },\r\n { x: 18.786692759295498, y: 4586.538461538461 },\r\n { x: 16.731898238747554, y: 4822.115384615385 },\r\n { x: 14.500978473581215, y: 5032.451923076923 },\r\n { x: 13.972602739726026, y: 5099.759615384615 },\r\n { x: 12.38747553816047, y: 4754.807692307692 },\r\n { x: 14.911937377690801, y: 4687.5 },\r\n { x: 14.500978473581215, y: 4822.115384615385 },\r\n { x: 16.027397260273972, y: 5125 },\r\n { x: 15.029354207436398, y: 5394.2307692307695 },\r\n { x: 13.737769080234832, y: 5436.298076923077 },\r\n { x: 15.322896281800393, y: 5242.788461538461 },\r\n { x: 17.495107632093934, y: 5183.8942307692305 },\r\n { x: 18.904109589041095, y: 4838.942307692308 },\r\n { x: 20.900195694716242, y: 4603.365384615385 },\r\n { x: 22.133072407045006, y: 4620.192307692308 },\r\n { x: 22.367906066536204, y: 4737.9807692307695 },\r\n { x: 21.78082191780822, y: 4889.423076923077 },\r\n { x: 20.54794520547945, y: 5116.586538461539 },\r\n { x: 19.49119373776908, y: 5259.615384615385 },\r\n { x: 18.258317025440316, y: 5411.057692307692 },\r\n { x: 17.436399217221137, y: 5478.365384615385 },\r\n { x: 16.497064579256357, y: 5621.3942307692305 },\r\n { x: 14.383561643835616, y: 5814.903846153846 },\r\n { x: 13.561643835616438, y: 5840.1442307692305 },\r\n { x: 12.093933463796477, y: 5646.634615384615 },\r\n { x: 11.037181996086105, y: 5411.057692307692 },\r\n { x: 10.861056751467709, y: 5293.2692307692305 },\r\n { x: 9.921722113502934, y: 5150.240384615385 },\r\n { x: 8.336594911937379, y: 5301.682692307692 },\r\n { x: 6.927592954990215, y: 5217.548076923077 },\r\n { x: 6.34050880626223, y: 5015.625 },\r\n { x: 5.518590998043054, y: 4889.423076923077 },\r\n { x: 2.5244618395303324, y: 4679.086538461539 },\r\n { x: 4.1682974559686885, y: 4780.048076923077 },\r\n { x: 3.170254403131115, y: 4805.288461538461 },\r\n { x: 2.407045009784736, y: 4527.6442307692305 },\r\n { x: 1.8199608610567513, y: 4334.134615384615 },\r\n { x: 1.467710371819961, y: 4048.076923076923 },\r\n { x: 1.467710371819961, y: 3888.221153846154 },\r\n { x: 1.2915851272015655, y: 3711.5384615384614 },\r\n { x: 1.11545988258317, y: 3484.375 },\r\n { x: 1.3502935420743638, y: 3223.5576923076924 },\r\n { x: 1.4090019569471623, y: 3080.528846153846 },\r\n { x: 1.9960861056751458, y: 3030.048076923077 },\r\n { x: 4.10958904109589, y: 2929.0865384615386 },\r\n { x: 5.401174168297455, y: 2903.846153846154 },\r\n { x: 6.046966731898238, y: 2887.019230769231 },\r\n { x: 6.75146771037182, y: 2920.673076923077 },\r\n { x: 8.101761252446183, y: 2929.0865384615386 },\r\n { x: 9.217221135029353, y: 2996.394230769231 },\r\n { x: 10.09784735812133, y: 3189.903846153846 },\r\n { x: 6.34050880626223, y: 3097.3557692307695 },\r\n { x: 4.050880626223091, y: 3147.8365384615386 },\r\n { x: 2.8767123287671232, y: 3206.7307692307695 },\r\n { x: 2.1135029354207435, y: 2811.298076923077 },\r\n { x: 3.2289628180039136, y: 2929.0865384615386 },\r\n { x: 2.8180039138943247, y: 3055.288461538462 },\r\n { x: 4.931506849315069, y: 3265.625 },\r\n { x: 5.518590998043054, y: 3467.548076923077 },\r\n { x: 4.637964774951076, y: 3518.028846153846 },\r\n { x: 3.874755381604696, y: 3534.8557692307695 },\r\n { x: 2.8180039138943247, y: 3602.1634615384614 },\r\n { x: 2.23091976516634, y: 3644.2307692307695 },\r\n { x: 3.7573385518590996, y: 3879.8076923076924 },\r\n { x: 4.1682974559686885, y: 4098.557692307692 },\r\n { x: 4.6966731898238745, y: 4191.1057692307695 },\r\n { x: 5.694716242661448, y: 4258.413461538461 },\r\n { x: 6.986301369863013, y: 4350.961538461539 },\r\n { x: 7.86692759295499, y: 4409.8557692307695 },\r\n { x: 8.864970645792564, y: 4527.6442307692305 },\r\n { x: 9.217221135029353, y: 4586.538461538461 },\r\n { x: 9.041095890410958, y: 5141.826923076923 },\r\n { x: 8.512720156555773, y: 5074.5192307692305 },\r\n { x: 7.984344422700587, y: 4965.1442307692305 },\r\n { x: 7.455968688845399, y: 4838.942307692308 },\r\n { x: 6.457925636007829, y: 4754.807692307692 },\r\n { x: 5.577299412915851, y: 4679.086538461539 },\r\n { x: 6.986301369863013, y: 5343.75 },\r\n { x: 8.63013698630137, y: 5469.951923076923 },\r\n { x: 10.215264187866929, y: 5503.6057692307695 },\r\n { x: 11.154598825831703, y: 5537.259615384615 },\r\n { x: 13.033268101761252, y: 5427.884615384615 },\r\n { x: 13.09197651663405, y: 5192.307692307692 },\r\n { x: 12.152641878669275, y: 4990.384615384615 },\r\n { x: 10.919765166340508, y: 4695.913461538461 },\r\n { x: 10.450097847358121, y: 4611.778846153846 },\r\n { x: 9.804305283757339, y: 4477.163461538461 },\r\n { x: 8.806262230919765, y: 4359.375 },\r\n { x: 8.043052837573384, y: 4275.240384615385 },\r\n { x: 7.10371819960861, y: 4174.278846153846 },\r\n { x: 6.105675146771037, y: 3921.875 },\r\n { x: 5.636007827788649, y: 3719.951923076923 },\r\n { x: 6.223091976516634, y: 3568.5096153846152 },\r\n { x: 6.34050880626223, y: 3375 },\r\n { x: 6.986301369863013, y: 3324.519230769231 },\r\n { x: 7.632093933463796, y: 3425.4807692307695 },\r\n { x: 8.160469667318981, y: 3518.028846153846 },\r\n { x: 9.217221135029353, y: 3610.576923076923 },\r\n { x: 10.09784735812133, y: 3694.7115384615386 },\r\n { x: 11.037181996086105, y: 3787.2596153846152 },\r\n { x: 11.97651663405088, y: 3862.9807692307695 },\r\n { x: 12.915851272015654, y: 3947.1153846153848 },\r\n { x: 13.385518590998043, y: 4073.3173076923076 },\r\n { x: 14.442270058708415, y: 4115.384615384615 },\r\n { x: 15.616438356164382, y: 4123.798076923077 },\r\n { x: 17.201565557729943, y: 4115.384615384615 },\r\n { x: 18.375733855185906, y: 4048.076923076923 },\r\n { x: 19.608610567514678, y: 3947.1153846153848 },\r\n { x: 19.608610567514678, y: 3879.8076923076924 },\r\n { x: 21.42857142857143, y: 4182.692307692308 },\r\n { x: 20.958904109589042, y: 4308.894230769231 },\r\n { x: 23.01369863013699, y: 4275.240384615385 },\r\n { x: 19.021526418786692, y: 4426.682692307692 },\r\n { x: 17.377690802348333, y: 4645.432692307692 },\r\n { x: 17.553816046966734, y: 4931.490384615385 },\r\n { x: 16.262230919765166, y: 4990.384615384615 },\r\n { x: 16.203522504892366, y: 4679.086538461539 },\r\n { x: 14.853228962818003, y: 4468.75 },\r\n { x: 13.09197651663405, y: 4628.6057692307695 },\r\n { x: 13.913894324853228, y: 4805.288461538461 },\r\n { x: 12.622309197651663, y: 4906.25 },\r\n { x: 11.330724070450097, y: 4847.3557692307695 },\r\n { x: 11.037181996086105, y: 4199.5192307692305 },\r\n { x: 9.628180039138943, y: 3989.1826923076924 },\r\n { x: 9.217221135029353, y: 3930.2884615384614 },\r\n { x: 13.561643835616438, y: 4157.451923076923 },\r\n { x: 14.20743639921722, y: 4199.5192307692305 },\r\n { x: 18.904109589041095, y: 5823.317307692308 },\r\n { x: 19.608610567514678, y: 5739.182692307692 },\r\n { x: 20.900195694716242, y: 5713.942307692308 },\r\n { x: 21.722113502935418, y: 5865.384615384615 },\r\n { x: 22.720156555772995, y: 5655.048076923077 },\r\n { x: 23.95303326810176, y: 5528.846153846154 },\r\n { x: 23.894324853228966, y: 5394.2307692307695 },\r\n { x: 23.835616438356162, y: 5326.923076923077 },\r\n { x: 23.835616438356162, y: 5183.8942307692305 },\r\n { x: 23.894324853228966, y: 5024.038461538461 },\r\n { x: 24.481409001956948, y: 4872.596153846154 },\r\n { x: 21.487279843444227, y: 5394.2307692307695 },\r\n { x: 21.956947162426612, y: 5562.5 },\r\n { x: 22.367906066536204, y: 5512.0192307692305 },\r\n { x: 22.89628180039139, y: 5352.163461538461 },\r\n { x: 20.841487279843445, y: 5444.711538461539 },\r\n { x: 14.031311154598825, y: 3862.9807692307695 },\r\n { x: 15.557729941291585, y: 3854.5673076923076 },\r\n { x: 12.32876712328767, y: 4174.278846153846 },\r\n { x: 11.859099804305282, y: 4115.384615384615 },\r\n { x: 11.330724070450097, y: 3921.875 }\r\n]\r\n\r\nconst helsinkiPoints = [\r\n { x: 6.164383561643835, y: 2314.6634615384614 },\r\n { x: 6.516634050880624, y: 2351.2019230769233 },\r\n { x: 7.045009784735812, y: 2479.0865384615386 },\r\n { x: 7.279843444227005, y: 2543.028846153846 },\r\n { x: 7.514677103718199, y: 2638.9423076923076 },\r\n { x: 8.277886497064578, y: 2794.230769230769 },\r\n { x: 8.63013698630137, y: 2853.605769230769 },\r\n { x: 10.156555772994128, y: 2972.355769230769 },\r\n { x: 10.919765166340508, y: 3018.028846153846 },\r\n { x: 11.800391389432484, y: 3063.7019230769233 },\r\n { x: 12.798434442270057, y: 3109.375 },\r\n { x: 14.442270058708415, y: 3155.0480769230767 },\r\n { x: 16.555772994129157, y: 3228.125 },\r\n { x: 17.025440313111545, y: 3292.0673076923076 },\r\n { x: 17.729941291585128, y: 3419.951923076923 },\r\n { x: 18.610567514677104, y: 3904.086538461538 },\r\n { x: 18.6692759295499, y: 3753.3653846153848 },\r\n { x: 18.31702544031311, y: 3616.346153846154 },\r\n { x: 18.082191780821915, y: 3534.1346153846152 },\r\n { x: 19.667318982387478, y: 3922.355769230769 },\r\n { x: 20.782778864970645, y: 3894.951923076923 },\r\n { x: 22.07436399217221, y: 3858.413461538461 },\r\n { x: 23.131115459882583, y: 3799.0384615384614 },\r\n { x: 24.951076320939336, y: 3739.6634615384614 },\r\n { x: 26.301369863013697, y: 3639.1826923076924 },\r\n { x: 26.59491193737769, y: 3424.5192307692305 },\r\n { x: 26.771037181996086, y: 3200.721153846154 },\r\n { x: 27.76908023483366, y: 2949.5192307692305 },\r\n { x: 28.12133072407045, y: 2712.0192307692305 },\r\n { x: 26.53620352250489, y: 2638.9423076923076 },\r\n { x: 25.655577299412915, y: 2437.980769230769 },\r\n { x: 15.616438356164382, y: 2150.2403846153848 },\r\n { x: 19.138943248532293, y: 2227.8846153846152 },\r\n { x: 20.782778864970645, y: 2300.9615384615386 },\r\n { x: 23.776908023483365, y: 2469.951923076923 },\r\n { x: 25.71428571428571, y: 2757.6923076923076 },\r\n { x: 26.301369863013697, y: 2849.0384615384614 },\r\n { x: 26.947162426614483, y: 2954.086538461538 },\r\n { x: 24.951076320939336, y: 3050 },\r\n { x: 24.83365949119374, y: 3324.0384615384614 },\r\n { x: 25.949119373776906, y: 3547.836538461538 },\r\n { x: 27.06457925636008, y: 3598.076923076923 },\r\n { x: 27.886497064579256, y: 3630.0480769230767 },\r\n { x: 28.003913894324853, y: 3767.0673076923076 },\r\n { x: 27.59295499021526, y: 3780.7692307692305 },\r\n { x: 26.066536203522503, y: 3744.230769230769 },\r\n { x: 24.36399217221135, y: 3853.8461538461534 },\r\n { x: 19.080234833659492, y: 3218.9903846153848 },\r\n { x: 14.442270058708415, y: 2944.951923076923 },\r\n { x: 10.626223091976517, y: 2821.6346153846152 },\r\n { x: 9.628180039138943, y: 2670.9134615384614 },\r\n { x: 8.454011741682974, y: 2492.7884615384614 },\r\n { x: 9.393346379647749, y: 2469.951923076923 },\r\n { x: 10.743639921722114, y: 2465.3846153846152 },\r\n { x: 13.033268101761252, y: 2488.221153846154 },\r\n { x: 8.21917808219178, y: 2323.798076923077 },\r\n { x: 7.10371819960861, y: 2273.5576923076924 },\r\n { x: 6.2818003913894325, y: 2264.423076923077 },\r\n { x: 6.223091976516634, y: 2186.778846153846 },\r\n { x: 6.457925636007829, y: 2168.5096153846152 },\r\n { x: 8.101761252446183, y: 2145.673076923077 },\r\n { x: 10.567514677103718, y: 2232.4519230769233 },\r\n { x: 11.448140900195694, y: 2442.548076923077 },\r\n { x: 12.270058708414872, y: 2661.778846153846 },\r\n { x: 14.031311154598825, y: 2967.7884615384614 },\r\n { x: 15.73385518590998, y: 3282.9326923076924 },\r\n { x: 16.908023483365948, y: 3438.221153846154 },\r\n { x: 17.61252446183953, y: 3570.6730769230767 },\r\n { x: 13.50293542074364, y: 3328.605769230769 },\r\n { x: 11.97651663405088, y: 3155.0480769230767 },\r\n { x: 10.332681017612524, y: 2958.653846153846 },\r\n { x: 8.864970645792564, y: 2826.201923076923 },\r\n { x: 7.162426614481409, y: 2652.644230769231 },\r\n { x: 10.450097847358121, y: 2702.8846153846152 },\r\n { x: 13.033268101761252, y: 2903.846153846154 },\r\n { x: 18.610567514677104, y: 3342.3076923076924 },\r\n { x: 19.608610567514678, y: 3575.2403846153848 },\r\n { x: 20.19569471624266, y: 3652.8846153846152 },\r\n { x: 19.960861056751465, y: 3739.6634615384614 },\r\n { x: 22.015655577299416, y: 3693.9903846153848 },\r\n { x: 23.24853228962818, y: 3333.1730769230767 },\r\n { x: 21.07632093933464, y: 3191.586538461538 },\r\n { x: 19.726027397260275, y: 3109.375 },\r\n { x: 18.31702544031311, y: 3086.5384615384614 },\r\n { x: 15.499021526418783, y: 3013.461538461538 },\r\n { x: 15.264187866927593, y: 2684.6153846153848 },\r\n { x: 14.031311154598825, y: 2529.326923076923 },\r\n { x: 13.561643835616438, y: 2680.048076923077 },\r\n { x: 16.908023483365948, y: 2775.961538461538 },\r\n { x: 18.02348336594912, y: 2830.7692307692305 },\r\n { x: 22.89628180039139, y: 2817.0673076923076 },\r\n { x: 21.78082191780822, y: 2437.980769230769 },\r\n { x: 20.724070450097848, y: 2433.4134615384614 },\r\n { x: 16.908023483365948, y: 2433.4134615384614 },\r\n { x: 12.915851272015654, y: 2218.75 },\r\n { x: 11.62426614481409, y: 2223.3173076923076 },\r\n { x: 13.85518590998043, y: 2364.903846153846 },\r\n { x: 16.08610567514677, y: 2278.125 },\r\n { x: 17.260273972602743, y: 2310.096153846154 },\r\n { x: 18.7279843444227, y: 2406.0096153846152 },\r\n { x: 19.021526418786692, y: 2465.3846153846152 },\r\n { x: 18.610567514677104, y: 2575 },\r\n { x: 17.201565557729943, y: 2588.701923076923 },\r\n { x: 15.675146771037182, y: 2451.6826923076924 },\r\n { x: 15.264187866927593, y: 2424.278846153846 },\r\n { x: 15.557729941291585, y: 2620.673076923077 },\r\n { x: 18.140900195694716, y: 2725.721153846154 },\r\n { x: 18.6692759295499, y: 2739.423076923077 },\r\n { x: 20.900195694716242, y: 2625.2403846153848 },\r\n { x: 22.309197651663403, y: 2620.673076923077 },\r\n { x: 23.95303326810176, y: 2570.4326923076924 },\r\n { x: 25.303326810176124, y: 2538.4615384615386 },\r\n { x: 25.655577299412915, y: 2538.4615384615386 },\r\n { x: 25.00978473581213, y: 2652.644230769231 },\r\n { x: 24.77495107632094, y: 2890.1442307692305 },\r\n { x: 23.424657534246577, y: 2986.0576923076924 },\r\n { x: 21.545988258317024, y: 2903.846153846154 },\r\n { x: 21.135029354207433, y: 2785.096153846154 },\r\n { x: 20.313111545988257, y: 2849.0384615384614 },\r\n { x: 19.726027397260275, y: 2972.355769230769 },\r\n { x: 17.96477495107632, y: 2958.653846153846 },\r\n { x: 17.553816046966734, y: 2940.3846153846152 },\r\n { x: 15.557729941291585, y: 2821.6346153846152 },\r\n { x: 13.620352250489233, y: 2803.3653846153848 },\r\n { x: 13.50293542074364, y: 2862.7403846153848 },\r\n { x: 12.38747553816047, y: 3008.8942307692305 },\r\n { x: 16.731898238747554, y: 3132.211538461538 },\r\n { x: 19.080234833659492, y: 3465.625 },\r\n { x: 20.430528375733854, y: 3511.2980769230767 },\r\n { x: 21.898238747553815, y: 3561.5384615384614 },\r\n { x: 22.95499021526419, y: 3602.6442307692305 },\r\n { x: 23.424657534246577, y: 3648.3173076923076 },\r\n { x: 23.718199608610565, y: 3675.721153846154 },\r\n { x: 24.77495107632094, y: 3520.4326923076924 },\r\n { x: 22.544031311154598, y: 3433.6538461538457 },\r\n { x: 20.078277886497062, y: 3342.3076923076924 },\r\n { x: 22.95499021526419, y: 3241.826923076923 },\r\n { x: 24.246575342465754, y: 3187.0192307692305 },\r\n { x: 22.661448140900195, y: 3109.375 },\r\n { x: 21.545988258317024, y: 3063.7019230769233 },\r\n { x: 26.360078277886497, y: 3118.5096153846152 },\r\n { x: 26.53620352250489, y: 3301.201923076923 },\r\n { x: 25.655577299412915, y: 3387.980769230769 },\r\n { x: 24.89236790606654, y: 3429.086538461538 },\r\n { x: 24.070450097847356, y: 3502.1634615384614 },\r\n { x: 25.244618395303327, y: 3643.75 },\r\n { x: 22.837573385518592, y: 3721.3942307692305 },\r\n { x: 21.135029354207433, y: 3776.201923076923 },\r\n { x: 19.608610567514678, y: 3821.875 },\r\n { x: 18.8454011741683, y: 3643.75 },\r\n { x: 20.665362035225048, y: 3419.951923076923 },\r\n { x: 21.252446183953033, y: 3319.471153846154 },\r\n { x: 16.379647749510767, y: 2986.0576923076924 },\r\n { x: 16.84931506849315, y: 3031.730769230769 },\r\n { x: 14.677103718199607, y: 3072.836538461538 },\r\n { x: 12.152641878669275, y: 2807.9326923076924 },\r\n { x: 11.682974559686889, y: 2593.269230769231 },\r\n { x: 10.626223091976517, y: 2561.298076923077 },\r\n { x: 9.686888454011742, y: 2570.4326923076924 },\r\n { x: 8.63013698630137, y: 2716.586538461538 },\r\n { x: 11.62426614481409, y: 2332.9326923076924 },\r\n { x: 6.986301369863013, y: 2369.471153846154 },\r\n { x: 8.63013698630137, y: 2383.173076923077 },\r\n { x: 9.334637964774949, y: 2364.903846153846 },\r\n { x: 9.804305283757339, y: 2328.3653846153848 },\r\n { x: 9.393346379647749, y: 2287.2596153846152 },\r\n { x: 9.393346379647749, y: 2246.153846153846 },\r\n { x: 10.450097847358121, y: 2214.1826923076924 },\r\n { x: 12.093933463796477, y: 2182.2115384615386 },\r\n { x: 13.561643835616438, y: 2191.346153846154 },\r\n { x: 14.383561643835616, y: 2273.5576923076924 },\r\n { x: 15.264187866927593, y: 2314.6634615384614 },\r\n { x: 17.201565557729943, y: 2332.9326923076924 },\r\n { x: 18.7279843444227, y: 2319.2307692307695 },\r\n { x: 19.78473581213307, y: 2364.903846153846 },\r\n { x: 19.960861056751465, y: 2606.971153846154 },\r\n { x: 20.371819960861057, y: 2611.5384615384614 },\r\n { x: 20.900195694716242, y: 2712.0192307692305 },\r\n { x: 22.77886497064579, y: 2739.423076923077 },\r\n { x: 23.894324853228966, y: 2775.961538461538 },\r\n { x: 21.956947162426612, y: 2976.9230769230767 },\r\n { x: 18.02348336594912, y: 3209.855769230769 },\r\n { x: 21.66340508806262, y: 3310.336538461538 },\r\n { x: 21.36986301369863, y: 3260.096153846154 },\r\n { x: 22.07436399217221, y: 3205.2884615384614 },\r\n { x: 23.659491193737768, y: 3100.2403846153843 },\r\n { x: 25.479452054794518, y: 3205.2884615384614 },\r\n { x: 26.65362035225049, y: 3036.2980769230767 },\r\n { x: 25.538160469667318, y: 2995.1923076923076 },\r\n { x: 25.244618395303327, y: 2954.086538461538 },\r\n { x: 27.945205479452053, y: 3159.6153846153848 },\r\n { x: 27.651663405088062, y: 3081.971153846154 },\r\n { x: 27.651663405088062, y: 3264.6634615384614 },\r\n { x: 27.945205479452053, y: 3547.836538461538 },\r\n { x: 27.475538160469664, y: 3511.2980769230767 },\r\n { x: 28.356164383561644, y: 3456.4903846153848 },\r\n { x: 28.767123287671232, y: 3438.221153846154 },\r\n { x: 16.379647749510767, y: 3442.7884615384614 },\r\n { x: 15.499021526418783, y: 3374.2788461538457 },\r\n { x: 14.500978473581215, y: 3269.230769230769 },\r\n { x: 13.268101761252446, y: 3214.4230769230767 },\r\n { x: 15.968688845401173, y: 3141.346153846154 },\r\n { x: 15.381604696673193, y: 3200.721153846154 },\r\n { x: 15.029354207436398, y: 3104.8076923076924 },\r\n { x: 11.682974559686889, y: 2922.1153846153848 },\r\n { x: 10.626223091976517, y: 2894.711538461538 },\r\n { x: 9.628180039138943, y: 2839.903846153846 },\r\n { x: 9.686888454011742, y: 2762.2596153846152 },\r\n { x: 11.859099804305282, y: 2734.855769230769 },\r\n { x: 9.217221135029353, y: 2912.980769230769 },\r\n { x: 8.277886497064578, y: 2584.1346153846152 },\r\n { x: 11.272015655577299, y: 2661.778846153846 },\r\n { x: 14.324853228962818, y: 2780.528846153846 },\r\n { x: 15.616438356164382, y: 2762.2596153846152 },\r\n { x: 16.614481409001957, y: 2712.0192307692305 },\r\n { x: 17.436399217221137, y: 2675.480769230769 },\r\n { x: 13.79647749510763, y: 2602.403846153846 },\r\n { x: 16.320939334637963, y: 2538.4615384615386 },\r\n { x: 17.729941291585128, y: 2511.0576923076924 },\r\n { x: 14.442270058708415, y: 2465.3846153846152 },\r\n { x: 12.093933463796477, y: 2529.326923076923 },\r\n { x: 12.857142857142856, y: 2597.8365384615386 },\r\n { x: 12.563600782778865, y: 2419.7115384615386 },\r\n { x: 12.798434442270057, y: 2342.0673076923076 },\r\n { x: 13.79647749510763, y: 2296.394230769231 },\r\n { x: 13.033268101761252, y: 2282.6923076923076 },\r\n { x: 10.567514677103718, y: 2369.471153846154 },\r\n { x: 9.041095890410958, y: 2433.4134615384614 },\r\n { x: 7.749510763209393, y: 2442.548076923077 },\r\n { x: 8.688845401174168, y: 2648.076923076923 },\r\n { x: 7.690802348336595, y: 2730.2884615384614 },\r\n { x: 23.01369863013699, y: 2931.25 },\r\n { x: 29, y: 2931.25 },\r\n { x: 29, y: 2931.25 },\r\n { x: 29, y: 2931.25 }\r\n]\r\n\r\n// Create collection of rectangles which are going to be used as frame for clusters\r\nconst rects = chart.addRectangleSeries()\r\n .setCursorEnabled(false)\r\n\r\n// Base style for strokes of frames. Line-FillStyle will be overridden per each cluster.\r\nconst strokeStyle = new SolidLine()\r\n .setThickness(2)\r\n\r\n// Setup view nicely.\r\nchart.getDefaultAxisX()\r\n .setInterval(0 * dataFrequency, 30 * dataFrequency, true, true)\r\n\r\nchart.getDefaultAxisY()\r\n .setTitle('Salary ($)')\r\n .setInterval(1500, 6500, true, true)\r\n/**\r\n* Adds clusters of points to specified series and creates frames for them\r\n* @param {PointSeries} series Series which should hold the cluster\r\n* @return Function which receives a cluster of points\r\n*/\r\nconst drawCluster = (series, points) => {\r\n // Add points to specified series\r\n series.add(points.map(point => ({ x: point.x * dataFrequency, y: point.y })))\r\n // Cache top left corner of cluster area\r\n series.setResultTableFormatter((builder, series, Xvalue, Yvalue) => {\r\n return builder\r\n .addRow(`${series.getName()}`)\r\n .addRow('Date : ' + series.axisX.formatValue(Xvalue))\r\n .addRow('Salary : $' + Yvalue.toFixed(0))\r\n })\r\n const topLeftCorner = {\r\n x: series.getXMin(),\r\n y: series.getYMin(),\r\n }\r\n // Create frame around cluster\r\n rects.add({\r\n x: topLeftCorner.x,\r\n y: topLeftCorner.y,\r\n width: series.getXMax() - topLeftCorner.x,\r\n height: series.getYMax() - topLeftCorner.y\r\n })\r\n // Disable filling of frame\r\n .setFillStyle(emptyFill)\r\n // Configure thickness and color of stroke via strokeStyle\r\n .setStrokeStyle(strokeStyle.setFillStyle(series.getPointFillStyle()))\r\n}\r\n\r\ndrawCluster(fstClusterSeries, kuopioPoints)\r\ndrawCluster(sndClusterSeries, helsinkiPoints)\r\n\r\n// Enable AutoCursor auto-fill.\r\nchart.setAutoCursor(cursor => (cursor)\r\n .setResultTableAutoTextStyle(true)\r\n .setTickMarkerXAutoTextStyle(true)\r\n .setTickMarkerYAutoTextStyle(true)\r\n)\r\n","url":null,"readme":"This example shows how to create clusters of differently colored points, how to get the boundaries of a series and use them to draw frames around each cluster.\r\n\r\nThe most efficient way to draw point cloud clusters is utilizing ***PointSeries***. The description of how to configure the visual appearance of points can be found in previous tutorials and more information can be found in API documentation.\r\n\r\n```javascript\r\n// Create point series which represents a single cluster.\r\nconst cluster = chart.addPointSeries()\r\n```\r\n\r\n## Boundaries\r\n\r\nEach series automatically computes its boundaries based on the data input and configuration of a series. Get the boundaries in axis values using the following methods:\r\n\r\n```javascript\r\n// Cache min corner of a series (this would be bottom left on progressive axes).\r\nconst minCorner = {\r\n x: series.getXMin(),\r\n y: series.getYMin(),\r\n}\r\n\r\n// Cache max corner of a series (this would be top right on progressive axes).\r\nconst maxCorner = {\r\n x: series.getXMax(),\r\n y: series.getYMax(),\r\n}\r\n```\r\n\r\nThe boundary rectangle is defined by two points in 2D space. The same methods are applicable to all the series as well as ***progressive series*** in any directions.\r\n","image":"pointClusters.png"},{"id":"lcjs-example-0007-sharedAxis","title":"Shared Axis","tags":["spline","axis","xy","legendbox"],"description":"Shows how to combine multiple series in to one chart.","src":"/*\r\n * LightningChartJS example that showcases sharing an Axis between two series.\r\n * Also, styling of chart zooming rectangle & axes.\r\n */\r\n// Import LightningChartJS\r\nconst lcjs = require('@arction/lcjs')\r\n\r\n// Extract required parts from LightningChartJS.\r\nconst {\r\n lightningChart,\r\n ColorPalettes,\r\n ColorRGBA,\r\n SolidFill,\r\n SolidLine,\r\n emptyLine,\r\n AxisTickStrategies,\r\n LegendBoxBuilders,\r\n UIOrigins,\r\n Themes\r\n} = lcjs\r\n\r\n// ----- Cache used styles -----\r\nconst palette = ColorPalettes.arction(10)\r\nconst colors = [6, 9, 0].map(palette)\r\nconst axisYColors = [colors[0], colors[1]]\r\nconst axisYStyles = axisYColors.map((color) => new SolidFill({ color }))\r\nconst axisYStrokeStyles = axisYStyles.map((fillStyle) => new SolidLine({ fillStyle, thickness: 2 }))\r\nconst axisYStylesHighlight = axisYStyles.map((fillStyle) => fillStyle.setA(100))\r\nconst axisXStyleHighlight = new SolidFill({ color: colors[2].setA(100) })\r\nconst seriesStrokeStyles = axisYStrokeStyles\r\nconst fittingRectangleStrokeStyle = new SolidLine({ fillStyle: new SolidFill({ color: ColorRGBA(255, 255, 255, 100) }), thickness: 2 })\r\nconst zoomingRectangleFillStyle = new SolidFill({ color: colors[2].setA(100) })\r\n\r\n// Decide on an origin for DateTime axis.\r\nconst dateOrigin = new Date(2018, 1, 5)\r\n// Create a XY Chart.\r\nconst chart = lightningChart().ChartXY({\r\n // theme: Themes.dark\r\n})\r\n .setPadding({\r\n right: 50\r\n })\r\n .setTitle('Unit production comparison')\r\n // Style chart zooming rectangle.\r\n .setFittingRectangleStrokeStyle(fittingRectangleStrokeStyle)\r\n .setZoomingRectangleFillStyle(zoomingRectangleFillStyle)\r\n\r\n// Cache reference to default axes and style them.\r\nconst axisX = chart.getDefaultAxisX()\r\n .setOverlayStyle(axisXStyleHighlight)\r\n .setNibOverlayStyle(axisXStyleHighlight)\r\n // Set the X Axis to use DateTime TickStrategy\r\n .setTickStrategy(\r\n AxisTickStrategies.DateTime,\r\n (tickStrategy) => tickStrategy.setDateOrigin(dateOrigin)\r\n )\r\n\r\n// Style the default Y Axis.\r\nconst axisY1 = chart.getDefaultAxisY()\r\n .setStrokeStyle(axisYStrokeStyles[0])\r\n .setOverlayStyle(axisYStylesHighlight[0])\r\n .setNibOverlayStyle(axisYStylesHighlight[0])\r\n // Modify the TickStrategy to remove gridLines from this Y Axis.\r\n .setTickStrategy(\r\n // Use Numeric TickStrategy as base.\r\n AxisTickStrategies.Numeric,\r\n // Use mutator to modify the TickStrategy.\r\n tickStrategy => tickStrategy\r\n // Modify Major Tick Style by using a mutator.\r\n .setMajorTickStyle(\r\n tickStyle => tickStyle\r\n .setGridStrokeStyle(emptyLine)\r\n )\r\n // Modify Minor Tick Style by using a mutator.\r\n .setMinorTickStyle(\r\n tickStyle => tickStyle\r\n .setGridStrokeStyle(emptyLine)\r\n )\r\n )\r\n\r\n// Create additional styled Y axis on left side.\r\nconst axisY2 = chart.addAxisY(false)\r\n .setTitle('No of units produced')\r\n .setStrokeStyle(axisYStrokeStyles[1])\r\n .setOverlayStyle(axisYStylesHighlight[1])\r\n .setNibOverlayStyle(axisYStylesHighlight[1])\r\n // Modify the TickStrategy to remove gridLines from this Y Axis.\r\n .setTickStrategy(\r\n // Use Numeric TickStrategy as base.\r\n AxisTickStrategies.Numeric,\r\n // Use mutator to modify the TickStrategy.\r\n tickStrategy => tickStrategy\r\n // Modify Major Tick Style by using a mutator.\r\n .setMajorTickStyle(\r\n tickStyle => tickStyle\r\n .setGridStrokeStyle(emptyLine)\r\n )\r\n // Modify Minor Tick Style by using a mutator.\r\n .setMinorTickStyle(\r\n tickStyle => tickStyle\r\n .setGridStrokeStyle(emptyLine)\r\n )\r\n )\r\n\r\n// Create series with explicit axes.\r\nconst splineSeries1 = chart.addSplineSeries({\r\n xAxis: axisX,\r\n yAxis: axisY1\r\n})\r\n .setName('TechComp')\r\n .setStrokeStyle(seriesStrokeStyles[0])\r\n .setPointFillStyle(() => seriesStrokeStyles[0].getFillStyle())\r\n\r\nconst splineSeries2 = chart.addSplineSeries({\r\n xAxis: axisX,\r\n yAxis: axisY2\r\n})\r\n .setName('UniTek')\r\n .setStrokeStyle(seriesStrokeStyles[1])\r\n .setPointFillStyle(() => seriesStrokeStyles[1].getFillStyle())\r\n\r\nconst techcomp = [\r\n { x: 0, y: 352 },\r\n { x: 1, y: 352 },\r\n { x: 2, y: 352 },\r\n { x: 3, y: 358 },\r\n { x: 4, y: 400 },\r\n { x: 5, y: 400 },\r\n { x: 6, y: 400 },\r\n { x: 7, y: 400 },\r\n { x: 8, y: 426 },\r\n { x: 9, y: 390 },\r\n { x: 10, y: 390 },\r\n { x: 11, y: 390 },\r\n { x: 12, y: 390 },\r\n { x: 13, y: 360 },\r\n { x: 14, y: 360 },\r\n { x: 15, y: 360 },\r\n { x: 16, y: 500 },\r\n { x: 17, y: 500 },\r\n { x: 18, y: 500 },\r\n { x: 19, y: 600 },\r\n]\r\n\r\nconst unitek = [\r\n { x: 0, y: 235 },\r\n { x: 1, y: 235 },\r\n { x: 2, y: 335 },\r\n { x: 3, y: 335 },\r\n { x: 4, y: 490 },\r\n { x: 5, y: 490 },\r\n { x: 6, y: 490 },\r\n { x: 7, y: 492 },\r\n { x: 8, y: 550 },\r\n { x: 9, y: 550 },\r\n { x: 10, y: 600 },\r\n { x: 11, y: 600 },\r\n { x: 12, y: 900 },\r\n { x: 13, y: 900 },\r\n { x: 14, y: 900 },\r\n { x: 15, y: 850 },\r\n { x: 16, y: 1000 },\r\n { x: 17, y: 1200 },\r\n { x: 18, y: 1200 },\r\n { x: 19, y: 1300 }\r\n]\r\nconst dataFrequency = 1000 * 60 * 60 * 24\r\nsplineSeries1.add(techcomp.map((point) => ({ x: point.x * dataFrequency * 7, y: point.y })))\r\nsplineSeries2.add(unitek.map((point) => ({ x: point.x * dataFrequency * 7, y: point.y })))\r\n\r\n// Setup Y views manually (for some extra margins).\r\naxisY1.setInterval(splineSeries1.getYMin() - 10, splineSeries1.getYMax() + 10, true, true)\r\naxisY2.setInterval(splineSeries2.getYMin() - 10, splineSeries2.getYMax() + 10, true, true)\r\n\r\n// Enable AutoCursor auto-fill.\r\nchart.setAutoCursor(cursor => {\r\n (cursor)\r\n .setResultTableAutoTextStyle(true)\r\n .setTickMarkerXAutoTextStyle(true)\r\n .setTickMarkerYAutoTextStyle(true)\r\n})\r\nconst legend = chart.addLegendBox(LegendBoxBuilders.HorizontalLegendBox)\r\n .setPosition({ x: 35, y: 90 })\r\n .setOrigin(UIOrigins.RightTop)\r\n .setMargin(10)\r\n// Add Chart to LegendBox\r\nlegend.add(chart)\r\n\r\nconst parser = (builder, series, Xvalue, Yvalue) => {\r\n return builder\r\n .addRow(series.getName())\r\n .addRow(axisX.formatValue(Xvalue))\r\n .addRow('Units: ' + Math.floor(Yvalue))\r\n}\r\nsplineSeries1.setResultTableFormatter(parser)\r\nsplineSeries2.setResultTableFormatter(parser)\r\n","url":null,"readme":"Best practice of data visualization within Data Analysis in different fields and industries is combining multiple series in one chart to examine and get richer insight about collected data. Moreover, it allows researchers to make conclusions about the researching phenomena out of each data set, to search patterns and relationships both within a collection and across collections\r\n\r\nThis example shows how to:\r\n- configure the axis styling;\r\n- create additional axes;\r\n- assign series to explicit axes;\r\n- styling of ChartXY zooming rectangle.\r\n\r\n## Request default axes.\r\n\r\nCartesian XY charts contains default X and Y axes by default. To request the default axes of a chart, you can simply use:\r\n\r\n```javascript\r\n// Cache reference to default X-axis for further usage.\r\nconst axisXDefault = chart.getDefaultAxisX()\r\n\r\n// Cache reference to default Y-axis for further usage.\r\nconst axisYDefault = chart.getDefaultAxisY()\r\n```\r\n\r\nDuring the creation of any XY series, you can attach series to default axes by not specifying the xAxis or yAxis options.\r\n\r\n## Create new axis and attach series.\r\n\r\n```javascript\r\n// Create additional X-axis\r\nconst axisYNew = chart.addAxisX()\r\n\r\n// Create additional Y-axis\r\nconst axisYNew = chart.addAxisY()\r\n```\r\n\r\nDuring the creation of any XY series, you can attach series to any axes via the cached references as the arguments.\r\n\r\n```javascript\r\n// Create series with explicit axes, share the same x-axis between two series.\r\nconst allSeries = [\r\n chart.addSplineSeries({\r\n xAxis: axisXDefault,\r\n yAxis: AxisYDefault\r\n }),\r\n chart.addSplineSeries({\r\n xAxis: axisXDefault,\r\n yAxis: axisYNew \r\n }),\r\n ...\r\n]\r\n```\r\n\r\n## Axis styling.\r\n\r\nBoth X and Y axes share the same flexible and fully customizable API, meaning the same setters and getters. The full list of methods of the class ***Axis*** you can find in LightningChart JS API reference.\r\n\r\n```javascript\r\n// Add additional styling for the axis.\r\naxis\r\n .setTitle( 'My axis' )\r\n // Configure axis line style.\r\n .setStrokeStyle( axisStrokeStyle )\r\n // Configure axis tick style by modifying the Axis TickStrategy.\r\n .setTickStrategy(\r\n // Use Numeric TickStrategy as Base.\r\n AxisTickStrategies.Numeric,\r\n // Use a mutator to modify the TickStrategy.\r\n ( tickStrategy ) => tickStrategy\r\n // Modify the Major Ticks for the TickStrategy.\r\n // Minor and Extreme TickStyles must be set separately.\r\n .setMajorTickStyle( visibleTicks => visibleTicks\r\n // Label fill Style.\r\n .setLabelFillStyle( axisLabelFillStyle )\r\n // Font.\r\n .setLabelFont( font => font\r\n // Configure the font.\r\n ...\r\n )\r\n // Grid stroke style\r\n .setGridStrokeStyle( gridStrokeStyle )\r\n )\r\n )\r\n // Configure axis overlay style (interactive axis area).\r\n .setOverlayStyle( axisFillStyleHighlight )\r\n // Configure axis nibs overlay style (interactive axis nibs area).\r\n .setNibOverlayStyle( axisFillStyleHighlight )\r\n```\r\n","image":"sharedAxis.png"},{"id":"lcjs-example-0008-lineSeriesMicroseconds","title":"Line Series Microseconds","tags":["xy","line","legendbox"],"description":"Example on how to deal with high-resolution data - for example, measurements in microseconds precision.","src":"/*\r\n * LightningChartJS example that showcases an Axis interval that is depicted as microseconds.\r\n */\r\n// Import LightningChartJS\r\nconst lcjs = require('@arction/lcjs')\r\n\r\n// Extract required parts from LightningChartJS.\r\nconst {\r\n lightningChart,\r\n AxisTickStrategies,\r\n UIOrigins,\r\n DataPatterns,\r\n Themes\r\n} = lcjs\r\n\r\n// Create a XY Chart.\r\nconst chart = lightningChart().ChartXY({\r\n // theme: Themes.dark\r\n})\r\n .setPadding({\r\n right: 50\r\n })\r\n .setTitle('High resolution voltage measurement')\r\n\r\n// Create Line series.\r\nconst lineSeries = chart.addLineSeries({ dataPattern: DataPatterns.horizontalProgressive })\r\n .setName('Voltage')\r\n\r\n// Axes can't properly scroll data with microseconds precision - define a factor to scale all X values with.\r\nconst dataScaleX = 1 * Math.pow( 1000, 3 ) // 1 us\r\n\r\n// Style Axes.\r\nchart.getDefaultAxisX()\r\n .setTitle( 'Time' )\r\n .setTickStrategy( AxisTickStrategies.Numeric, ( strategy ) => strategy\r\n // Format ticks with units.\r\n .setFormattingFunction( timeScaled =>\r\n Math.round( timeScaled ) + ' μs'\r\n )\r\n )\r\n\r\nchart.getDefaultAxisY()\r\n .setTitle( 'Voltage' )\r\n .setTickStrategy( AxisTickStrategies.Numeric, ( strategy ) => strategy\r\n // Format ticks with units.\r\n .setFormattingFunction( voltage =>\r\n voltage.toFixed( 2 ) + ' V'\r\n )\r\n )\r\n\r\nconst legend = chart.addLegendBox()\r\n .setOrigin(UIOrigins.RightTop)\r\n .setPosition({ x: 90, y: 90 })\r\n .setMargin({ left: 10, right: 10, top: 10, bottom: 10 })\r\n\r\n// Add Chart to LegendBox.\r\nlegend.add(chart)\r\n\r\nconst renderData = ( data ) => {\r\n // Add data.\r\n lineSeries.add( data.map( p => ({ x: p.x * dataScaleX, y: p.y }) ) )\r\n}\r\n\r\n// Data where 'x' = time in seconds and 'y' = voltage (V).\r\nrenderData(\r\n [\t{ x: -0.0000020000000000000003, y: 0.027443997800008942 },\r\n { x: -0.0000019990000000000003, y: -0.011040000894077058 },\r\n { x: -0.000001998, y: 0.03220101591561531 },\r\n { x: -0.000001997, y: 0.0032277195700614984 },\r\n { x: -0.000001996, y: -0.016034820491464274 },\r\n { x: -0.000001995, y: -0.008368059183426731 },\r\n { x: -0.000001994, y: -0.02177862894781828 },\r\n { x: -0.000001993, y: 0.001636039091765307 },\r\n { x: -0.0000019919999999999997, y: -0.03158798144826885 },\r\n { x: -0.0000019909999999999997, y: -0.013230578513313334 },\r\n { x: -0.0000019899999999999996, y: -0.012694187571129261 },\r\n { x: -0.0000019889999999999995, y: -0.0027350699497441875 },\r\n { x: -0.0000019879999999999994, y: 0.03298847629763905 },\r\n { x: -0.0000019869999999999994, y: -0.03717782287193666 },\r\n { x: -0.0000019859999999999993, y: 0.028062788701891394 },\r\n { x: -0.000001984999999999999, y: -0.016266999601182712 },\r\n { x: -0.000001983999999999999, y: -0.008046589284136109 },\r\n { x: -0.000001982999999999999, y: -0.003740378143367308 },\r\n { x: -0.000001981999999999999, y: 0.019358216986926403 },\r\n { x: -0.000001980999999999999, y: 0.02805533324925918 },\r\n { x: -0.000001979999999999999, y: 0.031225670024134983 },\r\n { x: -0.0000019789999999999988, y: 0.020582142130848646 },\r\n { x: -0.0000019779999999999987, y: -0.007463655137510183 },\r\n { x: -0.0000019769999999999986, y: -0.012432948528416126 },\r\n { x: -0.0000019759999999999985, y: -0.008897767785342523 },\r\n { x: -0.0000019749999999999985, y: 0.009059768800837458 },\r\n { x: -0.0000019739999999999984, y: -0.01802759024130608 },\r\n { x: -0.0000019729999999999983, y: -0.02600377226442229 },\r\n { x: -0.0000019719999999999982, y: 0.028207624634314542 },\r\n { x: -0.000001970999999999998, y: -0.012739022918053046 },\r\n { x: -0.000001969999999999998, y: -0.029461215330813854 },\r\n { x: -0.000001968999999999998, y: 0.03805686913709322 },\r\n { x: -0.000001967999999999998, y: 0.00863873273448897 },\r\n { x: -0.000001966999999999998, y: -0.023022703625994633 },\r\n { x: -0.0000019659999999999978, y: -0.0373599679488816 },\r\n { x: -0.0000019649999999999977, y: -0.035682458658072 },\r\n { x: -0.0000019639999999999976, y: 0.01684443788295703 },\r\n { x: -0.0000019629999999999976, y: 0.0328927810844329 },\r\n { x: -0.0000019619999999999975, y: -0.007839367701313547 },\r\n { x: -0.0000019609999999999974, y: 0.010748498921052238 },\r\n { x: -0.0000019599999999999973, y: -0.014900326268457866 },\r\n { x: -0.0000019589999999999973, y: 0.03595859412516749 },\r\n { x: -0.000001957999999999997, y: -0.02923854638665586 },\r\n { x: -0.000001956999999999997, y: -0.02341062868016332 },\r\n { x: -0.000001955999999999997, y: 0.007523826280203083 },\r\n { x: -0.000001954999999999997, y: -0.003733821934002091 },\r\n { x: -0.000001953999999999997, y: -0.021005461742955544 },\r\n { x: -0.000001952999999999997, y: -0.03151378617897506 },\r\n { x: -0.0000019519999999999967, y: 0.02774790358861265 },\r\n { x: -0.0000019509999999999967, y: 0.03795208393331581 },\r\n { x: -0.0000019499999999999966, y: 0.026283318084466992 },\r\n { x: -0.0000019489999999999965, y: 0.0039971746651379 },\r\n { x: -0.0000019479999999999964, y: -0.010837607472969751 },\r\n { x: -0.0000019469999999999964, y: 0.0045505495440374515 },\r\n { x: -0.0000019459999999999963, y: 0.02760932266323016 },\r\n { x: -0.000001944999999999996, y: -0.012932797683883203 },\r\n { x: -0.000001943999999999996, y: 0.026313178254021314 },\r\n { x: -0.000001942999999999996, y: -0.006753080306960189 },\r\n { x: -0.000001941999999999996, y: -0.005829791514477386 },\r\n { x: -0.000001940999999999996, y: 0.030479168110012805 },\r\n { x: -0.000001939999999999996, y: 0.019178344607547356 },\r\n { x: -0.0000019389999999999958, y: 0.025456333122878295 },\r\n { x: -0.0000019379999999999957, y: 0.035631691174438956 },\r\n { x: -0.0000019369999999999956, y: 0.00859127099361588 },\r\n { x: -0.0000019359999999999955, y: 0.031193035102678842 },\r\n { x: -0.0000019349999999999954, y: -0.007024064866093383 },\r\n { x: -0.0000019339999999999954, y: -0.02066494292075876 },\r\n { x: -0.0000019329999999999953, y: 0.03336475598292969 },\r\n { x: -0.0000019319999999999952, y: -0.00035095400945603806 },\r\n { x: -0.000001930999999999995, y: -0.034745500954158105 },\r\n { x: -0.000001929999999999995, y: 0.005364859917507523 },\r\n { x: -0.000001928999999999995, y: -0.02445169288471954 },\r\n { x: -0.000001927999999999995, y: -0.02441816045956086 },\r\n { x: -0.000001926999999999995, y: 0.027959876909385544 },\r\n { x: -0.0000019259999999999948, y: -0.007642897144741695 },\r\n { x: -0.0000019249999999999947, y: 0.032599275065726394 },\r\n { x: -0.0000019239999999999946, y: 0.01897552794893236 },\r\n { x: -0.0000019229999999999945, y: -0.0363220820132121 },\r\n { x: -0.0000019219999999999945, y: 0.03505807770706757 },\r\n { x: -0.0000019209999999999944, y: 0.009264323825879552 },\r\n { x: -0.0000019199999999999943, y: -0.02143546262960617 },\r\n { x: -0.0000019189999999999942, y: 0.028527256171897965 },\r\n { x: -0.000001917999999999994, y: -0.0067127373419447805 },\r\n { x: -0.000001916999999999994, y: -0.020852541725547107 },\r\n { x: -0.000001915999999999994, y: -0.021657662150244002 },\r\n { x: -0.000001914999999999994, y: -0.03396864467141348 },\r\n { x: -0.000001913999999999994, y: 0.025170812430718562 },\r\n { x: -0.000001912999999999994, y: -0.034041062837669465 },\r\n { x: -0.0000019119999999999937, y: 0.02651841202431338 },\r\n { x: -0.0000019109999999999936, y: -0.006762134246684295 },\r\n { x: -0.0000019099999999999936, y: -0.03227858249048464 },\r\n { x: -0.0000019089999999999935, y: 0.010328213861666406 },\r\n { x: -0.0000019079999999999934, y: -0.035234975360768035 },\r\n { x: -0.0000019069999999999933, y: 0.008202285542611463 },\r\n { x: -0.0000019059999999999933, y: 0.03663418613211281 },\r\n { x: -0.0000019049999999999932, y: 0.028359697089407786 },\r\n { x: -0.0000019039999999999931, y: -0.0011449575670857686 },\r\n { x: -0.000001902999999999993, y: -0.03469593477268927 },\r\n { x: -0.000001901999999999993, y: -0.008822618293776422 },\r\n { x: -0.000001900999999999993, y: -0.015392005406952342 },\r\n { x: -0.0000018999999999999928, y: -0.04518360794385557 },\r\n { x: -0.0000018989999999999927, y: 0.02910126189319455 },\r\n { x: -0.0000018979999999999927, y: -0.01300708363967233 },\r\n { x: -0.0000018969999999999926, y: 0.03130258988661914 },\r\n { x: -0.0000018959999999999925, y: -0.014506761541320573 },\r\n { x: -0.0000018949999999999924, y: 0.03218783959641612 },\r\n { x: -0.0000018939999999999924, y: 0.029112212730334326 },\r\n { x: -0.0000018929999999999923, y: 0.017927598690127274 },\r\n { x: -0.0000018919999999999922, y: -0.004076533400195019 },\r\n { x: -0.0000018909999999999921, y: -0.021586538692518108 },\r\n { x: -0.000001889999999999992, y: 0.024316189169899333 },\r\n { x: -0.000001888999999999992, y: -0.0009595592660485554 },\r\n { x: -0.000001887999999999992, y: 0.022661409690115604 },\r\n { x: -0.0000018869999999999918, y: -0.008687166080617334 },\r\n { x: -0.0000018859999999999918, y: -0.023019856894362905 },\r\n { x: -0.0000018849999999999917, y: -0.036456061302591346 },\r\n { x: -0.0000018839999999999916, y: -0.029041951272953746 },\r\n { x: -0.0000018829999999999915, y: 0.00028304357792953736 },\r\n { x: -0.0000018819999999999915, y: -0.005840458277975979 },\r\n { x: -0.0000018809999999999914, y: -0.03132213845755484 },\r\n { x: -0.0000018799999999999913, y: -0.036268599852988324 },\r\n { x: -0.0000018789999999999912, y: 0.002205837610027757 },\r\n { x: -0.0000018779999999999912, y: 0.013031057600248145 },\r\n { x: -0.000001876999999999991, y: -0.03455574905322708 },\r\n { x: -0.000001875999999999991, y: -0.029743157999385265 },\r\n { x: -0.000001874999999999991, y: -0.010761312798439556 },\r\n { x: -0.0000018739999999999909, y: 0.013523124350955592 },\r\n { x: -0.0000018729999999999908, y: 0.03568361714025206 },\r\n { x: -0.0000018719999999999907, y: -0.016715409638851157 },\r\n { x: -0.0000018709999999999906, y: -0.00206357013860716 },\r\n { x: -0.0000018699999999999906, y: 0.03411670680972927 },\r\n { x: -0.0000018689999999999905, y: -0.02059153285669426 },\r\n { x: -0.0000018679999999999904, y: -0.03633104201502672 },\r\n { x: -0.0000018669999999999903, y: -0.006489791618759054 },\r\n { x: -0.0000018659999999999903, y: 0.01045866733469699 },\r\n { x: -0.0000018649999999999902, y: -0.0027697467676163503 },\r\n { x: -0.0000018639999999999901, y: -0.029697004907042607 },\r\n { x: -0.00000186299999999999, y: 0.005723695241045038 },\r\n { x: -0.00000186199999999999, y: -0.023432819432466293 },\r\n { x: -0.0000018609999999999899, y: 0.018208640624164177 },\r\n { x: -0.0000018599999999999898, y: 0.03397687566261656 },\r\n { x: -0.0000018589999999999897, y: 0.001044150533833599 },\r\n { x: -0.0000018579999999999897, y: 0.016601315132935505 },\r\n { x: -0.0000018569999999999896, y: 0.03443461371113354 },\r\n { x: -0.0000018559999999999895, y: 0.030551410069500705 },\r\n { x: -0.0000018549999999999894, y: 0.023762302714107127 },\r\n { x: -0.0000018539999999999894, y: 0.0013342846525567543 },\r\n { x: -0.0000018529999999999893, y: -0.0037704642983602326 },\r\n { x: -0.0000018519999999999892, y: 0.02075692057102816 },\r\n { x: -0.0000018509999999999891, y: 0.023435128809193326 },\r\n { x: -0.000001849999999999989, y: -0.016480263785375045 },\r\n { x: -0.000001848999999999989, y: 0.008988784831886632 },\r\n { x: -0.000001847999999999989, y: 0.02373799637260906 },\r\n { x: -0.0000018469999999999888, y: -0.029384486124532948 },\r\n { x: -0.0000018459999999999888, y: 0.035290195796315094 },\r\n { x: -0.0000018449999999999887, y: 0.0020322517599329587 },\r\n { x: -0.0000018439999999999886, y: 0.013459324289630826 },\r\n { x: -0.0000018429999999999885, y: -0.03349981225685477 },\r\n { x: -0.0000018419999999999885, y: 0.0004503222444585232 },\r\n { x: -0.0000018409999999999884, y: -0.025282688802514657 },\r\n { x: -0.0000018399999999999883, y: -0.008140477762443664 },\r\n { x: -0.0000018389999999999882, y: 0.038161874411562505 },\r\n { x: -0.0000018379999999999882, y: -0.009017410538765064 },\r\n { x: -0.000001836999999999988, y: 0.00739591383229465 },\r\n { x: -0.000001835999999999988, y: 0.020793198627238142 },\r\n { x: -0.000001834999999999988, y: 0.03600691188395843 },\r\n { x: -0.0000018339999999999879, y: -0.014613405824333863 },\r\n { x: -0.0000018329999999999878, y: -0.03556249668928594 },\r\n { x: -0.0000018319999999999877, y: -0.006977721579423031 },\r\n { x: -0.0000018309999999999876, y: 0.00218877764318305 },\r\n { x: -0.0000018299999999999876, y: 0.03145750642434614 },\r\n { x: -0.0000018289999999999875, y: 0.025384659279849106 },\r\n { x: -0.0000018279999999999874, y: -0.001949637967593855 },\r\n { x: -0.0000018269999999999873, y: -0.017396974557809246 },\r\n { x: -0.0000018259999999999873, y: 0.032611469706830126 },\r\n { x: -0.0000018249999999999872, y: -0.002817649514673136 },\r\n { x: -0.0000018239999999999871, y: 0.027260544960630944 },\r\n { x: -0.000001822999999999987, y: 0.00033326240856916046 },\r\n { x: -0.000001821999999999987, y: 0.03486195512822336 },\r\n { x: -0.0000018209999999999869, y: 0.03690884703117051 },\r\n { x: -0.0000018199999999999868, y: 0.03489597947977195 },\r\n { x: -0.0000018189999999999867, y: -0.030348952949814937 },\r\n { x: -0.0000018179999999999867, y: 0.026688499136513034 },\r\n { x: -0.0000018169999999999866, y: 0.006863276108334038 },\r\n { x: -0.0000018159999999999865, y: -0.026016793825958878 },\r\n { x: -0.0000018149999999999864, y: 0.014008012573715482 },\r\n { x: -0.0000018139999999999864, y: 0.009940815646185914 },\r\n { x: -0.0000018129999999999863, y: -0.037945867585199876 },\r\n { x: -0.0000018119999999999862, y: -0.001443902586843467 },\r\n { x: -0.0000018109999999999861, y: 0.01991400228379446 },\r\n { x: -0.000001809999999999986, y: 0.01020360634032546 },\r\n { x: -0.000001808999999999986, y: 0.027383171571702034 },\r\n { x: -0.000001807999999999986, y: -0.011592117108027615 },\r\n { x: -0.0000018069999999999858, y: 0.03810667828556246 },\r\n { x: -0.0000018059999999999858, y: 0.009892743158172968 },\r\n { x: -0.0000018049999999999857, y: 0.02332286861861942 },\r\n { x: -0.0000018039999999999856, y: -0.029160930928847445 },\r\n { x: -0.0000018029999999999855, y: 0.03083595102606925 },\r\n { x: -0.0000018019999999999855, y: 0.03185933705766087 },\r\n { x: -0.0000018009999999999854, y: -0.016322833672328733 },\r\n { x: -0.0000017999999999999853, y: -0.037541498780036035 },\r\n { x: -0.0000017989999999999852, y: 0.03756493189487169 },\r\n { x: -0.0000017979999999999852, y: 0.00855067935575207 },\r\n { x: -0.000001796999999999985, y: 0.01762873682077035 },\r\n { x: -0.000001795999999999985, y: -0.031271530406916194 },\r\n { x: -0.000001794999999999985, y: -0.007511235404087135 },\r\n { x: -0.0000017939999999999849, y: 0.008675065759418225 },\r\n { x: -0.0000017929999999999848, y: 0.003963060404253502 },\r\n { x: -0.0000017919999999999847, y: 0.00029004691820512697 },\r\n { x: -0.0000017909999999999846, y: -0.0062925581838445335 },\r\n { x: -0.0000017899999999999846, y: -0.019073943132143625 },\r\n { x: -0.0000017889999999999845, y: 0.021782356217131624 },\r\n { x: -0.0000017879999999999844, y: 0.014551121055763026 },\r\n { x: -0.0000017869999999999843, y: -0.0037712770378505334 },\r\n { x: -0.0000017859999999999843, y: 0.003196404071630132 },\r\n { x: -0.0000017849999999999842, y: 0.004097601482372611 },\r\n { x: -0.000001783999999999984, y: -0.02760739005761792 },\r\n { x: -0.000001782999999999984, y: 0.02346455705246093 },\r\n { x: -0.000001781999999999984, y: 0.028157954639258607 },\r\n { x: -0.0000017809999999999839, y: -0.0281663646584906 },\r\n { x: -0.0000017799999999999838, y: -0.020050321492854864 },\r\n { x: -0.0000017789999999999837, y: -0.03450758648650922 },\r\n { x: -0.0000017779999999999837, y: -0.004711109700737442 },\r\n { x: -0.0000017769999999999836, y: -0.02153624154001886 },\r\n { x: -0.0000017759999999999835, y: 0.0024897326824874764 },\r\n { x: -0.0000017749999999999834, y: -0.02929082189178312 },\r\n { x: -0.0000017739999999999834, y: -0.021160404534973545 },\r\n { x: -0.0000017729999999999833, y: 0.002926598875496956 },\r\n { x: -0.0000017719999999999832, y: 0.02210674047685129 },\r\n { x: -0.0000017709999999999831, y: -0.026253693966361482 },\r\n { x: -0.000001769999999999983, y: 0.05359998036268774 },\r\n { x: -0.000001768999999999983, y: 0.03806738529198046 },\r\n { x: -0.000001767999999999983, y: 0.026994016056222522 },\r\n { x: -0.0000017669999999999828, y: 0.02625644997491527 },\r\n { x: -0.0000017659999999999828, y: 0.01665819435009591 },\r\n { x: -0.0000017649999999999827, y: 0.023990832366654127 },\r\n { x: -0.0000017639999999999826, y: 0.03265737148275018 },\r\n { x: -0.0000017629999999999825, y: -0.018629533687752838 },\r\n { x: -0.0000017619999999999825, y: -0.019302626236293367 },\r\n { x: -0.0000017609999999999824, y: 0.02876098449524871 },\r\n { x: -0.0000017599999999999823, y: 0.02063751975883102 },\r\n { x: -0.0000017589999999999822, y: 0.003113301195771266 },\r\n { x: -0.0000017579999999999822, y: 0.024922292320332523 },\r\n { x: -0.000001756999999999982, y: -0.0025514888923617663 },\r\n { x: -0.000001755999999999982, y: -0.028108413760713165 },\r\n { x: -0.000001754999999999982, y: 0.03770333639507348 },\r\n { x: -0.0000017539999999999819, y: -0.03317018103662581 },\r\n { x: -0.0000017529999999999818, y: 0.02577908324360529 },\r\n { x: -0.0000017519999999999817, y: -0.004217730571231011 },\r\n { x: -0.0000017509999999999816, y: -0.010211916917125268 },\r\n { x: -0.0000017499999999999816, y: 0.0002387325693502609 },\r\n { x: -0.0000017489999999999815, y: 0.01730955555392116 },\r\n { x: -0.0000017479999999999814, y: -0.003231023023180327 },\r\n { x: -0.0000017469999999999813, y: 0.015104797909205239 },\r\n { x: -0.0000017459999999999813, y: -0.01581055133778467 },\r\n { x: -0.0000017449999999999812, y: -0.014337983194033614 },\r\n { x: -0.000001743999999999981, y: -0.03189010354523514 },\r\n { x: -0.000001742999999999981, y: -0.005811701639256257 },\r\n { x: -0.000001741999999999981, y: 0.02131138341707936 },\r\n { x: -0.0000017409999999999809, y: 0.033494505712979725 },\r\n { x: -0.0000017399999999999808, y: -0.011268725478945517 },\r\n { x: -0.0000017389999999999807, y: -0.00732929990942941 },\r\n { x: -0.0000017379999999999806, y: 0.0208494277293929 },\r\n { x: -0.0000017369999999999806, y: -0.004183691156097971 },\r\n { x: -0.0000017359999999999805, y: 0.002863262513397182 },\r\n { x: -0.0000017349999999999804, y: 0.011653655449059285 },\r\n { x: -0.0000017339999999999803, y: 0.004248393677670983 },\r\n { x: -0.0000017329999999999803, y: 0.03482355223939272 },\r\n { x: -0.0000017319999999999802, y: -0.03701881013794184 },\r\n { x: -0.0000017309999999999801, y: -0.004771932178194324 },\r\n { x: -0.00000172999999999998, y: 0.005817386986338741 },\r\n { x: -0.00000172899999999998, y: 0.014114083473255634 },\r\n { x: -0.00000172799999999998, y: -0.005084168187920563 },\r\n { x: -0.0000017269999999999798, y: -0.028948148966163323 },\r\n { x: -0.0000017259999999999797, y: 0.026854936956580734 },\r\n { x: -0.0000017249999999999797, y: -0.014406758716746666 },\r\n { x: -0.0000017239999999999796, y: 0.0014100396411234517 },\r\n { x: -0.0000017229999999999795, y: -0.0242366217939274 },\r\n { x: -0.0000017219999999999794, y: -0.021505584137149807 },\r\n { x: -0.0000017209999999999794, y: -0.0015774938453259181 },\r\n { x: -0.0000017199999999999793, y: -0.011577040773153862 },\r\n { x: -0.0000017189999999999792, y: -0.01651527046796279 },\r\n { x: -0.0000017179999999999791, y: 0.01351805827157814 },\r\n { x: -0.000001716999999999979, y: -0.02532953126946272 },\r\n { x: -0.000001715999999999979, y: -0.00785046991469629 },\r\n { x: -0.000001714999999999979, y: 0.024158535288603317 },\r\n { x: -0.0000017139999999999788, y: 0.02136620501046216 },\r\n { x: -0.0000017129999999999788, y: -0.030617441000178443 },\r\n { x: -0.0000017119999999999787, y: -0.010374656275300837 },\r\n { x: -0.0000017109999999999786, y: 0.03092700293256923 },\r\n { x: -0.0000017099999999999785, y: -0.018237460571863425 },\r\n { x: -0.0000017089999999999785, y: 0.017185053715860495 },\r\n { x: -0.0000017079999999999784, y: -0.013665421833832443 },\r\n { x: -0.0000017069999999999783, y: 0.007695845787504048 },\r\n { x: -0.0000017059999999999782, y: -0.01826986965854103 },\r\n { x: -0.0000017049999999999782, y: -0.03568570786873319 },\r\n { x: -0.000001703999999999978, y: 0.017205170628042856 },\r\n { x: -0.000001702999999999978, y: -0.02766296350511127 },\r\n { x: -0.000001701999999999978, y: 0.006249663368645423 },\r\n { x: -0.0000017009999999999779, y: 0.026237862328107483 },\r\n { x: -0.0000016999999999999778, y: -0.0006922538726388271 },\r\n { x: -0.0000016989999999999777, y: -0.01157977691779717 },\r\n { x: -0.0000016979999999999776, y: -0.006116621163963813 },\r\n { x: -0.0000016969999999999776, y: -0.01826167999463326 },\r\n { x: -0.0000016959999999999775, y: -0.0202664714611218 },\r\n { x: -0.0000016949999999999774, y: 0.019580936889153466 },\r\n { x: -0.0000016939999999999773, y: 0.036516020922498144 },\r\n { x: -0.0000016929999999999773, y: 0.006726740477367732 },\r\n { x: -0.0000016919999999999772, y: 0.037557247726196515 },\r\n { x: -0.0000016909999999999771, y: 0.002067814002438272 },\r\n { x: -0.000001689999999999977, y: 0.037599406847097165 },\r\n { x: -0.000001688999999999977, y: -0.0017070734718797657 },\r\n { x: -0.0000016879999999999769, y: -0.023570591476728377 },\r\n { x: -0.0000016869999999999768, y: -0.0077551906537367205 },\r\n { x: -0.0000016859999999999767, y: -0.029287936482090843 },\r\n { x: -0.0000016849999999999767, y: 0.006663992282813844 },\r\n { x: -0.0000016839999999999766, y: -0.005548332476572741 },\r\n { x: -0.0000016829999999999765, y: -0.023951053384545097 },\r\n { x: -0.0000016819999999999764, y: -0.03291321066508165 },\r\n { x: -0.0000016809999999999764, y: -0.019960586070344042 },\r\n { x: -0.0000016799999999999763, y: -0.007054054584606562 },\r\n { x: -0.0000016789999999999762, y: 0.0028747173734658613 },\r\n { x: -0.0000016779999999999761, y: -0.00045323748266656204 },\r\n { x: -0.000001676999999999976, y: 0.02470966737147559 },\r\n { x: -0.000001675999999999976, y: 0.02555662047756956 },\r\n { x: -0.000001674999999999976, y: 0.001403952338910754 },\r\n { x: -0.0000016739999999999758, y: 0.010690444473446312 },\r\n { x: -0.0000016729999999999758, y: -0.03754330222745358 },\r\n { x: -0.0000016719999999999757, y: 0.024041042260192626 },\r\n { x: -0.0000016709999999999756, y: 0.01822540019455112 },\r\n { x: -0.0000016699999999999755, y: -0.0353528108635974 },\r\n { x: -0.0000016689999999999755, y: 0.022709725473962775 },\r\n { x: -0.0000016679999999999754, y: 0.013263211725082578 },\r\n { x: -0.0000016669999999999753, y: -0.036001865944095844 },\r\n { x: -0.0000016659999999999752, y: -0.021589626479641633 },\r\n { x: -0.0000016649999999999752, y: -0.0009457269156792226 },\r\n { x: -0.000001663999999999975, y: -0.03526730551618745 },\r\n { x: -0.000001662999999999975, y: -0.031139949355087664 },\r\n { x: -0.000001661999999999975, y: 0.004528737376877672 },\r\n { x: -0.0000016609999999999749, y: -0.03827465514571537 },\r\n { x: -0.0000016599999999999748, y: -0.02503998889103173 },\r\n { x: -0.0000016589999999999747, y: -0.010169102639365898 },\r\n { x: -0.0000016579999999999746, y: -0.01001446525404002 },\r\n { x: -0.0000016569999999999746, y: 0.016680736485168293 },\r\n { x: -0.0000016559999999999745, y: -0.013732467310046926 },\r\n { x: -0.0000016549999999999744, y: -0.017721649992474872 },\r\n { x: -0.0000016539999999999743, y: -0.0019302643202449875 },\r\n { x: -0.0000016529999999999743, y: -0.0081300397611309 },\r\n { x: -0.0000016519999999999742, y: 0.011309441104275324 },\r\n { x: -0.0000016509999999999741, y: -0.0069967222102437845 },\r\n { x: -0.000001649999999999974, y: 0.027687391042178315 },\r\n { x: -0.000001648999999999974, y: 0.038273352069532154 },\r\n { x: -0.0000016479999999999739, y: -0.02129943201691494 },\r\n { x: -0.0000016469999999999738, y: 0.02732918341023124 },\r\n { x: -0.0000016459999999999737, y: 0.03498099852687302 },\r\n { x: -0.0000016449999999999737, y: 0.032307917109769727 },\r\n { x: -0.0000016439999999999736, y: 0.005823496283235522 },\r\n { x: -0.0000016429999999999735, y: 0.010325729735277123 },\r\n { x: -0.0000016419999999999734, y: -0.017081451782887343 },\r\n { x: -0.0000016409999999999734, y: -0.016511195560129546 },\r\n { x: -0.0000016399999999999733, y: 0.028076988497025952 },\r\n { x: -0.0000016389999999999732, y: 0.025124124947821923 },\r\n { x: -0.0000016379999999999731, y: 0.003913201123204757 },\r\n { x: -0.000001636999999999973, y: 0.016040005116074802 },\r\n { x: -0.000001635999999999973, y: -0.0058825529035995035 },\r\n { x: -0.000001634999999999973, y: 0.027711083464403975 },\r\n { x: -0.0000016339999999999728, y: -0.03637297933871895 },\r\n { x: -0.0000016329999999999728, y: 0.02417521122398841 },\r\n { x: -0.0000016319999999999727, y: -0.025972328826643874 },\r\n { x: -0.0000016309999999999726, y: 0.026150542055262474 },\r\n { x: -0.0000016299999999999725, y: 0.010180716162685193 },\r\n { x: -0.0000016289999999999725, y: -0.03420629545303245 },\r\n { x: -0.0000016279999999999724, y: 0.009302769603414154 },\r\n { x: -0.0000016269999999999723, y: -0.03513708423837472 },\r\n { x: -0.0000016259999999999722, y: 0.001002193988481779 },\r\n { x: -0.0000016249999999999722, y: -0.02176335991314274 },\r\n { x: -0.000001623999999999972, y: -0.007806508307155519 },\r\n { x: -0.000001622999999999972, y: -0.030911213821737196 },\r\n { x: -0.000001621999999999972, y: -0.027088600574083705 },\r\n { x: -0.0000016209999999999719, y: 0.03267522902742575 },\r\n { x: -0.0000016199999999999718, y: -0.0011230303124528781 },\r\n { x: -0.0000016189999999999717, y: 0.02264220548172921 },\r\n { x: -0.0000016179999999999716, y: 0.019222764186777923 },\r\n { x: -0.0000016169999999999716, y: 0.014582739267587812 },\r\n { x: -0.0000016159999999999715, y: 0.023712052179536054 },\r\n { x: -0.0000016149999999999714, y: 0.03793832988011892 },\r\n { x: -0.0000016139999999999713, y: 0.029776525394076048 },\r\n { x: -0.0000016129999999999713, y: -0.02656036550095476 },\r\n { x: -0.0000016119999999999712, y: -0.03710389085820699 },\r\n { x: -0.0000016109999999999711, y: 0.003956991603219941 },\r\n { x: -0.000001609999999999971, y: -0.015159294164777766 },\r\n { x: -0.000001608999999999971, y: 0.02878750291330663 },\r\n { x: -0.0000016079999999999709, y: 0.0306487879720793 },\r\n { x: -0.0000016069999999999708, y: 0.006111693429665233 },\r\n { x: -0.0000016059999999999707, y: -0.018419938506552807 },\r\n { x: -0.0000016049999999999707, y: 0.022337135627419805 },\r\n { x: -0.0000016039999999999706, y: 0.0038467144798397346 },\r\n { x: -0.0000016029999999999705, y: 0.02397815606698168 },\r\n { x: -0.0000016019999999999704, y: -0.018691207063099256 },\r\n { x: -0.0000016009999999999704, y: -0.004247287342880034 },\r\n { x: -0.0000015999999999999703, y: -0.013588836507485508 },\r\n { x: -0.0000015989999999999702, y: -0.02234393890864792 },\r\n { x: -0.0000015979999999999701, y: 0.02763686603284322 },\r\n { x: -0.00000159699999999997, y: 0.01830383168190865 },\r\n { x: -0.00000159599999999997, y: 0.030411638585228492 },\r\n { x: -0.00000159499999999997, y: 0.028976314214250697 },\r\n { x: -0.0000015939999999999698, y: 0.032471366429675075 },\r\n { x: -0.0000015929999999999698, y: 0.005275984619956652 },\r\n { x: -0.0000015919999999999697, y: 0.01202838566774187 },\r\n { x: -0.0000015909999999999696, y: -0.030463302243678353 },\r\n { x: -0.0000015899999999999695, y: -0.027903637871968798 },\r\n { x: -0.0000015889999999999695, y: -0.01564286546158084 },\r\n { x: -0.0000015879999999999694, y: -0.026594371449461626 },\r\n { x: -0.0000015869999999999693, y: -0.004368804744709417 },\r\n { x: -0.0000015859999999999692, y: -0.029326479185961565 },\r\n { x: -0.0000015849999999999692, y: -0.03692357810548272 },\r\n { x: -0.000001583999999999969, y: -0.009035109854370968 },\r\n { x: -0.000001582999999999969, y: 0.027295175150539256 },\r\n { x: -0.000001581999999999969, y: -0.016117249239187812 },\r\n { x: -0.0000015809999999999689, y: -0.024946630431160816 },\r\n { x: -0.0000015799999999999688, y: -0.022865028495272093 },\r\n { x: -0.0000015789999999999687, y: 0.028965465589157326 },\r\n { x: -0.0000015779999999999686, y: -0.004570467627980707 },\r\n { x: -0.0000015769999999999686, y: 0.03629402789384118 },\r\n { x: -0.0000015759999999999685, y: 0.01682744387323598 },\r\n { x: -0.0000015749999999999684, y: 0.007814712769640611 },\r\n { x: -0.0000015739999999999683, y: 0.0019249147715995946 },\r\n { x: -0.0000015729999999999683, y: -0.021704365266979865 },\r\n { x: -0.0000015719999999999682, y: -0.023673888940024205 },\r\n { x: -0.000001570999999999968, y: -0.004677381551044262 },\r\n { x: -0.000001569999999999968, y: -0.006068617237826557 },\r\n { x: -0.000001568999999999968, y: -0.017918076789667885 },\r\n { x: -0.0000015679999999999679, y: 0.026551550390859543 },\r\n { x: -0.0000015669999999999678, y: 0.014500599778608384 },\r\n { x: -0.0000015659999999999677, y: -0.03642499249327356 },\r\n { x: -0.0000015649999999999677, y: -0.0037760651011045864 },\r\n { x: -0.0000015639999999999676, y: 0.023517454573185794 },\r\n { x: -0.0000015629999999999675, y: 0.016814922373429277 },\r\n { x: -0.0000015619999999999674, y: -0.014137761182278887 },\r\n { x: -0.0000015609999999999674, y: -0.01732752047890942 },\r\n { x: -0.0000015599999999999673, y: 0.03369900701162833 },\r\n { x: -0.0000015589999999999672, y: 0.025786809907088922 },\r\n { x: -0.0000015579999999999671, y: 0.03494285565327627 },\r\n { x: -0.000001556999999999967, y: -0.020796040081896092 },\r\n { x: -0.000001555999999999967, y: -0.0358237436655389 },\r\n { x: -0.000001554999999999967, y: -0.022319507433199957 },\r\n { x: -0.0000015539999999999668, y: 0.004650034718501579 },\r\n { x: -0.0000015529999999999668, y: -0.007666410808605413 },\r\n { x: -0.0000015519999999999667, y: 0.009137852540213638 },\r\n { x: -0.0000015509999999999666, y: -0.010767696400769713 },\r\n { x: -0.0000015499999999999665, y: -0.005587811745368615 },\r\n { x: -0.0000015489999999999664, y: 0.008415642214975446 },\r\n { x: -0.0000015479999999999664, y: -0.01081446284084006 },\r\n { x: -0.0000015469999999999663, y: 0.015314461815086179 },\r\n { x: -0.0000015459999999999662, y: 0.008450995041305025 },\r\n { x: -0.0000015449999999999661, y: 0.004444324412883591 },\r\n { x: -0.000001543999999999966, y: -0.018955883210844692 },\r\n { x: -0.000001542999999999966, y: 0.037255692656265195 },\r\n { x: -0.000001541999999999966, y: 0.03688475931060501 },\r\n { x: -0.0000015409999999999658, y: 0.050730434673620324 },\r\n { x: -0.0000015399999999999658, y: -0.01758099399889343 },\r\n { x: -0.0000015389999999999657, y: 0.001879036494873778 },\r\n { x: -0.0000015379999999999656, y: 0.025673340786925784 },\r\n { x: -0.0000015369999999999655, y: -0.007330310913538365 },\r\n { x: -0.0000015359999999999655, y: 0.022629615096798922 },\r\n { x: -0.0000015349999999999654, y: 0.015213991925625812 },\r\n { x: -0.0000015339999999999653, y: -0.009524043428847741 },\r\n { x: -0.0000015329999999999652, y: 0.02007465671903068 },\r\n { x: -0.0000015319999999999652, y: 0.004227700939355161 },\r\n { x: -0.000001530999999999965, y: -0.004024839587506067 },\r\n { x: -0.000001529999999999965, y: 0.01047966241120587 },\r\n { x: -0.000001528999999999965, y: -0.030366590788430216 },\r\n { x: -0.0000015279999999999649, y: -0.008926299594305263 },\r\n { x: -0.0000015269999999999648, y: -0.020224092451015124 },\r\n { x: -0.0000015259999999999647, y: 0.006585604801753251 },\r\n { x: -0.0000015249999999999646, y: 0.010846671749648913 },\r\n { x: -0.0000015239999999999646, y: 0.016093650543890038 },\r\n { x: -0.0000015229999999999645, y: 0.0018563985150977886 },\r\n { x: -0.0000015219999999999644, y: 0.033758821423495164 },\r\n { x: -0.0000015209999999999643, y: -0.003168435574904403 },\r\n { x: -0.0000015199999999999643, y: -0.01132088989622624 },\r\n { x: -0.0000015189999999999642, y: 0.0007549758022283582 },\r\n { x: -0.0000015179999999999641, y: -0.030825787058457187 },\r\n { x: -0.000001516999999999964, y: -0.006838645511243576 },\r\n { x: -0.000001515999999999964, y: 0.02906803026576124 },\r\n { x: -0.000001514999999999964, y: 0.02742744909956504 },\r\n { x: -0.0000015139999999999638, y: 0.00665307937926437 },\r\n { x: -0.0000015129999999999637, y: 0.03316412891553206 },\r\n { x: -0.0000015119999999999637, y: 0.017803996184510625 },\r\n { x: -0.0000015109999999999636, y: -0.06589171996638397 },\r\n { x: -0.0000015099999999999635, y: -0.027603144614221763 },\r\n { x: -0.0000015089999999999634, y: 0.019489043192729257 },\r\n { x: -0.0000015079999999999634, y: -0.015630527648990342 },\r\n { x: -0.0000015069999999999633, y: 0.016025860611987738 },\r\n { x: -0.0000015059999999999632, y: -0.025830766306315766 },\r\n { x: -0.0000015049999999999631, y: 0.02135637176769207 },\r\n { x: -0.000001503999999999963, y: 0.005467210366994031 },\r\n { x: -0.000001502999999999963, y: 0.02870958963462975 },\r\n { x: -0.000001501999999999963, y: 0.0197343222335618 },\r\n { x: -0.0000015009999999999628, y: 0.0215108445606027 },\r\n { x: -0.0000014999999999999628, y: -0.024554000625190378 },\r\n { x: -0.0000014989999999999627, y: 0.009766405377519948 },\r\n { x: -0.0000014979999999999626, y: 0.016604303734639708 },\r\n { x: -0.0000014969999999999625, y: 0.02614364488390815 },\r\n { x: -0.0000014959999999999625, y: 0.026593595972571396 },\r\n { x: -0.0000014949999999999624, y: -0.02508773158101463 },\r\n { x: -0.0000014939999999999623, y: 0.0004217851630237949 },\r\n { x: -0.0000014929999999999622, y: 0.00038824184760433394 },\r\n { x: -0.0000014919999999999622, y: 0.036018010076732346 },\r\n { x: -0.000001490999999999962, y: -0.001845705278515307 },\r\n { x: -0.000001489999999999962, y: 0.014418936547289547 },\r\n { x: -0.000001488999999999962, y: -0.006413652163800691 },\r\n { x: -0.0000014879999999999619, y: 0.013614132507233676 },\r\n { x: -0.0000014869999999999618, y: 0.022888423992930774 },\r\n { x: -0.0000014859999999999617, y: 0.02630156526696778 },\r\n { x: -0.0000014849999999999616, y: -0.014683265916556519 },\r\n { x: -0.0000014839999999999616, y: 0.0172981856994561 },\r\n { x: -0.0000014829999999999615, y: -0.03130213155004245 },\r\n { x: -0.0000014819999999999614, y: -0.025848845474759317 },\r\n { x: -0.0000014809999999999613, y: -0.02689770555208866 },\r\n { x: -0.0000014799999999999613, y: -0.03250423235521302 },\r\n { x: -0.0000014789999999999612, y: -0.02961638681474093 },\r\n { x: -0.0000014779999999999611, y: 0.0035325217924576874 },\r\n { x: -0.000001476999999999961, y: -0.013338067664116765 },\r\n { x: -0.000001475999999999961, y: 0.014103781002583669 },\r\n { x: -0.0000014749999999999609, y: 0.028160161100842664 },\r\n { x: -0.0000014739999999999608, y: -0.02072358885035968 },\r\n { x: -0.0000014729999999999607, y: -0.012258872740382778 },\r\n { x: -0.0000014719999999999607, y: 0.014327771077939696 },\r\n { x: -0.0000014709999999999606, y: -0.027036068482999054 },\r\n { x: -0.0000014699999999999605, y: 0.0009617176485291096 },\r\n { x: -0.0000014689999999999604, y: -0.023944562341732315 },\r\n { x: -0.0000014679999999999604, y: 0.03647736441639213 },\r\n { x: -0.0000014669999999999603, y: -0.014188368551879518 },\r\n { x: -0.0000014659999999999602, y: -0.03425407275374076 },\r\n { x: -0.0000014649999999999601, y: 0.025517563902703894 },\r\n { x: -0.00000146399999999996, y: -0.0190038712386199 },\r\n { x: -0.00000146299999999996, y: -0.024506638363246853 },\r\n { x: -0.00000146199999999996, y: 0.017470478791539557 },\r\n { x: -0.0000014609999999999598, y: -0.006897958537798765 },\r\n { x: -0.0000014599999999999598, y: -0.01669165739633163 },\r\n { x: -0.0000014589999999999597, y: 0.027771923211038208 },\r\n { x: -0.0000014579999999999596, y: -0.020640591294015694 },\r\n { x: -0.0000014569999999999595, y: -0.03354556150560368 },\r\n { x: -0.0000014559999999999595, y: -0.008066856315532563 },\r\n { x: -0.0000014549999999999594, y: -0.011634281946335177 },\r\n { x: -0.0000014539999999999593, y: -0.016139012079545993 },\r\n { x: -0.0000014529999999999592, y: 0.02079255450068453 },\r\n { x: -0.0000014519999999999592, y: -0.03102102969393635 },\r\n { x: -0.000001450999999999959, y: 0.03298856541824959 },\r\n { x: -0.000001449999999999959, y: -0.033427019696285185 },\r\n { x: -0.000001448999999999959, y: 0.00873626851594936 },\r\n { x: -0.0000014479999999999589, y: 0.02217444921260821 },\r\n { x: -0.0000014469999999999588, y: -0.004222592004454241 },\r\n { x: -0.0000014459999999999587, y: 0.03730086149836957 },\r\n { x: -0.0000014449999999999586, y: 0.027257368075554504 },\r\n { x: -0.0000014439999999999586, y: -0.021994380891192402 },\r\n { x: -0.0000014429999999999585, y: -0.03126856116532146 },\r\n { x: -0.0000014419999999999584, y: 0.02099266098659368 },\r\n { x: -0.0000014409999999999583, y: 0.025370337615773637 },\r\n { x: -0.0000014399999999999583, y: 0.016631860054068946 },\r\n { x: -0.0000014389999999999582, y: 0.006766847350362779 },\r\n { x: -0.0000014379999999999581, y: -0.02368053448071696 },\r\n { x: -0.000001436999999999958, y: -0.017758267849415872 },\r\n { x: -0.000001435999999999958, y: -0.019362471611339353 },\r\n { x: -0.0000014349999999999579, y: -0.0048261114143355755 },\r\n { x: -0.0000014339999999999578, y: -0.02102853079381428 },\r\n { x: -0.0000014329999999999577, y: 0.008041901856350753 },\r\n { x: -0.0000014319999999999577, y: -0.024787299935330426 },\r\n { x: -0.0000014309999999999576, y: -0.02423241432973991 },\r\n { x: -0.0000014299999999999575, y: 0.023303220028534934 },\r\n { x: -0.0000014289999999999574, y: 0.037840472733514756 },\r\n { x: -0.0000014279999999999574, y: -0.007968713344726411 },\r\n { x: -0.0000014269999999999573, y: -0.008809174412449917 },\r\n { x: -0.0000014259999999999572, y: -0.03195646202096297 },\r\n { x: -0.0000014249999999999571, y: -0.01473277825690707 },\r\n { x: -0.000001423999999999957, y: -0.02206267118100727 },\r\n { x: -0.000001422999999999957, y: -0.018795395858838607 },\r\n { x: -0.000001421999999999957, y: -0.027940301585861842 },\r\n { x: -0.0000014209999999999568, y: -0.031309593314700845 },\r\n { x: -0.0000014199999999999568, y: 0.01862387801971263 },\r\n { x: -0.0000014189999999999567, y: -0.03542090674731725 },\r\n { x: -0.0000014179999999999566, y: 0.02058439907191344 },\r\n { x: -0.0000014169999999999565, y: -0.01633204340256826 },\r\n { x: -0.0000014159999999999565, y: -0.031036347474314906 },\r\n { x: -0.0000014149999999999564, y: 0.01928568032215615 },\r\n { x: -0.0000014139999999999563, y: -0.02714607627138527 },\r\n { x: -0.0000014129999999999562, y: -0.005910351368508948 },\r\n { x: -0.0000014119999999999562, y: -0.02774298660313753 },\r\n { x: -0.000001410999999999956, y: 0.0009198631014646014 },\r\n { x: -0.000001409999999999956, y: 0.029804040231150082 },\r\n { x: -0.000001408999999999956, y: 0.011243413063037647 },\r\n { x: -0.0000014079999999999559, y: 0.027073847634409037 },\r\n { x: -0.0000014069999999999558, y: -0.01757282472291928 },\r\n { x: -0.0000014059999999999557, y: 0.03584189654124867 },\r\n { x: -0.0000014049999999999556, y: 0.01656371343174638 },\r\n { x: -0.0000014039999999999556, y: 0.03401034753412705 },\r\n { x: -0.0000014029999999999555, y: 0.0364293610113262 },\r\n { x: -0.0000014019999999999554, y: -0.02968634132781467 },\r\n { x: -0.0000014009999999999553, y: 0.027729709084621565 },\r\n { x: -0.0000013999999999999553, y: -0.02027414339986988 },\r\n { x: -0.0000013989999999999552, y: -0.00220875464444255 },\r\n { x: -0.000001397999999999955, y: 0.036945016665614956 },\r\n { x: -0.000001396999999999955, y: -0.008306285425409227 },\r\n { x: -0.000001395999999999955, y: -0.016219089825118223 },\r\n { x: -0.0000013949999999999549, y: -0.020878229946553497 },\r\n { x: -0.0000013939999999999548, y: -0.025520979896904446 },\r\n { x: -0.0000013929999999999547, y: 0.027965267967334048 },\r\n { x: -0.0000013919999999999547, y: -0.028858358680431264 },\r\n { x: -0.0000013909999999999546, y: 0.007782789129562599 },\r\n { x: -0.0000013899999999999545, y: 0.015960109216097515 },\r\n { x: -0.0000013889999999999544, y: -0.002155913809696033 },\r\n { x: -0.0000013879999999999544, y: 0.030975181037093333 },\r\n { x: -0.0000013869999999999543, y: -0.018141006674456533 },\r\n { x: -0.0000013859999999999542, y: 0.03562673423170332 },\r\n { x: -0.0000013849999999999541, y: -0.037739831727478385 },\r\n { x: -0.000001383999999999954, y: -0.0013266178060266228 },\r\n { x: -0.000001382999999999954, y: 0.01874756023284197 },\r\n { x: -0.000001381999999999954, y: -0.02081164189724986 },\r\n { x: -0.0000013809999999999538, y: 0.0025335327434042737 },\r\n { x: -0.0000013799999999999538, y: 0.005810873518892579 },\r\n { x: -0.0000013789999999999537, y: -0.01844005482900577 },\r\n { x: -0.0000013779999999999536, y: 0.037123125325068465 },\r\n { x: -0.0000013769999999999535, y: 0.02899341595126094 },\r\n { x: -0.0000013759999999999535, y: 0.02616715237173488 },\r\n { x: -0.0000013749999999999534, y: -0.007589744321646553 },\r\n { x: -0.0000013739999999999533, y: -0.005437628901102876 },\r\n { x: -0.0000013729999999999532, y: -0.03662846529186486 },\r\n { x: -0.0000013719999999999532, y: -0.011762585503595716 },\r\n { x: -0.000001370999999999953, y: 0.06286309776804452 },\r\n { x: -0.000001369999999999953, y: 0.017374807844783857 },\r\n { x: -0.000001368999999999953, y: 0.030432815929757783 },\r\n { x: -0.0000013679999999999529, y: -0.008555864397219106 },\r\n { x: -0.0000013669999999999528, y: 0.017639338599923494 },\r\n { x: -0.0000013659999999999527, y: 0.004460666964426813 },\r\n { x: -0.0000013649999999999526, y: -0.02777409992300708 },\r\n { x: -0.0000013639999999999526, y: 0.019314864238587408 },\r\n { x: -0.0000013629999999999525, y: 0.034423155361312796 },\r\n { x: -0.0000013619999999999524, y: 0.013670550074769848 },\r\n { x: -0.0000013609999999999523, y: 0.01286211671995814 },\r\n { x: -0.0000013599999999999523, y: 0.025982457056539607 },\r\n { x: -0.0000013589999999999522, y: -0.0006805076262024958 },\r\n { x: -0.000001357999999999952, y: -0.014287006133468717 },\r\n { x: -0.000001356999999999952, y: -0.023866647688169883 },\r\n { x: -0.000001355999999999952, y: -0.025408245960811048 },\r\n { x: -0.0000013549999999999519, y: 0.03648168320753453 },\r\n { x: -0.0000013539999999999518, y: -0.018586982139929514 },\r\n { x: -0.0000013529999999999517, y: -0.03780791096963317 },\r\n { x: -0.0000013519999999999516, y: -0.01992709429516638 },\r\n { x: -0.0000013509999999999516, y: 0.03044672460535575 },\r\n { x: -0.0000013499999999999515, y: 0.028312860988091743 },\r\n { x: -0.0000013489999999999514, y: -0.02360258441424135 },\r\n { x: -0.0000013479999999999513, y: 0.005104407322331412 },\r\n { x: -0.0000013469999999999513, y: -0.0013732143304002328 },\r\n { x: -0.0000013459999999999512, y: -0.03616337965323662 },\r\n { x: -0.0000013449999999999511, y: 0.028618774148557295 },\r\n { x: -0.000001343999999999951, y: 0.026626077203680727 },\r\n { x: -0.000001342999999999951, y: -0.005746513963225127 },\r\n { x: -0.000001341999999999951, y: 0.024456610884775846 },\r\n { x: -0.0000013409999999999508, y: 0.019485149141960104 },\r\n { x: -0.0000013399999999999507, y: 0.014656760221359241 },\r\n { x: -0.0000013389999999999507, y: -0.01997743551050904 },\r\n { x: -0.0000013379999999999506, y: -0.013548665746939657 },\r\n { x: -0.0000013369999999999505, y: -0.0036552052674584633 },\r\n { x: -0.0000013359999999999504, y: -0.018932411367259486 },\r\n { x: -0.0000013349999999999504, y: -0.03741410646605812 },\r\n { x: -0.0000013339999999999503, y: 0.032019779185694985 },\r\n { x: -0.0000013329999999999502, y: -0.0028150237733198503 },\r\n { x: -0.0000013319999999999501, y: 0.009477877439243262 },\r\n { x: -0.00000133099999999995, y: 0.005887737824228874 },\r\n { x: -0.00000132999999999995, y: 0.019774612076245292 },\r\n { x: -0.00000132899999999995, y: -0.035933311534152815 },\r\n { x: -0.0000013279999999999498, y: 0.034815576349307376 },\r\n { x: -0.0000013269999999999498, y: 0.03655103430116427 },\r\n { x: -0.0000013259999999999497, y: -0.036044950277673 },\r\n { x: -0.0000013249999999999496, y: -0.009356938082272528 },\r\n { x: -0.0000013239999999999495, y: 0.02442691225993598 },\r\n { x: -0.0000013229999999999495, y: 0.008282935748187056 },\r\n { x: -0.0000013219999999999494, y: 0.005064254039896118 },\r\n { x: -0.0000013209999999999493, y: 0.0235699108346049 },\r\n { x: -0.0000013199999999999492, y: -0.04617893873673727 },\r\n { x: -0.0000013189999999999492, y: -0.011162166306264498 },\r\n { x: -0.000001317999999999949, y: -0.009361849936235084 },\r\n { x: -0.000001316999999999949, y: 0.022795588980644012 },\r\n { x: -0.000001315999999999949, y: -0.0014943328086852324 },\r\n { x: -0.0000013149999999999489, y: -0.033120288884205956 },\r\n { x: -0.0000013139999999999488, y: 0.01859106848316777 },\r\n { x: -0.0000013129999999999487, y: -0.0024396261992518605 },\r\n { x: -0.0000013119999999999486, y: -0.027445842851692256 },\r\n { x: -0.0000013109999999999486, y: 0.03404726174315386 },\r\n { x: -0.0000013099999999999485, y: 0.010251967963258278 },\r\n { x: -0.0000013089999999999484, y: 0.03284361874163441 },\r\n { x: -0.0000013079999999999483, y: 0.03134195974897309 },\r\n { x: -0.0000013069999999999483, y: 0.010239920041759318 },\r\n { x: -0.0000013059999999999482, y: 0.028121737219261846 },\r\n { x: -0.0000013049999999999481, y: 0.0014161994123639496 },\r\n { x: -0.000001303999999999948, y: 0.03637248741087605 },\r\n { x: -0.000001302999999999948, y: -0.006204972979383949 },\r\n { x: -0.0000013019999999999479, y: -0.00881814563619294 },\r\n { x: -0.0000013009999999999478, y: 0.018521032100143175 },\r\n { x: -0.0000012999999999999477, y: -0.0047163464225027235 },\r\n { x: -0.0000012989999999999477, y: 0.03363485059648552 },\r\n { x: -0.0000012979999999999476, y: -0.024161607685016687 },\r\n { x: -0.0000012969999999999475, y: 0.029114929725366882 },\r\n { x: -0.0000012959999999999474, y: -0.025863237617867726 },\r\n { x: -0.0000012949999999999474, y: -0.017998947531199096 },\r\n { x: -0.0000012939999999999473, y: 0.03730941296377263 },\r\n { x: -0.0000012929999999999472, y: 0.03223350002485523 },\r\n { x: -0.0000012919999999999471, y: 0.005801365357315892 },\r\n { x: -0.000001290999999999947, y: 0.03118217852562385 },\r\n { x: -0.000001289999999999947, y: -0.007603797320247494 },\r\n { x: -0.000001288999999999947, y: 0.03205654683499334 },\r\n { x: -0.0000012879999999999468, y: -0.010087561332330443 },\r\n { x: -0.0000012869999999999468, y: 0.03711386191878725 },\r\n { x: -0.0000012859999999999467, y: -0.007799062638556878 },\r\n { x: -0.0000012849999999999466, y: 0.005915187077683867 },\r\n { x: -0.0000012839999999999465, y: 0.004579354099010703 },\r\n { x: -0.0000012829999999999465, y: -0.013683392856120895 },\r\n { x: -0.0000012819999999999464, y: 0.03306877387370842 },\r\n { x: -0.0000012809999999999463, y: 0.011685586104961562 },\r\n { x: -0.0000012799999999999462, y: -0.020144757712756374 },\r\n { x: -0.0000012789999999999462, y: -0.01358075540878098 },\r\n { x: -0.000001277999999999946, y: 0.0068746744586625 },\r\n { x: -0.000001276999999999946, y: 0.007024254864453059 },\r\n { x: -0.000001275999999999946, y: 0.02951019196221618 },\r\n { x: -0.0000012749999999999459, y: 0.015535352894516028 },\r\n { x: -0.0000012739999999999458, y: -0.029617879810418878 },\r\n { x: -0.0000012729999999999457, y: -0.00425323946021398 },\r\n { x: -0.0000012719999999999456, y: 0.025894830440814948 },\r\n { x: -0.0000012709999999999456, y: 0.028364549700151526 },\r\n { x: -0.0000012699999999999455, y: -0.028199789147076767 },\r\n { x: -0.0000012689999999999454, y: -0.013671232673688924 },\r\n { x: -0.0000012679999999999453, y: 0.007897044966350478 },\r\n { x: -0.0000012669999999999453, y: 0.019850639022674994 },\r\n { x: -0.0000012659999999999452, y: 0.029443024368187375 },\r\n { x: -0.0000012649999999999451, y: -0.00937584901174294 },\r\n { x: -0.000001263999999999945, y: 0.02179092381177665 },\r\n { x: -0.000001262999999999945, y: 0.01774416205007989 },\r\n { x: -0.0000012619999999999449, y: -0.0021933726320993063 },\r\n { x: -0.0000012609999999999448, y: -0.01834146257690179 },\r\n { x: -0.0000012599999999999447, y: 0.019439364222801892 },\r\n { x: -0.0000012589999999999447, y: 0.008017386099868653 },\r\n { x: -0.0000012579999999999446, y: -0.03586449881813231 },\r\n { x: -0.0000012569999999999445, y: 0.007185050135984963 },\r\n { x: -0.0000012559999999999444, y: -0.030730811413055156 },\r\n { x: -0.0000012549999999999444, y: 0.008644592364709804 },\r\n { x: -0.0000012539999999999443, y: 0.0102304563720502 },\r\n { x: -0.0000012529999999999442, y: 0.028884913512254543 },\r\n { x: -0.0000012519999999999441, y: 0.015338485402996616 },\r\n { x: -0.000001250999999999944, y: -0.0104235832161865 },\r\n { x: -0.000001249999999999944, y: -0.020514628153497923 },\r\n { x: -0.000001248999999999944, y: -0.012156381546816692 },\r\n { x: -0.0000012479999999999438, y: -0.016113308749681667 },\r\n { x: -0.0000012469999999999438, y: 0.0017151575253081595 },\r\n { x: -0.0000012459999999999437, y: -0.007157636286032977 },\r\n { x: -0.0000012449999999999436, y: -0.001641976471777978 },\r\n { x: -0.0000012439999999999435, y: 0.018566303676046263 },\r\n { x: -0.0000012429999999999435, y: 0.03082408999166559 },\r\n { x: -0.0000012419999999999434, y: -0.01493515644534032 },\r\n { x: -0.0000012409999999999433, y: -0.015812006269594517 },\r\n { x: -0.0000012399999999999432, y: -0.022805096447225483 },\r\n { x: -0.0000012389999999999432, y: -0.027537114808600598 },\r\n { x: -0.000001237999999999943, y: -0.034518255251211744 },\r\n { x: -0.000001236999999999943, y: 0.03174907307353538 },\r\n { x: -0.000001235999999999943, y: 0.021058651306083913 },\r\n { x: -0.0000012349999999999429, y: -0.004635419679502099 },\r\n { x: -0.0000012339999999999428, y: -0.026757517061456695 },\r\n { x: -0.0000012329999999999427, y: -0.002293382377237708 },\r\n { x: -0.0000012319999999999426, y: 0.019623032089150106 },\r\n { x: -0.0000012309999999999426, y: -0.012288924464331864 },\r\n { x: -0.0000012299999999999425, y: 0.030772999410255755 },\r\n { x: -0.0000012289999999999424, y: -0.009273576569640733 },\r\n { x: -0.0000012279999999999423, y: -0.030587757774173056 },\r\n { x: -0.0000012269999999999423, y: -0.03215111515224133 },\r\n { x: -0.0000012259999999999422, y: -0.03320947717726895 },\r\n { x: -0.0000012249999999999421, y: -0.011155697785155561 },\r\n { x: -0.000001223999999999942, y: -0.026845066426036037 },\r\n { x: -0.000001222999999999942, y: -0.03689477791929767 },\r\n { x: -0.0000012219999999999419, y: -0.024216088196057476 },\r\n { x: -0.0000012209999999999418, y: 0.017544737255589533 },\r\n { x: -0.0000012199999999999417, y: -0.020802088219794256 },\r\n { x: -0.0000012189999999999417, y: 0.008822600155463755 },\r\n { x: -0.0000012179999999999416, y: 0.026247273956979372 },\r\n { x: -0.0000012169999999999415, y: -0.008371982878929776 },\r\n { x: -0.0000012159999999999414, y: -0.0348727238259723 },\r\n { x: -0.0000012149999999999414, y: 0.012299691201663781 },\r\n { x: -0.0000012139999999999413, y: 0.014552503889707434 },\r\n { x: -0.0000012129999999999412, y: -0.00823722377047333 },\r\n { x: -0.0000012119999999999411, y: 0.01788099085164421 },\r\n { x: -0.000001210999999999941, y: -0.008074005131419797 },\r\n { x: -0.000001209999999999941, y: -0.03488463040546863 },\r\n { x: -0.000001208999999999941, y: 0.034636102940360444 },\r\n { x: -0.0000012079999999999408, y: 0.030681428735635348 },\r\n { x: -0.0000012069999999999408, y: -0.014932768446193855 },\r\n { x: -0.0000012059999999999407, y: 0.012736113577859752 },\r\n { x: -0.0000012049999999999406, y: 0.0075820715681490765 },\r\n { x: -0.0000012039999999999405, y: -0.016605500190554016 },\r\n { x: -0.0000012029999999999405, y: 0.03313652856750357 },\r\n { x: -0.0000012019999999999404, y: -0.007737942808828586 },\r\n { x: -0.0000012009999999999403, y: 0.029052595418595353 },\r\n { x: -0.0000011999999999999402, y: -0.005073178892875431 },\r\n { x: -0.0000011989999999999402, y: -0.007235926980898817 },\r\n { x: -0.00000119799999999994, y: 0.01872074038773509 },\r\n { x: -0.00000119699999999994, y: -0.01916236301447569 },\r\n { x: -0.00000119599999999994, y: -0.008216718930977264 },\r\n { x: -0.0000011949999999999399, y: 0.03268756095182446 },\r\n { x: -0.0000011939999999999398, y: 0.025861855378969848 },\r\n { x: -0.0000011929999999999397, y: 0.0066621093639115695 },\r\n { x: -0.0000011919999999999396, y: 0.006482817862923509 },\r\n { x: -0.0000011909999999999396, y: -0.03378980010517232 },\r\n { x: -0.0000011899999999999395, y: 0.021504581809908704 },\r\n { x: -0.0000011889999999999394, y: -0.030769314102892447 },\r\n { x: -0.0000011879999999999393, y: 0.018917972511959865 },\r\n { x: -0.0000011869999999999393, y: -0.018172063914816412 },\r\n { x: -0.0000011859999999999392, y: -0.03643418211886705 },\r\n { x: -0.000001184999999999939, y: -0.013731021747616598 },\r\n { x: -0.000001183999999999939, y: -0.024402609716972348 },\r\n { x: -0.000001182999999999939, y: 0.014289190277567811 },\r\n { x: -0.0000011819999999999389, y: 0.023712522014093095 },\r\n { x: -0.0000011809999999999388, y: 0.010132832023869852 },\r\n { x: -0.0000011799999999999387, y: -0.034396425459355014 },\r\n { x: -0.0000011789999999999387, y: -0.007143348111840217 },\r\n { x: -0.0000011779999999999386, y: -0.00222291755992494 },\r\n { x: -0.0000011769999999999385, y: 0.030700736756949655 },\r\n { x: -0.0000011759999999999384, y: 0.014428658644920446 },\r\n { x: -0.0000011749999999999384, y: 0.019863924063457356 },\r\n { x: -0.0000011739999999999383, y: -0.001136499481345822 },\r\n { x: -0.0000011729999999999382, y: 0.00810338383197685 },\r\n { x: -0.0000011719999999999381, y: 0.034890309761107956 },\r\n { x: -0.000001170999999999938, y: -0.027952431251810975 },\r\n { x: -0.000001169999999999938, y: -0.0014555206594062775 },\r\n { x: -0.000001168999999999938, y: -0.027500093515103533 },\r\n { x: -0.0000011679999999999378, y: 0.005500823812076657 },\r\n { x: -0.0000011669999999999378, y: 0.029184779830460816 },\r\n { x: -0.0000011659999999999377, y: -0.014165107011783012 },\r\n { x: -0.0000011649999999999376, y: 0.035402758809883736 },\r\n { x: -0.0000011639999999999375, y: 0.016363496671050266 },\r\n { x: -0.0000011629999999999375, y: -0.031025846704796516 },\r\n { x: -0.0000011619999999999374, y: -0.03747833024534651 },\r\n { x: -0.0000011609999999999373, y: -0.005035256521069069 },\r\n { x: -0.0000011599999999999372, y: 0.02413880708042607 },\r\n { x: -0.0000011589999999999371, y: 0.004719068383673508 },\r\n { x: -0.000001157999999999937, y: -0.0025649311128587626 },\r\n { x: -0.000001156999999999937, y: -0.019335144661670807 },\r\n { x: -0.000001155999999999937, y: -0.001634621142771009 },\r\n { x: -0.0000011549999999999368, y: 0.012206046410135455 },\r\n { x: -0.0000011539999999999368, y: -0.004380262713739856 },\r\n { x: -0.0000011529999999999367, y: -0.01245147030213906 },\r\n { x: -0.0000011519999999999366, y: -0.02771703108888614 },\r\n { x: -0.0000011509999999999365, y: 0.012324873689169817 },\r\n { x: -0.0000011499999999999365, y: 0.01574336709266946 },\r\n { x: -0.0000011489999999999364, y: -0.01944584047564326 },\r\n { x: -0.0000011479999999999363, y: -0.02678272920210347 },\r\n { x: -0.0000011469999999999362, y: 0.012685345922256688 },\r\n { x: -0.0000011459999999999362, y: -0.02428445810144817 },\r\n { x: -0.000001144999999999936, y: 0.02122352192123725 },\r\n { x: -0.000001143999999999936, y: 0.0017545082389184192 },\r\n { x: -0.000001142999999999936, y: -0.021247768259625866 },\r\n { x: -0.0000011419999999999359, y: 0.03736356225080036 },\r\n { x: -0.0000011409999999999358, y: 0.030465802167615554 },\r\n { x: -0.0000011399999999999357, y: -0.031203956066424173 },\r\n { x: -0.0000011389999999999356, y: 0.0038869599827814224 },\r\n { x: -0.0000011379999999999356, y: -0.03348223608578976 },\r\n { x: -0.0000011369999999999355, y: 0.021964493943004156 },\r\n { x: -0.0000011359999999999354, y: 0.012798542237557615 },\r\n { x: -0.0000011349999999999353, y: 0.018715784823801925 },\r\n { x: -0.0000011339999999999353, y: 0.02911308278467085 },\r\n { x: -0.0000011329999999999352, y: 0.0002547274517661491 },\r\n { x: -0.0000011319999999999351, y: -0.025504043656042204 },\r\n { x: -0.000001130999999999935, y: 0.020439604106804486 },\r\n { x: -0.000001129999999999935, y: 0.02636843840864873 },\r\n { x: -0.000001128999999999935, y: -0.026980297555334716 },\r\n { x: -0.0000011279999999999348, y: 0.008654209126966602 },\r\n { x: -0.0000011269999999999347, y: 0.031538000694273774 },\r\n { x: -0.0000011259999999999347, y: 0.00400299781692588 },\r\n { x: -0.0000011249999999999346, y: -0.008943049648801386 },\r\n { x: -0.0000011239999999999345, y: 0.019178196468100817 },\r\n { x: -0.0000011229999999999344, y: -0.005747326204190344 },\r\n { x: -0.0000011219999999999344, y: -0.010263411797626174 },\r\n { x: -0.0000011209999999999343, y: 0.02867837017720057 },\r\n { x: -0.0000011199999999999342, y: 0.0027619235635548737 },\r\n { x: -0.0000011189999999999341, y: -0.015116003010013963 },\r\n { x: -0.000001117999999999934, y: -0.00771187159990163 },\r\n { x: -0.000001116999999999934, y: 0.02309551474744334 },\r\n { x: -0.000001115999999999934, y: -0.0259479902773751 },\r\n { x: -0.0000011149999999999338, y: -0.004191424901319933 },\r\n { x: -0.0000011139999999999338, y: 0.027423036206542795 },\r\n { x: -0.0000011129999999999337, y: -0.024195477079481435 },\r\n { x: -0.0000011119999999999336, y: 0.022663346268164693 },\r\n { x: -0.0000011109999999999335, y: -0.031191669723367565 },\r\n { x: -0.0000011099999999999335, y: 0.0043902313725442945 },\r\n { x: -0.0000011089999999999334, y: 0.02454228906199415 },\r\n { x: -0.0000011079999999999333, y: 0.03594899636322201 },\r\n { x: -0.0000011069999999999332, y: -0.03334823887604813 },\r\n { x: -0.0000011059999999999332, y: -0.01192216245943053 },\r\n { x: -0.000001104999999999933, y: -0.024783298620515634 },\r\n { x: -0.000001103999999999933, y: -0.010266033052852314 },\r\n { x: -0.000001102999999999933, y: 0.023674140547620636 },\r\n { x: -0.0000011019999999999329, y: 0.01827937875802166 },\r\n { x: -0.0000011009999999999328, y: -0.026909958677049588 },\r\n { x: -0.0000010999999999999327, y: 0.035732974549398916 },\r\n { x: -0.0000010989999999999326, y: 0.0010450278744009746 },\r\n { x: -0.0000010979999999999326, y: 0.003638863189738167 },\r\n { x: -0.0000010969999999999325, y: 0.0027361635177537763 },\r\n { x: -0.0000010959999999999324, y: -0.027114865369770574 },\r\n { x: -0.0000010949999999999323, y: 0.02913405318551783 },\r\n { x: -0.0000010939999999999323, y: 0.007090545628145007 },\r\n { x: -0.0000010929999999999322, y: 0.027538877894034114 },\r\n { x: -0.0000010919999999999321, y: -0.01575434959194481 },\r\n { x: -0.000001090999999999932, y: 0.032863695659606305 },\r\n { x: -0.000001089999999999932, y: -0.020261719076848456 },\r\n { x: -0.0000010889999999999319, y: 0.008469352679284621 },\r\n { x: -0.0000010879999999999318, y: 0.010466286310564185 },\r\n { x: -0.0000010869999999999317, y: -0.03459042154622281 },\r\n { x: -0.0000010859999999999317, y: -0.002810323145193646 },\r\n { x: -0.0000010849999999999316, y: -0.029217576094209104 },\r\n { x: -0.0000010839999999999315, y: 0.021369005236969527 },\r\n { x: -0.0000010829999999999314, y: 0.020813655397698836 },\r\n { x: -0.0000010819999999999314, y: -0.016423285385148347 },\r\n { x: -0.0000010809999999999313, y: -0.03386282677843306 },\r\n { x: -0.0000010799999999999312, y: -0.025608240521285474 },\r\n { x: -0.0000010789999999999311, y: 0.021248693139306617 },\r\n { x: -0.000001077999999999931, y: 0.03587467773171921 },\r\n { x: -0.000001076999999999931, y: 0.021280586346494452 },\r\n { x: -0.000001075999999999931, y: 0.018332354420720676 },\r\n { x: -0.0000010749999999999308, y: 0.036953034432805454 },\r\n { x: -0.0000010739999999999308, y: -0.03175288541158352 },\r\n { x: -0.0000010729999999999307, y: -0.024115902675706843 },\r\n { x: -0.0000010719999999999306, y: 0.02241743611713118 },\r\n { x: -0.0000010709999999999305, y: 0.015558634002765784 },\r\n { x: -0.0000010699999999999305, y: 0.01939475490196981 },\r\n { x: -0.0000010689999999999304, y: 0.02754116596456491 },\r\n { x: -0.0000010679999999999303, y: 0.03254483574621475 },\r\n { x: -0.0000010669999999999302, y: 0.00893452209558641 },\r\n { x: -0.0000010659999999999302, y: 0.021550111633410727 },\r\n { x: -0.00000106499999999993, y: -0.031364612833633836 },\r\n { x: -0.00000106399999999993, y: 0.013283452263456794 },\r\n { x: -0.00000106299999999993, y: -0.00846544250977491 },\r\n { x: -0.0000010619999999999299, y: 0.0017269260942929937 },\r\n { x: -0.0000010609999999999298, y: -0.03240923250750345 },\r\n { x: -0.0000010599999999999297, y: 0.041192342820768335 },\r\n { x: -0.0000010589999999999296, y: -0.018813376825745184 },\r\n { x: -0.0000010579999999999296, y: 0.003531927496042505 },\r\n { x: -0.0000010569999999999295, y: -0.002288720072742805 },\r\n { x: -0.0000010559999999999294, y: -0.028137635527813357 },\r\n { x: -0.0000010549999999999293, y: -0.02881793611498535 },\r\n { x: -0.0000010539999999999293, y: 0.025259562537388088 },\r\n { x: -0.0000010529999999999292, y: -0.025572479807885126 },\r\n { x: -0.0000010519999999999291, y: -0.0014499665297990482 },\r\n { x: -0.000001050999999999929, y: -0.0115115976979226 },\r\n { x: -0.000001049999999999929, y: 0.006651690670723217 },\r\n { x: -0.0000010489999999999289, y: 0.03037450323603628 },\r\n { x: -0.0000010479999999999288, y: 0.024677442332279864 },\r\n { x: -0.0000010469999999999287, y: -0.009369965111682128 },\r\n { x: -0.0000010459999999999287, y: 0.004209415111918935 },\r\n { x: -0.0000010449999999999286, y: -0.025816695328456124 },\r\n { x: -0.0000010439999999999285, y: 0.008866012270379968 },\r\n { x: -0.0000010429999999999284, y: 0.02761903092956218 },\r\n { x: -0.0000010419999999999284, y: 0.013762888673287118 },\r\n { x: -0.0000010409999999999283, y: -0.015251553265029747 },\r\n { x: -0.0000010399999999999282, y: 0.019570828173988548 },\r\n { x: -0.0000010389999999999281, y: 0.061684518220025124 },\r\n { x: -0.000001037999999999928, y: -0.033167859404168776 },\r\n { x: -0.000001036999999999928, y: 0.004124457998327737 },\r\n { x: -0.000001035999999999928, y: 0.022013215600257412 },\r\n { x: -0.0000010349999999999278, y: 0.03402128738709914 },\r\n { x: -0.0000010339999999999278, y: 0.01046723658597477 },\r\n { x: -0.0000010329999999999277, y: 0.021283802624609043 },\r\n { x: -0.0000010319999999999276, y: 0.0016237554482543739 },\r\n { x: -0.0000010309999999999275, y: -0.034329811073198775 },\r\n { x: -0.0000010299999999999275, y: -0.034747120232068246 },\r\n { x: -0.0000010289999999999274, y: 0.03423877024130284 },\r\n { x: -0.0000010279999999999273, y: -0.026951904313977565 },\r\n { x: -0.0000010269999999999272, y: 0.0038978301759391727 },\r\n { x: -0.0000010259999999999272, y: -0.02396276827687291 },\r\n { x: -0.000001024999999999927, y: -0.025638382162598967 },\r\n { x: -0.000001023999999999927, y: 0.036710342459218066 },\r\n { x: -0.000001022999999999927, y: 0.009563173632159055 },\r\n { x: -0.0000010219999999999269, y: 0.010339560805856218 },\r\n { x: -0.0000010209999999999268, y: 0.031520575280031556 },\r\n { x: -0.0000010199999999999267, y: 0.03110916196871425 },\r\n { x: -0.0000010189999999999266, y: -0.037235307915742165 },\r\n { x: -0.0000010179999999999266, y: 0.00943802691845677 },\r\n { x: -0.0000010169999999999265, y: 0.007666987916140973 },\r\n { x: -0.0000010159999999999264, y: -0.0305969910471173 },\r\n { x: -0.0000010149999999999263, y: 0.012445863137599555 },\r\n { x: -0.0000010139999999999263, y: 0.005710821204960515 },\r\n { x: -0.0000010129999999999262, y: -0.02326312736145247 },\r\n { x: -0.000001011999999999926, y: 0.03382934309132999 },\r\n { x: -0.000001010999999999926, y: -0.028883360855502322 },\r\n { x: -0.000001009999999999926, y: -0.005793566845652853 },\r\n { x: -0.0000010089999999999259, y: -0.028267929755766138 },\r\n { x: -0.0000010079999999999258, y: -0.032621688283622705 },\r\n { x: -0.0000010069999999999257, y: 0.009374042237734392 },\r\n { x: -0.0000010059999999999257, y: 0.001868892436261659 },\r\n { x: -0.0000010049999999999256, y: -0.009269096605986411 },\r\n { x: -0.0000010039999999999255, y: -0.018993851685004056 },\r\n { x: -0.0000010029999999999254, y: -0.031847186921473786 },\r\n { x: -0.0000010019999999999254, y: -0.008046662113942058 },\r\n { x: -0.0000010009999999999253, y: -0.0023422432857707442 },\r\n { x: -9.999999999999252e-7, y: 0.010840177491379973 },\r\n { x: -9.989999999999251e-7, y: 0.01776890612243266 },\r\n { x: -9.97999999999925e-7, y: 0.01032583214398838 },\r\n { x: -9.96999999999925e-7, y: -0.01982299283221205 },\r\n { x: -9.95999999999925e-7, y: -0.019103894919064782 },\r\n { x: -9.949999999999248e-7, y: -0.0032049332452009963 },\r\n { x: -9.939999999999248e-7, y: 0.026076522829219777 },\r\n { x: -9.929999999999247e-7, y: 0.024496783405623928 },\r\n { x: -9.919999999999246e-7, y: 0.016499846534152162 },\r\n { x: -9.909999999999245e-7, y: 0.017914212922616624 },\r\n { x: -9.899999999999245e-7, y: -0.019726952265923206 },\r\n { x: -9.889999999999244e-7, y: 0.01626033562506649 },\r\n { x: -9.879999999999243e-7, y: -0.008220705259891027 },\r\n { x: -9.869999999999242e-7, y: -0.025279691047465153 },\r\n { x: -9.859999999999242e-7, y: -0.025676415690392144 },\r\n { x: -9.84999999999924e-7, y: -0.011696763660427259 },\r\n { x: -9.83999999999924e-7, y: -0.017438070915119865 },\r\n { x: -9.82999999999924e-7, y: 0.03720750652934234 },\r\n { x: -9.819999999999239e-7, y: -0.016835484579148588 },\r\n { x: -9.809999999999238e-7, y: 0.01815980303573615 },\r\n { x: -9.799999999999237e-7, y: 0.020463557693487008 },\r\n { x: -9.789999999999236e-7, y: -0.0011654171902938863 },\r\n { x: -9.779999999999236e-7, y: 0.00606826267542394 },\r\n { x: -9.769999999999235e-7, y: -0.034513818005990786 },\r\n { x: -9.759999999999234e-7, y: -0.01991109534464455 },\r\n { x: -9.749999999999233e-7, y: 0.034712304696758005 },\r\n { x: -9.739999999999233e-7, y: 0.007774178902658733 },\r\n { x: -9.729999999999232e-7, y: -0.011368318633134067 },\r\n { x: -9.71999999999923e-7, y: -0.006061573388917357 },\r\n { x: -9.70999999999923e-7, y: 0.018126978921157475 },\r\n { x: -9.69999999999923e-7, y: 0.02726576056209315 },\r\n { x: -9.689999999999229e-7, y: 0.0003232067519156386 },\r\n { x: -9.679999999999228e-7, y: 0.01608865369829126 },\r\n { x: -9.669999999999227e-7, y: 0.0014128747967245428 },\r\n { x: -9.659999999999226e-7, y: -0.011696456066122221 },\r\n { x: -9.649999999999226e-7, y: -0.021704958095040052 },\r\n { x: -9.639999999999225e-7, y: 0.030275711156899327 },\r\n { x: -9.629999999999224e-7, y: -0.02292842572541188 },\r\n { x: -9.619999999999223e-7, y: -0.02399627756791023 },\r\n { x: -9.609999999999223e-7, y: -0.012030959177578095 },\r\n { x: -9.599999999999222e-7, y: -0.024437055201715352 },\r\n { x: -9.589999999999221e-7, y: -0.03108969507226391 },\r\n { x: -9.57999999999922e-7, y: -0.017568398400468543 },\r\n { x: -9.56999999999922e-7, y: -0.01745744248197696 },\r\n { x: -9.55999999999922e-7, y: 0.004451029610863574 },\r\n { x: -9.549999999999218e-7, y: -0.016267207476140206 },\r\n { x: -9.539999999999217e-7, y: 0.00972251185358209 },\r\n { x: -9.529999999999218e-7, y: 0.03293065025421619 },\r\n { x: -9.519999999999218e-7, y: -0.02086997208853251 },\r\n { x: -9.509999999999218e-7, y: 0.004639619025641843 },\r\n { x: -9.499999999999219e-7, y: 0.015618224567289337 },\r\n { x: -9.489999999999219e-7, y: 0.007112025027805449 },\r\n { x: -9.479999999999219e-7, y: -0.022636518950092655 },\r\n { x: -9.46999999999922e-7, y: -0.000761372920605377 },\r\n { x: -9.45999999999922e-7, y: -0.030646906336262093 },\r\n { x: -9.44999999999922e-7, y: -0.027083786628553968 },\r\n { x: -9.439999999999221e-7, y: -0.023501480527126164 },\r\n { x: -9.429999999999221e-7, y: -0.006513222852341783 },\r\n { x: -9.419999999999221e-7, y: 0.010237058491952876 },\r\n { x: -9.409999999999221e-7, y: 0.01575903531229099 },\r\n { x: -9.399999999999222e-7, y: 0.031951775070964465 },\r\n { x: -9.389999999999222e-7, y: -0.016383227145744337 },\r\n { x: -9.379999999999222e-7, y: 0.018446823915629015 },\r\n { x: -9.369999999999223e-7, y: 0.018553872617230658 },\r\n { x: -9.359999999999223e-7, y: 0.0005302119633774194 },\r\n { x: -9.349999999999223e-7, y: 0.015342896360415465 },\r\n { x: -9.339999999999224e-7, y: -0.0013742958150124026 },\r\n { x: -9.329999999999224e-7, y: 0.024571183233800593 },\r\n { x: -9.319999999999224e-7, y: -0.02605755800136759 },\r\n { x: -9.309999999999225e-7, y: 0.022409530383174267 },\r\n { x: -9.299999999999225e-7, y: -0.012515358070418951 },\r\n { x: -9.289999999999225e-7, y: 0.021047540449883086 },\r\n { x: -9.279999999999225e-7, y: 0.02479222693293069 },\r\n { x: -9.269999999999226e-7, y: 0.03653090770216841 },\r\n { x: -9.259999999999226e-7, y: -0.017107653369539816 },\r\n { x: -9.249999999999226e-7, y: -0.011020852861469248 },\r\n { x: -9.239999999999227e-7, y: -0.025709429149308512 },\r\n { x: -9.229999999999227e-7, y: -0.015079420700132181 },\r\n { x: -9.219999999999227e-7, y: 0.03168000868920515 },\r\n { x: -9.209999999999228e-7, y: -0.00210274362938009 },\r\n { x: -9.199999999999228e-7, y: -0.025200653167084697 },\r\n { x: -9.189999999999228e-7, y: -0.01060610960450694 },\r\n { x: -9.179999999999229e-7, y: -0.02973874410019535 },\r\n { x: -9.169999999999229e-7, y: -0.030965299051822385 },\r\n { x: -9.159999999999229e-7, y: 0.0038148260825874476 },\r\n { x: -9.14999999999923e-7, y: -0.033241250227991105 },\r\n { x: -9.13999999999923e-7, y: 0.00604867636928691 },\r\n { x: -9.12999999999923e-7, y: -0.008588997593963985 },\r\n { x: -9.11999999999923e-7, y: 0.015923611463657814 },\r\n { x: -9.109999999999231e-7, y: -0.008414811523850744 },\r\n { x: -9.099999999999231e-7, y: -0.019673634057138158 },\r\n { x: -9.089999999999231e-7, y: -0.03753147139612505 },\r\n { x: -9.079999999999232e-7, y: 0.026749614364787684 },\r\n { x: -9.069999999999232e-7, y: 0.009179864277816011 },\r\n { x: -9.059999999999232e-7, y: 0.009232479754932152 },\r\n { x: -9.049999999999233e-7, y: -0.022850441249536425 },\r\n { x: -9.039999999999233e-7, y: 0.022761860920378196 },\r\n { x: -9.029999999999233e-7, y: 0.032577228843712 },\r\n { x: -9.019999999999233e-7, y: -0.009230010340456217 },\r\n { x: -9.009999999999234e-7, y: 0.014381541869451474 },\r\n { x: -8.999999999999234e-7, y: 0.007362602069615492 },\r\n { x: -8.989999999999234e-7, y: 0.019415573503208126 },\r\n { x: -8.979999999999235e-7, y: -0.038299510323579214 },\r\n { x: -8.969999999999235e-7, y: 0.0011299450978933597 },\r\n { x: -8.959999999999235e-7, y: -0.023952376639287416 },\r\n { x: -8.949999999999236e-7, y: -0.01610169256085411 },\r\n { x: -8.939999999999236e-7, y: 0.026222417450439836 },\r\n { x: -8.929999999999236e-7, y: -0.03190218689902641 },\r\n { x: -8.919999999999237e-7, y: -0.03432020352969162 },\r\n { x: -8.909999999999237e-7, y: 0.019366613973656507 },\r\n { x: -8.899999999999237e-7, y: -0.031391386639058196 },\r\n { x: -8.889999999999237e-7, y: 0.00837424583650163 },\r\n { x: -8.879999999999238e-7, y: 0.03186906605800279 },\r\n { x: -8.869999999999238e-7, y: -0.010212834431228921 },\r\n { x: -8.859999999999238e-7, y: 0.03704848495388489 },\r\n { x: -8.849999999999239e-7, y: -0.0115572101672419 },\r\n { x: -8.839999999999239e-7, y: 0.025468208071106894 },\r\n { x: -8.829999999999239e-7, y: -0.008762272659908157 },\r\n { x: -8.81999999999924e-7, y: 0.02277877149048695 },\r\n { x: -8.80999999999924e-7, y: 0.005213360801620121 },\r\n { x: -8.79999999999924e-7, y: 0.006916896105190616 },\r\n { x: -8.789999999999241e-7, y: 0.025234732726755055 },\r\n { x: -8.779999999999241e-7, y: -0.025004339226081897 },\r\n { x: -8.769999999999241e-7, y: -0.016738614383466303 },\r\n { x: -8.759999999999241e-7, y: 0.02612479041190105 },\r\n { x: -8.749999999999242e-7, y: 0.036423903004606774 },\r\n { x: -8.739999999999242e-7, y: -0.012611155929767593 },\r\n { x: -8.729999999999242e-7, y: 0.01401632460396602 },\r\n { x: -8.719999999999243e-7, y: 0.015372814707230552 },\r\n { x: -8.709999999999243e-7, y: 0.017538893864949563 },\r\n { x: -8.699999999999243e-7, y: 0.0008130989563025555 },\r\n { x: -8.689999999999244e-7, y: 0.025128427465391335 },\r\n { x: -8.679999999999244e-7, y: -0.004526735353483471 },\r\n { x: -8.669999999999244e-7, y: 0.01800688399974372 },\r\n { x: -8.659999999999245e-7, y: 0.007805066435189868 },\r\n { x: -8.649999999999245e-7, y: -0.014885647013308584 },\r\n { x: -8.639999999999245e-7, y: 0.002873344691174549 },\r\n { x: -8.629999999999245e-7, y: -0.03127102117251237 },\r\n { x: -8.619999999999246e-7, y: 0.0034664535817309017 },\r\n { x: -8.609999999999246e-7, y: -0.030146099359308627 },\r\n { x: -8.599999999999246e-7, y: 0.0004909610998169021 },\r\n { x: -8.589999999999247e-7, y: -0.029732361714219932 },\r\n { x: -8.579999999999247e-7, y: 0.056371423662391125 },\r\n { x: -8.569999999999247e-7, y: 0.019675474866204128 },\r\n { x: -8.559999999999248e-7, y: 0.0037055367390445154 },\r\n { x: -8.549999999999248e-7, y: 0.007958642944636343 },\r\n { x: -8.539999999999248e-7, y: 0.031170667440981757 },\r\n { x: -8.529999999999249e-7, y: 0.027922335680716087 },\r\n { x: -8.519999999999249e-7, y: -0.001310272524085223 },\r\n { x: -8.509999999999249e-7, y: 0.012618017037633572 },\r\n { x: -8.499999999999249e-7, y: 0.03093013741614123 },\r\n { x: -8.48999999999925e-7, y: 0.020968705025750354 },\r\n { x: -8.47999999999925e-7, y: 0.027369280124057586 },\r\n { x: -8.46999999999925e-7, y: -0.004806688605153115 },\r\n { x: -8.459999999999251e-7, y: -0.016249759172511084 },\r\n { x: -8.449999999999251e-7, y: -0.0006271442121735175 },\r\n { x: -8.439999999999251e-7, y: -0.019353815379646647 },\r\n { x: -8.429999999999252e-7, y: -0.017163157879402955 },\r\n { x: -8.419999999999252e-7, y: -0.03548059904646963 },\r\n { x: -8.409999999999252e-7, y: 0.02313611703472965 },\r\n { x: -8.399999999999253e-7, y: -0.014865699271734622 },\r\n { x: -8.389999999999253e-7, y: 0.01101855729171213 },\r\n { x: -8.379999999999253e-7, y: -0.005466523368602546 },\r\n { x: -8.369999999999253e-7, y: -0.03115650717574829 },\r\n { x: -8.359999999999254e-7, y: -0.01172148758910005 },\r\n { x: -8.349999999999254e-7, y: 0.027530258103700123 },\r\n { x: -8.339999999999254e-7, y: -0.013361953130406124 },\r\n { x: -8.329999999999255e-7, y: -0.02933385697333347 },\r\n { x: -8.319999999999255e-7, y: 0.02103474064153297 },\r\n { x: -8.309999999999255e-7, y: 0.02176334224505846 },\r\n { x: -8.299999999999256e-7, y: 0.018757817803187415 },\r\n { x: -8.289999999999256e-7, y: -0.03742232055682836 },\r\n { x: -8.279999999999256e-7, y: -0.013942852796325267 },\r\n { x: -8.269999999999257e-7, y: 0.0075531746020012416 },\r\n { x: -8.259999999999257e-7, y: -0.005235030960910617 },\r\n { x: -8.249999999999257e-7, y: -0.013455942474942653 },\r\n { x: -8.239999999999257e-7, y: -0.009079405981755651 },\r\n { x: -8.229999999999258e-7, y: 0.02687889796141142 },\r\n { x: -8.219999999999258e-7, y: -0.015451987514716829 },\r\n { x: -8.209999999999258e-7, y: 0.008853814081119179 },\r\n { x: -8.199999999999259e-7, y: -0.031614768404355904 },\r\n { x: -8.189999999999259e-7, y: -0.020684353901576812 },\r\n { x: -8.179999999999259e-7, y: -0.004349344659097599 },\r\n { x: -8.16999999999926e-7, y: -0.032351128450080244 },\r\n { x: -8.15999999999926e-7, y: 0.027413184736922346 },\r\n { x: -8.14999999999926e-7, y: -0.022718398124329027 },\r\n { x: -8.139999999999261e-7, y: -0.028341448868181796 },\r\n { x: -8.129999999999261e-7, y: 0.02876741543842008 },\r\n { x: -8.119999999999261e-7, y: -0.018289808674868468 },\r\n { x: -8.109999999999261e-7, y: -0.004398059592769029 },\r\n { x: -8.099999999999262e-7, y: -0.01074398307502024 },\r\n { x: -8.089999999999262e-7, y: -0.0020476478124832388 },\r\n { x: -8.079999999999262e-7, y: 0.025789086878987757 },\r\n { x: -8.069999999999263e-7, y: 0.024251322047085938 },\r\n { x: -8.059999999999263e-7, y: 0.03721585312378391 },\r\n { x: -8.049999999999263e-7, y: -0.03155777317318277 },\r\n { x: -8.039999999999264e-7, y: 0.01957189033880305 },\r\n { x: -8.029999999999264e-7, y: 0.03195250359530248 },\r\n { x: -8.019999999999264e-7, y: -0.012501327258465434 },\r\n { x: -8.009999999999265e-7, y: 0.016875009596899037 },\r\n { x: -7.999999999999265e-7, y: 0.011342440420052615 },\r\n { x: -7.989999999999265e-7, y: 0.008386090664766642 },\r\n { x: -7.979999999999265e-7, y: -0.024106276452187894 },\r\n { x: -7.969999999999266e-7, y: 0.012117934964467303 },\r\n { x: -7.959999999999266e-7, y: -0.0007889897266229575 },\r\n { x: -7.949999999999266e-7, y: 0.02466338985768519 },\r\n { x: -7.939999999999267e-7, y: 0.03741483224157911 },\r\n { x: -7.929999999999267e-7, y: -0.008963205404156115 },\r\n { x: -7.919999999999267e-7, y: 0.015379366724403962 },\r\n { x: -7.909999999999268e-7, y: 0.018422982108190922 },\r\n { x: -7.899999999999268e-7, y: 0.00010225846965020577 },\r\n { x: -7.889999999999268e-7, y: 0.026282972640043624 },\r\n { x: -7.879999999999269e-7, y: -0.021756984097635636 },\r\n { x: -7.869999999999269e-7, y: 0.00573016684523125 },\r\n { x: -7.859999999999269e-7, y: 0.02082208391069466 },\r\n { x: -7.849999999999269e-7, y: 0.002389662031938346 },\r\n { x: -7.83999999999927e-7, y: 0.02792645443235875 },\r\n { x: -7.82999999999927e-7, y: -0.02041865694859452 },\r\n { x: -7.81999999999927e-7, y: -0.01552050734037055 },\r\n { x: -7.809999999999271e-7, y: 0.023244930983702793 },\r\n { x: -7.799999999999271e-7, y: -0.022546177670539725 },\r\n { x: -7.789999999999271e-7, y: -0.03592121624714324 },\r\n { x: -7.779999999999272e-7, y: 0.013371666999888565 },\r\n { x: -7.769999999999272e-7, y: -0.012284709451055982 },\r\n { x: -7.759999999999272e-7, y: -0.01561671470706963 },\r\n { x: -7.749999999999273e-7, y: -0.018682672226740367 },\r\n { x: -7.739999999999273e-7, y: -0.01793498292829704 },\r\n { x: -7.729999999999273e-7, y: 0.006400554041425754 },\r\n { x: -7.719999999999273e-7, y: 0.01780707558471629 },\r\n { x: -7.709999999999274e-7, y: -0.01837198272349219 },\r\n { x: -7.699999999999274e-7, y: -0.034309745822137847 },\r\n { x: -7.689999999999274e-7, y: 0.020360037092311094 },\r\n { x: -7.679999999999275e-7, y: -0.007870483107975617 },\r\n { x: -7.669999999999275e-7, y: -0.021094785205537498 },\r\n { x: -7.659999999999275e-7, y: -0.00017115015938054512 },\r\n { x: -7.649999999999276e-7, y: 0.00720112255388403 },\r\n { x: -7.639999999999276e-7, y: 0.06171488126204357 },\r\n { x: -7.629999999999276e-7, y: 0.01897792763743236 },\r\n { x: -7.619999999999277e-7, y: -0.03500035295518957 },\r\n { x: -7.609999999999277e-7, y: 0.01792267857458254 },\r\n { x: -7.599999999999277e-7, y: -0.016264377661825903 },\r\n { x: -7.589999999999277e-7, y: -0.0021172887541361708 },\r\n { x: -7.579999999999278e-7, y: 0.028350062222667744 },\r\n { x: -7.569999999999278e-7, y: 0.00026353928096412764 },\r\n { x: -7.559999999999278e-7, y: 0.023161104680252013 },\r\n { x: -7.549999999999279e-7, y: -0.0147413738368382 },\r\n { x: -7.539999999999279e-7, y: 0.030660190800139427 },\r\n { x: -7.529999999999279e-7, y: 0.00831821668538952 },\r\n { x: -7.51999999999928e-7, y: 0.014295025150173776 },\r\n { x: -7.50999999999928e-7, y: 0.03738171839841807 },\r\n { x: -7.49999999999928e-7, y: -0.002281660602468275 },\r\n { x: -7.48999999999928e-7, y: 0.011471266269029789 },\r\n { x: -7.479999999999281e-7, y: 0.0216577255196688 },\r\n { x: -7.469999999999281e-7, y: 0.005750570569288274 },\r\n { x: -7.459999999999281e-7, y: -0.032587461927133576 },\r\n { x: -7.449999999999282e-7, y: -0.01681796218369945 },\r\n { x: -7.439999999999282e-7, y: 0.03304170188676783 },\r\n { x: -7.429999999999282e-7, y: -0.003692451658323054 },\r\n { x: -7.419999999999283e-7, y: -0.0030563850883970054 },\r\n { x: -7.409999999999283e-7, y: 0.0016895485700962553 },\r\n { x: -7.399999999999283e-7, y: -0.018213769450676563 },\r\n { x: -7.389999999999284e-7, y: 0.0251583969150544 },\r\n { x: -7.379999999999284e-7, y: 0.03721906823525033 },\r\n { x: -7.369999999999284e-7, y: 0.014332750958438532 },\r\n { x: -7.359999999999285e-7, y: 0.004018506071974108 },\r\n { x: -7.349999999999285e-7, y: -0.009328895241614005 },\r\n { x: -7.339999999999285e-7, y: -0.017935786289793258 },\r\n { x: -7.329999999999285e-7, y: 0.03735106821200738 },\r\n { x: -7.319999999999286e-7, y: -0.010786065959145113 },\r\n { x: -7.309999999999286e-7, y: -0.02883254651910972 },\r\n { x: -7.299999999999286e-7, y: 0.00428667254889503 },\r\n { x: -7.289999999999287e-7, y: -0.03773908537930853 },\r\n { x: -7.279999999999287e-7, y: -0.0002931725709218301 },\r\n { x: -7.269999999999287e-7, y: 0.036716197921170875 },\r\n { x: -7.259999999999288e-7, y: -0.026457202804986164 },\r\n { x: -7.249999999999288e-7, y: 0.02423487257642817 },\r\n { x: -7.239999999999288e-7, y: -0.02343398583763106 },\r\n { x: -7.229999999999289e-7, y: -0.013925319635537338 },\r\n { x: -7.219999999999289e-7, y: 0.03538221489266571 },\r\n { x: -7.209999999999289e-7, y: -0.0008697835998210185 },\r\n { x: -7.199999999999289e-7, y: -0.022260767783963985 },\r\n { x: -7.18999999999929e-7, y: 0.012419595388602241 },\r\n { x: -7.17999999999929e-7, y: -0.03196548593981394 },\r\n { x: -7.16999999999929e-7, y: 0.024714985836480807 },\r\n { x: -7.159999999999291e-7, y: -0.018956228122529246 },\r\n { x: -7.149999999999291e-7, y: -0.031300745054078455 },\r\n { x: -7.139999999999291e-7, y: -0.0348782747532691 },\r\n { x: -7.129999999999292e-7, y: -0.013674107136283187 },\r\n { x: -7.119999999999292e-7, y: 0.005432015098493471 },\r\n { x: -7.109999999999292e-7, y: -0.00887826641364437 },\r\n { x: -7.099999999999293e-7, y: 0.02747122902020626 },\r\n { x: -7.089999999999293e-7, y: 0.005285957009757245 },\r\n { x: -7.079999999999293e-7, y: -0.0304346099279643 },\r\n { x: -7.069999999999293e-7, y: -0.033989737617403454 },\r\n { x: -7.059999999999294e-7, y: 0.02928696213333436 },\r\n { x: -7.049999999999294e-7, y: 0.03092709313677574 },\r\n { x: -7.039999999999294e-7, y: 0.0220907100004837 },\r\n { x: -7.029999999999295e-7, y: 0.002097081022607098 },\r\n { x: -7.019999999999295e-7, y: 0.02927584963188477 },\r\n { x: -7.009999999999295e-7, y: -0.026563025053022403 },\r\n { x: -6.999999999999296e-7, y: 0.027955356506882835 },\r\n { x: -6.989999999999296e-7, y: 0.011717749159196785 },\r\n { x: -6.979999999999296e-7, y: -0.01844583797651137 },\r\n { x: -6.969999999999297e-7, y: -0.03279512571645914 },\r\n { x: -6.959999999999297e-7, y: 0.030106953551930746 },\r\n { x: -6.949999999999297e-7, y: -0.020434368749354236 },\r\n { x: -6.939999999999297e-7, y: 0.027718405028198636 },\r\n { x: -6.929999999999298e-7, y: -0.023812127065734236 },\r\n { x: -6.919999999999298e-7, y: -0.016961517011275684 },\r\n { x: -6.909999999999298e-7, y: 0.007860640128169193 },\r\n { x: -6.899999999999299e-7, y: 0.0072246231204643584 },\r\n { x: -6.889999999999299e-7, y: -0.026809990666068734 },\r\n { x: -6.879999999999299e-7, y: 0.019094685110403936 },\r\n { x: -6.8699999999993e-7, y: 0.01910260361407817 },\r\n { x: -6.8599999999993e-7, y: -0.021892264193136907 },\r\n { x: -6.8499999999993e-7, y: -0.0015051666720148052 },\r\n { x: -6.8399999999993e-7, y: 0.001677891907363871 },\r\n { x: -6.829999999999301e-7, y: 0.006121967768864928 },\r\n { x: -6.819999999999301e-7, y: -0.01641753794052324 },\r\n { x: -6.809999999999301e-7, y: -0.026200855304732047 },\r\n { x: -6.799999999999302e-7, y: 0.014921284988103039 },\r\n { x: -6.789999999999302e-7, y: -0.02802718187016387 },\r\n { x: -6.779999999999302e-7, y: 0.0270094861069588 },\r\n { x: -6.769999999999303e-7, y: -0.03280403880906488 },\r\n { x: -6.759999999999303e-7, y: -0.006654548789746699 },\r\n { x: -6.749999999999303e-7, y: 0.01059287602364014 },\r\n { x: -6.739999999999304e-7, y: 0.00459015733253834 },\r\n { x: -6.729999999999304e-7, y: 0.03210706378427855 },\r\n { x: -6.719999999999304e-7, y: -0.027332589509352783 },\r\n { x: -6.709999999999305e-7, y: -0.03638117773089946 },\r\n { x: -6.699999999999305e-7, y: -0.0313984494673226 },\r\n { x: -6.689999999999305e-7, y: 0.022509852690589686 },\r\n { x: -6.679999999999305e-7, y: -0.011222849987818764 },\r\n { x: -6.669999999999306e-7, y: 0.0354456902138389 },\r\n { x: -6.659999999999306e-7, y: -0.035355338381689735 },\r\n { x: -6.649999999999306e-7, y: -0.03273456372042448 },\r\n { x: -6.639999999999307e-7, y: 0.037632377993272195 },\r\n { x: -6.629999999999307e-7, y: -0.0032497165509312045 },\r\n { x: -6.619999999999307e-7, y: -0.00525812192844277 },\r\n { x: -6.609999999999308e-7, y: 0.026082411463927743 },\r\n { x: -6.599999999999308e-7, y: 0.0005371650287673598 },\r\n { x: -6.589999999999308e-7, y: -0.005402311725754774 },\r\n { x: -6.579999999999309e-7, y: 0.029669042177349808 },\r\n { x: -6.569999999999309e-7, y: -0.0165022373391947 },\r\n { x: -6.559999999999309e-7, y: 0.03393076455731495 },\r\n { x: -6.549999999999309e-7, y: 0.007333906715309948 },\r\n { x: -6.53999999999931e-7, y: -0.028745892897458113 },\r\n { x: -6.52999999999931e-7, y: 0.02323790254517157 },\r\n { x: -6.51999999999931e-7, y: 0.0023720779857305777 },\r\n { x: -6.509999999999311e-7, y: 0.013015333281979458 },\r\n { x: -6.499999999999311e-7, y: 0.026857012226457568 },\r\n { x: -6.489999999999311e-7, y: -0.01897999950646951 },\r\n { x: -6.479999999999312e-7, y: 0.027275525359059215 },\r\n { x: -6.469999999999312e-7, y: -0.006744561827243408 },\r\n { x: -6.459999999999312e-7, y: -0.02128910714976712 },\r\n { x: -6.449999999999312e-7, y: 0.036536987158046264 },\r\n { x: -6.439999999999313e-7, y: -0.03262356204871867 },\r\n { x: -6.429999999999313e-7, y: -0.02302919180005553 },\r\n { x: -6.419999999999313e-7, y: -0.02513408612064682 },\r\n { x: -6.409999999999314e-7, y: -0.03649315076213799 },\r\n { x: -6.399999999999314e-7, y: 0.004837253568413848 },\r\n { x: -6.389999999999314e-7, y: -0.01987630083704264 },\r\n { x: -6.379999999999315e-7, y: 0.0182994090764373 },\r\n { x: -6.369999999999315e-7, y: 0.0037682857458279867 },\r\n { x: -6.359999999999315e-7, y: -0.025857645157095616 },\r\n { x: -6.349999999999316e-7, y: -0.002547405148933613 },\r\n { x: -6.339999999999316e-7, y: 0.0012864483880417716 },\r\n { x: -6.329999999999316e-7, y: 0.01656586953278925 },\r\n { x: -6.319999999999316e-7, y: 0.005633296789070536 },\r\n { x: -6.309999999999317e-7, y: -0.02692909228518187 },\r\n { x: -6.299999999999317e-7, y: 0.033034091430707326 },\r\n { x: -6.289999999999317e-7, y: 0.000841324146058516 },\r\n { x: -6.279999999999318e-7, y: 0.02117952105833375 },\r\n { x: -6.269999999999318e-7, y: -0.021910890070447463 },\r\n { x: -6.259999999999318e-7, y: -0.0012603429754274448 },\r\n { x: -6.249999999999319e-7, y: -0.000029963623049062668 },\r\n { x: -6.239999999999319e-7, y: 0.011504326854161978 },\r\n { x: -6.229999999999319e-7, y: 0.013443213956065443 },\r\n { x: -6.21999999999932e-7, y: 0.03423905325494616 },\r\n { x: -6.20999999999932e-7, y: -0.0012014379203648814 },\r\n { x: -6.19999999999932e-7, y: -0.03681681489040827 },\r\n { x: -6.18999999999932e-7, y: -0.011696922483330499 },\r\n { x: -6.179999999999321e-7, y: 0.004064106555042659 },\r\n { x: -6.169999999999321e-7, y: 0.026522292233923304 },\r\n { x: -6.159999999999321e-7, y: 0.026303978180255268 },\r\n { x: -6.149999999999322e-7, y: -0.012059156570144934 },\r\n { x: -6.139999999999322e-7, y: 0.021788653083909853 },\r\n { x: -6.129999999999322e-7, y: -0.022208000100723588 },\r\n { x: -6.119999999999323e-7, y: 0.013426097878221969 },\r\n { x: -6.109999999999323e-7, y: -0.019190120926348413 },\r\n { x: -6.099999999999323e-7, y: 0.029542252697688398 },\r\n { x: -6.089999999999324e-7, y: -0.021229043465104694 },\r\n { x: -6.079999999999324e-7, y: -0.02678096061500068 },\r\n { x: -6.069999999999324e-7, y: 0.018500261386440443 },\r\n { x: -6.059999999999324e-7, y: -0.03259508777224578 },\r\n { x: -6.049999999999325e-7, y: 0.021742044288600153 },\r\n { x: -6.039999999999325e-7, y: 0.02200122800120708 },\r\n { x: -6.029999999999325e-7, y: -0.00714686327800051 },\r\n { x: -6.019999999999326e-7, y: -0.01693199206884209 },\r\n { x: -6.009999999999326e-7, y: -0.024062566092241555 },\r\n { x: -5.999999999999326e-7, y: -0.0012649725384623466 },\r\n { x: -5.989999999999327e-7, y: 0.006787035066740783 },\r\n { x: -5.979999999999327e-7, y: -0.028662918760442524 },\r\n { x: -5.969999999999327e-7, y: 0.03292025923605793 },\r\n { x: -5.959999999999328e-7, y: -0.028248750005335662 },\r\n { x: -5.949999999999328e-7, y: 0.005911788375894198 },\r\n { x: -5.939999999999328e-7, y: 0.013617901199125624 },\r\n { x: -5.929999999999328e-7, y: -0.009851667093976588 },\r\n { x: -5.919999999999329e-7, y: 0.006991583991121393 },\r\n { x: -5.909999999999329e-7, y: 0.037391102216933494 },\r\n { x: -5.899999999999329e-7, y: -0.00425707469207949 },\r\n { x: -5.88999999999933e-7, y: -0.016339341319091674 },\r\n { x: -5.87999999999933e-7, y: 0.038167253730834946 },\r\n { x: -5.86999999999933e-7, y: 0.020894697876456935 },\r\n { x: -5.859999999999331e-7, y: -0.01918880894873754 },\r\n { x: -5.849999999999331e-7, y: -0.023041720730246493 },\r\n { x: -5.839999999999331e-7, y: -0.030218680197106256 },\r\n { x: -5.829999999999332e-7, y: 0.027228109860258032 },\r\n { x: -5.819999999999332e-7, y: -0.02895668994770278 },\r\n { x: -5.809999999999332e-7, y: -0.020615890258674288 },\r\n { x: -5.799999999999332e-7, y: -0.03677379199836666 },\r\n { x: -5.789999999999333e-7, y: 0.03065222249411227 },\r\n { x: -5.779999999999333e-7, y: -0.02692351686015201 },\r\n { x: -5.769999999999333e-7, y: -0.03347121552609948 },\r\n { x: -5.759999999999334e-7, y: -0.018436815949925033 },\r\n { x: -5.749999999999334e-7, y: -0.020711923304145244 },\r\n { x: -5.739999999999334e-7, y: 0.015515264813902845 },\r\n { x: -5.729999999999335e-7, y: 0.020797217592234296 },\r\n { x: -5.719999999999335e-7, y: 0.03688947463017097 },\r\n { x: -5.709999999999335e-7, y: 0.004346529244960781 },\r\n { x: -5.699999999999336e-7, y: -0.02980132424030097 },\r\n { x: -5.689999999999336e-7, y: -0.0208207401988313 },\r\n { x: -5.679999999999336e-7, y: -0.0153339790885583 },\r\n { x: -5.669999999999336e-7, y: 0.037197042598921974 },\r\n { x: -5.659999999999337e-7, y: -0.020771203342421902 },\r\n { x: -5.649999999999337e-7, y: 0.038048546092983825 },\r\n { x: -5.639999999999337e-7, y: 0.021681075659839816 },\r\n { x: -5.629999999999338e-7, y: 0.038013314656745845 },\r\n { x: -5.619999999999338e-7, y: 0.007790282935868771 },\r\n { x: -5.609999999999338e-7, y: 0.0319063573956932 },\r\n { x: -5.599999999999339e-7, y: 0.010494676054734347 },\r\n { x: -5.589999999999339e-7, y: -0.03301383949974486 },\r\n { x: -5.579999999999339e-7, y: -0.003371837164825826 },\r\n { x: -5.56999999999934e-7, y: 0.037796564074388445 },\r\n { x: -5.55999999999934e-7, y: -0.0068843456160199165 },\r\n { x: -5.54999999999934e-7, y: -0.0016397799921726867 },\r\n { x: -5.53999999999934e-7, y: -0.027033925958003562 },\r\n { x: -5.529999999999341e-7, y: 0.030837625712965895 },\r\n { x: -5.519999999999341e-7, y: 0.02402482696409352 },\r\n { x: -5.509999999999341e-7, y: 0.005365150378940554 },\r\n { x: -5.499999999999342e-7, y: -0.002699016971069865 },\r\n { x: -5.489999999999342e-7, y: -0.01689677285149041 },\r\n { x: -5.479999999999342e-7, y: 0.034945223123161194 },\r\n { x: -5.469999999999343e-7, y: -0.02477631221755628 },\r\n { x: -5.459999999999343e-7, y: 0.002752120716507772 },\r\n { x: -5.449999999999343e-7, y: -0.01280693354681033 },\r\n { x: -5.439999999999344e-7, y: -0.018987931888737316 },\r\n { x: -5.429999999999344e-7, y: 0.03623666664093101 },\r\n { x: -5.419999999999344e-7, y: -0.02048956128127825 },\r\n { x: -5.409999999999344e-7, y: -0.013620046993659209 },\r\n { x: -5.399999999999345e-7, y: 0.0323835954094382 },\r\n { x: -5.389999999999345e-7, y: -0.009018041646379121 },\r\n { x: -5.379999999999345e-7, y: -0.010114627595053187 },\r\n { x: -5.369999999999346e-7, y: -0.038318943615224664 },\r\n { x: -5.359999999999346e-7, y: 0.015759376601194613 },\r\n { x: -5.349999999999346e-7, y: -0.0215600233422073 },\r\n { x: -5.339999999999347e-7, y: -0.015502455862315223 },\r\n { x: -5.329999999999347e-7, y: -0.01637689200293658 },\r\n { x: -5.319999999999347e-7, y: 0.037296678672567016 },\r\n { x: -5.309999999999348e-7, y: 0.00016984160083190658 },\r\n { x: -5.299999999999348e-7, y: 0.020208980877136348 },\r\n { x: -5.289999999999348e-7, y: 0.02106492574351752 },\r\n { x: -5.279999999999348e-7, y: 0.010140411074034801 },\r\n { x: -5.269999999999349e-7, y: 0.012030641892448275 },\r\n { x: -5.259999999999349e-7, y: -0.0160382673405169 },\r\n { x: -5.249999999999349e-7, y: -0.008389576091561253 },\r\n { x: -5.23999999999935e-7, y: -0.024672980475083036 },\r\n { x: -5.22999999999935e-7, y: 0.019835518594130918 },\r\n { x: -5.21999999999935e-7, y: 0.01894037634659523 },\r\n { x: -5.209999999999351e-7, y: -0.0037410433972414328 },\r\n { x: -5.199999999999351e-7, y: 0.030193826581296927 },\r\n { x: -5.189999999999351e-7, y: -0.030511069499683647 },\r\n { x: -5.179999999999352e-7, y: 0.004402151027481887 },\r\n { x: -5.169999999999352e-7, y: 0.013669149116530884 },\r\n { x: -5.159999999999352e-7, y: -0.008998797248273235 },\r\n { x: -5.149999999999352e-7, y: -0.0075357382227624415 },\r\n { x: -5.139999999999353e-7, y: 0.027307552666633022 },\r\n { x: -5.129999999999353e-7, y: -0.008714039875602212 },\r\n { x: -5.119999999999353e-7, y: -0.010654556595364151 },\r\n { x: -5.109999999999354e-7, y: -0.014094754058061374 },\r\n { x: -5.099999999999354e-7, y: -0.005923052582552714 },\r\n { x: -5.089999999999354e-7, y: 0.037126934365119164 },\r\n { x: -5.079999999999355e-7, y: 0.024855077671973914 },\r\n { x: -5.069999999999355e-7, y: -0.00899826193442723 },\r\n { x: -5.059999999999355e-7, y: -0.020175311969571518 },\r\n { x: -5.049999999999356e-7, y: -0.009670224239580071 },\r\n { x: -5.039999999999356e-7, y: -0.02449927600855842 },\r\n { x: -5.029999999999356e-7, y: 0.016877202567956405 },\r\n { x: -5.019999999999356e-7, y: 0.024015249183921394 },\r\n { x: -5.009999999999357e-7, y: 0.016692677709990222 },\r\n { x: -4.999999999999357e-7, y: -0.03061607807128818 },\r\n { x: -4.989999999999357e-7, y: 0.0328830465502613 },\r\n { x: -4.979999999999358e-7, y: -0.02536460955878092 },\r\n { x: -4.969999999999358e-7, y: -0.00701673329043003 },\r\n { x: -4.959999999999358e-7, y: -0.00009851986595585799 },\r\n { x: -4.949999999999359e-7, y: 0.00045193160896987353 },\r\n { x: -4.939999999999359e-7, y: -0.02821931782806969 },\r\n { x: -4.929999999999359e-7, y: -0.008911267882016611 },\r\n { x: -4.91999999999936e-7, y: 0.025025915132938267 },\r\n { x: -4.90999999999936e-7, y: 0.008696595962662378 },\r\n { x: -4.89999999999936e-7, y: -0.03148170988750545 },\r\n { x: -4.88999999999936e-7, y: 0.02601655824539923 },\r\n { x: -4.879999999999361e-7, y: 0.03716094133856492 },\r\n { x: -4.869999999999361e-7, y: -0.026329335413725733 },\r\n { x: -4.859999999999361e-7, y: -0.019010987890180363 },\r\n { x: -4.849999999999362e-7, y: -0.03696500330457485 },\r\n { x: -4.839999999999362e-7, y: 0.03722147274506833 },\r\n { x: -4.829999999999362e-7, y: -0.005944847278957255 },\r\n { x: -4.819999999999363e-7, y: 0.02273284393958523 },\r\n { x: -4.809999999999363e-7, y: -0.026743775014016584 },\r\n { x: -4.799999999999363e-7, y: 0.003374896427794901 },\r\n { x: -4.789999999999364e-7, y: -0.021645314139998945 },\r\n { x: -4.779999999999364e-7, y: -0.03740958138926493 },\r\n { x: -4.769999999999364e-7, y: 0.009461506309069632 },\r\n { x: -4.759999999999364e-7, y: 0.0013674561444570773 },\r\n { x: -4.7499999999993637e-7, y: 0.016354953110585334 },\r\n { x: -4.7399999999993635e-7, y: -0.02324457265267391 },\r\n { x: -4.7299999999993633e-7, y: -0.01673664805640501 },\r\n { x: -4.719999999999363e-7, y: -0.00015193183769306276 },\r\n { x: -4.709999999999363e-7, y: 0.0008039217090670105 },\r\n { x: -4.6999999999993626e-7, y: 0.01597715371487733 },\r\n { x: -4.6899999999993624e-7, y: 0.0019769652104212818 },\r\n { x: -4.679999999999362e-7, y: -0.032851011423476704 },\r\n { x: -4.669999999999362e-7, y: 0.06932641920808683 },\r\n { x: -4.6599999999993617e-7, y: 0.02656540293626496 },\r\n { x: -4.6499999999993615e-7, y: 0.007897039000335783 },\r\n { x: -4.6399999999993613e-7, y: -0.027103847662122805 },\r\n { x: -4.629999999999361e-7, y: 0.029694558179882837 },\r\n { x: -4.619999999999361e-7, y: 0.0018248423122610568 },\r\n { x: -4.6099999999993606e-7, y: 0.009758548707735707 },\r\n { x: -4.5999999999993604e-7, y: -0.009428239581410956 },\r\n { x: -4.58999999999936e-7, y: -0.0356313429142074 },\r\n { x: -4.57999999999936e-7, y: 0.03593672717025784 },\r\n { x: -4.5699999999993597e-7, y: 0.018531571981076727 },\r\n { x: -4.5599999999993595e-7, y: 0.016552444396710556 },\r\n { x: -4.5499999999993593e-7, y: -0.002337247496148302 },\r\n { x: -4.539999999999359e-7, y: 0.0007785083458110871 },\r\n { x: -4.529999999999359e-7, y: -0.02905886063018612 },\r\n { x: -4.5199999999993586e-7, y: 0.036852363387532006 },\r\n { x: -4.5099999999993584e-7, y: 0.0022927258407498263 },\r\n { x: -4.499999999999358e-7, y: 0.032606694860042994 },\r\n { x: -4.489999999999358e-7, y: -0.034456756692891444 },\r\n { x: -4.4799999999993577e-7, y: -0.01984547778443541 },\r\n { x: -4.4699999999993575e-7, y: 0.013405428432036856 },\r\n { x: -4.4599999999993573e-7, y: 0.026208836494072685 },\r\n { x: -4.449999999999357e-7, y: 0.014176530718128064 },\r\n { x: -4.439999999999357e-7, y: -0.03456288120110022 },\r\n { x: -4.4299999999993566e-7, y: 0.016830473615826024 },\r\n { x: -4.4199999999993564e-7, y: 0.023872773074407688 },\r\n { x: -4.409999999999356e-7, y: 0.027047005024774126 },\r\n { x: -4.399999999999356e-7, y: -0.01678895619778788 },\r\n { x: -4.3899999999993557e-7, y: -0.005711371228984338 },\r\n { x: -4.3799999999993555e-7, y: 0.03022710868431257 },\r\n { x: -4.3699999999993553e-7, y: 0.02409226383776998 },\r\n { x: -4.359999999999355e-7, y: 0.016454030380970534 },\r\n { x: -4.349999999999355e-7, y: -0.016608148401473802 },\r\n { x: -4.3399999999993546e-7, y: 0.004617163937858662 },\r\n { x: -4.3299999999993544e-7, y: 0.03498457738044681 },\r\n { x: -4.319999999999354e-7, y: 0.006581533175657876 },\r\n { x: -4.309999999999354e-7, y: 0.01352623392192395 },\r\n { x: -4.2999999999993537e-7, y: 0.030714274070325457 },\r\n { x: -4.2899999999993535e-7, y: 0.036538763878164994 },\r\n { x: -4.2799999999993533e-7, y: 0.03769958720522041 },\r\n { x: -4.269999999999353e-7, y: -0.0024929375955899074 },\r\n { x: -4.259999999999353e-7, y: -0.024323310595140344 },\r\n { x: -4.2499999999993526e-7, y: 0.013076787058204128 },\r\n { x: -4.2399999999993524e-7, y: -0.013467613220872292 },\r\n { x: -4.229999999999352e-7, y: -0.027774140084367967 },\r\n { x: -4.219999999999352e-7, y: 0.004517907339911999 },\r\n { x: -4.2099999999993517e-7, y: 0.03749945939631262 },\r\n { x: -4.1999999999993515e-7, y: 0.004443943512421321 },\r\n { x: -4.1899999999993513e-7, y: 0.004115654475036444 },\r\n { x: -4.179999999999351e-7, y: -0.014654039306239115 },\r\n { x: -4.169999999999351e-7, y: 0.038109915541014415 },\r\n { x: -4.1599999999993506e-7, y: 0.03746261698864426 },\r\n { x: -4.1499999999993504e-7, y: -0.0008754086945264309 },\r\n { x: -4.13999999999935e-7, y: -0.028624933767044402 },\r\n { x: -4.12999999999935e-7, y: -0.016959004475366465 },\r\n { x: -4.11999999999935e-7, y: 0.0012284875710190423 },\r\n { x: -4.1099999999993495e-7, y: -0.008583333568278161 },\r\n { x: -4.0999999999993493e-7, y: 0.029831692307815773 },\r\n { x: -4.089999999999349e-7, y: -0.00960009174369107 },\r\n { x: -4.079999999999349e-7, y: -0.023298294635352924 },\r\n { x: -4.0699999999993486e-7, y: 0.014722499395278248 },\r\n { x: -4.0599999999993484e-7, y: -0.009409509873052066 },\r\n { x: -4.049999999999348e-7, y: -0.01877895297827343 },\r\n { x: -4.039999999999348e-7, y: 0.035607385872300674 },\r\n { x: -4.029999999999348e-7, y: 0.027544753079410875 },\r\n { x: -4.0199999999993475e-7, y: -0.02656906620890856 },\r\n { x: -4.0099999999993473e-7, y: 0.015627276790128958 },\r\n { x: -3.999999999999347e-7, y: 0.02218681102676791 },\r\n { x: -3.989999999999347e-7, y: -0.005376876812212225 },\r\n { x: -3.9799999999993466e-7, y: -0.007886995843671056 },\r\n { x: -3.9699999999993464e-7, y: 0.02142751399413668 },\r\n { x: -3.959999999999346e-7, y: -0.016887140215574064 },\r\n { x: -3.949999999999346e-7, y: 0.03624855923128197 },\r\n { x: -3.939999999999346e-7, y: 0.008104464425445997 },\r\n { x: -3.9299999999993455e-7, y: -0.0032750014970892396 },\r\n { x: -3.9199999999993453e-7, y: -0.030805592590375037 },\r\n { x: -3.909999999999345e-7, y: -0.014122601108262673 },\r\n { x: -3.899999999999345e-7, y: 0.021798765767953858 },\r\n { x: -3.8899999999993446e-7, y: 0.03829533478050582 },\r\n { x: -3.8799999999993444e-7, y: 0.02837964532950979 },\r\n { x: -3.869999999999344e-7, y: -0.027123323515050545 },\r\n { x: -3.859999999999344e-7, y: -0.019015802863131825 },\r\n { x: -3.849999999999344e-7, y: -0.033897898380783 },\r\n { x: -3.8399999999993435e-7, y: -0.02608445807495351 },\r\n { x: -3.8299999999993433e-7, y: -0.02037540262438684 },\r\n { x: -3.819999999999343e-7, y: 0.0131079444841664 },\r\n { x: -3.809999999999343e-7, y: 0.011345953738193281 },\r\n { x: -3.7999999999993426e-7, y: 0.023746785693104424 },\r\n { x: -3.7899999999993424e-7, y: -0.0012674335369404627 },\r\n { x: -3.779999999999342e-7, y: -0.016961371118575243 },\r\n { x: -3.769999999999342e-7, y: -0.01947993499109862 },\r\n { x: -3.759999999999342e-7, y: 0.029100593786119774 },\r\n { x: -3.7499999999993415e-7, y: 0.005747579368175604 },\r\n { x: -3.7399999999993413e-7, y: -0.023783933782955895 },\r\n { x: -3.729999999999341e-7, y: -0.016567949412315493 },\r\n { x: -3.719999999999341e-7, y: 0.00915024742486819 },\r\n { x: -3.7099999999993406e-7, y: 0.029849594553970314 },\r\n { x: -3.6999999999993404e-7, y: 0.0045325909916444935 },\r\n { x: -3.68999999999934e-7, y: -0.0015042669569214448 },\r\n { x: -3.67999999999934e-7, y: -0.025004458755548447 },\r\n { x: -3.66999999999934e-7, y: -0.010508426559348936 },\r\n { x: -3.6599999999993395e-7, y: -0.02697610737889414 },\r\n { x: -3.6499999999993393e-7, y: -0.011352360485399827 },\r\n { x: -3.639999999999339e-7, y: -0.038020789012463425 },\r\n { x: -3.629999999999339e-7, y: -0.0205532335505078 },\r\n { x: -3.6199999999993386e-7, y: 0.012163200088658266 },\r\n { x: -3.6099999999993384e-7, y: 0.015273909929938252 },\r\n { x: -3.599999999999338e-7, y: -0.02235492756287762 },\r\n { x: -3.589999999999338e-7, y: -0.01866605465802742 },\r\n { x: -3.579999999999338e-7, y: 0.0014292383924288492 },\r\n { x: -3.5699999999993375e-7, y: 0.035948995274460625 },\r\n { x: -3.5599999999993373e-7, y: -0.03370134007133872 },\r\n { x: -3.549999999999337e-7, y: 0.03023431426334664 },\r\n { x: -3.539999999999337e-7, y: -0.034331327176150415 },\r\n { x: -3.5299999999993366e-7, y: -0.03444831481803883 },\r\n { x: -3.5199999999993364e-7, y: 0.01063462228947142 },\r\n { x: -3.509999999999336e-7, y: -0.01489766898439868 },\r\n { x: -3.499999999999336e-7, y: 0.03586754690355203 },\r\n { x: -3.489999999999336e-7, y: 0.016184357479110553 },\r\n { x: -3.4799999999993355e-7, y: 0.010408493799289202 },\r\n { x: -3.4699999999993353e-7, y: 0.016522189266849552 },\r\n { x: -3.459999999999335e-7, y: -0.023448213183515292 },\r\n { x: -3.449999999999335e-7, y: 0.0033972943416049907 },\r\n { x: -3.4399999999993346e-7, y: -0.01972712801423758 },\r\n { x: -3.4299999999993344e-7, y: -0.016491964007021458 },\r\n { x: -3.419999999999334e-7, y: -0.007382138015212052 },\r\n { x: -3.409999999999334e-7, y: -0.035121234567728046 },\r\n { x: -3.399999999999334e-7, y: 0.03821428153002842 },\r\n { x: -3.3899999999993335e-7, y: -0.011472240052964676 },\r\n { x: -3.3799999999993333e-7, y: 0.0183845167764827 },\r\n { x: -3.369999999999333e-7, y: 0.005725350498037771 },\r\n { x: -3.359999999999333e-7, y: -0.03470912388654533 },\r\n { x: -3.3499999999993327e-7, y: -0.00705656191395721 },\r\n { x: -3.3399999999993324e-7, y: 0.027291201799425978 },\r\n { x: -3.329999999999332e-7, y: -0.021202866600286814 },\r\n { x: -3.319999999999332e-7, y: -0.011889542799743299 },\r\n { x: -3.309999999999332e-7, y: 0.02741262776875824 },\r\n { x: -3.2999999999993315e-7, y: 0.03524542654188016 },\r\n { x: -3.2899999999993313e-7, y: -0.029743333395877255 },\r\n { x: -3.279999999999331e-7, y: -0.03545871693571225 },\r\n { x: -3.269999999999331e-7, y: 0.037481238634134634 },\r\n { x: -3.2599999999993307e-7, y: 0.000868038712042484 },\r\n { x: -3.2499999999993304e-7, y: 0.008138191252355896 },\r\n { x: -3.23999999999933e-7, y: 0.03028047238881504 },\r\n { x: -3.22999999999933e-7, y: -0.00847797058562639 },\r\n { x: -3.21999999999933e-7, y: 0.03775654659760015 },\r\n { x: -3.2099999999993295e-7, y: -0.013823588073563604 },\r\n { x: -3.1999999999993293e-7, y: -0.02254704395135032 },\r\n { x: -3.189999999999329e-7, y: 0.009525372189035595 },\r\n { x: -3.179999999999329e-7, y: 0.0023775445960528977 },\r\n { x: -3.1699999999993287e-7, y: 0.027114001841603126 },\r\n { x: -3.1599999999993284e-7, y: 0.0020019980896420577 },\r\n { x: -3.149999999999328e-7, y: -0.037692027283707186 },\r\n { x: -3.139999999999328e-7, y: 0.024365911638839388 },\r\n { x: -3.129999999999328e-7, y: 0.038036834457867735 },\r\n { x: -3.1199999999993275e-7, y: 0.026564484320203263 },\r\n { x: -3.1099999999993273e-7, y: -0.03696169754571912 },\r\n { x: -3.099999999999327e-7, y: -0.01995828013795558 },\r\n { x: -3.089999999999327e-7, y: 0.02367356023645286 },\r\n { x: -3.0799999999993267e-7, y: 0.01140525596555517 },\r\n { x: -3.0699999999993264e-7, y: 0.0078097665333482 },\r\n { x: -3.059999999999326e-7, y: -0.0014158938452822933 },\r\n { x: -3.049999999999326e-7, y: 0.02426850402271181 },\r\n { x: -3.039999999999326e-7, y: -0.02325227193707388 },\r\n { x: -3.0299999999993256e-7, y: -0.00566885280125813 },\r\n { x: -3.0199999999993253e-7, y: -0.03729116676410857 },\r\n { x: -3.009999999999325e-7, y: 0.015028079439946739 },\r\n { x: -2.999999999999325e-7, y: 0.009513073411901551 },\r\n { x: -2.9899999999993247e-7, y: 0.005344653905798962 },\r\n { x: -2.9799999999993244e-7, y: -0.025153867654681333 },\r\n { x: -2.969999999999324e-7, y: -0.010104536826985427 },\r\n { x: -2.959999999999324e-7, y: 0.011694700030693398 },\r\n { x: -2.949999999999324e-7, y: 0.030316109820884007 },\r\n { x: -2.9399999999993236e-7, y: -0.018684330958494467 },\r\n { x: -2.9299999999993233e-7, y: 0.0032932605733379744 },\r\n { x: -2.919999999999323e-7, y: -0.008830329488269032 },\r\n { x: -2.909999999999323e-7, y: 0.0028543933230057213 },\r\n { x: -2.8999999999993227e-7, y: -0.011823972351564719 },\r\n { x: -2.8899999999993224e-7, y: 0.0292281096060689 },\r\n { x: -2.879999999999322e-7, y: -0.033097365562273745 },\r\n { x: -2.869999999999322e-7, y: 0.013075176774745338 },\r\n { x: -2.859999999999322e-7, y: 0.01916467486574591 },\r\n { x: -2.8499999999993216e-7, y: -0.0030577751660357017 },\r\n { x: -2.8399999999993213e-7, y: 0.0024698753505127766 },\r\n { x: -2.829999999999321e-7, y: 0.006726865754168589 },\r\n { x: -2.819999999999321e-7, y: -0.03352103444506385 },\r\n { x: -2.8099999999993207e-7, y: -0.0006328725955294857 },\r\n { x: -2.7999999999993204e-7, y: -0.022072865557930022 },\r\n { x: -2.78999999999932e-7, y: -0.015087482287251614 },\r\n { x: -2.77999999999932e-7, y: 0.021930827610196182 },\r\n { x: -2.76999999999932e-7, y: 0.036114252942463614 },\r\n { x: -2.7599999999993196e-7, y: 0.013480463361941978 },\r\n { x: -2.7499999999993193e-7, y: 0.036119136218706195 },\r\n { x: -2.739999999999319e-7, y: -0.03737441500639726 },\r\n { x: -2.729999999999319e-7, y: -0.020643728344049487 },\r\n { x: -2.7199999999993187e-7, y: -0.011789293940388348 },\r\n { x: -2.7099999999993184e-7, y: -0.008195787899156506 },\r\n { x: -2.699999999999318e-7, y: 0.03285209369418967 },\r\n { x: -2.689999999999318e-7, y: 0.0317778992871913 },\r\n { x: -2.679999999999318e-7, y: -0.006464683270472996 },\r\n { x: -2.6699999999993176e-7, y: 0.01824154316645744 },\r\n { x: -2.6599999999993173e-7, y: -0.015422912801715951 },\r\n { x: -2.649999999999317e-7, y: -0.025806199554868035 },\r\n { x: -2.639999999999317e-7, y: 0.035238314439241906 },\r\n { x: -2.6299999999993167e-7, y: -0.01958904955047636 },\r\n { x: -2.6199999999993165e-7, y: 0.016304345038460073 },\r\n { x: -2.609999999999316e-7, y: -0.016831681665570593 },\r\n { x: -2.599999999999316e-7, y: -0.0006191874808557794 },\r\n { x: -2.589999999999316e-7, y: -0.036482341947945425 },\r\n { x: -2.5799999999993156e-7, y: 0.011924383438017048 },\r\n { x: -2.5699999999993153e-7, y: 0.0034860023883373473 },\r\n { x: -2.559999999999315e-7, y: 0.01625724854429595 },\r\n { x: -2.549999999999315e-7, y: -0.0045323255757287965 },\r\n { x: -2.5399999999993147e-7, y: -0.017418846636385606 },\r\n { x: -2.5299999999993145e-7, y: -0.008758278674948437 },\r\n { x: -2.519999999999314e-7, y: 0.028420364197662754 },\r\n { x: -2.509999999999314e-7, y: 0.006157549009896937 },\r\n { x: -2.499999999999314e-7, y: 0.03405373137579483 },\r\n { x: -2.4899999999993136e-7, y: -0.0066285083976237716 },\r\n { x: -2.4799999999993133e-7, y: 0.011483246916349134 },\r\n { x: -2.469999999999313e-7, y: -0.001205122467282206 },\r\n { x: -2.459999999999313e-7, y: 0.03370991547225574 },\r\n { x: -2.4499999999993127e-7, y: 0.010582462966692649 },\r\n { x: -2.4399999999993125e-7, y: 0.024981266958621934 },\r\n { x: -2.429999999999312e-7, y: 0.03202715319183665 },\r\n { x: -2.419999999999312e-7, y: 0.02166321966569135 },\r\n { x: -2.409999999999312e-7, y: 0.031510064756146046 },\r\n { x: -2.3999999999993116e-7, y: -0.02391154825710596 },\r\n { x: -2.3899999999993113e-7, y: -0.02561748337235069 },\r\n { x: -2.3799999999993114e-7, y: 0.014928391463372132 },\r\n { x: -2.3699999999993114e-7, y: 0.023968334923967858 },\r\n { x: -2.3599999999993115e-7, y: -0.03454698509176921 },\r\n { x: -2.3499999999993115e-7, y: -0.023742378008478487 },\r\n { x: -2.3399999999993116e-7, y: 0.034357258293760226 },\r\n { x: -2.3299999999993116e-7, y: 0.03374519470424609 },\r\n { x: -2.3199999999993116e-7, y: -0.006905003053431417 },\r\n { x: -2.3099999999993117e-7, y: 0.024423612260077332 },\r\n { x: -2.2999999999993117e-7, y: -0.025970144401944215 },\r\n { x: -2.2899999999993118e-7, y: -0.01585621414527635 },\r\n { x: -2.2799999999993118e-7, y: 0.03509216437727518 },\r\n { x: -2.2699999999993119e-7, y: 0.03712317356062595 },\r\n { x: -2.259999999999312e-7, y: -0.009358822552676121 },\r\n { x: -2.249999999999312e-7, y: 0.010032357882639687 },\r\n { x: -2.239999999999312e-7, y: -0.013969217201878607 },\r\n { x: -2.229999999999312e-7, y: -0.015918118855267355 },\r\n { x: -2.219999999999312e-7, y: -0.028274321387790412 },\r\n { x: -2.209999999999312e-7, y: -0.008679952774400862 },\r\n { x: -2.1999999999993122e-7, y: -0.02564963975030458 },\r\n { x: -2.1899999999993122e-7, y: 0.017650334243266022 },\r\n { x: -2.1799999999993122e-7, y: 0.03530758531792346 },\r\n { x: -2.1699999999993123e-7, y: -0.035911236547750434 },\r\n { x: -2.1599999999993123e-7, y: 0.0013507887723224893 },\r\n { x: -2.1499999999993124e-7, y: -0.015565648369075752 },\r\n { x: -2.1399999999993124e-7, y: -0.016685393487460874 },\r\n { x: -2.1299999999993125e-7, y: 0.015871369742837826 },\r\n { x: -2.1199999999993125e-7, y: 0.006046204205466943 },\r\n { x: -2.1099999999993125e-7, y: -0.0030431216017367565 },\r\n { x: -2.0999999999993126e-7, y: -0.01044507942983039 },\r\n { x: -2.0899999999993126e-7, y: 0.03573833959618011 },\r\n { x: -2.0799999999993127e-7, y: -0.008992997756426781 },\r\n { x: -2.0699999999993127e-7, y: 0.03696604719411287 },\r\n { x: -2.0599999999993128e-7, y: -0.015073568321485027 },\r\n { x: -2.0499999999993128e-7, y: -0.010086736856374245 },\r\n { x: -2.0399999999993128e-7, y: 0.01410181977929076 },\r\n { x: -2.029999999999313e-7, y: -0.0058330353626653095 },\r\n { x: -2.019999999999313e-7, y: 0.015457357583510503 },\r\n { x: -2.009999999999313e-7, y: -0.017534530556566702 },\r\n { x: -1.999999999999313e-7, y: -0.035601992619162304 },\r\n { x: -1.989999999999313e-7, y: 0.007904988832166492 },\r\n { x: -1.979999999999313e-7, y: 0.02569858165953012 },\r\n { x: -1.9699999999993131e-7, y: -0.01268522374900902 },\r\n { x: -1.9599999999993132e-7, y: -0.018121155957264667 },\r\n { x: -1.9499999999993132e-7, y: 0.02061041143055766 },\r\n { x: -1.9399999999993133e-7, y: -0.008840215099175694 },\r\n { x: -1.9299999999993133e-7, y: -0.03652112925199514 },\r\n { x: -1.9199999999993134e-7, y: 0.008174779623938448 },\r\n { x: -1.9099999999993134e-7, y: 0.03529952154612975 },\r\n { x: -1.8999999999993134e-7, y: 0.030368375593192113 },\r\n { x: -1.8899999999993135e-7, y: -0.02123428780928653 },\r\n { x: -1.8799999999993135e-7, y: -0.003718508242115864 },\r\n { x: -1.8699999999993136e-7, y: -0.03468025752054715 },\r\n { x: -1.8599999999993136e-7, y: 0.026036616409071837 },\r\n { x: -1.8499999999993137e-7, y: 0.0016423104189708143 },\r\n { x: -1.8399999999993137e-7, y: 0.03171428469100279 },\r\n { x: -1.8299999999993137e-7, y: -0.016478522450779937 },\r\n { x: -1.8199999999993138e-7, y: -0.05789074385915425 },\r\n { x: -1.8099999999993138e-7, y: -0.0013360377763962552 },\r\n { x: -1.799999999999314e-7, y: 0.028311933648685825 },\r\n { x: -1.789999999999314e-7, y: -0.0058701852382468155 },\r\n { x: -1.779999999999314e-7, y: -0.029190174689918993 },\r\n { x: -1.769999999999314e-7, y: 0.023188948448225954 },\r\n { x: -1.759999999999314e-7, y: 0.021815855809314097 },\r\n { x: -1.749999999999314e-7, y: -0.018607974271348544 },\r\n { x: -1.739999999999314e-7, y: 0.02214004297327952 },\r\n { x: -1.7299999999993142e-7, y: -0.023827175966968095 },\r\n { x: -1.7199999999993142e-7, y: 0.03094264608713723 },\r\n { x: -1.7099999999993143e-7, y: -0.026174971744903165 },\r\n { x: -1.6999999999993143e-7, y: -0.025051348319339358 },\r\n { x: -1.6899999999993143e-7, y: -0.004768120114201645 },\r\n { x: -1.6799999999993144e-7, y: 0.014081549002571461 },\r\n { x: -1.6699999999993144e-7, y: 0.03180882132651888 },\r\n { x: -1.6599999999993145e-7, y: 0.002173689560844717 },\r\n { x: -1.6499999999993145e-7, y: -0.018737405976084285 },\r\n { x: -1.6399999999993146e-7, y: -0.014585301650330921 },\r\n { x: -1.6299999999993146e-7, y: 0.015602049999032364 },\r\n { x: -1.6199999999993146e-7, y: -0.005610621161915424 },\r\n { x: -1.6099999999993147e-7, y: 0.02108857916150817 },\r\n { x: -1.5999999999993147e-7, y: 0.033522554651299344 },\r\n { x: -1.5899999999993148e-7, y: -0.010920379919065323 },\r\n { x: -1.5799999999993148e-7, y: 0.033474036356441875 },\r\n { x: -1.5699999999993149e-7, y: 0.01717633656792932 },\r\n { x: -1.559999999999315e-7, y: 0.022830139011231158 },\r\n { x: -1.549999999999315e-7, y: -0.017148088912630352 },\r\n { x: -1.539999999999315e-7, y: 0.03829531639159738 },\r\n { x: -1.529999999999315e-7, y: 0.02810785137351485 },\r\n { x: -1.519999999999315e-7, y: -0.025030886157620027 },\r\n { x: -1.509999999999315e-7, y: -0.0213331455598955 },\r\n { x: -1.4999999999993152e-7, y: -0.020643267095945356 },\r\n { x: -1.4899999999993152e-7, y: -0.003781962323834834 },\r\n { x: -1.4799999999993152e-7, y: -0.026162796302254283 },\r\n { x: -1.4699999999993153e-7, y: 0.019724970582389686 },\r\n { x: -1.4599999999993153e-7, y: -0.0329234572410268 },\r\n { x: -1.4499999999993154e-7, y: 0.03775546980293661 },\r\n { x: -1.4399999999993154e-7, y: 0.021949333584469356 },\r\n { x: -1.4299999999993155e-7, y: 0.009438960886899462 },\r\n { x: -1.4199999999993155e-7, y: 0.03057407723189284 },\r\n { x: -1.4099999999993155e-7, y: -0.02842148326974319 },\r\n { x: -1.3999999999993156e-7, y: -0.007090221090106025 },\r\n { x: -1.3899999999993156e-7, y: 0.025399609643791343 },\r\n { x: -1.3799999999993157e-7, y: -0.0006261656652823926 },\r\n { x: -1.3699999999993157e-7, y: -0.007803680692520011 },\r\n { x: -1.3599999999993158e-7, y: -0.04110827863463731 },\r\n { x: -1.3499999999993158e-7, y: -0.011652926734824228 },\r\n { x: -1.3399999999993158e-7, y: 0.023820436088801238 },\r\n { x: -1.329999999999316e-7, y: 0.02747139092627198 },\r\n { x: -1.319999999999316e-7, y: -0.011828710152233303 },\r\n { x: -1.309999999999316e-7, y: 0.005724307255565378 },\r\n { x: -1.299999999999316e-7, y: 0.02862619109093727 },\r\n { x: -1.289999999999316e-7, y: -0.01763804545071117 },\r\n { x: -1.279999999999316e-7, y: -0.019805710036850794 },\r\n { x: -1.2699999999993161e-7, y: -0.01812581522641391 },\r\n { x: -1.2599999999993162e-7, y: -0.021096575063561857 },\r\n { x: -1.2499999999993162e-7, y: -0.027593275461981093 },\r\n { x: -1.2399999999993163e-7, y: -0.033034066193210705 },\r\n { x: -1.2299999999993163e-7, y: -0.012518718767353441 },\r\n { x: -1.2199999999993164e-7, y: 0.011012397330959425 },\r\n { x: -1.2099999999993164e-7, y: 0.011997956155848555 },\r\n { x: -1.1999999999993164e-7, y: -0.030361769753763264 },\r\n { x: -1.1899999999993165e-7, y: 0.021154731927001322 },\r\n { x: -1.1799999999993165e-7, y: -0.033016626390005445 },\r\n { x: -1.1699999999993166e-7, y: 0.007023761187189891 },\r\n { x: -1.1599999999993166e-7, y: -0.015657603659062783 },\r\n { x: -1.1499999999993167e-7, y: -0.037535162530381194 },\r\n { x: -1.1399999999993167e-7, y: 0.005816603778038893 },\r\n { x: -1.1299999999993167e-7, y: -0.0318834856995062 },\r\n { x: -1.1199999999993168e-7, y: 0.004925105638142008 },\r\n { x: -1.1099999999993168e-7, y: 0.02074974287381789 },\r\n { x: -1.0999999999993169e-7, y: -0.016944896010134457 },\r\n { x: -1.0899999999993169e-7, y: -0.008617973767884124 },\r\n { x: -1.079999999999317e-7, y: -0.018525156681826603 },\r\n { x: -1.069999999999317e-7, y: 0.007908411955996222 },\r\n { x: -1.059999999999317e-7, y: 0.03729322793984474 },\r\n { x: -1.0499999999993171e-7, y: -0.01346242076499064 },\r\n { x: -1.0399999999993171e-7, y: 0.006947684777811931 },\r\n { x: -1.0299999999993172e-7, y: 0.008749554301109953 },\r\n { x: -1.0199999999993172e-7, y: 0.017559706810042038 },\r\n { x: -1.0099999999993173e-7, y: 0.013201622720842262 },\r\n { x: -9.999999999993173e-8, y: 0.007939822487957665 },\r\n { x: -9.899999999993173e-8, y: 0.020645714036264678 },\r\n { x: -9.799999999993174e-8, y: 0.030429070581637557 },\r\n { x: -9.699999999993174e-8, y: 0.03376194431178459 },\r\n { x: -9.599999999993175e-8, y: 0.0232257086733735 },\r\n { x: -9.499999999993175e-8, y: -0.03139777375041945 },\r\n { x: -9.399999999993176e-8, y: 0.02033376722589085 },\r\n { x: -9.299999999993176e-8, y: -0.012684972635188892 },\r\n { x: -9.199999999993176e-8, y: -0.03588213688497629 },\r\n { x: -9.099999999993177e-8, y: -0.012792930557675138 },\r\n { x: -8.999999999993177e-8, y: 0.015615604456984228 },\r\n { x: -8.899999999993178e-8, y: 0.0015307169341800284 },\r\n { x: -8.799999999993178e-8, y: -0.02452090851465648 },\r\n { x: -8.699999999993179e-8, y: -0.03773641795367768 },\r\n { x: -8.599999999993179e-8, y: 0.009388755814108864 },\r\n { x: -8.49999999999318e-8, y: 0.0016201154022474277 },\r\n { x: -8.39999999999318e-8, y: 0.010165783731247937 },\r\n { x: -8.29999999999318e-8, y: -0.028809041808999857 },\r\n { x: -8.199999999993181e-8, y: -0.003391666369490668 },\r\n { x: -8.099999999993181e-8, y: 0.02016547688372482 },\r\n { x: -7.999999999993182e-8, y: 0.002560789204738185 },\r\n { x: -7.899999999993182e-8, y: 0.022667494756726025 },\r\n { x: -7.799999999993182e-8, y: -0.01729434894963864 },\r\n { x: -7.699999999993183e-8, y: 0.028777562098739305 },\r\n { x: -7.599999999993183e-8, y: 0.020257948289324333 },\r\n { x: -7.499999999993184e-8, y: -0.018642515354927593 },\r\n { x: -7.399999999993184e-8, y: -0.03126405831135507 },\r\n { x: -7.299999999993185e-8, y: -0.026329298740948335 },\r\n { x: -7.199999999993185e-8, y: 0.03460164939196195 },\r\n { x: -7.099999999993185e-8, y: 0.02878533358994842 },\r\n { x: -6.999999999993186e-8, y: 0.014592186664435796 },\r\n { x: -6.899999999993186e-8, y: -0.0013858611920607236 },\r\n { x: -6.799999999993187e-8, y: -0.020120241255477653 },\r\n { x: -6.699999999993187e-8, y: -0.01003516551571638 },\r\n { x: -6.599999999993188e-8, y: -0.009058619050661975 },\r\n { x: -6.499999999993188e-8, y: -0.004035245246231536 },\r\n { x: -6.399999999993188e-8, y: -0.014408928178812366 },\r\n { x: -6.299999999993189e-8, y: -0.03560678758186685 },\r\n { x: -6.199999999993189e-8, y: 0.02067392336292016 },\r\n { x: -6.09999999999319e-8, y: 0.037428992761616674 },\r\n { x: -5.99999999999319e-8, y: 0.007892352658770075 },\r\n { x: -5.89999999999319e-8, y: 0.02480034325562441 },\r\n { x: -5.7999999999931896e-8, y: -0.02561903890440075 },\r\n { x: -5.6999999999931894e-8, y: 0.007284029639539098 },\r\n { x: -5.599999999993189e-8, y: -0.006864914235189989 },\r\n { x: -5.499999999993189e-8, y: -0.017201528539497104 },\r\n { x: -5.399999999993189e-8, y: -0.03524246528429231 },\r\n { x: -5.2999999999931885e-8, y: 0.009212736585220583 },\r\n { x: -5.199999999993188e-8, y: 0.009936157695429387 },\r\n { x: -5.099999999993188e-8, y: -0.007880647660088674 },\r\n { x: -4.999999999993188e-8, y: -0.025925770229924334 },\r\n { x: -4.8999999999931875e-8, y: -0.016957676607607546 },\r\n { x: -4.799999999993187e-8, y: 0.010393739727449123 },\r\n { x: -4.699999999993187e-8, y: 0.01956307915249106 },\r\n { x: -4.599999999993187e-8, y: -0.04220906710971705 },\r\n { x: -4.4999999999931866e-8, y: -0.027667116945156348 },\r\n { x: -4.3999999999931864e-8, y: 0.014351862013379695 },\r\n { x: -4.299999999993186e-8, y: -0.01688050788669551 },\r\n { x: -4.199999999993186e-8, y: -0.021630213879493904 },\r\n { x: -4.099999999993186e-8, y: -0.03200662645269142 },\r\n { x: -3.9999999999931854e-8, y: 0.023918160189289488 },\r\n { x: -3.899999999993185e-8, y: 0.005884799273377132 },\r\n { x: -3.799999999993185e-8, y: 0.016028694625617252 },\r\n { x: -3.699999999993185e-8, y: 0.0074307327352187745 },\r\n { x: -3.5999999999931845e-8, y: 0.03290753689617773 },\r\n { x: -3.499999999993184e-8, y: -0.03783530876787333 },\r\n { x: -3.399999999993184e-8, y: -0.006709617522464693 },\r\n { x: -3.299999999993184e-8, y: -0.022905817596163565 },\r\n { x: -3.1999999999931836e-8, y: 0.0017145074007711698 },\r\n { x: -3.0999999999931833e-8, y: 0.012569166818043574 },\r\n { x: -2.999999999993183e-8, y: -0.03705526937061218 },\r\n { x: -2.8999999999931832e-8, y: -0.02869520746628896 },\r\n { x: -2.7999999999931833e-8, y: 0.025051957716505462 },\r\n { x: -2.6999999999931834e-8, y: 0.03271439109663386 },\r\n { x: -2.5999999999931835e-8, y: -0.008136759742715093 },\r\n { x: -2.4999999999931836e-8, y: -0.029999686307618574 },\r\n { x: -2.3999999999931837e-8, y: -0.009457858210204485 },\r\n { x: -2.2999999999931838e-8, y: -0.0235020022911492 },\r\n { x: -2.199999999993184e-8, y: 0.03545363699212244 },\r\n { x: -2.099999999993184e-8, y: -0.006624506349505804 },\r\n { x: -1.999999999993184e-8, y: 0.01972195983930522 },\r\n { x: -1.8999999999931842e-8, y: -0.018019588446823876 },\r\n { x: -1.7999999999931843e-8, y: 0.0279022326001525 },\r\n { x: -1.6999999999931844e-8, y: -0.037293869406612314 },\r\n { x: -1.5999999999931845e-8, y: 0.009912776034081342 },\r\n { x: -1.4999999999931846e-8, y: 0.03815086120980311 },\r\n { x: -1.3999999999931845e-8, y: 0.008300979552872052 },\r\n { x: -1.2999999999931844e-8, y: -0.006407387111170447 },\r\n { x: -1.1999999999931844e-8, y: -0.017236049532798867 },\r\n { x: -1.0999999999931843e-8, y: 0.004689459841539606 },\r\n { x: -9.999999999931842e-9, y: -0.00749374198766731 },\r\n { x: -8.999999999931841e-9, y: 0.02315467385521088 },\r\n { x: -7.99999999993184e-9, y: 0.017589298190448827 },\r\n { x: -6.999999999931841e-9, y: 0.03694156690958018 },\r\n { x: -5.999999999931841e-9, y: -0.00829628567179409 },\r\n { x: -4.999999999931841e-9, y: 0.020706206748506047 },\r\n { x: -3.999999999931841e-9, y: 0.010400605441179715 },\r\n { x: -2.9999999999318415e-9, y: 0.03244565863444435 },\r\n { x: -1.9999999999318417e-9, y: 0.0012047810277106509 },\r\n { x: -9.999999999318416e-10, y: -0.009529131808379759 },\r\n { x: 6.815844170345065e-20, y: 0.01733527160847571 },\r\n { x: 1.0000000000681585e-9, y: 0.04559779598351585 },\r\n { x: 2.0000000000681586e-9, y: 0.07160349371878574 },\r\n { x: 3.0000000000681584e-9, y: 0.08783108046973723 },\r\n { x: 4.000000000068158e-9, y: 0.12773950891731287 },\r\n { x: 5.000000000068158e-9, y: 0.10750473966362442 },\r\n { x: 6.000000000068158e-9, y: 0.1722172973853457 },\r\n { x: 7.000000000068158e-9, y: 0.2135957587464344 },\r\n { x: 8.000000000068159e-9, y: 0.2103006601275897 },\r\n { x: 9.00000000006816e-9, y: 0.24630267195398617 },\r\n { x: 1.000000000006816e-8, y: 0.25065479028254706 },\r\n { x: 1.100000000006816e-8, y: 0.32035371641487903 },\r\n { x: 1.2000000000068161e-8, y: 0.3144781070037487 },\r\n { x: 1.3000000000068162e-8, y: 0.36139572474206805 },\r\n { x: 1.4000000000068163e-8, y: 0.3579372088176165 },\r\n { x: 1.500000000006816e-8, y: 0.45230220028344786 },\r\n { x: 1.600000000006816e-8, y: 0.43409103373716157 },\r\n { x: 1.700000000006816e-8, y: 0.4693962636422275 },\r\n { x: 1.800000000006816e-8, y: 0.5051756485755463 },\r\n { x: 1.9000000000068158e-8, y: 0.5015876821813501 },\r\n { x: 2.0000000000068157e-8, y: 0.5773399887160102 },\r\n { x: 2.1000000000068156e-8, y: 0.5505828032595532 },\r\n { x: 2.2000000000068155e-8, y: 0.6178273493035895 },\r\n { x: 2.3000000000068154e-8, y: 0.6063375438950314 },\r\n { x: 2.4000000000068153e-8, y: 0.6836732895519223 },\r\n { x: 2.5000000000068152e-8, y: 0.71682672975598 },\r\n { x: 2.600000000006815e-8, y: 0.7418943000641285 },\r\n { x: 2.700000000006815e-8, y: 0.766764121927301 },\r\n { x: 2.800000000006815e-8, y: 0.748865600751028 },\r\n { x: 2.9000000000068148e-8, y: 0.8251459140947702 },\r\n { x: 3.000000000006815e-8, y: 0.8514758165924826 },\r\n { x: 3.100000000006815e-8, y: 0.8187773980832613 },\r\n { x: 3.2000000000068155e-8, y: 0.8678758840682784 },\r\n { x: 3.300000000006816e-8, y: 0.8833530966585573 },\r\n { x: 3.400000000006816e-8, y: 0.9132849864999247 },\r\n { x: 3.500000000006816e-8, y: 0.937231636904131 },\r\n { x: 3.6000000000068164e-8, y: 0.9819798072620206 },\r\n { x: 3.700000000006817e-8, y: 0.9816061146525373 },\r\n { x: 3.800000000006817e-8, y: 1.02431354480628 },\r\n { x: 3.900000000006817e-8, y: 1.1044911279668201 },\r\n { x: 4.0000000000068174e-8, y: 1.0902850601756604 },\r\n { x: 4.1000000000068176e-8, y: 1.1188857310355398 },\r\n { x: 4.200000000006818e-8, y: 1.1415582396103667 },\r\n { x: 4.300000000006818e-8, y: 1.1379388093453044 },\r\n { x: 4.400000000006818e-8, y: 1.1837722641169446 },\r\n { x: 4.5000000000068185e-8, y: 1.2283087278238718 },\r\n { x: 4.600000000006819e-8, y: 1.26508414596951 },\r\n { x: 4.700000000006819e-8, y: 1.295395440120118 },\r\n { x: 4.800000000006819e-8, y: 1.2696579825237537 },\r\n { x: 4.9000000000068195e-8, y: 1.3015144149145235 },\r\n { x: 5.00000000000682e-8, y: 1.3560999715462076 },\r\n { x: 5.10000000000682e-8, y: 1.364164677490993 },\r\n { x: 5.20000000000682e-8, y: 1.3696749179165426 },\r\n { x: 5.3000000000068204e-8, y: 1.4089949774653385 },\r\n { x: 5.4000000000068206e-8, y: 1.4440924489317122 },\r\n { x: 5.500000000006821e-8, y: 1.4584075769806717 },\r\n { x: 5.600000000006821e-8, y: 1.4930348030829683 },\r\n { x: 5.7000000000068213e-8, y: 1.4985596149910585 },\r\n { x: 5.8000000000068216e-8, y: 1.591644532032781 },\r\n { x: 5.900000000006822e-8, y: 1.6160661196984427 },\r\n { x: 6.000000000006822e-8, y: 1.6106429345108517 },\r\n { x: 6.100000000006822e-8, y: 1.6637378369996971 },\r\n { x: 6.200000000006821e-8, y: 1.6672039097753912 },\r\n { x: 6.300000000006821e-8, y: 1.6470164020386875 },\r\n { x: 6.40000000000682e-8, y: 1.72132886315127 },\r\n { x: 6.50000000000682e-8, y: 1.7175402711043017 },\r\n { x: 6.60000000000682e-8, y: 1.7396728078334815 },\r\n { x: 6.700000000006819e-8, y: 1.7672959364169838 },\r\n { x: 6.800000000006819e-8, y: 1.7713485346857474 },\r\n { x: 6.900000000006818e-8, y: 1.8057475417541893 },\r\n { x: 7.000000000006818e-8, y: 1.829469247402354 },\r\n { x: 7.100000000006817e-8, y: 1.8948911634912913 },\r\n { x: 7.200000000006817e-8, y: 1.8758493486494703 },\r\n { x: 7.300000000006816e-8, y: 1.9107897405746515 },\r\n { x: 7.400000000006816e-8, y: 1.950558126840004 },\r\n { x: 7.500000000006816e-8, y: 1.9775282740936975 },\r\n { x: 7.600000000006815e-8, y: 1.977213291981942 },\r\n { x: 7.700000000006815e-8, y: 2.023886490405293 },\r\n { x: 7.800000000006814e-8, y: 2.02239293082928 },\r\n { x: 7.900000000006814e-8, y: 2.0568489989045116 },\r\n { x: 8.000000000006813e-8, y: 2.0594832900906193 },\r\n { x: 8.100000000006813e-8, y: 2.12995351765209 },\r\n { x: 8.200000000006813e-8, y: 2.110904136924468 },\r\n { x: 8.300000000006812e-8, y: 2.1435001039992634 },\r\n { x: 8.400000000006812e-8, y: 2.1778976676693125 },\r\n { x: 8.500000000006811e-8, y: 2.185303937256203 },\r\n { x: 8.600000000006811e-8, y: 2.242847130351982 },\r\n { x: 8.70000000000681e-8, y: 2.268605430543055 },\r\n { x: 8.80000000000681e-8, y: 2.2643002847738183 },\r\n { x: 8.90000000000681e-8, y: 2.3221929151728995 },\r\n { x: 9.000000000006809e-8, y: 2.2995425440227586 },\r\n { x: 9.100000000006809e-8, y: 2.32819446156372 },\r\n { x: 9.200000000006808e-8, y: 2.3452879585157373 },\r\n { x: 9.300000000006808e-8, y: 2.3610164356770995 },\r\n { x: 9.400000000006807e-8, y: 2.413197406158945 },\r\n { x: 9.500000000006807e-8, y: 2.393253590720542 },\r\n { x: 9.600000000006807e-8, y: 2.447849826529251 },\r\n { x: 9.700000000006806e-8, y: 2.4767496840634893 },\r\n { x: 9.800000000006806e-8, y: 2.4742261324523263 },\r\n { x: 9.900000000006805e-8, y: 2.536938591755043 },\r\n { x: 1.0000000000006805e-7, y: 2.5200833348640637 },\r\n { x: 1.0100000000006804e-7, y: 2.5770250763161555 },\r\n { x: 1.0200000000006804e-7, y: 2.584950731375103 },\r\n { x: 1.0300000000006804e-7, y: 2.5838073872358875 },\r\n { x: 1.0400000000006803e-7, y: 2.631667929575248 },\r\n { x: 1.0500000000006803e-7, y: 2.6596649401494776 },\r\n { x: 1.0600000000006802e-7, y: 2.6329103424297156 },\r\n { x: 1.0700000000006802e-7, y: 2.7037087518923246 },\r\n { x: 1.0800000000006802e-7, y: 2.6670775070358506 },\r\n { x: 1.0900000000006801e-7, y: 2.6978313303605006 },\r\n { x: 1.10000000000068e-7, y: 2.755059710709874 },\r\n { x: 1.11000000000068e-7, y: 2.749202262835823 },\r\n { x: 1.12000000000068e-7, y: 2.79299475047997 },\r\n { x: 1.13000000000068e-7, y: 2.810230530294098 },\r\n { x: 1.1400000000006799e-7, y: 2.78880922503226 },\r\n { x: 1.1500000000006799e-7, y: 2.869807109944928 },\r\n { x: 1.1600000000006798e-7, y: 2.8777572803802594 },\r\n { x: 1.1700000000006798e-7, y: 2.8815018452559027 },\r\n { x: 1.1800000000006797e-7, y: 2.8755325151686555 },\r\n { x: 1.1900000000006797e-7, y: 2.905830323739118 },\r\n { x: 1.2000000000006796e-7, y: 2.9464738357158993 },\r\n { x: 1.2100000000006796e-7, y: 2.991581446645457 },\r\n { x: 1.2200000000006796e-7, y: 2.997052562083296 },\r\n { x: 1.2300000000006795e-7, y: 2.990961315281238 },\r\n { x: 1.2400000000006795e-7, y: 2.9845821077934853 },\r\n { x: 1.2500000000006794e-7, y: 3.013058560956058 },\r\n { x: 1.2600000000006794e-7, y: 3.0622430283652866 },\r\n { x: 1.2700000000006793e-7, y: 3.087426605521453 },\r\n { x: 1.2800000000006793e-7, y: 3.1095111383396206 },\r\n { x: 1.2900000000006793e-7, y: 3.084199975107459 },\r\n { x: 1.3000000000006792e-7, y: 3.127488116008965 },\r\n { x: 1.3100000000006792e-7, y: 3.150094382413969 },\r\n { x: 1.320000000000679e-7, y: 3.200017873088237 },\r\n { x: 1.330000000000679e-7, y: 3.2002378626863903 },\r\n { x: 1.340000000000679e-7, y: 3.221058355750686 },\r\n { x: 1.350000000000679e-7, y: 3.227614462711025 },\r\n { x: 1.360000000000679e-7, y: 3.2076376102360236 },\r\n { x: 1.370000000000679e-7, y: 3.269517899136106 },\r\n { x: 1.3800000000006789e-7, y: 3.277164485394785 },\r\n { x: 1.3900000000006788e-7, y: 3.32826518878089 },\r\n { x: 1.4000000000006788e-7, y: 3.3361230887439772 },\r\n { x: 1.4100000000006787e-7, y: 3.313932217343184 },\r\n { x: 1.4200000000006787e-7, y: 3.3379642854568816 },\r\n { x: 1.4300000000006787e-7, y: 3.3498041292968948 },\r\n { x: 1.4400000000006786e-7, y: 3.357219369672882 },\r\n { x: 1.4500000000006786e-7, y: 3.366706851551192 },\r\n { x: 1.4600000000006785e-7, y: 3.4199459421136247 },\r\n { x: 1.4700000000006785e-7, y: 3.416238405816887 },\r\n { x: 1.4800000000006784e-7, y: 3.407013009385149 },\r\n { x: 1.4900000000006784e-7, y: 3.4838754265193366 },\r\n { x: 1.5000000000006784e-7, y: 3.462493910181964 },\r\n { x: 1.5100000000006783e-7, y: 3.483945611319306 },\r\n { x: 1.5200000000006783e-7, y: 3.499965621261913 },\r\n { x: 1.5300000000006782e-7, y: 3.4942477146424538 },\r\n { x: 1.5400000000006782e-7, y: 3.564038317450229 },\r\n { x: 1.5500000000006781e-7, y: 3.527672795149435 },\r\n { x: 1.560000000000678e-7, y: 3.555876692335328 },\r\n { x: 1.570000000000678e-7, y: 3.6155525405815965 },\r\n { x: 1.580000000000678e-7, y: 3.601332369892053 },\r\n { x: 1.590000000000678e-7, y: 3.609442316303733 },\r\n { x: 1.600000000000678e-7, y: 3.6623500322214233 },\r\n { x: 1.610000000000678e-7, y: 3.684711964642669 },\r\n { x: 1.6200000000006778e-7, y: 3.6576976052199712 },\r\n { x: 1.6300000000006778e-7, y: 3.701532475303213 },\r\n { x: 1.6400000000006778e-7, y: 3.7109676530026414 },\r\n { x: 1.6500000000006777e-7, y: 3.725759508917418 },\r\n { x: 1.6600000000006777e-7, y: 3.7382593186558357 },\r\n { x: 1.6700000000006776e-7, y: 3.748891416720497 },\r\n { x: 1.6800000000006776e-7, y: 3.7423834296591307 },\r\n { x: 1.6900000000006775e-7, y: 3.784364177583826 },\r\n { x: 1.7000000000006775e-7, y: 3.7616413400291258 },\r\n { x: 1.7100000000006775e-7, y: 3.793011270865848 },\r\n { x: 1.7200000000006774e-7, y: 3.838271565864922 },\r\n { x: 1.7300000000006774e-7, y: 3.851660110036995 },\r\n { x: 1.7400000000006773e-7, y: 3.815896300368144 },\r\n { x: 1.7500000000006773e-7, y: 3.8712332263154465 },\r\n { x: 1.7600000000006772e-7, y: 3.8486642851532094 },\r\n { x: 1.7700000000006772e-7, y: 3.8622944630539453 },\r\n { x: 1.7800000000006772e-7, y: 3.9097680939520854 },\r\n { x: 1.790000000000677e-7, y: 3.9220439981314525 },\r\n { x: 1.800000000000677e-7, y: 3.945422097301458 },\r\n { x: 1.810000000000677e-7, y: 3.933796332138385 },\r\n { x: 1.820000000000677e-7, y: 3.970555841381823 },\r\n { x: 1.830000000000677e-7, y: 3.977434457774043 },\r\n { x: 1.840000000000677e-7, y: 3.9658959198982853 },\r\n { x: 1.8500000000006769e-7, y: 3.960452556347271 },\r\n { x: 1.8600000000006768e-7, y: 3.9984282659377 },\r\n { x: 1.8700000000006768e-7, y: 3.98660350661974 },\r\n { x: 1.8800000000006767e-7, y: 3.990519773055625 },\r\n { x: 1.8900000000006767e-7, y: 4.052249465615307 },\r\n { x: 1.9000000000006766e-7, y: 4.059364855404962 },\r\n { x: 1.9100000000006766e-7, y: 4.043962297468011 },\r\n { x: 1.9200000000006766e-7, y: 4.049092079453735 },\r\n { x: 1.9300000000006765e-7, y: 4.055881644700879 },\r\n { x: 1.9400000000006765e-7, y: 4.072328771627681 },\r\n { x: 1.9500000000006764e-7, y: 4.080507278351291 },\r\n { x: 1.9600000000006764e-7, y: 4.084051306875356 },\r\n { x: 1.9700000000006763e-7, y: 4.129206282534105 },\r\n { x: 1.9800000000006763e-7, y: 4.096340213513475 },\r\n { x: 1.9900000000006763e-7, y: 4.156542968671335 },\r\n { x: 2.0000000000006762e-7, y: 4.119429775233858 },\r\n { x: 2.0100000000006762e-7, y: 4.149390260909627 },\r\n { x: 2.020000000000676e-7, y: 4.144120499048146 },\r\n { x: 2.030000000000676e-7, y: 4.139791259105984 },\r\n { x: 2.040000000000676e-7, y: 4.196807481401228 },\r\n { x: 2.050000000000676e-7, y: 4.174475109243049 },\r\n { x: 2.060000000000676e-7, y: 4.187160718830028 },\r\n { x: 2.070000000000676e-7, y: 4.179711712649196 },\r\n { x: 2.080000000000676e-7, y: 4.201433196022256 },\r\n { x: 2.0900000000006758e-7, y: 4.26586933037637 },\r\n { x: 2.1000000000006758e-7, y: 4.253835518428927 },\r\n { x: 2.1100000000006757e-7, y: 4.218429863190106 },\r\n { x: 2.1200000000006757e-7, y: 4.26095358447011 },\r\n { x: 2.1300000000006757e-7, y: 4.2590443592689855 },\r\n { x: 2.1400000000006756e-7, y: 4.289996517255768 },\r\n { x: 2.1500000000006756e-7, y: 4.313056616043523 },\r\n { x: 2.1600000000006755e-7, y: 4.331979158283773 },\r\n { x: 2.1700000000006755e-7, y: 4.313387615221893 },\r\n { x: 2.1800000000006754e-7, y: 4.3445667568279625 },\r\n { x: 2.1900000000006754e-7, y: 4.293674920656978 },\r\n { x: 2.2000000000006754e-7, y: 4.3363937326020405 },\r\n { x: 2.2100000000006753e-7, y: 4.311975176686082 },\r\n { x: 2.2200000000006753e-7, y: 4.309277146105408 },\r\n { x: 2.2300000000006752e-7, y: 4.35379944540888 },\r\n { x: 2.2400000000006752e-7, y: 4.3575946258253335 },\r\n { x: 2.2500000000006751e-7, y: 4.402927128316672 },\r\n { x: 2.260000000000675e-7, y: 4.393840760035625 },\r\n { x: 2.270000000000675e-7, y: 4.4054221787463295 },\r\n { x: 2.280000000000675e-7, y: 4.365009812805271 },\r\n { x: 2.290000000000675e-7, y: 4.408350038096867 },\r\n { x: 2.300000000000675e-7, y: 4.3939073030095095 },\r\n { x: 2.310000000000675e-7, y: 4.374668327817958 },\r\n { x: 2.3200000000006748e-7, y: 4.377810381545066 },\r\n { x: 2.3300000000006748e-7, y: 4.432589162622251 },\r\n { x: 2.3400000000006748e-7, y: 4.4537937245520975 },\r\n { x: 2.3500000000006747e-7, y: 4.434739702125108 },\r\n { x: 2.3600000000006747e-7, y: 4.421869611511303 },\r\n { x: 2.3700000000006746e-7, y: 4.395968401989458 },\r\n { x: 2.3800000000006746e-7, y: 4.418283482201154 },\r\n { x: 2.3900000000006745e-7, y: 4.429114120101884 },\r\n { x: 2.400000000000675e-7, y: 4.475924250691162 },\r\n { x: 2.410000000000675e-7, y: 4.480597405421405 },\r\n { x: 2.420000000000675e-7, y: 4.471725459771187 },\r\n { x: 2.4300000000006754e-7, y: 4.4759920662868025 },\r\n { x: 2.4400000000006757e-7, y: 4.457466027302085 },\r\n { x: 2.450000000000676e-7, y: 4.51327554148812 },\r\n { x: 2.460000000000676e-7, y: 4.492173663035807 },\r\n { x: 2.4700000000006763e-7, y: 4.46175544488327 },\r\n { x: 2.4800000000006765e-7, y: 4.483580913840163 },\r\n { x: 2.490000000000677e-7, y: 4.4818737078426265 },\r\n { x: 2.500000000000677e-7, y: 4.483930252722769 },\r\n { x: 2.510000000000677e-7, y: 4.495049555509013 },\r\n { x: 2.5200000000006774e-7, y: 4.500884472325458 },\r\n { x: 2.5300000000006776e-7, y: 4.5449816917745265 },\r\n { x: 2.540000000000678e-7, y: 4.541621982329801 },\r\n { x: 2.550000000000678e-7, y: 4.568307805363606 },\r\n { x: 2.5600000000006783e-7, y: 4.5204329412829845 },\r\n { x: 2.5700000000006785e-7, y: 4.570754147203238 },\r\n { x: 2.580000000000679e-7, y: 4.524549336955163 },\r\n { x: 2.590000000000679e-7, y: 4.540395397127683 },\r\n { x: 2.600000000000679e-7, y: 4.518404095772062 },\r\n { x: 2.6100000000006794e-7, y: 4.5558226992527 },\r\n { x: 2.6200000000006796e-7, y: 4.587201244489122 },\r\n { x: 2.63000000000068e-7, y: 4.5364775317235715 },\r\n { x: 2.64000000000068e-7, y: 4.537434301357686 },\r\n { x: 2.6500000000006803e-7, y: 4.554480991663611 },\r\n { x: 2.6600000000006805e-7, y: 4.551959291547926 },\r\n { x: 2.670000000000681e-7, y: 4.546175409404218 },\r\n { x: 2.680000000000681e-7, y: 4.558067767220025 },\r\n { x: 2.690000000000681e-7, y: 4.562903822013282 },\r\n { x: 2.7000000000006814e-7, y: 4.593983329432042 },\r\n { x: 2.7100000000006816e-7, y: 4.6052625278532275 },\r\n { x: 2.720000000000682e-7, y: 4.545832854247038 },\r\n { x: 2.730000000000682e-7, y: 4.551427689365389 },\r\n { x: 2.7400000000006823e-7, y: 4.6168291457039405 },\r\n { x: 2.7500000000006825e-7, y: 4.5748588256552525 },\r\n { x: 2.760000000000683e-7, y: 4.611824980830878 },\r\n { x: 2.770000000000683e-7, y: 4.572758838954031 },\r\n { x: 2.780000000000683e-7, y: 4.579156007250689 },\r\n { x: 2.7900000000006834e-7, y: 4.568647565172117 },\r\n { x: 2.8000000000006836e-7, y: 4.621257394241068 },\r\n { x: 2.810000000000684e-7, y: 4.593231939640312 },\r\n { x: 2.820000000000684e-7, y: 4.5994994415856825 },\r\n { x: 2.8300000000006843e-7, y: 4.637039683269703 },\r\n { x: 2.8400000000006845e-7, y: 4.594394597053631 },\r\n { x: 2.850000000000685e-7, y: 4.560818851394454 },\r\n { x: 2.860000000000685e-7, y: 4.60029704671781 },\r\n { x: 2.870000000000685e-7, y: 4.553689847030158 },\r\n { x: 2.8800000000006854e-7, y: 4.5925048540724625 },\r\n { x: 2.8900000000006856e-7, y: 4.590618080030675 },\r\n { x: 2.900000000000686e-7, y: 4.576541496690467 },\r\n { x: 2.910000000000686e-7, y: 4.555565680735937 },\r\n { x: 2.9200000000006863e-7, y: 4.62188315577281 },\r\n { x: 2.9300000000006865e-7, y: 4.556238565404815 },\r\n { x: 2.940000000000687e-7, y: 4.570057311239993 },\r\n { x: 2.950000000000687e-7, y: 4.607741729428422 },\r\n { x: 2.960000000000687e-7, y: 4.6240193896352215 },\r\n { x: 2.9700000000006874e-7, y: 4.559360181850518 },\r\n { x: 2.9800000000006876e-7, y: 4.603544270929363 },\r\n { x: 2.990000000000688e-7, y: 4.572578516232343 },\r\n { x: 3.000000000000688e-7, y: 4.54867999290276 },\r\n { x: 3.0100000000006883e-7, y: 4.553428161610771 },\r\n { x: 3.0200000000006885e-7, y: 4.614163167171206 },\r\n { x: 3.030000000000689e-7, y: 4.546188708872833 },\r\n { x: 3.040000000000689e-7, y: 4.60454532264954 },\r\n { x: 3.050000000000689e-7, y: 4.5366359764470765 },\r\n { x: 3.0600000000006894e-7, y: 4.5647069396754 },\r\n { x: 3.0700000000006896e-7, y: 4.578690013699633 },\r\n { x: 3.08000000000069e-7, y: 4.588222764226879 },\r\n { x: 3.09000000000069e-7, y: 4.579926647975305 },\r\n { x: 3.1000000000006903e-7, y: 4.576679529258076 },\r\n { x: 3.1100000000006905e-7, y: 4.525714215195552 },\r\n { x: 3.120000000000691e-7, y: 4.548322182573998 },\r\n { x: 3.130000000000691e-7, y: 4.532768010071163 },\r\n { x: 3.140000000000691e-7, y: 4.568846728047218 },\r\n { x: 3.1500000000006914e-7, y: 4.525509620709712 },\r\n { x: 3.1600000000006916e-7, y: 4.550931577579017 },\r\n { x: 3.170000000000692e-7, y: 4.540242891548967 },\r\n { x: 3.180000000000692e-7, y: 4.5521983862480315 },\r\n { x: 3.1900000000006923e-7, y: 4.497398701261551 },\r\n { x: 3.2000000000006925e-7, y: 4.5359335018999305 },\r\n { x: 3.210000000000693e-7, y: 4.537962182929126 },\r\n { x: 3.220000000000693e-7, y: 4.5241014561161474 },\r\n { x: 3.230000000000693e-7, y: 4.551489858748293 },\r\n { x: 3.2400000000006934e-7, y: 4.536010243465154 },\r\n { x: 3.2500000000006936e-7, y: 4.5386710687092195 },\r\n { x: 3.260000000000694e-7, y: 4.478118828533177 },\r\n { x: 3.270000000000694e-7, y: 4.521792084800384 },\r\n { x: 3.2800000000006943e-7, y: 4.501049680494854 },\r\n { x: 3.2900000000006945e-7, y: 4.498592547630318 },\r\n { x: 3.300000000000695e-7, y: 4.488482842532222 },\r\n { x: 3.310000000000695e-7, y: 4.441156767896616 },\r\n { x: 3.320000000000695e-7, y: 4.444054134394553 },\r\n { x: 3.3300000000006954e-7, y: 4.466584416902529 },\r\n { x: 3.3400000000006956e-7, y: 4.463800509045774 },\r\n { x: 3.350000000000696e-7, y: 4.464058505028582 },\r\n { x: 3.360000000000696e-7, y: 4.41443460783856 },\r\n { x: 3.3700000000006963e-7, y: 4.4398327174313685 },\r\n { x: 3.3800000000006965e-7, y: 4.468418072799661 },\r\n { x: 3.3900000000006967e-7, y: 4.458678231500451 },\r\n { x: 3.400000000000697e-7, y: 4.411121228444063 },\r\n { x: 3.410000000000697e-7, y: 4.454837914375734 },\r\n { x: 3.4200000000006974e-7, y: 4.381677695269781 },\r\n { x: 3.4300000000006976e-7, y: 4.389204344577293 },\r\n { x: 3.440000000000698e-7, y: 4.398818597503304 },\r\n { x: 3.450000000000698e-7, y: 4.400713260814368 },\r\n { x: 3.4600000000006983e-7, y: 4.352153293845595 },\r\n { x: 3.4700000000006985e-7, y: 4.392654280211924 },\r\n { x: 3.4800000000006987e-7, y: 4.3659850342792375 },\r\n { x: 3.490000000000699e-7, y: 4.36736284837299 },\r\n { x: 3.500000000000699e-7, y: 4.36500353689255 },\r\n { x: 3.5100000000006994e-7, y: 4.350601346933341 },\r\n { x: 3.5200000000006996e-7, y: 4.3552665070237815 },\r\n { x: 3.5300000000007e-7, y: 4.37314943151817 },\r\n { x: 3.5400000000007e-7, y: 4.344213285069556 },\r\n { x: 3.5500000000007003e-7, y: 4.357570821997053 },\r\n { x: 3.5600000000007005e-7, y: 4.3280910112104705 },\r\n { x: 3.5700000000007007e-7, y: 4.296926124294212 },\r\n { x: 3.580000000000701e-7, y: 4.283150978167562 },\r\n { x: 3.590000000000701e-7, y: 4.269804944259307 },\r\n { x: 3.6000000000007014e-7, y: 4.286035855681393 },\r\n { x: 3.6100000000007016e-7, y: 4.297874020004684 },\r\n { x: 3.620000000000702e-7, y: 4.235710208198241 },\r\n { x: 3.630000000000702e-7, y: 4.268885191015169 },\r\n { x: 3.6400000000007023e-7, y: 4.2224875113344105 },\r\n { x: 3.6500000000007025e-7, y: 4.270277524606534 },\r\n { x: 3.6600000000007027e-7, y: 4.239989002206763 },\r\n { x: 3.670000000000703e-7, y: 4.226840189057081 },\r\n { x: 3.680000000000703e-7, y: 4.1940128726361445 },\r\n { x: 3.6900000000007034e-7, y: 4.181086371816021 },\r\n { x: 3.7000000000007036e-7, y: 4.238774199152604 },\r\n { x: 3.710000000000704e-7, y: 4.1978816035202255 },\r\n { x: 3.720000000000704e-7, y: 4.185784719111473 },\r\n { x: 3.7300000000007043e-7, y: 4.197477154050938 },\r\n { x: 3.7400000000007045e-7, y: 4.1578642609820795 },\r\n { x: 3.7500000000007047e-7, y: 4.187135262137642 },\r\n { x: 3.760000000000705e-7, y: 4.1628653672803235 },\r\n { x: 3.770000000000705e-7, y: 4.146487976908809 },\r\n { x: 3.7800000000007054e-7, y: 4.118683294656924 },\r\n { x: 3.7900000000007056e-7, y: 4.080779770378712 },\r\n { x: 3.800000000000706e-7, y: 4.13584263344365 },\r\n { x: 3.810000000000706e-7, y: 4.0746549723826915 },\r\n { x: 3.8200000000007063e-7, y: 4.1198208873236375 },\r\n { x: 3.8300000000007065e-7, y: 4.110721578932751 },\r\n { x: 3.8400000000007067e-7, y: 4.061832412772853 },\r\n { x: 3.850000000000707e-7, y: 4.077033118807877 },\r\n { x: 3.860000000000707e-7, y: 4.021584327166643 },\r\n { x: 3.8700000000007074e-7, y: 4.052643137409191 },\r\n { x: 3.8800000000007076e-7, y: 4.053730696000853 },\r\n { x: 3.890000000000708e-7, y: 3.98329033004593 },\r\n { x: 3.900000000000708e-7, y: 3.989220939647749 },\r\n { x: 3.9100000000007083e-7, y: 4.011669525237745 },\r\n { x: 3.9200000000007085e-7, y: 3.9593185686549672 },\r\n { x: 3.9300000000007087e-7, y: 3.95800337748763 },\r\n { x: 3.940000000000709e-7, y: 3.9733521729232164 },\r\n { x: 3.950000000000709e-7, y: 3.9290226207454073 },\r\n { x: 3.9600000000007094e-7, y: 3.950804485092987 },\r\n { x: 3.9700000000007096e-7, y: 3.946347337740705 },\r\n { x: 3.98000000000071e-7, y: 3.89513188893136 },\r\n { x: 3.99000000000071e-7, y: 3.9041663835218716 },\r\n { x: 4.0000000000007103e-7, y: 3.9054122513054814 },\r\n { x: 4.0100000000007105e-7, y: 3.878006800142969 },\r\n { x: 4.0200000000007107e-7, y: 3.8422361087703996 },\r\n { x: 4.030000000000711e-7, y: 3.8250752024171355 },\r\n { x: 4.040000000000711e-7, y: 3.8076853470895156 },\r\n { x: 4.0500000000007114e-7, y: 3.801939608916005 },\r\n { x: 4.0600000000007116e-7, y: 3.8506114375860516 },\r\n { x: 4.070000000000712e-7, y: 3.8210576203255022 },\r\n { x: 4.080000000000712e-7, y: 3.7931229622809077 },\r\n { x: 4.0900000000007123e-7, y: 3.790331101077256 },\r\n { x: 4.1000000000007125e-7, y: 3.767494508124199 },\r\n { x: 4.1100000000007127e-7, y: 3.745255681923489 },\r\n { x: 4.120000000000713e-7, y: 3.7692888995718996 },\r\n { x: 4.130000000000713e-7, y: 3.728659757584573 },\r\n { x: 4.1400000000007134e-7, y: 3.705062353961188 },\r\n { x: 4.1500000000007136e-7, y: 3.7412144824398537 },\r\n { x: 4.160000000000714e-7, y: 3.7044552069575523 },\r\n { x: 4.170000000000714e-7, y: 3.6543403228267097 },\r\n { x: 4.180000000000714e-7, y: 3.681118348886848 },\r\n { x: 4.1900000000007145e-7, y: 3.638090164167694 },\r\n { x: 4.2000000000007147e-7, y: 3.6096363651985537 },\r\n { x: 4.210000000000715e-7, y: 3.6313689690619024 },\r\n { x: 4.220000000000715e-7, y: 3.589192689298439 },\r\n { x: 4.2300000000007154e-7, y: 3.5708728299880823 },\r\n { x: 4.2400000000007156e-7, y: 3.61689610554449 },\r\n { x: 4.250000000000716e-7, y: 3.575472827657053 },\r\n { x: 4.260000000000716e-7, y: 3.55766854710107 },\r\n { x: 4.270000000000716e-7, y: 3.5741776711902866 },\r\n { x: 4.2800000000007165e-7, y: 3.538132833582119 },\r\n { x: 4.2900000000007167e-7, y: 3.4871676961370395 },\r\n { x: 4.300000000000717e-7, y: 3.5452386959853306 },\r\n { x: 4.310000000000717e-7, y: 3.4743088019091375 },\r\n { x: 4.3200000000007174e-7, y: 3.453869113849182 },\r\n { x: 4.3300000000007176e-7, y: 3.463199173447619 },\r\n { x: 4.340000000000718e-7, y: 3.460409975132845 },\r\n { x: 4.350000000000718e-7, y: 3.405961091318614 },\r\n { x: 4.360000000000718e-7, y: 3.415897137420462 },\r\n { x: 4.3700000000007185e-7, y: 3.3720287059449463 },\r\n { x: 4.3800000000007187e-7, y: 3.3587167637655786 },\r\n { x: 4.390000000000719e-7, y: 3.3850777860967054 },\r\n { x: 4.400000000000719e-7, y: 3.3695773790239647 },\r\n { x: 4.4100000000007194e-7, y: 3.350720204294603 },\r\n { x: 4.4200000000007196e-7, y: 3.346654006398577 },\r\n { x: 4.43000000000072e-7, y: 3.3469779959293007 },\r\n { x: 4.44000000000072e-7, y: 3.297302666062012 },\r\n { x: 4.45000000000072e-7, y: 3.3120016274359982 },\r\n { x: 4.4600000000007205e-7, y: 3.25090454348141 },\r\n { x: 4.4700000000007207e-7, y: 3.2301864599922174 },\r\n { x: 4.480000000000721e-7, y: 3.256211785796371 },\r\n { x: 4.490000000000721e-7, y: 3.214903914002878 },\r\n { x: 4.5000000000007214e-7, y: 3.2426371661344584 },\r\n { x: 4.5100000000007216e-7, y: 3.2317129221506007 },\r\n { x: 4.520000000000722e-7, y: 3.1851992692344497 },\r\n { x: 4.530000000000722e-7, y: 3.1422962816825724 },\r\n { x: 4.540000000000722e-7, y: 3.1743721048385365 },\r\n { x: 4.5500000000007225e-7, y: 3.123842337997481 },\r\n { x: 4.5600000000007227e-7, y: 3.1153628840015464 },\r\n { x: 4.570000000000723e-7, y: 3.0738754084491346 },\r\n { x: 4.580000000000723e-7, y: 3.0889875023203968 },\r\n { x: 4.5900000000007234e-7, y: 3.0403022408972413 },\r\n { x: 4.6000000000007236e-7, y: 3.084524623874236 },\r\n { x: 4.610000000000724e-7, y: 3.0593402484204013 },\r\n { x: 4.620000000000724e-7, y: 3.0035225259672442 },\r\n { x: 4.630000000000724e-7, y: 3.021796815788875 },\r\n { x: 4.6400000000007245e-7, y: 3.017220968937486 },\r\n { x: 4.6500000000007247e-7, y: 3.0092150035518004 },\r\n { x: 4.660000000000725e-7, y: 2.9827318146842674 },\r\n { x: 4.670000000000725e-7, y: 2.9540128382751765 },\r\n { x: 4.6800000000007254e-7, y: 2.9545588348991147 },\r\n { x: 4.6900000000007256e-7, y: 2.9109049445043733 },\r\n { x: 4.700000000000726e-7, y: 2.9045013973097187 },\r\n { x: 4.710000000000726e-7, y: 2.9185712173653084 },\r\n { x: 4.720000000000726e-7, y: 2.8916238018535836 },\r\n { x: 4.7300000000007265e-7, y: 2.8823619788153008 },\r\n { x: 4.7400000000007267e-7, y: 2.8266556570333594 },\r\n { x: 4.750000000000727e-7, y: 2.833761091547332 },\r\n { x: 4.760000000000727e-7, y: 2.782888997643641 },\r\n { x: 4.770000000000727e-7, y: 2.7993782354906847 },\r\n { x: 4.780000000000727e-7, y: 2.7866835281460696 },\r\n { x: 4.790000000000726e-7, y: 2.72659697091339 },\r\n { x: 4.800000000000726e-7, y: 2.7174193433800875 },\r\n { x: 4.810000000000726e-7, y: 2.6800611691037917 },\r\n { x: 4.820000000000725e-7, y: 2.726360246619215 },\r\n { x: 4.830000000000725e-7, y: 2.6753912973644516 },\r\n { x: 4.840000000000725e-7, y: 2.664223533398994 },\r\n { x: 4.850000000000724e-7, y: 2.6399974723761503 },\r\n { x: 4.860000000000724e-7, y: 2.6499838475832704 },\r\n { x: 4.870000000000724e-7, y: 2.585691517154935 },\r\n { x: 4.880000000000723e-7, y: 2.5977791165376307 },\r\n { x: 4.890000000000723e-7, y: 2.573598463798158 },\r\n { x: 4.900000000000723e-7, y: 2.6021213916319286 },\r\n { x: 4.910000000000723e-7, y: 2.5413761024074377 },\r\n { x: 4.920000000000722e-7, y: 2.556022333034545 },\r\n { x: 4.930000000000722e-7, y: 2.4801506528995945 },\r\n { x: 4.940000000000722e-7, y: 2.5127444207031444 },\r\n { x: 4.950000000000721e-7, y: 2.4506561227748533 },\r\n { x: 4.960000000000721e-7, y: 2.4871722464600383 },\r\n { x: 4.970000000000721e-7, y: 2.4480153017298587 },\r\n { x: 4.98000000000072e-7, y: 2.390010024968104 },\r\n { x: 4.99000000000072e-7, y: 2.3875016166300354 },\r\n { x: 5.00000000000072e-7, y: 2.3974305433342855 },\r\n { x: 5.010000000000719e-7, y: 2.3804525797349534 },\r\n { x: 5.020000000000719e-7, y: 2.319847501668554 },\r\n { x: 5.030000000000719e-7, y: 2.354606412231442 },\r\n { x: 5.040000000000719e-7, y: 2.2913726624483135 },\r\n { x: 5.050000000000718e-7, y: 2.3331341602784237 },\r\n { x: 5.060000000000718e-7, y: 2.2693402371147453 },\r\n { x: 5.070000000000718e-7, y: 2.2723088948853416 },\r\n { x: 5.080000000000717e-7, y: 2.2219370098681503 },\r\n { x: 5.090000000000717e-7, y: 2.2335900519277834 },\r\n { x: 5.100000000000717e-7, y: 2.248182551707964 },\r\n { x: 5.110000000000716e-7, y: 2.1732525739894593 },\r\n { x: 5.120000000000716e-7, y: 2.1713339937460554 },\r\n { x: 5.130000000000716e-7, y: 2.1404041291143674 },\r\n { x: 5.140000000000715e-7, y: 2.1607497105837776 },\r\n { x: 5.150000000000715e-7, y: 2.1326878357989525 },\r\n { x: 5.160000000000715e-7, y: 2.111513448282211 },\r\n { x: 5.170000000000715e-7, y: 2.0593831863297587 },\r\n { x: 5.180000000000714e-7, y: 2.0375872722830493 },\r\n { x: 5.190000000000714e-7, y: 2.0686457446185154 },\r\n { x: 5.200000000000714e-7, y: 2.0223102152902546 },\r\n { x: 5.210000000000713e-7, y: 2.032649093071548 },\r\n { x: 5.220000000000713e-7, y: 2.019768464909469 },\r\n { x: 5.230000000000713e-7, y: 2.0095400563561614 },\r\n { x: 5.240000000000712e-7, y: 1.9777441852768034 },\r\n { x: 5.250000000000712e-7, y: 1.9197327020510637 },\r\n { x: 5.260000000000712e-7, y: 1.9478427678526091 },\r\n { x: 5.270000000000711e-7, y: 1.8643096729473774 },\r\n { x: 5.280000000000711e-7, y: 1.9199884602456652 },\r\n { x: 5.290000000000711e-7, y: 1.8614442042826362 },\r\n { x: 5.30000000000071e-7, y: 1.828447341067436 },\r\n { x: 5.31000000000071e-7, y: 1.83568283443109 },\r\n { x: 5.32000000000071e-7, y: 1.819083068860657 },\r\n { x: 5.33000000000071e-7, y: 1.76929210426416 },\r\n { x: 5.340000000000709e-7, y: 1.8060127684242715 },\r\n { x: 5.350000000000709e-7, y: 1.7644534399085456 },\r\n { x: 5.360000000000709e-7, y: 1.7071802357662391 },\r\n { x: 5.370000000000708e-7, y: 1.729182684014748 },\r\n { x: 5.380000000000708e-7, y: 1.707822739368085 },\r\n { x: 5.390000000000708e-7, y: 1.6503470105866342 },\r\n { x: 5.400000000000707e-7, y: 1.6790513826683995 },\r\n { x: 5.410000000000707e-7, y: 1.6770004914206622 },\r\n { x: 5.420000000000707e-7, y: 1.6446221785271975 },\r\n { x: 5.430000000000707e-7, y: 1.6262076843646684 },\r\n { x: 5.440000000000706e-7, y: 1.581388679998766 },\r\n { x: 5.450000000000706e-7, y: 1.572271379606089 },\r\n { x: 5.460000000000706e-7, y: 1.564148898597291 },\r\n { x: 5.470000000000705e-7, y: 1.547681152243796 },\r\n { x: 5.480000000000705e-7, y: 1.47384020638136 },\r\n { x: 5.490000000000705e-7, y: 1.504440711939198 },\r\n { x: 5.500000000000704e-7, y: 1.4455278717686377 },\r\n { x: 5.510000000000704e-7, y: 1.468981363814639 },\r\n { x: 5.520000000000704e-7, y: 1.4020354328610296 },\r\n { x: 5.530000000000703e-7, y: 1.4477540019129607 },\r\n { x: 5.540000000000703e-7, y: 1.4270481405880733 },\r\n { x: 5.550000000000703e-7, y: 1.3895567898591026 },\r\n { x: 5.560000000000703e-7, y: 1.3912841713839703 },\r\n { x: 5.570000000000702e-7, y: 1.3297641154545967 },\r\n { x: 5.580000000000702e-7, y: 1.3280987817611685 },\r\n { x: 5.590000000000702e-7, y: 1.2654478156955729 },\r\n { x: 5.600000000000701e-7, y: 1.2567090185435266 },\r\n { x: 5.610000000000701e-7, y: 1.2471258939365573 },\r\n { x: 5.620000000000701e-7, y: 1.2552568807593996 },\r\n { x: 5.6300000000007e-7, y: 1.1943193467686406 },\r\n { x: 5.6400000000007e-7, y: 1.2373458429755204 },\r\n { x: 5.6500000000007e-7, y: 1.2255213327562549 },\r\n { x: 5.660000000000699e-7, y: 1.1400154666484812 },\r\n { x: 5.670000000000699e-7, y: 1.1426882597845875 },\r\n { x: 5.680000000000699e-7, y: 1.1113362896104515 },\r\n { x: 5.690000000000699e-7, y: 1.080666080249789 },\r\n { x: 5.700000000000698e-7, y: 1.0568535903500327 },\r\n { x: 5.710000000000698e-7, y: 1.0879369877265455 },\r\n { x: 5.720000000000698e-7, y: 1.071060524334522 },\r\n { x: 5.730000000000697e-7, y: 1.0413648554555746 },\r\n { x: 5.740000000000697e-7, y: 1.0142338732633065 },\r\n { x: 5.750000000000697e-7, y: 0.9891672021444043 },\r\n { x: 5.760000000000696e-7, y: 0.974548560741885 },\r\n { x: 5.770000000000696e-7, y: 0.9326181249932587 },\r\n { x: 5.780000000000696e-7, y: 0.9600504528685031 },\r\n { x: 5.790000000000695e-7, y: 0.9490020824901222 },\r\n { x: 5.800000000000695e-7, y: 0.9066762958557413 },\r\n { x: 5.810000000000695e-7, y: 0.8608999029163629 },\r\n { x: 5.820000000000695e-7, y: 0.8650154914689567 },\r\n { x: 5.830000000000694e-7, y: 0.8425611266837111 },\r\n { x: 5.840000000000694e-7, y: 0.8088135816402537 },\r\n { x: 5.850000000000694e-7, y: 0.8386555368288905 },\r\n { x: 5.860000000000693e-7, y: 0.7784250875475518 },\r\n { x: 5.870000000000693e-7, y: 0.8019386259248096 },\r\n { x: 5.880000000000693e-7, y: 0.7260998002339443 },\r\n { x: 5.890000000000692e-7, y: 0.7473931078806977 },\r\n { x: 5.900000000000692e-7, y: 0.71992333530566 },\r\n { x: 5.910000000000692e-7, y: 0.7302826146038286 },\r\n { x: 5.920000000000691e-7, y: 0.6944557914381496 },\r\n { x: 5.930000000000691e-7, y: 0.6275880543972894 },\r\n { x: 5.940000000000691e-7, y: 0.6274911538691162 },\r\n { x: 5.950000000000691e-7, y: 0.5825310229623206 },\r\n { x: 5.96000000000069e-7, y: 0.6263243670700657 },\r\n { x: 5.97000000000069e-7, y: 0.5602519834168201 },\r\n { x: 5.98000000000069e-7, y: 0.5420254573767047 },\r\n { x: 5.990000000000689e-7, y: 0.5642410775914146 },\r\n { x: 6.000000000000689e-7, y: 0.5233167413466189 },\r\n { x: 6.010000000000689e-7, y: 0.5414136883192964 },\r\n { x: 6.020000000000688e-7, y: 0.45289178893868004 },\r\n { x: 6.030000000000688e-7, y: 0.4426813549638022 },\r\n { x: 6.040000000000688e-7, y: 0.4310099626745463 },\r\n { x: 6.050000000000687e-7, y: 0.4692582408978895 },\r\n { x: 6.060000000000687e-7, y: 0.3901201542415163 },\r\n { x: 6.070000000000687e-7, y: 0.3606987140700868 },\r\n { x: 6.080000000000687e-7, y: 0.38664029110287096 },\r\n { x: 6.090000000000686e-7, y: 0.354170505759941 },\r\n { x: 6.100000000000686e-7, y: 0.3474385661448188 },\r\n { x: 6.110000000000686e-7, y: 0.2875469324482121 },\r\n { x: 6.120000000000685e-7, y: 0.2812112082816194 },\r\n { x: 6.130000000000685e-7, y: 0.2832842675852578 },\r\n { x: 6.140000000000685e-7, y: 0.2824878207627931 },\r\n { x: 6.150000000000684e-7, y: 0.22885822810543843 },\r\n { x: 6.160000000000684e-7, y: 0.2153431121452024 },\r\n { x: 6.170000000000684e-7, y: 0.2362758548632193 },\r\n { x: 6.180000000000683e-7, y: 0.1999284052843285 },\r\n { x: 6.190000000000683e-7, y: 0.19607407417239414 },\r\n { x: 6.200000000000683e-7, y: 0.12373481557665877 },\r\n { x: 6.210000000000683e-7, y: 0.16367069560413128 },\r\n { x: 6.220000000000682e-7, y: 0.12725656868652202 },\r\n { x: 6.230000000000682e-7, y: 0.10684690202173974 },\r\n { x: 6.240000000000682e-7, y: 0.07068768143158324 },\r\n { x: 6.250000000000681e-7, y: 0.06511404415673 },\r\n { x: 6.260000000000681e-7, y: 0.026735221709894213 },\r\n { x: 6.270000000000681e-7, y: 0.024486353925565477 },\r\n { x: 6.28000000000068e-7, y: -0.015545959623921524 },\r\n { x: 6.29000000000068e-7, y: 0.000314756325871534 },\r\n { x: 6.30000000000068e-7, y: 0.000021923407494166963 },\r\n { x: 6.310000000000679e-7, y: -0.017461737481183043 },\r\n { x: 6.320000000000679e-7, y: -0.051157078466407366 },\r\n { x: 6.330000000000679e-7, y: -0.04944341243757768 },\r\n { x: 6.340000000000679e-7, y: -0.1046030080020188 },\r\n { x: 6.350000000000678e-7, y: -0.12807686328454046 },\r\n { x: 6.360000000000678e-7, y: -0.16248484696751042 },\r\n { x: 6.370000000000678e-7, y: -0.13744640242652906 },\r\n { x: 6.380000000000677e-7, y: -0.17703964717898313 },\r\n { x: 6.390000000000677e-7, y: -0.16670634202914192 },\r\n { x: 6.400000000000677e-7, y: -0.18660880388708884 },\r\n { x: 6.410000000000676e-7, y: -0.23627716610533803 },\r\n { x: 6.420000000000676e-7, y: -0.21056096530616258 },\r\n { x: 6.430000000000676e-7, y: -0.2501752670645122 },\r\n { x: 6.440000000000675e-7, y: -0.31951595038281894 },\r\n { x: 6.450000000000675e-7, y: -0.2812287199006149 },\r\n { x: 6.460000000000675e-7, y: -0.31788768310067755 },\r\n { x: 6.470000000000675e-7, y: -0.32301869887910484 },\r\n { x: 6.480000000000674e-7, y: -0.3826876872739434 },\r\n { x: 6.490000000000674e-7, y: -0.34959191521222666 },\r\n { x: 6.500000000000674e-7, y: -0.37131893413357375 },\r\n { x: 6.510000000000673e-7, y: -0.37564253594002406 },\r\n { x: 6.520000000000673e-7, y: -0.4313685153394282 },\r\n { x: 6.530000000000673e-7, y: -0.44488903050817347 },\r\n { x: 6.540000000000672e-7, y: -0.485258748423778 },\r\n { x: 6.550000000000672e-7, y: -0.4712961112986434 },\r\n { x: 6.560000000000672e-7, y: -0.46570857363252427 },\r\n { x: 6.570000000000671e-7, y: -0.4889915086639795 },\r\n { x: 6.580000000000671e-7, y: -0.543516887596962 },\r\n { x: 6.590000000000671e-7, y: -0.5497461036875846 },\r\n { x: 6.600000000000671e-7, y: -0.5721096585783956 },\r\n { x: 6.61000000000067e-7, y: -0.568278399244334 },\r\n { x: 6.62000000000067e-7, y: -0.6113755072534441 },\r\n { x: 6.63000000000067e-7, y: -0.6446515652219412 },\r\n { x: 6.640000000000669e-7, y: -0.6520441039141067 },\r\n { x: 6.650000000000669e-7, y: -0.6467486939956133 },\r\n { x: 6.660000000000669e-7, y: -0.632958574919273 },\r\n { x: 6.670000000000668e-7, y: -0.7156466009673889 },\r\n { x: 6.680000000000668e-7, y: -0.6736079815846527 },\r\n { x: 6.690000000000668e-7, y: -0.7239291866197504 },\r\n { x: 6.700000000000667e-7, y: -0.7260301243793009 },\r\n { x: 6.710000000000667e-7, y: -0.7649741962455779 },\r\n { x: 6.720000000000667e-7, y: -0.7876564131806228 },\r\n { x: 6.730000000000667e-7, y: -0.791394149235758 },\r\n { x: 6.740000000000666e-7, y: -0.8197469715588154 },\r\n { x: 6.750000000000666e-7, y: -0.8477123877921675 },\r\n { x: 6.760000000000666e-7, y: -0.8303858148050725 },\r\n { x: 6.770000000000665e-7, y: -0.8323439235252145 },\r\n { x: 6.780000000000665e-7, y: -0.8334321948323198 },\r\n { x: 6.790000000000665e-7, y: -0.9003503610127871 },\r\n { x: 6.800000000000664e-7, y: -0.8995780213795597 },\r\n { x: 6.810000000000664e-7, y: -0.8954076557687466 },\r\n { x: 6.820000000000664e-7, y: -0.9240675928928158 },\r\n { x: 6.830000000000663e-7, y: -0.931662499588955 },\r\n { x: 6.840000000000663e-7, y: -0.9477081686012161 },\r\n { x: 6.850000000000663e-7, y: -1.0070930413776746 },\r\n { x: 6.860000000000663e-7, y: -0.9738117518142747 },\r\n { x: 6.870000000000662e-7, y: -0.9944927034675656 },\r\n { x: 6.880000000000662e-7, y: -1.0301441996220406 },\r\n { x: 6.890000000000662e-7, y: -1.0543073291520935 },\r\n { x: 6.900000000000661e-7, y: -1.061228226149279 },\r\n { x: 6.910000000000661e-7, y: -1.0532320129572157 },\r\n { x: 6.920000000000661e-7, y: -1.1285361100406788 },\r\n { x: 6.93000000000066e-7, y: -1.121892254856008 },\r\n { x: 6.94000000000066e-7, y: -1.1254009447679563 },\r\n { x: 6.95000000000066e-7, y: -1.1474053143088307 },\r\n { x: 6.96000000000066e-7, y: -1.1819284352207882 },\r\n { x: 6.970000000000659e-7, y: -1.170375838791766 },\r\n { x: 6.980000000000659e-7, y: -1.1659376718204282 },\r\n { x: 6.990000000000659e-7, y: -1.1985586289333732 },\r\n { x: 7.000000000000658e-7, y: -1.2499434800209763 },\r\n { x: 7.010000000000658e-7, y: -1.2677655112804196 },\r\n { x: 7.020000000000658e-7, y: -1.2342547119576157 },\r\n { x: 7.030000000000657e-7, y: -1.2899872636301766 },\r\n { x: 7.040000000000657e-7, y: -1.28964351308095 },\r\n { x: 7.050000000000657e-7, y: -1.328726839544997 },\r\n { x: 7.060000000000656e-7, y: -1.2762797594448783 },\r\n { x: 7.070000000000656e-7, y: -1.2951674220098355 },\r\n { x: 7.080000000000656e-7, y: -1.3201791348232343 },\r\n { x: 7.090000000000655e-7, y: -1.319972918897219 },\r\n { x: 7.100000000000655e-7, y: -1.3598193206254197 },\r\n { x: 7.110000000000655e-7, y: -1.3781355841807592 },\r\n { x: 7.120000000000655e-7, y: -1.3972533532709528 },\r\n { x: 7.130000000000654e-7, y: -1.396860697375187 },\r\n { x: 7.140000000000654e-7, y: -1.410304619824219 },\r\n { x: 7.150000000000654e-7, y: -1.4141963752649322 },\r\n { x: 7.160000000000653e-7, y: -1.4842972321676648 },\r\n { x: 7.170000000000653e-7, y: -1.4494901953244637 },\r\n { x: 7.180000000000653e-7, y: -1.4521703528655414 },\r\n { x: 7.190000000000652e-7, y: -1.4850233543540792 },\r\n { x: 7.200000000000652e-7, y: -1.4866179839955078 },\r\n { x: 7.210000000000652e-7, y: -1.5353383039505737 },\r\n { x: 7.220000000000651e-7, y: -1.5717463464532468 },\r\n { x: 7.230000000000651e-7, y: -1.5362570972320952 },\r\n { x: 7.240000000000651e-7, y: -1.5725372396688504 },\r\n { x: 7.250000000000651e-7, y: -1.586537427055434 },\r\n { x: 7.26000000000065e-7, y: -1.6040476669460735 },\r\n { x: 7.27000000000065e-7, y: -1.5772373292020172 },\r\n { x: 7.28000000000065e-7, y: -1.6373771945858209 },\r\n { x: 7.290000000000649e-7, y: -1.6671523434416033 },\r\n { x: 7.300000000000649e-7, y: -1.6537152168496216 },\r\n { x: 7.310000000000649e-7, y: -1.679204260122909 },\r\n { x: 7.320000000000648e-7, y: -1.644631906347282 },\r\n { x: 7.330000000000648e-7, y: -1.6979930526048614 },\r\n { x: 7.340000000000648e-7, y: -1.7412339724948869 },\r\n { x: 7.350000000000647e-7, y: -1.721147801627306 },\r\n { x: 7.360000000000647e-7, y: -1.735086720584018 },\r\n { x: 7.370000000000647e-7, y: -1.7246350604220912 },\r\n { x: 7.380000000000647e-7, y: -1.787684334708181 },\r\n { x: 7.390000000000646e-7, y: -1.7878400578387499 },\r\n { x: 7.400000000000646e-7, y: -1.8011118045587209 },\r\n { x: 7.410000000000646e-7, y: -1.80514729127611 },\r\n { x: 7.420000000000645e-7, y: -1.803973588079188 },\r\n { x: 7.430000000000645e-7, y: -1.8140088435190584 },\r\n { x: 7.440000000000645e-7, y: -1.8319034814867554 },\r\n { x: 7.450000000000644e-7, y: -1.8263356145134895 },\r\n { x: 7.460000000000644e-7, y: -1.9025157358889555 },\r\n { x: 7.470000000000644e-7, y: -1.9027662637009124 },\r\n { x: 7.480000000000643e-7, y: -1.8903096975887788 },\r\n { x: 7.490000000000643e-7, y: -1.9368445605793223 },\r\n { x: 7.500000000000643e-7, y: -1.9428337523967931 },\r\n { x: 7.510000000000643e-7, y: -1.936346029040406 },\r\n { x: 7.520000000000642e-7, y: -1.9660058896932944 },\r\n { x: 7.530000000000642e-7, y: -1.932559936623179 },\r\n { x: 7.540000000000642e-7, y: -1.9297911021861553 },\r\n { x: 7.550000000000641e-7, y: -1.9915597854807727 },\r\n { x: 7.560000000000641e-7, y: -2.014818577523462 },\r\n { x: 7.570000000000641e-7, y: -1.9749619284730717 },\r\n { x: 7.58000000000064e-7, y: -2.03789763369127 },\r\n { x: 7.59000000000064e-7, y: -2.0606302574813284 },\r\n { x: 7.60000000000064e-7, y: -2.0183192949514157 },\r\n { x: 7.61000000000064e-7, y: -2.021015311347985 },\r\n { x: 7.620000000000639e-7, y: -2.064119354946641 },\r\n { x: 7.630000000000639e-7, y: -2.055878577480391 },\r\n { x: 7.640000000000639e-7, y: -2.0962559501724463 },\r\n { x: 7.650000000000638e-7, y: -2.074018664011004 },\r\n { x: 7.660000000000638e-7, y: -2.0896436420394227 },\r\n { x: 7.670000000000638e-7, y: -2.1262724767362506 },\r\n { x: 7.680000000000637e-7, y: -2.1558803423283965 },\r\n { x: 7.690000000000637e-7, y: -2.102909108616602 },\r\n { x: 7.700000000000637e-7, y: -2.1317511337743587 },\r\n { x: 7.710000000000636e-7, y: -2.1836563851563775 },\r\n { x: 7.720000000000636e-7, y: -2.1749725226646803 },\r\n { x: 7.730000000000636e-7, y: -2.1760729330807265 },\r\n { x: 7.740000000000635e-7, y: -2.190896042494086 },\r\n { x: 7.750000000000635e-7, y: -2.2001527517103674 },\r\n { x: 7.760000000000635e-7, y: -2.2130418909331486 },\r\n { x: 7.770000000000635e-7, y: -2.2063507638943474 },\r\n { x: 7.780000000000634e-7, y: -2.2138750759696055 },\r\n { x: 7.790000000000634e-7, y: -2.2805381931239856 },\r\n { x: 7.800000000000634e-7, y: -2.2475678872158387 },\r\n { x: 7.810000000000633e-7, y: -2.2911747672325413 },\r\n { x: 7.820000000000633e-7, y: -2.303093003516833 },\r\n { x: 7.830000000000633e-7, y: -2.265271656488227 },\r\n { x: 7.840000000000632e-7, y: -2.2740880148368454 },\r\n { x: 7.850000000000632e-7, y: -2.297455793799374 },\r\n { x: 7.860000000000632e-7, y: -2.3071718305399123 },\r\n { x: 7.870000000000631e-7, y: -2.350588418405074 },\r\n { x: 7.880000000000631e-7, y: -2.3423590405498755 },\r\n { x: 7.890000000000631e-7, y: -2.3240151080745206 },\r\n { x: 7.900000000000631e-7, y: -2.359705796962423 },\r\n { x: 7.91000000000063e-7, y: -2.354457500939004 },\r\n { x: 7.92000000000063e-7, y: -2.3478354092748495 },\r\n { x: 7.93000000000063e-7, y: -2.3639572859735862 },\r\n { x: 7.940000000000629e-7, y: -2.4226999792401203 },\r\n { x: 7.950000000000629e-7, y: -2.4340544138076408 },\r\n { x: 7.960000000000629e-7, y: -2.3780566517382833 },\r\n { x: 7.970000000000628e-7, y: -2.4401803729827876 },\r\n { x: 7.980000000000628e-7, y: -2.4416396490411953 },\r\n { x: 7.990000000000628e-7, y: -2.4150481340956165 },\r\n { x: 8.000000000000628e-7, y: -2.476867585977726 },\r\n { x: 8.010000000000627e-7, y: -2.4821380392889196 },\r\n { x: 8.020000000000627e-7, y: -2.478856400055757 },\r\n { x: 8.030000000000627e-7, y: -2.4397298613346012 },\r\n { x: 8.040000000000626e-7, y: -2.476987541618824 },\r\n { x: 8.050000000000626e-7, y: -2.5020098236123385 },\r\n { x: 8.060000000000626e-7, y: -2.5023309800132942 },\r\n { x: 8.070000000000625e-7, y: -2.4829349226243025 },\r\n { x: 8.080000000000625e-7, y: -2.48777266497422 },\r\n { x: 8.090000000000625e-7, y: -2.516780384155387 },\r\n { x: 8.100000000000624e-7, y: -2.5683636204006723 },\r\n { x: 8.110000000000624e-7, y: -2.5051484995280546 },\r\n { x: 8.120000000000624e-7, y: -2.536891737016058 },\r\n { x: 8.130000000000624e-7, y: -2.5821926133444673 },\r\n { x: 8.140000000000623e-7, y: -2.592726295775674 },\r\n { x: 8.150000000000623e-7, y: -2.5614830801409627 },\r\n { x: 8.160000000000623e-7, y: -2.5877184984376673 },\r\n { x: 8.170000000000622e-7, y: -2.624103466543629 },\r\n { x: 8.180000000000622e-7, y: -2.6296066009332413 },\r\n { x: 8.190000000000622e-7, y: -2.6324868648472384 },\r\n { x: 8.200000000000621e-7, y: -2.5739095207819913 },\r\n { x: 8.210000000000621e-7, y: -2.6201295189578064 },\r\n { x: 8.220000000000621e-7, y: -2.6303338441350115 },\r\n { x: 8.23000000000062e-7, y: -2.6599352916276495 },\r\n { x: 8.24000000000062e-7, y: -2.626011467845632 },\r\n { x: 8.25000000000062e-7, y: -2.6313979610589344 },\r\n { x: 8.26000000000062e-7, y: -2.6629740261037655 },\r\n { x: 8.270000000000619e-7, y: -2.697810825260525 },\r\n { x: 8.280000000000619e-7, y: -2.6658295299678554 },\r\n { x: 8.290000000000619e-7, y: -2.6742804279564716 },\r\n { x: 8.300000000000618e-7, y: -2.6807843621938443 },\r\n { x: 8.310000000000618e-7, y: -2.6573315432723406 },\r\n { x: 8.320000000000618e-7, y: -2.6921605599483027 },\r\n { x: 8.330000000000617e-7, y: -2.7288213113864463 },\r\n { x: 8.340000000000617e-7, y: -2.6960210793531414 },\r\n { x: 8.350000000000617e-7, y: -2.7106273801500063 },\r\n { x: 8.360000000000616e-7, y: -2.727510157293907 },\r\n { x: 8.370000000000616e-7, y: -2.7458555303542234 },\r\n { x: 8.380000000000616e-7, y: -2.7565592316307397 },\r\n { x: 8.390000000000616e-7, y: -2.7147074559968853 },\r\n { x: 8.400000000000615e-7, y: -2.7694876935025787 },\r\n { x: 8.410000000000615e-7, y: -2.7733072099226033 },\r\n { x: 8.420000000000615e-7, y: -2.765156863431549 },\r\n { x: 8.430000000000614e-7, y: -2.7935596096657003 },\r\n { x: 8.440000000000614e-7, y: -2.779273992870829 },\r\n { x: 8.450000000000614e-7, y: -2.7674261280796415 },\r\n { x: 8.460000000000613e-7, y: -2.7831101163645715 },\r\n { x: 8.470000000000613e-7, y: -2.774042874495402 },\r\n { x: 8.480000000000613e-7, y: -2.803463457161769 },\r\n { x: 8.490000000000612e-7, y: -2.8076649543308796 },\r\n { x: 8.500000000000612e-7, y: -2.7694404649729485 },\r\n { x: 8.510000000000612e-7, y: -2.8296067352378946 },\r\n { x: 8.520000000000612e-7, y: -2.769812341436803 },\r\n { x: 8.530000000000611e-7, y: -2.8146911225318347 },\r\n { x: 8.540000000000611e-7, y: -2.8525571084872783 },\r\n { x: 8.550000000000611e-7, y: -2.8256074878559265 },\r\n { x: 8.56000000000061e-7, y: -2.8600933507442807 },\r\n { x: 8.57000000000061e-7, y: -2.8340954656178448 },\r\n { x: 8.58000000000061e-7, y: -2.867258517846509 },\r\n { x: 8.590000000000609e-7, y: -2.8068575537151483 },\r\n { x: 8.600000000000609e-7, y: -2.844352121689173 },\r\n { x: 8.610000000000609e-7, y: -2.8103729411780742 },\r\n { x: 8.620000000000608e-7, y: -2.8303707725193674 },\r\n { x: 8.630000000000608e-7, y: -2.843702909731462 },\r\n { x: 8.640000000000608e-7, y: -2.851881329615108 },\r\n { x: 8.650000000000608e-7, y: -2.898358851690156 },\r\n { x: 8.660000000000607e-7, y: -2.8313929273326073 },\r\n { x: 8.670000000000607e-7, y: -2.8619568275718663 },\r\n { x: 8.680000000000607e-7, y: -2.861704082515166 },\r\n { x: 8.690000000000606e-7, y: -2.8811073334254798 },\r\n { x: 8.700000000000606e-7, y: -2.907265338198719 },\r\n { x: 8.710000000000606e-7, y: -2.917435832811323 },\r\n { x: 8.720000000000605e-7, y: -2.861558786748291 },\r\n { x: 8.730000000000605e-7, y: -2.86327001465509 },\r\n { x: 8.740000000000605e-7, y: -2.884817017631631 },\r\n { x: 8.750000000000604e-7, y: -2.9298940918946696 },\r\n { x: 8.760000000000604e-7, y: -2.864957838518482 },\r\n { x: 8.770000000000604e-7, y: -2.927110684690623 },\r\n { x: 8.780000000000604e-7, y: -2.8902008230791316 },\r\n { x: 8.790000000000603e-7, y: -2.893962756214702 },\r\n { x: 8.800000000000603e-7, y: -2.9198740576200324 },\r\n { x: 8.810000000000603e-7, y: -2.906364506827804 },\r\n { x: 8.820000000000602e-7, y: -2.887678919802907 },\r\n { x: 8.830000000000602e-7, y: -2.9121500491281687 },\r\n { x: 8.840000000000602e-7, y: -2.8881151683897794 },\r\n { x: 8.850000000000601e-7, y: -2.936203526782056 },\r\n { x: 8.860000000000601e-7, y: -2.9487149458330384 },\r\n { x: 8.870000000000601e-7, y: -2.90595447037774 },\r\n { x: 8.8800000000006e-7, y: -2.9511577627408454 },\r\n { x: 8.8900000000006e-7, y: -2.9006731485650006 },\r\n { x: 8.9000000000006e-7, y: -2.9623864607366417 },\r\n { x: 8.9100000000006e-7, y: -2.9000158219127186 },\r\n { x: 8.920000000000599e-7, y: -2.923000395396974 },\r\n { x: 8.930000000000599e-7, y: -2.902882666001241 },\r\n { x: 8.940000000000599e-7, y: -2.9324335574470135 },\r\n { x: 8.950000000000598e-7, y: -2.938467125800375 },\r\n { x: 8.960000000000598e-7, y: -2.9766601071544376 },\r\n { x: 8.970000000000598e-7, y: -2.933710734734237 },\r\n { x: 8.980000000000597e-7, y: -2.9145057164725117 },\r\n { x: 8.990000000000597e-7, y: -2.9643638343036307 },\r\n { x: 9.000000000000597e-7, y: -2.9164639646988295 },\r\n { x: 9.010000000000596e-7, y: -2.9876497192815443 },\r\n { x: 9.020000000000596e-7, y: -2.9295998551630897 },\r\n { x: 9.030000000000596e-7, y: -2.916701895305716 },\r\n { x: 9.040000000000596e-7, y: -2.9828925473422063 },\r\n { x: 9.050000000000595e-7, y: -2.9667492971059195 },\r\n { x: 9.060000000000595e-7, y: -2.92511642650399 },\r\n { x: 9.070000000000595e-7, y: -2.9289609438921507 },\r\n { x: 9.080000000000594e-7, y: -2.9816225525217552 },\r\n { x: 9.090000000000594e-7, y: -2.974001745809239 },\r\n { x: 9.100000000000594e-7, y: -2.9321479890932602 },\r\n { x: 9.110000000000593e-7, y: -2.950426444382265 },\r\n { x: 9.120000000000593e-7, y: -2.9634305979357882 },\r\n { x: 9.130000000000593e-7, y: -2.935744190311045 },\r\n { x: 9.140000000000592e-7, y: -2.9708324209945234 },\r\n { x: 9.150000000000592e-7, y: -2.9382075562801813 },\r\n { x: 9.160000000000592e-7, y: -2.9760690670692176 },\r\n { x: 9.170000000000592e-7, y: -2.934654682720297 },\r\n { x: 9.180000000000591e-7, y: -2.962554253049239 },\r\n { x: 9.190000000000591e-7, y: -2.9491330025216422 },\r\n { x: 9.200000000000591e-7, y: -2.977843462275971 },\r\n { x: 9.21000000000059e-7, y: -2.9445779172293016 },\r\n { x: 9.22000000000059e-7, y: -2.9234494475304182 },\r\n { x: 9.23000000000059e-7, y: -2.972858739228422 },\r\n { x: 9.240000000000589e-7, y: -2.958180479195299 },\r\n { x: 9.250000000000589e-7, y: -2.9779554199935525 },\r\n { x: 9.260000000000589e-7, y: -2.9386686729792517 },\r\n { x: 9.270000000000588e-7, y: -2.966382483463096 },\r\n { x: 9.280000000000588e-7, y: -2.938944489614598 },\r\n { x: 9.290000000000588e-7, y: -2.9406615434132286 },\r\n { x: 9.300000000000588e-7, y: -2.9741451418216505 },\r\n { x: 9.310000000000587e-7, y: -2.91969325268199 },\r\n { x: 9.320000000000587e-7, y: -2.911391584737342 },\r\n { x: 9.330000000000587e-7, y: -2.936817823965968 },\r\n { x: 9.340000000000586e-7, y: -2.9298468914021263 },\r\n { x: 9.350000000000586e-7, y: -2.9146484371620462 },\r\n { x: 9.360000000000586e-7, y: -2.9507812555385247 },\r\n { x: 9.370000000000585e-7, y: -2.9285328472345227 },\r\n { x: 9.380000000000585e-7, y: -2.936304402803806 },\r\n { x: 9.390000000000585e-7, y: -2.9406177668531175 },\r\n { x: 9.400000000000584e-7, y: -2.912230115812706 },\r\n { x: 9.410000000000584e-7, y: -2.9341140700680257 },\r\n { x: 9.420000000000584e-7, y: -2.939849444769461 },\r\n { x: 9.430000000000584e-7, y: -2.91905481188591 },\r\n { x: 9.440000000000583e-7, y: -2.890618053246819 },\r\n { x: 9.450000000000583e-7, y: -2.944699657107766 },\r\n { x: 9.460000000000583e-7, y: -2.918024307776734 },\r\n { x: 9.470000000000582e-7, y: -2.950891370038067 },\r\n { x: 9.480000000000582e-7, y: -2.8909417564949136 },\r\n { x: 9.490000000000582e-7, y: -2.8860180655527716 },\r\n { x: 9.500000000000581e-7, y: -2.921838871508459 },\r\n { x: 9.510000000000581e-7, y: -2.93150866038216 },\r\n { x: 9.520000000000581e-7, y: -2.8965571678094175 },\r\n { x: 9.53000000000058e-7, y: -2.88527824009263 },\r\n { x: 9.540000000000581e-7, y: -2.9004925579372736 },\r\n { x: 9.550000000000582e-7, y: -2.8619863546464517 },\r\n { x: 9.560000000000583e-7, y: -2.874137257214041 },\r\n { x: 9.570000000000583e-7, y: -2.8552102483960966 },\r\n { x: 9.580000000000584e-7, y: -2.8786915156360866 },\r\n { x: 9.590000000000585e-7, y: -2.8568495436065464 },\r\n { x: 9.600000000000586e-7, y: -2.8911457219041163 },\r\n { x: 9.610000000000586e-7, y: -2.9049199006203055 },\r\n { x: 9.620000000000587e-7, y: -2.870753698210861 },\r\n { x: 9.630000000000588e-7, y: -2.8640630016241126 },\r\n { x: 9.640000000000589e-7, y: -2.83726716564893 },\r\n { x: 9.65000000000059e-7, y: -2.8314638129994814 },\r\n { x: 9.66000000000059e-7, y: -2.85247264605437 },\r\n { x: 9.67000000000059e-7, y: -2.8673165364236834 },\r\n { x: 9.680000000000592e-7, y: -2.8406045706033933 },\r\n { x: 9.690000000000592e-7, y: -2.8219753606363853 },\r\n { x: 9.700000000000593e-7, y: -2.825899372369524 },\r\n { x: 9.710000000000594e-7, y: -2.8493359555856745 },\r\n { x: 9.720000000000595e-7, y: -2.862735020921013 },\r\n { x: 9.730000000000595e-7, y: -2.8307770007251682 },\r\n { x: 9.740000000000596e-7, y: -2.8221561577794527 },\r\n { x: 9.750000000000597e-7, y: -2.811385901066925 },\r\n { x: 9.760000000000598e-7, y: -2.827662881343826 },\r\n { x: 9.770000000000598e-7, y: -2.7965472829768863 },\r\n { x: 9.7800000000006e-7, y: -2.788428858190958 },\r\n { x: 9.7900000000006e-7, y: -2.8441734932241953 },\r\n { x: 9.8000000000006e-7, y: -2.781833981692926 },\r\n { x: 9.810000000000601e-7, y: -2.8308549346264558 },\r\n { x: 9.820000000000602e-7, y: -2.756527743948133 },\r\n { x: 9.830000000000603e-7, y: -2.785222528151875 },\r\n { x: 9.840000000000604e-7, y: -2.776646677900193 },\r\n { x: 9.850000000000604e-7, y: -2.7864867204481785 },\r\n { x: 9.860000000000605e-7, y: -2.761534793534902 },\r\n { x: 9.870000000000606e-7, y: -2.7818643010825195 },\r\n { x: 9.880000000000607e-7, y: -2.728761254626916 },\r\n { x: 9.890000000000607e-7, y: -2.7783140884864883 },\r\n { x: 9.900000000000608e-7, y: -2.7577191444065225 },\r\n { x: 9.91000000000061e-7, y: -2.7441047180763793 },\r\n { x: 9.92000000000061e-7, y: -2.7712962077121355 },\r\n { x: 9.93000000000061e-7, y: -2.7138091703923664 },\r\n { x: 9.940000000000611e-7, y: -2.727822159791245 },\r\n { x: 9.950000000000612e-7, y: -2.69583323562765 },\r\n { x: 9.960000000000613e-7, y: -2.689606324034795 },\r\n { x: 9.970000000000614e-7, y: -2.7217491913539376 },\r\n { x: 9.980000000000614e-7, y: -2.743696201740999 },\r\n { x: 9.990000000000615e-7, y: -2.729230444301794 },\r\n { x: 0.0000010000000000000616, y: -2.7002798704252844 },\r\n { x: 0.0000010010000000000617, y: -2.6964244573508234 },\r\n { x: 0.0000010020000000000617, y: -2.6954973390823227 },\r\n { x: 0.0000010030000000000618, y: -2.6742057473662912 },\r\n { x: 0.0000010040000000000619, y: -2.6869155896835677 },\r\n { x: 0.000001005000000000062, y: -2.649006202055302 },\r\n { x: 0.000001006000000000062, y: -2.640016436732289 },\r\n { x: 0.000001007000000000062, y: -2.6697346018535293 },\r\n { x: 0.0000010080000000000622, y: -2.6537247452612447 },\r\n { x: 0.0000010090000000000623, y: -2.6679345916532102 },\r\n { x: 0.0000010100000000000623, y: -2.653369421210141 },\r\n { x: 0.0000010110000000000624, y: -2.630046484330408 },\r\n { x: 0.0000010120000000000625, y: -2.6395439276650956 },\r\n { x: 0.0000010130000000000626, y: -2.5997301407613 },\r\n { x: 0.0000010140000000000626, y: -2.6461432860301484 },\r\n { x: 0.0000010150000000000627, y: -2.6005733095703407 },\r\n { x: 0.0000010160000000000628, y: -2.6159512628906043 },\r\n { x: 0.0000010170000000000629, y: -2.624265547470855 },\r\n { x: 0.000001018000000000063, y: -2.5571658136794873 },\r\n { x: 0.000001019000000000063, y: -2.5881990309651273 },\r\n { x: 0.000001020000000000063, y: -2.5541298055449206 },\r\n { x: 0.0000010210000000000632, y: -2.5377863986711326 },\r\n { x: 0.0000010220000000000632, y: -2.5489555611229613 },\r\n { x: 0.0000010230000000000633, y: -2.55538817619838 },\r\n { x: 0.0000010240000000000634, y: -2.5766401792970512 },\r\n { x: 0.0000010250000000000635, y: -2.5148417592349763 },\r\n { x: 0.0000010260000000000635, y: -2.5472709907113376 },\r\n { x: 0.0000010270000000000636, y: -2.53825638260045 },\r\n { x: 0.0000010280000000000637, y: -2.477190922886537 },\r\n { x: 0.0000010290000000000638, y: -2.514066980046247 },\r\n { x: 0.0000010300000000000638, y: -2.493761840639996 },\r\n { x: 0.000001031000000000064, y: -2.5185998181291867 },\r\n { x: 0.000001032000000000064, y: -2.4913912816660093 },\r\n { x: 0.000001033000000000064, y: -2.4796168646922 },\r\n { x: 0.0000010340000000000641, y: -2.4796530303501654 },\r\n { x: 0.0000010350000000000642, y: -2.45121270551031 },\r\n { x: 0.0000010360000000000643, y: -2.443976954176379 },\r\n { x: 0.0000010370000000000644, y: -2.4317250425826327 },\r\n { x: 0.0000010380000000000644, y: -2.4201043484104785 },\r\n { x: 0.0000010390000000000645, y: -2.433336170259666 },\r\n { x: 0.0000010400000000000646, y: -2.441347548251501 },\r\n { x: 0.0000010410000000000647, y: -2.414508312110115 },\r\n { x: 0.0000010420000000000647, y: -2.4232681901616275 },\r\n { x: 0.0000010430000000000648, y: -2.423133440182755 },\r\n { x: 0.0000010440000000000649, y: -2.412656817214131 },\r\n { x: 0.000001045000000000065, y: -2.405672474450974 },\r\n { x: 0.000001046000000000065, y: -2.357864832330612 },\r\n { x: 0.0000010470000000000651, y: -2.3617701422918778 },\r\n { x: 0.0000010480000000000652, y: -2.347781376983625 },\r\n { x: 0.0000010490000000000653, y: -2.316753906684353 },\r\n { x: 0.0000010500000000000653, y: -2.322605217392935 },\r\n { x: 0.0000010510000000000654, y: -2.3441096488564686 },\r\n { x: 0.0000010520000000000655, y: -2.282898132491534 },\r\n { x: 0.0000010530000000000656, y: -2.3069435747675358 },\r\n { x: 0.0000010540000000000656, y: -2.318574656384435 },\r\n { x: 0.0000010550000000000657, y: -2.257501230828061 },\r\n { x: 0.0000010560000000000658, y: -2.2976754936359938 },\r\n { x: 0.0000010570000000000659, y: -2.28231706183603 },\r\n { x: 0.000001058000000000066, y: -2.2518844643742533 },\r\n { x: 0.000001059000000000066, y: -2.245637829959301 },\r\n { x: 0.000001060000000000066, y: -2.259457696194272 },\r\n { x: 0.0000010610000000000662, y: -2.2674896557086104 },\r\n { x: 0.0000010620000000000662, y: -2.25567170796724 },\r\n { x: 0.0000010630000000000663, y: -2.2259857569530386 },\r\n { x: 0.0000010640000000000664, y: -2.2064798980754188 },\r\n { x: 0.0000010650000000000665, y: -2.2215357721999207 },\r\n { x: 0.0000010660000000000665, y: -2.191990560473061 },\r\n { x: 0.0000010670000000000666, y: -2.1539329033220675 },\r\n { x: 0.0000010680000000000667, y: -2.160942247206046 },\r\n { x: 0.0000010690000000000668, y: -2.143769437596853 },\r\n { x: 0.0000010700000000000668, y: -2.167421585790664 },\r\n { x: 0.000001071000000000067, y: -2.131279970759539 },\r\n { x: 0.000001072000000000067, y: -2.1347397373950034 },\r\n { x: 0.000001073000000000067, y: -2.0866999139614575 },\r\n { x: 0.0000010740000000000671, y: -2.1183001384603597 },\r\n { x: 0.0000010750000000000672, y: -2.086334409698115 },\r\n { x: 0.0000010760000000000673, y: -2.0593984409407717 },\r\n { x: 0.0000010770000000000674, y: -2.1063244124424423 },\r\n { x: 0.0000010780000000000674, y: -2.08836151917355 },\r\n { x: 0.0000010790000000000675, y: -2.1015081560595226 },\r\n { x: 0.0000010800000000000676, y: -2.024749987916138 },\r\n { x: 0.0000010810000000000677, y: -2.040732752230928 },\r\n { x: 0.0000010820000000000677, y: -2.046168870436642 },\r\n { x: 0.0000010830000000000678, y: -2.0525018649358757 },\r\n { x: 0.0000010840000000000679, y: -2.0375303832587295 },\r\n { x: 0.000001085000000000068, y: -2.0120983798446193 },\r\n { x: 0.000001086000000000068, y: -1.9960215496681246 },\r\n { x: 0.0000010870000000000681, y: -1.9739055525154958 },\r\n { x: 0.0000010880000000000682, y: -1.9884229978218901 },\r\n { x: 0.0000010890000000000683, y: -1.9959712954910505 },\r\n { x: 0.0000010900000000000683, y: -1.9350623037016246 },\r\n { x: 0.0000010910000000000684, y: -1.9279924609968988 },\r\n { x: 0.0000010920000000000685, y: -1.9083889185898628 },\r\n { x: 0.0000010930000000000686, y: -1.9107646279557768 },\r\n { x: 0.0000010940000000000686, y: -1.9235896904213654 },\r\n { x: 0.0000010950000000000687, y: -1.9077264580747624 },\r\n { x: 0.0000010960000000000688, y: -1.8587589590236497 },\r\n { x: 0.0000010970000000000689, y: -1.876597786919901 },\r\n { x: 0.000001098000000000069, y: -1.8700217459328776 },\r\n { x: 0.000001099000000000069, y: -1.847740190818427 },\r\n { x: 0.000001100000000000069, y: -1.835527592526767 },\r\n { x: 0.0000011010000000000692, y: -1.8290841453361617 },\r\n { x: 0.0000011020000000000692, y: -1.8089095363694432 },\r\n { x: 0.0000011030000000000693, y: -1.8190969867635092 },\r\n { x: 0.0000011040000000000694, y: -1.8092723319865567 },\r\n { x: 0.0000011050000000000695, y: -1.801222425563087 },\r\n { x: 0.0000011060000000000695, y: -1.7679683199942404 },\r\n { x: 0.0000011070000000000696, y: -1.7700883442195483 },\r\n { x: 0.0000011080000000000697, y: -1.7470404177486727 },\r\n { x: 0.0000011090000000000698, y: -1.7419412927283844 },\r\n { x: 0.0000011100000000000698, y: -1.708243658522816 },\r\n { x: 0.00000111100000000007, y: -1.70685823692574 },\r\n { x: 0.00000111200000000007, y: -1.6920185647394441 },\r\n { x: 0.00000111300000000007, y: -1.69210557753839 },\r\n { x: 0.0000011140000000000701, y: -1.724796033691692 },\r\n { x: 0.0000011150000000000702, y: -1.7016664205042438 },\r\n { x: 0.0000011160000000000703, y: -1.705493665671974 },\r\n { x: 0.0000011170000000000704, y: -1.6578417283905895 },\r\n { x: 0.0000011180000000000704, y: -1.6802684355063802 },\r\n { x: 0.0000011190000000000705, y: -1.606026575642993 },\r\n { x: 0.0000011200000000000706, y: -1.6227450046947103 },\r\n { x: 0.0000011210000000000707, y: -1.6136834614352478 },\r\n { x: 0.0000011220000000000707, y: -1.5803592168441492 },\r\n { x: 0.0000011230000000000708, y: -1.6110596917648399 },\r\n { x: 0.0000011240000000000709, y: -1.5671805813681838 },\r\n { x: 0.000001125000000000071, y: -1.57329435918908 },\r\n { x: 0.000001126000000000071, y: -1.5795922254455512 },\r\n { x: 0.0000011270000000000711, y: -1.5538408168409483 },\r\n { x: 0.0000011280000000000712, y: -1.5374636303586313 },\r\n { x: 0.0000011290000000000713, y: -1.5676948153395773 },\r\n { x: 0.0000011300000000000713, y: -1.5110600731112371 },\r\n { x: 0.0000011310000000000714, y: -1.470305290533936 },\r\n { x: 0.0000011320000000000715, y: -1.471230750920955 },\r\n { x: 0.0000011330000000000716, y: -1.4820692543786587 },\r\n { x: 0.0000011340000000000716, y: -1.4874962478150864 },\r\n { x: 0.0000011350000000000717, y: -1.4578597809457159 },\r\n { x: 0.0000011360000000000718, y: -1.4215625375059417 },\r\n { x: 0.0000011370000000000719, y: -1.4616946552057766 },\r\n { x: 0.000001138000000000072, y: -1.4345160952785518 },\r\n { x: 0.000001139000000000072, y: -1.4214127328720212 },\r\n { x: 0.000001140000000000072, y: -1.436569048731919 },\r\n { x: 0.0000011410000000000722, y: -1.415868722476098 },\r\n { x: 0.0000011420000000000722, y: -1.3726439914739348 },\r\n { x: 0.0000011430000000000723, y: -1.3927190972834356 },\r\n { x: 0.0000011440000000000724, y: -1.3572754080466038 },\r\n { x: 0.0000011450000000000725, y: -1.3176891264423618 },\r\n { x: 0.0000011460000000000725, y: -1.297536940448045 },\r\n { x: 0.0000011470000000000726, y: -1.3534486267580776 },\r\n { x: 0.0000011480000000000727, y: -1.3453498940426343 },\r\n { x: 0.0000011490000000000728, y: -1.2937255429648007 },\r\n { x: 0.0000011500000000000728, y: -1.249173294768944 },\r\n { x: 0.000001151000000000073, y: -1.2855758420136414 },\r\n { x: 0.000001152000000000073, y: -1.2878233524132527 },\r\n { x: 0.000001153000000000073, y: -1.2238746184687883 },\r\n { x: 0.0000011540000000000731, y: -1.2261625076650529 },\r\n { x: 0.0000011550000000000732, y: -1.2244442063236738 },\r\n { x: 0.0000011560000000000733, y: -1.1797882988974489 },\r\n { x: 0.0000011570000000000734, y: -1.1649731253785105 },\r\n { x: 0.0000011580000000000734, y: -1.1768275453401826 },\r\n { x: 0.0000011590000000000735, y: -1.1908915651711174 },\r\n { x: 0.0000011600000000000736, y: -1.163447905914741 },\r\n { x: 0.0000011610000000000737, y: -1.121123721260343 },\r\n { x: 0.0000011620000000000737, y: -1.143009576913168 },\r\n { x: 0.0000011630000000000738, y: -1.1552731558038924 },\r\n { x: 0.000001164000000000074, y: -1.0996497605933475 },\r\n { x: 0.000001165000000000074, y: -1.0931065759246417 },\r\n { x: 0.000001166000000000074, y: -1.0637961552040398 },\r\n { x: 0.0000011670000000000741, y: -1.0959283508828057 },\r\n { x: 0.0000011680000000000742, y: -1.0890231453497359 },\r\n { x: 0.0000011690000000000743, y: -1.0782191801027068 },\r\n { x: 0.0000011700000000000743, y: -1.0132884475994262 },\r\n { x: 0.0000011710000000000744, y: -1.0020973860822264 },\r\n { x: 0.0000011720000000000745, y: -1.0241218334285882 },\r\n { x: 0.0000011730000000000746, y: -1.0031357856720269 },\r\n { x: 0.0000011740000000000746, y: -1.005636247241965 },\r\n { x: 0.0000011750000000000747, y: -0.9925000750270289 },\r\n { x: 0.0000011760000000000748, y: -0.9610862456471924 },\r\n { x: 0.0000011770000000000749, y: -0.9556779325141588 },\r\n { x: 0.000001178000000000075, y: -0.9358322265882817 },\r\n { x: 0.000001179000000000075, y: -0.9042068481365282 },\r\n { x: 0.000001180000000000075, y: -0.9441361447165949 },\r\n { x: 0.0000011810000000000752, y: -0.9252952984481573 },\r\n { x: 0.0000011820000000000752, y: -0.9000672065787889 },\r\n { x: 0.0000011830000000000753, y: -0.9283057383199305 },\r\n { x: 0.0000011840000000000754, y: -0.8774893554451562 },\r\n { x: 0.0000011850000000000755, y: -0.8529084046226574 },\r\n { x: 0.0000011860000000000756, y: -0.8624063515743335 },\r\n { x: 0.0000011870000000000756, y: -0.8167009109674965 },\r\n { x: 0.0000011880000000000757, y: -0.8043248337208095 },\r\n { x: 0.0000011890000000000758, y: -0.8501223406799542 },\r\n { x: 0.0000011900000000000759, y: -0.798174663748855 },\r\n { x: 0.000001191000000000076, y: -0.809421445655857 },\r\n { x: 0.000001192000000000076, y: -0.7811664379641953 },\r\n { x: 0.000001193000000000076, y: -0.7331741766129248 },\r\n { x: 0.0000011940000000000762, y: -0.7678636008900854 },\r\n { x: 0.0000011950000000000762, y: -0.7291745382612629 },\r\n { x: 0.0000011960000000000763, y: -0.7064243017579349 },\r\n { x: 0.0000011970000000000764, y: -0.7314566866982875 },\r\n { x: 0.0000011980000000000765, y: -0.6736269281284476 },\r\n { x: 0.0000011990000000000765, y: -0.6961430607322345 },\r\n { x: 0.0000012000000000000766, y: -0.6760020006353963 },\r\n { x: 0.0000012010000000000767, y: -0.6603962886061162 },\r\n { x: 0.0000012020000000000768, y: -0.6216122377675556 },\r\n { x: 0.0000012030000000000768, y: -0.6699811922803657 },\r\n { x: 0.000001204000000000077, y: -0.6072391978108935 },\r\n { x: 0.000001205000000000077, y: -0.6471095886886495 },\r\n { x: 0.000001206000000000077, y: -0.6214786900756055 },\r\n { x: 0.0000012070000000000771, y: -0.6032581063776964 },\r\n { x: 0.0000012080000000000772, y: -0.5660881860970816 },\r\n { x: 0.0000012090000000000773, y: -0.604502355070154 },\r\n { x: 0.0000012100000000000774, y: -0.5349529258666671 },\r\n { x: 0.0000012110000000000774, y: -0.5718732660477731 },\r\n { x: 0.0000012120000000000775, y: -0.541292351736929 },\r\n { x: 0.0000012130000000000776, y: -0.553317931937487 },\r\n { x: 0.0000012140000000000777, y: -0.5211680273101764 },\r\n { x: 0.0000012150000000000777, y: -0.47399143437207375 },\r\n { x: 0.0000012160000000000778, y: -0.47197657428818074 },\r\n { x: 0.0000012170000000000779, y: -0.4536771160107145 },\r\n { x: 0.000001218000000000078, y: -0.43356801949054585 },\r\n { x: 0.000001219000000000078, y: -0.4860261910727052 },\r\n { x: 0.000001220000000000078, y: -0.412817153510327 },\r\n { x: 0.0000012210000000000782, y: -0.39299964123401604 },\r\n { x: 0.0000012220000000000783, y: -0.4148650599048196 },\r\n { x: 0.0000012230000000000783, y: -0.4402037779506115 },\r\n { x: 0.0000012240000000000784, y: -0.3566532499659609 },\r\n { x: 0.0000012250000000000785, y: -0.40529459829099734 },\r\n { x: 0.0000012260000000000786, y: -0.35570858729529825 },\r\n { x: 0.0000012270000000000786, y: -0.3563409633429071 },\r\n { x: 0.0000012280000000000787, y: -0.33188067469457133 },\r\n { x: 0.0000012290000000000788, y: -0.3499667793908304 },\r\n { x: 0.0000012300000000000789, y: -0.2954163264402897 },\r\n { x: 0.000001231000000000079, y: -0.30286059381414276 },\r\n { x: 0.000001232000000000079, y: -0.3151707751191381 },\r\n { x: 0.000001233000000000079, y: -0.29108939715095333 },\r\n { x: 0.0000012340000000000792, y: -0.27181700370963724 },\r\n { x: 0.0000012350000000000792, y: -0.27799890978536135 },\r\n { x: 0.0000012360000000000793, y: -0.2385474349092482 },\r\n { x: 0.0000012370000000000794, y: -0.2586020325902714 },\r\n { x: 0.0000012380000000000795, y: -0.22536500423236583 },\r\n { x: 0.0000012390000000000795, y: -0.20183827100993776 },\r\n { x: 0.0000012400000000000796, y: -0.23010071703753565 },\r\n { x: 0.0000012410000000000797, y: -0.16503036288459788 },\r\n { x: 0.0000012420000000000798, y: -0.1566256961757913 },\r\n { x: 0.0000012430000000000798, y: -0.18521100261754386 },\r\n { x: 0.00000124400000000008, y: -0.12747842038671897 },\r\n { x: 0.00000124500000000008, y: -0.14309280125545476 },\r\n { x: 0.00000124600000000008, y: -0.13100474583539598 },\r\n { x: 0.0000012470000000000801, y: -0.10405612830352308 },\r\n { x: 0.0000012480000000000802, y: -0.06832324024087069 },\r\n { x: 0.0000012490000000000803, y: -0.0656382549619924 },\r\n { x: 0.0000012500000000000804, y: -0.10622065014561533 },\r\n { x: 0.0000012510000000000804, y: -0.07044054202811087 },\r\n { x: 0.0000012520000000000805, y: -0.04262569001602948 },\r\n { x: 0.0000012530000000000806, y: -0.006892326022809522 },\r\n { x: 0.0000012540000000000807, y: -0.044470199050654004 },\r\n { x: 0.0000012550000000000807, y: -0.0404008740530935 },\r\n { x: 0.0000012560000000000808, y: 0.0222345762679733 },\r\n { x: 0.0000012570000000000809, y: 0.014272908557915614 },\r\n { x: 0.000001258000000000081, y: 0.00955292527263679 },\r\n { x: 0.000001259000000000081, y: 0.018943398024962442 },\r\n { x: 0.0000012600000000000811, y: 0.04591799795923668 },\r\n { x: 0.0000012610000000000812, y: 0.06177106106287698 },\r\n { x: 0.0000012620000000000813, y: 0.06156218253302007 },\r\n { x: 0.0000012630000000000813, y: 0.09901423986690978 },\r\n { x: 0.0000012640000000000814, y: 0.07718737983512958 },\r\n { x: 0.0000012650000000000815, y: 0.11499187693592912 },\r\n { x: 0.0000012660000000000816, y: 0.09838870921516399 },\r\n { x: 0.0000012670000000000816, y: 0.0840379348728896 },\r\n { x: 0.0000012680000000000817, y: 0.13633526308057603 },\r\n { x: 0.0000012690000000000818, y: 0.1505639064186107 },\r\n { x: 0.0000012700000000000819, y: 0.18636304009074428 },\r\n { x: 0.000001271000000000082, y: 0.16631802517142183 },\r\n { x: 0.000001272000000000082, y: 0.14394172167609634 },\r\n { x: 0.000001273000000000082, y: 0.1847688995852056 },\r\n { x: 0.0000012740000000000822, y: 0.16418411574793573 },\r\n { x: 0.0000012750000000000822, y: 0.23999062672305949 },\r\n { x: 0.0000012760000000000823, y: 0.19295812425074416 },\r\n { x: 0.0000012770000000000824, y: 0.21590498380700832 },\r\n { x: 0.0000012780000000000825, y: 0.2727873035990194 },\r\n { x: 0.0000012790000000000825, y: 0.28807061637346115 },\r\n { x: 0.0000012800000000000826, y: 0.29462033681088584 },\r\n { x: 0.0000012810000000000827, y: 0.25129915397047126 },\r\n { x: 0.0000012820000000000828, y: 0.28442262840447213 },\r\n { x: 0.0000012830000000000828, y: 0.2802008382995984 },\r\n { x: 0.000001284000000000083, y: 0.2795953427073829 },\r\n { x: 0.000001285000000000083, y: 0.32248646722251306 },\r\n { x: 0.000001286000000000083, y: 0.34498547257461015 },\r\n { x: 0.0000012870000000000831, y: 0.3754367286864585 },\r\n { x: 0.0000012880000000000832, y: 0.3549892102190534 },\r\n { x: 0.0000012890000000000833, y: 0.3556622432894077 },\r\n { x: 0.0000012900000000000834, y: 0.40761037666177297 },\r\n { x: 0.0000012910000000000834, y: 0.3934519898280681 },\r\n { x: 0.0000012920000000000835, y: 0.3993731625146763 },\r\n { x: 0.0000012930000000000836, y: 0.4145989997553983 },\r\n { x: 0.0000012940000000000837, y: 0.428242236157867 },\r\n { x: 0.0000012950000000000837, y: 0.4394479597005514 },\r\n { x: 0.0000012960000000000838, y: 0.41697021752229857 },\r\n { x: 0.0000012970000000000839, y: 0.4321021747935018 },\r\n { x: 0.000001298000000000084, y: 0.4991021558247655 },\r\n { x: 0.000001299000000000084, y: 0.4841753180139331 },\r\n { x: 0.0000013000000000000841, y: 0.5024118956639743 },\r\n { x: 0.0000013010000000000842, y: 0.49777540379003915 },\r\n { x: 0.0000013020000000000843, y: 0.4993041830210104 },\r\n { x: 0.0000013030000000000843, y: 0.5555349732401625 },\r\n { x: 0.0000013040000000000844, y: 0.5629492248583431 },\r\n { x: 0.0000013050000000000845, y: 0.511170676531255 },\r\n { x: 0.0000013060000000000846, y: 0.5296936284835054 },\r\n { x: 0.0000013070000000000846, y: 0.5758686488334313 },\r\n { x: 0.0000013080000000000847, y: 0.5944288869939841 },\r\n { x: 0.0000013090000000000848, y: 0.5580989997058687 },\r\n { x: 0.0000013100000000000849, y: 0.5729570099495459 },\r\n { x: 0.000001311000000000085, y: 0.5756725686316552 },\r\n { x: 0.000001312000000000085, y: 0.6435082364409714 },\r\n { x: 0.000001313000000000085, y: 0.5918370644555717 },\r\n { x: 0.0000013140000000000852, y: 0.6155246551318653 },\r\n { x: 0.0000013150000000000852, y: 0.6624536182221034 },\r\n { x: 0.0000013160000000000853, y: 0.67987383385797 },\r\n { x: 0.0000013170000000000854, y: 0.6929630847664733 },\r\n { x: 0.0000013180000000000855, y: 0.6660665077125373 },\r\n { x: 0.0000013190000000000855, y: 0.7096574334175468 },\r\n { x: 0.0000013200000000000856, y: 0.7267585634672878 },\r\n { x: 0.0000013210000000000857, y: 0.7099257982334164 },\r\n { x: 0.0000013220000000000858, y: 0.7349264148641211 },\r\n { x: 0.0000013230000000000858, y: 0.7690448908074996 },\r\n { x: 0.000001324000000000086, y: 0.7534382474070918 },\r\n { x: 0.000001325000000000086, y: 0.7644049030276735 },\r\n { x: 0.000001326000000000086, y: 0.7467587676806047 },\r\n { x: 0.0000013270000000000861, y: 0.7669818111777716 },\r\n { x: 0.0000013280000000000862, y: 0.7988575614807502 },\r\n { x: 0.0000013290000000000863, y: 0.7831882572233348 },\r\n { x: 0.0000013300000000000864, y: 0.8365998374971845 },\r\n { x: 0.0000013310000000000864, y: 0.7781463160569243 },\r\n { x: 0.0000013320000000000865, y: 0.7899770842862761 },\r\n { x: 0.0000013330000000000866, y: 0.8006550736377733 },\r\n { x: 0.0000013340000000000867, y: 0.9002449346568221 },\r\n { x: 0.0000013350000000000867, y: 0.8632371565230259 },\r\n { x: 0.0000013360000000000868, y: 0.8861729766886234 },\r\n { x: 0.000001337000000000087, y: 0.847276070381745 },\r\n { x: 0.000001338000000000087, y: 0.9127517184353817 },\r\n { x: 0.000001339000000000087, y: 0.8534266188437545 },\r\n { x: 0.0000013400000000000871, y: 0.8823190628769446 },\r\n { x: 0.0000013410000000000872, y: 0.9112271670028148 },\r\n { x: 0.0000013420000000000873, y: 0.8867842855047384 },\r\n { x: 0.0000013430000000000873, y: 0.9322336072203685 },\r\n { x: 0.0000013440000000000874, y: 0.9252305587856131 },\r\n { x: 0.0000013450000000000875, y: 0.9080531556699117 },\r\n { x: 0.0000013460000000000876, y: 0.9592728298584061 },\r\n { x: 0.0000013470000000000876, y: 0.9537044931110791 },\r\n { x: 0.0000013480000000000877, y: 0.9763400143931343 },\r\n { x: 0.0000013490000000000878, y: 0.9778785299230038 },\r\n { x: 0.0000013500000000000879, y: 1.02335388029879 },\r\n { x: 0.000001351000000000088, y: 1.0301951965852265 },\r\n { x: 0.000001352000000000088, y: 1.0049752184771101 },\r\n { x: 0.000001353000000000088, y: 1.0207330574280284 },\r\n { x: 0.0000013540000000000882, y: 1.0604016122403743 },\r\n { x: 0.0000013550000000000882, y: 1.0763512845981638 },\r\n { x: 0.0000013560000000000883, y: 1.0081616297784155 },\r\n { x: 0.0000013570000000000884, y: 1.0601639039079285 },\r\n { x: 0.0000013580000000000885, y: 1.037881172538787 },\r\n { x: 0.0000013590000000000885, y: 1.0947889707438094 },\r\n { x: 0.0000013600000000000886, y: 1.0638148734476056 },\r\n { x: 0.0000013610000000000887, y: 1.109269641128165 },\r\n { x: 0.0000013620000000000888, y: 1.131991477205069 },\r\n { x: 0.0000013630000000000888, y: 1.0809993260950888 },\r\n { x: 0.000001364000000000089, y: 1.1406593859177832 },\r\n { x: 0.000001365000000000089, y: 1.1022940906732164 },\r\n { x: 0.000001366000000000089, y: 1.109503884727809 },\r\n { x: 0.0000013670000000000891, y: 1.1530727818792175 },\r\n { x: 0.0000013680000000000892, y: 1.1201052726299028 },\r\n { x: 0.0000013690000000000893, y: 1.1848508584439053 },\r\n { x: 0.0000013700000000000894, y: 1.1393971861846335 },\r\n { x: 0.0000013710000000000894, y: 1.1868523171957746 },\r\n { x: 0.0000013720000000000895, y: 1.1927822129675518 },\r\n { x: 0.0000013730000000000896, y: 1.2262264561900362 },\r\n { x: 0.0000013740000000000897, y: 1.2145199307800636 },\r\n { x: 0.0000013750000000000897, y: 1.1865584481971507 },\r\n { x: 0.0000013760000000000898, y: 1.24932341609842 },\r\n { x: 0.00000137700000000009, y: 1.2289433580721276 },\r\n { x: 0.00000137800000000009, y: 1.233498062275379 },\r\n { x: 0.00000137900000000009, y: 1.2013012874965872 },\r\n { x: 0.0000013800000000000901, y: 1.2541024503936453 },\r\n { x: 0.0000013810000000000902, y: 1.260847737848186 },\r\n { x: 0.0000013820000000000903, y: 1.2540716847222866 },\r\n { x: 0.0000013830000000000904, y: 1.253580933646218 },\r\n { x: 0.0000013840000000000904, y: 1.2977099253491804 },\r\n { x: 0.0000013850000000000905, y: 1.3042756904890374 },\r\n { x: 0.0000013860000000000906, y: 1.3102778099058368 },\r\n { x: 0.0000013870000000000907, y: 1.3079842329637883 },\r\n { x: 0.0000013880000000000907, y: 1.279246923386455 },\r\n { x: 0.0000013890000000000908, y: 1.3240327335338125 },\r\n { x: 0.0000013900000000000909, y: 1.3052053262606482 },\r\n { x: 0.000001391000000000091, y: 1.3420997940341681 },\r\n { x: 0.000001392000000000091, y: 1.3175633048625737 },\r\n { x: 0.000001393000000000091, y: 1.3319689879743344 },\r\n { x: 0.0000013940000000000912, y: 1.3243179210992126 },\r\n { x: 0.0000013950000000000913, y: 1.3305423519846902 },\r\n { x: 0.0000013960000000000913, y: 1.3470543963602295 },\r\n { x: 0.0000013970000000000914, y: 1.3453053583704047 },\r\n { x: 0.0000013980000000000915, y: 1.3985414163076368 },\r\n { x: 0.0000013990000000000916, y: 1.3523447467162584 },\r\n { x: 0.0000014000000000000916, y: 1.4175969014857355 },\r\n { x: 0.0000014010000000000917, y: 1.422805794341122 },\r\n { x: 0.0000014020000000000918, y: 1.3827020373009486 },\r\n { x: 0.0000014030000000000919, y: 1.419026855558873 },\r\n { x: 0.000001404000000000092, y: 1.4474092185770062 },\r\n { x: 0.000001405000000000092, y: 1.4336613275978254 },\r\n { x: 0.000001406000000000092, y: 1.435761775780304 },\r\n { x: 0.0000014070000000000922, y: 1.479037987164875 },\r\n { x: 0.0000014080000000000922, y: 1.4204867184247094 },\r\n { x: 0.0000014090000000000923, y: 1.4253652526048908 },\r\n { x: 0.0000014100000000000924, y: 1.4825068358351217 },\r\n { x: 0.0000014110000000000925, y: 1.4625566089324982 },\r\n { x: 0.0000014120000000000925, y: 1.44479121833187 },\r\n { x: 0.0000014130000000000926, y: 1.490633320624915 },\r\n { x: 0.0000014140000000000927, y: 1.4571191809168724 },\r\n { x: 0.0000014150000000000928, y: 1.479070756508637 },\r\n { x: 0.0000014160000000000928, y: 1.47201571523662 },\r\n { x: 0.000001417000000000093, y: 1.5089304910268952 },\r\n { x: 0.000001418000000000093, y: 1.5016359101324117 },\r\n { x: 0.000001419000000000093, y: 1.5402289028349656 },\r\n { x: 0.0000014200000000000931, y: 1.4996123374523933 },\r\n { x: 0.0000014210000000000932, y: 1.5390983947862773 },\r\n { x: 0.0000014220000000000933, y: 1.573380257701024 },\r\n { x: 0.0000014230000000000934, y: 1.545228658728816 },\r\n { x: 0.0000014240000000000934, y: 1.5182315898604775 },\r\n { x: 0.0000014250000000000935, y: 1.5288565986743126 },\r\n { x: 0.0000014260000000000936, y: 1.550765932220956 },\r\n { x: 0.0000014270000000000937, y: 1.539844056031576 },\r\n { x: 0.0000014280000000000937, y: 1.6072188955842586 },\r\n { x: 0.0000014290000000000938, y: 1.5637666683921325 },\r\n { x: 0.0000014300000000000939, y: 1.5926528672933669 },\r\n { x: 0.000001431000000000094, y: 1.6006688884094726 },\r\n { x: 0.000001432000000000094, y: 1.5808575980645503 },\r\n { x: 0.0000014330000000000941, y: 1.5818714452269909 },\r\n { x: 0.0000014340000000000942, y: 1.6104324510826464 },\r\n { x: 0.0000014350000000000943, y: 1.6109894062563763 },\r\n { x: 0.0000014360000000000943, y: 1.613775566543623 },\r\n { x: 0.0000014370000000000944, y: 1.5879502582947922 },\r\n { x: 0.0000014380000000000945, y: 1.6509233363230875 },\r\n { x: 0.0000014390000000000946, y: 1.666832074364236 },\r\n { x: 0.0000014400000000000946, y: 1.617697621024788 },\r\n { x: 0.0000014410000000000947, y: 1.6215467511000008 },\r\n { x: 0.0000014420000000000948, y: 1.6350247530000641 },\r\n { x: 0.0000014430000000000949, y: 1.6573130899160686 },\r\n { x: 0.000001444000000000095, y: 1.6472290993325687 },\r\n { x: 0.000001445000000000095, y: 1.6528361255604989 },\r\n { x: 0.000001446000000000095, y: 1.6752075728222795 },\r\n { x: 0.0000014470000000000952, y: 1.6604596065985828 },\r\n { x: 0.0000014480000000000952, y: 1.7174934450483135 },\r\n { x: 0.0000014490000000000953, y: 1.7151268639704775 },\r\n { x: 0.0000014500000000000954, y: 1.6774700480466092 },\r\n { x: 0.0000014510000000000955, y: 1.6605459562773377 },\r\n { x: 0.0000014520000000000955, y: 1.6631179816046038 },\r\n { x: 0.0000014530000000000956, y: 1.6734516272150848 },\r\n { x: 0.0000014540000000000957, y: 1.7057702302492914 },\r\n { x: 0.0000014550000000000958, y: 1.714602100117394 },\r\n { x: 0.0000014560000000000958, y: 1.7032063357622889 },\r\n { x: 0.000001457000000000096, y: 1.6828565751266131 },\r\n { x: 0.000001458000000000096, y: 1.7074587889390729 },\r\n { x: 0.000001459000000000096, y: 1.717877649452109 },\r\n { x: 0.0000014600000000000961, y: 1.7574421897984218 },\r\n { x: 0.0000014610000000000962, y: 1.7141339602267018 },\r\n { x: 0.0000014620000000000963, y: 1.7666450413502615 },\r\n { x: 0.0000014630000000000964, y: 1.7666094454459231 },\r\n { x: 0.0000014640000000000964, y: 1.7846373614348021 },\r\n { x: 0.0000014650000000000965, y: 1.7216312395800037 },\r\n { x: 0.0000014660000000000966, y: 1.7478189309272825 },\r\n { x: 0.0000014670000000000967, y: 1.7536177757822449 },\r\n { x: 0.0000014680000000000967, y: 1.7635447863280753 },\r\n { x: 0.0000014690000000000968, y: 1.7814573045479227 },\r\n { x: 0.0000014700000000000969, y: 1.789039254345991 },\r\n { x: 0.000001471000000000097, y: 1.7697375578374506 },\r\n { x: 0.000001472000000000097, y: 1.7675320681639766 },\r\n { x: 0.0000014730000000000971, y: 1.7701851453220134 },\r\n { x: 0.0000014740000000000972, y: 1.78337529058658 },\r\n { x: 0.0000014750000000000973, y: 1.7742950488647922 },\r\n { x: 0.0000014760000000000973, y: 1.7653274475326501 },\r\n { x: 0.0000014770000000000974, y: 1.8301639684150808 },\r\n { x: 0.0000014780000000000975, y: 1.8068433596873197 },\r\n { x: 0.0000014790000000000976, y: 1.8238155093492354 },\r\n { x: 0.0000014800000000000976, y: 1.7951873008280588 },\r\n { x: 0.0000014810000000000977, y: 1.8049504352580952 },\r\n { x: 0.0000014820000000000978, y: 1.780118923235781 },\r\n { x: 0.0000014830000000000979, y: 1.8370895852672278 },\r\n { x: 0.000001484000000000098, y: 1.8102842649232616 },\r\n { x: 0.000001485000000000098, y: 1.8142034505414075 },\r\n { x: 0.000001486000000000098, y: 1.8550458803647334 },\r\n { x: 0.0000014870000000000982, y: 1.8063987736343825 },\r\n { x: 0.0000014880000000000982, y: 1.803316412026017 },\r\n { x: 0.0000014890000000000983, y: 1.8275014476617208 },\r\n { x: 0.0000014900000000000984, y: 1.8345056995195583 },\r\n { x: 0.0000014910000000000985, y: 1.8235958930130387 },\r\n { x: 0.0000014920000000000985, y: 1.8685153496704994 },\r\n { x: 0.0000014930000000000986, y: 1.8507441695712015 },\r\n { x: 0.0000014940000000000987, y: 1.8607858897062826 },\r\n { x: 0.0000014950000000000988, y: 1.812694211987892 },\r\n { x: 0.0000014960000000000988, y: 1.83434609025351 },\r\n { x: 0.000001497000000000099, y: 1.8532545374843148 },\r\n { x: 0.000001498000000000099, y: 1.8643854446855914 },\r\n { x: 0.000001499000000000099, y: 1.8243497264912738 },\r\n { x: 0.0000015000000000000991, y: 1.8925134014688394 },\r\n { x: 0.0000015010000000000992, y: 1.860953548271042 },\r\n { x: 0.0000015020000000000993, y: 1.8785196325281608 },\r\n { x: 0.0000015030000000000994, y: 1.861150942623333 },\r\n { x: 0.0000015040000000000994, y: 1.8797006105166452 },\r\n { x: 0.0000015050000000000995, y: 1.8376681034290774 },\r\n { x: 0.0000015060000000000996, y: 1.8644634280071186 },\r\n { x: 0.0000015070000000000997, y: 1.8862993891068205 },\r\n { x: 0.0000015080000000000997, y: 1.8334242315716305 },\r\n { x: 0.0000015090000000000998, y: 1.851266129348199 },\r\n { x: 0.0000015100000000000999, y: 1.887588938564708 },\r\n { x: 0.0000015110000000001, y: 1.8662547374747216 },\r\n { x: 0.0000015120000000001, y: 1.8816369582640442 },\r\n { x: 0.0000015130000000001001, y: 1.8528951303022463 },\r\n { x: 0.0000015140000000001002, y: 1.8713252732134174 },\r\n { x: 0.0000015150000000001003, y: 1.8908649227574983 },\r\n { x: 0.0000015160000000001003, y: 1.906689942063815 },\r\n { x: 0.0000015170000000001004, y: 1.8868777950272633 },\r\n { x: 0.0000015180000000001005, y: 1.862199690584565 },\r\n { x: 0.0000015190000000001006, y: 1.8789739954545102 },\r\n { x: 0.0000015200000000001006, y: 1.8689118798688504 },\r\n { x: 0.0000015210000000001007, y: 1.9119499732277851 },\r\n { x: 0.0000015220000000001008, y: 1.9152563937616063 },\r\n { x: 0.0000015230000000001009, y: 1.9220510082439022 },\r\n { x: 0.000001524000000000101, y: 1.8703992835651486 },\r\n { x: 0.000001525000000000101, y: 1.8856038884385498 },\r\n { x: 0.000001526000000000101, y: 1.8984454725585482 },\r\n { x: 0.0000015270000000001012, y: 1.8844721673166929 },\r\n { x: 0.0000015280000000001012, y: 1.8925789410893754 },\r\n { x: 0.0000015290000000001013, y: 1.8922685412659606 },\r\n { x: 0.0000015300000000001014, y: 1.8836883595875777 },\r\n { x: 0.0000015310000000001015, y: 1.9047122803007412 },\r\n { x: 0.0000015320000000001015, y: 1.9296797790253686 },\r\n { x: 0.0000015330000000001016, y: 1.9261026261678198 },\r\n { x: 0.0000015340000000001017, y: 1.8868162588437538 },\r\n { x: 0.0000015350000000001018, y: 1.8959553657375319 },\r\n { x: 0.0000015360000000001018, y: 1.8674549688769102 },\r\n { x: 0.000001537000000000102, y: 1.8902671543748741 },\r\n { x: 0.000001538000000000102, y: 1.8667785130986145 },\r\n { x: 0.000001539000000000102, y: 1.9129225960754155 },\r\n { x: 0.0000015400000000001021, y: 1.8977869742151219 },\r\n { x: 0.0000015410000000001022, y: 1.9131871359736343 },\r\n { x: 0.0000015420000000001023, y: 1.9047930619613263 },\r\n { x: 0.0000015430000000001024, y: 1.8947747207071641 },\r\n { x: 0.0000015440000000001024, y: 1.8964381746455443 },\r\n { x: 0.0000015450000000001025, y: 1.9079773570878646 },\r\n { x: 0.0000015460000000001026, y: 1.9384554069184756 },\r\n { x: 0.0000015470000000001027, y: 1.8728636196128705 },\r\n { x: 0.0000015480000000001027, y: 1.8812995334068285 },\r\n { x: 0.0000015490000000001028, y: 1.9418367521610471 },\r\n { x: 0.000001550000000000103, y: 1.9355705222299138 },\r\n { x: 0.000001551000000000103, y: 1.90894487787589 },\r\n { x: 0.000001552000000000103, y: 1.8818579276871013 },\r\n { x: 0.0000015530000000001031, y: 1.8770799847287651 },\r\n { x: 0.0000015540000000001032, y: 1.9044930141630907 },\r\n { x: 0.0000015550000000001033, y: 1.8661651693930084 },\r\n { x: 0.0000015560000000001033, y: 1.907791817955513 },\r\n { x: 0.0000015570000000001034, y: 1.8729318308052993 },\r\n { x: 0.0000015580000000001035, y: 1.8732953225250497 },\r\n { x: 0.0000015590000000001036, y: 1.8609196273032926 },\r\n { x: 0.0000015600000000001036, y: 1.916577448889704 },\r\n { x: 0.0000015610000000001037, y: 1.876224822962021 },\r\n { x: 0.0000015620000000001038, y: 1.8713390808416641 },\r\n { x: 0.0000015630000000001039, y: 1.8824630708570054 },\r\n { x: 0.000001564000000000104, y: 1.8873740345399652 },\r\n { x: 0.000001565000000000104, y: 1.863647444573023 },\r\n { x: 0.000001566000000000104, y: 1.875114611514498 },\r\n { x: 0.0000015670000000001042, y: 1.874582951543223 },\r\n { x: 0.0000015680000000001042, y: 1.9212647970730914 },\r\n { x: 0.0000015690000000001043, y: 1.8685298585342047 },\r\n { x: 0.0000015700000000001044, y: 1.894426012738697 },\r\n { x: 0.0000015710000000001045, y: 1.9170473633939735 },\r\n { x: 0.0000015720000000001046, y: 1.8853544704646132 },\r\n { x: 0.0000015730000000001046, y: 1.889809335241923 },\r\n { x: 0.0000015740000000001047, y: 1.9165978128993935 },\r\n { x: 0.0000015750000000001048, y: 1.8913963010581722 },\r\n { x: 0.0000015760000000001049, y: 1.8736515303059285 },\r\n { x: 0.000001577000000000105, y: 1.9152477730259942 },\r\n { x: 0.000001578000000000105, y: 1.8440540277067565 },\r\n { x: 0.000001579000000000105, y: 1.9122620588824573 },\r\n { x: 0.0000015800000000001052, y: 1.8658959039505405 },\r\n { x: 0.0000015810000000001052, y: 1.847270619491048 },\r\n { x: 0.0000015820000000001053, y: 1.8999229757027456 },\r\n { x: 0.0000015830000000001054, y: 1.8506686930094023 },\r\n { x: 0.0000015840000000001055, y: 1.8586880732445 },\r\n { x: 0.0000015850000000001055, y: 1.874972060371563 },\r\n { x: 0.0000015860000000001056, y: 1.8704564391777614 },\r\n { x: 0.0000015870000000001057, y: 1.8698480599377294 },\r\n { x: 0.0000015880000000001058, y: 1.8482757147947744 },\r\n { x: 0.0000015890000000001058, y: 1.8424217848865307 },\r\n { x: 0.000001590000000000106, y: 1.8233781582445685 },\r\n { x: 0.000001591000000000106, y: 1.8702386320216384 },\r\n { x: 0.000001592000000000106, y: 1.8859127016120325 },\r\n { x: 0.0000015930000000001061, y: 1.878276160473116 },\r\n { x: 0.0000015940000000001062, y: 1.8677504404226315 },\r\n { x: 0.0000015950000000001063, y: 1.8632021353360044 },\r\n { x: 0.0000015960000000001064, y: 1.8322785935685886 },\r\n { x: 0.0000015970000000001064, y: 1.8391758023953622 },\r\n { x: 0.0000015980000000001065, y: 1.8096176702193707 },\r\n { x: 0.0000015990000000001066, y: 1.855034617913229 },\r\n { x: 0.0000016000000000001067, y: 1.8482835294888607 },\r\n { x: 0.0000016010000000001067, y: 1.835833214087766 },\r\n { x: 0.0000016020000000001068, y: 1.8052166331553055 },\r\n { x: 0.0000016030000000001069, y: 1.7902894678501065 },\r\n { x: 0.000001604000000000107, y: 1.8369923125350067 },\r\n { x: 0.000001605000000000107, y: 1.7922647488696313 },\r\n { x: 0.000001606000000000107, y: 1.7934672190883718 },\r\n { x: 0.0000016070000000001072, y: 1.8048890571115532 },\r\n { x: 0.0000016080000000001073, y: 1.8092032577848933 },\r\n { x: 0.0000016090000000001073, y: 1.8399940448264334 },\r\n { x: 0.0000016100000000001074, y: 1.7628483295584574 },\r\n { x: 0.0000016110000000001075, y: 1.7700920809298333 },\r\n { x: 0.0000016120000000001076, y: 1.8082683127805284 },\r\n { x: 0.0000016130000000001076, y: 1.810419344399425 },\r\n { x: 0.0000016140000000001077, y: 1.7842842877871867 },\r\n { x: 0.0000016150000000001078, y: 1.746427787110012 },\r\n { x: 0.0000016160000000001079, y: 1.7681242568510784 },\r\n { x: 0.000001617000000000108, y: 1.771804533141493 },\r\n { x: 0.000001618000000000108, y: 1.7829456494665994 },\r\n { x: 0.000001619000000000108, y: 1.762423417301352 },\r\n { x: 0.0000016200000000001082, y: 1.790192252579323 },\r\n { x: 0.0000016210000000001082, y: 1.7701955101310594 },\r\n { x: 0.0000016220000000001083, y: 1.7318761053597422 },\r\n { x: 0.0000016230000000001084, y: 1.728154975427654 },\r\n { x: 0.0000016240000000001085, y: 1.7522174422126358 },\r\n { x: 0.0000016250000000001085, y: 1.754419511878992 },\r\n { x: 0.0000016260000000001086, y: 1.7658995727361002 },\r\n { x: 0.0000016270000000001087, y: 1.7750836025173136 },\r\n { x: 0.0000016280000000001088, y: 1.705238850494079 },\r\n { x: 0.0000016290000000001088, y: 1.7457692846988404 },\r\n { x: 0.000001630000000000109, y: 1.7408691923139077 },\r\n { x: 0.000001631000000000109, y: 1.7172516233835076 },\r\n { x: 0.000001632000000000109, y: 1.723647547761742 },\r\n { x: 0.0000016330000000001091, y: 1.7142232962221842 },\r\n { x: 0.0000016340000000001092, y: 1.7319837944583334 },\r\n { x: 0.0000016350000000001093, y: 1.6789211047699923 },\r\n { x: 0.0000016360000000001094, y: 1.7209111351896542 },\r\n { x: 0.0000016370000000001094, y: 1.6955184701179251 },\r\n { x: 0.0000016380000000001095, y: 1.6661664730067631 },\r\n { x: 0.0000016390000000001096, y: 1.6778569539380102 },\r\n { x: 0.0000016400000000001097, y: 1.6820457372163402 },\r\n { x: 0.0000016410000000001097, y: 1.6751734765509971 },\r\n { x: 0.0000016420000000001098, y: 1.682032300795322 },\r\n { x: 0.0000016430000000001099, y: 1.6845563293536863 },\r\n { x: 0.00000164400000000011, y: 1.661111988270595 },\r\n { x: 0.00000164500000000011, y: 1.6408567993814596 },\r\n { x: 0.0000016460000000001101, y: 1.7008158182401056 },\r\n { x: 0.0000016470000000001102, y: 1.655198412132026 },\r\n { x: 0.0000016480000000001103, y: 1.6275625281928723 },\r\n { x: 0.0000016490000000001103, y: 1.6218242860538887 },\r\n { x: 0.0000016500000000001104, y: 1.6083884732638676 },\r\n { x: 0.0000016510000000001105, y: 1.6673248127665845 },\r\n { x: 0.0000016520000000001106, y: 1.6403953293339677 },\r\n { x: 0.0000016530000000001106, y: 1.6608722206893922 },\r\n { x: 0.0000016540000000001107, y: 1.646038983934043 },\r\n { x: 0.0000016550000000001108, y: 1.5938910702902471 },\r\n { x: 0.0000016560000000001109, y: 1.6510986313855462 },\r\n { x: 0.000001657000000000111, y: 1.62686701385475 },\r\n { x: 0.000001658000000000111, y: 1.5998921901900898 },\r\n { x: 0.000001659000000000111, y: 1.6245876659849168 },\r\n { x: 0.0000016600000000001112, y: 1.5622047901252105 },\r\n { x: 0.0000016610000000001112, y: 1.5742038366017066 },\r\n { x: 0.0000016620000000001113, y: 1.5611199997048664 },\r\n { x: 0.0000016630000000001114, y: 1.5871588220820974 },\r\n { x: 0.0000016640000000001115, y: 1.6075196228608475 },\r\n { x: 0.0000016650000000001115, y: 1.5421904485613767 },\r\n { x: 0.0000016660000000001116, y: 1.59629100663841 },\r\n { x: 0.0000016670000000001117, y: 1.5264660518445645 },\r\n { x: 0.0000016680000000001118, y: 1.5769237392862725 },\r\n { x: 0.0000016690000000001118, y: 1.5398858098540076 },\r\n { x: 0.000001670000000000112, y: 1.5534801961145324 },\r\n { x: 0.000001671000000000112, y: 1.5666416319487044 },\r\n { x: 0.000001672000000000112, y: 1.55200225135598 },\r\n { x: 0.0000016730000000001121, y: 1.5235845706990685 },\r\n { x: 0.0000016740000000001122, y: 1.5395352966628106 },\r\n { x: 0.0000016750000000001123, y: 1.5084874648810562 },\r\n { x: 0.0000016760000000001124, y: 1.5337002821845365 },\r\n { x: 0.0000016770000000001124, y: 1.4772938546664136 },\r\n { x: 0.0000016780000000001125, y: 1.5076062000475374 },\r\n { x: 0.0000016790000000001126, y: 1.5024882602525487 },\r\n { x: 0.0000016800000000001127, y: 1.4965851687817378 },\r\n { x: 0.0000016810000000001127, y: 1.499257658518879 },\r\n { x: 0.0000016820000000001128, y: 1.465534360190667 },\r\n { x: 0.0000016830000000001129, y: 1.4565746226363188 },\r\n { x: 0.000001684000000000113, y: 1.4664450594174712 },\r\n { x: 0.000001685000000000113, y: 1.4903293473080246 },\r\n { x: 0.0000016860000000001131, y: 1.4598304175366217 },\r\n { x: 0.0000016870000000001132, y: 1.4690706555375441 },\r\n { x: 0.0000016880000000001133, y: 1.4253871744836082 },\r\n { x: 0.0000016890000000001133, y: 1.4711967656571237 },\r\n { x: 0.0000016900000000001134, y: 1.4258275003680279 },\r\n { x: 0.0000016910000000001135, y: 1.4371963096342175 },\r\n { x: 0.0000016920000000001136, y: 1.420695852115151 },\r\n { x: 0.0000016930000000001136, y: 1.4326415536863035 },\r\n { x: 0.0000016940000000001137, y: 1.402635761140759 },\r\n { x: 0.0000016950000000001138, y: 1.441298666200187 },\r\n { x: 0.0000016960000000001139, y: 1.41472873211655 },\r\n { x: 0.000001697000000000114, y: 1.373704858308324 },\r\n { x: 0.000001698000000000114, y: 1.4135179993972475 },\r\n { x: 0.000001699000000000114, y: 1.4107919200075094 },\r\n { x: 0.0000017000000000001142, y: 1.3726186189339955 },\r\n { x: 0.0000017010000000001142, y: 1.3360545434613273 },\r\n { x: 0.0000017020000000001143, y: 1.3527551452603812 },\r\n { x: 0.0000017030000000001144, y: 1.3935391815162788 },\r\n { x: 0.0000017040000000001145, y: 1.3786949932401669 },\r\n { x: 0.0000017050000000001145, y: 1.3816801916099977 },\r\n { x: 0.0000017060000000001146, y: 1.3009986519663972 },\r\n { x: 0.0000017070000000001147, y: 1.3187780210377853 },\r\n { x: 0.0000017080000000001148, y: 1.3412528566768211 },\r\n { x: 0.0000017090000000001148, y: 1.3390480833544698 },\r\n { x: 0.000001710000000000115, y: 1.3056216725558858 },\r\n { x: 0.000001711000000000115, y: 1.2935920935829797 },\r\n { x: 0.000001712000000000115, y: 1.2644650949751886 },\r\n { x: 0.0000017130000000001151, y: 1.290977611408184 },\r\n { x: 0.0000017140000000001152, y: 1.3224101809561863 },\r\n { x: 0.0000017150000000001153, y: 1.278139503493128 },\r\n { x: 0.0000017160000000001154, y: 1.2959032997168354 },\r\n { x: 0.0000017170000000001154, y: 1.2545173717646112 },\r\n { x: 0.0000017180000000001155, y: 1.2292701261735286 },\r\n { x: 0.0000017190000000001156, y: 1.2482130911721452 },\r\n { x: 0.0000017200000000001157, y: 1.278691111474727 },\r\n { x: 0.0000017210000000001157, y: 1.2792566087515185 },\r\n { x: 0.0000017220000000001158, y: 1.2498210816403308 },\r\n { x: 0.000001723000000000116, y: 1.196011818996488 },\r\n { x: 0.000001724000000000116, y: 1.2594618764616352 },\r\n { x: 0.000001725000000000116, y: 1.2115833658757438 },\r\n { x: 0.0000017260000000001161, y: 1.173061215344364 },\r\n { x: 0.0000017270000000001162, y: 1.1716987683385647 },\r\n { x: 0.0000017280000000001163, y: 1.1992386167463802 },\r\n { x: 0.0000017290000000001163, y: 1.1890475561954534 },\r\n { x: 0.0000017300000000001164, y: 1.2142789474410358 },\r\n { x: 0.0000017310000000001165, y: 1.1355387233708554 },\r\n { x: 0.0000017320000000001166, y: 1.1768252613616619 },\r\n { x: 0.0000017330000000001166, y: 1.150082304001767 },\r\n { x: 0.0000017340000000001167, y: 1.1497621747608626 },\r\n { x: 0.0000017350000000001168, y: 1.1364680632348483 },\r\n { x: 0.0000017360000000001169, y: 1.14291978102332 },\r\n { x: 0.000001737000000000117, y: 1.1060580977273025 },\r\n { x: 0.000001738000000000117, y: 1.146401545956996 },\r\n { x: 0.000001739000000000117, y: 1.1107291983398768 },\r\n { x: 0.0000017400000000001172, y: 1.0793723241040567 },\r\n { x: 0.0000017410000000001172, y: 1.0737092073504717 },\r\n { x: 0.0000017420000000001173, y: 1.059155293785555 },\r\n { x: 0.0000017430000000001174, y: 1.1212625228086368 },\r\n { x: 0.0000017440000000001175, y: 1.1122442815110118 },\r\n { x: 0.0000017450000000001175, y: 1.0463752370298995 },\r\n { x: 0.0000017460000000001176, y: 1.0885412605846692 },\r\n { x: 0.0000017470000000001177, y: 1.0751011879270187 },\r\n { x: 0.0000017480000000001178, y: 1.0234236732909958 },\r\n { x: 0.0000017490000000001178, y: 1.0511152033041122 },\r\n { x: 0.000001750000000000118, y: 1.0064275902604922 },\r\n { x: 0.000001751000000000118, y: 1.0482282985548423 },\r\n { x: 0.000001752000000000118, y: 1.037717181632446 },\r\n { x: 0.0000017530000000001181, y: 1.0057200430319189 },\r\n { x: 0.0000017540000000001182, y: 1.0003929114070311 },\r\n { x: 0.0000017550000000001183, y: 1.0060526203316948 },\r\n { x: 0.0000017560000000001184, y: 0.9666791231232204 },\r\n { x: 0.0000017570000000001184, y: 1.011481038250688 },\r\n { x: 0.0000017580000000001185, y: 0.9724848378508939 },\r\n { x: 0.0000017590000000001186, y: 0.9785496578901185 },\r\n { x: 0.0000017600000000001187, y: 0.9669045211641233 },\r\n { x: 0.0000017610000000001187, y: 0.9927616916827425 },\r\n { x: 0.0000017620000000001188, y: 0.931482675695195 },\r\n { x: 0.000001763000000000119, y: 0.979030634139376 },\r\n { x: 0.000001764000000000119, y: 0.9155880976629741 },\r\n { x: 0.000001765000000000119, y: 0.9323797357960899 },\r\n { x: 0.0000017660000000001191, y: 0.9554169758189069 },\r\n { x: 0.0000017670000000001192, y: 0.9259991684993201 },\r\n { x: 0.0000017680000000001193, y: 0.8710583040159814 },\r\n { x: 0.0000017690000000001194, y: 0.928805033109958 },\r\n { x: 0.0000017700000000001194, y: 0.8822771019050856 },\r\n { x: 0.0000017710000000001195, y: 0.8467219574160861 },\r\n { x: 0.0000017720000000001196, y: 0.839532495711053 },\r\n { x: 0.0000017730000000001197, y: 0.8430894295902366 },\r\n { x: 0.0000017740000000001197, y: 0.8617802958582693 },\r\n { x: 0.0000017750000000001198, y: 0.8890574520010209 },\r\n { x: 0.0000017760000000001199, y: 0.8252023196861221 },\r\n { x: 0.00000177700000000012, y: 0.846191166821027 },\r\n { x: 0.00000177800000000012, y: 0.841275853282362 },\r\n { x: 0.00000177900000000012, y: 0.8120198287469949 },\r\n { x: 0.0000017800000000001202, y: 0.845777043375414 },\r\n { x: 0.0000017810000000001203, y: 0.7877953547058272 },\r\n { x: 0.0000017820000000001203, y: 0.7721366231936568 },\r\n { x: 0.0000017830000000001204, y: 0.7601043619508671 },\r\n { x: 0.0000017840000000001205, y: 0.7687626708524489 },\r\n { x: 0.0000017850000000001206, y: 0.7786574016780818 },\r\n { x: 0.0000017860000000001206, y: 0.7963354064030586 },\r\n { x: 0.0000017870000000001207, y: 0.7847265245887479 },\r\n { x: 0.0000017880000000001208, y: 0.7205280862844804 },\r\n { x: 0.0000017890000000001209, y: 0.7688533021835856 },\r\n { x: 0.000001790000000000121, y: 0.7389379897811448 },\r\n { x: 0.000001791000000000121, y: 0.7050691865007874 },\r\n { x: 0.000001792000000000121, y: 0.7534969048243474 },\r\n { x: 0.0000017930000000001212, y: 0.7021183789272125 },\r\n { x: 0.0000017940000000001212, y: 0.6740477136297011 },\r\n { x: 0.0000017950000000001213, y: 0.6994710880776371 },\r\n { x: 0.0000017960000000001214, y: 0.706575908824655 },\r\n { x: 0.0000017970000000001215, y: 0.7062683225914809 },\r\n { x: 0.0000017980000000001215, y: 0.6774476770459507 },\r\n { x: 0.0000017990000000001216, y: 0.6460618263174157 },\r\n { x: 0.0000018000000000001217, y: 0.629092275171784 },\r\n { x: 0.0000018010000000001218, y: 0.6793268556847807 },\r\n { x: 0.0000018020000000001218, y: 0.6719283287295943 },\r\n { x: 0.000001803000000000122, y: 0.6444965771338297 },\r\n { x: 0.000001804000000000122, y: 0.630050139732022 },\r\n { x: 0.000001805000000000122, y: 0.639818804647739 },\r\n { x: 0.0000018060000000001221, y: 0.5988363361951942 },\r\n { x: 0.0000018070000000001222, y: 0.6357218144748128 },\r\n { x: 0.0000018080000000001223, y: 0.596596571869268 },\r\n { x: 0.0000018090000000001224, y: 0.5539127645942263 },\r\n { x: 0.0000018100000000001224, y: 0.5969328899378453 },\r\n { x: 0.0000018110000000001225, y: 0.6070207878621521 },\r\n { x: 0.0000018120000000001226, y: 0.5578158944719761 },\r\n { x: 0.0000018130000000001227, y: 0.5383347922654027 },\r\n { x: 0.0000018140000000001227, y: 0.5384678172646908 },\r\n { x: 0.0000018150000000001228, y: 0.5203470199057184 },\r\n { x: 0.0000018160000000001229, y: 0.5143523944008801 },\r\n { x: 0.000001817000000000123, y: 0.5497136380511192 },\r\n { x: 0.000001818000000000123, y: 0.5207715252244023 },\r\n { x: 0.0000018190000000001231, y: 0.533778780400845 },\r\n { x: 0.0000018200000000001232, y: 0.4721907228628809 },\r\n { x: 0.0000018210000000001233, y: 0.5083521149433681 },\r\n { x: 0.0000018220000000001233, y: 0.4670134659107506 },\r\n { x: 0.0000018230000000001234, y: 0.4667912556292909 },\r\n { x: 0.0000018240000000001235, y: 0.5119507212408104 },\r\n { x: 0.0000018250000000001236, y: 0.48461479425898735 },\r\n { x: 0.0000018260000000001236, y: 0.48850297873101833 },\r\n { x: 0.0000018270000000001237, y: 0.46630847180215085 },\r\n { x: 0.0000018280000000001238, y: 0.4742941857950925 },\r\n { x: 0.0000018290000000001239, y: 0.41759232425854625 },\r\n { x: 0.000001830000000000124, y: 0.45469903467898154 },\r\n { x: 0.000001831000000000124, y: 0.381706326626884 },\r\n { x: 0.000001832000000000124, y: 0.4101451045780741 },\r\n { x: 0.0000018330000000001242, y: 0.41192851786047635 },\r\n { x: 0.0000018340000000001242, y: 0.3794438058066927 },\r\n { x: 0.0000018350000000001243, y: 0.4223695241692824 },\r\n { x: 0.0000018360000000001244, y: 0.388420389959051 },\r\n { x: 0.0000018370000000001245, y: 0.3729004606803574 },\r\n { x: 0.0000018380000000001245, y: 0.32709835757397876 },\r\n { x: 0.0000018390000000001246, y: 0.36317929926128756 },\r\n { x: 0.0000018400000000001247, y: 0.3500921063811527 },\r\n { x: 0.0000018410000000001248, y: 0.3134417717562017 },\r\n { x: 0.0000018420000000001248, y: 0.34047534978995514 },\r\n { x: 0.000001843000000000125, y: 0.35212934913446436 },\r\n { x: 0.000001844000000000125, y: 0.32808289003474056 },\r\n { x: 0.000001845000000000125, y: 0.30247128106412186 },\r\n { x: 0.0000018460000000001251, y: 0.31952707294678734 },\r\n { x: 0.0000018470000000001252, y: 0.2958033508946068 },\r\n { x: 0.0000018480000000001253, y: 0.27055301451369307 },\r\n { x: 0.0000018490000000001254, y: 0.2878705361828219 },\r\n { x: 0.0000018500000000001254, y: 0.30193324682836054 },\r\n { x: 0.0000018510000000001255, y: 0.2669150813875294 },\r\n { x: 0.0000018520000000001256, y: 0.253075388812941 },\r\n { x: 0.0000018530000000001257, y: 0.2317633661579683 },\r\n { x: 0.0000018540000000001257, y: 0.2126325869905244 },\r\n { x: 0.0000018550000000001258, y: 0.23592295789419557 },\r\n { x: 0.0000018560000000001259, y: 0.20043996321052243 },\r\n { x: 0.000001857000000000126, y: 0.2427672005856332 },\r\n { x: 0.000001858000000000126, y: 0.1932373001356702 },\r\n { x: 0.0000018590000000001261, y: 0.2103132746601908 },\r\n { x: 0.0000018600000000001262, y: 0.22499910870478354 },\r\n { x: 0.0000018610000000001263, y: 0.1781844591542755 },\r\n { x: 0.0000018620000000001263, y: 0.16638747989499747 },\r\n { x: 0.0000018630000000001264, y: 0.133789010706234 },\r\n { x: 0.0000018640000000001265, y: 0.1375886595425538 },\r\n { x: 0.0000018650000000001266, y: 0.16769615462187587 },\r\n { x: 0.0000018660000000001266, y: 0.17503074430186494 },\r\n { x: 0.0000018670000000001267, y: 0.1667015077365376 },\r\n { x: 0.0000018680000000001268, y: 0.1586269597245909 },\r\n { x: 0.0000018690000000001269, y: 0.09258644945132447 },\r\n { x: 0.000001870000000000127, y: 0.09418687166919149 },\r\n { x: 0.000001871000000000127, y: 0.08957902890101409 },\r\n { x: 0.000001872000000000127, y: 0.06773552419923072 },\r\n { x: 0.0000018730000000001272, y: 0.06317479021103092 },\r\n { x: 0.0000018740000000001272, y: 0.08621135433255578 },\r\n { x: 0.0000018750000000001273, y: 0.05613288564580528 },\r\n { x: 0.0000018760000000001274, y: 0.09232407769802704 },\r\n { x: 0.0000018770000000001275, y: 0.07160918405927019 },\r\n { x: 0.0000018780000000001275, y: 0.05760749187396033 },\r\n { x: 0.0000018790000000001276, y: 0.04901624811734664 },\r\n { x: 0.0000018800000000001277, y: 0.04742764542586185 },\r\n { x: 0.0000018810000000001278, y: 0.04590013587805898 },\r\n { x: 0.0000018820000000001278, y: 0.02858992163133199 },\r\n { x: 0.000001883000000000128, y: 0.005423800492616123 },\r\n { x: 0.000001884000000000128, y: 0.02429193335637827 },\r\n { x: 0.000001885000000000128, y: 0.013783369487446169 },\r\n { x: 0.0000018860000000001281, y: -0.011016606032124964 },\r\n { x: 0.0000018870000000001282, y: 0.022756802400864536 },\r\n { x: 0.0000018880000000001283, y: -0.04641405252828169 },\r\n { x: 0.0000018890000000001284, y: -0.028083359283275048 },\r\n { x: 0.0000018900000000001284, y: -0.030084429642825695 },\r\n { x: 0.0000018910000000001285, y: -0.061119889770175566 },\r\n { x: 0.0000018920000000001286, y: -0.09014411960715357 },\r\n { x: 0.0000018930000000001287, y: -0.0828155241966775 },\r\n { x: 0.0000018940000000001287, y: -0.044630610385212245 },\r\n { x: 0.0000018950000000001288, y: -0.06624098809924073 },\r\n { x: 0.0000018960000000001289, y: -0.09324443236856593 },\r\n { x: 0.000001897000000000129, y: -0.09949133613352308 },\r\n { x: 0.000001898000000000129, y: -0.059564000091321866 },\r\n { x: 0.0000018990000000001291, y: -0.09114867242379796 },\r\n { x: 0.0000019000000000001292, y: -0.12978941188171944 },\r\n { x: 0.0000019010000000001293, y: -0.11641813826958265 },\r\n { x: 0.0000019020000000001293, y: -0.10410161092157948 },\r\n { x: 0.0000019030000000001294, y: -0.11103011075741599 },\r\n { x: 0.0000019040000000001295, y: -0.14553718791264772 },\r\n { x: 0.0000019050000000001296, y: -0.147572981864493 },\r\n { x: 0.0000019060000000001296, y: -0.13031804905691777 },\r\n { x: 0.0000019070000000001297, y: -0.1851688750533873 },\r\n { x: 0.00000190800000000013, y: -0.15143955673946294 },\r\n { x: 0.00000190900000000013, y: -0.17001815677985424 },\r\n { x: 0.00000191000000000013, y: -0.16251946193823488 },\r\n { x: 0.00000191100000000013, y: -0.21493036135421975 },\r\n { x: 0.00000191200000000013, y: -0.20434216017903817 },\r\n { x: 0.00000191300000000013, y: -0.17924714052967403 },\r\n { x: 0.0000019140000000001302, y: -0.20558806632096843 },\r\n { x: 0.0000019150000000001303, y: -0.18568128678497212 },\r\n { x: 0.0000019160000000001304, y: -0.210093567946274 },\r\n { x: 0.0000019170000000001305, y: -0.26819311660233314 },\r\n { x: 0.0000019180000000001305, y: -0.23817857411332283 },\r\n { x: 0.0000019190000000001306, y: -0.24398843415801152 },\r\n { x: 0.0000019200000000001307, y: -0.24196508315340046 },\r\n { x: 0.0000019210000000001308, y: -0.274304931724491 },\r\n { x: 0.000001922000000000131, y: -0.2609417500211901 },\r\n { x: 0.000001923000000000131, y: -0.27849527707493915 },\r\n { x: 0.000001924000000000131, y: -0.2739161338370364 },\r\n { x: 0.000001925000000000131, y: -0.2699482865215363 },\r\n { x: 0.000001926000000000131, y: -0.27780855318155223 },\r\n { x: 0.0000019270000000001312, y: -0.3247390573972742 },\r\n { x: 0.0000019280000000001313, y: -0.3164763487566581 },\r\n { x: 0.0000019290000000001314, y: -0.30528204879652177 },\r\n { x: 0.0000019300000000001314, y: -0.3281063496408248 },\r\n { x: 0.0000019310000000001315, y: -0.32919674676747884 },\r\n { x: 0.0000019320000000001316, y: -0.35498455756718605 },\r\n { x: 0.0000019330000000001317, y: -0.33544629591367064 },\r\n { x: 0.0000019340000000001317, y: -0.33608049075372937 },\r\n { x: 0.000001935000000000132, y: -0.34603605944204063 },\r\n { x: 0.000001936000000000132, y: -0.3850958417224972 },\r\n { x: 0.000001937000000000132, y: -0.34268614381362766 },\r\n { x: 0.000001938000000000132, y: -0.3916615069361548 },\r\n { x: 0.000001939000000000132, y: -0.3862984562585444 },\r\n { x: 0.000001940000000000132, y: -0.4216026394243932 },\r\n { x: 0.0000019410000000001323, y: -0.36928248393042035 },\r\n { x: 0.0000019420000000001323, y: -0.40189306404810465 },\r\n { x: 0.0000019430000000001324, y: -0.3934414314400235 },\r\n { x: 0.0000019440000000001325, y: -0.42776543227184693 },\r\n { x: 0.0000019450000000001326, y: -0.43440293632840626 },\r\n { x: 0.0000019460000000001326, y: -0.4191035501301289 },\r\n { x: 0.0000019470000000001327, y: -0.4433629905620163 },\r\n { x: 0.000001948000000000133, y: -0.46121805103042807 },\r\n { x: 0.000001949000000000133, y: -0.4716610659187238 },\r\n { x: 0.000001950000000000133, y: -0.47579920044406976 },\r\n { x: 0.000001951000000000133, y: -0.4313459850787053 },\r\n { x: 0.000001952000000000133, y: -0.5123738994824097 },\r\n { x: 0.000001953000000000133, y: -0.46680404977110207 },\r\n { x: 0.0000019540000000001332, y: -0.504416615264248 },\r\n { x: 0.0000019550000000001333, y: -0.4813511752515375 },\r\n { x: 0.0000019560000000001334, y: -0.5076667339324117 },\r\n { x: 0.0000019570000000001335, y: -0.5398511554097921 },\r\n { x: 0.0000019580000000001335, y: -0.5036475488676722 },\r\n { x: 0.0000019590000000001336, y: -0.4857626770104701 },\r\n { x: 0.0000019600000000001337, y: -0.5307612027479378 },\r\n { x: 0.0000019610000000001338, y: -0.5338352765635476 },\r\n { x: 0.000001962000000000134, y: -0.5394790091511877 },\r\n { x: 0.000001963000000000134, y: -0.5364157268208168 },\r\n { x: 0.000001964000000000134, y: -0.5261546973742287 },\r\n { x: 0.000001965000000000134, y: -0.5927599445580012 },\r\n { x: 0.000001966000000000134, y: -0.5421861366976465 },\r\n { x: 0.0000019670000000001342, y: -0.5921944772681971 },\r\n { x: 0.0000019680000000001343, y: -0.597790465523866 },\r\n { x: 0.0000019690000000001344, y: -0.6144523577482467 },\r\n { x: 0.0000019700000000001345, y: -0.5912264084655625 },\r\n { x: 0.0000019710000000001345, y: -0.5729827150843166 },\r\n { x: 0.0000019720000000001346, y: -0.57784533258804 },\r\n { x: 0.0000019730000000001347, y: -0.585805610239716 },\r\n { x: 0.0000019740000000001348, y: -0.6184214520880771 },\r\n { x: 0.000001975000000000135, y: -0.649203399181819 },\r\n { x: 0.000001976000000000135, y: -0.6202538804430577 },\r\n { x: 0.000001977000000000135, y: -0.6022826557909744 },\r\n { x: 0.000001978000000000135, y: -0.6329986164446779 },\r\n { x: 0.000001979000000000135, y: -0.618920588388072 },\r\n { x: 0.000001980000000000135, y: -0.6451001098528613 },\r\n { x: 0.0000019810000000001353, y: -0.6202764877817638 },\r\n { x: 0.0000019820000000001354, y: -0.6244265892190791 },\r\n { x: 0.0000019830000000001354, y: -0.6936699168444022 },\r\n { x: 0.0000019840000000001355, y: -0.6684643142520372 },\r\n { x: 0.0000019850000000001356, y: -0.6856379449776525 },\r\n { x: 0.0000019860000000001357, y: -0.7052326912020868 },\r\n { x: 0.0000019870000000001357, y: -0.6872775923771802 },\r\n { x: 0.000001988000000000136, y: -0.670452883412318 },\r\n { x: 0.000001989000000000136, y: -0.6734325196466604 },\r\n { x: 0.000001990000000000136, y: -0.7082276953759489 },\r\n { x: 0.000001991000000000136, y: -0.7382290226574425 },\r\n { x: 0.000001992000000000136, y: -0.6839080850872912 },\r\n { x: 0.000001993000000000136, y: -0.743900784847232 },\r\n { x: 0.0000019940000000001363, y: -0.7646719011435118 },\r\n { x: 0.0000019950000000001363, y: -0.717200885013258 },\r\n { x: 0.0000019960000000001364, y: -0.7250010129113865 },\r\n { x: 0.0000019970000000001365, y: -0.7523366825136548 },\r\n { x: 0.0000019980000000001366, y: -0.765657961253851 },\r\n { x: 0.0000019990000000001366, y: -0.7884255819669997 },\r\n { x: 0.0000020000000000001367, y: -0.7645731154095298 },\r\n { x: 0.0000020010000000001368, y: -0.7665298098181962 },\r\n { x: 0.000002002000000000137, y: -0.7949515270491656 },\r\n { x: 0.000002003000000000137, y: -0.7892599122083302 },\r\n { x: 0.000002004000000000137, y: -0.8043419108854832 },\r\n { x: 0.000002005000000000137, y: -0.7756148401523104 },\r\n { x: 0.000002006000000000137, y: -0.769416506714911 },\r\n { x: 0.0000020070000000001372, y: -0.7876894578703126 },\r\n { x: 0.0000020080000000001373, y: -0.7957297295185116 },\r\n { x: 0.0000020090000000001374, y: -0.7811228497061362 },\r\n { x: 0.0000020100000000001375, y: -0.7864072428903285 },\r\n { x: 0.0000020110000000001375, y: -0.8418432500737286 },\r\n { x: 0.0000020120000000001376, y: -0.7879182413594504 },\r\n { x: 0.0000020130000000001377, y: -0.7954325274132081 },\r\n { x: 0.0000020140000000001378, y: -0.8231165363390369 },\r\n { x: 0.000002015000000000138, y: -0.8674962827800862 },\r\n { x: 0.000002016000000000138, y: -0.8183887259231337 },\r\n { x: 0.000002017000000000138, y: -0.8137624436228066 },\r\n { x: 0.000002018000000000138, y: -0.8684586228855796 },\r\n { x: 0.000002019000000000138, y: -0.890947095541127 },\r\n { x: 0.000002020000000000138, y: -0.8913091068871473 },\r\n { x: 0.0000020210000000001383, y: -0.8781718339976893 },\r\n { x: 0.0000020220000000001384, y: -0.9046866955588501 },\r\n { x: 0.0000020230000000001384, y: -0.8423356805855133 },\r\n { x: 0.0000020240000000001385, y: -0.8466076164859948 },\r\n { x: 0.0000020250000000001386, y: -0.8841358206078905 },\r\n { x: 0.0000020260000000001387, y: -0.9172006316104219 },\r\n { x: 0.0000020270000000001387, y: -0.9109546931390988 },\r\n { x: 0.000002028000000000139, y: -0.9174968579103381 },\r\n { x: 0.000002029000000000139, y: -0.8716075551075205 },\r\n { x: 0.000002030000000000139, y: -0.8699296349311166 },\r\n { x: 0.000002031000000000139, y: -0.90296407722351 },\r\n { x: 0.000002032000000000139, y: -0.9277027898533693 },\r\n { x: 0.000002033000000000139, y: -0.9048135944177843 },\r\n { x: 0.0000020340000000001393, y: -0.9028026955581575 },\r\n { x: 0.0000020350000000001393, y: -0.9126183563923367 },\r\n { x: 0.0000020360000000001394, y: -0.9542143003347459 },\r\n { x: 0.0000020370000000001395, y: -0.9057740346986957 },\r\n { x: 0.0000020380000000001396, y: -0.9629078209445586 },\r\n { x: 0.0000020390000000001396, y: -0.9094026438664571 },\r\n { x: 0.0000020400000000001397, y: -0.9558778764001176 },\r\n { x: 0.0000020410000000001398, y: -0.9769666190893403 },\r\n { x: 0.00000204200000000014, y: -0.9359181174544778 },\r\n { x: 0.00000204300000000014, y: -0.981088809662785 },\r\n { x: 0.00000204400000000014, y: -0.9789537143919016 },\r\n { x: 0.00000204500000000014, y: -0.9333047536362957 },\r\n { x: 0.00000204600000000014, y: -0.9889485705412342 },\r\n { x: 0.0000020470000000001402, y: -0.977747464526857 },\r\n { x: 0.0000020480000000001403, y: -1.015597318795567 },\r\n { x: 0.0000020490000000001404, y: -0.9818532699972032 },\r\n { x: 0.0000020500000000001405, y: -1.0268027174143752 },\r\n { x: 0.0000020510000000001405, y: -0.9608747574634242 },\r\n { x: 0.0000020520000000001406, y: -1.0215854364802281 },\r\n { x: 0.0000020530000000001407, y: -0.9762352838521732 },\r\n { x: 0.0000020540000000001408, y: -1.0287664209675345 },\r\n { x: 0.000002055000000000141, y: -1.0448408144307286 },\r\n { x: 0.000002056000000000141, y: -1.043894847886768 },\r\n { x: 0.000002057000000000141, y: -1.036080075498768 },\r\n { x: 0.000002058000000000141, y: -1.0368753307921756 },\r\n { x: 0.000002059000000000141, y: -1.0264875487132825 },\r\n { x: 0.0000020600000000001412, y: -1.024030475113556 },\r\n { x: 0.0000020610000000001413, y: -1.045614729630012 },\r\n { x: 0.0000020620000000001414, y: -1.0209801206054478 },\r\n { x: 0.0000020630000000001414, y: -1.0337165417908984 },\r\n { x: 0.0000020640000000001415, y: -1.0080211197530593 },\r\n { x: 0.0000020650000000001416, y: -1.0173128292499731 },\r\n { x: 0.0000020660000000001417, y: -1.0740949372255375 },\r\n { x: 0.0000020670000000001417, y: -1.056149430721851 },\r\n { x: 0.000002068000000000142, y: -1.0666807984844948 },\r\n { x: 0.000002069000000000142, y: -1.053184947626393 },\r\n { x: 0.000002070000000000142, y: -1.089708422368973 },\r\n { x: 0.000002071000000000142, y: -1.0421730521176458 },\r\n { x: 0.000002072000000000142, y: -1.0645104089707633 },\r\n { x: 0.000002073000000000142, y: -1.1075151833002732 },\r\n { x: 0.0000020740000000001423, y: -1.0732942253716746 },\r\n { x: 0.0000020750000000001423, y: -1.0519799092753723 },\r\n { x: 0.0000020760000000001424, y: -1.0830883027181253 },\r\n { x: 0.0000020770000000001425, y: -1.0744323382748378 },\r\n { x: 0.0000020780000000001426, y: -1.0824061164678547 },\r\n { x: 0.0000020790000000001426, y: -1.1072313129783127 },\r\n { x: 0.0000020800000000001427, y: -1.0582448264160995 },\r\n { x: 0.000002081000000000143, y: -1.1289713795240328 },\r\n { x: 0.000002082000000000143, y: -1.0914047127398843 },\r\n { x: 0.000002083000000000143, y: -1.1148746567994705 },\r\n { x: 0.000002084000000000143, y: -1.0865528507310622 },\r\n { x: 0.000002085000000000143, y: -1.0724142677880109 },\r\n { x: 0.000002086000000000143, y: -1.1024906842074884 },\r\n { x: 0.0000020870000000001432, y: -1.0946637312140621 },\r\n { x: 0.0000020880000000001433, y: -1.1541119175527692 },\r\n { x: 0.0000020890000000001434, y: -1.133310661686653 },\r\n { x: 0.0000020900000000001435, y: -1.0983116049556387 },\r\n { x: 0.0000020910000000001435, y: -1.093330643016027 },\r\n { x: 0.0000020920000000001436, y: -1.0917736095879387 },\r\n { x: 0.0000020930000000001437, y: -1.1650635498914457 },\r\n { x: 0.0000020940000000001438, y: -1.1095407157578265 },\r\n { x: 0.000002095000000000144, y: -1.1656614968255092 },\r\n { x: 0.000002096000000000144, y: -1.1060352224021655 },\r\n { x: 0.000002097000000000144, y: -1.1325034867339496 },\r\n { x: 0.000002098000000000144, y: -1.1715055937258096 },\r\n { x: 0.000002099000000000144, y: -1.1344422713785771 },\r\n { x: 0.0000021000000000001442, y: -1.119351852076914 },\r\n { x: 0.0000021010000000001443, y: -1.1329027979150834 },\r\n { x: 0.0000021020000000001444, y: -1.1751661962178672 },\r\n { x: 0.0000021030000000001444, y: -1.1392390449567167 },\r\n { x: 0.0000021040000000001445, y: -1.14642678312887 },\r\n { x: 0.0000021050000000001446, y: -1.1368408341842335 },\r\n { x: 0.0000021060000000001447, y: -1.1307917035716262 },\r\n { x: 0.0000021070000000001447, y: -1.1515139044097298 },\r\n { x: 0.000002108000000000145, y: -1.1918767649650936 },\r\n { x: 0.000002109000000000145, y: -1.1499017603176236 },\r\n { x: 0.000002110000000000145, y: -1.1657717130624003 },\r\n { x: 0.000002111000000000145, y: -1.1901063025797451 },\r\n { x: 0.000002112000000000145, y: -1.1875406627098366 },\r\n { x: 0.000002113000000000145, y: -1.1462588127149231 },\r\n { x: 0.0000021140000000001453, y: -1.1922419553615307 },\r\n { x: 0.0000021150000000001453, y: -1.1682219316553129 },\r\n { x: 0.0000021160000000001454, y: -1.1830653479107394 },\r\n { x: 0.0000021170000000001455, y: -1.1753518681492223 },\r\n { x: 0.0000021180000000001456, y: -1.2085768654552629 },\r\n { x: 0.0000021190000000001456, y: -1.221780302107408 },\r\n { x: 0.0000021200000000001457, y: -1.1790986628657338 },\r\n { x: 0.000002121000000000146, y: -1.1752299314504844 },\r\n { x: 0.000002122000000000146, y: -1.2262975081705525 },\r\n { x: 0.000002123000000000146, y: -1.1547690707308786 },\r\n { x: 0.000002124000000000146, y: -1.155590748589819 },\r\n { x: 0.000002125000000000146, y: -1.2215201107619296 },\r\n { x: 0.000002126000000000146, y: -1.192214232298731 },\r\n { x: 0.0000021270000000001462, y: -1.1976036926673637 },\r\n { x: 0.0000021280000000001463, y: -1.2106667121191867 },\r\n { x: 0.0000021290000000001464, y: -1.1810961522838284 },\r\n { x: 0.0000021300000000001465, y: -1.2294173006177818 },\r\n { x: 0.0000021310000000001465, y: -1.1891311008444585 },\r\n { x: 0.0000021320000000001466, y: -1.2103787790498537 },\r\n { x: 0.0000021330000000001467, y: -1.1738459803287855 },\r\n { x: 0.0000021340000000001468, y: -1.1862068278047035 },\r\n { x: 0.000002135000000000147, y: -1.207573731508814 },\r\n { x: 0.000002136000000000147, y: -1.2149035948322942 },\r\n { x: 0.000002137000000000147, y: -1.2460034483121056 },\r\n { x: 0.000002138000000000147, y: -1.218073011122839 },\r\n { x: 0.000002139000000000147, y: -1.193477306405147 },\r\n { x: 0.0000021400000000001472, y: -1.2206873460940273 },\r\n { x: 0.0000021410000000001473, y: -1.1965849016122774 },\r\n { x: 0.0000021420000000001474, y: -1.1969376647950813 },\r\n { x: 0.0000021430000000001474, y: -1.2092138988385954 },\r\n { x: 0.0000021440000000001475, y: -1.2470580334403962 },\r\n { x: 0.0000021450000000001476, y: -1.1932307726756652 },\r\n { x: 0.0000021460000000001477, y: -1.2503499891913694 },\r\n { x: 0.0000021470000000001477, y: -1.2320580477943053 },\r\n { x: 0.000002148000000000148, y: -1.1976027721262665 },\r\n { x: 0.000002149000000000148, y: -1.2301644295325902 },\r\n { x: 0.000002150000000000148, y: -1.221425317048347 },\r\n { x: 0.000002151000000000148, y: -1.205922758276388 },\r\n { x: 0.000002152000000000148, y: -1.1945979059554424 },\r\n { x: 0.000002153000000000148, y: -1.240158317622497 },\r\n { x: 0.0000021540000000001483, y: -1.2116420584268912 },\r\n { x: 0.0000021550000000001484, y: -1.2258934364843523 },\r\n { x: 0.0000021560000000001484, y: -1.1967845702948345 },\r\n { x: 0.0000021570000000001485, y: -1.24120043270647 },\r\n { x: 0.0000021580000000001486, y: -1.2249432129628346 },\r\n { x: 0.0000021590000000001487, y: -1.2515922712458944 },\r\n { x: 0.0000021600000000001487, y: -1.2211069243383434 },\r\n { x: 0.000002161000000000149, y: -1.261260376327873 },\r\n { x: 0.000002162000000000149, y: -1.2597208700714275 },\r\n { x: 0.000002163000000000149, y: -1.262721729173913 },\r\n { x: 0.000002164000000000149, y: -1.1900986319284 },\r\n { x: 0.000002165000000000149, y: -1.2013695859844655 },\r\n { x: 0.000002166000000000149, y: -1.2062483818664547 },\r\n { x: 0.0000021670000000001493, y: -1.264180942861569 },\r\n { x: 0.0000021680000000001493, y: -1.2063910148407289 },\r\n { x: 0.0000021690000000001494, y: -1.195093747960024 },\r\n { x: 0.0000021700000000001495, y: -1.2540727735025274 },\r\n { x: 0.0000021710000000001496, y: -1.2390252263508523 },\r\n { x: 0.0000021720000000001496, y: -1.2087925330547704 },\r\n { x: 0.0000021730000000001497, y: -1.252038739103907 },\r\n { x: 0.0000021740000000001498, y: -1.2533975676472286 },\r\n { x: 0.00000217500000000015, y: -1.1902217976584448 },\r\n { x: 0.00000217600000000015, y: -1.2200175389814245 },\r\n { x: 0.00000217700000000015, y: -1.2392712135731416 },\r\n { x: 0.00000217800000000015, y: -1.2280501975960687 },\r\n { x: 0.00000217900000000015, y: -1.2475047742887264 },\r\n { x: 0.0000021800000000001502, y: -1.2510222695503483 },\r\n { x: 0.0000021810000000001503, y: -1.1876862560983892 },\r\n { x: 0.0000021820000000001504, y: -1.2584145645790799 },\r\n { x: 0.0000021830000000001505, y: -1.2220408123327722 },\r\n { x: 0.0000021840000000001505, y: -1.2292066542012205 },\r\n { x: 0.0000021850000000001506, y: -1.253557191935308 },\r\n { x: 0.0000021860000000001507, y: -1.1926371990935603 },\r\n { x: 0.0000021870000000001508, y: -1.1886819820084908 },\r\n { x: 0.000002188000000000151, y: -1.2521227410726932 },\r\n { x: 0.000002189000000000151, y: -1.1982815456594678 },\r\n { x: 0.000002190000000000151, y: -1.2304199849701873 },\r\n { x: 0.000002191000000000151, y: -1.196274980750317 },\r\n { x: 0.000002192000000000151, y: -1.2007756687056381 },\r\n { x: 0.000002193000000000151, y: -1.2155285705874976 },\r\n { x: 0.0000021940000000001513, y: -1.1931937974164522 },\r\n { x: 0.0000021950000000001514, y: -1.2121202800913422 },\r\n { x: 0.0000021960000000001514, y: -1.2552513308758757 },\r\n { x: 0.0000021970000000001515, y: -1.2488143341984481 },\r\n { x: 0.0000021980000000001516, y: -1.2169093023486524 },\r\n { x: 0.0000021990000000001517, y: -1.2340277290062873 },\r\n { x: 0.0000022000000000001517, y: -1.184350360653403 },\r\n { x: 0.000002201000000000152, y: -1.2304628952663486 },\r\n { x: 0.000002202000000000152, y: -1.199277070586878 },\r\n { x: 0.000002203000000000152, y: -1.1809330571142898 },\r\n { x: 0.000002204000000000152, y: -1.2214166233868717 },\r\n { x: 0.000002205000000000152, y: -1.180345964878448 },\r\n { x: 0.000002206000000000152, y: -1.239229219607888 },\r\n { x: 0.0000022070000000001523, y: -1.1941495961805357 },\r\n { x: 0.0000022080000000001523, y: -1.1798969823347527 },\r\n { x: 0.0000022090000000001524, y: -1.220777451785606 },\r\n { x: 0.0000022100000000001525, y: -1.1900870364011982 },\r\n { x: 0.0000022110000000001526, y: -1.185167628226522 },\r\n { x: 0.0000022120000000001526, y: -1.20537771589163 },\r\n { x: 0.0000022130000000001527, y: -1.2620121359397163 },\r\n { x: 0.0000022140000000001528, y: -1.2370870492852872 },\r\n { x: 0.000002215000000000153, y: -1.217257498349013 },\r\n { x: 0.000002216000000000153, y: -1.2147858898738997 },\r\n { x: 0.000002217000000000153, y: -1.1995495046945983 },\r\n { x: 0.000002218000000000153, y: -1.2311418132335596 },\r\n { x: 0.000002219000000000153, y: -1.1661146054435807 },\r\n { x: 0.0000022200000000001532, y: -1.189445358182485 },\r\n { x: 0.0000022210000000001533, y: -1.193723532124603 },\r\n { x: 0.0000022220000000001534, y: -1.2205997269585525 },\r\n { x: 0.0000022230000000001535, y: -1.1759438785574856 },\r\n { x: 0.0000022240000000001535, y: -1.1924294438045688 },\r\n { x: 0.0000022250000000001536, y: -1.1752307624750762 },\r\n { x: 0.0000022260000000001537, y: -1.2104636319322517 },\r\n { x: 0.0000022270000000001538, y: -1.155074548308587 },\r\n { x: 0.000002228000000000154, y: -1.1837161430559953 },\r\n { x: 0.000002229000000000154, y: -1.1923890731880866 },\r\n { x: 0.000002230000000000154, y: -1.1937185608674448 },\r\n { x: 0.000002231000000000154, y: -1.1868646120198374 },\r\n { x: 0.000002232000000000154, y: -1.1981177036411008 },\r\n { x: 0.000002233000000000154, y: -1.1372045199941465 },\r\n { x: 0.0000022340000000001543, y: -1.1500947858201753 },\r\n { x: 0.0000022350000000001544, y: -1.1612356802393617 },\r\n { x: 0.0000022360000000001544, y: -1.1732062417515428 },\r\n { x: 0.0000022370000000001545, y: -1.1992861521854046 },\r\n { x: 0.0000022380000000001546, y: -1.1945112082604952 },\r\n { x: 0.0000022390000000001547, y: -1.1760882121467615 },\r\n { x: 0.0000022400000000001547, y: -1.1601113252276647 },\r\n { x: 0.000002241000000000155, y: -1.1439224901223617 },\r\n { x: 0.000002242000000000155, y: -1.1547704321519372 },\r\n { x: 0.000002243000000000155, y: -1.170673766752924 },\r\n { x: 0.000002244000000000155, y: -1.126093179273305 },\r\n { x: 0.000002245000000000155, y: -1.165227583954706 },\r\n { x: 0.000002246000000000155, y: -1.1493644873470203 },\r\n { x: 0.0000022470000000001553, y: -1.1567661294009133 },\r\n { x: 0.0000022480000000001553, y: -1.107782891688032 },\r\n { x: 0.0000022490000000001554, y: -1.15201631887018 },\r\n { x: 0.0000022500000000001555, y: -1.1009009057101333 },\r\n { x: 0.0000022510000000001556, y: -1.1149168603313098 },\r\n { x: 0.0000022520000000001556, y: -1.1672744113046378 },\r\n { x: 0.0000022530000000001557, y: -1.1591160088368864 },\r\n { x: 0.0000022540000000001558, y: -1.1265483337539257 },\r\n { x: 0.000002255000000000156, y: -1.1292095536428317 },\r\n { x: 0.000002256000000000156, y: -1.1588148083431178 },\r\n { x: 0.000002257000000000156, y: -1.150888903458958 },\r\n { x: 0.000002258000000000156, y: -1.1034365029124422 },\r\n { x: 0.000002259000000000156, y: -1.118858677475327 },\r\n { x: 0.0000022600000000001562, y: -1.118025466894398 },\r\n { x: 0.0000022610000000001563, y: -1.1201425447339548 },\r\n { x: 0.0000022620000000001564, y: -1.079348766346186 },\r\n { x: 0.0000022630000000001565, y: -1.0818061281282823 },\r\n { x: 0.0000022640000000001565, y: -1.0816275613263364 },\r\n { x: 0.0000022650000000001566, y: -1.0855372447437086 },\r\n { x: 0.0000022660000000001567, y: -1.1103061208083056 },\r\n { x: 0.0000022670000000001568, y: -1.0678206663156318 },\r\n { x: 0.000002268000000000157, y: -1.0519978857739078 },\r\n { x: 0.000002269000000000157, y: -1.1113132445584515 },\r\n { x: 0.000002270000000000157, y: -1.0769208196942672 },\r\n { x: 0.000002271000000000157, y: -1.0670594454839735 },\r\n { x: 0.000002272000000000157, y: -1.0679897990303937 },\r\n { x: 0.0000022730000000001572, y: -1.1032504454144747 },\r\n { x: 0.0000022740000000001573, y: -1.0547875734564618 },\r\n { x: 0.0000022750000000001574, y: -1.070298090856433 },\r\n { x: 0.0000022760000000001574, y: -1.058545507616113 },\r\n { x: 0.0000022770000000001575, y: -1.032711359509102 },\r\n { x: 0.0000022780000000001576, y: -1.0957870643146737 },\r\n { x: 0.0000022790000000001577, y: -1.0648584519130846 },\r\n { x: 0.0000022800000000001577, y: -1.0177923712607453 },\r\n { x: 0.000002281000000000158, y: -1.0518369844027828 },\r\n { x: 0.000002282000000000158, y: -1.0662998151028957 },\r\n { x: 0.000002283000000000158, y: -1.0516312697026737 },\r\n { x: 0.000002284000000000158, y: -1.0527145248700152 },\r\n { x: 0.000002285000000000158, y: -1.0276906331732636 },\r\n { x: 0.000002286000000000158, y: -1.0517350949331168 },\r\n { x: 0.0000022870000000001583, y: -1.0271290852668449 },\r\n { x: 0.0000022880000000001583, y: -1.0408319080118253 },\r\n { x: 0.0000022890000000001584, y: -1.0497125809983106 },\r\n { x: 0.0000022900000000001585, y: -0.9904775030385523 },\r\n { x: 0.0000022910000000001586, y: -1.0000816901285665 },\r\n { x: 0.0000022920000000001586, y: -1.015584601937064 },\r\n { x: 0.0000022930000000001587, y: -1.007773690505279 },\r\n { x: 0.000002294000000000159, y: -0.9839536945625968 },\r\n { x: 0.000002295000000000159, y: -0.9815773762528389 },\r\n { x: 0.000002296000000000159, y: -1.0152624608434677 },\r\n { x: 0.000002297000000000159, y: -1.002600523745201 },\r\n { x: 0.000002298000000000159, y: -1.0264174750303148 },\r\n { x: 0.000002299000000000159, y: -1.0098950388254664 },\r\n { x: 0.0000023000000000001592, y: -0.9885558817913994 },\r\n { x: 0.0000023010000000001593, y: -1.0201784659098563 },\r\n { x: 0.0000023020000000001594, y: -0.9946775603998603 },\r\n { x: 0.0000023030000000001595, y: -0.9699039220306213 },\r\n { x: 0.0000023040000000001595, y: -1.0043708452905702 },\r\n { x: 0.0000023050000000001596, y: -0.9929122727817833 },\r\n { x: 0.0000023060000000001597, y: -0.9801997149116384 },\r\n { x: 0.0000023070000000001598, y: -0.9871669521845855 },\r\n { x: 0.00000230800000000016, y: -0.9573717698910257 },\r\n { x: 0.00000230900000000016, y: -0.9957282113470034 },\r\n { x: 0.00000231000000000016, y: -0.9393598763056146 },\r\n { x: 0.00000231100000000016, y: -0.9212155933346302 },\r\n { x: 0.00000231200000000016, y: -0.95676706694914 },\r\n { x: 0.0000023130000000001602, y: -0.9424792805278669 },\r\n { x: 0.0000023140000000001603, y: -0.9671742793017462 },\r\n { x: 0.0000023150000000001604, y: -0.9294478309233294 },\r\n { x: 0.0000023160000000001604, y: -0.9217912523481558 },\r\n { x: 0.0000023170000000001605, y: -0.9350809926457113 },\r\n { x: 0.0000023180000000001606, y: -0.9221849356251933 },\r\n { x: 0.0000023190000000001607, y: -0.9348296811828873 },\r\n { x: 0.0000023200000000001607, y: -0.9377073420135766 },\r\n { x: 0.000002321000000000161, y: -0.9338306966163311 },\r\n { x: 0.000002322000000000161, y: -0.90446236915445 },\r\n { x: 0.000002323000000000161, y: -0.8698346198414872 },\r\n { x: 0.000002324000000000161, y: -0.9211319622460409 },\r\n { x: 0.000002325000000000161, y: -0.9128822942885423 },\r\n { x: 0.000002326000000000161, y: -0.8681301727537557 },\r\n { x: 0.0000023270000000001613, y: -0.8723218309465678 },\r\n { x: 0.0000023280000000001613, y: -0.8632247422717597 },\r\n { x: 0.0000023290000000001614, y: -0.8628777953061457 },\r\n { x: 0.0000023300000000001615, y: -0.8422775633587523 },\r\n { x: 0.0000023310000000001616, y: -0.8617671836651793 },\r\n { x: 0.0000023320000000001616, y: -0.8336581392322593 },\r\n { x: 0.0000023330000000001617, y: -0.8391467977334258 },\r\n { x: 0.000002334000000000162, y: -0.878034198713163 },\r\n { x: 0.000002335000000000162, y: -0.8931727987222301 },\r\n { x: 0.000002336000000000162, y: -0.8636530864352051 },\r\n { x: 0.000002337000000000162, y: -0.8681278471310856 },\r\n { x: 0.000002338000000000162, y: -0.8195160557603954 },\r\n { x: 0.000002339000000000162, y: -0.8648588409173688 },\r\n { x: 0.0000023400000000001622, y: -0.8065159241068366 },\r\n { x: 0.0000023410000000001623, y: -0.8274771749548573 },\r\n { x: 0.0000023420000000001624, y: -0.8436961778430836 },\r\n { x: 0.0000023430000000001625, y: -0.8212340747694735 },\r\n { x: 0.0000023440000000001625, y: -0.8393787425492343 },\r\n { x: 0.0000023450000000001626, y: -0.8074927737470309 },\r\n { x: 0.0000023460000000001627, y: -0.8418699303977784 },\r\n { x: 0.0000023470000000001628, y: -0.8070928966541282 },\r\n { x: 0.000002348000000000163, y: -0.7883104331164187 },\r\n { x: 0.000002349000000000163, y: -0.8349963316752298 },\r\n { x: 0.000002350000000000163, y: -0.7853657029023338 },\r\n { x: 0.000002351000000000163, y: -0.8028047746162525 },\r\n { x: 0.000002352000000000163, y: -0.8161631240225915 },\r\n { x: 0.0000023530000000001632, y: -0.7799867088364262 },\r\n { x: 0.0000023540000000001633, y: -0.7519970201010164 },\r\n { x: 0.0000023550000000001634, y: -0.802521768463922 },\r\n { x: 0.0000023560000000001635, y: -0.7778319683787733 },\r\n { x: 0.0000023570000000001635, y: -0.8007778542447999 },\r\n { x: 0.0000023580000000001636, y: -0.790757528795572 },\r\n { x: 0.0000023590000000001637, y: -0.751071363495006 },\r\n { x: 0.0000023600000000001638, y: -0.7377765966961166 },\r\n { x: 0.000002361000000000164, y: -0.7129436183290365 },\r\n { x: 0.000002362000000000164, y: -0.7139996508740053 },\r\n { x: 0.000002363000000000164, y: -0.7264669566780427 },\r\n { x: 0.000002364000000000164, y: -0.7317054327514088 },\r\n { x: 0.000002365000000000164, y: -0.7488292210688796 },\r\n { x: 0.000002366000000000164, y: -0.6884826667943789 },\r\n { x: 0.0000023670000000001643, y: -0.7075832865729976 },\r\n { x: 0.0000023680000000001644, y: -0.6915499825415492 },\r\n { x: 0.0000023690000000001644, y: -0.6850849369832764 },\r\n { x: 0.0000023700000000001645, y: -0.7239955834260631 },\r\n { x: 0.0000023710000000001646, y: -0.6729359141885862 },\r\n { x: 0.0000023720000000001647, y: -0.677834834343801 },\r\n { x: 0.0000023730000000001647, y: -0.7281967299857802 },\r\n { x: 0.000002374000000000165, y: -0.674799073834172 },\r\n { x: 0.000002375000000000165, y: -0.6926508681810462 },\r\n { x: 0.000002376000000000165, y: -0.6925134095466664 },\r\n { x: 0.000002377000000000165, y: -0.6561408146936505 },\r\n { x: 0.000002378000000000165, y: -0.7045605904383241 },\r\n { x: 0.000002379000000000165, y: -0.6936969622698995 },\r\n { x: 0.0000023800000000001653, y: -0.6238196838440893 },\r\n { x: 0.0000023810000000001653, y: -0.6872495629060865 },\r\n { x: 0.0000023820000000001654, y: -0.6184585390211844 },\r\n { x: 0.0000023830000000001655, y: -0.6215494436836672 },\r\n { x: 0.0000023840000000001656, y: -0.6243731301575307 },\r\n { x: 0.0000023850000000001656, y: -0.6232058288702654 },\r\n { x: 0.0000023860000000001657, y: -0.6703009953677034 },\r\n { x: 0.0000023870000000001658, y: -0.6117805120661874 },\r\n { x: 0.000002388000000000166, y: -0.5917934031444606 },\r\n { x: 0.000002389000000000166, y: -0.6438296938824454 },\r\n { x: 0.000002390000000000166, y: -0.598350652587067 },\r\n { x: 0.000002391000000000166, y: -0.6107921196786794 },\r\n { x: 0.000002392000000000166, y: -0.6356405832534027 },\r\n { x: 0.0000023930000000001662, y: -0.5682657158033384 },\r\n { x: 0.0000023940000000001663, y: -0.5777583586565108 },\r\n { x: 0.0000023950000000001664, y: -0.5947770260036661 },\r\n { x: 0.0000023960000000001665, y: -0.5958471707478002 },\r\n { x: 0.0000023970000000001665, y: -0.5577077602540511 },\r\n { x: 0.0000023980000000001666, y: -0.5632594072916399 },\r\n { x: 0.0000023990000000001667, y: -0.5609320363309819 },\r\n { x: 0.0000024000000000001668, y: -0.5658335784766687 },\r\n { x: 0.000002401000000000167, y: -0.5929972071078811 },\r\n { x: 0.000002402000000000167, y: -0.5354208878810454 },\r\n { x: 0.000002403000000000167, y: -0.5599789084237445 },\r\n { x: 0.000002404000000000167, y: -0.5242449093053955 },\r\n { x: 0.000002405000000000167, y: -0.5162730148369371 },\r\n { x: 0.000002406000000000167, y: -0.5680614304312296 },\r\n { x: 0.0000024070000000001673, y: -0.5218515715169217 },\r\n { x: 0.0000024080000000001674, y: -0.5216434385688059 },\r\n { x: 0.0000024090000000001674, y: -0.5000522615760793 },\r\n { x: 0.0000024100000000001675, y: -0.49269311908697444 },\r\n { x: 0.0000024110000000001676, y: -0.5284569477774332 },\r\n { x: 0.0000024120000000001677, y: -0.5225508255167066 },\r\n { x: 0.0000024130000000001677, y: -0.48499096544340026 },\r\n { x: 0.000002414000000000168, y: -0.5071563023105641 },\r\n { x: 0.000002415000000000168, y: -0.5063415532993574 },\r\n { x: 0.000002416000000000168, y: -0.49452662679542136 },\r\n { x: 0.000002417000000000168, y: -0.4597341366445032 },\r\n { x: 0.000002418000000000168, y: -0.4945018018640034 },\r\n { x: 0.000002419000000000168, y: -0.4534957207717517 },\r\n { x: 0.0000024200000000001683, y: -0.4705131894858341 },\r\n { x: 0.0000024210000000001683, y: -0.431024404227471 },\r\n { x: 0.0000024220000000001684, y: -0.4828906664039683 },\r\n { x: 0.0000024230000000001685, y: -0.4754051043691047 },\r\n { x: 0.0000024240000000001686, y: -0.47416575816968237 },\r\n { x: 0.0000024250000000001686, y: -0.47753355875265197 },\r\n { x: 0.0000024260000000001687, y: -0.45398698381985414 },\r\n { x: 0.0000024270000000001688, y: -0.4180357361647906 },\r\n { x: 0.000002428000000000169, y: -0.4516942430630965 },\r\n { x: 0.000002429000000000169, y: -0.45323668107092047 },\r\n { x: 0.000002430000000000169, y: -0.37998947165494285 },\r\n { x: 0.000002431000000000169, y: -0.38324799407885485 },\r\n { x: 0.000002432000000000169, y: -0.4181014651824893 },\r\n { x: 0.0000024330000000001692, y: -0.3655611066318295 },\r\n { x: 0.0000024340000000001693, y: -0.3963674545224115 },\r\n { x: 0.0000024350000000001694, y: -0.4152501067147071 },\r\n { x: 0.0000024360000000001695, y: -0.3923445582246408 },\r\n { x: 0.0000024370000000001695, y: -0.41090017228954034 },\r\n { x: 0.0000024380000000001696, y: -0.3549037198766325 },\r\n { x: 0.0000024390000000001697, y: -0.37411426024649663 },\r\n { x: 0.0000024400000000001698, y: -0.3954342754390548 },\r\n { x: 0.00000244100000000017, y: -0.379693594703644 },\r\n { x: 0.00000244200000000017, y: -0.3309119560453535 },\r\n { x: 0.00000244300000000017, y: -0.3276068650374942 },\r\n { x: 0.00000244400000000017, y: -0.35458878436642977 },\r\n { x: 0.00000244500000000017, y: -0.34608792563202195 },\r\n { x: 0.0000024460000000001702, y: -0.3309771636875109 },\r\n { x: 0.0000024470000000001703, y: -0.3005434980746519 },\r\n { x: 0.0000024480000000001704, y: -0.31442668415766956 },\r\n { x: 0.0000024490000000001704, y: -0.2850469754508962 },\r\n { x: 0.0000024500000000001705, y: -0.30415110571487286 },\r\n { x: 0.0000024510000000001706, y: -0.3462071153358029 },\r\n { x: 0.0000024520000000001707, y: -0.2822959911386574 },\r\n { x: 0.0000024530000000001707, y: -0.3088294167067626 },\r\n { x: 0.000002454000000000171, y: -0.2947572094272783 },\r\n { x: 0.000002455000000000171, y: -0.30510576818626395 },\r\n { x: 0.000002456000000000171, y: -0.3030284542363821 },\r\n { x: 0.000002457000000000171, y: -0.30656188882895175 },\r\n { x: 0.000002458000000000171, y: -0.29105234358830595 },\r\n { x: 0.000002459000000000171, y: -0.28606941189692736 },\r\n { x: 0.0000024600000000001713, y: -0.2291321457041728 },\r\n { x: 0.0000024610000000001713, y: -0.2880722088808652 },\r\n { x: 0.0000024620000000001714, y: -0.28096806307754785 },\r\n { x: 0.0000024630000000001715, y: -0.22101289464323637 },\r\n { x: 0.0000024640000000001716, y: -0.26682907979495035 },\r\n { x: 0.0000024650000000001716, y: -0.22461804644893746 },\r\n { x: 0.0000024660000000001717, y: -0.26411959533601004 },\r\n { x: 0.000002467000000000172, y: -0.25241369359838783 },\r\n { x: 0.000002468000000000172, y: -0.2234563917400324 },\r\n { x: 0.000002469000000000172, y: -0.18999173911706954 },\r\n { x: 0.000002470000000000172, y: -0.18021333518928684 },\r\n { x: 0.000002471000000000172, y: -0.19279176065785986 },\r\n { x: 0.000002472000000000172, y: -0.20107063030255418 },\r\n { x: 0.0000024730000000001722, y: -0.17999608780213525 },\r\n { x: 0.0000024740000000001723, y: -0.18723650947814263 },\r\n { x: 0.0000024750000000001724, y: -0.16167216750868554 },\r\n { x: 0.0000024760000000001725, y: -0.18711127289627277 },\r\n { x: 0.0000024770000000001725, y: -0.16169546018579953 },\r\n { x: 0.0000024780000000001726, y: -0.16369478259423073 },\r\n { x: 0.0000024790000000001727, y: -0.18576784473988425 },\r\n { x: 0.0000024800000000001728, y: -0.17131565828677353 },\r\n { x: 0.000002481000000000173, y: -0.1546212887442107 },\r\n { x: 0.000002482000000000173, y: -0.13566243561309224 },\r\n { x: 0.000002483000000000173, y: -0.17831141609823592 },\r\n { x: 0.000002484000000000173, y: -0.17179442870317502 },\r\n { x: 0.000002485000000000173, y: -0.13206003705093278 },\r\n { x: 0.0000024860000000001732, y: -0.13270009294317633 },\r\n { x: 0.0000024870000000001733, y: -0.13437298016435997 },\r\n { x: 0.0000024880000000001734, y: -0.09344525529532807 },\r\n { x: 0.0000024890000000001734, y: -0.11248741659954725 },\r\n { x: 0.0000024900000000001735, y: -0.11104782529678112 },\r\n { x: 0.0000024910000000001736, y: -0.11290746735501864 },\r\n { x: 0.0000024920000000001737, y: -0.12455405493285901 },\r\n { x: 0.0000024930000000001737, y: -0.09663488965899512 },\r\n { x: 0.000002494000000000174, y: -0.07693987525036725 },\r\n { x: 0.000002495000000000174, y: -0.05517965015024491 },\r\n { x: 0.000002496000000000174, y: -0.06564972913360982 },\r\n { x: 0.000002497000000000174, y: -0.07415726055045603 },\r\n { x: 0.000002498000000000174, y: -0.10890117898470059 },\r\n { x: 0.000002499000000000174, y: -0.05717810655851217 },\r\n { x: 0.0000025000000000001743, y: -0.044507267028509295 },\r\n { x: 0.0000025010000000001743, y: -0.03166149444390001 },\r\n { x: 0.0000025020000000001744, y: -0.05946737925973119 },\r\n { x: 0.0000025030000000001745, y: -0.03780260574207762 },\r\n { x: 0.0000025040000000001746, y: -0.01929642714223637 },\r\n { x: 0.0000025050000000001746, y: -0.0498784148077263 },\r\n { x: 0.0000025060000000001747, y: -0.01218401030295406 },\r\n { x: 0.000002507000000000175, y: -0.017809948692081117 },\r\n { x: 0.000002508000000000175, y: -0.010990216664137437 },\r\n { x: 0.000002509000000000175, y: -0.02296580743899924 },\r\n { x: 0.000002510000000000175, y: -0.04053020068899563 },\r\n { x: 0.000002511000000000175, y: 0.02169781421810913 },\r\n { x: 0.000002512000000000175, y: 0.010397988522018373 },\r\n { x: 0.0000025130000000001752, y: 0.00227231972249545 },\r\n { x: 0.0000025140000000001753, y: 0.028869025336646478 },\r\n { x: 0.0000025150000000001754, y: 0.01902856501225133 },\r\n { x: 0.0000025160000000001755, y: 0.017926343530677586 },\r\n { x: 0.0000025170000000001755, y: 0.03885327968763129 },\r\n { x: 0.0000025180000000001756, y: -0.01162658912013808 },\r\n { x: 0.0000025190000000001757, y: -0.0031947302812319264 },\r\n { x: 0.0000025200000000001758, y: 0.034856364770516624 },\r\n { x: 0.000002521000000000176, y: 0.034841968231742154 },\r\n { x: 0.000002522000000000176, y: 0.021316845251639197 },\r\n { x: 0.000002523000000000176, y: 0.02696495647258669 },\r\n { x: 0.000002524000000000176, y: 0.02673217851799009 },\r\n { x: 0.000002525000000000176, y: 0.07175393683754153 },\r\n { x: 0.0000025260000000001762, y: 0.031240770974422107 },\r\n { x: 0.0000025270000000001763, y: 0.0660126897852671 },\r\n { x: 0.0000025280000000001764, y: 0.07124352645993412 },\r\n { x: 0.0000025290000000001764, y: 0.06286961362475643 },\r\n { x: 0.0000025300000000001765, y: 0.11685317728029213 },\r\n { x: 0.0000025310000000001766, y: 0.07920082948662328 },\r\n { x: 0.0000025320000000001767, y: 0.055154502035767404 },\r\n { x: 0.0000025330000000001767, y: 0.10585110764067374 },\r\n { x: 0.000002534000000000177, y: 0.06187860896225339 },\r\n { x: 0.000002535000000000177, y: 0.09956613044874507 },\r\n { x: 0.000002536000000000177, y: 0.13451941085834254 },\r\n { x: 0.000002537000000000177, y: 0.10075404593254048 },\r\n { x: 0.000002538000000000177, y: 0.10456551659403011 },\r\n { x: 0.000002539000000000177, y: 0.09718715020479415 },\r\n { x: 0.0000025400000000001773, y: 0.10105958985617373 },\r\n { x: 0.0000025410000000001774, y: 0.19799401508124528 },\r\n { x: 0.0000025420000000001774, y: 0.15730205881544382 },\r\n { x: 0.0000025430000000001775, y: 0.14787913165361638 },\r\n { x: 0.0000025440000000001776, y: 0.13064690543152924 },\r\n { x: 0.0000025450000000001777, y: 0.15133248739999616 },\r\n { x: 0.0000025460000000001777, y: 0.15171092480519321 },\r\n { x: 0.000002547000000000178, y: 0.1430756168127764 },\r\n { x: 0.000002548000000000178, y: 0.17691330353538567 },\r\n { x: 0.000002549000000000178, y: 0.20466579408576377 },\r\n { x: 0.000002550000000000178, y: 0.13802251379639136 },\r\n { x: 0.000002551000000000178, y: 0.18051156796859189 },\r\n { x: 0.000002552000000000178, y: 0.15866129045569125 },\r\n { x: 0.0000025530000000001783, y: 0.21630961329226683 },\r\n { x: 0.0000025540000000001783, y: 0.19017542432235535 },\r\n { x: 0.0000025550000000001784, y: 0.21392373766443332 },\r\n { x: 0.0000025560000000001785, y: 0.1784114243585263 },\r\n { x: 0.0000025570000000001786, y: 0.21270015198691658 },\r\n { x: 0.0000025580000000001786, y: 0.22986434961374125 },\r\n { x: 0.0000025590000000001787, y: 0.19892184999054646 },\r\n { x: 0.0000025600000000001788, y: 0.23982333589279217 },\r\n { x: 0.000002561000000000179, y: 0.2310991619474565 },\r\n { x: 0.000002562000000000179, y: 0.2328379686348432 },\r\n { x: 0.000002563000000000179, y: 0.22016175467841323 },\r\n { x: 0.000002564000000000179, y: 0.2215253263906854 },\r\n { x: 0.000002565000000000179, y: 0.25061875543160295 },\r\n { x: 0.0000025660000000001792, y: 0.2772938023288315 },\r\n { x: 0.0000025670000000001793, y: 0.2861226720342499 },\r\n { x: 0.0000025680000000001794, y: 0.24566325565750188 },\r\n { x: 0.0000025690000000001795, y: 0.23359821478888176 },\r\n { x: 0.0000025700000000001795, y: 0.24413574378488537 },\r\n { x: 0.0000025710000000001796, y: 0.25925409971906455 },\r\n { x: 0.0000025720000000001797, y: 0.2680102233695851 },\r\n { x: 0.0000025730000000001798, y: 0.2835187231735638 },\r\n { x: 0.00000257400000000018, y: 0.25896261696102213 },\r\n { x: 0.00000257500000000018, y: 0.27728786930336385 },\r\n { x: 0.00000257600000000018, y: 0.29487327411884984 },\r\n { x: 0.00000257700000000018, y: 0.2829869503805984 },\r\n { x: 0.00000257800000000018, y: 0.2785208605542552 },\r\n { x: 0.00000257900000000018, y: 0.2805574219877335 },\r\n { x: 0.0000025800000000001803, y: 0.2945417418926183 },\r\n { x: 0.0000025810000000001804, y: 0.3386860928803425 },\r\n { x: 0.0000025820000000001804, y: 0.32295701628266055 },\r\n { x: 0.0000025830000000001805, y: 0.30263879122037435 },\r\n { x: 0.0000025840000000001806, y: 0.318907693431956 },\r\n { x: 0.0000025850000000001807, y: 0.3323064662277334 },\r\n { x: 0.0000025860000000001807, y: 0.31203722079763047 },\r\n { x: 0.000002587000000000181, y: 0.3250750119397284 },\r\n { x: 0.000002588000000000181, y: 0.3424634668701344 },\r\n { x: 0.000002589000000000181, y: 0.344828274713252 },\r\n { x: 0.000002590000000000181, y: 0.3540132645116023 },\r\n { x: 0.000002591000000000181, y: 0.3608681390065181 },\r\n { x: 0.000002592000000000181, y: 0.3485198395584777 },\r\n { x: 0.0000025930000000001813, y: 0.3506379350663991 },\r\n { x: 0.0000025940000000001813, y: 0.331915516959402 },\r\n { x: 0.0000025950000000001814, y: 0.34527735092327994 },\r\n { x: 0.0000025960000000001815, y: 0.4000351811343407 },\r\n { x: 0.0000025970000000001816, y: 0.39388941446463327 },\r\n { x: 0.0000025980000000001816, y: 0.3398543087839083 },\r\n { x: 0.0000025990000000001817, y: 0.372305564665714 },\r\n { x: 0.0000026000000000001818, y: 0.3838317633621279 },\r\n { x: 0.000002601000000000182, y: 0.41529437014667353 },\r\n { x: 0.000002602000000000182, y: 0.41304834547927105 },\r\n { x: 0.000002603000000000182, y: 0.4041870055323724 },\r\n { x: 0.000002604000000000182, y: 0.43587020295938855 },\r\n { x: 0.000002605000000000182, y: 0.4310568971971567 },\r\n { x: 0.0000026060000000001822, y: 0.43714794523535655 },\r\n { x: 0.0000026070000000001823, y: 0.40886668072126864 },\r\n { x: 0.0000026080000000001824, y: 0.4433694137108774 },\r\n { x: 0.0000026090000000001825, y: 0.4050889122740359 },\r\n { x: 0.0000026100000000001825, y: 0.4310772621906473 },\r\n { x: 0.0000026110000000001826, y: 0.4006271206163106 },\r\n { x: 0.0000026120000000001827, y: 0.3962460208615274 },\r\n { x: 0.0000026130000000001828, y: 0.3975686990296928 },\r\n { x: 0.000002614000000000183, y: 0.4667753352533014 },\r\n { x: 0.000002615000000000183, y: 0.46286901552752735 },\r\n { x: 0.000002616000000000183, y: 0.4692490057551146 },\r\n { x: 0.000002617000000000183, y: 0.42994799435188014 },\r\n { x: 0.000002618000000000183, y: 0.4634064627849226 },\r\n { x: 0.000002619000000000183, y: 0.4301614556194292 },\r\n { x: 0.0000026200000000001833, y: 0.44504568636494807 },\r\n { x: 0.0000026210000000001834, y: 0.465746434910619 },\r\n { x: 0.0000026220000000001834, y: 0.43157760113541255 },\r\n { x: 0.0000026230000000001835, y: 0.46456271138277544 },\r\n { x: 0.0000026240000000001836, y: 0.4473545111102838 },\r\n { x: 0.0000026250000000001837, y: 0.45581795130307107 },\r\n { x: 0.0000026260000000001837, y: 0.5166751972213512 },\r\n { x: 0.000002627000000000184, y: 0.48019312519732454 },\r\n { x: 0.000002628000000000184, y: 0.46975464117309257 },\r\n { x: 0.000002629000000000184, y: 0.4926981334934373 },\r\n { x: 0.000002630000000000184, y: 0.47934119963743727 },\r\n { x: 0.000002631000000000184, y: 0.5039408718465962 },\r\n { x: 0.000002632000000000184, y: 0.49937969688982364 },\r\n { x: 0.0000026330000000001843, y: 0.49529023474703376 },\r\n { x: 0.0000026340000000001843, y: 0.5009090133767484 },\r\n { x: 0.0000026350000000001844, y: 0.5232374406992164 },\r\n { x: 0.0000026360000000001845, y: 0.4991756250779322 },\r\n { x: 0.0000026370000000001846, y: 0.5031570010570516 },\r\n { x: 0.0000026380000000001846, y: 0.5325824248998609 },\r\n { x: 0.0000026390000000001847, y: 0.5551110810471244 },\r\n { x: 0.0000026400000000001848, y: 0.4917482604186644 },\r\n { x: 0.000002641000000000185, y: 0.5244546057444699 },\r\n { x: 0.000002642000000000185, y: 0.5116575105128615 },\r\n { x: 0.000002643000000000185, y: 0.5180018668401769 },\r\n { x: 0.000002644000000000185, y: 0.5728935876234474 },\r\n { x: 0.000002645000000000185, y: 0.571021578576603 },\r\n { x: 0.0000026460000000001852, y: 0.5391673816733841 },\r\n { x: 0.0000026470000000001853, y: 0.5233207093244425 },\r\n { x: 0.0000026480000000001854, y: 0.5790585065793126 },\r\n { x: 0.0000026490000000001855, y: 0.5266473345654257 },\r\n { x: 0.0000026500000000001855, y: 0.5299398343837128 },\r\n { x: 0.0000026510000000001856, y: 0.5503727252229598 },\r\n { x: 0.0000026520000000001857, y: 0.5890831324182434 },\r\n { x: 0.0000026530000000001858, y: 0.5434410835149216 },\r\n { x: 0.000002654000000000186, y: 0.5381805041592544 },\r\n { x: 0.000002655000000000186, y: 0.5986137865748076 },\r\n { x: 0.000002656000000000186, y: 0.6109471619427517 },\r\n { x: 0.000002657000000000186, y: 0.5510079300346555 },\r\n { x: 0.000002658000000000186, y: 0.5516906368691389 },\r\n { x: 0.0000026590000000001862, y: 0.5809096403298828 },\r\n { x: 0.0000026600000000001863, y: 0.6157549680813351 },\r\n { x: 0.0000026610000000001864, y: 0.5824277458242549 },\r\n { x: 0.0000026620000000001864, y: 0.5807834397904956 },\r\n { x: 0.0000026630000000001865, y: 0.6122324203702777 },\r\n { x: 0.0000026640000000001866, y: 0.5682248787778075 },\r\n { x: 0.0000026650000000001867, y: 0.6364895547423738 },\r\n { x: 0.0000026660000000001867, y: 0.6367852849831123 },\r\n { x: 0.000002667000000000187, y: 0.6301263973616424 },\r\n { x: 0.000002668000000000187, y: 0.6369228813944692 },\r\n { x: 0.000002669000000000187, y: 0.6129163568466053 },\r\n { x: 0.000002670000000000187, y: 0.5803002292933409 },\r\n { x: 0.000002671000000000187, y: 0.5988221700276009 },\r\n { x: 0.000002672000000000187, y: 0.6354143321436927 },\r\n { x: 0.0000026730000000001873, y: 0.6581870758899424 },\r\n { x: 0.0000026740000000001873, y: 0.6145825823815865 },\r\n { x: 0.0000026750000000001874, y: 0.6036896789836707 },\r\n { x: 0.0000026760000000001875, y: 0.6644893156241612 },\r\n { x: 0.0000026770000000001876, y: 0.6211856028677928 },\r\n { x: 0.0000026780000000001876, y: 0.634166865042745 },\r\n { x: 0.0000026790000000001877, y: 0.6391570014951409 },\r\n { x: 0.000002680000000000188, y: 0.6235583799678183 },\r\n { x: 0.000002681000000000188, y: 0.661715153993567 },\r\n { x: 0.000002682000000000188, y: 0.6130362967431036 },\r\n { x: 0.000002683000000000188, y: 0.6163290608816756 },\r\n { x: 0.000002684000000000188, y: 0.621920638205098 },\r\n { x: 0.000002685000000000188, y: 0.6571183173838694 },\r\n { x: 0.0000026860000000001882, y: 0.6202144778072248 },\r\n { x: 0.0000026870000000001883, y: 0.6740649438969156 },\r\n { x: 0.0000026880000000001884, y: 0.6963333587536268 },\r\n { x: 0.0000026890000000001885, y: 0.6868713715811054 },\r\n { x: 0.0000026900000000001885, y: 0.6801575174287627 },\r\n { x: 0.0000026910000000001886, y: 0.6303386948017062 },\r\n { x: 0.0000026920000000001887, y: 0.681160569708664 },\r\n { x: 0.0000026930000000001888, y: 0.6960124695125789 },\r\n { x: 0.000002694000000000189, y: 0.6959992053417199 },\r\n { x: 0.000002695000000000189, y: 0.665865778332864 },\r\n { x: 0.000002696000000000189, y: 0.6776158496887771 },\r\n { x: 0.000002697000000000189, y: 0.7008951886731878 },\r\n { x: 0.000002698000000000189, y: 0.6675595996175626 },\r\n { x: 0.0000026990000000001892, y: 0.7117689624781781 },\r\n { x: 0.0000027000000000001893, y: 0.6545064997667815 },\r\n { x: 0.0000027010000000001894, y: 0.7230932420436397 },\r\n { x: 0.0000027020000000001894, y: 0.7152655516321059 },\r\n { x: 0.0000027030000000001895, y: 0.7001993852036024 },\r\n { x: 0.0000027040000000001896, y: 0.7170472339005718 },\r\n { x: 0.0000027050000000001897, y: 0.7342749728528719 },\r\n { x: 0.0000027060000000001897, y: 0.6655142590877691 },\r\n { x: 0.00000270700000000019, y: 0.6641503747559637 },\r\n { x: 0.00000270800000000019, y: 0.7267693077856443 },\r\n { x: 0.00000270900000000019, y: 0.7371590014488312 },\r\n { x: 0.00000271000000000019, y: 0.6822593061619309 },\r\n { x: 0.00000271100000000019, y: 0.6916652631795677 },\r\n { x: 0.00000271200000000019, y: 0.6794633711571757 },\r\n { x: 0.0000027130000000001903, y: 0.7376521218068873 },\r\n { x: 0.0000027140000000001903, y: 0.7220004566269178 },\r\n { x: 0.0000027150000000001904, y: 0.7037104569394929 },\r\n { x: 0.0000027160000000001905, y: 0.7356446439838722 },\r\n { x: 0.0000027170000000001906, y: 0.7340941761495073 },\r\n { x: 0.0000027180000000001906, y: 0.7124752155844226 },\r\n { x: 0.0000027190000000001907, y: 0.7397050665323006 },\r\n { x: 0.000002720000000000191, y: 0.7169108115717007 },\r\n { x: 0.000002721000000000191, y: 0.7336679215398737 },\r\n { x: 0.000002722000000000191, y: 0.7347476000524897 },\r\n { x: 0.000002723000000000191, y: 0.7214815051889556 },\r\n { x: 0.000002724000000000191, y: 0.7084638455258885 },\r\n { x: 0.000002725000000000191, y: 0.7024557472716381 },\r\n { x: 0.0000027260000000001912, y: 0.7118278674174795 },\r\n { x: 0.0000027270000000001913, y: 0.7697487965677479 },\r\n { x: 0.0000027280000000001914, y: 0.7118320029072236 },\r\n { x: 0.0000027290000000001915, y: 0.7340378553864686 },\r\n { x: 0.0000027300000000001915, y: 0.7564257793349525 },\r\n { x: 0.0000027310000000001916, y: 0.7443729205646559 },\r\n { x: 0.0000027320000000001917, y: 0.7082096243602418 },\r\n { x: 0.0000027330000000001918, y: 0.7347467168308663 },\r\n { x: 0.000002734000000000192, y: 0.7193104500238281 },\r\n { x: 0.000002735000000000192, y: 0.7217556796192299 },\r\n { x: 0.000002736000000000192, y: 0.7602814158498283 },\r\n { x: 0.000002737000000000192, y: 0.7237963434152892 },\r\n { x: 0.000002738000000000192, y: 0.7354313096162569 },\r\n { x: 0.0000027390000000001922, y: 0.7695296873312432 },\r\n { x: 0.0000027400000000001923, y: 0.7473876554680158 },\r\n { x: 0.0000027410000000001924, y: 0.7887672527897815 },\r\n { x: 0.0000027420000000001925, y: 0.7365271719313455 },\r\n { x: 0.0000027430000000001925, y: 0.7622104476183755 },\r\n { x: 0.0000027440000000001926, y: 0.759922239111059 },\r\n { x: 0.0000027450000000001927, y: 0.7716827285287791 },\r\n { x: 0.0000027460000000001928, y: 0.7760312155155824 },\r\n { x: 0.000002747000000000193, y: 0.7375188084834007 },\r\n { x: 0.000002748000000000193, y: 0.75771266711046 },\r\n { x: 0.000002749000000000193, y: 0.7899635933795764 },\r\n { x: 0.000002750000000000193, y: 0.7371939551663986 },\r\n { x: 0.000002751000000000193, y: 0.801014572705638 },\r\n { x: 0.000002752000000000193, y: 0.7346419747151698 },\r\n { x: 0.0000027530000000001933, y: 0.7730448978953918 },\r\n { x: 0.0000027540000000001934, y: 0.7878243977099655 },\r\n { x: 0.0000027550000000001934, y: 0.8013602086474488 },\r\n { x: 0.0000027560000000001935, y: 0.7376080214635072 },\r\n { x: 0.0000027570000000001936, y: 0.793891213850553 },\r\n { x: 0.0000027580000000001937, y: 0.7481157293669828 },\r\n { x: 0.0000027590000000001937, y: 0.7510456402610325 },\r\n { x: 0.000002760000000000194, y: 0.8054082490322473 },\r\n { x: 0.000002761000000000194, y: 0.7816317125000892 },\r\n { x: 0.000002762000000000194, y: 0.737728876700332 },\r\n { x: 0.000002763000000000194, y: 0.7739004551931284 },\r\n { x: 0.000002764000000000194, y: 0.7633930901102277 },\r\n { x: 0.000002765000000000194, y: 0.7897011603827734 },\r\n { x: 0.0000027660000000001943, y: 0.7560328367101616 },\r\n { x: 0.0000027670000000001943, y: 0.7939422073459839 },\r\n { x: 0.0000027680000000001944, y: 0.7827372074588763 },\r\n { x: 0.0000027690000000001945, y: 0.7573586343124319 },\r\n { x: 0.0000027700000000001946, y: 0.798323615372741 },\r\n { x: 0.0000027710000000001946, y: 0.7546747165305211 },\r\n { x: 0.0000027720000000001947, y: 0.7482248385133946 },\r\n { x: 0.0000027730000000001948, y: 0.7567888508853853 },\r\n { x: 0.000002774000000000195, y: 0.753604845528295 },\r\n { x: 0.000002775000000000195, y: 0.7934727902343959 },\r\n { x: 0.000002776000000000195, y: 0.810676252400137 },\r\n { x: 0.000002777000000000195, y: 0.7956199857452727 },\r\n { x: 0.000002778000000000195, y: 0.8230095453118499 },\r\n { x: 0.0000027790000000001952, y: 0.8217849927519632 },\r\n { x: 0.0000027800000000001953, y: 0.7631604408415177 },\r\n { x: 0.0000027810000000001954, y: 0.8213208187341712 },\r\n { x: 0.0000027820000000001955, y: 0.7734683985868821 },\r\n { x: 0.0000027830000000001955, y: 0.782203586554138 },\r\n { x: 0.0000027840000000001956, y: 0.8151991220550522 },\r\n { x: 0.0000027850000000001957, y: 0.8107903365350744 },\r\n { x: 0.0000027860000000001958, y: 0.7739831625092467 },\r\n { x: 0.000002787000000000196, y: 0.7688714286812638 },\r\n { x: 0.000002788000000000196, y: 0.7944913708372867 },\r\n { x: 0.000002789000000000196, y: 0.7864705280363402 },\r\n { x: 0.000002790000000000196, y: 0.7591993208217006 },\r\n { x: 0.000002791000000000196, y: 0.7895889136712934 },\r\n { x: 0.000002792000000000196, y: 0.8182349759965467 },\r\n { x: 0.0000027930000000001963, y: 0.7846041242554446 },\r\n { x: 0.0000027940000000001964, y: 0.7951279045333552 },\r\n { x: 0.0000027950000000001964, y: 0.7981406989521761 },\r\n { x: 0.0000027960000000001965, y: 0.7815773167617462 },\r\n { x: 0.0000027970000000001966, y: 0.7663759216374127 },\r\n { x: 0.0000027980000000001967, y: 0.7838290871940248 },\r\n { x: 0.0000027990000000001967, y: 0.7983593381803468 },\r\n { x: 0.000002800000000000197, y: 0.7525548828869657 },\r\n { x: 0.000002801000000000197, y: 0.8212197474672228 },\r\n { x: 0.000002802000000000197, y: 0.7749962002326138 },\r\n { x: 0.000002803000000000197, y: 0.76638181540985 },\r\n { x: 0.000002804000000000197, y: 0.7802293181223559 },\r\n { x: 0.000002805000000000197, y: 0.7769220521634627 },\r\n { x: 0.0000028060000000001973, y: 0.786587797159431 },\r\n { x: 0.0000028070000000001973, y: 0.7827700742639933 },\r\n { x: 0.0000028080000000001974, y: 0.7591626865548814 },\r\n { x: 0.0000028090000000001975, y: 0.7863620802702915 },\r\n { x: 0.0000028100000000001976, y: 0.7567615295701122 },\r\n { x: 0.0000028110000000001976, y: 0.8512174564692979 },\r\n { x: 0.0000028120000000001977, y: 0.7508603274861254 },\r\n { x: 0.0000028130000000001978, y: 0.771509410383711 },\r\n { x: 0.000002814000000000198, y: 0.7841360817289958 },\r\n { x: 0.000002815000000000198, y: 0.781330448283536 },\r\n { x: 0.000002816000000000198, y: 0.7668814952450571 },\r\n { x: 0.000002817000000000198, y: 0.7852339002863445 },\r\n { x: 0.000002818000000000198, y: 0.8045854330291735 },\r\n { x: 0.0000028190000000001982, y: 0.8117118789267445 },\r\n { x: 0.0000028200000000001983, y: 0.7964819608750886 },\r\n { x: 0.0000028210000000001984, y: 0.7642314732771622 },\r\n { x: 0.0000028220000000001985, y: 0.767788701575244 },\r\n { x: 0.0000028230000000001985, y: 0.7545896273185719 },\r\n { x: 0.0000028240000000001986, y: 0.7670135719361161 },\r\n { x: 0.0000028250000000001987, y: 0.776489768698379 },\r\n { x: 0.0000028260000000001988, y: 0.7707513477197501 },\r\n { x: 0.000002827000000000199, y: 0.7956990289629834 },\r\n { x: 0.000002828000000000199, y: 0.7464042723655999 },\r\n { x: 0.000002829000000000199, y: 0.7630537764135136 },\r\n { x: 0.000002830000000000199, y: 0.8112271560025841 },\r\n { x: 0.000002831000000000199, y: 0.7482093728408432 },\r\n { x: 0.0000028320000000001992, y: 0.7971430465769822 },\r\n { x: 0.0000028330000000001993, y: 0.7427053120890292 },\r\n { x: 0.0000028340000000001994, y: 0.7720169130016905 },\r\n { x: 0.0000028350000000001994, y: 0.7864622512674394 },\r\n { x: 0.0000028360000000001995, y: 0.7717803923168035 },\r\n { x: 0.0000028370000000001996, y: 0.7658028092752694 },\r\n { x: 0.0000028380000000001997, y: 0.7392771088737514 },\r\n { x: 0.0000028390000000001997, y: 0.7924686585526886 },\r\n { x: 0.0000028400000000002, y: 0.7474299100430132 },\r\n { x: 0.0000028410000000002, y: 0.7430508775093344 },\r\n { x: 0.0000028420000000002, y: 0.7637892187832406 },\r\n { x: 0.0000028430000000002, y: 0.7621379094589217 },\r\n { x: 0.0000028440000000002, y: 0.7691954236060945 },\r\n { x: 0.0000028450000000002, y: 0.7604740781957471 },\r\n { x: 0.0000028460000000002003, y: 0.7533316213397995 },\r\n { x: 0.0000028470000000002003, y: 0.733534496514143 },\r\n { x: 0.0000028480000000002004, y: 0.7406852856007478 },\r\n { x: 0.0000028490000000002005, y: 0.8024655695950724 },\r\n { x: 0.0000028500000000002006, y: 0.7765870306601449 },\r\n { x: 0.0000028510000000002006, y: 0.7570494947784607 },\r\n { x: 0.0000028520000000002007, y: 0.7772564645890533 },\r\n { x: 0.000002853000000000201, y: 0.7338847289490747 },\r\n { x: 0.000002854000000000201, y: 0.7344372554879921 },\r\n { x: 0.000002855000000000201, y: 0.760865899145752 },\r\n { x: 0.000002856000000000201, y: 0.728391935157656 },\r\n { x: 0.000002857000000000201, y: 0.7297036663397427 },\r\n { x: 0.000002858000000000201, y: 0.7595273521720526 },\r\n { x: 0.0000028590000000002012, y: 0.7630994243495298 },\r\n { x: 0.0000028600000000002013, y: 0.7768321326373545 },\r\n { x: 0.0000028610000000002014, y: 0.7371941853307857 },\r\n { x: 0.0000028620000000002015, y: 0.7718452236971518 },\r\n { x: 0.0000028630000000002015, y: 0.7255050772966469 },\r\n { x: 0.0000028640000000002016, y: 0.7595980974960304 },\r\n { x: 0.0000028650000000002017, y: 0.7443690761485993 },\r\n { x: 0.0000028660000000002018, y: 0.7763706035093906 },\r\n { x: 0.000002867000000000202, y: 0.765830136812253 },\r\n { x: 0.000002868000000000202, y: 0.7832203021729911 },\r\n { x: 0.000002869000000000202, y: 0.7641234591714927 },\r\n { x: 0.000002870000000000202, y: 0.7155313199497109 },\r\n { x: 0.000002871000000000202, y: 0.7688497258272269 },\r\n { x: 0.0000028720000000002022, y: 0.7500660338112418 },\r\n { x: 0.0000028730000000002023, y: 0.7125848850884627 },\r\n { x: 0.0000028740000000002024, y: 0.7392716584564772 },\r\n { x: 0.0000028750000000002024, y: 0.7485035309834968 },\r\n { x: 0.0000028760000000002025, y: 0.7437759238901553 },\r\n { x: 0.0000028770000000002026, y: 0.7250862500058989 },\r\n { x: 0.0000028780000000002027, y: 0.7343829198329125 },\r\n { x: 0.0000028790000000002027, y: 0.7348355290801867 },\r\n { x: 0.000002880000000000203, y: 0.6913486874814634 },\r\n { x: 0.000002881000000000203, y: 0.7122497839547313 },\r\n { x: 0.000002882000000000203, y: 0.7180340610111401 },\r\n { x: 0.000002883000000000203, y: 0.751442300197788 },\r\n { x: 0.000002884000000000203, y: 0.7064022082389504 },\r\n { x: 0.000002885000000000203, y: 0.6915746554626758 },\r\n { x: 0.0000028860000000002033, y: 0.7403966100026745 },\r\n { x: 0.0000028870000000002033, y: 0.7502800199449855 },\r\n { x: 0.0000028880000000002034, y: 0.6954108060963011 },\r\n { x: 0.0000028890000000002035, y: 0.7399438902519763 },\r\n { x: 0.0000028900000000002036, y: 0.6881611386264651 },\r\n { x: 0.0000028910000000002036, y: 0.6883583927942954 },\r\n { x: 0.0000028920000000002037, y: 0.673649669089998 },\r\n { x: 0.000002893000000000204, y: 0.7373819783907827 },\r\n { x: 0.000002894000000000204, y: 0.6775216753790888 },\r\n { x: 0.000002895000000000204, y: 0.6911629701200532 },\r\n { x: 0.000002896000000000204, y: 0.7211812124276452 },\r\n { x: 0.000002897000000000204, y: 0.7160704162569042 },\r\n { x: 0.000002898000000000204, y: 0.676371455922578 },\r\n { x: 0.0000028990000000002042, y: 0.7274802956547528 },\r\n { x: 0.0000029000000000002043, y: 0.683049828459433 },\r\n { x: 0.0000029010000000002044, y: 0.6900989360913905 },\r\n { x: 0.0000029020000000002045, y: 0.7047533973435269 },\r\n { x: 0.0000029030000000002045, y: 0.654995021504275 },\r\n { x: 0.0000029040000000002046, y: 0.6841284222377781 },\r\n { x: 0.0000029050000000002047, y: 0.6732941982214122 },\r\n { x: 0.0000029060000000002048, y: 0.7145912334252882 },\r\n { x: 0.000002907000000000205, y: 0.6543401172757951 },\r\n { x: 0.000002908000000000205, y: 0.6573577029992239 },\r\n { x: 0.000002909000000000205, y: 0.7159432289690105 },\r\n { x: 0.000002910000000000205, y: 0.6807836422776883 },\r\n { x: 0.000002911000000000205, y: 0.7027154560636988 },\r\n { x: 0.0000029120000000002052, y: 0.6370273563736593 },\r\n { x: 0.0000029130000000002053, y: 0.6566650252651687 },\r\n { x: 0.0000029140000000002054, y: 0.6856754434755157 },\r\n { x: 0.0000029150000000002054, y: 0.6638956828455864 },\r\n { x: 0.0000029160000000002055, y: 0.6710147421919256 },\r\n { x: 0.0000029170000000002056, y: 0.6411098021431326 },\r\n { x: 0.0000029180000000002057, y: 0.6337515667537542 },\r\n { x: 0.0000029190000000002057, y: 0.6398758362740098 },\r\n { x: 0.000002920000000000206, y: 0.628361373202968 },\r\n { x: 0.000002921000000000206, y: 0.639388149374006 },\r\n { x: 0.000002922000000000206, y: 0.6782883947274078 },\r\n { x: 0.000002923000000000206, y: 0.6662133348476065 },\r\n { x: 0.000002924000000000206, y: 0.6744458143446771 },\r\n { x: 0.000002925000000000206, y: 0.6272141899122543 },\r\n { x: 0.0000029260000000002063, y: 0.6767808075628621 },\r\n { x: 0.0000029270000000002063, y: 0.6317346435211388 },\r\n { x: 0.0000029280000000002064, y: 0.6142931046884369 },\r\n { x: 0.0000029290000000002065, y: 0.6704631244999428 },\r\n { x: 0.0000029300000000002066, y: 0.6454744499613985 },\r\n { x: 0.0000029310000000002067, y: 0.647884465580466 },\r\n { x: 0.0000029320000000002067, y: 0.6602338925118152 },\r\n { x: 0.000002933000000000207, y: 0.6570589958671212 },\r\n { x: 0.000002934000000000207, y: 0.6294987704334325 },\r\n { x: 0.000002935000000000207, y: 0.6116801020597763 },\r\n { x: 0.000002936000000000207, y: 0.6067150106325837 },\r\n { x: 0.000002937000000000207, y: 0.6547845991396 },\r\n { x: 0.000002938000000000207, y: 0.6035587204656251 },\r\n { x: 0.0000029390000000002073, y: 0.5959623011526646 },\r\n { x: 0.0000029400000000002073, y: 0.5833899099901261 },\r\n { x: 0.0000029410000000002074, y: 0.6090903670216657 },\r\n { x: 0.0000029420000000002075, y: 0.5814380814901917 },\r\n { x: 0.0000029430000000002076, y: 0.5793610114770555 },\r\n { x: 0.0000029440000000002076, y: 0.5789968660799116 },\r\n { x: 0.0000029450000000002077, y: 0.5965906954287372 },\r\n { x: 0.0000029460000000002078, y: 0.5670538449442795 },\r\n { x: 0.000002947000000000208, y: 0.6142534090183384 },\r\n { x: 0.000002948000000000208, y: 0.6026167411490274 },\r\n { x: 0.000002949000000000208, y: 0.5943573490926507 },\r\n { x: 0.000002950000000000208, y: 0.5498448938835222 },\r\n { x: 0.000002951000000000208, y: 0.6088917707690311 },\r\n { x: 0.0000029520000000002082, y: 0.5979286662901565 },\r\n { x: 0.0000029530000000002083, y: 0.5622730106011163 },\r\n { x: 0.0000029540000000002084, y: 0.5978847405075455 },\r\n { x: 0.0000029550000000002085, y: 0.5898867450354877 },\r\n { x: 0.0000029560000000002085, y: 0.5461274076217086 },\r\n { x: 0.0000029570000000002086, y: 0.5884938191684874 },\r\n { x: 0.0000029580000000002087, y: 0.5322519093592583 },\r\n { x: 0.0000029590000000002088, y: 0.5807437680860508 },\r\n { x: 0.000002960000000000209, y: 0.5755296480271369 },\r\n { x: 0.000002961000000000209, y: 0.5388641482130897 },\r\n { x: 0.000002962000000000209, y: 0.5752632018518571 },\r\n { x: 0.000002963000000000209, y: 0.5841578412925744 },\r\n { x: 0.000002964000000000209, y: 0.5430249955723269 },\r\n { x: 0.000002965000000000209, y: 0.5824291534609394 },\r\n { x: 0.0000029660000000002093, y: 0.5561377114144416 },\r\n { x: 0.0000029670000000002094, y: 0.5421408760660786 },\r\n { x: 0.0000029680000000002094, y: 0.516956242642722 },\r\n { x: 0.0000029690000000002095, y: 0.5085039910663094 },\r\n { x: 0.0000029700000000002096, y: 0.5432745215003134 },\r\n { x: 0.0000029710000000002097, y: 0.5454138528011845 },\r\n { x: 0.0000029720000000002097, y: 0.5444944025437624 },\r\n { x: 0.00000297300000000021, y: 0.5286257810686109 },\r\n { x: 0.00000297400000000021, y: 0.5335532863301974 },\r\n { x: 0.00000297500000000021, y: 0.5292786379623816 },\r\n { x: 0.00000297600000000021, y: 0.516595821862428 },\r\n { x: 0.00000297700000000021, y: 0.4859324145829592 },\r\n { x: 0.00000297800000000021, y: 0.477941976665393 },\r\n { x: 0.0000029790000000002103, y: 0.47986034219660234 },\r\n { x: 0.0000029800000000002103, y: 0.5060507586110323 },\r\n { x: 0.0000029810000000002104, y: 0.4778975077271498 },\r\n { x: 0.0000029820000000002105, y: 0.4691837223074389 },\r\n { x: 0.0000029830000000002106, y: 0.5075898545995766 },\r\n { x: 0.0000029840000000002106, y: 0.48040006902527277 },\r\n { x: 0.0000029850000000002107, y: 0.5317976252175001 },\r\n { x: 0.0000029860000000002108, y: 0.47680761518300735 },\r\n { x: 0.000002987000000000211, y: 0.5224380218575002 },\r\n { x: 0.000002988000000000211, y: 0.5222136614842324 },\r\n { x: 0.000002989000000000211, y: 0.47389238552249097 },\r\n { x: 0.000002990000000000211, y: 0.4759162597189827 },\r\n { x: 0.000002991000000000211, y: 0.47912804901123773 },\r\n { x: 0.0000029920000000002112, y: 0.4588463479524858 },\r\n { x: 0.0000029930000000002113, y: 0.46526456215875195 },\r\n { x: 0.0000029940000000002114, y: 0.43082664205776344 },\r\n { x: 0.0000029950000000002115, y: 0.4801621072398747 },\r\n { x: 0.0000029960000000002115, y: 0.5003611506617719 },\r\n { x: 0.0000029970000000002116, y: 0.4831648614513115 },\r\n { x: 0.0000029980000000002117, y: 0.44195977831877975 },\r\n { x: 0.0000029990000000002118, y: 0.47500237700587694 },\r\n { x: 0.000003000000000000212, y: 0.4244825155255506 },\r\n { x: 0.000003001000000000212, y: 0.42755284866998156 },\r\n { x: 0.000003002000000000212, y: 0.4265718841461743 },\r\n { x: 0.000003003000000000212, y: 0.41928193320163487 },\r\n { x: 0.000003004000000000212, y: 0.44176186732101363 },\r\n { x: 0.000003005000000000212, y: 0.4164076866246498 },\r\n { x: 0.0000030060000000002123, y: 0.425678186355341 },\r\n { x: 0.0000030070000000002124, y: 0.4462372169845525 },\r\n { x: 0.0000030080000000002124, y: 0.39675661931254375 },\r\n { x: 0.0000030090000000002125, y: 0.3914044780508257 },\r\n { x: 0.0000030100000000002126, y: 0.40984744356451946 },\r\n { x: 0.0000030110000000002127, y: 0.452676165162442 },\r\n { x: 0.0000030120000000002127, y: 0.3958842444578926 },\r\n { x: 0.000003013000000000213, y: 0.43114323684229805 },\r\n { x: 0.000003014000000000213, y: 0.3859004752949258 },\r\n { x: 0.000003015000000000213, y: 0.4201885559702521 },\r\n { x: 0.000003016000000000213, y: 0.35320206431373663 },\r\n { x: 0.000003017000000000213, y: 0.3981953454814002 },\r\n { x: 0.000003018000000000213, y: 0.41164190173657245 },\r\n { x: 0.0000030190000000002133, y: 0.4227552980741416 },\r\n { x: 0.0000030200000000002133, y: 0.406813496279932 },\r\n { x: 0.0000030210000000002134, y: 0.3768096416917782 },\r\n { x: 0.0000030220000000002135, y: 0.3844141254178605 },\r\n { x: 0.0000030230000000002136, y: 0.4120649435874568 },\r\n { x: 0.0000030240000000002136, y: 0.3549973675704156 },\r\n { x: 0.0000030250000000002137, y: 0.3708898309822203 },\r\n { x: 0.0000030260000000002138, y: 0.3969391553780458 },\r\n { x: 0.000003027000000000214, y: 0.382377320147376 },\r\n { x: 0.000003028000000000214, y: 0.3300701749194839 },\r\n { x: 0.000003029000000000214, y: 0.3837147712648412 },\r\n { x: 0.000003030000000000214, y: 0.3403755084052608 },\r\n { x: 0.000003031000000000214, y: 0.3568162204362457 },\r\n { x: 0.0000030320000000002142, y: 0.3368821910534986 },\r\n { x: 0.0000030330000000002143, y: 0.34056802282976156 },\r\n { x: 0.0000030340000000002144, y: 0.366115653732448 },\r\n { x: 0.0000030350000000002145, y: 0.3572496096572387 },\r\n { x: 0.0000030360000000002145, y: 0.3646709559649993 },\r\n { x: 0.0000030370000000002146, y: 0.33690657991855305 },\r\n { x: 0.0000030380000000002147, y: 0.3154571049118399 },\r\n { x: 0.0000030390000000002148, y: 0.29966414252641754 },\r\n { x: 0.000003040000000000215, y: 0.3362027599470729 },\r\n { x: 0.000003041000000000215, y: 0.31900528983251136 },\r\n { x: 0.000003042000000000215, y: 0.28361854565106387 },\r\n { x: 0.000003043000000000215, y: 0.2846837575856401 },\r\n { x: 0.000003044000000000215, y: 0.35317431278448663 },\r\n { x: 0.0000030450000000002152, y: 0.34046490327067497 },\r\n { x: 0.0000030460000000002153, y: 0.30641420057902785 },\r\n { x: 0.0000030470000000002154, y: 0.33581770419394125 },\r\n { x: 0.0000030480000000002154, y: 0.2797312092284034 },\r\n { x: 0.0000030490000000002155, y: 0.31169218424863704 },\r\n { x: 0.0000030500000000002156, y: 0.3038207935241333 },\r\n { x: 0.0000030510000000002157, y: 0.31065702776559545 },\r\n { x: 0.0000030520000000002157, y: 0.2653983856317658 },\r\n { x: 0.000003053000000000216, y: 0.3160817165427984 },\r\n { x: 0.000003054000000000216, y: 0.2453988156782372 },\r\n { x: 0.000003055000000000216, y: 0.27364301833569293 },\r\n { x: 0.000003056000000000216, y: 0.28978325353957424 },\r\n { x: 0.000003057000000000216, y: 0.289429138374783 },\r\n { x: 0.000003058000000000216, y: 0.23388856311114992 },\r\n { x: 0.0000030590000000002163, y: 0.2625998887443979 },\r\n { x: 0.0000030600000000002163, y: 0.2550752269456489 },\r\n { x: 0.0000030610000000002164, y: 0.23716040829134868 },\r\n { x: 0.0000030620000000002165, y: 0.29067004616959263 },\r\n { x: 0.0000030630000000002166, y: 0.2545833654292316 },\r\n { x: 0.0000030640000000002166, y: 0.2785915493959754 },\r\n { x: 0.0000030650000000002167, y: 0.2594440596024477 },\r\n { x: 0.000003066000000000217, y: 0.2344098605281155 },\r\n { x: 0.000003067000000000217, y: 0.278049466724588 },\r\n { x: 0.000003068000000000217, y: 0.24142552610205575 },\r\n { x: 0.000003069000000000217, y: 0.22238654980395367 },\r\n { x: 0.000003070000000000217, y: 0.22484840033692724 },\r\n { x: 0.000003071000000000217, y: 0.25421372980977963 },\r\n { x: 0.0000030720000000002172, y: 0.1928002931157382 },\r\n { x: 0.0000030730000000002173, y: 0.20258772263072228 },\r\n { x: 0.0000030740000000002174, y: 0.19215242906985752 },\r\n { x: 0.0000030750000000002175, y: 0.22943751667200368 },\r\n { x: 0.0000030760000000002175, y: 0.22831532027045068 },\r\n { x: 0.0000030770000000002176, y: 0.2247274319007439 },\r\n { x: 0.0000030780000000002177, y: 0.2016165212043213 },\r\n { x: 0.0000030790000000002178, y: 0.19032976695301407 },\r\n { x: 0.000003080000000000218, y: 0.2217947058632726 },\r\n { x: 0.000003081000000000218, y: 0.16607318625043044 },\r\n { x: 0.000003082000000000218, y: 0.2145097898847822 },\r\n { x: 0.000003083000000000218, y: 0.18801612072921656 },\r\n { x: 0.000003084000000000218, y: 0.15364446770212092 },\r\n { x: 0.0000030850000000002182, y: 0.1725105958329209 },\r\n { x: 0.0000030860000000002183, y: 0.202508031742956 },\r\n { x: 0.0000030870000000002184, y: 0.16338077907630066 },\r\n { x: 0.0000030880000000002184, y: 0.20201724445617755 },\r\n { x: 0.0000030890000000002185, y: 0.1825555719353004 },\r\n { x: 0.0000030900000000002186, y: 0.13946235909936458 },\r\n { x: 0.0000030910000000002187, y: 0.19983230002089208 },\r\n { x: 0.0000030920000000002187, y: 0.1652563963940007 },\r\n { x: 0.000003093000000000219, y: 0.18850838876568207 },\r\n { x: 0.000003094000000000219, y: 0.15775721975836268 },\r\n { x: 0.000003095000000000219, y: 0.14748094851278684 },\r\n { x: 0.000003096000000000219, y: 0.14613755989528324 },\r\n { x: 0.000003097000000000219, y: 0.16243007746773336 },\r\n { x: 0.000003098000000000219, y: 0.11614392897373835 },\r\n { x: 0.0000030990000000002193, y: 0.17391857629837398 },\r\n { x: 0.0000031000000000002193, y: 0.16846458721919216 },\r\n { x: 0.0000031010000000002194, y: 0.11098314924543644 },\r\n { x: 0.0000031020000000002195, y: 0.12013235672924903 },\r\n { x: 0.0000031030000000002196, y: 0.15592045758735146 },\r\n { x: 0.0000031040000000002196, y: 0.113103604715051 },\r\n { x: 0.0000031050000000002197, y: 0.0867237665088789 },\r\n { x: 0.00000310600000000022, y: 0.14164331754798234 },\r\n { x: 0.00000310700000000022, y: 0.1018105913832894 },\r\n { x: 0.00000310800000000022, y: 0.08423680859228798 },\r\n { x: 0.00000310900000000022, y: 0.1279367232241345 },\r\n { x: 0.00000311000000000022, y: 0.13631131677937594 },\r\n { x: 0.00000311100000000022, y: 0.07196775478411119 },\r\n { x: 0.0000031120000000002202, y: 0.08182340242199586 },\r\n { x: 0.0000031130000000002203, y: 0.12444093968135209 },\r\n { x: 0.0000031140000000002204, y: 0.0618410973485449 },\r\n { x: 0.0000031150000000002205, y: 0.048277954160244614 },\r\n { x: 0.0000031160000000002205, y: 0.10348031539114594 },\r\n { x: 0.0000031170000000002206, y: 0.0745442289465314 },\r\n { x: 0.0000031180000000002207, y: 0.0928040707381595 },\r\n { x: 0.0000031190000000002208, y: 0.046277708687501945 },\r\n { x: 0.000003120000000000221, y: 0.036817760413822995 },\r\n { x: 0.000003121000000000221, y: 0.08695253367671232 },\r\n { x: 0.000003122000000000221, y: 0.0537961620201841 },\r\n { x: 0.000003123000000000221, y: 0.024145482030201747 },\r\n { x: 0.000003124000000000221, y: 0.07338781921525296 },\r\n { x: 0.0000031250000000002212, y: 0.04330730800186565 },\r\n { x: 0.0000031260000000002213, y: 0.080496789266035 },\r\n { x: 0.0000031270000000002214, y: 0.06582864789115775 },\r\n { x: 0.0000031280000000002215, y: 0.07159475266312759 },\r\n { x: 0.0000031290000000002215, y: 0.023615505076275092 },\r\n { x: 0.0000031300000000002216, y: 0.016119445946327686 },\r\n { x: 0.0000031310000000002217, y: 0.02547184777855657 },\r\n { x: 0.0000031320000000002218, y: 0.008070974411649744 },\r\n { x: 0.000003133000000000222, y: 0.004521425242816637 },\r\n { x: 0.000003134000000000222, y: -0.013867774518376393 },\r\n { x: 0.000003135000000000222, y: -0.008258604704503274 },\r\n { x: 0.000003136000000000222, y: 0.019756518011564528 },\r\n { x: 0.000003137000000000222, y: 0.05038942016178094 },\r\n { x: 0.000003138000000000222, y: 0.003561422443045455 },\r\n { x: 0.0000031390000000002223, y: -0.01607364358614714 },\r\n { x: 0.0000031400000000002224, y: 0.011048160535796086 },\r\n { x: 0.0000031410000000002224, y: 0.036217591204177134 },\r\n { x: 0.0000031420000000002225, y: -0.025929114482559707 },\r\n { x: 0.0000031430000000002226, y: 0.012088845376476424 },\r\n { x: 0.0000031440000000002227, y: -0.007841197225508486 },\r\n { x: 0.0000031450000000002227, y: -0.04765121447935222 },\r\n { x: 0.000003146000000000223, y: -0.029045177792323792 },\r\n { x: 0.000003147000000000223, y: -0.0163386052260965 },\r\n { x: 0.000003148000000000223, y: -0.0178068154921195 },\r\n { x: 0.000003149000000000223, y: -0.007577665339170293 },\r\n { x: 0.000003150000000000223, y: -0.007326213493127887 },\r\n { x: 0.000003151000000000223, y: 0.0011282456736075239 },\r\n { x: 0.0000031520000000002233, y: 0.002399233538437559 },\r\n { x: 0.0000031530000000002233, y: -0.006291535141147612 },\r\n { x: 0.0000031540000000002234, y: -0.0421436779611103 },\r\n { x: 0.0000031550000000002235, y: -0.006046438340959581 },\r\n { x: 0.0000031560000000002236, y: -0.03597101074862402 },\r\n { x: 0.0000031570000000002236, y: -0.04776129862803823 },\r\n { x: 0.0000031580000000002237, y: -0.060324307299293806 },\r\n { x: 0.0000031590000000002238, y: -0.018506424829098006 },\r\n { x: 0.000003160000000000224, y: -0.032096243208094975 },\r\n { x: 0.000003161000000000224, y: -0.053102077048914176 },\r\n { x: 0.000003162000000000224, y: -0.03461389170152358 },\r\n { x: 0.000003163000000000224, y: -0.08464352030781938 },\r\n { x: 0.000003164000000000224, y: -0.08792258285212184 },\r\n { x: 0.0000031650000000002242, y: -0.07262222209721945 },\r\n { x: 0.0000031660000000002243, y: -0.07251984658163221 },\r\n { x: 0.0000031670000000002244, y: -0.07781332517361249 },\r\n { x: 0.0000031680000000002245, y: -0.061821279456793665 },\r\n { x: 0.0000031690000000002245, y: -0.09001150305994736 },\r\n { x: 0.0000031700000000002246, y: -0.09825695025331492 },\r\n { x: 0.0000031710000000002247, y: -0.07868441470995279 },\r\n { x: 0.0000031720000000002248, y: -0.069302611157724 },\r\n { x: 0.000003173000000000225, y: -0.09709571531145915 },\r\n { x: 0.000003174000000000225, y: -0.112223450186691 },\r\n { x: 0.000003175000000000225, y: -0.10558021348087042 },\r\n { x: 0.000003176000000000225, y: -0.11338631420887024 },\r\n { x: 0.000003177000000000225, y: -0.10723865185474873 },\r\n { x: 0.000003178000000000225, y: -0.1178664527555659 },\r\n { x: 0.0000031790000000002253, y: -0.12841569597506372 },\r\n { x: 0.0000031800000000002254, y: -0.10505018771706184 },\r\n { x: 0.0000031810000000002254, y: -0.11819145667385055 },\r\n { x: 0.0000031820000000002255, y: -0.10513848579865771 },\r\n { x: 0.0000031830000000002256, y: -0.09629801219207604 },\r\n { x: 0.0000031840000000002257, y: -0.11920849849795624 },\r\n { x: 0.0000031850000000002257, y: -0.11432382067114388 },\r\n { x: 0.000003186000000000226, y: -0.17158180299775455 },\r\n { x: 0.000003187000000000226, y: -0.14631068979621983 },\r\n { x: 0.000003188000000000226, y: -0.14270220554174176 },\r\n { x: 0.000003189000000000226, y: -0.10869801972527274 },\r\n { x: 0.000003190000000000226, y: -0.11965933142540354 },\r\n { x: 0.000003191000000000226, y: -0.14328080467863588 },\r\n { x: 0.0000031920000000002263, y: -0.13703113271202907 },\r\n { x: 0.0000031930000000002263, y: -0.14955609660598396 },\r\n { x: 0.0000031940000000002264, y: -0.12958856676034555 },\r\n { x: 0.0000031950000000002265, y: -0.17636690253678883 },\r\n { x: 0.0000031960000000002266, y: -0.1957297799135637 },\r\n { x: 0.0000031970000000002266, y: -0.1328556618146467 },\r\n { x: 0.0000031980000000002267, y: -0.20238190689265145 },\r\n { x: 0.0000031990000000002268, y: -0.19986361088632915 },\r\n { x: 0.000003200000000000227, y: -0.15245731354563163 },\r\n { x: 0.000003201000000000227, y: -0.18309185171994816 },\r\n { x: 0.000003202000000000227, y: -0.15592967224768 },\r\n { x: 0.000003203000000000227, y: -0.1833397941682141 },\r\n { x: 0.000003204000000000227, y: -0.14848274561176203 },\r\n { x: 0.0000032050000000002272, y: -0.21293252990119588 },\r\n { x: 0.0000032060000000002273, y: -0.20670089846435358 },\r\n { x: 0.0000032070000000002274, y: -0.2250640988538285 },\r\n { x: 0.0000032080000000002275, y: -0.18063215680097144 },\r\n { x: 0.0000032090000000002275, y: -0.19657189098040953 },\r\n { x: 0.0000032100000000002276, y: -0.1825096349941638 },\r\n { x: 0.0000032110000000002277, y: -0.22987309390072364 },\r\n { x: 0.0000032120000000002278, y: -0.1727401626466551 },\r\n { x: 0.000003213000000000228, y: -0.2032694780972531 },\r\n { x: 0.000003214000000000228, y: -0.22349687504640525 },\r\n { x: 0.000003215000000000228, y: -0.21559768469535429 },\r\n { x: 0.000003216000000000228, y: -0.20044419893195242 },\r\n { x: 0.000003217000000000228, y: -0.22494299668589535 },\r\n { x: 0.0000032180000000002282, y: -0.19810179838688674 },\r\n { x: 0.0000032190000000002283, y: -0.2065850147813204 },\r\n { x: 0.0000032200000000002284, y: -0.263883990696103 },\r\n { x: 0.0000032210000000002284, y: -0.19668290494141746 },\r\n { x: 0.0000032220000000002285, y: -0.23766348863440098 },\r\n { x: 0.0000032230000000002286, y: -0.23929596781323995 },\r\n { x: 0.0000032240000000002287, y: -0.2628584084615896 },\r\n { x: 0.0000032250000000002287, y: -0.23019862167073676 },\r\n { x: 0.000003226000000000229, y: -0.20962296928612104 },\r\n { x: 0.000003227000000000229, y: -0.2402771797941383 },\r\n { x: 0.000003228000000000229, y: -0.23453381220240455 },\r\n { x: 0.000003229000000000229, y: -0.21835872143803414 },\r\n { x: 0.000003230000000000229, y: -0.24320153679802786 },\r\n { x: 0.000003231000000000229, y: -0.21995426407035332 },\r\n { x: 0.0000032320000000002293, y: -0.23317596411649277 },\r\n { x: 0.0000032330000000002293, y: -0.24335524815207946 },\r\n { x: 0.0000032340000000002294, y: -0.2575702837710187 },\r\n { x: 0.0000032350000000002295, y: -0.24750473097698494 },\r\n { x: 0.0000032360000000002296, y: -0.26549117799091665 },\r\n { x: 0.0000032370000000002296, y: -0.3005802998467446 },\r\n { x: 0.0000032380000000002297, y: -0.2560173130055039 },\r\n { x: 0.00000323900000000023, y: -0.26255952415041833 },\r\n { x: 0.00000324000000000023, y: -0.26787977321275974 },\r\n { x: 0.00000324100000000023, y: -0.3128612839672932 },\r\n { x: 0.00000324200000000023, y: -0.25363439741186045 },\r\n { x: 0.00000324300000000023, y: -0.2681249756672638 },\r\n { x: 0.00000324400000000023, y: -0.28766066198157186 },\r\n { x: 0.0000032450000000002302, y: -0.31026900725854684 },\r\n { x: 0.0000032460000000002303, y: -0.26197857745283765 },\r\n { x: 0.0000032470000000002304, y: -0.28605978731504556 },\r\n { x: 0.0000032480000000002305, y: -0.2757398766915066 },\r\n { x: 0.0000032490000000002305, y: -0.2940890564747056 },\r\n { x: 0.0000032500000000002306, y: -0.30220323602330446 },\r\n { x: 0.0000032510000000002307, y: -0.31187971075659926 },\r\n { x: 0.0000032520000000002308, y: -0.2711151105613403 },\r\n { x: 0.000003253000000000231, y: -0.2819339857522497 },\r\n { x: 0.000003254000000000231, y: -0.320950666299713 },\r\n { x: 0.000003255000000000231, y: -0.3011302478983241 },\r\n { x: 0.000003256000000000231, y: -0.30392750928871703 },\r\n { x: 0.000003257000000000231, y: -0.3066540546928292 },\r\n { x: 0.0000032580000000002312, y: -0.28315074253011896 },\r\n { x: 0.0000032590000000002313, y: -0.3446284481543926 },\r\n { x: 0.0000032600000000002314, y: -0.33369180319692887 },\r\n { x: 0.0000032610000000002314, y: -0.35171585021294194 },\r\n { x: 0.0000032620000000002315, y: -0.35587190183813217 },\r\n { x: 0.0000032630000000002316, y: -0.3551912691799734 },\r\n { x: 0.0000032640000000002317, y: -0.3047312489526631 },\r\n { x: 0.0000032650000000002317, y: -0.3695141056737187 },\r\n { x: 0.000003266000000000232, y: -0.29773854277882816 },\r\n { x: 0.000003267000000000232, y: -0.3234624836000543 },\r\n { x: 0.000003268000000000232, y: -0.31303395251938476 },\r\n { x: 0.000003269000000000232, y: -0.3094279994146796 },\r\n { x: 0.000003270000000000232, y: -0.3078721814054921 },\r\n { x: 0.000003271000000000232, y: -0.3644995182120665 },\r\n { x: 0.0000032720000000002323, y: -0.32052497644139016 },\r\n { x: 0.0000032730000000002323, y: -0.3612296918116466 },\r\n { x: 0.0000032740000000002324, y: -0.3845514084133653 },\r\n { x: 0.0000032750000000002325, y: -0.3352647633035219 },\r\n { x: 0.0000032760000000002326, y: -0.38629194706877706 },\r\n { x: 0.0000032770000000002326, y: -0.33646038849190724 },\r\n { x: 0.0000032780000000002327, y: -0.33771439821716404 },\r\n { x: 0.000003279000000000233, y: -0.3625537403021551 },\r\n { x: 0.000003280000000000233, y: -0.3597311040206693 },\r\n { x: 0.000003281000000000233, y: -0.39072950317698646 },\r\n { x: 0.000003282000000000233, y: -0.39623566299201884 },\r\n { x: 0.000003283000000000233, y: -0.38215208143277896 },\r\n { x: 0.000003284000000000233, y: -0.3917836292581149 },\r\n { x: 0.0000032850000000002332, y: -0.36567290155416365 },\r\n { x: 0.0000032860000000002333, y: -0.3861388181125698 },\r\n { x: 0.0000032870000000002334, y: -0.3523647937978871 },\r\n { x: 0.0000032880000000002335, y: -0.3805280394428058 },\r\n { x: 0.0000032890000000002335, y: -0.3601980786089182 },\r\n { x: 0.0000032900000000002336, y: -0.4069788986463119 },\r\n { x: 0.0000032910000000002337, y: -0.3785712104587992 },\r\n { x: 0.0000032920000000002338, y: -0.39830714084951396 },\r\n { x: 0.000003293000000000234, y: -0.36558462711917594 },\r\n { x: 0.000003294000000000234, y: -0.37060109999113494 },\r\n { x: 0.000003295000000000234, y: -0.39075817549185976 },\r\n { x: 0.000003296000000000234, y: -0.4098639912715285 },\r\n { x: 0.000003297000000000234, y: -0.42514301238466623 },\r\n { x: 0.0000032980000000002342, y: -0.41381132713806307 },\r\n { x: 0.0000032990000000002343, y: -0.3940111248717238 },\r\n { x: 0.0000033000000000002344, y: -0.3656879597311707 },\r\n { x: 0.0000033010000000002344, y: -0.39988472434384853 },\r\n { x: 0.0000033020000000002345, y: -0.3843851746879992 },\r\n { x: 0.0000033030000000002346, y: -0.4139074208607734 },\r\n { x: 0.0000033040000000002347, y: -0.43210466402937187 },\r\n { x: 0.0000033050000000002347, y: -0.4270867612755586 },\r\n { x: 0.000003306000000000235, y: -0.38795782943102686 },\r\n { x: 0.000003307000000000235, y: -0.44407180305114 },\r\n { x: 0.000003308000000000235, y: -0.39236277165585937 },\r\n { x: 0.000003309000000000235, y: -0.40936804930321896 },\r\n { x: 0.000003310000000000235, y: -0.4533937391137786 },\r\n { x: 0.000003311000000000235, y: -0.4457371309648657 },\r\n { x: 0.0000033120000000002353, y: -0.4518031233377471 },\r\n { x: 0.0000033130000000002353, y: -0.39121414235564894 },\r\n { x: 0.0000033140000000002354, y: -0.41304048490929246 },\r\n { x: 0.0000033150000000002355, y: -0.42432168322533526 },\r\n { x: 0.0000033160000000002356, y: -0.4190628299984415 },\r\n { x: 0.0000033170000000002357, y: -0.42603303616051974 },\r\n { x: 0.0000033180000000002357, y: -0.40321975394738696 },\r\n { x: 0.000003319000000000236, y: -0.458900665567852 },\r\n { x: 0.000003320000000000236, y: -0.4465875197416527 },\r\n { x: 0.000003321000000000236, y: -0.4319538881855717 },\r\n { x: 0.000003322000000000236, y: -0.4012601474818814 },\r\n { x: 0.000003323000000000236, y: -0.46349198131654906 },\r\n { x: 0.000003324000000000236, y: -0.40260077434299296 },\r\n { x: 0.0000033250000000002363, y: -0.41759161301765846 },\r\n { x: 0.0000033260000000002363, y: -0.4564701345365595 },\r\n { x: 0.0000033270000000002364, y: -0.42929664513164184 },\r\n { x: 0.0000033280000000002365, y: -0.44934059186737174 },\r\n { x: 0.0000033290000000002366, y: -0.40992085894860364 },\r\n { x: 0.0000033300000000002366, y: -0.45899672179313145 },\r\n { x: 0.0000033310000000002367, y: -0.46187235042490177 },\r\n { x: 0.0000033320000000002368, y: -0.4359261883539441 },\r\n { x: 0.000003333000000000237, y: -0.4552694730507883 },\r\n { x: 0.000003334000000000237, y: -0.46914201535026984 },\r\n { x: 0.000003335000000000237, y: -0.4506924755248122 },\r\n { x: 0.000003336000000000237, y: -0.4230892515715711 },\r\n { x: 0.000003337000000000237, y: -0.43896077663713096 },\r\n { x: 0.0000033380000000002372, y: -0.44355802269292366 },\r\n { x: 0.0000033390000000002373, y: -0.41985931681295474 },\r\n { x: 0.0000033400000000002374, y: -0.42487617145748297 },\r\n { x: 0.0000033410000000002375, y: -0.4906351271915709 },\r\n { x: 0.0000033420000000002375, y: -0.4322946262621722 },\r\n { x: 0.0000033430000000002376, y: -0.4392522710798343 },\r\n { x: 0.0000033440000000002377, y: -0.48224643296253833 },\r\n { x: 0.0000033450000000002378, y: -0.4445783971653301 },\r\n { x: 0.000003346000000000238, y: -0.47998888745389084 },\r\n { x: 0.000003347000000000238, y: -0.48352992227983355 },\r\n { x: 0.000003348000000000238, y: -0.4776838334682925 },\r\n { x: 0.000003349000000000238, y: -0.46020099686273125 },\r\n { x: 0.000003350000000000238, y: -0.4889175344431014 },\r\n { x: 0.000003351000000000238, y: -0.5080130640643018 },\r\n { x: 0.0000033520000000002383, y: -0.4570187752743036 },\r\n { x: 0.0000033530000000002384, y: -0.44019251394662606 },\r\n { x: 0.0000033540000000002384, y: -0.48940086737649385 },\r\n { x: 0.0000033550000000002385, y: -0.5042097214121938 },\r\n { x: 0.0000033560000000002386, y: -0.4592499172029625 },\r\n { x: 0.0000033570000000002387, y: -0.48132900169488396 },\r\n { x: 0.0000033580000000002387, y: -0.47273307843874096 },\r\n { x: 0.000003359000000000239, y: -0.47338698808537516 },\r\n { x: 0.000003360000000000239, y: -0.47596175388950285 },\r\n { x: 0.000003361000000000239, y: -0.4491708936328956 },\r\n { x: 0.000003362000000000239, y: -0.4880457437460077 },\r\n { x: 0.000003363000000000239, y: -0.4699143829924888 },\r\n { x: 0.000003364000000000239, y: -0.48143039502553003 },\r\n { x: 0.0000033650000000002393, y: -0.4995556689188391 },\r\n { x: 0.0000033660000000002393, y: -0.5028351419291084 },\r\n { x: 0.0000033670000000002394, y: -0.45841223340669646 },\r\n { x: 0.0000033680000000002395, y: -0.4651918188206114 },\r\n { x: 0.0000033690000000002396, y: -0.5162724889876089 },\r\n { x: 0.0000033700000000002396, y: -0.5039806482194678 },\r\n { x: 0.0000033710000000002397, y: -0.48341429460868873 },\r\n { x: 0.0000033720000000002398, y: -0.4853878765314375 },\r\n { x: 0.00000337300000000024, y: -0.4851549312033639 },\r\n { x: 0.00000337400000000024, y: -0.48846185523069485 },\r\n { x: 0.00000337500000000024, y: -0.5265970638481733 },\r\n { x: 0.00000337600000000024, y: -0.4663972157548419 },\r\n { x: 0.00000337700000000024, y: -0.47227015825980817 },\r\n { x: 0.0000033780000000002402, y: -0.48303384495975865 },\r\n { x: 0.0000033790000000002403, y: -0.4617097551322422 },\r\n { x: 0.0000033800000000002404, y: -0.46327308251596017 },\r\n { x: 0.0000033810000000002405, y: -0.5323201871797948 },\r\n { x: 0.0000033820000000002405, y: -0.48123870037568717 },\r\n { x: 0.0000033830000000002406, y: -0.4698039281641798 },\r\n { x: 0.0000033840000000002407, y: -0.4678571682602047 },\r\n { x: 0.0000033850000000002408, y: -0.497385865650122 },\r\n { x: 0.000003386000000000241, y: -0.4620324985512965 },\r\n { x: 0.000003387000000000241, y: -0.4945356794423756 },\r\n { x: 0.000003388000000000241, y: -0.5046073428147386 },\r\n { x: 0.000003389000000000241, y: -0.5208774151540554 },\r\n { x: 0.000003390000000000241, y: -0.46267487501891547 },\r\n { x: 0.000003391000000000241, y: -0.5130503052074072 },\r\n { x: 0.0000033920000000002413, y: -0.46667050386247094 },\r\n { x: 0.0000033930000000002414, y: -0.5121424223169877 },\r\n { x: 0.0000033940000000002414, y: -0.5356740779090764 },\r\n { x: 0.0000033950000000002415, y: -0.49574614119425703 },\r\n { x: 0.0000033960000000002416, y: -0.5200768662370949 },\r\n { x: 0.0000033970000000002417, y: -0.47816794007455543 },\r\n { x: 0.0000033980000000002417, y: -0.48187589039332557 },\r\n { x: 0.000003399000000000242, y: -0.4895635602555801 },\r\n { x: 0.000003400000000000242, y: -0.4708707234203284 },\r\n { x: 0.000003401000000000242, y: -0.48662368910263176 },\r\n { x: 0.000003402000000000242, y: -0.4737487090341167 },\r\n { x: 0.000003403000000000242, y: -0.5359646637329821 },\r\n { x: 0.000003404000000000242, y: -0.5010467308251905 },\r\n { x: 0.0000034050000000002423, y: -0.5430969129956867 },\r\n { x: 0.0000034060000000002423, y: -0.5217820996677304 },\r\n { x: 0.0000034070000000002424, y: -0.46803470881806003 },\r\n { x: 0.0000034080000000002425, y: -0.5092035959067122 },\r\n { x: 0.0000034090000000002426, y: -0.5324984696629461 },\r\n { x: 0.0000034100000000002426, y: -0.47356140853013473 },\r\n { x: 0.0000034110000000002427, y: -0.4699484150184648 },\r\n { x: 0.0000034120000000002428, y: -0.5061056341797864 },\r\n { x: 0.000003413000000000243, y: -0.5220315411680886 },\r\n { x: 0.000003414000000000243, y: -0.5344556708890145 },\r\n { x: 0.000003415000000000243, y: -0.5105210568076236 },\r\n { x: 0.000003416000000000243, y: -0.5058322289759033 },\r\n { x: 0.000003417000000000243, y: -0.4749915890034718 },\r\n { x: 0.0000034180000000002432, y: -0.4830163408410244 },\r\n { x: 0.0000034190000000002433, y: -0.500120757881822 },\r\n { x: 0.0000034200000000002434, y: -0.5183813308321358 },\r\n { x: 0.0000034210000000002435, y: -0.5083635160491194 },\r\n { x: 0.0000034220000000002435, y: -0.5111336946392137 },\r\n { x: 0.0000034230000000002436, y: -0.5216465973073167 },\r\n { x: 0.0000034240000000002437, y: -0.4725649568070156 },\r\n { x: 0.0000034250000000002438, y: -0.4820619153910591 },\r\n { x: 0.000003426000000000244, y: -0.48346102957121456 },\r\n { x: 0.000003427000000000244, y: -0.4892946731753036 },\r\n { x: 0.000003428000000000244, y: -0.5450338605682216 },\r\n { x: 0.000003429000000000244, y: -0.48959027268535804 },\r\n { x: 0.000003430000000000244, y: -0.50472994888099 },\r\n { x: 0.0000034310000000002442, y: -0.5135689790534533 },\r\n { x: 0.0000034320000000002443, y: -0.4728151076186395 },\r\n { x: 0.0000034330000000002444, y: -0.5031203456151376 },\r\n { x: 0.0000034340000000002444, y: -0.5120911610624209 },\r\n { x: 0.0000034350000000002445, y: -0.51298601836823 },\r\n { x: 0.0000034360000000002446, y: -0.481967249319706 },\r\n { x: 0.0000034370000000002447, y: -0.5133655741441281 },\r\n { x: 0.0000034380000000002447, y: -0.49720719887826503 },\r\n { x: 0.000003439000000000245, y: -0.49778833678371104 },\r\n { x: 0.000003440000000000245, y: -0.5035301219618319 },\r\n { x: 0.000003441000000000245, y: -0.4857897399439753 },\r\n { x: 0.000003442000000000245, y: -0.5433254539273844 },\r\n { x: 0.000003443000000000245, y: -0.47332055408714946 },\r\n { x: 0.000003444000000000245, y: -0.49267424280923644 },\r\n { x: 0.0000034450000000002453, y: -0.48890168449127547 },\r\n { x: 0.0000034460000000002453, y: -0.5256139383265327 },\r\n { x: 0.0000034470000000002454, y: -0.49984946873105185 },\r\n { x: 0.0000034480000000002455, y: -0.47658034946026606 },\r\n { x: 0.0000034490000000002456, y: -0.4812121899614879 },\r\n { x: 0.0000034500000000002456, y: -0.5246701603561381 },\r\n { x: 0.0000034510000000002457, y: -0.48245242932259336 },\r\n { x: 0.000003452000000000246, y: -0.5104302529328206 },\r\n { x: 0.000003453000000000246, y: -0.5279744240133445 },\r\n { x: 0.000003454000000000246, y: -0.53868042739691 },\r\n { x: 0.000003455000000000246, y: -0.5124553082017602 },\r\n { x: 0.000003456000000000246, y: -0.5055019346625338 },\r\n { x: 0.000003457000000000246, y: -0.48255370881578524 },\r\n { x: 0.0000034580000000002462, y: -0.477159364636299 },\r\n { x: 0.0000034590000000002463, y: -0.5092100952193521 },\r\n { x: 0.0000034600000000002464, y: -0.46933562982000465 },\r\n { x: 0.0000034610000000002465, y: -0.48304966980503167 },\r\n { x: 0.0000034620000000002465, y: -0.5386474112103674 },\r\n { x: 0.0000034630000000002466, y: -0.47739558950233807 },\r\n { x: 0.0000034640000000002467, y: -0.5238820088670073 },\r\n { x: 0.0000034650000000002468, y: -0.5032957578884067 },\r\n { x: 0.000003466000000000247, y: -0.5133049718659941 },\r\n { x: 0.000003467000000000247, y: -0.46391888156022615 },\r\n { x: 0.000003468000000000247, y: -0.5260654126593264 },\r\n { x: 0.000003469000000000247, y: -0.47342561988462284 },\r\n { x: 0.000003470000000000247, y: -0.532666635371735 },\r\n { x: 0.0000034710000000002472, y: -0.4928412794931368 },\r\n { x: 0.0000034720000000002473, y: -0.4881621009023802 },\r\n { x: 0.0000034730000000002474, y: -0.48056713580290095 },\r\n { x: 0.0000034740000000002474, y: -0.5278160091834466 },\r\n { x: 0.0000034750000000002475, y: -0.5265244163484548 },\r\n { x: 0.0000034760000000002476, y: -0.5120194064018518 },\r\n { x: 0.0000034770000000002477, y: -0.48062304036662823 },\r\n { x: 0.0000034780000000002477, y: -0.4951684941951898 },\r\n { x: 0.000003479000000000248, y: -0.46300134956831474 },\r\n { x: 0.000003480000000000248, y: -0.4936239389524993 },\r\n { x: 0.000003481000000000248, y: -0.5282890262751992 },\r\n { x: 0.000003482000000000248, y: -0.4927372239091787 },\r\n { x: 0.000003483000000000248, y: -0.45963135150194434 },\r\n { x: 0.000003484000000000248, y: -0.4799386086758681 },\r\n { x: 0.0000034850000000002483, y: -0.4741355191067588 },\r\n { x: 0.0000034860000000002483, y: -0.5056293345535302 },\r\n { x: 0.0000034870000000002484, y: -0.46620443716361404 },\r\n { x: 0.0000034880000000002485, y: -0.48545971890883177 },\r\n { x: 0.0000034890000000002486, y: -0.46527067363364866 },\r\n { x: 0.0000034900000000002486, y: -0.4831903162716123 },\r\n { x: 0.0000034910000000002487, y: -0.44715006433764426 },\r\n { x: 0.000003492000000000249, y: -0.44918297891699044 },\r\n { x: 0.000003493000000000249, y: -0.5028049864953128 },\r\n { x: 0.000003494000000000249, y: -0.47481660347534466 },\r\n { x: 0.000003495000000000249, y: -0.4585100146196142 },\r\n { x: 0.000003496000000000249, y: -0.5007301933732508 },\r\n { x: 0.000003497000000000249, y: -0.49530624110010585 },\r\n { x: 0.0000034980000000002492, y: -0.4886066863321506 },\r\n { x: 0.0000034990000000002493, y: -0.46181468369258627 },\r\n { x: 0.0000035000000000002494, y: -0.4414797612982536 },\r\n { x: 0.0000035010000000002495, y: -0.48761326669803884 },\r\n { x: 0.0000035020000000002495, y: -0.45523858038352677 },\r\n { x: 0.0000035030000000002496, y: -0.48751556058423334 },\r\n { x: 0.0000035040000000002497, y: -0.47293139780081983 },\r\n { x: 0.0000035050000000002498, y: -0.4727365413504359 },\r\n { x: 0.00000350600000000025, y: -0.494384143450404 },\r\n { x: 0.00000350700000000025, y: -0.5020347011411954 },\r\n { x: 0.00000350800000000025, y: -0.4854032546445812 },\r\n { x: 0.00000350900000000025, y: -0.4378126710250092 },\r\n { x: 0.00000351000000000025, y: -0.4870794009111852 },\r\n { x: 0.0000035110000000002502, y: -0.4421357932399356 },\r\n { x: 0.0000035120000000002503, y: -0.4407106811481119 },\r\n { x: 0.0000035130000000002504, y: -0.43705624681269606 },\r\n { x: 0.0000035140000000002505, y: -0.47823457672802244 },\r\n { x: 0.0000035150000000002505, y: -0.44238240809045537 },\r\n { x: 0.0000035160000000002506, y: -0.4954458579680961 },\r\n { x: 0.0000035170000000002507, y: -0.48700039320880223 },\r\n { x: 0.0000035180000000002508, y: -0.4418755065564143 },\r\n { x: 0.000003519000000000251, y: -0.48374262136466056 },\r\n { x: 0.000003520000000000251, y: -0.42831307036376315 },\r\n { x: 0.000003521000000000251, y: -0.4931125632016287 },\r\n { x: 0.000003522000000000251, y: -0.42298332736388555 },\r\n { x: 0.000003523000000000251, y: -0.41921811446590773 },\r\n { x: 0.000003524000000000251, y: -0.4443428252129152 },\r\n { x: 0.0000035250000000002513, y: -0.4275281969079634 },\r\n { x: 0.0000035260000000002514, y: -0.4216176969865052 },\r\n { x: 0.0000035270000000002514, y: -0.47657910850479945 },\r\n { x: 0.0000035280000000002515, y: -0.48414135220180166 },\r\n { x: 0.0000035290000000002516, y: -0.4224316935851882 },\r\n { x: 0.0000035300000000002517, y: -0.4340089251878088 },\r\n { x: 0.0000035310000000002517, y: -0.45696771258156077 },\r\n { x: 0.000003532000000000252, y: -0.4723654128481427 },\r\n { x: 0.000003533000000000252, y: -0.4250142480003609 },\r\n { x: 0.000003534000000000252, y: -0.46463966171388654 },\r\n { x: 0.000003535000000000252, y: -0.4642531239227323 },\r\n { x: 0.000003536000000000252, y: -0.4227637029382053 },\r\n { x: 0.000003537000000000252, y: -0.41372880806107465 },\r\n { x: 0.0000035380000000002523, y: -0.42003325226386423 },\r\n { x: 0.0000035390000000002523, y: -0.43369314130179293 },\r\n { x: 0.0000035400000000002524, y: -0.4464395469045033 },\r\n { x: 0.0000035410000000002525, y: -0.43744871583252454 },\r\n { x: 0.0000035420000000002526, y: -0.4045531914155711 },\r\n { x: 0.0000035430000000002526, y: -0.417723569708116 },\r\n { x: 0.0000035440000000002527, y: -0.42307309466591725 },\r\n { x: 0.0000035450000000002528, y: -0.43096106808602325 },\r\n { x: 0.000003546000000000253, y: -0.4384196413078245 },\r\n { x: 0.000003547000000000253, y: -0.4094897236894357 },\r\n { x: 0.000003548000000000253, y: -0.40827562283307 },\r\n { x: 0.000003549000000000253, y: -0.43892307840916434 },\r\n { x: 0.000003550000000000253, y: -0.4495668105210173 },\r\n { x: 0.0000035510000000002532, y: -0.4437937572875227 },\r\n { x: 0.0000035520000000002533, y: -0.44101229955160387 },\r\n { x: 0.0000035530000000002534, y: -0.414484788430339 },\r\n { x: 0.0000035540000000002535, y: -0.4207343911274903 },\r\n { x: 0.0000035550000000002535, y: -0.41017657922288625 },\r\n { x: 0.0000035560000000002536, y: -0.40033580209028563 },\r\n { x: 0.0000035570000000002537, y: -0.43270020968328615 },\r\n { x: 0.0000035580000000002538, y: -0.3957656045788688 },\r\n { x: 0.000003559000000000254, y: -0.4086050468784142 },\r\n { x: 0.000003560000000000254, y: -0.38708944896985537 },\r\n { x: 0.000003561000000000254, y: -0.3778883059082055 },\r\n { x: 0.000003562000000000254, y: -0.41155123943530275 },\r\n { x: 0.000003563000000000254, y: -0.4201518677611237 },\r\n { x: 0.000003564000000000254, y: -0.411451642593377 },\r\n { x: 0.0000035650000000002543, y: -0.40073518374551265 },\r\n { x: 0.0000035660000000002544, y: -0.38463669291867275 },\r\n { x: 0.0000035670000000002544, y: -0.36792649443565906 },\r\n { x: 0.0000035680000000002545, y: -0.37121912023541276 },\r\n { x: 0.0000035690000000002546, y: -0.3780521088974908 },\r\n { x: 0.0000035700000000002547, y: -0.41922496455085995 },\r\n { x: 0.0000035710000000002547, y: -0.3598788971001736 },\r\n { x: 0.000003572000000000255, y: -0.3576593851382572 },\r\n { x: 0.000003573000000000255, y: -0.37838148784026215 },\r\n { x: 0.000003574000000000255, y: -0.39305476937277106 },\r\n { x: 0.000003575000000000255, y: -0.3692740279028207 },\r\n { x: 0.000003576000000000255, y: -0.3524498339546062 },\r\n { x: 0.000003577000000000255, y: -0.3607024972073173 },\r\n { x: 0.0000035780000000002553, y: -0.34694233262463503 },\r\n { x: 0.0000035790000000002553, y: -0.4030693051818707 },\r\n { x: 0.0000035800000000002554, y: -0.34855468096083875 },\r\n { x: 0.0000035810000000002555, y: -0.4111570819537663 },\r\n { x: 0.0000035820000000002556, y: -0.3827894007463801 },\r\n { x: 0.0000035830000000002556, y: -0.36248214901864145 },\r\n { x: 0.0000035840000000002557, y: -0.39250965308524993 },\r\n { x: 0.0000035850000000002558, y: -0.33866768369186984 },\r\n { x: 0.000003586000000000256, y: -0.36670883733409976 },\r\n { x: 0.000003587000000000256, y: -0.38529160309611027 },\r\n { x: 0.000003588000000000256, y: -0.3694312142353537 },\r\n { x: 0.000003589000000000256, y: -0.3588401829077657 },\r\n { x: 0.000003590000000000256, y: -0.37426738167768786 },\r\n { x: 0.0000035910000000002562, y: -0.3298212056752513 },\r\n { x: 0.0000035920000000002563, y: -0.3721072097648827 },\r\n { x: 0.0000035930000000002564, y: -0.33561113826302136 },\r\n { x: 0.0000035940000000002565, y: -0.3402560732496043 },\r\n { x: 0.0000035950000000002565, y: -0.32990161610473756 },\r\n { x: 0.0000035960000000002566, y: -0.3359725140646908 },\r\n { x: 0.0000035970000000002567, y: -0.3329339805505544 },\r\n { x: 0.0000035980000000002568, y: -0.35354569369080197 },\r\n { x: 0.000003599000000000257, y: -0.3685534624418669 },\r\n { x: 0.000003600000000000257, y: -0.32619655000741493 },\r\n { x: 0.000003601000000000257, y: -0.31579671439314805 },\r\n { x: 0.000003602000000000257, y: -0.3546636311581846 },\r\n { x: 0.000003603000000000257, y: -0.34935332915164097 },\r\n { x: 0.0000036040000000002572, y: -0.30638394515008566 },\r\n { x: 0.0000036050000000002573, y: -0.34564983882546896 },\r\n { x: 0.0000036060000000002574, y: -0.3075908962299332 },\r\n { x: 0.0000036070000000002574, y: -0.3482621030863398 },\r\n { x: 0.0000036080000000002575, y: -0.32401141902757324 },\r\n { x: 0.0000036090000000002576, y: -0.32210123078909003 },\r\n { x: 0.0000036100000000002577, y: -0.3601064861979281 },\r\n { x: 0.0000036110000000002577, y: -0.35994246540699526 },\r\n { x: 0.000003612000000000258, y: -0.31026024721790463 },\r\n { x: 0.000003613000000000258, y: -0.3468661461519508 },\r\n { x: 0.000003614000000000258, y: -0.34696531869246944 },\r\n { x: 0.000003615000000000258, y: -0.2939104035331667 },\r\n { x: 0.000003616000000000258, y: -0.29927713591841876 },\r\n { x: 0.000003617000000000258, y: -0.2978802850986503 },\r\n { x: 0.0000036180000000002583, y: -0.32739006619406275 },\r\n { x: 0.0000036190000000002583, y: -0.3432618211548486 },\r\n { x: 0.0000036200000000002584, y: -0.32962241289739336 },\r\n { x: 0.0000036210000000002585, y: -0.333000396896873 },\r\n { x: 0.0000036220000000002586, y: -0.27187342488646077 },\r\n { x: 0.0000036230000000002586, y: -0.32310677145593636 },\r\n { x: 0.0000036240000000002587, y: -0.31138243406721333 },\r\n { x: 0.000003625000000000259, y: -0.2781419232513508 },\r\n { x: 0.000003626000000000259, y: -0.32534764665539856 },\r\n { x: 0.000003627000000000259, y: -0.2887942310638763 },\r\n { x: 0.000003628000000000259, y: -0.3177000763587596 },\r\n { x: 0.000003629000000000259, y: -0.2702926364032007 },\r\n { x: 0.000003630000000000259, y: -0.2594343788403857 },\r\n { x: 0.0000036310000000002592, y: -0.29421208722767156 },\r\n { x: 0.0000036320000000002593, y: -0.2627682461366655 },\r\n { x: 0.0000036330000000002594, y: -0.2555084706475671 },\r\n { x: 0.0000036340000000002595, y: -0.2532145307590628 },\r\n { x: 0.0000036350000000002595, y: -0.28650509330706775 },\r\n { x: 0.0000036360000000002596, y: -0.25954227477010483 },\r\n { x: 0.0000036370000000002597, y: -0.26726641110326715 },\r\n { x: 0.0000036380000000002598, y: -0.2448949747942874 },\r\n { x: 0.00000363900000000026, y: -0.2541127466898014 },\r\n { x: 0.00000364000000000026, y: -0.23804057402761264 },\r\n { x: 0.00000364100000000026, y: -0.30197860546408584 },\r\n { x: 0.00000364200000000026, y: -0.23636164774994223 },\r\n { x: 0.00000364300000000026, y: -0.2825543030568763 },\r\n { x: 0.0000036440000000002602, y: -0.2462358330935048 },\r\n { x: 0.0000036450000000002603, y: -0.25298696589684283 },\r\n { x: 0.0000036460000000002604, y: -0.28632157433387756 },\r\n { x: 0.0000036470000000002604, y: -0.24189613071708943 },\r\n { x: 0.0000036480000000002605, y: -0.27929765100481707 },\r\n { x: 0.0000036490000000002606, y: -0.24538113269853357 },\r\n { x: 0.0000036500000000002607, y: -0.30671804232370703 },\r\n { x: 0.0000036510000000002607, y: -0.27011607694196776 },\r\n { x: 0.000003652000000000261, y: -0.2704556345261621 },\r\n { x: 0.000003653000000000261, y: -0.20846417085623825 },\r\n { x: 0.000003654000000000261, y: -0.24955499373783827 },\r\n { x: 0.000003655000000000261, y: -0.23966322472828874 },\r\n { x: 0.000003656000000000261, y: -0.20217928635807403 },\r\n { x: 0.000003657000000000261, y: -0.2331115638985148 },\r\n { x: 0.0000036580000000002613, y: -0.2518084692635158 },\r\n { x: 0.0000036590000000002613, y: -0.1967162632898379 },\r\n { x: 0.0000036600000000002614, y: -0.229230772125001 },\r\n { x: 0.0000036610000000002615, y: -0.24155952779605738 },\r\n { x: 0.0000036620000000002616, y: -0.19270218586418894 },\r\n { x: 0.0000036630000000002616, y: -0.20403264636119314 },\r\n { x: 0.0000036640000000002617, y: -0.21169111740173982 },\r\n { x: 0.000003665000000000262, y: -0.2065747463751475 },\r\n { x: 0.000003666000000000262, y: -0.19891970538654696 },\r\n { x: 0.000003667000000000262, y: -0.17887093561196377 },\r\n { x: 0.000003668000000000262, y: -0.2291886517264323 },\r\n { x: 0.000003669000000000262, y: -0.23654613045993622 },\r\n { x: 0.000003670000000000262, y: -0.20729525999690526 },\r\n { x: 0.0000036710000000002622, y: -0.2115888538305148 },\r\n { x: 0.0000036720000000002623, y: -0.1704036367750172 },\r\n { x: 0.0000036730000000002624, y: -0.23452835792419793 },\r\n { x: 0.0000036740000000002625, y: -0.17070056448078622 },\r\n { x: 0.0000036750000000002625, y: -0.20989690052347934 },\r\n { x: 0.0000036760000000002626, y: -0.19692221732919457 },\r\n { x: 0.0000036770000000002627, y: -0.20226596597948124 },\r\n { x: 0.0000036780000000002628, y: -0.20522115224395693 },\r\n { x: 0.000003679000000000263, y: -0.19483299544647903 },\r\n { x: 0.000003680000000000263, y: -0.19388613010249903 },\r\n { x: 0.000003681000000000263, y: -0.19639733680596577 },\r\n { x: 0.000003682000000000263, y: -0.1689390503621976 },\r\n { x: 0.000003683000000000263, y: -0.17044731403759816 },\r\n { x: 0.0000036840000000002632, y: -0.19374204089790645 },\r\n { x: 0.0000036850000000002633, y: -0.1675409975689446 },\r\n { x: 0.0000036860000000002634, y: -0.20660545043739661 },\r\n { x: 0.0000036870000000002634, y: -0.13681171288243932 },\r\n { x: 0.0000036880000000002635, y: -0.15826465425074074 },\r\n { x: 0.0000036890000000002636, y: -0.16916622588979255 },\r\n { x: 0.0000036900000000002637, y: -0.14023553121659668 },\r\n { x: 0.0000036910000000002637, y: -0.13912450403781482 },\r\n { x: 0.000003692000000000264, y: -0.13067589983627853 },\r\n { x: 0.000003693000000000264, y: -0.15337280039374465 },\r\n { x: 0.000003694000000000264, y: -0.15825999611915012 },\r\n { x: 0.000003695000000000264, y: -0.13281732910952154 },\r\n { x: 0.000003696000000000264, y: -0.17229501014605386 },\r\n { x: 0.000003697000000000264, y: -0.1806662620280943 },\r\n { x: 0.0000036980000000002643, y: -0.12499329559714006 },\r\n { x: 0.0000036990000000002643, y: -0.11543293729059019 },\r\n { x: 0.0000037000000000002644, y: -0.12316933529103916 },\r\n { x: 0.0000037010000000002645, y: -0.1701944322110603 },\r\n { x: 0.0000037020000000002646, y: -0.10769377268663166 },\r\n { x: 0.0000037030000000002646, y: -0.11406562621180977 },\r\n { x: 0.0000037040000000002647, y: -0.17386146748736747 },\r\n { x: 0.000003705000000000265, y: -0.11012940213678613 },\r\n { x: 0.000003706000000000265, y: -0.12978672581222384 },\r\n { x: 0.000003707000000000265, y: -0.13296115344051507 },\r\n { x: 0.000003708000000000265, y: -0.11691147963342609 },\r\n { x: 0.000003709000000000265, y: -0.13230472974168364 },\r\n { x: 0.000003710000000000265, y: -0.10915405048248283 },\r\n { x: 0.0000037110000000002653, y: -0.10909443635017188 },\r\n { x: 0.0000037120000000002653, y: -0.09826664037124794 },\r\n { x: 0.0000037130000000002654, y: -0.09970068231943655 },\r\n { x: 0.0000037140000000002655, y: -0.13809769724192994 },\r\n { x: 0.0000037150000000002656, y: -0.14594921961839072 },\r\n { x: 0.0000037160000000002656, y: -0.09675638822372708 },\r\n { x: 0.0000037170000000002657, y: -0.1063050068762987 },\r\n { x: 0.0000037180000000002658, y: -0.10376056800360725 },\r\n { x: 0.000003719000000000266, y: -0.1160081568326403 },\r\n { x: 0.000003720000000000266, y: -0.10346434330894624 },\r\n { x: 0.000003721000000000266, y: -0.13201970316289074 },\r\n { x: 0.000003722000000000266, y: -0.11913973872356406 },\r\n { x: 0.000003723000000000266, y: -0.06720063689900498 },\r\n { x: 0.0000037240000000002662, y: -0.14048725943224846 },\r\n { x: 0.0000037250000000002663, y: -0.1292530467843626 },\r\n { x: 0.0000037260000000002664, y: -0.08110569186208576 },\r\n { x: 0.0000037270000000002665, y: -0.0890413296838159 },\r\n { x: 0.0000037280000000002665, y: -0.1231985482901011 },\r\n { x: 0.0000037290000000002666, y: -0.11458837147206197 },\r\n { x: 0.0000037300000000002667, y: -0.07381400603750093 },\r\n { x: 0.0000037310000000002668, y: -0.053400397120431195 },\r\n { x: 0.000003732000000000267, y: -0.08266182157026147 },\r\n { x: 0.000003733000000000267, y: -0.04833001388380807 },\r\n { x: 0.000003734000000000267, y: -0.10066452203602488 },\r\n { x: 0.000003735000000000267, y: -0.08349254783591059 },\r\n { x: 0.000003736000000000267, y: -0.06895652785001928 },\r\n { x: 0.000003737000000000267, y: -0.06260617030120882 },\r\n { x: 0.0000037380000000002673, y: -0.042518965883061186 },\r\n { x: 0.0000037390000000002674, y: -0.07414478435452504 },\r\n { x: 0.0000037400000000002674, y: -0.02933329573022457 },\r\n { x: 0.0000037410000000002675, y: -0.0770531356666485 },\r\n { x: 0.0000037420000000002676, y: -0.043785869233870366 },\r\n { x: 0.0000037430000000002677, y: -0.06717708245934167 },\r\n { x: 0.0000037440000000002677, y: -0.08227591141091063 },\r\n { x: 0.000003745000000000268, y: -0.026727511228420688 },\r\n { x: 0.000003746000000000268, y: -0.05100667317384938 },\r\n { x: 0.000003747000000000268, y: -0.015177963684023923 },\r\n { x: 0.000003748000000000268, y: -0.07262077600333502 },\r\n { x: 0.000003749000000000268, y: -0.06624364896262364 },\r\n { x: 0.000003750000000000268, y: -0.00483025732210484 },\r\n { x: 0.0000037510000000002683, y: -0.05989242276732176 },\r\n { x: 0.0000037520000000002683, y: -0.002843924380259495 },\r\n { x: 0.0000037530000000002684, y: -0.03294526433995804 },\r\n { x: 0.0000037540000000002685, y: -0.045118598256665504 },\r\n { x: 0.0000037550000000002686, y: -0.06369476170307739 },\r\n { x: 0.0000037560000000002686, y: -0.04017565357806448 },\r\n { x: 0.0000037570000000002687, y: -0.015220180587088093 },\r\n { x: 0.0000037580000000002688, y: 0.001802477434737524 },\r\n { x: 0.000003759000000000269, y: -0.054372537874282846 },\r\n { x: 0.000003760000000000269, y: 0.010110012768363763 },\r\n { x: 0.000003761000000000269, y: -0.048776544057665364 },\r\n { x: 0.000003762000000000269, y: -0.016792919789972743 },\r\n { x: 0.000003763000000000269, y: -0.025340107766488127 },\r\n { x: 0.0000037640000000002692, y: -0.046065697723910344 },\r\n { x: 0.0000037650000000002693, y: 0.012686814325215911 },\r\n { x: 0.0000037660000000002694, y: -0.00771890781037642 },\r\n { x: 0.0000037670000000002695, y: -0.03206562652826235 },\r\n { x: 0.0000037680000000002695, y: -0.0015275663406866232 },\r\n { x: 0.0000037690000000002696, y: -0.03429512017916918 },\r\n { x: 0.0000037700000000002697, y: 0.016452602495524053 },\r\n { x: 0.0000037710000000002698, y: 0.031139428404530524 },\r\n { x: 0.00000377200000000027, y: 0.009649702869944404 },\r\n { x: 0.00000377300000000027, y: 0.02165727378920746 },\r\n { x: 0.00000377400000000027, y: -0.02294559677736318 },\r\n { x: 0.00000377500000000027, y: 0.0260090215557899 },\r\n { x: 0.00000377600000000027, y: -0.012429611934390298 },\r\n { x: 0.00000377700000000027, y: -0.0007193451913712484 },\r\n { x: 0.0000037780000000002703, y: 0.0318007177951392 },\r\n { x: 0.0000037790000000002704, y: -0.011244818065019896 },\r\n { x: 0.0000037800000000002704, y: -0.01526988306237366 },\r\n { x: 0.0000037810000000002705, y: -0.00821774264395219 },\r\n { x: 0.0000037820000000002706, y: -0.013105767542221858 },\r\n { x: 0.0000037830000000002707, y: 0.03754767946904605 },\r\n { x: 0.0000037840000000002707, y: 0.029533656322265095 },\r\n { x: 0.000003785000000000271, y: 0.06489156232485484 },\r\n { x: 0.000003786000000000271, y: -0.00387258615531557 },\r\n { x: 0.000003787000000000271, y: 0.06397243280059939 },\r\n { x: 0.000003788000000000271, y: 0.020436486124118282 },\r\n { x: 0.000003789000000000271, y: 0.0074974107423625945 },\r\n { x: 0.000003790000000000271, y: 0.07326347961668889 },\r\n { x: 0.0000037910000000002713, y: 0.018585166744699667 },\r\n { x: 0.0000037920000000002713, y: 0.0760775610069449 },\r\n { x: 0.0000037930000000002714, y: 0.01666436767191911 },\r\n { x: 0.0000037940000000002715, y: 0.06145317462612715 },\r\n { x: 0.0000037950000000002716, y: 0.04829386226021341 },\r\n { x: 0.0000037960000000002716, y: 0.04490458370568937 },\r\n { x: 0.0000037970000000002717, y: 0.07597543508147978 },\r\n { x: 0.0000037980000000002718, y: 0.07116136092475545 },\r\n { x: 0.000003799000000000272, y: 0.005808219499573497 },\r\n { x: 0.000003800000000000272, y: 0.05276224485842819 },\r\n { x: 0.000003801000000000272, y: 0.028874560500370405 },\r\n { x: 0.000003802000000000272, y: 0.04478002584097804 },\r\n { x: 0.000003803000000000272, y: 0.07871585412749102 },\r\n { x: 0.0000038040000000002722, y: 0.046958859880951935 },\r\n { x: 0.0000038050000000002723, y: 0.0776039256859531 },\r\n { x: 0.0000038060000000002724, y: 0.10532685677571765 },\r\n { x: 0.0000038070000000002725, y: 0.07076440364962333 },\r\n { x: 0.0000038080000000002725, y: 0.10230210099760137 },\r\n { x: 0.0000038090000000002726, y: 0.1135899831592243 },\r\n { x: 0.0000038100000000002727, y: 0.08391379724999577 },\r\n { x: 0.0000038110000000002728, y: 0.1115640950006993 },\r\n { x: 0.000003812000000000273, y: 0.07091348807832315 },\r\n { x: 0.000003813000000000273, y: 0.1086826776812232 },\r\n { x: 0.000003814000000000273, y: 0.11105224572607775 },\r\n { x: 0.000003815000000000273, y: 0.07731906479005708 },\r\n { x: 0.000003816000000000272, y: 0.08715848089043139 },\r\n { x: 0.000003817000000000272, y: 0.056640798980936505 },\r\n { x: 0.000003818000000000272, y: 0.10287571788139943 },\r\n { x: 0.000003819000000000271, y: 0.06119234123740106 },\r\n { x: 0.000003820000000000271, y: 0.06397675982326925 },\r\n { x: 0.0000038210000000002706, y: 0.09203401659943122 },\r\n { x: 0.00000382200000000027, y: 0.11312228500053674 },\r\n { x: 0.00000382300000000027, y: 0.14002531803300985 },\r\n { x: 0.0000038240000000002695, y: 0.08497534411378144 },\r\n { x: 0.000003825000000000269, y: 0.0858097096668864 },\r\n { x: 0.000003826000000000269, y: 0.07123891760835813 },\r\n { x: 0.0000038270000000002685, y: 0.049347380300456774 },\r\n { x: 0.000003828000000000268, y: 0.13862914417678432 },\r\n { x: 0.000003829000000000268, y: 0.11483591049615212 },\r\n { x: 0.000003830000000000267, y: 0.10705597948527867 },\r\n { x: 0.000003831000000000267, y: 0.1402268057406815 },\r\n { x: 0.000003832000000000267, y: 0.11056001501760651 },\r\n { x: 0.000003833000000000266, y: 0.14751743115344665 },\r\n { x: 0.000003834000000000266, y: 0.10029696799255243 },\r\n { x: 0.000003835000000000266, y: 0.09257080616606486 },\r\n { x: 0.000003836000000000265, y: 0.08829811528522333 },\r\n { x: 0.000003837000000000265, y: 0.09716784316015845 },\r\n { x: 0.000003838000000000265, y: 0.14736460895078715 },\r\n { x: 0.000003839000000000264, y: 0.11708640541053147 },\r\n { x: 0.000003840000000000264, y: 0.1403477066434798 },\r\n { x: 0.000003841000000000264, y: 0.16249826777799295 },\r\n { x: 0.000003842000000000263, y: 0.10725341147147689 },\r\n { x: 0.000003843000000000263, y: 0.1599500489651751 },\r\n { x: 0.0000038440000000002625, y: 0.15348589512435795 },\r\n { x: 0.000003845000000000262, y: 0.15616786052220136 },\r\n { x: 0.000003846000000000262, y: 0.11929751969112422 },\r\n { x: 0.0000038470000000002615, y: 0.15878084276588464 },\r\n { x: 0.000003848000000000261, y: 0.17105464271665977 },\r\n { x: 0.000003849000000000261, y: 0.1289403054900729 },\r\n { x: 0.0000038500000000002604, y: 0.18283198399244455 },\r\n { x: 0.00000385100000000026, y: 0.18097604588431326 },\r\n { x: 0.00000385200000000026, y: 0.12682878264972203 },\r\n { x: 0.000003853000000000259, y: 0.16355800125735143 },\r\n { x: 0.000003854000000000259, y: 0.1509092017288921 },\r\n { x: 0.000003855000000000259, y: 0.13808921212691533 },\r\n { x: 0.000003856000000000258, y: 0.13132946130058273 },\r\n { x: 0.000003857000000000258, y: 0.14951675067794729 },\r\n { x: 0.000003858000000000258, y: 0.187779399064356 },\r\n { x: 0.000003859000000000257, y: 0.19915737915780304 },\r\n { x: 0.000003860000000000257, y: 0.13190700260731733 },\r\n { x: 0.000003861000000000257, y: 0.164841759517776 },\r\n { x: 0.000003862000000000256, y: 0.176515087745802 },\r\n { x: 0.000003863000000000256, y: 0.16222479410417287 },\r\n { x: 0.0000038640000000002556, y: 0.13732543716610482 },\r\n { x: 0.000003865000000000255, y: 0.16678724026455302 },\r\n { x: 0.000003866000000000255, y: 0.18906531880529184 },\r\n { x: 0.0000038670000000002545, y: 0.1781885697234449 },\r\n { x: 0.000003868000000000254, y: 0.19683666242754405 },\r\n { x: 0.000003869000000000254, y: 0.2156003861530912 },\r\n { x: 0.0000038700000000002535, y: 0.15546713749533556 },\r\n { x: 0.000003871000000000253, y: 0.16426159288706357 },\r\n { x: 0.000003872000000000253, y: 0.16688687412384265 },\r\n { x: 0.0000038730000000002524, y: 0.17010253336067568 },\r\n { x: 0.000003874000000000252, y: 0.1811382032127123 },\r\n { x: 0.000003875000000000252, y: 0.18742345737547758 },\r\n { x: 0.000003876000000000251, y: 0.20647237237574914 },\r\n { x: 0.000003877000000000251, y: 0.21245489307524304 },\r\n { x: 0.000003878000000000251, y: 0.19999310263799502 },\r\n { x: 0.00000387900000000025, y: 0.23069017609041784 },\r\n { x: 0.00000388000000000025, y: 0.22585792893376067 },\r\n { x: 0.00000388100000000025, y: 0.20405585569881896 },\r\n { x: 0.000003882000000000249, y: 0.22571343413267697 },\r\n { x: 0.000003883000000000249, y: 0.1821274212266734 },\r\n { x: 0.000003884000000000249, y: 0.20266850259056965 },\r\n { x: 0.000003885000000000248, y: 0.21951932844832867 },\r\n { x: 0.000003886000000000248, y: 0.237354950317896 },\r\n { x: 0.0000038870000000002476, y: 0.23823016763106175 },\r\n { x: 0.000003888000000000247, y: 0.17066206490107963 },\r\n { x: 0.000003889000000000247, y: 0.24482465919028346 },\r\n { x: 0.0000038900000000002465, y: 0.22426345829299338 },\r\n { x: 0.000003891000000000246, y: 0.20455399033507282 },\r\n { x: 0.000003892000000000246, y: 0.22885939676625072 },\r\n { x: 0.0000038930000000002455, y: 0.19361735935302135 },\r\n { x: 0.000003894000000000245, y: 0.22332636310680162 },\r\n { x: 0.000003895000000000245, y: 0.19284531068228294 },\r\n { x: 0.000003896000000000244, y: 0.20365087774992216 },\r\n { x: 0.000003897000000000244, y: 0.24955030517911717 },\r\n { x: 0.000003898000000000244, y: 0.25046713806857407 },\r\n { x: 0.000003899000000000243, y: 0.1906027253273096 },\r\n { x: 0.000003900000000000243, y: 0.24095190069761946 },\r\n { x: 0.000003901000000000243, y: 0.25909361403634457 },\r\n { x: 0.000003902000000000242, y: 0.21846878615554152 },\r\n { x: 0.000003903000000000242, y: 0.26004066163073547 },\r\n { x: 0.000003904000000000242, y: 0.2365220832157309 },\r\n { x: 0.000003905000000000241, y: 0.25524244941855867 },\r\n { x: 0.000003906000000000241, y: 0.22617139638491685 },\r\n { x: 0.000003907000000000241, y: 0.25294493085461245 },\r\n { x: 0.00000390800000000024, y: 0.2356879098969712 },\r\n { x: 0.00000390900000000024, y: 0.2712195241889297 },\r\n { x: 0.0000039100000000002395, y: 0.24902038542873603 },\r\n { x: 0.000003911000000000239, y: 0.256834949545172 },\r\n { x: 0.000003912000000000239, y: 0.21593483454336798 },\r\n { x: 0.0000039130000000002385, y: 0.207946740672267 },\r\n { x: 0.000003914000000000238, y: 0.22112392424859914 },\r\n { x: 0.000003915000000000238, y: 0.23602298927008508 },\r\n { x: 0.0000039160000000002375, y: 0.24749596895126755 },\r\n { x: 0.000003917000000000237, y: 0.24662394406520857 },\r\n { x: 0.000003918000000000237, y: 0.22788109473926815 },\r\n { x: 0.000003919000000000236, y: 0.2315760541341182 },\r\n { x: 0.000003920000000000236, y: 0.22688726835610262 },\r\n { x: 0.000003921000000000236, y: 0.21718473617578068 },\r\n { x: 0.000003922000000000235, y: 0.2753480836058232 },\r\n { x: 0.000003923000000000235, y: 0.23022057390042344 },\r\n { x: 0.000003924000000000235, y: 0.22132307559394876 },\r\n { x: 0.000003925000000000234, y: 0.23986304778703177 },\r\n { x: 0.000003926000000000234, y: 0.23588125213618022 },\r\n { x: 0.000003927000000000234, y: 0.2381327081360886 },\r\n { x: 0.000003928000000000233, y: 0.2699992863971873 },\r\n { x: 0.000003929000000000233, y: 0.22095722644745924 },\r\n { x: 0.0000039300000000002326, y: 0.29691962032816877 },\r\n { x: 0.000003931000000000232, y: 0.2332812010583422 },\r\n { x: 0.000003932000000000232, y: 0.2697119646366144 },\r\n { x: 0.0000039330000000002315, y: 0.2836801921842508 },\r\n { x: 0.000003934000000000231, y: 0.257749416804988 },\r\n { x: 0.000003935000000000231, y: 0.235641898115553 },\r\n { x: 0.0000039360000000002305, y: 0.2951186014708261 },\r\n { x: 0.00000393700000000023, y: 0.2701076565792924 },\r\n { x: 0.00000393800000000023, y: 0.25372482973947696 },\r\n { x: 0.0000039390000000002294, y: 0.2731422399865056 },\r\n { x: 0.000003940000000000229, y: 0.24908123546636854 },\r\n { x: 0.000003941000000000229, y: 0.2827896632338716 },\r\n { x: 0.000003942000000000228, y: 0.27723750906049843 },\r\n { x: 0.000003943000000000228, y: 0.29731718904158544 },\r\n { x: 0.000003944000000000228, y: 0.3119657046844713 },\r\n { x: 0.000003945000000000227, y: 0.3077605156384501 },\r\n { x: 0.000003946000000000227, y: 0.24506538429052305 },\r\n { x: 0.000003947000000000227, y: 0.2660542241684431 },\r\n { x: 0.000003948000000000226, y: 0.28931788653636853 },\r\n { x: 0.000003949000000000226, y: 0.2829600520139954 },\r\n { x: 0.000003950000000000226, y: 0.24550170706886448 },\r\n { x: 0.000003951000000000225, y: 0.2566977406375457 },\r\n { x: 0.000003952000000000225, y: 0.29996800172204136 },\r\n { x: 0.0000039530000000002246, y: 0.2932443953012048 },\r\n { x: 0.000003954000000000224, y: 0.2802408129586989 },\r\n { x: 0.000003955000000000224, y: 0.27222080097789864 },\r\n { x: 0.0000039560000000002235, y: 0.2999817718696296 },\r\n { x: 0.000003957000000000223, y: 0.2486093044265007 },\r\n { x: 0.000003958000000000223, y: 0.3243828265603146 },\r\n { x: 0.0000039590000000002225, y: 0.2589558120162996 },\r\n { x: 0.000003960000000000222, y: 0.3065967261610589 },\r\n { x: 0.000003961000000000222, y: 0.30061194324161555 },\r\n { x: 0.0000039620000000002214, y: 0.2604416383131553 },\r\n { x: 0.000003963000000000221, y: 0.295481595872502 },\r\n { x: 0.000003964000000000221, y: 0.31160085443318536 },\r\n { x: 0.00000396500000000022, y: 0.3045149539113448 },\r\n { x: 0.00000396600000000022, y: 0.298803037543689 },\r\n { x: 0.00000396700000000022, y: 0.261506194513889 },\r\n { x: 0.000003968000000000219, y: 0.2766012118181859 },\r\n { x: 0.000003969000000000219, y: 0.33097169997672404 },\r\n { x: 0.000003970000000000219, y: 0.2793473685981499 },\r\n { x: 0.000003971000000000218, y: 0.262161497760936 },\r\n { x: 0.000003972000000000218, y: 0.3126806367572568 },\r\n { x: 0.000003973000000000218, y: 0.2814864069064685 },\r\n { x: 0.000003974000000000217, y: 0.32208444644381456 },\r\n { x: 0.000003975000000000217, y: 0.31238103864584366 },\r\n { x: 0.0000039760000000002166, y: 0.2927671341251896 },\r\n { x: 0.000003977000000000216, y: 0.2680932099612712 },\r\n { x: 0.000003978000000000216, y: 0.312118337698919 },\r\n { x: 0.0000039790000000002155, y: 0.2770845333330829 },\r\n { x: 0.000003980000000000215, y: 0.2849134186659972 },\r\n { x: 0.000003981000000000215, y: 0.2811576706237539 },\r\n { x: 0.0000039820000000002145, y: 0.30152808046471263 },\r\n { x: 0.000003983000000000214, y: 0.2749363630168921 },\r\n { x: 0.000003984000000000214, y: 0.32380804118333906 },\r\n { x: 0.000003985000000000213, y: 0.2744281771569975 },\r\n { x: 0.000003986000000000213, y: 0.3333489248885281 },\r\n { x: 0.000003987000000000213, y: 0.3199531556665767 },\r\n { x: 0.000003988000000000212, y: 0.30298622743647985 },\r\n { x: 0.000003989000000000212, y: 0.2775506071658868 },\r\n { x: 0.000003990000000000212, y: 0.32834200980805067 },\r\n { x: 0.000003991000000000211, y: 0.28061834420608794 },\r\n { x: 0.000003992000000000211, y: 0.32536447344878244 },\r\n { x: 0.000003993000000000211, y: 0.3395079551066617 },\r\n { x: 0.00000399400000000021, y: 0.28742308921087417 },\r\n { x: 0.00000399500000000021, y: 0.28734831560210633 },\r\n { x: 0.00000399600000000021, y: 0.29946355110392747 },\r\n { x: 0.000003997000000000209, y: 0.2943922872962459 },\r\n { x: 0.000003998000000000209, y: 0.3151724677333371 },\r\n { x: 0.0000039990000000002085, y: 0.29099808928701176 },\r\n { x: 0.000004000000000000208, y: 0.28340280595764616 },\r\n { x: 0.000004001000000000208, y: 0.3422715322548612 },\r\n { x: 0.0000040020000000002075, y: 0.30187033980900085 },\r\n { x: 0.000004003000000000207, y: 0.34492871377833345 },\r\n { x: 0.000004004000000000207, y: 0.317686638017795 },\r\n { x: 0.0000040050000000002064, y: 0.31162185107005064 },\r\n { x: 0.000004006000000000206, y: 0.3015063948557598 },\r\n { x: 0.000004007000000000206, y: 0.31769137936352204 },\r\n { x: 0.000004008000000000205, y: 0.29745675018269324 },\r\n { x: 0.000004009000000000205, y: 0.32967674333254005 },\r\n { x: 0.000004010000000000205, y: 0.30495116756365953 },\r\n { x: 0.000004011000000000204, y: 0.3423999663491054 },\r\n { x: 0.000004012000000000204, y: 0.328172835054873 },\r\n { x: 0.000004013000000000204, y: 0.283977614666415 },\r\n { x: 0.000004014000000000203, y: 0.3144810181605132 },\r\n { x: 0.000004015000000000203, y: 0.38328983726262034 },\r\n { x: 0.000004016000000000203, y: 0.34060241045676604 },\r\n { x: 0.000004017000000000202, y: 0.3002736565357097 },\r\n { x: 0.000004018000000000202, y: 0.32929999902266477 },\r\n { x: 0.0000040190000000002016, y: 0.2857738486662874 },\r\n { x: 0.000004020000000000201, y: 0.3288446902785198 },\r\n { x: 0.000004021000000000201, y: 0.3407966533358474 },\r\n { x: 0.0000040220000000002005, y: 0.2861152100268766 },\r\n { x: 0.0000040230000000002, y: 0.3271032701370034 },\r\n { x: 0.0000040240000000002, y: 0.29725590727265644 },\r\n { x: 0.0000040250000000001995, y: 0.2957762403506275 },\r\n { x: 0.000004026000000000199, y: 0.33966310713422404 },\r\n { x: 0.000004027000000000199, y: 0.36096201287710894 },\r\n { x: 0.0000040280000000001984, y: 0.35729034558791334 },\r\n { x: 0.000004029000000000198, y: 0.3124090652959692 },\r\n { x: 0.000004030000000000198, y: 0.33408174508051514 },\r\n { x: 0.000004031000000000197, y: 0.2950126154364728 },\r\n { x: 0.000004032000000000197, y: 0.3142967918930977 },\r\n { x: 0.000004033000000000197, y: 0.29206159333072185 },\r\n { x: 0.000004034000000000196, y: 0.2947008791127249 },\r\n { x: 0.000004035000000000196, y: 0.3398102425902416 },\r\n { x: 0.000004036000000000196, y: 0.3460630553593029 },\r\n { x: 0.000004037000000000195, y: 0.3141006873647608 },\r\n { x: 0.000004038000000000195, y: 0.35586167474648384 },\r\n { x: 0.000004039000000000195, y: 0.3485147196606129 },\r\n { x: 0.000004040000000000194, y: 0.3490019547840109 },\r\n { x: 0.000004041000000000194, y: 0.3210659656263639 },\r\n { x: 0.0000040420000000001936, y: 0.2931472864148488 },\r\n { x: 0.000004043000000000193, y: 0.3474972967907737 },\r\n { x: 0.000004044000000000193, y: 0.31802863199692205 },\r\n { x: 0.0000040450000000001925, y: 0.37709378836391627 },\r\n { x: 0.000004046000000000192, y: 0.2896363310600595 },\r\n { x: 0.000004047000000000192, y: 0.29798749838992117 },\r\n { x: 0.0000040480000000001915, y: 0.3552511512225615 },\r\n { x: 0.000004049000000000191, y: 0.3653601251154573 },\r\n { x: 0.000004050000000000191, y: 0.30223740393356713 },\r\n { x: 0.00000405100000000019, y: 0.33297814352369504 },\r\n { x: 0.00000405200000000019, y: 0.34314943266453635 },\r\n { x: 0.00000405300000000019, y: 0.3243056620796294 },\r\n { x: 0.000004054000000000189, y: 0.34959610945369457 },\r\n { x: 0.000004055000000000189, y: 0.34250077433766457 },\r\n { x: 0.000004056000000000189, y: 0.35505464072555626 },\r\n { x: 0.000004057000000000188, y: 0.32690676455837 },\r\n { x: 0.000004058000000000188, y: 0.3660747431632196 },\r\n { x: 0.000004059000000000188, y: 0.3615097254596732 },\r\n { x: 0.000004060000000000187, y: 0.34531676639100123 },\r\n { x: 0.000004061000000000187, y: 0.35682792899331395 },\r\n { x: 0.000004062000000000187, y: 0.31388688355642863 },\r\n { x: 0.000004063000000000186, y: 0.31295555883694015 },\r\n { x: 0.000004064000000000186, y: 0.3658041684694592 },\r\n { x: 0.0000040650000000001855, y: 0.3509468195438988 },\r\n { x: 0.000004066000000000185, y: 0.3346270001207663 },\r\n { x: 0.000004067000000000185, y: 0.3278174309867702 },\r\n { x: 0.0000040680000000001845, y: 0.3271524745190602 },\r\n { x: 0.000004069000000000184, y: 0.3399040303374648 },\r\n { x: 0.000004070000000000184, y: 0.36065816849987253 },\r\n { x: 0.0000040710000000001835, y: 0.2892205309483447 },\r\n { x: 0.000004072000000000183, y: 0.30752530118261684 },\r\n { x: 0.000004073000000000183, y: 0.3478386327640257 },\r\n { x: 0.000004074000000000182, y: 0.3019679550439449 },\r\n { x: 0.000004075000000000182, y: 0.3191150592098787 },\r\n { x: 0.000004076000000000182, y: 0.3626369938899318 },\r\n { x: 0.000004077000000000181, y: 0.3601093301647171 },\r\n { x: 0.000004078000000000181, y: 0.36246721544608235 },\r\n { x: 0.000004079000000000181, y: 0.3432884100260415 },\r\n { x: 0.00000408000000000018, y: 0.31877152700123657 },\r\n { x: 0.00000408100000000018, y: 0.35788771360499283 },\r\n { x: 0.00000408200000000018, y: 0.3093204907844644 },\r\n { x: 0.000004083000000000179, y: 0.29666535367393415 },\r\n { x: 0.000004084000000000179, y: 0.360970452148224 },\r\n { x: 0.0000040850000000001786, y: 0.34554986408595434 },\r\n { x: 0.000004086000000000178, y: 0.29454771039585925 },\r\n { x: 0.000004087000000000178, y: 0.35821987546650286 },\r\n { x: 0.0000040880000000001775, y: 0.2938160063722 },\r\n { x: 0.000004089000000000177, y: 0.3604864105624299 },\r\n { x: 0.000004090000000000177, y: 0.3124656376390679 },\r\n { x: 0.0000040910000000001765, y: 0.2849200104262758 },\r\n { x: 0.000004092000000000176, y: 0.33944348077477526 },\r\n { x: 0.000004093000000000176, y: 0.29174335423889747 },\r\n { x: 0.0000040940000000001754, y: 0.29951354609913 },\r\n { x: 0.000004095000000000175, y: 0.35724000082751667 },\r\n { x: 0.000004096000000000175, y: 0.3283230671036082 },\r\n { x: 0.000004097000000000174, y: 0.3522231936853684 },\r\n { x: 0.000004098000000000174, y: 0.29996857475406735 },\r\n { x: 0.000004099000000000174, y: 0.3006383368854904 },\r\n { x: 0.000004100000000000173, y: 0.33937777049021517 },\r\n { x: 0.000004101000000000173, y: 0.29586928620024366 },\r\n { x: 0.000004102000000000173, y: 0.30757305070060775 },\r\n { x: 0.000004103000000000172, y: 0.32645161200537803 },\r\n { x: 0.000004104000000000172, y: 0.33623725264246135 },\r\n { x: 0.000004105000000000172, y: 0.2815048406339397 },\r\n { x: 0.000004106000000000171, y: 0.3034415864677118 },\r\n { x: 0.000004107000000000171, y: 0.33929007613649487 },\r\n { x: 0.0000041080000000001706, y: 0.3188050660842236 },\r\n { x: 0.00000410900000000017, y: 0.3169601994501379 },\r\n { x: 0.00000411000000000017, y: 0.32253528090780664 },\r\n { x: 0.0000041110000000001695, y: 0.3062493577079485 },\r\n { x: 0.000004112000000000169, y: 0.3304689212384934 },\r\n { x: 0.000004113000000000169, y: 0.2827148071281308 },\r\n { x: 0.0000041140000000001685, y: 0.28784364190422307 },\r\n { x: 0.000004115000000000168, y: 0.314776859785628 },\r\n { x: 0.000004116000000000168, y: 0.27819425768339046 },\r\n { x: 0.0000041170000000001674, y: 0.29968243532794836 },\r\n { x: 0.000004118000000000167, y: 0.35079321292278703 },\r\n { x: 0.000004119000000000167, y: 0.3266872226749194 },\r\n { x: 0.000004120000000000166, y: 0.3292060806693942 },\r\n { x: 0.000004121000000000166, y: 0.3287372130429182 },\r\n { x: 0.000004122000000000166, y: 0.31366107578749985 },\r\n { x: 0.000004123000000000165, y: 0.30147312498007645 },\r\n { x: 0.000004124000000000165, y: 0.28688326200791414 },\r\n { x: 0.000004125000000000165, y: 0.3008962095460737 },\r\n { x: 0.000004126000000000164, y: 0.3454115627701336 },\r\n { x: 0.000004127000000000164, y: 0.2999771018349369 },\r\n { x: 0.000004128000000000164, y: 0.24712321707103477 },\r\n { x: 0.000004129000000000163, y: 0.2880825966992047 },\r\n { x: 0.000004130000000000163, y: 0.3418357437789369 },\r\n { x: 0.0000041310000000001626, y: 0.3381489157375517 },\r\n { x: 0.000004132000000000162, y: 0.31024847819304036 },\r\n { x: 0.000004133000000000162, y: 0.31519254082685777 },\r\n { x: 0.0000041340000000001615, y: 0.3302995497118496 },\r\n { x: 0.000004135000000000161, y: 0.3186009699338797 },\r\n { x: 0.000004136000000000161, y: 0.26606897018268044 },\r\n { x: 0.0000041370000000001605, y: 0.28903869403793364 },\r\n { x: 0.00000413800000000016, y: 0.33367298480128865 },\r\n { x: 0.00000413900000000016, y: 0.30204178281278937 },\r\n { x: 0.000004140000000000159, y: 0.3272953173021922 },\r\n { x: 0.000004141000000000159, y: 0.32026960550840106 },\r\n { x: 0.000004142000000000159, y: 0.29846181505400665 },\r\n { x: 0.000004143000000000158, y: 0.2710365530621206 },\r\n { x: 0.000004144000000000158, y: 0.2595526987001278 },\r\n { x: 0.000004145000000000158, y: 0.29223479234322386 },\r\n { x: 0.000004146000000000157, y: 0.274935221356404 },\r\n { x: 0.000004147000000000157, y: 0.321280217210252 },\r\n { x: 0.000004148000000000157, y: 0.32500978741382525 },\r\n { x: 0.000004149000000000156, y: 0.26133413197528554 },\r\n { x: 0.000004150000000000156, y: 0.30185642607768326 },\r\n { x: 0.000004151000000000156, y: 0.2883337123613331 },\r\n { x: 0.000004152000000000155, y: 0.3109934137893497 },\r\n { x: 0.000004153000000000155, y: 0.2768449799905698 },\r\n { x: 0.0000041540000000001545, y: 0.3016692803484889 },\r\n { x: 0.000004155000000000154, y: 0.3038029317239212 },\r\n { x: 0.000004156000000000154, y: 0.26779097994536893 },\r\n { x: 0.0000041570000000001535, y: 0.2601611567705239 },\r\n { x: 0.000004158000000000153, y: 0.34829336129431965 },\r\n { x: 0.000004159000000000153, y: 0.2748186263793167 },\r\n { x: 0.0000041600000000001524, y: 0.26513368619261984 },\r\n { x: 0.000004161000000000152, y: 0.32057708454817924 },\r\n { x: 0.000004162000000000152, y: 0.2606249385869175 },\r\n { x: 0.000004163000000000151, y: 0.2750139415711119 },\r\n { x: 0.000004164000000000151, y: 0.3207568452778675 },\r\n { x: 0.000004165000000000151, y: 0.30027014878419644 },\r\n { x: 0.00000416600000000015, y: 0.2734393771458872 },\r\n { x: 0.00000416700000000015, y: 0.314543710437143 },\r\n { x: 0.00000416800000000015, y: 0.2655705677714055 },\r\n { x: 0.000004169000000000149, y: 0.2944002222014817 },\r\n { x: 0.000004170000000000149, y: 0.2723351647153971 },\r\n { x: 0.000004171000000000149, y: 0.30883708207603056 },\r\n { x: 0.000004172000000000148, y: 0.2797275304124689 },\r\n { x: 0.000004173000000000148, y: 0.2472797856518716 },\r\n { x: 0.0000041740000000001476, y: 0.27953123666601287 },\r\n { x: 0.000004175000000000147, y: 0.28291965261150304 },\r\n { x: 0.000004176000000000147, y: 0.27186963503698425 },\r\n { x: 0.0000041770000000001465, y: 0.27456006397270294 },\r\n { x: 0.000004178000000000146, y: 0.2647037813966166 },\r\n { x: 0.000004179000000000146, y: 0.25783019403355195 },\r\n { x: 0.0000041800000000001455, y: 0.3058920754230025 },\r\n { x: 0.000004181000000000145, y: 0.25761362340127414 },\r\n { x: 0.000004182000000000145, y: 0.2382819755607477 },\r\n { x: 0.0000041830000000001444, y: 0.2778913000129344 },\r\n { x: 0.000004184000000000144, y: 0.30338646181174156 },\r\n { x: 0.000004185000000000144, y: 0.2292683099058369 },\r\n { x: 0.000004186000000000143, y: 0.23936823127933687 },\r\n { x: 0.000004187000000000143, y: 0.24354821922455636 },\r\n { x: 0.000004188000000000143, y: 0.30028417547403735 },\r\n { x: 0.000004189000000000142, y: 0.2383135215495772 },\r\n { x: 0.000004190000000000142, y: 0.23212826275582604 },\r\n { x: 0.000004191000000000142, y: 0.2546818345092802 },\r\n { x: 0.000004192000000000141, y: 0.2961027770875351 },\r\n { x: 0.000004193000000000141, y: 0.2928101899940667 },\r\n { x: 0.000004194000000000141, y: 0.22070527048465552 },\r\n { x: 0.00000419500000000014, y: 0.24429257890590503 },\r\n { x: 0.00000419600000000014, y: 0.2373063644096479 },\r\n { x: 0.0000041970000000001396, y: 0.2553542710967861 },\r\n { x: 0.000004198000000000139, y: 0.2582336950314104 },\r\n { x: 0.000004199000000000139, y: 0.24001843932770395 },\r\n { x: 0.0000042000000000001385, y: 0.22697619314476405 },\r\n { x: 0.000004201000000000138, y: 0.23767382861571706 },\r\n { x: 0.000004202000000000138, y: 0.28686973796591725 },\r\n { x: 0.0000042030000000001375, y: 0.27195732910402926 },\r\n { x: 0.000004204000000000137, y: 0.25156327661549976 },\r\n { x: 0.000004205000000000137, y: 0.24955415104548256 },\r\n { x: 0.000004206000000000136, y: 0.22347024930452125 },\r\n { x: 0.000004207000000000136, y: 0.21793680389674783 },\r\n { x: 0.000004208000000000136, y: 0.22372499196585466 },\r\n { x: 0.000004209000000000135, y: 0.24179044209520523 },\r\n { x: 0.000004210000000000135, y: 0.20222356243268153 },\r\n { x: 0.000004211000000000135, y: 0.2152411401506903 },\r\n { x: 0.000004212000000000134, y: 0.2270829581751008 },\r\n { x: 0.000004213000000000134, y: 0.18647217122326848 },\r\n { x: 0.000004214000000000134, y: 0.23297886740746357 },\r\n { x: 0.000004215000000000133, y: 0.2561343606351684 },\r\n { x: 0.000004216000000000133, y: 0.20090129381185096 },\r\n { x: 0.000004217000000000133, y: 0.2558120862659981 },\r\n { x: 0.000004218000000000132, y: 0.23310990254643485 },\r\n { x: 0.000004219000000000132, y: 0.2688110815214907 },\r\n { x: 0.0000042200000000001315, y: 0.24018266371518207 },\r\n { x: 0.000004221000000000131, y: 0.20766953665529314 },\r\n { x: 0.000004222000000000131, y: 0.22513938659217325 },\r\n { x: 0.0000042230000000001305, y: 0.23356047621965914 },\r\n { x: 0.00000422400000000013, y: 0.20277467702433738 },\r\n { x: 0.00000422500000000013, y: 0.22790260141481103 },\r\n { x: 0.0000042260000000001295, y: 0.19654857272764104 },\r\n { x: 0.000004227000000000129, y: 0.1873712435222703 },\r\n { x: 0.000004228000000000129, y: 0.22221579765000743 },\r\n { x: 0.000004229000000000128, y: 0.2193491965344589 },\r\n { x: 0.000004230000000000128, y: 0.25399192372856777 },\r\n { x: 0.000004231000000000128, y: 0.24363502736284717 },\r\n { x: 0.000004232000000000127, y: 0.17892048918442582 },\r\n { x: 0.000004233000000000127, y: 0.19671806997380567 },\r\n { x: 0.000004234000000000127, y: 0.1821587215137482 },\r\n { x: 0.000004235000000000126, y: 0.18548135354182982 },\r\n { x: 0.000004236000000000126, y: 0.21283920073611234 },\r\n { x: 0.000004237000000000126, y: 0.20236417698613043 },\r\n { x: 0.000004238000000000125, y: 0.18635103831189095 },\r\n { x: 0.000004239000000000125, y: 0.20998163028402456 },\r\n { x: 0.0000042400000000001246, y: 0.23419664386908426 },\r\n { x: 0.000004241000000000124, y: 0.2067023208668631 },\r\n { x: 0.000004242000000000124, y: 0.1782632116925454 },\r\n { x: 0.0000042430000000001235, y: 0.17907832396593507 },\r\n { x: 0.000004244000000000123, y: 0.19542106205048176 },\r\n { x: 0.000004245000000000123, y: 0.19070513269350756 },\r\n { x: 0.0000042460000000001225, y: 0.21461149723223688 },\r\n { x: 0.000004247000000000122, y: 0.21352789021977517 },\r\n { x: 0.000004248000000000122, y: 0.18803332531344147 },\r\n { x: 0.0000042490000000001214, y: 0.1616408097184573 },\r\n { x: 0.000004250000000000121, y: 0.18228897891741028 },\r\n { x: 0.000004251000000000121, y: 0.1776526683241611 },\r\n { x: 0.00000425200000000012, y: 0.17531842286266935 },\r\n { x: 0.00000425300000000012, y: 0.17650653212167858 },\r\n { x: 0.00000425400000000012, y: 0.2020222680810568 },\r\n { x: 0.000004255000000000119, y: 0.18770466365712682 },\r\n { x: 0.000004256000000000119, y: 0.17783037052412898 },\r\n { x: 0.000004257000000000119, y: 0.15536286436244168 },\r\n { x: 0.000004258000000000118, y: 0.21656348542041054 },\r\n { x: 0.000004259000000000118, y: 0.15309110442555518 },\r\n { x: 0.000004260000000000118, y: 0.14713620992430998 },\r\n { x: 0.000004261000000000117, y: 0.18769171558725903 },\r\n { x: 0.000004262000000000117, y: 0.19048505007538724 },\r\n { x: 0.0000042630000000001166, y: 0.2144122124418425 },\r\n { x: 0.000004264000000000116, y: 0.20105979271127863 },\r\n { x: 0.000004265000000000116, y: 0.19167626746805821 },\r\n { x: 0.0000042660000000001155, y: 0.14241100787789035 },\r\n { x: 0.000004267000000000115, y: 0.16857751191507228 },\r\n { x: 0.000004268000000000115, y: 0.205013595133306 },\r\n { x: 0.0000042690000000001145, y: 0.16344811066667475 },\r\n { x: 0.000004270000000000114, y: 0.20548807710483846 },\r\n { x: 0.000004271000000000114, y: 0.149987496107719 },\r\n { x: 0.0000042720000000001134, y: 0.15223168518747812 },\r\n { x: 0.000004273000000000113, y: 0.17115602753663375 },\r\n { x: 0.000004274000000000113, y: 0.13463487398994745 },\r\n { x: 0.000004275000000000112, y: 0.2015221751132012 },\r\n { x: 0.000004276000000000112, y: 0.18148287593247617 },\r\n { x: 0.000004277000000000112, y: 0.185542636601977 },\r\n { x: 0.000004278000000000111, y: 0.16639551597011448 },\r\n { x: 0.000004279000000000111, y: 0.1565987571789668 },\r\n { x: 0.000004280000000000111, y: 0.1650629576360599 },\r\n { x: 0.00000428100000000011, y: 0.15998266772151187 },\r\n { x: 0.00000428200000000011, y: 0.15581326547980034 },\r\n { x: 0.00000428300000000011, y: 0.1207875491276767 },\r\n { x: 0.000004284000000000109, y: 0.149673801751392 },\r\n { x: 0.000004285000000000109, y: 0.141257454570004 },\r\n { x: 0.0000042860000000001086, y: 0.13552674355602248 },\r\n { x: 0.000004287000000000108, y: 0.14113229102832187 },\r\n { x: 0.000004288000000000108, y: 0.15552660461017007 },\r\n { x: 0.0000042890000000001075, y: 0.1142003637643833 },\r\n { x: 0.000004290000000000107, y: 0.17668621246775368 },\r\n { x: 0.000004291000000000107, y: 0.13820176632298573 },\r\n { x: 0.0000042920000000001065, y: 0.1086975990560053 },\r\n { x: 0.000004293000000000106, y: 0.1753359432997467 },\r\n { x: 0.000004294000000000106, y: 0.14122852658706625 },\r\n { x: 0.000004295000000000105, y: 0.11020271586603601 },\r\n { x: 0.000004296000000000105, y: 0.15685428539564644 },\r\n { x: 0.000004297000000000105, y: 0.1364433370049846 },\r\n { x: 0.000004298000000000104, y: 0.16053036701288367 },\r\n { x: 0.000004299000000000104, y: 0.12610621976950012 },\r\n { x: 0.000004300000000000104, y: 0.16011467633194026 },\r\n { x: 0.000004301000000000103, y: 0.11595471557987604 },\r\n { x: 0.000004302000000000103, y: 0.12506918636756298 },\r\n { x: 0.000004303000000000103, y: 0.1348087135948512 },\r\n { x: 0.000004304000000000102, y: 0.12626561025503852 },\r\n { x: 0.000004305000000000102, y: 0.15135545902956177 },\r\n { x: 0.000004306000000000102, y: 0.09128700517162773 },\r\n { x: 0.000004307000000000101, y: 0.15245002987141595 },\r\n { x: 0.000004308000000000101, y: 0.06873410525652271 },\r\n { x: 0.0000043090000000001005, y: 0.14129092581504543 },\r\n { x: 0.0000043100000000001, y: 0.13470422827119907 },\r\n { x: 0.0000043110000000001, y: 0.11598815403264948 },\r\n { x: 0.0000043120000000000995, y: 0.08237576741915076 },\r\n { x: 0.000004313000000000099, y: 0.14399603425330929 },\r\n { x: 0.000004314000000000099, y: 0.0908113511131135 },\r\n { x: 0.0000043150000000000984, y: 0.09935390988828743 },\r\n { x: 0.000004316000000000098, y: 0.13180087147404893 },\r\n { x: 0.000004317000000000098, y: 0.1357918271303708 },\r\n { x: 0.000004318000000000097, y: 0.07158566215184109 },\r\n { x: 0.000004319000000000097, y: 0.07917374154915047 },\r\n { x: 0.000004320000000000097, y: 0.1063633628171095 },\r\n { x: 0.000004321000000000096, y: 0.1286166161043339 },\r\n { x: 0.000004322000000000096, y: 0.07017351129604626 },\r\n { x: 0.000004323000000000096, y: 0.07035148653951795 },\r\n { x: 0.000004324000000000095, y: 0.07852562994636646 },\r\n { x: 0.000004325000000000095, y: 0.11207775574627944 },\r\n { x: 0.000004326000000000095, y: 0.11036776922661914 },\r\n { x: 0.000004327000000000094, y: 0.09045549193124772 },\r\n { x: 0.000004328000000000094, y: 0.08449560919857263 },\r\n { x: 0.0000043290000000000936, y: 0.09966711067313214 },\r\n { x: 0.000004330000000000093, y: 0.08746110978349644 },\r\n { x: 0.000004331000000000093, y: 0.09971865458417072 },\r\n { x: 0.0000043320000000000925, y: 0.08912241748992299 },\r\n { x: 0.000004333000000000092, y: 0.10952864346146796 },\r\n { x: 0.000004334000000000092, y: 0.058999989447568194 },\r\n { x: 0.0000043350000000000915, y: 0.08978161643976343 },\r\n { x: 0.000004336000000000091, y: 0.05462358713207488 },\r\n { x: 0.000004337000000000091, y: 0.05309040053378791 },\r\n { x: 0.0000043380000000000904, y: 0.07041407137381508 },\r\n { x: 0.00000433900000000009, y: 0.08571514854010397 },\r\n { x: 0.00000434000000000009, y: 0.03987556357581434 },\r\n { x: 0.000004341000000000089, y: 0.06483450322360867 },\r\n { x: 0.000004342000000000089, y: 0.04183408434868576 },\r\n { x: 0.000004343000000000089, y: 0.059144956937461066 },\r\n { x: 0.000004344000000000088, y: 0.0743436750345493 },\r\n { x: 0.000004345000000000088, y: 0.04120694464393407 },\r\n { x: 0.000004346000000000088, y: 0.0661386635432381 },\r\n { x: 0.000004347000000000087, y: 0.041238553854118905 },\r\n { x: 0.000004348000000000087, y: 0.08401168205110598 },\r\n { x: 0.000004349000000000087, y: 0.09518777269379462 },\r\n { x: 0.000004350000000000086, y: 0.03566645403837755 },\r\n { x: 0.000004351000000000086, y: 0.08708444702519236 },\r\n { x: 0.0000043520000000000856, y: 0.047351433032996874 },\r\n { x: 0.000004353000000000085, y: 0.072312108750855 },\r\n { x: 0.000004354000000000085, y: 0.0972794303616991 },\r\n { x: 0.0000043550000000000845, y: 0.0347609201677046 },\r\n { x: 0.000004356000000000084, y: 0.027262985254025988 },\r\n { x: 0.000004357000000000084, y: 0.059733524345797075 },\r\n { x: 0.0000043580000000000835, y: 0.047264559799169006 },\r\n { x: 0.000004359000000000083, y: 0.03022019743754538 },\r\n { x: 0.000004360000000000083, y: 0.01605317823616126 },\r\n { x: 0.000004361000000000082, y: 0.055019131309623784 },\r\n { x: 0.000004362000000000082, y: 0.010761492187868774 },\r\n { x: 0.000004363000000000082, y: 0.06875911256771178 },\r\n { x: 0.000004364000000000081, y: 0.0622167294663115 },\r\n { x: 0.000004365000000000081, y: 0.03251503985285033 },\r\n { x: 0.000004366000000000081, y: 0.033563627120785894 },\r\n { x: 0.00000436700000000008, y: 0.037507560203690615 },\r\n { x: 0.00000436800000000008, y: 0.037474655218908755 },\r\n { x: 0.00000436900000000008, y: 0.01212101586127362 },\r\n { x: 0.000004370000000000079, y: 0.026031174524743676 },\r\n { x: 0.000004371000000000079, y: 0.06785978070774584 },\r\n { x: 0.000004372000000000079, y: -0.0030962602358450275 },\r\n { x: 0.000004373000000000078, y: 0.018932267923982792 },\r\n { x: 0.000004374000000000078, y: 0.04047327416141266 },\r\n { x: 0.0000043750000000000775, y: 0.048638800424388964 },\r\n { x: 0.000004376000000000077, y: 0.03418495150735163 },\r\n { x: 0.000004377000000000077, y: 0.02001989673478126 },\r\n { x: 0.0000043780000000000765, y: 0.007396412578202536 },\r\n { x: 0.000004379000000000076, y: 0.01028909899249882 },\r\n { x: 0.000004380000000000076, y: 0.05349238032107542 },\r\n { x: 0.0000043810000000000755, y: 0.054775652144337356 },\r\n { x: 0.000004382000000000075, y: 0.03349337859889623 },\r\n { x: 0.000004383000000000075, y: 0.022682065116819156 },\r\n { x: 0.000004384000000000074, y: -0.011316022304403664 },\r\n { x: 0.000004385000000000074, y: -0.01203778014906668 },\r\n { x: 0.000004386000000000074, y: 0.050247477852514294 },\r\n { x: 0.000004387000000000073, y: 0.0038443772434490486 },\r\n { x: 0.000004388000000000073, y: 0.044145533677051416 },\r\n { x: 0.000004389000000000073, y: 0.034649366909434196 },\r\n { x: 0.000004390000000000072, y: 0.04071079001590427 },\r\n { x: 0.000004391000000000072, y: 0.03317864136001323 },\r\n { x: 0.000004392000000000072, y: 0.02369913733336782 },\r\n { x: 0.000004393000000000071, y: 0.0409301364946526 },\r\n { x: 0.000004394000000000071, y: -0.025188821428706733 },\r\n { x: 0.0000043950000000000706, y: -0.004541859021987236 },\r\n { x: 0.00000439600000000007, y: -0.012278767795145439 },\r\n { x: 0.00000439700000000007, y: 0.009391891558085189 },\r\n { x: 0.0000043980000000000695, y: 0.007733494959605235 },\r\n { x: 0.000004399000000000069, y: 0.030439099234344687 },\r\n { x: 0.000004400000000000069, y: -0.016409630491783025 },\r\n { x: 0.0000044010000000000685, y: -0.019735463352103057 },\r\n { x: 0.000004402000000000068, y: -0.03460968924691703 },\r\n { x: 0.000004403000000000068, y: -0.03311480687500664 },\r\n { x: 0.0000044040000000000674, y: -0.015895008749546375 },\r\n { x: 0.000004405000000000067, y: 0.0061986953282571755 },\r\n { x: 0.000004406000000000067, y: -0.016844282998778725 },\r\n { x: 0.000004407000000000066, y: -0.0058568939824834585 },\r\n { x: 0.000004408000000000066, y: -0.03286191330271045 },\r\n { x: 0.000004409000000000066, y: -0.01836579402368211 },\r\n { x: 0.000004410000000000065, y: -0.03131416038425245 },\r\n { x: 0.000004411000000000065, y: -0.001036086450301895 },\r\n { x: 0.000004412000000000065, y: -0.051189455301565254 },\r\n { x: 0.000004413000000000064, y: -0.02944416604923323 },\r\n { x: 0.000004414000000000064, y: 0.01225529509436378 },\r\n { x: 0.000004415000000000064, y: -0.03694284158795072 },\r\n { x: 0.000004416000000000063, y: -0.028714645427504643 },\r\n { x: 0.000004417000000000063, y: -0.05109888134136388 },\r\n { x: 0.0000044180000000000626, y: -0.02278802991887542 },\r\n { x: 0.000004419000000000062, y: -0.03367919185147912 },\r\n { x: 0.000004420000000000062, y: 0.008179044941779234 },\r\n { x: 0.0000044210000000000615, y: -0.02283378464263354 },\r\n { x: 0.000004422000000000061, y: -0.022276079790017285 },\r\n { x: 0.000004423000000000061, y: -0.017352653199888355 },\r\n { x: 0.0000044240000000000605, y: -0.044770630942360626 },\r\n { x: 0.00000442500000000006, y: -0.022507504505039053 },\r\n { x: 0.00000442600000000006, y: -0.018968508059095945 },\r\n { x: 0.0000044270000000000594, y: -0.0324474282081161 },\r\n { x: 0.000004428000000000059, y: -0.03251417949414384 },\r\n { x: 0.000004429000000000059, y: -0.014332986370471645 },\r\n { x: 0.000004430000000000058, y: -0.025656736963981727 },\r\n { x: 0.000004431000000000058, y: -0.019651160203069826 },\r\n { x: 0.000004432000000000058, y: -0.014305785701883542 },\r\n { x: 0.000004433000000000057, y: -0.029336859094932125 },\r\n { x: 0.000004434000000000057, y: -0.05754251335481238 },\r\n { x: 0.000004435000000000057, y: -0.08406083679038032 },\r\n { x: 0.000004436000000000056, y: -0.0307567442405767 },\r\n { x: 0.000004437000000000056, y: -0.02759736236731739 },\r\n { x: 0.000004438000000000056, y: -0.08644623578824348 },\r\n { x: 0.000004439000000000055, y: -0.029646572008271435 },\r\n { x: 0.000004440000000000055, y: -0.08465330229926016 },\r\n { x: 0.0000044410000000000546, y: -0.048453858029903166 },\r\n { x: 0.000004442000000000054, y: -0.04039365570506378 },\r\n { x: 0.000004443000000000054, y: -0.03742693381950518 },\r\n { x: 0.0000044440000000000535, y: -0.020941428163004705 },\r\n { x: 0.000004445000000000053, y: -0.025597328007457863 },\r\n { x: 0.000004446000000000053, y: -0.05303533194151276 },\r\n { x: 0.0000044470000000000525, y: -0.03254856063521485 },\r\n { x: 0.000004448000000000052, y: -0.08091527014204297 },\r\n { x: 0.000004449000000000052, y: -0.059300899444425764 },\r\n { x: 0.000004450000000000051, y: -0.09090816154832285 },\r\n { x: 0.000004451000000000051, y: -0.10243622184986592 },\r\n { x: 0.000004452000000000051, y: -0.07780068489824843 },\r\n { x: 0.00000445300000000005, y: -0.07401890904842322 },\r\n { x: 0.00000445400000000005, y: -0.06385031213668561 },\r\n { x: 0.00000445500000000005, y: -0.0369395715874065 },\r\n { x: 0.000004456000000000049, y: -0.04624052304633135 },\r\n { x: 0.000004457000000000049, y: -0.07255749052518846 },\r\n { x: 0.000004458000000000049, y: -0.09587591733351258 },\r\n { x: 0.000004459000000000048, y: -0.08052941459373546 },\r\n { x: 0.000004460000000000048, y: -0.07546375149805919 },\r\n { x: 0.000004461000000000048, y: -0.038815039776899124 },\r\n { x: 0.000004462000000000047, y: -0.05884039964048921 },\r\n { x: 0.000004463000000000047, y: -0.10873194096694953 },\r\n { x: 0.0000044640000000000465, y: -0.06653517288369924 },\r\n { x: 0.000004465000000000046, y: -0.04650819733504982 },\r\n { x: 0.000004466000000000046, y: -0.06370411554257338 },\r\n { x: 0.0000044670000000000455, y: -0.07114867401224918 },\r\n { x: 0.000004468000000000045, y: -0.10874427269709502 },\r\n { x: 0.000004469000000000045, y: -0.05374449297449803 },\r\n { x: 0.0000044700000000000444, y: -0.09305542976064944 },\r\n { x: 0.000004471000000000044, y: -0.06993422555250092 },\r\n { x: 0.000004472000000000044, y: -0.08076155086148841 },\r\n { x: 0.000004473000000000043, y: -0.09375752836267148 },\r\n { x: 0.000004474000000000043, y: -0.06834000106706759 },\r\n { x: 0.000004475000000000043, y: -0.1285089957266825 },\r\n { x: 0.000004476000000000042, y: -0.08309467570449197 },\r\n { x: 0.000004477000000000042, y: -0.09681139061585507 },\r\n { x: 0.000004478000000000042, y: -0.08823125514299994 },\r\n { x: 0.000004479000000000041, y: -0.12780694782131158 },\r\n { x: 0.000004480000000000041, y: -0.07207408574963284 },\r\n { x: 0.000004481000000000041, y: -0.06830748837620107 },\r\n { x: 0.00000448200000000004, y: -0.0968144565147273 },\r\n { x: 0.00000448300000000004, y: -0.12452567659502442 },\r\n { x: 0.0000044840000000000396, y: -0.12244716206611114 },\r\n { x: 0.000004485000000000039, y: -0.10738434715904249 },\r\n { x: 0.000004486000000000039, y: -0.09069820014577216 },\r\n { x: 0.0000044870000000000385, y: -0.11274927915774811 },\r\n { x: 0.000004488000000000038, y: -0.10232949816068293 },\r\n { x: 0.000004489000000000038, y: -0.12085948320795117 },\r\n { x: 0.0000044900000000000375, y: -0.07693655156307819 },\r\n { x: 0.000004491000000000037, y: -0.13058262018517797 },\r\n { x: 0.000004492000000000037, y: -0.1050188254544194 },\r\n { x: 0.0000044930000000000364, y: -0.13542757802306188 },\r\n { x: 0.000004494000000000036, y: -0.13837817846426426 },\r\n { x: 0.000004495000000000036, y: -0.11356779333513836 },\r\n { x: 0.000004496000000000035, y: -0.15166387392774347 },\r\n { x: 0.000004497000000000035, y: -0.13577402758702942 },\r\n { x: 0.000004498000000000035, y: -0.14971412722281802 },\r\n { x: 0.000004499000000000034, y: -0.11897512139382997 },\r\n { x: 0.000004500000000000034, y: -0.11438381277360571 },\r\n { x: 0.000004501000000000034, y: -0.10070877050182117 },\r\n { x: 0.000004502000000000033, y: -0.10313393024443825 },\r\n { x: 0.000004503000000000033, y: -0.0985986833828442 },\r\n { x: 0.000004504000000000033, y: -0.10908010587794445 },\r\n { x: 0.000004505000000000032, y: -0.10613995494427787 },\r\n { x: 0.000004506000000000032, y: -0.10423249553572772 },\r\n { x: 0.0000045070000000000316, y: -0.1445428829116194 },\r\n { x: 0.000004508000000000031, y: -0.14846339390964555 },\r\n { x: 0.000004509000000000031, y: -0.09449777275172647 },\r\n { x: 0.0000045100000000000305, y: -0.1363310372930019 },\r\n { x: 0.00000451100000000003, y: -0.10780279414382662 },\r\n { x: 0.00000451200000000003, y: -0.10910751225579243 },\r\n { x: 0.0000045130000000000295, y: -0.15703960710406548 },\r\n { x: 0.000004514000000000029, y: -0.15237303637262323 },\r\n { x: 0.000004515000000000029, y: -0.13473584982307496 },\r\n { x: 0.000004516000000000028, y: -0.09875269569754389 },\r\n { x: 0.000004517000000000028, y: -0.09720188691666903 },\r\n { x: 0.000004518000000000028, y: -0.15006556148600886 },\r\n { x: 0.000004519000000000027, y: -0.1637403076487485 },\r\n { x: 0.000004520000000000027, y: -0.11504520626707926 },\r\n { x: 0.000004521000000000027, y: -0.16907052176194426 },\r\n { x: 0.000004522000000000026, y: -0.15707043955824332 },\r\n { x: 0.000004523000000000026, y: -0.11438857955664553 },\r\n { x: 0.000004524000000000026, y: -0.10443228489684468 },\r\n { x: 0.000004525000000000025, y: -0.15301717606205142 },\r\n { x: 0.000004526000000000025, y: -0.1408374568352197 },\r\n { x: 0.000004527000000000025, y: -0.11364182694460714 },\r\n { x: 0.000004528000000000024, y: -0.16509687484639976 },\r\n { x: 0.000004529000000000024, y: -0.11664731843507468 },\r\n { x: 0.0000045300000000000235, y: -0.13325631614190875 },\r\n { x: 0.000004531000000000023, y: -0.16895237877956948 },\r\n { x: 0.000004532000000000023, y: -0.17402953067457072 },\r\n { x: 0.0000045330000000000225, y: -0.1221610627346329 },\r\n { x: 0.000004534000000000022, y: -0.14075575900096557 },\r\n { x: 0.000004535000000000022, y: -0.11848020408101743 },\r\n { x: 0.0000045360000000000215, y: -0.1626331498834029 },\r\n { x: 0.000004537000000000021, y: -0.1291854949657184 },\r\n { x: 0.000004538000000000021, y: -0.17777330718473172 },\r\n { x: 0.00000453900000000002, y: -0.12648682078306261 },\r\n { x: 0.00000454000000000002, y: -0.16799009736051887 },\r\n { x: 0.00000454100000000002, y: -0.18649243971035206 },\r\n { x: 0.000004542000000000019, y: -0.1452926594096877 },\r\n { x: 0.000004543000000000019, y: -0.12632963150907559 },\r\n { x: 0.000004544000000000019, y: -0.14697749845087704 },\r\n { x: 0.000004545000000000018, y: -0.15253945073256678 },\r\n { x: 0.000004546000000000018, y: -0.16174596626010296 },\r\n { x: 0.000004547000000000018, y: -0.18792141927022998 },\r\n { x: 0.000004548000000000017, y: -0.15894313009867014 },\r\n { x: 0.000004549000000000017, y: -0.1665554686897448 },\r\n { x: 0.0000045500000000000166, y: -0.18333842470620065 },\r\n { x: 0.000004551000000000016, y: -0.18062173140549392 },\r\n { x: 0.000004552000000000016, y: -0.1953886797669952 },\r\n { x: 0.0000045530000000000155, y: -0.1964706979880324 },\r\n { x: 0.000004554000000000015, y: -0.16410940154159423 },\r\n { x: 0.000004555000000000015, y: -0.1482845584397377 },\r\n { x: 0.0000045560000000000145, y: -0.16046417452063638 },\r\n { x: 0.000004557000000000014, y: -0.19651598819232566 },\r\n { x: 0.000004558000000000014, y: -0.17589509568281647 },\r\n { x: 0.0000045590000000000134, y: -0.15164882473045274 },\r\n { x: 0.000004560000000000013, y: -0.14512287764436593 },\r\n { x: 0.000004561000000000013, y: -0.18676563242323918 },\r\n { x: 0.000004562000000000012, y: -0.18518869067462282 },\r\n { x: 0.000004563000000000012, y: -0.17250923754915956 },\r\n { x: 0.000004564000000000012, y: -0.1395082836362115 },\r\n { x: 0.000004565000000000011, y: -0.21551477969500438 },\r\n { x: 0.000004566000000000011, y: -0.15539114064043152 },\r\n { x: 0.000004567000000000011, y: -0.18557382147657966 },\r\n { x: 0.00000456800000000001, y: -0.16905292639288855 },\r\n { x: 0.00000456900000000001, y: -0.2323753585489058 },\r\n { x: 0.00000457000000000001, y: -0.15187947286598966 },\r\n { x: 0.000004571000000000009, y: -0.19513860486063878 },\r\n { x: 0.000004572000000000009, y: -0.14680765200251045 },\r\n { x: 0.0000045730000000000086, y: -0.1980141313626623 },\r\n { x: 0.000004574000000000008, y: -0.19972792853837637 },\r\n { x: 0.000004575000000000008, y: -0.2111481012489808 },\r\n { x: 0.0000045760000000000075, y: -0.21355738586889983 },\r\n { x: 0.000004577000000000007, y: -0.18102591266987136 },\r\n { x: 0.000004578000000000007, y: -0.20279162099000217 },\r\n { x: 0.0000045790000000000065, y: -0.18119097518072985 },\r\n { x: 0.000004580000000000006, y: -0.17000991337520813 },\r\n { x: 0.000004581000000000006, y: -0.1877444849524141 },\r\n { x: 0.0000045820000000000054, y: -0.15078192279849487 },\r\n { x: 0.000004583000000000005, y: -0.18002672248676055 },\r\n { x: 0.000004584000000000005, y: -0.15579301444151777 },\r\n { x: 0.000004585000000000004, y: -0.15709872042946224 },\r\n { x: 0.000004586000000000004, y: -0.14797105333309435 },\r\n { x: 0.000004587000000000004, y: -0.14907209980362615 },\r\n { x: 0.000004588000000000003, y: -0.1934247074612179 },\r\n { x: 0.000004589000000000003, y: -0.15007375095781084 },\r\n { x: 0.000004590000000000003, y: -0.20310956350071013 },\r\n { x: 0.000004591000000000002, y: -0.19673176949531415 },\r\n { x: 0.000004592000000000002, y: -0.15163286033003617 },\r\n { x: 0.000004593000000000002, y: -0.1561802522971907 },\r\n { x: 0.000004594000000000001, y: -0.21395528418822773 },\r\n { x: 0.000004595000000000001, y: -0.2144855816654977 },\r\n { x: 0.0000045960000000000006, y: -0.1851080266112227 },\r\n { x: 0.000004597, y: -0.20247365152626745 },\r\n { x: 0.000004598, y: -0.21112623441505923 },\r\n { x: 0.0000045989999999999995, y: -0.22459620193688065 },\r\n { x: 0.000004599999999999999, y: -0.18210168888773165 },\r\n { x: 0.000004600999999999999, y: -0.17286465815291074 },\r\n { x: 0.0000046019999999999985, y: -0.22577343441620287 },\r\n { x: 0.000004602999999999998, y: -0.19717568268109364 },\r\n { x: 0.000004603999999999998, y: -0.1647798111734493 },\r\n { x: 0.000004604999999999997, y: -0.2164635751119212 },\r\n { x: 0.000004605999999999997, y: -0.22208002964527426 },\r\n { x: 0.000004606999999999997, y: -0.22498637363585147 },\r\n { x: 0.000004607999999999996, y: -0.16136838482311364 },\r\n { x: 0.000004608999999999996, y: -0.18583896600093686 },\r\n { x: 0.000004609999999999996, y: -0.17547696915370042 },\r\n { x: 0.000004610999999999995, y: -0.17414147240852423 },\r\n { x: 0.000004611999999999995, y: -0.1637033344171779 },\r\n { x: 0.000004612999999999995, y: -0.20882503887351947 },\r\n { x: 0.000004613999999999994, y: -0.16387044625871208 },\r\n { x: 0.000004614999999999994, y: -0.1767390963027569 },\r\n { x: 0.000004615999999999994, y: -0.17119321818196312 },\r\n { x: 0.000004616999999999993, y: -0.21778951451483697 },\r\n { x: 0.000004617999999999993, y: -0.16402760231019597 },\r\n { x: 0.0000046189999999999925, y: -0.17438522053867123 },\r\n { x: 0.000004619999999999992, y: -0.200777693154057 },\r\n { x: 0.000004620999999999992, y: -0.22384399734445595 },\r\n { x: 0.0000046219999999999915, y: -0.18013211740166474 },\r\n { x: 0.000004622999999999991, y: -0.21702822058223198 },\r\n { x: 0.000004623999999999991, y: -0.221172198782941 },\r\n { x: 0.0000046249999999999904, y: -0.16333724254332704 },\r\n { x: 0.00000462599999999999, y: -0.19843099871416528 },\r\n { x: 0.00000462699999999999, y: -0.1842630535717723 },\r\n { x: 0.000004627999999999989, y: -0.2290070355901267 },\r\n { x: 0.000004628999999999989, y: -0.18892340796949067 },\r\n { x: 0.000004629999999999989, y: -0.2205316139629703 },\r\n { x: 0.000004630999999999988, y: -0.16710989517499117 },\r\n { x: 0.000004631999999999988, y: -0.19354970564096444 },\r\n { x: 0.000004632999999999988, y: -0.22046644715953334 },\r\n { x: 0.000004633999999999987, y: -0.20847319729145103 },\r\n { x: 0.000004634999999999987, y: -0.22115178264139743 },\r\n { x: 0.000004635999999999987, y: -0.23268680301232533 },\r\n { x: 0.000004636999999999986, y: -0.20811882544137172 },\r\n { x: 0.000004637999999999986, y: -0.23868111993396282 },\r\n { x: 0.0000046389999999999856, y: -0.1673710000387146 },\r\n { x: 0.000004639999999999985, y: -0.2059528755471276 },\r\n { x: 0.000004640999999999985, y: -0.19556014818492704 },\r\n { x: 0.0000046419999999999845, y: -0.20508858887643108 },\r\n { x: 0.000004642999999999984, y: -0.22862183103952904 },\r\n { x: 0.000004643999999999984, y: -0.18706619515119602 },\r\n { x: 0.0000046449999999999835, y: -0.20740226391163477 },\r\n { x: 0.000004645999999999983, y: -0.1835127727831929 },\r\n { x: 0.000004646999999999983, y: -0.21143964240091664 },\r\n { x: 0.0000046479999999999824, y: -0.23477790143332308 },\r\n { x: 0.000004648999999999982, y: -0.22851793807307808 },\r\n { x: 0.000004649999999999982, y: -0.2403823801924146 },\r\n { x: 0.000004650999999999981, y: -0.23267371224096148 },\r\n { x: 0.000004651999999999981, y: -0.24611090533177807 },\r\n { x: 0.000004652999999999981, y: -0.1858570390336904 },\r\n { x: 0.00000465399999999998, y: -0.19782970503826008 },\r\n { x: 0.00000465499999999998, y: -0.22587134150097352 },\r\n { x: 0.00000465599999999998, y: -0.18734416432482515 },\r\n { x: 0.000004656999999999979, y: -0.21838763635137723 },\r\n { x: 0.000004657999999999979, y: -0.1879952080639552 },\r\n { x: 0.000004658999999999979, y: -0.2396310490028291 },\r\n { x: 0.000004659999999999978, y: -0.22948122746832111 },\r\n { x: 0.000004660999999999978, y: -0.20587330716192684 },\r\n { x: 0.0000046619999999999776, y: -0.21499404676994655 },\r\n { x: 0.000004662999999999977, y: -0.2080860676222294 },\r\n { x: 0.000004663999999999977, y: -0.2066396966894304 },\r\n { x: 0.0000046649999999999765, y: -0.24398954532706382 },\r\n { x: 0.000004665999999999976, y: -0.2310961811036109 },\r\n { x: 0.000004666999999999976, y: -0.23651052503834863 },\r\n { x: 0.0000046679999999999755, y: -0.20107088150603003 },\r\n { x: 0.000004668999999999975, y: -0.2369518882361267 },\r\n { x: 0.000004669999999999975, y: -0.23914953145120238 },\r\n { x: 0.000004670999999999974, y: -0.20499357578621288 },\r\n { x: 0.000004671999999999974, y: -0.1822571024099909 },\r\n { x: 0.000004672999999999974, y: -0.23349726025447215 },\r\n { x: 0.000004673999999999973, y: -0.20680393168703023 },\r\n { x: 0.000004674999999999973, y: -0.18006358772007572 },\r\n { x: 0.000004675999999999973, y: -0.21775347986046428 },\r\n { x: 0.000004676999999999972, y: -0.2419322174551658 },\r\n { x: 0.000004677999999999972, y: -0.22645496834861117 },\r\n { x: 0.000004678999999999972, y: -0.18460841843998288 },\r\n { x: 0.000004679999999999971, y: -0.26928893721141506 },\r\n { x: 0.000004680999999999971, y: -0.1794197074711376 },\r\n { x: 0.000004681999999999971, y: -0.22478064423537422 },\r\n { x: 0.00000468299999999997, y: -0.17945713475187688 },\r\n { x: 0.00000468399999999997, y: -0.19387013040186674 },\r\n { x: 0.0000046849999999999695, y: -0.20228076460182445 },\r\n { x: 0.000004685999999999969, y: -0.20961354350838923 },\r\n { x: 0.000004686999999999969, y: -0.21570033754098786 },\r\n { x: 0.0000046879999999999685, y: -0.22527750784728526 },\r\n { x: 0.000004688999999999968, y: -0.1911870794089433 },\r\n { x: 0.000004689999999999968, y: -0.1768447145920783 },\r\n { x: 0.0000046909999999999675, y: -0.17374811880973273 },\r\n { x: 0.000004691999999999967, y: -0.18461715037149246 },\r\n { x: 0.000004692999999999967, y: -0.2164497723622435 },\r\n { x: 0.000004693999999999966, y: -0.21943115770511634 },\r\n { x: 0.000004694999999999966, y: -0.180450867294585 },\r\n { x: 0.000004695999999999966, y: -0.20296065473416458 },\r\n { x: 0.000004696999999999965, y: -0.24359773798155251 },\r\n { x: 0.000004697999999999965, y: -0.21363392139837156 },\r\n { x: 0.000004698999999999965, y: -0.22932791900878563 },\r\n { x: 0.000004699999999999964, y: -0.21950931367695548 },\r\n { x: 0.000004700999999999964, y: -0.19702472638362833 },\r\n { x: 0.000004701999999999964, y: -0.1907882526388136 },\r\n { x: 0.000004702999999999963, y: -0.23554754530174113 },\r\n { x: 0.000004703999999999963, y: -0.19614586001424192 },\r\n { x: 0.0000047049999999999626, y: -0.17548260610891864 },\r\n { x: 0.000004705999999999962, y: -0.1802931095853181 },\r\n { x: 0.000004706999999999962, y: -0.18937788191912272 },\r\n { x: 0.0000047079999999999615, y: -0.20506696768389945 },\r\n { x: 0.000004708999999999961, y: -0.24077472450497855 },\r\n { x: 0.000004709999999999961, y: -0.23327681340461123 },\r\n { x: 0.0000047109999999999605, y: -0.19855179013416105 },\r\n { x: 0.00000471199999999996, y: -0.24504745793025579 },\r\n { x: 0.00000471299999999996, y: -0.1835805058338445 },\r\n { x: 0.0000047139999999999594, y: -0.17117419304776266 },\r\n { x: 0.000004714999999999959, y: -0.1944161580900013 },\r\n { x: 0.000004715999999999959, y: -0.17735435602176175 },\r\n { x: 0.000004716999999999958, y: -0.18980986968004357 },\r\n { x: 0.000004717999999999958, y: -0.17675672693910716 },\r\n { x: 0.000004718999999999958, y: -0.20406303252394384 },\r\n { x: 0.000004719999999999957, y: -0.17417277517686236 },\r\n { x: 0.000004720999999999957, y: -0.2085135018484537 },\r\n { x: 0.000004721999999999957, y: -0.22291815943630947 },\r\n { x: 0.000004722999999999956, y: -0.20765851447295466 },\r\n { x: 0.000004723999999999956, y: -0.20852432996812229 },\r\n { x: 0.000004724999999999956, y: -0.223654229452862 },\r\n { x: 0.000004725999999999955, y: -0.20751794985974192 },\r\n { x: 0.000004726999999999955, y: -0.23001064273035512 },\r\n { x: 0.0000047279999999999546, y: -0.20836107867048778 },\r\n { x: 0.000004728999999999954, y: -0.22024976524380394 },\r\n { x: 0.000004729999999999954, y: -0.19775958172770985 },\r\n { x: 0.0000047309999999999535, y: -0.20213102539409397 },\r\n { x: 0.000004731999999999953, y: -0.22564439579340576 },\r\n { x: 0.000004732999999999953, y: -0.17679705902984255 },\r\n { x: 0.0000047339999999999525, y: -0.225663681406971 },\r\n { x: 0.000004734999999999952, y: -0.18660493624890417 },\r\n { x: 0.000004735999999999952, y: -0.2018646182903631 },\r\n { x: 0.0000047369999999999514, y: -0.1758034871227055 },\r\n { x: 0.000004737999999999951, y: -0.20945421851556756 },\r\n { x: 0.000004738999999999951, y: -0.20407375648706966 },\r\n { x: 0.00000473999999999995, y: -0.19335211797354876 },\r\n { x: 0.00000474099999999995, y: -0.22733940136735512 },\r\n { x: 0.00000474199999999995, y: -0.21494492051230604 },\r\n { x: 0.000004742999999999949, y: -0.19450113480447492 },\r\n { x: 0.000004743999999999949, y: -0.1684962871531534 },\r\n { x: 0.000004744999999999949, y: -0.236358974586646 },\r\n { x: 0.000004745999999999948, y: -0.18306612897940924 },\r\n { x: 0.000004746999999999948, y: -0.18950608498279017 },\r\n { x: 0.000004747999999999948, y: -0.1983439086129326 },\r\n { x: 0.000004748999999999947, y: -0.22521746323344227 },\r\n { x: 0.000004749999999999947, y: -0.20931594003229548 },\r\n { x: 0.0000047509999999999466, y: -0.1947776702431402 },\r\n { x: 0.000004751999999999946, y: -0.18490488125778162 },\r\n { x: 0.000004752999999999946, y: -0.22422052957169566 },\r\n { x: 0.0000047539999999999455, y: -0.1608664960899408 },\r\n { x: 0.000004754999999999945, y: -0.21314072406737158 },\r\n { x: 0.000004755999999999945, y: -0.22613514875516533 },\r\n { x: 0.0000047569999999999445, y: -0.23520427973873745 },\r\n { x: 0.000004757999999999944, y: -0.1959171346942928 },\r\n { x: 0.000004758999999999944, y: -0.167921570526336 },\r\n { x: 0.000004759999999999943, y: -0.21440884565974416 },\r\n { x: 0.000004760999999999943, y: -0.234280184017242 },\r\n { x: 0.000004761999999999943, y: -0.1718703321438136 },\r\n { x: 0.000004762999999999942, y: -0.2062218670619978 },\r\n { x: 0.000004763999999999942, y: -0.16177007301569504 },\r\n { x: 0.000004764999999999942, y: -0.2135067355583641 },\r\n { x: 0.000004765999999999941, y: -0.169713522487619 },\r\n { x: 0.000004766999999999941, y: -0.19690944541320163 },\r\n { x: 0.000004767999999999941, y: -0.21542435517989045 },\r\n { x: 0.00000476899999999994, y: -0.1599090038092127 },\r\n { x: 0.00000476999999999994, y: -0.18592641214348676 },\r\n { x: 0.00000477099999999994, y: -0.19662946753571472 },\r\n { x: 0.000004771999999999939, y: -0.21706635068426916 },\r\n { x: 0.000004772999999999939, y: -0.17526513643017064 },\r\n { x: 0.0000047739999999999385, y: -0.20654252549275207 },\r\n { x: 0.000004774999999999938, y: -0.1631517890367496 },\r\n { x: 0.000004775999999999938, y: -0.18673698392866397 },\r\n { x: 0.0000047769999999999375, y: -0.21021363404971802 },\r\n { x: 0.000004777999999999937, y: -0.21194458824357887 },\r\n { x: 0.000004778999999999937, y: -0.15963453604460792 },\r\n { x: 0.0000047799999999999364, y: -0.20277961851973117 },\r\n { x: 0.000004780999999999936, y: -0.2177409813327441 },\r\n { x: 0.000004781999999999936, y: -0.2091624898361344 },\r\n { x: 0.000004782999999999935, y: -0.19590905863790503 },\r\n { x: 0.000004783999999999935, y: -0.21209886282568485 },\r\n { x: 0.000004784999999999935, y: -0.22398077592788382 },\r\n { x: 0.000004785999999999934, y: -0.2203009494501902 },\r\n { x: 0.000004786999999999934, y: -0.1630880818377324 },\r\n { x: 0.000004787999999999934, y: -0.1860963990344954 },\r\n { x: 0.000004788999999999933, y: -0.20794310211730432 },\r\n { x: 0.000004789999999999933, y: -0.18378025208725715 },\r\n { x: 0.000004790999999999933, y: -0.17168632724802244 },\r\n { x: 0.000004791999999999932, y: -0.1558240130518776 },\r\n { x: 0.000004792999999999932, y: -0.2021555152863579 },\r\n { x: 0.0000047939999999999316, y: -0.20037923804218785 },\r\n { x: 0.000004794999999999931, y: -0.19613939082325502 },\r\n { x: 0.000004795999999999931, y: -0.2007319025709042 },\r\n { x: 0.0000047969999999999305, y: -0.19254515569478217 },\r\n { x: 0.00000479799999999993, y: -0.15764900670703727 },\r\n { x: 0.00000479899999999993, y: -0.16360389398329964 },\r\n { x: 0.0000047999999999999295, y: -0.19755280863356103 },\r\n { x: 0.000004800999999999929, y: -0.17213308136425623 },\r\n { x: 0.000004801999999999929, y: -0.15437152411753743 },\r\n { x: 0.0000048029999999999284, y: -0.19333674317331187 },\r\n { x: 0.000004803999999999928, y: -0.2129181764092537 },\r\n { x: 0.000004804999999999928, y: -0.18031639032246033 },\r\n { x: 0.000004805999999999927, y: -0.20860942459824838 },\r\n { x: 0.000004806999999999927, y: -0.17275809913291298 },\r\n { x: 0.000004807999999999927, y: -0.2113950047144613 },\r\n { x: 0.000004808999999999926, y: -0.1608856623448324 },\r\n { x: 0.000004809999999999926, y: -0.14289272634682348 },\r\n { x: 0.000004810999999999926, y: -0.17513428747592577 },\r\n { x: 0.000004811999999999925, y: -0.17576132309826628 },\r\n { x: 0.000004812999999999925, y: -0.20417843271672595 },\r\n { x: 0.000004813999999999925, y: -0.17501485005419407 },\r\n { x: 0.000004814999999999924, y: -0.2052600968613352 },\r\n { x: 0.000004815999999999924, y: -0.1383286747987829 },\r\n { x: 0.0000048169999999999236, y: -0.18845085094256564 },\r\n { x: 0.000004817999999999923, y: -0.1373393353637439 },\r\n { x: 0.000004818999999999923, y: -0.16761729840929637 },\r\n { x: 0.0000048199999999999225, y: -0.1371386993414808 },\r\n { x: 0.000004820999999999922, y: -0.17279139552556755 },\r\n { x: 0.000004821999999999922, y: -0.15436613305972502 },\r\n { x: 0.0000048229999999999215, y: -0.19928640969627978 },\r\n { x: 0.000004823999999999921, y: -0.17465878045807076 },\r\n { x: 0.000004824999999999921, y: -0.17499037100610776 },\r\n { x: 0.00000482599999999992, y: -0.18164039251446504 },\r\n { x: 0.00000482699999999992, y: -0.13809857517430163 },\r\n { x: 0.00000482799999999992, y: -0.19429476716545158 },\r\n { x: 0.000004828999999999919, y: -0.1538921953207057 },\r\n { x: 0.000004829999999999919, y: -0.17969911866035268 },\r\n { x: 0.000004830999999999919, y: -0.1729346234592151 },\r\n { x: 0.000004831999999999918, y: -0.1718842123427915 },\r\n { x: 0.000004832999999999918, y: -0.1664882176643573 },\r\n { x: 0.000004833999999999918, y: -0.18032920382351608 },\r\n { x: 0.000004834999999999917, y: -0.13780590747723948 },\r\n { x: 0.000004835999999999917, y: -0.15876079047465555 },\r\n { x: 0.000004836999999999917, y: -0.14120914648537494 },\r\n { x: 0.000004837999999999916, y: -0.1866227488934059 },\r\n { x: 0.000004838999999999916, y: -0.13176445360945166 },\r\n { x: 0.0000048399999999999155, y: -0.13416564037519066 },\r\n { x: 0.000004840999999999915, y: -0.14228552841507416 },\r\n { x: 0.000004841999999999915, y: -0.1574909816944331 },\r\n { x: 0.0000048429999999999145, y: -0.16205850619713613 },\r\n { x: 0.000004843999999999914, y: -0.15734418167669875 },\r\n { x: 0.000004844999999999914, y: -0.13535032864746668 },\r\n { x: 0.0000048459999999999135, y: -0.12931383706578467 },\r\n { x: 0.000004846999999999913, y: -0.17880634298436224 },\r\n { x: 0.000004847999999999913, y: -0.1496302361993294 },\r\n { x: 0.000004848999999999912, y: -0.13470167311909 },\r\n { x: 0.000004849999999999912, y: -0.11791902244194963 },\r\n { x: 0.000004850999999999912, y: -0.18069602286468192 },\r\n { x: 0.000004851999999999911, y: -0.13547852979310568 },\r\n { x: 0.000004852999999999911, y: -0.12489085559400731 },\r\n { x: 0.000004853999999999911, y: -0.12499704030930918 },\r\n { x: 0.00000485499999999991, y: -0.1720018234815587 },\r\n { x: 0.00000485599999999991, y: -0.15898138102059034 },\r\n { x: 0.00000485699999999991, y: -0.1259648214094295 },\r\n { x: 0.000004857999999999909, y: -0.15422702406169095 },\r\n { x: 0.000004858999999999909, y: -0.10400333640924503 },\r\n { x: 0.0000048599999999999086, y: -0.12772808744237163 },\r\n { x: 0.000004860999999999908, y: -0.17568347478216106 },\r\n { x: 0.000004861999999999908, y: -0.17012655821641406 },\r\n { x: 0.0000048629999999999075, y: -0.13248576605255455 },\r\n { x: 0.000004863999999999907, y: -0.10925693933163909 },\r\n { x: 0.000004864999999999907, y: -0.11174649933581503 },\r\n { x: 0.0000048659999999999065, y: -0.15217719429194307 },\r\n { x: 0.000004866999999999906, y: -0.16529526455950397 },\r\n { x: 0.000004867999999999906, y: -0.09660573875066847 },\r\n { x: 0.0000048689999999999054, y: -0.10993291735667422 },\r\n { x: 0.000004869999999999905, y: -0.09386597403459415 },\r\n { x: 0.000004870999999999905, y: -0.16129354479120137 },\r\n { x: 0.000004871999999999904, y: -0.11500147446626671 },\r\n { x: 0.000004872999999999904, y: -0.11984118171268719 },\r\n { x: 0.000004873999999999904, y: -0.1345035660099142 },\r\n { x: 0.000004874999999999903, y: -0.14618719086080473 },\r\n { x: 0.000004875999999999903, y: -0.11485445424300733 },\r\n { x: 0.000004876999999999903, y: -0.13436265039834844 },\r\n { x: 0.000004877999999999902, y: -0.10618028167215987 },\r\n { x: 0.000004878999999999902, y: -0.15522193103563675 },\r\n { x: 0.000004879999999999902, y: -0.11603179425186169 },\r\n { x: 0.000004880999999999901, y: -0.11267148543518876 },\r\n { x: 0.000004881999999999901, y: -0.14425013561411573 },\r\n { x: 0.0000048829999999999006, y: -0.1045795343885543 },\r\n { x: 0.0000048839999999999, y: -0.15728150147030912 },\r\n { x: 0.0000048849999999999, y: -0.12899113866698708 },\r\n { x: 0.0000048859999999998995, y: -0.09190574762271779 },\r\n { x: 0.000004886999999999899, y: -0.1455477249183041 },\r\n { x: 0.000004887999999999899, y: -0.13988385515254445 },\r\n { x: 0.0000048889999999998985, y: -0.10692291123069793 },\r\n { x: 0.000004889999999999898, y: -0.10306987442992198 },\r\n { x: 0.000004890999999999898, y: -0.11014813447393539 },\r\n { x: 0.0000048919999999998974, y: -0.08419457003218711 },\r\n { x: 0.000004892999999999897, y: -0.08379018179709047 },\r\n { x: 0.000004893999999999897, y: -0.1480267092320591 },\r\n { x: 0.000004894999999999896, y: -0.13538789770744894 },\r\n { x: 0.000004895999999999896, y: -0.10247299914430266 },\r\n { x: 0.000004896999999999896, y: -0.12559969438187232 },\r\n { x: 0.000004897999999999895, y: -0.08112656075683236 },\r\n { x: 0.000004898999999999895, y: -0.0997460859233642 },\r\n { x: 0.000004899999999999895, y: -0.10568721892816163 },\r\n { x: 0.000004900999999999894, y: -0.07086962161944485 },\r\n { x: 0.000004901999999999894, y: -0.1284422510140238 },\r\n { x: 0.000004902999999999894, y: -0.0801746347593161 },\r\n { x: 0.000004903999999999893, y: -0.14140496011063863 },\r\n { x: 0.000004904999999999893, y: -0.11131818949341507 },\r\n { x: 0.0000049059999999998925, y: -0.0973840599783958 },\r\n { x: 0.000004906999999999892, y: -0.07924227894688163 },\r\n { x: 0.000004907999999999892, y: -0.12190320380817203 },\r\n { x: 0.0000049089999999998915, y: -0.09621358489492539 },\r\n { x: 0.000004909999999999891, y: -0.13075900329111637 },\r\n { x: 0.000004910999999999891, y: -0.0661101365828696 },\r\n { x: 0.0000049119999999998905, y: -0.06534845898617356 },\r\n { x: 0.00000491299999999989, y: -0.09597344025805908 },\r\n { x: 0.00000491399999999989, y: -0.11872206641726424 },\r\n { x: 0.000004914999999999889, y: -0.08853031896239191 },\r\n { x: 0.000004915999999999889, y: -0.06622650754929141 },\r\n { x: 0.000004916999999999889, y: -0.10309024203862566 },\r\n { x: 0.000004917999999999888, y: -0.11661611934116448 },\r\n { x: 0.000004918999999999888, y: -0.05809835228344837 },\r\n { x: 0.000004919999999999888, y: -0.08655220835499981 },\r\n { x: 0.000004920999999999887, y: -0.07284919197385525 },\r\n { x: 0.000004921999999999887, y: -0.057951825795007884 },\r\n { x: 0.000004922999999999887, y: -0.12157613857581677 },\r\n { x: 0.000004923999999999886, y: -0.08157155191142763 },\r\n { x: 0.000004924999999999886, y: -0.059756634727099286 },\r\n { x: 0.000004925999999999886, y: -0.07213889817804878 },\r\n { x: 0.000004926999999999885, y: -0.09537269523287686 },\r\n { x: 0.000004927999999999885, y: -0.11695585184370687 },\r\n { x: 0.0000049289999999998845, y: -0.12243418539396558 },\r\n { x: 0.000004929999999999884, y: -0.07713282648976831 },\r\n { x: 0.000004930999999999884, y: -0.0775727622336692 },\r\n { x: 0.0000049319999999998835, y: -0.10458387395625092 },\r\n { x: 0.000004932999999999883, y: -0.08850108896150437 },\r\n { x: 0.000004933999999999883, y: -0.08423858424803811 },\r\n { x: 0.0000049349999999998824, y: -0.07445731673555146 },\r\n { x: 0.000004935999999999882, y: -0.10902936703826094 },\r\n { x: 0.000004936999999999882, y: -0.06289646778316262 },\r\n { x: 0.000004937999999999881, y: -0.10821073356373208 },\r\n { x: 0.000004938999999999881, y: -0.059026477771728675 },\r\n { x: 0.000004939999999999881, y: -0.09350577582955295 },\r\n { x: 0.00000494099999999988, y: -0.04173094732713335 },\r\n { x: 0.00000494199999999988, y: -0.057802373558431354 },\r\n { x: 0.00000494299999999988, y: -0.03587117309250226 },\r\n { x: 0.000004943999999999879, y: -0.07829126272716458 },\r\n { x: 0.000004944999999999879, y: -0.05806479699544798 },\r\n { x: 0.000004945999999999879, y: -0.055031783109273015 },\r\n { x: 0.000004946999999999878, y: -0.055795889887519504 },\r\n { x: 0.000004947999999999878, y: -0.044843089098240946 },\r\n { x: 0.0000049489999999998776, y: -0.08128360222463271 },\r\n { x: 0.000004949999999999877, y: -0.033838124279734254 },\r\n { x: 0.000004950999999999877, y: -0.09576571956912901 },\r\n { x: 0.0000049519999999998765, y: -0.07044183338199075 },\r\n { x: 0.000004952999999999876, y: -0.06775003848283538 },\r\n { x: 0.000004953999999999876, y: -0.08341586804696717 },\r\n { x: 0.0000049549999999998755, y: -0.026914812352326976 },\r\n { x: 0.000004955999999999875, y: -0.09911820284206022 },\r\n { x: 0.000004956999999999875, y: -0.09790415695470989 },\r\n { x: 0.0000049579999999998744, y: -0.05259349495470582 },\r\n { x: 0.000004958999999999874, y: -0.045609478376297787 },\r\n { x: 0.000004959999999999874, y: -0.06785905626139048 },\r\n { x: 0.000004960999999999873, y: -0.03306905282289534 },\r\n { x: 0.000004961999999999873, y: -0.02438447707205612 },\r\n { x: 0.000004962999999999873, y: -0.07199766573081698 },\r\n { x: 0.000004963999999999872, y: -0.05642485857993181 },\r\n { x: 0.000004964999999999872, y: -0.03507293642961979 },\r\n { x: 0.000004965999999999872, y: -0.06892039980153758 },\r\n { x: 0.000004966999999999871, y: -0.024371528997631384 },\r\n { x: 0.000004967999999999871, y: -0.057781144891837694 },\r\n { x: 0.000004968999999999871, y: -0.08445755391245774 },\r\n { x: 0.00000496999999999987, y: -0.019984754276259096 },\r\n { x: 0.00000497099999999987, y: -0.04489547533977136 },\r\n { x: 0.0000049719999999998696, y: -0.022923472714198832 },\r\n { x: 0.000004972999999999869, y: -0.07022689817687824 },\r\n { x: 0.000004973999999999869, y: -0.03571407560884077 },\r\n { x: 0.0000049749999999998685, y: -0.0321685900551716 },\r\n { x: 0.000004975999999999868, y: -0.028171186581429565 },\r\n { x: 0.000004976999999999868, y: -0.013141562968891747 },\r\n { x: 0.0000049779999999998675, y: -0.062217136700027154 },\r\n { x: 0.000004978999999999867, y: -0.008048890685904801 },\r\n { x: 0.000004979999999999867, y: -0.002861427427264314 },\r\n { x: 0.000004980999999999866, y: -0.07080151530840517 },\r\n { x: 0.000004981999999999866, y: -0.03232752906718989 },\r\n { x: 0.000004982999999999866, y: -0.027368309128163994 },\r\n { x: 0.000004983999999999865, y: -0.01483745930429672 },\r\n { x: 0.000004984999999999865, y: -0.012576606817376813 },\r\n { x: 0.000004985999999999865, y: -0.0363257857555606 },\r\n { x: 0.000004986999999999864, y: -0.01608651514883019 },\r\n { x: 0.000004987999999999864, y: -0.023901584337729195 },\r\n { x: 0.000004988999999999864, y: -0.06457789657819268 },\r\n { x: 0.000004989999999999863, y: -0.0411856083797308 },\r\n { x: 0.000004990999999999863, y: -0.022244764833207593 },\r\n { x: 0.000004991999999999863, y: -0.04695856198742204 },\r\n { x: 0.000004992999999999862, y: -0.026737312939246756 },\r\n { x: 0.000004993999999999862, y: -0.06199909039201966 },\r\n { x: 0.0000049949999999998615, y: -0.0254147913806117 },\r\n { x: 0.000004995999999999861, y: -0.04992082129608859 },\r\n { x: 0.000004996999999999861, y: -0.007418809966423294 },\r\n { x: 0.0000049979999999998605, y: -0.013678467530334748 },\r\n { x: 0.00000499899999999986, y: 0.004664434960145333 },\r\n { x: 0.00000499999999999986, y: 0.009311795051603962 },\r\n { x: 0.0000050009999999998595, y: -0.0042486979619729415 },\r\n { x: 0.000005001999999999859, y: -0.051674127876879174 },\r\n { x: 0.000005002999999999859, y: -0.008037008929684985 },\r\n { x: 0.000005003999999999858, y: -0.045848084279527024 },\r\n { x: 0.000005004999999999858, y: -0.0040695178685149665 },\r\n { x: 0.000005005999999999858, y: -0.005058554328545373 },\r\n { x: 0.000005006999999999857, y: -0.00835813196174382 },\r\n { x: 0.000005007999999999857, y: 0.012973121889614858 },\r\n { x: 0.000005008999999999857, y: 0.008395654434501673 },\r\n { x: 0.000005009999999999856, y: -0.04505598739126347 },\r\n { x: 0.000005010999999999856, y: -0.01553069391300424 },\r\n { x: 0.000005011999999999856, y: 0.006486416147778404 },\r\n { x: 0.000005012999999999855, y: -0.0195859621508336 },\r\n { x: 0.000005013999999999855, y: -0.039070141786189956 },\r\n { x: 0.0000050149999999998546, y: -0.023233986360678506 },\r\n { x: 0.000005015999999999854, y: 0.025678075043770142 },\r\n { x: 0.000005016999999999854, y: -0.03625904254495807 },\r\n { x: 0.0000050179999999998535, y: -0.032912232555061996 },\r\n { x: 0.000005018999999999853, y: -0.0009306114694812165 },\r\n { x: 0.000005019999999999853, y: -0.03675606796006399 },\r\n { x: 0.0000050209999999998525, y: -0.015087048918444389 },\r\n { x: 0.000005021999999999852, y: -0.021756564405929997 },\r\n { x: 0.000005022999999999852, y: 0.013326902707929474 },\r\n { x: 0.0000050239999999998514, y: -0.032311009629343745 },\r\n { x: 0.000005024999999999851, y: 0.01603544225578032 },\r\n { x: 0.000005025999999999851, y: -0.005747291352763567 },\r\n { x: 0.00000502699999999985, y: -0.016044880607822252 },\r\n { x: 0.00000502799999999985, y: -0.004874847938711399 },\r\n { x: 0.00000502899999999985, y: 0.015385456467212281 },\r\n { x: 0.000005029999999999849, y: 0.018514538248983903 },\r\n { x: 0.000005030999999999849, y: 0.02204240242151138 },\r\n { x: 0.000005031999999999849, y: 0.02912149766978155 },\r\n { x: 0.000005032999999999848, y: -0.0021647747080949225 },\r\n { x: 0.000005033999999999848, y: -0.00922275387973373 },\r\n { x: 0.000005034999999999848, y: 0.019214525790300273 },\r\n { x: 0.000005035999999999847, y: 0.038716207912106795 },\r\n { x: 0.000005036999999999847, y: 0.04369819867637072 },\r\n { x: 0.0000050379999999998466, y: -0.015473393049577478 },\r\n { x: 0.000005038999999999846, y: -0.019639489969987364 },\r\n { x: 0.000005039999999999846, y: 0.016142906541799264 },\r\n { x: 0.0000050409999999998455, y: -0.00346702658855904 },\r\n { x: 0.000005041999999999845, y: -0.014906744019370094 },\r\n { x: 0.000005042999999999845, y: 0.028030675484268117 },\r\n { x: 0.0000050439999999998445, y: 0.022933229818272005 },\r\n { x: 0.000005044999999999844, y: 0.03712510844528114 },\r\n { x: 0.000005045999999999844, y: 0.04115848810097254 },\r\n { x: 0.0000050469999999998434, y: 0.020494427453857173 },\r\n { x: 0.000005047999999999843, y: 0.054987634059592866 },\r\n { x: 0.000005048999999999843, y: -0.010005854733778529 },\r\n { x: 0.000005049999999999842, y: 0.007476921469571943 },\r\n { x: 0.000005050999999999842, y: 0.023297925529036572 },\r\n { x: 0.000005051999999999842, y: 0.04229944762070528 },\r\n { x: 0.000005052999999999841, y: -0.009948903670665851 },\r\n { x: 0.000005053999999999841, y: 0.007362581972701886 },\r\n { x: 0.000005054999999999841, y: 0.025259254816365404 },\r\n { x: 0.00000505599999999984, y: 0.02872700592043828 },\r\n { x: 0.00000505699999999984, y: 0.03609191359160033 },\r\n { x: 0.00000505799999999984, y: 0.029689089836923387 },\r\n { x: 0.000005058999999999839, y: 0.048208114339134245 },\r\n { x: 0.000005059999999999839, y: -0.008523067423195096 },\r\n { x: 0.0000050609999999998385, y: 0.048292231733407985 },\r\n { x: 0.000005061999999999838, y: 0.002431737869759854 },\r\n { x: 0.000005062999999999838, y: 0.02578493936285812 },\r\n { x: 0.0000050639999999998375, y: 0.06295742467028229 },\r\n { x: 0.000005064999999999837, y: 0.019906756150100697 },\r\n { x: 0.000005065999999999837, y: 0.052329339908353985 },\r\n { x: 0.0000050669999999998365, y: 0.07018574749278718 },\r\n { x: 0.000005067999999999836, y: 0.05263194561358897 },\r\n { x: 0.000005068999999999836, y: 0.053751372227729126 },\r\n { x: 0.000005069999999999835, y: 0.05277372355378042 },\r\n { x: 0.000005070999999999835, y: -0.0002219276410308016 },\r\n { x: 0.000005071999999999835, y: 0.012348918293527935 },\r\n { x: 0.000005072999999999834, y: 0.055259019796436756 },\r\n { x: 0.000005073999999999834, y: 0.06982502704088461 },\r\n { x: 0.000005074999999999834, y: 0.07613673498357486 },\r\n { x: 0.000005075999999999833, y: 0.02511433251889668 },\r\n { x: 0.000005076999999999833, y: 0.11063027313847137 },\r\n { x: 0.000005077999999999833, y: 0.07912954983301018 },\r\n { x: 0.000005078999999999832, y: 0.07771869256285084 },\r\n { x: 0.000005079999999999832, y: 0.036960454964422275 },\r\n { x: 0.000005080999999999832, y: 0.022026614056307705 },\r\n { x: 0.000005081999999999831, y: 0.06237263594572377 },\r\n { x: 0.000005082999999999831, y: 0.02777925946243225 },\r\n { x: 0.0000050839999999998305, y: 0.07964742387587326 },\r\n { x: 0.00000508499999999983, y: 0.014329951413496952 },\r\n { x: 0.00000508599999999983, y: 0.07783588310753868 },\r\n { x: 0.0000050869999999998295, y: 0.0622488861102068 },\r\n { x: 0.000005087999999999829, y: 0.045847560820092524 },\r\n { x: 0.000005088999999999829, y: 0.049778621420333645 },\r\n { x: 0.0000050899999999998284, y: 0.05355947621525368 },\r\n { x: 0.000005090999999999828, y: 0.07272768779571191 },\r\n { x: 0.000005091999999999828, y: 0.10555320918314048 },\r\n { x: 0.000005092999999999827, y: 0.0396495904457734 },\r\n { x: 0.000005093999999999827, y: 0.05003553404294465 },\r\n { x: 0.000005094999999999827, y: 0.047482513835271814 },\r\n { x: 0.000005095999999999826, y: 0.0466818805349055 },\r\n { x: 0.000005096999999999826, y: 0.05326596096075535 },\r\n { x: 0.000005097999999999826, y: 0.035446163154809765 },\r\n { x: 0.000005098999999999825, y: 0.02244622940723117 },\r\n { x: 0.000005099999999999825, y: 0.05531826308652162 },\r\n { x: 0.000005100999999999825, y: 0.037851901604246035 },\r\n { x: 0.000005101999999999824, y: 0.049331343014018425 },\r\n { x: 0.000005102999999999824, y: 0.09101446333899887 },\r\n { x: 0.0000051039999999998236, y: 0.09256805489808356 },\r\n { x: 0.000005104999999999823, y: 0.09806519317081278 },\r\n { x: 0.000005105999999999823, y: 0.0953011379164305 },\r\n { x: 0.0000051069999999998225, y: 0.05021215131488828 },\r\n { x: 0.000005107999999999822, y: 0.037122411558486466 },\r\n { x: 0.000005108999999999822, y: 0.07902939931076589 },\r\n { x: 0.0000051099999999998215, y: 0.09278036520141489 },\r\n { x: 0.000005110999999999821, y: 0.062259643831213914 },\r\n { x: 0.000005111999999999821, y: 0.08367015628070588 },\r\n { x: 0.0000051129999999998204, y: 0.07860438084449084 },\r\n { x: 0.00000511399999999982, y: 0.07135860742942574 },\r\n { x: 0.00000511499999999982, y: 0.039912772898280505 },\r\n { x: 0.000005115999999999819, y: 0.04877454829061288 },\r\n { x: 0.000005116999999999819, y: 0.07421556396524108 },\r\n { x: 0.000005117999999999819, y: 0.03403832908981421 },\r\n { x: 0.000005118999999999818, y: 0.037741265749125265 },\r\n { x: 0.000005119999999999818, y: 0.08497000270784218 },\r\n { x: 0.000005120999999999818, y: 0.06425217798980108 },\r\n { x: 0.000005121999999999817, y: 0.08407762855217268 },\r\n { x: 0.000005122999999999817, y: 0.03830285420650548 },\r\n { x: 0.000005123999999999817, y: 0.10801594378923063 },\r\n { x: 0.000005124999999999816, y: 0.07121389919160076 },\r\n { x: 0.000005125999999999816, y: 0.10697880651994408 },\r\n { x: 0.0000051269999999998156, y: 0.06518250871833037 },\r\n { x: 0.000005127999999999815, y: 0.06821800145062135 },\r\n { x: 0.000005128999999999815, y: 0.07261921084406753 },\r\n { x: 0.0000051299999999998145, y: 0.1099127353514906 },\r\n { x: 0.000005130999999999814, y: 0.05450141146279909 },\r\n { x: 0.000005131999999999814, y: 0.10520229842147627 },\r\n { x: 0.0000051329999999998135, y: 0.06777034691543163 },\r\n { x: 0.000005133999999999813, y: 0.10100012174386644 },\r\n { x: 0.000005134999999999813, y: 0.10507665907788341 },\r\n { x: 0.000005135999999999812, y: 0.05907241101024166 },\r\n { x: 0.000005136999999999812, y: 0.054956879881917234 },\r\n { x: 0.000005137999999999812, y: 0.0447907242156061 },\r\n { x: 0.000005138999999999811, y: 0.05456812067749722 },\r\n { x: 0.000005139999999999811, y: 0.06751787756041984 },\r\n { x: 0.000005140999999999811, y: 0.0606144573829864 },\r\n { x: 0.00000514199999999981, y: 0.09934729933583249 },\r\n { x: 0.00000514299999999981, y: 0.09402765124604553 },\r\n { x: 0.00000514399999999981, y: 0.07142693325362795 },\r\n { x: 0.000005144999999999809, y: 0.05433269905475749 },\r\n { x: 0.000005145999999999809, y: 0.09994568651168137 },\r\n { x: 0.000005146999999999809, y: 0.09890187355606968 },\r\n { x: 0.000005147999999999808, y: 0.11053426922339005 },\r\n { x: 0.000005148999999999808, y: 0.11800045755706048 },\r\n { x: 0.0000051499999999998075, y: 0.11807685524827202 },\r\n { x: 0.000005150999999999807, y: 0.06190890114209674 },\r\n { x: 0.000005151999999999807, y: 0.08674793649090762 },\r\n { x: 0.0000051529999999998065, y: 0.08834077707493128 },\r\n { x: 0.000005153999999999806, y: 0.12769692412352746 },\r\n { x: 0.000005154999999999806, y: 0.05370333792602889 },\r\n { x: 0.0000051559999999998055, y: 0.06361218386584885 },\r\n { x: 0.000005156999999999805, y: 0.09323188369342292 },\r\n { x: 0.000005157999999999805, y: 0.10189292498201202 },\r\n { x: 0.000005158999999999804, y: 0.1180087498795736 },\r\n { x: 0.000005159999999999804, y: 0.10999203283057399 },\r\n { x: 0.000005160999999999804, y: 0.0961533828201746 },\r\n { x: 0.000005161999999999803, y: 0.0778847597962472 },\r\n { x: 0.000005162999999999803, y: 0.09366215169995812 },\r\n { x: 0.000005163999999999803, y: 0.10156957261407087 },\r\n { x: 0.000005164999999999802, y: 0.08295366338188746 },\r\n { x: 0.000005165999999999802, y: 0.08224057500477566 },\r\n { x: 0.000005166999999999802, y: 0.10195143055090067 },\r\n { x: 0.000005167999999999801, y: 0.11665842699452506 },\r\n { x: 0.000005168999999999801, y: 0.09348403415969798 },\r\n { x: 0.0000051699999999998006, y: 0.09957685242186154 },\r\n { x: 0.0000051709999999998, y: 0.12274585125747074 },\r\n { x: 0.0000051719999999998, y: 0.10559699566859558 },\r\n { x: 0.0000051729999999997995, y: 0.06466748724489677 },\r\n { x: 0.000005173999999999799, y: 0.096323486475568 },\r\n { x: 0.000005174999999999799, y: 0.11236101522706754 },\r\n { x: 0.0000051759999999997985, y: 0.09381732092918492 },\r\n { x: 0.000005176999999999798, y: 0.0872311744847586 },\r\n { x: 0.000005177999999999798, y: 0.0852245800808161 },\r\n { x: 0.0000051789999999997974, y: 0.08830962799138656 },\r\n { x: 0.000005179999999999797, y: 0.08460790771045605 },\r\n { x: 0.000005180999999999797, y: 0.12720540797328467 },\r\n { x: 0.000005181999999999796, y: 0.07699078547094725 },\r\n { x: 0.000005182999999999796, y: 0.09824306248149246 },\r\n { x: 0.000005183999999999796, y: 0.11076507818971758 },\r\n { x: 0.000005184999999999795, y: 0.11779833471534458 },\r\n { x: 0.000005185999999999795, y: 0.07683612056418618 },\r\n { x: 0.000005186999999999795, y: 0.14081570731652182 },\r\n { x: 0.000005187999999999794, y: 0.12298077350057046 },\r\n { x: 0.000005188999999999794, y: 0.12531931777997332 },\r\n { x: 0.000005189999999999794, y: 0.12664059706265998 },\r\n { x: 0.000005190999999999793, y: 0.07928187092681617 },\r\n { x: 0.000005191999999999793, y: 0.1142035308140135 },\r\n { x: 0.0000051929999999997926, y: 0.12577064151821116 },\r\n { x: 0.000005193999999999792, y: 0.11949188873286824 },\r\n { x: 0.000005194999999999792, y: 0.09101084306623014 },\r\n { x: 0.0000051959999999997915, y: 0.07500252478446773 },\r\n { x: 0.000005196999999999791, y: 0.14661125252193297 },\r\n { x: 0.000005197999999999791, y: 0.13250934140356968 },\r\n { x: 0.0000051989999999997905, y: 0.08932982512663858 },\r\n { x: 0.00000519999999999979, y: 0.08550548082835481 },\r\n { x: 0.00000520099999999979, y: 0.10394532841800222 },\r\n { x: 0.0000052019999999997894, y: 0.08265343108013151 },\r\n { x: 0.000005202999999999789, y: 0.14809193673165025 },\r\n { x: 0.000005203999999999789, y: 0.13463090787814644 },\r\n { x: 0.000005204999999999788, y: 0.1294325313271355 },\r\n { x: 0.000005205999999999788, y: 0.09282342066156792 },\r\n { x: 0.000005206999999999788, y: 0.1436312786928314 },\r\n { x: 0.000005207999999999787, y: 0.12566020468116226 },\r\n { x: 0.000005208999999999787, y: 0.09078305845011876 },\r\n { x: 0.000005209999999999787, y: 0.13795540585649466 },\r\n { x: 0.000005210999999999786, y: 0.11733663514416333 },\r\n { x: 0.000005211999999999786, y: 0.09477740060529853 },\r\n { x: 0.000005212999999999786, y: 0.10041928771568914 },\r\n { x: 0.000005213999999999785, y: 0.10238393002534794 },\r\n { x: 0.000005214999999999785, y: 0.1567992318032028 },\r\n { x: 0.0000052159999999997845, y: 0.09563800486141057 },\r\n { x: 0.000005216999999999784, y: 0.08979321892744155 },\r\n { x: 0.000005217999999999784, y: 0.10973426506834066 },\r\n { x: 0.0000052189999999997835, y: 0.09223711840687873 },\r\n { x: 0.000005219999999999783, y: 0.1383544362026468 },\r\n { x: 0.000005220999999999783, y: 0.0999367725571895 },\r\n { x: 0.0000052219999999997825, y: 0.08446118492175768 },\r\n { x: 0.000005222999999999782, y: 0.12950412885256435 },\r\n { x: 0.000005223999999999782, y: 0.13628042682666983 },\r\n { x: 0.000005224999999999781, y: 0.08984945006414219 },\r\n { x: 0.000005225999999999781, y: 0.12237407006093978 },\r\n { x: 0.000005226999999999781, y: 0.08705699683887953 },\r\n { x: 0.00000522799999999978, y: 0.14547049589356686 },\r\n { x: 0.00000522899999999978, y: 0.0926629971955555 },\r\n { x: 0.00000522999999999978, y: 0.1608524254356898 },\r\n { x: 0.000005230999999999779, y: 0.12057652608288888 },\r\n { x: 0.000005231999999999779, y: 0.1416197905690594 },\r\n { x: 0.000005232999999999779, y: 0.09425682403721321 },\r\n { x: 0.000005233999999999778, y: 0.12141028769661823 },\r\n { x: 0.000005234999999999778, y: 0.15674823006218022 },\r\n { x: 0.000005235999999999778, y: 0.10646827407257134 },\r\n { x: 0.000005236999999999777, y: 0.12312708332119715 },\r\n { x: 0.000005237999999999777, y: 0.15120748448339894 },\r\n { x: 0.0000052389999999997765, y: 0.1644637004857692 },\r\n { x: 0.000005239999999999776, y: 0.13616017090446259 },\r\n { x: 0.000005240999999999776, y: 0.08974333734783863 },\r\n { x: 0.0000052419999999997755, y: 0.13107861329550907 },\r\n { x: 0.000005242999999999775, y: 0.09954767582217837 },\r\n { x: 0.000005243999999999775, y: 0.10953637992858052 },\r\n { x: 0.0000052449999999997744, y: 0.1414436435196851 },\r\n { x: 0.000005245999999999774, y: 0.11227329274863637 },\r\n { x: 0.000005246999999999774, y: 0.11773410457143 },\r\n { x: 0.000005247999999999773, y: 0.15775831798311404 },\r\n { x: 0.000005248999999999773, y: 0.09789213963863787 },\r\n { x: 0.000005249999999999773, y: 0.11676484046797893 },\r\n { x: 0.000005250999999999772, y: 0.10752997327228947 },\r\n { x: 0.000005251999999999772, y: 0.16309847595793353 },\r\n { x: 0.000005252999999999772, y: 0.1630443093645651 },\r\n { x: 0.000005253999999999771, y: 0.0959319627294716 },\r\n { x: 0.000005254999999999771, y: 0.11123955579855684 },\r\n { x: 0.000005255999999999771, y: 0.10683682512436833 },\r\n { x: 0.00000525699999999977, y: 0.13364918958393462 },\r\n { x: 0.00000525799999999977, y: 0.1057202770649562 },\r\n { x: 0.0000052589999999997696, y: 0.16391526857269595 },\r\n { x: 0.000005259999999999769, y: 0.15132387134865277 },\r\n { x: 0.000005260999999999769, y: 0.10170581745186769 },\r\n { x: 0.0000052619999999997685, y: 0.16643863291159045 },\r\n { x: 0.000005262999999999768, y: 0.1523269152752978 },\r\n { x: 0.000005263999999999768, y: 0.144234692117693 },\r\n { x: 0.0000052649999999997675, y: 0.08577841574949399 },\r\n { x: 0.000005265999999999767, y: 0.11892147047739499 },\r\n { x: 0.000005266999999999767, y: 0.12928060886489726 },\r\n { x: 0.0000052679999999997664, y: 0.14937165655864268 },\r\n { x: 0.000005268999999999766, y: 0.1600167676500758 },\r\n { x: 0.000005269999999999766, y: 0.12871225950869453 },\r\n { x: 0.000005270999999999765, y: 0.1321906561045424 },\r\n { x: 0.000005271999999999765, y: 0.16898963919767346 },\r\n { x: 0.000005272999999999765, y: 0.131445532307316 },\r\n { x: 0.000005273999999999764, y: 0.15223705515626373 },\r\n { x: 0.000005274999999999764, y: 0.10790320222895054 },\r\n { x: 0.000005275999999999764, y: 0.11214039556320637 },\r\n { x: 0.000005276999999999763, y: 0.14246074497137903 },\r\n { x: 0.000005277999999999763, y: 0.1288952793329502 },\r\n { x: 0.000005278999999999763, y: 0.11777769206547747 },\r\n { x: 0.000005279999999999762, y: 0.1185705478638393 },\r\n { x: 0.000005280999999999762, y: 0.16324990457024166 },\r\n { x: 0.0000052819999999997616, y: 0.1284850086467003 },\r\n { x: 0.000005282999999999761, y: 0.15543384409896305 },\r\n { x: 0.000005283999999999761, y: 0.11667377515718845 },\r\n { x: 0.0000052849999999997605, y: 0.13819633467004835 },\r\n { x: 0.00000528599999999976, y: 0.16816922058498113 },\r\n { x: 0.00000528699999999976, y: 0.11995830091336396 },\r\n { x: 0.0000052879999999997595, y: 0.10046915427625075 },\r\n { x: 0.000005288999999999759, y: 0.14217244793871867 },\r\n { x: 0.000005289999999999759, y: 0.16132734685422329 },\r\n { x: 0.000005290999999999758, y: 0.16887812288169746 },\r\n { x: 0.000005291999999999758, y: 0.11009089377254884 },\r\n { x: 0.000005292999999999758, y: 0.11595234125549575 },\r\n { x: 0.000005293999999999757, y: 0.15149132757628947 },\r\n { x: 0.000005294999999999757, y: 0.16989575131555568 },\r\n { x: 0.000005295999999999757, y: 0.1625354258383166 },\r\n { x: 0.000005296999999999756, y: 0.15227099850588713 },\r\n { x: 0.000005297999999999756, y: 0.10509311612094015 },\r\n { x: 0.000005298999999999756, y: 0.12353427548624234 },\r\n { x: 0.000005299999999999755, y: 0.13078837280660183 },\r\n { x: 0.000005300999999999755, y: 0.1280444872415387 },\r\n { x: 0.000005301999999999755, y: 0.10782367468431045 },\r\n { x: 0.000005302999999999754, y: 0.12300660849589021 },\r\n { x: 0.000005303999999999754, y: 0.12908982577505598 },\r\n { x: 0.0000053049999999997535, y: 0.16140202178405594 },\r\n { x: 0.000005305999999999753, y: 0.15777984740606843 },\r\n { x: 0.000005306999999999753, y: 0.17267708073856453 },\r\n { x: 0.0000053079999999997525, y: 0.12490706715598224 },\r\n { x: 0.000005308999999999752, y: 0.1604334180602598 },\r\n { x: 0.000005309999999999752, y: 0.14285815722884326 },\r\n { x: 0.0000053109999999997515, y: 0.12200335426345624 },\r\n { x: 0.000005311999999999751, y: 0.15528506119201516 },\r\n { x: 0.000005312999999999751, y: 0.12754224754133314 },\r\n { x: 0.00000531399999999975, y: 0.10854723407895986 },\r\n { x: 0.00000531499999999975, y: 0.13366213873699712 },\r\n { x: 0.00000531599999999975, y: 0.17291845979493653 },\r\n { x: 0.000005316999999999749, y: 0.10068417457858662 },\r\n { x: 0.000005317999999999749, y: 0.13931601345063327 },\r\n { x: 0.000005318999999999749, y: 0.11885753067738289 },\r\n { x: 0.000005319999999999748, y: 0.14152297129376254 },\r\n { x: 0.000005320999999999748, y: 0.1390035550649748 },\r\n { x: 0.000005321999999999748, y: 0.12504787238686105 },\r\n { x: 0.000005322999999999747, y: 0.16800654448148356 },\r\n { x: 0.000005323999999999747, y: 0.1336848307471853 },\r\n { x: 0.0000053249999999997466, y: 0.1329362167103609 },\r\n { x: 0.000005325999999999746, y: 0.14959935355488965 },\r\n { x: 0.000005326999999999746, y: 0.1309823358227884 },\r\n { x: 0.0000053279999999997455, y: 0.14890399669832766 },\r\n { x: 0.000005328999999999745, y: 0.13931591585886574 },\r\n { x: 0.000005329999999999745, y: 0.12667323003314426 },\r\n { x: 0.0000053309999999997445, y: 0.16554651081163294 },\r\n { x: 0.000005331999999999744, y: 0.1228158902759412 },\r\n { x: 0.000005332999999999744, y: 0.1573353745347053 },\r\n { x: 0.0000053339999999997434, y: 0.14732694134898447 },\r\n { x: 0.000005334999999999743, y: 0.14722464524545348 },\r\n { x: 0.000005335999999999743, y: 0.132551089778336 },\r\n { x: 0.000005336999999999742, y: 0.11981915201683922 },\r\n { x: 0.000005337999999999742, y: 0.11502737237630124 },\r\n { x: 0.000005338999999999742, y: 0.11390644628838834 },\r\n { x: 0.000005339999999999741, y: 0.15029617009891494 },\r\n { x: 0.000005340999999999741, y: 0.10548946715547333 },\r\n { x: 0.000005341999999999741, y: 0.13125181185906323 },\r\n { x: 0.00000534299999999974, y: 0.13733037347654842 },\r\n { x: 0.00000534399999999974, y: 0.13632081490806414 },\r\n { x: 0.00000534499999999974, y: 0.11700233048215822 },\r\n { x: 0.000005345999999999739, y: 0.15845095039516613 },\r\n { x: 0.000005346999999999739, y: 0.15335683559624075 },\r\n { x: 0.0000053479999999997386, y: 0.11493704363302802 },\r\n { x: 0.000005348999999999738, y: 0.1200755419055259 },\r\n { x: 0.000005349999999999738, y: 0.1251580191187848 },\r\n { x: 0.0000053509999999997375, y: 0.1230749409138043 },\r\n { x: 0.000005351999999999737, y: 0.11267572101351167 },\r\n { x: 0.000005352999999999737, y: 0.14609902529764413 },\r\n { x: 0.0000053539999999997365, y: 0.16409555164042855 },\r\n { x: 0.000005354999999999736, y: 0.16276703083145905 },\r\n { x: 0.000005355999999999736, y: 0.13162786801023588 },\r\n { x: 0.0000053569999999997354, y: 0.10450561357274661 },\r\n { x: 0.000005357999999999735, y: 0.16553513598851666 },\r\n { x: 0.000005358999999999735, y: 0.10235390117643432 },\r\n { x: 0.000005359999999999734, y: 0.16209048111459723 },\r\n { x: 0.000005360999999999734, y: 0.16862441843359494 },\r\n { x: 0.000005361999999999734, y: 0.15212881400710798 },\r\n { x: 0.000005362999999999733, y: 0.12893007654174463 },\r\n { x: 0.000005363999999999733, y: 0.13710620889283834 },\r\n { x: 0.000005364999999999733, y: 0.12216603848555517 },\r\n { x: 0.000005365999999999732, y: 0.14632520370853394 },\r\n { x: 0.000005366999999999732, y: 0.1546330936481003 },\r\n { x: 0.000005367999999999732, y: 0.13394085445415557 },\r\n { x: 0.000005368999999999731, y: 0.138108734763494 },\r\n { x: 0.000005369999999999731, y: 0.15681650720550006 },\r\n { x: 0.0000053709999999997305, y: 0.1394369487048485 },\r\n { x: 0.00000537199999999973, y: 0.09401743257708534 },\r\n { x: 0.00000537299999999973, y: 0.11422996913513755 },\r\n { x: 0.0000053739999999997295, y: 0.1015719835220732 },\r\n { x: 0.000005374999999999729, y: 0.13110380584307701 },\r\n { x: 0.000005375999999999729, y: 0.11783129124724499 },\r\n { x: 0.0000053769999999997285, y: 0.10203519682512509 },\r\n { x: 0.000005377999999999728, y: 0.0929668638212877 },\r\n { x: 0.000005378999999999728, y: 0.1006503869331531 },\r\n { x: 0.000005379999999999727, y: 0.14003956385097696 },\r\n { x: 0.000005380999999999727, y: 0.12566651942322252 },\r\n { x: 0.000005381999999999727, y: 0.16167597927569366 },\r\n { x: 0.000005382999999999726, y: 0.11587901986128309 },\r\n { x: 0.000005383999999999726, y: 0.15308633004638245 },\r\n { x: 0.000005384999999999726, y: 0.15856571149951343 },\r\n { x: 0.000005385999999999725, y: 0.11640267818997072 },\r\n { x: 0.000005386999999999725, y: 0.10963525641924257 },\r\n { x: 0.000005387999999999725, y: 0.09209374064047149 },\r\n { x: 0.000005388999999999724, y: 0.1415295732870333 },\r\n { x: 0.000005389999999999724, y: 0.10348962855379744 },\r\n { x: 0.000005390999999999724, y: 0.11255458424431092 },\r\n { x: 0.000005391999999999723, y: 0.15125863442125664 },\r\n { x: 0.000005392999999999723, y: 0.0974588307797635 },\r\n { x: 0.0000053939999999997225, y: 0.09359648235308661 },\r\n { x: 0.000005394999999999722, y: 0.11585234303612196 },\r\n { x: 0.000005395999999999722, y: 0.14334520027327285 },\r\n { x: 0.0000053969999999997215, y: 0.08730660105962522 },\r\n { x: 0.000005397999999999721, y: 0.09863693779340087 },\r\n { x: 0.000005398999999999721, y: 0.15913000657876722 },\r\n { x: 0.0000053999999999997204, y: 0.13756414554198437 },\r\n { x: 0.00000540099999999972, y: 0.09190330787434925 },\r\n { x: 0.00000540199999999972, y: 0.13108100562070177 },\r\n { x: 0.000005402999999999719, y: 0.12918575693583803 },\r\n { x: 0.000005403999999999719, y: 0.12617537156062916 },\r\n { x: 0.000005404999999999719, y: 0.1017912581369502 },\r\n { x: 0.000005405999999999718, y: 0.11765448133746327 },\r\n { x: 0.000005406999999999718, y: 0.13722868988364098 },\r\n { x: 0.000005407999999999718, y: 0.11120701913238926 },\r\n { x: 0.000005408999999999717, y: 0.07343879851164165 },\r\n { x: 0.000005409999999999717, y: 0.1352632819032208 },\r\n { x: 0.000005410999999999717, y: 0.08615712346161436 },\r\n { x: 0.000005411999999999716, y: 0.09061657543357547 },\r\n { x: 0.000005412999999999716, y: 0.10981208571643157 },\r\n { x: 0.0000054139999999997156, y: 0.09662242236813093 },\r\n { x: 0.000005414999999999715, y: 0.1352690354363802 },\r\n { x: 0.000005415999999999715, y: 0.09475226864800422 },\r\n { x: 0.0000054169999999997145, y: 0.0843851667634265 },\r\n { x: 0.000005417999999999714, y: 0.08886526462162103 },\r\n { x: 0.000005418999999999714, y: 0.12593370731249556 },\r\n { x: 0.0000054199999999997135, y: 0.1154404917630164 },\r\n { x: 0.000005420999999999713, y: 0.10748714327052497 },\r\n { x: 0.000005421999999999713, y: 0.09826789061166473 },\r\n { x: 0.0000054229999999997124, y: 0.13243197812789337 },\r\n { x: 0.000005423999999999712, y: 0.11814990941010105 },\r\n { x: 0.000005424999999999712, y: 0.10081747739357788 },\r\n { x: 0.000005425999999999711, y: 0.0921304633078068 },\r\n { x: 0.000005426999999999711, y: 0.08429829978219537 },\r\n { x: 0.000005427999999999711, y: 0.10669593488345674 },\r\n { x: 0.00000542899999999971, y: 0.08126539295340826 },\r\n { x: 0.00000542999999999971, y: 0.1280866818509846 },\r\n { x: 0.00000543099999999971, y: 0.1445546759394884 },\r\n { x: 0.000005431999999999709, y: 0.1414285792084123 },\r\n { x: 0.000005432999999999709, y: 0.1487817595959146 },\r\n { x: 0.000005433999999999709, y: 0.14825583684509738 },\r\n { x: 0.000005434999999999708, y: 0.10253319449921218 },\r\n { x: 0.000005435999999999708, y: 0.07517634377990132 },\r\n { x: 0.0000054369999999997076, y: 0.09343018198121196 },\r\n { x: 0.000005437999999999707, y: 0.14149505474590812 },\r\n { x: 0.000005438999999999707, y: 0.084913455084379 },\r\n { x: 0.0000054399999999997065, y: 0.11655337887956041 },\r\n { x: 0.000005440999999999706, y: 0.1315359102066865 },\r\n { x: 0.000005441999999999706, y: 0.14767347369859823 },\r\n { x: 0.0000054429999999997055, y: 0.082852902969632 },\r\n { x: 0.000005443999999999705, y: 0.07763034091883919 },\r\n { x: 0.000005444999999999705, y: 0.07519047017381357 },\r\n { x: 0.000005445999999999704, y: 0.10172715344108735 },\r\n { x: 0.000005446999999999704, y: 0.11898238264206978 },\r\n { x: 0.000005447999999999704, y: 0.08104618852456878 },\r\n { x: 0.000005448999999999703, y: 0.1302423237744941 },\r\n { x: 0.000005449999999999703, y: 0.11469014377760103 },\r\n { x: 0.000005450999999999703, y: 0.07004288372217889 },\r\n { x: 0.000005451999999999702, y: 0.14064642775777175 },\r\n { x: 0.000005452999999999702, y: 0.07485629518793326 },\r\n { x: 0.000005453999999999702, y: 0.1219847506916892 },\r\n { x: 0.000005454999999999701, y: 0.07807155096097693 },\r\n { x: 0.000005455999999999701, y: 0.10913150200743243 },\r\n { x: 0.000005456999999999701, y: 0.10673544715659088 },\r\n { x: 0.0000054579999999997, y: 0.11319379158248652 },\r\n { x: 0.0000054589999999997, y: 0.1293661055296817 },\r\n { x: 0.0000054599999999996995, y: 0.07564375880617352 },\r\n { x: 0.000005460999999999699, y: 0.09027321639051988 },\r\n { x: 0.000005461999999999699, y: 0.10387155545145581 },\r\n { x: 0.0000054629999999996985, y: 0.07954102078560374 },\r\n { x: 0.000005463999999999698, y: 0.10972751703876166 },\r\n { x: 0.000005464999999999698, y: 0.09219984861759932 },\r\n { x: 0.0000054659999999996975, y: 0.09854804023783836 },\r\n { x: 0.000005466999999999697, y: 0.07124658585873461 },\r\n { x: 0.000005467999999999697, y: 0.06830371685456571 },\r\n { x: 0.000005468999999999696, y: 0.1369133168084155 },\r\n { x: 0.000005469999999999696, y: 0.07761826942570417 },\r\n { x: 0.000005470999999999696, y: 0.08034152478420419 },\r\n { x: 0.000005471999999999695, y: 0.08437573336744544 },\r\n { x: 0.000005472999999999695, y: 0.13135651077630772 },\r\n { x: 0.000005473999999999695, y: 0.09001838550561463 },\r\n { x: 0.000005474999999999694, y: 0.10677766081461751 },\r\n { x: 0.000005475999999999694, y: 0.07380807740035203 },\r\n { x: 0.000005476999999999694, y: 0.12372563835179937 },\r\n { x: 0.000005477999999999693, y: 0.08434731752520779 },\r\n { x: 0.000005478999999999693, y: 0.12587588840925418 },\r\n { x: 0.0000054799999999996926, y: 0.1074683973704793 },\r\n { x: 0.000005480999999999692, y: 0.06801528056201026 },\r\n { x: 0.000005481999999999692, y: 0.12672715650257943 },\r\n { x: 0.0000054829999999996915, y: 0.07310377947558591 },\r\n { x: 0.000005483999999999691, y: 0.05704263791615683 },\r\n { x: 0.000005484999999999691, y: 0.0631163031906266 },\r\n { x: 0.0000054859999999996905, y: 0.127068427125634 },\r\n { x: 0.00000548699999999969, y: 0.10203274516125756 },\r\n { x: 0.00000548799999999969, y: 0.059309624612488274 },\r\n { x: 0.0000054889999999996894, y: 0.07275322833986349 },\r\n { x: 0.000005489999999999689, y: 0.09503300020681342 },\r\n { x: 0.000005490999999999689, y: 0.11343001378955841 },\r\n { x: 0.000005491999999999688, y: 0.11225275799688385 },\r\n { x: 0.000005492999999999688, y: 0.063676451171572 },\r\n { x: 0.000005493999999999688, y: 0.07493999968701812 },\r\n { x: 0.000005494999999999687, y: 0.09918996901301305 },\r\n { x: 0.000005495999999999687, y: 0.07633026050388436 },\r\n { x: 0.000005496999999999687, y: 0.053333163642476096 },\r\n { x: 0.000005497999999999686, y: 0.053280321546190695 },\r\n { x: 0.000005498999999999686, y: 0.11285341423057613 },\r\n { x: 0.000005499999999999686, y: 0.06323041714921372 },\r\n { x: 0.000005500999999999685, y: 0.07440423236491583 },\r\n { x: 0.000005501999999999685, y: 0.0892919651506561 },\r\n { x: 0.0000055029999999996846, y: 0.05483343163015917 },\r\n { x: 0.000005503999999999684, y: 0.08410782446957867 },\r\n { x: 0.000005504999999999684, y: 0.10943517568053497 },\r\n { x: 0.0000055059999999996835, y: 0.11790158832996515 },\r\n { x: 0.000005506999999999683, y: 0.06307143069472027 },\r\n { x: 0.000005507999999999683, y: 0.06139198928380584 },\r\n { x: 0.0000055089999999996825, y: 0.07880998566688281 },\r\n { x: 0.000005509999999999682, y: 0.05058159528042694 },\r\n { x: 0.000005510999999999682, y: 0.07233097756068851 },\r\n { x: 0.0000055119999999996814, y: 0.0576457147826922 },\r\n { x: 0.000005512999999999681, y: 0.0947256572997292 },\r\n { x: 0.000005513999999999681, y: 0.10280467663785933 },\r\n { x: 0.00000551499999999968, y: 0.050185705511921495 },\r\n { x: 0.00000551599999999968, y: 0.041195568346063326 },\r\n { x: 0.00000551699999999968, y: 0.06719837973465684 },\r\n { x: 0.000005517999999999679, y: 0.058078278795918176 },\r\n { x: 0.000005518999999999679, y: 0.08752553898924971 },\r\n { x: 0.000005519999999999679, y: 0.03908095948881185 },\r\n { x: 0.000005520999999999678, y: 0.0943499604199508 },\r\n { x: 0.000005521999999999678, y: 0.1052602305788135 },\r\n { x: 0.000005522999999999678, y: 0.054572883805252555 },\r\n { x: 0.000005523999999999677, y: 0.0779295336836059 },\r\n { x: 0.000005524999999999677, y: 0.06976635062655791 },\r\n { x: 0.0000055259999999996765, y: 0.091519918453971 },\r\n { x: 0.000005526999999999676, y: 0.10498531267663636 },\r\n { x: 0.000005527999999999676, y: 0.06956006391119827 },\r\n { x: 0.0000055289999999996755, y: 0.06352765494242416 },\r\n { x: 0.000005529999999999675, y: 0.10674885393399733 },\r\n { x: 0.000005530999999999675, y: 0.03845315376013245 },\r\n { x: 0.0000055319999999996745, y: 0.09395258252490958 },\r\n { x: 0.000005532999999999674, y: 0.09165693931205204 },\r\n { x: 0.000005533999999999674, y: 0.10013351043621249 },\r\n { x: 0.000005534999999999673, y: 0.06275850535907337 },\r\n { x: 0.000005535999999999673, y: 0.030101662964757935 },\r\n { x: 0.000005536999999999673, y: 0.05505505969313184 },\r\n { x: 0.000005537999999999672, y: 0.08493268286995068 },\r\n { x: 0.000005538999999999672, y: 0.05678889916332152 },\r\n { x: 0.000005539999999999672, y: 0.08877059483344836 },\r\n { x: 0.000005540999999999671, y: 0.0289880266496682 },\r\n { x: 0.000005541999999999671, y: 0.08043649181792725 },\r\n { x: 0.000005542999999999671, y: 0.09120298042416897 },\r\n { x: 0.00000554399999999967, y: 0.0345720008563637 },\r\n { x: 0.00000554499999999967, y: 0.03572994787368253 },\r\n { x: 0.00000554599999999967, y: 0.06472833872296682 },\r\n { x: 0.000005546999999999669, y: 0.03295586157200745 },\r\n { x: 0.000005547999999999669, y: 0.05475796916322858 },\r\n { x: 0.0000055489999999996685, y: 0.04188314826564839 },\r\n { x: 0.000005549999999999668, y: 0.05967081995622031 },\r\n { x: 0.000005550999999999668, y: 0.06831314388768701 },\r\n { x: 0.0000055519999999996675, y: 0.08983411770178787 },\r\n { x: 0.000005552999999999667, y: 0.03991504517733825 },\r\n { x: 0.000005553999999999667, y: 0.05925226625153502 },\r\n { x: 0.0000055549999999996664, y: 0.04213797468861381 },\r\n { x: 0.000005555999999999666, y: 0.06133667932342348 },\r\n { x: 0.000005556999999999666, y: 0.041887564770085095 },\r\n { x: 0.000005557999999999665, y: 0.08612857045103753 },\r\n { x: 0.000005558999999999665, y: 0.020248153390826376 },\r\n { x: 0.000005559999999999665, y: 0.03164169606716981 },\r\n { x: 0.000005560999999999664, y: 0.07439892408241605 },\r\n { x: 0.000005561999999999664, y: 0.08603765226763874 },\r\n { x: 0.000005562999999999664, y: 0.07827677519440465 },\r\n { x: 0.000005563999999999663, y: 0.06513240570996488 },\r\n { x: 0.000005564999999999663, y: 0.02448013085913827 },\r\n { x: 0.000005565999999999663, y: 0.03917620292257246 },\r\n { x: 0.000005566999999999662, y: 0.07844418400318481 },\r\n { x: 0.000005567999999999662, y: 0.012394745338080125 },\r\n { x: 0.0000055689999999996616, y: 0.030328527869683458 },\r\n { x: 0.000005569999999999661, y: 0.01588090917558188 },\r\n { x: 0.000005570999999999661, y: 0.0829305323787197 },\r\n { x: 0.0000055719999999996605, y: 0.03550676767462757 },\r\n { x: 0.00000557299999999966, y: 0.011737543384944753 },\r\n { x: 0.00000557399999999966, y: 0.04126140288967981 },\r\n { x: 0.0000055749999999996595, y: 0.05280712986026968 },\r\n { x: 0.000005575999999999659, y: 0.057018071381428476 },\r\n { x: 0.000005576999999999659, y: 0.05878194387415269 },\r\n { x: 0.0000055779999999996584, y: 0.06328945832781877 },\r\n { x: 0.000005578999999999658, y: 0.041681993739289165 },\r\n { x: 0.000005579999999999658, y: 0.04030560270657089 },\r\n { x: 0.000005580999999999657, y: 0.01663745748174005 },\r\n { x: 0.000005581999999999657, y: 0.008377372389003122 },\r\n { x: 0.000005582999999999657, y: 0.0581032421914115 },\r\n { x: 0.000005583999999999656, y: 0.047908410907343754 },\r\n { x: 0.000005584999999999656, y: 0.02878497276898038 },\r\n { x: 0.000005585999999999656, y: 0.008901174013913 },\r\n { x: 0.000005586999999999655, y: 0.06885914251102164 },\r\n { x: 0.000005587999999999655, y: 0.06429992249267769 },\r\n { x: 0.000005588999999999655, y: 0.000893097550625617 },\r\n { x: 0.000005589999999999654, y: 0.009171913191069532 },\r\n { x: 0.000005590999999999654, y: 0.042538012600782424 },\r\n { x: 0.0000055919999999996536, y: 0.019876336355162325 },\r\n { x: 0.000005592999999999653, y: 0.04644930626397727 },\r\n { x: 0.000005593999999999653, y: 0.024814587353290632 },\r\n { x: 0.0000055949999999996525, y: 0.023356932936255487 },\r\n { x: 0.000005595999999999652, y: 0.05667405242314277 },\r\n { x: 0.000005596999999999652, y: 0.05702008654319588 },\r\n { x: 0.0000055979999999996515, y: 0.02533705042232546 },\r\n { x: 0.000005598999999999651, y: 0.04476316702132985 },\r\n { x: 0.000005599999999999651, y: 0.05183551189811624 },\r\n { x: 0.00000560099999999965, y: 0.06481245288568309 },\r\n { x: 0.00000560199999999965, y: 0.06648602755689068 },\r\n { x: 0.00000560299999999965, y: 0.048773842554481 },\r\n { x: 0.000005603999999999649, y: 0.059011635578218376 },\r\n { x: 0.000005604999999999649, y: 0.00771297474421357 },\r\n { x: 0.000005605999999999649, y: -0.003163921360415746 },\r\n { x: 0.000005606999999999648, y: 0.04008631246664182 },\r\n { x: 0.000005607999999999648, y: -0.0069742596640481914 },\r\n { x: 0.000005608999999999648, y: 0.02025163971765502 },\r\n { x: 0.000005609999999999647, y: 0.024651007856440827 },\r\n { x: 0.000005610999999999647, y: 0.044386545510387884 },\r\n { x: 0.000005611999999999647, y: -0.013722603566318114 },\r\n { x: 0.000005612999999999646, y: 0.06068856556859613 },\r\n { x: 0.000005613999999999646, y: 0.040169789593820476 },\r\n { x: 0.0000056149999999996455, y: -0.01476290078877963 },\r\n { x: 0.000005615999999999645, y: 0.01105940223566256 },\r\n { x: 0.000005616999999999645, y: 0.029469720356187813 },\r\n { x: 0.0000056179999999996445, y: 0.005596016899092072 },\r\n { x: 0.000005618999999999644, y: 0.02150559823373598 },\r\n { x: 0.000005619999999999644, y: 0.04407202625207027 },\r\n { x: 0.0000056209999999996435, y: 0.03789016483067496 },\r\n { x: 0.000005621999999999643, y: 0.0019221746808426171 },\r\n { x: 0.000005622999999999643, y: 0.011138714956326418 },\r\n { x: 0.000005623999999999642, y: 0.020848669295159238 },\r\n { x: 0.000005624999999999642, y: 0.018516585930231415 },\r\n { x: 0.000005625999999999642, y: 0.03051620132813243 },\r\n { x: 0.000005626999999999641, y: -0.011585509259803254 },\r\n { x: 0.000005627999999999641, y: -0.022120878626000838 },\r\n { x: 0.000005628999999999641, y: -0.0007450149818789137 },\r\n { x: 0.00000562999999999964, y: 0.0380411152728801 },\r\n { x: 0.00000563099999999964, y: 0.01197382497145123 },\r\n { x: 0.00000563199999999964, y: 0.046828271907010034 },\r\n { x: 0.000005632999999999639, y: 0.02218981213052127 },\r\n { x: 0.000005633999999999639, y: 0.017025442690287405 },\r\n { x: 0.0000056349999999996386, y: -0.026792973179775893 },\r\n { x: 0.000005635999999999638, y: 0.006229005552760826 },\r\n { x: 0.000005636999999999638, y: -0.014025598925351625 },\r\n { x: 0.0000056379999999996375, y: 0.020133427649640084 },\r\n { x: 0.000005638999999999637, y: -0.009813053436434353 },\r\n { x: 0.000005639999999999637, y: 0.024055890013388023 },\r\n { x: 0.0000056409999999996365, y: 0.0015704902997545154 },\r\n { x: 0.000005641999999999636, y: -0.026148011260336345 },\r\n { x: 0.000005642999999999636, y: -0.024030178639016027 },\r\n { x: 0.0000056439999999996354, y: -0.026844628520719758 },\r\n { x: 0.000005644999999999635, y: 0.034111634667024014 },\r\n { x: 0.000005645999999999635, y: 0.026165124007766553 },\r\n { x: 0.000005646999999999634, y: 0.0006789787539526492 },\r\n { x: 0.000005647999999999634, y: -0.011217812063661143 },\r\n { x: 0.000005648999999999634, y: 0.0382674995511739 },\r\n { x: 0.000005649999999999633, y: -0.004292650252120828 },\r\n { x: 0.000005650999999999633, y: 0.03210363708760751 },\r\n { x: 0.000005651999999999633, y: 0.023190536225305574 },\r\n { x: 0.000005652999999999632, y: 0.020700088003767252 },\r\n { x: 0.000005653999999999632, y: 0.01012234136100479 },\r\n { x: 0.000005654999999999632, y: 0.0318527058706626 },\r\n { x: 0.000005655999999999631, y: 0.001701215982684314 },\r\n { x: 0.000005656999999999631, y: -0.006505403742632854 },\r\n { x: 0.0000056579999999996306, y: 0.028627052201854054 },\r\n { x: 0.00000565899999999963, y: 0.0333194242382491 },\r\n { x: 0.00000565999999999963, y: 0.019532633586378263 },\r\n { x: 0.0000056609999999996295, y: -0.014224921413054835 },\r\n { x: 0.000005661999999999629, y: 0.0028077796856473937 },\r\n { x: 0.000005662999999999629, y: 0.003776555928742575 },\r\n { x: 0.0000056639999999996285, y: -0.012064414528100555 },\r\n { x: 0.000005664999999999628, y: -0.022332196186054018 },\r\n { x: 0.000005665999999999628, y: 0.022280199895584857 },\r\n { x: 0.0000056669999999996274, y: -0.031229727201994593 },\r\n { x: 0.000005667999999999627, y: -0.001943633632733542 },\r\n { x: 0.000005668999999999627, y: -0.008853747046028863 },\r\n { x: 0.000005669999999999626, y: 0.007163590651577227 },\r\n { x: 0.000005670999999999626, y: -0.023900501590345243 },\r\n { x: 0.000005671999999999626, y: 0.027872112577264727 },\r\n { x: 0.000005672999999999625, y: 0.016270034846638557 },\r\n { x: 0.000005673999999999625, y: -0.03402160781208134 },\r\n { x: 0.000005674999999999625, y: -0.045153928033824814 },\r\n { x: 0.000005675999999999624, y: 0.005610116785369946 },\r\n { x: 0.000005676999999999624, y: -0.035385155411857126 },\r\n { x: 0.000005677999999999624, y: 0.0009839181855679432 },\r\n { x: 0.000005678999999999623, y: -0.04804510424331552 },\r\n { x: 0.000005679999999999623, y: -0.030375441649107444 },\r\n { x: 0.0000056809999999996225, y: -0.02013841317395565 },\r\n { x: 0.000005681999999999622, y: -0.006114350162281739 },\r\n { x: 0.000005682999999999622, y: 0.014729657642163801 },\r\n { x: 0.0000056839999999996215, y: -0.02097342675851997 },\r\n { x: 0.000005684999999999621, y: 0.006885734269905498 },\r\n { x: 0.000005685999999999621, y: -0.03729989834911218 },\r\n { x: 0.0000056869999999996205, y: -0.04183174185026434 },\r\n { x: 0.00000568799999999962, y: -0.0013554810021687985 },\r\n { x: 0.00000568899999999962, y: 0.01630753353225366 },\r\n { x: 0.000005689999999999619, y: 0.015104116756579227 },\r\n { x: 0.000005690999999999619, y: 0.012927539898602194 },\r\n { x: 0.000005691999999999619, y: -0.03977001044925549 },\r\n { x: 0.000005692999999999618, y: 0.017211162168701364 },\r\n { x: 0.000005693999999999618, y: 0.014307725013690865 },\r\n { x: 0.000005694999999999618, y: -0.018000673069227983 },\r\n { x: 0.000005695999999999617, y: -0.058923782321724086 },\r\n { x: 0.000005696999999999617, y: -0.05799732387748946 },\r\n { x: 0.000005697999999999617, y: -0.03218036782615146 },\r\n { x: 0.000005698999999999616, y: -0.033576925726694365 },\r\n { x: 0.000005699999999999616, y: -0.02337175629493938 },\r\n { x: 0.000005700999999999616, y: -0.028183839285457153 },\r\n { x: 0.000005701999999999615, y: -0.004655059738724345 },\r\n { x: 0.000005702999999999615, y: -0.0035354414088171193 },\r\n { x: 0.0000057039999999996145, y: -0.03877360283304894 },\r\n { x: 0.000005704999999999614, y: -0.017163295343060547 },\r\n { x: 0.000005705999999999614, y: -0.058584890888645 },\r\n { x: 0.0000057069999999996135, y: -0.05667109666255698 },\r\n { x: 0.000005707999999999613, y: -0.03025993073962001 },\r\n { x: 0.000005708999999999613, y: -0.0024633710923877283 },\r\n { x: 0.0000057099999999996124, y: 0.00857043003805133 },\r\n { x: 0.000005710999999999612, y: -0.035917369727011775 },\r\n { x: 0.000005711999999999612, y: -0.039152484702586574 },\r\n { x: 0.000005712999999999611, y: -0.04057079186556319 },\r\n { x: 0.000005713999999999611, y: -0.0330401549658487 },\r\n { x: 0.000005714999999999611, y: -0.023025479967120448 },\r\n { x: 0.00000571599999999961, y: 0.005593885495607357 },\r\n { x: 0.00000571699999999961, y: -0.027941103751881705 },\r\n { x: 0.00000571799999999961, y: 0.001835736269430531 },\r\n { x: 0.000005718999999999609, y: -0.019586099052532863 },\r\n { x: 0.000005719999999999609, y: 0.004212557041339639 },\r\n { x: 0.000005720999999999609, y: -0.030891088198648112 },\r\n { x: 0.000005721999999999608, y: -0.06606298048996752 },\r\n { x: 0.000005722999999999608, y: -0.03688061256835673 },\r\n { x: 0.0000057239999999996076, y: -0.02469465223837293 },\r\n { x: 0.000005724999999999607, y: -0.06398921118719145 },\r\n { x: 0.000005725999999999607, y: -0.07192800213483119 },\r\n { x: 0.0000057269999999996065, y: -0.0273409370204854 },\r\n { x: 0.000005727999999999606, y: -0.034001471770512236 },\r\n { x: 0.000005728999999999606, y: 0.0007413998196445018 },\r\n { x: 0.0000057299999999996055, y: -0.03232229316025801 },\r\n { x: 0.000005730999999999605, y: -0.025352736378456274 },\r\n { x: 0.000005731999999999605, y: -0.010810158447983696 },\r\n { x: 0.0000057329999999996044, y: -0.0742865472599629 },\r\n { x: 0.000005733999999999604, y: -0.0598174152222143 },\r\n { x: 0.000005734999999999604, y: -0.05034602665720305 },\r\n { x: 0.000005735999999999603, y: -0.019900323098025554 },\r\n { x: 0.000005736999999999603, y: -0.0351786840299238 },\r\n { x: 0.000005737999999999603, y: -0.008071725677343523 },\r\n { x: 0.000005738999999999602, y: -0.03750508446008024 },\r\n { x: 0.000005739999999999602, y: -0.0231612217333422 },\r\n { x: 0.000005740999999999602, y: -0.05857153813838402 },\r\n { x: 0.000005741999999999601, y: -0.07171444837134333 },\r\n { x: 0.000005742999999999601, y: -0.02692908700371896 },\r\n { x: 0.000005743999999999601, y: -0.0342765679111989 },\r\n { x: 0.0000057449999999996, y: -0.062147713486180325 },\r\n { x: 0.0000057459999999996, y: -0.019502456493431998 },\r\n { x: 0.0000057469999999995996, y: -0.015250449542157266 },\r\n { x: 0.000005747999999999599, y: -0.07235146147523647 },\r\n { x: 0.000005748999999999599, y: -0.030868051789735604 },\r\n { x: 0.0000057499999999995985, y: -0.06986747041760005 },\r\n { x: 0.000005750999999999598, y: -0.02296962298268029 },\r\n { x: 0.000005751999999999598, y: -0.036844746937660225 },\r\n { x: 0.0000057529999999995975, y: -0.041444924958916364 },\r\n { x: 0.000005753999999999597, y: -0.03635059601750078 },\r\n { x: 0.000005754999999999597, y: -0.017255796762393288 },\r\n { x: 0.000005755999999999596, y: -0.06838302329634105 },\r\n { x: 0.000005756999999999596, y: -0.048500918553307945 },\r\n { x: 0.000005757999999999596, y: -0.03221486912063589 },\r\n { x: 0.000005758999999999595, y: -0.056612019736647416 },\r\n { x: 0.000005759999999999595, y: -0.07851138654631737 },\r\n { x: 0.000005760999999999595, y: -0.086695244252949 },\r\n { x: 0.000005761999999999594, y: -0.05944565333016504 },\r\n { x: 0.000005762999999999594, y: -0.04626958090971851 },\r\n { x: 0.000005763999999999594, y: -0.07713820159389875 },\r\n { x: 0.000005764999999999593, y: -0.044222369540555986 },\r\n { x: 0.000005765999999999593, y: -0.02205590508494688 },\r\n { x: 0.000005766999999999593, y: -0.07423921875600382 },\r\n { x: 0.000005767999999999592, y: -0.028091550132308993 },\r\n { x: 0.000005768999999999592, y: -0.02955325839615145 },\r\n { x: 0.0000057699999999995915, y: -0.039716320908441884 },\r\n { x: 0.000005770999999999591, y: -0.08987433853928249 },\r\n { x: 0.000005771999999999591, y: -0.039593569056114594 },\r\n { x: 0.0000057729999999995905, y: -0.06544983082951397 },\r\n { x: 0.00000577399999999959, y: -0.054205737912335836 },\r\n { x: 0.00000577499999999959, y: -0.02951098325132251 },\r\n { x: 0.0000057759999999995895, y: -0.06733467117567192 },\r\n { x: 0.000005776999999999589, y: -0.028024380404148886 },\r\n { x: 0.000005777999999999589, y: -0.0712905588570015 },\r\n { x: 0.000005778999999999588, y: -0.021319793610111132 },\r\n { x: 0.000005779999999999588, y: -0.061936224790157035 },\r\n { x: 0.000005780999999999588, y: -0.03538994017350089 },\r\n { x: 0.000005781999999999587, y: -0.06010415874927883 },\r\n { x: 0.000005782999999999587, y: -0.07341780416746682 },\r\n { x: 0.000005783999999999587, y: -0.06952239980928439 },\r\n { x: 0.000005784999999999586, y: -0.09604945375391341 },\r\n { x: 0.000005785999999999586, y: -0.07383273485678472 },\r\n { x: 0.000005786999999999586, y: -0.07228634756174412 },\r\n { x: 0.000005787999999999585, y: -0.07188594847123486 },\r\n { x: 0.000005788999999999585, y: -0.09846154076742819 },\r\n { x: 0.0000057899999999995846, y: -0.07359710365589271 },\r\n { x: 0.000005790999999999584, y: -0.09585404306112505 },\r\n { x: 0.000005791999999999584, y: -0.042498856992923786 },\r\n { x: 0.0000057929999999995835, y: -0.08444487494729958 },\r\n { x: 0.000005793999999999583, y: -0.05122697019317219 },\r\n { x: 0.000005794999999999583, y: -0.08604394352224352 },\r\n { x: 0.0000057959999999995825, y: -0.030101249188827194 },\r\n { x: 0.000005796999999999582, y: -0.0667469620884695 },\r\n { x: 0.000005797999999999582, y: -0.043209639883141304 },\r\n { x: 0.0000057989999999995814, y: -0.09190380166489767 },\r\n { x: 0.000005799999999999581, y: -0.06737941949782927 },\r\n { x: 0.000005800999999999581, y: -0.04756534869627232 },\r\n { x: 0.00000580199999999958, y: -0.04501087846259548 },\r\n { x: 0.00000580299999999958, y: -0.06503399123981082 },\r\n { x: 0.00000580399999999958, y: -0.08934837554224814 },\r\n { x: 0.000005804999999999579, y: -0.03498435728830198 },\r\n { x: 0.000005805999999999579, y: -0.10021236069484064 },\r\n { x: 0.000005806999999999579, y: -0.03888367300232594 },\r\n { x: 0.000005807999999999578, y: -0.06990645854582117 },\r\n { x: 0.000005808999999999578, y: -0.09830621662067195 },\r\n { x: 0.000005809999999999578, y: -0.0761677701208191 },\r\n { x: 0.000005810999999999577, y: -0.09925095261976043 },\r\n { x: 0.000005811999999999577, y: -0.061494744469045876 },\r\n { x: 0.0000058129999999995766, y: -0.08744081456429113 },\r\n { x: 0.000005813999999999576, y: -0.06034985228538464 },\r\n { x: 0.000005814999999999576, y: -0.09890070155560016 },\r\n { x: 0.0000058159999999995755, y: -0.06944561456294805 },\r\n { x: 0.000005816999999999575, y: -0.058741832342005924 },\r\n { x: 0.000005817999999999575, y: -0.09623316595760983 },\r\n { x: 0.0000058189999999995745, y: -0.048109504614466614 },\r\n { x: 0.000005819999999999574, y: -0.044744918324178456 },\r\n { x: 0.000005820999999999574, y: -0.08139055414309444 },\r\n { x: 0.0000058219999999995734, y: -0.03909365340306212 },\r\n { x: 0.000005822999999999573, y: -0.10759857263925998 },\r\n { x: 0.000005823999999999573, y: -0.06127175766808743 },\r\n { x: 0.000005824999999999572, y: -0.070658348968339 },\r\n { x: 0.000005825999999999572, y: -0.09527570808349686 },\r\n { x: 0.000005826999999999572, y: -0.10458701157604444 },\r\n { x: 0.000005827999999999571, y: -0.0685408731791968 },\r\n { x: 0.000005828999999999571, y: -0.05345705577140911 },\r\n { x: 0.000005829999999999571, y: -0.10503183660279276 },\r\n { x: 0.00000583099999999957, y: -0.03821669277482671 },\r\n { x: 0.00000583199999999957, y: -0.09503935934061356 },\r\n { x: 0.00000583299999999957, y: -0.041760977192790316 },\r\n { x: 0.000005833999999999569, y: -0.09242569294401952 },\r\n { x: 0.000005834999999999569, y: -0.08454161908547561 },\r\n { x: 0.0000058359999999995685, y: -0.05612573639631745 },\r\n { x: 0.000005836999999999568, y: -0.08202227086407211 },\r\n { x: 0.000005837999999999568, y: -0.07758990562205759 },\r\n { x: 0.0000058389999999995675, y: -0.08075085651540101 },\r\n { x: 0.000005839999999999567, y: -0.06291265191062109 },\r\n { x: 0.000005840999999999567, y: -0.07909716490356195 },\r\n { x: 0.0000058419999999995665, y: -0.0959729041635939 },\r\n { x: 0.000005842999999999566, y: -0.10767115679036697 },\r\n { x: 0.000005843999999999566, y: -0.05792539181377214 },\r\n { x: 0.000005844999999999565, y: -0.11389971079713293 },\r\n { x: 0.000005845999999999565, y: -0.07854169439070142 },\r\n { x: 0.000005846999999999565, y: -0.07827634415689541 },\r\n { x: 0.000005847999999999564, y: -0.10155207383910182 },\r\n { x: 0.000005848999999999564, y: -0.08406951523294798 },\r\n { x: 0.000005849999999999564, y: -0.0699506482479303 },\r\n { x: 0.000005850999999999563, y: -0.06777870234520147 },\r\n { x: 0.000005851999999999563, y: -0.05073802522998252 },\r\n { x: 0.000005852999999999563, y: -0.07179442228549544 },\r\n { x: 0.000005853999999999562, y: -0.04295257733926645 },\r\n { x: 0.000005854999999999562, y: -0.10685934190128094 },\r\n { x: 0.000005855999999999562, y: -0.08571282539546297 },\r\n { x: 0.000005856999999999561, y: -0.07756092374002004 },\r\n { x: 0.000005857999999999561, y: -0.11143553063146022 },\r\n { x: 0.0000058589999999995605, y: -0.06269409753144073 },\r\n { x: 0.00000585999999999956, y: -0.06191712621073414 },\r\n { x: 0.00000586099999999956, y: -0.05296164863575473 },\r\n { x: 0.0000058619999999995595, y: -0.05806258741800971 },\r\n { x: 0.000005862999999999559, y: -0.0839779026597179 },\r\n { x: 0.000005863999999999559, y: -0.02956607513367944 },\r\n { x: 0.0000058649999999995584, y: -0.04733140876106485 },\r\n { x: 0.000005865999999999558, y: -0.05972090461448733 },\r\n { x: 0.000005866999999999558, y: -0.07941774251246225 },\r\n { x: 0.000005867999999999557, y: -0.10381420716458857 },\r\n { x: 0.000005868999999999557, y: -0.07686181733701303 },\r\n { x: 0.000005869999999999557, y: -0.0659154356248962 },\r\n { x: 0.000005870999999999556, y: -0.09342745403201996 },\r\n { x: 0.000005871999999999556, y: -0.05531922712482367 },\r\n { x: 0.000005872999999999556, y: -0.0858453340625318 },\r\n { x: 0.000005873999999999555, y: -0.08900667413725324 },\r\n { x: 0.000005874999999999555, y: -0.07964332248228838 },\r\n { x: 0.000005875999999999555, y: -0.06105336903909923 },\r\n { x: 0.000005876999999999554, y: -0.04684664695442535 },\r\n { x: 0.000005877999999999554, y: -0.06010652615476571 },\r\n { x: 0.0000058789999999995536, y: -0.11862538884058255 },\r\n { x: 0.000005879999999999553, y: -0.08786857629776401 },\r\n { x: 0.000005880999999999553, y: -0.06408928610705761 },\r\n { x: 0.0000058819999999995525, y: -0.08211332744981444 },\r\n { x: 0.000005882999999999552, y: -0.04710852824275628 },\r\n { x: 0.000005883999999999552, y: -0.11530689356530775 },\r\n { x: 0.0000058849999999995515, y: -0.10714248396784734 },\r\n { x: 0.000005885999999999551, y: -0.04903233093201889 },\r\n { x: 0.000005886999999999551, y: -0.06841522209935037 },\r\n { x: 0.0000058879999999995504, y: -0.0975377838889517 },\r\n { x: 0.00000588899999999955, y: -0.10893720536044163 },\r\n { x: 0.00000588999999999955, y: -0.07614668100418942 },\r\n { x: 0.000005890999999999549, y: -0.11792052763863067 },\r\n { x: 0.000005891999999999549, y: -0.08102620450522152 },\r\n { x: 0.000005892999999999549, y: -0.04999309195292643 },\r\n { x: 0.000005893999999999548, y: -0.05615823752048191 },\r\n { x: 0.000005894999999999548, y: -0.11101672133657967 },\r\n { x: 0.000005895999999999548, y: -0.06470582537956217 },\r\n { x: 0.000005896999999999547, y: -0.07980153328623672 },\r\n { x: 0.000005897999999999547, y: -0.06913510953817037 },\r\n { x: 0.000005898999999999547, y: -0.09508242504738557 },\r\n { x: 0.000005899999999999546, y: -0.07972709427153665 },\r\n { x: 0.000005900999999999546, y: -0.11734885941297832 },\r\n { x: 0.0000059019999999995456, y: -0.10392499208624882 },\r\n { x: 0.000005902999999999545, y: -0.06483729796600934 },\r\n { x: 0.000005903999999999545, y: -0.09431108480123426 },\r\n { x: 0.0000059049999999995445, y: -0.06989015945749583 },\r\n { x: 0.000005905999999999544, y: -0.054335738909329676 },\r\n { x: 0.000005906999999999544, y: -0.10026847250536272 },\r\n { x: 0.0000059079999999995435, y: -0.055882354554928806 },\r\n { x: 0.000005908999999999543, y: -0.0519818775919906 },\r\n { x: 0.000005909999999999543, y: -0.11121080162286982 },\r\n { x: 0.000005910999999999542, y: -0.11681847169794696 },\r\n { x: 0.000005911999999999542, y: -0.09268630378783238 },\r\n { x: 0.000005912999999999542, y: -0.09452583849045111 },\r\n { x: 0.000005913999999999541, y: -0.06130397024547162 },\r\n { x: 0.000005914999999999541, y: -0.08070615553185966 },\r\n { x: 0.000005915999999999541, y: -0.12395475405748313 },\r\n { x: 0.00000591699999999954, y: -0.10562715510100557 },\r\n { x: 0.00000591799999999954, y: -0.09464580929797783 },\r\n { x: 0.00000591899999999954, y: -0.06835399556451352 },\r\n { x: 0.000005919999999999539, y: -0.0904248918028055 },\r\n { x: 0.000005920999999999539, y: -0.0851291615682976 },\r\n { x: 0.000005921999999999539, y: -0.0962904531864375 },\r\n { x: 0.000005922999999999538, y: -0.06634897713627076 },\r\n { x: 0.000005923999999999538, y: -0.10524807821450383 },\r\n { x: 0.0000059249999999995375, y: -0.09720623615497455 },\r\n { x: 0.000005925999999999537, y: -0.12306326324707181 },\r\n { x: 0.000005926999999999537, y: -0.09414363035324143 },\r\n { x: 0.0000059279999999995365, y: -0.10539974097706634 },\r\n { x: 0.000005928999999999536, y: -0.09402820172700005 },\r\n { x: 0.000005929999999999536, y: -0.11363129966983088 },\r\n { x: 0.0000059309999999995355, y: -0.10748435559122782 },\r\n { x: 0.000005931999999999535, y: -0.12289354951166914 },\r\n { x: 0.000005932999999999535, y: -0.07524487266614625 },\r\n { x: 0.000005933999999999534, y: -0.10768494654670385 },\r\n { x: 0.000005934999999999534, y: -0.058131404847012326 },\r\n { x: 0.000005935999999999534, y: -0.0973274653732348 },\r\n { x: 0.000005936999999999533, y: -0.07131325974688427 },\r\n { x: 0.000005937999999999533, y: -0.12189395817163214 },\r\n { x: 0.000005938999999999533, y: -0.09204776659183939 },\r\n { x: 0.000005939999999999532, y: -0.10527294678696195 },\r\n { x: 0.000005940999999999532, y: -0.07086144962321585 },\r\n { x: 0.000005941999999999532, y: -0.10272133143303944 },\r\n { x: 0.000005942999999999531, y: -0.0797344633143732 },\r\n { x: 0.000005943999999999531, y: -0.11816574875331506 },\r\n { x: 0.0000059449999999995306, y: -0.07887916021605505 },\r\n { x: 0.00000594599999999953, y: -0.08704605197874019 },\r\n { x: 0.00000594699999999953, y: -0.0659776751487626 },\r\n { x: 0.0000059479999999995295, y: -0.06800937055616915 },\r\n { x: 0.000005948999999999529, y: -0.08476432781742672 },\r\n { x: 0.000005949999999999529, y: -0.07276212001018986 },\r\n { x: 0.0000059509999999995285, y: -0.11097583527217 },\r\n { x: 0.000005951999999999528, y: -0.09114990050346133 },\r\n { x: 0.000005952999999999528, y: -0.05321163115913629 },\r\n { x: 0.0000059539999999995274, y: -0.10014269309055097 },\r\n { x: 0.000005954999999999527, y: -0.09332466712184218 },\r\n { x: 0.000005955999999999527, y: -0.10958659355926563 },\r\n { x: 0.000005956999999999526, y: -0.10598461377439711 },\r\n { x: 0.000005957999999999526, y: -0.11832787511236788 },\r\n { x: 0.000005958999999999526, y: -0.08767203957483559 },\r\n { x: 0.000005959999999999525, y: -0.10911507089919262 },\r\n { x: 0.000005960999999999525, y: -0.06723931057661828 },\r\n { x: 0.000005961999999999525, y: -0.11132910373998792 },\r\n { x: 0.000005962999999999524, y: -0.08918336998757419 },\r\n { x: 0.000005963999999999524, y: -0.0940508203755534 },\r\n { x: 0.000005964999999999524, y: -0.1158160570813608 },\r\n { x: 0.000005965999999999523, y: -0.05695631244678885 },\r\n { x: 0.000005966999999999523, y: -0.08747552257005412 },\r\n { x: 0.0000059679999999995226, y: -0.049069820854011625 },\r\n { x: 0.000005968999999999522, y: -0.08611300731885935 },\r\n { x: 0.000005969999999999522, y: -0.07745093107225963 },\r\n { x: 0.0000059709999999995215, y: -0.0703077715906806 },\r\n { x: 0.000005971999999999521, y: -0.05065555734157756 },\r\n { x: 0.000005972999999999521, y: -0.06715521799087985 },\r\n { x: 0.0000059739999999995205, y: -0.08516127281578605 },\r\n { x: 0.00000597499999999952, y: -0.11216249473970795 },\r\n { x: 0.00000597599999999952, y: -0.06832514700258674 },\r\n { x: 0.0000059769999999995194, y: -0.08999450097333302 },\r\n { x: 0.000005977999999999519, y: -0.1014833067655432 },\r\n { x: 0.000005978999999999519, y: -0.1209399536318487 },\r\n { x: 0.000005979999999999518, y: -0.08368603118831162 },\r\n { x: 0.000005980999999999518, y: -0.1175953409073949 },\r\n { x: 0.000005981999999999518, y: -0.10910917224710695 },\r\n { x: 0.000005982999999999517, y: -0.08285773812355521 },\r\n { x: 0.000005983999999999517, y: -0.09761625529116995 },\r\n { x: 0.000005984999999999517, y: -0.06371983111729634 },\r\n { x: 0.000005985999999999516, y: -0.09894572278772236 },\r\n { x: 0.000005986999999999516, y: -0.061733402000615736 },\r\n { x: 0.000005987999999999516, y: -0.06557296426887031 },\r\n { x: 0.000005988999999999515, y: -0.07962959709813179 },\r\n { x: 0.000005989999999999515, y: -0.10108177554816068 },\r\n { x: 0.0000059909999999995145, y: -0.04700005491072034 },\r\n { x: 0.000005991999999999514, y: -0.08067027534263219 },\r\n { x: 0.000005992999999999514, y: -0.07513091808886702 },\r\n { x: 0.0000059939999999995135, y: -0.09841254198947565 },\r\n { x: 0.000005994999999999513, y: -0.056626240380511075 },\r\n { x: 0.000005995999999999513, y: -0.08745953607336093 },\r\n { x: 0.0000059969999999995125, y: -0.07538686897303558 },\r\n { x: 0.000005997999999999512, y: -0.08670448141718652 },\r\n { x: 0.000005998999999999512, y: -0.1073141424308152 },\r\n { x: 0.000005999999999999511, y: -0.10771847711884708 },\r\n { x: 0.000006000999999999511, y: -0.12195165876996406 },\r\n { x: 0.000006001999999999511, y: -0.08644102670296684 },\r\n { x: 0.00000600299999999951, y: -0.09563729754616583 },\r\n { x: 0.00000600399999999951, y: -0.08960733702434961 },\r\n { x: 0.00000600499999999951, y: -0.11041109453869191 },\r\n { x: 0.000006005999999999509, y: -0.056102866895571535 },\r\n { x: 0.000006006999999999509, y: -0.08364941214416051 },\r\n { x: 0.000006007999999999509, y: -0.05325541192381518 },\r\n { x: 0.000006008999999999508, y: -0.09108186690943285 },\r\n { x: 0.000006009999999999508, y: -0.08458580035965713 },\r\n { x: 0.000006010999999999508, y: -0.05507224504112952 },\r\n { x: 0.000006011999999999507, y: -0.10296330561322223 },\r\n { x: 0.000006012999999999507, y: -0.09488929278865856 },\r\n { x: 0.0000060139999999995065, y: -0.06013245512926522 },\r\n { x: 0.000006014999999999506, y: -0.08934633450284106 },\r\n { x: 0.000006015999999999506, y: -0.08259162631814278 },\r\n { x: 0.0000060169999999995055, y: -0.05357538661837122 },\r\n { x: 0.000006017999999999505, y: -0.05204831036386155 },\r\n { x: 0.000006018999999999505, y: -0.06344763781702512 },\r\n { x: 0.0000060199999999995044, y: -0.09482085670357751 },\r\n { x: 0.000006020999999999504, y: -0.1163725227165778 },\r\n { x: 0.000006021999999999504, y: -0.05815953680107275 },\r\n { x: 0.000006022999999999503, y: -0.09658067692709792 },\r\n { x: 0.000006023999999999503, y: -0.11752584670711022 },\r\n { x: 0.000006024999999999503, y: -0.08223820261654766 },\r\n { x: 0.000006025999999999502, y: -0.09598521850349812 },\r\n { x: 0.000006026999999999502, y: -0.042073398825239715 },\r\n { x: 0.000006027999999999502, y: -0.07048987614783778 },\r\n { x: 0.000006028999999999501, y: -0.09279478329200198 },\r\n { x: 0.000006029999999999501, y: -0.07895609564632952 },\r\n { x: 0.000006030999999999501, y: -0.10784860207727726 },\r\n { x: 0.0000060319999999995, y: -0.053028161190770064 },\r\n { x: 0.0000060329999999995, y: -0.0829248927180219 },\r\n { x: 0.0000060339999999994996, y: -0.0818058971188156 },\r\n { x: 0.000006034999999999499, y: -0.0664053590475456 },\r\n { x: 0.000006035999999999499, y: -0.08782009530975278 },\r\n { x: 0.0000060369999999994985, y: -0.07147853880348622 },\r\n { x: 0.000006037999999999498, y: -0.060472656767288614 },\r\n { x: 0.000006038999999999498, y: -0.10469031247704569 },\r\n { x: 0.0000060399999999994975, y: -0.10442521789887405 },\r\n { x: 0.000006040999999999497, y: -0.1054544936079513 },\r\n { x: 0.000006041999999999497, y: -0.06643322660601902 },\r\n { x: 0.0000060429999999994964, y: -0.10928909518495153 },\r\n { x: 0.000006043999999999496, y: -0.08416396760142379 },\r\n { x: 0.000006044999999999496, y: -0.07496725972070763 },\r\n { x: 0.000006045999999999495, y: -0.06809265692172944 },\r\n { x: 0.000006046999999999495, y: -0.10921065249892614 },\r\n { x: 0.000006047999999999495, y: -0.05430327227813113 },\r\n { x: 0.000006048999999999494, y: -0.07028211882368447 },\r\n { x: 0.000006049999999999494, y: -0.07704224796860162 },\r\n { x: 0.000006050999999999494, y: -0.0506767095500774 },\r\n { x: 0.000006051999999999493, y: -0.06114107076207647 },\r\n { x: 0.000006052999999999493, y: -0.04604035944602747 },\r\n { x: 0.000006053999999999493, y: -0.08062917041039515 },\r\n { x: 0.000006054999999999492, y: -0.08833735893986822 },\r\n { x: 0.000006055999999999492, y: -0.06978961323064778 },\r\n { x: 0.0000060569999999994916, y: -0.08892204483179389 },\r\n { x: 0.000006057999999999491, y: -0.08185808321114553 },\r\n { x: 0.000006058999999999491, y: -0.09922425884615114 },\r\n { x: 0.0000060599999999994905, y: -0.06654865516326708 },\r\n { x: 0.00000606099999999949, y: -0.09902557428036265 },\r\n { x: 0.00000606199999999949, y: -0.07919456209501505 },\r\n { x: 0.0000060629999999994895, y: -0.037640796437529905 },\r\n { x: 0.000006063999999999489, y: -0.04633714536331375 },\r\n { x: 0.000006064999999999489, y: -0.10412942784348213 },\r\n { x: 0.000006065999999999488, y: -0.08689579722150406 },\r\n { x: 0.000006066999999999488, y: -0.06252268310524947 },\r\n { x: 0.000006067999999999488, y: -0.06216046889070501 },\r\n { x: 0.000006068999999999487, y: -0.036914977347461485 },\r\n { x: 0.000006069999999999487, y: -0.048231801694563134 },\r\n { x: 0.000006070999999999487, y: -0.05376265197084077 },\r\n { x: 0.000006071999999999486, y: -0.10214662605294006 },\r\n { x: 0.000006072999999999486, y: -0.10076966877582873 },\r\n { x: 0.000006073999999999486, y: -0.09999743767546357 },\r\n { x: 0.000006074999999999485, y: -0.035350232451341466 },\r\n { x: 0.000006075999999999485, y: -0.09442745812635754 },\r\n { x: 0.000006076999999999485, y: -0.08258066472939925 },\r\n { x: 0.000006077999999999484, y: -0.10232536981876336 },\r\n { x: 0.000006078999999999484, y: -0.03543871468212978 },\r\n { x: 0.0000060799999999994835, y: -0.0759086260932181 },\r\n { x: 0.000006080999999999483, y: -0.043532089922470284 },\r\n { x: 0.000006081999999999483, y: -0.09943150345333678 },\r\n { x: 0.0000060829999999994825, y: -0.05249172545629008 },\r\n { x: 0.000006083999999999482, y: -0.0497052120447259 },\r\n { x: 0.000006084999999999482, y: -0.055959084079517794 },\r\n { x: 0.0000060859999999994815, y: -0.09319915565967628 },\r\n { x: 0.000006086999999999481, y: -0.07752902920304276 },\r\n { x: 0.000006087999999999481, y: -0.05946988747654547 },\r\n { x: 0.00000608899999999948, y: -0.051936078922685584 },\r\n { x: 0.00000608999999999948, y: -0.05051434375004746 },\r\n { x: 0.00000609099999999948, y: -0.09438022983296337 },\r\n { x: 0.000006091999999999479, y: -0.05586243002483793 },\r\n { x: 0.000006092999999999479, y: -0.03023407036649725 },\r\n { x: 0.000006093999999999479, y: -0.03258275009046126 },\r\n { x: 0.000006094999999999478, y: -0.1024980044093661 },\r\n { x: 0.000006095999999999478, y: -0.09275611915316864 },\r\n { x: 0.000006096999999999478, y: -0.032795237526358004 },\r\n { x: 0.000006097999999999477, y: -0.030310105665027724 },\r\n { x: 0.000006098999999999477, y: -0.04327997543941835 },\r\n { x: 0.0000060999999999994766, y: -0.0659210445886651 },\r\n { x: 0.000006100999999999476, y: -0.09146231185210932 },\r\n { x: 0.000006101999999999476, y: -0.037438521964976615 },\r\n { x: 0.0000061029999999994755, y: -0.06576506215415627 },\r\n { x: 0.000006103999999999475, y: -0.08739087890932841 },\r\n { x: 0.000006104999999999475, y: -0.06464663089288639 },\r\n { x: 0.0000061059999999994745, y: -0.08364440666422324 },\r\n { x: 0.000006106999999999474, y: -0.035357769772154185 },\r\n { x: 0.000006107999999999474, y: -0.06049417748147655 },\r\n { x: 0.0000061089999999994734, y: -0.060791295857051696 },\r\n { x: 0.000006109999999999473, y: -0.05212904990702236 },\r\n { x: 0.000006110999999999473, y: -0.06456353747402446 },\r\n { x: 0.000006111999999999472, y: -0.07640714343088706 },\r\n { x: 0.000006112999999999472, y: -0.08101522377396328 },\r\n { x: 0.000006113999999999472, y: -0.08368665115374006 },\r\n { x: 0.000006114999999999471, y: -0.05560243777778019 },\r\n { x: 0.000006115999999999471, y: -0.03740030383550171 },\r\n { x: 0.000006116999999999471, y: -0.07765490884778034 },\r\n { x: 0.00000611799999999947, y: -0.06269673414572502 },\r\n { x: 0.00000611899999999947, y: -0.039844701688237893 },\r\n { x: 0.00000611999999999947, y: -0.0765170312942845 },\r\n { x: 0.000006120999999999469, y: -0.07042859535984229 },\r\n { x: 0.000006121999999999469, y: -0.02187132839342848 },\r\n { x: 0.0000061229999999994686, y: -0.036588541096110413 },\r\n { x: 0.000006123999999999468, y: -0.06139969937508194 },\r\n { x: 0.000006124999999999468, y: -0.01829732470758478 },\r\n { x: 0.0000061259999999994675, y: -0.040682294409315894 },\r\n { x: 0.000006126999999999467, y: -0.039408999760286875 },\r\n { x: 0.000006127999999999467, y: -0.02279277932498827 },\r\n { x: 0.0000061289999999994665, y: -0.030005550988070537 },\r\n { x: 0.000006129999999999466, y: -0.08833548770587532 },\r\n { x: 0.000006130999999999466, y: -0.09032895729687224 },\r\n { x: 0.0000061319999999994654, y: -0.07981404934168174 },\r\n { x: 0.000006132999999999465, y: -0.06360981164020682 },\r\n { x: 0.000006133999999999465, y: -0.05635412185758906 },\r\n { x: 0.000006134999999999464, y: -0.019721263044769843 },\r\n { x: 0.000006135999999999464, y: -0.057318177733051506 },\r\n { x: 0.000006136999999999464, y: -0.07422415925552941 },\r\n { x: 0.000006137999999999463, y: -0.08831455583860398 },\r\n { x: 0.000006138999999999463, y: -0.07914814296113405 },\r\n { x: 0.000006139999999999463, y: -0.07254456063201074 },\r\n { x: 0.000006140999999999462, y: -0.07975292118650033 },\r\n { x: 0.000006141999999999462, y: -0.07703892120051815 },\r\n { x: 0.000006142999999999462, y: -0.03911335842578403 },\r\n { x: 0.000006143999999999461, y: -0.0624346534060086 },\r\n { x: 0.000006144999999999461, y: -0.03874617368811919 },\r\n { x: 0.0000061459999999994605, y: -0.0740110989151904 },\r\n { x: 0.00000614699999999946, y: -0.007660881498383919 },\r\n { x: 0.00000614799999999946, y: -0.011405687573579834 },\r\n { x: 0.0000061489999999994595, y: -0.012530470453577969 },\r\n { x: 0.000006149999999999459, y: -0.01523333144009003 },\r\n { x: 0.000006150999999999459, y: -0.05489184226314414 },\r\n { x: 0.0000061519999999994585, y: -0.039130272486857236 },\r\n { x: 0.000006152999999999458, y: -0.08293924945867172 },\r\n { x: 0.000006153999999999458, y: -0.02527022872010664 },\r\n { x: 0.000006154999999999457, y: -0.051431416284347095 },\r\n { x: 0.000006155999999999457, y: -0.016261011515250896 },\r\n { x: 0.000006156999999999457, y: -0.024252593090642267 },\r\n { x: 0.000006157999999999456, y: -0.07090916602992203 },\r\n { x: 0.000006158999999999456, y: -0.058718973882890366 },\r\n { x: 0.000006159999999999456, y: -0.02353605606787683 },\r\n { x: 0.000006160999999999455, y: -0.048297583921088225 },\r\n { x: 0.000006161999999999455, y: -0.02322525667090455 },\r\n { x: 0.000006162999999999455, y: -0.061420659843478775 },\r\n { x: 0.000006163999999999454, y: -0.014277554526177638 },\r\n { x: 0.000006164999999999454, y: -0.06469178475100859 },\r\n { x: 0.000006165999999999454, y: -0.009171104892655609 },\r\n { x: 0.000006166999999999453, y: -0.06653088376979778 },\r\n { x: 0.000006167999999999453, y: -0.07725938998366272 },\r\n { x: 0.0000061689999999994525, y: -0.02654697739258084 },\r\n { x: 0.000006169999999999452, y: -0.0413348446142956 },\r\n { x: 0.000006170999999999452, y: -0.009288754652388237 },\r\n { x: 0.0000061719999999994515, y: -0.04826226440609409 },\r\n { x: 0.000006172999999999451, y: -0.06136531060918308 },\r\n { x: 0.000006173999999999451, y: -0.028318733100411893 },\r\n { x: 0.0000061749999999994504, y: -0.07134938507758189 },\r\n { x: 0.00000617599999999945, y: -0.06191959854252564 },\r\n { x: 0.00000617699999999945, y: -0.04094477951194121 },\r\n { x: 0.000006177999999999449, y: -0.05192451345077616 },\r\n { x: 0.000006178999999999449, y: -0.021237624257075736 },\r\n { x: 0.000006179999999999449, y: -0.0536031160606531 },\r\n { x: 0.000006180999999999448, y: -0.0691755146665819 },\r\n { x: 0.000006181999999999448, y: -0.04303059259727877 },\r\n { x: 0.000006182999999999448, y: -0.040002811001553416 },\r\n { x: 0.000006183999999999447, y: -0.05349711000705129 },\r\n { x: 0.000006184999999999447, y: -0.05272545070529948 },\r\n { x: 0.000006185999999999447, y: -0.0413942349224902 },\r\n { x: 0.000006186999999999446, y: -0.016244124912070095 },\r\n { x: 0.000006187999999999446, y: -0.013549259601527443 },\r\n { x: 0.0000061889999999994456, y: -0.05294550999414146 },\r\n { x: 0.000006189999999999445, y: -0.061378110945480374 },\r\n { x: 0.000006190999999999445, y: -0.01495256796480194 },\r\n { x: 0.0000061919999999994445, y: -0.01881017581693592 },\r\n { x: 0.000006192999999999444, y: -0.023087577275717534 },\r\n { x: 0.000006193999999999444, y: -0.0062885114809384385 },\r\n { x: 0.0000061949999999994435, y: 0.0029734317892141926 },\r\n { x: 0.000006195999999999443, y: -0.018432320432132325 },\r\n { x: 0.000006196999999999443, y: -0.02044484339534021 },\r\n { x: 0.0000061979999999994424, y: -0.05524268797754462 },\r\n { x: 0.000006198999999999442, y: -0.01616206543846683 },\r\n { x: 0.000006199999999999442, y: -0.0660092748979551 },\r\n { x: 0.000006200999999999441, y: -0.043690714667203645 },\r\n { x: 0.000006201999999999441, y: 0.0005316744198725146 },\r\n { x: 0.000006202999999999441, y: -0.007726714545605293 },\r\n { x: 0.00000620399999999944, y: -0.025821057885985852 },\r\n { x: 0.00000620499999999944, y: -0.047793671931128115 },\r\n { x: 0.00000620599999999944, y: -0.036176341540212445 },\r\n { x: 0.000006206999999999439, y: -0.0005281434926095938 },\r\n { x: 0.000006207999999999439, y: 0.005280965406241886 },\r\n { x: 0.000006208999999999439, y: -0.03658752024839781 },\r\n { x: 0.000006209999999999438, y: -0.04332716128611916 },\r\n { x: 0.000006210999999999438, y: -0.01151454028331448 },\r\n { x: 0.0000062119999999994376, y: -0.018395043001853198 },\r\n { x: 0.000006212999999999437, y: -0.02047205895566663 },\r\n { x: 0.000006213999999999437, y: -0.02252945567323992 },\r\n { x: 0.0000062149999999994365, y: -0.06240499792806903 },\r\n { x: 0.000006215999999999436, y: 0.00648225610971153 },\r\n { x: 0.000006216999999999436, y: -0.039318949536063116 },\r\n { x: 0.0000062179999999994355, y: -0.03008399199088066 },\r\n { x: 0.000006218999999999435, y: -0.022827312865908077 },\r\n { x: 0.000006219999999999435, y: 0.01553383083541247 },\r\n { x: 0.000006220999999999434, y: -0.04772180874630108 },\r\n { x: 0.000006221999999999434, y: -0.0218651671967387 },\r\n { x: 0.000006222999999999434, y: 0.015627368398890503 },\r\n { x: 0.000006223999999999433, y: -0.033863501618150056 },\r\n { x: 0.000006224999999999433, y: -0.05142512187465838 },\r\n { x: 0.000006225999999999433, y: -0.024525679656994415 },\r\n { x: 0.000006226999999999432, y: -0.029933055501078006 },\r\n { x: 0.000006227999999999432, y: 0.017709236119990538 },\r\n { x: 0.000006228999999999432, y: 0.032830646026470234 },\r\n { x: 0.000006229999999999431, y: -0.006292817213284833 },\r\n { x: 0.000006230999999999431, y: 0.04274711680024851 },\r\n { x: 0.000006231999999999431, y: -0.004621319415502218 },\r\n { x: 0.00000623299999999943, y: -0.03529803826118595 },\r\n { x: 0.00000623399999999943, y: -0.05326253515735846 },\r\n { x: 0.0000062349999999994295, y: -0.003763221811630803 },\r\n { x: 0.000006235999999999429, y: -0.044672810441032704 },\r\n { x: 0.000006236999999999429, y: 0.019714391381036284 },\r\n { x: 0.0000062379999999994285, y: -0.03739961058201955 },\r\n { x: 0.000006238999999999428, y: 0.00957567309624037 },\r\n { x: 0.000006239999999999428, y: 0.04954639406154087 },\r\n { x: 0.0000062409999999994275, y: -0.014630374805613326 },\r\n { x: 0.000006241999999999427, y: -0.032937682650552684 },\r\n { x: 0.000006242999999999427, y: -0.04948639298080569 },\r\n { x: 0.000006243999999999426, y: -0.004792318799029234 },\r\n { x: 0.000006244999999999426, y: -0.046479392312515626 },\r\n { x: 0.000006245999999999426, y: -0.011264634234860854 },\r\n { x: 0.000006246999999999425, y: -0.014911368466185163 },\r\n { x: 0.000006247999999999425, y: -0.04981474697331012 },\r\n { x: 0.000006248999999999425, y: 0.01718150965874051 },\r\n { x: 0.000006249999999999424, y: 0.0037642021802506316 },\r\n { x: 0.000006250999999999424, y: -0.03213642386686262 },\r\n { x: 0.000006251999999999424, y: -0.029888384412366176 },\r\n { x: 0.000006252999999999423, y: 0.025331378677488605 },\r\n { x: 0.000006253999999999423, y: 0.010734927526340159 },\r\n { x: 0.0000062549999999994226, y: -0.0329527975762178 },\r\n { x: 0.000006255999999999422, y: -0.00944377877904363 },\r\n { x: 0.000006256999999999422, y: 0.011207288700537566 },\r\n { x: 0.0000062579999999994215, y: -0.007036597753970956 },\r\n { x: 0.000006258999999999421, y: -0.010211809680283892 },\r\n { x: 0.000006259999999999421, y: -0.0421563741401429 },\r\n { x: 0.0000062609999999994205, y: -0.02854895931348529 },\r\n { x: 0.00000626199999999942, y: -0.03452037275224883 },\r\n { x: 0.00000626299999999942, y: -0.021440287476734175 },\r\n { x: 0.0000062639999999994194, y: -0.03461588419029308 },\r\n { x: 0.000006264999999999419, y: -0.0024473477206832786 },\r\n { x: 0.000006265999999999419, y: 0.01676531067551041 },\r\n { x: 0.000006266999999999418, y: -0.04142183114342354 },\r\n { x: 0.000006267999999999418, y: 0.012906225146261406 },\r\n { x: 0.000006268999999999418, y: 0.00871623455383652 },\r\n { x: 0.000006269999999999417, y: 0.0327525113744227 },\r\n { x: 0.000006270999999999417, y: 0.012634596216380758 },\r\n { x: 0.000006271999999999417, y: -0.004471361206095677 },\r\n { x: 0.000006272999999999416, y: 0.022235699241061682 },\r\n { x: 0.000006273999999999416, y: -0.015460051710681284 },\r\n { x: 0.000006274999999999416, y: -0.039800856084212195 },\r\n { x: 0.000006275999999999415, y: 0.02039043169491328 },\r\n { x: 0.000006276999999999415, y: 0.012965836879122493 },\r\n { x: 0.0000062779999999994146, y: -0.01574741264741996 },\r\n { x: 0.000006278999999999414, y: 0.008013891479229642 },\r\n { x: 0.000006279999999999414, y: 0.03262042437051343 },\r\n { x: 0.0000062809999999994135, y: -0.011461677312809816 },\r\n { x: 0.000006281999999999413, y: -0.007769264021925711 },\r\n { x: 0.000006282999999999413, y: 0.012149333912136549 },\r\n { x: 0.0000062839999999994125, y: -0.03700208474630407 },\r\n { x: 0.000006284999999999412, y: 0.0007334236415029897 },\r\n { x: 0.000006285999999999412, y: 0.00926810142370388 },\r\n { x: 0.0000062869999999994114, y: 0.022648380989877325 },\r\n { x: 0.000006287999999999411, y: 0.010036614614791568 },\r\n { x: 0.000006288999999999411, y: 0.02834182316130422 },\r\n { x: 0.00000628999999999941, y: -0.008599540871145122 },\r\n { x: 0.00000629099999999941, y: -0.03115852858676202 },\r\n { x: 0.00000629199999999941, y: 0.038131686769695486 },\r\n { x: 0.000006292999999999409, y: 0.017719369456522506 },\r\n { x: 0.000006293999999999409, y: 0.036164584579017556 },\r\n { x: 0.000006294999999999409, y: -0.014620831781571971 },\r\n { x: 0.000006295999999999408, y: 0.004998727591320388 },\r\n { x: 0.000006296999999999408, y: -0.01017844762370505 },\r\n { x: 0.000006297999999999408, y: 0.01071381513663041 },\r\n { x: 0.000006298999999999407, y: 0.04278492449907748 },\r\n { x: 0.000006299999999999407, y: 0.03008088671584024 },\r\n { x: 0.0000063009999999994065, y: 0.0020033693985619036 },\r\n { x: 0.000006301999999999406, y: 0.0161516417511956 },\r\n { x: 0.000006302999999999406, y: 0.027933748220420704 },\r\n { x: 0.0000063039999999994055, y: 0.039118929286455724 },\r\n { x: 0.000006304999999999405, y: 0.03560948953988753 },\r\n { x: 0.000006305999999999405, y: 0.03010847957597074 },\r\n { x: 0.0000063069999999994045, y: 0.03625953950562536 },\r\n { x: 0.000006307999999999404, y: 0.02355699596041319 },\r\n { x: 0.000006308999999999404, y: 0.019189500489196782 },\r\n { x: 0.000006309999999999403, y: -0.016290889862414015 },\r\n { x: 0.000006310999999999403, y: -0.0040482488010917025 },\r\n { x: 0.000006311999999999403, y: -0.004030568391539709 },\r\n { x: 0.000006312999999999402, y: 0.03817525695631252 },\r\n { x: 0.000006313999999999402, y: 0.021862622227764552 },\r\n { x: 0.000006314999999999402, y: -0.026376856506003223 },\r\n { x: 0.000006315999999999401, y: 0.03885425263467728 },\r\n { x: 0.000006316999999999401, y: -0.009070015586960224 },\r\n { x: 0.000006317999999999401, y: -0.0162281447276042 },\r\n { x: 0.0000063189999999994, y: 0.049778850842657325 },\r\n { x: 0.0000063199999999994, y: 0.03628928349058779 },\r\n { x: 0.0000063209999999994, y: 0.005456333407054057 },\r\n { x: 0.000006321999999999399, y: -0.0030741798448190825 },\r\n { x: 0.000006322999999999399, y: 0.002075695179680896 },\r\n { x: 0.0000063239999999993985, y: 0.02969728024478644 },\r\n { x: 0.000006324999999999398, y: 0.0027210731525679453 },\r\n { x: 0.000006325999999999398, y: -0.01342455122082064 },\r\n { x: 0.0000063269999999993975, y: 0.03869715895703062 },\r\n { x: 0.000006327999999999397, y: 0.04467398883471892 },\r\n { x: 0.000006328999999999397, y: -0.010345809247537823 },\r\n { x: 0.0000063299999999993964, y: -0.016289646265897136 },\r\n { x: 0.000006330999999999396, y: -0.008667939794200268 },\r\n { x: 0.000006331999999999396, y: 0.02945874970557589 },\r\n { x: 0.000006332999999999395, y: 0.010308575744073002 },\r\n { x: 0.000006333999999999395, y: 0.027931222627961515 },\r\n { x: 0.000006334999999999395, y: 0.031327387226426584 },\r\n { x: 0.000006335999999999394, y: -0.01496415014939505 },\r\n { x: 0.000006336999999999394, y: -0.006543738528045833 },\r\n { x: 0.000006337999999999394, y: -0.0021667859050321335 },\r\n { x: 0.000006338999999999393, y: 0.013527827150638171 },\r\n { x: 0.000006339999999999393, y: -0.013649883552325867 },\r\n { x: 0.000006340999999999393, y: 0.0047125368075670235 },\r\n { x: 0.000006341999999999392, y: 0.018327620062022834 },\r\n { x: 0.000006342999999999392, y: 0.01006183724561431 },\r\n { x: 0.0000063439999999993916, y: 0.017456612562905347 },\r\n { x: 0.000006344999999999391, y: -0.013522434269681884 },\r\n { x: 0.000006345999999999391, y: 0.04479244813586061 },\r\n { x: 0.0000063469999999993905, y: 0.027447948313374212 },\r\n { x: 0.00000634799999999939, y: -0.015140239180625101 },\r\n { x: 0.00000634899999999939, y: -0.012150445418913226 },\r\n { x: 0.0000063499999999993895, y: 0.05186206185461248 },\r\n { x: 0.000006350999999999389, y: 0.03183216012449015 },\r\n { x: 0.000006351999999999389, y: 0.0332760109182465 },\r\n { x: 0.0000063529999999993884, y: 0.0487466867858228 },\r\n { x: 0.000006353999999999388, y: 0.008306739164387187 },\r\n { x: 0.000006354999999999388, y: 0.047476756131428016 },\r\n { x: 0.000006355999999999387, y: 0.021312453106249796 },\r\n { x: 0.000006356999999999387, y: 0.024162952247484788 },\r\n { x: 0.000006357999999999387, y: 0.0426354306429191 },\r\n { x: 0.000006358999999999386, y: -0.004766373901188177 },\r\n { x: 0.000006359999999999386, y: 0.00904997452147054 },\r\n { x: 0.000006360999999999386, y: 0.01011358777751506 },\r\n { x: 0.000006361999999999385, y: 0.058121108359806134 },\r\n { x: 0.000006362999999999385, y: 0.003551169816425368 },\r\n { x: 0.000006363999999999385, y: 0.05545298154996432 },\r\n { x: 0.000006364999999999384, y: 0.05771780639184556 },\r\n { x: 0.000006365999999999384, y: 0.01661106697210214 },\r\n { x: 0.0000063669999999993836, y: 0.014710240260772868 },\r\n { x: 0.000006367999999999383, y: 0.020918922991702345 },\r\n { x: 0.000006368999999999383, y: -0.006097685184978951 },\r\n { x: 0.0000063699999999993825, y: 0.061594873064644846 },\r\n { x: 0.000006370999999999382, y: 0.03607071739159255 },\r\n { x: 0.000006371999999999382, y: -0.007108082073094737 },\r\n { x: 0.0000063729999999993815, y: 0.03907658351584181 },\r\n { x: 0.000006373999999999381, y: 0.012717522769924498 },\r\n { x: 0.000006374999999999381, y: 0.0001813679474672522 },\r\n { x: 0.00000637599999999938, y: 0.041656031454756194 },\r\n { x: 0.00000637699999999938, y: 0.052805909789579816 },\r\n { x: 0.00000637799999999938, y: 0.03672561100600775 },\r\n { x: 0.000006378999999999379, y: 0.025426646161620676 },\r\n { x: 0.000006379999999999379, y: 0.004888598356866586 },\r\n { x: 0.000006380999999999379, y: 0.026636402772328042 },\r\n { x: 0.000006381999999999378, y: 0.012314934333584958 },\r\n { x: 0.000006382999999999378, y: 0.048075033771409384 },\r\n { x: 0.000006383999999999378, y: -0.002893267211374388 },\r\n { x: 0.000006384999999999377, y: 0.010925616580244515 },\r\n { x: 0.000006385999999999377, y: 0.038065937825059966 },\r\n { x: 0.000006386999999999377, y: 0.03950677197835536 },\r\n { x: 0.000006387999999999376, y: 0.041131985780472176 },\r\n { x: 0.000006388999999999376, y: 0.006024632580920293 },\r\n { x: 0.0000063899999999993755, y: 0.03501281549943028 },\r\n { x: 0.000006390999999999375, y: 0.05792289297258767 },\r\n { x: 0.000006391999999999375, y: 0.03526323152376286 },\r\n { x: 0.0000063929999999993745, y: 0.043037819213868775 },\r\n { x: 0.000006393999999999374, y: 0.030099990295969135 },\r\n { x: 0.000006394999999999374, y: 0.004398436578855719 },\r\n { x: 0.0000063959999999993735, y: 0.051071036389301494 },\r\n { x: 0.000006396999999999373, y: 0.04343454898694269 },\r\n { x: 0.000006397999999999373, y: 0.02044347068979022 },\r\n { x: 0.000006398999999999372, y: 0.033810450510320327 },\r\n { x: 0.000006399999999999372, y: 0.03252325465738688 },\r\n { x: 0.000006400999999999372, y: 0.028695652313051614 },\r\n { x: 0.000006401999999999371, y: -0.002044103682097148 },\r\n { x: 0.000006402999999999371, y: 0.01993094001088715 },\r\n { x: 0.000006403999999999371, y: 0.013681965615391374 },\r\n { x: 0.00000640499999999937, y: 0.06724252224929395 },\r\n { x: 0.00000640599999999937, y: 0.042511897265260445 },\r\n { x: 0.00000640699999999937, y: 0.03798808817135716 },\r\n { x: 0.000006407999999999369, y: 0.018216638564458286 },\r\n { x: 0.000006408999999999369, y: 0.021257935271128067 },\r\n { x: 0.0000064099999999993686, y: 0.02820020082800031 },\r\n { x: 0.000006410999999999368, y: 0.01688344762984088 },\r\n { x: 0.000006411999999999368, y: 0.03306973531724155 },\r\n { x: 0.0000064129999999993675, y: 0.04641983065822221 },\r\n { x: 0.000006413999999999367, y: 0.07475868871591632 },\r\n { x: 0.000006414999999999367, y: 0.07426329251613269 },\r\n { x: 0.0000064159999999993665, y: 0.043962503596020844 },\r\n { x: 0.000006416999999999366, y: 0.07571839537353463 },\r\n { x: 0.000006417999999999366, y: 0.017973350060461173 },\r\n { x: 0.0000064189999999993654, y: 0.01690186384147821 },\r\n { x: 0.000006419999999999365, y: 0.057118765479222414 },\r\n { x: 0.000006420999999999365, y: 0.05263133167303674 },\r\n { x: 0.000006421999999999364, y: 0.005581214091007286 },\r\n { x: 0.000006422999999999364, y: 0.02609731318375393 },\r\n { x: 0.000006423999999999364, y: 0.042939697597900464 },\r\n { x: 0.000006424999999999363, y: 0.005542101812976444 },\r\n { x: 0.000006425999999999363, y: 0.011837490370590422 },\r\n { x: 0.000006426999999999363, y: 0.0629309599090829 },\r\n { x: 0.000006427999999999362, y: 0.04257522721475675 },\r\n { x: 0.000006428999999999362, y: 0.07225775922170688 },\r\n { x: 0.000006429999999999362, y: 0.04642612825044807 },\r\n { x: 0.000006430999999999361, y: 0.043931850609426566 },\r\n { x: 0.000006431999999999361, y: 0.004367297429254423 },\r\n { x: 0.0000064329999999993606, y: 0.056722822136098125 },\r\n { x: 0.00000643399999999936, y: 0.005191215344177845 },\r\n { x: 0.00000643499999999936, y: 0.04614752879384501 },\r\n { x: 0.0000064359999999993595, y: 0.028597820859081757 },\r\n { x: 0.000006436999999999359, y: 0.05936524529405696 },\r\n { x: 0.000006437999999999359, y: 0.027490048232724166 },\r\n { x: 0.0000064389999999993585, y: 0.03374053222803882 },\r\n { x: 0.000006439999999999358, y: 0.055492541226114404 },\r\n { x: 0.000006440999999999358, y: 0.06483997765893532 },\r\n { x: 0.0000064419999999993574, y: 0.03814209677039398 },\r\n { x: 0.000006442999999999357, y: 0.051603366202904476 },\r\n { x: 0.000006443999999999357, y: 0.07797460461593173 },\r\n { x: 0.000006444999999999356, y: 0.05991075958900212 },\r\n { x: 0.000006445999999999356, y: 0.009144203536065869 },\r\n { x: 0.000006446999999999356, y: 0.03761598671213768 },\r\n { x: 0.000006447999999999355, y: 0.04400307042006278 },\r\n { x: 0.000006448999999999355, y: 0.054343530798096264 },\r\n { x: 0.000006449999999999355, y: 0.04820793455182021 },\r\n { x: 0.000006450999999999354, y: 0.048293677648373896 },\r\n { x: 0.000006451999999999354, y: 0.042585122472547976 },\r\n { x: 0.000006452999999999354, y: 0.017837085006395623 },\r\n { x: 0.000006453999999999353, y: 0.02339220972470029 },\r\n { x: 0.000006454999999999353, y: 0.07962588863827288 },\r\n { x: 0.0000064559999999993525, y: 0.06350196743297971 },\r\n { x: 0.000006456999999999352, y: 0.022830411206015533 },\r\n { x: 0.000006457999999999352, y: 0.06857160814664562 },\r\n { x: 0.0000064589999999993515, y: 0.08466158553510278 },\r\n { x: 0.000006459999999999351, y: 0.049805944064092195 },\r\n { x: 0.000006460999999999351, y: 0.08957688388242513 },\r\n { x: 0.0000064619999999993505, y: 0.0595226900692198 },\r\n { x: 0.00000646299999999935, y: 0.0699461360292879 },\r\n { x: 0.00000646399999999935, y: 0.046784319538738975 },\r\n { x: 0.000006464999999999349, y: 0.038014012120854146 },\r\n { x: 0.000006465999999999349, y: 0.05340638341992883 },\r\n { x: 0.000006466999999999349, y: 0.04043982395822764 },\r\n { x: 0.000006467999999999348, y: 0.08119226395004789 },\r\n { x: 0.000006468999999999348, y: 0.06877083413639104 },\r\n { x: 0.000006469999999999348, y: 0.015111160079450445 },\r\n { x: 0.000006470999999999347, y: 0.06029445773901031 },\r\n { x: 0.000006471999999999347, y: 0.04153305955100414 },\r\n { x: 0.000006472999999999347, y: 0.08087264443846903 },\r\n { x: 0.000006473999999999346, y: 0.017638697818553248 },\r\n { x: 0.000006474999999999346, y: 0.01814617742324092 },\r\n { x: 0.000006475999999999346, y: 0.058548952483776076 },\r\n { x: 0.000006476999999999345, y: 0.08672984577456241 },\r\n { x: 0.000006477999999999345, y: 0.017158621632537424 },\r\n { x: 0.0000064789999999993445, y: 0.04991058438379043 },\r\n { x: 0.000006479999999999344, y: 0.01912097501408188 },\r\n { x: 0.000006480999999999344, y: 0.034448221553927474 },\r\n { x: 0.0000064819999999993435, y: 0.031024618368766646 },\r\n { x: 0.000006482999999999343, y: 0.037922460299426995 },\r\n { x: 0.000006483999999999343, y: 0.02241148332962326 },\r\n { x: 0.0000064849999999993424, y: 0.034644909699168405 },\r\n { x: 0.000006485999999999342, y: 0.053251671144949705 },\r\n { x: 0.000006486999999999342, y: 0.08472635728861705 },\r\n { x: 0.000006487999999999341, y: 0.06592290887966977 },\r\n { x: 0.000006488999999999341, y: 0.08975219712191326 },\r\n { x: 0.000006489999999999341, y: 0.03711750915353171 },\r\n { x: 0.00000649099999999934, y: 0.08084597956526815 },\r\n { x: 0.00000649199999999934, y: 0.05367095367526733 },\r\n { x: 0.00000649299999999934, y: 0.023859798611992323 },\r\n { x: 0.000006493999999999339, y: 0.02445094556818196 },\r\n { x: 0.000006494999999999339, y: 0.058076718515805696 },\r\n { x: 0.000006495999999999339, y: 0.024087309043638257 },\r\n { x: 0.000006496999999999338, y: 0.017526350786061143 },\r\n { x: 0.000006497999999999338, y: 0.08816713968177811 },\r\n { x: 0.0000064989999999993376, y: 0.05780687646762531 },\r\n { x: 0.000006499999999999337, y: 0.021337911181062305 },\r\n { x: 0.000006500999999999337, y: 0.02666993284336484 },\r\n { x: 0.0000065019999999993365, y: 0.06613551085635809 },\r\n { x: 0.000006502999999999336, y: 0.0202143940581656 },\r\n { x: 0.000006503999999999336, y: 0.029377065763703823 },\r\n { x: 0.0000065049999999993355, y: 0.018441324592165874 },\r\n { x: 0.000006505999999999335, y: 0.06223105463837809 },\r\n { x: 0.000006506999999999335, y: 0.06157090510868055 },\r\n { x: 0.0000065079999999993344, y: 0.017371589196941872 },\r\n { x: 0.000006508999999999334, y: 0.05776934145479441 },\r\n { x: 0.000006509999999999334, y: 0.06657347622717026 },\r\n { x: 0.000006510999999999333, y: 0.061318227794359234 },\r\n { x: 0.000006511999999999333, y: 0.07927582001251911 },\r\n { x: 0.000006512999999999333, y: 0.04814067769189442 },\r\n { x: 0.000006513999999999332, y: 0.06302755705110645 },\r\n { x: 0.000006514999999999332, y: 0.06596573076238843 },\r\n { x: 0.000006515999999999332, y: 0.03220270087148301 },\r\n { x: 0.000006516999999999331, y: 0.06211336414397774 },\r\n { x: 0.000006517999999999331, y: 0.07394601986110182 },\r\n { x: 0.000006518999999999331, y: 0.046239376959757876 },\r\n { x: 0.00000651999999999933, y: 0.02831218393796916 },\r\n { x: 0.00000652099999999933, y: 0.05304531000203788 },\r\n { x: 0.0000065219999999993296, y: 0.08922820058026253 },\r\n { x: 0.000006522999999999329, y: 0.05124316427105455 },\r\n { x: 0.000006523999999999329, y: 0.07627591101950841 },\r\n { x: 0.0000065249999999993285, y: 0.08066360506042243 },\r\n { x: 0.000006525999999999328, y: 0.07179380147369352 },\r\n { x: 0.000006526999999999328, y: 0.02480687957884062 },\r\n { x: 0.0000065279999999993275, y: 0.021273755837011084 },\r\n { x: 0.000006528999999999327, y: 0.07489078778425956 },\r\n { x: 0.000006529999999999327, y: 0.06088030469798052 },\r\n { x: 0.000006530999999999326, y: 0.03577063247838755 },\r\n { x: 0.000006531999999999326, y: 0.05945664488266624 },\r\n { x: 0.000006532999999999326, y: 0.09035637680538935 },\r\n { x: 0.000006533999999999325, y: 0.02843309567054169 },\r\n { x: 0.000006534999999999325, y: 0.048816212640917386 },\r\n { x: 0.000006535999999999325, y: 0.07913516249179729 },\r\n { x: 0.000006536999999999324, y: 0.07981189797965058 },\r\n { x: 0.000006537999999999324, y: 0.03664013490074804 },\r\n { x: 0.000006538999999999324, y: 0.08159447413230068 },\r\n { x: 0.000006539999999999323, y: 0.06426443283240951 },\r\n { x: 0.000006540999999999323, y: 0.020297878311369512 },\r\n { x: 0.000006541999999999323, y: 0.035898410098152936 },\r\n { x: 0.000006542999999999322, y: 0.0831971012431946 },\r\n { x: 0.000006543999999999322, y: 0.05708443488769442 },\r\n { x: 0.0000065449999999993215, y: 0.08713593364779015 },\r\n { x: 0.000006545999999999321, y: 0.04202631502534762 },\r\n { x: 0.000006546999999999321, y: 0.05461769354692221 },\r\n { x: 0.0000065479999999993205, y: 0.0179019812571889 },\r\n { x: 0.00000654899999999932, y: 0.0875155514401971 },\r\n { x: 0.00000654999999999932, y: 0.06425957959897101 },\r\n { x: 0.0000065509999999993195, y: 0.046251172923622776 },\r\n { x: 0.000006551999999999319, y: 0.029980503464713173 },\r\n { x: 0.000006552999999999319, y: 0.02893852916696471 },\r\n { x: 0.000006553999999999318, y: 0.07324678748096107 },\r\n { x: 0.000006554999999999318, y: 0.05128337684142053 },\r\n { x: 0.000006555999999999318, y: 0.035600802250349686 },\r\n { x: 0.000006556999999999317, y: 0.03443441481874935 },\r\n { x: 0.000006557999999999317, y: 0.07770959676123096 },\r\n { x: 0.000006558999999999317, y: 0.06740239748346287 },\r\n { x: 0.000006559999999999316, y: 0.07194445106461768 },\r\n { x: 0.000006560999999999316, y: 0.04722084254496357 },\r\n { x: 0.000006561999999999316, y: 0.09140163212467195 },\r\n { x: 0.000006562999999999315, y: 0.05132117729427984 },\r\n { x: 0.000006563999999999315, y: 0.07033220137084278 },\r\n { x: 0.0000065649999999993146, y: 0.040721305381931514 },\r\n { x: 0.000006565999999999314, y: 0.08303297882519378 },\r\n { x: 0.000006566999999999314, y: 0.07719776614074321 },\r\n { x: 0.0000065679999999993135, y: 0.03907063497194076 },\r\n { x: 0.000006568999999999313, y: 0.04572476870854561 },\r\n { x: 0.000006569999999999313, y: 0.08706548161918992 },\r\n { x: 0.0000065709999999993125, y: 0.04209809238424989 },\r\n { x: 0.000006571999999999312, y: 0.0542282542306921 },\r\n { x: 0.000006572999999999312, y: 0.06573974563496592 },\r\n { x: 0.0000065739999999993114, y: 0.07446134294254575 },\r\n { x: 0.000006574999999999311, y: 0.03838098283029383 },\r\n { x: 0.000006575999999999311, y: 0.061309893813799095 },\r\n { x: 0.00000657699999999931, y: 0.020204260388163253 },\r\n { x: 0.00000657799999999931, y: 0.02446463378367484 },\r\n { x: 0.00000657899999999931, y: 0.08037963567040077 },\r\n { x: 0.000006579999999999309, y: 0.027176270448606276 },\r\n { x: 0.000006580999999999309, y: 0.031547539426840715 },\r\n { x: 0.000006581999999999309, y: 0.06215955811940999 },\r\n { x: 0.000006582999999999308, y: 0.03308332315323817 },\r\n { x: 0.000006583999999999308, y: 0.04132478439500193 },\r\n { x: 0.000006584999999999308, y: 0.019064010549246883 },\r\n { x: 0.000006585999999999307, y: 0.020763900921007133 },\r\n { x: 0.000006586999999999307, y: 0.06315736507988125 },\r\n { x: 0.0000065879999999993066, y: 0.058280426933191694 },\r\n { x: 0.000006588999999999306, y: 0.08397856946697094 },\r\n { x: 0.000006589999999999306, y: 0.028718799199745567 },\r\n { x: 0.0000065909999999993055, y: 0.025324353945128678 },\r\n { x: 0.000006591999999999305, y: 0.034153840975273374 },\r\n { x: 0.000006592999999999305, y: 0.08458276502145204 },\r\n { x: 0.0000065939999999993045, y: 0.03142737887232128 },\r\n { x: 0.000006594999999999304, y: 0.02270915920406931 },\r\n { x: 0.000006595999999999304, y: 0.08934022619419905 },\r\n { x: 0.0000065969999999993034, y: 0.059282199100881824 },\r\n { x: 0.000006597999999999303, y: 0.09098396719235749 },\r\n { x: 0.000006598999999999303, y: 0.09327598186609257 },\r\n { x: 0.000006599999999999302, y: 0.05000674571010387 },\r\n { x: 0.000006600999999999302, y: 0.09278398603928825 },\r\n { x: 0.000006601999999999302, y: 0.05872084558411532 },\r\n { x: 0.000006602999999999301, y: 0.06528783711110878 },\r\n { x: 0.000006603999999999301, y: 0.04678761566839875 },\r\n { x: 0.000006604999999999301, y: 0.018555520444162858 },\r\n { x: 0.0000066059999999993, y: 0.022593591084810995 },\r\n { x: 0.0000066069999999993, y: 0.05803950729103298 },\r\n { x: 0.0000066079999999993, y: 0.025626477168597714 },\r\n { x: 0.000006608999999999299, y: 0.08070960098879633 },\r\n { x: 0.000006609999999999299, y: 0.08876092346981428 },\r\n { x: 0.0000066109999999992985, y: 0.019714923115309153 },\r\n { x: 0.000006611999999999298, y: 0.03655315394470019 },\r\n { x: 0.000006612999999999298, y: 0.058768526726104435 },\r\n { x: 0.0000066139999999992975, y: 0.08300652299730556 },\r\n { x: 0.000006614999999999297, y: 0.0812212686994408 },\r\n { x: 0.000006615999999999297, y: 0.08235875837698083 },\r\n { x: 0.0000066169999999992965, y: 0.04228075088395904 },\r\n { x: 0.000006617999999999296, y: 0.03793583328953068 },\r\n { x: 0.000006618999999999296, y: 0.04315415158681671 },\r\n { x: 0.000006619999999999295, y: 0.03726565522943924 },\r\n { x: 0.000006620999999999295, y: 0.08070669759231866 },\r\n { x: 0.000006621999999999295, y: 0.07769573251050269 },\r\n { x: 0.000006622999999999294, y: 0.08921752241973921 },\r\n { x: 0.000006623999999999294, y: 0.03128238110072391 },\r\n { x: 0.000006624999999999294, y: 0.01721029167577493 },\r\n { x: 0.000006625999999999293, y: 0.05723544751758841 },\r\n { x: 0.000006626999999999293, y: 0.051881128344731825 },\r\n { x: 0.000006627999999999293, y: 0.05217879659141306 },\r\n { x: 0.000006628999999999292, y: 0.04549704026830262 },\r\n { x: 0.000006629999999999292, y: 0.02669185959900858 },\r\n { x: 0.000006630999999999292, y: 0.03479811617691764 },\r\n { x: 0.000006631999999999291, y: 0.03951184780065229 },\r\n { x: 0.000006632999999999291, y: 0.029993099850985402 },\r\n { x: 0.0000066339999999992905, y: 0.018476396861959607 },\r\n { x: 0.00000663499999999929, y: 0.028381656121401238 },\r\n { x: 0.00000663599999999929, y: 0.027331687982021808 },\r\n { x: 0.0000066369999999992895, y: 0.026186655466722067 },\r\n { x: 0.000006637999999999289, y: 0.06741028807470141 },\r\n { x: 0.000006638999999999289, y: 0.029068371511625574 },\r\n { x: 0.0000066399999999992884, y: 0.036151874573342846 },\r\n { x: 0.000006640999999999288, y: 0.015071383618725176 },\r\n { x: 0.000006641999999999288, y: 0.08487926903570259 },\r\n { x: 0.000006642999999999287, y: 0.06660559132040406 },\r\n { x: 0.000006643999999999287, y: 0.05126897759859051 },\r\n { x: 0.000006644999999999287, y: 0.09044476978706817 },\r\n { x: 0.000006645999999999286, y: 0.02828579676115864 },\r\n { x: 0.000006646999999999286, y: 0.047062694483223165 },\r\n { x: 0.000006647999999999286, y: 0.02140772230832292 },\r\n { x: 0.000006648999999999285, y: 0.025325084247527562 },\r\n { x: 0.000006649999999999285, y: 0.027481744685395403 },\r\n { x: 0.000006650999999999285, y: 0.06800732863448657 },\r\n { x: 0.000006651999999999284, y: 0.03582835183822167 },\r\n { x: 0.000006652999999999284, y: 0.022237280687866536 },\r\n { x: 0.0000066539999999992836, y: 0.05978459112406473 },\r\n { x: 0.000006654999999999283, y: 0.04967244341369067 },\r\n { x: 0.000006655999999999283, y: 0.05787677592480175 },\r\n { x: 0.0000066569999999992825, y: 0.03604175383411775 },\r\n { x: 0.000006657999999999282, y: 0.040042575886865904 },\r\n { x: 0.000006658999999999282, y: 0.05066170268338957 },\r\n { x: 0.0000066599999999992815, y: 0.01270411777358288 },\r\n { x: 0.000006660999999999281, y: 0.06971884054768734 },\r\n { x: 0.000006661999999999281, y: 0.07718505234861876 },\r\n { x: 0.0000066629999999992804, y: 0.05218504220622441 },\r\n { x: 0.00000666399999999928, y: 0.06976560288814769 },\r\n { x: 0.00000666499999999928, y: 0.05667453203715078 },\r\n { x: 0.000006665999999999279, y: 0.026637864211289546 },\r\n { x: 0.000006666999999999279, y: 0.07519020661049906 },\r\n { x: 0.000006667999999999279, y: 0.03373591851412544 },\r\n { x: 0.000006668999999999278, y: 0.05871875329735457 },\r\n { x: 0.000006669999999999278, y: 0.05249226260424004 },\r\n { x: 0.000006670999999999278, y: 0.03008402386118704 },\r\n { x: 0.000006671999999999277, y: 0.023328607461390958 },\r\n { x: 0.000006672999999999277, y: 0.05052351388118914 },\r\n { x: 0.000006673999999999277, y: 0.08731694211060591 },\r\n { x: 0.000006674999999999276, y: 0.08250853749163618 },\r\n { x: 0.000006675999999999276, y: 0.02117759276123988 },\r\n { x: 0.0000066769999999992756, y: 0.010891706143290658 },\r\n { x: 0.000006677999999999275, y: 0.0743095804781936 },\r\n { x: 0.000006678999999999275, y: 0.03514161377413789 },\r\n { x: 0.0000066799999999992745, y: 0.04290460582264214 },\r\n { x: 0.000006680999999999274, y: 0.0813064144386495 },\r\n { x: 0.000006681999999999274, y: 0.034322107441752826 },\r\n { x: 0.0000066829999999992735, y: 0.02911906667974212 },\r\n { x: 0.000006683999999999273, y: 0.026817545285668366 },\r\n { x: 0.000006684999999999273, y: 0.07765401239167519 },\r\n { x: 0.000006685999999999272, y: 0.047932422257283294 },\r\n { x: 0.000006686999999999272, y: 0.046723730309280315 },\r\n { x: 0.000006687999999999272, y: 0.04308656863496711 },\r\n { x: 0.000006688999999999271, y: 0.05012884966660961 },\r\n { x: 0.000006689999999999271, y: 0.008701059997465281 },\r\n { x: 0.000006690999999999271, y: 0.06565977025752676 },\r\n { x: 0.00000669199999999927, y: 0.02701788291748621 },\r\n { x: 0.00000669299999999927, y: 0.01842089123992971 },\r\n { x: 0.00000669399999999927, y: 0.03175556372572317 },\r\n { x: 0.000006694999999999269, y: 0.013144581379584859 },\r\n { x: 0.000006695999999999269, y: 0.010171445506706185 },\r\n { x: 0.000006696999999999269, y: 0.030494140203653847 },\r\n { x: 0.000006697999999999268, y: 0.019168412713673515 },\r\n { x: 0.000006698999999999268, y: 0.0588775391951756 },\r\n { x: 0.0000066999999999992675, y: 0.03947080348248387 },\r\n { x: 0.000006700999999999267, y: 0.04550236618292305 },\r\n { x: 0.000006701999999999267, y: 0.07513724035404296 },\r\n { x: 0.0000067029999999992665, y: 0.03954867149756552 },\r\n { x: 0.000006703999999999266, y: 0.0783492925058698 },\r\n { x: 0.000006704999999999266, y: 0.06201981178776182 },\r\n { x: 0.0000067059999999992655, y: 0.04663040394064163 },\r\n { x: 0.000006706999999999265, y: 0.06349328099601786 },\r\n { x: 0.000006707999999999265, y: 0.026975515351521415 },\r\n { x: 0.000006708999999999264, y: 0.06090891113693787 },\r\n { x: 0.000006709999999999264, y: 0.049654131230544914 },\r\n { x: 0.000006710999999999264, y: 0.022851119502501172 },\r\n { x: 0.000006711999999999263, y: 0.02088492254177188 },\r\n { x: 0.000006712999999999263, y: 0.055585485915697765 },\r\n { x: 0.000006713999999999263, y: 0.025296312557243728 },\r\n { x: 0.000006714999999999262, y: 0.03849650518682331 },\r\n { x: 0.000006715999999999262, y: 0.0077917455698893814 },\r\n { x: 0.000006716999999999262, y: 0.07835032188240443 },\r\n { x: 0.000006717999999999261, y: 0.027770170367717714 },\r\n { x: 0.000006718999999999261, y: 0.06066201906908342 },\r\n { x: 0.0000067199999999992606, y: 0.030517901043739547 },\r\n { x: 0.00000672099999999926, y: 0.056499144242581636 },\r\n { x: 0.00000672199999999926, y: 0.064113522345825 },\r\n { x: 0.0000067229999999992595, y: 0.016975226568704843 },\r\n { x: 0.000006723999999999259, y: 0.07211764817401575 },\r\n { x: 0.000006724999999999259, y: 0.03542128610406134 },\r\n { x: 0.0000067259999999992585, y: 0.012672806144716445 },\r\n { x: 0.000006726999999999258, y: 0.01129136696600895 },\r\n { x: 0.000006727999999999258, y: 0.02398171387662073 },\r\n { x: 0.0000067289999999992574, y: 0.035609124528916826 },\r\n { x: 0.000006729999999999257, y: 0.049748607478066004 },\r\n { x: 0.000006730999999999257, y: 0.016746402290466342 },\r\n { x: 0.000006731999999999256, y: 0.011479534279205578 },\r\n { x: 0.000006732999999999256, y: 0.06833964599564195 },\r\n { x: 0.000006733999999999256, y: 0.05494567726464046 },\r\n { x: 0.000006734999999999255, y: 0.027107804797420584 },\r\n { x: 0.000006735999999999255, y: 0.03646251899572257 },\r\n { x: 0.000006736999999999255, y: 0.025826576927660015 },\r\n { x: 0.000006737999999999254, y: 0.06451111298584158 },\r\n { x: 0.000006738999999999254, y: 0.0016097036867522008 },\r\n { x: 0.000006739999999999254, y: 0.07428619653831985 },\r\n { x: 0.000006740999999999253, y: 0.043591844627497496 },\r\n { x: 0.000006741999999999253, y: 0.03311659009320734 },\r\n { x: 0.0000067429999999992526, y: 0.06941286838123303 },\r\n { x: 0.000006743999999999252, y: 0.03392516106371307 },\r\n { x: 0.000006744999999999252, y: 0.032212252713333514 },\r\n { x: 0.0000067459999999992515, y: 0.06048286137249939 },\r\n { x: 0.000006746999999999251, y: 0.010777915386479618 },\r\n { x: 0.000006747999999999251, y: 0.06048817324618828 },\r\n { x: 0.0000067489999999992505, y: 0.06444034242208135 },\r\n { x: 0.00000674999999999925, y: 0.053981213931349026 },\r\n { x: 0.00000675099999999925, y: 0.05437619773877322 },\r\n { x: 0.0000067519999999992494, y: 0.06943790084777152 },\r\n { x: 0.000006752999999999249, y: 0.06523570785869741 },\r\n { x: 0.000006753999999999249, y: 0.0133220440000663 },\r\n { x: 0.000006754999999999248, y: 0.0022867206273653046 },\r\n { x: 0.000006755999999999248, y: 0.015295601262259817 },\r\n { x: 0.000006756999999999248, y: 0.014171319254136991 },\r\n { x: 0.000006757999999999247, y: 0.005827967405664533 },\r\n { x: 0.000006758999999999247, y: 0.052880339457167774 },\r\n { x: 0.000006759999999999247, y: 0.027459893341925327 },\r\n { x: 0.000006760999999999246, y: 0.027603399153189975 },\r\n { x: 0.000006761999999999246, y: 0.05125553579388497 },\r\n { x: 0.000006762999999999246, y: 0.04532808889035408 },\r\n { x: 0.000006763999999999245, y: 0.07762862013776534 },\r\n { x: 0.000006764999999999245, y: 0.00812835295241934 },\r\n { x: 0.0000067659999999992445, y: 0.05787835389487288 },\r\n { x: 0.000006766999999999244, y: 0.00005722166221922009 },\r\n { x: 0.000006767999999999244, y: 0.03574146792469127 },\r\n { x: 0.0000067689999999992435, y: 0.058573616765871375 },\r\n { x: 0.000006769999999999243, y: 0.02063964154661787 },\r\n { x: 0.000006770999999999243, y: 0.05624710737827152 },\r\n { x: 0.0000067719999999992425, y: 0.05159716825480599 },\r\n { x: 0.000006772999999999242, y: 0.03527082636897392 },\r\n { x: 0.000006773999999999242, y: 0.06259912319640658 },\r\n { x: 0.000006774999999999241, y: 0.03705860307566 },\r\n { x: 0.000006775999999999241, y: 0.06881709437562457 },\r\n { x: 0.000006776999999999241, y: 0.05255449916882394 },\r\n { x: 0.00000677799999999924, y: 0.049091532761753105 },\r\n { x: 0.00000677899999999924, y: 0.04330094639307208 },\r\n { x: 0.00000677999999999924, y: 0.06329856296844617 },\r\n { x: 0.000006780999999999239, y: 0.001152704587675725 },\r\n { x: 0.000006781999999999239, y: 0.01904415833388447 },\r\n { x: 0.000006782999999999239, y: 0.0004905545842852493 },\r\n { x: 0.000006783999999999238, y: 0.04994034461880081 },\r\n { x: 0.000006784999999999238, y: 0.011881267974021198 },\r\n { x: 0.000006785999999999238, y: -0.008485315716305689 },\r\n { x: 0.000006786999999999237, y: 0.03067615093788759 },\r\n { x: 0.000006787999999999237, y: 0.00829903377531432 },\r\n { x: 0.0000067889999999992365, y: 0.020878114894186305 },\r\n { x: 0.000006789999999999236, y: 0.03629258179828464 },\r\n { x: 0.000006790999999999236, y: -0.0033046148873569423 },\r\n { x: 0.0000067919999999992355, y: 0.05868112879294476 },\r\n { x: 0.000006792999999999235, y: 0.04006335820190326 },\r\n { x: 0.000006793999999999235, y: 0.05359167612394408 },\r\n { x: 0.0000067949999999992344, y: 0.03498120097746516 },\r\n { x: 0.000006795999999999234, y: 0.0048175227620432665 },\r\n { x: 0.000006796999999999234, y: -0.009611204817788231 },\r\n { x: 0.000006797999999999233, y: 0.008375485433662025 },\r\n { x: 0.000006798999999999233, y: 0.013118077844478588 },\r\n { x: 0.000006799999999999233, y: 0.053712378873269635 },\r\n { x: 0.000006800999999999232, y: 0.045323314761307194 },\r\n { x: 0.000006801999999999232, y: 0.022183757170687584 },\r\n { x: 0.000006802999999999232, y: -0.012381966518908442 },\r\n { x: 0.000006803999999999231, y: -0.0073737137346684516 },\r\n { x: 0.000006804999999999231, y: 0.049181044028927486 },\r\n { x: 0.000006805999999999231, y: 0.03129782905087034 },\r\n { x: 0.00000680699999999923, y: 0.0055740927423358275 },\r\n { x: 0.00000680799999999923, y: 0.034889432069875215 },\r\n { x: 0.0000068089999999992296, y: 0.05039001750848164 },\r\n { x: 0.000006809999999999229, y: 0.041198502125301746 },\r\n { x: 0.000006810999999999229, y: 0.01309683310600402 },\r\n { x: 0.0000068119999999992285, y: 0.047670306391785586 },\r\n { x: 0.000006812999999999228, y: 0.04036914446450037 },\r\n { x: 0.000006813999999999228, y: -0.0012850359263709074 },\r\n { x: 0.0000068149999999992275, y: 0.0009164287934609223 },\r\n { x: 0.000006815999999999227, y: 0.05645263510938367 },\r\n { x: 0.000006816999999999227, y: -0.0009033625701156192 },\r\n { x: 0.0000068179999999992264, y: 0.031356032643932996 },\r\n { x: 0.000006818999999999226, y: 0.03782320792507227 },\r\n { x: 0.000006819999999999226, y: 0.020966300320222977 },\r\n { x: 0.000006820999999999225, y: 0.020916466123777667 },\r\n { x: 0.000006821999999999225, y: -0.0056639066626141335 },\r\n { x: 0.000006822999999999225, y: 0.011657813052464057 },\r\n { x: 0.000006823999999999224, y: -0.009349043463165646 },\r\n { x: 0.000006824999999999224, y: -0.0007331412969517337 },\r\n { x: 0.000006825999999999224, y: 0.046444624944658466 },\r\n { x: 0.000006826999999999223, y: -0.014992364429491659 },\r\n { x: 0.000006827999999999223, y: -0.007277063460616441 },\r\n { x: 0.000006828999999999223, y: 0.03175469110351299 },\r\n { x: 0.000006829999999999222, y: 0.046744922064786726 },\r\n { x: 0.000006830999999999222, y: 0.05391414619852801 },\r\n { x: 0.0000068319999999992216, y: -0.012277591135640635 },\r\n { x: 0.000006832999999999221, y: 0.029332863818688173 },\r\n { x: 0.000006833999999999221, y: 0.02491261382771222 },\r\n { x: 0.0000068349999999992205, y: 0.006701204104819418 },\r\n { x: 0.00000683599999999922, y: -0.014269809065501952 },\r\n { x: 0.00000683699999999922, y: 0.024280266586300007 },\r\n { x: 0.0000068379999999992195, y: 0.015706307285897954 },\r\n { x: 0.000006838999999999219, y: 0.034984544870718115 },\r\n { x: 0.000006839999999999219, y: -0.0031555500339514736 },\r\n { x: 0.000006840999999999218, y: -0.02140291116347397 },\r\n { x: 0.000006841999999999218, y: 0.02295995706224775 },\r\n { x: 0.000006842999999999218, y: -0.014317446017972153 },\r\n { x: 0.000006843999999999217, y: 0.008941496815885375 },\r\n { x: 0.000006844999999999217, y: 0.020875252280359604 },\r\n { x: 0.000006845999999999217, y: 0.041313360304384 },\r\n { x: 0.000006846999999999216, y: 0.019969348311015107 },\r\n { x: 0.000006847999999999216, y: -0.0053965250253359565 },\r\n { x: 0.000006848999999999216, y: 0.01865547170239039 },\r\n { x: 0.000006849999999999215, y: 0.03462019196760992 },\r\n { x: 0.000006850999999999215, y: 0.049897271984463275 },\r\n { x: 0.000006851999999999215, y: 0.031844757559880046 },\r\n { x: 0.000006852999999999214, y: 0.03180402989186906 },\r\n { x: 0.000006853999999999214, y: 0.0028756311844385114 },\r\n { x: 0.0000068549999999992135, y: 0.035501389587038294 },\r\n { x: 0.000006855999999999213, y: 0.016499132294274445 },\r\n { x: 0.000006856999999999213, y: -0.02068491826440337 },\r\n { x: 0.0000068579999999992125, y: 0.016411326028772794 },\r\n { x: 0.000006858999999999212, y: 0.019035276579471204 },\r\n { x: 0.000006859999999999212, y: 0.027749543969452596 },\r\n { x: 0.0000068609999999992115, y: 0.03295777707783322 },\r\n { x: 0.000006861999999999211, y: 0.03513657188159025 },\r\n { x: 0.000006862999999999211, y: 0.048866889875744175 },\r\n { x: 0.00000686399999999921, y: -0.006668855860339504 },\r\n { x: 0.00000686499999999921, y: 0.04290454999681993 },\r\n { x: 0.00000686599999999921, y: -0.01959733989371077 },\r\n { x: 0.000006866999999999209, y: -0.020779629473176475 },\r\n { x: 0.000006867999999999209, y: 0.023637894392031674 },\r\n { x: 0.000006868999999999209, y: 0.03385386724758168 },\r\n { x: 0.000006869999999999208, y: 0.010396663832189 },\r\n { x: 0.000006870999999999208, y: 0.037656001404793124 },\r\n { x: 0.000006871999999999208, y: -0.011383990017886049 },\r\n { x: 0.000006872999999999207, y: -0.01971684570146081 },\r\n { x: 0.000006873999999999207, y: -0.01314083213039054 },\r\n { x: 0.0000068749999999992066, y: -0.0008842984672737253 },\r\n { x: 0.000006875999999999206, y: 0.01757666764891804 },\r\n { x: 0.000006876999999999206, y: -0.018682286597387722 },\r\n { x: 0.0000068779999999992055, y: -0.011277780786669741 },\r\n { x: 0.000006878999999999205, y: 0.03216914217010632 },\r\n { x: 0.000006879999999999205, y: 0.03994438390095344 },\r\n { x: 0.0000068809999999992045, y: 0.04452788155445453 },\r\n { x: 0.000006881999999999204, y: -0.01799272016628918 },\r\n { x: 0.000006882999999999204, y: 0.030513261691829153 },\r\n { x: 0.0000068839999999992034, y: -0.02034891539588728 },\r\n { x: 0.000006884999999999203, y: 0.03531840848124036 },\r\n { x: 0.000006885999999999203, y: -0.004137995724610643 },\r\n { x: 0.000006886999999999202, y: 0.02202887871276676 },\r\n { x: 0.000006887999999999202, y: 0.01598934242188037 },\r\n { x: 0.000006888999999999202, y: 0.03172862931613933 },\r\n { x: 0.000006889999999999201, y: -0.029085677106199727 },\r\n { x: 0.000006890999999999201, y: 0.004708645564812092 },\r\n { x: 0.000006891999999999201, y: 0.012453629007816804 },\r\n { x: 0.0000068929999999992, y: -0.02209286997299418 },\r\n { x: 0.0000068939999999992, y: 0.0021766111396465046 },\r\n { x: 0.0000068949999999992, y: 0.011808136546249072 },\r\n { x: 0.000006895999999999199, y: -0.027012926706039622 },\r\n { x: 0.000006896999999999199, y: 0.03071777292079832 },\r\n { x: 0.0000068979999999991986, y: 0.023087913514500662 },\r\n { x: 0.000006898999999999198, y: -0.010069489902871155 },\r\n { x: 0.000006899999999999198, y: 0.016150732302542655 },\r\n { x: 0.0000069009999999991975, y: -0.006928486441639299 },\r\n { x: 0.000006901999999999197, y: -0.007955503778157211 },\r\n { x: 0.000006902999999999197, y: -0.006818961817095659 },\r\n { x: 0.0000069039999999991965, y: -0.017460829758268518 },\r\n { x: 0.000006904999999999196, y: -0.03641038756830142 },\r\n { x: 0.000006905999999999196, y: 0.02368185637868401 },\r\n { x: 0.0000069069999999991954, y: 0.017469355197813615 },\r\n { x: 0.000006907999999999195, y: -0.010539293853163356 },\r\n { x: 0.000006908999999999195, y: 0.00295929325578596 },\r\n { x: 0.000006909999999999194, y: 0.010077781168484744 },\r\n { x: 0.000006910999999999194, y: -0.02995143317271735 },\r\n { x: 0.000006911999999999194, y: 0.007371694424411116 },\r\n { x: 0.000006912999999999193, y: 0.01483058744880288 },\r\n { x: 0.000006913999999999193, y: 0.002321405457363832 },\r\n { x: 0.000006914999999999193, y: 0.028923444459524852 },\r\n { x: 0.000006915999999999192, y: -0.031668502376391156 },\r\n { x: 0.000006916999999999192, y: -0.038433238939403314 },\r\n { x: 0.000006917999999999192, y: -0.009257565061804562 },\r\n { x: 0.000006918999999999191, y: 0.029871206483255024 },\r\n { x: 0.000006919999999999191, y: -0.019732121328866543 },\r\n { x: 0.0000069209999999991905, y: -0.004832807325529261 },\r\n { x: 0.00000692199999999919, y: -0.011501015698792898 },\r\n { x: 0.00000692299999999919, y: 0.0005716606069124815 },\r\n { x: 0.0000069239999999991895, y: 0.012905974926458603 },\r\n { x: 0.000006924999999999189, y: 0.00963045083130953 },\r\n { x: 0.000006925999999999189, y: -0.01903203793215653 },\r\n { x: 0.0000069269999999991885, y: -0.00324002622675829 },\r\n { x: 0.000006927999999999188, y: -0.03421098551309031 },\r\n { x: 0.000006928999999999188, y: 0.012672705578906544 },\r\n { x: 0.000006929999999999187, y: -0.028807236568848905 },\r\n { x: 0.000006930999999999187, y: 0.025800673346582856 },\r\n { x: 0.000006931999999999187, y: 0.014925093901099501 },\r\n { x: 0.000006932999999999186, y: -0.036405981467012745 },\r\n { x: 0.000006933999999999186, y: 0.02613582272330009 },\r\n { x: 0.000006934999999999186, y: -0.00514057684847188 },\r\n { x: 0.000006935999999999185, y: 0.00762542438893467 },\r\n { x: 0.000006936999999999185, y: 0.02006078277101487 },\r\n { x: 0.000006937999999999185, y: 0.0030558495060399203 },\r\n { x: 0.000006938999999999184, y: -0.04183830656446721 },\r\n { x: 0.000006939999999999184, y: -0.041141143111973255 },\r\n { x: 0.000006940999999999184, y: 0.00923344413621506 },\r\n { x: 0.000006941999999999183, y: -0.042103722017635264 },\r\n { x: 0.000006942999999999183, y: -0.029739557187525353 },\r\n { x: 0.0000069439999999991825, y: 0.0035900269794085157 },\r\n { x: 0.000006944999999999182, y: 0.027688334942700357 },\r\n { x: 0.000006945999999999182, y: -0.022283724683294065 },\r\n { x: 0.0000069469999999991815, y: -0.012126441675281936 },\r\n { x: 0.000006947999999999181, y: 0.005805539729345693 },\r\n { x: 0.000006948999999999181, y: 0.018823056566876058 },\r\n { x: 0.0000069499999999991804, y: -0.028489276858616925 },\r\n { x: 0.00000695099999999918, y: -0.011037253980535369 },\r\n { x: 0.00000695199999999918, y: -0.033909825630598564 },\r\n { x: 0.000006952999999999179, y: 0.01025501287552421 },\r\n { x: 0.000006953999999999179, y: 0.026352610874657425 },\r\n { x: 0.000006954999999999179, y: -0.019756511086977083 },\r\n { x: 0.000006955999999999178, y: 0.020110696234778815 },\r\n { x: 0.000006956999999999178, y: -0.0161777898994257 },\r\n { x: 0.000006957999999999178, y: -0.0030566560948637545 },\r\n { x: 0.000006958999999999177, y: -0.028509888840408053 },\r\n { x: 0.000006959999999999177, y: -0.03369006679058259 },\r\n { x: 0.000006960999999999177, y: 0.022987502033360918 },\r\n { x: 0.000006961999999999176, y: -0.04388200418519528 },\r\n { x: 0.000006962999999999176, y: -0.04692694272467074 },\r\n { x: 0.0000069639999999991756, y: -0.04575858091312391 },\r\n { x: 0.000006964999999999175, y: -0.03987819675093809 },\r\n { x: 0.000006965999999999175, y: -0.006893041628724601 },\r\n { x: 0.0000069669999999991745, y: 0.01388871898043306 },\r\n { x: 0.000006967999999999174, y: -0.017156627123809262 },\r\n { x: 0.000006968999999999174, y: -0.015748393250597435 },\r\n { x: 0.0000069699999999991735, y: 0.003517438113924999 },\r\n { x: 0.000006970999999999173, y: 0.02567508840514402 },\r\n { x: 0.000006971999999999173, y: 0.006139298448128588 },\r\n { x: 0.0000069729999999991724, y: -0.021275732732150325 },\r\n { x: 0.000006973999999999172, y: -0.020466984014711084 },\r\n { x: 0.000006974999999999172, y: -0.04058978868653216 },\r\n { x: 0.000006975999999999171, y: -0.010730899510500103 },\r\n { x: 0.000006976999999999171, y: -0.01706371574852018 },\r\n { x: 0.000006977999999999171, y: 0.01821669313056408 },\r\n { x: 0.00000697899999999917, y: -0.04949738749354579 },\r\n { x: 0.00000697999999999917, y: -0.012688201628329843 },\r\n { x: 0.00000698099999999917, y: -0.035171143188626075 },\r\n { x: 0.000006981999999999169, y: -0.03566320032650792 },\r\n { x: 0.000006982999999999169, y: -0.03138093541169656 },\r\n { x: 0.000006983999999999169, y: 0.021408766536759223 },\r\n { x: 0.000006984999999999168, y: -0.04041440967309298 },\r\n { x: 0.000006985999999999168, y: -0.036794306877118 },\r\n { x: 0.0000069869999999991676, y: -0.048250300686051434 },\r\n { x: 0.000006987999999999167, y: 0.003083754793470332 },\r\n { x: 0.000006988999999999167, y: -0.010403872018696449 },\r\n { x: 0.0000069899999999991665, y: -0.021988155980480508 },\r\n { x: 0.000006990999999999166, y: 0.02167940743788266 },\r\n { x: 0.000006991999999999166, y: -0.017038882750054152 },\r\n { x: 0.0000069929999999991655, y: -0.0474108004866033 },\r\n { x: 0.000006993999999999165, y: 0.01740053179550391 },\r\n { x: 0.000006994999999999165, y: -0.03436640131679798 },\r\n { x: 0.000006995999999999164, y: 0.012792781268017358 },\r\n { x: 0.000006996999999999164, y: 0.013652428092638166 },\r\n { x: 0.000006997999999999164, y: -0.006365776499710256 },\r\n { x: 0.000006998999999999163, y: -0.03961267373351084 },\r\n { x: 0.000006999999999999163, y: -0.026601004989589616 },\r\n { x: 0.000007000999999999163, y: -0.05331467553135384 },\r\n { x: 0.000007001999999999162, y: -0.00743773531028512 },\r\n { x: 0.000007002999999999162, y: -0.04326924535873497 },\r\n { x: 0.000007003999999999162, y: 0.01391462328868744 },\r\n { x: 0.000007004999999999161, y: -0.0507862394791191 },\r\n { x: 0.000007005999999999161, y: -0.024548168799130948 },\r\n { x: 0.000007006999999999161, y: -0.003582853539372814 },\r\n { x: 0.00000700799999999916, y: -0.033513554757196765 },\r\n { x: 0.00000700899999999916, y: 0.008490602380985611 },\r\n { x: 0.0000070099999999991595, y: -0.03078461854497492 },\r\n { x: 0.000007010999999999159, y: 0.009916014085502245 },\r\n { x: 0.000007011999999999159, y: -0.03635278648527554 },\r\n { x: 0.0000070129999999991585, y: 0.008824236028896391 },\r\n { x: 0.000007013999999999158, y: 0.015460015616078356 },\r\n { x: 0.000007014999999999158, y: -0.05721065163322382 },\r\n { x: 0.0000070159999999991575, y: -0.0581606085246787 },\r\n { x: 0.000007016999999999157, y: 0.015480725547237024 },\r\n { x: 0.000007017999999999157, y: -0.04367203050670106 },\r\n { x: 0.000007018999999999156, y: 0.015902553263801734 },\r\n { x: 0.000007019999999999156, y: -0.045251731760343306 },\r\n { x: 0.000007020999999999156, y: -0.04234792113249486 },\r\n { x: 0.000007021999999999155, y: -0.03276867308801413 },\r\n { x: 0.000007022999999999155, y: -0.0254477933235239 },\r\n { x: 0.000007023999999999155, y: 0.008045648621476009 },\r\n { x: 0.000007024999999999154, y: -0.03611514829304199 },\r\n { x: 0.000007025999999999154, y: 0.011123840360883357 },\r\n { x: 0.000007026999999999154, y: -0.0006320132312783548 },\r\n { x: 0.000007027999999999153, y: -0.0002468823939073897 },\r\n { x: 0.000007028999999999153, y: -0.051312682441643984 },\r\n { x: 0.0000070299999999991526, y: 0.008575796762223444 },\r\n { x: 0.000007030999999999152, y: -0.04342383260015169 },\r\n { x: 0.000007031999999999152, y: -0.05809120125806678 },\r\n { x: 0.0000070329999999991515, y: 0.014682252269211642 },\r\n { x: 0.000007033999999999151, y: -0.020987747252629464 },\r\n { x: 0.000007034999999999151, y: -0.04552237951952589 },\r\n { x: 0.0000070359999999991505, y: -0.015689050435634455 },\r\n { x: 0.00000703699999999915, y: -0.02332516952738477 },\r\n { x: 0.00000703799999999915, y: -0.04345470590702909 },\r\n { x: 0.0000070389999999991494, y: 0.006974110658986815 },\r\n { x: 0.000007039999999999149, y: -0.002917784488151682 },\r\n { x: 0.000007040999999999149, y: -0.00009766176657031653 },\r\n { x: 0.000007041999999999148, y: -0.026212820767765852 },\r\n { x: 0.000007042999999999148, y: -0.012395035174435359 },\r\n { x: 0.000007043999999999148, y: -0.007238657858546889 },\r\n { x: 0.000007044999999999147, y: -0.018952000814731543 },\r\n { x: 0.000007045999999999147, y: -0.04822182088275705 },\r\n { x: 0.000007046999999999147, y: -0.04202621662980888 },\r\n { x: 0.000007047999999999146, y: -0.01656090514022061 },\r\n { x: 0.000007048999999999146, y: -0.06223769142156059 },\r\n { x: 0.000007049999999999146, y: 0.003475351263724457 },\r\n { x: 0.000007050999999999145, y: 0.002682878671534158 },\r\n { x: 0.000007051999999999145, y: -0.022352319203935156 },\r\n { x: 0.0000070529999999991446, y: -0.005865090743829588 },\r\n { x: 0.000007053999999999144, y: -0.026633564725836983 },\r\n { x: 0.000007054999999999144, y: -0.008315049372085513 },\r\n { x: 0.0000070559999999991435, y: 0.005340325522275594 },\r\n { x: 0.000007056999999999143, y: -0.03998123865577514 },\r\n { x: 0.000007057999999999143, y: -0.005556294352026227 },\r\n { x: 0.0000070589999999991425, y: -0.06104015975040558 },\r\n { x: 0.000007059999999999142, y: -0.04612807057618702 },\r\n { x: 0.000007060999999999142, y: -0.0012367990699482835 },\r\n { x: 0.0000070619999999991414, y: -0.020644598860761858 },\r\n { x: 0.000007062999999999141, y: -0.004526865444441603 },\r\n { x: 0.000007063999999999141, y: -0.003698581528721566 },\r\n { x: 0.00000706499999999914, y: -0.031047049772955818 },\r\n { x: 0.00000706599999999914, y: -0.035238982208296014 },\r\n { x: 0.00000706699999999914, y: -0.06007360010738125 },\r\n { x: 0.000007067999999999139, y: -0.05202383585836602 },\r\n { x: 0.000007068999999999139, y: -0.04534992759129865 },\r\n { x: 0.000007069999999999139, y: -0.04849272979750008 },\r\n { x: 0.000007070999999999138, y: -0.024449786783531362 },\r\n { x: 0.000007071999999999138, y: -0.0004632707085340283 },\r\n { x: 0.000007072999999999138, y: -0.005181876436927493 },\r\n { x: 0.000007073999999999137, y: -0.0670718476719244 },\r\n { x: 0.000007074999999999137, y: -0.05369220933872514 },\r\n { x: 0.0000070759999999991365, y: -0.013634828137791391 },\r\n { x: 0.000007076999999999136, y: -0.01348176225979391 },\r\n { x: 0.000007077999999999136, y: -0.06319996109691448 },\r\n { x: 0.0000070789999999991355, y: -0.02446413821773794 },\r\n { x: 0.000007079999999999135, y: -0.005965339827361055 },\r\n { x: 0.000007080999999999135, y: -0.018989862158202003 },\r\n { x: 0.0000070819999999991345, y: -0.05442680830631971 },\r\n { x: 0.000007082999999999134, y: -0.06351503748726114 },\r\n { x: 0.000007083999999999134, y: -0.0008492969133060795 },\r\n { x: 0.000007084999999999133, y: -0.06286760551505376 },\r\n { x: 0.000007085999999999133, y: -0.007980046828568493 },\r\n { x: 0.000007086999999999133, y: 0.003753466491430959 },\r\n { x: 0.000007087999999999132, y: -0.039103338809619435 },\r\n { x: 0.000007088999999999132, y: -0.0061880276770066925 },\r\n { x: 0.000007089999999999132, y: -0.024130627517706435 },\r\n { x: 0.000007090999999999131, y: -0.04958449519697073 },\r\n { x: 0.000007091999999999131, y: -0.06581330731676943 },\r\n { x: 0.000007092999999999131, y: -0.047475020765145357 },\r\n { x: 0.00000709399999999913, y: -0.0007349720283453785 },\r\n { x: 0.00000709499999999913, y: -0.04724638444497802 },\r\n { x: 0.00000709599999999913, y: -0.04061571332667874 },\r\n { x: 0.000007096999999999129, y: -0.032919381520749705 },\r\n { x: 0.000007097999999999129, y: -0.0004117683948429707 },\r\n { x: 0.0000070989999999991285, y: -0.02079315428139198 },\r\n { x: 0.000007099999999999128, y: -0.02075116389355871 },\r\n { x: 0.000007100999999999128, y: -0.013136611756866992 },\r\n { x: 0.0000071019999999991275, y: -0.016338004061063442 },\r\n { x: 0.000007102999999999127, y: -0.01598244384653738 },\r\n { x: 0.000007103999999999127, y: -0.06845888179046361 },\r\n { x: 0.0000071049999999991264, y: -0.01067028796133242 },\r\n { x: 0.000007105999999999126, y: 0.0048124545855526835 },\r\n { x: 0.000007106999999999126, y: -0.0008056857815244498 },\r\n { x: 0.000007107999999999125, y: 0.0015245366431565627 },\r\n { x: 0.000007108999999999125, y: -0.05843290603192919 },\r\n { x: 0.000007109999999999125, y: -0.03539143001123522 },\r\n { x: 0.000007110999999999124, y: -0.05101381369120115 },\r\n { x: 0.000007111999999999124, y: -0.04115810576041735 },\r\n { x: 0.000007112999999999124, y: -0.036330746454371385 },\r\n { x: 0.000007113999999999123, y: -0.0005477097989779259 },\r\n { x: 0.000007114999999999123, y: -0.026664565526610444 },\r\n { x: 0.000007115999999999123, y: -0.00018663579523094803 },\r\n { x: 0.000007116999999999122, y: -0.03671092664619317 },\r\n { x: 0.000007117999999999122, y: -0.0319224329250281 },\r\n { x: 0.0000071189999999991216, y: -0.05886167992186232 },\r\n { x: 0.000007119999999999121, y: 0.004120090479981867 },\r\n { x: 0.000007120999999999121, y: -0.04349386451359364 },\r\n { x: 0.0000071219999999991205, y: -0.0482379118937285 },\r\n { x: 0.00000712299999999912, y: -0.054413065032110214 },\r\n { x: 0.00000712399999999912, y: -0.06600582202729796 },\r\n { x: 0.0000071249999999991195, y: 0.000005398710760377845 },\r\n { x: 0.000007125999999999119, y: -0.01866201603489335 },\r\n { x: 0.000007126999999999119, y: -0.06508150005568639 },\r\n { x: 0.0000071279999999991184, y: -0.003489956014452466 },\r\n { x: 0.000007128999999999118, y: -0.022338664893217865 },\r\n { x: 0.000007129999999999118, y: -0.020587703309191095 },\r\n { x: 0.000007130999999999117, y: -0.016449690572163563 },\r\n { x: 0.000007131999999999117, y: -0.0713999553989835 },\r\n { x: 0.000007132999999999117, y: -0.008067742088819795 },\r\n { x: 0.000007133999999999116, y: -0.020750318151229942 },\r\n { x: 0.000007134999999999116, y: -0.02039084411859176 },\r\n { x: 0.000007135999999999116, y: 0.0011776394305581667 },\r\n { x: 0.000007136999999999115, y: -0.0005213731933800467 },\r\n { x: 0.000007137999999999115, y: -0.05257128758284135 },\r\n { x: 0.000007138999999999115, y: -0.031156320384517707 },\r\n { x: 0.000007139999999999114, y: -0.02279308828177954 },\r\n { x: 0.000007140999999999114, y: -0.06497222071233287 },\r\n { x: 0.0000071419999999991136, y: -0.016090193747867132 },\r\n { x: 0.000007142999999999113, y: -0.04957522545152335 },\r\n { x: 0.000007143999999999113, y: -0.06864915927040602 },\r\n { x: 0.0000071449999999991125, y: -0.05730300950379588 },\r\n { x: 0.000007145999999999112, y: -0.02145938891639651 },\r\n { x: 0.000007146999999999112, y: -0.059612543116384906 },\r\n { x: 0.0000071479999999991115, y: -0.04070761618414434 },\r\n { x: 0.000007148999999999111, y: -0.01582253325543915 },\r\n { x: 0.000007149999999999111, y: -0.004371868851906813 },\r\n { x: 0.00000715099999999911, y: -0.06897563483764135 },\r\n { x: 0.00000715199999999911, y: -0.010558383269704319 },\r\n { x: 0.00000715299999999911, y: -0.0017674460819464208 },\r\n { x: 0.000007153999999999109, y: -0.06818276419514893 },\r\n { x: 0.000007154999999999109, y: -0.04002506992522192 },\r\n { x: 0.000007155999999999109, y: -0.039106384803784394 },\r\n { x: 0.000007156999999999108, y: -0.007594511850956852 },\r\n { x: 0.000007157999999999108, y: -0.06152931848827739 },\r\n { x: 0.000007158999999999108, y: -0.033681951616014144 },\r\n { x: 0.000007159999999999107, y: -0.026679633263420037 },\r\n { x: 0.000007160999999999107, y: 0.0006899107037052835 },\r\n { x: 0.000007161999999999107, y: -0.05656240602732718 },\r\n { x: 0.000007162999999999106, y: -0.020311141032968126 },\r\n { x: 0.000007163999999999106, y: -0.06515701791028679 },\r\n { x: 0.0000071649999999991055, y: -0.06895090451275362 },\r\n { x: 0.000007165999999999105, y: -0.008225593243135251 },\r\n { x: 0.000007166999999999105, y: -0.04940683091425982 },\r\n { x: 0.0000071679999999991045, y: 0.00232082557761798 },\r\n { x: 0.000007168999999999104, y: -0.0167566290260804 },\r\n { x: 0.000007169999999999104, y: -0.042409612443961624 },\r\n { x: 0.0000071709999999991035, y: -0.02622725008868715 },\r\n { x: 0.000007171999999999103, y: -0.023300979202358768 },\r\n { x: 0.000007172999999999103, y: -0.09816182033976302 },\r\n { x: 0.000007173999999999102, y: -0.027475975863319922 },\r\n { x: 0.000007174999999999102, y: -0.03201053708214151 },\r\n { x: 0.000007175999999999102, y: -0.007706043901475865 },\r\n { x: 0.000007176999999999101, y: -0.0731218120830089 },\r\n { x: 0.000007177999999999101, y: -0.07047043120395764 },\r\n { x: 0.000007178999999999101, y: -0.033543289799699894 },\r\n { x: 0.0000071799999999991, y: -0.03510544263893476 },\r\n { x: 0.0000071809999999991, y: -0.02598009951775661 },\r\n { x: 0.0000071819999999991, y: -0.05102729003417077 },\r\n { x: 0.000007182999999999099, y: -0.044220943177232484 },\r\n { x: 0.000007183999999999099, y: -0.05608530245906142 },\r\n { x: 0.0000071849999999990986, y: -0.006271533660653368 },\r\n { x: 0.000007185999999999098, y: -0.0005663094924309026 },\r\n { x: 0.000007186999999999098, y: -0.06745914451921917 },\r\n { x: 0.0000071879999999990975, y: 0.0018569311639203834 },\r\n { x: 0.000007188999999999097, y: 0.0018676048788437635 },\r\n { x: 0.000007189999999999097, y: -0.04559015904010526 },\r\n { x: 0.0000071909999999990965, y: -0.03831717386090104 },\r\n { x: 0.000007191999999999096, y: -0.07439777170060198 },\r\n { x: 0.000007192999999999096, y: -0.07043170288755213 },\r\n { x: 0.0000071939999999990954, y: -0.020558330935663182 },\r\n { x: 0.000007194999999999095, y: -0.03276958674214455 },\r\n { x: 0.000007195999999999095, y: -0.02030959632325691 },\r\n { x: 0.000007196999999999094, y: -0.03325692451992346 },\r\n { x: 0.000007197999999999094, y: -0.042061285644463 },\r\n { x: 0.000007198999999999094, y: -0.031217592884798574 },\r\n { x: 0.000007199999999999093, y: -0.052204385426676436 },\r\n { x: 0.000007200999999999093, y: -0.0731764336236671 },\r\n { x: 0.000007201999999999093, y: -0.04149670855601463 },\r\n { x: 0.000007202999999999092, y: -0.0647439686156653 },\r\n { x: 0.000007203999999999092, y: -0.021486267114066357 },\r\n { x: 0.000007204999999999092, y: -0.005138481425835291 },\r\n { x: 0.000007205999999999091, y: -0.07451304230237313 },\r\n { x: 0.000007206999999999091, y: -0.05497628421212668 },\r\n { x: 0.0000072079999999990906, y: -0.06433615995335952 },\r\n { x: 0.00000720899999999909, y: -0.030051444442295006 },\r\n { x: 0.00000720999999999909, y: -0.02287516496665612 },\r\n { x: 0.0000072109999999990895, y: -0.05527471299391242 },\r\n { x: 0.000007211999999999089, y: -0.0366822414755828 },\r\n { x: 0.000007212999999999089, y: -0.04629813516151624 },\r\n { x: 0.0000072139999999990885, y: -0.009873429374591972 },\r\n { x: 0.000007214999999999088, y: -0.05457364529072396 },\r\n { x: 0.000007215999999999088, y: -0.016324495543521216 },\r\n { x: 0.0000072169999999990874, y: -0.06788498424263945 },\r\n { x: 0.000007217999999999087, y: -0.04643206316024974 },\r\n { x: 0.000007218999999999087, y: -0.06839873383240357 },\r\n { x: 0.000007219999999999086, y: -0.044482676049630604 },\r\n { x: 0.000007220999999999086, y: -0.066599897522264 },\r\n { x: 0.000007221999999999086, y: -0.012602660575704364 },\r\n { x: 0.000007222999999999085, y: -0.01312911098588481 },\r\n { x: 0.000007223999999999085, y: -0.009756126175816025 },\r\n { x: 0.000007224999999999085, y: -0.019572539830613796 },\r\n { x: 0.000007225999999999084, y: -0.017282169356180477 },\r\n { x: 0.000007226999999999084, y: -0.05588622149709671 },\r\n { x: 0.000007227999999999084, y: -0.0319181223917204 },\r\n { x: 0.000007228999999999083, y: -0.02873308463785337 },\r\n { x: 0.000007229999999999083, y: -0.04711328623568554 },\r\n { x: 0.0000072309999999990825, y: -0.034514236708122946 },\r\n { x: 0.000007231999999999082, y: -0.0678602111585716 },\r\n { x: 0.000007232999999999082, y: -0.060309198680223185 },\r\n { x: 0.0000072339999999990815, y: -0.0011700067384117219 },\r\n { x: 0.000007234999999999081, y: -0.06157080325261845 },\r\n { x: 0.000007235999999999081, y: -0.035527707279226745 },\r\n { x: 0.0000072369999999990805, y: -0.04683480991382962 },\r\n { x: 0.00000723799999999908, y: -0.022069116434881842 },\r\n { x: 0.00000723899999999908, y: -0.048646766565729964 },\r\n { x: 0.000007239999999999079, y: -0.05017602241187144 },\r\n { x: 0.000007240999999999079, y: -0.007619300236317621 },\r\n { x: 0.000007241999999999079, y: -0.036026666114461765 },\r\n { x: 0.000007242999999999078, y: -0.007503725707290718 },\r\n { x: 0.000007243999999999078, y: -0.040453078589375434 },\r\n { x: 0.000007244999999999078, y: -0.04965943853564071 },\r\n { x: 0.000007245999999999077, y: -0.05183180374131115 },\r\n { x: 0.000007246999999999077, y: -0.0013592820216727572 },\r\n { x: 0.000007247999999999077, y: -0.04875086525302139 },\r\n { x: 0.000007248999999999076, y: -0.054776594121131436 },\r\n { x: 0.000007249999999999076, y: -0.001119077322421301 },\r\n { x: 0.000007250999999999076, y: -0.04946315121607191 },\r\n { x: 0.000007251999999999075, y: -0.046932301214086966 },\r\n { x: 0.000007252999999999075, y: -0.01844339432076955 },\r\n { x: 0.0000072539999999990745, y: -0.036046597201360865 },\r\n { x: 0.000007254999999999074, y: -0.06902305264522451 },\r\n { x: 0.000007255999999999074, y: -0.026575641423870998 },\r\n { x: 0.0000072569999999990735, y: -0.03599532803250995 },\r\n { x: 0.000007257999999999073, y: -0.013591971390709872 },\r\n { x: 0.000007258999999999073, y: -0.06557800945540092 },\r\n { x: 0.0000072599999999990724, y: -0.023609748791354426 },\r\n { x: 0.000007260999999999072, y: -0.02942454342789766 },\r\n { x: 0.000007261999999999072, y: -0.01285937942318674 },\r\n { x: 0.000007262999999999071, y: -0.030046031692851798 },\r\n { x: 0.000007263999999999071, y: -0.06377838719377696 },\r\n { x: 0.000007264999999999071, y: -0.07008301761452412 },\r\n { x: 0.00000726599999999907, y: -0.07184571001308271 },\r\n { x: 0.00000726699999999907, y: -0.00040319922835850563 },\r\n { x: 0.00000726799999999907, y: -0.06152685383348469 },\r\n { x: 0.000007268999999999069, y: -0.010046148492922131 },\r\n { x: 0.000007269999999999069, y: -0.020702638895373417 },\r\n { x: 0.000007270999999999069, y: -0.06781904873621691 },\r\n { x: 0.000007271999999999068, y: -0.028856109284528152 },\r\n { x: 0.000007272999999999068, y: 0.020051532148233048 },\r\n { x: 0.0000072739999999990676, y: -0.03294089443315309 },\r\n { x: 0.000007274999999999067, y: -0.06823420159741694 },\r\n { x: 0.000007275999999999067, y: -0.04715872046977922 },\r\n { x: 0.0000072769999999990665, y: -0.06182693551878753 },\r\n { x: 0.000007277999999999066, y: -0.02654279892887053 },\r\n { x: 0.000007278999999999066, y: -0.06450231029418176 },\r\n { x: 0.0000072799999999990655, y: 0.00018730673619885702 },\r\n { x: 0.000007280999999999065, y: 0.004437491259555969 },\r\n { x: 0.000007281999999999065, y: -0.033379181773633845 },\r\n { x: 0.0000072829999999990644, y: -0.00811025074228109 },\r\n { x: 0.000007283999999999064, y: -0.01932299440413382 },\r\n { x: 0.000007284999999999064, y: -0.062476493711495454 },\r\n { x: 0.000007285999999999063, y: -0.05633967496859482 },\r\n { x: 0.000007286999999999063, y: -0.05095558460029348 },\r\n { x: 0.000007287999999999063, y: -0.06169270358277662 },\r\n { x: 0.000007288999999999062, y: 0.004214057487375293 },\r\n { x: 0.000007289999999999062, y: -0.0314403193856731 },\r\n { x: 0.000007290999999999062, y: -0.04223928826216301 },\r\n { x: 0.000007291999999999061, y: -0.05218579916662878 },\r\n { x: 0.000007292999999999061, y: -0.06512995352023862 },\r\n { x: 0.000007293999999999061, y: -0.019280289348598385 },\r\n { x: 0.00000729499999999906, y: -0.010529166464689457 },\r\n { x: 0.00000729599999999906, y: -0.054191793012279596 },\r\n { x: 0.0000072969999999990596, y: 0.00341447104670501 },\r\n { x: 0.000007297999999999059, y: -0.061300984046850165 },\r\n { x: 0.000007298999999999059, y: -0.04801915952008483 },\r\n { x: 0.0000072999999999990585, y: -0.06163207442390853 },\r\n { x: 0.000007300999999999058, y: -0.026517169751005168 },\r\n { x: 0.000007301999999999058, y: -0.06827283557175418 },\r\n { x: 0.0000073029999999990575, y: -0.04333225738387995 },\r\n { x: 0.000007303999999999057, y: -0.019014867900510497 },\r\n { x: 0.000007304999999999057, y: -0.042787800777474995 },\r\n { x: 0.000007305999999999056, y: -0.05732084602202324 },\r\n { x: 0.000007306999999999056, y: -0.04722413410779244 },\r\n { x: 0.000007307999999999056, y: -0.05331884910020737 },\r\n { x: 0.000007308999999999055, y: -0.05369028352225893 },\r\n { x: 0.000007309999999999055, y: -0.014000733323174832 },\r\n { x: 0.000007310999999999055, y: -0.05651339213965757 },\r\n { x: 0.000007311999999999054, y: -0.05021771504216399 },\r\n { x: 0.000007312999999999054, y: -0.0674576824298019 },\r\n { x: 0.000007313999999999054, y: -0.00488150647327024 },\r\n { x: 0.000007314999999999053, y: -0.010434417514471415 },\r\n { x: 0.000007315999999999053, y: -0.0455467163632845 },\r\n { x: 0.000007316999999999053, y: -0.031997417874886316 },\r\n { x: 0.000007317999999999052, y: -0.002358351795812879 },\r\n { x: 0.000007318999999999052, y: -0.032794687231140894 },\r\n { x: 0.0000073199999999990515, y: 0.00498036922848083 },\r\n { x: 0.000007320999999999051, y: -0.059205743811512376 },\r\n { x: 0.000007321999999999051, y: 0.0031731552685313295 },\r\n { x: 0.0000073229999999990505, y: -0.06553022081679348 },\r\n { x: 0.00000732399999999905, y: -0.02630821224675649 },\r\n { x: 0.00000732499999999905, y: -0.06534531492579687 },\r\n { x: 0.0000073259999999990495, y: -0.06667356340977203 },\r\n { x: 0.000007326999999999049, y: -0.021080033149824675 },\r\n { x: 0.000007327999999999049, y: -0.021370518108956724 },\r\n { x: 0.000007328999999999048, y: -0.04579013271796882 },\r\n { x: 0.000007329999999999048, y: -0.01963070941772526 },\r\n { x: 0.000007330999999999048, y: -0.0017769243910953011 },\r\n { x: 0.000007331999999999047, y: -0.006390163308243206 },\r\n { x: 0.000007332999999999047, y: -0.014104190811848735 },\r\n { x: 0.000007333999999999047, y: -0.06104934852093748 },\r\n { x: 0.000007334999999999046, y: -0.024981775233572343 },\r\n { x: 0.000007335999999999046, y: -0.046500948214187154 },\r\n { x: 0.000007336999999999046, y: -0.038717687467909725 },\r\n { x: 0.000007337999999999045, y: -0.0062598823117806755 },\r\n { x: 0.000007338999999999045, y: -0.057163411645864054 },\r\n { x: 0.0000073399999999990446, y: -0.02316902345009852 },\r\n { x: 0.000007340999999999044, y: -0.03535388430589754 },\r\n { x: 0.000007341999999999044, y: -0.033194787939132483 },\r\n { x: 0.0000073429999999990435, y: -0.019869171345822282 },\r\n { x: 0.000007343999999999043, y: -0.017360930959795434 },\r\n { x: 0.000007344999999999043, y: -0.024607250401901627 },\r\n { x: 0.0000073459999999990425, y: -0.06327128041740664 },\r\n { x: 0.000007346999999999042, y: -0.06417892246293419 },\r\n { x: 0.000007347999999999042, y: -0.01785455424974962 },\r\n { x: 0.0000073489999999990414, y: 0.0030668403248644387 },\r\n { x: 0.000007349999999999041, y: -0.0032439513025625463 },\r\n { x: 0.000007350999999999041, y: -0.02058964230128615 },\r\n { x: 0.00000735199999999904, y: 0.0019649579833306598 },\r\n { x: 0.00000735299999999904, y: 0.0006424734532389405 },\r\n { x: 0.00000735399999999904, y: -0.042439142652943754 },\r\n { x: 0.000007354999999999039, y: -0.04806973094324732 },\r\n { x: 0.000007355999999999039, y: -0.03358593840910293 },\r\n { x: 0.000007356999999999039, y: -0.054136250512298936 },\r\n { x: 0.000007357999999999038, y: 0.002383695138218317 },\r\n { x: 0.000007358999999999038, y: -0.04287475697673759 },\r\n { x: 0.000007359999999999038, y: -0.016259981813938087 },\r\n { x: 0.000007360999999999037, y: 0.0024011171539192362 },\r\n { x: 0.000007361999999999037, y: -0.05720901087074616 },\r\n { x: 0.0000073629999999990366, y: 0.009931332279144355 },\r\n { x: 0.000007363999999999036, y: -0.001562856473653583 },\r\n { x: 0.000007364999999999036, y: -0.05241085908556514 },\r\n { x: 0.0000073659999999990355, y: -0.005895993464573628 },\r\n { x: 0.000007366999999999035, y: 0.01271480067304305 },\r\n { x: 0.000007367999999999035, y: -0.06059263713890752 },\r\n { x: 0.0000073689999999990345, y: -0.060055463644846256 },\r\n { x: 0.000007369999999999034, y: -0.02800740671090325 },\r\n { x: 0.000007370999999999034, y: -0.04924317423133233 },\r\n { x: 0.0000073719999999990334, y: -0.0617881403186811 },\r\n { x: 0.000007372999999999033, y: -0.0443199504506797 },\r\n { x: 0.000007373999999999033, y: 0.014030723300833811 },\r\n { x: 0.000007374999999999032, y: -0.05508856199787092 },\r\n { x: 0.000007375999999999032, y: 0.012688963124687445 },\r\n { x: 0.000007376999999999032, y: 0.004616942799878093 },\r\n { x: 0.000007377999999999031, y: -0.04175586614978387 },\r\n { x: 0.000007378999999999031, y: -0.013834914322985777 },\r\n { x: 0.000007379999999999031, y: -0.017223789589072433 },\r\n { x: 0.00000738099999999903, y: -0.009704489953258516 },\r\n { x: 0.00000738199999999903, y: -0.045797037612904434 },\r\n { x: 0.00000738299999999903, y: 0.004374736647417558 },\r\n { x: 0.000007383999999999029, y: 0.002699311262830021 },\r\n { x: 0.000007384999999999029, y: -0.011401949068785184 },\r\n { x: 0.0000073859999999990285, y: 0.011576793847585733 },\r\n { x: 0.000007386999999999028, y: 0.006822848264636281 },\r\n { x: 0.000007387999999999028, y: -0.04901639045102549 },\r\n { x: 0.0000073889999999990275, y: -0.006432331565351215 },\r\n { x: 0.000007389999999999027, y: -0.02934371453295898 },\r\n { x: 0.000007390999999999027, y: -0.018211033723946536 },\r\n { x: 0.0000073919999999990265, y: -0.026498710569875662 },\r\n { x: 0.000007392999999999026, y: -0.009706340944602156 },\r\n { x: 0.000007393999999999026, y: -0.014460503528586695 },\r\n { x: 0.000007394999999999025, y: -0.030389165750515854 },\r\n { x: 0.000007395999999999025, y: -0.04356653462251102 },\r\n { x: 0.000007396999999999025, y: 0.003292043599791135 },\r\n { x: 0.000007397999999999024, y: 0.016438158410479933 },\r\n { x: 0.000007398999999999024, y: -0.05687362787878322 },\r\n { x: 0.000007399999999999024, y: -0.0380985931069639 },\r\n { x: 0.000007400999999999023, y: 0.013965210059873664 },\r\n { x: 0.000007401999999999023, y: -0.03106620633414059 },\r\n { x: 0.000007402999999999023, y: -0.010542402449718116 },\r\n { x: 0.000007403999999999022, y: 0.014110691609459422 },\r\n { x: 0.000007404999999999022, y: -0.037852784459650075 },\r\n { x: 0.000007405999999999022, y: -0.023544119725373496 },\r\n { x: 0.000007406999999999021, y: 0.011490737773633197 },\r\n { x: 0.000007407999999999021, y: -0.014383899648944572 },\r\n { x: 0.0000074089999999990205, y: 0.010805690528233148 },\r\n { x: 0.00000740999999999902, y: 0.002869263427525283 },\r\n { x: 0.00000741099999999902, y: -0.018796968702294914 },\r\n { x: 0.0000074119999999990195, y: -0.05238256396814518 },\r\n { x: 0.000007412999999999019, y: -0.024113942804738442 },\r\n { x: 0.000007413999999999019, y: -0.03711348939954087 },\r\n { x: 0.0000074149999999990184, y: -0.03513189885138193 },\r\n { x: 0.000007415999999999018, y: -0.03094726632534426 },\r\n { x: 0.000007416999999999018, y: -0.046917484989736274 },\r\n { x: 0.000007417999999999017, y: -0.012055521211049618 },\r\n { x: 0.000007418999999999017, y: -0.005974042629585613 },\r\n { x: 0.000007419999999999017, y: -0.020695969397863254 },\r\n { x: 0.000007420999999999016, y: 0.0038074726994657554 },\r\n { x: 0.000007421999999999016, y: -0.009692356250001088 },\r\n { x: 0.000007422999999999016, y: 0.0032112933339301514 },\r\n { x: 0.000007423999999999015, y: -0.030543868427856828 },\r\n { x: 0.000007424999999999015, y: -0.033905980881533376 },\r\n { x: 0.000007425999999999015, y: 0.0028753468623225267 },\r\n { x: 0.000007426999999999014, y: -0.0032526842934471854 },\r\n { x: 0.000007427999999999014, y: -0.00251685038520184 },\r\n { x: 0.0000074289999999990136, y: -0.051886343585057254 },\r\n { x: 0.000007429999999999013, y: -0.02242221624925851 },\r\n { x: 0.000007430999999999013, y: 0.014810252834930239 },\r\n { x: 0.0000074319999999990125, y: -0.012795042673153354 },\r\n { x: 0.000007432999999999012, y: -0.034156727851912524 },\r\n { x: 0.000007433999999999012, y: 0.015542784896558103 },\r\n { x: 0.0000074349999999990115, y: 0.007799663182830971 },\r\n { x: 0.000007435999999999011, y: -0.027506886852384713 },\r\n { x: 0.000007436999999999011, y: -0.026278178011856765 },\r\n { x: 0.0000074379999999990104, y: -0.05327981105840306 },\r\n { x: 0.00000743899999999901, y: -0.009614204591109076 },\r\n { x: 0.00000743999999999901, y: -0.04685461688986286 },\r\n { x: 0.000007440999999999009, y: -0.04613772016630074 },\r\n { x: 0.000007441999999999009, y: -0.023813484103610606 },\r\n { x: 0.000007442999999999009, y: 0.019503401323730424 },\r\n { x: 0.000007443999999999008, y: -0.016178943271441756 },\r\n { x: 0.000007444999999999008, y: -0.04221617451891515 },\r\n { x: 0.000007445999999999008, y: -0.008322244472053857 },\r\n { x: 0.000007446999999999007, y: -0.016784004675501486 },\r\n { x: 0.000007447999999999007, y: 0.0206280093854243 },\r\n { x: 0.000007448999999999007, y: -0.0366815961304643 },\r\n { x: 0.000007449999999999006, y: -0.027226401899355025 },\r\n { x: 0.000007450999999999006, y: 0.024143156458077783 },\r\n { x: 0.0000074519999999990056, y: -0.011202393941574814 },\r\n { x: 0.000007452999999999005, y: -0.027791251024402663 },\r\n { x: 0.000007453999999999005, y: -0.022042573030777838 },\r\n { x: 0.0000074549999999990045, y: -0.03890564316841142 },\r\n { x: 0.000007455999999999004, y: -0.03315762378403287 },\r\n { x: 0.000007456999999999004, y: -0.047032878333595325 },\r\n { x: 0.0000074579999999990035, y: 0.008490278709715068 },\r\n { x: 0.000007458999999999003, y: -0.05026383719050988 },\r\n { x: 0.000007459999999999003, y: 0.011755637314889813 },\r\n { x: 0.000007460999999999002, y: 0.012063228527811021 },\r\n { x: 0.000007461999999999002, y: 0.01760047666943055 },\r\n { x: 0.000007462999999999002, y: 0.004782423488207331 },\r\n { x: 0.000007463999999999001, y: -0.013220204778171363 },\r\n { x: 0.000007464999999999001, y: -0.012474467972078369 },\r\n { x: 0.000007465999999999001, y: -0.00010112941245736355 },\r\n { x: 0.000007466999999999, y: 0.019849957090585825 },\r\n { x: 0.000007467999999999, y: -0.028526674274911422 },\r\n { x: 0.000007468999999999, y: -0.0367800334247735 },\r\n { x: 0.000007469999999998999, y: -0.04772225902819775 },\r\n { x: 0.000007470999999998999, y: 0.023846912362795056 },\r\n { x: 0.000007471999999998999, y: -0.037314787356605136 },\r\n { x: 0.000007472999999998998, y: -0.04558715473869202 },\r\n { x: 0.000007473999999998998, y: 0.026508529307455175 },\r\n { x: 0.0000074749999999989975, y: -0.012872266463990981 },\r\n { x: 0.000007475999999998997, y: -0.018841512370495396 },\r\n { x: 0.000007476999999998997, y: -0.0024487998777189875 },\r\n { x: 0.0000074779999999989965, y: -0.018101179289549765 },\r\n { x: 0.000007478999999998996, y: 0.015044287679104505 },\r\n { x: 0.000007479999999998996, y: 0.0011038575802550191 },\r\n { x: 0.0000074809999999989955, y: -0.013647247998661193 },\r\n { x: 0.000007481999999998995, y: 0.014640754584732319 },\r\n { x: 0.000007482999999998995, y: -0.03806331479103022 },\r\n { x: 0.000007483999999998994, y: 0.014846101806114804 },\r\n { x: 0.000007484999999998994, y: -0.01926068662190827 },\r\n { x: 0.000007485999999998994, y: 0.0015913629028468518 },\r\n { x: 0.000007486999999998993, y: -0.014693312571803202 },\r\n { x: 0.000007487999999998993, y: 0.0122955695094787 },\r\n { x: 0.000007488999999998993, y: -0.02207191822747178 },\r\n { x: 0.000007489999999998992, y: -0.03921729422865224 },\r\n { x: 0.000007490999999998992, y: 0.012055261852238486 },\r\n { x: 0.000007491999999998992, y: -0.03354121074099931 },\r\n { x: 0.000007492999999998991, y: -0.021733193782794664 },\r\n { x: 0.000007493999999998991, y: 0.01422146979248136 },\r\n { x: 0.0000074949999999989906, y: -0.024322521978045526 },\r\n { x: 0.00000749599999999899, y: 0.01516836216012753 },\r\n { x: 0.00000749699999999899, y: 0.031712033041274894 },\r\n { x: 0.0000074979999999989895, y: 0.02373926308637362 },\r\n { x: 0.000007498999999998989, y: -0.04333450440251446 },\r\n { x: 0.000007499999999998989, y: -0.00432981503589794 },\r\n { x: 0.0000075009999999989885, y: -0.013161511096584224 },\r\n { x: 0.000007501999999998988, y: 0.026990585809848762 },\r\n { x: 0.000007502999999998988, y: -0.02955103873849134 },\r\n { x: 0.0000075039999999989874, y: 0.02297200661656664 },\r\n { x: 0.000007504999999998987, y: -0.03426265593756837 },\r\n { x: 0.000007505999999998987, y: 0.030867566385499062 },\r\n { x: 0.000007506999999998986, y: 0.011164551199046094 },\r\n { x: 0.000007507999999998986, y: -0.0354970835544735 },\r\n { x: 0.000007508999999998986, y: -0.008877616834295568 },\r\n { x: 0.000007509999999998985, y: 0.016362353054111985 },\r\n { x: 0.000007510999999998985, y: -0.01955606488125417 },\r\n { x: 0.000007511999999998985, y: 0.01777636467476429 },\r\n { x: 0.000007512999999998984, y: 0.012551204087390865 },\r\n { x: 0.000007513999999998984, y: 0.023974925168885608 },\r\n { x: 0.000007514999999998984, y: 0.010787144363156274 },\r\n { x: 0.000007515999999998983, y: -0.0224715238087419 },\r\n { x: 0.000007516999999998983, y: 0.02666368644044954 },\r\n { x: 0.0000075179999999989826, y: 0.0027069205580705358 },\r\n { x: 0.000007518999999998982, y: -0.02106567874260163 },\r\n { x: 0.000007519999999998982, y: -0.03866795049489245 },\r\n { x: 0.0000075209999999989815, y: 0.02438285208966404 },\r\n { x: 0.000007521999999998981, y: 0.02109652000908158 },\r\n { x: 0.000007522999999998981, y: 0.025346655104203333 },\r\n { x: 0.0000075239999999989805, y: -0.03734569446928815 },\r\n { x: 0.00000752499999999898, y: 0.02095433238898075 },\r\n { x: 0.00000752599999999898, y: 0.03544585238026281 },\r\n { x: 0.0000075269999999989794, y: -0.034792246561947515 },\r\n { x: 0.000007527999999998979, y: -0.015283662297831499 },\r\n { x: 0.000007528999999998979, y: -0.03314493750194377 },\r\n { x: 0.000007529999999998978, y: -0.026262624278731085 },\r\n { x: 0.000007530999999998978, y: -0.025628948669453325 },\r\n { x: 0.000007531999999998978, y: -0.016870724346038788 },\r\n { x: 0.000007532999999998977, y: -0.01630860415249793 },\r\n { x: 0.000007533999999998977, y: -0.03877309487735412 },\r\n { x: 0.000007534999999998977, y: -0.014458705854968588 },\r\n { x: 0.000007535999999998976, y: -0.004380236181917542 },\r\n { x: 0.000007536999999998976, y: -0.03499118488611446 },\r\n { x: 0.000007537999999998976, y: 0.02449090105524733 },\r\n { x: 0.000007538999999998975, y: 0.003282918889215191 },\r\n { x: 0.000007539999999998975, y: 0.05045696812558543 },\r\n { x: 0.0000075409999999989745, y: -0.03368129503509705 },\r\n { x: 0.000007541999999998974, y: 0.03591621386706343 },\r\n { x: 0.000007542999999998974, y: 0.03233171436130313 },\r\n { x: 0.0000075439999999989735, y: 0.02854159511395619 },\r\n { x: 0.000007544999999998973, y: 0.007452164102296521 },\r\n { x: 0.000007545999999998973, y: 0.026424106338118713 },\r\n { x: 0.0000075469999999989725, y: 0.02579015979367145 },\r\n { x: 0.000007547999999998972, y: -0.007994499684184376 },\r\n { x: 0.000007548999999998972, y: 0.005277501410294967 },\r\n { x: 0.000007549999999998971, y: 0.01569678719187802 },\r\n { x: 0.000007550999999998971, y: 0.031068673303270934 },\r\n { x: 0.000007551999999998971, y: 0.035321374763753334 },\r\n { x: 0.00000755299999999897, y: -0.030803174012017643 },\r\n { x: 0.00000755399999999897, y: -0.013411724611616698 },\r\n { x: 0.00000755499999999897, y: 0.004404635733234577 },\r\n { x: 0.000007555999999998969, y: -0.03291455494326488 },\r\n { x: 0.000007556999999998969, y: -0.01697052445817402 },\r\n { x: 0.000007557999999998969, y: -0.01194490823610042 },\r\n { x: 0.000007558999999998968, y: -0.004597368497743597 },\r\n { x: 0.000007559999999998968, y: 0.0015126267726125104 },\r\n { x: 0.000007560999999998968, y: -0.02579499150911735 },\r\n { x: 0.000007561999999998967, y: 0.03721085587804962 },\r\n { x: 0.000007562999999998967, y: -0.016809178152901567 },\r\n { x: 0.0000075639999999989665, y: -0.01539740359864833 },\r\n { x: 0.000007564999999998966, y: 0.002038429423671922 },\r\n { x: 0.000007565999999998966, y: 0.005204954726066064 },\r\n { x: 0.0000075669999999989655, y: 0.04198668751811494 },\r\n { x: 0.000007567999999998965, y: 0.012864884541321269 },\r\n { x: 0.000007568999999998965, y: 0.0364630682898983 },\r\n { x: 0.0000075699999999989644, y: 0.008356222136393372 },\r\n { x: 0.000007570999999998964, y: -0.03290623074254493 },\r\n { x: 0.000007571999999998964, y: -0.009913686924330138 },\r\n { x: 0.000007572999999998963, y: -0.03289334433949133 },\r\n { x: 0.000007573999999998963, y: -0.019077924400711852 },\r\n { x: 0.000007574999999998963, y: -0.029565512613616667 },\r\n { x: 0.000007575999999998962, y: 0.034160674854791025 },\r\n { x: 0.000007576999999998962, y: 0.02142962950636111 },\r\n { x: 0.000007577999999998962, y: 0.05143712770089505 },\r\n { x: 0.000007578999999998961, y: -0.009584524436073699 },\r\n { x: 0.000007579999999998961, y: 0.0032343133707201884 },\r\n { x: 0.000007580999999998961, y: -0.020962860600391355 },\r\n { x: 0.00000758199999999896, y: 0.0070203490026829055 },\r\n { x: 0.00000758299999999896, y: -0.021497278792991327 },\r\n { x: 0.0000075839999999989596, y: -0.002922441062924031 },\r\n { x: 0.000007584999999998959, y: 0.009262999694934262 },\r\n { x: 0.000007585999999998959, y: 0.01500860245135369 },\r\n { x: 0.0000075869999999989585, y: -0.00961979415109349 },\r\n { x: 0.000007587999999998958, y: 0.042562307472870375 },\r\n { x: 0.000007588999999998958, y: 0.03642840757380023 },\r\n { x: 0.0000075899999999989575, y: 0.03823126307874945 },\r\n { x: 0.000007590999999998957, y: 0.028377175403870736 },\r\n { x: 0.000007591999999998957, y: 0.04493090307456646 },\r\n { x: 0.0000075929999999989564, y: 0.042443489411100085 },\r\n { x: 0.000007593999999998956, y: 0.022158768532757746 },\r\n { x: 0.000007594999999998956, y: -0.028387724183935748 },\r\n { x: 0.000007595999999998955, y: 0.02937125657833063 },\r\n { x: 0.000007596999999998955, y: -0.014528051568962745 },\r\n { x: 0.000007597999999998955, y: -0.019585544647909143 },\r\n { x: 0.000007598999999998954, y: 0.017416150975529378 },\r\n { x: 0.000007599999999998954, y: -0.02617746484828591 },\r\n { x: 0.000007600999999998954, y: -0.009730854872071953 },\r\n { x: 0.000007601999999998953, y: -0.001462162978598424 },\r\n { x: 0.000007602999999998953, y: 0.03897227447851271 },\r\n { x: 0.000007603999999998953, y: -0.00805184053178228 },\r\n { x: 0.000007604999999998952, y: -0.022128208800918613 },\r\n { x: 0.000007605999999998952, y: 0.014957295478214954 },\r\n { x: 0.0000076069999999989516, y: 0.00023436006724148438 },\r\n { x: 0.000007607999999998951, y: -0.0018134446823015737 },\r\n { x: 0.000007608999999998951, y: 0.03526274005507467 },\r\n { x: 0.0000076099999999989505, y: 0.03410482905249744 },\r\n { x: 0.00000761099999999895, y: 0.029072906356520867 },\r\n { x: 0.00000761199999999895, y: -0.021051780698912732 },\r\n { x: 0.0000076129999999989495, y: 0.029051296058945554 },\r\n { x: 0.000007613999999998949, y: -0.002960097650801281 },\r\n { x: 0.000007614999999998949, y: -0.022063092662033996 },\r\n { x: 0.000007615999999998948, y: 0.03592708122692177 },\r\n { x: 0.000007616999999998948, y: 0.025292641537510444 },\r\n { x: 0.000007617999999998948, y: -0.011840778527306311 },\r\n { x: 0.000007618999999998947, y: -0.023986228442120842 },\r\n { x: 0.000007619999999998947, y: -0.012683697843507804 },\r\n { x: 0.000007620999999998947, y: -0.01196524864526457 },\r\n { x: 0.000007621999999998946, y: 0.02752333541683069 },\r\n { x: 0.000007622999999998946, y: 0.04299391611587114 },\r\n { x: 0.000007623999999998946, y: 0.036308488367850555 },\r\n { x: 0.000007624999999998945, y: 0.03911561245356373 },\r\n { x: 0.000007625999999998945, y: -0.011818107863260542 },\r\n { x: 0.000007626999999998945, y: -0.01921216299571429 },\r\n { x: 0.000007627999999998944, y: -0.01454998076562428 },\r\n { x: 0.000007628999999998944, y: 0.012927259519001694 },\r\n { x: 0.000007629999999998944, y: -0.024562009876564588 },\r\n { x: 0.000007630999999998945, y: 0.009896508349904165 },\r\n { x: 0.000007631999999998945, y: -0.01618539706613077 },\r\n { x: 0.000007632999999998946, y: -0.014800790102505979 },\r\n { x: 0.000007633999999998946, y: 0.02447504220629354 },\r\n { x: 0.000007634999999998947, y: 0.004056376996161574 },\r\n { x: 0.000007635999999998947, y: 0.010958593992927083 },\r\n { x: 0.000007636999999998948, y: 0.023732863792113885 },\r\n { x: 0.000007637999999998948, y: 0.011696420088332432 },\r\n { x: 0.000007638999999998949, y: -0.018330710942847356 },\r\n { x: 0.00000763999999999895, y: 0.018141207690429744 },\r\n { x: 0.00000764099999999895, y: 0.04016213142883144 },\r\n { x: 0.00000764199999999895, y: -0.010796136535958734 },\r\n { x: 0.000007642999999998951, y: 0.039972437778972664 },\r\n { x: 0.000007643999999998951, y: -0.009421163380471876 },\r\n { x: 0.000007644999999998952, y: -0.01612936914685939 },\r\n { x: 0.000007645999999998952, y: -0.00017625205542366566 },\r\n { x: 0.000007646999999998953, y: 0.005491790013955621 },\r\n { x: 0.000007647999999998953, y: 0.033663732781375036 },\r\n { x: 0.000007648999999998954, y: 0.020685031282515462 },\r\n { x: 0.000007649999999998954, y: 0.010113591904799487 },\r\n { x: 0.000007650999999998955, y: -0.010165489344933065 },\r\n { x: 0.000007651999999998955, y: 0.026057292939187376 },\r\n { x: 0.000007652999999998956, y: 0.017384662074457387 },\r\n { x: 0.000007653999999998956, y: -0.007590810428950672 },\r\n { x: 0.000007654999999998957, y: 0.031458194176884086 },\r\n { x: 0.000007655999999998957, y: -0.020630593811190673 },\r\n { x: 0.000007656999999998958, y: 0.019014821534339907 },\r\n { x: 0.000007657999999998958, y: 0.011743937697930562 },\r\n { x: 0.000007658999999998959, y: 0.00007031287137651207 },\r\n { x: 0.00000765999999999896, y: 0.02303909944341818 },\r\n { x: 0.00000766099999999896, y: 0.006995922923644005 },\r\n { x: 0.00000766199999999896, y: -0.017085098575874716 },\r\n { x: 0.00000766299999999896, y: 0.0024778228586560154 },\r\n { x: 0.000007663999999998961, y: 0.01669216614428899 },\r\n { x: 0.000007664999999998962, y: 0.02960072769232535 },\r\n { x: 0.000007665999999998962, y: 0.016507543912620406 },\r\n { x: 0.000007666999999998963, y: 0.0010951361706479142 },\r\n { x: 0.000007667999999998963, y: 0.0442289600007922 },\r\n { x: 0.000007668999999998964, y: 0.039799982327582126 },\r\n { x: 0.000007669999999998964, y: 0.051568161711428445 },\r\n { x: 0.000007670999999998965, y: 0.016110453617722443 },\r\n { x: 0.000007671999999998965, y: 0.04010307109694563 },\r\n { x: 0.000007672999999998966, y: 0.042413509986628364 },\r\n { x: 0.000007673999999998966, y: -0.0017353305800867844 },\r\n { x: 0.000007674999999998967, y: 0.0031100488747114532 },\r\n { x: 0.000007675999999998967, y: 0.04758293813736568 },\r\n { x: 0.000007676999999998968, y: 0.024826948820876632 },\r\n { x: 0.000007677999999998968, y: -0.01066632664993435 },\r\n { x: 0.000007678999999998969, y: -0.018992853867057128 },\r\n { x: 0.00000767999999999897, y: 0.019219533773053337 },\r\n { x: 0.00000768099999999897, y: 0.04147738284632212 },\r\n { x: 0.00000768199999999897, y: 0.0020314928236688217 },\r\n { x: 0.00000768299999999897, y: 0.01835181358908086 },\r\n { x: 0.000007683999999998971, y: 0.0030591714963266944 },\r\n { x: 0.000007684999999998972, y: 0.018681697479479734 },\r\n { x: 0.000007685999999998972, y: 0.04999125248055506 },\r\n { x: 0.000007686999999998973, y: -0.010898018786641987 },\r\n { x: 0.000007687999999998973, y: 0.0059386370077591875 },\r\n { x: 0.000007688999999998974, y: -0.007419026099136347 },\r\n { x: 0.000007689999999998974, y: 0.036887778361636606 },\r\n { x: 0.000007690999999998975, y: 0.05261245909478904 },\r\n { x: 0.000007691999999998975, y: 0.043685703905142814 },\r\n { x: 0.000007692999999998976, y: 0.042904681328542 },\r\n { x: 0.000007693999999998976, y: -0.000833875149596517 },\r\n { x: 0.000007694999999998977, y: 0.01889166734862338 },\r\n { x: 0.000007695999999998977, y: 0.04468714198644731 },\r\n { x: 0.000007696999999998978, y: -0.008537668615090279 },\r\n { x: 0.000007697999999998978, y: 0.02512113820589359 },\r\n { x: 0.000007698999999998979, y: 0.04728383163303347 },\r\n { x: 0.00000769999999999898, y: 0.05032094690383092 },\r\n { x: 0.00000770099999999898, y: 0.0559866408783624 },\r\n { x: 0.00000770199999999898, y: 0.019395711944496637 },\r\n { x: 0.00000770299999999898, y: 0.016632591897018753 },\r\n { x: 0.000007703999999998981, y: 0.007924696645969405 },\r\n { x: 0.000007704999999998982, y: 0.04174617014399477 },\r\n { x: 0.000007705999999998982, y: 0.012036490384969293 },\r\n { x: 0.000007706999999998983, y: 0.03852745479281464 },\r\n { x: 0.000007707999999998983, y: -0.0014372534157544269 },\r\n { x: 0.000007708999999998984, y: 0.026181174619044744 },\r\n { x: 0.000007709999999998984, y: -0.01760225469367355 },\r\n { x: 0.000007710999999998985, y: 0.011413126994314975 },\r\n { x: 0.000007711999999998985, y: -0.014502699989748288 },\r\n { x: 0.000007712999999998986, y: -0.0017108503129400418 },\r\n { x: 0.000007713999999998986, y: 0.0445193429181658 },\r\n { x: 0.000007714999999998987, y: -0.012619364314126563 },\r\n { x: 0.000007715999999998987, y: 0.028376642518647098 },\r\n { x: 0.000007716999999998988, y: 0.035849345538410175 },\r\n { x: 0.000007717999999998988, y: 0.023629270732180258 },\r\n { x: 0.000007718999999998989, y: -0.012284780744528115 },\r\n { x: 0.00000771999999999899, y: 0.020828097089611333 },\r\n { x: 0.00000772099999999899, y: 0.04557571923451602 },\r\n { x: 0.00000772199999999899, y: 0.0425780433370441 },\r\n { x: 0.00000772299999999899, y: -0.007011633087120165 },\r\n { x: 0.000007723999999998991, y: 0.02788105907510139 },\r\n { x: 0.000007724999999998992, y: 0.057409955148969356 },\r\n { x: 0.000007725999999998992, y: 0.03858877117710563 },\r\n { x: 0.000007726999999998993, y: 0.054476967022339735 },\r\n { x: 0.000007727999999998993, y: 0.005778750610229295 },\r\n { x: 0.000007728999999998994, y: 0.05268105153052148 },\r\n { x: 0.000007729999999998994, y: 0.05636900577757886 },\r\n { x: 0.000007730999999998995, y: 0.04508946213480923 },\r\n { x: 0.000007731999999998995, y: 0.02480106274804994 },\r\n { x: 0.000007732999999998996, y: 0.0279322807714678 },\r\n { x: 0.000007733999999998996, y: 0.05045198267856109 },\r\n { x: 0.000007734999999998997, y: 0.01548853735363388 },\r\n { x: 0.000007735999999998997, y: 0.042582548333932546 },\r\n { x: 0.000007736999999998998, y: 0.0381994780432959 },\r\n { x: 0.000007737999999998998, y: -0.015444508336462933 },\r\n { x: 0.000007738999999998999, y: 0.0558933507230641 },\r\n { x: 0.000007739999999999, y: -0.0008775844249095145 },\r\n { x: 0.000007740999999999, y: 0.05859153378138359 },\r\n { x: 0.000007741999999999, y: 0.045375737791050946 },\r\n { x: 0.000007742999999999, y: 0.03675973078634645 },\r\n { x: 0.000007743999999999001, y: 0.02547984382966473 },\r\n { x: 0.000007744999999999002, y: 0.04435092675313653 },\r\n { x: 0.000007745999999999002, y: -0.012938892968024234 },\r\n { x: 0.000007746999999999003, y: 0.010184716686544242 },\r\n { x: 0.000007747999999999003, y: 0.03879746076217398 },\r\n { x: 0.000007748999999999004, y: 0.017701820635475186 },\r\n { x: 0.000007749999999999004, y: 0.04656749345894277 },\r\n { x: 0.000007750999999999005, y: 0.03136289959237096 },\r\n { x: 0.000007751999999999005, y: 0.031112004252844695 },\r\n { x: 0.000007752999999999006, y: 0.028046216631737727 },\r\n { x: 0.000007753999999999006, y: 0.02210375364385562 },\r\n { x: 0.000007754999999999007, y: -0.005203922641432282 },\r\n { x: 0.000007755999999999007, y: 0.02475813174325188 },\r\n { x: 0.000007756999999999008, y: -0.010332988976684408 },\r\n { x: 0.000007757999999999008, y: -0.007491358019963458 },\r\n { x: 0.000007758999999999009, y: 0.037208682834586324 },\r\n { x: 0.00000775999999999901, y: 0.006282013864344023 },\r\n { x: 0.00000776099999999901, y: 0.03753684339186861 },\r\n { x: 0.00000776199999999901, y: 0.03045152075241148 },\r\n { x: 0.00000776299999999901, y: 0.011530639911663377 },\r\n { x: 0.000007763999999999011, y: 0.024311025331901152 },\r\n { x: 0.000007764999999999012, y: 0.002215046336795652 },\r\n { x: 0.000007765999999999012, y: 0.03802840991482098 },\r\n { x: 0.000007766999999999013, y: 0.01007749563498892 },\r\n { x: 0.000007767999999999013, y: 0.004688473023074728 },\r\n { x: 0.000007768999999999014, y: -0.013099934734618016 },\r\n { x: 0.000007769999999999014, y: 0.027827802352301884 },\r\n { x: 0.000007770999999999015, y: 0.009426777943462174 },\r\n { x: 0.000007771999999999015, y: 0.021110600853828817 },\r\n { x: 0.000007772999999999016, y: 0.031218882406842556 },\r\n { x: 0.000007773999999999016, y: 0.031411969185098886 },\r\n { x: 0.000007774999999999017, y: 0.05129289786532706 },\r\n { x: 0.000007775999999999017, y: 0.04063580840095517 },\r\n { x: 0.000007776999999999018, y: 0.024419811186231967 },\r\n { x: 0.000007777999999999018, y: 0.055769883039295656 },\r\n { x: 0.000007778999999999019, y: 0.03175411328558628 },\r\n { x: 0.00000777999999999902, y: 0.05184407607598709 },\r\n { x: 0.00000778099999999902, y: 0.048874249361466705 },\r\n { x: 0.00000778199999999902, y: 0.04883436208297441 },\r\n { x: 0.00000778299999999902, y: -0.012539527222049655 },\r\n { x: 0.000007783999999999021, y: 0.03913945653469793 },\r\n { x: 0.000007784999999999022, y: 0.05019826558092637 },\r\n { x: 0.000007785999999999022, y: 0.006752722659745917 },\r\n { x: 0.000007786999999999023, y: 0.045161348783275476 },\r\n { x: 0.000007787999999999023, y: 0.0409106911546238 },\r\n { x: 0.000007788999999999024, y: -0.004457631635826964 },\r\n { x: 0.000007789999999999024, y: 0.051363065750822015 },\r\n { x: 0.000007790999999999025, y: 0.0072704525128081746 },\r\n { x: 0.000007791999999999025, y: 0.03599420204123263 },\r\n { x: 0.000007792999999999026, y: -0.009904198581136607 },\r\n { x: 0.000007793999999999026, y: 0.05086274757800156 },\r\n { x: 0.000007794999999999027, y: 0.0476131453135 },\r\n { x: 0.000007795999999999027, y: 0.0037769072025102407 },\r\n { x: 0.000007796999999999028, y: 0.029802713056474722 },\r\n { x: 0.000007797999999999028, y: 0.0417024074756982 },\r\n { x: 0.000007798999999999029, y: 0.05540923174404717 },\r\n { x: 0.00000779999999999903, y: 0.05202366045281162 },\r\n { x: 0.00000780099999999903, y: 0.01130822852809163 },\r\n { x: 0.00000780199999999903, y: -0.013233837063023893 },\r\n { x: 0.00000780299999999903, y: 0.05086178414384361 },\r\n { x: 0.000007803999999999031, y: 0.007362279469459287 },\r\n { x: 0.000007804999999999032, y: 0.048319179140476856 },\r\n { x: 0.000007805999999999032, y: -0.00822210383778441 },\r\n { x: 0.000007806999999999033, y: 0.025670399599903814 },\r\n { x: 0.000007807999999999033, y: 0.001203379975189836 },\r\n { x: 0.000007808999999999034, y: 0.060469449985909 },\r\n { x: 0.000007809999999999034, y: 0.031268240329472875 },\r\n { x: 0.000007810999999999035, y: 0.03578571754426271 },\r\n { x: 0.000007811999999999035, y: 0.005189839651818642 },\r\n { x: 0.000007812999999999036, y: 0.013976523106403611 },\r\n { x: 0.000007813999999999036, y: 0.03159522292271111 },\r\n { x: 0.000007814999999999037, y: -0.009812905457127607 },\r\n { x: 0.000007815999999999037, y: 0.013376218328183078 },\r\n { x: 0.000007816999999999038, y: 0.004157880715999707 },\r\n { x: 0.000007817999999999038, y: 0.035815647141656894 },\r\n { x: 0.000007818999999999039, y: 0.05873553634626 },\r\n { x: 0.000007819999999999039, y: 0.0022676561863314883 },\r\n { x: 0.00000782099999999904, y: 0.020510670694557677 },\r\n { x: 0.00000782199999999904, y: 0.024508532011373284 },\r\n { x: 0.00000782299999999904, y: 0.045025773671920996 },\r\n { x: 0.000007823999999999041, y: 0.029951701582998633 },\r\n { x: 0.000007824999999999042, y: 0.03397588706260915 },\r\n { x: 0.000007825999999999042, y: 0.05618288672796291 },\r\n { x: 0.000007826999999999043, y: 0.00936978530659504 },\r\n { x: 0.000007827999999999043, y: 0.029439010786099114 },\r\n { x: 0.000007828999999999044, y: 0.02374952405800666 },\r\n { x: 0.000007829999999999044, y: -0.010207023202618452 },\r\n { x: 0.000007830999999999045, y: 0.0008811106276202102 },\r\n { x: 0.000007831999999999045, y: 0.05177504426499105 },\r\n { x: 0.000007832999999999046, y: 0.021697625329325457 },\r\n { x: 0.000007833999999999046, y: -0.0019407255688146559 },\r\n { x: 0.000007834999999999047, y: 0.05151867456724748 },\r\n { x: 0.000007835999999999047, y: -0.0036660133149483305 },\r\n { x: 0.000007836999999999048, y: 0.018607507507157266 },\r\n { x: 0.000007837999999999048, y: 0.0372279393384259 },\r\n { x: 0.000007838999999999049, y: 0.03748309089185409 },\r\n { x: 0.000007839999999999049, y: 0.05452296644040515 },\r\n { x: 0.00000784099999999905, y: 0.03969168675630745 },\r\n { x: 0.00000784199999999905, y: 0.05511777929415575 },\r\n { x: 0.00000784299999999905, y: 0.06131000386865333 },\r\n { x: 0.000007843999999999051, y: 0.0008756484931444243 },\r\n { x: 0.000007844999999999052, y: 0.01445727818493984 },\r\n { x: 0.000007845999999999052, y: 0.041360827320049504 },\r\n { x: 0.000007846999999999053, y: 0.005959631337519481 },\r\n { x: 0.000007847999999999053, y: 0.04074289921088947 },\r\n { x: 0.000007848999999999054, y: 0.061418744341436696 },\r\n { x: 0.000007849999999999054, y: -0.0010903634977960479 },\r\n { x: 0.000007850999999999055, y: -0.010081540029769857 },\r\n { x: 0.000007851999999999055, y: -0.010914217715337377 },\r\n { x: 0.000007852999999999056, y: 0.0010120627226539794 },\r\n { x: 0.000007853999999999056, y: 0.018722247032854158 },\r\n { x: 0.000007854999999999057, y: 0.00906280646278798 },\r\n { x: 0.000007855999999999057, y: 0.017077871742720623 },\r\n { x: 0.000007856999999999058, y: 0.03558183728968866 },\r\n { x: 0.000007857999999999058, y: 0.014210897125441276 },\r\n { x: 0.000007858999999999059, y: 0.05495359216495571 },\r\n { x: 0.000007859999999999059, y: 0.0018870619423871325 },\r\n { x: 0.00000786099999999906, y: 0.05736083411579576 },\r\n { x: 0.00000786199999999906, y: 0.03590821512713628 },\r\n { x: 0.00000786299999999906, y: 0.03450245061322651 },\r\n { x: 0.000007863999999999061, y: -0.00814463049788602 },\r\n { x: 0.000007864999999999062, y: 0.022473123382872953 },\r\n { x: 0.000007865999999999062, y: -0.003248763086752357 },\r\n { x: 0.000007866999999999063, y: 0.013835411450095206 },\r\n { x: 0.000007867999999999063, y: 0.06002764997563929 },\r\n { x: 0.000007868999999999064, y: 0.05820367389921274 },\r\n { x: 0.000007869999999999064, y: 0.0377107232983148 },\r\n { x: 0.000007870999999999065, y: 0.001080100461624784 },\r\n { x: 0.000007871999999999065, y: 0.02269997811561928 },\r\n { x: 0.000007872999999999066, y: -0.008949483380953145 },\r\n { x: 0.000007873999999999066, y: -0.007254745378965154 },\r\n { x: 0.000007874999999999067, y: -0.008721772415156082 },\r\n { x: 0.000007875999999999067, y: 0.04103177633082947 },\r\n { x: 0.000007876999999999068, y: 0.05048931037349442 },\r\n { x: 0.000007877999999999068, y: 0.058958010346682244 },\r\n { x: 0.000007878999999999069, y: -0.0115174370675173 },\r\n { x: 0.000007879999999999069, y: -0.0027931515839453303 },\r\n { x: 0.00000788099999999907, y: 0.03312929463196517 },\r\n { x: 0.00000788199999999907, y: 0.04331367491296444 },\r\n { x: 0.00000788299999999907, y: 0.022830339622249177 },\r\n { x: 0.000007883999999999071, y: 0.00977155855452738 },\r\n { x: 0.000007884999999999072, y: -0.0010471104747204578 },\r\n { x: 0.000007885999999999072, y: -0.0041364148772614975 },\r\n { x: 0.000007886999999999073, y: 0.012677395112630649 },\r\n { x: 0.000007887999999999073, y: 0.04330700174525166 },\r\n { x: 0.000007888999999999074, y: -0.004625019110908991 },\r\n { x: 0.000007889999999999074, y: 0.05766676431510688 },\r\n { x: 0.000007890999999999075, y: 0.027243821376849643 },\r\n { x: 0.000007891999999999075, y: 0.031299601613999396 },\r\n { x: 0.000007892999999999076, y: 0.03779368310848319 },\r\n { x: 0.000007893999999999076, y: 0.012969531847962608 },\r\n { x: 0.000007894999999999077, y: 0.005545400182819873 },\r\n { x: 0.000007895999999999077, y: 0.04874776257086391 },\r\n { x: 0.000007896999999999078, y: -0.0073332341360738545 },\r\n { x: 0.000007897999999999078, y: 0.024210154552340327 },\r\n { x: 0.000007898999999999079, y: 0.01799733573125864 },\r\n { x: 0.000007899999999999079, y: -0.007543973671310669 },\r\n { x: 0.00000790099999999908, y: 0.026921935233092532 },\r\n { x: 0.00000790199999999908, y: 0.05021230345670767 },\r\n { x: 0.00000790299999999908, y: 0.05463573667112673 },\r\n { x: 0.000007903999999999081, y: 0.00953585836873683 },\r\n { x: 0.000007904999999999082, y: 0.05287629394823225 },\r\n { x: 0.000007905999999999082, y: 0.0009692759758983087 },\r\n { x: 0.000007906999999999083, y: 0.011357120029424893 },\r\n { x: 0.000007907999999999083, y: 0.005085014891919797 },\r\n { x: 0.000007908999999999084, y: 0.051770801739135675 },\r\n { x: 0.000007909999999999084, y: 0.012314550038175808 },\r\n { x: 0.000007910999999999085, y: 0.05607228620256005 },\r\n { x: 0.000007911999999999085, y: 0.014274322095509974 },\r\n { x: 0.000007912999999999086, y: 0.02026228050542361 },\r\n { x: 0.000007913999999999086, y: 0.006623927401461248 },\r\n { x: 0.000007914999999999087, y: 0.004023098577084459 },\r\n { x: 0.000007915999999999087, y: 0.023657776545005123 },\r\n { x: 0.000007916999999999088, y: 0.02641928242407151 },\r\n { x: 0.000007917999999999088, y: 0.014311615245716058 },\r\n { x: 0.000007918999999999088, y: 0.032271971321202485 },\r\n { x: 0.000007919999999999089, y: 0.03525585207965565 },\r\n { x: 0.00000792099999999909, y: 0.016018419516724655 },\r\n { x: 0.00000792199999999909, y: 0.03282530104177738 },\r\n { x: 0.00000792299999999909, y: 0.05681693447647093 },\r\n { x: 0.000007923999999999091, y: -0.0032993832898068516 },\r\n { x: 0.000007924999999999091, y: -0.013710217354184047 },\r\n { x: 0.000007925999999999092, y: -0.017386206323801223 },\r\n { x: 0.000007926999999999092, y: -0.016078173977449976 },\r\n { x: 0.000007927999999999093, y: 0.04044817079314449 },\r\n { x: 0.000007928999999999093, y: 0.015769346966996937 },\r\n { x: 0.000007929999999999094, y: 0.005834023923001967 },\r\n { x: 0.000007930999999999094, y: 0.024876498211160235 },\r\n { x: 0.000007931999999999095, y: 0.0001635946419980376 },\r\n { x: 0.000007932999999999095, y: -0.016449592222643028 },\r\n { x: 0.000007933999999999096, y: 0.0515092338916977 },\r\n { x: 0.000007934999999999096, y: 0.04848429344123602 },\r\n { x: 0.000007935999999999097, y: 0.04426017462735836 },\r\n { x: 0.000007936999999999097, y: -0.017023788603873883 },\r\n { x: 0.000007937999999999098, y: 0.04365549657593282 },\r\n { x: 0.000007938999999999098, y: 0.04002754833209317 },\r\n { x: 0.000007939999999999099, y: -0.01286436096612836 },\r\n { x: 0.0000079409999999991, y: 0.04276388978712044 },\r\n { x: 0.0000079419999999991, y: 0.027021217515152095 },\r\n { x: 0.0000079429999999991, y: 0.043786971344992986 },\r\n { x: 0.000007943999999999101, y: -0.012981778346742162 },\r\n { x: 0.000007944999999999101, y: 0.011770894364588454 },\r\n { x: 0.000007945999999999102, y: -0.0168482036233206 },\r\n { x: 0.000007946999999999102, y: -0.014984294860894778 },\r\n { x: 0.000007947999999999103, y: 0.03502531805514158 },\r\n { x: 0.000007948999999999103, y: 0.053076451917723144 },\r\n { x: 0.000007949999999999104, y: -0.004273155917371329 },\r\n { x: 0.000007950999999999104, y: 0.02446885539358464 },\r\n { x: 0.000007951999999999105, y: -0.01513073224237239 },\r\n { x: 0.000007952999999999105, y: -0.006394293499375203 },\r\n { x: 0.000007953999999999106, y: 0.007505311441084744 },\r\n { x: 0.000007954999999999106, y: -0.004892769924894121 },\r\n { x: 0.000007955999999999107, y: 0.003496511197928145 },\r\n { x: 0.000007956999999999107, y: 0.03203163074655121 },\r\n { x: 0.000007957999999999108, y: 0.000367262681439981 },\r\n { x: 0.000007958999999999108, y: -0.010262676311403554 },\r\n { x: 0.000007959999999999109, y: 0.02949507047575882 },\r\n { x: 0.00000796099999999911, y: -0.018137670088596073 },\r\n { x: 0.00000796199999999911, y: 0.020305544970873272 },\r\n { x: 0.00000796299999999911, y: 0.01619478593461053 },\r\n { x: 0.000007963999999999111, y: 0.002928196333172199 },\r\n { x: 0.000007964999999999111, y: 0.04674053821092112 },\r\n { x: 0.000007965999999999112, y: -0.011372329609377358 },\r\n { x: 0.000007966999999999112, y: 0.04612851816173901 },\r\n { x: 0.000007967999999999113, y: 0.05550999132552603 },\r\n { x: 0.000007968999999999113, y: 0.007698701301413112 },\r\n { x: 0.000007969999999999114, y: -0.01383957658287643 },\r\n { x: 0.000007970999999999114, y: 0.0329642004009498 },\r\n { x: 0.000007971999999999115, y: -0.000021489993732966978 },\r\n { x: 0.000007972999999999115, y: 0.020946453746142814 },\r\n { x: 0.000007973999999999116, y: -0.00477284417362369 },\r\n { x: 0.000007974999999999116, y: 0.04851129585001675 },\r\n { x: 0.000007975999999999117, y: 0.048625884607778155 },\r\n { x: 0.000007976999999999117, y: -0.01338099880397528 },\r\n { x: 0.000007977999999999118, y: 0.005940875110559175 },\r\n { x: 0.000007978999999999118, y: 0.03447464530500075 },\r\n { x: 0.000007979999999999119, y: 0.02207546143978787 },\r\n { x: 0.00000798099999999912, y: 0.0504179601999862 },\r\n { x: 0.00000798199999999912, y: 0.023104428080570664 },\r\n { x: 0.00000798299999999912, y: 0.030354992572024144 },\r\n { x: 0.000007983999999999121, y: 0.0023324452475153457 },\r\n { x: 0.000007984999999999121, y: 0.0029322408535889886 },\r\n { x: 0.000007985999999999122, y: 0.006766617209502232 },\r\n { x: 0.000007986999999999122, y: 0.02500720118399022 },\r\n { x: 0.000007987999999999123, y: 0.009414604832344017 },\r\n { x: 0.000007988999999999123, y: -0.015264915093247358 },\r\n { x: 0.000007989999999999124, y: -0.010696550061412832 },\r\n { x: 0.000007990999999999124, y: 0.006208991669481198 },\r\n { x: 0.000007991999999999125, y: -0.019506698888068875 },\r\n { x: 0.000007992999999999125, y: 0.012066969489951392 },\r\n { x: 0.000007993999999999126, y: 0.049434006499191725 },\r\n { x: 0.000007994999999999126, y: 0.009422370828351928 },\r\n { x: 0.000007995999999999127, y: 0.04350923500164221 },\r\n { x: 0.000007996999999999127, y: 0.032772823526568795 },\r\n { x: 0.000007997999999999128, y: 0.04697816781838182 },\r\n { x: 0.000007998999999999128, y: -0.011329641578143219 },\r\n { x: 0.000007999999999999129, y: -0.016427746917131558 },\r\n ]\r\n)\r\n","url":null,"readme":"This example shows how to display high-resolution data - for example, measurements in microseconds precision.\r\n\r\nWhen displaying high-resolution data there is a need to do some scaling to the data before adding it to a series.\r\nLightningChart JS Axis is limited by floating point precision so when using really small or really large values there is a need to scale the values to be closer to 0.\r\n\r\n```js\r\nconst dataScaleX = 1 * Math.pow( 1000, 3 ) // 1 us\r\nconst renderData = ( data ) => {\r\n // Add data.\r\n lineSeries.add( data.map( p => ({ x: p.x * dataScaleX, y: p.y }) ) )\r\n}\r\n```\r\n\r\nWhen the data is scaled closer to 0 then the LightningChart JS Axis is able to function properly but the values shown in the auto-cursor would be incorrect as it would show the scaled value, not the original. This can be fixed by setting a formatting function to the axis tick strategy.\r\n\r\n```js\r\nlineSeries.axisX\r\n .setTickStrategy( AxisTickStrategies.Numeric, ( strategy ) => strategy\r\n // Format ticks with units.\r\n .setFormattingFunction( timeScaled =>\r\n Math.round( timeScaled ) + ' μs'\r\n )\r\n )\r\n```\r\n\r\nAlternatively if the original value would be preferred then the scaling could be undone.\r\n\r\n```js\r\nlineSeries.axisX\r\n .setTickStrategy( AxisTickStrategies.Numeric, ( strategy ) => strategy\r\n .setFormattingFunction( timeScaled =>\r\n timeScaled/dataScaleX\r\n )\r\n )\r\n```\r\n","image":"lineSeriesMicroseconds.png"},{"id":"lcjs-example-0009-severalAxisXY","title":"Several AxesXY","tags":["line","xy"],"description":"Several AxesXY chart can be used to compare or see several graphs.","src":"/*\r\n * LightningChartJS example for several AxisXY\r\n */\r\n\r\n// Import LightningChartJS\r\nconst lcjs = require('@arction/lcjs')\r\n// Import Random Generator \r\nconst { createProgressiveRandomGenerator } = require('@arction/xydata')\r\n\r\n// Extract required parts from LightningChartJS.\r\nconst {\r\n lightningChart,\r\n SolidFill,\r\n SolidLine,\r\n ColorRGBA,\r\n Themes,\r\n} = lcjs\r\n\r\nconst ls = lightningChart()\r\n\r\nconst chart = ls.ChartXY({\r\n // theme: Themes.dark\r\n})\r\n .setTitle('Several Axis')\r\n\r\n// Cache colors used in the example\r\nconst blueFill = new SolidFill( { color: ColorRGBA(0, 0, 255) } )\r\nconst greenFill = new SolidFill( { color: ColorRGBA(0, 255, 0) } )\r\nconst redFill = new SolidFill( { color: ColorRGBA( 255, 0, 0 ) } )\r\n\r\n// Cache StrokeStyles used in the example\r\nconst blueLine = new SolidLine( { fillStyle: blueFill } )\r\nconst greenLine = new SolidLine( { fillStyle: greenFill } )\r\nconst redLine = new SolidLine( {fillStyle: redFill } )\r\n\r\n// First Axes (default)\r\nconst axisX1 = chart.getDefaultAxisX()\r\n // Set title of Axis\r\n .setTitle('Axis X1')\r\n // Set interval of X axis \r\n .setInterval(-10, 1300, false, true)\r\n .setStrokeStyle( blueLine )\r\n\r\nconst axisY1 = chart.getDefaultAxisY()\r\n // Set title of Axis\r\n .setTitle('Axis Y1')\r\n // Set interval of Y axis \r\n .setInterval(-150, 100, false, true)\r\n .setStrokeStyle( blueLine )\r\n\r\n// Second Axes (extra)\r\nconst axisX2 = chart.addAxisX(true)\r\n .setTitle('Axis X2')\r\n .setInterval(-60, 500, false, true)\r\n .setStrokeStyle( greenLine )\r\n\r\nconst axisY2 = chart.addAxisY(true)\r\n .setTitle('Axis Y2')\r\n .setInterval(-20, 200, false, true)\r\n .setStrokeStyle( greenLine )\r\n\r\n// Create series with explicit axes.\r\n// Axes 1\r\nconst splineSeries1 = chart.addSplineSeries({\r\n xAxis: axisX1,\r\n yAxis: axisY1\r\n})\r\n .setStrokeStyle( redLine )\r\n .setPointFillStyle( blueFill )\r\n .setName('Axis 1')\r\n\r\n// Axes 2\r\nconst splineSeries2 = chart.addSplineSeries({\r\n xAxis: axisX2,\r\n yAxis: axisY2\r\n})\r\n .setStrokeStyle( greenLine )\r\n .setName('Axis 2')\r\n\r\n// Function to add random values to given series with createProgressiveRandomGenerator\r\nconst setSeries = (amountOfDots, splineSeries) => {\r\n createProgressiveRandomGenerator()\r\n .setNumberOfPoints(amountOfDots)\r\n .generate()\r\n // Set stream to output X points at a time\r\n .setStreamBatchSize(amountOfDots)\r\n // Create a new stream with previously defined stream settings\r\n .toStream()\r\n .forEach((point, i) => {\r\n point.x = point.x * 5, // define X coordinates for point \r\n point.y = (20 * Math.sin(i / (10 * Math.PI)) + (Math.floor(Math.random() * 20))) // define Y coordinates for point \r\n splineSeries.add(point) // add to series\r\n })\r\n\r\n}\r\n\r\n// set Series 1\r\nsetSeries(250, splineSeries1)\r\n\r\n// set Series 2\r\nsetSeries(70, splineSeries2)\r\n","url":null,"readme":"*Several Axes XY chart*\r\n\r\nThis example shows creation of a Chart with 2 XY Axes. This Chart can be used to compare or see several graphs\r\n\r\nHere's the creation of a 2 XY Axes Chart.\r\n\r\n```javascript\r\n// Create Chart.\r\nconst chart = lightningChart().ChartXY()\r\n// Get references to default axes X and Y \r\nconst axisX1 = chart.getDefaultAxisX()\r\nconst axisX1 = chart.getDefaultAxisY()\r\n// Create extra axes X and Y \r\nconst axisX2 = chart.addAxisX(true)\r\nconst axisX2 = chart.addAxisY(true)\r\n// Create series with explicit axes.\r\nconst splineSeries1 = chart.addSplineSeries({\r\n xAxis: axisX1,\r\n yAxis: axisY1\r\n})\r\nconst splineSeries2 = chart.addSplineSeries({\r\n xAxis: axisX2,\r\n yAxis: axisY2\r\n})\r\n// Set values of sub-categories on categories (relative Y size).\r\nsplineSeries1.add({x: 0, y: 0.4})\r\nsplineSeries2.add({x: 2, y : 0.6})\r\n```\r\n","image":"severalAxesXY.png"},{"id":"lcjs-example-0020-dateTimeAxis","title":"DateTime Axis","tags":["date-time","axis","xy"],"description":"Example for creation of a DateTime Axis. DateTime axis can present time.","src":"/*\r\n * LightningChart JS Example that showcases a Customer Satisfaction graph using a LineSeries and DateTime-Axis.\r\n */\r\n// Import LightningChartJS\r\nconst lcjs = require('@arction/lcjs')\r\n\r\n// Extract required parts from LightningChartJS.\r\nconst {\r\n lightningChart,\r\n AxisTickStrategies,\r\n DataPatterns,\r\n Themes\r\n} = lcjs\r\n\r\n// Create a XY Chart.\r\nconst dateOrigin = new Date(2008, 0, 1)\r\nconst chart = lightningChart().ChartXY({\r\n // theme: Themes.dark\r\n})\r\nchart.getDefaultAxisX()\r\n .setTickStrategy(\r\n // Use DateTime TickStrategy for this Axis\r\n AxisTickStrategies.DateTime,\r\n // Modify the DateOrigin of the TickStrategy\r\n (tickStrategy) => tickStrategy.setDateOrigin(dateOrigin)\r\n )\r\nchart.setTitle('Customer Satisfaction')\r\n\r\nchart.setPadding({ right: '5' })\r\n\r\n// Add a progressive line series.\r\n// Using the DataPatterns object to select the horizontalProgressive pattern for the line series.\r\nconst lineSeries = chart.addLineSeries({ dataPattern: DataPatterns.horizontalProgressive })\r\n .setName('Customer Satisfaction')\r\n\r\n// Generate some points using for each month\r\nconst dataFrequency = 30 * 24 * 60 * 60 * 1000\r\n\r\n// Setup view nicely.\r\nchart.getDefaultAxisY()\r\n .setScrollStrategy(undefined)\r\n .setInterval(0, 100)\r\n .setTitle('Satisfaction %')\r\n\r\n// Data for the plotting\r\nconst satisfactionData = [\r\n { x: 0, y: 0 },\r\n { x: 1, y: 8 },\r\n { x: 2, y: 12 },\r\n { x: 3, y: 18 },\r\n { x: 4, y: 22 },\r\n { x: 5, y: 32 },\r\n { x: 6, y: 40 },\r\n { x: 7, y: 48 },\r\n { x: 8, y: 50 },\r\n { x: 9, y: 54 },\r\n { x: 10, y: 59 },\r\n { x: 11, y: 65 },\r\n { x: 12, y: 70 },\r\n { x: 13, y: 68 },\r\n { x: 14, y: 70 },\r\n { x: 15, y: 69 },\r\n { x: 16, y: 66 },\r\n { x: 17, y: 65.4 },\r\n { x: 18, y: 64 },\r\n { x: 19, y: 65 },\r\n { x: 20, y: 63.5 },\r\n { x: 21, y: 62 },\r\n { x: 22, y: 61.2 },\r\n { x: 23, y: 63 },\r\n { x: 24, y: 61 },\r\n { x: 25, y: 62 },\r\n { x: 26, y: 62 },\r\n { x: 27, y: 60 },\r\n { x: 28, y: 57.8 },\r\n { x: 29, y: 58 },\r\n { x: 30, y: 61 },\r\n { x: 31, y: 59 },\r\n { x: 32, y: 63 },\r\n { x: 33, y: 61 },\r\n { x: 34, y: 61.8 },\r\n { x: 35, y: 62 },\r\n { x: 36, y: 59.9 },\r\n { x: 37, y: 58 },\r\n { x: 38, y: 60 },\r\n { x: 39, y: 63 },\r\n { x: 40, y: 59.5 },\r\n { x: 41, y: 62.5 },\r\n { x: 42, y: 59.7 },\r\n { x: 43, y: 57 },\r\n { x: 44, y: 61 },\r\n { x: 45, y: 59 },\r\n { x: 46, y: 61 },\r\n { x: 47, y: 65 },\r\n { x: 48, y: 62 },\r\n { x: 49, y: 60 },\r\n { x: 50, y: 58 },\r\n { x: 51, y: 59 },\r\n { x: 52, y: 61 },\r\n { x: 53, y: 64 },\r\n { x: 54, y: 65.5 },\r\n { x: 55, y: 67 },\r\n { x: 56, y: 68 },\r\n { x: 57, y: 69 },\r\n { x: 58, y: 68 },\r\n { x: 59, y: 69.5 },\r\n { x: 60, y: 69.9 },\r\n { x: 61, y: 68.5 },\r\n { x: 62, y: 67 },\r\n { x: 63, y: 65 },\r\n { x: 64, y: 63 },\r\n { x: 65, y: 60 },\r\n { x: 66, y: 61.6 },\r\n { x: 67, y: 62 },\r\n { x: 68, y: 61 },\r\n { x: 69, y: 60 },\r\n { x: 70, y: 63.3 },\r\n { x: 71, y: 62.7 },\r\n { x: 72, y: 64.3 },\r\n { x: 73, y: 63 },\r\n { x: 74, y: 61.2 },\r\n { x: 75, y: 60 },\r\n { x: 76, y: 61 },\r\n { x: 77, y: 64 },\r\n { x: 78, y: 61.9 },\r\n { x: 79, y: 61 },\r\n { x: 80, y: 58 },\r\n { x: 81, y: 59 },\r\n { x: 82, y: 60.5 },\r\n { x: 83, y: 61 },\r\n { x: 84, y: 63 },\r\n { x: 85, y: 64.5 },\r\n { x: 86, y: 65 },\r\n { x: 87, y: 66.2 },\r\n { x: 88, y: 64.9 },\r\n { x: 89, y: 63 },\r\n { x: 90, y: 62 },\r\n { x: 91, y: 63 },\r\n { x: 92, y: 61.8 },\r\n { x: 93, y: 62 },\r\n { x: 94, y: 63 },\r\n { x: 95, y: 64.2 },\r\n { x: 96, y: 63 },\r\n { x: 97, y: 61 },\r\n { x: 98, y: 59.7 },\r\n { x: 99, y: 61 },\r\n { x: 100, y: 58 },\r\n { x: 101, y: 59 },\r\n { x: 102, y: 58 },\r\n { x: 103, y: 58 },\r\n { x: 104, y: 57.5 },\r\n { x: 105, y: 59.2 },\r\n { x: 106, y: 60 },\r\n { x: 107, y: 61.9 },\r\n { x: 108, y: 63 },\r\n { x: 109, y: 64.1 },\r\n { x: 110, y: 65.9 },\r\n { x: 111, y: 64 },\r\n { x: 112, y: 65 },\r\n { x: 113, y: 62 },\r\n { x: 114, y: 60 },\r\n { x: 115, y: 58 },\r\n { x: 116, y: 57 },\r\n { x: 117, y: 58.2 },\r\n { x: 118, y: 58.6 },\r\n { x: 119, y: 59.3 },\r\n { x: 120, y: 61 }\r\n]\r\n\r\n// Adding points to the series\r\nlineSeries.add(satisfactionData.map((point) => ({ x: point.x * dataFrequency, y: point.y })))\r\n\r\n// Show the customized result table for each point\r\nlineSeries.setResultTableFormatter((builder, series, xValue, yValue) => {\r\n return builder\r\n .addRow('Customer Satisfaction')\r\n .addRow(series.axisX.formatValue(xValue))\r\n .addRow(yValue.toFixed(2) + \"%\")\r\n})\r\n","url":null,"readme":"This example shows creation of a DateTime Axis, for rendering XY-series where either/both of X/Y dimensions can present *time*. This doesn't affect the input of data - format remains as *{x: number, y: number}* - however, DateTime-axes format their values from number to a date and time. This affects axis labels, markers and cursors.\r\n\r\nA DateTime-*Axis* is created by specifying its *TickStrategy*. Here's how it looks when setting the *Axis TickStrategy*:\r\n\r\n```javascript\r\n// Add an XY Chart\r\nconst chart = lightningChart().ChartXY({})\r\n// Set the TickStrategy of the default X Axis to a DateTime TickStrategy\r\nchart.getDefaultAxisX().setTickStrategy( AxisTickStrategies.DateTime )\r\n```\r\n\r\nThe above mentioned examples will provide an Axis that will format its scale values to their DateTime-representations. This conversion relies on a reference date, further referred to as *origin-date*. This *origin-date* specifies the DateTime value that is equal to *zero* as a numeric representation. Incremental values will result in progressive DateTimes by milliseconds. For example, given *origin-date* is equal to the **1st of January 2002, 2PM**, a numeric value of **7,200,000** would be translated to **1st of January 2002 4PM**.\r\n\r\nTranslating this to how we can modify the origin date in our Axis, we can do this by adding a mutator to the setTickStrategy() method to modify the origin date:\r\n\r\n```javascript\r\n// Define the origin-date. (y, m [0-11], d [1-31], h [0-23])\r\nconst originDate = new Date(2002, 0, 1, 13)\r\n// Create DateTime AxisTickStrategy with specified originDate.\r\nchart.getDefaultAxisX()\r\n .setTickStrategy(\r\n AxisTickStrategies.DateTime,\r\n // Use a mutator to set the origin date for this Axis' TickStrategy\r\n (tickStrategy) => tickStrategy.setDateOrigin(originDate)\r\n )\r\n```\r\n\r\nIf this *TickStrategy* would be supplied to an *X-Axis*, it would effectively mean that its scale would start from 1st of January 2002 14PM, so a *XY-point* with coordinates `{ x: 0, y: 0 }` would be formated as `{ x: \"1.1.2002 14:00\", y: 0 }`.\r\n\r\n\r\nIt is worth mentioning that big *DateTime*-intervals can produce severe precision problems (eq. when zooming in). The only way to battle this is by reducing the distance of timestamps from the active *origin-date*.\r\n","image":"dateTimeAxis.png"},{"id":"lcjs-example-0021-dateTimeAxisOrigin","title":"DateTime Axis Origin","tags":["line","xy","date-time"],"description":"Example showcases using origin with Axis TickStrategies.","src":"/*\r\n * LightningChart JS Example that showcases using origin with Axis TickStrategies.\r\n */\r\n// Import LightningChartJS\r\nconst lcjs = require('@arction/lcjs')\r\n\r\n// Extract required parts from LightningChartJS.\r\nconst {\r\n lightningChart,\r\n AxisTickStrategies,\r\n DataPatterns,\r\n Themes\r\n} = lcjs\r\n\r\n// Import data-generator from 'xydata'-library.\r\nconst {\r\n createProgressiveTraceGenerator\r\n} = require('@arction/xydata')\r\n\r\n// Create Dashboard.\r\nconst db = lightningChart().Dashboard({\r\n // theme: Themes.dark \r\n numberOfRows: 2,\r\n numberOfColumns: 1\r\n})\r\n// Create two XY-charts.\r\nconst chartDefaultOrigin = db.createChartXY({\r\n columnIndex: 0,\r\n rowIndex: 0,\r\n columnSpan: 1,\r\n rowSpan: 1\r\n})\r\nconst chartModifiedOrigin = db.createChartXY({\r\n columnIndex: 0,\r\n rowIndex: 1,\r\n columnSpan: 1,\r\n rowSpan: 1\r\n})\r\n\r\n// Use the DateTime Axis TickStrategy with the default origin.\r\nchartDefaultOrigin\r\n .getDefaultAxisX()\r\n .setTickStrategy(AxisTickStrategies.DateTime)\r\n\r\n// Use the DateTime Axis TickStrategy with the origin set to current day.\r\nchartModifiedOrigin\r\n .getDefaultAxisX()\r\n .setTickStrategy(\r\n AxisTickStrategies.DateTime,\r\n (tickStrategy) => tickStrategy.setDateOrigin(new Date()\r\n ))\r\n// Setup the charts. \r\nchartDefaultOrigin\r\n .setTitle('Default origin')\r\n .getDefaultAxisY()\r\n .setTitle('Value')\r\nchartModifiedOrigin\r\n .setTitle('Modified origin')\r\n .getDefaultAxisY()\r\n .setTitle('Value')\r\n\r\n// Create progressive line series for both charts.\r\n// Using the DataPatterns object to select the horizontalProgressive pattern for the line series.\r\nconst series1 = chartDefaultOrigin.addLineSeries({ dataPattern: DataPatterns.horizontalProgressive })\r\nconst series2 = chartModifiedOrigin.addLineSeries({ dataPattern: DataPatterns.horizontalProgressive })\r\n\r\n// Create a multiplier to set each point on X Axis correspond to 1 hour of time.\r\nconst dataFrequency = 1000 * 60 * 60\r\n\r\n// Generate traced points using 'xydata'-library.\r\ncreateProgressiveTraceGenerator()\r\n .setNumberOfPoints(1000)\r\n .generate()\r\n .toPromise()\r\n .then(data => {\r\n // Use same data on both Series for demonstration purposes.\r\n series1.add(data.map((point) => ({ x: point.x * dataFrequency, y: point.y })))\r\n series2.add(data.map((point) => ({ x: point.x * dataFrequency, y: point.y })))\r\n })\r\n","url":null,"readme":"This example shows the usage of Origin Date with DateTime Axis TickStrategy, for rendering XY-series where either or both of X/Y dimensions can present *time*.\r\n\r\nIn the example, both charts use the same data, with each point of data set to be an hour apart along the X Axis; What is different between the charts, is the *origin* for the DateTime TickStrategy used in the X Axis.\r\n\r\nThe top chart uses the default origin (January 1st, 1970), while the bottom chart uses a custom origin (set to current Date).\r\n\r\nThe *origin-date* can be specified to whichever DateTime is desired. It is done by passing a *javascript Date object* to the function that creates the *DateTime TickStrategy*:\r\n\r\n```javascript\r\n// Define the origin-date. (y, m [0-11], d [1-31], h [0-23])\r\nconst originDate = new Date(2002, 0, 1, 13)\r\n// Create DateTime AxisTickStrategy with specified originDate.\r\nconst dateTimeTickStrategy = AxisTickStrategies.DateTime(originDate)\r\n// Create a chart\r\nconst chart = lightningChart().ChartXY({})\r\n// Get the default X Axis\r\nchart.getDefaultAxisX()\r\n // Set the Tick Strategy to use\r\n .setTickStrategy( AxisTickStrategies.DateTime,\r\n // Use created DateTime AxisTickStrategy in the X Axis\r\n (tickStrategy) => tickStrategy.setDateOrigin(dat1eTimeTickStrategy) )\r\n```\r\n\r\nIf this *TickStrategy* would be supplied to an *X-Axis*, it would effectively mean that its scale would start from 1st of January 2002 14PM, so a *XY-point* with coordinates `{ x: 0, y: 0 }` would be formated as `{ x: 1.1.2002 14:00, y: 0 }`.\r\n\r\nIt is worth mentioning that big *DateTime*-intervals can produce severe precision problems (eq. when zooming in). The only way to battle this is by reducing the distance of timestamps from the active *origin-date*.\r\n","image":"dateTimeAxisOrigin.png"},{"id":"lcjs-example-0100-areaRange","title":"Area Range","tags":["area","range","xy","date-time"],"description":"Example showcasing basic use of an Area Range Series. Also known as a Area Graph, Area Chart or Range Area Chart.","src":"/*\r\n * LightningChartJS example that showcases AreaRangeSeries.\r\n */\r\n// Import LightningChartJS\r\nconst lcjs = require('@arction/lcjs')\r\n\r\n// Extract required parts from LightningChartJS.\r\nconst {\r\n lightningChart,\r\n AxisTickStrategies,\r\n Themes\r\n} = lcjs\r\n\r\n// Decide on an origin for DateTime axis.\r\nconst dateOrigin = new Date(2018, 0, 1)\r\n\r\n// Create a XY Chart.\r\nconst chart = lightningChart().ChartXY({\r\n // theme: Themes.dark\r\n})\r\n//Cache default X Axis for use.\r\nconst axisX = chart.getDefaultAxisX()\r\n// Use DateTime TickStrategy, using the origin specified above.\r\naxisX\r\n .setTickStrategy(\r\n AxisTickStrategies.DateTime,\r\n (tickStrategy) => tickStrategy.setDateOrigin(dateOrigin)\r\n )\r\nchart.setTitle('Area Range')\r\n// Add AreaRange Series\r\nconst areaRange = chart.addAreaRangeSeries()\r\n// Modify the ResultTable formatting.\r\nareaRange.setResultTableFormatter((builder, series, figure, yMax, yMin) => {\r\n return builder\r\n .addRow('Actual vs Expected Share Prices of Company')\r\n .addRow('Date: ' + axisX.formatValue(figure))\r\n .addRow('Actual: ' + yMax.toFixed(2) + ' $')\r\n .addRow('Expected: ' + yMin.toFixed(2) + ' $')\r\n})\r\nchart.getDefaultAxisY()\r\n .setTitle('Share price ($)')\r\n// Data for the AreaRange Series\r\nlet areaRangeData = [\r\n {\r\n x: 0, yMax: 24, yMin: -15\r\n },\r\n {\r\n x: 6, yMax: 11, yMin: -13\r\n },\r\n {\r\n x: 13, yMax: 16, yMin: -11\r\n },\r\n {\r\n x: 20, yMax: 26, yMin: -8\r\n },\r\n {\r\n x: 27, yMax: -2, yMin: -4\r\n },\r\n {\r\n x: 34, yMax: -16, yMin: 2\r\n },\r\n {\r\n x: 41, yMax: -10, yMin: 9\r\n },\r\n {\r\n x: 48, yMax: 3, yMin: 17\r\n },\r\n {\r\n x: 55, yMax: -1, yMin: 26\r\n },\r\n {\r\n x: 62, yMax: 6, yMin: 35\r\n },\r\n {\r\n x: 69, yMax: 17, yMin: 39\r\n },\r\n {\r\n x: 76, yMax: -10, yMin: 41\r\n },\r\n {\r\n x: 83, yMax: -8, yMin: 42\r\n },\r\n {\r\n x: 90, yMax: 13, yMin: 41\r\n },\r\n {\r\n x: 97, yMax: -12, yMin: 39\r\n },\r\n {\r\n x: 104, yMax: 6, yMin: 37\r\n },\r\n {\r\n x: 111, yMax: -10, yMin: 36.5\r\n },\r\n {\r\n x: 118, yMax: 27, yMin: 36\r\n },\r\n {\r\n x: 125, yMax: 52, yMin: 38\r\n },\r\n {\r\n x: 132, yMax: 59, yMin: 42\r\n },\r\n {\r\n x: 139, yMax: 64, yMin: 50\r\n },\r\n\r\n {\r\n x: 146, yMax: 59, yMin: 53\r\n },\r\n {\r\n x: 153, yMax: 71, yMin: 54\r\n },\r\n {\r\n x: 160, yMax: 63, yMin: 53\r\n },\r\n {\r\n x: 167, yMax: 79, yMin: 52\r\n },\r\n {\r\n x: 174, yMax: 62, yMin: 51\r\n },\r\n {\r\n x: 181, yMax: 81, yMin: 49\r\n },\r\n {\r\n x: 188, yMax: 53, yMin: 48\r\n },\r\n {\r\n x: 195, yMax: 89, yMin: 48.5\r\n },\r\n {\r\n x: 202, yMax: 99, yMin: 49\r\n },\r\n {\r\n x: 209, yMax: 79, yMin: 51\r\n },\r\n {\r\n x: 216, yMax: 51, yMin: 51\r\n },\r\n {\r\n x: 223, yMax: 36, yMin: 51\r\n },\r\n {\r\n x: 230, yMax: 79, yMin: 50\r\n },\r\n {\r\n x: 237, yMax: 49, yMin: 53\r\n },\r\n {\r\n x: 244, yMax: 33, yMin: 55\r\n },\r\n {\r\n x: 251, yMax: 51, yMin: 58\r\n },\r\n {\r\n x: 258, yMax: 43, yMin: 60\r\n },\r\n {\r\n x: 265, yMax: 72, yMin: 61\r\n },\r\n {\r\n x: 272, yMax: 82, yMin: 60.5\r\n },\r\n {\r\n x: 279, yMax: 73, yMin: 59\r\n },\r\n\r\n {\r\n x: 286, yMax: 73, yMin: 58\r\n },\r\n {\r\n x: 293, yMax: 67, yMin: 55\r\n },\r\n {\r\n x: 300, yMax: 43, yMin: 53\r\n },\r\n {\r\n x: 307, yMax: 12, yMin: 54\r\n },\r\n {\r\n x: 314, yMax: 26, yMin: 54.5\r\n },\r\n {\r\n x: 321, yMax: 46, yMin: 56\r\n },\r\n {\r\n x: 328, yMax: 43, yMin: 58\r\n },\r\n {\r\n x: 335, yMax: 72, yMin: 60\r\n },\r\n {\r\n x: 342, yMax: 82, yMin: 62.5\r\n },\r\n {\r\n x: 349, yMax: 73, yMin: 64\r\n },\r\n {\r\n x: 356, yMax: 92, yMin: 65\r\n },\r\n {\r\n x: 363, yMax: 107, yMin: 66\r\n }\r\n]\r\n\r\nareaRangeData.forEach((point, i) => {\r\n areaRange.add({ position: (point.x * 24 * 60 * 60 * 1000), high: point.yMax, low: point.yMin })\r\n})\r\n","url":null,"readme":"*Also known as a Area Graph, Area Chart or Range Area Chart*\r\n\r\nThe example shows the basic usage of an Area Range series. The Range Area Chart is similar to the ***Area series***, which is plotted by shading the area between a range of values ( high & low ) represented by two curves of data. \r\n\r\nRange charts are generally used to show variations (low & high) simultaneously in the given period. Typical visualization applications use this type of graph shows temperature, price etc.\r\n\r\nThe series uses two fill styles, which can be configured individually, the identical behavior is applicable for borders:\r\n - the normal fill is used when High is greater than Low\r\n - the reversed fill is used when Low is greater than High\r\n\r\n```javascript\r\n// Create a new ChartXY.\r\nconst chart = lightningChart().ChartXY()\r\n\r\n// Add an area series with bipolar direction using default X and Y axes.\r\nconst areaRange = chart.addAreaRangeSeries()\r\n```\r\n\r\nThe series accepts ***AreaPoint*** type of points either as an object in format `{ position: number, high: number, low: number }`,\r\n\r\n```javascript\r\nseries.add({ position: 20, high: 45, low: -20 })\r\n```\r\n\r\nor via a factory that should be additionally imported.\r\n\r\n```javascript\r\nseries.add( AreaPoint( 20, 45, -20 ) )\r\n```\r\n\r\nAny number of points can be added with a single call.\r\n\r\n```javascript\r\n// Single point.\r\nseries.add({ position: 20, high: 45, low: -20 })\r\n\r\n// Multiple points at once.\r\nseries.add([\r\n { position: 20, high: 45, low: -20 },\r\n { position: 40, high: 95, low: 10 },\r\n { position: 60, high: 25, low: 60 }\r\n])\r\n```\r\n","image":"areaRange.png"},{"id":"lcjs-example-0101-multipleAreas","title":"Multiple Areas","tags":["range","area","xy"],"description":"Basic usage of a Monopolar Area series. Also known as a Area Graph or Area Chart.","src":"/*\r\n * LightningChart® example code: Demo shows how to draw multiple layered area series.\r\n * If you need any assistance, or notice error in this example code, please contact support@arction.com. \r\n * \r\n * http://www.arction.com | support@arction.com | sales@arction.com\r\n * © Arction Ltd 2009-2019. All rights reserved. \r\n */\r\n// Import LightningChartJS\r\nconst lcjs = require('@arction/lcjs')\r\n\r\n// Extract required parts from LightningChartJS.\r\nconst {\r\n lightningChart,\r\n AreaSeriesTypes,\r\n ColorPalettes,\r\n SolidFill,\r\n UIOrigins,\r\n UIElementBuilders,\r\n LegendBoxBuilders,\r\n UIButtonPictures,\r\n Themes\r\n} = lcjs\r\n\r\n// ----- Cache styles -----\r\nconst palette = ColorPalettes.fullSpectrum(10)\r\nconst solidFills = [3, 0].map(palette).map(color => new SolidFill({ color }))\r\nconst opaqueFills = solidFills.map(fill => fill.setA(150))\r\n\r\n// Create a XY Chart.\r\nconst xyChart = lightningChart().ChartXY({\r\n // theme: Themes.dark \r\n})\r\n .setTitle('Expected Profits To Expenses')\r\n .setPadding({ right: 2 })\r\n\r\n// Create a LegendBox as part of the chart.\r\nconst legend = xyChart.addLegendBox(LegendBoxBuilders.HorizontalLegendBox)\r\n .setPosition({ x: 5, y: 95 })\r\n .setOrigin(UIOrigins.LeftTop)\r\n\r\n// ---- Add multiple Area series with different baselines and direction. ----\r\n// Create semi-transparent red area to draw points above the baseline.\r\nconst areaProfit = xyChart.addAreaSeries({ type: AreaSeriesTypes.Positive })\r\n .setFillStyle(opaqueFills[0])\r\n .setStrokeStyle(stroke => stroke.setFillStyle(solidFills[0]))\r\n .setName('Profits')\r\n\r\n// Create semi-transparent orange area to draw points below the baseline.\r\nconst areaExpense = xyChart.addAreaSeries({ type: AreaSeriesTypes.Negative })\r\n .setFillStyle(opaqueFills[1])\r\n .setStrokeStyle(stroke => stroke.setFillStyle(solidFills[1]))\r\n .setName('Expenses')\r\n\r\n// Set Axis nicely\r\nxyChart.getDefaultAxisX()\r\n .setTitle('Units Produced')\r\nxyChart.getDefaultAxisY()\r\n .setTitle('USD')\r\n\r\nconst profitData = [\r\n { x: 0, y: 0 },\r\n { x: 10, y: 21 },\r\n { x: 20, y: 59 },\r\n { x: 30, y: 62 },\r\n { x: 40, y: 78 },\r\n { x: 50, y: 85 },\r\n { x: 60, y: 95 },\r\n { x: 70, y: 98 },\r\n { x: 80, y: 103 },\r\n { x: 90, y: 110 },\r\n { x: 100, y: 112 },\r\n { x: 110, y: 126 },\r\n { x: 120, y: 132 },\r\n { x: 130, y: 170 },\r\n { x: 140, y: 172 },\r\n { x: 150, y: 202 },\r\n { x: 160, y: 228 },\r\n { x: 170, y: 267 },\r\n { x: 180, y: 300 },\r\n { x: 190, y: 310 },\r\n { x: 200, y: 320 },\r\n { x: 210, y: 329 },\r\n { x: 220, y: 336 },\r\n { x: 230, y: 338 },\r\n { x: 240, y: 343 },\r\n { x: 250, y: 352 },\r\n { x: 260, y: 355 },\r\n { x: 270, y: 390 },\r\n { x: 280, y: 392 },\r\n { x: 290, y: 418 },\r\n { x: 300, y: 421 },\r\n { x: 310, y: 430 },\r\n { x: 320, y: 434 },\r\n { x: 330, y: 468 },\r\n { x: 340, y: 472 },\r\n { x: 350, y: 474 },\r\n { x: 360, y: 480 },\r\n { x: 370, y: 506 },\r\n { x: 380, y: 545 },\r\n { x: 390, y: 548 },\r\n { x: 400, y: 552 },\r\n { x: 410, y: 584 },\r\n { x: 420, y: 612 },\r\n { x: 430, y: 619 },\r\n { x: 440, y: 627 },\r\n { x: 450, y: 657 },\r\n { x: 460, y: 669 },\r\n { x: 470, y: 673 },\r\n { x: 480, y: 695 },\r\n { x: 490, y: 702 },\r\n { x: 500, y: 710 }\r\n]\r\nconst expensesData = [\r\n { x: 0, y: 0 },\r\n { x: 10, y: -58 },\r\n { x: 20, y: -61 },\r\n { x: 30, y: -62 },\r\n { x: 40, y: -66 },\r\n { x: 50, y: -88 },\r\n { x: 60, y: -93 },\r\n { x: 70, y: -124 },\r\n { x: 80, y: -126 },\r\n { x: 90, y: -136 },\r\n { x: 100, y: -152 },\r\n { x: 110, y: -156 },\r\n { x: 120, y: -190 },\r\n { x: 130, y: -199 },\r\n { x: 140, y: -200 },\r\n { x: 150, y: -208 },\r\n { x: 160, y: -210 },\r\n { x: 170, y: -235 },\r\n { x: 180, y: -270 },\r\n { x: 190, y: -299 },\r\n { x: 200, y: -321 },\r\n { x: 210, y: -342 },\r\n { x: 220, y: -350 },\r\n { x: 230, y: -360 },\r\n { x: 240, y: -374 },\r\n { x: 250, y: -413 },\r\n { x: 260, y: -433 },\r\n { x: 270, y: -447 },\r\n { x: 280, y: -449 },\r\n { x: 290, y: -454 },\r\n { x: 300, y: -461 },\r\n { x: 310, y: -461 },\r\n { x: 320, y: -492 },\r\n { x: 330, y: -496 },\r\n { x: 340, y: -518 },\r\n { x: 350, y: -522 },\r\n { x: 360, y: -557 },\r\n { x: 370, y: -562 },\r\n { x: 380, y: -596 },\r\n { x: 390, y: -599 },\r\n { x: 400, y: -609 },\r\n { x: 410, y: -611 },\r\n { x: 420, y: -628 },\r\n { x: 430, y: -635 },\r\n { x: 440, y: -636 },\r\n { x: 450, y: -643 },\r\n { x: 460, y: -643 },\r\n { x: 470, y: -647 },\r\n { x: 480, y: -648 },\r\n { x: 490, y: -659 },\r\n { x: 500, y: -665 }\r\n]\r\n\r\n// ---- Generate points using 'xydata'-library and add it to every plot. ----\r\nprofitData.forEach((point) => { areaProfit.add(point) })\r\nexpensesData.forEach((point) => { areaExpense.add(point) })\r\n\r\n// Set the custom result table for both areaSeries\r\nareaProfit\r\n .setResultTableFormatter((builder, series, position, highValue, lowValue) => {\r\n return builder\r\n .addRow('Profits')\r\n .addRow('Amount: $' + highValue.toFixed(0))\r\n .addRow('Units Produced: ' + position.toFixed(0))\r\n })\r\nareaExpense\r\n .setResultTableFormatter((builder, series, position, highValue, lowValue) => {\r\n return builder\r\n .addRow('Expenses')\r\n .addRow('Amount: $' + highValue.toFixed(0) * -1)\r\n .addRow('Units Produced: ' + position.toFixed(0))\r\n })\r\n\r\n// Add series to LegendBox and style entries.\r\nlegend.add(\r\n areaProfit,\r\n true,\r\n 'Expected Profits To Expenses',\r\n UIElementBuilders.CheckBox\r\n .setPictureOff(UIButtonPictures.Circle)\r\n .setPictureOn(UIButtonPictures.Circle)\r\n)\r\nlegend.add(\r\n areaExpense,\r\n true,\r\n 'Expected Profits To Expenses',\r\n UIElementBuilders.CheckBox\r\n .setPictureOff(UIButtonPictures.Circle)\r\n .setPictureOn(UIButtonPictures.Circle)\r\n)\r\n","url":null,"readme":"*Also known as a Area Graph or Area Chart*\r\n\r\nThe example shows the basic usage of a monopolar area series. The area series is based on ***line series*** with the area between the baseline and the given data filled with color. It is drawn on a Cartesian coordinate system and represents the quantitative data.\r\n\r\nCurrent example chart contains two monopolar area series. They are drawn on different sides of the specified baseline and the selected area type specifies the direction. The first area has a positive direction, the second one has a negative direction.\r\n\r\nThe simple area chart can be created with few simple lines of code:\r\n\r\n```javascript\r\n// Create a new ChartXY.\r\nconst chart = lightningChart().ChartXY()\r\n\r\n// Add an area series with positive direction using default X and Y axes.\r\nconst areaPositive = chart.addAreaSeries( { baseline: 0, type: AreaSeriesTypes.Positive } )\r\n\r\n// Add an area series with negative direction using default X and Y axes.\r\nconst areaNegative = chart.addAreaSeries( { baseline: 0, type: AreaSeriesTypes.Negative } )\r\n```\r\n\r\nThe baseline value the type of number and the type can be specified only during the creation of a series instance, where\r\n\r\n- The baseline is a fixed reference level of minimum or starting point used for comparisons, which allow customizing the position of the area.\r\n\r\n- The type of area series is an enum selector which defines the type of area series:\r\n - Select AreaSeriesTypes.Positive to show the data only above the baseline.\r\n - Select AreaSeriesTypes.Negative to show the data only below the baseline.\r\n - Select AreaSeriesTypes.Both to show the data from both sides of the baseline. *Bipolar area series will be explained in the future example*.\r\n\r\nThe series accepts points in format `{ x: number, y: number }`. Any number of points can be added with a single call.\r\n\r\n```javascript\r\n// Single point.\r\nseries.add({ x: 50, y: 60 })\r\n\r\n// Multiple points at once.\r\nseries.add([\r\n { x: 55, y: 60 },\r\n { x: 60, y: 62},\r\n { x: 65, y: 65}\r\n])\r\n```\r\n","image":"multipleAreas.png"},{"id":"lcjs-example-0102-areaBipolar","title":"Area Bipolar","tags":["area","xy","date-time"],"description":"Basic usage of Bipolar Area Series. Also known as a Bubble Series, Bubble Chart and Bubble Graph.","src":"/*\r\n * LightningChart® example code: Demo shows how to draw multiple layered area series.\r\n * If you need any assistance, or notice error in this example code, please contact support@arction.com. \r\n * \r\n * http://www.arction.com | support@arction.com | sales@arction.com\r\n * © Arction Ltd 2009-2019. All rights reserved. \r\n */\r\n// Import LightningChartJS\r\nconst lcjs = require('@arction/lcjs')\r\n\r\n// Extract required parts from LightningChartJS.\r\nconst {\r\n lightningChart,\r\n AreaSeriesTypes,\r\n AxisScrollStrategies,\r\n AxisTickStrategies,\r\n AutoCursorModes,\r\n Themes\r\n} = lcjs\r\n\r\n// Decide on an origin for DateTime axis.\r\nconst dateOrigin = new Date(2017, 0, 1)\r\n\r\n// Create a XY Chart.\r\nconst xyChart = lightningChart().ChartXY({\r\n // theme: Themes.dark\r\n})\r\nxyChart.getDefaultAxisX().setTickStrategy(AxisTickStrategies.DateTime, (tickStrategy) => tickStrategy.setDateOrigin(dateOrigin))\r\nxyChart.setTitle('Company growth in comparison to static baseline')\r\nxyChart.setAutoCursorMode(AutoCursorModes.onHover)\r\n\r\n// set y-axis title\r\nconst axisY = xyChart.getDefaultAxisY()\r\n .setTitle('Growth %')\r\n .setScrollStrategy(AxisScrollStrategies.progressive)\r\n .setInterval(0, 80)\r\n\r\nlet areaBipolarData = [\r\n { x: 0, y: 12 },\r\n { x: 1, y: 71 },\r\n { x: 2, y: 24 },\r\n { x: 3, y: 39 },\r\n { x: 4, y: 24 },\r\n { x: 5, y: 10 },\r\n { x: 6, y: 58 },\r\n { x: 7, y: 10 },\r\n { x: 8, y: 74 },\r\n { x: 9, y: 23 },\r\n { x: 10, y: 19 },\r\n { x: 11, y: 25 },\r\n { x: 12, y: 51 },\r\n { x: 13, y: 20 },\r\n { x: 14, y: 40 },\r\n { x: 15, y: 50 },\r\n { x: 16, y: 26 },\r\n { x: 17, y: 72 },\r\n { x: 18, y: 39 },\r\n { x: 19, y: 49 },\r\n { x: 20, y: 22 },\r\n { x: 21, y: 21 },\r\n { x: 22, y: 36 },\r\n { x: 23, y: 73 },\r\n { x: 24, y: 67 },\r\n { x: 25, y: 53 },\r\n { x: 26, y: 8 },\r\n { x: 27, y: 7 },\r\n { x: 28, y: 71 },\r\n { x: 29, y: 29 },\r\n { x: 30, y: 56 },\r\n { x: 31, y: 18 },\r\n { x: 32, y: 15 },\r\n { x: 33, y: 9 },\r\n { x: 34, y: 29 },\r\n { x: 35, y: 64 },\r\n { x: 36, y: 44 },\r\n { x: 37, y: 62 },\r\n { x: 38, y: 70 },\r\n { x: 39, y: 19 },\r\n { x: 40, y: 55 },\r\n { x: 41, y: 15 },\r\n { x: 42, y: 48 },\r\n { x: 43, y: 23 },\r\n { x: 44, y: 51 },\r\n { x: 45, y: 51 },\r\n { x: 46, y: 64 },\r\n { x: 47, y: 15 },\r\n { x: 48, y: 31 },\r\n { x: 49, y: 40 },\r\n { x: 50, y: 11 },\r\n { x: 51, y: 30 }\r\n]\r\nconst dataFrequency = 1000 * 60 * 60 * 24 * 7\r\n// Add dynamic bipolar Area Series.\r\nconst areaBipolar = xyChart.addAreaSeries({ baseline: 40, type: AreaSeriesTypes.Bipolar })\r\n .setCursorInterpolationEnabled(false)\r\n .setResultTableFormatter((builder, series, position, high, low) => builder\r\n .addRow(series.getName())\r\n .addRow('Date:', series.axisX.formatValue(position))\r\n .addRow('Growth:', series.axisY.formatValue(high), '%')\r\n )\r\n\r\nareaBipolar.add(areaBipolarData.map(point => ({ x: point.x * dataFrequency, y: point.y })))\r\n","url":null,"readme":"*Also known as a Area Graph, Area Chart or Area Chart with Negative values*\r\n\r\nThe example shows the basic usage of a bipolar area series. The area series is based on ***line series*** with the area between the baseline and the given data filled with color. It is drawn on a Cartesian coordinate system and represents the quantitative data.\r\n\r\nCurrent example chart contains one bipolar area series. The data is drawn from both sides of the specified baseline. \r\n\r\nThe simple area chart can be created with few simple lines of code:\r\n\r\n```javascript\r\n// Create a new ChartXY.\r\nconst chart = lightningChart().ChartXY()\r\n\r\n// Add an area series with bipolar direction using default X and Y axes.\r\nconst areaBipolar = chart.addAreaSeries( { baseline: 0, type: AreaSeriesTypes.Both } )\r\n```\r\n\r\nThe baseline value the type of number and the type can be specified only during the creation of a series instance, where\r\n\r\n- The baseline is a fixed reference level of minimum or starting point used for comparisons, which allow customizing the position of the area.\r\n\r\n- The type of area series is an enum selector which defines the type of area series:\r\n - Select AreaSeriesTypes.Both to show the data from both sides of the baseline.\r\n\r\nThe series accepts points in format `{ x: number, y: number }`. Any number of points can be added with a single call.\r\n\r\n```javascript\r\n// Single point.\r\nseries.add({ x: 50, y: 60 })\r\n\r\n// Multiple points at once.\r\nseries.add([\r\n { x: 55, y: 60 },\r\n { x: 60, y: 62},\r\n { x: 65, y: 65}\r\n])\r\n```\r\n","image":"areaBipolar.png"},{"id":"lcjs-example-0103-layeredAreas","title":"Layered Areas","tags":["area","xy","date-time"],"description":"Layered Area Chart done by layering multiple Area Series on top of each other. Also known as a Layered Area Graph, Layered Area Chart or Multiple Area Charts.","src":"/*\r\n * LightningChartJS example that showcases creation and styling of Area Series in a layered setting.\r\n */\r\n// Import LightningChartJS\r\nconst lcjs = require('@arction/lcjs')\r\n\r\n// Extract required parts from LightningChartJS.\r\nconst {\r\n lightningChart,\r\n ColorPalettes,\r\n SolidFill,\r\n emptyLine,\r\n emptyFill,\r\n AxisTickStrategies,\r\n ColorRGBA,\r\n Themes\r\n} = lcjs\r\n\r\n// ----- Cache styles -----\r\nconst palette = ColorPalettes.arctionWarm(2)\r\nconst solidFills = [2, 1, 0].map(palette).map((color) => new SolidFill({ color }))\r\nconst opaqueFills = solidFills.map(fill => fill.setA(150))\r\n\r\n// Create a XY Chart.\r\nconst xyChart = lightningChart().ChartXY({\r\n // theme: Themes.dark \r\n})\r\n .setTitle('Product version distribution')\r\n .setMouseInteractions(true)\r\n .setPadding({ right: 25 })\r\n\r\n// Custom tick labels for X Axis.\r\nconst reportTableXlable = ['Jan-17', 'Feb-17', 'Mar-17', 'Apr-17', 'May-17', 'Jun-17', 'Jul-17',\r\n 'Aug-17', 'Sep-17', 'Oct-17', 'Nov-17', 'Dec-17']\r\n\r\n// Creating AreaSeries\r\nconst createAreaSeries = (versionNumber, index) => {\r\n return xyChart.addAreaSeries()\r\n .setName(`Version ${versionNumber}`)\r\n .setFillStyle(opaqueFills[index])\r\n .setStrokeStyle((stroke) => stroke.setFillStyle(solidFills[index]))\r\n .setResultTableFormatter((builder, series, xValue, yValue) => {\r\n return builder\r\n .addRow(series.getName())\r\n .addRow('Date: ', reportTableXlable[parseInt(xValue)])\r\n .addRow('Distribution: ' + yValue.toFixed(2))\r\n });\r\n}\r\n\r\n// Create the area series\r\nconst V1Area = createAreaSeries(1, 0)\r\nconst V2Area = createAreaSeries(2, 2)\r\nconst V3Area = createAreaSeries(3, 2)\r\nconst V4Area = createAreaSeries(4, 0)\r\nconst V5Area = createAreaSeries(5, 1)\r\nconst V6Area = createAreaSeries(6, 2)\r\nconst V7Area = createAreaSeries(7, 0)\r\nconst V8Area = createAreaSeries(8, 1)\r\nconst V9Area = createAreaSeries(9, 2)\r\nconst V10Area = createAreaSeries(10, 0)\r\nconst V11Area = createAreaSeries(11, 1)\r\nconst V12Area = createAreaSeries(12, 2)\r\n\r\n// DataSet for all versions\r\nconst version1 = [{\r\n x: 'Jan-17', y: 1.3\r\n}, {\r\n x: 'Feb-17', y: 1.1\r\n}, {\r\n x: 'Mar-17', y: 1\r\n}, {\r\n x: 'Apr-17', y: 0.8\r\n}, {\r\n x: 'May-17', y: 0.7\r\n}, {\r\n x: 'Jun-17', y: 0.6\r\n}, {\r\n x: 'Jul-17', y: 0.6\r\n}, {\r\n x: 'Aug-17', y: 0.5\r\n}, {\r\n x: 'Sep-17', y: 0.4\r\n}, {\r\n x: 'Oct-17', y: 0.4\r\n}, {\r\n x: 'Nov-17', y: 0.3\r\n}, {\r\n x: 'Dec-17', y: 0.3\r\n}]\r\n\r\nconst version2 = [{\r\n x: 'Jan-17', y: 4.9\r\n}, {\r\n x: 'Feb-17', y: 4\r\n}, {\r\n x: 'Mar-17', y: 3.7\r\n}, {\r\n x: 'Apr-17', y: 3.2\r\n}, {\r\n x: 'May-17', y: 2.8\r\n}, {\r\n x: 'Jun-17', y: 2.4\r\n}, {\r\n x: 'Jul-17', y: 2.3\r\n}, {\r\n x: 'Aug-17', y: 2\r\n}, {\r\n x: 'Sep-17', y: 1.7\r\n}, {\r\n x: 'Oct-17', y: 1.5\r\n}, {\r\n x: 'Nov-17', y: 1.2\r\n}, {\r\n x: 'Dec-17', y: 1.1\r\n}]\r\n\r\nconst version3 = [{\r\n x: 'Jan-17', y: 6.8\r\n}, {\r\n x: 'Feb-17', y: 5.9\r\n}, {\r\n x: 'Mar-17', y: 5.4\r\n}, {\r\n x: 'Apr-17', y: 4.6\r\n}, {\r\n x: 'May-17', y: 4.1\r\n}, {\r\n x: 'Jun-17', y: 3.5\r\n}, {\r\n x: 'Jul-17', y: 3.3\r\n}, {\r\n x: 'Aug-17', y: 3\r\n}, {\r\n x: 'Sep-17', y: 2.6\r\n}, {\r\n x: 'Oct-17', y: 2.2\r\n}, {\r\n x: 'Nov-17', y: 1.8\r\n}, {\r\n x: 'Dec-17', y: 1.5\r\n}]\r\n\r\nconst version4 = [{\r\n x: 'Jan-17', y: 2\r\n}, {\r\n x: 'Feb-17', y: 1.7\r\n}, {\r\n x: 'Mar-17', y: 1.5\r\n}, {\r\n x: 'Apr-17', y: 1.3\r\n}, {\r\n x: 'May-17', y: 1.2\r\n}, {\r\n x: 'Jun-17', y: 1\r\n}, {\r\n x: 'Jul-17', y: 1\r\n}, {\r\n x: 'Aug-17', y: 0.9\r\n}, {\r\n x: 'Sep-17', y: 0.7\r\n}, {\r\n x: 'Oct-17', y: 0.6\r\n}, {\r\n x: 'Nov-17', y: 0.5\r\n}, {\r\n x: 'Dec-17', y: 0.4\r\n}]\r\n\r\nconst version5 = [{\r\n x: 'Jan-17', y: 25.2\r\n}, {\r\n x: 'Feb-17', y: 22.6\r\n}, {\r\n x: 'Mar-17', y: 20.8\r\n}, {\r\n x: 'Apr-17', y: 18.8\r\n}, {\r\n x: 'May-17', y: 17.1\r\n}, {\r\n x: 'Jun-17', y: 15.1\r\n}, {\r\n x: 'Jul-17', y: 14.5\r\n}, {\r\n x: 'Aug-17', y: 13.4\r\n}, {\r\n x: 'Sep-17', y: 12\r\n}, {\r\n x: 'Oct-17', y: 10.3\r\n}, {\r\n x: 'Nov-17', y: 8.6\r\n}, {\r\n x: 'Dec-17', y: 7.6\r\n}]\r\n\r\nconst version6 = [{\r\n x: 'Jan-17', y: 11.3\r\n}, {\r\n x: 'Feb-17', y: 10.1\r\n}, {\r\n x: 'Mar-17', y: 9.4\r\n}, {\r\n x: 'Apr-17', y: 8.7\r\n}, {\r\n x: 'May-17', y: 7.8\r\n}, {\r\n x: 'Jun-17', y: 7.1\r\n}, {\r\n x: 'Jul-17', y: 6.7\r\n}, {\r\n x: 'Aug-17', y: 6.1\r\n}, {\r\n x: 'Sep-17', y: 5.4\r\n}, {\r\n x: 'Oct-17', y: 4.8\r\n}, {\r\n x: 'Nov-17', y: 3.8\r\n}, {\r\n x: 'Dec-17', y: 3.5\r\n}]\r\n\r\nconst version7 = [{\r\n x: 'Jan-17', y: 22.8\r\n}, {\r\n x: 'Feb-17', y: 23.3\r\n}, {\r\n x: 'Mar-17', y: 23.1\r\n}, {\r\n x: 'Apr-17', y: 23.3\r\n}, {\r\n x: 'May-17', y: 23.3\r\n}, {\r\n x: 'Jun-17', y: 21.7\r\n}, {\r\n x: 'Jul-17', y: 21\r\n}, {\r\n x: 'Aug-17', y: 20.2\r\n}, {\r\n x: 'Sep-17', y: 19.2\r\n}, {\r\n x: 'Oct-17', y: 17.6\r\n}, {\r\n x: 'Nov-17', y: 15.4\r\n}, {\r\n x: 'Dec-17', y: 14.4\r\n}]\r\n\r\nconst version8 = [{\r\n x: 'Jan-17', y: 24\r\n}, {\r\n x: 'Feb-17', y: 29.6\r\n}, {\r\n x: 'Mar-17', y: 31.3\r\n}, {\r\n x: 'Apr-17', y: 31.2\r\n}, {\r\n x: 'May-17', y: 31.8\r\n}, {\r\n x: 'Jun-17', y: 32.2\r\n}, {\r\n x: 'Jul-17', y: 32\r\n}, {\r\n x: 'Aug-17', y: 29.7\r\n}, {\r\n x: 'Sep-17', y: 28.1\r\n}, {\r\n x: 'Oct-17', y: 25.5\r\n}, {\r\n x: 'Nov-17', y: 22.7\r\n}, {\r\n x: 'Dec-17', y: 21.3\r\n}]\r\n\r\nconst version9 = [{\r\n x: 'Jan-17', y: 0.3\r\n}, {\r\n x: 'Feb-17', y: 0.5\r\n}, {\r\n x: 'Mar-17', y: 2.4\r\n}, {\r\n x: 'Apr-17', y: 6.6\r\n}, {\r\n x: 'May-17', y: 10.6\r\n}, {\r\n x: 'Jun-17', y: 14.2\r\n}, {\r\n x: 'Jul-17', y: 15.8\r\n}, {\r\n x: 'Aug-17', y: 19.3\r\n}, {\r\n x: 'Sep-17', y: 22.3\r\n}, {\r\n x: 'Oct-17', y: 22.9\r\n}, {\r\n x: 'Nov-17', y: 20.3\r\n}, {\r\n x: 'Dec-17', y: 18.1\r\n}]\r\n\r\nconst version10 = [{\r\n x: 'Jan-17', y: 0\r\n}, {\r\n x: 'Feb-17', y: 0.2\r\n}, {\r\n x: 'Mar-17', y: 0.4\r\n}, {\r\n x: 'Apr-17', y: 0.5\r\n}, {\r\n x: 'May-17', y: 0.9\r\n}, {\r\n x: 'Jun-17', y: 1.6\r\n}, {\r\n x: 'Jul-17', y: 2\r\n}, {\r\n x: 'Aug-17', y: 4\r\n}, {\r\n x: 'Sep-17', y: 6.2\r\n}, {\r\n x: 'Oct-17', y: 8.2\r\n}, {\r\n x: 'Nov-17', y: 10.5\r\n}, {\r\n x: 'Dec-17', y: 10.1\r\n}]\r\n\r\nconst version11 = [{\r\n x: 'Jan-17', y: 0\r\n}, {\r\n x: 'Feb-17', y: 0\r\n}, {\r\n x: 'Mar-17', y: 0\r\n}, {\r\n x: 'Apr-17', y: 0\r\n}, {\r\n x: 'May-17', y: 0\r\n}, {\r\n x: 'Jun-17', y: 0\r\n}, {\r\n x: 'Jul-17', y: 0.2\r\n}, {\r\n x: 'Aug-17', y: 0.5\r\n}, {\r\n x: 'Sep-17', y: 0.8\r\n}, {\r\n x: 'Oct-17', y: 4.9\r\n}, {\r\n x: 'Nov-17', y: 11.4\r\n}, {\r\n x: 'Dec-17', y: 14\r\n}]\r\n\r\nconst version12 = [{\r\n x: 'Jan-17', y: 0\r\n}, {\r\n x: 'Feb-17', y: 0\r\n}, {\r\n x: 'Mar-17', y: 0\r\n}, {\r\n x: 'Apr-17', y: 0\r\n}, {\r\n x: 'May-17', y: 0\r\n}, {\r\n x: 'Jun-17', y: 0\r\n}, {\r\n x: 'Jul-17', y: 0\r\n}, {\r\n x: 'Aug-17', y: 0\r\n}, {\r\n x: 'Sep-17', y: 0.3\r\n}, {\r\n x: 'Oct-17', y: 0.8\r\n}, {\r\n x: 'Nov-17', y: 3.2\r\n}, {\r\n x: 'Dec-17', y: 7.5\r\n}]\r\n\r\nconst axisX = xyChart.getDefaultAxisX()\r\n .setMouseInteractions(false)\r\n .setScrollStrategy(undefined)\r\n // Disable default ticks.\r\n .setTickStrategy(AxisTickStrategies.Empty)\r\n\r\n// Create Custom Axis\r\nconst margin = 2;\r\nlet customAxisX = (data, index) => {\r\n axisX.addCustomTick()\r\n .setValue(index)\r\n .setGridStrokeLength(0)\r\n .setTextFormatter((_) => data[index].x)\r\n .setMarker((marker) => marker\r\n .setPadding(margin)\r\n .setBackground((background) => background\r\n .setStrokeStyle(emptyLine)\r\n .setFillStyle(emptyFill)\r\n )\r\n .setTextFillStyle(new SolidFill({ color: ColorRGBA(150, 150, 150) }))\r\n )\r\n\r\n}\r\n\r\n// Generate Chart\r\nconst generateChart = (data, area, createTicks) => {\r\n data\r\n .map((p, index) => ({ x: index, y: p.y }))\r\n .forEach((point, index) => {\r\n area.add(point)\r\n if(createTicks){\r\n customAxisX(data, index)\r\n }\r\n })\r\n}\r\n\r\n// generating different layered for charts\r\ngenerateChart(version1, V1Area, true)\r\ngenerateChart(version2, V2Area)\r\ngenerateChart(version3, V3Area)\r\ngenerateChart(version4, V4Area)\r\ngenerateChart(version5, V5Area)\r\ngenerateChart(version6, V6Area)\r\ngenerateChart(version7, V7Area)\r\ngenerateChart(version8, V8Area)\r\ngenerateChart(version9, V9Area)\r\ngenerateChart(version10, V10Area)\r\ngenerateChart(version11, V11Area)\r\ngenerateChart(version12, V12Area)\r\n\r\n// Enable AutoCursor auto-fill.\r\nxyChart.setAutoCursor((cursor) => cursor\r\n .setResultTableAutoTextStyle(false)\r\n .disposeTickMarkerX()\r\n)\r\n\r\nxyChart.getDefaultAxisY()\r\n .setTitle('Percentage')\r\n .setScrollStrategy(undefined)\r\n .setInterval(0, 50)\r\n .setMouseInteractions(false)\r\n","url":null,"readme":"*Also known as a Layered Area Graph, Layered Area Chart or Multiple Area Charts*\r\n\r\nLayers mean individual slices of information (series) which can be stacked to create your composition of multiple series within the same chart view using overlapping.\r\n\r\nIn this example, layered area chart is basically multiple areas layered by either making use of transparency or perspective. It can be used instead of a multiple ***LineSeries*** to compare development of a trend, to search patterns and relationships both within a collection and across collections over the period.\r\n","image":"layeredAreas.png"},{"id":"lcjs-example-0104-stackedMountains","title":"Stacked Mountains","tags":["area","xy","date-time"],"description":"Stacked Charts are a popular visual aid for comparing parts of a whole. Also known as Stacked Area Graph or Stacked Areas.","src":"/*\r\n * LightningChartJS example that showcases creation and styling of spline-series.\r\n */\r\n// Import LightningChartJS\r\nconst lcjs = require('@arction/lcjs')\r\n\r\n// Extract required parts from LightningChartJS.\r\nconst {\r\n lightningChart,\r\n ColorPalettes,\r\n SolidFill,\r\n emptyLine,\r\n AxisTickStrategies,\r\n AutoCursorModes,\r\n Themes\r\n} = lcjs\r\n\r\n// ----- Cache styles -----\r\nconst palette = ColorPalettes.fullSpectrum(12)\r\nconst solidFills = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11].map(palette).map(color => new SolidFill({ color }))\r\nconst opaqueFills = solidFills.map(fill => fill.setA(150))\r\n\r\n// Set the origin date to use for the X Axis\r\nconst dateOrigin = new Date(2017, 0, 1)\r\n// Multiplier used for X Axis values to transform each X value as a month.\r\nconst dataFrequency = 60 * 60 * 24 * 30 * 1000\r\n// Create a XY Chart.\r\nconst xyChart = lightningChart().ChartXY({\r\n // theme: Themes.dark\r\n})\r\n\r\n// Set up the Chart, disable zooming and panning mouse interactions\r\n// and set AutoCursor to show when hovering mouse over Series.\r\nxyChart\r\n .setTitle('Product Version Distribution')\r\n .setMouseInteractions(false)\r\n .setAutoCursorMode(AutoCursorModes.onHover)\r\n\r\n// Set up the X and Y Axes for the chart.\r\nxyChart\r\n .getDefaultAxisX()\r\n .setTickStrategy(\r\n AxisTickStrategies.DateTime,\r\n (tickStrategy) => tickStrategy.setDateOrigin(dateOrigin)\r\n )\r\n .setMouseInteractions(false)\r\n\r\nxyChart.getDefaultAxisY()\r\n .setTitle('Distribution %')\r\n .setInterval(0, 100)\r\n .setMouseInteractions(false)\r\n\r\n// ---- Add multiple series with different names and values. ----\r\nconst versionName = [\r\n 'Version 1',\r\n 'Version 2',\r\n 'Version 3',\r\n 'Version 4',\r\n 'Version 5',\r\n 'Version 6',\r\n 'Version 7',\r\n 'Version 8',\r\n 'Version 9',\r\n 'Version 10',\r\n 'Version 11',\r\n 'Version 12'\r\n]\r\n// Array to store the created Area Series.\r\nconst version = []\r\n// Create Series for each version name.\r\nversionName.forEach((v, k) => {\r\n // The first version (data) is drawn at the bottom of the chart, so we can just use a Area Series to render it.\r\n if (k == 0) {\r\n version[k] = xyChart.addAreaSeries()\r\n .setName(v)\r\n .setFillStyle(opaqueFills[k])\r\n .setStrokeStyle(stroke => stroke.setFillStyle(solidFills[k]))\r\n } else {\r\n // Rest of the versions (data) are drawn based on the version before, so we'll use Area Range Series to render it.\r\n version[k] = xyChart.addAreaRangeSeries()\r\n .setName(v)\r\n .setHighFillStyle(opaqueFills[k])\r\n .setHighStrokeStyle(stroke => stroke.setFillStyle(solidFills[k]))\r\n .setLowStrokeStyle(emptyLine)\r\n }\r\n // Set up how to display the Result Table.\r\n version[k].setResultTableFormatter((builder, series, xValue, yValueHigh, yValueLow) => {\r\n return builder\r\n .addRow(v)\r\n .addRow('Date: ' + series.axisX.formatValue(xValue))\r\n .addRow('Distribution: ' + (yValueHigh - yValueLow).toFixed(2) + '%')\r\n })\r\n})\r\n// Create data for each Version.\r\nconst data = [\r\n [\r\n { x: 0, y: 1.3 },\r\n { x: 1, y: 1.2 },\r\n { x: 2, y: 1.1 },\r\n { x: 3, y: 1.1 },\r\n { x: 4, y: 1 },\r\n { x: 5, y: 0.9 },\r\n { x: 6, y: 0.8 },\r\n { x: 7, y: 0.8 },\r\n { x: 8, y: 0.7 },\r\n { x: 9, y: 0.7 },\r\n { x: 10, y: 0.6 },\r\n { x: 11, y: 0.6 },\r\n { x: 12, y: 0.5 },\r\n { x: 13, y: 0.5 },\r\n { x: 14, y: 0.5 },\r\n { x: 15, y: 0.4 }\r\n ],\r\n [\r\n { x: 0, y: 4.9 },\r\n { x: 1, y: 4.5 },\r\n { x: 2, y: 4.2 },\r\n { x: 3, y: 4 },\r\n { x: 4, y: 3.7 },\r\n { x: 5, y: 3.5 },\r\n { x: 6, y: 3.3 },\r\n { x: 7, y: 3.1 },\r\n { x: 8, y: 2.9 },\r\n { x: 9, y: 2.7 },\r\n { x: 10, y: 2.5 },\r\n { x: 11, y: 2.3 },\r\n { x: 12, y: 2.2 },\r\n { x: 13, y: 2 },\r\n { x: 14, y: 1.9 },\r\n { x: 15, y: 1.7 }\r\n ],\r\n [\r\n { x: 0, y: 6.8 },\r\n { x: 1, y: 6.4 },\r\n { x: 2, y: 5.9 },\r\n { x: 3, y: 5.7 },\r\n { x: 4, y: 5.4 },\r\n { x: 5, y: 5.2 },\r\n { x: 6, y: 4.8 },\r\n { x: 7, y: 4.4 },\r\n { x: 8, y: 4.1 },\r\n { x: 9, y: 3.9 },\r\n { x: 10, y: 3.5 },\r\n { x: 11, y: 3.3 },\r\n { x: 12, y: 3.1 },\r\n { x: 13, y: 3 },\r\n { x: 14, y: 2.9 },\r\n { x: 15, y: 2.6 }\r\n ],\r\n [\r\n { x: 0, y: 3 },\r\n { x: 1, y: 2.2 },\r\n { x: 2, y: 1.7 },\r\n { x: 3, y: 1.6 },\r\n { x: 4, y: 1.5 },\r\n { x: 5, y: 1.5 },\r\n { x: 6, y: 1.3 },\r\n { x: 7, y: 1.3 },\r\n { x: 8, y: 1.2 },\r\n { x: 9, y: 1.1 },\r\n { x: 10, y: 1 },\r\n { x: 11, y: 1 },\r\n { x: 12, y: 0.9 },\r\n { x: 13, y: 0.9 },\r\n { x: 14, y: 0.8 },\r\n { x: 15, y: 0.7 }\r\n ],\r\n [\r\n { x: 0, y: 25.2 },\r\n { x: 1, y: 24.5 },\r\n { x: 2, y: 23.5 },\r\n { x: 3, y: 21.9 },\r\n { x: 4, y: 20.8 },\r\n { x: 5, y: 20.5 },\r\n { x: 6, y: 19.5 },\r\n { x: 7, y: 18.6 },\r\n { x: 8, y: 17.6 },\r\n { x: 9, y: 16.5 },\r\n { x: 10, y: 15.3 },\r\n { x: 11, y: 14.7 },\r\n { x: 12, y: 13.8 },\r\n { x: 13, y: 13.4 },\r\n { x: 14, y: 12.8 },\r\n { x: 15, y: 11.7 }\r\n ],\r\n [\r\n { x: 0, y: 11.3 },\r\n { x: 1, y: 10.8 },\r\n { x: 2, y: 10.1 },\r\n { x: 3, y: 9.8 },\r\n { x: 4, y: 9.4 },\r\n { x: 5, y: 9.2 },\r\n { x: 6, y: 8.7 },\r\n { x: 7, y: 8.2 },\r\n { x: 8, y: 7.8 },\r\n { x: 9, y: 7.4 },\r\n { x: 10, y: 7.1 },\r\n { x: 11, y: 6.7 },\r\n { x: 12, y: 6.4 },\r\n { x: 13, y: 6.1 },\r\n { x: 14, y: 5.7 },\r\n { x: 15, y: 5.4 }\r\n ],\r\n [\r\n { x: 0, y: 22.8 },\r\n { x: 1, y: 23.2 },\r\n { x: 2, y: 23.3 },\r\n { x: 3, y: 23.2 },\r\n { x: 4, y: 23.1 },\r\n { x: 5, y: 23 },\r\n { x: 6, y: 23.3 },\r\n { x: 7, y: 22.6 },\r\n { x: 8, y: 22.3 },\r\n { x: 9, y: 21.8 },\r\n { x: 10, y: 21.7 },\r\n { x: 11, y: 21.2 },\r\n { x: 12, y: 20.8 },\r\n { x: 13, y: 20.2 },\r\n { x: 14, y: 19.8 },\r\n { x: 15, y: 19.2 }\r\n ],\r\n [\r\n { x: 0, y: 24 },\r\n { x: 1, y: 26.8 },\r\n { x: 2, y: 29.5 },\r\n { x: 3, y: 30.7 },\r\n { x: 4, y: 31.3 },\r\n { x: 5, y: 31.2 },\r\n { x: 6, y: 31.2 },\r\n { x: 7, y: 31.2 },\r\n { x: 8, y: 31.8 },\r\n { x: 9, y: 32.3 },\r\n { x: 10, y: 32.2 },\r\n { x: 11, y: 32 },\r\n { x: 12, y: 30.9 },\r\n { x: 13, y: 29.7 },\r\n { x: 14, y: 28.6 },\r\n { x: 15, y: 28.8 }\r\n ],\r\n [\r\n { x: 0, y: 0.7 },\r\n { x: 1, y: 0.4 },\r\n { x: 2, y: 0.5 },\r\n { x: 3, y: 1.7 },\r\n { x: 4, y: 3.4 },\r\n { x: 5, y: 4.6 },\r\n { x: 6, y: 6.6 },\r\n { x: 7, y: 9.1 },\r\n { x: 8, y: 10.6 },\r\n { x: 9, y: 12.3 },\r\n { x: 10, y: 14.4 },\r\n { x: 11, y: 16 },\r\n { x: 12, y: 17.8 },\r\n { x: 13, y: 19.3 },\r\n { x: 14, y: 21.1 },\r\n { x: 15, y: 22.3 }\r\n ],\r\n [\r\n { x: 0, y: 0 },\r\n { x: 1, y: 0 },\r\n { x: 2, y: 0.2 },\r\n { x: 3, y: 0.3 },\r\n { x: 4, y: 0.4 },\r\n { x: 5, y: 0.4 },\r\n { x: 6, y: 0.5 },\r\n { x: 7, y: 0.7 },\r\n { x: 8, y: 1 },\r\n { x: 9, y: 1.3 },\r\n { x: 10, y: 1.7 },\r\n { x: 11, y: 2 },\r\n { x: 12, y: 3.3 },\r\n { x: 13, y: 4.4 },\r\n { x: 14, y: 5.2 },\r\n { x: 15, y: 6.1 }\r\n ],\r\n [\r\n { x: 0, y: 0 },\r\n { x: 1, y: 0 },\r\n { x: 2, y: 0 },\r\n { x: 3, y: 0 },\r\n { x: 4, y: 0 },\r\n { x: 5, y: 0 },\r\n { x: 6, y: 0 },\r\n { x: 7, y: 0 },\r\n { x: 8, y: 0 },\r\n { x: 9, y: 0 },\r\n { x: 10, y: 0 },\r\n { x: 11, y: 0.2 },\r\n { x: 12, y: 0.3 },\r\n { x: 13, y: 0.5 },\r\n { x: 14, y: 0.5 },\r\n { x: 15, y: 0.8 }\r\n ],\r\n [\r\n { x: 0, y: 0 },\r\n { x: 1, y: 0 },\r\n { x: 2, y: 0 },\r\n { x: 3, y: 0 },\r\n { x: 4, y: 0 },\r\n { x: 5, y: 0 },\r\n { x: 6, y: 0 },\r\n { x: 7, y: 0 },\r\n { x: 8, y: 0 },\r\n { x: 9, y: 0 },\r\n { x: 10, y: 0 },\r\n { x: 11, y: 0 },\r\n { x: 12, y: 0 },\r\n { x: 13, y: 0 },\r\n { x: 14, y: 0.2 },\r\n { x: 15, y: 0.3 }\r\n ]\r\n]\r\n\r\n// Function to get the proper High value for a Series.\r\nconst getYHigh = (p, k) => {\r\n let sum = 0\r\n while (p >= 0) {\r\n sum += data[p][k].y\r\n p--\r\n }\r\n return sum\r\n}\r\n\r\n// Function to get the proper Low value for a Series.\r\nconst getYLow = (p, k) => {\r\n let sum = 0\r\n while (p - 1 >= 0) {\r\n sum += data[p - 1][k].y\r\n p--\r\n }\r\n return sum\r\n}\r\n\r\n/**\r\n * Fill each Area Series with the data created for them.\r\n */\r\ndata[0].forEach((point, i) => {\r\n version.forEach((series, index) => {\r\n // For the first series, only one Y value is needed.\r\n if (index == 0) {\r\n version[index].add({\r\n x: point.x * dataFrequency,\r\n y: point.y\r\n })\r\n // Rest of the series need both the High and Low values;\r\n // Low is the previous Series' High value.\r\n } else {\r\n version[index].add(\r\n {\r\n position: point.x * dataFrequency,\r\n high: getYHigh(index, i),\r\n low: getYLow(index, i)\r\n }\r\n )\r\n }\r\n })\r\n})\r\n","url":null,"readme":"*Also known as Stacked Area Graph or Stacked Areas*\r\n\r\nThe stacked charts are a popular visual aid used for categorizing and comparing the parts of a whole using different colors to distinguish the categories.\r\n\r\nThis chart is created with custom stacking logic by using ***Area*** and ***AreaRange*** series and position each next data segment on top of the previous. Relying on characteristics and use cases of mountain series mentioned in previous examples, area is drawn on a Cartesian coordinate system and represents the quantitative data. Thus, in the example, the first data segment starts from a zero baseline and each next category would use the magnitude of previous segment as a low starting point.\r\n\r\n```javascript\r\n// Create one Area series to be the base.\r\nconst areaFirst = chart.addAreaSeries()\r\n\r\n// Create the next AreaRange series to be stacked on top of previous.\r\nconst areaNext1 = chart.addAreaRangeSeries()\r\nconst areaNext2 = chart.addAreaRangeSeries()\r\n```\r\n","image":"stackedMountains.png"},{"id":"lcjs-example-0105-temperatureVariations","title":"Temperature Variations","tags":["area","range","xy","date-time","legendbox"],"description":"The example shows the basic usage of Area Range series to display variation in temperature.","src":"/*\r\n * LightningChartJS example that showcases a simulation of daily temperature variations.\r\n */\r\n// Import LightningChartJS\r\nconst lcjs = require('@arction/lcjs')\r\n\r\n// Extract required parts from LightningChartJS.\r\nconst {\r\n lightningChart,\r\n AxisTickStrategies,\r\n SolidFill,\r\n SolidLine,\r\n ColorRGBA,\r\n ColorHEX,\r\n LegendBoxBuilders,\r\n UIOrigins,\r\n emptyLine,\r\n Themes,\r\n LinearGradientFill\r\n} = lcjs\r\n\r\n// Decide on an origin for DateTime axis.\r\nconst dateOrigin = new Date(2019, 3, 1)\r\n\r\n// Create a XY Chart.\r\nconst chart = lightningChart().ChartXY({\r\n // theme: Themes.dark\r\n})\r\nchart.getDefaultAxisX().setTickStrategy(AxisTickStrategies.DateTime, (tickStrategy) => tickStrategy.setDateOrigin(dateOrigin))\r\nchart.setTitle('Daily temperature range, April 2019')\r\n\r\nconst axisX = chart.getDefaultAxisX()\r\nconst axisY = chart.getDefaultAxisY()\r\n .setTitle('Temperature (°C)')\r\n .setScrollStrategy(undefined)\r\n\r\n// Daily temperature records\r\nconst recordRange = chart.addAreaRangeSeries()\r\n// Current month daily temperature variations\r\nconst currentRange = chart.addAreaRangeSeries()\r\n// ----- Series stylings\r\n// Temperature records fill style, gradient Red - Blue scale. \r\nconst recordRangeFillStyle = new LinearGradientFill(\r\n {\r\n angle: 0,\r\n stops:[\r\n {color: ColorHEX('#0000FF9F'), offset:0},\r\n {color: ColorHEX('#FF00009F'), offset:1}\r\n ]\r\n }\r\n)\r\n// Record range stroke fill style, high line\r\nconst recordRangeStrokeFillStyleHigh = new SolidLine().setFillStyle(new SolidFill({ color: ColorRGBA(250, 91, 70) }))\r\n// Record range stroke fill style, low line\r\nconst recordRangeStrokeFillStyleLow = new SolidLine().setFillStyle(new SolidFill({ color: ColorRGBA(63, 138, 250) }))\r\n// Current month temperature fill style\r\nconst currentRangeFillStyle = new SolidFill({ color: ColorRGBA(255, 174, 0, 200) })\r\n// Current range stroke fill style\r\nconst currentRangeStrokeFillStyle = new SolidLine().setFillStyle(new SolidFill({ color: ColorRGBA(250, 226, 105) }))\r\n// ----- Applying stylings\r\n// Record range\r\nrecordRange\r\n .setName('Temperature records range')\r\n .setHighFillStyle(recordRangeFillStyle)\r\n // Same fill style for the highlighted series\r\n .setHighFillStyleHighlight(recordRangeFillStyle)\r\n .setHighStrokeStyle(recordRangeStrokeFillStyleHigh)\r\n .setHighStrokeStyleHighlight(recordRangeStrokeFillStyleHigh)\r\n .setLowStrokeStyle(recordRangeStrokeFillStyleLow)\r\n .setLowStrokeStyleHighlight(recordRangeStrokeFillStyleLow)\r\n// Current range\r\ncurrentRange\r\n .setName('2019 temperatures')\r\n .setHighFillStyle(currentRangeFillStyle)\r\n .setHighStrokeStyle(currentRangeStrokeFillStyle)\r\n .setLowStrokeStyle(currentRangeStrokeFillStyle)\r\n\r\n// ----- Result tables settings\r\n// Record range\r\nrecordRange.setResultTableFormatter((builder, series, figure, yMax, yMin) => {\r\n return builder\r\n .addRow('Temperature records range')\r\n .addRow('Date: ' + axisX.formatValue(figure))\r\n .addRow('Highest: ' + yMax.toFixed(2) + ' °C')\r\n .addRow('Lowest: ' + yMin.toFixed(2) + ' °C')\r\n})\r\n// Current range\r\ncurrentRange.setResultTableFormatter((builder, series, figure, yMax, yMin) => {\r\n return builder\r\n .addRow('2019 temperatures')\r\n .addRow('Date: ' + axisX.formatValue(figure))\r\n .addRow('Highest: ' + yMax.toFixed(2) + ' °C')\r\n .addRow('Lowest: ' + yMin.toFixed(2) + ' °C')\r\n})\r\n// ----- Generating data\r\nconst randomInt = (min, max) => {\r\n return Math.floor(Math.random() * (max - min + 1)) + min\r\n}\r\nconst currentRangeData = []\r\nconst recordRangeData = []\r\n// Current range\r\nfor (let i = 0; i < 31; i++) {\r\n const randomPoint = () => {\r\n const x = i\r\n let yMax\r\n if (i > 0) {\r\n const previousYMax = currentRangeData[i - 1].yMax\r\n yMax = randomInt(previousYMax - 5, previousYMax + 5)\r\n } else {\r\n yMax = randomInt(-5, 25)\r\n }\r\n const yMin = randomInt(yMax - 5, yMax) - 5\r\n return {\r\n x,\r\n yMax,\r\n yMin\r\n }\r\n }\r\n currentRangeData.push(randomPoint())\r\n}\r\n\r\nlet recordYMax = currentRangeData[0].yMax\r\nlet recordYMin = currentRangeData[0].yMin\r\nfor (let i = 1; i < currentRangeData.length; i++) {\r\n if (currentRangeData[i].yMin < recordYMin) recordYMin = currentRangeData[i].yMin\r\n if (currentRangeData[i].yMax > recordYMax) recordYMax = currentRangeData[i].yMax\r\n}\r\n// Set series interval\r\naxisY.setInterval(recordYMin - 5, recordYMax + 5)\r\n// ----- Generate record temperatures\r\nfor (let i = 0; i < 31; i++) {\r\n const randomPoint = () => {\r\n const x = i\r\n const yMax = randomInt(recordYMax - 2, recordYMax + 2)\r\n const yMin = randomInt(recordYMin - 1, recordYMin)\r\n return {\r\n x,\r\n yMax,\r\n yMin\r\n }\r\n }\r\n recordRangeData.push(randomPoint())\r\n}\r\n// ----- Adding data points\r\nrecordRangeData.forEach((point, i) => {\r\n recordRange.add({ position: (point.x * 24 * 60 * 60 * 1000), high: point.yMax, low: point.yMin })\r\n})\r\n\r\ncurrentRangeData.forEach((point, i) => {\r\n currentRange.add({ position: (point.x * 24 * 60 * 60 * 1000), high: point.yMax, low: point.yMin })\r\n})\r\n// ----- Add legend box\r\nconst legendBox = chart.addLegendBox(LegendBoxBuilders.HorizontalLegendBox, {\r\n x: axisX.scale,\r\n y: axisY.scale\r\n})\r\n .setPosition({ x: currentRange.getXMax() / 2, y: axisY.scale.getInnerStart() })\r\n .setOrigin(UIOrigins.CenterBottom)\r\n .setMargin(3)\r\n\r\nconst entries = legendBox.add(chart)\r\nentries[0]\r\n .setButtonOnFillStyle(recordRangeFillStyle)\r\n .setButtonOnStrokeStyle(emptyLine)\r\nentries[1]\r\n .setButtonOnFillStyle(currentRangeFillStyle)\r\n .setButtonOnStrokeStyle(emptyLine)\r\n","url":null,"readme":"The example shows the basic usage of Area Range series to display variation in temperature.\r\n\r\nRange charts are generally used to show variations (low & high) simultaneously in the given period.\r\n\r\n```javascript\r\n// Create a new ChartXY.\r\nconst chart = lightningChart().ChartXY()\r\n\r\n// Add an area series with bipolar direction using default X and Y axes.\r\nconst areaRange = chart.addAreaRangeSeries()\r\n```\r\n\r\nThe series accepts ***AreaPoint*** type of points either as an object in format \r\n`{ position: number, high: number, low: number }`,\r\n\r\n```javascript\r\nseries.add({ position: 20, high: 45, low: -20 })\r\n```\r\n\r\nor via a factory that should be additionally imported.\r\n\r\n```javascript\r\nseries.add( AreaPoint( 20, 45, -20 ) )\r\n```\r\n\r\nAny number of points can be added with a single call.\r\n\r\n```javascript\r\n// Single point.\r\nseries.add({ position: 20, high: 45, low: -20 })\r\n\r\n// Multiple points at once.\r\nseries.add([\r\n { position: 20, high: 45, low: -20 },\r\n { position: 40, high: 95, low: 10 },\r\n { position: 60, high: 25, low: 60 }\r\n])\r\n```\r\n","image":"temperatureVariations.png"},{"id":"lcjs-example-0150-ecg","title":"ECG","tags":["line","xy","streaming"],"description":"This example shows a simulated electrocardiogram(ECG)-signal by using a Line Series in a XY Chart.","src":"/*\r\n * LightningChartJS example that showcases a simulated ECG signal.\r\n */\r\n// Import LightningChartJS\r\nconst lcjs = require('@arction/lcjs')\r\n\r\n// Extract required parts from LightningChartJS.\r\nconst {\r\n lightningChart,\r\n DataPatterns,\r\n AxisScrollStrategies,\r\n SolidLine,\r\n SolidFill,\r\n ColorHEX,\r\n AutoCursorModes,\r\n Themes\r\n} = lcjs\r\n\r\n// Import data-generators from 'xydata'-library.\r\nconst {\r\n createSampledDataGenerator\r\n} = require('@arction/xydata')\r\n\r\n// Create a XY Chart.\r\nconst chart = lightningChart().ChartXY({\r\n // theme: Themes.dark \r\n}).setTitle('ECG')\r\n\r\n// Add line series to visualize the data received\r\nconst series = chart.addLineSeries({ dataPattern: DataPatterns.horizontalProgressive })\r\n// Style the series\r\nseries\r\n .setStrokeStyle(new SolidLine({\r\n thickness: 2,\r\n fillStyle: new SolidFill({ color: ColorHEX('#5aafc7') })\r\n }))\r\n .setMouseInteractions(false)\r\n\r\nchart.setAutoCursorMode(AutoCursorModes.disabled)\r\n\r\n// Setup view nicely.\r\nchart.getDefaultAxisY()\r\n .setTitle('mV')\r\n .setInterval(-1600, 1000)\r\n .setScrollStrategy(AxisScrollStrategies.expansion)\r\n\r\nchart.getDefaultAxisX()\r\n .setTitle('milliseconds')\r\n .setInterval(0, 2500)\r\n .setScrollStrategy(AxisScrollStrategies.progressive)\r\n\r\n// Points that are used to generate a continuous stream of data.\r\nconst point = [\r\n { x: 2, y: 81 },\r\n { x: 3, y: 83 },\r\n { x: 4, y: 88 },\r\n { x: 5, y: 98 },\r\n { x: 6, y: 92 },\r\n { x: 7, y: 85 },\r\n { x: 8, y: 73 },\r\n { x: 9, y: 71 },\r\n { x: 10, y: 70 },\r\n { x: 11, y: 83 },\r\n { x: 12, y: 73 },\r\n { x: 13, y: 79 },\r\n { x: 14, y: 84 },\r\n { x: 15, y: 78 },\r\n { x: 16, y: 67 },\r\n { x: 17, y: 71 },\r\n { x: 18, y: 76 },\r\n { x: 19, y: 77 },\r\n { x: 20, y: 64 },\r\n { x: 21, y: 53 },\r\n { x: 22, y: 0 },\r\n { x: 23, y: 41 },\r\n { x: 24, y: 51 },\r\n { x: 25, y: 3 },\r\n { x: 26, y: 31 },\r\n { x: 27, y: 37 },\r\n { x: 28, y: 35 },\r\n { x: 29, y: 48 },\r\n { x: 30, y: 40 },\r\n { x: 31, y: 42 },\r\n { x: 32, y: 42 },\r\n { x: 33, y: 32 },\r\n { x: 34, y: 21 },\r\n { x: 35, y: 41 },\r\n { x: 36, y: 48 },\r\n { x: 37, y: 47 },\r\n { x: 38, y: 45 },\r\n { x: 39, y: 42 },\r\n { x: 40, y: 28 },\r\n { x: 41, y: 15 },\r\n { x: 42, y: 1 },\r\n { x: 43, y: -12 },\r\n { x: 44, y: -4 },\r\n { x: 45, y: 15 },\r\n { x: 46, y: 23 },\r\n { x: 47, y: 22 },\r\n { x: 48, y: 40 },\r\n { x: 49, y: 46 },\r\n { x: 50, y: 49 },\r\n { x: 51, y: 48 },\r\n { x: 52, y: 43 },\r\n { x: 53, y: 52 },\r\n { x: 54, y: 49 },\r\n { x: 55, y: 44 },\r\n { x: 56, y: 41 },\r\n { x: 57, y: 41 },\r\n { x: 58, y: 45 },\r\n { x: 59, y: 57 },\r\n { x: 60, y: 67 },\r\n { x: 61, y: 65 },\r\n { x: 62, y: 58 },\r\n { x: 63, y: 47 },\r\n { x: 64, y: 34 },\r\n { x: 65, y: 35 },\r\n { x: 66, y: 23 },\r\n { x: 67, y: 11 },\r\n { x: 68, y: 7 },\r\n { x: 69, y: 14 },\r\n { x: 70, y: 23 },\r\n { x: 71, y: 18 },\r\n { x: 72, y: 31 },\r\n { x: 73, y: 35 },\r\n { x: 74, y: 44 },\r\n { x: 75, y: 49 },\r\n { x: 76, y: 34 },\r\n { x: 77, y: 7 },\r\n { x: 78, y: -3 },\r\n { x: 79, y: -8 },\r\n { x: 80, y: -11 },\r\n { x: 81, y: -20 },\r\n { x: 82, y: -28 },\r\n { x: 83, y: -4 },\r\n { x: 84, y: 15 },\r\n { x: 85, y: 20 },\r\n { x: 86, y: 26 },\r\n { x: 87, y: 26 },\r\n { x: 88, y: 24 },\r\n { x: 89, y: 34 },\r\n { x: 90, y: 35 },\r\n { x: 91, y: 30 },\r\n { x: 92, y: 22 },\r\n { x: 93, y: 12 },\r\n { x: 94, y: 15 },\r\n { x: 95, y: 18 },\r\n { x: 96, y: 24 },\r\n { x: 97, y: 18 },\r\n { x: 98, y: 26 },\r\n { x: 99, y: 25 },\r\n { x: 100, y: 13 },\r\n { x: 101, y: 2 },\r\n { x: 102, y: 1 },\r\n { x: 103, y: -10 },\r\n { x: 104, y: -10 },\r\n { x: 105, y: -4 },\r\n { x: 106, y: 8 },\r\n { x: 107, y: 15 },\r\n { x: 108, y: 15 },\r\n { x: 109, y: 15 },\r\n { x: 110, y: 15 },\r\n { x: 111, y: 18 },\r\n { x: 112, y: 19 },\r\n { x: 113, y: 3 },\r\n { x: 114, y: -12 },\r\n { x: 115, y: -14 },\r\n { x: 116, y: -10 },\r\n { x: 117, y: -22 },\r\n { x: 118, y: -24 },\r\n { x: 119, y: -29 },\r\n { x: 120, y: -21 },\r\n { x: 121, y: -19 },\r\n { x: 122, y: -26 },\r\n { x: 123, y: -9 },\r\n { x: 124, y: -10 },\r\n { x: 125, y: -6 },\r\n { x: 126, y: -8 },\r\n { x: 127, y: -31 },\r\n { x: 128, y: -52 },\r\n { x: 129, y: -57 },\r\n { x: 130, y: -40 },\r\n { x: 131, y: -20 },\r\n { x: 132, y: 7 },\r\n { x: 133, y: 14 },\r\n { x: 134, y: 10 },\r\n { x: 135, y: 6 },\r\n { x: 136, y: 12 },\r\n { x: 137, y: -5 },\r\n { x: 138, y: -2 },\r\n { x: 139, y: 9 },\r\n { x: 140, y: 23 },\r\n { x: 141, y: 36 },\r\n { x: 142, y: 52 },\r\n { x: 143, y: 61 },\r\n { x: 144, y: 56 },\r\n { x: 145, y: 48 },\r\n { x: 146, y: 48 },\r\n { x: 147, y: 38 },\r\n { x: 148, y: 29 },\r\n { x: 149, y: 33 },\r\n { x: 150, y: 20 },\r\n { x: 151, y: 1 },\r\n { x: 152, y: -7 },\r\n { x: 153, y: -9 },\r\n { x: 154, y: -4 },\r\n { x: 155, y: -12 },\r\n { x: 156, y: -3 },\r\n { x: 157, y: 5 },\r\n { x: 158, y: -3 },\r\n { x: 159, y: 12 },\r\n { x: 160, y: 6 },\r\n { x: 161, y: -10 },\r\n { x: 162, y: -2 },\r\n { x: 163, y: 15 },\r\n { x: 164, y: 17 },\r\n { x: 165, y: 21 },\r\n { x: 166, y: 22 },\r\n { x: 167, y: 15 },\r\n { x: 168, y: 16 },\r\n { x: 169, y: 1 },\r\n { x: 170, y: -2 },\r\n { x: 171, y: -9 },\r\n { x: 172, y: -16 },\r\n { x: 173, y: -18 },\r\n { x: 174, y: -15 },\r\n { x: 175, y: -4 },\r\n { x: 176, y: 0 },\r\n { x: 177, y: -1 },\r\n { x: 178, y: -1 },\r\n { x: 179, y: -3 },\r\n { x: 180, y: -12 },\r\n { x: 181, y: -15 },\r\n { x: 182, y: -13 },\r\n { x: 183, y: -16 },\r\n { x: 184, y: -29 },\r\n { x: 185, y: -34 },\r\n { x: 186, y: -28 },\r\n { x: 187, y: -29 },\r\n { x: 188, y: -27 },\r\n { x: 189, y: -25 },\r\n { x: 190, y: -25 },\r\n { x: 191, y: -33 },\r\n { x: 192, y: -38 },\r\n { x: 193, y: -36 },\r\n { x: 194, y: -12 },\r\n { x: 195, y: -7 },\r\n { x: 196, y: -20 },\r\n { x: 197, y: -21 },\r\n { x: 198, y: -14 },\r\n { x: 199, y: -7 },\r\n { x: 200, y: 7 },\r\n { x: 201, y: 14 },\r\n { x: 202, y: 18 },\r\n { x: 203, y: 28 },\r\n { x: 204, y: 27 },\r\n { x: 205, y: 38 },\r\n { x: 206, y: 33 },\r\n { x: 207, y: 24 },\r\n { x: 208, y: 20 },\r\n { x: 209, y: 15 },\r\n { x: 210, y: 6 },\r\n { x: 211, y: 0 },\r\n { x: 212, y: -2 },\r\n { x: 213, y: 2 },\r\n { x: 214, y: 0 },\r\n { x: 215, y: -2 },\r\n { x: 216, y: -12 },\r\n { x: 217, y: -10 },\r\n { x: 218, y: 20 },\r\n { x: 219, y: 41 },\r\n { x: 220, y: 35 },\r\n { x: 221, y: 27 },\r\n { x: 222, y: 12 },\r\n { x: 223, y: -1 },\r\n { x: 224, y: -15 },\r\n { x: 225, y: -20 },\r\n { x: 226, y: -23 },\r\n { x: 227, y: 0 },\r\n { x: 228, y: 24 },\r\n { x: 229, y: 36 },\r\n { x: 230, y: 52 },\r\n { x: 231, y: 61 },\r\n { x: 232, y: 67 },\r\n { x: 233, y: 73 },\r\n { x: 234, y: 88 },\r\n { x: 235, y: 85 },\r\n { x: 236, y: 71 },\r\n { x: 237, y: 74 },\r\n { x: 238, y: 67 },\r\n { x: 239, y: 41 },\r\n { x: 240, y: 26 },\r\n { x: 241, y: 13 },\r\n { x: 242, y: 10 },\r\n { x: 243, y: 1 },\r\n { x: 244, y: -10 },\r\n { x: 245, y: -26 },\r\n { x: 246, y: -33 },\r\n { x: 247, y: -23 },\r\n { x: 248, y: -25 },\r\n { x: 249, y: -24 },\r\n { x: 250, y: -24 },\r\n { x: 251, y: -28 },\r\n { x: 252, y: -24 },\r\n { x: 253, y: -25 },\r\n { x: 254, y: -21 },\r\n { x: 255, y: -8 },\r\n { x: 256, y: -5 },\r\n { x: 257, y: -4 },\r\n { x: 258, y: -13 },\r\n { x: 259, y: -29 },\r\n { x: 260, y: -42 },\r\n { x: 261, y: -52 },\r\n { x: 262, y: -52 },\r\n { x: 263, y: -40 },\r\n { x: 264, y: -40 },\r\n { x: 265, y: -34 },\r\n { x: 266, y: -28 },\r\n { x: 267, y: -30 },\r\n { x: 268, y: -37 },\r\n { x: 269, y: -40 },\r\n { x: 270, y: -38 },\r\n { x: 271, y: -41 },\r\n { x: 272, y: -39 },\r\n { x: 273, y: -46 },\r\n { x: 274, y: -48 },\r\n { x: 275, y: -48 },\r\n { x: 276, y: -40 },\r\n { x: 277, y: -40 },\r\n { x: 278, y: -45 },\r\n { x: 279, y: -57 },\r\n { x: 280, y: -61 },\r\n { x: 281, y: -63 },\r\n { x: 282, y: -78 },\r\n { x: 283, y: -81 },\r\n { x: 284, y: -87 },\r\n { x: 285, y: -82 },\r\n { x: 286, y: -88 },\r\n { x: 287, y: -100 },\r\n { x: 288, y: -100 },\r\n { x: 289, y: -97 },\r\n { x: 290, y: -104 },\r\n { x: 291, y: -102 },\r\n { x: 292, y: -79 },\r\n { x: 293, y: -72 },\r\n { x: 294, y: -72 },\r\n { x: 295, y: -63 },\r\n { x: 296, y: -35 },\r\n { x: 297, y: -22 },\r\n { x: 298, y: -10 },\r\n { x: 299, y: 2 },\r\n { x: 300, y: 5 },\r\n { x: 301, y: 9 },\r\n { x: 302, y: -10 },\r\n { x: 303, y: -16 },\r\n { x: 304, y: -16 },\r\n { x: 305, y: -10 },\r\n { x: 306, y: -4 },\r\n { x: 307, y: -1 },\r\n { x: 308, y: 2 },\r\n { x: 309, y: 14 },\r\n { x: 310, y: 21 },\r\n { x: 311, y: 23 },\r\n { x: 312, y: 17 },\r\n { x: 313, y: 13 },\r\n { x: 314, y: 10 },\r\n { x: 315, y: 0 },\r\n { x: 316, y: -6 },\r\n { x: 317, y: -5 },\r\n { x: 318, y: 11 },\r\n { x: 319, y: 22 },\r\n { x: 320, y: 28 },\r\n { x: 321, y: 31 },\r\n { x: 322, y: 33 },\r\n { x: 323, y: 29 },\r\n { x: 324, y: 26 },\r\n { x: 325, y: 27 },\r\n { x: 326, y: 28 },\r\n { x: 327, y: 26 },\r\n { x: 328, y: 35 },\r\n { x: 329, y: 44 },\r\n { x: 330, y: 52 },\r\n { x: 331, y: 80 },\r\n { x: 332, y: 100 },\r\n { x: 333, y: 101 },\r\n { x: 334, y: 111 },\r\n { x: 335, y: 120 },\r\n { x: 336, y: 128 },\r\n { x: 337, y: 150 },\r\n { x: 338, y: 174 },\r\n { x: 339, y: 201 },\r\n { x: 340, y: 232 },\r\n { x: 341, y: 278 },\r\n { x: 342, y: 350 },\r\n { x: 343, y: 422 },\r\n { x: 344, y: 510 },\r\n { x: 345, y: 580 },\r\n { x: 346, y: 662 },\r\n { x: 347, y: 738 },\r\n { x: 348, y: 806 },\r\n { x: 349, y: 869 },\r\n { x: 350, y: 907 },\r\n { x: 351, y: 939 },\r\n { x: 352, y: 954 },\r\n { x: 353, y: 971 },\r\n { x: 354, y: 961 },\r\n { x: 355, y: 912 },\r\n { x: 356, y: 826 },\r\n { x: 357, y: 713 },\r\n { x: 358, y: 553 },\r\n { x: 359, y: 382 },\r\n { x: 360, y: 166 },\r\n { x: 361, y: -56 },\r\n { x: 362, y: -275 },\r\n { x: 363, y: -518 },\r\n { x: 364, y: -824 },\r\n { x: 365, y: -1122 },\r\n { x: 366, y: -1325 },\r\n { x: 367, y: -1453 },\r\n { x: 368, y: -1507 },\r\n { x: 369, y: -1547 },\r\n { x: 370, y: -1568 },\r\n { x: 371, y: -1559 },\r\n { x: 372, y: -1553 },\r\n { x: 373, y: -1537 },\r\n { x: 374, y: -1499 },\r\n { x: 375, y: -1447 },\r\n { x: 376, y: -1424 },\r\n { x: 377, y: -1398 },\r\n { x: 378, y: -1352 },\r\n { x: 379, y: -1291 },\r\n { x: 380, y: -1189 },\r\n { x: 381, y: -1085 },\r\n { x: 382, y: -977 },\r\n { x: 383, y: -852 },\r\n { x: 384, y: -736 },\r\n { x: 385, y: -649 },\r\n { x: 386, y: -603 },\r\n { x: 387, y: -576 },\r\n { x: 388, y: -454 },\r\n { x: 389, y: -443 },\r\n { x: 390, y: -332 },\r\n { x: 391, y: -264 },\r\n { x: 392, y: -209 },\r\n { x: 393, y: -153 },\r\n { x: 394, y: -105 },\r\n { x: 395, y: -61 },\r\n { x: 396, y: -16 },\r\n { x: 397, y: 37 },\r\n { x: 398, y: 96 },\r\n { x: 399, y: 150 },\r\n { x: 400, y: 198 },\r\n { x: 401, y: 238 },\r\n { x: 402, y: 265 },\r\n { x: 403, y: 294 },\r\n { x: 404, y: 324 },\r\n { x: 405, y: 351 },\r\n { x: 406, y: 367 },\r\n { x: 407, y: 376 },\r\n { x: 408, y: 378 },\r\n { x: 409, y: 391 },\r\n { x: 410, y: 406 },\r\n { x: 411, y: 427 },\r\n { x: 412, y: 433 },\r\n { x: 413, y: 448 },\r\n { x: 414, y: 440 },\r\n { x: 415, y: 429 },\r\n { x: 416, y: 429 },\r\n { x: 417, y: 420 },\r\n { x: 418, y: 413 },\r\n { x: 419, y: 420 },\r\n { x: 420, y: 411 },\r\n { x: 421, y: 408 },\r\n { x: 422, y: 404 },\r\n { x: 423, y: 398 },\r\n { x: 424, y: 401 },\r\n { x: 425, y: 412 },\r\n { x: 426, y: 389 },\r\n { x: 427, y: 367 },\r\n { x: 428, y: 357 },\r\n { x: 429, y: 359 },\r\n { x: 430, y: 351 },\r\n { x: 431, y: 345 },\r\n { x: 432, y: 341 },\r\n { x: 433, y: 345 },\r\n { x: 434, y: 346 },\r\n { x: 435, y: 340 },\r\n { x: 436, y: 334 },\r\n { x: 437, y: 323 },\r\n { x: 438, y: 319 },\r\n { x: 439, y: 314 },\r\n { x: 440, y: 284 },\r\n { x: 441, y: 263 },\r\n { x: 442, y: 261 },\r\n { x: 443, y: 248 },\r\n { x: 444, y: 234 },\r\n { x: 445, y: 236 },\r\n { x: 446, y: 236 },\r\n { x: 447, y: 248 },\r\n { x: 448, y: 252 },\r\n { x: 449, y: 251 },\r\n { x: 450, y: 237 },\r\n { x: 451, y: 230 },\r\n { x: 452, y: 238 },\r\n { x: 453, y: 227 },\r\n { x: 454, y: 207 },\r\n { x: 455, y: 188 },\r\n { x: 456, y: 163 },\r\n { x: 457, y: 155 },\r\n { x: 458, y: 152 },\r\n { x: 459, y: 153 },\r\n { x: 460, y: 156 },\r\n { x: 461, y: 171 },\r\n { x: 462, y: 162 },\r\n { x: 463, y: 155 },\r\n { x: 464, y: 148 },\r\n { x: 465, y: 139 },\r\n { x: 466, y: 154 },\r\n { x: 467, y: 158 },\r\n { x: 468, y: 155 },\r\n { x: 469, y: 159 },\r\n { x: 470, y: 147 },\r\n { x: 471, y: 143 },\r\n { x: 472, y: 133 },\r\n { x: 473, y: 118 },\r\n { x: 474, y: 118 },\r\n { x: 475, y: 121 },\r\n { x: 476, y: 130 },\r\n { x: 477, y: 133 },\r\n { x: 478, y: 133 },\r\n { x: 479, y: 128 },\r\n { x: 480, y: 120 },\r\n { x: 481, y: 97 },\r\n { x: 482, y: 91 },\r\n { x: 483, y: 88 },\r\n { x: 484, y: 85 },\r\n { x: 485, y: 84 },\r\n { x: 486, y: 74 },\r\n { x: 487, y: 44 },\r\n { x: 488, y: 32 },\r\n { x: 489, y: 10 },\r\n { x: 490, y: -2 },\r\n { x: 491, y: -9 },\r\n { x: 492, y: -4 },\r\n { x: 493, y: -5 },\r\n { x: 494, y: 1 },\r\n { x: 495, y: 5 },\r\n { x: 496, y: 21 },\r\n { x: 497, y: 41 },\r\n { x: 498, y: 44 },\r\n { x: 499, y: 39 },\r\n { x: 500, y: 24 },\r\n { x: 501, y: 22 },\r\n { x: 502, y: 37 },\r\n { x: 503, y: 44 },\r\n { x: 504, y: 35 },\r\n { x: 505, y: 31 },\r\n { x: 506, y: 35 },\r\n { x: 507, y: 20 },\r\n { x: 508, y: 15 },\r\n { x: 509, y: 7 },\r\n { x: 510, y: 4 },\r\n { x: 511, y: 9 },\r\n { x: 512, y: 0 },\r\n { x: 513, y: -15 },\r\n { x: 514, y: -21 },\r\n { x: 515, y: -31 },\r\n { x: 516, y: -32 },\r\n { x: 517, y: -48 },\r\n { x: 518, y: -53 },\r\n { x: 519, y: -29 },\r\n { x: 520, y: -14 },\r\n { x: 521, y: -6 },\r\n { x: 522, y: 1 },\r\n { x: 523, y: 4 },\r\n { x: 524, y: -4 },\r\n { x: 525, y: -3 },\r\n { x: 526, y: 2 },\r\n { x: 527, y: 1 },\r\n { x: 528, y: -12 },\r\n { x: 529, y: -37 },\r\n { x: 530, y: -29 },\r\n { x: 531, y: -25 },\r\n { x: 532, y: -18 },\r\n { x: 533, y: -31 },\r\n { x: 534, y: -42 },\r\n { x: 535, y: -26 },\r\n { x: 536, y: -22 },\r\n { x: 537, y: -18 },\r\n { x: 538, y: -25 },\r\n { x: 539, y: -16 },\r\n { x: 540, y: -13 },\r\n { x: 541, y: -23 },\r\n { x: 542, y: -15 },\r\n { x: 543, y: 0 },\r\n { x: 544, y: 8 },\r\n { x: 545, y: 14 },\r\n { x: 546, y: 34 },\r\n { x: 547, y: 39 },\r\n { x: 548, y: 33 },\r\n { x: 549, y: 22 },\r\n { x: 550, y: 18 },\r\n { x: 551, y: 20 },\r\n { x: 552, y: 23 },\r\n { x: 553, y: 16 },\r\n { x: 554, y: 11 },\r\n { x: 555, y: 1 },\r\n { x: 556, y: 6 },\r\n { x: 557, y: 11 },\r\n { x: 558, y: 7 },\r\n { x: 559, y: 14 },\r\n { x: 560, y: 22 },\r\n { x: 561, y: 14 },\r\n { x: 562, y: 14 },\r\n { x: 563, y: 5 },\r\n { x: 564, y: -6 },\r\n { x: 565, y: -14 },\r\n { x: 566, y: -27 },\r\n { x: 567, y: -28 },\r\n { x: 568, y: -21 },\r\n { x: 569, y: -16 },\r\n { x: 570, y: -8 },\r\n { x: 571, y: -5 },\r\n { x: 572, y: -8 },\r\n { x: 573, y: 3 },\r\n { x: 574, y: 22 },\r\n { x: 575, y: 29 },\r\n { x: 576, y: 27 },\r\n { x: 577, y: 23 },\r\n { x: 578, y: 22 },\r\n { x: 579, y: 25 },\r\n { x: 580, y: 34 },\r\n { x: 581, y: 36 },\r\n { x: 582, y: 39 },\r\n { x: 583, y: 44 },\r\n { x: 584, y: 55 },\r\n { x: 585, y: 54 },\r\n { x: 586, y: 44 },\r\n { x: 587, y: 39 },\r\n { x: 588, y: 41 },\r\n { x: 589, y: 49 },\r\n { x: 590, y: 44 },\r\n { x: 591, y: 33 },\r\n { x: 592, y: 27 },\r\n { x: 593, y: 23 },\r\n { x: 594, y: 20 },\r\n { x: 595, y: 18 },\r\n { x: 596, y: 20 },\r\n { x: 597, y: 19 },\r\n { x: 598, y: 8 },\r\n { x: 599, y: 7 },\r\n { x: 600, y: 2 },\r\n { x: 601, y: 4 },\r\n { x: 602, y: -3 },\r\n { x: 603, y: -16 },\r\n { x: 604, y: -16 },\r\n { x: 605, y: -19 },\r\n { x: 606, y: -28 },\r\n { x: 607, y: -37 },\r\n { x: 608, y: -26 },\r\n { x: 609, y: -14 },\r\n { x: 610, y: -31 },\r\n { x: 611, y: -45 },\r\n { x: 612, y: -45 },\r\n { x: 613, y: -43 },\r\n { x: 614, y: -50 },\r\n { x: 615, y: -59 },\r\n { x: 616, y: -73 },\r\n { x: 617, y: -79 },\r\n { x: 618, y: -88 },\r\n { x: 619, y: -92 },\r\n { x: 620, y: -95 },\r\n { x: 621, y: -101 },\r\n { x: 622, y: -104 },\r\n { x: 623, y: -124 },\r\n { x: 624, y: -150 },\r\n { x: 625, y: -152 },\r\n { x: 626, y: -153 },\r\n { x: 627, y: -174 },\r\n { x: 628, y: -205 },\r\n { x: 629, y: -215 },\r\n { x: 630, y: -211 },\r\n { x: 631, y: -214 },\r\n { x: 632, y: -211 },\r\n { x: 633, y: -222 },\r\n { x: 634, y: -218 },\r\n { x: 635, y: -211 },\r\n { x: 636, y: -200 },\r\n { x: 637, y: -200 },\r\n { x: 638, y: -196 },\r\n { x: 639, y: -184 },\r\n { x: 640, y: -189 },\r\n { x: 641, y: -202 },\r\n { x: 642, y: -203 },\r\n { x: 643, y: -202 },\r\n { x: 644, y: -200 },\r\n { x: 645, y: -205 },\r\n { x: 646, y: -211 },\r\n { x: 647, y: -226 },\r\n { x: 648, y: -241 },\r\n { x: 649, y: -242 },\r\n { x: 650, y: -252 },\r\n { x: 651, y: -273 },\r\n { x: 652, y: -279 },\r\n { x: 653, y: -288 },\r\n { x: 654, y: -291 },\r\n { x: 655, y: -289 },\r\n { x: 656, y: -286 },\r\n { x: 657, y: -269 },\r\n { x: 658, y: -266 },\r\n { x: 659, y: -280 },\r\n { x: 660, y: -287 },\r\n { x: 661, y: -277 },\r\n { x: 662, y: -260 },\r\n { x: 663, y: -271 },\r\n { x: 664, y: -269 },\r\n { x: 665, y: -271 },\r\n { x: 666, y: -287 },\r\n { x: 667, y: -299 },\r\n { x: 668, y: -297 },\r\n { x: 669, y: -288 },\r\n { x: 670, y: -287 },\r\n { x: 671, y: -287 },\r\n { x: 672, y: -289 },\r\n { x: 673, y: -287 },\r\n { x: 674, y: -286 },\r\n { x: 675, y: -276 },\r\n { x: 676, y: -271 },\r\n { x: 677, y: -266 },\r\n { x: 678, y: -260 },\r\n { x: 679, y: -252 },\r\n { x: 680, y: -236 },\r\n { x: 681, y: -223 },\r\n { x: 682, y: -215 },\r\n { x: 683, y: -213 },\r\n { x: 684, y: -224 },\r\n { x: 685, y: -230 },\r\n { x: 686, y: -220 },\r\n { x: 687, y: -209 },\r\n { x: 688, y: -207 },\r\n { x: 689, y: -194 },\r\n { x: 690, y: -182 },\r\n { x: 691, y: -181 },\r\n { x: 692, y: -186 },\r\n { x: 693, y: -189 },\r\n { x: 694, y: -186 },\r\n { x: 695, y: -174 },\r\n { x: 696, y: -167 },\r\n { x: 697, y: -161 },\r\n { x: 698, y: -158 },\r\n { x: 699, y: -155 },\r\n { x: 700, y: -153 },\r\n { x: 701, y: -139 },\r\n { x: 702, y: -135 },\r\n { x: 703, y: -130 },\r\n { x: 704, y: -129 },\r\n { x: 705, y: -116 },\r\n { x: 706, y: -107 },\r\n { x: 707, y: -98 },\r\n { x: 708, y: -84 },\r\n { x: 709, y: -85 },\r\n { x: 710, y: -92 },\r\n { x: 711, y: -100 },\r\n { x: 712, y: -105 },\r\n { x: 713, y: -97 },\r\n { x: 714, y: -81 },\r\n { x: 715, y: -72 },\r\n { x: 716, y: -58 },\r\n { x: 717, y: -49 },\r\n { x: 718, y: -35 },\r\n { x: 719, y: -33 },\r\n { x: 720, y: -28 },\r\n { x: 721, y: -13 },\r\n { x: 722, y: -7 },\r\n { x: 723, y: -9 },\r\n { x: 724, y: -6 },\r\n { x: 725, y: 10 },\r\n { x: 726, y: 22 },\r\n { x: 727, y: 16 },\r\n { x: 728, y: 5 },\r\n { x: 729, y: -12 },\r\n { x: 730, y: -12 },\r\n { x: 731, y: 1 },\r\n { x: 732, y: 6 },\r\n { x: 733, y: 17 },\r\n { x: 734, y: 41 },\r\n { x: 735, y: 52 },\r\n { x: 736, y: 54 },\r\n { x: 737, y: 57 },\r\n { x: 738, y: 63 },\r\n { x: 739, y: 81 },\r\n { x: 740, y: 96 },\r\n { x: 741, y: 107 },\r\n { x: 742, y: 118 },\r\n { x: 743, y: 133 },\r\n { x: 744, y: 123 },\r\n { x: 745, y: 121 },\r\n { x: 746, y: 129 },\r\n { x: 747, y: 128 },\r\n { x: 748, y: 127 },\r\n { x: 749, y: 112 },\r\n { x: 750, y: 89 },\r\n { x: 751, y: 0 },\r\n { x: 752, y: 123 },\r\n { x: 753, y: 42 },\r\n { x: 754, y: 98 },\r\n { x: 755, y: 109 },\r\n { x: 756, y: 109 },\r\n { x: 757, y: 108 },\r\n { x: 758, y: 113 },\r\n { x: 759, y: 121 },\r\n { x: 760, y: 119 },\r\n { x: 761, y: 119 },\r\n { x: 762, y: 114 },\r\n { x: 763, y: 112 },\r\n { x: 764, y: 109 },\r\n { x: 765, y: 107 },\r\n { x: 766, y: 105 },\r\n { x: 767, y: 114 },\r\n { x: 768, y: 122 },\r\n { x: 769, y: 130 },\r\n { x: 770, y: 134 },\r\n { x: 771, y: 121 },\r\n { x: 772, y: 113 },\r\n { x: 773, y: 100 },\r\n { x: 774, y: 94 },\r\n { x: 775, y: 114 },\r\n { x: 776, y: 112 },\r\n { x: 777, y: 108 },\r\n { x: 778, y: 116 },\r\n { x: 779, y: 114 },\r\n { x: 780, y: 112 },\r\n { x: 781, y: 118 },\r\n { x: 782, y: 119 },\r\n { x: 783, y: 116 },\r\n { x: 784, y: 109 },\r\n { x: 785, y: 110 },\r\n { x: 786, y: 108 },\r\n { x: 787, y: 113 },\r\n { x: 788, y: 116 },\r\n { x: 789, y: 118 },\r\n { x: 790, y: 107 },\r\n { x: 791, y: 103 },\r\n { x: 792, y: 109 },\r\n { x: 793, y: 110 },\r\n { x: 794, y: 103 },\r\n { x: 795, y: 106 },\r\n { x: 796, y: 104 },\r\n { x: 797, y: 93 },\r\n { x: 798, y: 86 },\r\n { x: 799, y: 77 },\r\n { x: 800, y: 83 },\r\n { x: 801, y: 87 },\r\n { x: 802, y: 80 },\r\n { x: 803, y: 95 },\r\n { x: 804, y: 100 },\r\n { x: 805, y: 88 },\r\n { x: 806, y: 102 },\r\n { x: 807, y: 87 },\r\n { x: 808, y: 77 },\r\n { x: 809, y: 88 },\r\n { x: 810, y: 81 },\r\n { x: 811, y: 71 },\r\n { x: 812, y: 59 },\r\n { x: 813, y: 61 },\r\n { x: 814, y: 67 },\r\n { x: 815, y: 76 },\r\n { x: 816, y: 91 },\r\n { x: 817, y: 94 },\r\n { x: 818, y: 93 },\r\n { x: 819, y: 89 },\r\n { x: 820, y: 94 },\r\n { x: 821, y: 98 },\r\n { x: 822, y: 103 },\r\n { x: 823, y: 95 },\r\n { x: 824, y: 83 },\r\n { x: 825, y: 89 },\r\n { x: 826, y: 88 },\r\n { x: 827, y: 96 },\r\n { x: 828, y: 97 },\r\n { x: 829, y: 97 },\r\n { x: 830, y: 92 },\r\n { x: 831, y: 88 },\r\n { x: 832, y: 86 },\r\n { x: 833, y: 84 },\r\n { x: 834, y: 84 },\r\n { x: 835, y: 76 },\r\n { x: 836, y: 65 },\r\n { x: 837, y: 52 },\r\n { x: 838, y: 45 },\r\n { x: 839, y: 47 },\r\n { x: 840, y: 36 },\r\n { x: 841, y: 33 },\r\n { x: 842, y: 46 },\r\n { x: 843, y: 46 },\r\n { x: 844, y: 57 },\r\n { x: 845, y: 53 },\r\n { x: 846, y: 52 },\r\n { x: 847, y: 56 },\r\n { x: 848, y: 61 },\r\n { x: 849, y: 64 },\r\n { x: 850, y: 65 },\r\n { x: 851, y: 59 },\r\n { x: 852, y: 55 },\r\n { x: 853, y: 60 },\r\n { x: 854, y: 59 },\r\n { x: 855, y: 61 },\r\n { x: 856, y: 55 },\r\n { x: 857, y: 51 },\r\n { x: 858, y: 48 },\r\n { x: 859, y: 46 },\r\n { x: 860, y: 49 },\r\n { x: 861, y: 47 },\r\n { x: 862, y: 46 },\r\n { x: 863, y: 44 },\r\n { x: 864, y: 43 },\r\n { x: 865, y: 46 },\r\n { x: 866, y: 47 },\r\n { x: 867, y: 45 },\r\n { x: 868, y: 28 },\r\n { x: 869, y: 17 },\r\n { x: 870, y: 20 },\r\n { x: 871, y: 24 },\r\n { x: 872, y: 22 },\r\n { x: 873, y: 38 },\r\n { x: 874, y: 29 },\r\n { x: 875, y: 23 },\r\n { x: 876, y: 23 },\r\n { x: 877, y: 9 },\r\n { x: 878, y: 1 },\r\n { x: 879, y: 15 },\r\n { x: 880, y: 32 },\r\n { x: 881, y: 38 },\r\n { x: 882, y: 37 },\r\n { x: 883, y: 38 },\r\n { x: 884, y: 31 },\r\n { x: 885, y: 18 },\r\n { x: 886, y: 11 },\r\n { x: 887, y: 5 },\r\n { x: 888, y: 5 },\r\n { x: 889, y: -1 },\r\n { x: 890, y: -6 },\r\n { x: 891, y: -8 },\r\n { x: 892, y: -6 },\r\n { x: 893, y: 5 },\r\n { x: 894, y: 14 },\r\n { x: 895, y: 8 },\r\n { x: 896, y: 21 },\r\n { x: 897, y: 35 },\r\n { x: 898, y: 35 },\r\n { x: 899, y: 32 },\r\n { x: 900, y: 26 },\r\n { x: 901, y: 28 },\r\n { x: 902, y: 26 },\r\n { x: 903, y: 24 },\r\n { x: 904, y: 23 },\r\n { x: 905, y: 28 },\r\n { x: 906, y: 26 },\r\n { x: 907, y: 27 },\r\n { x: 908, y: 23 },\r\n { x: 909, y: 32 },\r\n { x: 910, y: 30 },\r\n { x: 911, y: 19 },\r\n { x: 912, y: 16 },\r\n { x: 913, y: 25 },\r\n { x: 914, y: 32 },\r\n { x: 915, y: 20 },\r\n { x: 916, y: 12 },\r\n { x: 917, y: 8 },\r\n { x: 918, y: 7 },\r\n { x: 919, y: 14 },\r\n { x: 920, y: 14 },\r\n { x: 921, y: 11 },\r\n { x: 922, y: 15 },\r\n { x: 923, y: 4 },\r\n { x: 924, y: -5 },\r\n { x: 925, y: -3 },\r\n { x: 926, y: -3 },\r\n { x: 927, y: -11 },\r\n { x: 928, y: -2 },\r\n { x: 929, y: 18 },\r\n { x: 930, y: 11 },\r\n { x: 931, y: -2 },\r\n { x: 932, y: 1 },\r\n { x: 933, y: -9 },\r\n { x: 934, y: -21 },\r\n { x: 935, y: -13 },\r\n { x: 936, y: -16 },\r\n { x: 937, y: -4 },\r\n { x: 938, y: 15 },\r\n { x: 939, y: 31 },\r\n { x: 940, y: 55 },\r\n { x: 941, y: 52 },\r\n { x: 942, y: 35 },\r\n { x: 943, y: 23 },\r\n { x: 944, y: 24 },\r\n { x: 945, y: 20 },\r\n { x: 946, y: 19 },\r\n { x: 947, y: 18 },\r\n { x: 948, y: 13 },\r\n { x: 949, y: 6 },\r\n { x: 950, y: 7 },\r\n { x: 951, y: 12 },\r\n { x: 952, y: 12 },\r\n { x: 953, y: 3 },\r\n { x: 954, y: 2 },\r\n { x: 955, y: -4 },\r\n { x: 956, y: -11 },\r\n { x: 957, y: -12 },\r\n { x: 958, y: -9 },\r\n { x: 959, y: -17 },\r\n { x: 960, y: -6 },\r\n { x: 961, y: 1 },\r\n { x: 962, y: -2 },\r\n { x: 963, y: -6 },\r\n { x: 964, y: -18 },\r\n { x: 965, y: -17 },\r\n { x: 966, y: -14 },\r\n { x: 967, y: -13 },\r\n { x: 968, y: -11 },\r\n { x: 969, y: 9 },\r\n { x: 970, y: 9 },\r\n { x: 971, y: 2 },\r\n { x: 972, y: -2 },\r\n { x: 973, y: -14 },\r\n { x: 974, y: -27 },\r\n { x: 975, y: -24 },\r\n { x: 976, y: -16 },\r\n { x: 977, y: -10 },\r\n { x: 978, y: -3 },\r\n { x: 979, y: 2 },\r\n { x: 980, y: 7 },\r\n { x: 981, y: 16 },\r\n { x: 982, y: 29 },\r\n { x: 983, y: 40 },\r\n { x: 984, y: 47 },\r\n { x: 985, y: 46 },\r\n { x: 986, y: 30 },\r\n { x: 987, y: 19 },\r\n { x: 988, y: 20 },\r\n { x: 989, y: 21 },\r\n { x: 990, y: 22 },\r\n { x: 991, y: 12 },\r\n { x: 992, y: 0 },\r\n { x: 993, y: -6 },\r\n { x: 994, y: -6 },\r\n { x: 995, y: -11 },\r\n { x: 996, y: -9 },\r\n { x: 997, y: -5 },\r\n { x: 998, y: -9 },\r\n { x: 999, y: -15 },\r\n { x: 1000, y: -18 },\r\n { x: 1001, y: -21 },\r\n { x: 1002, y: -19 },\r\n { x: 1003, y: -27 },\r\n { x: 1004, y: -31 },\r\n { x: 1005, y: -32 },\r\n { x: 1006, y: -35 },\r\n { x: 1007, y: -31 },\r\n { x: 1008, y: -26 },\r\n { x: 1009, y: -26 },\r\n { x: 1010, y: -19 },\r\n { x: 1011, y: -6 },\r\n { x: 1012, y: 0 },\r\n { x: 1013, y: -3 },\r\n { x: 1014, y: -16 },\r\n { x: 1015, y: -16 },\r\n { x: 1016, y: -3 },\r\n { x: 1017, y: 5 },\r\n { x: 1018, y: 13 },\r\n { x: 1019, y: 6 },\r\n { x: 1020, y: 9 },\r\n { x: 1021, y: 18 },\r\n { x: 1022, y: 40 },\r\n { x: 1023, y: 54 },\r\n { x: 1024, y: 64 },\r\n { x: 1025, y: 68 },\r\n { x: 1026, y: 57 },\r\n { x: 1027, y: 47 },\r\n { x: 1028, y: 41 },\r\n { x: 1029, y: 41 },\r\n { x: 1030, y: 50 },\r\n { x: 1031, y: 54 },\r\n { x: 1032, y: 35 },\r\n { x: 1033, y: 33 },\r\n { x: 1034, y: 33 },\r\n { x: 1035, y: 27 },\r\n { x: 1036, y: 26 },\r\n { x: 1037, y: 19 },\r\n { x: 1038, y: 16 },\r\n { x: 1039, y: 28 },\r\n { x: 1040, y: 44 },\r\n { x: 1041, y: 38 },\r\n { x: 1042, y: 42 },\r\n { x: 1043, y: 57 },\r\n { x: 1044, y: 61 },\r\n { x: 1045, y: 65 },\r\n { x: 1046, y: 55 },\r\n { x: 1047, y: 45 },\r\n { x: 1048, y: 33 },\r\n { x: 1049, y: 21 },\r\n { x: 1050, y: 11 },\r\n { x: 1051, y: 5 },\r\n { x: 1052, y: -14 },\r\n { x: 1053, y: -30 },\r\n { x: 1054, y: -35 },\r\n { x: 1055, y: -31 },\r\n { x: 1056, y: -32 },\r\n { x: 1057, y: -33 },\r\n { x: 1058, y: -25 },\r\n { x: 1059, y: -19 },\r\n { x: 1060, y: -18 },\r\n { x: 1061, y: -30 },\r\n { x: 1062, y: -42 },\r\n { x: 1063, y: -38 },\r\n { x: 1064, y: -44 },\r\n { x: 1065, y: -49 },\r\n { x: 1066, y: -43 },\r\n { x: 1067, y: -41 },\r\n { x: 1068, y: -30 },\r\n { x: 1069, y: -26 },\r\n { x: 1070, y: -29 },\r\n { x: 1071, y: -33 },\r\n { x: 1072, y: -53 },\r\n { x: 1073, y: -58 },\r\n { x: 1074, y: -58 },\r\n { x: 1075, y: -45 },\r\n { x: 1076, y: -37 },\r\n { x: 1077, y: -39 },\r\n { x: 1078, y: -51 },\r\n { x: 1079, y: -50 },\r\n { x: 1080, y: -52 },\r\n { x: 1081, y: -53 },\r\n { x: 1082, y: -36 },\r\n { x: 1083, y: -27 },\r\n { x: 1084, y: -29 },\r\n { x: 1085, y: -24 },\r\n { x: 1086, y: -27 },\r\n { x: 1087, y: -34 },\r\n { x: 1088, y: -46 },\r\n { x: 1089, y: -49 },\r\n { x: 1090, y: -42 },\r\n { x: 1091, y: -50 },\r\n { x: 1092, y: -49 },\r\n { x: 1093, y: -50 },\r\n { x: 1094, y: -42 },\r\n { x: 1095, y: -35 },\r\n { x: 1096, y: -24 },\r\n { x: 1097, y: -33 },\r\n { x: 1098, y: -40 },\r\n { x: 1099, y: -36 },\r\n { x: 1100, y: -37 },\r\n { x: 1101, y: -38 },\r\n { x: 1102, y: -51 },\r\n { x: 1103, y: -61 },\r\n { x: 1104, y: -67 },\r\n { x: 1105, y: -75 },\r\n { x: 1106, y: -81 },\r\n { x: 1107, y: -70 },\r\n { x: 1108, y: -66 },\r\n { x: 1109, y: -71 },\r\n { x: 1110, y: -72 },\r\n { x: 1111, y: -57 },\r\n { x: 1112, y: -48 },\r\n { x: 1113, y: -40 },\r\n { x: 1114, y: -31 },\r\n { x: 1115, y: 0 },\r\n { x: 1116, y: 31 },\r\n { x: 1117, y: -63 },\r\n { x: 1118, y: -16 },\r\n { x: 1119, y: -22 },\r\n { x: 1120, y: -30 },\r\n { x: 1121, y: -36 },\r\n { x: 1122, y: -37 },\r\n { x: 1123, y: -42 },\r\n { x: 1124, y: -40 },\r\n { x: 1125, y: -47 },\r\n { x: 1126, y: -38 },\r\n { x: 1127, y: -5 },\r\n { x: 1128, y: 2 },\r\n { x: 1129, y: -9 },\r\n { x: 1130, y: -2 },\r\n { x: 1131, y: 7 },\r\n { x: 1132, y: 11 },\r\n { x: 1133, y: 12 },\r\n { x: 1134, y: 22 },\r\n { x: 1135, y: 26 },\r\n { x: 1136, y: 29 },\r\n { x: 1137, y: 21 },\r\n { x: 1138, y: 25 },\r\n { x: 1139, y: 32 },\r\n { x: 1140, y: 35 },\r\n { x: 1141, y: 36 },\r\n { x: 1142, y: 48 },\r\n { x: 1143, y: 74 },\r\n { x: 1144, y: 79 },\r\n { x: 1145, y: 78 },\r\n { x: 1146, y: 92 },\r\n { x: 1147, y: 108 },\r\n { x: 1148, y: 120 },\r\n { x: 1149, y: 143 },\r\n { x: 1150, y: 172 },\r\n { x: 1151, y: 201 },\r\n { x: 1152, y: 232 },\r\n { x: 1153, y: 285 },\r\n { x: 1154, y: 363 },\r\n { x: 1155, y: 447 },\r\n { x: 1156, y: 514 },\r\n { x: 1157, y: 573 },\r\n { x: 1158, y: 663 },\r\n { x: 1159, y: 754 },\r\n { x: 1160, y: 815 },\r\n { x: 1161, y: 859 },\r\n { x: 1162, y: 895 },\r\n { x: 1163, y: 940 },\r\n { x: 1164, y: 977 },\r\n { x: 1165, y: 972 },\r\n { x: 1166, y: 945 },\r\n { x: 1167, y: 898 },\r\n { x: 1168, y: 808 },\r\n { x: 1169, y: 686 },\r\n { x: 1170, y: 532 },\r\n { x: 1171, y: 360 },\r\n { x: 1172, y: 167 },\r\n { x: 1173, y: -33 },\r\n { x: 1174, y: -232 },\r\n { x: 1175, y: -472 },\r\n { x: 1176, y: -766 },\r\n { x: 1177, y: -1082 },\r\n { x: 1178, y: -1295 },\r\n { x: 1179, y: -1438 },\r\n { x: 1180, y: -1509 },\r\n { x: 1181, y: -1567 },\r\n { x: 1182, y: -1594 },\r\n { x: 1183, y: -1583 },\r\n { x: 1184, y: -1569 },\r\n { x: 1185, y: -1547 },\r\n { x: 1186, y: -1504 },\r\n { x: 1187, y: -1457 },\r\n { x: 1188, y: -1432 },\r\n { x: 1189, y: -1403 },\r\n { x: 1190, y: -1335 },\r\n { x: 1191, y: -1249 },\r\n { x: 1192, y: -1157 },\r\n { x: 1193, y: -1058 },\r\n { x: 1194, y: -957 },\r\n { x: 1195, y: -835 },\r\n { x: 1196, y: -733 },\r\n { x: 1197, y: -650 },\r\n { x: 1198, y: -567 },\r\n { x: 1199, y: -508 },\r\n { x: 1200, y: -446 },\r\n { x: 1201, y: -378 },\r\n { x: 1202, y: -304 },\r\n { x: 1203, y: -240 },\r\n { x: 1204, y: -180 },\r\n { x: 1205, y: -123 },\r\n { x: 1206, y: -63 },\r\n { x: 1207, y: -11 },\r\n { x: 1208, y: 46 },\r\n { x: 1209, y: 112 },\r\n { x: 1210, y: 181 },\r\n { x: 1211, y: 221 },\r\n { x: 1212, y: 256 },\r\n { x: 1213, y: 283 },\r\n { x: 1214, y: 318 },\r\n { x: 1215, y: 348 },\r\n { x: 1216, y: 371 },\r\n { x: 1217, y: 397 },\r\n { x: 1218, y: 410 },\r\n { x: 1219, y: 409 },\r\n { x: 1220, y: 424 },\r\n { x: 1221, y: 440 },\r\n { x: 1222, y: 443 },\r\n { x: 1223, y: 429 },\r\n { x: 1224, y: 420 },\r\n { x: 1225, y: 424 },\r\n { x: 1226, y: 429 },\r\n { x: 1227, y: 415 },\r\n { x: 1228, y: 394 },\r\n { x: 1229, y: 391 },\r\n { x: 1230, y: 402 },\r\n { x: 1231, y: 410 },\r\n { x: 1232, y: 410 },\r\n { x: 1233, y: 408 },\r\n { x: 1234, y: 408 },\r\n { x: 1235, y: 405 },\r\n { x: 1236, y: 399 },\r\n { x: 1237, y: 392 },\r\n { x: 1238, y: 383 },\r\n { x: 1239, y: 376 },\r\n { x: 1240, y: 375 },\r\n { x: 1241, y: 368 },\r\n { x: 1242, y: 366 },\r\n { x: 1243, y: 363 },\r\n { x: 1244, y: 353 },\r\n { x: 1245, y: 345 },\r\n { x: 1246, y: 334 },\r\n { x: 1247, y: 326 },\r\n { x: 1248, y: 317 },\r\n { x: 1249, y: 313 },\r\n { x: 1250, y: 320 },\r\n { x: 1251, y: 318 },\r\n { x: 1252, y: 300 },\r\n { x: 1253, y: 275 },\r\n { x: 1254, y: 262 },\r\n { x: 1255, y: 252 },\r\n { x: 1256, y: 239 },\r\n { x: 1257, y: 236 },\r\n { x: 1258, y: 231 },\r\n { x: 1259, y: 236 },\r\n { x: 1260, y: 240 },\r\n { x: 1261, y: 235 },\r\n { x: 1262, y: 222 },\r\n { x: 1263, y: 220 },\r\n { x: 1264, y: 223 },\r\n { x: 1265, y: 228 },\r\n { x: 1266, y: 222 },\r\n { x: 1267, y: 205 },\r\n { x: 1268, y: 197 },\r\n { x: 1269, y: 191 },\r\n { x: 1270, y: 180 },\r\n { x: 1271, y: 185 },\r\n { x: 1272, y: 174 },\r\n { x: 1273, y: 170 },\r\n { x: 1274, y: 166 },\r\n { x: 1275, y: 161 },\r\n { x: 1276, y: 151 },\r\n { x: 1277, y: 148 },\r\n { x: 1278, y: 142 },\r\n { x: 1279, y: 136 },\r\n { x: 1280, y: 131 },\r\n { x: 1281, y: 127 },\r\n { x: 1282, y: 118 },\r\n { x: 1283, y: 111 },\r\n { x: 1284, y: 114 },\r\n { x: 1285, y: 110 },\r\n { x: 1286, y: 97 },\r\n { x: 1287, y: 85 },\r\n { x: 1288, y: 72 },\r\n { x: 1289, y: 65 },\r\n { x: 1290, y: 61 },\r\n { x: 1291, y: 62 },\r\n { x: 1292, y: 64 },\r\n { x: 1293, y: 61 },\r\n { x: 1294, y: 59 },\r\n { x: 1295, y: 56 },\r\n { x: 1296, y: 64 },\r\n { x: 1297, y: 55 },\r\n { x: 1298, y: 56 },\r\n { x: 1299, y: 73 },\r\n { x: 1300, y: 63 },\r\n { x: 1301, y: 56 },\r\n { x: 1302, y: 54 },\r\n { x: 1303, y: 35 },\r\n { x: 1304, y: 12 },\r\n { x: 1305, y: -3 },\r\n { x: 1306, y: -2 },\r\n { x: 1307, y: -9 },\r\n { x: 1308, y: -15 },\r\n { x: 1309, y: -13 },\r\n { x: 1310, y: 1 },\r\n { x: 1311, y: 27 },\r\n { x: 1312, y: 48 },\r\n { x: 1313, y: 53 },\r\n { x: 1314, y: 55 },\r\n { x: 1315, y: 54 },\r\n { x: 1316, y: 27 },\r\n { x: 1317, y: 20 },\r\n { x: 1318, y: 14 },\r\n { x: 1319, y: 10 },\r\n { x: 1320, y: 3 },\r\n { x: 1321, y: 9 },\r\n { x: 1322, y: 21 },\r\n { x: 1323, y: 15 },\r\n { x: 1324, y: 9 },\r\n { x: 1325, y: 5 },\r\n { x: 1326, y: 0 },\r\n { x: 1327, y: 0 },\r\n { x: 1328, y: -1 },\r\n { x: 1329, y: 3 },\r\n { x: 1330, y: 4 },\r\n { x: 1331, y: 2 },\r\n { x: 1332, y: -4 },\r\n { x: 1333, y: -5 },\r\n { x: 1334, y: -12 },\r\n { x: 1335, y: -14 },\r\n { x: 1336, y: -20 },\r\n { x: 1337, y: -23 },\r\n { x: 1338, y: -21 },\r\n { x: 1339, y: -20 },\r\n { x: 1340, y: -28 },\r\n { x: 1341, y: -25 },\r\n { x: 1342, y: -25 },\r\n { x: 1343, y: -30 },\r\n { x: 1344, y: -34 },\r\n { x: 1345, y: -43 },\r\n { x: 1346, y: -39 },\r\n { x: 1347, y: -36 },\r\n { x: 1348, y: -44 },\r\n { x: 1349, y: -28 },\r\n { x: 1350, y: -22 },\r\n { x: 1351, y: -11 },\r\n { x: 1352, y: -12 },\r\n { x: 1353, y: -7 },\r\n { x: 1354, y: -14 },\r\n { x: 1355, y: -11 },\r\n { x: 1356, y: -13 },\r\n { x: 1357, y: -19 },\r\n { x: 1358, y: -19 },\r\n { x: 1359, y: -13 },\r\n { x: 1360, y: 4 },\r\n { x: 1361, y: 19 },\r\n { x: 1362, y: 16 },\r\n { x: 1363, y: 19 },\r\n { x: 1364, y: 21 },\r\n { x: 1365, y: 22 },\r\n { x: 1366, y: 5 },\r\n { x: 1367, y: -12 },\r\n { x: 1368, y: -27 },\r\n { x: 1369, y: -24 },\r\n { x: 1370, y: -16 },\r\n { x: 1371, y: -15 },\r\n { x: 1372, y: -2 },\r\n { x: 1373, y: 8 },\r\n { x: 1374, y: -1 },\r\n { x: 1375, y: -7 },\r\n { x: 1376, y: -1 },\r\n { x: 1377, y: 12 },\r\n { x: 1378, y: 26 },\r\n { x: 1379, y: 27 },\r\n { x: 1380, y: 32 },\r\n { x: 1381, y: 27 },\r\n { x: 1382, y: 19 },\r\n { x: 1383, y: 22 },\r\n { x: 1384, y: 30 },\r\n { x: 1385, y: 36 },\r\n { x: 1386, y: 38 },\r\n { x: 1387, y: 43 },\r\n { x: 1388, y: 46 },\r\n { x: 1389, y: 40 },\r\n { x: 1390, y: 35 },\r\n { x: 1391, y: 27 },\r\n { x: 1392, y: 24 },\r\n { x: 1393, y: 23 },\r\n { x: 1394, y: 16 },\r\n { x: 1395, y: 7 },\r\n { x: 1396, y: 7 },\r\n { x: 1397, y: 11 },\r\n { x: 1398, y: 16 },\r\n { x: 1399, y: 10 },\r\n { x: 1400, y: 6 },\r\n { x: 1401, y: 3 },\r\n { x: 1402, y: 3 },\r\n { x: 1403, y: 12 },\r\n { x: 1404, y: 12 },\r\n { x: 1405, y: 8 },\r\n { x: 1406, y: 5 },\r\n { x: 1407, y: 4 },\r\n { x: 1408, y: 4 },\r\n { x: 1409, y: 4 },\r\n { x: 1410, y: 12 },\r\n { x: 1411, y: 22 },\r\n { x: 1412, y: 9 },\r\n { x: 1413, y: 0 },\r\n { x: 1414, y: -6 },\r\n { x: 1415, y: -23 },\r\n { x: 1416, y: -25 },\r\n { x: 1417, y: -25 },\r\n { x: 1418, y: -31 },\r\n { x: 1419, y: -45 },\r\n { x: 1420, y: -51 },\r\n { x: 1421, y: -50 },\r\n { x: 1422, y: -46 },\r\n { x: 1423, y: -55 },\r\n { x: 1424, y: -59 },\r\n { x: 1425, y: -60 },\r\n { x: 1426, y: -63 },\r\n { x: 1427, y: -62 },\r\n { x: 1428, y: -62 },\r\n { x: 1429, y: -63 },\r\n { x: 1430, y: -75 },\r\n { x: 1431, y: -85 },\r\n { x: 1432, y: -92 },\r\n { x: 1433, y: -94 },\r\n { x: 1434, y: -87 },\r\n { x: 1435, y: -85 },\r\n { x: 1436, y: -77 },\r\n { x: 1437, y: -91 },\r\n { x: 1438, y: -106 },\r\n { x: 1439, y: -114 },\r\n { x: 1440, y: -121 },\r\n { x: 1441, y: -133 },\r\n { x: 1442, y: -146 },\r\n { x: 1443, y: -159 },\r\n { x: 1444, y: -168 },\r\n { x: 1445, y: -167 },\r\n { x: 1446, y: -179 },\r\n { x: 1447, y: -190 },\r\n { x: 1448, y: -200 },\r\n { x: 1449, y: -205 },\r\n { x: 1450, y: -210 },\r\n { x: 1451, y: -213 },\r\n { x: 1452, y: -210 },\r\n { x: 1453, y: -217 },\r\n { x: 1454, y: -219 },\r\n { x: 1455, y: -225 },\r\n { x: 1456, y: -239 },\r\n { x: 1457, y: -246 },\r\n { x: 1458, y: -257 },\r\n { x: 1459, y: -276 },\r\n { x: 1460, y: -298 },\r\n { x: 1461, y: -297 },\r\n { x: 1462, y: -305 },\r\n { x: 1463, y: -312 },\r\n { x: 1464, y: -305 },\r\n { x: 1465, y: -300 },\r\n { x: 1466, y: -312 },\r\n { x: 1467, y: -321 },\r\n { x: 1468, y: -318 },\r\n { x: 1469, y: -306 },\r\n { x: 1470, y: -302 },\r\n { x: 1471, y: -296 },\r\n { x: 1472, y: -297 },\r\n { x: 1473, y: -294 },\r\n { x: 1474, y: -287 },\r\n { x: 1475, y: -290 },\r\n { x: 1476, y: -301 },\r\n { x: 1477, y: -310 },\r\n { x: 1478, y: -312 },\r\n { x: 1479, y: 0 },\r\n { x: 1480, y: -265 },\r\n { x: 1481, y: -362 },\r\n { x: 1482, y: -303 },\r\n { x: 1483, y: -302 },\r\n { x: 1484, y: -293 },\r\n { x: 1485, y: -296 },\r\n { x: 1486, y: -295 },\r\n { x: 1487, y: -286 },\r\n { x: 1488, y: -291 },\r\n { x: 1489, y: -287 },\r\n { x: 1490, y: -268 },\r\n { x: 1491, y: -243 },\r\n { x: 1492, y: -231 },\r\n { x: 1493, y: -229 },\r\n { x: 1494, y: -228 },\r\n { x: 1495, y: -229 },\r\n { x: 1496, y: -236 },\r\n { x: 1497, y: -243 },\r\n { x: 1498, y: -242 },\r\n { x: 1499, y: -217 },\r\n { x: 1500, y: -206 },\r\n { x: 1501, y: -199 },\r\n { x: 1502, y: -189 },\r\n { x: 1503, y: -187 },\r\n { x: 1504, y: -178 },\r\n { x: 1505, y: -163 },\r\n { x: 1506, y: -152 },\r\n { x: 1507, y: -150 },\r\n { x: 1508, y: -149 },\r\n { x: 1509, y: -144 },\r\n { x: 1510, y: -137 },\r\n { x: 1511, y: -121 },\r\n { x: 1512, y: -119 },\r\n { x: 1513, y: -132 },\r\n { x: 1514, y: -126 },\r\n { x: 1515, y: -123 },\r\n { x: 1516, y: -104 },\r\n { x: 1517, y: -96 },\r\n { x: 1518, y: -97 },\r\n { x: 1519, y: -82 },\r\n { x: 1520, y: -56 },\r\n { x: 1521, y: -42 },\r\n { x: 1522, y: -47 },\r\n { x: 1523, y: -40 },\r\n { x: 1524, y: -33 },\r\n { x: 1525, y: -37 },\r\n { x: 1526, y: -43 },\r\n { x: 1527, y: -51 },\r\n { x: 1528, y: -51 },\r\n { x: 1529, y: -35 },\r\n { x: 1530, y: -19 },\r\n { x: 1531, y: -12 },\r\n { x: 1532, y: -11 },\r\n { x: 1533, y: -9 },\r\n { x: 1534, y: -2 },\r\n { x: 1535, y: 12 },\r\n { x: 1536, y: 24 },\r\n { x: 1537, y: 24 },\r\n { x: 1538, y: 32 },\r\n { x: 1539, y: 42 },\r\n { x: 1540, y: 39 },\r\n { x: 1541, y: 45 },\r\n { x: 1542, y: 55 },\r\n { x: 1543, y: 43 },\r\n { x: 1544, y: 42 },\r\n { x: 1545, y: 45 },\r\n { x: 1546, y: 46 },\r\n { x: 1547, y: 51 },\r\n { x: 1548, y: 58 },\r\n { x: 1549, y: 61 },\r\n { x: 1550, y: 57 },\r\n { x: 1551, y: 55 },\r\n { x: 1552, y: 46 },\r\n { x: 1553, y: 29 },\r\n { x: 1554, y: 23 },\r\n { x: 1555, y: 24 },\r\n { x: 1556, y: 21 },\r\n { x: 1557, y: 27 },\r\n { x: 1558, y: 45 },\r\n { x: 1559, y: 56 },\r\n { x: 1560, y: 79 },\r\n { x: 1561, y: 102 },\r\n { x: 1562, y: 103 },\r\n { x: 1563, y: 114 },\r\n { x: 1564, y: 129 },\r\n { x: 1565, y: 116 },\r\n { x: 1566, y: 112 },\r\n { x: 1567, y: 127 },\r\n { x: 1568, y: 130 },\r\n { x: 1569, y: 135 },\r\n { x: 1570, y: 143 },\r\n { x: 1571, y: 144 },\r\n { x: 1572, y: 157 },\r\n { x: 1573, y: 153 },\r\n { x: 1574, y: 140 },\r\n { x: 1575, y: 135 },\r\n { x: 1576, y: 129 },\r\n { x: 1577, y: 111 },\r\n { x: 1578, y: 103 },\r\n { x: 1579, y: 106 },\r\n { x: 1580, y: 108 },\r\n { x: 1581, y: 94 },\r\n { x: 1582, y: 96 },\r\n { x: 1583, y: 89 },\r\n { x: 1584, y: 85 },\r\n { x: 1585, y: 89 },\r\n { x: 1586, y: 94 },\r\n { x: 1587, y: 82 }\r\n\r\n]\r\n// Create a data generator to supply a continuous stream of data.\r\ncreateSampledDataGenerator(point, 1, 10)\r\n .setSamplingFrequency(1)\r\n .setInputData(point)\r\n .generate()\r\n .setStreamBatchSize(48)\r\n .setStreamInterval(50)\r\n .setStreamRepeat(true)\r\n .toStream()\r\n .forEach(point => {\r\n // Push the created points to the series.\r\n series.add({ x: point.timestamp, y: point.data.y })\r\n })\r\n","url":null,"readme":"This example shows a simulated ECG-signal by using a Line Series in a XY Chart.\r\n\r\nThe simulated signal pushes 960 points per second to the chart.\r\n\r\nECG stands for electrocardiogram which is a simple test that can be used to check heart's rhythm and electrical activity.\r\n","image":"ecg.png"},{"id":"lcjs-example-0200-candlesticks","title":"Candlestick Chart","tags":["candlestick","ohlc","trading","xy","date-time"],"description":"This type of chart is used as a trading tool to visualize price movements. Also known as Japanese Candlestick Chart.","src":"/*\r\n * LightningChartJS example that showcases creation of a Candlestick-chart.\r\n */\r\n// Import LightningChartJS\r\nconst lcjs = require('@arction/lcjs')\r\n\r\n// Extract required parts from LightningChartJS.\r\nconst {\r\n lightningChart,\r\n AxisTickStrategies,\r\n OHLCFigures,\r\n emptyLine,\r\n AxisScrollStrategies,\r\n Themes\r\n} = lcjs\r\n\r\n// Import data-generator from 'xydata'-library.\r\nconst {\r\n createOHLCGenerator\r\n} = require('@arction/xydata')\r\n\r\n// Decide on an origin for DateTime axis.\r\nconst dateOrigin = new Date(2018, 0, 1)\r\n\r\n// Create a XY Chart.\r\nconst chart = lightningChart().ChartXY({\r\n // theme: Themes.dark\r\n})\r\n// Use DateTime X-axis using with above defined origin.\r\nchart\r\n .getDefaultAxisX()\r\n .setTickStrategy(\r\n AxisTickStrategies.DateTime,\r\n (tickStrategy) => tickStrategy.setDateOrigin(dateOrigin)\r\n )\r\n\r\nchart.setTitle('Candlesticks Chart')\r\n// Style AutoCursor using preset.\r\nchart.setAutoCursor(cursor => {\r\n cursor.disposeTickMarkerY()\r\n cursor.setGridStrokeYStyle(emptyLine)\r\n})\r\nchart.setPadding({ right: 40 })\r\n\r\n// Change the title and behavior of the default Y Axis\r\nchart.getDefaultAxisY()\r\n .setTitle('USD')\r\n .setInterval(90, 110)\r\n .setScrollStrategy(AxisScrollStrategies.expansion)\r\n\r\n// Add a OHLC series with Candlestick as type of figures.\r\nconst series = chart.addOHLCSeries({ positiveFigure: OHLCFigures.Candlestick })\r\n// Generate some points using 'xydata'-library.\r\nconst dataSpan = 10 * 24 * 60 * 60 * 1000\r\nconst dataFrequency = 1000 * 60\r\ncreateOHLCGenerator()\r\n .setNumberOfPoints(dataSpan / dataFrequency)\r\n .setDataFrequency(dataFrequency)\r\n .setStart(100)\r\n .generate()\r\n .toPromise()\r\n .then(data => {\r\n series.add(data)\r\n })\r\n","url":null,"readme":"*Also known as Japanese Candlestick Chart*\r\n\r\nThis example shows basic implementation of candlestick chart using OHLCSeries. This type of chart is used as a trading tool to visualize price movements. A candlestick figure can represent multiple recorded values, which are packed into 4 values (open, high, low and close). This makes it useful for dynamically displaying data from longer intervals as well as shorter.\r\n\r\nOHLCSeries are created using ChartXY method.\r\n\r\n```javascript\r\nconst chart = lightningChart().ChartXY()\r\n// Method for adding OHLCSeries takes one argument: seriesConstructor.\r\nconst ohlcSeries = chart.addOHLCSeries(\r\n // Specify type of figure used\r\n { seriesConstructor: OHLCFigures.Candlestick }\r\n)\r\n```\r\n\r\nOHLCSeries accept data in the form of interface 'XOHLC':\r\n\r\n```javascript\r\nconst xohlc = [\r\n // X-position\r\n 0,\r\n // Opening Y-value\r\n 100,\r\n // Highest Y-value\r\n 200,\r\n // Lowest Y-value\r\n 50,\r\n // Closing Y-value\r\n 75\r\n]\r\n// Add new segment to series.\r\nohlcSeries.add(xohlc)\r\n```\r\n\r\nadd() can be called with a single XOHLC-object or with an array of them.\r\n\r\n## Anatomy of a candlestick figure\r\n\r\nCandlesticks are formed from two parts: *Body* and *Line*s. Both of these can be individually styled.\r\n\r\n[//]: # \"IMPORTANT: The assets will not show before README.md is built - relative path is different!\"\r\n\r\n\r\n","image":"candleSticks.png"},{"id":"lcjs-example-0201-ohlc","title":"OHLC Chart","tags":["ohlc","trading","xy","date-time"],"description":"Basic implementation of OHLC chart. Also known as Price Chart, Bar Chart.","src":"/*\r\n * LightningChartJS example that showcases creation of OHLC-chart.\r\n */\r\n// Import LightningChartJS\r\nconst lcjs = require('@arction/lcjs')\r\n\r\n// Extract required parts from LightningChartJS.\r\nconst {\r\n lightningChart,\r\n AxisTickStrategies,\r\n OHLCFigures,\r\n AxisScrollStrategies,\r\n emptyLine,\r\n Themes\r\n} = lcjs\r\n\r\n// Create a XY Chart.\r\nconst chart = lightningChart().ChartXY({\r\n // theme: Themes.dark\r\n})\r\n// Use DateTime TickStrategy for the X Axis, set current date as the origin.\r\nchart\r\n .getDefaultAxisX()\r\n .setTickStrategy(\r\n AxisTickStrategies.DateTime,\r\n (tickStrategy) => tickStrategy.setDateOrigin(new Date())\r\n )\r\n\r\nchart.setTitle('Open-High-Low-Close')\r\n// Modify AutoCursor to only show TickMarker and GridLine over the X Axis.\r\nchart.setAutoCursor(cursor => {\r\n cursor.disposeTickMarkerY()\r\n cursor.setGridStrokeYStyle(emptyLine)\r\n})\r\n\r\n// Add a OHLC Series with Bar as type of figures.\r\nconst series = chart.addOHLCSeries({ positiveFigure: OHLCFigures.Bar })\r\n .setName('Open-High-Low-Close')\r\n// Create an array of XOHLC tuples (See API documentation) to use with the OHLC Series\r\n//The XOHLC tuple consists of five different values; position on X Axis (in this case, the date of each entry), the open, high, low and close values.\r\nconst data = [\r\n [new Date(2019, 6, 29).getTime(), 208.46, 210.64, 208.44, 209.68],\r\n [new Date(2019, 6, 30).getTime(), 208.76, 210.16, 207.31, 208.78],\r\n [new Date(2019, 6, 31).getTime(), 216.42, 221.37, 211.3, 213.04],\r\n [new Date(2019, 7, 1).getTime(), 213.9, 218.03, 206.74, 208.43],\r\n [new Date(2019, 7, 2).getTime(), 205.53, 206.43, 201.63, 204.02],\r\n [new Date(2019, 7, 5).getTime(), 197.99, 198.65, 192.58, 193.34],\r\n [new Date(2019, 7, 6).getTime(), 196.31, 198.07, 194.04, 197],\r\n [new Date(2019, 7, 7).getTime(), 195.41, 199.56, 193.82, 199.04],\r\n [new Date(2019, 7, 8).getTime(), 200.2, 203.53, 199.39, 203.43],\r\n [new Date(2019, 7, 9).getTime(), 201.3, 202.76, 199.29, 200.99],\r\n [new Date(2019, 7, 12).getTime(), 199.62, 202.05, 199.15, 200.48],\r\n [new Date(2019, 7, 13).getTime(), 201.02, 212.14, 200.48, 208.97],\r\n [new Date(2019, 7, 14).getTime(), 203.16, 206.44, 202.59, 202.75],\r\n [new Date(2019, 7, 15).getTime(), 203.46, 205.14, 199.67, 201.74],\r\n [new Date(2019, 7, 16).getTime(), 204.28, 207.16, 203.84, 206.5],\r\n [new Date(2019, 7, 19).getTime(), 210.62, 212.73, 210.03, 210.35],\r\n [new Date(2019, 7, 20).getTime(), 210.88, 213.35, 210.32, 210.36],\r\n [new Date(2019, 7, 21).getTime(), 212.99, 213.65, 211.6, 212.64],\r\n [new Date(2019, 7, 22).getTime(), 213.19, 214.44, 210.75, 212.46],\r\n [new Date(2019, 7, 23).getTime(), 209.43, 212.05, 201, 202.64]\r\n]\r\n// Modify the bars for better visibility\r\nseries\r\n .setPositiveStyle((figure) => figure\r\n .setStrokeStyle((stroke) => stroke.setThickness(2))\r\n )\r\n .setNegativeStyle((figure) => figure\r\n .setStrokeStyle((stroke) => stroke.setThickness(2))\r\n )\r\n .setFigureWidth(10)\r\n// Add the created data array to the OHLC series.\r\nseries.add(data)\r\n// Add a single data entry to the array.\r\nseries.add([new Date(2019, 7, 26).getTime(), 205.86, 207.19, 205.06, 206.49])\r\n// Change the title and behavior of the default Y Axis\r\nchart.getDefaultAxisY()\r\n .setTitle('USD')\r\n .setInterval(195, 220)\r\n .setScrollStrategy(AxisScrollStrategies.expansion)\r\n// Fit the X Axis around the given data. Passing false skips animating the fitting.\r\nchart.getDefaultAxisX()\r\n .fit(false)\r\n","url":null,"readme":"*Also known as Price Chart, Bar Chart*\r\n\r\nThis example shows basic implementation of OHLC chart using OHLC-series.\r\n\r\n```javascript\r\n// OHLCSeries exists inside XY-charts.\r\nconst chart = lightningChart().ChartXY()\r\nconst ohlcSeries = chart.addOHLCSeries(\r\n // Specify type of figure used\r\n { positiveFigure: OHLCFigures.Bar }\r\n)\r\n```\r\n\r\nOHLC-series accept data in the form of interface 'XOHLC':\r\n\r\n```javascript\r\nconst xohlc = [\r\n // X-position\r\n 0,\r\n // Opening Y-value\r\n 100,\r\n // Highest Y-value\r\n 200,\r\n // Lowest Y-value\r\n 50,\r\n // Closing Y-value\r\n 75\r\n]\r\n// Add new segment to series.\r\nohlcSeries.add(xohlc)\r\n```\r\n\r\n`add()` can be called with a single XOHLC-object or with an array of them.\r\n\r\n## Anatomy of a Bar figure\r\n\r\nA bar figure is formed from three line segments, which can be styled with a single *LineStyle* object.\r\n\r\n[//]: # \"IMPORTANT: The assets will not show before README.md is built - relative path is different!\"\r\n\r\n\r\n\r\n## Figure styling\r\n\r\nOHLC Series provides an ability to specify styles for both positive and negative candlesticks individually. \r\n\r\n```javascript\r\n// Width of both positive and negative candlesticks\r\nconst figureWidth = 5.0\r\n// Green color filling\r\nconst fillStylePositive = new SolidFill()\r\n .setColor( ColorRGBA( 0, 128, 0 ) )\r\n// Lime color filling\r\nconst fillStyleHighlightPositive = new SolidFill()\r\n .setColor( ColorRGBA (0, 255, 0) )\r\n// Black color stroke\r\nconst bodyStrokeStyle = new SolidLine()\r\n .setFillStyle( new SolidFill().setColor( ColorRGBA( 0, 0, 0 ) ) )\r\n .setThickness( 1.0 )\r\n// Green color stroke\r\nconst strokeStylePositive = new SolidLine()\r\n .setFillStyle( new SolidFill().setColor( ColorRGBA( 0, 128, 0 ) ) )\r\n// Lime color stroke\r\nconst strokeStylePositiveHighlight = new SolidLine()\r\n .setFillStyle( new SolidFill().setColor( ColorRGBA( 0, 240, 0 ) ) )\r\n\r\nohlcSeries\r\n\t// Setting width of figures\r\n\t.setFigureWidth ( figureWidth )\r\n\t// Styling positive candlestick\r\n\t.setPositiveStyle ( ( candlestick ) => candlestick\r\n // Candlestick body fill style\r\n\t\t.setBodyFillStyle( fillStylePositive )\r\n\t\t// Candlestick body fill style when highlighted\r\n .setBodyFillStyleHighlight( fillStyleHighlightPositive )\r\n\t\t// Candlestick body stroke style\r\n .setBodyStrokeStyle( bodyStrokeStyle )\r\n // Candlestick stroke style\r\n\t\t.setStrokeStyle( strokeStylePositive )\r\n\t\t// Candlestick stroke style when highlighted\r\n .setStrokeStyleHighlight( strokeStylePositiveHighlight )\r\n )\r\n\t// Styling negative candlestick\r\n\t.setNegativeStyle( ( candlestick ) => candlestick\r\n // etc ...\r\n )\r\n```\r\n","image":"ohlc.png"},{"id":"lcjs-example-0202-ohlcPlotAutomaticPacking","title":"OHLC Series Automatic Packing","tags":["ohlc","trading","date-time","line","xy"],"description":"This example shows real-time OHLC-packing using a variant of OHLC-series.","src":"/*\r\n * LightningChartJS example that showcases real-time OHLC-packing using a variant of OHLC-series.\r\n */\r\n// Import LightningChartJS\r\nconst lcjs = require('@arction/lcjs')\r\n\r\n// Extract required parts from LightningChartJS.\r\nconst {\r\n lightningChart,\r\n AxisTickStrategies,\r\n AxisScrollStrategies,\r\n OHLCSeriesTypes,\r\n emptyLine,\r\n Themes\r\n} = lcjs\r\n\r\n// Import data-generator from 'xydata'-library.\r\nconst {\r\n createProgressiveTraceGenerator\r\n} = require('@arction/xydata')\r\n\r\n// Decide on an origin for DateTime axis ( cur time - 5 minutes ).\r\nconst fiveMinutesInMs = 5 * 60 * 1000\r\nconst dateOrigin = new Date(new Date().getTime() - fiveMinutesInMs)\r\n\r\n// Create a XY Chart.\r\nconst chart = lightningChart().ChartXY({\r\n // theme: Themes.dark\r\n})\r\n// Use DateTime X-axis using previously defined origin.\r\nchart\r\n .getDefaultAxisX()\r\n .setTickStrategy(\r\n AxisTickStrategies.DateTime,\r\n (tickStrategy) => tickStrategy.setDateOrigin(dateOrigin)\r\n )\r\n\r\n// Set chart title and modify the padding of the chart.\r\nchart\r\n .setTitle('Realtime OHLC and line')\r\n .setPadding({\r\n right: 42\r\n })\r\n// Modify AutoCursor to only show TickMarker and Gridline over X Axis.\r\nchart.setAutoCursor(cursor => {\r\n cursor.disposeTickMarkerY()\r\n cursor.setGridStrokeYStyle(emptyLine)\r\n})\r\n\r\n// Configure X-axis to be progressive.\r\nchart.getDefaultAxisX()\r\n .setScrollStrategy(AxisScrollStrategies.progressive)\r\n // View fits 5 minutes.\r\n .setInterval(0, fiveMinutesInMs)\r\n\r\n// Show title 'USD' on Y axis.\r\nchart.getDefaultAxisY()\r\n .setTitle('USD')\r\n\r\n// Add underlying line series.\r\nconst lineSeries = chart.addLineSeries()\r\n .setCursorEnabled(false)\r\n .setStrokeStyle((strokeStyle) => strokeStyle\r\n .setFillStyle(fill => fill.setA(70))\r\n .setThickness(1)\r\n )\r\n\r\n// Add OHLC series with automatic packing (so we can feed it XY-points just like for the line series).\r\nconst ohlcSeriesAutoPacking = chart.addOHLCSeries(\r\n // Specify type of OHLC-series for adding points\r\n { seriesConstructor: OHLCSeriesTypes.AutomaticPacking }\r\n)\r\n // Set packing resolution to 100 ms so we can zoom to full resolution.\r\n .setPackingResolution(100)\r\n\r\nconst add = (points) => {\r\n lineSeries.add(points)\r\n // With automatic packing, the add method accepts data points that use the {x, y} format (for example, {x: time, y: measurement}).\r\n // OHLC Series can automatically pack these raw measurements into OHLC data.\r\n ohlcSeriesAutoPacking.add(points)\r\n}\r\n\r\n// Generate data using 'xydata'-library.\r\ncreateProgressiveTraceGenerator()\r\n .setNumberOfPoints(10000)\r\n .generate()\r\n .toPromise()\r\n .then((data) => data.map((p) => ({\r\n // Resolution = 100 ms.\r\n x: p.x * 100, y: p.y\r\n })))\r\n .then((data) => {\r\n // Add 5 minutes worth of points immediately ( to simulate previous data ).\r\n add(data.splice(0, Math.round(5 * 60 * 10)))\r\n // Then stream some more\r\n setInterval(() => {\r\n add(data.splice(0, 1))\r\n }, 50)\r\n })\r\n","url":null,"readme":"This example shows real-time OHLC-packing using a variant of OHLC-series.\r\n\r\n```javascript\r\nconst chart = lightningChart().ChartXY()\r\nconst series = chart.addOHLCSeries(\r\n // Specify the type of OHLC-series for adding points\r\n { seriesConstructor: OHLCSeriesTypes.AutomaticPacking }\r\n)\r\n```\r\n\r\nOHLC-series that were created with type 'AutomaticPacking' accept data the same way as any other horizontally progressive XY-series:\r\n\r\n```javascript\r\n// Single point.\r\nseries.add({ x: 50, y: 60 })\r\n\r\n// Multiple points at once.\r\nseries.add([\r\n { x: 55, y: 60 },\r\n { x: 60, y: 62},\r\n { x: 65, y: 65}\r\n])\r\n```\r\n\r\n## Packing logic\r\n\r\nSupplied points are packed by columns, within which the Y-values are mapped to open, high, low and close -values, which are used to draw *OHLCFigures*.\r\n\r\n[//]: # \"IMPORTANT: The assets will not show before README.md is built - relative path is different!\"\r\n\r\n\r\n","image":"ohlcAutomaticPacking.png"},{"id":"lcjs-example-0203-ohlcPlotAutomaticPackingResolution","title":"OHLC Series Automatic Packing Resolution","tags":["ohlc","trading","xy"],"description":"The examples purpose is to shed some light on the packing logic of OHLCSeriesWithAutomaticPacking. This is a variant of OHLCSeries.","src":"/*\r\n * LightningChartJS example that showcases the 'packing resolution' property of StockSeries.\r\n */\r\n// Import LightningChartJS\r\nconst lcjs = require('@arction/lcjs')\r\n\r\n// Extract required parts from LightningChartJS.\r\nconst {\r\n lightningChart,\r\n AxisTickStrategies,\r\n OHLCSeriesTypes,\r\n emptyLine,\r\n Themes\r\n} = lcjs\r\n\r\n// Import data-generator from 'xydata'-library.\r\nconst {\r\n createProgressiveTraceGenerator\r\n} = require('@arction/xydata')\r\n\r\nconst container = document.createElement('div')\r\ncontainer.id = 'lcjs-chart-container'\r\ncontainer.style.display = 'flex'\r\ncontainer.style.flexDirection = 'column'\r\ncontainer.style.height = '100%'\r\n\r\nconst div1 = document.createElement('div')\r\ndiv1.id = 'div1'\r\ndiv1.style.height = '100%'\r\ncontainer.appendChild(div1)\r\nconst div2 = document.createElement('div')\r\ndiv2.id = 'div2'\r\ndiv2.style.height = '100%'\r\ncontainer.appendChild(div2)\r\ndocument.body.appendChild(container)\r\n\r\nconst dataSpan = 60 * 60 * 1000\r\nconst dataFrequency = 1 * 1000\r\n\r\n// Decide on an origin for DateTime axis.\r\nconst dateOrigin = new Date(2018, 0, 1)\r\n// Create charts and series for two different packing resolutions.\r\nconst lc = lightningChart()\r\nconst chartDefault = lc.ChartXY({\r\n container: 'div1',\r\n // theme: Themes.dark\r\n})\r\n// Use DateTime TickStrategy with custom origin date.\r\nchartDefault\r\n .getDefaultAxisX()\r\n .setTickStrategy(\r\n AxisTickStrategies.DateTime,\r\n (tickStrategy) => tickStrategy.setDateOrigin(dateOrigin)\r\n )\r\n\r\nchartDefault\r\n .setTitle('Default packing resolution')\r\n .setAutoCursor(cursor => {\r\n cursor.disposeTickMarkerY()\r\n cursor.setGridStrokeYStyle(emptyLine)\r\n })\r\n// Preventing ResultTable from getting cut at the edge\r\nchartDefault.setPadding({\r\n right: 42\r\n})\r\n\r\n// show title 'USD on Y axis\r\nchartDefault.getDefaultAxisY()\r\n .setTitle('USD')\r\n\r\nconst chartLow = lc.ChartXY({\r\n container: div2,\r\n // theme: Themes.dark\r\n})\r\n// Use DateTime TickStrategy with custom origin date.\r\nchartLow\r\n .getDefaultAxisX()\r\n .setTickStrategy(\r\n AxisTickStrategies.DateTime,\r\n (tickStrategy) => tickStrategy.setDateOrigin(dateOrigin)\r\n )\r\n\r\nchartLow\r\n .setTitle('Very small packing resolution')\r\n .setAutoCursor(cursor => {\r\n cursor.disposeTickMarkerY()\r\n cursor.setGridStrokeYStyle(emptyLine)\r\n })\r\n// Preventing ResultTable from getting cut at the edge\r\nchartLow.setPadding({\r\n right: 42\r\n})\r\n\r\n// show title 'USD on Y axis\r\nchartLow.getDefaultAxisY()\r\n .setTitle('USD')\r\n\r\nconst seriesDefault = chartDefault.addOHLCSeries(\r\n // Specify type of OHLC-series for adding points\r\n { seriesConstructor: OHLCSeriesTypes.AutomaticPacking }\r\n)\r\n .setName('Default packing resolution')\r\n\r\nconst seriesLow = chartLow.addOHLCSeries({ seriesConstructor: OHLCSeriesTypes.AutomaticPacking })\r\n .setName('Very small packing resolution')\r\n // Set packing resolution that is equal to the minimum resolution between two points.\r\n // (essentially allows users to zoom to full resolution)\r\n .setPackingResolution(dataFrequency)\r\n\r\n// Push points to both series.\r\ncreateProgressiveTraceGenerator()\r\n .setNumberOfPoints(dataSpan / dataFrequency)\r\n .generate()\r\n .toPromise()\r\n .then((data) => data.map((p) => ({\r\n x: p.x * dataFrequency, y: p.y\r\n })))\r\n .then((data) => {\r\n seriesDefault.add(data)\r\n seriesLow.add(data)\r\n // Fit axes to fully show difference between packing resolutions. (without fitting\r\n // the initial pixel size of axes would drastically affect automatic packing resolution)\r\n chartDefault.getDefaultAxisX().fit()\r\n chartLow.getDefaultAxisX().fit()\r\n })\r\n","url":null,"readme":"The examples purpose is to shed some light on the packing logic of OHLCSeriesWithAutomaticPacking and how it can be fit to users needs by usage of method: `setPackingResolution`.\r\n\r\nThis class is a variant of OHLCSeries, which adds the automatic packing of XY-points to XOHLC-points. In a nutshell, when pushing points, it simply packages these points into 'XOHLC'-objects at certain intervals (which is controlled by the packing resolution property). \r\n\r\nBy default, or if packing resolution is explicitly set to 'undefined', the used value will be automatically computed based on current pixel-size. This effectively means that any newly pushed points will never be able to be zoomed closer than the view at the time of packing.\r\n\r\nTo ensure that the figures can be zoomed up to desired details, users can set an explicit value for the packing resolution, which will specify the minimum interval (in axis values) between two fully zoomed figures.\r\n\r\n[//]: # \"IMPORTANT: The assets will not show before README.md is built - relative path is different!\"\r\n\r\n\r\n","image":"ohlcAutomaticPackingResolution.png"},{"id":"lcjs-example-0300-verticalBars","title":"Vertical Bars","tags":["bar","column","xy"],"description":"Bar Charts show discrete numerical comparisons across categories, where the value represents the height of a bar. Also known as Bar Graph, Column Chart or Column Graph.","src":"/*\r\n * LightningChartJS example for rendering a 'vertical bar chart' using user-side logic as there is no dedicated Chart type for Bars, yet.\r\n */\r\n// Import LightningChartJS\r\nconst lcjs = require('@arction/lcjs')\r\n\r\n// Extract required parts from LightningChartJS.\r\nconst {\r\n lightningChart,\r\n AxisScrollStrategies,\r\n SolidFill,\r\n SolidLine,\r\n ColorRGBA,\r\n emptyLine,\r\n emptyFill,\r\n AutoCursorModes,\r\n UIOrigins,\r\n AxisTickStrategies,\r\n Themes\r\n} = lcjs\r\n\r\nconst lc = lightningChart()\r\n\r\nconst months = [\r\n 'January', 'February', 'March', 'April', 'May', 'June', 'July',\r\n 'August', 'September', 'October', 'November', 'December'\r\n]\r\n// Define an interface for creating vertical bars.\r\nlet barChart\r\n{\r\n barChart = (options) => {\r\n // flat red fill style for positive bars\r\n const flatRedStyle = new SolidFill().setColor(ColorRGBA(242, 67, 79))\r\n // flat blue fill style for negative bars\r\n const flatBlueStyle = new SolidFill().setColor(ColorRGBA(42, 171, 240))\r\n\r\n let x = 0\r\n const figureThickness = 10\r\n const figureGap = figureThickness * .5\r\n const bars = []\r\n\r\n // Create a XY-Chart and add a RectSeries to it for rendering rectangles.\r\n const chart = lc.ChartXY(options)\r\n .setTitle('Changes in electricity usage between 2017 and 2018')\r\n .setAutoCursorMode(AutoCursorModes.onHover)\r\n // Disable mouse interactions (e.g. zooming and panning) of plotting area\r\n .setMouseInteractions(false)\r\n\r\n // Bar series represented with rectangles.\r\n const rectangles = chart.addRectangleSeries()\r\n\r\n // cursor\r\n //#region\r\n // Show band using Rectangle series.\r\n const band = chart.addRectangleSeries()\r\n .setMouseInteractions(false)\r\n .setCursorEnabled(false).add({ x: 0, y: 0, width: 0, height: 0 })\r\n .setFillStyle(new SolidFill().setColor(ColorRGBA(255, 255, 255, 50)))\r\n .setStrokeStyle(emptyLine)\r\n .dispose()\r\n // Modify AutoCursor.\r\n chart.setAutoCursor(cursor => cursor\r\n .disposePointMarker()\r\n .disposeTickMarkerX()\r\n .disposeTickMarkerY()\r\n .setGridStrokeXStyle(emptyLine)\r\n .setGridStrokeYStyle(emptyLine)\r\n .setResultTable((table) => {\r\n table\r\n .setOrigin(UIOrigins.CenterBottom)\r\n })\r\n )\r\n // Change how series parses its data-points using series method.\r\n rectangles.setResultTableFormatter((builder, series, figure) => {\r\n let counter = 0\r\n // Find cached entry for the figure.\r\n const entry = bars.find((bar, index) => {\r\n counter = index;\r\n return bar.rect == figure\r\n }).entry\r\n // Parse result table content from values of 'entry'.\r\n return builder\r\n .addRow(`Month: ${months[counter]}`)\r\n .addRow(`Value: ${entry.value}%`)\r\n })\r\n // Apply cursor logic using series.onHover method\r\n rectangles.onHover((_, point) => {\r\n if (point) {\r\n const figure = point.figure\r\n const dimensions = figure.getDimensionsPositionAndSize()\r\n // Show band.\r\n band\r\n .setDimensions({\r\n x: dimensions.x - figureGap * .5,\r\n y: figure.scale.y.getInnerStart(),\r\n width: dimensions.width + figureGap,\r\n height: figure.scale.y.getInnerInterval()\r\n })\r\n .restore()\r\n } else\r\n band.dispose()\r\n })\r\n //#endregion\r\n\r\n // X-axis of the series\r\n const axisX = chart.getDefaultAxisX()\r\n .setTitle('Quarter')\r\n .setMouseInteractions(false)\r\n .setScrollStrategy(undefined)\r\n // Disable default ticks.\r\n .setTickStrategy(AxisTickStrategies.Empty)\r\n\r\n // Y-axis of the series\r\n const axisY = chart.getDefaultAxisY()\r\n .setTitle('(%)')\r\n .setMouseInteractions(false)\r\n .setScrollStrategy(AxisScrollStrategies.fitting)\r\n\r\n //Add middle line\r\n const constantLine = axisY.addConstantLine()\r\n constantLine.setValue(0)\r\n .setMouseInteractions(false)\r\n .setStrokeStyle(new SolidLine(\r\n { thickness: 2, fillStyle: new SolidFill({ color: ColorRGBA(125, 125, 125) }) }))\r\n\r\n /**\r\n * Add multiple bars.\r\n * @param entries Add multiple bars data.\r\n */\r\n const addValues = (entries) => {\r\n for (const entry of entries) {\r\n bars.push(add(entry))\r\n }\r\n }\r\n /**\r\n * Add single bar.\r\n * @param entry Add a single bar data.\r\n */\r\n const addValue = (entry) => {\r\n bars.push(add(entry))\r\n }\r\n /**\r\n * Construct bar to draw.\r\n * @param entry Single bar data.\r\n */\r\n const add = (entry) => {\r\n // Create rect dimensions.\r\n const rectDimensions = {\r\n x: x - figureThickness,\r\n y: 0,\r\n width: figureThickness,\r\n height: entry.value\r\n }\r\n // Add rect to the series.\r\n const rect = rectangles.add(rectDimensions)\r\n // Set individual color for the bar.\r\n rect.setFillStyle(entry.value > 0 ? flatRedStyle : flatBlueStyle)\r\n\r\n // Set view manually.\r\n axisX.setInterval(\r\n -(figureThickness + figureGap),\r\n x + figureGap\r\n )\r\n\r\n // Add custom tick, more like categorical axis.\r\n axisX.addCustomTick()\r\n .setValue(x - figureGap)\r\n .setGridStrokeLength(0)\r\n .setTextFormatter(_ => entry.category)\r\n .setMarker(marker => marker\r\n .setPadding(4)\r\n .setBackground((background) => background\r\n .setFillStyle(emptyFill)\r\n .setStrokeStyle(emptyLine)\r\n )\r\n .setTextFillStyle(new SolidFill({ color: ColorRGBA(170, 170, 170) }))\r\n )\r\n x += figureThickness + figureGap\r\n // Return data-structure with both original 'entry' and the rectangle figure that represents it.\r\n return {\r\n entry,\r\n rect\r\n }\r\n }\r\n\r\n // Return public methods of a bar chart interface.\r\n return {\r\n addValue,\r\n addValues\r\n }\r\n }\r\n}\r\n\r\n// Use bar chart interface to construct series.\r\nconst chart = barChart({\r\n // theme: Themes.dark\r\n})\r\n// Add multiple bars at once.\r\nchart.addValues([\r\n { category: '', value: 20 },\r\n { category: 'Q1', value: 20 },\r\n { category: '', value: -25 },\r\n { category: '', value: 40 },\r\n { category: 'Q2', value: 28 },\r\n { category: '', value: -23 },\r\n { category: '', value: -40 },\r\n { category: 'Q3', value: 35 },\r\n { category: '', value: 17 },\r\n { category: '', value: 24 },\r\n { category: 'Q4', value: -29 },\r\n { category: '', value: 15 }\r\n])\r\n","url":null,"readme":"*Also known as Bar Graph, Column Chart or Column Graph*\r\n\r\nThis example shows the creation of a column chart made on user side by utilizing RectangleSeries which displays data as vertical bars. Bar Charts show discrete numerical comparisons across categories, where the value represents the height of a bar.\r\n\r\nThe following code below shows the creation of a Vertical Bar Chart using a pre-defined interface. Moreover, the current interface allows visualizing columns with negative values.\r\n\r\nThe bar series accepts points in format `{ category: string, value: number }`. Any number of points can be added with a single call.\r\n\r\n```javascript\r\n// Create Chart.\r\nconst chart = barChart()\r\n\r\n// Add bars.\r\nchart.addValues([\r\n { category: 'A', value: 20 },\r\n { category: 'B', value: -30 }\r\n])\r\n```\r\n\r\nThe actual Bar Chart logic just serves to provide a starting point for users to create their own API based on their needs and preferences.\r\n","image":"verticalBars.png"},{"id":"lcjs-example-0301-horizontalBars","title":"Horizontal Bars","tags":["bar","column","xy"],"description":"Horizontal variant of a Bar Chart. Also known as Bar Graph, Column Chart or Column Graph.","src":"/*\r\n * LightningChartJS example for rendering a 'Simple horizontal bar chart'.\r\n */\r\n// Import LightningChartJS\r\nconst lcjs = require('@arction/lcjs')\r\n\r\n// Extract required parts from LightningChartJS.\r\nconst {\r\n lightningChart,\r\n SolidFill,\r\n SolidLine,\r\n ColorRGBA,\r\n emptyLine,\r\n emptyFill,\r\n AxisTickStrategies,\r\n AutoCursorModes,\r\n UIOrigins,\r\n Themes\r\n} = lcjs\r\n\r\nconst lc = lightningChart()\r\n\r\n// Define an interface for creating horizontal bars.\r\nlet barChart\r\n{\r\n barChart = (options) => {\r\n // flat red fill style for positive bars\r\n const flatRedStyle = new SolidFill().setColor(ColorRGBA(242, 67, 79))\r\n // flat blue fill style for negative bars\r\n const flatBlueStyle = new SolidFill().setColor(ColorRGBA(42, 171, 240))\r\n\r\n let y = 0\r\n const figureThickness = 10\r\n const figureGap = figureThickness * .5\r\n const bars = []\r\n\r\n // Create a XY-Chart and add a RectSeries to it for rendering rectangles.\r\n const chart = lc.ChartXY(options)\r\n .setTitle('Mass memory production increases in 2018')\r\n .setAutoCursorMode(AutoCursorModes.onHover)\r\n // Disable mouse interactions (e.g. zooming and panning) of plotting area\r\n .setMouseInteractions(false)\r\n .setPadding({ right: 20 })\r\n\r\n // Bar series represented with rectangles.\r\n const rectangles = chart.addRectangleSeries()\r\n\r\n // cursor\r\n //#region\r\n // Show band using Rectangle series.\r\n const band = chart.addRectangleSeries()\r\n .setMouseInteractions(false)\r\n .setCursorEnabled(false).add({ x: 0, y: 0, width: 0, height: 0 })\r\n .setFillStyle(new SolidFill().setColor(ColorRGBA(255, 255, 255, 50)))\r\n .setStrokeStyle(emptyLine)\r\n .dispose()\r\n // Modify AutoCursor.\r\n chart.setAutoCursor(cursor => cursor\r\n .setResultTableAutoTextStyle(true)\r\n .disposePointMarker()\r\n .disposeTickMarkerX()\r\n .disposeTickMarkerY()\r\n .setGridStrokeXStyle(emptyLine)\r\n .setGridStrokeYStyle(emptyLine)\r\n .setResultTable((table) => {\r\n table\r\n .setOrigin(UIOrigins.CenterBottom)\r\n })\r\n )\r\n // Change how marker displays its information.\r\n rectangles.setResultTableFormatter((builder, series, figure) => {\r\n // Find cached entry for the figure.\r\n const entry = bars.find((bar) => bar.rect == figure).entry\r\n // Parse result table content from values of 'entry'.\r\n return builder\r\n .addRow('Month: ' + entry.category)\r\n .addRow('Value: ' + String(entry.value))\r\n })\r\n // Apply cursor logic using series.onHover method\r\n rectangles.onHover((_, point) => {\r\n if (point) {\r\n const figure = point.figure\r\n const dimensions = figure.getDimensionsPositionAndSize()\r\n // Show band.\r\n band\r\n .setDimensions({\r\n x: figure.scale.x.getInnerStart(),\r\n y: dimensions.y - figureGap * .5,\r\n width: figure.scale.x.getInnerInterval(),\r\n height: dimensions.height + figureGap\r\n })\r\n .restore()\r\n } else\r\n band.dispose()\r\n })\r\n //#endregion\r\n\r\n // X-axis of the series\r\n const axisX = chart.getDefaultAxisX()\r\n .setMouseInteractions(false)\r\n .setInterval(-100, 100)\r\n .setTitle('%')\r\n\r\n // Y-axis of the series\r\n const axisY = chart.getDefaultAxisY()\r\n .setMouseInteractions(false)\r\n .setScrollStrategy(undefined)\r\n // Disable default ticks.\r\n .setTickStrategy(AxisTickStrategies.Empty)\r\n\r\n //Add middle line\r\n const constantLine = axisX.addConstantLine()\r\n constantLine.setValue(0)\r\n .setMouseInteractions(false)\r\n .setStrokeStyle(new SolidLine(\r\n { thickness: 2, fillStyle: new SolidFill({ color: ColorRGBA(125, 125, 125) }) }))\r\n\r\n /**\r\n * Add multiple bars.\r\n * @param entries Add multiple bars data.\r\n */\r\n const addValues = (entries) => {\r\n for (const entry of entries) {\r\n bars.push(add(entry))\r\n }\r\n }\r\n /**\r\n * Add single bar.\r\n * @param entry Add a single bar data.\r\n */\r\n const addValue = (entry) => {\r\n bars.push(add(entry))\r\n }\r\n /**\r\n * Construct bar to draw.\r\n * @param entry Single bar data.\r\n */\r\n const add = (entry) => {\r\n // Create rect dimensions.\r\n const rectDimensions = {\r\n x: 0,\r\n y: y - figureThickness,\r\n width: entry.value,\r\n height: figureThickness\r\n }\r\n // Add rect to the series.\r\n const rect = rectangles.add(rectDimensions)\r\n // Set individual color for the bar.\r\n rect.setFillStyle(entry.value > 0 ? flatRedStyle : flatBlueStyle)\r\n\r\n // Set view manually.\r\n axisY.setInterval(\r\n -(figureThickness + figureGap),\r\n y + figureGap\r\n )\r\n\r\n // Add custom tick, more like categorical axis.\r\n axisY.addCustomTick()\r\n .setValue(y - figureGap)\r\n .setGridStrokeLength(0)\r\n .setTextFormatter(_ => entry.category)\r\n .setMarker(marker => marker\r\n .setPadding(4)\r\n .setBackground((background) => background\r\n .setFillStyle(emptyFill)\r\n .setStrokeStyle(emptyLine)\r\n )\r\n .setTextFillStyle(new SolidFill({ color: ColorRGBA(170, 170, 170) }))\r\n )\r\n y += figureThickness + figureGap\r\n // Return data-structure with both original 'entry' and the rectangle figure that represents it.\r\n return {\r\n entry,\r\n rect\r\n }\r\n }\r\n\r\n // Return public methods of a bar chart interface.\r\n return {\r\n addValue,\r\n addValues\r\n }\r\n }\r\n}\r\n\r\n// Use bar chart interface to construct series.\r\nconst chart = barChart({\r\n // theme: Themes.dark\r\n})\r\n// Add multiple bars at once.\r\nchart.addValues([\r\n { category: 'Jan', value: 20 },\r\n { category: 'Feb', value: -30 },\r\n { category: 'Mar', value: -100 },\r\n { category: 'Apr', value: 100 },\r\n { category: 'May', value: -75 },\r\n { category: 'Jun', value: 80 },\r\n { category: 'Jul', value: -100 },\r\n { category: 'Aug', value: 35 },\r\n { category: 'Sep', value: -50 },\r\n { category: 'Oct', value: 100 },\r\n { category: 'Nov', value: 5 },\r\n { category: 'Dec', value: 15 }\r\n])\r\n","url":null,"readme":"*Also known as Bar Graph, Column Chart or Column Graph*\r\n\r\nSimilarly to ***Column Chart or Vertical Bar Chart***, this example shows the creation of a column chart made on user side by utilizing RectangleSeries, but displays data as horizontal bars. Bar Charts show discrete numerical comparisons across categories, where the value represents the length of a bar.\r\n\r\nThe following code below shows the creation of a Horizontal Bar Chart using a pre-defined interface. Moreover, the current interface allows visualizing columns with negative values.\r\n\r\nThe bar series accepts points in format `{ category: string, value: number }`. Any number of points can be added with a single call.\r\n\r\n```javascript\r\n// Create Chart.\r\nconst chart = barChart()\r\n\r\n// Add bars.\r\nchart.addValues([\r\n { category: 'A', value: 20 },\r\n { category: 'B', value: -30 }\r\n])\r\n```\r\n\r\nThe actual Bar Chart logic just serves to provide a starting point for users to create their own API based on their needs and preferences.\r\n","image":"horizontalBars.png"},{"id":"lcjs-example-0302-groupedBars","title":"Grouped Bars","tags":["bar","column","group","xy"],"description":"Grouped bars for better categorizing than normal bar chart. Also known as Multi-set and Clustered Bar Chart.","src":"/*\r\n * LightningChartJS example that showcases creation of a grouped bars chart.\r\n */\r\n// Import LightningChartJS\r\nconst lcjs = require('@arction/lcjs')\r\n\r\n// Extract required parts from LightningChartJS.\r\nconst {\r\n lightningChart,\r\n SolidFill,\r\n ColorRGBA,\r\n emptyLine,\r\n emptyFill,\r\n AutoCursorModes,\r\n ColorPalettes,\r\n UIOrigins,\r\n LegendBoxBuilders,\r\n AxisScrollStrategies,\r\n AxisTickStrategies,\r\n Themes\r\n} = lcjs\r\n\r\nconst lc = lightningChart()\r\n\r\n// Define an interface for creating vertical bars.\r\nlet barChart\r\n{\r\n barChart = (options) => {\r\n const figureThickness = 10\r\n const figureGap = figureThickness * .25\r\n const groupGap = figureGap * 3.0\r\n const groups = []\r\n const categories = []\r\n\r\n // Create a XY-Chart and add a RectSeries to it for rendering rectangles.\r\n const chart = lc.ChartXY(options)\r\n .setTitle('Grouped Bars (Employee Count)')\r\n .setAutoCursorMode(AutoCursorModes.onHover)\r\n // Disable mouse interactions (e.g. zooming and panning) of plotting area\r\n .setMouseInteractions(false)\r\n // Temporary fix for library-side bug. Remove after fixed.\r\n .setPadding({ bottom: 30 })\r\n\r\n // X-axis of the series\r\n const axisX = chart.getDefaultAxisX()\r\n .setMouseInteractions(false)\r\n .setScrollStrategy(undefined)\r\n // Disable default ticks.\r\n .setTickStrategy(AxisTickStrategies.Empty)\r\n\r\n // Y-axis of the series\r\n const axisY = chart.getDefaultAxisY()\r\n .setMouseInteractions(false)\r\n .setTitle('Number of Employees')\r\n .setInterval(0, 70)\r\n .setScrollStrategy(AxisScrollStrategies.fitting)\r\n\r\n // cursor\r\n //#region\r\n // Modify AutoCursor.\r\n chart.setAutoCursor(cursor => cursor\r\n .disposePointMarker()\r\n .disposeTickMarkerX()\r\n .disposeTickMarkerY()\r\n .setGridStrokeXStyle(emptyLine)\r\n .setGridStrokeYStyle(emptyLine)\r\n .setResultTable((table) => {\r\n table\r\n .setOrigin(UIOrigins.CenterBottom)\r\n })\r\n )\r\n // Define function that creates a Rectangle series (for each category), that adds cursor functionality to it\r\n const createSeriesForCategory = (category) => {\r\n const series = chart.addRectangleSeries()\r\n // Change how marker displays its information.\r\n series.setResultTableFormatter((builder, series, figure) => {\r\n // Find cached entry for the figure.\r\n let entry = {\r\n name: category.name,\r\n value: category.data[category.figures.indexOf(figure)]\r\n }\r\n // Parse result table content from values of 'entry'.\r\n return builder\r\n .addRow('Department:', entry.name)\r\n .addRow('# of employees:', String(entry.value))\r\n })\r\n return series\r\n }\r\n //#endregion\r\n // LegendBox\r\n //#region\r\n const margin = 4\r\n const legendBox = chart.addLegendBox(LegendBoxBuilders.VerticalLegendBox)\r\n .setPosition({ x: 15, y: 90 })\r\n .setOrigin(UIOrigins.LeftTop)\r\n .setMargin(margin)\r\n\r\n //#endregion\r\n // Function redraws bars chart based on values of 'groups' and 'categories'\r\n const redraw = () => {\r\n let x = 0\r\n for (let groupIndex = 0; groupIndex < groups.length; groupIndex++) {\r\n const group = groups[groupIndex]\r\n const xStart = x\r\n for (const category of categories) {\r\n const value = category.data[groupIndex]\r\n if (value !== undefined) {\r\n // Position figure of respective value.\r\n const figure = category.figures[groupIndex]\r\n figure.setDimensions({\r\n x,\r\n y: 0,\r\n width: figureThickness,\r\n height: value\r\n })\r\n // Figure gap\r\n x += figureThickness + figureGap\r\n }\r\n }\r\n // Position CustomTick\r\n group.tick.setValue((xStart + x - figureGap) / 2)\r\n\r\n // Group gap\r\n x += groupGap\r\n }\r\n axisX.setInterval(-(groupGap + figureGap), x)\r\n }\r\n const addGroups = (names) => {\r\n for (const name of names)\r\n groups.push({\r\n name,\r\n tick: axisX.addCustomTick()\r\n .setGridStrokeLength(0)\r\n .setTextFormatter((_) => name)\r\n .setMarker((marker) => marker\r\n .setBackground((background) => background\r\n .setFillStyle(emptyFill)\r\n .setStrokeStyle(emptyLine)\r\n )\r\n .setTextFillStyle(new SolidFill({ color: ColorRGBA(170, 170, 170) }))\r\n )\r\n })\r\n }\r\n const addCategory = (entry) => {\r\n // Each category has its own series.\r\n const series = createSeriesForCategory(entry)\r\n .setName(entry.name)\r\n .setDefaultStyle(figure => figure.setFillStyle(entry.fill))\r\n entry.figures = entry.data.map((value) => series.add({ x: 0, y: 0, width: 0, height: 0 }))\r\n legendBox.add(series, true, 'Department')\r\n categories.push(entry)\r\n redraw()\r\n }\r\n // Return public methods of a bar chart interface.\r\n return {\r\n addCategory,\r\n addGroups\r\n }\r\n }\r\n}\r\n\r\n// Use bar chart interface to construct series\r\nconst chart = barChart({\r\n // theme: Themes.dark\r\n})\r\n\r\n// Add groups\r\nchart.addGroups(['Finland', 'Germany', 'UK'])\r\n\r\n// Add categories of bars\r\nconst categories = ['Engineers', 'Sales', 'Marketing']\r\nconst palette = ColorPalettes.arctionWarm(categories.length)\r\nconst fillStyles = categories.map((_, i) => new SolidFill({ color: palette(i) }))\r\nconst data = [\r\n [48, 27, 24],\r\n [19, 40, 14],\r\n [33, 33, 62]\r\n]\r\ndata.forEach((data, i) =>\r\n chart.addCategory({\r\n name: categories[i],\r\n data,\r\n fill: fillStyles[i]\r\n })\r\n)\r\n","url":null,"readme":"*Also known as Multi-set / Clustered Bar Chart*\r\n\r\nThis example shows creation of a Grouped Bar Chart made on user side by utilizing RectangleSeries. This is a variation of normal Bar Chart where groups of bars are spaced apart from each other for further categorizing.\r\n\r\nHere's the creation of a Grouped Bar Chart using a pre-defined interface.\r\n\r\n```javascript\r\n// Create Chart.\r\nconst chart = barChart()\r\n// Add groups.\r\nchart.addGroups([\r\n 'Group A',\r\n 'Group B'\r\n])\r\n// Add categories & values.\r\nchart\r\n .addCategory({\r\n name: 'Category #1',\r\n // 'data' contain values for each group in same order as they were defined before.\r\n data: [100, 200],\r\n fill: new SolidFill().setColor(prettyColor1)\r\n })\r\n .addCategory({\r\n name: 'Category #2',\r\n // 'data' contain values for each group in same order as they were defined before.\r\n data: [50, 160],\r\n fill: new SolidFill().setColor(prettyColor2)\r\n })\r\n```\r\n\r\nThe actual Grouped Bar Chart logic just serves to provide a starting point for users to create their own API based on their needs and preferences.\r\n","image":"groupedBars.png"},{"id":"lcjs-example-0303-spanChart","title":"Span Chart","tags":["bar","xy"],"description":"Also known as a Range Bar, Column Graph, Floating Bar Graph, Difference Graph, High-Low Graph.","src":"/*\r\n * LightningChartJS example that showcases creation of a Span-chart.\r\n */\r\n// Import LightningChartJS\r\nconst lcjs = require('@arction/lcjs')\r\n\r\n// Extract required parts from LightningChartJS.\r\nconst {\r\n lightningChart,\r\n SolidFill,\r\n ColorRGBA,\r\n emptyLine,\r\n emptyFill,\r\n AxisTickStrategies,\r\n ColorPalettes,\r\n SolidLine,\r\n UIOrigins,\r\n UIElementBuilders,\r\n UILayoutBuilders,\r\n UIDraggingModes,\r\n Themes\r\n} = lcjs\r\n\r\nconst lc = lightningChart()\r\n\r\n// Titles for span\r\nconst titles = [\r\n 'Certificate exams',\r\n 'Interview',\r\n 'Trainee training program',\r\n 'Department competition training sessions',\r\n 'Internet security training',\r\n 'Scrum meeting',\r\n 'Development meeting',\r\n 'First Aid training',\r\n 'Conquering the silence - How to improve your marketing'\r\n]\r\n\r\n// Define an interface for creating span charts.\r\nlet spanChart\r\n// User side SpanChart logic.\r\n{\r\n spanChart = () => {\r\n // Create a XY-Chart and add a RectSeries to it for rendering rectangles.\r\n const chart = lc.ChartXY({\r\n // theme: Themes.dark \r\n })\r\n .setTitle('Conference Room Reservations')\r\n .setMouseInteractions(false)\r\n // Disable default AutoCursor\r\n .setAutoCursorMode(0)\r\n .setPadding({ right: '2' })\r\n const rectangles = chart.addRectangleSeries()\r\n\r\n const axisX = chart.getDefaultAxisX()\r\n .setMouseInteractions(false)\r\n // Hide default ticks, instead rely on CustomTicks.\r\n .setTickStrategy(AxisTickStrategies.Empty)\r\n\r\n const axisY = chart.getDefaultAxisY()\r\n .setMouseInteractions(false)\r\n .setTitle('Conference Room')\r\n // Hide default ticks, instead rely on CustomTicks.\r\n .setTickStrategy(AxisTickStrategies.Empty)\r\n\r\n let y = 0\r\n for (let i = 8; i <= 20; i++) {\r\n const label = i > 12 ? i - 12 + 'PM' : i + 'AM'\r\n axisX.addCustomTick()\r\n .setValue(i)\r\n .setTickLength(4)\r\n .setGridStrokeLength(0)\r\n .setTextFormatter(_ => label)\r\n .setMarker(marker => marker\r\n .setBackground(background => background\r\n .setFillStyle(emptyFill)\r\n .setStrokeStyle(emptyLine)\r\n )\r\n .setTextFillStyle(new SolidFill({ color: ColorRGBA(170, 170, 170) }))\r\n )\r\n }\r\n\r\n\r\n const figureHeight = 10\r\n const figureThickness = 10\r\n const figureGap = figureThickness * .5\r\n const fitAxes = () => {\r\n // Custom fitting for some additional margins\r\n axisY.setInterval(y, figureHeight * .5)\r\n }\r\n\r\n let customYRange = figureHeight + figureGap * 1.6\r\n const addCategory = (category) => {\r\n const categoryY = y\r\n\r\n const addSpan = (i, min, max, index) => {\r\n // Add rect\r\n const rectDimensions = {\r\n x: min,\r\n y: categoryY - figureHeight,\r\n width: max - min,\r\n height: figureHeight\r\n }\r\n //Add element for span labels\r\n const spanText = chart.addUIElement(\r\n UILayoutBuilders.Row,\r\n { x: axisX.scale, y: axisY.scale }\r\n )\r\n .setOrigin(UIOrigins.Center)\r\n .setDraggingMode(UIDraggingModes.notDraggable)\r\n .setPosition({\r\n x: (min + max) / 2,\r\n y: rectDimensions.y + 5,\r\n })\r\n .setBackground(background => background\r\n .setStrokeStyle(emptyLine)\r\n )\r\n\r\n spanText.addElement(\r\n UIElementBuilders.TextBox\r\n .addStyler(\r\n textBox =>\r\n textBox.setFont(fontSettings => fontSettings.setSize(10)).setText(titles[index])\r\n .setTextFillStyle(new SolidFill().setColor(ColorRGBA(255, 255, 255)))\r\n\r\n )\r\n\r\n )\r\n if (index != i) {\r\n customYRange = customYRange + figureHeight + 1\r\n\r\n }\r\n fitAxes()\r\n // Return figure\r\n return rectangles.add(rectDimensions)\r\n }\r\n\r\n // Add custom tick for category\r\n axisY.addCustomTick()\r\n .setValue(y - figureHeight * 0.5)\r\n .setGridStrokeLength(0)\r\n .setTextFormatter(_ => category)\r\n .setMarker(marker => marker\r\n .setPadding(4)\r\n .setBackground(background => background\r\n .setFillStyle(emptyFill)\r\n .setStrokeStyle(emptyLine)\r\n )\r\n .setTextFillStyle(new SolidFill({ color: ColorRGBA(170, 170, 170) }))\r\n )\r\n y -= figureHeight * 1.5\r\n\r\n fitAxes()\r\n // Return interface for category.\r\n return {\r\n addSpan\r\n }\r\n }\r\n // Return interface for span chart.\r\n return {\r\n addCategory\r\n }\r\n }\r\n}\r\n\r\n// Use the interface for example.\r\nconst chart = spanChart()\r\nconst categories = ['5 chair room', '5 chair room', '5 chair room', '10 chair room', '10 chair room', '20 chair room', 'Conference Hall'].map((name) => chart.addCategory(name))\r\nconst colorPalette = ColorPalettes.flatUI(categories.length)\r\nconst fillStyles = categories.map((_, i) => new SolidFill({ color: colorPalette(i) }))\r\nconst strokeStyle = new SolidLine({\r\n fillStyle: new SolidFill({ color: ColorRGBA(0, 0, 0) }),\r\n thickness: 2\r\n})\r\nconst spans = [\r\n [[10, 13], [16, 18]],\r\n [[8, 17]],\r\n [[12, 20]],\r\n [[9, 17]],\r\n [[10, 12], [15, 19]],\r\n [[11, 16]],\r\n [[9, 18]]\r\n]\r\n\r\nlet index = 0;\r\nspans.forEach((values, i) => {\r\n values.forEach((value, j) => {\r\n categories[i].addSpan(i, value[0], value[1], index)\r\n .setFillStyle(fillStyles[i])\r\n .setStrokeStyle(strokeStyle)\r\n index = index + 1\r\n }\r\n )\r\n})\r\n\r\n\r\n","url":null,"readme":"*Also known as a Range Bar, Column Graph, Floating Bar Graph, Difference Graph, High-Low Graph*\r\n\r\nThis example shows creation of a Span Chart made on user side by utilizing RectangleSeries. Span Charts display categorized value ranges - focusing only on the extreme values. Each category can have multiple 'spans'.\r\n\r\nHere's the creation of a Span Chart using a pre-defined interface.\r\n\r\n```javascript\r\n// Create Chart.\r\nconst chart = spanChart()\r\n// Add categories.\r\nconst tools = chart.addCategory('Tools')\r\nconst fools = chart.addCategory('Fools')\r\n// Add spans as min-max.\r\ntools.addSpan(100, 150)\r\nfools.addSpan(50, 75)\r\n\r\n// Adding a span returns the actual Figure that represents it, which can be styled.\r\nfools.addSpan(200, 250)\r\n .setFillStyle(new SolidFill().setColor(prettyColor))\r\n .setStrokeStyle(emptyLine)\r\n```\r\n\r\nThe actual Span Chart logic just serves to provide a starting point for users to create their own API based on their needs and preferences. The functionality can be easily extended to construct ***Gantt Chart***.\r\n","image":"spanChart.png"},{"id":"lcjs-example-0304-mosaicChart","title":"Mosaic Chart","tags":["bar","xy"],"description":"Mosaic Chart can be used to compare observation counts of groups across different categories. Also known as Marimekko Chart.","src":"/*\r\n * LightningChartJS example for rendering a 'Mosaic chart'.\r\n */\r\n// Import LightningChartJS\r\nconst lcjs = require('@arction/lcjs')\r\n\r\n// Extract required parts from LightningChartJS.\r\nconst {\r\n lightningChart,\r\n SolidFill,\r\n ColorRGBA,\r\n DefaultLibraryStyle,\r\n emptyLine,\r\n emptyFill,\r\n UIElementBuilders,\r\n UIBackgrounds,\r\n UIOrigins,\r\n AxisTickStrategies,\r\n Themes\r\n} = lcjs\r\n\r\nconst lc = lightningChart()\r\n\r\n// Define an interface for creating mosaic charts.\r\nlet mosaicChart\r\n// User side MosaicChart logic.\r\n{\r\n mosaicChart = () => {\r\n // Create a XY-Chart and add a RectSeries to it for rendering rectangles.\r\n const chart = lc.ChartXY({\r\n // theme: Themes.dark \r\n })\r\n .setTitle('Controlled Group Testing')\r\n .setMouseInteractions(false)\r\n // Disable default AutoCursor\r\n .setAutoCursorMode(0)\r\n const rectangles = chart.addRectangleSeries()\r\n\r\n const bottomAxis = chart.getDefaultAxisX()\r\n .setInterval(0, 100)\r\n .setScrollStrategy(undefined)\r\n .setMouseInteractions(false)\r\n .setTitle('%')\r\n const leftAxis = chart.getDefaultAxisY()\r\n .setInterval(0, 100)\r\n .setMouseInteractions(false)\r\n // Hide default ticks of left Axis.\r\n .setTickStrategy(AxisTickStrategies.Empty)\r\n const rightAxis = chart.addAxisY(true)\r\n .setInterval(0, 100)\r\n .setScrollStrategy(undefined)\r\n .setMouseInteractions(false)\r\n .setTitle('%')\r\n const topAxis = chart.addAxisX(true)\r\n .setInterval(0, 100)\r\n .setMouseInteractions(false)\r\n // Hide default ticks of top Axis.\r\n .setTickStrategy(AxisTickStrategies.Empty)\r\n\r\n // Create marker for the top of each column.\r\n const categoryMarkerBuilder = UIElementBuilders.PointableTextBox\r\n // Set the type of background for the marker.\r\n .setBackground(UIBackgrounds.Pointer)\r\n // Style the marker.\r\n .addStyler((marker) => marker\r\n // Hide Background. UIBackgrounds.None doesn't work for CustomTicks right now.\r\n .setBackground((background) => background\r\n .setFillStyle(emptyFill)\r\n .setStrokeStyle(emptyLine)\r\n )\r\n .setTextFillStyle(new SolidFill({ color: ColorRGBA(170, 170, 170) }))\r\n )\r\n // Create text on top of each section.\r\n const subCategoryLabelBuilder = UIElementBuilders.TextBox\r\n // Style the label.\r\n .addStyler(label => label\r\n // Set the origin point and fillStyle (color) for the label.\r\n .setOrigin(UIOrigins.Center)\r\n .setTextFillStyle(new SolidFill().setColor(ColorRGBA(255, 255, 255)))\r\n .setMouseInteractions(false)\r\n )\r\n\r\n const categories = []\r\n const yCategories = []\r\n const subCategories = []\r\n let margin = 4\r\n\r\n\r\n // Recreate rectangle figures from scratch.\r\n const _updateChart = () => {\r\n const px = { x: bottomAxis.scale.getPixelSize(), y: rightAxis.scale.getPixelSize() }\r\n // Remove already existing figures.\r\n rectangles.clear()\r\n // Make new figures from each category.\r\n const sumCategoryValues = categories.reduce((prev, cur) => prev + cur.value, 0)\r\n if (sumCategoryValues > 0) {\r\n let xPos = 0\r\n // For each category on a single column, recreate the marker to the left of the chart.\r\n for (const yCategory of yCategories) {\r\n yCategory.tick\r\n .setTextFormatter(_ => yCategory.name)\r\n .setValue(yCategory.value)\r\n .restoreMarker()\r\n }\r\n // For each category (or column)\r\n for (const category of categories) {\r\n // Calculate the correct value to display for each category\r\n const relativeCategoryValue = 100 * category.value / sumCategoryValues\r\n const sumSubCategoryValues = category.subCategories.reduce((prev, cur) => prev + cur.value, 0)\r\n // If there are subCategories for the column\r\n if (sumSubCategoryValues > 0) {\r\n // Recreate the tick to display above each category and set the correct value to it\r\n category.tick\r\n .setTextFormatter(_ => category.name + \" (\" + Math.round(relativeCategoryValue) + \"%)\")\r\n .setValue(xPos + relativeCategoryValue / 2)\r\n .restoreMarker()\r\n let yPos = 0\r\n for (const subCategory of category.subCategories) {\r\n // Calculate proper value for the subCategory\r\n const relativeSubCategoryValue = 100 * subCategory.value / sumSubCategoryValues\r\n if (relativeSubCategoryValue > 0) {\r\n const rectangleDimensions = {\r\n x: xPos + margin * px.x,\r\n y: yPos + margin * px.y,\r\n width: relativeCategoryValue - 2 * margin * px.x,\r\n height: relativeSubCategoryValue - 2 * margin * px.y\r\n }\r\n // Create a rectangle to represent the subCategory\r\n rectangles.add(rectangleDimensions)\r\n .setFillStyle(subCategory.subCategory.fillStyle)\r\n .setStrokeStyle(emptyLine)\r\n // Recreate the label for the subCategory and update the value for it\r\n subCategory.label\r\n .setText(Math.round(relativeSubCategoryValue) + \"%\")\r\n .setPosition({ x: xPos + relativeCategoryValue / 2, y: yPos + relativeSubCategoryValue / 2 })\r\n .restore()\r\n } else\r\n // The subCategory is not shown, so we can dispose of its label.\r\n subCategory.label.dispose()\r\n yPos += relativeSubCategoryValue\r\n }\r\n } else {\r\n // There are no subCategories for the column, so the elements related to it can be disposed.\r\n category.tick\r\n .disposeMarker()\r\n category.subCategories.forEach(sub => sub.label.dispose())\r\n }\r\n xPos += relativeCategoryValue\r\n }\r\n }\r\n }\r\n // Method to add a new subCategory to the chart.\r\n const addSubCategory = () => {\r\n const subCategory = {\r\n fillStyle: DefaultLibraryStyle.seriesFill,\r\n setFillStyle(fillStyle) {\r\n this.fillStyle = fillStyle\r\n // Refresh the chart.\r\n _updateChart()\r\n return this\r\n }\r\n }\r\n subCategories.push(subCategory)\r\n return subCategory\r\n }\r\n // Method to add a new main category to the chart.\r\n const addCategory = (name) => {\r\n const category = {\r\n name,\r\n value: 0,\r\n tick: topAxis.addCustomTick(categoryMarkerBuilder)\r\n .setGridStrokeStyle(emptyLine)\r\n ,\r\n subCategories: [],\r\n setCategoryValue(value) {\r\n this.value = value\r\n _updateChart()\r\n return this\r\n },\r\n setSubCategoryValue(subCategory, value) {\r\n const existing = this.subCategories.find(a => a.subCategory == subCategory)\r\n if (existing !== undefined) {\r\n existing.value = value\r\n } else {\r\n this.subCategories.push({\r\n subCategory,\r\n value,\r\n label: chart.addUIElement(subCategoryLabelBuilder, { x: bottomAxis.scale, y: rightAxis.scale })\r\n })\r\n }\r\n _updateChart()\r\n return this\r\n }\r\n }\r\n categories.push(category)\r\n return category\r\n }\r\n // Method to add subCategory markers.\r\n const addYCategory = (name, value) => {\r\n const yCategory = {\r\n name,\r\n value: value,\r\n tick: leftAxis.addCustomTick(categoryMarkerBuilder)\r\n .setGridStrokeStyle(emptyLine),\r\n setCategoryYValue(value) {\r\n this.value = value\r\n _updateChart()\r\n return this\r\n }\r\n }\r\n yCategories.push(yCategory)\r\n return yCategory\r\n }\r\n // Return interface for mosaic chart\r\n return {\r\n addSubCategory,\r\n addCategory,\r\n addYCategory\r\n }\r\n }\r\n}\r\n\r\n// Use the interface for example.\r\nconst chart = mosaicChart()\r\nchart.addYCategory(\"Refreshed\", 80)\r\nchart.addYCategory(\"No Effect\", 40)\r\nchart.addYCategory(\"Caused Exhaustion\", 12)\r\n\r\nconst subCategory_exhaust = chart.addSubCategory()\r\n .setFillStyle(new SolidFill().setColor(ColorRGBA(200, 0, 0)))\r\nconst subCategory_noEffect = chart.addSubCategory()\r\n .setFillStyle(new SolidFill().setColor(ColorRGBA(240, 190, 0)))\r\nconst subCategory_refresh = chart.addSubCategory()\r\n .setFillStyle(new SolidFill().setColor(ColorRGBA(0, 180, 0)))\r\n\r\nchart.addCategory('With caffeine')\r\n .setCategoryValue(48)\r\n .setSubCategoryValue(subCategory_exhaust, 25)\r\n .setSubCategoryValue(subCategory_noEffect, 35)\r\n .setSubCategoryValue(subCategory_refresh, 40)\r\n\r\nchart.addCategory('Decaffeinated')\r\n .setCategoryValue(32)\r\n .setSubCategoryValue(subCategory_exhaust, 10)\r\n .setSubCategoryValue(subCategory_noEffect, 45)\r\n .setSubCategoryValue(subCategory_refresh, 45)\r\n\r\nchart.addCategory('Placebo product')\r\n .setCategoryValue(20)\r\n .setSubCategoryValue(subCategory_exhaust, 20)\r\n .setSubCategoryValue(subCategory_noEffect, 50)\r\n .setSubCategoryValue(subCategory_refresh, 30)\r\n","url":null,"readme":"*Also known as Marimekko Chart*\r\n\r\nThis example shows creation of a Mosaic Chart made on user side by utilizing RectangleSeries. Mosaic Chart can be used to compare observation counts of groups (sub-categories) across different categories.\r\n\r\nHere's the creation of a Mosaic Chart using a pre-defined interface.\r\n\r\n```javascript\r\n// Create Chart.\r\nconst chart = mosaicChart()\r\n// Add sub-categories (Each X-category can have a single value for each sub-category).\r\nconst A = chart.addSubCategory('A')\r\nconst B = chart.addSubCategory('B')\r\n// Add categories (These are drawn progressively on X axis).\r\nconst category1 = chart.addCategory('Category #1')\r\nconst category2 = chart.addCategory('Category #2')\r\n// Set values of categories (relative X size).\r\ncategory1.setCategoryValue(60)\r\ncategory2.setCategoryValue(40)\r\n// Set values of sub-categories on categories (relative Y size).\r\ncategory1\r\n .setSubCategoryValue(A, 40)\r\n .setSubCategoryValue(B, 60)\r\ncategory2\r\n .setSubCategoryValue(A, 80)\r\n .setSubCategoryValue(B, 20)\r\n```\r\n\r\nThe actual Mosaic Chart logic just serves to provide a starting point for users to create their own API based on their needs and preferences.\r\n","image":"mosaicChart.png"},{"id":"lcjs-example-0305-racingBars","title":"COVID-19 Tracker","tags":["bar","column","xy"],"description":"Bar chart race shows the dynamics of the Covid-19 spread.","src":"/*\r\n * COVID-19 Bar chart race on LightningChartJS.\r\n */\r\n\r\n// Import LightningChartJS\r\nconst lcjs = require('@arction/lcjs')\r\n\r\n// Extract required parts from LightningChartJS.\r\nconst {\r\n lightningChart,\r\n SolidFill,\r\n ColorHEX,\r\n emptyFill,\r\n emptyLine,\r\n LinearGradientFill,\r\n AnimationEasings,\r\n Animator,\r\n UIOrigins,\r\n UILayoutBuilders,\r\n AxisTickStrategies,\r\n Themes,\r\n AxisScrollStrategies\r\n} = lcjs\r\n\r\nconst ls = lightningChart()\r\n\r\n// Variables used in the example\r\nconst rectThickness = 1\r\nconst rectGap = 0.5\r\nconst bars = []\r\nconst duration = 400 // duration of timer and animation\r\n\r\nlet y = 0\r\nlet initday = 15\r\n// 2 days ago. the final day of the race\r\nlet yesterday = new Date(new Date().getFullYear(),new Date().getMonth() , new Date().getDate() - 2).toISOString() // ((d) => { d.setDate(d.getDate() - 2); return d })(new Date)\r\nlet connectionError = '' \r\n\r\nconst barChart = options => {\r\n // Create a XY chart and add a RectSeries to it for rendering rectangles.\r\n const chart = ls.ChartXY(options)\r\n // Use Chart's title to track date\r\n .setTitle('COVID-19 cases ' + new Date(2020, 2, 15).toLocaleDateString(undefined, { year: \"numeric\", month: \"long\", day: \"numeric\" }))\r\n // Disable AutoCursor (hide information of bar by hover the mouse over it)\r\n .setAutoCursorMode(0)\r\n // Add padding to Chart's right side\r\n .setPadding({ right: 40 })\r\n .setMouseInteractions(false);\r\n\r\n const rectangles = chart.addRectangleSeries()\r\n\r\n // Cache X axis\r\n const axisX = chart.getDefaultAxisX()\r\n // Disable the scrolling animation for the X Axis, so it doesn't interfere.\r\n .setAnimationScroll(false)\r\n .setMouseInteractions(false);\r\n\r\n // Cache Y axis \r\n const axisY = chart.getDefaultAxisY()\r\n // Hide default ticks\r\n .setTickStrategy(AxisTickStrategies.Empty)\r\n // Disable Mouse interactions for the Y Axis\r\n .setMouseInteractions(false)\r\n\r\n // Set custom label for Y-axis\r\n const setTickLabels = (entry, y) => {\r\n axisY.addCustomTick()\r\n .setValue(y + rectGap)\r\n .setGridStrokeLength(0)\r\n .setTextFormatter(_ => entry.country)\r\n .setMarker((marker) => marker\r\n .setBackground((background) => background\r\n .setFillStyle(emptyFill)\r\n .setStrokeStyle(emptyLine)\r\n )\r\n .setTextFillStyle(new SolidFill({ color: ColorHEX('#aaaf') }))\r\n .setFont(fontSettings => fontSettings.setSize(17))\r\n .setPadding(10)\r\n )\r\n }\r\n\r\n // Function returns single bar with property of dimensions, data(entry) and label\r\n const addCountryHandler = entry => {\r\n const rectDimensions = {\r\n x: 0,\r\n y: y,\r\n width: entry.value,\r\n height: rectThickness\r\n }\r\n\r\n // Add rect to the series.\r\n const rect = rectangles.add(rectDimensions)\r\n\r\n // Set individual gradient color for the bar.\r\n rect.setFillStyle(new LinearGradientFill(\r\n {\r\n angle: 90,\r\n stops: [\r\n { color: ColorHEX(entry.color), offset: 0 },\r\n { color: ColorHEX(entry.color2), offset: 1 }\r\n ]\r\n }\r\n ))\r\n\r\n // Add TextBox element to the bar\r\n const label = chart.addUIElement(\r\n UILayoutBuilders.TextBox,\r\n { x: axisX.scale, y: axisY.scale }\r\n )\r\n .setOrigin(UIOrigins.LeftBottom)\r\n .setPosition({\r\n x: entry.value,\r\n y: y\r\n })\r\n .setText(entry.value.toLocaleString())\r\n .setFont(fontSettings => fontSettings.setSize(15))\r\n .setPadding(10)\r\n\r\n // Set label title and position\r\n setTickLabels(entry, y)\r\n\r\n // Set interval for Y axis\r\n axisY.setInterval(-rectThickness, y)\r\n\r\n // Increase value of Y variable \r\n y += rectThickness\r\n\r\n // Return figure\r\n return {\r\n entry,\r\n rect,\r\n label,\r\n }\r\n }\r\n\r\n // Loop for adding bars\r\n const addCountries = (entries) => {\r\n axisX\r\n .setMouseInteractions(false) // Cache Y axis\r\n .setTickStrategy(\r\n AxisTickStrategies.Numeric,\r\n (tickStrategy) => tickStrategy\r\n // .setMinorTickStyle((tickStyle) => tickStyle.setTickPadding(3, 20))\r\n .setFormattingFunction(timeScaled => {\r\n if (timeScaled / 1000 >= 1000) {\r\n return timeScaled / 1000000 + 'M'\r\n }\r\n return timeScaled / 1000 + 'K'\r\n }\r\n )\r\n )\r\n for (const entry of entries) {\r\n bars.push(addCountryHandler(entry))\r\n }\r\n }\r\n\r\n // Sorting and splicing array of data\r\n const sortCountries = (data, raceDay) => {\r\n\r\n let myday = (raceDay.getMonth() + 1) + '/' + raceDay.getDate() + '/' + raceDay.getFullYear().toString().substr(-2)\r\n const countries = { ...data }\r\n\r\n // Map list of countries and sort them in the order (First sort by value, then by country)\r\n const countryList = Object.values(countries).map((c) => (\r\n { country: c.country, value: c.history[myday], color: c.color, color2: c.color2 }\r\n )).sort((a, b) => (a.value > b.value) ? 1 : (a.value === b.value) ? ((a.country > b.country) ? 1 : -1) : -1)\r\n\r\n // Keep only top 20 countries\r\n countryList.splice(0, countryList.length - 20)\r\n\r\n return countryList\r\n }\r\n\r\n // Loop for re-rendering list of data\r\n const startRace = (data) => {\r\n\r\n // Inital day of race\r\n let raceDay = new Date(2020, 2, initday)\r\n\r\n // Set title of chart \r\n chart.setTitle(connectionError + ' COVID-19 cases ' + raceDay.toLocaleDateString(undefined, { year: \"numeric\", month: \"long\", day: \"numeric\" }))\r\n\r\n // Get sorting data\r\n const sortedCountries = sortCountries(data, raceDay)\r\n\r\n // Check if the functions(startRace) has already done first pass\r\n if (bars.length > 0) {\r\n for (let i = 0; i < sortedCountries.length; i++) {\r\n\r\n axisY.setTickStrategy(\r\n (tickStrategy) => tickStrategy\r\n .setTextFillStyle(new SolidFill({\r\n color: ColorHEX(bars[i].entry.color)\r\n })) // if commentend - black \r\n )\r\n\r\n\r\n // Prevent automatic scrolling of Y axis\r\n axisY.setScrollStrategy(AxisScrollStrategies.progressive)\r\n\r\n // Get index of each bar before sorting\r\n const initY = bars.map((e) => (e.entry.country)).indexOf(sortedCountries[i].country);\r\n\r\n // Get index of each bar after sorting\r\n const finalY = sortedCountries.map((e) => (e.country)).indexOf(sortedCountries[i].country);\r\n\r\n // Get Dimensions, Position And Size of bar[i]\r\n const rectDimensions = bars[i].rect.getDimensionsPositionAndSize()\r\n\r\n // Animation of changing the position of bar[i] by Y axis\r\n bars[i].animator = Animator(() => { undefined }) // function that executes after animation \r\n // Time for animation and easing type\r\n (duration, AnimationEasings.linear)\r\n // functions gets 2 arrays of 2 values (range) - initY (prev Y pos) and finalY.y(new Y pos) and rectDimensions.width, sortedCountries[i].value - prev and next width of each bar \r\n // and creates loop with increasing intermediate value (newPos, newWidth)\r\n ([[initY, finalY], [rectDimensions.width, sortedCountries[i].value]], ([newPos, newWidth]) => {\r\n // Reset values \r\n bars[i].entry.country = sortedCountries[i].country\r\n bars[i].entry.color = sortedCountries[finalY] ? sortedCountries[finalY].color : sortedCountries[i].color\r\n bars[i].entry.color2 = sortedCountries[finalY] ? sortedCountries[finalY].color2 : sortedCountries[i].color2\r\n // Animate x and y positions\r\n bars[i].rect.setDimensions({\r\n x: 0,\r\n y: newPos,\r\n width: newWidth,\r\n height: 0.98\r\n })\r\n // Reset bar color \r\n .setFillStyle(\r\n new LinearGradientFill(\r\n {\r\n angle: 90,\r\n stops: [\r\n { color: ColorHEX(bars[finalY] ? bars[finalY].entry.color : sortedCountries[i].color), offset: 0 },\r\n { color: ColorHEX(bars[finalY] ? bars[finalY].entry.color2 : sortedCountries[i].color2), offset: 1 }\r\n ]\r\n }\r\n ))\r\n .restore()\r\n\r\n // Animate labels\r\n bars[i].label\r\n // The topmost country's label should be inside the bar, the others should be to the right of the bar.\r\n .setOrigin(i !== bars.length - 1 ? UIOrigins.LeftCenter : UIOrigins.RightCenter)\r\n // Position the label\r\n .setPosition({\r\n x: newWidth,\r\n y: newPos > 0 ? (newPos + rectGap) : rectGap\r\n })\r\n .setText(sortedCountries[i].value.toLocaleString())\r\n .setPadding(10, 0, 10, 0)\r\n // Disable mouse interactions for the label\r\n .setMouseInteractions(false)\r\n })\r\n }\r\n\r\n } else {\r\n // If function executes for the first time, add countries to the Chart.\r\n addCountries(sortedCountries)\r\n }\r\n\r\n // we've bot reached the last day (i.e. yesterday) execute the function again and increase the day\r\n if (raceDay.toISOString() !== yesterday) {\r\n initday++\r\n setTimeout(() => startRace(data), duration)\r\n }\r\n }\r\n\r\n // function is used for showing errors on line 328\r\n const setTitle = (msg) => {\r\n chart.setTitle(msg)\r\n }\r\n\r\n return {\r\n addCountries,\r\n startRace,\r\n setTitle\r\n }\r\n\r\n}\r\n\r\nconst getRandomColor = () => {\r\n let letters = '3456789ABC';\r\n let color = '#';\r\n for (let i = 0; i < 6; i++) {\r\n color += letters[Math.floor(Math.random() * letters.length)];\r\n }\r\n return color;\r\n}\r\n\r\nconst startRaceHandler = (chart) => {\r\n\r\n // Fetch all countries and history of cases\r\n fetch('https://coronavirus-tracker-api.herokuapp.com/confirmed')\r\n .then(res => res.json())\r\n .then(data => {\r\n\r\n const dat = [...data.locations]\r\n\r\n // After fetching and merging data create bars\r\n chart.startRace(mergeData(dat))\r\n })\r\n .catch(err => {\r\n yesterday = '2020-05-30T21:00:00.000Z'\r\n connectionError = 'Example of data'\r\n chart.startRace(mergeData(fallbackData))\r\n })\r\n\r\n // Some countries are divided by region and it is needed to megre them\r\n const mergeData = data => {\r\n const result = []\r\n // Return only specific information \r\n data.forEach(basket => {\r\n\r\n const f = getRandomColor()\r\n let ob = {\r\n country: basket['country'],\r\n history: { ...basket['history'] },\r\n color: f + '99', // set first color darker \r\n color2: f\r\n }\r\n\r\n // Check if array already contains the country\r\n let has = false\r\n result.find(obj => obj.country == ob.country\r\n ? has = true\r\n : has = false\r\n )\r\n\r\n // Unite object values\r\n const sum = (obj, newObj) => {\r\n Object.keys(obj).map(date => (\r\n obj[date] += newObj[date],\r\n obj.color = newObj.color\r\n ))\r\n }\r\n\r\n // Format the data\r\n if (has) {\r\n result.find(obj => (\r\n obj.country == ob.country\r\n && sum(obj.history, ob.history))\r\n )\r\n } else {\r\n result.push(ob)\r\n }\r\n });\r\n\r\n return result;\r\n };\r\n}\r\n\r\n// Create chart\r\nconst newchart = barChart({\r\n // theme: Themes.light\r\n})\r\n\r\n// Start fetching\r\nstartRaceHandler(newchart)\r\n\r\n\r\n//fallback data \r\nconst fallbackData = [\r\n {\r\n country: 'US',\r\n history: {\r\n '3/15/20': 3212,\r\n '3/16/20': 4679,\r\n '3/17/20': 6512,\r\n '3/18/20': 9169,\r\n '3/19/20': 13663,\r\n '3/20/20': 20030,\r\n '3/21/20': 26025,\r\n '3/22/20': 34855,\r\n '3/23/20': 46086,\r\n '3/24/20': 56698,\r\n '3/25/20': 68773,\r\n '3/26/20': 86613,\r\n '3/27/20': 105293,\r\n '3/28/20': 124900,\r\n '3/29/20': 143779,\r\n '3/30/20': 165861,\r\n '3/31/20': 192177,\r\n '4/1/20': 224418,\r\n '4/2/20': 256636,\r\n '4/3/20': 288906,\r\n '4/4/20': 321318,\r\n '4/5/20': 351203,\r\n '4/6/20': 382613,\r\n '4/7/20': 413382,\r\n '4/8/20': 444580,\r\n '4/9/20': 480534,\r\n '4/10/20': 514942,\r\n '4/11/20': 544119,\r\n '4/12/20': 571400,\r\n '4/13/20': 598310,\r\n '4/14/20': 627082,\r\n '4/15/20': 652513,\r\n '4/16/20': 682548,\r\n '4/17/20': 715267,\r\n '4/18/20': 743223,\r\n '4/19/20': 769416,\r\n '4/20/20': 799212,\r\n '4/21/20': 825046,\r\n '4/22/20': 853818,\r\n '4/23/20': 887386,\r\n '4/24/20': 919658,\r\n '4/25/20': 950100,\r\n '4/26/20': 976680,\r\n '4/27/20': 1000298,\r\n '4/28/20': 1024746,\r\n '4/29/20': 1051136,\r\n '4/30/20': 1080303,\r\n '5/1/20': 1115219,\r\n '5/2/20': 1142639,\r\n '5/3/20': 1167095,\r\n '5/4/20': 1191071,\r\n '5/5/20': 1215543,\r\n '5/6/20': 1240053,\r\n '5/7/20': 1267418,\r\n '5/8/20': 1294224,\r\n '5/9/20': 1319414,\r\n '5/10/20': 1338381,\r\n '5/11/20': 1357566,\r\n '5/12/20': 1380423,\r\n '5/13/20': 1400812,\r\n '5/14/20': 1427725,\r\n '5/15/20': 1452425,\r\n '5/16/20': 1476586,\r\n '5/17/20': 1495068,\r\n '5/18/20': 1517302,\r\n '5/19/20': 1538241,\r\n '5/20/20': 1560975,\r\n '5/21/20': 1586662,\r\n '5/22/20': 1610252,\r\n '5/23/20': 1631496,\r\n '5/24/20': 1651676,\r\n '5/25/20': 1670442,\r\n '5/26/20': 1689948,\r\n '5/27/20': 1708342,\r\n '5/28/20': 1730551,\r\n '5/29/20': 1755010,\r\n '5/30/20': 1778689,\r\n '5/31/20': 1797763,\r\n }\r\n },\r\n {\r\n country: 'Russia',\r\n history: {\r\n '3/15/20': 63,\r\n '3/16/20': 90,\r\n '3/17/20': 114,\r\n '3/18/20': 147,\r\n '3/19/20': 199,\r\n '3/20/20': 253,\r\n '3/21/20': 306,\r\n '3/22/20': 367,\r\n '3/23/20': 438,\r\n '3/24/20': 495,\r\n '3/25/20': 658,\r\n '3/26/20': 840,\r\n '3/27/20': 1036,\r\n '3/28/20': 1264,\r\n '3/29/20': 1534,\r\n '3/30/20': 1836,\r\n '3/31/20': 2337,\r\n '4/1/20': 2777,\r\n '4/2/20': 3548,\r\n '4/3/20': 4149,\r\n '4/4/20': 4731,\r\n '4/5/20': 5389,\r\n '4/6/20': 6343,\r\n '4/7/20': 7497,\r\n '4/8/20': 8672,\r\n '4/9/20': 10131,\r\n '4/10/20': 11917,\r\n '4/11/20': 13584,\r\n '4/12/20': 15770,\r\n '4/13/20': 18328,\r\n '4/14/20': 21102,\r\n '4/15/20': 24490,\r\n '4/16/20': 27938,\r\n '4/17/20': 32008,\r\n '4/18/20': 36793,\r\n '4/19/20': 42853,\r\n '4/20/20': 47121,\r\n '4/21/20': 52763,\r\n '4/22/20': 57999,\r\n '4/23/20': 62773,\r\n '4/24/20': 68622,\r\n '4/25/20': 74588,\r\n '4/26/20': 80949,\r\n '4/27/20': 87147,\r\n '4/28/20': 93558,\r\n '4/29/20': 99399,\r\n '4/30/20': 106498,\r\n '5/1/20': 114431,\r\n '5/2/20': 124054,\r\n '5/3/20': 134687,\r\n '5/4/20': 145268,\r\n '5/5/20': 155370,\r\n '5/6/20': 165929,\r\n '5/7/20': 177160,\r\n '5/8/20': 187859,\r\n '5/9/20': 198676,\r\n '5/10/20': 209688,\r\n '5/11/20': 221344,\r\n '5/12/20': 232243,\r\n '5/13/20': 242271,\r\n '5/14/20': 252245,\r\n '5/15/20': 262843,\r\n '5/16/20': 272043,\r\n '5/17/20': 281752,\r\n '5/18/20': 290678,\r\n '5/19/20': 299941,\r\n '5/20/20': 308705,\r\n '5/21/20': 317554,\r\n '5/22/20': 326448,\r\n '5/23/20': 335882,\r\n '5/24/20': 344481,\r\n '5/25/20': 353427,\r\n '5/26/20': 362342,\r\n '5/27/20': 370680,\r\n '5/28/20': 379051,\r\n '5/29/20': 387623,\r\n '5/30/20': 396575,\r\n '5/31/20': 405843\r\n }\r\n },\r\n {\r\n country: 'Spain',\r\n history: {\r\n '3/15/20': 7798,\r\n '3/16/20': 9942,\r\n '3/17/20': 11748,\r\n '3/18/20': 13910,\r\n '3/19/20': 17963,\r\n '3/20/20': 20410,\r\n '3/21/20': 25374,\r\n '3/22/20': 28768,\r\n '3/23/20': 35136,\r\n '3/24/20': 39885,\r\n '3/25/20': 49515,\r\n '3/26/20': 57786,\r\n '3/27/20': 65719,\r\n '3/28/20': 73235,\r\n '3/29/20': 80110,\r\n '3/30/20': 87956,\r\n '3/31/20': 95923,\r\n '4/1/20': 104118,\r\n '4/2/20': 112065,\r\n '4/3/20': 119199,\r\n '4/4/20': 126168,\r\n '4/5/20': 131646,\r\n '4/6/20': 136675,\r\n '4/7/20': 141942,\r\n '4/8/20': 148220,\r\n '4/9/20': 153222,\r\n '4/10/20': 158273,\r\n '4/11/20': 163027,\r\n '4/12/20': 166831,\r\n '4/13/20': 170099,\r\n '4/14/20': 172541,\r\n '4/15/20': 177644,\r\n '4/16/20': 184948,\r\n '4/17/20': 190839,\r\n '4/18/20': 191726,\r\n '4/19/20': 198674,\r\n '4/20/20': 200210,\r\n '4/21/20': 204178,\r\n '4/22/20': 208389,\r\n '4/23/20': 213024,\r\n '4/24/20': 202990,\r\n '4/25/20': 205905,\r\n '4/26/20': 207634,\r\n '4/27/20': 209465,\r\n '4/28/20': 210773,\r\n '4/29/20': 212917,\r\n '4/30/20': 213435,\r\n '5/1/20': 215216,\r\n '5/2/20': 216582,\r\n '5/3/20': 217466,\r\n '5/4/20': 218011,\r\n '5/5/20': 219329,\r\n '5/6/20': 220325,\r\n '5/7/20': 221447,\r\n '5/8/20': 222857,\r\n '5/9/20': 223578,\r\n '5/10/20': 224350,\r\n '5/11/20': 227436,\r\n '5/12/20': 228030,\r\n '5/13/20': 228691,\r\n '5/14/20': 229540,\r\n '5/15/20': 230183,\r\n '5/16/20': 230698,\r\n '5/17/20': 230698,\r\n '5/18/20': 231606,\r\n '5/19/20': 232037,\r\n '5/20/20': 232555,\r\n '5/21/20': 233037,\r\n '5/22/20': 234824,\r\n '5/23/20': 235290,\r\n '5/24/20': 235772,\r\n '5/25/20': 235400,\r\n '5/26/20': 236259,\r\n '5/27/20': 236259,\r\n '5/28/20': 237906,\r\n '5/29/20': 238564,\r\n '5/30/20': 239228,\r\n '5/31/20': 239479\r\n }\r\n },\r\n {\r\n country: 'Turkey',\r\n history: {\r\n '3/15/20': 6,\r\n '3/16/20': 18,\r\n '3/17/20': 47,\r\n '3/18/20': 98,\r\n '3/19/20': 192,\r\n '3/20/20': 359,\r\n '3/21/20': 670,\r\n '3/22/20': 1236,\r\n '3/23/20': 1529,\r\n '3/24/20': 1872,\r\n '3/25/20': 2433,\r\n '3/26/20': 3629,\r\n '3/27/20': 5698,\r\n '3/28/20': 7402,\r\n '3/29/20': 9217,\r\n '3/30/20': 10827,\r\n '3/31/20': 13531,\r\n '4/1/20': 15679,\r\n '4/2/20': 18135,\r\n '4/3/20': 20921,\r\n '4/4/20': 23934,\r\n '4/5/20': 27069,\r\n '4/6/20': 30217,\r\n '4/7/20': 34109,\r\n '4/8/20': 38226,\r\n '4/9/20': 42282,\r\n '4/10/20': 47029,\r\n '4/11/20': 52167,\r\n '4/12/20': 56956,\r\n '4/13/20': 61049,\r\n '4/14/20': 65111,\r\n '4/15/20': 69392,\r\n '4/16/20': 74193,\r\n '4/17/20': 78546,\r\n '4/18/20': 82329,\r\n '4/19/20': 86306,\r\n '4/20/20': 90980,\r\n '4/21/20': 95591,\r\n '4/22/20': 98674,\r\n '4/23/20': 101790,\r\n '4/24/20': 104912,\r\n '4/25/20': 107773,\r\n '4/26/20': 110130,\r\n '4/27/20': 112261,\r\n '4/28/20': 114653,\r\n '4/29/20': 117589,\r\n '4/30/20': 120204,\r\n '5/1/20': 122392,\r\n '5/2/20': 124375,\r\n '5/3/20': 126045,\r\n '5/4/20': 127659,\r\n '5/5/20': 129491,\r\n '5/6/20': 131744,\r\n '5/7/20': 133721,\r\n '5/8/20': 135569,\r\n '5/9/20': 137115,\r\n '5/10/20': 138657,\r\n '5/11/20': 139771,\r\n '5/12/20': 141475,\r\n '5/13/20': 143114,\r\n '5/14/20': 144749,\r\n '5/15/20': 146457,\r\n '5/16/20': 148067,\r\n '5/17/20': 149435,\r\n '5/18/20': 150593,\r\n '5/19/20': 151615,\r\n '5/20/20': 152587,\r\n '5/21/20': 153548,\r\n '5/22/20': 154500,\r\n '5/23/20': 155686,\r\n '5/24/20': 156827,\r\n '5/25/20': 157814,\r\n '5/26/20': 158762,\r\n '5/27/20': 159797,\r\n '5/28/20': 160979,\r\n '5/29/20': 162120,\r\n '5/30/20': 163103,\r\n '5/31/20': 163942,\r\n }\r\n },\r\n {\r\n country: 'Germany',\r\n history: {\r\n '3/15/20': 5795,\r\n '3/16/20': 7272,\r\n '3/17/20': 9257,\r\n '3/18/20': 12327,\r\n '3/19/20': 15320,\r\n '3/20/20': 19848,\r\n '3/21/20': 22213,\r\n '3/22/20': 24873,\r\n '3/23/20': 29056,\r\n '3/24/20': 32986,\r\n '3/25/20': 37323,\r\n '3/26/20': 43938,\r\n '3/27/20': 50871,\r\n '3/28/20': 57695,\r\n '3/29/20': 62095,\r\n '3/30/20': 66885,\r\n '3/31/20': 71808,\r\n '4/1/20': 77872,\r\n '4/2/20': 84794,\r\n '4/3/20': 91159,\r\n '4/4/20': 96092,\r\n '4/5/20': 100123,\r\n '4/6/20': 103374,\r\n '4/7/20': 107663,\r\n '4/8/20': 113296,\r\n '4/9/20': 118181,\r\n '4/10/20': 122171,\r\n '4/11/20': 124908,\r\n '4/12/20': 127854,\r\n '4/13/20': 130072,\r\n '4/14/20': 131359,\r\n '4/15/20': 134753,\r\n '4/16/20': 137698,\r\n '4/17/20': 141397,\r\n '4/18/20': 143342,\r\n '4/19/20': 145184,\r\n '4/20/20': 147065,\r\n '4/21/20': 148291,\r\n '4/22/20': 150648,\r\n '4/23/20': 153129,\r\n '4/24/20': 154999,\r\n '4/25/20': 156513,\r\n '4/26/20': 157770,\r\n '4/27/20': 158758,\r\n '4/28/20': 159912,\r\n '4/29/20': 161539,\r\n '4/30/20': 163009,\r\n '5/1/20': 164077,\r\n '5/2/20': 164967,\r\n '5/3/20': 165664,\r\n '5/4/20': 166152,\r\n '5/5/20': 167007,\r\n '5/6/20': 168162,\r\n '5/7/20': 169430,\r\n '5/8/20': 170588,\r\n '5/9/20': 171324,\r\n '5/10/20': 171879,\r\n '5/11/20': 172576,\r\n '5/12/20': 173171,\r\n '5/13/20': 174098,\r\n '5/14/20': 174478,\r\n '5/15/20': 175233,\r\n '5/16/20': 175752,\r\n '5/17/20': 176369,\r\n '5/18/20': 176551,\r\n '5/19/20': 177778,\r\n '5/20/20': 178473,\r\n '5/21/20': 179021,\r\n '5/22/20': 179710,\r\n '5/23/20': 179986,\r\n '5/24/20': 180328,\r\n '5/25/20': 180600,\r\n '5/26/20': 181200,\r\n '5/27/20': 181524,\r\n '5/28/20': 182196,\r\n '5/29/20': 182922,\r\n '5/30/20': 183189,\r\n '5/31/20': 183410,\r\n }\r\n },\r\n {\r\n country: 'Brazil',\r\n history: {\r\n '3/15/20': 162,\r\n '3/16/20': 200,\r\n '3/17/20': 321,\r\n '3/18/20': 372,\r\n '3/19/20': 621,\r\n '3/20/20': 793,\r\n '3/21/20': 1021,\r\n '3/22/20': 1546,\r\n '3/23/20': 1924,\r\n '3/24/20': 2247,\r\n '3/25/20': 2554,\r\n '3/26/20': 2985,\r\n '3/27/20': 3417,\r\n '3/28/20': 3904,\r\n '3/29/20': 4256,\r\n '3/30/20': 4579,\r\n '3/31/20': 5717,\r\n '4/1/20': 6836,\r\n '4/2/20': 8044,\r\n '4/3/20': 9056,\r\n '4/4/20': 10360,\r\n '4/5/20': 11130,\r\n '4/6/20': 12161,\r\n '4/7/20': 14034,\r\n '4/8/20': 16170,\r\n '4/9/20': 18092,\r\n '4/10/20': 19638,\r\n '4/11/20': 20727,\r\n '4/12/20': 22192,\r\n '4/13/20': 23430,\r\n '4/14/20': 25262,\r\n '4/15/20': 28320,\r\n '4/16/20': 30425,\r\n '4/17/20': 33682,\r\n '4/18/20': 36658,\r\n '4/19/20': 38654,\r\n '4/20/20': 40743,\r\n '4/21/20': 43079,\r\n '4/22/20': 45757,\r\n '4/23/20': 50036,\r\n '4/24/20': 54043,\r\n '4/25/20': 59324,\r\n '4/26/20': 63100,\r\n '4/27/20': 67446,\r\n '4/28/20': 73235,\r\n '4/29/20': 79685,\r\n '4/30/20': 87187,\r\n '5/1/20': 92202,\r\n '5/2/20': 97100,\r\n '5/3/20': 101826,\r\n '5/4/20': 108620,\r\n '5/5/20': 115455,\r\n '5/6/20': 126611,\r\n '5/7/20': 135773,\r\n '5/8/20': 146894,\r\n '5/9/20': 156061,\r\n '5/10/20': 162699,\r\n '5/11/20': 169594,\r\n '5/12/20': 178214,\r\n '5/13/20': 190137,\r\n '5/14/20': 203165,\r\n '5/15/20': 220291,\r\n '5/16/20': 233511,\r\n '5/17/20': 241080,\r\n '5/18/20': 255368,\r\n '5/19/20': 271885,\r\n '5/20/20': 291579,\r\n '5/21/20': 310087,\r\n '5/22/20': 330890,\r\n '5/23/20': 347398,\r\n '5/24/20': 363211,\r\n '5/25/20': 374898,\r\n '5/26/20': 391222,\r\n '5/27/20': 411821,\r\n '5/28/20': 438238,\r\n '5/29/20': 465166,\r\n '5/30/20': 498440,\r\n '5/31/20': 514849,\r\n }\r\n },\r\n {\r\n country: 'Italy',\r\n history: {\r\n '3/15/20': 24747,\r\n '3/16/20': 27980,\r\n '3/17/20': 31506,\r\n '3/18/20': 35713,\r\n '3/19/20': 41035,\r\n '3/20/20': 47021,\r\n '3/21/20': 53578,\r\n '3/22/20': 59138,\r\n '3/23/20': 63927,\r\n '3/24/20': 69176,\r\n '3/25/20': 74386,\r\n '3/26/20': 80589,\r\n '3/27/20': 86498,\r\n '3/28/20': 92472,\r\n '3/29/20': 97689,\r\n '3/30/20': 101739,\r\n '3/31/20': 105792,\r\n '4/1/20': 110574,\r\n '4/2/20': 115242,\r\n '4/3/20': 119827,\r\n '4/4/20': 124632,\r\n '4/5/20': 128948,\r\n '4/6/20': 132547,\r\n '4/7/20': 135586,\r\n '4/8/20': 139422,\r\n '4/9/20': 143626,\r\n '4/10/20': 147577,\r\n '4/11/20': 152271,\r\n '4/12/20': 156363,\r\n '4/13/20': 159516,\r\n '4/14/20': 162488,\r\n '4/15/20': 165155,\r\n '4/16/20': 168941,\r\n '4/17/20': 172434,\r\n '4/18/20': 175925,\r\n '4/19/20': 178972,\r\n '4/20/20': 181228,\r\n '4/21/20': 183957,\r\n '4/22/20': 187327,\r\n '4/23/20': 189973,\r\n '4/24/20': 192994,\r\n '4/25/20': 195351,\r\n '4/26/20': 197675,\r\n '4/27/20': 199414,\r\n '4/28/20': 201505,\r\n '4/29/20': 203591,\r\n '4/30/20': 205463,\r\n '5/1/20': 207428,\r\n '5/2/20': 209328,\r\n '5/3/20': 210717,\r\n '5/4/20': 211938,\r\n '5/5/20': 213013,\r\n '5/6/20': 214457,\r\n '5/7/20': 215858,\r\n '5/8/20': 217185,\r\n '5/9/20': 218268,\r\n '5/10/20': 219070,\r\n \"5/11/20\": 219814,\r\n \"5/12/20\": 221216,\r\n \"5/13/20\": 222104,\r\n \"5/14/20\": 223096,\r\n \"5/15/20\": 223885,\r\n \"5/16/20\": 224760,\r\n \"5/17/20\": 225435,\r\n \"5/18/20\": 225886,\r\n \"5/19/20\": 226699,\r\n \"5/20/20\": 227364,\r\n \"5/21/20\": 228006,\r\n \"5/22/20\": 228658,\r\n \"5/23/20\": 229327,\r\n \"5/24/20\": 229858,\r\n \"5/25/20\": 230158,\r\n \"5/26/20\": 230555,\r\n \"5/27/20\": 231139,\r\n \"5/28/20\": 231732,\r\n \"5/29/20\": 232248,\r\n \"5/30/20\": 232664,\r\n \"5/31/20\": 232997\r\n }\r\n },\r\n {\r\n country: 'India',\r\n history: {\r\n '3/15/20': 113,\r\n '3/16/20': 119,\r\n '3/17/20': 142,\r\n '3/18/20': 156,\r\n '3/19/20': 194,\r\n '3/20/20': 244,\r\n '3/21/20': 330,\r\n '3/22/20': 396,\r\n '3/23/20': 499,\r\n '3/24/20': 536,\r\n '3/25/20': 657,\r\n '3/26/20': 727,\r\n '3/27/20': 887,\r\n '3/28/20': 987,\r\n '3/29/20': 1024,\r\n '3/30/20': 1251,\r\n '3/31/20': 1397,\r\n '4/1/20': 1998,\r\n '4/2/20': 2543,\r\n '4/3/20': 2567,\r\n '4/4/20': 3082,\r\n '4/5/20': 3588,\r\n '4/6/20': 4778,\r\n '4/7/20': 5311,\r\n '4/8/20': 5916,\r\n '4/9/20': 6725,\r\n '4/10/20': 7598,\r\n '4/11/20': 8446,\r\n '4/12/20': 9205,\r\n '4/13/20': 10453,\r\n '4/14/20': 11487,\r\n '4/15/20': 12322,\r\n '4/16/20': 13430,\r\n '4/17/20': 14352,\r\n '4/18/20': 15722,\r\n '4/19/20': 17615,\r\n '4/20/20': 18539,\r\n '4/21/20': 20080,\r\n '4/22/20': 21370,\r\n '4/23/20': 23077,\r\n '4/24/20': 24530,\r\n '4/25/20': 26283,\r\n '4/26/20': 27890,\r\n '4/27/20': 29451,\r\n '4/28/20': 31324,\r\n '4/29/20': 33062,\r\n '4/30/20': 34863,\r\n '5/1/20': 37257,\r\n '5/2/20': 39699,\r\n '5/3/20': 42505,\r\n '5/4/20': 46437,\r\n '5/5/20': 49400,\r\n '5/6/20': 52987,\r\n '5/7/20': 56351,\r\n '5/8/20': 59695,\r\n '5/9/20': 62808,\r\n '5/10/20': 67161,\r\n '5/11/20': 70768,\r\n '5/12/20': 74292,\r\n '5/13/20': 78055,\r\n '5/14/20': 81997,\r\n '5/15/20': 85784,\r\n '5/16/20': 90648,\r\n '5/17/20': 95698,\r\n '5/18/20': 100328,\r\n '5/19/20': 106475,\r\n '5/20/20': 112028,\r\n '5/21/20': 118226,\r\n '5/22/20': 124794,\r\n '5/23/20': 131423,\r\n '5/24/20': 138536,\r\n '5/25/20': 144950,\r\n '5/26/20': 150793,\r\n '5/27/20': 158086,\r\n '5/28/20': 165386,\r\n '5/29/20': 173491,\r\n '5/30/20': 181827,\r\n '5/31/20': 190609,\r\n }\r\n }\r\n]","url":null,"readme":"*Also known as Bar Graph, Column Chart or Column Graph*\r\n\r\nA custom chart type (Racing Bars Chart) to visualize tracking of the Co-Vid 19 virus.\r\nTha data (country, history of cases) that is taken from API (https://coronavirus-tracker-api.herokuapp.com/confirmed) \r\nIn setInterval loop data is sorted by total COVID cases per each day and top 20 cases added to \r\nthe bars series in format `{ category: string, value: number, color: string }`. (color - random value in HEX format)\r\n\r\nThe Animator was used to animate the changing of the value and position order of each county in the list. \r\n\r\n```javascript\r\n// create chart\r\nconst newchart = barChart()\r\n\r\n\r\n// Add bars.\r\nchart.addValues([\r\n { country: 'Belgium', value: 26,666, color: '#ffffff' }\r\n])\r\n```\r\n","image":"racingBars.png"},{"id":"lcjs-example-0400-spiderStatic","title":"Spider Static","tags":["spider","radar","web","legendbox","radial"],"description":"This example shows the basic use of Spider Chart. Also known as Radar Chart, Web Chart, Polar Chart, Star Series.","src":"/*\r\n * LightningChartJS example that showcases a simple SpiderChart.\r\n */\r\n// Import LightningChartJS\r\nconst lcjs = require('@arction/lcjs')\r\n\r\n// Extract required parts from LightningChartJS.\r\nconst {\r\n lightningChart,\r\n LegendBoxBuilders,\r\n ColorPalettes,\r\n SolidFill,\r\n emptyLine,\r\n UIOrigins,\r\n Themes\r\n} = lcjs\r\n\r\n// Create spider chart and Three series.\r\nconst chart = lightningChart().Spider({\r\n // theme: Themes.dark \r\n})\r\n .setTitle('Company branch efficiency')\r\n .setAxisInterval(100)\r\n .setScaleLabelStrategy(undefined)\r\n .setPadding({ top: 100 })\r\n\r\nconst series = [\r\n chart.addSeries()\r\n .setName('Sydney'),\r\n chart.addSeries()\r\n .setName('Kuopio'),\r\n chart.addSeries()\r\n .setName('New York')\r\n]\r\nconst palette = ColorPalettes.fullSpectrum(series.length)\r\nseries.forEach((value, i) => {\r\n const color = palette(i)\r\n const solid = new SolidFill({ color })\r\n const opaque = solid.setA(140)\r\n value\r\n .setStrokeStyle(emptyLine)\r\n .setPointFillStyle(solid)\r\n .setPointSize(10)\r\n .setFillStyle(opaque)\r\n .setResultTableFormatter((builder, series, value, axis) =>\r\n builder.addRow(`${series.getName()} ${axis}`)\r\n )\r\n})\r\n\r\n// Add constant points to series.\r\nconst categories = ['Pre-planning', 'Customer contacts', 'Meetings', 'Development time', 'Releases',]\r\n//This is for Sydney Series.\r\nseries[0].addPoints(\r\n { axis: categories[0], value: 6 },\r\n { axis: categories[1], value: 22 },\r\n { axis: categories[2], value: 61 },\r\n { axis: categories[3], value: 76 },\r\n { axis: categories[4], value: 100 },\r\n)\r\n//This is for Kuopio Series.\r\nseries[1].addPoints(\r\n { axis: categories[0], value: 44 },\r\n { axis: categories[1], value: 8 },\r\n { axis: categories[2], value: 97 },\r\n { axis: categories[3], value: 68 },\r\n { axis: categories[4], value: 69 },\r\n)\r\n//This is for New York Series.\r\nseries[2].addPoints(\r\n { axis: categories[0], value: 94 },\r\n { axis: categories[1], value: 63 },\r\n { axis: categories[2], value: 4 },\r\n { axis: categories[3], value: 67 },\r\n { axis: categories[4], value: 71 },\r\n)\r\n\r\n// Create LegendBox as part of SpiderChart.\r\nconst legend = chart.addLegendBox(LegendBoxBuilders.HorizontalLegendBox)\r\n .setPosition({ x: 0, y: 0 })\r\n .setOrigin(UIOrigins.LeftBottom)\r\n .setMargin({ top: 5, right: 5, bottom: 5, left: 5 })\r\n// Add SpiderChart to LegendBox\r\nlegend.add(chart)\r\n\r\n// Enable AutoCursor auto-fill.\r\nchart.setAutoCursor(cursor => (cursor)\r\n .setResultTableAutoTextStyle(true)\r\n)\r\n","url":null,"readme":"*Also known as Radar Chart, Web Chart, Polar Chart, Star Series*\r\n\r\nThis example shows the creation and API of Spider Chart, which is generally used to compare multivariate quantitative data set. Each quantitative variable is represented on a categorical axis starting from the same center point.\r\n\r\nTypical usage of the Radar (Spider) chart is to compare various products over a range of characteristics.\r\n\r\nSpider Charts are created in a very straight-forward manner:\r\n\r\n```javascript\r\n// Add a Spider Chart.\r\nconst spiderChart = Spider()\r\n```\r\n\r\nSpider Series provides an ability to specify styles for both markers and lines individually.\r\n\r\n```javascript\r\nconst spiderSeries = spiderChart.addSeries(PointShape.Circle)\r\n .setName('Positive feedback distribution')\r\n .setFillStyle(fillStyle)\r\n .setPointFillStyle(pointFillStyle)\r\n // etc ...\r\n```\r\n\r\nActual data is added with the format: `{ axis: string, value: number }`, where 'axis' refers to the name of a category.\r\n\r\n```javascript\r\nspiderSeries.addPoints(\r\n // Any number of { axis, value } pairs can be passed.\r\n { axis: 'Team spirit', value: 55 },\r\n { axis: 'Premises', value: 27 },\r\n { axis: 'Salary', value: 25 }\r\n)\r\n```\r\n\r\nAdding points with unique tags will automatically create new categorical axes for the Spider Chart in the order of adding (the first axis will always point directly up and following ones will traverse clock-wise). Adding more points to the same category tag in one series will override any previous values.\r\n","image":"spiderStatic.png"},{"id":"lcjs-example-0401-spiderAnimated","title":"Radar Animated","tags":["spider","radar","web","radial"],"description":"This example shows creation of a Radar Chart with animated transitions by using a suitably styled SpiderChart.","src":"/*\r\n * LightningChartJS example that showcases a Spider (Radar) Chart with animated changing of values.\r\n */\r\n// Import LightningChartJS\r\nconst lcjs = require('@arction/lcjs')\r\n\r\n// Extract required parts from LightningChartJS.\r\nconst {\r\n lightningChart,\r\n SpiderWebMode,\r\n Themes\r\n} = lcjs\r\n\r\n// Create a circular spider chart and add a series to it.\r\nconst chart = lightningChart().Spider({\r\n // theme: Themes.dark \r\n})\r\n .setTitle('Animated Radar Chart')\r\n .setAxisInterval(100)\r\n // Configure spider to be circular (like a traditional Radar Chart).\r\n .setWebMode(SpiderWebMode.Circle)\r\nconst series = chart.addSeries()\r\n\r\n// Set initial series values, creating axes.\r\nconst categories = ['Category A', 'Category B', 'Category C', 'Category D', 'Category E']\r\nseries.addPoints(\r\n { axis: categories[0], value: 100 },\r\n { axis: categories[1], value: 100 },\r\n { axis: categories[2], value: 100 },\r\n { axis: categories[3], value: 100 },\r\n { axis: categories[4], value: 100 }\r\n)\r\n\r\n// Setup randomization of series values at regular intervals.\r\nconst randomizePoints = () => {\r\n for (const category of categories) {\r\n const value = Math.random() * 100\r\n series.addPoints({ axis: category, value })\r\n }\r\n}\r\n// Randomize points every other second (2000 ms).\r\nsetInterval(randomizePoints, 2000)\r\n","url":null,"readme":"This example shows creation of a Radar Chart with animated transitions by using a suitably styled SpiderChart.\r\n\r\nSpiderCharts can be styled to look like traditional Radar Charts by usage of SpiderWebModes - more specifically, SpiderWebMode.Circle.\r\n\r\n```javascript\r\n// Set web-mode of SpiderChart, affecting the shape of its background, webs and nibs.\r\nspiderChart.setWebMode(SpiderWebMode.Circle)\r\n```\r\n\r\nTransitions can be set at regular intervals using setInterval like so:\r\n\r\n```javascript\r\nsetInterval(() => {\r\n // This code will be called approximately every 100 milliseconds.\r\n}, 100)\r\n```\r\n","image":"spiderAnimated.png"},{"id":"lcjs-example-0440-solidGaugeChart","title":"Solid Gauge","tags":["gauge","legendbox","radial"],"description":"This example shows solid gauge chart.","src":"/*\r\n * LightningChartJS example that showcases creation and styling of radial-gauge.\r\n */\r\n// Import LightningChartJS\r\nconst lcjs = require('@arction/lcjs')\r\n\r\n// Extract required parts from LightningChartJS.\r\nconst {\r\n lightningChart,\r\n GaugeChartTypes,\r\n SolidLine,\r\n SolidFill,\r\n ColorRGBA,\r\n UIOrigins,\r\n Themes\r\n} = lcjs\r\n\r\n// Initialize gauge\r\nconst gauge = lightningChart().Gauge({\r\n // theme: Themes.dark \r\n type: GaugeChartTypes.Solid\r\n})\r\n .setTitle('Annual sales goal')\r\n .setThickness(80)\r\n .setDataLabelFormatter(new Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD' }))\r\n .setGaugeStrokeStyle(new SolidLine().setFillStyle(new SolidFill()).setThickness(1))\r\n .setAngleInterval(225, -45)\r\n\r\n// Create slice\r\nconst slice = gauge\r\n .getDefaultSlice()\r\n .setInterval(0, 400000)\r\n .setValue(329000)\r\n .setFillStyle(new SolidFill({ color: ColorRGBA(12, 213, 87) }))\r\n .setName('2019 sales')\r\n\r\n// Add LegendBox and define the position in the chart\r\nconst legend = gauge.addLegendBox()\r\n .setPosition({ x: 0, y: 0 })\r\n .setOrigin(UIOrigins.LeftBottom)\r\n .setMargin({ top: 5, right: 5, bottom: 5, left: 5 })\r\n\r\n// Add gaugeChart to LegendBox\r\nlegend.add(gauge)\r\n","url":null,"readme":"This example shows solid gauge chart.\r\n\r\nThe chart can be created with a simple line of code.\r\n\r\n```javascript\r\n// Create a new Gauge chart.\r\nconst gauge = lightningChart().Gauge({ type: GaugeChartTypes.Solid })\r\n```\r\n\r\nAfter creating the Gauge Chart the value for it can be set simply.\r\n\r\n```javascript\r\ngauge\r\n // Get default slice, this is the only slice there is and\r\n // it should be manipulated to set wanted value to the Gauge Chart.\r\n .getDefaultSlice()\r\n // Set start and end values.\r\n .setInterval(0, 400000)\r\n // Set the displayed value.\r\n .setValue(329000)\r\n```\r\n","image":"solidGauge.png"},{"id":"lcjs-example-0450-pieChart","title":"Pie Chart","tags":["pie","radial","legendbox"],"description":"Pie Chart (or a Circular Chart) is a chart used to show statistical graphic.","src":"/*\r\n * LightningChartJS example that shows the creation of a Pie Chart.\r\n */\r\n// Import LightningChartJS\r\nconst lcjs = require('@arction/lcjs')\r\n\r\n// Extract required parts from LightningChartJS.\r\nconst {\r\n lightningChart,\r\n PieChartTypes,\r\n LegendBoxBuilders,\r\n SliceLabelFormatters,\r\n SolidFillPalette,\r\n ColorPalettes,\r\n SolidFill,\r\n SolidLine,\r\n ColorRGBA,\r\n Themes\r\n} = lcjs\r\n\r\nconst pieType = window.innerWidth > 599 ? PieChartTypes.LabelsOnSides : PieChartTypes.LabelsInsideSlices\r\n\r\nconst pie = lightningChart().Pie({\r\n // theme: Themes.dark \r\n type: pieType\r\n})\r\n .setTitle('Project Time Division')\r\n .setAnimationsEnabled(true)\r\n .setMultipleSliceExplosion(true)\r\n\r\n// ----- User defined data -----\r\nconst data = [\r\n {\r\n name: 'Planning',\r\n value: 40\r\n },\r\n {\r\n name: 'Development',\r\n value: 120\r\n },\r\n {\r\n name: 'Testing',\r\n value: 60\r\n },\r\n {\r\n name: 'Review',\r\n value: 24\r\n },\r\n {\r\n name: 'Bug Fixing',\r\n value: 90\r\n }\r\n]\r\n\r\n// ----- Create Slices -----\r\nconst slices = data.map((item) => pie.addSlice(item.name, item.value))\r\n\r\n// Specify function which generates text for Slice Labels(LabelFormatter).\r\n\r\npie.setLabelFormatter(SliceLabelFormatters.NamePlusRelativeValue)\r\n\r\n\r\n// ----- Add LegendBox -----\r\npie.addLegendBox(LegendBoxBuilders.VerticalLegendBox)\r\n .setPosition({ x: 0, y: 0 })\r\n .setOrigin({ x: -1, y: -1 })\r\n .setMargin({ bottom: 5, left: 5 })\r\n .add(pie)\r\n\r\n// ----- Create custom Palette for Pie (defines color of Slice filling) ----\r\nconst palette = SolidFillPalette(ColorPalettes.sector(180, 320, 0.7, 0.7), 5)\r\n\r\n// --------- Create line around slices -----\r\nconst customStrokeStyle = new SolidLine({ fillStyle: new SolidFill({ color: ColorRGBA(160, 160, 160) }), thickness: 2 })\r\n\r\npie.setSliceFillStyle(palette)\r\n .setSliceStrokeStyle(customStrokeStyle)\r\n","url":null,"readme":"Pie Chart (or a Circular Chart) is a chart used to show statistical graphic. The Pie Chart is divided into slices, with each slice illustrating a numerical portion of the whole Pie. Each slice's size (usually depicted in the central angle and area of the slice) is proportional to its quantity.\r\n\r\nThe chart can be created with a simple line of code.\r\n\r\n```javascript\r\n// Create a new Pie Chart.\r\nconst chart = lightningChart().Pie()\r\n```\r\n\r\nThe Pie Chart has two types for displaying the labels for each slice; The slices can be placed either on top of each slice by using the LabelsInsideSlices type, or they can be placed on both sides of the Chart by using LabelsOnSides type. The type must be given to the Chart as a parameter when creating it.\r\nBy default, the LabelsOnSides type is used.\r\n\r\n```javascript\r\n// Create a new Pie Chart and pass the type to use when placing labels.\r\nconst chart = lightningChart().Pie( { type: PieChartTypes.LabelsOnSides } )\r\n```\r\n\r\nAfter creating the Pie Chart, we can populate it by adding slices to it.\r\nThe slice should always get a name and value in a single object.\r\n\r\n```javascript\r\n// Add a slice to populate the Pie.\r\nchart.addSlice( { name: 'Planning', value: 100 } )\r\n```\r\n\r\nEach slice can be 'exploded' by clicking on them, and 'imploded' by clicking on a exploded slice.\r\nExploding slices can be set to only one at a time, or allowing all slices to be exploded at the same time.\r\n\r\n```javascript\r\n// Allow multiple slices to be in exploded state at the same time.\r\nchart.setMultipleSliceExplosion( true )\r\n```\r\n\r\nThe labels for all slices can be formatted in different ways.\r\n\r\n```javascript\r\n// Set the label formatting to show the slice's name and the relative value\r\n// (size of the slice as percentage).\r\npie.setLabelFormatter( SliceLabelFormatters.NamePlusRelativeValue )\r\n```\r\n\r\nThe lines connecting each slice to its label can be modified.\r\n","image":"pieChart.png"},{"id":"lcjs-example-0451-donutChart","title":"Donut Chart","tags":["donut","radial","legendbox"],"description":"Donut Chart is a variation of Pie chart - functionally it's the same, visually it's only missing the center.","src":"/*\r\n * LightningChartJS example that shows the creation and styling of a donut chart.\r\n */\r\n// Import LightningChartJS\r\nconst lcjs = require('@arction/lcjs')\r\n\r\n// Extract required parts from LightningChartJS.\r\nconst {\r\n lightningChart,\r\n PieChartTypes,\r\n SolidLine,\r\n UIElementBuilders,\r\n LegendBoxBuilders,\r\n SolidFill,\r\n ColorRGBA,\r\n UIDraggingModes,\r\n SolidFillPalette,\r\n SliceLabelFormatters,\r\n UIOrigins,\r\n Themes\r\n} = lcjs\r\n\r\nconst donut = lightningChart().Pie({\r\n // theme: Themes.dark \r\n type: PieChartTypes.LabelsInsideSlices\r\n})\r\n .setTitle('Inter Hotels - hotel visitors in June 2016')\r\n .setPadding({ top: 40 })\r\n .setAnimationsEnabled(true)\r\n .setMultipleSliceExplosion(false)\r\n // Style as \"Donut Chart\"\r\n .setInnerRadius(60)\r\n\r\n// ----- Cache stroke style used for Slice borders. -----\r\nconst customStrokeStyle = new SolidLine({ fillStyle: new SolidFill({ color: ColorRGBA(50, 70, 80) }), thickness: 5 })\r\n\r\n// ----- Static data -----\r\nconst data = {\r\n country: ['US', 'Canada', 'Greece', 'UK', 'Finland', 'Denmark'],\r\n values: [15000, 20030, 8237, 16790, 9842, 4300]\r\n}\r\n// Preparing data for each Slice\r\nconst processedData = []\r\nlet totalVisitor = 0\r\nfor (let i = 0; i < data.values.length; i++) {\r\n totalVisitor += data.values[i]\r\n processedData.push({ name: `${data.country[i]}`, value: data.values[i] })\r\n}\r\n\r\n// ----- Create custom Palette for Donut (defines color of Slice filling) ----\r\nconst colorArray = [\r\n ColorRGBA(219, 155, 36, 255),\r\n ColorRGBA(219, 102, 36, 255),\r\n ColorRGBA(173, 21, 74, 255),\r\n ColorRGBA(173, 168, 21, 255),\r\n ColorRGBA(223, 64, 64, 255),\r\n ColorRGBA(173, 100, 21, 255)\r\n]\r\n\r\n// The color palette should be a function that returns a specific color - in this case, just return a color from a specific index in the array\r\nconst colorPalette = (length) => (index) => {\r\n return colorArray[index]\r\n}\r\n\r\n// Use the SolidFillPalette to create a fillStyle palette which the chart can use to easily assign fillStyles using colors from the given color palette\r\nconst fillStylePalette = SolidFillPalette(colorPalette, data.values.length)\r\n// Set the custom fillStyle for the Donut Chart\r\ndonut.setSliceFillStyle(fillStylePalette)\r\n\r\n// ----- Create Slices -----\r\nprocessedData.map((item) => donut.addSlice(item.name, item.value))\r\ndonut.setLabelFormatter(SliceLabelFormatters.NamePlusValue).setSliceStrokeStyle(customStrokeStyle)\r\n// ----- Add LegendBox -----\r\ndonut.addLegendBox(LegendBoxBuilders.HorizontalLegendBox)\r\n .setPosition({ x: 1, y: 99 })\r\n .setOrigin(UIOrigins.LeftTop)\r\n .setMargin(5)\r\n .add(donut)\r\n\r\n// ----- Add TextBox -----\r\ndonut.addUIElement(UIElementBuilders.TextBox.addStyler(\r\n textBox =>\r\n textBox.setFont(fontSettings => fontSettings.setSize(25)).setText(`Total: ${totalVisitor} visitors`)\r\n))\r\n .setPosition({ x: 50, y: 50 })\r\n .setOrigin(UIOrigins.CenterTop)\r\n .setDraggingMode(UIDraggingModes.notDraggable)\r\n .setMargin(5)\r\n","url":null,"readme":"Donut Chart is a variation of Pie chart - functionally it's the same, visually it's only missing the center.\r\n\r\nThe chart can be created with a few simple lines of code.\r\n\r\nThe inner radius is used to set how far inwards from the outer edge of the circle we should cut the circle from, essentially creating a ring.\r\nFor example, setting the inner radius as 0.50 will draw a ring, where the circle's inner radius is at 50% distance from the circle's full radius.\r\n\r\n```javascript\r\n// Create a new Pie Chart.\r\nconst chart = lightningChart().Pie()\r\nchart.setInnerRadius(50)\r\n```\r\n\r\nIt is possible to disable the animations for the Pie / Donut chart: value changes, disabling / enabling slices and the explosion / implosion of a slice.\r\nAnimations are enabled by default.\r\n\r\n```javascript\r\n// Disable all animations for the chart.\r\nchart.setAnimationsEnabled( false )\r\n```\r\n\r\nThe slice fill styles can be styled by using a palette. A palette is a collection of fill styles which can be called by index.\r\n\r\n```javascript\r\n// Use a palette of colors to create the Fill Styles. You can also create your own \r\n// - check the ColorPalettes documentation for more info.\r\nconst colorPalette = ColorPalettes.fullSpectrum\r\n// Create a palette of Fill Styles to use with the Pie Chart's Slices.\r\nconst fillStylePalette = SolidFillPalette( colorPalette, 10 )\r\npie.setSliceFillStyle( fillStylePalette )\r\n```\r\n\r\nYou can also create a custom color palette and use it with the Chart.\r\nEasiest way to add a custom color palette is to create an array of colors and creating a function that returns colors from the array based on index.\r\n\r\n```javascript\r\n// ----- Create custom Palette for Donut (defines color of Slice filling) ----\r\nconst colorArray = [\r\n ColorRGBA( 97, 33, 15, 255 ),\r\n ColorRGBA( 255, 140, 66, 255 ),\r\n ColorRGBA( 225, 86, 52, 255 ),\r\n ColorRGBA( 234, 43, 31, 255 ),\r\n ColorRGBA( 249, 223, 116, 255 ),\r\n ColorRGBA( 245, 224, 183, 255 )\r\n]\r\n// Create a simple function which returns a color based on index. \r\n// Both parameters (length and index) can be used to create more complex functions -\r\n// length should be the length of the color array.\r\nconst colorPalette = ( length ) => ( index ) => {\r\n return colorArray[index]\r\n}\r\n// Pass the color palette to the SolidFillPalette method,\r\n// which returns a fillStyle palette that can be used with the Donut Chart\r\nconst fillStylePalette = SolidFillPalette( colorPalette, data.values.length)\r\n// Set the custom fillStyle for the Donut Chart\r\ndonut.setSliceFillStyle( fillStylePalette )\r\n```\r\n\r\nAll slices in the chart can have a border surrounding them, which can be styled for the entire chart.\r\n\r\n```javascript\r\n// Create a StrokeStyle to use with the chart.\r\nconst customStrokeStyle = new SolidLine(\r\n {\r\n fillStyle: new SolidFill(\r\n { color: ColorRGBA(30,144,255) }\r\n ),\r\n thickness: 5\r\n }\r\n)\r\n// Set the StrokeStyle to use with all slices in the chart.\r\nchart.setSliceStrokeStyle( customStrokeStyle )\r\n```\r\n","image":"donutChart.png"},{"id":"lcjs-example-0452-pieLUT","title":"Pie Chart with Lookup table","tags":["donut","radial","legendbox"],"description":"Example showcasing the use of Lookup Table with a Pie Chart.","src":"/*\r\n * LightningChartJS example that showcases usage of color lookup table on Pie.\r\n */\r\n// Import LightningChartJS\r\nconst lcjs = require('@arction/lcjs')\r\n\r\n// Extract required parts from LightningChartJS.\r\nconst {\r\n PieChartTypes,\r\n lightningChart,\r\n LegendBoxBuilders,\r\n SliceLabelFormatters,\r\n SliceSorters,\r\n LUT,\r\n ColorRGBA,\r\n Themes\r\n} = lcjs\r\n\r\n// Create a new color-value lookup table\r\nconst lut = new LUT({\r\n steps: [\r\n { value: 20, color: ColorRGBA(255, 0, 24) },\r\n { value: 40, color: ColorRGBA(255, 165, 44) },\r\n { value: 60, color: ColorRGBA(255, 255, 65) },\r\n { value: 80, color: ColorRGBA(0, 128, 24) },\r\n { value: 100, color: ColorRGBA(0, 0, 249) },\r\n { value: 120, color: ColorRGBA(134, 0, 125) }\r\n ],\r\n interpolate: true\r\n})\r\n\r\n// Create a Pie Chart\r\nconst pie = lightningChart()\r\n .Pie({\r\n // theme: Themes.dark \r\n type: PieChartTypes.LabelsOnSides\r\n })\r\n .setTitle('Pie Chart')\r\n .setAnimationsEnabled(true)\r\n .setMultipleSliceExplosion(true)\r\n .setLabelFormatter(SliceLabelFormatters.NamePlusValue)\r\n .setSliceSorter(SliceSorters.None)\r\n // Attach lookup table\r\n .setLUT(lut)\r\n .setLabelConnectorGap(10)\r\n\r\nconst data = []\r\n\r\nfor (let i = 1; i <= 10; i++)\r\n data.push({ name: `Slice #${i}`, value: 1 + Math.random() * 120 })\r\n\r\n// Create Slices\r\nconst slices = data.map((item) => pie.addSlice(item.name, item.value))\r\n\r\n// Add LegendBox\r\npie\r\n .addLegendBox(LegendBoxBuilders.VerticalLegendBox)\r\n .setPosition({ x: 0, y: 0 })\r\n .setOrigin({ x: -1, y: -1 })\r\n .setMargin({ bottom: 5, left: 5 })\r\n .add(pie)\r\n\r\n// 2 seconds after the example has loaded, change the values of each slice.\r\nsetTimeout(() => {\r\n slices.forEach((slice) => slice.setValue(1 + Math.random() * 120))\r\n}, 2000)\r\n\r\n// Change value of every slice regularly\r\nsetInterval(() => {\r\n slices.forEach((slice) => slice.setValue(1 + Math.random() * 120))\r\n}, 5000)\r\n","url":null,"readme":"Lookup table stores information about values and its associated colors. It provides efficient lookup of the color based on provided value as well as linear and step interpolation between colors.\r\n\r\nThe current example shows usage of lookup table with a Pie Chart.\r\n\r\n```javascript\r\n// create LUT from 0..120 with gradient steps.\r\nconst lut = new LUT( {\r\n steps: [\r\n { value: 20, color: ColorRGBA( 255, 0, 24 ) },\r\n { value: 40, color: ColorRGBA( 255, 165, 44 ) },\r\n { value: 60, color: ColorRGBA( 255, 255, 65 ) },\r\n { value: 80, color: ColorRGBA( 0, 128, 24 ) },\r\n { value: 100, color: ColorRGBA( 0, 0, 249 ) },\r\n { value: 120, color: ColorRGBA( 134, 0, 125 ) }\r\n ],\r\n interpolate: true\r\n} \r\n```\r\n\r\nCreate a Pie Chart and attach lookup table to fill the slices with colors based on value.\r\n\r\n```javascript\r\n// Create a new Pie Chart\r\nconst chart = lightningChart()\r\n .Pie({ type: PieChartTypes.LabelsOnSides })\r\n .setAnimationsEnabled( true )\r\n .setMultipleSliceExplosion( true )\r\n .setLabelFormatter( SliceLabelFormatters.NamePlusValue )\r\n .setSliceSorter( SliceSorters.None )\r\n // Attach lookup table.\r\n .setLUT( lut )\r\n .setLabelConnectorGap( 10 )\r\n\r\n```\r\n","image":"pieLUT.png"},{"id":"lcjs-example-0460-simpleFunnelChart","title":"Simple Funnel Chart","tags":["funnel","pyramid","sliced","legendbox"],"description":"Funnel Chart is a chart used to show statistical graphic. Funnel Chart is divided into slices, with each slice illustrating the numerical portion of the Funnel. ","src":"/*\r\n * LightningChartJS example that shows the creation and styling of a Funnel chart.\r\n */\r\n// Import LightningChartJS\r\nconst lcjs = require('@arction/lcjs')\r\n\r\n// Extract required parts from LightningChartJS.\r\nconst {\r\n FunnelChartTypes,\r\n FunnelLabelSide,\r\n SliceLabelFormatters,\r\n lightningChart,\r\n SolidFillPalette,\r\n FunnelSliceModes,\r\n ColorPalettes,\r\n LegendBoxBuilders,\r\n UIOrigins,\r\n Themes\r\n} = lcjs\r\n\r\n// Create a Funnel chart\r\nconst funnel = lightningChart().Funnel({\r\n // theme: Themes.dark \r\n type: FunnelChartTypes.LabelsOnSides\r\n})\r\n .setTitle('Customer contacts progression')\r\n .setSliceMode(FunnelSliceModes.VariableHeight)\r\n .setSliceGap(0)\r\n .setHeadWidth(95)\r\n .setNeckWidth(40)\r\n .setLabelSide(FunnelLabelSide.Right)\r\n .setPadding({ bottom: 45 })\r\n\r\n// Data for slices\r\nconst data = [\r\n {\r\n name: 'Prospects',\r\n value: 2000\r\n },\r\n {\r\n name: 'Contacts',\r\n value: 1540\r\n },\r\n {\r\n name: 'Leads',\r\n value: 1095\r\n },\r\n {\r\n name: 'Customers',\r\n value: 549\r\n }\r\n]\r\n// Add data to the slices\r\nfunnel.addSlices(data)\r\n\r\n// Set formatter of Slice Labels\r\nfunnel.setLabelFormatter(SliceLabelFormatters.NamePlusValue)\r\n\r\n// Create warm Palette for Funnel (defines color of Slice filling)\r\nconst palette = SolidFillPalette(ColorPalettes.warm, data.length)\r\nfunnel.setSliceFillStyle(palette)\r\n\r\n// Add LegendBox and define the position in the chart\r\nconst lb = funnel\r\n .addLegendBox(LegendBoxBuilders.VerticalLegendBox)\r\n .setPosition({ x: 0, y: 0 })\r\n .setOrigin(UIOrigins.LeftBottom)\r\n .setMargin(5)\r\nlb.add(funnel, false)\r\n","url":null,"readme":"Funnel Chart is a chart used to show statistical graphic. Funnel Chart is divided into slices, with each slice illustrating the numerical portion of the Funnel. Each slice's size is proportional to its quantity.\r\n\r\nThe chart can be created with a simple line of code.\r\n\r\n```javascript\r\n// Create a new Funnel Chart.\r\nconst funnel = lightningChart().Funnel()\r\n\r\n```\r\n\r\nThe Funnel has two types for displaying the labels for each slice; The slices can be placed either on top of each slice or the labels can be placed to the side of the Funnel, drawn with a connector line between the slice and its label.\r\n\r\nIf no type is given, the Funnel defaults to showing labels on side of Funnel.\r\n\r\n```javascript\r\n// Create a Funnel Chart with labels on the side.\r\nconst funnel = lightningChart().Funnel({ type: FunnelChartTypes.LabelsOnSide })\r\n\r\n// Create a Funnel Chart with labels inside of slices.\r\nconst funnel = lightningChart().Funnel({ type: FunnelChartTypes.LabelsInsideSlices })\r\n\r\n```\r\n\r\nAfter creating the Funnel Chart, we can populate it by adding slices to it.\r\nThe slice should always get a name and value as parameters.\r\n\r\nYou can alternatively add multiple slices as an array of objects containing a name and a value for each slice.\r\n\r\n```javascript\r\n// Add a single slice to the Funnel.\r\nfunnel.addSlice( 'Slice', 50 )\r\n\r\n// Add multiple slices to populate the Funnel.\r\nconst data = [\r\n {\r\n name: 'Prospects',\r\n value: 2000\r\n },\r\n {\r\n name: 'Contacts',\r\n value: 1540\r\n },\r\n {\r\n name: 'Leads',\r\n value: 1095\r\n },\r\n {\r\n name: 'Customers',\r\n value: 549\r\n }\r\n]\r\n// Add data to the slices\r\nfunnel.addSlices( data )\r\n\r\n```\r\n\r\nModifying how the Funnel and its slices are drawn can be done through the Funnel Chart's API.\r\n\r\n```javascript\r\n// Set the gap between each of the slices. This value can be between 0 to 20 pixels.\r\nfunnel.setSliceGap( 5 )\r\n\r\n// Set the width of the Funnel's top edge. This value can be from 0 to 100 (in percents).\r\nfunnel.setHeadWidth( 95 )\r\n\r\n// Set the width of the Funnel's bottom edge. This value can be from 0 to 100 (in percents).\r\nfunnel.setNeckWidth( 40 )\r\n\r\n// If the labels are set to be placed on the side of the Funnel,\r\n// we can determine the side they will be placed.\r\nfunnel.setLabelSide( FunnelLabelSide.Right )\r\n```\r\n\r\nThe slices can be styled using the Funnel Chart's API.\r\n\r\n```javascript\r\n// Create a palette of Fill Styles to use with the Funnel's Slices.\r\nconst palette = SolidFillPalette( ColorPalettes.warm, data.length )\r\n// Set the palette used for coloring each of the slices.\r\nfunnel.setSliceFillStyle( palette )\r\n```\r\n\r\nThe Funnel Chart has different ways to draw the slices depending on their value.\r\n\r\nPerhaps the most common way is to show the value as the height of the slice in relation to the combined value of all slices.\r\nThis can be achieved by setting the Funnel's Slice Mode to Variable Height.\r\n\r\n```javascript\r\n// Set Funnel chart slice mode to Variable Height.\r\nfunnel.setSliceMode( FunnelSliceModes.VariableHeight )\r\n```\r\n\r\nAnother common way is to show all the slices with equal height, but to have their width change depending on their value relative to the combined total value.\r\n\r\n```javascript\r\n// Set Funnel Chart slice mode to Variable Width.\r\nfunnel.setSliceMode( FunnelSliceModes.VariableWidth )\r\n```\r\n\r\nThe labels for all slices can be formatted in different ways.\r\n\r\n```javascript\r\n// Set the label formatting to show the slice's name and value.\r\nfunnel.setLabelFormatter( SliceLabelFormatters.NamePlusValue )\r\n```\r\n\r\nThe lines connecting each slice to its label can be modified.\r\n\r\n```javascript\r\n// Set the style that will be used with each connector line.\r\nfunnel.setLabelConnectorStyle(\r\n new SolidLine(\r\n {\r\n thickness: 2,\r\n fillStyle: new SolidFill(\r\n { color: ColorRGBA(125, 95, 220) }\r\n )\r\n }\r\n )\r\n)\r\n```\r\n","image":"simpleFunnel.png"},{"id":"lcjs-example-0465-simplePyramidChart","title":"Simple Pyramid Chart","tags":["pyramid","funnel","sliced","legendbox"],"description":"Pyramid Chart is a chart used to show statistical graphic. The Pyramid chart is divided into slices, with each slice illustrating the numerical portion of the whole Pyramid.","src":"/*\r\n * LightningChartJS example that shows the creation and styling of a Pyramid chart.\r\n */\r\n// Import LightningChartJS\r\nconst lcjs = require('@arction/lcjs')\r\n\r\n// Extract required parts from LightningChartJS.\r\nconst {\r\n PyramidChartTypes,\r\n PyramidLabelSide,\r\n SliceLabelFormatters,\r\n lightningChart,\r\n LegendBoxBuilders,\r\n SolidFillPalette,\r\n ColorPalettes,\r\n UIOrigins,\r\n Themes\r\n} = lcjs\r\n\r\n// Create a Pyramid chart\r\nconst pyramid = lightningChart()\r\n .Pyramid({\r\n // theme: Themes.dark \r\n type: PyramidChartTypes.LabelsOnSides\r\n })\r\n .setTitle('Company staff growth')\r\n .setAnimationsEnabled(true)\r\n .setNeckWidth(80)\r\n .setSliceGap(5)\r\n .setPadding({ bottom: 45 })\r\n .setLabelSide(PyramidLabelSide.Right)\r\n\r\n// Data for slices\r\nconst data = [\r\n {\r\n name: '2015 - 2016',\r\n value: 3\r\n },\r\n {\r\n name: '2016 - 2017',\r\n value: 5\r\n },\r\n {\r\n name: '2017 - 2018',\r\n value: 10\r\n },\r\n {\r\n name: '2018 - 2019',\r\n value: 17\r\n }\r\n]\r\n// Add data to the slices\r\npyramid.addSlices(data)\r\n\r\n\r\n// Create warm Palette for Pyramid (defines color of Slice filling)\r\nconst palette = SolidFillPalette(ColorPalettes.warm, data.length)\r\npyramid.setSliceFillStyle(palette)\r\n\r\n// Set formatter of Slice Labels\r\npyramid.setLabelFormatter(SliceLabelFormatters.NamePlusValue)\r\n\r\n// Add LegendBox and define the position in the chart\r\nconst lb = pyramid\r\n .addLegendBox(LegendBoxBuilders.VerticalLegendBox)\r\n .setPosition({ x: 0, y: 0 })\r\n .setOrigin(UIOrigins.LeftBottom)\r\n .setMargin(5)\r\n\r\n// Add the Pyramid to the LegendBox and disable the button click functionality.\r\nlb.add(pyramid, false)\r\n","url":null,"readme":"Pyramid Chart is a chart used to show statistical graphic. The Pyramid chart is divided into slices, with each slice illustrating the numerical portion of the whole Pyramid. Each slice's size (usually depicted as the slice's relative height from the Pyramid) is proportional to its quantity.\r\n\r\nThe chart can be created with a simple line of code.\r\n\r\n```javascript\r\n// Create a new Pyramid Chart.\r\nconst pyramid = lightningChart().Pyramid()\r\n```\r\n\r\nThe Pyramid Chart has two types for displaying the labels for each slice; The slices can be placed either on top of each slice by using the LabelsInsideSlices type, or they can be placed on both sides of the Chart by using LabelsOnSides type. The type must be given to the Chart as a parameter when creating it.\r\nBy default, the LabelsOnSides type is used.\r\n\r\n```javascript\r\n// Create a new Pyramid Chart and pass the type to use when placing labels.\r\nconst pyramid = lightningChart().Pyramid( { type: PyramidChartTypes.LabelsOnSides } )\r\n```\r\n\r\nAfter creating the Pyramid Chart, we can populate it by adding slices to it.\r\nThe slice should always get a name and value as parameters.\r\n\r\nYou can alternatively add multiple slices as an array of objects containing a name and a value for each slice.\r\n\r\n```javascript\r\n// Add a single slice to populate the Pyramid.\r\npyramid.addSlice( 'Planning', 100 )\r\n\r\n// Add multiple slices to populate the Pyramid.\r\npyramid.addSlices([\r\n {\r\n name: 'Slice1', value: 45\r\n }, {\r\n name: 'Slice2', value: 83\r\n }, {\r\n name: 'Slice3', value: 19\r\n }\r\n ])\r\n\r\n```\r\n\r\nYou can modify how the Pyramid and its slices are drawn through the Pyramid Chart's API.\r\n\r\n```javascript\r\n// Set the width of the Pyramid's bottom edge. This value can be from 0 to 100 (in percents).\r\npyramid.setNeckWidth( 80 )\r\n\r\n// Set the gap between each of the slices. This value can be between 0 to 20 pixels.\r\npyramid.setSliceGap( 5 )\r\n\r\n// If the labels are set to be placed on the side of the Pyramid,\r\n// we can determine the side here as well.\r\npyramid.setLabelSide( PyramidLabelSide.Right )\r\n\r\n```\r\n\r\nThe Slices can be styled using the Pyramid Chart's API.\r\n\r\n```javascript\r\n// Create a palette of Solid FillStyles to use with the Pyramid slices.\r\nconst palette = SolidFillPalette( ColorPalettes.warm, data.length )\r\n// Set the palette used for coloring each of the slices.\r\npyramid.setSliceFillStyle( palette )\r\n\r\n```\r\n\r\nThe labels for all slices can be formatted in different ways.\r\n\r\n```javascript\r\n// Set the label formatting to show the slice's name and the relative value\r\n// (size of the slice as percentage).\r\npyramid.setLabelFormatter( SliceLabelFormatters.NamePlusRelativeValue )\r\n```\r\n\r\nThe lines connecting each slice to its label can be modified.\r\n\r\n```javascript\r\n// Set the style used with all connector lines.\r\npyramid.setLabelConnectorStyle(\r\n new SolidLine({\r\n thickness: 3,\r\n fillStyle: new SolidFill(\r\n { color: ColorRGBA( 100, 150, 195 ) }\r\n )\r\n })\r\n)\r\n```\r\n","image":"simplePyramid.png"},{"id":"lcjs-example-0500-dashboardWithLegendBox","title":"Dashboard With LegendBox","tags":["dashboard","legendbox","spline","streaming","spider","radar","web","xy"],"description":"Example showing a dashboard with multiple chart types and LegendBox Panel.","src":"/*\r\n * LightningChartJS example that showcases a dashboard with LegendBox.\r\n */\r\n// Import LightningChartJS\r\nconst lcjs = require('@arction/lcjs')\r\n\r\n// Extract required parts from LightningChartJS.\r\nconst {\r\n lightningChart,\r\n ColorRGBA,\r\n AxisScrollStrategies,\r\n PointShape,\r\n SolidFill,\r\n AxisTickStrategies,\r\n Themes\r\n} = lcjs\r\n\r\nconst colors = [ColorRGBA(0, 255, 0, 0), ColorRGBA(255, 0, 0, 0)]\r\nconst fillStyles = colors.map((color) => new SolidFill({ color: color.setA(150) }))\r\n\r\n// Import data-generators from 'xydata'-library.\r\nconst {\r\n createProgressiveRandomGenerator\r\n} = require('@arction/xydata')\r\n\r\n// Create Dashboard and stand-alone LegendBox.\r\nconst db = lightningChart().Dashboard({\r\n // theme: Themes.dark \r\n numberOfRows: 2,\r\n numberOfColumns: 2\r\n})\r\n\r\n// Create a legendBox docked to the Dashboard.\r\nconst legend = db.createLegendBoxPanel({\r\n columnIndex: 0,\r\n rowIndex: 1,\r\n columnSpan: 1,\r\n rowSpan: 1\r\n})\r\n\r\n\r\n// Spline\r\n{\r\n const dateOrigin = new Date()\r\n const dataFrequency = 1000\r\n const chart = db.createChartXY({\r\n columnIndex: 0,\r\n rowIndex: 0,\r\n columnSpan: 1,\r\n rowSpan: 1\r\n })\r\n .setTitle('Live sales')\r\n .setPadding({ right: 30 })\r\n .setMouseInteractionsWhileScrolling(true)\r\n\r\n const series = chart.addSplineSeries({ pointShape: PointShape.Circle })\r\n .setName('Product')\r\n .setStrokeStyle((strokeStyle) => strokeStyle.setThickness(2))\r\n .setPointSize(5)\r\n .setCursorInterpolationEnabled(false)\r\n .setResultTableFormatter((tableBuilder, series, x, y) => tableBuilder\r\n .addRow(series.getName())\r\n .addRow('Time : ', series.axisX.formatValue(x))\r\n .addRow('Sold : ', y.toFixed(0) + ' pieces')\r\n )\r\n\r\n chart.getDefaultAxisX()\r\n .setInterval(-61 * 1000, 0)\r\n .setScrollStrategy(AxisScrollStrategies.progressive)\r\n .setTickStrategy(\r\n AxisTickStrategies.DateTime,\r\n (tickStrategy) => tickStrategy.setDateOrigin(dateOrigin)\r\n )\r\n chart.getDefaultAxisY()\r\n .setTitle('Units sold')\r\n .setInterval(0, 500)\r\n .setScrollStrategy(AxisScrollStrategies.expansion)\r\n\r\n // Stream some random data.\r\n createProgressiveRandomGenerator()\r\n .setNumberOfPoints(10000)\r\n .generate()\r\n .setStreamBatchSize(1)\r\n .setStreamInterval(500)\r\n .setStreamRepeat(true)\r\n .toStream()\r\n .forEach(point => {\r\n point.x = point.x * dataFrequency\r\n point.y = point.y * 500\r\n series.add(point)\r\n })\r\n\r\n // Add to LegendBox\r\n legend.add(chart)\r\n}\r\n\r\n// Spider\r\n{\r\n const chart = db.createSpiderChart({\r\n columnIndex: 1,\r\n rowIndex: 0,\r\n columnSpan: 1,\r\n rowSpan: 2\r\n })\r\n .setTitle('Product development costs vs. sales profits')\r\n .setScaleLabelFont((font) => font.setSize(12))\r\n .setAxisLabelFont((font) => font.setSize(14).setStyle('italic'))\r\n\r\n chart.addSeries(PointShape.Circle)\r\n .setName('Sales Profits')\r\n .setFillStyle(fillStyles[0])\r\n .addPoints(\r\n { axis: 'January', value: 100 },\r\n { axis: 'February', value: 200 },\r\n { axis: 'March', value: 300 },\r\n { axis: 'April', value: 400 },\r\n { axis: 'May', value: 500 },\r\n { axis: 'June', value: 650 },\r\n { axis: 'July', value: 800 },\r\n { axis: 'August', value: 990 },\r\n { axis: 'September', value: 1200 },\r\n { axis: 'October', value: 1100 },\r\n { axis: 'November', value: 1400 },\r\n { axis: 'December', value: 1500 }\r\n )\r\n .setResultTableFormatter((tableContentBuilder, series, value, axis, formatValue) => tableContentBuilder\r\n .addRow(series.getName())\r\n .addRow(axis)\r\n .addRow('$' + value)\r\n )\r\n\r\n chart.addSeries(PointShape.Circle)\r\n .setName('Development Costs')\r\n .setFillStyle(fillStyles[1])\r\n .addPoints(\r\n { axis: 'January', value: 0 },\r\n { axis: 'February', value: 100 },\r\n { axis: 'March', value: 300 },\r\n { axis: 'April', value: 400 },\r\n { axis: 'May', value: 500 },\r\n { axis: 'June', value: 600 },\r\n { axis: 'July', value: 700 },\r\n { axis: 'August', value: 900 },\r\n { axis: 'September', value: 1000 },\r\n { axis: 'October', value: 1100 },\r\n { axis: 'November', value: 1300 },\r\n { axis: 'December', value: 1400 }\r\n )\r\n .setResultTableFormatter((tableContentBuilder, series, value, axis, formatValue) => tableContentBuilder\r\n .addRow(series.getName())\r\n .addRow(axis)\r\n .addRow('$' + value)\r\n )\r\n\r\n // Add to LegendBox\r\n legend.add(chart)\r\n\r\n // Set the row height\r\n db.setRowHeight(0, 3)\r\n}\r\n","url":null,"readme":"This example shows a simple dashboard with multiple chart types and LegendBox Panel.\r\n\r\nThe dashboard allows rendering of multiple scenes in a single view port highly efficiently with minimal memory resources. During the creation of a dashboard instance, the amount of rows and columns will have to be specified. This can not be changed afterwards.\r\n\r\n```javascript\r\n// Create a dashboard with three rows and two columns.\r\nconst dashboard = lightningChart().Dashboard({\r\n numberOfRows: 3,\r\n numberOfColumns: 2\r\n})\r\n```\r\n\r\nCharts and Panels can then be added to the dashboard like follows:\r\n\r\n```javascript\r\n// Create a ChartXY that occupies the top row of the dashboard.\r\nconst chartXY = dashboard.createChartXY({\r\n // Row index (starting from bottom).\r\n columnIndex: 2,\r\n // Column index (starting from left).\r\n rowIndex: 0,\r\n // Row span (height, basically).\r\n columnSpan: 1,\r\n // Column span (width, basically).\r\n rowSpan: 2\r\n})\r\n```\r\n\r\n[//]: # \"IMPORTANT: The assets will not show before README.md is built - relative path is different!\"\r\n\r\n\r\n\r\nDashboards have separate methods for adding a different kind of Charts or Panels. Dashboard represents a grid with rows & columns. During the creation of the element, the row & column indices and the horizontal & vertical spans should be specified to position it in the correct place and fill the desired amount of cells.\r\n\r\n```javascript\r\n// Create a spider chart and attach to dashboard.\r\n// Row 0, Column 0, Rows to fill 2, Columns to fill 1.\r\nconst spiderChart = dashboard.createSpider( 0, 0, 2, 1 )\r\n\r\n// Create a Legend Box Panel and attach to dashboard.\r\n// Row 0, Column 1, Rows to fill 2, Columns to fill 1.\r\nconst legendBox = dashboard.createLegendBoxPanel( {\r\n columnIndex: 0,\r\n rowIndex: 1,\r\n columnSpan: 2,\r\n rowSpan: 1\r\n})\r\n```\r\n\r\nThe dashboard rows and columns can have varying heights and widths respectively - you can resize them by clicking and dragging on the grid line separating the columns and rows from each other, or by using methods to set them programmatically:\r\n\r\n```javascript\r\n// Set height of the first row of a dashboard.\r\n// By default each row and column has a size of 1.\r\n// The size is always relative to the combined size of each row / column.\r\ndashboard.setRowHeight( 0, 2 )\r\n// Set width of the first and the second column of a dashboard.\r\n// First column width will be 2/5 of the entire view's width.\r\ndashboard.setColumnWidth( 0, 2 )\r\n// Second column width will be 3/5 of the entire view's width.\r\ndashboard.setColumnWidth( 1, 3 )\r\n```\r\n","image":"dashboardWithLegendbox.png"},{"id":"lcjs-example-0501-dashboard5chs1000pps","title":"Dashboard 5 Channels 1000 pps","tags":["dashboard","line","streaming","xy"],"description":"Example for a dashboard with multiple progressive channels of data. Using progressive Line Series.","src":"/*\r\n * LightningChartJS example that showcases usage of Dashboard with multiple channels and axis scroll strategies.\r\n */\r\n// Import LightningChartJS\r\nconst lcjs = require('@arction/lcjs')\r\n\r\n// Extract required parts from LightningChartJS.\r\nconst {\r\n lightningChart,\r\n AxisScrollStrategies,\r\n emptyFill,\r\n DataPatterns,\r\n Themes\r\n} = lcjs\r\n\r\n// Import data-generator from 'xydata'-library.\r\nconst {\r\n createProgressiveRandomGenerator\r\n} = require('@arction/xydata')\r\n\r\nconst channels = [\"Ch 1\", \"Ch 2\", \"Ch 3\", \"Ch 4\", \"Ch 5\"]\r\nconst channelCount = channels.length\r\n\r\n// Create Dashboard.\r\nconst grid = lightningChart().Dashboard({\r\n // theme: Themes.dark \r\n numberOfRows: channelCount,\r\n numberOfColumns: 1\r\n})\r\n\r\n// Map XY-charts to Dashboard for each channel.\r\nconst charts = channels.map((channelName, i) => {\r\n const chart = grid.createChartXY({\r\n columnIndex: 0,\r\n rowIndex: i,\r\n columnSpan: 1,\r\n rowSpan: 1\r\n })\r\n // Hide titles because we have very little space.\r\n .setTitleFillStyle(emptyFill)\r\n\r\n // Configure X-axis of chart to be progressive and have nice interval.\r\n chart.getDefaultAxisX()\r\n .setScrollStrategy(AxisScrollStrategies.progressive)\r\n .setInterval(0, 10000) // 10,000 millisecond axis\r\n\r\n return chart\r\n})\r\n\r\n// Map progressive line series for each chart.\r\nconst series = charts.map((chart, i) =>\r\n chart.addLineSeries({ dataPattern: DataPatterns.horizontalProgressive })\r\n // Destroy automatically outscrolled data (old data becoming out of X axis range) \r\n .setMaxPointCount(10000)\r\n .setStrokeStyle((lineStyle) => lineStyle.setThickness(1.0))\r\n)\r\n\r\n// Configure a common data-generator for all channels.\r\nconst dataGenerator = createProgressiveRandomGenerator()\r\n .setNumberOfPoints(3600)\r\n\r\n// Setup a continuous data-stream for each series.\r\nseries.forEach((value, i) =>\r\n dataGenerator\r\n .generate()\r\n .setStreamRepeat(true)\r\n // Use 1000 points / sec data rate (1 millisecond interval for data points). \r\n // Requesting generator to give an array of data points after every 15 ms. \r\n // As using 1 millisecond data point interval, it means 15 datapoints\r\n // have to be generated every round, 1 for each millisecond. \r\n .setStreamBatchSize(15) // 15 points per batch \r\n .setStreamInterval(15) // interval in milliseconds \r\n .toStream()\r\n .forEach((data) => value.add(data))\r\n)\r\n","url":null,"readme":"This example shows a dashboard with multiple progressive channels of data points using progressive line series.\r\n\r\nThe dashboard allows rendering of multiple scenes in a single view port highly efficiently with minimal memory resources. In our case, the rows of dashboard grid are filled with individual charts, where each represents the data channel.\r\n\r\n## Progressive series\r\n\r\nProgressive series are highly optimized series for the rendering of high-volume and high-density data while keeping full interactivity.\r\nThese optimizations are enabled by selecting a ***DataPattern***, which needs to be specified during the creation of the series instance and cannot be changed further for performance related reasons. *More detailed description was explained in previous examples.*\r\n","image":"dashboard5ch.png"},{"id":"lcjs-example-0502-dashboardTrading","title":"Dashboard Trading","tags":["dashboard","ohlc","trading","range","area"],"description":"This example shows the creation of a simple trading dashboard with multiple individual charts on a single pane.","src":"/*\r\n * LightningChartJS example that showcases usage of Dashboard for trading.\r\n */\r\n// Import LightningChartJS\r\nconst lcjs = require('@arction/lcjs')\r\n\r\n// Extract required parts from LightningChartJS.\r\nconst {\r\n lightningChart,\r\n AxisTickStrategies,\r\n LegendBoxBuilders,\r\n SolidFill,\r\n SolidLine,\r\n emptyLine,\r\n ColorRGBA,\r\n UIOrigins,\r\n Themes\r\n} = lcjs\r\n\r\n// Import data-generator from 'xydata'-library.\r\nconst {\r\n createOHLCGenerator,\r\n createProgressiveTraceGenerator\r\n} = require('@arction/xydata')\r\n\r\n// Create dashboard to house two charts\r\nconst db = lightningChart().Dashboard({\r\n // theme: Themes.dark \r\n numberOfRows: 2,\r\n numberOfColumns: 1\r\n})\r\n\r\n// Decide on an origin for DateTime axis.\r\nconst dateOrigin = new Date(2018, 0, 1)\r\n// Chart that contains the OHLC candle stick series and Bollinger band\r\nconst chartOHLC = db.createChartXY({\r\n columnIndex: 0,\r\n rowIndex: 0,\r\n columnSpan: 1,\r\n rowSpan: 1\r\n})\r\n// Use DateTime TickStrategy with custom date origin for X Axis.\r\nchartOHLC\r\n .getDefaultAxisX()\r\n .setTickStrategy(\r\n AxisTickStrategies.DateTime,\r\n (tickStrategy) => tickStrategy.setDateOrigin(dateOrigin)\r\n )\r\n// Modify Chart.\r\nchartOHLC\r\n .setTitle('Trading dashboard')\r\n //Style AutoCursor.\r\n .setAutoCursor(cursor => {\r\n cursor.disposeTickMarkerY()\r\n cursor.setGridStrokeYStyle(emptyLine)\r\n })\r\n .setPadding({ right: 40 })\r\n\r\n// The top chart should have 66% of view height allocated to it. By giving the first row a height of 2, the relative\r\n// height of the row becomes 2/3 of the whole view (default value for row height / column width is 1)\r\ndb.setRowHeight(0, 2)\r\n\r\n// Create a LegendBox for Candle-Stick and Bollinger Band\r\nconst legendBoxOHLC = chartOHLC.addLegendBox(LegendBoxBuilders.HorizontalLegendBox)\r\n .setPosition({ x: 100, y: 100 })\r\n .setOrigin(UIOrigins.RightTop)\r\n\r\n// Define function which sets Y axis intervals nicely.\r\nlet setViewNicely\r\n\r\n// Create OHLC Figures and Area-range.\r\n//#region\r\n\r\n// Get Y-axis for series (view is set manually).\r\nconst stockAxisY = chartOHLC.getDefaultAxisY()\r\n .setScrollStrategy(undefined)\r\n .setTitle('USD')\r\n// Add series.\r\nconst areaRangeFill = new SolidFill().setColor(ColorRGBA(100, 149, 237, 50))\r\nconst areaRangeStroke = new SolidLine()\r\n .setFillStyle(new SolidFill().setColor(ColorRGBA(100, 149, 237)))\r\n .setThickness(1)\r\nconst areaRange = chartOHLC.addAreaRangeSeries({ yAxis: stockAxisY })\r\n .setName('Bollinger band')\r\n .setHighFillStyle(areaRangeFill)\r\n .setLowFillStyle(areaRangeFill)\r\n .setHighStrokeStyle(areaRangeStroke)\r\n .setLowStrokeStyle(areaRangeStroke)\r\n .setMouseInteractions(false)\r\n .setCursorEnabled(false)\r\n\r\nconst stockFigureWidth = 5.0\r\nconst borderBlack = new SolidLine().setFillStyle(new SolidFill().setColor(ColorRGBA(0, 0, 0))).setThickness(1.0)\r\nconst fillBrightRed = new SolidFill().setColor(ColorRGBA(255, 0, 0))\r\nconst fillDimRed = new SolidFill().setColor(ColorRGBA(128, 0, 0))\r\nconst fillBrightGreen = new SolidFill().setColor(ColorRGBA(0, 255, 0))\r\nconst fillDimGreen = new SolidFill().setColor(ColorRGBA(0, 128, 0))\r\nconst stock = chartOHLC.addOHLCSeries({ yAxis: stockAxisY })\r\n .setName('Candle-Sticks')\r\n // Setting width of figures\r\n .setFigureWidth(stockFigureWidth)\r\n // Styling positive candlestick\r\n .setPositiveStyle(candlestick => candlestick\r\n // Candlestick body fill style\r\n .setBodyFillStyle(fillBrightGreen)\r\n // Candlestick body fill style\r\n .setBodyStrokeStyle(borderBlack)\r\n // Candlestick stroke style\r\n .setStrokeStyle((strokeStyle) => strokeStyle.setFillStyle(fillDimGreen))\r\n )\r\n .setNegativeStyle(candlestick => candlestick\r\n .setBodyFillStyle(fillBrightRed)\r\n .setBodyStrokeStyle(borderBlack)\r\n .setStrokeStyle((strokeStyle) => strokeStyle.setFillStyle(fillDimRed))\r\n )\r\n\r\n// Make function that handles adding OHLC segments to series.\r\nconst add = (ohlc) => {\r\n // ohlc is equal to [x, open, high, low, close]\r\n stock.add(ohlc)\r\n // AreaRange looks better if it extends a bit further than the actual OHLC values.\r\n const areaOffset = 0.2\r\n areaRange.add(\r\n {\r\n position: ohlc[0],\r\n high: ohlc[2] - areaOffset,\r\n low: ohlc[3] + areaOffset,\r\n\r\n }\r\n )\r\n}\r\n\r\n// Generate some static data.\r\ncreateOHLCGenerator()\r\n .setNumberOfPoints(100)\r\n .setDataFrequency(24 * 60 * 60 * 1000)\r\n .generate()\r\n .toPromise()\r\n .then(data => {\r\n data.forEach(add)\r\n setViewNicely()\r\n })\r\n\r\n//#endregion\r\n\r\n// Create volume.\r\n//#region\r\nconst chartVolume = db.createChartXY({\r\n columnIndex: 0,\r\n rowIndex: 1,\r\n columnSpan: 1,\r\n rowSpan: 1\r\n})\r\n// Use DateTime TickStrategy with custom date origin for X Axis.\r\nchartVolume\r\n .getDefaultAxisX()\r\n .setTickStrategy(\r\n AxisTickStrategies.DateTime,\r\n (tickStrategy) => tickStrategy.setDateOrigin(dateOrigin)\r\n )\r\n// Modify Chart.\r\nchartVolume\r\n .setTitle('Volume')\r\n .setPadding({ right: 40 })\r\n// Create a LegendBox as part of the chart.\r\nconst legendBoxVolume = chartVolume.addLegendBox(LegendBoxBuilders.HorizontalLegendBox)\r\n .setPosition({ x: 100, y: 100 })\r\n .setOrigin(UIOrigins.RightTop)\r\n\r\n// Create Y-axis for series (view is set manually).\r\nconst volumeAxisY = chartVolume.getDefaultAxisY()\r\n .setTitle('USD')\r\n // Modify TickStyle to hide gridstrokes.\r\n .setTickStrategy(\r\n // Base TickStrategy that should be styled.\r\n AxisTickStrategies.Numeric,\r\n // Modify the the tickStyles through a mutator.\r\n (tickStrat) => tickStrat\r\n // Modify the Major tickStyle to not render the grid strokes.\r\n .setMajorTickStyle(\r\n tickStyle => tickStyle.setGridStrokeStyle(emptyLine)\r\n )\r\n // Modify the Minor tickStyle to not render the grid strokes.\r\n .setMinorTickStyle(\r\n tickStyle => tickStyle.setGridStrokeStyle(emptyLine)\r\n )\r\n )\r\nconst volumeFillStyle = new SolidFill().setColor(ColorRGBA(0, 128, 128, 60))\r\nconst volumeStrokeStyle = new SolidLine()\r\n .setFillStyle(volumeFillStyle.setA(255))\r\n .setThickness(1)\r\nconst volume = chartVolume.addAreaSeries({ yAxis: volumeAxisY })\r\n .setName('Volume')\r\n .setFillStyle(volumeFillStyle)\r\n .setStrokeStyle(volumeStrokeStyle)\r\n\r\ncreateProgressiveTraceGenerator()\r\n .setNumberOfPoints(990)\r\n .generate()\r\n .toPromise()\r\n .then(data => {\r\n volume.add(data.map(point => ({ x: point.x * 2.4 * 60 * 60 * 1000, y: Math.abs(point.y) * 10 })))\r\n setViewNicely()\r\n })\r\n\r\n//#endregion\r\n\r\n\r\n// Add series to LegendBox and style entries.\r\nconst entries1 = legendBoxOHLC.add(chartOHLC)\r\nentries1[0]\r\n .setButtonOnFillStyle(areaRangeStroke.getFillStyle())\r\n .setButtonOnStrokeStyle(emptyLine)\r\n\r\nconst entries2 = legendBoxVolume.add(chartVolume)\r\nentries2[0]\r\n .setButtonOnFillStyle(volumeStrokeStyle.getFillStyle())\r\n .setButtonOnStrokeStyle(emptyLine)\r\n\r\nsetViewNicely = () => {\r\n const yBoundsStock = { min: areaRange.getYMin(), max: areaRange.getYMax(), range: areaRange.getYMax() - areaRange.getYMin() }\r\n const yBoundsVolume = { min: volume.getYMin(), max: volume.getYMax(), range: volume.getYMax() - volume.getYMin() }\r\n // Set Y axis intervals so that series don't overlap and volume is under stocks.\r\n volumeAxisY.setInterval(yBoundsVolume.min, yBoundsVolume.max)\r\n stockAxisY.setInterval(yBoundsStock.min - yBoundsStock.range * .33, yBoundsStock.max)\r\n}\r\n\r\nstock.setResultTableFormatter((builder, series, segment) => {\r\n return builder\r\n .addRow(series.getName())\r\n .addRow(series.axisX.formatValue(segment.getPosition()))\r\n .addRow('Open ' + segment.getOpen().toFixed(2))\r\n .addRow('High ' + segment.getHigh().toFixed(2))\r\n .addRow('Low ' + segment.getLow().toFixed(2))\r\n .addRow('Close ' + segment.getClose().toFixed(2))\r\n})\r\n\r\nvolume.setResultTableFormatter((builder, series, position, high, low) => {\r\n return builder\r\n .addRow(series.getName())\r\n .addRow(series.axisX.formatValue(position))\r\n .addRow('Value ' + Math.round(high))\r\n .addRow('Base ' + Math.round(low))\r\n})\r\n","url":null,"readme":"This example shows the creation of a simple trading dashboard with multiple individual charts on a single pane.\r\n\r\nThe chart contains:\r\n- Japanese candlesticks ( ***OHLC series*** ) to represent the market price data\r\n- Mountains area ( ***AreaRange series*** ) to represent the difference between high & low values\r\n- Mountains area ( ***Area series*** ) to represent the volume\r\n\r\n## Legend\r\n\r\nLegend in this example is a UI object embedded to the chart using predefined simple builders for horizontal or vertical layout.\r\n\r\n- Horizontal legend\r\n\r\n ```javascript\r\n // Create a horizontal legend embedded to the chart.\r\n const legend = chart.addLegendBox( LegendBoxBuilders.HorizontalLegendBox )\r\n ```\r\n \r\n- Vertical legend\r\n\r\n ```javascript\r\n // Create a horizontal legend embedded to the chart.\r\n const legend = chart.addLegendBox( LegendBoxBuilders.VerticalLegendBox )\r\n ```\r\n\r\nThe whole chart with contained series, the whole dashboard with contained charts and series, or the series individually can be easily attached to the legend box.\r\n\r\n- Adding a chart\r\n\r\n ```javascript\r\n // Attach the chart and its series to legend.\r\n // Creates a group with charts.\r\n // Return attached entries.\r\n const entries = legend.add( chart )\r\n ```\r\n\r\n- Adding a dashboard\r\n\r\n ```javascript\r\n // Attach the dashboard with charts with series to legend.\r\n // Creates groups of charts with series.\r\n // Return attached entries.\r\n const entries = legend.add( dashboard )\r\n ```\r\n\r\n- Adding a series\r\n\r\n ```javascript\r\n // Attach the individual series as a group to legend.\r\n // Creates a group from a single series.\r\n // Return attached entry.\r\n const entries = legend.add( series )\r\n ```\r\n","image":"dashboardTrading.png"},{"id":"lcjs-example-0503-dashboardBusiness","title":"Dashboard Business","tags":["dashboard","xy","bar","column","ui","line","date-time"],"description":"This example shows the specific business case to visualize the costs of a imaginary company across all the departments combined in a single interactive dashboard.","src":"/*\r\n * LightningChartJS example that showcases a business-like-Dashboard.\r\n */\r\n// Import LightningChartJS\r\nconst lcjs = require('@arction/lcjs')\r\n\r\n// Extract required parts from LightningChartJS.\r\nconst {\r\n lightningChart,\r\n ColorPalettes,\r\n SolidFill,\r\n SolidLine,\r\n UILayoutBuilders,\r\n UIElementBuilders,\r\n AutoCursorModes,\r\n AxisTickStrategies,\r\n emptyLine,\r\n emptyFill,\r\n AxisScrollStrategies,\r\n ColorRGBA,\r\n Themes\r\n} = lcjs\r\n\r\nconst {\r\n createProgressiveTraceGenerator\r\n} = require('@arction/xydata')\r\n\r\n// Create styles for normal & selected graphs.\r\nconst palette = ColorPalettes.arctionWarm(2)\r\nconst mainStrokeStyle = new SolidLine().setFillStyle(new SolidFill().setColor(palette(0))).setThickness(20 / window.devicePixelRatio)\r\nconst selectedFillStyle = new SolidFill().setColor(palette(1))\r\n\r\n// Department names \r\nconst teams = [\r\n \"Dev\",\r\n \"Maintenance\",\r\n \"Support\",\r\n \"Sales\",\r\n \"Marketing\"\r\n]\r\n// 1 data-point per day\r\nconst pointResolution = 24 * 60 * 60 * 1000\r\n// Generate data\r\nconst budgets = Promise.all(\r\n teams.map((_, index) => createProgressiveTraceGenerator()\r\n .setNumberOfPoints(365)\r\n .generate()\r\n .toPromise()\r\n .then(data => data.map(point => ({\r\n x: point.x * pointResolution,\r\n y: index > 0 ? Math.abs(point.y) * 100 + 100 : Math.abs(point.y) * 50 + 1800\r\n })))\r\n )\r\n)\r\n\r\n// Create dashboard which will host all chart and UI elements\r\nconst db = lightningChart().Dashboard({\r\n // theme: Themes.dark \r\n numberOfRows: 3,\r\n numberOfColumns: 2\r\n})\r\n\r\n// Total \r\nconst totalBudgetsPerTeam = budgets.then(\r\n teamBudgets =>\r\n teamBudgets.map(budgetPerTeam =>\r\n budgetPerTeam.reduce((sum, v) => sum + v.y, 0)\r\n )\r\n)\r\n\r\n// Create Cartesian Chart for Bars\r\nconst barChart = db.createChartXY({\r\n columnIndex: 0,\r\n rowIndex: 0,\r\n columnSpan: 1,\r\n rowSpan: 2\r\n})\r\n // Disable auto cursor\r\n .setAutoCursorMode(AutoCursorModes.disabled)\r\n // Set correct chart title\r\n .setTitle('Total expenses for 2018 per department')\r\n // Disable mouse interactions\r\n .setMouseInteractions(false)\r\n\r\n// Get Y axis\r\nconst axisX = barChart.getDefaultAxisX()\r\n// Amount of pixels in chart area\r\nconst axisXSize = axisX.scale.getCellSize()\r\n// Modify X axis\r\naxisX\r\n // Disable default ticks.\r\n .setTickStrategy(AxisTickStrategies.Empty)\r\n // Disable mouse interactions\r\n .setMouseInteractions(false)\r\n // Set correct range, so that is in pixel coordinates\r\n .setInterval(0, axisXSize, false, true)\r\n // Disable auto scaling\r\n .setScrollStrategy(undefined)\r\n\r\n// Modify Y axis\r\nbarChart\r\n .getDefaultAxisY()\r\n .setTitle('Expenses ($)')\r\n .setStrokeStyle(style => style.setThickness(0))\r\n .setNibStyle(emptyLine)\r\n .setMouseInteractions(false)\r\n// Create series for individual lines\r\nconst bars = barChart.addSegmentSeries()\r\n// Calculate \r\nconst numberOfGapsBetweenBars = teams.length + 1\r\n// Create custom ticks to mark positions of different departments bars\r\nconst customTicks = teams.map((team, i) => axisX\r\n // Add new custom tick\r\n .addCustomTick()\r\n // Set team name as marker text\r\n .setTextFormatter(_ => team)\r\n // Position custom tick in according with department index\r\n .setValue(axisXSize / numberOfGapsBetweenBars * (i + 1))\r\n // Style marker of custom tick\r\n .setMarker(marker => marker\r\n // Change font settings\r\n .setFont(fs => fs.setSize(12))\r\n // Change stroke style\r\n .setBackground(background => background\r\n .setStrokeStyle(emptyLine)\r\n .setFillStyle(emptyFill)\r\n )\r\n .setTextFillStyle(new SolidFill({ color: ColorRGBA(170, 170, 170) }))\r\n )\r\n // Disable gridstroke.\r\n .setGridStrokeStyle(emptyLine)\r\n)\r\n\r\n\r\n// Decide on an origin for DateTime axes (shared between two charts).\r\nconst dateOrigin = new Date(2018, 0, 1)\r\n\r\n// Create chart for a single department costs distribution graph\r\nconst lineChart = db.createChartXY({\r\n columnIndex: 0,\r\n rowIndex: 2,\r\n columnSpan: 2,\r\n rowSpan: 1\r\n})\r\n .setPadding({ right: 40 })\r\n// Set the row height for the third row to take 50% of view space.\r\ndb.setRowHeight(2, 2)\r\n// Create simple line series \r\nconst lineSeries = lineChart\r\n .addLineSeries()\r\n .setName('Total Expenses')\r\n // Set selected fill color for the series\r\n .setStrokeStyle((style) => style.setFillStyle(selectedFillStyle))\r\n\r\nlineChart\r\n .getDefaultAxisX()\r\n .setTickStrategy(\r\n AxisTickStrategies.DateTime,\r\n (tickStrategy) => tickStrategy.setDateOrigin(dateOrigin)\r\n )\r\n\r\n// Style chart selected department costs distribution\r\nbudgets.then(\r\n costsOfTeams => {\r\n // Finds the peak value across all departments\r\n const max = costsOfTeams.reduce(\r\n (max, costs) => costs.reduce(\r\n (lMax, cost) => lMax > cost.y ? lMax : cost.y,\r\n max\r\n ),\r\n 0\r\n )\r\n // Get Y axis\r\n lineChart\r\n .getDefaultAxisY().setTitle('Expenses ($)')\r\n // Disable auto scaling\r\n .setScrollStrategy(AxisScrollStrategies.fitting)\r\n // Set Y scale interval so that costs distribution fits\r\n .setInterval(0, max)\r\n }\r\n)\r\n\r\nlineSeries.setResultTableFormatter((builder, series, Xvalue, Yvalue) => {\r\n // Find cached entry for the figure.\r\n return builder\r\n .addRow('Total expenses')\r\n .addRow('Date: ' + series.axisX.formatValue(Xvalue))\r\n .addRow('Expenses: $' + Yvalue.toFixed(2))\r\n})\r\n\r\n// Create interactive Bar chart \r\nPromise.all([totalBudgetsPerTeam, budgets])\r\n .then(([values, costsOfTeams]) => {\r\n // Create bar for each department\r\n // Departments are marked by custom ticks\r\n const barCol = customTicks.map((tick, i) => {\r\n // Get custom tick position\r\n const pos = tick.getValue()\r\n // Add Line which represents bar\r\n // Line X position is based on custom tick value\r\n return bars.add({\r\n startX: pos,\r\n startY: 0,\r\n endX: pos,\r\n endY: values[i]\r\n })\r\n })\r\n // Create function which shows costs distribution per day for selected department\r\n const selectedDepartment = i => {\r\n // Change the chart title according to the selected department\r\n lineChart.setTitle(`${teams[i]} expenses per day`)\r\n // Remove points which belong to costs distribution of previously selected department\r\n lineSeries.clear()\r\n // Add points for costs distribution of newly selected department\r\n lineSeries.add(costsOfTeams[i])\r\n // Set main color to all bars\r\n barCol.forEach(bar => bar.setStrokeStyle(mainStrokeStyle))\r\n // Set special color for selected bar\r\n barCol[i].setStrokeStyle((strokeStyle) => strokeStyle.setFillStyle(selectedFillStyle))\r\n }\r\n // Attach event listener for mouse/touch events of each bar \r\n barCol.forEach((bar, i) => {\r\n bar.onMouseEnter(() => selectedDepartment(i))\r\n bar.onTouchStart(() => selectedDepartment(i))\r\n })\r\n // Select the first department at initial value\r\n selectedDepartment(0)\r\n })\r\n\r\n// Draw text field with total amount of costs and description\r\nconst column = db\r\n // Create a dashboard without any content, \r\n // but with possibility to host any UI element\r\n .createUIPanel({\r\n columnIndex: 1,\r\n rowIndex: 0,\r\n columnSpan: 1,\r\n rowSpan: 1\r\n })\r\n // Add a column structure to the UI panel\r\n .addUIElement(UILayoutBuilders.Column)\r\n .setPosition({ x: 50, y: 50 })\r\n .setPadding({ right: 40 })\r\n\r\ntotalBudgetsPerTeam.then(teamCosts => {\r\n // Add the first row to the column\r\n const firstRow = column.addElement(UILayoutBuilders.Row)\r\n // Add a gap which allocates all empty space in front of text\r\n firstRow.addGap()\r\n // Add text element right after gap\r\n firstRow.addElement(\r\n UIElementBuilders.TextBox\r\n // Modify TextBox builder to style the text field\r\n .addStyler(textBox => textBox\r\n // Define font settings for the text box\r\n .setFont(fontSettings => fontSettings.setSize(75 / window.devicePixelRatio))\r\n // Define content of the text box\r\n .setText('$' + teamCosts.reduce((sum, cost) => sum + cost, 0).toFixed())\r\n )\r\n )\r\n // Add a gap which allocates all empty space right after text\r\n firstRow.addGap()\r\n // Add a text box to the second row of the column\r\n column.addElement(\r\n UIElementBuilders.TextBox\r\n // Modify TextBox builder to style the text field\r\n .addStyler(textBox => textBox\r\n .setFont(fontSettings => fontSettings.setSize(25 / window.devicePixelRatio))\r\n .setText(\"Total company expenses\")\r\n )\r\n )\r\n})\r\n\r\n// Draw total costs distribution per days\r\nconst totalCostsChart = db\r\n // Create a cartesian chart\r\n .createChartXY({\r\n columnIndex: 1,\r\n rowIndex: 1,\r\n columnSpan: 1,\r\n rowSpan: 1\r\n })\r\n // Specify ChartXY title\r\n .setTitle('Total expenses per day')\r\n .setPadding({ right: 40 })\r\n\r\ntotalCostsChart\r\n .getDefaultAxisX()\r\n .setTickStrategy(\r\n AxisTickStrategies.DateTime,\r\n (tickStrategy) => tickStrategy.setDateOrigin(dateOrigin)\r\n )\r\n\r\nconst totalCost = totalCostsChart\r\n // Add the smooth line\r\n .addSplineSeries()\r\n .setName('Total Expenses ($)')\r\n // Change the thickness of the stroke\r\n .setStrokeStyle((strokeStyle) => strokeStyle.setThickness(2))\r\n\r\nbudgets.then(teamBudgets => {\r\n // Calculate total amount of costs per day\r\n const totalCostsPerDays = new Array(365)\r\n for (let i = 0; i < 365; i++) {\r\n totalCostsPerDays[i] = {\r\n x: i * pointResolution,\r\n y: teams.reduce((sum, _, teamIndex) => sum + teamBudgets[teamIndex][i].y, 0)\r\n }\r\n }\r\n // Draw a smooth line for total amount of costs per day\r\n totalCost\r\n // Hide points\r\n .setPointFillStyle(emptyFill)\r\n // Add data\r\n .add(totalCostsPerDays)\r\n})\r\ntotalCost.setResultTableFormatter((builder, series, Xvalue, Yvalue) => {\r\n // Find cached entry for the figure.\r\n return builder\r\n .addRow('Total expenses')\r\n .addRow('Date: ' + series.axisX.formatValue(Xvalue))\r\n .addRow('Expenses: $' + Yvalue.toFixed(2))\r\n})\r\ntotalCostsChart.getDefaultAxisY().setTitle('Expenses ($)')\r\n","url":null,"readme":"The data visualization tools are widely used in all fields of industries. This example shows the specific business case to visualize the costs of the *imaginary company* across all the departments for the whole year combined in a single interactive dashboard.\r\n\r\n#### Dashboard layout\r\n\r\nThe dashboard grid is created with 4 rows and 2 columns. Some visualization components in this example fill multiple cells by explicitly providing a row- & column- span during the creation.\r\n\r\n1. *Top-left cell.* The cell contains a chart that shows the costs per year for each department using ***Bar Chart or Column Chart*** implemented with ***SegmentSeries*** different tool than ***RectangleSeries***. Segment series provides an ability to create and place freely line segments by specifying the start & end.\r\n\r\n ```javascript\r\n // Create XY chart and attach to the dashboard.\r\n const barChart = dashboard.createChartXY({\r\n columnIndex: 2,\r\n rowIndex: 0,\r\n columnSpan: 2,\r\n rowSpan: 1\r\n })\r\n\r\n // Add segment series to series individual line segments.\r\n // This series uses default axes.\r\n const bars = barChart.addSegmentSeries()\r\n ```\r\n The segment series accepts input in the following format { startX: number, startY: number, endX: number, endY: number }. The series returns the created line segment to give an ability of further modifications. The chart fills 2 rows & 1 column.\r\n\r\n ```javascript\r\n // Add line segment.\r\n const column = bars.add({\r\n startX: 10,\r\n startY: 10,\r\n endX: 20,\r\n endY: 20\r\n })\r\n ```\r\n\r\n Regarding the customization, each column can be configured to have individual styling and mouse & touch events. Each chart and series has mouse/touch events. Search in our API documentation by starting to type \"onMouse\".\r\n\r\n ```javascript\r\n // Configure the created bar column.\r\n column\r\n .setStrokeStyle( style => ... )\r\n .onMouseEnter( () => pointerEnterHandler )\r\n .onTouchEvent( () => pointerEnterHandler )\r\n ```\r\n\r\n2. *Top-right cell, upper part.* This cell contains a UI panel that shows the total company costs for the whole year. UI panels are able to visualize only UI components. The chart fills 1 row & 1 column.\r\n\r\n ```javascript\r\n // Create UI panel and attach to the dashboard.\r\n const panel = dashboard.createUIPanel({\r\n columnIndex: 3,\r\n rowIndex: 1,\r\n columnSpan: 1,\r\n rowSpan: 1\r\n })\r\n\r\n // Add UI element specifying the builder.\r\n // E.g. CheckBox, Button, Legend, etc.\r\n panel.addUIElement(/* builder from the library */)\r\n ```\r\n\r\n 3. *Top-right cell, lower part.* This cell contains a chart which shows the only costs for a single department for each day of the year. The chart renders the line series with data gathered by moving the mouse over the column in the bar chart. The chart fills 1 row & 1 column.\r\n\r\n ```javascript\r\n // Decide on an origin for DateTime axes.\r\n const dateTimeTickStrategy = AxisTickStrategies.DateTime(new Date(2018, 0, 1))\r\n\r\n // Create a chart for visualizing the costs of selected department.\r\n // Specify DateTime format for x-axis labels.\r\n const lineChart = dashboard.createChartXY({\r\n columnIndex: 2, \r\n rowIndex: 1, \r\n columnSpan: 1, \r\n rowSpan:1, \r\n chartXYOptions: { defaultAxisXTickStrategy: dateTimeTickStrategy }\r\n })\r\n\r\n // Create line series for elected department.\r\n const lineSeries = lineChart.addLineSeries()\r\n ```\r\n\r\n4. *Bottom cell.* This cell contains a chart which shows the smooth line ( using ***SplineSeries*** ) of total costs across all the apartments during the whole year. The chart fills 2 rows & 2 columns.\r\n ```javascript\r\n // Create a chart for visualizing the total costs of the company.\r\n // Specify DateTime format for x-axis labels similarly as before.\r\n const totalCostsChart = dashboard.createChartXY({\r\n columnIndex: 0, \r\n rowIndex: 0, \r\n columnSpan: 2, \r\n rowSpan:2, \r\n chartXYOptions: { defaultAxisXTickStrategy: dateTimeTickStrategy }\r\n })\r\n\r\n // Create line series for total costs of the company.\r\n const lineSeries = lineChart.addSplineSeries()\r\n ```\r\n","image":"dashboardBusiness.png"},{"id":"lcjs-example-0504-dashboard2chs1000pps","title":"Dashboard 2 Channels 1000 pps","tags":["dashboard","line","xy"],"description":"This example shows different progressive data-patterns, scrolling strategies, custom axes and function generators inside a dashboard.","src":"/*\r\n * LightningChartJS example that showcases different directions of progressivity and using custom axes.\r\n */\r\n// Import LightningChartJS\r\nconst lcjs = require('@arction/lcjs')\r\n\r\n// Extract required parts from LightningChartJS.\r\nconst {\r\n lightningChart,\r\n AxisScrollStrategies,\r\n DataPatterns,\r\n Themes\r\n} = lcjs\r\n\r\n// Import data-generator from 'xydata'-library.\r\nconst {\r\n createProgressiveFunctionGenerator\r\n} = require('@arction/xydata')\r\n\r\nconst viewRange = Math.PI * 2 * 10\r\n\r\n// Create Dashboard.\r\nconst grid = lightningChart().Dashboard({\r\n // theme: Themes.dark \r\n numberOfRows: 1,\r\n numberOfColumns: 2\r\n})\r\n\r\n// Create two XY-charts.\r\nconst chart1 = grid.createChartXY({\r\n columnIndex: 0,\r\n rowIndex: 0,\r\n columnSpan: 1,\r\n rowSpan: 1\r\n})\r\nconst chart2 = grid.createChartXY({\r\n columnIndex: 1,\r\n rowIndex: 0,\r\n columnSpan: 1,\r\n rowSpan: 1\r\n})\r\n\r\n// Create progressive series with different directions and configure Y-axes suitably.\r\n// First, a vertically regressive series.\r\nchart1.setTitle('Vertical regressive')\r\nchart1.getDefaultAxisY()\r\n .setInterval(viewRange, 0)\r\n .setScrollStrategy(AxisScrollStrategies.regressive)\r\nconst series1 = chart1.addLineSeries({\r\n dataPattern: DataPatterns.verticalRegressive\r\n})\r\n\r\n// Second, a vertically progressive series with custom axis.\r\nchart2.setTitle('Vertical progressive')\r\n// Add new axis to 'right' side of chart.\r\nconst customAxisY = chart2.addAxisY(true)\r\n .setInterval(-viewRange, 0)\r\n .setScrollStrategy(AxisScrollStrategies.progressive)\r\n\r\nconst series2 = chart2.addLineSeries({\r\n yAxis: customAxisY,\r\n dataPattern: DataPatterns.verticalProgressive\r\n})\r\n// Dispose unused default Y-axis.\r\nchart2.getDefaultAxisY().dispose()\r\n\r\n// Lastly, setup data-generation for both series.\r\ncreateProgressiveFunctionGenerator()\r\n .setSamplingFunction(Math.sin)\r\n .setEnd(Math.PI * 2)\r\n .setStep(0.015)\r\n .generate()\r\n // 1 second / 20 milliseconds * 20 points per batch = 1000 points / sec\r\n .setStreamBatchSize(20)\r\n .setStreamInterval(20)\r\n .setStreamRepeat(true)\r\n .toStream()\r\n .forEach((point) => {\r\n // Transform point to suit series.\r\n series1.add({ x: point.y, y: -point.x })\r\n })\r\n\r\ncreateProgressiveFunctionGenerator()\r\n .setSamplingFunction((x) => Math.sin(x * .5) + Math.sin(x) + Math.cos(x * 1.5) + Math.cos(x * 0.25))\r\n .setEnd(Math.PI * 100)\r\n .setStep(0.015)\r\n .generate()\r\n // 1000 points / sec\r\n .setStreamBatchSize(20)\r\n .setStreamInterval(20)\r\n .setStreamRepeat(true)\r\n .toStream()\r\n .forEach((point) => {\r\n // Transform point to suit series.\r\n series2.add({ x: point.y, y: point.x })\r\n })\r\n","url":null,"readme":"This example shows different progressive data-patterns, scrolling strategies, custom axes and function generators inside a dashboard.\r\n","image":"dashboard2ch.png"},{"id":"lcjs-example-0505-dashboardMultiDirection","title":"Dashboard Multi-Direction","tags":["dashboard","xy","line","point"],"description":"This example shows series/axes progressing to all kinds of directions inside a dashboard.","src":"/*\r\n * LightningChartJS example that showcases series/axes progressing to all kinds of directions inside a dashboard.\r\n */\r\n// Import LightningChartJS\r\nconst lcjs = require('@arction/lcjs')\r\n\r\n// Extract required parts from LightningChartJS.\r\nconst {\r\n lightningChart,\r\n SolidFill,\r\n ColorRGBA,\r\n AxisScrollStrategies,\r\n DataPatterns,\r\n Themes\r\n} = lcjs\r\n\r\n// Import data-generators from 'xydata'-library.\r\nconst {\r\n createProgressiveTraceGenerator,\r\n createTraceGenerator\r\n} = require('@arction/xydata')\r\n\r\n// Create a 3x3 dashboard.\r\nconst grid = lightningChart().Dashboard({\r\n // theme: Themes.dark \r\n numberOfRows: 3,\r\n numberOfColumns: 3\r\n})\r\n\r\n// Add charts to dashboard.\r\nconst cells = [\r\n { row: 1, col: 0 },\r\n { row: 2, col: 1 },\r\n { row: 1, col: 2 },\r\n { row: 0, col: 1 },\r\n { row: 1, col: 1 }\r\n]\r\nconst chooseRandom = (options) => options[Math.round(Math.random() * (options.length - 1))]\r\nconst createCell = (cell) => {\r\n const chart = grid.createChartXY({\r\n columnIndex: cell.col,\r\n rowIndex: cell.row,\r\n columnSpan: 1,\r\n rowSpan: 1\r\n })\r\n // Add a random omni-directional series.\r\n const type = chooseRandom(['PointSeries', 'LineSeries'])\r\n // Setup data-generation for series.\r\n if (cell.row == cell.col) {\r\n const series = chart['add' + type]()\r\n // Random trace\r\n createTraceGenerator()\r\n .setNumberOfPoints(100000)\r\n .generate()\r\n .setStreamInterval(50)\r\n .setStreamBatchSize(10)\r\n .setStreamRepeat(true)\r\n .toStream()\r\n .forEach(point => series.add(point))\r\n } else {\r\n // Random progressive trace with mapped direction.\r\n const flipPlane = cell.col == 1\r\n const mul = { x: cell.col == 0 ? -1 : 1, y: cell.row == 0 ? 1 : -1 }\r\n // Configure axes.\r\n let axisX = chart.getDefaultAxisX(), axisY = chart.getDefaultAxisY()\r\n if (cell.row == cells.reduce((prev, cell) => Math.max(prev, cell.row), 0)) {\r\n axisX.dispose()\r\n axisX = chart.addAxisX(true)\r\n }\r\n if (cell.col == 0) {\r\n axisY.dispose()\r\n axisY = chart.addAxisY(true)\r\n }\r\n if (mul.x < 0) {\r\n axisX\r\n .setInterval(-100, 0)\r\n .setScrollStrategy(flipPlane ? AxisScrollStrategies.fitting : AxisScrollStrategies.regressive)\r\n } else\r\n axisX\r\n .setInterval(0, 100)\r\n .setScrollStrategy(flipPlane ? AxisScrollStrategies.fitting : AxisScrollStrategies.progressive)\r\n\r\n if (mul.y < 0) {\r\n axisY\r\n .setInterval(-100, 0)\r\n .setScrollStrategy(flipPlane ? AxisScrollStrategies.regressive : AxisScrollStrategies.fitting)\r\n } else\r\n axisY\r\n .setInterval(0, 100)\r\n .setScrollStrategy(flipPlane ? AxisScrollStrategies.progressive : AxisScrollStrategies.fitting)\r\n\r\n const series = chart['add' + type](axisX, axisY)\r\n createProgressiveTraceGenerator()\r\n .setNumberOfPoints(100000)\r\n .generate()\r\n .setStreamInterval(50)\r\n .setStreamBatchSize(2)\r\n .setStreamRepeat(true)\r\n .toStream()\r\n .forEach(point => series.add({ x: (flipPlane ? point.y : point.x) * mul.x, y: (flipPlane ? point.x : point.y) * mul.y }))\r\n }\r\n return chart.setTitle(type)\r\n}\r\ncells.map(createCell)\r\n","url":null,"readme":"This example shows series/axes progressing to all kinds of directions inside a dashboard.\r\n","image":"dashboardMulti.png"},{"id":"lcjs-example-0506-dashboardPie","title":"Dashboard With Pie, XY, Spider and Donut Charts","tags":["dashboard","pie","radar","spider","web","donut","xy","area","legendbox"],"description":"This example shows different kinds of charts inside a dashboard.","src":"/*\r\n * LightningChartJS example that showcases series/axes progressing to all kinds of directions inside a dashboard.\r\n */\r\n// Import LightningChartJS\r\nconst lcjs = require('@arction/lcjs')\r\n\r\n// Extract required parts from LightningChartJS.\r\nconst {\r\n lightningChart,\r\n SolidFill,\r\n ColorRGBA,\r\n SliceLabelFormatters,\r\n ColorPalettes,\r\n AreaSeriesTypes,\r\n PointShape,\r\n UIOrigins,\r\n UIDraggingModes,\r\n PieChartTypes,\r\n UIElementBuilders,\r\n SolidFillPalette,\r\n Themes\r\n} = lcjs\r\n\r\n// Create a 5x2 dashboard.\r\nconst grid = lightningChart().Dashboard({\r\n // theme: Themes.dark \r\n numberOfRows: 3,\r\n numberOfColumns: 2\r\n}).setBackgroundFillStyle(new SolidFill().setColor(ColorRGBA(24, 24, 24)))\r\n\r\n// Create a legendBox docked to the Dashboard.\r\nconst legend = grid.createLegendBoxPanel({\r\n columnIndex: 1,\r\n rowIndex: 2,\r\n columnSpan: 1,\r\n rowSpan: 1\r\n})\r\n\r\nconst pieType = window.innerWidth > 850 ? PieChartTypes.LabelsOnSides : PieChartTypes.LabelsInsideSlices\r\n\r\n//Pie Chart\r\n{\r\n //Create a Pie Chart\r\n const pie = grid.createPieChart(({\r\n columnIndex: 0,\r\n rowIndex: 0,\r\n columnSpan: 1,\r\n rowSpan: 1,\r\n pieOptions: { type: pieType }\r\n }))\r\n .setTitle('CPU Usage')\r\n .setAnimationsEnabled(true)\r\n .setMultipleSliceExplosion(true)\r\n\r\n // ----- CPU Usage data -----\r\n const data = [\r\n { name: 'OS', value: 20 },\r\n { name: 'Browser', value: 5 },\r\n { name: 'Video editor', value: 10 },\r\n { name: 'Unused', value: 65 }\r\n ]\r\n\r\n // ----- Create Slices -----\r\n const slices = data.map((item) => pie.addSlice(item.name, item.value))\r\n\r\n // Specify function which generates text for Slice Labels(LabelFormatter).\r\n pie.setLabelFormatter(SliceLabelFormatters.NamePlusRelativeValue)\r\n pie.setLabelFont((font) => font.setSize(15))\r\n\r\n // Add Pie chart to LegendBox\r\n legend.add(pie)\r\n}\r\n// Area Range\r\n{\r\n // Create a XY Chart.\r\n const xyChart = grid.createChartXY({\r\n columnIndex: 1,\r\n rowIndex: 1,\r\n columnSpan: 1,\r\n rowSpan: 1\r\n })\r\n .setTitle('Power Consumption')\r\n\r\n // Create palette for use with the System Power Consumption chart.\r\n const paletteAreaRange = ColorPalettes.arctionWarm(2)\r\n const solidFills = [0, 1].map(paletteAreaRange).map(color => new SolidFill({ color }))\r\n\r\n // ---- The Area Series both have the same baseline and direction. ----\r\n // Create semi-transparent blue area to depict the CPU power usage.\r\n const areaCPU = xyChart.addAreaSeries({ type: AreaSeriesTypes.Positive })\r\n .setFillStyle(new SolidFill().setColor(ColorRGBA(0, 191, 255, 150)))\r\n .setStrokeStyle(stroke => stroke.setFillStyle(solidFills[0]))\r\n .setName('CPU')\r\n\r\n // Create semi-transparent green area to depict the GPU power usage.\r\n const areaGPU = xyChart.addAreaSeries({ type: AreaSeriesTypes.Positive })\r\n .setFillStyle(new SolidFill().setColor(ColorRGBA(124, 252, 0, 150)))\r\n .setStrokeStyle(stroke => stroke.setFillStyle(solidFills[1]))\r\n .setName('GPU')\r\n\r\n xyChart.getDefaultAxisX()\r\n .setTitle('Component Load (%)')\r\n xyChart.getDefaultAxisY()\r\n .setTitle('Watts')\r\n\r\n const cpuData = [\r\n { x: 0 },\r\n { x: 4 },\r\n { x: 8 },\r\n { x: 12 },\r\n { x: 16 },\r\n { x: 20 },\r\n { x: 24 },\r\n { x: 28 },\r\n { x: 32 },\r\n { x: 36 },\r\n { x: 40 },\r\n { x: 44 },\r\n { x: 48 },\r\n { x: 52 },\r\n { x: 56 },\r\n { x: 60 },\r\n { x: 64 },\r\n { x: 68 },\r\n { x: 72 },\r\n { x: 76 },\r\n { x: 80 },\r\n { x: 84 },\r\n { x: 88 },\r\n { x: 92 },\r\n { x: 96 },\r\n { x: 100 }\r\n ]\r\n const gpuData = [\r\n { x: 0 },\r\n { x: 4 },\r\n { x: 8 },\r\n { x: 12 },\r\n { x: 16 },\r\n { x: 20 },\r\n { x: 24 },\r\n { x: 28 },\r\n { x: 32 },\r\n { x: 36 },\r\n { x: 40 },\r\n { x: 44 },\r\n { x: 48 },\r\n { x: 52 },\r\n { x: 56 },\r\n { x: 60 },\r\n { x: 64 },\r\n { x: 68 },\r\n { x: 72 },\r\n { x: 76 },\r\n { x: 80 },\r\n { x: 84 },\r\n { x: 88 },\r\n { x: 92 },\r\n { x: 96 },\r\n { x: 100 }\r\n ]\r\n\r\n areaCPU.add(cpuData.map((point) => ({ x: point.x, y: point.x * 3.2 })))\r\n areaGPU.add(gpuData.map((point) => ({ x: point.x, y: point.x * 2.8 })))\r\n\r\n // Set the custom result table\r\n areaCPU\r\n .setResultTableFormatter((builder, series, position, highValue, lowValue) => {\r\n return builder\r\n .addRow('CPU')\r\n .addRow('Power Consumption ' + highValue.toFixed(0) + ' watts')\r\n .addRow('component load ' + position.toFixed(0) + ' %')\r\n })\r\n areaGPU\r\n .setResultTableFormatter((builder, series, position, highValue, lowValue) => {\r\n return builder\r\n .addRow('GPU')\r\n .addRow('Power Consumption ' + highValue.toFixed(0) + ' watts')\r\n .addRow('component load ' + position.toFixed(0) + ' %')\r\n })\r\n\r\n // Add XY Chart to LegendBox\r\n legend.add(xyChart)\r\n\r\n}\r\n// Spider\r\n{\r\n //Create a Spider Chart\r\n const chart = grid.createSpiderChart({\r\n columnIndex: 1,\r\n rowIndex: 0,\r\n columnSpan: 1,\r\n rowSpan: 1\r\n })\r\n .setTitle('Average Component Load')\r\n .setScaleLabelFont((font) => font.setSize(12))\r\n .setAxisLabelFont((font) => font.setSize(14).setStyle('italic'))\r\n\r\n chart.addSeries(PointShape.Circle)\r\n .setName('System Load')\r\n .setFillStyle(new SolidFill().setColor(ColorRGBA(255, 165, 0, 150)))\r\n .addPoints(\r\n { axis: 'CPU', value: 10 },\r\n { axis: 'Memory', value: 10 },\r\n { axis: 'Network', value: 20 },\r\n { axis: 'Hard-Drive', value: 40 },\r\n { axis: 'GPU', value: 20 }\r\n )\r\n .setResultTableFormatter((tableContentBuilder, series, value, axis, formatValue) => tableContentBuilder\r\n .addRow(series.name)\r\n .addRow(axis)\r\n .addRow(value + ' %')\r\n )\r\n // Add Spider Chart to LegendBox\r\n legend.add(chart)\r\n\r\n}\r\n\r\n//Donut Chat\r\n{\r\n //Create a Donut Chart\r\n const donut = grid.createPieChart({\r\n columnIndex: 0,\r\n rowIndex: 1,\r\n columnSpan: 1,\r\n rowSpan: 2,\r\n pieOptions: { type: pieType }\r\n })\r\n .setTitle('Memory Usage')\r\n .setAnimationsEnabled(true)\r\n .setMultipleSliceExplosion(false)\r\n .setInnerRadius(50)\r\n\r\n // ----- Static data -----\r\n const data = {\r\n memory: ['OS', 'Browser', 'Video editor', 'Unused'],\r\n values: [1000, 692, 2000, 4500]\r\n }\r\n // Preparing data for each Slice\r\n const processedData = [];\r\n let totalMemoryUse = 0;\r\n for (let i = 0; i < data.values.length; i++) {\r\n totalMemoryUse += data.values[i];\r\n processedData.push({ name: `${data.memory[i]}`, value: data.values[i] });\r\n }\r\n\r\n // ----- Create fullSpectrum Palette for Donut (defines color of Slice filling) -----\r\n const palette = SolidFillPalette(ColorPalettes.fullSpectrum, 7)\r\n donut.setSliceFillStyle(palette)\r\n\r\n // ----- Create Slices -----\r\n processedData.map((item) => donut.addSlice(item.name, item.value))\r\n donut.setLabelFormatter(SliceLabelFormatters.NamePlusValue)\r\n donut.setLabelFont((font) => font.setSize(15))\r\n\r\n //add Donut to Legend Box\r\n legend.add(donut)\r\n\r\n // ----- Add TextBox below the Donut Chart-----\r\n donut.addUIElement(UIElementBuilders.TextBox.addStyler(\r\n textBox =>\r\n textBox.setFont(fontSettings => fontSettings.setSize(12)).setText(`Total memory : ${totalMemoryUse} MB`)\r\n )\r\n )\r\n .setPosition({ x: 50, y: 10 })\r\n .setOrigin(UIOrigins.Center)\r\n .setDraggingMode(UIDraggingModes.notDraggable)\r\n .setMargin(5)\r\n}\r\n\r\ngrid.setRowHeight(0, 2)\r\ngrid.setColumnWidth(0, 3)\r\ngrid.setColumnWidth(1, 2)\r\n","url":null,"readme":"This example shows different kinds of charts inside a dashboard.\r\n","image":"dashboardPie.png"},{"id":"lcjs-example-0550-zoomBandChart","title":"Zoom Band Chart","tags":["dashboard","ohlc","line","point","zoom band","range","area"],"description":"This example shows the creation of a Zoom Band Chart.","src":"/*\r\n * LightningChartJS example that showcases a simple XY line series.\r\n */\r\n// Import LightningChartJS\r\nconst lcjs = require('@arction/lcjs')\r\n\r\n// Extract required parts from LightningChartJS.\r\nconst {\r\n lightningChart,\r\n OHLCSeries,\r\n SolidFill,\r\n SolidLine,\r\n PointSeries,\r\n ColorHEX,\r\n LegendBoxBuilders,\r\n UIOrigins,\r\n Themes\r\n} = lcjs\r\n\r\n// Extract required parts from XYData Generator.\r\nconst {\r\n createProgressiveTraceGenerator,\r\n createOHLCGenerator,\r\n createProgressiveRandomGenerator\r\n} = require('@arction/xydata')\r\n\r\n// Create a Dashboard, with a single column and two rows.\r\nconst dashboard = lightningChart().Dashboard({\r\n // theme: Themes.dark \r\n numberOfColumns: 1,\r\n numberOfRows: 2\r\n})\r\n // Set the row height for the top Cell in Dashboard.\r\n // As the bottom row is default (1), the top row height will be 3/4 of the\r\n // available Dashboard height.\r\n .setRowHeight(0, 3)\r\n\r\n// Add XY Chart to top Cell in Dashboard.\r\nconst chart = dashboard.createChartXY({\r\n columnIndex: 0,\r\n columnSpan: 1,\r\n rowIndex: 0,\r\n rowSpan: 1\r\n})\r\n\r\n// Add Zoom Band Chart to bottom Cell in Dashboard.\r\nconst zoomBandChart = dashboard.createZoomBandChart({\r\n columnIndex: 0,\r\n columnSpan: 1,\r\n rowIndex: 1,\r\n rowSpan: 1,\r\n // Specify the Axis for the Zoom Band Chart to follow.\r\n // The Zoom Band Chart will imitate all Series present in that Axis.\r\n axis: chart.getDefaultAxisX()\r\n})\r\n // Modify the styling of the Series in Zoom Band Chart.\r\n .setSeriesStyle((zoomBandSeries, ref) => {\r\n // Style the 'OHLC Series' in Zoom Band Chart.\r\n if (ref instanceof OHLCSeries) {\r\n (zoomBandSeries).setStrokeStyle(new SolidLine({\r\n thickness: 1,\r\n fillStyle: new SolidFill({ color: ColorHEX('#0f0') })\r\n }))\r\n }\r\n // Style the 'Point Series' in Zoom Band Chart.\r\n if (ref instanceof PointSeries) {\r\n (zoomBandSeries).setStrokeStyle(new SolidLine({\r\n thickness: 1,\r\n fillStyle: new SolidFill({ color: ColorHEX('#bd3d17') })\r\n }))\r\n }\r\n })\r\n\r\n// Do not animate Y Axis Scale changes on either Charts.\r\nchart.getDefaultAxisY()\r\n .setAnimationScroll(undefined)\r\nzoomBandChart.getDefaultAxisY()\r\n .setAnimationScroll(undefined)\r\nzoomBandChart.band.setValueStart(300)\r\nzoomBandChart.band.setValueEnd(500)\r\n\r\n// Add different Series to the XY Chart.\r\nconst line = chart.addLineSeries()\r\nconst ohlc = chart.addOHLCSeries()\r\nconst points = chart.addPointSeries()\r\n .setPointSize(2)\r\n .setPointFillStyle(new SolidFill({ color: ColorHEX('#bd3d17') }))\r\nconst areaRange = chart.addAreaRangeSeries()\r\n\r\n// Fill the Line Series with arbitrary data.\r\ncreateProgressiveTraceGenerator()\r\n .setNumberOfPoints(1000)\r\n .generate()\r\n .toPromise()\r\n .then((data) => {\r\n // Offset the Y value of each point, then push to the Series.\r\n line.add(data.map((point) => ({ x: point.x, y: point.y * .1 + 100 })))\r\n })\r\n\r\n// Fill the OHLC Series with arbitrary data.\r\ncreateOHLCGenerator()\r\n .setNumberOfPoints(1000)\r\n .generate()\r\n .toPromise()\r\n .then((data) => {\r\n ohlc.add(data)\r\n })\r\n\r\n// Fill the Point Series with arbitrary data.\r\ncreateProgressiveRandomGenerator()\r\n .setNumberOfPoints(1000)\r\n .generate()\r\n .toPromise()\r\n .then((data) => {\r\n // Offset the Y value of each point, then push to the Series.\r\n points.add(data.map((point) => ({ x: point.x, y: point.y * 5 + 95 })))\r\n })\r\n\r\n// Fill the Area Series with arbitrary data. \r\nPromise.all([\r\n createProgressiveRandomGenerator()\r\n .setNumberOfPoints(1000)\r\n .generate()\r\n .toPromise(),\r\n createProgressiveRandomGenerator()\r\n .setNumberOfPoints(1000)\r\n .generate()\r\n .toPromise()\r\n]).then((data) => {\r\n // Offset the high and low values for each point, then push to the Series.\r\n areaRange.add(data[0].map((high, i) => ({\r\n position: high.x,\r\n high: high.y + 92,\r\n low: data[1][i].y + 90\r\n })))\r\n})\r\n\r\n// Add LegendBox to the XY Chart. Note that hiding a Series in XY Chart will also\r\n// hide corresponding Series in the Zoom Band Chart.\r\nchart.addLegendBox(LegendBoxBuilders.VerticalLegendBox)\r\n .setPosition({ x: 2, y: 100 })\r\n .setOrigin(UIOrigins.LeftTop)\r\n .add(chart)\r\n","url":null,"readme":"This example shows the basic usage of a Zoom Band Chart.\r\n\r\nThe Zoom Band Chart is attached to an Axis of a separate XY Chart. It will then imitate the Series present in the attached Axis and display them accordingly. The band in Zoom Band Chart can be used to change the view in the XY Chart, making it an easy way to inspect the Series in the Chart.\r\n\r\nWhen attaching to an X Axis, the Zoom Band Chart should be placed in a row either above or below the XY Chart it is attached to.\r\nWhen attaching to a Y Axis, the Zoom Band Chart should be placed in a column next to the XY Chart it is attached to.\r\n\r\nThe Zoom Band Chart can only be created as a part of a Dashboard.\r\n\r\nThe Zoom Band Chart can be created with few simple lines of code:\r\n\r\n```javascript\r\n// Create a new Dashboard with one column and two rows.\r\nconst dashboard = lightningChart().Dashboard( {\r\n numberOfColumns: 1,\r\n numberOfRows: 2\r\n} )\r\n\r\n// Create a new ChartXY inside the Dashboard.\r\nconst chart = dashboard.createChartXY( {\r\n columnIndex: 0,\r\n columnSpan: 1,\r\n rowIndex: 0,\r\n rowSpan: 1\r\n} )\r\n\r\n// Create a new Zoom Band Chart inside the Dashboard, and attach to the X Axis of the XY Chart created before.\r\nconst zoomBandChart = dashboard.createZoomBandChart( {\r\n columnIndex: 0,\r\n columnSpan: 1,\r\n rowIndex: 1,\r\n rowSpan: 1,\r\n axis: chart.getDefaultAxisX()\r\n} )\r\n```\r\n\r\nThe band of the Zoom Band Chart can be modified by using *ZoomBandChart.band*:\r\n\r\n```javascript\r\n// Change the color of the Band.\r\nzoomBandChart.band.setFillStyle( new SolidFill( { color: ColorHEX( '#57a2' ) } ) )\r\n```\r\n","image":"zoomBandChart.png"},{"id":"lcjs-example-0600-boxPlot","title":"Box and Whiskers Chart","tags":["box","whiskers","xy","point","bar","column"],"description":"Example creates a traditional Box and Whiskers Chart using ChartXY, BoxSeries and PointSeries for outliers.","src":"/*\r\n * LightningChartJS example that showcases the creation and styling of box series.\r\n */\r\n// Import LightningChartJS\r\nconst lcjs = require('@arction/lcjs')\r\n\r\n// Extract required parts from LightningChartJS.\r\nconst {\r\n lightningChart,\r\n emptyTick,\r\n emptyFill,\r\n emptyLine,\r\n ColorHEX,\r\n SolidFill,\r\n SolidLine,\r\n AxisTickStrategies,\r\n AutoCursorModes,\r\n PointShape,\r\n Themes\r\n} = lcjs\r\n\r\n// ----- Define data for application -----\r\nconst allData = [\r\n {\r\n name: 'Software developer',\r\n color: '#22162B',\r\n outlierShape: PointShape.Circle,\r\n data: {\r\n lowerExtreme: 17.5,\r\n lowerQuartile: 19.6,\r\n median: 21.2,\r\n upperQuartile: 28.5,\r\n upperExtreme: 48.1,\r\n outliers: [\r\n 50.1\r\n ]\r\n }\r\n },\r\n {\r\n name: 'Cashier',\r\n color: '#724E91',\r\n outlierShape: PointShape.Circle,\r\n data: {\r\n lowerExtreme: 14.0,\r\n lowerQuartile: 19.5,\r\n median: 20.1,\r\n upperQuartile: 26.7,\r\n upperExtreme: 41.6,\r\n outliers: [\r\n 52.2,\r\n 59.9\r\n ]\r\n }\r\n },\r\n {\r\n name: 'Janitor',\r\n color: '#451F55',\r\n outlierShape: PointShape.Circle,\r\n data: {\r\n lowerExtreme: 15.2,\r\n lowerQuartile: 18.5,\r\n median: 22.7,\r\n upperQuartile: 34.1,\r\n upperExtreme: 41.0,\r\n outliers: []\r\n }\r\n }\r\n]\r\n\r\n// ----- Define styles for light theme -----\r\nconst theme = {\r\n lightGrayFill: new SolidFill({ color: ColorHEX('#A0A0A0A0') }),\r\n yellowFill: new SolidFill({ color: ColorHEX('#ffa500') })\r\n}\r\n\r\n// ----- Create a XY Chart -----\r\nconst chart = lightningChart().ChartXY({\r\n // theme: Themes.dark\r\n})\r\n .setTitle('Age distribution across professions')\r\n .setTitleFont((font) => font\r\n .setSize(32)\r\n )\r\n // Disable interactions.\r\n .setAutoCursorMode(AutoCursorModes.disabled)\r\n .setMouseInteractions(false)\r\n\r\n// ----- Setup axes -----\r\nconst gridStrokeStyle = new SolidLine({\r\n thickness: 4,\r\n fillStyle: theme.lightGrayFill\r\n})\r\nconst axisX = chart.getDefaultAxisX()\r\n .setTitle('Profession')\r\n .setStrokeStyle(gridStrokeStyle)\r\n // No default ticks.\r\n .setTickStrategy(AxisTickStrategies.Empty)\r\n // Disable interactions.\r\n .setMouseInteractions(false)\r\n\r\n// Style the default Y Axis\r\nconst axisY = chart.getDefaultAxisY()\r\n .setTitle('Age')\r\n .setStrokeStyle(gridStrokeStyle)\r\n // Set Y-view manually.\r\n .setScrollStrategy(undefined)\r\n .setInterval(10, 63)\r\n // Disable interactions.\r\n .setMouseInteractions(false)\r\n\r\n// Style the Y Axis Ticks through the TickStrategy\r\naxisY\r\n .setTickStrategy(\r\n // Base TickStrategy to modify\r\n AxisTickStrategies.Numeric,\r\n // Modify the TickStrategy through a mutator\r\n (tickStrategy) => tickStrategy\r\n // Use custom grid stroke for the Major Ticks.\r\n .setMajorTickStyle(tickStyle => tickStyle\r\n .setGridStrokeStyle(gridStrokeStyle)\r\n )\r\n // Don't draw minor ticks.\r\n .setMinorTickStyle(emptyTick)\r\n )\r\n\r\n// ----- Map over per each data item -----\r\nconst boxFigureStrokeStyle = new SolidLine({\r\n thickness: 4,\r\n fillStyle: theme.yellowFill\r\n})\r\n\r\nallData.forEach((profession, i) => {\r\n const data = profession.data\r\n const fillStyle = new SolidFill({ color: ColorHEX(profession.color) })\r\n // ----- Create series for rendering this data item -----\r\n // Create BoxSeries.\r\n const boxSeries = chart.addBoxSeries()\r\n .setDefaultStyle((boxAndWhiskersFigure) => boxAndWhiskersFigure\r\n .setBodyFillStyle(fillStyle)\r\n .setBodyStrokeStyle(boxFigureStrokeStyle)\r\n .setMedianStrokeStyle(boxFigureStrokeStyle)\r\n .setStrokeStyle(boxFigureStrokeStyle)\r\n .setBodyWidth(0.70)\r\n .setTailWidth(0.70)\r\n )\r\n\r\n // Create PointSeries for outliers.\r\n const pointSeries = chart.addPointSeries({\r\n pointShape: profession.outlierShape ? profession.outlierShape : PointShape.Circle\r\n })\r\n .setPointSize(20)\r\n .setPointFillStyle(theme.yellowFill)\r\n\r\n // ----- Setup shared highlighting between box and point series -----\r\n boxSeries.onHover((_, cp) => pointSeries.setHighlighted(cp !== undefined))\r\n pointSeries.onHover((_, cp) => boxSeries.setHighlighted(cp !== undefined))\r\n\r\n // ----- Compute X positions for BoxFigure -----\r\n const start = i * 1\r\n const end = start + 1\r\n const middle = (start + end) / 2\r\n\r\n // ----- Render BoxFigure -----\r\n boxSeries.add({\r\n start,\r\n end,\r\n lowerExtreme: data.lowerExtreme,\r\n lowerQuartile: data.lowerQuartile,\r\n median: data.median,\r\n upperQuartile: data.upperQuartile,\r\n upperExtreme: data.upperExtreme,\r\n })\r\n\r\n // ----- Render outliers -----\r\n data.outliers.forEach((outlier) => {\r\n pointSeries.add({\r\n x: middle,\r\n y: outlier\r\n })\r\n })\r\n\r\n // ----- Create CustomTick on X-Axis for displaying name of profession -----\r\n axisX.addCustomTick()\r\n .setValue(middle)\r\n .setTextFormatter(() => profession.name)\r\n .setGridStrokeLength(0)\r\n .setMarker((marker) => marker\r\n .setBackground((background) => background\r\n .setFillStyle(emptyFill)\r\n .setStrokeStyle(emptyLine)\r\n )\r\n .setTextFillStyle(new SolidFill({ color: ColorHEX('#aaaf') }))\r\n .setFont((font) => font\r\n .setSize(24)\r\n )\r\n )\r\n})\r\n","url":null,"readme":"Example creates a traditional *Box and Whiskers Chart* using *ChartXY*, *BoxSeries* and *PointSeries* for outliers.\r\n\r\n*Box and Whiskers Chart* provides a compact way of visually displaying distribution of data through *quartiles*.\r\n\r\n## Anatomy\r\n\r\nThe lines extending parallel from the boxes are known as the \"whiskers\", which are used to indicate variability outside the upper and lower quartiles.\r\n\r\n*Outliers* are sometimes drawn as individual dots that are in-line with the whiskers.\r\n\r\n[//]: # \"IMPORTANT: The assets will not show before README.md is built - relative path is different!\"\r\n\r\n\r\n\r\nHere are the types of observations one can make from viewing a *Box And Whiskers Chart*:\r\n\r\n- What the key values are, such as: average, median, 25th percentile etc.\r\n- If there are any *outliers* and what their values are.\r\n- Is the data symmetrical.\r\n- How tightly is the data grouped.\r\n- If the data is skewed and if so, in what direction.\r\n","image":"boxPlot.png"},{"id":"lcjs-example-0601-boxPlotAndViolin","title":"Box And Violin Chart","tags":["box","violin","area","xy","legendbox"],"description":"This example shows usage of BoxSeries in extravagant manner.","src":"/*\r\n * LightningChartJS example that showcases usage of BoxSeries and RangeSeries to show some made-up statistical graphs.\r\n */\r\n// Import LightningChartJS\r\nconst lcjs = require('@arction/lcjs')\r\n\r\n// Extract required parts from LightningChartJS.\r\nconst {\r\n ColorPalettes,\r\n SolidFill,\r\n SolidLine,\r\n emptyLine,\r\n lightningChart,\r\n yDimensionStrategy,\r\n LegendBoxBuilders,\r\n UIDraggingModes,\r\n AxisScrollStrategies,\r\n AxisTickStrategies,\r\n AutoCursorModes,\r\n UIOrigins,\r\n Themes\r\n} = lcjs\r\n\r\n// Import data-generator from 'xydata'-library.\r\nconst {\r\n createProgressiveFunctionGenerator\r\n} = require('@arction/xydata')\r\n\r\n// ----- Cache used styles -----\r\nconst palette = ColorPalettes.arction(10)\r\nconst colors = [2, 4, 0, 0].map(palette)\r\nconst Style = (color) => {\r\n const solidFill = new SolidFill({ color })\r\n const opaqueFill = new SolidFill({ color: color.setA(100) })\r\n const solidLine = new SolidLine({ fillStyle: solidFill, thickness: 2 })\r\n return { solidFill, opaqueFill, solidLine }\r\n}\r\nconst styles = colors.map(Style)\r\nconst medianStrokeStyle = new SolidLine({ fillStyle: new SolidFill({ color: colors[3] }), thickness: 6 })\r\n\r\n// Utilities for graphing distribution functions.\r\n//#region\r\nconst cumulativeDistribution = (\r\n probabilityDistributionFunction,\r\n rangeMin,\r\n rangeMax,\r\n step\r\n) => {\r\n // Simulate values of respective probability density function.\r\n const probabilityValues = []\r\n for (let x = rangeMin; x <= rangeMax; x += step)\r\n probabilityValues.push(probabilityDistributionFunction(x))\r\n // Normalize probability values and push them to a cached array.\r\n const probabilitySum = probabilityValues.reduce((prev, cur) => prev + cur, 0)\r\n const values = []\r\n let accumulatedNormProb = 0\r\n for (const probabilityValue of probabilityValues) {\r\n const normalizedprobabilityValue = probabilityValue / probabilitySum\r\n accumulatedNormProb += normalizedprobabilityValue\r\n values.push(accumulatedNormProb)\r\n }\r\n // Return function that returns the closest value (by x) from the cached 'values' array.\r\n return (x) => {\r\n const xAsIndex = (x - rangeMin) / (rangeMax - rangeMin) * ((rangeMax - rangeMin) / step)\r\n // Pick closest index (left/right) that exists\r\n const closestIndex = Math.min(Math.max(Math.round(xAsIndex), 0), values.length - 1)\r\n return values[closestIndex]\r\n }\r\n}\r\nconst findQuartileX = (\r\n yToLookFor,\r\n cumulativeDistributionFunction,\r\n rangeMin,\r\n rangeMax,\r\n step\r\n) => {\r\n // Iterate over possible 'X' values and pick the one where resulting 'Y' is closest to 'yToLookFor'\r\n let bestResult\r\n for (let x = rangeMin; x <= rangeMax; x += step) {\r\n const y = cumulativeDistributionFunction(x)\r\n const delta = Math.abs(y - yToLookFor)\r\n if (bestResult === undefined || delta < bestResult.delta)\r\n bestResult = { x, delta }\r\n else if (bestResult !== undefined && delta > bestResult.delta)\r\n break\r\n }\r\n return bestResult.x\r\n}\r\nconst probabilityDistribution = (mean, variance) =>\r\n (x) =>\r\n (1 / (variance * Math.sqrt(2 * Math.PI))) * Math.pow(Math.E, -Math.pow((x - mean), 2) / (2 * variance * variance))\r\n//#endregion\r\n\r\n// Make chart with series graphing standard probability density and cumulative distribution functions.\r\nconst chart = lightningChart().ChartXY({\r\n // theme: Themes.dark \r\n})\r\n .setTitle('Probability distribution + Simulated accumulation and BoxSeries')\r\n // Set auto-cursor mode to 'onHover'\r\n .setAutoCursorMode(AutoCursorModes.onHover)\r\n .setAutoCursor((cursor) => cursor\r\n .setResultTableAutoTextStyle(false)\r\n .setTickMarkerXAutoTextStyle(false)\r\n .setTickMarkerYAutoTextStyle(false)\r\n )\r\n .setPadding({ right: 20 })\r\n\r\nconst xBounds = { min: -4, max: 4 }\r\nconst step = 0.02\r\n// Setup axes.\r\nconst axisDistribution = chart.getDefaultAxisY()\r\nconst axisNormalized = chart.addAxisY()\r\nconst axisX = chart.getDefaultAxisX()\r\n .setInterval(xBounds.min, xBounds.max)\r\n .setScrollStrategy(undefined)\r\n\r\n// Set up the Distribution Axis.\r\naxisDistribution\r\n .setTitle('Distribution function')\r\n .setScrollStrategy(AxisScrollStrategies.expansion)\r\n // Modify the TickStrategy to remove gridLines from this Y Axis.\r\n .setTickStrategy(\r\n // Use Numeric TickStrategy as base.\r\n AxisTickStrategies.Numeric,\r\n // Use mutator to modify the TickStrategy.\r\n tickStrategy => tickStrategy\r\n // Modify Major Tick Style by using a mutator.\r\n .setMajorTickStyle(\r\n tickStyle => tickStyle\r\n .setGridStrokeStyle(emptyLine)\r\n )\r\n // Modify Minor Tick Style by using a mutator.\r\n .setMinorTickStyle(\r\n tickStyle => tickStyle\r\n .setGridStrokeStyle(emptyLine)\r\n )\r\n )\r\n\r\n// Set up the Normalized Axis.\r\naxisNormalized\r\n .setTitle('Accumulated distribution (%)')\r\n .setInterval(0, 1)\r\n .setScrollStrategy(undefined)\r\n // Modify the TickStrategy to remove gridLines from this Y Axis.\r\n .setTickStrategy(\r\n // Use Numeric TickStrategy as base.\r\n AxisTickStrategies.Numeric,\r\n // Use mutator to modify the TickStrategy.\r\n tickStrategy => tickStrategy\r\n // Modify Major Tick Style by using a mutator.\r\n .setMajorTickStyle(\r\n tickStyle => tickStyle\r\n .setGridStrokeStyle(emptyLine)\r\n )\r\n // Modify Minor Tick Style by using a mutator.\r\n .setMinorTickStyle(\r\n tickStyle => tickStyle\r\n .setGridStrokeStyle(emptyLine)\r\n )\r\n )\r\n\r\n// Cumulative distribution.\r\nconst cumulativeDistributionSeries = chart.addAreaSeries({ yAxis: axisNormalized })\r\n .setName('Simulated Cumulative Distribution')\r\n .setFillStyle(styles[0].opaqueFill)\r\n .setStrokeStyle(styles[0].solidLine)\r\n\r\n// Probability distribution.\r\nconst probabilityDistributionSeries = chart.addAreaSeries({ yAxis: axisDistribution })\r\n .setName('Probability Distribution')\r\n .setFillStyle(styles[1].opaqueFill)\r\n .setStrokeStyle(styles[1].solidLine)\r\n\r\n// 'Violin' series.\r\nconst violinSeries = chart.addAreaRangeSeries({ yAxis: axisDistribution })\r\n .setName('Violin')\r\n .setHighFillStyle(styles[2].opaqueFill)\r\n .setLowFillStyle(styles[2].opaqueFill)\r\n .setHighStrokeStyle(styles[2].solidLine)\r\n .setLowStrokeStyle(styles[2].solidLine)\r\n\r\n// Box series.\r\nconst boxSeries = chart.addBoxSeries({ yAxis: axisDistribution, dimensionStrategy: yDimensionStrategy })\r\n .setName('Box')\r\n .setDefaultStyle((boxAndWhiskers) => boxAndWhiskers\r\n .setBodyFillStyle(styles[2].opaqueFill)\r\n .setBodyStrokeStyle(styles[2].solidLine)\r\n .setStrokeStyle(styles[2].solidLine)\r\n .setMedianStrokeStyle(medianStrokeStyle)\r\n .setTailWidth(0)\r\n )\r\n\r\n// Drawing logic\r\n//#region\r\nconst graphDistribution = (mean, variance) => {\r\n // Clear points from series.\r\n cumulativeDistributionSeries.clear()\r\n probabilityDistributionSeries.clear()\r\n boxSeries.clear()\r\n violinSeries.clear()\r\n\r\n // Generate and stream points.\r\n const probabilityDistributionFunction = probabilityDistribution(mean, variance)\r\n const cumulativeDistributionFunction = cumulativeDistribution(probabilityDistributionFunction, xBounds.min, xBounds.max, step)\r\n const streamDuration = 1500\r\n const streamInterval = 30\r\n\r\n // Reset interval if user isn't up to something.\r\n if (!axisDistribution.isStopped())\r\n axisDistribution.setInterval(0, 1.0)\r\n\r\n createProgressiveFunctionGenerator()\r\n .setSamplingFunction(cumulativeDistributionFunction)\r\n .setStart(xBounds.min)\r\n .setEnd(xBounds.max)\r\n .setStep(step)\r\n .generate()\r\n .setStreamBatchSize(1000 * (xBounds.max - xBounds.min) / (step * streamInterval * streamDuration))\r\n .setStreamInterval(streamInterval)\r\n .toStream()\r\n .forEach((point) => cumulativeDistributionSeries.add(point))\r\n createProgressiveFunctionGenerator()\r\n .setSamplingFunction(probabilityDistributionFunction)\r\n .setStart(xBounds.min)\r\n .setEnd(xBounds.max)\r\n .setStep(step)\r\n .generate()\r\n .setStreamBatchSize(1000 * (xBounds.max - xBounds.min) / (step * streamInterval * streamDuration))\r\n .setStreamInterval(streamInterval)\r\n .toStream()\r\n .forEach((point) => {\r\n probabilityDistributionSeries.add(point)\r\n if (point.y >= 0.001)\r\n // Add mirrored area-point to violin point\r\n violinSeries.add({\r\n position: point.x,\r\n high: 1.0 + point.y / 2,\r\n low: 1.0 - point.y / 2\r\n })\r\n })\r\n\r\n // Add box figure after streaming points.\r\n setTimeout(() => {\r\n // Find quartile values using cumulative distribution function.\r\n const q1 = findQuartileX(0.25, cumulativeDistributionFunction, xBounds.min, xBounds.max, step)\r\n const q2 = findQuartileX(0.50, cumulativeDistributionFunction, xBounds.min, xBounds.max, step)\r\n const q3 = findQuartileX(0.75, cumulativeDistributionFunction, xBounds.min, xBounds.max, step)\r\n const iqr = q3 - q1\r\n const boxSeriesDimensions = {\r\n // Purely visual 'Y' -dimensions\r\n start: 0.90,\r\n end: 1.10,\r\n // Actual data -dimensions along 'X' -axis\r\n lowerExtreme: q1 - 1.5 * iqr,\r\n lowerQuartile: q1,\r\n median: q2,\r\n upperQuartile: q3,\r\n upperExtreme: q3 + 1.5 * iqr\r\n }\r\n boxSeries.add(boxSeriesDimensions)\r\n }, streamDuration)\r\n}\r\n//#endregion\r\n\r\ngraphDistribution(0, 1)\r\n\r\n// Add LegendBox as part of chart.\r\nconst legend = chart.addLegendBox(LegendBoxBuilders.HorizontalLegendBox, { x: chart.uiScale.x, y: chart.pixelScale.y })\r\n .setOrigin(UIOrigins.LeftBottom)\r\n .setPosition({ x: 15, y: 250 })\r\n .setDraggingMode(UIDraggingModes.freelyDraggable)\r\nlegend.add(chart, 'Series')\r\n\r\ncumulativeDistributionSeries.setResultTableFormatter((tableBuilder, rangeSeries, position, high, low) => {\r\n const x = (position.toFixed(2) == '-0.00') ? '0.00' : position.toFixed(2);\r\n return tableBuilder\r\n .addRow('Simulated Cumulative Distribution')\r\n .addRow('Position ' + x)\r\n .addRow('High ' + high.toFixed(2))\r\n .addRow('Base ' + low.toFixed(2))\r\n})\r\nprobabilityDistributionSeries.setResultTableFormatter((tableBuilder, rangeSeries, position, high, low) => {\r\n const x = (position.toFixed(2) == '-0.00') ? '0.00' : position.toFixed(2);\r\n return tableBuilder\r\n .addRow('Probability Distribution')\r\n .addRow('Position ' + x)\r\n .addRow('Value ' + high.toFixed(2))\r\n .addRow('Base ' + low.toFixed(2))\r\n})\r\nviolinSeries.setResultTableFormatter((tableBuilder, rangeSeries, position, high, low) => {\r\n const x = (position.toFixed(2) == '-0.00') ? '0.00' : position.toFixed(2);\r\n return tableBuilder\r\n .addRow('Violin')\r\n .addRow('Position ' + x)\r\n .addRow('Value ' + high.toFixed(2))\r\n .addRow('Low ' + low.toFixed(2))\r\n})\r\n","url":null,"readme":"This example shows usage of BoxSeries in extravagant manner.\r\n","image":"boxPlotAndViolin.png"},{"id":"lcjs-example-0700-markers","title":"Markers","tags":["xy","marker","ui","line"],"description":"This example shows usage of different Markers of the ChartXY environment.","src":"/*\r\n * LightningChartJS example that showcases different XY Markers.\r\n */\r\n// Import LightningChartJS\r\nconst lcjs = require('@arction/lcjs')\r\n\r\n// Extract required parts from LightningChartJS.\r\nconst {\r\n lightningChart,\r\n AutoCursorModes,\r\n ColorRGBA,\r\n UIVisibilityModes,\r\n MarkerBuilders,\r\n UIBackgrounds,\r\n UIDirections,\r\n UIOrigins,\r\n DataPatterns,\r\n UIElementBuilders,\r\n UIDraggingModes,\r\n Themes\r\n} = lcjs\r\n\r\n// Import data-generator from 'xydata'-library.\r\nconst {\r\n createProgressiveTraceGenerator\r\n} = require('@arction/xydata')\r\n\r\nconst chartTitle = 'Markers'\r\n\r\n// Create a XY Chart.\r\nconst chart = lightningChart().ChartXY({\r\n // theme: Themes.dark \r\n})\r\n .setTitle(chartTitle)\r\n // Disable AutoCursor just for focusing on Markers.\r\n .setAutoCursorMode(AutoCursorModes.disabled)\r\n // Preventing ResultTable from getting cut at the edge\r\n .setPadding({\r\n right: 50\r\n })\r\n\r\n// Add a progressive line series.\r\nconst series = chart.addLineSeries({ dataPattern: DataPatterns.horizontalProgressive })\r\n\r\n// Generate random progressive points using 'xydata'-library.\r\ncreateProgressiveTraceGenerator()\r\n .setNumberOfPoints(100)\r\n .generate()\r\n .toPromise()\r\n .then(data => {\r\n const axisYAvg = (data[0].y + data[data.length - 1].y) / 2;\r\n series.add(data)\r\n // ----- ChartMarker -----\r\n\r\n // Add a ChartMarker to the chart.\r\n const chartMarker = chart.addChartMarkerXY()\r\n .setPosition({ x: 60, y: axisYAvg })\r\n\r\n // Style ChartMarker.\r\n chartMarker\r\n .setResultTableVisibility(UIVisibilityModes.always)\r\n .setResultTable((table) => table\r\n .setContent([\r\n ['ChartMarker']\r\n ])\r\n )\r\n .setGridStrokeXVisibility(UIVisibilityModes.whenDragged)\r\n .setGridStrokeYVisibility(UIVisibilityModes.whenDragged)\r\n .setTickMarkerXVisibility(UIVisibilityModes.whenDragged)\r\n .setTickMarkerYVisibility(UIVisibilityModes.whenDragged)\r\n })\r\n\r\n// ----- SeriesMarker -----\r\n\r\n// Create a builder for SeriesMarker to allow for full modification of its structure.\r\nconst SeriesMarkerBuilder = MarkerBuilders.XY\r\n .setPointMarker(UIBackgrounds.Circle)\r\n .setResultTableBackground(UIBackgrounds.Pointer)\r\n .addStyler(marker => marker\r\n .setPointMarker(point => point\r\n .setSize({ x: 5, y: 5 })\r\n )\r\n .setResultTable(table => table\r\n .setOrigin(UIOrigins.CenterBottom)\r\n .setMargin({ bottom: 0 })\r\n .setBackground(arrow => arrow\r\n .setDirection(UIDirections.Down)\r\n .setPointerAngle(80)\r\n .setPointerLength(20)\r\n )\r\n )\r\n .setGridStrokeXCut(true)\r\n .setAutoFitStrategy(undefined)\r\n )\r\n\r\n// Add a SeriesMarker to the series.\r\nconst seriesMarker = series.addMarker(SeriesMarkerBuilder)\r\n .setPosition({ x: 50, y: 0 })\r\n\r\n// Currently the only way to affect the text of Markers ResultTables,\r\n// is to completely override the series parser for it.\r\nseries.setResultTableFormatter((tableBuilder, series, x, y) => tableBuilder\r\n .addRow('SeriesMarker')\r\n .addRow('X', x.toFixed(1))\r\n .addRow('Y', y.toFixed(1))\r\n)\r\n// ... However, this will also apply to AutoCursor.\r\n\r\n// Add download button to save chart frame\r\nchart.addUIElement(UIElementBuilders.ButtonBox.setBackground(UIBackgrounds.Rectangle))\r\n .setPosition({ x: 99, y: 99 })\r\n .setOrigin(UIOrigins.RightTop)\r\n .setText('Download PNG Image')\r\n .setPadding({ top: 5, right: 20, bottom: 5, left: 20 })\r\n .setButtonOffSize(0)\r\n .setButtonOnSize(0)\r\n .setDraggingMode(UIDraggingModes.notDraggable)\r\n .onMouseClick((event) => {\r\n chart.saveToFile(chartTitle + ' - Screenshot')\r\n })\r\n","url":null,"readme":"This example shows usage of different Markers of the ChartXY environment.\r\nMarkers are custom UI-elements that can be used to draw custom cursors from user side. There are two types of Markers:\r\n\r\n## ChartMarker\r\n\r\nThis type of Marker is placed along two arbitrary axes belonging to a ChartXY. It is positioned with axis values, and will look exactly like an AutoCursor. It also has the same capabilities as one - only difference being that it isn't automatically positioned and hidden when needed, users have full power over this logic.\r\n\r\n## SeriesMarker\r\n\r\nSeriesMarkers are a part of certain series (line-series, OHLC, ...?), that can be created using series-method: *addMarker*. Once again, the SeriesMarker doesn't look any different from other Markers, the only logic which it adds is that it automatically latches to the nearest data-point of its owning series, from its current location (which can be set using method: *setPosition*)\r\n","image":"markers.png"},{"id":"lcjs-example-0701-bandsConstantlines","title":"Bands and Constant lines","tags":["xy","band","constantline","line"],"description":"This example shows usage of Bands and ConstantLines in XY Charts.","src":"/*\r\n * LightningChartJS example that showcases basic usage of Bands and Constantlines.\r\n */\r\n// Import LightningChartJS\r\nconst lcjs = require('@arction/lcjs')\r\n\r\n// Extract required parts from LightningChartJS.\r\nconst {\r\n lightningChart,\r\n DataPatterns,\r\n UIOrigins,\r\n ColorHEX,\r\n SolidLine,\r\n SolidFill,\r\n Themes\r\n} = lcjs\r\n\r\n// Import data-generator from 'xydata'-library.\r\nconst {\r\n createProgressiveTraceGenerator\r\n} = require('@arction/xydata')\r\n\r\nconst chartTitle = 'Bands and Constantlines'\r\n\r\n// Create a XY Chart.\r\nconst chart = lightningChart().ChartXY({\r\n // theme: Themes.dark\r\n})\r\n .setTitle(chartTitle)\r\n\r\n// Add a progressive line series.\r\nconst series = chart.addLineSeries({ dataPattern: DataPatterns.horizontalProgressive })\r\n\r\n// Generate random progressive points using 'xydata'-library.\r\ncreateProgressiveTraceGenerator()\r\n .setNumberOfPoints(100)\r\n .generate()\r\n .toPromise()\r\n .then(data => {\r\n series.add(data)\r\n })\r\n\r\n// Get the default X and Y Axis\r\nconst xAxis = chart.getDefaultAxisX()\r\nconst yAxis = chart.getDefaultAxisY()\r\n // Set the interval for Y Axis.\r\n .setInterval(-10, 10, true, true)\r\n\r\n// Add a Constantline to the X Axis\r\nconst xAxisConstantline = xAxis.addConstantLine()\r\n// Position the Constantline in the Axis Scale\r\nxAxisConstantline.setValue(80)\r\n// The name of the Constantline will be shown in the LegendBox\r\nxAxisConstantline.setName('X Axis Constantline')\r\n\r\n// Add a Band to the X Axis\r\nconst xAxisBand = xAxis.addBand()\r\n// Set the start and end values of the Band.\r\nxAxisBand\r\n .setValueStart(10)\r\n .setValueEnd(25)\r\n // Set the name of the Band\r\n .setName('X Axis Band')\r\n\r\n// Add Band and ConstantLine to the Y Axis\r\n\r\n// If 'false' is given as argument here, the Constantline will be rendered behind\r\n// all the Series in the Chart.\r\nconst yAxisConstantLine = yAxis.addConstantLine(false)\r\nyAxisConstantLine.setName('Y Axis Constantline')\r\n// Giving 'false' as argument here makes sure the Band is rendered behind all\r\n// the Series in the Chart.\r\nconst yAxisBand = yAxis.addBand(false)\r\nyAxisBand.setName('Y Axis Band')\r\n\r\n// Position the Y Axis ConstantLine along the visible Scale of the Axis.\r\nyAxisConstantLine.setValue(9)\r\n\r\n// Position the Y Axis Band along the visible Scale of the Axis.\r\nyAxisBand\r\n .setValueEnd(2)\r\n .setValueStart(-3)\r\n\r\n// Style the Y Axis Band\r\nyAxisBand\r\n .setStrokeStyle(\r\n new SolidLine({\r\n thickness: 3,\r\n fillStyle: new SolidFill({ color: ColorHEX('#6a05') })\r\n })\r\n )\r\nyAxisBand\r\n .setFillStyle(\r\n new SolidFill({ color: ColorHEX('#5b19') })\r\n )\r\n\r\n// Style the Y Axis Constantline\r\nyAxisConstantLine.setStrokeStyle(\r\n new SolidLine({\r\n thickness: 6,\r\n fillStyle: new SolidFill({ color: ColorHEX('#9c5') })\r\n }))\r\n\r\n// Add a LegendBox, add the Chart in it and position it.\r\nchart.addLegendBox()\r\n .setPosition({ x: 5, y: 95 })\r\n .setOrigin(UIOrigins.LeftTop)\r\n .add(chart)\r\n","url":null,"readme":"Also known as Highlighters.\r\n\r\nThis example shows the basic usage of Bands and Constantlines in a XY Chart.\r\n\r\nBands and Constantlines are attached to the Axes of a XY Chart.\r\nBands and Constantlines can be interacted with mouse and touch controls.\r\n\r\nDepending where you touch on the band, you can move either end of the Band separately by touching the edge of the Band, or you can move the entire Band by touching the center of the Band.\r\n\r\nThey can be easily added to an Axis:\r\n\r\n```javascript\r\n// Add a Constantline to an Axis\r\nconst constantline = axis.addConstantLine()\r\n\r\n//Add a Band to an Axis\r\nconst band = axis.addBand()\r\n\r\n// By default, the Band and Constantline are placed above all Series in the Chart.\r\n// They can also be placed below all Series by passing *true* as argument when creating one.\r\nconst constantLline = axis.addConstantLine(false)\r\n\r\nconst band = axis.addBand(false)\r\n```\r\n\r\n## Positioning\r\n\r\nThe position of a Constantline can be set using the *setValue()* API:\r\n\r\n```javascript\r\n// Set the position of a Constantline\r\nconstantline.setValue( 50 )\r\n```\r\n\r\nThe position and size of a Band is set by using the *setValueStart()* and *setValueEnd()* API:\r\n\r\n```javascript\r\n// Set the start value of a Band\r\nband.setValueStart( 20 )\r\n// Set the end value of a Band\r\nband.setValueEnd( 40 )\r\n```\r\n\r\n## Styling\r\n\r\nConstantlines can be styled by using the *setStrokeStyle()* API:\r\n\r\n```javascript\r\n// Style the Constantline\r\nconstantline.setStrokeStyle(\r\n new SolidLine({\r\n thickness: 5\r\n fillStyle: new SolidFill({\r\n color: ColorHEX('#fff')\r\n })\r\n })\r\n)\r\n```\r\n\r\nBands can be styled by using the *setStrokeStyle()* and *setFillStyle()* API accordingly:\r\n\r\n```javascript\r\n// Style the Band border\r\nband.setStrokeStyle(\r\n new SolidLine({\r\n thickness: 5\r\n fillStyle: new SolidFill({\r\n color: ColorHEX('#fff')\r\n })\r\n })\r\n)\r\n// Style the Band's fillStyle\r\nband.setFillStyle(\r\n new SolidFill({\r\n color: ColorHEX('#fff')\r\n })\r\n)\r\n```\r\n","image":"bandsConstantLines.png"},{"id":"lcjs-example-0705-customChartBubbles","title":"Customized Chart - Bubbles","tags":["bubble","ellipse","xy","ui"],"description":"Using Ellipse Series as tool to create a Bubble Chart. Also known as a Bubble Series, Bubble Chart and Bubble Graph. ","src":"/*\r\n * LightningChartJS example that showcases a extensively customized chart with Bubble-chart.\r\n */\r\n// Import LightningChartJS\r\nconst lcjs = require('@arction/lcjs')\r\n\r\n// Extract required parts from LightningChartJS.\r\nconst {\r\n lightningChart,\r\n SolidFill,\r\n SolidLine,\r\n ColorRGBA,\r\n emptyFill,\r\n FontSettings,\r\n AutoCursorModes,\r\n Animator,\r\n AnimationEasings,\r\n UIDraggingModes,\r\n UIOrigins,\r\n ColorPalettes,\r\n AxisTickStrategies,\r\n Themes\r\n} = lcjs\r\n\r\n// Custom callback template.\r\nconst forEachIn = (object, clbk) => { const obj = {}; for (const a in object) obj[a] = clbk(object[a]); return obj }\r\n\r\n// Define colors to configure chart and bubbles.\r\nconst colors = {\r\n background: ColorRGBA(255, 255, 255),\r\n graphBackground: ColorRGBA(220, 255, 255),\r\n title: ColorRGBA(0, 100, 0),\r\n subTitle: ColorRGBA(0, 100, 0),\r\n bubbleBorder: ColorRGBA(0, 0, 0),\r\n bubbleFillPalette: ColorPalettes.fullSpectrum(100)\r\n}\r\n\r\n// Define font settings.\r\nconst fonts = {\r\n title: new FontSettings({\r\n size: 40,\r\n weight: 400\r\n })\r\n}\r\n// Create and subtitle with the same font settings, except font-size.\r\nfonts.subTitle = fonts.title.setSize(20)\r\n\r\n// Create solid fill styles for defined colors.\r\nconst solidFillStyles = forEachIn(colors, (color) => new SolidFill({ color }))\r\n\r\n// Create chart with customized settings\r\nconst chart = lightningChart()\r\n .ChartXY({\r\n // theme: Themes.dark \r\n })\r\n .setBackgroundFillStyle(solidFillStyles.background)\r\n .setChartBackgroundFillStyle(solidFillStyles.graphBackground)\r\n .setTitle('Custom Styled Chart')\r\n .setTitleFont(fonts.title)\r\n .setTitleFillStyle(solidFillStyles.title)\r\n .setTitleMarginTop(6)\r\n .setTitleMarginBottom(0)\r\n .setPadding({ left: 5, right: 5, top: 30, bottom: 30 })\r\n .setAutoCursorMode(AutoCursorModes.disabled)\r\n .setMouseInteractionRectangleZoom(undefined)\r\n .setMouseInteractionRectangleFit(undefined)\r\n .setMouseInteractions(false)\r\n\r\n// Get axes.\r\nconst axes = {\r\n bottom: chart.getDefaultAxisX(),\r\n left: chart.getDefaultAxisY(),\r\n top: chart.addAxisX(true),\r\n right: chart.addAxisY(true).setChartInteractions(false)\r\n}\r\n\r\nchart.addUIElement(undefined, { x: chart.uiScale.x, y: axes.right.scale })\r\n .setPosition({ x: 50, y: 10 })\r\n .setOrigin(UIOrigins.CenterBottom)\r\n .setMargin({ bottom: 10 })\r\n .setText('- With Bubbles -')\r\n .setFont(fonts.subTitle)\r\n .setTextFillStyle(solidFillStyles.subTitle)\r\n .setDraggingMode(UIDraggingModes.notDraggable)\r\n\r\n// Axis mutator.\r\nconst overrideAxis = (axis) => axis\r\n .setTickStrategy(AxisTickStrategies.Empty)\r\n .setTitleMargin(0)\r\n .setMouseInteractions(undefined)\r\n\r\n// Override default configurations of axes.\r\nfor (const axisPos in axes)\r\n overrideAxis(axes[axisPos]);\r\n\r\n[axes.bottom, axes.left].forEach(axis => axis.setInterval(-100, 100).setScrollStrategy(undefined))\r\nconst bubblePx = {\r\n x: axes.bottom.scale.getPixelSize(),\r\n y: axes.left.scale.getPixelSize()\r\n}\r\n\r\n// Create instance of ellipse series to draw bubbles.\r\nconst ellipseSeries = chart.addEllipseSeries()\r\nlet bubbleCount = 0\r\n\r\n// Handler of dragging bubbles.\r\nconst bubbleDragHandler = (figure, event, button, startLocation, delta) => {\r\n const prevDimensions = figure.getDimensions()\r\n figure.setDimensions(Object.assign(prevDimensions, {\r\n x: prevDimensions.x + delta.x * figure.scale.x.getPixelSize(),\r\n y: prevDimensions.y + delta.y * figure.scale.y.getPixelSize()\r\n }))\r\n}\r\n\r\n// Create resizeBubble array and sizeArray to store the values separately \r\nconst resizeBubble = []\r\nconst sizeArray = []\r\n\r\n// Create a single bubble to visualize in specific coordinates and specified size.\r\nconst addBubble = (pos, size) => {\r\n const radius = size * 10\r\n const borderThickness = 1 + size * 1.0\r\n\r\n const color = colors.bubbleFillPalette(Math.round(Math.random() * 99))\r\n const fillStyle = new SolidFill({ color })\r\n const strokeStyle = new SolidLine({ fillStyle: solidFillStyles.bubbleBorder, thickness: borderThickness })\r\n\r\n const figure = ellipseSeries.add({\r\n x: pos.x,\r\n y: pos.y,\r\n radiusX: radius * bubblePx.x,\r\n radiusY: radius * bubblePx.y\r\n })\r\n .setFillStyle(fillStyle)\r\n .setStrokeStyle(strokeStyle)\r\n\r\n // Make draggable by mouse.\r\n figure.onMouseDrag(bubbleDragHandler)\r\n bubbleCount++\r\n return figure\r\n}\r\n\r\n// Create an event to handle the case when user resizes the window, the bubble will be automatically scaled \r\nchart.onResize(() => {\r\n for (let i = 0; i <= bubbleMaxCount - 1; i++) {\r\n const newBubble = resizeBubble[i].getDimensions()\r\n resizeBubble[i].setDimensions({\r\n x: newBubble.x,\r\n y: newBubble.y,\r\n radiusX: axes.bottom.scale.getPixelSize() * sizeArray[i] * 10,\r\n radiusY: axes.left.scale.getPixelSize() * sizeArray[i] * 10\r\n })\r\n }\r\n})\r\n\r\n// Create a single bubble to visualize in random coordinates and with random size.\r\nconst addRandomBubble = () => {\r\n const pos = {\r\n x: Math.random() * 200 - 100,\r\n y: Math.random() * 200 - 100\r\n }\r\n const size = 1 + Math.random() * 7.0\r\n sizeArray.push(size)\r\n resizeBubble.push(addBubble(pos, size))\r\n}\r\n\r\n// Amount of bubbles to render.\r\nconst bubbleMaxCount = 100\r\n\r\n// Animate bubbles creation.\r\nAnimator(() => undefined)(2.5 * 1000, AnimationEasings.ease)([[0, bubbleMaxCount]], ([nextBubbleCount]) => {\r\n while (bubbleCount < nextBubbleCount)\r\n addRandomBubble()\r\n})\r\n","url":null,"readme":"*Also known as a Bubble Series, Bubble Chart and Bubble Graph*\r\n\r\nThis example shows extensive customization of a Cartesian Chart to create a Bubble Chart using ***EllipseSeries*** as a tool.\r\n\r\nThe ***Bubble chart*** is a variation of a Scatter series where the data points have additional third dimension represented in the size of the markers ( ***bubbles*** ).\r\n\r\nThis type of series are often used to present financial or statistical data because they the easiest and well-understood visual comparisons of measures.\r\n\r\nThe series typically accepts points in format `{ x: number, y: number, size: number }`.\r\n","image":"custom.png"},{"id":"lcjs-example-0800-heatmapGrid","title":"Heatmap Grid","tags":["xy","heatmap","intensity"],"description":"Example showcasing simple use-case for grid-type Heatmap.","src":"/*\r\n * LightningChartJS example that showcases a simple XY line series.\r\n */\r\n// Import LightningChartJS\r\nconst lcjs = require('@arction/lcjs')\r\n\r\n// Extract required parts from LightningChartJS.\r\nconst {\r\n lightningChart,\r\n PalettedFill,\r\n LUT,\r\n ColorRGBA,\r\n Themes\r\n} = lcjs\r\n\r\nconst {\r\n createWaterDropDataGenerator\r\n} = require('@arction/xydata')\r\n\r\n\r\n// Create a XY Chart.\r\nconst chart = lightningChart().ChartXY({\r\n // theme: Themes.dark\r\n})\r\n .setTitle('Heatmap using IntensityGrid')\r\n\r\n// Specify the resolution used for the heatmap.\r\nconst resolutionX = 100\r\nconst resolutionY = 200\r\n\r\n// Create LUT and FillStyle\r\nconst palette = new LUT({\r\n steps: [\r\n { value: 0, color: ColorRGBA(0, 0, 0) },\r\n { value: 30, color: ColorRGBA(255, 255, 0) },\r\n { value: 45, color: ColorRGBA(255, 204, 0) },\r\n { value: 60, color: ColorRGBA(255, 128, 0) },\r\n { value: 100, color: ColorRGBA(255, 0, 0) }\r\n ],\r\n interpolate: false\r\n})\r\n\r\n// Generate heatmap data.\r\ncreateWaterDropDataGenerator()\r\n .setRows( resolutionX )\r\n .setColumns( resolutionY )\r\n .generate()\r\n .then( data => {\r\n // Add a Heatmap to the Chart. By default IntensityGrid Series Type is used.\r\n const heatmap = chart.addHeatmapSeries({\r\n rows: resolutionX,\r\n columns: resolutionY,\r\n start: { x: 10, y: 10 },\r\n end: { x: 90, y: 90 },\r\n pixelate: false\r\n })\r\n .invalidateValuesOnly( data )\r\n // Use created Paletted FillStyle for the Heatmap.\r\n .setFillStyle(new PalettedFill({ lut: palette }))\r\n } )\r\n","url":null,"readme":"This example shows a simple use-case scenario for grid-based Heatmaps.\r\n\r\nThe data used for the heatmap is created using the WaterdropGenerator function in the example code.\r\n\r\nHeatmaps are a powerful tool for visualizing magnitude in two dimensions. This example focuses on the IntensityGrid-type Heatmap Series.\r\n\r\nHeatmaps can be created in XY Charts:\r\n\r\n```javascript\r\n// Add heatmap Series to a XY Chart\r\nchartXY.addHeatmapSeries( {\r\n rows: verticalResolution,\r\n columns: horizontalResolution,\r\n start: { x: 0, y: 0 },\r\n end: { x: 100, y: 100 },\r\n pixelate: false\r\n})\r\n```\r\n\r\n# Heatmap Series options\r\nLet's open up the options a bit more:\r\n\r\n*rows*\r\nRows determine the *vertical resolution*, or density of each cell vertically.\r\n*columns*\r\nColumns determine the *horizontal resolution*, or density of each cell horizontally.\r\n*start*\r\nThe position from where the heatmap will be rendered from.\r\n*end*\r\nThe position to where the heatmap will be rendered to.\r\n*pixelate*\r\nIf true, each cell will be rendered as-is; this will create a pixelated look for the heatmap.\r\nIf false, the cells will be interpolated to give the heatmap a cleaner look.\r\n\r\nThe *rows* and *columns* control the amount of data present in the heatmap; think of them as *cells* in a *matrix*.\r\n\r\nThe *start* and *end* position determine the *size* of the heatmap in the XY Chart's scale.\r\n\r\nThere are additional optional options available;\r\n*type*\r\nWhich type of IntensitySeries should be used for the heatmap.\r\n*xAxis*\r\nThe Horizontal Axis the heatmap should be attached to.\r\n*yAxis*\r\nThe Vertical Axis the heatmap should be attached to.\r\n\r\n# Heatmap series usage\r\nNow that we have the heatmap specified, it's time to fill it with data.\r\n\r\n```javascript\r\n// Use invalidateValuesOnly to add data to the series and invalidate it.\r\n// The data should be given as a matrix of numbers.\r\nheatmap.invalidateValuesOnly( Matrix<number> )\r\n// Optionally, it's also possible to go through each cell in the heatmap\r\n// and fill the data using a callback\r\nheatmap.invalidateValuesOnly( UpdateValueCallBack )\r\n// Set a fillStyle to use for coloring the heatmap.\r\n// Using a combination of PalettedFill and LUT allows coloring each cell\r\n// depending on the data added.\r\nheatmap.setFillStyle( new PalettedFill( { LUT } )\r\n```\r\n\r\nIt is also possible to instead assign specific colors to each cell in the heatmap.\r\n```javascript\r\n// Use invalidateColorsOnly to add color to the series and invalidate it.\r\n// The colors should be given as a matrix of colors.\r\nheatmap.invalidateColorsOnly( Matrix<Color> )\r\n// Optionally, a callback can be used to change color of each cell.\r\nheatmap.invalidateColorsOnly( UpdateColorCallback )\r\n// Set the fillStyle of the heatmap to IndividualPointFill, so each cell\r\n// can be properly colored.\r\nheatmap.setFillStyle( new IndividualPointFill() )\r\n```\r\n","image":"heatmapGrid.png"},{"id":"lcjs-example-0801-heatmapMesh","title":"Heatmap Mesh","tags":["xy","heatmap","intensity"],"description":"Example showcasing simple use-case for Mesh-type Heatmap","src":"/*\r\n * LightningChartJS example that showcases a simple XY line series.\r\n */\r\n// Import LightningChartJS\r\nconst lcjs = require('@arction/lcjs')\r\n\r\n// Extract required parts from LightningChartJS.\r\nconst {\r\n lightningChart,\r\n IntensitySeriesTypes,\r\n IndividualPointFill,\r\n ColorHSV,\r\n Themes\r\n} = lcjs\r\n\r\n// Helper function to help turn degrees to radians\r\nfunction degToRad(angle) {\r\n return angle * Math.PI / 180\r\n}\r\n\r\n// Resolution of each row/column, specifying how many cells\r\n// are in the heatmap.\r\nconst resolution = 20\r\n\r\n// Create a new ChartXY.\r\nconst chart = lightningChart().ChartXY({\r\n // theme: Themes.dark\r\n})\r\nchart.setTitle('Heatmap using IntensityMesh')\r\n\r\n// Add a heatmap to the chart, as a IntensityMesh\r\nconst heatmap = chart\r\n .addHeatmapSeries({\r\n rows: resolution,\r\n columns: resolution,\r\n start: { x: 10, y: 10 },\r\n end: { x: 1990, y: 1990 },\r\n pixelate: true,\r\n type: IntensitySeriesTypes.Mesh\r\n })\r\n // Add colors and invalidate the Series based on the colors assigned.\r\n .invalidateColorsOnly((row, column) => ColorHSV(Math.random() * 70, 0.8))\r\n // Use IndividualPointFill to apply individual color per cell.\r\n .setFillStyle(new IndividualPointFill())\r\n // Edit the geometry and invalidate the Series based on the new geometry.\r\n .invalidateGeometryOnly((row, column, prev) => ({\r\n // Compute the geometry for each cell in the heatmap.\r\n x: prev.x * Math.sin(degToRad(row + 1)),\r\n y: prev.x * Math.sin(degToRad(column + 1))\r\n }))\r\n","url":null,"readme":"This example shows a simple use-case scenario for mesh-based Heatmaps.\r\n\r\nHeatmaps are a powerful tool for visualizing magnitude in two dimensions. This example focuses on the IntensityMesh-type Heatmap Series. The difference between grid and mesh types is apparent in the naming; whereas grid is always a rectangular shape, the mesh type allows users to modify the geometry of the shape.\r\n\r\nHeatmaps can be created in XY Charts:\r\n```javascript\r\n// Add heatmap Series to a XY Chart\r\nchartXY.addHeatmapSeries( {\r\n rows: verticalResolution,\r\n columns: horizontalResolution,\r\n start: { x: 0, y: 0 },\r\n end: { x: 100, y: 100 },\r\n pixelate: false,\r\n // Make sure we're using the Mesh IntensitySeriesType\r\n type: IntensitySeriesTypes.Mesh\r\n})\r\n```\r\n\r\nThe *Mesh IntensitySeriesType* has the same API that is available with the *Grid IntensitySeriesType*, but in addition it has the *invalidateGeometryOnly* method:\r\n\r\n```javascript\r\n// Use invalidateGeometryOnly to edit the geometry of the heatmap and invalidate it.\r\n// This can be done by supplying a Matrix of Points to the method.\r\nheatmap.invalidateGeometryOnly( vertices: Matrix<Point> )\r\n// Optionally, the geometry can be modified by supplying the method with a callback\r\n// which modifies each point.\r\nheatmap.invalidateGeometryOnly( vertices: UpdateGeometryCallback )\r\n```\r\n","image":"heatmapMesh.png"},{"id":"lcjs-example-0802-spectrogram","title":"Heatmap Spectrogram","tags":["xy","heatmap","intensity","spectrogram","audio","dashboard"],"description":"Example showcasing simple use-case for Heatmap as Spectrogram.","src":"/*\r\n * LightningChartJS example that showcases a simple XY line series.\r\n */\r\n// Import LightningChartJS\r\nconst lcjs = require('@arction/lcjs')\r\n\r\n// Extract required parts from LightningChartJS.\r\nconst {\r\n lightningChart,\r\n IntensitySeriesTypes,\r\n PalettedFill,\r\n LUT,\r\n emptyFill,\r\n emptyLine,\r\n AxisScrollStrategies,\r\n AxisTickStrategies,\r\n ColorHSV,\r\n Themes\r\n} = lcjs\r\n\r\nconst AudioContext = window.AudioContext || window.webkitAudioContext\r\n// Create a new audio context,\r\n// for most part this context is not used for other than creating audiobuffer from audio data\r\nconst audioCtx = new AudioContext()\r\n\r\n// General configuration for common settings\r\nconst config = {\r\n /**\r\n * The resolution of the FFT calculations\r\n * Higher value means higher resolution decibel domain..\r\n */\r\n fftResolution: 4096,\r\n /**\r\n * Smoothing value for FFT calculations\r\n */\r\n smoothingTimeConstant: 0.1,\r\n /**\r\n * The size of processing buffer,\r\n * determines how often FFT is run\r\n */\r\n processorBufferSize: 2048\r\n}\r\n\r\n// Initialize LightningChart JS\r\nconst lc = lightningChart()\r\n\r\n/**\r\n * Fetch audio file and create audio buffer from it.\r\n * @param {string} waveformUrl URL to the WaveForm to load\r\n * @returns {AudioBuffer} The audio file as an AudioBuffer\r\n */\r\nconst loadWaveForm = async (waveformUrl) => {\r\n // Fetch waveform\r\n const resp = await fetch(waveformUrl)\r\n // Convert fetch to array buffer\r\n const waveDataBuffer = await resp.arrayBuffer()\r\n // Convert array buffer to audio buffer\r\n const audioBuffer = await audioCtx.decodeAudioData(waveDataBuffer)\r\n return audioBuffer\r\n}\r\n\r\n/**\r\n * @typedef WaveFormData\r\n * @type {object}\r\n * @property {Uint8Array[]} channels FFT Data for each channel\r\n * @property {number} stride Number of data points in a data block\r\n * @property {number} rowCount Number of rows of data\r\n * @property {number} maxFreq Maximum frequency of the data\r\n * @property {number} duration Audio buffer duration in seconds\r\n */\r\n\r\n/**\r\n * Process a AudioBuffer and create FFT Data for Spectrogram from it.\r\n * @param {AudioBuffer} audioBuffer AudioBuffer to process into FFT data.\r\n * @returns {WaveFormData} Processed data\r\n */\r\nconst processWaveForm = async (audioBuffer) => {\r\n // Create a new OfflineAudioContext with information from the pre-created audioBuffer\r\n // The OfflineAudioContext can be used to process a audio file as fast as possible.\r\n // Normal AudioContext would process the file at the speed of playback.\r\n const offlineCtx = new OfflineAudioContext(audioBuffer.numberOfChannels, audioBuffer.length, audioBuffer.sampleRate)\r\n // Create a new source, in this case we have a AudioBuffer to create it for, so we create a buffer source\r\n const source = offlineCtx.createBufferSource()\r\n // Set the buffer to the audio buffer we are using\r\n source.buffer = audioBuffer\r\n // Set source channel count to the audio buffer channel count, if this wasn't set, the source would default to 2 channels.\r\n source.channelCount = audioBuffer.numberOfChannels\r\n\r\n // We want to create spectrogram for each channel in the buffer, so we need to separate the channels to separate outputs.\r\n const splitter = offlineCtx.createChannelSplitter(source.channelCount)\r\n // Create a analyzer node for the full context\r\n const generalAnalyzer = offlineCtx.createAnalyser()\r\n generalAnalyzer.fftSize = config.fftResolution\r\n generalAnalyzer.smoothingTimeConstant = config.smoothingTimeConstant\r\n\r\n // Prepare buffers and analyzers for each channel\r\n const channelFFtDataBuffers = []\r\n const analyzers = []\r\n for (let i = 0; i < source.channelCount; i += 1) {\r\n channelFFtDataBuffers[i] = new Uint8Array((audioBuffer.length / config.processorBufferSize) * (config.fftResolution / 2))\r\n // Setup analyzer for this channel\r\n analyzers[i] = offlineCtx.createAnalyser()\r\n analyzers[i].smoothingTimeConstant = config.smoothingTimeConstant\r\n analyzers[i].fftSize = config.fftResolution\r\n // Connect the created analyzer to a single channel from the splitter\r\n splitter.connect(analyzers[i], i)\r\n }\r\n // Script processor is used to process all of the audio data in fftSize sized blocks\r\n // Script processor is a deprecated API but the replacement APIs have really poor browser support\r\n offlineCtx.createScriptProcessor = offlineCtx.createScriptProcessor || offlineCtx.createJavaScriptNode\r\n const processor = offlineCtx.createScriptProcessor(config.processorBufferSize, 1, 1)\r\n let offset = 0\r\n processor.onaudioprocess = (ev) => {\r\n // Run FFT for each channel\r\n for (let i = 0; i < source.channelCount; i += 1) {\r\n const freqData = new Uint8Array(channelFFtDataBuffers[i].buffer, offset, analyzers[i].frequencyBinCount)\r\n analyzers[i].getByteFrequencyData(freqData)\r\n }\r\n offset += generalAnalyzer.frequencyBinCount\r\n }\r\n // Connect source buffer to correct nodes,\r\n // source feeds to:\r\n // splitter, to separate the channels\r\n // processor, to do the actual processing\r\n // generalAanalyzer, to get collective information\r\n source.connect(splitter)\r\n source.connect(processor)\r\n processor.connect(offlineCtx.destination)\r\n source.connect(generalAnalyzer)\r\n // Start the source, other wise start rendering would not process the source\r\n source.start(0)\r\n\r\n // Process the audio buffer\r\n await offlineCtx.startRendering()\r\n return {\r\n channels: channelFFtDataBuffers,\r\n stride: config.fftResolution / 2,\r\n tickCount: Math.ceil(audioBuffer.length / config.processorBufferSize),\r\n maxFreq: offlineCtx.sampleRate / 2, // max freq is always half the sample rate\r\n duration: audioBuffer.duration\r\n }\r\n}\r\n\r\n/**\r\n * Create data matrix for heatmap from one dimensional array\r\n * @param {Uint8Array} data FFT Data\r\n * @param {number} strideSize Single data block width\r\n * @param {number} tickCount Data row count\r\n */\r\nconst remapDataToTwoDimensionalMatrix = (data, strideSize, tickCount) => {\r\n /**\r\n * @type {Array<number>}\r\n */\r\n const arr = Array.from(data)\r\n\r\n // Map the one dimensional data to two dimensional data where data goes from right to left\r\n // [1, 2, 3, 4, 5, 6]\r\n // -> strideSize = 2\r\n // -> rowCount = 3\r\n // maps to\r\n // [1, 4]\r\n // [2, 5]\r\n // [3, 6]\r\n const output = Array.from(Array(strideSize)).map(() => Array.from(Array(tickCount)))\r\n for (let row = 0; row < strideSize; row += 1) {\r\n for (let col = 0; col <= tickCount; col += 1) {\r\n output[row][col] = arr[col * strideSize + row]\r\n }\r\n }\r\n\r\n return output\r\n}\r\n\r\n/**\r\n * Create a chart for a channel\r\n * @param {lcjs.Dashboard} dashboard Dashboard to create the chart in\r\n * @param {number} channelIndex Current channel index\r\n * @param {number} rows Data row count\r\n * @param {number} columns Data column count\r\n * @param {number} maxFreq Maximum frequency for data\r\n * @param {number} duration Duration in seconds\r\n */\r\nconst createChannel = (dashboard, channelIndex, rows, columns, maxFreq, duration) => {\r\n // Create a new chart in a specified row\r\n const chart = dashboard.createChartXY({\r\n columnIndex: 0,\r\n columnSpan: 1,\r\n rowIndex: channelIndex,\r\n rowSpan: 1\r\n })\r\n // Hide the chart title\r\n .setTitleFillStyle(emptyFill)\r\n\r\n // Start position of the heatmap\r\n const start = {\r\n x: 0,\r\n y: 0\r\n }\r\n // End position of the heatmap\r\n const end = {\r\n x: duration,\r\n // Use half of the fft data range\r\n y: (Math.ceil(maxFreq / 2))\r\n }\r\n // Create the series\r\n const series = chart.addHeatmapSeries({\r\n // Data columns, defines horizontal resolution\r\n columns: columns,\r\n // Data rows, defines vertical resolution\r\n // Use half of the fft data range\r\n rows: Math.ceil(rows / 2),\r\n // Start position, defines where one of the corners for hetmap is\r\n start,\r\n // End position, defines the opposite corner of the start corner\r\n end,\r\n // Smoothly render the heatmap data\r\n pixelate: true,\r\n // Using IntensityGrid, it supports rectangular heatmaps and is simpler than the IntensityMesh type\r\n type: IntensitySeriesTypes.Grid\r\n })\r\n // Use palletted fill style, intensity values define the color for each data point based on the LUT\r\n .setFillStyle(new PalettedFill({\r\n lut: new LUT({\r\n steps: [\r\n { value: 0, color: ColorHSV(0, 1, 0) },\r\n { value: 255 * (1 / 6), color: ColorHSV(270, 0.84, 0.2) },\r\n { value: 255 * (2 / 6), color: ColorHSV(289, 0.86, 0.35) },\r\n { value: 255 * (3 / 6), color: ColorHSV(324, 0.97, 0.56) },\r\n { value: 255 * (4 / 6), color: ColorHSV(1, 1, 1) },\r\n { value: 255 * (5 / 6), color: ColorHSV(44, 0.64, 1) }\r\n ],\r\n interpolate: true\r\n })\r\n }))\r\n\r\n // Set default X axis settings\r\n series.axisX.setInterval(start.x, end.x)\r\n .setTickStrategy(AxisTickStrategies.Empty)\r\n .setTitleMargin(0)\r\n .setScrollStrategy(undefined)\r\n .setMouseInteractions(false)\r\n // Set default chart settings\r\n chart.setPadding({ left: 0, top: 8, right: 8, bottom: 1 })\r\n .setMouseInteractions(false)\r\n // Set default X axis settings\r\n series.axisY.setInterval(start.y, end.y)\r\n .setTitle(`Channel ${channelIndex + 1} (Hz)`)\r\n .setScrollStrategy(AxisScrollStrategies.fitting)\r\n\r\n return {\r\n chart,\r\n series\r\n }\r\n}\r\n\r\n/**\r\n * Render a spectrogram for given data set\r\n * @param {WaveFormData} data Data set to render\r\n */\r\nconst renderSpectrogram = async (data) => {\r\n // Create a dashboard with enough rows for the number of channels in data set\r\n const dashboard = lc.Dashboard({\r\n // theme: Themes.dark \r\n numberOfColumns: 1,\r\n numberOfRows: data.channels.length\r\n })\r\n // Hide the dashboard splitter\r\n .setSplitterStyle(emptyLine)\r\n\r\n // Collection of created charts\r\n const charts = []\r\n\r\n // Create channels and set data for each channel\r\n for (let i = 0; i < data.channels.length; i += 1) {\r\n // Create a chart for the channel\r\n const ch = createChannel(dashboard, i, data.stride, data.tickCount, data.maxFreq, data.duration)\r\n // Setup the data for the chart\r\n const remappedData = remapDataToTwoDimensionalMatrix(data.channels[i], data.stride, data.tickCount)\r\n // Set the heatmap data\r\n ch.series.invalidateValuesOnly(remappedData)\r\n // Add the created chart and series to collection\r\n charts.push(ch)\r\n }\r\n\r\n // Style to bottom most chart axis to use it as the common axis for each chart\r\n charts[charts.length - 1]\r\n .series\r\n .axisX\r\n .setTickStrategy(AxisTickStrategies.Numeric)\r\n .setScrollStrategy(AxisScrollStrategies.fitting)\r\n .setTitle(`Duration (s)`)\r\n .setMouseInteractions(true)\r\n\r\n // Link chart X axis scales\r\n charts[charts.length - 1].series.axisX.onScaleChange((start, end) => {\r\n charts.forEach((c, i) => i < charts.length - 1 ? c.series.axisX.setInterval(start, end, false, false) : undefined)\r\n })\r\n\r\n return dashboard\r\n}\r\n\r\n(async () => {\r\n // Remove loading spinner\r\n document.querySelectorAll('.loading').forEach(item => {\r\n item.parentElement.removeChild(item)\r\n })\r\n const run = async () => {\r\n // Load waveform from url\r\n const waveform = await loadWaveForm(document.head.baseURI + 'examples/assets/lcjs_example_0802_spectrogram-Truck_driving_by-Jason_Baker-2112866529_edit.wav')\r\n // Process the loaded wave form to prepare it for being added to the chart\r\n const processed = await processWaveForm(waveform)\r\n // Create a dashboard from the processed waveform data\r\n const dashboard = renderSpectrogram(processed)\r\n }\r\n // Check if audio context was started\r\n if (audioCtx.state === 'suspended') {\r\n // Show a large play button\r\n const resumeElement = document.createElement('div')\r\n resumeElement.style.position = 'absolute'\r\n resumeElement.style.top = '0'\r\n resumeElement.style.left = '0'\r\n resumeElement.style.right = '0'\r\n resumeElement.style.bottom = '0'\r\n\r\n const resumeImg = document.createElement('img')\r\n resumeImg.src = document.head.baseURI + 'examples/assets/lcjs_example_0802_spectrogram-play_circle_outline-24px.svg'\r\n resumeImg.style.width = '100%'\r\n resumeImg.style.height = '100%'\r\n\r\n resumeElement.onclick = () => {\r\n audioCtx.resume()\r\n }\r\n resumeElement.appendChild(resumeImg)\r\n\r\n const innerElement = document.querySelector('.inner')\r\n let target\r\n if (!innerElement) {\r\n target = document.createElement('div')\r\n target.classList.add('inner')\r\n document.body.appendChild(target)\r\n }\r\n const targetElement = innerElement || target\r\n targetElement.appendChild(resumeElement)\r\n\r\n // Attach a listener to the audio context to remove the play button as soon as the context is running\r\n audioCtx.onstatechange = () => {\r\n if (audioCtx.state === 'running') {\r\n run()\r\n audioCtx.onstatechange = void 0\r\n targetElement.removeChild(resumeElement)\r\n }\r\n }\r\n } else {\r\n // Audio context is running so run the example\r\n run()\r\n }\r\n})()\r\n","url":null,"readme":"This example shows a simple use case for Heatmaps as a spectrogram.\r\n\r\nSpectrogram is a visual representation of the spectrum of frequencies. Spectrograms can be used to visualize any wave form. Most often spectrograms are used to display audio signals.\r\n\r\nThis example loads a audio file and shows spectrograms for each channel on the audio file.\r\n\r\nThe spectrogram shows frequency on one axis (Y Axis) and time on the other (X Axis). The color of a the heatmap at any point is the amplitude of the frequency at the specified time.\r\n\r\n## Getting the data\r\n\r\nFirst the audio file that will be shown is loaded with [fetch][fetch] and converted into an ArrayBuffer.\r\n\r\n```js\r\nconst response = await fetch('url')\r\nconst buffer = await response.arrayBuffer()\r\n```\r\n\r\nThis example uses the [Web Audio APIs][web-audio-api] to retrieve the frequency data to display in the heatmap. These APIs make it easy to work with audio files and manipulate the files. For spectrogram use the [AnalyzerNode][analyzer-node] is the most useful part of the API as it provides [getByteFrequencyData][getByteFrequencyData] method which is a implementation of [Fast Fourier Transform][fft].\r\nThe AudioContext contains method to convert an ArrayBuffer into an [AudioBuffer][AudioBuffer].\r\n\r\n```js\r\nconst audioBuffer = await audioContext.decodeAudioData(buffer)\r\n```\r\n\r\nNow that the audio file is converted into a AudioBuffer it's possible to start extracting data from it.\r\n\r\nTo process the full audio buffer as fast as possible, a [OfflineAudioContext][OfflineAudioContext] is used. The OfflineAudioContext doesn't output the data to a audio device, instead it will go through the audio as fast as possible and outputs an AudioBuffer with the processed data. In this example the processed audio buffer is not used, but the processing is used to calculate the FFT data we need to display the intensities for each frequency in the spectrogram. The audio buffer we have created is used as a [buffer source][createBufferSource] for the OfflineAudioContext.\r\n\r\nThe buffer source only has a single output but we want to be able to process each channel separately, to do this a [ChannelSplitter][createChannelSplitter] is used with the output count matching the source channel count.\r\n\r\n```js\r\nconst splitter = offlineCtx.createChannelSplitter(source.channelCount)\r\n```\r\n\r\nThis makes it possible to process each channel separately by making it possible to create AnalyzerNodes for each channel and only piping a single channel to each analyzer.\r\n\r\nA [ScriptProcessorNode][createScriptProcessor] is used to go through the audio buffer in chuncks. For each chunk, the FFT data is calculated for each channel and stored in large enough buffers to fit the full data.\r\n\r\nLast [startRendering()][start-rendering] method is called to render out the audio buffer. This is when all of the FFT calculation is done.\r\n\r\n## Showing the data\r\n\r\nEach channel of the audio file is shown in it's own chart inside a single dashboard. When the data is calculated, a dashboard is made. This dashboard is then passed to functions that setup the charts inside the dashboard and create the heatmap series based on the script processor buffer size and fft resolution.\r\n\r\nThe data from the audio APIs is in wrong format to display in the heatmap without editing it. The heatmap data has to be mapped from the one dimensional array it was generated in to a two dimensional array. This mapping in this example is done with `remapDataToTwoDimensionalMatrix` function, this function maps the data in columns. If the heatmap was displayed vertically, then the mapping would be easier as each stride of data could just be placed as a row.\r\n\r\n```js\r\n// Datamapping for vertical spectrogram\r\nconst output = Array.from(Array(tickCount)).map(()=> Array.from(Array(strideSize)))\r\nfor(let row = 0; row < strideSize; row += 1){\r\n output[row] = arr.slice(row*strideSize, row*strideSize + strideSize)\r\n}\r\n```\r\n\r\n[web-audio-api]: https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API\r\n[analyzer-node]: https://developer.mozilla.org/en-US/docs/Web/API/AnalyserNode\r\n[getByteFrequencyData]: https://developer.mozilla.org/en-US/docs/Web/API/AnalyserNode/getByteFrequencyData\r\n[fft]: https://en.wikipedia.org/wiki/Fast_Fourier_transform\r\n[fetch]: https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/fetch\r\n[AudioBuffer]: https://developer.mozilla.org/en-US/docs/Web/API/AudioBuffer\r\n[OfflineAudioContext]: https://developer.mozilla.org/en-US/docs/Web/API/OfflineAudioContext\r\n[createBufferSource]: https://developer.mozilla.org/en-US/docs/Web/API/BaseAudioContext/createBufferSource\r\n[createChannelSplitter]: https://developer.mozilla.org/en-US/docs/Web/API/BaseAudioContext/createChannelSplitter\r\n[createSciptProcessor]: https://developer.mozilla.org/en-US/docs/Web/API/BaseAudioContext/createScriptProcessor\r\n[start-rendering]: https://developer.mozilla.org/en-US/docs/Web/API/OfflineAudioContext/startRendering\r\n","image":"heatmapSpectrogram.png"},{"id":"lcjs-example-0803-scrollingHeatmap","title":"Scrolling Heatmap","tags":["xy","heatmap","intensity","scrolling"],"description":"Example showcasing simple use-case for scrolling Heatmap.","src":"/*\r\n * LightningChartJS example that showcases a simple XY line series.\r\n */\r\n// Import LightningChartJS\r\nconst lcjs = require('@arction/lcjs')\r\n\r\n// Extract required parts from LightningChartJS.\r\nconst {\r\n lightningChart,\r\n PalettedFill,\r\n LUT,\r\n ColorHSV,\r\n Themes\r\n} = lcjs\r\n\r\nconst {\r\n createSpectrumDataGenerator\r\n} = require('@arction/xydata')\r\n\r\n\r\n// Length of single data sample.\r\nconst dataSampleSize = 300\r\n\r\n// Length of data history.\r\nconst dataHistoryLength = 100\r\n\r\n\r\n// Setup PalettedFill for dynamically coloring Heatmap by Intensity values.\r\nconst lut = new LUT( {\r\n steps: [\r\n { value: 0, color: ColorHSV(0, 1, 0) },\r\n { value: 100 * (1 / 6), color: ColorHSV(270, 0.84, 0.2) },\r\n { value: 100 * (2 / 6), color: ColorHSV(289, 0.86, 0.35) },\r\n { value: 100 * (3 / 6), color: ColorHSV(324, 0.97, 0.56) },\r\n { value: 100 * (4 / 6), color: ColorHSV(1, 1, 1) },\r\n { value: 100 * (5 / 6), color: ColorHSV(44, 0.64, 1) }\r\n ],\r\n interpolate: true\r\n} )\r\nconst paletteFill = new PalettedFill( { lut, lookUpProperty: 'y' } )\r\n\r\n\r\n// Create ChartXY.\r\nconst chartXY = lightningChart().ChartXY({\r\n // theme: Themes.dark\r\n})\r\n .setTitle( 'Scrolling Heatmap Spectrogram' )\r\nchartXY.getDefaultAxisX()\r\n .setTitle( 'Time' )\r\n // Set Axis range immediately to prevent initial animation for optimal performance.\r\n .setInterval( 0, dataHistoryLength )\r\nchartXY.getDefaultAxisY()\r\n .setTitle( 'Frequency (Hz)' )\r\n // Set Axis range immediately to prevent initial animation for optimal performance.\r\n .setInterval( 0, dataSampleSize, false, true )\r\n\r\n\r\n// Create Heatmap Series.\r\n// pixelate: true adds one extra col+row to Grid, offset that here.\r\nconst columns = dataHistoryLength - 1\r\nconst rows = dataSampleSize - 1\r\nconst intensityOptions = {\r\n rows,\r\n columns,\r\n start: { x: dataHistoryLength, y: 0 },\r\n end: { x: 0, y: dataSampleSize },\r\n pixelate: true\r\n}\r\nconst heatmapSeries = chartXY.addHeatmapSeries(intensityOptions)\r\n .setFillStyle( paletteFill )\r\n .setMouseInteractions( false )\r\n .setCursorEnabled( false )\r\n\r\n// Stream in continous data.\r\ncreateSpectrumDataGenerator()\r\n .setSampleSize( dataSampleSize )\r\n .setNumberOfSamples( dataHistoryLength )\r\n .generate()\r\n .setStreamRepeat( true )\r\n .setStreamInterval( 1000 / 60 )\r\n .setStreamBatchSize( 1 )\r\n .toStream()\r\n // Scale Intensity values from [0.0, 1.0] to [0.0, 80]\r\n .map( sample => sample.map( intensity => intensity * 80 ) )\r\n // Push Intensity values to Surface Grid as Columns.\r\n .forEach( sample => heatmapSeries.addColumn( 1, 'value', [sample] ) )\r\n","url":null,"readme":"This example shows a simple use-case scenario for a Heatmap, with a toggleable mode for either scrolling or sweeping update of the values.\r\n\r\nWhen adding data to a Heatmap, users can use two different methods. The first ones, *addColumn* and *addRow*, always add data to the end\r\nof the Matrix (horizontally or vertically, respectful of which method is used) and shift the previously added data to accommodate the new data.\r\n\r\n```js\r\n// Add new column to the end of the Matrix. In most cases, this would be the right-most column in the Heatmap.\r\n// Older data gets shifted to the left by one column.\r\ngrid.addColumn(1, 'value', [values])\r\n```\r\n\r\nAdditionally, it is possible to use the *invalidateValuesOnly* method to replace data in the Heatmap. This is useful when creating a *sweeping*\r\nupdate for the Heatmap.\r\n\r\n```js\r\n// Use invalidateValuesOnly to change values in the Matrix with values we want.\r\ngrid.invalidateValuesOnly(\r\n // New data for the Heatmap.\r\n remappedData,\r\n {\r\n // Columns to modify: In this example, we're only changing one column worth of data.\r\n column: { start: ind, end: ind + 1 },\r\n // Rows to modify: In this example, all the rows in a single column need to be changed, so\r\n // we start from the first index and end in the last.\r\n row: { start: 0, end: resolution - 1 }\r\n }\r\n)\r\n```\r\n","image":"ScrollingHeatmap.png"},{"id":"lcjs-example-0804-meshCircle","title":"Mesh Circle","tags":["xy","heatmap","intensity"],"description":"Example shows visualization of intensity in circle-based mesh chart.","src":"/*\r\n * LightningChartJS example for rendering a 'Mesh Circle'.\r\n */\r\n// Import LightningChartJS\r\nconst lcjs = require('@arction/lcjs')\r\n\r\n// Extract required parts from LightningChartJS.\r\nconst {\r\n lightningChart,\r\n IntensitySeriesTypes,\r\n PalettedFill,\r\n LUT,\r\n ColorRGBA,\r\n Themes\r\n} = lcjs\r\n\r\nconst lc = lightningChart()\r\n\r\nconst chart = lc.ChartXY({\r\n // theme: Themes.dark\r\n})\r\n .setTitle('Mesh Circle')\r\n\r\nconst axisX = chart.getDefaultAxisX()\r\n .setInterval(-90, 100, false, true) // interval of X axis \r\nconst axisY = chart.getDefaultAxisY()\r\n .setInterval(-50, 50, false, true) // interval of Y axis \r\n\r\n\r\n// Create LUT and FillStyle\r\nconst lut = new LUT({\r\n steps: [\r\n { value: 0, color: ColorRGBA(0, 0, 0, 0) }, // transparent at value 0\r\n { value: 50, color: ColorRGBA(255, 255, 0) }, // yellow at value 50\r\n { value: 100, color: ColorRGBA(255, 0, 0) } // red at value 100\r\n ],\r\n interpolate: true\r\n})\r\nconst paletteFill = new PalettedFill({ lut, lookUpProperty: 'x' })\r\n\r\n// Specify the resolution used for the mesh.\r\nconst rows = 51\r\nconst columns = rows\r\n\r\nconst intensityOptions = {\r\n rows,\r\n columns,\r\n start: { x: 0, y: 0 },\r\n end: { x: 50, y: 50 },\r\n pixelate: false, \r\n type: IntensitySeriesTypes.Mesh \r\n}\r\n\r\nconst meshCircle = chart.addHeatmapSeries(intensityOptions)\r\n .setFillStyle(paletteFill) // Use created Paletted FillStyle for the Mesh circle.\r\n .setCursorEnabled(false) //disable cursor interaction\r\n .invalidateGeometryOnly((row, column, prev) => {\r\n const angle = row * 2 * Math.PI / (rows - 1.3)\r\n const radius = column\r\n return {\r\n x: Math.sin(angle) * radius,\r\n y: Math.cos(angle) * radius,\r\n }\r\n })\r\n\r\nconst data = (rows, columns) => {\r\n let result = Array.from(Array(columns)).map(() => Array(rows))\r\n for (let row = 0; row < rows; row++) {\r\n for (let col = 0; col < columns; col++) {\r\n\r\n result[col][row] = (100 * Math.cos(col / (0.5 * Math.PI)) + (Math.floor(Math.random() * 10))) // set value for each cell\r\n }\r\n }\r\n return result\r\n}\r\n\r\n// update loop\r\nsetInterval(() => {\r\n meshCircle.invalidateValuesOnly(data(rows, columns))\r\n}, 20);\r\n","url":null,"readme":"This example shows visualization of intensity in circle-based mesh chart\r\n\r\nHeatmaps can be created in XY Charts:\r\n```javascript\r\n// Add meshCircle Series to a XY Chart\r\nchartXY.addHeatmapSeries( {\r\n rows: verticalResolution,\r\n columns: horizontalResolution,\r\n start: { x: 0, y: 0 },\r\n end: { x: 50, y: 50 },\r\n pixelate: false,\r\n // Make sure we're using the Mesh IntensitySeriesType\r\n type: IntensitySeriesTypes.Mesh\r\n})\r\n```\r\n\r\nThe *Mesh IntensitySeriesType* has the same API that is available with the *Grid IntensitySeriesType*, but in addition it has the *invalidateGeometryOnly* method:\r\n\r\n```javascript\r\n// Use invalidateGeometryOnly to edit the geometry of the meshSircle and invalidate it.\r\n// This can be done by supplying a Matrix of Points to the method.\r\nmeshCircle.invalidateGeometryOnly( vertices )\r\n// Optionally, the geometry can be modified by supplying the method with a callback\r\n// which modifies each point.\r\nmeshCircle.invalidateGeometryOnly( (row, column, current) => ({x: row, y: column}) )\r\n\r\n// adding values for mesh is done using invalidateValuesOnly\r\nmeshCircle.invalidateValuesOnly( values )\r\n\r\n// coloring is done using the Palette\r\nconst lut = new LUT({\r\n steps: [\r\n { value: 0, color: ColorRGBA(0, 0, 0, 0) }, // transparent at value 0\r\n { value: 50, color: ColorRGBA(255, 255, 0) }, // yellow at value 50\r\n { value: 100, color: ColorRGBA(255, 0, 0) } // red at value 100\r\n ],\r\n interpolate: true\r\n})\r\nconst paletteFill = new PalettedFill({ lut, lookUpProperty: 'x' })\r\n```\r\n","image":"meshCircle.png"},{"id":"lcjs-example-0900-3dScatter","title":"3D Scatter Chart","tags":["scatter","point","3d"],"description":"Example showcasing the use of 3D point series. Also known as scatter plot.","src":"/*\r\n * LightningChartJS example that showcases PointSeries in a 3D Chart.\r\n */\r\n// Import LightningChartJS\r\nconst lcjs = require('@arction/lcjs')\r\n\r\n// Extract required parts from LightningChartJS.\r\nconst {\r\n lightningChart,\r\n SolidFill,\r\n ColorRGBA,\r\n PointStyle3D,\r\n Themes\r\n} = lcjs\r\n\r\n// Extract required parts from xyData.\r\nconst {\r\n createWaterDropDataGenerator\r\n} = require('@arction/xydata')\r\n\r\n// Initiate chart\r\nconst chart3D = lightningChart().Chart3D({\r\n // theme: Themes.dark\r\n})\r\n .setTitle('3D Scatter Chart')\r\n\r\n// Set Axis titles\r\nchart3D.getDefaultAxisX().setTitle('Axis X')\r\nchart3D.getDefaultAxisY().setTitle('Axis Y')\r\nchart3D.getDefaultAxisZ().setTitle('Axis Z')\r\n\r\n// Create Point Series for rendering max Y coords.\r\nconst pointSeriesMaxCoords = chart3D.addPointSeries()\r\n .setPointStyle(new PointStyle3D.Triangulated({\r\n fillStyle: new SolidFill({ color: ColorRGBA(224, 152, 0) }),\r\n size: 10,\r\n shape: 'sphere'\r\n }))\r\n\r\n// Create another Point Series for rendering other Y coords than Max.\r\nconst pointSeriesOtherCoords = chart3D.addPointSeries()\r\n .setPointStyle(new PointStyle3D.Triangulated({\r\n fillStyle: new SolidFill({ color: ColorRGBA(255, 0, 0) }),\r\n size: 5,\r\n shape: 'cube'\r\n }))\r\n\r\n\r\n// Generate heatmap data for depicting amount of scattered points along the XZ plane.\r\nlet totalPointsAmount = 0\r\nconst rows = 40\r\nconst columns = 60\r\ncreateWaterDropDataGenerator()\r\n .setRows( rows )\r\n .setColumns( columns )\r\n .generate()\r\n .then( data => {\r\n // 'data' is a number Matrix number[][], that can be read as data[row][column].\r\n for ( let row = 0; row < rows; row ++ ) {\r\n for ( let column = 0; column < columns; column ++ ) {\r\n const value = data[row][column]\r\n // Generate 'value' amount of points along this XZ coordinate,\r\n // with the Y coordinate range based on 'value'.\r\n const pointsAmount = Math.ceil( value / 100 )\r\n const yMin = 0\r\n const yMax = value\r\n for ( let iPoint = 0; iPoint < pointsAmount; iPoint ++ ) {\r\n const y = yMin + Math.random() * (yMax - yMin)\r\n pointSeriesOtherCoords.add({ x: row, z: column, y })\r\n totalPointsAmount ++\r\n }\r\n pointSeriesMaxCoords.add({ x: row, z: column, y: yMax })\r\n totalPointsAmount ++\r\n }\r\n }\r\n\r\n chart3D.setTitle(chart3D.getTitle() + ` (${totalPointsAmount} data points)`)\r\n // Set explicit Y Axis interval.\r\n chart3D.getDefaultAxisY().setInterval(0, 150, 2000, true)\r\n })\r\n\r\n","url":null,"readme":"*Also known as a Scatter Graph, Scatter Series, Point Graph, Scatter diagram or Scattergram*\r\n\r\nThis example shows a simple 3D Point Graph with points drawn using 3D PointSeries for a visual representation of the data points 'markers'. The point graph is a type of chart or mathematical diagram drawn on a Cartesian coordinate system and represents the relationship between two variables.\r\n\r\nThis type of series does not contain the visual representation of lines for the connection of data points but only data 'markers'.\r\n\r\nThe chart can be created with few simple lines of code:\r\n\r\n```javascript\r\n// Create a new ChartXY.\r\nconst chart3D = lightningChart().Chart3D()\r\n