diff --git a/.gitignore b/.gitignore
index 2c71777..f8770f0 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,5 +1,6 @@
-*.svg
-*.js
+/candlestick.svg
+/layer-line.svg
+
*.png
*.jpg
*.txt
diff --git a/source.go b/source.go
new file mode 100644
index 0000000..0407d93
--- /dev/null
+++ b/source.go
@@ -0,0 +1,72 @@
+package vegagoja
+
+import (
+ "io/fs"
+ "os"
+ "strings"
+)
+
+// Source is a cascading [fs.FS] implementation.
+type Source struct {
+ sources []fs.FS
+}
+
+// NewSource creates a source data source for the supplied file systems.
+func NewSource(sources ...fs.FS) fs.FS {
+ if len(sources) == 1 {
+ return sources[0]
+ }
+ return &Source{
+ sources: sources,
+ }
+}
+
+// Open satisfies the [fs.FS] interface.
+func (s *Source) Open(name string) (fs.File, error) {
+ for _, source := range s.sources {
+ if file, err := source.Open(name); err == nil {
+ return file, nil
+ }
+ }
+ return nil, os.ErrNotExist
+}
+
+// PrefixedSource is a prefixed source.
+type PrefixedSource struct {
+ prefix string
+ source fs.FS
+}
+
+// NewPrefixedSource creates a prefixed source.
+func NewPrefixedSource(prefix string, source fs.FS) *PrefixedSource {
+ return &PrefixedSource{
+ prefix: prefix,
+ source: source,
+ }
+}
+
+// NewPrefixedSourceDir creates a prefixed source for the specified directory.
+func NewPrefixedSourceDir(prefix, dir string) *PrefixedSource {
+ return &PrefixedSource{
+ prefix: prefix,
+ source: os.DirFS(dir),
+ }
+}
+
+// Open satisfies the [fs.FS] interface.
+func (s *PrefixedSource) Open(name string) (fs.File, error) {
+ if !strings.HasPrefix(name, s.prefix) {
+ return nil, os.ErrNotExist
+ }
+ return s.source.Open(strings.TrimPrefix(name, s.prefix))
+}
+
+// ResultSet is the shared interface for a result set.
+type ResultSet interface {
+ Next() bool
+ Scan(...interface{}) error
+ Columns() ([]string, error)
+ Close() error
+ Err() error
+ NextResultSet() bool
+}
diff --git a/testdata/deneb/LICENSE b/testdata/deneb/LICENSE
new file mode 100644
index 0000000..1dfa41c
--- /dev/null
+++ b/testdata/deneb/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2023 Davide Bacci
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/testdata/deneb/README.md b/testdata/deneb/README.md
new file mode 100644
index 0000000..fc0c3ee
--- /dev/null
+++ b/testdata/deneb/README.md
@@ -0,0 +1,7 @@
+# About
+
+The examples in this folder are taken from [David Bacci's][david-bacci-linkedin]
+[Deneb Showcase][deneb-showcase], and modified under the [MIT License](./LICENSE).
+
+[david-bacci-linkedin]: https://www.linkedin.com/in/davbacci/
+[deneb-showcase]: https://github.com/PBI-David/Deneb-Showcase
diff --git a/testdata/deneb/calendar-heatmap-data.json b/testdata/deneb/calendar-heatmap-data.json
new file mode 100644
index 0000000..9aca2a9
--- /dev/null
+++ b/testdata/deneb/calendar-heatmap-data.json
@@ -0,0 +1,10230 @@
+[
+ {
+ "Date": "01/01/16",
+ "Amount": 2017.6
+ },
+ {
+ "Date": "02/01/16",
+ "Amount": 2017.2
+ },
+ {
+ "Date": "03/01/16",
+ "Amount": 2017.7
+ },
+ {
+ "Date": "04/01/16",
+ "Amount": 2016.5
+ },
+ {
+ "Date": "05/01/16",
+ "Amount": 2016.5
+ },
+ {
+ "Date": "06/01/16",
+ "Amount": 2017
+ },
+ {
+ "Date": "07/01/16",
+ "Amount": 2016.9
+ },
+ {
+ "Date": "08/01/16",
+ "Amount": 2016.7
+ },
+ {
+ "Date": "09/01/16",
+ "Amount": 2016.8
+ },
+ {
+ "Date": "10/01/16",
+ "Amount": 2017.1
+ },
+ {
+ "Date": "11/01/16",
+ "Amount": 2016.4
+ },
+ {
+ "Date": "12/01/16",
+ "Amount": 2016.6
+ },
+ {
+ "Date": "13/01/16",
+ "Amount": 2016.8
+ },
+ {
+ "Date": "14/01/16",
+ "Amount": 2016.6
+ },
+ {
+ "Date": "15/01/16",
+ "Amount": 2016.7
+ },
+ {
+ "Date": "16/01/16",
+ "Amount": 2016.8
+ },
+ {
+ "Date": "17/01/16",
+ "Amount": 2017.2
+ },
+ {
+ "Date": "18/01/16",
+ "Amount": 2017
+ },
+ {
+ "Date": "19/01/16",
+ "Amount": 2016.9
+ },
+ {
+ "Date": "20/01/16",
+ "Amount": 2016.9
+ },
+ {
+ "Date": "21/01/16",
+ "Amount": 2017.2
+ },
+ {
+ "Date": "22/01/16",
+ "Amount": 2017.5
+ },
+ {
+ "Date": "23/01/16",
+ "Amount": 2017.7
+ },
+ {
+ "Date": "24/01/16",
+ "Amount": 2016.8
+ },
+ {
+ "Date": "25/01/16",
+ "Amount": 2016.3
+ },
+ {
+ "Date": "26/01/16",
+ "Amount": 2016.8
+ },
+ {
+ "Date": "27/01/16",
+ "Amount": 2017.1
+ },
+ {
+ "Date": "28/01/16",
+ "Amount": 2016.9
+ },
+ {
+ "Date": "29/01/16",
+ "Amount": 2017.4
+ },
+ {
+ "Date": "30/01/16",
+ "Amount": 2017.6
+ },
+ {
+ "Date": "31/01/16",
+ "Amount": 2017
+ },
+ {
+ "Date": "01/02/16",
+ "Amount": 2016.7
+ },
+ {
+ "Date": "02/02/16",
+ "Amount": 2016.7
+ },
+ {
+ "Date": "03/02/16",
+ "Amount": 2017.1
+ },
+ {
+ "Date": "04/02/16",
+ "Amount": 2016.6
+ },
+ {
+ "Date": "05/02/16",
+ "Amount": 2016.7
+ },
+ {
+ "Date": "06/02/16",
+ "Amount": 2016.8
+ },
+ {
+ "Date": "07/02/16",
+ "Amount": 2017.6
+ },
+ {
+ "Date": "08/02/16",
+ "Amount": 2016.3
+ },
+ {
+ "Date": "09/02/16",
+ "Amount": 2016.8
+ },
+ {
+ "Date": "10/02/16",
+ "Amount": 2017
+ },
+ {
+ "Date": "11/02/16",
+ "Amount": 2016.6
+ },
+ {
+ "Date": "12/02/16",
+ "Amount": 2017.5
+ },
+ {
+ "Date": "13/02/16",
+ "Amount": 2016.9
+ },
+ {
+ "Date": "14/02/16",
+ "Amount": 2017.2
+ },
+ {
+ "Date": "15/02/16",
+ "Amount": 2016.3
+ },
+ {
+ "Date": "16/02/16",
+ "Amount": 2016.7
+ },
+ {
+ "Date": "17/02/16",
+ "Amount": 2017
+ },
+ {
+ "Date": "18/02/16",
+ "Amount": 2017.4
+ },
+ {
+ "Date": "19/02/16",
+ "Amount": 2016.6
+ },
+ {
+ "Date": "20/02/16",
+ "Amount": 2016.9
+ },
+ {
+ "Date": "21/02/16",
+ "Amount": 2016.8
+ },
+ {
+ "Date": "22/02/16",
+ "Amount": 2016.9
+ },
+ {
+ "Date": "23/02/16",
+ "Amount": 2017.2
+ },
+ {
+ "Date": "24/02/16",
+ "Amount": 2016.5
+ },
+ {
+ "Date": "25/02/16",
+ "Amount": 2017.4
+ },
+ {
+ "Date": "26/02/16",
+ "Amount": 2017.5
+ },
+ {
+ "Date": "27/02/16",
+ "Amount": 2017.5
+ },
+ {
+ "Date": "28/02/16",
+ "Amount": 2017.2
+ },
+ {
+ "Date": "29/02/16",
+ "Amount": 2017
+ },
+ {
+ "Date": "01/03/16",
+ "Amount": 2016.6
+ },
+ {
+ "Date": "02/03/16",
+ "Amount": 2016.8
+ },
+ {
+ "Date": "03/03/16",
+ "Amount": 2017.1
+ },
+ {
+ "Date": "04/03/16",
+ "Amount": 2016.7
+ },
+ {
+ "Date": "05/03/16",
+ "Amount": 2017.2
+ },
+ {
+ "Date": "06/03/16",
+ "Amount": 2016.9
+ },
+ {
+ "Date": "07/03/16",
+ "Amount": 2017.2
+ },
+ {
+ "Date": "08/03/16",
+ "Amount": 2016.6
+ },
+ {
+ "Date": "09/03/16",
+ "Amount": 2016.6
+ },
+ {
+ "Date": "10/03/16",
+ "Amount": 2016.9
+ },
+ {
+ "Date": "11/03/16",
+ "Amount": 2017.1
+ },
+ {
+ "Date": "12/03/16",
+ "Amount": 2017.4
+ },
+ {
+ "Date": "13/03/16",
+ "Amount": 2017.7
+ },
+ {
+ "Date": "14/03/16",
+ "Amount": 2016.6
+ },
+ {
+ "Date": "15/03/16",
+ "Amount": 2016.5
+ },
+ {
+ "Date": "16/03/16",
+ "Amount": 2017.1
+ },
+ {
+ "Date": "17/03/16",
+ "Amount": 2017.2
+ },
+ {
+ "Date": "18/03/16",
+ "Amount": 2016.7
+ },
+ {
+ "Date": "19/03/16",
+ "Amount": 2017.7
+ },
+ {
+ "Date": "20/03/16",
+ "Amount": 2017.4
+ },
+ {
+ "Date": "21/03/16",
+ "Amount": 2016.4
+ },
+ {
+ "Date": "22/03/16",
+ "Amount": 2016.4
+ },
+ {
+ "Date": "23/03/16",
+ "Amount": 2016.4
+ },
+ {
+ "Date": "24/03/16",
+ "Amount": 2017.3
+ },
+ {
+ "Date": "25/03/16",
+ "Amount": 2016.8
+ },
+ {
+ "Date": "26/03/16",
+ "Amount": 2017
+ },
+ {
+ "Date": "27/03/16",
+ "Amount": 2016.8
+ },
+ {
+ "Date": "28/03/16",
+ "Amount": 2017.1
+ },
+ {
+ "Date": "29/03/16",
+ "Amount": 2016.5
+ },
+ {
+ "Date": "30/03/16",
+ "Amount": 2016.6
+ },
+ {
+ "Date": "31/03/16",
+ "Amount": 2017.4
+ },
+ {
+ "Date": "01/04/16",
+ "Amount": 2017.6
+ },
+ {
+ "Date": "02/04/16",
+ "Amount": 2017.2
+ },
+ {
+ "Date": "03/04/16",
+ "Amount": 2017.5
+ },
+ {
+ "Date": "04/04/16",
+ "Amount": 2016.9
+ },
+ {
+ "Date": "05/04/16",
+ "Amount": 2016.6
+ },
+ {
+ "Date": "06/04/16",
+ "Amount": 2016.9
+ },
+ {
+ "Date": "07/04/16",
+ "Amount": 2017.1
+ },
+ {
+ "Date": "08/04/16",
+ "Amount": 2017.2
+ },
+ {
+ "Date": "09/04/16",
+ "Amount": 2017.2
+ },
+ {
+ "Date": "10/04/16",
+ "Amount": 2016.9
+ },
+ {
+ "Date": "11/04/16",
+ "Amount": 2016.8
+ },
+ {
+ "Date": "12/04/16",
+ "Amount": 2016.5
+ },
+ {
+ "Date": "13/04/16",
+ "Amount": 2017.2
+ },
+ {
+ "Date": "14/04/16",
+ "Amount": 2016.8
+ },
+ {
+ "Date": "15/04/16",
+ "Amount": 2017.1
+ },
+ {
+ "Date": "16/04/16",
+ "Amount": 2016.9
+ },
+ {
+ "Date": "17/04/16",
+ "Amount": 2017.1
+ },
+ {
+ "Date": "18/04/16",
+ "Amount": 2016.3
+ },
+ {
+ "Date": "19/04/16",
+ "Amount": 2017.1
+ },
+ {
+ "Date": "20/04/16",
+ "Amount": 2016.7
+ },
+ {
+ "Date": "21/04/16",
+ "Amount": 2016.5
+ },
+ {
+ "Date": "22/04/16",
+ "Amount": 2017.1
+ },
+ {
+ "Date": "23/04/16",
+ "Amount": 2016.7
+ },
+ {
+ "Date": "24/04/16",
+ "Amount": 2017.2
+ },
+ {
+ "Date": "25/04/16",
+ "Amount": 2017.1
+ },
+ {
+ "Date": "26/04/16",
+ "Amount": 2016.5
+ },
+ {
+ "Date": "27/04/16",
+ "Amount": 2017.1
+ },
+ {
+ "Date": "28/04/16",
+ "Amount": 2017.3
+ },
+ {
+ "Date": "29/04/16",
+ "Amount": 2017
+ },
+ {
+ "Date": "30/04/16",
+ "Amount": 2017.5
+ },
+ {
+ "Date": "01/05/16",
+ "Amount": 2017.4
+ },
+ {
+ "Date": "02/05/16",
+ "Amount": 2016.5
+ },
+ {
+ "Date": "03/05/16",
+ "Amount": 2016.9
+ },
+ {
+ "Date": "04/05/16",
+ "Amount": 2017
+ },
+ {
+ "Date": "05/05/16",
+ "Amount": 2017.1
+ },
+ {
+ "Date": "06/05/16",
+ "Amount": 2017
+ },
+ {
+ "Date": "07/05/16",
+ "Amount": 2016.7
+ },
+ {
+ "Date": "08/05/16",
+ "Amount": 2017.3
+ },
+ {
+ "Date": "09/05/16",
+ "Amount": 2016.9
+ },
+ {
+ "Date": "10/05/16",
+ "Amount": 2017.3
+ },
+ {
+ "Date": "11/05/16",
+ "Amount": 2017
+ },
+ {
+ "Date": "12/05/16",
+ "Amount": 2016.9
+ },
+ {
+ "Date": "13/05/16",
+ "Amount": 2016.7
+ },
+ {
+ "Date": "14/05/16",
+ "Amount": 2017.6
+ },
+ {
+ "Date": "15/05/16",
+ "Amount": 2017.2
+ },
+ {
+ "Date": "16/05/16",
+ "Amount": 2016.5
+ },
+ {
+ "Date": "17/05/16",
+ "Amount": 2017
+ },
+ {
+ "Date": "18/05/16",
+ "Amount": 2016.9
+ },
+ {
+ "Date": "19/05/16",
+ "Amount": 2017.5
+ },
+ {
+ "Date": "20/05/16",
+ "Amount": 2017
+ },
+ {
+ "Date": "21/05/16",
+ "Amount": 2017.3
+ },
+ {
+ "Date": "22/05/16",
+ "Amount": 2017.7
+ },
+ {
+ "Date": "23/05/16",
+ "Amount": 2016.3
+ },
+ {
+ "Date": "24/05/16",
+ "Amount": 2016.6
+ },
+ {
+ "Date": "25/05/16",
+ "Amount": 2017.3
+ },
+ {
+ "Date": "26/05/16",
+ "Amount": 2017.1
+ },
+ {
+ "Date": "27/05/16",
+ "Amount": 2016.7
+ },
+ {
+ "Date": "28/05/16",
+ "Amount": 2016.8
+ },
+ {
+ "Date": "29/05/16",
+ "Amount": 2017.2
+ },
+ {
+ "Date": "30/05/16",
+ "Amount": 2016.8
+ },
+ {
+ "Date": "31/05/16",
+ "Amount": 2016.6
+ },
+ {
+ "Date": "01/06/16",
+ "Amount": 2017.1
+ },
+ {
+ "Date": "02/06/16",
+ "Amount": 2017
+ },
+ {
+ "Date": "03/06/16",
+ "Amount": 2017.4
+ },
+ {
+ "Date": "04/06/16",
+ "Amount": 2017.4
+ },
+ {
+ "Date": "05/06/16",
+ "Amount": 2017.8
+ },
+ {
+ "Date": "06/06/16",
+ "Amount": 2016.4
+ },
+ {
+ "Date": "07/06/16",
+ "Amount": 2016.8
+ },
+ {
+ "Date": "08/06/16",
+ "Amount": 2017.1
+ },
+ {
+ "Date": "09/06/16",
+ "Amount": 2016.6
+ },
+ {
+ "Date": "10/06/16",
+ "Amount": 2017.4
+ },
+ {
+ "Date": "11/06/16",
+ "Amount": 2016.8
+ },
+ {
+ "Date": "12/06/16",
+ "Amount": 2017.2
+ },
+ {
+ "Date": "13/06/16",
+ "Amount": 2017.2
+ },
+ {
+ "Date": "14/06/16",
+ "Amount": 2017.1
+ },
+ {
+ "Date": "15/06/16",
+ "Amount": 2016.6
+ },
+ {
+ "Date": "16/06/16",
+ "Amount": 2017.2
+ },
+ {
+ "Date": "17/06/16",
+ "Amount": 2016.9
+ },
+ {
+ "Date": "18/06/16",
+ "Amount": 2017.5
+ },
+ {
+ "Date": "19/06/16",
+ "Amount": 2017.5
+ },
+ {
+ "Date": "20/06/16",
+ "Amount": 2016.6
+ },
+ {
+ "Date": "21/06/16",
+ "Amount": 2017.1
+ },
+ {
+ "Date": "22/06/16",
+ "Amount": 2017.2
+ },
+ {
+ "Date": "23/06/16",
+ "Amount": 2017.1
+ },
+ {
+ "Date": "24/06/16",
+ "Amount": 2017.1
+ },
+ {
+ "Date": "25/06/16",
+ "Amount": 2016.9
+ },
+ {
+ "Date": "26/06/16",
+ "Amount": 2017.4
+ },
+ {
+ "Date": "27/06/16",
+ "Amount": 2016.6
+ },
+ {
+ "Date": "28/06/16",
+ "Amount": 2016.9
+ },
+ {
+ "Date": "29/06/16",
+ "Amount": 2017
+ },
+ {
+ "Date": "30/06/16",
+ "Amount": 2017.1
+ },
+ {
+ "Date": "01/07/16",
+ "Amount": 2017.3
+ },
+ {
+ "Date": "02/07/16",
+ "Amount": 2017.6
+ },
+ {
+ "Date": "03/07/16",
+ "Amount": 2017.2
+ },
+ {
+ "Date": "04/07/16",
+ "Amount": 2016.8
+ },
+ {
+ "Date": "05/07/16",
+ "Amount": 2017.1
+ },
+ {
+ "Date": "06/07/16",
+ "Amount": 2017.2
+ },
+ {
+ "Date": "07/07/16",
+ "Amount": 2017.1
+ },
+ {
+ "Date": "08/07/16",
+ "Amount": 2017.1
+ },
+ {
+ "Date": "09/07/16",
+ "Amount": 2017.3
+ },
+ {
+ "Date": "10/07/16",
+ "Amount": 2017.5
+ },
+ {
+ "Date": "11/07/16",
+ "Amount": 2016.2
+ },
+ {
+ "Date": "12/07/16",
+ "Amount": 2017
+ },
+ {
+ "Date": "13/07/16",
+ "Amount": 2016.8
+ },
+ {
+ "Date": "14/07/16",
+ "Amount": 2017.3
+ },
+ {
+ "Date": "15/07/16",
+ "Amount": 2016.8
+ },
+ {
+ "Date": "16/07/16",
+ "Amount": 2017.4
+ },
+ {
+ "Date": "17/07/16",
+ "Amount": 2016.9
+ },
+ {
+ "Date": "18/07/16",
+ "Amount": 2017
+ },
+ {
+ "Date": "19/07/16",
+ "Amount": 2016.6
+ },
+ {
+ "Date": "20/07/16",
+ "Amount": 2017
+ },
+ {
+ "Date": "21/07/16",
+ "Amount": 2016.7
+ },
+ {
+ "Date": "22/07/16",
+ "Amount": 2016.7
+ },
+ {
+ "Date": "23/07/16",
+ "Amount": 2017.1
+ },
+ {
+ "Date": "24/07/16",
+ "Amount": 2017.2
+ },
+ {
+ "Date": "25/07/16",
+ "Amount": 2016.3
+ },
+ {
+ "Date": "26/07/16",
+ "Amount": 2016.5
+ },
+ {
+ "Date": "27/07/16",
+ "Amount": 2016.7
+ },
+ {
+ "Date": "28/07/16",
+ "Amount": 2016.7
+ },
+ {
+ "Date": "29/07/16",
+ "Amount": 2016.8
+ },
+ {
+ "Date": "30/07/16",
+ "Amount": 2016.9
+ },
+ {
+ "Date": "31/07/16",
+ "Amount": 2017.1
+ },
+ {
+ "Date": "01/08/16",
+ "Amount": 2016.4
+ },
+ {
+ "Date": "02/08/16",
+ "Amount": 2016.8
+ },
+ {
+ "Date": "03/08/16",
+ "Amount": 2016.5
+ },
+ {
+ "Date": "04/08/16",
+ "Amount": 2017.2
+ },
+ {
+ "Date": "05/08/16",
+ "Amount": 2016.6
+ },
+ {
+ "Date": "06/08/16",
+ "Amount": 2017
+ },
+ {
+ "Date": "07/08/16",
+ "Amount": 2017.8
+ },
+ {
+ "Date": "08/08/16",
+ "Amount": 2017.1
+ },
+ {
+ "Date": "09/08/16",
+ "Amount": 2016.7
+ },
+ {
+ "Date": "10/08/16",
+ "Amount": 2016.8
+ },
+ {
+ "Date": "11/08/16",
+ "Amount": 2016.6
+ },
+ {
+ "Date": "12/08/16",
+ "Amount": 2016.7
+ },
+ {
+ "Date": "13/08/16",
+ "Amount": 2017.6
+ },
+ {
+ "Date": "14/08/16",
+ "Amount": 2017
+ },
+ {
+ "Date": "15/08/16",
+ "Amount": 2017.1
+ },
+ {
+ "Date": "16/08/16",
+ "Amount": 2016.6
+ },
+ {
+ "Date": "17/08/16",
+ "Amount": 2016.5
+ },
+ {
+ "Date": "18/08/16",
+ "Amount": 2017.3
+ },
+ {
+ "Date": "19/08/16",
+ "Amount": 2016.8
+ },
+ {
+ "Date": "20/08/16",
+ "Amount": 2017.2
+ },
+ {
+ "Date": "21/08/16",
+ "Amount": 2017.7
+ },
+ {
+ "Date": "22/08/16",
+ "Amount": 2017
+ },
+ {
+ "Date": "23/08/16",
+ "Amount": 2016.6
+ },
+ {
+ "Date": "24/08/16",
+ "Amount": 2016.5
+ },
+ {
+ "Date": "25/08/16",
+ "Amount": 2016.5
+ },
+ {
+ "Date": "26/08/16",
+ "Amount": 2016.7
+ },
+ {
+ "Date": "27/08/16",
+ "Amount": 2017
+ },
+ {
+ "Date": "28/08/16",
+ "Amount": 2016.9
+ },
+ {
+ "Date": "29/08/16",
+ "Amount": 2016.3
+ },
+ {
+ "Date": "30/08/16",
+ "Amount": 2016.8
+ },
+ {
+ "Date": "31/08/16",
+ "Amount": 2017.1
+ },
+ {
+ "Date": "01/09/16",
+ "Amount": 2016.5
+ },
+ {
+ "Date": "02/09/16",
+ "Amount": 2016.8
+ },
+ {
+ "Date": "03/09/16",
+ "Amount": 2017
+ },
+ {
+ "Date": "04/09/16",
+ "Amount": 2017.6
+ },
+ {
+ "Date": "05/09/16",
+ "Amount": 2016.6
+ },
+ {
+ "Date": "06/09/16",
+ "Amount": 2016.3
+ },
+ {
+ "Date": "07/09/16",
+ "Amount": 2017
+ },
+ {
+ "Date": "08/09/16",
+ "Amount": 2017.2
+ },
+ {
+ "Date": "09/09/16",
+ "Amount": 2017.5
+ },
+ {
+ "Date": "10/09/16",
+ "Amount": 2016.7
+ },
+ {
+ "Date": "11/09/16",
+ "Amount": 2017.4
+ },
+ {
+ "Date": "12/09/16",
+ "Amount": 2016.3
+ },
+ {
+ "Date": "13/09/16",
+ "Amount": 2017
+ },
+ {
+ "Date": "14/09/16",
+ "Amount": 2016.5
+ },
+ {
+ "Date": "15/09/16",
+ "Amount": 2017.4
+ },
+ {
+ "Date": "16/09/16",
+ "Amount": 2017.5
+ },
+ {
+ "Date": "17/09/16",
+ "Amount": 2017.4
+ },
+ {
+ "Date": "18/09/16",
+ "Amount": 2017.7
+ },
+ {
+ "Date": "19/09/16",
+ "Amount": 2016.5
+ },
+ {
+ "Date": "20/09/16",
+ "Amount": 2016.6
+ },
+ {
+ "Date": "21/09/16",
+ "Amount": 2016.6
+ },
+ {
+ "Date": "22/09/16",
+ "Amount": 2017
+ },
+ {
+ "Date": "23/09/16",
+ "Amount": 2016.8
+ },
+ {
+ "Date": "24/09/16",
+ "Amount": 2016.9
+ },
+ {
+ "Date": "25/09/16",
+ "Amount": 2017.4
+ },
+ {
+ "Date": "26/09/16",
+ "Amount": 2016.3
+ },
+ {
+ "Date": "27/09/16",
+ "Amount": 2016.7
+ },
+ {
+ "Date": "28/09/16",
+ "Amount": 2016.8
+ },
+ {
+ "Date": "29/09/16",
+ "Amount": 2016.9
+ },
+ {
+ "Date": "30/09/16",
+ "Amount": 2017
+ },
+ {
+ "Date": "01/10/16",
+ "Amount": 2017.1
+ },
+ {
+ "Date": "02/10/16",
+ "Amount": 2016.8
+ },
+ {
+ "Date": "03/10/16",
+ "Amount": 2017
+ },
+ {
+ "Date": "04/10/16",
+ "Amount": 2016.5
+ },
+ {
+ "Date": "05/10/16",
+ "Amount": 2017.4
+ },
+ {
+ "Date": "06/10/16",
+ "Amount": 2016.7
+ },
+ {
+ "Date": "07/10/16",
+ "Amount": 2017.1
+ },
+ {
+ "Date": "08/10/16",
+ "Amount": 2017.6
+ },
+ {
+ "Date": "09/10/16",
+ "Amount": 2017.8
+ },
+ {
+ "Date": "10/10/16",
+ "Amount": 2016.6
+ },
+ {
+ "Date": "11/10/16",
+ "Amount": 2016.7
+ },
+ {
+ "Date": "12/10/16",
+ "Amount": 2016.5
+ },
+ {
+ "Date": "13/10/16",
+ "Amount": 2017.3
+ },
+ {
+ "Date": "14/10/16",
+ "Amount": 2017.1
+ },
+ {
+ "Date": "15/10/16",
+ "Amount": 2017.6
+ },
+ {
+ "Date": "16/10/16",
+ "Amount": 2017.7
+ },
+ {
+ "Date": "17/10/16",
+ "Amount": 2016.4
+ },
+ {
+ "Date": "18/10/16",
+ "Amount": 2017.2
+ },
+ {
+ "Date": "19/10/16",
+ "Amount": 2016.6
+ },
+ {
+ "Date": "20/10/16",
+ "Amount": 2016.8
+ },
+ {
+ "Date": "21/10/16",
+ "Amount": 2017.5
+ },
+ {
+ "Date": "22/10/16",
+ "Amount": 2017
+ },
+ {
+ "Date": "23/10/16",
+ "Amount": 2017.2
+ },
+ {
+ "Date": "24/10/16",
+ "Amount": 2017.1
+ },
+ {
+ "Date": "25/10/16",
+ "Amount": 2016.9
+ },
+ {
+ "Date": "26/10/16",
+ "Amount": 2017.2
+ },
+ {
+ "Date": "27/10/16",
+ "Amount": 2017
+ },
+ {
+ "Date": "28/10/16",
+ "Amount": 2016.7
+ },
+ {
+ "Date": "29/10/16",
+ "Amount": 2016.8
+ },
+ {
+ "Date": "30/10/16",
+ "Amount": 2017.3
+ },
+ {
+ "Date": "31/10/16",
+ "Amount": 2016.6
+ },
+ {
+ "Date": "01/11/16",
+ "Amount": 2017
+ },
+ {
+ "Date": "02/11/16",
+ "Amount": 2016.9
+ },
+ {
+ "Date": "03/11/16",
+ "Amount": 2017.2
+ },
+ {
+ "Date": "04/11/16",
+ "Amount": 2017.1
+ },
+ {
+ "Date": "05/11/16",
+ "Amount": 2017.6
+ },
+ {
+ "Date": "06/11/16",
+ "Amount": 2017.6
+ },
+ {
+ "Date": "07/11/16",
+ "Amount": 2016.2
+ },
+ {
+ "Date": "08/11/16",
+ "Amount": 2017.2
+ },
+ {
+ "Date": "09/11/16",
+ "Amount": 2017.3
+ },
+ {
+ "Date": "10/11/16",
+ "Amount": 2016.8
+ },
+ {
+ "Date": "11/11/16",
+ "Amount": 2017.5
+ },
+ {
+ "Date": "12/11/16",
+ "Amount": 2017.2
+ },
+ {
+ "Date": "13/11/16",
+ "Amount": 2017.4
+ },
+ {
+ "Date": "14/11/16",
+ "Amount": 2017.1
+ },
+ {
+ "Date": "15/11/16",
+ "Amount": 2016.9
+ },
+ {
+ "Date": "16/11/16",
+ "Amount": 2017
+ },
+ {
+ "Date": "17/11/16",
+ "Amount": 2017.1
+ },
+ {
+ "Date": "18/11/16",
+ "Amount": 2017.3
+ },
+ {
+ "Date": "19/11/16",
+ "Amount": 2016.9
+ },
+ {
+ "Date": "20/11/16",
+ "Amount": 2016.8
+ },
+ {
+ "Date": "21/11/16",
+ "Amount": 2017
+ },
+ {
+ "Date": "22/11/16",
+ "Amount": 2016.9
+ },
+ {
+ "Date": "23/11/16",
+ "Amount": 2016.5
+ },
+ {
+ "Date": "24/11/16",
+ "Amount": 2017.4
+ },
+ {
+ "Date": "25/11/16",
+ "Amount": 2016.8
+ },
+ {
+ "Date": "26/11/16",
+ "Amount": 2017.7
+ },
+ {
+ "Date": "27/11/16",
+ "Amount": 2017.7
+ },
+ {
+ "Date": "28/11/16",
+ "Amount": 2016.6
+ },
+ {
+ "Date": "29/11/16",
+ "Amount": 2016.5
+ },
+ {
+ "Date": "30/11/16",
+ "Amount": 2017.3
+ },
+ {
+ "Date": "01/12/16",
+ "Amount": 2016.7
+ },
+ {
+ "Date": "02/12/16",
+ "Amount": 2017.3
+ },
+ {
+ "Date": "03/12/16",
+ "Amount": 2016.7
+ },
+ {
+ "Date": "04/12/16",
+ "Amount": 2017.8
+ },
+ {
+ "Date": "05/12/16",
+ "Amount": 2016.8
+ },
+ {
+ "Date": "06/12/16",
+ "Amount": 2017.2
+ },
+ {
+ "Date": "07/12/16",
+ "Amount": 2016.7
+ },
+ {
+ "Date": "08/12/16",
+ "Amount": 2016.7
+ },
+ {
+ "Date": "09/12/16",
+ "Amount": 2016.7
+ },
+ {
+ "Date": "10/12/16",
+ "Amount": 2016.7
+ },
+ {
+ "Date": "11/12/16",
+ "Amount": 2017.5
+ },
+ {
+ "Date": "12/12/16",
+ "Amount": 2016.5
+ },
+ {
+ "Date": "13/12/16",
+ "Amount": 2016.8
+ },
+ {
+ "Date": "14/12/16",
+ "Amount": 2017
+ },
+ {
+ "Date": "15/12/16",
+ "Amount": 2017.2
+ },
+ {
+ "Date": "16/12/16",
+ "Amount": 2016.7
+ },
+ {
+ "Date": "17/12/16",
+ "Amount": 2017.1
+ },
+ {
+ "Date": "18/12/16",
+ "Amount": 2016.9
+ },
+ {
+ "Date": "19/12/16",
+ "Amount": 2016.5
+ },
+ {
+ "Date": "20/12/16",
+ "Amount": 2017.3
+ },
+ {
+ "Date": "21/12/16",
+ "Amount": 2017.2
+ },
+ {
+ "Date": "22/12/16",
+ "Amount": 2016.9
+ },
+ {
+ "Date": "23/12/16",
+ "Amount": 2016.7
+ },
+ {
+ "Date": "24/12/16",
+ "Amount": 2017
+ },
+ {
+ "Date": "25/12/16",
+ "Amount": 2017.4
+ },
+ {
+ "Date": "26/12/16",
+ "Amount": 2016.6
+ },
+ {
+ "Date": "27/12/16",
+ "Amount": 2016.9
+ },
+ {
+ "Date": "28/12/16",
+ "Amount": 2016.9
+ },
+ {
+ "Date": "29/12/16",
+ "Amount": 2017.4
+ },
+ {
+ "Date": "30/12/16",
+ "Amount": 2017.4
+ },
+ {
+ "Date": "31/12/16",
+ "Amount": 2017.5
+ },
+ {
+ "Date": "01/01/17",
+ "Amount": 2018.6
+ },
+ {
+ "Date": "02/01/17",
+ "Amount": 2018.2
+ },
+ {
+ "Date": "03/01/17",
+ "Amount": 2017.6
+ },
+ {
+ "Date": "04/01/17",
+ "Amount": 2017.7
+ },
+ {
+ "Date": "05/01/17",
+ "Amount": 2018.2
+ },
+ {
+ "Date": "06/01/17",
+ "Amount": 2018.4
+ },
+ {
+ "Date": "07/01/17",
+ "Amount": 2018.3
+ },
+ {
+ "Date": "08/01/17",
+ "Amount": 2017.8
+ },
+ {
+ "Date": "09/01/17",
+ "Amount": 2017.9
+ },
+ {
+ "Date": "10/01/17",
+ "Amount": 2018.1
+ },
+ {
+ "Date": "11/01/17",
+ "Amount": 2017.6
+ },
+ {
+ "Date": "12/01/17",
+ "Amount": 2017.7
+ },
+ {
+ "Date": "13/01/17",
+ "Amount": 2018.3
+ },
+ {
+ "Date": "14/01/17",
+ "Amount": 2018.3
+ },
+ {
+ "Date": "15/01/17",
+ "Amount": 2018.7
+ },
+ {
+ "Date": "16/01/17",
+ "Amount": 2017.7
+ },
+ {
+ "Date": "17/01/17",
+ "Amount": 2017.9
+ },
+ {
+ "Date": "18/01/17",
+ "Amount": 2017.6
+ },
+ {
+ "Date": "19/01/17",
+ "Amount": 2017.9
+ },
+ {
+ "Date": "20/01/17",
+ "Amount": 2017.9
+ },
+ {
+ "Date": "21/01/17",
+ "Amount": 2018.5
+ },
+ {
+ "Date": "22/01/17",
+ "Amount": 2017.8
+ },
+ {
+ "Date": "23/01/17",
+ "Amount": 2017.9
+ },
+ {
+ "Date": "24/01/17",
+ "Amount": 2017.8
+ },
+ {
+ "Date": "25/01/17",
+ "Amount": 2017.7
+ },
+ {
+ "Date": "26/01/17",
+ "Amount": 2017.6
+ },
+ {
+ "Date": "27/01/17",
+ "Amount": 2018.4
+ },
+ {
+ "Date": "28/01/17",
+ "Amount": 2018.6
+ },
+ {
+ "Date": "29/01/17",
+ "Amount": 2018
+ },
+ {
+ "Date": "30/01/17",
+ "Amount": 2017.5
+ },
+ {
+ "Date": "31/01/17",
+ "Amount": 2018.2
+ },
+ {
+ "Date": "01/02/17",
+ "Amount": 2017.6
+ },
+ {
+ "Date": "02/02/17",
+ "Amount": 2017.8
+ },
+ {
+ "Date": "03/02/17",
+ "Amount": 2017.7
+ },
+ {
+ "Date": "04/02/17",
+ "Amount": 2018.3
+ },
+ {
+ "Date": "05/02/17",
+ "Amount": 2018.7
+ },
+ {
+ "Date": "06/02/17",
+ "Amount": 2017.6
+ },
+ {
+ "Date": "07/02/17",
+ "Amount": 2017.9
+ },
+ {
+ "Date": "08/02/17",
+ "Amount": 2018.3
+ },
+ {
+ "Date": "09/02/17",
+ "Amount": 2018
+ },
+ {
+ "Date": "10/02/17",
+ "Amount": 2018
+ },
+ {
+ "Date": "11/02/17",
+ "Amount": 2017.7
+ },
+ {
+ "Date": "12/02/17",
+ "Amount": 2017.9
+ },
+ {
+ "Date": "13/02/17",
+ "Amount": 2017.5
+ },
+ {
+ "Date": "14/02/17",
+ "Amount": 2018
+ },
+ {
+ "Date": "15/02/17",
+ "Amount": 2017.7
+ },
+ {
+ "Date": "16/02/17",
+ "Amount": 2018.4
+ },
+ {
+ "Date": "17/02/17",
+ "Amount": 2018.1
+ },
+ {
+ "Date": "18/02/17",
+ "Amount": 2017.8
+ },
+ {
+ "Date": "19/02/17",
+ "Amount": 2018.7
+ },
+ {
+ "Date": "20/02/17",
+ "Amount": 2017.2
+ },
+ {
+ "Date": "21/02/17",
+ "Amount": 2017.9
+ },
+ {
+ "Date": "22/02/17",
+ "Amount": 2018.2
+ },
+ {
+ "Date": "23/02/17",
+ "Amount": 2018.2
+ },
+ {
+ "Date": "24/02/17",
+ "Amount": 2018.5
+ },
+ {
+ "Date": "25/02/17",
+ "Amount": 2018
+ },
+ {
+ "Date": "26/02/17",
+ "Amount": 2018.1
+ },
+ {
+ "Date": "27/02/17",
+ "Amount": 2018.1
+ },
+ {
+ "Date": "28/02/17",
+ "Amount": 2017.5
+ },
+ {
+ "Date": "01/03/17",
+ "Amount": 2018.2
+ },
+ {
+ "Date": "02/03/17",
+ "Amount": 2018.3
+ },
+ {
+ "Date": "03/03/17",
+ "Amount": 2017.8
+ },
+ {
+ "Date": "04/03/17",
+ "Amount": 2018.3
+ },
+ {
+ "Date": "05/03/17",
+ "Amount": 2018.3
+ },
+ {
+ "Date": "06/03/17",
+ "Amount": 2017.5
+ },
+ {
+ "Date": "07/03/17",
+ "Amount": 2017.7
+ },
+ {
+ "Date": "08/03/17",
+ "Amount": 2018
+ },
+ {
+ "Date": "09/03/17",
+ "Amount": 2017.7
+ },
+ {
+ "Date": "10/03/17",
+ "Amount": 2017.6
+ },
+ {
+ "Date": "11/03/17",
+ "Amount": 2017.7
+ },
+ {
+ "Date": "12/03/17",
+ "Amount": 2018.4
+ },
+ {
+ "Date": "13/03/17",
+ "Amount": 2017.3
+ },
+ {
+ "Date": "14/03/17",
+ "Amount": 2018.2
+ },
+ {
+ "Date": "15/03/17",
+ "Amount": 2018
+ },
+ {
+ "Date": "16/03/17",
+ "Amount": 2017.9
+ },
+ {
+ "Date": "17/03/17",
+ "Amount": 2018.5
+ },
+ {
+ "Date": "18/03/17",
+ "Amount": 2017.9
+ },
+ {
+ "Date": "19/03/17",
+ "Amount": 2018.6
+ },
+ {
+ "Date": "20/03/17",
+ "Amount": 2017.9
+ },
+ {
+ "Date": "21/03/17",
+ "Amount": 2018.2
+ },
+ {
+ "Date": "22/03/17",
+ "Amount": 2018.3
+ },
+ {
+ "Date": "23/03/17",
+ "Amount": 2018
+ },
+ {
+ "Date": "24/03/17",
+ "Amount": 2017.7
+ },
+ {
+ "Date": "25/03/17",
+ "Amount": 2018.5
+ },
+ {
+ "Date": "26/03/17",
+ "Amount": 2018.7
+ },
+ {
+ "Date": "27/03/17",
+ "Amount": 2017.5
+ },
+ {
+ "Date": "28/03/17",
+ "Amount": 2017.6
+ },
+ {
+ "Date": "29/03/17",
+ "Amount": 2017.8
+ },
+ {
+ "Date": "30/03/17",
+ "Amount": 2017.7
+ },
+ {
+ "Date": "31/03/17",
+ "Amount": 2018
+ },
+ {
+ "Date": "01/04/17",
+ "Amount": 2017.8
+ },
+ {
+ "Date": "02/04/17",
+ "Amount": 2017.9
+ },
+ {
+ "Date": "03/04/17",
+ "Amount": 2017.2
+ },
+ {
+ "Date": "04/04/17",
+ "Amount": 2017.5
+ },
+ {
+ "Date": "05/04/17",
+ "Amount": 2018.1
+ },
+ {
+ "Date": "06/04/17",
+ "Amount": 2017.8
+ },
+ {
+ "Date": "07/04/17",
+ "Amount": 2017.7
+ },
+ {
+ "Date": "08/04/17",
+ "Amount": 2018
+ },
+ {
+ "Date": "09/04/17",
+ "Amount": 2018
+ },
+ {
+ "Date": "10/04/17",
+ "Amount": 2017.3
+ },
+ {
+ "Date": "11/04/17",
+ "Amount": 2017.9
+ },
+ {
+ "Date": "12/04/17",
+ "Amount": 2017.8
+ },
+ {
+ "Date": "13/04/17",
+ "Amount": 2018
+ },
+ {
+ "Date": "14/04/17",
+ "Amount": 2018.2
+ },
+ {
+ "Date": "15/04/17",
+ "Amount": 2017.9
+ },
+ {
+ "Date": "16/04/17",
+ "Amount": 2018.4
+ },
+ {
+ "Date": "17/04/17",
+ "Amount": 2018
+ },
+ {
+ "Date": "18/04/17",
+ "Amount": 2018.1
+ },
+ {
+ "Date": "19/04/17",
+ "Amount": 2017.8
+ },
+ {
+ "Date": "20/04/17",
+ "Amount": 2017.9
+ },
+ {
+ "Date": "21/04/17",
+ "Amount": 2018.3
+ },
+ {
+ "Date": "22/04/17",
+ "Amount": 2018.4
+ },
+ {
+ "Date": "23/04/17",
+ "Amount": 2018.3
+ },
+ {
+ "Date": "24/04/17",
+ "Amount": 2017.7
+ },
+ {
+ "Date": "25/04/17",
+ "Amount": 2017.3
+ },
+ {
+ "Date": "26/04/17",
+ "Amount": 2017.8
+ },
+ {
+ "Date": "27/04/17",
+ "Amount": 2017.7
+ },
+ {
+ "Date": "28/04/17",
+ "Amount": 2018.5
+ },
+ {
+ "Date": "29/04/17",
+ "Amount": 2018.1
+ },
+ {
+ "Date": "30/04/17",
+ "Amount": 2018.6
+ },
+ {
+ "Date": "01/05/17",
+ "Amount": 2017.6
+ },
+ {
+ "Date": "02/05/17",
+ "Amount": 2018
+ },
+ {
+ "Date": "03/05/17",
+ "Amount": 2017.5
+ },
+ {
+ "Date": "04/05/17",
+ "Amount": 2018
+ },
+ {
+ "Date": "05/05/17",
+ "Amount": 2018
+ },
+ {
+ "Date": "06/05/17",
+ "Amount": 2018.1
+ },
+ {
+ "Date": "07/05/17",
+ "Amount": 2018.3
+ },
+ {
+ "Date": "08/05/17",
+ "Amount": 2017.3
+ },
+ {
+ "Date": "09/05/17",
+ "Amount": 2017.6
+ },
+ {
+ "Date": "10/05/17",
+ "Amount": 2017.8
+ },
+ {
+ "Date": "11/05/17",
+ "Amount": 2018.1
+ },
+ {
+ "Date": "12/05/17",
+ "Amount": 2018.2
+ },
+ {
+ "Date": "13/05/17",
+ "Amount": 2018.4
+ },
+ {
+ "Date": "14/05/17",
+ "Amount": 2018
+ },
+ {
+ "Date": "15/05/17",
+ "Amount": 2017.6
+ },
+ {
+ "Date": "16/05/17",
+ "Amount": 2017.8
+ },
+ {
+ "Date": "17/05/17",
+ "Amount": 2018.2
+ },
+ {
+ "Date": "18/05/17",
+ "Amount": 2018
+ },
+ {
+ "Date": "19/05/17",
+ "Amount": 2017.9
+ },
+ {
+ "Date": "20/05/17",
+ "Amount": 2018.5
+ },
+ {
+ "Date": "21/05/17",
+ "Amount": 2018.4
+ },
+ {
+ "Date": "22/05/17",
+ "Amount": 2017.7
+ },
+ {
+ "Date": "23/05/17",
+ "Amount": 2017.9
+ },
+ {
+ "Date": "24/05/17",
+ "Amount": 2017.8
+ },
+ {
+ "Date": "25/05/17",
+ "Amount": 2018.4
+ },
+ {
+ "Date": "26/05/17",
+ "Amount": 2018
+ },
+ {
+ "Date": "27/05/17",
+ "Amount": 2018.1
+ },
+ {
+ "Date": "28/05/17",
+ "Amount": 2018.5
+ },
+ {
+ "Date": "29/05/17",
+ "Amount": 2017.5
+ },
+ {
+ "Date": "30/05/17",
+ "Amount": 2018
+ },
+ {
+ "Date": "31/05/17",
+ "Amount": 2018.2
+ },
+ {
+ "Date": "01/06/17",
+ "Amount": 2018.2
+ },
+ {
+ "Date": "02/06/17",
+ "Amount": 2018.2
+ },
+ {
+ "Date": "03/06/17",
+ "Amount": 2018.2
+ },
+ {
+ "Date": "04/06/17",
+ "Amount": 2018.7
+ },
+ {
+ "Date": "05/06/17",
+ "Amount": 2017.4
+ },
+ {
+ "Date": "06/06/17",
+ "Amount": 2017.5
+ },
+ {
+ "Date": "07/06/17",
+ "Amount": 2018.2
+ },
+ {
+ "Date": "08/06/17",
+ "Amount": 2018.3
+ },
+ {
+ "Date": "09/06/17",
+ "Amount": 2018.6
+ },
+ {
+ "Date": "10/06/17",
+ "Amount": 2018.1
+ },
+ {
+ "Date": "11/06/17",
+ "Amount": 2018.2
+ },
+ {
+ "Date": "12/06/17",
+ "Amount": 2017.6
+ },
+ {
+ "Date": "13/06/17",
+ "Amount": 2017.4
+ },
+ {
+ "Date": "14/06/17",
+ "Amount": 2017.7
+ },
+ {
+ "Date": "15/06/17",
+ "Amount": 2018.3
+ },
+ {
+ "Date": "16/06/17",
+ "Amount": 2017.8
+ },
+ {
+ "Date": "17/06/17",
+ "Amount": 2018.2
+ },
+ {
+ "Date": "18/06/17",
+ "Amount": 2018.3
+ },
+ {
+ "Date": "19/06/17",
+ "Amount": 2018.1
+ },
+ {
+ "Date": "20/06/17",
+ "Amount": 2017.7
+ },
+ {
+ "Date": "21/06/17",
+ "Amount": 2017.4
+ },
+ {
+ "Date": "22/06/17",
+ "Amount": 2018.2
+ },
+ {
+ "Date": "23/06/17",
+ "Amount": 2017.8
+ },
+ {
+ "Date": "24/06/17",
+ "Amount": 2018.5
+ },
+ {
+ "Date": "25/06/17",
+ "Amount": 2018.1
+ },
+ {
+ "Date": "26/06/17",
+ "Amount": 2017.9
+ },
+ {
+ "Date": "27/06/17",
+ "Amount": 2017.8
+ },
+ {
+ "Date": "28/06/17",
+ "Amount": 2018.1
+ },
+ {
+ "Date": "29/06/17",
+ "Amount": 2018.1
+ },
+ {
+ "Date": "30/06/17",
+ "Amount": 2017.6
+ },
+ {
+ "Date": "01/07/17",
+ "Amount": 2017.9
+ },
+ {
+ "Date": "02/07/17",
+ "Amount": 2018.6
+ },
+ {
+ "Date": "03/07/17",
+ "Amount": 2017.9
+ },
+ {
+ "Date": "04/07/17",
+ "Amount": 2018.2
+ },
+ {
+ "Date": "05/07/17",
+ "Amount": 2018.1
+ },
+ {
+ "Date": "06/07/17",
+ "Amount": 2018.4
+ },
+ {
+ "Date": "07/07/17",
+ "Amount": 2018.5
+ },
+ {
+ "Date": "08/07/17",
+ "Amount": 2018.2
+ },
+ {
+ "Date": "09/07/17",
+ "Amount": 2018.7
+ },
+ {
+ "Date": "10/07/17",
+ "Amount": 2017.5
+ },
+ {
+ "Date": "11/07/17",
+ "Amount": 2017.9
+ },
+ {
+ "Date": "12/07/17",
+ "Amount": 2017.4
+ },
+ {
+ "Date": "13/07/17",
+ "Amount": 2018.2
+ },
+ {
+ "Date": "14/07/17",
+ "Amount": 2018.3
+ },
+ {
+ "Date": "15/07/17",
+ "Amount": 2018.1
+ },
+ {
+ "Date": "16/07/17",
+ "Amount": 2018.7
+ },
+ {
+ "Date": "17/07/17",
+ "Amount": 2017.4
+ },
+ {
+ "Date": "18/07/17",
+ "Amount": 2018.2
+ },
+ {
+ "Date": "19/07/17",
+ "Amount": 2017.8
+ },
+ {
+ "Date": "20/07/17",
+ "Amount": 2017.6
+ },
+ {
+ "Date": "21/07/17",
+ "Amount": 2018
+ },
+ {
+ "Date": "22/07/17",
+ "Amount": 2018.5
+ },
+ {
+ "Date": "23/07/17",
+ "Amount": 2018.1
+ },
+ {
+ "Date": "24/07/17",
+ "Amount": 2017.3
+ },
+ {
+ "Date": "25/07/17",
+ "Amount": 2018.3
+ },
+ {
+ "Date": "26/07/17",
+ "Amount": 2017.7
+ },
+ {
+ "Date": "27/07/17",
+ "Amount": 2018.4
+ },
+ {
+ "Date": "28/07/17",
+ "Amount": 2018.3
+ },
+ {
+ "Date": "29/07/17",
+ "Amount": 2018.2
+ },
+ {
+ "Date": "30/07/17",
+ "Amount": 2018.2
+ },
+ {
+ "Date": "31/07/17",
+ "Amount": 2017.4
+ },
+ {
+ "Date": "01/08/17",
+ "Amount": 2017.5
+ },
+ {
+ "Date": "02/08/17",
+ "Amount": 2018.1
+ },
+ {
+ "Date": "03/08/17",
+ "Amount": 2018.3
+ },
+ {
+ "Date": "04/08/17",
+ "Amount": 2018.4
+ },
+ {
+ "Date": "05/08/17",
+ "Amount": 2018.5
+ },
+ {
+ "Date": "06/08/17",
+ "Amount": 2018.7
+ },
+ {
+ "Date": "07/08/17",
+ "Amount": 2017.8
+ },
+ {
+ "Date": "08/08/17",
+ "Amount": 2017.6
+ },
+ {
+ "Date": "09/08/17",
+ "Amount": 2018.1
+ },
+ {
+ "Date": "10/08/17",
+ "Amount": 2018.3
+ },
+ {
+ "Date": "11/08/17",
+ "Amount": 2017.8
+ },
+ {
+ "Date": "12/08/17",
+ "Amount": 2017.9
+ },
+ {
+ "Date": "13/08/17",
+ "Amount": 2017.8
+ },
+ {
+ "Date": "14/08/17",
+ "Amount": 2018.2
+ },
+ {
+ "Date": "15/08/17",
+ "Amount": 2017.7
+ },
+ {
+ "Date": "16/08/17",
+ "Amount": 2018.3
+ },
+ {
+ "Date": "17/08/17",
+ "Amount": 2017.9
+ },
+ {
+ "Date": "18/08/17",
+ "Amount": 2018
+ },
+ {
+ "Date": "19/08/17",
+ "Amount": 2017.7
+ },
+ {
+ "Date": "20/08/17",
+ "Amount": 2018.4
+ },
+ {
+ "Date": "21/08/17",
+ "Amount": 2017.9
+ },
+ {
+ "Date": "22/08/17",
+ "Amount": 2018.1
+ },
+ {
+ "Date": "23/08/17",
+ "Amount": 2018.1
+ },
+ {
+ "Date": "24/08/17",
+ "Amount": 2017.6
+ },
+ {
+ "Date": "25/08/17",
+ "Amount": 2018
+ },
+ {
+ "Date": "26/08/17",
+ "Amount": 2018.2
+ },
+ {
+ "Date": "27/08/17",
+ "Amount": 2018.1
+ },
+ {
+ "Date": "28/08/17",
+ "Amount": 2017.9
+ },
+ {
+ "Date": "29/08/17",
+ "Amount": 2018.1
+ },
+ {
+ "Date": "30/08/17",
+ "Amount": 2017.6
+ },
+ {
+ "Date": "31/08/17",
+ "Amount": 2018.4
+ },
+ {
+ "Date": "01/09/17",
+ "Amount": 2018.2
+ },
+ {
+ "Date": "02/09/17",
+ "Amount": 2018.3
+ },
+ {
+ "Date": "03/09/17",
+ "Amount": 2017.9
+ },
+ {
+ "Date": "04/09/17",
+ "Amount": 2017.7
+ },
+ {
+ "Date": "05/09/17",
+ "Amount": 2017.8
+ },
+ {
+ "Date": "06/09/17",
+ "Amount": 2017.6
+ },
+ {
+ "Date": "07/09/17",
+ "Amount": 2018
+ },
+ {
+ "Date": "08/09/17",
+ "Amount": 2018.3
+ },
+ {
+ "Date": "09/09/17",
+ "Amount": 2017.8
+ },
+ {
+ "Date": "10/09/17",
+ "Amount": 2018
+ },
+ {
+ "Date": "11/09/17",
+ "Amount": 2018.1
+ },
+ {
+ "Date": "12/09/17",
+ "Amount": 2017.8
+ },
+ {
+ "Date": "13/09/17",
+ "Amount": 2017.5
+ },
+ {
+ "Date": "14/09/17",
+ "Amount": 2018.1
+ },
+ {
+ "Date": "15/09/17",
+ "Amount": 2018.3
+ },
+ {
+ "Date": "16/09/17",
+ "Amount": 2018.7
+ },
+ {
+ "Date": "17/09/17",
+ "Amount": 2018.3
+ },
+ {
+ "Date": "18/09/17",
+ "Amount": 2017.5
+ },
+ {
+ "Date": "19/09/17",
+ "Amount": 2018
+ },
+ {
+ "Date": "20/09/17",
+ "Amount": 2018.4
+ },
+ {
+ "Date": "21/09/17",
+ "Amount": 2018.4
+ },
+ {
+ "Date": "22/09/17",
+ "Amount": 2018.1
+ },
+ {
+ "Date": "23/09/17",
+ "Amount": 2017.9
+ },
+ {
+ "Date": "24/09/17",
+ "Amount": 2017.9
+ },
+ {
+ "Date": "25/09/17",
+ "Amount": 2017.2
+ },
+ {
+ "Date": "26/09/17",
+ "Amount": 2017.6
+ },
+ {
+ "Date": "27/09/17",
+ "Amount": 2018.1
+ },
+ {
+ "Date": "28/09/17",
+ "Amount": 2018
+ },
+ {
+ "Date": "29/09/17",
+ "Amount": 2018.4
+ },
+ {
+ "Date": "30/09/17",
+ "Amount": 2017.9
+ },
+ {
+ "Date": "01/10/17",
+ "Amount": 2018.7
+ },
+ {
+ "Date": "02/10/17",
+ "Amount": 2017.3
+ },
+ {
+ "Date": "03/10/17",
+ "Amount": 2017.9
+ },
+ {
+ "Date": "04/10/17",
+ "Amount": 2017.7
+ },
+ {
+ "Date": "05/10/17",
+ "Amount": 2018
+ },
+ {
+ "Date": "06/10/17",
+ "Amount": 2018.2
+ },
+ {
+ "Date": "07/10/17",
+ "Amount": 2018.5
+ },
+ {
+ "Date": "08/10/17",
+ "Amount": 2018.3
+ },
+ {
+ "Date": "09/10/17",
+ "Amount": 2017.8
+ },
+ {
+ "Date": "10/10/17",
+ "Amount": 2018.1
+ },
+ {
+ "Date": "11/10/17",
+ "Amount": 2017.6
+ },
+ {
+ "Date": "12/10/17",
+ "Amount": 2017.9
+ },
+ {
+ "Date": "13/10/17",
+ "Amount": 2017.8
+ },
+ {
+ "Date": "14/10/17",
+ "Amount": 2017.7
+ },
+ {
+ "Date": "15/10/17",
+ "Amount": 2018.7
+ },
+ {
+ "Date": "16/10/17",
+ "Amount": 2017.4
+ },
+ {
+ "Date": "17/10/17",
+ "Amount": 2017.6
+ },
+ {
+ "Date": "18/10/17",
+ "Amount": 2018.3
+ },
+ {
+ "Date": "19/10/17",
+ "Amount": 2018.2
+ },
+ {
+ "Date": "20/10/17",
+ "Amount": 2018.3
+ },
+ {
+ "Date": "21/10/17",
+ "Amount": 2018.1
+ },
+ {
+ "Date": "22/10/17",
+ "Amount": 2018.4
+ },
+ {
+ "Date": "23/10/17",
+ "Amount": 2017.9
+ },
+ {
+ "Date": "24/10/17",
+ "Amount": 2018.2
+ },
+ {
+ "Date": "25/10/17",
+ "Amount": 2017.9
+ },
+ {
+ "Date": "26/10/17",
+ "Amount": 2018.1
+ },
+ {
+ "Date": "27/10/17",
+ "Amount": 2017.9
+ },
+ {
+ "Date": "28/10/17",
+ "Amount": 2018.2
+ },
+ {
+ "Date": "29/10/17",
+ "Amount": 2018.3
+ },
+ {
+ "Date": "30/10/17",
+ "Amount": 2017.6
+ },
+ {
+ "Date": "31/10/17",
+ "Amount": 2017.6
+ },
+ {
+ "Date": "01/11/17",
+ "Amount": 2017.7
+ },
+ {
+ "Date": "02/11/17",
+ "Amount": 2017.5
+ },
+ {
+ "Date": "03/11/17",
+ "Amount": 2018.5
+ },
+ {
+ "Date": "04/11/17",
+ "Amount": 2018.6
+ },
+ {
+ "Date": "05/11/17",
+ "Amount": 2018.8
+ },
+ {
+ "Date": "06/11/17",
+ "Amount": 2017.7
+ },
+ {
+ "Date": "07/11/17",
+ "Amount": 2018.3
+ },
+ {
+ "Date": "08/11/17",
+ "Amount": 2018.1
+ },
+ {
+ "Date": "09/11/17",
+ "Amount": 2017.8
+ },
+ {
+ "Date": "10/11/17",
+ "Amount": 2018.4
+ },
+ {
+ "Date": "11/11/17",
+ "Amount": 2018.1
+ },
+ {
+ "Date": "12/11/17",
+ "Amount": 2018.6
+ },
+ {
+ "Date": "13/11/17",
+ "Amount": 2017.3
+ },
+ {
+ "Date": "14/11/17",
+ "Amount": 2017.8
+ },
+ {
+ "Date": "15/11/17",
+ "Amount": 2017.5
+ },
+ {
+ "Date": "16/11/17",
+ "Amount": 2018.3
+ },
+ {
+ "Date": "17/11/17",
+ "Amount": 2018.5
+ },
+ {
+ "Date": "18/11/17",
+ "Amount": 2018.5
+ },
+ {
+ "Date": "19/11/17",
+ "Amount": 2018.8
+ },
+ {
+ "Date": "20/11/17",
+ "Amount": 2017.6
+ },
+ {
+ "Date": "21/11/17",
+ "Amount": 2018
+ },
+ {
+ "Date": "22/11/17",
+ "Amount": 2018.3
+ },
+ {
+ "Date": "23/11/17",
+ "Amount": 2018
+ },
+ {
+ "Date": "24/11/17",
+ "Amount": 2018.2
+ },
+ {
+ "Date": "25/11/17",
+ "Amount": 2018.7
+ },
+ {
+ "Date": "26/11/17",
+ "Amount": 2017.9
+ },
+ {
+ "Date": "27/11/17",
+ "Amount": 2017.9
+ },
+ {
+ "Date": "28/11/17",
+ "Amount": 2017.4
+ },
+ {
+ "Date": "29/11/17",
+ "Amount": 2018.3
+ },
+ {
+ "Date": "30/11/17",
+ "Amount": 2018.2
+ },
+ {
+ "Date": "01/12/17",
+ "Amount": 2018.4
+ },
+ {
+ "Date": "02/12/17",
+ "Amount": 2017.7
+ },
+ {
+ "Date": "03/12/17",
+ "Amount": 2018.3
+ },
+ {
+ "Date": "04/12/17",
+ "Amount": 2017.6
+ },
+ {
+ "Date": "05/12/17",
+ "Amount": 2018.1
+ },
+ {
+ "Date": "06/12/17",
+ "Amount": 2017.8
+ },
+ {
+ "Date": "07/12/17",
+ "Amount": 2018.2
+ },
+ {
+ "Date": "08/12/17",
+ "Amount": 2018.1
+ },
+ {
+ "Date": "09/12/17",
+ "Amount": 2017.8
+ },
+ {
+ "Date": "10/12/17",
+ "Amount": 2018.7
+ },
+ {
+ "Date": "11/12/17",
+ "Amount": 2017.2
+ },
+ {
+ "Date": "12/12/17",
+ "Amount": 2018.2
+ },
+ {
+ "Date": "13/12/17",
+ "Amount": 2017.8
+ },
+ {
+ "Date": "14/12/17",
+ "Amount": 2017.8
+ },
+ {
+ "Date": "15/12/17",
+ "Amount": 2018.4
+ },
+ {
+ "Date": "16/12/17",
+ "Amount": 2018.2
+ },
+ {
+ "Date": "17/12/17",
+ "Amount": 2018.3
+ },
+ {
+ "Date": "18/12/17",
+ "Amount": 2017.3
+ },
+ {
+ "Date": "19/12/17",
+ "Amount": 2017.7
+ },
+ {
+ "Date": "20/12/17",
+ "Amount": 2017.9
+ },
+ {
+ "Date": "21/12/17",
+ "Amount": 2018.5
+ },
+ {
+ "Date": "22/12/17",
+ "Amount": 2018.3
+ },
+ {
+ "Date": "23/12/17",
+ "Amount": 2018.6
+ },
+ {
+ "Date": "24/12/17",
+ "Amount": 2017.9
+ },
+ {
+ "Date": "25/12/17",
+ "Amount": 2017.8
+ },
+ {
+ "Date": "26/12/17",
+ "Amount": 2018.1
+ },
+ {
+ "Date": "27/12/17",
+ "Amount": 2017.8
+ },
+ {
+ "Date": "28/12/17",
+ "Amount": 2018.1
+ },
+ {
+ "Date": "29/12/17",
+ "Amount": 2018.4
+ },
+ {
+ "Date": "30/12/17",
+ "Amount": 2017.7
+ },
+ {
+ "Date": "31/12/17",
+ "Amount": 2017.8
+ },
+ {
+ "Date": "01/01/18",
+ "Amount": 2018.7
+ },
+ {
+ "Date": "02/01/18",
+ "Amount": 2018.7
+ },
+ {
+ "Date": "03/01/18",
+ "Amount": 2018.4
+ },
+ {
+ "Date": "04/01/18",
+ "Amount": 2018.9
+ },
+ {
+ "Date": "05/01/18",
+ "Amount": 2019
+ },
+ {
+ "Date": "06/01/18",
+ "Amount": 2019.4
+ },
+ {
+ "Date": "07/01/18",
+ "Amount": 2019.1
+ },
+ {
+ "Date": "08/01/18",
+ "Amount": 2018.7
+ },
+ {
+ "Date": "09/01/18",
+ "Amount": 2018.3
+ },
+ {
+ "Date": "10/01/18",
+ "Amount": 2019.2
+ },
+ {
+ "Date": "11/01/18",
+ "Amount": 2018.5
+ },
+ {
+ "Date": "12/01/18",
+ "Amount": 2019.6
+ },
+ {
+ "Date": "13/01/18",
+ "Amount": 2019
+ },
+ {
+ "Date": "14/01/18",
+ "Amount": 2019.8
+ },
+ {
+ "Date": "15/01/18",
+ "Amount": 2018.5
+ },
+ {
+ "Date": "16/01/18",
+ "Amount": 2018.3
+ },
+ {
+ "Date": "17/01/18",
+ "Amount": 2019.3
+ },
+ {
+ "Date": "18/01/18",
+ "Amount": 2018.8
+ },
+ {
+ "Date": "19/01/18",
+ "Amount": 2019.4
+ },
+ {
+ "Date": "20/01/18",
+ "Amount": 2019.7
+ },
+ {
+ "Date": "21/01/18",
+ "Amount": 2019.6
+ },
+ {
+ "Date": "22/01/18",
+ "Amount": 2018.9
+ },
+ {
+ "Date": "23/01/18",
+ "Amount": 2019
+ },
+ {
+ "Date": "24/01/18",
+ "Amount": 2018.8
+ },
+ {
+ "Date": "25/01/18",
+ "Amount": 2019
+ },
+ {
+ "Date": "26/01/18",
+ "Amount": 2019.2
+ },
+ {
+ "Date": "27/01/18",
+ "Amount": 2019.2
+ },
+ {
+ "Date": "28/01/18",
+ "Amount": 2018.9
+ },
+ {
+ "Date": "29/01/18",
+ "Amount": 2018.3
+ },
+ {
+ "Date": "30/01/18",
+ "Amount": 2019
+ },
+ {
+ "Date": "31/01/18",
+ "Amount": 2018.9
+ },
+ {
+ "Date": "01/02/18",
+ "Amount": 2019.4
+ },
+ {
+ "Date": "02/02/18",
+ "Amount": 2019.2
+ },
+ {
+ "Date": "03/02/18",
+ "Amount": 2019
+ },
+ {
+ "Date": "04/02/18",
+ "Amount": 2019
+ },
+ {
+ "Date": "05/02/18",
+ "Amount": 2018.2
+ },
+ {
+ "Date": "06/02/18",
+ "Amount": 2018.7
+ },
+ {
+ "Date": "07/02/18",
+ "Amount": 2019.1
+ },
+ {
+ "Date": "08/02/18",
+ "Amount": 2019.1
+ },
+ {
+ "Date": "09/02/18",
+ "Amount": 2019.2
+ },
+ {
+ "Date": "10/02/18",
+ "Amount": 2019
+ },
+ {
+ "Date": "11/02/18",
+ "Amount": 2019.2
+ },
+ {
+ "Date": "12/02/18",
+ "Amount": 2019
+ },
+ {
+ "Date": "13/02/18",
+ "Amount": 2018.4
+ },
+ {
+ "Date": "14/02/18",
+ "Amount": 2018.5
+ },
+ {
+ "Date": "15/02/18",
+ "Amount": 2018.6
+ },
+ {
+ "Date": "16/02/18",
+ "Amount": 2019.5
+ },
+ {
+ "Date": "17/02/18",
+ "Amount": 2018.9
+ },
+ {
+ "Date": "18/02/18",
+ "Amount": 2019.4
+ },
+ {
+ "Date": "19/02/18",
+ "Amount": 2019.2
+ },
+ {
+ "Date": "20/02/18",
+ "Amount": 2018.9
+ },
+ {
+ "Date": "21/02/18",
+ "Amount": 2018.8
+ },
+ {
+ "Date": "22/02/18",
+ "Amount": 2019.2
+ },
+ {
+ "Date": "23/02/18",
+ "Amount": 2019.1
+ },
+ {
+ "Date": "24/02/18",
+ "Amount": 2018.9
+ },
+ {
+ "Date": "25/02/18",
+ "Amount": 2019.6
+ },
+ {
+ "Date": "26/02/18",
+ "Amount": 2018.3
+ },
+ {
+ "Date": "27/02/18",
+ "Amount": 2019.1
+ },
+ {
+ "Date": "28/02/18",
+ "Amount": 2019.1
+ },
+ {
+ "Date": "01/03/18",
+ "Amount": 2018.6
+ },
+ {
+ "Date": "02/03/18",
+ "Amount": 2018.8
+ },
+ {
+ "Date": "03/03/18",
+ "Amount": 2019
+ },
+ {
+ "Date": "04/03/18",
+ "Amount": 2018.9
+ },
+ {
+ "Date": "05/03/18",
+ "Amount": 2018.3
+ },
+ {
+ "Date": "06/03/18",
+ "Amount": 2019.3
+ },
+ {
+ "Date": "07/03/18",
+ "Amount": 2019.2
+ },
+ {
+ "Date": "08/03/18",
+ "Amount": 2019.3
+ },
+ {
+ "Date": "09/03/18",
+ "Amount": 2019.2
+ },
+ {
+ "Date": "10/03/18",
+ "Amount": 2018.7
+ },
+ {
+ "Date": "11/03/18",
+ "Amount": 2019.2
+ },
+ {
+ "Date": "12/03/18",
+ "Amount": 2018.4
+ },
+ {
+ "Date": "13/03/18",
+ "Amount": 2019.2
+ },
+ {
+ "Date": "14/03/18",
+ "Amount": 2018.5
+ },
+ {
+ "Date": "15/03/18",
+ "Amount": 2019.5
+ },
+ {
+ "Date": "16/03/18",
+ "Amount": 2018.8
+ },
+ {
+ "Date": "17/03/18",
+ "Amount": 2018.8
+ },
+ {
+ "Date": "18/03/18",
+ "Amount": 2019
+ },
+ {
+ "Date": "19/03/18",
+ "Amount": 2018.6
+ },
+ {
+ "Date": "20/03/18",
+ "Amount": 2018.6
+ },
+ {
+ "Date": "21/03/18",
+ "Amount": 2019
+ },
+ {
+ "Date": "22/03/18",
+ "Amount": 2019.4
+ },
+ {
+ "Date": "23/03/18",
+ "Amount": 2019.1
+ },
+ {
+ "Date": "24/03/18",
+ "Amount": 2019
+ },
+ {
+ "Date": "25/03/18",
+ "Amount": 2019.2
+ },
+ {
+ "Date": "26/03/18",
+ "Amount": 2019.2
+ },
+ {
+ "Date": "27/03/18",
+ "Amount": 2018.4
+ },
+ {
+ "Date": "28/03/18",
+ "Amount": 2019.3
+ },
+ {
+ "Date": "29/03/18",
+ "Amount": 2019.4
+ },
+ {
+ "Date": "30/03/18",
+ "Amount": 2019.1
+ },
+ {
+ "Date": "31/03/18",
+ "Amount": 2018.7
+ },
+ {
+ "Date": "01/04/18",
+ "Amount": 2019.6
+ },
+ {
+ "Date": "02/04/18",
+ "Amount": 2018.7
+ },
+ {
+ "Date": "03/04/18",
+ "Amount": 2019.2
+ },
+ {
+ "Date": "04/04/18",
+ "Amount": 2018.5
+ },
+ {
+ "Date": "05/04/18",
+ "Amount": 2019
+ },
+ {
+ "Date": "06/04/18",
+ "Amount": 2019.2
+ },
+ {
+ "Date": "07/04/18",
+ "Amount": 2019.4
+ },
+ {
+ "Date": "08/04/18",
+ "Amount": 2019.1
+ },
+ {
+ "Date": "09/04/18",
+ "Amount": 2019
+ },
+ {
+ "Date": "10/04/18",
+ "Amount": 2018.4
+ },
+ {
+ "Date": "11/04/18",
+ "Amount": 2018.8
+ },
+ {
+ "Date": "12/04/18",
+ "Amount": 2019.4
+ },
+ {
+ "Date": "13/04/18",
+ "Amount": 2018.9
+ },
+ {
+ "Date": "14/04/18",
+ "Amount": 2019.2
+ },
+ {
+ "Date": "15/04/18",
+ "Amount": 2019.4
+ },
+ {
+ "Date": "16/04/18",
+ "Amount": 2018.9
+ },
+ {
+ "Date": "17/04/18",
+ "Amount": 2019
+ },
+ {
+ "Date": "18/04/18",
+ "Amount": 2018.7
+ },
+ {
+ "Date": "19/04/18",
+ "Amount": 2019.1
+ },
+ {
+ "Date": "20/04/18",
+ "Amount": 2019.4
+ },
+ {
+ "Date": "21/04/18",
+ "Amount": 2019.2
+ },
+ {
+ "Date": "22/04/18",
+ "Amount": 2019.5
+ },
+ {
+ "Date": "23/04/18",
+ "Amount": 2018.4
+ },
+ {
+ "Date": "24/04/18",
+ "Amount": 2019.1
+ },
+ {
+ "Date": "25/04/18",
+ "Amount": 2018.7
+ },
+ {
+ "Date": "26/04/18",
+ "Amount": 2019.4
+ },
+ {
+ "Date": "27/04/18",
+ "Amount": 2019.4
+ },
+ {
+ "Date": "28/04/18",
+ "Amount": 2019.3
+ },
+ {
+ "Date": "29/04/18",
+ "Amount": 2019.1
+ },
+ {
+ "Date": "30/04/18",
+ "Amount": 2019.1
+ },
+ {
+ "Date": "01/05/18",
+ "Amount": 2018.8
+ },
+ {
+ "Date": "02/05/18",
+ "Amount": 2019.2
+ },
+ {
+ "Date": "03/05/18",
+ "Amount": 2018.5
+ },
+ {
+ "Date": "04/05/18",
+ "Amount": 2019.2
+ },
+ {
+ "Date": "05/05/18",
+ "Amount": 2019.3
+ },
+ {
+ "Date": "06/05/18",
+ "Amount": 2019.6
+ },
+ {
+ "Date": "07/05/18",
+ "Amount": 2018.2
+ },
+ {
+ "Date": "08/05/18",
+ "Amount": 2019.2
+ },
+ {
+ "Date": "09/05/18",
+ "Amount": 2019.3
+ },
+ {
+ "Date": "10/05/18",
+ "Amount": 2019.2
+ },
+ {
+ "Date": "11/05/18",
+ "Amount": 2019.1
+ },
+ {
+ "Date": "12/05/18",
+ "Amount": 2019.6
+ },
+ {
+ "Date": "13/05/18",
+ "Amount": 2019.4
+ },
+ {
+ "Date": "14/05/18",
+ "Amount": 2019
+ },
+ {
+ "Date": "15/05/18",
+ "Amount": 2019
+ },
+ {
+ "Date": "16/05/18",
+ "Amount": 2018.6
+ },
+ {
+ "Date": "17/05/18",
+ "Amount": 2018.8
+ },
+ {
+ "Date": "18/05/18",
+ "Amount": 2019
+ },
+ {
+ "Date": "19/05/18",
+ "Amount": 2019.5
+ },
+ {
+ "Date": "20/05/18",
+ "Amount": 2018.9
+ },
+ {
+ "Date": "21/05/18",
+ "Amount": 2018.8
+ },
+ {
+ "Date": "22/05/18",
+ "Amount": 2018.7
+ },
+ {
+ "Date": "23/05/18",
+ "Amount": 2018.8
+ },
+ {
+ "Date": "24/05/18",
+ "Amount": 2018.7
+ },
+ {
+ "Date": "25/05/18",
+ "Amount": 2019.3
+ },
+ {
+ "Date": "26/05/18",
+ "Amount": 2018.9
+ },
+ {
+ "Date": "27/05/18",
+ "Amount": 2019.1
+ },
+ {
+ "Date": "28/05/18",
+ "Amount": 2018.3
+ },
+ {
+ "Date": "29/05/18",
+ "Amount": 2018.8
+ },
+ {
+ "Date": "30/05/18",
+ "Amount": 2018.8
+ },
+ {
+ "Date": "31/05/18",
+ "Amount": 2018.8
+ },
+ {
+ "Date": "01/06/18",
+ "Amount": 2019.6
+ },
+ {
+ "Date": "02/06/18",
+ "Amount": 2019.2
+ },
+ {
+ "Date": "03/06/18",
+ "Amount": 2019.8
+ },
+ {
+ "Date": "04/06/18",
+ "Amount": 2018.9
+ },
+ {
+ "Date": "05/06/18",
+ "Amount": 2019
+ },
+ {
+ "Date": "06/06/18",
+ "Amount": 2018.4
+ },
+ {
+ "Date": "07/06/18",
+ "Amount": 2018.8
+ },
+ {
+ "Date": "08/06/18",
+ "Amount": 2018.6
+ },
+ {
+ "Date": "09/06/18",
+ "Amount": 2019.5
+ },
+ {
+ "Date": "10/06/18",
+ "Amount": 2018.9
+ },
+ {
+ "Date": "11/06/18",
+ "Amount": 2018.3
+ },
+ {
+ "Date": "12/06/18",
+ "Amount": 2019.2
+ },
+ {
+ "Date": "13/06/18",
+ "Amount": 2018.7
+ },
+ {
+ "Date": "14/06/18",
+ "Amount": 2018.7
+ },
+ {
+ "Date": "15/06/18",
+ "Amount": 2018.7
+ },
+ {
+ "Date": "16/06/18",
+ "Amount": 2019.5
+ },
+ {
+ "Date": "17/06/18",
+ "Amount": 2019.5
+ },
+ {
+ "Date": "18/06/18",
+ "Amount": 2018.5
+ },
+ {
+ "Date": "19/06/18",
+ "Amount": 2018.8
+ },
+ {
+ "Date": "20/06/18",
+ "Amount": 2019
+ },
+ {
+ "Date": "21/06/18",
+ "Amount": 2019
+ },
+ {
+ "Date": "22/06/18",
+ "Amount": 2019.1
+ },
+ {
+ "Date": "23/06/18",
+ "Amount": 2019.4
+ },
+ {
+ "Date": "24/06/18",
+ "Amount": 2019.1
+ },
+ {
+ "Date": "25/06/18",
+ "Amount": 2018.3
+ },
+ {
+ "Date": "26/06/18",
+ "Amount": 2018.6
+ },
+ {
+ "Date": "27/06/18",
+ "Amount": 2018.7
+ },
+ {
+ "Date": "28/06/18",
+ "Amount": 2019
+ },
+ {
+ "Date": "29/06/18",
+ "Amount": 2018.9
+ },
+ {
+ "Date": "30/06/18",
+ "Amount": 2019.1
+ },
+ {
+ "Date": "01/07/18",
+ "Amount": 2019.2
+ },
+ {
+ "Date": "02/07/18",
+ "Amount": 2018.9
+ },
+ {
+ "Date": "03/07/18",
+ "Amount": 2018.6
+ },
+ {
+ "Date": "04/07/18",
+ "Amount": 2019
+ },
+ {
+ "Date": "05/07/18",
+ "Amount": 2018.7
+ },
+ {
+ "Date": "06/07/18",
+ "Amount": 2019.5
+ },
+ {
+ "Date": "07/07/18",
+ "Amount": 2019
+ },
+ {
+ "Date": "08/07/18",
+ "Amount": 2019
+ },
+ {
+ "Date": "09/07/18",
+ "Amount": 2018.7
+ },
+ {
+ "Date": "10/07/18",
+ "Amount": 2018.4
+ },
+ {
+ "Date": "11/07/18",
+ "Amount": 2018.5
+ },
+ {
+ "Date": "12/07/18",
+ "Amount": 2018.7
+ },
+ {
+ "Date": "13/07/18",
+ "Amount": 2019.5
+ },
+ {
+ "Date": "14/07/18",
+ "Amount": 2019
+ },
+ {
+ "Date": "15/07/18",
+ "Amount": 2019.3
+ },
+ {
+ "Date": "16/07/18",
+ "Amount": 2018.4
+ },
+ {
+ "Date": "17/07/18",
+ "Amount": 2019
+ },
+ {
+ "Date": "18/07/18",
+ "Amount": 2019
+ },
+ {
+ "Date": "19/07/18",
+ "Amount": 2018.6
+ },
+ {
+ "Date": "20/07/18",
+ "Amount": 2019.4
+ },
+ {
+ "Date": "21/07/18",
+ "Amount": 2019.5
+ },
+ {
+ "Date": "22/07/18",
+ "Amount": 2019.8
+ },
+ {
+ "Date": "23/07/18",
+ "Amount": 2019.2
+ },
+ {
+ "Date": "24/07/18",
+ "Amount": 2019
+ },
+ {
+ "Date": "25/07/18",
+ "Amount": 2018.9
+ },
+ {
+ "Date": "26/07/18",
+ "Amount": 2018.5
+ },
+ {
+ "Date": "27/07/18",
+ "Amount": 2018.7
+ },
+ {
+ "Date": "28/07/18",
+ "Amount": 2019.5
+ },
+ {
+ "Date": "29/07/18",
+ "Amount": 2019.2
+ },
+ {
+ "Date": "30/07/18",
+ "Amount": 2018.8
+ },
+ {
+ "Date": "31/07/18",
+ "Amount": 2018.9
+ },
+ {
+ "Date": "01/08/18",
+ "Amount": 2018.9
+ },
+ {
+ "Date": "02/08/18",
+ "Amount": 2018.9
+ },
+ {
+ "Date": "03/08/18",
+ "Amount": 2018.8
+ },
+ {
+ "Date": "04/08/18",
+ "Amount": 2019.4
+ },
+ {
+ "Date": "05/08/18",
+ "Amount": 2019.4
+ },
+ {
+ "Date": "06/08/18",
+ "Amount": 2018.5
+ },
+ {
+ "Date": "07/08/18",
+ "Amount": 2018.5
+ },
+ {
+ "Date": "08/08/18",
+ "Amount": 2018.6
+ },
+ {
+ "Date": "09/08/18",
+ "Amount": 2019.2
+ },
+ {
+ "Date": "10/08/18",
+ "Amount": 2018.7
+ },
+ {
+ "Date": "11/08/18",
+ "Amount": 2019.4
+ },
+ {
+ "Date": "12/08/18",
+ "Amount": 2019
+ },
+ {
+ "Date": "13/08/18",
+ "Amount": 2018.3
+ },
+ {
+ "Date": "14/08/18",
+ "Amount": 2019.2
+ },
+ {
+ "Date": "15/08/18",
+ "Amount": 2019.2
+ },
+ {
+ "Date": "16/08/18",
+ "Amount": 2019
+ },
+ {
+ "Date": "17/08/18",
+ "Amount": 2018.7
+ },
+ {
+ "Date": "18/08/18",
+ "Amount": 2019.2
+ },
+ {
+ "Date": "19/08/18",
+ "Amount": 2019.8
+ },
+ {
+ "Date": "20/08/18",
+ "Amount": 2018.5
+ },
+ {
+ "Date": "21/08/18",
+ "Amount": 2018.8
+ },
+ {
+ "Date": "22/08/18",
+ "Amount": 2019.2
+ },
+ {
+ "Date": "23/08/18",
+ "Amount": 2018.8
+ },
+ {
+ "Date": "24/08/18",
+ "Amount": 2018.8
+ },
+ {
+ "Date": "25/08/18",
+ "Amount": 2019.1
+ },
+ {
+ "Date": "26/08/18",
+ "Amount": 2019.5
+ },
+ {
+ "Date": "27/08/18",
+ "Amount": 2018.8
+ },
+ {
+ "Date": "28/08/18",
+ "Amount": 2018.7
+ },
+ {
+ "Date": "29/08/18",
+ "Amount": 2018.5
+ },
+ {
+ "Date": "30/08/18",
+ "Amount": 2018.6
+ },
+ {
+ "Date": "31/08/18",
+ "Amount": 2019.3
+ },
+ {
+ "Date": "01/09/18",
+ "Amount": 2018.9
+ },
+ {
+ "Date": "02/09/18",
+ "Amount": 2018.9
+ },
+ {
+ "Date": "03/09/18",
+ "Amount": 2018.4
+ },
+ {
+ "Date": "04/09/18",
+ "Amount": 2018.4
+ },
+ {
+ "Date": "05/09/18",
+ "Amount": 2018.8
+ },
+ {
+ "Date": "06/09/18",
+ "Amount": 2018.7
+ },
+ {
+ "Date": "07/09/18",
+ "Amount": 2019.1
+ },
+ {
+ "Date": "08/09/18",
+ "Amount": 2019.2
+ },
+ {
+ "Date": "09/09/18",
+ "Amount": 2019.8
+ },
+ {
+ "Date": "10/09/18",
+ "Amount": 2018.8
+ },
+ {
+ "Date": "11/09/18",
+ "Amount": 2018.7
+ },
+ {
+ "Date": "12/09/18",
+ "Amount": 2019.3
+ },
+ {
+ "Date": "13/09/18",
+ "Amount": 2018.9
+ },
+ {
+ "Date": "14/09/18",
+ "Amount": 2019.3
+ },
+ {
+ "Date": "15/09/18",
+ "Amount": 2019.1
+ },
+ {
+ "Date": "16/09/18",
+ "Amount": 2019.7
+ },
+ {
+ "Date": "17/09/18",
+ "Amount": 2018.9
+ },
+ {
+ "Date": "18/09/18",
+ "Amount": 2019.2
+ },
+ {
+ "Date": "19/09/18",
+ "Amount": 2019.2
+ },
+ {
+ "Date": "20/09/18",
+ "Amount": 2019.1
+ },
+ {
+ "Date": "21/09/18",
+ "Amount": 2019.2
+ },
+ {
+ "Date": "22/09/18",
+ "Amount": 2018.7
+ },
+ {
+ "Date": "23/09/18",
+ "Amount": 2019.6
+ },
+ {
+ "Date": "24/09/18",
+ "Amount": 2018.5
+ },
+ {
+ "Date": "25/09/18",
+ "Amount": 2018.9
+ },
+ {
+ "Date": "26/09/18",
+ "Amount": 2019.3
+ },
+ {
+ "Date": "27/09/18",
+ "Amount": 2019
+ },
+ {
+ "Date": "28/09/18",
+ "Amount": 2018.7
+ },
+ {
+ "Date": "29/09/18",
+ "Amount": 2019.7
+ },
+ {
+ "Date": "30/09/18",
+ "Amount": 2019.3
+ },
+ {
+ "Date": "01/10/18",
+ "Amount": 2018.5
+ },
+ {
+ "Date": "02/10/18",
+ "Amount": 2019
+ },
+ {
+ "Date": "03/10/18",
+ "Amount": 2018.6
+ },
+ {
+ "Date": "04/10/18",
+ "Amount": 2018.7
+ },
+ {
+ "Date": "05/10/18",
+ "Amount": 2019.3
+ },
+ {
+ "Date": "06/10/18",
+ "Amount": 2019.1
+ },
+ {
+ "Date": "07/10/18",
+ "Amount": 2018.9
+ },
+ {
+ "Date": "08/10/18",
+ "Amount": 2018.7
+ },
+ {
+ "Date": "09/10/18",
+ "Amount": 2019
+ },
+ {
+ "Date": "10/10/18",
+ "Amount": 2019.3
+ },
+ {
+ "Date": "11/10/18",
+ "Amount": 2018.8
+ },
+ {
+ "Date": "12/10/18",
+ "Amount": 2019
+ },
+ {
+ "Date": "13/10/18",
+ "Amount": 2019.2
+ },
+ {
+ "Date": "14/10/18",
+ "Amount": 2019.4
+ },
+ {
+ "Date": "15/10/18",
+ "Amount": 2018.2
+ },
+ {
+ "Date": "16/10/18",
+ "Amount": 2018.9
+ },
+ {
+ "Date": "17/10/18",
+ "Amount": 2018.5
+ },
+ {
+ "Date": "18/10/18",
+ "Amount": 2018.8
+ },
+ {
+ "Date": "19/10/18",
+ "Amount": 2019.2
+ },
+ {
+ "Date": "20/10/18",
+ "Amount": 2019.5
+ },
+ {
+ "Date": "21/10/18",
+ "Amount": 2019.4
+ },
+ {
+ "Date": "22/10/18",
+ "Amount": 2018.7
+ },
+ {
+ "Date": "23/10/18",
+ "Amount": 2018.6
+ },
+ {
+ "Date": "24/10/18",
+ "Amount": 2019.3
+ },
+ {
+ "Date": "25/10/18",
+ "Amount": 2019.3
+ },
+ {
+ "Date": "26/10/18",
+ "Amount": 2019.1
+ },
+ {
+ "Date": "27/10/18",
+ "Amount": 2018.9
+ },
+ {
+ "Date": "28/10/18",
+ "Amount": 2019.5
+ },
+ {
+ "Date": "29/10/18",
+ "Amount": 2018.6
+ },
+ {
+ "Date": "30/10/18",
+ "Amount": 2019.1
+ },
+ {
+ "Date": "31/10/18",
+ "Amount": 2019
+ },
+ {
+ "Date": "01/11/18",
+ "Amount": 2018.9
+ },
+ {
+ "Date": "02/11/18",
+ "Amount": 2019.6
+ },
+ {
+ "Date": "03/11/18",
+ "Amount": 2019.7
+ },
+ {
+ "Date": "04/11/18",
+ "Amount": 2019.2
+ },
+ {
+ "Date": "05/11/18",
+ "Amount": 2018.3
+ },
+ {
+ "Date": "06/11/18",
+ "Amount": 2018.8
+ },
+ {
+ "Date": "07/11/18",
+ "Amount": 2018.4
+ },
+ {
+ "Date": "08/11/18",
+ "Amount": 2018.7
+ },
+ {
+ "Date": "09/11/18",
+ "Amount": 2018.7
+ },
+ {
+ "Date": "10/11/18",
+ "Amount": 2019.3
+ },
+ {
+ "Date": "11/11/18",
+ "Amount": 2019.4
+ },
+ {
+ "Date": "12/11/18",
+ "Amount": 2019
+ },
+ {
+ "Date": "13/11/18",
+ "Amount": 2018.7
+ },
+ {
+ "Date": "14/11/18",
+ "Amount": 2019.1
+ },
+ {
+ "Date": "15/11/18",
+ "Amount": 2019.2
+ },
+ {
+ "Date": "16/11/18",
+ "Amount": 2019
+ },
+ {
+ "Date": "17/11/18",
+ "Amount": 2019.6
+ },
+ {
+ "Date": "18/11/18",
+ "Amount": 2019.6
+ },
+ {
+ "Date": "19/11/18",
+ "Amount": 2018.8
+ },
+ {
+ "Date": "20/11/18",
+ "Amount": 2018.3
+ },
+ {
+ "Date": "21/11/18",
+ "Amount": 2018.9
+ },
+ {
+ "Date": "22/11/18",
+ "Amount": 2018.7
+ },
+ {
+ "Date": "23/11/18",
+ "Amount": 2019.5
+ },
+ {
+ "Date": "24/11/18",
+ "Amount": 2018.8
+ },
+ {
+ "Date": "25/11/18",
+ "Amount": 2018.9
+ },
+ {
+ "Date": "26/11/18",
+ "Amount": 2019.1
+ },
+ {
+ "Date": "27/11/18",
+ "Amount": 2018.6
+ },
+ {
+ "Date": "28/11/18",
+ "Amount": 2018.6
+ },
+ {
+ "Date": "29/11/18",
+ "Amount": 2018.7
+ },
+ {
+ "Date": "30/11/18",
+ "Amount": 2018.9
+ },
+ {
+ "Date": "01/12/18",
+ "Amount": 2019.6
+ },
+ {
+ "Date": "02/12/18",
+ "Amount": 2018.9
+ },
+ {
+ "Date": "03/12/18",
+ "Amount": 2018.7
+ },
+ {
+ "Date": "04/12/18",
+ "Amount": 2019.2
+ },
+ {
+ "Date": "05/12/18",
+ "Amount": 2018.8
+ },
+ {
+ "Date": "06/12/18",
+ "Amount": 2019.2
+ },
+ {
+ "Date": "07/12/18",
+ "Amount": 2019.4
+ },
+ {
+ "Date": "08/12/18",
+ "Amount": 2019.3
+ },
+ {
+ "Date": "09/12/18",
+ "Amount": 2019.2
+ },
+ {
+ "Date": "10/12/18",
+ "Amount": 2019
+ },
+ {
+ "Date": "11/12/18",
+ "Amount": 2018.7
+ },
+ {
+ "Date": "12/12/18",
+ "Amount": 2018.5
+ },
+ {
+ "Date": "13/12/18",
+ "Amount": 2018.9
+ },
+ {
+ "Date": "14/12/18",
+ "Amount": 2018.7
+ },
+ {
+ "Date": "15/12/18",
+ "Amount": 2018.8
+ },
+ {
+ "Date": "16/12/18",
+ "Amount": 2019.7
+ },
+ {
+ "Date": "17/12/18",
+ "Amount": 2018.2
+ },
+ {
+ "Date": "18/12/18",
+ "Amount": 2018.6
+ },
+ {
+ "Date": "19/12/18",
+ "Amount": 2018.4
+ },
+ {
+ "Date": "20/12/18",
+ "Amount": 2019.2
+ },
+ {
+ "Date": "21/12/18",
+ "Amount": 2019.5
+ },
+ {
+ "Date": "22/12/18",
+ "Amount": 2019.5
+ },
+ {
+ "Date": "23/12/18",
+ "Amount": 2019.8
+ },
+ {
+ "Date": "24/12/18",
+ "Amount": 2019.2
+ },
+ {
+ "Date": "25/12/18",
+ "Amount": 2018.7
+ },
+ {
+ "Date": "26/12/18",
+ "Amount": 2018.7
+ },
+ {
+ "Date": "27/12/18",
+ "Amount": 2019.5
+ },
+ {
+ "Date": "28/12/18",
+ "Amount": 2018.7
+ },
+ {
+ "Date": "29/12/18",
+ "Amount": 2018.7
+ },
+ {
+ "Date": "30/12/18",
+ "Amount": 2018.8
+ },
+ {
+ "Date": "31/12/18",
+ "Amount": 2018.3
+ },
+ {
+ "Date": "01/01/19",
+ "Amount": 2019.5
+ },
+ {
+ "Date": "02/01/19",
+ "Amount": 2019.6
+ },
+ {
+ "Date": "03/01/19",
+ "Amount": 2019.9
+ },
+ {
+ "Date": "04/01/19",
+ "Amount": 2019.8
+ },
+ {
+ "Date": "05/01/19",
+ "Amount": 2019.8
+ },
+ {
+ "Date": "06/01/19",
+ "Amount": 2020.3
+ },
+ {
+ "Date": "07/01/19",
+ "Amount": 2019.8
+ },
+ {
+ "Date": "08/01/19",
+ "Amount": 2019.4
+ },
+ {
+ "Date": "09/01/19",
+ "Amount": 2020.4
+ },
+ {
+ "Date": "10/01/19",
+ "Amount": 2020.2
+ },
+ {
+ "Date": "11/01/19",
+ "Amount": 2019.7
+ },
+ {
+ "Date": "12/01/19",
+ "Amount": 2019.8
+ },
+ {
+ "Date": "13/01/19",
+ "Amount": 2020.2
+ },
+ {
+ "Date": "14/01/19",
+ "Amount": 2019.7
+ },
+ {
+ "Date": "15/01/19",
+ "Amount": 2019.7
+ },
+ {
+ "Date": "16/01/19",
+ "Amount": 2019.8
+ },
+ {
+ "Date": "17/01/19",
+ "Amount": 2019.6
+ },
+ {
+ "Date": "18/01/19",
+ "Amount": 2019.6
+ },
+ {
+ "Date": "19/01/19",
+ "Amount": 2020.4
+ },
+ {
+ "Date": "20/01/19",
+ "Amount": 2020.2
+ },
+ {
+ "Date": "21/01/19",
+ "Amount": 2019.9
+ },
+ {
+ "Date": "22/01/19",
+ "Amount": 2019.3
+ },
+ {
+ "Date": "23/01/19",
+ "Amount": 2019.4
+ },
+ {
+ "Date": "24/01/19",
+ "Amount": 2019.9
+ },
+ {
+ "Date": "25/01/19",
+ "Amount": 2020.5
+ },
+ {
+ "Date": "26/01/19",
+ "Amount": 2020.6
+ },
+ {
+ "Date": "27/01/19",
+ "Amount": 2019.8
+ },
+ {
+ "Date": "28/01/19",
+ "Amount": 2019.9
+ },
+ {
+ "Date": "29/01/19",
+ "Amount": 2019.6
+ },
+ {
+ "Date": "30/01/19",
+ "Amount": 2019.5
+ },
+ {
+ "Date": "31/01/19",
+ "Amount": 2019.7
+ },
+ {
+ "Date": "01/02/19",
+ "Amount": 2020.2
+ },
+ {
+ "Date": "02/02/19",
+ "Amount": 2019.9
+ },
+ {
+ "Date": "03/02/19",
+ "Amount": 2020.3
+ },
+ {
+ "Date": "04/02/19",
+ "Amount": 2019.3
+ },
+ {
+ "Date": "05/02/19",
+ "Amount": 2020
+ },
+ {
+ "Date": "06/02/19",
+ "Amount": 2019.7
+ },
+ {
+ "Date": "07/02/19",
+ "Amount": 2020
+ },
+ {
+ "Date": "08/02/19",
+ "Amount": 2020
+ },
+ {
+ "Date": "09/02/19",
+ "Amount": 2020.7
+ },
+ {
+ "Date": "10/02/19",
+ "Amount": 2020.4
+ },
+ {
+ "Date": "11/02/19",
+ "Amount": 2020.2
+ },
+ {
+ "Date": "12/02/19",
+ "Amount": 2019.5
+ },
+ {
+ "Date": "13/02/19",
+ "Amount": 2020.3
+ },
+ {
+ "Date": "14/02/19",
+ "Amount": 2020.4
+ },
+ {
+ "Date": "15/02/19",
+ "Amount": 2019.8
+ },
+ {
+ "Date": "16/02/19",
+ "Amount": 2019.9
+ },
+ {
+ "Date": "17/02/19",
+ "Amount": 2019.8
+ },
+ {
+ "Date": "18/02/19",
+ "Amount": 2019.4
+ },
+ {
+ "Date": "19/02/19",
+ "Amount": 2020.1
+ },
+ {
+ "Date": "20/02/19",
+ "Amount": 2019.6
+ },
+ {
+ "Date": "21/02/19",
+ "Amount": 2020.4
+ },
+ {
+ "Date": "22/02/19",
+ "Amount": 2020.4
+ },
+ {
+ "Date": "23/02/19",
+ "Amount": 2020.5
+ },
+ {
+ "Date": "24/02/19",
+ "Amount": 2020.8
+ },
+ {
+ "Date": "25/02/19",
+ "Amount": 2020.1
+ },
+ {
+ "Date": "26/02/19",
+ "Amount": 2019.9
+ },
+ {
+ "Date": "27/02/19",
+ "Amount": 2019.8
+ },
+ {
+ "Date": "28/02/19",
+ "Amount": 2020.4
+ },
+ {
+ "Date": "01/03/19",
+ "Amount": 2019.8
+ },
+ {
+ "Date": "02/03/19",
+ "Amount": 2020.5
+ },
+ {
+ "Date": "03/03/19",
+ "Amount": 2020.7
+ },
+ {
+ "Date": "04/03/19",
+ "Amount": 2019.7
+ },
+ {
+ "Date": "05/03/19",
+ "Amount": 2019.9
+ },
+ {
+ "Date": "06/03/19",
+ "Amount": 2019.8
+ },
+ {
+ "Date": "07/03/19",
+ "Amount": 2019.7
+ },
+ {
+ "Date": "08/03/19",
+ "Amount": 2019.8
+ },
+ {
+ "Date": "09/03/19",
+ "Amount": 2020.2
+ },
+ {
+ "Date": "10/03/19",
+ "Amount": 2020.7
+ },
+ {
+ "Date": "11/03/19",
+ "Amount": 2019.4
+ },
+ {
+ "Date": "12/03/19",
+ "Amount": 2020.2
+ },
+ {
+ "Date": "13/03/19",
+ "Amount": 2019.8
+ },
+ {
+ "Date": "14/03/19",
+ "Amount": 2020.4
+ },
+ {
+ "Date": "15/03/19",
+ "Amount": 2020.3
+ },
+ {
+ "Date": "16/03/19",
+ "Amount": 2020.1
+ },
+ {
+ "Date": "17/03/19",
+ "Amount": 2020.5
+ },
+ {
+ "Date": "18/03/19",
+ "Amount": 2019.8
+ },
+ {
+ "Date": "19/03/19",
+ "Amount": 2019.7
+ },
+ {
+ "Date": "20/03/19",
+ "Amount": 2020.4
+ },
+ {
+ "Date": "21/03/19",
+ "Amount": 2019.8
+ },
+ {
+ "Date": "22/03/19",
+ "Amount": 2019.7
+ },
+ {
+ "Date": "23/03/19",
+ "Amount": 2020
+ },
+ {
+ "Date": "24/03/19",
+ "Amount": 2020.3
+ },
+ {
+ "Date": "25/03/19",
+ "Amount": 2020
+ },
+ {
+ "Date": "26/03/19",
+ "Amount": 2019.5
+ },
+ {
+ "Date": "27/03/19",
+ "Amount": 2019.6
+ },
+ {
+ "Date": "28/03/19",
+ "Amount": 2019.7
+ },
+ {
+ "Date": "29/03/19",
+ "Amount": 2019.7
+ },
+ {
+ "Date": "30/03/19",
+ "Amount": 2020.5
+ },
+ {
+ "Date": "31/03/19",
+ "Amount": 2020.2
+ },
+ {
+ "Date": "01/04/19",
+ "Amount": 2019.4
+ },
+ {
+ "Date": "02/04/19",
+ "Amount": 2019.6
+ },
+ {
+ "Date": "03/04/19",
+ "Amount": 2019.6
+ },
+ {
+ "Date": "04/04/19",
+ "Amount": 2019.5
+ },
+ {
+ "Date": "05/04/19",
+ "Amount": 2020.2
+ },
+ {
+ "Date": "06/04/19",
+ "Amount": 2020.5
+ },
+ {
+ "Date": "07/04/19",
+ "Amount": 2019.9
+ },
+ {
+ "Date": "08/04/19",
+ "Amount": 2019.7
+ },
+ {
+ "Date": "09/04/19",
+ "Amount": 2019.8
+ },
+ {
+ "Date": "10/04/19",
+ "Amount": 2020
+ },
+ {
+ "Date": "11/04/19",
+ "Amount": 2020.1
+ },
+ {
+ "Date": "12/04/19",
+ "Amount": 2019.8
+ },
+ {
+ "Date": "13/04/19",
+ "Amount": 2020.1
+ },
+ {
+ "Date": "14/04/19",
+ "Amount": 2020.5
+ },
+ {
+ "Date": "15/04/19",
+ "Amount": 2019.9
+ },
+ {
+ "Date": "16/04/19",
+ "Amount": 2019.6
+ },
+ {
+ "Date": "17/04/19",
+ "Amount": 2020.1
+ },
+ {
+ "Date": "18/04/19",
+ "Amount": 2020
+ },
+ {
+ "Date": "19/04/19",
+ "Amount": 2019.9
+ },
+ {
+ "Date": "20/04/19",
+ "Amount": 2020.3
+ },
+ {
+ "Date": "21/04/19",
+ "Amount": 2020.2
+ },
+ {
+ "Date": "22/04/19",
+ "Amount": 2019.9
+ },
+ {
+ "Date": "23/04/19",
+ "Amount": 2020.1
+ },
+ {
+ "Date": "24/04/19",
+ "Amount": 2019.4
+ },
+ {
+ "Date": "25/04/19",
+ "Amount": 2019.7
+ },
+ {
+ "Date": "26/04/19",
+ "Amount": 2020.4
+ },
+ {
+ "Date": "27/04/19",
+ "Amount": 2020.1
+ },
+ {
+ "Date": "28/04/19",
+ "Amount": 2020.5
+ },
+ {
+ "Date": "29/04/19",
+ "Amount": 2020.1
+ },
+ {
+ "Date": "30/04/19",
+ "Amount": 2019.6
+ },
+ {
+ "Date": "01/05/19",
+ "Amount": 2019.9
+ },
+ {
+ "Date": "02/05/19",
+ "Amount": 2019.9
+ },
+ {
+ "Date": "03/05/19",
+ "Amount": 2019.9
+ },
+ {
+ "Date": "04/05/19",
+ "Amount": 2020.3
+ },
+ {
+ "Date": "05/05/19",
+ "Amount": 2020.3
+ },
+ {
+ "Date": "06/05/19",
+ "Amount": 2019.7
+ },
+ {
+ "Date": "07/05/19",
+ "Amount": 2020.2
+ },
+ {
+ "Date": "08/05/19",
+ "Amount": 2019.8
+ },
+ {
+ "Date": "09/05/19",
+ "Amount": 2019.5
+ },
+ {
+ "Date": "10/05/19",
+ "Amount": 2020.1
+ },
+ {
+ "Date": "11/05/19",
+ "Amount": 2019.9
+ },
+ {
+ "Date": "12/05/19",
+ "Amount": 2020.3
+ },
+ {
+ "Date": "13/05/19",
+ "Amount": 2019.8
+ },
+ {
+ "Date": "14/05/19",
+ "Amount": 2019.8
+ },
+ {
+ "Date": "15/05/19",
+ "Amount": 2019.8
+ },
+ {
+ "Date": "16/05/19",
+ "Amount": 2020.3
+ },
+ {
+ "Date": "17/05/19",
+ "Amount": 2020.1
+ },
+ {
+ "Date": "18/05/19",
+ "Amount": 2020.3
+ },
+ {
+ "Date": "19/05/19",
+ "Amount": 2020.1
+ },
+ {
+ "Date": "20/05/19",
+ "Amount": 2019.8
+ },
+ {
+ "Date": "21/05/19",
+ "Amount": 2019.8
+ },
+ {
+ "Date": "22/05/19",
+ "Amount": 2019.4
+ },
+ {
+ "Date": "23/05/19",
+ "Amount": 2019.8
+ },
+ {
+ "Date": "24/05/19",
+ "Amount": 2020.4
+ },
+ {
+ "Date": "25/05/19",
+ "Amount": 2020.6
+ },
+ {
+ "Date": "26/05/19",
+ "Amount": 2020.5
+ },
+ {
+ "Date": "27/05/19",
+ "Amount": 2019.4
+ },
+ {
+ "Date": "28/05/19",
+ "Amount": 2019.7
+ },
+ {
+ "Date": "29/05/19",
+ "Amount": 2020.2
+ },
+ {
+ "Date": "30/05/19",
+ "Amount": 2019.6
+ },
+ {
+ "Date": "31/05/19",
+ "Amount": 2019.7
+ },
+ {
+ "Date": "01/06/19",
+ "Amount": 2020
+ },
+ {
+ "Date": "02/06/19",
+ "Amount": 2020
+ },
+ {
+ "Date": "03/06/19",
+ "Amount": 2019.9
+ },
+ {
+ "Date": "04/06/19",
+ "Amount": 2019.4
+ },
+ {
+ "Date": "05/06/19",
+ "Amount": 2019.6
+ },
+ {
+ "Date": "06/06/19",
+ "Amount": 2019.9
+ },
+ {
+ "Date": "07/06/19",
+ "Amount": 2020.3
+ },
+ {
+ "Date": "08/06/19",
+ "Amount": 2020.5
+ },
+ {
+ "Date": "09/06/19",
+ "Amount": 2020.4
+ },
+ {
+ "Date": "10/06/19",
+ "Amount": 2020.1
+ },
+ {
+ "Date": "11/06/19",
+ "Amount": 2020.2
+ },
+ {
+ "Date": "12/06/19",
+ "Amount": 2019.9
+ },
+ {
+ "Date": "13/06/19",
+ "Amount": 2020.4
+ },
+ {
+ "Date": "14/06/19",
+ "Amount": 2019.7
+ },
+ {
+ "Date": "15/06/19",
+ "Amount": 2020.7
+ },
+ {
+ "Date": "16/06/19",
+ "Amount": 2020.7
+ },
+ {
+ "Date": "17/06/19",
+ "Amount": 2019.7
+ },
+ {
+ "Date": "18/06/19",
+ "Amount": 2019.9
+ },
+ {
+ "Date": "19/06/19",
+ "Amount": 2019.9
+ },
+ {
+ "Date": "20/06/19",
+ "Amount": 2020.3
+ },
+ {
+ "Date": "21/06/19",
+ "Amount": 2020
+ },
+ {
+ "Date": "22/06/19",
+ "Amount": 2019.9
+ },
+ {
+ "Date": "23/06/19",
+ "Amount": 2020
+ },
+ {
+ "Date": "24/06/19",
+ "Amount": 2020.2
+ },
+ {
+ "Date": "25/06/19",
+ "Amount": 2020
+ },
+ {
+ "Date": "26/06/19",
+ "Amount": 2019.4
+ },
+ {
+ "Date": "27/06/19",
+ "Amount": 2019.6
+ },
+ {
+ "Date": "28/06/19",
+ "Amount": 2019.8
+ },
+ {
+ "Date": "29/06/19",
+ "Amount": 2020.2
+ },
+ {
+ "Date": "30/06/19",
+ "Amount": 2019.9
+ },
+ {
+ "Date": "01/07/19",
+ "Amount": 2019.6
+ },
+ {
+ "Date": "02/07/19",
+ "Amount": 2019.9
+ },
+ {
+ "Date": "03/07/19",
+ "Amount": 2019.9
+ },
+ {
+ "Date": "04/07/19",
+ "Amount": 2020.3
+ },
+ {
+ "Date": "05/07/19",
+ "Amount": 2020.6
+ },
+ {
+ "Date": "06/07/19",
+ "Amount": 2020.6
+ },
+ {
+ "Date": "07/07/19",
+ "Amount": 2020.7
+ },
+ {
+ "Date": "08/07/19",
+ "Amount": 2019.6
+ },
+ {
+ "Date": "09/07/19",
+ "Amount": 2019.6
+ },
+ {
+ "Date": "10/07/19",
+ "Amount": 2019.7
+ },
+ {
+ "Date": "11/07/19",
+ "Amount": 2020.1
+ },
+ {
+ "Date": "12/07/19",
+ "Amount": 2019.7
+ },
+ {
+ "Date": "13/07/19",
+ "Amount": 2020.6
+ },
+ {
+ "Date": "14/07/19",
+ "Amount": 2020.6
+ },
+ {
+ "Date": "15/07/19",
+ "Amount": 2020.1
+ },
+ {
+ "Date": "16/07/19",
+ "Amount": 2020
+ },
+ {
+ "Date": "17/07/19",
+ "Amount": 2020.3
+ },
+ {
+ "Date": "18/07/19",
+ "Amount": 2020.3
+ },
+ {
+ "Date": "19/07/19",
+ "Amount": 2020.3
+ },
+ {
+ "Date": "20/07/19",
+ "Amount": 2019.8
+ },
+ {
+ "Date": "21/07/19",
+ "Amount": 2020.4
+ },
+ {
+ "Date": "22/07/19",
+ "Amount": 2019.7
+ },
+ {
+ "Date": "23/07/19",
+ "Amount": 2019.6
+ },
+ {
+ "Date": "24/07/19",
+ "Amount": 2020.3
+ },
+ {
+ "Date": "25/07/19",
+ "Amount": 2020.4
+ },
+ {
+ "Date": "26/07/19",
+ "Amount": 2019.8
+ },
+ {
+ "Date": "27/07/19",
+ "Amount": 2020
+ },
+ {
+ "Date": "28/07/19",
+ "Amount": 2020.3
+ },
+ {
+ "Date": "29/07/19",
+ "Amount": 2019.5
+ },
+ {
+ "Date": "30/07/19",
+ "Amount": 2019.4
+ },
+ {
+ "Date": "31/07/19",
+ "Amount": 2020
+ },
+ {
+ "Date": "01/08/19",
+ "Amount": 2019.5
+ },
+ {
+ "Date": "02/08/19",
+ "Amount": 2019.9
+ },
+ {
+ "Date": "03/08/19",
+ "Amount": 2020.5
+ },
+ {
+ "Date": "04/08/19",
+ "Amount": 2019.8
+ },
+ {
+ "Date": "05/08/19",
+ "Amount": 2019.3
+ },
+ {
+ "Date": "06/08/19",
+ "Amount": 2019.5
+ },
+ {
+ "Date": "07/08/19",
+ "Amount": 2019.6
+ },
+ {
+ "Date": "08/08/19",
+ "Amount": 2019.5
+ },
+ {
+ "Date": "09/08/19",
+ "Amount": 2019.9
+ },
+ {
+ "Date": "10/08/19",
+ "Amount": 2020.6
+ },
+ {
+ "Date": "11/08/19",
+ "Amount": 2020
+ },
+ {
+ "Date": "12/08/19",
+ "Amount": 2020.1
+ },
+ {
+ "Date": "13/08/19",
+ "Amount": 2020.2
+ },
+ {
+ "Date": "14/08/19",
+ "Amount": 2020
+ },
+ {
+ "Date": "15/08/19",
+ "Amount": 2020.2
+ },
+ {
+ "Date": "16/08/19",
+ "Amount": 2020.1
+ },
+ {
+ "Date": "17/08/19",
+ "Amount": 2020.7
+ },
+ {
+ "Date": "18/08/19",
+ "Amount": 2020.5
+ },
+ {
+ "Date": "19/08/19",
+ "Amount": 2020
+ },
+ {
+ "Date": "20/08/19",
+ "Amount": 2019.8
+ },
+ {
+ "Date": "21/08/19",
+ "Amount": 2019.4
+ },
+ {
+ "Date": "22/08/19",
+ "Amount": 2019.6
+ },
+ {
+ "Date": "23/08/19",
+ "Amount": 2019.9
+ },
+ {
+ "Date": "24/08/19",
+ "Amount": 2019.8
+ },
+ {
+ "Date": "25/08/19",
+ "Amount": 2019.9
+ },
+ {
+ "Date": "26/08/19",
+ "Amount": 2019.6
+ },
+ {
+ "Date": "27/08/19",
+ "Amount": 2020.2
+ },
+ {
+ "Date": "28/08/19",
+ "Amount": 2019.9
+ },
+ {
+ "Date": "29/08/19",
+ "Amount": 2019.6
+ },
+ {
+ "Date": "30/08/19",
+ "Amount": 2020.5
+ },
+ {
+ "Date": "31/08/19",
+ "Amount": 2020.5
+ },
+ {
+ "Date": "01/09/19",
+ "Amount": 2019.8
+ },
+ {
+ "Date": "02/09/19",
+ "Amount": 2020
+ },
+ {
+ "Date": "03/09/19",
+ "Amount": 2020.1
+ },
+ {
+ "Date": "04/09/19",
+ "Amount": 2019.9
+ },
+ {
+ "Date": "05/09/19",
+ "Amount": 2020
+ },
+ {
+ "Date": "06/09/19",
+ "Amount": 2019.7
+ },
+ {
+ "Date": "07/09/19",
+ "Amount": 2019.8
+ },
+ {
+ "Date": "08/09/19",
+ "Amount": 2020.5
+ },
+ {
+ "Date": "09/09/19",
+ "Amount": 2019.8
+ },
+ {
+ "Date": "10/09/19",
+ "Amount": 2020.2
+ },
+ {
+ "Date": "11/09/19",
+ "Amount": 2019.7
+ },
+ {
+ "Date": "12/09/19",
+ "Amount": 2019.6
+ },
+ {
+ "Date": "13/09/19",
+ "Amount": 2020.1
+ },
+ {
+ "Date": "14/09/19",
+ "Amount": 2019.8
+ },
+ {
+ "Date": "15/09/19",
+ "Amount": 2020
+ },
+ {
+ "Date": "16/09/19",
+ "Amount": 2019.6
+ },
+ {
+ "Date": "17/09/19",
+ "Amount": 2019.5
+ },
+ {
+ "Date": "18/09/19",
+ "Amount": 2020.3
+ },
+ {
+ "Date": "19/09/19",
+ "Amount": 2020.2
+ },
+ {
+ "Date": "20/09/19",
+ "Amount": 2019.9
+ },
+ {
+ "Date": "21/09/19",
+ "Amount": 2020.6
+ },
+ {
+ "Date": "22/09/19",
+ "Amount": 2020.4
+ },
+ {
+ "Date": "23/09/19",
+ "Amount": 2019.9
+ },
+ {
+ "Date": "24/09/19",
+ "Amount": 2019.7
+ },
+ {
+ "Date": "25/09/19",
+ "Amount": 2019.5
+ },
+ {
+ "Date": "26/09/19",
+ "Amount": 2019.7
+ },
+ {
+ "Date": "27/09/19",
+ "Amount": 2020.5
+ },
+ {
+ "Date": "28/09/19",
+ "Amount": 2020.6
+ },
+ {
+ "Date": "29/09/19",
+ "Amount": 2020.7
+ },
+ {
+ "Date": "30/09/19",
+ "Amount": 2019.3
+ },
+ {
+ "Date": "01/10/19",
+ "Amount": 2019.7
+ },
+ {
+ "Date": "02/10/19",
+ "Amount": 2019.9
+ },
+ {
+ "Date": "03/10/19",
+ "Amount": 2019.8
+ },
+ {
+ "Date": "04/10/19",
+ "Amount": 2019.6
+ },
+ {
+ "Date": "05/10/19",
+ "Amount": 2020.2
+ },
+ {
+ "Date": "06/10/19",
+ "Amount": 2020
+ },
+ {
+ "Date": "07/10/19",
+ "Amount": 2019.2
+ },
+ {
+ "Date": "08/10/19",
+ "Amount": 2020
+ },
+ {
+ "Date": "09/10/19",
+ "Amount": 2020.1
+ },
+ {
+ "Date": "10/10/19",
+ "Amount": 2020.4
+ },
+ {
+ "Date": "11/10/19",
+ "Amount": 2020
+ },
+ {
+ "Date": "12/10/19",
+ "Amount": 2020.5
+ },
+ {
+ "Date": "13/10/19",
+ "Amount": 2019.9
+ },
+ {
+ "Date": "14/10/19",
+ "Amount": 2019.6
+ },
+ {
+ "Date": "15/10/19",
+ "Amount": 2019.7
+ },
+ {
+ "Date": "16/10/19",
+ "Amount": 2019.5
+ },
+ {
+ "Date": "17/10/19",
+ "Amount": 2019.8
+ },
+ {
+ "Date": "18/10/19",
+ "Amount": 2020.3
+ },
+ {
+ "Date": "19/10/19",
+ "Amount": 2020
+ },
+ {
+ "Date": "20/10/19",
+ "Amount": 2019.9
+ },
+ {
+ "Date": "21/10/19",
+ "Amount": 2020.1
+ },
+ {
+ "Date": "22/10/19",
+ "Amount": 2019.3
+ },
+ {
+ "Date": "23/10/19",
+ "Amount": 2020.1
+ },
+ {
+ "Date": "24/10/19",
+ "Amount": 2019.5
+ },
+ {
+ "Date": "25/10/19",
+ "Amount": 2019.9
+ },
+ {
+ "Date": "26/10/19",
+ "Amount": 2019.9
+ },
+ {
+ "Date": "27/10/19",
+ "Amount": 2020.1
+ },
+ {
+ "Date": "28/10/19",
+ "Amount": 2019.5
+ },
+ {
+ "Date": "29/10/19",
+ "Amount": 2020
+ },
+ {
+ "Date": "30/10/19",
+ "Amount": 2019.8
+ },
+ {
+ "Date": "31/10/19",
+ "Amount": 2020.3
+ },
+ {
+ "Date": "01/11/19",
+ "Amount": 2020.6
+ },
+ {
+ "Date": "02/11/19",
+ "Amount": 2020.5
+ },
+ {
+ "Date": "03/11/19",
+ "Amount": 2020.1
+ },
+ {
+ "Date": "04/11/19",
+ "Amount": 2019.3
+ },
+ {
+ "Date": "05/11/19",
+ "Amount": 2019.7
+ },
+ {
+ "Date": "06/11/19",
+ "Amount": 2020.2
+ },
+ {
+ "Date": "07/11/19",
+ "Amount": 2020.2
+ },
+ {
+ "Date": "08/11/19",
+ "Amount": 2020.2
+ },
+ {
+ "Date": "09/11/19",
+ "Amount": 2020.6
+ },
+ {
+ "Date": "10/11/19",
+ "Amount": 2020.6
+ },
+ {
+ "Date": "11/11/19",
+ "Amount": 2019.5
+ },
+ {
+ "Date": "12/11/19",
+ "Amount": 2019.6
+ },
+ {
+ "Date": "13/11/19",
+ "Amount": 2020.1
+ },
+ {
+ "Date": "14/11/19",
+ "Amount": 2019.6
+ },
+ {
+ "Date": "15/11/19",
+ "Amount": 2020.2
+ },
+ {
+ "Date": "16/11/19",
+ "Amount": 2019.7
+ },
+ {
+ "Date": "17/11/19",
+ "Amount": 2019.8
+ },
+ {
+ "Date": "18/11/19",
+ "Amount": 2019.4
+ },
+ {
+ "Date": "19/11/19",
+ "Amount": 2019.9
+ },
+ {
+ "Date": "20/11/19",
+ "Amount": 2020
+ },
+ {
+ "Date": "21/11/19",
+ "Amount": 2019.9
+ },
+ {
+ "Date": "22/11/19",
+ "Amount": 2020
+ },
+ {
+ "Date": "23/11/19",
+ "Amount": 2020.5
+ },
+ {
+ "Date": "24/11/19",
+ "Amount": 2019.9
+ },
+ {
+ "Date": "25/11/19",
+ "Amount": 2019.7
+ },
+ {
+ "Date": "26/11/19",
+ "Amount": 2020
+ },
+ {
+ "Date": "27/11/19",
+ "Amount": 2019.9
+ },
+ {
+ "Date": "28/11/19",
+ "Amount": 2020
+ },
+ {
+ "Date": "29/11/19",
+ "Amount": 2020.4
+ },
+ {
+ "Date": "30/11/19",
+ "Amount": 2020.2
+ },
+ {
+ "Date": "01/12/19",
+ "Amount": 2020.6
+ },
+ {
+ "Date": "02/12/19",
+ "Amount": 2019.8
+ },
+ {
+ "Date": "03/12/19",
+ "Amount": 2019.7
+ },
+ {
+ "Date": "04/12/19",
+ "Amount": 2019.8
+ },
+ {
+ "Date": "05/12/19",
+ "Amount": 2020.1
+ },
+ {
+ "Date": "06/12/19",
+ "Amount": 2019.6
+ },
+ {
+ "Date": "07/12/19",
+ "Amount": 2020.3
+ },
+ {
+ "Date": "08/12/19",
+ "Amount": 2020.1
+ },
+ {
+ "Date": "09/12/19",
+ "Amount": 2019.9
+ },
+ {
+ "Date": "10/12/19",
+ "Amount": 2020.1
+ },
+ {
+ "Date": "11/12/19",
+ "Amount": 2020.2
+ },
+ {
+ "Date": "12/12/19",
+ "Amount": 2019.9
+ },
+ {
+ "Date": "13/12/19",
+ "Amount": 2020.4
+ },
+ {
+ "Date": "14/12/19",
+ "Amount": 2020
+ },
+ {
+ "Date": "15/12/19",
+ "Amount": 2020.6
+ },
+ {
+ "Date": "16/12/19",
+ "Amount": 2020.2
+ },
+ {
+ "Date": "17/12/19",
+ "Amount": 2020
+ },
+ {
+ "Date": "18/12/19",
+ "Amount": 2020
+ },
+ {
+ "Date": "19/12/19",
+ "Amount": 2019.7
+ },
+ {
+ "Date": "20/12/19",
+ "Amount": 2019.9
+ },
+ {
+ "Date": "21/12/19",
+ "Amount": 2020.6
+ },
+ {
+ "Date": "22/12/19",
+ "Amount": 2020.7
+ },
+ {
+ "Date": "23/12/19",
+ "Amount": 2019.5
+ },
+ {
+ "Date": "24/12/19",
+ "Amount": 2019.5
+ },
+ {
+ "Date": "25/12/19",
+ "Amount": 2020
+ },
+ {
+ "Date": "26/12/19",
+ "Amount": 2020
+ },
+ {
+ "Date": "27/12/19",
+ "Amount": 2020.4
+ },
+ {
+ "Date": "28/12/19",
+ "Amount": 2020.6
+ },
+ {
+ "Date": "29/12/19",
+ "Amount": 2020.5
+ },
+ {
+ "Date": "30/12/19",
+ "Amount": 2019.8
+ },
+ {
+ "Date": "31/12/19",
+ "Amount": 2020.2
+ },
+ {
+ "Date": "01/01/20",
+ "Amount": 2021.2
+ },
+ {
+ "Date": "02/01/20",
+ "Amount": 2020.9
+ },
+ {
+ "Date": "03/01/20",
+ "Amount": 2021
+ },
+ {
+ "Date": "04/01/20",
+ "Amount": 2021
+ },
+ {
+ "Date": "05/01/20",
+ "Amount": 2021
+ },
+ {
+ "Date": "06/01/20",
+ "Amount": 2020.3
+ },
+ {
+ "Date": "07/01/20",
+ "Amount": 2020.9
+ },
+ {
+ "Date": "08/01/20",
+ "Amount": 2021.2
+ },
+ {
+ "Date": "09/01/20",
+ "Amount": 2021.5
+ },
+ {
+ "Date": "10/01/20",
+ "Amount": 2020.9
+ },
+ {
+ "Date": "11/01/20",
+ "Amount": 2020.9
+ },
+ {
+ "Date": "12/01/20",
+ "Amount": 2020.8
+ },
+ {
+ "Date": "13/01/20",
+ "Amount": 2020.3
+ },
+ {
+ "Date": "14/01/20",
+ "Amount": 2021.1
+ },
+ {
+ "Date": "15/01/20",
+ "Amount": 2021
+ },
+ {
+ "Date": "16/01/20",
+ "Amount": 2021.4
+ },
+ {
+ "Date": "17/01/20",
+ "Amount": 2021.3
+ },
+ {
+ "Date": "18/01/20",
+ "Amount": 2021.3
+ },
+ {
+ "Date": "19/01/20",
+ "Amount": 2021.3
+ },
+ {
+ "Date": "20/01/20",
+ "Amount": 2020.5
+ },
+ {
+ "Date": "21/01/20",
+ "Amount": 2021
+ },
+ {
+ "Date": "22/01/20",
+ "Amount": 2021.3
+ },
+ {
+ "Date": "23/01/20",
+ "Amount": 2021.1
+ },
+ {
+ "Date": "24/01/20",
+ "Amount": 2021.6
+ },
+ {
+ "Date": "25/01/20",
+ "Amount": 2021.2
+ },
+ {
+ "Date": "26/01/20",
+ "Amount": 2021.4
+ },
+ {
+ "Date": "27/01/20",
+ "Amount": 2020.4
+ },
+ {
+ "Date": "28/01/20",
+ "Amount": 2020.3
+ },
+ {
+ "Date": "29/01/20",
+ "Amount": 2020.4
+ },
+ {
+ "Date": "30/01/20",
+ "Amount": 2021
+ },
+ {
+ "Date": "31/01/20",
+ "Amount": 2021.4
+ },
+ {
+ "Date": "01/02/20",
+ "Amount": 2021.2
+ },
+ {
+ "Date": "02/02/20",
+ "Amount": 2021
+ },
+ {
+ "Date": "03/02/20",
+ "Amount": 2020.5
+ },
+ {
+ "Date": "04/02/20",
+ "Amount": 2020.7
+ },
+ {
+ "Date": "05/02/20",
+ "Amount": 2020.5
+ },
+ {
+ "Date": "06/02/20",
+ "Amount": 2020.8
+ },
+ {
+ "Date": "07/02/20",
+ "Amount": 2021.6
+ },
+ {
+ "Date": "08/02/20",
+ "Amount": 2021.4
+ },
+ {
+ "Date": "09/02/20",
+ "Amount": 2021.1
+ },
+ {
+ "Date": "10/02/20",
+ "Amount": 2020.7
+ },
+ {
+ "Date": "11/02/20",
+ "Amount": 2020.8
+ },
+ {
+ "Date": "12/02/20",
+ "Amount": 2021.2
+ },
+ {
+ "Date": "13/02/20",
+ "Amount": 2020.8
+ },
+ {
+ "Date": "14/02/20",
+ "Amount": 2020.8
+ },
+ {
+ "Date": "15/02/20",
+ "Amount": 2021.6
+ },
+ {
+ "Date": "16/02/20",
+ "Amount": 2021
+ },
+ {
+ "Date": "17/02/20",
+ "Amount": 2020.5
+ },
+ {
+ "Date": "18/02/20",
+ "Amount": 2021.2
+ },
+ {
+ "Date": "19/02/20",
+ "Amount": 2021
+ },
+ {
+ "Date": "20/02/20",
+ "Amount": 2020.9
+ },
+ {
+ "Date": "21/02/20",
+ "Amount": 2021
+ },
+ {
+ "Date": "22/02/20",
+ "Amount": 2020.9
+ },
+ {
+ "Date": "23/02/20",
+ "Amount": 2021.2
+ },
+ {
+ "Date": "24/02/20",
+ "Amount": 2020.6
+ },
+ {
+ "Date": "25/02/20",
+ "Amount": 2020.9
+ },
+ {
+ "Date": "26/02/20",
+ "Amount": 2020.9
+ },
+ {
+ "Date": "27/02/20",
+ "Amount": 2020.7
+ },
+ {
+ "Date": "28/02/20",
+ "Amount": 2021.5
+ },
+ {
+ "Date": "29/02/20",
+ "Amount": 2021.4
+ },
+ {
+ "Date": "01/03/20",
+ "Amount": 2021.6
+ },
+ {
+ "Date": "02/03/20",
+ "Amount": 2021
+ },
+ {
+ "Date": "03/03/20",
+ "Amount": 2020.6
+ },
+ {
+ "Date": "04/03/20",
+ "Amount": 2021
+ },
+ {
+ "Date": "05/03/20",
+ "Amount": 2021.4
+ },
+ {
+ "Date": "06/03/20",
+ "Amount": 2021.3
+ },
+ {
+ "Date": "07/03/20",
+ "Amount": 2020.7
+ },
+ {
+ "Date": "08/03/20",
+ "Amount": 2021.1
+ },
+ {
+ "Date": "09/03/20",
+ "Amount": 2020.2
+ },
+ {
+ "Date": "10/03/20",
+ "Amount": 2020.5
+ },
+ {
+ "Date": "11/03/20",
+ "Amount": 2020.8
+ },
+ {
+ "Date": "12/03/20",
+ "Amount": 2020.5
+ },
+ {
+ "Date": "13/03/20",
+ "Amount": 2020.7
+ },
+ {
+ "Date": "14/03/20",
+ "Amount": 2021.2
+ },
+ {
+ "Date": "15/03/20",
+ "Amount": 2020.9
+ },
+ {
+ "Date": "16/03/20",
+ "Amount": 2020.6
+ },
+ {
+ "Date": "17/03/20",
+ "Amount": 2021
+ },
+ {
+ "Date": "18/03/20",
+ "Amount": 2021.1
+ },
+ {
+ "Date": "19/03/20",
+ "Amount": 2021.3
+ },
+ {
+ "Date": "20/03/20",
+ "Amount": 2021.1
+ },
+ {
+ "Date": "21/03/20",
+ "Amount": 2021.3
+ },
+ {
+ "Date": "22/03/20",
+ "Amount": 2021.5
+ },
+ {
+ "Date": "23/03/20",
+ "Amount": 2020.6
+ },
+ {
+ "Date": "24/03/20",
+ "Amount": 2021.2
+ },
+ {
+ "Date": "25/03/20",
+ "Amount": 2021.4
+ },
+ {
+ "Date": "26/03/20",
+ "Amount": 2021.1
+ },
+ {
+ "Date": "27/03/20",
+ "Amount": 2021.5
+ },
+ {
+ "Date": "28/03/20",
+ "Amount": 2021.5
+ },
+ {
+ "Date": "29/03/20",
+ "Amount": 2021
+ },
+ {
+ "Date": "30/03/20",
+ "Amount": 2020.7
+ },
+ {
+ "Date": "31/03/20",
+ "Amount": 2020.8
+ },
+ {
+ "Date": "01/04/20",
+ "Amount": 2020.8
+ },
+ {
+ "Date": "02/04/20",
+ "Amount": 2020.5
+ },
+ {
+ "Date": "03/04/20",
+ "Amount": 2021.1
+ },
+ {
+ "Date": "04/04/20",
+ "Amount": 2021.5
+ },
+ {
+ "Date": "05/04/20",
+ "Amount": 2021.6
+ },
+ {
+ "Date": "06/04/20",
+ "Amount": 2020.9
+ },
+ {
+ "Date": "07/04/20",
+ "Amount": 2020.8
+ },
+ {
+ "Date": "08/04/20",
+ "Amount": 2021.2
+ },
+ {
+ "Date": "09/04/20",
+ "Amount": 2021.4
+ },
+ {
+ "Date": "10/04/20",
+ "Amount": 2020.9
+ },
+ {
+ "Date": "11/04/20",
+ "Amount": 2020.8
+ },
+ {
+ "Date": "12/04/20",
+ "Amount": 2021.2
+ },
+ {
+ "Date": "13/04/20",
+ "Amount": 2020.3
+ },
+ {
+ "Date": "14/04/20",
+ "Amount": 2020.4
+ },
+ {
+ "Date": "15/04/20",
+ "Amount": 2020.7
+ },
+ {
+ "Date": "16/04/20",
+ "Amount": 2020.6
+ },
+ {
+ "Date": "17/04/20",
+ "Amount": 2020.7
+ },
+ {
+ "Date": "18/04/20",
+ "Amount": 2021.5
+ },
+ {
+ "Date": "19/04/20",
+ "Amount": 2021.7
+ },
+ {
+ "Date": "20/04/20",
+ "Amount": 2020.7
+ },
+ {
+ "Date": "21/04/20",
+ "Amount": 2021
+ },
+ {
+ "Date": "22/04/20",
+ "Amount": 2021.2
+ },
+ {
+ "Date": "23/04/20",
+ "Amount": 2021
+ },
+ {
+ "Date": "24/04/20",
+ "Amount": 2021.1
+ },
+ {
+ "Date": "25/04/20",
+ "Amount": 2021.6
+ },
+ {
+ "Date": "26/04/20",
+ "Amount": 2020.9
+ },
+ {
+ "Date": "27/04/20",
+ "Amount": 2021.1
+ },
+ {
+ "Date": "28/04/20",
+ "Amount": 2020.4
+ },
+ {
+ "Date": "29/04/20",
+ "Amount": 2021.3
+ },
+ {
+ "Date": "30/04/20",
+ "Amount": 2020.8
+ },
+ {
+ "Date": "01/05/20",
+ "Amount": 2021
+ },
+ {
+ "Date": "02/05/20",
+ "Amount": 2021.6
+ },
+ {
+ "Date": "03/05/20",
+ "Amount": 2021.7
+ },
+ {
+ "Date": "04/05/20",
+ "Amount": 2020.9
+ },
+ {
+ "Date": "05/05/20",
+ "Amount": 2020.4
+ },
+ {
+ "Date": "06/05/20",
+ "Amount": 2020.6
+ },
+ {
+ "Date": "07/05/20",
+ "Amount": 2020.8
+ },
+ {
+ "Date": "08/05/20",
+ "Amount": 2020.8
+ },
+ {
+ "Date": "09/05/20",
+ "Amount": 2021.1
+ },
+ {
+ "Date": "10/05/20",
+ "Amount": 2020.8
+ },
+ {
+ "Date": "11/05/20",
+ "Amount": 2021.1
+ },
+ {
+ "Date": "12/05/20",
+ "Amount": 2020.9
+ },
+ {
+ "Date": "13/05/20",
+ "Amount": 2020.8
+ },
+ {
+ "Date": "14/05/20",
+ "Amount": 2021.4
+ },
+ {
+ "Date": "15/05/20",
+ "Amount": 2021.1
+ },
+ {
+ "Date": "16/05/20",
+ "Amount": 2021
+ },
+ {
+ "Date": "17/05/20",
+ "Amount": 2021.5
+ },
+ {
+ "Date": "18/05/20",
+ "Amount": 2020.3
+ },
+ {
+ "Date": "19/05/20",
+ "Amount": 2020.4
+ },
+ {
+ "Date": "20/05/20",
+ "Amount": 2020.7
+ },
+ {
+ "Date": "21/05/20",
+ "Amount": 2020.7
+ },
+ {
+ "Date": "22/05/20",
+ "Amount": 2020.9
+ },
+ {
+ "Date": "23/05/20",
+ "Amount": 2021.3
+ },
+ {
+ "Date": "24/05/20",
+ "Amount": 2021.4
+ },
+ {
+ "Date": "25/05/20",
+ "Amount": 2021.2
+ },
+ {
+ "Date": "26/05/20",
+ "Amount": 2021.2
+ },
+ {
+ "Date": "27/05/20",
+ "Amount": 2020.9
+ },
+ {
+ "Date": "28/05/20",
+ "Amount": 2021.4
+ },
+ {
+ "Date": "29/05/20",
+ "Amount": 2020.8
+ },
+ {
+ "Date": "30/05/20",
+ "Amount": 2020.8
+ },
+ {
+ "Date": "31/05/20",
+ "Amount": 2021
+ },
+ {
+ "Date": "01/06/20",
+ "Amount": 2020.7
+ },
+ {
+ "Date": "02/06/20",
+ "Amount": 2021.2
+ },
+ {
+ "Date": "03/06/20",
+ "Amount": 2021.4
+ },
+ {
+ "Date": "04/06/20",
+ "Amount": 2021.2
+ },
+ {
+ "Date": "05/06/20",
+ "Amount": 2020.6
+ },
+ {
+ "Date": "06/06/20",
+ "Amount": 2020.7
+ },
+ {
+ "Date": "07/06/20",
+ "Amount": 2020.9
+ },
+ {
+ "Date": "08/06/20",
+ "Amount": 2021
+ },
+ {
+ "Date": "09/06/20",
+ "Amount": 2020.7
+ },
+ {
+ "Date": "10/06/20",
+ "Amount": 2020.5
+ },
+ {
+ "Date": "11/06/20",
+ "Amount": 2021
+ },
+ {
+ "Date": "12/06/20",
+ "Amount": 2021
+ },
+ {
+ "Date": "13/06/20",
+ "Amount": 2021.2
+ },
+ {
+ "Date": "14/06/20",
+ "Amount": 2021.7
+ },
+ {
+ "Date": "15/06/20",
+ "Amount": 2020.8
+ },
+ {
+ "Date": "16/06/20",
+ "Amount": 2020.5
+ },
+ {
+ "Date": "17/06/20",
+ "Amount": 2020.8
+ },
+ {
+ "Date": "18/06/20",
+ "Amount": 2020.8
+ },
+ {
+ "Date": "19/06/20",
+ "Amount": 2020.8
+ },
+ {
+ "Date": "20/06/20",
+ "Amount": 2021.1
+ },
+ {
+ "Date": "21/06/20",
+ "Amount": 2021.1
+ },
+ {
+ "Date": "22/06/20",
+ "Amount": 2020.9
+ },
+ {
+ "Date": "23/06/20",
+ "Amount": 2020.9
+ },
+ {
+ "Date": "24/06/20",
+ "Amount": 2020.8
+ },
+ {
+ "Date": "25/06/20",
+ "Amount": 2020.6
+ },
+ {
+ "Date": "26/06/20",
+ "Amount": 2020.6
+ },
+ {
+ "Date": "27/06/20",
+ "Amount": 2020.7
+ },
+ {
+ "Date": "28/06/20",
+ "Amount": 2021.2
+ },
+ {
+ "Date": "29/06/20",
+ "Amount": 2020.6
+ },
+ {
+ "Date": "30/06/20",
+ "Amount": 2020.9
+ },
+ {
+ "Date": "01/07/20",
+ "Amount": 2021.2
+ },
+ {
+ "Date": "02/07/20",
+ "Amount": 2021.1
+ },
+ {
+ "Date": "03/07/20",
+ "Amount": 2021.2
+ },
+ {
+ "Date": "04/07/20",
+ "Amount": 2021.7
+ },
+ {
+ "Date": "05/07/20",
+ "Amount": 2021.6
+ },
+ {
+ "Date": "06/07/20",
+ "Amount": 2020.6
+ },
+ {
+ "Date": "07/07/20",
+ "Amount": 2021.3
+ },
+ {
+ "Date": "08/07/20",
+ "Amount": 2020.8
+ },
+ {
+ "Date": "09/07/20",
+ "Amount": 2021
+ },
+ {
+ "Date": "10/07/20",
+ "Amount": 2020.9
+ },
+ {
+ "Date": "11/07/20",
+ "Amount": 2020.9
+ },
+ {
+ "Date": "12/07/20",
+ "Amount": 2021.6
+ },
+ {
+ "Date": "13/07/20",
+ "Amount": 2021.2
+ },
+ {
+ "Date": "14/07/20",
+ "Amount": 2020.4
+ },
+ {
+ "Date": "15/07/20",
+ "Amount": 2020.8
+ },
+ {
+ "Date": "16/07/20",
+ "Amount": 2020.5
+ },
+ {
+ "Date": "17/07/20",
+ "Amount": 2020.6
+ },
+ {
+ "Date": "18/07/20",
+ "Amount": 2020.9
+ },
+ {
+ "Date": "19/07/20",
+ "Amount": 2021.7
+ },
+ {
+ "Date": "20/07/20",
+ "Amount": 2021.2
+ },
+ {
+ "Date": "21/07/20",
+ "Amount": 2021
+ },
+ {
+ "Date": "22/07/20",
+ "Amount": 2021.2
+ },
+ {
+ "Date": "23/07/20",
+ "Amount": 2021.2
+ },
+ {
+ "Date": "24/07/20",
+ "Amount": 2021.1
+ },
+ {
+ "Date": "25/07/20",
+ "Amount": 2020.8
+ },
+ {
+ "Date": "26/07/20",
+ "Amount": 2020.9
+ },
+ {
+ "Date": "27/07/20",
+ "Amount": 2021.1
+ },
+ {
+ "Date": "28/07/20",
+ "Amount": 2020.6
+ },
+ {
+ "Date": "29/07/20",
+ "Amount": 2020.7
+ },
+ {
+ "Date": "30/07/20",
+ "Amount": 2021.4
+ },
+ {
+ "Date": "31/07/20",
+ "Amount": 2021.2
+ },
+ {
+ "Date": "01/08/20",
+ "Amount": 2021.6
+ },
+ {
+ "Date": "02/08/20",
+ "Amount": 2021.5
+ },
+ {
+ "Date": "03/08/20",
+ "Amount": 2020.6
+ },
+ {
+ "Date": "04/08/20",
+ "Amount": 2020.4
+ },
+ {
+ "Date": "05/08/20",
+ "Amount": 2021.2
+ },
+ {
+ "Date": "06/08/20",
+ "Amount": 2021.1
+ },
+ {
+ "Date": "07/08/20",
+ "Amount": 2021.3
+ },
+ {
+ "Date": "08/08/20",
+ "Amount": 2021.2
+ },
+ {
+ "Date": "09/08/20",
+ "Amount": 2020.9
+ },
+ {
+ "Date": "10/08/20",
+ "Amount": 2021.1
+ },
+ {
+ "Date": "11/08/20",
+ "Amount": 2020.7
+ },
+ {
+ "Date": "12/08/20",
+ "Amount": 2020.9
+ },
+ {
+ "Date": "13/08/20",
+ "Amount": 2020.7
+ },
+ {
+ "Date": "14/08/20",
+ "Amount": 2020.9
+ },
+ {
+ "Date": "15/08/20",
+ "Amount": 2021.6
+ },
+ {
+ "Date": "16/08/20",
+ "Amount": 2020.9
+ },
+ {
+ "Date": "17/08/20",
+ "Amount": 2020.5
+ },
+ {
+ "Date": "18/08/20",
+ "Amount": 2021
+ },
+ {
+ "Date": "19/08/20",
+ "Amount": 2021.3
+ },
+ {
+ "Date": "20/08/20",
+ "Amount": 2021.1
+ },
+ {
+ "Date": "21/08/20",
+ "Amount": 2020.7
+ },
+ {
+ "Date": "22/08/20",
+ "Amount": 2021.5
+ },
+ {
+ "Date": "23/08/20",
+ "Amount": 2021.2
+ },
+ {
+ "Date": "24/08/20",
+ "Amount": 2020.5
+ },
+ {
+ "Date": "25/08/20",
+ "Amount": 2020.4
+ },
+ {
+ "Date": "26/08/20",
+ "Amount": 2020.6
+ },
+ {
+ "Date": "27/08/20",
+ "Amount": 2021.3
+ },
+ {
+ "Date": "28/08/20",
+ "Amount": 2021.5
+ },
+ {
+ "Date": "29/08/20",
+ "Amount": 2020.8
+ },
+ {
+ "Date": "30/08/20",
+ "Amount": 2020.9
+ },
+ {
+ "Date": "31/08/20",
+ "Amount": 2021.1
+ },
+ {
+ "Date": "01/09/20",
+ "Amount": 2021.3
+ },
+ {
+ "Date": "02/09/20",
+ "Amount": 2021.1
+ },
+ {
+ "Date": "03/09/20",
+ "Amount": 2020.5
+ },
+ {
+ "Date": "04/09/20",
+ "Amount": 2021.5
+ },
+ {
+ "Date": "05/09/20",
+ "Amount": 2021.6
+ },
+ {
+ "Date": "06/09/20",
+ "Amount": 2020.9
+ },
+ {
+ "Date": "07/09/20",
+ "Amount": 2020.7
+ },
+ {
+ "Date": "08/09/20",
+ "Amount": 2020.4
+ },
+ {
+ "Date": "09/09/20",
+ "Amount": 2021.3
+ },
+ {
+ "Date": "10/09/20",
+ "Amount": 2020.8
+ },
+ {
+ "Date": "11/09/20",
+ "Amount": 2021.5
+ },
+ {
+ "Date": "12/09/20",
+ "Amount": 2021.4
+ },
+ {
+ "Date": "13/09/20",
+ "Amount": 2020.9
+ },
+ {
+ "Date": "14/09/20",
+ "Amount": 2020.6
+ },
+ {
+ "Date": "15/09/20",
+ "Amount": 2021.1
+ },
+ {
+ "Date": "16/09/20",
+ "Amount": 2020.5
+ },
+ {
+ "Date": "17/09/20",
+ "Amount": 2021.5
+ },
+ {
+ "Date": "18/09/20",
+ "Amount": 2021.5
+ },
+ {
+ "Date": "19/09/20",
+ "Amount": 2021.1
+ },
+ {
+ "Date": "20/09/20",
+ "Amount": 2021.1
+ },
+ {
+ "Date": "21/09/20",
+ "Amount": 2020.5
+ },
+ {
+ "Date": "22/09/20",
+ "Amount": 2021.3
+ },
+ {
+ "Date": "23/09/20",
+ "Amount": 2021.2
+ },
+ {
+ "Date": "24/09/20",
+ "Amount": 2021.1
+ },
+ {
+ "Date": "25/09/20",
+ "Amount": 2020.8
+ },
+ {
+ "Date": "26/09/20",
+ "Amount": 2021.5
+ },
+ {
+ "Date": "27/09/20",
+ "Amount": 2021
+ },
+ {
+ "Date": "28/09/20",
+ "Amount": 2020.3
+ },
+ {
+ "Date": "29/09/20",
+ "Amount": 2021.3
+ },
+ {
+ "Date": "30/09/20",
+ "Amount": 2021
+ },
+ {
+ "Date": "01/10/20",
+ "Amount": 2021.4
+ },
+ {
+ "Date": "02/10/20",
+ "Amount": 2021.5
+ },
+ {
+ "Date": "03/10/20",
+ "Amount": 2021.2
+ },
+ {
+ "Date": "04/10/20",
+ "Amount": 2021.2
+ },
+ {
+ "Date": "05/10/20",
+ "Amount": 2021
+ },
+ {
+ "Date": "06/10/20",
+ "Amount": 2020.5
+ },
+ {
+ "Date": "07/10/20",
+ "Amount": 2021.3
+ },
+ {
+ "Date": "08/10/20",
+ "Amount": 2020.8
+ },
+ {
+ "Date": "09/10/20",
+ "Amount": 2020.8
+ },
+ {
+ "Date": "10/10/20",
+ "Amount": 2021
+ },
+ {
+ "Date": "11/10/20",
+ "Amount": 2021.5
+ },
+ {
+ "Date": "12/10/20",
+ "Amount": 2020.6
+ },
+ {
+ "Date": "13/10/20",
+ "Amount": 2020.6
+ },
+ {
+ "Date": "14/10/20",
+ "Amount": 2020.4
+ },
+ {
+ "Date": "15/10/20",
+ "Amount": 2021.4
+ },
+ {
+ "Date": "16/10/20",
+ "Amount": 2021.4
+ },
+ {
+ "Date": "17/10/20",
+ "Amount": 2021.4
+ },
+ {
+ "Date": "18/10/20",
+ "Amount": 2021
+ },
+ {
+ "Date": "19/10/20",
+ "Amount": 2020.3
+ },
+ {
+ "Date": "20/10/20",
+ "Amount": 2020.6
+ },
+ {
+ "Date": "21/10/20",
+ "Amount": 2020.8
+ },
+ {
+ "Date": "22/10/20",
+ "Amount": 2021.1
+ },
+ {
+ "Date": "23/10/20",
+ "Amount": 2020.7
+ },
+ {
+ "Date": "24/10/20",
+ "Amount": 2021.1
+ },
+ {
+ "Date": "25/10/20",
+ "Amount": 2021.7
+ },
+ {
+ "Date": "26/10/20",
+ "Amount": 2020.4
+ },
+ {
+ "Date": "27/10/20",
+ "Amount": 2021.2
+ },
+ {
+ "Date": "28/10/20",
+ "Amount": 2020.8
+ },
+ {
+ "Date": "29/10/20",
+ "Amount": 2021.2
+ },
+ {
+ "Date": "30/10/20",
+ "Amount": 2021.1
+ },
+ {
+ "Date": "31/10/20",
+ "Amount": 2021.1
+ },
+ {
+ "Date": "01/11/20",
+ "Amount": 2021.1
+ },
+ {
+ "Date": "02/11/20",
+ "Amount": 2020.6
+ },
+ {
+ "Date": "03/11/20",
+ "Amount": 2020.7
+ },
+ {
+ "Date": "04/11/20",
+ "Amount": 2020.7
+ },
+ {
+ "Date": "05/11/20",
+ "Amount": 2020.8
+ },
+ {
+ "Date": "06/11/20",
+ "Amount": 2021.3
+ },
+ {
+ "Date": "07/11/20",
+ "Amount": 2021.6
+ },
+ {
+ "Date": "08/11/20",
+ "Amount": 2021.3
+ },
+ {
+ "Date": "09/11/20",
+ "Amount": 2020.7
+ },
+ {
+ "Date": "10/11/20",
+ "Amount": 2020.4
+ },
+ {
+ "Date": "11/11/20",
+ "Amount": 2020.9
+ },
+ {
+ "Date": "12/11/20",
+ "Amount": 2021.4
+ },
+ {
+ "Date": "13/11/20",
+ "Amount": 2021.3
+ },
+ {
+ "Date": "14/11/20",
+ "Amount": 2020.8
+ },
+ {
+ "Date": "15/11/20",
+ "Amount": 2021.1
+ },
+ {
+ "Date": "16/11/20",
+ "Amount": 2020.9
+ },
+ {
+ "Date": "17/11/20",
+ "Amount": 2021.3
+ },
+ {
+ "Date": "18/11/20",
+ "Amount": 2021.2
+ },
+ {
+ "Date": "19/11/20",
+ "Amount": 2020.9
+ },
+ {
+ "Date": "20/11/20",
+ "Amount": 2020.7
+ },
+ {
+ "Date": "21/11/20",
+ "Amount": 2021.7
+ },
+ {
+ "Date": "22/11/20",
+ "Amount": 2021.4
+ },
+ {
+ "Date": "23/11/20",
+ "Amount": 2021.2
+ },
+ {
+ "Date": "24/11/20",
+ "Amount": 2021.1
+ },
+ {
+ "Date": "25/11/20",
+ "Amount": 2020.5
+ },
+ {
+ "Date": "26/11/20",
+ "Amount": 2020.8
+ },
+ {
+ "Date": "27/11/20",
+ "Amount": 2020.9
+ },
+ {
+ "Date": "28/11/20",
+ "Amount": 2021
+ },
+ {
+ "Date": "29/11/20",
+ "Amount": 2021.3
+ },
+ {
+ "Date": "30/11/20",
+ "Amount": 2020.6
+ },
+ {
+ "Date": "01/12/20",
+ "Amount": 2020.6
+ },
+ {
+ "Date": "02/12/20",
+ "Amount": 2021.3
+ },
+ {
+ "Date": "03/12/20",
+ "Amount": 2020.6
+ },
+ {
+ "Date": "04/12/20",
+ "Amount": 2020.7
+ },
+ {
+ "Date": "05/12/20",
+ "Amount": 2021.3
+ },
+ {
+ "Date": "06/12/20",
+ "Amount": 2021.2
+ },
+ {
+ "Date": "07/12/20",
+ "Amount": 2020.7
+ },
+ {
+ "Date": "08/12/20",
+ "Amount": 2020.6
+ },
+ {
+ "Date": "09/12/20",
+ "Amount": 2021.1
+ },
+ {
+ "Date": "10/12/20",
+ "Amount": 2021.2
+ },
+ {
+ "Date": "11/12/20",
+ "Amount": 2021
+ },
+ {
+ "Date": "12/12/20",
+ "Amount": 2021
+ },
+ {
+ "Date": "13/12/20",
+ "Amount": 2021.2
+ },
+ {
+ "Date": "14/12/20",
+ "Amount": 2020.5
+ },
+ {
+ "Date": "15/12/20",
+ "Amount": 2021
+ },
+ {
+ "Date": "16/12/20",
+ "Amount": 2020.6
+ },
+ {
+ "Date": "17/12/20",
+ "Amount": 2020.6
+ },
+ {
+ "Date": "18/12/20",
+ "Amount": 2020.6
+ },
+ {
+ "Date": "19/12/20",
+ "Amount": 2021.3
+ },
+ {
+ "Date": "20/12/20",
+ "Amount": 2020.9
+ },
+ {
+ "Date": "21/12/20",
+ "Amount": 2020.8
+ },
+ {
+ "Date": "22/12/20",
+ "Amount": 2020.8
+ },
+ {
+ "Date": "23/12/20",
+ "Amount": 2021
+ },
+ {
+ "Date": "24/12/20",
+ "Amount": 2020.9
+ },
+ {
+ "Date": "25/12/20",
+ "Amount": 2021.3
+ },
+ {
+ "Date": "26/12/20",
+ "Amount": 2021.2
+ },
+ {
+ "Date": "27/12/20",
+ "Amount": 2021.5
+ },
+ {
+ "Date": "28/12/20",
+ "Amount": 2020.5
+ },
+ {
+ "Date": "29/12/20",
+ "Amount": 2020.4
+ },
+ {
+ "Date": "30/12/20",
+ "Amount": 2021.1
+ },
+ {
+ "Date": "31/12/20",
+ "Amount": 2021.1
+ },
+ {
+ "Date": "01/01/21",
+ "Amount": 2022.5
+ },
+ {
+ "Date": "02/01/21",
+ "Amount": 2021.9
+ },
+ {
+ "Date": "03/01/21",
+ "Amount": 2022.2
+ },
+ {
+ "Date": "04/01/21",
+ "Amount": 2021.5
+ },
+ {
+ "Date": "05/01/21",
+ "Amount": 2022.1
+ },
+ {
+ "Date": "06/01/21",
+ "Amount": 2022.3
+ },
+ {
+ "Date": "07/01/21",
+ "Amount": 2021.8
+ },
+ {
+ "Date": "08/01/21",
+ "Amount": 2021.7
+ },
+ {
+ "Date": "09/01/21",
+ "Amount": 2021.8
+ },
+ {
+ "Date": "10/01/21",
+ "Amount": 2021.9
+ },
+ {
+ "Date": "11/01/21",
+ "Amount": 2021.6
+ },
+ {
+ "Date": "12/01/21",
+ "Amount": 2021.6
+ },
+ {
+ "Date": "13/01/21",
+ "Amount": 2022.1
+ },
+ {
+ "Date": "14/01/21",
+ "Amount": 2022
+ },
+ {
+ "Date": "15/01/21",
+ "Amount": 2022.4
+ },
+ {
+ "Date": "16/01/21",
+ "Amount": 2022.5
+ },
+ {
+ "Date": "17/01/21",
+ "Amount": 2022.3
+ },
+ {
+ "Date": "18/01/21",
+ "Amount": 2021.8
+ },
+ {
+ "Date": "19/01/21",
+ "Amount": 2021.8
+ },
+ {
+ "Date": "20/01/21",
+ "Amount": 2021.6
+ },
+ {
+ "Date": "21/01/21",
+ "Amount": 2021.6
+ },
+ {
+ "Date": "22/01/21",
+ "Amount": 2022.4
+ },
+ {
+ "Date": "23/01/21",
+ "Amount": 2022.3
+ },
+ {
+ "Date": "24/01/21",
+ "Amount": 2022
+ },
+ {
+ "Date": "25/01/21",
+ "Amount": 2021.9
+ },
+ {
+ "Date": "26/01/21",
+ "Amount": 2021.6
+ },
+ {
+ "Date": "27/01/21",
+ "Amount": 2021.4
+ },
+ {
+ "Date": "28/01/21",
+ "Amount": 2022.3
+ },
+ {
+ "Date": "29/01/21",
+ "Amount": 2022.5
+ },
+ {
+ "Date": "30/01/21",
+ "Amount": 2022
+ },
+ {
+ "Date": "31/01/21",
+ "Amount": 2022.6
+ },
+ {
+ "Date": "01/02/21",
+ "Amount": 2022
+ },
+ {
+ "Date": "02/02/21",
+ "Amount": 2021.4
+ },
+ {
+ "Date": "03/02/21",
+ "Amount": 2022
+ },
+ {
+ "Date": "04/02/21",
+ "Amount": 2022.1
+ },
+ {
+ "Date": "05/02/21",
+ "Amount": 2022.4
+ },
+ {
+ "Date": "06/02/21",
+ "Amount": 2022.6
+ },
+ {
+ "Date": "07/02/21",
+ "Amount": 2021.8
+ },
+ {
+ "Date": "08/02/21",
+ "Amount": 2022.1
+ },
+ {
+ "Date": "09/02/21",
+ "Amount": 2021.5
+ },
+ {
+ "Date": "10/02/21",
+ "Amount": 2022
+ },
+ {
+ "Date": "11/02/21",
+ "Amount": 2021.6
+ },
+ {
+ "Date": "12/02/21",
+ "Amount": 2022.4
+ },
+ {
+ "Date": "13/02/21",
+ "Amount": 2022.5
+ },
+ {
+ "Date": "14/02/21",
+ "Amount": 2022
+ },
+ {
+ "Date": "15/02/21",
+ "Amount": 2021.2
+ },
+ {
+ "Date": "16/02/21",
+ "Amount": 2021.5
+ },
+ {
+ "Date": "17/02/21",
+ "Amount": 2021.5
+ },
+ {
+ "Date": "18/02/21",
+ "Amount": 2021.7
+ },
+ {
+ "Date": "19/02/21",
+ "Amount": 2022.1
+ },
+ {
+ "Date": "20/02/21",
+ "Amount": 2022.4
+ },
+ {
+ "Date": "21/02/21",
+ "Amount": 2022.2
+ },
+ {
+ "Date": "22/02/21",
+ "Amount": 2022.2
+ },
+ {
+ "Date": "23/02/21",
+ "Amount": 2021.4
+ },
+ {
+ "Date": "24/02/21",
+ "Amount": 2022
+ },
+ {
+ "Date": "25/02/21",
+ "Amount": 2022.1
+ },
+ {
+ "Date": "26/02/21",
+ "Amount": 2021.9
+ },
+ {
+ "Date": "27/02/21",
+ "Amount": 2022
+ },
+ {
+ "Date": "28/02/21",
+ "Amount": 2021.8
+ },
+ {
+ "Date": "01/03/21",
+ "Amount": 2022
+ },
+ {
+ "Date": "02/03/21",
+ "Amount": 2021.6
+ },
+ {
+ "Date": "03/03/21",
+ "Amount": 2021.7
+ },
+ {
+ "Date": "04/03/21",
+ "Amount": 2021.8
+ },
+ {
+ "Date": "05/03/21",
+ "Amount": 2022.3
+ },
+ {
+ "Date": "06/03/21",
+ "Amount": 2022.7
+ },
+ {
+ "Date": "07/03/21",
+ "Amount": 2022.2
+ },
+ {
+ "Date": "08/03/21",
+ "Amount": 2021.4
+ },
+ {
+ "Date": "09/03/21",
+ "Amount": 2021.8
+ },
+ {
+ "Date": "10/03/21",
+ "Amount": 2021.7
+ },
+ {
+ "Date": "11/03/21",
+ "Amount": 2022.1
+ },
+ {
+ "Date": "12/03/21",
+ "Amount": 2021.7
+ },
+ {
+ "Date": "13/03/21",
+ "Amount": 2021.9
+ },
+ {
+ "Date": "14/03/21",
+ "Amount": 2022.1
+ },
+ {
+ "Date": "15/03/21",
+ "Amount": 2021.8
+ },
+ {
+ "Date": "16/03/21",
+ "Amount": 2021.5
+ },
+ {
+ "Date": "17/03/21",
+ "Amount": 2021.4
+ },
+ {
+ "Date": "18/03/21",
+ "Amount": 2022.2
+ },
+ {
+ "Date": "19/03/21",
+ "Amount": 2022.6
+ },
+ {
+ "Date": "20/03/21",
+ "Amount": 2022.3
+ },
+ {
+ "Date": "21/03/21",
+ "Amount": 2022.1
+ },
+ {
+ "Date": "22/03/21",
+ "Amount": 2021.4
+ },
+ {
+ "Date": "23/03/21",
+ "Amount": 2022
+ },
+ {
+ "Date": "24/03/21",
+ "Amount": 2022.3
+ },
+ {
+ "Date": "25/03/21",
+ "Amount": 2021.9
+ },
+ {
+ "Date": "26/03/21",
+ "Amount": 2022.2
+ },
+ {
+ "Date": "27/03/21",
+ "Amount": 2022.3
+ },
+ {
+ "Date": "28/03/21",
+ "Amount": 2022.7
+ },
+ {
+ "Date": "29/03/21",
+ "Amount": 2021.9
+ },
+ {
+ "Date": "30/03/21",
+ "Amount": 2022.2
+ },
+ {
+ "Date": "31/03/21",
+ "Amount": 2021.5
+ },
+ {
+ "Date": "01/04/21",
+ "Amount": 2021.5
+ },
+ {
+ "Date": "02/04/21",
+ "Amount": 2022.2
+ },
+ {
+ "Date": "03/04/21",
+ "Amount": 2022.1
+ },
+ {
+ "Date": "04/04/21",
+ "Amount": 2022.1
+ },
+ {
+ "Date": "05/04/21",
+ "Amount": 2022.1
+ },
+ {
+ "Date": "06/04/21",
+ "Amount": 2022
+ },
+ {
+ "Date": "07/04/21",
+ "Amount": 2022.4
+ },
+ {
+ "Date": "08/04/21",
+ "Amount": 2022.3
+ },
+ {
+ "Date": "09/04/21",
+ "Amount": 2021.9
+ },
+ {
+ "Date": "10/04/21",
+ "Amount": 2022.1
+ },
+ {
+ "Date": "11/04/21",
+ "Amount": 2021.9
+ },
+ {
+ "Date": "12/04/21",
+ "Amount": 2021.5
+ },
+ {
+ "Date": "13/04/21",
+ "Amount": 2021.9
+ },
+ {
+ "Date": "14/04/21",
+ "Amount": 2021.6
+ },
+ {
+ "Date": "15/04/21",
+ "Amount": 2022
+ },
+ {
+ "Date": "16/04/21",
+ "Amount": 2021.6
+ },
+ {
+ "Date": "17/04/21",
+ "Amount": 2021.9
+ },
+ {
+ "Date": "18/04/21",
+ "Amount": 2022.3
+ },
+ {
+ "Date": "19/04/21",
+ "Amount": 2021.7
+ },
+ {
+ "Date": "20/04/21",
+ "Amount": 2022
+ },
+ {
+ "Date": "21/04/21",
+ "Amount": 2021.4
+ },
+ {
+ "Date": "22/04/21",
+ "Amount": 2022.5
+ },
+ {
+ "Date": "23/04/21",
+ "Amount": 2022
+ },
+ {
+ "Date": "24/04/21",
+ "Amount": 2022.1
+ },
+ {
+ "Date": "25/04/21",
+ "Amount": 2022.2
+ },
+ {
+ "Date": "26/04/21",
+ "Amount": 2022.2
+ },
+ {
+ "Date": "27/04/21",
+ "Amount": 2021.3
+ },
+ {
+ "Date": "28/04/21",
+ "Amount": 2022.3
+ },
+ {
+ "Date": "29/04/21",
+ "Amount": 2021.8
+ },
+ {
+ "Date": "30/04/21",
+ "Amount": 2022.1
+ },
+ {
+ "Date": "01/05/21",
+ "Amount": 2022.5
+ },
+ {
+ "Date": "02/05/21",
+ "Amount": 2021.8
+ },
+ {
+ "Date": "03/05/21",
+ "Amount": 2021.8
+ },
+ {
+ "Date": "04/05/21",
+ "Amount": 2021.6
+ },
+ {
+ "Date": "05/05/21",
+ "Amount": 2021.9
+ },
+ {
+ "Date": "06/05/21",
+ "Amount": 2021.6
+ },
+ {
+ "Date": "07/05/21",
+ "Amount": 2021.7
+ },
+ {
+ "Date": "08/05/21",
+ "Amount": 2022.4
+ },
+ {
+ "Date": "09/05/21",
+ "Amount": 2022.5
+ },
+ {
+ "Date": "10/05/21",
+ "Amount": 2022
+ },
+ {
+ "Date": "11/05/21",
+ "Amount": 2021.4
+ },
+ {
+ "Date": "12/05/21",
+ "Amount": 2021.6
+ },
+ {
+ "Date": "13/05/21",
+ "Amount": 2021.6
+ },
+ {
+ "Date": "14/05/21",
+ "Amount": 2021.7
+ },
+ {
+ "Date": "15/05/21",
+ "Amount": 2021.7
+ },
+ {
+ "Date": "16/05/21",
+ "Amount": 2022.5
+ },
+ {
+ "Date": "17/05/21",
+ "Amount": 2022
+ },
+ {
+ "Date": "18/05/21",
+ "Amount": 2022.3
+ },
+ {
+ "Date": "19/05/21",
+ "Amount": 2021.5
+ },
+ {
+ "Date": "20/05/21",
+ "Amount": 2021.8
+ },
+ {
+ "Date": "21/05/21",
+ "Amount": 2021.6
+ },
+ {
+ "Date": "22/05/21",
+ "Amount": 2022.6
+ },
+ {
+ "Date": "23/05/21",
+ "Amount": 2022
+ },
+ {
+ "Date": "24/05/21",
+ "Amount": 2021.7
+ },
+ {
+ "Date": "25/05/21",
+ "Amount": 2022.2
+ },
+ {
+ "Date": "26/05/21",
+ "Amount": 2021.5
+ },
+ {
+ "Date": "27/05/21",
+ "Amount": 2021.7
+ },
+ {
+ "Date": "28/05/21",
+ "Amount": 2021.9
+ },
+ {
+ "Date": "29/05/21",
+ "Amount": 2022.6
+ },
+ {
+ "Date": "30/05/21",
+ "Amount": 2022.7
+ },
+ {
+ "Date": "31/05/21",
+ "Amount": 2022.1
+ },
+ {
+ "Date": "01/06/21",
+ "Amount": 2022
+ },
+ {
+ "Date": "02/06/21",
+ "Amount": 2021.6
+ },
+ {
+ "Date": "03/06/21",
+ "Amount": 2022.4
+ },
+ {
+ "Date": "04/06/21",
+ "Amount": 2021.8
+ },
+ {
+ "Date": "05/06/21",
+ "Amount": 2022.2
+ },
+ {
+ "Date": "06/06/21",
+ "Amount": 2022.7
+ },
+ {
+ "Date": "07/06/21",
+ "Amount": 2021.2
+ },
+ {
+ "Date": "08/06/21",
+ "Amount": 2021.7
+ },
+ {
+ "Date": "09/06/21",
+ "Amount": 2022.1
+ },
+ {
+ "Date": "10/06/21",
+ "Amount": 2022
+ },
+ {
+ "Date": "11/06/21",
+ "Amount": 2021.6
+ },
+ {
+ "Date": "12/06/21",
+ "Amount": 2022.6
+ },
+ {
+ "Date": "13/06/21",
+ "Amount": 2022.6
+ },
+ {
+ "Date": "14/06/21",
+ "Amount": 2021.7
+ },
+ {
+ "Date": "15/06/21",
+ "Amount": 2021.6
+ },
+ {
+ "Date": "16/06/21",
+ "Amount": 2022.3
+ },
+ {
+ "Date": "17/06/21",
+ "Amount": 2022.3
+ },
+ {
+ "Date": "18/06/21",
+ "Amount": 2021.9
+ },
+ {
+ "Date": "19/06/21",
+ "Amount": 2022.5
+ },
+ {
+ "Date": "20/06/21",
+ "Amount": 2022.8
+ },
+ {
+ "Date": "21/06/21",
+ "Amount": 2021.7
+ },
+ {
+ "Date": "22/06/21",
+ "Amount": 2021.5
+ },
+ {
+ "Date": "23/06/21",
+ "Amount": 2021.5
+ },
+ {
+ "Date": "24/06/21",
+ "Amount": 2021.6
+ },
+ {
+ "Date": "25/06/21",
+ "Amount": 2022.3
+ },
+ {
+ "Date": "26/06/21",
+ "Amount": 2021.8
+ },
+ {
+ "Date": "27/06/21",
+ "Amount": 2021.9
+ },
+ {
+ "Date": "28/06/21",
+ "Amount": 2021.7
+ },
+ {
+ "Date": "29/06/21",
+ "Amount": 2021.6
+ },
+ {
+ "Date": "30/06/21",
+ "Amount": 2022.2
+ },
+ {
+ "Date": "01/07/21",
+ "Amount": 2022.5
+ },
+ {
+ "Date": "02/07/21",
+ "Amount": 2021.9
+ },
+ {
+ "Date": "03/07/21",
+ "Amount": 2021.9
+ },
+ {
+ "Date": "04/07/21",
+ "Amount": 2022.4
+ },
+ {
+ "Date": "05/07/21",
+ "Amount": 2022
+ },
+ {
+ "Date": "06/07/21",
+ "Amount": 2021.9
+ },
+ {
+ "Date": "07/07/21",
+ "Amount": 2021.8
+ },
+ {
+ "Date": "08/07/21",
+ "Amount": 2022.1
+ },
+ {
+ "Date": "09/07/21",
+ "Amount": 2021.8
+ },
+ {
+ "Date": "10/07/21",
+ "Amount": 2022
+ },
+ {
+ "Date": "11/07/21",
+ "Amount": 2022
+ },
+ {
+ "Date": "12/07/21",
+ "Amount": 2021.3
+ },
+ {
+ "Date": "13/07/21",
+ "Amount": 2021.6
+ },
+ {
+ "Date": "14/07/21",
+ "Amount": 2022.3
+ },
+ {
+ "Date": "15/07/21",
+ "Amount": 2021.5
+ },
+ {
+ "Date": "16/07/21",
+ "Amount": 2022.1
+ },
+ {
+ "Date": "17/07/21",
+ "Amount": 2022.5
+ },
+ {
+ "Date": "18/07/21",
+ "Amount": 2022.1
+ },
+ {
+ "Date": "19/07/21",
+ "Amount": 2021.9
+ },
+ {
+ "Date": "20/07/21",
+ "Amount": 2021.6
+ },
+ {
+ "Date": "21/07/21",
+ "Amount": 2021.4
+ },
+ {
+ "Date": "22/07/21",
+ "Amount": 2021.7
+ },
+ {
+ "Date": "23/07/21",
+ "Amount": 2021.6
+ },
+ {
+ "Date": "24/07/21",
+ "Amount": 2022
+ },
+ {
+ "Date": "25/07/21",
+ "Amount": 2022.2
+ },
+ {
+ "Date": "26/07/21",
+ "Amount": 2021.5
+ },
+ {
+ "Date": "27/07/21",
+ "Amount": 2021.8
+ },
+ {
+ "Date": "28/07/21",
+ "Amount": 2021.5
+ },
+ {
+ "Date": "29/07/21",
+ "Amount": 2022
+ },
+ {
+ "Date": "30/07/21",
+ "Amount": 2022.4
+ },
+ {
+ "Date": "31/07/21",
+ "Amount": 2022.4
+ },
+ {
+ "Date": "01/08/21",
+ "Amount": 2022.7
+ },
+ {
+ "Date": "02/08/21",
+ "Amount": 2021.3
+ },
+ {
+ "Date": "03/08/21",
+ "Amount": 2021.5
+ },
+ {
+ "Date": "04/08/21",
+ "Amount": 2021.5
+ },
+ {
+ "Date": "05/08/21",
+ "Amount": 2021.8
+ },
+ {
+ "Date": "06/08/21",
+ "Amount": 2022.4
+ },
+ {
+ "Date": "07/08/21",
+ "Amount": 2022.4
+ },
+ {
+ "Date": "08/08/21",
+ "Amount": 2022.3
+ },
+ {
+ "Date": "09/08/21",
+ "Amount": 2022.1
+ },
+ {
+ "Date": "10/08/21",
+ "Amount": 2021.8
+ },
+ {
+ "Date": "11/08/21",
+ "Amount": 2021.7
+ },
+ {
+ "Date": "12/08/21",
+ "Amount": 2022.1
+ },
+ {
+ "Date": "13/08/21",
+ "Amount": 2022.4
+ },
+ {
+ "Date": "14/08/21",
+ "Amount": 2022.5
+ },
+ {
+ "Date": "15/08/21",
+ "Amount": 2022.7
+ },
+ {
+ "Date": "16/08/21",
+ "Amount": 2021.9
+ },
+ {
+ "Date": "17/08/21",
+ "Amount": 2021.4
+ },
+ {
+ "Date": "18/08/21",
+ "Amount": 2022.1
+ },
+ {
+ "Date": "19/08/21",
+ "Amount": 2022.4
+ },
+ {
+ "Date": "20/08/21",
+ "Amount": 2022.3
+ },
+ {
+ "Date": "21/08/21",
+ "Amount": 2022.3
+ },
+ {
+ "Date": "22/08/21",
+ "Amount": 2022.6
+ },
+ {
+ "Date": "23/08/21",
+ "Amount": 2021.7
+ },
+ {
+ "Date": "24/08/21",
+ "Amount": 2022.2
+ },
+ {
+ "Date": "25/08/21",
+ "Amount": 2022.3
+ },
+ {
+ "Date": "26/08/21",
+ "Amount": 2022.1
+ },
+ {
+ "Date": "27/08/21",
+ "Amount": 2021.9
+ },
+ {
+ "Date": "28/08/21",
+ "Amount": 2022.2
+ },
+ {
+ "Date": "29/08/21",
+ "Amount": 2021.9
+ },
+ {
+ "Date": "30/08/21",
+ "Amount": 2021.6
+ },
+ {
+ "Date": "31/08/21",
+ "Amount": 2021.6
+ },
+ {
+ "Date": "01/09/21",
+ "Amount": 2022.1
+ },
+ {
+ "Date": "02/09/21",
+ "Amount": 2021.8
+ },
+ {
+ "Date": "03/09/21",
+ "Amount": 2022.4
+ },
+ {
+ "Date": "04/09/21",
+ "Amount": 2022.4
+ },
+ {
+ "Date": "05/09/21",
+ "Amount": 2022
+ },
+ {
+ "Date": "06/09/21",
+ "Amount": 2022.2
+ },
+ {
+ "Date": "07/09/21",
+ "Amount": 2021.8
+ },
+ {
+ "Date": "08/09/21",
+ "Amount": 2022.3
+ },
+ {
+ "Date": "09/09/21",
+ "Amount": 2022.2
+ },
+ {
+ "Date": "10/09/21",
+ "Amount": 2022.4
+ },
+ {
+ "Date": "11/09/21",
+ "Amount": 2021.7
+ },
+ {
+ "Date": "12/09/21",
+ "Amount": 2022
+ },
+ {
+ "Date": "13/09/21",
+ "Amount": 2021.6
+ },
+ {
+ "Date": "14/09/21",
+ "Amount": 2021.6
+ },
+ {
+ "Date": "15/09/21",
+ "Amount": 2021.7
+ },
+ {
+ "Date": "16/09/21",
+ "Amount": 2021.5
+ },
+ {
+ "Date": "17/09/21",
+ "Amount": 2022.4
+ },
+ {
+ "Date": "18/09/21",
+ "Amount": 2022.5
+ },
+ {
+ "Date": "19/09/21",
+ "Amount": 2022.5
+ },
+ {
+ "Date": "20/09/21",
+ "Amount": 2021.8
+ },
+ {
+ "Date": "21/09/21",
+ "Amount": 2022.1
+ },
+ {
+ "Date": "22/09/21",
+ "Amount": 2022.3
+ },
+ {
+ "Date": "23/09/21",
+ "Amount": 2022.5
+ },
+ {
+ "Date": "24/09/21",
+ "Amount": 2022.1
+ },
+ {
+ "Date": "25/09/21",
+ "Amount": 2021.9
+ },
+ {
+ "Date": "26/09/21",
+ "Amount": 2022.5
+ },
+ {
+ "Date": "27/09/21",
+ "Amount": 2021.7
+ },
+ {
+ "Date": "28/09/21",
+ "Amount": 2022.3
+ },
+ {
+ "Date": "29/09/21",
+ "Amount": 2021.9
+ },
+ {
+ "Date": "30/09/21",
+ "Amount": 2022.1
+ },
+ {
+ "Date": "01/10/21",
+ "Amount": 2022.2
+ },
+ {
+ "Date": "02/10/21",
+ "Amount": 2022.1
+ },
+ {
+ "Date": "03/10/21",
+ "Amount": 2022.8
+ },
+ {
+ "Date": "04/10/21",
+ "Amount": 2022.1
+ },
+ {
+ "Date": "05/10/21",
+ "Amount": 2022.3
+ },
+ {
+ "Date": "06/10/21",
+ "Amount": 2022.4
+ },
+ {
+ "Date": "07/10/21",
+ "Amount": 2022.1
+ },
+ {
+ "Date": "08/10/21",
+ "Amount": 2021.6
+ },
+ {
+ "Date": "09/10/21",
+ "Amount": 2022
+ },
+ {
+ "Date": "10/10/21",
+ "Amount": 2022
+ },
+ {
+ "Date": "11/10/21",
+ "Amount": 2021.9
+ },
+ {
+ "Date": "12/10/21",
+ "Amount": 2021.4
+ },
+ {
+ "Date": "13/10/21",
+ "Amount": 2021.5
+ },
+ {
+ "Date": "14/10/21",
+ "Amount": 2022.2
+ },
+ {
+ "Date": "15/10/21",
+ "Amount": 2022.5
+ },
+ {
+ "Date": "16/10/21",
+ "Amount": 2022.7
+ },
+ {
+ "Date": "17/10/21",
+ "Amount": 2022.5
+ },
+ {
+ "Date": "18/10/21",
+ "Amount": 2022.2
+ },
+ {
+ "Date": "19/10/21",
+ "Amount": 2021.8
+ },
+ {
+ "Date": "20/10/21",
+ "Amount": 2021.4
+ },
+ {
+ "Date": "21/10/21",
+ "Amount": 2022
+ },
+ {
+ "Date": "22/10/21",
+ "Amount": 2022.1
+ },
+ {
+ "Date": "23/10/21",
+ "Amount": 2021.9
+ },
+ {
+ "Date": "24/10/21",
+ "Amount": 2022
+ },
+ {
+ "Date": "25/10/21",
+ "Amount": 2022.2
+ },
+ {
+ "Date": "26/10/21",
+ "Amount": 2022.2
+ },
+ {
+ "Date": "27/10/21",
+ "Amount": 2021.9
+ },
+ {
+ "Date": "28/10/21",
+ "Amount": 2022.5
+ },
+ {
+ "Date": "29/10/21",
+ "Amount": 2022.5
+ },
+ {
+ "Date": "30/10/21",
+ "Amount": 2022.4
+ },
+ {
+ "Date": "31/10/21",
+ "Amount": 2022.6
+ },
+ {
+ "Date": "01/11/21",
+ "Amount": 2021.9
+ },
+ {
+ "Date": "02/11/21",
+ "Amount": 2021.4
+ },
+ {
+ "Date": "03/11/21",
+ "Amount": 2021.8
+ },
+ {
+ "Date": "04/11/21",
+ "Amount": 2021.6
+ },
+ {
+ "Date": "05/11/21",
+ "Amount": 2022.5
+ },
+ {
+ "Date": "06/11/21",
+ "Amount": 2022.4
+ },
+ {
+ "Date": "07/11/21",
+ "Amount": 2022.5
+ },
+ {
+ "Date": "08/11/21",
+ "Amount": 2021.9
+ },
+ {
+ "Date": "09/11/21",
+ "Amount": 2021.7
+ },
+ {
+ "Date": "10/11/21",
+ "Amount": 2022.2
+ },
+ {
+ "Date": "11/11/21",
+ "Amount": 2021.6
+ },
+ {
+ "Date": "12/11/21",
+ "Amount": 2022.3
+ },
+ {
+ "Date": "13/11/21",
+ "Amount": 2022.4
+ },
+ {
+ "Date": "14/11/21",
+ "Amount": 2021.9
+ },
+ {
+ "Date": "15/11/21",
+ "Amount": 2021.3
+ },
+ {
+ "Date": "16/11/21",
+ "Amount": 2021.6
+ },
+ {
+ "Date": "17/11/21",
+ "Amount": 2022.4
+ },
+ {
+ "Date": "18/11/21",
+ "Amount": 2022.3
+ },
+ {
+ "Date": "19/11/21",
+ "Amount": 2022.1
+ },
+ {
+ "Date": "20/11/21",
+ "Amount": 2021.9
+ },
+ {
+ "Date": "21/11/21",
+ "Amount": 2022.3
+ },
+ {
+ "Date": "22/11/21",
+ "Amount": 2021.6
+ },
+ {
+ "Date": "23/11/21",
+ "Amount": 2021.4
+ },
+ {
+ "Date": "24/11/21",
+ "Amount": 2021.6
+ },
+ {
+ "Date": "25/11/21",
+ "Amount": 2022.2
+ },
+ {
+ "Date": "26/11/21",
+ "Amount": 2022.4
+ },
+ {
+ "Date": "27/11/21",
+ "Amount": 2021.9
+ },
+ {
+ "Date": "28/11/21",
+ "Amount": 2022.5
+ },
+ {
+ "Date": "29/11/21",
+ "Amount": 2022
+ },
+ {
+ "Date": "30/11/21",
+ "Amount": 2021.8
+ },
+ {
+ "Date": "01/12/21",
+ "Amount": 2021.6
+ },
+ {
+ "Date": "02/12/21",
+ "Amount": 2022.1
+ },
+ {
+ "Date": "03/12/21",
+ "Amount": 2021.8
+ },
+ {
+ "Date": "04/12/21",
+ "Amount": 2022.4
+ },
+ {
+ "Date": "05/12/21",
+ "Amount": 2021.9
+ },
+ {
+ "Date": "06/12/21",
+ "Amount": 2021.3
+ },
+ {
+ "Date": "07/12/21",
+ "Amount": 2022
+ },
+ {
+ "Date": "08/12/21",
+ "Amount": 2022.1
+ },
+ {
+ "Date": "09/12/21",
+ "Amount": 2021.9
+ },
+ {
+ "Date": "10/12/21",
+ "Amount": 2022
+ },
+ {
+ "Date": "11/12/21",
+ "Amount": 2022.2
+ },
+ {
+ "Date": "12/12/21",
+ "Amount": 2021.9
+ },
+ {
+ "Date": "13/12/21",
+ "Amount": 2022
+ },
+ {
+ "Date": "14/12/21",
+ "Amount": 2022.1
+ },
+ {
+ "Date": "15/12/21",
+ "Amount": 2022.3
+ },
+ {
+ "Date": "16/12/21",
+ "Amount": 2022.5
+ },
+ {
+ "Date": "17/12/21",
+ "Amount": 2022.4
+ },
+ {
+ "Date": "18/12/21",
+ "Amount": 2022.1
+ },
+ {
+ "Date": "19/12/21",
+ "Amount": 2021.8
+ },
+ {
+ "Date": "20/12/21",
+ "Amount": 2021.7
+ },
+ {
+ "Date": "21/12/21",
+ "Amount": 2022.1
+ },
+ {
+ "Date": "22/12/21",
+ "Amount": 2021.4
+ },
+ {
+ "Date": "23/12/21",
+ "Amount": 2021.7
+ },
+ {
+ "Date": "24/12/21",
+ "Amount": 2022.1
+ },
+ {
+ "Date": "25/12/21",
+ "Amount": 2022
+ },
+ {
+ "Date": "26/12/21",
+ "Amount": 2022.3
+ },
+ {
+ "Date": "27/12/21",
+ "Amount": 2022
+ },
+ {
+ "Date": "28/12/21",
+ "Amount": 2022
+ },
+ {
+ "Date": "29/12/21",
+ "Amount": 2021.8
+ },
+ {
+ "Date": "30/12/21",
+ "Amount": 2021.8
+ },
+ {
+ "Date": "31/12/21",
+ "Amount": 2021.8
+ },
+ {
+ "Date": "01/01/22",
+ "Amount": 2023.3
+ },
+ {
+ "Date": "02/01/22",
+ "Amount": 2023.7
+ },
+ {
+ "Date": "03/01/22",
+ "Amount": 2022.9
+ },
+ {
+ "Date": "04/01/22",
+ "Amount": 2023.3
+ },
+ {
+ "Date": "05/01/22",
+ "Amount": 2023
+ },
+ {
+ "Date": "06/01/22",
+ "Amount": 2023.2
+ },
+ {
+ "Date": "07/01/22",
+ "Amount": 2023.3
+ },
+ {
+ "Date": "08/01/22",
+ "Amount": 2023.2
+ },
+ {
+ "Date": "09/01/22",
+ "Amount": 2023.7
+ },
+ {
+ "Date": "10/01/22",
+ "Amount": 2023.2
+ },
+ {
+ "Date": "11/01/22",
+ "Amount": 2022.6
+ },
+ {
+ "Date": "12/01/22",
+ "Amount": 2022.7
+ },
+ {
+ "Date": "13/01/22",
+ "Amount": 2023.3
+ },
+ {
+ "Date": "14/01/22",
+ "Amount": 2023
+ },
+ {
+ "Date": "15/01/22",
+ "Amount": 2023.1
+ },
+ {
+ "Date": "16/01/22",
+ "Amount": 2023.1
+ },
+ {
+ "Date": "17/01/22",
+ "Amount": 2022.6
+ },
+ {
+ "Date": "18/01/22",
+ "Amount": 2023.1
+ },
+ {
+ "Date": "19/01/22",
+ "Amount": 2023.2
+ },
+ {
+ "Date": "20/01/22",
+ "Amount": 2023
+ },
+ {
+ "Date": "21/01/22",
+ "Amount": 2023.6
+ },
+ {
+ "Date": "22/01/22",
+ "Amount": 2023.5
+ },
+ {
+ "Date": "23/01/22",
+ "Amount": 2023.4
+ },
+ {
+ "Date": "24/01/22",
+ "Amount": 2023.1
+ },
+ {
+ "Date": "25/01/22",
+ "Amount": 2023
+ },
+ {
+ "Date": "26/01/22",
+ "Amount": 2022.8
+ },
+ {
+ "Date": "27/01/22",
+ "Amount": 2022.9
+ },
+ {
+ "Date": "28/01/22",
+ "Amount": 2023.3
+ },
+ {
+ "Date": "29/01/22",
+ "Amount": 2023.7
+ },
+ {
+ "Date": "30/01/22",
+ "Amount": 2023.3
+ },
+ {
+ "Date": "31/01/22",
+ "Amount": 2022.3
+ },
+ {
+ "Date": "01/02/22",
+ "Amount": 2023.2
+ },
+ {
+ "Date": "02/02/22",
+ "Amount": 2023.1
+ },
+ {
+ "Date": "03/02/22",
+ "Amount": 2023.4
+ },
+ {
+ "Date": "04/02/22",
+ "Amount": 2022.6
+ },
+ {
+ "Date": "05/02/22",
+ "Amount": 2023
+ },
+ {
+ "Date": "06/02/22",
+ "Amount": 2023.7
+ },
+ {
+ "Date": "07/02/22",
+ "Amount": 2022.9
+ },
+ {
+ "Date": "08/02/22",
+ "Amount": 2022.7
+ },
+ {
+ "Date": "09/02/22",
+ "Amount": 2022.9
+ },
+ {
+ "Date": "10/02/22",
+ "Amount": 2023.2
+ },
+ {
+ "Date": "11/02/22",
+ "Amount": 2022.6
+ },
+ {
+ "Date": "12/02/22",
+ "Amount": 2023.6
+ },
+ {
+ "Date": "13/02/22",
+ "Amount": 2023.4
+ },
+ {
+ "Date": "14/02/22",
+ "Amount": 2022.5
+ },
+ {
+ "Date": "15/02/22",
+ "Amount": 2022.4
+ },
+ {
+ "Date": "16/02/22",
+ "Amount": 2023
+ },
+ {
+ "Date": "17/02/22",
+ "Amount": 2022.7
+ },
+ {
+ "Date": "18/02/22",
+ "Amount": 2022.7
+ },
+ {
+ "Date": "19/02/22",
+ "Amount": 2022.9
+ },
+ {
+ "Date": "20/02/22",
+ "Amount": 2023.3
+ },
+ {
+ "Date": "21/02/22",
+ "Amount": 2022.5
+ },
+ {
+ "Date": "22/02/22",
+ "Amount": 2022.6
+ },
+ {
+ "Date": "23/02/22",
+ "Amount": 2022.8
+ },
+ {
+ "Date": "24/02/22",
+ "Amount": 2023.5
+ },
+ {
+ "Date": "25/02/22",
+ "Amount": 2023.5
+ },
+ {
+ "Date": "26/02/22",
+ "Amount": 2023.5
+ },
+ {
+ "Date": "27/02/22",
+ "Amount": 2023.3
+ },
+ {
+ "Date": "28/02/22",
+ "Amount": 2023
+ },
+ {
+ "Date": "01/03/22",
+ "Amount": 2022.9
+ },
+ {
+ "Date": "02/03/22",
+ "Amount": 2022.9
+ },
+ {
+ "Date": "03/03/22",
+ "Amount": 2023.3
+ },
+ {
+ "Date": "04/03/22",
+ "Amount": 2023.4
+ },
+ {
+ "Date": "05/03/22",
+ "Amount": 2023.6
+ },
+ {
+ "Date": "06/03/22",
+ "Amount": 2022.9
+ },
+ {
+ "Date": "07/03/22",
+ "Amount": 2022.8
+ },
+ {
+ "Date": "08/03/22",
+ "Amount": 2022.5
+ },
+ {
+ "Date": "09/03/22",
+ "Amount": 2022.5
+ },
+ {
+ "Date": "10/03/22",
+ "Amount": 2022.9
+ },
+ {
+ "Date": "11/03/22",
+ "Amount": 2023.5
+ },
+ {
+ "Date": "12/03/22",
+ "Amount": 2023.7
+ },
+ {
+ "Date": "13/03/22",
+ "Amount": 2023.2
+ },
+ {
+ "Date": "14/03/22",
+ "Amount": 2022.2
+ },
+ {
+ "Date": "15/03/22",
+ "Amount": 2023
+ },
+ {
+ "Date": "16/03/22",
+ "Amount": 2022.9
+ },
+ {
+ "Date": "17/03/22",
+ "Amount": 2022.9
+ },
+ {
+ "Date": "18/03/22",
+ "Amount": 2023.4
+ },
+ {
+ "Date": "19/03/22",
+ "Amount": 2023.3
+ },
+ {
+ "Date": "20/03/22",
+ "Amount": 2022.9
+ },
+ {
+ "Date": "21/03/22",
+ "Amount": 2022.6
+ },
+ {
+ "Date": "22/03/22",
+ "Amount": 2022.7
+ },
+ {
+ "Date": "23/03/22",
+ "Amount": 2023.1
+ },
+ {
+ "Date": "24/03/22",
+ "Amount": 2022.7
+ },
+ {
+ "Date": "25/03/22",
+ "Amount": 2022.9
+ },
+ {
+ "Date": "26/03/22",
+ "Amount": 2023
+ },
+ {
+ "Date": "27/03/22",
+ "Amount": 2023.4
+ },
+ {
+ "Date": "28/03/22",
+ "Amount": 2022.6
+ },
+ {
+ "Date": "29/03/22",
+ "Amount": 2023.3
+ },
+ {
+ "Date": "30/03/22",
+ "Amount": 2022.5
+ },
+ {
+ "Date": "31/03/22",
+ "Amount": 2022.7
+ },
+ {
+ "Date": "01/04/22",
+ "Amount": 2022.9
+ },
+ {
+ "Date": "02/04/22",
+ "Amount": 2023.5
+ },
+ {
+ "Date": "03/04/22",
+ "Amount": 2023.2
+ },
+ {
+ "Date": "04/04/22",
+ "Amount": 2023
+ },
+ {
+ "Date": "05/04/22",
+ "Amount": 2022.4
+ },
+ {
+ "Date": "06/04/22",
+ "Amount": 2022.8
+ },
+ {
+ "Date": "07/04/22",
+ "Amount": 2022.7
+ },
+ {
+ "Date": "08/04/22",
+ "Amount": 2023.4
+ },
+ {
+ "Date": "09/04/22",
+ "Amount": 2023.6
+ },
+ {
+ "Date": "10/04/22",
+ "Amount": 2023.4
+ },
+ {
+ "Date": "11/04/22",
+ "Amount": 2022.6
+ },
+ {
+ "Date": "12/04/22",
+ "Amount": 2022.9
+ },
+ {
+ "Date": "13/04/22",
+ "Amount": 2023
+ },
+ {
+ "Date": "14/04/22",
+ "Amount": 2022.6
+ },
+ {
+ "Date": "15/04/22",
+ "Amount": 2022.6
+ },
+ {
+ "Date": "16/04/22",
+ "Amount": 2022.9
+ },
+ {
+ "Date": "17/04/22",
+ "Amount": 2023.1
+ },
+ {
+ "Date": "18/04/22",
+ "Amount": 2022.2
+ },
+ {
+ "Date": "19/04/22",
+ "Amount": 2022.6
+ },
+ {
+ "Date": "20/04/22",
+ "Amount": 2022.7
+ },
+ {
+ "Date": "21/04/22",
+ "Amount": 2023.3
+ },
+ {
+ "Date": "22/04/22",
+ "Amount": 2022.8
+ },
+ {
+ "Date": "23/04/22",
+ "Amount": 2022.8
+ },
+ {
+ "Date": "24/04/22",
+ "Amount": 2023.5
+ },
+ {
+ "Date": "25/04/22",
+ "Amount": 2022.3
+ },
+ {
+ "Date": "26/04/22",
+ "Amount": 2023.3
+ },
+ {
+ "Date": "27/04/22",
+ "Amount": 2022.9
+ },
+ {
+ "Date": "28/04/22",
+ "Amount": 2022.8
+ },
+ {
+ "Date": "29/04/22",
+ "Amount": 2023
+ },
+ {
+ "Date": "30/04/22",
+ "Amount": 2023.1
+ },
+ {
+ "Date": "01/05/22",
+ "Amount": 2023.3
+ },
+ {
+ "Date": "02/05/22",
+ "Amount": 2023
+ },
+ {
+ "Date": "03/05/22",
+ "Amount": 2022.9
+ },
+ {
+ "Date": "04/05/22",
+ "Amount": 2023
+ },
+ {
+ "Date": "05/05/22",
+ "Amount": 2022.7
+ },
+ {
+ "Date": "06/05/22",
+ "Amount": 2022.6
+ },
+ {
+ "Date": "07/05/22",
+ "Amount": 2022.9
+ },
+ {
+ "Date": "08/05/22",
+ "Amount": 2023.8
+ },
+ {
+ "Date": "09/05/22",
+ "Amount": 2022.3
+ },
+ {
+ "Date": "10/05/22",
+ "Amount": 2022.4
+ },
+ {
+ "Date": "11/05/22",
+ "Amount": 2022.9
+ },
+ {
+ "Date": "12/05/22",
+ "Amount": 2023.3
+ },
+ {
+ "Date": "13/05/22",
+ "Amount": 2023.1
+ },
+ {
+ "Date": "14/05/22",
+ "Amount": 2023.6
+ },
+ {
+ "Date": "15/05/22",
+ "Amount": 2023.1
+ },
+ {
+ "Date": "16/05/22",
+ "Amount": 2022.4
+ },
+ {
+ "Date": "17/05/22",
+ "Amount": 2022.9
+ },
+ {
+ "Date": "18/05/22",
+ "Amount": 2023.4
+ },
+ {
+ "Date": "19/05/22",
+ "Amount": 2022.9
+ },
+ {
+ "Date": "20/05/22",
+ "Amount": 2023.2
+ },
+ {
+ "Date": "21/05/22",
+ "Amount": 2023.1
+ },
+ {
+ "Date": "22/05/22",
+ "Amount": 2022.9
+ },
+ {
+ "Date": "23/05/22",
+ "Amount": 2022.4
+ },
+ {
+ "Date": "24/05/22",
+ "Amount": 2022.8
+ },
+ {
+ "Date": "25/05/22",
+ "Amount": 2022.8
+ },
+ {
+ "Date": "26/05/22",
+ "Amount": 2023
+ },
+ {
+ "Date": "27/05/22",
+ "Amount": 2022.9
+ },
+ {
+ "Date": "28/05/22",
+ "Amount": 2023.5
+ },
+ {
+ "Date": "29/05/22",
+ "Amount": 2023.6
+ },
+ {
+ "Date": "30/05/22",
+ "Amount": 2022.8
+ },
+ {
+ "Date": "31/05/22",
+ "Amount": 2022.9
+ },
+ {
+ "Date": "01/06/22",
+ "Amount": 2022.6
+ },
+ {
+ "Date": "02/06/22",
+ "Amount": 2023
+ },
+ {
+ "Date": "03/06/22",
+ "Amount": 2023.1
+ },
+ {
+ "Date": "04/06/22",
+ "Amount": 2023.5
+ },
+ {
+ "Date": "05/06/22",
+ "Amount": 2023.5
+ },
+ {
+ "Date": "06/06/22",
+ "Amount": 2022.6
+ },
+ {
+ "Date": "07/06/22",
+ "Amount": 2022.9
+ },
+ {
+ "Date": "08/06/22",
+ "Amount": 2022.9
+ },
+ {
+ "Date": "09/06/22",
+ "Amount": 2023.3
+ },
+ {
+ "Date": "10/06/22",
+ "Amount": 2022.9
+ },
+ {
+ "Date": "11/06/22",
+ "Amount": 2023.6
+ },
+ {
+ "Date": "12/06/22",
+ "Amount": 2023.4
+ },
+ {
+ "Date": "13/06/22",
+ "Amount": 2022.9
+ },
+ {
+ "Date": "14/06/22",
+ "Amount": 2022.3
+ },
+ {
+ "Date": "15/06/22",
+ "Amount": 2022.5
+ },
+ {
+ "Date": "16/06/22",
+ "Amount": 2022.7
+ },
+ {
+ "Date": "17/06/22",
+ "Amount": 2022.7
+ },
+ {
+ "Date": "18/06/22",
+ "Amount": 2023.5
+ },
+ {
+ "Date": "19/06/22",
+ "Amount": 2023.5
+ },
+ {
+ "Date": "20/06/22",
+ "Amount": 2022.5
+ },
+ {
+ "Date": "21/06/22",
+ "Amount": 2022.6
+ },
+ {
+ "Date": "22/06/22",
+ "Amount": 2022.7
+ },
+ {
+ "Date": "23/06/22",
+ "Amount": 2023
+ },
+ {
+ "Date": "24/06/22",
+ "Amount": 2022.9
+ },
+ {
+ "Date": "25/06/22",
+ "Amount": 2023.6
+ },
+ {
+ "Date": "26/06/22",
+ "Amount": 2023.8
+ },
+ {
+ "Date": "27/06/22",
+ "Amount": 2022.7
+ },
+ {
+ "Date": "28/06/22",
+ "Amount": 2023.3
+ },
+ {
+ "Date": "29/06/22",
+ "Amount": 2023.3
+ },
+ {
+ "Date": "30/06/22",
+ "Amount": 2022.6
+ },
+ {
+ "Date": "01/07/22",
+ "Amount": 2023.5
+ },
+ {
+ "Date": "02/07/22",
+ "Amount": 2023.2
+ },
+ {
+ "Date": "03/07/22",
+ "Amount": 2023
+ },
+ {
+ "Date": "04/07/22",
+ "Amount": 2022.5
+ },
+ {
+ "Date": "05/07/22",
+ "Amount": 2022.6
+ },
+ {
+ "Date": "06/07/22",
+ "Amount": 2023.1
+ },
+ {
+ "Date": "07/07/22",
+ "Amount": 2022.9
+ },
+ {
+ "Date": "08/07/22",
+ "Amount": 2023
+ },
+ {
+ "Date": "09/07/22",
+ "Amount": 2022.8
+ },
+ {
+ "Date": "10/07/22",
+ "Amount": 2023.7
+ },
+ {
+ "Date": "11/07/22",
+ "Amount": 2022.5
+ },
+ {
+ "Date": "12/07/22",
+ "Amount": 2022.9
+ },
+ {
+ "Date": "13/07/22",
+ "Amount": 2023.3
+ },
+ {
+ "Date": "14/07/22",
+ "Amount": 2023.4
+ },
+ {
+ "Date": "15/07/22",
+ "Amount": 2023
+ },
+ {
+ "Date": "16/07/22",
+ "Amount": 2022.8
+ },
+ {
+ "Date": "17/07/22",
+ "Amount": 2023.6
+ },
+ {
+ "Date": "18/07/22",
+ "Amount": 2023.1
+ },
+ {
+ "Date": "19/07/22",
+ "Amount": 2022.9
+ },
+ {
+ "Date": "20/07/22",
+ "Amount": 2023.2
+ },
+ {
+ "Date": "21/07/22",
+ "Amount": 2023
+ },
+ {
+ "Date": "22/07/22",
+ "Amount": 2023.1
+ },
+ {
+ "Date": "23/07/22",
+ "Amount": 2023
+ },
+ {
+ "Date": "24/07/22",
+ "Amount": 2023.6
+ },
+ {
+ "Date": "25/07/22",
+ "Amount": 2023.1
+ },
+ {
+ "Date": "26/07/22",
+ "Amount": 2022.5
+ },
+ {
+ "Date": "27/07/22",
+ "Amount": 2022.7
+ },
+ {
+ "Date": "28/07/22",
+ "Amount": 2022.6
+ },
+ {
+ "Date": "29/07/22",
+ "Amount": 2023.2
+ },
+ {
+ "Date": "30/07/22",
+ "Amount": 2023
+ },
+ {
+ "Date": "31/07/22",
+ "Amount": 2023.5
+ },
+ {
+ "Date": "01/08/22",
+ "Amount": 2022.8
+ },
+ {
+ "Date": "02/08/22",
+ "Amount": 2022.9
+ },
+ {
+ "Date": "03/08/22",
+ "Amount": 2023
+ },
+ {
+ "Date": "04/08/22",
+ "Amount": 2023.2
+ },
+ {
+ "Date": "05/08/22",
+ "Amount": 2022.8
+ },
+ {
+ "Date": "06/08/22",
+ "Amount": 2023.1
+ },
+ {
+ "Date": "07/08/22",
+ "Amount": 2023
+ },
+ {
+ "Date": "08/08/22",
+ "Amount": 2022.8
+ },
+ {
+ "Date": "09/08/22",
+ "Amount": 2022.5
+ },
+ {
+ "Date": "10/08/22",
+ "Amount": 2023
+ },
+ {
+ "Date": "11/08/22",
+ "Amount": 2022.6
+ },
+ {
+ "Date": "12/08/22",
+ "Amount": 2023.1
+ },
+ {
+ "Date": "13/08/22",
+ "Amount": 2023.7
+ },
+ {
+ "Date": "14/08/22",
+ "Amount": 2022.8
+ },
+ {
+ "Date": "15/08/22",
+ "Amount": 2022.3
+ },
+ {
+ "Date": "16/08/22",
+ "Amount": 2022.5
+ },
+ {
+ "Date": "17/08/22",
+ "Amount": 2022.6
+ },
+ {
+ "Date": "18/08/22",
+ "Amount": 2023
+ },
+ {
+ "Date": "19/08/22",
+ "Amount": 2023.1
+ },
+ {
+ "Date": "20/08/22",
+ "Amount": 2022.9
+ },
+ {
+ "Date": "21/08/22",
+ "Amount": 2023.5
+ },
+ {
+ "Date": "22/08/22",
+ "Amount": 2022.7
+ },
+ {
+ "Date": "23/08/22",
+ "Amount": 2022.3
+ },
+ {
+ "Date": "24/08/22",
+ "Amount": 2023.2
+ },
+ {
+ "Date": "25/08/22",
+ "Amount": 2022.6
+ },
+ {
+ "Date": "26/08/22",
+ "Amount": 2023
+ },
+ {
+ "Date": "27/08/22",
+ "Amount": 2023
+ },
+ {
+ "Date": "28/08/22",
+ "Amount": 2023.6
+ },
+ {
+ "Date": "29/08/22",
+ "Amount": 2022.4
+ },
+ {
+ "Date": "30/08/22",
+ "Amount": 2022.7
+ },
+ {
+ "Date": "31/08/22",
+ "Amount": 2023.1
+ },
+ {
+ "Date": "01/09/22",
+ "Amount": 2023.1
+ },
+ {
+ "Date": "02/09/22",
+ "Amount": 2023.6
+ },
+ {
+ "Date": "03/09/22",
+ "Amount": 2023
+ },
+ {
+ "Date": "04/09/22",
+ "Amount": 2023.6
+ },
+ {
+ "Date": "05/09/22",
+ "Amount": 2022.8
+ },
+ {
+ "Date": "06/09/22",
+ "Amount": 2022.9
+ },
+ {
+ "Date": "07/09/22",
+ "Amount": 2023.1
+ },
+ {
+ "Date": "08/09/22",
+ "Amount": 2023.4
+ },
+ {
+ "Date": "09/09/22",
+ "Amount": 2022.9
+ },
+ {
+ "Date": "10/09/22",
+ "Amount": 2022.8
+ },
+ {
+ "Date": "11/09/22",
+ "Amount": 2023.8
+ },
+ {
+ "Date": "12/09/22",
+ "Amount": 2023
+ },
+ {
+ "Date": "13/09/22",
+ "Amount": 2022.4
+ },
+ {
+ "Date": "14/09/22",
+ "Amount": 2023.2
+ },
+ {
+ "Date": "15/09/22",
+ "Amount": 2022.9
+ },
+ {
+ "Date": "16/09/22",
+ "Amount": 2023
+ },
+ {
+ "Date": "17/09/22",
+ "Amount": 2023.5
+ },
+ {
+ "Date": "18/09/22",
+ "Amount": 2023
+ },
+ {
+ "Date": "19/09/22",
+ "Amount": 2022.4
+ },
+ {
+ "Date": "20/09/22",
+ "Amount": 2022.8
+ },
+ {
+ "Date": "21/09/22",
+ "Amount": 2023.1
+ },
+ {
+ "Date": "22/09/22",
+ "Amount": 2023.1
+ },
+ {
+ "Date": "23/09/22",
+ "Amount": 2023.4
+ },
+ {
+ "Date": "24/09/22",
+ "Amount": 2023.5
+ },
+ {
+ "Date": "25/09/22",
+ "Amount": 2023.3
+ },
+ {
+ "Date": "26/09/22",
+ "Amount": 2022.9
+ },
+ {
+ "Date": "27/09/22",
+ "Amount": 2023.1
+ },
+ {
+ "Date": "28/09/22",
+ "Amount": 2023.3
+ },
+ {
+ "Date": "29/09/22",
+ "Amount": 2022.7
+ },
+ {
+ "Date": "30/09/22",
+ "Amount": 2023.1
+ },
+ {
+ "Date": "01/10/22",
+ "Amount": 2023.1
+ },
+ {
+ "Date": "02/10/22",
+ "Amount": 2022.9
+ },
+ {
+ "Date": "03/10/22",
+ "Amount": 2022.4
+ },
+ {
+ "Date": "04/10/22",
+ "Amount": 2023.3
+ },
+ {
+ "Date": "05/10/22",
+ "Amount": 2022.7
+ },
+ {
+ "Date": "06/10/22",
+ "Amount": 2022.8
+ },
+ {
+ "Date": "07/10/22",
+ "Amount": 2023.1
+ },
+ {
+ "Date": "08/10/22",
+ "Amount": 2023.5
+ },
+ {
+ "Date": "09/10/22",
+ "Amount": 2023.6
+ },
+ {
+ "Date": "10/10/22",
+ "Amount": 2023.2
+ },
+ {
+ "Date": "11/10/22",
+ "Amount": 2023
+ },
+ {
+ "Date": "12/10/22",
+ "Amount": 2022.5
+ },
+ {
+ "Date": "13/10/22",
+ "Amount": 2022.6
+ },
+ {
+ "Date": "14/10/22",
+ "Amount": 2023.5
+ },
+ {
+ "Date": "15/10/22",
+ "Amount": 2023
+ },
+ {
+ "Date": "16/10/22",
+ "Amount": 2023.6
+ },
+ {
+ "Date": "17/10/22",
+ "Amount": 2022.5
+ },
+ {
+ "Date": "18/10/22",
+ "Amount": 2022.7
+ },
+ {
+ "Date": "19/10/22",
+ "Amount": 2023.2
+ },
+ {
+ "Date": "20/10/22",
+ "Amount": 2023.3
+ },
+ {
+ "Date": "21/10/22",
+ "Amount": 2022.6
+ },
+ {
+ "Date": "22/10/22",
+ "Amount": 2023.2
+ },
+ {
+ "Date": "23/10/22",
+ "Amount": 2023.3
+ },
+ {
+ "Date": "24/10/22",
+ "Amount": 2022.9
+ },
+ {
+ "Date": "25/10/22",
+ "Amount": 2023
+ },
+ {
+ "Date": "26/10/22",
+ "Amount": 2023.1
+ },
+ {
+ "Date": "27/10/22",
+ "Amount": 2022.5
+ },
+ {
+ "Date": "28/10/22",
+ "Amount": 2022.9
+ },
+ {
+ "Date": "29/10/22",
+ "Amount": 2023.1
+ },
+ {
+ "Date": "30/10/22",
+ "Amount": 2023.6
+ },
+ {
+ "Date": "31/10/22",
+ "Amount": 2022.9
+ },
+ {
+ "Date": "01/11/22",
+ "Amount": 2023.2
+ },
+ {
+ "Date": "02/11/22",
+ "Amount": 2023
+ },
+ {
+ "Date": "03/11/22",
+ "Amount": 2023.4
+ },
+ {
+ "Date": "04/11/22",
+ "Amount": 2023
+ },
+ {
+ "Date": "05/11/22",
+ "Amount": 2023.5
+ },
+ {
+ "Date": "06/11/22",
+ "Amount": 2023.3
+ },
+ {
+ "Date": "07/11/22",
+ "Amount": 2022.4
+ },
+ {
+ "Date": "08/11/22",
+ "Amount": 2023.3
+ },
+ {
+ "Date": "09/11/22",
+ "Amount": 2023.3
+ },
+ {
+ "Date": "10/11/22",
+ "Amount": 2023.1
+ },
+ {
+ "Date": "11/11/22",
+ "Amount": 2023.5
+ },
+ {
+ "Date": "12/11/22",
+ "Amount": 2023.3
+ },
+ {
+ "Date": "13/11/22",
+ "Amount": 2023.5
+ },
+ {
+ "Date": "14/11/22",
+ "Amount": 2022.3
+ },
+ {
+ "Date": "15/11/22",
+ "Amount": 2023.1
+ },
+ {
+ "Date": "16/11/22",
+ "Amount": 2023.3
+ },
+ {
+ "Date": "17/11/22",
+ "Amount": 2022.6
+ },
+ {
+ "Date": "18/11/22",
+ "Amount": 2022.9
+ },
+ {
+ "Date": "19/11/22",
+ "Amount": 2023.4
+ },
+ {
+ "Date": "20/11/22",
+ "Amount": 2023.4
+ },
+ {
+ "Date": "21/11/22",
+ "Amount": 2022.8
+ },
+ {
+ "Date": "22/11/22",
+ "Amount": 2023
+ },
+ {
+ "Date": "23/11/22",
+ "Amount": 2023
+ },
+ {
+ "Date": "24/11/22",
+ "Amount": 2023.4
+ },
+ {
+ "Date": "25/11/22",
+ "Amount": 2023.1
+ },
+ {
+ "Date": "26/11/22",
+ "Amount": 2022.9
+ },
+ {
+ "Date": "27/11/22",
+ "Amount": 2023.2
+ },
+ {
+ "Date": "28/11/22",
+ "Amount": 2022.3
+ },
+ {
+ "Date": "29/11/22",
+ "Amount": 2023
+ },
+ {
+ "Date": "30/11/22",
+ "Amount": 2022.9
+ },
+ {
+ "Date": "01/12/22",
+ "Amount": 2023
+ },
+ {
+ "Date": "02/12/22",
+ "Amount": 2023
+ },
+ {
+ "Date": "03/12/22",
+ "Amount": 2023.6
+ },
+ {
+ "Date": "04/12/22",
+ "Amount": 2023.1
+ },
+ {
+ "Date": "05/12/22",
+ "Amount": 2022.8
+ },
+ {
+ "Date": "06/12/22",
+ "Amount": 2022.5
+ },
+ {
+ "Date": "07/12/22",
+ "Amount": 2022.6
+ },
+ {
+ "Date": "08/12/22",
+ "Amount": 2023.4
+ },
+ {
+ "Date": "09/12/22",
+ "Amount": 2023.5
+ },
+ {
+ "Date": "10/12/22",
+ "Amount": 2023.2
+ },
+ {
+ "Date": "11/12/22",
+ "Amount": 2023
+ },
+ {
+ "Date": "12/12/22",
+ "Amount": 2022.4
+ },
+ {
+ "Date": "13/12/22",
+ "Amount": 2022.6
+ },
+ {
+ "Date": "14/12/22",
+ "Amount": 2022.9
+ },
+ {
+ "Date": "15/12/22",
+ "Amount": 2022.5
+ },
+ {
+ "Date": "16/12/22",
+ "Amount": 2023.3
+ },
+ {
+ "Date": "17/12/22",
+ "Amount": 2023.4
+ },
+ {
+ "Date": "18/12/22",
+ "Amount": 2023.5
+ },
+ {
+ "Date": "19/12/22",
+ "Amount": 2022.7
+ },
+ {
+ "Date": "20/12/22",
+ "Amount": 2023.2
+ },
+ {
+ "Date": "21/12/22",
+ "Amount": 2022.9
+ },
+ {
+ "Date": "22/12/22",
+ "Amount": 2023
+ },
+ {
+ "Date": "23/12/22",
+ "Amount": 2022.9
+ },
+ {
+ "Date": "24/12/22",
+ "Amount": 2022.9
+ },
+ {
+ "Date": "25/12/22",
+ "Amount": 2023.4
+ },
+ {
+ "Date": "26/12/22",
+ "Amount": 2022.9
+ },
+ {
+ "Date": "27/12/22",
+ "Amount": 2022.4
+ },
+ {
+ "Date": "28/12/22",
+ "Amount": 2023.3
+ },
+ {
+ "Date": "29/12/22",
+ "Amount": 2023.5
+ },
+ {
+ "Date": "30/12/22",
+ "Amount": 2023.4
+ },
+ {
+ "Date": "31/12/22",
+ "Amount": 2023
+ }
+]
\ No newline at end of file
diff --git a/testdata/deneb/calendar-heatmap.vl.json b/testdata/deneb/calendar-heatmap.vl.json
new file mode 100644
index 0000000..aa69cc3
--- /dev/null
+++ b/testdata/deneb/calendar-heatmap.vl.json
@@ -0,0 +1,107 @@
+{
+ "$schema": "https://vega.github.io/schema/vega-lite/v5.json",
+ "width": {"step": 14},
+ "height": {"step": 14},
+ "background": "#222431",
+ "data": {
+ "name": "dataset",
+ "url": "deneb/calendar-heatmap-data.json",
+ "format": {"parse": {"Date": "date:'%d/%m/%Y'"}}
+ },
+ "transform": [
+ {"calculate": "'20'+year(datum.Date)", "as": "Year"},
+ {"calculate": "monthAbbrevFormat(month(datum.Date))", "as": "MonthName"},
+ {"calculate": "month(datum.Date)", "as": "MonthNumber"},
+ {
+ "calculate": "day(datum.Date)==0?week(datum.Date)-1:week(datum.Date)",
+ "as": "WeekNumber"
+ }
+ ],
+ "mark": {"type": "bar", "tooltip": true, "cornerRadius": 2},
+ "encoding": {
+ "column": {
+ "spacing": 10,
+ "field": "MonthName",
+ "sort": [],
+ "title": "",
+ "header": {
+ "labelFontSize": 18,
+ "labelPadding": 10,
+ "labelFont": "Segoe UI",
+ "labelColor": "#9092a1"
+ }
+ },
+ "row": {
+ "field": "Year",
+ "title": "",
+ "sort": "descending",
+ "header": {
+ "labelFontSize": 44,
+ "labelPadding": 5,
+ "labelFont": "Segoe UI",
+ "labelColor": "#9092a1"
+ }
+ },
+ "x": {"field": "WeekNumber", "axis": null, "title": ""},
+ "y": {
+ "field": "Date",
+ "timeUnit": "day",
+ "sort": ["mon", "tue", "wed", "thu", "fri", "sat", "sun"],
+ "type": "ordinal",
+ "title": "",
+ "axis": {
+ "labels": true,
+ "format": "",
+ "ticks": false,
+ "labelPadding": 18,
+ "labelColor": "#9092a1"
+ }
+ },
+ "color": {
+ "field": "Amount",
+ "type": "quantitative",
+ "legend": null,
+ "scale": {
+ "reverse": true,
+ "scheme": {"name": "turbo", "extent": [0.1, 1]}
+ }
+ }
+ },
+ "resolve": {"axis": {"x": "independent"}, "scale": {"x": "independent"}},
+ "config": {
+ "view": {"stroke": "transparent"},
+ "font": "Segoe UI",
+ "text": {"font": "Segoe UI", "fontSize": 12, "fill": "#605E5C"},
+ "axis": {
+ "ticks": false,
+ "grid": false,
+ "domain": false,
+ "labelColor": "#605E5C",
+ "labelFontSize": 12,
+ "titleFont": "wf_standard-font, helvetica, arial, sans-serif",
+ "titleColor": "#252423",
+ "titleFontSize": 16,
+ "titleFontWeight": "normal"
+ },
+ "axisX": {"labelPadding": 5},
+ "axisY": {"labelPadding": 10},
+ "header": {
+ "titleFont": "wf_standard-font, helvetica, arial, sans-serif",
+ "titleFontSize": 16,
+ "titleColor": "#252423",
+ "labelFont": "Segoe UI",
+ "labelFontSize": 13.333333333333332,
+ "labelColor": "#9092a1"
+ },
+ "legend": {
+ "titleFont": "Segoe UI",
+ "titleFontWeight": "bold",
+ "titleColor": "#605E5C",
+ "labelFont": "Segoe UI",
+ "labelFontSize": 13.333333333333332,
+ "labelColor": "#605E5C",
+ "symbolType": "circle",
+ "symbolSize": 75
+ }
+ }
+}
diff --git a/testdata/deneb/calendar-heatmap.vl.json.svg b/testdata/deneb/calendar-heatmap.vl.json.svg
new file mode 100644
index 0000000..5d75f2a
--- /dev/null
+++ b/testdata/deneb/calendar-heatmap.vl.json.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/testdata/deneb/convex-hull.vg.json b/testdata/deneb/convex-hull.vg.json
new file mode 100644
index 0000000..57492d4
--- /dev/null
+++ b/testdata/deneb/convex-hull.vg.json
@@ -0,0 +1,381 @@
+{
+ "$schema": "https://vega.github.io/schema/vega/v5.json",
+ "description": "Convex hull implementation by David Bacci: https://www.linkedin.com/in/davbacci/",
+ "width": 1000,
+ "height": 900,
+ "padding": { "bottom": 50, "left": 50, "right": 40, "top": 40 },
+ "autosize": "pad",
+ "background": "#232840",
+ "signals": [
+ {
+ "name": "timer",
+ "update": "0",
+ "on": [
+ {
+ "events": { "type": "timer", "throttle": 50 },
+ "update": "counters.i =0?'back':'forward'" },
+ {
+ "name": "addPoint",
+ "update": "currentItem!=null && currentItem.id <= 2?currentItem:direction=='forward' ?currentItem:false"
+ },
+ {
+ "name": "remPoint",
+ "update": "direction == 'back'?{group:p2.group, id:p2.id}:false"
+ }
+ ],
+ "data": [
+ {
+ "name": "table",
+ "values": [
+ { "company": "QuantumGen", "execution": 8.75, "vision": 89.875 },
+ { "company": "QuantumGen", "execution": 8.75, "vision": 91.625 },
+ { "company": "QuantumGen", "execution": 9.75, "vision": 94.625 },
+ { "company": "QuantumGen", "execution": 17.75, "vision": 93.375 },
+ { "company": "QuantumGen", "execution": 24.25, "vision": 93.375 },
+ { "company": "QuantumGen", "execution": 24.25, "vision": 93.375 },
+ { "company": "QuantumGen", "execution": 18.75, "vision": 90.125 },
+ { "company": "QuantumGen", "execution": 12.75, "vision": 91.875 },
+ { "company": "QuantumGen", "execution": 18.25, "vision": 97.875 },
+ { "company": "QuantumGen", "execution": 18.25, "vision": 97.875 },
+ { "company": "QuantumGen", "execution": 25.25, "vision": 95.125 },
+ { "company": "QuantumGen", "execution": 26.75, "vision": 91.125 },
+ { "company": "QuantumGen", "execution": 14.75, "vision": 86.625 },
+ { "company": "VirtuLife", "execution": 80.75, "vision": 96.125 },
+ { "company": "VirtuLife", "execution": 84.75, "vision": 95.625 },
+ { "company": "VirtuLife", "execution": 81.75, "vision": 94.375 },
+ { "company": "VirtuLife", "execution": 75.25, "vision": 93.625 },
+ { "company": "VirtuLife", "execution": 77.75, "vision": 90.625 },
+ { "company": "VirtuLife", "execution": 71.75, "vision": 88.375 },
+ { "company": "VirtuLife", "execution": 78.75, "vision": 89.375 },
+ { "company": "VirtuLife", "execution": 84.25, "vision": 92.375 },
+ { "company": "VirtuLife", "execution": 87.75, "vision": 89.375 },
+ { "company": "VirtuLife", "execution": 83.75, "vision": 82.125 },
+ { "company": "VirtuLife", "execution": 81.25, "vision": 63.125 },
+ { "company": "VirtuLife", "execution": 76.75, "vision": 70.375 },
+ { "company": "LumaDyne ", "execution": 68.25, "vision": 74.875 },
+ { "company": "LumaDyne ", "execution": 76.25, "vision": 75.875 },
+ { "company": "LumaDyne ", "execution": 83.25, "vision": 74.375 },
+ { "company": "LumaDyne ", "execution": 76.25, "vision": 67.125 },
+ { "company": "LumaDyne ", "execution": 70.25, "vision": 64.875 },
+ { "company": "LumaDyne ", "execution": 78.25, "vision": 55.375 },
+ { "company": "LumaDyne ", "execution": 84.75, "vision": 51.125 },
+ { "company": "LumaDyne ", "execution": 85.75, "vision": 44.125 },
+ { "company": "LumaDyne ", "execution": 79.25, "vision": 43.875 },
+ { "company": "LumaDyne ", "execution": 75.75, "vision": 41.375 },
+ { "company": "LumaDyne ", "execution": 86.75, "vision": 36.375 },
+ { "company": "LumaDyne ", "execution": 79.75, "vision": 35.625 },
+ { "company": "LumaDyne ", "execution": 65.25, "vision": 45.375 },
+ { "company": "RoboServe", "execution": 8.75, "vision": 60.125 },
+ { "company": "RoboServe", "execution": 11.25, "vision": 63.875 },
+ { "company": "RoboServe", "execution": 22.25, "vision": 64.375 },
+ { "company": "RoboServe", "execution": 22.75, "vision": 60.625 },
+ { "company": "RoboServe", "execution": 17.75, "vision": 61.625 },
+ { "company": "RoboServe", "execution": 17.75, "vision": 56.125 },
+ { "company": "RoboServe", "execution": 8.25, "vision": 51.625 },
+ { "company": "RoboServe", "execution": 13.75, "vision": 57.375 },
+ { "company": "RoboServe", "execution": 22.75, "vision": 56.125 },
+ { "company": "RoboServe", "execution": 30.75, "vision": 54.875 },
+ { "company": "RoboServe", "execution": 37.75, "vision": 58.625 },
+ { "company": "RoboServe", "execution": 40.75, "vision": 73.875 },
+ { "company": "RoboServe", "execution": 41.25, "vision": 66.375 },
+ { "company": "RoboServe", "execution": 33.75, "vision": 77.625 },
+ { "company": "NovaEdge", "execution": 17.25, "vision": 13.875 },
+ { "company": "NovaEdge", "execution": 19.75, "vision": 16.375 },
+ { "company": "NovaEdge", "execution": 23.75, "vision": 16.375 },
+ { "company": "NovaEdge", "execution": 30.25, "vision": 18.375 },
+ { "company": "NovaEdge", "execution": 28.25, "vision": 21.125 },
+ { "company": "NovaEdge", "execution": 38.25, "vision": 20.375 },
+ { "company": "NovaEdge", "execution": 48.25, "vision": 18.125 },
+ { "company": "NovaEdge", "execution": 81.25, "vision": 13.875 },
+ { "company": "NovaEdge", "execution": 26.75, "vision": 11.375 },
+ { "company": "NovaEdge", "execution": 28.25, "vision": 15.125 },
+ { "company": "NovaEdge", "execution": 35.75, "vision": 14.125 },
+ { "company": "SynthiTech", "execution": 24.25, "vision": 53.125 },
+ { "company": "SynthiTech", "execution": 27.25, "vision": 59.625 },
+ { "company": "SynthiTech", "execution": 34.75, "vision": 57.625 },
+ { "company": "SynthiTech", "execution": 71.25, "vision": 49.375 },
+ { "company": "SynthiTech", "execution": 71.25, "vision": 49.375 },
+ { "company": "SynthiTech", "execution": 71.75, "vision": 42.625 },
+ { "company": "SynthiTech", "execution": 59.75, "vision": 38.375 },
+ { "company": "SynthiTech", "execution": 46.25, "vision": 51.875 },
+ { "company": "SynthiTech", "execution": 39.75, "vision": 45.875 },
+ { "company": "SynthiTech", "execution": 31.25, "vision": 47.875 },
+ { "company": "SynthiTech", "execution": 50.25, "vision": 43.625 },
+ { "company": "AeroLink", "execution": 8.75, "vision": 31.875 },
+ { "company": "AeroLink", "execution": 10.25, "vision": 35.125 },
+ { "company": "AeroLink", "execution": 15.25, "vision": 33.375 },
+ { "company": "AeroLink", "execution": 21.25, "vision": 33.375 },
+ { "company": "AeroLink", "execution": 26.75, "vision": 32.375 },
+ { "company": "AeroLink", "execution": 19.25, "vision": 29.625 },
+ { "company": "AeroLink", "execution": 14.75, "vision": 31.375 },
+ { "company": "AeroLink", "execution": 11.25, "vision": 29.125 },
+ { "company": "AeroLink", "execution": 3.75, "vision": 28.625 },
+ { "company": "AeroLink", "execution": 4.25, "vision": 22.875 },
+ { "company": "AeroLink", "execution": 13.75, "vision": 26.625 },
+ { "company": "AeroLink", "execution": 4.75, "vision": 37.375 }
+ ]
+ },
+ {
+ "name": "calcs",
+ "source": "table",
+ "transform": [
+ {
+ "type": "project",
+ "fields": ["company", "execution", "vision"],
+ "as": ["group", "x", "y"]
+ },
+ {
+ "type": "window",
+ "sort": { "field": ["y", "x"], "order": ["ascending", "ascending"] },
+ "groupby": ["group"],
+ "ops": ["first_value", "first_value"],
+ "fields": ["x", "y"],
+ "as": ["px", "py"]
+ },
+ {
+ "type": "formula",
+ "expr": "atan2(datum.y - datum.py, datum.x - datum.px)",
+ "as": "angle"
+ },
+ {
+ "type": "formula",
+ "expr": "(datum.x-datum.px)*(datum.x-datum.px)+(datum.y-datum.py)*(datum.y-datum.py)",
+ "as": "distance"
+ },
+ {
+ "type": "collect",
+ "sort": {
+ "field": ["group", "angle", "distance"],
+ "order": ["ascending", "ascending", "ascending"]
+ }
+ },
+ {
+ "type": "window",
+ "sort": {
+ "field": ["angle", "distance"],
+ "order": ["ascending", "ascending"]
+ },
+ "groupby": ["group", "angle"],
+ "ops": ["last_value", "last_value"],
+ "frame": [null, null],
+ "fields": ["x", "y"],
+ "as": ["last_x", "last_y"]
+ },
+ {
+ "type": "formula",
+ "expr": "datum.x == datum.px && datum.y == datum.py?'no': datum.x == datum.last_x && datum.y == datum.last_y? 'no':'yes'",
+ "as": "colinear"
+ },
+ { "type": "filter", "expr": "datum.colinear=='no'" },
+ {
+ "type": "project",
+ "fields": ["group", "x", "y", "px", "py", "angle"]
+ },
+ {
+ "type": "window",
+ "sort": {
+ "field": ["angle", "distance"],
+ "order": ["ascending", "ascending"]
+ },
+ "groupby": ["group"],
+ "ops": ["row_number"],
+ "as": ["id"]
+ },
+ { "type": "formula", "expr": "datum.id-1", "as": "id" }
+ ]
+ },
+ {
+ "name": "groups",
+ "source": "calcs",
+ "transform": [
+ {
+ "type": "aggregate",
+ "groupby": ["group"],
+ "ops": ["values", "count"],
+ "fields": ["null", "null"],
+ "as": ["values", "count"]
+ }
+ ]
+ },
+ {
+ "name": "hull",
+ "values": [],
+ "on": [
+ { "trigger": "addPoint", "insert": "addPoint" },
+ { "trigger": "remPoint", "remove": "remPoint" }
+ ]
+ }
+ ],
+ "legends": [
+ {
+ "direction": "vertical",
+ "legendX": 1050,
+ "legendY": 0,
+ "orient": "none",
+ "stroke": "color",
+ "fill": "color",
+ "titleColor": "#b6bcdd",
+ "padding": 10,
+ "encode": {
+ "title": { "update": { "fontSize": { "value": 14 } } },
+ "symbols": { "update": { "fillOpacity": { "value": 0.4 } } },
+ "labels": {
+ "update": {
+ "fontSize": { "value": 12 },
+ "fill": { "value": "#b6bcdd" }
+ }
+ }
+ }
+ }
+ ],
+ "scales": [
+ {
+ "name": "color",
+ "type": "ordinal",
+ "range": { "scheme": "rainbow" },
+ "domain": { "data": "calcs", "field": "group" }
+ },
+ {
+ "name": "xscale",
+ "type": "linear",
+ "domain": { "data": "calcs", "field": "x" },
+ "range": [0, { "signal": "width" }],
+ "zero": true,
+ "domainMax": 100
+ },
+ {
+ "name": "yscale",
+ "type": "linear",
+ "domain": { "data": "calcs", "field": "y" },
+ "range": [{ "signal": "height" }, 0],
+ "zero": true,
+ "domainMax": 100
+ }
+ ],
+ "marks": [
+ {
+ "name": "points",
+ "type": "symbol",
+ "zindex": 1,
+ "from": { "data": "calcs" },
+ "encode": {
+ "update": {
+ "fill": { "field": "group", "scale": "color" },
+ "fillOpacity": { "value": 0.8 },
+ "size": { "value": 76 },
+ "stroke": { "field": "group", "scale": "color" },
+ "strokeWidth": { "value": 1 },
+ "strokeOpacity": { "value": 1 },
+ "x": { "scale": "xscale", "field": "x" },
+ "y": { "scale": "yscale", "field": "y" },
+ "tooltip": { "signal": "datum" }
+ }
+ }
+ },
+ {
+ "type": "group",
+ "name": "categories",
+ "from": {
+ "facet": { "data": "hull", "name": "facet", "groupby": ["group"] }
+ },
+ "marks": [
+ {
+ "type": "line",
+ "name": "category-line",
+ "from": { "data": "facet" },
+ "encode": {
+ "update": {
+ "interpolate": { "value": "catmull-rom-closed" },
+ "x": { "signal": "scale('xscale',datum.x)" },
+ "y": { "signal": "scale('yscale',datum.y)" },
+ "stroke": { "signal": "scale('color',datum.group)" },
+ "fill": { "signal": "scale('color',datum.group)" },
+ "fillOpacity": { "signal": "0.5" },
+ "strokeWidth": { "signal": "2" }
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "axes": [
+ {
+ "labelColor": "#b6bcdd",
+ "scale": "xscale",
+ "orient": "bottom",
+ "title": "Execution",
+ "titleColor": "#b6bcdd",
+ "tickCount": 10,
+ "zindex": 0
+ },
+ {
+ "labelColor": "#b6bcdd",
+ "scale": "yscale",
+ "orient": "left",
+ "title": "Vision",
+ "titleColor": "#b6bcdd",
+ "labelOverlap": true,
+ "tickCount": 10,
+ "zindex": 0
+ }
+ ]
+}
diff --git a/testdata/deneb/coronation-arc.vg.json b/testdata/deneb/coronation-arc.vg.json
new file mode 100644
index 0000000..a7d1f07
--- /dev/null
+++ b/testdata/deneb/coronation-arc.vg.json
@@ -0,0 +1,1129 @@
+{
+ "$schema": "https://vega.github.io/schema/vega/v5.json",
+ "description": "Dataviz by David Bacci: https://www.linkedin.com/in/davbacci/",
+ "width": 900,
+ "height": 800,
+ "background": "#192730",
+ "padding": {"bottom": 70, "left": 70, "right": 70, "top": 70},
+ "autosize": "pad",
+ "signals": [
+ {"name": "facetWidth", "value": 70},
+ {"name": "facetHeight", "value": 70},
+ {"name": "legendX", "update": "0"},
+ {"name": "legendY", "update": "1200"},
+ {"name": "keyTitleX", "update": "700"},
+ {"name": "keyTitleY", "update": "legendY+10"},
+ {"name": "keyX", "update": "817"},
+ {"name": "keyY", "update": "1270"},
+ {"name": "lifeCircleColour", "update": "'silver'"},
+ {"name": "legendLabelColour", "update": "'silver'"},
+ {"name": "monarchLabelColour", "update": "'#d0d0d2'"}
+ ],
+ "data": [
+ {
+ "name": "table",
+ "values": [
+ {
+ "House": "Wessex",
+ "Name": "Alfred the Great",
+ "Reign Start": "01/01/0886",
+ "Reign End": "26/10/0899",
+ "Reign Period": "13 years",
+ "Birth": "01/01/0849",
+ "Death": "26/10/0899",
+ "Age": 50,
+ "Notes": "Birth date is approximate",
+ "Reign Start Age": 37,
+ "Reign End Age": 50.8
+ },
+ {
+ "House": "Wessex",
+ "Name": "Edward the Elder",
+ "Reign Start": "26/10/0899",
+ "Reign End": "17/07/0924",
+ "Reign Period": "24 years, 266 days",
+ "Birth": "01/01/0874",
+ "Death": "17/07/0924",
+ "Age": 50,
+ "Notes": "Birth date is approximate",
+ "Reign Start Age": 25.8,
+ "Reign End Age": 50.6
+ },
+ {
+ "House": "Wessex",
+ "Name": "Athelstan",
+ "Reign Start": "17/07/0924",
+ "Reign End": "27/10/0939",
+ "Reign Period": "15 years",
+ "Birth": "01/01/0894",
+ "Death": "27/10/0939",
+ "Age": 45,
+ "Notes": "Birth date is approximate",
+ "Reign Start Age": 30.6,
+ "Reign End Age": 45.8
+ },
+ {
+ "House": "Wessex",
+ "Name": "Edmund I",
+ "Reign Start": "27/10/0939",
+ "Reign End": "26/05/0946",
+ "Reign Period": "6 years, 212 days",
+ "Birth": "01/01/0921",
+ "Death": "26/05/0946",
+ "Age": 25,
+ "Notes": "Birth date is approximate",
+ "Reign Start Age": 18.8,
+ "Reign End Age": 25.4
+ },
+ {
+ "House": "Wessex",
+ "Name": "Eadred",
+ "Reign Start": "26/05/0946",
+ "Reign End": "23/11/0955",
+ "Reign Period": "9 years, 182 days",
+ "Birth": "01/01/0923",
+ "Death": "23/11/0955",
+ "Age": 32,
+ "Notes": "Birth date is approximate",
+ "Reign Start Age": 23.4,
+ "Reign End Age": 32.9
+ },
+ {
+ "House": "Wessex",
+ "Name": "Eadwig",
+ "Reign Start": "23/11/0955",
+ "Reign End": "01/10/0959",
+ "Reign Period": "3 years, 313 days",
+ "Birth": "01/01/0940",
+ "Death": "01/10/0959",
+ "Age": 19,
+ "Notes": "Birth date is approximate",
+ "Reign Start Age": 15.9,
+ "Reign End Age": 19.8
+ },
+ {
+ "House": "Wessex",
+ "Name": "Edgar",
+ "Reign Start": "01/10/0959",
+ "Reign End": "08/07/0975",
+ "Reign Period": "15 years, 281 days",
+ "Birth": "01/01/0943",
+ "Death": "08/07/0975",
+ "Age": 31,
+ "Notes": "Birth date is approximate",
+ "Reign Start Age": 16.8,
+ "Reign End Age": 32.5
+ },
+ {
+ "House": "Wessex",
+ "Name": "Edward the Martyr",
+ "Reign Start": "08/07/0975",
+ "Reign End": "18/03/0978",
+ "Reign Period": "2 years, 254 days",
+ "Birth": "01/01/0962",
+ "Death": "18/03/0978",
+ "Age": 16,
+ "Notes": "Birth date is approximate",
+ "Reign Start Age": 13.5,
+ "Reign End Age": 16.2
+ },
+ {
+ "House": "Wessex",
+ "Name": "Aethelred II",
+ "Reign Start": "18/03/0978",
+ "Reign End": "25/12/1013",
+ "Reign Period": "35 years",
+ "Birth": "01/01/0966",
+ "Death": "23/04/1016",
+ "Age": 48,
+ "Notes": "Birth date is approximate",
+ "Reign Start Age": 12.2,
+ "Reign End Age": 48
+ },
+ {
+ "House": "Denmark",
+ "Name": "Sweyn Forkbeard",
+ "Reign Start": "25/12/1013",
+ "Reign End": "03/02/1014",
+ "Reign Period": "0 years, 41 days",
+ "Birth": "17/04/0963",
+ "Death": "03/02/1014",
+ "Age": 50,
+ "Notes": "",
+ "Reign Start Age": 50.7,
+ "Reign End Age": 51.3
+ },
+ {
+ "House": "Wessex",
+ "Name": "Aethelred II",
+ "Reign Start": "03/02/1014",
+ "Reign End": "23/04/1016",
+ "Reign Period": "2 years, 81 days",
+ "Birth": "01/01/0966",
+ "Death": "23/04/1016",
+ "Age": 48,
+ "Notes": "Birth date is approximate",
+ "Reign Start Age": 48.1,
+ "Reign End Age": 50.3
+ },
+ {
+ "House": "Wessex",
+ "Name": "Edmund II",
+ "Reign Start": "23/04/1016",
+ "Reign End": "30/11/1016",
+ "Reign Period": "0 years, 222 days",
+ "Birth": "01/01/0990",
+ "Death": "30/11/1016",
+ "Age": 26,
+ "Notes": "Birth date is approximate",
+ "Reign Start Age": 26.3,
+ "Reign End Age": 26.9
+ },
+ {
+ "House": "Denmark",
+ "Name": "Canute",
+ "Reign Start": "18/10/1016",
+ "Reign End": "12/11/1035",
+ "Reign Period": "19 years, 26 days",
+ "Birth": "01/01/0995",
+ "Death": "12/11/1035",
+ "Age": 40,
+ "Notes": "Birth date is approximate",
+ "Reign Start Age": 21.8,
+ "Reign End Age": 40.9
+ },
+ {
+ "House": "Denmark",
+ "Name": "Harold I",
+ "Reign Start": "12/11/1035",
+ "Reign End": "17/03/1040",
+ "Reign Period": "4 years, 127 days",
+ "Birth": "01/01/1016",
+ "Death": "17/03/1040",
+ "Age": 24,
+ "Notes": "Birth date is approximate",
+ "Reign Start Age": 19.9,
+ "Reign End Age": 24.2
+ },
+ {
+ "House": "Denmark",
+ "Name": "Harthacanute",
+ "Reign Start": "17/03/1040",
+ "Reign End": "08/06/1042",
+ "Reign Period": "2 years, 84 days",
+ "Birth": "01/01/1018",
+ "Death": "08/06/1042",
+ "Age": 24,
+ "Notes": "Birth date is approximate",
+ "Reign Start Age": 22.2,
+ "Reign End Age": 24.4
+ },
+ {
+ "House": "Wessex",
+ "Name": "Edward the Confessor",
+ "Reign Start": "08/06/1042",
+ "Reign End": "05/01/1066",
+ "Reign Period": "23 years, 212 days",
+ "Birth": "01/01/1003",
+ "Death": "05/01/1066",
+ "Age": 63,
+ "Notes": "Birth date is approximate",
+ "Reign Start Age": 39.5,
+ "Reign End Age": 63.1
+ },
+ {
+ "House": "Godwin",
+ "Name": "Harold II",
+ "Reign Start": "05/01/1066",
+ "Reign End": "14/10/1066",
+ "Reign Period": "0 years, 282 days",
+ "Birth": "01/01/1022",
+ "Death": "14/10/1066",
+ "Age": 44,
+ "Notes": "Birth date is approximate",
+ "Reign Start Age": 44,
+ "Reign End Age": 44.8
+ },
+ {
+ "House": "Normandy",
+ "Name": "William I",
+ "Reign Start": "25/12/1066",
+ "Reign End": "09/09/1087",
+ "Reign Period": "20 years, 259 days",
+ "Birth": "01/01/1028",
+ "Death": "09/09/1087",
+ "Age": 59,
+ "Notes": "Birth date is approximate",
+ "Reign Start Age": 39,
+ "Reign End Age": 59.7
+ },
+ {
+ "House": "Normandy",
+ "Name": "William II",
+ "Reign Start": "26/09/1087",
+ "Reign End": "02/08/1100",
+ "Reign Period": "12 years, 311 days",
+ "Birth": "01/01/1056",
+ "Death": "02/08/1100",
+ "Age": 44,
+ "Notes": "Birth date is approximate",
+ "Reign Start Age": 31.8,
+ "Reign End Age": 44.6
+ },
+ {
+ "House": "Normandy",
+ "Name": "Henry I",
+ "Reign Start": "05/08/1100",
+ "Reign End": "01/12/1135",
+ "Reign Period": "35 years, 119 days",
+ "Birth": "01/08/1068",
+ "Death": "01/12/1135",
+ "Age": 67,
+ "Notes": "Birth date is approximate",
+ "Reign Start Age": 32,
+ "Reign End Age": 67.4
+ },
+ {
+ "House": "Blois",
+ "Name": "Stephen",
+ "Reign Start": "22/12/1135",
+ "Reign End": "25/10/1154",
+ "Reign Period": "18 years, 308 days",
+ "Birth": "01/01/1096",
+ "Death": "25/10/1154",
+ "Age": 58,
+ "Notes": "Birth date is approximate",
+ "Reign Start Age": 40,
+ "Reign End Age": 58.9
+ },
+ {
+ "House": "Plantagenet",
+ "Name": "Henry II",
+ "Reign Start": "19/12/1154",
+ "Reign End": "06/07/1189",
+ "Reign Period": "34 years, 200 days",
+ "Birth": "05/03/1133",
+ "Death": "06/07/1189",
+ "Age": 56,
+ "Notes": "",
+ "Reign Start Age": 21.8,
+ "Reign End Age": 56.4
+ },
+ {
+ "House": "Plantagenet",
+ "Name": "Richard I",
+ "Reign Start": "03/09/1189",
+ "Reign End": "06/04/1199",
+ "Reign Period": "9 years, 216 days",
+ "Birth": "08/09/1157",
+ "Death": "06/04/1199",
+ "Age": 41,
+ "Notes": "",
+ "Reign Start Age": 32,
+ "Reign End Age": 41.6
+ },
+ {
+ "House": "Plantagenet",
+ "Name": "John",
+ "Reign Start": "27/05/1199",
+ "Reign End": "19/10/1216",
+ "Reign Period": "17 years, 146 days",
+ "Birth": "24/12/1166",
+ "Death": "19/10/1216",
+ "Age": 49,
+ "Notes": "",
+ "Reign Start Age": 32.4,
+ "Reign End Age": 49.9
+ },
+ {
+ "House": "Plantagenet",
+ "Name": "Henry III",
+ "Reign Start": "28/10/1216",
+ "Reign End": "16/11/1272",
+ "Reign Period": "56 years, 20 days",
+ "Birth": "01/10/1207",
+ "Death": "16/11/1272",
+ "Age": 65,
+ "Notes": "",
+ "Reign Start Age": 9.1,
+ "Reign End Age": 65.2
+ },
+ {
+ "House": "Plantagenet",
+ "Name": "Edward I",
+ "Reign Start": "20/11/1272",
+ "Reign End": "07/07/1307",
+ "Reign Period": "34 years, 230 days",
+ "Birth": "17/06/1239",
+ "Death": "07/07/1307",
+ "Age": 68,
+ "Notes": "",
+ "Reign Start Age": 33.5,
+ "Reign End Age": 68.1
+ },
+ {
+ "House": "Plantagenet",
+ "Name": "Edward II",
+ "Reign Start": "08/07/1307",
+ "Reign End": "20/01/1327",
+ "Reign Period": "19 years, 197 days",
+ "Birth": "25/04/1284",
+ "Death": "21/09/1327",
+ "Age": 43,
+ "Notes": "",
+ "Reign Start Age": 23.2,
+ "Reign End Age": 42.8
+ },
+ {
+ "House": "Plantagenet",
+ "Name": "Edward III",
+ "Reign Start": "25/01/1327",
+ "Reign End": "21/06/1377",
+ "Reign Period": "50 years, 148 days",
+ "Birth": "13/11/1312",
+ "Death": "21/06/1377",
+ "Age": 64,
+ "Notes": "",
+ "Reign Start Age": 14.2,
+ "Reign End Age": 64.6
+ },
+ {
+ "House": "Plantagenet",
+ "Name": "Richard II",
+ "Reign Start": "22/06/1377",
+ "Reign End": "29/09/1399",
+ "Reign Period": "22 years, 100 days",
+ "Birth": "06/01/1367",
+ "Death": "14/02/1400",
+ "Age": 33,
+ "Notes": "",
+ "Reign Start Age": 10.5,
+ "Reign End Age": 32.8
+ },
+ {
+ "House": "Lancaster",
+ "Name": "Henry IV",
+ "Reign Start": "30/09/1399",
+ "Reign End": "20/03/1413",
+ "Reign Period": "13 years, 172 days",
+ "Birth": "01/04/1367",
+ "Death": "20/03/1413",
+ "Age": 45,
+ "Notes": "Birth date is approximate",
+ "Reign Start Age": 32.5,
+ "Reign End Age": 46
+ },
+ {
+ "House": "Lancaster",
+ "Name": "Henry V",
+ "Reign Start": "21/03/1413",
+ "Reign End": "31/08/1422",
+ "Reign Period": "9 years, 164 days",
+ "Birth": "16/09/1386",
+ "Death": "31/08/1422",
+ "Age": 35,
+ "Notes": "",
+ "Reign Start Age": 26.5,
+ "Reign End Age": 36
+ },
+ {
+ "House": "Lancaster",
+ "Name": "Henry VI",
+ "Reign Start": "01/09/1422",
+ "Reign End": "04/03/1461",
+ "Reign Period": "38 years, 185 days",
+ "Birth": "06/12/1421",
+ "Death": "21/05/1471",
+ "Age": 49,
+ "Notes": "",
+ "Reign Start Age": 0.7,
+ "Reign End Age": 39.3
+ },
+ {
+ "House": "York",
+ "Name": "Edward IV",
+ "Reign Start": "04/03/1461",
+ "Reign End": "03/10/1470",
+ "Reign Period": "9 years, 214 days",
+ "Birth": "28/04/1442",
+ "Death": "09/04/1483",
+ "Age": 40,
+ "Notes": "",
+ "Reign Start Age": 18.9,
+ "Reign End Age": 28.5
+ },
+ {
+ "House": "Lancaster",
+ "Name": "Henry VI",
+ "Reign Start": "03/10/1470",
+ "Reign End": "11/04/1471",
+ "Reign Period": "0 years. 191 days",
+ "Birth": "06/12/1421",
+ "Death": "21/05/1471",
+ "Age": 49,
+ "Notes": "",
+ "Reign Start Age": 48.9,
+ "Reign End Age": 49.4
+ },
+ {
+ "House": "York",
+ "Name": "Edward IV",
+ "Reign Start": "11/04/1471",
+ "Reign End": "09/04/1483",
+ "Reign Period": "11 years, 364 days",
+ "Birth": "28/04/1442",
+ "Death": "09/04/1483",
+ "Age": 40,
+ "Notes": "",
+ "Reign Start Age": 29,
+ "Reign End Age": 41
+ },
+ {
+ "House": "York",
+ "Name": "Edward V",
+ "Reign Start": "09/04/1483",
+ "Reign End": "25/06/1483",
+ "Reign Period": "0 years, 78 days",
+ "Birth": "02/11/1470",
+ "Death": "01/01/1483",
+ "Age": 12,
+ "Notes": "Death date is approximate",
+ "Reign Start Age": 12.4,
+ "Reign End Age": 12.7
+ },
+ {
+ "House": "York",
+ "Name": "Richard III",
+ "Reign Start": "26/06/1483",
+ "Reign End": "22/08/1485",
+ "Reign Period": "2 years, 58 days",
+ "Birth": "02/10/1452",
+ "Death": "22/08/1485",
+ "Age": 32,
+ "Notes": "",
+ "Reign Start Age": 30.8,
+ "Reign End Age": 32.9
+ },
+ {
+ "House": "Tudor",
+ "Name": "Henry VII",
+ "Reign Start": "22/08/1485",
+ "Reign End": "21/04/1509",
+ "Reign Period": "23 years, 243 days",
+ "Birth": "28/01/1457",
+ "Death": "21/04/1509",
+ "Age": 52,
+ "Notes": "",
+ "Reign Start Age": 28.6,
+ "Reign End Age": 52.3
+ },
+ {
+ "House": "Tudor",
+ "Name": "Henry VIII",
+ "Reign Start": "22/04/1509",
+ "Reign End": "28/01/1547",
+ "Reign Period": "37 years, 282 days",
+ "Birth": "29/06/1491",
+ "Death": "28/01/1547",
+ "Age": 55,
+ "Notes": "",
+ "Reign Start Age": 17.8,
+ "Reign End Age": 55.6
+ },
+ {
+ "House": "Tudor",
+ "Name": "Edward VI",
+ "Reign Start": "28/01/1547",
+ "Reign End": "06/07/1553",
+ "Reign Period": "6 years, 160 days",
+ "Birth": "12/10/1537",
+ "Death": "06/07/1553",
+ "Age": 15,
+ "Notes": "",
+ "Reign Start Age": 9.3,
+ "Reign End Age": 15.7
+ },
+ {
+ "House": "Tudor",
+ "Name": "Mary I",
+ "Reign Start": "19/07/1553",
+ "Reign End": "17/11/1558",
+ "Reign Period": "5 years, 122 days",
+ "Birth": "18/02/1516",
+ "Death": "17/11/1558",
+ "Age": 42,
+ "Notes": "",
+ "Reign Start Age": 37.4,
+ "Reign End Age": 42.8
+ },
+ {
+ "House": "Tudor",
+ "Name": "Philip",
+ "Reign Start": "25/07/1554",
+ "Reign End": "17/11/1558",
+ "Reign Period": "4 years, 116 days",
+ "Birth": "21/05/1527",
+ "Death": "13/09/1598",
+ "Age": 71,
+ "Notes": "",
+ "Reign Start Age": 27.2,
+ "Reign End Age": 31.5
+ },
+ {
+ "House": "Tudor",
+ "Name": "Elizabeth I",
+ "Reign Start": "17/11/1558",
+ "Reign End": "24/03/1603",
+ "Reign Period": "44 years, 128 days",
+ "Birth": "07/09/1533",
+ "Death": "24/03/1603",
+ "Age": 69,
+ "Notes": "",
+ "Reign Start Age": 25.2,
+ "Reign End Age": 69.6
+ },
+ {
+ "House": "Stuart",
+ "Name": "James I",
+ "Reign Start": "24/03/1603",
+ "Reign End": "27/03/1625",
+ "Reign Period": "22 years, 4 days",
+ "Birth": "19/06/1566",
+ "Death": "27/03/1625",
+ "Age": 58,
+ "Notes": "",
+ "Reign Start Age": 36.8,
+ "Reign End Age": 58.8
+ },
+ {
+ "House": "Stuart",
+ "Name": "Charles I",
+ "Reign Start": "27/03/1625",
+ "Reign End": "30/01/1649",
+ "Reign Period": "23 years, 310 days",
+ "Birth": "19/11/1600",
+ "Death": "30/01/1649",
+ "Age": 48,
+ "Notes": "",
+ "Reign Start Age": 24.4,
+ "Reign End Age": 48.2
+ },
+ {
+ "House": "Commonwealth",
+ "Name": "Oliver Cromwell",
+ "Reign Start": "16/12/1653",
+ "Reign End": "03/09/1658",
+ "Reign Period": "4 years, 262 days",
+ "Birth": "25/04/1599",
+ "Death": "03/09/1658",
+ "Age": 59,
+ "Notes": "",
+ "Reign Start Age": 54.7,
+ "Reign End Age": 59.4
+ },
+ {
+ "House": "Commonwealth",
+ "Name": "Richard Cromwell",
+ "Reign Start": "03/09/1658",
+ "Reign End": "07/05/1659",
+ "Reign Period": "0 years, 247 days",
+ "Birth": "04/10/1626",
+ "Death": "12/07/1712",
+ "Age": 85,
+ "Notes": "",
+ "Reign Start Age": 31.9,
+ "Reign End Age": 32.6
+ },
+ {
+ "House": "Stuart",
+ "Name": "Charles II",
+ "Reign Start": "29/05/1660",
+ "Reign End": "06/02/1685",
+ "Reign Period": "24 years, 254 days",
+ "Birth": "29/05/1630",
+ "Death": "06/02/1685",
+ "Age": 54,
+ "Notes": "",
+ "Reign Start Age": 30,
+ "Reign End Age": 54.7
+ },
+ {
+ "House": "Stuart",
+ "Name": "James II",
+ "Reign Start": "06/02/1685",
+ "Reign End": "23/12/1688",
+ "Reign Period": "3 years, 321 days",
+ "Birth": "14/10/1633",
+ "Death": "16/09/1701",
+ "Age": 67,
+ "Notes": "",
+ "Reign Start Age": 51.4,
+ "Reign End Age": 55.2
+ },
+ {
+ "House": "Stuart/Orange",
+ "Name": "Mary II",
+ "Reign Start": "13/02/1689",
+ "Reign End": "28/12/1694",
+ "Reign Period": "5 years, 319 days",
+ "Birth": "30/04/1662",
+ "Death": "28/12/1694",
+ "Age": 32,
+ "Notes": "",
+ "Reign Start Age": 26.8,
+ "Reign End Age": 32.7
+ },
+ {
+ "House": "Stuart/Orange",
+ "Name": "William III",
+ "Reign Start": "13/02/1689",
+ "Reign End": "08/03/1702",
+ "Reign Period": "13 years, 24 days",
+ "Birth": "04/11/1650",
+ "Death": "08/03/1702",
+ "Age": 51,
+ "Notes": "",
+ "Reign Start Age": 38.3,
+ "Reign End Age": 51.4
+ },
+ {
+ "House": "Stuart/Orange",
+ "Name": "Anne",
+ "Reign Start": "08/03/1702",
+ "Reign End": "01/08/1714",
+ "Reign Period": "12 years, 147 days",
+ "Birth": "06/02/1665",
+ "Death": "01/08/1714",
+ "Age": 49,
+ "Notes": "",
+ "Reign Start Age": 37.1,
+ "Reign End Age": 49.5
+ },
+ {
+ "House": "Hanover ",
+ "Name": "George I",
+ "Reign Start": "01/08/1714",
+ "Reign End": "11/06/1727",
+ "Reign Period": "12 years, 315 days",
+ "Birth": "28/05/1660",
+ "Death": "11/06/1727",
+ "Age": 67,
+ "Notes": "",
+ "Reign Start Age": 54.2,
+ "Reign End Age": 67.1
+ },
+ {
+ "House": "Hanover ",
+ "Name": "George II",
+ "Reign Start": "11/06/1727",
+ "Reign End": "25/10/1760",
+ "Reign Period": "33 years, 126 days",
+ "Birth": "30/10/1683",
+ "Death": "25/10/1760",
+ "Age": 76,
+ "Notes": "",
+ "Reign Start Age": 43.6,
+ "Reign End Age": 77
+ },
+ {
+ "House": "Hanover ",
+ "Name": "George III",
+ "Reign Start": "25/10/1760",
+ "Reign End": "29/01/1820",
+ "Reign Period": "59 years, 97 days",
+ "Birth": "24/05/1738",
+ "Death": "29/01/1820",
+ "Age": 81,
+ "Notes": "",
+ "Reign Start Age": 22.4,
+ "Reign End Age": 81.7
+ },
+ {
+ "House": "Hanover ",
+ "Name": "George IV",
+ "Reign Start": "29/01/1820",
+ "Reign End": "26/06/1830",
+ "Reign Period": "10 years, 149 days",
+ "Birth": "12/08/1763",
+ "Death": "26/06/1830",
+ "Age": 67,
+ "Notes": "",
+ "Reign Start Age": 56.5,
+ "Reign End Age": 66.9
+ },
+ {
+ "House": "Hanover ",
+ "Name": "William IV",
+ "Reign Start": "26/06/1830",
+ "Reign End": "20/06/1837",
+ "Reign Period": "6 years, 360 days",
+ "Birth": "21/08/1765",
+ "Death": "20/06/1837",
+ "Age": 71,
+ "Notes": "",
+ "Reign Start Age": 64.9,
+ "Reign End Age": 71.9
+ },
+ {
+ "House": "Hanover ",
+ "Name": "Victoria",
+ "Reign Start": "20/06/1837",
+ "Reign End": "22/01/1901",
+ "Reign Period": "63 years, 217 days",
+ "Birth": "24/05/1819",
+ "Death": "22/01/1901",
+ "Age": 81,
+ "Notes": "",
+ "Reign Start Age": 18.1,
+ "Reign End Age": 81.7
+ },
+ {
+ "House": "Saxe-Coburg Gotha",
+ "Name": "Edward VII",
+ "Reign Start": "22/01/1901",
+ "Reign End": "06/05/1910",
+ "Reign Period": "9 years, 105 days",
+ "Birth": "09/11/1841",
+ "Death": "06/05/1910",
+ "Age": 68,
+ "Notes": "",
+ "Reign Start Age": 59.2,
+ "Reign End Age": 68.5
+ },
+ {
+ "House": "Windsor",
+ "Name": "George V",
+ "Reign Start": "06/05/1910",
+ "Reign End": "20/01/1936",
+ "Reign Period": "25 years, 260 days",
+ "Birth": "03/06/1865",
+ "Death": "20/01/1936",
+ "Age": 70,
+ "Notes": "",
+ "Reign Start Age": 45,
+ "Reign End Age": 70.7
+ },
+ {
+ "House": "Windsor",
+ "Name": "Edward VIII",
+ "Reign Start": "20/01/1936",
+ "Reign End": "11/12/1936",
+ "Reign Period": "0 years, 327 days",
+ "Birth": "23/06/1894",
+ "Death": "28/05/1972",
+ "Age": 77,
+ "Notes": "",
+ "Reign Start Age": 41.6,
+ "Reign End Age": 42.5
+ },
+ {
+ "House": "Windsor",
+ "Name": "George VI",
+ "Reign Start": "11/12/1936",
+ "Reign End": "06/02/1952",
+ "Reign Period": "15 years, 58 days",
+ "Birth": "14/12/1895",
+ "Death": "06/02/1952",
+ "Age": 56,
+ "Notes": "",
+ "Reign Start Age": 41,
+ "Reign End Age": 56.2
+ },
+ {
+ "House": "Windsor",
+ "Name": "Elizabeth II",
+ "Reign Start": "06/02/1952",
+ "Reign End": "08/09/2022",
+ "Reign Period": "70 years, 215 days",
+ "Birth": "21/04/1926",
+ "Death": "08/09/2022",
+ "Age": 96,
+ "Notes": "",
+ "Reign Start Age": 25.8,
+ "Reign End Age": 96.4
+ },
+ {
+ "House": "Windsor",
+ "Name": "Charles III",
+ "Reign Start": "08/09/2022",
+ "Reign End": "",
+ "Reign Period": "221 days",
+ "Birth": "14/11/1948",
+ "Death": "",
+ "Age": 74,
+ "Notes": "",
+ "Reign Start Age": 73.9,
+ "Reign End Age": 74.5
+ }
+ ]
+ }
+ ],
+ "legends": [
+ {
+ "fill": "color",
+ "title": "House",
+ "direction": "horizontal",
+ "titleColor": {"signal": "legendLabelColour"},
+ "labelColor": {"signal": "legendLabelColour"},
+ "orient": "none",
+ "legendY": {"signal": "legendY"},
+ "legendX": {"signal": "legendX"},
+ "padding": 0,
+ "columns": 4,
+ "offset": 110,
+ "rowPadding": 10,
+ "columnPadding": 60,
+ "strokeColor": "",
+ "encode": {
+ "symbols": {
+ "enter": {
+ "shape": {
+ "value": "m -0.01332636,-0.63421406 c -0.0558846,0.005699 -0.0990523,0.0530842 -0.0990523,0.11048006 0,0.0306255 0.0141754,0.0599157 0.0343008,0.0800062 l -0.2400122,0.31620306 c -0.0371009,0.0491761 -0.0944205,0.080006 -0.15619691,0.080006 -0.0522679,0 -0.10415657,-0.0238589 -0.14095991,-0.0609539 l -0.14476916,-0.1447691 c 0.024734,-0.0203588 0.0380926,-0.0531429 0.0380926,-0.0876245 0,-0.0612223 -0.0492344,-0.11048008 -0.11048004,-0.11048008 -0.0612222,0 -0.11048,0.0492347 -0.11048,0.11048008 0,0.0496428 0.0312088,0.0924954 0.0761967,0.10667078 -3.3892e-4,0.005323 0.002469,0.009859 0.003809,0.0152254 l 0.11428929,0.46859077 c 0.005891,0.0235672 0.0290508,0.0380925 0.0533179,0.0380925 h 0.69717481 l 0.69717459,-0.003809 c 0.0241506,-1.2834e-4 0.0474843,-0.014642 0.0533179,-0.0380925 L 0.86668648,-0.21897 c 0.0013,-0.005244 2.829e-4,-0.0100336 0,-0.0152254 0.043167,-0.0152254 0.076197,-0.0583813 0.076197,-0.10667078 0,-0.0612165 -0.049293,-0.11048001 -0.11048,-0.11048001 -0.061216,0 -0.11048002,0.0492347 -0.11048002,0.11048001 0,0.0348842 0.0166254,0.067254 0.0418843,0.0876245 l -0.14857835,0.14476919 c -0.0372759,0.0372758 -0.088237,0.0609539 -0.14095991,0.0609539 -0.0619514,0 -0.11911941,-0.0303924 -0.15619692,-0.080006 L 0.08186941,-0.44753726 c 0.0190171,-0.0199507 0.0304508,-0.0464928 0.0304508,-0.0761971 0,-0.0612222 -0.0530845,-0.11048006 -0.11428929,-0.11048006 -0.003826,0 -0.0077,-3.7975e-4 -0.0114336,0 z m -0.67812599,1.03623851 c -0.0240922,0.004928 -0.0418843,0.0277673 -0.0418843,0.0533179 v 0.12572284 c 0,0.029167 0.0241506,0.053318 0.0533179,0.053318 h 1.36768093 c 0.0291674,-10e-8 0.0533179,-0.0241507 0.0533179,-0.053318 V 0.45534234 c 0,-0.0292257 -0.0241506,-0.0533179 -0.0533179,-0.0533179 h -1.36768151 c -0.00365,0 -0.007992,-7.0469e-4 -0.011433,10e-9 z"
+ },
+ "strokeWidth": {"value": 0},
+ "size": {"value": 500}
+ }
+ }
+ }
+ }
+ ],
+ "scales": [
+ {
+ "name": "color",
+ "type": "ordinal",
+ "domain": {"data": "table", "field": "House"},
+ "range": [
+ "#e7298a",
+ "#cccf3a",
+ "#f65beb",
+ "#d95f02",
+ "#66a61e",
+ "#28a3dc",
+ "#fc6064",
+ "#73f65c",
+ "#9f3cb1",
+ "#2751e3",
+ "#d62728",
+ "#5154b3",
+ "#e2a902",
+ "#8ca252",
+ "#1b9e77"
+ ]
+ }
+ ],
+ "marks": [
+ {
+ "type": "group",
+ "style": "cell",
+ "layout": {
+ "columns": 8,
+ "padding": {"row": 75, "column": 60},
+ "align": "all",
+ "bounds": "flush",
+ "center": true
+ },
+ "marks": [
+ {
+ "type": "group",
+ "style": "cell",
+ "name": "monarchs",
+ "from": {
+ "facet": {"data": "table", "name": "facet", "groupby": ["Name"]}
+ },
+ "sort": {"field": "datum.index", "order": "ascending"},
+ "title": {
+ "text": {"signal": "parent.Name"},
+ "color": {
+ "signal": "monarchLabelColour"
+ },
+ "fontSize": 12,
+ "fontWeight": "400",
+ "dy": 8,
+ "orient": "bottom",
+ "lineHeight": 0,
+ "align": "center",
+ "anchor": "middle"
+ },
+ "encode": {
+ "update": {
+ "width": {"signal": "facetWidth"},
+ "height": {"signal": "facetHeight"}
+ }
+ },
+ "marks": [
+ {
+ "type": "arc",
+ "name": "life",
+ "from": {"data": "facet"},
+ "encode": {
+ "enter": {},
+ "update": {
+ "fill": {"signal": "lifeCircleColour"},
+ "x": {"signal": "item.mark.group.width/2"},
+ "y": {"signal": "item.mark.group.height/2"},
+ "startAngle": {"value": 0},
+ "endAngle": {"signal": "(2*PI/100)*datum.Age"},
+ "innerRadius": {"signal": "28"},
+ "outerRadius": {"signal": "29"},
+ "tooltip": {"signal": "item"}
+ }
+ }
+ },
+ {
+ "type": "arc",
+ "name": "reign",
+ "from": {"data": "facet"},
+ "encode": {
+ "enter": {},
+ "update": {
+ "fill": {"field": "House", "scale": "color"},
+ "x": {"signal": "item.mark.group.width/2"},
+ "y": {"signal": "item.mark.group.height/2"},
+ "startAngle": {
+ "signal": "(2*PI/100)*datum['Reign Start Age']"
+ },
+ "endAngle": {"signal": "(2*PI/100)*datum['Reign End Age']"},
+ "innerRadius": {"signal": "25"},
+ "outerRadius": {"signal": "32"},
+ "tooltip": {"signal": "item"}
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "text",
+ "name": "keyTitle",
+ "encode": {
+ "enter": {},
+ "update": {
+ "fill": {"signal": "legendLabelColour"},
+ "text": {"value": "Life & Reign"}, "fontWeight":{"value": "bold"},"fontSize":{"value": 11},
+ "x": {"signal": "keyTitleX"},
+ "y": {"signal": "keyTitleY"}
+ }
+ }
+ },
+ {
+ "type": "arc",
+ "name": "key",
+ "data": [{}],
+ "encode": {
+ "enter": {},
+ "update": {
+ "fill": {"signal": "lifeCircleColour"},
+ "x": {"signal": "keyX "},
+ "y": {"signal": "keyY "},
+ "startAngle": {"value": 0},
+ "endAngle": {"signal": "(2*PI/100)*75"},
+ "innerRadius": {"signal": "28"},
+ "outerRadius": {"signal": "29"},
+ "tooltip": {"signal": "item"}
+ }
+ }
+ },
+ {
+ "type": "arc",
+ "name": "key2",
+ "data": [{}],
+ "encode": {
+ "enter": {},
+ "update": {
+ "fill": {"signal": "lifeCircleColour"},
+ "x": {"signal": "keyX"},
+ "y": {"signal": "keyY"},
+ "startAngle": {"signal": "(2*PI/100)*25"},
+ "endAngle": {"signal": "(2*PI/100)*50"},
+ "innerRadius": {"signal": "25"},
+ "outerRadius": {"signal": "32"},
+ "tooltip": {"signal": "item"}
+ }
+ }
+ },
+ {
+ "type": "text",
+ "name": "birth",
+ "from": {"data": "key2"},
+ "encode": {
+ "enter": {},
+ "update": {
+ "fill": {"signal": "legendLabelColour"},
+ "text": {"value": "birth"}, "fontSize":{"value": 11},
+ "align": {"value": "center"},
+ "x": {"signal": "datum.x"},
+ "y": {"signal": "datum.y-datum.outerRadius - 2"}
+ }
+ }
+ },
+ {
+ "type": "text",
+ "name": "death",
+ "from": {"data": "key2"},
+ "encode": {
+ "enter": {},
+ "update": {
+ "fill": {"signal": "legendLabelColour"},
+ "text": {"value": "death"},"fontSize":{"value": 11},
+ "align": {"value": "right"},
+ "x": {"signal": "datum.x-datum.outerRadius"},
+ "y": {"signal": "datum.y"}
+ }
+ }
+ },
+ {
+ "type": "text",
+ "name": "reign",
+ "from": {"data": "key2"},
+ "encode": {
+ "enter": {},
+ "update": {
+ "fill": {"signal": "legendLabelColour"},
+ "text": {"value": "reign"},"fontSize":{"value": 11},
+ "align": {"value": "left"},
+ "x": {"signal": "datum.x+27"},
+ "y": {"signal": "datum.y+30"}
+ }
+ }
+ },
+ {
+ "type": "arc",
+ "name": "key3",
+ "data": [{}],
+ "encode": {
+ "enter": {},
+ "update": {
+ "fill": {"signal": "lifeCircleColour"},
+ "x": {"signal": "keyX +125"},
+ "y": {"signal": "keyY "},
+ "startAngle": {"value": 0},
+ "endAngle": {"signal": "2*PI"},
+ "innerRadius": {"signal": "28"},
+ "outerRadius": {"signal": "29"},
+ "tooltip": {"signal": "item"}
+ }
+ }
+ },
+ {
+ "type": "text",
+ "name": "life",
+ "from": {"data": "key3"},
+ "encode": {
+ "enter": {},
+ "update": {
+ "fill": {"signal": "legendLabelColour"},
+ "text": {"value": "100 years"},"fontSize":{"value": 10},
+ "align": {"value": "center"},
+ "baseline": {"value": "middle"},
+ "x": {"signal": "datum.x"},
+ "y": {"signal": "datum.y"}
+ }
+ }
+ }
+ ],
+ "config": {
+ "view": {"stroke": "red"},
+ "style": {"col": {"fontSize": 11}, "cell": {"strokeWidth": {"signal": "0"}}}
+ }
+}
\ No newline at end of file
diff --git a/testdata/deneb/coronation-arc.vg.json.svg b/testdata/deneb/coronation-arc.vg.json.svg
new file mode 100644
index 0000000..11046e7
--- /dev/null
+++ b/testdata/deneb/coronation-arc.vg.json.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/testdata/deneb/gantt-chart.vg.json b/testdata/deneb/gantt-chart.vg.json
new file mode 100644
index 0000000..b9bafe3
--- /dev/null
+++ b/testdata/deneb/gantt-chart.vg.json
@@ -0,0 +1,1265 @@
+{
+ "$schema": "https://vega.github.io/schema/vega/v5.json",
+ "description": "Dataviz by David Bacci: https://www.linkedin.com/in/davbacci/",
+ "autosize": "pad",
+ "background": "white",
+ "padding": {"left": 10, "right": 10, "top": 10, "bottom": 10},
+ "signals": [
+ {"name": "y_step", "value": 33},
+ {"name": "x_step", "value": 26},
+ {"name": "days", "update": "data('days')[0]['days']"},
+ {"name": "yPaddingInner", "value": 0.45},
+ {"name": "yPaddingOuter", "value": 0.2},
+ {"name": "taskColumn", "value": 130},
+ {"name": "startColumn", "value": 45},
+ {"name": "endColumn", "value": 45},
+ {"name": "daysColumn", "value": 35},
+ {"name": "progressColumn", "value": 55},
+ {"name": "columnPadding", "value": 15},
+ {
+ "name": "height",
+ "update": "bandspace(domain('y').length, yPaddingInner, yPaddingOuter) * y_step"
+ },
+ {"name": "ganttWidth", "update": "days * x_step"},
+ {"name": "width", "update": "100"},
+ {"name": "length", "update": "span(domain('xDays'))"},
+ {"name": "today", "update": "datetime(now())"},
+ {"name": "todayRule", "update": "timeFormat(today,'%d/%m/%y')"}
+ ],
+ "data": [
+ {
+ "name": "input",
+ "values": [
+ {
+ "id": 1,
+ "phase": "Initiation",
+ "task": "Requirements gathering",
+ "milestone": null,
+ "start": "01/03/2023",
+ "end": "03/03/2023",
+ "completion": 50,
+ "dependencies": null
+ },
+ {
+ "id": 2,
+ "phase": "Initiation",
+ "task": "Stakeholder workshop",
+ "milestone": null,
+ "start": "05/03/2023",
+ "end": "06/03/2023",
+ "completion": 75,
+ "dependencies": null
+ },
+ {
+ "id": 3,
+ "phase": "Initiation",
+ "task": "Story boarding",
+ "milestone": null,
+ "start": "05/03/2023",
+ "end": "12/03/2023",
+ "completion": 80,
+ "dependencies": "1"
+ },
+ {
+ "id": 4,
+ "phase": "Initiation",
+ "task": "Initiation complete",
+ "milestone": true,
+ "start": "13/03/2023",
+ "end": "13/03/2023",
+ "completion": 100,
+ "dependencies": 3
+ },
+ {
+ "id": 5,
+ "phase": "Design",
+ "task": "E2E data solution design",
+ "milestone": null,
+ "start": "07/03/2023",
+ "end": "15/03/2023",
+ "completion": 35,
+ "dependencies": null
+ },
+ {
+ "id": 6,
+ "phase": "Design",
+ "task": "Wireframes",
+ "milestone": null,
+ "start": "12/03/2023",
+ "end": "16/03/2023",
+ "completion": 80,
+ "dependencies": "5"
+ },
+ {
+ "id": 7,
+ "phase": "Design",
+ "task": "Prototyping",
+ "milestone": null,
+ "start": "13/03/2023",
+ "end": "22/03/2023",
+ "completion": 40,
+ "dependencies": 6
+ },
+ {
+ "id": 8,
+ "phase": "Design",
+ "task": "Design complete",
+ "milestone": true,
+ "start": "22/03/2023",
+ "end": "22/03/2023",
+ "completion": 0,
+ "dependencies": 7
+ },
+ {
+ "id": 9,
+ "phase": "Implementation",
+ "task": "ETL",
+ "milestone": null,
+ "start": "09/03/2023",
+ "end": "19/03/2023",
+ "completion": 15,
+ "dependencies": null
+ },
+ {
+ "id": 10,
+ "phase": "Implementation",
+ "task": "Data modelling",
+ "milestone": null,
+ "start": "15/03/2023",
+ "end": "21/03/2023",
+ "completion": 40,
+ "dependencies": null
+ },
+ {
+ "id": 11,
+ "phase": "Implementation",
+ "task": "Measures & KPIs",
+ "milestone": null,
+ "start": "15/03/2023",
+ "end": "17/03/2023",
+ "completion": 50,
+ "dependencies": null
+ },
+ {
+ "id": 12,
+ "phase": "Implementation",
+ "task": "Dataviz ",
+ "milestone": null,
+ "start": "20/03/2023",
+ "end": "23/03/2023",
+ "completion": 15,
+ "dependencies": 11
+ },
+ {
+ "id": 13,
+ "phase": "Implementation",
+ "task": "Performance testing",
+ "milestone": null,
+ "start": "20/03/2023",
+ "end": "23/03/2023",
+ "completion": 20,
+ "dependencies": null
+ },
+ {
+ "id": 14,
+ "phase": "Implementation",
+ "task": "Implementation complete",
+ "milestone": true,
+ "start": "24/03/2023",
+ "end": "24/03/2023",
+ "completion": 0,
+ "dependencies": 13
+ },
+ {
+ "id": 15,
+ "phase": "Deployment",
+ "task": "User training",
+ "milestone": null,
+ "start": "23/03/2023",
+ "end": "24/03/2023",
+ "completion": 65,
+ "dependencies": null
+ },
+ {
+ "id": 16,
+ "phase": "Deployment",
+ "task": "Refresh schedule & alerts",
+ "milestone": null,
+ "start": "27/03/2023",
+ "end": "27/03/2023",
+ "completion": 50,
+ "dependencies": 15
+ },
+ {
+ "id": 17,
+ "phase": "Deployment",
+ "task": "Executive presentation",
+ "milestone": null,
+ "start": "28/03/2023",
+ "end": "31/03/2023",
+ "completion": 0,
+ "dependencies": 16
+ },
+ {
+ "id": 18,
+ "phase": "Deployment",
+ "task": "Deployment complete",
+ "milestone": true,
+ "start": "31/03/2023",
+ "end": "31/03/2023",
+ "completion": 0,
+ "dependencies": null
+ }
+ ],
+ "format": {
+ "parse": {"start": "date:'%d/%m/%Y'", "end": "date:'%d/%m/%Y'"}
+ },
+ "transform": [
+ {
+ "type": "formula",
+ "as": "encodedStart",
+ "expr": "timeFormat(datum.start,'%d/%m/%y')"
+ },
+ {
+ "type": "formula",
+ "as": "updatedEnd",
+ "expr": "datetime(toNumber(datum.end)+(1000*60*60*24))"
+ },
+ {
+ "type": "formula",
+ "as": "encodedEnd",
+ "expr": "timeFormat(datum.updatedEnd,'%d/%m/%y')"
+ },
+ {
+ "type": "formula",
+ "as": "days",
+ "expr": "round((datum.updatedEnd-datum.start)/1000/60/60/24)"
+ },
+ {
+ "type": "formula",
+ "as": "completionLabel",
+ "expr": "datum.completion+'%'"
+ },
+ {
+ "type": "window",
+ "sort": {"field": "start", "order": "ascending"},
+ "ops": ["rank"],
+ "as": ["taskSort"],
+ "groupby": ["phase"]
+ }
+ ]
+ },
+ {
+ "name": "phases",
+ "source": "input",
+ "transform": [
+ {
+ "type": "aggregate",
+ "fields": ["start", "end", "completion", "task", "completion"],
+ "ops": ["min", "max", "sum", "count", "mean"],
+ "as": ["start", "end", "sum", "count", "completion"],
+ "groupby": ["phase"]
+ },
+ {
+ "type": "lookup",
+ "from": "input",
+ "key": "start",
+ "values": ["encodedStart"],
+ "fields": ["start"]
+ },
+ {
+ "type": "lookup",
+ "from": "input",
+ "key": "end",
+ "values": ["encodedEnd"],
+ "fields": ["end"]
+ },
+ {"type": "formula", "as": "task", "expr": "datum.phase"},
+ {"type": "formula", "as": "taskSort", "expr": "0"},
+ {
+ "type": "formula",
+ "as": "completion",
+ "expr": "round(datum.completion)"
+ },
+ {
+ "type": "formula",
+ "as": "days",
+ "expr": "round((datum.end-datum.start)/1000/60/60/24)+1"
+ },
+ {
+ "type": "window",
+ "sort": {"field": "start", "order": "ascending"},
+ "ops": ["rank"],
+ "as": ["phaseSort"]
+ }
+ ]
+ },
+ {
+ "name": "tasks",
+ "source": "input",
+ "transform": [
+ {"type": "filter", "expr": "datum.milestone != true"},
+ {
+ "type": "lookup",
+ "from": "phases",
+ "key": "phase",
+ "values": ["phaseSort"],
+ "fields": ["phase"]
+ }
+ ]
+ },
+ {
+ "name": "milestones",
+ "source": "input",
+ "transform": [
+ {"type": "filter", "expr": "datum.milestone == true"},
+ {
+ "type": "lookup",
+ "from": "phases",
+ "key": "phase",
+ "values": ["phaseSort"],
+ "fields": ["phase"]
+ }
+ ]
+ },
+ {
+ "name": "y_scale",
+ "source": ["tasks", "phases", "milestones"],
+ "transform": [
+ {
+ "type": "window",
+ "sort": {
+ "field": ["phaseSort", "taskSort"],
+ "order": ["ascending", "ascending"]
+ },
+ "ops": ["row_number"],
+ "as": ["finalSort"]
+ }
+ ]
+ },
+ {
+ "name": "days",
+ "source": "input",
+ "transform": [
+ {
+ "type": "aggregate",
+ "fields": ["start", "end"],
+ "ops": ["min", "max"],
+ "as": ["s", "e"]
+ },
+ {
+ "type": "formula",
+ "as": "days",
+ "expr": "round((datum.e-datum.s)/1000/60/60/24)"
+ }
+ ]
+ },
+ {
+ "name": "dayScale",
+ "transform": [
+ {
+ "type": "sequence",
+ "start": -1,
+ "stop": {"signal": "days+8"},
+ "as": "sequence"
+ },
+ {
+ "type": "formula",
+ "as": "date",
+ "expr": "datetime(toNumber(data('days')[0]['s'])+((1000*60*60*24)*datum.sequence))"
+ },
+ {
+ "type": "formula",
+ "as": "encodedDate",
+ "expr": "timeFormat(datum.date,'%d/%m/%y')"
+ }
+ ]
+ },
+ {
+ "name": "weekends",
+ "source": "dayScale",
+ "transform": [
+ {
+ "type": "filter",
+ "expr": "day(datum.date) == 6 || day(datum.date) == 0"
+ }
+ ]
+ },
+ {
+ "name": "dependencyArrows",
+ "source": "input",
+ "transform": [
+ {
+ "type": "filter",
+ "expr": "isValid(datum.dependencies) && datum.dependencies!='' "
+ }
+ ]
+ },
+ {
+ "name": "dependencyLines",
+ "source": "y_scale",
+ "transform": [
+ {
+ "type": "filter",
+ "expr": "isValid(datum.dependencies) && datum.dependencies!='' "
+ },
+ {
+ "type": "formula",
+ "expr": "split(datum.dependencies,',')" ,"as":"dependencies"
+ },
+ {"type": "flatten", "fields": ["dependencies"]},
+ {
+ "type": "lookup",
+ "from": "y_scale",
+ "key": "id",
+ "values": ["task", "finalSort", "encodedEnd", "start", "end"],
+ "fields": ["dependencies"],
+ "as": [
+ "sourceTask",
+ "sourceFinalSort",
+ "sourceEncodedEnd",
+ "sourceStart",
+ "sourceEnd"
+ ]
+ },
+ {
+ "type": "formula",
+ "as": "a",
+ "expr": "[scale('xDays',datum.encodedStart),scale('y',datum.task)+bandwidth('y')/2]"
+ },
+ {
+ "type": "formula",
+ "as": "b",
+ "expr": "[datum.start > datum.sourceEnd?scale('xDays',datum.sourceEncodedEnd) - bandwidth('xDays')/2:scale('xDays',datum.encodedStart) - bandwidth('xDays')/2,scale('y',datum.task)+bandwidth('y')/2]"
+ },
+ {
+ "type": "formula",
+ "as": "c",
+ "expr": "[scale('xDays',datum.sourceEncodedEnd) - bandwidth('xDays')/2,scale('y',datum.sourceTask)+bandwidth('y')/2]"
+ },
+ {
+ "type": "formula",
+ "as": "d",
+ "expr": "[datum.start <= datum.sourceEnd?scale('xDays',datum.encodedStart) - bandwidth('xDays')/2:null ,datum.start <= datum.sourceEnd?scale('y',datum.sourceTask)+(bandwidth('y')*1.5):null]"
+ },
+ {
+ "type": "formula",
+ "as": "e",
+ "expr": "[datum.start <= datum.sourceEnd?scale('xDays',datum.sourceEncodedEnd) - bandwidth('xDays')/2:null ,datum.start <= datum.sourceEnd?scale('y',datum.sourceTask)+(bandwidth('y')*1.5):null]"
+ },
+ {"type": "fold", "fields": ["a", "b", "d", "e", "c"]},
+ {"type": "filter", "expr": "datum.value[0] != null"}
+
+ ]
+ }
+ ],
+ "layout": {
+ "padding": {"signal": "columnPadding"},
+ "bounds": "flush",
+ "align": "none"
+ },
+ "marks": [
+ {
+ "type": "group",
+ "name": "taskColumn",
+ "style": "cell",
+ "title": {
+ "text": "Task",
+ "anchor": "start",
+ "frame": "group",
+ "align": "left",
+ "color": "#666666"
+ },
+ "encode": {
+ "update": {
+ "width": {"signal": "taskColumn"},
+ "height": {"signal": "height"}
+ }
+ },
+ "marks": [
+ {
+ "type": "text",
+ "style": "col",
+ "from": {"data": "y_scale"},
+ "encode": {
+ "update": {
+ "align": {"value": "left"},
+ "fill": {
+ "signal": "datum.phase == datum.task?'#666666':'#666666'"
+ },
+ "dx": {"signal": "datum.phase != datum.task?'0':'0'"},
+ "y": {"signal": "scale('y',datum.task)+bandwidth('y')/2"},
+ "text": {
+ "signal": "datum.phase == datum.task?upper(datum.task):datum.task"
+ },
+ "fontWeight": {
+ "signal": "datum.phase == datum.task?'bold':'normal'"
+ },
+ "baseline": {"value": "middle"},
+ "limit": {"signal": "taskColumn"}
+ }
+ }
+ },
+ {
+ "type": "symbol",
+ "from": {"data": "y_scale"},
+ "encode": {
+ "update": {
+ "fill": {
+ "signal": "datum.phase == datum.task?scale('cStroke', datum.phase):'transparent'"
+ },
+ "x2": {"signal": "datum.phase != datum.task?'0':'-10'"},
+ "yc": {"signal": "(scale('y',datum.task)+bandwidth('y')/2)-1"},
+ "shape": {"value": "square"}
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "group",
+ "name": "startColumn",
+ "style": "cell",
+ "title": {
+ "text": "Start",
+ "anchor": "end",
+ "frame": "group",
+ "align": "right",
+ "color": "#666666"
+ },
+ "encode": {
+ "update": {
+ "width": {"signal": "startColumn"},
+ "height": {"signal": "height"}
+ }
+ },
+ "marks": [
+ {
+ "type": "text",
+ "style": "col",
+ "from": {"data": "y_scale"},
+ "encode": {
+ "update": {
+ "align": {"value": "right"},
+ "x": {"signal": "startColumn"},
+ "fill": {
+ "signal": "datum.phase == datum.task?'#666666':'#666666'"
+ },
+ "y": {"signal": "scale('y',datum.task)+bandwidth('y')/2"},
+ "text": {"signal": "timeFormat(datum.start,' %d/%m/%y')"},
+ "baseline": {"value": "middle"},
+ "fontWeight": {
+ "signal": "datum.phase == datum.task?'bold':'normal'"
+ }
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "group",
+ "name": "endColumn",
+ "style": "cell",
+ "title": {
+ "text": "End",
+ "anchor": "end",
+ "frame": "group",
+ "align": "right",
+ "color": "#666666"
+ },
+ "encode": {
+ "update": {
+ "width": {"signal": "endColumn"},
+ "height": {"signal": "height"}
+ }
+ },
+ "marks": [
+ {
+ "type": "text",
+ "style": "col",
+ "from": {"data": "y_scale"},
+ "encode": {
+ "update": {
+ "align": {"value": "right"},
+ "x": {"signal": "endColumn"},
+ "fill": {
+ "signal": "datum.phase == datum.task?'#666666':'#666666'"
+ },
+ "y": {"signal": "scale('y',datum.task)+bandwidth('y')/2"},
+ "text": {"signal": "timeFormat(datum.end,' %d/%m/%y')"},
+ "baseline": {"value": "middle"},
+ "fontWeight": {
+ "signal": "datum.phase == datum.task?'bold':'normal'"
+ }
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "group",
+ "name": "daysColumn",
+ "style": "cell",
+ "title": {
+ "text": "Days",
+ "anchor": "end",
+ "frame": "group",
+ "align": "right",
+ "color": "#666666"
+ },
+ "encode": {
+ "update": {
+ "width": {"signal": "daysColumn"},
+ "height": {"signal": "height"}
+ }
+ },
+ "marks": [
+ {
+ "type": "text",
+ "style": "col",
+ "from": {"data": "y_scale"},
+ "encode": {
+ "update": {
+ "align": {"value": "right"},
+ "fill": {
+ "signal": "datum.phase == datum.task?'#666666':'#666666'"
+ },
+ "x": {"signal": "daysColumn"},
+ "y": {"signal": "scale('y',datum.task)+bandwidth('y')/2"},
+ "text": {"signal": "datum.days+' d'"},
+ "baseline": {"value": "middle"},
+ "fontWeight": {
+ "signal": "datum.phase == datum.task?'bold':'normal'"
+ }
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "group",
+ "name": "completionColumn",
+ "style": "cell",
+ "title": {
+ "text": "Progress",
+ "anchor": "start",
+ "frame": "group",
+ "color": "#666666"
+ },
+ "encode": {
+ "update": {
+ "width": {"signal": "progressColumn"},
+ "height": {"signal": "height"}
+ }
+ },
+ "marks": [
+ {
+ "type": "rect",
+ "from": {"data": "y_scale"},
+ "encode": {
+ "update": {
+ "x": {"signal": "0"},
+ "width": {"signal": "item.mark.group.width"},
+ "stroke": {"signal": "'#a0d786'"},
+ "yc": {"signal": "(scale('y',datum.task)+bandwidth('y')/2)"},
+ "strokeWidth": {"value": 1},
+ "height": {"signal": "bandwidth('y')"}
+ }
+ }
+ },
+ {
+ "type": "rect",
+ "from": {"data": "y_scale"},
+ "encode": {
+ "update": {
+ "x": {"signal": "0"},
+ "width": {
+ "signal": "(item.mark.group.width/100)*datum.completion"
+ },
+ "fill": {"signal": "'#c6ecb5'"},
+ "yc": {"signal": "(scale('y',datum.task)+bandwidth('y')/2)"},
+ "strokeWidth": {"value": 1},
+ "height": {"signal": "bandwidth('y')"}
+ }
+ }
+ },
+ {
+ "type": "text",
+ "from": {"data": "y_scale"},
+ "encode": {
+ "update": {
+ "align": {"value": "left"},
+ "dx": {"value": 3},
+ "fill": {"signal": "'#666666'"},
+ "y": {"signal": "scale('y',datum.task)+bandwidth('y')/2"},
+ "text": {"signal": "datum.completion+'%'"},
+ "baseline": {"value": "middle"}
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "group",
+ "name": "gantt",
+ "encode": {
+ "update": {
+ "width": {"signal": "ganttWidth"},
+ "height": {"signal": "height"}
+ }
+ },
+ "marks": [
+ {
+ "name": "labelSizes",
+ "clip": true,
+ "type": "text",
+ "from": {"data": "tasks"},
+ "encode": {
+ "enter": {
+ "fill": {"value": "transparent"},
+ "text": {"signal": "datum.completionLabel"},
+ "x": {"value": 0},
+ "y": {"value": 10}
+ }
+ }
+ },
+ {
+ "type": "rect",
+ "description": "Weekend shading",
+ "name": "weekendShading",
+ "from": {"data": "weekends"},
+ "encode": {
+ "update": {
+ "x": {"field": "encodedDate", "scale": "xDays"},
+ "width": {"signal": "bandwidth('xDays')"},
+ "y": {"value": -15},
+ "height": {"signal": "height+15"},
+ "strokeWidth": {"signal": "1"},
+ "stroke": {"value": "#f1f1f1"},
+ "fill": {"value": "#f1f1f1"}
+ }
+ }
+ },
+ {
+ "type": "group",
+ "from": {
+ "facet": {
+ "name": "dependencyLinesFacet",
+ "data": "dependencyLines",
+ "groupby": ["id","dependencies"]
+ }
+ },
+ "marks": [
+ {
+ "type": "line",
+ "from": {"data": "dependencyLinesFacet"},
+ "encode": {
+ "enter": {
+ "x": {"signal": "datum.value[0]"},
+ "y": {"signal": "datum.value[1]"},
+ "stroke": {"value": "#888888"},
+ "strokeWidth": {"value": 1.5},
+ "interpolate": {"value": "linear"},
+ "strokeJoin": {"value": "bevel"},
+ "strokeCap": {"value": "round"},
+ "strokeDash": {"signal": "0"},
+ "defined": {"value": true}
+ }
+ }
+ }
+ ]
+ },
+ {
+ "name": "todayRule",
+ "description": "Today rule",
+ "type": "rule",
+ "data": [{}],
+ "encode": {
+ "update": {
+ "x": {
+ "signal": "scale('xDays',todayRule) + (bandwidth('xDays')/2)"
+ },
+ "y": {"value": 0},
+ "y2": {"signal": "height"},
+ "height": {"signal": "height"},
+ "strokeWidth": {
+ "signal": "indata('dayScale', 'encodedDate', todayRule)? 1:0"
+ },
+ "stroke": {"value": "#377eb9"},
+ "strokeDash": {"value": [2, 2]},
+ "opacity": {"value": 0.8}
+ }
+ }
+ },
+ {
+ "name": "todayText",
+ "description": "Today text",
+ "type": "text",
+ "data": [{}],
+ "encode": {
+ "update": {
+ "x": {
+ "signal": "scale('xDays',todayRule) + (bandwidth('xDays')/2)"
+ },
+ "y": {"value": 0},
+ "fill": {"value": "#377eb9"},
+ "text": {
+ "signal": "indata('dayScale', 'encodedDate', todayRule)? 'Today':''"
+ },
+ "angle": {"signal": "90"},
+ "baseline": {"value": "bottom"},
+ "dx": {"value": 10},
+ "dy": {"value": -4},
+ "opacity": {"value": 1},
+ "font": {"value": ""}
+ }
+ }
+ },
+ {
+ "name": "todayHighlight",
+ "description": "Today highlight",
+ "type": "rect",
+ "data": [{}],
+ "encode": {
+ "update": {
+ "cornerRadius": {"value": 0},
+ "x": {"signal": "scale('xDays',todayRule) "},
+ "width": {"signal": "bandwidth('xDays')"},
+ "y": {"value": -15},
+ "height": {"signal": "15"},
+ "fill": {"value": "#a5c8e4"},
+ "opacity": {
+ "signal": "indata('dayScale', 'encodedDate', todayRule)? 1:0"
+ }
+ }
+ }
+ },
+ {
+ "name": "taskBars",
+ "description": "The task bars (serve as an outline for percent complete)",
+ "type": "group",
+ "clip": false,
+ "from": {"data": "tasks"},
+ "encode": {
+ "update": {
+ "x": {"scale": "xDays", "field": "encodedStart"},
+ "x2": {"scale": "xDays", "field": "encodedEnd"},
+ "y": {"scale": "y", "field": "task"},
+ "height": {"signal": "bandwidth('y')"},
+ "tooltip": {
+ "signal": "{'Phase':datum.phase ,'Task':datum.task , 'Start':timeFormat(datum.start,'%a, %d %B %Y' ),'End':timeFormat(datum.end,'%a, %d %B %Y' ), 'Days':datum.days,'Progress':datum.completionLabel }"
+ },
+ "fill": {"field": "phase", "scale": "cFill"},
+ "stroke": {"field": "phase", "scale": "cStroke"},
+ "strokeWidth": {"value": 1},
+ "cornerRadius": {"value": 5},
+ "zindex": {"value": 2}
+ }
+ },
+ "transform": [
+ {
+ "type": "lookup",
+ "from": "labelSizes",
+ "key": "text",
+ "fields": ["datum.completionLabel"],
+ "values": ["bounds.x1", "bounds.x2"],
+ "as": ["a", "b"]
+ }
+ ],
+ "marks": [
+ {
+ "name": "fills",
+ "description": "Percent complete for each task",
+ "type": "rect",
+ "clip": true,
+ "encode": {
+ "update": {
+ "x": {"signal": "item.mark.group.x1"},
+ "y": {"signal": "item.mark.group.y1"},
+ "height": {"signal": "item.mark.group.height"},
+ "width": {
+ "signal": "(item.mark.group.width/100)* item.mark.group.datum.completion"
+ },
+ "fill": {
+ "signal": "item.mark.group.datum.phase",
+ "scale": "cStroke"
+ },
+ "stroke": {
+ "signal": "item.mark.group.datum.phase",
+ "scale": "cStroke"
+ },
+ "strokeWidth": {"value": 2},
+ "cornerRadiusBottomLeft": {"value": 5},
+ "cornerRadiusTopLeft": {"value": 5},
+ "tooltip": {
+ "signal": "{'Phase':parent.phase ,'Task':parent.task , 'Start':timeFormat(parent.start,'%a, %d %B %Y' ),'End':timeFormat(parent.end,'%a, %d %B %Y' ), 'Days':parent.days,'Progress':parent.completionLabel }"
+ }
+ }
+ }
+ },
+ {
+ "name": "completeText",
+ "description": "Completion Text",
+ "type": "text",
+ "encode": {
+ "update": {
+ "x": {
+ "signal": "(item.mark.group.width/100)* parent.completion"
+ },
+ "align": {"signal": "'right'"},
+ "dx": {"signal": "-2"},
+ "y": {"signal": "item.mark.group.height-bandwidth('y')/2+1"},
+ "baseline": {"value": "middle"},
+ "text": {
+ "signal": "((item.mark.group.width/100)* parent.completion)>item.mark.group.b && parent.completion>0?parent.completionLabel:''"
+ },
+ "fill": {"value": "white"}
+ }
+ }
+ },
+ {
+ "name": "taskName",
+ "description": "Task name",
+ "type": "text",
+ "encode": {
+ "update": {
+ "x": {"signal": "item.mark.group.width"},
+ "align": {"signal": "'left'"},
+ "dx": {"signal": "5"},
+ "y": {"signal": "item.mark.group.height-bandwidth('y')/2+1"},
+ "baseline": {"value": "middle"},
+ "text": {
+ "signal": "parent.task + ' ('+ parent.days+' d'+')'"
+ },
+ "fill": {"value": "#666666"}
+ }
+ }
+ }
+ ]
+ },
+ {
+ "name": "phaseBars",
+ "description": "The phase bars (serve as an outline for percent complete)",
+ "type": "group",
+ "clip": false,
+ "from": {"data": "phases"},
+ "encode": {
+ "update": {
+ "x": {"scale": "xDays", "field": "encodedStart"},
+ "x2": {"scale": "xDays", "field": "encodedEnd"},
+ "y": {"signal": "scale('y', datum.phase)+bandwidth('y')/4"},
+ "height": {"signal": "bandwidth('y')/2"},
+ "tooltip": {
+ "signal": "{'Phase':datum.phase ,'Task':datum.task , 'Start':timeFormat(datum.start,'%a, %d %B %Y' ),'End':timeFormat(datum.end,'%a, %d %B %Y' ), 'Days':datum.days,'Progress':datum.completion+'%' }"
+ },
+ "fill": {"field": "phase", "scale": "cFill"},
+ "stroke": {"field": "phase", "scale": "cStroke"},
+ "strokeWidth": {"value": 1},
+ "zindex": {"value": 2}
+ }
+ },
+ "marks": [
+ {
+ "name": "fills",
+ "description": "Percent complete for each phase",
+ "type": "rect",
+ "clip": true,
+ "encode": {
+ "update": {
+ "x": {"signal": "item.mark.group.x1"},
+ "y": {"signal": "item.mark.group.y1"},
+ "height": {"signal": "item.mark.group.height"},
+ "width": {
+ "signal": "(item.mark.group.width/100)* item.mark.group.datum.completion"
+ },
+ "fill": {
+ "signal": "item.mark.group.datum.phase",
+ "scale": "cStroke"
+ },
+ "stroke": {
+ "signal": "item.mark.group.datum.phase",
+ "scale": "cStroke"
+ },
+ "strokeWidth": {"value": 2},
+ "tooltip": {
+ "signal": "{'Phase':parent.phase ,'Task':parent.task , 'Start':timeFormat(parent.start,'%a, %d %B %Y' ),'End':timeFormat(parent.end,'%a, %d %B %Y' ), 'Days':parent.days,'Progress':parent.completion+'%' }"
+ }
+ }
+ }
+ },
+ {
+ "type": "path",
+ "name": "phaseStart",
+ "description": "Phase start",
+ "encode": {
+ "update": {
+ "x": {"signal": "item.mark.group.x1"},
+ "y": {"signal": "item.mark.group.height"},
+ "strokeWidth": {"value": 0},
+ "scaleX": {"signal": "item.mark.group.height/60"},
+ "scaleY": {"signal": "item.mark.group.height/60"},
+ "path": {
+ "value": "M 0,0 C 0,20 0,40 0,60 20,40 40,20 60,0 40,0 20,0 0,0 Z"
+ },
+ "angle": {"value": 0},
+ "fill": {
+ "signal": "item.mark.group.datum.phase",
+ "scale": "cStroke"
+ },
+ "stroke": {
+ "signal": "item.mark.group.datum.phase",
+ "scale": "cStroke"
+ },
+ "tooltip": {"signal": "item.mark.group.datum"}
+ }
+ }
+ },
+ {
+ "type": "path",
+ "name": "phaseEnd",
+ "description": "Phase end ",
+ "encode": {
+ "update": {
+ "x": {
+ "signal": "item.mark.group.width-(item.mark.group.height)+1"
+ },
+ "y": {"signal": "item.mark.group.height"},
+ "strokeWidth": {"value": 0},
+ "scaleX": {"signal": "item.mark.group.height/60"},
+ "scaleY": {"signal": "item.mark.group.height/60"},
+ "path": {
+ "value": "m 60,0 c 0,20 0,40 0,60 C 40,40 20,20 0,0 20,0 40,0 60,0 Z"
+ },
+ "angle": {"value": 0},
+ "fill": {
+ "signal": "item.mark.group.datum.phase",
+ "scale": "cStroke"
+ },
+ "stroke": {
+ "signal": "item.mark.group.datum.phase",
+ "scale": "cStroke"
+ },
+ "tooltip": {"signal": "item.mark.group.datum"}
+ }
+ }
+ },
+ {
+ "name": "taskName",
+ "description": "Task name",
+ "type": "text",
+ "encode": {
+ "update": {
+ "x": {"signal": "item.mark.group.width"},
+ "align": {"signal": "'left'"},
+ "dx": {"signal": "5"},
+ "y": {"signal": "item.mark.group.height-bandwidth('y')/4+1"},
+ "baseline": {"value": "middle"},
+ "text": {
+ "signal": "item.mark.group.datum.task + ' ('+ item.mark.group.datum.days+' d'+')'"
+ },
+ "fill": {"value": "#666666"}
+ }
+ }
+ }
+ ]
+ },
+ {
+ "name": "milestoneSymbols",
+ "description": "Milestones",
+ "type": "symbol",
+ "from": {"data": "milestones"},
+ "encode": {
+ "update": {
+ "x": {
+ "signal": "scale('xDays',datum.encodedStart)+bandwidth('xDays')/2"
+ },
+ "y": {"signal": "scale('y',datum.task)+bandwidth('y')/2"},
+ "size": {"signal": "pow( min(y_step,x_step),1.85)"},
+ "shape": {"value": "diamond"},
+ "fill": {
+ "signal": "datum.completion > 0? scale('cStroke', datum.phase):scale('cFill', datum.phase)"
+ },
+ "stroke": {"field": "phase", "scale": "cStroke"},
+ "strokeWidth": {"value": 1},
+ "tooltip": {
+ "signal": "{'Phase':datum.phase ,'Task':datum.task , 'Start':timeFormat(datum.start,'%a, %d %B %Y' ),'End':timeFormat(datum.end,'%a, %d %B %Y' ), 'Days':datum.days,'Progress':datum.completionLabel }"
+ }
+ }
+ }
+ },
+ {
+ "name": "milestoneName",
+ "description": "Milestone name",
+ "from": {"data": "milestoneSymbols"},
+ "type": "text",
+ "encode": {
+ "update": {
+ "x": {"signal": "datum.x"},
+ "align": {"signal": "'left'"},
+ "dx": {"signal": "15"},
+ "y": {"signal": "datum.y"},
+ "baseline": {"value": "middle"},
+ "text": {"signal": "datum.datum.task"},
+ "fill": {"value": "#666666"}
+ }
+ }
+ },
+ {
+ "name": "dependencyArrowSymbol",
+ "description": "Dependency arrows",
+ "type": "symbol",
+ "from": {"data": "dependencyArrows"},
+ "encode": {
+ "update": {
+ "shape": {"value": "triangle-right"},
+ "x": {"signal": "scale('xDays',datum.encodedStart)-3"},
+ "y": {"signal": "scale('y',datum.task)+bandwidth('y')/2"},
+ "fill": {"value": "#6a6a6a"},
+ "size": {"signal": "pow( min(y_step,x_step),1.3)"}
+ }
+ }
+ }
+ ],
+ "axes": [
+ {
+ "description": "Day axis",
+ "ticks": true,
+ "labelPadding": -12,
+ "scale": "xDays",
+ "tickSize": 15,
+ "orient": "top",
+ "bandPosition": 0,
+ "grid": false,
+ "zindex": 1,
+ "encode": {
+ "labels": {
+ "update": {
+ "text": [
+ {
+ "signal": "timeFormat(timeParse(datum.label,'%d/%m/%y'),'%d')"
+ }
+ ]
+ }
+ }
+ }
+ },
+ {
+ "description": "Month axis",
+ "scale": "xDays",
+ "domain": false,
+ "orient": "top",
+ "offset": 0,
+ "tickSize": 25,
+ "labelFontSize": 12,
+ "bandPosition": 0,
+ "grid": false,
+ "zindex": 0,
+ "encode": {
+ "ticks": {
+ "update": {
+ "strokeOpacity": [
+ {
+ "test": "timeFormat(timeParse(datum.label,'%d/%m/%y'),'%d') == '01'",
+ "value": 1
+ },
+ {"value": 0}
+ ]
+ }
+ },
+ "labels": {
+ "update": {
+ "text": [
+ {
+ "test": "timeFormat(timeParse(datum.label,'%d/%m/%y'),'%d') == '15'",
+ "signal": "timeFormat(timeParse(datum.label,'%d/%m/%y'),'%B')"
+ },
+ {"value": ""}
+ ]
+ }
+ }
+ }
+ },
+ {
+ "scale": "y",
+ "orient": "left",
+ "encode": {
+ "ticks": {
+ "update": {
+ "x2": {
+ "signal": "-taskColumn-startColumn-endColumn-daysColumn-progressColumn-(columnPadding*5)-15"
+ }
+ }
+ }
+ },
+ "tickColor": "#f1f1f1",
+ "bandPosition": 1.35,
+ "labels": false,
+ "title": "",
+ "ticks": true,
+ "zindex": 0
+ }
+ ]
+ }
+ ],
+ "scales": [
+ {
+ "name": "xDays",
+ "type": "band",
+ "domain": {"data": "dayScale", "fields": ["encodedDate"]},
+ "range": {"signal": "[0,ganttWidth]"}
+ },
+ {
+ "name": "y",
+ "type": "band",
+ "domain": {
+ "fields": [{"data": "y_scale", "field": "task"}],
+ "sort": {"op": "min", "field": "finalSort", "order": "ascending"}
+ },
+ "range": {"step": {"signal": "y_step"}},
+ "paddingInner": {"signal": "yPaddingInner"},
+ "paddingOuter": {"signal": "yPaddingOuter"}
+ },
+ {
+ "name": "cStroke",
+ "type": "ordinal",
+ "range": [
+ "hsl(207, 54%, 47%)",
+ "hsl(118, 41%, 49%)",
+ "hsl(292, 35%, 47%)",
+ "hsl(30, 100%, 50%)",
+ "hsl(359, 80%, 50%)"
+ ],
+ "domain": {"data": "input", "field": "phase"}
+ },
+ {
+ "name": "cFill",
+ "type": "ordinal",
+ "range": [
+ "hsl(207, 54%, 77%)",
+ "hsl(118, 41%, 79%)",
+ "hsl(292, 35%, 77%)",
+ "hsl(30, 100%, 80%)",
+ "hsl(359, 80%, 80%)"
+ ],
+ "domain": {"data": "input", "field": "phase"}
+ }
+ ],
+ "config": {
+ "view": {"stroke": "transparent"},
+ "style": {
+ "col": {"fontSize": 11},
+ "cell": {"strokeWidth": {"signal": "0"}}
+ },
+ "font": "Arial",
+ "text": {"font": "Arial", "fontSize": 10, "fill": "#666666"},
+ "axis": {
+ "labelColor": "#666666",
+ "labelFontSize": 10,
+ "titleFont": "arial",
+ "titleColor": "#252423",
+ "titleFontSize": 16,
+ "titleFontWeight": "normal"
+ },
+ "axisY": {"labelPadding": 10}
+ }
+}
\ No newline at end of file
diff --git a/testdata/deneb/gantt-chart.vg.json.svg b/testdata/deneb/gantt-chart.vg.json.svg
new file mode 100644
index 0000000..ecbbb6a
--- /dev/null
+++ b/testdata/deneb/gantt-chart.vg.json.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/testdata/deneb/infographic-bar-chart.vg.json b/testdata/deneb/infographic-bar-chart.vg.json
new file mode 100644
index 0000000..0836b91
--- /dev/null
+++ b/testdata/deneb/infographic-bar-chart.vg.json
@@ -0,0 +1,203 @@
+{
+ "$schema": "https://vega.github.io/schema/vega/v5.json",
+ "description": "Dataviz by David Bacci: https://www.linkedin.com/in/davbacci/",
+ "autosize": "pad",
+ "background": "#f0eeef",
+ "width": {"signal": "group1Width+group2Width+group3Width"},
+ "height": 600,
+ "padding": 5,
+ "signals": [
+ {"name": "group1Width", "update": "130"},
+ {"name": "group2Width", "update": "100"},
+ {"name": "group3Width", "update": "700"},
+ {"name": "innerScaleSize", "update": "4"}
+ ],
+ "data": [
+ {
+ "name": "table",
+ "values": [
+ {"name": "Cheetah", "speed": 75},
+ {"name": "Sailfish", "speed": 67},
+ {"name": "Ostrich", "speed": 56},
+ {"name": "Jackrabbit", "speed": 45},
+ {"name": "Warthog", "speed": 35},
+ {"name": "Human", "speed": 23}
+ ],
+ "transform": [
+ {
+ "type": "window",
+ "sort": {"field": "speed", "order": "descending"},
+ "ops": ["rank"],
+ "as": ["rank"]
+ }
+ ]
+ },
+ {
+ "name": "linkTable",
+ "source": ["table"],
+ "transform": [
+ {
+ "type": "formula",
+ "as": "shadow",
+ "expr": "'M ' + group1Width + ' ' + scale('y', datum.name) + ' L '+ scale('x', 0) + ' '+ scale('yInner', datum.name) + ' L ' + scale('x', 0) + ' ' + (scale('yInner', datum.name)+bandwidth('yInner')) + ' L ' + group1Width + ' ' + (scale('y', datum.name)+bandwidth('y')) "
+ },
+ {
+ "type": "formula",
+ "as": "arrow",
+ "expr": "'M ' + ((scale('x', datum.speed)) -1) + ' ' + scale('yInner', datum.name) + ' L ' + (scale('x', datum.speed)+bandwidth('yInner')/2) +' ' + (scale('yInner', datum.name)+ bandwidth('yInner')/2) +' L ' + ((scale('x', datum.speed))-1) + ' ' + (scale('yInner', datum.name)+ bandwidth('yInner')) "
+ }
+ ]
+ }
+ ],
+ "scales": [
+ {
+ "name": "x",
+ "type": "linear",
+ "domain": {"data": "table", "field": "speed"},
+ "nice": true,
+ "range": {
+ "signal": "[group1Width+group2Width,group1Width+group2Width+group3Width]"
+ }
+ },
+ {
+ "name": "y",
+ "domain": {
+ "data": "table",
+ "field": "name",
+ "sort": {"field": "speed", "op": "min", "order": "descending"}
+ },
+ "type": "band",
+ "paddingInner": 0.1,
+ "range": "height"
+ },
+ {
+ "name": "yInner",
+ "domain": {
+ "data": "table",
+ "field": "name",
+ "sort": {"field": "speed", "op": "min", "order": "descending"}
+ },
+ "type": "band",
+ "paddingInner": 0.1,
+ "range": {
+ "signal": "[height/innerScaleSize, height-(height/innerScaleSize)]"
+ }
+ },
+ {
+ "name": "colour",
+ "type": "ordinal",
+ "range": {"scheme": "category10"},
+ "domain": {"data": "table", "field": "name"}
+ }
+ ],
+ "marks": [
+ {
+ "type": "rect",
+ "from": {"data": "table"},
+ "name": "outerBars",
+ "encode": {
+ "enter": {
+ "x": {"value": 0},
+ "x2": {"signal": "group1Width"},
+ "y": {"scale": "y", "field": "name"},
+ "height": {"scale": "y", "band": 1}
+ },
+ "update": {"fill": {"field": "name", "scale": "colour"}}
+ }
+ },
+ {
+ "type": "path",
+ "name": "shadows",
+ "from": {"data": "linkTable"},
+ "encode": {
+ "update": {
+ "strokeWidth": {"value": 0},
+ "path": {"signal": "datum.shadow"},
+ "fill": {
+ "signal": "merge(hsl(scale('colour', datum.name)), {l:0.33})"
+ }
+ }
+ }
+ },
+ {
+ "type": "rect",
+ "from": {"data": "table"},
+ "name": "innerBars",
+ "encode": {
+ "update": {
+ "x": {"scale": "x", "signal": "0"},
+ "x2": {
+ "scale": "x",
+ "signal": "datum.speed",
+ "offset": {"value": 0}
+ },
+ "y": {"scale": "yInner", "field": "name"},
+ "height": {"scale": "yInner", "band": 1},
+ "fill": {"field": "name", "scale": "colour"},
+ "strokeWidth": {"value": 0},
+ "stroke": {"field": "name", "scale": "colour"}, "cornerRadiusTopRight":{"value": 3}, "cornerRadiusBottomRight":{"value": 3}
+ }
+ }
+ },
+ {
+ "type": "path",
+ "name": "arrows",
+ "from": {"data": "linkTable"},
+ "encode": {
+ "update": {
+ "path": {"signal": "datum.arrow"},
+ "fill": {"signal": "scale('colour', datum.name)"}
+ }
+ }
+ },
+ {
+ "type": "text",
+ "name": "ranks",
+ "from": {"data": "table"},
+ "encode": {
+ "update": {
+ "text": {"signal": "datum.rank"},
+ "fill": {"signal": "'#f1f1f1'"},
+ "font": {"value": "Impact"},
+ "fontSize": {"value": 55},
+ "y": {"signal": "scale('y', datum.name)+bandwidth('y')/2"},
+ "baseline": {"value": "middle"},
+ "align": {"value": "center"},
+ "x": {"signal": "group1Width/2"}
+ }
+ }
+ },
+ {
+ "type": "text",
+ "name": "names",
+ "from": {"data": "table"},
+ "encode": {
+ "update": {
+ "fill": {"signal": "'white'"},
+ "text": {"field": "name"},
+ "x": {"signal": "scale('x',datum.speed)-20"},
+ "fontWeight": {"value": "bold"},
+ "align": {"value": "right"},
+ "y": {"signal": "scale('yInner', datum.name)+bandwidth('y')/4.5"}
+ }
+ }
+ },
+ {
+ "type": "text",
+ "name": "speed",
+ "from": {"data": "names"},
+ "encode": {
+ "update": {
+ "fill": {"signal": "'white'"},
+ "text": {"signal": "datum.datum.speed +' mph'"},
+ "x": {"signal": "datum.x"},
+ "fontWeight": {"value": "normal"},
+ "align": {"value": "right"},
+ "y": {"signal": "datum.y"},
+ "dy": {"value": 15}
+ }
+ }
+ }
+ ],
+ "config": {"view": {"stroke": "red", "strokeWidth": 2}}
+}
\ No newline at end of file
diff --git a/testdata/deneb/infographic-bar-chart.vg.json.svg b/testdata/deneb/infographic-bar-chart.vg.json.svg
new file mode 100644
index 0000000..5ded524
--- /dev/null
+++ b/testdata/deneb/infographic-bar-chart.vg.json.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/testdata/deneb/marimekko-chart.vg.json b/testdata/deneb/marimekko-chart.vg.json
new file mode 100644
index 0000000..179f579
--- /dev/null
+++ b/testdata/deneb/marimekko-chart.vg.json
@@ -0,0 +1,640 @@
+{
+ "$schema": "https://vega.github.io/schema/vega/v5.json",
+ "description": "A Marimekko Chart by Dav Bacci: https://www.linkedin.com/in/davbacci/",
+ "width": 1200,
+ "height": 900,
+ "background": "#dae3f3",
+ "view": { "stroke": null },
+ "padding": { "top": 30, "bottom": 20, "left": 60, "right": 60 },
+ "title": {
+ "text": "Global Military Spending 2022",
+ "offset": 30,
+ "align": "center",
+ "anchor": "middle",
+ "fontSize": 34,
+ "fontWeight": "600",
+ "font": "Roboto",
+ "color": "#333F50"
+ },
+ "data": [
+ {
+ "name": "table",
+ "values": [
+ { "Continent": "Africa", "Country": "Algeria", "Spend": 9145.8 },
+ { "Continent": "Africa", "Country": "Morocco", "Spend": 4995 },
+ { "Continent": "Africa", "Country": "Tunisia", "Spend": 1156.2 },
+ { "Continent": "Africa", "Country": "Angola", "Spend": 1622.8 },
+ { "Continent": "Africa", "Country": "Benin", "Spend": 97.2 },
+ { "Continent": "Africa", "Country": "Botswana", "Spend": 489.3 },
+ { "Continent": "Africa", "Country": "Burkina Faso", "Spend": 562.6 },
+ { "Continent": "Africa", "Country": "Burundi", "Spend": 101.4 },
+ { "Continent": "Africa", "Country": "Cameroon", "Spend": 416.6 },
+ { "Continent": "Africa", "Country": "Cape Verde", "Spend": 10.3 },
+ {
+ "Continent": "Africa",
+ "Country": "Central African Republic",
+ "Spend": 42
+ },
+ { "Continent": "Africa", "Country": "Chad", "Spend": 357.4 },
+ { "Continent": "Africa", "Country": "Congo, DR", "Spend": 371.1 },
+ { "Continent": "Africa", "Country": "Congo, Republic", "Spend": 265.8 },
+ { "Continent": "Africa", "Country": "Cote d'Ivoire", "Spend": 607.2 },
+ {
+ "Continent": "Africa",
+ "Country": "Equatorial Guinea",
+ "Spend": 156.8
+ },
+ { "Continent": "Africa", "Country": "Ethiopia", "Spend": 1031.4 },
+ { "Continent": "Africa", "Country": "Gabon", "Spend": 277.7 },
+ { "Continent": "Africa", "Country": "Gambia, The", "Spend": 15.2 },
+ { "Continent": "Africa", "Country": "Ghana", "Spend": 229.3 },
+ { "Continent": "Africa", "Country": "Guinea", "Spend": 441.3 },
+ { "Continent": "Africa", "Country": "Guinea-Bissau", "Spend": 24.5 },
+ { "Continent": "Africa", "Country": "Kenya", "Spend": 1138.3 },
+ { "Continent": "Africa", "Country": "Lesotho", "Spend": 34.7 },
+ { "Continent": "Africa", "Country": "Liberia", "Spend": 18.7 },
+ { "Continent": "Africa", "Country": "Madagascar", "Spend": 98 },
+ { "Continent": "Africa", "Country": "Malawi", "Spend": 75.8 },
+ { "Continent": "Africa", "Country": "Mali", "Spend": 515.1 },
+ { "Continent": "Africa", "Country": "Mauritania", "Spend": 225.4 },
+ { "Continent": "Africa", "Country": "Mauritius", "Spend": 20.3 },
+ { "Continent": "Africa", "Country": "Mozambique", "Spend": 281.9 },
+ { "Continent": "Africa", "Country": "Namibia", "Spend": 369.1 },
+ { "Continent": "Africa", "Country": "Niger", "Spend": 242.5 },
+ { "Continent": "Africa", "Country": "Nigeria", "Spend": 3109.4 },
+ { "Continent": "Africa", "Country": "Rwanda", "Spend": 177.2 },
+ { "Continent": "Africa", "Country": "Senegal", "Spend": 433.5 },
+ { "Continent": "Africa", "Country": "Seychelles", "Spend": 26.1 },
+ { "Continent": "Africa", "Country": "Sierra Leone", "Spend": 24.5 },
+ { "Continent": "Africa", "Country": "Somalia", "Spend": 115.1 },
+ { "Continent": "Africa", "Country": "South Africa", "Spend": 2995.3 },
+ { "Continent": "Africa", "Country": "South Sudan", "Spend": 378.8 },
+ { "Continent": "Africa", "Country": "Eswatini", "Spend": 74.3 },
+ { "Continent": "Africa", "Country": "Tanzania", "Spend": 832.2 },
+ { "Continent": "Africa", "Country": "Togo", "Spend": 336.6 },
+ { "Continent": "Africa", "Country": "Uganda", "Spend": 923.1 },
+ { "Continent": "Africa", "Country": "Zambia", "Spend": 326.1 },
+ { "Continent": "Africa", "Country": "Zimbabwe", "Spend": 182.1 },
+ { "Continent": "Americas", "Country": "Belize", "Spend": 23.7 },
+ { "Continent": "Americas", "Country": "Costa Rica", "Spend": 0 },
+ {
+ "Continent": "Americas",
+ "Country": "Dominican Republic",
+ "Spend": 760.8
+ },
+ { "Continent": "Americas", "Country": "El Salvador", "Spend": 422.4 },
+ { "Continent": "Americas", "Country": "Guatemala", "Spend": 430.6 },
+ { "Continent": "Americas", "Country": "Haiti", "Spend": 12.6 },
+ { "Continent": "Americas", "Country": "Honduras", "Spend": 477.5 },
+ { "Continent": "Americas", "Country": "Jamaica", "Spend": 215.1 },
+ { "Continent": "Americas", "Country": "Mexico", "Spend": 8535.5 },
+ { "Continent": "Americas", "Country": "Nicaragua", "Spend": 84.2 },
+ { "Continent": "Americas", "Country": "Panama", "Spend": 0 },
+ {
+ "Continent": "Americas",
+ "Country": "Trinidad and Tobago",
+ "Spend": 201.1
+ },
+ { "Continent": "Americas", "Country": "Canada", "Spend": 26896.3 },
+ {
+ "Continent": "Americas",
+ "Country": "United States of America",
+ "Spend": 876943.2
+ },
+ { "Continent": "Americas", "Country": "Argentina", "Spend": 2577.6 },
+ { "Continent": "Americas", "Country": "Bolivia", "Spend": 640.3 },
+ { "Continent": "Americas", "Country": "Brazil", "Spend": 20210.8 },
+ { "Continent": "Americas", "Country": "Chile", "Spend": 5566.5 },
+ { "Continent": "Americas", "Country": "Colombia", "Spend": 9937.7 },
+ { "Continent": "Americas", "Country": "Ecuador", "Spend": 2488.6 },
+ { "Continent": "Americas", "Country": "Guyana", "Spend": 84.3 },
+ { "Continent": "Americas", "Country": "Paraguay", "Spend": 365.7 },
+ { "Continent": "Americas", "Country": "Peru", "Spend": 2845.4 },
+ { "Continent": "Americas", "Country": "Uruguay", "Spend": 1375.6 },
+ { "Continent": "Americas", "Country": "Venezuela", "Spend": 4.6 },
+ {
+ "Continent": "Asia & Oceania",
+ "Country": "Australia",
+ "Spend": 32298.9
+ },
+ { "Continent": "Asia & Oceania", "Country": "Fiji", "Spend": 66.8 },
+ {
+ "Continent": "Asia & Oceania",
+ "Country": "New Zealand",
+ "Spend": 2829.1
+ },
+ {
+ "Continent": "Asia & Oceania",
+ "Country": "Papua New Guinea",
+ "Spend": 97.5
+ },
+ {
+ "Continent": "Asia & Oceania",
+ "Country": "Bangladesh",
+ "Spend": 4806.3
+ },
+ { "Continent": "Asia & Oceania", "Country": "India", "Spend": 81363.2 },
+ { "Continent": "Asia & Oceania", "Country": "Nepal", "Spend": 428.3 },
+ {
+ "Continent": "Asia & Oceania",
+ "Country": "Pakistan",
+ "Spend": 10337.5
+ },
+ {
+ "Continent": "Asia & Oceania",
+ "Country": "Sri Lanka",
+ "Spend": 1053.5
+ },
+ {
+ "Continent": "Asia & Oceania",
+ "Country": "China",
+ "Spend": 291958.4
+ },
+ { "Continent": "Asia & Oceania", "Country": "Japan", "Spend": 45992.1 },
+ {
+ "Continent": "Asia & Oceania",
+ "Country": "South Korea",
+ "Spend": 46365.4
+ },
+ {
+ "Continent": "Asia & Oceania",
+ "Country": "Mongolia",
+ "Spend": 118.4
+ },
+ {
+ "Continent": "Asia & Oceania",
+ "Country": "Taiwan",
+ "Spend": 12508.6
+ },
+ { "Continent": "Asia & Oceania", "Country": "Brunei", "Spend": 435.9 },
+ { "Continent": "Asia & Oceania", "Country": "Cambodia", "Spend": 611 },
+ {
+ "Continent": "Asia & Oceania",
+ "Country": "Indonesia",
+ "Spend": 8986.6
+ },
+ {
+ "Continent": "Asia & Oceania",
+ "Country": "Malaysia",
+ "Spend": 3670.7
+ },
+ {
+ "Continent": "Asia & Oceania",
+ "Country": "Myanmar",
+ "Spend": 1856.9
+ },
+ {
+ "Continent": "Asia & Oceania",
+ "Country": "Philippines",
+ "Spend": 3965.4
+ },
+ {
+ "Continent": "Asia & Oceania",
+ "Country": "Singapore",
+ "Spend": 11687.6
+ },
+ {
+ "Continent": "Asia & Oceania",
+ "Country": "Thailand",
+ "Spend": 5724.4
+ },
+ {
+ "Continent": "Asia & Oceania",
+ "Country": "Timor Leste",
+ "Spend": 44.3
+ },
+ {
+ "Continent": "Asia & Oceania",
+ "Country": "Kazakhstan",
+ "Spend": 1133
+ },
+ {
+ "Continent": "Asia & Oceania",
+ "Country": "Kyrgyz Republic",
+ "Spend": 149.8
+ },
+ {
+ "Continent": "Asia & Oceania",
+ "Country": "Tajikistan",
+ "Spend": 103.5
+ },
+ { "Continent": "Europe", "Country": "Albania", "Spend": 288.7 },
+ {
+ "Continent": "Europe",
+ "Country": "Bosnia and Herzegovina",
+ "Spend": 184.5
+ },
+ { "Continent": "Europe", "Country": "Bulgaria", "Spend": 1336 },
+ { "Continent": "Europe", "Country": "Croatia", "Spend": 1308.5 },
+ { "Continent": "Europe", "Country": "Czechia", "Spend": 4005.4 },
+ { "Continent": "Europe", "Country": "Estonia", "Spend": 810.9 },
+ { "Continent": "Europe", "Country": "Hungary", "Spend": 2572.2 },
+ { "Continent": "Europe", "Country": "Kosovo", "Spend": 107.6 },
+ { "Continent": "Europe", "Country": "Latvia", "Spend": 848.8 },
+ { "Continent": "Europe", "Country": "Lithuania", "Spend": 1732.3 },
+ { "Continent": "Europe", "Country": "North Macedonia", "Spend": 225 },
+ { "Continent": "Europe", "Country": "Montenegro", "Spend": 98 },
+ { "Continent": "Europe", "Country": "Poland", "Spend": 16573.1 },
+ { "Continent": "Europe", "Country": "Romania", "Spend": 5186.7 },
+ { "Continent": "Europe", "Country": "Serbia", "Spend": 1426.4 },
+ { "Continent": "Europe", "Country": "Slovakia", "Spend": 1994.2 },
+ { "Continent": "Europe", "Country": "Slovenia", "Spend": 735.2 },
+ { "Continent": "Europe", "Country": "Armenia", "Spend": 795.2 },
+ { "Continent": "Europe", "Country": "Azerbaijan", "Spend": 2991 },
+ { "Continent": "Europe", "Country": "Belarus", "Spend": 820.8 },
+ { "Continent": "Europe", "Country": "Georgia", "Spend": 360.3 },
+ { "Continent": "Europe", "Country": "Moldova", "Spend": 47.7 },
+ { "Continent": "Europe", "Country": "Russia", "Spend": 86373.1 },
+ { "Continent": "Europe", "Country": "Ukraine", "Spend": 43997.7 },
+ { "Continent": "Europe", "Country": "Austria", "Spend": 3625.6 },
+ { "Continent": "Europe", "Country": "Belgium", "Spend": 6867 },
+ { "Continent": "Europe", "Country": "Cyprus", "Spend": 494.2 },
+ { "Continent": "Europe", "Country": "Denmark", "Spend": 5467.9 },
+ { "Continent": "Europe", "Country": "Finland", "Spend": 4822.9 },
+ { "Continent": "Europe", "Country": "France", "Spend": 53638.7 },
+ { "Continent": "Europe", "Country": "Germany", "Spend": 55759.7 },
+ { "Continent": "Europe", "Country": "Greece", "Spend": 8104.9 },
+ { "Continent": "Europe", "Country": "Iceland", "Spend": 0 },
+ { "Continent": "Europe", "Country": "Ireland", "Spend": 1164.3 },
+ { "Continent": "Europe", "Country": "Italy", "Spend": 33489.7 },
+ { "Continent": "Europe", "Country": "Luxembourg", "Spend": 564.6 },
+ { "Continent": "Europe", "Country": "Malta", "Spend": 87 },
+ { "Continent": "Europe", "Country": "Netherlands", "Spend": 15606.6 },
+ { "Continent": "Europe", "Country": "Norway", "Spend": 8388.4 },
+ { "Continent": "Europe", "Country": "Portugal", "Spend": 3500.3 },
+ { "Continent": "Europe", "Country": "Spain", "Spend": 20306.6 },
+ { "Continent": "Europe", "Country": "Sweden", "Spend": 7722.5 },
+ { "Continent": "Europe", "Country": "Switzerland", "Spend": 6145.2 },
+ {
+ "Continent": "Europe",
+ "Country": "United Kingdom",
+ "Spend": 68462.6
+ },
+ { "Continent": "Europe", "Country": "European Union", "Spend": 1283.2 },
+ { "Continent": "Middle East", "Country": "Bahrain", "Spend": 1381.3 },
+ { "Continent": "Middle East", "Country": "Egypt", "Spend": 4645.9 },
+ { "Continent": "Middle East", "Country": "Iran", "Spend": 6846.6 },
+ { "Continent": "Middle East", "Country": "Iraq", "Spend": 4683.1 },
+ { "Continent": "Middle East", "Country": "Israel", "Spend": 23406.1 },
+ { "Continent": "Middle East", "Country": "Jordan", "Spend": 2323.3 },
+ { "Continent": "Middle East", "Country": "Kuwait", "Spend": 8244.1 },
+ { "Continent": "Middle East", "Country": "Lebanon", "Spend": 4739 },
+ { "Continent": "Middle East", "Country": "Oman", "Spend": 5783.5 },
+ { "Continent": "Middle East", "Country": "Qatar", "Spend": 15412.1 },
+ {
+ "Continent": "Middle East",
+ "Country": ["Saudi", "Arabia"],
+ "Spend": 75013.3
+ },
+ { "Continent": "Middle East", "Country": "Türkiye", "Spend": 10644.6 }
+ ],
+ "transform": [
+ {
+ "type": "formula",
+ "as": "Continent",
+ "expr": "datum.Continent =='Africa' ||datum.Continent =='Middle East'? 'Africa & Middle East': datum.Continent"
+ }
+ ]
+ },
+ {
+ "name": "continents",
+ "source": "table",
+ "transform": [
+ {
+ "type": "aggregate",
+ "fields": ["Spend"],
+ "ops": ["sum"],
+ "as": ["continentTotal"],
+ "groupby": ["Continent"]
+ },
+ {
+ "type": "stack",
+ "offset": "normalize",
+ "sort": { "field": "continentTotal", "order": "descending" },
+ "field": "continentTotal",
+ "as": ["x0", "x1"]
+ },
+ {
+ "type": "formula",
+ "as": "ContinentLabel",
+ "expr": "datum.Continent == 'Africa & Middle East'?['Africa &','Middle East']:datum.Continent"
+ },
+ { "type": "formula", "as": "Percent", "expr": "datum.x1-datum.x0" },
+ {
+ "type": "formula",
+ "as": "Label",
+ "expr": "[format(round(datum.continentTotal/1000),'$')+'B (' + format(datum.Percent,'.0%')+')']"
+ }
+ ]
+ },
+ {
+ "name": "finalTable",
+ "source": "table",
+ "transform": [
+ {
+ "type": "stack",
+ "offset": "normalize",
+ "groupby": ["Continent"],
+ "sort": { "field": "Spend", "order": "descending" },
+ "field": "Spend",
+ "as": ["y0", "y1"]
+ },
+ {
+ "type": "lookup",
+ "from": "continents",
+ "key": "Continent",
+ "values": ["x0", "x1"],
+ "fields": ["Continent"]
+ },
+ { "type": "formula", "as": "Percent", "expr": "datum.y1-datum.y0" },
+ {
+ "type": "formula",
+ "as": "Country",
+ "expr": "datum.Percent < 0.027? 'Other': datum.Country"
+ },
+ {
+ "type": "aggregate",
+ "fields": [
+ "x0",
+ "x1",
+ "y0",
+ "y1",
+ "Country",
+ "Spend",
+ "Percent",
+ "Country"
+ ],
+ "ops": ["min", "min", "min", "max", "max", "sum", "sum", "count"],
+ "groupby": ["Continent", "Country"],
+ "as": ["x0", "x1", "y0", "y1", "Country", "Spend", "Percent", "Count"]
+ },
+ {
+ "type": "formula",
+ "as": "Country",
+ "expr": "datum.Count == 1? datum.Country:'Others (' + datum.Count +')'"
+ },
+ {
+ "type": "formula",
+ "as": "Label",
+ "expr": "[datum.Country,format(round(datum.Spend/1000),'$')+'B (' + format(datum.Percent,'.0%')+')']"
+ },
+ {
+ "type": "window",
+ "sort": { "field": "y0", "order": "ascending" },
+ "ops": ["row_number"],
+ "fields": [null],
+ "as": ["rank"],
+ "groupby": ["Continent"]
+ }
+ ]
+ }
+ ],
+ "scales": [
+ {
+ "name": "x",
+ "type": "linear",
+ "range": "width",
+ "domain": { "data": "finalTable", "field": "x1" }
+ },
+ {
+ "name": "y",
+ "type": "linear",
+ "range": "height",
+ "nice": false,
+ "zero": true,
+ "domain": { "data": "finalTable", "field": "y1" }
+ },
+ {
+ "name": "opacity",
+ "type": "linear",
+ "range": [1, 0.5],
+ "domain": { "data": "finalTable", "field": "rank" }
+ },
+ {
+ "name": "color",
+ "type": "ordinal",
+ "range": { "scheme": "viridis", "extent": [0.1, 0.5] },
+ "domain": {
+ "data": "continents",
+ "field": "Continent",
+ "sort": { "field": "x0", "order": "ascending", "op": "sum" }
+ }
+ }
+ ],
+ "axes": [
+ {
+ "orient": "left",
+ "scale": "y",
+ "zindex": 1,
+ "format": "%",
+ "tickCount": 5,
+ "tickSize": 15,
+ "labelColor": { "value": "#333740" },
+ "labelFontWeight": { "value": "normal" },
+ "labelFontSize": { "value": 12 },
+ "labelFont": { "value": "Roboto" },
+ "offset": 5,
+ "domain": false
+ }
+ ],
+ "marks": [
+ {
+ "type": "rect",
+ "name": "bars",
+ "from": { "data": "finalTable" },
+ "encode": {
+ "update": {
+ "x": { "scale": "x", "field": "x0" },
+ "x2": { "scale": "x", "field": "x1" },
+ "y": { "scale": "y", "field": "y0" },
+ "y2": { "scale": "y", "field": "y1" },
+ "fill": { "scale": "color", "field": "Continent" },
+ "stroke": { "value": "white" },
+ "strokeWidth": { "value": 1 },
+ "fillOpacity": { "scale": "opacity", "field": "rank" },
+ "tooltip": { "signal": "datum" }
+ }
+ }
+ },
+ {
+ "type": "text",
+ "name": "labels",
+ "interactive": false,
+ "from": { "data": "bars" },
+ "encode": {
+ "update": {
+ "x": { "signal": "(datum.x2 - datum.x)*0.5 + datum.x" },
+ "align": { "value": "center" },
+ "text": { "field": "datum.Label" },
+ "y": { "signal": "(datum.y2 - datum.y)*0.45 + datum.y" },
+ "fill": { "value": "white" },
+ "font": { "value": "Segoe UI" },
+ "lineHeight": { "value": 12 },
+ "fontSize": { "value": 12 }
+ }
+ }
+ },
+ {
+ "type": "rect",
+ "name": "ticksBottomLeft",
+ "from": { "data": "continents" },
+ "encode": {
+ "update": {
+ "x": { "scale": "x", "field": "x0", "offset": 4 },
+ "y": { "signal": "height+10" },
+ "width": { "signal": "0.7" },
+ "height": { "signal": "20" },
+ "fill": { "value": "#333740" }
+ }
+ }
+ },
+ {
+ "type": "rect",
+ "name": "ticksBottomRight",
+ "from": { "data": "continents" },
+ "encode": {
+ "update": {
+ "x": { "scale": "x", "field": "x1", "offset": -4 },
+ "y": { "signal": "height+10" },
+ "width": { "signal": "0.7" },
+ "height": { "signal": "20" },
+ "fill": { "value": "#333740" }
+ }
+ }
+ },
+ {
+ "type": "rect",
+ "name": "ticksJoin",
+ "from": { "data": "continents" },
+ "encode": {
+ "update": {
+ "x": { "scale": "x", "signal": "datum.x0", "offset": 4 },
+ "y": { "signal": "height+20" },
+ "width": {
+ "scale": "x",
+ "signal": "(datum.x1-datum.x0)",
+ "offset": -8
+ },
+ "height": { "signal": "0.7" },
+ "fill": { "value": "#333740" }
+ }
+ }
+ },
+ {
+ "type": "text",
+ "name": "axisTop",
+ "from": { "data": "continents" },
+ "encode": {
+ "update": {
+ "x": { "scale": "x", "signal": "(datum.x1-datum.x0)/2 + datum.x0" },
+ "y": { "signal": "-25" },
+ "text": { "field": "ContinentLabel" },
+ "align": { "value": "center" },
+ "baseline": { "value": "top" },
+ "dy": { "signal": "datum.Continent=='Africa & Middle East'?-12:0" },
+ "fill": { "value": "#333740" },
+ "fontWeight": { "value": "normal" },
+ "fontSize": { "value": 14 },
+ "font": { "value": "Roboto" }
+ }
+ }
+ },
+ {
+ "type": "text",
+ "name": "axisBottom",
+ "from": { "data": "continents" },
+ "encode": {
+ "update": {
+ "x": { "scale": "x", "signal": "(datum.x1-datum.x0)/2 + datum.x0" },
+ "y": { "signal": "height+40" },
+ "text": { "field": "Label" },
+ "align": { "value": "center" },
+ "baseline": { "value": "middle" },
+ "fill": { "value": "#333740" },
+ "fontWeight": { "value": "normal" },
+ "fontSize": { "value": 14 },
+ "font": { "value": "Roboto" }
+ }
+ }
+ },
+ {
+ "type": "group",
+ "data": [{}],
+ "encode": {
+ "update": {
+ "xc": { "signal": "width/2" },
+ "y": { "signal": "-65" },
+ "width": { "signal": "0" },
+ "height": { "signal": "0" },
+ "clip": { "signal": "false" },
+ "opacity": { "value": 1 },
+ "stroke": { "signal": "'#652c90'" }
+ },
+ "hover": { "opacity": { "value": 0.5 } }
+ },
+ "marks": [
+ {
+ "type": "path",
+ "name": "guns",
+ "clip": false,
+ "encode": {
+ "update": {
+ "x": { "signal": "20" },
+ "y": { "signal": "-10" },
+ "scaleX": { "signal": "1.3" },
+ "scaleY": { "signal": "1.3" },
+ "path": {
+ "value": "M13.9506 32.9343C13.8088 32.8686 13.5528 32.5849 13.5079 32.4431 13.494 32.405 13.494 32.3324 13.5044 32.2805 13.5217 32.2182 14.1962 31.5195 15.5418 30.1808 16.6487 29.0774 17.6104 28.1053 17.6796 28.0189 17.7487 27.9324 17.9874 27.6695 18.2053 27.4308L18.6066 27.0019 18.5132 26.9604C18.4129 26.9189 18.3264 26.8116 18.2849 26.6836 18.2676 26.6318 18.2953 26.5695 18.3852 26.4588 18.4509 26.3758 18.5063 26.272 18.5063 26.234 18.5063 26.144 18.7035 25.9434 18.7899 25.9434 18.828 25.9434 18.9283 26.0126 19.0217 26.0991 19.1774 26.2443 19.1912 26.2513 19.2396 26.1925 19.3123 26.1129 19.4057 25.9226 19.4057 25.8604 19.4057 25.8327 19.4852 25.7428 19.5855 25.6563L19.7654 25.5006 19.6513 25.255C19.5821 25.1063 19.5475 24.9852 19.5613 24.9437 19.5959 24.8365 19.8208 24.6566 19.8865 24.6843 20.0836 24.7673 20.1425 24.667 20.0491 24.3972 19.966 24.1585 19.9799 24.0962 20.1355 23.9164L20.2774 23.7538 18.5132 22.0035C17.5412 21.0418 16.7214 20.2116 16.6903 20.1597 16.6349 20.0733 16.6384 20.0594 16.7041 19.9038 16.7456 19.8138 16.7733 19.7377 16.7698 19.7343 16.711 19.6997 16.2267 19.295 16.1921 19.2569 16.161 19.2154 16.1575 19.1843 16.1887 19.1324 16.2094 19.0909 16.2164 19.0597 16.206 19.0597 16.1921 19.0597 16.0123 19.2154 15.8047 19.4057 15.5937 19.5959 15.3827 19.7619 15.3343 19.7723 15.2893 19.7862 15.1475 19.7862 15.0264 19.7758 14.8465 19.7619 14.767 19.7343 14.6217 19.6374 14.5214 19.5717 13.7811 18.9387 12.9717 18.2296 12.1623 17.517 10.9792 16.4827 10.3428 15.9258 8.85535 14.6286 8.85189 14.6252 8.80692 14.3104 8.78616 14.1755 8.79654 14.1132 8.8588 13.9887 8.90031 13.9022 8.95912 13.8157 8.99371 13.795 9.03868 13.7673 9.04906 13.7223 9.03868 13.5978 9.02484 13.4802 9.04906 13.366 9.12862 13.1516 9.25314 12.8195 9.2566 12.7676 9.17704 12.6154 9.09057 12.4425 9.05943 12.2799 9.11824 12.2799 9.19088 12.2799 9.17704 12.2176 9.09748 12.1761 9.00409 12.1277 9.01101 12.0447 9.11132 11.9374L9.19434 11.8475 8.94874 11.5154C8.81038 11.3321 8.6478 11.1245 8.58553 11.0553 8.52673 10.9862 8.47484 10.9031 8.47484 10.8755 8.47484 10.8063 7.26069 9.54025 6.66572 8.99025 6.42013 8.76541 6.19182 8.57862 6.15723 8.57862 6.12264 8.57862 5.91855 8.39874 5.68333 8.1566 5.45849 7.92484 4.60755 7.05314 3.79119 6.2195L2.30377 4.70786 2.11352 4.66981C1.88522 4.62138 1.57736 4.54874 0.899371 4.37925 0.0968553 4.17862 0.141824 4.19245 0.11761 4.08868 0.107233 4.03679 0.0761006 3.9261 0.0518868 3.83962 0.00345912 3.68742 0.00691824 3.67358 0.103774 3.47987 0.224843 3.24119 0.231761 3.16509 0.138365 3.02673 0.0622642 2.90912 0.0518868 2.8088 0.107233 2.61855 0.148742 2.46289 0.66761 1.91289 1.26258 1.38711 2.13428 0.619182 3.08208-0.0345912 3.25157 0.0172956 3.32767 0.0415094 3.33113 0.0449686 3.33805 0.311321 3.34151 0.480818 3.3934 0.601887 3.79811 1.43208 4.05063 1.94403 4.26164 2.37296 4.27201 2.37987 4.27893 2.38679 4.3827 2.31415 4.49686 2.2173 4.61447 2.12044 4.72516 2.04088 4.74245 2.04088 4.80818 2.04088 4.88428 2.22767 5.1022 2.95755 5.3478 3.76698 5.4239 3.93994 5.62107 4.11289 5.76289 4.23396 5.79748 4.24088 5.88396 4.16478 5.96006 4.09906 6.0327 4.13365 6.18836 4.3066 6.30252 4.43805 6.31981 4.52799 6.25409 4.63522 6.21604 4.69403 6.22987 4.72516 6.38553 4.88428 6.6761 5.18868 6.74528 5.28899 6.74528 5.41006 6.74528 5.54151 6.68994 5.63145 6.44088 5.88742L6.24717 6.08805 6.34748 6.19874C6.40629 6.26101 6.66226 6.53082 6.9217 6.80063 7.22956 7.11887 7.40252 7.32296 7.41635 7.38868 7.43019 7.44403 7.55472 7.61698 7.69654 7.7761 7.87642 7.97327 8.00786 8.16352 8.11509 8.38145 8.24308 8.63742 8.35031 8.77579 8.63742 9.08711 8.83459 9.29811 9.03868 9.53679 9.09057 9.61289 9.18742 9.75818 9.39151 9.92767 9.46415 9.92767 9.48837 9.92767 9.58176 9.98994 9.6717 10.066 9.81006 10.1906 9.83774 10.2009 9.88962 10.1594 9.92075 10.1352 10.0418 10.0314 10.1594 9.93113L10.3774 9.7478 10.6264 9.9761C10.9481 10.2701 11.1142 10.3497 11.4358 10.3704 11.8959 10.3981 11.9443 10.3566 12.0204 9.83774 12.0689 9.49528 12.1796 8.14969 12.2453 7.04623 12.2868 6.36478 12.3214 6.26101 12.5013 6.26101 12.695 6.26101 13.1343 6.53428 14.0198 7.20535 14.473 7.5478 14.5975 7.68616 14.5975 7.84182 14.5975 7.9456 14.4799 8.09434 14.3969 8.09434 14.3726 8.09434 14.338 8.13239 14.3242 8.17736 14.2689 8.31918 14.1478 9.1044 14.1409 9.36384 14.134 9.58522 14.1443 9.64057 14.2343 9.79969 14.3519 10.0176 14.338 10.0833 14.1582 10.1594 13.9956 10.2252 13.9748 10.2563 13.9748 10.4292 13.9748 10.5538 14.006 10.6022 14.255 10.8962 14.4107 11.0761 14.6044 11.3113 14.684 11.4151 14.8984 11.6918 16.0469 12.8022 16.2129 12.8956L16.3547 12.9717 16.7802 12.6604C17.4789 12.1415 18.2399 11.7057 19.0494 11.3494 19.2569 11.2594 19.4645 11.1591 19.5164 11.1245 19.7654 10.9619 20.0906 11.2491 20.5541 12.0377 20.6613 12.2176 20.9311 12.6396 21.1525 12.9717 21.4016 13.3453 21.5607 13.6151 21.5607 13.6739 21.5676 13.7638 21.5469 13.7777 21.2494 13.9022 20.6925 14.1374 19.5717 14.7289 19.2569 14.9538 18.8349 15.2582 18.4717 15.5903 18.4717 15.6733 18.4717 15.7113 18.4959 15.7874 18.5236 15.8393 18.5686 15.9292 18.5686 15.9431 18.5132 15.9915 18.4821 16.0226 18.3852 16.0745 18.2987 16.1126 18.1465 16.1783 17.9355 16.3755 17.6588 16.7214L17.5204 16.8909 17.5204 17.2437C17.5204 17.5931 17.5204 17.5965 17.4028 17.728 17.2541 17.8975 17.3129 17.9217 17.5204 17.7799 17.6069 17.7211 17.6899 17.683 17.7107 17.6934 17.728 17.7038 17.8456 17.8456 17.977 18.0082 18.2296 18.3299 18.1984 18.316 18.5097 18.2434 18.5755 18.2296 18.6308 18.2538 18.7519 18.3506 18.8349 18.4198 19.6132 19.2189 20.478 20.1252 21.3462 21.0314 22.0692 21.7752 22.0899 21.7752 22.1072 21.7752 22.761 21.0972 23.5428 20.2704 24.3245 19.4437 25.0302 18.7069 25.1097 18.6343 25.3208 18.444 25.3865 18.4198 25.5456 18.4855 25.6148 18.5167 25.7013 18.5409 25.7358 18.5409 25.7704 18.5409 25.8984 18.4129 26.0437 18.2296L26.2893 17.9182 26.4969 18.0635C26.611 18.1431 26.7113 18.1984 26.7252 18.1846 26.7355 18.1742 26.6836 18.0877 26.6041 17.9943 26.4623 17.8283 26.4623 17.8248 26.4623 17.5481 26.4623 17.1987 26.438 17.133 26.2028 16.8459 25.8673 16.4412 25.6425 16.2302 25.428 16.123 25.1789 15.995 25.134 15.9327 25.2031 15.7978 25.2308 15.7459 25.2447 15.6733 25.2343 15.6352 25.1928 15.5038 24.4664 14.8742 23.9579 14.5283 23.6223 14.3035 22.7091 13.7777 22.1038 13.4629 21.827 13.3211 21.5953 13.1965 21.5884 13.1896 21.5572 13.1654 21.661 12.8991 21.7371 12.8091 21.8167 12.7123 22.3321 11.8406 22.5673 11.3978 22.6399 11.2664 22.7748 11.0346 22.8752 10.8893 23.017 10.6714 23.0827 10.6022 23.2349 10.5261L23.4182 10.4292 23.5324 10.495C23.5912 10.533 23.8472 10.6714 24.0928 10.8028 25.2135 11.4013 25.9296 11.8509 26.7217 12.4667 27.0088 12.6881 27.2648 12.8679 27.2959 12.8679 27.4101 12.8679 27.6833 12.6465 28.223 12.1242 28.5308 11.8233 28.8387 11.4981 28.9079 11.4013 28.977 11.3044 29.1535 11.0865 29.3022 10.9135 29.5928 10.5676 29.6447 10.4881 29.6447 10.3704 29.6447 10.2563 29.5236 10.0764 29.4302 10.0487 29.323 10.0142 29.195 9.89308 29.195 9.82736 29.195 9.79623 29.2296 9.70975 29.2711 9.63365 29.3783 9.43648 29.3645 9.18742 29.1984 8.52327 29.0324 7.85912 29.0116 7.80377 28.8594 7.71384 28.7972 7.67924 28.7211 7.59277 28.6865 7.52704 28.6381 7.42327 28.6381 7.39214 28.6761 7.29528 28.7349 7.16038 29.0635 6.89748 29.7173 6.46164 30.5371 5.91855 30.7965 5.81824 30.9557 5.99119 31.0456 6.08459 31.0836 6.20566 31.1321 6.57233 31.1943 7.05314 31.5437 9.11132 31.6509 9.64057 31.7755 10.2597 31.8481 10.4327 32.0176 10.5019 32.1698 10.5676 32.5814 10.578 32.7786 10.5226 32.917 10.4811 33.0173 10.4119 33.3597 10.1248L33.5154 9.98994 33.8025 10.239C33.9616 10.3774 34.1069 10.495 34.1311 10.5053 34.1553 10.5157 34.2418 10.4673 34.3248 10.3981 34.4079 10.3289 34.5047 10.2736 34.5393 10.2736 34.6292 10.2736 34.8714 10.0695 34.9233 9.94843 34.9475 9.88962 35.1377 9.66132 35.3453 9.43994 35.6393 9.12516 35.7396 8.99025 35.8019 8.83459 35.9506 8.46101 36.044 8.30535 36.2516 8.0805 36.3865 7.93868 36.4799 7.80031 36.5179 7.69654 36.5629 7.56509 36.6805 7.42327 37.1267 6.96321L37.6836 6.39591 37.4035 6.11226C37.0887 5.79057 37.0472 5.7283 37.0472 5.55535 37.0472 5.45503 37.0852 5.38931 37.2547 5.19214 37.3689 5.06069 37.4761 4.93962 37.4969 4.92925 37.5487 4.89811 37.5384 4.78742 37.4796 4.73899 37.4519 4.71478 37.4277 4.67327 37.4277 4.64214 37.4277 4.55912 37.5695 4.37233 37.6767 4.3066 37.7701 4.25472 37.7805 4.25472 37.8635 4.32044 37.9154 4.36195 37.9742 4.39308 37.9984 4.39308 38.0607 4.39308 38.3236 4.0956 38.3789 3.96415 38.4066 3.90189 38.4896 3.54214 38.5692 3.16164 38.756 2.24843 38.7975 2.11006 38.8736 2.11006 38.9082 2.11006 39.0465 2.20346 39.178 2.31761 39.3094 2.43176 39.427 2.52516 39.4374 2.52516 39.4478 2.52516 39.6346 2.09277 39.8525 1.56698 40.2434 0.608805 40.2434 0.605346 40.2399 0.338994 40.2296-0.0242138 40.2711-0.0484277 40.5962 0.141824 41.5544 0.702201 43.8305 2.72579 44.0346 3.19969 44.1142 3.38994 44.1211 3.58711 44.0519 3.6805 44.0242 3.71855 44 3.78428 44 3.82925 44 3.91572 44.1003 4.13711 44.2145 4.29969 44.2733 4.37925 44.2767 4.41384 44.2456 4.50377 44.2248 4.56258 44.2075 4.66635 44.2075 4.73553 44.2075 4.80472 44.1937 4.88082 44.1764 4.90503 44.1591 4.9327 43.9689 4.97767 43.6956 5.01572 43.4465 5.05031 43.1145 5.10566 42.9588 5.13679 42.8031 5.16447 42.4918 5.21289 42.267 5.24057L41.8588 5.28899 40.8418 6.31981C40.2849 6.88711 39.4409 7.75189 38.9635 8.23962 38.3374 8.88648 38.0814 9.13208 38.0226 9.13208 37.9258 9.13208 37.4761 9.54025 36.7013 10.3324 35.8157 11.2318 35.7223 11.3355 35.7154 11.4116 35.7119 11.4497 35.6462 11.5638 35.5667 11.6642 35.3626 11.927 35.0409 12.3836 35.0409 12.4148 35.0409 12.4286 35.0893 12.484 35.1447 12.5393 35.2726 12.6604 35.2726 12.6811 35.155 12.8091 35.0858 12.8852 35.0755 12.906 35.1204 12.8921 35.2138 12.8575 35.2311 12.9509 35.1619 13.1377 35.1308 13.2277 35.0962 13.3314 35.0893 13.3695 35.0789 13.411 35.1481 13.6324 35.2484 13.8814 35.3764 14.2031 35.4214 14.3484 35.4041 14.4176 35.3903 14.4937 35.4041 14.5318 35.4767 14.5975 35.6947 14.805 35.7811 15.2028 35.6531 15.4484 35.577 15.5937 35.2761 15.8704 34.2626 16.7248 33.7679 17.1434 32.6852 18.0601 31.8585 18.7657 29.9456 20.395 29.9283 20.4088 29.783 20.4711 29.6066 20.5437 29.2399 20.5437 29.0843 20.4676 29.0151 20.433 28.7695 20.2255 28.5343 20.0075 28.3025 19.7896 28.1053 19.6201 28.0984 19.627 28.0881 19.634 28.0984 19.672 28.1157 19.7066 28.1365 19.7447 28.1434 19.7896 28.1296 19.8104 28.1123 19.8346 27.7006 20.1736 27.5415 20.2877 27.538 20.2912 27.5726 20.3846 27.6245 20.4918 27.711 20.6821 27.711 20.689 27.6522 20.7824 27.6176 20.8343 26.7805 21.6818 25.7912 22.6642L23.989 24.456 24.1308 24.456C24.2415 24.456 24.2899 24.4767 24.3799 24.5701 24.5113 24.705 24.5217 24.8192 24.4214 25.0371L24.3557 25.1858 24.5425 25.3692C24.6462 25.4695 24.7327 25.5767 24.7327 25.6044 24.7327 25.6321 24.7811 25.722 24.8399 25.8016L24.9437 25.9469 25.0821 25.8258C25.1547 25.7566 25.2481 25.7013 25.2827 25.7013 25.3623 25.7013 25.5629 25.8915 25.5629 25.9676 25.5629 25.9987 25.6148 26.0852 25.677 26.1648 25.7393 26.2443 25.805 26.3239 25.8189 26.3481 25.8535 26.4104 25.7497 26.5903 25.6459 26.6456L25.556 26.694 25.9157 27.0711C26.1129 27.2786 26.3758 27.5657 26.4934 27.7075 26.6145 27.8494 27.161 28.3994 27.7041 28.9321 29.0981 30.2915 30.5094 31.7167 30.6236 31.8862 30.7516 32.0695 30.7274 32.194 30.5302 32.3947 30.2638 32.661 30.2708 32.6645 29.5443 31.9692 28.9459 31.3915 28.7072 31.1459 27.2925 29.6204 26.7079 28.9943 26.1164 28.389 25.2827 27.5761L24.8123 27.1195 24.1862 27.7283C23.4943 28.3994 23.3318 28.5377 23.2487 28.5377 23.1657 28.5377 22.8544 28.2714 22.806 28.1572 22.7783 28.095 22.7506 27.7075 22.7299 27.1057 22.7091 26.5799 22.678 26.1233 22.6607 26.0887 22.6434 26.0575 22.5984 25.9987 22.5569 25.9642 22.4843 25.8984 22.4843 25.9019 22.1142 26.2547 21.9066 26.4519 21.7267 26.6318 21.7129 26.6594 21.6991 26.6836 21.7025 26.9569 21.7233 27.2648 21.7821 28.1676 21.8028 28.8318 21.7821 28.9252 21.7682 28.977 21.6783 29.0739 21.5641 29.1604L21.367 29.3091 21.2425 29.2434C21.1733 29.2088 20.7478 28.8145 20.2947 28.3682L19.4714 27.5553 19.1013 27.9186C17.9113 29.0774 17.6519 29.3368 17.4962 29.5236 16.9877 30.1289 14.2101 33 14.1305 33 14.1132 33 14.0302 32.9689 13.9506 32.9343ZM21.2736 28.005C21.3324 27.8252 21.239 26.7252 21.156 26.6456 21.1491 26.6352 21.0972 26.6594 21.0418 26.6975 20.9069 26.7943 20.1667 27.5519 20.1667 27.5899 20.1667 27.6107 20.2358 27.6937 20.3223 27.7767 20.4676 27.922 20.4918 27.9324 20.6613 27.9324 20.8101 27.9324 20.8654 27.9497 20.9588 28.0292 21.1179 28.1607 21.2217 28.1538 21.2736 28.005ZM23.4701 27.4239C23.567 27.3478 23.733 27.327 23.8403 27.3755 23.8818 27.3928 23.9336 27.3616 24.0374 27.2579 24.117 27.1748 24.1792 27.1022 24.1792 27.0884 24.1792 27.0745 23.9613 26.8462 23.6915 26.5833 23.266 26.1613 23.2003 26.106 23.1692 26.1613 23.1484 26.1994 23.1415 26.4519 23.1484 26.7909 23.1588 27.2855 23.1657 27.3616 23.2245 27.4274 23.3075 27.5208 23.3491 27.5173 23.4701 27.4239ZM29.6447 20.0664C29.8764 19.8969 32.9827 16.839 33.384 16.3858 33.6053 16.1403 33.6226 16.1057 33.6226 15.9604 33.6226 15.784 33.5085 15.6352 33.3736 15.6352 33.1522 15.6387 32.9965 15.7736 31.4538 17.3025 29.9248 18.8211 29.2434 19.5302 29.1223 19.7343 29.0497 19.8519 29.0358 20.0802 29.0981 20.1182 29.1673 20.1632 29.3472 20.1943 29.4371 20.1736 29.4855 20.1667 29.5789 20.1182 29.6447 20.0664ZM15.317 19.4333C15.3862 19.3642 15.3654 19.2569 15.2513 19.0736 15.1925 18.9767 14.3104 18.0704 13.2208 16.9808 11.1626 14.9296 11.0969 14.8708 10.8997 14.9814 10.7959 15.0403 10.7648 15.2028 10.827 15.3585 10.8824 15.4899 14.7566 19.3434 14.9088 19.416 15.0506 19.4818 15.2582 19.4921 15.317 19.4333ZM28.7314 13.577C28.9425 13.4698 29.5513 12.9094 29.6101 12.7607 29.6516 12.6673 29.6481 12.6362 29.5893 12.5324 29.4925 12.3491 29.3333 12.2453 29.1085 12.2142 28.7937 12.1692 28.7487 12.0377 29.0531 12.0377 29.2987 12.0377 29.5374 12.1242 29.7277 12.2799 29.8176 12.356 29.9006 12.4182 29.9075 12.4182 29.9145 12.4182 29.9525 12.3664 29.9906 12.3075 30.1151 12.1 30.0597 11.7472 29.8833 11.6538 29.8003 11.6123 29.3403 11.6088 29.2399 11.6503 29.1431 11.6918 27.9843 12.8818 27.9843 12.9406 27.9843 13.0201 28.1503 13.4906 28.1987 13.5494 28.3094 13.6843 28.4997 13.6912 28.7314 13.577ZM15.5453 13.5079C15.6006 13.4491 15.6525 13.2899 15.6906 13.0478L15.7148 12.8956 15.0956 12.2764C14.5248 11.7057 14.466 11.6572 14.3138 11.6226 13.8814 11.5327 13.7258 11.5984 13.7258 11.8752 13.7258 12.0204 13.8088 12.2591 13.8711 12.2972 13.8884 12.3075 13.9645 12.2591 14.044 12.1934 14.2204 12.0447 14.2723 12.0308 14.5802 12.0447 14.767 12.0516 14.8223 12.0654 14.8223 12.1069 14.8223 12.145 14.7704 12.1623 14.6321 12.1761 14.3969 12.1969 14.2827 12.2695 14.2031 12.4355 14.1443 12.5601 14.1443 12.5635 14.2274 12.6915 14.3277 12.8403 14.8362 13.3176 15.0541 13.4629 15.2167 13.5736 15.4553 13.5943 15.5453 13.5079Z"
+ },
+ "angle": { "value": 180 },
+ "fill": { "value": "#333F50" }
+ }
+ }
+ },
+ {
+ "type": "rule",
+ "data": [{}],
+ "encode": {
+ "update": {
+ "x": { "signal": "30" },
+ "y": { "signal": "-30" },
+ "x2": { "signal": "110" },
+ "y2": { "signal": "-30" },
+ "stroke": { "value": "#333F50" },
+ "strokeWidth": { "value": 5 }
+ }
+ }
+ },
+ {
+ "type": "rule",
+ "data": [{}],
+ "encode": {
+ "update": {
+ "x": { "signal": "-50" },
+ "y": { "signal": "-30" },
+ "x2": { "signal": "-130" },
+ "y2": { "signal": "-30" },
+ "stroke": { "value": "#333F50" },
+ "strokeWidth": { "value": 5 }
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "text",
+ "data": [{}],
+ "encode": {
+ "update": {
+ "text": { "value": ["Source: SIPRI", "Dataviz: David Bacci"] },
+ "align": { "value": "left" },
+ "lineHeight": { "value": 16 },
+ "fill": { "value": "#595959" },
+ "x": { "signal": "0" },
+ "y": { "signal": "height + 100" },
+ "fontSize": { "value": 10 }
+ }
+ }
+ }
+ ]
+}
diff --git a/testdata/deneb/marimekko-chart.vg.json.svg b/testdata/deneb/marimekko-chart.vg.json.svg
new file mode 100644
index 0000000..e9200bb
--- /dev/null
+++ b/testdata/deneb/marimekko-chart.vg.json.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/testdata/deneb/mekko-bar-chart.vg.json b/testdata/deneb/mekko-bar-chart.vg.json
new file mode 100644
index 0000000..02d32f8
--- /dev/null
+++ b/testdata/deneb/mekko-bar-chart.vg.json
@@ -0,0 +1,685 @@
+{
+ "$schema": "https://vega.github.io/schema/vega/v5.json",
+ "description": "A Marimekko Chart by Dav Bacci: https://www.linkedin.com/in/davbacci/",
+ "width": 1200,
+ "height": 950,
+ "background": "#dae3f3",
+ "view": {"stroke": null},
+ "padding": {"top": 30, "bottom": 20, "left": 60, "right": 60},
+ "title": {
+ "text": "Global Military Spending 2022",
+ "offset": 30,
+ "align": "center",
+ "anchor": "middle",
+ "fontSize": 34,
+ "fontWeight": "600",
+ "font": "Roboto",
+ "color": "#333F50"
+ },
+ "signals": [
+ {
+ "name": "guns",
+ "value": "M13.9506 32.9343C13.8088 32.8686 13.5528 32.5849 13.5079 32.4431 13.494 32.405 13.494 32.3324 13.5044 32.2805 13.5217 32.2182 14.1962 31.5195 15.5418 30.1808 16.6487 29.0774 17.6104 28.1053 17.6796 28.0189 17.7487 27.9324 17.9874 27.6695 18.2053 27.4308L18.6066 27.0019 18.5132 26.9604C18.4129 26.9189 18.3264 26.8116 18.2849 26.6836 18.2676 26.6318 18.2953 26.5695 18.3852 26.4588 18.4509 26.3758 18.5063 26.272 18.5063 26.234 18.5063 26.144 18.7035 25.9434 18.7899 25.9434 18.828 25.9434 18.9283 26.0126 19.0217 26.0991 19.1774 26.2443 19.1912 26.2513 19.2396 26.1925 19.3123 26.1129 19.4057 25.9226 19.4057 25.8604 19.4057 25.8327 19.4852 25.7428 19.5855 25.6563L19.7654 25.5006 19.6513 25.255C19.5821 25.1063 19.5475 24.9852 19.5613 24.9437 19.5959 24.8365 19.8208 24.6566 19.8865 24.6843 20.0836 24.7673 20.1425 24.667 20.0491 24.3972 19.966 24.1585 19.9799 24.0962 20.1355 23.9164L20.2774 23.7538 18.5132 22.0035C17.5412 21.0418 16.7214 20.2116 16.6903 20.1597 16.6349 20.0733 16.6384 20.0594 16.7041 19.9038 16.7456 19.8138 16.7733 19.7377 16.7698 19.7343 16.711 19.6997 16.2267 19.295 16.1921 19.2569 16.161 19.2154 16.1575 19.1843 16.1887 19.1324 16.2094 19.0909 16.2164 19.0597 16.206 19.0597 16.1921 19.0597 16.0123 19.2154 15.8047 19.4057 15.5937 19.5959 15.3827 19.7619 15.3343 19.7723 15.2893 19.7862 15.1475 19.7862 15.0264 19.7758 14.8465 19.7619 14.767 19.7343 14.6217 19.6374 14.5214 19.5717 13.7811 18.9387 12.9717 18.2296 12.1623 17.517 10.9792 16.4827 10.3428 15.9258 8.85535 14.6286 8.85189 14.6252 8.80692 14.3104 8.78616 14.1755 8.79654 14.1132 8.8588 13.9887 8.90031 13.9022 8.95912 13.8157 8.99371 13.795 9.03868 13.7673 9.04906 13.7223 9.03868 13.5978 9.02484 13.4802 9.04906 13.366 9.12862 13.1516 9.25314 12.8195 9.2566 12.7676 9.17704 12.6154 9.09057 12.4425 9.05943 12.2799 9.11824 12.2799 9.19088 12.2799 9.17704 12.2176 9.09748 12.1761 9.00409 12.1277 9.01101 12.0447 9.11132 11.9374L9.19434 11.8475 8.94874 11.5154C8.81038 11.3321 8.6478 11.1245 8.58553 11.0553 8.52673 10.9862 8.47484 10.9031 8.47484 10.8755 8.47484 10.8063 7.26069 9.54025 6.66572 8.99025 6.42013 8.76541 6.19182 8.57862 6.15723 8.57862 6.12264 8.57862 5.91855 8.39874 5.68333 8.1566 5.45849 7.92484 4.60755 7.05314 3.79119 6.2195L2.30377 4.70786 2.11352 4.66981C1.88522 4.62138 1.57736 4.54874 0.899371 4.37925 0.0968553 4.17862 0.141824 4.19245 0.11761 4.08868 0.107233 4.03679 0.0761006 3.9261 0.0518868 3.83962 0.00345912 3.68742 0.00691824 3.67358 0.103774 3.47987 0.224843 3.24119 0.231761 3.16509 0.138365 3.02673 0.0622642 2.90912 0.0518868 2.8088 0.107233 2.61855 0.148742 2.46289 0.66761 1.91289 1.26258 1.38711 2.13428 0.619182 3.08208-0.0345912 3.25157 0.0172956 3.32767 0.0415094 3.33113 0.0449686 3.33805 0.311321 3.34151 0.480818 3.3934 0.601887 3.79811 1.43208 4.05063 1.94403 4.26164 2.37296 4.27201 2.37987 4.27893 2.38679 4.3827 2.31415 4.49686 2.2173 4.61447 2.12044 4.72516 2.04088 4.74245 2.04088 4.80818 2.04088 4.88428 2.22767 5.1022 2.95755 5.3478 3.76698 5.4239 3.93994 5.62107 4.11289 5.76289 4.23396 5.79748 4.24088 5.88396 4.16478 5.96006 4.09906 6.0327 4.13365 6.18836 4.3066 6.30252 4.43805 6.31981 4.52799 6.25409 4.63522 6.21604 4.69403 6.22987 4.72516 6.38553 4.88428 6.6761 5.18868 6.74528 5.28899 6.74528 5.41006 6.74528 5.54151 6.68994 5.63145 6.44088 5.88742L6.24717 6.08805 6.34748 6.19874C6.40629 6.26101 6.66226 6.53082 6.9217 6.80063 7.22956 7.11887 7.40252 7.32296 7.41635 7.38868 7.43019 7.44403 7.55472 7.61698 7.69654 7.7761 7.87642 7.97327 8.00786 8.16352 8.11509 8.38145 8.24308 8.63742 8.35031 8.77579 8.63742 9.08711 8.83459 9.29811 9.03868 9.53679 9.09057 9.61289 9.18742 9.75818 9.39151 9.92767 9.46415 9.92767 9.48837 9.92767 9.58176 9.98994 9.6717 10.066 9.81006 10.1906 9.83774 10.2009 9.88962 10.1594 9.92075 10.1352 10.0418 10.0314 10.1594 9.93113L10.3774 9.7478 10.6264 9.9761C10.9481 10.2701 11.1142 10.3497 11.4358 10.3704 11.8959 10.3981 11.9443 10.3566 12.0204 9.83774 12.0689 9.49528 12.1796 8.14969 12.2453 7.04623 12.2868 6.36478 12.3214 6.26101 12.5013 6.26101 12.695 6.26101 13.1343 6.53428 14.0198 7.20535 14.473 7.5478 14.5975 7.68616 14.5975 7.84182 14.5975 7.9456 14.4799 8.09434 14.3969 8.09434 14.3726 8.09434 14.338 8.13239 14.3242 8.17736 14.2689 8.31918 14.1478 9.1044 14.1409 9.36384 14.134 9.58522 14.1443 9.64057 14.2343 9.79969 14.3519 10.0176 14.338 10.0833 14.1582 10.1594 13.9956 10.2252 13.9748 10.2563 13.9748 10.4292 13.9748 10.5538 14.006 10.6022 14.255 10.8962 14.4107 11.0761 14.6044 11.3113 14.684 11.4151 14.8984 11.6918 16.0469 12.8022 16.2129 12.8956L16.3547 12.9717 16.7802 12.6604C17.4789 12.1415 18.2399 11.7057 19.0494 11.3494 19.2569 11.2594 19.4645 11.1591 19.5164 11.1245 19.7654 10.9619 20.0906 11.2491 20.5541 12.0377 20.6613 12.2176 20.9311 12.6396 21.1525 12.9717 21.4016 13.3453 21.5607 13.6151 21.5607 13.6739 21.5676 13.7638 21.5469 13.7777 21.2494 13.9022 20.6925 14.1374 19.5717 14.7289 19.2569 14.9538 18.8349 15.2582 18.4717 15.5903 18.4717 15.6733 18.4717 15.7113 18.4959 15.7874 18.5236 15.8393 18.5686 15.9292 18.5686 15.9431 18.5132 15.9915 18.4821 16.0226 18.3852 16.0745 18.2987 16.1126 18.1465 16.1783 17.9355 16.3755 17.6588 16.7214L17.5204 16.8909 17.5204 17.2437C17.5204 17.5931 17.5204 17.5965 17.4028 17.728 17.2541 17.8975 17.3129 17.9217 17.5204 17.7799 17.6069 17.7211 17.6899 17.683 17.7107 17.6934 17.728 17.7038 17.8456 17.8456 17.977 18.0082 18.2296 18.3299 18.1984 18.316 18.5097 18.2434 18.5755 18.2296 18.6308 18.2538 18.7519 18.3506 18.8349 18.4198 19.6132 19.2189 20.478 20.1252 21.3462 21.0314 22.0692 21.7752 22.0899 21.7752 22.1072 21.7752 22.761 21.0972 23.5428 20.2704 24.3245 19.4437 25.0302 18.7069 25.1097 18.6343 25.3208 18.444 25.3865 18.4198 25.5456 18.4855 25.6148 18.5167 25.7013 18.5409 25.7358 18.5409 25.7704 18.5409 25.8984 18.4129 26.0437 18.2296L26.2893 17.9182 26.4969 18.0635C26.611 18.1431 26.7113 18.1984 26.7252 18.1846 26.7355 18.1742 26.6836 18.0877 26.6041 17.9943 26.4623 17.8283 26.4623 17.8248 26.4623 17.5481 26.4623 17.1987 26.438 17.133 26.2028 16.8459 25.8673 16.4412 25.6425 16.2302 25.428 16.123 25.1789 15.995 25.134 15.9327 25.2031 15.7978 25.2308 15.7459 25.2447 15.6733 25.2343 15.6352 25.1928 15.5038 24.4664 14.8742 23.9579 14.5283 23.6223 14.3035 22.7091 13.7777 22.1038 13.4629 21.827 13.3211 21.5953 13.1965 21.5884 13.1896 21.5572 13.1654 21.661 12.8991 21.7371 12.8091 21.8167 12.7123 22.3321 11.8406 22.5673 11.3978 22.6399 11.2664 22.7748 11.0346 22.8752 10.8893 23.017 10.6714 23.0827 10.6022 23.2349 10.5261L23.4182 10.4292 23.5324 10.495C23.5912 10.533 23.8472 10.6714 24.0928 10.8028 25.2135 11.4013 25.9296 11.8509 26.7217 12.4667 27.0088 12.6881 27.2648 12.8679 27.2959 12.8679 27.4101 12.8679 27.6833 12.6465 28.223 12.1242 28.5308 11.8233 28.8387 11.4981 28.9079 11.4013 28.977 11.3044 29.1535 11.0865 29.3022 10.9135 29.5928 10.5676 29.6447 10.4881 29.6447 10.3704 29.6447 10.2563 29.5236 10.0764 29.4302 10.0487 29.323 10.0142 29.195 9.89308 29.195 9.82736 29.195 9.79623 29.2296 9.70975 29.2711 9.63365 29.3783 9.43648 29.3645 9.18742 29.1984 8.52327 29.0324 7.85912 29.0116 7.80377 28.8594 7.71384 28.7972 7.67924 28.7211 7.59277 28.6865 7.52704 28.6381 7.42327 28.6381 7.39214 28.6761 7.29528 28.7349 7.16038 29.0635 6.89748 29.7173 6.46164 30.5371 5.91855 30.7965 5.81824 30.9557 5.99119 31.0456 6.08459 31.0836 6.20566 31.1321 6.57233 31.1943 7.05314 31.5437 9.11132 31.6509 9.64057 31.7755 10.2597 31.8481 10.4327 32.0176 10.5019 32.1698 10.5676 32.5814 10.578 32.7786 10.5226 32.917 10.4811 33.0173 10.4119 33.3597 10.1248L33.5154 9.98994 33.8025 10.239C33.9616 10.3774 34.1069 10.495 34.1311 10.5053 34.1553 10.5157 34.2418 10.4673 34.3248 10.3981 34.4079 10.3289 34.5047 10.2736 34.5393 10.2736 34.6292 10.2736 34.8714 10.0695 34.9233 9.94843 34.9475 9.88962 35.1377 9.66132 35.3453 9.43994 35.6393 9.12516 35.7396 8.99025 35.8019 8.83459 35.9506 8.46101 36.044 8.30535 36.2516 8.0805 36.3865 7.93868 36.4799 7.80031 36.5179 7.69654 36.5629 7.56509 36.6805 7.42327 37.1267 6.96321L37.6836 6.39591 37.4035 6.11226C37.0887 5.79057 37.0472 5.7283 37.0472 5.55535 37.0472 5.45503 37.0852 5.38931 37.2547 5.19214 37.3689 5.06069 37.4761 4.93962 37.4969 4.92925 37.5487 4.89811 37.5384 4.78742 37.4796 4.73899 37.4519 4.71478 37.4277 4.67327 37.4277 4.64214 37.4277 4.55912 37.5695 4.37233 37.6767 4.3066 37.7701 4.25472 37.7805 4.25472 37.8635 4.32044 37.9154 4.36195 37.9742 4.39308 37.9984 4.39308 38.0607 4.39308 38.3236 4.0956 38.3789 3.96415 38.4066 3.90189 38.4896 3.54214 38.5692 3.16164 38.756 2.24843 38.7975 2.11006 38.8736 2.11006 38.9082 2.11006 39.0465 2.20346 39.178 2.31761 39.3094 2.43176 39.427 2.52516 39.4374 2.52516 39.4478 2.52516 39.6346 2.09277 39.8525 1.56698 40.2434 0.608805 40.2434 0.605346 40.2399 0.338994 40.2296-0.0242138 40.2711-0.0484277 40.5962 0.141824 41.5544 0.702201 43.8305 2.72579 44.0346 3.19969 44.1142 3.38994 44.1211 3.58711 44.0519 3.6805 44.0242 3.71855 44 3.78428 44 3.82925 44 3.91572 44.1003 4.13711 44.2145 4.29969 44.2733 4.37925 44.2767 4.41384 44.2456 4.50377 44.2248 4.56258 44.2075 4.66635 44.2075 4.73553 44.2075 4.80472 44.1937 4.88082 44.1764 4.90503 44.1591 4.9327 43.9689 4.97767 43.6956 5.01572 43.4465 5.05031 43.1145 5.10566 42.9588 5.13679 42.8031 5.16447 42.4918 5.21289 42.267 5.24057L41.8588 5.28899 40.8418 6.31981C40.2849 6.88711 39.4409 7.75189 38.9635 8.23962 38.3374 8.88648 38.0814 9.13208 38.0226 9.13208 37.9258 9.13208 37.4761 9.54025 36.7013 10.3324 35.8157 11.2318 35.7223 11.3355 35.7154 11.4116 35.7119 11.4497 35.6462 11.5638 35.5667 11.6642 35.3626 11.927 35.0409 12.3836 35.0409 12.4148 35.0409 12.4286 35.0893 12.484 35.1447 12.5393 35.2726 12.6604 35.2726 12.6811 35.155 12.8091 35.0858 12.8852 35.0755 12.906 35.1204 12.8921 35.2138 12.8575 35.2311 12.9509 35.1619 13.1377 35.1308 13.2277 35.0962 13.3314 35.0893 13.3695 35.0789 13.411 35.1481 13.6324 35.2484 13.8814 35.3764 14.2031 35.4214 14.3484 35.4041 14.4176 35.3903 14.4937 35.4041 14.5318 35.4767 14.5975 35.6947 14.805 35.7811 15.2028 35.6531 15.4484 35.577 15.5937 35.2761 15.8704 34.2626 16.7248 33.7679 17.1434 32.6852 18.0601 31.8585 18.7657 29.9456 20.395 29.9283 20.4088 29.783 20.4711 29.6066 20.5437 29.2399 20.5437 29.0843 20.4676 29.0151 20.433 28.7695 20.2255 28.5343 20.0075 28.3025 19.7896 28.1053 19.6201 28.0984 19.627 28.0881 19.634 28.0984 19.672 28.1157 19.7066 28.1365 19.7447 28.1434 19.7896 28.1296 19.8104 28.1123 19.8346 27.7006 20.1736 27.5415 20.2877 27.538 20.2912 27.5726 20.3846 27.6245 20.4918 27.711 20.6821 27.711 20.689 27.6522 20.7824 27.6176 20.8343 26.7805 21.6818 25.7912 22.6642L23.989 24.456 24.1308 24.456C24.2415 24.456 24.2899 24.4767 24.3799 24.5701 24.5113 24.705 24.5217 24.8192 24.4214 25.0371L24.3557 25.1858 24.5425 25.3692C24.6462 25.4695 24.7327 25.5767 24.7327 25.6044 24.7327 25.6321 24.7811 25.722 24.8399 25.8016L24.9437 25.9469 25.0821 25.8258C25.1547 25.7566 25.2481 25.7013 25.2827 25.7013 25.3623 25.7013 25.5629 25.8915 25.5629 25.9676 25.5629 25.9987 25.6148 26.0852 25.677 26.1648 25.7393 26.2443 25.805 26.3239 25.8189 26.3481 25.8535 26.4104 25.7497 26.5903 25.6459 26.6456L25.556 26.694 25.9157 27.0711C26.1129 27.2786 26.3758 27.5657 26.4934 27.7075 26.6145 27.8494 27.161 28.3994 27.7041 28.9321 29.0981 30.2915 30.5094 31.7167 30.6236 31.8862 30.7516 32.0695 30.7274 32.194 30.5302 32.3947 30.2638 32.661 30.2708 32.6645 29.5443 31.9692 28.9459 31.3915 28.7072 31.1459 27.2925 29.6204 26.7079 28.9943 26.1164 28.389 25.2827 27.5761L24.8123 27.1195 24.1862 27.7283C23.4943 28.3994 23.3318 28.5377 23.2487 28.5377 23.1657 28.5377 22.8544 28.2714 22.806 28.1572 22.7783 28.095 22.7506 27.7075 22.7299 27.1057 22.7091 26.5799 22.678 26.1233 22.6607 26.0887 22.6434 26.0575 22.5984 25.9987 22.5569 25.9642 22.4843 25.8984 22.4843 25.9019 22.1142 26.2547 21.9066 26.4519 21.7267 26.6318 21.7129 26.6594 21.6991 26.6836 21.7025 26.9569 21.7233 27.2648 21.7821 28.1676 21.8028 28.8318 21.7821 28.9252 21.7682 28.977 21.6783 29.0739 21.5641 29.1604L21.367 29.3091 21.2425 29.2434C21.1733 29.2088 20.7478 28.8145 20.2947 28.3682L19.4714 27.5553 19.1013 27.9186C17.9113 29.0774 17.6519 29.3368 17.4962 29.5236 16.9877 30.1289 14.2101 33 14.1305 33 14.1132 33 14.0302 32.9689 13.9506 32.9343ZM21.2736 28.005C21.3324 27.8252 21.239 26.7252 21.156 26.6456 21.1491 26.6352 21.0972 26.6594 21.0418 26.6975 20.9069 26.7943 20.1667 27.5519 20.1667 27.5899 20.1667 27.6107 20.2358 27.6937 20.3223 27.7767 20.4676 27.922 20.4918 27.9324 20.6613 27.9324 20.8101 27.9324 20.8654 27.9497 20.9588 28.0292 21.1179 28.1607 21.2217 28.1538 21.2736 28.005ZM23.4701 27.4239C23.567 27.3478 23.733 27.327 23.8403 27.3755 23.8818 27.3928 23.9336 27.3616 24.0374 27.2579 24.117 27.1748 24.1792 27.1022 24.1792 27.0884 24.1792 27.0745 23.9613 26.8462 23.6915 26.5833 23.266 26.1613 23.2003 26.106 23.1692 26.1613 23.1484 26.1994 23.1415 26.4519 23.1484 26.7909 23.1588 27.2855 23.1657 27.3616 23.2245 27.4274 23.3075 27.5208 23.3491 27.5173 23.4701 27.4239ZM29.6447 20.0664C29.8764 19.8969 32.9827 16.839 33.384 16.3858 33.6053 16.1403 33.6226 16.1057 33.6226 15.9604 33.6226 15.784 33.5085 15.6352 33.3736 15.6352 33.1522 15.6387 32.9965 15.7736 31.4538 17.3025 29.9248 18.8211 29.2434 19.5302 29.1223 19.7343 29.0497 19.8519 29.0358 20.0802 29.0981 20.1182 29.1673 20.1632 29.3472 20.1943 29.4371 20.1736 29.4855 20.1667 29.5789 20.1182 29.6447 20.0664ZM15.317 19.4333C15.3862 19.3642 15.3654 19.2569 15.2513 19.0736 15.1925 18.9767 14.3104 18.0704 13.2208 16.9808 11.1626 14.9296 11.0969 14.8708 10.8997 14.9814 10.7959 15.0403 10.7648 15.2028 10.827 15.3585 10.8824 15.4899 14.7566 19.3434 14.9088 19.416 15.0506 19.4818 15.2582 19.4921 15.317 19.4333ZM28.7314 13.577C28.9425 13.4698 29.5513 12.9094 29.6101 12.7607 29.6516 12.6673 29.6481 12.6362 29.5893 12.5324 29.4925 12.3491 29.3333 12.2453 29.1085 12.2142 28.7937 12.1692 28.7487 12.0377 29.0531 12.0377 29.2987 12.0377 29.5374 12.1242 29.7277 12.2799 29.8176 12.356 29.9006 12.4182 29.9075 12.4182 29.9145 12.4182 29.9525 12.3664 29.9906 12.3075 30.1151 12.1 30.0597 11.7472 29.8833 11.6538 29.8003 11.6123 29.3403 11.6088 29.2399 11.6503 29.1431 11.6918 27.9843 12.8818 27.9843 12.9406 27.9843 13.0201 28.1503 13.4906 28.1987 13.5494 28.3094 13.6843 28.4997 13.6912 28.7314 13.577ZM15.5453 13.5079C15.6006 13.4491 15.6525 13.2899 15.6906 13.0478L15.7148 12.8956 15.0956 12.2764C14.5248 11.7057 14.466 11.6572 14.3138 11.6226 13.8814 11.5327 13.7258 11.5984 13.7258 11.8752 13.7258 12.0204 13.8088 12.2591 13.8711 12.2972 13.8884 12.3075 13.9645 12.2591 14.044 12.1934 14.2204 12.0447 14.2723 12.0308 14.5802 12.0447 14.767 12.0516 14.8223 12.0654 14.8223 12.1069 14.8223 12.145 14.7704 12.1623 14.6321 12.1761 14.3969 12.1969 14.2827 12.2695 14.2031 12.4355 14.1443 12.5601 14.1443 12.5635 14.2274 12.6915 14.3277 12.8403 14.8362 13.3176 15.0541 13.4629 15.2167 13.5736 15.4553 13.5943 15.5453 13.5079Z"
+ }
+ ],
+ "data": [
+ {
+ "name": "table",
+ "values": [
+ {"Continent": "Africa", "Country": "Algeria", "Spend": 9145.8},
+ {"Continent": "Africa", "Country": "Morocco", "Spend": 4995},
+ {"Continent": "Africa", "Country": "Tunisia", "Spend": 1156.2},
+ {"Continent": "Africa", "Country": "Angola", "Spend": 1622.8},
+ {"Continent": "Africa", "Country": "Benin", "Spend": 97.2},
+ {"Continent": "Africa", "Country": "Botswana", "Spend": 489.3},
+ {"Continent": "Africa", "Country": "Burkina Faso", "Spend": 562.6},
+ {"Continent": "Africa", "Country": "Burundi", "Spend": 101.4},
+ {"Continent": "Africa", "Country": "Cameroon", "Spend": 416.6},
+ {"Continent": "Africa", "Country": "Cape Verde", "Spend": 10.3},
+ {
+ "Continent": "Africa",
+ "Country": "Central African Republic",
+ "Spend": 42
+ },
+ {"Continent": "Africa", "Country": "Chad", "Spend": 357.4},
+ {"Continent": "Africa", "Country": "Congo, DR", "Spend": 371.1},
+ {"Continent": "Africa", "Country": "Congo, Republic", "Spend": 265.8},
+ {"Continent": "Africa", "Country": "Cote d'Ivoire", "Spend": 607.2},
+ {"Continent": "Africa", "Country": "Equatorial Guinea", "Spend": 156.8},
+ {"Continent": "Africa", "Country": "Ethiopia", "Spend": 1031.4},
+ {"Continent": "Africa", "Country": "Gabon", "Spend": 277.7},
+ {"Continent": "Africa", "Country": "Gambia, The", "Spend": 15.2},
+ {"Continent": "Africa", "Country": "Ghana", "Spend": 229.3},
+ {"Continent": "Africa", "Country": "Guinea", "Spend": 441.3},
+ {"Continent": "Africa", "Country": "Guinea-Bissau", "Spend": 24.5},
+ {"Continent": "Africa", "Country": "Kenya", "Spend": 1138.3},
+ {"Continent": "Africa", "Country": "Lesotho", "Spend": 34.7},
+ {"Continent": "Africa", "Country": "Liberia", "Spend": 18.7},
+ {"Continent": "Africa", "Country": "Madagascar", "Spend": 98},
+ {"Continent": "Africa", "Country": "Malawi", "Spend": 75.8},
+ {"Continent": "Africa", "Country": "Mali", "Spend": 515.1},
+ {"Continent": "Africa", "Country": "Mauritania", "Spend": 225.4},
+ {"Continent": "Africa", "Country": "Mauritius", "Spend": 20.3},
+ {"Continent": "Africa", "Country": "Mozambique", "Spend": 281.9},
+ {"Continent": "Africa", "Country": "Namibia", "Spend": 369.1},
+ {"Continent": "Africa", "Country": "Niger", "Spend": 242.5},
+ {"Continent": "Africa", "Country": "Nigeria", "Spend": 3109.4},
+ {"Continent": "Africa", "Country": "Rwanda", "Spend": 177.2},
+ {"Continent": "Africa", "Country": "Senegal", "Spend": 433.5},
+ {"Continent": "Africa", "Country": "Seychelles", "Spend": 26.1},
+ {"Continent": "Africa", "Country": "Sierra Leone", "Spend": 24.5},
+ {"Continent": "Africa", "Country": "Somalia", "Spend": 115.1},
+ {"Continent": "Africa", "Country": "South Africa", "Spend": 2995.3},
+ {"Continent": "Africa", "Country": "South Sudan", "Spend": 378.8},
+ {"Continent": "Africa", "Country": "Eswatini", "Spend": 74.3},
+ {"Continent": "Africa", "Country": "Tanzania", "Spend": 832.2},
+ {"Continent": "Africa", "Country": "Togo", "Spend": 336.6},
+ {"Continent": "Africa", "Country": "Uganda", "Spend": 923.1},
+ {"Continent": "Africa", "Country": "Zambia", "Spend": 326.1},
+ {"Continent": "Africa", "Country": "Zimbabwe", "Spend": 182.1},
+ {"Continent": "Americas", "Country": "Belize", "Spend": 23.7},
+ {"Continent": "Americas", "Country": "Costa Rica", "Spend": 0},
+ {
+ "Continent": "Americas",
+ "Country": "Dominican Republic",
+ "Spend": 760.8
+ },
+ {"Continent": "Americas", "Country": "El Salvador", "Spend": 422.4},
+ {"Continent": "Americas", "Country": "Guatemala", "Spend": 430.6},
+ {"Continent": "Americas", "Country": "Haiti", "Spend": 12.6},
+ {"Continent": "Americas", "Country": "Honduras", "Spend": 477.5},
+ {"Continent": "Americas", "Country": "Jamaica", "Spend": 215.1},
+ {"Continent": "Americas", "Country": "Mexico", "Spend": 8535.5},
+ {"Continent": "Americas", "Country": "Nicaragua", "Spend": 84.2},
+ {"Continent": "Americas", "Country": "Panama", "Spend": 0},
+ {
+ "Continent": "Americas",
+ "Country": "Trinidad and Tobago",
+ "Spend": 201.1
+ },
+ {"Continent": "Americas", "Country": "Canada", "Spend": 26896.3},
+ {
+ "Continent": "Americas",
+ "Country": "United States of America",
+ "Spend": 876943.2
+ },
+ {"Continent": "Americas", "Country": "Argentina", "Spend": 2577.6},
+ {"Continent": "Americas", "Country": "Bolivia", "Spend": 640.3},
+ {"Continent": "Americas", "Country": "Brazil", "Spend": 20210.8},
+ {"Continent": "Americas", "Country": "Chile", "Spend": 5566.5},
+ {"Continent": "Americas", "Country": "Colombia", "Spend": 9937.7},
+ {"Continent": "Americas", "Country": "Ecuador", "Spend": 2488.6},
+ {"Continent": "Americas", "Country": "Guyana", "Spend": 84.3},
+ {"Continent": "Americas", "Country": "Paraguay", "Spend": 365.7},
+ {"Continent": "Americas", "Country": "Peru", "Spend": 2845.4},
+ {"Continent": "Americas", "Country": "Uruguay", "Spend": 1375.6},
+ {"Continent": "Americas", "Country": "Venezuela", "Spend": 4.6},
+ {
+ "Continent": "Asia & Oceania",
+ "Country": "Australia",
+ "Spend": 32298.9
+ },
+ {"Continent": "Asia & Oceania", "Country": "Fiji", "Spend": 66.8},
+ {
+ "Continent": "Asia & Oceania",
+ "Country": "New Zealand",
+ "Spend": 2829.1
+ },
+ {
+ "Continent": "Asia & Oceania",
+ "Country": "Papua New Guinea",
+ "Spend": 97.5
+ },
+ {
+ "Continent": "Asia & Oceania",
+ "Country": "Bangladesh",
+ "Spend": 4806.3
+ },
+ {"Continent": "Asia & Oceania", "Country": "India", "Spend": 81363.2},
+ {"Continent": "Asia & Oceania", "Country": "Nepal", "Spend": 428.3},
+ {
+ "Continent": "Asia & Oceania",
+ "Country": "Pakistan",
+ "Spend": 10337.5
+ },
+ {
+ "Continent": "Asia & Oceania",
+ "Country": "Sri Lanka",
+ "Spend": 1053.5
+ },
+ {"Continent": "Asia & Oceania", "Country": "China", "Spend": 291958.4},
+ {"Continent": "Asia & Oceania", "Country": "Japan", "Spend": 45992.1},
+ {
+ "Continent": "Asia & Oceania",
+ "Country": "South Korea",
+ "Spend": 46365.4
+ },
+ {"Continent": "Asia & Oceania", "Country": "Mongolia", "Spend": 118.4},
+ {"Continent": "Asia & Oceania", "Country": "Taiwan", "Spend": 12508.6},
+ {"Continent": "Asia & Oceania", "Country": "Brunei", "Spend": 435.9},
+ {"Continent": "Asia & Oceania", "Country": "Cambodia", "Spend": 611},
+ {
+ "Continent": "Asia & Oceania",
+ "Country": "Indonesia",
+ "Spend": 8986.6
+ },
+ {"Continent": "Asia & Oceania", "Country": "Malaysia", "Spend": 3670.7},
+ {"Continent": "Asia & Oceania", "Country": "Myanmar", "Spend": 1856.9},
+ {
+ "Continent": "Asia & Oceania",
+ "Country": "Philippines",
+ "Spend": 3965.4
+ },
+ {
+ "Continent": "Asia & Oceania",
+ "Country": "Singapore",
+ "Spend": 11687.6
+ },
+ {"Continent": "Asia & Oceania", "Country": "Thailand", "Spend": 5724.4},
+ {
+ "Continent": "Asia & Oceania",
+ "Country": "Timor Leste",
+ "Spend": 44.3
+ },
+ {"Continent": "Asia & Oceania", "Country": "Kazakhstan", "Spend": 1133},
+ {
+ "Continent": "Asia & Oceania",
+ "Country": "Kyrgyz Republic",
+ "Spend": 149.8
+ },
+ {
+ "Continent": "Asia & Oceania",
+ "Country": "Tajikistan",
+ "Spend": 103.5
+ },
+ {"Continent": "Europe", "Country": "Albania", "Spend": 288.7},
+ {
+ "Continent": "Europe",
+ "Country": "Bosnia and Herzegovina",
+ "Spend": 184.5
+ },
+ {"Continent": "Europe", "Country": "Bulgaria", "Spend": 1336},
+ {"Continent": "Europe", "Country": "Croatia", "Spend": 1308.5},
+ {"Continent": "Europe", "Country": "Czechia", "Spend": 4005.4},
+ {"Continent": "Europe", "Country": "Estonia", "Spend": 810.9},
+ {"Continent": "Europe", "Country": "Hungary", "Spend": 2572.2},
+ {"Continent": "Europe", "Country": "Kosovo", "Spend": 107.6},
+ {"Continent": "Europe", "Country": "Latvia", "Spend": 848.8},
+ {"Continent": "Europe", "Country": "Lithuania", "Spend": 1732.3},
+ {"Continent": "Europe", "Country": "North Macedonia", "Spend": 225},
+ {"Continent": "Europe", "Country": "Montenegro", "Spend": 98},
+ {"Continent": "Europe", "Country": "Poland", "Spend": 16573.1},
+ {"Continent": "Europe", "Country": "Romania", "Spend": 5186.7},
+ {"Continent": "Europe", "Country": "Serbia", "Spend": 1426.4},
+ {"Continent": "Europe", "Country": "Slovakia", "Spend": 1994.2},
+ {"Continent": "Europe", "Country": "Slovenia", "Spend": 735.2},
+ {"Continent": "Europe", "Country": "Armenia", "Spend": 795.2},
+ {"Continent": "Europe", "Country": "Azerbaijan", "Spend": 2991},
+ {"Continent": "Europe", "Country": "Belarus", "Spend": 820.8},
+ {"Continent": "Europe", "Country": "Georgia", "Spend": 360.3},
+ {"Continent": "Europe", "Country": "Moldova", "Spend": 47.7},
+ {"Continent": "Europe", "Country": "Russia", "Spend": 86373.1},
+ {"Continent": "Europe", "Country": "Ukraine", "Spend": 43997.7},
+ {"Continent": "Europe", "Country": "Austria", "Spend": 3625.6},
+ {"Continent": "Europe", "Country": "Belgium", "Spend": 6867},
+ {"Continent": "Europe", "Country": "Cyprus", "Spend": 494.2},
+ {"Continent": "Europe", "Country": "Denmark", "Spend": 5467.9},
+ {"Continent": "Europe", "Country": "Finland", "Spend": 4822.9},
+ {"Continent": "Europe", "Country": "France", "Spend": 53638.7},
+ {"Continent": "Europe", "Country": "Germany", "Spend": 55759.7},
+ {"Continent": "Europe", "Country": "Greece", "Spend": 8104.9},
+ {"Continent": "Europe", "Country": "Iceland", "Spend": 0},
+ {"Continent": "Europe", "Country": "Ireland", "Spend": 1164.3},
+ {"Continent": "Europe", "Country": "Italy", "Spend": 33489.7},
+ {"Continent": "Europe", "Country": "Luxembourg", "Spend": 564.6},
+ {"Continent": "Europe", "Country": "Malta", "Spend": 87},
+ {"Continent": "Europe", "Country": "Netherlands", "Spend": 15606.6},
+ {"Continent": "Europe", "Country": "Norway", "Spend": 8388.4},
+ {"Continent": "Europe", "Country": "Portugal", "Spend": 3500.3},
+ {"Continent": "Europe", "Country": "Spain", "Spend": 20306.6},
+ {"Continent": "Europe", "Country": "Sweden", "Spend": 7722.5},
+ {"Continent": "Europe", "Country": "Switzerland", "Spend": 6145.2},
+ {"Continent": "Europe", "Country": "United Kingdom", "Spend": 68462.6},
+ {"Continent": "Europe", "Country": "European Union", "Spend": 1283.2},
+ {"Continent": "Middle East", "Country": "Bahrain", "Spend": 1381.3},
+ {"Continent": "Middle East", "Country": "Egypt", "Spend": 4645.9},
+ {"Continent": "Middle East", "Country": "Iran", "Spend": 6846.6},
+ {"Continent": "Middle East", "Country": "Iraq", "Spend": 4683.1},
+ {"Continent": "Middle East", "Country": "Israel", "Spend": 23406.1},
+ {"Continent": "Middle East", "Country": "Jordan", "Spend": 2323.3},
+ {"Continent": "Middle East", "Country": "Kuwait", "Spend": 8244.1},
+ {"Continent": "Middle East", "Country": "Lebanon", "Spend": 4739},
+ {"Continent": "Middle East", "Country": "Oman", "Spend": 5783.5},
+ {"Continent": "Middle East", "Country": "Qatar", "Spend": 15412.1},
+ {
+ "Continent": "Middle East",
+ "Country": ["Saudi", "Arabia"],
+ "Spend": 75013.3
+ },
+ {"Continent": "Middle East", "Country": "Türkiye", "Spend": 10644.6}
+ ],
+ "transform": [
+ {
+ "type": "formula",
+ "as": "Continent",
+ "expr": "datum.Continent =='Africa' ||datum.Continent =='Middle East'? 'Africa & Middle East': datum.Continent"
+ }
+ ]
+ },
+ {
+ "name": "continents",
+ "source": "table",
+ "transform": [
+ {
+ "type": "aggregate",
+ "fields": ["Spend"],
+ "ops": ["sum"],
+ "as": ["continentTotal"],
+ "groupby": ["Continent"]
+ },
+ {
+ "type": "stack",
+ "offset": "normalize",
+ "sort": {"field": "continentTotal", "order": "descending"},
+ "field": "continentTotal",
+ "as": ["x0", "x1"]
+ },
+ {
+ "type": "formula",
+ "as": "ContinentLabel",
+ "expr": "datum.Continent == 'Africa & Middle East'?['Africa &','Middle East']:datum.Continent"
+ },
+ {"type": "formula", "as": "Percent", "expr": "datum.x1-datum.x0"},
+ {
+ "type": "formula",
+ "as": "Label",
+ "expr": "[format(round(datum.continentTotal/1000),'$')+'B (' + format(datum.Percent,'.0%')+')']"
+ }
+ ]
+ },
+ {
+ "name": "finalTable",
+ "source": "table",
+ "transform": [
+ {
+ "type": "stack",
+ "offset": "normalize",
+ "groupby": ["Continent"],
+ "sort": {"field": "Spend", "order": "descending"},
+ "field": "Spend",
+ "as": ["y0", "y1"]
+ },
+ {
+ "type": "stack",
+ "groupby": ["Continent"],
+ "sort": {"field": "Spend", "order": "descending"},
+ "field": "Spend",
+ "as": ["z0", "z1"]
+ },
+ {
+ "type": "lookup",
+ "from": "continents",
+ "key": "Continent",
+ "values": ["x0", "x1"],
+ "fields": ["Continent"]
+ },
+ {"type": "formula", "as": "Percent", "expr": "datum.y1-datum.y0"},
+ {
+ "type": "formula",
+ "as": "Country",
+ "expr": "datum.Spend < 21000? 'Other': datum.Country"
+ },
+ {
+ "type": "aggregate",
+ "fields": [
+ "x0",
+ "x1",
+ "y0",
+ "y1",
+ "z0",
+ "z1",
+ "Country",
+ "Spend",
+ "Percent",
+ "Country"
+ ],
+ "ops": [
+ "min",
+ "min",
+ "min",
+ "max",
+ "min",
+ "max",
+ "max",
+ "sum",
+ "sum",
+ "count"
+ ],
+ "groupby": ["Continent", "Country"],
+ "as": [
+ "x0",
+ "x1",
+ "y0",
+ "y1",
+ "z0",
+ "z1",
+ "Country",
+ "Spend",
+ "Percent",
+ "Count"
+ ]
+ },
+ {
+ "type": "formula",
+ "as": "Country",
+ "expr": "datum.Count == 1? datum.Country:'Others (' + datum.Count +')'"
+ },
+ {
+ "type": "formula",
+ "as": "Label",
+ "expr": "[datum.Country,format(round(datum.Spend/1000),'$')+'B (' + format(datum.Percent,'.0%')+')']"
+ },
+ {
+ "type": "window",
+ "sort": {"field": "y0", "order": "ascending"},
+ "ops": ["row_number"],
+ "fields": [null],
+ "as": ["rank"],
+ "groupby": ["Continent"]
+ }
+ ]
+ }
+ ],
+ "scales": [
+ {
+ "name": "x",
+ "type": "linear",
+ "range": "width",
+ "domain": {"data": "finalTable", "field": "x1"}
+ },
+ {
+ "name": "y",
+ "type": "linear",
+ "range": "height",
+ "nice": false,
+ "zero": true,
+ "domain": {"data": "finalTable", "field": "z1"}
+ },
+ {
+ "name": "opacity",
+ "type": "linear",
+ "range": [1, 0.5],
+ "domain": {"data": "finalTable", "field": "rank"}
+ },
+ {
+ "name": "color",
+ "type": "ordinal",
+ "range": {"scheme": "viridis", "extent": [0.1, 0.5]},
+ "domain": {
+ "data": "continents",
+ "field": "Continent",
+ "sort": {"field": "x0", "order": "ascending", "op": "sum"}
+ }
+ }
+ ],
+ "axes": [
+ {
+ "orient": "left",
+ "scale": "y",
+ "zindex": 1,
+ "format": "",
+ "tickCount": 5,
+ "tickSize": 15,
+ "labelColor": {"value": "#333740"},
+ "labelFontWeight": {"value": "normal"},
+ "labelFontSize": {"value": 12},
+ "labelFont": {"value": "Roboto"},
+ "offset": 5,
+ "domain": false,
+ "encode": {
+ "labels": {
+ "update": {
+ "text": {"signal": "format(round(datum.value/1000),'$')+'B' "}
+ }
+ }
+ }
+ }
+ ],
+ "marks": [
+ {
+ "type": "rect",
+ "name": "bars",
+ "from": {"data": "finalTable"},
+ "encode": {
+ "update": {
+ "x": {"scale": "x", "field": "x0"},
+ "x2": {"scale": "x", "field": "x1"},
+ "y": {"scale": "y", "field": "z0"},
+ "y2": {"scale": "y", "field": "z1"},
+ "fill": {"scale": "color", "field": "Continent"},
+ "stroke": {"value": "white"},
+ "strokeWidth": {"value": 1},
+ "fillOpacity": {"scale": "opacity", "field": "rank"},
+ "tooltip": {"signal": "datum"}
+ }
+ }
+ },
+ {
+ "type": "text",
+ "name": "labels",
+ "interactive": false,
+ "from": {"data": "bars"},
+ "encode": {
+ "update": {
+ "x": {"signal": "(datum.x2 - datum.x)*0.5 + datum.x"},
+ "align": {"value": "center"},
+ "text": {"field": "datum.Label"},
+ "y": {"signal": "(datum.y2 - datum.y)*0.45 + datum.y"},
+ "fill": {"value": "white"},
+ "font": {"value": "Segoe UI"},
+ "lineHeight": {"value": 12},
+ "fontSize": {"value": 12}
+ }
+ }
+ },
+ {
+ "type": "rect",
+ "name": "ticksBottomLeft",
+ "from": {"data": "continents"},
+ "encode": {
+ "update": {
+ "x": {"scale": "x", "field": "x0", "offset": 4},
+ "y": {"signal": "height+10"},
+ "width": {"signal": "0.7"},
+ "height": {"signal": "20"},
+ "fill": {"value": "#333740"}
+ }
+ }
+ },
+ {
+ "type": "rect",
+ "name": "ticksBottomRight",
+ "from": {"data": "continents"},
+ "encode": {
+ "update": {
+ "x": {"scale": "x", "field": "x1", "offset": -4},
+ "y": {"signal": "height+10"},
+ "width": {"signal": "0.7"},
+ "height": {"signal": "20"},
+ "fill": {"value": "#333740"}
+ }
+ }
+ },
+ {
+ "type": "rect",
+ "name": "ticksJoin",
+ "from": {"data": "continents"},
+ "encode": {
+ "update": {
+ "x": {"scale": "x", "signal": "datum.x0", "offset": 4},
+ "y": {"signal": "height+20"},
+ "width": {
+ "scale": "x",
+ "signal": "(datum.x1-datum.x0)",
+ "offset": -8
+ },
+ "height": {"signal": "0.7"},
+ "fill": {"value": "#333740"}
+ }
+ }
+ },
+ {
+ "type": "text",
+ "name": "axisTop",
+ "from": {"data": "continents"},
+ "encode": {
+ "update": {
+ "x": {"scale": "x", "signal": "(datum.x1-datum.x0)/2 + datum.x0"},
+ "y": {"signal": "-25"},
+ "text": {"field": "ContinentLabel"},
+ "align": {"value": "center"},
+ "baseline": {"value": "top"},
+ "dy": {"signal": "datum.Continent=='Africa & Middle East'?-12:0"},
+ "fill": {"value": "#333740"},
+ "fontWeight": {"value": "normal"},
+ "fontSize": {"value": 14},
+ "font": {"value": "Roboto"}
+ }
+ }
+ },
+ {
+ "type": "text",
+ "name": "axisBottom",
+ "from": {"data": "continents"},
+ "encode": {
+ "update": {
+ "x": {"scale": "x", "signal": "(datum.x1-datum.x0)/2 + datum.x0"},
+ "y": {"signal": "height+40"},
+ "text": {"field": "Label"},
+ "align": {"value": "center"},
+ "baseline": {"value": "middle"},
+ "fill": {"value": "#333740"},
+ "fontWeight": {"value": "normal"},
+ "fontSize": {"value": 14},
+ "font": {"value": "Roboto"}
+ }
+ }
+ },
+ {
+ "type": "group",
+ "data": [{}],
+ "encode": {
+ "update": {
+ "xc": {"signal": "width/2"},
+ "y": {"signal": "-65"},
+ "width": {"signal": "0"},
+ "height": {"signal": "0"},
+ "clip": {"signal": "false"},
+ "opacity": {"value": 1},
+ "stroke": {"signal": "'#652c90'"}
+ },
+ "hover": {"opacity": {"value": 0.5}}
+ },
+ "marks": [
+ {
+ "type": "path",
+ "name": "guns",
+ "clip": false,
+ "encode": {
+ "update": {
+ "x": {"signal": "20"},
+ "y": {"signal": "-10"},
+ "scaleX": {"signal": "1.3"},
+ "scaleY": {"signal": "1.3"},
+ "path": {"signal": "guns"},
+ "angle": {"value": 180},
+ "fill": {"value": "#333F50"}
+ }
+ }
+ },
+ {
+ "type": "rule",
+ "data": [{}],
+ "encode": {
+ "update": {
+ "x": {"signal": "30"},
+ "y": {"signal": "-30"},
+ "x2": {"signal": "110"},
+ "y2": {"signal": "-30"},
+ "stroke": {"value": "#333F50"},
+ "strokeWidth": {"value": 5}
+ }
+ }
+ },
+ {
+ "type": "rule",
+ "data": [{}],
+ "encode": {
+ "update": {
+ "x": {"signal": "-50"},
+ "y": {"signal": "-30"},
+ "x2": {"signal": "-130"},
+ "y2": {"signal": "-30"},
+ "stroke": {"value": "#333F50"},
+ "strokeWidth": {"value": 5}
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "group",
+ "data": [{}],
+ "encode": {
+ "update": {
+ "xc": {"signal": "width/2"},
+ "y": {"signal": "0"},
+ "width": {"signal": "1200"},
+ "height": {"signal": "950"},
+ "clip": {"signal": "false"},
+ "opacity": {"value": 0},
+ "stroke": {"signal": "'#652c90'"}
+ },
+ "hover": {"opacity": {"value": 0.5}}
+ },
+ "marks": [
+ {
+ "type": "path",
+ "name": "guns",
+ "clip": true,
+ "encode": {
+ "update": {
+ "x": {"signal": "1150"},
+ "y": {"signal": "850"},
+ "scaleX": {"signal": "25"},
+ "scaleY": {"signal": "25"},
+ "path": {"signal": "guns"},
+ "angle": {"value": 180},
+ "fill": {"value": "#333F50"}, "opacity":{"value": 0}
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "text",
+ "data": [{}],
+ "encode": {
+ "update": {
+ "text": {
+ "value": [
+ "Source: SIPRI https://www.sipri.org/databases/milex",
+ "Dataviz: David Bacci"
+ ]
+ },
+ "align": {"value": "left"},
+ "lineHeight": {"value": 16},
+ "fill": {"value": "#595959"},
+ "x": {"signal": "0"},
+ "y": {"signal": "height + 100"},
+ "fontSize": {"value": 10}
+ }
+ }
+ }
+ ]
+}
\ No newline at end of file
diff --git a/testdata/deneb/mekko-bar-chart.vg.json.svg b/testdata/deneb/mekko-bar-chart.vg.json.svg
new file mode 100644
index 0000000..68d8692
--- /dev/null
+++ b/testdata/deneb/mekko-bar-chart.vg.json.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/testdata/deneb/pancake-spider-chart.vg.json b/testdata/deneb/pancake-spider-chart.vg.json
new file mode 100644
index 0000000..9d6d768
--- /dev/null
+++ b/testdata/deneb/pancake-spider-chart.vg.json
@@ -0,0 +1,911 @@
+{
+ "$schema": "https://vega.github.io/schema/vega/v5.json",
+ "description": "Dataviz by Dav Bacci",
+ "width": 1050,
+ "background": "#343537",
+ "height": 750,
+ "padding": {
+ "top": 80,
+ "left": 40,
+ "right": 85
+ },
+ "autosize": {
+ "type": "none",
+ "contains": "padding"
+ },
+ "signals": [
+ {
+ "name": "radius",
+ "update": "(width / 6)-92"
+ }
+ ],
+ "data": [
+ {
+ "name": "table",
+ "values": [
+ {
+ "key": "key-0",
+ "value": 19,
+ "category": 0
+ },
+ {
+ "key": "key-1",
+ "value": 22,
+ "category": 0
+ },
+ {
+ "key": "key-2",
+ "value": 14,
+ "category": 0
+ },
+ {
+ "key": "key-3",
+ "value": 38,
+ "category": 0
+ },
+ {
+ "key": "key-4",
+ "value": 23,
+ "category": 0
+ },
+ {
+ "key": "key-5",
+ "value": 5,
+ "category": 0
+ },
+ {
+ "key": "key-6",
+ "value": 27,
+ "category": 0
+ },
+ {
+ "key": "key-0",
+ "value": 13,
+ "category": 1
+ },
+ {
+ "key": "key-1",
+ "value": 12,
+ "category": 1
+ },
+ {
+ "key": "key-2",
+ "value": 42,
+ "category": 1
+ },
+ {
+ "key": "key-3",
+ "value": 13,
+ "category": 1
+ },
+ {
+ "key": "key-4",
+ "value": 6,
+ "category": 1
+ },
+ {
+ "key": "key-5",
+ "value": 15,
+ "category": 1
+ },
+ {
+ "key": "key-6",
+ "value": 8,
+ "category": 1
+ }
+ ]
+ },
+ {
+ "name": "source",
+ "values": [
+ {
+ "Name": "Easy Pancakes",
+ "Link": "https://www.bbcgoodfood.com/recipes/easy-pancakes",
+ "Type": "Sweet",
+ "Prep Time (Mins)": 10,
+ "Cooking Time (Mins)": 20,
+ "Difficulty": "Easy",
+ "kcal": 61,
+ "fat (g)": 2,
+ "saturates (g)": 1,
+ "carbs (g)": 7,
+ "sugars (g)": 1,
+ "fibre (g)": 0,
+ "protein (g)": 3,
+ "salt (g)": 0.1
+ },
+ {
+ "Name": "American Pancakes",
+ "Link": "https://www.bbcgoodfood.com/recipes/american-pancakes",
+ "Type": "Sweet",
+ "Prep Time (Mins)": 25,
+ "Cooking Time (Mins)": 30,
+ "Difficulty": "Easy",
+ "kcal": 356,
+ "fat (g)": 13,
+ "saturates (g)": 6,
+ "carbs (g)": 46,
+ "sugars (g)": 8,
+ "fibre (g)": 2,
+ "protein (g)": 13,
+ "salt (g)": 1.25
+ },
+ {
+ "Name": [
+ "American Blueberry",
+ "Pancakes"
+ ],
+ "Link": "https://www.bbcgoodfood.com/recipes/american-blueberry-pancakes",
+ "Type": "Sweet",
+ "Prep Time (Mins)": 15,
+ "Cooking Time (Mins)": 20,
+ "Difficulty": "Easy",
+ "kcal": 108,
+ "fat (g)": 0,
+ "saturates (g)": 1,
+ "carbs (g)": 18,
+ "sugars (g)": 0,
+ "fibre (g)": 1,
+ "protein (g)": 4,
+ "salt (g)": 0.41
+ },
+ {
+ "Name": [
+ "Chocolate Filled Pancakes",
+ " with Caramelised Banana"
+ ],
+ "Link": "https://www.bbcgoodfood.com/recipes/chocolate-filled-pancakes-caramelised-banana",
+ "Type": "Sweet",
+ "Prep Time (Mins)": 25,
+ "Cooking Time (Mins)": 30,
+ "Difficulty": "More effort",
+ "kcal": 797,
+ "fat (g)": 37,
+ "saturates (g)": 12,
+ "carbs (g)": 94,
+ "sugars (g)": 57,
+ "fibre (g)": 6,
+ "protein (g)": 18,
+ "salt (g)": 14
+ },
+ {
+ "Name": [
+ "Fluffy American Pancakes",
+ "with Cherry-Berry Syrup"
+ ],
+ "Link": "https://www.bbcgoodfood.com/recipes/best-ever-fluffy-american-pancakes-cherry-berry-syrup",
+ "Type": "Sweet",
+ "Prep Time (Mins)": 10,
+ "Cooking Time (Mins)": 30,
+ "Difficulty": "Easy",
+ "kcal": 233,
+ "fat (g)": 11.75,
+ "saturates (g)": 6.25,
+ "carbs (g)": 24,
+ "sugars (g)": 7.25,
+ "fibre (g)": 1.25,
+ "protein (g)": 7,
+ "salt (g)": 0.775
+ },
+ {
+ "Name": "Scotch Pancakes",
+ "Link": "https://www.bbcgoodfood.com/recipes/scotch-pancakes",
+ "Type": "Sweet",
+ "Prep Time (Mins)": 10,
+ "Cooking Time (Mins)": 15,
+ "Difficulty": "Easy",
+ "kcal": 121,
+ "fat (g)": 3,
+ "saturates (g)": 1,
+ "carbs (g)": 19,
+ "sugars (g)": 3,
+ "fibre (g)": 1,
+ "protein (g)": 4,
+ "salt (g)": 0.5
+ },
+ {
+ "Name": "Fluffy Japanese Pancakes",
+ "Link": "https://www.bbcgoodfood.com/recipes/fluffy-japanese-pancakes",
+ "Type": "Sweet",
+ "Prep Time (Mins)": 10,
+ "Cooking Time (Mins)": 90,
+ "Difficulty": "Easy",
+ "kcal": 174,
+ "fat (g)": 4,
+ "saturates (g)": 1,
+ "carbs (g)": 27,
+ "sugars (g)": 8,
+ "fibre (g)": 1,
+ "protein (g)": 6,
+ "salt (g)": 0.4
+ },
+ {
+ "Name": "Easy Banana Pancakes",
+ "Link": "https://www.bbcgoodfood.com/recipes/easy-banana-pancakes",
+ "Type": "Sweet",
+ "Prep Time (Mins)": 5,
+ "Cooking Time (Mins)": 10,
+ "Difficulty": "Easy",
+ "kcal": 161.3333333,
+ "fat (g)": 2.333333333,
+ "saturates (g)": 1,
+ "carbs (g)": 87,
+ "sugars (g)": 19,
+ "fibre (g)": 5,
+ "protein (g)": 15,
+ "salt (g)": 1.21
+ },
+ {
+ "Name": "Eggs Benedict Pancakes",
+ "Link": "https://www.bbcgoodfood.com/recipes/eggs-benedict-pancakes",
+ "Type": "Savoury",
+ "Prep Time (Mins)": 10,
+ "Cooking Time (Mins)": 20,
+ "Difficulty": "Easy",
+ "kcal": 605,
+ "fat (g)": 36,
+ "saturates (g)": 19,
+ "carbs (g)": 46,
+ "sugars (g)": 5,
+ "fibre (g)": 2,
+ "protein (g)": 23,
+ "salt (g)": 2.14
+ },
+ {
+ "Name": "Ham & Cheese Pancakes",
+ "Link": "https://www.bbcgoodfood.com/recipes/smoked-ham-cheese-pancakes",
+ "Type": "Savoury",
+ "Prep Time (Mins)": 10,
+ "Cooking Time (Mins)": 8,
+ "Difficulty": "Easy",
+ "kcal": 327,
+ "fat (g)": 19,
+ "saturates (g)": 10,
+ "carbs (g)": 23,
+ "sugars (g)": 2,
+ "fibre (g)": 1,
+ "protein (g)": 15,
+ "salt (g)": 1.6
+ },
+ {
+ "Name": "Crispy Duck Pancakes",
+ "Link": "https://www.bbcgoodfood.com/recipes/crispy-duck-pancakes",
+ "Type": "Savoury",
+ "Prep Time (Mins)": 10,
+ "Cooking Time (Mins)": 30,
+ "Difficulty": "Easy",
+ "kcal": 402,
+ "fat (g)": 18,
+ "saturates (g)": 5,
+ "carbs (g)": 44,
+ "sugars (g)": 19,
+ "fibre (g)": 3,
+ "protein (g)": 13,
+ "salt (g)": 0.9
+ }
+ ],
+ "transform": [
+ {
+ "type": "joinaggregate",
+ "fields": [
+ "kcal",
+ "fat (g)",
+ "saturates (g)",
+ "carbs (g)",
+ "sugars (g)",
+ "fibre (g)",
+ "protein (g)",
+ "salt (g)"
+ ],
+ "ops": [
+ "max",
+ "max",
+ "max",
+ "max",
+ "max",
+ "max",
+ "max",
+ "max"
+ ],
+ "as": [
+ "max kcal",
+ "max fat (g)",
+ "max saturates (g)",
+ "max carbs (g)",
+ "max sugars (g)",
+ "max fibre (g)",
+ "max protein (g)",
+ "max salt (g)"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "table3",
+ "source": "source",
+ "transform": [
+ {
+ "type": "window",
+ "sort": {
+ "field": "Name",
+ "order": "ascending"
+ },
+ "ops": ["row_number"],
+ "as": ["index"]
+ },
+ {
+ "type": "formula",
+ "as": "Time",
+ "expr": "datum['Prep Time (Mins)']+datum['Cooking Time (Mins)']"
+ },
+ {
+ "type": "joinaggregate",
+ "fields": [
+ "kcal",
+ "fat (g)",
+ "saturates (g)",
+ "carbs (g)",
+ "sugars (g)",
+ "fibre (g)",
+ "protein (g)",
+ "salt (g)",
+ "Time"
+ ],
+ "ops": [
+ "mean",
+ "mean",
+ "mean",
+ "mean",
+ "mean",
+ "mean",
+ "mean",
+ "mean",
+ "mean"
+ ],
+ "as": [
+ "m kcal",
+ "m fat (g)",
+ "m saturates (g)",
+ "m carbs (g)",
+ "m sugars (g)",
+ "m fibre (g)",
+ "m protein (g)",
+ "m salt (g)",
+ "m Time"
+ ]
+ },
+ {
+ "type": "fold",
+ "fields": [
+ "kcal",
+ "fat (g)",
+ "saturates (g)",
+ "carbs (g)",
+ "sugars (g)",
+ "fibre (g)",
+ "protein (g)",
+ "salt (g)",
+ "m kcal",
+ "m fat (g)",
+ "m saturates (g)",
+ "m carbs (g)",
+ "m sugars (g)",
+ "m fibre (g)",
+ "m protein (g)",
+ "m salt (g)"
+ ]
+ },
+ {
+ "type": "project",
+ "fields": [
+ "Name",
+ "Link",
+ "Type",
+ "Difficulty",
+ "key",
+ "value",
+ "Time",
+ "index",
+ "m Time"
+ ]
+ },
+ {
+ "type": "formula",
+ "as": "value",
+ "expr": "datum.key=='salt (g)'? round(datum.value *10)/10: round(datum.value )"
+ },
+ {
+ "type": "formula",
+ "as": "category",
+ "expr": "indexof(datum.key, 'm ')==-1?'data':'average'"
+ },
+ {
+ "type": "formula",
+ "as": "key",
+ "expr": "replace(datum.key, 'm ','')"
+ }
+ ]
+ },
+ {
+ "name": "table4",
+ "source": "table3",
+ "transform": [
+ {
+ "type": "aggregate",
+ "groupby": ["key"]
+ },
+ {
+ "type": "lookup",
+ "from": "table3",
+ "key": "key",
+ "fields": ["key"],
+ "as": ["value"],
+ "values": ["value"]
+ },
+ {
+ "type": "formula",
+ "as": "index",
+ "expr": "12"
+ },
+ {
+ "type": "formula",
+ "as": "Name",
+ "expr": "'Average'"
+ },
+ {
+ "type": "formula",
+ "as": "category",
+ "expr": "'data'"
+ }
+ ]
+ },
+ {
+ "name": "table5",
+ "source": ["table3", "table4"]
+ },
+ {
+ "name": "keys",
+ "source": "table5",
+ "transform": [
+ {
+ "type": "aggregate",
+ "groupby": ["key"]
+ }
+ ]
+ }
+ ],
+ "scales": [
+ {
+ "name": "angular",
+ "type": "point",
+ "range": {"signal": "[-PI, PI]"},
+ "padding": 0.5,
+ "domain": {
+ "data": "keys",
+ "field": "key"
+ }
+ },
+ {
+ "name": "kcal",
+ "type": "linear",
+ "range": {
+ "signal": "[0, radius]"
+ },
+ "zero": true,
+ "nice": true,
+ "domain": {
+ "data": "source",
+ "field": "kcal"
+ },
+ "domainMin": 0,
+ "domainMax": {
+ "signal": "data('source')[0]['max kcal']*1.3"
+ }
+ },
+ {
+ "name": "fat (g)",
+ "type": "linear",
+ "range": {
+ "signal": "[0, radius]"
+ },
+ "zero": true,
+ "nice": true,
+ "domain": {
+ "data": "source",
+ "field": "fat (g)"
+ },
+ "domainMin": 0,
+ "domainMax": {
+ "signal": "data('source')[0]['max fat (g)']*1.1"
+ }
+ },
+ {
+ "name": "saturates (g)",
+ "type": "linear",
+ "range": {
+ "signal": "[0, radius]"
+ },
+ "zero": true,
+ "nice": true,
+ "domain": {
+ "data": "source",
+ "field": "saturates (g)"
+ },
+ "domainMin": 0,
+ "domainMax": {
+ "signal": "data('source')[0]['max saturates (g)']*1.2"
+ }
+ },
+ {
+ "name": "carbs (g)",
+ "type": "linear",
+ "range": {
+ "signal": "[0, radius]"
+ },
+ "zero": true,
+ "nice": true,
+ "domain": {
+ "data": "source",
+ "field": "carbs (g)"
+ },
+ "domainMin": 0,
+ "domainMax": {
+ "signal": "data('source')[0]['max carbs (g)']*1.2"
+ }
+ },
+ {
+ "name": "sugars (g)",
+ "type": "linear",
+ "range": {
+ "signal": "[0, radius]"
+ },
+ "zero": true,
+ "nice": true,
+ "domain": {
+ "data": "source",
+ "field": "sugars (g)"
+ },
+ "domainMin": 0,
+ "domainMax": {
+ "signal": "data('source')[0]['max sugars (g)']*1.2"
+ }
+ },
+ {
+ "name": "fibre (g)",
+ "type": "linear",
+ "range": {
+ "signal": "[0, radius]"
+ },
+ "zero": true,
+ "nice": true,
+ "domain": {
+ "data": "source",
+ "field": "fibre (g)"
+ },
+ "domainMin": 0,
+ "domainMax": {
+ "signal": "data('source')[0]['max fibre (g)']*1.1"
+ }
+ },
+ {
+ "name": "protein (g)",
+ "type": "linear",
+ "range": {
+ "signal": "[0, radius]"
+ },
+ "zero": true,
+ "nice": true,
+ "domain": {
+ "data": "source",
+ "field": "protein (g)"
+ },
+ "domainMin": 0,
+ "domainMax": {
+ "signal": "data('source')[0]['max protein (g)']*1.2"
+ }
+ },
+ {
+ "name": "salt (g)",
+ "type": "linear",
+ "range": {
+ "signal": "[0, radius]"
+ },
+ "zero": true,
+ "nice": true,
+ "domain": {
+ "data": "source",
+ "field": "salt (g)"
+ },
+ "domainMin": 0,
+ "domainMax": {
+ "signal": "data('source')[0]['max salt (g)']*1.2"
+ }
+ },
+ {
+ "name": "color",
+ "type": "ordinal",
+ "domain": {
+ "data": "table5",
+ "field": "category"
+ },
+ "range": ["#ff2d1d", "grey"]
+ },
+ {
+ "name": "color2",
+ "type": "ordinal",
+ "domain": {
+ "data": "table5",
+ "field": "Name"
+ },
+ "range": ["#ffb025"]
+ }
+ ],
+ "encode": {
+ "enter": {
+ "x": {"signal": "radius"},
+ "y": {"signal": "radius"}
+ }
+ },
+ "layout": {
+ "columns": 4,
+ "padding": {
+ "row": 50,
+ "column": 30
+ },
+ "align": "all"
+ },
+ "marks": [
+ {
+ "type": "group",
+ "name": "categories",
+ "zindex": 1,
+ "from": {
+ "facet": {
+ "data": "table5",
+ "name": "facet",
+ "groupby": ["index", "Name"]
+ }
+ },
+ "sort": {
+ "field": "datum.index",
+ "order": "ascending"
+ },
+ "title": {
+ "text": {
+ "signal": "parent.Name"
+ },
+ "color": "#d0d0d2",
+ "frame": "group",
+ "fontSize": 12,
+ "fontWeight": "600",
+ "baseline": "line-bottom",
+ "dy": -5,
+ "orient": "top",
+ "lineHeight": 20
+ },
+ "marks": [
+ {
+ "type": "group",
+ "name": "categories",
+ "zindex": 1,
+ "from": {
+ "facet": {
+ "data": "facet",
+ "name": "facet2",
+ "groupby": ["category"]
+ }
+ },
+ "marks": [
+ {
+ "type": "line",
+ "name": "category-line",
+ "from": {
+ "data": "facet2"
+ },
+ "encode": {
+ "update": {
+ "interpolate": {
+ "value": "linear-closed"
+ },
+ "x": {
+ "signal": "scale(datum.key, datum.value) * cos(scale('angular', datum.key))"
+ },
+ "y": {
+ "signal": "scale(datum.key, datum.value) * sin(scale('angular', datum.key))"
+ },
+ "stroke": [
+ {
+ "test": "datum.category=='data'",
+ "scale": "color2",
+ "field": "Name"
+ },
+ {"value": "grey"}
+ ],
+ "strokeWidth": {
+ "signal": "datum.category=='data'?1:0"
+ },
+ "strokeDash": {
+ "value": [0]
+ },
+ "fill": [
+ {
+ "test": "datum.category=='data'",
+ "scale": "color2",
+ "field": "Name"
+ },
+ {"value": "grey"}
+ ],
+ "fillOpacity": {
+ "signal": "datum.category=='data'?1:0.3"
+ }
+ }
+ }
+ },
+ {
+ "type": "text",
+ "name": "value-text",
+ "from": {
+ "data": "facet2"
+ },
+ "encode": {
+ "enter": {
+ "x": {
+ "signal": "(scale(datum.key, datum.value) +5) * cos(scale('angular', datum.key))"
+ },
+ "y": {
+ "signal": "(scale(datum.key, datum.value)+5) * sin(scale('angular', datum.key))"
+ },
+ "text": {
+ "signal": "datum.value==0?'':datum.category=='data'?datum.value:'' "
+ },
+ "align": [
+ {
+ "test": "abs(scale('angular', datum.key)) > PI / 2",
+ "value": "right"
+ },
+ {"value": "left"}
+ ],
+ "baseline": [
+ {
+ "test": "scale('angular', datum.key) > 0",
+ "value": "top"
+ },
+ {
+ "test": "scale('angular', datum.key) == 0",
+ "value": "middle"
+ },
+ {"value": "bottom"}
+ ],
+ "fill": {
+ "scale": "color2",
+ "field": "Name"
+ },
+ "opacity": {
+ "value": 0.6
+ },
+ "fontSize": {
+ "value": 9
+ }
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "rule",
+ "name": "radial-grid",
+ "from": {"data": "keys"},
+ "zindex": 0,
+ "encode": {
+ "enter": {
+ "x": {"value": 0},
+ "y": {"value": 0},
+ "x2": {
+ "signal": "radius * cos(scale('angular', datum.key))"
+ },
+ "y2": {
+ "signal": "radius * sin(scale('angular', datum.key))"
+ },
+ "stroke": {
+ "value": "lightgray"
+ },
+ "strokeWidth": {
+ "value": 0.5
+ },
+ "opacity": {"value": 0.2}
+ }
+ }
+ },
+ {
+ "type": "text",
+ "name": "key-label",
+ "from": {"data": "keys"},
+ "zindex": 1,
+ "encode": {
+ "enter": {
+ "x": {
+ "signal": "(radius + 5) * cos(scale('angular', datum.key))"
+ },
+ "y": {
+ "signal": "(radius + 5) * sin(scale('angular', datum.key))"
+ },
+ "text": {"field": "key"},
+ "align": [
+ {
+ "test": "abs(scale('angular', datum.key)) > PI / 2",
+ "value": "right"
+ },
+ {"value": "left"}
+ ],
+ "baseline": [
+ {
+ "test": "scale('angular', datum.key) > 0",
+ "value": "top"
+ },
+ {
+ "test": "scale('angular', datum.key) == 0",
+ "value": "middle"
+ },
+ {"value": "bottom"}
+ ],
+ "fill": {
+ "value": "white"
+ },
+ "opacity": {"value": 0.5},
+
+ "fontSize":{"value":12}
+ }
+ }
+ },
+ {
+ "type": "line",
+ "name": "outer-line",
+ "from": {
+ "data": "radial-grid"
+ },
+ "encode": {
+ "enter": {
+ "interpolate": {
+ "value": "linear-closed"
+ },
+ "x": {"field": "x2"},
+ "y": {"field": "y2"},
+ "stroke": {
+ "value": "lightgray"
+ },
+ "strokeWidth": {
+ "value": 1
+ },
+ "opacity": {"value": 0}
+ }
+ }
+ },
+ {
+ "type": "rule",
+ "name": "seperator",
+ "from": {"data": "facet"},
+ "encode": {
+ "enter": {
+ "x": {"signal": "140"},
+ "y": {"signal": "-60"},
+ "y2": {"signal": "60"},
+ "stroke": {
+ "signal": "'lightgray'"
+ },
+ "strokeOpacity": {
+ "signal": "0.3"
+ },
+ "strokeWidth": [
+ {
+ "test": "datum.index ==4||datum.index ==8||datum.index ==12",
+ "value": 0
+ },
+ {"value": 0.2}
+ ]
+ }
+ }
+ }
+ ]
+ }
+ ]
+}
diff --git a/testdata/deneb/pancake-spider-chart.vg.json.svg b/testdata/deneb/pancake-spider-chart.vg.json.svg
new file mode 100644
index 0000000..10e7600
--- /dev/null
+++ b/testdata/deneb/pancake-spider-chart.vg.json.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/testdata/deneb/parliament-chart.vg.json b/testdata/deneb/parliament-chart.vg.json
new file mode 100644
index 0000000..4a9e3b1
--- /dev/null
+++ b/testdata/deneb/parliament-chart.vg.json
@@ -0,0 +1,3641 @@
+{
+ "$schema": "https://vega.github.io/schema/vega/v5.json",
+ "width": 600,
+ "height": 300,
+ "signals": [
+ {"name": "dataLength", "update": "length(data('dataset'))"},
+ {"name": "row0Radius", "value": 280},
+ {"name": "row1Radius", "value": 260},
+ {"name": "row2Radius", "value": 240},
+ {"name": "row3Radius", "value": 220},
+ {"name": "row4Radius", "value": 200},
+ {"name": "row5Radius", "value": 180},
+ {"name": "row6Radius", "value": 160},
+ {"name": "row0Circ", "update": "PI*row0Radius"},
+ {"name": "row1Circ", "update": "PI*row1Radius"},
+ {"name": "row2Circ", "update": "PI*row2Radius"},
+ {"name": "row3Circ", "update": "PI*row3Radius"},
+ {"name": "row4Circ", "update": "PI*row4Radius"},
+ {"name": "row5Circ", "update": "PI*row5Radius"},
+ {"name": "row6Circ", "update": "PI*row6Radius"},
+ {
+ "name": "totalLength",
+ "update": "row0Circ+row1Circ+row2Circ+row3Circ+row4Circ+row5Circ+row6Circ "
+ }
+ ],
+ "data": [
+ {
+ "name": "dataset",
+ "values": [
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 46.1,
+ "Beak Depth (mm)": 13.2,
+ "Flipper Length (mm)": 211,
+ "Body Mass (g)": 4500,
+ "Sex": "FEMALE",
+ "Index": 220
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 50,
+ "Beak Depth (mm)": 16.3,
+ "Flipper Length (mm)": 230,
+ "Body Mass (g)": 5700,
+ "Sex": "MALE",
+ "Index": 221
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 48.7,
+ "Beak Depth (mm)": 14.1,
+ "Flipper Length (mm)": 210,
+ "Body Mass (g)": 4450,
+ "Sex": "FEMALE",
+ "Index": 222
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 50,
+ "Beak Depth (mm)": 15.2,
+ "Flipper Length (mm)": 218,
+ "Body Mass (g)": 5700,
+ "Sex": "MALE",
+ "Index": 223
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 47.6,
+ "Beak Depth (mm)": 14.5,
+ "Flipper Length (mm)": 215,
+ "Body Mass (g)": 5400,
+ "Sex": "MALE",
+ "Index": 224
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 46.5,
+ "Beak Depth (mm)": 13.5,
+ "Flipper Length (mm)": 210,
+ "Body Mass (g)": 4550,
+ "Sex": "FEMALE",
+ "Index": 225
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 45.4,
+ "Beak Depth (mm)": 14.6,
+ "Flipper Length (mm)": 211,
+ "Body Mass (g)": 4800,
+ "Sex": "FEMALE",
+ "Index": 226
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 46.7,
+ "Beak Depth (mm)": 15.3,
+ "Flipper Length (mm)": 219,
+ "Body Mass (g)": 5200,
+ "Sex": "MALE",
+ "Index": 227
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 43.3,
+ "Beak Depth (mm)": 13.4,
+ "Flipper Length (mm)": 209,
+ "Body Mass (g)": 4400,
+ "Sex": "FEMALE",
+ "Index": 228
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 46.8,
+ "Beak Depth (mm)": 15.4,
+ "Flipper Length (mm)": 215,
+ "Body Mass (g)": 5150,
+ "Sex": "MALE",
+ "Index": 229
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 40.9,
+ "Beak Depth (mm)": 13.7,
+ "Flipper Length (mm)": 214,
+ "Body Mass (g)": 4650,
+ "Sex": "FEMALE",
+ "Index": 230
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 49,
+ "Beak Depth (mm)": 16.1,
+ "Flipper Length (mm)": 216,
+ "Body Mass (g)": 5550,
+ "Sex": "MALE",
+ "Index": 231
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 45.5,
+ "Beak Depth (mm)": 13.7,
+ "Flipper Length (mm)": 214,
+ "Body Mass (g)": 4650,
+ "Sex": "FEMALE",
+ "Index": 232
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 48.4,
+ "Beak Depth (mm)": 14.6,
+ "Flipper Length (mm)": 213,
+ "Body Mass (g)": 5850,
+ "Sex": "MALE",
+ "Index": 233
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 45.8,
+ "Beak Depth (mm)": 14.6,
+ "Flipper Length (mm)": 210,
+ "Body Mass (g)": 4200,
+ "Sex": "FEMALE",
+ "Index": 234
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 49.3,
+ "Beak Depth (mm)": 15.7,
+ "Flipper Length (mm)": 217,
+ "Body Mass (g)": 5850,
+ "Sex": "MALE",
+ "Index": 235
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 42,
+ "Beak Depth (mm)": 13.5,
+ "Flipper Length (mm)": 210,
+ "Body Mass (g)": 4150,
+ "Sex": "FEMALE",
+ "Index": 236
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 49.2,
+ "Beak Depth (mm)": 15.2,
+ "Flipper Length (mm)": 221,
+ "Body Mass (g)": 6300,
+ "Sex": "MALE",
+ "Index": 237
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 46.2,
+ "Beak Depth (mm)": 14.5,
+ "Flipper Length (mm)": 209,
+ "Body Mass (g)": 4800,
+ "Sex": "FEMALE",
+ "Index": 238
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 48.7,
+ "Beak Depth (mm)": 15.1,
+ "Flipper Length (mm)": 222,
+ "Body Mass (g)": 5350,
+ "Sex": "MALE",
+ "Index": 239
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 50.2,
+ "Beak Depth (mm)": 14.3,
+ "Flipper Length (mm)": 218,
+ "Body Mass (g)": 5700,
+ "Sex": "MALE",
+ "Index": 240
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 45.1,
+ "Beak Depth (mm)": 14.5,
+ "Flipper Length (mm)": 215,
+ "Body Mass (g)": 5000,
+ "Sex": "FEMALE",
+ "Index": 241
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 46.5,
+ "Beak Depth (mm)": 14.5,
+ "Flipper Length (mm)": 213,
+ "Body Mass (g)": 4400,
+ "Sex": "FEMALE",
+ "Index": 242
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 46.3,
+ "Beak Depth (mm)": 15.8,
+ "Flipper Length (mm)": 215,
+ "Body Mass (g)": 5050,
+ "Sex": "MALE",
+ "Index": 243
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 42.9,
+ "Beak Depth (mm)": 13.1,
+ "Flipper Length (mm)": 215,
+ "Body Mass (g)": 5000,
+ "Sex": "FEMALE",
+ "Index": 244
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 46.1,
+ "Beak Depth (mm)": 15.1,
+ "Flipper Length (mm)": 215,
+ "Body Mass (g)": 5100,
+ "Sex": "MALE",
+ "Index": 245
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 44.5,
+ "Beak Depth (mm)": 14.3,
+ "Flipper Length (mm)": 216,
+ "Body Mass (g)": 4100,
+ "Sex": "",
+ "Index": 246
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 47.8,
+ "Beak Depth (mm)": 15,
+ "Flipper Length (mm)": 215,
+ "Body Mass (g)": 5650,
+ "Sex": "MALE",
+ "Index": 247
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 48.2,
+ "Beak Depth (mm)": 14.3,
+ "Flipper Length (mm)": 210,
+ "Body Mass (g)": 4600,
+ "Sex": "FEMALE",
+ "Index": 248
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 50,
+ "Beak Depth (mm)": 15.3,
+ "Flipper Length (mm)": 220,
+ "Body Mass (g)": 5550,
+ "Sex": "MALE",
+ "Index": 249
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 47.3,
+ "Beak Depth (mm)": 15.3,
+ "Flipper Length (mm)": 222,
+ "Body Mass (g)": 5250,
+ "Sex": "MALE",
+ "Index": 250
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 42.8,
+ "Beak Depth (mm)": 14.2,
+ "Flipper Length (mm)": 209,
+ "Body Mass (g)": 4700,
+ "Sex": "FEMALE",
+ "Index": 251
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 45.1,
+ "Beak Depth (mm)": 14.5,
+ "Flipper Length (mm)": 207,
+ "Body Mass (g)": 5050,
+ "Sex": "FEMALE",
+ "Index": 252
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 59.6,
+ "Beak Depth (mm)": 17,
+ "Flipper Length (mm)": 230,
+ "Body Mass (g)": 6050,
+ "Sex": "MALE",
+ "Index": 253
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 49.1,
+ "Beak Depth (mm)": 14.8,
+ "Flipper Length (mm)": 220,
+ "Body Mass (g)": 5150,
+ "Sex": "FEMALE",
+ "Index": 254
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 48.4,
+ "Beak Depth (mm)": 16.3,
+ "Flipper Length (mm)": 220,
+ "Body Mass (g)": 5400,
+ "Sex": "MALE",
+ "Index": 255
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 42.6,
+ "Beak Depth (mm)": 13.7,
+ "Flipper Length (mm)": 213,
+ "Body Mass (g)": 4950,
+ "Sex": "FEMALE",
+ "Index": 256
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 44.4,
+ "Beak Depth (mm)": 17.3,
+ "Flipper Length (mm)": 219,
+ "Body Mass (g)": 5250,
+ "Sex": "MALE",
+ "Index": 257
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 44,
+ "Beak Depth (mm)": 13.6,
+ "Flipper Length (mm)": 208,
+ "Body Mass (g)": 4350,
+ "Sex": "FEMALE",
+ "Index": 258
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 48.7,
+ "Beak Depth (mm)": 15.7,
+ "Flipper Length (mm)": 208,
+ "Body Mass (g)": 5350,
+ "Sex": "MALE",
+ "Index": 259
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 42.7,
+ "Beak Depth (mm)": 13.7,
+ "Flipper Length (mm)": 208,
+ "Body Mass (g)": 3950,
+ "Sex": "FEMALE",
+ "Index": 260
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 49.6,
+ "Beak Depth (mm)": 16,
+ "Flipper Length (mm)": 225,
+ "Body Mass (g)": 5700,
+ "Sex": "MALE",
+ "Index": 261
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 45.3,
+ "Beak Depth (mm)": 13.7,
+ "Flipper Length (mm)": 210,
+ "Body Mass (g)": 4300,
+ "Sex": "FEMALE",
+ "Index": 262
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 49.6,
+ "Beak Depth (mm)": 15,
+ "Flipper Length (mm)": 216,
+ "Body Mass (g)": 4750,
+ "Sex": "MALE",
+ "Index": 263
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 50.5,
+ "Beak Depth (mm)": 15.9,
+ "Flipper Length (mm)": 222,
+ "Body Mass (g)": 5550,
+ "Sex": "MALE",
+ "Index": 264
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 43.6,
+ "Beak Depth (mm)": 13.9,
+ "Flipper Length (mm)": 217,
+ "Body Mass (g)": 4900,
+ "Sex": "FEMALE",
+ "Index": 265
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 45.5,
+ "Beak Depth (mm)": 13.9,
+ "Flipper Length (mm)": 210,
+ "Body Mass (g)": 4200,
+ "Sex": "FEMALE",
+ "Index": 266
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 50.5,
+ "Beak Depth (mm)": 15.9,
+ "Flipper Length (mm)": 225,
+ "Body Mass (g)": 5400,
+ "Sex": "MALE",
+ "Index": 267
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 44.9,
+ "Beak Depth (mm)": 13.3,
+ "Flipper Length (mm)": 213,
+ "Body Mass (g)": 5100,
+ "Sex": "FEMALE",
+ "Index": 268
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 45.2,
+ "Beak Depth (mm)": 15.8,
+ "Flipper Length (mm)": 215,
+ "Body Mass (g)": 5300,
+ "Sex": "MALE",
+ "Index": 269
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 46.6,
+ "Beak Depth (mm)": 14.2,
+ "Flipper Length (mm)": 210,
+ "Body Mass (g)": 4850,
+ "Sex": "FEMALE",
+ "Index": 270
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 48.5,
+ "Beak Depth (mm)": 14.1,
+ "Flipper Length (mm)": 220,
+ "Body Mass (g)": 5300,
+ "Sex": "MALE",
+ "Index": 271
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 45.1,
+ "Beak Depth (mm)": 14.4,
+ "Flipper Length (mm)": 210,
+ "Body Mass (g)": 4400,
+ "Sex": "FEMALE",
+ "Index": 272
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 50.1,
+ "Beak Depth (mm)": 15,
+ "Flipper Length (mm)": 225,
+ "Body Mass (g)": 5000,
+ "Sex": "MALE",
+ "Index": 273
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 46.5,
+ "Beak Depth (mm)": 14.4,
+ "Flipper Length (mm)": 217,
+ "Body Mass (g)": 4900,
+ "Sex": "FEMALE",
+ "Index": 274
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 45,
+ "Beak Depth (mm)": 15.4,
+ "Flipper Length (mm)": 220,
+ "Body Mass (g)": 5050,
+ "Sex": "MALE",
+ "Index": 275
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 43.8,
+ "Beak Depth (mm)": 13.9,
+ "Flipper Length (mm)": 208,
+ "Body Mass (g)": 4300,
+ "Sex": "FEMALE",
+ "Index": 276
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 45.5,
+ "Beak Depth (mm)": 15,
+ "Flipper Length (mm)": 220,
+ "Body Mass (g)": 5000,
+ "Sex": "MALE",
+ "Index": 277
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 43.2,
+ "Beak Depth (mm)": 14.5,
+ "Flipper Length (mm)": 208,
+ "Body Mass (g)": 4450,
+ "Sex": "FEMALE",
+ "Index": 278
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 50.4,
+ "Beak Depth (mm)": 15.3,
+ "Flipper Length (mm)": 224,
+ "Body Mass (g)": 5550,
+ "Sex": "MALE",
+ "Index": 279
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 45.3,
+ "Beak Depth (mm)": 13.8,
+ "Flipper Length (mm)": 208,
+ "Body Mass (g)": 4200,
+ "Sex": "FEMALE",
+ "Index": 280
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 46.2,
+ "Beak Depth (mm)": 14.9,
+ "Flipper Length (mm)": 221,
+ "Body Mass (g)": 5300,
+ "Sex": "MALE",
+ "Index": 281
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 45.7,
+ "Beak Depth (mm)": 13.9,
+ "Flipper Length (mm)": 214,
+ "Body Mass (g)": 4400,
+ "Sex": "FEMALE",
+ "Index": 282
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 54.3,
+ "Beak Depth (mm)": 15.7,
+ "Flipper Length (mm)": 231,
+ "Body Mass (g)": 5650,
+ "Sex": "MALE",
+ "Index": 283
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 45.8,
+ "Beak Depth (mm)": 14.2,
+ "Flipper Length (mm)": 219,
+ "Body Mass (g)": 4700,
+ "Sex": "FEMALE",
+ "Index": 284
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 49.8,
+ "Beak Depth (mm)": 16.8,
+ "Flipper Length (mm)": 230,
+ "Body Mass (g)": 5700,
+ "Sex": "MALE",
+ "Index": 285
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 46.2,
+ "Beak Depth (mm)": 14.4,
+ "Flipper Length (mm)": 214,
+ "Body Mass (g)": 4650,
+ "Sex": "",
+ "Index": 286
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 49.5,
+ "Beak Depth (mm)": 16.2,
+ "Flipper Length (mm)": 229,
+ "Body Mass (g)": 5800,
+ "Sex": "MALE",
+ "Index": 287
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 43.5,
+ "Beak Depth (mm)": 14.2,
+ "Flipper Length (mm)": 220,
+ "Body Mass (g)": 4700,
+ "Sex": "FEMALE",
+ "Index": 288
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 50.7,
+ "Beak Depth (mm)": 15,
+ "Flipper Length (mm)": 223,
+ "Body Mass (g)": 5550,
+ "Sex": "MALE",
+ "Index": 289
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 47.7,
+ "Beak Depth (mm)": 15,
+ "Flipper Length (mm)": 216,
+ "Body Mass (g)": 4750,
+ "Sex": "FEMALE",
+ "Index": 290
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 46.4,
+ "Beak Depth (mm)": 15.6,
+ "Flipper Length (mm)": 221,
+ "Body Mass (g)": 5000,
+ "Sex": "MALE",
+ "Index": 291
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 48.2,
+ "Beak Depth (mm)": 15.6,
+ "Flipper Length (mm)": 221,
+ "Body Mass (g)": 5100,
+ "Sex": "MALE",
+ "Index": 292
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 46.5,
+ "Beak Depth (mm)": 14.8,
+ "Flipper Length (mm)": 217,
+ "Body Mass (g)": 5200,
+ "Sex": "FEMALE",
+ "Index": 293
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 46.4,
+ "Beak Depth (mm)": 15,
+ "Flipper Length (mm)": 216,
+ "Body Mass (g)": 4700,
+ "Sex": "FEMALE",
+ "Index": 294
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 48.6,
+ "Beak Depth (mm)": 16,
+ "Flipper Length (mm)": 230,
+ "Body Mass (g)": 5800,
+ "Sex": "MALE",
+ "Index": 295
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 47.5,
+ "Beak Depth (mm)": 14.2,
+ "Flipper Length (mm)": 209,
+ "Body Mass (g)": 4600,
+ "Sex": "FEMALE",
+ "Index": 296
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 51.1,
+ "Beak Depth (mm)": 16.3,
+ "Flipper Length (mm)": 220,
+ "Body Mass (g)": 6000,
+ "Sex": "MALE",
+ "Index": 297
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 45.2,
+ "Beak Depth (mm)": 13.8,
+ "Flipper Length (mm)": 215,
+ "Body Mass (g)": 4750,
+ "Sex": "FEMALE",
+ "Index": 298
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 45.2,
+ "Beak Depth (mm)": 16.4,
+ "Flipper Length (mm)": 223,
+ "Body Mass (g)": 5950,
+ "Sex": "MALE",
+ "Index": 299
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 49.1,
+ "Beak Depth (mm)": 14.5,
+ "Flipper Length (mm)": 212,
+ "Body Mass (g)": 4625,
+ "Sex": "FEMALE",
+ "Index": 300
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 52.5,
+ "Beak Depth (mm)": 15.6,
+ "Flipper Length (mm)": 221,
+ "Body Mass (g)": 5450,
+ "Sex": "MALE",
+ "Index": 301
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 47.4,
+ "Beak Depth (mm)": 14.6,
+ "Flipper Length (mm)": 212,
+ "Body Mass (g)": 4725,
+ "Sex": "FEMALE",
+ "Index": 302
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 50,
+ "Beak Depth (mm)": 15.9,
+ "Flipper Length (mm)": 224,
+ "Body Mass (g)": 5350,
+ "Sex": "MALE",
+ "Index": 303
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 44.9,
+ "Beak Depth (mm)": 13.8,
+ "Flipper Length (mm)": 212,
+ "Body Mass (g)": 4750,
+ "Sex": "FEMALE",
+ "Index": 304
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 50.8,
+ "Beak Depth (mm)": 17.3,
+ "Flipper Length (mm)": 228,
+ "Body Mass (g)": 5600,
+ "Sex": "MALE",
+ "Index": 305
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 43.4,
+ "Beak Depth (mm)": 14.4,
+ "Flipper Length (mm)": 218,
+ "Body Mass (g)": 4600,
+ "Sex": "FEMALE",
+ "Index": 306
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 51.3,
+ "Beak Depth (mm)": 14.2,
+ "Flipper Length (mm)": 218,
+ "Body Mass (g)": 5300,
+ "Sex": "MALE",
+ "Index": 307
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 47.5,
+ "Beak Depth (mm)": 14,
+ "Flipper Length (mm)": 212,
+ "Body Mass (g)": 4875,
+ "Sex": "FEMALE",
+ "Index": 308
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 52.1,
+ "Beak Depth (mm)": 17,
+ "Flipper Length (mm)": 230,
+ "Body Mass (g)": 5550,
+ "Sex": "MALE",
+ "Index": 309
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 47.5,
+ "Beak Depth (mm)": 15,
+ "Flipper Length (mm)": 218,
+ "Body Mass (g)": 4950,
+ "Sex": "FEMALE",
+ "Index": 310
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 52.2,
+ "Beak Depth (mm)": 17.1,
+ "Flipper Length (mm)": 228,
+ "Body Mass (g)": 5400,
+ "Sex": "MALE",
+ "Index": 311
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 45.5,
+ "Beak Depth (mm)": 14.5,
+ "Flipper Length (mm)": 212,
+ "Body Mass (g)": 4750,
+ "Sex": "FEMALE",
+ "Index": 312
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 49.5,
+ "Beak Depth (mm)": 16.1,
+ "Flipper Length (mm)": 224,
+ "Body Mass (g)": 5650,
+ "Sex": "MALE",
+ "Index": 313
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 44.5,
+ "Beak Depth (mm)": 14.7,
+ "Flipper Length (mm)": 214,
+ "Body Mass (g)": 4850,
+ "Sex": "FEMALE",
+ "Index": 314
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 50.8,
+ "Beak Depth (mm)": 15.7,
+ "Flipper Length (mm)": 226,
+ "Body Mass (g)": 5200,
+ "Sex": "MALE",
+ "Index": 315
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 49.4,
+ "Beak Depth (mm)": 15.8,
+ "Flipper Length (mm)": 216,
+ "Body Mass (g)": 4925,
+ "Sex": "MALE",
+ "Index": 316
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 46.9,
+ "Beak Depth (mm)": 14.6,
+ "Flipper Length (mm)": 222,
+ "Body Mass (g)": 4875,
+ "Sex": "FEMALE",
+ "Index": 317
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 48.4,
+ "Beak Depth (mm)": 14.4,
+ "Flipper Length (mm)": 203,
+ "Body Mass (g)": 4625,
+ "Sex": "FEMALE",
+ "Index": 318
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 51.1,
+ "Beak Depth (mm)": 16.5,
+ "Flipper Length (mm)": 225,
+ "Body Mass (g)": 5250,
+ "Sex": "MALE",
+ "Index": 319
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 48.5,
+ "Beak Depth (mm)": 15,
+ "Flipper Length (mm)": 219,
+ "Body Mass (g)": 4850,
+ "Sex": "FEMALE",
+ "Index": 320
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 55.9,
+ "Beak Depth (mm)": 17,
+ "Flipper Length (mm)": 228,
+ "Body Mass (g)": 5600,
+ "Sex": "MALE",
+ "Index": 321
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 47.2,
+ "Beak Depth (mm)": 15.5,
+ "Flipper Length (mm)": 215,
+ "Body Mass (g)": 4975,
+ "Sex": "FEMALE",
+ "Index": 322
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 49.1,
+ "Beak Depth (mm)": 15,
+ "Flipper Length (mm)": 228,
+ "Body Mass (g)": 5500,
+ "Sex": "MALE",
+ "Index": 323
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 47.3,
+ "Beak Depth (mm)": 13.8,
+ "Flipper Length (mm)": 216,
+ "Body Mass (g)": 4725,
+ "Sex": "",
+ "Index": 324
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 46.8,
+ "Beak Depth (mm)": 16.1,
+ "Flipper Length (mm)": 215,
+ "Body Mass (g)": 5500,
+ "Sex": "MALE",
+ "Index": 325
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 41.7,
+ "Beak Depth (mm)": 14.7,
+ "Flipper Length (mm)": 210,
+ "Body Mass (g)": 4700,
+ "Sex": "FEMALE",
+ "Index": 326
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 53.4,
+ "Beak Depth (mm)": 15.8,
+ "Flipper Length (mm)": 219,
+ "Body Mass (g)": 5500,
+ "Sex": "MALE",
+ "Index": 327
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 43.3,
+ "Beak Depth (mm)": 14,
+ "Flipper Length (mm)": 208,
+ "Body Mass (g)": 4575,
+ "Sex": "FEMALE",
+ "Index": 328
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 48.1,
+ "Beak Depth (mm)": 15.1,
+ "Flipper Length (mm)": 209,
+ "Body Mass (g)": 5500,
+ "Sex": "MALE",
+ "Index": 329
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 50.5,
+ "Beak Depth (mm)": 15.2,
+ "Flipper Length (mm)": 216,
+ "Body Mass (g)": 5000,
+ "Sex": "FEMALE",
+ "Index": 330
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 49.8,
+ "Beak Depth (mm)": 15.9,
+ "Flipper Length (mm)": 229,
+ "Body Mass (g)": 5950,
+ "Sex": "MALE",
+ "Index": 331
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 43.5,
+ "Beak Depth (mm)": 15.2,
+ "Flipper Length (mm)": 213,
+ "Body Mass (g)": 4650,
+ "Sex": "FEMALE",
+ "Index": 332
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 51.5,
+ "Beak Depth (mm)": 16.3,
+ "Flipper Length (mm)": 230,
+ "Body Mass (g)": 5500,
+ "Sex": "MALE",
+ "Index": 333
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 46.2,
+ "Beak Depth (mm)": 14.1,
+ "Flipper Length (mm)": 217,
+ "Body Mass (g)": 4375,
+ "Sex": "FEMALE",
+ "Index": 334
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 55.1,
+ "Beak Depth (mm)": 16,
+ "Flipper Length (mm)": 230,
+ "Body Mass (g)": 5850,
+ "Sex": "MALE",
+ "Index": 335
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 44.5,
+ "Beak Depth (mm)": 15.7,
+ "Flipper Length (mm)": 217,
+ "Body Mass (g)": 4875,
+ "Sex": ".",
+ "Index": 336
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 48.8,
+ "Beak Depth (mm)": 16.2,
+ "Flipper Length (mm)": 222,
+ "Body Mass (g)": 6000,
+ "Sex": "MALE",
+ "Index": 337
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 47.2,
+ "Beak Depth (mm)": 13.7,
+ "Flipper Length (mm)": 214,
+ "Body Mass (g)": 4925,
+ "Sex": "FEMALE",
+ "Index": 338
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": null,
+ "Beak Depth (mm)": null,
+ "Flipper Length (mm)": null,
+ "Body Mass (g)": null,
+ "Sex": "",
+ "Index": 339
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 46.8,
+ "Beak Depth (mm)": 14.3,
+ "Flipper Length (mm)": 215,
+ "Body Mass (g)": 4850,
+ "Sex": "FEMALE",
+ "Index": 340
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 50.4,
+ "Beak Depth (mm)": 15.7,
+ "Flipper Length (mm)": 222,
+ "Body Mass (g)": 5750,
+ "Sex": "MALE",
+ "Index": 341
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 45.2,
+ "Beak Depth (mm)": 14.8,
+ "Flipper Length (mm)": 212,
+ "Body Mass (g)": 5200,
+ "Sex": "FEMALE",
+ "Index": 342
+ },
+ {
+ "Species": "Gentoo",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 49.9,
+ "Beak Depth (mm)": 16.1,
+ "Flipper Length (mm)": 213,
+ "Body Mass (g)": 5400,
+ "Sex": "MALE",
+ "Index": 343
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 37.8,
+ "Beak Depth (mm)": 18.3,
+ "Flipper Length (mm)": 174,
+ "Body Mass (g)": 3400,
+ "Sex": "FEMALE",
+ "Index": 20
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 37.7,
+ "Beak Depth (mm)": 18.7,
+ "Flipper Length (mm)": 180,
+ "Body Mass (g)": 3600,
+ "Sex": "MALE",
+ "Index": 21
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 35.9,
+ "Beak Depth (mm)": 19.2,
+ "Flipper Length (mm)": 189,
+ "Body Mass (g)": 3800,
+ "Sex": "FEMALE",
+ "Index": 22
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 38.2,
+ "Beak Depth (mm)": 18.1,
+ "Flipper Length (mm)": 185,
+ "Body Mass (g)": 3950,
+ "Sex": "MALE",
+ "Index": 23
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 38.8,
+ "Beak Depth (mm)": 17.2,
+ "Flipper Length (mm)": 180,
+ "Body Mass (g)": 3800,
+ "Sex": "MALE",
+ "Index": 24
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 35.3,
+ "Beak Depth (mm)": 18.9,
+ "Flipper Length (mm)": 187,
+ "Body Mass (g)": 3800,
+ "Sex": "FEMALE",
+ "Index": 25
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 40.6,
+ "Beak Depth (mm)": 18.6,
+ "Flipper Length (mm)": 183,
+ "Body Mass (g)": 3550,
+ "Sex": "MALE",
+ "Index": 26
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 40.5,
+ "Beak Depth (mm)": 17.9,
+ "Flipper Length (mm)": 187,
+ "Body Mass (g)": 3200,
+ "Sex": "FEMALE",
+ "Index": 27
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 37.9,
+ "Beak Depth (mm)": 18.6,
+ "Flipper Length (mm)": 172,
+ "Body Mass (g)": 3150,
+ "Sex": "FEMALE",
+ "Index": 28
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 40.5,
+ "Beak Depth (mm)": 18.9,
+ "Flipper Length (mm)": 180,
+ "Body Mass (g)": 3950,
+ "Sex": "MALE",
+ "Index": 29
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 39.6,
+ "Beak Depth (mm)": 17.7,
+ "Flipper Length (mm)": 186,
+ "Body Mass (g)": 3500,
+ "Sex": "FEMALE",
+ "Index": 50
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 40.1,
+ "Beak Depth (mm)": 18.9,
+ "Flipper Length (mm)": 188,
+ "Body Mass (g)": 4300,
+ "Sex": "MALE",
+ "Index": 51
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 35,
+ "Beak Depth (mm)": 17.9,
+ "Flipper Length (mm)": 190,
+ "Body Mass (g)": 3450,
+ "Sex": "FEMALE",
+ "Index": 52
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 42,
+ "Beak Depth (mm)": 19.5,
+ "Flipper Length (mm)": 200,
+ "Body Mass (g)": 4050,
+ "Sex": "MALE",
+ "Index": 53
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 34.5,
+ "Beak Depth (mm)": 18.1,
+ "Flipper Length (mm)": 187,
+ "Body Mass (g)": 2900,
+ "Sex": "FEMALE",
+ "Index": 54
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 41.4,
+ "Beak Depth (mm)": 18.6,
+ "Flipper Length (mm)": 191,
+ "Body Mass (g)": 3700,
+ "Sex": "MALE",
+ "Index": 55
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 39,
+ "Beak Depth (mm)": 17.5,
+ "Flipper Length (mm)": 186,
+ "Body Mass (g)": 3550,
+ "Sex": "FEMALE",
+ "Index": 56
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 40.6,
+ "Beak Depth (mm)": 18.8,
+ "Flipper Length (mm)": 193,
+ "Body Mass (g)": 3800,
+ "Sex": "MALE",
+ "Index": 57
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 36.5,
+ "Beak Depth (mm)": 16.6,
+ "Flipper Length (mm)": 181,
+ "Body Mass (g)": 2850,
+ "Sex": "FEMALE",
+ "Index": 58
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 37.6,
+ "Beak Depth (mm)": 19.1,
+ "Flipper Length (mm)": 194,
+ "Body Mass (g)": 3750,
+ "Sex": "MALE",
+ "Index": 59
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 35.7,
+ "Beak Depth (mm)": 16.9,
+ "Flipper Length (mm)": 185,
+ "Body Mass (g)": 3150,
+ "Sex": "FEMALE",
+ "Index": 60
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 41.3,
+ "Beak Depth (mm)": 21.1,
+ "Flipper Length (mm)": 195,
+ "Body Mass (g)": 4400,
+ "Sex": "MALE",
+ "Index": 61
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 37.6,
+ "Beak Depth (mm)": 17,
+ "Flipper Length (mm)": 185,
+ "Body Mass (g)": 3600,
+ "Sex": "FEMALE",
+ "Index": 62
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 41.1,
+ "Beak Depth (mm)": 18.2,
+ "Flipper Length (mm)": 192,
+ "Body Mass (g)": 4050,
+ "Sex": "MALE",
+ "Index": 63
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 36.4,
+ "Beak Depth (mm)": 17.1,
+ "Flipper Length (mm)": 184,
+ "Body Mass (g)": 2850,
+ "Sex": "FEMALE",
+ "Index": 64
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 41.6,
+ "Beak Depth (mm)": 18,
+ "Flipper Length (mm)": 192,
+ "Body Mass (g)": 3950,
+ "Sex": "MALE",
+ "Index": 65
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 35.5,
+ "Beak Depth (mm)": 16.2,
+ "Flipper Length (mm)": 195,
+ "Body Mass (g)": 3350,
+ "Sex": "FEMALE",
+ "Index": 66
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 41.1,
+ "Beak Depth (mm)": 19.1,
+ "Flipper Length (mm)": 188,
+ "Body Mass (g)": 4100,
+ "Sex": "MALE",
+ "Index": 67
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 35,
+ "Beak Depth (mm)": 17.9,
+ "Flipper Length (mm)": 192,
+ "Body Mass (g)": 3725,
+ "Sex": "FEMALE",
+ "Index": 100
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 41,
+ "Beak Depth (mm)": 20,
+ "Flipper Length (mm)": 203,
+ "Body Mass (g)": 4725,
+ "Sex": "MALE",
+ "Index": 101
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 37.7,
+ "Beak Depth (mm)": 16,
+ "Flipper Length (mm)": 183,
+ "Body Mass (g)": 3075,
+ "Sex": "FEMALE",
+ "Index": 102
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 37.8,
+ "Beak Depth (mm)": 20,
+ "Flipper Length (mm)": 190,
+ "Body Mass (g)": 4250,
+ "Sex": "MALE",
+ "Index": 103
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 37.9,
+ "Beak Depth (mm)": 18.6,
+ "Flipper Length (mm)": 193,
+ "Body Mass (g)": 2925,
+ "Sex": "FEMALE",
+ "Index": 104
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 39.7,
+ "Beak Depth (mm)": 18.9,
+ "Flipper Length (mm)": 184,
+ "Body Mass (g)": 3550,
+ "Sex": "MALE",
+ "Index": 105
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 38.6,
+ "Beak Depth (mm)": 17.2,
+ "Flipper Length (mm)": 199,
+ "Body Mass (g)": 3750,
+ "Sex": "FEMALE",
+ "Index": 106
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 38.2,
+ "Beak Depth (mm)": 20,
+ "Flipper Length (mm)": 190,
+ "Body Mass (g)": 3900,
+ "Sex": "MALE",
+ "Index": 107
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 38.1,
+ "Beak Depth (mm)": 17,
+ "Flipper Length (mm)": 181,
+ "Body Mass (g)": 3175,
+ "Sex": "FEMALE",
+ "Index": 108
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 43.2,
+ "Beak Depth (mm)": 19,
+ "Flipper Length (mm)": 197,
+ "Body Mass (g)": 4775,
+ "Sex": "MALE",
+ "Index": 109
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 38.1,
+ "Beak Depth (mm)": 16.5,
+ "Flipper Length (mm)": 198,
+ "Body Mass (g)": 3825,
+ "Sex": "FEMALE",
+ "Index": 110
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 45.6,
+ "Beak Depth (mm)": 20.3,
+ "Flipper Length (mm)": 191,
+ "Body Mass (g)": 4600,
+ "Sex": "MALE",
+ "Index": 111
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 39.7,
+ "Beak Depth (mm)": 17.7,
+ "Flipper Length (mm)": 193,
+ "Body Mass (g)": 3200,
+ "Sex": "FEMALE",
+ "Index": 112
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 42.2,
+ "Beak Depth (mm)": 19.5,
+ "Flipper Length (mm)": 197,
+ "Body Mass (g)": 4275,
+ "Sex": "MALE",
+ "Index": 113
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 39.6,
+ "Beak Depth (mm)": 20.7,
+ "Flipper Length (mm)": 191,
+ "Body Mass (g)": 3900,
+ "Sex": "FEMALE",
+ "Index": 114
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Biscoe",
+ "Beak Length (mm)": 42.7,
+ "Beak Depth (mm)": 18.3,
+ "Flipper Length (mm)": 196,
+ "Body Mass (g)": 4075,
+ "Sex": "MALE",
+ "Index": 115
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Dream",
+ "Beak Length (mm)": 39.5,
+ "Beak Depth (mm)": 16.7,
+ "Flipper Length (mm)": 178,
+ "Body Mass (g)": 3250,
+ "Sex": "FEMALE",
+ "Index": 30
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Dream",
+ "Beak Length (mm)": 37.2,
+ "Beak Depth (mm)": 18.1,
+ "Flipper Length (mm)": 178,
+ "Body Mass (g)": 3900,
+ "Sex": "MALE",
+ "Index": 31
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Dream",
+ "Beak Length (mm)": 39.5,
+ "Beak Depth (mm)": 17.8,
+ "Flipper Length (mm)": 188,
+ "Body Mass (g)": 3300,
+ "Sex": "FEMALE",
+ "Index": 32
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Dream",
+ "Beak Length (mm)": 40.9,
+ "Beak Depth (mm)": 18.9,
+ "Flipper Length (mm)": 184,
+ "Body Mass (g)": 3900,
+ "Sex": "MALE",
+ "Index": 33
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Dream",
+ "Beak Length (mm)": 36.4,
+ "Beak Depth (mm)": 17,
+ "Flipper Length (mm)": 195,
+ "Body Mass (g)": 3325,
+ "Sex": "FEMALE",
+ "Index": 34
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Dream",
+ "Beak Length (mm)": 39.2,
+ "Beak Depth (mm)": 21.1,
+ "Flipper Length (mm)": 196,
+ "Body Mass (g)": 4150,
+ "Sex": "MALE",
+ "Index": 35
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Dream",
+ "Beak Length (mm)": 38.8,
+ "Beak Depth (mm)": 20,
+ "Flipper Length (mm)": 190,
+ "Body Mass (g)": 3950,
+ "Sex": "MALE",
+ "Index": 36
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Dream",
+ "Beak Length (mm)": 42.2,
+ "Beak Depth (mm)": 18.5,
+ "Flipper Length (mm)": 180,
+ "Body Mass (g)": 3550,
+ "Sex": "FEMALE",
+ "Index": 37
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Dream",
+ "Beak Length (mm)": 37.6,
+ "Beak Depth (mm)": 19.3,
+ "Flipper Length (mm)": 181,
+ "Body Mass (g)": 3300,
+ "Sex": "FEMALE",
+ "Index": 38
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Dream",
+ "Beak Length (mm)": 39.8,
+ "Beak Depth (mm)": 19.1,
+ "Flipper Length (mm)": 184,
+ "Body Mass (g)": 4650,
+ "Sex": "MALE",
+ "Index": 39
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Dream",
+ "Beak Length (mm)": 36.5,
+ "Beak Depth (mm)": 18,
+ "Flipper Length (mm)": 182,
+ "Body Mass (g)": 3150,
+ "Sex": "FEMALE",
+ "Index": 40
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Dream",
+ "Beak Length (mm)": 40.8,
+ "Beak Depth (mm)": 18.4,
+ "Flipper Length (mm)": 195,
+ "Body Mass (g)": 3900,
+ "Sex": "MALE",
+ "Index": 41
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Dream",
+ "Beak Length (mm)": 36,
+ "Beak Depth (mm)": 18.5,
+ "Flipper Length (mm)": 186,
+ "Body Mass (g)": 3100,
+ "Sex": "FEMALE",
+ "Index": 42
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Dream",
+ "Beak Length (mm)": 44.1,
+ "Beak Depth (mm)": 19.7,
+ "Flipper Length (mm)": 196,
+ "Body Mass (g)": 4400,
+ "Sex": "MALE",
+ "Index": 43
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Dream",
+ "Beak Length (mm)": 37,
+ "Beak Depth (mm)": 16.9,
+ "Flipper Length (mm)": 185,
+ "Body Mass (g)": 3000,
+ "Sex": "FEMALE",
+ "Index": 44
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Dream",
+ "Beak Length (mm)": 39.6,
+ "Beak Depth (mm)": 18.8,
+ "Flipper Length (mm)": 190,
+ "Body Mass (g)": 4600,
+ "Sex": "MALE",
+ "Index": 45
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Dream",
+ "Beak Length (mm)": 41.1,
+ "Beak Depth (mm)": 19,
+ "Flipper Length (mm)": 182,
+ "Body Mass (g)": 3425,
+ "Sex": "MALE",
+ "Index": 46
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Dream",
+ "Beak Length (mm)": 37.5,
+ "Beak Depth (mm)": 18.9,
+ "Flipper Length (mm)": 179,
+ "Body Mass (g)": 2975,
+ "Sex": "",
+ "Index": 47
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Dream",
+ "Beak Length (mm)": 36,
+ "Beak Depth (mm)": 17.9,
+ "Flipper Length (mm)": 190,
+ "Body Mass (g)": 3450,
+ "Sex": "FEMALE",
+ "Index": 48
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Dream",
+ "Beak Length (mm)": 42.3,
+ "Beak Depth (mm)": 21.2,
+ "Flipper Length (mm)": 191,
+ "Body Mass (g)": 4150,
+ "Sex": "MALE",
+ "Index": 49
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Dream",
+ "Beak Length (mm)": 37.3,
+ "Beak Depth (mm)": 17.8,
+ "Flipper Length (mm)": 191,
+ "Body Mass (g)": 3350,
+ "Sex": "FEMALE",
+ "Index": 84
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Dream",
+ "Beak Length (mm)": 41.3,
+ "Beak Depth (mm)": 20.3,
+ "Flipper Length (mm)": 194,
+ "Body Mass (g)": 3550,
+ "Sex": "MALE",
+ "Index": 85
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Dream",
+ "Beak Length (mm)": 36.3,
+ "Beak Depth (mm)": 19.5,
+ "Flipper Length (mm)": 190,
+ "Body Mass (g)": 3800,
+ "Sex": "MALE",
+ "Index": 86
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Dream",
+ "Beak Length (mm)": 36.9,
+ "Beak Depth (mm)": 18.6,
+ "Flipper Length (mm)": 189,
+ "Body Mass (g)": 3500,
+ "Sex": "FEMALE",
+ "Index": 87
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Dream",
+ "Beak Length (mm)": 38.3,
+ "Beak Depth (mm)": 19.2,
+ "Flipper Length (mm)": 189,
+ "Body Mass (g)": 3950,
+ "Sex": "MALE",
+ "Index": 88
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Dream",
+ "Beak Length (mm)": 38.9,
+ "Beak Depth (mm)": 18.8,
+ "Flipper Length (mm)": 190,
+ "Body Mass (g)": 3600,
+ "Sex": "FEMALE",
+ "Index": 89
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Dream",
+ "Beak Length (mm)": 35.7,
+ "Beak Depth (mm)": 18,
+ "Flipper Length (mm)": 202,
+ "Body Mass (g)": 3550,
+ "Sex": "FEMALE",
+ "Index": 90
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Dream",
+ "Beak Length (mm)": 41.1,
+ "Beak Depth (mm)": 18.1,
+ "Flipper Length (mm)": 205,
+ "Body Mass (g)": 4300,
+ "Sex": "MALE",
+ "Index": 91
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Dream",
+ "Beak Length (mm)": 34,
+ "Beak Depth (mm)": 17.1,
+ "Flipper Length (mm)": 185,
+ "Body Mass (g)": 3400,
+ "Sex": "FEMALE",
+ "Index": 92
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Dream",
+ "Beak Length (mm)": 39.6,
+ "Beak Depth (mm)": 18.1,
+ "Flipper Length (mm)": 186,
+ "Body Mass (g)": 4450,
+ "Sex": "MALE",
+ "Index": 93
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Dream",
+ "Beak Length (mm)": 36.2,
+ "Beak Depth (mm)": 17.3,
+ "Flipper Length (mm)": 187,
+ "Body Mass (g)": 3300,
+ "Sex": "FEMALE",
+ "Index": 94
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Dream",
+ "Beak Length (mm)": 40.8,
+ "Beak Depth (mm)": 18.9,
+ "Flipper Length (mm)": 208,
+ "Body Mass (g)": 4300,
+ "Sex": "MALE",
+ "Index": 95
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Dream",
+ "Beak Length (mm)": 38.1,
+ "Beak Depth (mm)": 18.6,
+ "Flipper Length (mm)": 190,
+ "Body Mass (g)": 3700,
+ "Sex": "FEMALE",
+ "Index": 96
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Dream",
+ "Beak Length (mm)": 40.3,
+ "Beak Depth (mm)": 18.5,
+ "Flipper Length (mm)": 196,
+ "Body Mass (g)": 4350,
+ "Sex": "MALE",
+ "Index": 97
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Dream",
+ "Beak Length (mm)": 33.1,
+ "Beak Depth (mm)": 16.1,
+ "Flipper Length (mm)": 178,
+ "Body Mass (g)": 2900,
+ "Sex": "FEMALE",
+ "Index": 98
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Dream",
+ "Beak Length (mm)": 43.2,
+ "Beak Depth (mm)": 18.5,
+ "Flipper Length (mm)": 192,
+ "Body Mass (g)": 4100,
+ "Sex": "MALE",
+ "Index": 99
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Dream",
+ "Beak Length (mm)": 36.8,
+ "Beak Depth (mm)": 18.5,
+ "Flipper Length (mm)": 193,
+ "Body Mass (g)": 3500,
+ "Sex": "FEMALE",
+ "Index": 132
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Dream",
+ "Beak Length (mm)": 37.5,
+ "Beak Depth (mm)": 18.5,
+ "Flipper Length (mm)": 199,
+ "Body Mass (g)": 4475,
+ "Sex": "MALE",
+ "Index": 133
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Dream",
+ "Beak Length (mm)": 38.1,
+ "Beak Depth (mm)": 17.6,
+ "Flipper Length (mm)": 187,
+ "Body Mass (g)": 3425,
+ "Sex": "FEMALE",
+ "Index": 134
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Dream",
+ "Beak Length (mm)": 41.1,
+ "Beak Depth (mm)": 17.5,
+ "Flipper Length (mm)": 190,
+ "Body Mass (g)": 3900,
+ "Sex": "MALE",
+ "Index": 135
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Dream",
+ "Beak Length (mm)": 35.6,
+ "Beak Depth (mm)": 17.5,
+ "Flipper Length (mm)": 191,
+ "Body Mass (g)": 3175,
+ "Sex": "FEMALE",
+ "Index": 136
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Dream",
+ "Beak Length (mm)": 40.2,
+ "Beak Depth (mm)": 20.1,
+ "Flipper Length (mm)": 200,
+ "Body Mass (g)": 3975,
+ "Sex": "MALE",
+ "Index": 137
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Dream",
+ "Beak Length (mm)": 37,
+ "Beak Depth (mm)": 16.5,
+ "Flipper Length (mm)": 185,
+ "Body Mass (g)": 3400,
+ "Sex": "FEMALE",
+ "Index": 138
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Dream",
+ "Beak Length (mm)": 39.7,
+ "Beak Depth (mm)": 17.9,
+ "Flipper Length (mm)": 193,
+ "Body Mass (g)": 4250,
+ "Sex": "MALE",
+ "Index": 139
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Dream",
+ "Beak Length (mm)": 40.2,
+ "Beak Depth (mm)": 17.1,
+ "Flipper Length (mm)": 193,
+ "Body Mass (g)": 3400,
+ "Sex": "FEMALE",
+ "Index": 140
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Dream",
+ "Beak Length (mm)": 40.6,
+ "Beak Depth (mm)": 17.2,
+ "Flipper Length (mm)": 187,
+ "Body Mass (g)": 3475,
+ "Sex": "MALE",
+ "Index": 141
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Dream",
+ "Beak Length (mm)": 32.1,
+ "Beak Depth (mm)": 15.5,
+ "Flipper Length (mm)": 188,
+ "Body Mass (g)": 3050,
+ "Sex": "FEMALE",
+ "Index": 142
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Dream",
+ "Beak Length (mm)": 40.7,
+ "Beak Depth (mm)": 17,
+ "Flipper Length (mm)": 190,
+ "Body Mass (g)": 3725,
+ "Sex": "MALE",
+ "Index": 143
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Dream",
+ "Beak Length (mm)": 37.3,
+ "Beak Depth (mm)": 16.8,
+ "Flipper Length (mm)": 192,
+ "Body Mass (g)": 3000,
+ "Sex": "FEMALE",
+ "Index": 144
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Dream",
+ "Beak Length (mm)": 39,
+ "Beak Depth (mm)": 18.7,
+ "Flipper Length (mm)": 185,
+ "Body Mass (g)": 3650,
+ "Sex": "MALE",
+ "Index": 145
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Dream",
+ "Beak Length (mm)": 39.2,
+ "Beak Depth (mm)": 18.6,
+ "Flipper Length (mm)": 190,
+ "Body Mass (g)": 4250,
+ "Sex": "MALE",
+ "Index": 146
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Dream",
+ "Beak Length (mm)": 36.6,
+ "Beak Depth (mm)": 18.4,
+ "Flipper Length (mm)": 184,
+ "Body Mass (g)": 3475,
+ "Sex": "FEMALE",
+ "Index": 147
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Dream",
+ "Beak Length (mm)": 36,
+ "Beak Depth (mm)": 17.8,
+ "Flipper Length (mm)": 195,
+ "Body Mass (g)": 3450,
+ "Sex": "FEMALE",
+ "Index": 148
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Dream",
+ "Beak Length (mm)": 37.8,
+ "Beak Depth (mm)": 18.1,
+ "Flipper Length (mm)": 193,
+ "Body Mass (g)": 3750,
+ "Sex": "MALE",
+ "Index": 149
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Dream",
+ "Beak Length (mm)": 36,
+ "Beak Depth (mm)": 17.1,
+ "Flipper Length (mm)": 187,
+ "Body Mass (g)": 3700,
+ "Sex": "FEMALE",
+ "Index": 150
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Dream",
+ "Beak Length (mm)": 41.5,
+ "Beak Depth (mm)": 18.5,
+ "Flipper Length (mm)": 201,
+ "Body Mass (g)": 4000,
+ "Sex": "MALE",
+ "Index": 151
+ },
+ {
+ "Species": "Chinstrap",
+ "Island": "Dream",
+ "Beak Length (mm)": 46.5,
+ "Beak Depth (mm)": 17.9,
+ "Flipper Length (mm)": 192,
+ "Body Mass (g)": 3500,
+ "Sex": "FEMALE",
+ "Index": 152
+ },
+ {
+ "Species": "Chinstrap",
+ "Island": "Dream",
+ "Beak Length (mm)": 50,
+ "Beak Depth (mm)": 19.5,
+ "Flipper Length (mm)": 196,
+ "Body Mass (g)": 3900,
+ "Sex": "MALE",
+ "Index": 153
+ },
+ {
+ "Species": "Chinstrap",
+ "Island": "Dream",
+ "Beak Length (mm)": 51.3,
+ "Beak Depth (mm)": 19.2,
+ "Flipper Length (mm)": 193,
+ "Body Mass (g)": 3650,
+ "Sex": "MALE",
+ "Index": 154
+ },
+ {
+ "Species": "Chinstrap",
+ "Island": "Dream",
+ "Beak Length (mm)": 45.4,
+ "Beak Depth (mm)": 18.7,
+ "Flipper Length (mm)": 188,
+ "Body Mass (g)": 3525,
+ "Sex": "FEMALE",
+ "Index": 155
+ },
+ {
+ "Species": "Chinstrap",
+ "Island": "Dream",
+ "Beak Length (mm)": 52.7,
+ "Beak Depth (mm)": 19.8,
+ "Flipper Length (mm)": 197,
+ "Body Mass (g)": 3725,
+ "Sex": "MALE",
+ "Index": 156
+ },
+ {
+ "Species": "Chinstrap",
+ "Island": "Dream",
+ "Beak Length (mm)": 45.2,
+ "Beak Depth (mm)": 17.8,
+ "Flipper Length (mm)": 198,
+ "Body Mass (g)": 3950,
+ "Sex": "FEMALE",
+ "Index": 157
+ },
+ {
+ "Species": "Chinstrap",
+ "Island": "Dream",
+ "Beak Length (mm)": 46.1,
+ "Beak Depth (mm)": 18.2,
+ "Flipper Length (mm)": 178,
+ "Body Mass (g)": 3250,
+ "Sex": "FEMALE",
+ "Index": 158
+ },
+ {
+ "Species": "Chinstrap",
+ "Island": "Dream",
+ "Beak Length (mm)": 51.3,
+ "Beak Depth (mm)": 18.2,
+ "Flipper Length (mm)": 197,
+ "Body Mass (g)": 3750,
+ "Sex": "MALE",
+ "Index": 159
+ },
+ {
+ "Species": "Chinstrap",
+ "Island": "Dream",
+ "Beak Length (mm)": 46,
+ "Beak Depth (mm)": 18.9,
+ "Flipper Length (mm)": 195,
+ "Body Mass (g)": 4150,
+ "Sex": "FEMALE",
+ "Index": 160
+ },
+ {
+ "Species": "Chinstrap",
+ "Island": "Dream",
+ "Beak Length (mm)": 51.3,
+ "Beak Depth (mm)": 19.9,
+ "Flipper Length (mm)": 198,
+ "Body Mass (g)": 3700,
+ "Sex": "MALE",
+ "Index": 161
+ },
+ {
+ "Species": "Chinstrap",
+ "Island": "Dream",
+ "Beak Length (mm)": 46.6,
+ "Beak Depth (mm)": 17.8,
+ "Flipper Length (mm)": 193,
+ "Body Mass (g)": 3800,
+ "Sex": "FEMALE",
+ "Index": 162
+ },
+ {
+ "Species": "Chinstrap",
+ "Island": "Dream",
+ "Beak Length (mm)": 51.7,
+ "Beak Depth (mm)": 20.3,
+ "Flipper Length (mm)": 194,
+ "Body Mass (g)": 3775,
+ "Sex": "MALE",
+ "Index": 163
+ },
+ {
+ "Species": "Chinstrap",
+ "Island": "Dream",
+ "Beak Length (mm)": 47,
+ "Beak Depth (mm)": 17.3,
+ "Flipper Length (mm)": 185,
+ "Body Mass (g)": 3700,
+ "Sex": "FEMALE",
+ "Index": 164
+ },
+ {
+ "Species": "Chinstrap",
+ "Island": "Dream",
+ "Beak Length (mm)": 52,
+ "Beak Depth (mm)": 18.1,
+ "Flipper Length (mm)": 201,
+ "Body Mass (g)": 4050,
+ "Sex": "MALE",
+ "Index": 165
+ },
+ {
+ "Species": "Chinstrap",
+ "Island": "Dream",
+ "Beak Length (mm)": 45.9,
+ "Beak Depth (mm)": 17.1,
+ "Flipper Length (mm)": 190,
+ "Body Mass (g)": 3575,
+ "Sex": "FEMALE",
+ "Index": 166
+ },
+ {
+ "Species": "Chinstrap",
+ "Island": "Dream",
+ "Beak Length (mm)": 50.5,
+ "Beak Depth (mm)": 19.6,
+ "Flipper Length (mm)": 201,
+ "Body Mass (g)": 4050,
+ "Sex": "MALE",
+ "Index": 167
+ },
+ {
+ "Species": "Chinstrap",
+ "Island": "Dream",
+ "Beak Length (mm)": 50.3,
+ "Beak Depth (mm)": 20,
+ "Flipper Length (mm)": 197,
+ "Body Mass (g)": 3300,
+ "Sex": "MALE",
+ "Index": 168
+ },
+ {
+ "Species": "Chinstrap",
+ "Island": "Dream",
+ "Beak Length (mm)": 58,
+ "Beak Depth (mm)": 17.8,
+ "Flipper Length (mm)": 181,
+ "Body Mass (g)": 3700,
+ "Sex": "FEMALE",
+ "Index": 169
+ },
+ {
+ "Species": "Chinstrap",
+ "Island": "Dream",
+ "Beak Length (mm)": 46.4,
+ "Beak Depth (mm)": 18.6,
+ "Flipper Length (mm)": 190,
+ "Body Mass (g)": 3450,
+ "Sex": "FEMALE",
+ "Index": 170
+ },
+ {
+ "Species": "Chinstrap",
+ "Island": "Dream",
+ "Beak Length (mm)": 49.2,
+ "Beak Depth (mm)": 18.2,
+ "Flipper Length (mm)": 195,
+ "Body Mass (g)": 4400,
+ "Sex": "MALE",
+ "Index": 171
+ },
+ {
+ "Species": "Chinstrap",
+ "Island": "Dream",
+ "Beak Length (mm)": 42.4,
+ "Beak Depth (mm)": 17.3,
+ "Flipper Length (mm)": 181,
+ "Body Mass (g)": 3600,
+ "Sex": "FEMALE",
+ "Index": 172
+ },
+ {
+ "Species": "Chinstrap",
+ "Island": "Dream",
+ "Beak Length (mm)": 48.5,
+ "Beak Depth (mm)": 17.5,
+ "Flipper Length (mm)": 191,
+ "Body Mass (g)": 3400,
+ "Sex": "MALE",
+ "Index": 173
+ },
+ {
+ "Species": "Chinstrap",
+ "Island": "Dream",
+ "Beak Length (mm)": 43.2,
+ "Beak Depth (mm)": 16.6,
+ "Flipper Length (mm)": 187,
+ "Body Mass (g)": 2900,
+ "Sex": "FEMALE",
+ "Index": 174
+ },
+ {
+ "Species": "Chinstrap",
+ "Island": "Dream",
+ "Beak Length (mm)": 50.6,
+ "Beak Depth (mm)": 19.4,
+ "Flipper Length (mm)": 193,
+ "Body Mass (g)": 3800,
+ "Sex": "MALE",
+ "Index": 175
+ },
+ {
+ "Species": "Chinstrap",
+ "Island": "Dream",
+ "Beak Length (mm)": 46.7,
+ "Beak Depth (mm)": 17.9,
+ "Flipper Length (mm)": 195,
+ "Body Mass (g)": 3300,
+ "Sex": "FEMALE",
+ "Index": 176
+ },
+ {
+ "Species": "Chinstrap",
+ "Island": "Dream",
+ "Beak Length (mm)": 52,
+ "Beak Depth (mm)": 19,
+ "Flipper Length (mm)": 197,
+ "Body Mass (g)": 4150,
+ "Sex": "MALE",
+ "Index": 177
+ },
+ {
+ "Species": "Chinstrap",
+ "Island": "Dream",
+ "Beak Length (mm)": 50.5,
+ "Beak Depth (mm)": 18.4,
+ "Flipper Length (mm)": 200,
+ "Body Mass (g)": 3400,
+ "Sex": "FEMALE",
+ "Index": 178
+ },
+ {
+ "Species": "Chinstrap",
+ "Island": "Dream",
+ "Beak Length (mm)": 49.5,
+ "Beak Depth (mm)": 19,
+ "Flipper Length (mm)": 200,
+ "Body Mass (g)": 3800,
+ "Sex": "MALE",
+ "Index": 179
+ },
+ {
+ "Species": "Chinstrap",
+ "Island": "Dream",
+ "Beak Length (mm)": 46.4,
+ "Beak Depth (mm)": 17.8,
+ "Flipper Length (mm)": 191,
+ "Body Mass (g)": 3700,
+ "Sex": "FEMALE",
+ "Index": 180
+ },
+ {
+ "Species": "Chinstrap",
+ "Island": "Dream",
+ "Beak Length (mm)": 52.8,
+ "Beak Depth (mm)": 20,
+ "Flipper Length (mm)": 205,
+ "Body Mass (g)": 4550,
+ "Sex": "MALE",
+ "Index": 181
+ },
+ {
+ "Species": "Chinstrap",
+ "Island": "Dream",
+ "Beak Length (mm)": 40.9,
+ "Beak Depth (mm)": 16.6,
+ "Flipper Length (mm)": 187,
+ "Body Mass (g)": 3200,
+ "Sex": "FEMALE",
+ "Index": 182
+ },
+ {
+ "Species": "Chinstrap",
+ "Island": "Dream",
+ "Beak Length (mm)": 54.2,
+ "Beak Depth (mm)": 20.8,
+ "Flipper Length (mm)": 201,
+ "Body Mass (g)": 4300,
+ "Sex": "MALE",
+ "Index": 183
+ },
+ {
+ "Species": "Chinstrap",
+ "Island": "Dream",
+ "Beak Length (mm)": 42.5,
+ "Beak Depth (mm)": 16.7,
+ "Flipper Length (mm)": 187,
+ "Body Mass (g)": 3350,
+ "Sex": "FEMALE",
+ "Index": 184
+ },
+ {
+ "Species": "Chinstrap",
+ "Island": "Dream",
+ "Beak Length (mm)": 51,
+ "Beak Depth (mm)": 18.8,
+ "Flipper Length (mm)": 203,
+ "Body Mass (g)": 4100,
+ "Sex": "MALE",
+ "Index": 185
+ },
+ {
+ "Species": "Chinstrap",
+ "Island": "Dream",
+ "Beak Length (mm)": 49.7,
+ "Beak Depth (mm)": 18.6,
+ "Flipper Length (mm)": 195,
+ "Body Mass (g)": 3600,
+ "Sex": "MALE",
+ "Index": 186
+ },
+ {
+ "Species": "Chinstrap",
+ "Island": "Dream",
+ "Beak Length (mm)": 47.5,
+ "Beak Depth (mm)": 16.8,
+ "Flipper Length (mm)": 199,
+ "Body Mass (g)": 3900,
+ "Sex": "FEMALE",
+ "Index": 187
+ },
+ {
+ "Species": "Chinstrap",
+ "Island": "Dream",
+ "Beak Length (mm)": 47.6,
+ "Beak Depth (mm)": 18.3,
+ "Flipper Length (mm)": 195,
+ "Body Mass (g)": 3850,
+ "Sex": "FEMALE",
+ "Index": 188
+ },
+ {
+ "Species": "Chinstrap",
+ "Island": "Dream",
+ "Beak Length (mm)": 52,
+ "Beak Depth (mm)": 20.7,
+ "Flipper Length (mm)": 210,
+ "Body Mass (g)": 4800,
+ "Sex": "MALE",
+ "Index": 189
+ },
+ {
+ "Species": "Chinstrap",
+ "Island": "Dream",
+ "Beak Length (mm)": 46.9,
+ "Beak Depth (mm)": 16.6,
+ "Flipper Length (mm)": 192,
+ "Body Mass (g)": 2700,
+ "Sex": "FEMALE",
+ "Index": 190
+ },
+ {
+ "Species": "Chinstrap",
+ "Island": "Dream",
+ "Beak Length (mm)": 53.5,
+ "Beak Depth (mm)": 19.9,
+ "Flipper Length (mm)": 205,
+ "Body Mass (g)": 4500,
+ "Sex": "MALE",
+ "Index": 191
+ },
+ {
+ "Species": "Chinstrap",
+ "Island": "Dream",
+ "Beak Length (mm)": 49,
+ "Beak Depth (mm)": 19.5,
+ "Flipper Length (mm)": 210,
+ "Body Mass (g)": 3950,
+ "Sex": "MALE",
+ "Index": 192
+ },
+ {
+ "Species": "Chinstrap",
+ "Island": "Dream",
+ "Beak Length (mm)": 46.2,
+ "Beak Depth (mm)": 17.5,
+ "Flipper Length (mm)": 187,
+ "Body Mass (g)": 3650,
+ "Sex": "FEMALE",
+ "Index": 193
+ },
+ {
+ "Species": "Chinstrap",
+ "Island": "Dream",
+ "Beak Length (mm)": 50.9,
+ "Beak Depth (mm)": 19.1,
+ "Flipper Length (mm)": 196,
+ "Body Mass (g)": 3550,
+ "Sex": "MALE",
+ "Index": 194
+ },
+ {
+ "Species": "Chinstrap",
+ "Island": "Dream",
+ "Beak Length (mm)": 45.5,
+ "Beak Depth (mm)": 17,
+ "Flipper Length (mm)": 196,
+ "Body Mass (g)": 3500,
+ "Sex": "FEMALE",
+ "Index": 195
+ },
+ {
+ "Species": "Chinstrap",
+ "Island": "Dream",
+ "Beak Length (mm)": 50.9,
+ "Beak Depth (mm)": 17.9,
+ "Flipper Length (mm)": 196,
+ "Body Mass (g)": 3675,
+ "Sex": "FEMALE",
+ "Index": 196
+ },
+ {
+ "Species": "Chinstrap",
+ "Island": "Dream",
+ "Beak Length (mm)": 50.8,
+ "Beak Depth (mm)": 18.5,
+ "Flipper Length (mm)": 201,
+ "Body Mass (g)": 4450,
+ "Sex": "MALE",
+ "Index": 197
+ },
+ {
+ "Species": "Chinstrap",
+ "Island": "Dream",
+ "Beak Length (mm)": 50.1,
+ "Beak Depth (mm)": 17.9,
+ "Flipper Length (mm)": 190,
+ "Body Mass (g)": 3400,
+ "Sex": "FEMALE",
+ "Index": 198
+ },
+ {
+ "Species": "Chinstrap",
+ "Island": "Dream",
+ "Beak Length (mm)": 49,
+ "Beak Depth (mm)": 19.6,
+ "Flipper Length (mm)": 212,
+ "Body Mass (g)": 4300,
+ "Sex": "MALE",
+ "Index": 199
+ },
+ {
+ "Species": "Chinstrap",
+ "Island": "Dream",
+ "Beak Length (mm)": 51.5,
+ "Beak Depth (mm)": 18.7,
+ "Flipper Length (mm)": 187,
+ "Body Mass (g)": 3250,
+ "Sex": "MALE",
+ "Index": 200
+ },
+ {
+ "Species": "Chinstrap",
+ "Island": "Dream",
+ "Beak Length (mm)": 49.8,
+ "Beak Depth (mm)": 17.3,
+ "Flipper Length (mm)": 198,
+ "Body Mass (g)": 3675,
+ "Sex": "FEMALE",
+ "Index": 201
+ },
+ {
+ "Species": "Chinstrap",
+ "Island": "Dream",
+ "Beak Length (mm)": 48.1,
+ "Beak Depth (mm)": 16.4,
+ "Flipper Length (mm)": 199,
+ "Body Mass (g)": 3325,
+ "Sex": "FEMALE",
+ "Index": 202
+ },
+ {
+ "Species": "Chinstrap",
+ "Island": "Dream",
+ "Beak Length (mm)": 51.4,
+ "Beak Depth (mm)": 19,
+ "Flipper Length (mm)": 201,
+ "Body Mass (g)": 3950,
+ "Sex": "MALE",
+ "Index": 203
+ },
+ {
+ "Species": "Chinstrap",
+ "Island": "Dream",
+ "Beak Length (mm)": 45.7,
+ "Beak Depth (mm)": 17.3,
+ "Flipper Length (mm)": 193,
+ "Body Mass (g)": 3600,
+ "Sex": "FEMALE",
+ "Index": 204
+ },
+ {
+ "Species": "Chinstrap",
+ "Island": "Dream",
+ "Beak Length (mm)": 50.7,
+ "Beak Depth (mm)": 19.7,
+ "Flipper Length (mm)": 203,
+ "Body Mass (g)": 4050,
+ "Sex": "MALE",
+ "Index": 205
+ },
+ {
+ "Species": "Chinstrap",
+ "Island": "Dream",
+ "Beak Length (mm)": 42.5,
+ "Beak Depth (mm)": 17.3,
+ "Flipper Length (mm)": 187,
+ "Body Mass (g)": 3350,
+ "Sex": "FEMALE",
+ "Index": 206
+ },
+ {
+ "Species": "Chinstrap",
+ "Island": "Dream",
+ "Beak Length (mm)": 52.2,
+ "Beak Depth (mm)": 18.8,
+ "Flipper Length (mm)": 197,
+ "Body Mass (g)": 3450,
+ "Sex": "MALE",
+ "Index": 207
+ },
+ {
+ "Species": "Chinstrap",
+ "Island": "Dream",
+ "Beak Length (mm)": 45.2,
+ "Beak Depth (mm)": 16.6,
+ "Flipper Length (mm)": 191,
+ "Body Mass (g)": 3250,
+ "Sex": "FEMALE",
+ "Index": 208
+ },
+ {
+ "Species": "Chinstrap",
+ "Island": "Dream",
+ "Beak Length (mm)": 49.3,
+ "Beak Depth (mm)": 19.9,
+ "Flipper Length (mm)": 203,
+ "Body Mass (g)": 4050,
+ "Sex": "MALE",
+ "Index": 209
+ },
+ {
+ "Species": "Chinstrap",
+ "Island": "Dream",
+ "Beak Length (mm)": 50.2,
+ "Beak Depth (mm)": 18.8,
+ "Flipper Length (mm)": 202,
+ "Body Mass (g)": 3800,
+ "Sex": "MALE",
+ "Index": 210
+ },
+ {
+ "Species": "Chinstrap",
+ "Island": "Dream",
+ "Beak Length (mm)": 45.6,
+ "Beak Depth (mm)": 19.4,
+ "Flipper Length (mm)": 194,
+ "Body Mass (g)": 3525,
+ "Sex": "FEMALE",
+ "Index": 211
+ },
+ {
+ "Species": "Chinstrap",
+ "Island": "Dream",
+ "Beak Length (mm)": 51.9,
+ "Beak Depth (mm)": 19.5,
+ "Flipper Length (mm)": 206,
+ "Body Mass (g)": 3950,
+ "Sex": "MALE",
+ "Index": 212
+ },
+ {
+ "Species": "Chinstrap",
+ "Island": "Dream",
+ "Beak Length (mm)": 46.8,
+ "Beak Depth (mm)": 16.5,
+ "Flipper Length (mm)": 189,
+ "Body Mass (g)": 3650,
+ "Sex": "FEMALE",
+ "Index": 213
+ },
+ {
+ "Species": "Chinstrap",
+ "Island": "Dream",
+ "Beak Length (mm)": 45.7,
+ "Beak Depth (mm)": 17,
+ "Flipper Length (mm)": 195,
+ "Body Mass (g)": 3650,
+ "Sex": "FEMALE",
+ "Index": 214
+ },
+ {
+ "Species": "Chinstrap",
+ "Island": "Dream",
+ "Beak Length (mm)": 55.8,
+ "Beak Depth (mm)": 19.8,
+ "Flipper Length (mm)": 207,
+ "Body Mass (g)": 4000,
+ "Sex": "MALE",
+ "Index": 215
+ },
+ {
+ "Species": "Chinstrap",
+ "Island": "Dream",
+ "Beak Length (mm)": 43.5,
+ "Beak Depth (mm)": 18.1,
+ "Flipper Length (mm)": 202,
+ "Body Mass (g)": 3400,
+ "Sex": "FEMALE",
+ "Index": 216
+ },
+ {
+ "Species": "Chinstrap",
+ "Island": "Dream",
+ "Beak Length (mm)": 49.6,
+ "Beak Depth (mm)": 18.2,
+ "Flipper Length (mm)": 193,
+ "Body Mass (g)": 3775,
+ "Sex": "MALE",
+ "Index": 217
+ },
+ {
+ "Species": "Chinstrap",
+ "Island": "Dream",
+ "Beak Length (mm)": 50.8,
+ "Beak Depth (mm)": 19,
+ "Flipper Length (mm)": 210,
+ "Body Mass (g)": 4100,
+ "Sex": "MALE",
+ "Index": 218
+ },
+ {
+ "Species": "Chinstrap",
+ "Island": "Dream",
+ "Beak Length (mm)": 50.2,
+ "Beak Depth (mm)": 18.7,
+ "Flipper Length (mm)": 198,
+ "Body Mass (g)": 3775,
+ "Sex": "FEMALE",
+ "Index": 219
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Torgersen",
+ "Beak Length (mm)": 39.1,
+ "Beak Depth (mm)": 18.7,
+ "Flipper Length (mm)": 181,
+ "Body Mass (g)": 3750,
+ "Sex": "MALE",
+ "Index": 0
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Torgersen",
+ "Beak Length (mm)": 39.5,
+ "Beak Depth (mm)": 17.4,
+ "Flipper Length (mm)": 186,
+ "Body Mass (g)": 3800,
+ "Sex": "FEMALE",
+ "Index": 1
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Torgersen",
+ "Beak Length (mm)": 40.3,
+ "Beak Depth (mm)": 18,
+ "Flipper Length (mm)": 195,
+ "Body Mass (g)": 3250,
+ "Sex": "FEMALE",
+ "Index": 2
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Torgersen",
+ "Beak Length (mm)": null,
+ "Beak Depth (mm)": null,
+ "Flipper Length (mm)": null,
+ "Body Mass (g)": null,
+ "Sex": "",
+ "Index": 3
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Torgersen",
+ "Beak Length (mm)": 36.7,
+ "Beak Depth (mm)": 19.3,
+ "Flipper Length (mm)": 193,
+ "Body Mass (g)": 3450,
+ "Sex": "FEMALE",
+ "Index": 4
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Torgersen",
+ "Beak Length (mm)": 39.3,
+ "Beak Depth (mm)": 20.6,
+ "Flipper Length (mm)": 190,
+ "Body Mass (g)": 3650,
+ "Sex": "MALE",
+ "Index": 5
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Torgersen",
+ "Beak Length (mm)": 38.9,
+ "Beak Depth (mm)": 17.8,
+ "Flipper Length (mm)": 181,
+ "Body Mass (g)": 3625,
+ "Sex": "FEMALE",
+ "Index": 6
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Torgersen",
+ "Beak Length (mm)": 39.2,
+ "Beak Depth (mm)": 19.6,
+ "Flipper Length (mm)": 195,
+ "Body Mass (g)": 4675,
+ "Sex": "MALE",
+ "Index": 7
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Torgersen",
+ "Beak Length (mm)": 34.1,
+ "Beak Depth (mm)": 18.1,
+ "Flipper Length (mm)": 193,
+ "Body Mass (g)": 3475,
+ "Sex": "",
+ "Index": 8
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Torgersen",
+ "Beak Length (mm)": 42,
+ "Beak Depth (mm)": 20.2,
+ "Flipper Length (mm)": 190,
+ "Body Mass (g)": 4250,
+ "Sex": "",
+ "Index": 9
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Torgersen",
+ "Beak Length (mm)": 37.8,
+ "Beak Depth (mm)": 17.1,
+ "Flipper Length (mm)": 186,
+ "Body Mass (g)": 3300,
+ "Sex": "",
+ "Index": 10
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Torgersen",
+ "Beak Length (mm)": 37.8,
+ "Beak Depth (mm)": 17.3,
+ "Flipper Length (mm)": 180,
+ "Body Mass (g)": 3700,
+ "Sex": "",
+ "Index": 11
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Torgersen",
+ "Beak Length (mm)": 41.1,
+ "Beak Depth (mm)": 17.6,
+ "Flipper Length (mm)": 182,
+ "Body Mass (g)": 3200,
+ "Sex": "FEMALE",
+ "Index": 12
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Torgersen",
+ "Beak Length (mm)": 38.6,
+ "Beak Depth (mm)": 21.2,
+ "Flipper Length (mm)": 191,
+ "Body Mass (g)": 3800,
+ "Sex": "MALE",
+ "Index": 13
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Torgersen",
+ "Beak Length (mm)": 34.6,
+ "Beak Depth (mm)": 21.1,
+ "Flipper Length (mm)": 198,
+ "Body Mass (g)": 4400,
+ "Sex": "MALE",
+ "Index": 14
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Torgersen",
+ "Beak Length (mm)": 36.6,
+ "Beak Depth (mm)": 17.8,
+ "Flipper Length (mm)": 185,
+ "Body Mass (g)": 3700,
+ "Sex": "FEMALE",
+ "Index": 15
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Torgersen",
+ "Beak Length (mm)": 38.7,
+ "Beak Depth (mm)": 19,
+ "Flipper Length (mm)": 195,
+ "Body Mass (g)": 3450,
+ "Sex": "FEMALE",
+ "Index": 16
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Torgersen",
+ "Beak Length (mm)": 42.5,
+ "Beak Depth (mm)": 20.7,
+ "Flipper Length (mm)": 197,
+ "Body Mass (g)": 4500,
+ "Sex": "MALE",
+ "Index": 17
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Torgersen",
+ "Beak Length (mm)": 34.4,
+ "Beak Depth (mm)": 18.4,
+ "Flipper Length (mm)": 184,
+ "Body Mass (g)": 3325,
+ "Sex": "FEMALE",
+ "Index": 18
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Torgersen",
+ "Beak Length (mm)": 46,
+ "Beak Depth (mm)": 21.5,
+ "Flipper Length (mm)": 194,
+ "Body Mass (g)": 4200,
+ "Sex": "MALE",
+ "Index": 19
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Torgersen",
+ "Beak Length (mm)": 35.9,
+ "Beak Depth (mm)": 16.6,
+ "Flipper Length (mm)": 190,
+ "Body Mass (g)": 3050,
+ "Sex": "FEMALE",
+ "Index": 68
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Torgersen",
+ "Beak Length (mm)": 41.8,
+ "Beak Depth (mm)": 19.4,
+ "Flipper Length (mm)": 198,
+ "Body Mass (g)": 4450,
+ "Sex": "MALE",
+ "Index": 69
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Torgersen",
+ "Beak Length (mm)": 33.5,
+ "Beak Depth (mm)": 19,
+ "Flipper Length (mm)": 190,
+ "Body Mass (g)": 3600,
+ "Sex": "FEMALE",
+ "Index": 70
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Torgersen",
+ "Beak Length (mm)": 39.7,
+ "Beak Depth (mm)": 18.4,
+ "Flipper Length (mm)": 190,
+ "Body Mass (g)": 3900,
+ "Sex": "MALE",
+ "Index": 71
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Torgersen",
+ "Beak Length (mm)": 39.6,
+ "Beak Depth (mm)": 17.2,
+ "Flipper Length (mm)": 196,
+ "Body Mass (g)": 3550,
+ "Sex": "FEMALE",
+ "Index": 72
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Torgersen",
+ "Beak Length (mm)": 45.8,
+ "Beak Depth (mm)": 18.9,
+ "Flipper Length (mm)": 197,
+ "Body Mass (g)": 4150,
+ "Sex": "MALE",
+ "Index": 73
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Torgersen",
+ "Beak Length (mm)": 35.5,
+ "Beak Depth (mm)": 17.5,
+ "Flipper Length (mm)": 190,
+ "Body Mass (g)": 3700,
+ "Sex": "FEMALE",
+ "Index": 74
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Torgersen",
+ "Beak Length (mm)": 42.8,
+ "Beak Depth (mm)": 18.5,
+ "Flipper Length (mm)": 195,
+ "Body Mass (g)": 4250,
+ "Sex": "MALE",
+ "Index": 75
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Torgersen",
+ "Beak Length (mm)": 40.9,
+ "Beak Depth (mm)": 16.8,
+ "Flipper Length (mm)": 191,
+ "Body Mass (g)": 3700,
+ "Sex": "FEMALE",
+ "Index": 76
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Torgersen",
+ "Beak Length (mm)": 37.2,
+ "Beak Depth (mm)": 19.4,
+ "Flipper Length (mm)": 184,
+ "Body Mass (g)": 3900,
+ "Sex": "MALE",
+ "Index": 77
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Torgersen",
+ "Beak Length (mm)": 36.2,
+ "Beak Depth (mm)": 16.1,
+ "Flipper Length (mm)": 187,
+ "Body Mass (g)": 3550,
+ "Sex": "FEMALE",
+ "Index": 78
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Torgersen",
+ "Beak Length (mm)": 42.1,
+ "Beak Depth (mm)": 19.1,
+ "Flipper Length (mm)": 195,
+ "Body Mass (g)": 4000,
+ "Sex": "MALE",
+ "Index": 79
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Torgersen",
+ "Beak Length (mm)": 34.6,
+ "Beak Depth (mm)": 17.2,
+ "Flipper Length (mm)": 189,
+ "Body Mass (g)": 3200,
+ "Sex": "FEMALE",
+ "Index": 80
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Torgersen",
+ "Beak Length (mm)": 42.9,
+ "Beak Depth (mm)": 17.6,
+ "Flipper Length (mm)": 196,
+ "Body Mass (g)": 4700,
+ "Sex": "MALE",
+ "Index": 81
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Torgersen",
+ "Beak Length (mm)": 36.7,
+ "Beak Depth (mm)": 18.8,
+ "Flipper Length (mm)": 187,
+ "Body Mass (g)": 3800,
+ "Sex": "FEMALE",
+ "Index": 82
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Torgersen",
+ "Beak Length (mm)": 35.1,
+ "Beak Depth (mm)": 19.4,
+ "Flipper Length (mm)": 193,
+ "Body Mass (g)": 4200,
+ "Sex": "MALE",
+ "Index": 83
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Torgersen",
+ "Beak Length (mm)": 38.6,
+ "Beak Depth (mm)": 17,
+ "Flipper Length (mm)": 188,
+ "Body Mass (g)": 2900,
+ "Sex": "FEMALE",
+ "Index": 116
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Torgersen",
+ "Beak Length (mm)": 37.3,
+ "Beak Depth (mm)": 20.5,
+ "Flipper Length (mm)": 199,
+ "Body Mass (g)": 3775,
+ "Sex": "MALE",
+ "Index": 117
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Torgersen",
+ "Beak Length (mm)": 35.7,
+ "Beak Depth (mm)": 17,
+ "Flipper Length (mm)": 189,
+ "Body Mass (g)": 3350,
+ "Sex": "FEMALE",
+ "Index": 118
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Torgersen",
+ "Beak Length (mm)": 41.1,
+ "Beak Depth (mm)": 18.6,
+ "Flipper Length (mm)": 189,
+ "Body Mass (g)": 3325,
+ "Sex": "MALE",
+ "Index": 119
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Torgersen",
+ "Beak Length (mm)": 36.2,
+ "Beak Depth (mm)": 17.2,
+ "Flipper Length (mm)": 187,
+ "Body Mass (g)": 3150,
+ "Sex": "FEMALE",
+ "Index": 120
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Torgersen",
+ "Beak Length (mm)": 37.7,
+ "Beak Depth (mm)": 19.8,
+ "Flipper Length (mm)": 198,
+ "Body Mass (g)": 3500,
+ "Sex": "MALE",
+ "Index": 121
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Torgersen",
+ "Beak Length (mm)": 40.2,
+ "Beak Depth (mm)": 17,
+ "Flipper Length (mm)": 176,
+ "Body Mass (g)": 3450,
+ "Sex": "FEMALE",
+ "Index": 122
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Torgersen",
+ "Beak Length (mm)": 41.4,
+ "Beak Depth (mm)": 18.5,
+ "Flipper Length (mm)": 202,
+ "Body Mass (g)": 3875,
+ "Sex": "MALE",
+ "Index": 123
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Torgersen",
+ "Beak Length (mm)": 35.2,
+ "Beak Depth (mm)": 15.9,
+ "Flipper Length (mm)": 186,
+ "Body Mass (g)": 3050,
+ "Sex": "FEMALE",
+ "Index": 124
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Torgersen",
+ "Beak Length (mm)": 40.6,
+ "Beak Depth (mm)": 19,
+ "Flipper Length (mm)": 199,
+ "Body Mass (g)": 4000,
+ "Sex": "MALE",
+ "Index": 125
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Torgersen",
+ "Beak Length (mm)": 38.8,
+ "Beak Depth (mm)": 17.6,
+ "Flipper Length (mm)": 191,
+ "Body Mass (g)": 3275,
+ "Sex": "FEMALE",
+ "Index": 126
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Torgersen",
+ "Beak Length (mm)": 41.5,
+ "Beak Depth (mm)": 18.3,
+ "Flipper Length (mm)": 195,
+ "Body Mass (g)": 4300,
+ "Sex": "MALE",
+ "Index": 127
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Torgersen",
+ "Beak Length (mm)": 39,
+ "Beak Depth (mm)": 17.1,
+ "Flipper Length (mm)": 191,
+ "Body Mass (g)": 3050,
+ "Sex": "FEMALE",
+ "Index": 128
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Torgersen",
+ "Beak Length (mm)": 44.1,
+ "Beak Depth (mm)": 18,
+ "Flipper Length (mm)": 210,
+ "Body Mass (g)": 4000,
+ "Sex": "MALE",
+ "Index": 129
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Torgersen",
+ "Beak Length (mm)": 38.5,
+ "Beak Depth (mm)": 17.9,
+ "Flipper Length (mm)": 190,
+ "Body Mass (g)": 3325,
+ "Sex": "FEMALE",
+ "Index": 130
+ },
+ {
+ "Species": "Adelie",
+ "Island": "Torgersen",
+ "Beak Length (mm)": 43.1,
+ "Beak Depth (mm)": 19.2,
+ "Flipper Length (mm)": 197,
+ "Body Mass (g)": 3500,
+ "Sex": "MALE",
+ "Index": 131
+ }
+ ],
+ "transform": [
+ {"type": "project", "fields": ["Species", "Island"]},
+ {
+ "type": "window",
+ "ops": ["row_number"],
+ "fields": [null],
+ "as": ["index"],
+ "sort": {"field": "Island", "order": "ascending"}
+ }
+ ]
+ },
+ {
+ "name": "placement",
+ "transform": [
+ {
+ "type": "sequence",
+ "start": 1,
+ "stop": {"signal": "dataLength+1"},
+ "as": "index"
+ },
+ {
+ "type": "formula",
+ "as": "wholeCirc",
+ "expr": "totalLength/dataLength"
+ },
+ {
+ "type": "window",
+ "ops": ["sum"],
+ "fields": ["wholeCirc"],
+ "as": ["cumWholeCirc"]
+ },
+ {
+ "type": "formula",
+ "as": "row",
+ "expr": "datum.cumWholeCirc 344Total Seats
\ No newline at end of file
diff --git a/testdata/deneb/sankey-chart.vg.json b/testdata/deneb/sankey-chart.vg.json
new file mode 100644
index 0000000..c0063e6
--- /dev/null
+++ b/testdata/deneb/sankey-chart.vg.json
@@ -0,0 +1,477 @@
+{
+ "$schema": "https://vega.github.io/schema/vega/v5.json",
+ "description": "Sankey Chart by David Bacci: https://www.linkedin.com/in/davbacci/",
+ "width": 1000,
+ "height": 800,
+ "padding": {"bottom": 20, "left": 20, "right": 30, "top": 40},
+ "title": {
+ "text": "Microsoft's FY23 Q2 Income Statement",
+ "color": "#005ca5",
+ "fontSize": 32,
+ "dy": 0,
+ "fontWeight": "bold",
+ "offset": 30
+ },
+ "background": "#fafafa",
+ "signals": [
+ {
+ "name": "standardGap",
+ "value": 14,
+ "description": "Gap as a percentage of full domain"
+ },
+ {
+ "name": "base",
+ "value": "center",
+ "description": "How to stack(center or zero)"
+ }
+ ],
+ "data": [
+ {
+ "name": "input",
+ "values": [
+ {
+ "category": "Server Products & Cloud",
+ "stack": 1,
+ "sort": 1,
+ "labels": "left"
+ },
+ {
+ "category": "Enterprise Services",
+ "stack": 1,
+ "sort": 2,
+ "labels": "left",
+ "gap": 20
+ },
+ {
+ "category": "Office Products",
+ "stack": 1,
+ "sort": 3,
+ "labels": "left"
+ },
+ {"category": "LinkedIn", "stack": 1, "sort": 4, "labels": "left"},
+ {"category": "Other", "stack": 1, "sort": 5, "labels": "left"},
+ {"category": "Windows", "stack": 1, "sort": 6, "labels": "left"},
+ {"category": "Gaming", "stack": 1, "sort": 7, "labels": "left"},
+ {
+ "category": "Search & News Advertising",
+ "stack": 1,
+ "sort": 8,
+ "labels": "left"
+ },
+ {"category": "Devices", "stack": 1, "sort": 9, "labels": "left"},
+ {"category": "Intelligent Cloud", "stack": 2, "sort": 1},
+ {"category": "Productivity", "stack": 2, "sort": 2},
+ {"category": "Personal Computing", "stack": 2, "sort": 3},
+ {"category": "Revenue", "stack": 3},
+ {"category": "Gross Profit", "stack": 4, "sort": 1, "gap": 30},
+ {"category": "Cost of Revenue", "stack": 4, "sort": 2, "gap": 30},
+ {"category": "Operating Profit", "stack": 5, "sort": 1, "gap": 60},
+ {"category": "Operating Expenses", "stack": 5, "sort": 2, "gap": 30},
+ {"category": "Product Costs", "stack": 5, "sort": 3, "gap": 20},
+ {"category": "Service Costs", "stack": 5, "sort": 4, "gap": 20},
+ {"category": "Net Profit", "stack": 6, "sort": 1, "gap": 0},
+ {"category": "Tax", "stack": 6, "sort": 2, "gap": 0},
+ {"category": "R&D", "stack": 6, "sort": 3, "gap": 20},
+ {"category": "S&M", "stack": 6, "sort": 4, "gap": 0},
+ {"category": "G&A", "stack": 6, "sort": 5, "gap": 0},
+ {
+ "source": "Server Products & Cloud",
+ "destination": "Intelligent Cloud",
+ "value": 19.6
+ },
+ {
+ "source": "Enterprise Services",
+ "destination": "Intelligent Cloud",
+ "value": 1.9
+ },
+ {
+ "source": "Office Products",
+ "destination": "Productivity",
+ "value": 11.8
+ },
+ {"source": "LinkedIn", "destination": "Productivity", "value": 3.9},
+ {"source": "Other", "destination": "Productivity", "value": 1.3},
+ {
+ "source": "Windows",
+ "destination": "Personal Computing",
+ "value": 4.8
+ },
+ {"source": "Gaming", "destination": "Personal Computing", "value": 4.8},
+ {
+ "source": "Search & News Advertising",
+ "destination": "Personal Computing",
+ "value": 3.2
+ },
+ {
+ "source": "Devices",
+ "destination": "Personal Computing",
+ "value": 1.4
+ },
+ {
+ "source": "Intelligent Cloud",
+ "destination": "Revenue",
+ "value": 21.5
+ },
+ {"source": "Productivity", "destination": "Revenue", "value": 17},
+ {
+ "source": "Personal Computing",
+ "destination": "Revenue",
+ "value": 14.2
+ },
+ {"source": "Revenue", "destination": "Gross Profit", "value": 35.2},
+ {"source": "Revenue", "destination": "Cost of Revenue", "value": 17.5},
+ {
+ "source": "Gross Profit",
+ "destination": "Operating Profit",
+ "value": 20.4
+ },
+ {
+ "source": "Gross Profit",
+ "destination": "Operating Expenses",
+ "value": 14.8
+ },
+ {
+ "source": "Cost of Revenue",
+ "destination": "Product Costs",
+ "value": 5.7
+ },
+ {
+ "source": "Cost of Revenue",
+ "destination": "Service Costs",
+ "value": 11.8
+ },
+ {
+ "source": "Operating Profit",
+ "destination": "Net Profit",
+ "value": 16.4
+ },
+ {"source": "Operating Profit", "destination": "Tax", "value": 3.9},
+ {"source": "Operating Expenses", "destination": "R&D", "value": 6.8},
+ {"source": "Operating Expenses", "destination": "S&M", "value": 5.7},
+ {"source": "Operating Expenses", "destination": "G&A", "value": 2.3}
+ ]
+ },
+ {
+ "name": "stacks",
+ "source": "input",
+ "transform": [
+ {"type": "filter", "expr": "datum.source != null"},
+ {"type": "formula", "as": "end", "expr": "['source','destination']"},
+ {
+ "type": "formula",
+ "as": "name",
+ "expr": "[ datum.source,datum.destination]"
+ },
+ {"type": "project", "fields": ["end", "name", "value"]},
+ {"type": "flatten", "fields": ["end", "name"]},
+ {
+ "type": "lookup",
+ "from": "input",
+ "key": "category",
+ "values": ["stack", "sort", "gap", "labels"],
+ "fields": ["name"],
+ "as": ["stack", "sort", "gap", "labels"]
+ },
+ {
+ "type": "aggregate",
+ "fields": ["value", "stack", "sort", "gap", "labels"],
+ "groupby": ["end", "name"],
+ "ops": ["sum", "max", "max", "max", "max"],
+ "as": ["value", "stack", "sort", "gap", "labels"]
+ },
+ {
+ "type": "aggregate",
+ "fields": ["value", "stack", "sort", "gap", "labels"],
+ "groupby": ["name"],
+ "ops": ["max", "max", "max", "max", "max"],
+ "as": ["value", "stack", "sort", "gap", "labels"]
+ },
+ {"type": "formula", "as": "gap", "expr": "datum.gap?datum.gap:0"}
+ ]
+ },
+ {
+ "name": "maxValue",
+ "source": ["stacks"],
+ "transform": [
+ {
+ "type": "aggregate",
+ "fields": ["value"],
+ "groupby": ["stack"],
+ "ops": ["sum"],
+ "as": ["value"]
+ },
+ {
+ "type": "aggregate",
+ "fields": ["value"],
+ "ops": ["max"],
+ "as": ["value"]
+ }
+ ]
+ },
+ {
+ "name": "plottedStacks",
+ "source": ["stacks"],
+ "transform": [
+ {
+ "type": "formula",
+ "as": "spacer",
+ "expr": " (data('maxValue')[0].value/100)*(standardGap+datum.gap)"
+ },
+ {"type": "formula", "as": "type", "expr": "['data','spacer']"},
+ {
+ "type": "formula",
+ "as": "spacedValue",
+ "expr": "[datum.value,datum.spacer]"
+ },
+ {"type": "flatten", "fields": ["type", "spacedValue"]},
+ {
+ "type": "stack",
+ "groupby": ["stack"],
+ "sort": {"field": "sort", "order": "descending"},
+ "field": "spacedValue",
+ "offset": {"signal": "base"}
+ },
+ {"type": "formula", "expr": "((datum.value)/2)+datum.y0", "as": "yc"}
+ ]
+ },
+ {
+ "name": "finalTable",
+ "source": ["plottedStacks"],
+ "transform": [{"type": "filter", "expr": "datum.type == 'data'"}]
+ },
+ {
+ "name": "linkTable",
+ "source": ["input"],
+ "transform": [
+ {"type": "filter", "expr": "datum.source != null"},
+ {
+ "type": "lookup",
+ "from": "finalTable",
+ "key": "name",
+ "values": ["y0", "y1", "stack", "sort"],
+ "fields": ["source"],
+ "as": ["sourceStacky0", "sourceStacky1", "sourceStack", "sourceSort"]
+ },
+ {
+ "type": "lookup",
+ "from": "finalTable",
+ "key": "name",
+ "values": ["y0", "y1", "stack", "sort"],
+ "fields": ["destination"],
+ "as": [
+ "destinationStacky0",
+ "destinationStacky1",
+ "destinationStack",
+ "destinationSort"
+ ]
+ },
+ {
+ "type": "stack",
+ "groupby": ["source"],
+ "sort": {"field": "destinationSort", "order": "descending"},
+ "field": "value",
+ "offset": "zero",
+ "as": ["syi0", "syi1"]
+ },
+ {
+ "type": "formula",
+ "expr": "datum.syi0+datum.sourceStacky0",
+ "as": "sy0"
+ },
+ {"type": "formula", "expr": "datum.sy0+datum.value", "as": "sy1"},
+ {
+ "type": "stack",
+ "groupby": ["destination"],
+ "sort": {"field": "sourceSort", "order": "descending"},
+ "field": "value",
+ "offset": "zero",
+ "as": ["dyi0", "dyi1"]
+ },
+ {
+ "type": "formula",
+ "expr": "datum.dyi0+datum.destinationStacky0",
+ "as": "dy0"
+ },
+ {"type": "formula", "expr": "datum.dy0+datum.value", "as": "dy1"},
+ {"type": "formula", "expr": "((datum.value)/2)+datum.sy0", "as": "syc"},
+ {"type": "formula", "expr": "((datum.value)/2)+datum.dy0", "as": "dyc"},
+ {
+ "type": "linkpath",
+ "orient": "horizontal",
+ "shape": "diagonal",
+ "sourceY": {"expr": "scale('y', datum.syc)"},
+ "sourceX": {
+ "expr": "scale('x', toNumber( datum.sourceStack))+ bandwidth('x')"
+ },
+ "targetY": {"expr": "scale('y', datum.dyc)"},
+ "targetX": {"expr": "scale('x', datum.destinationStack)"}
+ },
+ {
+ "type": "formula",
+ "expr": "range('y')[0]-scale('y', datum.value)",
+ "as": "strokeWidth"
+ }
+ ]
+ }
+ ],
+ "scales": [
+ {
+ "name": "x",
+ "type": "band",
+ "range": "width",
+ "domain": {"data": "finalTable", "field": "stack"},
+ "paddingInner": 0.88
+ },
+ {
+ "name": "y",
+ "type": "linear",
+ "range": "height",
+ "domain": {"data": "finalTable", "field": "y1"},
+ "reverse": false
+ },
+ {
+ "name": "color",
+ "type": "ordinal",
+ "range": {"scheme": "rainbow"},
+ "domain": {"data": "stacks", "field": "name"}
+ }
+ ],
+ "marks": [
+ {
+ "type": "rect",
+ "from": {"data": "finalTable"},
+ "encode": {
+ "update": {
+ "x": {"scale": "x", "field": "stack"},
+ "width": {"scale": "x", "band": 1},
+ "y": {"scale": "y", "field": "y0"},
+ "y2": {"scale": "y", "field": "y1"},
+ "fill": {"scale": "color", "field": "name"},
+ "fillOpacity": {"value": 0.75},
+ "strokeWidth": {"value": 0},
+ "stroke": {"scale": "color", "field": "name"}
+ },
+ "hover": {
+ "tooltip": {
+ "signal": "{'Name':datum.name, 'Value':format(datum.value, '$') + 'B'}"
+ },
+ "fillOpacity": {"value": 1}
+ }
+ }
+ },
+ {
+ "type": "path",
+ "name": "links",
+ "from": {"data": "linkTable"},
+ "clip": true,
+ "encode": {
+ "update": {
+ "strokeWidth": {"field": "strokeWidth"},
+ "path": {"field": "path"},
+ "strokeOpacity": {"signal": "0.3"},
+ "stroke": {"field": "destination", "scale": "color"}
+ },
+ "hover": {
+ "strokeOpacity": {"value": 1},
+ "tooltip": {
+ "signal": "{'Source':datum.source,'Destination':datum.destination, 'Value':format(datum.value, '$') + 'B'}"
+ }
+ }
+ }
+ },
+ {
+ "type": "group",
+ "name": "labelText",
+ "zindex": 1,
+ "from": {
+ "facet": {
+ "data": "finalTable",
+ "name": "labelFacet",
+ "groupby": ["name", "stack", "yc", "value", "labels"]
+ }
+ },
+ "clip": false,
+ "encode": {
+ "update": {
+ "strokeWidth": {"value": 1},
+ "stroke": {"value": "red"},
+ "x": {
+ "signal": "datum.labels=='left'?scale('x', datum.stack)-8 : scale('x', datum.stack) + (bandwidth('x')) +8"
+ },
+ "yc": {"scale": "y", "signal": "datum.yc"},
+ "width": {"signal": "0"},
+ "height": {"signal": "0"},
+ "fillOpacity": {"signal": "0.1"}
+ }
+ },
+ "marks": [
+ {
+ "type": "text",
+ "name": "heading",
+ "from": {"data": "labelFacet"},
+ "encode": {
+ "update": {
+ "x": {"value": 0},
+ "y": {"value": -2},
+ "text": {"field": "name"},
+ "align": {"signal": "datum.labels=='left'?'right':'left'"},
+ "fontWeight": {"value": "normal"}
+ }
+ }
+ },
+ {
+ "type": "text",
+ "name": "amount",
+ "from": {"data": "labelFacet"},
+ "encode": {
+ "update": {
+ "x": {"value": 0},
+ "y": {"value": 12},
+ "text": {"signal": " format(datum.value, '$') + 'B'"},
+ "align": {"signal": "datum.labels=='left'?'right':'left'"}
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "rect",
+ "from": {"data": "labelText"},
+ "encode": {
+ "update": {
+ "x": {"field": "bounds.x1", "offset": -2},
+ "x2": {"field": "bounds.x2", "offset": 2},
+ "y": {"field": "bounds.y1", "offset": -2},
+ "y2": {"field": "bounds.y2", "offset": 2},
+ "fill": {"value": "white"},
+ "opacity": {"value": 0.8},
+ "cornerRadius": {"value": 4}
+ }
+ }
+ },
+ {
+ "type": "text",
+ "data": [{}],
+ "encode": {
+ "update": {
+ "text": {
+ "value": [
+ "Source: https://www.microsoft.com/en-us/investor/earnings/fy-2023-q2/income-statements",
+ "Dataviz: David Bacci"
+ ]
+ },
+ "align": {"value": "left"},
+ "lineHeight": {"value": 16},
+ "fill": {"value": "#595959"},
+ "x": {"signal": "-150"},
+ "y": {"signal": "height +70"},
+ "fontSize": {"value": 10}
+ }
+ }
+ }
+ ],
+ "config": {
+ "view": {"stroke": "transparent"},
+ "text": {"fontSize": 13, "fill": "#333333"}
+ }
+}
\ No newline at end of file
diff --git a/testdata/deneb/sankey-chart.vg.json.svg b/testdata/deneb/sankey-chart.vg.json.svg
new file mode 100644
index 0000000..91b5094
--- /dev/null
+++ b/testdata/deneb/sankey-chart.vg.json.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/testdata/deneb/unit-bar-chart.vl.json b/testdata/deneb/unit-bar-chart.vl.json
new file mode 100644
index 0000000..0b54fc3
--- /dev/null
+++ b/testdata/deneb/unit-bar-chart.vl.json
@@ -0,0 +1,74 @@
+{
+ "$schema": "https://vega.github.io/schema/vega-lite/v5.json",
+ "description": "Bar chart with text labels. Set domain to make the frame cover the labels.",
+ "background": "#222431",
+ "padding": 30,
+ "data": {
+ "values": [
+ {"a": "A", "val": 14},
+ {"a": "B", "val": 17},
+ {"a": "C", "val": 13},
+ {"a": "D", "val": 19},
+ {"a": "E", "val": 33},
+ {"a": "F", "val": 29},
+ {"a": "G", "val": 31},
+ {"a": "H", "val": 26},
+ {"a": "I", "val": 23},
+ {"a": "J", "val": 19},
+ {"a": "K", "val": 25},
+ {"a": "L", "val": 21},
+ {"a": "M", "val": 19},
+ {"a": "N", "val": 14},
+ {"a": "O", "val": 17},
+ {"a": "P", "val": 12}
+ ]
+ },
+ "transform": [
+ {"calculate": "sequence(0,40)", "as": "sequence"},
+ {"calculate": "sequence(0,datum.val)", "as": "sequence2"},
+ {"flatten": ["sequence", "sequence2"]},
+ {"calculate": "1", "as": "b"},
+ {"calculate": "datum.sequence2 ==null? null:1", "as": "c"}
+ ],
+ "width": 700,
+ "height": 500,
+ "encoding": {
+ "x": {
+ "field": "a",
+ "type": "nominal",
+ "scale": {"paddingInner": 0.1, "paddingOuter": 0},
+ "axis": null
+ },
+ "y": {"field": "b", "type": "quantitative", "axis": null},
+ "color": {"field": "a", "legend": null, "scale": {"scheme": "plasma"}}
+ },
+ "layer": [
+ {
+ "mark": {"type": "bar", "stroke": "#222431", "strokeWidth": 3},
+ "encoding": {
+ "x": {
+ "field": "a",
+ "type": "nominal",
+ "scale": {"paddingInner": 0.1, "paddingOuter": 0},
+ "axis": null
+ },
+ "y": {"field": "b", "type": "quantitative", "axis": null},
+ "color": {"value": "#3f424e"}
+ }
+ },
+ {
+ "mark": {"type": "bar", "stroke": "#222431", "strokeWidth": 3},
+ "encoding": {
+ "x": {
+ "field": "a",
+ "type": "nominal",
+ "scale": {"paddingInner": 0.1, "paddingOuter": 0},
+ "axis": null
+ },
+ "y": {"field": "c", "type": "quantitative", "axis": null},
+ "color": {"field": "a", "legend": null, "scale": {"scheme": "sinebow"}}
+ }
+ }
+ ],
+ "config": {"view": {"stroke": "transparent"}}
+}
\ No newline at end of file
diff --git a/testdata/deneb/unit-bar-chart.vl.json.svg b/testdata/deneb/unit-bar-chart.vl.json.svg
new file mode 100644
index 0000000..27e7f2b
--- /dev/null
+++ b/testdata/deneb/unit-bar-chart.vl.json.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/testdata/deneb/unit-circle-chart.vg.json b/testdata/deneb/unit-circle-chart.vg.json
new file mode 100644
index 0000000..1616290
--- /dev/null
+++ b/testdata/deneb/unit-circle-chart.vg.json
@@ -0,0 +1,145 @@
+{
+ "$schema": "https://vega.github.io/schema/vega/v5.json",
+ "width": 300,
+ "height": 300,
+ "padding": 50,
+ "background": "#222431",
+ "signals": [
+ {
+ "name": "textGradient",
+ "update": "{gradient: 'linear', stops: [{offset: 0, color: '#14d8cc'}, {offset: 1, color: '#4c8bee'}]}"
+ },
+ {"name": "percent", "update": "83"}
+ ],
+ "data": [
+ {
+ "name": "back",
+ "values": [],
+ "transform": [
+ {"type": "sequence", "start": 0, "stop": 100, "step": 1, "as": "val"},
+ {"type": "formula", "expr": "1", "as": "t"},
+ {
+ "type": "pie",
+ "field": "t",
+ "startAngle": {"signal": "0"},
+ "endAngle": {"signal": "2*PI"}
+ }
+ ]
+ },
+ {
+ "name": "front",
+ "values": [],
+ "transform": [
+ {
+ "type": "sequence",
+ "start": 0,
+ "stop": {"signal": "percent"},
+ "step": 1,
+ "as": "val"
+ },
+ {"type": "formula", "expr": "1", "as": "t"},
+ {
+ "type": "pie",
+ "field": "t",
+ "startAngle": {"signal": "0"},
+ "endAngle": {"signal": "((2*PI)/100)*percent"}
+ }
+ ]
+ }
+ ],
+ "scales": [
+ {
+ "name": "color",
+ "type": "linear",
+ "domain": {"data": "back", "field": "val"},
+ "range": ["#14d8cc", "#4c8bee", "#6567ee", "#b533d2", "#b533d2"]
+ }
+ ],
+ "marks": [
+ {
+ "type": "arc",
+ "from": {"data": "back"},
+ "encode": {
+ "enter": {
+ "fill": {"value": "#3f424e"},
+ "x": {"signal": "width / 2"},
+ "y": {"signal": "height / 2"}
+ },
+ "update": {
+ "startAngle": {"field": "startAngle"},
+ "endAngle": {"field": "endAngle"},
+ "padAngle": {"signal": "0.015"},
+ "innerRadius": {"signal": "(width / 2)-15"},
+ "outerRadius": {"signal": "width / 2"}
+ }
+ }
+ },
+ {
+ "type": "arc",
+ "from": {"data": "front"},
+ "encode": {
+ "enter": {
+ "fill": {"scale": "color", "field": "val"},
+ "x": {"signal": "width / 2"},
+ "y": {"signal": "height / 2"}
+ },
+ "update": {
+ "startAngle": {"field": "startAngle"},
+ "endAngle": {"field": "endAngle"},
+ "padAngle": {"signal": "0.015"},
+ "innerRadius": {"signal": "(width / 2)-15"},
+ "outerRadius": {"signal": "width / 2"}
+ }
+ }
+ },
+ {
+ "type": "arc",
+ "data": [{"a": 1}],
+ "encode": {
+ "enter": {
+ "fill": {"value": "#3f424e"},
+ "x": {"signal": "width / 2"},
+ "y": {"signal": "height / 2"}
+ },
+ "update": {
+ "startAngle": {"signal": "0"},
+ "endAngle": {"signal": "2*PI"},
+ "innerRadius": {"signal": "(width / 2)-25"},
+ "outerRadius": {"signal": "(width / 2)-20"}
+ }
+ }
+ },
+ {
+ "type": "text",
+ "data": [{}],
+ "encode": {
+ "update": {
+ "text": {"signal": "percent + '%'"},
+ "align": {"value": "center"},
+ "fontWeight": {"value": "bold"},
+ "fill": {"signal": "textGradient"},
+ "x": {"signal": "width /2"},
+ "y": {"signal": "width /2"},
+ "dy": {"value": 10},
+ "fontSize": {"value": 70}
+ }
+ }
+ },
+ {
+ "type": "text",
+ "data": [{}],
+ "encode": {
+ "update": {
+ "text": {"value": "on target"},
+ "align": {"value": "center"},
+ "fontWeight": {"value": "bold"},
+ "fill": {"value": "#9092a1"},
+ "x": {"signal": "width /2"},
+ "y": {"signal": "width /2"},
+ "dy": {"value": 40},
+ "fontSize": {"value": 30}
+ }
+ }
+ }
+ ]
+}
\ No newline at end of file
diff --git a/testdata/deneb/unit-circle-chart.vg.json.svg b/testdata/deneb/unit-circle-chart.vg.json.svg
new file mode 100644
index 0000000..a43f0af
--- /dev/null
+++ b/testdata/deneb/unit-circle-chart.vg.json.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/testdata/deneb/variance-chart.vl.json b/testdata/deneb/variance-chart.vl.json
new file mode 100644
index 0000000..4113419
--- /dev/null
+++ b/testdata/deneb/variance-chart.vl.json
@@ -0,0 +1,302 @@
+{
+ "$schema": "https://vega.github.io/schema/vega-lite/v5.json",
+ "data": {
+ "name": "dataset",
+ "values": [
+ { "BU": "Channel Partners", "Actual": 200, "Forecast": 100, "Index": 1 },
+ { "BU": "Enterprise", "Actual": 150, "Forecast": 100, "Index": 3 },
+ { "BU": "Government", "Actual": 40, "Forecast": 66, "Index": 2 },
+ { "BU": "Midmarket", "Actual": 205, "Forecast": 97, "Index": 4 },
+ { "BU": "Small Business", "Actual": 38, "Forecast": 18, "Index": 5 },
+ { "BU": "Channel Partners", "Actual": 200, "Forecast": 100, "Index": 1 },
+ { "BU": "Enterprise", "Actual": 150, "Forecast": 100, "Index": 3 },
+ { "BU": "Government", "Actual": 40, "Forecast": 66, "Index": 2 },
+ { "BU": "Midmarket", "Actual": 205, "Forecast": 97, "Index": 4 },
+ { "BU": "Small Business", "Actual": 38, "Forecast": 18, "Index": 5 },
+ { "BU": "Channel Partners", "Actual": 200, "Forecast": 100, "Index": 1 },
+ { "BU": "Enterprise", "Actual": 150, "Forecast": 100, "Index": 3 },
+ { "BU": "Government", "Actual": 40, "Forecast": 66, "Index": 2 },
+ { "BU": "Midmarket", "Actual": 205, "Forecast": 97, "Index": 4 },
+ { "BU": "Small Business", "Actual": 38, "Forecast": 18, "Index": 5 }
+ ]
+ },
+ "transform": [
+ {
+ "aggregate": [
+ { "op": "sum", "field": "Actual", "as": "Actual" },
+ { "op": "sum", "field": "Forecast", "as": "Forecast" }
+ ],
+ "groupby": ["BU"]
+ },
+ {
+ "calculate": "datum['Actual'] - datum['Forecast']",
+ "as": "Variance Absolute"
+ },
+ {
+ "calculate": "datum['Actual']/datum['Forecast']-1",
+ "as": "Variance Percent"
+ }
+ ],
+ "hconcat": [
+ {
+ "width": 350,
+ "height": { "step": 50 },
+ "view": { "stroke": "transparent" },
+ "encoding": {
+ "color": {
+ "type": "nominal",
+ "scale": {
+ "domain": ["Actual", "Forecast"],
+ "range": ["#404040", "silver"]
+ },
+ "legend": { "title": null, "orient": "top" }
+ },
+ "y": {
+ "field": "BU",
+ "type": "nominal",
+ "sort": { "field": "Index", "op": "sum", "order": "ascending" },
+ "axis": { "domain": false, "offset": 0, "ticks": false, "title": "" }
+ },
+ "x": {
+ "type": "quantitative",
+ "axis": {
+ "domain": false,
+ "labels": false,
+ "title": null,
+ "ticks": false,
+ "gridWidth": 1,
+ "gridColor": {
+ "condition": { "test": "datum.value === 0", "value": "#605E5C" },
+ "value": "#transparent"
+ }
+ }
+ }
+ },
+ "layer": [
+ {
+ "mark": {
+ "type": "bar",
+ "tooltip": true,
+ "cornerRadius": 3,
+ "yOffset": 12,
+ "height": { "band": 0.5 }
+ },
+ "encoding": {
+ "x": { "field": "Forecast" },
+ "color": { "datum": "Forecast" },
+ "opacity": {
+ "condition": {
+ "test": { "field": "__selected__", "equal": "off" },
+ "value": 0.3
+ }
+ }
+ }
+ },
+ {
+ "mark": {
+ "type": "bar",
+ "tooltip": true,
+ "cornerRadius": 3,
+ "yOffset": 0,
+ "height": { "band": 0.5 }
+ },
+ "encoding": {
+ "x": { "field": "Actual" },
+ "color": { "datum": "Actual" },
+ "opacity": {
+ "condition": {
+ "test": { "field": "__selected__", "equal": "off" },
+ "value": 0.3
+ }
+ }
+ }
+ },
+ {
+ "mark": {
+ "type": "text",
+ "align": "right",
+ "dx": -5,
+ "color": "white"
+ },
+ "encoding": {
+ "x": { "field": "Actual" },
+ "text": { "field": "Actual", "type": "quantitative", "format": "," }
+ }
+ }
+ ]
+ },
+ {
+ "width": 150,
+ "height": { "step": 50 },
+ "view": { "stroke": "transparent" },
+ "encoding": {
+ "y": {
+ "field": "BU",
+ "type": "nominal",
+ "sort": { "field": "Index", "op": "sum", "order": "ascending" },
+ "axis": null
+ },
+ "x": {
+ "field": "Variance Absolute",
+ "type": "quantitative",
+ "axis": {
+ "domain": false,
+ "labels": false,
+ "title": null,
+ "ticks": false,
+ "gridWidth": 1,
+ "gridColor": {
+ "condition": { "test": "datum.value === 0", "value": "#605E5C" },
+ "value": "#transparent"
+ }
+ }
+ }
+ },
+ "layer": [
+ {
+ "mark": {
+ "type": "bar",
+ "tooltip": true,
+ "cornerRadius": 3,
+ "yOffset": 0,
+ "height": { "band": 0.5 }
+ },
+ "encoding": {
+ "fill": {
+ "condition": {
+ "test": "datum['Variance Absolute'] < 0",
+ "value": "#b92929"
+ },
+ "value": "#329351"
+ },
+ "opacity": {
+ "condition": {
+ "test": { "field": "__selected__", "equal": "off" },
+ "value": 0.3
+ }
+ }
+ }
+ },
+ {
+ "mark": {
+ "type": "text",
+ "align": {
+ "expr": "datum['Variance Absolute'] < 0 ? 'right' : 'left'"
+ },
+ "dx": { "expr": "datum['Variance Absolute'] < 0 ? -5 : 5" }
+ },
+ "encoding": {
+ "text": {
+ "field": "Variance Absolute",
+ "type": "quantitative",
+ "format": "+,"
+ }
+ }
+ }
+ ]
+ },
+ {
+ "width": 150,
+ "height": { "step": 50 },
+ "view": { "stroke": "transparent" },
+ "encoding": {
+ "y": {
+ "field": "BU",
+ "type": "nominal",
+ "sort": { "field": "Index", "op": "sum", "order": "ascending" },
+ "axis": null
+ },
+ "x": {
+ "field": "Variance Percent",
+ "type": "quantitative",
+ "axis": {
+ "domain": false,
+ "labels": false,
+ "title": null,
+ "ticks": false,
+ "gridColor": {
+ "condition": { "test": "datum.value === 0", "value": "#605E5C" },
+ "value": "#transparent"
+ }
+ }
+ }
+ },
+ "layer": [
+ {
+ "mark": { "type": "rule", "tooltip": true },
+ "encoding": {
+ "strokeWidth": { "value": 2 },
+ "stroke": {
+ "condition": {
+ "test": "datum['Variance Absolute'] < 0",
+ "value": "#b92929"
+ },
+ "value": "#329351"
+ },
+ "opacity": {
+ "condition": {
+ "test": { "field": "__selected__", "equal": "off" },
+ "value": 0.3
+ }
+ }
+ }
+ },
+ {
+ "mark": { "type": "circle", "tooltip": true },
+ "encoding": {
+ "size": { "value": 100 },
+ "color": {
+ "condition": {
+ "test": "datum['Variance Absolute'] < 0",
+ "value": "#b92929"
+ },
+ "value": "#329351"
+ },
+ "opacity": {
+ "condition": {
+ "test": { "field": "__selected__", "equal": "off" },
+ "value": 0.3
+ },
+ "value": 1
+ }
+ }
+ },
+ {
+ "mark": {
+ "type": "text",
+ "align": {
+ "expr": "datum['Variance Absolute'] < 0 ? 'right' : 'left'"
+ },
+ "dx": { "expr": "datum['Variance Absolute'] < 0 ? -10 : 10" }
+ },
+ "encoding": {
+ "text": {
+ "field": "Variance Percent",
+ "type": "quantitative",
+ "format": "+.1%"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "config": {
+ "view": { "stroke": "transparent" },
+ "padding": { "left": 5, "top": 20, "right": 5, "bottom": 5 },
+ "font": "Segoe UI",
+ "axis": {
+ "labelFontSize": 12,
+ "labelPadding": 10,
+ "offset": 5,
+ "labelFont": "Segoe UI",
+ "labelColor": "#252423"
+ },
+ "text": { "fontSize": 12, "font": "Segoe UI", "color": "#605E5C" },
+ "concat": { "spacing": 50 },
+ "legend": {
+ "labelFontSize": 12,
+ "labelFont": "Segoe UI",
+ "labelColor": "#605E5C"
+ }
+ }
+}
diff --git a/testdata/deneb/variance-chart.vl.json.svg b/testdata/deneb/variance-chart.vl.json.svg
new file mode 100644
index 0000000..9db6722
--- /dev/null
+++ b/testdata/deneb/variance-chart.vl.json.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/testdata/deneb/waffle-charts.vl.json b/testdata/deneb/waffle-charts.vl.json
new file mode 100644
index 0000000..47cd01b
--- /dev/null
+++ b/testdata/deneb/waffle-charts.vl.json
@@ -0,0 +1,4591 @@
+{
+ "$schema": "https://vega.github.io/schema/vega-lite/v5.json",
+ "data": {
+ "name": "dataset",
+ "values": [
+ {
+ "Name": "citroen ds-21 pallas",
+ "Miles_per_Gallon": null,
+ "Cylinders": 4,
+ "Displacement": 133,
+ "Horsepower": 115,
+ "Weight_in_lbs": 3090,
+ "Acceleration": 17.5,
+ "Year": "01 January 1970",
+ "Origin": "Europe"
+ },
+ {
+ "Name": "toyota corona mark ii",
+ "Miles_per_Gallon": 24,
+ "Cylinders": 4,
+ "Displacement": 113,
+ "Horsepower": 95,
+ "Weight_in_lbs": 2372,
+ "Acceleration": 15,
+ "Year": "01 January 1970",
+ "Origin": "Japan"
+ },
+ {
+ "Name": "datsun pl510",
+ "Miles_per_Gallon": 27,
+ "Cylinders": 4,
+ "Displacement": 97,
+ "Horsepower": 88,
+ "Weight_in_lbs": 2130,
+ "Acceleration": 14.5,
+ "Year": "01 January 1970",
+ "Origin": "Japan"
+ },
+ {
+ "Name": "volkswagen 1131 deluxe sedan",
+ "Miles_per_Gallon": 26,
+ "Cylinders": 4,
+ "Displacement": 97,
+ "Horsepower": 46,
+ "Weight_in_lbs": 1835,
+ "Acceleration": 20.5,
+ "Year": "01 January 1970",
+ "Origin": "Europe"
+ },
+ {
+ "Name": "peugeot 504",
+ "Miles_per_Gallon": 25,
+ "Cylinders": 4,
+ "Displacement": 110,
+ "Horsepower": 87,
+ "Weight_in_lbs": 2672,
+ "Acceleration": 17.5,
+ "Year": "01 January 1970",
+ "Origin": "Europe"
+ },
+ {
+ "Name": "audi 100 ls",
+ "Miles_per_Gallon": 24,
+ "Cylinders": 4,
+ "Displacement": 107,
+ "Horsepower": 90,
+ "Weight_in_lbs": 2430,
+ "Acceleration": 14.5,
+ "Year": "01 January 1970",
+ "Origin": "Europe"
+ },
+ {
+ "Name": "saab 99e",
+ "Miles_per_Gallon": 25,
+ "Cylinders": 4,
+ "Displacement": 104,
+ "Horsepower": 95,
+ "Weight_in_lbs": 2375,
+ "Acceleration": 17.5,
+ "Year": "01 January 1970",
+ "Origin": "Europe"
+ },
+ {
+ "Name": "bmw 2002",
+ "Miles_per_Gallon": 26,
+ "Cylinders": 4,
+ "Displacement": 121,
+ "Horsepower": 113,
+ "Weight_in_lbs": 2234,
+ "Acceleration": 12.5,
+ "Year": "01 January 1970",
+ "Origin": "Europe"
+ },
+ {
+ "Name": "datsun pl510",
+ "Miles_per_Gallon": 27,
+ "Cylinders": 4,
+ "Displacement": 97,
+ "Horsepower": 88,
+ "Weight_in_lbs": 2130,
+ "Acceleration": 14.5,
+ "Year": "01 January 1971",
+ "Origin": "Japan"
+ },
+ {
+ "Name": "chevrolet vega 2300",
+ "Miles_per_Gallon": 28,
+ "Cylinders": 4,
+ "Displacement": 140,
+ "Horsepower": 90,
+ "Weight_in_lbs": 2264,
+ "Acceleration": 15.5,
+ "Year": "01 January 1971",
+ "Origin": "USA"
+ },
+ {
+ "Name": "toyota corona",
+ "Miles_per_Gallon": 25,
+ "Cylinders": 4,
+ "Displacement": 113,
+ "Horsepower": 95,
+ "Weight_in_lbs": 2228,
+ "Acceleration": 14,
+ "Year": "01 January 1971",
+ "Origin": "Japan"
+ },
+ {
+ "Name": "ford pinto",
+ "Miles_per_Gallon": 25,
+ "Cylinders": 4,
+ "Displacement": 98,
+ "Horsepower": null,
+ "Weight_in_lbs": 2046,
+ "Acceleration": 19,
+ "Year": "01 January 1971",
+ "Origin": "USA"
+ },
+ {
+ "Name": "volkswagen super beetle 117",
+ "Miles_per_Gallon": null,
+ "Cylinders": 4,
+ "Displacement": 97,
+ "Horsepower": 48,
+ "Weight_in_lbs": 1978,
+ "Acceleration": 20,
+ "Year": "01 January 1971",
+ "Origin": "Europe"
+ },
+ {
+ "Name": "chevrolet vega (sw)",
+ "Miles_per_Gallon": 22,
+ "Cylinders": 4,
+ "Displacement": 140,
+ "Horsepower": 72,
+ "Weight_in_lbs": 2408,
+ "Acceleration": 19,
+ "Year": "01 January 1971",
+ "Origin": "USA"
+ },
+ {
+ "Name": "mercury capri 2000",
+ "Miles_per_Gallon": 23,
+ "Cylinders": 4,
+ "Displacement": 122,
+ "Horsepower": 86,
+ "Weight_in_lbs": 2220,
+ "Acceleration": 14,
+ "Year": "01 January 1971",
+ "Origin": "USA"
+ },
+ {
+ "Name": "opel 1900",
+ "Miles_per_Gallon": 28,
+ "Cylinders": 4,
+ "Displacement": 116,
+ "Horsepower": 90,
+ "Weight_in_lbs": 2123,
+ "Acceleration": 14,
+ "Year": "01 January 1971",
+ "Origin": "Europe"
+ },
+ {
+ "Name": "peugeot 304",
+ "Miles_per_Gallon": 30,
+ "Cylinders": 4,
+ "Displacement": 79,
+ "Horsepower": 70,
+ "Weight_in_lbs": 2074,
+ "Acceleration": 19.5,
+ "Year": "01 January 1971",
+ "Origin": "Europe"
+ },
+ {
+ "Name": "fiat 124b",
+ "Miles_per_Gallon": 30,
+ "Cylinders": 4,
+ "Displacement": 88,
+ "Horsepower": 76,
+ "Weight_in_lbs": 2065,
+ "Acceleration": 14.5,
+ "Year": "01 January 1971",
+ "Origin": "Europe"
+ },
+ {
+ "Name": "toyota corolla 1200",
+ "Miles_per_Gallon": 31,
+ "Cylinders": 4,
+ "Displacement": 71,
+ "Horsepower": 65,
+ "Weight_in_lbs": 1773,
+ "Acceleration": 19,
+ "Year": "01 January 1971",
+ "Origin": "Japan"
+ },
+ {
+ "Name": "datsun 1200",
+ "Miles_per_Gallon": 35,
+ "Cylinders": 4,
+ "Displacement": 72,
+ "Horsepower": 69,
+ "Weight_in_lbs": 1613,
+ "Acceleration": 18,
+ "Year": "01 January 1971",
+ "Origin": "Japan"
+ },
+ {
+ "Name": "volkswagen model 111",
+ "Miles_per_Gallon": 27,
+ "Cylinders": 4,
+ "Displacement": 97,
+ "Horsepower": 60,
+ "Weight_in_lbs": 1834,
+ "Acceleration": 19,
+ "Year": "01 January 1971",
+ "Origin": "Europe"
+ },
+ {
+ "Name": "plymouth cricket",
+ "Miles_per_Gallon": 26,
+ "Cylinders": 4,
+ "Displacement": 91,
+ "Horsepower": 70,
+ "Weight_in_lbs": 1955,
+ "Acceleration": 20.5,
+ "Year": "01 January 1971",
+ "Origin": "USA"
+ },
+ {
+ "Name": "toyota corona hardtop",
+ "Miles_per_Gallon": 24,
+ "Cylinders": 4,
+ "Displacement": 113,
+ "Horsepower": 95,
+ "Weight_in_lbs": 2278,
+ "Acceleration": 15.5,
+ "Year": "01 January 1972",
+ "Origin": "Japan"
+ },
+ {
+ "Name": "dodge colt hardtop",
+ "Miles_per_Gallon": 25,
+ "Cylinders": 4,
+ "Displacement": 98,
+ "Horsepower": 80,
+ "Weight_in_lbs": 2126,
+ "Acceleration": 17,
+ "Year": "01 January 1972",
+ "Origin": "USA"
+ },
+ {
+ "Name": "volkswagen type 3",
+ "Miles_per_Gallon": 23,
+ "Cylinders": 4,
+ "Displacement": 97,
+ "Horsepower": 54,
+ "Weight_in_lbs": 2254,
+ "Acceleration": 23.5,
+ "Year": "01 January 1972",
+ "Origin": "Europe"
+ },
+ {
+ "Name": "chevrolet vega",
+ "Miles_per_Gallon": 20,
+ "Cylinders": 4,
+ "Displacement": 140,
+ "Horsepower": 90,
+ "Weight_in_lbs": 2408,
+ "Acceleration": 19.5,
+ "Year": "01 January 1972",
+ "Origin": "USA"
+ },
+ {
+ "Name": "ford pinto runabout",
+ "Miles_per_Gallon": 21,
+ "Cylinders": 4,
+ "Displacement": 122,
+ "Horsepower": 86,
+ "Weight_in_lbs": 2226,
+ "Acceleration": 16.5,
+ "Year": "01 January 1972",
+ "Origin": "USA"
+ },
+ {
+ "Name": "volvo 145e (sw)",
+ "Miles_per_Gallon": 18,
+ "Cylinders": 4,
+ "Displacement": 121,
+ "Horsepower": 112,
+ "Weight_in_lbs": 2933,
+ "Acceleration": 14.5,
+ "Year": "01 January 1972",
+ "Origin": "Europe"
+ },
+ {
+ "Name": "volkswagen 411 (sw)",
+ "Miles_per_Gallon": 22,
+ "Cylinders": 4,
+ "Displacement": 121,
+ "Horsepower": 76,
+ "Weight_in_lbs": 2511,
+ "Acceleration": 18,
+ "Year": "01 January 1972",
+ "Origin": "Europe"
+ },
+ {
+ "Name": "peugeot 504 (sw)",
+ "Miles_per_Gallon": 21,
+ "Cylinders": 4,
+ "Displacement": 120,
+ "Horsepower": 87,
+ "Weight_in_lbs": 2979,
+ "Acceleration": 19.5,
+ "Year": "01 January 1972",
+ "Origin": "Europe"
+ },
+ {
+ "Name": "renault 12 (sw)",
+ "Miles_per_Gallon": 26,
+ "Cylinders": 4,
+ "Displacement": 96,
+ "Horsepower": 69,
+ "Weight_in_lbs": 2189,
+ "Acceleration": 18,
+ "Year": "01 January 1972",
+ "Origin": "Europe"
+ },
+ {
+ "Name": "ford pinto (sw)",
+ "Miles_per_Gallon": 22,
+ "Cylinders": 4,
+ "Displacement": 122,
+ "Horsepower": 86,
+ "Weight_in_lbs": 2395,
+ "Acceleration": 16,
+ "Year": "01 January 1972",
+ "Origin": "USA"
+ },
+ {
+ "Name": "datsun 510 (sw)",
+ "Miles_per_Gallon": 28,
+ "Cylinders": 4,
+ "Displacement": 97,
+ "Horsepower": 92,
+ "Weight_in_lbs": 2288,
+ "Acceleration": 17,
+ "Year": "01 January 1972",
+ "Origin": "Japan"
+ },
+ {
+ "Name": "toyouta corona mark ii (sw)",
+ "Miles_per_Gallon": 23,
+ "Cylinders": 4,
+ "Displacement": 120,
+ "Horsepower": 97,
+ "Weight_in_lbs": 2506,
+ "Acceleration": 14.5,
+ "Year": "01 January 1972",
+ "Origin": "Japan"
+ },
+ {
+ "Name": "dodge colt (sw)",
+ "Miles_per_Gallon": 28,
+ "Cylinders": 4,
+ "Displacement": 98,
+ "Horsepower": 80,
+ "Weight_in_lbs": 2164,
+ "Acceleration": 15,
+ "Year": "01 January 1972",
+ "Origin": "USA"
+ },
+ {
+ "Name": "toyota corolla 1600 (sw)",
+ "Miles_per_Gallon": 27,
+ "Cylinders": 4,
+ "Displacement": 97,
+ "Horsepower": 88,
+ "Weight_in_lbs": 2100,
+ "Acceleration": 16.5,
+ "Year": "01 January 1972",
+ "Origin": "Japan"
+ },
+ {
+ "Name": "volkswagen super beetle",
+ "Miles_per_Gallon": 26,
+ "Cylinders": 4,
+ "Displacement": 97,
+ "Horsepower": 46,
+ "Weight_in_lbs": 1950,
+ "Acceleration": 21,
+ "Year": "01 January 1973",
+ "Origin": "Europe"
+ },
+ {
+ "Name": "toyota carina",
+ "Miles_per_Gallon": 20,
+ "Cylinders": 4,
+ "Displacement": 97,
+ "Horsepower": 88,
+ "Weight_in_lbs": 2279,
+ "Acceleration": 19,
+ "Year": "01 January 1973",
+ "Origin": "Japan"
+ },
+ {
+ "Name": "chevrolet vega",
+ "Miles_per_Gallon": 21,
+ "Cylinders": 4,
+ "Displacement": 140,
+ "Horsepower": 72,
+ "Weight_in_lbs": 2401,
+ "Acceleration": 19.5,
+ "Year": "01 January 1973",
+ "Origin": "USA"
+ },
+ {
+ "Name": "datsun 610",
+ "Miles_per_Gallon": 22,
+ "Cylinders": 4,
+ "Displacement": 108,
+ "Horsepower": 94,
+ "Weight_in_lbs": 2379,
+ "Acceleration": 16.5,
+ "Year": "01 January 1973",
+ "Origin": "Japan"
+ },
+ {
+ "Name": "ford pinto",
+ "Miles_per_Gallon": 19,
+ "Cylinders": 4,
+ "Displacement": 122,
+ "Horsepower": 85,
+ "Weight_in_lbs": 2310,
+ "Acceleration": 18.5,
+ "Year": "01 January 1973",
+ "Origin": "USA"
+ },
+ {
+ "Name": "fiat 124 sport coupe",
+ "Miles_per_Gallon": 26,
+ "Cylinders": 4,
+ "Displacement": 98,
+ "Horsepower": 90,
+ "Weight_in_lbs": 2265,
+ "Acceleration": 15.5,
+ "Year": "01 January 1973",
+ "Origin": "Europe"
+ },
+ {
+ "Name": "fiat 128",
+ "Miles_per_Gallon": 29,
+ "Cylinders": 4,
+ "Displacement": 68,
+ "Horsepower": 49,
+ "Weight_in_lbs": 1867,
+ "Acceleration": 19.5,
+ "Year": "01 January 1973",
+ "Origin": "Europe"
+ },
+ {
+ "Name": "opel manta",
+ "Miles_per_Gallon": 24,
+ "Cylinders": 4,
+ "Displacement": 116,
+ "Horsepower": 75,
+ "Weight_in_lbs": 2158,
+ "Acceleration": 15.5,
+ "Year": "01 January 1973",
+ "Origin": "Europe"
+ },
+ {
+ "Name": "audi 100ls",
+ "Miles_per_Gallon": 20,
+ "Cylinders": 4,
+ "Displacement": 114,
+ "Horsepower": 91,
+ "Weight_in_lbs": 2582,
+ "Acceleration": 14,
+ "Year": "01 January 1973",
+ "Origin": "Europe"
+ },
+ {
+ "Name": "volvo 144ea",
+ "Miles_per_Gallon": 19,
+ "Cylinders": 4,
+ "Displacement": 121,
+ "Horsepower": 112,
+ "Weight_in_lbs": 2868,
+ "Acceleration": 15.5,
+ "Year": "01 January 1973",
+ "Origin": "Europe"
+ },
+ {
+ "Name": "saab 99le",
+ "Miles_per_Gallon": 24,
+ "Cylinders": 4,
+ "Displacement": 121,
+ "Horsepower": 110,
+ "Weight_in_lbs": 2660,
+ "Acceleration": 14,
+ "Year": "01 January 1973",
+ "Origin": "Europe"
+ },
+ {
+ "Name": "datsun b210",
+ "Miles_per_Gallon": 31,
+ "Cylinders": 4,
+ "Displacement": 79,
+ "Horsepower": 67,
+ "Weight_in_lbs": 1950,
+ "Acceleration": 19,
+ "Year": "01 January 1974",
+ "Origin": "Japan"
+ },
+ {
+ "Name": "ford pinto",
+ "Miles_per_Gallon": 26,
+ "Cylinders": 4,
+ "Displacement": 122,
+ "Horsepower": 80,
+ "Weight_in_lbs": 2451,
+ "Acceleration": 16.5,
+ "Year": "01 January 1974",
+ "Origin": "USA"
+ },
+ {
+ "Name": "toyota corolla 1200",
+ "Miles_per_Gallon": 32,
+ "Cylinders": 4,
+ "Displacement": 71,
+ "Horsepower": 65,
+ "Weight_in_lbs": 1836,
+ "Acceleration": 21,
+ "Year": "01 January 1974",
+ "Origin": "Japan"
+ },
+ {
+ "Name": "chevrolet vega",
+ "Miles_per_Gallon": 25,
+ "Cylinders": 4,
+ "Displacement": 140,
+ "Horsepower": 75,
+ "Weight_in_lbs": 2542,
+ "Acceleration": 17,
+ "Year": "01 January 1974",
+ "Origin": "USA"
+ },
+ {
+ "Name": "audi fox",
+ "Miles_per_Gallon": 29,
+ "Cylinders": 4,
+ "Displacement": 98,
+ "Horsepower": 83,
+ "Weight_in_lbs": 2219,
+ "Acceleration": 16.5,
+ "Year": "01 January 1974",
+ "Origin": "Europe"
+ },
+ {
+ "Name": "volkswagen dasher",
+ "Miles_per_Gallon": 26,
+ "Cylinders": 4,
+ "Displacement": 79,
+ "Horsepower": 67,
+ "Weight_in_lbs": 1963,
+ "Acceleration": 15.5,
+ "Year": "01 January 1974",
+ "Origin": "Europe"
+ },
+ {
+ "Name": "opel manta",
+ "Miles_per_Gallon": 26,
+ "Cylinders": 4,
+ "Displacement": 97,
+ "Horsepower": 78,
+ "Weight_in_lbs": 2300,
+ "Acceleration": 14.5,
+ "Year": "01 January 1974",
+ "Origin": "Europe"
+ },
+ {
+ "Name": "toyota corona",
+ "Miles_per_Gallon": 31,
+ "Cylinders": 4,
+ "Displacement": 76,
+ "Horsepower": 52,
+ "Weight_in_lbs": 1649,
+ "Acceleration": 16.5,
+ "Year": "01 January 1974",
+ "Origin": "Japan"
+ },
+ {
+ "Name": "datsun 710",
+ "Miles_per_Gallon": 32,
+ "Cylinders": 4,
+ "Displacement": 83,
+ "Horsepower": 61,
+ "Weight_in_lbs": 2003,
+ "Acceleration": 19,
+ "Year": "01 January 1974",
+ "Origin": "Japan"
+ },
+ {
+ "Name": "dodge colt",
+ "Miles_per_Gallon": 28,
+ "Cylinders": 4,
+ "Displacement": 90,
+ "Horsepower": 75,
+ "Weight_in_lbs": 2125,
+ "Acceleration": 14.5,
+ "Year": "01 January 1974",
+ "Origin": "USA"
+ },
+ {
+ "Name": "fiat 128",
+ "Miles_per_Gallon": 24,
+ "Cylinders": 4,
+ "Displacement": 90,
+ "Horsepower": 75,
+ "Weight_in_lbs": 2108,
+ "Acceleration": 15.5,
+ "Year": "01 January 1974",
+ "Origin": "Europe"
+ },
+ {
+ "Name": "fiat 124 tc",
+ "Miles_per_Gallon": 26,
+ "Cylinders": 4,
+ "Displacement": 116,
+ "Horsepower": 75,
+ "Weight_in_lbs": 2246,
+ "Acceleration": 14,
+ "Year": "01 January 1974",
+ "Origin": "Europe"
+ },
+ {
+ "Name": "honda civic",
+ "Miles_per_Gallon": 24,
+ "Cylinders": 4,
+ "Displacement": 120,
+ "Horsepower": 97,
+ "Weight_in_lbs": 2489,
+ "Acceleration": 15,
+ "Year": "01 January 1974",
+ "Origin": "Japan"
+ },
+ {
+ "Name": "subaru",
+ "Miles_per_Gallon": 26,
+ "Cylinders": 4,
+ "Displacement": 108,
+ "Horsepower": 93,
+ "Weight_in_lbs": 2391,
+ "Acceleration": 15.5,
+ "Year": "01 January 1974",
+ "Origin": "Japan"
+ },
+ {
+ "Name": "fiat x1.9",
+ "Miles_per_Gallon": 31,
+ "Cylinders": 4,
+ "Displacement": 79,
+ "Horsepower": 67,
+ "Weight_in_lbs": 2000,
+ "Acceleration": 16,
+ "Year": "01 January 1974",
+ "Origin": "Europe"
+ },
+ {
+ "Name": "toyota corolla",
+ "Miles_per_Gallon": 29,
+ "Cylinders": 4,
+ "Displacement": 97,
+ "Horsepower": 75,
+ "Weight_in_lbs": 2171,
+ "Acceleration": 16,
+ "Year": "01 January 1975",
+ "Origin": "Japan"
+ },
+ {
+ "Name": "ford pinto",
+ "Miles_per_Gallon": 23,
+ "Cylinders": 4,
+ "Displacement": 140,
+ "Horsepower": 83,
+ "Weight_in_lbs": 2639,
+ "Acceleration": 17,
+ "Year": "01 January 1975",
+ "Origin": "USA"
+ },
+ {
+ "Name": "pontiac astro",
+ "Miles_per_Gallon": 23,
+ "Cylinders": 4,
+ "Displacement": 140,
+ "Horsepower": 78,
+ "Weight_in_lbs": 2592,
+ "Acceleration": 18.5,
+ "Year": "01 January 1975",
+ "Origin": "USA"
+ },
+ {
+ "Name": "toyota corona",
+ "Miles_per_Gallon": 24,
+ "Cylinders": 4,
+ "Displacement": 134,
+ "Horsepower": 96,
+ "Weight_in_lbs": 2702,
+ "Acceleration": 13.5,
+ "Year": "01 January 1975",
+ "Origin": "Japan"
+ },
+ {
+ "Name": "volkswagen dasher",
+ "Miles_per_Gallon": 25,
+ "Cylinders": 4,
+ "Displacement": 90,
+ "Horsepower": 71,
+ "Weight_in_lbs": 2223,
+ "Acceleration": 16.5,
+ "Year": "01 January 1975",
+ "Origin": "Europe"
+ },
+ {
+ "Name": "datsun 710",
+ "Miles_per_Gallon": 24,
+ "Cylinders": 4,
+ "Displacement": 119,
+ "Horsepower": 97,
+ "Weight_in_lbs": 2545,
+ "Acceleration": 17,
+ "Year": "01 January 1975",
+ "Origin": "Japan"
+ },
+ {
+ "Name": "volkswagen rabbit",
+ "Miles_per_Gallon": 29,
+ "Cylinders": 4,
+ "Displacement": 90,
+ "Horsepower": 70,
+ "Weight_in_lbs": 1937,
+ "Acceleration": 14,
+ "Year": "01 January 1975",
+ "Origin": "Europe"
+ },
+ {
+ "Name": "audi 100ls",
+ "Miles_per_Gallon": 23,
+ "Cylinders": 4,
+ "Displacement": 115,
+ "Horsepower": 95,
+ "Weight_in_lbs": 2694,
+ "Acceleration": 15,
+ "Year": "01 January 1975",
+ "Origin": "Europe"
+ },
+ {
+ "Name": "peugeot 504",
+ "Miles_per_Gallon": 23,
+ "Cylinders": 4,
+ "Displacement": 120,
+ "Horsepower": 88,
+ "Weight_in_lbs": 2957,
+ "Acceleration": 17,
+ "Year": "01 January 1975",
+ "Origin": "Europe"
+ },
+ {
+ "Name": "volvo 244dl",
+ "Miles_per_Gallon": 22,
+ "Cylinders": 4,
+ "Displacement": 121,
+ "Horsepower": 98,
+ "Weight_in_lbs": 2945,
+ "Acceleration": 14.5,
+ "Year": "01 January 1975",
+ "Origin": "Europe"
+ },
+ {
+ "Name": "saab 99le",
+ "Miles_per_Gallon": 25,
+ "Cylinders": 4,
+ "Displacement": 121,
+ "Horsepower": 115,
+ "Weight_in_lbs": 2671,
+ "Acceleration": 13.5,
+ "Year": "01 January 1975",
+ "Origin": "Europe"
+ },
+ {
+ "Name": "honda civic cvcc",
+ "Miles_per_Gallon": 33,
+ "Cylinders": 4,
+ "Displacement": 91,
+ "Horsepower": 53,
+ "Weight_in_lbs": 1795,
+ "Acceleration": 17.5,
+ "Year": "01 January 1975",
+ "Origin": "Japan"
+ },
+ {
+ "Name": "fiat 131",
+ "Miles_per_Gallon": 28,
+ "Cylinders": 4,
+ "Displacement": 107,
+ "Horsepower": 86,
+ "Weight_in_lbs": 2464,
+ "Acceleration": 15.5,
+ "Year": "01 January 1976",
+ "Origin": "Europe"
+ },
+ {
+ "Name": "opel 1900",
+ "Miles_per_Gallon": 25,
+ "Cylinders": 4,
+ "Displacement": 116,
+ "Horsepower": 81,
+ "Weight_in_lbs": 2220,
+ "Acceleration": 16.9,
+ "Year": "01 January 1976",
+ "Origin": "Europe"
+ },
+ {
+ "Name": "capri ii",
+ "Miles_per_Gallon": 25,
+ "Cylinders": 4,
+ "Displacement": 140,
+ "Horsepower": 92,
+ "Weight_in_lbs": 2572,
+ "Acceleration": 14.9,
+ "Year": "01 January 1976",
+ "Origin": "USA"
+ },
+ {
+ "Name": "dodge colt",
+ "Miles_per_Gallon": 26,
+ "Cylinders": 4,
+ "Displacement": 98,
+ "Horsepower": 79,
+ "Weight_in_lbs": 2255,
+ "Acceleration": 17.7,
+ "Year": "01 January 1976",
+ "Origin": "USA"
+ },
+ {
+ "Name": "renault 12tl",
+ "Miles_per_Gallon": 27,
+ "Cylinders": 4,
+ "Displacement": 101,
+ "Horsepower": 83,
+ "Weight_in_lbs": 2202,
+ "Acceleration": 15.3,
+ "Year": "01 January 1976",
+ "Origin": "Europe"
+ },
+ {
+ "Name": "chevrolet chevette",
+ "Miles_per_Gallon": 29,
+ "Cylinders": 4,
+ "Displacement": 85,
+ "Horsepower": 52,
+ "Weight_in_lbs": 2035,
+ "Acceleration": 22.2,
+ "Year": "01 January 1976",
+ "Origin": "USA"
+ },
+ {
+ "Name": "chevrolet woody",
+ "Miles_per_Gallon": 24,
+ "Cylinders": 4,
+ "Displacement": 98,
+ "Horsepower": 60,
+ "Weight_in_lbs": 2164,
+ "Acceleration": 22.1,
+ "Year": "01 January 1976",
+ "Origin": "USA"
+ },
+ {
+ "Name": "vw rabbit",
+ "Miles_per_Gallon": 29,
+ "Cylinders": 4,
+ "Displacement": 90,
+ "Horsepower": 70,
+ "Weight_in_lbs": 1937,
+ "Acceleration": 14.2,
+ "Year": "01 January 1976",
+ "Origin": "Europe"
+ },
+ {
+ "Name": "honda civic",
+ "Miles_per_Gallon": 33,
+ "Cylinders": 4,
+ "Displacement": 91,
+ "Horsepower": 53,
+ "Weight_in_lbs": 1795,
+ "Acceleration": 17.4,
+ "Year": "01 January 1976",
+ "Origin": "Japan"
+ },
+ {
+ "Name": "volkswagen rabbit",
+ "Miles_per_Gallon": 30,
+ "Cylinders": 4,
+ "Displacement": 97,
+ "Horsepower": 71,
+ "Weight_in_lbs": 1825,
+ "Acceleration": 12.2,
+ "Year": "01 January 1976",
+ "Origin": "Europe"
+ },
+ {
+ "Name": "datsun b-210",
+ "Miles_per_Gallon": 32,
+ "Cylinders": 4,
+ "Displacement": 85,
+ "Horsepower": 70,
+ "Weight_in_lbs": 1990,
+ "Acceleration": 17,
+ "Year": "01 January 1976",
+ "Origin": "Japan"
+ },
+ {
+ "Name": "toyota corolla",
+ "Miles_per_Gallon": 28,
+ "Cylinders": 4,
+ "Displacement": 97,
+ "Horsepower": 75,
+ "Weight_in_lbs": 2155,
+ "Acceleration": 16.4,
+ "Year": "01 January 1976",
+ "Origin": "Japan"
+ },
+ {
+ "Name": "ford pinto",
+ "Miles_per_Gallon": 26,
+ "Cylinders": 4,
+ "Displacement": 140,
+ "Horsepower": 72,
+ "Weight_in_lbs": 2565,
+ "Acceleration": 13.6,
+ "Year": "01 January 1976",
+ "Origin": "USA"
+ },
+ {
+ "Name": "volvo 245",
+ "Miles_per_Gallon": 20,
+ "Cylinders": 4,
+ "Displacement": 130,
+ "Horsepower": 102,
+ "Weight_in_lbs": 3150,
+ "Acceleration": 15.7,
+ "Year": "01 January 1976",
+ "Origin": "Europe"
+ },
+ {
+ "Name": "peugeot 504",
+ "Miles_per_Gallon": 19,
+ "Cylinders": 4,
+ "Displacement": 120,
+ "Horsepower": 88,
+ "Weight_in_lbs": 3270,
+ "Acceleration": 21.9,
+ "Year": "01 January 1976",
+ "Origin": "Europe"
+ },
+ {
+ "Name": "honda Accelerationord cvcc",
+ "Miles_per_Gallon": 32,
+ "Cylinders": 4,
+ "Displacement": 98,
+ "Horsepower": 68,
+ "Weight_in_lbs": 2045,
+ "Acceleration": 18.5,
+ "Year": "01 January 1977",
+ "Origin": "Japan"
+ },
+ {
+ "Name": "buick opel isuzu deluxe",
+ "Miles_per_Gallon": 30,
+ "Cylinders": 4,
+ "Displacement": 111,
+ "Horsepower": 80,
+ "Weight_in_lbs": 2155,
+ "Acceleration": 14.8,
+ "Year": "01 January 1977",
+ "Origin": "USA"
+ },
+ {
+ "Name": "renault 5 gtl",
+ "Miles_per_Gallon": 36,
+ "Cylinders": 4,
+ "Displacement": 79,
+ "Horsepower": 58,
+ "Weight_in_lbs": 1825,
+ "Acceleration": 18.6,
+ "Year": "01 January 1977",
+ "Origin": "Europe"
+ },
+ {
+ "Name": "plymouth arrow gs",
+ "Miles_per_Gallon": 26,
+ "Cylinders": 4,
+ "Displacement": 122,
+ "Horsepower": 96,
+ "Weight_in_lbs": 2300,
+ "Acceleration": 15.5,
+ "Year": "01 January 1977",
+ "Origin": "USA"
+ },
+ {
+ "Name": "datsun f-10 hatchback",
+ "Miles_per_Gallon": 34,
+ "Cylinders": 4,
+ "Displacement": 85,
+ "Horsepower": 70,
+ "Weight_in_lbs": 1945,
+ "Acceleration": 16.8,
+ "Year": "01 January 1977",
+ "Origin": "Japan"
+ },
+ {
+ "Name": "volkswagen rabbit custom",
+ "Miles_per_Gallon": 29,
+ "Cylinders": 4,
+ "Displacement": 97,
+ "Horsepower": 78,
+ "Weight_in_lbs": 1940,
+ "Acceleration": 14.5,
+ "Year": "01 January 1977",
+ "Origin": "Europe"
+ },
+ {
+ "Name": "pontiac sunbird coupe",
+ "Miles_per_Gallon": 24,
+ "Cylinders": 4,
+ "Displacement": 151,
+ "Horsepower": 88,
+ "Weight_in_lbs": 2740,
+ "Acceleration": 16,
+ "Year": "01 January 1977",
+ "Origin": "USA"
+ },
+ {
+ "Name": "toyota corolla liftback",
+ "Miles_per_Gallon": 26,
+ "Cylinders": 4,
+ "Displacement": 97,
+ "Horsepower": 75,
+ "Weight_in_lbs": 2265,
+ "Acceleration": 18.2,
+ "Year": "01 January 1977",
+ "Origin": "Japan"
+ },
+ {
+ "Name": "ford mustang ii 2+2",
+ "Miles_per_Gallon": 26,
+ "Cylinders": 4,
+ "Displacement": 140,
+ "Horsepower": 89,
+ "Weight_in_lbs": 2755,
+ "Acceleration": 15.8,
+ "Year": "01 January 1977",
+ "Origin": "USA"
+ },
+ {
+ "Name": "chevrolet chevette",
+ "Miles_per_Gallon": 30,
+ "Cylinders": 4,
+ "Displacement": 98,
+ "Horsepower": 63,
+ "Weight_in_lbs": 2051,
+ "Acceleration": 17,
+ "Year": "01 January 1977",
+ "Origin": "USA"
+ },
+ {
+ "Name": "dodge colt m/m",
+ "Miles_per_Gallon": 34,
+ "Cylinders": 4,
+ "Displacement": 98,
+ "Horsepower": 83,
+ "Weight_in_lbs": 2075,
+ "Acceleration": 15.9,
+ "Year": "01 January 1977",
+ "Origin": "USA"
+ },
+ {
+ "Name": "subaru dl",
+ "Miles_per_Gallon": 30,
+ "Cylinders": 4,
+ "Displacement": 97,
+ "Horsepower": 67,
+ "Weight_in_lbs": 1985,
+ "Acceleration": 16.4,
+ "Year": "01 January 1977",
+ "Origin": "Japan"
+ },
+ {
+ "Name": "volkswagen dasher",
+ "Miles_per_Gallon": 30,
+ "Cylinders": 4,
+ "Displacement": 97,
+ "Horsepower": 78,
+ "Weight_in_lbs": 2190,
+ "Acceleration": 14.1,
+ "Year": "01 January 1977",
+ "Origin": "Europe"
+ },
+ {
+ "Name": "bmw 320i",
+ "Miles_per_Gallon": 22,
+ "Cylinders": 4,
+ "Displacement": 121,
+ "Horsepower": 110,
+ "Weight_in_lbs": 2600,
+ "Acceleration": 12.8,
+ "Year": "01 January 1977",
+ "Origin": "Europe"
+ },
+ {
+ "Name": "volkswagen rabbit custom diesel",
+ "Miles_per_Gallon": 43,
+ "Cylinders": 4,
+ "Displacement": 90,
+ "Horsepower": 48,
+ "Weight_in_lbs": 1985,
+ "Acceleration": 21.5,
+ "Year": "01 January 1978",
+ "Origin": "Europe"
+ },
+ {
+ "Name": "ford fiesta",
+ "Miles_per_Gallon": 36,
+ "Cylinders": 4,
+ "Displacement": 98,
+ "Horsepower": 66,
+ "Weight_in_lbs": 1800,
+ "Acceleration": 14.4,
+ "Year": "01 January 1978",
+ "Origin": "USA"
+ },
+ {
+ "Name": "mazda glc deluxe",
+ "Miles_per_Gallon": 33,
+ "Cylinders": 4,
+ "Displacement": 78,
+ "Horsepower": 52,
+ "Weight_in_lbs": 1985,
+ "Acceleration": 19.4,
+ "Year": "01 January 1978",
+ "Origin": "Japan"
+ },
+ {
+ "Name": "datsun b210 gx",
+ "Miles_per_Gallon": 39,
+ "Cylinders": 4,
+ "Displacement": 85,
+ "Horsepower": 70,
+ "Weight_in_lbs": 2070,
+ "Acceleration": 18.6,
+ "Year": "01 January 1978",
+ "Origin": "Japan"
+ },
+ {
+ "Name": "honda civic cvcc",
+ "Miles_per_Gallon": 36,
+ "Cylinders": 4,
+ "Displacement": 91,
+ "Horsepower": 60,
+ "Weight_in_lbs": 1800,
+ "Acceleration": 16.4,
+ "Year": "01 January 1978",
+ "Origin": "Japan"
+ },
+ {
+ "Name": "ford fairmont (man)",
+ "Miles_per_Gallon": 25,
+ "Cylinders": 4,
+ "Displacement": 140,
+ "Horsepower": 88,
+ "Weight_in_lbs": 2720,
+ "Acceleration": 15.4,
+ "Year": "01 January 1978",
+ "Origin": "USA"
+ },
+ {
+ "Name": "chevrolet chevette",
+ "Miles_per_Gallon": 30,
+ "Cylinders": 4,
+ "Displacement": 98,
+ "Horsepower": 68,
+ "Weight_in_lbs": 2155,
+ "Acceleration": 16.5,
+ "Year": "01 January 1978",
+ "Origin": "USA"
+ },
+ {
+ "Name": "toyota corona",
+ "Miles_per_Gallon": 28,
+ "Cylinders": 4,
+ "Displacement": 134,
+ "Horsepower": 95,
+ "Weight_in_lbs": 2560,
+ "Acceleration": 14.2,
+ "Year": "01 January 1978",
+ "Origin": "Japan"
+ },
+ {
+ "Name": "datsun 510",
+ "Miles_per_Gallon": 27,
+ "Cylinders": 4,
+ "Displacement": 119,
+ "Horsepower": 97,
+ "Weight_in_lbs": 2300,
+ "Acceleration": 14.7,
+ "Year": "01 January 1978",
+ "Origin": "Japan"
+ },
+ {
+ "Name": "dodge omni",
+ "Miles_per_Gallon": 31,
+ "Cylinders": 4,
+ "Displacement": 105,
+ "Horsepower": 75,
+ "Weight_in_lbs": 2230,
+ "Acceleration": 14.5,
+ "Year": "01 January 1978",
+ "Origin": "USA"
+ },
+ {
+ "Name": "toyota celica gt liftback",
+ "Miles_per_Gallon": 21,
+ "Cylinders": 4,
+ "Displacement": 134,
+ "Horsepower": 95,
+ "Weight_in_lbs": 2515,
+ "Acceleration": 14.8,
+ "Year": "01 January 1978",
+ "Origin": "Japan"
+ },
+ {
+ "Name": "plymouth sapporo",
+ "Miles_per_Gallon": 23,
+ "Cylinders": 4,
+ "Displacement": 156,
+ "Horsepower": 105,
+ "Weight_in_lbs": 2745,
+ "Acceleration": 16.7,
+ "Year": "01 January 1978",
+ "Origin": "USA"
+ },
+ {
+ "Name": "oldsmobile starfire sx",
+ "Miles_per_Gallon": 24,
+ "Cylinders": 4,
+ "Displacement": 151,
+ "Horsepower": 85,
+ "Weight_in_lbs": 2855,
+ "Acceleration": 17.6,
+ "Year": "01 January 1978",
+ "Origin": "USA"
+ },
+ {
+ "Name": "datsun 200-sx",
+ "Miles_per_Gallon": 24,
+ "Cylinders": 4,
+ "Displacement": 119,
+ "Horsepower": 97,
+ "Weight_in_lbs": 2405,
+ "Acceleration": 14.9,
+ "Year": "01 January 1978",
+ "Origin": "Japan"
+ },
+ {
+ "Name": "saab 99gle",
+ "Miles_per_Gallon": 22,
+ "Cylinders": 4,
+ "Displacement": 121,
+ "Horsepower": 115,
+ "Weight_in_lbs": 2795,
+ "Acceleration": 15.7,
+ "Year": "01 January 1978",
+ "Origin": "Europe"
+ },
+ {
+ "Name": "volkswagen scirocco",
+ "Miles_per_Gallon": 32,
+ "Cylinders": 4,
+ "Displacement": 89,
+ "Horsepower": 71,
+ "Weight_in_lbs": 1990,
+ "Acceleration": 14.9,
+ "Year": "01 January 1978",
+ "Origin": "Europe"
+ },
+ {
+ "Name": "honda Accelerationord lx",
+ "Miles_per_Gallon": 30,
+ "Cylinders": 4,
+ "Displacement": 98,
+ "Horsepower": 68,
+ "Weight_in_lbs": 2135,
+ "Acceleration": 16.6,
+ "Year": "01 January 1978",
+ "Origin": "Japan"
+ },
+ {
+ "Name": "ford fairmont 4",
+ "Miles_per_Gallon": 22,
+ "Cylinders": 4,
+ "Displacement": 140,
+ "Horsepower": 88,
+ "Weight_in_lbs": 2890,
+ "Acceleration": 17.3,
+ "Year": "01 January 1979",
+ "Origin": "USA"
+ },
+ {
+ "Name": "vw rabbit custom",
+ "Miles_per_Gallon": 32,
+ "Cylinders": 4,
+ "Displacement": 89,
+ "Horsepower": 71,
+ "Weight_in_lbs": 1925,
+ "Acceleration": 14,
+ "Year": "01 January 1979",
+ "Origin": "Europe"
+ },
+ {
+ "Name": "maxda glc deluxe",
+ "Miles_per_Gallon": 34,
+ "Cylinders": 4,
+ "Displacement": 86,
+ "Horsepower": 65,
+ "Weight_in_lbs": 1975,
+ "Acceleration": 15.2,
+ "Year": "01 January 1979",
+ "Origin": "Japan"
+ },
+ {
+ "Name": "dodge colt hatchback custom",
+ "Miles_per_Gallon": 36,
+ "Cylinders": 4,
+ "Displacement": 98,
+ "Horsepower": 80,
+ "Weight_in_lbs": 1915,
+ "Acceleration": 14.4,
+ "Year": "01 January 1979",
+ "Origin": "USA"
+ },
+ {
+ "Name": "amc spirit dl",
+ "Miles_per_Gallon": 27,
+ "Cylinders": 4,
+ "Displacement": 121,
+ "Horsepower": 80,
+ "Weight_in_lbs": 2670,
+ "Acceleration": 15,
+ "Year": "01 January 1979",
+ "Origin": "USA"
+ },
+ {
+ "Name": "peugeot 504",
+ "Miles_per_Gallon": 27,
+ "Cylinders": 4,
+ "Displacement": 141,
+ "Horsepower": 71,
+ "Weight_in_lbs": 3190,
+ "Acceleration": 24.8,
+ "Year": "01 January 1979",
+ "Origin": "Europe"
+ },
+ {
+ "Name": "plymouth horizon",
+ "Miles_per_Gallon": 34,
+ "Cylinders": 4,
+ "Displacement": 105,
+ "Horsepower": 70,
+ "Weight_in_lbs": 2200,
+ "Acceleration": 13.2,
+ "Year": "01 January 1979",
+ "Origin": "USA"
+ },
+ {
+ "Name": "plymouth horizon tc3",
+ "Miles_per_Gallon": 34,
+ "Cylinders": 4,
+ "Displacement": 105,
+ "Horsepower": 70,
+ "Weight_in_lbs": 2150,
+ "Acceleration": 14.9,
+ "Year": "01 January 1979",
+ "Origin": "USA"
+ },
+ {
+ "Name": "datsun 210",
+ "Miles_per_Gallon": 32,
+ "Cylinders": 4,
+ "Displacement": 85,
+ "Horsepower": 65,
+ "Weight_in_lbs": 2020,
+ "Acceleration": 19.2,
+ "Year": "01 January 1979",
+ "Origin": "Japan"
+ },
+ {
+ "Name": "fiat strada custom",
+ "Miles_per_Gallon": 37,
+ "Cylinders": 4,
+ "Displacement": 91,
+ "Horsepower": 69,
+ "Weight_in_lbs": 2130,
+ "Acceleration": 14.7,
+ "Year": "01 January 1979",
+ "Origin": "Europe"
+ },
+ {
+ "Name": "buick skylark limited",
+ "Miles_per_Gallon": 28,
+ "Cylinders": 4,
+ "Displacement": 151,
+ "Horsepower": 90,
+ "Weight_in_lbs": 2670,
+ "Acceleration": 16,
+ "Year": "01 January 1979",
+ "Origin": "USA"
+ },
+ {
+ "Name": "pontiac phoenix",
+ "Miles_per_Gallon": 34,
+ "Cylinders": 4,
+ "Displacement": 151,
+ "Horsepower": 90,
+ "Weight_in_lbs": 2556,
+ "Acceleration": 13.2,
+ "Year": "01 January 1979",
+ "Origin": "USA"
+ },
+ {
+ "Name": "vw rabbit",
+ "Miles_per_Gallon": 42,
+ "Cylinders": 4,
+ "Displacement": 98,
+ "Horsepower": 76,
+ "Weight_in_lbs": 2144,
+ "Acceleration": 14.7,
+ "Year": "01 January 1980",
+ "Origin": "Europe"
+ },
+ {
+ "Name": "toyota corolla tercel",
+ "Miles_per_Gallon": 38,
+ "Cylinders": 4,
+ "Displacement": 89,
+ "Horsepower": 60,
+ "Weight_in_lbs": 1968,
+ "Acceleration": 18.8,
+ "Year": "01 January 1980",
+ "Origin": "Japan"
+ },
+ {
+ "Name": "chevrolet chevette",
+ "Miles_per_Gallon": 32,
+ "Cylinders": 4,
+ "Displacement": 98,
+ "Horsepower": 70,
+ "Weight_in_lbs": 2120,
+ "Acceleration": 15.5,
+ "Year": "01 January 1980",
+ "Origin": "USA"
+ },
+ {
+ "Name": "datsun 310",
+ "Miles_per_Gallon": 37,
+ "Cylinders": 4,
+ "Displacement": 86,
+ "Horsepower": 65,
+ "Weight_in_lbs": 2019,
+ "Acceleration": 16.4,
+ "Year": "01 January 1980",
+ "Origin": "Japan"
+ },
+ {
+ "Name": "chevrolet citation",
+ "Miles_per_Gallon": 28,
+ "Cylinders": 4,
+ "Displacement": 151,
+ "Horsepower": 90,
+ "Weight_in_lbs": 2678,
+ "Acceleration": 16.5,
+ "Year": "01 January 1980",
+ "Origin": "USA"
+ },
+ {
+ "Name": "ford fairmont",
+ "Miles_per_Gallon": 26,
+ "Cylinders": 4,
+ "Displacement": 140,
+ "Horsepower": 88,
+ "Weight_in_lbs": 2870,
+ "Acceleration": 18.1,
+ "Year": "01 January 1980",
+ "Origin": "USA"
+ },
+ {
+ "Name": "amc concord",
+ "Miles_per_Gallon": 24,
+ "Cylinders": 4,
+ "Displacement": 151,
+ "Horsepower": 90,
+ "Weight_in_lbs": 3003,
+ "Acceleration": 20.1,
+ "Year": "01 January 1980",
+ "Origin": "USA"
+ },
+ {
+ "Name": "audi 4000",
+ "Miles_per_Gallon": 34,
+ "Cylinders": 4,
+ "Displacement": 97,
+ "Horsepower": 78,
+ "Weight_in_lbs": 2188,
+ "Acceleration": 15.8,
+ "Year": "01 January 1980",
+ "Origin": "Europe"
+ },
+ {
+ "Name": "toyota corona liftback",
+ "Miles_per_Gallon": 30,
+ "Cylinders": 4,
+ "Displacement": 134,
+ "Horsepower": 90,
+ "Weight_in_lbs": 2711,
+ "Acceleration": 15.5,
+ "Year": "01 January 1980",
+ "Origin": "Japan"
+ },
+ {
+ "Name": "mazda 626",
+ "Miles_per_Gallon": 31,
+ "Cylinders": 4,
+ "Displacement": 120,
+ "Horsepower": 75,
+ "Weight_in_lbs": 2542,
+ "Acceleration": 17.5,
+ "Year": "01 January 1980",
+ "Origin": "Japan"
+ },
+ {
+ "Name": "datsun 510 hatchback",
+ "Miles_per_Gallon": 37,
+ "Cylinders": 4,
+ "Displacement": 119,
+ "Horsepower": 92,
+ "Weight_in_lbs": 2434,
+ "Acceleration": 15,
+ "Year": "01 January 1980",
+ "Origin": "Japan"
+ },
+ {
+ "Name": "toyota corolla",
+ "Miles_per_Gallon": 32,
+ "Cylinders": 4,
+ "Displacement": 108,
+ "Horsepower": 75,
+ "Weight_in_lbs": 2265,
+ "Acceleration": 15.2,
+ "Year": "01 January 1980",
+ "Origin": "Japan"
+ },
+ {
+ "Name": "mazda glc",
+ "Miles_per_Gallon": 47,
+ "Cylinders": 4,
+ "Displacement": 86,
+ "Horsepower": 65,
+ "Weight_in_lbs": 2110,
+ "Acceleration": 17.9,
+ "Year": "01 January 1980",
+ "Origin": "Japan"
+ },
+ {
+ "Name": "dodge colt",
+ "Miles_per_Gallon": 28,
+ "Cylinders": 4,
+ "Displacement": 156,
+ "Horsepower": 105,
+ "Weight_in_lbs": 2800,
+ "Acceleration": 14.4,
+ "Year": "01 January 1980",
+ "Origin": "USA"
+ },
+ {
+ "Name": "datsun 210",
+ "Miles_per_Gallon": 41,
+ "Cylinders": 4,
+ "Displacement": 85,
+ "Horsepower": 65,
+ "Weight_in_lbs": 2110,
+ "Acceleration": 19.2,
+ "Year": "01 January 1980",
+ "Origin": "Japan"
+ },
+ {
+ "Name": "vw rabbit c (diesel)",
+ "Miles_per_Gallon": 44,
+ "Cylinders": 4,
+ "Displacement": 90,
+ "Horsepower": 48,
+ "Weight_in_lbs": 2085,
+ "Acceleration": 21.7,
+ "Year": "01 January 1980",
+ "Origin": "Europe"
+ },
+ {
+ "Name": "vw dasher (diesel)",
+ "Miles_per_Gallon": 43,
+ "Cylinders": 4,
+ "Displacement": 90,
+ "Horsepower": 48,
+ "Weight_in_lbs": 2335,
+ "Acceleration": 23.7,
+ "Year": "01 January 1980",
+ "Origin": "Europe"
+ },
+ {
+ "Name": "mercedes-benz 240d",
+ "Miles_per_Gallon": 30,
+ "Cylinders": 4,
+ "Displacement": 146,
+ "Horsepower": 67,
+ "Weight_in_lbs": 3250,
+ "Acceleration": 21.8,
+ "Year": "01 January 1980",
+ "Origin": "Europe"
+ },
+ {
+ "Name": "honda civic 1500 gl",
+ "Miles_per_Gallon": 45,
+ "Cylinders": 4,
+ "Displacement": 91,
+ "Horsepower": 67,
+ "Weight_in_lbs": 1850,
+ "Acceleration": 13.8,
+ "Year": "01 January 1980",
+ "Origin": "Japan"
+ },
+ {
+ "Name": "renault lecar deluxe",
+ "Miles_per_Gallon": 41,
+ "Cylinders": 4,
+ "Displacement": 85,
+ "Horsepower": null,
+ "Weight_in_lbs": 1835,
+ "Acceleration": 17.3,
+ "Year": "01 January 1980",
+ "Origin": "Europe"
+ },
+ {
+ "Name": "subaru dl",
+ "Miles_per_Gallon": 34,
+ "Cylinders": 4,
+ "Displacement": 97,
+ "Horsepower": 67,
+ "Weight_in_lbs": 2145,
+ "Acceleration": 18,
+ "Year": "01 January 1980",
+ "Origin": "Japan"
+ },
+ {
+ "Name": "vokswagen rabbit",
+ "Miles_per_Gallon": 30,
+ "Cylinders": 4,
+ "Displacement": 89,
+ "Horsepower": 62,
+ "Weight_in_lbs": 1845,
+ "Acceleration": 15.3,
+ "Year": "01 January 1980",
+ "Origin": "Europe"
+ },
+ {
+ "Name": "triumph tr7 coupe",
+ "Miles_per_Gallon": 35,
+ "Cylinders": 4,
+ "Displacement": 122,
+ "Horsepower": 88,
+ "Weight_in_lbs": 2500,
+ "Acceleration": 15.1,
+ "Year": "01 January 1980",
+ "Origin": "Europe"
+ },
+ {
+ "Name": "ford mustang cobra",
+ "Miles_per_Gallon": 24,
+ "Cylinders": 4,
+ "Displacement": 140,
+ "Horsepower": null,
+ "Weight_in_lbs": 2905,
+ "Acceleration": 14.3,
+ "Year": "01 January 1980",
+ "Origin": "USA"
+ },
+ {
+ "Name": "honda Accelerationord",
+ "Miles_per_Gallon": 32,
+ "Cylinders": 4,
+ "Displacement": 107,
+ "Horsepower": 72,
+ "Weight_in_lbs": 2290,
+ "Acceleration": 17,
+ "Year": "01 January 1980",
+ "Origin": "Japan"
+ },
+ {
+ "Name": "plymouth reliant",
+ "Miles_per_Gallon": 27,
+ "Cylinders": 4,
+ "Displacement": 135,
+ "Horsepower": 84,
+ "Weight_in_lbs": 2490,
+ "Acceleration": 15.7,
+ "Year": "01 January 1982",
+ "Origin": "USA"
+ },
+ {
+ "Name": "buick skylark",
+ "Miles_per_Gallon": 27,
+ "Cylinders": 4,
+ "Displacement": 151,
+ "Horsepower": 84,
+ "Weight_in_lbs": 2635,
+ "Acceleration": 16.4,
+ "Year": "01 January 1982",
+ "Origin": "USA"
+ },
+ {
+ "Name": "dodge aries wagon (sw)",
+ "Miles_per_Gallon": 26,
+ "Cylinders": 4,
+ "Displacement": 156,
+ "Horsepower": 92,
+ "Weight_in_lbs": 2620,
+ "Acceleration": 14.4,
+ "Year": "01 January 1982",
+ "Origin": "USA"
+ },
+ {
+ "Name": "plymouth reliant",
+ "Miles_per_Gallon": 30,
+ "Cylinders": 4,
+ "Displacement": 135,
+ "Horsepower": 84,
+ "Weight_in_lbs": 2385,
+ "Acceleration": 12.9,
+ "Year": "01 January 1982",
+ "Origin": "USA"
+ },
+ {
+ "Name": "toyota starlet",
+ "Miles_per_Gallon": 39,
+ "Cylinders": 4,
+ "Displacement": 79,
+ "Horsepower": 58,
+ "Weight_in_lbs": 1755,
+ "Acceleration": 16.9,
+ "Year": "01 January 1982",
+ "Origin": "Japan"
+ },
+ {
+ "Name": "plymouth champ",
+ "Miles_per_Gallon": 39,
+ "Cylinders": 4,
+ "Displacement": 86,
+ "Horsepower": 64,
+ "Weight_in_lbs": 1875,
+ "Acceleration": 16.4,
+ "Year": "01 January 1982",
+ "Origin": "USA"
+ },
+ {
+ "Name": "honda civic 1300",
+ "Miles_per_Gallon": 35,
+ "Cylinders": 4,
+ "Displacement": 81,
+ "Horsepower": 60,
+ "Weight_in_lbs": 1760,
+ "Acceleration": 16.1,
+ "Year": "01 January 1982",
+ "Origin": "Japan"
+ },
+ {
+ "Name": "subaru",
+ "Miles_per_Gallon": 32,
+ "Cylinders": 4,
+ "Displacement": 97,
+ "Horsepower": 67,
+ "Weight_in_lbs": 2065,
+ "Acceleration": 17.8,
+ "Year": "01 January 1982",
+ "Origin": "Japan"
+ },
+ {
+ "Name": "datsun 210",
+ "Miles_per_Gallon": 37,
+ "Cylinders": 4,
+ "Displacement": 85,
+ "Horsepower": 65,
+ "Weight_in_lbs": 1975,
+ "Acceleration": 19.4,
+ "Year": "01 January 1982",
+ "Origin": "Japan"
+ },
+ {
+ "Name": "toyota tercel",
+ "Miles_per_Gallon": 38,
+ "Cylinders": 4,
+ "Displacement": 89,
+ "Horsepower": 62,
+ "Weight_in_lbs": 2050,
+ "Acceleration": 17.3,
+ "Year": "01 January 1982",
+ "Origin": "Japan"
+ },
+ {
+ "Name": "mazda glc 4",
+ "Miles_per_Gallon": 34,
+ "Cylinders": 4,
+ "Displacement": 91,
+ "Horsepower": 68,
+ "Weight_in_lbs": 1985,
+ "Acceleration": 16,
+ "Year": "01 January 1982",
+ "Origin": "Japan"
+ },
+ {
+ "Name": "plymouth horizon 4",
+ "Miles_per_Gallon": 35,
+ "Cylinders": 4,
+ "Displacement": 105,
+ "Horsepower": 63,
+ "Weight_in_lbs": 2215,
+ "Acceleration": 14.9,
+ "Year": "01 January 1982",
+ "Origin": "USA"
+ },
+ {
+ "Name": "ford escort 4w",
+ "Miles_per_Gallon": 34,
+ "Cylinders": 4,
+ "Displacement": 98,
+ "Horsepower": 65,
+ "Weight_in_lbs": 2045,
+ "Acceleration": 16.2,
+ "Year": "01 January 1982",
+ "Origin": "USA"
+ },
+ {
+ "Name": "ford escort 2h",
+ "Miles_per_Gallon": 30,
+ "Cylinders": 4,
+ "Displacement": 98,
+ "Horsepower": 65,
+ "Weight_in_lbs": 2380,
+ "Acceleration": 20.7,
+ "Year": "01 January 1982",
+ "Origin": "USA"
+ },
+ {
+ "Name": "volkswagen jetta",
+ "Miles_per_Gallon": 33,
+ "Cylinders": 4,
+ "Displacement": 105,
+ "Horsepower": 74,
+ "Weight_in_lbs": 2190,
+ "Acceleration": 14.2,
+ "Year": "01 January 1982",
+ "Origin": "Europe"
+ },
+ {
+ "Name": "renault 18i",
+ "Miles_per_Gallon": 34,
+ "Cylinders": 4,
+ "Displacement": 100,
+ "Horsepower": null,
+ "Weight_in_lbs": 2320,
+ "Acceleration": 15.8,
+ "Year": "01 January 1982",
+ "Origin": "Europe"
+ },
+ {
+ "Name": "honda prelude",
+ "Miles_per_Gallon": 34,
+ "Cylinders": 4,
+ "Displacement": 107,
+ "Horsepower": 75,
+ "Weight_in_lbs": 2210,
+ "Acceleration": 14.4,
+ "Year": "01 January 1982",
+ "Origin": "Japan"
+ },
+ {
+ "Name": "toyota corolla",
+ "Miles_per_Gallon": 32,
+ "Cylinders": 4,
+ "Displacement": 108,
+ "Horsepower": 75,
+ "Weight_in_lbs": 2350,
+ "Acceleration": 16.8,
+ "Year": "01 January 1982",
+ "Origin": "Japan"
+ },
+ {
+ "Name": "datsun 200sx",
+ "Miles_per_Gallon": 33,
+ "Cylinders": 4,
+ "Displacement": 119,
+ "Horsepower": 100,
+ "Weight_in_lbs": 2615,
+ "Acceleration": 14.8,
+ "Year": "01 January 1982",
+ "Origin": "Japan"
+ },
+ {
+ "Name": "mazda 626",
+ "Miles_per_Gallon": 32,
+ "Cylinders": 4,
+ "Displacement": 120,
+ "Horsepower": 74,
+ "Weight_in_lbs": 2635,
+ "Acceleration": 18.3,
+ "Year": "01 January 1982",
+ "Origin": "Japan"
+ },
+ {
+ "Name": "peugeot 505s turbo diesel",
+ "Miles_per_Gallon": 28,
+ "Cylinders": 4,
+ "Displacement": 141,
+ "Horsepower": 80,
+ "Weight_in_lbs": 3230,
+ "Acceleration": 20.4,
+ "Year": "01 January 1982",
+ "Origin": "Europe"
+ },
+ {
+ "Name": "saab 900s",
+ "Miles_per_Gallon": null,
+ "Cylinders": 4,
+ "Displacement": 121,
+ "Horsepower": 110,
+ "Weight_in_lbs": 2800,
+ "Acceleration": 15.4,
+ "Year": "01 January 1982",
+ "Origin": "Europe"
+ },
+ {
+ "Name": "chevrolet cavalier",
+ "Miles_per_Gallon": 28,
+ "Cylinders": 4,
+ "Displacement": 112,
+ "Horsepower": 88,
+ "Weight_in_lbs": 2605,
+ "Acceleration": 19.6,
+ "Year": "01 January 1982",
+ "Origin": "USA"
+ },
+ {
+ "Name": "chevrolet cavalier wagon",
+ "Miles_per_Gallon": 27,
+ "Cylinders": 4,
+ "Displacement": 112,
+ "Horsepower": 88,
+ "Weight_in_lbs": 2640,
+ "Acceleration": 18.6,
+ "Year": "01 January 1982",
+ "Origin": "USA"
+ },
+ {
+ "Name": "chevrolet cavalier 2-door",
+ "Miles_per_Gallon": 34,
+ "Cylinders": 4,
+ "Displacement": 112,
+ "Horsepower": 88,
+ "Weight_in_lbs": 2395,
+ "Acceleration": 18,
+ "Year": "01 January 1982",
+ "Origin": "USA"
+ },
+ {
+ "Name": "pontiac j2000 se hatchback",
+ "Miles_per_Gallon": 31,
+ "Cylinders": 4,
+ "Displacement": 112,
+ "Horsepower": 85,
+ "Weight_in_lbs": 2575,
+ "Acceleration": 16.2,
+ "Year": "01 January 1982",
+ "Origin": "USA"
+ },
+ {
+ "Name": "dodge aries se",
+ "Miles_per_Gallon": 29,
+ "Cylinders": 4,
+ "Displacement": 135,
+ "Horsepower": 84,
+ "Weight_in_lbs": 2525,
+ "Acceleration": 16,
+ "Year": "01 January 1982",
+ "Origin": "USA"
+ },
+ {
+ "Name": "pontiac phoenix",
+ "Miles_per_Gallon": 27,
+ "Cylinders": 4,
+ "Displacement": 151,
+ "Horsepower": 90,
+ "Weight_in_lbs": 2735,
+ "Acceleration": 18,
+ "Year": "01 January 1982",
+ "Origin": "USA"
+ },
+ {
+ "Name": "ford fairmont futura",
+ "Miles_per_Gallon": 24,
+ "Cylinders": 4,
+ "Displacement": 140,
+ "Horsepower": 92,
+ "Weight_in_lbs": 2865,
+ "Acceleration": 16.4,
+ "Year": "01 January 1982",
+ "Origin": "USA"
+ },
+ {
+ "Name": "amc concord dl",
+ "Miles_per_Gallon": 23,
+ "Cylinders": 4,
+ "Displacement": 151,
+ "Horsepower": null,
+ "Weight_in_lbs": 3035,
+ "Acceleration": 20.5,
+ "Year": "01 January 1982",
+ "Origin": "USA"
+ },
+ {
+ "Name": "volkswagen rabbit l",
+ "Miles_per_Gallon": 36,
+ "Cylinders": 4,
+ "Displacement": 105,
+ "Horsepower": 74,
+ "Weight_in_lbs": 1980,
+ "Acceleration": 15.3,
+ "Year": "01 January 1982",
+ "Origin": "Europe"
+ },
+ {
+ "Name": "mazda glc custom l",
+ "Miles_per_Gallon": 37,
+ "Cylinders": 4,
+ "Displacement": 91,
+ "Horsepower": 68,
+ "Weight_in_lbs": 2025,
+ "Acceleration": 18.2,
+ "Year": "01 January 1982",
+ "Origin": "Japan"
+ },
+ {
+ "Name": "mazda glc custom",
+ "Miles_per_Gallon": 31,
+ "Cylinders": 4,
+ "Displacement": 91,
+ "Horsepower": 68,
+ "Weight_in_lbs": 1970,
+ "Acceleration": 17.6,
+ "Year": "01 January 1982",
+ "Origin": "Japan"
+ },
+ {
+ "Name": "plymouth horizon miser",
+ "Miles_per_Gallon": 38,
+ "Cylinders": 4,
+ "Displacement": 105,
+ "Horsepower": 63,
+ "Weight_in_lbs": 2125,
+ "Acceleration": 14.7,
+ "Year": "01 January 1982",
+ "Origin": "USA"
+ },
+ {
+ "Name": "mercury lynx l",
+ "Miles_per_Gallon": 36,
+ "Cylinders": 4,
+ "Displacement": 98,
+ "Horsepower": 70,
+ "Weight_in_lbs": 2125,
+ "Acceleration": 17.3,
+ "Year": "01 January 1982",
+ "Origin": "USA"
+ },
+ {
+ "Name": "nissan stanza xe",
+ "Miles_per_Gallon": 36,
+ "Cylinders": 4,
+ "Displacement": 120,
+ "Horsepower": 88,
+ "Weight_in_lbs": 2160,
+ "Acceleration": 14.5,
+ "Year": "01 January 1982",
+ "Origin": "Japan"
+ },
+ {
+ "Name": "honda Accelerationord",
+ "Miles_per_Gallon": 36,
+ "Cylinders": 4,
+ "Displacement": 107,
+ "Horsepower": 75,
+ "Weight_in_lbs": 2205,
+ "Acceleration": 14.5,
+ "Year": "01 January 1982",
+ "Origin": "Japan"
+ },
+ {
+ "Name": "toyota corolla",
+ "Miles_per_Gallon": 34,
+ "Cylinders": 4,
+ "Displacement": 108,
+ "Horsepower": 70,
+ "Weight_in_lbs": 2245,
+ "Acceleration": 16.9,
+ "Year": "01 January 1982",
+ "Origin": "Japan"
+ },
+ {
+ "Name": "honda civic",
+ "Miles_per_Gallon": 38,
+ "Cylinders": 4,
+ "Displacement": 91,
+ "Horsepower": 67,
+ "Weight_in_lbs": 1965,
+ "Acceleration": 15,
+ "Year": "01 January 1982",
+ "Origin": "Japan"
+ },
+ {
+ "Name": "honda civic (auto)",
+ "Miles_per_Gallon": 32,
+ "Cylinders": 4,
+ "Displacement": 91,
+ "Horsepower": 67,
+ "Weight_in_lbs": 1965,
+ "Acceleration": 15.7,
+ "Year": "01 January 1982",
+ "Origin": "Japan"
+ },
+ {
+ "Name": "datsun 310 gx",
+ "Miles_per_Gallon": 38,
+ "Cylinders": 4,
+ "Displacement": 91,
+ "Horsepower": 67,
+ "Weight_in_lbs": 1995,
+ "Acceleration": 16.2,
+ "Year": "01 January 1982",
+ "Origin": "Japan"
+ },
+ {
+ "Name": "chrysler lebaron medallion",
+ "Miles_per_Gallon": 26,
+ "Cylinders": 4,
+ "Displacement": 156,
+ "Horsepower": 92,
+ "Weight_in_lbs": 2585,
+ "Acceleration": 14.5,
+ "Year": "01 January 1982",
+ "Origin": "USA"
+ },
+ {
+ "Name": "toyota celica gt",
+ "Miles_per_Gallon": 32,
+ "Cylinders": 4,
+ "Displacement": 144,
+ "Horsepower": 96,
+ "Weight_in_lbs": 2665,
+ "Acceleration": 13.9,
+ "Year": "01 January 1982",
+ "Origin": "Japan"
+ },
+ {
+ "Name": "dodge charger 2.2",
+ "Miles_per_Gallon": 36,
+ "Cylinders": 4,
+ "Displacement": 135,
+ "Horsepower": 84,
+ "Weight_in_lbs": 2370,
+ "Acceleration": 13,
+ "Year": "01 January 1982",
+ "Origin": "USA"
+ },
+ {
+ "Name": "chevrolet camaro",
+ "Miles_per_Gallon": 27,
+ "Cylinders": 4,
+ "Displacement": 151,
+ "Horsepower": 90,
+ "Weight_in_lbs": 2950,
+ "Acceleration": 17.3,
+ "Year": "01 January 1982",
+ "Origin": "USA"
+ },
+ {
+ "Name": "ford mustang gl",
+ "Miles_per_Gallon": 27,
+ "Cylinders": 4,
+ "Displacement": 140,
+ "Horsepower": 86,
+ "Weight_in_lbs": 2790,
+ "Acceleration": 15.6,
+ "Year": "01 January 1982",
+ "Origin": "USA"
+ },
+ {
+ "Name": "vw pickup",
+ "Miles_per_Gallon": 44,
+ "Cylinders": 4,
+ "Displacement": 97,
+ "Horsepower": 52,
+ "Weight_in_lbs": 2130,
+ "Acceleration": 24.6,
+ "Year": "01 January 1982",
+ "Origin": "Europe"
+ },
+ {
+ "Name": "dodge rampage",
+ "Miles_per_Gallon": 32,
+ "Cylinders": 4,
+ "Displacement": 135,
+ "Horsepower": 84,
+ "Weight_in_lbs": 2295,
+ "Acceleration": 11.6,
+ "Year": "01 January 1982",
+ "Origin": "USA"
+ },
+ {
+ "Name": "ford ranger",
+ "Miles_per_Gallon": 28,
+ "Cylinders": 4,
+ "Displacement": 120,
+ "Horsepower": 79,
+ "Weight_in_lbs": 2625,
+ "Acceleration": 18.6,
+ "Year": "01 January 1982",
+ "Origin": "USA"
+ },
+ {
+ "Name": "chevy s-10",
+ "Miles_per_Gallon": 31,
+ "Cylinders": 4,
+ "Displacement": 119,
+ "Horsepower": 82,
+ "Weight_in_lbs": 2720,
+ "Acceleration": 19.4,
+ "Year": "01 January 1982",
+ "Origin": "USA"
+ },
+ {
+ "Name": "mazda rx2 coupe",
+ "Miles_per_Gallon": 19,
+ "Cylinders": 3,
+ "Displacement": 70,
+ "Horsepower": 97,
+ "Weight_in_lbs": 2330,
+ "Acceleration": 13.5,
+ "Year": "01 January 1972",
+ "Origin": "Japan"
+ },
+ {
+ "Name": "maxda rx3",
+ "Miles_per_Gallon": 18,
+ "Cylinders": 3,
+ "Displacement": 70,
+ "Horsepower": 90,
+ "Weight_in_lbs": 2124,
+ "Acceleration": 13.5,
+ "Year": "01 January 1973",
+ "Origin": "Japan"
+ },
+ {
+ "Name": "toyota mark ii",
+ "Miles_per_Gallon": 20,
+ "Cylinders": 6,
+ "Displacement": 156,
+ "Horsepower": 122,
+ "Weight_in_lbs": 2807,
+ "Acceleration": 13.5,
+ "Year": "01 January 1973",
+ "Origin": "Japan"
+ },
+ {
+ "Name": "toyota mark ii",
+ "Miles_per_Gallon": 19,
+ "Cylinders": 6,
+ "Displacement": 156,
+ "Horsepower": 108,
+ "Weight_in_lbs": 2930,
+ "Acceleration": 15.5,
+ "Year": "01 January 1976",
+ "Origin": "Japan"
+ },
+ {
+ "Name": "mercedes-benz 280s",
+ "Miles_per_Gallon": 16,
+ "Cylinders": 6,
+ "Displacement": 168,
+ "Horsepower": 120,
+ "Weight_in_lbs": 3820,
+ "Acceleration": 16.7,
+ "Year": "01 January 1976",
+ "Origin": "Europe"
+ },
+ {
+ "Name": "datsun 810",
+ "Miles_per_Gallon": 22,
+ "Cylinders": 6,
+ "Displacement": 146,
+ "Horsepower": 97,
+ "Weight_in_lbs": 2815,
+ "Acceleration": 14.5,
+ "Year": "01 January 1977",
+ "Origin": "Japan"
+ },
+ {
+ "Name": "mazda rx-4",
+ "Miles_per_Gallon": 22,
+ "Cylinders": 3,
+ "Displacement": 80,
+ "Horsepower": 110,
+ "Weight_in_lbs": 2720,
+ "Acceleration": 13.5,
+ "Year": "01 January 1977",
+ "Origin": "Japan"
+ },
+ {
+ "Name": "audi 5000",
+ "Miles_per_Gallon": 20,
+ "Cylinders": 5,
+ "Displacement": 131,
+ "Horsepower": 103,
+ "Weight_in_lbs": 2830,
+ "Acceleration": 15.9,
+ "Year": "01 January 1978",
+ "Origin": "Europe"
+ },
+ {
+ "Name": "volvo 264gl",
+ "Miles_per_Gallon": 17,
+ "Cylinders": 6,
+ "Displacement": 163,
+ "Horsepower": 125,
+ "Weight_in_lbs": 3140,
+ "Acceleration": 13.6,
+ "Year": "01 January 1978",
+ "Origin": "Europe"
+ },
+ {
+ "Name": "peugeot 604sl",
+ "Miles_per_Gallon": 16,
+ "Cylinders": 6,
+ "Displacement": 163,
+ "Horsepower": 133,
+ "Weight_in_lbs": 3410,
+ "Acceleration": 15.8,
+ "Year": "01 January 1978",
+ "Origin": "Europe"
+ },
+ {
+ "Name": "mercedes benz 300d",
+ "Miles_per_Gallon": 25,
+ "Cylinders": 5,
+ "Displacement": 183,
+ "Horsepower": 77,
+ "Weight_in_lbs": 3530,
+ "Acceleration": 20.1,
+ "Year": "01 January 1979",
+ "Origin": "Europe"
+ },
+ {
+ "Name": "audi 5000s (diesel)",
+ "Miles_per_Gallon": 36,
+ "Cylinders": 5,
+ "Displacement": 121,
+ "Horsepower": 67,
+ "Weight_in_lbs": 2950,
+ "Acceleration": 19.9,
+ "Year": "01 January 1980",
+ "Origin": "Europe"
+ },
+ {
+ "Name": "datsun 280-zx",
+ "Miles_per_Gallon": 33,
+ "Cylinders": 6,
+ "Displacement": 168,
+ "Horsepower": 132,
+ "Weight_in_lbs": 2910,
+ "Acceleration": 11.4,
+ "Year": "01 January 1980",
+ "Origin": "Japan"
+ },
+ {
+ "Name": "mazda rx-7 gs",
+ "Miles_per_Gallon": 24,
+ "Cylinders": 3,
+ "Displacement": 70,
+ "Horsepower": 100,
+ "Weight_in_lbs": 2420,
+ "Acceleration": 12.5,
+ "Year": "01 January 1980",
+ "Origin": "Japan"
+ },
+ {
+ "Name": "volvo diesel",
+ "Miles_per_Gallon": 31,
+ "Cylinders": 6,
+ "Displacement": 145,
+ "Horsepower": 76,
+ "Weight_in_lbs": 3160,
+ "Acceleration": 19.6,
+ "Year": "01 January 1982",
+ "Origin": "Europe"
+ },
+ {
+ "Name": "toyota cressida",
+ "Miles_per_Gallon": 25,
+ "Cylinders": 6,
+ "Displacement": 168,
+ "Horsepower": 116,
+ "Weight_in_lbs": 2900,
+ "Acceleration": 12.6,
+ "Year": "01 January 1982",
+ "Origin": "Japan"
+ },
+ {
+ "Name": "datsun 810 maxima",
+ "Miles_per_Gallon": 24,
+ "Cylinders": 6,
+ "Displacement": 146,
+ "Horsepower": 120,
+ "Weight_in_lbs": 2930,
+ "Acceleration": 13.8,
+ "Year": "01 January 1982",
+ "Origin": "Japan"
+ },
+ {
+ "Name": "plymouth duster",
+ "Miles_per_Gallon": 22,
+ "Cylinders": 6,
+ "Displacement": 198,
+ "Horsepower": 95,
+ "Weight_in_lbs": 2833,
+ "Acceleration": 15.5,
+ "Year": "01 January 1970",
+ "Origin": "USA"
+ },
+ {
+ "Name": "amc hornet",
+ "Miles_per_Gallon": 18,
+ "Cylinders": 6,
+ "Displacement": 199,
+ "Horsepower": 97,
+ "Weight_in_lbs": 2774,
+ "Acceleration": 15.5,
+ "Year": "01 January 1970",
+ "Origin": "USA"
+ },
+ {
+ "Name": "ford maverick",
+ "Miles_per_Gallon": 21,
+ "Cylinders": 6,
+ "Displacement": 200,
+ "Horsepower": 85,
+ "Weight_in_lbs": 2587,
+ "Acceleration": 16,
+ "Year": "01 January 1970",
+ "Origin": "USA"
+ },
+ {
+ "Name": "amc gremlin",
+ "Miles_per_Gallon": 21,
+ "Cylinders": 6,
+ "Displacement": 199,
+ "Horsepower": 90,
+ "Weight_in_lbs": 2648,
+ "Acceleration": 15,
+ "Year": "01 January 1970",
+ "Origin": "USA"
+ },
+ {
+ "Name": "amc gremlin",
+ "Miles_per_Gallon": 19,
+ "Cylinders": 6,
+ "Displacement": 232,
+ "Horsepower": 100,
+ "Weight_in_lbs": 2634,
+ "Acceleration": 13,
+ "Year": "01 January 1971",
+ "Origin": "USA"
+ },
+ {
+ "Name": "plymouth satellite custom",
+ "Miles_per_Gallon": 16,
+ "Cylinders": 6,
+ "Displacement": 225,
+ "Horsepower": 105,
+ "Weight_in_lbs": 3439,
+ "Acceleration": 15.5,
+ "Year": "01 January 1971",
+ "Origin": "USA"
+ },
+ {
+ "Name": "chevrolet chevelle malibu",
+ "Miles_per_Gallon": 17,
+ "Cylinders": 6,
+ "Displacement": 250,
+ "Horsepower": 100,
+ "Weight_in_lbs": 3329,
+ "Acceleration": 15.5,
+ "Year": "01 January 1971",
+ "Origin": "USA"
+ },
+ {
+ "Name": "ford torino 500",
+ "Miles_per_Gallon": 19,
+ "Cylinders": 6,
+ "Displacement": 250,
+ "Horsepower": 88,
+ "Weight_in_lbs": 3302,
+ "Acceleration": 15.5,
+ "Year": "01 January 1971",
+ "Origin": "USA"
+ },
+ {
+ "Name": "amc matador",
+ "Miles_per_Gallon": 18,
+ "Cylinders": 6,
+ "Displacement": 232,
+ "Horsepower": 100,
+ "Weight_in_lbs": 3288,
+ "Acceleration": 15.5,
+ "Year": "01 January 1971",
+ "Origin": "USA"
+ },
+ {
+ "Name": "amc hornet sportabout (sw)",
+ "Miles_per_Gallon": 18,
+ "Cylinders": 6,
+ "Displacement": 258,
+ "Horsepower": 110,
+ "Weight_in_lbs": 2962,
+ "Acceleration": 13.5,
+ "Year": "01 January 1971",
+ "Origin": "USA"
+ },
+ {
+ "Name": "pontiac firebird",
+ "Miles_per_Gallon": 19,
+ "Cylinders": 6,
+ "Displacement": 250,
+ "Horsepower": 100,
+ "Weight_in_lbs": 3282,
+ "Acceleration": 15,
+ "Year": "01 January 1971",
+ "Origin": "USA"
+ },
+ {
+ "Name": "ford mustang",
+ "Miles_per_Gallon": 18,
+ "Cylinders": 6,
+ "Displacement": 250,
+ "Horsepower": 88,
+ "Weight_in_lbs": 3139,
+ "Acceleration": 14.5,
+ "Year": "01 January 1971",
+ "Origin": "USA"
+ },
+ {
+ "Name": "plymouth valiant",
+ "Miles_per_Gallon": 18,
+ "Cylinders": 6,
+ "Displacement": 225,
+ "Horsepower": 105,
+ "Weight_in_lbs": 3121,
+ "Acceleration": 16.5,
+ "Year": "01 January 1973",
+ "Origin": "USA"
+ },
+ {
+ "Name": "chevrolet nova custom",
+ "Miles_per_Gallon": 16,
+ "Cylinders": 6,
+ "Displacement": 250,
+ "Horsepower": 100,
+ "Weight_in_lbs": 3278,
+ "Acceleration": 18,
+ "Year": "01 January 1973",
+ "Origin": "USA"
+ },
+ {
+ "Name": "amc hornet",
+ "Miles_per_Gallon": 18,
+ "Cylinders": 6,
+ "Displacement": 232,
+ "Horsepower": 100,
+ "Weight_in_lbs": 2945,
+ "Acceleration": 16,
+ "Year": "01 January 1973",
+ "Origin": "USA"
+ },
+ {
+ "Name": "ford maverick",
+ "Miles_per_Gallon": 18,
+ "Cylinders": 6,
+ "Displacement": 250,
+ "Horsepower": 88,
+ "Weight_in_lbs": 3021,
+ "Acceleration": 16.5,
+ "Year": "01 January 1973",
+ "Origin": "USA"
+ },
+ {
+ "Name": "plymouth duster",
+ "Miles_per_Gallon": 23,
+ "Cylinders": 6,
+ "Displacement": 198,
+ "Horsepower": 95,
+ "Weight_in_lbs": 2904,
+ "Acceleration": 16,
+ "Year": "01 January 1973",
+ "Origin": "USA"
+ },
+ {
+ "Name": "amc gremlin",
+ "Miles_per_Gallon": 18,
+ "Cylinders": 6,
+ "Displacement": 232,
+ "Horsepower": 100,
+ "Weight_in_lbs": 2789,
+ "Acceleration": 15,
+ "Year": "01 January 1973",
+ "Origin": "USA"
+ },
+ {
+ "Name": "mercury capri v6",
+ "Miles_per_Gallon": 21,
+ "Cylinders": 6,
+ "Displacement": 155,
+ "Horsepower": 107,
+ "Weight_in_lbs": 2472,
+ "Acceleration": 14,
+ "Year": "01 January 1973",
+ "Origin": "USA"
+ },
+ {
+ "Name": "plymouth duster",
+ "Miles_per_Gallon": 20,
+ "Cylinders": 6,
+ "Displacement": 198,
+ "Horsepower": 95,
+ "Weight_in_lbs": 3102,
+ "Acceleration": 16.5,
+ "Year": "01 January 1974",
+ "Origin": "USA"
+ },
+ {
+ "Name": "ford maverick",
+ "Miles_per_Gallon": 21,
+ "Cylinders": 6,
+ "Displacement": 200,
+ "Horsepower": null,
+ "Weight_in_lbs": 2875,
+ "Acceleration": 17,
+ "Year": "01 January 1974",
+ "Origin": "USA"
+ },
+ {
+ "Name": "amc hornet",
+ "Miles_per_Gallon": 19,
+ "Cylinders": 6,
+ "Displacement": 232,
+ "Horsepower": 100,
+ "Weight_in_lbs": 2901,
+ "Acceleration": 16,
+ "Year": "01 January 1974",
+ "Origin": "USA"
+ },
+ {
+ "Name": "chevrolet nova",
+ "Miles_per_Gallon": 15,
+ "Cylinders": 6,
+ "Displacement": 250,
+ "Horsepower": 100,
+ "Weight_in_lbs": 3336,
+ "Acceleration": 17,
+ "Year": "01 January 1974",
+ "Origin": "USA"
+ },
+ {
+ "Name": "chevrolet chevelle malibu classic",
+ "Miles_per_Gallon": 16,
+ "Cylinders": 6,
+ "Displacement": 250,
+ "Horsepower": 100,
+ "Weight_in_lbs": 3781,
+ "Acceleration": 17,
+ "Year": "01 January 1974",
+ "Origin": "USA"
+ },
+ {
+ "Name": "amc matador",
+ "Miles_per_Gallon": 16,
+ "Cylinders": 6,
+ "Displacement": 258,
+ "Horsepower": 110,
+ "Weight_in_lbs": 3632,
+ "Acceleration": 18,
+ "Year": "01 January 1974",
+ "Origin": "USA"
+ },
+ {
+ "Name": "plymouth satellite sebring",
+ "Miles_per_Gallon": 18,
+ "Cylinders": 6,
+ "Displacement": 225,
+ "Horsepower": 105,
+ "Weight_in_lbs": 3613,
+ "Acceleration": 16.5,
+ "Year": "01 January 1974",
+ "Origin": "USA"
+ },
+ {
+ "Name": "plymouth valiant custom",
+ "Miles_per_Gallon": 19,
+ "Cylinders": 6,
+ "Displacement": 225,
+ "Horsepower": 95,
+ "Weight_in_lbs": 3264,
+ "Acceleration": 16,
+ "Year": "01 January 1975",
+ "Origin": "USA"
+ },
+ {
+ "Name": "chevrolet nova",
+ "Miles_per_Gallon": 18,
+ "Cylinders": 6,
+ "Displacement": 250,
+ "Horsepower": 105,
+ "Weight_in_lbs": 3459,
+ "Acceleration": 16,
+ "Year": "01 January 1975",
+ "Origin": "USA"
+ },
+ {
+ "Name": "mercury monarch",
+ "Miles_per_Gallon": 15,
+ "Cylinders": 6,
+ "Displacement": 250,
+ "Horsepower": 72,
+ "Weight_in_lbs": 3432,
+ "Acceleration": 21,
+ "Year": "01 January 1975",
+ "Origin": "USA"
+ },
+ {
+ "Name": "ford maverick",
+ "Miles_per_Gallon": 15,
+ "Cylinders": 6,
+ "Displacement": 250,
+ "Horsepower": 72,
+ "Weight_in_lbs": 3158,
+ "Acceleration": 19.5,
+ "Year": "01 January 1975",
+ "Origin": "USA"
+ },
+ {
+ "Name": "buick century",
+ "Miles_per_Gallon": 17,
+ "Cylinders": 6,
+ "Displacement": 231,
+ "Horsepower": 110,
+ "Weight_in_lbs": 3907,
+ "Acceleration": 21,
+ "Year": "01 January 1975",
+ "Origin": "USA"
+ },
+ {
+ "Name": "chevroelt chevelle malibu",
+ "Miles_per_Gallon": 16,
+ "Cylinders": 6,
+ "Displacement": 250,
+ "Horsepower": 105,
+ "Weight_in_lbs": 3897,
+ "Acceleration": 18.5,
+ "Year": "01 January 1975",
+ "Origin": "USA"
+ },
+ {
+ "Name": "amc matador",
+ "Miles_per_Gallon": 15,
+ "Cylinders": 6,
+ "Displacement": 258,
+ "Horsepower": 110,
+ "Weight_in_lbs": 3730,
+ "Acceleration": 19,
+ "Year": "01 January 1975",
+ "Origin": "USA"
+ },
+ {
+ "Name": "plymouth fury",
+ "Miles_per_Gallon": 18,
+ "Cylinders": 6,
+ "Displacement": 225,
+ "Horsepower": 95,
+ "Weight_in_lbs": 3785,
+ "Acceleration": 19,
+ "Year": "01 January 1975",
+ "Origin": "USA"
+ },
+ {
+ "Name": "buick skyhawk",
+ "Miles_per_Gallon": 21,
+ "Cylinders": 6,
+ "Displacement": 231,
+ "Horsepower": 110,
+ "Weight_in_lbs": 3039,
+ "Acceleration": 15,
+ "Year": "01 January 1975",
+ "Origin": "USA"
+ },
+ {
+ "Name": "amc gremlin",
+ "Miles_per_Gallon": 20,
+ "Cylinders": 6,
+ "Displacement": 232,
+ "Horsepower": 100,
+ "Weight_in_lbs": 2914,
+ "Acceleration": 16,
+ "Year": "01 January 1975",
+ "Origin": "USA"
+ },
+ {
+ "Name": "ford pinto",
+ "Miles_per_Gallon": 18,
+ "Cylinders": 6,
+ "Displacement": 171,
+ "Horsepower": 97,
+ "Weight_in_lbs": 2984,
+ "Acceleration": 14.5,
+ "Year": "01 January 1975",
+ "Origin": "USA"
+ },
+ {
+ "Name": "amc pacer",
+ "Miles_per_Gallon": 19,
+ "Cylinders": 6,
+ "Displacement": 232,
+ "Horsepower": 90,
+ "Weight_in_lbs": 3211,
+ "Acceleration": 17,
+ "Year": "01 January 1975",
+ "Origin": "USA"
+ },
+ {
+ "Name": "plymouth valiant",
+ "Miles_per_Gallon": 22,
+ "Cylinders": 6,
+ "Displacement": 225,
+ "Horsepower": 100,
+ "Weight_in_lbs": 3233,
+ "Acceleration": 15.4,
+ "Year": "01 January 1976",
+ "Origin": "USA"
+ },
+ {
+ "Name": "chevrolet nova",
+ "Miles_per_Gallon": 22,
+ "Cylinders": 6,
+ "Displacement": 250,
+ "Horsepower": 105,
+ "Weight_in_lbs": 3353,
+ "Acceleration": 14.5,
+ "Year": "01 January 1976",
+ "Origin": "USA"
+ },
+ {
+ "Name": "ford maverick",
+ "Miles_per_Gallon": 24,
+ "Cylinders": 6,
+ "Displacement": 200,
+ "Horsepower": 81,
+ "Weight_in_lbs": 3012,
+ "Acceleration": 17.6,
+ "Year": "01 January 1976",
+ "Origin": "USA"
+ },
+ {
+ "Name": "amc hornet",
+ "Miles_per_Gallon": 22,
+ "Cylinders": 6,
+ "Displacement": 232,
+ "Horsepower": 90,
+ "Weight_in_lbs": 3085,
+ "Acceleration": 17.6,
+ "Year": "01 January 1976",
+ "Origin": "USA"
+ },
+ {
+ "Name": "dodge aspen se",
+ "Miles_per_Gallon": 20,
+ "Cylinders": 6,
+ "Displacement": 225,
+ "Horsepower": 100,
+ "Weight_in_lbs": 3651,
+ "Acceleration": 17.7,
+ "Year": "01 January 1976",
+ "Origin": "USA"
+ },
+ {
+ "Name": "ford granada ghia",
+ "Miles_per_Gallon": 18,
+ "Cylinders": 6,
+ "Displacement": 250,
+ "Horsepower": 78,
+ "Weight_in_lbs": 3574,
+ "Acceleration": 21,
+ "Year": "01 January 1976",
+ "Origin": "USA"
+ },
+ {
+ "Name": "pontiac ventura sj",
+ "Miles_per_Gallon": 18,
+ "Cylinders": 6,
+ "Displacement": 250,
+ "Horsepower": 110,
+ "Weight_in_lbs": 3645,
+ "Acceleration": 16.2,
+ "Year": "01 January 1976",
+ "Origin": "USA"
+ },
+ {
+ "Name": "amc pacer d/l",
+ "Miles_per_Gallon": 18,
+ "Cylinders": 6,
+ "Displacement": 258,
+ "Horsepower": 95,
+ "Weight_in_lbs": 3193,
+ "Acceleration": 17.8,
+ "Year": "01 January 1976",
+ "Origin": "USA"
+ },
+ {
+ "Name": "chevrolet concours",
+ "Miles_per_Gallon": 18,
+ "Cylinders": 6,
+ "Displacement": 250,
+ "Horsepower": 110,
+ "Weight_in_lbs": 3520,
+ "Acceleration": 16.4,
+ "Year": "01 January 1977",
+ "Origin": "USA"
+ },
+ {
+ "Name": "buick skylark",
+ "Miles_per_Gallon": 20,
+ "Cylinders": 6,
+ "Displacement": 231,
+ "Horsepower": 105,
+ "Weight_in_lbs": 3425,
+ "Acceleration": 16.9,
+ "Year": "01 January 1977",
+ "Origin": "USA"
+ },
+ {
+ "Name": "plymouth volare custom",
+ "Miles_per_Gallon": 19,
+ "Cylinders": 6,
+ "Displacement": 225,
+ "Horsepower": 100,
+ "Weight_in_lbs": 3630,
+ "Acceleration": 17.7,
+ "Year": "01 January 1977",
+ "Origin": "USA"
+ },
+ {
+ "Name": "ford granada",
+ "Miles_per_Gallon": 18,
+ "Cylinders": 6,
+ "Displacement": 250,
+ "Horsepower": 98,
+ "Weight_in_lbs": 3525,
+ "Acceleration": 19,
+ "Year": "01 January 1977",
+ "Origin": "USA"
+ },
+ {
+ "Name": "pontiac phoenix lj",
+ "Miles_per_Gallon": 19,
+ "Cylinders": 6,
+ "Displacement": 231,
+ "Horsepower": 105,
+ "Weight_in_lbs": 3535,
+ "Acceleration": 19.2,
+ "Year": "01 January 1978",
+ "Origin": "USA"
+ },
+ {
+ "Name": "chevrolet malibu",
+ "Miles_per_Gallon": 20,
+ "Cylinders": 6,
+ "Displacement": 200,
+ "Horsepower": 95,
+ "Weight_in_lbs": 3155,
+ "Acceleration": 18.2,
+ "Year": "01 January 1978",
+ "Origin": "USA"
+ },
+ {
+ "Name": "ford fairmont (auto)",
+ "Miles_per_Gallon": 20,
+ "Cylinders": 6,
+ "Displacement": 200,
+ "Horsepower": 85,
+ "Weight_in_lbs": 2965,
+ "Acceleration": 15.8,
+ "Year": "01 January 1978",
+ "Origin": "USA"
+ },
+ {
+ "Name": "plymouth volare",
+ "Miles_per_Gallon": 20,
+ "Cylinders": 6,
+ "Displacement": 225,
+ "Horsepower": 100,
+ "Weight_in_lbs": 3430,
+ "Acceleration": 17.2,
+ "Year": "01 January 1978",
+ "Origin": "USA"
+ },
+ {
+ "Name": "amc concord",
+ "Miles_per_Gallon": 19,
+ "Cylinders": 6,
+ "Displacement": 232,
+ "Horsepower": 90,
+ "Weight_in_lbs": 3210,
+ "Acceleration": 17.2,
+ "Year": "01 January 1978",
+ "Origin": "USA"
+ },
+ {
+ "Name": "buick century special",
+ "Miles_per_Gallon": 21,
+ "Cylinders": 6,
+ "Displacement": 231,
+ "Horsepower": 105,
+ "Weight_in_lbs": 3380,
+ "Acceleration": 15.8,
+ "Year": "01 January 1978",
+ "Origin": "USA"
+ },
+ {
+ "Name": "mercury zephyr",
+ "Miles_per_Gallon": 21,
+ "Cylinders": 6,
+ "Displacement": 200,
+ "Horsepower": 85,
+ "Weight_in_lbs": 3070,
+ "Acceleration": 16.7,
+ "Year": "01 January 1978",
+ "Origin": "USA"
+ },
+ {
+ "Name": "dodge aspen",
+ "Miles_per_Gallon": 19,
+ "Cylinders": 6,
+ "Displacement": 225,
+ "Horsepower": 110,
+ "Weight_in_lbs": 3620,
+ "Acceleration": 18.7,
+ "Year": "01 January 1978",
+ "Origin": "USA"
+ },
+ {
+ "Name": "amc concord d/l",
+ "Miles_per_Gallon": 18,
+ "Cylinders": 6,
+ "Displacement": 258,
+ "Horsepower": 120,
+ "Weight_in_lbs": 3410,
+ "Acceleration": 15.1,
+ "Year": "01 January 1978",
+ "Origin": "USA"
+ },
+ {
+ "Name": "buick regal sport coupe (turbo)",
+ "Miles_per_Gallon": 18,
+ "Cylinders": 6,
+ "Displacement": 231,
+ "Horsepower": 165,
+ "Weight_in_lbs": 3445,
+ "Acceleration": 13.4,
+ "Year": "01 January 1978",
+ "Origin": "USA"
+ },
+ {
+ "Name": "pontiac lemans v6",
+ "Miles_per_Gallon": 22,
+ "Cylinders": 6,
+ "Displacement": 231,
+ "Horsepower": 115,
+ "Weight_in_lbs": 3245,
+ "Acceleration": 15.4,
+ "Year": "01 January 1979",
+ "Origin": "USA"
+ },
+ {
+ "Name": "mercury zephyr 6",
+ "Miles_per_Gallon": 20,
+ "Cylinders": 6,
+ "Displacement": 200,
+ "Horsepower": 85,
+ "Weight_in_lbs": 2990,
+ "Acceleration": 18.2,
+ "Year": "01 January 1979",
+ "Origin": "USA"
+ },
+ {
+ "Name": "amc concord dl 6",
+ "Miles_per_Gallon": 20,
+ "Cylinders": 6,
+ "Displacement": 232,
+ "Horsepower": 90,
+ "Weight_in_lbs": 3265,
+ "Acceleration": 18.2,
+ "Year": "01 January 1979",
+ "Origin": "USA"
+ },
+ {
+ "Name": "dodge aspen 6",
+ "Miles_per_Gallon": 21,
+ "Cylinders": 6,
+ "Displacement": 225,
+ "Horsepower": 110,
+ "Weight_in_lbs": 3360,
+ "Acceleration": 16.6,
+ "Year": "01 January 1979",
+ "Origin": "USA"
+ },
+ {
+ "Name": "chevrolet citation",
+ "Miles_per_Gallon": 29,
+ "Cylinders": 6,
+ "Displacement": 173,
+ "Horsepower": 115,
+ "Weight_in_lbs": 2595,
+ "Acceleration": 11.3,
+ "Year": "01 January 1979",
+ "Origin": "USA"
+ },
+ {
+ "Name": "oldsmobile omega brougham",
+ "Miles_per_Gallon": 27,
+ "Cylinders": 6,
+ "Displacement": 173,
+ "Horsepower": 115,
+ "Weight_in_lbs": 2700,
+ "Acceleration": 12.9,
+ "Year": "01 January 1979",
+ "Origin": "USA"
+ },
+ {
+ "Name": "dodge aspen",
+ "Miles_per_Gallon": 19,
+ "Cylinders": 6,
+ "Displacement": 225,
+ "Horsepower": 90,
+ "Weight_in_lbs": 3381,
+ "Acceleration": 18.7,
+ "Year": "01 January 1980",
+ "Origin": "USA"
+ },
+ {
+ "Name": "chevrolet citation",
+ "Miles_per_Gallon": 24,
+ "Cylinders": 6,
+ "Displacement": 173,
+ "Horsepower": 110,
+ "Weight_in_lbs": 2725,
+ "Acceleration": 12.6,
+ "Year": "01 January 1982",
+ "Origin": "USA"
+ },
+ {
+ "Name": "buick century",
+ "Miles_per_Gallon": 22,
+ "Cylinders": 6,
+ "Displacement": 231,
+ "Horsepower": 110,
+ "Weight_in_lbs": 3415,
+ "Acceleration": 15.8,
+ "Year": "01 January 1982",
+ "Origin": "USA"
+ },
+ {
+ "Name": "ford granada gl",
+ "Miles_per_Gallon": 20,
+ "Cylinders": 6,
+ "Displacement": 200,
+ "Horsepower": 88,
+ "Weight_in_lbs": 3060,
+ "Acceleration": 17.1,
+ "Year": "01 January 1982",
+ "Origin": "USA"
+ },
+ {
+ "Name": "chrysler lebaron salon",
+ "Miles_per_Gallon": 18,
+ "Cylinders": 6,
+ "Displacement": 225,
+ "Horsepower": 85,
+ "Weight_in_lbs": 3465,
+ "Acceleration": 16.6,
+ "Year": "01 January 1982",
+ "Origin": "USA"
+ },
+ {
+ "Name": "buick century limited",
+ "Miles_per_Gallon": 25,
+ "Cylinders": 6,
+ "Displacement": 181,
+ "Horsepower": 110,
+ "Weight_in_lbs": 2945,
+ "Acceleration": 16.4,
+ "Year": "01 January 1982",
+ "Origin": "USA"
+ },
+ {
+ "Name": "oldsmobile cutlass ciera (diesel)",
+ "Miles_per_Gallon": 38,
+ "Cylinders": 6,
+ "Displacement": 262,
+ "Horsepower": 85,
+ "Weight_in_lbs": 3015,
+ "Acceleration": 17,
+ "Year": "01 January 1982",
+ "Origin": "USA"
+ },
+ {
+ "Name": "ford granada l",
+ "Miles_per_Gallon": 22,
+ "Cylinders": 6,
+ "Displacement": 232,
+ "Horsepower": 112,
+ "Weight_in_lbs": 2835,
+ "Acceleration": 14.7,
+ "Year": "01 January 1982",
+ "Origin": "USA"
+ },
+ {
+ "Name": "chevrolet chevelle malibu",
+ "Miles_per_Gallon": 18,
+ "Cylinders": 8,
+ "Displacement": 307,
+ "Horsepower": 130,
+ "Weight_in_lbs": 3504,
+ "Acceleration": 12,
+ "Year": "01 January 1970",
+ "Origin": "USA"
+ },
+ {
+ "Name": "buick skylark 320",
+ "Miles_per_Gallon": 15,
+ "Cylinders": 8,
+ "Displacement": 350,
+ "Horsepower": 165,
+ "Weight_in_lbs": 3693,
+ "Acceleration": 11.5,
+ "Year": "01 January 1970",
+ "Origin": "USA"
+ },
+ {
+ "Name": "plymouth satellite",
+ "Miles_per_Gallon": 18,
+ "Cylinders": 8,
+ "Displacement": 318,
+ "Horsepower": 150,
+ "Weight_in_lbs": 3436,
+ "Acceleration": 11,
+ "Year": "01 January 1970",
+ "Origin": "USA"
+ },
+ {
+ "Name": "amc rebel sst",
+ "Miles_per_Gallon": 16,
+ "Cylinders": 8,
+ "Displacement": 304,
+ "Horsepower": 150,
+ "Weight_in_lbs": 3433,
+ "Acceleration": 12,
+ "Year": "01 January 1970",
+ "Origin": "USA"
+ },
+ {
+ "Name": "ford torino",
+ "Miles_per_Gallon": 17,
+ "Cylinders": 8,
+ "Displacement": 302,
+ "Horsepower": 140,
+ "Weight_in_lbs": 3449,
+ "Acceleration": 10.5,
+ "Year": "01 January 1970",
+ "Origin": "USA"
+ },
+ {
+ "Name": "ford galaxie 500",
+ "Miles_per_Gallon": 15,
+ "Cylinders": 8,
+ "Displacement": 429,
+ "Horsepower": 198,
+ "Weight_in_lbs": 4341,
+ "Acceleration": 10,
+ "Year": "01 January 1970",
+ "Origin": "USA"
+ },
+ {
+ "Name": "chevrolet impala",
+ "Miles_per_Gallon": 14,
+ "Cylinders": 8,
+ "Displacement": 454,
+ "Horsepower": 220,
+ "Weight_in_lbs": 4354,
+ "Acceleration": 9,
+ "Year": "01 January 1970",
+ "Origin": "USA"
+ },
+ {
+ "Name": "plymouth fury iii",
+ "Miles_per_Gallon": 14,
+ "Cylinders": 8,
+ "Displacement": 440,
+ "Horsepower": 215,
+ "Weight_in_lbs": 4312,
+ "Acceleration": 8.5,
+ "Year": "01 January 1970",
+ "Origin": "USA"
+ },
+ {
+ "Name": "pontiac catalina",
+ "Miles_per_Gallon": 14,
+ "Cylinders": 8,
+ "Displacement": 455,
+ "Horsepower": 225,
+ "Weight_in_lbs": 4425,
+ "Acceleration": 10,
+ "Year": "01 January 1970",
+ "Origin": "USA"
+ },
+ {
+ "Name": "amc ambassador dpl",
+ "Miles_per_Gallon": 15,
+ "Cylinders": 8,
+ "Displacement": 390,
+ "Horsepower": 190,
+ "Weight_in_lbs": 3850,
+ "Acceleration": 8.5,
+ "Year": "01 January 1970",
+ "Origin": "USA"
+ },
+ {
+ "Name": "chevrolet chevelle concours (sw)",
+ "Miles_per_Gallon": null,
+ "Cylinders": 8,
+ "Displacement": 350,
+ "Horsepower": 165,
+ "Weight_in_lbs": 4142,
+ "Acceleration": 11.5,
+ "Year": "01 January 1970",
+ "Origin": "USA"
+ },
+ {
+ "Name": "ford torino (sw)",
+ "Miles_per_Gallon": null,
+ "Cylinders": 8,
+ "Displacement": 351,
+ "Horsepower": 153,
+ "Weight_in_lbs": 4034,
+ "Acceleration": 11,
+ "Year": "01 January 1970",
+ "Origin": "USA"
+ },
+ {
+ "Name": "plymouth satellite (sw)",
+ "Miles_per_Gallon": null,
+ "Cylinders": 8,
+ "Displacement": 383,
+ "Horsepower": 175,
+ "Weight_in_lbs": 4166,
+ "Acceleration": 10.5,
+ "Year": "01 January 1970",
+ "Origin": "USA"
+ },
+ {
+ "Name": "amc rebel sst (sw)",
+ "Miles_per_Gallon": null,
+ "Cylinders": 8,
+ "Displacement": 360,
+ "Horsepower": 175,
+ "Weight_in_lbs": 3850,
+ "Acceleration": 11,
+ "Year": "01 January 1970",
+ "Origin": "USA"
+ },
+ {
+ "Name": "dodge challenger se",
+ "Miles_per_Gallon": 15,
+ "Cylinders": 8,
+ "Displacement": 383,
+ "Horsepower": 170,
+ "Weight_in_lbs": 3563,
+ "Acceleration": 10,
+ "Year": "01 January 1970",
+ "Origin": "USA"
+ },
+ {
+ "Name": "plymouth 'cuda 340",
+ "Miles_per_Gallon": 14,
+ "Cylinders": 8,
+ "Displacement": 340,
+ "Horsepower": 160,
+ "Weight_in_lbs": 3609,
+ "Acceleration": 8,
+ "Year": "01 January 1970",
+ "Origin": "USA"
+ },
+ {
+ "Name": "ford mustang boss 302",
+ "Miles_per_Gallon": null,
+ "Cylinders": 8,
+ "Displacement": 302,
+ "Horsepower": 140,
+ "Weight_in_lbs": 3353,
+ "Acceleration": 8,
+ "Year": "01 January 1970",
+ "Origin": "USA"
+ },
+ {
+ "Name": "chevrolet monte carlo",
+ "Miles_per_Gallon": 15,
+ "Cylinders": 8,
+ "Displacement": 400,
+ "Horsepower": 150,
+ "Weight_in_lbs": 3761,
+ "Acceleration": 9.5,
+ "Year": "01 January 1970",
+ "Origin": "USA"
+ },
+ {
+ "Name": "buick estate wagon (sw)",
+ "Miles_per_Gallon": 14,
+ "Cylinders": 8,
+ "Displacement": 455,
+ "Horsepower": 225,
+ "Weight_in_lbs": 3086,
+ "Acceleration": 10,
+ "Year": "01 January 1970",
+ "Origin": "USA"
+ },
+ {
+ "Name": "ford f250",
+ "Miles_per_Gallon": 10,
+ "Cylinders": 8,
+ "Displacement": 360,
+ "Horsepower": 215,
+ "Weight_in_lbs": 4615,
+ "Acceleration": 14,
+ "Year": "01 January 1970",
+ "Origin": "USA"
+ },
+ {
+ "Name": "chevy c20",
+ "Miles_per_Gallon": 10,
+ "Cylinders": 8,
+ "Displacement": 307,
+ "Horsepower": 200,
+ "Weight_in_lbs": 4376,
+ "Acceleration": 15,
+ "Year": "01 January 1970",
+ "Origin": "USA"
+ },
+ {
+ "Name": "dodge d200",
+ "Miles_per_Gallon": 11,
+ "Cylinders": 8,
+ "Displacement": 318,
+ "Horsepower": 210,
+ "Weight_in_lbs": 4382,
+ "Acceleration": 13.5,
+ "Year": "01 January 1970",
+ "Origin": "USA"
+ },
+ {
+ "Name": "hi 1200d",
+ "Miles_per_Gallon": 9,
+ "Cylinders": 8,
+ "Displacement": 304,
+ "Horsepower": 193,
+ "Weight_in_lbs": 4732,
+ "Acceleration": 18.5,
+ "Year": "01 January 1970",
+ "Origin": "USA"
+ },
+ {
+ "Name": "chevrolet impala",
+ "Miles_per_Gallon": 14,
+ "Cylinders": 8,
+ "Displacement": 350,
+ "Horsepower": 165,
+ "Weight_in_lbs": 4209,
+ "Acceleration": 12,
+ "Year": "01 January 1971",
+ "Origin": "USA"
+ },
+ {
+ "Name": "pontiac catalina brougham",
+ "Miles_per_Gallon": 14,
+ "Cylinders": 8,
+ "Displacement": 400,
+ "Horsepower": 175,
+ "Weight_in_lbs": 4464,
+ "Acceleration": 11.5,
+ "Year": "01 January 1971",
+ "Origin": "USA"
+ },
+ {
+ "Name": "ford galaxie 500",
+ "Miles_per_Gallon": 14,
+ "Cylinders": 8,
+ "Displacement": 351,
+ "Horsepower": 153,
+ "Weight_in_lbs": 4154,
+ "Acceleration": 13.5,
+ "Year": "01 January 1971",
+ "Origin": "USA"
+ },
+ {
+ "Name": "plymouth fury iii",
+ "Miles_per_Gallon": 14,
+ "Cylinders": 8,
+ "Displacement": 318,
+ "Horsepower": 150,
+ "Weight_in_lbs": 4096,
+ "Acceleration": 13,
+ "Year": "01 January 1971",
+ "Origin": "USA"
+ },
+ {
+ "Name": "dodge monaco (sw)",
+ "Miles_per_Gallon": 12,
+ "Cylinders": 8,
+ "Displacement": 383,
+ "Horsepower": 180,
+ "Weight_in_lbs": 4955,
+ "Acceleration": 11.5,
+ "Year": "01 January 1971",
+ "Origin": "USA"
+ },
+ {
+ "Name": "ford country squire (sw)",
+ "Miles_per_Gallon": 13,
+ "Cylinders": 8,
+ "Displacement": 400,
+ "Horsepower": 170,
+ "Weight_in_lbs": 4746,
+ "Acceleration": 12,
+ "Year": "01 January 1971",
+ "Origin": "USA"
+ },
+ {
+ "Name": "pontiac safari (sw)",
+ "Miles_per_Gallon": 13,
+ "Cylinders": 8,
+ "Displacement": 400,
+ "Horsepower": 175,
+ "Weight_in_lbs": 5140,
+ "Acceleration": 12,
+ "Year": "01 January 1971",
+ "Origin": "USA"
+ },
+ {
+ "Name": "chevrolet impala",
+ "Miles_per_Gallon": 13,
+ "Cylinders": 8,
+ "Displacement": 350,
+ "Horsepower": 165,
+ "Weight_in_lbs": 4274,
+ "Acceleration": 12,
+ "Year": "01 January 1972",
+ "Origin": "USA"
+ },
+ {
+ "Name": "pontiac catalina",
+ "Miles_per_Gallon": 14,
+ "Cylinders": 8,
+ "Displacement": 400,
+ "Horsepower": 175,
+ "Weight_in_lbs": 4385,
+ "Acceleration": 12,
+ "Year": "01 January 1972",
+ "Origin": "USA"
+ },
+ {
+ "Name": "plymouth fury iii",
+ "Miles_per_Gallon": 15,
+ "Cylinders": 8,
+ "Displacement": 318,
+ "Horsepower": 150,
+ "Weight_in_lbs": 4135,
+ "Acceleration": 13.5,
+ "Year": "01 January 1972",
+ "Origin": "USA"
+ },
+ {
+ "Name": "ford galaxie 500",
+ "Miles_per_Gallon": 14,
+ "Cylinders": 8,
+ "Displacement": 351,
+ "Horsepower": 153,
+ "Weight_in_lbs": 4129,
+ "Acceleration": 13,
+ "Year": "01 January 1972",
+ "Origin": "USA"
+ },
+ {
+ "Name": "amc ambassador sst",
+ "Miles_per_Gallon": 17,
+ "Cylinders": 8,
+ "Displacement": 304,
+ "Horsepower": 150,
+ "Weight_in_lbs": 3672,
+ "Acceleration": 11.5,
+ "Year": "01 January 1972",
+ "Origin": "USA"
+ },
+ {
+ "Name": "mercury marquis",
+ "Miles_per_Gallon": 11,
+ "Cylinders": 8,
+ "Displacement": 429,
+ "Horsepower": 208,
+ "Weight_in_lbs": 4633,
+ "Acceleration": 11,
+ "Year": "01 January 1972",
+ "Origin": "USA"
+ },
+ {
+ "Name": "buick lesabre custom",
+ "Miles_per_Gallon": 13,
+ "Cylinders": 8,
+ "Displacement": 350,
+ "Horsepower": 155,
+ "Weight_in_lbs": 4502,
+ "Acceleration": 13.5,
+ "Year": "01 January 1972",
+ "Origin": "USA"
+ },
+ {
+ "Name": "oldsmobile delta 88 royale",
+ "Miles_per_Gallon": 12,
+ "Cylinders": 8,
+ "Displacement": 350,
+ "Horsepower": 160,
+ "Weight_in_lbs": 4456,
+ "Acceleration": 13.5,
+ "Year": "01 January 1972",
+ "Origin": "USA"
+ },
+ {
+ "Name": "chrysler newport royal",
+ "Miles_per_Gallon": 13,
+ "Cylinders": 8,
+ "Displacement": 400,
+ "Horsepower": 190,
+ "Weight_in_lbs": 4422,
+ "Acceleration": 12.5,
+ "Year": "01 January 1972",
+ "Origin": "USA"
+ },
+ {
+ "Name": "amc matador (sw)",
+ "Miles_per_Gallon": 15,
+ "Cylinders": 8,
+ "Displacement": 304,
+ "Horsepower": 150,
+ "Weight_in_lbs": 3892,
+ "Acceleration": 12.5,
+ "Year": "01 January 1972",
+ "Origin": "USA"
+ },
+ {
+ "Name": "chevrolet chevelle concours (sw)",
+ "Miles_per_Gallon": 13,
+ "Cylinders": 8,
+ "Displacement": 307,
+ "Horsepower": 130,
+ "Weight_in_lbs": 4098,
+ "Acceleration": 14,
+ "Year": "01 January 1972",
+ "Origin": "USA"
+ },
+ {
+ "Name": "ford gran torino (sw)",
+ "Miles_per_Gallon": 13,
+ "Cylinders": 8,
+ "Displacement": 302,
+ "Horsepower": 140,
+ "Weight_in_lbs": 4294,
+ "Acceleration": 16,
+ "Year": "01 January 1972",
+ "Origin": "USA"
+ },
+ {
+ "Name": "plymouth satellite custom (sw)",
+ "Miles_per_Gallon": 14,
+ "Cylinders": 8,
+ "Displacement": 318,
+ "Horsepower": 150,
+ "Weight_in_lbs": 4077,
+ "Acceleration": 14,
+ "Year": "01 January 1972",
+ "Origin": "USA"
+ },
+ {
+ "Name": "buick century 350",
+ "Miles_per_Gallon": 13,
+ "Cylinders": 8,
+ "Displacement": 350,
+ "Horsepower": 175,
+ "Weight_in_lbs": 4100,
+ "Acceleration": 13,
+ "Year": "01 January 1973",
+ "Origin": "USA"
+ },
+ {
+ "Name": "amc matador",
+ "Miles_per_Gallon": 14,
+ "Cylinders": 8,
+ "Displacement": 304,
+ "Horsepower": 150,
+ "Weight_in_lbs": 3672,
+ "Acceleration": 11.5,
+ "Year": "01 January 1973",
+ "Origin": "USA"
+ },
+ {
+ "Name": "chevrolet malibu",
+ "Miles_per_Gallon": 13,
+ "Cylinders": 8,
+ "Displacement": 350,
+ "Horsepower": 145,
+ "Weight_in_lbs": 3988,
+ "Acceleration": 13,
+ "Year": "01 January 1973",
+ "Origin": "USA"
+ },
+ {
+ "Name": "ford gran torino",
+ "Miles_per_Gallon": 14,
+ "Cylinders": 8,
+ "Displacement": 302,
+ "Horsepower": 137,
+ "Weight_in_lbs": 4042,
+ "Acceleration": 14.5,
+ "Year": "01 January 1973",
+ "Origin": "USA"
+ },
+ {
+ "Name": "dodge coronet custom",
+ "Miles_per_Gallon": 15,
+ "Cylinders": 8,
+ "Displacement": 318,
+ "Horsepower": 150,
+ "Weight_in_lbs": 3777,
+ "Acceleration": 12.5,
+ "Year": "01 January 1973",
+ "Origin": "USA"
+ },
+ {
+ "Name": "mercury marquis brougham",
+ "Miles_per_Gallon": 12,
+ "Cylinders": 8,
+ "Displacement": 429,
+ "Horsepower": 198,
+ "Weight_in_lbs": 4952,
+ "Acceleration": 11.5,
+ "Year": "01 January 1973",
+ "Origin": "USA"
+ },
+ {
+ "Name": "chevrolet caprice classic",
+ "Miles_per_Gallon": 13,
+ "Cylinders": 8,
+ "Displacement": 400,
+ "Horsepower": 150,
+ "Weight_in_lbs": 4464,
+ "Acceleration": 12,
+ "Year": "01 January 1973",
+ "Origin": "USA"
+ },
+ {
+ "Name": "ford ltd",
+ "Miles_per_Gallon": 13,
+ "Cylinders": 8,
+ "Displacement": 351,
+ "Horsepower": 158,
+ "Weight_in_lbs": 4363,
+ "Acceleration": 13,
+ "Year": "01 January 1973",
+ "Origin": "USA"
+ },
+ {
+ "Name": "plymouth fury gran sedan",
+ "Miles_per_Gallon": 14,
+ "Cylinders": 8,
+ "Displacement": 318,
+ "Horsepower": 150,
+ "Weight_in_lbs": 4237,
+ "Acceleration": 14.5,
+ "Year": "01 January 1973",
+ "Origin": "USA"
+ },
+ {
+ "Name": "chrysler new yorker brougham",
+ "Miles_per_Gallon": 13,
+ "Cylinders": 8,
+ "Displacement": 440,
+ "Horsepower": 215,
+ "Weight_in_lbs": 4735,
+ "Acceleration": 11,
+ "Year": "01 January 1973",
+ "Origin": "USA"
+ },
+ {
+ "Name": "buick electra 225 custom",
+ "Miles_per_Gallon": 12,
+ "Cylinders": 8,
+ "Displacement": 455,
+ "Horsepower": 225,
+ "Weight_in_lbs": 4951,
+ "Acceleration": 11,
+ "Year": "01 January 1973",
+ "Origin": "USA"
+ },
+ {
+ "Name": "amc ambassador brougham",
+ "Miles_per_Gallon": 13,
+ "Cylinders": 8,
+ "Displacement": 360,
+ "Horsepower": 175,
+ "Weight_in_lbs": 3821,
+ "Acceleration": 11,
+ "Year": "01 January 1973",
+ "Origin": "USA"
+ },
+ {
+ "Name": "chevrolet impala",
+ "Miles_per_Gallon": 11,
+ "Cylinders": 8,
+ "Displacement": 400,
+ "Horsepower": 150,
+ "Weight_in_lbs": 4997,
+ "Acceleration": 14,
+ "Year": "01 January 1973",
+ "Origin": "USA"
+ },
+ {
+ "Name": "ford country",
+ "Miles_per_Gallon": 12,
+ "Cylinders": 8,
+ "Displacement": 400,
+ "Horsepower": 167,
+ "Weight_in_lbs": 4906,
+ "Acceleration": 12.5,
+ "Year": "01 January 1973",
+ "Origin": "USA"
+ },
+ {
+ "Name": "plymouth custom suburb",
+ "Miles_per_Gallon": 13,
+ "Cylinders": 8,
+ "Displacement": 360,
+ "Horsepower": 170,
+ "Weight_in_lbs": 4654,
+ "Acceleration": 13,
+ "Year": "01 January 1973",
+ "Origin": "USA"
+ },
+ {
+ "Name": "oldsmobile vista cruiser",
+ "Miles_per_Gallon": 12,
+ "Cylinders": 8,
+ "Displacement": 350,
+ "Horsepower": 180,
+ "Weight_in_lbs": 4499,
+ "Acceleration": 12.5,
+ "Year": "01 January 1973",
+ "Origin": "USA"
+ },
+ {
+ "Name": "chevrolet monte carlo s",
+ "Miles_per_Gallon": 15,
+ "Cylinders": 8,
+ "Displacement": 350,
+ "Horsepower": 145,
+ "Weight_in_lbs": 4082,
+ "Acceleration": 13,
+ "Year": "01 January 1973",
+ "Origin": "USA"
+ },
+ {
+ "Name": "pontiac grand prix",
+ "Miles_per_Gallon": 16,
+ "Cylinders": 8,
+ "Displacement": 400,
+ "Horsepower": 230,
+ "Weight_in_lbs": 4278,
+ "Acceleration": 9.5,
+ "Year": "01 January 1973",
+ "Origin": "USA"
+ },
+ {
+ "Name": "dodge dart custom",
+ "Miles_per_Gallon": 15,
+ "Cylinders": 8,
+ "Displacement": 318,
+ "Horsepower": 150,
+ "Weight_in_lbs": 3399,
+ "Acceleration": 11,
+ "Year": "01 January 1973",
+ "Origin": "USA"
+ },
+ {
+ "Name": "oldsmobile omega",
+ "Miles_per_Gallon": 11,
+ "Cylinders": 8,
+ "Displacement": 350,
+ "Horsepower": 180,
+ "Weight_in_lbs": 3664,
+ "Acceleration": 11,
+ "Year": "01 January 1973",
+ "Origin": "USA"
+ },
+ {
+ "Name": "ford gran torino",
+ "Miles_per_Gallon": 16,
+ "Cylinders": 8,
+ "Displacement": 302,
+ "Horsepower": 140,
+ "Weight_in_lbs": 4141,
+ "Acceleration": 14,
+ "Year": "01 January 1974",
+ "Origin": "USA"
+ },
+ {
+ "Name": "buick century luxus (sw)",
+ "Miles_per_Gallon": 13,
+ "Cylinders": 8,
+ "Displacement": 350,
+ "Horsepower": 150,
+ "Weight_in_lbs": 4699,
+ "Acceleration": 14.5,
+ "Year": "01 January 1974",
+ "Origin": "USA"
+ },
+ {
+ "Name": "dodge coronet custom (sw)",
+ "Miles_per_Gallon": 14,
+ "Cylinders": 8,
+ "Displacement": 318,
+ "Horsepower": 150,
+ "Weight_in_lbs": 4457,
+ "Acceleration": 13.5,
+ "Year": "01 January 1974",
+ "Origin": "USA"
+ },
+ {
+ "Name": "ford gran torino (sw)",
+ "Miles_per_Gallon": 14,
+ "Cylinders": 8,
+ "Displacement": 302,
+ "Horsepower": 140,
+ "Weight_in_lbs": 4638,
+ "Acceleration": 16,
+ "Year": "01 January 1974",
+ "Origin": "USA"
+ },
+ {
+ "Name": "amc matador (sw)",
+ "Miles_per_Gallon": 14,
+ "Cylinders": 8,
+ "Displacement": 304,
+ "Horsepower": 150,
+ "Weight_in_lbs": 4257,
+ "Acceleration": 15.5,
+ "Year": "01 January 1974",
+ "Origin": "USA"
+ },
+ {
+ "Name": "pontiac catalina",
+ "Miles_per_Gallon": 16,
+ "Cylinders": 8,
+ "Displacement": 400,
+ "Horsepower": 170,
+ "Weight_in_lbs": 4668,
+ "Acceleration": 11.5,
+ "Year": "01 January 1975",
+ "Origin": "USA"
+ },
+ {
+ "Name": "chevrolet bel air",
+ "Miles_per_Gallon": 15,
+ "Cylinders": 8,
+ "Displacement": 350,
+ "Horsepower": 145,
+ "Weight_in_lbs": 4440,
+ "Acceleration": 14,
+ "Year": "01 January 1975",
+ "Origin": "USA"
+ },
+ {
+ "Name": "plymouth grand fury",
+ "Miles_per_Gallon": 16,
+ "Cylinders": 8,
+ "Displacement": 318,
+ "Horsepower": 150,
+ "Weight_in_lbs": 4498,
+ "Acceleration": 14.5,
+ "Year": "01 January 1975",
+ "Origin": "USA"
+ },
+ {
+ "Name": "ford ltd",
+ "Miles_per_Gallon": 14,
+ "Cylinders": 8,
+ "Displacement": 351,
+ "Horsepower": 148,
+ "Weight_in_lbs": 4657,
+ "Acceleration": 13.5,
+ "Year": "01 January 1975",
+ "Origin": "USA"
+ },
+ {
+ "Name": "chevrolet monza 2+2",
+ "Miles_per_Gallon": 20,
+ "Cylinders": 8,
+ "Displacement": 262,
+ "Horsepower": 110,
+ "Weight_in_lbs": 3221,
+ "Acceleration": 13.5,
+ "Year": "01 January 1975",
+ "Origin": "USA"
+ },
+ {
+ "Name": "ford mustang ii",
+ "Miles_per_Gallon": 13,
+ "Cylinders": 8,
+ "Displacement": 302,
+ "Horsepower": 129,
+ "Weight_in_lbs": 3169,
+ "Acceleration": 12,
+ "Year": "01 January 1975",
+ "Origin": "USA"
+ },
+ {
+ "Name": "chevrolet chevelle malibu classic",
+ "Miles_per_Gallon": 18,
+ "Cylinders": 8,
+ "Displacement": 305,
+ "Horsepower": 140,
+ "Weight_in_lbs": 4215,
+ "Acceleration": 13,
+ "Year": "01 January 1976",
+ "Origin": "USA"
+ },
+ {
+ "Name": "dodge coronet brougham",
+ "Miles_per_Gallon": 16,
+ "Cylinders": 8,
+ "Displacement": 318,
+ "Horsepower": 150,
+ "Weight_in_lbs": 4190,
+ "Acceleration": 13,
+ "Year": "01 January 1976",
+ "Origin": "USA"
+ },
+ {
+ "Name": "amc matador",
+ "Miles_per_Gallon": 16,
+ "Cylinders": 8,
+ "Displacement": 304,
+ "Horsepower": 120,
+ "Weight_in_lbs": 3962,
+ "Acceleration": 13.9,
+ "Year": "01 January 1976",
+ "Origin": "USA"
+ },
+ {
+ "Name": "ford gran torino",
+ "Miles_per_Gallon": 14,
+ "Cylinders": 8,
+ "Displacement": 351,
+ "Horsepower": 152,
+ "Weight_in_lbs": 4215,
+ "Acceleration": 12.8,
+ "Year": "01 January 1976",
+ "Origin": "USA"
+ },
+ {
+ "Name": "plymouth volare premier v8",
+ "Miles_per_Gallon": 13,
+ "Cylinders": 8,
+ "Displacement": 318,
+ "Horsepower": 150,
+ "Weight_in_lbs": 3940,
+ "Acceleration": 13.2,
+ "Year": "01 January 1976",
+ "Origin": "USA"
+ },
+ {
+ "Name": "cadillac seville",
+ "Miles_per_Gallon": 16,
+ "Cylinders": 8,
+ "Displacement": 350,
+ "Horsepower": 180,
+ "Weight_in_lbs": 4380,
+ "Acceleration": 12.1,
+ "Year": "01 January 1976",
+ "Origin": "USA"
+ },
+ {
+ "Name": "chevy c10",
+ "Miles_per_Gallon": 13,
+ "Cylinders": 8,
+ "Displacement": 350,
+ "Horsepower": 145,
+ "Weight_in_lbs": 4055,
+ "Acceleration": 12,
+ "Year": "01 January 1976",
+ "Origin": "USA"
+ },
+ {
+ "Name": "ford f108",
+ "Miles_per_Gallon": 13,
+ "Cylinders": 8,
+ "Displacement": 302,
+ "Horsepower": 130,
+ "Weight_in_lbs": 3870,
+ "Acceleration": 15,
+ "Year": "01 January 1976",
+ "Origin": "USA"
+ },
+ {
+ "Name": "dodge d100",
+ "Miles_per_Gallon": 13,
+ "Cylinders": 8,
+ "Displacement": 318,
+ "Horsepower": 150,
+ "Weight_in_lbs": 3755,
+ "Acceleration": 14,
+ "Year": "01 January 1976",
+ "Origin": "USA"
+ },
+ {
+ "Name": "chevrolet caprice classic",
+ "Miles_per_Gallon": 18,
+ "Cylinders": 8,
+ "Displacement": 305,
+ "Horsepower": 145,
+ "Weight_in_lbs": 3880,
+ "Acceleration": 12.5,
+ "Year": "01 January 1977",
+ "Origin": "USA"
+ },
+ {
+ "Name": "oldsmobile cutlass supreme",
+ "Miles_per_Gallon": 17,
+ "Cylinders": 8,
+ "Displacement": 260,
+ "Horsepower": 110,
+ "Weight_in_lbs": 4060,
+ "Acceleration": 19,
+ "Year": "01 January 1977",
+ "Origin": "USA"
+ },
+ {
+ "Name": "dodge monaco brougham",
+ "Miles_per_Gallon": 16,
+ "Cylinders": 8,
+ "Displacement": 318,
+ "Horsepower": 145,
+ "Weight_in_lbs": 4140,
+ "Acceleration": 13.7,
+ "Year": "01 January 1977",
+ "Origin": "USA"
+ },
+ {
+ "Name": "mercury cougar brougham",
+ "Miles_per_Gallon": 15,
+ "Cylinders": 8,
+ "Displacement": 302,
+ "Horsepower": 130,
+ "Weight_in_lbs": 4295,
+ "Acceleration": 14.9,
+ "Year": "01 January 1977",
+ "Origin": "USA"
+ },
+ {
+ "Name": "pontiac grand prix lj",
+ "Miles_per_Gallon": 16,
+ "Cylinders": 8,
+ "Displacement": 400,
+ "Horsepower": 180,
+ "Weight_in_lbs": 4220,
+ "Acceleration": 11.1,
+ "Year": "01 January 1977",
+ "Origin": "USA"
+ },
+ {
+ "Name": "chevrolet monte carlo landau",
+ "Miles_per_Gallon": 16,
+ "Cylinders": 8,
+ "Displacement": 350,
+ "Horsepower": 170,
+ "Weight_in_lbs": 4165,
+ "Acceleration": 11.4,
+ "Year": "01 January 1977",
+ "Origin": "USA"
+ },
+ {
+ "Name": "chrysler cordoba",
+ "Miles_per_Gallon": 16,
+ "Cylinders": 8,
+ "Displacement": 400,
+ "Horsepower": 190,
+ "Weight_in_lbs": 4325,
+ "Acceleration": 12.2,
+ "Year": "01 January 1977",
+ "Origin": "USA"
+ },
+ {
+ "Name": "ford thunderbird",
+ "Miles_per_Gallon": 16,
+ "Cylinders": 8,
+ "Displacement": 351,
+ "Horsepower": 149,
+ "Weight_in_lbs": 4335,
+ "Acceleration": 14.5,
+ "Year": "01 January 1977",
+ "Origin": "USA"
+ },
+ {
+ "Name": "oldsmobile cutlass salon brougham",
+ "Miles_per_Gallon": 20,
+ "Cylinders": 8,
+ "Displacement": 260,
+ "Horsepower": 110,
+ "Weight_in_lbs": 3365,
+ "Acceleration": 15.5,
+ "Year": "01 January 1978",
+ "Origin": "USA"
+ },
+ {
+ "Name": "dodge diplomat",
+ "Miles_per_Gallon": 19,
+ "Cylinders": 8,
+ "Displacement": 318,
+ "Horsepower": 140,
+ "Weight_in_lbs": 3735,
+ "Acceleration": 13.2,
+ "Year": "01 January 1978",
+ "Origin": "USA"
+ },
+ {
+ "Name": "mercury monarch ghia",
+ "Miles_per_Gallon": 20,
+ "Cylinders": 8,
+ "Displacement": 302,
+ "Horsepower": 139,
+ "Weight_in_lbs": 3570,
+ "Acceleration": 12.8,
+ "Year": "01 January 1978",
+ "Origin": "USA"
+ },
+ {
+ "Name": "chevrolet monte carlo landau",
+ "Miles_per_Gallon": 19,
+ "Cylinders": 8,
+ "Displacement": 305,
+ "Horsepower": 145,
+ "Weight_in_lbs": 3425,
+ "Acceleration": 13.2,
+ "Year": "01 January 1978",
+ "Origin": "USA"
+ },
+ {
+ "Name": "ford futura",
+ "Miles_per_Gallon": 18,
+ "Cylinders": 8,
+ "Displacement": 302,
+ "Horsepower": 139,
+ "Weight_in_lbs": 3205,
+ "Acceleration": 11.2,
+ "Year": "01 January 1978",
+ "Origin": "USA"
+ },
+ {
+ "Name": "dodge magnum xe",
+ "Miles_per_Gallon": 18,
+ "Cylinders": 8,
+ "Displacement": 318,
+ "Horsepower": 140,
+ "Weight_in_lbs": 4080,
+ "Acceleration": 13.7,
+ "Year": "01 January 1978",
+ "Origin": "USA"
+ },
+ {
+ "Name": "chevrolet caprice classic",
+ "Miles_per_Gallon": 17,
+ "Cylinders": 8,
+ "Displacement": 305,
+ "Horsepower": 130,
+ "Weight_in_lbs": 3840,
+ "Acceleration": 15.4,
+ "Year": "01 January 1979",
+ "Origin": "USA"
+ },
+ {
+ "Name": "ford ltd landau",
+ "Miles_per_Gallon": 18,
+ "Cylinders": 8,
+ "Displacement": 302,
+ "Horsepower": 129,
+ "Weight_in_lbs": 3725,
+ "Acceleration": 13.4,
+ "Year": "01 January 1979",
+ "Origin": "USA"
+ },
+ {
+ "Name": "mercury grand marquis",
+ "Miles_per_Gallon": 16,
+ "Cylinders": 8,
+ "Displacement": 351,
+ "Horsepower": 138,
+ "Weight_in_lbs": 3955,
+ "Acceleration": 13.2,
+ "Year": "01 January 1979",
+ "Origin": "USA"
+ },
+ {
+ "Name": "dodge st. regis",
+ "Miles_per_Gallon": 18,
+ "Cylinders": 8,
+ "Displacement": 318,
+ "Horsepower": 135,
+ "Weight_in_lbs": 3830,
+ "Acceleration": 15.2,
+ "Year": "01 January 1979",
+ "Origin": "USA"
+ },
+ {
+ "Name": "buick estate wagon (sw)",
+ "Miles_per_Gallon": 17,
+ "Cylinders": 8,
+ "Displacement": 350,
+ "Horsepower": 155,
+ "Weight_in_lbs": 4360,
+ "Acceleration": 14.9,
+ "Year": "01 January 1979",
+ "Origin": "USA"
+ },
+ {
+ "Name": "ford country squire (sw)",
+ "Miles_per_Gallon": 16,
+ "Cylinders": 8,
+ "Displacement": 351,
+ "Horsepower": 142,
+ "Weight_in_lbs": 4054,
+ "Acceleration": 14.3,
+ "Year": "01 January 1979",
+ "Origin": "USA"
+ },
+ {
+ "Name": "chevrolet malibu classic (sw)",
+ "Miles_per_Gallon": 19,
+ "Cylinders": 8,
+ "Displacement": 267,
+ "Horsepower": 125,
+ "Weight_in_lbs": 3605,
+ "Acceleration": 15,
+ "Year": "01 January 1979",
+ "Origin": "USA"
+ },
+ {
+ "Name": "chrysler lebaron town @ country (sw)",
+ "Miles_per_Gallon": 18,
+ "Cylinders": 8,
+ "Displacement": 360,
+ "Horsepower": 150,
+ "Weight_in_lbs": 3940,
+ "Acceleration": 13,
+ "Year": "01 January 1979",
+ "Origin": "USA"
+ },
+ {
+ "Name": "cadillac eldorado",
+ "Miles_per_Gallon": 23,
+ "Cylinders": 8,
+ "Displacement": 350,
+ "Horsepower": 125,
+ "Weight_in_lbs": 3900,
+ "Acceleration": 17.4,
+ "Year": "01 January 1979",
+ "Origin": "USA"
+ },
+ {
+ "Name": "oldsmobile cutlass salon brougham",
+ "Miles_per_Gallon": 24,
+ "Cylinders": 8,
+ "Displacement": 260,
+ "Horsepower": 90,
+ "Weight_in_lbs": 3420,
+ "Acceleration": 22.2,
+ "Year": "01 January 1979",
+ "Origin": "USA"
+ },
+ {
+ "Name": "oldsmobile cutlass ls",
+ "Miles_per_Gallon": 27,
+ "Cylinders": 8,
+ "Displacement": 350,
+ "Horsepower": 105,
+ "Weight_in_lbs": 3725,
+ "Acceleration": 19,
+ "Year": "01 January 1982",
+ "Origin": "USA"
+ }
+ ]
+ },
+ "transform": [
+ {
+ "joinaggregate": [{"op": "count", "field": "Origin", "as": "TotalOrigin"}]
+ },
+ {
+ "joinaggregate": [
+ {"op": "count", "field": "Origin", "as": "TotalOriginGrouped"}
+ ],
+ "groupby": ["Origin"]
+ },
+ {
+ "calculate": "round(datum.TotalOriginGrouped/datum.TotalOrigin * 100)",
+ "as": "PercentOfTotal"
+ },
+ {
+ "aggregate": [{"op": "min", "field": "PercentOfTotal", "as": "Percent"}],
+ "groupby": ["Origin"]
+ },
+ {"calculate": "sequence(1,101)", "as": "Sequence"},
+ {"flatten": ["Sequence"]},
+ {
+ "calculate": "if(datum.Sequence <= datum.Percent, datum.Origin,'_blank')",
+ "as": "Plot"
+ },
+ {"calculate": "ceil (datum.Sequence / 10)", "as": "row"},
+ {"calculate": "datum.Sequence - datum.row * 10", "as": "col"}
+ ],
+ "facet": {"column": {"field": "Origin", "header": {"labelOrient": "bottom"}}},
+ "spec": {
+ "layer": [
+ {
+ "mark": {
+ "type": "circle",
+ "filled": true,
+ "tooltip": true,
+ "stroke": "#9e9b9b",
+ "strokeWidth": 0.7
+ },
+ "encoding": {
+ "x": {"field": "col", "type": "ordinal", "axis": null},
+ "y": {"field": "row", "type": "ordinal", "axis": null, "sort": "-y"},
+ "color": {
+ "condition": {"test": "datum.Plot == '_blank'", "value": "#e6e3e3"},
+ "scale": {"scheme": "set1"},
+ "field": "Plot",
+ "type": "nominal",
+ "legend": null
+ },
+ "size": {"value": 241},
+ "tooltip": [{"field": "Origin", "type": "nominal"}]
+ }
+ },
+ {
+ "mark": {"type": "text", "fontSize": 30, "fontWeight": "bold"},
+ "encoding": {
+ "y": {"value": 30},
+ "text": {
+ "condition": {
+ "test": "datum.Sequence == 1",
+ "value": {"expr": "datum.Percent + '%'"}
+ }
+ },
+ "color": {"scale": {"scheme": "set1"}, "field": "Plot"}
+ }
+ }
+ ]
+ },
+ "config": {
+ "view": {"stroke": "transparent"},
+ "font": "Segoe UI",
+ "arc": {},
+ "area": {"line": true, "opacity": 0.6},
+ "bar": {},
+ "line": {"strokeWidth": 3, "strokeCap": "round", "strokeJoin": "round"},
+ "point": {"filled": true, "size": 75},
+ "rect": {},
+ "text": {"font": "Segoe UI", "fontSize": 12, "fill": "#605E5C"},
+ "axis": {
+ "ticks": false,
+ "grid": false,
+ "domain": false,
+ "labelColor": "#605E5C",
+ "labelFontSize": 12,
+ "titleFont": "wf_standard-font, helvetica, arial, sans-serif",
+ "titleColor": "#252423",
+ "titleFontSize": 16,
+ "titleFontWeight": "normal"
+ },
+ "axisQuantitative": {
+ "tickCount": 3,
+ "grid": true,
+ "gridColor": "#C8C6C4",
+ "gridDash": [1, 5],
+ "labelFlush": false
+ },
+ "axisBand": {"tickExtra": true},
+ "axisX": {"labelPadding": 5},
+ "axisY": {"labelPadding": 10},
+ "header": {
+ "titleFont": "wf_standard-font, helvetica, arial, sans-serif",
+ "titleFontSize": 20,
+ "titleColor": "#757575",
+ "labelFont": "Segoe UI",
+ "labelFontSize": 13.333333333333332,
+ "labelColor": "#605E5C"
+ },
+ "legend": {
+ "titleFont": "Segoe UI",
+ "titleFontWeight": "bold",
+ "titleColor": "#605E5C",
+ "labelFont": "Segoe UI",
+ "labelFontSize": 13.333333333333332,
+ "labelColor": "#605E5C",
+ "symbolType": "circle",
+ "symbolSize": 75
+ }
+ }
+}
\ No newline at end of file
diff --git a/testdata/deneb/waffle-charts.vl.json.svg b/testdata/deneb/waffle-charts.vl.json.svg
new file mode 100644
index 0000000..5a3e741
--- /dev/null
+++ b/testdata/deneb/waffle-charts.vl.json.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/testdata/lite/geo_circle.vl.json.svg b/testdata/lite/geo_circle.vl.json.svg
new file mode 100644
index 0000000..d9b7b07
--- /dev/null
+++ b/testdata/lite/geo_circle.vl.json.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/vegagoja.go b/vegagoja.go
index 9a8fc12..d70db43 100644
--- a/vegagoja.go
+++ b/vegagoja.go
@@ -30,7 +30,7 @@ type Vega struct {
liteRender renderFunc
liteCompile func(loggerFunc, string) (string, error)
logger func(...interface{})
- sources fs.FS
+ source fs.FS
once sync.Once
err error
}
@@ -168,8 +168,8 @@ func (vm *Vega) data() interface{} {
// load loads data from sources.
func (vm *Vega) load(name string) (string, error) {
- if vm.sources != nil {
- f, err := vm.sources.Open(name)
+ if vm.source != nil {
+ f, err := vm.source.Open(name)
if err != nil {
return "", fmt.Errorf("could not open from data %s: %w", name, err)
}
@@ -230,13 +230,7 @@ func WithCSVBytes(buf []byte) Option {
// which to load data.
func WithSources(sources ...fs.FS) Option {
return func(vm *Vega) {
- if len(sources) == 1 {
- vm.sources = sources[0]
- } else {
- vm.sources = &fallbackFS{
- sources: sources,
- }
- }
+ vm.source = NewSource(sources...)
}
}
@@ -245,35 +239,24 @@ func WithSources(sources ...fs.FS) Option {
// ([fs.FS]) can be provided that will take priority when loading data.
func WithDemoData(sources ...fs.FS) Option {
return func(vm *Vega) {
- vm.sources = &fallbackFS{
- sources: append(sources, vegaData),
- }
+ vm.source = NewSource(append(sources, vegaData)...)
}
}
-// ResultSet is the shared interface for a result set.
-type ResultSet interface {
- Next() bool
- Scan(...interface{}) error
- Columns() ([]string, error)
- Close() error
- Err() error
- NextResultSet() bool
-}
-
-// fallbackFS is a fallback [fs.FS] implementation.
-type fallbackFS struct {
- sources []fs.FS
+// WithDataDir is a vega option to add a data source that loads data from a
+// directory.
+func WithDataDir(dir string) Option {
+ return func(vm *Vega) {
+ vm.source = os.DirFS(dir)
+ }
}
-// Open satisfies the [fs.FS] interface.
-func (f *fallbackFS) Open(name string) (fs.File, error) {
- for _, source := range f.sources {
- if file, err := source.Open(name); err == nil {
- return file, nil
- }
+// WithPrefixedSourceDir is a vega option to add a data source that loads data
+// from a specified prefixed directory name.
+func WithPrefixedSourceDir(prefix, dir string) Option {
+ return func(vm *Vega) {
+ vm.source = NewPrefixedSourceDir(prefix, dir)
}
- return nil, os.ErrNotExist
}
// decodeSchema decodes the schema from the spec.
diff --git a/vegagoja.js b/vegagoja.js
index e8911ab..a50e6b5 100644
--- a/vegagoja.js
+++ b/vegagoja.js
@@ -1,3 +1,5 @@
+Date.prototype.setYear = Date.prototype.setFullYear;
+
function logger(logf) {
return {
level(_) {},
@@ -27,13 +29,9 @@ function vega_lite_version() {
function vega_render(logf, spec, loadf, cb) {
const loader = {
load(name, res) {
- if (res.response != "json" && res.response != "text") {
- logf(["HERERERR", res.response]);
- }
- //logf(["name", name, "res", JSON.stringify(res)]);
var s = "";
try {
- s = loadf(name);
+ s = loadf(name, res.response);
} catch (e) {
logf(["LOAD ERROR", e]);
}
diff --git a/vegagoja_test.go b/vegagoja_test.go
index 51084da..b7b376a 100644
--- a/vegagoja_test.go
+++ b/vegagoja_test.go
@@ -71,10 +71,14 @@ func testRender(t *testing.T, ctx context.Context, testName, name string, timeou
}
ctx, cancel := context.WithTimeout(ctx, timeout)
defer cancel()
- vm := New(
+ opts := []Option{
WithLogger(t.Log),
WithDemoData(),
- )
+ }
+ if strings.HasPrefix(testName, "deneb/") {
+ opts = append(opts, WithPrefixedSourceDir("deneb/", "testdata/deneb"))
+ }
+ vm := New(opts...)
start := time.Now()
s, err := vm.Render(ctx, string(spec))
total := time.Now().Sub(start)