From f8bb71a1849fc42e4ae5b91e472041a1c56ab029 Mon Sep 17 00:00:00 2001 From: Oleh Omelchenko Date: Thu, 30 Jan 2025 16:28:56 +0200 Subject: [PATCH 01/10] reorganize files --- .../charts/areachart-original.vl.json | 0 .../charts/areachart-ukrainian.vl.json | 0 .../charts/barchart-original.vl.json | 0 .../charts/barchart-ukrainian.vl.json | 0 .../charts/bubblechart-original.vl.json | 0 .../charts/bubblechart-ukrainian.vl.json | 0 .../charts/choropleth-original.vl.json | 0 .../charts/choropleth-ukrainian.vl.json | 0 .../charts/histogram-original.vl.json | 0 .../charts/histogram-ukrainian.vl.json | 0 .../charts/linechart-original.vl.json | 0 .../charts/linechart-ukrainian.vl.json | 0 .../charts/piechart-original.vl.json | 0 .../charts/piechart-ukrainian.vl.json | 0 .../charts/scatterplot-original.vl.json | 0 .../charts/scatterplot-ukrainian.vl.json | 0 .../charts/stacked100-original.vl.json | 0 .../charts/stacked100-ukrainian.vl.json | 0 .../charts/stackedareachart-original.vl.json | 0 .../charts/stackedareachart-ukrainian.vl.json | 0 .../charts/stackedbarchart-original.vl.json | 0 .../charts/stackedbarchart-ukrainian.vl.json | 0 {src => public}/charts/treemap-original.vl.json | 0 .../charts/treemap-ukrainian.vl.json | 0 {src => public}/css/styles.css | 0 {src => public}/data/barchart.csv | 0 {src => public}/data/bubblechart.csv | 0 {src => public}/data/choropleth.csv | 0 {src => public}/data/histogram.csv | 0 {src => public}/data/linechart.json | 0 {src => public}/data/piechart.csv | 0 {src => public}/data/questions.json | 0 {src => public}/data/scatterplot.csv | 0 {src => public}/data/stacked100.csv | 0 {src => public}/data/stackedbarchart.csv | 0 {src => public}/data/state-coordinates.json | 0 {src => public}/data/topo-USA.json | 0 {src => public}/data/treemap-en.png | Bin {src => public}/data/treemap-uk.png | Bin {src => public}/images/areachart-original.svg | 0 {src => public}/images/areachart-ukrainian.svg | 0 {src => public}/images/barchart-original.svg | 0 {src => public}/images/barchart-ukrainian.svg | 0 {src => public}/images/bubblechart-original.svg | 0 .../images/bubblechart-ukrainian.svg | 0 {src => public}/images/choropleth-original.svg | 0 {src => public}/images/choropleth-ukrainian.svg | 0 {src => public}/images/histogram-original.svg | 0 {src => public}/images/histogram-ukrainian.svg | 0 {src => public}/images/linechart-original.svg | 0 {src => public}/images/linechart-ukrainian.svg | 0 {src => public}/images/piechart-original.svg | 0 {src => public}/images/piechart-ukrainian.svg | 0 {src => public}/images/scatterplot-original.svg | 0 .../images/scatterplot-ukrainian.svg | 0 {src => public}/images/stacked100-original.svg | 0 {src => public}/images/stacked100-ukrainian.svg | 0 .../images/stackedareachart-original.svg | 0 .../images/stackedareachart-ukrainian.svg | 0 .../images/stackedbarchart-original.svg | 0 .../images/stackedbarchart-ukrainian.svg | 0 {src => public}/images/treemap-original.png | Bin {src => public}/images/treemap-ukrainian.png | Bin {src => public}/js/app.js | 0 {src => public}/js/consent.js | 0 {src => public}/js/questionnaire.js | 0 {src => public}/js/quiz.js | 0 {src => public}/js/results.js | 0 server.js | 3 ++- src/images-big/areachart-original.svg | 1 - src/images-big/areachart-ukrainian.svg | 1 - src/images-big/barchart-original.svg | 1 - src/images-big/barchart-ukrainian.svg | 1 - src/images-big/bubblechart-original.svg | 1 - src/images-big/bubblechart-ukrainian.svg | 1 - src/images-big/choropleth-original.svg | 1 - src/images-big/choropleth-ukrainian.svg | 1 - src/images-big/histogram-original.svg | 1 - src/images-big/histogram-ukrainian.svg | 1 - src/images-big/linechart-original.svg | 1 - src/images-big/linechart-ukrainian.svg | 1 - src/images-big/piechart-original.svg | 1 - src/images-big/piechart-ukrainian.svg | 1 - src/images-big/scatterplot-original.svg | 1 - src/images-big/scatterplot-ukrainian.svg | 1 - src/images-big/stacked100-original.svg | 1 - src/images-big/stacked100-ukrainian.svg | 1 - src/images-big/stackedareachart-original.svg | 1 - src/images-big/stackedareachart-ukrainian.svg | 1 - src/images-big/stackedbarchart-original.svg | 1 - src/images-big/stackedbarchart-ukrainian.svg | 1 - src/images-big/treemap-original.svg | 1 - src/images-big/treemap-ukrainian.png | Bin 41684 -> 0 bytes src/images-big/treemap-ukrainian.svg | 1 - 94 files changed, 2 insertions(+), 25 deletions(-) rename {src => public}/charts/areachart-original.vl.json (100%) rename {src => public}/charts/areachart-ukrainian.vl.json (100%) rename {src => public}/charts/barchart-original.vl.json (100%) rename {src => public}/charts/barchart-ukrainian.vl.json (100%) rename {src => public}/charts/bubblechart-original.vl.json (100%) rename {src => public}/charts/bubblechart-ukrainian.vl.json (100%) rename {src => public}/charts/choropleth-original.vl.json (100%) rename {src => public}/charts/choropleth-ukrainian.vl.json (100%) rename {src => public}/charts/histogram-original.vl.json (100%) rename {src => public}/charts/histogram-ukrainian.vl.json (100%) rename {src => public}/charts/linechart-original.vl.json (100%) rename {src => public}/charts/linechart-ukrainian.vl.json (100%) rename {src => public}/charts/piechart-original.vl.json (100%) rename {src => public}/charts/piechart-ukrainian.vl.json (100%) rename {src => public}/charts/scatterplot-original.vl.json (100%) rename {src => public}/charts/scatterplot-ukrainian.vl.json (100%) rename {src => public}/charts/stacked100-original.vl.json (100%) rename {src => public}/charts/stacked100-ukrainian.vl.json (100%) rename {src => public}/charts/stackedareachart-original.vl.json (100%) rename {src => public}/charts/stackedareachart-ukrainian.vl.json (100%) rename {src => public}/charts/stackedbarchart-original.vl.json (100%) rename {src => public}/charts/stackedbarchart-ukrainian.vl.json (100%) rename {src => public}/charts/treemap-original.vl.json (100%) rename {src => public}/charts/treemap-ukrainian.vl.json (100%) rename {src => public}/css/styles.css (100%) rename {src => public}/data/barchart.csv (100%) rename {src => public}/data/bubblechart.csv (100%) rename {src => public}/data/choropleth.csv (100%) rename {src => public}/data/histogram.csv (100%) rename {src => public}/data/linechart.json (100%) rename {src => public}/data/piechart.csv (100%) rename {src => public}/data/questions.json (100%) rename {src => public}/data/scatterplot.csv (100%) rename {src => public}/data/stacked100.csv (100%) rename {src => public}/data/stackedbarchart.csv (100%) rename {src => public}/data/state-coordinates.json (100%) rename {src => public}/data/topo-USA.json (100%) rename {src => public}/data/treemap-en.png (100%) rename {src => public}/data/treemap-uk.png (100%) rename {src => public}/images/areachart-original.svg (100%) rename {src => public}/images/areachart-ukrainian.svg (100%) rename {src => public}/images/barchart-original.svg (100%) rename {src => public}/images/barchart-ukrainian.svg (100%) rename {src => public}/images/bubblechart-original.svg (100%) rename {src => public}/images/bubblechart-ukrainian.svg (100%) rename {src => public}/images/choropleth-original.svg (100%) rename {src => public}/images/choropleth-ukrainian.svg (100%) rename {src => public}/images/histogram-original.svg (100%) rename {src => public}/images/histogram-ukrainian.svg (100%) rename {src => public}/images/linechart-original.svg (100%) rename {src => public}/images/linechart-ukrainian.svg (100%) rename {src => public}/images/piechart-original.svg (100%) rename {src => public}/images/piechart-ukrainian.svg (100%) rename {src => public}/images/scatterplot-original.svg (100%) rename {src => public}/images/scatterplot-ukrainian.svg (100%) rename {src => public}/images/stacked100-original.svg (100%) rename {src => public}/images/stacked100-ukrainian.svg (100%) rename {src => public}/images/stackedareachart-original.svg (100%) rename {src => public}/images/stackedareachart-ukrainian.svg (100%) rename {src => public}/images/stackedbarchart-original.svg (100%) rename {src => public}/images/stackedbarchart-ukrainian.svg (100%) rename {src => public}/images/treemap-original.png (100%) rename {src => public}/images/treemap-ukrainian.png (100%) rename {src => public}/js/app.js (100%) rename {src => public}/js/consent.js (100%) rename {src => public}/js/questionnaire.js (100%) rename {src => public}/js/quiz.js (100%) rename {src => public}/js/results.js (100%) delete mode 100644 src/images-big/areachart-original.svg delete mode 100644 src/images-big/areachart-ukrainian.svg delete mode 100644 src/images-big/barchart-original.svg delete mode 100644 src/images-big/barchart-ukrainian.svg delete mode 100644 src/images-big/bubblechart-original.svg delete mode 100644 src/images-big/bubblechart-ukrainian.svg delete mode 100644 src/images-big/choropleth-original.svg delete mode 100644 src/images-big/choropleth-ukrainian.svg delete mode 100644 src/images-big/histogram-original.svg delete mode 100644 src/images-big/histogram-ukrainian.svg delete mode 100644 src/images-big/linechart-original.svg delete mode 100644 src/images-big/linechart-ukrainian.svg delete mode 100644 src/images-big/piechart-original.svg delete mode 100644 src/images-big/piechart-ukrainian.svg delete mode 100644 src/images-big/scatterplot-original.svg delete mode 100644 src/images-big/scatterplot-ukrainian.svg delete mode 100644 src/images-big/stacked100-original.svg delete mode 100644 src/images-big/stacked100-ukrainian.svg delete mode 100644 src/images-big/stackedareachart-original.svg delete mode 100644 src/images-big/stackedareachart-ukrainian.svg delete mode 100644 src/images-big/stackedbarchart-original.svg delete mode 100644 src/images-big/stackedbarchart-ukrainian.svg delete mode 100644 src/images-big/treemap-original.svg delete mode 100644 src/images-big/treemap-ukrainian.png delete mode 100644 src/images-big/treemap-ukrainian.svg diff --git a/src/charts/areachart-original.vl.json b/public/charts/areachart-original.vl.json similarity index 100% rename from src/charts/areachart-original.vl.json rename to public/charts/areachart-original.vl.json diff --git a/src/charts/areachart-ukrainian.vl.json b/public/charts/areachart-ukrainian.vl.json similarity index 100% rename from src/charts/areachart-ukrainian.vl.json rename to public/charts/areachart-ukrainian.vl.json diff --git a/src/charts/barchart-original.vl.json b/public/charts/barchart-original.vl.json similarity index 100% rename from src/charts/barchart-original.vl.json rename to public/charts/barchart-original.vl.json diff --git a/src/charts/barchart-ukrainian.vl.json b/public/charts/barchart-ukrainian.vl.json similarity index 100% rename from src/charts/barchart-ukrainian.vl.json rename to public/charts/barchart-ukrainian.vl.json diff --git a/src/charts/bubblechart-original.vl.json b/public/charts/bubblechart-original.vl.json similarity index 100% rename from src/charts/bubblechart-original.vl.json rename to public/charts/bubblechart-original.vl.json diff --git a/src/charts/bubblechart-ukrainian.vl.json b/public/charts/bubblechart-ukrainian.vl.json similarity index 100% rename from src/charts/bubblechart-ukrainian.vl.json rename to public/charts/bubblechart-ukrainian.vl.json diff --git a/src/charts/choropleth-original.vl.json b/public/charts/choropleth-original.vl.json similarity index 100% rename from src/charts/choropleth-original.vl.json rename to public/charts/choropleth-original.vl.json diff --git a/src/charts/choropleth-ukrainian.vl.json b/public/charts/choropleth-ukrainian.vl.json similarity index 100% rename from src/charts/choropleth-ukrainian.vl.json rename to public/charts/choropleth-ukrainian.vl.json diff --git a/src/charts/histogram-original.vl.json b/public/charts/histogram-original.vl.json similarity index 100% rename from src/charts/histogram-original.vl.json rename to public/charts/histogram-original.vl.json diff --git a/src/charts/histogram-ukrainian.vl.json b/public/charts/histogram-ukrainian.vl.json similarity index 100% rename from src/charts/histogram-ukrainian.vl.json rename to public/charts/histogram-ukrainian.vl.json diff --git a/src/charts/linechart-original.vl.json b/public/charts/linechart-original.vl.json similarity index 100% rename from src/charts/linechart-original.vl.json rename to public/charts/linechart-original.vl.json diff --git a/src/charts/linechart-ukrainian.vl.json b/public/charts/linechart-ukrainian.vl.json similarity index 100% rename from src/charts/linechart-ukrainian.vl.json rename to public/charts/linechart-ukrainian.vl.json diff --git a/src/charts/piechart-original.vl.json b/public/charts/piechart-original.vl.json similarity index 100% rename from src/charts/piechart-original.vl.json rename to public/charts/piechart-original.vl.json diff --git a/src/charts/piechart-ukrainian.vl.json b/public/charts/piechart-ukrainian.vl.json similarity index 100% rename from src/charts/piechart-ukrainian.vl.json rename to public/charts/piechart-ukrainian.vl.json diff --git a/src/charts/scatterplot-original.vl.json b/public/charts/scatterplot-original.vl.json similarity index 100% rename from src/charts/scatterplot-original.vl.json rename to public/charts/scatterplot-original.vl.json diff --git a/src/charts/scatterplot-ukrainian.vl.json b/public/charts/scatterplot-ukrainian.vl.json similarity index 100% rename from src/charts/scatterplot-ukrainian.vl.json rename to public/charts/scatterplot-ukrainian.vl.json diff --git a/src/charts/stacked100-original.vl.json b/public/charts/stacked100-original.vl.json similarity index 100% rename from src/charts/stacked100-original.vl.json rename to public/charts/stacked100-original.vl.json diff --git a/src/charts/stacked100-ukrainian.vl.json b/public/charts/stacked100-ukrainian.vl.json similarity index 100% rename from src/charts/stacked100-ukrainian.vl.json rename to public/charts/stacked100-ukrainian.vl.json diff --git a/src/charts/stackedareachart-original.vl.json b/public/charts/stackedareachart-original.vl.json similarity index 100% rename from src/charts/stackedareachart-original.vl.json rename to public/charts/stackedareachart-original.vl.json diff --git a/src/charts/stackedareachart-ukrainian.vl.json b/public/charts/stackedareachart-ukrainian.vl.json similarity index 100% rename from src/charts/stackedareachart-ukrainian.vl.json rename to public/charts/stackedareachart-ukrainian.vl.json diff --git a/src/charts/stackedbarchart-original.vl.json b/public/charts/stackedbarchart-original.vl.json similarity index 100% rename from src/charts/stackedbarchart-original.vl.json rename to public/charts/stackedbarchart-original.vl.json diff --git a/src/charts/stackedbarchart-ukrainian.vl.json b/public/charts/stackedbarchart-ukrainian.vl.json similarity index 100% rename from src/charts/stackedbarchart-ukrainian.vl.json rename to public/charts/stackedbarchart-ukrainian.vl.json diff --git a/src/charts/treemap-original.vl.json b/public/charts/treemap-original.vl.json similarity index 100% rename from src/charts/treemap-original.vl.json rename to public/charts/treemap-original.vl.json diff --git a/src/charts/treemap-ukrainian.vl.json b/public/charts/treemap-ukrainian.vl.json similarity index 100% rename from src/charts/treemap-ukrainian.vl.json rename to public/charts/treemap-ukrainian.vl.json diff --git a/src/css/styles.css b/public/css/styles.css similarity index 100% rename from src/css/styles.css rename to public/css/styles.css diff --git a/src/data/barchart.csv b/public/data/barchart.csv similarity index 100% rename from src/data/barchart.csv rename to public/data/barchart.csv diff --git a/src/data/bubblechart.csv b/public/data/bubblechart.csv similarity index 100% rename from src/data/bubblechart.csv rename to public/data/bubblechart.csv diff --git a/src/data/choropleth.csv b/public/data/choropleth.csv similarity index 100% rename from src/data/choropleth.csv rename to public/data/choropleth.csv diff --git a/src/data/histogram.csv b/public/data/histogram.csv similarity index 100% rename from src/data/histogram.csv rename to public/data/histogram.csv diff --git a/src/data/linechart.json b/public/data/linechart.json similarity index 100% rename from src/data/linechart.json rename to public/data/linechart.json diff --git a/src/data/piechart.csv b/public/data/piechart.csv similarity index 100% rename from src/data/piechart.csv rename to public/data/piechart.csv diff --git a/src/data/questions.json b/public/data/questions.json similarity index 100% rename from src/data/questions.json rename to public/data/questions.json diff --git a/src/data/scatterplot.csv b/public/data/scatterplot.csv similarity index 100% rename from src/data/scatterplot.csv rename to public/data/scatterplot.csv diff --git a/src/data/stacked100.csv b/public/data/stacked100.csv similarity index 100% rename from src/data/stacked100.csv rename to public/data/stacked100.csv diff --git a/src/data/stackedbarchart.csv b/public/data/stackedbarchart.csv similarity index 100% rename from src/data/stackedbarchart.csv rename to public/data/stackedbarchart.csv diff --git a/src/data/state-coordinates.json b/public/data/state-coordinates.json similarity index 100% rename from src/data/state-coordinates.json rename to public/data/state-coordinates.json diff --git a/src/data/topo-USA.json b/public/data/topo-USA.json similarity index 100% rename from src/data/topo-USA.json rename to public/data/topo-USA.json diff --git a/src/data/treemap-en.png b/public/data/treemap-en.png similarity index 100% rename from src/data/treemap-en.png rename to public/data/treemap-en.png diff --git a/src/data/treemap-uk.png b/public/data/treemap-uk.png similarity index 100% rename from src/data/treemap-uk.png rename to public/data/treemap-uk.png diff --git a/src/images/areachart-original.svg b/public/images/areachart-original.svg similarity index 100% rename from src/images/areachart-original.svg rename to public/images/areachart-original.svg diff --git a/src/images/areachart-ukrainian.svg b/public/images/areachart-ukrainian.svg similarity index 100% rename from src/images/areachart-ukrainian.svg rename to public/images/areachart-ukrainian.svg diff --git a/src/images/barchart-original.svg b/public/images/barchart-original.svg similarity index 100% rename from src/images/barchart-original.svg rename to public/images/barchart-original.svg diff --git a/src/images/barchart-ukrainian.svg b/public/images/barchart-ukrainian.svg similarity index 100% rename from src/images/barchart-ukrainian.svg rename to public/images/barchart-ukrainian.svg diff --git a/src/images/bubblechart-original.svg b/public/images/bubblechart-original.svg similarity index 100% rename from src/images/bubblechart-original.svg rename to public/images/bubblechart-original.svg diff --git a/src/images/bubblechart-ukrainian.svg b/public/images/bubblechart-ukrainian.svg similarity index 100% rename from src/images/bubblechart-ukrainian.svg rename to public/images/bubblechart-ukrainian.svg diff --git a/src/images/choropleth-original.svg b/public/images/choropleth-original.svg similarity index 100% rename from src/images/choropleth-original.svg rename to public/images/choropleth-original.svg diff --git a/src/images/choropleth-ukrainian.svg b/public/images/choropleth-ukrainian.svg similarity index 100% rename from src/images/choropleth-ukrainian.svg rename to public/images/choropleth-ukrainian.svg diff --git a/src/images/histogram-original.svg b/public/images/histogram-original.svg similarity index 100% rename from src/images/histogram-original.svg rename to public/images/histogram-original.svg diff --git a/src/images/histogram-ukrainian.svg b/public/images/histogram-ukrainian.svg similarity index 100% rename from src/images/histogram-ukrainian.svg rename to public/images/histogram-ukrainian.svg diff --git a/src/images/linechart-original.svg b/public/images/linechart-original.svg similarity index 100% rename from src/images/linechart-original.svg rename to public/images/linechart-original.svg diff --git a/src/images/linechart-ukrainian.svg b/public/images/linechart-ukrainian.svg similarity index 100% rename from src/images/linechart-ukrainian.svg rename to public/images/linechart-ukrainian.svg diff --git a/src/images/piechart-original.svg b/public/images/piechart-original.svg similarity index 100% rename from src/images/piechart-original.svg rename to public/images/piechart-original.svg diff --git a/src/images/piechart-ukrainian.svg b/public/images/piechart-ukrainian.svg similarity index 100% rename from src/images/piechart-ukrainian.svg rename to public/images/piechart-ukrainian.svg diff --git a/src/images/scatterplot-original.svg b/public/images/scatterplot-original.svg similarity index 100% rename from src/images/scatterplot-original.svg rename to public/images/scatterplot-original.svg diff --git a/src/images/scatterplot-ukrainian.svg b/public/images/scatterplot-ukrainian.svg similarity index 100% rename from src/images/scatterplot-ukrainian.svg rename to public/images/scatterplot-ukrainian.svg diff --git a/src/images/stacked100-original.svg b/public/images/stacked100-original.svg similarity index 100% rename from src/images/stacked100-original.svg rename to public/images/stacked100-original.svg diff --git a/src/images/stacked100-ukrainian.svg b/public/images/stacked100-ukrainian.svg similarity index 100% rename from src/images/stacked100-ukrainian.svg rename to public/images/stacked100-ukrainian.svg diff --git a/src/images/stackedareachart-original.svg b/public/images/stackedareachart-original.svg similarity index 100% rename from src/images/stackedareachart-original.svg rename to public/images/stackedareachart-original.svg diff --git a/src/images/stackedareachart-ukrainian.svg b/public/images/stackedareachart-ukrainian.svg similarity index 100% rename from src/images/stackedareachart-ukrainian.svg rename to public/images/stackedareachart-ukrainian.svg diff --git a/src/images/stackedbarchart-original.svg b/public/images/stackedbarchart-original.svg similarity index 100% rename from src/images/stackedbarchart-original.svg rename to public/images/stackedbarchart-original.svg diff --git a/src/images/stackedbarchart-ukrainian.svg b/public/images/stackedbarchart-ukrainian.svg similarity index 100% rename from src/images/stackedbarchart-ukrainian.svg rename to public/images/stackedbarchart-ukrainian.svg diff --git a/src/images/treemap-original.png b/public/images/treemap-original.png similarity index 100% rename from src/images/treemap-original.png rename to public/images/treemap-original.png diff --git a/src/images/treemap-ukrainian.png b/public/images/treemap-ukrainian.png similarity index 100% rename from src/images/treemap-ukrainian.png rename to public/images/treemap-ukrainian.png diff --git a/src/js/app.js b/public/js/app.js similarity index 100% rename from src/js/app.js rename to public/js/app.js diff --git a/src/js/consent.js b/public/js/consent.js similarity index 100% rename from src/js/consent.js rename to public/js/consent.js diff --git a/src/js/questionnaire.js b/public/js/questionnaire.js similarity index 100% rename from src/js/questionnaire.js rename to public/js/questionnaire.js diff --git a/src/js/quiz.js b/public/js/quiz.js similarity index 100% rename from src/js/quiz.js rename to public/js/quiz.js diff --git a/src/js/results.js b/public/js/results.js similarity index 100% rename from src/js/results.js rename to public/js/results.js diff --git a/server.js b/server.js index 31455f5..799ca67 100644 --- a/server.js +++ b/server.js @@ -6,7 +6,7 @@ const axios = require('axios'); const app = express(); const PORT = process.env.PORT || 3000; -const WEBHOOK_URL = process.env.WEBHOOK_URL; +const WEBHOOK_URL = "https://n8n.olehomelchenko.com/webhook/kse-research"; app.use(bodyParser.json()); app.use(express.static(path.join(__dirname, 'public'))); @@ -23,6 +23,7 @@ app.post('/api/responses', (req, res) => { // Redirect payload to webhook if (WEBHOOK_URL) { + console.log("sending to ", WEBHOOK_URL); axios.post(WEBHOOK_URL, JSON.stringify(response), { headers: { 'Content-Type': 'application/json' diff --git a/src/images-big/areachart-original.svg b/src/images-big/areachart-original.svg deleted file mode 100644 index 8f3c7e8..0000000 --- a/src/images-big/areachart-original.svg +++ /dev/null @@ -1 +0,0 @@ -Apr 2018Jul 2018Oct 2018Jan 2019Apr 2019Jul 2019Oct 20190.500.550.600.650.700.750.800.85Coffee Price ($/lb)Robusta Coffee Price \ No newline at end of file diff --git a/src/images-big/areachart-ukrainian.svg b/src/images-big/areachart-ukrainian.svg deleted file mode 100644 index eed09ef..0000000 --- a/src/images-big/areachart-ukrainian.svg +++ /dev/null @@ -1 +0,0 @@ -кві 2018лип 2018жов 2018січ 2019кві 2019лип 2019жов 20190.500.550.600.650.700.750.800.85Ціна кави ($/фунт)Ціна кави Робуста \ No newline at end of file diff --git a/src/images-big/barchart-original.svg b/src/images-big/barchart-original.svg deleted file mode 100644 index 4b6820f..0000000 --- a/src/images-big/barchart-original.svg +++ /dev/null @@ -1 +0,0 @@ -AustraliaChinaHong KongIndiaIndonesiaJapanMalaysiaNew ZealandSingaporeSouth KoreaSri LankaTaiwanThailandVietnam0102030405060708090100Internet Speed (Mbps)Global Internet Speed (Mbps) \ No newline at end of file diff --git a/src/images-big/barchart-ukrainian.svg b/src/images-big/barchart-ukrainian.svg deleted file mode 100644 index 5347e7b..0000000 --- a/src/images-big/barchart-ukrainian.svg +++ /dev/null @@ -1 +0,0 @@ -ІндонезіяІндіяАвстраліяВ'єтнамГонконгКитайМалайзіяНова ЗеландіяПівденна КореяСінгапурТайваньТаїландШрі-ЛанкаЯпонія0102030405060708090100Швидкість інтернету (МБіт/с)Світова швидкість інтернету (МБіт/с) \ No newline at end of file diff --git a/src/images-big/bubblechart-original.svg b/src/images-big/bubblechart-original.svg deleted file mode 100644 index d794225..0000000 --- a/src/images-big/bubblechart-original.svg +++ /dev/null @@ -1 +0,0 @@ -150200250300350400450500550600650700750800Number of Stations150200250300350400450500Total System Length (Km)DelhiGuangzhowTokyoMexico CityLondonSeoulParisBeijingShanghaiN.Y.C.234Ridership (bn per year)Metro Systems of the World \ No newline at end of file diff --git a/src/images-big/bubblechart-ukrainian.svg b/src/images-big/bubblechart-ukrainian.svg deleted file mode 100644 index 8ae3b03..0000000 --- a/src/images-big/bubblechart-ukrainian.svg +++ /dev/null @@ -1 +0,0 @@ -150200250300350400450500550600650700750800Кількість станцій150200250300350400450500Загальна довжина системи (км)ДеліГуанчжоуТокіоМехікоЛондонСеулПарижПекінШанхайНью-Йорк234Пасажиропотік (млрд на рік)Системи метро світу \ No newline at end of file diff --git a/src/images-big/choropleth-original.svg b/src/images-big/choropleth-original.svg deleted file mode 100644 index f59062e..0000000 --- a/src/images-big/choropleth-original.svg +++ /dev/null @@ -1 +0,0 @@ -NESDUTNDIAIDMEVTWYALKSMTARMOOKMNSCVAWIGAKYNHMDINCONCTNORTXFLAKDEAZCTDCMSOHLAWVNMWAMAPNRIILNJMINYCAHINV681012Unemployment Rate (%)Unemployment Rates for States in 2020 \ No newline at end of file diff --git a/src/images-big/choropleth-ukrainian.svg b/src/images-big/choropleth-ukrainian.svg deleted file mode 100644 index de7ba3c..0000000 --- a/src/images-big/choropleth-ukrainian.svg +++ /dev/null @@ -1 +0,0 @@ -ЛьвІвФТерм.КВолРівЗакЧнцК.оХарЧркДніСумПолЗапХерВінЖитХмеОдеКірСевЧнгДонМикЛугАРК02,0004,0006,0008,000Кількість шлюбів в першому півріччі 2024 р. \ No newline at end of file diff --git a/src/images-big/histogram-original.svg b/src/images-big/histogram-original.svg deleted file mode 100644 index 53ec354..0000000 --- a/src/images-big/histogram-original.svg +++ /dev/null @@ -1 +0,0 @@ -0102030405060708090100110Distance (in Km)020406080100120140160180200220240260Number of CustomersTrip Distance and Customers \ No newline at end of file diff --git a/src/images-big/histogram-ukrainian.svg b/src/images-big/histogram-ukrainian.svg deleted file mode 100644 index af074cf..0000000 --- a/src/images-big/histogram-ukrainian.svg +++ /dev/null @@ -1 +0,0 @@ -0102030405060708090100110Відстань (км)020406080100120140160180200220240260Кількість клієнтівВідстань поїздки та клієнти \ No newline at end of file diff --git a/src/images-big/linechart-original.svg b/src/images-big/linechart-original.svg deleted file mode 100644 index 4057559..0000000 --- a/src/images-big/linechart-original.svg +++ /dev/null @@ -1 +0,0 @@ -Feb 2020Mar 2020Apr 2020May 2020Jun 2020Jul 2020Aug 2020Sep 2020Oct 2020Nov 2020Dec 2020Month051015202530354045505560Oil Price (USD)Oil Prices \ No newline at end of file diff --git a/src/images-big/linechart-ukrainian.svg b/src/images-big/linechart-ukrainian.svg deleted file mode 100644 index 39863ec..0000000 --- a/src/images-big/linechart-ukrainian.svg +++ /dev/null @@ -1 +0,0 @@ -лют 2020бер 2020кві 2020тра 2020чер 2020лип 2020сер 2020вер 2020жов 2020лис 2020гру 2020Місяць051015202530354045505560Ціна за барель нафти ($)Ціни на нафту \ No newline at end of file diff --git a/src/images-big/piechart-original.svg b/src/images-big/piechart-original.svg deleted file mode 100644 index 722d48a..0000000 --- a/src/images-big/piechart-original.svg +++ /dev/null @@ -1 +0,0 @@ -SamsungXiaomiAppleOppoVivoOthersGlobal Smartphone Market Share in 2021 \ No newline at end of file diff --git a/src/images-big/piechart-ukrainian.svg b/src/images-big/piechart-ukrainian.svg deleted file mode 100644 index 73418a2..0000000 --- a/src/images-big/piechart-ukrainian.svg +++ /dev/null @@ -1 +0,0 @@ -SamsungXiaomiAppleOppoVivoІншіРозподіл світового ринку смартфонів у 2021 році \ No newline at end of file diff --git a/src/images-big/scatterplot-original.svg b/src/images-big/scatterplot-original.svg deleted file mode 100644 index aa5904d..0000000 --- a/src/images-big/scatterplot-original.svg +++ /dev/null @@ -1 +0,0 @@ -156158160162164166168170172174176178180182184186188190Height (cm)4045505560657075Weight (kg)Weight and Height of 85 Individuals \ No newline at end of file diff --git a/src/images-big/scatterplot-ukrainian.svg b/src/images-big/scatterplot-ukrainian.svg deleted file mode 100644 index 3738bc1..0000000 --- a/src/images-big/scatterplot-ukrainian.svg +++ /dev/null @@ -1 +0,0 @@ -156158160162164166168170172174176178180182184186188190Зріст (см)4045505560657075Вага (кг)Вага та зріст 85 осіб \ No newline at end of file diff --git a/src/images-big/stacked100-original.svg b/src/images-big/stacked100-original.svg deleted file mode 100644 index 5aecdbe..0000000 --- a/src/images-big/stacked100-original.svg +++ /dev/null @@ -1 +0,0 @@ -AustraliaGreat BritainJapanU.S.A.0%10%20%30%40%50%60%70%80%90%100%PercentageGoldSilverBronzeMedalsOlympic Medal Distribution by Country \ No newline at end of file diff --git a/src/images-big/stacked100-ukrainian.svg b/src/images-big/stacked100-ukrainian.svg deleted file mode 100644 index 4bd01aa..0000000 --- a/src/images-big/stacked100-ukrainian.svg +++ /dev/null @@ -1 +0,0 @@ -АвстраліяВелика БританіяСШАЯпонія0%10%20%30%40%50%60%70%80%90%100%ВідсотокЗолотоСріблоБронзаМедаліРозподіл олімпійських медалей за країною \ No newline at end of file diff --git a/src/images-big/stackedareachart-original.svg b/src/images-big/stackedareachart-original.svg deleted file mode 100644 index 0528dd5..0000000 --- a/src/images-big/stackedareachart-original.svg +++ /dev/null @@ -1 +0,0 @@ -200920102011201220132014Year02,0004,0006,0008,00010,00012,00014,00016,000Number of GirlsAmeliaIslaOliviaPopular Girls' names in the UK \ No newline at end of file diff --git a/src/images-big/stackedareachart-ukrainian.svg b/src/images-big/stackedareachart-ukrainian.svg deleted file mode 100644 index 4a3ca3b..0000000 --- a/src/images-big/stackedareachart-ukrainian.svg +++ /dev/null @@ -1 +0,0 @@ -2,009.02,009.22,009.42,009.62,009.82,010.02,010.22,010.42,010.62,010.82,011.02,011.22,011.42,011.62,011.82,012.02,012.22,012.42,012.62,012.82,013.02,013.22,013.42,013.62,013.82,014.0Рік02,0004,0006,0008,00010,00012,00014,00016,000Кількість тоннЛиповийГречанийАкацієвийПопулярність виробництва сортів меду \ No newline at end of file diff --git a/src/images-big/stackedbarchart-original.svg b/src/images-big/stackedbarchart-original.svg deleted file mode 100644 index 7b87c44..0000000 --- a/src/images-big/stackedbarchart-original.svg +++ /dev/null @@ -1 +0,0 @@ -CopenhagenHelsinkiN.Y.C.OsloParisSeoulSingaporeStockholmTorontoZurichCities0510152025303540455055606570Cost ($)VodkaSodaPeanutWaterSandwichRoom Service Prices \ No newline at end of file diff --git a/src/images-big/stackedbarchart-ukrainian.svg b/src/images-big/stackedbarchart-ukrainian.svg deleted file mode 100644 index c50ead8..0000000 --- a/src/images-big/stackedbarchart-ukrainian.svg +++ /dev/null @@ -1 +0,0 @@ -ГельсінкіКопенгагенНью-ЙоркОслоПарижСеулСтокгольмСінгапурТоронтоЦюрихМісто0510152025303540455055606570Ціна ($)ГорілкаГазована водаАрахісВодаСендвічЦіни на обслуговування в номері \ No newline at end of file diff --git a/src/images-big/treemap-original.svg b/src/images-big/treemap-original.svg deleted file mode 100644 index 51c03ad..0000000 --- a/src/images-big/treemap-original.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/images-big/treemap-ukrainian.png b/src/images-big/treemap-ukrainian.png deleted file mode 100644 index a6110ae13d81049388d5b73f7aace1b234567c92..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 41684 zcmd?RRa9Ne5-to2cXx**Sa5fDmjs6d2qd_>OK=DwSg?glaCdhIEC}uz77oGvPWHX$ z?7hc0kN?~Mz*qz5HM_g2y1MGC`euZ>svHI?DJl#M42FWdv?dG;?D_K#G9vJok(t#< z-~-lKQ%(}5e2jb-28J3&L0UrF!}uTr!2^GGw%-JqbZMDUe`z@bk>xA6%P3MQe&dL> zuk7QeDq5K+BzMMg6kN%WkYjKA#~LF^YP>o0p|Pg%UxnuGzlXiY#*QW^48{p`MvHu$W{4Ln#>;E@0 zfZ-hyDl+7-Gn^CtzmE)H75(cm&tv8SK_C|)_8fGH|ICLCj>7uyRBqq^m}Sgp2C4tI z7;FS!YPkQ;rjB3f@Hbh(?5Fwr`O0N5fsZRwsDo=V&%1w~S4dqvzz#|F8_j>01#&t4 z&p$OfG4Zj%i-9;FkpH_Z7$cwmimwt5ShCwYX_BD-D?4D*;zU&c-OhnHAT0`FjnDs; z2r{G(>A#Zv|LfG9+~QZ4m;F&hY}jIcKE2^MJ($Y$|5r)W8;mEHhX&U-H-WQT{Ei#c z7NaRR_SoyS1I>Yti}oGw`yvUl$YnEyJ=tBL5C=hJut9@e3a>3`xp7;h@7?A4xY*OZ zxyi^k#^9snmaxSt`GIF~cYuW44m#5XoJGC6`(wy1bQt9P;z8E4dAphYJLDJY!#I;EtA>;QamlU5=JWxGcwj znT!k#D}8SMI0zB$rT{ho)d^rfhGh3xs(Cy;wmqV552`bt>{oQ;d>Ba@OygryOlFPg zjliR`U8uc29iUo=LW%cow?ftkka-|-ag=2idiqVicf80WU~w_G1LB!dyG2r;4vSwO$oGXz~V2VNUB<5!q;$o_a+R_T6hywvK6C*b^BdcOL@ z^p#GzVV8;jLwEvV|ZZ9-Sbvaxy*+4ZGKQ*81X3Hs(UhC!D zzO678!DrNjzdByk*+J0p2z>9GZtn2=_PFDzFeTKBbseC5Ubl@N0BM&TT+g-GoCdtmLa487Ki1wnL7z?#vIU6>Gk{@D&$_0aj4@vZl~b)BJW}dYWLi!UQRI70_e0$LYpi zBa1=(8el#}1`Vv5dGgt!-hZ}G3RE*n#y;dJ$I!||;+K|8Spw$5@BBNuxt!O28a z{47ZUCj!>AezM*ppCMTH{lzQg6m?(M-N}~+^EF5^QG{=JKcw>6XKr9LS=b8Qf_Mtp zP8RHc@@5X)s%44VeoD}}nJ)+pS&+q(st_hj6kq6?abiyWv_)p(weTrT~#ZcK zR!Z)7-iyYIm#P8$i;1+r1w_LPCW7+WEve6v8Vh@}&>ZLzzdl*$`5=>Y+f zU#efHsB)3+OYygv^J?PP?lqv%}>siSGO zW6-RBP|VXTD!qas?RH8r(ZvTN{h=h5G|+A#cLOC>@Q-CPCtq#JnQe#GqW!wNIlhq5t7U47cD?%| zy0^KRTTS?V_0yq)X=lXeOjBp@FKQR20*z~X(pZP>(Jvbsy%3lTE^5m07#kPE$Fv$c z(r`(f8B)mca!VntBc&8g-TZP80@^ofc;`@50vEW4u3#kjM5e^=DwEms#^1R=ebaKN zmy`Pyu#zK##-o%+=OC+WSqP}uoF=6hjh^Xst9-5PB4He*h-LzuDkvq8-)Re()vyuF z%0$j)SrtRd1JZg6hlt*pr;zaN3>k9K*g#H)DsJ=|W%vuN3kGy5I{sZE)0?S~v`UNf zVQ9hxVU1I?`qRx0)rG+a>Hbx=3W3(6(_5))YuNBh?;S^Y!7hi(13g!a^^4Hia6bE$ zqW!3vnwn-ecFpY<0T-vF;$QUPG7dR#f4c`GVssD2(%qn&C<6Wu8&n?%lu4kk}et(`?3ArkB2wO#C zsl+JTye=ev6{x&%+qzoyM+z3(>k<9fg~ye7AMJ`89l}LtYhB==d3LfcHEn;H=sWd_ zVMc=b$rlQtaj5wA8;=x{T1+h!1oEA$d~X#;EFgJ@caW~$8%tsEfzJl^{PE$=Y&3<# zs)OiBtt>_6x#fBdWBI|wfv9s{? zT~oD$sh=Ppu)DxPvt)?y@M0CA=!nQ#s)(g@E|PL1uN}D9JIq4H6c8$OT3J7N=kiOe zi!!L{Ki~MJo#_04lSC|tA<;ec%Kw0YY@q6JEmBdHURf!!Crj;|8ZeUlI{Gt;hHM_X zlgHt2V()WkHuaDV92c5Ra2NP3f8aZ^Rzl9rP6a|V9(qU}aynq5xX3OGCi`>)CHcFa z7~?4%xsla%2MBQVtUa8+Mh-&zIasW1e1BSUk9|zz-SjkvqbFT(g5F;2PhUyUog-q9 z7Cly1Oc_K$QYY3dY*_=<#e&lDChSpNy2HlAE3rs8r6WZAAAPocTucR>Khn8?;<|rD zq#Wf;?E1Li0#YhUDkzZRa4jGxD7@DD7&taX{7W-E{!^M2f5CcB7;_h6E24|7#Q^V( z)O(llIxuj3J|>7;X1MT{TfS7wG|cFs3P5z3QJ~+pDYIW~2e~}VItXauS2AGhgPm=^ zgH364Q&i|2uDxGSr|#9SNEb?^?wa^f;X;~phS4~%+6_SNS zC+P)&GWLHhrH(VCrotPq&bg_BxeiCHk0Uv%>_AzT5HbZ!lcf~Pgv6-FU{B3}(x)w|BuxRBfDWtB{0dl5ClJ=_EQTBWj%m@|}l|2-W)nK)(OOL36#z0d2Oow9_Nl7z8t<~UJYY=Rd z;F^=XCdm_h*U;bGiGB=G-N{dIv{@h(oc#tp0Tz`H8Y{h_OF%Yac!?Tf{Cp}p-WY4A zYM4c)uWjhl=Q92GsqKuAz~>@_7rg7`76|50_3}`evdKB5f^bs7^HfZe3&GKLe^;t+UEy4q=3R)V z8;S~GmKVBE zbQ;tULMS@rwfE*9O069Dh$Khz^U?66PMX1#$8Gye4Nm%tg@V=b{3Q|sT+RE#GapdM ztQaWTVXZFYlf7gbwHXSkOF{9x7#|;>QgbF`3e6?x+Z~8sRPy_mjf=1}2(sWl#kozE zo(5~OlVs27*+Q=vo$Y))b%AKBEbhIb=~_x1kHZRVr#3e| zVh97h=4dSE^~N%yK6T$~HhQuUZhB&U6EP$gL<@8V5?xM;F*jt@?yq|BLkaZ$=X5B| zpUanj_BnFq{BBIK{Vg5mIuC-T>rNaGN~^LCez(tbD&&O6{zY?lb*v*far%*+G-_L` zK?eTKG$}Ma&`P!7aB}NZB5-V+A7yPT(3(A+m|dp4%>LB74M#9;J31b7go+bQ;%614 zxHM1|`PZi#y6x9#si-U$-Dg3-y%D%8c$vth3d97irBO;mE=)&9Qx^Fkm%s!DY%c^! zG?(s}S!6rmZTnWs@k}OaNX`f2*%Z;=$4RrCtn^MbC4{G+@w3k)e_G@EKSe|JsA%M1 zoGQ?hXOV?icX7US0YUvs<6j;uFSdxy0i~rEVNWf13DA>(dYZ^fud|dSUZIEerP`h(FIW|q|j}Vg74?)f-JRFsH?h?1!@t`VlE+i3GqoK zOSw{wI-e?2ZGP03099Lon>Fc(i!+ZP!(V(wItUFT8R+lc4KQSdzT0^bhFy;UsS_bg z?}R*YcVHwSi=2z)c3#jE+DdgNPi1H1=KtBP;wNf+_5M7b7zTw}=6>;93x&*63(~rF!AEFe$&LJflO+81LE$vU*hL zm2FhnR2BW{jjVZ>5p(TJ{{6bG3bOf~@flvX-KGMoP0S-*KTBT~^zt`lES&3F4OgE= zlCo|yU40m}<~qiwslJXaTz@)SyQj@N>$&w_ZYT?Nl@rzJu+SA0(~?#$+-Jnk+GQq< z-z70fUJJ0>=gkuZ7Q`+a2o`T}{UH%(w||>2szEIYlR?Jb*b;Be=VjT$&BB+-!P1xU zb;$>pP{z9vjxP{uq=+2lC!Yae87Ho&?54j9*bCIlvhFWk>mJ>C0o`1E7V6p#eNnIZ zX0Ph4I1!{NlUW8InGN+MXyooxKyOnp7vGtw6XRW$Hw`}3XfKa0W4%T|s)lG;OovGM zdRi5GCHig~%&I1lk+^%wHhkfun9qox;$lvKCiR*T4Cbgv5pN?l)XXwgCjN6^L%cjk z9B3tTrLpb7c*8+jt!+A}BD1}FI%d`d z)^|Pt%f!#rknONAKVzU`UGKb>5Uew_7v7qxwJ;9j8of1_=nZnA5FDb(39tiDo#y=N zeK-VY|971LOk_yRg}|qu@BrAQ^3I$>3Lm_WJ@h#Y8G-=ib)hd-#7EW^4`9s{2fo&S z8wg_*U{^YzU|sNxETM9R@yo+{h2zej!@xGfEEizDOpE~GW=COt1fCXif$;oC-MEAq zjO19ZJ?H?H%F%4SyJ0|H@<)6cP7kI3Eh%}^-5tR_hTjmhnXxA&(~BS zG@H>7O;u>)E6Mp@>+Uh=))x$V{ZV5A1az3*=|w-)Id3Fw9)MNA3d(*dN! zl{g}6@hRNYv)V@q<$wyh%;YB5f6N75{MPAyS)D%TjC+POHn2qJJhkexIiI^2ck+9h z?1fSqx+8AyO(#R#qi@J8Wv2XBCXNmI2>YAZo#i$+BG|{{cu{Y`r4C0E6>?f3X<2o! znD;d~Tc!uK!rqJUWQG+!o@Q>!dO+HL^dYWoah$`Z_v`DpWgzn+M z9iIC!N_@w3R`^I;V_(PqR5N2hi@(0=4KAb{{4TnU#7oCKX4n*S1=HS89an}>cZW2> zZ|U4MJi;tGd3f3p7ysIb6X8szhj6o7jOdG?vsL>1@n;(5FzU@Kl4*e-uS&ZoCkk)<>%Z&d|vw#0K-P{slyt;v`HkIGH9{W>(8(jO8f5ahAK}BX1jEe zLw{>Z!7eWjV3Cx#YJ*QMyu)@VD;!M^`K6;s5ypHAbfX<_|F9%>uRiUw5sO~&wVwXz zpQBU}MLF+FyEKKC@-QTd30-EjhVWi6n>w`IuFo`j1wNjnB1Li^#gQ#q(mD<$c{I9< zlAB5EZ0cX$`JIzLF%J_Cqcn^(tP^vQ-ZqpM(w=+AEo&5Mm~4$_!ctbOu3e-x@VEHo z1PKPJhEoYR6GUtdbOmZ9JJ@Z$;6b4^`|~hIcDlh&8yO5Y_c+9}8Dyk*qwjb~3bhw$ zThj;gyfxA*cKLI089IQ66=f0KZ*S5Xqvvb!eyU$19G3?*bICi%c-q@+cmCz|)t`8TDD@8xv>!ktvk=G12dyU-FpyH_k}#NU;_@n3(uxckV_*d${hd%?`gGSJ0>>P)oV8@P}eQt=*o< zt!yDCrOLFkI40pX)|O{z0^d1y^pRT9|K|Rsm-bPFVW0B@pVo@I{xn;kC;?DJC^V81 zVlsevcs%kfnzG>MRXYsEAHt>8OMT14bpNSa6AeP~hdW^Qlpvgv#UXg<6m3?cX7i)) zqtJ=|&M{Sh@P&W(22O?sgXKF5b+wSku~jOihWi*Jxv`Cv&7HM{ho~MUN#@}91N*Ro zx!a90Y45Lsvf^3a;2wxMqWHdg-B*@TqeUu%;G@~R+IEmD7RA~?<)BtA*dGE3| z8kz6NOEfCRizV0a0C$vbFO*YuyR=h=rN3o+qY*MzEa5ciOdB#N*QM`?Nv&HH; z5eN~wQMf@bCH+6BK+aEg>kbEDV^VC_SPc;Qy_g!a>K06Wb zw2mm0+JKzb5*+Ko(X5M1oSqqOo+P=Akx z!`kj;YgP$U!L+@db(GKKr~Hj>7j<@F|n2h?q8zT`c{o$i>s9KS?U=#IV|Yz7%dTsbiYQrKWh zl@;0JoImQK1y*m-4VeS<{KLIyjTo(5WQf^L`TFhhfJ3?Q<>nzCE)gQAk4PXAE$@wo|-aOxxZeG*fvY1dtV)L z;Leaj&0n|D}?&M}SWf;lql^269Mg>i>R%yk5w&p8+tlxDpi()?D~#A{>g zNQ>c3OWti&tM3^hg_3K3P6C>!;_(@Ic~ytcrRMTwzY3n_feug+eOTb-rn}PzhZV3; z?w?L-$%HwY34OktQUlV`_pryS2A$?Lkv(8q5o@T|_wBsF%{uz8FOVNEO=UM?Cvx?Y z_=9FVpH7|g6bVz38dxjZTGy|RGQMkvzTv=t*s@Ub=|tOb;8vJ;(0;hZZ}j=YwC7e5 ztQbSLf|q1d7Bj#93+_CdwMUdWLCN0IC;3XKMu{YQz@8gISF6hlZ7mD13oiGmVSss?FJW~cs&rJB+#o{Z)r-yiimf3Zy(7?8u5FaSUD}V7een)`5@=9u{Dt}p)st0_lVaD?C+;#48->r@>cR!C+KAoxR!_Qx%g0kmT zXpopX@ISH!EQm;EduN_%g5%Dgj-rX?0Gi~^|MUVNlDgDANWD^~apR}V12Tur=Om=x zE4|hN72zBv!(C#FElq8i;{Agkj25!_R|!-|3{UO9p6%;TgcI|jKE{7K`yY(Rh0B)sgi(5 zOoUtyE$bMz0S7p*uGsqq$d*bE;h`WGGZ9sNu27H{kUh~Ti^>CE!34_cV6uJ3$?uH# z5IC3i4Eviof}+JLOxzbLU}I7jXq=RX#~lt6Pf3wz0&W#>-I7_0{UfuY1jpHOJu6Xi zB+Hk$aygmk1y(T0(uo}AgzKXL!pMgzYDJRWp$-A}r}7aV2g zoO^6PDztCAOTLui!PF-yCQBEWjQcLwuGI_-`2jUmfGSs2klW37}-t5RP`D zh;f;p?8=X;ncPXXpo4(D;mm(#_2GNX?>{eD|Lwn)%-9`EAXMc77;PL5#)`41uAgJ7 z7tKftui5(P9Gn?%TvB1bjDtN6AS&^HiApQH@G5I#b>u1MU1$)Y(fz~2`r6t%)Qkh) zFMw`XUjIWCXf9ge?>GK3vi5%&S=zSUqaKUj_jx=|#chsI<4eJ3H6{@NIc>}Z|EHh$ zs8HD3ny_)P$)J{HdiTueyiZ?)#NDGeKccoBxc)T{^FQW+I|oaWFFT?;-~N>N^{Ap= z@26KMp{m&X_St40{$VrO2wtoD4{MJn0tNRx2vr;XoT0K7#LowX8SNhj1@v%K*Fvmo zkF7Y%6f@IN%NfdRLHaz(`k$jVNIz8Xs~qI18k1IP(&`t*Ko&&!!l>opDb$S2L&N!);I*sa)NT^B;@5b14%gNcPRMno$#0O0xE$D{|0DmB} z*8AHcI+J0R^;2M;VAAJ&L7~h2M4ENmfTIAB@S8sFBw44 z&hPk+Hm}P!`MuXl^|i*oilP1aHX3sfT0^H*u3Swf8sr@X=mHM)9~y&cGdjJra`(=q z#Q4IY^D1xj3$8|v3`eM_1Vi+hnYTuId(I;F)D#Dew57|t6xk-Tbd*qxu{cz zeG1Pa*Zf=Lf4RAnKrZXTvYr_PgDz)h!k>Yvc!D&38`u9!&w*^P&39(*=|V1;`<6E9 zSH)N9^Kb&FJM8~UE>PI!xMVE5%#Mg$p;*&n`@1ikW{O*{zvFHDy$;hR(fTe)?@jf* z0knT@piLpRARLDok@Vaq;LpVfO=M}tVun4SNS@+Dkno?!uDK37lTGAw>j>|{@4UyKQlhl63S#EvZqD{? z`7c*;0a|WyG?R|ndso3pELg7Zy4Tg$hhWwpEsv1W#qU!H6*GaHX8cMVEE4!R%cUk6+Co(iZ9;)M;$m<{x=67D(RvK z*pj>~Z_{+_vBe^m>Iq?g+V56Vg7JO>-4QsRDeEQ2K!b=J(63YZaf0^x_V)9Sc9QAT z5EQ%|iC{!o9-=+B7m`?Y=1$!W+TvIcZ|x%-8=}QHJ1kLLx6K2Uly>)p2J+9f4~c+l zYEDijGE66<(;AjGng5=CbTfmL&-7M@(VcM}2w=Rf>tfDd69f0HQAmwH!uemYr7kZx z`vDENpRRTVzrpQLf2qS?EZP7)YufVXcLJa<1S=~84#=w;3gTlC3Iiy?Er()wr5>qH zAEeXat4Ee8g_QtTMi6}DG@c5<`jn7rJ-_!`%3atiOM3*FLp{o0(JH`zVuZi1TN98AYR#uH*%vAasm8ZhIE7#30>g+hozU zJcJKKS5gIrsmj?2ZCILo5Ti7+dGUGttGdVM``W(@Yv?AYQw|mCscBe2+9t*yhZWCw zA*G;gr>TcuhX=G-8M!qr_HKY&JkNiqkSj3ZAe25EhQ{dQUpKhf-%cpN7!a6yPZvwr z$?yXK>bLPYCY6#DNvaxjO<)`O|Ja6CK)VB!mi%TDne<@_86}}_pgv#dWNQphd7g(P zo>q?Yd0&GS2wt~L6zdNi1Ie;cxCn=2+Wi5%t{uAdI`*w!Dy7k`o62O=v6!cd*j`SR*yuyKG!A+bv}(Q0C-^E4?cOlY?jv8it8M|T>(bt3sqggl6@UG5$ZJ&S|qOb zGot=C3uqi>(o(hWjQ2LK#;A_(A8@$5xJ8UGFNxLI>|NV~rMB40H=XH+7iYSq-xg1e zqK3eqyZaqOnv{t~MfvxGKl%&}<_~Hy@%>2}v$nW7usEoP7nE`I-;G#u_1;)H@>I;# zBCQ{Mh@s<541_bzWOLi{01;crsz#@cTY0BnMaP zH6i#Q&_ms<0eVU`EX1+NcCG!2Mb8$)eD>3ePU8=mRMt!^h(Doj>Z}0xbvZe z&iyj11@yGw8>z(}4q2C_#w+48|2s6Z=9ab7vt(j^+n20MjcCc=^C3+dJkv+Za^vi- zeOb>aV*l&8aH$d5PEu%GW?SbP$q#mSd2i|ZVRC2$B=@&OU~px2CAM?2AFgV0kn8p8m5HIi3&|(a!!1J%YFz|Lkf7SF zZ`bk3nQs^>#t5D4C~@O&Hv+O9oBjZq2bKx-E%xtyQS;FnoipNM{tuW|?i6AB{$rg( zQGBOTI}^IXIb8RvH@WkjyZo&_FRJsDB9ekFOOR{SM)Y+rb|gwy{D^n>R8euDJG{!0 zrv-2m2VtD3qch@`@M$%wShYoO2os}rWGYaU)U!XbqT6U;$&DLH%_m7YSRL}`DP$7w zyHR$TJf-(Uau_*ojS^^o6hSwzJeRwnZCYD$N45IK8t^?It>|`6bv{Ud<72twlKREpVf$0CdHC z&p)F}GDClcX^;K0dixpMH0sPnxsSN?WQGW$e!n#`X}_>12QXDGr23n849cgk7$yv5 zvS?(W@Pe~FT1oa%0LDQ3Hu_`IH=!E1ZGDWs`3t-^563GvbQUz0Z|ou8gnmtOpmO&M zHPk_cJ^?L=(P2nx%N)h-XuT{8_-t{n`+$s?!}-F^CgpzhFm2+DFKE1Y8WkFH`3p!K z5)5SPbDNvqK}+lA`0Mzp3)C*+ht6RhE+6QNX5PPGwN14W5L5W1v$QHgG?63Q7k;xJ zf7jyTz+|BAdpv2+6x(Pd^GHrI6|yzgw4a3R+c)z-T=OwOA9Hu1k#vC%eQ8P&qa|8D zoFZ(TTD6pzc%dpgUvwY&VI_A5%54QZX8b@Tz?uIR4^>qcv&E<@2%`mOfCI6fLO3S6 zIAMJjCnH|iad138`J1=y{nva|EoMN{E5<8X)8T1fN@r(PSU$p2v;q}~bGvHk(+R(8 zLv6MUDm-r<9jh&Sh(Ug7-Gw2Qi5UKPGJ$pfRd2!a0K3DjV(Xfh!}-TX*C&qq@zP%a zYGku`d!=xm*@(ZmgASUVY5LsmHt@cdm>Ul$B-HBmoR#rW9vYqCKs?23eL~Kd%u8ob zbQ)CU>ZzJbMnTz!-d-58V+L56Vz*B;Wr>4L{=JI{%#MebQd7qQu*v>U#}{4j>p#8K zzPykyd}GqeA8P{d(mh)RMx#8)2$MeDSlfv4W|+63UczG0xTvEPMCv;;546ts^Kr_X z)41I)7@4ifJbMIwV zWBX>!gO21!5&L>q%dgT!z2?`)+HxJ(4`|!HV?CA}b`!67;%R&LU8&-h(ZXoG`?XU} z_6ZG}9$@xgJ>qY$Nd!>lNIL~EU<*En20tb?i;*(Loa8J#1r4Fnu`qIrAm~B?fBD%f zrfE%E;Z5_3E;YP~`6g0DqQTR6Tok4HfW>AM`7~M%V=pI5?=yAS3>=FDKdn>B&OO^O zd`MQuxpY2nkAv58NZbONot9w@?5{P=+}g-@SFGfbdla(Wb*cgf{625X3b`b+THNSo zl%b!B#|0&^Friv^O&h(TWOLQW@T#ShcN4NAA~=F%WWr{3`rcGC#o0k_ZHh9dX4{*n3Pnu-`qbKRHG0CV@f&jbE!+TzD2Bf?8790nBK3P^XJZc^{uwwz@GD8EYn zX=A`v1jO|47;^``lM<^dX7GxJzUw`j8biTo;Y0pl?d0L{rZY)=hq&qe2!|JUX~s1k zW_oi7YT4)Yu1wExvPB#OvP+4mg>6X9JeIsx6~&C&Zs`3ySB~TH&|Kx+$D)9-`o`Qe zaqrXH7?9vBWRt-9GYOnQuEI~vlxiDhS(Z8EtKg3Akwv5`G`_AQ1S##>A(Vk1v-V%w z^(~dJi;E-Oh)SQ(+Fr5t)QJ`RV7LQ{Ir4Aod1h3g5lk=t6tM|MAal@uC_kg@J*6Z%2tescB7YklInVkYZuKA1}5f-yX?t{DgfL+^JU=eX;zG+&{FAkyd-Y>)F- zZV~lHlE5uuWy&5aj7)vEHJKIscq{eEb*XJ&T%+O611Q7-5~Bj!6bW9iw6D8OK^#pS)d)(4Ce@I4~8hk`t%7U-PSi|m1w8(-n`!9VCw#063IgXevBo387a8arG*7}eT2BI4)H$ICiYx^>x-KU zA*|D1*ZFh8Z58=!KpCKWkaY|w0=JRc4_O3PTKTBusbmg1MH_?9;0sQ?d7ohS-5-LN z(LU?%RU&%rMIKIBbOSZ1;$xv0L-0`pJ;VSbHMDeBGbhg4_F~z9%EVzlctCb&5hm`6 zMLOr&amt-SjOVKh=*$SfMj|F&IqnytDZU?Pkh)7#TM-$#@}!Fw@<(5$WW-)t2ig@@hs;+36>Efj z_aDoLEx(_l|Acm65kj5)7eoCLk~U}KGaR>PeCssIJXUN_p-Xuwtv+PRhl{w3xb*7Y zn4jIO!fz8JOJ2erd8P;yVO%?80`)Eg3s_SjKkRIJwnb97g&CQoT1JTfg5r|@0V@!e zhs_^LF+EB?M<>6M52G3ez%SwAd9C%QBP-(AZXY2;Mz35YfNHqk`w=I756x$Ug+~(3 zrCd+VqzS{<(AxI|Ox(?{QY}50EW)l-?{z2fTwx0B7>~Xe;4F#ptQ#THTs`%>N&QjZ zbCn^MK1`t9u=?r4&N|n%*^@$V1OXle*_%3Zy=$KUK?2kti+7K{*XU>di}^`F0Qw`s zgzr%1IH^wiv*~I?)JLO+ppv7Ts9D{b2X;YT)SC&&S0}!ioje{q20*-wT^C%l>%s=^a-aTSj zaWXc5<%l;R(<*(cobyHC^E3K32IL}|>HiO+Y!h!F+}z64(iOB~)W@<8HGJum`oHt_ zhlz}Vxhfx|%ko9Efw|a04Q?dAk8kjHs}V%w3>15Ho`s0a9Za3 z>rdDMPIIlkL-;{qzy3ngqW_iV!`;IGY$e@r<4M3p8J zLGR(emVG_EXqrE)Ff2koC)xat{yEVHD(i+q&J>}{1VL9ovA+3%xSD7vHm^8gAp(^X z9Z0D~sna&hwfF~bW^7=+NtR8E5y{V(&_BREU@EPUK03d?b{=n_ zDnjwrSU)hVfzs6Q?lh&<>?*m-c~QP2Ftd6?#q$+$DK87}}*#sQ)WnSe)`>LG=k&cbI%#-b^0Q>UR1H+!*)4h7IgIVITS z;R+U&_aMrzy|Y7?&xIRzZXi#Ixv zFHlaVHVI1V$pQmy_p=Sx)8(^9 z_g1S(R4zy1iv;+CsVG2x(skWu!2V(Wt+_%LXkdJ`Gqx#Moz{d`*z0#7cj7{>WW3>8 zPqwO2bEq2z(|hTi{*vlIUXyO*{7+gvfIHiS4=>kR{Y&FSe~`Y&kU%&BabJ62{1qdqDP!kL75W5&sSvj z=}XS2b&Io{#X*-GHoysVn}Tx*6UM0Y9TV4PN}`_|GXf&+ZGFtH?bSkBI~zG+NB_{# zX`%ILu@QX8bK*y~XhAJiV(#(yhsSAZFLvOL(DY7%&xN!OMyFo+4ba~~XQ`gQ91g_S z6kosHJ&kT?kD!cg!dWV6N(b5(19(|QYBld1Yf`ZmX@yB^fA%U?ZXfvfsuS_#r4C@N zPl~Wop3TN!`}74e)emS0210zpwhO-KN^-7MK2$vRQcLqZNUggsT>CChgxd6NbG-LA zqh93ecc0Cno@dmeN8t8KWF^&2dm68Zh8s0Tz=#khZu>&BU2FvI7oVlES|2vqjPvY8 z)NeX?0Sy+P5x-C($2tphy9PUF+OKp^a3Jy?3&djhQ}k6&P=OvEGd+=!k;NAjDb~Eb z>I7$jZkY(hx?VDn?;oeSn=*T5U-7u43LGG9x{??+qIF?TkPopth?CR5s|A^W&dbmm zOs9LNp?n<`t?7NL>CaFk%>_(G!;hEDi>OaW>1Dj-Rjoc3h!ILH-Q%_xtShZyxGIPn z>+J~PI4n#nH+OUrr@uXXU78e|{86DDPrkTiewh(+-b6()=CroM~6YN5&j+&do7?c&Yt|6l^;^}?zCpp02T-wJbk4}uN2Nbgy%n{(T;HXXy%@$mdLFg z>~VUF0krtZroW?n)st~LZsJAjc+a0zmN3wEh9y45=8+r>BclELYp_h;dth3G< z1;wB5!OwT`*yRy{_q(z6`4U$QsPpZ(Ondc>dYH!{2Q3G9sLktGVdYe+l$y%mC58DNpmg z?z0Q9H*W8W5TWl%t~&oA0wYs`FPT{IW{p_r#6<=^`#-$^%Oih9e&^x#QY3+g&pl?w zTE!gb1VEATVfDsr^|nK!-k5~nr%MamT{)uZN(`{mvEVfFhmnEMNTfRrVh9He1%gZV zryYdropJxQo&B&E#b3d00}BkAO_dAe^j{j-#Bjii$s!-P>otHVmW(2wFc=?_;AE-u z*mlq6R(6k;9Ba~j7B>FeX`}5_9)5sO^CN6TItu3}m{N)BeKs)DYwbiqy5?uO*hwT@ zn6N?0KCGjW*rm4xnhC|N4-ftD@Y$*QK-4<4Rg<=k3OVfm#)(Y^INFBn6wNnt%qK6! zu@;y?q5u{5{i@z4no+Cg!DA5hw< z&{3eN0u?9w^l6ePH8#yc=NiK-s$0|Utj+1wk%8B8kAH6BJ8b-L_(9L>VtZ494-lq9 zfyXj|>6KHkJ032{uAAbwfu@x-p6cp>byAjH%oa^^DXR>Y*3)NcBZw#=~^`=NN z23Is!PlC?v5}VC#Ge7Meo5;PE$kc3#uTU2CP8`JFL}h^hYmM`NdH^6q87Y8-h%bIa zm27hT1Tfi2%hSTbkT&|F!Up5FA3&d@>1W=fZ|t;^4y6cODXev(cCsg^GL@~M5t0StIXN&pEz`~=mZ(op~n|Ts~sJ;3Ge(b z_6YW-ih}`mt0_S5+dE^{DF*|D>mvO+Ca=5H7z0$}bLd2mlMO&McX)dA%~MXr9Z6!*%Hq=MGy~}P`IC>n zx91u=j{ZXtc=QlJ{#Xm9ugsv3Y^ERL%SAZ!FUs`mB(IK^S@7_zq{`}T=0U1?y7oPv zG2XQKWE=vdc!Y%)Z%VXJPER##o$k|kZ6(wB9o3thKJ-SD;HB}|zdZyvb`$_dcpy&f zF&to_|G28E8TW~?UTO7AJY;%XT2##{C@vna zc9=Y<5ckDWkO5rnfhOmjPWk)JKsW}y>KFa76j6Q;w~QWmPKHYMv*j5jfIM2BIpg}M zYXa~DBS1s1daH-yRD}uE{!H0jDbdF?5rJ4FEJ|vCoQ|5bkO^CG1-x3Iygymk(@8o4 z7Xf(rf|eetU;X91i8YEh*`d(2WVv>hz+^Eax!0O^O=wd1C3Tj zF;)cufQUs#rkMZZL~jW8wtoo!T|e^d(2#=6^iuc$N)Vz;>BUZRWM3O|;(h^9LWapx5D~wt` z0~_>*fMDIveyb$a|NL&O~nv3X%jN$u0c>FOw!+TvG%ugG`$~KLn zS9YYoV-Kx>&A8ySZL^wYs*~>IaPkaf^j4LuMFt>IE}<@betP)mK>7Tebgf?N)tNLs8Q;)6;$X-gD1+&hwnp%3=-K7|1nT zhy`@+Wk-OkQSNG4Y~Iu-oqDiiU|=xHf`5exdF2EEB_(D)!y;1ZTjz2VO{jgGFAS7~ zROZkd^@SZdI*FivAp@k+u6ID)jM7W)fT3Y7I&jktl<&>MNslg|p@yF?szNT<)T%Qs zL&y@Lm1~<*jN{|y|6qi9s3Q!N6Dd)7(NlfdE6GtS&u|Tab+M9QRi%tc97COvj086c zIb!}CflkG>TW$>i0F%E-=8nBO7&$a+A)+nAi}YG>Gz_ zHwtd8?*i^AbMD|9_cdcM}W*;^-M>&_1WieflXFz91&*vf*dL<^G-76eK=5PAs?uk zf;--b-~*Tps~RX;j>TeO1$G2IbEuEG7aj_9tuit654jla*_Mk1Uws?NYpKP1u2%zi_!&4!9Z>!vmTwFpi{7+&Nen>h`v{ION#q8w;sBW=HY@pn z2?7IdaY7(;7QLfnO4Q{~Ad50_OTb}XI_|lg3n)*IjVzKT`rsE?`~EV&06td{)DaZV z_uJEIC+Hb?o)E4HOPTjoMLy%4bf1S32xQHBCQcu?pk5%esqhl9QpnNQ)o zw09Ov(CB$(oVY(MF)b`|>`VmlAZ~j93kfA_6tP$XOlSoKA1LI_t|ZrSEsdTQph5l1 zBpDinhCIKLo{^M@xNc*)T3LSg?mY*kx?T0wks6~MZ3B~#K*%n;`Y+<0<*A9R zb)X`JG8Rm6zcxZ!DvM$Ha0&WEV_^uBCf=VE9ks9%kI z?(NPu?Q>{zy>+K4tj8bLZ7mOJxo@KZ&3}~-hwY@yy8_#TzAM+&{GnmL(Ioo)Yp#Q5 z6`%&vkQ#s9ShO3HPNR~#T*gPlhwCF%S3Ei;5uf7d)IUh8#6Ome+AJNjwH}P z$LO@bS9>K#mC_+CbO7$KS4(YHv?3Zf5H)>j1kn9}Jw2?cK4pU^u-SGUU?G1SJEHC{ zfGBrBj3Nn$LS0ZDRvOph*u{{NZu7*02y0xpJYM0%gH}0B*{Pa0s^^cfEderjT2Rch zrhqT7{E6~E&}n*nH|~1NxF=SA1YKjXIz1s2j^TRv)g^^h0e0g8w}Oi)W9vb!jN;k| zW&bHrvqrf|6sC!JTx!Q$7QeMj@l!7J@?|QSHJ2;0fd>=x<*60Ho@Ol&Y9#mBtarT;+)R`6BwT%s-%f?z?yb!Oj{b`$O5hyuud^81W$EGjjHMHt5WGvb|IS>n zF2JckTfWZey*68N-2F|w&6om%;`LE{GbvoYI{WFJp}(D%?kl~d`G%oP8T&R0ItTjx z!T$!LQ%6MTX6+BK**|Nn{jub(XG$oN4H+9^F}W(_Oslu9Uk#`4t^J>iT4b4cAQu+NEE{=58CqZWVSzYYss*;Um-St<10ar&3uL#(%gs za5}L73{I>+(~CEm_dr?)qdv6zaITWiz*1jKU7b z%=?MPss6FYX_6#qEK^hBl5x_oYcRv-0X(%AieSRpC31s?Akw+$T36`KQn}cH*YhN> zz&^O+cO+Q{cs=WnU-i1Y@P1}+12msuh@d@GeX)FW^K6A~jH}-h;nsY$*s@j~xZ50s zDvVgyhuil^2e#ACo|jpDv)@uB50qQYVrUGh-w8W{gh53UQp6M#+jJapIeB|)ph1J~P**4(RYdIx4hTuR;M zcd++AdRs4qUt=~(2}+CaX}rXHiPWkXUdd1}b-t%$hy3oi&MnX3^O@Yn6LZ3~Tm6VO zgj{M@_Gc4WJdQhr=5Bk~pXG}2AZW`g8y`IoVkXl6;T(h2B4+azyRwKbJb zCR{m~9sIz;;*!Y;k2YTkO7J+dDeif*Vy^N@B3~r;RRc`x%>+hF%-8SOSRKW|WkZCW zWXi+_U${a{!*SQ{?~OlCl9XzeQ{_vBpU2;7>ooV(3w0^;=xV?v&+BrLWBQ-yv>IR3 z<_)I{ZFa6GvVbel@Pk5jMsvRweX`_pd%vH`5Uev0NpFjA8Dch;D|@7~Z!dYy!fmVc zBIJBQLm2%&S{8ZNuh1lT)rS@QhhXR8>EvVX1-Xp1yW1=9OU8jDyBwecN^E~ zJiY9PXjFfCKs;K^^@%3jUtoBGH!>Z=rAwoZ9QS2~cFB~X#|a0P{8_*Y_H72j(`j%d z-RuQzp?t=S%Er&#$ur~Ww|ZUfCxJ=)lmo{NyPJ6r&XvR;(OK3ydx5o9ceLQxdG<9D zesZPGy^kkpA{m*w{pQEHua7!mtLY6%Yp3PsAog^FTz<8(5CVO^in^?JH#L3K@78~RUt$H?>2=m;v+eqX&o>@btm`j??PSD2j*3O`k+lGga zhc_>O7Iwornq1^X2X4n(nJnz}Im#*p)Ii-A@w=}Jcrq$XqDDPd$~ss>=1B!aW}jgk zeMXFvPFC=mB5)+;`I>Nk)VDPcc9H->Mn!|J5M~aGJpFOP)+-1`2$wBpUQ`i0gkLcW zRPtqd>R^bJ$%Lr&R#WfAHU3lT0i0)1_mlE^$1nW7MU|>L&BJN5E}})AcQ4Rk?=f7(=q-=_6dy zU0EtM$f74-y&^!|acgt%w;@wYw*+?N9+W5HF3qj&uo3pi{TfV0Ml^A3pwg&kz^h0`%%ac00$C_fpHWdIUNHfz3K`z2D+ zchQ9AR&&roes;4cE@+C1O`5$=vmZWIX^Gl;92{;J`jb?7%8NI&w+I^kmE&Rknqbwi zRQV^Z>k6%D%FaA>!peAng8oJXfYnK+d|hcyYTm4Dqn`F`_{op1=!jOwThlLt=^n~1 z5;!e`n0|)lOE-tzVCKg8lMwn`k~~n~JHL1t{a#t1u!aooGgYO(){R7rsx%2}hHj53 zb|LPAa4L6^&K6g~B+~5j(RLDFGWnCNe!SK51E9(go!|2auQ(ehjs6!u!Ky#WUl^`j zD5(2g3EW(w^`PHDZ2)4HIkuWZSOsk4zOUTerPYc;N#%8p*FhC51u)Y8c=#Vn4d9qA zOC4da$vv-{1VRbmif)0=Igq~AB|vfK`vP7@k{(@IzMhw4!Dv5vdezIcbZN>&=L4k* zHeoRHh>l@ix9trDT9gc3sBrMOtzS6!=fvw??z!+ab%qfMw!r_5{_?li)BLBOS2^B< z0n+@-K)C~Gm!DY*gdbagRhGH*oZy7U|L{tb|GcZO(m+Q>?|v4b`1)_DBjn#NRHiKw z4LIfhdZhpvZsCt1aGhxUCkYu6Q2+gdtpB-Ln~Mf`v@+g$?hoY;1?quy2T1G~Q0qKsal;R1cTZ z?9^29IrNVfPzVC5Ju_1`jW=G65h+L`0H}6G>3+O?dU>g)lxnO1_x}C+H~{2?YLEWK zBEpRbw%uk?iTsRySr)@n`TnSI^%j$Wx=zaEXt7DF&8aAc zV;fz0T^O$3bmW`k)}Ty~9c2kHi(nxNP2blAy6d8sCCf43-o!qzICwqSMiKMlTF+JX za;{Yj>rpjGQzAiBL`WD5WQ&!Esa{DZqo22pltlnQow@sz6PR^9l3nYQuX3P&TuS=a z3EKDTGZ&x|Ix6~q>2M}KAjV&V_J~cZBNkTL7_ZO90Vpn$k$5gn*bXIAa`LtZQhUUtDapF-RyTD0S(l! zG+-QT?YW`a!vkI=VlEX6#2=WMTS`w)uf;B_r{Dnq8Z=|69H?GmF`EN6c0k@{KHE!W z2%1xOuUdd>3A6xvxz&KP8HW5Q;Q(h-%AF(+Aa}7oPdZ8`v#Ey(uC_zaI=!zknSH*C z{ZGF)kv9q9#9Ga^pR!gUlZKxo3iHf5Aopu~%u%CZ^zZf>C;2Yu@m8?-rnW0pHu`fu z0G$chgT4EKEaXr#@y~wZ9AEw7Ic1=LM;fD^Is>rsd4VYj&lkEzWuYp!%88g7YuHN~ z`TQeoydasuWHEZ6h%(h*TIBbP%qu(_7w#t@$Nzz>CRcTD0w7t07YQpK3yQ9h-j{t8cq%yQ6uRxcy{Uc6 zmm0#CbQnhPP)zCexbT@Bw`|4(faaU$^#B7gG&`-y)^YN_)B72daz0ih;*uUaEj30j zqM34uAy~47FmRu#oLsR?00|PFK-&lC97|8``L4ub_f}>zJX4+Ym8!nFx-!a^uxGJZ z?vWKrr@p7ujS_DL{ZXz_UHNhH$vxzNRTG;ol@y+f_{SaP?$l=+vh|{%S24-cVV?7X zfIG)4jOl1QlxI}*jqb(d?uU#?W?ktDAnU^U^){zPNQ=#mS}(M*@l6)ikPxS*$>2+q zJMOyrds`ykTC(01{m72D?(?9yII><&5l34`x?^m2cXy`Md?uyJ)()zm7r)SKZ*o{C z1-F}Rs)t{$R}2nrYgug;<|kQy{;WJDVla8C4Tbi-*OB)JwGbxH5~)D2+bbi*);xXU zg)BT>?Uxe_guKEJ@a)!irc)Ohj9W57YGxV}Fg;;v?&*}O{TE$qLJgG*oyY;25`w&Q zo5^#|3sFGT_f|}n>`w7%Av?>2ag?5{jA**4{L&{>d!cVDvhD>Zk3u|+8|V`+zEIi1 zEsgDGPCw(QjjF&yu7t6jMHi*l6t?B=Swd-!rtPDT=Vu=rOfN8IzUUGWoSTa0V`JXS;}^|J$oq_6#=bGNI$T2Y#T+5rER%e? zX18V8dz^Ak6Luk&tR#);m_Ob;>lzx?;K_Wh`i_A@ZWIkR?D0mK{8oj|VIUWj=*9ge z8xU#ig_clAeoxy!NuAUi99f|yKcEwTtO{+?02zLC!eHN)j>S$_$=`{?4M_?R6^nTj zTrKQ{lm$XlgK*scQoEU8qWrtTBuQ2x8*_rx<*);?!d|r(H8lN|r96-<;a0t(A77=! zb7@J@Eq0 zKyk0v=l!qiL$ebW2PXbZ!IvAmRjEpkI;C1r09ml_?xOx>SF@m1T zM{VM*-YR&AK@?w49BVgPXKYzXTmQ?y7kgSEn3bkBomC$Swvqv7aQ>!@7Jm zh9uj#6NfIuHP@0fBv|%?A{W}K!E*^4#xczRIq5nYAB5i_*oK!~LQrQ#zf#s43IAgH^;IG~a_s?}DWNqA?Iw zOqN>$mWPT8e*6ZEi(g3q z^F8Wp`Sb`%km6GFpGY!!2eB!j67ZG1dXyy+Fn#IE0ivi1|C$y5wKV>Jvky8STyALO18)4HTIk{?d3(Ci zr-H$mymR$%Bb`dive@{gfIcRkKlI^pZ@MHGRjEtT_2c^;!Wr|&EZ9mKkv!e#2%@*3 zAB1^cUS3;3G_!31^G|35B;Q*7UWB}Td~6q{-)HLF@>qSLcaf?}XU%3o5{%NU?Hy>4 zguJx~*pT_L0oY(vP3phH=)ra|o?PWga|lmBzSMHAGF@34VX75~$oc_QajoN)B%@v{ ztN4ZSOfQg7iM07spC=ZI>T!FTryN>GZx@b9&9h^N#b#&oZ}uCwV?{LgUzWf7YrTWi z)?=*aKLaKHKS8?jm~#)&v_T9XLf*UoY9=n79aTkKnV!ZH8%-69qEmjyo6;mYx!N7A z+MPq^VjbYfe}SG09#@^0Oq#*Xo3tmnmfXu8)AS|3EN^qd58&-Ley;y~fd?X0Zo@Q| zh$J+=i-#fYaRVHQDZ=$$;*>YR$F=HM4D6DCM|5phirwB7e&LZ9@+O$Xs(h53mzOUa0w+8s}@^SDM(rT2nnNPQ~)p(t;|G5F;~iEwJsP zAvfVWnSoUyUFI(#wzP_yGf5-lnq)+=HWlC&65#-t-HCjS`268i`hsYwhL^v+Us0cG zbYCbGm)v-`9HHxr6^guy>0MUh*^RWwMe;(EGv1{;L8x8s-pC{|%$|N8D~_X=W{tI~ z0^19Egk2t!gkh6I?@l)*_szMY@mA=4etqTpFfiiZI4 zvJCg>3Z09-BfFLs1#t4B#YR8vOH9wZ>@KAuBPf@0by=LvKL_*p^+2YZ+b&3JV&a-5 zEm^8j60&Q*EYjV4RA;{aM(tP5Buo8JDcf)cA7}e)g~`s;VUM;$5YU`K(DchH=23;_ zP-8Taqt!mPsa$o=486-k3k(Tc5->5uWF&YkxvtRfb6)hsidKCboX`qBU?wIr0)Ek}@L28z7qnQ)q#3x+# z;{6C1@9V!eBRq{B@elvbr}n+rkDxIdyG`C5f4B+5<*m2dDFC~Qjfi}X1}5vA)lB!! z6vL(2!?g)ylR9h@8xhfXU@*wd7M;ahuF!rz0J*`OO!RP}T%=~TTOAaI+h=%>B+X5i zS0m(sfb4dxHhlz@7zHk|TL=rVi+RA|vkqoP-Z*cvjtv&R5{b^2c#OEeU-9CRno|6W znFeaHC*7R_VL%}XVymaXn5$QS&0L<($B8P51kklriq)tOx!p+srb}qA{L0K)$7EV? z_`%#~j|+2%-ou5Uo0NSC5C1iSVQlYNc{ZXDNo*4OMegG)R?U+_goD5KNl z`qVr3ROa4bB5vhYRSQ$;l=nk4(NaOD8%LU~A7ZhSz|>LmQ3P7GJ|#Mo=)5XaO$ua> zerEB)Lp8c+$ex$Cpb!m`)zk4xjP@i^+`c0D1o55Sf*O|Q9G-BMHm9<5yt@v8-u0?! ztasS$8?zHIK^nmGwyfeE8g9|ZgJ+az@`ahPy5S5(-Kx=TskNR#D11=Fj#1uZasC_) zHjAyIRmi<+MT~nGDRSQF|1H!tYa8@yTt}qZytB(ksYcvU&Sq^Q4|iCb(&a^5{Fvgz zDi~?=cFk|g!rlENvnt^q-KN0^U!Qo1P`DWEcFJqmza!+YW?C5~j|1l6FQ(Ean zsy`Y7hEnHas8sN|ubz`fvt&vVJ!`cs5mh+R{AUmC510M~zUSxE=S>Ixf0G$0prQg${{ykm@;3k@@s2@@DK7>pK z>MI}#E9kJ*zs`m?VK6eZ2?oA&K5R7Nww28!-*uM3$~k?LxW|o&@8t$Wxb=z9 zV|yJzpTum*@3?Ypco|ch*)oJhxB6I^RuP>v((~%w*`7OaNoMhpwbWkM#=R5zw@<&R zzi06hmtj%&-T#zQb{|Gh8cv6CClMY@LOoKZkV4I@hyt|`5V*4 zjjErWBn;dJDGo1oQqwfrM?ziTmVUYU^wQ-hUtDD(mQY@QTXf{-s#c{oS`4g$Z^5s&X`6t-veoGojGwdVF%8WgFwH+s`2 z&W{YLgcn{ennq4dUqVke{1X#tgBMH;Jptl+mgj#~IM$_|AbWsrBhXOTWpFm9eMd;8AKR_S7oaCWtJaN1ONr@GV4o+?#1)=)9KGK6bm zbI=^v6f(=2uUIPLL4Mc!oJfr)Zw$TrnmTTjI<%CVRCGuJ8D^{Cy@l^K*K16!SdvgM zuFyRXb(+pRW;2$?pCjfaKUuzn9H*PADf!cueIJr5I?(l z|NPx{Y09lnyg%YNYPV+1XtET8E{QslQ+qSgtTMkpT296v#BJ7epkYZFY&TLUi^oD0 zj)yn)aIH*vl>zg1W17~`=KgEg+Qo7^&hVg!CxTDkqAPxzH(bi~aX4pajL}H8;H}BM z8dVq$^4QIh=4PUOKm7ZZ#k5%?+v-p-42j1}j)k%p*hnvfgXqj;us@R9KCZ_{N-slj zx;z~>1{|oKygc#_md=G^rry!4F%)c8m)3cpXKG+^iY|_ThgxxeBX)~`0rH+oBLSr@ ze!bj;^PI?twxw0rye$lue$S0+ZvUrTiIH)A{qEj;CiNeJMJd6t&agpL;q2HDYjADm%1+?<(I5`qm84TOXVxy|22 zec2(P%i%s*C3rq|?+RjuTk!e&uDSXAe{yypZ%)>uG8fnmVC142%<+%sv1~eR!;;rl))Xln~URjf-7J=P79Y(Yq=# zPox#6sJ%?Cy!k`kRvxe71h3@oCx`n{^>>!PwFHr9>?bnke+n7qO{+qPOXNhGXUdex zRLzr4{vbEByGR1W{B@3dDYsz$) zPf_5{9X6o*KAO>K90}(Ny>;?F7k@$`lBS{z>fV~6-~N=Uup%bx@(jKIjwDJq5|>=1 zA7MY9>#P1@_y`sT<&OwQN~H1g><(MoQB$K7A1iAQIg9pC+6<|ga%lL1m5 zchuPj6eZOYWlAZH4=+22q5k0@?)+i`4mrS&`6?6w)!EZY~ybfDCD&ro_*$H(7>3tWeIg_bk0HFGtb@8gs~JsuY{n1kVgbssc0 z4x6mCggxRI#)REZHbZfhJqG(;w|3 zFqkqwZ&a_8>gB%CQLp;O1JD*0`VoiI1kxA(uE5)iyF~Ma_m{}$2w)V8%cqZn9bxm(blcx$`o8FQb&3a(QSyKNkS^h%d9tiL z`E~4DJ^obw=JUB(yCeH2i01LKXuN{HgZ-U~dQ4&}OMzT$cG}S_j%x&t`W+tP#NMhr z)APmIS#RS+mdl4!>Nvq5=Ai`ctsQ?vL_`=p5!dEn03^mH6+d{ zTrhkYEi6o}_sWMW{Q$qAjF?pg#g_PePO*V%u>J z!HB%mMZukMlG#%|&zJPU)w;;$xvUaE#G^X<<)#mKvQKz?*2s$6BXJ~|vBXlna_MYc zvQpoBe8sxb4>u3BrIYFMs-vQ?+fCKFGoNnz;q(C8gaaUNQ2O%_iiFnm8vaR zzGw5n?IqACPjb^%-cSMtJDN$%Px4W#?qeVdVxFRQ4;0p1)z5_0E~Q!@DNYn7)!*lf zTIu1f4W{u4ZH3oZw3K4?rVzCb^V(6XNes^)??&gZw(FVzgM_A`?nKM+8gVO)4JJ=1 z2m5XeqF^5`5R{b2N#2{vIKJ$uQlFx&uI~Fb?zW!YT2I)BN50p_`W}bgZmOlx8f(~q zJBy4bS(PtQdwh!Vk(iSZ&s;(3_wAYE)2h#})pm73!eZ*+LU5$pe*U>3pF495xJixT zh7%2No&;QN#bt=qA?#1STYwNkJ^|L2MotZRTYUBWPMu)fQ$8opKx|(*uakz6oZ96j z-M|^bnh{GJxkekMS#Z{&m`x_zfSa~hRd1Qornugcxj@SKJ&>wq zFOm*`pUft&%H;q1GNWG=mO8tofI(Rv`v;a*8Pc2g_H=-~cWbcgBW5m`6Z+%baSXGI zHZRj8tK!KrBJ-by-iIxzt4~v+cJkmBWwER4IuJ4c#&D2h*#5Suvu#KtnEGc*O9#hLqxAr~#1DAaPhWA9A1+0=r4{yfIIQ2I*0y3Nk8}sv1I*%r43FhXEH|-&SQsu@< zjIm}aYRrivfEIhBQ})LKSNOWAd`-$_?xY`?bv3#~CsV}pmOux7ODd56bX$3%kQ9c| z*>)x?9HuBJ`Ha#UAG0s3&?vI0gTpD~bp{5Y21^Xo7~+EL(C3FWzgfJ=Z=Yf)Tt-Sd z7w33CVP6Sdwlfcq*=JVF*}q|)e3EB^eKb46JR}fQ!I5D$ryAL{>`A4&%+(QD?@|4q zepv=mucTn0bH0DX{|N4c6JXE)w$c=;1lhG27`A*#iSX~dtW74NWY+WXL3SfHXVoj< zry5)584|y^zw8CZ#@^4}Ud-3b>ds*Tk`vQ$zI^aY>pdDF z8fkz@BCYXwuUJ~MBjt50alt4>!EOJQe!PIM!1o+p7@+G_2{^FQY>7J;Y-=$n=t3rv zckpJapBz*Gcu@vWnm%J6y+Vpf=u)}SGLo1AfqgySCwgCWu96Z-pS{aw&9^a&2ZPi{ z$XI(#XdhZq2$Ei6%WtX>53QUR3$Rw4EH1CYw^X*!$2fsB!i zPg|BNsK$UeJ;D@W6{8go(K}G&wgiLCxF3NLpglfJ90oWuTGUfORUmqMVxtyF#XkSN zwqNZO1*A`vF%~B%H-~=$0sa6PAb8>;<@?+hl*alQy4iLq1kfuiboO+)X?1yW0xc(F z!Z0Woy@$Jf9w>C1Z6GscSb&tv{^D8kP^sBQyU}v0FAUt?-}ngv^cI@mF?t7renuP~ z)daLAdhITVXe0t;?=fq`{iXAz<0-g~wxo%Aylzlo;8FX5PLss+y6u0>02${(hdT?< zp)Jo^?=A9oe{~S8045pKzg|PH;g#DHt2>nl^y|wA2e4iYa?4?`(*Ccn_n83fxN!Az zIsOe|9Psj22UcqZt0U!qKZAn};D?&bqd80c^K}tu4UAlHRbPMfzrHU0qYg;q#pnzF zBL3&=ZxFSBZLtLji<{#Ad;w&Qm~kxLcR&i%fb;O>gCVJ~ubM=HU*g(fI+bujO&m|N z;Mj=CpHzQ&P%3Ke*9-H<%W1{^rzLvT;(kCc1L%`b9{y%XQNI4t2Sm9{E|gc91}UO; zi(S^@0U$D=1CU_j!KiSci7PoERMe21wrBu4t(x3l?zKAaq5=(0^A(jO*#w~~f|=QC zv>Rx+?3POj{Q!22!`2{*Yx3Ulam1 z4d|mtGmP(PuapOZ13Fg1017pU?U!z%>KiuvNpILn+P`n&Rt_2!^rHt1s3idH zmeV@$RgK*&tJ(6q9VejSCq9=A{xi@$l1e@U8z3=>0gWkVPR<8vfu-_RC;wF*bdh`c z0yNMpbq@Fr!zd%P!La)g;|5410F?u-o$Qh>$_ujvy~-b@4S?3f)k1g-IeP-$x3%|O zfW#A@-;MFLdv2w6LwSJO531cf%c=ZV@O~fJ4roQGhR3X0EGG&;{xg3mrDB4TRAV?C zH^q|`+j7%Ce!+~uWh!s3OWFdk!TpmCw@vfEq=8D}n08 z_hePjHAhzERpDYH;B2q*8*RApj2#gz6!@ zD$b>1-Yf5t@oMT!SkyW0nG6%(6mUg*HaB3*BB&c6RoDxh7wn3r{2% zP!;>9b66NpeCOS74sIPdq%s^JBL^Emc=ZHEKgB zXfS4467;@Ccr&SjfXVz>rrzb9wG;$U<0`YKYB{Mh6_~~!0lS!*Sn>pYv^wD#OV49| z47uia_Qe$C4!Jtrpkv`RC-qL(0}X1A^u+{SXeTo(f+AV5)UqO=18IR?o6|mzQ=};K zo9%BB%vOsn_BF+2ru&9K8(7*srTQMZl@U6_1heF-DxCf!8GqPDj9LVJ=36rw`2@YN zv7~0|@P%!G9Y1qr=5vY8-!HZp?e7>&y$A>_#!}>&JQL%azQa6DQr)v8OF$CP#@bZP z5w;&`$^ed})ts_9mD!I|raWC{6~_8hALdAI1Tja# z?R3)NvFf+GY#`|Cax{*uY9Q)6QBbO5)XQPr8O}1F<4(y~gb{Hwn?`6878WUwzU**+ z8UCGXy11y5HwIMN@Q8zR2Ydy|eDUx&K%SfaxyIsuZ~=bh2pb~mSCNl|eN1|xQnjTpZIh1kGH_BR!(;3d9c3V%=mDD% z`~p?8l@yflmdzD)Q5(8exGiPJSW|88L_Fz2-&Su1*3 zqHy7z59@zThUWM^YmaM_G0~TL9ms0|>K40|S5~X5;v%56 z#Zla5q*QAorM@W=cVS;KNq?K5UdXObMUhmY-$que0in=MFHa42aoQlu`h?r06~vsS zbX+j@ln*FfD+Xy%^qFC|p~YeCFxrf3wpaiJmZw{0;AC)sID z>bS^#e`e%_q#dCV5I;vGM5R!73#>8Yp|E#RLZ=MUY5vBP)rk4@GbIf-FY=d}XqdDC zNm(NO*Z4BV8Qli+=nNTP$?(d(rfST7k0%899V(G(j1@Y(J0yI3u+9Y62(Z`h+x2qC zg4^{P$G(b~FBRsDeH~^$Vk*$#)f^66(8$xxMyl6a9xMH$lNT9g29^DO`USg_ks@WF zKLrY81pGvX;VAhoGcSuaZr#Yb#9IwuW)+_@ag?z~0}5*yR{>xpa{cK1dVx)ZBHuFk#eUm{weCmYkicOLBFRM zL5lGd!I+hLXA!wDNczS7rg;&|Sc#~V98m1RRCh_H810N1iC#PPtm4e*rorVdYBKB; zsb$V%l#b^e(z+yDaUqN-I?U+X`Moa;?rp*}X34>n=f9EuNb=>M#-lQ_ZKu7@3yqoh zp%)?#?X;#RSx}EE`IaK(BIzCMwnpx-oMhSWNi()88y384_Cz`uL>Z?8Ig)^6=a5RS zRH`Ta31TM$Ksn2pk$e&V-D_Kq>Sk+4fNWQg7f(8Y)&p7=9`(JFBF0Dtaa)yTILq`2 zyF+|$gn*s3jFVk*Zvu63R56pxD7jf;Z{#n@(Kh+FR0)ir)Gsasal^(uylYRlTe17g z^dl;$yz`?H(Z6CwzwxFgCu<|q3{e{;f|&;59_D{*?Q}PoO-cTs7@cX>I~x7uV!hf& zr8+}lhS4tP_a~zeuxtrsOfMChOaP?Xyd2oFjD&Eg9($g-ligD_bkox%XD9=I@sc6K zbk@r9>gz*90jJ`rr$#JxAqwLh_8YYeWqp-8WNlPcB#$WGeUJ)p%LBl#v;dSQ>_-8< zC~%-*(8&q?O_!OD{4wcWP73?JN0cly)jB?`Y4ee8Y&fqZYI>wUtf{1C!mkuQ;{Jp)Z zLei%c0njlRQ&>y{X@5$W7@)|K4UmUjnqXWf$&iHH9IxFmz$0$bs<6BTbGY7@!Rc@x zL@}n<@8P;l)vv|Tea1{;QkQ8-dnXPJBBRR__B}^fT_uGMPUcbmO-2q_P&ED%2MPp~>lNUs(0|&N^)Si2fQfCU#irP|2m;BGX-z)TrdoaHyAQ zz7Kqe0DEptk=Eqo4|{gm5G z3RyTK;S^@kzMJ@Omp^RPCNeJBwcNu#kM>4Lc{xItin&S#J-)#fEZO8bGnQdk4`c4< zqX;`I4=rI>{Mq*_2|_?N{Q>Q`9K*K{HXNN<&*Lgl0z&ZHd~i&Y1zp$|1SB>NTXJG! z0q~(c*1^9$?eyi3O8DLBl+Ug2xrFi6((a!?e~{lT1j@KS4A5%|`(dSp!+w(mp4&rg zW{H-Ljn3CMGMIkP$IXpDVb8G2g?s#7P)}BS#46M3gmZpm3yUSuDMNXy^bAB1=r$c$ z38(aj?08{tNHTVQeRzwKss6Lk5gCKSoUy0-W^=%~)8pAJ`Q|>~odtG#gb0m`{%oAB^@l0=BHzPr z3unTU*@t@UNYwi-KaO`y&JH(hTW2h*Bz^W<-hg_1pXp+3(jy^tSh+SZEaK76ZOrN2 zG)5I*CJdUJ(x^{%KJi?-7*~od&qC2ZGtJ2(oEejB!6*}K!VjUKm)M0CjkYlaLDsw+ z0q1wN9j)X`Xl)KpgE*~ou2RT1*9?o_s5#gyHe3onrN8wvYzsRBN}d~LgMf0y5(7FC z=)wjdU=Kt}=P>^X4%kZiE&(x%(EJhbvjcZ4wl8-W*hj*4FjR$7G@&Xq;@+5VNR z>$jvE%dwH#FBN>JPq)hYRLku?SYBLNL5Ydec%Zc|dm@_2_klYXEo6OueHNjV0qdAx zipyn*>Gl5S59M77*=%ns=9mVnqiNN=n6>G-amNipky9s(FRop0U2oqt+MGlrmiS3! zFT;V`zgpO=Hlq@?R7=h=^2U+tn_nJt!NQ}Si01U_$C2C8eDAr1|EpkFc0a#U;g=`I zjYj<>9sixxZ*YGdmsbtRXCO#{PN$06xL+Y`pg<>o7VPS~gTGRYfLS~o=7iF*wHh7C z(`v_;fudKu&03}lC+-vxaUSj47kXn~XWPp$9ye?>_Fs7o_=M7CZ>czQVO~yLCNf$hQ{EAYYB@Eqmq&!uHW+3#{Kic_i?pRP) z7(P9Fu-zBBH7w7T7@w!b#3+*e8Ha%klrg1N5l1S8Bv>?(Rk5AL0SD6?iCgbW(K968 z*~?t-(aYb4yR3Gj4sygTZ}h!dB=0{GOifH9pHpRJS}|EjyaSfSt#cQ3<~Ec-(C^cvTD2vDr-++V7+S(_`RfgJ+36!Ck;KtRFcqz!qT6f<} zPI>+lq$&)84QH~5D>3BQfw9+-<@OG8qKaR_b91GU)Jxxw;XAZ{FH2EAV){ zWaF~ejSO6xG#<(xUubuRF_+W2REPPcP6Ys})yO3;d^3B(F+Ynezqr^fsUmin9FUYM z6_+n679(BYD8_Px))Z*n9cr;Uqx>%XRO6diHt@+cViO$WY`LzCv%-HR1=#f&ds5;1 zT$Ll^h3?~0%=m1v{{r0`>k} zkomO#f-D!n0h8S<5iGHIT(zI8a!2SZpi!+Kln7tFnRB2CE-Inrs$Q@__#lOQPYOS0 zd{Q1R9Z%lE@DMFK6kikdLC>mL!w)adJ-rnTgF;fpPuSgq@_4n?->F(K3A_}$`giDX zZLFluWQ5M+((sV>l0rSxM9vG3XDFeb66+y zUJ^J`b2v}I>5Hm`Qjeh5v)VYq`&Czx>hbd43Ngd&v8S(W`XYHRj>p*EKEf0-o7lh* zLO!wTy)jJXmzk;LRYQd^KEhVpul-DWjKSE)@k=wYy$I+4fZ|t<>4BJNr=ML zhs?{W#|6bAr@&qkVr$8|`TX+o5 zAw%~c^brmB9mB%r-^GVj@1>|OQ^YjxqE}x88lhThzKa$WKXv2hP3{|_H7&(RF87yJ zN|^5-eWP?qAJ1B@qOfWv2;bgwHa?CUv}zZ0EN3*V+ZMchiCX}ueN|C!sPwy?5M49X zlqg-aU3F_sY2L5-X+P0axUL9TSFGu{S%wMlUR2P#%RHbRNdh}w9EX=2i>+ z*sMKPNlgEQk8Yjap543Kq7KX+%}}9zZeCGdiKwX0fwV@OjmlOSS<6yMAAR=`z6&|a z>A%q`UOt$yDP=}A6<4cvF;jJ?!!;m<1^^4*Qk8kQHs@_Ajux(ckos}f*k+R|yfBLh z3J>75i@$xpcGIRPQ+{oN`0INs>^Z`Bxj(7Z-{CvBNPvz^jx#6Ienhbv<9ucG?i@%@ ze}4M0`IYkXJ-1KCriX3JqcS@j2%?=O7OR3{Q+YTA-ZBn85vA5Th&wkDHj_-545)(q zUap%KUw(FQr%jdM`W^}>%U|3ZV!J!tus?ov$cmtkbR2SHj4AH=dney}FumBPfDKSN zmy5cO4TNJ+I3CD9H9{kRZn_*}S~@k5r$4Ak0NpwN4#! z)Vb`qeFGz%N<*1ID;oe4>Si+eSJevV?psj zGA)X-@7q|y3_?hx1~Jxp!cZam_F#}TTlSKSJz*?kc+W&Vz3=<)?~mX7chBeC=RW7U z&$-U^y{_+d-E%KnAhJz~^r5->j|bLkh&J6Ggm8STn@$6ci8IApD?m-MG96Ys$K0U`KWaziHtuOuygG6Q z(? zHC?12ZmPHCSWa&>R4YnddSeB<(_yVk@b#Z@mY+yN7rx%D)+hW^oM(u&R6Ds{6iNFy za(?<$nJ!iiKWLekxM@;4BdpbEXiRWTyAmT@p-1C}q=wTb#5{uW-pvnMDA<(S&AO?h zSmy81J+1p4d$3tFwaQDmo=_Bw{;r`h>5s=1CHXf9Y&B$R1jmt4Xh?~zWxh}gF61_# zS~_DxznY^*TOWwC#ih2meFg_P?4P#K4|7s4L@Q4P1$8%$DZXVjq!{7zu8k2PNJ8Mz zHzbylscuwCKNVO$SRttDBbA;{u!O4oNQRk>52|k%;OTgq=3v-;iv}20v*pX`5PgX* zc1TCoUfhCef-N`BkR;xeM*zMOeL0+=s%Fh(9}i8^sR&aK{;|DA>OA_E>1Pygg&4)- zudv6M6~}h@f0ZdeXhqB?ya(r-?j$8G%%{ZjRouFCaaIE>2%;?_&N*5AZB^*v zMI{>uclC;VA7Kwrmpy!syUG_%1Zf}yFY1l^7o_Q7N6*NTP`JYZN-MGN$l&+(qNVM{0v$f^tI3QQE3%>GA-kG#eyS*^j}#D`R``#Z_5{w(25GK!PlOKoebM@&?5%Jg z&qy3#!M}s_mh6h;_mE|5sEC&^URzRL{2anlhr z74go1*WDjumw;-p#@eHEdX0zB-~r4)4!?!;cFwf5FyILR2VxBT>3qt!zU2yHl0-TF z-=l!Mws8B$+}u_Vme0^cGboESfq>ne*e}`ddFT;U)I{m){?Tz=U0vcqT`He$92>TW zDR5-bo2d$?lJ~ECHV{S*T2^I7Rj}3az=szb-Uas2Xvcor8w6y6Tj-CMu%nB~zmPd? zWUpj3rgnW#P&VuOycnCz_M&y;$)TE`GTWo71%<(At~P+eeL0|lBh7Qgb|zvTNpl>+ zie!&_cMeIlu>R^zSF_$$U!hCzrtI^}qW#l9QjFL%{2^Ir*ya?s$VTs|D)@Tq0fZKo z_tx~Gh&SH-+og-zAdYK-b=X%6^M$Tp`vQ(RUVas2nyGPX*KNjQYoF`%g8GkY$w+V$ zR}5qrT5#lgNcW^|O~$)XmPQ%F3F00a16eUE+GR#|Z+AMo)5B_R8BktTbE`QI%8$uPR!Cr99x=I3#gx znH;UHI#KWJor^pr^t-)%1hf7;&KM?%72%CGQ*M+&EOMk~mj|q%R;_;*E0{p=bVFEv z{u6bWFNh5Zo1xG)6=ZW#`w#ckqeM|?XboddE49_f)#j7NSzxJp{_pWBx_$+D*ebV?`kf$}vMJUzvwNb9X(+W!gYn7<9ekzErYr}mFwUlDkFDbx*=dp%f_pb@-;!8XN9*U^l~wM0}5*ldD^2(I@3(Ei&D5xF z#g$x5NdQrFYIeU87moDIRDf~z=e0+B=85Aiw`%cz(}UIW0PvckqQ05X#noKn-zZ(S z?e*yolgd8uxJli8b}}yVeAhqA;-NP`riY2xbTKvvk5})o?yJ;sNrpgA6dVYgjVpX* zE3z@2G!r5~7Xw5vL_ye0v%WX+isB@WJ>L7i+~?WXsn|UWD*v+8h_i3Lf+Qf1v*ad2 zn+&@zQW$&R&pFpi6h0p%6_uOSne3mcf5dqCh3G~W`I;XCc?9tYfos@xlU>Z%6bCtS zfSjU@v2*_1guvg{`TR8)1LhtOM+<&PRj3IP@JuE+CkqN3630XZNsYz1*Amb9|%Tg zDwXAjTm0_EnSM7mwPy{t%%PpYP1@a8$Ng|u*nJU4t?d^drc^o;Nhz&4p|!QP7Fm(d zJepBaLo4W2K}{xcp5*QwfvHiPV0eigh^67C6g%Vr{>G6Th*9p#yBOeI_? zwWoKqbURj{KNX5c4r&&SON*d7vz4BE9za!svFt!e9}EgHRi&iR#VC9NFJzNGMv_VU|cabE+bf z@Fimw4XxFFXjtj~qrp-wbdB@TwSfx&(3b=@n=g&JbM7Pdw^CxU%31tRd&aUg?0>9d zG}z92KE0vw_kd)4nUNn#mtg)rc#b7W$RPfO?J1OY=^NkIMOpA-L4KwxmcaN*DWIF6 zKw}VHvd#><^XE;oI!z@@{W|B-m|2PRj@2n6tByw~(l%7CQGk-37mhJ-C4J}fx2qhB zPnR{vmDb$1CSANiN$fl?#hsQ;fU~*7<<(5x$!OCyzQ??)9N4^HUlTG^UGGUb8Y z(4Dqn$r6G|=km%g-gX@l@#c3rcjq?PLW%94=5jnc)CK0(M+E2~WZ~?n)yWF#=GM~< z@tb<2%vI4URv$)0ES059xM~*sXs_x5e@Q`8Kl6G?FyT_!1(W_Q_zK2iCCswt>vKCZ z9#i_SJ=dN=Xi+#0^C)nBKA9swG-1+ou|y|LQRH2Zdu^3yOgm>8?h?hQk4sETy$eyp{%H(=7|GokfNG_Kz6&IaTeiDR z&DTF_>rYuPbyzou9wA{2Y~0g%EECM)@9PXV7N>oA-+L$Cf4zLOG-LIWOj4UPxK%-qF8 zqv7V;-h@n*a9>+w_9eo%1us-+y6VF+j;G?H!p7-KX^;xF^75cfk`GsvxYDe-9;lI6 z*XiCGcxl6Gz$o1I*zQz`!-21$w*j*wlWsR>Kwt4)Yv5!YaxG&{?wvb_q}l07s;RBz z6`yLONsH$@5$gqatw4IlkrK^}utPJW!5-B~vDw%=E$crxQDeZ_;KvCLdZ(kq z{w9Tbp&gYW)~3T0<%F7hh6g6-BI36-luK=fU1BQ-0S*@w^LF_!TS5iV4b1{sc*XQQ z#|}F>4$3z;NcH~Y6(&N4X+W5RhbJrxDq+WRJKa;!$avAh1hmuxaSNht4ZfzoF`J}L`ATNFLS<;ajwJbTd4vAJIA zI-!DzHNVdBmv-KpGGns^bnJ*a_SUguB<2R%nwLc~eKsk!D4|d&o6K#p+u8=$EzL9P z5B37)MRXIm30-DHjM6N$qMuwA&K+fUI)Y-HU`IMs2t|<7^JUpD2kIvmWjE@*li3r# z@zro4LcwKpwfm6FZLxt2$Va239YRvrTa^}!Vt^;#mo9P zp->e_e)-t*s9yxb93TQ+M*E8BTz?3(3Nj_8Pq57a@B443u6j>v8#5*!=BnHX_gPVK0{NCX%lZHL;)qieQ{ nAOna^y7|db^Z)YO8xD?tZBch%zbtn582B0Jm}nP6ZifF40=Z0) diff --git a/src/images-big/treemap-ukrainian.svg b/src/images-big/treemap-ukrainian.svg deleted file mode 100644 index d335a7f..0000000 --- a/src/images-big/treemap-ukrainian.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file From 823c27e5ca367857f12c905a1b2c0c73d13bef8d Mon Sep 17 00:00:00 2001 From: Oleh Omelchenko Date: Thu, 30 Jan 2025 16:58:41 +0200 Subject: [PATCH 02/10] Add random quiz version selection and update webhook integration --- public/index.html | 12 ++++++++++++ public/js/app.js | 2 +- public/js/questionnaire.js | 33 +++++++++++++++------------------ 3 files changed, 28 insertions(+), 19 deletions(-) diff --git a/public/index.html b/public/index.html index ba89676..1a85306 100644 --- a/public/index.html +++ b/public/index.html @@ -31,6 +31,18 @@

+ \ No newline at end of file diff --git a/public/js/app.js b/public/js/app.js index 3b8aebb..b1e0079 100644 --- a/public/js/app.js +++ b/public/js/app.js @@ -42,7 +42,7 @@ function initResultsPage() { } function loadQuestions(version) { - fetch('../data/questions.json') + fetch('data/questions.json') .then(response => response.json()) .then(data => { const questions = data.quizzes[version]; diff --git a/public/js/questionnaire.js b/public/js/questionnaire.js index c2e9450..f32c967 100644 --- a/public/js/questionnaire.js +++ b/public/js/questionnaire.js @@ -1,5 +1,7 @@ // This file handles the logic for the questionnaire, including collecting additional participant information after the quiz. +const WEBHOOK_URL = "https://n8n.olehomelchenko.com/webhook/kse-research"; + document.addEventListener('DOMContentLoaded', function() { const questionnaireForm = document.getElementById('questionnaire-form'); @@ -39,35 +41,30 @@ document.addEventListener('DOMContentLoaded', function() { const quizId = 'quiz'; if (allQuizzes[quizId]) { allQuizzes[quizId].participantData = participantData; - allQuizzes[quizId].iterationVersion = 'v1.0.0'; // Add semantic versioning + allQuizzes[quizId].iterationVersion = 'v1.0.1'; // Add semantic versioning localStorage.setItem('allQuizzes', JSON.stringify(allQuizzes)); } - // Send data to the backend - fetch('/api/responses', { + // Combine quiz results and questionnaire data + const combinedData = { + allQuizzes: allQuizzes + }; + + // Send combined data to webhook + fetch(WEBHOOK_URL, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(allQuizzes) }) - .then(response => { - if (!response.ok) { - throw new Error('Network response was not ok'); - } - return response.json(); - }) - .then(data => { - if (data.success) { - console.log('Success:', data); - window.location.href = 'results.html'; - } else { - throw new Error(data.message || 'Failed to submit the form'); - } + .then(() => { + alert('Анкету надіслано успішно'); + window.location.href = 'results.html'; }) .catch((error) => { - console.error('Error:', error); - showError('Failed to submit the form. Please try again.'); + console.error('Error sending data:', error); + alert('Сталася помилка при надсиланні анкети'); submitButton.disabled = false; }); }); From b9d7597e23f320452f86f8a48db173cf2eafe441 Mon Sep 17 00:00:00 2001 From: Oleh Omelchenko Date: Thu, 30 Jan 2025 17:11:13 +0200 Subject: [PATCH 03/10] Refactor quiz timer logic for improved precision and update result storage --- public/js/quiz.js | 11 ++++++++--- public/quiz.html | 7 +++---- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/public/js/quiz.js b/public/js/quiz.js index c5bd760..d8c87d6 100644 --- a/public/js/quiz.js +++ b/public/js/quiz.js @@ -14,7 +14,7 @@ document.addEventListener('DOMContentLoaded', function () { const initialTimeLeft = 25000; // 25 seconds in milliseconds let timeLeft = initialTimeLeft; let timer; - let startTime = new Date().toISOString(); + let startTime = new Date().getTime(); // Change to getTime for milliseconds precision // Set timer label based on version if (version === 'ukrainian') { @@ -102,6 +102,8 @@ document.addEventListener('DOMContentLoaded', function () { document.querySelectorAll('.option-button').forEach(button => { button.addEventListener('click', () => submitAnswer(button.dataset.value)); }); + + startTime = new Date().getTime(); // Reset start time for each question } function stopTimer() { @@ -125,7 +127,7 @@ document.addEventListener('DOMContentLoaded', function () { if (timeLeft <= 0) { stopTimer(); alert("Time's up! Moving to the next question."); - submitAnswer(true); + submitAnswer('timeout'); // Pass 'timeout' as the selected answer } }, 100); } @@ -165,6 +167,9 @@ document.addEventListener('DOMContentLoaded', function () { score++; } + const endTime = new Date().getTime(); // Capture end time + const timeSpent = endTime - startTime; // Calculate time spent in milliseconds + // Store the question result quizResults.push({ question: currentQuestion.question, @@ -174,7 +179,7 @@ document.addEventListener('DOMContentLoaded', function () { questionIndex: currentQuestionIndex, ordinalNumber: currentQuestionIndex + 1, // Store the ordinal number of the question timestamp: new Date().toISOString(), - timeSpent: 25000 - timeLeft, // Time spent in milliseconds + timeSpent: timeSpent, // Use the calculated time spent chartType: currentQuestion.chart, chartTypeUk: currentQuestion.chart_uk // Include chart_uk type }); diff --git a/public/quiz.html b/public/quiz.html index fa8eb19..07ab79d 100644 --- a/public/quiz.html +++ b/public/quiz.html @@ -13,15 +13,14 @@
-
- Time remaining: 25s -
- +
+ Time remaining: 25s +
From 0f615a3c342d9b2a65d018ef653fc38396d0dfeb Mon Sep 17 00:00:00 2001 From: Oleh Omelchenko Date: Thu, 30 Jan 2025 18:54:19 +0200 Subject: [PATCH 04/10] Update survey instructions for clarity and add estimated completion time --- public/index.html | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/public/index.html b/public/index.html index 1a85306..cb56131 100644 --- a/public/index.html +++ b/public/index.html @@ -15,13 +15,16 @@ Запрошуємо взяти участь в дослідженні з адаптації інструменту оцінки грамотності в візуалізації даних, яке проводять викладачі та студенти Київської школи економіки.

- Мета дослідження полягає в адаптації інструменту, який вимірює, наскільки вдало люди можуть розуміти, інтерпретувати та використовувати дані, що містяться в візуалізаціях (графіки, діаграми тощо), для вирішення повсякденних проблем. + Мета дослідження – адаптація інструменту, який вимірює, наскільки вдало люди можуть розуміти, інтерпретувати та використовувати дані, що містяться в графіках, діаграмах тощо.

- Вам буде запропоновано 12 різних типів візуалізацій даних. Кожен з них буде супроводжений запитанням, відповідь на яке потрібно дати, засновуючись на інформації що отримана із візуалізації. Мова опитування буде обрана випадковим чином із двох: українська або англійська. Оберіть відповідь, яку вважаєте найточнішою. Якщо ви не впевнені, оберіть “пропустити” замість того щоб вгадувати. На кожне запитання ви маєте 25 секунд для відповіді. Якщо ви не встигли відповісти, тест автоматично перейде до наступного запитання. + Вам буде запропоновано 12 різних типів візуалізацій даних. Кожен з них буде супроводжений запитанням, відповідь на яке потрібно дати, засновуючись на інформації що отримана із візуалізації. Мова опитування буде обрана випадковим чином із двох: українська або англійська. Оберіть відповідь, яку вважаєте найточнішою. Якщо ви не впевнені, оберіть “пропустити” аби не вгадувати. На кожне запитання ви маєте 25 секунд для відповіді. Якщо ви не встигли відповісти, тест автоматично перейде до наступного запитання.

- Після надання відповідей ми попросимо вас також заповнити коротку демографічну анкету. Дані, що ми зберемо протягом опитування, є анонімними та не зможуть бути використані для ідентифікації вашої особи. Вони будуть використані в поточному та подальших дослідженнях грамотності в сфері візуалізації даних. Ці дані можуть бути передані іншим дослідникам/цям, що проводять дослідження в цій або суміжних сферах. Також вони будуть опубліковані в репозиторіях для ширшого доступу наукової спільноти. + Орієнтовний час проходження опитування - 8-10 хвилин. +

+

+ Після надання відповідей ми попросимо вас також заповнити коротку демографічну анкету. Дані, що ми зберемо протягом опитування, є анонімними.

Якщо ви маєте будь-які питання щодо змісту та деталей дослідження, звʼяжіться з Олегом Омельченком o_omelchenko@kse.org.ua. From a90bb7f5cafbe1fdb4bcd2d4558f76c182fb0b7c Mon Sep 17 00:00:00 2001 From: Oleh Omelchenko Date: Thu, 30 Jan 2025 18:55:12 +0200 Subject: [PATCH 05/10] Update quiz image handling and add translated pie chart SVG --- public/images/areachart-translated.svg | 1 + public/images/barchart-translated.svg | 1 + public/images/bubblechart-translated.svg | 1 + public/images/choropleth-translated.svg | 1 + public/images/histogram-translated.svg | 1 + public/images/linechart-translated.svg | 1 + public/images/piechart-translated.svg | 1 + public/images/scatterplot-translated.svg | 1 + public/images/stacked100-translated.svg | 1 + public/images/stackedareachart-translated.svg | 1 + public/images/stackedbarchart-translated.svg | 1 + public/images/treemap-translated.png | Bin 0 -> 104590 bytes public/js/quiz.js | 2 +- 13 files changed, 12 insertions(+), 1 deletion(-) create mode 100644 public/images/areachart-translated.svg create mode 100644 public/images/barchart-translated.svg create mode 100644 public/images/bubblechart-translated.svg create mode 100644 public/images/choropleth-translated.svg create mode 100644 public/images/histogram-translated.svg create mode 100644 public/images/linechart-translated.svg create mode 100644 public/images/piechart-translated.svg create mode 100644 public/images/scatterplot-translated.svg create mode 100644 public/images/stacked100-translated.svg create mode 100644 public/images/stackedareachart-translated.svg create mode 100644 public/images/stackedbarchart-translated.svg create mode 100644 public/images/treemap-translated.png diff --git a/public/images/areachart-translated.svg b/public/images/areachart-translated.svg new file mode 100644 index 0000000..eb5604e --- /dev/null +++ b/public/images/areachart-translated.svg @@ -0,0 +1 @@ +кві 2018лип 2018жов 2018січ 2019кві 2019лип 2019жов 20190.500.550.600.650.700.750.800.85Ціна кави ($/фунт)Ціна кави Робуста \ No newline at end of file diff --git a/public/images/barchart-translated.svg b/public/images/barchart-translated.svg new file mode 100644 index 0000000..c28a196 --- /dev/null +++ b/public/images/barchart-translated.svg @@ -0,0 +1 @@ +АвстраліяКитайГонконгІндіяІндонезіяЯпоніяМалайзіяНова ЗеландіяСінгапурПівденна КореяШрі-ЛанкаТайваньТаїландВ'єтнам0102030405060708090100Швидкість інтернету (МБіт/с)Світова швидкість інтернету (МБіт/с) \ No newline at end of file diff --git a/public/images/bubblechart-translated.svg b/public/images/bubblechart-translated.svg new file mode 100644 index 0000000..1159fbe --- /dev/null +++ b/public/images/bubblechart-translated.svg @@ -0,0 +1 @@ +150200250300350400450500550600650700750800Кількість станцій150200250300350400450500Загальна довжина системи (км)ДеліГуанчжоуТокіоМехікоЛондонСеулПарижПекінШанхайНью-Йорк234Пасажиропотік (млрд на рік)Системи метро світу \ No newline at end of file diff --git a/public/images/choropleth-translated.svg b/public/images/choropleth-translated.svg new file mode 100644 index 0000000..4e8f0a1 --- /dev/null +++ b/public/images/choropleth-translated.svg @@ -0,0 +1 @@ +NESDUTNDIAIDMEVTWYALKSMTARMOOKMNSCVAWIGAKYNHMDINCONCTNORTXFLAKDEAZCTDCMSOHLAWVNMWAMAPNRIILNJMINYCAHINV681012Рівень безробіття (%)Рівень безробіття в США в 2020 \ No newline at end of file diff --git a/public/images/histogram-translated.svg b/public/images/histogram-translated.svg new file mode 100644 index 0000000..52b8b48 --- /dev/null +++ b/public/images/histogram-translated.svg @@ -0,0 +1 @@ +0102030405060708090100110Відстань (км)020406080100120140160180200220240260Кількість клієнтівВідстань поїздки та клієнти \ No newline at end of file diff --git a/public/images/linechart-translated.svg b/public/images/linechart-translated.svg new file mode 100644 index 0000000..e67c511 --- /dev/null +++ b/public/images/linechart-translated.svg @@ -0,0 +1 @@ +лют 2020бер 2020кві 2020тра 2020чер 2020лип 2020сер 2020вер 2020жов 2020лис 2020гру 2020Місяць051015202530354045505560Ціна за барель нафти ($)Ціни на нафту \ No newline at end of file diff --git a/public/images/piechart-translated.svg b/public/images/piechart-translated.svg new file mode 100644 index 0000000..06c5f69 --- /dev/null +++ b/public/images/piechart-translated.svg @@ -0,0 +1 @@ +SamsungXiaomiAppleOppoVivoІншіРозподіл світового ринку смартфонів у 2021 році \ No newline at end of file diff --git a/public/images/scatterplot-translated.svg b/public/images/scatterplot-translated.svg new file mode 100644 index 0000000..5d2a309 --- /dev/null +++ b/public/images/scatterplot-translated.svg @@ -0,0 +1 @@ +156158160162164166168170172174176178180182184186188190Зріст (см)4045505560657075Вага (кг)Вага та зріст 85 осіб \ No newline at end of file diff --git a/public/images/stacked100-translated.svg b/public/images/stacked100-translated.svg new file mode 100644 index 0000000..5697d41 --- /dev/null +++ b/public/images/stacked100-translated.svg @@ -0,0 +1 @@ +АвстраліяВелика БританіяСШАЯпонія0%10%20%30%40%50%60%70%80%90%100%ВідсотокЗолотоСріблоБронзаМедаліРозподіл олімпійських медалей за країною \ No newline at end of file diff --git a/public/images/stackedareachart-translated.svg b/public/images/stackedareachart-translated.svg new file mode 100644 index 0000000..20493d5 --- /dev/null +++ b/public/images/stackedareachart-translated.svg @@ -0,0 +1 @@ +200920102011201220132014Year02,0004,0006,0008,00010,00012,00014,00016,000Кількість дівчатAmeliaIslaOliviaПопулярні імена для дівчаток в Великій Британії \ No newline at end of file diff --git a/public/images/stackedbarchart-translated.svg b/public/images/stackedbarchart-translated.svg new file mode 100644 index 0000000..d8a5b9b --- /dev/null +++ b/public/images/stackedbarchart-translated.svg @@ -0,0 +1 @@ +ГельсінкіКопенгагенНью-ЙоркОслоПарижСеулСтокгольмСінгапурТоронтоЦюрихМісто0510152025303540455055606570Ціна ($)ГорілкаГазована водаАрахісВодаСендвічЦіни на обслуговування в номері \ No newline at end of file diff --git a/public/images/treemap-translated.png b/public/images/treemap-translated.png new file mode 100644 index 0000000000000000000000000000000000000000..9aab54f086c685ffd13872c4509ca419123130b7 GIT binary patch literal 104590 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

7~iK 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 MXiuB6cZ1{i}dxy#N?4(brJe)vus)({OB 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 literal 0 HcmV?d00001 diff --git a/public/js/quiz.js b/public/js/quiz.js index d8c87d6..7307082 100644 --- a/public/js/quiz.js +++ b/public/js/quiz.js @@ -85,7 +85,7 @@ document.addEventListener('DOMContentLoaded', function () { timerDisplay.textContent = Math.ceil(timeLeft / 1000); // Display in whole seconds const question = questions[currentQuestionIndex]; - const imageVersion = version === 'translated' ? 'original' : version; + const imageVersion = version; const imagePath = `/images/${question.chart}-${imageVersion}.${question.image}`; document.getElementById('chart').innerHTML = `${question.chart_uk}`; From 047707fede14f42480577740cd622efe7fa7bc83 Mon Sep 17 00:00:00 2001 From: Oleh Omelchenko Date: Thu, 30 Jan 2025 19:05:06 +0200 Subject: [PATCH 06/10] Add progress bar to quiz and update survey instructions for clarity --- public/css/styles.css | 16 ++++++++++++++++ public/index.html | 3 +++ public/js/quiz.js | 8 ++++++++ public/quiz.html | 3 +++ 4 files changed, 30 insertions(+) diff --git a/public/css/styles.css b/public/css/styles.css index b5aaa25..711388a 100644 --- a/public/css/styles.css +++ b/public/css/styles.css @@ -170,6 +170,22 @@ form button { margin-bottom: 20px; } +#progress-bar-container { + width: 100%; + background-color: #f3f3f3; + border-radius: 5px; + overflow: hidden; + margin-top: 10px; +} + +#progress-bar { + height: 20px; + width: 0; + background-color: #4caf50; + border-radius: 5px; + transition: width 0.3s; +} + table { width: 100%; border-collapse: collapse; diff --git a/public/index.html b/public/index.html index cb56131..97f6acd 100644 --- a/public/index.html +++ b/public/index.html @@ -23,6 +23,9 @@

Орієнтовний час проходження опитування - 8-10 хвилин.

+

+ Просимо за можливості проходити опитування на комп’ютері або планшеті, а не на мобільному телефоні. +

Після надання відповідей ми попросимо вас також заповнити коротку демографічну анкету. Дані, що ми зберемо протягом опитування, є анонімними.

diff --git a/public/js/quiz.js b/public/js/quiz.js index 7307082..aa964c2 100644 --- a/public/js/quiz.js +++ b/public/js/quiz.js @@ -15,6 +15,7 @@ document.addEventListener('DOMContentLoaded', function () { let timeLeft = initialTimeLeft; let timer; let startTime = new Date().getTime(); // Change to getTime for milliseconds precision + const progressBar = document.getElementById('progress-bar'); // Set timer label based on version if (version === 'ukrainian') { @@ -104,6 +105,7 @@ document.addEventListener('DOMContentLoaded', function () { }); startTime = new Date().getTime(); // Reset start time for each question + updateProgressBar(); } function stopTimer() { @@ -188,6 +190,7 @@ document.addEventListener('DOMContentLoaded', function () { storeQuizProgress(); currentQuestionIndex++; + updateProgressBar(); // Reset timer state before showing next question timeLeft = initialTimeLeft; // Reset to initial time displayQuestion(); @@ -203,4 +206,9 @@ document.addEventListener('DOMContentLoaded', function () { // Redirect to the questionnaire page window.location.href = 'questionnaire.html'; } + + function updateProgressBar() { + const progress = (currentQuestionIndex / questions.length) * 100; + progressBar.style.width = `${progress}%`; + } }); \ No newline at end of file diff --git a/public/quiz.html b/public/quiz.html index 07ab79d..401e1ad 100644 --- a/public/quiz.html +++ b/public/quiz.html @@ -21,6 +21,9 @@
Time remaining: 25s
+
+
+
From 1ffada22f5edfea8a58f4ed52787c90a4978ff64 Mon Sep 17 00:00:00 2001 From: Oleh Omelchenko Date: Fri, 31 Jan 2025 13:18:15 +0200 Subject: [PATCH 07/10] Update quiz questions for gender-neutral language --- public/data/questions.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/public/data/questions.json b/public/data/questions.json index 8697918..7602082 100644 --- a/public/data/questions.json +++ b/public/data/questions.json @@ -255,7 +255,7 @@ { "chart": "scatterplot", "chart_uk": "точкова діаграма", - "question": "Існує негативний лінійний зв'язок між зростом та вагою 85 чоловіків.", + "question": "Існує негативний лінійний зв'язок між зростом та вагою 85 осіб.", "options": [ "Правда", "Неправда", @@ -421,7 +421,7 @@ { "chart": "scatterplot", "chart_uk": "точкова діаграма", - "question": "Існує негативний лінійний зв'язок між зростом та вагою 85 чоловіків.", + "question": "Існує негативний лінійний зв'язок між зростом та вагою 85 осіб.", "options": [ "Правда", "Неправда", From a5807eebf65a4b1abf769ae85b1d92e4474eabf9 Mon Sep 17 00:00:00 2001 From: Oleh Omelchenko Date: Fri, 31 Jan 2025 13:19:39 +0200 Subject: [PATCH 08/10] Bump quiz iteration version to v2.0.0 for semantic versioning - published version --- public/js/questionnaire.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/js/questionnaire.js b/public/js/questionnaire.js index f32c967..b797e21 100644 --- a/public/js/questionnaire.js +++ b/public/js/questionnaire.js @@ -41,7 +41,7 @@ document.addEventListener('DOMContentLoaded', function() { const quizId = 'quiz'; if (allQuizzes[quizId]) { allQuizzes[quizId].participantData = participantData; - allQuizzes[quizId].iterationVersion = 'v1.0.1'; // Add semantic versioning + allQuizzes[quizId].iterationVersion = 'v2.0.0'; // Add semantic versioning localStorage.setItem('allQuizzes', JSON.stringify(allQuizzes)); } From f4f5c54596d9f09e1ce7fc478bcad08e5708daae Mon Sep 17 00:00:00 2001 From: Oleh Omelchenko Date: Fri, 31 Jan 2025 14:01:37 +0200 Subject: [PATCH 09/10] Refine survey instructions for clarity and add details on data usage; update language options in questionnaire --- public/index.html | 7 ++++++- public/questionnaire.html | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/public/index.html b/public/index.html index 97f6acd..54da5dc 100644 --- a/public/index.html +++ b/public/index.html @@ -27,7 +27,12 @@ Просимо за можливості проходити опитування на комп’ютері або планшеті, а не на мобільному телефоні.

- Після надання відповідей ми попросимо вас також заповнити коротку демографічну анкету. Дані, що ми зберемо протягом опитування, є анонімними. + Після надання відповідей ми попросимо вас також заповнити коротку демографічну анкету. +

+

+ Дані, що ми зберемо протягом опитування, є анонімними та не можуть бути використані для того щоб ідентифікувати вашу особистість. Вони будуть використані лише для наукових цілей та публікацій. + Ми використаємо дані, які ми отримуємо в цьому опитванні, для поточних та подальших досліджень. + Ці дослідження можуть надати додаткову інформацію, яка буде корисною для розробки кращих інструментів візуальної комунікації українською мовою. Ми можемо також поділитись результатами дослідження з іншими науковцями та публікувати їх у наукових журналах.

Якщо ви маєте будь-які питання щодо змісту та деталей дослідження, звʼяжіться з Олегом Омельченком o_omelchenko@kse.org.ua. diff --git a/public/questionnaire.html b/public/questionnaire.html index f6bafeb..e9b906e 100644 --- a/public/questionnaire.html +++ b/public/questionnaire.html @@ -51,10 +51,10 @@ From d0b14ba6643671623a4761e1227d00f9f745828e Mon Sep 17 00:00:00 2001 From: Oleh Omelchenko Date: Sun, 7 Sep 2025 22:04:51 +0300 Subject: [PATCH 10/10] Refactor webhook URL configuration to use environment variable - Updated questionnaire.js to use a local API endpoint as a fallback for the webhook URL. - Modified server.js to retrieve the webhook URL from an environment variable. - Added .env.example file to provide a template for environment configuration, including the optional webhook URL. - Added an empty responses.json for local storage --- .env.example | 15 + README.md | 26 +- data/responses.json | 1 + package-lock.json | 616 +++++++++++++++++++++++++++---------- public/js/questionnaire.js | 4 +- server.js | 2 +- 6 files changed, 495 insertions(+), 169 deletions(-) create mode 100644 .env.example create mode 100644 data/responses.json diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..d81e62b --- /dev/null +++ b/.env.example @@ -0,0 +1,15 @@ +# Environment configuration for the research application + +# Port for the web server (optional, defaults to 3000) +PORT=3000 + +# External webhook URL for data collection (optional) +# If not set, data will only be stored locally in data/responses.json +# Example: WEBHOOK_URL=https://your-domain.com/webhook/endpoint +WEBHOOK_URL= + +# Docker/Traefik configuration (for production deployment) +YOUR_DOMAIN=your-domain.com +LETSENCRYPT_EMAIL=your-email@example.com +TRAEFIK_BASIC_AUTH_USER=admin +TRAEFIK_BASIC_AUTH_PASSWORD=your-hashed-password diff --git a/README.md b/README.md index 02fcd41..46f7759 100644 --- a/README.md +++ b/README.md @@ -44,12 +44,28 @@ This project is a simple web application designed to collect responses from user ``` npm install ``` -4. Start the server and bind it to all network interfaces (0.0.0.0): +4. Configure environment variables: + ```bash + cp .env.example .env + # Edit .env file to configure your webhook URL and other settings ``` - node server.js --host 0.0.0.0 +5. Start the server: ``` -5. Open your web browser and go to `http://localhost:3000` to access the application. + npm start + ``` +6. Open your web browser and go to `http://localhost:3000` to access the application. -## Contributing +## Configuration -Feel free to submit issues or pull requests for any improvements or bug fixes. \ No newline at end of file +The application can be configured using environment variables: + +- `PORT`: Port for the web server (default: 3000) +- `WEBHOOK_URL`: External webhook URL for data collection (optional) + - If not set, data will only be stored locally in `data/responses.json` + - If set, data will be sent to both the local file and the webhook +- Docker/Traefik variables for production deployment (see `.env.example`) + +## Data Collection + +- **Local Storage**: All responses are always saved to `data/responses.json` +- **External Webhook**: If `WEBHOOK_URL` is configured, responses are also sent to the external endpoint diff --git a/data/responses.json b/data/responses.json new file mode 100644 index 0000000..fe51488 --- /dev/null +++ b/data/responses.json @@ -0,0 +1 @@ +[] diff --git a/package-lock.json b/package-lock.json index a3b44ea..1ba04e3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,43 +1,58 @@ { "name": "simple-web-app", "version": "1.0.0", - "lockfileVersion": 1, + "lockfileVersion": 3, "requires": true, - "dependencies": { - "accepts": { + "packages": { + "": { + "name": "simple-web-app", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "axios": "^1.7.9", + "body-parser": "^1.19.0", + "express": "^4.17.1" + } + }, + "node_modules/accepts": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "requires": { + "dependencies": { "mime-types": "~2.1.34", "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" } }, - "array-flatten": { + "node_modules/array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" }, - "asynckit": { + "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "license": "MIT" }, - "axios": { - "version": "1.7.9", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.9.tgz", - "integrity": "sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw==", - "requires": { + "node_modules/axios": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.11.0.tgz", + "integrity": "sha512-1Lx3WLFQWm3ooKDYZD1eXmoGO9fxYQjrycfHFC8P0sCfQVXyROp0p9PFWBehewBOdCwHc+f/b8I0fMto5eSfwA==", + "license": "MIT", + "dependencies": { "follow-redirects": "^1.15.6", - "form-data": "^4.0.0", + "form-data": "^4.0.4", "proxy-from-env": "^1.1.0" } }, - "body-parser": { + "node_modules/body-parser": { "version": "1.20.3", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", - "requires": { + "dependencies": { "bytes": "3.1.2", "content-type": "~1.0.5", "debug": "2.6.9", @@ -50,138 +65,211 @@ "raw-body": "2.5.2", "type-is": "~1.6.18", "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" } }, - "bytes": { + "node_modules/bytes": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "engines": { + "node": ">= 0.8" + } }, - "call-bind-apply-helpers": { + "node_modules/call-bind-apply-helpers": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.1.tgz", "integrity": "sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==", - "requires": { + "dependencies": { "es-errors": "^1.3.0", "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" } }, - "call-bound": { + "node_modules/call-bound": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.3.tgz", "integrity": "sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==", - "requires": { + "dependencies": { "call-bind-apply-helpers": "^1.0.1", "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "combined-stream": { + "node_modules/combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "requires": { + "license": "MIT", + "dependencies": { "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" } }, - "content-disposition": { + "node_modules/content-disposition": { "version": "0.5.4", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "requires": { + "dependencies": { "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" } }, - "content-type": { + "node_modules/content-type": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", - "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==" + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "engines": { + "node": ">= 0.6" + } }, - "cookie": { + "node_modules/cookie": { "version": "0.7.1", "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", - "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==" + "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", + "engines": { + "node": ">= 0.6" + } }, - "cookie-signature": { + "node_modules/cookie-signature": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" }, - "debug": { + "node_modules/debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { + "dependencies": { "ms": "2.0.0" } }, - "delayed-stream": { + "node_modules/delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } }, - "depd": { + "node_modules/depd": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } }, - "destroy": { + "node_modules/destroy": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==" + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } }, - "dunder-proto": { + "node_modules/dunder-proto": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", - "requires": { + "dependencies": { "call-bind-apply-helpers": "^1.0.1", "es-errors": "^1.3.0", "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" } }, - "ee-first": { + "node_modules/ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" }, - "encodeurl": { + "node_modules/encodeurl": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", - "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==" + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "engines": { + "node": ">= 0.8" + } }, - "es-define-property": { + "node_modules/es-define-property": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", - "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==" + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "engines": { + "node": ">= 0.4" + } }, - "es-errors": { + "node_modules/es-errors": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==" + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "engines": { + "node": ">= 0.4" + } }, - "es-object-atoms": { + "node_modules/es-object-atoms": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", - "requires": { + "dependencies": { "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" } }, - "escape-html": { + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" }, - "etag": { + "node_modules/etag": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==" + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "engines": { + "node": ">= 0.6" + } }, - "express": { + "node_modules/express": { "version": "4.21.2", "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz", "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==", - "requires": { + "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", "body-parser": "1.20.3", @@ -213,13 +301,20 @@ "type-is": "~1.6.18", "utils-merge": "1.0.1", "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, - "finalhandler": { + "node_modules/finalhandler": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", - "requires": { + "dependencies": { "debug": "2.6.9", "encodeurl": "~2.0.0", "escape-html": "~1.0.3", @@ -227,43 +322,75 @@ "parseurl": "~1.3.3", "statuses": "2.0.1", "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" } }, - "follow-redirects": { + "node_modules/follow-redirects": { "version": "1.15.9", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", - "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==" - }, - "form-data": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz", - "integrity": "sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" + "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } } }, - "forwarded": { + "node_modules/form-data": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz", + "integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.2", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/forwarded": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "engines": { + "node": ">= 0.6" + } }, - "fresh": { + "node_modules/fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==" + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "engines": { + "node": ">= 0.6" + } }, - "function-bind": { + "node_modules/function-bind": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==" + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "get-intrinsic": { + "node_modules/get-intrinsic": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.7.tgz", "integrity": "sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==", - "requires": { + "dependencies": { "call-bind-apply-helpers": "^1.0.1", "es-define-property": "^1.0.1", "es-errors": "^1.3.0", @@ -274,189 +401,305 @@ "has-symbols": "^1.1.0", "hasown": "^2.0.2", "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "get-proto": { + "node_modules/get-proto": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", - "requires": { + "dependencies": { "dunder-proto": "^1.0.1", "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" } }, - "gopd": { + "node_modules/gopd": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", - "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==" + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "has-symbols": { + "node_modules/has-symbols": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", - "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==" + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "hasown": { + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", - "requires": { + "dependencies": { "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" } }, - "http-errors": { + "node_modules/http-errors": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "requires": { + "dependencies": { "depd": "2.0.0", "inherits": "2.0.4", "setprototypeof": "1.2.0", "statuses": "2.0.1", "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" } }, - "iconv-lite": { + "node_modules/iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "requires": { + "dependencies": { "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" } }, - "inherits": { + "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, - "ipaddr.js": { + "node_modules/ipaddr.js": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "engines": { + "node": ">= 0.10" + } }, - "math-intrinsics": { + "node_modules/math-intrinsics": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", - "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==" + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "engines": { + "node": ">= 0.4" + } }, - "media-typer": { + "node_modules/media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==" + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "engines": { + "node": ">= 0.6" + } }, - "merge-descriptors": { + "node_modules/merge-descriptors": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", - "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==" + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "methods": { + "node_modules/methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==" + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "engines": { + "node": ">= 0.6" + } }, - "mime": { + "node_modules/mime": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } }, - "mime-db": { + "node_modules/mime-db": { "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } }, - "mime-types": { + "node_modules/mime-types": { "version": "2.1.35", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "requires": { + "dependencies": { "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" } }, - "ms": { + "node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, - "negotiator": { + "node_modules/negotiator": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "engines": { + "node": ">= 0.6" + } }, - "object-inspect": { + "node_modules/object-inspect": { "version": "1.13.3", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.3.tgz", - "integrity": "sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==" + "integrity": "sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "on-finished": { + "node_modules/on-finished": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "requires": { + "dependencies": { "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" } }, - "parseurl": { + "node_modules/parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "engines": { + "node": ">= 0.8" + } }, - "path-to-regexp": { + "node_modules/path-to-regexp": { "version": "0.1.12", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz", "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==" }, - "proxy-addr": { + "node_modules/proxy-addr": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "requires": { + "dependencies": { "forwarded": "0.2.0", "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" } }, - "proxy-from-env": { + "node_modules/proxy-from-env": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" }, - "qs": { + "node_modules/qs": { "version": "6.13.0", "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", - "requires": { + "dependencies": { "side-channel": "^1.0.6" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "range-parser": { + "node_modules/range-parser": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "engines": { + "node": ">= 0.6" + } }, - "raw-body": { + "node_modules/raw-body": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", - "requires": { + "dependencies": { "bytes": "3.1.2", "http-errors": "2.0.0", "iconv-lite": "0.4.24", "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" } }, - "safe-buffer": { + "node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] }, - "safer-buffer": { + "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, - "send": { + "node_modules/send": { "version": "0.19.0", "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", - "requires": { + "dependencies": { "debug": "2.6.9", "depd": "2.0.0", "destroy": "1.2.0", @@ -471,112 +714,161 @@ "range-parser": "~1.2.1", "statuses": "2.0.1" }, - "dependencies": { - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==" - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - } + "engines": { + "node": ">= 0.8.0" } }, - "serve-static": { + "node_modules/send/node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/serve-static": { "version": "1.16.2", "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", - "requires": { + "dependencies": { "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "parseurl": "~1.3.3", "send": "0.19.0" + }, + "engines": { + "node": ">= 0.8.0" } }, - "setprototypeof": { + "node_modules/setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" }, - "side-channel": { + "node_modules/side-channel": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", - "requires": { + "dependencies": { "es-errors": "^1.3.0", "object-inspect": "^1.13.3", "side-channel-list": "^1.0.0", "side-channel-map": "^1.0.1", "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "side-channel-list": { + "node_modules/side-channel-list": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", - "requires": { + "dependencies": { "es-errors": "^1.3.0", "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "side-channel-map": { + "node_modules/side-channel-map": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", - "requires": { + "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", "get-intrinsic": "^1.2.5", "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "side-channel-weakmap": { + "node_modules/side-channel-weakmap": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", - "requires": { + "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", "get-intrinsic": "^1.2.5", "object-inspect": "^1.13.3", "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "statuses": { + "node_modules/statuses": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "engines": { + "node": ">= 0.8" + } }, - "toidentifier": { + "node_modules/toidentifier": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "engines": { + "node": ">=0.6" + } }, - "type-is": { + "node_modules/type-is": { "version": "1.6.18", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "requires": { + "dependencies": { "media-typer": "0.3.0", "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" } }, - "unpipe": { + "node_modules/unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==" + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "engines": { + "node": ">= 0.8" + } }, - "utils-merge": { + "node_modules/utils-merge": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==" + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "engines": { + "node": ">= 0.4.0" + } }, - "vary": { + "node_modules/vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==" + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "engines": { + "node": ">= 0.8" + } } } } diff --git a/public/js/questionnaire.js b/public/js/questionnaire.js index b797e21..c8d623b 100644 --- a/public/js/questionnaire.js +++ b/public/js/questionnaire.js @@ -1,6 +1,8 @@ // This file handles the logic for the questionnaire, including collecting additional participant information after the quiz. -const WEBHOOK_URL = "https://n8n.olehomelchenko.com/webhook/kse-research"; +// Configure webhook URL via environment variable on server side +// Fallback to local API endpoint if no external webhook configured +const WEBHOOK_URL = '/api/responses'; document.addEventListener('DOMContentLoaded', function() { const questionnaireForm = document.getElementById('questionnaire-form'); diff --git a/server.js b/server.js index 799ca67..f3e19d4 100644 --- a/server.js +++ b/server.js @@ -6,7 +6,7 @@ const axios = require('axios'); const app = express(); const PORT = process.env.PORT || 3000; -const WEBHOOK_URL = "https://n8n.olehomelchenko.com/webhook/kse-research"; +const WEBHOOK_URL = process.env.WEBHOOK_URL; app.use(bodyParser.json()); app.use(express.static(path.join(__dirname, 'public')));