├── .gitignore
├── demo.png
├── .npmignore
├── screenshots
├── legend_arc.png
├── legend_heat.png
└── legend_simple.png
├── rollup.config.js
├── src
├── index.js
├── scale.js
├── continuous.js
├── heatmap.js
├── quantization.js
└── legend.js
├── .eslintrc
├── .github
└── workflows
│ └── test.yml
├── test
├── continuous.html
├── heatmap.html
├── legend.html
└── test.html
├── LICENSE
├── package.json
├── examples
├── polling.csv
├── flights.html
├── virology.html
├── polling.html
├── flights.csv
└── viral_binned.csv
├── README.md
└── yarn.lock
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | node_modules
3 | dist
4 |
--------------------------------------------------------------------------------
/demo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/uwdata/vsup/master/demo.png
--------------------------------------------------------------------------------
/.npmignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | examples
3 | test
4 | .gitignore
5 | .travis.yml
6 |
--------------------------------------------------------------------------------
/screenshots/legend_arc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/uwdata/vsup/master/screenshots/legend_arc.png
--------------------------------------------------------------------------------
/screenshots/legend_heat.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/uwdata/vsup/master/screenshots/legend_heat.png
--------------------------------------------------------------------------------
/screenshots/legend_simple.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/uwdata/vsup/master/screenshots/legend_simple.png
--------------------------------------------------------------------------------
/rollup.config.js:
--------------------------------------------------------------------------------
1 | import resolve from "@rollup/plugin-node-resolve";
2 |
3 | export default {
4 | input: "src/index.js",
5 | output: {
6 | file: "dist/vsup.js",
7 | format: "umd",
8 | name: "vsup",
9 | },
10 | plugins: [resolve()],
11 | };
12 |
--------------------------------------------------------------------------------
/src/index.js:
--------------------------------------------------------------------------------
1 | export { simpleHeatmap as heatmap, simpleArcmap as arcmap } from "./heatmap";
2 | export {
3 | treeQuantization as quantization,
4 | squareQuantization,
5 | linearQuantization,
6 | } from "./quantization";
7 | export { simpleScale as scale } from "./scale";
8 | export {
9 | continuousSquare as csquare,
10 | continuousArc as carc,
11 | continuousLine as cline,
12 | } from "./continuous";
13 | import * as legend_ from "./legend";
14 | export const legend = legend_;
15 |
--------------------------------------------------------------------------------
/.eslintrc:
--------------------------------------------------------------------------------
1 | parserOptions:
2 | sourceType: "module"
3 | ecmaVersion: 2015
4 |
5 | env:
6 | browser: true
7 | node: true
8 |
9 | extends:
10 | - "eslint:recommended"
11 | - "prettier"
12 |
13 | plugins:
14 | - prettier
15 |
16 | rules:
17 | "prettier/prettier": "error"
18 | no-cond-assign: 0
19 | no-fallthrough: ["error", { "commentPattern": "break omitted" }]
20 | quotes: ["error", "double"]
21 | comma-spacing: ["error", { "before": false, "after": true }]
22 | keyword-spacing: "error"
23 | space-infix-ops: 2
24 |
--------------------------------------------------------------------------------
/.github/workflows/test.yml:
--------------------------------------------------------------------------------
1 | name: Node
2 |
3 | on:
4 | push:
5 | branches: [ master ]
6 | pull_request:
7 | branches: [ master ]
8 |
9 | jobs:
10 | build:
11 | runs-on: ubuntu-latest
12 |
13 | strategy:
14 | matrix:
15 | node-version: [10.x, 12.x, 14.x]
16 |
17 | steps:
18 | - uses: actions/checkout@v2
19 | - name: Use Node.js ${{ matrix.node-version }}
20 | uses: actions/setup-node@v1
21 | with:
22 | node-version: ${{ matrix.node-version }}
23 | - run: yarn
24 | - run: yarn build
25 | - run: yarn lint
26 |
--------------------------------------------------------------------------------
/test/continuous.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Continuous Heatmap test
5 |
6 |
7 |
12 |
13 |
14 |
15 |
16 |
17 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/test/heatmap.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Heatmap test
5 |
6 |
7 |
12 |
13 |
14 |
15 |
16 |
17 |
38 |
39 |
40 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2018 UW Interactive Data Lab
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "vsup",
3 | "version": "1.1.0",
4 | "description": "Value-Suppressing Uncertainty Palettes. A technique for creating bivariate scales for depicting uncertainty, using D3.",
5 | "main": "dist/vsup.js",
6 | "unpkg": "dist/vsup.min.js",
7 | "jsdelivr": "dist/vsup.min.js",
8 | "module": "src/index",
9 | "scripts": {
10 | "prepublish": "npm run build",
11 | "build": "rollup -c && terser dist/vsup.js -m -o dist/vsup.min.js",
12 | "watch": "rollup -c -w",
13 | "start": "python -m http.server",
14 | "lint": "eslint src",
15 | "lint:fix": "eslint src --fix"
16 | },
17 | "dependencies": {
18 | "d3": "^6.3.1"
19 | },
20 | "devDependencies": {
21 | "@rollup/plugin-node-resolve": "^11.0.1",
22 | "eslint": "^7.17.0",
23 | "eslint-config-prettier": "^7.1.0",
24 | "eslint-plugin-prettier": "^3.3.0",
25 | "prettier": "^2.2.1",
26 | "rollup": "^2.35.1",
27 | "terser": "^5.5.1"
28 | },
29 | "repository": {
30 | "type": "git",
31 | "url": "git+https://github.com/uwdata/vsup.git"
32 | },
33 | "keywords": [
34 | "d3",
35 | "bivariate",
36 | "visualization",
37 | "uncertainty"
38 | ],
39 | "author": "Michael Correll, Dominik Moritz, and Jeffrey Heer",
40 | "license": "MIT"
41 | }
42 |
--------------------------------------------------------------------------------
/test/legend.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Legend test
5 |
6 |
7 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
65 |
66 |
67 |
--------------------------------------------------------------------------------
/examples/polling.csv:
--------------------------------------------------------------------------------
1 | State,Date,Hillary Clinton,Donald Trump,Gary Johnson,Jill Stein,Evan McMullin,Margin of error,Lead,Clinton potential EVs,Trump potential EVs,Tied potential EVs,Result
2 | Alabama,"September 27, 2016",32%,48%,,,,2.0%,16,,9,,25.8
3 | Alaska,"October 21–26, 2016",47%,43%,7%,3%,,4.9%,4,,,3,14.7
4 | Arizona,"November 4–6, 2016",45%,47%,5%,2%,,4.9%,2,,,11,3.5
5 | Arkansas,"October 18–25, 2016",36%,59%,,,,4.1%,23,,6,,26.9
6 | California,"November 4–6, 2016",58%,35%,3%,2%,,4.9%,28,55,,,30.1
7 | Colorado,"November 3–4, 2016",48%,43%,4%,2%,1%,3.7%,5,,,9,4.9
8 | Connecticut,"September 2–5, 2016",50%,35%,9%,4%,,3.0%,15,7,,,13.6
9 | Delaware,"September 16–28, 2016",51%,30%,7%,2%,,4.1%,21,3,,,11.4
10 | Florida,"November 6, 2016",46%,50%,2%,1%,,3.3%,4,,,29,1.2
11 | Georgia,"November 6, 2016",45%,52%,2%,,,2.8%,7,,16,,5.1
12 | Hawaii,"September 6, 2016",51%,25%,7%,7%,,4%,26,,,,
13 | Idaho,"October 23–24, 2016",29%,48%,6%,,10%,4.0%,19,,4,,31.8
14 | Illinois,"October 27–30, 2016",53%,41%,2%,0%,,4.3%,12,20,,,17.1
15 | Indiana,"November 1–3, 2016",37%,48%,9%,,,4.0%,11,,11,,18.9
16 | Iowa,"November 1–4, 2016",39%,46%,6%,1%,,3.5%,7,,,6,9.4
17 | Kansas,"November 1–3, 2016",34%,58%,,,,5.5%,24,,6,,20.6
18 | Kentucky,"October 25–30, 2016",37%,54%,1%,1%,1%,4.0%,17,,8,,29.8
19 | Louisiana,"October 19–21, 2016",35%,50%,5%,,,4.4%,15,,8,,19.6
20 | Maine,"October 28–30, 2016",46%,42%,12%,2%,,3.5%,4,1,,3,3
21 | Maryland,"September 27–30, 2016",63%,27%,4%,2%,,4.0%,36,10,,,26.4
22 | Massachusetts,"October 23 – November 2, 2016",56%,26%,8%,3%,,5.0%,30,11,,,27.2
23 | Michigan,"November 6, 2016",47%,49%,3%,1%,,2.8%,2,,,16,0.2
24 | Minnesota,"October 22–26, 2016",49%,39%,5%,2%,1%,3.9%,10,10,,,1.5
25 | Missouri,"November 4–5, 2016",41%,47%,7%,2%,,3.5%,6,,,10,18.6
26 | Mississippi,"August 17, 2016",39%,54%,3%,,,2.9%,15,,,,
27 | Montana,"October 10–12, 2016",36%,46%,11%,,,3.2%,10,,3,,20.4
28 | Nebraska,"September 25–27, 2016",29%,56%,7%,1%,,3.6%,27,,4,1,25
29 | Nevada,"November 4–6, 2016",46%,46%,5%,1%,,4.9%,Tied,,,6,2.4
30 | New Hampshire,"November 3–6, 2016",49%,38%,6%,1%,,3.7%,11,4,,,0.4
31 | New Jersey,"October 27 – November 2, 2016",51%,40%,3%,1%,,3.8%,11,14,,,14.2
32 | New Mexico,"November 6, 2016",46%,44%,6%,1%,,1.8%,2,,,5,8.2
33 | New York,"November 3–4, 2016",51%,34%,5%,2%,,4.5%,17,29,,,22.5
34 | North Carolina,"November 4–6, 2016",44%,44%,3%,,,3.5%,Tied,,,15,3.6
35 | North Dakota,"September 12–17, 2016",32%,43%,8%,1%,,4.9%,11,,3,,35.7
36 | Ohio,"October 27 – November 5, 2016",39%,46%,7%,3%,,3.2%,7,,18,,8.1
37 | Oklahoma,"October 18–20, 2016",30%,60%,5%,,,4.3%,30,,7,,36.4
38 | Oregon,"October 24–29, 2016",41%,34%,4%,2%,,4.4%,7,,,7,11
39 | Pennsylvania,"November 3–6, 2016",46%,40%,7%,2%,,2.8%,6,20,,,0.7
40 | Rhode Island,"October 2–4, 2016",52%,32%,5%,5%,,3.4%,20,4,,,18.5
41 | South Carolina,"October 30–31, 2016",36%,47%,3%,1%,,4.4%,11,,9,,14.7
42 | South Dakota,"October 24–26, 2016",35%,49%,7%,,,4.0%,14,,3,,29.8
43 | Tennessee,"October 14–17, 2016",34%,44%,7%,2%,,4.4%,10,,11,,26
44 | Texas,"October 31 – November 1, 2016",35%,49%,5%,4%,,3.6%,14,,38,,9
45 | Utah,"November 3–5, 2016",30%,40%,4%,,25%,2.7%,10,,6,,18.1
46 | Vermont,"October 24–26, 2016",52%,26%,5%,2%,,3.0%,26,3,,,26.4
47 | Virginia,"November 1–6, 2016",48%,42%,3%,1%,2%,3.6%,6,,,13,5.3
48 | Washington,"November 4–6, 2016",55%,39%,,,,4.9%,16,12,,,16.2
49 | West Virginia,"September 13–17, 2016",28%,60%,,,,5.0%,32,,5,,42.2
50 | Wisconsin,"November 1–2, 2016",49%,41%,3%,,,1.9%,8,10,,,0.8
51 | Wyoming,"October 5–11, 2016",20%,58%,9%,2%,,3.6%,38,,3,,46.3
52 |
--------------------------------------------------------------------------------
/src/scale.js:
--------------------------------------------------------------------------------
1 | import * as d3 from "d3";
2 |
3 | // Returns a color, based on a bivariate data point,
4 | // a quantization function, and a color interpolator
5 | // can be extended to different modes (just saturation, say)
6 | export function simpleScale(m_mode, m_range, m_quantization) {
7 | let range = m_range || d3.interpolateViridis;
8 |
9 | let quantization =
10 | m_quantization ||
11 | function (v, u) {
12 | const data = u != undefined ? { v: v, u: u } : { v: v.v, u: v.u };
13 | return data;
14 | };
15 |
16 | let mode = m_mode;
17 |
18 | function CIEDist(color1, color2) {
19 | const c1 = d3.lab(d3.color(color1));
20 | const c2 = d3.lab(d3.color(color2));
21 | return Math.sqrt(
22 | Math.pow(c1.l - c2.l, 2) +
23 | Math.pow(c1.a - c2.a, 2) +
24 | Math.pow(c1.b - c2.b, 2)
25 | );
26 | }
27 |
28 | function map(value, uncertainty) {
29 | const data = quantization(value, uncertainty);
30 |
31 | let uDom = [0, 1];
32 | let vDom = [0, 1];
33 |
34 | if (quantization.uncertaintyDomain) {
35 | uDom = quantization.uncertaintyDomain();
36 | }
37 | if (quantization.valueDomain) {
38 | vDom = quantization.valueDomain();
39 | }
40 |
41 | const uScale = d3.scaleLinear().domain(uDom).range([0, 1]);
42 | const vScale = d3.scaleLinear().domain(vDom).range([0, 1]);
43 |
44 | let vcolor = range(vScale(data.v));
45 |
46 | switch (mode) {
47 | case "usl":
48 | default:
49 | vcolor = d3.interpolateLab(vcolor, "#fff")(uScale(data.u));
50 | break;
51 | case "us": {
52 | vcolor = d3.hsl(vcolor);
53 | const sScale = d3.scaleLinear().domain([0, 1]).range([vcolor.s, 0]);
54 | vcolor.s = sScale(uScale(data.u));
55 | break;
56 | }
57 | case "ul": {
58 | vcolor = d3.hsl(vcolor);
59 | const lScale = d3.scaleLinear().domain([0, 1]).range([vcolor.l, 1]);
60 | vcolor.l = lScale(uScale(data.u));
61 | break;
62 | }
63 | }
64 | return vcolor;
65 | }
66 |
67 | map.colorList = function () {
68 | return this.quantize()
69 | .range()
70 | .map((d) => map(d));
71 | };
72 |
73 | map.colorDists = function () {
74 | const clist = this.colorList();
75 | const matrix = new Array(clist.length);
76 | let minDist;
77 | let minPair = new Array(2);
78 | let dist;
79 |
80 | for (let i = 0; i < matrix.length; i++) {
81 | matrix[i] = new Array(clist.length);
82 | for (let j = 0; j < matrix[i].length; j++) {
83 | dist = CIEDist(clist[i], clist[j]);
84 | matrix[i][j] = dist;
85 | if (i != j && ((i == 0 && j == 1) || dist < minDist)) {
86 | minDist = dist;
87 | minPair = [clist[i], clist[j]];
88 | }
89 | }
90 | }
91 |
92 | matrix.minDist = minDist;
93 | matrix.minPair = minPair;
94 | return matrix;
95 | };
96 |
97 | map.mode = function (newMode) {
98 | if (!arguments.length) {
99 | return mode;
100 | } else {
101 | mode = newMode;
102 | return map;
103 | }
104 | };
105 |
106 | map.range = function (newRange) {
107 | if (!arguments.length) {
108 | return range;
109 | } else {
110 | range = newRange;
111 | return map;
112 | }
113 | };
114 |
115 | map.quantize = function (newQuantization) {
116 | if (!arguments.length) {
117 | return quantization;
118 | } else {
119 | quantization = newQuantization;
120 | return map;
121 | }
122 | };
123 |
124 | return map;
125 | }
126 |
--------------------------------------------------------------------------------
/examples/flights.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Flight example
5 |
6 |
7 |
12 |
13 |
14 |
15 |
16 |
101 |
102 |
103 |
--------------------------------------------------------------------------------
/examples/virology.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Virology example
5 |
6 |
7 |
12 |
13 |
14 |
15 |
16 |
108 |
109 |
110 |
--------------------------------------------------------------------------------
/examples/polling.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Polling example
5 |
6 |
7 |
12 |
13 |
14 |
15 |
16 |
17 |
109 |
110 |
111 |
--------------------------------------------------------------------------------
/src/continuous.js:
--------------------------------------------------------------------------------
1 | import * as d3 from "d3";
2 |
3 | export function continuousSquare(m_size, m_scale, m_id) {
4 | let el = null;
5 | let size = m_size;
6 | let id = m_id;
7 | let scale = m_scale;
8 | let context;
9 | let canvas;
10 |
11 | function square(nel) {
12 | el = nel;
13 | square.make();
14 | }
15 |
16 | square.makePixelData = function () {
17 | const pixelData = [];
18 | let c;
19 | for (let i = 0; i < size; i++) {
20 | for (let j = 0; j < size; j++) {
21 | c = scale(j / size);
22 | c = d3.interpolateLab(c, d3.color("#ddd"))(i / size);
23 | //r,g,b,a
24 | c = d3.color(c);
25 | pixelData.push(c.r);
26 | pixelData.push(c.g);
27 | pixelData.push(c.b);
28 | pixelData.push(255);
29 | }
30 | }
31 | return pixelData;
32 | };
33 |
34 | square.make = function () {
35 | if (!el) {
36 | return;
37 | }
38 |
39 | if (!canvas) {
40 | canvas = el.append("canvas");
41 | }
42 |
43 | canvas.attr("width", size).attr("height", size);
44 |
45 | if (id) {
46 | canvas.attr("id", id);
47 | }
48 |
49 | const cnode = canvas.node();
50 | context = cnode.getContext("2d");
51 |
52 | square.setPixels();
53 | };
54 |
55 | square.setPixels = function () {
56 | const img = context.createImageData(size, size);
57 | img.data.set(square.makePixelData());
58 | context.putImageData(img, 0, 0);
59 | };
60 |
61 | square.size = function (newSize) {
62 | if (!arguments.length) {
63 | return size;
64 | } else {
65 | size = newSize;
66 | if (canvas) {
67 | canvas.attr("width", size).attr("height", size);
68 |
69 | square.setPixels();
70 | }
71 | return square;
72 | }
73 | };
74 |
75 | square.scale = function (newScale) {
76 | if (!arguments.length) {
77 | return scale;
78 | } else {
79 | scale = newScale;
80 | if (canvas) {
81 | square.setPixels();
82 | } else {
83 | square.make();
84 | }
85 | return square;
86 | }
87 | };
88 |
89 | square.id = function (newId) {
90 | if (!arguments.length) {
91 | return id;
92 | } else {
93 | id = newId;
94 | if (canvas) {
95 | canvas.attr("id", id);
96 | }
97 | return square;
98 | }
99 | };
100 |
101 | return square;
102 | }
103 |
104 | export function continuousArc(m_size, m_scale) {
105 | const arc = continuousSquare(m_size, m_scale);
106 |
107 | arc.makePixelData = function () {
108 | const pixelData = [];
109 | let c;
110 | let x;
111 | let y;
112 | let theta;
113 | let r;
114 | const angle = d3
115 | .scaleLinear()
116 | .domain([-Math.PI / 6, Math.PI / 6])
117 | .range([1, 0]);
118 | var size = arc.size();
119 |
120 | for (let i = 0; i < size; i++) {
121 | for (let j = 0; j < size; j++) {
122 | x = j / size - 0.5;
123 | y = 1 - i / size;
124 | r = Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2));
125 | theta = Math.atan2(y, x) - Math.PI / 2;
126 |
127 | if (theta > -Math.PI / 6 && theta < Math.PI / 6 && r > 0 && r < 1) {
128 | c = arc.scale()(angle(theta));
129 | c = d3.interpolateLab(c, d3.color("#ddd"))(1 - r);
130 | c = d3.color(c);
131 | } else {
132 | c = d3.color("white");
133 | c.opacity = 0;
134 | }
135 |
136 | pixelData.push(c.r);
137 | pixelData.push(c.g);
138 | pixelData.push(c.b);
139 | pixelData.push(255 * c.opacity);
140 | }
141 | }
142 | return pixelData;
143 | };
144 |
145 | return arc;
146 | }
147 |
148 | export function continuousLine(m_length, m_width, m_scale) {
149 | const line = continuousSquare(m_length, m_scale);
150 | const width = m_width;
151 | const length = m_length;
152 |
153 | line.makePixelData = function () {
154 | const pixelData = [];
155 | let c;
156 | for (let i = 0; i < length; i++) {
157 | for (let j = 0; j < length; j++) {
158 | if (i < width) {
159 | c = line.scale()(j / length);
160 | c = d3.color(c);
161 | pixelData.push(c.r);
162 | pixelData.push(c.g);
163 | pixelData.push(c.b);
164 | pixelData.push(255);
165 | } else {
166 | pixelData.push(255);
167 | pixelData.push(255);
168 | pixelData.push(255);
169 | pixelData.push(0);
170 | }
171 | }
172 | }
173 | return pixelData;
174 | };
175 |
176 | return line;
177 | }
178 |
--------------------------------------------------------------------------------
/test/test.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Full test
5 |
6 |
7 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
110 |
111 |
112 |
--------------------------------------------------------------------------------
/src/heatmap.js:
--------------------------------------------------------------------------------
1 | /*
2 | A lightweight factory for making d3 heatmaps.
3 | */
4 | import * as d3 from "d3";
5 |
6 | export function simpleHeatmap(data, m_scale, m_size, m_id, m_x, m_y) {
7 | let x = m_x ? m_x : 0;
8 | let y = m_y ? m_y : 0;
9 | let size = m_size ? m_size : 0;
10 | let scale = m_scale ? m_scale : () => "#fff";
11 | let id = m_id;
12 | let h;
13 |
14 | function heatmap(nel) {
15 | heatmap.el = nel;
16 | heatmap.setProperties();
17 | }
18 |
19 | heatmap.setProperties = function () {
20 | if (!this.el) {
21 | return;
22 | }
23 |
24 | if (!heatmap.svgGroup) {
25 | heatmap.svgGroup = heatmap.el.append("g");
26 | }
27 |
28 | heatmap.svgGroup.attr("transform", `translate(${x},${y})`);
29 |
30 | heatmap.svgGroup
31 | .selectAll("g")
32 | .data(data)
33 | .enter()
34 | .append("g")
35 | .selectAll("rect")
36 | .data((d, i) =>
37 | d.map((val) => ({
38 | r: i,
39 | v: val,
40 | }))
41 | )
42 | .enter()
43 | .append("rect")
44 | .datum(function (d, i) {
45 | d.c = i;
46 | return d;
47 | });
48 |
49 | heatmap.svgGroup
50 | .selectAll("g")
51 | .selectAll("rect")
52 | .attr("x", (d) => (size / data[d.r].length) * d.c)
53 | .attr("y", (d) => d.r * h)
54 | .attr("width", (d) => size / data[d.r].length)
55 | .attr("height", h)
56 | .attr("fill", (d) => scale(d.v));
57 |
58 | if (id) {
59 | heatmap.svgGroup.attr("id", id);
60 | }
61 | };
62 |
63 | heatmap.data = function (newData) {
64 | if (!arguments.length) {
65 | return data;
66 | } else {
67 | data = newData;
68 | h = size / data.length;
69 | heatmap.setProperties();
70 | return heatmap;
71 | }
72 | };
73 |
74 | heatmap.x = function (newX) {
75 | if (!arguments.length) {
76 | return x;
77 | } else {
78 | x = newX;
79 | heatmap.setProperties();
80 | return heatmap;
81 | }
82 | };
83 |
84 | heatmap.y = function (newY) {
85 | if (!arguments.length) {
86 | return y;
87 | } else {
88 | y = newY;
89 | heatmap.setProperties();
90 | return heatmap;
91 | }
92 | };
93 |
94 | heatmap.size = function (newSize) {
95 | if (!arguments.length) {
96 | return size;
97 | } else {
98 | size = newSize;
99 | if (data) {
100 | h = size / data.length;
101 | heatmap.setProperties();
102 | }
103 | return heatmap;
104 | }
105 | };
106 |
107 | heatmap.scale = function (newScale) {
108 | if (!arguments.length) {
109 | return scale;
110 | } else {
111 | scale = newScale;
112 | if (data) {
113 | heatmap.setProperties();
114 | }
115 | return heatmap;
116 | }
117 | };
118 |
119 | heatmap.id = function (newId) {
120 | if (!arguments.length) {
121 | return id;
122 | } else {
123 | id = newId;
124 | heatmap.setProperties();
125 | return heatmap;
126 | }
127 | };
128 |
129 | return heatmap;
130 | }
131 |
132 | export function simpleArcmap(data, m_scale, m_size, m_id, m_x, m_y) {
133 | const arcmap = simpleHeatmap(data, m_scale, m_size, m_id, m_x, m_y);
134 |
135 | function makeArc(d, size, rows, cols) {
136 | const angle = d3
137 | .scaleLinear()
138 | .domain([0, cols])
139 | .range([-Math.PI / 6, Math.PI / 6]);
140 | const radius = d3.scaleLinear().domain([0, rows]).range([size, 0]);
141 |
142 | const arcPath = d3
143 | .arc()
144 | .innerRadius(radius(d.r + 1))
145 | .outerRadius(radius(d.r))
146 | .startAngle(angle(d.c))
147 | .endAngle(angle(d.c + 1));
148 |
149 | return arcPath();
150 | }
151 |
152 | arcmap.setProperties = function () {
153 | var data = arcmap.data();
154 | var size = arcmap.size();
155 | var scale = arcmap.scale();
156 | var id = arcmap.id();
157 | var x = arcmap.x();
158 | var y = arcmap.y();
159 |
160 | if (!arcmap.el) {
161 | return;
162 | }
163 |
164 | if (!arcmap.svgGroup) {
165 | arcmap.svgGroup = arcmap.el.append("g");
166 | }
167 |
168 | arcmap.svgGroup.attr("transform", `translate(${x},${y})`);
169 |
170 | arcmap.svgGroup
171 | .selectAll("g")
172 | .data(data)
173 | .enter()
174 | .append("g")
175 | .selectAll("path")
176 | .data((d, i) =>
177 | d.map((val) => ({
178 | r: i,
179 | v: val,
180 | }))
181 | )
182 | .enter()
183 | .append("path")
184 | .datum(function (d, i) {
185 | d.c = i;
186 | return d;
187 | });
188 |
189 | arcmap.svgGroup
190 | .selectAll("g")
191 | .selectAll("path")
192 | .attr("transform", `translate(${size / 2.0},${size})`)
193 | .attr("d", (d) => makeArc(d, size, data.length, data[d.r].length))
194 | .attr("fill", (d) => scale(d.v));
195 |
196 | if (id) {
197 | arcmap.svgGroup.attr("id", id);
198 | }
199 | };
200 |
201 | return arcmap;
202 | }
203 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Value-Suppressing Uncertainty Palettes (VSUPs)
2 |
3 | [](https://www.npmjs.com/package/vsup)
4 | 
5 |
6 |
7 |
8 |
9 |
10 | Code for generating Value-Suppressing Uncertainty Palettes for use in D3 charts. Read more about VSUPs in our [introductory blog post](https://medium.com/@uwdata/value-suppressing-uncertainty-palettes-426130122ce9) and our [research paper](http://idl.cs.washington.edu/papers/uncertainty-palettes).
11 |
12 | ## Examples
13 |
14 | These examples are served from the [`examples`](https://github.com/uwdata/vsup/tree/master/examples) directory.
15 |
16 | * [Flights](https://uwdata.github.io/vsup/examples/flights.html)
17 | * [Polling](https://uwdata.github.io/vsup/examples/polling.html)
18 | * [Virology](https://uwdata.github.io/vsup/examples/virology.html)
19 |
20 | ## Citation
21 |
22 | If you use this module for a publication, please cite VSUPs as:
23 |
24 | ```bib
25 | @inproceedings{2018-uncertainty-palettes,
26 | title = {Value-Suppressing Uncertainty Palettes},
27 | author = {Michael Correll AND Dominik Moritz AND Jeffrey Heer},
28 | booktitle = {ACM Human Factors in Computing Systems (CHI)},
29 | year = {2018},
30 | url = {http://idl.cs.washington.edu/papers/uncertainty-palettes},
31 | }
32 | ```
33 |
34 | ## Installation
35 |
36 | `yarn add vsup` or include the library directly from [jsdelivr](https://www.jsdelivr.com/package/npm/vsup) as [`https://cdn.jsdelivr.net/npm/vsup`](https://cdn.jsdelivr.net/npm/vsup).
37 |
38 | ```html
39 |
40 | ```
41 |
42 | ## Usage
43 |
44 | ### Quantization [<>](https://github.com/uwdata/vsup/blob/master/src/quantization.js)
45 |
46 | A quantization defines how values or objects of the form `{u: number, v: number}` (uncertainty and value) are quantized. They are used instead of a domain in VSUP scales.
47 |
48 | This module supports three different quantizations: `linearQuantization`, `squareQuantization`, and `quantization`.
49 |
50 | #### `vsup.linearQuantization`
51 |
52 | This is a wrapper around [`d3.scaleQuantize`](https://github.com/d3/d3-scale#quantize-scales).
53 |
54 | #### `vsup.squareQuantization`
55 |
56 | Defines a quantization into a rectangular matrix of value and uncertainty.
57 |
58 | The constructor takes a single argument `n`, the number of rows and columns.
59 |
60 | ```js
61 | var q = vsup.squareQuantization(3);
62 | ```
63 |
64 | `q` is then a function that can be used to discretize uncertainties and values.
65 |
66 | ```js
67 | > q(0.2,0.1);
68 | {u: 0, v: 0.16666666666666666}
69 | ```
70 |
71 | The quantization has the following methods:
72 |
73 | * `range`
74 | * `n`
75 | * `matrix`
76 | * `data`
77 | * `uncertaintyDomain`
78 | * `valueDomain`
79 |
80 | #### `vsup.quantization`
81 |
82 | Similar to `squareQuantization` but creates a tree quantization. The constructor takes two arguments `branchingFactor` and `treeLayers`.
83 |
84 | The quantization has the following methods:
85 |
86 | * `range`
87 | * `branching`
88 | * `layers`
89 | * `tree`
90 | * `data`
91 | * `uncertaintyDomain`
92 | * `valueDomain`
93 |
94 | ### Scales [<>](https://github.com/uwdata/vsup/blob/master/src/scale.js)
95 |
96 | The interface to create a scale mirrors [scales in D3](https://github.com/d3/d3-scale). The difference of VSUP scales is that they use a quantization instead of a domain. The range can be set to any color range.
97 |
98 | The constructor takes three optional arguments: mode (`usl`, `us`, `ul`), range, and quantization. It returns a function that takes two arguments `value` and `uncertainty`.
99 |
100 | For example
101 |
102 | ```js
103 | var s = vsup.scale();
104 | ```
105 |
106 | `s` is now a function that takes two arguments
107 |
108 | ```js
109 | > s(0.8, 0.1);
110 | "rgb(137, 214, 99)"
111 | ```
112 |
113 | The scale has the following methods:
114 |
115 | * `range` to get or set the color range (e.g. `d3.interpolateViridis`)
116 | * `colorList`
117 | * `colorDists`
118 | * `mode`
119 | * `quantize`
120 |
121 | ### Legends [<>](https://github.com/uwdata/vsup/blob/master/src/legend.js)
122 |
123 | This module implements three kinds of legends (`simpleLegend`, `heatmapLegend`, and `arcmapLegend`) corresponding to the three quantization types.
124 |
125 | To add a legend to the DOM, create a legend and attach it to an element. For example:
126 |
127 | ```js
128 | var legend = vsup.legend().arcmapLegend();
129 | svg.append("g").call(legend)
130 | ```
131 |
132 | You can find example code in [`test/legend.html`](https://github.com/uwdata/vsup/blob/master/test/legend.html).
133 |
134 | #### `vsup.legend.simpleLegend`
135 |
136 | A simple legend for linear quantizations.
137 |
138 | 
139 |
140 | #### `vsup.legend.heatmapLegend`
141 |
142 | A rectangular legend for tree quantization or square quantization.
143 |
144 | 
145 |
146 | #### `vsup.legend.arcmapLegend`
147 |
148 | A legend for a tree quantization.
149 |
150 | 
151 |
152 |
153 | ## Developers
154 |
155 | ### Make a new release
156 |
157 | * Test the examples in `test`
158 | * `yarn version`
159 | * `npm publish`
160 | * `git push --tags`
161 |
--------------------------------------------------------------------------------
/src/quantization.js:
--------------------------------------------------------------------------------
1 | import * as d3 from "d3";
2 |
3 | const epsilon = 1e-9;
4 |
5 | export function linearQuantization(m_n, m_range) {
6 | let n = m_n;
7 | const range = m_range;
8 | let scale = makeScale();
9 |
10 | function makeScale() {
11 | return d3.scaleQuantize().range(d3.quantize(range, n));
12 | }
13 |
14 | function quantization(value) {
15 | return scale(value);
16 | }
17 |
18 | quantization.range = () => scale.range();
19 |
20 | quantization.n = function (newN) {
21 | if (!arguments.length) {
22 | return n;
23 | } else {
24 | n = newN;
25 | scale = makeScale();
26 | return quantization;
27 | }
28 | };
29 |
30 | return quantization;
31 | }
32 |
33 | export function squareQuantization(m_n) {
34 | let n = m_n;
35 | const uscale = d3.scaleLinear();
36 | const vscale = d3.scaleLinear();
37 | let matrix = makeMatrix();
38 |
39 | function quantization(value, uncertainty) {
40 | var u = uncertainty != undefined ? uncertainty : value.u;
41 | var v = uncertainty != undefined ? value : value.v;
42 | let i = 0;
43 |
44 | // find the right layer of the tree, based on uncertainty
45 | while (i < matrix.length - 1 && uscale(u) < 1 - (i + 1) / n) {
46 | i++;
47 | }
48 |
49 | // find right leaf of tree, based on value
50 | const vgap =
51 | matrix[i].length > 1 ? (matrix[i][1].v - matrix[i][0].v) / 2 : 0;
52 |
53 | let j = 0;
54 |
55 | while (j < matrix[i].length - 1 && v > matrix[i][j].v + vgap) {
56 | j++;
57 | }
58 |
59 | return matrix[i][j];
60 | }
61 |
62 | function makeMatrix() {
63 | const matrix = [];
64 |
65 | uscale.nice(n);
66 | vscale.nice(n);
67 |
68 | for (let i = 0; i < n; i++) {
69 | matrix[i] = [];
70 | for (let j = 1; j < 2 * n; j += 2) {
71 | matrix[i].push({
72 | u: uscale.invert(1 - (i + 1) / n),
73 | v: vscale.invert(j / (2 * n)),
74 | });
75 | }
76 | }
77 |
78 | return matrix;
79 | }
80 |
81 | quantization.range = () => [].concat.apply([], matrix);
82 |
83 | quantization.n = function (newN) {
84 | if (!arguments.length) {
85 | return n;
86 | } else {
87 | n = newN;
88 | matrix = makeMatrix();
89 | return quantization;
90 | }
91 | };
92 |
93 | quantization.matrix = () => matrix;
94 |
95 | quantization.data = quantization.matrix;
96 |
97 | quantization.uncertaintyDomain = function (newDomain) {
98 | if (!arguments.length) {
99 | return uscale.domain();
100 | } else {
101 | uscale.domain(newDomain);
102 | matrix = makeMatrix();
103 | return quantization;
104 | }
105 | };
106 |
107 | quantization.valueDomain = function (newDomain) {
108 | if (!arguments.length) {
109 | return vscale.domain();
110 | } else {
111 | vscale.domain(newDomain);
112 | matrix = makeMatrix();
113 | return quantization;
114 | }
115 | };
116 |
117 | return quantization;
118 | }
119 |
120 | export function treeQuantization(branchingFactor, treeLayers) {
121 | let branch = branchingFactor || 2;
122 | let layers = treeLayers || 2;
123 | const uscale = d3.scaleLinear();
124 | const vscale = d3.scaleLinear();
125 | let tree = makeTree();
126 |
127 | function quantization(value, uncertainty) {
128 | var u = uncertainty != undefined ? uncertainty : value.u;
129 | var v = uncertainty != undefined ? value : value.v;
130 | let i = 0;
131 |
132 | // find the right layer of the tree, based on uncertainty
133 | while (i < tree.length - 1 && uscale(u) < 1 - (i + 1) / layers - epsilon) {
134 | i++;
135 | }
136 |
137 | // find right leaf of tree, based on value
138 | const vgap = tree[i].length > 1 ? (tree[i][1].v - tree[i][0].v) / 2 : 0;
139 |
140 | let j = 0;
141 |
142 | while (j < tree[i].length - 1 && v > tree[i][j].v + vgap) {
143 | j++;
144 | }
145 |
146 | return tree[i][j];
147 | }
148 |
149 | function makeTree() {
150 | // Our tree should be "squarish" - it should have about
151 | // as many layers as leaves.
152 | const tree = [];
153 |
154 | let n;
155 |
156 | vscale.nice(Math.pow(branch, layers - 1));
157 | uscale.nice(layers);
158 |
159 | tree[0] = [];
160 | tree[0].push({
161 | u: uscale.invert((layers - 1) / layers),
162 | v: vscale.invert(0.5),
163 | });
164 |
165 | for (let i = 1; i < layers; i++) {
166 | tree[i] = [];
167 | n = 2 * Math.pow(branch, i);
168 | for (let j = 1; j < n; j += 2) {
169 | tree[i].push({
170 | u: uscale.invert(1 - (i + 1) / layers),
171 | v: vscale.invert(j / n),
172 | });
173 | }
174 | }
175 | return tree;
176 | }
177 |
178 | quantization.range = () => [].concat.apply([], tree);
179 |
180 | quantization.tree = () => tree;
181 |
182 | quantization.data = quantization.tree;
183 |
184 | quantization.branching = function (newbranch) {
185 | if (!arguments.length) {
186 | return branch;
187 | } else {
188 | branch = Math.max(1, newbranch);
189 | tree = makeTree();
190 | return quantization;
191 | }
192 | };
193 |
194 | quantization.layers = function (newlayers) {
195 | if (!arguments.length) {
196 | return layers;
197 | } else {
198 | layers = Math.max(1, newlayers);
199 | tree = makeTree();
200 | return quantization;
201 | }
202 | };
203 |
204 | quantization.uncertaintyDomain = function (uDom) {
205 | if (!arguments.length) {
206 | return uscale.domain();
207 | } else {
208 | uscale.domain(uDom);
209 | tree = makeTree();
210 | return quantization;
211 | }
212 | };
213 |
214 | quantization.valueDomain = function (vDom) {
215 | if (!arguments.length) {
216 | return vscale.domain();
217 | } else {
218 | vscale.domain(vDom);
219 | tree = makeTree();
220 | return quantization;
221 | }
222 | };
223 |
224 | return quantization;
225 | }
226 |
--------------------------------------------------------------------------------
/examples/flights.csv:
--------------------------------------------------------------------------------
1 | DayOfWeek,DepTimeBlk,DepDelay,StdMeanErr
2 | 1,0001-0559,8.897969052224372,1.230957811414512
3 | 1,0600-0659,6.929324482623975,0.7006511663457965
4 | 1,0700-0759,7.723363774733638,0.5806981413397009
5 | 1,0800-0859,11.068298460323726,0.598413615307324
6 | 1,0900-0959,12.297140399913998,0.5771583231861239
7 | 1,1000-1059,14.13575152041703,0.612918392530587
8 | 1,1100-1159,15.679030558482614,0.6671801433858121
9 | 1,1200-1259,17.7011925795053,0.683686132015881
10 | 1,1300-1359,17.65929583512237,0.719630306303089
11 | 1,1400-1459,18.561179475272812,0.7714627044909046
12 | 1,1500-1559,18.536718422156945,0.6693900414000802
13 | 1,1600-1659,18.557916381082933,0.6603600336691843
14 | 1,1700-1759,19.62830299471521,0.7296998788522859
15 | 1,1800-1859,19.216770329417184,0.7092249739312357
16 | 1,1900-1959,20.66569908079342,0.8490127675935443
17 | 1,2000-2059,20.756040070713023,1.0566823051221201
18 | 1,2100-2159,18.606469002695416,0.9921109070962975
19 | 1,2200-2259,17.874841972187106,1.4446062430338653
20 | 1,2300-2359,14.93663060278207,1.4643383508021537
21 | 2,0001-0559,4.987751102400784,0.9373979651368426
22 | 2,0600-0659,2.6049407114624508,0.49341550087172614
23 | 2,0700-0759,2.902818844864971,0.4744329758378097
24 | 2,0800-0859,5.519521912350598,0.49176182856507006
25 | 2,0900-0959,6.011612620508326,0.539126221836268
26 | 2,1000-1059,8.817214043035108,0.5706470020709326
27 | 2,1100-1159,9.590178183398523,0.5558172844778473
28 | 2,1200-1259,10.136425959780622,0.5674763749068412
29 | 2,1300-1359,11.270397842211732,0.5764213914121448
30 | 2,1400-1459,11.207664670658682,0.7184747297042668
31 | 2,1500-1559,12.201078748651565,0.5603851669508257
32 | 2,1600-1659,11.879408960915157,0.590971640775143
33 | 2,1700-1759,13.104453441295547,0.5667162554484931
34 | 2,1800-1859,13.550211811612261,0.6610263508156372
35 | 2,1900-1959,13.843845371312309,0.7402408947363729
36 | 2,2000-2059,14.280461202866936,0.9209347296990915
37 | 2,2100-2159,11.944190766108575,0.8289136926058579
38 | 2,2200-2259,10.619081272084806,1.4089449479759402
39 | 2,2300-2359,13.5,2.16184542428613
40 | 3,0001-0559,3.116323907455013,0.9808290463870517
41 | 3,0600-0659,1.6044983573414202,0.5679713641887207
42 | 3,0700-0759,2.6986200098570725,0.7002805883285922
43 | 3,0800-0859,3.2263823456484007,0.4249738864965809
44 | 3,0900-0959,6.396746622553074,0.6949114757675411
45 | 3,1000-1059,6.757490107405314,0.6744676120255656
46 | 3,1100-1159,7.636933987997818,0.6487819248533441
47 | 3,1200-1259,8.356551527262347,0.9509596684982962
48 | 3,1300-1359,8.485499163413273,0.6127463427116623
49 | 3,1400-1459,8.541207973817317,0.5621558784617395
50 | 3,1500-1559,9.446104589114194,0.552270277098636
51 | 3,1600-1659,9.63556595495759,0.5698548387957711
52 | 3,1700-1759,11.80919426594167,0.6949013389979316
53 | 3,1800-1859,12.169491525423728,0.7872740551396624
54 | 3,1900-1959,12.47995102540557,0.748112346409083
55 | 3,2000-2059,12.782426778242678,1.1056527134603251
56 | 3,2100-2159,10.140596469872184,1.082220306309923
57 | 3,2200-2259,11.056872037914692,1.603509579248528
58 | 3,2300-2359,8.021686746987951,1.3408527379810458
59 | 4,0001-0559,3.8079896907216493,1.3808261716292007
60 | 4,0600-0659,2.360331788241034,0.5775602085252189
61 | 4,0700-0759,3.7134000953743445,0.5281511689954281
62 | 4,0800-0859,5.169945892769307,0.5208360025192883
63 | 4,0900-0959,7.530110721036997,0.5728673506081108
64 | 4,1000-1059,8.611802923659988,0.5824623178821074
65 | 4,1100-1159,9.735731039874903,0.5666248003769643
66 | 4,1200-1259,12.295391449194891,0.9245884746997425
67 | 4,1300-1359,12.404164442071544,0.823692926142572
68 | 4,1400-1459,12.51137026239067,0.7874142662194845
69 | 4,1500-1559,13.48656330749354,0.7450140217479329
70 | 4,1600-1659,13.72434266327396,0.6463149913220991
71 | 4,1700-1759,13.59763170613823,0.6218011614842002
72 | 4,1800-1859,15.316477272727273,0.7549738114182606
73 | 4,1900-1959,14.517736734095573,0.6696550449705481
74 | 4,2000-2059,14.5254730713246,0.8116354762445244
75 | 4,2100-2159,12.14816933638444,0.815409238286179
76 | 4,2200-2259,7.262874711760184,0.9540647347180508
77 | 4,2300-2359,8.719665271966527,1.2142241568550924
78 | 5,0001-0559,5.167619047619048,1.5278885216442615
79 | 5,0600-0659,2.789726356216995,0.5878353533148762
80 | 5,0700-0759,3.0306820863818738,0.5491180863894457
81 | 5,0800-0859,4.017969888295289,0.41846722580081813
82 | 5,0900-0959,6.807206238236085,0.5022656210906977
83 | 5,1000-1059,7.606158833063209,0.702159674818376
84 | 5,1100-1159,8.916600894501446,0.5190502988742334
85 | 5,1200-1259,9.883328725463091,0.6058675516320082
86 | 5,1300-1359,10.153450608930989,0.5114914829102369
87 | 5,1400-1459,13.494582723279649,0.9136425971591078
88 | 5,1500-1559,13.836530880420499,0.8053229728904859
89 | 5,1600-1659,13.969821271608556,0.6849695093712839
90 | 5,1700-1759,14.030273197144966,0.6996005578979152
91 | 5,1800-1859,15.409596255119952,0.7962651789793237
92 | 5,1900-1959,15.461933534743203,0.826670720692202
93 | 5,2000-2059,15.193916349809886,1.1191871266370057
94 | 5,2100-2159,13.525943396226415,1.2418450044874239
95 | 5,2200-2259,13.456958970233307,1.7353705089600802
96 | 5,2300-2359,11.300411522633745,2.4600633813932866
97 | 6,0001-0559,4.828153564899451,1.2636464687167785
98 | 6,0600-0659,4.058696988322065,0.7813946458660874
99 | 6,0700-0759,4.417126269956459,0.6314885908639379
100 | 6,0800-0859,7.861086375779163,0.7683770299113271
101 | 6,0900-0959,9.39525184472249,0.8471234014411403
102 | 6,1000-1059,13.102091456930166,1.0573469069556019
103 | 6,1100-1159,14.202583490863264,1.0423162608978738
104 | 6,1200-1259,16.199867197875164,0.969004234639633
105 | 6,1300-1359,18.0859667006456,1.2204873811120143
106 | 6,1400-1459,16.208164766458257,0.9840600931193385
107 | 6,1500-1559,18.71394148020654,1.268749758810143
108 | 6,1600-1659,17.568020872158034,1.1587634547534489
109 | 6,1700-1759,16.44158200290276,1.1287275125090142
110 | 6,1800-1859,16.293482606957216,0.9964184229194207
111 | 6,1900-1959,19.680100755667507,1.5349376616552055
112 | 6,2000-2059,15.689402480270575,1.5428094685530034
113 | 6,2100-2159,17.195304162219852,2.1858256892376007
114 | 6,2200-2259,15.757022471910112,2.5534802509101246
115 | 6,2300-2359,13.642276422764228,3.454915040645766
116 | 7,0001-0559,7.429898648648648,1.6439026209758825
117 | 7,0600-0659,5.762886597938144,0.8130302132572808
118 | 7,0700-0759,5.166417165668663,0.6400267088641886
119 | 7,0800-0859,5.679245283018868,0.5568182013517595
120 | 7,0900-0959,7.994391212900211,0.6920917733974206
121 | 7,1000-1059,9.893698893698893,0.6304216218273168
122 | 7,1100-1159,10.191221879135421,0.6937076740009079
123 | 7,1200-1259,13.127163627971383,0.6562987485223659
124 | 7,1300-1359,14.48023492206912,0.7748242714208882
125 | 7,1400-1459,15.043447293447294,0.677438507727695
126 | 7,1500-1559,19.068151742390825,0.8747041440642463
127 | 7,1600-1659,21.89636189564385,1.0451762023724676
128 | 7,1700-1759,26.95839340885685,0.9726953506169829
129 | 7,1800-1859,30.32403062484564,1.1655140951410048
130 | 7,1900-1959,37.013216957605984,1.3389805567695543
131 | 7,2000-2059,29.027643203191793,1.177377181871359
132 | 7,2100-2159,34.96042471042471,1.7601865691873537
133 | 7,2200-2259,31.205698005698007,1.7686130902117658
134 | 7,2300-2359,23.625649913344887,2.462790647934794
135 |
--------------------------------------------------------------------------------
/src/legend.js:
--------------------------------------------------------------------------------
1 | /*
2 | A lightweight factory for making legends.
3 | */
4 | import * as d3 from "d3";
5 |
6 | import { simpleHeatmap, simpleArcmap } from "./heatmap";
7 |
8 | export function simpleLegend(
9 | m_scale,
10 | m_size,
11 | m_height,
12 | m_format,
13 | m_title,
14 | m_x,
15 | m_y
16 | ) {
17 | let el = null;
18 | let title = m_title;
19 | let scale = m_scale || null;
20 | let size = m_size || 200;
21 | let height = m_height || 30;
22 | let fmat = m_format || null;
23 | let x = m_x || 0;
24 | let y = m_y || 0;
25 |
26 | function legend(nel) {
27 | el = nel;
28 | legend.setProperties();
29 | }
30 |
31 | legend.setProperties = function () {
32 | if (!el) {
33 | return;
34 | }
35 |
36 | var domain = scale.domain ? scale.domain() : [0, 1];
37 | const w = size / scale.range().length;
38 | const step = (domain[1] - domain[0]) / scale.range().length;
39 | const dom = d3.range(domain[0], domain[1] + step, step);
40 |
41 | const axisScale = d3.scalePoint().range([0, size]).domain(dom).round(true);
42 |
43 | el.attr("class", "legend").attr("transform", `translate(${x},${y})`);
44 |
45 | const rect = el.selectAll("rect").data(scale.range());
46 |
47 | rect
48 | .enter()
49 | .append("rect")
50 | .merge(rect)
51 | .attr("x", (d, i) => i * w)
52 | .attr("y", 0)
53 | .attr("height", height)
54 | .attr("width", w)
55 | .attr("fill", (d) => d);
56 |
57 | let axis = el.select("g.legend > g");
58 | if (axis.empty()) {
59 | axis = el.append("g");
60 | }
61 | axis
62 | .attr("transform", `translate(0, ${height})`)
63 | .call(d3.axisBottom(axisScale).tickFormat(d3.format(fmat || "")));
64 |
65 | let label = el.select("g.legend > text");
66 | if (label.empty()) {
67 | label = el.append("text");
68 | }
69 | label
70 | .style("text-anchor", "middle")
71 | .style("font-size", 13)
72 | .attr("transform", `translate(${size / 2}, ${height + 30})`)
73 | .text(title);
74 | };
75 |
76 | legend.title = function (t) {
77 | if (!arguments.length) {
78 | return title;
79 | } else {
80 | title = t;
81 | legend.setProperties();
82 | return legend;
83 | }
84 | };
85 |
86 | legend.scale = function (s) {
87 | if (!arguments.length) {
88 | return scale;
89 | } else {
90 | scale = s;
91 | legend.setProperties();
92 | return legend;
93 | }
94 | };
95 |
96 | legend.size = function (s) {
97 | if (!arguments.length) {
98 | return size;
99 | } else {
100 | size = s;
101 | legend.setProperties();
102 | return legend;
103 | }
104 | };
105 |
106 | legend.height = function (h) {
107 | if (!arguments.length) {
108 | return height;
109 | } else {
110 | height = h;
111 | legend.setProperties();
112 | return legend;
113 | }
114 | };
115 |
116 | legend.format = function (f) {
117 | if (!arguments.length) {
118 | return fmat;
119 | } else {
120 | fmat = f;
121 | legend.setProperties();
122 | return legend;
123 | }
124 | };
125 |
126 | legend.x = function (nx) {
127 | if (!arguments.length) {
128 | return x;
129 | } else {
130 | x = nx;
131 | legend.setProperties();
132 | return legend;
133 | }
134 | };
135 |
136 | legend.y = function (ny) {
137 | if (!arguments.length) {
138 | return y;
139 | } else {
140 | y = ny;
141 | legend.setProperties();
142 | return legend;
143 | }
144 | };
145 |
146 | return legend;
147 | }
148 |
149 | export function heatmapLegend(
150 | m_scale,
151 | m_size,
152 | m_format,
153 | m_utitle,
154 | m_vtitle,
155 | m_x,
156 | m_y
157 | ) {
158 | let el = null;
159 | let utitle = m_utitle ? m_utitle : "Uncertainty";
160 | let vtitle = m_vtitle ? m_vtitle : "Value";
161 | let scale = m_scale ? m_scale : null;
162 | let size = m_size ? m_size : 200;
163 | let fmat = m_format || null;
164 | let x = m_x ? m_x : 0;
165 | let y = m_y ? m_y : 0;
166 | let data = null;
167 |
168 | const heatmap = simpleHeatmap();
169 |
170 | var legend = function (nel) {
171 | el = nel;
172 | legend.setProperties();
173 |
174 | el.call(heatmap);
175 | };
176 |
177 | legend.setProperties = function () {
178 | if (!el) {
179 | return;
180 | }
181 |
182 | let tmp = data;
183 | if (!tmp) {
184 | tmp = scale.quantize().data();
185 | }
186 |
187 | const inverted = [];
188 | for (let i = 0; i < tmp.length; i++) {
189 | inverted[i] = tmp[tmp.length - i - 1];
190 | }
191 |
192 | heatmap.y(1); // don't hide x-axis
193 | heatmap.data(inverted);
194 | heatmap.scale(scale);
195 | heatmap.size(size);
196 |
197 | el.attr("class", "legend").attr("transform", `translate(${x},${y})`);
198 |
199 | var uncertaintyDomain =
200 | scale && scale.quantize ? scale.quantize().uncertaintyDomain() : [0, 1];
201 | const uStep =
202 | (uncertaintyDomain[1] - uncertaintyDomain[0]) / inverted.length;
203 | const uDom = d3.range(
204 | uncertaintyDomain[0],
205 | uncertaintyDomain[1] + uStep,
206 | uStep
207 | );
208 |
209 | var valueDomain =
210 | scale && scale.quantize ? scale.quantize().valueDomain() : [0, 1];
211 | const vStep = (valueDomain[1] - valueDomain[0]) / inverted.length;
212 | const vDom = d3.range(valueDomain[0], valueDomain[1] + vStep, vStep);
213 |
214 | const xAxisScale = d3.scalePoint().range([0, size]).domain(vDom);
215 |
216 | el.append("g").call(
217 | d3.axisTop(xAxisScale).tickFormat(d3.format(fmat || ""))
218 | );
219 |
220 | el.append("text")
221 | .style("text-anchor", "middle")
222 | .style("font-size", 13)
223 | .attr("transform", `translate(${size / 2}, ${-25})`)
224 | .text(vtitle);
225 |
226 | const yAxis = d3.scalePoint().range([0, size]).domain(uDom);
227 |
228 | el.append("g")
229 | .attr("transform", `translate(${size}, 0)`)
230 | .call(d3.axisRight(yAxis).tickFormat(d3.format(fmat || "")));
231 |
232 | el.append("text")
233 | .style("text-anchor", "middle")
234 | .style("font-size", 13)
235 | .attr("transform", `translate(${size + 40}, ${size / 2})rotate(90)`)
236 | .text(utitle);
237 | };
238 |
239 | legend.data = function (newData) {
240 | if (!arguments.length) {
241 | return data;
242 | } else {
243 | data = newData;
244 | legend.setProperties();
245 | return legend;
246 | }
247 | };
248 |
249 | legend.scale = function (s) {
250 | if (!arguments.length) {
251 | return scale;
252 | } else {
253 | scale = s;
254 | legend.setProperties();
255 | return legend;
256 | }
257 | };
258 |
259 | legend.size = function (s) {
260 | if (!arguments.length) {
261 | return size;
262 | } else {
263 | size = s;
264 | legend.setProperties();
265 | return legend;
266 | }
267 | };
268 |
269 | legend.format = function (f) {
270 | if (!arguments.length) {
271 | return fmat;
272 | } else {
273 | fmat = f;
274 | legend.setProperties();
275 | return legend;
276 | }
277 | };
278 |
279 | legend.x = function (nx) {
280 | if (!arguments.length) {
281 | return x;
282 | } else {
283 | x = nx;
284 | legend.setProperties();
285 | return legend;
286 | }
287 | };
288 |
289 | legend.y = function (ny) {
290 | if (!arguments.length) {
291 | return y;
292 | } else {
293 | y = ny;
294 | legend.setProperties();
295 | return legend;
296 | }
297 | };
298 |
299 | legend.utitle = function (t) {
300 | if (!arguments.length) {
301 | return utitle;
302 | } else {
303 | utitle = t;
304 | legend.setProperties();
305 | return legend;
306 | }
307 | };
308 |
309 | legend.vtitle = function (t) {
310 | if (!arguments.length) {
311 | return vtitle;
312 | } else {
313 | vtitle = t;
314 | legend.setProperties();
315 | return legend;
316 | }
317 | };
318 |
319 | return legend;
320 | }
321 |
322 | export function arcmapLegend(
323 | m_scale,
324 | m_size,
325 | m_format,
326 | m_utitle,
327 | m_vtitle,
328 | m_x,
329 | m_y
330 | ) {
331 | let el = null;
332 | let utitle = m_utitle ? m_utitle : "Uncertainty";
333 | let vtitle = m_vtitle ? m_vtitle : "Value";
334 | let scale = m_scale ? m_scale : null;
335 | let size = m_size ? m_size : 200;
336 | let fmat = m_format || null;
337 | let x = m_x ? m_x : 0;
338 | let y = m_y ? m_y : 0;
339 | let data = null;
340 |
341 | const arcmap = simpleArcmap();
342 |
343 | var legend = function (nel) {
344 | el = nel;
345 | legend.setProperties();
346 |
347 | el.call(arcmap);
348 | };
349 |
350 | legend.setProperties = function () {
351 | if (!el) {
352 | return;
353 | }
354 |
355 | let tmp = data;
356 | if (!tmp) {
357 | tmp = scale.quantize().data();
358 | }
359 |
360 | const inverted = [];
361 | for (let i = 0; i < tmp.length; i++) {
362 | inverted[i] = tmp[tmp.length - i - 1];
363 | }
364 |
365 | arcmap.data(inverted);
366 | arcmap.scale(scale);
367 | arcmap.size(size);
368 |
369 | el.attr("class", "legend").attr("transform", `translate(${x},${y})`);
370 |
371 | var uncertaintyDomain =
372 | scale && scale.quantize ? scale.quantize().uncertaintyDomain() : [0, 1];
373 | const uStep =
374 | (uncertaintyDomain[1] - uncertaintyDomain[0]) / inverted.length;
375 | const uDom = d3.range(
376 | uncertaintyDomain[0],
377 | uncertaintyDomain[1] + uStep,
378 | uStep
379 | );
380 |
381 | const uAxisScale = d3.scalePoint().range([0, size]).domain(uDom);
382 |
383 | const px = size / 180;
384 | el.append("g")
385 | .attr("transform", `translate(${size + 6 * px},${28 * px})rotate(30)`)
386 | .call(d3.axisRight(uAxisScale).tickFormat(d3.format(fmat || "")));
387 |
388 | el.append("text")
389 | .style("text-anchor", "middle")
390 | .style("font-size", 13)
391 | .attr(
392 | "transform",
393 | "translate(" +
394 | (size + 10 * px) +
395 | "," +
396 | (40 * px + size / 2) +
397 | ")rotate(-60)"
398 | )
399 | .text(utitle);
400 |
401 | var valueDomain =
402 | scale && scale.quantize ? scale.quantize().valueDomain() : [0, 1];
403 | const vStep = (valueDomain[1] - valueDomain[0]) / inverted[0].length;
404 | const vTicks = d3.range(valueDomain[0], valueDomain[1] + vStep, vStep);
405 |
406 | const vAxisScale = d3.scaleLinear().range([0, size]).domain(valueDomain);
407 | const valueFormat = fmat
408 | ? d3.format(fmat)
409 | : vAxisScale.tickFormat(vTicks.length);
410 |
411 | const angle = d3.scaleLinear().domain(valueDomain).range([-30, 30]);
412 |
413 | const offset = 3 * px;
414 |
415 | const myArc = d3
416 | .arc()
417 | .innerRadius(size + offset)
418 | .outerRadius(size + offset + 1)
419 | .startAngle(-Math.PI / 6)
420 | .endAngle(Math.PI / 6);
421 |
422 | const arcAxis = el
423 | .append("g")
424 | .attr("transform", `translate(${size / 2},${size - offset})`);
425 |
426 | arcAxis
427 | .append("path")
428 | .attr("fill", "black")
429 | .attr("stroke", "transparent")
430 | .attr("d", myArc);
431 |
432 | const labelEnter = arcAxis
433 | .selectAll(".arc-label")
434 | .data(vTicks)
435 | .enter()
436 | .append("g")
437 | .attr("class", "arc-label")
438 | .attr(
439 | "transform",
440 | (d) =>
441 | "rotate(" +
442 | angle(d) +
443 | ")translate(" +
444 | 0 +
445 | "," +
446 | (-size - offset) +
447 | ")"
448 | );
449 |
450 | labelEnter
451 | .append("text")
452 | .style("font-size", "11")
453 | .style("text-anchor", "middle")
454 | .attr("y", -10)
455 | .text(valueFormat);
456 |
457 | labelEnter
458 | .append("line")
459 | .attr("x1", 0.5)
460 | .attr("x2", 0.5)
461 | .attr("y1", -6)
462 | .attr("y2", 0)
463 | .attr("stroke", "#000");
464 |
465 | el.append("text")
466 | .style("text-anchor", "middle")
467 | .style("font-size", 13)
468 | .attr("x", size / 2)
469 | .attr("y", -30)
470 | .text(vtitle);
471 | };
472 |
473 | legend.data = function (newData) {
474 | if (!arguments.length) {
475 | return data;
476 | } else {
477 | data = newData;
478 | legend.setProperties();
479 | return legend;
480 | }
481 | };
482 |
483 | legend.scale = function (s) {
484 | if (!arguments.length) {
485 | return scale;
486 | } else {
487 | scale = s;
488 | legend.setProperties();
489 | return legend;
490 | }
491 | };
492 |
493 | legend.size = function (s) {
494 | if (!arguments.length) {
495 | return size;
496 | } else {
497 | size = s;
498 | legend.setProperties();
499 | return legend;
500 | }
501 | };
502 |
503 | legend.format = function (f) {
504 | if (!arguments.length) {
505 | return fmat;
506 | } else {
507 | fmat = f;
508 | legend.setProperties();
509 | return legend;
510 | }
511 | };
512 |
513 | legend.x = function (nx) {
514 | if (!arguments.length) {
515 | return x;
516 | } else {
517 | x = nx;
518 | legend.setProperties();
519 | return legend;
520 | }
521 | };
522 |
523 | legend.y = function (ny) {
524 | if (!arguments.length) {
525 | return y;
526 | } else {
527 | y = ny;
528 | legend.setProperties();
529 | return legend;
530 | }
531 | };
532 |
533 | legend.utitle = function (t) {
534 | if (!arguments.length) {
535 | return utitle;
536 | } else {
537 | utitle = t;
538 | legend.setProperties();
539 | return legend;
540 | }
541 | };
542 |
543 | legend.vtitle = function (t) {
544 | if (!arguments.length) {
545 | return vtitle;
546 | } else {
547 | vtitle = t;
548 | legend.setProperties();
549 | return legend;
550 | }
551 | };
552 |
553 | return legend;
554 | }
555 |
--------------------------------------------------------------------------------
/yarn.lock:
--------------------------------------------------------------------------------
1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2 | # yarn lockfile v1
3 |
4 |
5 | "@babel/code-frame@^7.0.0":
6 | version "7.12.11"
7 | resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f"
8 | integrity sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==
9 | dependencies:
10 | "@babel/highlight" "^7.10.4"
11 |
12 | "@babel/helper-validator-identifier@^7.10.4":
13 | version "7.12.11"
14 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz#c9a1f021917dcb5ccf0d4e453e399022981fc9ed"
15 | integrity sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==
16 |
17 | "@babel/highlight@^7.10.4":
18 | version "7.10.4"
19 | resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.4.tgz#7d1bdfd65753538fabe6c38596cdb76d9ac60143"
20 | integrity sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==
21 | dependencies:
22 | "@babel/helper-validator-identifier" "^7.10.4"
23 | chalk "^2.0.0"
24 | js-tokens "^4.0.0"
25 |
26 | "@eslint/eslintrc@^0.2.2":
27 | version "0.2.2"
28 | resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.2.2.tgz#d01fc791e2fc33e88a29d6f3dc7e93d0cd784b76"
29 | integrity sha512-EfB5OHNYp1F4px/LI/FEnGylop7nOqkQ1LRzCM0KccA2U8tvV8w01KBv37LbO7nW4H+YhKyo2LcJhRwjjV17QQ==
30 | dependencies:
31 | ajv "^6.12.4"
32 | debug "^4.1.1"
33 | espree "^7.3.0"
34 | globals "^12.1.0"
35 | ignore "^4.0.6"
36 | import-fresh "^3.2.1"
37 | js-yaml "^3.13.1"
38 | lodash "^4.17.19"
39 | minimatch "^3.0.4"
40 | strip-json-comments "^3.1.1"
41 |
42 | "@rollup/plugin-node-resolve@^11.0.1":
43 | version "11.0.1"
44 | resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.0.1.tgz#d3765eec4bccf960801439a999382aed2dca959b"
45 | integrity sha512-ltlsj/4Bhwwhb+Nb5xCz/6vieuEj2/BAkkqVIKmZwC7pIdl8srmgmglE4S0jFlZa32K4qvdQ6NHdmpRKD/LwoQ==
46 | dependencies:
47 | "@rollup/pluginutils" "^3.1.0"
48 | "@types/resolve" "1.17.1"
49 | builtin-modules "^3.1.0"
50 | deepmerge "^4.2.2"
51 | is-module "^1.0.0"
52 | resolve "^1.19.0"
53 |
54 | "@rollup/pluginutils@^3.1.0":
55 | version "3.1.0"
56 | resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-3.1.0.tgz#706b4524ee6dc8b103b3c995533e5ad680c02b9b"
57 | integrity sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==
58 | dependencies:
59 | "@types/estree" "0.0.39"
60 | estree-walker "^1.0.1"
61 | picomatch "^2.2.2"
62 |
63 | "@types/estree@0.0.39":
64 | version "0.0.39"
65 | resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f"
66 | integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==
67 |
68 | "@types/node@*":
69 | version "14.14.19"
70 | resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.19.tgz#5135176a8330b88ece4e9ab1fdcfc0a545b4bab4"
71 | integrity sha512-4nhBPStMK04rruRVtVc6cDqhu7S9GZai0fpXgPXrFpcPX6Xul8xnrjSdGB4KPBVYG/R5+fXWdCM8qBoiULWGPQ==
72 |
73 | "@types/resolve@1.17.1":
74 | version "1.17.1"
75 | resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-1.17.1.tgz#3afd6ad8967c77e4376c598a82ddd58f46ec45d6"
76 | integrity sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==
77 | dependencies:
78 | "@types/node" "*"
79 |
80 | acorn-jsx@^5.3.1:
81 | version "5.3.1"
82 | resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.1.tgz#fc8661e11b7ac1539c47dbfea2e72b3af34d267b"
83 | integrity sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==
84 |
85 | acorn@^7.4.0:
86 | version "7.4.1"
87 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa"
88 | integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==
89 |
90 | ajv@^6.10.0, ajv@^6.12.4:
91 | version "6.12.6"
92 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4"
93 | integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
94 | dependencies:
95 | fast-deep-equal "^3.1.1"
96 | fast-json-stable-stringify "^2.0.0"
97 | json-schema-traverse "^0.4.1"
98 | uri-js "^4.2.2"
99 |
100 | ajv@^7.0.2:
101 | version "7.0.3"
102 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-7.0.3.tgz#13ae747eff125cafb230ac504b2406cf371eece2"
103 | integrity sha512-R50QRlXSxqXcQP5SvKUrw8VZeypvo12i2IX0EeR5PiZ7bEKeHWgzgo264LDadUsCU42lTJVhFikTqJwNeH34gQ==
104 | dependencies:
105 | fast-deep-equal "^3.1.1"
106 | json-schema-traverse "^1.0.0"
107 | require-from-string "^2.0.2"
108 | uri-js "^4.2.2"
109 |
110 | ansi-colors@^4.1.1:
111 | version "4.1.1"
112 | resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348"
113 | integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==
114 |
115 | ansi-regex@^5.0.0:
116 | version "5.0.0"
117 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75"
118 | integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==
119 |
120 | ansi-styles@^3.2.1:
121 | version "3.2.1"
122 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
123 | integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
124 | dependencies:
125 | color-convert "^1.9.0"
126 |
127 | ansi-styles@^4.0.0, ansi-styles@^4.1.0:
128 | version "4.3.0"
129 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937"
130 | integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
131 | dependencies:
132 | color-convert "^2.0.1"
133 |
134 | argparse@^1.0.7:
135 | version "1.0.10"
136 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
137 | integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==
138 | dependencies:
139 | sprintf-js "~1.0.2"
140 |
141 | astral-regex@^2.0.0:
142 | version "2.0.0"
143 | resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31"
144 | integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==
145 |
146 | balanced-match@^1.0.0:
147 | version "1.0.0"
148 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
149 | integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c=
150 |
151 | brace-expansion@^1.1.7:
152 | version "1.1.11"
153 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
154 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
155 | dependencies:
156 | balanced-match "^1.0.0"
157 | concat-map "0.0.1"
158 |
159 | buffer-from@^1.0.0:
160 | version "1.1.1"
161 | resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef"
162 | integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==
163 |
164 | builtin-modules@^3.1.0:
165 | version "3.2.0"
166 | resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.2.0.tgz#45d5db99e7ee5e6bc4f362e008bf917ab5049887"
167 | integrity sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA==
168 |
169 | callsites@^3.0.0:
170 | version "3.1.0"
171 | resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73"
172 | integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==
173 |
174 | chalk@^2.0.0:
175 | version "2.4.2"
176 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
177 | integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
178 | dependencies:
179 | ansi-styles "^3.2.1"
180 | escape-string-regexp "^1.0.5"
181 | supports-color "^5.3.0"
182 |
183 | chalk@^4.0.0:
184 | version "4.1.0"
185 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a"
186 | integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==
187 | dependencies:
188 | ansi-styles "^4.1.0"
189 | supports-color "^7.1.0"
190 |
191 | color-convert@^1.9.0:
192 | version "1.9.3"
193 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
194 | integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
195 | dependencies:
196 | color-name "1.1.3"
197 |
198 | color-convert@^2.0.1:
199 | version "2.0.1"
200 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3"
201 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
202 | dependencies:
203 | color-name "~1.1.4"
204 |
205 | color-name@1.1.3:
206 | version "1.1.3"
207 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
208 | integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=
209 |
210 | color-name@~1.1.4:
211 | version "1.1.4"
212 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
213 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
214 |
215 | commander@2, commander@^2.20.0:
216 | version "2.20.3"
217 | resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
218 | integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
219 |
220 | concat-map@0.0.1:
221 | version "0.0.1"
222 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
223 | integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
224 |
225 | cross-spawn@^7.0.2:
226 | version "7.0.3"
227 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
228 | integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
229 | dependencies:
230 | path-key "^3.1.0"
231 | shebang-command "^2.0.0"
232 | which "^2.0.1"
233 |
234 | d3-array@2, d3-array@>=2.5, d3-array@^2.3.0:
235 | version "2.9.1"
236 | resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-2.9.1.tgz#f355cc72b46c8649b3f9212029e2d681cb5b9643"
237 | integrity sha512-Ob7RdOtkqsjx1NWyQHMFLtCSk6/aKTxDdC4ZIolX+O+mDD2RzrsYgAyc0WGAlfYFVELLSilS7w8BtE3PKM8bHg==
238 |
239 | d3-axis@2:
240 | version "2.0.0"
241 | resolved "https://registry.yarnpkg.com/d3-axis/-/d3-axis-2.0.0.tgz#40aebb65626ffe6d95e9441fbf9194274b328a8b"
242 | integrity sha512-9nzB0uePtb+u9+dWir+HTuEAKJOEUYJoEwbJPsZ1B4K3iZUgzJcSENQ05Nj7S4CIfbZZ8/jQGoUzGKFznBhiiQ==
243 |
244 | d3-brush@2:
245 | version "2.1.0"
246 | resolved "https://registry.yarnpkg.com/d3-brush/-/d3-brush-2.1.0.tgz#adadfbb104e8937af142e9a6e2028326f0471065"
247 | integrity sha512-cHLLAFatBATyIKqZOkk/mDHUbzne2B3ZwxkzMHvFTCZCmLaXDpZRihQSn8UNXTkGD/3lb/W2sQz0etAftmHMJQ==
248 | dependencies:
249 | d3-dispatch "1 - 2"
250 | d3-drag "2"
251 | d3-interpolate "1 - 2"
252 | d3-selection "2"
253 | d3-transition "2"
254 |
255 | d3-chord@2:
256 | version "2.0.0"
257 | resolved "https://registry.yarnpkg.com/d3-chord/-/d3-chord-2.0.0.tgz#32491b5665391180560f738e5c1ccd1e3c47ebae"
258 | integrity sha512-D5PZb7EDsRNdGU4SsjQyKhja8Zgu+SHZfUSO5Ls8Wsn+jsAKUUGkcshLxMg9HDFxG3KqavGWaWkJ8EpU8ojuig==
259 | dependencies:
260 | d3-path "1 - 2"
261 |
262 | "d3-color@1 - 2", d3-color@2:
263 | version "2.0.0"
264 | resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-2.0.0.tgz#8d625cab42ed9b8f601a1760a389f7ea9189d62e"
265 | integrity sha512-SPXi0TSKPD4g9tw0NMZFnR95XVgUZiBH+uUTqQuDu1OsE2zomHU7ho0FISciaPvosimixwHFl3WHLGabv6dDgQ==
266 |
267 | d3-contour@2:
268 | version "2.0.0"
269 | resolved "https://registry.yarnpkg.com/d3-contour/-/d3-contour-2.0.0.tgz#80ee834988563e3bea9d99ddde72c0f8c089ea40"
270 | integrity sha512-9unAtvIaNk06UwqBmvsdHX7CZ+NPDZnn8TtNH1myW93pWJkhsV25JcgnYAu0Ck5Veb1DHiCv++Ic5uvJ+h50JA==
271 | dependencies:
272 | d3-array "2"
273 |
274 | d3-delaunay@5:
275 | version "5.3.0"
276 | resolved "https://registry.yarnpkg.com/d3-delaunay/-/d3-delaunay-5.3.0.tgz#b47f05c38f854a4e7b3cea80e0bb12e57398772d"
277 | integrity sha512-amALSrOllWVLaHTnDLHwMIiz0d1bBu9gZXd1FiLfXf8sHcX9jrcj81TVZOqD4UX7MgBZZ07c8GxzEgBpJqc74w==
278 | dependencies:
279 | delaunator "4"
280 |
281 | "d3-dispatch@1 - 2", d3-dispatch@2:
282 | version "2.0.0"
283 | resolved "https://registry.yarnpkg.com/d3-dispatch/-/d3-dispatch-2.0.0.tgz#8a18e16f76dd3fcaef42163c97b926aa9b55e7cf"
284 | integrity sha512-S/m2VsXI7gAti2pBoLClFFTMOO1HTtT0j99AuXLoGFKO6deHDdnv6ZGTxSTTUTgO1zVcv82fCOtDjYK4EECmWA==
285 |
286 | d3-drag@2:
287 | version "2.0.0"
288 | resolved "https://registry.yarnpkg.com/d3-drag/-/d3-drag-2.0.0.tgz#9eaf046ce9ed1c25c88661911c1d5a4d8eb7ea6d"
289 | integrity sha512-g9y9WbMnF5uqB9qKqwIIa/921RYWzlUDv9Jl1/yONQwxbOfszAWTCm8u7HOTgJgRDXiRZN56cHT9pd24dmXs8w==
290 | dependencies:
291 | d3-dispatch "1 - 2"
292 | d3-selection "2"
293 |
294 | "d3-dsv@1 - 2", d3-dsv@2:
295 | version "2.0.0"
296 | resolved "https://registry.yarnpkg.com/d3-dsv/-/d3-dsv-2.0.0.tgz#b37b194b6df42da513a120d913ad1be22b5fe7c5"
297 | integrity sha512-E+Pn8UJYx9mViuIUkoc93gJGGYut6mSDKy2+XaPwccwkRGlR+LO97L2VCCRjQivTwLHkSnAJG7yo00BWY6QM+w==
298 | dependencies:
299 | commander "2"
300 | iconv-lite "0.4"
301 | rw "1"
302 |
303 | "d3-ease@1 - 2", d3-ease@2:
304 | version "2.0.0"
305 | resolved "https://registry.yarnpkg.com/d3-ease/-/d3-ease-2.0.0.tgz#fd1762bfca00dae4bacea504b1d628ff290ac563"
306 | integrity sha512-68/n9JWarxXkOWMshcT5IcjbB+agblQUaIsbnXmrzejn2O82n3p2A9R2zEB9HIEFWKFwPAEDDN8gR0VdSAyyAQ==
307 |
308 | d3-fetch@2:
309 | version "2.0.0"
310 | resolved "https://registry.yarnpkg.com/d3-fetch/-/d3-fetch-2.0.0.tgz#ecd7ef2128d9847a3b41b548fec80918d645c064"
311 | integrity sha512-TkYv/hjXgCryBeNKiclrwqZH7Nb+GaOwo3Neg24ZVWA3MKB+Rd+BY84Nh6tmNEMcjUik1CSUWjXYndmeO6F7sw==
312 | dependencies:
313 | d3-dsv "1 - 2"
314 |
315 | d3-force@2:
316 | version "2.1.1"
317 | resolved "https://registry.yarnpkg.com/d3-force/-/d3-force-2.1.1.tgz#f20ccbf1e6c9e80add1926f09b51f686a8bc0937"
318 | integrity sha512-nAuHEzBqMvpFVMf9OX75d00OxvOXdxY+xECIXjW6Gv8BRrXu6gAWbv/9XKrvfJ5i5DCokDW7RYE50LRoK092ew==
319 | dependencies:
320 | d3-dispatch "1 - 2"
321 | d3-quadtree "1 - 2"
322 | d3-timer "1 - 2"
323 |
324 | "d3-format@1 - 2", d3-format@2:
325 | version "2.0.0"
326 | resolved "https://registry.yarnpkg.com/d3-format/-/d3-format-2.0.0.tgz#a10bcc0f986c372b729ba447382413aabf5b0767"
327 | integrity sha512-Ab3S6XuE/Q+flY96HXT0jOXcM4EAClYFnRGY5zsjRGNy6qCYrQsMffs7cV5Q9xejb35zxW5hf/guKw34kvIKsA==
328 |
329 | d3-geo@2:
330 | version "2.0.1"
331 | resolved "https://registry.yarnpkg.com/d3-geo/-/d3-geo-2.0.1.tgz#2437fdfed3fe3aba2812bd8f30609cac83a7ee39"
332 | integrity sha512-M6yzGbFRfxzNrVhxDJXzJqSLQ90q1cCyb3EWFZ1LF4eWOBYxFypw7I/NFVBNXKNqxv1bqLathhYvdJ6DC+th3A==
333 | dependencies:
334 | d3-array ">=2.5"
335 |
336 | d3-hierarchy@2:
337 | version "2.0.0"
338 | resolved "https://registry.yarnpkg.com/d3-hierarchy/-/d3-hierarchy-2.0.0.tgz#dab88a58ca3e7a1bc6cab390e89667fcc6d20218"
339 | integrity sha512-SwIdqM3HxQX2214EG9GTjgmCc/mbSx4mQBn+DuEETubhOw6/U3fmnji4uCVrmzOydMHSO1nZle5gh6HB/wdOzw==
340 |
341 | "d3-interpolate@1 - 2", "d3-interpolate@1.2.0 - 2", d3-interpolate@2:
342 | version "2.0.1"
343 | resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-2.0.1.tgz#98be499cfb8a3b94d4ff616900501a64abc91163"
344 | integrity sha512-c5UhwwTs/yybcmTpAVqwSFl6vrQ8JZJoT5F7xNFK9pymv5C0Ymcc9/LIJHtYIggg/yS9YHw8i8O8tgb9pupjeQ==
345 | dependencies:
346 | d3-color "1 - 2"
347 |
348 | "d3-path@1 - 2", d3-path@2:
349 | version "2.0.0"
350 | resolved "https://registry.yarnpkg.com/d3-path/-/d3-path-2.0.0.tgz#55d86ac131a0548adae241eebfb56b4582dd09d8"
351 | integrity sha512-ZwZQxKhBnv9yHaiWd6ZU4x5BtCQ7pXszEV9CU6kRgwIQVQGLMv1oiL4M+MK/n79sYzsj+gcgpPQSctJUsLN7fA==
352 |
353 | d3-polygon@2:
354 | version "2.0.0"
355 | resolved "https://registry.yarnpkg.com/d3-polygon/-/d3-polygon-2.0.0.tgz#13608ef042fbec625ba1598327564f03c0396d8e"
356 | integrity sha512-MsexrCK38cTGermELs0cO1d79DcTsQRN7IWMJKczD/2kBjzNXxLUWP33qRF6VDpiLV/4EI4r6Gs0DAWQkE8pSQ==
357 |
358 | "d3-quadtree@1 - 2", d3-quadtree@2:
359 | version "2.0.0"
360 | resolved "https://registry.yarnpkg.com/d3-quadtree/-/d3-quadtree-2.0.0.tgz#edbad045cef88701f6fee3aee8e93fb332d30f9d"
361 | integrity sha512-b0Ed2t1UUalJpc3qXzKi+cPGxeXRr4KU9YSlocN74aTzp6R/Ud43t79yLLqxHRWZfsvWXmbDWPpoENK1K539xw==
362 |
363 | d3-random@2:
364 | version "2.2.2"
365 | resolved "https://registry.yarnpkg.com/d3-random/-/d3-random-2.2.2.tgz#5eebd209ef4e45a2b362b019c1fb21c2c98cbb6e"
366 | integrity sha512-0D9P8TRj6qDAtHhRQn6EfdOtHMfsUWanl3yb/84C4DqpZ+VsgfI5iTVRNRbELCfNvRfpMr8OrqqUTQ6ANGCijw==
367 |
368 | d3-scale-chromatic@2:
369 | version "2.0.0"
370 | resolved "https://registry.yarnpkg.com/d3-scale-chromatic/-/d3-scale-chromatic-2.0.0.tgz#c13f3af86685ff91323dc2f0ebd2dabbd72d8bab"
371 | integrity sha512-LLqy7dJSL8yDy7NRmf6xSlsFZ6zYvJ4BcWFE4zBrOPnQERv9zj24ohnXKRbyi9YHnYV+HN1oEO3iFK971/gkzA==
372 | dependencies:
373 | d3-color "1 - 2"
374 | d3-interpolate "1 - 2"
375 |
376 | d3-scale@3:
377 | version "3.2.3"
378 | resolved "https://registry.yarnpkg.com/d3-scale/-/d3-scale-3.2.3.tgz#be380f57f1f61d4ff2e6cbb65a40593a51649cfd"
379 | integrity sha512-8E37oWEmEzj57bHcnjPVOBS3n4jqakOeuv1EDdQSiSrYnMCBdMd3nc4HtKk7uia8DUHcY/CGuJ42xxgtEYrX0g==
380 | dependencies:
381 | d3-array "^2.3.0"
382 | d3-format "1 - 2"
383 | d3-interpolate "1.2.0 - 2"
384 | d3-time "1 - 2"
385 | d3-time-format "2 - 3"
386 |
387 | d3-selection@2:
388 | version "2.0.0"
389 | resolved "https://registry.yarnpkg.com/d3-selection/-/d3-selection-2.0.0.tgz#94a11638ea2141b7565f883780dabc7ef6a61066"
390 | integrity sha512-XoGGqhLUN/W14NmaqcO/bb1nqjDAw5WtSYb2X8wiuQWvSZUsUVYsOSkOybUrNvcBjaywBdYPy03eXHMXjk9nZA==
391 |
392 | d3-shape@2:
393 | version "2.0.0"
394 | resolved "https://registry.yarnpkg.com/d3-shape/-/d3-shape-2.0.0.tgz#2331b62fa784a2a1daac47a7233cfd69301381fd"
395 | integrity sha512-djpGlA779ua+rImicYyyjnOjeubyhql1Jyn1HK0bTyawuH76UQRWXd+pftr67H6Fa8hSwetkgb/0id3agKWykw==
396 | dependencies:
397 | d3-path "1 - 2"
398 |
399 | "d3-time-format@2 - 3", d3-time-format@3:
400 | version "3.0.0"
401 | resolved "https://registry.yarnpkg.com/d3-time-format/-/d3-time-format-3.0.0.tgz#df8056c83659e01f20ac5da5fdeae7c08d5f1bb6"
402 | integrity sha512-UXJh6EKsHBTjopVqZBhFysQcoXSv/5yLONZvkQ5Kk3qbwiUYkdX17Xa1PT6U1ZWXGGfB1ey5L8dKMlFq2DO0Ag==
403 | dependencies:
404 | d3-time "1 - 2"
405 |
406 | "d3-time@1 - 2", d3-time@2:
407 | version "2.0.0"
408 | resolved "https://registry.yarnpkg.com/d3-time/-/d3-time-2.0.0.tgz#ad7c127d17c67bd57a4c61f3eaecb81108b1e0ab"
409 | integrity sha512-2mvhstTFcMvwStWd9Tj3e6CEqtOivtD8AUiHT8ido/xmzrI9ijrUUihZ6nHuf/vsScRBonagOdj0Vv+SEL5G3Q==
410 |
411 | "d3-timer@1 - 2", d3-timer@2:
412 | version "2.0.0"
413 | resolved "https://registry.yarnpkg.com/d3-timer/-/d3-timer-2.0.0.tgz#055edb1d170cfe31ab2da8968deee940b56623e6"
414 | integrity sha512-TO4VLh0/420Y/9dO3+f9abDEFYeCUr2WZRlxJvbp4HPTQcSylXNiL6yZa9FIUvV1yRiFufl1bszTCLDqv9PWNA==
415 |
416 | d3-transition@2:
417 | version "2.0.0"
418 | resolved "https://registry.yarnpkg.com/d3-transition/-/d3-transition-2.0.0.tgz#366ef70c22ef88d1e34105f507516991a291c94c"
419 | integrity sha512-42ltAGgJesfQE3u9LuuBHNbGrI/AJjNL2OAUdclE70UE6Vy239GCBEYD38uBPoLeNsOhFStGpPI0BAOV+HMxog==
420 | dependencies:
421 | d3-color "1 - 2"
422 | d3-dispatch "1 - 2"
423 | d3-ease "1 - 2"
424 | d3-interpolate "1 - 2"
425 | d3-timer "1 - 2"
426 |
427 | d3-zoom@2:
428 | version "2.0.0"
429 | resolved "https://registry.yarnpkg.com/d3-zoom/-/d3-zoom-2.0.0.tgz#f04d0afd05518becce879d04709c47ecd93fba54"
430 | integrity sha512-fFg7aoaEm9/jf+qfstak0IYpnesZLiMX6GZvXtUSdv8RH2o4E2qeelgdU09eKS6wGuiGMfcnMI0nTIqWzRHGpw==
431 | dependencies:
432 | d3-dispatch "1 - 2"
433 | d3-drag "2"
434 | d3-interpolate "1 - 2"
435 | d3-selection "2"
436 | d3-transition "2"
437 |
438 | d3@^6.3.1:
439 | version "6.3.1"
440 | resolved "https://registry.yarnpkg.com/d3/-/d3-6.3.1.tgz#c5fe6c7abff432826775a9e04db80b5f2e22eb1c"
441 | integrity sha512-rbaoA67o2N4lO1TCuvrTGQdowNb3zT0z2ygg6TLmJZAd7TRPg+lhbfDOVwQUAgdbRD+73kg2FrEQ9HLiap5H2w==
442 | dependencies:
443 | d3-array "2"
444 | d3-axis "2"
445 | d3-brush "2"
446 | d3-chord "2"
447 | d3-color "2"
448 | d3-contour "2"
449 | d3-delaunay "5"
450 | d3-dispatch "2"
451 | d3-drag "2"
452 | d3-dsv "2"
453 | d3-ease "2"
454 | d3-fetch "2"
455 | d3-force "2"
456 | d3-format "2"
457 | d3-geo "2"
458 | d3-hierarchy "2"
459 | d3-interpolate "2"
460 | d3-path "2"
461 | d3-polygon "2"
462 | d3-quadtree "2"
463 | d3-random "2"
464 | d3-scale "3"
465 | d3-scale-chromatic "2"
466 | d3-selection "2"
467 | d3-shape "2"
468 | d3-time "2"
469 | d3-time-format "3"
470 | d3-timer "2"
471 | d3-transition "2"
472 | d3-zoom "2"
473 |
474 | debug@^4.0.1, debug@^4.1.1:
475 | version "4.3.1"
476 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee"
477 | integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==
478 | dependencies:
479 | ms "2.1.2"
480 |
481 | deep-is@^0.1.3:
482 | version "0.1.3"
483 | resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
484 | integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=
485 |
486 | deepmerge@^4.2.2:
487 | version "4.2.2"
488 | resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955"
489 | integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==
490 |
491 | delaunator@4:
492 | version "4.0.1"
493 | resolved "https://registry.yarnpkg.com/delaunator/-/delaunator-4.0.1.tgz#3d779687f57919a7a418f8ab947d3bddb6846957"
494 | integrity sha512-WNPWi1IRKZfCt/qIDMfERkDp93+iZEmOxN2yy4Jg+Xhv8SLk2UTqqbe1sfiipn0and9QrE914/ihdx82Y/Giag==
495 |
496 | doctrine@^3.0.0:
497 | version "3.0.0"
498 | resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961"
499 | integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==
500 | dependencies:
501 | esutils "^2.0.2"
502 |
503 | emoji-regex@^8.0.0:
504 | version "8.0.0"
505 | resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
506 | integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
507 |
508 | enquirer@^2.3.5:
509 | version "2.3.6"
510 | resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d"
511 | integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==
512 | dependencies:
513 | ansi-colors "^4.1.1"
514 |
515 | escape-string-regexp@^1.0.5:
516 | version "1.0.5"
517 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
518 | integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
519 |
520 | eslint-config-prettier@^7.1.0:
521 | version "7.1.0"
522 | resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-7.1.0.tgz#5402eb559aa94b894effd6bddfa0b1ca051c858f"
523 | integrity sha512-9sm5/PxaFG7qNJvJzTROMM1Bk1ozXVTKI0buKOyb0Bsr1hrwi0H/TzxF/COtf1uxikIK8SwhX7K6zg78jAzbeA==
524 |
525 | eslint-plugin-prettier@^3.3.0:
526 | version "3.3.0"
527 | resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-3.3.0.tgz#61e295349a65688ffac0b7808ef0a8244bdd8d40"
528 | integrity sha512-tMTwO8iUWlSRZIwS9k7/E4vrTsfvsrcM5p1eftyuqWH25nKsz/o6/54I7jwQ/3zobISyC7wMy9ZsFwgTxOcOpQ==
529 | dependencies:
530 | prettier-linter-helpers "^1.0.0"
531 |
532 | eslint-scope@^5.1.1:
533 | version "5.1.1"
534 | resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c"
535 | integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==
536 | dependencies:
537 | esrecurse "^4.3.0"
538 | estraverse "^4.1.1"
539 |
540 | eslint-utils@^2.1.0:
541 | version "2.1.0"
542 | resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27"
543 | integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==
544 | dependencies:
545 | eslint-visitor-keys "^1.1.0"
546 |
547 | eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0:
548 | version "1.3.0"
549 | resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e"
550 | integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==
551 |
552 | eslint-visitor-keys@^2.0.0:
553 | version "2.0.0"
554 | resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz#21fdc8fbcd9c795cc0321f0563702095751511a8"
555 | integrity sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==
556 |
557 | eslint@^7.17.0:
558 | version "7.17.0"
559 | resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.17.0.tgz#4ccda5bf12572ad3bf760e6f195886f50569adb0"
560 | integrity sha512-zJk08MiBgwuGoxes5sSQhOtibZ75pz0J35XTRlZOk9xMffhpA9BTbQZxoXZzOl5zMbleShbGwtw+1kGferfFwQ==
561 | dependencies:
562 | "@babel/code-frame" "^7.0.0"
563 | "@eslint/eslintrc" "^0.2.2"
564 | ajv "^6.10.0"
565 | chalk "^4.0.0"
566 | cross-spawn "^7.0.2"
567 | debug "^4.0.1"
568 | doctrine "^3.0.0"
569 | enquirer "^2.3.5"
570 | eslint-scope "^5.1.1"
571 | eslint-utils "^2.1.0"
572 | eslint-visitor-keys "^2.0.0"
573 | espree "^7.3.1"
574 | esquery "^1.2.0"
575 | esutils "^2.0.2"
576 | file-entry-cache "^6.0.0"
577 | functional-red-black-tree "^1.0.1"
578 | glob-parent "^5.0.0"
579 | globals "^12.1.0"
580 | ignore "^4.0.6"
581 | import-fresh "^3.0.0"
582 | imurmurhash "^0.1.4"
583 | is-glob "^4.0.0"
584 | js-yaml "^3.13.1"
585 | json-stable-stringify-without-jsonify "^1.0.1"
586 | levn "^0.4.1"
587 | lodash "^4.17.19"
588 | minimatch "^3.0.4"
589 | natural-compare "^1.4.0"
590 | optionator "^0.9.1"
591 | progress "^2.0.0"
592 | regexpp "^3.1.0"
593 | semver "^7.2.1"
594 | strip-ansi "^6.0.0"
595 | strip-json-comments "^3.1.0"
596 | table "^6.0.4"
597 | text-table "^0.2.0"
598 | v8-compile-cache "^2.0.3"
599 |
600 | espree@^7.3.0, espree@^7.3.1:
601 | version "7.3.1"
602 | resolved "https://registry.yarnpkg.com/espree/-/espree-7.3.1.tgz#f2df330b752c6f55019f8bd89b7660039c1bbbb6"
603 | integrity sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==
604 | dependencies:
605 | acorn "^7.4.0"
606 | acorn-jsx "^5.3.1"
607 | eslint-visitor-keys "^1.3.0"
608 |
609 | esprima@^4.0.0:
610 | version "4.0.1"
611 | resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
612 | integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
613 |
614 | esquery@^1.2.0:
615 | version "1.3.1"
616 | resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.3.1.tgz#b78b5828aa8e214e29fb74c4d5b752e1c033da57"
617 | integrity sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==
618 | dependencies:
619 | estraverse "^5.1.0"
620 |
621 | esrecurse@^4.3.0:
622 | version "4.3.0"
623 | resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921"
624 | integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==
625 | dependencies:
626 | estraverse "^5.2.0"
627 |
628 | estraverse@^4.1.1:
629 | version "4.3.0"
630 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d"
631 | integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==
632 |
633 | estraverse@^5.1.0, estraverse@^5.2.0:
634 | version "5.2.0"
635 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880"
636 | integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==
637 |
638 | estree-walker@^1.0.1:
639 | version "1.0.1"
640 | resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-1.0.1.tgz#31bc5d612c96b704106b477e6dd5d8aa138cb700"
641 | integrity sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==
642 |
643 | esutils@^2.0.2:
644 | version "2.0.3"
645 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
646 | integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
647 |
648 | fast-deep-equal@^3.1.1:
649 | version "3.1.3"
650 | resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
651 | integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
652 |
653 | fast-diff@^1.1.2:
654 | version "1.2.0"
655 | resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03"
656 | integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==
657 |
658 | fast-json-stable-stringify@^2.0.0:
659 | version "2.1.0"
660 | resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
661 | integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
662 |
663 | fast-levenshtein@^2.0.6:
664 | version "2.0.6"
665 | resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
666 | integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=
667 |
668 | file-entry-cache@^6.0.0:
669 | version "6.0.0"
670 | resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.0.tgz#7921a89c391c6d93efec2169ac6bf300c527ea0a"
671 | integrity sha512-fqoO76jZ3ZnYrXLDRxBR1YvOvc0k844kcOg40bgsPrE25LAb/PDqTY+ho64Xh2c8ZXgIKldchCFHczG2UVRcWA==
672 | dependencies:
673 | flat-cache "^3.0.4"
674 |
675 | flat-cache@^3.0.4:
676 | version "3.0.4"
677 | resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11"
678 | integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==
679 | dependencies:
680 | flatted "^3.1.0"
681 | rimraf "^3.0.2"
682 |
683 | flatted@^3.1.0:
684 | version "3.1.0"
685 | resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.1.0.tgz#a5d06b4a8b01e3a63771daa5cb7a1903e2e57067"
686 | integrity sha512-tW+UkmtNg/jv9CSofAKvgVcO7c2URjhTdW1ZTkcAritblu8tajiYy7YisnIflEwtKssCtOxpnBRoCB7iap0/TA==
687 |
688 | fs.realpath@^1.0.0:
689 | version "1.0.0"
690 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
691 | integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
692 |
693 | fsevents@~2.1.2:
694 | version "2.1.3"
695 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e"
696 | integrity sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==
697 |
698 | function-bind@^1.1.1:
699 | version "1.1.1"
700 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
701 | integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
702 |
703 | functional-red-black-tree@^1.0.1:
704 | version "1.0.1"
705 | resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327"
706 | integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=
707 |
708 | glob-parent@^5.0.0:
709 | version "5.1.1"
710 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229"
711 | integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==
712 | dependencies:
713 | is-glob "^4.0.1"
714 |
715 | glob@^7.1.3:
716 | version "7.1.6"
717 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6"
718 | integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==
719 | dependencies:
720 | fs.realpath "^1.0.0"
721 | inflight "^1.0.4"
722 | inherits "2"
723 | minimatch "^3.0.4"
724 | once "^1.3.0"
725 | path-is-absolute "^1.0.0"
726 |
727 | globals@^12.1.0:
728 | version "12.4.0"
729 | resolved "https://registry.yarnpkg.com/globals/-/globals-12.4.0.tgz#a18813576a41b00a24a97e7f815918c2e19925f8"
730 | integrity sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==
731 | dependencies:
732 | type-fest "^0.8.1"
733 |
734 | has-flag@^3.0.0:
735 | version "3.0.0"
736 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
737 | integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0=
738 |
739 | has-flag@^4.0.0:
740 | version "4.0.0"
741 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
742 | integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
743 |
744 | has@^1.0.3:
745 | version "1.0.3"
746 | resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
747 | integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
748 | dependencies:
749 | function-bind "^1.1.1"
750 |
751 | iconv-lite@0.4:
752 | version "0.4.24"
753 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
754 | integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
755 | dependencies:
756 | safer-buffer ">= 2.1.2 < 3"
757 |
758 | ignore@^4.0.6:
759 | version "4.0.6"
760 | resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc"
761 | integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==
762 |
763 | import-fresh@^3.0.0, import-fresh@^3.2.1:
764 | version "3.3.0"
765 | resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b"
766 | integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==
767 | dependencies:
768 | parent-module "^1.0.0"
769 | resolve-from "^4.0.0"
770 |
771 | imurmurhash@^0.1.4:
772 | version "0.1.4"
773 | resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
774 | integrity sha1-khi5srkoojixPcT7a21XbyMUU+o=
775 |
776 | inflight@^1.0.4:
777 | version "1.0.6"
778 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
779 | integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=
780 | dependencies:
781 | once "^1.3.0"
782 | wrappy "1"
783 |
784 | inherits@2:
785 | version "2.0.4"
786 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
787 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
788 |
789 | is-core-module@^2.1.0:
790 | version "2.2.0"
791 | resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.2.0.tgz#97037ef3d52224d85163f5597b2b63d9afed981a"
792 | integrity sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==
793 | dependencies:
794 | has "^1.0.3"
795 |
796 | is-extglob@^2.1.1:
797 | version "2.1.1"
798 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
799 | integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=
800 |
801 | is-fullwidth-code-point@^3.0.0:
802 | version "3.0.0"
803 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d"
804 | integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==
805 |
806 | is-glob@^4.0.0, is-glob@^4.0.1:
807 | version "4.0.1"
808 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc"
809 | integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==
810 | dependencies:
811 | is-extglob "^2.1.1"
812 |
813 | is-module@^1.0.0:
814 | version "1.0.0"
815 | resolved "https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591"
816 | integrity sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=
817 |
818 | isexe@^2.0.0:
819 | version "2.0.0"
820 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
821 | integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=
822 |
823 | js-tokens@^4.0.0:
824 | version "4.0.0"
825 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
826 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
827 |
828 | js-yaml@^3.13.1:
829 | version "3.14.1"
830 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537"
831 | integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==
832 | dependencies:
833 | argparse "^1.0.7"
834 | esprima "^4.0.0"
835 |
836 | json-schema-traverse@^0.4.1:
837 | version "0.4.1"
838 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
839 | integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
840 |
841 | json-schema-traverse@^1.0.0:
842 | version "1.0.0"
843 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2"
844 | integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==
845 |
846 | json-stable-stringify-without-jsonify@^1.0.1:
847 | version "1.0.1"
848 | resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651"
849 | integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=
850 |
851 | levn@^0.4.1:
852 | version "0.4.1"
853 | resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade"
854 | integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==
855 | dependencies:
856 | prelude-ls "^1.2.1"
857 | type-check "~0.4.0"
858 |
859 | lodash@^4.17.19, lodash@^4.17.20:
860 | version "4.17.20"
861 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52"
862 | integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==
863 |
864 | lru-cache@^6.0.0:
865 | version "6.0.0"
866 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94"
867 | integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==
868 | dependencies:
869 | yallist "^4.0.0"
870 |
871 | minimatch@^3.0.4:
872 | version "3.0.4"
873 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
874 | integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
875 | dependencies:
876 | brace-expansion "^1.1.7"
877 |
878 | ms@2.1.2:
879 | version "2.1.2"
880 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
881 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
882 |
883 | natural-compare@^1.4.0:
884 | version "1.4.0"
885 | resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
886 | integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=
887 |
888 | once@^1.3.0:
889 | version "1.4.0"
890 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
891 | integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
892 | dependencies:
893 | wrappy "1"
894 |
895 | optionator@^0.9.1:
896 | version "0.9.1"
897 | resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499"
898 | integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==
899 | dependencies:
900 | deep-is "^0.1.3"
901 | fast-levenshtein "^2.0.6"
902 | levn "^0.4.1"
903 | prelude-ls "^1.2.1"
904 | type-check "^0.4.0"
905 | word-wrap "^1.2.3"
906 |
907 | parent-module@^1.0.0:
908 | version "1.0.1"
909 | resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2"
910 | integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==
911 | dependencies:
912 | callsites "^3.0.0"
913 |
914 | path-is-absolute@^1.0.0:
915 | version "1.0.1"
916 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
917 | integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
918 |
919 | path-key@^3.1.0:
920 | version "3.1.1"
921 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
922 | integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
923 |
924 | path-parse@^1.0.6:
925 | version "1.0.6"
926 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c"
927 | integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==
928 |
929 | picomatch@^2.2.2:
930 | version "2.2.2"
931 | resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad"
932 | integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==
933 |
934 | prelude-ls@^1.2.1:
935 | version "1.2.1"
936 | resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396"
937 | integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==
938 |
939 | prettier-linter-helpers@^1.0.0:
940 | version "1.0.0"
941 | resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b"
942 | integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==
943 | dependencies:
944 | fast-diff "^1.1.2"
945 |
946 | prettier@^2.2.1:
947 | version "2.2.1"
948 | resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.2.1.tgz#795a1a78dd52f073da0cd42b21f9c91381923ff5"
949 | integrity sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q==
950 |
951 | progress@^2.0.0:
952 | version "2.0.3"
953 | resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8"
954 | integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==
955 |
956 | punycode@^2.1.0:
957 | version "2.1.1"
958 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
959 | integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
960 |
961 | regexpp@^3.1.0:
962 | version "3.1.0"
963 | resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.1.0.tgz#206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2"
964 | integrity sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==
965 |
966 | require-from-string@^2.0.2:
967 | version "2.0.2"
968 | resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909"
969 | integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==
970 |
971 | resolve-from@^4.0.0:
972 | version "4.0.0"
973 | resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6"
974 | integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==
975 |
976 | resolve@^1.19.0:
977 | version "1.19.0"
978 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.19.0.tgz#1af5bf630409734a067cae29318aac7fa29a267c"
979 | integrity sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==
980 | dependencies:
981 | is-core-module "^2.1.0"
982 | path-parse "^1.0.6"
983 |
984 | rimraf@^3.0.2:
985 | version "3.0.2"
986 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a"
987 | integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==
988 | dependencies:
989 | glob "^7.1.3"
990 |
991 | rollup@^2.35.1:
992 | version "2.35.1"
993 | resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.35.1.tgz#e6bc8d10893556a638066f89e8c97f422d03968c"
994 | integrity sha512-q5KxEyWpprAIcainhVy6HfRttD9kutQpHbeqDTWnqAFNJotiojetK6uqmcydNMymBEtC4I8bCYR+J3mTMqeaUA==
995 | optionalDependencies:
996 | fsevents "~2.1.2"
997 |
998 | rw@1:
999 | version "1.3.3"
1000 | resolved "https://registry.yarnpkg.com/rw/-/rw-1.3.3.tgz#3f862dfa91ab766b14885ef4d01124bfda074fb4"
1001 | integrity sha1-P4Yt+pGrdmsUiF700BEkv9oHT7Q=
1002 |
1003 | "safer-buffer@>= 2.1.2 < 3":
1004 | version "2.1.2"
1005 | resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
1006 | integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
1007 |
1008 | semver@^7.2.1:
1009 | version "7.3.4"
1010 | resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.4.tgz#27aaa7d2e4ca76452f98d3add093a72c943edc97"
1011 | integrity sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==
1012 | dependencies:
1013 | lru-cache "^6.0.0"
1014 |
1015 | shebang-command@^2.0.0:
1016 | version "2.0.0"
1017 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea"
1018 | integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==
1019 | dependencies:
1020 | shebang-regex "^3.0.0"
1021 |
1022 | shebang-regex@^3.0.0:
1023 | version "3.0.0"
1024 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172"
1025 | integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
1026 |
1027 | slice-ansi@^4.0.0:
1028 | version "4.0.0"
1029 | resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b"
1030 | integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==
1031 | dependencies:
1032 | ansi-styles "^4.0.0"
1033 | astral-regex "^2.0.0"
1034 | is-fullwidth-code-point "^3.0.0"
1035 |
1036 | source-map-support@~0.5.19:
1037 | version "0.5.19"
1038 | resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61"
1039 | integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==
1040 | dependencies:
1041 | buffer-from "^1.0.0"
1042 | source-map "^0.6.0"
1043 |
1044 | source-map@^0.6.0:
1045 | version "0.6.1"
1046 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
1047 | integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
1048 |
1049 | source-map@~0.7.2:
1050 | version "0.7.3"
1051 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383"
1052 | integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==
1053 |
1054 | sprintf-js@~1.0.2:
1055 | version "1.0.3"
1056 | resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
1057 | integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=
1058 |
1059 | string-width@^4.2.0:
1060 | version "4.2.0"
1061 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5"
1062 | integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==
1063 | dependencies:
1064 | emoji-regex "^8.0.0"
1065 | is-fullwidth-code-point "^3.0.0"
1066 | strip-ansi "^6.0.0"
1067 |
1068 | strip-ansi@^6.0.0:
1069 | version "6.0.0"
1070 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532"
1071 | integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==
1072 | dependencies:
1073 | ansi-regex "^5.0.0"
1074 |
1075 | strip-json-comments@^3.1.0, strip-json-comments@^3.1.1:
1076 | version "3.1.1"
1077 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006"
1078 | integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==
1079 |
1080 | supports-color@^5.3.0:
1081 | version "5.5.0"
1082 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
1083 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
1084 | dependencies:
1085 | has-flag "^3.0.0"
1086 |
1087 | supports-color@^7.1.0:
1088 | version "7.2.0"
1089 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da"
1090 | integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==
1091 | dependencies:
1092 | has-flag "^4.0.0"
1093 |
1094 | table@^6.0.4:
1095 | version "6.0.6"
1096 | resolved "https://registry.yarnpkg.com/table/-/table-6.0.6.tgz#e9223f1e851213e2e43ab584b0fec33fb09a8e7a"
1097 | integrity sha512-OInCtPmDNieVBkVFi6C8RwU2S2H0h8mF3e3TQK4nreaUNCpooQUkI+A/KuEkm5FawfhWIfNqG+qfelVVR+V00g==
1098 | dependencies:
1099 | ajv "^7.0.2"
1100 | lodash "^4.17.20"
1101 | slice-ansi "^4.0.0"
1102 | string-width "^4.2.0"
1103 |
1104 | terser@^5.5.1:
1105 | version "5.5.1"
1106 | resolved "https://registry.yarnpkg.com/terser/-/terser-5.5.1.tgz#540caa25139d6f496fdea056e414284886fb2289"
1107 | integrity sha512-6VGWZNVP2KTUcltUQJ25TtNjx/XgdDsBDKGt8nN0MpydU36LmbPPcMBd2kmtZNNGVVDLg44k7GKeHHj+4zPIBQ==
1108 | dependencies:
1109 | commander "^2.20.0"
1110 | source-map "~0.7.2"
1111 | source-map-support "~0.5.19"
1112 |
1113 | text-table@^0.2.0:
1114 | version "0.2.0"
1115 | resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
1116 | integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=
1117 |
1118 | type-check@^0.4.0, type-check@~0.4.0:
1119 | version "0.4.0"
1120 | resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1"
1121 | integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==
1122 | dependencies:
1123 | prelude-ls "^1.2.1"
1124 |
1125 | type-fest@^0.8.1:
1126 | version "0.8.1"
1127 | resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d"
1128 | integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==
1129 |
1130 | uri-js@^4.2.2:
1131 | version "4.4.0"
1132 | resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.0.tgz#aa714261de793e8a82347a7bcc9ce74e86f28602"
1133 | integrity sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==
1134 | dependencies:
1135 | punycode "^2.1.0"
1136 |
1137 | v8-compile-cache@^2.0.3:
1138 | version "2.2.0"
1139 | resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz#9471efa3ef9128d2f7c6a7ca39c4dd6b5055b132"
1140 | integrity sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q==
1141 |
1142 | which@^2.0.1:
1143 | version "2.0.2"
1144 | resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"
1145 | integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==
1146 | dependencies:
1147 | isexe "^2.0.0"
1148 |
1149 | word-wrap@^1.2.3:
1150 | version "1.2.3"
1151 | resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c"
1152 | integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==
1153 |
1154 | wrappy@1:
1155 | version "1.0.2"
1156 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
1157 | integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
1158 |
1159 | yallist@^4.0.0:
1160 | version "4.0.0"
1161 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"
1162 | integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
1163 |
--------------------------------------------------------------------------------
/examples/viral_binned.csv:
--------------------------------------------------------------------------------
1 | ,Individual,Position,Mutation,BadReads
2 | 0,CY0320,1309.0,0.16414062500000007,6.9401266328125
3 | 1,CY0320,1436.7536231884058,0.35039062499999996,7.716727437499995
4 | 2,CY0320,1564.5072463768115,0.16863281250000015,3.3157043308593757
5 | 3,CY0320,1692.2608695652175,0.14488281249999999,4.0818083402343746
6 | 4,CY0320,1820.0144927536232,0.1418897637795276,3.300152786614174
7 | 5,CY0320,1947.768115942029,0.11863281250000007,1.9020915628906234
8 | 6,CY0320,2075.521739130435,0.6051562499999994,3.8653067578125
9 | 7,CY0320,2203.2753623188405,0.6475781249999987,2.993052058593751
10 | 8,CY0320,2331.0289855072465,0.18282352941176477,6.3349006666666625
11 | 9,CY0320,2458.782608695652,0.9787692307692303,3.910043765384614
12 | 10,CY0320,2586.536231884058,0.16403100775193796,5.792980441860464
13 | 11,CY0320,2714.289855072464,0.2220463320463323,2.311942065250964
14 | 12,CY0320,2842.0434782608695,0.17444881889763783,3.280244437795275
15 | 13,CY0320,2969.797101449275,0.16394531249999997,5.672661482421871
16 | 14,CY0320,3097.550724637681,0.27812500000000034,5.616642662500001
17 | 15,CY0320,3225.304347826087,0.1878906249999999,7.135260076953127
18 | 16,CY0320,3353.057971014493,0.35153543307086593,4.020021477559054
19 | 17,CY0320,3480.8115942028985,0.15402343750000008,2.9405190058593753
20 | 18,CY0320,3608.5652173913045,0.19207031249999987,1.5596409265624993
21 | 19,CY0320,3736.31884057971,0.17015624999999995,4.390660379296876
22 | 20,CY0320,3864.072463768116,0.19519685039370083,5.514240151181094
23 | 21,CY0320,3991.8260869565215,0.18843749999999984,3.1433069320312503
24 | 22,CY0320,4119.579710144928,0.25269531250000005,3.8391236593750007
25 | 23,CY0320,4247.333333333334,0.18824218749999982,2.2566117222656255
26 | 24,CY0320,4375.086956521739,0.17228346456692906,4.682146356299212
27 | 25,CY0320,4502.840579710145,0.14234375000000002,2.1287686394531256
28 | 26,CY0320,4630.59420289855,0.19269531250000005,3.0093863273437482
29 | 27,CY0320,4758.347826086956,0.17230468750000008,2.447729292968751
30 | 28,CY0320,4886.101449275362,0.15755905511811022,4.188021149606299
31 | 29,CY0320,5013.855072463768,0.18875000000000017,1.5788944773437488
32 | 30,CY0320,5141.608695652174,0.17445312500000001,3.6477647207031243
33 | 31,CY0320,5269.36231884058,0.13984375000000013,3.835206306249999
34 | 32,CY0320,5397.115942028986,0.15460629921259844,5.4837199696850405
35 | 33,CY0320,5524.869565217391,0.13743190661478602,2.5449546789883266
36 | 34,CY0320,5652.623188405797,0.11890625000000002,3.390490675781249
37 | 35,CY0320,5780.376811594203,0.1411718749999999,3.8679722929687497
38 | 36,CY0320,5908.130434782609,0.15149606299212592,2.8710047535433048
39 | 37,CY0320,6035.884057971014,0.15621093749999992,1.7825613121093744
40 | 38,CY0320,6163.63768115942,0.14759689922480612,3.1219208058139523
41 | 39,CY0320,6291.391304347826,0.1533203124999999,7.056821732421878
42 | 40,CY0320,6419.144927536232,0.18413385826771653,4.0160300937007865
43 | 41,CY0320,6546.898550724638,1.218158844765343,3.2687699209386296
44 | 42,CY0320,6674.652173913043,0.18957198443579762,5.1531167
45 | 43,CY0320,6802.405797101449,0.1986872586872585,3.4261951150579146
46 | 44,CY0320,6930.159420289855,0.5490157480314964,2.479298823228347
47 | 45,CY0320,7057.913043478261,0.39675781249999953,2.4748383925781243
48 | 46,CY0320,7185.666666666667,0.19246093750000023,3.132903716015627
49 | 47,CY0320,7313.420289855072,0.2082421875000001,5.0701402132812525
50 | 48,CY0320,7441.173913043478,0.6525984251968504,1.433947831102363
51 | 49,CY0320,7568.927536231884,0.16062499999999968,1.6148012445312507
52 | 50,CY0320,7696.68115942029,0.20941406249999972,2.7217306097656246
53 | 51,CY0320,7824.434782608696,0.19410156250000002,2.9455317812499993
54 | 52,CY0320,7952.188405797101,0.20188976377952764,2.334658173622048
55 | 53,CY0320,8079.942028985507,0.19812500000000005,4.176236520703129
56 | 54,CY0320,8207.695652173912,0.1822265624999999,2.0837746089843776
57 | 55,CY0320,8335.44927536232,0.20273437500000008,4.821206915624999
58 | 56,CY0320,8463.202898550724,0.1528740157480318,1.5063722511811026
59 | 57,CY0320,8590.95652173913,0.16343749999999985,1.9538643695312508
60 | 58,CY0320,8718.710144927536,0.18199218749999968,2.420692651953125
61 | 59,CY0320,8846.463768115942,0.2008984374999996,1.696621815625
62 | 60,CY0320,8974.217391304348,0.15787401574803162,3.5761984716535435
63 | 61,CY0320,9101.971014492754,0.2924045801526714,1.9460410400763366
64 | 62,CY0320,9229.72463768116,1.047300380228137,1.5455315045627378
65 | 63,CY0320,9357.478260869564,0.6004545454545461,2.3055571469696963
66 | 64,CY0320,9485.231884057972,1.0531889763779523,4.781321371259844
67 | 65,CY0320,9612.985507246376,0.9572656249999996,5.07673243125
68 | 66,CY0320,9740.739130434782,0.17789062500000014,2.413571678515625
69 | 67,CY0320,9868.492753623188,0.6896923076923074,2.082689098846154
70 | 68,CY0320,9996.246376811594,0.6077254901960785,2.0965377098039206
71 | 69,CY0320,10124.0,0.0,5.863585
72 | 70,CY0321,1309.0,0.30140625000000026,6.530543624999999
73 | 71,CY0321,1436.7536231884058,0.3105468750000002,7.690414118359375
74 | 72,CY0321,1564.5072463768115,0.1504296874999999,3.25015274453125
75 | 73,CY0321,1692.2608695652175,0.14402343750000005,3.9151282351562493
76 | 74,CY0321,1820.0144927536232,0.12374015748031483,3.031952048818897
77 | 75,CY0321,1947.768115942029,0.13097656250000003,2.247138594531249
78 | 76,CY0321,2075.521739130435,0.15761718750000006,5.209821417187503
79 | 77,CY0321,2203.2753623188405,0.11460937500000005,3.821143990234375
80 | 78,CY0321,2331.0289855072465,0.12188976377952758,6.646004027559058
81 | 79,CY0321,2458.782608695652,1.0342145593869738,4.810249812260538
82 | 80,CY0321,2586.536231884058,0.6168846153846156,6.052265411538465
83 | 81,CY0321,2714.289855072464,0.26198443579766495,2.536090164202334
84 | 82,CY0321,2842.0434782608695,0.17472440944881898,3.862395342125985
85 | 83,CY0321,2969.797101449275,0.17347656249999993,6.486882736718749
86 | 84,CY0321,3097.550724637681,0.153359375,6.1578172808593745
87 | 85,CY0321,3225.304347826087,0.5214453124999999,7.553904102734373
88 | 86,CY0321,3353.057971014493,0.33137795275590537,3.9309591039370058
89 | 87,CY0321,3480.8115942028985,0.11894531250000008,3.259686982812501
90 | 88,CY0321,3608.5652173913045,0.12359374999999992,1.7722557695312497
91 | 89,CY0321,3736.31884057971,0.11359375000000002,5.2795443734375
92 | 90,CY0321,3864.072463768116,0.17307086614173223,5.561622874803149
93 | 91,CY0321,3991.8260869565215,0.16687499999999997,3.0180410664062487
94 | 92,CY0321,4119.579710144928,0.5114062499999996,4.183042548046874
95 | 93,CY0321,4247.333333333334,0.1268359375,2.5952166085937485
96 | 94,CY0321,4375.086956521739,0.11562992125984252,4.870724272834647
97 | 95,CY0321,4502.840579710145,0.1451953125000001,2.220587798046875
98 | 96,CY0321,4630.59420289855,0.10972656250000011,3.276069717968749
99 | 97,CY0321,4758.347826086956,0.15339843750000004,2.5175662203125
100 | 98,CY0321,4886.101449275362,0.12114173228346453,3.731202596850392
101 | 99,CY0321,5013.855072463768,0.1346874999999999,1.8042015218749998
102 | 100,CY0321,5141.608695652174,0.14035156250000003,4.281461552343748
103 | 101,CY0321,5269.36231884058,0.1241796874999999,3.7520019976562486
104 | 102,CY0321,5397.115942028986,0.17212598425196848,5.552774546062993
105 | 103,CY0321,5524.869565217391,0.08953124999999994,2.702958191406251
106 | 104,CY0321,5652.623188405797,0.4952734375,3.945512576171876
107 | 105,CY0321,5780.376811594203,0.11253906250000001,3.928153520312501
108 | 106,CY0321,5908.130434782609,0.12930735930735932,3.2658142077922068
109 | 107,CY0321,6035.884057971014,0.1300775193798449,1.6163039589147286
110 | 108,CY0321,6163.63768115942,0.09976744186046509,3.190665996124032
111 | 109,CY0321,6291.391304347826,0.17562500000000006,7.355771966406252
112 | 110,CY0321,6419.144927536232,0.13433070866141728,4.297267500787401
113 | 111,CY0321,6546.898550724638,0.22507575757575754,3.7549952113636356
114 | 112,CY0321,6674.652173913043,0.15187499999999982,5.614348233593753
115 | 113,CY0321,6802.405797101449,0.16418604651162805,3.9119667968992244
116 | 114,CY0321,6930.159420289855,0.09503937007874023,3.4127336409448814
117 | 115,CY0321,7057.913043478261,0.11820312500000005,3.1996127015624998
118 | 116,CY0321,7185.666666666667,0.20476562499999998,3.617579765624999
119 | 117,CY0321,7313.420289855072,0.17445312500000001,5.26727912890625
120 | 118,CY0321,7441.173913043478,0.1205511811023622,1.4369987448818895
121 | 119,CY0321,7568.927536231884,0.14523437500000014,1.8002334617187503
122 | 120,CY0321,7696.68115942029,0.16945312500000012,3.1742984273437482
123 | 121,CY0321,7824.434782608696,0.1394531249999999,3.20863701484375
124 | 122,CY0321,7952.188405797101,0.13251968503937006,2.450701436220472
125 | 123,CY0321,8079.942028985507,0.1969531250000001,4.2437907234375
126 | 124,CY0321,8207.695652173912,0.12828124999999987,2.128144055468752
127 | 125,CY0321,8335.44927536232,0.15648437500000004,5.282590282812501
128 | 126,CY0321,8463.202898550724,0.11842519685039377,1.6774553724409451
129 | 127,CY0321,8590.95652173913,0.12484375000000009,2.2094881125000003
130 | 128,CY0321,8718.710144927536,0.12828125,2.3496692718750003
131 | 129,CY0321,8846.463768115942,0.19507812500000002,1.8699701789062493
132 | 130,CY0321,8974.217391304348,0.09070866141732287,3.8405443496063
133 | 131,CY0321,9101.971014492754,0.1372656250000001,1.7532662640625005
134 | 132,CY0321,9229.72463768116,0.11852713178294569,1.6781427620155036
135 | 133,CY0321,9357.478260869564,0.167829457364341,2.946196664341085
136 | 134,CY0321,9485.231884057972,1.1155905511811024,5.1904783503937
137 | 135,CY0321,9612.985507246376,1.1075968992248055,5.3820004007751905
138 | 136,CY0321,9740.739130434782,0.08554687500000002,2.7677982664062495
139 | 137,CY0321,9868.492753623188,0.11601562499999997,2.480509301562501
140 | 138,CY0321,9996.246376811594,0.08590551181102363,1.8234404251968503
141 | 139,CY0321,10124.0,0.0,4.0
142 | 140,CY0322,1309.0,0.20953125,6.821114071484375
143 | 141,CY0322,1436.7536231884058,0.3128125000000002,7.5336839343749995
144 | 142,CY0322,1564.5072463768115,0.20601562500000004,3.0701015867187507
145 | 143,CY0322,1692.2608695652175,0.17238281249999987,4.2147392542968785
146 | 144,CY0322,1820.0144927536232,0.24570866141732275,3.3901900503936995
147 | 145,CY0322,1947.768115942029,0.11824218749999993,2.6131415675781273
148 | 146,CY0322,2075.521739130435,0.15410156249999998,5.1144431863281286
149 | 147,CY0322,2203.2753623188405,0.1940234375000001,4.120830203906252
150 | 148,CY0322,2331.0289855072465,0.1423622047244094,6.24453833976378
151 | 149,CY0322,2458.782608695652,0.8470703124999996,5.200734774609376
152 | 150,CY0322,2586.536231884058,0.7647307692307693,6.101180321153845
153 | 151,CY0322,2714.289855072464,0.22808429118773954,2.6211269291187724
154 | 152,CY0322,2842.0434782608695,0.188313725490196,3.7928599513725505
155 | 153,CY0322,2969.797101449275,0.16707031249999996,6.355086105859376
156 | 154,CY0322,3097.550724637681,0.2576171875000001,6.752172185156249
157 | 155,CY0322,3225.304347826087,0.17742187500000003,7.719856608593749
158 | 156,CY0322,3353.057971014493,0.3768897637795274,3.8359711814960633
159 | 157,CY0322,3480.8115942028985,0.18023437499999986,3.2581897066406285
160 | 158,CY0322,3608.5652173913045,0.15480468750000004,1.9677871167968741
161 | 159,CY0322,3736.31884057971,0.5987109374999995,5.288384787500001
162 | 160,CY0322,3864.072463768116,0.239212598425197,5.430585894488188
163 | 161,CY0322,3991.8260869565215,0.1679687499999999,3.160505416796876
164 | 162,CY0322,4119.579710144928,0.13031249999999986,4.398807173437499
165 | 163,CY0322,4247.333333333334,0.18917968750000014,2.6999238222656268
166 | 164,CY0322,4375.086956521739,0.1435433070866141,4.82951547440945
167 | 165,CY0322,4502.840579710145,0.20062500000000008,2.244685254296876
168 | 166,CY0322,4630.59420289855,0.0962109375,3.2920620570312495
169 | 167,CY0322,4758.347826086956,0.12421875000000003,2.8257456773437486
170 | 168,CY0322,4886.101449275362,0.2538188976377953,3.7177717444881866
171 | 169,CY0322,5013.855072463768,0.3089062500000001,1.648172745312501
172 | 170,CY0322,5141.608695652174,0.18066406249999997,4.271652992578127
173 | 171,CY0322,5269.36231884058,0.14699218749999998,3.688816927734376
174 | 172,CY0322,5397.115942028986,0.15814960629921251,5.412161603149603
175 | 173,CY0322,5524.869565217391,0.12073359073359083,2.899053215830116
176 | 174,CY0322,5652.623188405797,0.144140625,4.1042620402343735
177 | 175,CY0322,5780.376811594203,0.13953125000000002,3.7204155777343777
178 | 176,CY0322,5908.130434782609,0.14511811023622048,2.6835241594488197
179 | 177,CY0322,6035.884057971014,0.23362934362934346,1.701618607722008
180 | 178,CY0322,6163.63768115942,0.1623255813953488,3.3309565546511655
181 | 179,CY0322,6291.391304347826,0.1374609375,7.787724007421877
182 | 180,CY0322,6419.144927536232,0.17909448818897641,4.556823518503935
183 | 181,CY0322,6546.898550724638,0.90319391634981,3.871028898859316
184 | 182,CY0322,6674.652173913043,0.23234374999999988,5.519605754296876
185 | 183,CY0322,6802.405797101449,0.20161538461538475,3.583773402307693
186 | 184,CY0322,6930.159420289855,0.4169291338582679,3.0656207598425214
187 | 185,CY0322,7057.913043478261,0.15746093749999995,3.1160507109375013
188 | 186,CY0322,7185.666666666667,0.15570312500000003,3.3283869847656256
189 | 187,CY0322,7313.420289855072,0.41109374999999987,5.144410864453123
190 | 188,CY0322,7441.173913043478,0.4051968503936999,1.2059059909448826
191 | 189,CY0322,7568.927536231884,0.13226562500000016,1.4151171589843745
192 | 190,CY0322,7696.68115942029,0.45730468750000003,3.1995020007812487
193 | 191,CY0322,7824.434782608696,0.228359375,3.0719835003906266
194 | 192,CY0322,7952.188405797101,0.12181102362204722,2.354687763385827
195 | 193,CY0322,8079.942028985507,0.20558593750000015,4.199392656640624
196 | 194,CY0322,8207.695652173912,0.19669260700389102,2.008711917120623
197 | 195,CY0322,8335.44927536232,0.15277343750000005,5.660047286328129
198 | 196,CY0322,8463.202898550724,0.20125984251968512,1.4201187078740158
199 | 197,CY0322,8590.95652173913,0.16007812500000004,2.0742635640625
200 | 198,CY0322,8718.710144927536,0.14734374999999994,2.260239100781251
201 | 199,CY0322,8846.463768115942,0.16960937500000006,1.7368330468749995
202 | 200,CY0322,8974.217391304348,0.16546874999999994,3.731944399999999
203 | 201,CY0322,9101.971014492754,1.1069433962264175,1.459336849056604
204 | 202,CY0322,9229.72463768116,1.0440151515151517,1.5639624321969703
205 | 203,CY0322,9357.478260869564,0.20800766283524902,3.027804979693485
206 | 204,CY0322,9485.231884057972,1.123671875,4.852887852734376
207 | 205,CY0322,9612.985507246376,1.4559143968871597,4.4093415252918255
208 | 206,CY0322,9740.739130434782,0.11574218749999998,2.5229413695312477
209 | 207,CY0322,9868.492753623188,0.16796874999999994,2.362181652343751
210 | 208,CY0322,9996.246376811594,0.4865354330708661,1.8566949799212604
211 | 209,CY0322,10124.0,0.0,2.69285
212 | 210,CY0324,1309.0,0.203984375,6.839774777343744
213 | 211,CY0324,1436.7536231884058,0.24371093749999992,7.418240589843754
214 | 212,CY0324,1564.5072463768115,0.16972656250000012,3.7305992148437492
215 | 213,CY0324,1692.2608695652175,0.11386718750000005,4.501451355468752
216 | 214,CY0324,1820.0144927536232,0.14570866141732286,3.9515885275590534
217 | 215,CY0324,1947.768115942029,0.1583984375,2.9175593085937517
218 | 216,CY0324,2075.521739130435,0.13554687499999998,5.157610406249999
219 | 217,CY0324,2203.2753623188405,0.16546874999999986,4.027059515625
220 | 218,CY0324,2331.0289855072465,0.17338582677165354,6.357747559055115
221 | 219,CY0324,2458.782608695652,1.2992277992277994,4.335697420849424
222 | 220,CY0324,2586.536231884058,0.2959315589353613,6.699711304182514
223 | 221,CY0324,2714.289855072464,0.32140684410646375,3.3080645437262364
224 | 222,CY0324,2842.0434782608695,0.19125984251968497,4.082923035433069
225 | 223,CY0324,2969.797101449275,0.13199218750000005,5.980140550781248
226 | 224,CY0324,3097.550724637681,0.11812499999999995,6.926924753906253
227 | 225,CY0324,3225.304347826087,0.1764453125,7.741825433593752
228 | 226,CY0324,3353.057971014493,0.2648425196850395,4.72697584645669
229 | 227,CY0324,3480.8115942028985,0.12089843750000002,3.8776555222656253
230 | 228,CY0324,3608.5652173913045,0.1476171875000001,2.4865883011718752
231 | 229,CY0324,3736.31884057971,0.14558593750000007,5.572814341015626
232 | 230,CY0324,3864.072463768116,0.2651574803149607,5.669128059842514
233 | 231,CY0324,3991.8260869565215,0.14406250000000012,3.6111174414062495
234 | 232,CY0324,4119.579710144928,0.15937500000000002,4.740394964843749
235 | 233,CY0324,4247.333333333334,0.1421875,3.1334505859374984
236 | 234,CY0324,4375.086956521739,0.23090551181102367,5.725454003937008
237 | 235,CY0324,4502.840579710145,0.134375,3.038373128906251
238 | 236,CY0324,4630.59420289855,0.14246093749999994,3.472746097656252
239 | 237,CY0324,4758.347826086956,0.25152343749999995,2.9820491874999986
240 | 238,CY0324,4886.101449275362,0.18607843137254904,4.7364543803921615
241 | 239,CY0324,5013.855072463768,0.131015625,1.93487233203125
242 | 240,CY0324,5141.608695652174,0.23902343749999982,4.567389277343749
243 | 241,CY0324,5269.36231884058,0.11105468750000004,4.681616949218749
244 | 242,CY0324,5397.115942028986,0.11543307086614177,5.947563421259839
245 | 243,CY0324,5524.869565217391,0.11496093750000004,3.586753148437501
246 | 244,CY0324,5652.623188405797,0.1621789883268482,4.34043294552529
247 | 245,CY0324,5780.376811594203,0.09714843749999999,4.618448195312499
248 | 246,CY0324,5908.130434782609,0.15488188976377953,3.633260625984253
249 | 247,CY0324,6035.884057971014,0.1397692307692307,2.465130507692308
250 | 248,CY0324,6163.63768115942,0.11035019455252924,3.772415696498054
251 | 249,CY0324,6291.391304347826,0.11347656249999998,6.718866398437502
252 | 250,CY0324,6419.144927536232,0.17665354330708669,4.424339007874015
253 | 251,CY0324,6546.898550724638,1.195551470588235,3.983578136029412
254 | 252,CY0324,6674.652173913043,0.097109375,5.244257824218753
255 | 253,CY0324,6802.405797101449,0.12463035019455256,3.9215675564202326
256 | 254,CY0324,6930.159420289855,0.25287401574803137,3.44738390944882
257 | 255,CY0324,7057.913043478261,0.10796874999999996,3.55512241796875
258 | 256,CY0324,7185.666666666667,0.18140625000000002,3.9384821406250006
259 | 257,CY0324,7313.420289855072,0.41167968750000017,5.545754015624999
260 | 258,CY0324,7441.173913043478,0.2336614173228346,1.9287560944881887
261 | 259,CY0324,7568.927536231884,0.1341406249999999,2.0800497148437493
262 | 260,CY0324,7696.68115942029,0.20910156249999984,3.325106417968752
263 | 261,CY0324,7824.434782608696,0.13535156250000008,3.373092955468749
264 | 262,CY0324,7952.188405797101,0.21929133858267694,3.1627725354330725
265 | 263,CY0324,8079.942028985507,0.1308203124999999,4.605939648046874
266 | 264,CY0324,8207.695652173912,0.12636718750000003,2.5040954675781237
267 | 265,CY0324,8335.44927536232,0.2379296875,5.376760458593755
268 | 266,CY0324,8463.202898550724,0.1275590551181102,1.8618985444881893
269 | 267,CY0324,8590.95652173913,0.14445312500000004,2.608824567187499
270 | 268,CY0324,8718.710144927536,0.13207031249999995,2.820859692187501
271 | 269,CY0324,8846.463768115942,0.18265625,2.5853584136718752
272 | 270,CY0324,8974.217391304348,0.17878906250000004,3.8706259621093766
273 | 271,CY0324,9101.971014492754,0.21375478927203076,2.27717080651341
274 | 272,CY0324,9229.72463768116,0.19395348837209314,2.1999297042635657
275 | 273,CY0324,9357.478260869564,0.28486590038314186,2.805869835249041
276 | 274,CY0324,9485.231884057972,1.0988976377952762,5.1218514015748005
277 | 275,CY0324,9612.985507246376,0.9948437499999998,5.277763153906247
278 | 276,CY0324,9740.739130434782,0.10066406250000008,2.9918661535156255
279 | 277,CY0324,9868.492753623188,0.39607003891050585,2.6704497315175098
280 | 278,CY0324,9996.246376811594,0.24673228346456683,2.7261717480314944
281 | 279,CY0324,10124.0,0.0,9.045905
282 | 280,CY0326,1309.0,0.13937500000000005,7.331545644531253
283 | 281,CY0326,1436.7536231884058,0.8348638132295717,7.829861982101164
284 | 282,CY0326,1564.5072463768115,0.16789062500000007,3.8217604683593738
285 | 283,CY0326,1692.2608695652175,0.13960937500000006,4.639622250781251
286 | 284,CY0326,1820.0144927536232,0.1437401574803151,3.632781128740157
287 | 285,CY0326,1947.768115942029,0.1416796875,2.712256437500001
288 | 286,CY0326,2075.521739130435,0.12300781249999997,4.823215691406251
289 | 287,CY0326,2203.2753623188405,0.1392578125,4.574544214843751
290 | 288,CY0326,2331.0289855072465,0.17527559055118108,6.45411739370079
291 | 289,CY0326,2458.782608695652,1.2599613899613913,5.6502918532818525
292 | 290,CY0326,2586.536231884058,0.13124031007751935,6.94436952713178
293 | 291,CY0326,2714.289855072464,0.33265384615384586,3.4916804788461553
294 | 292,CY0326,2842.0434782608695,0.17480314960629928,4.891213544881891
295 | 293,CY0326,2969.797101449275,0.12484375000000002,7.01107241328125
296 | 294,CY0326,3097.550724637681,0.13390625000000006,6.964044736718751
297 | 295,CY0326,3225.304347826087,0.19980468750000002,8.089883421875
298 | 296,CY0326,3353.057971014493,0.2577559055118111,4.478133935039372
299 | 297,CY0326,3480.8115942028985,0.13277343750000012,3.9166904281249977
300 | 298,CY0326,3608.5652173913045,0.3390234374999999,2.6222383648437475
301 | 299,CY0326,3736.31884057971,0.1103515625,6.127052137109379
302 | 300,CY0326,3864.072463768116,0.18610236220472426,5.939557748818897
303 | 301,CY0326,3991.8260869565215,0.5240234375,3.7630714777343752
304 | 302,CY0326,4119.579710144928,0.1389453124999999,5.086654511328122
305 | 303,CY0326,4247.333333333334,0.11253906249999993,3.271906336328126
306 | 304,CY0326,4375.086956521739,0.1144094488188976,5.432709244488192
307 | 305,CY0326,4502.840579710145,0.1176953125000001,3.0405655789062505
308 | 306,CY0326,4630.59420289855,0.09222656249999997,4.187234041015627
309 | 307,CY0326,4758.347826086956,0.9162109375000002,3.895411542968751
310 | 308,CY0326,4886.101449275362,0.12921259842519692,4.14476676062992
311 | 309,CY0326,5013.855072463768,0.24398437500000006,2.1158485738281234
312 | 310,CY0326,5141.608695652174,0.5298046875000001,4.623698970703126
313 | 311,CY0326,5269.36231884058,0.105859375,4.147839673437501
314 | 312,CY0326,5397.115942028986,0.16755905511811023,6.0014359795275585
315 | 313,CY0326,5524.869565217391,0.11527131782945736,3.659412251937985
316 | 314,CY0326,5652.623188405797,0.0932421875,4.575829472656252
317 | 315,CY0326,5780.376811594203,0.0949609375,4.220438675781248
318 | 316,CY0326,5908.130434782609,0.08779527559055118,3.595067248031497
319 | 317,CY0326,6035.884057971014,0.14868725868725868,1.9798135984555978
320 | 318,CY0326,6163.63768115942,0.10722656249999994,3.5463986640624974
321 | 319,CY0326,6291.391304347826,0.13684824902723736,7.263592607003889
322 | 320,CY0326,6419.144927536232,0.1301968503937008,4.660919465748034
323 | 321,CY0326,6546.898550724638,0.08589843750000001,4.080610974999999
324 | 322,CY0326,6674.652173913043,0.5595703125,5.860691714062501
325 | 323,CY0326,6802.405797101449,0.19311538461538466,4.40764607923077
326 | 324,CY0326,6930.159420289855,0.4903543307086614,3.75044523543307
327 | 325,CY0326,7057.913043478261,0.10332031250000002,3.9228126886718724
328 | 326,CY0326,7185.666666666667,0.14414062500000013,4.2504469324218785
329 | 327,CY0326,7313.420289855072,1.0132812499999997,5.5685919390625
330 | 328,CY0326,7441.173913043478,0.12381889763779526,1.9725478854330707
331 | 329,CY0326,7568.927536231884,0.12621093750000006,1.9120240878906245
332 | 330,CY0326,7696.68115942029,0.11347656250000006,3.708967219531248
333 | 331,CY0326,7824.434782608696,0.12777343750000003,3.631642262499998
334 | 332,CY0326,7952.188405797101,0.11559055118110212,2.973344347637794
335 | 333,CY0326,8079.942028985507,0.1633984374999997,4.607449880468748
336 | 334,CY0326,8207.695652173912,0.13890624999999995,2.387855692578124
337 | 335,CY0326,8335.44927536232,0.1659375,5.66875175976562
338 | 336,CY0326,8463.202898550724,0.16779527559055113,2.099586322440945
339 | 337,CY0326,8590.95652173913,0.14867187500000006,2.8189877066406246
340 | 338,CY0326,8718.710144927536,0.16609375,3.1881202007812486
341 | 339,CY0326,8846.463768115942,0.14734374999999988,2.594570054296875
342 | 340,CY0326,8974.217391304348,0.9792187500000001,4.123264426953126
343 | 341,CY0326,9101.971014492754,3.0921509433962235,1.6112302305660369
344 | 342,CY0326,9229.72463768116,0.22907335907335913,1.7914312976833977
345 | 343,CY0326,9357.478260869564,0.26795366795366793,3.3460579652509654
346 | 344,CY0326,9485.231884057972,0.978110236220472,5.40517569606299
347 | 345,CY0326,9612.985507246376,1.1147470817120628,4.979200627626461
348 | 346,CY0326,9740.739130434782,0.15375000000000005,3.114265560546876
349 | 347,CY0326,9868.492753623188,0.14875000000000005,2.978211210546875
350 | 348,CY0326,9996.246376811594,0.12870078740157478,2.3311665551181093
351 | 349,CY0326,10124.0,0.825,4.342075
352 | 350,CY0327,1309.0,0.2559765625,7.802708273437502
353 | 351,CY0327,1436.7536231884058,1.371937984496123,7.822159699999998
354 | 352,CY0327,1564.5072463768115,0.14925781250000006,3.8183974972656243
355 | 353,CY0327,1692.2608695652175,0.11503906249999997,4.530790075000001
356 | 354,CY0327,1820.0144927536232,0.12944881889763774,4.025587238582678
357 | 355,CY0327,1947.768115942029,0.09777343749999998,2.804513457421875
358 | 356,CY0327,2075.521739130435,0.12492187500000003,5.280027745312502
359 | 357,CY0327,2203.2753623188405,0.13117187500000002,4.736051878906252
360 | 358,CY0327,2331.0289855072465,0.1268110236220472,6.889104228346458
361 | 359,CY0327,2458.782608695652,0.8493893129770992,4.966164793893132
362 | 360,CY0327,2586.536231884058,0.2686538461538462,6.946754515384614
363 | 361,CY0327,2714.289855072464,0.15742307692307714,3.4311840653846137
364 | 362,CY0327,2842.0434782608695,0.1390551181102361,4.740790448818895
365 | 363,CY0327,2969.797101449275,0.17285156250000008,6.874219248828126
366 | 364,CY0327,3097.550724637681,0.22316406250000018,7.070713092578122
367 | 365,CY0327,3225.304347826087,0.16546875000000005,7.869036293359378
368 | 366,CY0327,3353.057971014493,0.2839763779527557,4.412198073622052
369 | 367,CY0327,3480.8115942028985,0.16332031249999998,4.3579882144531235
370 | 368,CY0327,3608.5652173913045,0.4157198443579772,2.646840454085603
371 | 369,CY0327,3736.31884057971,0.1387109374999999,5.989740295312501
372 | 370,CY0327,3864.072463768116,0.2132283464566928,5.825732240944881
373 | 371,CY0327,3991.8260869565215,0.17019531250000017,3.6746827625000025
374 | 372,CY0327,4119.579710144928,0.16351562499999997,5.662801672656252
375 | 373,CY0327,4247.333333333334,0.1783593750000002,3.5128906226562493
376 | 374,CY0327,4375.086956521739,0.13925196850393692,5.600172639763781
377 | 375,CY0327,4502.840579710145,0.4278124999999993,2.690967486328124
378 | 376,CY0327,4630.59420289855,0.1843359375000001,4.402814592187503
379 | 377,CY0327,4758.347826086956,0.3683203124999997,3.4211192058593745
380 | 378,CY0327,4886.101449275362,0.20181102362204725,4.689276709055117
381 | 379,CY0327,5013.855072463768,0.12222656250000002,2.150775986718749
382 | 380,CY0327,5141.608695652174,0.12101562499999986,4.5435786574218735
383 | 381,CY0327,5269.36231884058,0.1094921874999999,4.500169603124999
384 | 382,CY0327,5397.115942028986,0.133267716535433,5.377164198031497
385 | 383,CY0327,5524.869565217391,0.12634241245136174,3.514123568093387
386 | 384,CY0327,5652.623188405797,0.10738281249999994,4.59918859921875
387 | 385,CY0327,5780.376811594203,0.10289062500000008,4.42406422734375
388 | 386,CY0327,5908.130434782609,0.13452755905511815,3.817264983858268
389 | 387,CY0327,6035.884057971014,0.14637065637065647,2.216414964864868
390 | 388,CY0327,6163.63768115942,0.26796875,3.8013963074218737
391 | 389,CY0327,6291.391304347826,0.136640625,7.604193601562497
392 | 390,CY0327,6419.144927536232,0.11307086614173228,4.777635088976377
393 | 391,CY0327,6546.898550724638,0.32563218390804594,3.940126619157091
394 | 392,CY0327,6674.652173913043,0.240813953488372,5.594119594186049
395 | 393,CY0327,6802.405797101449,0.26372623574144494,4.212580553612168
396 | 394,CY0327,6930.159420289855,0.16027559055118115,3.6432798602362215
397 | 395,CY0327,7057.913043478261,0.15593750000000006,3.6603560117187484
398 | 396,CY0327,7185.666666666667,0.23507812500000017,4.1348936332031245
399 | 397,CY0327,7313.420289855072,0.25203125000000004,5.519220380078126
400 | 398,CY0327,7441.173913043478,0.17255905511811023,2.1433854145669287
401 | 399,CY0327,7568.927536231884,0.33914062499999986,2.384652271484375
402 | 400,CY0327,7696.68115942029,0.15218750000000003,4.075879839062498
403 | 401,CY0327,7824.434782608696,0.15273437500000014,3.9171151410156244
404 | 402,CY0327,7952.188405797101,0.11511811023622036,3.2137060464566924
405 | 403,CY0327,8079.942028985507,0.129296875,4.71295700195312
406 | 404,CY0327,8207.695652173912,0.19140625,2.3485348691406247
407 | 405,CY0327,8335.44927536232,0.15914062499999995,5.886807205468745
408 | 406,CY0327,8463.202898550724,0.13271653543307088,1.9756866744094497
409 | 407,CY0327,8590.95652173913,0.13222656249999998,2.6037819687500012
410 | 408,CY0327,8718.710144927536,0.15121093750000003,2.9461128472656246
411 | 409,CY0327,8846.463768115942,0.20746093749999997,2.5202924613281232
412 | 410,CY0327,8974.217391304348,0.1978515625,4.107974547265628
413 | 411,CY0327,9101.971014492754,1.3758455882352953,1.902346619117646
414 | 412,CY0327,9229.72463768116,0.25620689655172413,2.1289774053639854
415 | 413,CY0327,9357.478260869564,0.1795752895752895,3.3988120254826253
416 | 414,CY0327,9485.231884057972,1.0450393700787397,5.608842151574805
417 | 415,CY0327,9612.985507246376,1.1131906614786,5.564240813618682
418 | 416,CY0327,9740.739130434782,0.14433593749999996,2.9748943031249984
419 | 417,CY0327,9868.492753623188,0.14316406249999988,2.8693211640625
420 | 418,CY0327,9996.246376811594,0.11854330708661415,1.9774190216535428
421 | 419,CY0327,10124.0,0.205,4.850745
422 | 420,CY0328,1309.0,0.18894531250000002,6.946501015624999
423 | 421,CY0328,1436.7536231884058,0.6083203125,7.039082589843753
424 | 422,CY0328,1564.5072463768115,0.15031250000000002,3.2959226406249997
425 | 423,CY0328,1692.2608695652175,0.10484374999999999,4.508497429687503
426 | 424,CY0328,1820.0144927536232,0.12708661417322842,4.22411842913386
427 | 425,CY0328,1947.768115942029,0.2339453125000002,3.0157018828125004
428 | 426,CY0328,2075.521739130435,0.1028125,5.558362035156252
429 | 427,CY0328,2203.2753623188405,0.1032421875,3.890998273437502
430 | 428,CY0328,2331.0289855072465,0.13338582677165353,6.124564185039373
431 | 429,CY0328,2458.782608695652,0.6733204633204637,5.074839474903474
432 | 430,CY0328,2586.536231884058,0.19877862595419832,6.030188389312977
433 | 431,CY0328,2714.289855072464,0.3423863636363636,2.427222378787878
434 | 432,CY0328,2842.0434782608695,0.23271653543307091,4.390109307086617
435 | 433,CY0328,2969.797101449275,0.14789062499999994,6.729245878906246
436 | 434,CY0328,3097.550724637681,0.16414062499999998,6.246589667968748
437 | 435,CY0328,3225.304347826087,0.18367187499999993,6.805018238281249
438 | 436,CY0328,3353.057971014493,0.1974015748031495,4.238497929133857
439 | 437,CY0328,3480.8115942028985,0.1671484374999999,3.353601417187501
440 | 438,CY0328,3608.5652173913045,0.10773437500000006,1.90548501875
441 | 439,CY0328,3736.31884057971,0.12058593749999999,5.415086225390624
442 | 440,CY0328,3864.072463768116,0.2005905511811023,5.433786229527561
443 | 441,CY0328,3991.8260869565215,0.15585937500000013,3.3457633789062515
444 | 442,CY0328,4119.579710144928,0.2761328125000002,5.082805764062505
445 | 443,CY0328,4247.333333333334,0.18749999999999994,2.8837129101562495
446 | 444,CY0328,4375.086956521739,0.13759842519685034,4.6585781496063
447 | 445,CY0328,4502.840579710145,0.1481640625000003,2.348058184375
448 | 446,CY0328,4630.59420289855,0.10511718750000006,3.4847378976562484
449 | 447,CY0328,4758.347826086956,0.1908984375000001,2.884403784375
450 | 448,CY0328,4886.101449275362,0.15960629921259842,3.98920711456693
451 | 449,CY0328,5013.855072463768,0.09273437500000002,1.5279915941406241
452 | 450,CY0328,5141.608695652174,0.22011718750000006,3.720931511718747
453 | 451,CY0328,5269.36231884058,0.11222656250000002,4.054858535156251
454 | 452,CY0328,5397.115942028986,0.12763779527559058,5.563170452755904
455 | 453,CY0328,5524.869565217391,0.18763565891472875,3.2426446085271317
456 | 454,CY0328,5652.623188405797,0.07757812500000003,3.914521300781249
457 | 455,CY0328,5780.376811594203,0.13859374999999996,3.849566835937498
458 | 456,CY0328,5908.130434782609,0.10716535433070869,3.5360713937007877
459 | 457,CY0328,6035.884057971014,0.158953488372093,1.9292735775193801
460 | 458,CY0328,6163.63768115942,0.09214007782101168,3.6870746459143957
461 | 459,CY0328,6291.391304347826,0.10386718750000001,7.257575910156249
462 | 460,CY0328,6419.144927536232,0.37200787401574814,3.896419019685042
463 | 461,CY0328,6546.898550724638,0.8790000000000002,3.6412474499999994
464 | 462,CY0328,6674.652173913043,0.23724806201550377,5.275036116279072
465 | 463,CY0328,6802.405797101449,0.18389961389961368,3.692265393822396
466 | 464,CY0328,6930.159420289855,0.673607843137255,3.5179234117647074
467 | 465,CY0328,7057.913043478261,0.16367187500000008,2.972484890625
468 | 466,CY0328,7185.666666666667,0.19921874999999986,3.500235562500001
469 | 467,CY0328,7313.420289855072,0.3207421875,5.37368512109375
470 | 468,CY0328,7441.173913043478,0.28421259842519686,2.0693154330708645
471 | 469,CY0328,7568.927536231884,0.09378906250000006,2.136362812109374
472 | 470,CY0328,7696.68115942029,0.26550781250000016,3.7429291078125004
473 | 471,CY0328,7824.434782608696,0.25632812500000013,3.518126612109373
474 | 472,CY0328,7952.188405797101,0.2362992125984249,2.741895716141732
475 | 473,CY0328,8079.942028985507,0.15101562499999976,4.392829549609376
476 | 474,CY0328,8207.695652173912,0.14933593749999996,2.1120052515625005
477 | 475,CY0328,8335.44927536232,0.26988281249999996,4.6779042265625
478 | 476,CY0328,8463.202898550724,0.11543307086614175,1.5589140551181109
479 | 477,CY0328,8590.95652173913,0.17078125000000005,2.236175031250001
480 | 478,CY0328,8718.710144927536,0.19808593750000014,2.4228707109375014
481 | 479,CY0328,8846.463768115942,0.3514062499999999,2.262343902343753
482 | 480,CY0328,8974.217391304348,0.22093023255813954,3.7966862635658907
483 | 481,CY0328,9101.971014492754,2.3276449275362325,2.144320663043481
484 | 482,CY0328,9229.72463768116,0.4943678160919541,1.993266840996169
485 | 483,CY0328,9357.478260869564,0.28458015267175574,3.0862063091603065
486 | 484,CY0328,9485.231884057972,1.1172941176470592,5.273113239215686
487 | 485,CY0328,9612.985507246376,1.2923076923076928,4.762727965384612
488 | 486,CY0328,9740.739130434782,0.10273437499999999,2.659362734375
489 | 487,CY0328,9868.492753623188,0.08429687500000005,1.9736308554687496
490 | 488,CY0328,9996.246376811594,0.12901574803149604,1.786942224409449
491 | 489,CY0328,10124.0,0.0,2.583335
492 | 490,CY0329,1309.0,0.226015625,6.830080914062503
493 | 491,CY0329,1436.7536231884058,0.9368604651162794,7.6544836705426365
494 | 492,CY0329,1564.5072463768115,0.17898437499999995,3.18254921875
495 | 493,CY0329,1692.2608695652175,0.1251953125,4.099983292968749
496 | 494,CY0329,1820.0144927536232,0.13854330708661408,3.2820996889763796
497 | 495,CY0329,1947.768115942029,0.13265625,2.274105753906249
498 | 496,CY0329,2075.521739130435,0.1493359375,4.19923851171875
499 | 497,CY0329,2203.2753623188405,0.15749999999999992,3.260219726562501
500 | 498,CY0329,2331.0289855072465,0.23133858267716548,5.794976692913387
501 | 499,CY0329,2458.782608695652,0.7707251908396943,3.638926389312977
502 | 500,CY0329,2586.536231884058,0.3862453531598513,6.1598713828996265
503 | 501,CY0329,2714.289855072464,0.5227586206896551,2.727765681992338
504 | 502,CY0329,2842.0434782608695,0.18559055118110246,3.531789098425198
505 | 503,CY0329,2969.797101449275,0.2903125000000001,5.452300929687501
506 | 504,CY0329,3097.550724637681,0.16195312500000006,5.941719312499999
507 | 505,CY0329,3225.304347826087,0.17468750000000013,6.8339419722656185
508 | 506,CY0329,3353.057971014493,0.2843700787401578,4.125569960236221
509 | 507,CY0329,3480.8115942028985,0.1288281249999999,3.2882271605468754
510 | 508,CY0329,3608.5652173913045,0.1410937499999999,1.7604695363281246
511 | 509,CY0329,3736.31884057971,0.15015625,4.609461227343746
512 | 510,CY0329,3864.072463768116,0.18543307086614175,5.2461340188976395
513 | 511,CY0329,3991.8260869565215,0.16257812500000016,3.331804155468747
514 | 512,CY0329,4119.579710144928,0.18445312500000038,4.169232321093749
515 | 513,CY0329,4247.333333333334,0.15554687500000008,2.431787323828123
516 | 514,CY0329,4375.086956521739,0.16240157480314962,5.141963880314958
517 | 515,CY0329,4502.840579710145,0.13316406249999987,2.3243059621093756
518 | 516,CY0329,4630.59420289855,0.1250781249999999,3.3270349257812493
519 | 517,CY0329,4758.347826086956,0.17765624999999988,2.4022955789062514
520 | 518,CY0329,4886.101449275362,0.14598425196850395,4.161919871653542
521 | 519,CY0329,5013.855072463768,0.14453124999999997,1.6604714460937497
522 | 520,CY0329,5141.608695652174,0.13503906250000006,3.437203007812501
523 | 521,CY0329,5269.36231884058,0.14960937500000002,3.9028999765625003
524 | 522,CY0329,5397.115942028986,0.15696850393700798,5.459542653543303
525 | 523,CY0329,5524.869565217391,0.1223938223938224,2.6417041467181464
526 | 524,CY0329,5652.623188405797,0.13296875,2.9248149414062516
527 | 525,CY0329,5780.376811594203,0.152109375,3.582076425781249
528 | 526,CY0329,5908.130434782609,0.14531496062992127,2.945506976377954
529 | 527,CY0329,6035.884057971014,0.17291828793774305,1.9130356653696485
530 | 528,CY0329,6163.63768115942,0.16193050193050196,2.862118254826258
531 | 529,CY0329,6291.391304347826,0.16003906250000002,6.246394847656255
532 | 530,CY0329,6419.144927536232,0.15322834645669295,3.3407735594488206
533 | 531,CY0329,6546.898550724638,0.9358426966292134,3.296782497003746
534 | 532,CY0329,6674.652173913043,0.15081712062256805,4.921319175097277
535 | 533,CY0329,6802.405797101449,0.22599236641221382,3.259233817938931
536 | 534,CY0329,6930.159420289855,0.5286274509803919,2.582375083921567
537 | 535,CY0329,7057.913043478261,0.4218749999999997,2.5579928242187506
538 | 536,CY0329,7185.666666666667,0.20210937500000017,3.3185528687499977
539 | 537,CY0329,7313.420289855072,0.23308593749999987,5.260001250000002
540 | 538,CY0329,7441.173913043478,0.40960629921259833,1.366653984251968
541 | 539,CY0329,7568.927536231884,0.144921875,1.7124742027343747
542 | 540,CY0329,7696.68115942029,0.29617187500000014,3.3862084749999983
543 | 541,CY0329,7824.434782608696,0.16039062499999998,3.0315004171875
544 | 542,CY0329,7952.188405797101,0.16444881889763796,2.3150707480314963
545 | 543,CY0329,8079.942028985507,0.1912109375000001,4.157245540234375
546 | 544,CY0329,8207.695652173912,0.18359374999999997,2.004141813671875
547 | 545,CY0329,8335.44927536232,0.18855468749999996,4.872846250781252
548 | 546,CY0329,8463.202898550724,0.1836470588235295,1.590746701960784
549 | 547,CY0329,8590.95652173913,0.1621874999999999,2.0445969246093756
550 | 548,CY0329,8718.710144927536,0.2659765624999999,2.56099863671875
551 | 549,CY0329,8846.463768115942,0.2170312499999999,1.8620761605468745
552 | 550,CY0329,8974.217391304348,0.12850393700787408,3.3182512992125965
553 | 551,CY0329,9101.971014492754,1.2527238805970156,1.6452757604477621
554 | 552,CY0329,9229.72463768116,1.0674349442379178,1.8230423639405198
555 | 553,CY0329,9357.478260869564,0.23231660231660212,2.3536100115830094
556 | 554,CY0329,9485.231884057972,1.462117647058825,4.291540112156864
557 | 555,CY0329,9612.985507246376,0.9600781250000002,4.412271448828126
558 | 556,CY0329,9740.739130434782,0.14218749999999994,2.2139334167968743
559 | 557,CY0329,9868.492753623188,0.21521400778210117,2.0617627210116747
560 | 558,CY0329,9996.246376811594,0.17535433070866147,1.9801175078740152
561 | 559,CY0329,10124.0,0.0,2.7177000000000002
562 | 560,CY0332,1309.0,0.31816406249999996,7.61696037109375
563 | 561,CY0332,1436.7536231884058,2.2344061302681983,7.634029085440611
564 | 562,CY0332,1564.5072463768115,0.13871093750000002,3.9241109515624997
565 | 563,CY0332,1692.2608695652175,0.12046875,4.951430600781253
566 | 564,CY0332,1820.0144927536232,0.10917322834645675,3.9280179594488187
567 | 565,CY0332,1947.768115942029,0.1344140625,2.8504116066406233
568 | 566,CY0332,2075.521739130435,0.18527343749999997,5.15264773828125
569 | 567,CY0332,2203.2753623188405,0.14960937500000007,4.7196136953125
570 | 568,CY0332,2331.0289855072465,0.12503937007874025,6.550014444881887
571 | 569,CY0332,2458.782608695652,0.5302702702702703,5.105556393822393
572 | 570,CY0332,2586.536231884058,0.12472656249999997,6.667270476562498
573 | 571,CY0332,2714.289855072464,0.2267829457364343,3.6253180658914705
574 | 572,CY0332,2842.0434782608695,0.18220472440944918,4.972210627952755
575 | 573,CY0332,2969.797101449275,0.1428125,6.9199030585937455
576 | 574,CY0332,3097.550724637681,0.13320312499999995,6.69694242578125
577 | 575,CY0332,3225.304347826087,0.1859765625000001,7.833650573828122
578 | 576,CY0332,3353.057971014493,0.24960629921259847,4.51504831496063
579 | 577,CY0332,3480.8115942028985,0.14472656249999993,4.28150725234375
580 | 578,CY0332,3608.5652173913045,0.13835937500000003,2.7899713757812505
581 | 579,CY0332,3736.31884057971,0.14394531250000006,5.915027186328128
582 | 580,CY0332,3864.072463768116,0.18964566929133855,5.794454642913385
583 | 581,CY0332,3991.8260869565215,0.27804687500000014,3.8723482562500022
584 | 582,CY0332,4119.579710144928,0.219140625,5.9610552136718775
585 | 583,CY0332,4247.333333333334,0.20039062500000013,3.55947573046875
586 | 584,CY0332,4375.086956521739,0.12488188976377954,5.475177907874014
587 | 585,CY0332,4502.840579710145,0.12742187500000005,3.099251631640623
588 | 586,CY0332,4630.59420289855,0.1350390625,4.401785187890627
589 | 587,CY0332,4758.347826086956,0.14011718750000005,3.538944515234374
590 | 588,CY0332,4886.101449275362,0.1304330708661418,4.511088211417324
591 | 589,CY0332,5013.855072463768,0.1152734375,2.114282859375
592 | 590,CY0332,5141.608695652174,0.1541015625,4.412501613671877
593 | 591,CY0332,5269.36231884058,0.13062500000000013,4.559249451171874
594 | 592,CY0332,5397.115942028986,0.14448818897637805,5.504511515748034
595 | 593,CY0332,5524.869565217391,0.10390625000000003,3.794219867578127
596 | 594,CY0332,5652.623188405797,0.09480468749999994,4.545358897265623
597 | 595,CY0332,5780.376811594203,0.125546875,4.509831468750003
598 | 596,CY0332,5908.130434782609,0.1272047244094488,4.026092582677166
599 | 597,CY0332,6035.884057971014,0.3035271317829456,2.4150366248062003
600 | 598,CY0332,6163.63768115942,0.12490272373540856,4.422739614785998
601 | 599,CY0332,6291.391304347826,0.24410156250000004,7.024083984375001
602 | 600,CY0332,6419.144927536232,0.14885826771653538,4.7683034787401555
603 | 601,CY0332,6546.898550724638,0.14221789883268487,4.236588593774317
604 | 602,CY0332,6674.652173913043,0.14050387596899228,5.714833258914726
605 | 603,CY0332,6802.405797101449,0.7078846153846149,3.8840399180769225
606 | 604,CY0332,6930.159420289855,0.5177559055118109,4.254520570866141
607 | 605,CY0332,7057.913043478261,0.22132812499999988,4.163727912500001
608 | 606,CY0332,7185.666666666667,0.15199218749999996,4.107477832421875
609 | 607,CY0332,7313.420289855072,0.2894140625000001,5.8958061175781245
610 | 608,CY0332,7441.173913043478,0.1375984251968505,2.330562947637795
611 | 609,CY0332,7568.927536231884,0.12855468749999996,2.422117119921875
612 | 610,CY0332,7696.68115942029,0.12285156249999998,4.345211276953129
613 | 611,CY0332,7824.434782608696,0.15523437500000004,3.8446537992187473
614 | 612,CY0332,7952.188405797101,0.1289763779527557,3.137158679133858
615 | 613,CY0332,8079.942028985507,0.16632812499999985,4.837443753515624
616 | 614,CY0332,8207.695652173912,0.14464843749999973,2.712753495703125
617 | 615,CY0332,8335.44927536232,0.25171875000000005,5.4000972527343745
618 | 616,CY0332,8463.202898550724,0.2104724409448821,1.9878005980314963
619 | 617,CY0332,8590.95652173913,0.12851562499999997,2.8540541324218736
620 | 618,CY0332,8718.710144927536,0.17667968750000013,3.2399598226562527
621 | 619,CY0332,8846.463768115942,0.5269531250000008,2.8969380031250007
622 | 620,CY0332,8974.217391304348,0.15101562500000026,4.236008503906249
623 | 621,CY0332,9101.971014492754,1.689127272727273,2.0277383781818172
624 | 622,CY0332,9229.72463768116,0.9316603773584908,2.2076331856603777
625 | 623,CY0332,9357.478260869564,0.44788461538461566,3.363972957692307
626 | 624,CY0332,9485.231884057972,1.045157480314961,5.443626152755905
627 | 625,CY0332,9612.985507246376,0.9112062256809332,5.454638240856029
628 | 626,CY0332,9740.739130434782,0.1214843749999999,3.262785881249998
629 | 627,CY0332,9868.492753623188,0.4926562499999996,2.9600122332031265
630 | 628,CY0332,9996.246376811594,0.12145669291338577,2.2248877874015736
631 | 629,CY0332,10124.0,0.0,5.57734
632 | 630,CY0333,1309.0,0.5471484375000003,7.009010281250002
633 | 631,CY0333,1436.7536231884058,1.2456976744186046,7.060159735658919
634 | 632,CY0333,1564.5072463768115,0.1502734375,4.017505918749999
635 | 633,CY0333,1692.2608695652175,0.12449218749999985,4.821051737890625
636 | 634,CY0333,1820.0144927536232,0.11578740157480309,4.086038957086615
637 | 635,CY0333,1947.768115942029,0.15359375000000003,3.0047872527343764
638 | 636,CY0333,2075.521739130435,0.20613281249999987,5.260705428906249
639 | 637,CY0333,2203.2753623188405,0.17015624999999998,4.432735507421878
640 | 638,CY0333,2331.0289855072465,0.3667716535433073,6.399384267716529
641 | 639,CY0333,2458.782608695652,0.844573643410853,4.817547628294573
642 | 640,CY0333,2586.536231884058,0.17328185328185314,6.6120820382239405
643 | 641,CY0333,2714.289855072464,0.2787984496124024,3.495549248837208
644 | 642,CY0333,2842.0434782608695,0.1255511811023621,4.836151498031499
645 | 643,CY0333,2969.797101449275,0.1368749999999999,7.217302769140627
646 | 644,CY0333,3097.550724637681,0.16707031249999998,7.249518323828122
647 | 645,CY0333,3225.304347826087,0.15507812500000007,7.981995038671876
648 | 646,CY0333,3353.057971014493,0.2823622047244093,4.440453000393701
649 | 647,CY0333,3480.8115942028985,0.13085937499999997,4.053726679296876
650 | 648,CY0333,3608.5652173913045,0.13437499999999974,2.6161389332031257
651 | 649,CY0333,3736.31884057971,0.22351562499999997,5.748455554296878
652 | 650,CY0333,3864.072463768116,0.16653543307086613,5.97954273779528
653 | 651,CY0333,3991.8260869565215,0.2343750000000003,3.5462751109374997
654 | 652,CY0333,4119.579710144928,0.17656249999999998,5.756602644921874
655 | 653,CY0333,4247.333333333334,0.1749218749999999,3.6470661914062514
656 | 654,CY0333,4375.086956521739,0.19496062992126,5.903683837007876
657 | 655,CY0333,4502.840579710145,0.1177343750000002,3.0907727957031246
658 | 656,CY0333,4630.59420289855,0.14250000000000007,4.4256834347656255
659 | 657,CY0333,4758.347826086956,0.1892968749999999,3.7109577265624987
660 | 658,CY0333,4886.101449275362,0.16893700787401575,4.832712479133859
661 | 659,CY0333,5013.855072463768,0.13882812500000002,2.5224926335937488
662 | 660,CY0333,5141.608695652174,0.1653125000000001,4.701887955078126
663 | 661,CY0333,5269.36231884058,0.09101562499999996,4.504295716015621
664 | 662,CY0333,5397.115942028986,0.1641176470588235,5.86687409019608
665 | 663,CY0333,5524.869565217391,0.11562499999999998,3.148930554687502
666 | 664,CY0333,5652.623188405797,0.15162790697674405,4.5299977430232525
667 | 665,CY0333,5780.376811594203,0.22101562499999983,4.493316941406246
668 | 666,CY0333,5908.130434782609,0.14673228346456688,3.931402133858265
669 | 667,CY0333,6035.884057971014,0.14003891050583658,2.2041006875486384
670 | 668,CY0333,6163.63768115942,0.25813229571984436,4.027535289883269
671 | 669,CY0333,6291.391304347826,0.1376953125,7.673860343750002
672 | 670,CY0333,6419.144927536232,0.15637795275590544,4.9199060996063
673 | 671,CY0333,6546.898550724638,0.1609266409266409,4.323564287258691
674 | 672,CY0333,6674.652173913043,0.570888030888031,5.640187054826257
675 | 673,CY0333,6802.405797101449,0.2598054474708171,4.11649015758755
676 | 674,CY0333,6930.159420289855,0.5085826771653541,3.812748622834647
677 | 675,CY0333,7057.913043478261,0.49269531249999976,3.8341988582031252
678 | 676,CY0333,7185.666666666667,0.17796874999999998,4.370630771093752
679 | 677,CY0333,7313.420289855072,0.28464843749999996,5.56302120078125
680 | 678,CY0333,7441.173913043478,0.154212598425197,2.048007276377954
681 | 679,CY0333,7568.927536231884,0.14437499999999986,2.378910558593753
682 | 680,CY0333,7696.68115942029,0.14738281249999993,4.24663553476562
683 | 681,CY0333,7824.434782608696,0.1374609375,3.811313841796878
684 | 682,CY0333,7952.188405797101,0.1683858267716537,3.3017419169291338
685 | 683,CY0333,8079.942028985507,0.13882812499999989,4.928958494140629
686 | 684,CY0333,8207.695652173912,0.1375390625,2.509924899999999
687 | 685,CY0333,8335.44927536232,0.18191406250000014,5.759801005859371
688 | 686,CY0333,8463.202898550724,0.14460629921259843,1.9342884259842517
689 | 687,CY0333,8590.95652173913,0.16972656249999993,2.8337258015624984
690 | 688,CY0333,8718.710144927536,0.4590234375,3.2215717062500007
691 | 689,CY0333,8846.463768115942,0.5103906249999999,2.8070054824218755
692 | 690,CY0333,8974.217391304348,0.15303149606299207,4.325688012992125
693 | 691,CY0333,9101.971014492754,1.7247388059701492,2.0630865436567136
694 | 692,CY0333,9229.72463768116,0.8647547169811323,2.207954421509434
695 | 693,CY0333,9357.478260869564,0.1941634241245135,3.445791471595332
696 | 694,CY0333,9485.231884057972,1.0331102362204725,5.628960872834648
697 | 695,CY0333,9612.985507246376,0.9574218749999994,5.586258630078127
698 | 696,CY0333,9740.739130434782,0.163203125,3.1433427523437514
699 | 697,CY0333,9868.492753623188,0.7145914396887159,2.8693606961089495
700 | 698,CY0333,9996.246376811594,0.26370078740157465,2.1369003582677157
701 | 699,CY0333,10124.0,0.0,6.611945
702 | 700,CY0334,1309.0,0.7149027237354083,7.836213443579764
703 | 701,CY0334,1436.7536231884058,1.1229729729729734,7.176501872586878
704 | 702,CY0334,1564.5072463768115,0.170390625,2.7517314414062506
705 | 703,CY0334,1692.2608695652175,0.11960937500000003,3.491326875
706 | 704,CY0334,1820.0144927536232,0.14488188976377947,2.5779030196850403
707 | 705,CY0334,1947.768115942029,0.19238281250000014,1.813680011718751
708 | 706,CY0334,2075.521739130435,0.18628906249999996,4.437003558593752
709 | 707,CY0334,2203.2753623188405,0.19539062500000004,3.119248945312501
710 | 708,CY0334,2331.0289855072465,0.1689763779527559,5.284137133858264
711 | 709,CY0334,2458.782608695652,0.9521374045801525,3.6610782519084
712 | 710,CY0334,2586.536231884058,0.20824427480916025,5.955558503816791
713 | 711,CY0334,2714.289855072464,0.32935606060606054,2.361087049242422
714 | 712,CY0334,2842.0434782608695,0.19519685039370077,3.7594181377952767
715 | 713,CY0334,2969.797101449275,0.16914062500000002,5.965296117187498
716 | 714,CY0334,3097.550724637681,0.15187500000000015,5.123928964843753
717 | 715,CY0334,3225.304347826087,0.2584374999999999,6.735318085937501
718 | 716,CY0334,3353.057971014493,0.27173228346456674,3.4363252322834645
719 | 717,CY0334,3480.8115942028985,0.15246093750000003,2.8082792109375
720 | 718,CY0334,3608.5652173913045,0.1795703125,1.4874485078124984
721 | 719,CY0334,3736.31884057971,0.1836718749999999,4.380361953125
722 | 720,CY0334,3864.072463768116,0.26748031496062996,4.753448456692911
723 | 721,CY0334,3991.8260869565215,0.19234374999999998,2.7075870703124982
724 | 722,CY0334,4119.579710144928,0.20906249999999996,4.149530550781253
725 | 723,CY0334,4247.333333333334,0.27703124999999995,2.8055376875000007
726 | 724,CY0334,4375.086956521739,0.1304724409448819,4.449168413385826
727 | 725,CY0334,4502.840579710145,0.15003906250000001,2.069694378906249
728 | 726,CY0334,4630.59420289855,0.18058593750000004,3.26801975390625
729 | 727,CY0334,4758.347826086956,0.25433593750000016,2.568741183593749
730 | 728,CY0334,4886.101449275362,0.1867716535433071,3.640417956692916
731 | 729,CY0334,5013.855072463768,0.20062500000000014,1.3494118320312511
732 | 730,CY0334,5141.608695652174,0.22097656250000017,3.074504074218753
733 | 731,CY0334,5269.36231884058,0.13136718750000007,3.222045683593749
734 | 732,CY0334,5397.115942028986,0.22299212598425203,4.960893850393701
735 | 733,CY0334,5524.869565217391,0.0897265625,2.2104232460937507
736 | 734,CY0334,5652.623188405797,0.060078124999999996,2.9730006406250005
737 | 735,CY0334,5780.376811594203,0.09449218749999999,3.5636834375000017
738 | 736,CY0334,5908.130434782609,0.21843137254901962,2.7732562980392155
739 | 737,CY0334,6035.884057971014,0.26492424242424234,1.5736928939393946
740 | 738,CY0334,6163.63768115942,0.14918918918918922,2.9576610849420844
741 | 739,CY0334,6291.391304347826,0.14648437499999997,6.582461847656248
742 | 740,CY0334,6419.144927536232,0.16185039370078744,3.316588366141731
743 | 741,CY0334,6546.898550724638,0.14922779922779922,2.952390579150579
744 | 742,CY0334,6674.652173913043,0.20099999999999996,4.908039976923073
745 | 743,CY0334,6802.405797101449,0.2619305019305019,2.600881610038611
746 | 744,CY0334,6930.159420289855,0.5654901960784312,2.542293168627453
747 | 745,CY0334,7057.913043478261,0.5659765624999998,2.4261125898437483
748 | 746,CY0334,7185.666666666667,0.1675,2.8368264687499996
749 | 747,CY0334,7313.420289855072,0.22253906250000002,4.919145667968752
750 | 748,CY0334,7441.173913043478,0.2470866141732281,1.1621395039370075
751 | 749,CY0334,7568.927536231884,0.18843749999999998,1.4474573124999999
752 | 750,CY0334,7696.68115942029,0.15171874999999996,2.61292878515625
753 | 751,CY0334,7824.434782608696,0.163828125,2.964467117187501
754 | 752,CY0334,7952.188405797101,0.14196850393700794,2.0987539972440943
755 | 753,CY0334,8079.942028985507,0.15878906250000005,3.791875116796875
756 | 754,CY0334,8207.695652173912,0.21617187499999999,1.6769035062500006
757 | 755,CY0334,8335.44927536232,0.14519531250000006,4.282164765234374
758 | 756,CY0334,8463.202898550724,0.12645669291338588,1.003633822834646
759 | 757,CY0334,8590.95652173913,0.14734375000000002,1.6158847621093748
760 | 758,CY0334,8718.710144927536,0.13707031249999985,2.0701964582031245
761 | 759,CY0334,8846.463768115942,0.18566406249999998,1.3548821644531241
762 | 760,CY0334,8974.217391304348,0.21207031249999989,3.1265266011718755
763 | 761,CY0334,9101.971014492754,1.8541281138790022,1.1313024960854103
764 | 762,CY0334,9229.72463768116,0.6870833333333345,1.2545910174242432
765 | 763,CY0334,9357.478260869564,0.25822641509433975,2.627066526792455
766 | 764,CY0334,9485.231884057972,1.1867843137254908,4.237461447058827
767 | 765,CY0334,9612.985507246376,1.5541472868217057,4.359254348837209
768 | 766,CY0334,9740.739130434782,0.12175781250000012,2.2554601953124984
769 | 767,CY0334,9868.492753623188,0.3232812500000002,1.494579589843749
770 | 768,CY0334,9996.246376811594,0.185748031496063,1.5332604842519684
771 | 769,CY0334,10124.0,0.0,3.47069
772 | 770,CY0335,1309.0,0.2807392996108949,6.38939022178988
773 | 771,CY0335,1436.7536231884058,1.495615384615385,7.40284536153846
774 | 772,CY0335,1564.5072463768115,0.2619844357976654,2.9547093657587538
775 | 773,CY0335,1692.2608695652175,0.16988281249999998,3.785267566406251
776 | 774,CY0335,1820.0144927536232,0.21688976377952754,2.573661456692913
777 | 775,CY0335,1947.768115942029,0.22644531249999988,1.8765928945312498
778 | 776,CY0335,2075.521739130435,0.26363281250000004,3.4850107734375007
779 | 777,CY0335,2203.2753623188405,0.1708593749999998,3.838074179687498
780 | 778,CY0335,2331.0289855072465,0.19125984251968506,5.659281948818901
781 | 779,CY0335,2458.782608695652,1.1457358490566039,4.203566173584902
782 | 780,CY0335,2586.536231884058,0.41330827067669174,5.943150563909773
783 | 781,CY0335,2714.289855072464,0.3208921933085503,2.0776218661710044
784 | 782,CY0335,2842.0434782608695,0.19944881889763774,3.8083464133858276
785 | 783,CY0335,2969.797101449275,0.1340234375,5.145108855468752
786 | 784,CY0335,3097.550724637681,0.14597656250000007,4.940860316406254
787 | 785,CY0335,3225.304347826087,0.17824218750000004,6.4876876640625
788 | 786,CY0335,3353.057971014493,0.36759842519685043,3.978441700787403
789 | 787,CY0335,3480.8115942028985,0.20769531250000003,2.6495849492187515
790 | 788,CY0335,3608.5652173913045,0.16582031249999987,1.3453240820312498
791 | 789,CY0335,3736.31884057971,0.15070312500000005,4.5764136328125
792 | 790,CY0335,3864.072463768116,0.20232283464566925,5.062400795275588
793 | 791,CY0335,3991.8260869565215,0.15746093749999995,3.0611698554687505
794 | 792,CY0335,4119.579710144928,0.23738281250000004,4.230180863281252
795 | 793,CY0335,4247.333333333334,0.18656250000000005,2.1359054453125
796 | 794,CY0335,4375.086956521739,0.42850393700787404,4.064490366141733
797 | 795,CY0335,4502.840579710145,0.13355468750000002,2.1116006601562494
798 | 796,CY0335,4630.59420289855,0.10203124999999995,3.0786875625000003
799 | 797,CY0335,4758.347826086956,0.20187499999999997,2.367139359375
800 | 798,CY0335,4886.101449275362,0.19074803149606304,3.775384732283464
801 | 799,CY0335,5013.855072463768,0.1833593749999999,1.232714421874999
802 | 800,CY0335,5141.608695652174,0.1446484375,3.0148562539062516
803 | 801,CY0335,5269.36231884058,0.12164062499999997,3.2776622734375027
804 | 802,CY0335,5397.115942028986,0.1348031496062992,5.232569972440944
805 | 803,CY0335,5524.869565217391,0.09758754863813232,2.8052644241245135
806 | 804,CY0335,5652.623188405797,0.08675781249999999,3.688806062499999
807 | 805,CY0335,5780.376811594203,0.16683593750000003,2.898613539062501
808 | 806,CY0335,5908.130434782609,0.13074803149606296,2.32179609055118
809 | 807,CY0335,6035.884057971014,0.20159695817490494,1.3124249315589354
810 | 808,CY0335,6163.63768115942,0.3529118773946362,2.6253565095785447
811 | 809,CY0335,6291.391304347826,0.148203125,6.288185007812499
812 | 810,CY0335,6419.144927536232,0.11838582677165353,3.210525354330709
813 | 811,CY0335,6546.898550724638,0.34414448669201514,3.056421577946769
814 | 812,CY0335,6674.652173913043,0.1299609375,5.070182585937499
815 | 813,CY0335,6802.405797101449,0.27924242424242435,3.5772367992424243
816 | 814,CY0335,6930.159420289855,0.48885826771653557,3.196517500000002
817 | 815,CY0335,7057.913043478261,0.1424902723735408,3.190518809338521
818 | 816,CY0335,7185.666666666667,0.48148437499999985,2.982768839843751
819 | 817,CY0335,7313.420289855072,0.25941406250000004,4.9164898125
820 | 818,CY0335,7441.173913043478,0.3524803149606298,1.3795442165354332
821 | 819,CY0335,7568.927536231884,0.2310937499999999,1.2587378085937504
822 | 820,CY0335,7696.68115942029,0.3077734375,2.850090964843752
823 | 821,CY0335,7824.434782608696,0.2781250000000002,2.5469003898437497
824 | 822,CY0335,7952.188405797101,0.17185039370078734,2.003951651968505
825 | 823,CY0335,8079.942028985507,0.1675390624999999,3.8964540160156256
826 | 824,CY0335,8207.695652173912,0.2992187499999996,1.7234028527343759
827 | 825,CY0335,8335.44927536232,0.16972656250000007,4.4401122296874975
828 | 826,CY0335,8463.202898550724,0.12374015748031501,1.02338010984252
829 | 827,CY0335,8590.95652173913,0.1722265625000001,1.4172901812499994
830 | 828,CY0335,8718.710144927536,0.16902343750000018,2.0880319484375014
831 | 829,CY0335,8846.463768115942,0.23218750000000007,1.6427521390625004
832 | 830,CY0335,8974.217391304348,0.18271653543307081,3.4209468783464563
833 | 831,CY0335,9101.971014492754,1.6710714285714292,1.0581001757142863
834 | 832,CY0335,9229.72463768116,0.9976492537313439,1.2605971865671644
835 | 833,CY0335,9357.478260869564,0.36380597014925387,2.4943543768656724
836 | 834,CY0335,9485.231884057972,1.08484375,4.479533187500001
837 | 835,CY0335,9612.985507246376,0.9851171875000002,4.003404757812501
838 | 836,CY0335,9740.739130434782,0.11113281250000002,1.819210699218751
839 | 837,CY0335,9868.492753623188,0.5626848249027241,1.6897760077821016
840 | 838,CY0335,9996.246376811594,0.21196078431372553,1.3753099921568634
841 | 839,CY0335,10124.0,0.0,3.5591385
842 |
--------------------------------------------------------------------------------