changeset 0:90155bdd5dd6

first commit
author Emmanouil Theofanis Chourdakis <e.t.chourdakis@qmul.ac.uk>
date Wed, 16 May 2018 18:27:05 +0100
parents
children bac47e5ffc10
files demo/._script.txt demo/README.md demo/annotation2model.py demo/annotation2script.py demo/build_festival.sh demo/build_requirements.sh demo/characters.txt demo/data/.stats_cache demo/data/demo/.stats_cache demo/data/demo/annotation.conf demo/data/demo/bull.ann demo/data/demo/bull.txt demo/data/demo/bull_processed.ann demo/data/demo/bull_processed.ann.orig demo/data/demo/bull_processed.txt demo/data/demo/bull_processed_script.ann demo/data/demo/bull_processed_script.txt demo/data/demo/bull_quotes.json demo/data/demo/examples.ann demo/data/demo/examples.txt demo/data/demo/examples.txt.ann demo/data/demo/examples_processed.ann demo/data/demo/examples_processed.txt demo/data/demo/examples_processed_bak.ann demo/data/demo/examples_processed_processed.ann demo/data/demo/examples_processed_processed.txt demo/data/demo/examples_processed_quotes.json demo/data/demo/examples_quotes.json demo/data/models/ner_model.pkl demo/data/training/annotation.conf demo/data/training/examples.ann demo/data/training/examples.txt demo/data/workspace/.stats_cache demo/data/workspace/.stats_cache.orig demo/data/workspace/annotation.conf demo/data/workspace/story_processed.ann demo/data/workspace/story_processed.ann.orig demo/data/workspace/story_processed.txt demo/data/workspace/story_processed.txt.orig demo/exports.txt demo/img1.png demo/img2.png demo/ner.py demo/ner.pyc demo/ner_model.pkl demo/package-lock.json demo/places.txt demo/rel.py demo/rel_model.pkl demo/renders/README.md demo/renders/story_processed_script.wav demo/requirements.txt demo/saywords.txt demo/spatial_indicators.txt demo/text2annotation.py demo/workspace/annotation.conf demo/workspace/approach1.py demo/workspace/example.txt demo/workspace/radioplay-gen_approach1.py demo/workspace/radioplay_render.sh demo/workspace/reverb.py demo/workspace/rtsfx.py demo/workspace/semantic_analysis.sh demo/workspace/sfx.xls demo/workspace/story.txt demo/workspace/story.txt.orig demo/workspace/story_processed.ann demo/workspace/story_processed.ann.orig demo/workspace/story_processed.txt demo/workspace/story_processed.txt.orig demo/workspace/story_processed_script.json demo/workspace/story_processed_script.txt demo/workspace/story_quotes.json demo/workspace/story_quotes.json.orig demo/workspace/transcript.xls results/data/.bash_history results/data/.bash_profile results/data/.viminfo results/data/.vimrc results/data/saves/.ipynb_checkpoints/Plots-checkpoint.ipynb results/data/saves/.ipynb_checkpoints/plots-checkpoint.ipynb results/data/saves/.png results/data/saves/Plots.ipynb results/data/saves/Report.pdf results/data/saves/Report.tex results/data/saves/characterid.pdf results/data/saves/immersion.pdf results/data/saves/page1-default-ratings.csv results/data/saves/page1/.ipynb_checkpoints/page1-comments-a0000-checkpoint.csv results/data/saves/page1/page1-comments-a0000.csv results/data/saves/page1/page1-comments-a0011.csv results/data/saves/page1/page1-comments-a1011.csv results/data/saves/page1/page1-comments-a1101.csv results/data/saves/page1/page1-comments-a1110.csv results/data/saves/page1/page1-comments-a1111.csv results/data/saves/page2-default-ratings.csv results/data/saves/page2/page2-comments-b0000.csv results/data/saves/page2/page2-comments-b0011.csv results/data/saves/page2/page2-comments-b1011.csv results/data/saves/page2/page2-comments-b1101.csv results/data/saves/page2/page2-comments-b1110.csv results/data/saves/page2/page2-comments-b1111.csv results/data/saves/page3-default-ratings.csv results/data/saves/page3/page3-comments-c0000.csv results/data/saves/page3/page3-comments-c0011.csv results/data/saves/page3/page3-comments-c1011.csv results/data/saves/page3/page3-comments-c1101.csv results/data/saves/page3/page3-comments-c1110.csv results/data/saves/page3/page3-comments-c1111.csv results/data/saves/page4-default-ratings.csv results/data/saves/page4/page4-comments-a00002.csv results/data/saves/page4/page4-comments-a00112.csv results/data/saves/page4/page4-comments-a10112.csv results/data/saves/page4/page4-comments-a11012.csv results/data/saves/page4/page4-comments-a11102.csv results/data/saves/page4/page4-comments-a11112.csv results/data/saves/page5-default-ratings.csv results/data/saves/page5/page5-comments-b00002.csv results/data/saves/page5/page5-comments-b00112.csv results/data/saves/page5/page5-comments-b10112.csv results/data/saves/page5/page5-comments-b11012.csv results/data/saves/page5/page5-comments-b11102.csv results/data/saves/page5/page5-comments-b11112.csv results/data/saves/page6-default-ratings.csv results/data/saves/page6/page6-comments-c00002.csv results/data/saves/page6/page6-comments-c00112.csv results/data/saves/page6/page6-comments-c10112.csv results/data/saves/page6/page6-comments-c11012.csv results/data/saves/page6/page6-comments-c11102.csv results/data/saves/page6/page6-comments-c11112.csv results/data/saves/page7-default-ratings.csv results/data/saves/page7/page7-comments-a00003.csv results/data/saves/page7/page7-comments-a00113.csv results/data/saves/page7/page7-comments-a10113.csv results/data/saves/page7/page7-comments-a11013.csv results/data/saves/page7/page7-comments-a11103.csv results/data/saves/page7/page7-comments-a11113.csv results/data/saves/page8-default-ratings.csv results/data/saves/page8/page8-comments-b00003.csv results/data/saves/page8/page8-comments-b00113.csv results/data/saves/page8/page8-comments-b10113.csv results/data/saves/page8/page8-comments-b11013.csv results/data/saves/page8/page8-comments-b11103.csv results/data/saves/page8/page8-comments-b11113.csv results/data/saves/page9-default-ratings.csv results/data/saves/page9/page9-comments-c00003.csv results/data/saves/page9/page9-comments-c00113.csv results/data/saves/page9/page9-comments-c10113.csv results/data/saves/page9/page9-comments-c11013.csv results/data/saves/page9/page9-comments-c11103.csv results/data/saves/page9/page9-comments-c11113.csv results/data/saves/preference.pdf results/data/saves/ratings/.ipynb_checkpoints/page1-default-ratings-checkpoint.csv results/data/saves/ratings/.ipynb_checkpoints/page2-default-ratings-checkpoint.csv results/data/saves/ratings/.ipynb_checkpoints/page3-default-ratings-checkpoint.csv results/data/saves/ratings/.ipynb_checkpoints/page4-default-ratings-checkpoint.csv results/data/saves/ratings/.ipynb_checkpoints/page5-default-ratings-checkpoint.csv results/data/saves/ratings/page1-default-ratings-box.pdf results/data/saves/ratings/page1-default-ratings.csv results/data/saves/ratings/page2-default-ratings-box.pdf results/data/saves/ratings/page2-default-ratings.csv results/data/saves/ratings/page3-default-ratings-box.pdf results/data/saves/ratings/page3-default-ratings.csv results/data/saves/ratings/page4-default-ratings-box.pdf results/data/saves/ratings/page4-default-ratings.csv results/data/saves/ratings/page5-default-ratings-box.pdf results/data/saves/ratings/page5-default-ratings.csv results/data/saves/ratings/page6-default-ratings-box.pdf results/data/saves/ratings/page6-default-ratings.csv results/data/saves/ratings/page7-default-ratings-box.pdf results/data/saves/ratings/page7-default-ratings.csv results/data/saves/ratings/page8-default-ratings-box.pdf results/data/saves/ratings/page8-default-ratings.csv results/data/saves/ratings/page9-default-ratings-box.pdf results/data/saves/ratings/page9-default-ratings.csv results/data/saves/subjects_per_page.pdf results/data/saves/task1.pdf results/data/saves/task2.pdf results/data/saves/task3.pdf results/data/saves/time_per_order.pdf results/data/saves/time_per_page.pdf results/data/saves/timelines_movement/save-9UODgpqx7pTDhiiLm7ds39wh59aYBrHK-page1.pdf results/data/saves/timelines_movement/save-9UODgpqx7pTDhiiLm7ds39wh59aYBrHK-page2.pdf results/data/saves/timelines_movement/save-9UODgpqx7pTDhiiLm7ds39wh59aYBrHK-page3.pdf results/data/saves/timelines_movement/save-9UODgpqx7pTDhiiLm7ds39wh59aYBrHK-page4.pdf results/data/saves/timelines_movement/save-9UODgpqx7pTDhiiLm7ds39wh59aYBrHK-page5.pdf results/data/saves/timelines_movement/save-9UODgpqx7pTDhiiLm7ds39wh59aYBrHK-page6.pdf results/data/saves/timelines_movement/save-9UODgpqx7pTDhiiLm7ds39wh59aYBrHK-page7.pdf results/data/saves/timelines_movement/save-9UODgpqx7pTDhiiLm7ds39wh59aYBrHK-page8.pdf results/data/saves/timelines_movement/save-9UODgpqx7pTDhiiLm7ds39wh59aYBrHK-page9.pdf results/data/saves/timelines_movement/save-D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH-page1.pdf results/data/saves/timelines_movement/save-D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH-page2.pdf results/data/saves/timelines_movement/save-D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH-page3.pdf results/data/saves/timelines_movement/save-D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH-page4.pdf results/data/saves/timelines_movement/save-D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH-page5.pdf results/data/saves/timelines_movement/save-D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH-page6.pdf results/data/saves/timelines_movement/save-D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH-page7.pdf results/data/saves/timelines_movement/save-D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH-page8.pdf results/data/saves/timelines_movement/save-D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH-page9.pdf results/data/saves/timelines_movement/save-G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ-page1.pdf results/data/saves/timelines_movement/save-G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ-page2.pdf results/data/saves/timelines_movement/save-G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ-page3.pdf results/data/saves/timelines_movement/save-G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ-page4.pdf results/data/saves/timelines_movement/save-G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ-page5.pdf results/data/saves/timelines_movement/save-G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ-page6.pdf results/data/saves/timelines_movement/save-G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ-page7.pdf results/data/saves/timelines_movement/save-G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ-page8.pdf results/data/saves/timelines_movement/save-G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ-page9.pdf results/data/saves/timelines_movement/save-IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi-page1.pdf results/data/saves/timelines_movement/save-IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi-page2.pdf results/data/saves/timelines_movement/save-IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi-page3.pdf results/data/saves/timelines_movement/save-IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi-page4.pdf results/data/saves/timelines_movement/save-IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi-page5.pdf results/data/saves/timelines_movement/save-IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi-page6.pdf results/data/saves/timelines_movement/save-IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi-page7.pdf results/data/saves/timelines_movement/save-IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi-page8.pdf results/data/saves/timelines_movement/save-IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi-page9.pdf results/data/saves/timelines_movement/save-JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml-page1.pdf results/data/saves/timelines_movement/save-JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml-page2.pdf results/data/saves/timelines_movement/save-JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml-page3.pdf results/data/saves/timelines_movement/save-JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml-page4.pdf results/data/saves/timelines_movement/save-JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml-page5.pdf results/data/saves/timelines_movement/save-JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml-page6.pdf results/data/saves/timelines_movement/save-JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml-page7.pdf results/data/saves/timelines_movement/save-JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml-page8.pdf results/data/saves/timelines_movement/save-JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml-page9.pdf results/data/saves/timelines_movement/save-KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo-page1.pdf results/data/saves/timelines_movement/save-KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo-page2.pdf results/data/saves/timelines_movement/save-KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo-page3.pdf results/data/saves/timelines_movement/save-KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo-page4.pdf results/data/saves/timelines_movement/save-KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo-page5.pdf results/data/saves/timelines_movement/save-KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo-page6.pdf results/data/saves/timelines_movement/save-KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo-page7.pdf results/data/saves/timelines_movement/save-KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo-page8.pdf results/data/saves/timelines_movement/save-KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo-page9.pdf results/data/saves/timelines_movement/save-OK2yLWD54tr3klqiS631VXjQlroZfmD3-page1.pdf results/data/saves/timelines_movement/save-OK2yLWD54tr3klqiS631VXjQlroZfmD3-page2.pdf results/data/saves/timelines_movement/save-OK2yLWD54tr3klqiS631VXjQlroZfmD3-page3.pdf results/data/saves/timelines_movement/save-OK2yLWD54tr3klqiS631VXjQlroZfmD3-page4.pdf results/data/saves/timelines_movement/save-OK2yLWD54tr3klqiS631VXjQlroZfmD3-page5.pdf results/data/saves/timelines_movement/save-OK2yLWD54tr3klqiS631VXjQlroZfmD3-page6.pdf results/data/saves/timelines_movement/save-OK2yLWD54tr3klqiS631VXjQlroZfmD3-page7.pdf results/data/saves/timelines_movement/save-OK2yLWD54tr3klqiS631VXjQlroZfmD3-page8.pdf results/data/saves/timelines_movement/save-OK2yLWD54tr3klqiS631VXjQlroZfmD3-page9.pdf results/data/saves/timelines_movement/save-TOMYD23tpHwml90IqrXit137iWLikwWd-page1.pdf results/data/saves/timelines_movement/save-TOMYD23tpHwml90IqrXit137iWLikwWd-page2.pdf results/data/saves/timelines_movement/save-TOMYD23tpHwml90IqrXit137iWLikwWd-page3.pdf results/data/saves/timelines_movement/save-TOMYD23tpHwml90IqrXit137iWLikwWd-page4.pdf results/data/saves/timelines_movement/save-TOMYD23tpHwml90IqrXit137iWLikwWd-page5.pdf results/data/saves/timelines_movement/save-TOMYD23tpHwml90IqrXit137iWLikwWd-page6.pdf results/data/saves/timelines_movement/save-TOMYD23tpHwml90IqrXit137iWLikwWd-page7.pdf results/data/saves/timelines_movement/save-TOMYD23tpHwml90IqrXit137iWLikwWd-page8.pdf results/data/saves/timelines_movement/save-TOMYD23tpHwml90IqrXit137iWLikwWd-page9.pdf results/data/saves/timelines_movement/save-U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq-page1.pdf results/data/saves/timelines_movement/save-U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq-page2.pdf results/data/saves/timelines_movement/save-U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq-page3.pdf results/data/saves/timelines_movement/save-U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq-page4.pdf results/data/saves/timelines_movement/save-U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq-page5.pdf results/data/saves/timelines_movement/save-U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq-page6.pdf results/data/saves/timelines_movement/save-U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq-page7.pdf results/data/saves/timelines_movement/save-U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq-page8.pdf results/data/saves/timelines_movement/save-U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq-page9.pdf results/data/saves/timelines_movement/save-VyX492RQzqQXRL84PByL9pLt8C5p4c50-page1.pdf results/data/saves/timelines_movement/save-VyX492RQzqQXRL84PByL9pLt8C5p4c50-page2.pdf results/data/saves/timelines_movement/save-VyX492RQzqQXRL84PByL9pLt8C5p4c50-page3.pdf results/data/saves/timelines_movement/save-VyX492RQzqQXRL84PByL9pLt8C5p4c50-page4.pdf results/data/saves/timelines_movement/save-VyX492RQzqQXRL84PByL9pLt8C5p4c50-page5.pdf results/data/saves/timelines_movement/save-VyX492RQzqQXRL84PByL9pLt8C5p4c50-page6.pdf results/data/saves/timelines_movement/save-VyX492RQzqQXRL84PByL9pLt8C5p4c50-page7.pdf results/data/saves/timelines_movement/save-VyX492RQzqQXRL84PByL9pLt8C5p4c50-page8.pdf results/data/saves/timelines_movement/save-VyX492RQzqQXRL84PByL9pLt8C5p4c50-page9.pdf results/data/saves/timelines_movement/save-XZS8UWbIXsUoecq08idrtLOJUbi1MlcK-page1.pdf results/data/saves/timelines_movement/save-XZS8UWbIXsUoecq08idrtLOJUbi1MlcK-page2.pdf results/data/saves/timelines_movement/save-XZS8UWbIXsUoecq08idrtLOJUbi1MlcK-page3.pdf results/data/saves/timelines_movement/save-XZS8UWbIXsUoecq08idrtLOJUbi1MlcK-page4.pdf results/data/saves/timelines_movement/save-XZS8UWbIXsUoecq08idrtLOJUbi1MlcK-page5.pdf results/data/saves/timelines_movement/save-XZS8UWbIXsUoecq08idrtLOJUbi1MlcK-page6.pdf results/data/saves/timelines_movement/save-XZS8UWbIXsUoecq08idrtLOJUbi1MlcK-page7.pdf results/data/saves/timelines_movement/save-XZS8UWbIXsUoecq08idrtLOJUbi1MlcK-page8.pdf results/data/saves/timelines_movement/save-XZS8UWbIXsUoecq08idrtLOJUbi1MlcK-page9.pdf results/data/saves/timelines_movement/save-YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU-page1.pdf results/data/saves/timelines_movement/save-YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU-page2.pdf results/data/saves/timelines_movement/save-YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU-page3.pdf results/data/saves/timelines_movement/save-YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU-page4.pdf results/data/saves/timelines_movement/save-YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU-page5.pdf results/data/saves/timelines_movement/save-YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU-page6.pdf results/data/saves/timelines_movement/save-YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU-page7.pdf results/data/saves/timelines_movement/save-YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU-page8.pdf results/data/saves/timelines_movement/save-YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU-page9.pdf results/data/saves/timelines_movement/save-bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp-page1.pdf results/data/saves/timelines_movement/save-bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp-page2.pdf results/data/saves/timelines_movement/save-bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp-page3.pdf results/data/saves/timelines_movement/save-bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp-page4.pdf results/data/saves/timelines_movement/save-bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp-page5.pdf results/data/saves/timelines_movement/save-bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp-page6.pdf results/data/saves/timelines_movement/save-bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp-page7.pdf results/data/saves/timelines_movement/save-bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp-page8.pdf results/data/saves/timelines_movement/save-bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp-page9.pdf results/data/saves/timelines_movement/save-bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD-page1.pdf results/data/saves/timelines_movement/save-bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD-page2.pdf results/data/saves/timelines_movement/save-bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD-page3.pdf results/data/saves/timelines_movement/save-bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD-page4.pdf results/data/saves/timelines_movement/save-bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD-page5.pdf results/data/saves/timelines_movement/save-bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD-page6.pdf results/data/saves/timelines_movement/save-bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD-page7.pdf results/data/saves/timelines_movement/save-bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD-page8.pdf results/data/saves/timelines_movement/save-bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD-page9.pdf results/data/saves/timelines_movement/save-bkHwhN78d7k2kIanOievgityZQD7gVOr-page1.pdf results/data/saves/timelines_movement/save-bkHwhN78d7k2kIanOievgityZQD7gVOr-page2.pdf results/data/saves/timelines_movement/save-bkHwhN78d7k2kIanOievgityZQD7gVOr-page3.pdf results/data/saves/timelines_movement/save-bkHwhN78d7k2kIanOievgityZQD7gVOr-page4.pdf results/data/saves/timelines_movement/save-bkHwhN78d7k2kIanOievgityZQD7gVOr-page5.pdf results/data/saves/timelines_movement/save-bkHwhN78d7k2kIanOievgityZQD7gVOr-page6.pdf results/data/saves/timelines_movement/save-bkHwhN78d7k2kIanOievgityZQD7gVOr-page7.pdf results/data/saves/timelines_movement/save-bkHwhN78d7k2kIanOievgityZQD7gVOr-page8.pdf results/data/saves/timelines_movement/save-bkHwhN78d7k2kIanOievgityZQD7gVOr-page9.pdf results/data/saves/timelines_movement/save-fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz-page1.pdf results/data/saves/timelines_movement/save-fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz-page2.pdf results/data/saves/timelines_movement/save-fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz-page3.pdf results/data/saves/timelines_movement/save-fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz-page4.pdf results/data/saves/timelines_movement/save-fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz-page5.pdf results/data/saves/timelines_movement/save-fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz-page6.pdf results/data/saves/timelines_movement/save-fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz-page7.pdf results/data/saves/timelines_movement/save-fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz-page8.pdf results/data/saves/timelines_movement/save-fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz-page9.pdf results/data/saves/timelines_movement/save-iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t-page1.pdf results/data/saves/timelines_movement/save-iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t-page2.pdf results/data/saves/timelines_movement/save-iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t-page3.pdf results/data/saves/timelines_movement/save-iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t-page4.pdf results/data/saves/timelines_movement/save-iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t-page5.pdf results/data/saves/timelines_movement/save-iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t-page6.pdf results/data/saves/timelines_movement/save-iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t-page7.pdf results/data/saves/timelines_movement/save-iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t-page8.pdf results/data/saves/timelines_movement/save-iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t-page9.pdf results/data/saves/timelines_movement/save-lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT-page1.pdf results/data/saves/timelines_movement/save-lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT-page2.pdf results/data/saves/timelines_movement/save-lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT-page3.pdf results/data/saves/timelines_movement/save-lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT-page4.pdf results/data/saves/timelines_movement/save-lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT-page5.pdf results/data/saves/timelines_movement/save-lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT-page6.pdf results/data/saves/timelines_movement/save-lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT-page7.pdf results/data/saves/timelines_movement/save-lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT-page8.pdf results/data/saves/timelines_movement/save-lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT-page9.pdf results/data/saves/timelines_movement/save-liuL3y4zPQh8HbF7L3d4VKTRYy0BuFHP-page2.pdf results/data/saves/timelines_movement/save-liuL3y4zPQh8HbF7L3d4VKTRYy0BuFHP-page4.pdf results/data/saves/timelines_movement/save-liuL3y4zPQh8HbF7L3d4VKTRYy0BuFHP-page6.pdf results/data/saves/timelines_movement/save-t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa-page1.pdf results/data/saves/timelines_movement/save-t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa-page2.pdf results/data/saves/timelines_movement/save-t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa-page3.pdf results/data/saves/timelines_movement/save-t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa-page4.pdf results/data/saves/timelines_movement/save-t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa-page5.pdf results/data/saves/timelines_movement/save-t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa-page6.pdf results/data/saves/timelines_movement/save-t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa-page7.pdf results/data/saves/timelines_movement/save-t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa-page8.pdf results/data/saves/timelines_movement/save-t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa-page9.pdf results/data/saves/timelines_movement/save-ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1-page1.pdf results/data/saves/timelines_movement/save-ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1-page2.pdf results/data/saves/timelines_movement/save-ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1-page3.pdf results/data/saves/timelines_movement/save-ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1-page4.pdf results/data/saves/timelines_movement/save-ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1-page5.pdf results/data/saves/timelines_movement/save-ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1-page6.pdf results/data/saves/timelines_movement/save-ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1-page7.pdf results/data/saves/timelines_movement/save-ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1-page8.pdf results/data/saves/timelines_movement/save-ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1-page9.pdf results/data/saves/timelines_movement/save-uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o-page1.pdf results/data/saves/timelines_movement/save-uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o-page2.pdf results/data/saves/timelines_movement/save-uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o-page3.pdf results/data/saves/timelines_movement/save-uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o-page4.pdf results/data/saves/timelines_movement/save-uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o-page5.pdf results/data/saves/timelines_movement/save-uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o-page6.pdf results/data/saves/timelines_movement/save-uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o-page7.pdf results/data/saves/timelines_movement/save-uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o-page8.pdf results/data/saves/timelines_movement/save-uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o-page9.pdf
diffstat 368 files changed, 13241 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/demo/._script.txt	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,1 @@
+._script.txt
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/demo/README.md	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,45 @@
+# How to Use
+
+The project is divided in two parts **Semantic Analysis** and **Radioplay Rendering** split into three files:
+
+1. `semantic_analysis.sh` - does the semantic analysis part. First it prompts for a story to be input using the system's default text editor. Then it runs the `brat` annotation software to fix mistakes in annotation. After this is done it constructs a radio-play script at `story_processed_script.txt` to be rendered using:
+2. `radioplay_render.sh` - Uses `story_processed_script.txt` (fix it first if something is wrong) together with `transcript.xls` and `sfx.xls` to create a rendered radioplay at `output.wav`.
+
+
+Below we will see the usage for each:
+
+## Preparing
+
+Before running `semantic_analysis.sh` the following steps must be taken:
+
+1. Install `sox` and `festival` (tested with version 2.5) for your operating system, together with the extra voices from `http://festvox.org/packed/festival/2.5/voices/`. If festival 2.5 is not available for your system, I have a bash script `build_festival.sh` which downloads and builds festival and the necessary voices locally.
+2. Install `google-chrome`. Only versions < 64 are supported.
+3. Create a virtualenv and activate it. Make sure it has python 3: `virtualenv -p python3 your_venv_directory`
+4. Run `build_requirements.sh`
+5. When prompted for a brat username and password, use username: `au1`/password: `au1`. You can leave the e-mail prompt empty (just press enter). It may ask you to enter your system password: you can just skip this part.
+
+## Running semantic analysis
+
+You are now ready to run semantic analysis. First switch to the directory `semantic_analysis.sh` resides (probably `demo/workspace`) and run `bash semantic_analysis.sh` (careful to use `bash`, simple `sh` won't do). Then:
+
+1. You will be greeted with the system's default editor. Edit your story (but make sure to not change the filename it gets saved as). When finished return to the console and press Enter.
+2. If you have a default web browser and `brat` is set up correctly then you will be greeted with the annotated story. If not, run `brat` manually and go to `http://0.0.0.0:8001/index.xhtml#/workspace/story_processed`. You will be greeted with something like:
+
+![brat screensot 1](img1.png)
+
+**First make sure to login using your username and password you defined above**. This is done by hovering on the top right window and clicking on **login**. The annotations there need minor corrections. We see that the system detected two characters (`The Bull` and `The Lion`), a Place (`a meadow`), positioned the Bull to the meadow correctly, as well as a character line (`<cline1>`) and a word that triggers a dialogue (`said`). However, it has not connected the last `The Lion` with the character_line `<cline1>`. In order to fix this, click and hold a line from the annotated `said` to the character `The Lion` and select `WHO` at the popup window. Do the same between `said` and `<cline1>` (by selecting `WHAT`). If everything went well you should have something like below:
+
+![brat screensot 2](img2.png)
+
+Now you can return to the console window and press enter. After a while it will generate a file `story_processed_script.txt` with the radioplay script.
+
+## Rendering the radioplay
+
+After you have generated `story_processed_script.txt` you can render it by running `radioplay_render.sh`.  This script
+requires an excel file editor (e.g. LibreOffice calc) available and does two things:
+
+1. Opens two files: `transcript.xls` has the character and narrator lines and the .wav files they are read from. You can 
+introduce your own recordings as one of the .wav files. If you don't do that, the character lines are going to be
+automatically generated. `sfx.xls` lists the environments detected in the story and assigns a URL to them. The URL must be
+an FXive preset. After you have edited saved both those files you can return to the console window and press enter.
+2. Renders the file as ../renders/story_processed_script.wav. You can open this with a media player file.
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/demo/annotation2model.py	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,216 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+"""
+Created on Mon Apr 30 14:28:49 2018
+
+@author: Emmanouil Theofanis Chourdakis
+
+Takes a .txt story and an .ann annotation and trains a model.
+
+@output:
+    ner .pkl model -- NER recognition model
+    rel .pkl model -- RELation extraction model
+
+"""
+
+import os
+
+import argparse
+import logging
+import spacy
+import ner
+import pypeg2 as pg
+import sklearn_crfsuite as crf
+import pickle
+
+logging.basicConfig(level=logging.INFO)
+
+# https://stackoverflow.com/questions/952914/making-a-flat-list-out-of-list-of-lists-in-python
+flatten = lambda l: [item for sublist in l for item in sublist]
+
+# Relation Model 
+
+from rel import *
+
+def quotes2dict(text):
+    new_text = text
+    is_open = False
+    
+    quote_no = 0
+    quote = []
+    narrator = []
+    quote_dict = {}
+    
+    for n, c in enumerate(text):
+        if c == '"' and not is_open:
+            is_open = True
+            quote_dict["<nline{}>.".format(quote_no)] = ''.join(narrator)
+            narrator = []
+            quote_no += 1
+            continue
+        
+        elif c == '"' and is_open:
+            is_open = False
+            quote_dict["<cline{}>.".format(quote_no)] = ''.join(quote)
+            new_text = new_text.replace('"'+''.join(quote)+'"', "<cline{}>.".format(quote_no))
+            quote = []
+            quote_no += 1
+            continue
+        
+        if is_open:
+            quote.append(c)
+        elif not is_open:
+            narrator.append(c)
+            
+    return new_text, quote_dict
+
+def annotation2doc(text, annotation):
+    
+    # Load language engine
+    logging.info('Loading language engine')
+    nlp = spacy.load('en')
+    
+    # Convert to spacy document type
+    logging.info('Parsing to spacy document')
+    doc = nlp(text)
+    
+    # Convert to ner.Document
+    logging.info('Converting to custom Document format')
+    mDoc = ner.Document(doc)
+    
+    # Parsing annotation
+    logging.info('Parsing annotation')
+    parsed = pg.parse(annotation, ner.AnnotationFile)
+    
+    # Store an entity and relations dictionary since relations
+    # point to such entities
+    
+    dictionary = {}
+    
+    # Visit all the parsed lines. Do it in two passes, first parse 
+    # entities and then relations. The reason for that is that some times
+    # a relation refers to an entity that has not been defined.
+    
+    for line in parsed:
+        # Every annotation line has a single object
+        obj = line[0]
+        
+        if isinstance(obj, ner.AnnotationTuple):
+
+            # If it is a tuple, find the start and end 
+            # borders, and assign them the appropriate label
+            
+            start_s, end_s = obj.idx.split()
+            start = int(start_s)
+            end   = int(end_s)
+            label = str(obj.type)
+            
+            # Store to dictionary the string relating 
+            # to the annotation 
+            
+            dictionary[obj.variable] = mDoc.find_tokens(start, end)            
+            
+            mDoc.assign_label_to_tokens(start, end, label)
+            
+    for line in parsed:
+        # Every annotation line has a single object
+        obj = line[0]            
+            
+        if isinstance(obj, ner.RelationTuple):
+            
+            # Relations have a trigger, a first argument `arg1' and a 
+            # second argument `arg2'. There are going to be 
+            # |arg1| * |arg2| relations constructed for each trigger
+            # where |arg1| is the number of candidates for argument 1
+            # and |arg2| the number of candidates for argument 2
+            
+            arg1_candidates = []
+            arg2_candidates = []
+            
+            # Check relation's arguments:            
+            for arg in obj.args:
+                if arg.label == 'Says':
+                    trigger = dictionary[arg.target]
+                    label = 'Quote'
+                elif arg.label == 'Spatial_Signal':
+                    trigger = dictionary[arg.target]
+                    label = 'Spatial_Relation'
+                if arg.label in ['Trajector', 'WHO']:
+                    arg1_candidates.append(dictionary[arg.target])
+                if arg.label in ['Landmark', 'WHAT']:
+                    arg2_candidates.append(dictionary[arg.target])
+                    
+            for arg1 in arg1_candidates:
+                for arg2 in arg2_candidates:
+                    mDoc.add_relation(trigger, arg1, arg2, label)
+                    
+    # Create NER model
+    logging.info('Creating NER CRF model')
+    
+    ner_model = crf.CRF(c1=0.1, 
+                        c2=0.1, 
+                        max_iterations=100,
+                        all_possible_transitions=True)
+    
+    logging.info('Extracting features/labels from document')
+    features, labels = mDoc.get_token_features_labels()
+    
+    logging.info('Fitting NER model')
+    ner_model.fit(features, labels)
+    
+    # Create Relational model
+    logging.info('Creating REL SVM model')
+    rel_model = RelModel()
+    
+    logging.info('Extracting relations features/labels from document')
+    rel_features, rel_labels = mDoc.get_candidate_relation_feature_labels()
+    
+    logging.info('Fitting REL model')
+    rel_model.fit(rel_features, rel_labels)
+
+    return mDoc, ner_model, rel_model
+    
+
+if __name__ == "__main__":
+    argparser = argparse.ArgumentParser()
+    argparser.add_argument('input_text_path', 
+                           help='.txt file of input')
+    argparser.add_argument('input_annotation_path', 
+                           help='.ann file of annotation')
+    argparser.add_argument('--output-dir', 
+                           help='directory to save model files (default `.`')
+    
+    args = argparser.parse_args()
+    
+    # Load text and annotation contents
+    with open(args.input_text_path) as f:
+        text = f.read()
+        
+    with open(args.input_annotation_path) as f:
+        annotation = f.read()
+        
+        
+    mDoc, ner_model, rel_model = annotation2doc(text, annotation)   
+    
+    if args.output_dir:
+        output_dir = args.output_dir
+    else:
+        output_dir = os.path.curdir
+        
+    ner_model_path = os.path.join(output_dir, 'ner_model.pkl')        
+    rel_model_path = os.path.join(output_dir, 'rel_model.pkl')        
+        
+    logging.info('Saving NER model to {}'.format(ner_model_path))
+    with open(ner_model_path, 'wb') as f:
+        pickle.dump(ner_model, f, pickle.HIGHEST_PROTOCOL)
+    
+    logging.info('Saving REL model to {}'.format(rel_model_path))
+    with open(rel_model_path, 'wb') as f:
+        pickle.dump(rel_model, f, pickle.HIGHEST_PROTOCOL)
+    
+    
+
+        
+    
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/demo/annotation2script.py	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,226 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+"""
+Created on Tue May  1 17:00:26 2018
+
+@author: Emmanouil Theofanis Chourdakis
+
+Takes an .ann annotation and a .json character line
+file and creates a _script.txt script file.
+
+"""
+
+import argparse
+import logging
+import ner
+from rel import *
+import pypeg2 as pg
+import pandas as pd
+import json
+import os
+
+logging.basicConfig(level=logging.INFO)
+
+
+def annotation2script(annot, quotesdict):
+    logging.info('Parsing annotation')
+    parsed = pg.parse(annot, ner.AnnotationFile)
+
+    characters = {}
+    places = {}
+    character_lines = {}
+    scenes = []
+
+    # Store an entity and relations dictionary since relations
+    # point to such entities
+
+    dictionary = {}
+
+    # Visit all the parsed lines. Do it in two passes, first parse
+    # entities and then relations. The reason for that is that some times
+    # a relation refers to an entity that has not been defined.
+
+    for line in parsed:
+        # Every annotation line has a single object
+        obj = line[0]
+
+        if isinstance(obj, ner.AnnotationTuple):
+
+            annotation = obj.annotation.lower()
+
+            # Store to dictionary the string relating
+            # to the annotation
+
+
+            if annotation.split()[0].lower() in ['a', 'the']:
+                annotation = annotation.split()[1]
+
+            dictionary[obj.variable] = annotation
+
+            if obj.type == 'Character':
+                characters[annotation] = {}
+            elif obj.type == 'Character_Line':
+                character_lines[annotation] = {}
+            elif obj.type == 'Place':
+                places[annotation] = {}
+
+    for line in parsed:
+        obj = line[0]
+        if isinstance(obj, ner.AttributeTuple):
+            # If it is an instance of an attribute tuple,
+            # find out whether it is a gender assignment, then find
+            # the character it refers to and add the gender as attribute
+
+            target = dictionary[obj.target]
+            value = obj.annotation
+
+            if obj.type == 'Gender':
+                characters[target]['gender'] = value
+            elif obj.type == 'Age':
+                characters[target]['age'] = value
+
+
+    for line in parsed:
+        # Every annotation line has a single object
+        obj = line[0]
+
+        if isinstance(obj, ner.RelationTuple):
+
+            # Relations have a trigger, a first argument `arg1' and a
+            # second argument `arg2'. There are going to be
+            # |arg1| * |arg2| relations constructed for each trigger
+            # where |arg1| is the number of candidates for argument 1
+            # and |arg2| the number of candidates for argument 2
+
+            arg1_candidates = []
+            arg2_candidates = []
+
+            # Check relation's arguments:
+            for arg in obj.args:
+                if arg.label == 'Says':
+                    trigger = dictionary[arg.target]
+                    label = 'Quote'
+                elif arg.label == 'Spatial_Signal':
+                    trigger = dictionary[arg.target]
+                    label = 'Spatial_Relation'
+                if arg.label in ['Trajector', 'WHO']:
+                    arg1_candidates.append(dictionary[arg.target])
+                if arg.label in ['Landmark', 'WHAT']:
+                    arg2_candidates.append(dictionary[arg.target])
+
+            for arg1 in arg1_candidates:
+                for arg2 in arg2_candidates:
+                    relation = (trigger, arg1, arg2, label)
+                    if label == 'Quote':
+                        character_lines[arg2]['who'] = arg1
+                    if label == 'Spatial_Relation':
+                        scenes.append(arg2)
+
+    # Generate cast list
+    cast_list_section = r"""Cast List:
+Narrator - male or female - panned center
+"""
+
+    # Ping - pong the characters
+    panned = 'right'
+    for c in characters:
+        if 'gender' not in characters[c]:
+            gender = 'male or female'
+        else:
+            gender = characters[c]['gender'].lower()
+
+        cast_list_section += '{} - {} - panned {}\n'.format(c.capitalize(), gender, panned)
+        if panned == 'right':
+            panned = 'left'
+        else:
+            panned = 'right'
+
+
+    scenes_definition = r"""Scenes:
+"""
+
+    for n, scene in enumerate(scenes):
+        scenes_definition += "{} - {} - fxive:{} - none".format(n+1, scene, scene)
+
+    # Scene introduction
+    ## TODO: Do it so that scenes follow the text
+
+    # Keep the correct order in lines
+    lines_order = [qq for qq in quotesdict]
+
+    # The lines are of the format <*line0> <*line1> etc,
+    # sort them based on the number just before the closing >
+    lines_order = sorted(lines_order, key=lambda x: int(x[-3]))
+    lines_section = r"""Script:
+--- Scene 1 ---
+"""
+
+    for l in lines_order:
+        if l[1] == 'n':
+            lines_section += "[Narrator] {}\n".format(quotesdict[l])
+        elif l[1] == 'c':
+            lines_section += "[{}] {}\n".format(character_lines[l[:-1]]['who'].capitalize(), quotesdict[l])
+
+    script = cast_list_section + '\n' + scenes_definition + '\n' + lines_section
+
+    
+    
+    # Create transcript 
+    
+    lines = []
+
+    for cline in quotesdict:
+        ldict = {}
+        
+        cline = cline[:-1] # Remove the trailing dot
+        
+        if cline[1] == 'c':
+            ldict['cast'] = character_lines[cline]['who'].capitalize()
+        else:
+            ldict['cast'] = 'Narrator'
+
+        lineno = cline.replace('<', '').replace('>', '')
+        ldict['filename'] = '{}.wav'.format(lineno)
+        ldict['line'] = quotesdict['{}.'.format(cline)]
+        lines.append(ldict)
+        
+    # Create sfx dataframe
+    
+    sfx = []
+    for scene in scenes:
+        sfx_dict = {'sfx': scene, 'url':'http://edit_me'}
+        sfx.append(sfx_dict)
+        
+    sfx_df = pd.DataFrame.from_records(sfx)
+        
+    transcript_df = pd.DataFrame.from_records(lines)
+    return script, transcript_df, sfx_df
+
+
+if __name__ == "__main__":
+    argparser = argparse.ArgumentParser()
+    argparser.add_argument('input_annotation_path',
+                           help='.ann file with annotation')
+
+    argparser.add_argument('input_json_path',
+                           help='.json file containing the character quotes')
+
+    args = argparser.parse_args()
+
+    # Load annotation and quotes dictionary
+    with open(args.input_annotation_path) as f:
+        annot = f.read()
+
+    with open(args.input_json_path) as f:
+        quotesdict = json.load(f)
+
+    script, transcript_df, sfx_df = annotation2script(annot, quotesdict)
+
+    output_path = args.input_annotation_path[:-4] + '_script.txt'
+
+    with open(output_path, 'w') as f:
+        f.write(script)
+        
+    transcript_df.to_excel(os.path.join(os.path.dirname(args.input_annotation_path),'transcript.xls'))
+    sfx_df.to_excel(os.path.join(os.path.dirname(args.input_annotation_path), 'sfx.xls'))
+    
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/demo/build_festival.sh	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,108 @@
+function build_tools {
+
+        rm exports.txt # Create a new exports file for this run
+        touch exports.txt
+
+
+
+
+	echo "Installing festival speech synthesizer"
+
+	# Check whether speech_tools github directory exists
+
+	if [ ! -d tools/speech_tools ]; then
+
+	    echo "Cloning speech_tools git repository"
+
+	    git clone https://github.com/festvox/speech_tools tools/speech_tools
+
+	fi
+
+	## TODO: Check whether all speech_tool files exist.
+
+	if [ ! -f "tools/speech_tools/bin/align" ]; then
+
+	    echo "Building speech_tools"
+
+	    cd tools/speech_tools; ./configure; make; cd -;
+
+	fi
+
+	# Check whether festival github directory exists
+
+	if [ ! -d tools/festival ]; then
+
+	    echo "2. Cloning festival git repository"
+
+	    git clone https://github.com/festvox/festival tools/festival
+
+      #lexes="festlex_CMU festlex_OALD festlex_POSLEX"
+      lexes="festlex_POSLEX"
+      for lex in $lexes;
+      do
+        wget http://festvox.org/packed/festival/2.5/$lex.tar.gz; tar xzvf $lex.tar.gz -C tools/
+      done
+
+	fi
+
+	if [ ! -f "tools/festival/bin/festival" ]; then
+
+	    echo "2. Building festival speech synthesizer"
+
+	    cd tools/festival; ./configure; make; cd -;
+
+	fi
+
+	if [ -f "tools/festival/bin/festival" ]; then
+
+	    echo "2. Adding festival to path. "
+	    echo ""
+	    echo "To permamently add festival to your path, add:"
+	    echo ""
+	    echo 'export PATH=$(pwd)/tools/festival/bin:$PATH'
+	    echo ""
+	    echo "to your .bashrc or .bash_profile."
+
+	    export PATH=$(pwd)/tools/festival/bin:$PATH
+      echo 'export PATH=$(pwd)/tools/festival/bin:$PATH' >> exports.txt
+	fi
+
+
+	echo "2. Downloading and installing festival voices"
+
+	VOICES="festvox_cmu_indic_ben_rm_cg festvox_cmu_indic_guj_ad_cg festvox_cmu_indic_guj_dp_cg festvox_cmu_indic_guj_kt_cg festvox_cmu_indic_hin_ab_cg festvox_cmu_indic_kan_plv_cg festvox_cmu_indic_mar_aup_cg festvox_cmu_indic_mar_slp_cg festvox_cmu_indic_pan_amp_cg festvox_cmu_indic_tam_sdr_cg festvox_cmu_indic_tel_kpn_cg festvox_cmu_indic_tel_sk_cg festvox_cmu_indic_tel_ss_cg festvox_cmu_us_aew_cg festvox_cmu_us_ahw_cg festvox_cmu_us_aup_cg festvox_cmu_us_awb_cg festvox_cmu_us_axb_cg festvox_cmu_us_bdl_cg festvox_cmu_us_clb_cg festvox_cmu_us_eey_cg festvox_cmu_us_fem_cg festvox_cmu_us_gka_cg festvox_cmu_us_jmk_cg festvox_cmu_us_ksp_cg festvox_cmu_us_ljm_cg festvox_cmu_us_lnh_cg festvox_cmu_us_rms_cg festvox_cmu_us_rxr_cg festvox_cmu_us_slp_cg festvox_cmu_us_slt_cg festvox_kallpc16k festvox_rablpc16k"
+
+	for VOICE in $VOICES; do
+	    if [ ! -f "tools/$VOICE.tar.gz" ]; then
+
+	       wget "http://festvox.org/packed/festival/2.5/voices/$VOICE.tar.gz" -O tools/$VOICE.tar.gz
+
+	    fi
+
+	    echo "Uncompressing $VOICE.tar.gz"...
+	    cd tools; tar xzf $VOICE.tar.gz; cd -
+
+        done
+}
+
+while true; do
+    read -p "Do you wish to continue installing festival locally? " yn
+    case $yn in
+        [Yy]* ) build_tools; break;;
+        [Nn]* ) exit;;
+        * ) echo "Please answer Yes or No.";;
+    esac
+done
+
+
+echo "This installation process produced the following exports.txt:"
+cat exports.txt
+
+while true; do
+    read -p "Do you want to add these exports to your ~/.bashrc? " yn
+    case $yn in
+	[Yy]* ) cat exports.txt >> $HOME/.bashrc; echo "Execute: source ~/.bashrc for this session"; break;;
+	[Nn]* ) exit;;
+	*) echo "Please asnwer Yes or No.";;
+    esac
+done
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/demo/build_requirements.sh	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,16 @@
+git clone https://github.com/huggingface/neuralcoref.git
+cd neuralcoref
+pip install .
+pip install numpy scipy matplotlib pypeg2 spacy sklearn sklearn_crfsuite librosa pandas sox nltk xlwt xlrd selenium soundfile chromedriver
+python -m spacy download en
+
+echo "We will now download and setup the brat annotation software (http://brat.nlplab.org/index.html) from the site's original github (https://github.com/nlplab/brat), please consider visiting the official home page and contributing to the project:"
+
+cd ../..
+git clone https://github.com/nlplab/brat
+cd brat
+sh install.sh
+rm -rf data
+mkdir data
+mkdir data/workspace
+cd ../demo
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/demo/characters.txt	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,20 @@
+jupiter:male
+pallas:female
+mercury:male
+minerva:female
+neptune:male
+hercules:male
+juno:female
+venus:female
+artemis:female
+apollo:female
+mother:female
+father:male
+son:young,male
+old man:male,old
+man: male,
+woman: female,
+old woman:female,old
+boy:male,young
+girl:female,young
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/demo/data/.stats_cache	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,2 @@
+(lp1
+.
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/demo/data/demo/.stats_cache	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,26 @@
+(lp1
+(lp2
+I342
+aI0
+aI0
+aa(lp3
+I7
+aI0
+aI3
+aa(lp4
+I267
+aI0
+aI250
+aa(lp5
+I0
+aI0
+aI0
+aa(lp6
+I0
+aI0
+aI0
+aa(lp7
+I273
+aI0
+aI209
+aa.
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/demo/data/demo/annotation.conf	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,67 @@
+# Simple text-based definitions of hierarchial ontologies of 
+# (physical) entity types, relation types, event types, and
+# attributes.
+
+# This is a minimal example configuration, based (loosely) on some
+# ACE'05 entity, relation and event definitions
+# (http://projects.ldc.upenn.edu/ace/annotation/2005Tasks.html).
+# Please edit this according to the needs of your annotation.
+
+[entities]
+
+# Definition of entities.
+
+# Format is a simple list with one type per line.
+Character
+Object
+Place
+Character_Line
+Path
+Motion
+Motion_Signal
+
+[relations]
+
+# Definition of (binary) relations.
+
+# Format in brief: one relation per line, with first space-separated
+# field giving the relation type and the rest of the line the
+# comma-separated arguments in ROLE:TYPE format. The roles are
+# typically "Arg1" and "Arg2".
+RefersToCharacter  Arg1:Character, Arg2:Character, <REL-TYPE>:symmetric-transitive
+RefersToPlace Arg1:Place, Arg2:Place, <REL-TYPE>:symmetric-transitive
+RefersToObject Arg1:Object, Arg2:Object, <REL-TYPE>:symmetric-transitive
+[events]
+
+<CausedBy>=Character|Object|Referent|Sound_Effect
+Says WHO:Character,WHAT:Character_Line,HappensIn?:Place
+Sound_Effect  CausedBy?:<CausedBy>,HappensIn?:Place
+Spatial_Signal Trajector?:Character,Landmark?:Place
+
+# Definition of events.
+
+# Format in brief: one event per line, with first space-separated
+# field giving the event type and the rest of the line the
+# comma-separated arguments in ROLE:TYPE format. Arguments may be
+# specified as either optional (by appending "?" to role) or repeated
+# (by appending either "*" for "0 or more" or "+" for "1 or more").
+
+# this is a macro definition, used for brevity
+
+# the "!" before a type specifies that it cannot be used for annotation
+# (hierarchy structure only.)
+
+
+[attributes]
+
+# Definition of entity and event attributes.
+
+# Format in brief: first tab-separated field is attribute name, second
+# a set of key-value pairs. The latter must define "Arg:" which
+# specifies what the attribute can attach to (typically "<EVENT>").
+# If no other keys are defined, the attribute is binary (present or
+# absent). If "Value:" with multiple alternatives is defined, the
+# attribute can have one of the given values.
+Gender Arg:Character, Value:Male|Female
+Age    Arg:Character, Value:Young|Old
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/demo/data/demo/bull.txt	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,2 @@
+A Bull was feeding in a meadow. A Lion wanting to eat the Bull approached him and said:
+"Hello there, my friend!". The Bull replied: "Why do you speak to me O' fiend?".
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/demo/data/demo/bull_processed.ann	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,14 @@
+T1	Character 0 6	A Bull
+T2	Character 32 38	A Lion
+A1	Gender T2 Male
+T3	Character 100 108	The Bull
+T4	Says 83 87	said
+T5	Says 109 116	replied
+T6	Place 22 30	a meadow
+T7	Spatial_Signal 19 21	in
+T8	Spatial_Signal 47 49	to
+T9	Character_Line 89 97	<cline1>
+T10	Character_Line 118 126	<cline3>
+E1	Spatial_Signal:T7 Trajector:T1 Landmark:T6
+E2	Says:T5 WHO:T3 WHAT:T10
+E3	Says:T4 WHAT:T9 WHO:T2
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/demo/data/demo/bull_processed.ann.orig	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,13 @@
+T1	Character 0 6	A Bull
+T2	Character 32 38	A Lion
+A1	Gender T2 Male
+T3	Character 100 108	The Bull
+T4	Says 83 87	said
+T5	Says 109 116	replied
+T6	Place 22 30	a meadow
+T7	Spatial_Signal 19 21	in
+T8	Spatial_Signal 47 49	to
+T9	Character_Line 89 97	<cline1>
+T10	Character_Line 118 126	<cline3>
+E1	Spatial_Signal:T7 Trajector:T1 Landmark:T6
+E2	Says:T5 WHO:T3 WHAT:T10
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/demo/data/demo/bull_processed.txt	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,1 @@
+A Bull was feeding in a meadow. A Lion wanting to eat the Bull approached lion and said: <cline1>.. The Bull replied: <cline3>..
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/demo/data/demo/bull_processed_script.txt	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,13 @@
+Cast List:
+Narrator - male or female - panned center
+Bull - male or female - panned right
+Lion - male - panned left
+
+Scenes:
+1 - meadow - forest.wav - none
+Script:
+--- Scene 1 ---
+[Narrator] A Bull was feeding in a meadow. A Lion wanting to eat the Bull approached him and said: 
+[Lion] Hello there, my friend!
+[Narrator] . The Bull replied: 
+[Bull] Why do you speak to me O' fiend?
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/demo/data/demo/bull_quotes.json	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,1 @@
+{"<nline0>.": "A Bull was feeding in a meadow. A Lion wanting to eat the Bull approached him and said: ", "<cline1>.": "Hello there, my friend!", "<nline2>.": ". The Bull replied: ", "<cline3>.": "Why do you speak to me O' fiend?"}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/demo/data/demo/examples.ann	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,342 @@
+T1	Character 0 6	A BULL
+T2	Character 107 112	A MAN
+T3	Character 295 317	A VERY SKILLFUL BOWMAN
+T4	Character 367 377	the beasts
+T5	Character 416 424	The Lion
+T6	Character 457 469	A young Calf
+T7	Character 559 565	A BULL
+T8	Character 647 653	A BULL
+T9	Character 717 728	The Lioness
+T10	Character 784 786	An
+T11	Character 787 794	old man
+T12	Character 880 894	A singing bird
+T13	Character 1025 1030	a Bat
+T14	Character 1145 1148	MAN
+T15	Character 1346 1355	A CHARGER
+T16	Character 1448 1454	A CROW
+T17	Character 1470 1479	the Raven
+T18	Character 1565 1568	men
+T19	Character 1671 1679	the Crow
+T20	Character 1776 1787	The Serpent
+T21	Character 1839 1857	A TROUBLESOME CROW
+T22	Character 1897 1905	A PRINCE
+T23	Character 2016 2026	a courtier
+T24	Character 2116 2127	The Monkeys
+T25	Character 2404 2416	the audience
+T26	Character 2418 2423	A DOE
+T27	Character 2493 2501	The Lion
+T28	Character 2553 2556	she
+T29	Character 2623 2640	The expiring lion
+T30	Character 2657 2663	A lion
+T31	Character 2754 2762	The oaks
+T32	Character 2788 2795	jupiter
+T33	Character 2815 2822	jupiter
+T34	Character 2846 2853	The oak
+T35	Character 2882 2896	The woodcutter
+T36	Character 3003 3019	A very large oak
+T37	Character 3173 3181	the wolf
+T38	Character 3209 3219	the farmer
+T39	Character 3362 3373	the serpent
+T40	Character 3400 3409	the satyr
+T41	Character 3426 3433	the man
+T42	Character 3456 3460	they
+T43	Character 3499 3508	the satyr
+T44	Character 3561 3568	the man
+T45	Character 3640 3649	the satyr
+T46	Character 3676 3685	the satyr
+T47	Character 3850 3858	The mule
+T48	Character 3926 3938	a countryman
+T49	Character 3983 3988	their
+T50	Character 3989 3995	father
+T51	Character 3997 4004	Jupiter
+T52	Character 4043 4049	A bull
+T53	Character 4075 4088	A townsperson
+T54	Character 4114 4120	A wolf
+T55	Character 4148 4159	The animals
+T56	Character 4230 4237	Two men
+T57	Character 4242 4250	two sons
+T58	Character 4287 4296	A pilgrim
+T59	Character 4322 4330	A farmer
+T60	Character 4391 4404	A bald knight
+T61	Character 4454 4460	A cock
+T62	Character 4758 4769	master cock
+T63	Character 4781 4787	A crow
+T64	Character 4816 4822	apollo
+T65	Character 5009 5015	apollo
+T66	Character 5067 5074	mercury
+T67	Character 5076 5083	Mercury
+T68	Character 5125 5130	A MAN
+T69	Character 5256 5263	the man
+T70	Character 5372 5383	the monkeys
+T71	Character 5500 5512	the audience
+T72	Character 5514 5521	THE OAK
+T73	Character 5551 5558	the oak
+T74	Character 5585 5594	the reeds
+T75	Character 5633 5642	the woman
+T76	Character 5662 5669	the man
+T77	Character 5683 5692	the woman
+T78	Character 5742 5751	the woman
+T79	Character 5771 5778	the man
+T80	Character 5829 5837	the crow
+T81	Character 5903 5911	the crow
+T82	Character 5922 5928	apollo
+T83	Character 5980 5987	mercury
+T84	Says 1075 1080	asked
+T85	Says 2641 2645	said
+T86	Says 2797 2803	saying
+T87	Says 2823 2834	made answer
+T88	Says 2854 2858	said
+T89	Says 3113 3122	addressed
+T90	Says 3139 3146	replied
+T91	Says 3168 3172	said
+T92	Says 3325 3329	said
+T93	Says 3357 3361	said
+T94	Says 3395 3399	said
+T95	Says 3421 3425	said
+T96	Says 3635 3639	said
+T97	Says 3671 3675	said
+T98	Says 3742 3750	inquired
+T99	Says 3812 3819	replied
+T100	Says 3834 3838	said
+T101	Says 3895 3899	said
+T102	Says 3952 3956	said
+T103	Says 3978 3982	said
+T104	Says 4589 4594	quoth
+T105	Says 4752 4757	quoth
+T106	Says 5102 5106	said
+T107	Says 5564 5573	addressed
+T108	Says 5595 5602	replied
+T109	Says 5670 5678	inquired
+T110	Says 5752 5759	replied
+T111	Says 5779 5783	said
+T112	Place 133 146	foreign lands
+T113	Place 182 197	his own country
+T114	Place 258 278	the different places
+T115	Place 326 339	the mountains
+T116	Place 381 391	the forest
+T117	Place 596 602	a cave
+T118	Place 911 917	a cage
+T119	Place 937 945	a window
+T120	Place 1049 1057	the bars
+T121	Place 1061 1069	the cage
+T122	Place 1409 1415	a mill
+T123	Place 1440 1446	battle
+T124	Place 1693 1699	a tree
+T125	Place 1725 1728	one
+T126	Place 1732 1744	the branches
+T127	Place 1876 1884	the back
+T128	Place 1888 1895	a Sheep
+T129	Place 2105 2114	the stage
+T130	Place 2465 2471	a cave
+T131	Place 2573 2581	the cave
+T132	Place 2720 2730	the ground
+T133	Place 2908 2916	mountain
+T134	Place 3063 3071	a stream
+T135	Place 3298 3307	the mouth
+T136	Place 3311 3319	its lair
+T137	Place 3472 3488	the satyr's home
+T138	Place 4023 4030	the top
+T139	Place 4034 4041	Olympus
+T140	Place 4065 4073	a meadow
+T141	Place 4100 4112	the mountain
+T142	Place 4137 4146	a village
+T143	Place 4163 4173	the forest
+T144	Place 4273 4285	a rural road
+T145	Place 4311 4320	Acropolis
+T146	Place 4347 4358	the stables
+T147	Place 4442 4452	the forest
+T148	Place 4492 4504	the farmyard
+T149	Place 5151 5164	foreign lands
+T150	Place 5200 5215	his own country
+T151	Place 5281 5301	the different places
+T152	Place 5533 5543	some reeds
+T153	Spatial_Signal 20 24	with
+T154	Spatial_Signal 39 41	to
+T155	Spatial_Signal 58 65	through
+T156	Spatial_Signal 93 95	to
+T157	Spatial_Signal 130 132	in
+T158	Spatial_Signal 166 168	on
+T159	Spatial_Signal 179 181	to
+T160	Spatial_Signal 199 201	of
+T161	Spatial_Signal 255 257	in
+T162	Spatial_Signal 323 325	to
+T163	Spatial_Signal 340 342	in
+T164	Spatial_Signal 350 352	of
+T165	Spatial_Signal 378 380	of
+T166	Spatial_Signal 397 399	at
+T167	Spatial_Signal 446 448	to
+T168	Spatial_Signal 491 493	to
+T169	Spatial_Signal 497 503	before
+T170	Spatial_Signal 525 527	by
+T171	Spatial_Signal 550 552	to
+T172	Spatial_Signal 576 580	from
+T173	Spatial_Signal 593 595	in
+T174	Spatial_Signal 692 694	to
+T175	Spatial_Signal 701 705	with
+T176	Spatial_Signal 770 772	of
+T177	Spatial_Signal 795 797	on
+T178	Spatial_Signal 808 810	of
+T179	Spatial_Signal 835 841	around
+T180	Spatial_Signal 846 848	to
+T181	Spatial_Signal 908 910	in
+T182	Spatial_Signal 929 936	outside
+T183	Spatial_Signal 961 963	of
+T184	Spatial_Signal 972 974	at
+T185	Spatial_Signal 1046 1048	to
+T186	Spatial_Signal 1058 1060	of
+T187	Spatial_Signal 1109 1111	by
+T188	Spatial_Signal 1130 1132	at
+T189	Spatial_Signal 1191 1193	at
+T190	Spatial_Signal 1279 1281	of
+T191	Spatial_Signal 1329 1331	to
+T192	Spatial_Signal 1381 1383	of
+T193	Spatial_Signal 1398 1400	to
+T194	Spatial_Signal 1406 1408	in
+T195	Spatial_Signal 1424 1426	of
+T196	Spatial_Signal 1433 1436	out
+T197	Spatial_Signal 1437 1439	to
+T198	Spatial_Signal 1467 1469	of
+T199	Spatial_Signal 1514 1516	of
+T200	Spatial_Signal 1562 1564	of
+T201	Spatial_Signal 1580 1582	by
+T202	Spatial_Signal 1618 1620	of
+T203	Spatial_Signal 1688 1692	into
+T204	Spatial_Signal 1722 1724	on
+T205	Spatial_Signal 1729 1731	of
+T206	Spatial_Signal 1752 1754	as
+T207	Spatial_Signal 1762 1764	as
+T208	Spatial_Signal 1797 1802	about
+T209	Spatial_Signal 1817 1821	with
+T210	Spatial_Signal 1873 1875	on
+T211	Spatial_Signal 1885 1887	of
+T212	Spatial_Signal 1931 1933	to
+T213	Spatial_Signal 1974 1978	with
+T214	Spatial_Signal 2000 2002	on
+T215	Spatial_Signal 2033 2035	on
+T216	Spatial_Signal 2051 2055	from
+T217	Spatial_Signal 2077 2079	of
+T218	Spatial_Signal 2100 2104	upon
+T219	Spatial_Signal 2128 2130	at
+T220	Spatial_Signal 2141 2143	of
+T221	Spatial_Signal 2186 2188	as
+T222	Spatial_Signal 2223 2225	of
+T223	Spatial_Signal 2242 2245	off
+T224	Spatial_Signal 2295 2299	with
+T225	Spatial_Signal 2312 2315	for
+T226	Spatial_Signal 2358 2360	to
+T227	Spatial_Signal 2401 2403	of
+T228	Spatial_Signal 2437 2439	by
+T229	Spatial_Signal 2462 2464	in
+T230	Spatial_Signal 2482 2484	to
+T231	Spatial_Signal 2520 2522	on
+T232	Spatial_Signal 2566 2572	within
+T233	Spatial_Signal 2612 2614	to
+T234	Spatial_Signal 2674 2678	with
+T235	Spatial_Signal 2699 2703	from
+T236	Spatial_Signal 2717 2719	on
+T237	Spatial_Signal 2731 2733	at
+T238	Spatial_Signal 2744 2746	of
+T239	Spatial_Signal 2785 2787	to
+T240	Spatial_Signal 2859 2863	with
+T241	Spatial_Signal 2901 2905	down
+T242	Spatial_Signal 2934 2936	in
+T243	Spatial_Signal 2959 2961	of
+T244	Spatial_Signal 2979 2982	for
+T245	Spatial_Signal 3033 3035	by
+T246	Spatial_Signal 3056 3062	across
+T247	Spatial_Signal 3081 3086	among
+T248	Spatial_Signal 3182 3184	as
+T249	Spatial_Signal 3236 3238	to
+T250	Spatial_Signal 3250 3254	with
+T251	Spatial_Signal 3295 3297	to
+T252	Spatial_Signal 3308 3310	of
+T253	Spatial_Signal 3330 3332	to
+T254	Spatial_Signal 3469 3471	at
+T255	Spatial_Signal 3528 3530	of
+T256	Spatial_Signal 3540 3546	before
+T257	Spatial_Signal 3586 3588	to
+T258	Spatial_Signal 3767 3769	on
+T259	Spatial_Signal 3869 3876	beneath
+T260	Spatial_Signal 3900 3902	to
+T261	Spatial_Signal 3949 3951	by
+T262	Spatial_Signal 4018 4022	from
+T263	Spatial_Signal 4031 4033	of
+T264	Spatial_Signal 4062 4064	in
+T265	Spatial_Signal 4097 4099	up
+T266	Spatial_Signal 4160 4162	of
+T267	Spatial_Signal 4198 4200	on
+T268	Spatial_Signal 4267 4272	along
+T269	Spatial_Signal 4302 4310	to visit
+T270	Spatial_Signal 4344 4346	to
+T271	Spatial_Signal 4359 4361	to
+T272	Spatial_Signal 4366 4368	to
+T273	Spatial_Signal 4380 4382	of
+T274	Spatial_Signal 4431 4433	to
+T275	Spatial_Signal 4439 4441	in
+T276	Spatial_Signal 4480 4482	up
+T277	Spatial_Signal 4487 4491	down
+T278	Spatial_Signal 4505 4510	among
+T279	Spatial_Signal 4632 4636	from
+T280	Spatial_Signal 4637 4644	beneath
+T281	Spatial_Signal 4677 4679	to
+T282	Spatial_Signal 4700 4702	by
+T283	Spatial_Signal 4729 4731	in
+T284	Spatial_Signal 4795 4797	in
+T285	Spatial_Signal 4813 4815	to
+T286	Spatial_Signal 4823 4825	to
+T287	Spatial_Signal 4852 4854	to
+T288	Spatial_Signal 4879 4881	at
+T289	Spatial_Signal 4911 4915	from
+T290	Spatial_Signal 4984 4986	in
+T291	Spatial_Signal 5006 5008	by
+T292	Spatial_Signal 5042 5044	to
+T293	Spatial_Signal 5064 5066	to
+T294	Spatial_Signal 5107 5109	to
+T295	Spatial_Signal 5148 5150	in
+T296	Spatial_Signal 5184 5186	on
+T297	Spatial_Signal 5197 5199	to
+T298	Spatial_Signal 5217 5219	of
+T299	Spatial_Signal 5278 5280	in
+T300	Spatial_Signal 5331 5334	off
+T301	Spatial_Signal 5391 5395	with
+T302	Spatial_Signal 5408 5411	for
+T303	Spatial_Signal 5454 5456	to
+T304	Spatial_Signal 5497 5499	of
+T305	Spatial_Signal 5527 5532	among
+T306	Spatial_Signal 5701 5703	on
+T307	Spatial_Signal 5812 5816	from
+T308	Spatial_Signal 5891 5893	in
+T309	Spatial_Signal 5919 5921	by
+T310	Spatial_Signal 5955 5957	to
+T311	Spatial_Signal 5977 5979	to
+T312	Character_Line 2647 2656	<cline1>.
+T313	Character_Line 2805 2814	<cline1>.
+T314	Character_Line 2836 2845	<cline2>.
+T315	Character_Line 2872 2881	<cline1>.
+T316	Character_Line 3124 3133	<cline1>.
+T317	Character_Line 3148 3157	<cline2>.
+T318	Character_Line 3158 3167	<cline5>.
+T319	Character_Line 3337 3346	<cline1>.
+T320	Character_Line 3347 3356	<cline2>.
+T321	Character_Line 3375 3384	<cline3>.
+T322	Character_Line 3385 3394	<cline1>.
+T323	Character_Line 3411 3420	<cline2>.
+T324	Character_Line 3435 3444	<cline3>.
+T325	Character_Line 3625 3634	<cline4>.
+T326	Character_Line 3651 3660	<cline5>.
+T327	Character_Line 3661 3670	<cline6>.
+T328	Character_Line 3687 3696	<cline7>.
+T329	Character_Line 3821 3830	<cline1>.
+T330	Character_Line 3840 3849	<cline2>.
+T331	Character_Line 3912 3921	<cline1>.
+T332	Character_Line 3958 3967	<cline1>.
+T333	Character_Line 3968 3977	<cline5>.
+T334	Character_Line 4579 4588	<cline1>.
+T335	Character_Line 4599 4608	<cline2>.
+T336	Character_Line 4742 4751	<cline3>.
+T337	Character_Line 4771 4780	<cline4>.
+T338	Character_Line 5115 5124	<cline1>.
+T339	Character_Line 5575 5584	<cline1>.
+T340	Character_Line 5604 5613	<cline2>.
+T341	Character_Line 5761 5770	<cline1>.
+T342	Character_Line 5785 5794	<cline2>.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/demo/data/demo/examples.txt	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,67 @@
+A BULL was striving with all his might to squeeze himself through a narrow passage which led to his stall.
+A MAN who had traveled in foreign lands boasted very much, on returning to his own country, of the many wonderful and heroic feats he had performed in the different places he had visited.
+A VERY SKILLFUL BOWMAN went to the mountains in search of game, but all the beasts of the forest fled at his approach.  
+The Lion alone challenged him to combat.
+A young Calf came up, and offered to go before and show him the way by which he could manage to pass.
+A BULL, escaping from a Lion, hid in a cave which some shepherds had recently occupied.
+A BULL finding a lion's cub asleep gored him to death with his horns.
+The Lioness came up, and bitterly lamented the death of her whelp.
+An old man on the point of death summoned his sons around him to give them some parting advice.
+A singing bird was confined in a cage which hung outside a window, and had a way of singing at night when all other birds were asleep.
+One night a Bat came and clung to the bars of the cage, and asked the Bird why she was silent by day and sang only at night.
+WHEN MAN first saw the Camel, he was so frightened at his vast size that he ran away.
+After a time, perceiving the meekness and gentleness of the beast's temper, he summoned courage enough to approach him.
+A CHARGER, feeling the infirmities of age, was sent to work in a mill instead of going out to battle.
+A CROW was jealous of the Raven, because he was considered a bird of good omen and always attracted the attention of men, who noted by his flight the good or evil course of future events.
+Seeing some travelers approaching, the Crow flew up into a tree, and perching herself on one of the branches, cawed as loudly as she could.
+The Serpent, turning about, bit the Crow with a mortal wound. 
+A TROUBLESOME CROW seated herself on the back of a Sheep.
+A PRINCE had some Monkeys trained to dance.
+The spectacle was often repeated with great applause, till on one occasion a courtier, bent on mischief, took from his pocket a handful of nuts and threw them upon the stage.
+The Monkeys at the sight of the nuts forgot their dancing and became (as indeed they were) Monkeys instead of actors.
+Pulling off their masks and tearing their robes, they fought with one another for the nuts. The dancing spectacle thus came to an end amidst the laughter and ridicule of the audience.
+A DOE hard pressed by hunters sought refuge in a cave belonging to a Lion.
+The Lion concealed himself on seeing her approach, but when she was safe within the cave, sprang upon her and tore her to pieces.
+The expiring lion said, <cline1>.
+A lion, worn out with years and powerless from disease, lay on the ground at the point of death.
+The oaks presented a complaint to jupiter, saying, <cline1>. jupiter made answer: <cline2>.
+The oak said with a sigh, <cline1>.
+The woodcutter cut down a mountain oak and split it in pieces, making wedges of its own branches for dividing the trunk.
+A very large oak was uprooted by the wind and thrown across a stream.
+It fell among some reeds, which it thus addressed: <cline1>. they replied, <cline2>.
+<cline5>. said the wolf as he galloped away,
+Well, the farmer thought it best to make it up with the serpent, and brought food and honey to the mouth of its lair, and said to it: <cline1>. <cline2>. said the serpent; <cline3>.
+<cline1>. said the satyr.
+<cline2>. said the man, <cline3>.
+After this they arrived at the satyr's home, and soon the satyr put a smoking dish of porridge before him.
+But when the man raised his spoon to his mouth he began blowing upon it.
+<cline4>. said the satyr.
+<cline5>. <cline6>. said the satyr.
+<cline7>.
+After a short time she returned, and when he inquired how she had got on and how the servants had treated her, she replied, <cline1>. he said, <cline2>.
+The mule, groaning beneath his heavy burden, said to himself: <cline1>.
+But a countryman who stood by said: <cline1>.
+<cline5>. said their father.
+Jupiter was reigning from the top of Olympus.
+A bull was feeding in a meadow.
+A townsperson climped up the mountain.
+A wolf was terrorizing a village.
+The animals of the forest were having an argument on which animal was the wisest.
+Two men and two sons were travelling along a rural road.
+A pilgrim went to visit Acropolis.
+A farmer one day came to the stables to see to his beasts of burden.
+A bald knight, who wore a wig, went out to hunt in the forest.
+A cock was once strutting up and down the farmyard among the hens when suddenly he espied something shinning amid the straw.
+<cline1>. quoth he, <cline2>. and soon rooted it out from beneath the straw.
+What did it turn out to be but a pearl that by some chance had been lost in the yard?
+<cline3>. quoth master cock, <cline4>.
+A crow caught in a snare prayed to apollo to release him, making a vow to offer some frankincense at his shrine.
+But when rescued from his danger, he forgot his promise.
+Shortly afterwards, again caught in a snare, he passed by apollo and made the same promise to offer frankincense to mercury.
+Mercury soon appeared and said to him, <cline1>.
+A MAN who had traveled in foreign lands boasted very much, on returning to his own country, of the many wonderful and heroic feats the man had performed in the different places the man had visited.
+Pulling off their masks and tearing their robes, the monkeys fought with one another for the nuts. The dancing spectacle thus came to an end amidst the laughter and ridicule of the audience.
+THE OAK fell among some reeds, which the oak thus addressed: <cline1>. the reeds replied, <cline2>.
+After a short time the woman returned, and when the man inquired how the woman had got on and how the servants had treated her, the woman replied, <cline1>. the man said, <cline2>.
+But when rescued from his danger, the crow forgot his promise.
+Shortly afterwards, again caught in a snare, the crow passed by apollo and made the same promise to offer frankincense to mercury.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/demo/data/demo/examples.txt.ann	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,342 @@
+T1	Character 0 6	A BULL
+T2	Character 107 112	A MAN
+T3	Character 295 317	A VERY SKILLFUL BOWMAN
+T4	Character 367 377	the beasts
+T5	Character 416 424	The Lion
+T6	Character 457 469	A young Calf
+T7	Character 559 565	A BULL
+T8	Character 647 653	A BULL
+T9	Character 717 728	The Lioness
+T10	Character 784 786	An
+T11	Character 787 794	old man
+T12	Character 880 894	A singing bird
+T13	Character 1025 1030	a Bat
+T14	Character 1145 1148	MAN
+T15	Character 1346 1355	A CHARGER
+T16	Character 1448 1454	A CROW
+T17	Character 1470 1479	the Raven
+T18	Character 1565 1568	men
+T19	Character 1671 1679	the Crow
+T20	Character 1776 1787	The Serpent
+T21	Character 1839 1857	A TROUBLESOME CROW
+T22	Character 1897 1905	A PRINCE
+T23	Character 2016 2026	a courtier
+T24	Character 2116 2127	The Monkeys
+T25	Character 2404 2416	the audience
+T26	Character 2418 2423	A DOE
+T27	Character 2493 2501	The Lion
+T28	Character 2553 2556	she
+T29	Character 2623 2640	The expiring lion
+T30	Character 2657 2663	A lion
+T31	Character 2754 2762	The oaks
+T32	Character 2788 2795	jupiter
+T33	Character 2815 2822	jupiter
+T34	Character 2846 2853	The oak
+T35	Character 2882 2896	The woodcutter
+T36	Character 3003 3019	A very large oak
+T37	Character 3173 3181	the wolf
+T38	Character 3209 3219	the farmer
+T39	Character 3362 3373	the serpent
+T40	Character 3400 3409	the satyr
+T41	Character 3426 3433	the man
+T42	Character 3456 3460	they
+T43	Character 3499 3508	the satyr
+T44	Character 3561 3568	the man
+T45	Character 3640 3649	the satyr
+T46	Character 3676 3685	the satyr
+T47	Character 3850 3858	The mule
+T48	Character 3926 3938	a countryman
+T49	Character 3983 3988	their
+T50	Character 3989 3995	father
+T51	Character 3997 4004	Jupiter
+T52	Character 4043 4049	A bull
+T53	Character 4075 4088	A townsperson
+T54	Character 4114 4120	A wolf
+T55	Character 4148 4159	The animals
+T56	Character 4230 4237	Two men
+T57	Character 4242 4250	two sons
+T58	Character 4287 4296	A pilgrim
+T59	Character 4322 4330	A farmer
+T60	Character 4391 4404	A bald knight
+T61	Character 4454 4460	A cock
+T62	Character 4758 4769	master cock
+T63	Character 4781 4787	A crow
+T64	Character 4816 4822	apollo
+T65	Character 5009 5015	apollo
+T66	Character 5067 5074	mercury
+T67	Character 5076 5083	Mercury
+T68	Character 5125 5130	A MAN
+T69	Character 5256 5263	the man
+T70	Character 5372 5383	the monkeys
+T71	Character 5500 5512	the audience
+T72	Character 5514 5521	THE OAK
+T73	Character 5551 5558	the oak
+T74	Character 5585 5594	the reeds
+T75	Character 5633 5642	the woman
+T76	Character 5662 5669	the man
+T77	Character 5683 5692	the woman
+T78	Character 5742 5751	the woman
+T79	Character 5771 5778	the man
+T80	Character 5829 5837	the crow
+T81	Character 5903 5911	the crow
+T82	Character 5922 5928	apollo
+T83	Character 5980 5987	mercury
+T84	Says 1075 1080	asked
+T85	Says 2641 2645	said
+T86	Says 2797 2803	saying
+T87	Says 2823 2834	made answer
+T88	Says 2854 2858	said
+T89	Says 3113 3122	addressed
+T90	Says 3139 3146	replied
+T91	Says 3168 3172	said
+T92	Says 3325 3329	said
+T93	Says 3357 3361	said
+T94	Says 3395 3399	said
+T95	Says 3421 3425	said
+T96	Says 3635 3639	said
+T97	Says 3671 3675	said
+T98	Says 3742 3750	inquired
+T99	Says 3812 3819	replied
+T100	Says 3834 3838	said
+T101	Says 3895 3899	said
+T102	Says 3952 3956	said
+T103	Says 3978 3982	said
+T104	Says 4589 4594	quoth
+T105	Says 4752 4757	quoth
+T106	Says 5102 5106	said
+T107	Says 5564 5573	addressed
+T108	Says 5595 5602	replied
+T109	Says 5670 5678	inquired
+T110	Says 5752 5759	replied
+T111	Says 5779 5783	said
+T112	Place 133 146	foreign lands
+T113	Place 182 197	his own country
+T114	Place 258 278	the different places
+T115	Place 326 339	the mountains
+T116	Place 381 391	the forest
+T117	Place 596 602	a cave
+T118	Place 911 917	a cage
+T119	Place 937 945	a window
+T120	Place 1049 1057	the bars
+T121	Place 1061 1069	the cage
+T122	Place 1409 1415	a mill
+T123	Place 1440 1446	battle
+T124	Place 1693 1699	a tree
+T125	Place 1725 1728	one
+T126	Place 1732 1744	the branches
+T127	Place 1876 1884	the back
+T128	Place 1888 1895	a Sheep
+T129	Place 2105 2114	the stage
+T130	Place 2465 2471	a cave
+T131	Place 2573 2581	the cave
+T132	Place 2720 2730	the ground
+T133	Place 2908 2916	mountain
+T134	Place 3063 3071	a stream
+T135	Place 3298 3307	the mouth
+T136	Place 3311 3319	its lair
+T137	Place 3472 3488	the satyr's home
+T138	Place 4023 4030	the top
+T139	Place 4034 4041	Olympus
+T140	Place 4065 4073	a meadow
+T141	Place 4100 4112	the mountain
+T142	Place 4137 4146	a village
+T143	Place 4163 4173	the forest
+T144	Place 4273 4285	a rural road
+T145	Place 4311 4320	Acropolis
+T146	Place 4347 4358	the stables
+T147	Place 4442 4452	the forest
+T148	Place 4492 4504	the farmyard
+T149	Place 5151 5164	foreign lands
+T150	Place 5200 5215	his own country
+T151	Place 5281 5301	the different places
+T152	Place 5533 5543	some reeds
+T153	Spatial_Signal 20 24	with
+T154	Spatial_Signal 39 41	to
+T155	Spatial_Signal 58 65	through
+T156	Spatial_Signal 93 95	to
+T157	Spatial_Signal 130 132	in
+T158	Spatial_Signal 166 168	on
+T159	Spatial_Signal 179 181	to
+T160	Spatial_Signal 199 201	of
+T161	Spatial_Signal 255 257	in
+T162	Spatial_Signal 323 325	to
+T163	Spatial_Signal 340 342	in
+T164	Spatial_Signal 350 352	of
+T165	Spatial_Signal 378 380	of
+T166	Spatial_Signal 397 399	at
+T167	Spatial_Signal 446 448	to
+T168	Spatial_Signal 491 493	to
+T169	Spatial_Signal 497 503	before
+T170	Spatial_Signal 525 527	by
+T171	Spatial_Signal 550 552	to
+T172	Spatial_Signal 576 580	from
+T173	Spatial_Signal 593 595	in
+T174	Spatial_Signal 692 694	to
+T175	Spatial_Signal 701 705	with
+T176	Spatial_Signal 770 772	of
+T177	Spatial_Signal 795 797	on
+T178	Spatial_Signal 808 810	of
+T179	Spatial_Signal 835 841	around
+T180	Spatial_Signal 846 848	to
+T181	Spatial_Signal 908 910	in
+T182	Spatial_Signal 929 936	outside
+T183	Spatial_Signal 961 963	of
+T184	Spatial_Signal 972 974	at
+T185	Spatial_Signal 1046 1048	to
+T186	Spatial_Signal 1058 1060	of
+T187	Spatial_Signal 1109 1111	by
+T188	Spatial_Signal 1130 1132	at
+T189	Spatial_Signal 1191 1193	at
+T190	Spatial_Signal 1279 1281	of
+T191	Spatial_Signal 1329 1331	to
+T192	Spatial_Signal 1381 1383	of
+T193	Spatial_Signal 1398 1400	to
+T194	Spatial_Signal 1406 1408	in
+T195	Spatial_Signal 1424 1426	of
+T196	Spatial_Signal 1433 1436	out
+T197	Spatial_Signal 1437 1439	to
+T198	Spatial_Signal 1467 1469	of
+T199	Spatial_Signal 1514 1516	of
+T200	Spatial_Signal 1562 1564	of
+T201	Spatial_Signal 1580 1582	by
+T202	Spatial_Signal 1618 1620	of
+T203	Spatial_Signal 1688 1692	into
+T204	Spatial_Signal 1722 1724	on
+T205	Spatial_Signal 1729 1731	of
+T206	Spatial_Signal 1752 1754	as
+T207	Spatial_Signal 1762 1764	as
+T208	Spatial_Signal 1797 1802	about
+T209	Spatial_Signal 1817 1821	with
+T210	Spatial_Signal 1873 1875	on
+T211	Spatial_Signal 1885 1887	of
+T212	Spatial_Signal 1931 1933	to
+T213	Spatial_Signal 1974 1978	with
+T214	Spatial_Signal 2000 2002	on
+T215	Spatial_Signal 2033 2035	on
+T216	Spatial_Signal 2051 2055	from
+T217	Spatial_Signal 2077 2079	of
+T218	Spatial_Signal 2100 2104	upon
+T219	Spatial_Signal 2128 2130	at
+T220	Spatial_Signal 2141 2143	of
+T221	Spatial_Signal 2186 2188	as
+T222	Spatial_Signal 2223 2225	of
+T223	Spatial_Signal 2242 2245	off
+T224	Spatial_Signal 2295 2299	with
+T225	Spatial_Signal 2312 2315	for
+T226	Spatial_Signal 2358 2360	to
+T227	Spatial_Signal 2401 2403	of
+T228	Spatial_Signal 2437 2439	by
+T229	Spatial_Signal 2462 2464	in
+T230	Spatial_Signal 2482 2484	to
+T231	Spatial_Signal 2520 2522	on
+T232	Spatial_Signal 2566 2572	within
+T233	Spatial_Signal 2612 2614	to
+T234	Spatial_Signal 2674 2678	with
+T235	Spatial_Signal 2699 2703	from
+T236	Spatial_Signal 2717 2719	on
+T237	Spatial_Signal 2731 2733	at
+T238	Spatial_Signal 2744 2746	of
+T239	Spatial_Signal 2785 2787	to
+T240	Spatial_Signal 2859 2863	with
+T241	Spatial_Signal 2901 2905	down
+T242	Spatial_Signal 2934 2936	in
+T243	Spatial_Signal 2959 2961	of
+T244	Spatial_Signal 2979 2982	for
+T245	Spatial_Signal 3033 3035	by
+T246	Spatial_Signal 3056 3062	across
+T247	Spatial_Signal 3081 3086	among
+T248	Spatial_Signal 3182 3184	as
+T249	Spatial_Signal 3236 3238	to
+T250	Spatial_Signal 3250 3254	with
+T251	Spatial_Signal 3295 3297	to
+T252	Spatial_Signal 3308 3310	of
+T253	Spatial_Signal 3330 3332	to
+T254	Spatial_Signal 3469 3471	at
+T255	Spatial_Signal 3528 3530	of
+T256	Spatial_Signal 3540 3546	before
+T257	Spatial_Signal 3586 3588	to
+T258	Spatial_Signal 3767 3769	on
+T259	Spatial_Signal 3869 3876	beneath
+T260	Spatial_Signal 3900 3902	to
+T261	Spatial_Signal 3949 3951	by
+T262	Spatial_Signal 4018 4022	from
+T263	Spatial_Signal 4031 4033	of
+T264	Spatial_Signal 4062 4064	in
+T265	Spatial_Signal 4097 4099	up
+T266	Spatial_Signal 4160 4162	of
+T267	Spatial_Signal 4198 4200	on
+T268	Spatial_Signal 4267 4272	along
+T269	Spatial_Signal 4302 4310	to visit
+T270	Spatial_Signal 4344 4346	to
+T271	Spatial_Signal 4359 4361	to
+T272	Spatial_Signal 4366 4368	to
+T273	Spatial_Signal 4380 4382	of
+T274	Spatial_Signal 4431 4433	to
+T275	Spatial_Signal 4439 4441	in
+T276	Spatial_Signal 4480 4482	up
+T277	Spatial_Signal 4487 4491	down
+T278	Spatial_Signal 4505 4510	among
+T279	Spatial_Signal 4632 4636	from
+T280	Spatial_Signal 4637 4644	beneath
+T281	Spatial_Signal 4677 4679	to
+T282	Spatial_Signal 4700 4702	by
+T283	Spatial_Signal 4729 4731	in
+T284	Spatial_Signal 4795 4797	in
+T285	Spatial_Signal 4813 4815	to
+T286	Spatial_Signal 4823 4825	to
+T287	Spatial_Signal 4852 4854	to
+T288	Spatial_Signal 4879 4881	at
+T289	Spatial_Signal 4911 4915	from
+T290	Spatial_Signal 4984 4986	in
+T291	Spatial_Signal 5006 5008	by
+T292	Spatial_Signal 5042 5044	to
+T293	Spatial_Signal 5064 5066	to
+T294	Spatial_Signal 5107 5109	to
+T295	Spatial_Signal 5148 5150	in
+T296	Spatial_Signal 5184 5186	on
+T297	Spatial_Signal 5197 5199	to
+T298	Spatial_Signal 5217 5219	of
+T299	Spatial_Signal 5278 5280	in
+T300	Spatial_Signal 5331 5334	off
+T301	Spatial_Signal 5391 5395	with
+T302	Spatial_Signal 5408 5411	for
+T303	Spatial_Signal 5454 5456	to
+T304	Spatial_Signal 5497 5499	of
+T305	Spatial_Signal 5527 5532	among
+T306	Spatial_Signal 5701 5703	on
+T307	Spatial_Signal 5812 5816	from
+T308	Spatial_Signal 5891 5893	in
+T309	Spatial_Signal 5919 5921	by
+T310	Spatial_Signal 5955 5957	to
+T311	Spatial_Signal 5977 5979	to
+T312	Character_Line 2647 2656	<cline1>.
+T313	Character_Line 2805 2814	<cline1>.
+T314	Character_Line 2836 2845	<cline2>.
+T315	Character_Line 2872 2881	<cline1>.
+T316	Character_Line 3124 3133	<cline1>.
+T317	Character_Line 3148 3157	<cline2>.
+T318	Character_Line 3158 3167	<cline5>.
+T319	Character_Line 3337 3346	<cline1>.
+T320	Character_Line 3347 3356	<cline2>.
+T321	Character_Line 3375 3384	<cline3>.
+T322	Character_Line 3385 3394	<cline1>.
+T323	Character_Line 3411 3420	<cline2>.
+T324	Character_Line 3435 3444	<cline3>.
+T325	Character_Line 3625 3634	<cline4>.
+T326	Character_Line 3651 3660	<cline5>.
+T327	Character_Line 3661 3670	<cline6>.
+T328	Character_Line 3687 3696	<cline7>.
+T329	Character_Line 3821 3830	<cline1>.
+T330	Character_Line 3840 3849	<cline2>.
+T331	Character_Line 3912 3921	<cline1>.
+T332	Character_Line 3958 3967	<cline1>.
+T333	Character_Line 3968 3977	<cline5>.
+T334	Character_Line 4579 4588	<cline1>.
+T335	Character_Line 4599 4608	<cline2>.
+T336	Character_Line 4742 4751	<cline3>.
+T337	Character_Line 4771 4780	<cline4>.
+T338	Character_Line 5115 5124	<cline1>.
+T339	Character_Line 5575 5584	<cline1>.
+T340	Character_Line 5604 5613	<cline2>.
+T341	Character_Line 5761 5770	<cline1>.
+T342	Character_Line 5785 5794	<cline2>.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/demo/data/demo/examples_processed.ann	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,587 @@
+T1	Character 0 6	A BULL
+T2	Character 107 112	A MAN
+T3	Character 295 317	A VERY SKILLFUL BOWMAN
+T4	Character 367 377	the beasts
+T5	Character 414 422	The Lion
+T6	Character 455 467	A young Calf
+T7	Character 557 563	A BULL
+T8	Character 645 651	A BULL
+T9	Character 715 726	The Lioness
+T10	Character 782 784	An
+T11	Character 785 792	old man
+T12	Character 878 892	A singing bird
+T13	Character 1023 1028	a Bat
+T14	Character 1143 1146	MAN
+T15	Character 1344 1353	A CHARGER
+T16	Character 1446 1452	A CROW
+T17	Character 1468 1477	the Raven
+T18	Character 1563 1566	men
+T19	Character 1669 1677	the Crow
+T20	Character 1774 1785	The Serpent
+T21	Character 1836 1854	A TROUBLESOME CROW
+T22	Character 1894 1902	A PRINCE
+T23	Character 2013 2023	a courtier
+T24	Character 2113 2124	The Monkeys
+T25	Character 2401 2413	the audience
+T26	Character 2415 2420	A DOE
+T27	Character 2490 2498	The Lion
+T28	Character 2550 2553	she
+T29	Character 2620 2637	The expiring lion
+T30	Character 2654 2660	A lion
+T31	Character 2751 2759	The oaks
+T32	Character 2785 2792	jupiter
+T33	Character 2812 2819	jupiter
+T34	Character 2843 2850	The oak
+T35	Character 2879 2893	The woodcutter
+T36	Character 3000 3016	A very large oak
+T37	Character 3170 3178	the wolf
+T38	Character 3206 3216	the farmer
+T39	Character 3359 3370	the serpent
+T40	Character 3397 3406	the satyr
+T41	Character 3423 3430	the man
+T42	Character 3453 3457	they
+T43	Character 3496 3505	the satyr
+T44	Character 3558 3565	the man
+T45	Character 3637 3646	the satyr
+T46	Character 3673 3682	the satyr
+T47	Character 3847 3855	The mule
+T48	Character 3923 3935	a countryman
+T49	Character 3980 3985	their
+T50	Character 3986 3992	father
+T51	Character 3994 4001	Jupiter
+T52	Character 4040 4046	A bull
+T53	Character 4072 4085	A townsperson
+T54	Character 4111 4117	A wolf
+T55	Character 4145 4156	The animals
+T56	Character 4239 4247	two sons
+T57	Character 4284 4293	A pilgrim
+T58	Character 4319 4327	A farmer
+T59	Character 4388 4401	A bald knight
+T60	Character 4451 4457	A cock
+T61	Character 4755 4766	master cock
+T62	Character 4778 4784	A crow
+T63	Character 4813 4819	apollo
+T64	Character 5006 5012	apollo
+T65	Character 5064 5071	mercury
+T66	Character 5122 5127	A MAN
+T67	Character 5253 5260	the man
+T68	Character 5369 5380	the monkeys
+T69	Character 5497 5509	the audience
+T70	Character 5511 5518	THE OAK
+T71	Character 5548 5555	the oak
+T72	Character 5582 5591	the reeds
+T73	Character 5630 5639	the woman
+T74	Character 5659 5666	the man
+T75	Character 5680 5689	the woman
+T76	Character 5739 5748	the woman
+T77	Character 5768 5775	the man
+T78	Character 5826 5834	the crow
+T79	Character 5900 5908	the crow
+T80	Character 5919 5925	apollo
+T81	Character 5977 5984	mercury
+T82	Says 1073 1078	asked
+T83	Says 2638 2642	said
+T84	Says 2794 2800	saying
+T85	Says 2820 2831	made answer
+T86	Says 2851 2855	said
+T87	Says 3110 3119	addressed
+T88	Says 3136 3143	replied
+T89	Says 3165 3169	said
+T90	Says 3322 3326	said
+T91	Says 3354 3358	said
+T92	Says 3392 3396	said
+T93	Says 3418 3422	said
+T94	Says 3632 3636	said
+T95	Says 3668 3672	said
+T96	Says 3739 3747	inquired
+T97	Says 3809 3816	replied
+T98	Says 3831 3835	said
+T99	Says 3892 3896	said
+T100	Says 3949 3953	said
+T101	Says 3975 3979	said
+T102	Says 4586 4591	quoth
+T103	Says 4749 4754	quoth
+T104	Says 5099 5103	said
+T105	Says 5561 5570	addressed
+T106	Says 5592 5599	replied
+T107	Says 5667 5675	inquired
+T108	Says 5749 5756	replied
+T109	Says 5776 5780	said
+T110	Place 133 146	foreign lands
+T111	Place 182 197	his own country
+T112	Place 258 278	the different places
+T113	Place 326 339	the mountains
+T114	Place 381 391	the forest
+T115	Place 594 600	a cave
+T116	Place 909 915	a cage
+T117	Place 935 943	a window
+T118	Place 1047 1055	the bars
+T119	Place 1059 1067	the cage
+T120	Place 1407 1413	a mill
+T121	Place 1438 1444	battle
+T122	Place 1691 1697	a tree
+T123	Place 1723 1726	one
+T124	Place 1730 1742	the branches
+T125	Place 1873 1881	the back
+T126	Place 1885 1892	a Sheep
+T127	Place 2102 2111	the stage
+T128	Place 2462 2468	a cave
+T129	Place 2570 2578	the cave
+T130	Place 2717 2727	the ground
+T131	Place 2905 2913	mountain
+T132	Place 3060 3068	a stream
+T133	Place 3295 3304	the mouth
+T134	Place 3308 3316	its lair
+T135	Place 3469 3485	the satyr's home
+T136	Place 4020 4027	the top
+T137	Place 4031 4038	Olympus
+T138	Place 4062 4070	a meadow
+T139	Place 4097 4109	the mountain
+T140	Place 4134 4143	a village
+T141	Place 4160 4170	the forest
+T142	Place 4270 4282	a rural road
+T143	Place 4308 4317	Acropolis
+T144	Place 4344 4355	the stables
+T145	Place 4439 4449	the forest
+T146	Place 4489 4501	the farmyard
+T147	Place 5148 5161	foreign lands
+T148	Place 5197 5212	his own country
+T149	Place 5278 5298	the different places
+T150	Place 5530 5540	some reeds
+T151	Spatial_Signal 20 24	with
+T152	Spatial_Signal 39 41	to
+T153	Spatial_Signal 58 65	through
+T154	Spatial_Signal 93 95	to
+T155	Spatial_Signal 130 132	in
+T156	Spatial_Signal 166 168	on
+T157	Spatial_Signal 179 181	to
+T158	Spatial_Signal 199 201	of
+T159	Spatial_Signal 255 257	in
+T160	Spatial_Signal 323 325	to
+T161	Spatial_Signal 340 342	in
+T162	Spatial_Signal 350 352	of
+T163	Spatial_Signal 378 380	of
+T164	Spatial_Signal 397 399	at
+T165	Spatial_Signal 444 446	to
+T166	Spatial_Signal 489 491	to
+T167	Spatial_Signal 495 501	before
+T168	Spatial_Signal 523 525	by
+T169	Spatial_Signal 548 550	to
+T170	Spatial_Signal 574 578	from
+T171	Spatial_Signal 591 593	in
+T172	Spatial_Signal 690 692	to
+T173	Spatial_Signal 699 703	with
+T174	Spatial_Signal 768 770	of
+T175	Spatial_Signal 793 795	on
+T176	Spatial_Signal 806 808	of
+T177	Spatial_Signal 833 839	around
+T178	Spatial_Signal 844 846	to
+T179	Spatial_Signal 906 908	in
+T180	Spatial_Signal 927 934	outside
+T181	Spatial_Signal 959 961	of
+T182	Spatial_Signal 970 972	at
+T183	Spatial_Signal 1044 1046	to
+T184	Spatial_Signal 1056 1058	of
+T185	Spatial_Signal 1107 1109	by
+T186	Spatial_Signal 1128 1130	at
+T187	Spatial_Signal 1189 1191	at
+T188	Spatial_Signal 1277 1279	of
+T189	Spatial_Signal 1327 1329	to
+T190	Spatial_Signal 1379 1381	of
+T191	Spatial_Signal 1396 1398	to
+T192	Spatial_Signal 1404 1406	in
+T193	Spatial_Signal 1422 1424	of
+T194	Spatial_Signal 1431 1434	out
+T195	Spatial_Signal 1435 1437	to
+T196	Spatial_Signal 1465 1467	of
+T197	Spatial_Signal 1512 1514	of
+T198	Spatial_Signal 1560 1562	of
+T199	Spatial_Signal 1578 1580	by
+T200	Spatial_Signal 1616 1618	of
+T201	Spatial_Signal 1686 1690	into
+T202	Spatial_Signal 1720 1722	on
+T203	Spatial_Signal 1727 1729	of
+T204	Spatial_Signal 1750 1752	as
+T205	Spatial_Signal 1760 1762	as
+T206	Spatial_Signal 1795 1800	about
+T207	Spatial_Signal 1815 1819	with
+T208	Spatial_Signal 1870 1872	on
+T209	Spatial_Signal 1882 1884	of
+T210	Spatial_Signal 1928 1930	to
+T211	Spatial_Signal 1971 1975	with
+T212	Spatial_Signal 1997 1999	on
+T213	Spatial_Signal 2030 2032	on
+T214	Spatial_Signal 2048 2052	from
+T215	Spatial_Signal 2074 2076	of
+T216	Spatial_Signal 2097 2101	upon
+T217	Spatial_Signal 2125 2127	at
+T218	Spatial_Signal 2138 2140	of
+T219	Spatial_Signal 2183 2185	as
+T220	Spatial_Signal 2220 2222	of
+T221	Spatial_Signal 2239 2242	off
+T222	Spatial_Signal 2292 2296	with
+T223	Spatial_Signal 2309 2312	for
+T224	Spatial_Signal 2355 2357	to
+T225	Spatial_Signal 2398 2400	of
+T226	Spatial_Signal 2434 2436	by
+T227	Spatial_Signal 2459 2461	in
+T228	Spatial_Signal 2479 2481	to
+T229	Spatial_Signal 2517 2519	on
+T230	Spatial_Signal 2563 2569	within
+T231	Spatial_Signal 2609 2611	to
+T232	Spatial_Signal 2671 2675	with
+T233	Spatial_Signal 2696 2700	from
+T234	Spatial_Signal 2714 2716	on
+T235	Spatial_Signal 2728 2730	at
+T236	Spatial_Signal 2741 2743	of
+T237	Spatial_Signal 2782 2784	to
+T238	Spatial_Signal 2856 2860	with
+T239	Spatial_Signal 2898 2902	down
+T240	Spatial_Signal 2931 2933	in
+T241	Spatial_Signal 2956 2958	of
+T242	Spatial_Signal 2976 2979	for
+T243	Spatial_Signal 3030 3032	by
+T244	Spatial_Signal 3053 3059	across
+T245	Spatial_Signal 3078 3083	among
+T246	Spatial_Signal 3179 3181	as
+T247	Spatial_Signal 3233 3235	to
+T248	Spatial_Signal 3247 3251	with
+T249	Spatial_Signal 3292 3294	to
+T250	Spatial_Signal 3305 3307	of
+T251	Spatial_Signal 3327 3329	to
+T252	Spatial_Signal 3466 3468	at
+T253	Spatial_Signal 3525 3527	of
+T254	Spatial_Signal 3537 3543	before
+T255	Spatial_Signal 3583 3585	to
+T256	Spatial_Signal 3764 3766	on
+T257	Spatial_Signal 3866 3873	beneath
+T258	Spatial_Signal 3897 3899	to
+T259	Spatial_Signal 3946 3948	by
+T260	Spatial_Signal 4015 4019	from
+T261	Spatial_Signal 4028 4030	of
+T262	Spatial_Signal 4059 4061	in
+T263	Spatial_Signal 4094 4096	up
+T264	Spatial_Signal 4157 4159	of
+T265	Spatial_Signal 4195 4197	on
+T266	Spatial_Signal 4264 4269	along
+T267	Spatial_Signal 4299 4307	to visit
+T268	Spatial_Signal 4341 4343	to
+T269	Spatial_Signal 4356 4358	to
+T270	Spatial_Signal 4363 4365	to
+T271	Spatial_Signal 4377 4379	of
+T272	Spatial_Signal 4428 4430	to
+T273	Spatial_Signal 4436 4438	in
+T274	Spatial_Signal 4477 4479	up
+T275	Spatial_Signal 4484 4488	down
+T276	Spatial_Signal 4502 4507	among
+T277	Spatial_Signal 4629 4633	from
+T278	Spatial_Signal 4634 4641	beneath
+T279	Spatial_Signal 4674 4676	to
+T280	Spatial_Signal 4697 4699	by
+T281	Spatial_Signal 4726 4728	in
+T282	Spatial_Signal 4792 4794	in
+T283	Spatial_Signal 4810 4812	to
+T284	Spatial_Signal 4820 4822	to
+T285	Spatial_Signal 4849 4851	to
+T286	Spatial_Signal 4876 4878	at
+T287	Spatial_Signal 4908 4912	from
+T288	Spatial_Signal 4981 4983	in
+T289	Spatial_Signal 5003 5005	by
+T290	Spatial_Signal 5039 5041	to
+T291	Spatial_Signal 5061 5063	to
+T292	Spatial_Signal 5104 5106	to
+T293	Spatial_Signal 5145 5147	in
+T294	Spatial_Signal 5181 5183	on
+T295	Spatial_Signal 5194 5196	to
+T296	Spatial_Signal 5214 5216	of
+T297	Spatial_Signal 5275 5277	in
+T298	Spatial_Signal 5328 5331	off
+T299	Spatial_Signal 5388 5392	with
+T300	Spatial_Signal 5405 5408	for
+T301	Spatial_Signal 5451 5453	to
+T302	Spatial_Signal 5494 5496	of
+T303	Spatial_Signal 5524 5529	among
+T304	Spatial_Signal 5698 5700	on
+T305	Spatial_Signal 5809 5813	from
+T306	Spatial_Signal 5888 5890	in
+T307	Spatial_Signal 5916 5918	by
+T308	Spatial_Signal 5952 5954	to
+T309	Spatial_Signal 5974 5976	to
+T310	Character_Line 2644 2653	<cline1>.
+T311	Character_Line 2802 2811	<cline1>.
+T312	Character_Line 2833 2842	<cline2>.
+T313	Character_Line 3121 3130	<cline1>.
+T314	Character_Line 3145 3154	<cline2>.
+T315	Character_Line 3155 3164	<cline5>.
+T316	Character_Line 3334 3343	<cline1>.
+T317	Character_Line 3344 3353	<cline2>.
+T318	Character_Line 3372 3381	<cline3>.
+T319	Character_Line 3382 3391	<cline1>.
+T320	Character_Line 3408 3417	<cline2>.
+T321	Character_Line 3622 3631	<cline4>.
+T322	Character_Line 3648 3657	<cline5>.
+T323	Character_Line 3658 3667	<cline6>.
+T324	Character_Line 3818 3827	<cline1>.
+T325	Character_Line 3837 3846	<cline2>.
+T326	Character_Line 3909 3918	<cline1>.
+T327	Character_Line 3955 3964	<cline1>.
+T328	Character_Line 3965 3974	<cline5>.
+T329	Character_Line 4576 4585	<cline1>.
+T330	Character_Line 4596 4605	<cline2>.
+T331	Character_Line 4739 4748	<cline3>.
+T332	Character_Line 4768 4777	<cline4>.
+T333	Character_Line 5112 5121	<cline1>.
+T334	Character_Line 5572 5581	<cline1>.
+T335	Character_Line 5601 5610	<cline2>.
+T336	Character_Line 5758 5767	<cline1>.
+T337	Character_Line 5782 5791	<cline2>.
+E1	Spatial_Signal:T155 Trajector:T2 Landmark:T110
+E2	Spatial_Signal:T157 Trajector:T2 Landmark:T111
+E3	Spatial_Signal:T159 Trajector:T2 Landmark:T110
+E4	Spatial_Signal:T160 Trajector:T3 Landmark:T113
+E5	Spatial_Signal:T163 Trajector:T4 Landmark:T114
+E6	Spatial_Signal:T170 Trajector:T7 Landmark:T115
+E7	Spatial_Signal:T171 Trajector:T7 Landmark:T115
+E8	Spatial_Signal:T183 Trajector:T13 Landmark:T118
+E9	Spatial_Signal:T184 Trajector:T13 Landmark:T119
+E10	Spatial_Signal:T190 Trajector:T15 Landmark:T120
+E11	Spatial_Signal:T191 Trajector:T15 Landmark:T120
+E12	Spatial_Signal:T191 Trajector:T15 Landmark:T121
+E13	Spatial_Signal:T192 Trajector:T15 Landmark:T120
+E14	Spatial_Signal:T194 Trajector:T15 Landmark:T121
+E15	Spatial_Signal:T195 Trajector:T15 Landmark:T121
+E16	Spatial_Signal:T201 Trajector:T19 Landmark:T122
+E17	Spatial_Signal:T202 Trajector:T19 Landmark:T123
+E18	Spatial_Signal:T203 Trajector:T19 Landmark:T124
+E19	Spatial_Signal:T208 Trajector:T21 Landmark:T125
+E20	Spatial_Signal:T209 Trajector:T21 Landmark:T126
+E21	Spatial_Signal:T213 Trajector:T23 Landmark:T127
+E22	Spatial_Signal:T215 Trajector:T23 Landmark:T127
+E23	Spatial_Signal:T216 Trajector:T23 Landmark:T127
+E24	Spatial_Signal:T226 Trajector:T26 Landmark:T128
+E25	Spatial_Signal:T227 Trajector:T26 Landmark:T128
+E26	Spatial_Signal:T230 Trajector:T28 Landmark:T129
+E27	Spatial_Signal:T234 Trajector:T30 Landmark:T130
+E28	Spatial_Signal:T239 Trajector:T35 Landmark:T131
+E29	Spatial_Signal:T244 Trajector:T36 Landmark:T132
+E30	Spatial_Signal:T247 Trajector:T37 Landmark:T134
+E31	Spatial_Signal:T247 Trajector:T38 Landmark:T133
+E32	Spatial_Signal:T247 Trajector:T38 Landmark:T134
+E33	Spatial_Signal:T248 Trajector:T38 Landmark:T134
+E34	Spatial_Signal:T249 Trajector:T37 Landmark:T133
+E35	Spatial_Signal:T249 Trajector:T38 Landmark:T133
+E36	Spatial_Signal:T250 Trajector:T37 Landmark:T134
+E37	Spatial_Signal:T250 Trajector:T38 Landmark:T134
+E38	Spatial_Signal:T252 Trajector:T42 Landmark:T135
+E39	Spatial_Signal:T260 Trajector:T51 Landmark:T136
+E40	Spatial_Signal:T261 Trajector:T51 Landmark:T137
+E41	Spatial_Signal:T262 Trajector:T52 Landmark:T138
+E42	Spatial_Signal:T263 Trajector:T53 Landmark:T139
+E43	Spatial_Signal:T264 Trajector:T55 Landmark:T141
+E44	Spatial_Signal:T267 Trajector:T57 Landmark:T143
+E45	Spatial_Signal:T268 Trajector:T58 Landmark:T144
+E46	Spatial_Signal:T269 Trajector:T58 Landmark:T144
+E47	Spatial_Signal:T272 Trajector:T59 Landmark:T145
+E48	Spatial_Signal:T273 Trajector:T59 Landmark:T145
+E49	Spatial_Signal:T274 Trajector:T60 Landmark:T146
+E50	Spatial_Signal:T275 Trajector:T60 Landmark:T146
+E51	Spatial_Signal:T293 Trajector:T66 Landmark:T147
+E52	Spatial_Signal:T295 Trajector:T66 Landmark:T148
+E53	Spatial_Signal:T297 Trajector:T67 Landmark:T149
+E54	Spatial_Signal:T303 Trajector:T70 Landmark:T150
+E55	Says:T83 WHO:T29 WHAT:T310
+E56	Says:T83 WHO:T30 WHAT:T310
+E57	Says:T84 WHO:T31 WHAT:T311
+E58	Says:T84 WHO:T32 WHAT:T311
+E59	Says:T84 WHO:T33 WHAT:T311
+E60	Says:T85 WHO:T33 WHAT:T311
+E61	Says:T86 WHO:T34 WHAT:T312
+E62	Says:T89 WHO:T37 WHAT:T313
+E63	Says:T89 WHO:T37 WHAT:T314
+E64	Says:T89 WHO:T37 WHAT:T315
+E65	Says:T89 WHO:T37 WHAT:T316
+E66	Says:T89 WHO:T37 WHAT:T317
+E67	Says:T89 WHO:T37 WHAT:T318
+E68	Says:T89 WHO:T37 WHAT:T319
+E69	Says:T89 WHO:T38 WHAT:T313
+E70	Says:T89 WHO:T38 WHAT:T314
+E71	Says:T89 WHO:T38 WHAT:T315
+E72	Says:T89 WHO:T38 WHAT:T316
+E73	Says:T89 WHO:T38 WHAT:T317
+E74	Says:T89 WHO:T38 WHAT:T318
+E75	Says:T89 WHO:T38 WHAT:T319
+E76	Says:T89 WHO:T39 WHAT:T313
+E77	Says:T89 WHO:T39 WHAT:T314
+E78	Says:T89 WHO:T39 WHAT:T315
+E79	Says:T89 WHO:T39 WHAT:T316
+E80	Says:T89 WHO:T39 WHAT:T317
+E81	Says:T89 WHO:T39 WHAT:T318
+E82	Says:T89 WHO:T39 WHAT:T319
+E83	Says:T89 WHO:T40 WHAT:T313
+E84	Says:T89 WHO:T40 WHAT:T314
+E85	Says:T89 WHO:T40 WHAT:T315
+E86	Says:T89 WHO:T40 WHAT:T316
+E87	Says:T89 WHO:T40 WHAT:T317
+E88	Says:T89 WHO:T40 WHAT:T318
+E89	Says:T89 WHO:T40 WHAT:T319
+E90	Says:T90 WHO:T37 WHAT:T313
+E91	Says:T90 WHO:T37 WHAT:T314
+E92	Says:T90 WHO:T37 WHAT:T315
+E93	Says:T90 WHO:T37 WHAT:T316
+E94	Says:T90 WHO:T37 WHAT:T317
+E95	Says:T90 WHO:T37 WHAT:T318
+E96	Says:T90 WHO:T37 WHAT:T319
+E97	Says:T90 WHO:T38 WHAT:T313
+E98	Says:T90 WHO:T38 WHAT:T314
+E99	Says:T90 WHO:T38 WHAT:T315
+E100	Says:T90 WHO:T38 WHAT:T316
+E101	Says:T90 WHO:T38 WHAT:T317
+E102	Says:T90 WHO:T38 WHAT:T318
+E103	Says:T90 WHO:T38 WHAT:T319
+E104	Says:T90 WHO:T39 WHAT:T313
+E105	Says:T90 WHO:T39 WHAT:T314
+E106	Says:T90 WHO:T39 WHAT:T315
+E107	Says:T90 WHO:T39 WHAT:T316
+E108	Says:T90 WHO:T39 WHAT:T317
+E109	Says:T90 WHO:T39 WHAT:T318
+E110	Says:T90 WHO:T39 WHAT:T319
+E111	Says:T90 WHO:T40 WHAT:T313
+E112	Says:T90 WHO:T40 WHAT:T314
+E113	Says:T90 WHO:T40 WHAT:T315
+E114	Says:T90 WHO:T40 WHAT:T316
+E115	Says:T90 WHO:T40 WHAT:T317
+E116	Says:T90 WHO:T40 WHAT:T318
+E117	Says:T90 WHO:T40 WHAT:T319
+E118	Says:T91 WHO:T37 WHAT:T313
+E119	Says:T91 WHO:T37 WHAT:T314
+E120	Says:T91 WHO:T37 WHAT:T315
+E121	Says:T91 WHO:T37 WHAT:T316
+E122	Says:T91 WHO:T37 WHAT:T317
+E123	Says:T91 WHO:T37 WHAT:T318
+E124	Says:T91 WHO:T37 WHAT:T319
+E125	Says:T91 WHO:T38 WHAT:T313
+E126	Says:T91 WHO:T38 WHAT:T314
+E127	Says:T91 WHO:T38 WHAT:T315
+E128	Says:T91 WHO:T38 WHAT:T316
+E129	Says:T91 WHO:T38 WHAT:T317
+E130	Says:T91 WHO:T38 WHAT:T318
+E131	Says:T91 WHO:T38 WHAT:T319
+E132	Says:T91 WHO:T39 WHAT:T313
+E133	Says:T91 WHO:T39 WHAT:T314
+E134	Says:T91 WHO:T39 WHAT:T315
+E135	Says:T91 WHO:T39 WHAT:T316
+E136	Says:T91 WHO:T39 WHAT:T317
+E137	Says:T91 WHO:T39 WHAT:T318
+E138	Says:T91 WHO:T39 WHAT:T319
+E139	Says:T91 WHO:T40 WHAT:T313
+E140	Says:T91 WHO:T40 WHAT:T314
+E141	Says:T91 WHO:T40 WHAT:T315
+E142	Says:T91 WHO:T40 WHAT:T316
+E143	Says:T91 WHO:T40 WHAT:T317
+E144	Says:T91 WHO:T40 WHAT:T318
+E145	Says:T91 WHO:T40 WHAT:T319
+E146	Says:T92 WHO:T37 WHAT:T313
+E147	Says:T92 WHO:T37 WHAT:T314
+E148	Says:T92 WHO:T37 WHAT:T315
+E149	Says:T92 WHO:T37 WHAT:T316
+E150	Says:T92 WHO:T37 WHAT:T317
+E151	Says:T92 WHO:T37 WHAT:T319
+E152	Says:T92 WHO:T38 WHAT:T313
+E153	Says:T92 WHO:T38 WHAT:T314
+E154	Says:T92 WHO:T38 WHAT:T315
+E155	Says:T92 WHO:T38 WHAT:T316
+E156	Says:T92 WHO:T38 WHAT:T317
+E157	Says:T92 WHO:T38 WHAT:T318
+E158	Says:T92 WHO:T38 WHAT:T319
+E159	Says:T92 WHO:T39 WHAT:T313
+E160	Says:T92 WHO:T39 WHAT:T314
+E161	Says:T92 WHO:T39 WHAT:T315
+E162	Says:T92 WHO:T39 WHAT:T316
+E163	Says:T92 WHO:T39 WHAT:T317
+E164	Says:T92 WHO:T39 WHAT:T318
+E165	Says:T92 WHO:T39 WHAT:T319
+E166	Says:T92 WHO:T40 WHAT:T313
+E167	Says:T92 WHO:T40 WHAT:T314
+E168	Says:T92 WHO:T40 WHAT:T315
+E169	Says:T92 WHO:T40 WHAT:T316
+E170	Says:T92 WHO:T40 WHAT:T317
+E171	Says:T92 WHO:T40 WHAT:T318
+E172	Says:T92 WHO:T40 WHAT:T319
+E173	Says:T93 WHO:T41 WHAT:T320
+E174	Says:T94 WHO:T45 WHAT:T321
+E175	Says:T95 WHO:T46 WHAT:T322
+E176	Says:T95 WHO:T46 WHAT:T323
+E177	Says:T99 WHO:T47 WHAT:T325
+E178	Says:T99 WHO:T47 WHAT:T326
+E179	Says:T99 WHO:T47 WHAT:T327
+E180	Says:T99 WHO:T47 WHAT:T328
+E181	Says:T99 WHO:T49 WHAT:T325
+E182	Says:T99 WHO:T49 WHAT:T326
+E183	Says:T99 WHO:T49 WHAT:T327
+E184	Says:T99 WHO:T50 WHAT:T325
+E185	Says:T99 WHO:T50 WHAT:T326
+E186	Says:T99 WHO:T50 WHAT:T327
+E187	Says:T99 WHO:T50 WHAT:T328
+E188	Says:T100 WHO:T47 WHAT:T325
+E189	Says:T100 WHO:T47 WHAT:T326
+E190	Says:T100 WHO:T47 WHAT:T327
+E191	Says:T100 WHO:T47 WHAT:T328
+E192	Says:T100 WHO:T49 WHAT:T325
+E193	Says:T100 WHO:T49 WHAT:T326
+E194	Says:T100 WHO:T49 WHAT:T327
+E195	Says:T100 WHO:T49 WHAT:T328
+E196	Says:T100 WHO:T50 WHAT:T325
+E197	Says:T100 WHO:T50 WHAT:T326
+E198	Says:T100 WHO:T50 WHAT:T327
+E199	Says:T100 WHO:T50 WHAT:T328
+E200	Says:T101 WHO:T47 WHAT:T325
+E201	Says:T101 WHO:T47 WHAT:T326
+E202	Says:T101 WHO:T47 WHAT:T327
+E203	Says:T101 WHO:T47 WHAT:T328
+E204	Says:T101 WHO:T49 WHAT:T325
+E205	Says:T101 WHO:T49 WHAT:T326
+E206	Says:T101 WHO:T49 WHAT:T327
+E207	Says:T101 WHO:T49 WHAT:T328
+E208	Says:T101 WHO:T50 WHAT:T325
+E209	Says:T101 WHO:T50 WHAT:T326
+E210	Says:T101 WHO:T50 WHAT:T327
+E211	Says:T101 WHO:T50 WHAT:T328
+E212	Says:T103 WHO:T61 WHAT:T331
+E213	Says:T103 WHO:T61 WHAT:T332
+E214	Says:T104 WHO:T66 WHAT:T333
+E215	Says:T104 WHO:T67 WHAT:T333
+E216	Says:T105 WHO:T71 WHAT:T334
+E217	Says:T105 WHO:T71 WHAT:T335
+E218	Says:T105 WHO:T71 WHAT:T336
+E219	Says:T105 WHO:T71 WHAT:T337
+E220	Says:T106 WHO:T72 WHAT:T334
+E221	Says:T106 WHO:T72 WHAT:T335
+E222	Says:T106 WHO:T72 WHAT:T336
+E223	Says:T106 WHO:T72 WHAT:T337
+E224	Says:T107 WHO:T72 WHAT:T336
+E225	Says:T107 WHO:T72 WHAT:T337
+E226	Says:T107 WHO:T74 WHAT:T334
+E227	Says:T107 WHO:T74 WHAT:T336
+E228	Says:T107 WHO:T74 WHAT:T337
+E229	Says:T108 WHO:T72 WHAT:T336
+E230	Says:T108 WHO:T72 WHAT:T337
+E231	Says:T108 WHO:T76 WHAT:T336
+E232	Says:T108 WHO:T76 WHAT:T337
+E233	Says:T109 WHO:T71 WHAT:T337
+E234	Says:T109 WHO:T72 WHAT:T334
+E235	Says:T109 WHO:T72 WHAT:T335
+E236	Says:T109 WHO:T72 WHAT:T336
+E237	Says:T109 WHO:T72 WHAT:T337
+E238	Says:T109 WHO:T73 WHAT:T337
+E239	Says:T109 WHO:T74 WHAT:T334
+E240	Says:T109 WHO:T74 WHAT:T337
+E241	Says:T109 WHO:T75 WHAT:T337
+E242	Says:T109 WHO:T76 WHAT:T337
+E243	Says:T109 WHO:T77 WHAT:T334
+E244	Says:T109 WHO:T77 WHAT:T335
+E245	Says:T109 WHO:T77 WHAT:T336
+E246	Says:T109 WHO:T77 WHAT:T337
+E247	Says:T109 WHO:T78 WHAT:T334
+E248	Says:T109 WHO:T78 WHAT:T335
+E249	Says:T109 WHO:T78 WHAT:T336
+E250	Says:T109 WHO:T78 WHAT:T337
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/demo/data/demo/examples_processed.txt	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,1 @@
+A BULL was striving with all his might to squeeze himself through a narrow passage which led to his stall. A MAN who had traveled in foreign lands boasted very much, on returning to his own country, of the many wonderful and heroic feats he had performed in the different places he had visited. A VERY SKILLFUL BOWMAN went to the mountains in search of game, but all the beasts of the forest fled at his approach. The Lion alone challenged him to combat. A young Calf came up, and offered to go before and show him the way by which he could manage to pass. A BULL, escaping from a Lion, hid in a cave which some shepherds had recently occupied. A BULL finding a lion's cub asleep gored him to death with his horns. The Lioness came up, and bitterly lamented the death of her whelp. An old man on the point of death summoned his sons around him to give them some parting advice. A singing bird was confined in a cage which hung outside a window, and had a way of singing at night when all other birds were asleep. One night a Bat came and clung to the bars of the cage, and asked the Bird why she was silent by day and sang only at night. WHEN MAN first saw the Camel, he was so frightened at his vast size that he ran away. After a time, perceiving the meekness and gentleness of the beast's temper, he summoned courage enough to approach him. A CHARGER, feeling the infirmities of age, was sent to work in a mill instead of going out to battle. A CROW was jealous of the Raven, because he was considered a bird of good omen and always attracted the attention of men, who noted by his flight the good or evil course of future events. Seeing some travelers approaching, the Crow flew up into a tree, and perching herself on one of the branches, cawed as loudly as she could. The Serpent, turning about, bit the Crow with a mortal wound. A TROUBLESOME CROW seated herself on the back of a Sheep. A PRINCE had some Monkeys trained to dance. The spectacle was often repeated with great applause, till on one occasion a courtier, bent on mischief, took from his pocket a handful of nuts and threw them upon the stage. The Monkeys at the sight of the nuts forgot their dancing and became (as indeed they were) Monkeys instead of actors. Pulling off their masks and tearing their robes, they fought with one another for the nuts. The dancing spectacle thus came to an end amidst the laughter and ridicule of the audience. A DOE hard pressed by hunters sought refuge in a cave belonging to a Lion. The Lion concealed himself on seeing her approach, but when she was safe within the cave, sprang upon her and tore her to pieces. The expiring lion said, <cline1>. A lion, worn out with years and powerless from disease, lay on the ground at the point of death. The oaks presented a complaint to jupiter, saying, <cline1>. jupiter made answer: <cline2>. The oak said with a sigh, <cline1>. The woodcutter cut down a mountain oak and split it in pieces, making wedges of its own branches for dividing the trunk. A very large oak was uprooted by the wind and thrown across a stream. It fell among some reeds, which it thus addressed: <cline1>. they replied, <cline2>. <cline5>. said the wolf as he galloped away, Well, the farmer thought it best to make it up with the serpent, and brought food and honey to the mouth of its lair, and said to it: <cline1>. <cline2>. said the serpent; <cline3>. <cline1>. said the satyr. <cline2>. said the man, <cline3>. After this they arrived at the satyr's home, and soon the satyr put a smoking dish of porridge before him. But when the man raised his spoon to his mouth he began blowing upon it. <cline4>. said the satyr. <cline5>. <cline6>. said the satyr. <cline7>. After a short time she returned, and when he inquired how she had got on and how the servants had treated her, she replied, <cline1>. he said, <cline2>. The mule, groaning beneath his heavy burden, said to himself: <cline1>. But a countryman who stood by said: <cline1>. <cline5>. said their father. Jupiter was reigning from the top of Olympus. A bull was feeding in a meadow. A townsperson climped up the mountain. A wolf was terrorizing a village. The animals of the forest were having an argument on which animal was the wisest. Two men and two sons were travelling along a rural road. A pilgrim went to visit Acropolis. A farmer one day came to the stables to see to his beasts of burden. A bald knight, who wore a wig, went out to hunt in the forest. A cock was once strutting up and down the farmyard among the hens when suddenly he espied something shinning amid the straw. <cline1>. quoth he, <cline2>. and soon rooted it out from beneath the straw. What did it turn out to be but a pearl that by some chance had been lost in the yard? <cline3>. quoth master cock, <cline4>. A crow caught in a snare prayed to apollo to release him, making a vow to offer some frankincense at his shrine. But when rescued from his danger, he forgot his promise. Shortly afterwards, again caught in a snare, he passed by apollo and made the same promise to offer frankincense to mercury. Mercury soon appeared and said to him, <cline1>. A MAN who had traveled in foreign lands boasted very much, on returning to his own country, of the many wonderful and heroic feats the man had performed in the different places the man had visited. Pulling off their masks and tearing their robes, the monkeys fought with one another for the nuts. The dancing spectacle thus came to an end amidst the laughter and ridicule of the audience. THE OAK fell among some reeds, which the oak thus addressed: <cline1>. the reeds replied, <cline2>. After a short time the woman returned, and when the man inquired how the woman had got on and how the servants had treated her, the woman replied, <cline1>. the man said, <cline2>. But when rescued from his danger, the crow forgot his promise. Shortly afterwards, again caught in a snare, the crow passed by apollo and made the same promise to offer frankincense to mercury.
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/demo/data/demo/examples_processed_bak.ann	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,347 @@
+T1	Character 0 6	A BULL
+T2	Character 107 112	A MAN
+T3	Character 295 317	A VERY SKILLFUL BOWMAN
+T4	Character 367 377	the beasts
+T5	Character 416 424	The Lion
+T6	Character 457 469	A young Calf
+T7	Character 559 565	A BULL
+T8	Character 647 653	A BULL
+T9	Character 717 728	The Lioness
+T10	Character 784 786	An
+T11	Character 787 794	old man
+T12	Character 880 894	A singing bird
+T13	Character 1025 1030	a Bat
+T14	Character 1145 1148	MAN
+T15	Character 1346 1355	A CHARGER
+T16	Character 1448 1454	A CROW
+T17	Character 1470 1479	the Raven
+T18	Character 1565 1568	men
+T19	Character 1671 1679	the Crow
+T20	Character 1776 1787	The Serpent
+T21	Character 1839 1857	A TROUBLESOME CROW
+T22	Character 1897 1905	A PRINCE
+T23	Character 2016 2026	a courtier
+T24	Character 2116 2127	The Monkeys
+T25	Character 2404 2416	the audience
+T26	Character 2418 2423	A DOE
+T27	Character 2493 2501	The Lion
+T28	Character 2553 2556	she
+T29	Character 2623 2640	The expiring lion
+T30	Character 2657 2663	A lion
+T31	Character 2754 2762	The oaks
+T32	Character 2788 2795	jupiter
+T33	Character 2815 2822	jupiter
+T34	Character 2846 2853	The oak
+T35	Character 2882 2896	The woodcutter
+T36	Character 3003 3019	A very large oak
+T37	Character 3173 3181	the wolf
+T38	Character 3209 3219	the farmer
+T39	Character 3362 3373	the serpent
+T40	Character 3400 3409	the satyr
+T41	Character 3426 3433	the man
+T42	Character 3456 3460	they
+T43	Character 3499 3508	the satyr
+T44	Character 3561 3568	the man
+T45	Character 3640 3649	the satyr
+T46	Character 3676 3685	the satyr
+T47	Character 3850 3858	The mule
+T48	Character 3926 3938	a countryman
+T49	Character 3983 3988	their
+T50	Character 3989 3995	father
+T51	Character 3997 4004	Jupiter
+T52	Character 4043 4049	A bull
+T53	Character 4075 4088	A townsperson
+T54	Character 4114 4120	A wolf
+T55	Character 4148 4159	The animals
+T56	Character 4230 4237	Two men
+T57	Character 4242 4250	two sons
+T58	Character 4287 4296	A pilgrim
+T59	Character 4322 4330	A farmer
+T60	Character 4391 4404	A bald knight
+T61	Character 4454 4460	A cock
+T62	Character 4758 4769	master cock
+T63	Character 4781 4787	A crow
+T64	Character 4816 4822	apollo
+T65	Character 5009 5015	apollo
+T66	Character 5067 5074	mercury
+T67	Character 5076 5083	Mercury
+T68	Character 5125 5130	A MAN
+T69	Character 5256 5263	the man
+T70	Character 5372 5383	the monkeys
+T71	Character 5500 5512	the audience
+T72	Character 5514 5521	THE OAK
+T73	Character 5551 5558	the oak
+T74	Character 5585 5594	the reeds
+T75	Character 5633 5642	the woman
+T76	Character 5662 5669	the man
+T77	Character 5683 5692	the woman
+T78	Character 5742 5751	the woman
+T79	Character 5771 5778	the man
+T80	Character 5829 5837	the crow
+T81	Character 5903 5911	the crow
+T82	Character 5922 5928	apollo
+T83	Character 5980 5987	mercury
+T84	Says 1075 1080	asked
+T85	Says 2641 2645	said
+T86	Says 2797 2803	saying
+T87	Says 2823 2834	made answer
+T88	Says 2854 2858	said
+T89	Says 3113 3122	addressed
+T90	Says 3139 3146	replied
+T91	Says 3168 3172	said
+T92	Says 3325 3329	said
+T93	Says 3357 3361	said
+T94	Says 3395 3399	said
+T95	Says 3421 3425	said
+T96	Says 3635 3639	said
+T97	Says 3671 3675	said
+T98	Says 3742 3750	inquired
+T99	Says 3812 3819	replied
+T100	Says 3834 3838	said
+T101	Says 3895 3899	said
+T102	Says 3952 3956	said
+T103	Says 3978 3982	said
+T104	Says 4589 4594	quoth
+T105	Says 4752 4757	quoth
+T106	Says 5102 5106	said
+T107	Says 5564 5573	addressed
+T108	Says 5595 5602	replied
+T109	Says 5670 5678	inquired
+T110	Says 5752 5759	replied
+T111	Says 5779 5783	said
+T112	Place 75 82	passage
+T113	Place 133 146	foreign lands
+T114	Place 182 197	his own country
+T115	Place 258 278	the different places
+T116	Place 326 339	the mountains
+T117	Place 381 391	the forest
+T118	Place 596 602	a cave
+T119	Place 911 917	a cage
+T120	Place 937 945	a window
+T121	Place 1049 1057	the bars
+T122	Place 1061 1069	the cage
+T123	Place 1409 1415	a mill
+T124	Place 1440 1446	battle
+T125	Place 1693 1699	a tree
+T126	Place 1725 1728	one
+T127	Place 1732 1744	the branches
+T128	Place 1876 1884	the back
+T129	Place 1888 1895	a Sheep
+T130	Place 2105 2114	the stage
+T131	Place 2465 2471	a cave
+T132	Place 2573 2581	the cave
+T133	Place 2720 2730	the ground
+T134	Place 2908 2916	mountain
+T135	Place 3063 3071	a stream
+T136	Place 3298 3307	the mouth
+T137	Place 3311 3319	its lair
+T138	Place 3472 3488	the satyr's home
+T139	Place 4023 4030	the top
+T140	Place 4034 4041	Olympus
+T141	Place 4065 4073	a meadow
+T142	Place 4100 4112	the mountain
+T143	Place 4137 4146	a village
+T144	Place 4163 4173	the forest
+T145	Place 4273 4285	a rural road
+T146	Place 4311 4320	Acropolis
+T147	Place 4347 4358	the stables
+T148	Place 4442 4452	the forest
+T149	Place 4492 4504	the farmyard
+T150	Place 5151 5164	foreign lands
+T151	Place 5200 5215	his own country
+T152	Place 5281 5301	the different places
+T153	Place 5533 5543	some reeds
+T154	Spatial_Signal 20 24	with
+T155	Spatial_Signal 39 41	to
+T156	Spatial_Signal 58 65	through
+T157	Spatial_Signal 93 95	to
+T158	Spatial_Signal 130 132	in
+T159	Spatial_Signal 166 168	on
+T160	Spatial_Signal 179 181	to
+T161	Spatial_Signal 199 201	of
+T162	Spatial_Signal 255 257	in
+T163	Spatial_Signal 323 325	to
+T164	Spatial_Signal 340 342	in
+T165	Spatial_Signal 350 352	of
+T166	Spatial_Signal 378 380	of
+T167	Spatial_Signal 397 399	at
+T168	Spatial_Signal 446 448	to
+T169	Spatial_Signal 491 493	to
+T170	Spatial_Signal 497 503	before
+T171	Spatial_Signal 525 527	by
+T172	Spatial_Signal 550 552	to
+T173	Spatial_Signal 576 580	from
+T174	Spatial_Signal 593 595	in
+T175	Spatial_Signal 692 694	to
+T176	Spatial_Signal 701 705	with
+T177	Spatial_Signal 770 772	of
+T178	Spatial_Signal 795 797	on
+T179	Spatial_Signal 808 810	of
+T180	Spatial_Signal 835 841	around
+T181	Spatial_Signal 846 848	to
+T182	Spatial_Signal 908 910	in
+T183	Spatial_Signal 929 936	outside
+T184	Spatial_Signal 961 963	of
+T185	Spatial_Signal 972 974	at
+T186	Spatial_Signal 1046 1048	to
+T187	Spatial_Signal 1058 1060	of
+T188	Spatial_Signal 1109 1111	by
+T189	Spatial_Signal 1130 1132	at
+T190	Spatial_Signal 1191 1193	at
+T191	Spatial_Signal 1279 1281	of
+T192	Spatial_Signal 1329 1331	to
+T193	Spatial_Signal 1381 1383	of
+T194	Spatial_Signal 1398 1400	to
+T195	Spatial_Signal 1406 1408	in
+T196	Spatial_Signal 1424 1426	of
+T197	Spatial_Signal 1433 1436	out
+T198	Spatial_Signal 1437 1439	to
+T199	Spatial_Signal 1467 1469	of
+T200	Spatial_Signal 1514 1516	of
+T201	Spatial_Signal 1562 1564	of
+T202	Spatial_Signal 1580 1582	by
+T203	Spatial_Signal 1618 1620	of
+T204	Spatial_Signal 1688 1692	into
+T205	Spatial_Signal 1722 1724	on
+T206	Spatial_Signal 1729 1731	of
+T207	Spatial_Signal 1752 1754	as
+T208	Spatial_Signal 1762 1764	as
+T209	Spatial_Signal 1797 1802	about
+T210	Spatial_Signal 1817 1821	with
+T211	Spatial_Signal 1873 1875	on
+T212	Spatial_Signal 1885 1887	of
+T213	Spatial_Signal 1931 1933	to
+T214	Spatial_Signal 1974 1978	with
+T215	Spatial_Signal 2000 2002	on
+T216	Spatial_Signal 2033 2035	on
+T217	Spatial_Signal 2051 2055	from
+T218	Spatial_Signal 2077 2079	of
+T219	Spatial_Signal 2100 2104	upon
+T220	Spatial_Signal 2128 2130	at
+T221	Spatial_Signal 2141 2143	of
+T222	Spatial_Signal 2186 2188	as
+T223	Spatial_Signal 2223 2225	of
+T224	Spatial_Signal 2242 2245	off
+T225	Spatial_Signal 2295 2299	with
+T226	Spatial_Signal 2312 2315	for
+T227	Spatial_Signal 2358 2360	to
+T228	Spatial_Signal 2401 2403	of
+T229	Spatial_Signal 2437 2439	by
+T230	Spatial_Signal 2462 2464	in
+T231	Spatial_Signal 2482 2484	to
+T232	Spatial_Signal 2520 2522	on
+T233	Spatial_Signal 2566 2572	within
+T234	Spatial_Signal 2612 2614	to
+T235	Spatial_Signal 2674 2678	with
+T236	Spatial_Signal 2699 2703	from
+T237	Spatial_Signal 2717 2719	on
+T238	Spatial_Signal 2731 2733	at
+T239	Spatial_Signal 2744 2746	of
+T240	Spatial_Signal 2785 2787	to
+T241	Spatial_Signal 2859 2863	with
+T242	Spatial_Signal 2901 2905	down
+T243	Spatial_Signal 2934 2936	in
+T244	Spatial_Signal 2959 2961	of
+T245	Spatial_Signal 2979 2982	for
+T246	Spatial_Signal 3033 3035	by
+T247	Spatial_Signal 3056 3062	across
+T248	Spatial_Signal 3081 3086	among
+T249	Spatial_Signal 3182 3184	as
+T250	Spatial_Signal 3236 3238	to
+T251	Spatial_Signal 3250 3254	with
+T252	Spatial_Signal 3295 3297	to
+T253	Spatial_Signal 3308 3310	of
+T254	Spatial_Signal 3330 3332	to
+T255	Spatial_Signal 3469 3471	at
+T256	Spatial_Signal 3528 3530	of
+T257	Spatial_Signal 3540 3546	before
+T258	Spatial_Signal 3586 3588	to
+T259	Spatial_Signal 3767 3769	on
+T260	Spatial_Signal 3869 3876	beneath
+T261	Spatial_Signal 3900 3902	to
+T262	Spatial_Signal 3949 3951	by
+T263	Spatial_Signal 4018 4022	from
+T264	Spatial_Signal 4031 4033	of
+T265	Spatial_Signal 4062 4064	in
+T266	Spatial_Signal 4097 4099	up
+T267	Spatial_Signal 4160 4162	of
+T268	Spatial_Signal 4198 4200	on
+T269	Spatial_Signal 4267 4272	along
+T270	Spatial_Signal 4302 4310	to visit
+T271	Spatial_Signal 4344 4346	to
+T272	Spatial_Signal 4359 4361	to
+T273	Spatial_Signal 4366 4368	to
+T274	Spatial_Signal 4380 4382	of
+T275	Spatial_Signal 4431 4433	to
+T276	Spatial_Signal 4439 4441	in
+T277	Spatial_Signal 4480 4482	up
+T278	Spatial_Signal 4487 4491	down
+T279	Spatial_Signal 4505 4510	among
+T280	Spatial_Signal 4632 4636	from
+T281	Spatial_Signal 4637 4644	beneath
+T282	Spatial_Signal 4677 4679	to
+T283	Spatial_Signal 4700 4702	by
+T284	Spatial_Signal 4729 4731	in
+T285	Spatial_Signal 4795 4797	in
+T286	Spatial_Signal 4813 4815	to
+T287	Spatial_Signal 4823 4825	to
+T288	Spatial_Signal 4852 4854	to
+T289	Spatial_Signal 4879 4881	at
+T290	Spatial_Signal 4911 4915	from
+T291	Spatial_Signal 4984 4986	in
+T292	Spatial_Signal 5006 5008	by
+T293	Spatial_Signal 5042 5044	to
+T294	Spatial_Signal 5064 5066	to
+T295	Spatial_Signal 5107 5109	to
+T296	Spatial_Signal 5148 5150	in
+T297	Spatial_Signal 5184 5186	on
+T298	Spatial_Signal 5197 5199	to
+T299	Spatial_Signal 5217 5219	of
+T300	Spatial_Signal 5278 5280	in
+T301	Spatial_Signal 5331 5334	off
+T302	Spatial_Signal 5391 5395	with
+T303	Spatial_Signal 5408 5411	for
+T304	Spatial_Signal 5454 5456	to
+T305	Spatial_Signal 5497 5499	of
+T306	Spatial_Signal 5527 5532	among
+T307	Spatial_Signal 5701 5703	on
+T308	Spatial_Signal 5812 5816	from
+T309	Spatial_Signal 5891 5893	in
+T310	Spatial_Signal 5919 5921	by
+T311	Spatial_Signal 5955 5957	to
+T312	Spatial_Signal 5977 5979	to
+T313	Character_Line 2647 2656	<cline1>.
+T314	Character_Line 2805 2814	<cline1>.
+T315	Character_Line 2836 2845	<cline2>.
+T316	Character_Line 2872 2881	<cline1>.
+T317	Character_Line 3124 3133	<cline1>.
+T318	Character_Line 3148 3157	<cline2>.
+T319	Character_Line 3158 3167	<cline5>.
+T320	Character_Line 3337 3346	<cline1>.
+T321	Character_Line 3347 3356	<cline2>.
+T322	Character_Line 3375 3384	<cline3>.
+T323	Character_Line 3385 3394	<cline1>.
+T324	Character_Line 3411 3420	<cline2>.
+T325	Character_Line 3435 3444	<cline3>.
+T326	Character_Line 3625 3634	<cline4>.
+T327	Character_Line 3651 3660	<cline5>.
+T328	Character_Line 3661 3670	<cline6>.
+T329	Character_Line 3687 3696	<cline7>.
+T330	Character_Line 3821 3830	<cline1>.
+T331	Character_Line 3840 3849	<cline2>.
+T332	Character_Line 3912 3921	<cline1>.
+T333	Character_Line 3958 3967	<cline1>.
+T334	Character_Line 3968 3977	<cline5>.
+T335	Character_Line 4579 4588	<cline1>.
+T336	Character_Line 4599 4608	<cline2>.
+T337	Character_Line 4742 4751	<cline3>.
+T338	Character_Line 4771 4780	<cline4>.
+T339	Character_Line 5115 5124	<cline1>.
+T340	Character_Line 5575 5584	<cline1>.
+T341	Character_Line 5604 5613	<cline2>.
+T342	Character_Line 5761 5770	<cline1>.
+T343	Character_Line 5785 5794	<cline2>.
+E1	Spatial_Signal:T156 Trajector:T1 Landmark:T112
+E2	Says:T85 WHO:T29 WHAT:T313
+E3	Says:T86 WHO:T31 WHAT:T314
+E4	Says:T87 WHO:T33 WHAT:T315
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/demo/data/demo/examples_processed_processed.ann	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,551 @@
+T1	Character 0 6	A BULL
+T2	Character 107 112	A MAN
+T3	Character 295 317	A VERY SKILLFUL BOWMAN
+T4	Character 367 377	the beasts
+T5	Character 416 424	The Lion
+T6	Character 457 469	A young Calf
+T7	Character 559 565	A BULL
+T8	Character 647 653	A BULL
+T9	Character 717 728	The Lioness
+T10	Character 784 786	An
+T11	Character 787 794	old man
+T12	Character 880 894	A singing bird
+T13	Character 1025 1030	a Bat
+T14	Character 1145 1148	MAN
+T15	Character 1346 1355	A CHARGER
+T16	Character 1448 1454	A CROW
+T17	Character 1470 1479	the Raven
+T18	Character 1565 1568	men
+T19	Character 1671 1679	the Crow
+T20	Character 1776 1787	The Serpent
+T21	Character 1839 1857	A TROUBLESOME CROW
+T22	Character 1897 1905	A PRINCE
+T23	Character 2016 2026	a courtier
+T24	Character 2116 2127	The Monkeys
+T25	Character 2404 2416	the audience
+T26	Character 2418 2423	A DOE
+T27	Character 2493 2501	The Lion
+T28	Character 2553 2556	she
+T29	Character 2623 2640	The expiring lion
+T30	Character 2657 2663	A lion
+T31	Character 2754 2762	The oaks
+T32	Character 2788 2795	jupiter
+T33	Character 2815 2822	jupiter
+T34	Character 2846 2853	The oak
+T35	Character 2882 2896	The woodcutter
+T36	Character 3003 3019	A very large oak
+T37	Character 3173 3181	the wolf
+T38	Character 3209 3219	the farmer
+T39	Character 3362 3373	the serpent
+T40	Character 3400 3409	the satyr
+T41	Character 3426 3433	the man
+T42	Character 3456 3460	they
+T43	Character 3499 3508	the satyr
+T44	Character 3561 3568	the man
+T45	Character 3640 3649	the satyr
+T46	Character 3676 3685	the satyr
+T47	Character 3850 3858	The mule
+T48	Character 3926 3938	a countryman
+T49	Character 3983 3988	their
+T50	Character 3989 3995	father
+T51	Character 3997 4004	Jupiter
+T52	Character 4043 4049	A bull
+T53	Character 4075 4088	A townsperson
+T54	Character 4114 4120	A wolf
+T55	Character 4148 4159	The animals
+T56	Character 4230 4237	Two men
+T57	Character 4242 4250	two sons
+T58	Character 4287 4296	A pilgrim
+T59	Character 4322 4330	A farmer
+T60	Character 4391 4404	A bald knight
+T61	Character 4454 4460	A cock
+T62	Character 4758 4769	master cock
+T63	Character 4781 4787	A crow
+T64	Character 4816 4822	apollo
+T65	Character 5009 5015	apollo
+T66	Character 5067 5074	mercury
+T67	Character 5076 5083	Mercury
+T68	Character 5125 5130	A MAN
+T69	Character 5256 5263	the man
+T70	Character 5372 5383	the monkeys
+T71	Character 5500 5512	the audience
+T72	Character 5514 5521	THE OAK
+T73	Character 5551 5558	the oak
+T74	Character 5585 5594	the reeds
+T75	Character 5633 5642	the woman
+T76	Character 5662 5669	the man
+T77	Character 5683 5692	the woman
+T78	Character 5742 5751	the woman
+T79	Character 5771 5778	the man
+T80	Character 5829 5837	the crow
+T81	Character 5903 5911	the crow
+T82	Character 5922 5928	apollo
+T83	Character 5980 5987	mercury
+T84	Says 1075 1080	asked
+T85	Says 2641 2645	said
+T86	Says 2797 2803	saying
+T87	Says 2823 2834	made answer
+T88	Says 2854 2858	said
+T89	Says 3113 3122	addressed
+T90	Says 3139 3146	replied
+T91	Says 3168 3172	said
+T92	Says 3325 3329	said
+T93	Says 3357 3361	said
+T94	Says 3395 3399	said
+T95	Says 3421 3425	said
+T96	Says 3635 3639	said
+T97	Says 3671 3675	said
+T98	Says 3742 3750	inquired
+T99	Says 3812 3819	replied
+T100	Says 3834 3838	said
+T101	Says 3895 3899	said
+T102	Says 3952 3956	said
+T103	Says 3978 3982	said
+T104	Says 4589 4594	quoth
+T105	Says 4752 4757	quoth
+T106	Says 5102 5106	said
+T107	Says 5564 5573	addressed
+T108	Says 5595 5602	replied
+T109	Says 5670 5678	inquired
+T110	Says 5752 5759	replied
+T111	Says 5779 5783	said
+T112	Place 133 146	foreign lands
+T113	Place 182 197	his own country
+T114	Place 258 278	the different places
+T115	Place 326 339	the mountains
+T116	Place 381 391	the forest
+T117	Place 596 602	a cave
+T118	Place 911 917	a cage
+T119	Place 937 945	a window
+T120	Place 1049 1057	the bars
+T121	Place 1061 1069	the cage
+T122	Place 1409 1415	a mill
+T123	Place 1440 1446	battle
+T124	Place 1693 1699	a tree
+T125	Place 1725 1728	one
+T126	Place 1732 1744	the branches
+T127	Place 1876 1884	the back
+T128	Place 1888 1895	a Sheep
+T129	Place 2105 2114	the stage
+T130	Place 2465 2471	a cave
+T131	Place 2573 2581	the cave
+T132	Place 2720 2730	the ground
+T133	Place 2908 2916	mountain
+T134	Place 3063 3071	a stream
+T135	Place 3298 3307	the mouth
+T136	Place 3311 3319	its lair
+T137	Place 3472 3488	the satyr's home
+T138	Place 4023 4030	the top
+T139	Place 4034 4041	Olympus
+T140	Place 4065 4073	a meadow
+T141	Place 4100 4112	the mountain
+T142	Place 4137 4146	a village
+T143	Place 4163 4173	the forest
+T144	Place 4273 4285	a rural road
+T145	Place 4311 4320	Acropolis
+T146	Place 4347 4358	the stables
+T147	Place 4442 4452	the forest
+T148	Place 4492 4504	the farmyard
+T149	Place 5151 5164	foreign lands
+T150	Place 5200 5215	his own country
+T151	Place 5281 5301	the different places
+T152	Place 5533 5543	some reeds
+T153	Spatial_Signal 20 24	with
+T154	Spatial_Signal 39 41	to
+T155	Spatial_Signal 58 65	through
+T156	Spatial_Signal 93 95	to
+T157	Spatial_Signal 130 132	in
+T158	Spatial_Signal 166 168	on
+T159	Spatial_Signal 179 181	to
+T160	Spatial_Signal 199 201	of
+T161	Spatial_Signal 255 257	in
+T162	Spatial_Signal 323 325	to
+T163	Spatial_Signal 340 342	in
+T164	Spatial_Signal 350 352	of
+T165	Spatial_Signal 378 380	of
+T166	Spatial_Signal 397 399	at
+T167	Spatial_Signal 446 448	to
+T168	Spatial_Signal 491 493	to
+T169	Spatial_Signal 497 503	before
+T170	Spatial_Signal 525 527	by
+T171	Spatial_Signal 550 552	to
+T172	Spatial_Signal 576 580	from
+T173	Spatial_Signal 593 595	in
+T174	Spatial_Signal 692 694	to
+T175	Spatial_Signal 701 705	with
+T176	Spatial_Signal 770 772	of
+T177	Spatial_Signal 795 797	on
+T178	Spatial_Signal 808 810	of
+T179	Spatial_Signal 835 841	around
+T180	Spatial_Signal 846 848	to
+T181	Spatial_Signal 908 910	in
+T182	Spatial_Signal 929 936	outside
+T183	Spatial_Signal 961 963	of
+T184	Spatial_Signal 972 974	at
+T185	Spatial_Signal 1046 1048	to
+T186	Spatial_Signal 1058 1060	of
+T187	Spatial_Signal 1109 1111	by
+T188	Spatial_Signal 1130 1132	at
+T189	Spatial_Signal 1191 1193	at
+T190	Spatial_Signal 1279 1281	of
+T191	Spatial_Signal 1329 1331	to
+T192	Spatial_Signal 1381 1383	of
+T193	Spatial_Signal 1398 1400	to
+T194	Spatial_Signal 1406 1408	in
+T195	Spatial_Signal 1424 1426	of
+T196	Spatial_Signal 1433 1436	out
+T197	Spatial_Signal 1437 1439	to
+T198	Spatial_Signal 1467 1469	of
+T199	Spatial_Signal 1514 1516	of
+T200	Spatial_Signal 1562 1564	of
+T201	Spatial_Signal 1580 1582	by
+T202	Spatial_Signal 1618 1620	of
+T203	Spatial_Signal 1688 1692	into
+T204	Spatial_Signal 1722 1724	on
+T205	Spatial_Signal 1729 1731	of
+T206	Spatial_Signal 1752 1754	as
+T207	Spatial_Signal 1762 1764	as
+T208	Spatial_Signal 1797 1802	about
+T209	Spatial_Signal 1817 1821	with
+T210	Spatial_Signal 1873 1875	on
+T211	Spatial_Signal 1885 1887	of
+T212	Spatial_Signal 1931 1933	to
+T213	Spatial_Signal 1974 1978	with
+T214	Spatial_Signal 2000 2002	on
+T215	Spatial_Signal 2033 2035	on
+T216	Spatial_Signal 2051 2055	from
+T217	Spatial_Signal 2077 2079	of
+T218	Spatial_Signal 2100 2104	upon
+T219	Spatial_Signal 2128 2130	at
+T220	Spatial_Signal 2141 2143	of
+T221	Spatial_Signal 2186 2188	as
+T222	Spatial_Signal 2223 2225	of
+T223	Spatial_Signal 2242 2245	off
+T224	Spatial_Signal 2295 2299	with
+T225	Spatial_Signal 2312 2315	for
+T226	Spatial_Signal 2358 2360	to
+T227	Spatial_Signal 2401 2403	of
+T228	Spatial_Signal 2437 2439	by
+T229	Spatial_Signal 2462 2464	in
+T230	Spatial_Signal 2482 2484	to
+T231	Spatial_Signal 2520 2522	on
+T232	Spatial_Signal 2566 2572	within
+T233	Spatial_Signal 2612 2614	to
+T234	Spatial_Signal 2674 2678	with
+T235	Spatial_Signal 2699 2703	from
+T236	Spatial_Signal 2717 2719	on
+T237	Spatial_Signal 2731 2733	at
+T238	Spatial_Signal 2744 2746	of
+T239	Spatial_Signal 2785 2787	to
+T240	Spatial_Signal 2859 2863	with
+T241	Spatial_Signal 2901 2905	down
+T242	Spatial_Signal 2934 2936	in
+T243	Spatial_Signal 2959 2961	of
+T244	Spatial_Signal 2979 2982	for
+T245	Spatial_Signal 3033 3035	by
+T246	Spatial_Signal 3056 3062	across
+T247	Spatial_Signal 3081 3086	among
+T248	Spatial_Signal 3182 3184	as
+T249	Spatial_Signal 3236 3238	to
+T250	Spatial_Signal 3250 3254	with
+T251	Spatial_Signal 3295 3297	to
+T252	Spatial_Signal 3308 3310	of
+T253	Spatial_Signal 3330 3332	to
+T254	Spatial_Signal 3469 3471	at
+T255	Spatial_Signal 3528 3530	of
+T256	Spatial_Signal 3540 3546	before
+T257	Spatial_Signal 3586 3588	to
+T258	Spatial_Signal 3767 3769	on
+T259	Spatial_Signal 3869 3876	beneath
+T260	Spatial_Signal 3900 3902	to
+T261	Spatial_Signal 3949 3951	by
+T262	Spatial_Signal 4018 4022	from
+T263	Spatial_Signal 4031 4033	of
+T264	Spatial_Signal 4062 4064	in
+T265	Spatial_Signal 4097 4099	up
+T266	Spatial_Signal 4160 4162	of
+T267	Spatial_Signal 4198 4200	on
+T268	Spatial_Signal 4267 4272	along
+T269	Spatial_Signal 4302 4310	to visit
+T270	Spatial_Signal 4344 4346	to
+T271	Spatial_Signal 4359 4361	to
+T272	Spatial_Signal 4366 4368	to
+T273	Spatial_Signal 4380 4382	of
+T274	Spatial_Signal 4431 4433	to
+T275	Spatial_Signal 4439 4441	in
+T276	Spatial_Signal 4480 4482	up
+T277	Spatial_Signal 4487 4491	down
+T278	Spatial_Signal 4505 4510	among
+T279	Spatial_Signal 4632 4636	from
+T280	Spatial_Signal 4637 4644	beneath
+T281	Spatial_Signal 4677 4679	to
+T282	Spatial_Signal 4700 4702	by
+T283	Spatial_Signal 4729 4731	in
+T284	Spatial_Signal 4795 4797	in
+T285	Spatial_Signal 4813 4815	to
+T286	Spatial_Signal 4823 4825	to
+T287	Spatial_Signal 4852 4854	to
+T288	Spatial_Signal 4879 4881	at
+T289	Spatial_Signal 4911 4915	from
+T290	Spatial_Signal 4984 4986	in
+T291	Spatial_Signal 5006 5008	by
+T292	Spatial_Signal 5042 5044	to
+T293	Spatial_Signal 5064 5066	to
+T294	Spatial_Signal 5107 5109	to
+T295	Spatial_Signal 5148 5150	in
+T296	Spatial_Signal 5184 5186	on
+T297	Spatial_Signal 5197 5199	to
+T298	Spatial_Signal 5217 5219	of
+T299	Spatial_Signal 5278 5280	in
+T300	Spatial_Signal 5331 5334	off
+T301	Spatial_Signal 5391 5395	with
+T302	Spatial_Signal 5408 5411	for
+T303	Spatial_Signal 5454 5456	to
+T304	Spatial_Signal 5497 5499	of
+T305	Spatial_Signal 5527 5532	among
+T306	Spatial_Signal 5701 5703	on
+T307	Spatial_Signal 5812 5816	from
+T308	Spatial_Signal 5891 5893	in
+T309	Spatial_Signal 5919 5921	by
+T310	Spatial_Signal 5955 5957	to
+T311	Spatial_Signal 5977 5979	to
+T312	Character_Line 2647 2656	<cline1>.
+T313	Character_Line 2805 2814	<cline1>.
+T314	Character_Line 2836 2845	<cline2>.
+T315	Character_Line 2872 2881	<cline1>.
+T316	Character_Line 3124 3133	<cline1>.
+T317	Character_Line 3148 3157	<cline2>.
+T318	Character_Line 3158 3167	<cline5>.
+T319	Character_Line 3337 3346	<cline1>.
+T320	Character_Line 3347 3356	<cline2>.
+T321	Character_Line 3375 3384	<cline3>.
+T322	Character_Line 3385 3394	<cline1>.
+T323	Character_Line 3411 3420	<cline2>.
+T324	Character_Line 3435 3444	<cline3>.
+T325	Character_Line 3625 3634	<cline4>.
+T326	Character_Line 3651 3660	<cline5>.
+T327	Character_Line 3661 3670	<cline6>.
+T328	Character_Line 3687 3696	<cline7>.
+T329	Character_Line 3821 3830	<cline1>.
+T330	Character_Line 3840 3849	<cline2>.
+T331	Character_Line 3912 3921	<cline1>.
+T332	Character_Line 3958 3967	<cline1>.
+T333	Character_Line 3968 3977	<cline5>.
+T334	Character_Line 4579 4588	<cline1>.
+T335	Character_Line 4599 4608	<cline2>.
+T336	Character_Line 4742 4751	<cline3>.
+T337	Character_Line 4771 4780	<cline4>.
+T338	Character_Line 5115 5124	<cline1>.
+T339	Character_Line 5575 5584	<cline1>.
+T340	Character_Line 5604 5613	<cline2>.
+T341	Character_Line 5761 5770	<cline1>.
+T342	Character_Line 5785 5794	<cline2>.
+E1	Spatial_Signal:T157 Trajector:T2 Landmark:T112
+E2	Spatial_Signal:T159 Trajector:T2 Landmark:T113
+E3	Spatial_Signal:T161 Trajector:T2 Landmark:T112
+E4	Spatial_Signal:T162 Trajector:T3 Landmark:T115
+E5	Spatial_Signal:T165 Trajector:T4 Landmark:T116
+E6	Spatial_Signal:T172 Trajector:T7 Landmark:T117
+E7	Spatial_Signal:T173 Trajector:T7 Landmark:T117
+E8	Spatial_Signal:T185 Trajector:T13 Landmark:T120
+E9	Spatial_Signal:T186 Trajector:T13 Landmark:T121
+E10	Spatial_Signal:T192 Trajector:T15 Landmark:T122
+E11	Spatial_Signal:T193 Trajector:T15 Landmark:T122
+E12	Spatial_Signal:T193 Trajector:T15 Landmark:T123
+E13	Spatial_Signal:T194 Trajector:T15 Landmark:T122
+E14	Spatial_Signal:T196 Trajector:T15 Landmark:T123
+E15	Spatial_Signal:T197 Trajector:T15 Landmark:T123
+E16	Spatial_Signal:T203 Trajector:T19 Landmark:T124
+E17	Spatial_Signal:T204 Trajector:T19 Landmark:T125
+E18	Spatial_Signal:T205 Trajector:T19 Landmark:T126
+E19	Spatial_Signal:T210 Trajector:T21 Landmark:T127
+E20	Spatial_Signal:T211 Trajector:T21 Landmark:T128
+E21	Spatial_Signal:T215 Trajector:T23 Landmark:T129
+E22	Spatial_Signal:T217 Trajector:T23 Landmark:T129
+E23	Spatial_Signal:T218 Trajector:T23 Landmark:T129
+E24	Spatial_Signal:T228 Trajector:T26 Landmark:T130
+E25	Spatial_Signal:T229 Trajector:T26 Landmark:T130
+E26	Spatial_Signal:T232 Trajector:T28 Landmark:T131
+E27	Spatial_Signal:T236 Trajector:T30 Landmark:T132
+E28	Spatial_Signal:T241 Trajector:T35 Landmark:T133
+E29	Spatial_Signal:T246 Trajector:T36 Landmark:T134
+E30	Spatial_Signal:T249 Trajector:T37 Landmark:T136
+E31	Spatial_Signal:T249 Trajector:T38 Landmark:T135
+E32	Spatial_Signal:T249 Trajector:T38 Landmark:T136
+E33	Spatial_Signal:T250 Trajector:T38 Landmark:T136
+E34	Spatial_Signal:T251 Trajector:T37 Landmark:T135
+E35	Spatial_Signal:T251 Trajector:T38 Landmark:T135
+E36	Spatial_Signal:T252 Trajector:T37 Landmark:T136
+E37	Spatial_Signal:T252 Trajector:T38 Landmark:T136
+E38	Spatial_Signal:T254 Trajector:T42 Landmark:T137
+E39	Spatial_Signal:T262 Trajector:T51 Landmark:T138
+E40	Spatial_Signal:T263 Trajector:T51 Landmark:T139
+E41	Spatial_Signal:T264 Trajector:T52 Landmark:T140
+E42	Spatial_Signal:T265 Trajector:T53 Landmark:T141
+E43	Spatial_Signal:T266 Trajector:T55 Landmark:T143
+E44	Spatial_Signal:T269 Trajector:T58 Landmark:T145
+E45	Spatial_Signal:T270 Trajector:T59 Landmark:T146
+E46	Spatial_Signal:T271 Trajector:T59 Landmark:T146
+E47	Spatial_Signal:T274 Trajector:T60 Landmark:T147
+E48	Spatial_Signal:T275 Trajector:T60 Landmark:T147
+E49	Spatial_Signal:T276 Trajector:T61 Landmark:T148
+E50	Spatial_Signal:T277 Trajector:T61 Landmark:T148
+E51	Spatial_Signal:T295 Trajector:T68 Landmark:T149
+E52	Spatial_Signal:T295 Trajector:T69 Landmark:T151
+E53	Spatial_Signal:T297 Trajector:T68 Landmark:T150
+E54	Spatial_Signal:T299 Trajector:T68 Landmark:T149
+E55	Spatial_Signal:T299 Trajector:T69 Landmark:T151
+E56	Spatial_Signal:T305 Trajector:T72 Landmark:T152
+E57	Says:T85 WHO:T29 WHAT:T312
+E58	Says:T85 WHO:T30 WHAT:T312
+E59	Says:T86 WHO:T31 WHAT:T313
+E60	Says:T86 WHO:T32 WHAT:T313
+E61	Says:T87 WHO:T32 WHAT:T313
+E62	Says:T87 WHO:T33 WHAT:T313
+E63	Says:T88 WHO:T34 WHAT:T315
+E64	Says:T91 WHO:T37 WHAT:T316
+E65	Says:T91 WHO:T37 WHAT:T317
+E66	Says:T91 WHO:T37 WHAT:T318
+E67	Says:T91 WHO:T37 WHAT:T319
+E68	Says:T91 WHO:T37 WHAT:T320
+E69	Says:T91 WHO:T37 WHAT:T321
+E70	Says:T91 WHO:T37 WHAT:T322
+E71	Says:T91 WHO:T38 WHAT:T316
+E72	Says:T91 WHO:T38 WHAT:T317
+E73	Says:T91 WHO:T38 WHAT:T318
+E74	Says:T91 WHO:T38 WHAT:T319
+E75	Says:T91 WHO:T38 WHAT:T320
+E76	Says:T91 WHO:T38 WHAT:T321
+E77	Says:T91 WHO:T38 WHAT:T322
+E78	Says:T91 WHO:T39 WHAT:T316
+E79	Says:T91 WHO:T39 WHAT:T317
+E80	Says:T91 WHO:T39 WHAT:T318
+E81	Says:T91 WHO:T39 WHAT:T319
+E82	Says:T91 WHO:T39 WHAT:T320
+E83	Says:T91 WHO:T39 WHAT:T321
+E84	Says:T91 WHO:T39 WHAT:T322
+E85	Says:T91 WHO:T40 WHAT:T316
+E86	Says:T91 WHO:T40 WHAT:T317
+E87	Says:T91 WHO:T40 WHAT:T318
+E88	Says:T91 WHO:T40 WHAT:T319
+E89	Says:T91 WHO:T40 WHAT:T320
+E90	Says:T91 WHO:T40 WHAT:T321
+E91	Says:T91 WHO:T40 WHAT:T322
+E92	Says:T92 WHO:T37 WHAT:T316
+E93	Says:T92 WHO:T37 WHAT:T317
+E94	Says:T92 WHO:T37 WHAT:T318
+E95	Says:T92 WHO:T37 WHAT:T319
+E96	Says:T92 WHO:T37 WHAT:T320
+E97	Says:T92 WHO:T37 WHAT:T321
+E98	Says:T92 WHO:T37 WHAT:T322
+E99	Says:T92 WHO:T38 WHAT:T316
+E100	Says:T92 WHO:T38 WHAT:T317
+E101	Says:T92 WHO:T38 WHAT:T318
+E102	Says:T92 WHO:T38 WHAT:T319
+E103	Says:T92 WHO:T38 WHAT:T320
+E104	Says:T92 WHO:T38 WHAT:T321
+E105	Says:T92 WHO:T38 WHAT:T322
+E106	Says:T92 WHO:T39 WHAT:T316
+E107	Says:T92 WHO:T39 WHAT:T317
+E108	Says:T92 WHO:T39 WHAT:T318
+E109	Says:T92 WHO:T39 WHAT:T319
+E110	Says:T92 WHO:T39 WHAT:T320
+E111	Says:T92 WHO:T39 WHAT:T321
+E112	Says:T92 WHO:T39 WHAT:T322
+E113	Says:T92 WHO:T40 WHAT:T316
+E114	Says:T92 WHO:T40 WHAT:T317
+E115	Says:T92 WHO:T40 WHAT:T318
+E116	Says:T92 WHO:T40 WHAT:T319
+E117	Says:T92 WHO:T40 WHAT:T320
+E118	Says:T92 WHO:T40 WHAT:T321
+E119	Says:T92 WHO:T40 WHAT:T322
+E120	Says:T93 WHO:T37 WHAT:T316
+E121	Says:T93 WHO:T37 WHAT:T317
+E122	Says:T93 WHO:T37 WHAT:T318
+E123	Says:T93 WHO:T37 WHAT:T319
+E124	Says:T93 WHO:T37 WHAT:T320
+E125	Says:T93 WHO:T37 WHAT:T321
+E126	Says:T93 WHO:T37 WHAT:T322
+E127	Says:T93 WHO:T38 WHAT:T316
+E128	Says:T93 WHO:T38 WHAT:T317
+E129	Says:T93 WHO:T38 WHAT:T318
+E130	Says:T93 WHO:T38 WHAT:T319
+E131	Says:T93 WHO:T38 WHAT:T320
+E132	Says:T93 WHO:T38 WHAT:T321
+E133	Says:T93 WHO:T38 WHAT:T322
+E134	Says:T93 WHO:T39 WHAT:T316
+E135	Says:T93 WHO:T39 WHAT:T317
+E136	Says:T93 WHO:T39 WHAT:T318
+E137	Says:T93 WHO:T39 WHAT:T319
+E138	Says:T93 WHO:T39 WHAT:T320
+E139	Says:T93 WHO:T39 WHAT:T321
+E140	Says:T93 WHO:T39 WHAT:T322
+E141	Says:T93 WHO:T40 WHAT:T316
+E142	Says:T93 WHO:T40 WHAT:T317
+E143	Says:T93 WHO:T40 WHAT:T318
+E144	Says:T93 WHO:T40 WHAT:T319
+E145	Says:T93 WHO:T40 WHAT:T320
+E146	Says:T93 WHO:T40 WHAT:T321
+E147	Says:T93 WHO:T40 WHAT:T322
+E148	Says:T94 WHO:T37 WHAT:T316
+E149	Says:T94 WHO:T37 WHAT:T317
+E150	Says:T94 WHO:T37 WHAT:T318
+E151	Says:T94 WHO:T37 WHAT:T319
+E152	Says:T94 WHO:T37 WHAT:T320
+E153	Says:T94 WHO:T37 WHAT:T321
+E154	Says:T94 WHO:T37 WHAT:T322
+E155	Says:T94 WHO:T38 WHAT:T316
+E156	Says:T94 WHO:T38 WHAT:T317
+E157	Says:T94 WHO:T38 WHAT:T318
+E158	Says:T94 WHO:T38 WHAT:T319
+E159	Says:T94 WHO:T38 WHAT:T320
+E160	Says:T94 WHO:T38 WHAT:T321
+E161	Says:T94 WHO:T38 WHAT:T322
+E162	Says:T94 WHO:T39 WHAT:T316
+E163	Says:T94 WHO:T39 WHAT:T317
+E164	Says:T94 WHO:T39 WHAT:T318
+E165	Says:T94 WHO:T39 WHAT:T319
+E166	Says:T94 WHO:T39 WHAT:T320
+E167	Says:T94 WHO:T39 WHAT:T321
+E168	Says:T94 WHO:T39 WHAT:T322
+E169	Says:T94 WHO:T40 WHAT:T316
+E170	Says:T94 WHO:T40 WHAT:T317
+E171	Says:T94 WHO:T40 WHAT:T318
+E172	Says:T94 WHO:T40 WHAT:T319
+E173	Says:T94 WHO:T40 WHAT:T320
+E174	Says:T94 WHO:T40 WHAT:T321
+E175	Says:T94 WHO:T40 WHAT:T322
+E176	Says:T95 WHO:T41 WHAT:T323
+E177	Says:T95 WHO:T41 WHAT:T324
+E178	Says:T96 WHO:T45 WHAT:T325
+E179	Says:T97 WHO:T46 WHAT:T326
+E180	Says:T97 WHO:T46 WHAT:T327
+E181	Says:T100 WHO:T47 WHAT:T329
+E182	Says:T100 WHO:T47 WHAT:T330
+E183	Says:T102 WHO:T49 WHAT:T331
+E184	Says:T102 WHO:T49 WHAT:T332
+E185	Says:T102 WHO:T49 WHAT:T333
+E186	Says:T102 WHO:T50 WHAT:T331
+E187	Says:T102 WHO:T50 WHAT:T332
+E188	Says:T102 WHO:T50 WHAT:T333
+E189	Says:T103 WHO:T49 WHAT:T331
+E190	Says:T103 WHO:T49 WHAT:T332
+E191	Says:T103 WHO:T49 WHAT:T333
+E192	Says:T103 WHO:T50 WHAT:T331
+E193	Says:T103 WHO:T50 WHAT:T332
+E194	Says:T103 WHO:T50 WHAT:T333
+E195	Says:T105 WHO:T62 WHAT:T336
+E196	Says:T105 WHO:T62 WHAT:T337
+E197	Says:T107 WHO:T73 WHAT:T339
+E198	Says:T107 WHO:T73 WHAT:T340
+E199	Says:T108 WHO:T74 WHAT:T339
+E200	Says:T108 WHO:T74 WHAT:T340
+E201	Says:T109 WHO:T76 WHAT:T341
+E202	Says:T109 WHO:T76 WHAT:T342
+E203	Says:T110 WHO:T77 WHAT:T341
+E204	Says:T110 WHO:T78 WHAT:T341
+E205	Says:T110 WHO:T78 WHAT:T342
+E206	Says:T111 WHO:T76 WHAT:T341
+E207	Says:T111 WHO:T76 WHAT:T342
+E208	Says:T111 WHO:T79 WHAT:T341
+E209	Says:T111 WHO:T79 WHAT:T342
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/demo/data/demo/examples_processed_processed.txt	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,67 @@
+A BULL was striving with all his might to squeeze himself through a narrow passage which led to his stall.
+A MAN who had traveled in foreign lands boasted very much, on returning to his own country, of the many wonderful and heroic feats he had performed in the different places he had visited.
+A VERY SKILLFUL BOWMAN went to the mountains in search of game, but all the beasts of the forest fled at his approach.  
+The Lion alone challenged him to combat.
+A young Calf came up, and offered to go before and show him the way by which he could manage to pass.
+A BULL, escaping from a Lion, hid in a cave which some shepherds had recently occupied.
+A BULL finding a lion's cub asleep gored him to death with his horns.
+The Lioness came up, and bitterly lamented the death of her whelp.
+An old man on the point of death summoned his sons around him to give them some parting advice.
+A singing bird was confined in a cage which hung outside a window, and had a way of singing at night when all other birds were asleep.
+One night a Bat came and clung to the bars of the cage, and asked the Bird why she was silent by day and sang only at night.
+WHEN MAN first saw the Camel, he was so frightened at his vast size that he ran away.
+After a time, perceiving the meekness and gentleness of the beast's temper, he summoned courage enough to approach him.
+A CHARGER, feeling the infirmities of age, was sent to work in a mill instead of going out to battle.
+A CROW was jealous of the Raven, because he was considered a bird of good omen and always attracted the attention of men, who noted by his flight the good or evil course of future events.
+Seeing some travelers approaching, the Crow flew up into a tree, and perching herself on one of the branches, cawed as loudly as she could.
+The Serpent, turning about, bit the Crow with a mortal wound. 
+A TROUBLESOME CROW seated herself on the back of a Sheep.
+A PRINCE had some Monkeys trained to dance.
+The spectacle was often repeated with great applause, till on one occasion a courtier, bent on mischief, took from his pocket a handful of nuts and threw them upon the stage.
+The Monkeys at the sight of the nuts forgot their dancing and became (as indeed they were) Monkeys instead of actors.
+Pulling off their masks and tearing their robes, they fought with one another for the nuts. The dancing spectacle thus came to an end amidst the laughter and ridicule of the audience.
+A DOE hard pressed by hunters sought refuge in a cave belonging to a Lion.
+The Lion concealed himself on seeing her approach, but when she was safe within the cave, sprang upon her and tore her to pieces.
+The expiring lion said, <cline1>.
+A lion, worn out with years and powerless from disease, lay on the ground at the point of death.
+The oaks presented a complaint to jupiter, saying, <cline1>. jupiter made answer: <cline2>.
+The oak said with a sigh, <cline1>.
+The woodcutter cut down a mountain oak and split it in pieces, making wedges of its own branches for dividing the trunk.
+A very large oak was uprooted by the wind and thrown across a stream.
+It fell among some reeds, which it thus addressed: <cline1>. they replied, <cline2>.
+<cline5>. said the wolf as he galloped away,
+Well, the farmer thought it best to make it up with the serpent, and brought food and honey to the mouth of its lair, and said to it: <cline1>. <cline2>. said the serpent; <cline3>.
+<cline1>. said the satyr.
+<cline2>. said the man, <cline3>.
+After this they arrived at the satyr's home, and soon the satyr put a smoking dish of porridge before him.
+But when the man raised his spoon to his mouth he began blowing upon it.
+<cline4>. said the satyr.
+<cline5>. <cline6>. said the satyr.
+<cline7>.
+After a short time she returned, and when he inquired how she had got on and how the servants had treated her, she replied, <cline1>. he said, <cline2>.
+The mule, groaning beneath his heavy burden, said to himself: <cline1>.
+But a countryman who stood by said: <cline1>.
+<cline5>. said their father.
+Jupiter was reigning from the top of Olympus.
+A bull was feeding in a meadow.
+A townsperson climped up the mountain.
+A wolf was terrorizing a village.
+The animals of the forest were having an argument on which animal was the wisest.
+Two men and two sons were travelling along a rural road.
+A pilgrim went to visit Acropolis.
+A farmer one day came to the stables to see to his beasts of burden.
+A bald knight, who wore a wig, went out to hunt in the forest.
+A cock was once strutting up and down the farmyard among the hens when suddenly he espied something shinning amid the straw.
+<cline1>. quoth he, <cline2>. and soon rooted it out from beneath the straw.
+What did it turn out to be but a pearl that by some chance had been lost in the yard?
+<cline3>. quoth master cock, <cline4>.
+A crow caught in a snare prayed to apollo to release him, making a vow to offer some frankincense at his shrine.
+But when rescued from his danger, he forgot his promise.
+Shortly afterwards, again caught in a snare, he passed by apollo and made the same promise to offer frankincense to mercury.
+Mercury soon appeared and said to him, <cline1>.
+A MAN who had traveled in foreign lands boasted very much, on returning to his own country, of the many wonderful and heroic feats the man had performed in the different places the man had visited.
+Pulling off their masks and tearing their robes, the monkeys fought with one another for the nuts. The dancing spectacle thus came to an end amidst the laughter and ridicule of the audience.
+THE OAK fell among some reeds, which the oak thus addressed: <cline1>. the reeds replied, <cline2>.
+After a short time the woman returned, and when the man inquired how the woman had got on and how the servants had treated her, the woman replied, <cline1>. the man said, <cline2>.
+But when rescued from his danger, the crow forgot his promise.
+Shortly afterwards, again caught in a snare, the crow passed by apollo and made the same promise to offer frankincense to mercury.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/demo/data/demo/examples_processed_quotes.json	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,1 @@
+{}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/demo/data/demo/examples_quotes.json	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,1 @@
+{}
\ No newline at end of file
Binary file demo/data/models/ner_model.pkl has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/demo/data/training/annotation.conf	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,67 @@
+# Simple text-based definitions of hierarchial ontologies of 
+# (physical) entity types, relation types, event types, and
+# attributes.
+
+# This is a minimal example configuration, based (loosely) on some
+# ACE'05 entity, relation and event definitions
+# (http://projects.ldc.upenn.edu/ace/annotation/2005Tasks.html).
+# Please edit this according to the needs of your annotation.
+
+[entities]
+
+# Definition of entities.
+
+# Format is a simple list with one type per line.
+Character
+Object
+Place
+Character_Line
+Path
+Motion
+Motion_Signal
+
+[relations]
+
+# Definition of (binary) relations.
+
+# Format in brief: one relation per line, with first space-separated
+# field giving the relation type and the rest of the line the
+# comma-separated arguments in ROLE:TYPE format. The roles are
+# typically "Arg1" and "Arg2".
+RefersToCharacter  Arg1:Character, Arg2:Character, <REL-TYPE>:symmetric-transitive
+RefersToPlace Arg1:Place, Arg2:Place, <REL-TYPE>:symmetric-transitive
+RefersToObject Arg1:Object, Arg2:Object, <REL-TYPE>:symmetric-transitive
+[events]
+
+<CausedBy>=Character|Object|Referent|Sound_Effect
+Says WHO:Character,WHAT:Character_Line,HappensIn?:Place
+Sound_Effect  CausedBy?:<CausedBy>,HappensIn?:Place
+Spatial_Signal Trajector?:Character,Landmark?:Place
+
+# Definition of events.
+
+# Format in brief: one event per line, with first space-separated
+# field giving the event type and the rest of the line the
+# comma-separated arguments in ROLE:TYPE format. Arguments may be
+# specified as either optional (by appending "?" to role) or repeated
+# (by appending either "*" for "0 or more" or "+" for "1 or more").
+
+# this is a macro definition, used for brevity
+
+# the "!" before a type specifies that it cannot be used for annotation
+# (hierarchy structure only.)
+
+
+[attributes]
+
+# Definition of entity and event attributes.
+
+# Format in brief: first tab-separated field is attribute name, second
+# a set of key-value pairs. The latter must define "Arg:" which
+# specifies what the attribute can attach to (typically "<EVENT>").
+# If no other keys are defined, the attribute is binary (present or
+# absent). If "Value:" with multiple alternatives is defined, the
+# attribute can have one of the given values.
+Gender Arg:Character, Value:Male|Female
+Age    Arg:Character, Value:Young|Old
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/demo/data/training/examples.ann	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,309 @@
+T1	Character 0 6	A BULL
+A1	Gender T1 Male
+T2	Character 107 112	A MAN
+A2	Gender T2 Male
+T3	Character 295 317	A VERY SKILLFUL BOWMAN
+A3	Gender T3 Male
+T4	Character 416 424	The Lion
+T5	Character 457 469	A young Calf
+A4	Age T5 Young
+T6	Character 559 565	A BULL
+T7	Character 647 653	A BULL
+A5	Gender T7 Male
+T8	Character 717 728	The Lioness
+A6	Gender T8 Female
+T9	Character 784 794	An old man
+A7	Gender T9 Male
+A8	Age T9 Old
+T10	Character 880 894	A singing bird
+T11	Character 1025 1030	a Bat
+T12	Character 1145 1148	MAN
+A9	Gender T12 Male
+T13	Character 1346 1355	A CHARGER
+T14	Character 1448 1454	A CROW
+T15	Character 1671 1679	the Crow
+A10	Gender T15 Female
+T16	Character 1776 1787	The Serpent
+T17	Character 1839 1857	A TROUBLESOME CROW
+A11	Gender T17 Female
+T18	Character 1897 1905	A PRINCE
+A12	Gender T18 Male
+T19	Character 2016 2026	a courtier
+A13	Gender T19 Male
+T20	Character 2116 2127	The Monkeys
+T21	Character 2404 2416	the audience
+T22	Character 2418 2423	A DOE
+T23	Character 2493 2501	The Lion
+A14	Gender T23 Male
+T24	Character 2623 2640	The expiring lion
+T25	Character 2657 2663	A lion
+T26	Character 2754 2762	The oaks
+T27	Character 2815 2822	jupiter
+A15	Gender T27 Male
+T28	Character 2846 2853	The oak
+T29	Character 2882 2896	The woodcutter
+T30	Character 3003 3019	A very large oak
+T31	Character 3173 3181	the wolf
+A16	Gender T31 Male
+T32	Character 3209 3219	the farmer
+T33	Character 3362 3373	the serpent
+T34	Character 3400 3409	the satyr
+T35	Character 3426 3433	the man
+A17	Gender T35 Male
+A18	Gender T34 Male
+T36	Character 3499 3508	the satyr
+A19	Gender T36 Male
+T37	Character 3561 3568	the man
+A20	Gender T37 Male
+T38	Character 3640 3649	the satyr
+A21	Gender T38 Male
+T39	Character 3676 3685	the satyr
+A22	Gender T39 Male
+T40	Character 3850 3858	The mule
+A23	Gender T40 Male
+T41	Character 3926 3938	a countryman
+A24	Gender T41 Male
+T42	Character 3983 3995	their father
+A25	Gender T42 Male
+T43	Character 3997 4004	Jupiter
+A26	Gender T43 Male
+T44	Place 4023 4041	the top of Olympus
+T45	Spatial_Signal 4018 4022	from
+E1	Spatial_Signal:T45 Trajector:T43 Landmark:T44
+T46	Character 4043 4049	A bull
+A27	Gender T46 Male
+T47	Spatial_Signal 4062 4064	in
+E2	Spatial_Signal:T47 Landmark:T48 Trajector:T46
+T48	Place 4065 4073	a meadow
+T49	Character 4075 4088	A townsperson
+T50	Place 4100 4112	the mountain
+T51	Spatial_Signal 4097 4099	up
+E3	Spatial_Signal:T51 Trajector:T49 Landmark:T50
+T52	Character 4114 4120	A wolf
+T53	Place 4137 4146	a village
+T54	Character 4148 4159	The animals
+T55	Spatial_Signal 4160 4162	of
+E4	Spatial_Signal:T55 Trajector:T54 Landmark:T56
+T56	Place 4163 4173	the forest
+T57	Character 4230 4237	Two men
+T58	Character 4242 4250	two sons
+A28	Gender T58 Male
+A29	Age T58 Young
+A30	Gender T57 Male
+T59	Spatial_Signal 4267 4272	along
+E5	Spatial_Signal:T59 
+T60	Place 4273 4285	a rural road
+T61	Character 4287 4296	A pilgrim
+T62	Place 4311 4320	Acropolis
+T63	Spatial_Signal 4302 4310	to visit
+E6	Spatial_Signal:T63 Trajector:T61 Landmark:T62
+T64	Character 4322 4330	A farmer
+T65	Place 4347 4358	the stables
+T66	Spatial_Signal 4344 4346	to
+E7	Spatial_Signal:T66 Trajector:T64 Landmark:T65
+T67	Character 4391 4404	A bald knight
+T68	Spatial_Signal 4439 4441	in
+E8	Spatial_Signal:T68 Trajector:T67 Landmark:T69
+T69	Place 4442 4452	the forest
+T70	Character 4454 4460	A cock
+A31	Gender T70 Male
+T71	Spatial_Signal 4480 4482	up
+E9	Spatial_Signal:T71 Trajector:T70 Landmark:T73
+T72	Spatial_Signal 4487 4491	down
+E10	Spatial_Signal:T72 Trajector:T70 Landmark:T73
+T73	Place 4492 4504	the farmyard
+T74	Character 4781 4787	A crow
+A32	Gender T74 Male
+T75	Character 5076 5083	Mercury
+A33	Gender T75 Male
+T76	Spatial_Signal 130 132	in
+E11	Spatial_Signal:T76 Trajector:T2 Landmark:T77
+T77	Place 133 146	foreign lands
+T78	Spatial_Signal 179 181	to
+E12	Spatial_Signal:T78 Landmark:T79 Trajector:T2
+T79	Place 182 197	his own country
+T81	Spatial_Signal 255 257	in
+E13	Spatial_Signal:T81 Landmark:T82
+T82	Place 258 278	the different places
+T83	Spatial_Signal 323 325	to
+E14	Spatial_Signal:T83 Trajector:T3 Landmark:T84
+T84	Place 326 339	the mountains
+T85	Place 381 391	the forest
+T86	Character 367 377	the beasts
+T87	Spatial_Signal 378 380	of
+E15	Spatial_Signal:T87 Trajector:T86 Landmark:T85
+T88	Spatial_Signal 593 595	in
+E16	Spatial_Signal:T88 Trajector:T6 Landmark:T89
+T89	Place 596 602	a cave
+T90	Spatial_Signal 908 910	in
+E17	Spatial_Signal:T90 
+T91	Place 911 917	a cage
+T92	Place 937 945	a window
+T93	Spatial_Signal 929 936	outside
+E18	Spatial_Signal:T93 Landmark:T92
+T94	Spatial_Signal 1046 1048	to
+E19	Spatial_Signal:T94 Trajector:T11 Landmark:T95
+T95	Place 1049 1057	the bars
+T96	Spatial_Signal 1058 1060	of
+E20	Spatial_Signal:T96 Trajector:T11 Landmark:T97
+T97	Place 1061 1069	the cage
+T100	Place 1409 1415	a mill
+T101	Spatial_Signal 1433 1436	out
+E21	Spatial_Signal:T101 Trajector:T13 Landmark:T102
+T102	Place 1437 1446	to battle
+T99	Spatial_Signal 1406 1408	in
+E22	Spatial_Signal:T99 Trajector:T13 Landmark:T100
+T103	Character 1470 1479	the Raven
+A36	Gender T103 Male
+T105	Character 1565 1568	men
+A38	Gender T105 Male
+T106	Spatial_Signal 1688 1692	into
+E23	Spatial_Signal:T106 Trajector:T15 Landmark:T107
+T107	Place 1693 1699	a tree
+T108	Spatial_Signal 1722 1724	on
+E24	Spatial_Signal:T108 Trajector:T15 Landmark:T109
+T109	Place 1725 1744	one of the branches
+T110	Spatial_Signal 1797 1802	about
+E25	Spatial_Signal:T110 Trajector:T16
+T111	Spatial_Signal 1873 1875	on
+E26	Spatial_Signal:T111 Landmark:T112 Trajector:T17
+T112	Place 1876 1895	the back of a Sheep
+T113	Spatial_Signal 2100 2104	upon
+E27	Spatial_Signal:T113 Landmark:T114 Trajector:T19
+T114	Place 2105 2114	the stage
+T116	Spatial_Signal 2462 2464	in
+E28	Spatial_Signal:T116 Trajector:T22 Landmark:T117
+T117	Place 2465 2471	a cave
+T118	Character 2553 2556	she
+T119	Spatial_Signal 2566 2572	within
+E29	Spatial_Signal:T119 Trajector:T118 Landmark:T120
+T120	Place 2573 2581	the cave
+T121	Spatial_Signal 2717 2719	on
+E30	Spatial_Signal:T121 Landmark:T122 Trajector:T25
+T122	Place 2720 2730	the ground
+T123	Place 2908 2916	mountain
+T124	Place 3063 3071	a stream
+T125	Spatial_Signal 3056 3062	across
+E31	Spatial_Signal:T125 Landmark:T124 Trajector:T30
+T130	Spatial_Signal 3295 3297	to
+E32	Spatial_Signal:T130 Landmark:T131 Trajector:T32
+T131	Place 3298 3319	the mouth of its lair
+T132	Character 3456 3460	they
+T133	Spatial_Signal 3469 3471	at
+E33	Spatial_Signal:T133 Landmark:T134 Trajector:T132
+T134	Place 3472 3488	the satyr's home
+T140	Character 4758 4769	master cock
+A44	Gender T140 Male
+T80	Character 5125 5130	A MAN
+A34	Gender T80 Male
+T98	Spatial_Signal 5148 5150	in
+E34	Spatial_Signal:T98 Landmark:T104 Trajector:T80
+T104	Place 5151 5164	foreign lands
+T115	Spatial_Signal 5197 5199	to
+E35	Spatial_Signal:T115 Landmark:T126 Trajector:T80
+T126	Place 5200 5215	his own country
+T127	Character 5256 5263	the man
+A35	Gender T127 Male
+T128	Spatial_Signal 5278 5280	in
+E36	Spatial_Signal:T128 Landmark:T129 Trajector:T127
+T129	Place 5281 5301	the different places
+T135	Character 5372 5383	the monkeys
+T136	Character 5500 5512	the audience
+T137	Character 5514 5521	THE OAK
+T138	Spatial_Signal 5527 5532	among
+E37	Spatial_Signal:T138 Trajector:T137 Landmark:T139
+T139	Place 5533 5543	some reeds
+T141	Character 5551 5558	the oak
+T142	Character 5585 5594	the reeds
+T143	Character 5633 5642	the woman
+A37	Gender T143 Female
+T144	Character 5662 5669	the man
+A39	Gender T144 Male
+T145	Character 5683 5692	the woman
+A40	Gender T145 Female
+T146	Character 5742 5751	the woman
+A41	Gender T146 Female
+T147	Character 5771 5778	the man
+A42	Gender T147 Male
+T148	Character 5829 5837	the crow
+A43	Gender T148 Male
+T149	Character 5903 5911	the crow
+A45	Gender T149 Male
+T150	Says 2797 2803	saying
+E38	Says:T150 WHO:T26 WHAT:T151
+T151	Character_Line 2805 2813	<cline1>
+T152	Character_Line 2836 2844	<cline2>
+T153	Says 2823 2834	made answer
+E39	Says:T153 WHO:T27 WHAT:T152
+T154	Says 2854 2858	said
+E40	Says:T154 WHO:T28 WHAT:T155
+T155	Character_Line 2872 2880	<cline1>
+T156	Character_Line 3124 3132	<cline1>
+T157	Says 3113 3122	addressed
+E41	Says:T157 WHAT:T156
+T158	Says 3139 3146	replied
+E42	Says:T158 WHAT:T159
+T159	Character_Line 3148 3156	<cline2>
+T160	Character_Line 3158 3166	<cline5>
+T161	Says 3168 3172	said
+E43	Says:T161 WHAT:T160 WHO:T31
+T162	Says 3325 3329	said
+E44	Says:T162 WHO:T32 WHAT:T163
+T163	Character_Line 3337 3345	<cline1>
+T164	Says 3357 3361	said
+E45	Says:T164 WHAT:T166 WHO:T33 WHAT2:T165
+T165	Character_Line 3375 3383	<cline3>
+T166	Character_Line 3347 3355	<cline2>
+T167	Character_Line 3385 3393	<cline1>
+T168	Says 3395 3399	said
+E46	Says:T168 WHAT:T167 WHO:T34
+T169	Says 3421 3425	said
+E47	Says:T169 WHAT:T171 WHO:T35 WHAT2:T170
+T170	Character_Line 3435 3443	<cline3>
+T171	Character_Line 3411 3419	<cline2>
+T172	Character_Line 3625 3633	<cline4>
+T173	Says 3635 3639	said
+E48	Says:T173 WHAT:T172 WHO:T38 WHAT2:T174
+T174	Character_Line 3651 3659	<cline5>
+T175	Character_Line 3661 3669	<cline6>
+T176	Says 3671 3675	said
+E49	Says:T176 WHAT:T175 WHO:T39 WHAT2:T177
+T177	Character_Line 3687 3695	<cline7>
+T178	Character_Line 3821 3829	<cline1>
+T179	Says 3812 3819	replied
+E50	Says:T179 WHAT:T178
+T180	Says 3834 3838	said
+E51	Says:T180 
+T181	Character_Line 3840 3848	<cline2>
+T182	Says 3895 3899	said
+E52	Says:T182 WHAT:T183 WHO:T40
+T183	Character_Line 3912 3920	<cline1>
+T184	Says 3952 3956	said
+E53	Says:T184 
+T185	Character_Line 3958 3966	<cline1>
+T186	Character_Line 3968 3976	<cline5>
+T187	Says 3978 3982	said
+E54	Says:T187 WHAT:T186 WHO:T42
+T188	Character_Line 4579 4587	<cline1>
+T189	Says 4589 4594	quoth
+E55	Says:T189 WHAT:T188 WHAT2:T190
+T190	Character_Line 4599 4607	<cline2>
+T191	Character_Line 4742 4750	<cline3>
+T192	Character_Line 4771 4779	<cline4>
+T193	Says 4752 4757	quoth
+E56	Says:T193 WHAT:T191 WHO:T140 WHAT2:T192
+T194	Character_Line 5115 5123	<cline1>
+T195	Says 5102 5106	said
+E57	Says:T195 WHO:T75 WHAT:T194
+T196	Says 5564 5573	addressed
+E58	Says:T196 WHO:T141 WHAT:T197
+T197	Character_Line 5575 5583	<cline1>
+T198	Says 5595 5602	replied
+E59	Says:T198 WHO:T142 WHAT:T199
+T199	Character_Line 5604 5612	<cline2>
+T200	Says 5752 5759	replied
+E60	Says:T200 WHO:T146 WHAT:T202
+T201	Says 5779 5783	said
+E61	Says:T201 WHO:T147 WHAT:T203
+T202	Character_Line 5761 5769	<cline1>
+T203	Character_Line 5785 5793	<cline2>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/demo/data/training/examples.txt	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,67 @@
+A BULL was striving with all his might to squeeze himself through a narrow passage which led to his stall.
+A MAN who had traveled in foreign lands boasted very much, on returning to his own country, of the many wonderful and heroic feats he had performed in the different places he had visited.
+A VERY SKILLFUL BOWMAN went to the mountains in search of game, but all the beasts of the forest fled at his approach.  
+The Lion alone challenged him to combat.
+A young Calf came up, and offered to go before and show him the way by which he could manage to pass.
+A BULL, escaping from a Lion, hid in a cave which some shepherds had recently occupied.
+A BULL finding a lion's cub asleep gored him to death with his horns.
+The Lioness came up, and bitterly lamented the death of her whelp.
+An old man on the point of death summoned his sons around him to give them some parting advice.
+A singing bird was confined in a cage which hung outside a window, and had a way of singing at night when all other birds were asleep.
+One night a Bat came and clung to the bars of the cage, and asked the Bird why she was silent by day and sang only at night.
+WHEN MAN first saw the Camel, he was so frightened at his vast size that he ran away.
+After a time, perceiving the meekness and gentleness of the beast's temper, he summoned courage enough to approach him.
+A CHARGER, feeling the infirmities of age, was sent to work in a mill instead of going out to battle.
+A CROW was jealous of the Raven, because he was considered a bird of good omen and always attracted the attention of men, who noted by his flight the good or evil course of future events.
+Seeing some travelers approaching, the Crow flew up into a tree, and perching herself on one of the branches, cawed as loudly as she could.
+The Serpent, turning about, bit the Crow with a mortal wound. 
+A TROUBLESOME CROW seated herself on the back of a Sheep.
+A PRINCE had some Monkeys trained to dance.
+The spectacle was often repeated with great applause, till on one occasion a courtier, bent on mischief, took from his pocket a handful of nuts and threw them upon the stage.
+The Monkeys at the sight of the nuts forgot their dancing and became (as indeed they were) Monkeys instead of actors.
+Pulling off their masks and tearing their robes, they fought with one another for the nuts. The dancing spectacle thus came to an end amidst the laughter and ridicule of the audience.
+A DOE hard pressed by hunters sought refuge in a cave belonging to a Lion.
+The Lion concealed himself on seeing her approach, but when she was safe within the cave, sprang upon her and tore her to pieces.
+The expiring lion said, <cline1>.
+A lion, worn out with years and powerless from disease, lay on the ground at the point of death.
+The oaks presented a complaint to jupiter, saying, <cline1>. jupiter made answer: <cline2>.
+The oak said with a sigh, <cline1>.
+The woodcutter cut down a mountain oak and split it in pieces, making wedges of its own branches for dividing the trunk.
+A very large oak was uprooted by the wind and thrown across a stream.
+It fell among some reeds, which it thus addressed: <cline1>. they replied, <cline2>.
+<cline5>. said the wolf as he galloped away,
+Well, the farmer thought it best to make it up with the serpent, and brought food and honey to the mouth of its lair, and said to it: <cline1>. <cline2>. said the serpent; <cline3>.
+<cline1>. said the satyr.
+<cline2>. said the man, <cline3>.
+After this they arrived at the satyr's home, and soon the satyr put a smoking dish of porridge before him.
+But when the man raised his spoon to his mouth he began blowing upon it.
+<cline4>. said the satyr.
+<cline5>. <cline6>. said the satyr.
+<cline7>.
+After a short time she returned, and when he inquired how she had got on and how the servants had treated her, she replied, <cline1>. he said, <cline2>.
+The mule, groaning beneath his heavy burden, said to himself: <cline1>.
+But a countryman who stood by said: <cline1>.
+<cline5>. said their father.
+Jupiter was reigning from the top of Olympus.
+A bull was feeding in a meadow.
+A townsperson climped up the mountain.
+A wolf was terrorizing a village.
+The animals of the forest were having an argument on which animal was the wisest.
+Two men and two sons were travelling along a rural road.
+A pilgrim went to visit Acropolis.
+A farmer one day came to the stables to see to his beasts of burden.
+A bald knight, who wore a wig, went out to hunt in the forest.
+A cock was once strutting up and down the farmyard among the hens when suddenly he espied something shinning amid the straw.
+<cline1>. quoth he, <cline2>. and soon rooted it out from beneath the straw.
+What did it turn out to be but a pearl that by some chance had been lost in the yard?
+<cline3>. quoth master cock, <cline4>.
+A crow caught in a snare prayed to apollo to release him, making a vow to offer some frankincense at his shrine.
+But when rescued from his danger, he forgot his promise.
+Shortly afterwards, again caught in a snare, he passed by apollo and made the same promise to offer frankincense to mercury.
+Mercury soon appeared and said to him, <cline1>.
+A MAN who had traveled in foreign lands boasted very much, on returning to his own country, of the many wonderful and heroic feats the man had performed in the different places the man had visited.
+Pulling off their masks and tearing their robes, the monkeys fought with one another for the nuts. The dancing spectacle thus came to an end amidst the laughter and ridicule of the audience.
+THE OAK fell among some reeds, which the oak thus addressed: <cline1>. the reeds replied, <cline2>.
+After a short time the woman returned, and when the man inquired how the woman had got on and how the servants had treated her, the woman replied, <cline1>. the man said, <cline2>.
+But when rescued from his danger, the crow forgot his promise.
+Shortly afterwards, again caught in a snare, the crow passed by apollo and made the same promise to offer frankincense to mercury.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/demo/data/workspace/.stats_cache	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,6 @@
+(lp1
+(lp2
+I6
+aI0
+aI1
+aa.
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/demo/data/workspace/.stats_cache.orig	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,6 @@
+(lp1
+(lp2
+I14
+aI0
+aI2
+aa.
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/demo/data/workspace/annotation.conf	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,67 @@
+# Simple text-based definitions of hierarchial ontologies of 
+# (physical) entity types, relation types, event types, and
+# attributes.
+
+# This is a minimal example configuration, based (loosely) on some
+# ACE'05 entity, relation and event definitions
+# (http://projects.ldc.upenn.edu/ace/annotation/2005Tasks.html).
+# Please edit this according to the needs of your annotation.
+
+[entities]
+
+# Definition of entities.
+
+# Format is a simple list with one type per line.
+Character
+Object
+Place
+Character_Line
+Path
+Motion
+Motion_Signal
+
+[relations]
+
+# Definition of (binary) relations.
+
+# Format in brief: one relation per line, with first space-separated
+# field giving the relation type and the rest of the line the
+# comma-separated arguments in ROLE:TYPE format. The roles are
+# typically "Arg1" and "Arg2".
+RefersToCharacter  Arg1:Character, Arg2:Character, <REL-TYPE>:symmetric-transitive
+RefersToPlace Arg1:Place, Arg2:Place, <REL-TYPE>:symmetric-transitive
+RefersToObject Arg1:Object, Arg2:Object, <REL-TYPE>:symmetric-transitive
+[events]
+
+<CausedBy>=Character|Object|Referent|Sound_Effect
+Says WHO:Character,WHAT:Character_Line,HappensIn?:Place
+Sound_Effect  CausedBy?:<CausedBy>,HappensIn?:Place
+Spatial_Signal Trajector?:Character,Landmark?:Place
+
+# Definition of events.
+
+# Format in brief: one event per line, with first space-separated
+# field giving the event type and the rest of the line the
+# comma-separated arguments in ROLE:TYPE format. Arguments may be
+# specified as either optional (by appending "?" to role) or repeated
+# (by appending either "*" for "0 or more" or "+" for "1 or more").
+
+# this is a macro definition, used for brevity
+
+# the "!" before a type specifies that it cannot be used for annotation
+# (hierarchy structure only.)
+
+
+[attributes]
+
+# Definition of entity and event attributes.
+
+# Format in brief: first tab-separated field is attribute name, second
+# a set of key-value pairs. The latter must define "Arg:" which
+# specifies what the attribute can attach to (typically "<EVENT>").
+# If no other keys are defined, the attribute is binary (present or
+# absent). If "Value:" with multiple alternatives is defined, the
+# attribute can have one of the given values.
+Gender Arg:Character, Value:Male|Female
+Age    Arg:Character, Value:Young|Old
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/demo/data/workspace/story_processed.ann	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,10 @@
+T1	Character 0 6	A Bull
+A1	Gender T1 Male
+T2	Character 36 42	a Lion
+T3	Character 62 70	The Lion
+T4	Says 86 90	said
+T5	Place 22 30	a meadow
+T6	Spatial_Signal 19 21	in
+T7	Character_Line 92 100	<cline1>
+E1	Spatial_Signal:T6 Trajector:T1 Landmark:T5
+E2	Says:T4 WHO:T3 WHAT:T7
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/demo/data/workspace/story_processed.ann.orig	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,22 @@
+T1	Character 139 145	a Lion
+T2	Character 185 193	The Lion
+T3	Character 208 216	The Bull
+A1	Gender T3 Male
+T4	Says 194 198	said
+T5	Says 217 224	replied
+T6	Place 45 53	a meadow
+T7	Place 73 81	a meadow
+T8	Place 112 120	a meadow
+T9	Place 175 183	a meadow
+T10	Spatial_Signal 42 44	in
+T11	Spatial_Signal 70 72	in
+T12	Spatial_Signal 109 111	in
+T13	Spatial_Signal 172 174	in
+T14	Spatial_Signal 225 227	to
+T15	Character_Line 200 206	cline1
+T16	Character_Line 233 239	cline3
+E1	Says:T4 WHO:T2 WHAT:T15
+E2	Says:T5 WHO:T3 WHAT:T16
+T17	Character 27 33	a Bull
+A2	Gender T17 Male
+E3	Spatial_Signal:T10 Trajector:T17 Landmark:T6
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/demo/data/workspace/story_processed.txt	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,1 @@
+A Bull was feeding in a meadow when a Lion approached a bull. The Lion saw a bull and said: <cline1>..
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/demo/data/workspace/story_processed.txt.orig	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,1 @@
+Once upon a time there was a Bull feeding in a meadow. a bull feeding in a meadow was minding a bull feeding in a meadow own business when a Lion approached a bull feeding in a meadow. The Lion said: cline1. The Bull replied to her: cline3.
\ No newline at end of file
Binary file demo/img1.png has changed
Binary file demo/img2.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/demo/ner.py	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,563 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+"""
+Created on Sun Apr  1 14:05:17 2018
+
+@author: Emmanouil Theofanis Chourdakis
+"""
+
+from pypeg2 import *
+import re 
+
+def var_generator(T):
+    I = 0
+    while True:
+        I+=1
+        yield "{}{}".format(T, I)
+        
+
+
+def l_label_generator(T):
+    I = 0
+    while True:
+
+        I+=1
+        yield "<{}LINE{}>".format(T, I)        
+
+annot_var = re.compile("[A-Z][0-9]+")
+annot_pos = re.compile("[0-9]+ [0-9]+(\;[0-9]+ [0-9]+)*")
+annot_label = re.compile('[A-Za-z0-9_]+')
+label_var_tuple = re.compile(r'[A-Za-z0-9_]+\:[A-Z][0-9]+')
+
+class AnnotationType(Keyword):
+    grammar =  Enum(K("Place"), 
+                    K("Character"),
+                    K("Character_Line"),
+                    K("Motion"),                    
+                    K("Motion_Signal"),                                        
+                    K("Says"),
+                    K("Spatial_Signal"))
+
+class AttributeType(Keyword):
+    grammar = Enum(K("Age"), K("Gender"))
+
+class AnnotationTuple:
+    grammar = attr('variable',annot_var),\
+              attr('type',AnnotationType),\
+              attr('idx',annot_pos),\
+              attr('annotation',restline)
+                
+
+class AttributeTuple:
+    grammar = attr('variable', annot_var),\
+              attr('type',AttributeType), \
+              attr('target', annot_var), \
+              attr('annotation', restline)
+              
+class VarArg:
+    grammar = attr('label', annot_label), ':', attr('target', annot_var)
+              
+class VarArgs(List):
+    grammar = some(VarArg)
+    
+class RelationTuple:
+    grammar = attr('variable', annot_var),\
+              attr('args', VarArgs)
+                          
+class AnnotLine(List):
+    grammar = [AnnotationTuple, AttributeTuple, RelationTuple]
+              
+class AnnotationFile(List):
+    grammar = some(AnnotLine)
+
+def get_tokens_by_label(label, sent_tokens, sent_labels):
+
+    tokens = []
+    blabel = "B-{}".format(label)
+    ilabel = 'I-{}'.format(label)
+
+    tok_ = []
+    for n,l in enumerate(sent_labels):
+        if l == blabel:
+            if len(tok_) > 0:
+                tokens.append(tok_)
+            tok_ = [sent_tokens[n]]
+        elif l == ilabel:
+            tok_.append(sent_tokens[n])
+        else:
+            if len(tok_)>0:
+                tokens.append(tok_)
+            tok_ = []
+    return tokens         
+
+def get_token_head(span):
+
+    span_idx = [tok.i for tok in span]
+    head = span[0]
+    while head.head.i in span_idx:
+        if head == head.head:
+            return head
+    
+        head = head.head
+    return head
+    
+
+def get_min_dep_path(a, b, doc, LCA):
+    
+    lca_idx = LCA[a,b]
+    
+    if lca_idx == -1:
+        return "<UND>"
+    
+    lca = doc[LCA[a, b]]
+
+    m_a = []
+    m_b = []
+
+    # From tra go up to the LCA.
+
+    tok = doc[a]
+    while tok != lca:
+        if tok.head != None:
+            m_a.append(('up', tok.dep_))
+            tok = tok.head
+
+    tok = doc[b]
+    while tok != lca:
+        if tok.head != None:
+            m_b.append(('down', tok.dep_))
+            tok = tok.head    
+    m_b.reverse()
+
+    path = m_a + m_b
+    
+    return "::".join("{}|{}".format(tup[0], tup[1]) for tup in path)
+def get_dep_with_head(tok):
+    dep_ = []
+    while tok.head != tok:
+        dep_.append(tok.dep_)
+        tok = tok.head
+        
+    if len(dep_) == 1:
+        return dep_[0], tok.lemma_
+    else:
+        return None, tok.lemma_
+
+def var_generator(T):
+    I = 0
+    while True:
+        I+=1
+        yield "{}{}".format(T, I)
+
+def get_dep_with_head(tok):
+    dep_ = []
+    while tok.head != tok:
+        dep_.append(tok.dep_)
+        tok = tok.head
+        
+    if len(dep_) == 1:
+        return dep_[0], tok.lemma_
+    else:
+        return None, tok.lemma_
+    
+class Document:
+    def __init__(self, doc):
+        
+        self.doc = doc
+        self.LCA = doc.get_lca_matrix()
+        self.text = doc.text
+        self.sentences = [str(s) for s in doc.sents]
+        
+        self.tokens = []
+        self.token_sentences = []
+        
+        self.relations = []
+        
+        for m, sent in enumerate(doc.sents):
+            tlist = []
+            for n, tok in enumerate(sent):
+                token = Token(tok, doc, tok.i, sent, n)
+                tlist.append(token)
+            self.token_sentences.append(tlist)
+            self.tokens += tlist
+    
+    def add_token(self, token, doc, doc_idx, sent, sent_idx, label='NONE'):
+        token = Token(token, doc, doc_idx, sent, sent_idx, label)
+        self.tokens.append(token)
+        
+    def add_relation(self, trigger, arg1, arg2, label):
+        self.relations.append(Relation(arg1, arg2, trigger,  self.LCA, label))
+        
+    def find_tokens(self, start, end):
+        tokens = []
+        for tok in self.tokens:
+            if tok.start >= start and tok.end <= end:
+                tokens.append(tok)
+                
+        return tokens
+    
+    def assign_label_to_tokens(self, start, end, label):
+        tokens = self.find_tokens(start, end)
+        for n, token in enumerate(tokens):
+            if n == 0:
+                IOB = 'B'
+            else:
+                IOB = 'I'
+            
+            token.set_label('{}-{}'.format(IOB, label))
+            
+    def assign_label_to_tokens_by_matching_lemma(self, lemma, label):
+        for t in self.tokens:
+            if t.token.lemma_ == lemma:
+                t.label = 'B-{}'.format(label)
+            
+    def assign_attribute_to_tokens(self, start, end, label, attribute):
+        tokens = self.find_tokens(start, end)
+        for n, token in enumerate(tokens):
+            token.set_attribute(label, attribute)
+            
+    def get_token_features_labels(self):
+        features = []
+        labels = []
+        
+        for sentence in self.token_sentences:
+            sentence_features = []
+            sentence_labels = []
+            
+            for token in sentence:
+                sentence_features.append(token.get_feature_vector())
+                sentence_labels.append(token.label)
+                
+            features.append(sentence_features)
+            labels.append(sentence_labels)
+            
+        return features, labels
+    
+    def get_token_features_attributes(self, label):
+        features = []
+        labels = []
+        
+        for sentence in self.token_sentences:
+            sentence_features = []
+            sentence_labels = []
+            
+            for token in sentence:
+                sentence_features.append(token.get_feature_vector())
+                if label in token.attributes:
+                    sentence_labels.append(token.attributes[label])
+                else:
+                    sentence_labels.append('O')
+                
+            features.append(sentence_features)
+            labels.append(sentence_labels)
+            
+        return features, labels    
+    
+    def get_gold_relation_feature_labels(self):
+        features = []
+        labels = []
+        for r in self.relations:
+            feat = r.get_feature_vector()
+            label = r.label
+            
+            features.append(feat)
+            labels.append(label)
+            
+        return features, labels
+    
+    def get_candidate_relation_feature_labels(self):
+        features = []
+        labels = []
+        
+        candidate_relations = self.get_candidate_relations()
+        for r in candidate_relations:
+            feat = r.get_feature_vector()
+            label = r.label
+            
+            features.append(feat)
+            labels.append(label)
+            
+        return features, labels     
+                        
+    
+    def get_tokens_with_label(self, label):
+
+        blabel = "B-{}".format(label)
+        ilabel = 'I-{}'.format(label)
+
+        tokens = []
+        
+        for I in range(len(self.token_sentences)):
+            tokens_ = []        
+            sent_tokens = self.token_sentences[I]
+            sent_labels = [t.label for t in sent_tokens]
+
+            tok_ = []
+            for n,l in enumerate(sent_labels):
+                if l == blabel:
+                    if len(tok_) > 0:
+                        tokens_.append(tok_)
+                    tok_ = [sent_tokens[n]]
+                elif l == ilabel:
+                    tok_.append(sent_tokens[n])
+                else:
+                    if len(tok_)>0:
+                        tokens_.append(tok_)
+                    tok_ = []
+            tokens.append(tokens_)       
+    
+        return tokens 
+    
+    def get_candidate_relations(self):
+        candidate_relations = []
+        
+        characters = self.get_tokens_with_label('Character')
+        places = self.get_tokens_with_label('Place')
+        spatial_signals = self.get_tokens_with_label('Spatial_Signal')
+        say_words = self.get_tokens_with_label('Says')
+        character_lines = self.get_tokens_with_label('Character_Line')
+        
+        for I in range(len(spatial_signals)):
+            for sp in spatial_signals[I]:
+                for ch in characters[I]:
+                    for pl in places[I]:
+                        rel = Relation(ch, pl, sp, self.LCA)
+                        candidate_relations.append(rel)
+                        
+        for I in range(len(say_words)):
+            for sw in say_words[I]:
+                for ch in characters[I]:
+                    for cl in character_lines[I]:
+                        rel = Relation(ch, cl, sw, self.LCA)
+                        candidate_relations.append(rel)
+                        
+        for cr in candidate_relations:
+            for r in self.relations:
+                if cr == r:
+                    cr.label = r.label
+                        
+        return candidate_relations
+    
+    def predict_relations(self, model):
+        relations = self.get_candidate_relations()
+        
+        for n, r in enumerate(relations):
+            f = r.get_feature_vector()
+            label = model.predict([f])[0]
+            if label != 'NONE':
+                r.label = label
+                self.relations.append(r)
+    
+    def __str__(self):
+        return self.text
+
+class Relation:
+    """ relation, has arg1, arg2, trigger as tokens, also label """
+    def __init__(self, arg1, arg2, trigger, lca, label='NONE'):
+        self.arg1 = arg1
+        self.arg2 = arg2
+        self.trigger = trigger
+        self.doc = trigger[0].doc
+        self.LCA = lca
+        self.label = label
+        
+    def __repr__(self):
+        return "<{}| trigger: {}, arg1: {}, arg2: {}>".format(self.label, self.trigger, self.arg1, self.arg2)
+    
+    def __eq__(self, other):
+        return  all([self.arg1[n].text == other.arg1[n].text for n in range(min(len(self.arg1), len(other.arg1)))]) \
+                and all([self.arg2[n].text == other.arg2[n].text for n in range(min(len(self.arg2), len(other.arg2)))]) \
+                and all([self.trigger[n].text == other.trigger[n].text for n in range(min(len(self.trigger), len(other.trigger)))])
+            
+    def get_feature_vector(self):        
+        rf = {}
+
+        arg1 = get_token_head([t.token for t in self.arg1])
+        arg2 = get_token_head([t.token for t in self.arg2])
+        trigger = get_token_head([t.token for t in self.trigger])
+
+        arg1_type = self.arg1[0].label.replace('B-', '')
+        arg2_type = self.arg2[0].label.replace('B-', '')
+    
+        rf['10'] = arg1_type+ '::'+ arg2_type
+
+        if trigger.i < arg1.i:
+            arg1_direction = 'right'
+        if trigger.i > arg1.i:
+            arg1_direction = 'left'
+        
+        if trigger.i < arg2.i:
+            arg2_direction = 'right'
+        if trigger.i > arg2.i:
+            arg2_direction = 'left'        
+                
+        rf['12.1'] = arg1_direction
+        rf['12.2'] = arg2_direction
+        rf['13'] = arg1_direction+ '::'+ arg2_direction
+
+        rf['1'] = trigger.text.lower()
+        rf['2'] = trigger.lemma_
+        rf['3'] = trigger.pos_
+        rf['4'] = rf['2'] + '::' + rf['3']
+        rf['11'] = rf['10'] + '::' + rf['2']
+        rf['14'] = rf['13'] + '::' + rf['2']
+        
+        # RF15
+            
+        for i, token in enumerate([arg1, arg2]):
+            rf['5.{}'.format(i)] = token.text.lower()
+            rf['6.{}'.format(i)] = token.lemma_
+            rf['7.{}'.format(i)] = token.pos_
+            rf['8.{}'.format(i)] = token.lemma_ + '::' + token.pos_
+            rf['9.{}'.format(i)] = arg1_type
+            rf['17.{}'.format(i)] = get_min_dep_path(token.i, trigger.i, self.doc, self.LCA)
+            rf['20'] = len(rf['17.{}'.format(i)].split('::'))
+
+            rf['22.{}'.format(i)] = max(arg1.i, trigger.i) - min(arg1.i, trigger.i)
+            
+            
+    
+            
+        rf['18'] = rf['17.0'] + '::' + rf['17.1']
+        
+        deppath = get_min_dep_path(arg1.i, arg2.i, self.doc, self.LCA)
+        rf['19'] = deppath
+        rf['23'] = rf['22.0'] + rf['22.1']
+
+        return rf
+    
+class Token:
+    """ Named entity, has doc, sent, doc_idx, sent_idx, and label """
+    def __init__(self, token, doc, doc_idx, sent, sent_idx, label='O'):
+        self.token = token
+        self.text = token.text
+        self.doc = doc
+        self.doc_idx = doc_idx
+        self.sent = sent
+        self.sent_idx = sent_idx
+        self.attributes = {}
+        
+        self.label = label
+        self.start = self.token.idx
+        self.end = self.token.idx + len(self.token)
+            
+    def __repr__(self):
+        return "[{} -> {}]".format(repr(self.token), self.label)
+    
+    def set_label(self, label):
+#        print("Token {} label changed to {}".format(self.text, label))
+        self.label = label
+    
+    def set_attribute(self, label, value):
+        self.attributes[label] = value
+    
+    def get_feature_vector(self):
+        
+        def find_ngrams(input_list, n):
+            return zip(*[input_list[i:] for i in range(n)])
+
+        # Stores featuer dictionary
+        feat_dict = {}
+        
+        #1. Create token spans
+        
+        # 5 token span
+        large_span = self.sent[max(0, self.sent_idx - 2):min(len(self.sent), self.sent_idx + 3)]
+        
+        # 3 token span
+        short_span = self.sent[max(0, self.sent_idx - 1):min(len(self.sent), self.sent_idx + 2)]
+        
+        for i, t in enumerate(large_span):
+            feat_dict['F.1_{}'.format(i)] = t.text
+            feat_dict['F.2_{}'.format(i)] = t.lemma_
+            feat_dict['F.3_{}'.format(i)] = t.pos_
+            feat_dict['F.4_{}'.format(i)] = t.ent_type_
+            
+        for i, t in enumerate(short_span):
+            feat_dict['F.5_{}'.format(i)] = "::".join([t.lemma_, t.pos_])
+            feat_dict['F.6_{}'.format(i)] = "::".join([t.ent_type_, t.pos_])
+            
+        ngrams = find_ngrams([t.pos_ for t in large_span], 2) # POS bigrams
+        for i, ng in enumerate(ngrams):
+            feat_dict['F.10_{}'.format(i)] = " ".join(ng)
+                
+        ngrams = find_ngrams([t.text for t in short_span], 2)  # Raw-string bigrams
+        for i, ng in enumerate(ngrams):
+            feat_dict['F.11_{}'.format(i)] = " ".join(ng)                   
+        
+        # Get dependency with head if it exists
+        dirdep, headlemma = get_dep_with_head(self.token)
+        if dirdep is not None:
+            feat_dict['F.7'] = dirdep
+            feat_dict['F.8'] = "::".join([dirdep, headlemma])
+            
+        # Get glove vector
+        vector = self.token.vector
+        for i in range(len(vector)):
+            feat_dict['F.9_{}'.format(i)] = vector[i]            
+            
+            
+        return feat_dict        
+    
+class Character:
+    """ Named Entity consisting of one or more tokens """
+    def __init__(self, name, age='none', gender='none'):
+        self.name = name
+        self.age = age
+        self.gender = gender
+        
+    def __repr__(self):
+        return "<CHARACTER name='{}' age='{}' gender='{}'>".format(self.name, 
+                                                                   self.age, 
+                                                                   self.gender)
+        
+    def __eq__(self, other):
+        return self.name.lower() == other.name.lower()
+    
+class Place:
+    """ Named Entity consisting of one or more tokens """
+    def __init__(self, name):
+        self.name = name
+        
+    def __repr__(self):
+        return "<PLACE name='{}'>".format(self.name)
+    
+    def __eq__(self, other):
+        return self.name.lower() == other.name.lower()
+    
+class Sayword:
+    """ Named Entity consisting of one or more tokens """
+    def __init__(self, name):
+        self.name = name
+        
+    def __repr__(self):
+        return "<SAYWORD name='{}'>".format(self.name)
+    
+    def __eq__(self, other):
+        return self.name.lower() == other.name.lower()
+
+class CharacterLine:
+    """ Named Entity consisting of one or more tokens """
+    def __init__(self, name):
+        self.name = name
+        
+    def __repr__(self):
+        return "<CHARACTER_LINE name='{}'>".format(self.name)
+    
+    def __eq__(self, other):
+        return self.name.lower() == other.name.lower()
+        
+class SpatialSignal:
+    """ Named Entity consisting of one or more tokens """
+    def __init__(self, name):
+        self.name = name
+        
+    def __repr__(self):
+        return "<SPATIAL_SIGNAL name='{}'>".format(self.name)
+    
+    def __eq__(self, other):
+        return self.name.lower() == other.name.lower()
+    
+    
+    
+        
\ No newline at end of file
Binary file demo/ner.pyc has changed
Binary file demo/ner_model.pkl has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/demo/package-lock.json	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,715 @@
+{
+  "requires": true,
+  "lockfileVersion": 1,
+  "dependencies": {
+    "ajv": {
+      "version": "5.5.2",
+      "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz",
+      "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=",
+      "requires": {
+        "co": "^4.6.0",
+        "fast-deep-equal": "^1.0.0",
+        "fast-json-stable-stringify": "^2.0.0",
+        "json-schema-traverse": "^0.3.0"
+      }
+    },
+    "argparse": {
+      "version": "0.1.16",
+      "resolved": "https://registry.npmjs.org/argparse/-/argparse-0.1.16.tgz",
+      "integrity": "sha1-z9AeD7uj1srtBJ+9dY1A9lGW9Xw=",
+      "requires": {
+        "underscore": "~1.7.0",
+        "underscore.string": "~2.4.0"
+      }
+    },
+    "asn1": {
+      "version": "0.2.3",
+      "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz",
+      "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y="
+    },
+    "assert-plus": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+      "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
+    },
+    "async": {
+      "version": "1.5.2",
+      "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
+      "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo="
+    },
+    "asynckit": {
+      "version": "0.4.0",
+      "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+      "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
+    },
+    "autolinker": {
+      "version": "0.15.3",
+      "resolved": "https://registry.npmjs.org/autolinker/-/autolinker-0.15.3.tgz",
+      "integrity": "sha1-NCQX2PLzRhsUzwkIjV7fh5HcmDI="
+    },
+    "aws-sign2": {
+      "version": "0.7.0",
+      "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
+      "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg="
+    },
+    "aws4": {
+      "version": "1.7.0",
+      "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.7.0.tgz",
+      "integrity": "sha512-32NDda82rhwD9/JBCCkB+MRYDp0oSvlo2IL6rQWA10PQi7tDUM3eqMSltXmY+Oyl/7N3P3qNtAlv7X0d9bI28w=="
+    },
+    "bcrypt-pbkdf": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz",
+      "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=",
+      "optional": true,
+      "requires": {
+        "tweetnacl": "^0.14.3"
+      }
+    },
+    "boom": {
+      "version": "4.3.1",
+      "resolved": "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz",
+      "integrity": "sha1-T4owBctKfjiJ90kDD9JbluAdLjE=",
+      "requires": {
+        "hoek": "4.x.x"
+      }
+    },
+    "caseless": {
+      "version": "0.12.0",
+      "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
+      "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw="
+    },
+    "co": {
+      "version": "4.6.0",
+      "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
+      "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ="
+    },
+    "combined-stream": {
+      "version": "1.0.6",
+      "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz",
+      "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=",
+      "requires": {
+        "delayed-stream": "~1.0.0"
+      }
+    },
+    "commander": {
+      "version": "2.15.1",
+      "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz",
+      "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag=="
+    },
+    "concat-stream": {
+      "version": "1.6.0",
+      "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz",
+      "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=",
+      "requires": {
+        "inherits": "^2.0.3",
+        "readable-stream": "^2.2.2",
+        "typedarray": "^0.0.6"
+      }
+    },
+    "core-util-is": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+      "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
+    },
+    "cryptiles": {
+      "version": "3.1.2",
+      "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-3.1.2.tgz",
+      "integrity": "sha1-qJ+7Ig9c4l7FboxKqKT9e1sNKf4=",
+      "requires": {
+        "boom": "5.x.x"
+      },
+      "dependencies": {
+        "boom": {
+          "version": "5.2.0",
+          "resolved": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz",
+          "integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==",
+          "requires": {
+            "hoek": "4.x.x"
+          }
+        }
+      }
+    },
+    "dashdash": {
+      "version": "1.14.1",
+      "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
+      "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
+      "requires": {
+        "assert-plus": "^1.0.0"
+      }
+    },
+    "debug": {
+      "version": "2.6.9",
+      "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+      "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+      "requires": {
+        "ms": "2.0.0"
+      }
+    },
+    "delayed-stream": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+      "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
+    },
+    "duplexer": {
+      "version": "0.1.1",
+      "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz",
+      "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E="
+    },
+    "ecc-jsbn": {
+      "version": "0.1.1",
+      "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz",
+      "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=",
+      "optional": true,
+      "requires": {
+        "jsbn": "~0.1.0"
+      }
+    },
+    "es6-promise": {
+      "version": "4.2.4",
+      "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.4.tgz",
+      "integrity": "sha512-/NdNZVJg+uZgtm9eS3O6lrOLYmQag2DjdEXuPaHlZ6RuVqgqaVZfgYCepEIKsLqwdQArOPtC3XzRLqGGfT8KQQ=="
+    },
+    "extend": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz",
+      "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ="
+    },
+    "extract-zip": {
+      "version": "1.6.6",
+      "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.6.6.tgz",
+      "integrity": "sha1-EpDt6NINCHK0Kf0/NRyhKOxe+Fw=",
+      "requires": {
+        "concat-stream": "1.6.0",
+        "debug": "2.6.9",
+        "mkdirp": "0.5.0",
+        "yauzl": "2.4.1"
+      }
+    },
+    "extsprintf": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
+      "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU="
+    },
+    "fast-deep-equal": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz",
+      "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ="
+    },
+    "fast-json-stable-stringify": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz",
+      "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I="
+    },
+    "fd-slicer": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz",
+      "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=",
+      "requires": {
+        "pend": "~1.2.0"
+      }
+    },
+    "forever-agent": {
+      "version": "0.6.1",
+      "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
+      "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE="
+    },
+    "form-data": {
+      "version": "2.3.2",
+      "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz",
+      "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=",
+      "requires": {
+        "asynckit": "^0.4.0",
+        "combined-stream": "1.0.6",
+        "mime-types": "^2.1.12"
+      }
+    },
+    "fs-extra": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-1.0.0.tgz",
+      "integrity": "sha1-zTzl9+fLYUWIP8rjGR6Yd/hYeVA=",
+      "requires": {
+        "graceful-fs": "^4.1.2",
+        "jsonfile": "^2.1.0",
+        "klaw": "^1.0.0"
+      }
+    },
+    "getpass": {
+      "version": "0.1.7",
+      "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
+      "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
+      "requires": {
+        "assert-plus": "^1.0.0"
+      }
+    },
+    "graceful-fs": {
+      "version": "4.1.11",
+      "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
+      "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg="
+    },
+    "har-schema": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
+      "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI="
+    },
+    "har-validator": {
+      "version": "5.0.3",
+      "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz",
+      "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=",
+      "requires": {
+        "ajv": "^5.1.0",
+        "har-schema": "^2.0.0"
+      }
+    },
+    "hasha": {
+      "version": "2.2.0",
+      "resolved": "https://registry.npmjs.org/hasha/-/hasha-2.2.0.tgz",
+      "integrity": "sha1-eNfL/B5tZjA/55g3NlmEUXsvbuE=",
+      "requires": {
+        "is-stream": "^1.0.1",
+        "pinkie-promise": "^2.0.0"
+      }
+    },
+    "hawk": {
+      "version": "6.0.2",
+      "resolved": "https://registry.npmjs.org/hawk/-/hawk-6.0.2.tgz",
+      "integrity": "sha512-miowhl2+U7Qle4vdLqDdPt9m09K6yZhkLDTWGoUiUzrQCn+mHHSmfJgAyGaLRZbPmTqfFFjRV1QWCW0VWUJBbQ==",
+      "requires": {
+        "boom": "4.x.x",
+        "cryptiles": "3.x.x",
+        "hoek": "4.x.x",
+        "sntp": "2.x.x"
+      }
+    },
+    "highlight.js": {
+      "version": "9.12.0",
+      "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-9.12.0.tgz",
+      "integrity": "sha1-5tnb5Xy+/mB1HwKvM2GVhwyQwB4="
+    },
+    "hoek": {
+      "version": "4.2.1",
+      "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.1.tgz",
+      "integrity": "sha512-QLg82fGkfnJ/4iy1xZ81/9SIJiq1NGFUMGs6ParyjBZr6jW2Ufj/snDqTHixNlHdPNwN2RLVD0Pi3igeK9+JfA=="
+    },
+    "http-signature": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
+      "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
+      "requires": {
+        "assert-plus": "^1.0.0",
+        "jsprim": "^1.2.2",
+        "sshpk": "^1.7.0"
+      }
+    },
+    "inherits": {
+      "version": "2.0.3",
+      "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+      "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
+    },
+    "is-stream": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
+      "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ="
+    },
+    "is-typedarray": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
+      "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo="
+    },
+    "isarray": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+      "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
+    },
+    "isexe": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+      "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA="
+    },
+    "isstream": {
+      "version": "0.1.2",
+      "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
+      "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo="
+    },
+    "jsbn": {
+      "version": "0.1.1",
+      "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
+      "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",
+      "optional": true
+    },
+    "json-schema": {
+      "version": "0.2.3",
+      "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
+      "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM="
+    },
+    "json-schema-traverse": {
+      "version": "0.3.1",
+      "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz",
+      "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A="
+    },
+    "json-stringify-safe": {
+      "version": "5.0.1",
+      "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
+      "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus="
+    },
+    "jsonfile": {
+      "version": "2.4.0",
+      "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz",
+      "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=",
+      "requires": {
+        "graceful-fs": "^4.1.6"
+      }
+    },
+    "jsprim": {
+      "version": "1.4.1",
+      "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
+      "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
+      "requires": {
+        "assert-plus": "1.0.0",
+        "extsprintf": "1.3.0",
+        "json-schema": "0.2.3",
+        "verror": "1.10.0"
+      }
+    },
+    "kew": {
+      "version": "0.7.0",
+      "resolved": "https://registry.npmjs.org/kew/-/kew-0.7.0.tgz",
+      "integrity": "sha1-edk9LTM2PW/dKXCzNdkUGtWR15s="
+    },
+    "klaw": {
+      "version": "1.3.1",
+      "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz",
+      "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=",
+      "requires": {
+        "graceful-fs": "^4.1.9"
+      }
+    },
+    "markdown-pdf": {
+      "version": "8.1.1",
+      "resolved": "https://registry.npmjs.org/markdown-pdf/-/markdown-pdf-8.1.1.tgz",
+      "integrity": "sha512-lpRyiNptdwArH6bG6Y8X13G5Qr/usTTDXxTp7zjhwxJ+cQO7Z6A1T265ZiN6PVDLzRNxxtcquQCIOpTC0U1NFg==",
+      "requires": {
+        "commander": "^2.2.0",
+        "duplexer": "^0.1.1",
+        "extend": "^3.0.0",
+        "highlight.js": "^9.1.0",
+        "phantomjs-prebuilt": "^2.1.3",
+        "remarkable": "^1.7.1",
+        "stream-from-to": "^1.4.2",
+        "through2": "^2.0.0",
+        "tmp": "0.0.33"
+      }
+    },
+    "mime-db": {
+      "version": "1.33.0",
+      "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz",
+      "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ=="
+    },
+    "mime-types": {
+      "version": "2.1.18",
+      "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz",
+      "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==",
+      "requires": {
+        "mime-db": "~1.33.0"
+      }
+    },
+    "minimist": {
+      "version": "0.0.8",
+      "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
+      "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0="
+    },
+    "mkdirp": {
+      "version": "0.5.0",
+      "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.0.tgz",
+      "integrity": "sha1-HXMHam35hs2TROFecfzAWkyavxI=",
+      "requires": {
+        "minimist": "0.0.8"
+      }
+    },
+    "ms": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+      "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+    },
+    "oauth-sign": {
+      "version": "0.8.2",
+      "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz",
+      "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM="
+    },
+    "os-tmpdir": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
+      "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ="
+    },
+    "pend": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
+      "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA="
+    },
+    "performance-now": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
+      "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns="
+    },
+    "phantomjs-prebuilt": {
+      "version": "2.1.16",
+      "resolved": "https://registry.npmjs.org/phantomjs-prebuilt/-/phantomjs-prebuilt-2.1.16.tgz",
+      "integrity": "sha1-79ISpKOWbTZHaE6ouniFSb4q7+8=",
+      "requires": {
+        "es6-promise": "^4.0.3",
+        "extract-zip": "^1.6.5",
+        "fs-extra": "^1.0.0",
+        "hasha": "^2.2.0",
+        "kew": "^0.7.0",
+        "progress": "^1.1.8",
+        "request": "^2.81.0",
+        "request-progress": "^2.0.1",
+        "which": "^1.2.10"
+      }
+    },
+    "pinkie": {
+      "version": "2.0.4",
+      "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
+      "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA="
+    },
+    "pinkie-promise": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
+      "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
+      "requires": {
+        "pinkie": "^2.0.0"
+      }
+    },
+    "process-nextick-args": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz",
+      "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw=="
+    },
+    "progress": {
+      "version": "1.1.8",
+      "resolved": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz",
+      "integrity": "sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74="
+    },
+    "punycode": {
+      "version": "1.4.1",
+      "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
+      "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4="
+    },
+    "qs": {
+      "version": "6.5.2",
+      "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
+      "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA=="
+    },
+    "readable-stream": {
+      "version": "2.3.6",
+      "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
+      "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
+      "requires": {
+        "core-util-is": "~1.0.0",
+        "inherits": "~2.0.3",
+        "isarray": "~1.0.0",
+        "process-nextick-args": "~2.0.0",
+        "safe-buffer": "~5.1.1",
+        "string_decoder": "~1.1.1",
+        "util-deprecate": "~1.0.1"
+      }
+    },
+    "remarkable": {
+      "version": "1.7.1",
+      "resolved": "https://registry.npmjs.org/remarkable/-/remarkable-1.7.1.tgz",
+      "integrity": "sha1-qspJchALZqZCpjoQIcpLrBvjv/Y=",
+      "requires": {
+        "argparse": "~0.1.15",
+        "autolinker": "~0.15.0"
+      }
+    },
+    "request": {
+      "version": "2.86.0",
+      "resolved": "https://registry.npmjs.org/request/-/request-2.86.0.tgz",
+      "integrity": "sha512-BQZih67o9r+Ys94tcIW4S7Uu8pthjrQVxhsZ/weOwHbDfACxvIyvnAbzFQxjy1jMtvFSzv5zf4my6cZsJBbVzw==",
+      "requires": {
+        "aws-sign2": "~0.7.0",
+        "aws4": "^1.6.0",
+        "caseless": "~0.12.0",
+        "combined-stream": "~1.0.5",
+        "extend": "~3.0.1",
+        "forever-agent": "~0.6.1",
+        "form-data": "~2.3.1",
+        "har-validator": "~5.0.3",
+        "hawk": "~6.0.2",
+        "http-signature": "~1.2.0",
+        "is-typedarray": "~1.0.0",
+        "isstream": "~0.1.2",
+        "json-stringify-safe": "~5.0.1",
+        "mime-types": "~2.1.17",
+        "oauth-sign": "~0.8.2",
+        "performance-now": "^2.1.0",
+        "qs": "~6.5.1",
+        "safe-buffer": "^5.1.1",
+        "tough-cookie": "~2.3.3",
+        "tunnel-agent": "^0.6.0",
+        "uuid": "^3.1.0"
+      }
+    },
+    "request-progress": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-2.0.1.tgz",
+      "integrity": "sha1-XTa7V5YcZzqlt4jbyBQf3yO0Tgg=",
+      "requires": {
+        "throttleit": "^1.0.0"
+      }
+    },
+    "safe-buffer": {
+      "version": "5.1.2",
+      "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+      "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+    },
+    "series-stream": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/series-stream/-/series-stream-1.0.1.tgz",
+      "integrity": "sha1-MRoJxcHVoJFECDLhpICkdADxAF0="
+    },
+    "sntp": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/sntp/-/sntp-2.1.0.tgz",
+      "integrity": "sha512-FL1b58BDrqS3A11lJ0zEdnJ3UOKqVxawAkF3k7F0CVN7VQ34aZrV+G8BZ1WC9ZL7NyrwsW0oviwsWDgRuVYtJg==",
+      "requires": {
+        "hoek": "4.x.x"
+      }
+    },
+    "sshpk": {
+      "version": "1.14.1",
+      "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.1.tgz",
+      "integrity": "sha1-Ew9Zde3a2WPx1W+SuaxsUfqfg+s=",
+      "requires": {
+        "asn1": "~0.2.3",
+        "assert-plus": "^1.0.0",
+        "bcrypt-pbkdf": "^1.0.0",
+        "dashdash": "^1.12.0",
+        "ecc-jsbn": "~0.1.1",
+        "getpass": "^0.1.1",
+        "jsbn": "~0.1.0",
+        "tweetnacl": "~0.14.0"
+      }
+    },
+    "stream-from-to": {
+      "version": "1.4.3",
+      "resolved": "https://registry.npmjs.org/stream-from-to/-/stream-from-to-1.4.3.tgz",
+      "integrity": "sha1-snBHPrxRTnNhVyfF0vdrIplB35Q=",
+      "requires": {
+        "async": "^1.5.2",
+        "concat-stream": "^1.4.7",
+        "mkdirp": "^0.5.0",
+        "series-stream": "^1.0.1"
+      }
+    },
+    "string_decoder": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+      "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+      "requires": {
+        "safe-buffer": "~5.1.0"
+      }
+    },
+    "throttleit": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-1.0.0.tgz",
+      "integrity": "sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw="
+    },
+    "through2": {
+      "version": "2.0.3",
+      "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz",
+      "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=",
+      "requires": {
+        "readable-stream": "^2.1.5",
+        "xtend": "~4.0.1"
+      }
+    },
+    "tmp": {
+      "version": "0.0.33",
+      "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
+      "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
+      "requires": {
+        "os-tmpdir": "~1.0.2"
+      }
+    },
+    "tough-cookie": {
+      "version": "2.3.4",
+      "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz",
+      "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==",
+      "requires": {
+        "punycode": "^1.4.1"
+      }
+    },
+    "tunnel-agent": {
+      "version": "0.6.0",
+      "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
+      "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
+      "requires": {
+        "safe-buffer": "^5.0.1"
+      }
+    },
+    "tweetnacl": {
+      "version": "0.14.5",
+      "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
+      "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
+      "optional": true
+    },
+    "typedarray": {
+      "version": "0.0.6",
+      "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
+      "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c="
+    },
+    "underscore": {
+      "version": "1.7.0",
+      "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz",
+      "integrity": "sha1-a7rwh3UA02vjTsqlhODbn+8DUgk="
+    },
+    "underscore.string": {
+      "version": "2.4.0",
+      "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.4.0.tgz",
+      "integrity": "sha1-jN2PusTi0uoefi6Al8QvRCKA+Fs="
+    },
+    "util-deprecate": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+      "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
+    },
+    "uuid": {
+      "version": "3.2.1",
+      "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.2.1.tgz",
+      "integrity": "sha512-jZnMwlb9Iku/O3smGWvZhauCf6cvvpKi4BKRiliS3cxnI+Gz9j5MEpTz2UFuXiKPJocb7gnsLHwiS05ige5BEA=="
+    },
+    "verror": {
+      "version": "1.10.0",
+      "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
+      "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
+      "requires": {
+        "assert-plus": "^1.0.0",
+        "core-util-is": "1.0.2",
+        "extsprintf": "^1.2.0"
+      }
+    },
+    "which": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz",
+      "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==",
+      "requires": {
+        "isexe": "^2.0.0"
+      }
+    },
+    "xtend": {
+      "version": "4.0.1",
+      "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
+      "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68="
+    },
+    "yauzl": {
+      "version": "2.4.1",
+      "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.4.1.tgz",
+      "integrity": "sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU=",
+      "requires": {
+        "fd-slicer": "~1.0.1"
+      }
+    }
+  }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/demo/places.txt	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,1 @@
+sea
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/demo/rel.py	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,29 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+"""
+Created on Mon Apr 30 17:49:36 2018
+
+@author: Emmanouil Theofanis Chourdakis
+"""
+
+from sklearn.svm import LinearSVC
+from sklearn.feature_extraction import DictVectorizer
+
+class RelModel(LinearSVC):
+    ## TODO: Add more LinearSVC parameters here
+    def __init__(self):
+        super(RelModel, self).__init__()
+        self.dv = DictVectorizer()
+        
+    def fit(self, X, y, sample_weight=None):
+        
+        # Transform data and save transformer
+        x = self.dv.fit_transform(X)
+        
+        return super(RelModel, self).fit(x, y, sample_weight)
+    
+    def predict(self, X):
+        # Transform data with transformer
+        x = self.dv.transform(X)
+        
+        return super(RelModel, self).predict(x)
Binary file demo/rel_model.pkl has changed
Binary file demo/renders/story_processed_script.wav has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/demo/requirements.txt	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,1 @@
+https://github.com/huggingface/neuralcoref.git
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/demo/saywords.txt	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,11 @@
+reply
+say
+ask
+cry
+quoth
+sayeth
+quote
+demand
+question
+inquire
+address
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/demo/spatial_indicators.txt	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,34 @@
+about
+above
+across
+after
+against
+along
+among
+around
+as
+at
+before
+behind
+beneath
+beside
+between
+by
+down
+during
+for
+from
+in
+inside
+into
+like
+of
+off
+on
+onto
+over
+round
+through
+to
+towards
+with
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/demo/text2annotation.py	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,479 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+"""
+Created on Sat Apr 28 14:17:15 2018
+
+@author: Emmanouil Theofanis Chourdakis
+
+Takes a .txt story and annotates it based on:
+    
+    characters, 
+    places,
+    saywords,
+    character_lines,
+    spatial_indicators,
+    
+@output:
+    .ann file with the same name
+    .json file with the extracted character lines
+    
+"""
+
+import os
+import argparse
+from sklearn.externals import joblib
+import ner
+import spacy
+import re
+import logging
+import json
+from difflib import SequenceMatcher
+from neuralcoref import Coref
+from rel import *
+
+def pronoun2gender(word):
+    pronoun2gender = {
+        'he' : 'Male',
+        'him': 'Male',
+        'she': 'Female',
+        'her': 'Female',
+        'his': 'Male',
+        'hers': 'Female',
+        'himself': 'Male',
+        'herself': 'Female',    
+    }
+    
+    if word in pronoun2gender:
+        return pronoun2gender[word]
+    else:
+        return 'neutral'
+
+
+logging.basicConfig(level=logging.INFO)
+
+# given an iterable of pairs return the key corresponding to the greatest value
+def argmax(pairs):
+    #https://stackoverflow.com/questions/5098580/implementing-argmax-in-python    
+    return max(pairs, key=lambda x: x[1])[0]
+
+# given an iterable of values return the index of the greatest value
+def argmax_index(values):
+    return argmax(enumerate(values))
+
+# given an iterable of keys and a function f, return the key with largest f(key)
+def argmax_f(keys, f):
+    return max(keys, key=f)
+
+def similar(a, b):
+    """ Returns string similarity between a and b """
+    # https://stackoverflow.com/questions/17388213/find-the-similarity-metric-between-two-strings
+    return SequenceMatcher(None, a, b).ratio()
+
+
+def get_resolved_clusters(coref):
+    """ Gets a coref object (from neural coref) and
+        returns the clusters as words """
+    
+    mentions = coref.get_mentions()
+    clusters = coref.get_clusters()[0]
+    result = []
+    for c in clusters:
+        result.append([mentions[r] for r in clusters[c]])
+    return result
+
+def cluster_word(word, clusters):
+    """ Gets a word and a list of clusters of mentions
+    and figures out where the word matches most based on
+    string similarity """
+    
+    similarities = []
+    for rc in clusters:
+        similarity = [similar(word.lower(), c.text.lower()) for c in rc]
+        similarities.append(similarity)
+    max_similarities = [max(s) for s in similarities]
+    if max(max_similarities) > 0.75:
+        return argmax_index(max_similarities)
+    else:
+        return -1
+
+def quotes2dict(text):
+    new_text = text
+    is_open = False
+    
+    quote_no = 0
+    quote = []
+    narrator = []
+    quote_dict = {}
+    
+    for n, c in enumerate(text):
+        if c == '"' and not is_open:
+            is_open = True
+            quote_dict["<nline{}>.".format(quote_no)] = ''.join(narrator)
+            narrator = []
+            quote_no += 1
+            continue
+        
+        elif c == '"' and is_open:
+            is_open = False
+            quote_dict["<cline{}>.".format(quote_no)] = ''.join(quote)
+            new_text = new_text.replace('"'+''.join(quote)+'"', "<cline{}>.".format(quote_no))
+            quote = []
+            quote_no += 1
+            continue
+        
+        if is_open:
+            quote.append(c)
+        elif not is_open:
+            narrator.append(c)
+            
+    return new_text, quote_dict
+
+def figure_gender(word, clusters, character_lut):
+    for c in character_lut:
+        if c.lower() in [w.lower() for w in word] and character_lut[c]['gender'] in ['Male', 'Female']:
+            return character_lut[c]['gender']
+            
+    cluster_idx = cluster_word(word, clusters)
+    if cluster_idx == -1:
+        return 'neutral'
+    genders = [pronoun2gender(c.text) for c in clusters[cluster_idx]]
+    if 'Male' in genders and 'Female' not in 'genders':
+        return 'Male'
+    if 'Female' in genders and 'Male' not in 'genders':
+        return 'Female'
+    return 'neutral'
+
+def annotate(text, 
+             ner_model, 
+             rel_model,
+             character_lut, 
+             saywords_lut, 
+             spind_lut, 
+             places_lut,
+             do_coreference_resolution=True):
+    """
+        Function which annotates entities in text
+        using the model in "model",
+        
+        returns: A ner.Document object with tokens labelled via
+                 the LUTS provided and also the NER model in "model"
+    """
+
+    # Find and store character lines in a dictionary
+    logging.info('Swapping character lines for character line tags')
+    processed_text, quotes = quotes2dict(text)
+
+    # Create spacy document object  from resulting text
+    # Create the nlp engine
+    logging.info("Loading 'en' spacy model")
+    nlp = spacy.load('en')
+    
+    # Loading coreference model
+    coref = Coref()
+    
+    
+    # Doing coreference resolution
+    if do_coreference_resolution:
+        logging.info("Doing one-shot coreference resolution (this might take some time)")
+        coref.one_shot_coref(processed_text)
+        resolved_clusters = get_resolved_clusters(coref)
+        processed_text = coref.get_resolved_utterances()[0]
+        
+    # Parse to spacy document
+    logging.info("Parsing document to spacy")
+    doc = nlp(processed_text)    
+    
+    # Parse to our custom Document object
+    logging.info("Parsing document to our object format for Named Entity Recognition")
+    mDoc = ner.Document(doc)
+    
+    # Label <CLINE[0-9]+> as character line
+    logging.info("Labeling character lines")
+    spans = [r.span() for r in re.finditer(r'<cline[0-9]+>\.', mDoc.text)]
+    for span in spans:
+        mDoc.assign_label_to_tokens(span[0],span[1],'Character_Line')
+
+    # Parse using LUTs
+    
+    # *- Characters
+    
+    # Sort by number of words so that tokens with more words override
+    # tokens with less words in labelling. For example if you have 
+    # `man' and `an old man' as characters, the character labelled is going to
+    # be `an old man' and not the included `man'.
+    logging.info("Labeling characters from LUT")
+    cLUT = [c.lower() for c in sorted(character_lut, key=lambda x: len(x.split()))]
+    
+    # Find literals in document that match a character in cLUT 
+    for c in cLUT:
+        spans = [r.span() for r in re.finditer(c, mDoc.text)]
+        for span in spans:
+            mDoc.assign_label_to_tokens(span[0],span[1],'Character')
+             
+    # *- Saywords
+   
+    # Assign labels to saywords. here saywords contain only one token. In addition
+    # we check against the saywords' lemma and not the saywords itself. 
+    logging.info("Labeling saywords from LUT")
+    swLUT = [nlp(sw)[0].lemma_ for sw in saywords_lut]
+    for sw in swLUT:
+        mDoc.assign_label_to_tokens_by_matching_lemma(sw, 'Says')
+        
+    # *- Places
+    logging.info("Labeling places from LUT")
+    plLUT = [pl.lower() for pl in sorted(places_lut, key=lambda x: len(x.split()))]
+    
+    # Find literals in document that match a character in cLUT 
+    for pl in plLUT:
+        spans = [r.span() for r in re.finditer(pl, mDoc.text)]
+        for span in spans:
+            mDoc.assign_label_to_tokens(span[0],span[1],'Place')
+            
+    # *- Spatial indicators
+    logging.info("Labeling spatial indicators from LUT")
+    spLUT = [sp.lower() for sp in sorted(spind_lut, key=lambda x: len(x.split()))]         
+    for sp in spLUT:
+        spans = [r.span() for r in re.finditer(sp, mDoc.text)]
+        for span in spans:
+            mDoc.assign_label_to_tokens(span[0],span[1],'Spatial_Signal')
+        
+    logging.info("Extracting token features")
+    features, labels = mDoc.get_token_features_labels()
+    
+    logging.info("Predicting labels")
+    new_labels = ner_model.predict(features)
+    
+
+    logging.info("Assigning labels based on the NER model")
+    # If a label is not already assigned by a LUT, assign it using the model
+    
+    #logging.info("{} {}".format(len(mDoc.tokens), len(new_labels)))
+    for m, sent in enumerate(mDoc.token_sentences):
+        for n, token in enumerate(sent):
+            if token.label == 'O':
+                token.label = new_labels[m][n]
+                
+    # Assign character labels
+    if do_coreference_resolution:
+        logging.info('Figuring out character genders')
+        character_tok_sent = mDoc.get_tokens_with_label('Character')
+        for sent in character_tok_sent:
+            for character in sent:
+                raw_string = " ".join([c.text for c in character])
+                gender = figure_gender(raw_string, resolved_clusters, character_lut)
+                for tok in character:
+                    if gender in ['Male', 'Female']:
+                        tok.set_attribute('gender', gender)
+                    
+    logging.info('Predicting the correct label for all possible relations in Document')
+    mDoc.predict_relations(rel_model)
+    
+    
+    return mDoc, quotes
+
+
+def doc2brat(mDoc):
+    """ Returns a brat .ann file str based on mDoc """
+    
+    # Dictionary that maps text span -> variable (to be used when 
+    # adding relations )
+    span2var = {}
+    
+    # Variable generator for entities (T in brat format)
+    tvar = ner.var_generator('T')
+    
+    # Variable generator for relations (E in brat format)
+    rvar = ner.var_generator('E')
+    
+    # Variable generator for attributions (E in brat format)
+    avar = ner.var_generator('A')
+    
+    ann_str = ""
+    # Extract characters in the format 
+    # T1 Character START END character string
+    
+    labels = ['Character', 'Says', 'Place', 'Spatial_Signal', 'Character_Line']
+    
+    for label in labels:
+        token_sentences = mDoc.get_tokens_with_label(label)
+        for tlist in token_sentences:
+            if len(tlist) == 0:
+                continue
+            
+            for tokens in tlist:
+                start = tokens[0].start
+                end = tokens[-1].end
+                txt = mDoc.text[start:end]
+                var = next(tvar)
+                ann_str += "{}\t{} {} {}\t{}\n".format(var, label, start, end, txt)
+                if 'gender' in tokens[0].attributes:
+                    ann_str += "{}\t{} {} {}\n".format(next(avar), 'Gender', var, tokens[0].attributes['gender'])
+                
+                span2var[(start, end)] = var
+                
+    # Map relations 
+    for r in mDoc.relations:
+        var = next(rvar)
+        trigger = r.trigger
+        trigger_label = trigger[0].label[2:]
+        trigger_start = trigger[0].start
+        trigger_end = trigger[-1].end
+        trigger_var = span2var[(trigger_start, trigger_end)]
+        
+        # If a trigger is Spatial_Signal then the 
+        # arguments are of form Trajector and Landmark
+        
+        if trigger_label == 'Spatial_Signal':
+            arg1_label = 'Trajector'
+            arg2_label = 'Landmark'
+
+
+        # If a trigger is Says then the 
+        # arguments are WHO and WHAT
+        
+        elif trigger_label == 'Says':
+            arg1_label = 'WHO'
+            arg2_label = 'WHAT'
+        
+        # Span for the first argument
+        arg1_start = r.arg1[0].start
+        arg1_end = r.arg1[-1].end
+        
+        # Variable for the first argument
+        arg1_var = span2var[(arg1_start, arg1_end)]      
+        
+        # Span for the second argument
+        arg2_start = r.arg2[0].start
+        arg2_end = r.arg2[-1].end
+        
+        # Variable for the second argument
+        arg2_var = span2var[(arg2_start, arg2_end)]        
+            
+        annot_line = "{}\t{}:{} {}:{} {}:{}\n".format(var, 
+                                                      trigger_label, 
+                                                      trigger_var, 
+                                                      arg1_label,
+                                                      arg1_var,
+                                                      arg2_label,
+                                                      arg2_var)
+        
+        ann_str += annot_line
+        
+        
+            
+            
+    return ann_str
+
+if __name__=="__main__":
+    argparser = argparse.ArgumentParser()
+    argparser.add_argument('input_path', help='.txt file to parse')
+    argparser.add_argument('ner_model_path', help='.pkl file containing NER model')
+    argparser.add_argument('rel_model_path', help='.pkl file containing relational model')
+    argparser.add_argument('--say-lut', help='.txt file with list of saywords')
+    argparser.add_argument('--char-lut', help='.txt file with known characters')
+    argparser.add_argument('--place-lut', help='.txt file with known places')
+    argparser.add_argument('--spatial-indicator-lut', help='.txt file with known spatial indicators')
+    argparser.add_argument('--force', help='force overwrite when there is a file to be overwritten')
+    argparser.add_argument('--no-coreference-resolution', action='store_true', help='omit coreference resolution step')
+    
+    args = argparser.parse_args()
+    
+    # Load text file
+    with open(args.input_path) as f:
+        text = " ".join(f.read().split())
+        
+    output_dir = os.path.dirname(args.input_path)
+    output_text_path = args.input_path[:-4] + '_processed.txt'
+    output_quotes_path = args.input_path[:-4] + '_quotes.json'
+    output_annotation_path = args.input_path[:-4] + '_processed.ann'
+        
+    # Load NER model file
+    ner_model = joblib.load(args.ner_model_path)
+    
+    # Load REL model file
+    rel_model = joblib.load(args.rel_model_path)
+    
+    # Load saywords
+    if args.say_lut:
+        saylut_path = args.say_lut
+    else:
+        saylut_path = 'saywords.txt'
+        
+    with open(saylut_path) as f:
+        saylut = [s for s in f.read().split('\n') if s.strip() != '']
+        
+    # Load places LUT
+    if args.place_lut:
+        placelut_path = args.place_lut
+    else:
+        placelut_path = 'places.txt'
+        
+    with open(placelut_path) as f:
+        placelut = [s for s in f.read().split('\n') if s.strip() != '']
+        
+    # Load spatial indicators LUT
+    if args.spatial_indicator_lut:
+        spatial_indicator_lut_path = args.spatial_indicator_lut
+    else:
+        spatial_indicator_lut_path = 'spatial_indicators.txt'
+        
+    with open(spatial_indicator_lut_path) as f:
+        spatial_indicator_lut = [s for s in f.read().split('\n') if s.strip() != '']        
+        
+    # Load character LUT
+    if args.char_lut:
+        charlut_path = args.char_lut
+    else:
+        charlut_path = 'characters.txt'
+        
+    with open(charlut_path) as f:
+        
+        charlist = [s for s in f.read().split('\n') if s.strip() != ''] # One character per line
+        
+        character_lut = {} # Stores character attributes indexed by name
+        for l in charlist:
+            name, attributes = l.split(':') 
+            
+            gender = None
+            age = None
+            
+            for a in attributes.split(','):
+                if 'male' in a:
+                    gender = a
+                elif a.lower() in ['young', 'old']:
+                    age = a
+            
+            character_lut[name] = {}
+            if gender:
+                character_lut[name]['gender'] = gender
+            if age:
+                character_lut[name]['age'] = age
+        
+    if args.no_coreference_resolution:
+        corefres = False
+    else:
+        corefres = True
+    mDoc, quotes = annotate(text, ner_model, rel_model, character_lut, saylut, spatial_indicator_lut, placelut, corefres)
+    
+    annotation_text = doc2brat(mDoc)
+    
+    to_save = {
+            output_text_path: mDoc.text,
+            output_quotes_path: json.dumps(quotes),
+            output_annotation_path: annotation_text
+            }
+    
+    
+    for path in to_save:
+        if not os.path.exists(path) or args.force:
+            with open(path, 'w') as f:
+                f.write(to_save[path])               
+        else:
+            overwrite = input('Path {} exists, overwrite? (y/N) '.format(path))
+            if overwrite[0] in ['Y', 'y']:
+                with open(path, 'w') as f:
+                    f.write(to_save[path]) 
+            
+  
+        
+    
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/demo/workspace/annotation.conf	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,67 @@
+# Simple text-based definitions of hierarchial ontologies of 
+# (physical) entity types, relation types, event types, and
+# attributes.
+
+# This is a minimal example configuration, based (loosely) on some
+# ACE'05 entity, relation and event definitions
+# (http://projects.ldc.upenn.edu/ace/annotation/2005Tasks.html).
+# Please edit this according to the needs of your annotation.
+
+[entities]
+
+# Definition of entities.
+
+# Format is a simple list with one type per line.
+Character
+Object
+Place
+Character_Line
+Path
+Motion
+Motion_Signal
+
+[relations]
+
+# Definition of (binary) relations.
+
+# Format in brief: one relation per line, with first space-separated
+# field giving the relation type and the rest of the line the
+# comma-separated arguments in ROLE:TYPE format. The roles are
+# typically "Arg1" and "Arg2".
+RefersToCharacter  Arg1:Character, Arg2:Character, <REL-TYPE>:symmetric-transitive
+RefersToPlace Arg1:Place, Arg2:Place, <REL-TYPE>:symmetric-transitive
+RefersToObject Arg1:Object, Arg2:Object, <REL-TYPE>:symmetric-transitive
+[events]
+
+<CausedBy>=Character|Object|Referent|Sound_Effect
+Says WHO:Character,WHAT:Character_Line,HappensIn?:Place
+Sound_Effect  CausedBy?:<CausedBy>,HappensIn?:Place
+Spatial_Signal Trajector?:Character,Landmark?:Place
+
+# Definition of events.
+
+# Format in brief: one event per line, with first space-separated
+# field giving the event type and the rest of the line the
+# comma-separated arguments in ROLE:TYPE format. Arguments may be
+# specified as either optional (by appending "?" to role) or repeated
+# (by appending either "*" for "0 or more" or "+" for "1 or more").
+
+# this is a macro definition, used for brevity
+
+# the "!" before a type specifies that it cannot be used for annotation
+# (hierarchy structure only.)
+
+
+[attributes]
+
+# Definition of entity and event attributes.
+
+# Format in brief: first tab-separated field is attribute name, second
+# a set of key-value pairs. The latter must define "Arg:" which
+# specifies what the attribute can attach to (typically "<EVENT>").
+# If no other keys are defined, the attribute is binary (present or
+# absent). If "Value:" with multiple alternatives is defined, the
+# attribute can have one of the given values.
+Gender Arg:Character, Value:Male|Female
+Age    Arg:Character, Value:Young|Old
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/demo/workspace/approach1.py	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,1331 @@
+import difflib
+from sklearn.externals import joblib
+from collections import defaultdict
+import nltk
+import numpy as np
+import re
+import librosa
+import glob
+import pandas as pd
+from nltk.stem import porter
+import sox
+from scipy.io.wavfile import read as wavread
+from scipy.io.wavfile import write as wavwrite
+from numpy.core._internal import _gcd as gcd
+from rtsfx import *
+
+import subprocess
+import os
+import pypeg2 as pg
+import random
+
+VOICE_PROPERTIES = ['slow', 'deep', 'fast', 'stuttering']
+PAUSE_PROPERTIES = ['short', 'long']
+SEPARATORS = [ "[", "]", "(", ")", ":", "-"]
+SFX_MOD_PROPERTIES = ['quiet', 'loud', 'silent']
+
+
+FIXED_VOICES = False
+
+FMV = 0
+FFV = 0
+
+
+male_voices = r"""
+cmu_us_ahw_cg
+cmu_us_awb_cg
+cmu_us_bdl_cg
+cmu_us_fem_cg
+cmu_us_jmk_cg
+cmu_us_ksp_cg
+cmu_us_rms_cg
+""".split()
+
+
+female_voices = r"""
+cmu_us_aup_cg
+cmu_us_axb_cg
+cmu_us_clb_cg
+cmu_us_gka_cg
+cmu_us_rxr_cg
+cmu_us_slt_cg
+""".split()
+
+
+
+# male_voices = r"""
+# cmu_us_ahw_cg
+# cmu_us_fem_cg
+# cmu_us_rms_cg
+# """.split()
+#
+#
+# female_voices = r"""
+# cmu_us_aup_cg
+# cmu_us_axb_cg
+# cmu_us_rxr_cg
+# cmu_us_slt_cg
+# """.split()
+
+fixed_male_voice = male_voices
+fixed_female_voice = female_voices
+
+
+# male_voices = r"""
+# cmu_us_ahw_cg
+# cmu_us_awb_cg
+# cmu_us_bdl_cg
+# cmu_us_fem_cg
+# cmu_us_jmk_cg
+# cmu_us_ksp_cg
+# cmu_us_rms_cg
+# """.split()
+
+
+# male_voices = r"""
+# cmu_us_ahw_cg
+# """.split()
+#
+#
+# female_voices = r"""
+# cmu_us_ahw_cg
+# """.split()
+
+import matplotlib.pyplot as plt
+
+def generate_speech_with_festival(voice,
+                                  panning,
+                                  line,
+                                  sr=None
+                                  ):
+    """
+        Used for speech generation
+        Constructs a festival .sable file
+        and runs it through festival.
+
+    """
+    header = r"""
+    <?xml version="1.0"?>
+    <!DOCTYPE SABLE PUBLIC "-//SABLE//DTD SABLE speech mark up//EN"
+            "Sable.v0_2.dtd"
+    []>
+    <SABLE>
+    <SPEAKER NAME="{}">
+    """.format(voice)
+
+    footer = r"""
+    </SPEAKER>
+    </SABLE>
+    """
+
+    # 0. Construct sable file
+    sable = header + line + footer
+
+    # 1. Save sable file to a temporary .sable file in tmp
+
+    with open('/tmp/character_line.sable', 'w') as f:
+        f.write(sable)
+
+    # 2. Call process to festival
+    cmd = 'text2wave /tmp/character_line.sable -o /tmp/character_line.wav'
+
+    print("Generating speech for line: '{}' with voice '{}' and panning '{}' ".format(line, voice, panning))
+    value = subprocess.call(cmd, shell=True)
+
+    if value != 0:
+        raise RuntimeError("Festival failed to execute.")
+
+    # 3. Load back wave file
+    if sr is None:
+        wav, sr = librosa.load('/tmp/character_line.wav', mono=True)
+    else:
+        wav, sr = librosa.load('/tmp/character_line.wav', sr=sr, mono=True)
+
+    audio = np.vstack([panning*wav,(1.-panning)*wav])
+    #
+    # plt.figure()
+    # plt.plot(audio[0,:])
+    # plt.figure()
+    # plt.plot(audio[1,:])
+    # plt.show()
+    return audio, sr
+
+
+def substr_features(sent,
+                    lower=True, substr=[]):
+    if lower:
+        sent = sent.lower()
+    freqs = defaultdict(int)
+    for ss in substr:
+        if ss in sent:
+            freqs[ss] = 1
+    return dict(freqs)
+
+
+def features_dict_to_matrix(features, feature_labels):
+    N = len(features)
+    M = len(feature_labels)
+    arr = np.zeros((N, M))
+
+    idx_to_feat = list(feature_labels)
+    feat_to_idx = dict((idx_to_feat[k], k) for k in range(len(idx_to_feat)))
+
+    for n in range(arr.shape[0]):
+        for m in range(arr.shape[1]):
+            if idx_to_feat[m] in features[n]:
+                arr[n, m] = features[n][idx_to_feat[m]]
+
+    return arr, list(feat_to_idx.keys())
+
+
+def similar(text1, text2,
+            threshold=0.7  # threshold for similarity
+           ):
+    """ Tests whether two strings are similar """
+
+    ratio = difflib.SequenceMatcher(None, text1.lower(), text2.lower()).ratio()
+    return ratio >= threshold
+
+
+class Master():
+    def __init__(self, downmix):
+        self.downmix = downmix
+
+
+    def get_mastered(self):
+        # Creating transformer
+        tfm = sox.Transformer()
+
+        # Removing everything below 80hz
+        tfm.highpass(80)
+
+        # Adding a notch filter at 200hz to improve clarity
+        tfm.bandreject(200)
+
+        # Loudness control for under -9dB
+        tfm.loudness(gain_db=-9)
+
+        # Store downmix temporarily
+        librosa.output.write_wav('/tmp/downmix_unnormalized.wav', self.downmix, sr=44100, norm=False)
+        tfm.build('/tmp/downmix_unnormalized.wav', '/tmp/downmix_normalized.wav')
+
+        # Load downmix
+        mastered = librosa.core.load('/tmp/downmix_normalized.wav', sr=44100,mono=False )[0]
+        return mastered
+
+
+class Mixer():
+    def __init__(self, multitrack):
+        self.multitrack = multitrack
+
+    def get_downmix(self):
+
+        # Just a trick to get the length of the first track
+        if 'background' in self.multitrack:
+            D = self.multitrack['background'].shape[1]
+        else:
+            for track in self.multitrack:
+                D = self.multitrack[track].shape[1]
+                break
+
+        downmix = np.zeros((2, D))
+        for ttrack in self.multitrack:
+
+            #1. Normalize
+
+            track = self.multitrack[ttrack]
+
+            max_val = np.max(np.abs(track))
+
+            if max_val > 0:
+                track /= max_val
+
+            if ttrack == 'background':
+                track *= 0.05
+
+
+            downmix += track
+
+        return downmix
+
+
+def zafar(lx, rx, d1, g1, m, fc, G, da=0.007, fs=44100.):
+    """ Rafii & Pardo Reverberator (2009) controlled by High Level parameters
+        Inputs:
+            lx : left channel input
+            rx : right channel input
+            d1 : delay of first comb filter in seconds
+            g1 : gain of first comb filters
+            da : delay of allpass filter in seconds
+            G  : dry/wet mix gain
+            fc : lowpass filter cuttoff Hz
+            m  : difference between left and right channel phases
+            fs : sampling rate
+
+        Outputs:
+            ly: left channel output
+            ry: right channel output
+            """
+
+    d1 = int(d1 * fs)
+    m = int(m * fs)
+    da = int(da * fs)
+
+    def calculate_parameters(d1, g1):
+
+        d2 = int(round((1.5) ** (-1) * d1))
+
+        while gcd(d2, d1) != 1:
+            d2 += 1
+
+        d3 = int(round((1.5) ** (-2) * d1))
+
+        while gcd(d3, d2) != 1 or gcd(d3, d1) != 1:
+            d3 += 1
+
+        d4 = int(round((1.5) ** (-3) * d1))
+
+        while gcd(d4, d3) != 1 or gcd(d4, d2) != 1 or gcd(d4, d1) != 1:
+            d4 += 1
+
+        d5 = int(round((1.5) ** (-4) * d1))
+
+        while gcd(d5, d4) != 1 or gcd(d5, d3) != 1 or gcd(d5, d2) != 1 or gcd(d5, d1) != 1:
+            d5 += 1
+
+        d6 = int(round((1.5) ** (-5) * d1))
+        while gcd(d6, d5) != 1 or gcd(d6, d4) != 1 or gcd(d6, d3) != 1 or gcd(d6, d2) != 1 or gcd(d6, d1) != 1:
+            d6 += 1
+        g2 = g1 ** (1.5) ** (-1) * g1
+        g3 = g1 ** (1.5) ** (-2) * g1
+        g4 = g1 ** (1.5) ** (-3) * g1
+        g5 = g1 ** (1.5) ** (-4) * g1
+        g6 = g1 ** (1.5) ** (-5) * g1
+
+        return (d1, d2, d3, d4, d5, d6, g1, g2, g3, g4, g5, g6)
+
+    def comb_array(x, g1, d1):
+
+        (d1, d2, d3, d4, d5, d6, g1, g2, g3, g4, g5, g6) = calculate_parameters(d1, g1)
+
+        c1out = comb(x, g1, d1)
+        c2out = comb(x, g2, d2)
+        c3out = comb(x, g3, d3)
+        c4out = comb(x, g4, d4)
+        c5out = comb(x, g5, d5)
+        c6out = comb(x, g6, d6)
+
+        Lc1 = len(c1out)
+        Lc2 = len(c2out)
+        Lc3 = len(c3out)
+        Lc4 = len(c4out)
+        Lc5 = len(c5out)
+        Lc6 = len(c6out)
+
+        Lc = max(Lc1, Lc2, Lc3, Lc4, Lc5, Lc6)
+
+        y = np.zeros((Lc,))
+
+        y[0:Lc1] = c1out
+        y[0:Lc2] += c2out
+        y[0:Lc3] += c3out
+        y[0:Lc4] += c4out
+        y[0:Lc5] += c5out
+        y[0:Lc6] += c6out
+
+        return y
+
+    def comb(x, g, d):
+        LEN = len(x) + d
+        #    print d
+        y = np.zeros((LEN,))
+        for n in range(0, LEN):
+            if n - d < 0:
+                y[n] = 0
+            else:
+                y[n] = x[n - d] + g * y[n - d]
+
+        return y
+
+    def allpass(x, g, d):
+        LENx = len(x)
+        LENy = LENx + d
+        y = np.zeros((LENy,))
+        for n in range(0, LENy):
+            if n - d < 0:
+                y[n] = -g * x[n]
+            elif n >= LENx:
+                y[n] = x[n - d] + g * y[n - d]
+            else:
+                y[n] = x[n - d] - g * x[n] + g * y[n - d]
+
+        return y
+
+    def lowpass(x, g):
+        LEN = len(x)
+        y = np.zeros((LEN,))
+
+        for n in range(0, LEN):
+            if n - 1 < 0:
+                y[n] = (1 - g) * x[n]
+            else:
+                y[n] = (1 - g) * x[n] + g * y[n - 1]
+
+        return y
+
+    ga = 1. / np.sqrt(2.)
+
+    cin = 0.5 * lx + 0.5 * rx
+    cout = comb_array(cin, g1, d1)
+
+    ra = allpass(cout, ga, da + m // 2)
+    la = allpass(cout, ga, da - m // 2)
+
+    gc = 2 - np.cos(2 * np.pi * fc / fs) - np.sqrt((np.cos(2 * np.pi * fc / fs) - 2) ** 2 - 1)
+
+    ral = lowpass(ra, gc)
+    lal = lowpass(la, gc)
+
+    ralg = G * ral
+    lalg = G * lal
+
+    ry = ralg[0:len(rx)] + (1 - G) * rx
+    ly = lalg[0:len(lx)] + (1 - G) * lx
+
+    return np.vstack([ry, ly])
+
+def get_reverb_from_tags(xl, xr, tags, fs=44100):
+    reverb_csv = 'contributions.csv'
+    df = pd.read_csv(reverb_csv)
+    df = df.fillna("")
+    params = []
+    for n in range(len(df)):
+        if all([t in df['agreed'].iloc[n].split(',') for t in tags]):
+            params.append(df['param'].iloc[n])
+    d1, g1, m, fc, G = [float(f) for f in params[0].split(',')]
+    y = zafar(xl, xr, d1, g1, m, fc, G, fs=fs)
+    return y
+
+
+def fade(x, fade_in, fade_out, sr=44100):
+    """
+    Creates a fade-in-fade-out envelope
+    for audio array x.
+    """
+
+    if len(x) == 0:
+        return x
+
+    fade_in_samples = int(fade_in * sr)
+    fade_out_samples = int(fade_out * sr)
+
+    outp = np.ones_like(x)
+    for n in range(fade_in_samples):
+        outp[n] = n * 1. / fade_in_samples
+
+    for n in range(fade_out_samples):
+        outp[len(outp) - fade_out_samples + n] = 1 - 1. / fade_out_samples * n
+    return outp * x
+
+
+def slope(x, slope_in, slope_out, delay=1.0, v=0.1, sr=44100):
+    """
+    Creates a slope in slope out envelope
+    """
+
+    if len(x) == 0:
+        return x
+
+    delay_samples = int(delay * sr)
+    slope_in_samples = int(slope_in * sr)
+    slope_out_samples = int(slope_out * sr)
+
+    outp = np.zeros_like(x)
+
+    for n in range(len(outp)):
+        if n >= 0 and n < delay_samples:
+            outp[n] = 1.0 - v
+        elif n >= delay_samples and n < delay_samples + slope_in_samples:
+            outp[n] = (1. - v) - (1. - v) / slope_in_samples * (n - delay_samples)
+        elif n >= delay_samples + slope_in_samples and n < len(outp) - delay_samples - slope_out_samples:
+            outp[n] = 0
+        elif n >= len(outp) - delay_samples - slope_out_samples and n < len(outp) - delay_samples:
+            outp[n] = (1. - v) / slope_out_samples * (n - len(outp) + delay_samples + slope_out_samples)
+            if outp[n] < 0:
+                print(n)
+                break
+        elif n >= len(outp) - delay_samples:
+            outp[n] = 1.0 - v
+
+    outp += v
+
+    return outp * x
+
+
+def get_background(
+        fname,
+        duration,
+        ft=0.5,
+):
+    print(fname)
+    bg, sr = librosa.load(fname)
+    f_s = int(ft * sr)
+    y = bg
+    z = np.zeros((duration,))
+    if len(y) < len(z):
+        y = fade(y, ft, ft, sr)
+        for n in range(0, len(z) - len(y), len(y) - f_s):
+            z[n:n + len(y)] += y
+        n += len(y) - f_s
+        if len(y) > len(z[n:]):
+            z[n:] += y[:len(z[n:])]
+        else:
+            z[n:n + len(y)] += y
+
+        z = fade(z, ft, ft, sr=sr)
+
+    elif len(y) > len(z):
+        z += fade(y[0:len(z)], ft, ft, sr=sr)
+    return z
+
+
+def compose_bg_scene(bgs, background_changes, D, delay=3*44100):
+    z = np.zeros((2,D))
+    for n in range(len(background_changes)):
+        bg_choice = background_changes[n][1]
+        start = background_changes[n][0]
+        fname = bgs[bg_choice]
+        if n < len(background_changes) - 1:
+            duration = background_changes[n + 1][0] - background_changes[n][0]
+        else:
+            duration = D - background_changes[n][0]
+
+        y = get_background(fname, duration)
+        z[0,start:start + len(y)] = y
+        z[1, start:start + len(y)] = y
+    #z = fade(z, 1., 1.)
+    return z
+
+
+class Director():
+    def __init__(self, script, sound_dir, speech_dir):
+        """
+        Gets a list of script
+
+        :param sound_dir: directory of sound files
+        :param speech_dir: directory of speech files
+        :param script: the script
+        """
+
+        # Gets character definitions
+
+        ## TODO: Change this to also have accents
+
+        self.voice_params = {}
+        self.scene_params = {}
+        self.bg_params = {}
+
+        # This holds the fxive sound engine if available
+        self.fxive = None
+
+        global FFV, FMV
+        for d in script['definitions']:
+            if d['type'] == 'scene_definition':
+                number = int(d['number'])
+                tags = d['tags']
+                filename = d['filename']
+
+                # If it starts with fxive: then get the preset from fxive
+                if 'fxive:' == filename[:6]:
+                    print("Fetching sample from fxive...")
+                    if self.fxive is not None:
+                        self.bg_params[number] = self.fxive.get_sfx(filename[6:])
+                    else:
+                        self.fxive = FXive(sfx_path=os.path.join(sound_dir, 'sfx.xls'))
+                        self.bg_params[number] = self.fxive.get_sfx(filename[6:])
+                else:
+                    self.bg_params[number] = filename
+
+                if 'none' in tags:
+                    self.scene_params[number] = []
+                else:
+                    self.scene_params[number] = tags
+
+            if d['type'] == 'cast_definition':
+               # print("-----------------")
+                name = d['name']
+                gender = random.sample(d['gender'], 1)[0]
+                panning = random.sample(d['panning'], 1)[0]
+
+                if panning == 'left':
+                    panning = 0.01
+                elif panning == 'right':
+                    panning = 0.99
+                elif panning in ['center', 'centre']:
+                    panning = 0.5
+                #print(gender, panning)
+                if gender == 'female':
+                    # Choose a random female voice
+                    voice = random.sample(female_voices, 1)[0]
+
+                    if FIXED_VOICES:
+                        voice = fixed_female_voice[FFV]
+                        FFV += 1
+                else:
+                    # Choose a random male voice
+                    voice = random.sample(male_voices, 1)[0]
+
+                    if FIXED_VOICES:
+                        voice = fixed_male_voice[FMV]
+                        FMV += 1
+
+                self.voice_params[name] = (voice, panning)
+
+                # if character_panning == 0.5:
+                #     character_panning = 0.1
+                # elif character_panning == 0.1:
+                #     character_panning = 0.9
+                # elif character_panning == 0.9:
+                #     character_panning = 0.1
+
+
+        if self.fxive is not None:
+            self.fxive.close()
+
+        self.script = script
+        self.sound_dir = sound_dir
+        self.speech_dir = speech_dir
+
+        self.musicmanager = MusicManager(sound_dir)
+        self.pausemanager = PauseManager()
+        self.speechmanager = SpeechManager(speech_dir, self.voice_params)
+        self.sfxmanager = SoundManager(sound_dir)
+
+    def get_voice_params(self, name):
+        return self.voice_params[name]
+
+    def generate_multitrack(self):
+        # Shift by 4 seconds
+        D = 0
+        P = []
+        track_names = []
+
+       # print(self.script['script'])
+
+        current_scene = 1
+        current_reverb_tags = ""
+
+        scene_changes = []
+
+        # Create a program of scripts
+        for s in self.script['script']:
+            if s['type'] == 'music':
+                name = 'music'
+                audio = self.musicmanager.retrieve_music(s)
+            elif s['type'] == 'sfx':
+                name = s['name'].lower()
+                audio = self.sfxmanager.retrieve_sfx(s)
+            elif s['type'] == 'scene_change':
+                current_scene = int(s['number'])
+                #print(current_scene)
+                #print(self.scene_params)
+                current_reverb_tags = self.scene_params[current_scene]
+
+                print("Changed to scene {} with reverb tags: {}".format(current_scene, current_reverb_tags))
+                scene_changes.append((D, current_scene))
+                continue
+            elif s['type'] == 'pause':
+                name = 'pause'
+                audio = self.pausemanager.retrieve_pause(s)
+            elif s['type'] == 'cast_line':
+                print(s)
+                name = s['name'].lower()
+                audio = self.speechmanager.retrieve_speech(s)
+                if len(current_reverb_tags) > 0:
+                    print("Applying reverberation with tags: {}".format(current_reverb_tags))
+                    print(audio.shape)
+                    if s['name'] != 'Narrator':
+                        audio = get_reverb_from_tags(audio[0,:], audio[1,:], current_reverb_tags)
+
+            if name not in track_names:
+                track_names.append(name)
+            D += audio.shape[1]
+            P.append((name,audio))
+
+        multitrack = {t: np.zeros((2, D)) for t in track_names}
+
+        print("Composing bg scene")
+        multitrack['background'] = compose_bg_scene(self.bg_params, scene_changes, D)
+
+        idx = 0
+        for p in P:
+            multitrack[p[0]][:, idx:idx+p[1].shape[1]] = p[1]
+            idx += p[1].shape[1]
+
+        return multitrack
+
+
+
+class Generator():
+    def __init__(self):
+        pass
+
+    def generate(self):
+        with open('../data/scripts/The Mystery Of Spooky Hill.txt') as f:
+            return f.read()
+
+
+class PauseManager():
+    def __init__(self):
+        """
+        Manages pauses
+        """
+
+    def retrieve_pause(self, input_):
+        duration_str = input_['duration']
+        if duration_str == 'long':
+            duration = 3.0
+        elif duration_str == 'short':
+            duration = 1.0
+
+        audio = np.zeros((2, int(duration*44100)))
+        return audio
+
+class SpeechManager():
+    def __init__(self, speech_folder, voice_params):
+        """
+
+        :param speech_folder: the folder the speech .mp3s are
+        """
+
+        self.voice_params = voice_params
+        self.speech_folder = speech_folder
+        try:
+            self.transcriptions = pd.read_excel(os.path.join(speech_folder ,'transcript.xls'))
+        except:
+            # If the file does not exist
+            self.transcriptions = None
+
+        print('Transcription file:' + str(os.path.join(speech_folder ,'transcript.xls')))
+        print('Transcriptions:' + str(self.transcriptions))
+
+    def retrieve_speech(self, input_):
+     #   print(input_)
+        cast_member = input_['name']
+     #   print(self.voice_params)
+        cast_voice = self.voice_params[cast_member][0] # 0th element is voice
+        cast_panning = self.voice_params[cast_member][1] #1th element is panning
+
+        cast_line = input_['line']
+
+        can_find_entry = False
+
+
+        # If the file does not exist
+        cast_lines_df = self.transcriptions[self.transcriptions['cast'].map(lambda x: x.lower()) == cast_member.lower()]
+        similarities = {}
+        for n in cast_lines_df.index:
+            similarities[n] = difflib.SequenceMatcher(None, cast_line, cast_lines_df['line'].loc[n]).ratio()
+
+        # Most similar entry location
+        chosen_entry = max(similarities, key=lambda x: similarities[x])
+        chosen_file = cast_lines_df['filename'].loc[chosen_entry]
+        chosen_line = cast_lines_df['line'].loc[chosen_entry]
+
+        if similar(cast_line, chosen_line):
+            can_find_entry = True
+
+        chosen_file_path = os.path.join(self.speech_folder, chosen_file)
+        print("Retrieving: " + chosen_file_path)
+
+        if os.path.exists(chosen_file_path):
+            audio, sr = librosa.core.load(chosen_file_path, sr=44100, mono=False)
+            #print("panning: {}".format(cast_panning))
+            audio[0,:] *= cast_panning
+            audio[1,:] *= (1-cast_panning)
+        else:
+            can_find_entry = False
+
+        if not can_find_entry:
+            # 1. Generate line
+            audio, sr = generate_speech_with_festival(cast_voice, cast_panning, cast_line, sr=44100)
+            # print("panning: {}".format(cast_panning))
+            # audio[0,:] *= cast_panning
+            # audio[1,:] *= (1-cast_panning)
+
+
+
+        # If the line is too disimilar, synthesize it, else use the chosen line
+        return audio
+
+
+class SoundManager():
+    def __init__(self, sound_folder):
+        """
+
+        :param sound_folder: the folder the music .mp3s are
+        """
+
+
+        self.sound_folder = sound_folder
+        self.sound_file_names = [f.split('/')[-1] for f in glob.glob(sound_folder + '*.mp3')]
+
+        # If the directory is empty, return.
+        if len(self.sound_file_names) == 0:
+            return
+        # Lookup strings
+        strings = []
+        for f in self.sound_file_names:
+            strings.append(" ".join(re.findall('[A-Za-z]+', f)).lower())
+
+        # Sanitize strings, remove the most common substring
+
+        # Find most common substring
+        string1 = strings[0]
+        for n in range(1, len(strings)):
+            string2 = strings[n]
+            match = difflib.SequenceMatcher(None, string1, string2).find_longest_match(0, len(string1), 0, len(string2))
+            string1 = string2[match.b:match.b + match.size]
+
+        # Remove most common substring
+        ## TODO: Check here please, should we remove it?
+
+        # strings = [s.replace(string1, '') for s in strings]
+        self.lookup = strings
+
+    def retrieve_sfx(self, input_):
+        """
+
+        :param query: dictionary object from parser
+        :return: audio matrix containing audio file
+        """
+
+        query = input_['name'].lower()
+        # Lematize words before checking for similarity
+        stemmer = porter.PorterStemmer()
+
+        qwords = [stemmer.stem(q).lower() for q in query.split()]
+        similarities = []
+
+        # If the words in the query are available in the words in the filename, then increase by 1. Finally,
+        # divide by the total number of words (Jaccard similarity?)
+
+        for s in self.lookup:
+
+            words = [stemmer.stem(w).lower() for w in s.split()]
+            similarities.append(0.)
+
+            for qw in qwords:
+                for w in words:
+                    similarities[-1] += difflib.SequenceMatcher(None, qw, w).ratio()
+
+            similarities[-1]/=float(len(words))
+
+        # This is argmax
+        chosen = [n for n in range(len(similarities)) if similarities[n] == max(similarities)][0]
+        chosen_fname = self.sound_folder + self.sound_file_names[chosen]
+        audio = librosa.core.load(chosen_fname, sr=44100, mono=False)
+        return audio[0]
+
+
+class MusicManager():
+    def __init__(self, sound_folder):
+        """
+
+        :param sound_folder: the folder the music .mp3s are
+        """
+
+        self.sound_folder = sound_folder
+        self.sound_file_names = [f.split('/')[-1] for f in glob.glob(sound_folder + '/*.mp3')]
+
+        # If the directory is empty, return.
+        if len(self.sound_file_names) == 0:
+            return
+
+        # Lookup strings
+        strings = []
+        for f in self.sound_file_names:
+            strings.append(" ".join(re.findall('[A-Za-z]+', f)).lower())
+
+        # Sanitize strings, remove the most common substring
+
+        # Find most common substring
+        string1 = strings[0]
+        for n in range(1, len(strings)):
+            string2 = strings[n]
+            match = difflib.SequenceMatcher(None, string1, string2).find_longest_match(0, len(string1), 0, len(string2))
+            string1 = string2[match.b:match.b + match.size]
+
+        # Remove most common substring
+        strings = [s.replace(string1, '') for s in strings]
+        self.lookup = strings
+
+    def retrieve_music(self, input_):
+        """
+
+        :param query: dictionary object from parser
+        :return: audio matrix containing audio file
+        """
+
+        query = input_['name'].lower() + ' music'
+
+        similarities = []
+
+        # If the words in the query are available in the words in the filename, then increase by 1. Finally,
+        # divide by the total number of words (Jaccard similarity?)
+
+        for s in self.lookup:
+            qwords = query.split()
+            words = s.split()
+            similarities.append(0.)
+
+            for qw in qwords:
+                if qw in words:
+                    similarities[-1] += 1.
+
+            similarities[-1]/=float(len(words))
+
+        # This is argmax
+        chosen = [n for n in range(len(similarities)) if similarities[n] == max(similarities)][0]
+        chosen_fname = self.sound_folder + self.sound_file_names[chosen]
+        audio = librosa.core.load(chosen_fname, sr=44100, mono=False)
+        return audio[0]
+
+
+# Classes for aiding parsing
+class Environment:
+    def __init__(self, varname, name):
+        self.name = name
+        self.varname = varname
+
+    def to_json(self):
+        return {"type": "environment_definition", "name": self.name}
+
+
+class Sound_Effect:
+    def __init__(self, varname, name, pos):
+        self.name = name
+        self.varname = varname
+        self.keywords = [kw for kw in name.split()]
+
+        # Set the end to pos-1 so the first
+        # character of the next line won't be ommited
+
+        self.pos = (pos, pos - 1)
+
+    def to_json(self):
+        return {
+            'definition': {
+                'type': 'sfx_definition',
+                'name': ' '.join(self.keywords),
+                'optional': False
+            },
+            'playback': {
+                'type': 'sfx',
+                'name': ' '.join(self.keywords)
+            }
+        }
+
+    def add_keywords(self, keywords):
+        for kw in keywords:
+            self.keywords.insert(0, kw)
+
+    def __str__(self):
+        return "({} FX)".format(' '.join(self.keywords))
+
+    def definition(self):
+        return ' '.join(self.keywords)
+
+    def script(self):
+        return str(self)
+
+
+class Character_Line:
+    def __init__(self, varname, txt, pos_start, pos_end):
+        self.varname = varname
+        self.txt = '. '.join([sent.capitalize() for sent in txt.split('\n')])
+        if self.txt[-1] != '.':
+            self.txt += '.'
+
+        self.character = None
+        self.pos = (pos_start, pos_end)
+
+    def set_character(self, character):
+        self.character = character
+
+    def __str__(self):
+        return "{}: {}".format(self.character.name, self.txt)
+
+    def script(self):
+        return "[{}] {}".format(self.character.name, self.txt)
+
+    def set_pos(self, start, end):
+        self.pos = (start, end)
+
+    def to_json(self):
+        return {'playback': {"type": "cast_line", "name": self.character.name, "line": self.txt}}
+
+
+class Character:
+    def __init__(self, varname, name):
+        self.name = ' '.join([n.capitalize() for n in name.split()])
+        self.varname = varname
+        self.gender = ''
+        self.age = ''
+
+    def set_gender(self, gender):
+        self.gender = gender
+
+    def set_age(self, age):
+        self.age = age
+
+    def definition(self):
+        str_ = self.name + ' - '
+        if self.gender == '':
+            str_ += 'male or female'
+        else:
+            str_ += self.gender
+
+        return str_
+
+    def __str__(self):
+        return __repr__(self)
+
+    def __repr__(self):
+        return "[{}:{}/{}/{}]".format(self.varname, self.name, self.gender, self.age)
+
+    def to_json(self):
+        json_dict = {"type": "cast_definition", "name": self.name}
+        if self.gender != '':
+            json_dict['gender'] = self.gender
+        if self.age != '':
+            json_dict['age'] = self.age
+
+        return json_dict
+
+
+class KDuration(pg.Keyword):
+    grammar = pg.Enum(pg.K('long'), pg.K('short'))
+
+
+class Pause(pg.Plain):
+    grammar = '(', pg.optional(pg.attr('duration', KDuration)), 'pause', ')'
+
+
+class CastHeader(pg.Plain):
+    grammar = 'Cast', pg.optional('List'), ':', pg.endl
+
+
+class KGender(pg.Keyword):
+    grammar = pg.Enum(pg.K('male'), pg.K('female'))
+
+
+class EGender(pg.List):
+    grammar = KGender, pg.optional('or', KGender)
+
+
+class KPan(pg.Keyword):
+    grammar = pg.Enum(pg.K('left'), pg.K('right'), pg.K('center'), pg.K('centre'))
+
+
+class EPan(pg.List):
+    grammar = KPan, pg.optional('or', KPan)
+
+
+class CastDefinition(pg.Plain):
+    grammar = pg.attr('cast_name', re.compile('[A-Za-z0-9 ]+')), \
+              re.compile('\-+'), \
+              pg.attr('gender', EGender), \
+              re.compile('\-+'), \
+              'panned', \
+              pg.attr('panning', EPan), pg.endl
+
+
+class Tag(pg.Plain):
+    grammar = pg.attr('tag', re.compile(r'[A-Za-z0-9_\-]+'))
+
+
+class LTag(pg.List):
+    grammar = pg.csl(Tag)
+
+
+class ScenesHeader(pg.Plain):
+    grammar = re.compile('Scenes?'), pg.optional('List'), ':', pg.endl
+
+
+class ScenesDefinition(pg.Plain):
+    grammar = pg.attr('number', re.compile('[A-Za-z0-9]+')), \
+              re.compile('\-+'), pg.attr('name', re.compile('[A-Za-z0-9]+')), \
+              re.compile('\-+'), pg.attr('filename', re.compile('[A-Za-z0-9_\:]+(\.(mp3|wav))?')), \
+              re.compile('\-+'), pg.attr('tags', LTag), pg.endl
+
+
+class ScriptHeader(pg.Plain):
+    grammar = 'Script', ':', pg.endl
+
+
+class SceneCommence(pg.Plain):
+    grammar = re.compile('\-+'), 'Scene', pg.attr('scene', re.compile('[A-Za-z0-9]+')), pg.optional(
+        re.compile('\-+')), pg.endl;
+
+
+class CastLine(pg.Plain):
+    grammar = '[', pg.attr('cast_name', re.compile('[A-Za-z0-9 ]+')), ']', pg.attr('line',
+            re.compile(r'[A-Za-z0-9\-_.\ \" \'\,\?\:\!]+')),
+
+
+class Headers(pg.Plain):
+    grammar = CastHeader, \
+              pg.attr('cast_list', pg.maybe_some(CastDefinition)), \
+              pg.optional(ScenesHeader, pg.attr('scene_list', pg.maybe_some(ScenesDefinition))), pg.optional(
+        ScriptHeader)
+
+
+class Script(pg.List):
+    grammar = pg.some([Pause, SceneCommence, CastLine])
+
+
+class ScriptDocument(pg.Plain):
+    grammar = pg.attr('headers', Headers), pg.attr('script', Script)
+
+
+class Parser:
+    def __init__(self):
+        pass
+
+    def parse_str(self, str_):
+
+        obj = pg.parse(str_, ScriptDocument)
+        definitions = []
+        script = []
+
+        for cast_def in obj.headers.cast_list:
+            name = cast_def.cast_name.strip()
+            gender = [str(t) for t in cast_def.gender]
+
+            panning = [str(t) for t in cast_def.panning]
+
+            cast_dict = {'type': 'cast_definition', 'name': name, 'gender': gender, 'voice': [], 'panning': panning}
+            definitions.append(cast_dict)
+
+        for scene_def in obj.headers.scene_list:
+            name = scene_def.name.strip()
+            number = scene_def.number
+            filename = scene_def.filename
+            tags = [str(t.tag) for t in scene_def.tags]
+            scene_dict = {'type': 'scene_definition',
+                          'scene': name,
+                          'number': number,
+                          'filename': scene_def.filename,
+                          'tags': tags}
+            definitions.append(scene_dict)
+
+        for action in obj.script:
+            if isinstance(action, Pause):
+                duration = str(action.duration)
+                pause_dict = {'type': 'pause', 'duration': duration}
+                script.append(pause_dict)
+            if isinstance(action, SceneCommence):
+                number = str(action.scene).strip()
+                scene_dict = {'type': 'scene_change', 'number': number}
+                script.append(scene_dict)
+            if isinstance(action, CastLine):
+                name = str(action.cast_name).strip()
+                line = str(action.line)
+                cast_line = {'type': 'cast_line', 'name': name, 'line': line}
+                script.append(cast_line)
+
+        return {'definitions': definitions, 'script': script}
+
+
+class Preprocessor():
+    def __init__(self):
+        self.parsed_dict = None
+        self.regexp_entity = re.compile('(?P<variable>[A-Z][0-9]+)\s+(?P<type>[A-Z][A-Za-z_]*)\s+([0-9]+)\s+([0-9]+)(?P<name>(\s+[A-Za-z\'\"]+)+$)')
+        self.regexp_attribute = re.compile('(?P<variable>[A-Z][0-9]+)\s+(?P<type>[A-Z][A-Za-z_]*)\s+(?P<target_variable>[A-Z][0-9]+)\s+(?P<value>[A-Za-z]+)')
+        self.regexp_relation = re.compile('(?P<variable>[A-Z][0-9]+)\s+(([A-Za-z0-9_]+:[A-Z0-9]+\s*)+)')
+        self.regexp_transitive = re.compile('(?P<arity>\*)\s+(?P<type>[A-Z][A-Za-z_]*)\s+(?P<refersTo1>[A-Z][0-9]+)\s+(?P<refersTo2>[A-Z][0-9]+)\s*')
+
+    def parse_str(self, text, annot):
+        """ takes as input a text and an annotation string """
+
+        tups = [tup for tup in annot.split('\n') if tup.strip() != '']
+
+        # Add the narrator
+        narrator = Character('_', 'Narrator')
+        characters = [narrator]
+
+        objects = []
+        character_lines = []
+        sound_effects = []
+
+        def find_character(var):
+            for c in characters:
+                if c.varname == var:
+                    return c
+
+        def find_character_or_object(var):
+            c = find_character(var)
+            if c is not None:
+                return c
+
+        def find_character_lines(var):
+            for c in character_lines:
+                if c.varname == var:
+                    return c
+
+        def find_sound_effect(var):
+            for c in sound_effects:
+                if c.varname == var:
+                    return c
+
+        def character_speaks(c):
+            for cl in character_lines:
+                if isinstance(cl, Character_Line) and cl.character == c:
+                    return True
+            return False
+
+        for tup in tups:
+            # print(tup)
+
+            groups = self.regexp_entity.findall(tup)
+            if len(groups) > 0:
+                if groups[0][1] == 'Character':
+                    # If the entity is a character
+                    characters.append(
+                        Character(groups[0][0].strip(), groups[0][4].strip())
+                    )
+                elif groups[0][1] == 'Character_Line':
+                    character_lines.append(
+                        Character_Line(groups[0][0].strip(), groups[0][4].strip(), int(groups[0][2]), int(groups[0][3]))
+                    )
+                elif groups[0][1] == 'Sound_Effect':
+                    sound_effects.append(
+                        Sound_Effect(groups[0][0].strip(), groups[0][4].strip(), int(groups[0][2]))
+                    )
+                continue
+
+        for tup in tups:
+            # Attributes and relations
+            groups = self.regexp_attribute.findall(tup)
+            if len(groups) > 0:
+                if groups[0][1] == 'Gender':
+                    # if
+                    c = find_character(groups[0][2].strip())
+                    c.set_gender(groups[0][3].strip().lower())
+                elif groups[0][1] == 'Age':
+                    c = find_character(groups[0][2].strip())
+                    c.set_age(groups[0][3].strip().lower())
+
+        for tup in tups:
+            # Attributes and relations
+            groups = self.regexp_relation.findall(tup)
+            if len(groups) > 0 and groups[0][1][:4] == 'Says':
+                # print(groups)
+                refs = groups[0][1].split()[1:]
+
+                # Store who and whats
+                whats = []
+                who = None
+
+                for ref in refs:
+                    type_, var = ref.split(':')
+                    if type_[:4] == 'WHAT':
+                        whats.append(var)
+                    elif type_[:3] == 'WHO':
+                        who = find_character(var)
+
+                # find character lines:
+                clines = [find_character_lines(w) for w in whats]
+
+                # Assign characters
+                for cl in clines:
+                    cl.set_character(who)
+            elif len(groups) > 0 and groups[0][1][:12] == 'Sound_Effect':
+                sfx = find_sound_effect(groups[0][1][13:].split()[0])
+                #print(groups)
+
+                # Store extra keywords
+                keywords = []
+
+                refs = groups[0][1].split()[1:]
+                for ref in refs:
+                    #print(ref)
+                    type_, var = ref.split(':')
+                    if type_[:8] == 'CausedBy':
+                        cause = find_character_or_object(var)
+                        if cause != None:
+                            keywords.append(cause.name)
+
+                sfx.add_keywords(keywords)
+
+        # %% Calculate line segments for character lines and narration
+
+        # Add sound effects to the timeline
+        clpos = [cl.pos for cl in character_lines]
+        clpos += [sfx.pos for sfx in sound_effects]
+        clpos = sorted(clpos, key=lambda x: x[0])
+
+        # Add first narrator line
+        cl = Character_Line('_', text[0:clpos[0][0]], 0, clpos[0][0] - 1)
+        cl.set_character(narrator)
+        character_lines.append(cl)
+
+        for n in range(len(clpos) - 1):
+            if clpos[n][1] != clpos[n + 1][0] - 1:
+                cl = Character_Line('_', text[clpos[n][1] + 1:clpos[n + 1][0]].rstrip(), clpos[n][1] + 1,
+                                    clpos[n + 1][0] - 1)
+                cl.set_character(narrator)
+                character_lines.append(cl)
+
+        character_lines += sound_effects
+        character_lines = sorted(character_lines, key=lambda x: x.pos[1])
+
+        # parsed_dict = {'definitions': [c.to_json() for c in characters],
+        #                'script': [cl.to_json() for cl in character_lines]}
+
+        # parsed_dict = {'definitions': [], 'script':[]}
+        #
+        # print("Cast List:")
+        # for c in characters:
+        #     if character_speaks(c):
+        #         print(c.definition())
+        #
+        # print("")
+        # print("Sound Effects:")
+        #
+        # for c in sound_effects:
+        #     print(c.definition())
+        #
+        # for cl in character_lines:
+        #     print(cl.script())
+
+        # Add definitions for characters
+        # for c in characters:
+        #     if character_speaks(c):
+        #         parsed_dict['definitions'].append(c.to_json())
+        #
+        # # Add definitions for sound effects
+        # for c in sound_effects:
+        #     parsed_dict['definitions'].append(c.to_json()['definition'])
+        #
+        #
+        # # Add timeline information
+        # for cl in character_lines:
+        #     parsed_dict['script'].append(cl.to_json()['playback'])
+
+        str_ = "Cast List:\n"
+        for c in characters:
+            if character_speaks(c):
+                str_ += "{}\n".format(c.definition())
+
+        str_ += "Sound Effects:\n"
+        for c in sound_effects:
+            str_ += "{}\n".format(c.definition())
+
+
+        for cl in character_lines:
+            str_ += "{}\n".format(cl.script())
+
+
+        return str_
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/demo/workspace/example.txt	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,4 @@
+Once upon a time there was a Bull feeding in a meadow. 
+He was minding his own business when a Lion approached him.
+The Lion said: "Hello there, friend!"
+The Bull replied to her: "Stay back Lion, I know what you want to do!"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/demo/workspace/radioplay-gen_approach1.py	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,89 @@
+import numpy as np
+import librosa
+import argparse
+import sys
+from approach1 import *
+import soundfile as sf
+from rtsfx import *
+
+if __name__ == "__main__":
+    argparser = argparse.ArgumentParser(
+        description="Converts script .txt files to radioplays downmixes"
+    )
+
+    argparser.add_argument(
+        'script_path',
+        type=str,
+        help="The script .txt path"
+    )
+
+    #
+    # argparser.add_argument(
+    #     'annot_path',
+    #     type=str,
+    #     help="The script .ann path"
+    # )
+
+    argparser.add_argument(
+        'sound_path',
+        type=str,
+        help="The music and sfx files path"
+    )
+
+    argparser.add_argument(
+        'speech_path',
+        type=str,
+        help="The speech files path"
+    )
+
+    argparser.add_argument(
+        'output_path',
+        type=str,
+        help="The music and sfx files path"
+    )
+
+    args = argparser.parse_args()
+    if args.output_path.split('.')[-1] != 'wav':
+        print("Sorry, only .wav files are supported for output")
+        sys.exit()
+
+    with open(args.script_path) as f:
+        input_txt = f.read()
+    #
+    # with open(args.annot_path) as f:
+    #     input_ann = f.read()
+
+    # preprocessor = Preprocessor()
+    # preprocessed_text = preprocessor.parse_str(input_txt, input_ann)
+    #
+    # with open(args.script_path.split('/')[-1].replace('.txt', '_preprocessed.txt'), 'w') as f:
+    #     f.write(preprocessed_text)
+    #
+    #
+    # print(preprocessed_text)
+
+    preprocessed_text = input_txt
+
+    parser = Parser()
+    parsed_script = parser.parse_str(preprocessed_text)
+
+
+    with open(args.script_path.split('/')[-1].replace('txt','json'), 'w') as f:
+        f.write(str(parsed_script))
+
+    director = Director(parsed_script, args.sound_path, args.speech_path)
+    multitrack = director.generate_multitrack()
+
+    mixer = Mixer(multitrack)
+    downmix = mixer.get_downmix()
+
+    master = Master(downmix)
+    mastered = master.get_mastered()
+
+    librosa.output.write_wav(args.output_path, mastered, sr=44100, norm=False)
+    #sf.write(args.output_path, downmix, 44100, format=args.output_path.split('.')[-1])
+
+
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/demo/workspace/radioplay_render.sh	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,15 @@
+#/bin/bash
+# -*- coding: utf-8 -*-
+"""
+Created on Wed May 16 17:19:10 2018
+
+@author: mmxgn
+"""
+
+echo "Please edit the transcript .xls file if necessary. If you want to replace the voices, just record your voice and store them"
+echo "using the filenames under column 'filename' in transcript.xls. Do the same for sfx.xls. Press enter here when you're done"
+xdg-open transcript.xls
+xdg-open sfx.xls
+read -
+
+python3 radioplay-gen_approach1.py story_processed_script.txt . . ../renders/story_processed_script.wav
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/demo/workspace/reverb.py	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,162 @@
+import pandas as pd
+import numpy as np
+from numpy.core._internal import _gcd as gcd
+
+
+def zafar(lx, rx, d1, g1, m, fc, G, da=0.007, fs=44100.):
+    """ Rafii & Pardo Reverberator (2009) controlled by High Level parameters
+        Inputs:
+            lx : left channel input
+            rx : right channel input
+            d1 : delay of first comb filter in seconds
+            g1 : gain of first comb filters
+            da : delay of allpass filter in seconds
+            G  : dry/wet mix gain
+            fc : lowpass filter cuttoff Hz
+            m  : difference between left and right channel phases
+            fs : sampling rate
+
+        Outputs:
+            ly: left channel output
+            ry: right channel output
+            """
+
+    d1 = int(d1 * fs)
+    m = int(m * fs)
+    da = int(da * fs)
+
+    def calculate_parameters(d1, g1):
+
+        d2 = int(round((1.5) ** (-1) * d1))
+
+        while gcd(d2, d1) != 1:
+            d2 += 1
+
+        d3 = int(round((1.5) ** (-2) * d1))
+
+        while gcd(d3, d2) != 1 or gcd(d3, d1) != 1:
+            d3 += 1
+
+        d4 = int(round((1.5) ** (-3) * d1))
+
+        while gcd(d4, d3) != 1 or gcd(d4, d2) != 1 or gcd(d4, d1) != 1:
+            d4 += 1
+
+        d5 = int(round((1.5) ** (-4) * d1))
+
+        while gcd(d5, d4) != 1 or gcd(d5, d3) != 1 or gcd(d5, d2) != 1 or gcd(d5, d1) != 1:
+            d5 += 1
+
+        d6 = int(round((1.5) ** (-5) * d1))
+        while gcd(d6, d5) != 1 or gcd(d6, d4) != 1 or gcd(d6, d3) != 1 or gcd(d6, d2) != 1 or gcd(d6, d1) != 1:
+            d6 += 1
+        g2 = g1 ** (1.5) ** (-1) * g1
+        g3 = g1 ** (1.5) ** (-2) * g1
+        g4 = g1 ** (1.5) ** (-3) * g1
+        g5 = g1 ** (1.5) ** (-4) * g1
+        g6 = g1 ** (1.5) ** (-5) * g1
+
+        return (d1, d2, d3, d4, d5, d6, g1, g2, g3, g4, g5, g6)
+
+    def comb_array(x, g1, d1):
+
+        (d1, d2, d3, d4, d5, d6, g1, g2, g3, g4, g5, g6) = calculate_parameters(d1, g1)
+
+        c1out = comb(x, g1, d1)
+        c2out = comb(x, g2, d2)
+        c3out = comb(x, g3, d3)
+        c4out = comb(x, g4, d4)
+        c5out = comb(x, g5, d5)
+        c6out = comb(x, g6, d6)
+
+        Lc1 = len(c1out)
+        Lc2 = len(c2out)
+        Lc3 = len(c3out)
+        Lc4 = len(c4out)
+        Lc5 = len(c5out)
+        Lc6 = len(c6out)
+
+        Lc = max(Lc1, Lc2, Lc3, Lc4, Lc5, Lc6)
+
+        y = np.zeros((Lc,))
+
+        y[0:Lc1] = c1out
+        y[0:Lc2] += c2out
+        y[0:Lc3] += c3out
+        y[0:Lc4] += c4out
+        y[0:Lc5] += c5out
+        y[0:Lc6] += c6out
+
+        return y
+
+    def comb(x, g, d):
+        LEN = len(x) + d
+        #    print d
+        y = np.zeros((LEN,))
+        for n in range(0, LEN):
+            if n - d < 0:
+                y[n] = 0
+            else:
+                y[n] = x[n - d] + g * y[n - d]
+
+        return y
+
+    def allpass(x, g, d):
+        LENx = len(x)
+        LENy = LENx + d
+        y = np.zeros((LENy,))
+        for n in range(0, LENy):
+            if n - d < 0:
+                y[n] = -g * x[n]
+            elif n >= LENx:
+                y[n] = x[n - d] + g * y[n - d]
+            else:
+                y[n] = x[n - d] - g * x[n] + g * y[n - d]
+
+        return y
+
+    def lowpass(x, g):
+        LEN = len(x)
+        y = np.zeros((LEN,))
+
+        for n in range(0, LEN):
+            if n - 1 < 0:
+                y[n] = (1 - g) * x[n]
+            else:
+                y[n] = (1 - g) * x[n] + g * y[n - 1]
+
+        return y
+
+    ga = 1. / np.sqrt(2.)
+
+    cin = 0.5 * lx + 0.5 * rx
+    cout = comb_array(cin, g1, d1)
+
+    ra = allpass(cout, ga, da + m // 2)
+    la = allpass(cout, ga, da - m // 2)
+
+    gc = 2 - np.cos(2 * np.pi * fc / fs) - np.sqrt((np.cos(2 * np.pi * fc / fs) - 2) ** 2 - 1)
+
+    ral = lowpass(ra, gc)
+    lal = lowpass(la, gc)
+
+    ralg = G * ral
+    lalg = G * lal
+
+    ry = ralg[0:len(rx)] + (1 - G) * rx
+    ly = lalg[0:len(lx)] + (1 - G) * lx
+
+    return np.vstack([ry, ly])
+
+def get_reverb_from_tags(x, tags, fs=44100):
+    reverb_csv = 'contributions.csv'
+    df = pd.read_csv(reverb_csv)
+    df = df.fillna("")
+    params = []
+    for n in range(len(df)):
+        if all([t in df['agreed'].iloc[n].split(',') for t in tags]):
+            params.append(df['param'].iloc[n])
+    d1, g1, m, fc, G = [float(f) for f in params[0].split(',')]
+    y = zafar(x, x, d1, g1, m, fc, G, fs=fs)
+    return y
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/demo/workspace/rtsfx.py	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,69 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+"""
+Created on Wed Apr 18 19:31:02 2018
+
+@author: mmxgn
+"""
+
+from selenium import webdriver
+import librosa
+import librosa.display
+import glob
+import time
+import os
+import matplotlib.pyplot as plt
+import pandas as pd
+
+fxive_dict = {
+    'stream' : ('http://localhost:8000/update/app/main-panel/stream.html?preset=Stream', '3'),
+    'sonar'  : ('http://localhost:8000/update/app/main-panel/beep.html?preset=Sonar', '10'),
+    'motor'  : ('http://localhost:8000/update/app/main-panel/dc-motor.html?preset=Small%20Boat', '15'),
+    'stormy' : ('http://localhost:8000/update/app/main-panel/stormy-day.html?state=%7B%22RTSFXrain%22%3A%7B%220%22%3A%7B%22dropletGain%22%3A0.3%2C%22rumbleGain%22%3A0.3%2C%22ambienceGain%22%3A0.3%7D%7D%2C%22RTSFXmaster%22%3A%7B%221%22%3A%7B%22gain%22%3A1%2C%22panning%22%3A0.33000000000000007%7D%2C%223%22%3A%7B%22gain%22%3A1%2C%22panning%22%3A0.8900000000000001%7D%2C%225%22%3A%7B%22gain%22%3A1%2C%22panning%22%3A0%7D%2C%227%22%3A%7B%22gain%22%3A1%2C%22panning%22%3A0%7D%2C%2213%22%3A%7B%22gain%22%3A1%2C%22panning%22%3A0%7D%7D%2C%22RTSFXwind%22%3A%7B%222%22%3A%7B%22windSpeed%22%3A1%2C%22gustiness%22%3A0.8%2C%22squall%22%3A0.9%2C%22buildings%22%3A0.8%2C%22doorways%22%3A0.8%2C%22branches%22%3A0.8%2C%22leaves%22%3A0.8%2C%22pan%22%3A0%2C%22directionality%22%3A1%2C%22gain%22%3A1%7D%7D%2C%22RTSFXstream%22%3A%7B%224%22%3A%7B%22bubbles%22%3A350%2C%22frequency%22%3A1%2C%22qAmount%22%3A2%2C%22sink%22%3A0%7D%7D%2C%22RTSFXthunder%22%3A%7B%226%22%3A%7B%22pitch%22%3A25%2C%22duration%22%3A3000%2C%22distance%22%3A0%2C%22outGain%22%3A1%7D%7D%2C%22RTSFXoverdrive%22%3A%7B%228%22%3A%7B%22knee%22%3A0%2C%22bias%22%3A0%2C%22tone%22%3A1%2C%22drive%22%3A0%2C%22level%22%3A0%2C%22bypass%22%3A0%7D%7D%2C%22RTSFXdelay%22%3A%7B%229%22%3A%7B%22delay%22%3A0%2C%22dry%22%3A1%2C%22wet%22%3A1%2C%22level%22%3A1%2C%22feedback%22%3A-12.000000253286988%2C%22cutOff%22%3A350%2C%22bypass%22%3A0%7D%7D%2C%22RTSFXconvReverb%22%3A%7B%2210%22%3A%7B%22dry%22%3A1%2C%22wet%22%3A1%2C%22level%22%3A1%2C%22lowCut%22%3A20%2C%22highCut%22%3A20000%2C%22type%22%3A0%2C%22bypass%22%3A0%7D%7D%2C%22RTSFXeq%22%3A%7B%2211%22%3A%7B%22Band1Gain%22%3A0%2C%22Band1Frequency%22%3A150%2C%22Band1QFactor%22%3A1%2C%22Band2Gain%22%3A0%2C%22Band2Frequency%22%3A560%2C%22Band2QFactor%22%3A1%2C%22Band3Gain%22%3A0%2C%22Band3Frequency%22%3A1000%2C%22Band3QFactor%22%3A1%2C%22Band4Gain%22%3A0%2C%22Band4Frequency%22%3A3300%2C%22Band4QFactor%22%3A1%2C%22Band5Gain%22%3A0%2C%22Band5Frequency%22%3A8200%2C%22Band5QFactor%22%3A1%2C%22Band1FilterType%22%3A0%2C%22Band5FilterType%22%3A0%7D%7D%2C%22RTSFXspatialisation%22%3A%7B%2212%22%3A%7B%22positionX%22%3A0.5%2C%22positionY%22%3A0.5%2C%22positionZ%22%3A0%2C%22distanceX%22%3A100%2C%22distanceY%22%3A100%7D%7D%7D', '10'),
+    'meadow': ('http://localhost:8000/update/app/main-panel/stream.html?preset=Stream', '3'),
+
+}
+
+class FXive:
+    def __init__(self, sfx_path=None):
+        
+        if sfx_path is not None:
+            self.sfx_df = pd.read_excel(sfx_path)
+        else:
+            self.sfx_df = None
+        
+        options = webdriver.ChromeOptions()
+        options.binary_location = '/usr/bin/google-chrome-stable'
+        options.add_argument('window-size=640x480')
+        self.driver = webdriver.Chrome(chrome_options=options)
+        
+    def get_sfx(self, str_):
+        
+        if self.sfx_df is None:
+            seconds = int(fxive_dict[str_][1])
+            url = fxive_dict[str_][0] + '&rTime={}'.format(seconds)
+        else:
+            seconds = 5
+            url = self.sfx_df['url'].loc[self.sfx_df['sfx'] == str_].iloc[0] + '&rTime={}'.format(seconds)
+            print(url)
+            
+            
+        self.driver.get(url)
+        self.driver.implicitly_wait(10)
+        
+        print("Rendering file, please wait {} seconds".format(seconds+3))
+        
+        time.sleep(seconds+3)
+        # https://stackoverflow.com/questions/24134495/python-get-most-recent-file-in-a-directory-with-certain-extension
+        newest = max(glob.iglob(os.path.expanduser('~/Downloads/*.wav')), key=os.path.getctime)
+
+        return newest
+    
+    def close(self):
+        self.driver.close()
+        
+        
+#fxive1 = FXive()
+#arr, sr = fxive1.get_sfx('river',3 )
+#librosa.display.waveplot(arr,sr)
+#plt.show()
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/demo/workspace/semantic_analysis.sh	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,52 @@
+#!/bin/bash
+
+if [ ! -f story.txt ]; then
+    touch story.txt
+fi
+
+xdg-open story.txt
+read -p "Please edit and save a new story. Then press enter to continue."
+
+cd ..
+python3 text2annotation.py workspace/story.txt ner_model.pkl rel_model.pkl
+cd -
+
+if [ -d ../../brat/data/workspace ]; then
+    rm ../../brat/data/workspace/*txt
+    rm ../../brat/data/workspace/*ann
+else
+    mkdir ../../brat/data/workspace
+    cp ../../brat/data/training/annotation.conf ../../brat/data/workspace
+fi
+
+cp story_processed.txt story_processed.ann ../../brat/data/workspace
+cp annotation.conf ../../brat/data/workspace
+
+cd ../../brat
+
+python2 standalone.py &
+PID=$!
+
+echo "Please visit http://0.0.0.0:8001/index.xhtml#/workspace/story_processed"
+echo "login with user:au1/pass:au1 and make your changes, and then press enter here"
+xdg-open 'http://0.0.0.0:8001/index.xhtml#/workspace/story_processed'
+cd -
+read
+kill $PID
+
+echo "Copying files over to current directory"
+
+cp -f ../../brat/data/workspace/story_processed.txt .
+cp -f ../../brat/data/workspace/story_processed.ann .
+
+cd ..
+python3 annotation2script.py workspace/story_processed.ann workspace/story_quotes.json
+echo "Please edit the transcript .xls file if necessary. If you want to replace the voices, just record your voice and store them"
+echo "using the filenames under column 'filename' in transcript.xls. Do the same for sfx.xls. Press enter here when you're done"
+xdg-open workspace/transcript.xls
+xdg-open workspace/sfx.xls
+cd -
+read
+
+echo "Generated script is at story_processed_script.txt"
+cat story_processed_script.txt
Binary file demo/workspace/sfx.xls has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/demo/workspace/story.txt	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,4 @@
+
+A Bull was feeding in a meadow when a Lion approached him. The Lion saw him and said: "Hello there friend!". The Bull replied: "Go away, fiend!"
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/demo/workspace/story_processed.ann	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,13 @@
+T1	Character 0 6	A Bull
+A1	Gender T1 Male
+T2	Character 36 42	a Lion
+T3	Character 64 72	The Lion
+T4	Character 107 115	The Bull
+A2	Gender T4 Male
+T5	Says 90 94	said
+T6	Says 116 123	replied
+T7	Place 22 30	a meadow
+T8	Spatial_Signal 19 21	in
+T9	Character_Line 96 104	<cline1>
+E1	Spatial_Signal:T8 Trajector:T1 Landmark:T7
+E2	Says:T5 WHO:T3 WHAT:T9
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/demo/workspace/story_processed.ann.orig	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,22 @@
+T1	Character 139 145	a Lion
+T2	Character 185 193	The Lion
+T3	Character 208 216	The Bull
+A1	Gender T3 Male
+T4	Says 194 198	said
+T5	Says 217 224	replied
+T6	Place 45 53	a meadow
+T7	Place 73 81	a meadow
+T8	Place 112 120	a meadow
+T9	Place 175 183	a meadow
+T10	Spatial_Signal 42 44	in
+T11	Spatial_Signal 70 72	in
+T12	Spatial_Signal 109 111	in
+T13	Spatial_Signal 172 174	in
+T14	Spatial_Signal 225 227	to
+T15	Character_Line 200 206	cline1
+T16	Character_Line 233 239	cline3
+E1	Says:T4 WHO:T2 WHAT:T15
+E2	Says:T5 WHO:T3 WHAT:T16
+T17	Character 27 33	a Bull
+A2	Gender T17 Male
+E3	Spatial_Signal:T10 Trajector:T17 Landmark:T6
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/demo/workspace/story_processed.txt	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,1 @@
+A Bull was feeding in a meadow when a Lion approached the bull. The Lion saw the bull and said: <cline1>.. The Bull replied: <cline3>.
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/demo/workspace/story_processed.txt.orig	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,1 @@
+Once upon a time there was a Bull feeding in a meadow. a bull feeding in a meadow was minding a bull feeding in a meadow own business when a Lion approached a bull feeding in a meadow. The Lion said: cline1. The Bull replied to her: cline3.
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/demo/workspace/story_processed_script.json	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,1 @@
+{'definitions': [{'type': 'cast_definition', 'name': 'Narrator', 'gender': ['male', 'female'], 'voice': [], 'panning': ['center']}, {'type': 'cast_definition', 'name': 'Bull', 'gender': ['male'], 'voice': [], 'panning': ['right']}, {'type': 'cast_definition', 'name': 'Lion', 'gender': ['male', 'female'], 'voice': [], 'panning': ['left']}, {'type': 'scene_definition', 'scene': 'meadow', 'number': '1', 'filename': 'fxive:meadow', 'tags': ['none']}], 'script': [{'type': 'scene_change', 'number': '1'}, {'type': 'cast_line', 'name': 'Narrator', 'line': 'A Bull was feeding in a meadow when a Lion approached him. The Lion saw him and said: '}, {'type': 'cast_line', 'name': 'Lion', 'line': 'Hello there friend!'}, {'type': 'cast_line', 'name': 'Narrator', 'line': '. The Bull replied: '}, {'type': 'cast_line', 'name': 'Bull', 'line': 'Go away, fiend!'}]}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/demo/workspace/story_processed_script.txt	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,13 @@
+Cast List:
+Narrator - male or female - panned center
+Bull - male - panned right
+Lion - male or female - panned left
+
+Scenes:
+1 - meadow - fxive:meadow - none
+Script:
+--- Scene 1 ---
+[Narrator] A Bull was feeding in a meadow when a Lion approached him. The Lion saw him and said: 
+[Lion] Hello there friend!
+[Narrator] . The Bull replied: 
+[Bull] Go away, fiend!
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/demo/workspace/story_quotes.json	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,1 @@
+{"<nline0>.": "A Bull was feeding in a meadow when a Lion approached him. The Lion saw him and said: ", "<cline1>.": "Hello there friend!", "<nline2>.": ". The Bull replied: ", "<cline3>.": "Go away, fiend!"}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/demo/workspace/story_quotes.json.orig	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,1 @@
+{"nline0": "Once upon a time there was a Bull feeding in a meadow. He was minding his own business when a Lion approached him. The Lion said: ", "cline1": "Hello there, friend!", "nline2": " The Bull replied to her: ", "cline3": "Stay back Lion, I know what you want to do!"}
\ No newline at end of file
Binary file demo/workspace/transcript.xls has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/results/data/.bash_history	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,231 @@
+cd app-root/
+ls
+cd data/
+ls
+cd ..\
+cd repo/
+ls
+cd waet/
+ls
+cd saves/
+ls
+cat save-6iQr5DOTgHdvmRSHTSBfGrppBMEIRqbX.xml 
+exit
+cd app-root/
+ls
+cd data/
+ls
+mkdir saves
+mkdir save
+echo $OPENSHIFT_DATA_DIR
+ls
+cd saves
+ls
+cd ..
+cd save
+ls
+cd ..
+ls
+cd saves
+ls
+cd ..
+cd save
+ls
+dc ..
+ls
+cd ..
+ls
+cd ..
+ls
+cd logs/
+ls
+cat php.log 
+ls
+cd ..
+ls
+cd repo/
+ls
+cd waet/
+ls
+cd saves/
+ls
+cat save-5himaxuOVduN40N45oRHOyoqU1qwpViu.xml 
+cat read.txt 
+vim save-5himaxuOVduN40N45oRHOyoqU1qwpViu.xml 
+exit
+ls
+cd app-root/
+ls
+cd repo/
+ls
+cd waet/
+ls
+cd saves
+ls
+cat save-rtB2K9dZyk9lnXeIrhoiNtrxd5KZJwga.xml 
+cd ..
+ls
+cd $OPENSHIFT_DATA_DIR
+ls
+cd saves
+ls
+ls
+ls
+ls -a
+cd ..
+ls
+cd save
+ls
+ls -la
+exit
+cd app-repo
+ls
+cd app-root
+ls
+cd repo
+cd ph
+ls
+cd waet/
+cd php/
+ls
+ls ../../../data/saves/
+exit
+ls
+cd app-root/
+ls
+cd data/
+ls
+cd saves
+ls
+ls
+cd ../save
+ls
+exit
+ls
+cd app-root/
+ls
+cd repo/
+ls
+cd waet/
+ls
+ls saves/
+rm -rf saves
+ln -s /var/lib/openshift/5aaedbfc251c080de5000030/app-root/data/saves 
+ls
+cd saves
+ls
+ls
+cat save-jlVJtLAmllkP8xH98lYM60FHJsAyllYF.xml 
+cd $OPENSHIFT_DATA_DIR 
+ls
+cd saves
+ls
+rm *
+ls
+cd app-root/
+ls
+ls
+cd app-root/
+cd data/
+ls
+cd save
+ls
+cd ../saves
+ls
+cat save-&*
+cat save-*
+cat save-* | grep alex
+cat save-* | grep name
+pwd
+exit
+ls
+cd app-root/
+ls
+cd repo/
+ls
+cd waet/
+ls
+ln -s /var/lib/openshift/5aaedbfc251c080de5000030/app-root/data/saves 
+ls
+cd saves
+ls
+rm *
+ls
+rm *
+cd app-root/
+ls
+cd repo/
+ls
+cd waet/
+ls
+ln -s /var/lib/openshift/5aaedbfc251c080de5000030/app-root/data/saves 
+exit
+ls
+cd app-root/
+ls
+cd repo
+ls
+cd waet/
+ls
+ln -s /var/lib/openshift/5aaedbfc251c080de5000030/app-root/data/saves 
+exit
+cd app-root/
+cd repo/
+ls
+cd waet/
+ln -s /var/lib/openshift/5aaedbfc251c080de5000030/app-root/data/saves 
+cd saves
+ks
+ls
+pwd
+echo $OPENSHIFT_DATA_DIR
+cd app-root/repo/
+ls
+cd waet/
+ln -s /var/lib/openshift/5aaedbfc251c080de5000030/app-root/data/saves 
+ls
+cd saves
+ls
+rm *
+cd $OPENSHIFT_DATA_DIR/saves
+ls
+grep * -e "beici"
+grep * "beici"
+grep * -e "beici"
+vim save-kwINKFSYtWXqBE1bg8Ffhy02GTfX84ds.xml 
+vim save-lB8k45hvGWwScFyrX7sZNleLujZXTWdf.xml 
+ls
+vim save-liuL3y4zPQh8HbF7L3d4VKTRYy0BuFHP.xml 
+vim save-liuL3y4zPQh8HbF7L3d4VKTRYy0BuFHP.xml 
+ls
+vim save-uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o.xml 
+vim save-liuL3y4zPQh8HbF7L3d4VKTRYy0BuFHP.xml 
+ls
+vim save-rR78NE1ZkzrhHThvfwgJPgHJcVYKhxnJ.xml 
+vim save-busCM9w4ELAVvqcd9o879qFw9421hcUs.xml 
+vim save-dS77aOufZLQ6fsSckpso4L0iYY2oPJV2.xml 
+vim save-kwINKFSYtWXqBE1bg8Ffhy02GTfX84ds.xml 
+exit
+cd $OPENSHIFT_DATA_DIR/saves
+ls
+cat save-7hgS5m4MRPhzBuossh9A5NHwyZoqVbd3.xml 
+cat save-AK7SPrWT4ZXJrP8NJacNYstOxzyzjDrT.xml 
+cat save-BFZfbp4MRUDwGYSPoHwp6pODr6KOtzU4.xml 
+cat *
+ls
+ls -ls
+cat save-VyX492RQzqQXRL84PByL9pLt8C5p4c50.xml 
+cd $OPENSHIFT_DATA_DIR 
+cd saves
+ls
+ls -ls
+exit
+pwd
+ls
+cd app-root/data/
+grep * -e 'ref="name"'
+grep -r * -e 'ref="name"'
+grep -r * -e 'manos'
+grep -r * -e 'Will'
+grep -r * -e 'Will'
+grep -l -r * -e 'Will'
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/results/data/.bash_profile	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,3 @@
+
+# Warning: Be careful with modifications to this file,
+#          Your changes may cause your application to fail.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/results/data/.viminfo	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,146 @@
+# This viminfo file was generated by Vim 7.4.
+# You may edit it if you are careful!
+
+# Value of 'encoding' when this file was written
+*encoding=latin1
+
+
+# hlsearch on (H) or off (h):
+~H
+# Last Search Pattern:
+~MSle0~/manos
+
+# Command Line History (newest to oldest):
+:q
+:Q
+
+# Search String History (newest to oldest):
+??manos
+??Beici
+??name=
+??name
+??beici
+
+# Expression History (newest to oldest):
+
+# Input Line History (newest to oldest):
+
+# Input Line History (newest to oldest):
+
+# Registers:
+
+# File marks:
+'0  1  0  ~/app-root/data/saves/save-kwINKFSYtWXqBE1bg8Ffhy02GTfX84ds.xml
+'1  1  0  ~/app-root/data/saves/save-dS77aOufZLQ6fsSckpso4L0iYY2oPJV2.xml
+'2  1  0  ~/app-root/data/saves/save-busCM9w4ELAVvqcd9o879qFw9421hcUs.xml
+'3  1  0  ~/app-root/data/saves/save-rR78NE1ZkzrhHThvfwgJPgHJcVYKhxnJ.xml
+'4  316  408  ~/app-root/data/saves/save-liuL3y4zPQh8HbF7L3d4VKTRYy0BuFHP.xml
+'5  316  481  ~/app-root/data/saves/save-uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o.xml
+'6  294  12  ~/app-root/data/saves/save-liuL3y4zPQh8HbF7L3d4VKTRYy0BuFHP.xml
+'7  1  0  ~/app-root/data/saves/save-lB8k45hvGWwScFyrX7sZNleLujZXTWdf.xml
+'8  1  0  ~/app-root/runtime/repo/waet/saves/save-5himaxuOVduN40N45oRHOyoqU1qwpViu.xml
+
+# Jumplist (newest first):
+-'  1  0  ~/app-root/data/saves/save-kwINKFSYtWXqBE1bg8Ffhy02GTfX84ds.xml
+-'  1  0  ~/app-root/data/saves/save-dS77aOufZLQ6fsSckpso4L0iYY2oPJV2.xml
+-'  1  0  ~/app-root/data/saves/save-busCM9w4ELAVvqcd9o879qFw9421hcUs.xml
+-'  1  0  ~/app-root/data/saves/save-rR78NE1ZkzrhHThvfwgJPgHJcVYKhxnJ.xml
+-'  316  408  ~/app-root/data/saves/save-liuL3y4zPQh8HbF7L3d4VKTRYy0BuFHP.xml
+-'  294  12  ~/app-root/data/saves/save-liuL3y4zPQh8HbF7L3d4VKTRYy0BuFHP.xml
+-'  316  481  ~/app-root/data/saves/save-uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o.xml
+-'  1  0  ~/app-root/data/saves/save-uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o.xml
+-'  295  41  ~/app-root/data/saves/save-liuL3y4zPQh8HbF7L3d4VKTRYy0BuFHP.xml
+-'  296  41  ~/app-root/data/saves/save-liuL3y4zPQh8HbF7L3d4VKTRYy0BuFHP.xml
+-'  297  41  ~/app-root/data/saves/save-liuL3y4zPQh8HbF7L3d4VKTRYy0BuFHP.xml
+-'  298  42  ~/app-root/data/saves/save-liuL3y4zPQh8HbF7L3d4VKTRYy0BuFHP.xml
+-'  1  0  ~/app-root/data/saves/save-liuL3y4zPQh8HbF7L3d4VKTRYy0BuFHP.xml
+-'  1  0  ~/app-root/data/saves/save-lB8k45hvGWwScFyrX7sZNleLujZXTWdf.xml
+-'  1  0  ~/app-root/runtime/repo/waet/saves/save-5himaxuOVduN40N45oRHOyoqU1qwpViu.xml
+-'  1  0  ~/app-root/runtime/repo/waet/saves/save-5himaxuOVduN40N45oRHOyoqU1qwpViu.xml
+-'  1  0  ~/app-root/runtime/repo/waet/saves/save-5himaxuOVduN40N45oRHOyoqU1qwpViu.xml
+-'  1  0  ~/app-root/runtime/repo/waet/saves/save-5himaxuOVduN40N45oRHOyoqU1qwpViu.xml
+-'  1  0  ~/app-root/data/saves/save-lB8k45hvGWwScFyrX7sZNleLujZXTWdf.xml
+-'  1  0  ~/app-root/runtime/repo/waet/saves/save-5himaxuOVduN40N45oRHOyoqU1qwpViu.xml
+-'  1  0  ~/app-root/runtime/repo/waet/saves/save-5himaxuOVduN40N45oRHOyoqU1qwpViu.xml
+-'  1  0  ~/app-root/runtime/repo/waet/saves/save-5himaxuOVduN40N45oRHOyoqU1qwpViu.xml
+-'  1  0  ~/app-root/runtime/repo/waet/saves/save-5himaxuOVduN40N45oRHOyoqU1qwpViu.xml
+-'  1  0  ~/app-root/data/saves/save-lB8k45hvGWwScFyrX7sZNleLujZXTWdf.xml
+-'  1  0  ~/app-root/runtime/repo/waet/saves/save-5himaxuOVduN40N45oRHOyoqU1qwpViu.xml
+-'  1  0  ~/app-root/runtime/repo/waet/saves/save-5himaxuOVduN40N45oRHOyoqU1qwpViu.xml
+-'  1  0  ~/app-root/runtime/repo/waet/saves/save-5himaxuOVduN40N45oRHOyoqU1qwpViu.xml
+-'  1  0  ~/app-root/runtime/repo/waet/saves/save-5himaxuOVduN40N45oRHOyoqU1qwpViu.xml
+-'  1  0  ~/app-root/data/saves/save-lB8k45hvGWwScFyrX7sZNleLujZXTWdf.xml
+-'  1  0  ~/app-root/runtime/repo/waet/saves/save-5himaxuOVduN40N45oRHOyoqU1qwpViu.xml
+-'  1  0  ~/app-root/runtime/repo/waet/saves/save-5himaxuOVduN40N45oRHOyoqU1qwpViu.xml
+-'  1  0  ~/app-root/runtime/repo/waet/saves/save-5himaxuOVduN40N45oRHOyoqU1qwpViu.xml
+-'  1  0  ~/app-root/runtime/repo/waet/saves/save-5himaxuOVduN40N45oRHOyoqU1qwpViu.xml
+-'  1  0  ~/app-root/data/saves/save-lB8k45hvGWwScFyrX7sZNleLujZXTWdf.xml
+-'  1  0  ~/app-root/runtime/repo/waet/saves/save-5himaxuOVduN40N45oRHOyoqU1qwpViu.xml
+-'  1  0  ~/app-root/runtime/repo/waet/saves/save-5himaxuOVduN40N45oRHOyoqU1qwpViu.xml
+-'  1  0  ~/app-root/runtime/repo/waet/saves/save-5himaxuOVduN40N45oRHOyoqU1qwpViu.xml
+-'  1  0  ~/app-root/runtime/repo/waet/saves/save-5himaxuOVduN40N45oRHOyoqU1qwpViu.xml
+-'  1  0  ~/app-root/data/saves/save-lB8k45hvGWwScFyrX7sZNleLujZXTWdf.xml
+-'  1  0  ~/app-root/runtime/repo/waet/saves/save-5himaxuOVduN40N45oRHOyoqU1qwpViu.xml
+-'  1  0  ~/app-root/runtime/repo/waet/saves/save-5himaxuOVduN40N45oRHOyoqU1qwpViu.xml
+-'  1  0  ~/app-root/runtime/repo/waet/saves/save-5himaxuOVduN40N45oRHOyoqU1qwpViu.xml
+-'  1  0  ~/app-root/runtime/repo/waet/saves/save-5himaxuOVduN40N45oRHOyoqU1qwpViu.xml
+-'  1  0  ~/app-root/data/saves/save-lB8k45hvGWwScFyrX7sZNleLujZXTWdf.xml
+-'  1  0  ~/app-root/runtime/repo/waet/saves/save-5himaxuOVduN40N45oRHOyoqU1qwpViu.xml
+-'  1  0  ~/app-root/runtime/repo/waet/saves/save-5himaxuOVduN40N45oRHOyoqU1qwpViu.xml
+-'  1  0  ~/app-root/runtime/repo/waet/saves/save-5himaxuOVduN40N45oRHOyoqU1qwpViu.xml
+-'  1  0  ~/app-root/runtime/repo/waet/saves/save-5himaxuOVduN40N45oRHOyoqU1qwpViu.xml
+-'  1  0  ~/app-root/data/saves/save-lB8k45hvGWwScFyrX7sZNleLujZXTWdf.xml
+-'  1  0  ~/app-root/runtime/repo/waet/saves/save-5himaxuOVduN40N45oRHOyoqU1qwpViu.xml
+-'  1  0  ~/app-root/runtime/repo/waet/saves/save-5himaxuOVduN40N45oRHOyoqU1qwpViu.xml
+-'  1  0  ~/app-root/runtime/repo/waet/saves/save-5himaxuOVduN40N45oRHOyoqU1qwpViu.xml
+-'  1  0  ~/app-root/runtime/repo/waet/saves/save-5himaxuOVduN40N45oRHOyoqU1qwpViu.xml
+-'  316  481  ~/app-root/data/saves/save-uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o.xml
+-'  1  0  ~/app-root/data/saves/save-uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o.xml
+-'  1  0  ~/app-root/data/saves/save-lB8k45hvGWwScFyrX7sZNleLujZXTWdf.xml
+-'  1  0  ~/app-root/runtime/repo/waet/saves/save-5himaxuOVduN40N45oRHOyoqU1qwpViu.xml
+-'  1  0  ~/app-root/runtime/repo/waet/saves/save-5himaxuOVduN40N45oRHOyoqU1qwpViu.xml
+-'  1  0  ~/app-root/runtime/repo/waet/saves/save-5himaxuOVduN40N45oRHOyoqU1qwpViu.xml
+-'  1  0  ~/app-root/runtime/repo/waet/saves/save-5himaxuOVduN40N45oRHOyoqU1qwpViu.xml
+-'  1  0  ~/app-root/data/saves/save-lB8k45hvGWwScFyrX7sZNleLujZXTWdf.xml
+-'  1  0  ~/app-root/runtime/repo/waet/saves/save-5himaxuOVduN40N45oRHOyoqU1qwpViu.xml
+-'  1  0  ~/app-root/runtime/repo/waet/saves/save-5himaxuOVduN40N45oRHOyoqU1qwpViu.xml
+-'  1  0  ~/app-root/runtime/repo/waet/saves/save-5himaxuOVduN40N45oRHOyoqU1qwpViu.xml
+-'  1  0  ~/app-root/runtime/repo/waet/saves/save-5himaxuOVduN40N45oRHOyoqU1qwpViu.xml
+-'  1  0  ~/app-root/data/saves/save-lB8k45hvGWwScFyrX7sZNleLujZXTWdf.xml
+-'  316  408  ~/app-root/data/saves/save-liuL3y4zPQh8HbF7L3d4VKTRYy0BuFHP.xml
+-'  294  12  ~/app-root/data/saves/save-liuL3y4zPQh8HbF7L3d4VKTRYy0BuFHP.xml
+-'  316  481  ~/app-root/data/saves/save-uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o.xml
+-'  1  0  ~/app-root/data/saves/save-uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o.xml
+-'  295  41  ~/app-root/data/saves/save-liuL3y4zPQh8HbF7L3d4VKTRYy0BuFHP.xml
+-'  296  41  ~/app-root/data/saves/save-liuL3y4zPQh8HbF7L3d4VKTRYy0BuFHP.xml
+-'  297  41  ~/app-root/data/saves/save-liuL3y4zPQh8HbF7L3d4VKTRYy0BuFHP.xml
+-'  298  42  ~/app-root/data/saves/save-liuL3y4zPQh8HbF7L3d4VKTRYy0BuFHP.xml
+-'  1  0  ~/app-root/data/saves/save-liuL3y4zPQh8HbF7L3d4VKTRYy0BuFHP.xml
+-'  1  0  ~/app-root/data/saves/save-lB8k45hvGWwScFyrX7sZNleLujZXTWdf.xml
+-'  1  0  ~/app-root/runtime/repo/waet/saves/save-5himaxuOVduN40N45oRHOyoqU1qwpViu.xml
+
+# History of marks within files (newest to oldest):
+
+> ~/app-root/data/saves/save-kwINKFSYtWXqBE1bg8Ffhy02GTfX84ds.xml
+	"	1	0
+
+> ~/app-root/data/saves/save-dS77aOufZLQ6fsSckpso4L0iYY2oPJV2.xml
+	"	1	0
+
+> ~/app-root/data/saves/save-busCM9w4ELAVvqcd9o879qFw9421hcUs.xml
+	"	1	0
+
+> ~/app-root/data/saves/save-rR78NE1ZkzrhHThvfwgJPgHJcVYKhxnJ.xml
+	"	1	0
+
+> ~/app-root/data/saves/save-liuL3y4zPQh8HbF7L3d4VKTRYy0BuFHP.xml
+	"	316	408
+
+> ~/app-root/data/saves/save-uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o.xml
+	"	316	481
+
+> ~/app-root/data/saves/save-lB8k45hvGWwScFyrX7sZNleLujZXTWdf.xml
+	"	1	0
+
+> ~/app-root/runtime/repo/waet/saves/save-5himaxuOVduN40N45oRHOyoqU1qwpViu.xml
+	"	1	0
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/results/data/.vimrc	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,1 @@
+set viminfo+=n/var/lib/openshift/5aaedbfc251c080de5000030/app-root/data/.viminfo
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/results/data/saves/.ipynb_checkpoints/Plots-checkpoint.ipynb	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,865 @@
+{
+ "cells": [
+  {
+   "cell_type": "code",
+   "execution_count": 1,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "import glob\n",
+    "import pandas as pd\n",
+    "import matplotlib.pyplot as plt\n",
+    "import seaborn as sns\n",
+    "sns.set(style=\"ticks\", color_codes=True, font_scale=1.3)\n",
+    "\n",
+    "page1_df = pd.read_csv('ratings/page1-default-ratings.csv').set_index('file_keys')\n",
+    "page2_df = pd.read_csv('ratings/page2-default-ratings.csv').set_index('file_keys')\n",
+    "page3_df = pd.read_csv('ratings/page3-default-ratings.csv').set_index('file_keys')\n",
+    "page4_df = pd.read_csv('ratings/page4-default-ratings.csv').set_index('file_keys')\n",
+    "page5_df = pd.read_csv('ratings/page5-default-ratings.csv').set_index('file_keys')\n",
+    "page6_df = pd.read_csv('ratings/page6-default-ratings.csv').set_index('file_keys')\n",
+    "page7_df = pd.read_csv('ratings/page7-default-ratings.csv').set_index('file_keys')\n",
+    "page8_df = pd.read_csv('ratings/page8-default-ratings.csv').set_index('file_keys')\n",
+    "page9_df = pd.read_csv('ratings/page9-default-ratings.csv').set_index('file_keys')"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 2,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "renamedict = {k: k[1:] for k in page1_df.columns}\n",
+    "page1 = page1_df.rename(columns=renamedict)\n",
+    "page1['story'] = 'a'\n",
+    "renamedict = {k: k[1:] for k in page2_df.columns}\n",
+    "page2 = page2_df.rename(columns=renamedict)\n",
+    "page2['story'] = 'b'\n",
+    "renamedict = {k: k[1:] for k in page3_df.columns}\n",
+    "page3 = page3_df.rename(columns=renamedict)\n",
+    "page3['story'] = 'c'\n",
+    "renamedict = {k: k[1:] for k in page4_df.columns}\n",
+    "page4 = page4_df.rename(columns=renamedict)\n",
+    "page4['story'] = 'a'\n",
+    "renamedict = {k: k[1:] for k in page5_df.columns}\n",
+    "page5 = page5_df.rename(columns=renamedict)\n",
+    "page5['story'] = 'b'\n",
+    "renamedict = {k: k[1:] for k in page6_df.columns}\n",
+    "page6 = page6_df.rename(columns=renamedict)\n",
+    "page6['story'] = 'c'\n",
+    "renamedict = {k: k[1:] for k in page7_df.columns}\n",
+    "page7 = page7_df.rename(columns=renamedict)\n",
+    "page7['story'] = 'a'\n",
+    "renamedict = {k: k[1:] for k in page8_df.columns}\n",
+    "page8 = page8_df.rename(columns=renamedict)\n",
+    "page8['story'] = 'b'\n",
+    "renamedict = {k: k[1:] for k in page9_df.columns}\n",
+    "page9 = page9_df.rename(columns=renamedict)\n",
+    "page9['story'] = 'c'\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 3,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/html": [
+       "<div>\n",
+       "<style scoped>\n",
+       "    .dataframe tbody tr th:only-of-type {\n",
+       "        vertical-align: middle;\n",
+       "    }\n",
+       "\n",
+       "    .dataframe tbody tr th {\n",
+       "        vertical-align: top;\n",
+       "    }\n",
+       "\n",
+       "    .dataframe thead th {\n",
+       "        text-align: right;\n",
+       "    }\n",
+       "</style>\n",
+       "<table border=\"1\" class=\"dataframe\">\n",
+       "  <thead>\n",
+       "    <tr style=\"text-align: right;\">\n",
+       "      <th></th>\n",
+       "      <th>0000</th>\n",
+       "      <th>0011</th>\n",
+       "      <th>1011</th>\n",
+       "      <th>1101</th>\n",
+       "      <th>1110</th>\n",
+       "      <th>1111</th>\n",
+       "      <th>story</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>file_keys</th>\n",
+       "      <th></th>\n",
+       "      <th></th>\n",
+       "      <th></th>\n",
+       "      <th></th>\n",
+       "      <th></th>\n",
+       "      <th></th>\n",
+       "      <th></th>\n",
+       "    </tr>\n",
+       "  </thead>\n",
+       "  <tbody>\n",
+       "    <tr>\n",
+       "      <th>IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi</th>\n",
+       "      <td>0.06</td>\n",
+       "      <td>0.13</td>\n",
+       "      <td>0.68</td>\n",
+       "      <td>0.71</td>\n",
+       "      <td>0.65</td>\n",
+       "      <td>0.65</td>\n",
+       "      <td>a</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t</th>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.04</td>\n",
+       "      <td>0.95</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>0.80</td>\n",
+       "      <td>0.95</td>\n",
+       "      <td>a</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD</th>\n",
+       "      <td>0.24</td>\n",
+       "      <td>0.24</td>\n",
+       "      <td>0.76</td>\n",
+       "      <td>0.75</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>0.76</td>\n",
+       "      <td>a</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq</th>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.83</td>\n",
+       "      <td>0.97</td>\n",
+       "      <td>0.86</td>\n",
+       "      <td>0.90</td>\n",
+       "      <td>a</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>9UODgpqx7pTDhiiLm7ds39wh59aYBrHK</th>\n",
+       "      <td>0.06</td>\n",
+       "      <td>0.20</td>\n",
+       "      <td>0.72</td>\n",
+       "      <td>0.77</td>\n",
+       "      <td>0.55</td>\n",
+       "      <td>0.91</td>\n",
+       "      <td>a</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>VyX492RQzqQXRL84PByL9pLt8C5p4c50</th>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.63</td>\n",
+       "      <td>0.87</td>\n",
+       "      <td>0.84</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>a</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>bkHwhN78d7k2kIanOievgityZQD7gVOr</th>\n",
+       "      <td>0.08</td>\n",
+       "      <td>0.25</td>\n",
+       "      <td>0.93</td>\n",
+       "      <td>0.98</td>\n",
+       "      <td>0.78</td>\n",
+       "      <td>0.92</td>\n",
+       "      <td>a</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp</th>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.00</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>0.76</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>0.77</td>\n",
+       "      <td>a</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1</th>\n",
+       "      <td>0.09</td>\n",
+       "      <td>0.10</td>\n",
+       "      <td>0.92</td>\n",
+       "      <td>0.91</td>\n",
+       "      <td>0.09</td>\n",
+       "      <td>0.92</td>\n",
+       "      <td>a</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz</th>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.00</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>0.97</td>\n",
+       "      <td>a</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU</th>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.95</td>\n",
+       "      <td>0.42</td>\n",
+       "      <td>0.92</td>\n",
+       "      <td>0.93</td>\n",
+       "      <td>a</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ</th>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.14</td>\n",
+       "      <td>0.70</td>\n",
+       "      <td>0.54</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>a</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>OK2yLWD54tr3klqiS631VXjQlroZfmD3</th>\n",
+       "      <td>0.06</td>\n",
+       "      <td>0.03</td>\n",
+       "      <td>0.52</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>0.68</td>\n",
+       "      <td>0.89</td>\n",
+       "      <td>a</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa</th>\n",
+       "      <td>0.09</td>\n",
+       "      <td>0.11</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>0.99</td>\n",
+       "      <td>0.65</td>\n",
+       "      <td>0.54</td>\n",
+       "      <td>a</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml</th>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.71</td>\n",
+       "      <td>0.83</td>\n",
+       "      <td>0.84</td>\n",
+       "      <td>0.93</td>\n",
+       "      <td>a</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o</th>\n",
+       "      <td>0.23</td>\n",
+       "      <td>0.23</td>\n",
+       "      <td>0.62</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>0.79</td>\n",
+       "      <td>0.84</td>\n",
+       "      <td>a</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT</th>\n",
+       "      <td>0.11</td>\n",
+       "      <td>0.24</td>\n",
+       "      <td>0.69</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>0.66</td>\n",
+       "      <td>0.83</td>\n",
+       "      <td>a</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi</th>\n",
+       "      <td>0.01</td>\n",
+       "      <td>0.02</td>\n",
+       "      <td>0.70</td>\n",
+       "      <td>0.68</td>\n",
+       "      <td>0.79</td>\n",
+       "      <td>0.75</td>\n",
+       "      <td>b</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t</th>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.00</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>b</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD</th>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.24</td>\n",
+       "      <td>0.76</td>\n",
+       "      <td>0.76</td>\n",
+       "      <td>0.76</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>b</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq</th>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.96</td>\n",
+       "      <td>0.91</td>\n",
+       "      <td>0.92</td>\n",
+       "      <td>0.92</td>\n",
+       "      <td>b</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>9UODgpqx7pTDhiiLm7ds39wh59aYBrHK</th>\n",
+       "      <td>0.20</td>\n",
+       "      <td>0.29</td>\n",
+       "      <td>0.60</td>\n",
+       "      <td>0.96</td>\n",
+       "      <td>0.70</td>\n",
+       "      <td>0.81</td>\n",
+       "      <td>b</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>VyX492RQzqQXRL84PByL9pLt8C5p4c50</th>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.00</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>0.81</td>\n",
+       "      <td>b</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp</th>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.00</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>0.75</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>b</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1</th>\n",
+       "      <td>0.13</td>\n",
+       "      <td>0.08</td>\n",
+       "      <td>0.86</td>\n",
+       "      <td>0.95</td>\n",
+       "      <td>0.74</td>\n",
+       "      <td>0.76</td>\n",
+       "      <td>b</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz</th>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.97</td>\n",
+       "      <td>0.99</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>0.61</td>\n",
+       "      <td>b</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ</th>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.49</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>0.65</td>\n",
+       "      <td>0.82</td>\n",
+       "      <td>b</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>OK2yLWD54tr3klqiS631VXjQlroZfmD3</th>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.03</td>\n",
+       "      <td>0.95</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>0.83</td>\n",
+       "      <td>0.83</td>\n",
+       "      <td>b</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa</th>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.15</td>\n",
+       "      <td>0.48</td>\n",
+       "      <td>0.76</td>\n",
+       "      <td>0.74</td>\n",
+       "      <td>0.87</td>\n",
+       "      <td>b</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH</th>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.98</td>\n",
+       "      <td>0.74</td>\n",
+       "      <td>0.92</td>\n",
+       "      <td>0.91</td>\n",
+       "      <td>b</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o</th>\n",
+       "      <td>0.09</td>\n",
+       "      <td>0.10</td>\n",
+       "      <td>0.77</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>0.90</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>b</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT</th>\n",
+       "      <td>0.12</td>\n",
+       "      <td>0.11</td>\n",
+       "      <td>0.77</td>\n",
+       "      <td>0.92</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>0.90</td>\n",
+       "      <td>b</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi</th>\n",
+       "      <td>0.02</td>\n",
+       "      <td>0.01</td>\n",
+       "      <td>0.87</td>\n",
+       "      <td>0.98</td>\n",
+       "      <td>0.87</td>\n",
+       "      <td>0.93</td>\n",
+       "      <td>c</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t</th>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.97</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>c</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD</th>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.24</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>c</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq</th>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.72</td>\n",
+       "      <td>0.85</td>\n",
+       "      <td>0.88</td>\n",
+       "      <td>0.66</td>\n",
+       "      <td>c</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>VyX492RQzqQXRL84PByL9pLt8C5p4c50</th>\n",
+       "      <td>0.02</td>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.93</td>\n",
+       "      <td>0.82</td>\n",
+       "      <td>0.97</td>\n",
+       "      <td>0.83</td>\n",
+       "      <td>c</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>bkHwhN78d7k2kIanOievgityZQD7gVOr</th>\n",
+       "      <td>0.18</td>\n",
+       "      <td>0.23</td>\n",
+       "      <td>0.89</td>\n",
+       "      <td>0.92</td>\n",
+       "      <td>0.95</td>\n",
+       "      <td>0.90</td>\n",
+       "      <td>c</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1</th>\n",
+       "      <td>0.07</td>\n",
+       "      <td>0.11</td>\n",
+       "      <td>0.77</td>\n",
+       "      <td>0.93</td>\n",
+       "      <td>0.87</td>\n",
+       "      <td>0.93</td>\n",
+       "      <td>c</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz</th>\n",
+       "      <td>0.01</td>\n",
+       "      <td>0.00</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>0.97</td>\n",
+       "      <td>0.75</td>\n",
+       "      <td>c</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ</th>\n",
+       "      <td>0.20</td>\n",
+       "      <td>0.20</td>\n",
+       "      <td>0.60</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>0.75</td>\n",
+       "      <td>c</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>OK2yLWD54tr3klqiS631VXjQlroZfmD3</th>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.07</td>\n",
+       "      <td>0.91</td>\n",
+       "      <td>0.97</td>\n",
+       "      <td>0.84</td>\n",
+       "      <td>0.73</td>\n",
+       "      <td>c</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH</th>\n",
+       "      <td>0.10</td>\n",
+       "      <td>0.29</td>\n",
+       "      <td>0.51</td>\n",
+       "      <td>0.95</td>\n",
+       "      <td>0.52</td>\n",
+       "      <td>0.87</td>\n",
+       "      <td>c</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo</th>\n",
+       "      <td>0.12</td>\n",
+       "      <td>0.66</td>\n",
+       "      <td>0.28</td>\n",
+       "      <td>0.05</td>\n",
+       "      <td>0.54</td>\n",
+       "      <td>0.44</td>\n",
+       "      <td>c</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o</th>\n",
+       "      <td>0.12</td>\n",
+       "      <td>0.14</td>\n",
+       "      <td>0.77</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>0.95</td>\n",
+       "      <td>0.97</td>\n",
+       "      <td>c</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT</th>\n",
+       "      <td>0.24</td>\n",
+       "      <td>0.12</td>\n",
+       "      <td>0.89</td>\n",
+       "      <td>0.82</td>\n",
+       "      <td>0.69</td>\n",
+       "      <td>0.90</td>\n",
+       "      <td>c</td>\n",
+       "    </tr>\n",
+       "  </tbody>\n",
+       "</table>\n",
+       "</div>"
+      ],
+      "text/plain": [
+       "                                  0000  0011  1011  1101  1110  1111 story\n",
+       "file_keys                                                                 \n",
+       "IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi  0.06  0.13  0.68  0.71  0.65  0.65     a\n",
+       "iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t  0.00  0.04  0.95  1.00  0.80  0.95     a\n",
+       "bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD  0.24  0.24  0.76  0.75  1.00  0.76     a\n",
+       "U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq  0.00  0.00  0.83  0.97  0.86  0.90     a\n",
+       "9UODgpqx7pTDhiiLm7ds39wh59aYBrHK  0.06  0.20  0.72  0.77  0.55  0.91     a\n",
+       "VyX492RQzqQXRL84PByL9pLt8C5p4c50  0.00  0.00  0.63  0.87  0.84  1.00     a\n",
+       "bkHwhN78d7k2kIanOievgityZQD7gVOr  0.08  0.25  0.93  0.98  0.78  0.92     a\n",
+       "bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp  0.00  0.00  1.00  0.76  1.00  0.77     a\n",
+       "ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1  0.09  0.10  0.92  0.91  0.09  0.92     a\n",
+       "fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz  0.00  0.00  1.00  1.00  1.00  0.97     a\n",
+       "YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU  0.00  0.00  0.95  0.42  0.92  0.93     a\n",
+       "G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ  0.00  0.14  0.70  0.54  1.00  1.00     a\n",
+       "OK2yLWD54tr3klqiS631VXjQlroZfmD3  0.06  0.03  0.52  1.00  0.68  0.89     a\n",
+       "t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa  0.09  0.11  1.00  0.99  0.65  0.54     a\n",
+       "JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml  0.00  0.00  0.71  0.83  0.84  0.93     a\n",
+       "uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o  0.23  0.23  0.62  1.00  0.79  0.84     a\n",
+       "lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT  0.11  0.24  0.69  1.00  0.66  0.83     a\n",
+       "IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi  0.01  0.02  0.70  0.68  0.79  0.75     b\n",
+       "iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t  0.00  0.00  1.00  1.00  1.00  1.00     b\n",
+       "bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD  0.00  0.24  0.76  0.76  0.76  1.00     b\n",
+       "U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq  0.00  0.00  0.96  0.91  0.92  0.92     b\n",
+       "9UODgpqx7pTDhiiLm7ds39wh59aYBrHK  0.20  0.29  0.60  0.96  0.70  0.81     b\n",
+       "VyX492RQzqQXRL84PByL9pLt8C5p4c50  0.00  0.00  1.00  1.00  1.00  0.81     b\n",
+       "bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp  0.00  0.00  1.00  0.75  1.00  1.00     b\n",
+       "ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1  0.13  0.08  0.86  0.95  0.74  0.76     b\n",
+       "fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz  0.00  0.00  0.97  0.99  1.00  0.61     b\n",
+       "G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ  0.00  0.00  0.49  1.00  0.65  0.82     b\n",
+       "OK2yLWD54tr3klqiS631VXjQlroZfmD3  0.00  0.03  0.95  1.00  0.83  0.83     b\n",
+       "t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa  0.00  0.15  0.48  0.76  0.74  0.87     b\n",
+       "D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH  0.00  0.00  0.98  0.74  0.92  0.91     b\n",
+       "uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o  0.09  0.10  0.77  1.00  0.90  1.00     b\n",
+       "lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT  0.12  0.11  0.77  0.92  1.00  0.90     b\n",
+       "IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi  0.02  0.01  0.87  0.98  0.87  0.93     c\n",
+       "iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t  0.00  0.00  0.97  1.00  1.00  1.00     c\n",
+       "bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD  0.00  0.24  1.00  1.00  1.00  1.00     c\n",
+       "U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq  0.00  0.00  0.72  0.85  0.88  0.66     c\n",
+       "VyX492RQzqQXRL84PByL9pLt8C5p4c50  0.02  0.00  0.93  0.82  0.97  0.83     c\n",
+       "bkHwhN78d7k2kIanOievgityZQD7gVOr  0.18  0.23  0.89  0.92  0.95  0.90     c\n",
+       "ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1  0.07  0.11  0.77  0.93  0.87  0.93     c\n",
+       "fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz  0.01  0.00  1.00  1.00  0.97  0.75     c\n",
+       "G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ  0.20  0.20  0.60  1.00  1.00  0.75     c\n",
+       "OK2yLWD54tr3klqiS631VXjQlroZfmD3  0.00  0.07  0.91  0.97  0.84  0.73     c\n",
+       "D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH  0.10  0.29  0.51  0.95  0.52  0.87     c\n",
+       "KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo  0.12  0.66  0.28  0.05  0.54  0.44     c\n",
+       "uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o  0.12  0.14  0.77  1.00  0.95  0.97     c\n",
+       "lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT  0.24  0.12  0.89  0.82  0.69  0.90     c"
+      ]
+     },
+     "execution_count": 3,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "task1_df = page1.append(page2).append(page3)\n",
+    "task2_df = page4.append(page5).append(page6)\n",
+    "task3_df = page7.append(page8).append(page9)\n",
+    "\n",
+    "def transform_df(df):\n",
+    "    records = []\n",
+    "    for n in range(len(df)):\n",
+    "        for c in df.columns:\n",
+    "            if c not in ['file_keys', 'story']:\n",
+    "                records.append({\n",
+    "                    'stimulus': c,\n",
+    "                    'story': df['story'].iloc[n],\n",
+    "                    'preference': df[c].iloc[n]\n",
+    "                    \n",
+    "                })\n",
+    "                \n",
+    "    return pd.DataFrame.from_records(records)\n",
+    "        \n",
+    "task1_df"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 4,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "task1_transformed = transform_df(task1_df)\n",
+    "task2_transformed = transform_df(task2_df)\n",
+    "task3_transformed = transform_df(task3_df)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 5,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "image/png": "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\n",
+      "text/plain": [
+       "<matplotlib.figure.Figure at 0x7f8053549c18>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "fig, axes = plt.subplots(nrows=4, ncols=4)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 6,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "from matplotlib import gridspec\n",
+    "#sns.set(font_scale=1.3)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 7,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "image/png": "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\n",
+      "text/plain": [
+       "<matplotlib.figure.Figure at 0x7f80511c4208>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "#sns.set(style=\"whitegrid\", color_codes=True)\n",
+    "fig = plt.figure(figsize=(5,5))\n",
+    "gs = gridspec.GridSpec(2,1,height_ratios=[2,1])\n",
+    "plt.subplot(gs[0])\n",
+    "g = sns.boxplot(data=task1_transformed, x='stimulus', y='preference', hue='story', width=0.8, palette={'a':'red','b':'yellow','c':'cyan'})\n",
+    "g.set_ylabel('individual')\n",
+    "g.set(xticklabels=[], xlabel='',)\n",
+    "g.set_xticks([])\n",
+    "plt.subplot(gs[1])\n",
+    "g2 = sns.boxplot(data=task1_transformed, x='stimulus', y='preference', width=0.6, palette='gray')\n",
+    "g2.set_ylabel('aggregate')\n",
+    "for box in g2.artists:\n",
+    "    box.set_facecolor(\"magenta\")\n",
+    "fig.tight_layout()\n",
+    "plt.savefig('task1.pdf', dpi=300,bbox_inches='tight')"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 8,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "image/png": "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\n",
+      "text/plain": [
+       "<matplotlib.figure.Figure at 0x7f8050e212e8>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "fig = plt.figure(figsize=(5,5))\n",
+    "gs = gridspec.GridSpec(2,1,height_ratios=[2,1])\n",
+    "plt.subplot(gs[0])\n",
+    "\n",
+    "g = sns.boxplot(data=task2_transformed, x='stimulus', y='preference', hue='story', width=0.8, palette={'a':'red','b':'yellow','c':'cyan'})\n",
+    "sns.set_style({'legend.frameon':False})\n",
+    "g.set_ylabel('individual')\n",
+    "g.set(xticklabels=[], xlabel='',)\n",
+    "g.set_xticks([])\n",
+    "g.set(yticklabels=[], ylabel='',)\n",
+    "g.set_yticks([])\n",
+    "\n",
+    "plt.subplot(gs[1])\n",
+    "g2 = sns.boxplot(data=task2_transformed, x='stimulus', y='preference', width=0.6, palette='gray')\n",
+    "g2.set_ylabel('aggregate')\n",
+    "g2.set(yticklabels=[], ylabel='',)\n",
+    "g2.set_yticks([])\n",
+    "for box in g2.artists:\n",
+    "    box.set_facecolor(\"magenta\")\n",
+    "fig.tight_layout()\n",
+    "plt.savefig('task2.pdf', dpi=300,bbox_inches='tight')"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 9,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "image/png": "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\n",
+      "text/plain": [
+       "<matplotlib.figure.Figure at 0x7f8050e93198>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "#sns.set(style=\"whitegrid\", color_codes=True)\n",
+    "fig = plt.figure(figsize=(5,5))\n",
+    "gs = gridspec.GridSpec(2,1,height_ratios=[2,1])\n",
+    "plt.subplot(gs[0])\n",
+    "g = sns.boxplot(data=task3_transformed, x='stimulus', y='preference', hue='story', width=0.8, palette={'a':'red','b':'yellow','c':'cyan'})\n",
+    "g.set_ylabel('individual')\n",
+    "g.set(xticklabels=[], xlabel='',)\n",
+    "g.set_xticks([])\n",
+    "\n",
+    "g.set(yticklabels=[], ylabel='',)\n",
+    "g.set_yticks([])\n",
+    "plt.subplot(gs[1])\n",
+    "g2 = sns.boxplot(data=task3_transformed, x='stimulus', y='preference', width=0.6, palette='gray')\n",
+    "g2.set_ylabel('aggregate')\n",
+    "\n",
+    "g2.set(yticklabels=[], ylabel='')\n",
+    "g2.set_yticks([])\n",
+    "g2.legend('')\n",
+    "for box in g2.artists:\n",
+    "    box.set_facecolor(\"magenta\")\n",
+    "fig.tight_layout()\n",
+    "plt.savefig('task3.pdf', dpi=300, bbox_inches='tight')"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 10,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAhAAAABQCAYAAABIx0zMAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvNQv5yAAAAzdJREFUeJzt3b+KXGUcxvHfOInbLKx/smAwjRg8RWwtU1jZ2QreQcBCryCxsLDzEmwXwcZbSJcrOKCkiVioMcssMWtcj412GuYZ9/XNOfv5VFvMC88LO/CFc2BW0zQVAEDihd4DAID5ERAAQExAAAAxAQEAxAQEABATEABATEAAADEBAQDEBAQAEBMQAEDsUnpgGIa9qnqnqn6oqrNzXwQA/J/WVXW1qu6N43i67aFnBsQwDHeq6vZ/2wUAzMDNqrq77YdX6Y9pDcPwZlV9+8XjX+twoT/EdeuDz3tPaOrKjS97T2jq3a/e7z2hmQ9vfNJ7QlPTx2/3ntDUNx897j2hqffe+qz3hKa+Przfe0ITm82mjo6Oqqquj+P43bbn4kcY9ddji8NpqtcWGhDr/Vd7T2jq8iuXe09o6uDFl3pPaOba/u+9JzQ1XVv2a1kv7616T2jq9f0rvSc0dXDwsPeE1qLXEpb9bQUAmhAQAEBMQAAAMQEBAMQEBAAQExAAQExAAAAxAQEAxAQEABATEABATEAAADEBAQDEBAQAEBMQAEBMQAAAMQEBAMQEBAAQExAAQExAAAAxAQEAxAQEABATEABATEAAADEBAQDEBAQAEBMQAEBMQAAAMQEBAMQEBAAQExAAQExAAAAxAQEAxAQEABATEABATEAAADEBAQDEBAQAEBMQAEBMQAAAMQEBAMQEBAAQExAAQExAAAAxAQEAxAQEABATEABATEAAADEBAQDEBAQAEBMQAEBMQAAAsUs7nFlXVf24Wp3zlOfH2cnPvSc09fTh094Tmjr+7VHvCc08ONnlKzsf04M/ek9o6pfTqfeEpr4/+an3hKaOj497T2his9n8/ec6Obeapn//hx6G4U5V3d55FQAwFzfHcby77YefGRD/ZBiGvap6UlXXq+os2zYb96vqjd4jGnK/+Vry3arcb+7cb57WVXW1qu6N43i67aE4IKqqhmGYxnFc7DMM95u3Jd9vyXercr+5c7+LxUuUAEBMQAAAMQEBAMR2DYhPz3XF88f95m3J91vy3arcb+7c7wLZ6SVKAOBi8wgDAIgJCAAgJiAAgJiAAABiAgIAiP0JwuSVW1Zv18wAAAAASUVORK5CYII=\n",
+      "text/plain": [
+       "<matplotlib.figure.Figure at 0x7f80901d0080>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "text/plain": [
+       "[(0.8941176470588235, 0.10196078431372557, 0.10980392156862737),\n",
+       " (0.21568627450980393, 0.4941176470588236, 0.7215686274509804),\n",
+       " (0.3019607843137256, 0.6862745098039216, 0.29019607843137263),\n",
+       " (0.5960784313725492, 0.3058823529411765, 0.6392156862745098),\n",
+       " (1.0, 0.4980392156862745, 0.0),\n",
+       " (0.9999999999999998, 1.0, 0.19999999999999996),\n",
+       " (0.6509803921568629, 0.33725490196078434, 0.1568627450980391),\n",
+       " (0.9686274509803922, 0.5058823529411766, 0.7490196078431374),\n",
+       " (0.6, 0.6, 0.6)]"
+      ]
+     },
+     "execution_count": 10,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "sns.choose_colorbrewer_palette('qualitative')"
+   ]
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 3",
+   "language": "python",
+   "name": "python3"
+  },
+  "language_info": {
+   "codemirror_mode": {
+    "name": "ipython",
+    "version": 3
+   },
+   "file_extension": ".py",
+   "mimetype": "text/x-python",
+   "name": "python",
+   "nbconvert_exporter": "python",
+   "pygments_lexer": "ipython3",
+   "version": "3.6.4"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 2
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/results/data/saves/.ipynb_checkpoints/plots-checkpoint.ipynb	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,1296 @@
+{
+ "cells": [
+  {
+   "cell_type": "code",
+   "execution_count": 1,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "import glob\n",
+    "import pandas as pd\n",
+    "\n",
+    "from matplotlib import rc\n",
+    "rc('font',**{'family':'sans-serif','sans-serif':['Helvetica']})\n",
+    "## for Palatino and other serif fonts use:\n",
+    "#rc('font',**{'family':'serif','serif':['Palatino']})\n",
+    "rc('text', usetex=True)\n",
+    "\n",
+    "import matplotlib.pyplot as plt\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 2,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "page1_df = pd.read_csv('ratings/page1-default-ratings.csv').set_index('file_keys')\n",
+    "page2_df = pd.read_csv('ratings/page2-default-ratings.csv').set_index('file_keys')\n",
+    "page3_df = pd.read_csv('ratings/page3-default-ratings.csv').set_index('file_keys')\n",
+    "page4_df = pd.read_csv('ratings/page4-default-ratings.csv').set_index('file_keys')\n",
+    "page5_df = pd.read_csv('ratings/page5-default-ratings.csv').set_index('file_keys')\n",
+    "page6_df = pd.read_csv('ratings/page6-default-ratings.csv').set_index('file_keys')\n",
+    "page7_df = pd.read_csv('ratings/page7-default-ratings.csv').set_index('file_keys')\n",
+    "page8_df = pd.read_csv('ratings/page8-default-ratings.csv').set_index('file_keys')\n",
+    "page9_df = pd.read_csv('ratings/page9-default-ratings.csv').set_index('file_keys')"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 3,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/html": [
+       "<div>\n",
+       "<style scoped>\n",
+       "    .dataframe tbody tr th:only-of-type {\n",
+       "        vertical-align: middle;\n",
+       "    }\n",
+       "\n",
+       "    .dataframe tbody tr th {\n",
+       "        vertical-align: top;\n",
+       "    }\n",
+       "\n",
+       "    .dataframe thead th {\n",
+       "        text-align: right;\n",
+       "    }\n",
+       "</style>\n",
+       "<table border=\"1\" class=\"dataframe\">\n",
+       "  <thead>\n",
+       "    <tr style=\"text-align: right;\">\n",
+       "      <th></th>\n",
+       "      <th>a0000</th>\n",
+       "      <th>a0011</th>\n",
+       "      <th>a1011</th>\n",
+       "      <th>a1101</th>\n",
+       "      <th>a1110</th>\n",
+       "      <th>a1111</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>file_keys</th>\n",
+       "      <th></th>\n",
+       "      <th></th>\n",
+       "      <th></th>\n",
+       "      <th></th>\n",
+       "      <th></th>\n",
+       "      <th></th>\n",
+       "    </tr>\n",
+       "  </thead>\n",
+       "  <tbody>\n",
+       "    <tr>\n",
+       "      <th>IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi</th>\n",
+       "      <td>0.06</td>\n",
+       "      <td>0.13</td>\n",
+       "      <td>0.68</td>\n",
+       "      <td>0.71</td>\n",
+       "      <td>0.65</td>\n",
+       "      <td>0.65</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t</th>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.04</td>\n",
+       "      <td>0.95</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>0.80</td>\n",
+       "      <td>0.95</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD</th>\n",
+       "      <td>0.24</td>\n",
+       "      <td>0.24</td>\n",
+       "      <td>0.76</td>\n",
+       "      <td>0.75</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>0.76</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq</th>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.83</td>\n",
+       "      <td>0.97</td>\n",
+       "      <td>0.86</td>\n",
+       "      <td>0.90</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>9UODgpqx7pTDhiiLm7ds39wh59aYBrHK</th>\n",
+       "      <td>0.06</td>\n",
+       "      <td>0.20</td>\n",
+       "      <td>0.72</td>\n",
+       "      <td>0.77</td>\n",
+       "      <td>0.55</td>\n",
+       "      <td>0.91</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>VyX492RQzqQXRL84PByL9pLt8C5p4c50</th>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.63</td>\n",
+       "      <td>0.87</td>\n",
+       "      <td>0.84</td>\n",
+       "      <td>1.00</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>bkHwhN78d7k2kIanOievgityZQD7gVOr</th>\n",
+       "      <td>0.08</td>\n",
+       "      <td>0.25</td>\n",
+       "      <td>0.93</td>\n",
+       "      <td>0.98</td>\n",
+       "      <td>0.78</td>\n",
+       "      <td>0.92</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp</th>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.00</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>0.76</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>0.77</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1</th>\n",
+       "      <td>0.09</td>\n",
+       "      <td>0.10</td>\n",
+       "      <td>0.92</td>\n",
+       "      <td>0.91</td>\n",
+       "      <td>0.09</td>\n",
+       "      <td>0.92</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz</th>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.00</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>0.97</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU</th>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.95</td>\n",
+       "      <td>0.42</td>\n",
+       "      <td>0.92</td>\n",
+       "      <td>0.93</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ</th>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.14</td>\n",
+       "      <td>0.70</td>\n",
+       "      <td>0.54</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>1.00</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>OK2yLWD54tr3klqiS631VXjQlroZfmD3</th>\n",
+       "      <td>0.06</td>\n",
+       "      <td>0.03</td>\n",
+       "      <td>0.52</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>0.68</td>\n",
+       "      <td>0.89</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa</th>\n",
+       "      <td>0.09</td>\n",
+       "      <td>0.11</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>0.99</td>\n",
+       "      <td>0.65</td>\n",
+       "      <td>0.54</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml</th>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.71</td>\n",
+       "      <td>0.83</td>\n",
+       "      <td>0.84</td>\n",
+       "      <td>0.93</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o</th>\n",
+       "      <td>0.23</td>\n",
+       "      <td>0.23</td>\n",
+       "      <td>0.62</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>0.79</td>\n",
+       "      <td>0.84</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT</th>\n",
+       "      <td>0.11</td>\n",
+       "      <td>0.24</td>\n",
+       "      <td>0.69</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>0.66</td>\n",
+       "      <td>0.83</td>\n",
+       "    </tr>\n",
+       "  </tbody>\n",
+       "</table>\n",
+       "</div>"
+      ],
+      "text/plain": [
+       "                                  a0000  a0011  a1011  a1101  a1110  a1111\n",
+       "file_keys                                                                 \n",
+       "IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi   0.06   0.13   0.68   0.71   0.65   0.65\n",
+       "iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t   0.00   0.04   0.95   1.00   0.80   0.95\n",
+       "bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD   0.24   0.24   0.76   0.75   1.00   0.76\n",
+       "U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq   0.00   0.00   0.83   0.97   0.86   0.90\n",
+       "9UODgpqx7pTDhiiLm7ds39wh59aYBrHK   0.06   0.20   0.72   0.77   0.55   0.91\n",
+       "VyX492RQzqQXRL84PByL9pLt8C5p4c50   0.00   0.00   0.63   0.87   0.84   1.00\n",
+       "bkHwhN78d7k2kIanOievgityZQD7gVOr   0.08   0.25   0.93   0.98   0.78   0.92\n",
+       "bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp   0.00   0.00   1.00   0.76   1.00   0.77\n",
+       "ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1   0.09   0.10   0.92   0.91   0.09   0.92\n",
+       "fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz   0.00   0.00   1.00   1.00   1.00   0.97\n",
+       "YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU   0.00   0.00   0.95   0.42   0.92   0.93\n",
+       "G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ   0.00   0.14   0.70   0.54   1.00   1.00\n",
+       "OK2yLWD54tr3klqiS631VXjQlroZfmD3   0.06   0.03   0.52   1.00   0.68   0.89\n",
+       "t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa   0.09   0.11   1.00   0.99   0.65   0.54\n",
+       "JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml   0.00   0.00   0.71   0.83   0.84   0.93\n",
+       "uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o   0.23   0.23   0.62   1.00   0.79   0.84\n",
+       "lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT   0.11   0.24   0.69   1.00   0.66   0.83"
+      ]
+     },
+     "execution_count": 3,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "page1_df"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": []
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 4,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/html": [
+       "<div>\n",
+       "<style scoped>\n",
+       "    .dataframe tbody tr th:only-of-type {\n",
+       "        vertical-align: middle;\n",
+       "    }\n",
+       "\n",
+       "    .dataframe tbody tr th {\n",
+       "        vertical-align: top;\n",
+       "    }\n",
+       "\n",
+       "    .dataframe thead th {\n",
+       "        text-align: right;\n",
+       "    }\n",
+       "</style>\n",
+       "<table border=\"1\" class=\"dataframe\">\n",
+       "  <thead>\n",
+       "    <tr style=\"text-align: right;\">\n",
+       "      <th></th>\n",
+       "      <th>a0000</th>\n",
+       "      <th>a0011</th>\n",
+       "      <th>a1011</th>\n",
+       "      <th>a1101</th>\n",
+       "      <th>a1110</th>\n",
+       "      <th>a1111</th>\n",
+       "      <th>b0000</th>\n",
+       "      <th>b0011</th>\n",
+       "      <th>b1011</th>\n",
+       "      <th>b1101</th>\n",
+       "      <th>...</th>\n",
+       "      <th>a10113</th>\n",
+       "      <th>a11013</th>\n",
+       "      <th>a11103</th>\n",
+       "      <th>a11113</th>\n",
+       "      <th>b00003</th>\n",
+       "      <th>b00113</th>\n",
+       "      <th>b10113</th>\n",
+       "      <th>b11013</th>\n",
+       "      <th>b11103</th>\n",
+       "      <th>b11113</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>file_keys</th>\n",
+       "      <th></th>\n",
+       "      <th></th>\n",
+       "      <th></th>\n",
+       "      <th></th>\n",
+       "      <th></th>\n",
+       "      <th></th>\n",
+       "      <th></th>\n",
+       "      <th></th>\n",
+       "      <th></th>\n",
+       "      <th></th>\n",
+       "      <th></th>\n",
+       "      <th></th>\n",
+       "      <th></th>\n",
+       "      <th></th>\n",
+       "      <th></th>\n",
+       "      <th></th>\n",
+       "      <th></th>\n",
+       "      <th></th>\n",
+       "      <th></th>\n",
+       "      <th></th>\n",
+       "      <th></th>\n",
+       "    </tr>\n",
+       "  </thead>\n",
+       "  <tbody>\n",
+       "    <tr>\n",
+       "      <th>IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi</th>\n",
+       "      <td>0.06</td>\n",
+       "      <td>0.13</td>\n",
+       "      <td>0.68</td>\n",
+       "      <td>0.71</td>\n",
+       "      <td>0.65</td>\n",
+       "      <td>0.65</td>\n",
+       "      <td>0.01</td>\n",
+       "      <td>0.02</td>\n",
+       "      <td>0.70</td>\n",
+       "      <td>0.68</td>\n",
+       "      <td>...</td>\n",
+       "      <td>0.77</td>\n",
+       "      <td>0.78</td>\n",
+       "      <td>0.69</td>\n",
+       "      <td>0.76</td>\n",
+       "      <td>0.11</td>\n",
+       "      <td>0.21</td>\n",
+       "      <td>0.66</td>\n",
+       "      <td>0.95</td>\n",
+       "      <td>0.56</td>\n",
+       "      <td>0.85</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t</th>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.04</td>\n",
+       "      <td>0.95</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>0.80</td>\n",
+       "      <td>0.95</td>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.00</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>...</td>\n",
+       "      <td>0.23</td>\n",
+       "      <td>0.71</td>\n",
+       "      <td>0.62</td>\n",
+       "      <td>0.79</td>\n",
+       "      <td>0.04</td>\n",
+       "      <td>0.22</td>\n",
+       "      <td>0.82</td>\n",
+       "      <td>0.86</td>\n",
+       "      <td>0.89</td>\n",
+       "      <td>0.49</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD</th>\n",
+       "      <td>0.24</td>\n",
+       "      <td>0.24</td>\n",
+       "      <td>0.76</td>\n",
+       "      <td>0.75</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>0.76</td>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.24</td>\n",
+       "      <td>0.76</td>\n",
+       "      <td>0.76</td>\n",
+       "      <td>...</td>\n",
+       "      <td>0.76</td>\n",
+       "      <td>0.76</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>0.50</td>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.50</td>\n",
+       "      <td>0.50</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>0.76</td>\n",
+       "      <td>0.75</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq</th>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.83</td>\n",
+       "      <td>0.97</td>\n",
+       "      <td>0.86</td>\n",
+       "      <td>0.90</td>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.96</td>\n",
+       "      <td>0.91</td>\n",
+       "      <td>...</td>\n",
+       "      <td>0.72</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>0.16</td>\n",
+       "      <td>0.81</td>\n",
+       "      <td>0.14</td>\n",
+       "      <td>0.15</td>\n",
+       "      <td>0.70</td>\n",
+       "      <td>0.97</td>\n",
+       "      <td>0.44</td>\n",
+       "      <td>0.83</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>9UODgpqx7pTDhiiLm7ds39wh59aYBrHK</th>\n",
+       "      <td>0.06</td>\n",
+       "      <td>0.20</td>\n",
+       "      <td>0.72</td>\n",
+       "      <td>0.77</td>\n",
+       "      <td>0.55</td>\n",
+       "      <td>0.91</td>\n",
+       "      <td>0.20</td>\n",
+       "      <td>0.29</td>\n",
+       "      <td>0.60</td>\n",
+       "      <td>0.96</td>\n",
+       "      <td>...</td>\n",
+       "      <td>0.66</td>\n",
+       "      <td>0.98</td>\n",
+       "      <td>0.32</td>\n",
+       "      <td>0.72</td>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.91</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>0.39</td>\n",
+       "      <td>0.84</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>VyX492RQzqQXRL84PByL9pLt8C5p4c50</th>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.63</td>\n",
+       "      <td>0.87</td>\n",
+       "      <td>0.84</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.00</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>...</td>\n",
+       "      <td>0.48</td>\n",
+       "      <td>0.78</td>\n",
+       "      <td>0.52</td>\n",
+       "      <td>0.80</td>\n",
+       "      <td>0.48</td>\n",
+       "      <td>0.21</td>\n",
+       "      <td>0.98</td>\n",
+       "      <td>0.59</td>\n",
+       "      <td>0.86</td>\n",
+       "      <td>0.92</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>bkHwhN78d7k2kIanOievgityZQD7gVOr</th>\n",
+       "      <td>0.08</td>\n",
+       "      <td>0.25</td>\n",
+       "      <td>0.93</td>\n",
+       "      <td>0.98</td>\n",
+       "      <td>0.78</td>\n",
+       "      <td>0.92</td>\n",
+       "      <td>NaN</td>\n",
+       "      <td>NaN</td>\n",
+       "      <td>NaN</td>\n",
+       "      <td>NaN</td>\n",
+       "      <td>...</td>\n",
+       "      <td>0.82</td>\n",
+       "      <td>0.66</td>\n",
+       "      <td>0.36</td>\n",
+       "      <td>0.97</td>\n",
+       "      <td>0.21</td>\n",
+       "      <td>0.27</td>\n",
+       "      <td>0.60</td>\n",
+       "      <td>0.84</td>\n",
+       "      <td>0.46</td>\n",
+       "      <td>0.94</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp</th>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.00</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>0.76</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>0.77</td>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.00</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>0.75</td>\n",
+       "      <td>...</td>\n",
+       "      <td>0.24</td>\n",
+       "      <td>0.49</td>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.22</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>0.09</td>\n",
+       "      <td>0.49</td>\n",
+       "      <td>0.50</td>\n",
+       "      <td>0.00</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1</th>\n",
+       "      <td>0.09</td>\n",
+       "      <td>0.10</td>\n",
+       "      <td>0.92</td>\n",
+       "      <td>0.91</td>\n",
+       "      <td>0.09</td>\n",
+       "      <td>0.92</td>\n",
+       "      <td>0.13</td>\n",
+       "      <td>0.08</td>\n",
+       "      <td>0.86</td>\n",
+       "      <td>0.95</td>\n",
+       "      <td>...</td>\n",
+       "      <td>0.96</td>\n",
+       "      <td>0.44</td>\n",
+       "      <td>0.33</td>\n",
+       "      <td>0.69</td>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.00</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>0.79</td>\n",
+       "      <td>0.17</td>\n",
+       "      <td>1.00</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz</th>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.00</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>0.97</td>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.97</td>\n",
+       "      <td>0.99</td>\n",
+       "      <td>...</td>\n",
+       "      <td>0.78</td>\n",
+       "      <td>0.09</td>\n",
+       "      <td>0.66</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>0.22</td>\n",
+       "      <td>0.01</td>\n",
+       "      <td>0.99</td>\n",
+       "      <td>0.10</td>\n",
+       "      <td>0.35</td>\n",
+       "      <td>0.63</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU</th>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.95</td>\n",
+       "      <td>0.42</td>\n",
+       "      <td>0.92</td>\n",
+       "      <td>0.93</td>\n",
+       "      <td>NaN</td>\n",
+       "      <td>NaN</td>\n",
+       "      <td>NaN</td>\n",
+       "      <td>NaN</td>\n",
+       "      <td>...</td>\n",
+       "      <td>0.69</td>\n",
+       "      <td>0.84</td>\n",
+       "      <td>0.75</td>\n",
+       "      <td>0.75</td>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.71</td>\n",
+       "      <td>0.95</td>\n",
+       "      <td>0.98</td>\n",
+       "      <td>0.87</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ</th>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.14</td>\n",
+       "      <td>0.70</td>\n",
+       "      <td>0.54</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.49</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>...</td>\n",
+       "      <td>0.20</td>\n",
+       "      <td>0.49</td>\n",
+       "      <td>0.33</td>\n",
+       "      <td>0.64</td>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.70</td>\n",
+       "      <td>0.33</td>\n",
+       "      <td>0.58</td>\n",
+       "      <td>0.57</td>\n",
+       "      <td>0.36</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>OK2yLWD54tr3klqiS631VXjQlroZfmD3</th>\n",
+       "      <td>0.06</td>\n",
+       "      <td>0.03</td>\n",
+       "      <td>0.52</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>0.68</td>\n",
+       "      <td>0.89</td>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.03</td>\n",
+       "      <td>0.95</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>...</td>\n",
+       "      <td>0.66</td>\n",
+       "      <td>0.86</td>\n",
+       "      <td>0.50</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.88</td>\n",
+       "      <td>0.51</td>\n",
+       "      <td>0.38</td>\n",
+       "      <td>1.00</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa</th>\n",
+       "      <td>0.09</td>\n",
+       "      <td>0.11</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>0.99</td>\n",
+       "      <td>0.65</td>\n",
+       "      <td>0.54</td>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.15</td>\n",
+       "      <td>0.48</td>\n",
+       "      <td>0.76</td>\n",
+       "      <td>...</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>0.51</td>\n",
+       "      <td>0.24</td>\n",
+       "      <td>0.76</td>\n",
+       "      <td>0.23</td>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.50</td>\n",
+       "      <td>0.74</td>\n",
+       "      <td>0.25</td>\n",
+       "      <td>1.00</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml</th>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.71</td>\n",
+       "      <td>0.83</td>\n",
+       "      <td>0.84</td>\n",
+       "      <td>0.93</td>\n",
+       "      <td>NaN</td>\n",
+       "      <td>NaN</td>\n",
+       "      <td>NaN</td>\n",
+       "      <td>NaN</td>\n",
+       "      <td>...</td>\n",
+       "      <td>0.89</td>\n",
+       "      <td>0.39</td>\n",
+       "      <td>0.69</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.90</td>\n",
+       "      <td>0.41</td>\n",
+       "      <td>0.68</td>\n",
+       "      <td>1.00</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o</th>\n",
+       "      <td>0.23</td>\n",
+       "      <td>0.23</td>\n",
+       "      <td>0.62</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>0.79</td>\n",
+       "      <td>0.84</td>\n",
+       "      <td>0.09</td>\n",
+       "      <td>0.10</td>\n",
+       "      <td>0.77</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>...</td>\n",
+       "      <td>0.67</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>0.49</td>\n",
+       "      <td>0.91</td>\n",
+       "      <td>0.06</td>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.76</td>\n",
+       "      <td>0.90</td>\n",
+       "      <td>0.64</td>\n",
+       "      <td>1.00</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT</th>\n",
+       "      <td>0.11</td>\n",
+       "      <td>0.24</td>\n",
+       "      <td>0.69</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>0.66</td>\n",
+       "      <td>0.83</td>\n",
+       "      <td>0.12</td>\n",
+       "      <td>0.11</td>\n",
+       "      <td>0.77</td>\n",
+       "      <td>0.92</td>\n",
+       "      <td>...</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>0.12</td>\n",
+       "      <td>0.50</td>\n",
+       "      <td>0.75</td>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.00</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>0.24</td>\n",
+       "      <td>0.76</td>\n",
+       "      <td>0.51</td>\n",
+       "    </tr>\n",
+       "  </tbody>\n",
+       "</table>\n",
+       "<p>17 rows × 48 columns</p>\n",
+       "</div>"
+      ],
+      "text/plain": [
+       "                                  a0000  a0011  a1011  a1101  a1110  a1111  \\\n",
+       "file_keys                                                                    \n",
+       "IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi   0.06   0.13   0.68   0.71   0.65   0.65   \n",
+       "iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t   0.00   0.04   0.95   1.00   0.80   0.95   \n",
+       "bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD   0.24   0.24   0.76   0.75   1.00   0.76   \n",
+       "U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq   0.00   0.00   0.83   0.97   0.86   0.90   \n",
+       "9UODgpqx7pTDhiiLm7ds39wh59aYBrHK   0.06   0.20   0.72   0.77   0.55   0.91   \n",
+       "VyX492RQzqQXRL84PByL9pLt8C5p4c50   0.00   0.00   0.63   0.87   0.84   1.00   \n",
+       "bkHwhN78d7k2kIanOievgityZQD7gVOr   0.08   0.25   0.93   0.98   0.78   0.92   \n",
+       "bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp   0.00   0.00   1.00   0.76   1.00   0.77   \n",
+       "ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1   0.09   0.10   0.92   0.91   0.09   0.92   \n",
+       "fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz   0.00   0.00   1.00   1.00   1.00   0.97   \n",
+       "YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU   0.00   0.00   0.95   0.42   0.92   0.93   \n",
+       "G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ   0.00   0.14   0.70   0.54   1.00   1.00   \n",
+       "OK2yLWD54tr3klqiS631VXjQlroZfmD3   0.06   0.03   0.52   1.00   0.68   0.89   \n",
+       "t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa   0.09   0.11   1.00   0.99   0.65   0.54   \n",
+       "JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml   0.00   0.00   0.71   0.83   0.84   0.93   \n",
+       "uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o   0.23   0.23   0.62   1.00   0.79   0.84   \n",
+       "lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT   0.11   0.24   0.69   1.00   0.66   0.83   \n",
+       "\n",
+       "                                  b0000  b0011  b1011  b1101   ...    a10113  \\\n",
+       "file_keys                                                      ...             \n",
+       "IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi   0.01   0.02   0.70   0.68   ...      0.77   \n",
+       "iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t   0.00   0.00   1.00   1.00   ...      0.23   \n",
+       "bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD   0.00   0.24   0.76   0.76   ...      0.76   \n",
+       "U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq   0.00   0.00   0.96   0.91   ...      0.72   \n",
+       "9UODgpqx7pTDhiiLm7ds39wh59aYBrHK   0.20   0.29   0.60   0.96   ...      0.66   \n",
+       "VyX492RQzqQXRL84PByL9pLt8C5p4c50   0.00   0.00   1.00   1.00   ...      0.48   \n",
+       "bkHwhN78d7k2kIanOievgityZQD7gVOr    NaN    NaN    NaN    NaN   ...      0.82   \n",
+       "bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp   0.00   0.00   1.00   0.75   ...      0.24   \n",
+       "ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1   0.13   0.08   0.86   0.95   ...      0.96   \n",
+       "fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz   0.00   0.00   0.97   0.99   ...      0.78   \n",
+       "YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU    NaN    NaN    NaN    NaN   ...      0.69   \n",
+       "G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ   0.00   0.00   0.49   1.00   ...      0.20   \n",
+       "OK2yLWD54tr3klqiS631VXjQlroZfmD3   0.00   0.03   0.95   1.00   ...      0.66   \n",
+       "t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa   0.00   0.15   0.48   0.76   ...      1.00   \n",
+       "JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml    NaN    NaN    NaN    NaN   ...      0.89   \n",
+       "uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o   0.09   0.10   0.77   1.00   ...      0.67   \n",
+       "lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT   0.12   0.11   0.77   0.92   ...      1.00   \n",
+       "\n",
+       "                                  a11013  a11103  a11113  b00003  b00113  \\\n",
+       "file_keys                                                                  \n",
+       "IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi    0.78    0.69    0.76    0.11    0.21   \n",
+       "iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t    0.71    0.62    0.79    0.04    0.22   \n",
+       "bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD    0.76    1.00    0.50    0.00    0.50   \n",
+       "U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq    1.00    0.16    0.81    0.14    0.15   \n",
+       "9UODgpqx7pTDhiiLm7ds39wh59aYBrHK    0.98    0.32    0.72    0.00    0.00   \n",
+       "VyX492RQzqQXRL84PByL9pLt8C5p4c50    0.78    0.52    0.80    0.48    0.21   \n",
+       "bkHwhN78d7k2kIanOievgityZQD7gVOr    0.66    0.36    0.97    0.21    0.27   \n",
+       "bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp    0.49    0.00    0.22    1.00    1.00   \n",
+       "ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1    0.44    0.33    0.69    0.00    0.00   \n",
+       "fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz    0.09    0.66    1.00    0.22    0.01   \n",
+       "YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU    0.84    0.75    0.75    0.00    0.00   \n",
+       "G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ    0.49    0.33    0.64    0.00    0.70   \n",
+       "OK2yLWD54tr3klqiS631VXjQlroZfmD3    0.86    0.50    1.00    0.00    0.00   \n",
+       "t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa    0.51    0.24    0.76    0.23    0.00   \n",
+       "JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml    0.39    0.69    1.00    0.00    0.00   \n",
+       "uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o    1.00    0.49    0.91    0.06    0.00   \n",
+       "lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT    0.12    0.50    0.75    0.00    0.00   \n",
+       "\n",
+       "                                  b10113  b11013  b11103  b11113  \n",
+       "file_keys                                                         \n",
+       "IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi    0.66    0.95    0.56    0.85  \n",
+       "iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t    0.82    0.86    0.89    0.49  \n",
+       "bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD    0.50    1.00    0.76    0.75  \n",
+       "U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq    0.70    0.97    0.44    0.83  \n",
+       "9UODgpqx7pTDhiiLm7ds39wh59aYBrHK    0.91    1.00    0.39    0.84  \n",
+       "VyX492RQzqQXRL84PByL9pLt8C5p4c50    0.98    0.59    0.86    0.92  \n",
+       "bkHwhN78d7k2kIanOievgityZQD7gVOr    0.60    0.84    0.46    0.94  \n",
+       "bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp    0.09    0.49    0.50    0.00  \n",
+       "ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1    1.00    0.79    0.17    1.00  \n",
+       "fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz    0.99    0.10    0.35    0.63  \n",
+       "YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU    0.71    0.95    0.98    0.87  \n",
+       "G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ    0.33    0.58    0.57    0.36  \n",
+       "OK2yLWD54tr3klqiS631VXjQlroZfmD3    0.88    0.51    0.38    1.00  \n",
+       "t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa    0.50    0.74    0.25    1.00  \n",
+       "JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml    0.90    0.41    0.68    1.00  \n",
+       "uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o    0.76    0.90    0.64    1.00  \n",
+       "lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT    1.00    0.24    0.76    0.51  \n",
+       "\n",
+       "[17 rows x 48 columns]"
+      ]
+     },
+     "execution_count": 4,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "big_results = page1_df.join(page2_df).join(page3_df).join(page4_df).join(page5_df).join(page6_df).join(page7_df).join(page8_df)\n",
+    "big_results"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 5,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "image/png": "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\n",
+      "text/plain": [
+       "<matplotlib.figure.Figure at 0x7fc8b8c5de80>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "char_df = page1_df.join(page2_df).join(page3_df)\n",
+    "\n",
+    "immers_df = page4_df.join(page5_df).join(page6_df)\n",
+    "renamedict = {k: k[:-1] for k in immers_df.columns}\n",
+    "immers_df = immers_df.rename(columns=renamedict)\n",
+    "\n",
+    "prefer_df = page7_df.join(page8_df).join(page9_df)\n",
+    "renamedict = {k: k[:-1] for k in prefer_df.columns}\n",
+    "prefer_df = prefer_df.rename(columns=renamedict)\n",
+    "\n",
+    "plt.rc('text', usetex=True)\n",
+    "plt.rc('font', family='serif')\n",
+    "char_df.boxplot(grid=False, rot=90,fontsize=15)\n",
+    "plt.title('Character Identification')\n",
+    "plt.savefig('characterid.pdf', dpi=300)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 6,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "image/png": "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\n",
+      "text/plain": [
+       "<matplotlib.figure.Figure at 0x7fc8b8d01e80>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "immers_df.boxplot(grid=False, rot=90,fontsize=15)\n",
+    "plt.title('Immersion')\n",
+    "plt.savefig('immersion.pdf', dpi=300)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 7,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "image/png": "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\n",
+      "text/plain": [
+       "<matplotlib.figure.Figure at 0x7fc8d15fbcf8>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "prefer_df.boxplot(grid=False, rot=90,fontsize=15)\n",
+    "plt.title('Preference')\n",
+    "plt.savefig('preference.pdf', dpi=300)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 8,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "import seaborn as sns"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": []
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 10,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "<matplotlib.axes._subplots.AxesSubplot at 0x7fc8d0c8ba90>"
+      ]
+     },
+     "execution_count": 10,
+     "metadata": {},
+     "output_type": "execute_result"
+    },
+    {
+     "data": {
+      "image/png": "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\n",
+      "text/plain": [
+       "<matplotlib.figure.Figure at 0x7fc8d0c8b518>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "# columns = \\\n",
+    "#         ['a0000', 'b0000', 'c0000',\n",
+    "#          'a0011', 'b0011', 'c0011',\n",
+    "#          'a1011', 'b1011', 'c1011',         \n",
+    "#          'a1110', 'b1110', 'c1110',                  \n",
+    "#          'a1111', 'b1111', 'c1111',         \n",
+    "#           ]\n",
+    "    \n",
+    "# br = big_results[columns]\n",
+    "columns = sorted(big_results.columns)\n",
+    "br = big_results[columns]\n",
+    "br.boxplot()\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 13,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "image/png": "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\n",
+      "text/plain": [
+       "<matplotlib.figure.Figure at 0x7fc8e8787ac8>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "import seaborn as sns\n",
+    "sns.set(style=\"ticks\")\n",
+    "\n",
+    "# Load the example tips dataset\n",
+    "tips = sns.load_dataset(\"tips\")\n",
+    "\n",
+    "# Draw a nested boxplot to show bills by day and sex\n",
+    "sns.boxplot(x=\"day\", y=\"total_bill\", hue=\"sex\", data=tips, palette=\"PRGn\")\n",
+    "sns.despine(offset=10, trim=True)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 12,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "renamedict = {k: k[1:] for k in page1_df.columns}\n",
+    "page1 = page1_df.rename(columns=renamedict)\n",
+    "renamedict = {k: k[1:] for k in page2_df.columns}\n",
+    "page2 = page2_df.rename(columns=renamedict)\n",
+    "renamedict = {k: k[1:] for k in page3_df.columns}\n",
+    "page3 = page3_df.rename(columns=renamedict)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 15,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/html": [
+       "<div>\n",
+       "<style scoped>\n",
+       "    .dataframe tbody tr th:only-of-type {\n",
+       "        vertical-align: middle;\n",
+       "    }\n",
+       "\n",
+       "    .dataframe tbody tr th {\n",
+       "        vertical-align: top;\n",
+       "    }\n",
+       "\n",
+       "    .dataframe thead th {\n",
+       "        text-align: right;\n",
+       "    }\n",
+       "</style>\n",
+       "<table border=\"1\" class=\"dataframe\">\n",
+       "  <thead>\n",
+       "    <tr style=\"text-align: right;\">\n",
+       "      <th></th>\n",
+       "      <th>0000</th>\n",
+       "      <th>0011</th>\n",
+       "      <th>1011</th>\n",
+       "      <th>1101</th>\n",
+       "      <th>1110</th>\n",
+       "      <th>1111</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>file_keys</th>\n",
+       "      <th></th>\n",
+       "      <th></th>\n",
+       "      <th></th>\n",
+       "      <th></th>\n",
+       "      <th></th>\n",
+       "      <th></th>\n",
+       "    </tr>\n",
+       "  </thead>\n",
+       "  <tbody>\n",
+       "    <tr>\n",
+       "      <th>IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi</th>\n",
+       "      <td>0.06</td>\n",
+       "      <td>0.13</td>\n",
+       "      <td>0.68</td>\n",
+       "      <td>0.71</td>\n",
+       "      <td>0.65</td>\n",
+       "      <td>0.65</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t</th>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.04</td>\n",
+       "      <td>0.95</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>0.80</td>\n",
+       "      <td>0.95</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD</th>\n",
+       "      <td>0.24</td>\n",
+       "      <td>0.24</td>\n",
+       "      <td>0.76</td>\n",
+       "      <td>0.75</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>0.76</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq</th>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.83</td>\n",
+       "      <td>0.97</td>\n",
+       "      <td>0.86</td>\n",
+       "      <td>0.90</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>9UODgpqx7pTDhiiLm7ds39wh59aYBrHK</th>\n",
+       "      <td>0.06</td>\n",
+       "      <td>0.20</td>\n",
+       "      <td>0.72</td>\n",
+       "      <td>0.77</td>\n",
+       "      <td>0.55</td>\n",
+       "      <td>0.91</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>VyX492RQzqQXRL84PByL9pLt8C5p4c50</th>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.63</td>\n",
+       "      <td>0.87</td>\n",
+       "      <td>0.84</td>\n",
+       "      <td>1.00</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>bkHwhN78d7k2kIanOievgityZQD7gVOr</th>\n",
+       "      <td>0.08</td>\n",
+       "      <td>0.25</td>\n",
+       "      <td>0.93</td>\n",
+       "      <td>0.98</td>\n",
+       "      <td>0.78</td>\n",
+       "      <td>0.92</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp</th>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.00</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>0.76</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>0.77</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1</th>\n",
+       "      <td>0.09</td>\n",
+       "      <td>0.10</td>\n",
+       "      <td>0.92</td>\n",
+       "      <td>0.91</td>\n",
+       "      <td>0.09</td>\n",
+       "      <td>0.92</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz</th>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.00</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>0.97</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU</th>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.95</td>\n",
+       "      <td>0.42</td>\n",
+       "      <td>0.92</td>\n",
+       "      <td>0.93</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ</th>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.14</td>\n",
+       "      <td>0.70</td>\n",
+       "      <td>0.54</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>1.00</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>OK2yLWD54tr3klqiS631VXjQlroZfmD3</th>\n",
+       "      <td>0.06</td>\n",
+       "      <td>0.03</td>\n",
+       "      <td>0.52</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>0.68</td>\n",
+       "      <td>0.89</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa</th>\n",
+       "      <td>0.09</td>\n",
+       "      <td>0.11</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>0.99</td>\n",
+       "      <td>0.65</td>\n",
+       "      <td>0.54</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml</th>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.71</td>\n",
+       "      <td>0.83</td>\n",
+       "      <td>0.84</td>\n",
+       "      <td>0.93</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o</th>\n",
+       "      <td>0.23</td>\n",
+       "      <td>0.23</td>\n",
+       "      <td>0.62</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>0.79</td>\n",
+       "      <td>0.84</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT</th>\n",
+       "      <td>0.11</td>\n",
+       "      <td>0.24</td>\n",
+       "      <td>0.69</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>0.66</td>\n",
+       "      <td>0.83</td>\n",
+       "    </tr>\n",
+       "  </tbody>\n",
+       "</table>\n",
+       "</div>"
+      ],
+      "text/plain": [
+       "                                  0000  0011  1011  1101  1110  1111\n",
+       "file_keys                                                           \n",
+       "IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi  0.06  0.13  0.68  0.71  0.65  0.65\n",
+       "iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t  0.00  0.04  0.95  1.00  0.80  0.95\n",
+       "bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD  0.24  0.24  0.76  0.75  1.00  0.76\n",
+       "U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq  0.00  0.00  0.83  0.97  0.86  0.90\n",
+       "9UODgpqx7pTDhiiLm7ds39wh59aYBrHK  0.06  0.20  0.72  0.77  0.55  0.91\n",
+       "VyX492RQzqQXRL84PByL9pLt8C5p4c50  0.00  0.00  0.63  0.87  0.84  1.00\n",
+       "bkHwhN78d7k2kIanOievgityZQD7gVOr  0.08  0.25  0.93  0.98  0.78  0.92\n",
+       "bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp  0.00  0.00  1.00  0.76  1.00  0.77\n",
+       "ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1  0.09  0.10  0.92  0.91  0.09  0.92\n",
+       "fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz  0.00  0.00  1.00  1.00  1.00  0.97\n",
+       "YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU  0.00  0.00  0.95  0.42  0.92  0.93\n",
+       "G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ  0.00  0.14  0.70  0.54  1.00  1.00\n",
+       "OK2yLWD54tr3klqiS631VXjQlroZfmD3  0.06  0.03  0.52  1.00  0.68  0.89\n",
+       "t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa  0.09  0.11  1.00  0.99  0.65  0.54\n",
+       "JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml  0.00  0.00  0.71  0.83  0.84  0.93\n",
+       "uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o  0.23  0.23  0.62  1.00  0.79  0.84\n",
+       "lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT  0.11  0.24  0.69  1.00  0.66  0.83"
+      ]
+     },
+     "execution_count": 15,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "page1_df"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": []
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 3",
+   "language": "python",
+   "name": "python3"
+  },
+  "language_info": {
+   "codemirror_mode": {
+    "name": "ipython",
+    "version": 3
+   },
+   "file_extension": ".py",
+   "mimetype": "text/x-python",
+   "name": "python",
+   "nbconvert_exporter": "python",
+   "pygments_lexer": "ipython3",
+   "version": "3.6.4"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 2
+}
Binary file results/data/saves/.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/results/data/saves/Plots.ipynb	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,865 @@
+{
+ "cells": [
+  {
+   "cell_type": "code",
+   "execution_count": 1,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "import glob\n",
+    "import pandas as pd\n",
+    "import matplotlib.pyplot as plt\n",
+    "import seaborn as sns\n",
+    "sns.set(style=\"ticks\", color_codes=True, font_scale=1.3)\n",
+    "\n",
+    "page1_df = pd.read_csv('ratings/page1-default-ratings.csv').set_index('file_keys')\n",
+    "page2_df = pd.read_csv('ratings/page2-default-ratings.csv').set_index('file_keys')\n",
+    "page3_df = pd.read_csv('ratings/page3-default-ratings.csv').set_index('file_keys')\n",
+    "page4_df = pd.read_csv('ratings/page4-default-ratings.csv').set_index('file_keys')\n",
+    "page5_df = pd.read_csv('ratings/page5-default-ratings.csv').set_index('file_keys')\n",
+    "page6_df = pd.read_csv('ratings/page6-default-ratings.csv').set_index('file_keys')\n",
+    "page7_df = pd.read_csv('ratings/page7-default-ratings.csv').set_index('file_keys')\n",
+    "page8_df = pd.read_csv('ratings/page8-default-ratings.csv').set_index('file_keys')\n",
+    "page9_df = pd.read_csv('ratings/page9-default-ratings.csv').set_index('file_keys')"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 2,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "renamedict = {k: k[1:] for k in page1_df.columns}\n",
+    "page1 = page1_df.rename(columns=renamedict)\n",
+    "page1['story'] = 'a'\n",
+    "renamedict = {k: k[1:] for k in page2_df.columns}\n",
+    "page2 = page2_df.rename(columns=renamedict)\n",
+    "page2['story'] = 'b'\n",
+    "renamedict = {k: k[1:] for k in page3_df.columns}\n",
+    "page3 = page3_df.rename(columns=renamedict)\n",
+    "page3['story'] = 'c'\n",
+    "renamedict = {k: k[1:] for k in page4_df.columns}\n",
+    "page4 = page4_df.rename(columns=renamedict)\n",
+    "page4['story'] = 'a'\n",
+    "renamedict = {k: k[1:] for k in page5_df.columns}\n",
+    "page5 = page5_df.rename(columns=renamedict)\n",
+    "page5['story'] = 'b'\n",
+    "renamedict = {k: k[1:] for k in page6_df.columns}\n",
+    "page6 = page6_df.rename(columns=renamedict)\n",
+    "page6['story'] = 'c'\n",
+    "renamedict = {k: k[1:] for k in page7_df.columns}\n",
+    "page7 = page7_df.rename(columns=renamedict)\n",
+    "page7['story'] = 'a'\n",
+    "renamedict = {k: k[1:] for k in page8_df.columns}\n",
+    "page8 = page8_df.rename(columns=renamedict)\n",
+    "page8['story'] = 'b'\n",
+    "renamedict = {k: k[1:] for k in page9_df.columns}\n",
+    "page9 = page9_df.rename(columns=renamedict)\n",
+    "page9['story'] = 'c'\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 3,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/html": [
+       "<div>\n",
+       "<style scoped>\n",
+       "    .dataframe tbody tr th:only-of-type {\n",
+       "        vertical-align: middle;\n",
+       "    }\n",
+       "\n",
+       "    .dataframe tbody tr th {\n",
+       "        vertical-align: top;\n",
+       "    }\n",
+       "\n",
+       "    .dataframe thead th {\n",
+       "        text-align: right;\n",
+       "    }\n",
+       "</style>\n",
+       "<table border=\"1\" class=\"dataframe\">\n",
+       "  <thead>\n",
+       "    <tr style=\"text-align: right;\">\n",
+       "      <th></th>\n",
+       "      <th>0000</th>\n",
+       "      <th>0011</th>\n",
+       "      <th>1011</th>\n",
+       "      <th>1101</th>\n",
+       "      <th>1110</th>\n",
+       "      <th>1111</th>\n",
+       "      <th>story</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>file_keys</th>\n",
+       "      <th></th>\n",
+       "      <th></th>\n",
+       "      <th></th>\n",
+       "      <th></th>\n",
+       "      <th></th>\n",
+       "      <th></th>\n",
+       "      <th></th>\n",
+       "    </tr>\n",
+       "  </thead>\n",
+       "  <tbody>\n",
+       "    <tr>\n",
+       "      <th>IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi</th>\n",
+       "      <td>0.06</td>\n",
+       "      <td>0.13</td>\n",
+       "      <td>0.68</td>\n",
+       "      <td>0.71</td>\n",
+       "      <td>0.65</td>\n",
+       "      <td>0.65</td>\n",
+       "      <td>a</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t</th>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.04</td>\n",
+       "      <td>0.95</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>0.80</td>\n",
+       "      <td>0.95</td>\n",
+       "      <td>a</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD</th>\n",
+       "      <td>0.24</td>\n",
+       "      <td>0.24</td>\n",
+       "      <td>0.76</td>\n",
+       "      <td>0.75</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>0.76</td>\n",
+       "      <td>a</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq</th>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.83</td>\n",
+       "      <td>0.97</td>\n",
+       "      <td>0.86</td>\n",
+       "      <td>0.90</td>\n",
+       "      <td>a</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>9UODgpqx7pTDhiiLm7ds39wh59aYBrHK</th>\n",
+       "      <td>0.06</td>\n",
+       "      <td>0.20</td>\n",
+       "      <td>0.72</td>\n",
+       "      <td>0.77</td>\n",
+       "      <td>0.55</td>\n",
+       "      <td>0.91</td>\n",
+       "      <td>a</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>VyX492RQzqQXRL84PByL9pLt8C5p4c50</th>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.63</td>\n",
+       "      <td>0.87</td>\n",
+       "      <td>0.84</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>a</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>bkHwhN78d7k2kIanOievgityZQD7gVOr</th>\n",
+       "      <td>0.08</td>\n",
+       "      <td>0.25</td>\n",
+       "      <td>0.93</td>\n",
+       "      <td>0.98</td>\n",
+       "      <td>0.78</td>\n",
+       "      <td>0.92</td>\n",
+       "      <td>a</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp</th>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.00</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>0.76</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>0.77</td>\n",
+       "      <td>a</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1</th>\n",
+       "      <td>0.09</td>\n",
+       "      <td>0.10</td>\n",
+       "      <td>0.92</td>\n",
+       "      <td>0.91</td>\n",
+       "      <td>0.09</td>\n",
+       "      <td>0.92</td>\n",
+       "      <td>a</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz</th>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.00</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>0.97</td>\n",
+       "      <td>a</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU</th>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.95</td>\n",
+       "      <td>0.42</td>\n",
+       "      <td>0.92</td>\n",
+       "      <td>0.93</td>\n",
+       "      <td>a</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ</th>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.14</td>\n",
+       "      <td>0.70</td>\n",
+       "      <td>0.54</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>a</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>OK2yLWD54tr3klqiS631VXjQlroZfmD3</th>\n",
+       "      <td>0.06</td>\n",
+       "      <td>0.03</td>\n",
+       "      <td>0.52</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>0.68</td>\n",
+       "      <td>0.89</td>\n",
+       "      <td>a</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa</th>\n",
+       "      <td>0.09</td>\n",
+       "      <td>0.11</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>0.99</td>\n",
+       "      <td>0.65</td>\n",
+       "      <td>0.54</td>\n",
+       "      <td>a</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml</th>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.71</td>\n",
+       "      <td>0.83</td>\n",
+       "      <td>0.84</td>\n",
+       "      <td>0.93</td>\n",
+       "      <td>a</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o</th>\n",
+       "      <td>0.23</td>\n",
+       "      <td>0.23</td>\n",
+       "      <td>0.62</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>0.79</td>\n",
+       "      <td>0.84</td>\n",
+       "      <td>a</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT</th>\n",
+       "      <td>0.11</td>\n",
+       "      <td>0.24</td>\n",
+       "      <td>0.69</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>0.66</td>\n",
+       "      <td>0.83</td>\n",
+       "      <td>a</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi</th>\n",
+       "      <td>0.01</td>\n",
+       "      <td>0.02</td>\n",
+       "      <td>0.70</td>\n",
+       "      <td>0.68</td>\n",
+       "      <td>0.79</td>\n",
+       "      <td>0.75</td>\n",
+       "      <td>b</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t</th>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.00</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>b</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD</th>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.24</td>\n",
+       "      <td>0.76</td>\n",
+       "      <td>0.76</td>\n",
+       "      <td>0.76</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>b</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq</th>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.96</td>\n",
+       "      <td>0.91</td>\n",
+       "      <td>0.92</td>\n",
+       "      <td>0.92</td>\n",
+       "      <td>b</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>9UODgpqx7pTDhiiLm7ds39wh59aYBrHK</th>\n",
+       "      <td>0.20</td>\n",
+       "      <td>0.29</td>\n",
+       "      <td>0.60</td>\n",
+       "      <td>0.96</td>\n",
+       "      <td>0.70</td>\n",
+       "      <td>0.81</td>\n",
+       "      <td>b</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>VyX492RQzqQXRL84PByL9pLt8C5p4c50</th>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.00</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>0.81</td>\n",
+       "      <td>b</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp</th>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.00</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>0.75</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>b</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1</th>\n",
+       "      <td>0.13</td>\n",
+       "      <td>0.08</td>\n",
+       "      <td>0.86</td>\n",
+       "      <td>0.95</td>\n",
+       "      <td>0.74</td>\n",
+       "      <td>0.76</td>\n",
+       "      <td>b</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz</th>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.97</td>\n",
+       "      <td>0.99</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>0.61</td>\n",
+       "      <td>b</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ</th>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.49</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>0.65</td>\n",
+       "      <td>0.82</td>\n",
+       "      <td>b</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>OK2yLWD54tr3klqiS631VXjQlroZfmD3</th>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.03</td>\n",
+       "      <td>0.95</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>0.83</td>\n",
+       "      <td>0.83</td>\n",
+       "      <td>b</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa</th>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.15</td>\n",
+       "      <td>0.48</td>\n",
+       "      <td>0.76</td>\n",
+       "      <td>0.74</td>\n",
+       "      <td>0.87</td>\n",
+       "      <td>b</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH</th>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.98</td>\n",
+       "      <td>0.74</td>\n",
+       "      <td>0.92</td>\n",
+       "      <td>0.91</td>\n",
+       "      <td>b</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o</th>\n",
+       "      <td>0.09</td>\n",
+       "      <td>0.10</td>\n",
+       "      <td>0.77</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>0.90</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>b</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT</th>\n",
+       "      <td>0.12</td>\n",
+       "      <td>0.11</td>\n",
+       "      <td>0.77</td>\n",
+       "      <td>0.92</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>0.90</td>\n",
+       "      <td>b</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi</th>\n",
+       "      <td>0.02</td>\n",
+       "      <td>0.01</td>\n",
+       "      <td>0.87</td>\n",
+       "      <td>0.98</td>\n",
+       "      <td>0.87</td>\n",
+       "      <td>0.93</td>\n",
+       "      <td>c</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t</th>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.97</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>c</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD</th>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.24</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>c</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq</th>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.72</td>\n",
+       "      <td>0.85</td>\n",
+       "      <td>0.88</td>\n",
+       "      <td>0.66</td>\n",
+       "      <td>c</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>VyX492RQzqQXRL84PByL9pLt8C5p4c50</th>\n",
+       "      <td>0.02</td>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.93</td>\n",
+       "      <td>0.82</td>\n",
+       "      <td>0.97</td>\n",
+       "      <td>0.83</td>\n",
+       "      <td>c</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>bkHwhN78d7k2kIanOievgityZQD7gVOr</th>\n",
+       "      <td>0.18</td>\n",
+       "      <td>0.23</td>\n",
+       "      <td>0.89</td>\n",
+       "      <td>0.92</td>\n",
+       "      <td>0.95</td>\n",
+       "      <td>0.90</td>\n",
+       "      <td>c</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1</th>\n",
+       "      <td>0.07</td>\n",
+       "      <td>0.11</td>\n",
+       "      <td>0.77</td>\n",
+       "      <td>0.93</td>\n",
+       "      <td>0.87</td>\n",
+       "      <td>0.93</td>\n",
+       "      <td>c</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz</th>\n",
+       "      <td>0.01</td>\n",
+       "      <td>0.00</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>0.97</td>\n",
+       "      <td>0.75</td>\n",
+       "      <td>c</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ</th>\n",
+       "      <td>0.20</td>\n",
+       "      <td>0.20</td>\n",
+       "      <td>0.60</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>0.75</td>\n",
+       "      <td>c</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>OK2yLWD54tr3klqiS631VXjQlroZfmD3</th>\n",
+       "      <td>0.00</td>\n",
+       "      <td>0.07</td>\n",
+       "      <td>0.91</td>\n",
+       "      <td>0.97</td>\n",
+       "      <td>0.84</td>\n",
+       "      <td>0.73</td>\n",
+       "      <td>c</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH</th>\n",
+       "      <td>0.10</td>\n",
+       "      <td>0.29</td>\n",
+       "      <td>0.51</td>\n",
+       "      <td>0.95</td>\n",
+       "      <td>0.52</td>\n",
+       "      <td>0.87</td>\n",
+       "      <td>c</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo</th>\n",
+       "      <td>0.12</td>\n",
+       "      <td>0.66</td>\n",
+       "      <td>0.28</td>\n",
+       "      <td>0.05</td>\n",
+       "      <td>0.54</td>\n",
+       "      <td>0.44</td>\n",
+       "      <td>c</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o</th>\n",
+       "      <td>0.12</td>\n",
+       "      <td>0.14</td>\n",
+       "      <td>0.77</td>\n",
+       "      <td>1.00</td>\n",
+       "      <td>0.95</td>\n",
+       "      <td>0.97</td>\n",
+       "      <td>c</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT</th>\n",
+       "      <td>0.24</td>\n",
+       "      <td>0.12</td>\n",
+       "      <td>0.89</td>\n",
+       "      <td>0.82</td>\n",
+       "      <td>0.69</td>\n",
+       "      <td>0.90</td>\n",
+       "      <td>c</td>\n",
+       "    </tr>\n",
+       "  </tbody>\n",
+       "</table>\n",
+       "</div>"
+      ],
+      "text/plain": [
+       "                                  0000  0011  1011  1101  1110  1111 story\n",
+       "file_keys                                                                 \n",
+       "IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi  0.06  0.13  0.68  0.71  0.65  0.65     a\n",
+       "iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t  0.00  0.04  0.95  1.00  0.80  0.95     a\n",
+       "bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD  0.24  0.24  0.76  0.75  1.00  0.76     a\n",
+       "U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq  0.00  0.00  0.83  0.97  0.86  0.90     a\n",
+       "9UODgpqx7pTDhiiLm7ds39wh59aYBrHK  0.06  0.20  0.72  0.77  0.55  0.91     a\n",
+       "VyX492RQzqQXRL84PByL9pLt8C5p4c50  0.00  0.00  0.63  0.87  0.84  1.00     a\n",
+       "bkHwhN78d7k2kIanOievgityZQD7gVOr  0.08  0.25  0.93  0.98  0.78  0.92     a\n",
+       "bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp  0.00  0.00  1.00  0.76  1.00  0.77     a\n",
+       "ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1  0.09  0.10  0.92  0.91  0.09  0.92     a\n",
+       "fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz  0.00  0.00  1.00  1.00  1.00  0.97     a\n",
+       "YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU  0.00  0.00  0.95  0.42  0.92  0.93     a\n",
+       "G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ  0.00  0.14  0.70  0.54  1.00  1.00     a\n",
+       "OK2yLWD54tr3klqiS631VXjQlroZfmD3  0.06  0.03  0.52  1.00  0.68  0.89     a\n",
+       "t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa  0.09  0.11  1.00  0.99  0.65  0.54     a\n",
+       "JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml  0.00  0.00  0.71  0.83  0.84  0.93     a\n",
+       "uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o  0.23  0.23  0.62  1.00  0.79  0.84     a\n",
+       "lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT  0.11  0.24  0.69  1.00  0.66  0.83     a\n",
+       "IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi  0.01  0.02  0.70  0.68  0.79  0.75     b\n",
+       "iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t  0.00  0.00  1.00  1.00  1.00  1.00     b\n",
+       "bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD  0.00  0.24  0.76  0.76  0.76  1.00     b\n",
+       "U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq  0.00  0.00  0.96  0.91  0.92  0.92     b\n",
+       "9UODgpqx7pTDhiiLm7ds39wh59aYBrHK  0.20  0.29  0.60  0.96  0.70  0.81     b\n",
+       "VyX492RQzqQXRL84PByL9pLt8C5p4c50  0.00  0.00  1.00  1.00  1.00  0.81     b\n",
+       "bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp  0.00  0.00  1.00  0.75  1.00  1.00     b\n",
+       "ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1  0.13  0.08  0.86  0.95  0.74  0.76     b\n",
+       "fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz  0.00  0.00  0.97  0.99  1.00  0.61     b\n",
+       "G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ  0.00  0.00  0.49  1.00  0.65  0.82     b\n",
+       "OK2yLWD54tr3klqiS631VXjQlroZfmD3  0.00  0.03  0.95  1.00  0.83  0.83     b\n",
+       "t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa  0.00  0.15  0.48  0.76  0.74  0.87     b\n",
+       "D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH  0.00  0.00  0.98  0.74  0.92  0.91     b\n",
+       "uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o  0.09  0.10  0.77  1.00  0.90  1.00     b\n",
+       "lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT  0.12  0.11  0.77  0.92  1.00  0.90     b\n",
+       "IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi  0.02  0.01  0.87  0.98  0.87  0.93     c\n",
+       "iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t  0.00  0.00  0.97  1.00  1.00  1.00     c\n",
+       "bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD  0.00  0.24  1.00  1.00  1.00  1.00     c\n",
+       "U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq  0.00  0.00  0.72  0.85  0.88  0.66     c\n",
+       "VyX492RQzqQXRL84PByL9pLt8C5p4c50  0.02  0.00  0.93  0.82  0.97  0.83     c\n",
+       "bkHwhN78d7k2kIanOievgityZQD7gVOr  0.18  0.23  0.89  0.92  0.95  0.90     c\n",
+       "ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1  0.07  0.11  0.77  0.93  0.87  0.93     c\n",
+       "fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz  0.01  0.00  1.00  1.00  0.97  0.75     c\n",
+       "G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ  0.20  0.20  0.60  1.00  1.00  0.75     c\n",
+       "OK2yLWD54tr3klqiS631VXjQlroZfmD3  0.00  0.07  0.91  0.97  0.84  0.73     c\n",
+       "D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH  0.10  0.29  0.51  0.95  0.52  0.87     c\n",
+       "KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo  0.12  0.66  0.28  0.05  0.54  0.44     c\n",
+       "uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o  0.12  0.14  0.77  1.00  0.95  0.97     c\n",
+       "lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT  0.24  0.12  0.89  0.82  0.69  0.90     c"
+      ]
+     },
+     "execution_count": 3,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "task1_df = page1.append(page2).append(page3)\n",
+    "task2_df = page4.append(page5).append(page6)\n",
+    "task3_df = page7.append(page8).append(page9)\n",
+    "\n",
+    "def transform_df(df):\n",
+    "    records = []\n",
+    "    for n in range(len(df)):\n",
+    "        for c in df.columns:\n",
+    "            if c not in ['file_keys', 'story']:\n",
+    "                records.append({\n",
+    "                    'stimulus': c,\n",
+    "                    'story': df['story'].iloc[n],\n",
+    "                    'preference': df[c].iloc[n]\n",
+    "                    \n",
+    "                })\n",
+    "                \n",
+    "    return pd.DataFrame.from_records(records)\n",
+    "        \n",
+    "task1_df"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 4,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "task1_transformed = transform_df(task1_df)\n",
+    "task2_transformed = transform_df(task2_df)\n",
+    "task3_transformed = transform_df(task3_df)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 5,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXgAAAEHCAYAAACk6V2yAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvNQv5yAAAFwhJREFUeJzt3W+IXOWhx/HvdrWJ4p9YKKzcVa8x8LwQIjWIfZOrEEob7gubhQvSuBcpbSz45r4wmlC4rr1QEgj4ppSyUBRiQmhehHihoJF4Sbx9E7zkSrn0KatGu6kraM1qipkkQ+6LORMn48zsOWfmzGye+X5AZufsnDkPvzz+9uzsmXkmrly5giQpPd8Y9QAkSdWw4CUpURa8JCXKgpekRFnwkpQoC16SEmXBS1KiLHhJStQNeR4UQngceBp4ALg5xphrP63MbKtjttUy39Uv7z/IZ8CvgZuA+eqGM5bMtjpmWy3zXeUminxUQQjhUeCNfn5ShxDWAA8BHwH1ss+ToO8CrwABuBM4FWOsFXkCs+2qme0GYJIS+ZptT87d6pWat5X+ShVCmAOer/IYCVrIbjcDb3V7kNmW8n7L113zNdvSnLvV65ltu1Gcwd8HLBw4cICpqamyT5Oc06dPs3PnTvbv38/27dsBNsQY3y3yHGbbWTPbY8eOsbS0VCpfs+3OuVu9svN2FH8UqQNMTU0xPT09gsOvTmfPnmViYqJ1cpf5NdVsO2hm25ZJ0XzNtgvn7lAVytbLJCUpUXkvk5wEbgS+md1fm32rFmP0A+X7UK/XuXz5MpcuXQLg4sWLIx5ROtqzrdVq5jtAzt3VL+9LNLPASy33v8xu7wXODHJA4+bo0aPs3r376v2tW7c2v5zGbPvSnu3GjRtHOJr0OHdXv1wFH2N8GXi50pGMqZmZGWZmZq7eX1xcZMuWLQCLIxtUItqzhWvyVZ+cu6ufr8FLUqIseElKlAUvSYmy4CUpURa8JCXKgpekRFnwkpQoC16SEmXBS1KiLHhJSpQFL0mJsuAlKVEWvCQlyoKXpERZ8JKUKAtekhJlwUtSoix4SUqUBS9JibLgJSlRFrwkJcqCl6REWfCSlCgLXpISZcFLUqIseElKlAUvSYmy4CUpURa8JCXKgpekRFnwkpQoC16SEmXBS1KiLHhJSpQFL0mJsuAlKVEWvCQl6oY8DwohTAJ7gCeBtcDrwFMxxk+qG9r4qNfr7Nu3jyNHjnDhwoXm5juAM6MbVRpas63VamzatGnUQ0qG2a5+ec/gdwGPAQ8D09m2/ZWMaAzNz89z/PhxDh8+zKFDh5qbXxzlmFLRmu2JEydGPZykmO3ql7fgdwB7Y4zvxRiXgWeBH4QQ7qluaOPjd7/7HT/5yU+46667uOWWW5qbHzHf/rVme+utt7Jjx47mt/5hlONKgdmufiu+RBNCWAfcDbzd3BZjfDeE8DnwAPBBwWNOAiwtLRXcLU3nz5/nr3/9K9/+9rdZXFxszeU8xfM12xbt2QJ84xtXz2nuB/67wNOZbYsBZwvm21NLLpNF9pu4cuVKzweEEO4CPgTWxxjfb9n+AfDzGOMrPfadA54vMiBd9THwTLd8zbZv/xFj/PdO3zDbvnXNFsy3T5tjjG/lfXCeP7J+kd3e3rZ9HfB5rx1jjHPAXOu2EMIa4AKwAajnGWTibgP+F/hn4P9o/IReAG6iR75mm0t7tvBVvqe77WS2uZTKFsy3pGa2p4rstGLBxxjPhRA+BB4k+4cLIayn8Q/8TtFRxhhrIQRijO8W3TdVWb5TMcbfZ/ehRL5m+3Udsl2ffet/ijyP2X7doLIF880jy6dWZJ9cl0kC88BzIYQ3gU+BvcBrMcYzxYaoLtrzBfMdlE5zF7MdCLNd5fIW/B4a12WfAtYAx4AnqhrUGGrPF8x3UDrNXQ2G2a5yK/6RtQohhCsxxomhH/g60U8+ZruyshmZ7cqcu9Upk0/ed7I+DjxN47K9m2OMec/8u3mhz/2T0SXbfvIx20yPeVs2I7Nt4dwdusL55DqDDyF8H/gWjSs75gdQ8MqYbXXMtlrmu/oVeokmhPAo8EY//5DZ5VAPAR/h5VCtvgu8AgTgTuBU0b+Ym21XzWw30LjcrHC+ZtuTc7d6peZtpT9xfUNDKQvZ7Wag6xsazLaU91u+7pqv2Zbm3K1ez2zbjeIM/j5g4cCBA0xNTZV9muScPn2anTt3sn//frZv3w6woeg1wWbbWTPbY8eOsbS0VCpfs+3OuVu9svN2FK+Z1QGmpqaYnp5e6bFj4+zZs0xMTLRO7jK/ppptB81s2zIpmq/ZduHcHapC2brghyQlqsiCHzcC38zur82+VYsxDv9C+oTU63UuX77MpUuXALh48eKIR5SO9mxrtZr5DpBzd/XL+xLNLPBSy/0vs9t7ybnqUMuqUD/OO7hxcPToUXbv3n31/tatW5tfLlDgJbQs390rPnCMtGe7cePGUs9jtp31mLvT2AtVKdQLuR4YY3wZeLnceK5qrgr1Q8DlXzIzMzPMzMxcvb+4uMiWLVvKPNUu4HuDGlcK2rOF0vmabQc95u5igaexFyo0zNfgd9D4MKK/DPGY42QH8JtRDyJRZlsde6FCQyn4TqtCaXBa8v3jqMeSGrOtjr1QvWGdwd+a3S4P6XjjpplvzwVYVIrZVsdeqNiwCr7bqlAajGa+t410FGky2+rYCxUbSsHHGM/RWNf1wWEcb9y05Hv/qMeSGrOtjr1QvWG+k3UeeA748xCPeV0r+H6DeeBnFQ8pJWuyfM128Ipmay8UUKQXhlnwzdVfXh3iMa9nkxR7v8Ee4B5g/QqPU8OfsluzHbyi2doL+RXqhaEVfIyxDjwTQvgV136qnzq7t8jaljHGegjhl8BPqxtSUnLna7aFFcoWe6GIQr3gZ9FIUqIseElKlAUvSYmy4CUpURa8JCXKgpekRFnwkpQoC16SEmXBS1KiLHhJSpQFL0mJsuAlKVEWvCQlyoKXpERZ8JKUKAtekhJlwUtSoix4SUqUBS9JibLgJSlRFrwkJcqCl6REWfCSlCgLXpISZcFLUqIseElKlAUvSYmy4CUpURa8JCXqhjwPCiFMAnuAJ4G1wOvAUzHGT6ob2vio1+vs27ePI0eOcOHChebmO4AzoxtVGlqzrdVqbNq0adRDSobZrn55z+B3AY8BDwPT2bb9lYxoDM3Pz3P8+HEOHz7MoUOHmptfHOWYUtGa7YkTJ0Y9nKSY7eqX6wwe2AH8Isb4HkAI4VlgIYRwT4zxg4LHnARYWloquFu6Dh48yOzsLBMTE5w/f765+ZES+Zptm9Zsl5eX2bZtGydPngS4i2K/IZltmwFmC+bbU0suk0X2m7hy5UrPB4QQ1gGfAd+JMZ5u2b4MzMYYX+2x7xzwfJEB6aq/Az/qlq/Z9m1XjHFvp2+Ybd+6Zgvm26fNMca38j44zxn8rdntctv2c8BtvXaMMc4Bc63bQghrgAvABqCeZ5CJuxP4A7AZWKTxE3oB+JQe+ZptLu3Zwlf5ftxtJ7PNpVS2YL4lNbM9VWSnPAX/RXZ7e9v2dcDnRQ4GEGOshRCIMb5bdN8UhRDOZV+ejzGeybZBiXzN9lqdss22A/ytyHOZ7bUGmS2Ybx5ZPrUi+6z4R9YY4zngQ+DBlgOtp3F2+U7RQepanfLNmG+fesxdMNu+mO31Ie8fWeeB50IIb9J46WAv8FrrT271pT1fMN9B6TR3MduBMNtVLm/B76FxXfYpYA1wDHiiqkGNofZ8wXwHpdPc1WCY7SqXq+BjjHXgmey/QXhhQM+ThPZ8QwhzfbyJzGxbdJq72VUcZZhtiwFnC+a7ksL5rHiZJEAI4XHgaeAB4OYYY94zf63AbKtjttUy39Uv7z/IZ8CvgZtovO6mwTHb6phttcx3lct1Bt8UQngUeKOfn9TZ9a4PAR/h9a6tvgu8AgQa1xifKnpJlNl21cx2A43riQvna7Y9OXerV2reVvorle9YK2Uhu90MdH3HmtmW8n7L113zNdvSnLvV65ltu1Gcwd8HLBw4cICpqamyT5Oc06dPs3PnTvbv38/27dsBNhR904fZdtbM9tixYywtLZXK12y7c+5Wr+y8HcUfReoAU1NTTE9Pr/TYsXH27FkmJiZaJ3eZX1PNtoNmtm2ZFM3XbLtw7g5VoWxd8EOSElVkwY8bgW9m99dm36rFGPO/xqOvqdfrXL58mUuXLgFw8eLFEY8oHe3Z1mo18x0g5+7ql/clmlngpZb7X2a395Lzc59bVoX6cd7BjYOjR4+ye/fuq/e3bt3a/HKBAi+hZfnuXvGBY6Q9240bN5Z6HrPtrMfcncZeqEqhXsj7TtaXgZfLjeeq5qpQPwRc/iUzMzPDzMzM1fuLi4ts2bKlzFPtAr43qHGloD1bKJ2v2XbQY+4udt3p6+yFCg3zNfgdND6M6C9DPOY42QH8ZtSDSJTZVsdeqNBQCj5bFepu4O1hHG/ctOT7x1GPJTVmWx17oXrDOoPvtiqUBqOZb+EFWLQis62OvVCxYRV8t1WhNBjNfHsuoahSzLY69kLFhlLwPVYt0gC05Hv/qMeSGrOtjr1QvWG+k3UeeA748xCPeV0r+H6DeeBnFQ8pJWuyfM128Ipmay8UUKQXhlnwzdVfXh3iMa9nkxR7v8Ee4B5g/QqPU8OfsluzHbyi2doL+RXqhaEVfHP1lxDCr7j2U/3U2b1F1raMMdZDCL8EflrdkJKSO1+zLaxQttgLRRTqBT+LRpISZcFLUqIseElKlAUvSYmy4CUpURa8JCXKgpekRFnwkpQoC16SEmXBS1KiLHhJSpQFL0mJsuAlKVEWvCQlyoKXpERZ8JKUKAtekhJlwUtSoix4SUqUBS9JibLgJSlRFrwkJcqCl6REWfCSlCgLXpISZcFLUqIseElKlAUvSYmy4CUpUTfkeVAIYRLYAzwJrAVeB56KMX5S3dDGR71eZ9++fRw5coQLFy40N98BnBndqNLQmm2tVmPTpk2jHlIyzHb1y3sGvwt4DHgYmM627a9kRGNofn6e48ePc/jwYQ4dOtTc/OIox5SK1mxPnDgx6uEkxWxXv1xn8MAO4BcxxvcAQgjPAgshhHtijB8UPOYkwNLSUsHd0nXw4EFmZ2eZmJjg/Pnzzc2PlMjXbNu0Zru8vMy2bds4efIkwF0U+w3JbNsMMFsw355acpksst/ElStXej4ghLAO+Az4TozxdMv2ZWA2xvhqj33ngOeLDEhX/R34Ubd8zbZvu2KMezt9w2z71jVbMN8+bY4xvpX3wXnO4G/Nbpfbtp8Dbuu1Y4xxDphr3RZCWANcADYA9TyDTNydwB+AzcAijZ/QC8Cn9MjXbHNpzxa+yvfjbjuZbS6lsgXzLamZ7akiO+Up+C+y29vbtq8DPi9yMIAYYy2EQIzx3aL7piiEcC778nyM8Uy2DUrka7bX6pRtth3gb0Wey2yvNchswXzzyPKpFdlnxT+yxhjPAR8CD7YcaD2Ns8t3ig5S1+qUb8Z8+9Rj7oLZ9sVsrw95/8g6DzwXQniTxksHe4HXWn9yqy/t+YL5DkqnuYvZDoTZrnJ5C34PjeuyTwFrgGPAE1UNagy15wvmOyid5q4Gw2xXubwF/y80roH/JnBTjHGmz+O+0Of+yQghPA48DTwA3BxjvCGEMNfHm8jMNtMp22z7XMmnNNtrfa0X+sgWzHclhfNZ8TJJgBDC94FvATcB883/UdQ/s62O2VbLfFe/XP8gMcbXAEIIj1Y6mjFkttUx22qZ7+o39J+42fWuDwEf4fWuraYAQgj30bjG+FTRS6LMtqtmtv9I43riwvmabU/O3eqVmreVFrzvWCtlIbvdDHR9x5rZlvJ+y9dd8zXb0py71euZbbtcr8E3Zb+KvdHPa23ZT/mFAwcOMDU1VfZpknP69Gl27tzJ/v372b59O8CGom/6MNvOmtkeO3aMpaWlUvmabXfO3eqVnbej+KNIHWBqaorp6emVHjs2zp49y8TEROvkLvNrqtl20My2LZOi+ZptF87doSqUbZHPg7+RxuVQhBDWZt+qxRjz/wqgr6nX61y+fJlLly4BcPHixRGPKB3t2dZqNfMdIOfu6pf3DH4WeKnl/pfZ7b24KEVfjh49yu7du6/e37p1a/PLacy2L+3Zbty4cYSjSY9zd/XLe5nky8DL/RyoZVWoH/fzPKmZmZlhZuar940tLi6yZcsWgP+iwEtoWb67V3zgGGnPFq7JNzez7azH3F3sulMbe6GwBQr0wjDXZG2uCvXDIR5znOwCvjfqQSTKbKtjL1RomAW/g8aHEf1liMccJzuA34x6EIky2+rYCxUaSsFnq0LdDbw9jOONm5Z8/zjqsaTGbKtjL1RvWGfw3VaF0mA08y28AItWZLbVsRcqNqyC77YqlAajmW/PJRRVitlWx16o2FAKvseqRRqAlnzvH/VYUmO21bEXqjfMd7LOA88Bfx7iMa9rBd9QNg/8rOIhpWRNlq/ZDl7RbO2FAor0wjALvrn6y6tDPOb1bJJibyjbA9wDrF/hcWr4U3ZrtoNXNFt7Ib9CvTC0go8x1oFnQgi/4tpP9VNn9xZZ2zLGWA8h/BL4aXVDSkrufM22sELZYi8UUagXhnkdvCRpiCx4SUqUBS9JibLgJSlRFrwkJcqCl6REWfCSlCgLXpISZcFLUqIseElKlAUvSYmy4CUpURa8JCXKgpekRFnwkpQoC16SEmXBS1KiLHhJSpQFL0mJsuAlKVEWvCQlyoKXpERZ8JKUKAtekhJlwUtSoix4SUqUBS9JibLgJSlRFrwkJeqGPA8KIUwCe4AngbXA68BTMcZPqhva+KjX6+zbt48jR45w4cKF5uY7gDOjG1UaWrOt1Wps2rRp1ENKhtmufnnP4HcBjwEPA9PZtv2VjGgMzc/Pc/z4cQ4fPsyhQ4eam18c5ZhS0ZrtiRMnRj2cpJjt6pfrDB7YAfwixvgeQAjhWWAhhHBPjPGDgsecBFhaWiq4W7oOHjzI7OwsExMTnD9/vrn5kRL5mm2b1myXl5fZtm0bJ0+eBLiLYr8hmW2bAWYL5ttTSy6TRfabuHLlSs8HhBDWAZ8B34kxnm7ZvgzMxhhf7bHvHPB8kQHpqr8DP+qWr9n2bVeMcW+nb5ht37pmC+bbp80xxrfyPjjPGfyt2e1y2/ZzwG29dowxzgFzrdtCCGuAC8AGoJ5nkIm7E/gDsBlYpPETegH4lB75mm0u7dnCV/l+3G0ns82lVLZgviU1sz1VZKc8Bf9Fdnt72/Z1wOdFDgYQY6yFEIgxvlt03xSFEM5lX56PMZ7JtkGJfM32Wp2yzbYD/K3Ic5nttQaZLZhvHlk+tSL7rPhH1hjjOeBD4MGWA62ncXb5TtFB6lqd8s2Yb596zF0w276Y7fUh7x9Z54HnQghv0njpYC/wWutPbvWlPV8w30HpNHcx24Ew21Uub8HvoXFd9ilgDXAMeKKqQY2h9nzBfAel09zVYJjtKper4GOMdeCZ7L9BeGFAz5OE9nxDCHN9vInMbFt0mrvZVRxlmG2LAWcL5ruSwvmseJmkJOn65GfRSFKiLHhJSpQFL0mJsuAlKVEWvCQlyoKXpERZ8JKUqLzvZO2bq0KtLITwOPA08ABwc4wx97+P+fZmttUx22r1k+8wz+BdFWplnwG/Bv6txL7m25vZVsdsq1U636G9kzWE8AGNVaF+m92/j8bnG/9jiVWhkhZCeBR4o+CZkPnmYLbVMdtqlcl3KGfw2apQdwNvN7dln/v8OY1fO9QH862O2VbHbKs3rJdoSq8KpVzMtzpmWx2zrdiwCn6gq0Lpa8y3OmZbHbOt2FAK3lWhqmW+1THb6pht9Yb5R9afA/8K/IDG6i+/BW6NMf5gKAO4DmSXjN0I/BPwe+CW7Fu1GGPPfyjz7c1sq2O21eon32FeJrkH+E8aq7+cpbFKuKsWXWsW+BJ4jUY+X2b/3ZNjX/PtzWyrY7bVKp2vC35IUqL8qAJJSpQFL0mJsuAlKVEWvCQlyoKXpERZ8JKUKAtekhJlwUtSov4fCa2WZS1H/3YAAAAASUVORK5CYII=\n",
+      "text/plain": [
+       "<matplotlib.figure.Figure at 0x7fbd38ebb128>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "fig, axes = plt.subplots(nrows=4, ncols=4)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 6,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "from matplotlib import gridspec\n",
+    "#sns.set(font_scale=1.3)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 7,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "image/png": "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\n",
+      "text/plain": [
+       "<matplotlib.figure.Figure at 0x7fbcfc9585f8>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "#sns.set(style=\"whitegrid\", color_codes=True)\n",
+    "fig = plt.figure(figsize=(5,5))\n",
+    "gs = gridspec.GridSpec(2,1,height_ratios=[2,1])\n",
+    "plt.subplot(gs[0])\n",
+    "g = sns.boxplot(data=task1_transformed, x='stimulus', y='preference', hue='story', width=0.8, palette={'a':'red','b':'yellow','c':'cyan'})\n",
+    "g.set_ylabel('individual')\n",
+    "g.set(xticklabels=[], xlabel='',)\n",
+    "g.set_xticks([])\n",
+    "plt.subplot(gs[1])\n",
+    "g2 = sns.boxplot(data=task1_transformed, x='stimulus', y='preference', width=0.6, palette='gray')\n",
+    "g2.set_ylabel('aggregate')\n",
+    "for box in g2.artists:\n",
+    "    box.set_facecolor(\"magenta\")\n",
+    "fig.tight_layout()\n",
+    "plt.savefig('task1.pdf', dpi=300,bbox_inches='tight')"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 8,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "image/png": "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\n",
+      "text/plain": [
+       "<matplotlib.figure.Figure at 0x7fbcfa0c80b8>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "fig = plt.figure(figsize=(5,5))\n",
+    "gs = gridspec.GridSpec(2,1,height_ratios=[2,1])\n",
+    "plt.subplot(gs[0])\n",
+    "\n",
+    "g = sns.boxplot(data=task2_transformed, x='stimulus', y='preference', hue='story', width=0.8, palette={'a':'red','b':'yellow','c':'cyan'})\n",
+    "sns.set_style({'legend.frameon':False})\n",
+    "g.set_ylabel('individual')\n",
+    "g.set(xticklabels=[], xlabel='',)\n",
+    "g.set_xticks([])\n",
+    "g.set(yticklabels=[], ylabel='',)\n",
+    "g.set_yticks([])\n",
+    "\n",
+    "plt.subplot(gs[1])\n",
+    "g2 = sns.boxplot(data=task2_transformed, x='stimulus', y='preference', width=0.6, palette='gray')\n",
+    "g2.set_ylabel('aggregate')\n",
+    "g2.set(yticklabels=[], ylabel='',)\n",
+    "g2.set_yticks([])\n",
+    "for box in g2.artists:\n",
+    "    box.set_facecolor(\"magenta\")\n",
+    "fig.tight_layout()\n",
+    "plt.savefig('task2.pdf', dpi=300,bbox_inches='tight')"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 9,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAWAAAAFgCAYAAACFYaNMAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvNQv5yAAAIABJREFUeJzt3X18XNV95/GPHtEaoYwfwJJtYlyob7a2IKTueosLIThZSHgpBDcPxDRNYgNOsiQmCSGt2SDkUpw4gTxQUmwWYrZFyZZAagIJoTgkDYJuoU8ZkXAIAQOyZFPJHmxZCEse7R/3zjCW5nnmzrlz5/t+vXj5ju6cuedohp/OnHPu79RNTU0hIiKVV2+7AiIitUoBWETEEgVgERFLFIBFRCxRABYRsUQBWETEEgVgERFLFIBFRCxRABYRsUQBWETEksZCCziOcxzwB8AQcLTsNRIRqU4NQAfwpDHm9XwKFByAcYPvL4ooJyJSC84GHsvnicUE4CGAu+++m/b29iKKi4iEz969e7n00kvBi5H5KCYAHwVob29n0aJFRRQXEQm1vIdmNQknImJJRQJwNBolGo1WrFw1CHPbRCQ/FQnAvb299Pb2VqxcNQhz20QkP74H4Gg0Sn9/P/39/QX1+IotVw3C3DYRyV8xk3AFSe3l9fb2smXLFl/LVYMgtu3OO++kr68v+Xh0dBSA1tZWAFatWsW6detylp1eLlvZUq5ZCBv1K/aahajENbJdM911y92uXNe45pprGBkZOea54+PjGV+7paXlmN/R3Llz2bp1a8U+i9P5HoClOiU+xKkfVj/LlVq2Etew8TsJ0jVsXTfbNUZGRhge3kckMgFAPN5Ati/28fghJidjAMRiTUVds5zqCt2U03GcU4AXdu3aldcytGg0yqZNmwC48cYb6ezszOs6xZarBtXQtvXr1wNwxx13VKRcqWUrcQ0bv5MgXcPWdbNdY/369UxODtDT82zBr9vdvZTGxkUZXzfTNTMZGBhg9erVAEuMMbvzKeN7D7izs5Ply5cnj/0uVw3C3DYRyV9FhiDWrl1b0XLVIMxtk2DLNd4J/o15BsnBg43E48PJ3m6q4eFhgLTn4I2x41JVJAAX28sLc+8wzG2T6mJr/Ni2eLyOo8DA5OSMcw3NzZDhXFMsVrY6aBJOpMasW7fumN6trfHjIJiIRHi2p6egMku7u8t2/UDfinzLLbfw2c9+1nY1RER8EegAXKrJNF8fRESCIjABePv27Zxzzjm87W1v4/zzz2fXrl1s27aNhx9+mDPPPJPzzz8fgFdeeYUrr7ySlStXct5557F9+3YSS+nuu+8+PvCBD/DlL3+ZlStXsnXrVlauXMnTTz+dvM6hQ4c444wzePnll620U0QkIRBjwM8//zx3330399xzD/Pnz2fPnj1MTk6yYcMGnn/+eb7+9a8nn/v5z3+exYsX8/Of/5yhoSEuu+wyTjzxRC6++GIAnn76aS688EL6+vqYnJxkYmKCnTt3smzZMgAeeughli1bxsknn2ylrSIiCYEIwA0NDRw5coTnnnuOOXPmsHDhwrTP27t3L08++SS33norLS0tLFmyhI9//OPs3LkzGYDnzp3LRz/6Uerq6mhsbOTiiy/mk5/8JF/84hdpaGjg/vvv533ve18lmxc602//TFWp5TsiYRCIIYjFixezadMmbr31Vs466yw+85nPMDQ0M6n8vn37OOGEE2hra0v+bOHChezbty/5uL29nbq6uuTj008/ndmzZ/PYY48xODjIL3/5S9797nf726CQS9z+OTk5MOO/5uYJmpsn0p4bHt6XMXCL1KJA9IABurq66OrqYnR0lOuvv54tW7awdOnSY54zf/58Dh06xKFDhzjhhBMA2LNnD/Pnz08+JzX4Jrzvfe9j586dOI7DueeemywrxYtEJgq+/bO7e2nuJ1mUrWcP6t1L+QWiB/z888/zxBNPcOTIEZqbm2lpaaG+vp65c+eyZ88e4vE44PZuV6xYwVe/+lXGx8fZvXs3O3bs4L3vfW/W17/ooov42c9+xr333qvhB8koW89evXvxQyB6wEeOHOHmm2/mueeeo7Gxkbe+9a1s3ryZlpYW7r//flauXMlJJ53Egw8+yE033URPTw9vf/vbOf744/ngBz+YM6ieeOKJrFixgv7+fs4+++wKtUqqUTE9ewh+716CKRAB+C1veQv33HNP2nPf/e53j3k8f/58vv3tb6d97po1a1izZk3acwsWLGDx4sU0NgaiyRIyQcgrINWnJqLR3r17+dGPfqQtgMQ3QcgrINUn9AH4G9/4BnfddRcf+9jHOO2002xXR0LMdl6Balbs0sbh4WEiEV+r5qvQB+CrrrqKq666ynY1RCSL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\n",
+      "text/plain": [
+       "<matplotlib.figure.Figure at 0x7fbcfa3d32b0>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "#sns.set(style=\"whitegrid\", color_codes=True)\n",
+    "fig = plt.figure(figsize=(5,5))\n",
+    "gs = gridspec.GridSpec(2,1,height_ratios=[2,1])\n",
+    "plt.subplot(gs[0])\n",
+    "g = sns.boxplot(data=task3_transformed, x='stimulus', y='preference', hue='story', width=0.8, palette={'a':'red','b':'yellow','c':'cyan'})\n",
+    "g.set_ylabel('individual')\n",
+    "g.set(xticklabels=[], xlabel='',)\n",
+    "g.set_xticks([])\n",
+    "\n",
+    "g.set(yticklabels=[], ylabel='',)\n",
+    "g.set_yticks([])\n",
+    "plt.subplot(gs[1])\n",
+    "g2 = sns.boxplot(data=task3_transformed, x='stimulus', y='preference', width=0.6, palette='gray')\n",
+    "g2.set_ylabel('aggregate')\n",
+    "\n",
+    "g2.set(yticklabels=[], ylabel='')\n",
+    "g2.set_yticks([])\n",
+    "g2.legend('')\n",
+    "for box in g2.artists:\n",
+    "    box.set_facecolor(\"magenta\")\n",
+    "fig.tight_layout()\n",
+    "plt.savefig('task3.pdf', dpi=300, bbox_inches='tight')"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 10,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAhAAAABQCAYAAABIx0zMAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvNQv5yAAAAzdJREFUeJzt3b+KXGUcxvHfOInbLKx/smAwjRg8RWwtU1jZ2QreQcBCryCxsLDzEmwXwcZbSJcrOKCkiVioMcssMWtcj412GuYZ9/XNOfv5VFvMC88LO/CFc2BW0zQVAEDihd4DAID5ERAAQExAAAAxAQEAxAQEABATEABATEAAADEBAQDEBAQAEBMQAEDsUnpgGIa9qnqnqn6oqrNzXwQA/J/WVXW1qu6N43i67aFnBsQwDHeq6vZ/2wUAzMDNqrq77YdX6Y9pDcPwZlV9+8XjX+twoT/EdeuDz3tPaOrKjS97T2jq3a/e7z2hmQ9vfNJ7QlPTx2/3ntDUNx897j2hqffe+qz3hKa+Przfe0ITm82mjo6Oqqquj+P43bbn4kcY9ddji8NpqtcWGhDr/Vd7T2jq8iuXe09o6uDFl3pPaOba/u+9JzQ1XVv2a1kv7616T2jq9f0rvSc0dXDwsPeE1qLXEpb9bQUAmhAQAEBMQAAAMQEBAMQEBAAQExAAQExAAAAxAQEAxAQEABATEABATEAAADEBAQDEBAQAEBMQAEBMQAAAMQEBAMQEBAAQExAAQExAAAAxAQEAxAQEABATEABATEAAADEBAQDEBAQAEBMQAEBMQAAAMQEBAMQEBAAQExAAQExAAAAxAQEAxAQEABATEABATEAAADEBAQDEBAQAEBMQAEBMQAAAMQEBAMQEBAAQExAAQExAAAAxAQEAxAQEABATEABATEAAADEBAQDEBAQAEBMQAEBMQAAAsUs7nFlXVf24Wp3zlOfH2cnPvSc09fTh094Tmjr+7VHvCc08ONnlKzsf04M/ek9o6pfTqfeEpr4/+an3hKaOj497T2his9n8/ec6Obeapn//hx6G4U5V3d55FQAwFzfHcby77YefGRD/ZBiGvap6UlXXq+os2zYb96vqjd4jGnK/+Vry3arcb+7cb57WVXW1qu6N43i67aE4IKqqhmGYxnFc7DMM95u3Jd9vyXercr+5c7+LxUuUAEBMQAAAMQEBAMR2DYhPz3XF88f95m3J91vy3arcb+7c7wLZ6SVKAOBi8wgDAIgJCAAgJiAAgJiAAABiAgIAiP0JwuSVW1Zv18wAAAAASUVORK5CYII=\n",
+      "text/plain": [
+       "<matplotlib.figure.Figure at 0x7fbcfa3ca240>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "text/plain": [
+       "[(0.8941176470588235, 0.10196078431372557, 0.10980392156862737),\n",
+       " (0.21568627450980393, 0.4941176470588236, 0.7215686274509804),\n",
+       " (0.3019607843137256, 0.6862745098039216, 0.29019607843137263),\n",
+       " (0.5960784313725492, 0.3058823529411765, 0.6392156862745098),\n",
+       " (1.0, 0.4980392156862745, 0.0),\n",
+       " (0.9999999999999998, 1.0, 0.19999999999999996),\n",
+       " (0.6509803921568629, 0.33725490196078434, 0.1568627450980391),\n",
+       " (0.9686274509803922, 0.5058823529411766, 0.7490196078431374),\n",
+       " (0.6, 0.6, 0.6)]"
+      ]
+     },
+     "execution_count": 10,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "sns.choose_colorbrewer_palette('qualitative')"
+   ]
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 3",
+   "language": "python",
+   "name": "python3"
+  },
+  "language_info": {
+   "codemirror_mode": {
+    "name": "ipython",
+    "version": 3
+   },
+   "file_extension": ".py",
+   "mimetype": "text/x-python",
+   "name": "python",
+   "nbconvert_exporter": "python",
+   "pygments_lexer": "ipython3",
+   "version": "3.6.5"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 2
+}
Binary file results/data/saves/Report.pdf has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/results/data/saves/Report.tex	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,899 @@
+\documentclass[11pt, oneside]{article} 
+          \usepackage{geometry}
+          \geometry{a4paper}
+          \usepackage[parfill]{parskip} % empty line instead of indent
+          \usepackage{graphicx}         % figures
+          \usepackage[space]{grffile}   % include figures with spaces in paths
+          \usepackage[pdfpagelabels]{hyperref}
+          \usepackage{tikz}             % pie charts
+          \usepackage{float}            % place figures 'here'
+          \title{Report}
+          \author{mmxgn}
+          \graphicspath{{../saves/}}
+          %\setcounter{section}{-1} % Summary section 0 so number of sections equals number of files
+          \begin{document}
+          \maketitle
+          This is an automatically generated report using the `generate\_report.py' Python script 
+          included with the Web Audio Evaluation Tool \cite{WAET} distribution which can be found 
+          at \texttt{\href{https://github.com/BrechtDeMan/WebAudioEvaluationTool}{github.com/BrechtDeMan/WebAudioEvaluationTool}}.
+          \tableofcontents
+          
+          \section*{Summary}
+		\addcontentsline{toc}{section}{Summary}
+		\begin{tabular}{ll}
+			Number of XML files: &24\\
+			Number of pages: &210\\
+			Number of fragments: &1257\\
+			Number of empty comments: &1155 (91.89\%)\\
+			Number of unplayed fragments: &0 (0.0\%)\\
+			Number of unmoved markers: &0 (0.0\%)\\
+			Average time per page: &N/A\\
+		\end{tabular} \\ 
+
+
+		\subsection*{Average duration per ordered page}
+ See also Figure \ref{fig:avgtimeperorder}. \\ 
+		\begin{tabular}{lll}
+                    \textbf{Page} & \textbf{Duration} & \textbf{\# subjects}\\
+			1&N/A&24\\
+			2&N/A&24\\
+			3&N/A&24\\
+			4&N/A&23\\
+			5&N/A&23\\
+			6&N/A&23\\
+			7&N/A&23\\
+			8&N/A&23\\
+			9&N/A&23\\
+		\end{tabular} \vspace{1.5cm} \\ 
+
+		
+
+		\subsection*{Average duration per page}
+                See also Figure \ref{fig:avgtimeperpage}. \\ 
+                \begin{tabular}{llll}
+                        \textbf{Audioholder} & \textbf{Duration} & \textbf{\# subjects} & \textbf{\# fragments} \\
+			page2&N/A&23&6\\
+			page4&N/A&23&6\\
+			page6&N/A&23&6\\
+			page8&N/A&23&6\\
+			page1&N/A&23&6\\
+			page5&N/A&23&6\\
+			page9&N/A&23&6\\
+			page7&N/A&23&6\\
+			page3&N/A&23&6\\
+			page1(5)&N/A&1&5\\
+			page3(5)&N/A&1&5\\
+			page2(5)&N/A&1&5\\
+		\end{tabular}
+
+        \begin{figure}[htbp]
+        \begin{center}
+        \includegraphics[width=.65\textwidth]{../saves/time_per_order.pdf}
+        \caption{Average time spent per page (order).}
+        \label{fig:avgtimeperorder}
+        \end{center}
+        \end{figure}
+         
+         \begin{figure}[htbp]
+        \begin{center}
+        \includegraphics[width=.65\textwidth]{../saves/time_per_page.pdf}
+        \caption{Average time spent per page (content).}
+        \label{fig:avgtimeperpage}
+        \end{center}
+        \end{figure}
+         
+         \begin{figure}[htbp]
+        \begin{center}
+        \includegraphics[width=.65\textwidth]{../saves/subjects_per_page.pdf}
+        \caption{Number of subjects per page.}
+        \label{fig:subjectsperpage}
+        \end{center}
+        \end{figure}
+
+         		\clearpage 
+	\subsection*{Ratings per page}
+
+        % Pie chart of gender distribution
+        \def\angle{0}
+        \def\radius{3}
+        \def\cyclelist{{"orange","blue","red","green"}}
+        \newcount\cyclecount \cyclecount=-1
+        \newcount\ind \ind=-1
+        \begin{figure}[htbp]
+        \begin{center}\begin{tikzpicture}[nodes = {font=\sffamily}]
+        \foreach \percent/\name in {100.00/Unavailable (24),
+} {\ifx\percent\empty\else               % If \percent is empty, do nothing
+        \global\advance\cyclecount by 1     % Advance cyclecount
+        \global\advance\ind by 1            % Advance list index
+        \ifnum6<\cyclecount                 % If cyclecount is larger than list
+          \global\cyclecount=0              %   reset cyclecount and
+          \global\ind=0                     %   reset list index
+        \fi
+        \pgfmathparse{\cyclelist[\the\ind]} % Get color from cycle list
+        \edef\color{\pgfmathresult}         %   and store as \color
+        % Draw angle and set labels
+        \draw[fill={\color!50},draw={\color}] (0,0) -- (\angle:\radius)
+          arc (\angle:\angle+\percent*3.6:\radius) -- cycle;
+        \node at (\angle+0.5*\percent*3.6:0.7*\radius) {\percent\,\%};
+        \node[pin=\angle+0.5*\percent*3.6:\name]
+          at (\angle+0.5*\percent*3.6:\radius) {};
+        \pgfmathparse{\angle+\percent*3.6}  % Advance angle
+        \xdef\angle{\pgfmathresult}         %   and store in \angle
+        \fi
+        };
+        \end{tikzpicture}
+        \caption{Representation of gender across subjects}
+        \label{default}
+        \end{center}
+        \end{figure}
+        
+        
+        % Pie chart of browser distribution
+        \def\angle{0}
+        \def\radius{3}
+        \def\cyclelist{{"orange","blue","red","green"}}
+        \newcount\cyclecount \cyclecount=-1
+        \newcount\ind \ind=-1
+        \begin{figure}[htbp]
+        \begin{center}\begin{tikzpicture}[nodes = {font=\sffamily}]
+        \foreach \percent/\name in {62.50/Google inc. (15),
+25.00/Apple computer inc. (6),
+12.50/Unavailable (3),
+} {\ifx\percent\empty\else               % If \percent is empty, do nothing
+        \global\advance\cyclecount by 1     % Advance cyclecount
+        \global\advance\ind by 1            % Advance list index
+        \ifnum6<\cyclecount                 % If cyclecount is larger than list
+          \global\cyclecount=0              %   reset cyclecount and
+          \global\ind=0                     %   reset list index
+        \fi
+        \pgfmathparse{\cyclelist[\the\ind]} % Get color from cycle list
+        \edef\color{\pgfmathresult}         %   and store as \color
+        % Draw angle and set labels
+        \draw[fill={\color!50},draw={\color}] (0,0) -- (\angle:\radius)
+          arc (\angle:\angle+\percent*3.6:\radius) -- cycle;
+        \node at (\angle+0.5*\percent*3.6:0.7*\radius) {\percent\,\%};
+        \node[pin=\angle+0.5*\percent*3.6:\name]
+          at (\angle+0.5*\percent*3.6:\radius) {};
+        \pgfmathparse{\angle+\percent*3.6}  % Advance angle
+        \xdef\angle{\pgfmathresult}         %   and store in \angle
+        \fi
+        };
+        \end{tikzpicture}
+        \caption{Representation of browsers across subjects}
+        \label{default}
+        \end{center}
+        \end{figure}
+        
+        
+        % Pie chart of browser distribution
+        \def\angle{0}
+        \def\radius{3}
+        \def\cyclelist{{"orange","blue","red","green","cyan"}}
+        \newcount\cyclecount \cyclecount=-1
+        \newcount\ind \ind=-1
+        \begin{figure}[htbp]
+        \begin{center}\begin{tikzpicture}[nodes = {font=\sffamily}]
+        \foreach \percent/\name in {20.83/Win32 (5),
+4.17/Win64 (1),
+58.33/Macintel (14),
+4.17/Linux x86\_64 (1),
+} {\ifx\percent\empty\else               % If \percent is empty, do nothing
+        \global\advance\cyclecount by 1     % Advance cyclecount
+        \global\advance\ind by 1            % Advance list index
+        \ifnum6<\cyclecount                 % If cyclecount is larger than list
+          \global\cyclecount=0              %   reset cyclecount and
+          \global\ind=0                     %   reset list index
+        \fi
+        \pgfmathparse{\cyclelist[\the\ind]} % Get color from cycle list
+        \edef\color{\pgfmathresult}         %   and store as \color
+        % Draw angle and set labels
+        \draw[fill={\color!50},draw={\color}] (0,0) -- (\angle:\radius)
+          arc (\angle:\angle+\percent*3.6:\radius) -- cycle;
+        \node at (\angle+0.5*\percent*3.6:0.7*\radius) {\percent\,\%};
+        \node[pin=\angle+0.5*\percent*3.6:\name]
+          at (\angle+0.5*\percent*3.6:\radius) {};
+        \pgfmathparse{\angle+\percent*3.6}  % Advance angle
+        \xdef\angle{\pgfmathresult}         %   and store in \angle
+        \fi
+        };
+        \end{tikzpicture}
+        \caption{Representation of platforms across subjects}
+        \label{default}
+        \end{center}
+        \end{figure}
+        
+        
+\section{19 March 2018 19:22:17}
+		File: save-uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o\\ 
+		\begin{tabular}{|p{3.5cm}|c|p{2.5cm}|}
+                 \hline
+                 \textbf{Song name} & \textbf{Comments} & \textbf{Duration} \\ \hline 
+		page2&0/6&1 min 50 s\\
+		page4&0/6&1 min 51 s\\
+		page6&0/6&2 min 16 s\\
+		page8&0/6&1 min 41 s\\
+		page1&0/6&3 min 10 s\\
+		page5&0/6&1 min 28 s\\
+		page9&0/6&1 min 51 s\\
+		page7&0/6&2 min 2 s\\
+		page3&0/6&1 min 51 s\\
+		\hline
+                  \textbf{TOTAL} & & \textbf{18 min 5 s}\\
+                  \hline 
+                  \end{tabular}
+                  
+                  \includegraphics[width=\textwidth]{../saves/timelines_movement/save-uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o-page2.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o-page4.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o-page6.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o-page8.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o-page1.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o-page5.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o-page9.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o-page7.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o-page3.pdf}
+		
+
+\section{19 March 2018 20:14:50}
+		File: save-bkHwhN78d7k2kIanOievgityZQD7gVOr\\ 
+		\begin{tabular}{|p{3.5cm}|c|p{2.5cm}|}
+                 \hline
+                 \textbf{Song name} & \textbf{Comments} & \textbf{Duration} \\ \hline 
+		page2&6/6&37 min 18 s\\
+		page4&0/6&2 min 31 s\\
+		page6&0/6&1 min 49 s\\
+		page8&0/6&1 min 32 s\\
+		page1&6/6&15 min 6 s\\
+		page5&0/6&1 min 13 s\\
+		page9&0/6&1 min 43 s\\
+		page7&0/6&1 min 43 s\\
+		page3&0/6&4 min 11 s\\
+		\hline
+                  \textbf{TOTAL} & & \textbf{67 min 10 s}\\
+                  \hline 
+                  \end{tabular}
+                  
+                  \includegraphics[width=\textwidth]{../saves/timelines_movement/save-bkHwhN78d7k2kIanOievgityZQD7gVOr-page2.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-bkHwhN78d7k2kIanOievgityZQD7gVOr-page4.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-bkHwhN78d7k2kIanOievgityZQD7gVOr-page6.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-bkHwhN78d7k2kIanOievgityZQD7gVOr-page8.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-bkHwhN78d7k2kIanOievgityZQD7gVOr-page1.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-bkHwhN78d7k2kIanOievgityZQD7gVOr-page5.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-bkHwhN78d7k2kIanOievgityZQD7gVOr-page9.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-bkHwhN78d7k2kIanOievgityZQD7gVOr-page7.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-bkHwhN78d7k2kIanOievgityZQD7gVOr-page3.pdf}
+		
+
+\section{19 March 2018 20:17:20}
+		File: save-VyX492RQzqQXRL84PByL9pLt8C5p4c50\\ 
+		\begin{tabular}{|p{3.5cm}|c|p{2.5cm}|}
+                 \hline
+                 \textbf{Song name} & \textbf{Comments} & \textbf{Duration} \\ \hline 
+		page2&0/6&1 min 22 s\\
+		page4&0/6&2 min 7 s\\
+		page6&4/6&5 min 17 s\\
+		page8&0/6&3 min 4 s\\
+		page1&0/6&2 min 2 s\\
+		page5&0/6&1 min 35 s\\
+		page9&0/6&2 min 57 s\\
+		page7&1/6&2 min 23 s\\
+		page3&0/6&1 min 45 s\\
+		\hline
+                  \textbf{TOTAL} & & \textbf{22 min 36 s}\\
+                  \hline 
+                  \end{tabular}
+                  
+                  \includegraphics[width=\textwidth]{../saves/timelines_movement/save-VyX492RQzqQXRL84PByL9pLt8C5p4c50-page2.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-VyX492RQzqQXRL84PByL9pLt8C5p4c50-page4.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-VyX492RQzqQXRL84PByL9pLt8C5p4c50-page6.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-VyX492RQzqQXRL84PByL9pLt8C5p4c50-page8.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-VyX492RQzqQXRL84PByL9pLt8C5p4c50-page1.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-VyX492RQzqQXRL84PByL9pLt8C5p4c50-page5.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-VyX492RQzqQXRL84PByL9pLt8C5p4c50-page9.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-VyX492RQzqQXRL84PByL9pLt8C5p4c50-page7.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-VyX492RQzqQXRL84PByL9pLt8C5p4c50-page3.pdf}
+		
+
+\section{19 March 2018 21:38:25}
+		File: save-ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1\\ 
+		\begin{tabular}{|p{3.5cm}|c|p{2.5cm}|}
+                 \hline
+                 \textbf{Song name} & \textbf{Comments} & \textbf{Duration} \\ \hline 
+		page2&0/6&1 min 36 s\\
+		page4&0/6&1 min 41 s\\
+		page6&0/6&1 min 40 s\\
+		page8&0/6&1 min 13 s\\
+		page1&0/6&5 min 19 s\\
+		page5&0/6&1 min 13 s\\
+		page9&0/6&1 min 37 s\\
+		page7&0/6&1 min 47 s\\
+		page3&0/6&1 min 42 s\\
+		\hline
+                  \textbf{TOTAL} & & \textbf{17 min 53 s}\\
+                  \hline 
+                  \end{tabular}
+                  
+                  \includegraphics[width=\textwidth]{../saves/timelines_movement/save-ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1-page2.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1-page4.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1-page6.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1-page8.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1-page1.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1-page5.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1-page9.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1-page7.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1-page3.pdf}
+		
+
+\section{19 March 2018 21:57:57}
+		File: save-iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t\\ 
+		\begin{tabular}{|p{3.5cm}|c|p{2.5cm}|}
+                 \hline
+                 \textbf{Song name} & \textbf{Comments} & \textbf{Duration} \\ \hline 
+		page2&0/6&1 min 42 s\\
+		page4&0/6&2 min 10 s\\
+		page6&0/6&1 min 47 s\\
+		page8&0/6&1 min 52 s\\
+		page1&0/6&3 min 55 s\\
+		page5&0/6&1 min 33 s\\
+		page9&0/6&2 min 40 s\\
+		page7&0/6&1 min 42 s\\
+		page3&0/6&1 min 36 s\\
+		\hline
+                  \textbf{TOTAL} & & \textbf{19 min 2 s}\\
+                  \hline 
+                  \end{tabular}
+                  
+                  \includegraphics[width=\textwidth]{../saves/timelines_movement/save-iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t-page2.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t-page4.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t-page6.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t-page8.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t-page1.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t-page5.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t-page9.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t-page7.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t-page3.pdf}
+		
+
+\section{19 March 2018 22:35:53}
+		File: save-KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo\\ 
+		\begin{tabular}{|p{3.5cm}|c|p{2.5cm}|}
+                 \hline
+                 \textbf{Song name} & \textbf{Comments} & \textbf{Duration} \\ \hline 
+		page2&0/6&1 min 19 s\\
+		page4&0/6&1 min 7 s\\
+		page6&0/6&0 min 35 s\\
+		page8&0/6&0 min 24 s\\
+		page1&6/6&4 min 21 s\\
+		page5&0/6&0 min 40 s\\
+		page9&0/6&0 min 34 s\\
+		page7&0/6&0 min 32 s\\
+		page3&0/6&1 min 46 s\\
+		\hline
+                  \textbf{TOTAL} & & \textbf{11 min 22 s}\\
+                  \hline 
+                  \end{tabular}
+                  
+                  \includegraphics[width=\textwidth]{../saves/timelines_movement/save-KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo-page2.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo-page4.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo-page6.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo-page8.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo-page1.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo-page5.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo-page9.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo-page7.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo-page3.pdf}
+		
+
+\section{19 March 2018 22:52:08}
+		File: save-TOMYD23tpHwml90IqrXit137iWLikwWd\\ 
+		\begin{tabular}{|p{3.5cm}|c|p{2.5cm}|}
+                 \hline
+                 \textbf{Song name} & \textbf{Comments} & \textbf{Duration} \\ \hline 
+		page2&0/6&2 min 5 s\\
+		page4&0/6&3 min 36 s\\
+		page6&0/6&1 min 55 s\\
+		page8&0/6&1 min 30 s\\
+		page1&0/6&7 min 0 s\\
+		page5&0/6&2 min 0 s\\
+		page9&0/6&1 min 57 s\\
+		page7&0/6&2 min 16 s\\
+		page3&0/6&2 min 49 s\\
+		\hline
+                  \textbf{TOTAL} & & \textbf{25 min 13 s}\\
+                  \hline 
+                  \end{tabular}
+                  
+                  \includegraphics[width=\textwidth]{../saves/timelines_movement/save-TOMYD23tpHwml90IqrXit137iWLikwWd-page2.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-TOMYD23tpHwml90IqrXit137iWLikwWd-page4.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-TOMYD23tpHwml90IqrXit137iWLikwWd-page6.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-TOMYD23tpHwml90IqrXit137iWLikwWd-page8.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-TOMYD23tpHwml90IqrXit137iWLikwWd-page1.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-TOMYD23tpHwml90IqrXit137iWLikwWd-page5.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-TOMYD23tpHwml90IqrXit137iWLikwWd-page9.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-TOMYD23tpHwml90IqrXit137iWLikwWd-page7.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-TOMYD23tpHwml90IqrXit137iWLikwWd-page3.pdf}
+		
+
+\section{19 March 2018 22:54:04}
+		File: save-YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU\\ 
+		\begin{tabular}{|p{3.5cm}|c|p{2.5cm}|}
+                 \hline
+                 \textbf{Song name} & \textbf{Comments} & \textbf{Duration} \\ \hline 
+		page2&0/6&1 min 50 s\\
+		page4&0/6&2 min 7 s\\
+		page6&0/6&1 min 15 s\\
+		page8&0/6&1 min 16 s\\
+		page1&0/6&2 min 22 s\\
+		page5&0/6&1 min 19 s\\
+		page9&0/6&1 min 34 s\\
+		page7&0/6&1 min 41 s\\
+		page3&0/6&1 min 46 s\\
+		\hline
+                  \textbf{TOTAL} & & \textbf{15 min 14 s}\\
+                  \hline 
+                  \end{tabular}
+                  
+                  \includegraphics[width=\textwidth]{../saves/timelines_movement/save-YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU-page2.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU-page4.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU-page6.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU-page8.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU-page1.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU-page5.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU-page9.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU-page7.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU-page3.pdf}
+		
+
+\section{19 March 2018 23:13:57}
+		File: save-t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa\\ 
+		\begin{tabular}{|p{3.5cm}|c|p{2.5cm}|}
+                 \hline
+                 \textbf{Song name} & \textbf{Comments} & \textbf{Duration} \\ \hline 
+		page2&0/6&1 min 36 s\\
+		page4&0/6&2 min 10 s\\
+		page6&0/6&1 min 40 s\\
+		page8&0/6&1 min 6 s\\
+		page1&0/6&3 min 15 s\\
+		page5&0/6&1 min 33 s\\
+		page9&0/6&2 min 31 s\\
+		page7&0/6&1 min 52 s\\
+		page3&0/6&2 min 9 s\\
+		\hline
+                  \textbf{TOTAL} & & \textbf{17 min 57 s}\\
+                  \hline 
+                  \end{tabular}
+                  
+                  \includegraphics[width=\textwidth]{../saves/timelines_movement/save-t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa-page2.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa-page4.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa-page6.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa-page8.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa-page1.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa-page5.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa-page9.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa-page7.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa-page3.pdf}
+		
+
+\section{19 March 2018 23:49:13}
+		File: save-Pf1n49JWBtw1HRcXF86S9zuUl8G3Jbnz\\ 
+		\begin{tabular}{|p{3.5cm}|c|p{2.5cm}|}
+                 \hline
+                 \textbf{Song name} & \textbf{Comments} & \textbf{Duration} \\ \hline 
+		page2&0/6&N/A\\
+		page4&0/6&N/A\\
+		page6&0/6&N/A\\
+		page8&0/6&N/A\\
+		page1&0/6&N/A\\
+		page5&0/6&N/A\\
+		page9&0/6&N/A\\
+		page7&0/6&N/A\\
+		page3&0/6&N/A\\
+		\hline
+                  \textbf{TOTAL} & & \textbf{N/A}\\
+                  \hline 
+                  \end{tabular}
+                  
+                  
+
+\section{19 March 2018 23:58:09}
+		File: save-JPRRxYPC2Esy3nKf9XXEsiiqaLy09MZT\\ 
+		\begin{tabular}{|p{3.5cm}|c|p{2.5cm}|}
+                 \hline
+                 \textbf{Song name} & \textbf{Comments} & \textbf{Duration} \\ \hline 
+		page2&0/6&N/A\\
+		page4&0/6&N/A\\
+		page6&0/6&N/A\\
+		page8&0/6&N/A\\
+		page1&0/6&N/A\\
+		page5&0/6&N/A\\
+		page9&0/6&N/A\\
+		page7&0/6&N/A\\
+		page3&0/6&N/A\\
+		\hline
+                  \textbf{TOTAL} & & \textbf{N/A}\\
+                  \hline 
+                  \end{tabular}
+                  
+                  
+
+\section{20 March 2018 0:01:15}
+		File: save-G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ\\ 
+		\begin{tabular}{|p{3.5cm}|c|p{2.5cm}|}
+                 \hline
+                 \textbf{Song name} & \textbf{Comments} & \textbf{Duration} \\ \hline 
+		page2&0/6&2 min 20 s\\
+		page4&0/6&1 min 59 s\\
+		page6&0/6&2 min 20 s\\
+		page8&0/6&2 min 24 s\\
+		page1&6/6&10 min 1 s\\
+		page5&0/6&2 min 23 s\\
+		page9&1/6&3 min 1 s\\
+		page7&0/6&2 min 26 s\\
+		page3&1/6&3 min 11 s\\
+		\hline
+                  \textbf{TOTAL} & & \textbf{30 min 10 s}\\
+                  \hline 
+                  \end{tabular}
+                  
+                  \includegraphics[width=\textwidth]{../saves/timelines_movement/save-G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ-page2.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ-page4.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ-page6.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ-page8.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ-page1.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ-page5.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ-page9.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ-page7.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ-page3.pdf}
+		
+
+\section{20 March 2018 11:17:13}
+		File: save-IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi\\ 
+		\begin{tabular}{|p{3.5cm}|c|p{2.5cm}|}
+                 \hline
+                 \textbf{Song name} & \textbf{Comments} & \textbf{Duration} \\ \hline 
+		page2&0/6&2 min 9 s\\
+		page4&0/6&2 min 4 s\\
+		page6&0/6&1 min 25 s\\
+		page8&0/6&1 min 46 s\\
+		page1&1/6&5 min 5 s\\
+		page5&0/6&3 min 38 s\\
+		page9&0/6&1 min 24 s\\
+		page7&0/6&1 min 38 s\\
+		page3&0/6&2 min 19 s\\
+		\hline
+                  \textbf{TOTAL} & & \textbf{21 min 32 s}\\
+                  \hline 
+                  \end{tabular}
+                  
+                  \includegraphics[width=\textwidth]{../saves/timelines_movement/save-IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi-page2.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi-page4.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi-page6.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi-page8.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi-page1.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi-page5.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi-page9.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi-page7.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi-page3.pdf}
+		
+
+\section{20 March 2018 14:58:53}
+		File: save-fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz\\ 
+		\begin{tabular}{|p{3.5cm}|c|p{2.5cm}|}
+                 \hline
+                 \textbf{Song name} & \textbf{Comments} & \textbf{Duration} \\ \hline 
+		page2&0/6&1 min 29 s\\
+		page4&0/6&2 min 36 s\\
+		page6&0/6&1 min 47 s\\
+		page8&0/6&1 min 22 s\\
+		page1&0/6&2 min 32 s\\
+		page5&0/6&2 min 40 s\\
+		page9&0/6&1 min 47 s\\
+		page7&0/6&2 min 22 s\\
+		page3&0/6&3 min 3 s\\
+		\hline
+                  \textbf{TOTAL} & & \textbf{19 min 42 s}\\
+                  \hline 
+                  \end{tabular}
+                  
+                  \includegraphics[width=\textwidth]{../saves/timelines_movement/save-fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz-page2.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz-page4.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz-page6.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz-page8.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz-page1.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz-page5.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz-page9.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz-page7.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz-page3.pdf}
+		
+
+\section{20 March 2018 15:31:39}
+		File: save-JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml\\ 
+		\begin{tabular}{|p{3.5cm}|c|p{2.5cm}|}
+                 \hline
+                 \textbf{Song name} & \textbf{Comments} & \textbf{Duration} \\ \hline 
+		page2&1/6&1 min 51 s\\
+		page4&0/6&1 min 51 s\\
+		page6&0/6&2 min 20 s\\
+		page8&0/6&1 min 29 s\\
+		page1&0/6&4 min 30 s\\
+		page5&0/6&1 min 19 s\\
+		page9&0/6&1 min 54 s\\
+		page7&0/6&2 min 30 s\\
+		page3&0/6&1 min 52 s\\
+		\hline
+                  \textbf{TOTAL} & & \textbf{19 min 41 s}\\
+                  \hline 
+                  \end{tabular}
+                  
+                  \includegraphics[width=\textwidth]{../saves/timelines_movement/save-JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml-page2.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml-page4.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml-page6.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml-page8.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml-page1.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml-page5.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml-page9.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml-page7.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml-page3.pdf}
+		
+
+\section{20 March 2018 15:34:01}
+		File: save-9UODgpqx7pTDhiiLm7ds39wh59aYBrHK\\ 
+		\begin{tabular}{|p{3.5cm}|c|p{2.5cm}|}
+                 \hline
+                 \textbf{Song name} & \textbf{Comments} & \textbf{Duration} \\ \hline 
+		page2&1/6&1 min 24 s\\
+		page4&1/6&2 min 50 s\\
+		page6&0/6&1 min 38 s\\
+		page8&0/6&2 min 16 s\\
+		page1&2/6&3 min 23 s\\
+		page5&0/6&1 min 22 s\\
+		page9&0/6&1 min 42 s\\
+		page7&0/6&2 min 4 s\\
+		page3&0/6&1 min 38 s\\
+		\hline
+                  \textbf{TOTAL} & & \textbf{18 min 22 s}\\
+                  \hline 
+                  \end{tabular}
+                  
+                  \includegraphics[width=\textwidth]{../saves/timelines_movement/save-9UODgpqx7pTDhiiLm7ds39wh59aYBrHK-page2.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-9UODgpqx7pTDhiiLm7ds39wh59aYBrHK-page4.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-9UODgpqx7pTDhiiLm7ds39wh59aYBrHK-page6.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-9UODgpqx7pTDhiiLm7ds39wh59aYBrHK-page8.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-9UODgpqx7pTDhiiLm7ds39wh59aYBrHK-page1.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-9UODgpqx7pTDhiiLm7ds39wh59aYBrHK-page5.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-9UODgpqx7pTDhiiLm7ds39wh59aYBrHK-page9.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-9UODgpqx7pTDhiiLm7ds39wh59aYBrHK-page7.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-9UODgpqx7pTDhiiLm7ds39wh59aYBrHK-page3.pdf}
+		
+
+\section{20 March 2018 20:31:05}
+		File: save-U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq\\ 
+		\begin{tabular}{|p{3.5cm}|c|p{2.5cm}|}
+                 \hline
+                 \textbf{Song name} & \textbf{Comments} & \textbf{Duration} \\ \hline 
+		page2&0/6&2 min 26 s\\
+		page4&0/6&1 min 7 s\\
+		page6&0/6&0 min 30 s\\
+		page8&0/6&0 min 31 s\\
+		page1&1/6&6 min 17 s\\
+		page5&0/6&0 min 37 s\\
+		page9&0/6&0 min 39 s\\
+		page7&0/6&0 min 46 s\\
+		page3&0/6&1 min 42 s\\
+		\hline
+                  \textbf{TOTAL} & & \textbf{14 min 37 s}\\
+                  \hline 
+                  \end{tabular}
+                  
+                  \includegraphics[width=\textwidth]{../saves/timelines_movement/save-U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq-page2.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq-page4.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq-page6.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq-page8.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq-page1.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq-page5.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq-page9.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq-page7.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq-page3.pdf}
+		
+
+\section{20 March 2018 21:14:20}
+		File: save-bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD\\ 
+		\begin{tabular}{|p{3.5cm}|c|p{2.5cm}|}
+                 \hline
+                 \textbf{Song name} & \textbf{Comments} & \textbf{Duration} \\ \hline 
+		page2&0/6&1 min 30 s\\
+		page4&0/6&1 min 42 s\\
+		page6&0/6&1 min 31 s\\
+		page8&0/6&1 min 16 s\\
+		page1&0/6&1 min 49 s\\
+		page5&0/6&0 min 51 s\\
+		page9&0/6&1 min 10 s\\
+		page7&0/6&1 min 14 s\\
+		page3&0/6&1 min 11 s\\
+		\hline
+                  \textbf{TOTAL} & & \textbf{12 min 18 s}\\
+                  \hline 
+                  \end{tabular}
+                  
+                  \includegraphics[width=\textwidth]{../saves/timelines_movement/save-bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD-page2.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD-page4.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD-page6.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD-page8.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD-page1.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD-page5.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD-page9.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD-page7.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD-page3.pdf}
+		
+
+\section{20 March 2018 21:49:20}
+		File: save-lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT\\ 
+		\begin{tabular}{|p{3.5cm}|c|p{2.5cm}|}
+                 \hline
+                 \textbf{Song name} & \textbf{Comments} & \textbf{Duration} \\ \hline 
+		page2&0/6&2 min 13 s\\
+		page4&0/6&2 min 58 s\\
+		page6&0/6&2 min 32 s\\
+		page8&0/6&1 min 17 s\\
+		page1&0/6&3 min 58 s\\
+		page5&0/6&1 min 28 s\\
+		page9&0/6&1 min 39 s\\
+		page7&0/6&2 min 3 s\\
+		page3&0/6&1 min 56 s\\
+		\hline
+                  \textbf{TOTAL} & & \textbf{20 min 8 s}\\
+                  \hline 
+                  \end{tabular}
+                  
+                  \includegraphics[width=\textwidth]{../saves/timelines_movement/save-lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT-page2.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT-page4.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT-page6.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT-page8.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT-page1.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT-page5.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT-page9.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT-page7.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT-page3.pdf}
+		
+
+\section{21 March 2018 16:57:07}
+		File: save-bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp\\ 
+		\begin{tabular}{|p{3.5cm}|c|p{2.5cm}|}
+                 \hline
+                 \textbf{Song name} & \textbf{Comments} & \textbf{Duration} \\ \hline 
+		page2&0/6&1 min 30 s\\
+		page4&2/6&2 min 52 s\\
+		page6&4/6&2 min 50 s\\
+		page8&3/6&2 min 49 s\\
+		page1&2/6&5 min 47 s\\
+		page5&6/6&2 min 1 s\\
+		page9&6/6&3 min 4 s\\
+		page7&4/6&2 min 21 s\\
+		page3&0/6&2 min 5 s\\
+		\hline
+                  \textbf{TOTAL} & & \textbf{25 min 22 s}\\
+                  \hline 
+                  \end{tabular}
+                  
+                  \includegraphics[width=\textwidth]{../saves/timelines_movement/save-bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp-page2.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp-page4.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp-page6.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp-page8.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp-page1.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp-page5.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp-page9.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp-page7.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp-page3.pdf}
+		
+
+\section{21 March 2018 18:16:13}
+		File: save-OK2yLWD54tr3klqiS631VXjQlroZfmD3\\ 
+		\begin{tabular}{|p{3.5cm}|c|p{2.5cm}|}
+                 \hline
+                 \textbf{Song name} & \textbf{Comments} & \textbf{Duration} \\ \hline 
+		page2&0/6&1 min 35 s\\
+		page4&0/6&1 min 55 s\\
+		page6&0/6&1 min 44 s\\
+		page8&0/6&1 min 14 s\\
+		page1&0/6&2 min 5 s\\
+		page5&0/6&1 min 0 s\\
+		page9&0/6&1 min 38 s\\
+		page7&0/6&1 min 53 s\\
+		page3&0/6&1 min 45 s\\
+		\hline
+                  \textbf{TOTAL} & & \textbf{14 min 53 s}\\
+                  \hline 
+                  \end{tabular}
+                  
+                  \includegraphics[width=\textwidth]{../saves/timelines_movement/save-OK2yLWD54tr3klqiS631VXjQlroZfmD3-page2.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-OK2yLWD54tr3klqiS631VXjQlroZfmD3-page4.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-OK2yLWD54tr3klqiS631VXjQlroZfmD3-page6.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-OK2yLWD54tr3klqiS631VXjQlroZfmD3-page8.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-OK2yLWD54tr3klqiS631VXjQlroZfmD3-page1.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-OK2yLWD54tr3klqiS631VXjQlroZfmD3-page5.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-OK2yLWD54tr3klqiS631VXjQlroZfmD3-page9.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-OK2yLWD54tr3klqiS631VXjQlroZfmD3-page7.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-OK2yLWD54tr3klqiS631VXjQlroZfmD3-page3.pdf}
+		
+
+\section{21 March 2018 20:26:07}
+		File: save-D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH\\ 
+		\begin{tabular}{|p{3.5cm}|c|p{2.5cm}|}
+                 \hline
+                 \textbf{Song name} & \textbf{Comments} & \textbf{Duration} \\ \hline 
+		page2&0/6&2 min 25 s\\
+		page4&1/6&3 min 11 s\\
+		page6&0/6&1 min 53 s\\
+		page8&0/6&1 min 24 s\\
+		page1&2/6&4 min 0 s\\
+		page5&2/6&1 min 57 s\\
+		page9&0/6&1 min 46 s\\
+		page7&0/6&2 min 19 s\\
+		page3&3/6&3 min 23 s\\
+		\hline
+                  \textbf{TOTAL} & & \textbf{22 min 21 s}\\
+                  \hline 
+                  \end{tabular}
+                  
+                  \includegraphics[width=\textwidth]{../saves/timelines_movement/save-D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH-page2.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH-page4.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH-page6.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH-page8.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH-page1.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH-page5.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH-page9.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH-page7.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH-page3.pdf}
+		
+
+\section{21 March 2018 23:15:18}
+		File: save-XZS8UWbIXsUoecq08idrtLOJUbi1MlcK\\ 
+		\begin{tabular}{|p{3.5cm}|c|p{2.5cm}|}
+                 \hline
+                 \textbf{Song name} & \textbf{Comments} & \textbf{Duration} \\ \hline 
+		page2&6/6&190 min 22 s\\
+		page4&0/6&5 min 56 s\\
+		page6&0/6&1 min 41 s\\
+		page8&3/6&3 min 55 s\\
+		page1&6/6&23 min 34 s\\
+		page5&0/6&1 min 46 s\\
+		page9&4/6&2 min 55 s\\
+		page7&4/6&3 min 59 s\\
+		page3&6/6&8 min 29 s\\
+		\hline
+                  \textbf{TOTAL} & & \textbf{242 min 41 s}\\
+                  \hline 
+                  \end{tabular}
+                  
+                  \includegraphics[width=\textwidth]{../saves/timelines_movement/save-XZS8UWbIXsUoecq08idrtLOJUbi1MlcK-page2.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-XZS8UWbIXsUoecq08idrtLOJUbi1MlcK-page4.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-XZS8UWbIXsUoecq08idrtLOJUbi1MlcK-page6.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-XZS8UWbIXsUoecq08idrtLOJUbi1MlcK-page8.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-XZS8UWbIXsUoecq08idrtLOJUbi1MlcK-page1.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-XZS8UWbIXsUoecq08idrtLOJUbi1MlcK-page5.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-XZS8UWbIXsUoecq08idrtLOJUbi1MlcK-page9.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-XZS8UWbIXsUoecq08idrtLOJUbi1MlcK-page7.pdf}
+		\includegraphics[width=\textwidth]{../saves/timelines_movement/save-XZS8UWbIXsUoecq08idrtLOJUbi1MlcK-page3.pdf}
+		
+
+\section{24 March 2018 23:36:53}
+		File: save-63lVaPtoJg6ZXCK8JNfZD16Q51DIdI2j\\ 
+		\begin{tabular}{|p{3.5cm}|c|p{2.5cm}|}
+                 \hline
+                 \textbf{Song name} & \textbf{Comments} & \textbf{Duration} \\ \hline 
+		page1&0/5&N/A\\
+		page3&0/5&N/A\\
+		page2&0/5&N/A\\
+		\hline
+                  \textbf{TOTAL} & & \textbf{N/A}\\
+                  \hline 
+                  \end{tabular}
+                  
+                  
+
+		\begin{thebibliography}{1}
+         \bibitem{WAET} % reference to accompanying publication
+        Nicholas Jillings, Brecht De Man, David Moffat and Joshua D. Reiss, 
+        ``Web Audio Evaluation Tool: A browser-based listening test environment,'' 
+        presented at the 12th Sound and Music Computing Conference, July 2015.
+        \end{thebibliography}
+        \end{document}
\ No newline at end of file
Binary file results/data/saves/characterid.pdf has changed
Binary file results/data/saves/immersion.pdf has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/results/data/saves/page1-default-ratings.csv	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,22 @@
+file_keys,a0000,a0011,a1011,a1101,a1110,a1111
+IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi,0.06,0.13,0.68,0.71,0.65,0.65
+XZS8UWbIXsUoecq08idrtLOJUbi1MlcK,1,1,0.88,0.5,0.63,0.88
+iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t,0,0.04,0.95,1,0.8,0.95
+bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD,0.24,0.24,0.76,0.75,1,0.76
+U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq,0,0,0.83,0.97,0.86,0.9
+9UODgpqx7pTDhiiLm7ds39wh59aYBrHK,0.06,0.2,0.72,0.77,0.55,0.91
+VyX492RQzqQXRL84PByL9pLt8C5p4c50,0,0,0.63,0.87,0.84,1
+bkHwhN78d7k2kIanOievgityZQD7gVOr,0.08,0.25,0.93,0.98,0.78,0.92
+bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp,0,0,1,0.76,1,0.77
+ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1,0.09,0.1,0.92,0.91,0.09,0.92
+fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz,0,0,1,1,1,0.97
+YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU,0,0,0.95,0.42,0.92,0.93
+G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ,0,0.14,0.7,0.54,1,1
+TOMYD23tpHwml90IqrXit137iWLikwWd,0.51,0.72,0.24,0.84,0.25,0.97
+OK2yLWD54tr3klqiS631VXjQlroZfmD3,0.06,0.03,0.52,1,0.68,0.89
+t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa,0.09,0.11,1,0.99,0.65,0.54
+D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH,0.4,0,0.82,1,0.78,1
+KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo,0.14,0.96,0.8,0.22,0.5,0.94
+JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml,0,0,0.71,0.83,0.84,0.93
+uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o,0.23,0.23,0.62,1,0.79,0.84
+lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT,0.11,0.24,0.69,1,0.66,0.83
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/results/data/saves/page1/.ipynb_checkpoints/page1-comments-a0000-checkpoint.csv	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,21 @@
+"save-IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi","0.06","b''"
+"save-XZS8UWbIXsUoecq08idrtLOJUbi1MlcK","1","b'\xce\x9a\xce\xbf\xce\xb9\xce\xbc\xce\xb9\xcf\x83\xce\xbc\xce\xad\xce\xbd\xce\xbf\xcf\x82 100%\n\xcf\x83\xce\xb5 \xcf\x83\xce\xb1\xcf\x81\xce\xac\xce\xb2\xce\xb1\xce\xbb\xce\xbf laptop'"
+"save-iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t","0","b''"
+"save-bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD","0.24","b''"
+"save-U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq","0","b''"
+"save-9UODgpqx7pTDhiiLm7ds39wh59aYBrHK","0.06","b''"
+"save-VyX492RQzqQXRL84PByL9pLt8C5p4c50","0","b''"
+"save-bkHwhN78d7k2kIanOievgityZQD7gVOr","0.08","b'Very difficut to distinguish because it seems they are spoken in same speed, some loudess, same voice.'"
+"save-bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp","0","b""Again, same voice for all and same spatialisation? Doesn't really make sense according to the purpose of the test. Is it always the same character? The middle sentence is not very intellegible for me. it would have helped to have the transcription and it would make sense anyway the motherlanguage, if english or not."""
+"save-ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1","0.09","b''"
+"save-fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz","0","b''"
+"save-YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU","0","b''"
+"save-G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ","0","b'Cannot distinguish at all. It is like there is only one speaker.'"
+"save-TOMYD23tpHwml90IqrXit137iWLikwWd","0.51","b''"
+"save-OK2yLWD54tr3klqiS631VXjQlroZfmD3","0.06","b''"
+"save-t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa","0.09","b''"
+"save-D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH","0.4","b''"
+"save-KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo","0.14","b'too much noise! difficult to listen'"
+"save-JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml","0","b''"
+"save-uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o","0.23","b''"
+"save-lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT","0.11","b''"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/results/data/saves/page1/page1-comments-a0000.csv	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,21 @@
+"save-IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi","0.06","b''"
+"save-XZS8UWbIXsUoecq08idrtLOJUbi1MlcK","1","b'\xce\x9a\xce\xbf\xce\xb9\xce\xbc\xce\xb9\xcf\x83\xce\xbc\xce\xad\xce\xbd\xce\xbf\xcf\x82 100%\n\xcf\x83\xce\xb5 \xcf\x83\xce\xb1\xcf\x81\xce\xac\xce\xb2\xce\xb1\xce\xbb\xce\xbf laptop'"
+"save-iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t","0","b''"
+"save-bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD","0.24","b''"
+"save-U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq","0","b''"
+"save-9UODgpqx7pTDhiiLm7ds39wh59aYBrHK","0.06","b''"
+"save-VyX492RQzqQXRL84PByL9pLt8C5p4c50","0","b''"
+"save-bkHwhN78d7k2kIanOievgityZQD7gVOr","0.08","b'Very difficut to distinguish because it seems they are spoken in same speed, some loudess, same voice.'"
+"save-bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp","0","b""Again, same voice for all and same spatialisation? Doesn't really make sense according to the purpose of the test. Is it always the same character? The middle sentence is not very intellegible for me. it would have helped to have the transcription and it would make sense anyway the motherlanguage, if english or not."""
+"save-ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1","0.09","b''"
+"save-fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz","0","b''"
+"save-YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU","0","b''"
+"save-G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ","0","b'Cannot distinguish at all. It is like there is only one speaker.'"
+"save-TOMYD23tpHwml90IqrXit137iWLikwWd","0.51","b''"
+"save-OK2yLWD54tr3klqiS631VXjQlroZfmD3","0.06","b''"
+"save-t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa","0.09","b''"
+"save-D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH","0.4","b''"
+"save-KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo","0.14","b'too much noise! difficult to listen'"
+"save-JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml","0","b''"
+"save-uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o","0.23","b''"
+"save-lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT","0.11","b''"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/results/data/saves/page1/page1-comments-a0011.csv	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,21 @@
+"save-IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi","0.13","b''"
+"save-XZS8UWbIXsUoecq08idrtLOJUbi1MlcK","1","b'\xce\x9a\xce\xbf\xce\xb9\xce\xbc\xce\xb9\xcf\x83\xce\xbc\xce\xad\xce\xbd\xce\xbf\xcf\x82 100%\n\xcf\x83\xce\xb5 mall'"
+"save-iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t","0.04","b''"
+"save-bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD","0.24","b''"
+"save-U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq","0","b''"
+"save-9UODgpqx7pTDhiiLm7ds39wh59aYBrHK","0.2","b''"
+"save-VyX492RQzqQXRL84PByL9pLt8C5p4c50","0","b''"
+"save-bkHwhN78d7k2kIanOievgityZQD7gVOr","0.25","b'The background noise gives a feeling of telling something true.'"
+"save-bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp","0","b""The voice of the character is the same for all spoken words. Don't know what it means but I can't distinguish only based on words. It looks like someone is reading with VERY flat intonation."""
+"save-ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1","0.1","b''"
+"save-fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz","0","b''"
+"save-YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU","0","b''"
+"save-G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ","0.14","b'Can hardly distinguish.'"
+"save-TOMYD23tpHwml90IqrXit137iWLikwWd","0.72","b''"
+"save-OK2yLWD54tr3klqiS631VXjQlroZfmD3","0.03","b''"
+"save-t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa","0.11","b''"
+"save-D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH","0","b'Difficult to understand the last section. A lot of background noise.'"
+"save-KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo","0.96","b'the sound and text is clear'"
+"save-JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml","0","b''"
+"save-uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o","0.23","b''"
+"save-lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT","0.24","b''"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/results/data/saves/page1/page1-comments-a1011.csv	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,21 @@
+"save-IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi","0.68","b''"
+"save-XZS8UWbIXsUoecq08idrtLOJUbi1MlcK","0.88","b'\xce\xa3\xcf\x84\xce\xb5\xce\xbd\xcf\x84\xcf\x8c\xcf\x81\xce\xb5\xce\xb9\xce\xbf\xcf\x82 1/3\n\xce\x9a\xce\xbf\xce\xb9\xce\xbc\xce\xb9\xcf\x83\xce\xbc\xce\xad\xce\xbd\xce\xbf\xcf\x82 1/3\n\xce\x9f\xcf\x85\xce\xb4\xce\xad\xcf\x84\xce\xb5\xcf\x81\xce\xbf\xcf\x82 1/3\n\xcf\x83\xce\xb5 mall'"
+"save-iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t","0.95","b''"
+"save-bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD","0.76","b''"
+"save-U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq","0.83","b''"
+"save-9UODgpqx7pTDhiiLm7ds39wh59aYBrHK","0.72","b''"
+"save-VyX492RQzqQXRL84PByL9pLt8C5p4c50","0.63","b''"
+"save-bkHwhN78d7k2kIanOievgityZQD7gVOr","0.93","b'Quite similar to track 2.'"
+"save-bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp","1","b''"
+"save-ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1","0.92","b''"
+"save-fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz","1","b''"
+"save-YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU","0.95","b''"
+"save-G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ","0.7","b'Very easy to distinguish the narrator and speakers, but the speakers can only be distinguished by texts.'"
+"save-TOMYD23tpHwml90IqrXit137iWLikwWd","0.24","b''"
+"save-OK2yLWD54tr3klqiS631VXjQlroZfmD3","0.52","b''"
+"save-t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa","1","b''"
+"save-D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH","0.82","b''"
+"save-KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo","0.8","b'this one is okay'"
+"save-JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml","0.71","b''"
+"save-uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o","0.62","b''"
+"save-lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT","0.69","b''"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/results/data/saves/page1/page1-comments-a1101.csv	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,21 @@
+"save-IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi","0.71","b'Spatialisation helps distinguish, but the effect is reduced because the panning is quite extreme, so the voices feel less prominent / recognisable.'"
+"save-XZS8UWbIXsUoecq08idrtLOJUbi1MlcK","0.5","b'\xce\xa3\xcf\x84\xce\xb5\xce\xbd\xcf\x84\xcf\x8c\xcf\x81\xce\xb5\xce\xb9\xce\xbf\xcf\x82 1/3 \xce\x94\n\xce\x9a\xce\xbf\xce\xb9\xce\xbc\xce\xb9\xcf\x83\xce\xbc\xce\xad\xce\xbd\xce\xbf\xcf\x82 1/3 \xce\x91\xce\x94\n\xce\x9f\xcf\x85\xce\xb4\xce\xad\xcf\x84\xce\xb5\xcf\x81\xce\xbf\xcf\x82 1/3 \xce\x91\n\xcf\x83\xce\xb5 mall'"
+"save-iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t","1","b''"
+"save-bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD","0.75","b''"
+"save-U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq","0.97","b'Very Easy'"
+"save-9UODgpqx7pTDhiiLm7ds39wh59aYBrHK","0.77","b''"
+"save-VyX492RQzqQXRL84PByL9pLt8C5p4c50","0.87","b''"
+"save-bkHwhN78d7k2kIanOievgityZQD7gVOr","0.98","b'Spatial effect gives the feeling of people speaking from different position.'"
+"save-bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp","0.76","b''"
+"save-ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1","0.91","b''"
+"save-fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz","1","b''"
+"save-YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU","0.42","b''"
+"save-G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ","0.54","b'The first and third speaker are hard to distinguish.'"
+"save-TOMYD23tpHwml90IqrXit137iWLikwWd","0.84","b''"
+"save-OK2yLWD54tr3klqiS631VXjQlroZfmD3","1","b''"
+"save-t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa","0.99","b''"
+"save-D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH","1","b'Panning helps'"
+"save-KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo","0.22","b""oh, it's difficult to distinguish.\nThe sound doesn't come from two earphones"""
+"save-JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml","0.83","b''"
+"save-uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o","1","b''"
+"save-lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT","1","b''"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/results/data/saves/page1/page1-comments-a1110.csv	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,21 @@
+"save-IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi","0.65","b''"
+"save-XZS8UWbIXsUoecq08idrtLOJUbi1MlcK","0.63","b'\xce\xa3\xcf\x84\xce\xb5\xce\xbd\xcf\x84\xcf\x8c\xcf\x81\xce\xb5\xce\xb9\xce\xbf\xcf\x82 1/3\n\xce\x9a\xce\xbf\xce\xb9\xce\xbc\xce\xb9\xcf\x83\xce\xbc\xce\xad\xce\xbd\xce\xbf\xcf\x82 1/3\n\xce\x9f\xcf\x85\xce\xb4\xce\xad\xcf\x84\xce\xb5\xcf\x81\xce\xbf\xcf\x82 1/3\n\xcf\x83\xce\xb5 \xcf\x83\xce\xb1\xcf\x81\xce\xac\xce\xb2\xce\xb1\xce\xbb\xce\xbf \xce\xbb\xce\xb1\xcf\x80\xcf\x84\xce\xbf\xcf\x80'"
+"save-iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t","0.8","b''"
+"save-bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD","1","b''"
+"save-U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq","0.86","b''"
+"save-9UODgpqx7pTDhiiLm7ds39wh59aYBrHK","0.55","b'The background hiss is distracting'"
+"save-VyX492RQzqQXRL84PByL9pLt8C5p4c50","0.84","b''"
+"save-bkHwhN78d7k2kIanOievgityZQD7gVOr","0.78","b'This background noise is less effective than track 3.'"
+"save-bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp","1","b''"
+"save-ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1","0.09","b''"
+"save-fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz","1","b''"
+"save-YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU","0.92","b''"
+"save-G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ","1","b'Very easy, just like 4.'"
+"save-TOMYD23tpHwml90IqrXit137iWLikwWd","0.25","b''"
+"save-OK2yLWD54tr3klqiS631VXjQlroZfmD3","0.68","b''"
+"save-t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa","0.65","b''"
+"save-D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH","0.78","b''"
+"save-KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo","0.5","b'the background makes listening uncomfortable and difficult'"
+"save-JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml","0.84","b''"
+"save-uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o","0.79","b''"
+"save-lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT","0.66","b''"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/results/data/saves/page1/page1-comments-a1111.csv	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,21 @@
+"save-IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi","0.65","b''"
+"save-XZS8UWbIXsUoecq08idrtLOJUbi1MlcK","0.88","b'\xce\xa3\xcf\x84\xce\xb5\xce\xbd\xcf\x84\xcf\x8c\xcf\x81\xce\xb5\xce\xb9\xce\xbf\xcf\x82 1/3\n\xce\x9a\xce\xbf\xce\xb9\xce\xbc\xce\xb9\xcf\x83\xce\xbc\xce\xad\xce\xbd\xce\xbf\xcf\x82 1/3\n\xce\x9f\xcf\x85\xce\xb4\xce\xad\xcf\x84\xce\xb5\xcf\x81\xce\xbf\xcf\x82 1/3\n\xcf\x83\xce\xb5 mall'"
+"save-iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t","0.95","b''"
+"save-bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD","0.76","b''"
+"save-U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq","0.9","b''"
+"save-9UODgpqx7pTDhiiLm7ds39wh59aYBrHK","0.91","b'Odd reverb - too much'"
+"save-VyX492RQzqQXRL84PByL9pLt8C5p4c50","1","b''"
+"save-bkHwhN78d7k2kIanOievgityZQD7gVOr","0.92","b'Very easy to distinguish even with background noise,for the different voice.'"
+"save-bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp","0.77","b''"
+"save-ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1","0.92","b''"
+"save-fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz","0.97","b''"
+"save-YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU","0.93","b''"
+"save-G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ","1","b'Very easy to distinguish all 3 characters.'"
+"save-TOMYD23tpHwml90IqrXit137iWLikwWd","0.97","b''"
+"save-OK2yLWD54tr3klqiS631VXjQlroZfmD3","0.89","b''"
+"save-t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa","0.54","b''"
+"save-D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH","1","b''"
+"save-KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo","0.94","b'the sound is much clear to me \n'"
+"save-JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml","0.93","b''"
+"save-uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o","0.84","b''"
+"save-lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT","0.83","b''"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/results/data/saves/page2-default-ratings.csv	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,22 @@
+file_keys,b0000,b0011,b1011,b1101,b1110,b1111
+IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi,0.01,0.02,0.7,0.68,0.79,0.75
+XZS8UWbIXsUoecq08idrtLOJUbi1MlcK,0.24,0,0.88,0.63,0.76,0.76
+iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t,0,0,1,1,1,1
+bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD,0,0.24,0.76,0.76,0.76,1
+U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq,0,0,0.96,0.91,0.92,0.92
+9UODgpqx7pTDhiiLm7ds39wh59aYBrHK,0.2,0.29,0.6,0.96,0.7,0.81
+VyX492RQzqQXRL84PByL9pLt8C5p4c50,0,0,1,1,1,0.81
+bkHwhN78d7k2kIanOievgityZQD7gVOr,0.34,0.35,0.97,0.96,0.99,0.97
+bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp,0,0,1,0.75,1,1
+ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1,0.13,0.08,0.86,0.95,0.74,0.76
+fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz,0,0,0.97,0.99,1,0.61
+YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU,0.65,0.63,0.98,0.76,0.99,0.99
+G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ,0,0,0.49,1,0.65,0.82
+TOMYD23tpHwml90IqrXit137iWLikwWd,0.3,0.25,0.89,0.82,1,0.91
+OK2yLWD54tr3klqiS631VXjQlroZfmD3,0,0.03,0.95,1,0.83,0.83
+t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa,0,0.15,0.48,0.76,0.74,0.87
+D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH,0,0,0.98,0.74,0.92,0.91
+KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo,0.45,0.58,0.06,0,0,0.21
+JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml,0.3,0.28,0.95,0.95,0.87,0.92
+uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o,0.09,0.1,0.77,1,0.9,1
+lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT,0.12,0.11,0.77,0.92,1,0.9
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/results/data/saves/page2/page2-comments-b0000.csv	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,21 @@
+"save-IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi","0.01","b''"
+"save-XZS8UWbIXsUoecq08idrtLOJUbi1MlcK","0.24","b'Background: \xce\xa7\xce\xb1\xce\xbb\xce\xb1\xcf\x83\xce\xbc\xce\xad\xce\xbd\xce\xbf mic \xcf\x83\xce\xb5 laptop #2\nAge of Empires 2 villager\nClue Blitzcranias\n'"
+"save-iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t","0","b''"
+"save-bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD","0","b''"
+"save-U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq","0","b''"
+"save-9UODgpqx7pTDhiiLm7ds39wh59aYBrHK","0.2","b''"
+"save-VyX492RQzqQXRL84PByL9pLt8C5p4c50","0","b''"
+"save-bkHwhN78d7k2kIanOievgityZQD7gVOr","0.34","b'Quite similar to track 1'"
+"save-bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp","0","b''"
+"save-ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1","0.13","b''"
+"save-fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz","0","b''"
+"save-YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU","0.65","b''"
+"save-G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ","0","b''"
+"save-TOMYD23tpHwml90IqrXit137iWLikwWd","0.3","b''"
+"save-OK2yLWD54tr3klqiS631VXjQlroZfmD3","0","b''"
+"save-t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa","0","b''"
+"save-D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH","0","b''"
+"save-KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo","0.45","b''"
+"save-JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml","0.3","b''"
+"save-uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o","0.09","b''"
+"save-lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT","0.12","b''"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/results/data/saves/page2/page2-comments-b0011.csv	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,21 @@
+"save-IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi","0.02","b''"
+"save-XZS8UWbIXsUoecq08idrtLOJUbi1MlcK","0","b'Background: \xce\xa7\xce\xb1\xce\xbb\xce\xb1\xcf\x83\xce\xbc\xce\xad\xce\xbd\xce\xbf mic \xcf\x83\xce\xb5 laptop #2\nAge of Empires 2 villager\nAge of Empires 2 villager (Clue Blitzcranias)\nAge of Empires 2 villager (\xcf\x85\xcf\x80\xce\xbf\xcf\x88\xce\xaf\xce\xb1 \xce\xb3\xce\xb9\xce\xb1 \xcf\x84\xcf\x81\xce\xb1\xce\xb2\xce\xad\xce\xbb\xce\xb9 \xcf\x80\xce\xbf\xcf\x85 \xcf\x80\xce\xb1\xcf\x81\xce\xb9\xcf\x83\xcf\x84\xce\xac\xce\xbd\xce\xb5\xce\xb9 \xcf\x84\xce\xbf Illaoi)\n'"
+"save-iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t","0","b''"
+"save-bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD","0.24","b''"
+"save-U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq","0","b''"
+"save-9UODgpqx7pTDhiiLm7ds39wh59aYBrHK","0.29","b''"
+"save-VyX492RQzqQXRL84PByL9pLt8C5p4c50","0","b''"
+"save-bkHwhN78d7k2kIanOievgityZQD7gVOr","0.35","b""Context indicates characters: name, 'he','she'"""
+"save-bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp","0","b''"
+"save-ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1","0.08","b''"
+"save-fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz","0","b''"
+"save-YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU","0.63","b''"
+"save-G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ","0","b''"
+"save-TOMYD23tpHwml90IqrXit137iWLikwWd","0.25","b''"
+"save-OK2yLWD54tr3klqiS631VXjQlroZfmD3","0.03","b''"
+"save-t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa","0.15","b''"
+"save-D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH","0","b''"
+"save-KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo","0.58","b''"
+"save-JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml","0.28","b''"
+"save-uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o","0.1","b''"
+"save-lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT","0.11","b''"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/results/data/saves/page2/page2-comments-b1011.csv	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,21 @@
+"save-IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi","0.7","b''"
+"save-XZS8UWbIXsUoecq08idrtLOJUbi1MlcK","0.88","b'Background: Central park\nBlitzcrank\nAge of Empires 2 villager\nBlitzcrank\nIllaoi'"
+"save-iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t","1","b''"
+"save-bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD","0.76","b''"
+"save-U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq","0.96","b''"
+"save-9UODgpqx7pTDhiiLm7ds39wh59aYBrHK","0.6","b'strange reverb'"
+"save-VyX492RQzqQXRL84PByL9pLt8C5p4c50","1","b''"
+"save-bkHwhN78d7k2kIanOievgityZQD7gVOr","0.97","b'Voice position changes the feeling'"
+"save-bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp","1","b''"
+"save-ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1","0.86","b''"
+"save-fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz","0.97","b''"
+"save-YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU","0.98","b''"
+"save-G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ","0.49","b''"
+"save-TOMYD23tpHwml90IqrXit137iWLikwWd","0.89","b''"
+"save-OK2yLWD54tr3klqiS631VXjQlroZfmD3","0.95","b''"
+"save-t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa","0.48","b''"
+"save-D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH","0.98","b''"
+"save-KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo","0.06","b''"
+"save-JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml","0.95","b''"
+"save-uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o","0.77","b''"
+"save-lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT","0.77","b''"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/results/data/saves/page2/page2-comments-b1101.csv	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,21 @@
+"save-IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi","0.68","b''"
+"save-XZS8UWbIXsUoecq08idrtLOJUbi1MlcK","0.63","b'Background: Central park\nBlitzcrank R\nAge of Empires 2 villager LR\nBlitzcrank R\nIllaoi L'"
+"save-iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t","1","b''"
+"save-bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD","0.76","b''"
+"save-U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq","0.91","b''"
+"save-9UODgpqx7pTDhiiLm7ds39wh59aYBrHK","0.96","b''"
+"save-VyX492RQzqQXRL84PByL9pLt8C5p4c50","1","b''"
+"save-bkHwhN78d7k2kIanOievgityZQD7gVOr","0.96","b'Different position, voice'"
+"save-bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp","0.75","b''"
+"save-ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1","0.95","b''"
+"save-fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz","0.99","b''"
+"save-YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU","0.76","b''"
+"save-G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ","1","b''"
+"save-TOMYD23tpHwml90IqrXit137iWLikwWd","0.82","b''"
+"save-OK2yLWD54tr3klqiS631VXjQlroZfmD3","1","b''"
+"save-t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa","0.76","b''"
+"save-D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH","0.74","b''"
+"save-KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo","0","b''"
+"save-JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml","0.95","b""It's easy to tell, but not comfortable to hear."""
+"save-uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o","1","b''"
+"save-lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT","0.92","b''"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/results/data/saves/page2/page2-comments-b1110.csv	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,21 @@
+"save-IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi","0.79","b''"
+"save-XZS8UWbIXsUoecq08idrtLOJUbi1MlcK","0.76","b'Background: \xce\xa7\xce\xb1\xce\xbb\xce\xb1\xcf\x83\xce\xbc\xce\xad\xce\xbd\xce\xbf mic \xcf\x83\xce\xb5 laptop #2\nBlitzcrank\nAge of Empires 2 villager\nBlitzcrank\nIllaoi'"
+"save-iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t","1","b''"
+"save-bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD","0.76","b''"
+"save-U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq","0.92","b''"
+"save-9UODgpqx7pTDhiiLm7ds39wh59aYBrHK","0.7","b''"
+"save-VyX492RQzqQXRL84PByL9pLt8C5p4c50","1","b''"
+"save-bkHwhN78d7k2kIanOievgityZQD7gVOr","0.99","b'Background noise is more suitable for the context'"
+"save-bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp","1","b''"
+"save-ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1","0.74","b''"
+"save-fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz","1","b''"
+"save-YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU","0.99","b''"
+"save-G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ","0.65","b''"
+"save-TOMYD23tpHwml90IqrXit137iWLikwWd","1","b''"
+"save-OK2yLWD54tr3klqiS631VXjQlroZfmD3","0.83","b''"
+"save-t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa","0.74","b''"
+"save-D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH","0.92","b''"
+"save-KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo","0","b''"
+"save-JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml","0.87","b''"
+"save-uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o","0.9","b''"
+"save-lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT","1","b''"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/results/data/saves/page2/page2-comments-b1111.csv	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,21 @@
+"save-IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi","0.75","b''"
+"save-XZS8UWbIXsUoecq08idrtLOJUbi1MlcK","0.76","b'Background: Central park\nBlitzcrank\nAge of Empires 2 villager\nBlitzcrank\nIllaoi'"
+"save-iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t","1","b''"
+"save-bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD","1","b''"
+"save-U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq","0.92","b''"
+"save-9UODgpqx7pTDhiiLm7ds39wh59aYBrHK","0.81","b''"
+"save-VyX492RQzqQXRL84PByL9pLt8C5p4c50","0.81","b''"
+"save-bkHwhN78d7k2kIanOievgityZQD7gVOr","0.97","b'Different lodness, position, voice'"
+"save-bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp","1","b''"
+"save-ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1","0.76","b''"
+"save-fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz","0.61","b''"
+"save-YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU","0.99","b''"
+"save-G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ","0.82","b''"
+"save-TOMYD23tpHwml90IqrXit137iWLikwWd","0.91","b''"
+"save-OK2yLWD54tr3klqiS631VXjQlroZfmD3","0.83","b''"
+"save-t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa","0.87","b''"
+"save-D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH","0.91","b''"
+"save-KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo","0.21","b''"
+"save-JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml","0.92","b''"
+"save-uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o","1","b''"
+"save-lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT","0.9","b''"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/results/data/saves/page3-default-ratings.csv	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,22 @@
+file_keys,c0000,c0011,c1011,c1101,c1110,c1111
+IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi,0.02,0.01,0.87,0.98,0.87,0.93
+XZS8UWbIXsUoecq08idrtLOJUbi1MlcK,0,0,1,0.76,0.76,0.76
+iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t,0,0,0.97,1,1,1
+bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD,0,0.24,1,1,1,1
+U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq,0,0,0.72,0.85,0.88,0.66
+9UODgpqx7pTDhiiLm7ds39wh59aYBrHK,0.29,0.25,0.62,0.98,0.94,0.85
+VyX492RQzqQXRL84PByL9pLt8C5p4c50,0.02,0,0.93,0.82,0.97,0.83
+bkHwhN78d7k2kIanOievgityZQD7gVOr,0.18,0.23,0.89,0.92,0.95,0.9
+bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp,0.76,0.5,0.76,0.23,0.5,0.24
+ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1,0.07,0.11,0.77,0.93,0.87,0.93
+fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz,0.01,0,1,1,0.97,0.75
+YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU,0.67,0.66,1,1,1,1
+G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ,0.2,0.2,0.6,1,1,0.75
+TOMYD23tpHwml90IqrXit137iWLikwWd,0.51,0.36,0.9,0.82,0.85,0.74
+OK2yLWD54tr3klqiS631VXjQlroZfmD3,0,0.07,0.91,0.97,0.84,0.73
+t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa,0.49,0.25,0.74,0.99,0.75,0.76
+D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH,0.1,0.29,0.51,0.95,0.52,0.87
+KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo,0.12,0.66,0.28,0.05,0.54,0.44
+JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml,0.36,0.35,0.97,0.94,0.97,0.85
+uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o,0.12,0.14,0.77,1,0.95,0.97
+lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT,0.24,0.12,0.89,0.82,0.69,0.9
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/results/data/saves/page3/page3-comments-c0000.csv	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,21 @@
+"save-IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi","0.02","b''"
+"save-XZS8UWbIXsUoecq08idrtLOJUbi1MlcK","0","b'\xce\xa7\xce\xb1\xce\xbb\xce\xb1\xcf\x83\xce\xbc\xce\xad\xce\xbd\xce\xbf mic laptop #3\n\xce\x99\xce\xbd\xce\xb4\xcf\x8c\xcf\x82'"
+"save-iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t","0","b''"
+"save-bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD","0","b''"
+"save-U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq","0","b''"
+"save-9UODgpqx7pTDhiiLm7ds39wh59aYBrHK","0.29","b''"
+"save-VyX492RQzqQXRL84PByL9pLt8C5p4c50","0.02","b''"
+"save-bkHwhN78d7k2kIanOievgityZQD7gVOr","0.18","b''"
+"save-bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp","0.76","b''"
+"save-ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1","0.07","b''"
+"save-fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz","0.01","b''"
+"save-YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU","0.67","b''"
+"save-G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ","0.2","b''"
+"save-TOMYD23tpHwml90IqrXit137iWLikwWd","0.51","b''"
+"save-OK2yLWD54tr3klqiS631VXjQlroZfmD3","0","b''"
+"save-t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa","0.49","b''"
+"save-D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH","0.1","b''"
+"save-KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo","0.12","b''"
+"save-JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml","0.36","b''"
+"save-uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o","0.12","b''"
+"save-lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT","0.24","b''"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/results/data/saves/page3/page3-comments-c0011.csv	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,21 @@
+"save-IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi","0.01","b''"
+"save-XZS8UWbIXsUoecq08idrtLOJUbi1MlcK","0","b'\xce\x92\xce\xb5\xcf\x81\xcf\x83\xce\xb1\xce\xbb\xce\xaf\xce\xb5\xcf\x82\n\xce\x99\xce\xbd\xce\xb4\xcf\x8c\xcf\x82'"
+"save-iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t","0","b''"
+"save-bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD","0.24","b''"
+"save-U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq","0","b''"
+"save-9UODgpqx7pTDhiiLm7ds39wh59aYBrHK","0.25","b''"
+"save-VyX492RQzqQXRL84PByL9pLt8C5p4c50","0","b''"
+"save-bkHwhN78d7k2kIanOievgityZQD7gVOr","0.23","b''"
+"save-bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp","0.5","b''"
+"save-ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1","0.11","b''"
+"save-fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz","0","b''"
+"save-YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU","0.66","b''"
+"save-G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ","0.2","b''"
+"save-TOMYD23tpHwml90IqrXit137iWLikwWd","0.36","b''"
+"save-OK2yLWD54tr3klqiS631VXjQlroZfmD3","0.07","b''"
+"save-t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa","0.25","b''"
+"save-D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH","0.29","b''"
+"save-KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo","0.66","b''"
+"save-JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml","0.35","b''"
+"save-uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o","0.14","b''"
+"save-lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT","0.12","b''"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/results/data/saves/page3/page3-comments-c1011.csv	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,21 @@
+"save-IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi","0.87","b''"
+"save-XZS8UWbIXsUoecq08idrtLOJUbi1MlcK","1","b'\xce\x92\xce\xb5\xcf\x81\xcf\x83\xce\xb1\xce\xbb\xce\xaf\xce\xb5\xcf\x82\n\xce\x99\xce\xbd\xce\xb4\xcf\x8c\xcf\x82\n\xce\x9a\xce\xb9\xce\xbd\xce\xad\xce\xb6\xce\xb1\n\xce\x91\xce\xb3\xce\xb3\xce\xbb\xce\xaf\xcf\x82\n\xce\x99\xce\xbd\xce\xb4\xcf\x8c\xcf\x82\n\xce\x91\xce\xb3\xce\xb3\xce\xbb\xce\xaf\xcf\x82\n'"
+"save-iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t","0.97","b''"
+"save-bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD","1","b''"
+"save-U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq","0.72","b''"
+"save-9UODgpqx7pTDhiiLm7ds39wh59aYBrHK","0.62","b''"
+"save-VyX492RQzqQXRL84PByL9pLt8C5p4c50","0.93","b''"
+"save-bkHwhN78d7k2kIanOievgityZQD7gVOr","0.89","b''"
+"save-bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp","0.76","b''"
+"save-ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1","0.77","b''"
+"save-fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz","1","b''"
+"save-YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU","1","b''"
+"save-G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ","0.6","b''"
+"save-TOMYD23tpHwml90IqrXit137iWLikwWd","0.9","b''"
+"save-OK2yLWD54tr3klqiS631VXjQlroZfmD3","0.91","b''"
+"save-t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa","0.74","b''"
+"save-D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH","0.51","b'The 3 characters can be distinguished based on sound, but the text is not easy to understand due to some distortion.'"
+"save-KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo","0.28","b''"
+"save-JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml","0.97","b''"
+"save-uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o","0.77","b''"
+"save-lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT","0.89","b''"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/results/data/saves/page3/page3-comments-c1101.csv	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,21 @@
+"save-IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi","0.98","b''"
+"save-XZS8UWbIXsUoecq08idrtLOJUbi1MlcK","0.76","b'\xce\x92\xce\xb5\xcf\x81\xcf\x83\xce\xb1\xce\xbb\xce\xaf\xce\xb5\xcf\x82\n\xce\x99\xce\xbd\xce\xb4\xcf\x8c\xcf\x82\n\xce\x9a\xce\xb9\xce\xbd\xce\xad\xce\xb6\xce\xb1\n\xce\x91\xce\xb3\xce\xb3\xce\xbb\xce\xaf\xcf\x82\n\xce\x99\xce\xbd\xce\xb4\xcf\x8c\xcf\x82\n\xce\x91\xce\xb3\xce\xb3\xce\xbb\xce\xaf\xcf\x82'"
+"save-iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t","1","b''"
+"save-bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD","1","b''"
+"save-U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq","0.85","b''"
+"save-9UODgpqx7pTDhiiLm7ds39wh59aYBrHK","0.98","b''"
+"save-VyX492RQzqQXRL84PByL9pLt8C5p4c50","0.82","b''"
+"save-bkHwhN78d7k2kIanOievgityZQD7gVOr","0.92","b''"
+"save-bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp","0.23","b''"
+"save-ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1","0.93","b''"
+"save-fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz","1","b''"
+"save-YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU","1","b''"
+"save-G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ","1","b''"
+"save-TOMYD23tpHwml90IqrXit137iWLikwWd","0.82","b''"
+"save-OK2yLWD54tr3klqiS631VXjQlroZfmD3","0.97","b''"
+"save-t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa","0.99","b''"
+"save-D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH","0.95","b'More clear than the others, position of the characters helps.'"
+"save-KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo","0.05","b''"
+"save-JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml","0.94","b''"
+"save-uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o","1","b''"
+"save-lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT","0.82","b''"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/results/data/saves/page3/page3-comments-c1110.csv	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,21 @@
+"save-IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi","0.87","b''"
+"save-XZS8UWbIXsUoecq08idrtLOJUbi1MlcK","0.76","b'\xce\xa7\xce\xb1\xce\xbb\xce\xb1\xcf\x83\xce\xbc\xce\xad\xce\xbd\xce\xbf mic laptop #3\n\xce\x99\xce\xbd\xce\xb4\xcf\x8c\xcf\x82\n\xce\x9a\xce\xb9\xce\xbd\xce\xad\xce\xb6\xce\xb1\n\xce\x91\xce\xb3\xce\xb3\xce\xbb\xce\xaf\xcf\x82\n\xce\x99\xce\xbd\xce\xb4\xcf\x8c\xcf\x82\n\xce\x91\xce\xb3\xce\xb3\xce\xbb\xce\xaf\xcf\x82'"
+"save-iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t","1","b''"
+"save-bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD","1","b''"
+"save-U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq","0.88","b''"
+"save-9UODgpqx7pTDhiiLm7ds39wh59aYBrHK","0.94","b''"
+"save-VyX492RQzqQXRL84PByL9pLt8C5p4c50","0.97","b''"
+"save-bkHwhN78d7k2kIanOievgityZQD7gVOr","0.95","b''"
+"save-bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp","0.5","b''"
+"save-ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1","0.87","b''"
+"save-fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz","0.97","b''"
+"save-YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU","1","b''"
+"save-G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ","1","b''"
+"save-TOMYD23tpHwml90IqrXit137iWLikwWd","0.85","b''"
+"save-OK2yLWD54tr3klqiS631VXjQlroZfmD3","0.84","b''"
+"save-t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa","0.75","b''"
+"save-D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH","0.52","b''"
+"save-KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo","0.54","b''"
+"save-JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml","0.97","b''"
+"save-uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o","0.95","b''"
+"save-lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT","0.69","b''"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/results/data/saves/page3/page3-comments-c1111.csv	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,21 @@
+"save-IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi","0.93","b''"
+"save-XZS8UWbIXsUoecq08idrtLOJUbi1MlcK","0.76","b'\xce\x92\xce\xb5\xcf\x81\xcf\x83\xce\xb1\xce\xbb\xce\xaf\xce\xb5\xcf\x82\n\xce\x99\xce\xbd\xce\xb4\xcf\x8c\xcf\x82\n\xce\x9a\xce\xb9\xce\xbd\xce\xad\xce\xb6\xce\xb1\n\xce\x91\xce\xb3\xce\xb3\xce\xbb\xce\xaf\xcf\x82\n\xce\x99\xce\xbd\xce\xb4\xcf\x8c\xcf\x82\n\xce\x91\xce\xb3\xce\xb3\xce\xbb\xce\xaf\xcf\x82\n\xcf\x86\xce\xbf\xcf\x81\xce\xb5\xce\xaf\xcf\x82 \xcf\x84\xce\xb7\xcf\x82 \xce\xbd\xcf\x8c\xcf\x83\xce\xbf\xcf\x85 \xcf\x84\xce\xb7\xcf\x82 \xce\xba\xce\xbf\xce\xba\xce\xba\xce\xb9\xcf\x89\xce\xbc\xce\xb1\xcf\x84\xcf\x8e\xce\xb4\xce\xbf\xcf\x85\xcf\x82 Blitzcran\xce\xaf\xcf\x84\xce\xb7\xce\xb4\xce\xb1\xcf\x82'"
+"save-iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t","1","b''"
+"save-bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD","1","b''"
+"save-U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq","0.66","b''"
+"save-9UODgpqx7pTDhiiLm7ds39wh59aYBrHK","0.85","b''"
+"save-VyX492RQzqQXRL84PByL9pLt8C5p4c50","0.83","b''"
+"save-bkHwhN78d7k2kIanOievgityZQD7gVOr","0.9","b''"
+"save-bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp","0.24","b''"
+"save-ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1","0.93","b''"
+"save-fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz","0.75","b''"
+"save-YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU","1","b''"
+"save-G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ","0.75","b'Texts play an important role in distinguishing.'"
+"save-TOMYD23tpHwml90IqrXit137iWLikwWd","0.74","b''"
+"save-OK2yLWD54tr3klqiS631VXjQlroZfmD3","0.73","b''"
+"save-t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa","0.76","b''"
+"save-D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH","0.87","b'Some distortion makes the text difficult to understand.'"
+"save-KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo","0.44","b''"
+"save-JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml","0.85","b''"
+"save-uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o","0.97","b''"
+"save-lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT","0.9","b''"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/results/data/saves/page4-default-ratings.csv	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,22 @@
+file_keys,a00002,a00112,a10112,a11012,a11102,a11112
+IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi,0.54,0.3,0.66,0.8,0.63,0.67
+XZS8UWbIXsUoecq08idrtLOJUbi1MlcK,0.5,0.5,0.24,0.76,0.63,1
+iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t,0.36,0.66,0.7,0.74,0.75,0.84
+bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD,1,1,0.5,0.5,0.76,0.5
+U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq,0.06,0.68,0.38,1,0.12,0.74
+9UODgpqx7pTDhiiLm7ds39wh59aYBrHK,0.05,0.41,0.62,0.69,0.55,0.37
+VyX492RQzqQXRL84PByL9pLt8C5p4c50,0.73,0.63,0.23,0.43,0.52,0.67
+bkHwhN78d7k2kIanOievgityZQD7gVOr,0.18,0.03,0.54,0.77,0.45,0.6
+bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp,0.75,0.25,0.24,0.56,0.72,0.62
+ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1,0.06,0.48,0.35,0.82,0.09,0.87
+fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz,0,0.2,0.74,0.86,0.6,0.96
+YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU,0.1,0.1,0.23,0.22,0.23,0.33
+G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ,0.27,0,0.26,0.27,0.38,0.5
+TOMYD23tpHwml90IqrXit137iWLikwWd,0.16,0.15,0.48,0.57,0.77,0.93
+OK2yLWD54tr3klqiS631VXjQlroZfmD3,0.03,0.5,0.5,0.58,0.05,0.66
+t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa,0,0.25,0.51,0.76,0.24,1
+D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH,0,0,0.55,0.38,0.11,0.96
+KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo,0,0.07,0.76,0.6,0.04,0.5
+JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml,0.11,0.1,0.37,0.54,0.45,0.45
+uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o,0.24,0.52,0.71,0.97,0.7,0.94
+lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT,0,0.11,0.86,0.59,0.47,0.86
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/results/data/saves/page4/page4-comments-a00002.csv	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,21 @@
+"save-IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi","0.54","b''"
+"save-XZS8UWbIXsUoecq08idrtLOJUbi1MlcK","0.5","b''"
+"save-iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t","0.36","b''"
+"save-bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD","1","b''"
+"save-U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq","0.06","b''"
+"save-9UODgpqx7pTDhiiLm7ds39wh59aYBrHK","0.05","b'There is an odd hissing'"
+"save-VyX492RQzqQXRL84PByL9pLt8C5p4c50","0.73","b''"
+"save-bkHwhN78d7k2kIanOievgityZQD7gVOr","0.18","b''"
+"save-bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp","0.75","b''"
+"save-ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1","0.06","b''"
+"save-fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz","0","b''"
+"save-YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU","0.1","b''"
+"save-G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ","0.27","b''"
+"save-TOMYD23tpHwml90IqrXit137iWLikwWd","0.16","b''"
+"save-OK2yLWD54tr3klqiS631VXjQlroZfmD3","0.03","b''"
+"save-t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa","0","b''"
+"save-D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH","0","b''"
+"save-KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo","0","b''"
+"save-JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml","0.11","b''"
+"save-uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o","0.24","b''"
+"save-lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT","0","b''"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/results/data/saves/page4/page4-comments-a00112.csv	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,21 @@
+"save-IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi","0.3","b''"
+"save-XZS8UWbIXsUoecq08idrtLOJUbi1MlcK","0.5","b''"
+"save-iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t","0.66","b''"
+"save-bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD","1","b''"
+"save-U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq","0.68","b''"
+"save-9UODgpqx7pTDhiiLm7ds39wh59aYBrHK","0.41","b''"
+"save-VyX492RQzqQXRL84PByL9pLt8C5p4c50","0.63","b''"
+"save-bkHwhN78d7k2kIanOievgityZQD7gVOr","0.03","b''"
+"save-bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp","0.25","b''"
+"save-ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1","0.48","b''"
+"save-fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz","0.2","b''"
+"save-YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU","0.1","b''"
+"save-G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ","0","b''"
+"save-TOMYD23tpHwml90IqrXit137iWLikwWd","0.15","b''"
+"save-OK2yLWD54tr3klqiS631VXjQlroZfmD3","0.5","b''"
+"save-t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa","0.25","b''"
+"save-D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH","0","b''"
+"save-KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo","0.07","b''"
+"save-JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml","0.1","b''"
+"save-uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o","0.52","b''"
+"save-lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT","0.11","b''"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/results/data/saves/page4/page4-comments-a10112.csv	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,21 @@
+"save-IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi","0.66","b''"
+"save-XZS8UWbIXsUoecq08idrtLOJUbi1MlcK","0.24","b''"
+"save-iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t","0.7","b''"
+"save-bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD","0.5","b''"
+"save-U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq","0.38","b''"
+"save-9UODgpqx7pTDhiiLm7ds39wh59aYBrHK","0.62","b''"
+"save-VyX492RQzqQXRL84PByL9pLt8C5p4c50","0.23","b''"
+"save-bkHwhN78d7k2kIanOievgityZQD7gVOr","0.54","b''"
+"save-bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp","0.24","b''"
+"save-ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1","0.35","b''"
+"save-fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz","0.74","b''"
+"save-YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU","0.23","b''"
+"save-G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ","0.26","b''"
+"save-TOMYD23tpHwml90IqrXit137iWLikwWd","0.48","b''"
+"save-OK2yLWD54tr3klqiS631VXjQlroZfmD3","0.5","b''"
+"save-t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa","0.51","b''"
+"save-D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH","0.55","b''"
+"save-KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo","0.76","b''"
+"save-JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml","0.37","b''"
+"save-uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o","0.71","b''"
+"save-lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT","0.86","b''"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/results/data/saves/page4/page4-comments-a11012.csv	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,21 @@
+"save-IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi","0.8","b''"
+"save-XZS8UWbIXsUoecq08idrtLOJUbi1MlcK","0.76","b''"
+"save-iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t","0.74","b''"
+"save-bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD","0.5","b''"
+"save-U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq","1","b''"
+"save-9UODgpqx7pTDhiiLm7ds39wh59aYBrHK","0.69","b''"
+"save-VyX492RQzqQXRL84PByL9pLt8C5p4c50","0.43","b''"
+"save-bkHwhN78d7k2kIanOievgityZQD7gVOr","0.77","b''"
+"save-bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp","0.56","b''"
+"save-ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1","0.82","b''"
+"save-fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz","0.86","b''"
+"save-YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU","0.22","b''"
+"save-G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ","0.27","b''"
+"save-TOMYD23tpHwml90IqrXit137iWLikwWd","0.57","b''"
+"save-OK2yLWD54tr3klqiS631VXjQlroZfmD3","0.58","b''"
+"save-t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa","0.76","b''"
+"save-D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH","0.38","b'Panning is too exagerated '"
+"save-KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo","0.6","b''"
+"save-JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml","0.54","b''"
+"save-uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o","0.97","b''"
+"save-lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT","0.59","b''"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/results/data/saves/page4/page4-comments-a11102.csv	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,21 @@
+"save-IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi","0.63","b''"
+"save-XZS8UWbIXsUoecq08idrtLOJUbi1MlcK","0.63","b''"
+"save-iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t","0.75","b''"
+"save-bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD","0.76","b''"
+"save-U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq","0.12","b''"
+"save-9UODgpqx7pTDhiiLm7ds39wh59aYBrHK","0.55","b''"
+"save-VyX492RQzqQXRL84PByL9pLt8C5p4c50","0.52","b''"
+"save-bkHwhN78d7k2kIanOievgityZQD7gVOr","0.45","b''"
+"save-bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp","0.72","b'To be honest, I prefer silence to imagine the space, when the supporting audio is not very good.'"
+"save-ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1","0.09","b''"
+"save-fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz","0.6","b''"
+"save-YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU","0.23","b''"
+"save-G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ","0.38","b''"
+"save-TOMYD23tpHwml90IqrXit137iWLikwWd","0.77","b''"
+"save-OK2yLWD54tr3klqiS631VXjQlroZfmD3","0.05","b''"
+"save-t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa","0.24","b''"
+"save-D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH","0.11","b''"
+"save-KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo","0.04","b''"
+"save-JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml","0.45","b''"
+"save-uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o","0.7","b''"
+"save-lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT","0.47","b''"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/results/data/saves/page4/page4-comments-a11112.csv	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,21 @@
+"save-IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi","0.67","b''"
+"save-XZS8UWbIXsUoecq08idrtLOJUbi1MlcK","1","b''"
+"save-iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t","0.84","b''"
+"save-bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD","0.5","b''"
+"save-U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq","0.74","b''"
+"save-9UODgpqx7pTDhiiLm7ds39wh59aYBrHK","0.37","b''"
+"save-VyX492RQzqQXRL84PByL9pLt8C5p4c50","0.67","b''"
+"save-bkHwhN78d7k2kIanOievgityZQD7gVOr","0.6","b''"
+"save-bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp","0.62","b""I would expect some changes in the volume as the transation progresses. The background doesn't follow the action."""
+"save-ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1","0.87","b''"
+"save-fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz","0.96","b''"
+"save-YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU","0.33","b''"
+"save-G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ","0.5","b''"
+"save-TOMYD23tpHwml90IqrXit137iWLikwWd","0.93","b''"
+"save-OK2yLWD54tr3klqiS631VXjQlroZfmD3","0.66","b''"
+"save-t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa","1","b''"
+"save-D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH","0.96","b''"
+"save-KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo","0.5","b''"
+"save-JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml","0.45","b''"
+"save-uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o","0.94","b''"
+"save-lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT","0.86","b''"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/results/data/saves/page5-default-ratings.csv	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,22 @@
+file_keys,b00002,b00112,b10112,b11012,b11102,b11112
+IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi,0.28,0.2,0.6,0.72,0.46,0.63
+XZS8UWbIXsUoecq08idrtLOJUbi1MlcK,0.11,0.5,0.11,0.88,0.88,0.24
+iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t,0.13,0.23,0.68,0.98,0.8,0.94
+bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD,0.76,0.76,0.5,0.24,0.5,0.24
+U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq,0,0,0.5,0.96,0.08,0.68
+9UODgpqx7pTDhiiLm7ds39wh59aYBrHK,0.2,0.06,0.51,0.81,0.15,0.48
+VyX492RQzqQXRL84PByL9pLt8C5p4c50,0.7,0.67,0.6,1,0.93,0.51
+bkHwhN78d7k2kIanOievgityZQD7gVOr,0.34,0.33,0.86,0.73,0.47,0.82
+bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp,0.52,0.5,0.76,0.49,0.23,0.63
+ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1,0.04,0.05,0.82,0.84,0.04,0.81
+fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz,0,0,0.66,0.58,0.46,0.62
+YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU,0.51,0.56,0.91,0.87,0.5,0.96
+G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ,0.27,0,0.05,0.06,0.25,0.27
+TOMYD23tpHwml90IqrXit137iWLikwWd,0.09,0.26,0.83,0.57,0.84,0.99
+OK2yLWD54tr3klqiS631VXjQlroZfmD3,0.04,0.05,0.75,0.87,0.04,0.85
+t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa,0.01,0,0.74,0.51,0.43,0.76
+D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH,0,0,0.44,0.35,0.57,0.99
+KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo,0.04,0,1,1,0.07,0.94
+JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml,0.04,0.04,0.54,0.47,0.59,0.79
+uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o,0.07,0.03,0.78,0.96,0.51,0.99
+lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT,0.13,0.13,1,0.69,0.55,0.84
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/results/data/saves/page5/page5-comments-b00002.csv	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,21 @@
+"save-IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi","0.28","b''"
+"save-XZS8UWbIXsUoecq08idrtLOJUbi1MlcK","0.11","b''"
+"save-iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t","0.13","b''"
+"save-bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD","0.76","b''"
+"save-U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq","0","b''"
+"save-9UODgpqx7pTDhiiLm7ds39wh59aYBrHK","0.2","b''"
+"save-VyX492RQzqQXRL84PByL9pLt8C5p4c50","0.7","b''"
+"save-bkHwhN78d7k2kIanOievgityZQD7gVOr","0.34","b''"
+"save-bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp","0.52","b'Is it a waterfall?'"
+"save-ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1","0.04","b''"
+"save-fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz","0","b''"
+"save-YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU","0.51","b''"
+"save-G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ","0.27","b''"
+"save-TOMYD23tpHwml90IqrXit137iWLikwWd","0.09","b''"
+"save-OK2yLWD54tr3klqiS631VXjQlroZfmD3","0.04","b''"
+"save-t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa","0.01","b''"
+"save-D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH","0","b''"
+"save-KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo","0.04","b''"
+"save-JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml","0.04","b''"
+"save-uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o","0.07","b''"
+"save-lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT","0.13","b''"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/results/data/saves/page5/page5-comments-b00112.csv	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,21 @@
+"save-IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi","0.2","b''"
+"save-XZS8UWbIXsUoecq08idrtLOJUbi1MlcK","0.5","b''"
+"save-iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t","0.23","b''"
+"save-bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD","0.76","b''"
+"save-U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq","0","b''"
+"save-9UODgpqx7pTDhiiLm7ds39wh59aYBrHK","0.06","b''"
+"save-VyX492RQzqQXRL84PByL9pLt8C5p4c50","0.67","b''"
+"save-bkHwhN78d7k2kIanOievgityZQD7gVOr","0.33","b''"
+"save-bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp","0.5","b""I don't get the background"""
+"save-ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1","0.05","b''"
+"save-fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz","0","b''"
+"save-YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU","0.56","b''"
+"save-G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ","0","b''"
+"save-TOMYD23tpHwml90IqrXit137iWLikwWd","0.26","b''"
+"save-OK2yLWD54tr3klqiS631VXjQlroZfmD3","0.05","b''"
+"save-t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa","0","b''"
+"save-D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH","0","b''"
+"save-KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo","0","b''"
+"save-JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml","0.04","b''"
+"save-uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o","0.03","b''"
+"save-lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT","0.13","b''"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/results/data/saves/page5/page5-comments-b10112.csv	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,21 @@
+"save-IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi","0.6","b''"
+"save-XZS8UWbIXsUoecq08idrtLOJUbi1MlcK","0.11","b''"
+"save-iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t","0.68","b''"
+"save-bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD","0.5","b''"
+"save-U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq","0.5","b''"
+"save-9UODgpqx7pTDhiiLm7ds39wh59aYBrHK","0.51","b''"
+"save-VyX492RQzqQXRL84PByL9pLt8C5p4c50","0.6","b''"
+"save-bkHwhN78d7k2kIanOievgityZQD7gVOr","0.86","b''"
+"save-bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp","0.76","b'The Olympus?'"
+"save-ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1","0.82","b''"
+"save-fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz","0.66","b''"
+"save-YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU","0.91","b''"
+"save-G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ","0.05","b''"
+"save-TOMYD23tpHwml90IqrXit137iWLikwWd","0.83","b''"
+"save-OK2yLWD54tr3klqiS631VXjQlroZfmD3","0.75","b''"
+"save-t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa","0.74","b''"
+"save-D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH","0.44","b''"
+"save-KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo","1","b''"
+"save-JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml","0.54","b''"
+"save-uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o","0.78","b''"
+"save-lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT","1","b''"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/results/data/saves/page5/page5-comments-b11012.csv	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,21 @@
+"save-IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi","0.72","b''"
+"save-XZS8UWbIXsUoecq08idrtLOJUbi1MlcK","0.88","b''"
+"save-iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t","0.98","b''"
+"save-bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD","0.24","b''"
+"save-U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq","0.96","b''"
+"save-9UODgpqx7pTDhiiLm7ds39wh59aYBrHK","0.81","b''"
+"save-VyX492RQzqQXRL84PByL9pLt8C5p4c50","1","b''"
+"save-bkHwhN78d7k2kIanOievgityZQD7gVOr","0.73","b''"
+"save-bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp","0.49","b'The background is very noisy.'"
+"save-ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1","0.84","b''"
+"save-fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz","0.58","b''"
+"save-YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU","0.87","b''"
+"save-G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ","0.06","b''"
+"save-TOMYD23tpHwml90IqrXit137iWLikwWd","0.57","b''"
+"save-OK2yLWD54tr3klqiS631VXjQlroZfmD3","0.87","b''"
+"save-t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa","0.51","b''"
+"save-D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH","0.35","b'Panning is too exaggerated making it unrealistic'"
+"save-KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo","1","b''"
+"save-JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml","0.47","b''"
+"save-uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o","0.96","b''"
+"save-lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT","0.69","b''"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/results/data/saves/page5/page5-comments-b11102.csv	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,21 @@
+"save-IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi","0.46","b''"
+"save-XZS8UWbIXsUoecq08idrtLOJUbi1MlcK","0.88","b''"
+"save-iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t","0.8","b''"
+"save-bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD","0.5","b''"
+"save-U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq","0.08","b''"
+"save-9UODgpqx7pTDhiiLm7ds39wh59aYBrHK","0.15","b''"
+"save-VyX492RQzqQXRL84PByL9pLt8C5p4c50","0.93","b''"
+"save-bkHwhN78d7k2kIanOievgityZQD7gVOr","0.47","b''"
+"save-bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp","0.23","b'There is a hiss, not sure which environment it represents.'"
+"save-ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1","0.04","b''"
+"save-fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz","0.46","b''"
+"save-YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU","0.5","b''"
+"save-G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ","0.25","b''"
+"save-TOMYD23tpHwml90IqrXit137iWLikwWd","0.84","b''"
+"save-OK2yLWD54tr3klqiS631VXjQlroZfmD3","0.04","b''"
+"save-t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa","0.43","b''"
+"save-D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH","0.57","b''"
+"save-KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo","0.07","b''"
+"save-JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml","0.59","b''"
+"save-uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o","0.51","b''"
+"save-lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT","0.55","b''"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/results/data/saves/page5/page5-comments-b11112.csv	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,21 @@
+"save-IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi","0.63","b''"
+"save-XZS8UWbIXsUoecq08idrtLOJUbi1MlcK","0.24","b''"
+"save-iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t","0.94","b''"
+"save-bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD","0.24","b''"
+"save-U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq","0.68","b''"
+"save-9UODgpqx7pTDhiiLm7ds39wh59aYBrHK","0.48","b''"
+"save-VyX492RQzqQXRL84PByL9pLt8C5p4c50","0.51","b''"
+"save-bkHwhN78d7k2kIanOievgityZQD7gVOr","0.82","b''"
+"save-bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp","0.63","b'Maybe better balance'"
+"save-ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1","0.81","b''"
+"save-fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz","0.62","b''"
+"save-YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU","0.96","b''"
+"save-G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ","0.27","b''"
+"save-TOMYD23tpHwml90IqrXit137iWLikwWd","0.99","b''"
+"save-OK2yLWD54tr3klqiS631VXjQlroZfmD3","0.85","b''"
+"save-t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa","0.76","b''"
+"save-D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH","0.99","b'The background sounds help create a scene.'"
+"save-KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo","0.94","b''"
+"save-JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml","0.79","b''"
+"save-uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o","0.99","b''"
+"save-lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT","0.84","b''"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/results/data/saves/page6-default-ratings.csv	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,22 @@
+file_keys,c00002,c00112,c10112,c11012,c11102,c11112
+IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi,0.23,0.24,0.5,0.67,0.62,0.61
+XZS8UWbIXsUoecq08idrtLOJUbi1MlcK,0,0.24,0.5,0.88,0.37,0.24
+iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t,0,0.19,0.31,0.82,0.92,0.94
+bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD,0.5,0.5,0.5,0.76,0.76,0.75
+U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq,0.05,0.67,0.65,0.85,0.05,0.39
+9UODgpqx7pTDhiiLm7ds39wh59aYBrHK,0.04,0.21,0.52,0.67,0.46,0.78
+VyX492RQzqQXRL84PByL9pLt8C5p4c50,0.64,0.55,0.5,0.43,0.38,0.43
+bkHwhN78d7k2kIanOievgityZQD7gVOr,0.45,0.3,0.95,0.97,0.66,0.88
+bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp,0.49,0.25,0.76,0.49,0.49,0.63
+ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1,0,0.6,0.67,0.81,0.05,0.44
+fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz,0.22,0.32,0.77,0.66,0.71,0.87
+YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU,0.01,0.75,0.63,0.75,0.38,0.87
+G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ,0.23,0,0.81,0.68,0.62,1
+TOMYD23tpHwml90IqrXit137iWLikwWd,0,0.17,0.88,0.37,0.53,0.42
+OK2yLWD54tr3klqiS631VXjQlroZfmD3,0.05,0.6,0.77,0.73,0.12,0.71
+t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa,0,0.51,0.51,0.76,0.24,0.5
+D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH,0,0.1,0.52,0.63,0.49,0.95
+KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo,0.01,0.67,0.5,0.67,0,0.86
+JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml,0.02,0.16,0.49,0.5,0.3,0.58
+uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o,0.07,0.5,0.77,0.93,0.63,0.94
+lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT,0.5,0.5,0.89,0.75,0.6,0.83
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/results/data/saves/page6/page6-comments-c00002.csv	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,21 @@
+"save-IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi","0.23","b''"
+"save-XZS8UWbIXsUoecq08idrtLOJUbi1MlcK","0","b''"
+"save-iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t","0","b''"
+"save-bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD","0.5","b''"
+"save-U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq","0.05","b''"
+"save-9UODgpqx7pTDhiiLm7ds39wh59aYBrHK","0.04","b''"
+"save-VyX492RQzqQXRL84PByL9pLt8C5p4c50","0.64","b''"
+"save-bkHwhN78d7k2kIanOievgityZQD7gVOr","0.45","b''"
+"save-bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp","0.49","b'This synthetic voice is very annoying. it depresses my imagination.'"
+"save-ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1","0","b''"
+"save-fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz","0.22","b''"
+"save-YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU","0.01","b''"
+"save-G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ","0.23","b''"
+"save-TOMYD23tpHwml90IqrXit137iWLikwWd","0","b''"
+"save-OK2yLWD54tr3klqiS631VXjQlroZfmD3","0.05","b''"
+"save-t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa","0","b''"
+"save-D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH","0","b''"
+"save-KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo","0.01","b''"
+"save-JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml","0.02","b''"
+"save-uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o","0.07","b''"
+"save-lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT","0.5","b''"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/results/data/saves/page6/page6-comments-c00112.csv	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,21 @@
+"save-IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi","0.24","b''"
+"save-XZS8UWbIXsUoecq08idrtLOJUbi1MlcK","0.24","b''"
+"save-iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t","0.19","b''"
+"save-bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD","0.5","b''"
+"save-U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq","0.67","b''"
+"save-9UODgpqx7pTDhiiLm7ds39wh59aYBrHK","0.21","b''"
+"save-VyX492RQzqQXRL84PByL9pLt8C5p4c50","0.55","b''"
+"save-bkHwhN78d7k2kIanOievgityZQD7gVOr","0.3","b''"
+"save-bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp","0.25","b'There is a clash between the supposed naturality of the birds and the synthetic voice'"
+"save-ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1","0.6","b''"
+"save-fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz","0.32","b''"
+"save-YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU","0.75","b''"
+"save-G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ","0","b''"
+"save-TOMYD23tpHwml90IqrXit137iWLikwWd","0.17","b''"
+"save-OK2yLWD54tr3klqiS631VXjQlroZfmD3","0.6","b''"
+"save-t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa","0.51","b''"
+"save-D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH","0.1","b''"
+"save-KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo","0.67","b''"
+"save-JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml","0.16","b''"
+"save-uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o","0.5","b''"
+"save-lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT","0.5","b''"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/results/data/saves/page6/page6-comments-c10112.csv	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,21 @@
+"save-IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi","0.5","b''"
+"save-XZS8UWbIXsUoecq08idrtLOJUbi1MlcK","0.5","b''"
+"save-iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t","0.31","b''"
+"save-bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD","0.5","b''"
+"save-U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq","0.65","b''"
+"save-9UODgpqx7pTDhiiLm7ds39wh59aYBrHK","0.52","b''"
+"save-VyX492RQzqQXRL84PByL9pLt8C5p4c50","0.5","b""the third people's voice sounds a little shiver, which makes me feel unreal."""
+"save-bkHwhN78d7k2kIanOievgityZQD7gVOr","0.95","b''"
+"save-bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp","0.76","b''"
+"save-ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1","0.67","b''"
+"save-fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz","0.77","b''"
+"save-YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU","0.63","b''"
+"save-G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ","0.81","b''"
+"save-TOMYD23tpHwml90IqrXit137iWLikwWd","0.88","b''"
+"save-OK2yLWD54tr3klqiS631VXjQlroZfmD3","0.77","b''"
+"save-t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa","0.51","b''"
+"save-D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH","0.52","b''"
+"save-KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo","0.5","b''"
+"save-JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml","0.49","b''"
+"save-uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o","0.77","b''"
+"save-lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT","0.89","b''"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/results/data/saves/page6/page6-comments-c11012.csv	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,21 @@
+"save-IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi","0.67","b''"
+"save-XZS8UWbIXsUoecq08idrtLOJUbi1MlcK","0.88","b''"
+"save-iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t","0.82","b''"
+"save-bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD","0.76","b''"
+"save-U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq","0.85","b''"
+"save-9UODgpqx7pTDhiiLm7ds39wh59aYBrHK","0.67","b''"
+"save-VyX492RQzqQXRL84PByL9pLt8C5p4c50","0.43","b""the third people's voice sounds a little shiver, which makes me feel unreal."""
+"save-bkHwhN78d7k2kIanOievgityZQD7gVOr","0.97","b''"
+"save-bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp","0.49","b''"
+"save-ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1","0.81","b''"
+"save-fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz","0.66","b''"
+"save-YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU","0.75","b''"
+"save-G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ","0.68","b''"
+"save-TOMYD23tpHwml90IqrXit137iWLikwWd","0.37","b''"
+"save-OK2yLWD54tr3klqiS631VXjQlroZfmD3","0.73","b''"
+"save-t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa","0.76","b''"
+"save-D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH","0.63","b''"
+"save-KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo","0.67","b''"
+"save-JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml","0.5","b''"
+"save-uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o","0.93","b''"
+"save-lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT","0.75","b''"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/results/data/saves/page6/page6-comments-c11102.csv	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,21 @@
+"save-IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi","0.62","b''"
+"save-XZS8UWbIXsUoecq08idrtLOJUbi1MlcK","0.37","b''"
+"save-iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t","0.92","b''"
+"save-bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD","0.76","b''"
+"save-U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq","0.05","b''"
+"save-9UODgpqx7pTDhiiLm7ds39wh59aYBrHK","0.46","b''"
+"save-VyX492RQzqQXRL84PByL9pLt8C5p4c50","0.38","b""the third people's voice sounds a little shiver, which makes me feel unreal."""
+"save-bkHwhN78d7k2kIanOievgityZQD7gVOr","0.66","b''"
+"save-bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp","0.49","b'no idea'"
+"save-ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1","0.05","b''"
+"save-fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz","0.71","b''"
+"save-YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU","0.38","b''"
+"save-G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ","0.62","b''"
+"save-TOMYD23tpHwml90IqrXit137iWLikwWd","0.53","b''"
+"save-OK2yLWD54tr3klqiS631VXjQlroZfmD3","0.12","b''"
+"save-t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa","0.24","b''"
+"save-D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH","0.49","b''"
+"save-KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo","0","b''"
+"save-JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml","0.3","b''"
+"save-uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o","0.63","b''"
+"save-lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT","0.6","b''"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/results/data/saves/page6/page6-comments-c11112.csv	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,21 @@
+"save-IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi","0.61","b''"
+"save-XZS8UWbIXsUoecq08idrtLOJUbi1MlcK","0.24","b''"
+"save-iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t","0.94","b''"
+"save-bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD","0.75","b''"
+"save-U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq","0.39","b''"
+"save-9UODgpqx7pTDhiiLm7ds39wh59aYBrHK","0.78","b''"
+"save-VyX492RQzqQXRL84PByL9pLt8C5p4c50","0.43","b""the third people's voice sounds a little shiver, which makes me feel unreal."""
+"save-bkHwhN78d7k2kIanOievgityZQD7gVOr","0.88","b''"
+"save-bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp","0.63","b'The intonation is also annoying'"
+"save-ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1","0.44","b''"
+"save-fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz","0.87","b''"
+"save-YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU","0.87","b''"
+"save-G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ","1","b''"
+"save-TOMYD23tpHwml90IqrXit137iWLikwWd","0.42","b''"
+"save-OK2yLWD54tr3klqiS631VXjQlroZfmD3","0.71","b''"
+"save-t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa","0.5","b''"
+"save-D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH","0.95","b''"
+"save-KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo","0.86","b''"
+"save-JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml","0.58","b''"
+"save-uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o","0.94","b''"
+"save-lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT","0.83","b''"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/results/data/saves/page7-default-ratings.csv	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,22 @@
+file_keys,a00003,a00113,a10113,a11013,a11103,a11113
+IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi,0.11,0.21,0.77,0.78,0.69,0.76
+XZS8UWbIXsUoecq08idrtLOJUbi1MlcK,0.24,0.76,0,1,0.5,0.11
+iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t,0.13,0.21,0.23,0.71,0.62,0.79
+bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD,0.24,0,0.76,0.76,1,0.5
+U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq,0.35,0.84,0.72,1,0.16,0.81
+9UODgpqx7pTDhiiLm7ds39wh59aYBrHK,0,0.31,0.66,0.98,0.32,0.72
+VyX492RQzqQXRL84PByL9pLt8C5p4c50,0.34,0.16,0.48,0.78,0.52,0.8
+bkHwhN78d7k2kIanOievgityZQD7gVOr,0.12,0.31,0.82,0.66,0.36,0.97
+bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp,1,0.75,0.24,0.49,0,0.22
+ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1,0,0.77,0.96,0.44,0.33,0.69
+fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz,0.32,0.24,0.78,0.09,0.66,1
+YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU,0,0.11,0.69,0.84,0.75,0.75
+G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ,0,0,0.2,0.49,0.33,0.64
+TOMYD23tpHwml90IqrXit137iWLikwWd,0.4,0,0.69,0.15,0.83,1
+OK2yLWD54tr3klqiS631VXjQlroZfmD3,0,0.07,0.66,0.86,0.5,1
+t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa,0,0.49,1,0.51,0.24,0.76
+D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH,0,0.11,0.66,0.35,0.14,0.87
+KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo,0.09,0.56,0.5,0.08,0,0.44
+JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml,0,0.11,0.89,0.39,0.69,1
+uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o,0,0.15,0.67,1,0.49,0.91
+lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT,0,0.24,1,0.12,0.5,0.75
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/results/data/saves/page7/page7-comments-a00003.csv	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,21 @@
+"save-IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi","0.11","b''"
+"save-XZS8UWbIXsUoecq08idrtLOJUbi1MlcK","0.24","b''"
+"save-iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t","0.13","b''"
+"save-bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD","0.24","b''"
+"save-U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq","0.35","b''"
+"save-9UODgpqx7pTDhiiLm7ds39wh59aYBrHK","0","b''"
+"save-VyX492RQzqQXRL84PByL9pLt8C5p4c50","0.34","b''"
+"save-bkHwhN78d7k2kIanOievgityZQD7gVOr","0.12","b''"
+"save-bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp","1","b'I prefer this voice'"
+"save-ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1","0","b''"
+"save-fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz","0.32","b''"
+"save-YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU","0","b''"
+"save-G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ","0","b''"
+"save-TOMYD23tpHwml90IqrXit137iWLikwWd","0.4","b''"
+"save-OK2yLWD54tr3klqiS631VXjQlroZfmD3","0","b''"
+"save-t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa","0","b''"
+"save-D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH","0","b''"
+"save-KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo","0.09","b''"
+"save-JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml","0","b''"
+"save-uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o","0","b''"
+"save-lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT","0","b''"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/results/data/saves/page7/page7-comments-a00113.csv	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,21 @@
+"save-IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi","0.21","b''"
+"save-XZS8UWbIXsUoecq08idrtLOJUbi1MlcK","0.76","b'Mall'"
+"save-iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t","0.21","b''"
+"save-bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD","0","b''"
+"save-U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq","0.84","b''"
+"save-9UODgpqx7pTDhiiLm7ds39wh59aYBrHK","0.31","b''"
+"save-VyX492RQzqQXRL84PByL9pLt8C5p4c50","0.16","b'tone is a bit weird'"
+"save-bkHwhN78d7k2kIanOievgityZQD7gVOr","0.31","b''"
+"save-bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp","0.75","b'I prefer this voice'"
+"save-ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1","0.77","b''"
+"save-fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz","0.24","b''"
+"save-YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU","0.11","b''"
+"save-G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ","0","b''"
+"save-TOMYD23tpHwml90IqrXit137iWLikwWd","0","b''"
+"save-OK2yLWD54tr3klqiS631VXjQlroZfmD3","0.07","b''"
+"save-t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa","0.49","b''"
+"save-D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH","0.11","b''"
+"save-KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo","0.56","b''"
+"save-JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml","0.11","b''"
+"save-uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o","0.15","b''"
+"save-lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT","0.24","b''"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/results/data/saves/page7/page7-comments-a10113.csv	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,21 @@
+"save-IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi","0.77","b''"
+"save-XZS8UWbIXsUoecq08idrtLOJUbi1MlcK","0","b'Mall'"
+"save-iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t","0.23","b''"
+"save-bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD","0.76","b''"
+"save-U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq","0.72","b''"
+"save-9UODgpqx7pTDhiiLm7ds39wh59aYBrHK","0.66","b''"
+"save-VyX492RQzqQXRL84PByL9pLt8C5p4c50","0.48","b''"
+"save-bkHwhN78d7k2kIanOievgityZQD7gVOr","0.82","b''"
+"save-bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp","0.24","b'This resonance on the voice makes it annoying'"
+"save-ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1","0.96","b''"
+"save-fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz","0.78","b''"
+"save-YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU","0.69","b''"
+"save-G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ","0.2","b''"
+"save-TOMYD23tpHwml90IqrXit137iWLikwWd","0.69","b''"
+"save-OK2yLWD54tr3klqiS631VXjQlroZfmD3","0.66","b''"
+"save-t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa","1","b''"
+"save-D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH","0.66","b''"
+"save-KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo","0.5","b''"
+"save-JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml","0.89","b''"
+"save-uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o","0.67","b''"
+"save-lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT","1","b''"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/results/data/saves/page7/page7-comments-a11013.csv	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,21 @@
+"save-IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi","0.78","b''"
+"save-XZS8UWbIXsUoecq08idrtLOJUbi1MlcK","1","b'Mall'"
+"save-iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t","0.71","b''"
+"save-bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD","0.76","b''"
+"save-U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq","1","b''"
+"save-9UODgpqx7pTDhiiLm7ds39wh59aYBrHK","0.98","b''"
+"save-VyX492RQzqQXRL84PByL9pLt8C5p4c50","0.78","b''"
+"save-bkHwhN78d7k2kIanOievgityZQD7gVOr","0.66","b''"
+"save-bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp","0.49","b''"
+"save-ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1","0.44","b''"
+"save-fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz","0.09","b''"
+"save-YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU","0.84","b''"
+"save-G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ","0.49","b''"
+"save-TOMYD23tpHwml90IqrXit137iWLikwWd","0.15","b''"
+"save-OK2yLWD54tr3klqiS631VXjQlroZfmD3","0.86","b''"
+"save-t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa","0.51","b''"
+"save-D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH","0.35","b''"
+"save-KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo","0.08","b''"
+"save-JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml","0.39","b''"
+"save-uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o","1","b''"
+"save-lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT","0.12","b''"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/results/data/saves/page7/page7-comments-a11103.csv	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,21 @@
+"save-IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi","0.69","b''"
+"save-XZS8UWbIXsUoecq08idrtLOJUbi1MlcK","0.5","b''"
+"save-iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t","0.62","b''"
+"save-bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD","1","b''"
+"save-U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq","0.16","b''"
+"save-9UODgpqx7pTDhiiLm7ds39wh59aYBrHK","0.32","b''"
+"save-VyX492RQzqQXRL84PByL9pLt8C5p4c50","0.52","b''"
+"save-bkHwhN78d7k2kIanOievgityZQD7gVOr","0.36","b''"
+"save-bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp","0","b'This resonance on the voice makes it annoying'"
+"save-ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1","0.33","b''"
+"save-fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz","0.66","b''"
+"save-YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU","0.75","b''"
+"save-G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ","0.33","b''"
+"save-TOMYD23tpHwml90IqrXit137iWLikwWd","0.83","b''"
+"save-OK2yLWD54tr3klqiS631VXjQlroZfmD3","0.5","b''"
+"save-t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa","0.24","b''"
+"save-D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH","0.14","b''"
+"save-KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo","0","b''"
+"save-JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml","0.69","b''"
+"save-uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o","0.49","b''"
+"save-lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT","0.5","b''"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/results/data/saves/page7/page7-comments-a11113.csv	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,21 @@
+"save-IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi","0.76","b''"
+"save-XZS8UWbIXsUoecq08idrtLOJUbi1MlcK","0.11","b'Mall'"
+"save-iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t","0.79","b''"
+"save-bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD","0.5","b''"
+"save-U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq","0.81","b''"
+"save-9UODgpqx7pTDhiiLm7ds39wh59aYBrHK","0.72","b''"
+"save-VyX492RQzqQXRL84PByL9pLt8C5p4c50","0.8","b''"
+"save-bkHwhN78d7k2kIanOievgityZQD7gVOr","0.97","b''"
+"save-bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp","0.22","b''"
+"save-ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1","0.69","b''"
+"save-fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz","1","b''"
+"save-YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU","0.75","b''"
+"save-G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ","0.64","b''"
+"save-TOMYD23tpHwml90IqrXit137iWLikwWd","1","b''"
+"save-OK2yLWD54tr3klqiS631VXjQlroZfmD3","1","b''"
+"save-t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa","0.76","b''"
+"save-D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH","0.87","b''"
+"save-KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo","0.44","b''"
+"save-JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml","1","b''"
+"save-uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o","0.91","b''"
+"save-lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT","0.75","b''"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/results/data/saves/page8-default-ratings.csv	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,22 @@
+file_keys,b00003,b00113,b10113,b11013,b11103,b11113
+IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi,0.11,0.21,0.66,0.95,0.56,0.85
+XZS8UWbIXsUoecq08idrtLOJUbi1MlcK,0.5,0.5,0.11,1,0.75,0.11
+iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t,0.04,0.22,0.82,0.86,0.89,0.49
+bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD,0,0.5,0.5,1,0.76,0.75
+U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq,0.14,0.15,0.7,0.97,0.44,0.83
+9UODgpqx7pTDhiiLm7ds39wh59aYBrHK,0,0,0.91,1,0.39,0.84
+VyX492RQzqQXRL84PByL9pLt8C5p4c50,0.48,0.21,0.98,0.59,0.86,0.92
+bkHwhN78d7k2kIanOievgityZQD7gVOr,0.21,0.27,0.6,0.84,0.46,0.94
+bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp,1,1,0.09,0.49,0.5,0
+ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1,0,0,1,0.79,0.17,1
+fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz,0.22,0.01,0.99,0.1,0.35,0.63
+YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU,0,0,0.71,0.95,0.98,0.87
+G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ,0,0.7,0.33,0.58,0.57,0.36
+TOMYD23tpHwml90IqrXit137iWLikwWd,0.29,0.43,0.73,0.11,0.86,0.56
+OK2yLWD54tr3klqiS631VXjQlroZfmD3,0,0,0.88,0.51,0.38,1
+t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa,0.23,0,0.5,0.74,0.25,1
+D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH,0,0,0.55,0.4,0.69,0.9
+KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo,0,0.13,0.96,0.76,0,1
+JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml,0,0,0.9,0.41,0.68,1
+uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o,0.06,0,0.76,0.9,0.64,1
+lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT,0,0,1,0.24,0.76,0.51
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/results/data/saves/page8/page8-comments-b00003.csv	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,21 @@
+"save-IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi","0.11","b''"
+"save-XZS8UWbIXsUoecq08idrtLOJUbi1MlcK","0.5","b''"
+"save-iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t","0.04","b''"
+"save-bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD","0","b''"
+"save-U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq","0.14","b''"
+"save-9UODgpqx7pTDhiiLm7ds39wh59aYBrHK","0","b''"
+"save-VyX492RQzqQXRL84PByL9pLt8C5p4c50","0.48","b''"
+"save-bkHwhN78d7k2kIanOievgityZQD7gVOr","0.21","b''"
+"save-bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp","1","b''"
+"save-ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1","0","b''"
+"save-fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz","0.22","b''"
+"save-YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU","0","b''"
+"save-G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ","0","b''"
+"save-TOMYD23tpHwml90IqrXit137iWLikwWd","0.29","b''"
+"save-OK2yLWD54tr3klqiS631VXjQlroZfmD3","0","b''"
+"save-t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa","0.23","b''"
+"save-D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH","0","b''"
+"save-KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo","0","b''"
+"save-JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml","0","b''"
+"save-uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o","0.06","b''"
+"save-lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT","0","b''"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/results/data/saves/page8/page8-comments-b00113.csv	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,21 @@
+"save-IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi","0.21","b''"
+"save-XZS8UWbIXsUoecq08idrtLOJUbi1MlcK","0.5","b''"
+"save-iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t","0.22","b''"
+"save-bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD","0.5","b''"
+"save-U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq","0.15","b''"
+"save-9UODgpqx7pTDhiiLm7ds39wh59aYBrHK","0","b''"
+"save-VyX492RQzqQXRL84PByL9pLt8C5p4c50","0.21","b''"
+"save-bkHwhN78d7k2kIanOievgityZQD7gVOr","0.27","b''"
+"save-bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp","1","b''"
+"save-ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1","0","b''"
+"save-fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz","0.01","b''"
+"save-YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU","0","b''"
+"save-G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ","0.7","b''"
+"save-TOMYD23tpHwml90IqrXit137iWLikwWd","0.43","b''"
+"save-OK2yLWD54tr3klqiS631VXjQlroZfmD3","0","b''"
+"save-t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa","0","b''"
+"save-D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH","0","b''"
+"save-KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo","0.13","b''"
+"save-JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml","0","b''"
+"save-uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o","0","b''"
+"save-lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT","0","b''"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/results/data/saves/page8/page8-comments-b10113.csv	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,21 @@
+"save-IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi","0.66","b''"
+"save-XZS8UWbIXsUoecq08idrtLOJUbi1MlcK","0.11","b'Hyde Park'"
+"save-iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t","0.82","b''"
+"save-bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD","0.5","b''"
+"save-U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq","0.7","b''"
+"save-9UODgpqx7pTDhiiLm7ds39wh59aYBrHK","0.91","b''"
+"save-VyX492RQzqQXRL84PByL9pLt8C5p4c50","0.98","b''"
+"save-bkHwhN78d7k2kIanOievgityZQD7gVOr","0.6","b''"
+"save-bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp","0.09","b'Noise (water?) and annoying voice'"
+"save-ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1","1","b''"
+"save-fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz","0.99","b''"
+"save-YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU","0.71","b''"
+"save-G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ","0.33","b''"
+"save-TOMYD23tpHwml90IqrXit137iWLikwWd","0.73","b''"
+"save-OK2yLWD54tr3klqiS631VXjQlroZfmD3","0.88","b''"
+"save-t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa","0.5","b''"
+"save-D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH","0.55","b''"
+"save-KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo","0.96","b''"
+"save-JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml","0.9","b''"
+"save-uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o","0.76","b''"
+"save-lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT","1","b''"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/results/data/saves/page8/page8-comments-b11013.csv	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,21 @@
+"save-IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi","0.95","b''"
+"save-XZS8UWbIXsUoecq08idrtLOJUbi1MlcK","1","b'Hyde Park'"
+"save-iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t","0.86","b''"
+"save-bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD","1","b''"
+"save-U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq","0.97","b''"
+"save-9UODgpqx7pTDhiiLm7ds39wh59aYBrHK","1","b''"
+"save-VyX492RQzqQXRL84PByL9pLt8C5p4c50","0.59","b''"
+"save-bkHwhN78d7k2kIanOievgityZQD7gVOr","0.84","b''"
+"save-bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp","0.49","b'Resonant voice more bearable with less gain and off stage'"
+"save-ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1","0.79","b''"
+"save-fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz","0.1","b''"
+"save-YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU","0.95","b''"
+"save-G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ","0.58","b''"
+"save-TOMYD23tpHwml90IqrXit137iWLikwWd","0.11","b''"
+"save-OK2yLWD54tr3klqiS631VXjQlroZfmD3","0.51","b''"
+"save-t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa","0.74","b''"
+"save-D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH","0.4","b''"
+"save-KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo","0.76","b''"
+"save-JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml","0.41","b''"
+"save-uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o","0.9","b''"
+"save-lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT","0.24","b''"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/results/data/saves/page8/page8-comments-b11103.csv	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,21 @@
+"save-IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi","0.56","b''"
+"save-XZS8UWbIXsUoecq08idrtLOJUbi1MlcK","0.75","b''"
+"save-iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t","0.89","b''"
+"save-bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD","0.76","b''"
+"save-U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq","0.44","b''"
+"save-9UODgpqx7pTDhiiLm7ds39wh59aYBrHK","0.39","b''"
+"save-VyX492RQzqQXRL84PByL9pLt8C5p4c50","0.86","b''"
+"save-bkHwhN78d7k2kIanOievgityZQD7gVOr","0.46","b''"
+"save-bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp","0.5","b''"
+"save-ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1","0.17","b''"
+"save-fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz","0.35","b''"
+"save-YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU","0.98","b''"
+"save-G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ","0.57","b''"
+"save-TOMYD23tpHwml90IqrXit137iWLikwWd","0.86","b''"
+"save-OK2yLWD54tr3klqiS631VXjQlroZfmD3","0.38","b''"
+"save-t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa","0.25","b''"
+"save-D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH","0.69","b''"
+"save-KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo","0","b''"
+"save-JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml","0.68","b''"
+"save-uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o","0.64","b''"
+"save-lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT","0.76","b''"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/results/data/saves/page8/page8-comments-b11113.csv	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,21 @@
+"save-IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi","0.85","b''"
+"save-XZS8UWbIXsUoecq08idrtLOJUbi1MlcK","0.11","b'Hyde Park'"
+"save-iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t","0.49","b''"
+"save-bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD","0.75","b''"
+"save-U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq","0.83","b''"
+"save-9UODgpqx7pTDhiiLm7ds39wh59aYBrHK","0.84","b''"
+"save-VyX492RQzqQXRL84PByL9pLt8C5p4c50","0.92","b''"
+"save-bkHwhN78d7k2kIanOievgityZQD7gVOr","0.94","b''"
+"save-bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp","0","b'This resonant voice again annoying'"
+"save-ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1","1","b''"
+"save-fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz","0.63","b''"
+"save-YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU","0.87","b''"
+"save-G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ","0.36","b''"
+"save-TOMYD23tpHwml90IqrXit137iWLikwWd","0.56","b''"
+"save-OK2yLWD54tr3klqiS631VXjQlroZfmD3","1","b''"
+"save-t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa","1","b''"
+"save-D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH","0.9","b''"
+"save-KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo","1","b''"
+"save-JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml","1","b''"
+"save-uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o","1","b''"
+"save-lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT","0.51","b''"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/results/data/saves/page9-default-ratings.csv	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,22 @@
+file_keys,c00003,c00113,c10113,c11013,c11103,c11113
+IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi,0.13,0.14,0.66,0.83,0.42,0.76
+XZS8UWbIXsUoecq08idrtLOJUbi1MlcK,0.5,0,0.37,1,0.76,0.37
+iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t,0.1,0.24,0.78,0.79,0.87,0.65
+bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD,0,0.5,0.76,1,1,1
+U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq,0.11,0.35,0.66,0.61,0.08,0.31
+9UODgpqx7pTDhiiLm7ds39wh59aYBrHK,0,0.23,0.95,0.92,0.34,0.85
+VyX492RQzqQXRL84PByL9pLt8C5p4c50,0.85,0.18,0.41,0.79,0.77,0.61
+bkHwhN78d7k2kIanOievgityZQD7gVOr,0.18,0.31,0.79,0.7,0.54,0.9
+bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp,0.77,0,0.23,1,0.23,0
+ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1,0.14,0.63,0.83,0.89,0.24,0.73
+fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz,0.16,0.3,0.82,0.13,0.53,0.59
+YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU,0.07,0.06,0.91,0.97,0.82,0.99
+G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ,0.24,0.24,0.58,0.71,0.75,0.81
+TOMYD23tpHwml90IqrXit137iWLikwWd,0.09,0.33,0.84,0,0.98,0.82
+OK2yLWD54tr3klqiS631VXjQlroZfmD3,0,0.17,0.76,0.56,0.68,1
+t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa,0,0.25,0.49,0.52,0,1
+D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH,0,0.03,0.59,0.52,0.27,0.96
+KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo,0,0.68,0.69,0.76,0,0.82
+JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml,0,0.14,0.87,0.37,0.64,1
+uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o,0,0.11,0.58,1,0.5,0.77
+lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT,0,0.24,1,0.37,0.5,0.75
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/results/data/saves/page9/page9-comments-c00003.csv	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,21 @@
+"save-IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi","0.13","b''"
+"save-XZS8UWbIXsUoecq08idrtLOJUbi1MlcK","0.5","b''"
+"save-iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t","0.1","b''"
+"save-bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD","0","b''"
+"save-U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq","0.11","b''"
+"save-9UODgpqx7pTDhiiLm7ds39wh59aYBrHK","0","b''"
+"save-VyX492RQzqQXRL84PByL9pLt8C5p4c50","0.85","b''"
+"save-bkHwhN78d7k2kIanOievgityZQD7gVOr","0.18","b''"
+"save-bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp","0.77","b'Annoying main voice in all tracks but less noise'"
+"save-ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1","0.14","b''"
+"save-fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz","0.16","b''"
+"save-YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU","0.07","b''"
+"save-G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ","0.24","b''"
+"save-TOMYD23tpHwml90IqrXit137iWLikwWd","0.09","b''"
+"save-OK2yLWD54tr3klqiS631VXjQlroZfmD3","0","b''"
+"save-t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa","0","b''"
+"save-D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH","0","b''"
+"save-KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo","0","b''"
+"save-JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml","0","b''"
+"save-uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o","0","b''"
+"save-lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT","0","b''"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/results/data/saves/page9/page9-comments-c00113.csv	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,21 @@
+"save-IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi","0.14","b''"
+"save-XZS8UWbIXsUoecq08idrtLOJUbi1MlcK","0","b'Hyde Park'"
+"save-iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t","0.24","b''"
+"save-bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD","0.5","b''"
+"save-U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq","0.35","b''"
+"save-9UODgpqx7pTDhiiLm7ds39wh59aYBrHK","0.23","b''"
+"save-VyX492RQzqQXRL84PByL9pLt8C5p4c50","0.18","b''"
+"save-bkHwhN78d7k2kIanOievgityZQD7gVOr","0.31","b''"
+"save-bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp","0","b'Annoying main voice '"
+"save-ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1","0.63","b''"
+"save-fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz","0.3","b''"
+"save-YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU","0.06","b''"
+"save-G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ","0.24","b'The sound is a little unpleasant.'"
+"save-TOMYD23tpHwml90IqrXit137iWLikwWd","0.33","b''"
+"save-OK2yLWD54tr3klqiS631VXjQlroZfmD3","0.17","b''"
+"save-t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa","0.25","b''"
+"save-D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH","0.03","b''"
+"save-KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo","0.68","b''"
+"save-JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml","0.14","b''"
+"save-uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o","0.11","b''"
+"save-lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT","0.24","b''"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/results/data/saves/page9/page9-comments-c10113.csv	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,21 @@
+"save-IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi","0.66","b''"
+"save-XZS8UWbIXsUoecq08idrtLOJUbi1MlcK","0.37","b'Hyde Park'"
+"save-iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t","0.78","b''"
+"save-bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD","0.76","b''"
+"save-U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq","0.66","b''"
+"save-9UODgpqx7pTDhiiLm7ds39wh59aYBrHK","0.95","b''"
+"save-VyX492RQzqQXRL84PByL9pLt8C5p4c50","0.41","b''"
+"save-bkHwhN78d7k2kIanOievgityZQD7gVOr","0.79","b''"
+"save-bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp","0.23","b'Annoying voices and noise'"
+"save-ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1","0.83","b''"
+"save-fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz","0.82","b''"
+"save-YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU","0.91","b''"
+"save-G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ","0.58","b''"
+"save-TOMYD23tpHwml90IqrXit137iWLikwWd","0.84","b''"
+"save-OK2yLWD54tr3klqiS631VXjQlroZfmD3","0.76","b''"
+"save-t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa","0.49","b''"
+"save-D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH","0.59","b''"
+"save-KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo","0.69","b''"
+"save-JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml","0.87","b''"
+"save-uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o","0.58","b''"
+"save-lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT","1","b''"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/results/data/saves/page9/page9-comments-c11013.csv	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,21 @@
+"save-IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi","0.83","b''"
+"save-XZS8UWbIXsUoecq08idrtLOJUbi1MlcK","1","b'Hyde Park'"
+"save-iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t","0.79","b''"
+"save-bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD","1","b''"
+"save-U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq","0.61","b''"
+"save-9UODgpqx7pTDhiiLm7ds39wh59aYBrHK","0.92","b''"
+"save-VyX492RQzqQXRL84PByL9pLt8C5p4c50","0.79","b''"
+"save-bkHwhN78d7k2kIanOievgityZQD7gVOr","0.7","b''"
+"save-bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp","1","b'Annoying main voice. birds better to hear than second voice'"
+"save-ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1","0.89","b''"
+"save-fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz","0.13","b''"
+"save-YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU","0.97","b''"
+"save-G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ","0.71","b''"
+"save-TOMYD23tpHwml90IqrXit137iWLikwWd","0","b''"
+"save-OK2yLWD54tr3klqiS631VXjQlroZfmD3","0.56","b''"
+"save-t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa","0.52","b''"
+"save-D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH","0.52","b''"
+"save-KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo","0.76","b''"
+"save-JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml","0.37","b''"
+"save-uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o","1","b''"
+"save-lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT","0.37","b''"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/results/data/saves/page9/page9-comments-c11103.csv	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,21 @@
+"save-IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi","0.42","b''"
+"save-XZS8UWbIXsUoecq08idrtLOJUbi1MlcK","0.76","b''"
+"save-iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t","0.87","b''"
+"save-bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD","1","b''"
+"save-U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq","0.08","b''"
+"save-9UODgpqx7pTDhiiLm7ds39wh59aYBrHK","0.34","b''"
+"save-VyX492RQzqQXRL84PByL9pLt8C5p4c50","0.77","b''"
+"save-bkHwhN78d7k2kIanOievgityZQD7gVOr","0.54","b''"
+"save-bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp","0.23","b'less noise'"
+"save-ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1","0.24","b''"
+"save-fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz","0.53","b''"
+"save-YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU","0.82","b''"
+"save-G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ","0.75","b''"
+"save-TOMYD23tpHwml90IqrXit137iWLikwWd","0.98","b''"
+"save-OK2yLWD54tr3klqiS631VXjQlroZfmD3","0.68","b''"
+"save-t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa","0","b''"
+"save-D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH","0.27","b''"
+"save-KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo","0","b''"
+"save-JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml","0.64","b''"
+"save-uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o","0.5","b''"
+"save-lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT","0.5","b''"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/results/data/saves/page9/page9-comments-c11113.csv	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,21 @@
+"save-IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi","0.76","b''"
+"save-XZS8UWbIXsUoecq08idrtLOJUbi1MlcK","0.37","b'Hyde Park'"
+"save-iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t","0.65","b''"
+"save-bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD","1","b''"
+"save-U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq","0.31","b''"
+"save-9UODgpqx7pTDhiiLm7ds39wh59aYBrHK","0.85","b''"
+"save-VyX492RQzqQXRL84PByL9pLt8C5p4c50","0.61","b''"
+"save-bkHwhN78d7k2kIanOievgityZQD7gVOr","0.9","b''"
+"save-bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp","0","b'Annoying  voices , only the cat is better'"
+"save-ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1","0.73","b''"
+"save-fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz","0.59","b''"
+"save-YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU","0.99","b''"
+"save-G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ","0.81","b''"
+"save-TOMYD23tpHwml90IqrXit137iWLikwWd","0.82","b''"
+"save-OK2yLWD54tr3klqiS631VXjQlroZfmD3","1","b''"
+"save-t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa","1","b''"
+"save-D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH","0.96","b''"
+"save-KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo","0.82","b''"
+"save-JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml","1","b''"
+"save-uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o","0.77","b''"
+"save-lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT","0.75","b''"
Binary file results/data/saves/preference.pdf has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/results/data/saves/ratings/.ipynb_checkpoints/page1-default-ratings-checkpoint.csv	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,22 @@
+file_keys,a0000,a0011,a1011,a1101,a1110,a1111
+YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU,0,0,0.95,0.42,0.92,0.93
+D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH,0.4,0,0.82,1,0.78,1
+OK2yLWD54tr3klqiS631VXjQlroZfmD3,0.06,0.03,0.52,1,0.68,0.89
+bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD,0.24,0.24,0.76,0.75,1,0.76
+fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz,0,0,1,1,1,0.97
+TOMYD23tpHwml90IqrXit137iWLikwWd,0.51,0.72,0.24,0.84,0.25,0.97
+ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1,0.09,0.1,0.92,0.91,0.09,0.92
+IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi,0.06,0.13,0.68,0.71,0.65,0.65
+U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq,0,0,0.83,0.97,0.86,0.9
+KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo,0.14,0.96,0.8,0.22,0.5,0.94
+uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o,0.23,0.23,0.62,1,0.79,0.84
+lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT,0.11,0.24,0.69,1,0.66,0.83
+9UODgpqx7pTDhiiLm7ds39wh59aYBrHK,0.06,0.2,0.72,0.77,0.55,0.91
+bkHwhN78d7k2kIanOievgityZQD7gVOr,0.08,0.25,0.93,0.98,0.78,0.92
+iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t,0,0.04,0.95,1,0.8,0.95
+t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa,0.09,0.11,1,0.99,0.65,0.54
+G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ,0,0.14,0.7,0.54,1,1
+JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml,0,0,0.71,0.83,0.84,0.93
+bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp,0,0,1,0.76,1,0.77
+XZS8UWbIXsUoecq08idrtLOJUbi1MlcK,1,1,0.88,0.5,0.63,0.88
+VyX492RQzqQXRL84PByL9pLt8C5p4c50,0,0,0.63,0.87,0.84,1
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/results/data/saves/ratings/.ipynb_checkpoints/page2-default-ratings-checkpoint.csv	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,22 @@
+file_keys,b0000,b0011,b1011,b1101,b1110,b1111
+YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU,0.65,0.63,0.98,0.76,0.99,0.99
+D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH,0,0,0.98,0.74,0.92,0.91
+OK2yLWD54tr3klqiS631VXjQlroZfmD3,0,0.03,0.95,1,0.83,0.83
+bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD,0,0.24,0.76,0.76,0.76,1
+fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz,0,0,0.97,0.99,1,0.61
+TOMYD23tpHwml90IqrXit137iWLikwWd,0.3,0.25,0.89,0.82,1,0.91
+ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1,0.13,0.08,0.86,0.95,0.74,0.76
+IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi,0.01,0.02,0.7,0.68,0.79,0.75
+U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq,0,0,0.96,0.91,0.92,0.92
+KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo,0.45,0.58,0.06,0,0,0.21
+uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o,0.09,0.1,0.77,1,0.9,1
+lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT,0.12,0.11,0.77,0.92,1,0.9
+9UODgpqx7pTDhiiLm7ds39wh59aYBrHK,0.2,0.29,0.6,0.96,0.7,0.81
+bkHwhN78d7k2kIanOievgityZQD7gVOr,0.34,0.35,0.97,0.96,0.99,0.97
+iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t,0,0,1,1,1,1
+t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa,0,0.15,0.48,0.76,0.74,0.87
+G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ,0,0,0.49,1,0.65,0.82
+JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml,0.3,0.28,0.95,0.95,0.87,0.92
+bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp,0,0,1,0.75,1,1
+XZS8UWbIXsUoecq08idrtLOJUbi1MlcK,0.24,0,0.88,0.63,0.76,0.76
+VyX492RQzqQXRL84PByL9pLt8C5p4c50,0,0,1,1,1,0.81
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/results/data/saves/ratings/.ipynb_checkpoints/page3-default-ratings-checkpoint.csv	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,22 @@
+file_keys,c0000,c0011,c1011,c1101,c1110,c1111
+YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU,0.67,0.66,1,1,1,1
+D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH,0.1,0.29,0.51,0.95,0.52,0.87
+OK2yLWD54tr3klqiS631VXjQlroZfmD3,0,0.07,0.91,0.97,0.84,0.73
+bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD,0,0.24,1,1,1,1
+fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz,0.01,0,1,1,0.97,0.75
+TOMYD23tpHwml90IqrXit137iWLikwWd,0.51,0.36,0.9,0.82,0.85,0.74
+ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1,0.07,0.11,0.77,0.93,0.87,0.93
+IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi,0.02,0.01,0.87,0.98,0.87,0.93
+U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq,0,0,0.72,0.85,0.88,0.66
+KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo,0.12,0.66,0.28,0.05,0.54,0.44
+uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o,0.12,0.14,0.77,1,0.95,0.97
+lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT,0.24,0.12,0.89,0.82,0.69,0.9
+9UODgpqx7pTDhiiLm7ds39wh59aYBrHK,0.29,0.25,0.62,0.98,0.94,0.85
+bkHwhN78d7k2kIanOievgityZQD7gVOr,0.18,0.23,0.89,0.92,0.95,0.9
+iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t,0,0,0.97,1,1,1
+t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa,0.49,0.25,0.74,0.99,0.75,0.76
+G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ,0.2,0.2,0.6,1,1,0.75
+JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml,0.36,0.35,0.97,0.94,0.97,0.85
+bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp,0.76,0.5,0.76,0.23,0.5,0.24
+XZS8UWbIXsUoecq08idrtLOJUbi1MlcK,0,0,1,0.76,0.76,0.76
+VyX492RQzqQXRL84PByL9pLt8C5p4c50,0.02,0,0.93,0.82,0.97,0.83
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/results/data/saves/ratings/.ipynb_checkpoints/page4-default-ratings-checkpoint.csv	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,22 @@
+file_keys,a00002,a00112,a10112,a11012,a11102,a11112
+YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU,0.1,0.1,0.23,0.22,0.23,0.33
+D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH,0,0,0.55,0.38,0.11,0.96
+OK2yLWD54tr3klqiS631VXjQlroZfmD3,0.03,0.5,0.5,0.58,0.05,0.66
+bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD,1,1,0.5,0.5,0.76,0.5
+fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz,0,0.2,0.74,0.86,0.6,0.96
+TOMYD23tpHwml90IqrXit137iWLikwWd,0.16,0.15,0.48,0.57,0.77,0.93
+ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1,0.06,0.48,0.35,0.82,0.09,0.87
+IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi,0.54,0.3,0.66,0.8,0.63,0.67
+U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq,0.06,0.68,0.38,1,0.12,0.74
+KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo,0,0.07,0.76,0.6,0.04,0.5
+uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o,0.24,0.52,0.71,0.97,0.7,0.94
+lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT,0,0.11,0.86,0.59,0.47,0.86
+9UODgpqx7pTDhiiLm7ds39wh59aYBrHK,0.05,0.41,0.62,0.69,0.55,0.37
+bkHwhN78d7k2kIanOievgityZQD7gVOr,0.18,0.03,0.54,0.77,0.45,0.6
+iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t,0.36,0.66,0.7,0.74,0.75,0.84
+t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa,0,0.25,0.51,0.76,0.24,1
+G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ,0.27,0,0.26,0.27,0.38,0.5
+JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml,0.11,0.1,0.37,0.54,0.45,0.45
+bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp,0.75,0.25,0.24,0.56,0.72,0.62
+XZS8UWbIXsUoecq08idrtLOJUbi1MlcK,0.5,0.5,0.24,0.76,0.63,1
+VyX492RQzqQXRL84PByL9pLt8C5p4c50,0.73,0.63,0.23,0.43,0.52,0.67
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/results/data/saves/ratings/.ipynb_checkpoints/page5-default-ratings-checkpoint.csv	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,22 @@
+file_keys,b00002,b00112,b10112,b11012,b11102,b11112
+IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi,0.28,0.2,0.6,0.72,0.46,0.63
+JPRRxYPC2Esy3nKf9XXEsiiqaLy09MZT
+iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t,0.13,0.23,0.68,0.98,0.8,0.94
+bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD,0.76,0.76,0.5,0.24,0.5,0.24
+U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq,0,0,0.5,0.96,0.08,0.68
+9UODgpqx7pTDhiiLm7ds39wh59aYBrHK,0.2,0.06,0.51,0.81,0.15,0.48
+VyX492RQzqQXRL84PByL9pLt8C5p4c50,0.7,0.67,0.6,1,0.93,0.51
+bkHwhN78d7k2kIanOievgityZQD7gVOr,0.34,0.33,0.86,0.73,0.47,0.82
+bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp,0.52,0.5,0.76,0.49,0.23,0.63
+ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1,0.04,0.05,0.82,0.84,0.04,0.81
+fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz,0,0,0.66,0.58,0.46,0.62
+YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU,0.51,0.56,0.91,0.87,0.5,0.96
+Pf1n49JWBtw1HRcXF86S9zuUl8G3Jbnz
+G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ,0.27,0,0.05,0.06,0.25,0.27
+OK2yLWD54tr3klqiS631VXjQlroZfmD3,0.04,0.05,0.75,0.87,0.04,0.85
+t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa,0.01,0,0.74,0.51,0.43,0.76
+D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH,0,0,0.44,0.35,0.57,0.99
+KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo,0.04,0,1,1,0.07,0.94
+JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml,0.04,0.04,0.54,0.47,0.59,0.79
+uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o,0.07,0.03,0.78,0.96,0.51,0.99
+lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT,0.13,0.13,1,0.69,0.55,0.84
Binary file results/data/saves/ratings/page1-default-ratings-box.pdf has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/results/data/saves/ratings/page1-default-ratings.csv	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,18 @@
+file_keys,a0000,a0011,a1011,a1101,a1110,a1111
+IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi,0.06,0.13,0.68,0.71,0.65,0.65
+iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t,0,0.04,0.95,1,0.8,0.95
+bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD,0.24,0.24,0.76,0.75,1,0.76
+U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq,0,0,0.83,0.97,0.86,0.9
+9UODgpqx7pTDhiiLm7ds39wh59aYBrHK,0.06,0.2,0.72,0.77,0.55,0.91
+VyX492RQzqQXRL84PByL9pLt8C5p4c50,0,0,0.63,0.87,0.84,1
+bkHwhN78d7k2kIanOievgityZQD7gVOr,0.08,0.25,0.93,0.98,0.78,0.92
+bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp,0,0,1,0.76,1,0.77
+ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1,0.09,0.1,0.92,0.91,0.09,0.92
+fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz,0,0,1,1,1,0.97
+YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU,0,0,0.95,0.42,0.92,0.93
+G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ,0,0.14,0.7,0.54,1,1
+OK2yLWD54tr3klqiS631VXjQlroZfmD3,0.06,0.03,0.52,1,0.68,0.89
+t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa,0.09,0.11,1,0.99,0.65,0.54
+JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml,0,0,0.71,0.83,0.84,0.93
+uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o,0.23,0.23,0.62,1,0.79,0.84
+lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT,0.11,0.24,0.69,1,0.66,0.83
Binary file results/data/saves/ratings/page2-default-ratings-box.pdf has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/results/data/saves/ratings/page2-default-ratings.csv	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,16 @@
+file_keys,b0000,b0011,b1011,b1101,b1110,b1111
+IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi,0.01,0.02,0.7,0.68,0.79,0.75
+iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t,0,0,1,1,1,1
+bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD,0,0.24,0.76,0.76,0.76,1
+U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq,0,0,0.96,0.91,0.92,0.92
+9UODgpqx7pTDhiiLm7ds39wh59aYBrHK,0.2,0.29,0.6,0.96,0.7,0.81
+VyX492RQzqQXRL84PByL9pLt8C5p4c50,0,0,1,1,1,0.81
+bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp,0,0,1,0.75,1,1
+ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1,0.13,0.08,0.86,0.95,0.74,0.76
+fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz,0,0,0.97,0.99,1,0.61
+G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ,0,0,0.49,1,0.65,0.82
+OK2yLWD54tr3klqiS631VXjQlroZfmD3,0,0.03,0.95,1,0.83,0.83
+t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa,0,0.15,0.48,0.76,0.74,0.87
+D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH,0,0,0.98,0.74,0.92,0.91
+uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o,0.09,0.1,0.77,1,0.9,1
+lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT,0.12,0.11,0.77,0.92,1,0.9
Binary file results/data/saves/ratings/page3-default-ratings-box.pdf has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/results/data/saves/ratings/page3-default-ratings.csv	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,15 @@
+file_keys,c0000,c0011,c1011,c1101,c1110,c1111
+IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi,0.02,0.01,0.87,0.98,0.87,0.93
+iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t,0,0,0.97,1,1,1
+bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD,0,0.24,1,1,1,1
+U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq,0,0,0.72,0.85,0.88,0.66
+VyX492RQzqQXRL84PByL9pLt8C5p4c50,0.02,0,0.93,0.82,0.97,0.83
+bkHwhN78d7k2kIanOievgityZQD7gVOr,0.18,0.23,0.89,0.92,0.95,0.9
+ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1,0.07,0.11,0.77,0.93,0.87,0.93
+fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz,0.01,0,1,1,0.97,0.75
+G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ,0.2,0.2,0.6,1,1,0.75
+OK2yLWD54tr3klqiS631VXjQlroZfmD3,0,0.07,0.91,0.97,0.84,0.73
+D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH,0.1,0.29,0.51,0.95,0.52,0.87
+KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo,0.12,0.66,0.28,0.05,0.54,0.44
+uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o,0.12,0.14,0.77,1,0.95,0.97
+lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT,0.24,0.12,0.89,0.82,0.69,0.9
Binary file results/data/saves/ratings/page4-default-ratings-box.pdf has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/results/data/saves/ratings/page4-default-ratings.csv	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,15 @@
+file_keys,a00002,a00112,a10112,a11012,a11102,a11112
+U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq,0.06,0.68,0.38,1,0.12,0.74
+9UODgpqx7pTDhiiLm7ds39wh59aYBrHK,0.05,0.41,0.62,0.69,0.55,0.37
+bkHwhN78d7k2kIanOievgityZQD7gVOr,0.18,0.03,0.54,0.77,0.45,0.6
+ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1,0.06,0.48,0.35,0.82,0.09,0.87
+fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz,0,0.2,0.74,0.86,0.6,0.96
+YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU,0.1,0.1,0.23,0.22,0.23,0.33
+G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ,0.27,0,0.26,0.27,0.38,0.5
+OK2yLWD54tr3klqiS631VXjQlroZfmD3,0.03,0.5,0.5,0.58,0.05,0.66
+t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa,0,0.25,0.51,0.76,0.24,1
+D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH,0,0,0.55,0.38,0.11,0.96
+KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo,0,0.07,0.76,0.6,0.04,0.5
+JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml,0.11,0.1,0.37,0.54,0.45,0.45
+uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o,0.24,0.52,0.71,0.97,0.7,0.94
+lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT,0,0.11,0.86,0.59,0.47,0.86
Binary file results/data/saves/ratings/page5-default-ratings-box.pdf has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/results/data/saves/ratings/page5-default-ratings.csv	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,15 @@
+file_keys,b00002,b00112,b10112,b11012,b11102,b11112
+IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi,0.28,0.2,0.6,0.72,0.46,0.63
+iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t,0.13,0.23,0.68,0.98,0.8,0.94
+U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq,0,0,0.5,0.96,0.08,0.68
+9UODgpqx7pTDhiiLm7ds39wh59aYBrHK,0.2,0.06,0.51,0.81,0.15,0.48
+ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1,0.04,0.05,0.82,0.84,0.04,0.81
+fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz,0,0,0.66,0.58,0.46,0.62
+G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ,0.27,0,0.05,0.06,0.25,0.27
+OK2yLWD54tr3klqiS631VXjQlroZfmD3,0.04,0.05,0.75,0.87,0.04,0.85
+t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa,0.01,0,0.74,0.51,0.43,0.76
+D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH,0,0,0.44,0.35,0.57,0.99
+KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo,0.04,0,1,1,0.07,0.94
+JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml,0.04,0.04,0.54,0.47,0.59,0.79
+uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o,0.07,0.03,0.78,0.96,0.51,0.99
+lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT,0.13,0.13,1,0.69,0.55,0.84
Binary file results/data/saves/ratings/page6-default-ratings-box.pdf has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/results/data/saves/ratings/page6-default-ratings.csv	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,15 @@
+file_keys,c00002,c00112,c10112,c11012,c11102,c11112
+IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi,0.23,0.24,0.5,0.67,0.62,0.61
+iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t,0,0.19,0.31,0.82,0.92,0.94
+U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq,0.05,0.67,0.65,0.85,0.05,0.39
+9UODgpqx7pTDhiiLm7ds39wh59aYBrHK,0.04,0.21,0.52,0.67,0.46,0.78
+ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1,0,0.6,0.67,0.81,0.05,0.44
+fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz,0.22,0.32,0.77,0.66,0.71,0.87
+YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU,0.01,0.75,0.63,0.75,0.38,0.87
+G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ,0.23,0,0.81,0.68,0.62,1
+OK2yLWD54tr3klqiS631VXjQlroZfmD3,0.05,0.6,0.77,0.73,0.12,0.71
+t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa,0,0.51,0.51,0.76,0.24,0.5
+D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH,0,0.1,0.52,0.63,0.49,0.95
+KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo,0.01,0.67,0.5,0.67,0,0.86
+JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml,0.02,0.16,0.49,0.5,0.3,0.58
+uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o,0.07,0.5,0.77,0.93,0.63,0.94
Binary file results/data/saves/ratings/page7-default-ratings-box.pdf has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/results/data/saves/ratings/page7-default-ratings.csv	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,22 @@
+file_keys,a00003,a00113,a10113,a11013,a11103,a11113
+IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi,0.11,0.21,0.77,0.78,0.69,0.76
+JPRRxYPC2Esy3nKf9XXEsiiqaLy09MZT
+iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t,0.13,0.21,0.23,0.71,0.62,0.79
+bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD,0.24,0,0.76,0.76,1,0.5
+U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq,0.35,0.84,0.72,1,0.16,0.81
+9UODgpqx7pTDhiiLm7ds39wh59aYBrHK,0,0.31,0.66,0.98,0.32,0.72
+VyX492RQzqQXRL84PByL9pLt8C5p4c50,0.34,0.16,0.48,0.78,0.52,0.8
+bkHwhN78d7k2kIanOievgityZQD7gVOr,0.12,0.31,0.82,0.66,0.36,0.97
+bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp,1,0.75,0.24,0.49,0,0.22
+ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1,0,0.77,0.96,0.44,0.33,0.69
+fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz,0.32,0.24,0.78,0.09,0.66,1
+YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU,0,0.11,0.69,0.84,0.75,0.75
+Pf1n49JWBtw1HRcXF86S9zuUl8G3Jbnz
+G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ,0,0,0.2,0.49,0.33,0.64
+OK2yLWD54tr3klqiS631VXjQlroZfmD3,0,0.07,0.66,0.86,0.5,1
+t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa,0,0.49,1,0.51,0.24,0.76
+D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH,0,0.11,0.66,0.35,0.14,0.87
+KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo,0.09,0.56,0.5,0.08,0,0.44
+JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml,0,0.11,0.89,0.39,0.69,1
+uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o,0,0.15,0.67,1,0.49,0.91
+lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT,0,0.24,1,0.12,0.5,0.75
Binary file results/data/saves/ratings/page8-default-ratings-box.pdf has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/results/data/saves/ratings/page8-default-ratings.csv	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,22 @@
+file_keys,b00003,b00113,b10113,b11013,b11103,b11113
+IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi,0.11,0.21,0.66,0.95,0.56,0.85
+JPRRxYPC2Esy3nKf9XXEsiiqaLy09MZT
+iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t,0.04,0.22,0.82,0.86,0.89,0.49
+bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD,0,0.5,0.5,1,0.76,0.75
+U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq,0.14,0.15,0.7,0.97,0.44,0.83
+9UODgpqx7pTDhiiLm7ds39wh59aYBrHK,0,0,0.91,1,0.39,0.84
+VyX492RQzqQXRL84PByL9pLt8C5p4c50,0.48,0.21,0.98,0.59,0.86,0.92
+bkHwhN78d7k2kIanOievgityZQD7gVOr,0.21,0.27,0.6,0.84,0.46,0.94
+bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp,1,1,0.09,0.49,0.5,0
+ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1,0,0,1,0.79,0.17,1
+fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz,0.22,0.01,0.99,0.1,0.35,0.63
+YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU,0,0,0.71,0.95,0.98,0.87
+Pf1n49JWBtw1HRcXF86S9zuUl8G3Jbnz
+G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ,0,0.7,0.33,0.58,0.57,0.36
+OK2yLWD54tr3klqiS631VXjQlroZfmD3,0,0,0.88,0.51,0.38,1
+t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa,0.23,0,0.5,0.74,0.25,1
+D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH,0,0,0.55,0.4,0.69,0.9
+KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo,0,0.13,0.96,0.76,0,1
+JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml,0,0,0.9,0.41,0.68,1
+uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o,0.06,0,0.76,0.9,0.64,1
+lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT,0,0,1,0.24,0.76,0.51
Binary file results/data/saves/ratings/page9-default-ratings-box.pdf has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/results/data/saves/ratings/page9-default-ratings.csv	Wed May 16 18:27:05 2018 +0100
@@ -0,0 +1,22 @@
+file_keys,c00003,c00113,c10113,c11013,c11103,c11113
+IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi,0.13,0.14,0.66,0.83,0.42,0.76
+JPRRxYPC2Esy3nKf9XXEsiiqaLy09MZT
+iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t,0.1,0.24,0.78,0.79,0.87,0.65
+bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD,0,0.5,0.76,1,1,1
+U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq,0.11,0.35,0.66,0.61,0.08,0.31
+9UODgpqx7pTDhiiLm7ds39wh59aYBrHK,0,0.23,0.95,0.92,0.34,0.85
+VyX492RQzqQXRL84PByL9pLt8C5p4c50,0.85,0.18,0.41,0.79,0.77,0.61
+bkHwhN78d7k2kIanOievgityZQD7gVOr,0.18,0.31,0.79,0.7,0.54,0.9
+bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp,0.77,0,0.23,1,0.23,0
+ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1,0.14,0.63,0.83,0.89,0.24,0.73
+fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz,0.16,0.3,0.82,0.13,0.53,0.59
+YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU,0.07,0.06,0.91,0.97,0.82,0.99
+Pf1n49JWBtw1HRcXF86S9zuUl8G3Jbnz
+G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ,0.24,0.24,0.58,0.71,0.75,0.81
+OK2yLWD54tr3klqiS631VXjQlroZfmD3,0,0.17,0.76,0.56,0.68,1
+t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa,0,0.25,0.49,0.52,0,1
+D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH,0,0.03,0.59,0.52,0.27,0.96
+KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo,0,0.68,0.69,0.76,0,0.82
+JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml,0,0.14,0.87,0.37,0.64,1
+uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o,0,0.11,0.58,1,0.5,0.77
+lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT,0,0.24,1,0.37,0.5,0.75
Binary file results/data/saves/subjects_per_page.pdf has changed
Binary file results/data/saves/task1.pdf has changed
Binary file results/data/saves/task2.pdf has changed
Binary file results/data/saves/task3.pdf has changed
Binary file results/data/saves/time_per_order.pdf has changed
Binary file results/data/saves/time_per_page.pdf has changed
Binary file results/data/saves/timelines_movement/save-9UODgpqx7pTDhiiLm7ds39wh59aYBrHK-page1.pdf has changed
Binary file results/data/saves/timelines_movement/save-9UODgpqx7pTDhiiLm7ds39wh59aYBrHK-page2.pdf has changed
Binary file results/data/saves/timelines_movement/save-9UODgpqx7pTDhiiLm7ds39wh59aYBrHK-page3.pdf has changed
Binary file results/data/saves/timelines_movement/save-9UODgpqx7pTDhiiLm7ds39wh59aYBrHK-page4.pdf has changed
Binary file results/data/saves/timelines_movement/save-9UODgpqx7pTDhiiLm7ds39wh59aYBrHK-page5.pdf has changed
Binary file results/data/saves/timelines_movement/save-9UODgpqx7pTDhiiLm7ds39wh59aYBrHK-page6.pdf has changed
Binary file results/data/saves/timelines_movement/save-9UODgpqx7pTDhiiLm7ds39wh59aYBrHK-page7.pdf has changed
Binary file results/data/saves/timelines_movement/save-9UODgpqx7pTDhiiLm7ds39wh59aYBrHK-page8.pdf has changed
Binary file results/data/saves/timelines_movement/save-9UODgpqx7pTDhiiLm7ds39wh59aYBrHK-page9.pdf has changed
Binary file results/data/saves/timelines_movement/save-D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH-page1.pdf has changed
Binary file results/data/saves/timelines_movement/save-D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH-page2.pdf has changed
Binary file results/data/saves/timelines_movement/save-D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH-page3.pdf has changed
Binary file results/data/saves/timelines_movement/save-D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH-page4.pdf has changed
Binary file results/data/saves/timelines_movement/save-D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH-page5.pdf has changed
Binary file results/data/saves/timelines_movement/save-D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH-page6.pdf has changed
Binary file results/data/saves/timelines_movement/save-D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH-page7.pdf has changed
Binary file results/data/saves/timelines_movement/save-D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH-page8.pdf has changed
Binary file results/data/saves/timelines_movement/save-D0Fq5YbSHwHaHK9V5pIWlIg5T6Ji3fQH-page9.pdf has changed
Binary file results/data/saves/timelines_movement/save-G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ-page1.pdf has changed
Binary file results/data/saves/timelines_movement/save-G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ-page2.pdf has changed
Binary file results/data/saves/timelines_movement/save-G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ-page3.pdf has changed
Binary file results/data/saves/timelines_movement/save-G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ-page4.pdf has changed
Binary file results/data/saves/timelines_movement/save-G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ-page5.pdf has changed
Binary file results/data/saves/timelines_movement/save-G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ-page6.pdf has changed
Binary file results/data/saves/timelines_movement/save-G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ-page7.pdf has changed
Binary file results/data/saves/timelines_movement/save-G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ-page8.pdf has changed
Binary file results/data/saves/timelines_movement/save-G2WO7k3tSjvBrlMG1Nqz4DsKBO8oaEcQ-page9.pdf has changed
Binary file results/data/saves/timelines_movement/save-IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi-page1.pdf has changed
Binary file results/data/saves/timelines_movement/save-IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi-page2.pdf has changed
Binary file results/data/saves/timelines_movement/save-IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi-page3.pdf has changed
Binary file results/data/saves/timelines_movement/save-IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi-page4.pdf has changed
Binary file results/data/saves/timelines_movement/save-IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi-page5.pdf has changed
Binary file results/data/saves/timelines_movement/save-IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi-page6.pdf has changed
Binary file results/data/saves/timelines_movement/save-IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi-page7.pdf has changed
Binary file results/data/saves/timelines_movement/save-IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi-page8.pdf has changed
Binary file results/data/saves/timelines_movement/save-IXHrDvdwYoDCO7bvwRMB7jD46hoWAjDi-page9.pdf has changed
Binary file results/data/saves/timelines_movement/save-JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml-page1.pdf has changed
Binary file results/data/saves/timelines_movement/save-JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml-page2.pdf has changed
Binary file results/data/saves/timelines_movement/save-JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml-page3.pdf has changed
Binary file results/data/saves/timelines_movement/save-JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml-page4.pdf has changed
Binary file results/data/saves/timelines_movement/save-JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml-page5.pdf has changed
Binary file results/data/saves/timelines_movement/save-JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml-page6.pdf has changed
Binary file results/data/saves/timelines_movement/save-JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml-page7.pdf has changed
Binary file results/data/saves/timelines_movement/save-JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml-page8.pdf has changed
Binary file results/data/saves/timelines_movement/save-JZaBaWCeuGjSAyoUrfwdASaIHXkHCZml-page9.pdf has changed
Binary file results/data/saves/timelines_movement/save-KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo-page1.pdf has changed
Binary file results/data/saves/timelines_movement/save-KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo-page2.pdf has changed
Binary file results/data/saves/timelines_movement/save-KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo-page3.pdf has changed
Binary file results/data/saves/timelines_movement/save-KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo-page4.pdf has changed
Binary file results/data/saves/timelines_movement/save-KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo-page5.pdf has changed
Binary file results/data/saves/timelines_movement/save-KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo-page6.pdf has changed
Binary file results/data/saves/timelines_movement/save-KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo-page7.pdf has changed
Binary file results/data/saves/timelines_movement/save-KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo-page8.pdf has changed
Binary file results/data/saves/timelines_movement/save-KBKzd0PezF8bsGoEZTkVkpmj1o8OECIo-page9.pdf has changed
Binary file results/data/saves/timelines_movement/save-OK2yLWD54tr3klqiS631VXjQlroZfmD3-page1.pdf has changed
Binary file results/data/saves/timelines_movement/save-OK2yLWD54tr3klqiS631VXjQlroZfmD3-page2.pdf has changed
Binary file results/data/saves/timelines_movement/save-OK2yLWD54tr3klqiS631VXjQlroZfmD3-page3.pdf has changed
Binary file results/data/saves/timelines_movement/save-OK2yLWD54tr3klqiS631VXjQlroZfmD3-page4.pdf has changed
Binary file results/data/saves/timelines_movement/save-OK2yLWD54tr3klqiS631VXjQlroZfmD3-page5.pdf has changed
Binary file results/data/saves/timelines_movement/save-OK2yLWD54tr3klqiS631VXjQlroZfmD3-page6.pdf has changed
Binary file results/data/saves/timelines_movement/save-OK2yLWD54tr3klqiS631VXjQlroZfmD3-page7.pdf has changed
Binary file results/data/saves/timelines_movement/save-OK2yLWD54tr3klqiS631VXjQlroZfmD3-page8.pdf has changed
Binary file results/data/saves/timelines_movement/save-OK2yLWD54tr3klqiS631VXjQlroZfmD3-page9.pdf has changed
Binary file results/data/saves/timelines_movement/save-TOMYD23tpHwml90IqrXit137iWLikwWd-page1.pdf has changed
Binary file results/data/saves/timelines_movement/save-TOMYD23tpHwml90IqrXit137iWLikwWd-page2.pdf has changed
Binary file results/data/saves/timelines_movement/save-TOMYD23tpHwml90IqrXit137iWLikwWd-page3.pdf has changed
Binary file results/data/saves/timelines_movement/save-TOMYD23tpHwml90IqrXit137iWLikwWd-page4.pdf has changed
Binary file results/data/saves/timelines_movement/save-TOMYD23tpHwml90IqrXit137iWLikwWd-page5.pdf has changed
Binary file results/data/saves/timelines_movement/save-TOMYD23tpHwml90IqrXit137iWLikwWd-page6.pdf has changed
Binary file results/data/saves/timelines_movement/save-TOMYD23tpHwml90IqrXit137iWLikwWd-page7.pdf has changed
Binary file results/data/saves/timelines_movement/save-TOMYD23tpHwml90IqrXit137iWLikwWd-page8.pdf has changed
Binary file results/data/saves/timelines_movement/save-TOMYD23tpHwml90IqrXit137iWLikwWd-page9.pdf has changed
Binary file results/data/saves/timelines_movement/save-U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq-page1.pdf has changed
Binary file results/data/saves/timelines_movement/save-U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq-page2.pdf has changed
Binary file results/data/saves/timelines_movement/save-U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq-page3.pdf has changed
Binary file results/data/saves/timelines_movement/save-U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq-page4.pdf has changed
Binary file results/data/saves/timelines_movement/save-U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq-page5.pdf has changed
Binary file results/data/saves/timelines_movement/save-U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq-page6.pdf has changed
Binary file results/data/saves/timelines_movement/save-U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq-page7.pdf has changed
Binary file results/data/saves/timelines_movement/save-U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq-page8.pdf has changed
Binary file results/data/saves/timelines_movement/save-U6mgdJX1DgAfYJ6DR7sKY0CL4YgcwZKq-page9.pdf has changed
Binary file results/data/saves/timelines_movement/save-VyX492RQzqQXRL84PByL9pLt8C5p4c50-page1.pdf has changed
Binary file results/data/saves/timelines_movement/save-VyX492RQzqQXRL84PByL9pLt8C5p4c50-page2.pdf has changed
Binary file results/data/saves/timelines_movement/save-VyX492RQzqQXRL84PByL9pLt8C5p4c50-page3.pdf has changed
Binary file results/data/saves/timelines_movement/save-VyX492RQzqQXRL84PByL9pLt8C5p4c50-page4.pdf has changed
Binary file results/data/saves/timelines_movement/save-VyX492RQzqQXRL84PByL9pLt8C5p4c50-page5.pdf has changed
Binary file results/data/saves/timelines_movement/save-VyX492RQzqQXRL84PByL9pLt8C5p4c50-page6.pdf has changed
Binary file results/data/saves/timelines_movement/save-VyX492RQzqQXRL84PByL9pLt8C5p4c50-page7.pdf has changed
Binary file results/data/saves/timelines_movement/save-VyX492RQzqQXRL84PByL9pLt8C5p4c50-page8.pdf has changed
Binary file results/data/saves/timelines_movement/save-VyX492RQzqQXRL84PByL9pLt8C5p4c50-page9.pdf has changed
Binary file results/data/saves/timelines_movement/save-XZS8UWbIXsUoecq08idrtLOJUbi1MlcK-page1.pdf has changed
Binary file results/data/saves/timelines_movement/save-XZS8UWbIXsUoecq08idrtLOJUbi1MlcK-page2.pdf has changed
Binary file results/data/saves/timelines_movement/save-XZS8UWbIXsUoecq08idrtLOJUbi1MlcK-page3.pdf has changed
Binary file results/data/saves/timelines_movement/save-XZS8UWbIXsUoecq08idrtLOJUbi1MlcK-page4.pdf has changed
Binary file results/data/saves/timelines_movement/save-XZS8UWbIXsUoecq08idrtLOJUbi1MlcK-page5.pdf has changed
Binary file results/data/saves/timelines_movement/save-XZS8UWbIXsUoecq08idrtLOJUbi1MlcK-page6.pdf has changed
Binary file results/data/saves/timelines_movement/save-XZS8UWbIXsUoecq08idrtLOJUbi1MlcK-page7.pdf has changed
Binary file results/data/saves/timelines_movement/save-XZS8UWbIXsUoecq08idrtLOJUbi1MlcK-page8.pdf has changed
Binary file results/data/saves/timelines_movement/save-XZS8UWbIXsUoecq08idrtLOJUbi1MlcK-page9.pdf has changed
Binary file results/data/saves/timelines_movement/save-YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU-page1.pdf has changed
Binary file results/data/saves/timelines_movement/save-YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU-page2.pdf has changed
Binary file results/data/saves/timelines_movement/save-YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU-page3.pdf has changed
Binary file results/data/saves/timelines_movement/save-YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU-page4.pdf has changed
Binary file results/data/saves/timelines_movement/save-YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU-page5.pdf has changed
Binary file results/data/saves/timelines_movement/save-YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU-page6.pdf has changed
Binary file results/data/saves/timelines_movement/save-YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU-page7.pdf has changed
Binary file results/data/saves/timelines_movement/save-YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU-page8.pdf has changed
Binary file results/data/saves/timelines_movement/save-YMVW8vVq8kZbGFRMWn9ElJBJ38bVV5GU-page9.pdf has changed
Binary file results/data/saves/timelines_movement/save-bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp-page1.pdf has changed
Binary file results/data/saves/timelines_movement/save-bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp-page2.pdf has changed
Binary file results/data/saves/timelines_movement/save-bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp-page3.pdf has changed
Binary file results/data/saves/timelines_movement/save-bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp-page4.pdf has changed
Binary file results/data/saves/timelines_movement/save-bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp-page5.pdf has changed
Binary file results/data/saves/timelines_movement/save-bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp-page6.pdf has changed
Binary file results/data/saves/timelines_movement/save-bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp-page7.pdf has changed
Binary file results/data/saves/timelines_movement/save-bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp-page8.pdf has changed
Binary file results/data/saves/timelines_movement/save-bKhIcFzfZ3YXPxNiw4E7kFyoTFAqeFTp-page9.pdf has changed
Binary file results/data/saves/timelines_movement/save-bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD-page1.pdf has changed
Binary file results/data/saves/timelines_movement/save-bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD-page2.pdf has changed
Binary file results/data/saves/timelines_movement/save-bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD-page3.pdf has changed
Binary file results/data/saves/timelines_movement/save-bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD-page4.pdf has changed
Binary file results/data/saves/timelines_movement/save-bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD-page5.pdf has changed
Binary file results/data/saves/timelines_movement/save-bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD-page6.pdf has changed
Binary file results/data/saves/timelines_movement/save-bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD-page7.pdf has changed
Binary file results/data/saves/timelines_movement/save-bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD-page8.pdf has changed
Binary file results/data/saves/timelines_movement/save-bOyRMU1QCcMqMpcjcHNBuVMF45oksQMD-page9.pdf has changed
Binary file results/data/saves/timelines_movement/save-bkHwhN78d7k2kIanOievgityZQD7gVOr-page1.pdf has changed
Binary file results/data/saves/timelines_movement/save-bkHwhN78d7k2kIanOievgityZQD7gVOr-page2.pdf has changed
Binary file results/data/saves/timelines_movement/save-bkHwhN78d7k2kIanOievgityZQD7gVOr-page3.pdf has changed
Binary file results/data/saves/timelines_movement/save-bkHwhN78d7k2kIanOievgityZQD7gVOr-page4.pdf has changed
Binary file results/data/saves/timelines_movement/save-bkHwhN78d7k2kIanOievgityZQD7gVOr-page5.pdf has changed
Binary file results/data/saves/timelines_movement/save-bkHwhN78d7k2kIanOievgityZQD7gVOr-page6.pdf has changed
Binary file results/data/saves/timelines_movement/save-bkHwhN78d7k2kIanOievgityZQD7gVOr-page7.pdf has changed
Binary file results/data/saves/timelines_movement/save-bkHwhN78d7k2kIanOievgityZQD7gVOr-page8.pdf has changed
Binary file results/data/saves/timelines_movement/save-bkHwhN78d7k2kIanOievgityZQD7gVOr-page9.pdf has changed
Binary file results/data/saves/timelines_movement/save-fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz-page1.pdf has changed
Binary file results/data/saves/timelines_movement/save-fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz-page2.pdf has changed
Binary file results/data/saves/timelines_movement/save-fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz-page3.pdf has changed
Binary file results/data/saves/timelines_movement/save-fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz-page4.pdf has changed
Binary file results/data/saves/timelines_movement/save-fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz-page5.pdf has changed
Binary file results/data/saves/timelines_movement/save-fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz-page6.pdf has changed
Binary file results/data/saves/timelines_movement/save-fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz-page7.pdf has changed
Binary file results/data/saves/timelines_movement/save-fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz-page8.pdf has changed
Binary file results/data/saves/timelines_movement/save-fZGbsBmuEtrB35G2IzQu0IxOCVoljWpz-page9.pdf has changed
Binary file results/data/saves/timelines_movement/save-iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t-page1.pdf has changed
Binary file results/data/saves/timelines_movement/save-iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t-page2.pdf has changed
Binary file results/data/saves/timelines_movement/save-iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t-page3.pdf has changed
Binary file results/data/saves/timelines_movement/save-iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t-page4.pdf has changed
Binary file results/data/saves/timelines_movement/save-iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t-page5.pdf has changed
Binary file results/data/saves/timelines_movement/save-iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t-page6.pdf has changed
Binary file results/data/saves/timelines_movement/save-iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t-page7.pdf has changed
Binary file results/data/saves/timelines_movement/save-iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t-page8.pdf has changed
Binary file results/data/saves/timelines_movement/save-iWogwaa7GooHWHcp8C0ZjRrTMDgcae0t-page9.pdf has changed
Binary file results/data/saves/timelines_movement/save-lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT-page1.pdf has changed
Binary file results/data/saves/timelines_movement/save-lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT-page2.pdf has changed
Binary file results/data/saves/timelines_movement/save-lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT-page3.pdf has changed
Binary file results/data/saves/timelines_movement/save-lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT-page4.pdf has changed
Binary file results/data/saves/timelines_movement/save-lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT-page5.pdf has changed
Binary file results/data/saves/timelines_movement/save-lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT-page6.pdf has changed
Binary file results/data/saves/timelines_movement/save-lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT-page7.pdf has changed
Binary file results/data/saves/timelines_movement/save-lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT-page8.pdf has changed
Binary file results/data/saves/timelines_movement/save-lIOWKvmCLdlUhGFYwE3lOfizSeqtxyNT-page9.pdf has changed
Binary file results/data/saves/timelines_movement/save-liuL3y4zPQh8HbF7L3d4VKTRYy0BuFHP-page2.pdf has changed
Binary file results/data/saves/timelines_movement/save-liuL3y4zPQh8HbF7L3d4VKTRYy0BuFHP-page4.pdf has changed
Binary file results/data/saves/timelines_movement/save-liuL3y4zPQh8HbF7L3d4VKTRYy0BuFHP-page6.pdf has changed
Binary file results/data/saves/timelines_movement/save-t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa-page1.pdf has changed
Binary file results/data/saves/timelines_movement/save-t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa-page2.pdf has changed
Binary file results/data/saves/timelines_movement/save-t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa-page3.pdf has changed
Binary file results/data/saves/timelines_movement/save-t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa-page4.pdf has changed
Binary file results/data/saves/timelines_movement/save-t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa-page5.pdf has changed
Binary file results/data/saves/timelines_movement/save-t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa-page6.pdf has changed
Binary file results/data/saves/timelines_movement/save-t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa-page7.pdf has changed
Binary file results/data/saves/timelines_movement/save-t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa-page8.pdf has changed
Binary file results/data/saves/timelines_movement/save-t1Ybl1O1EAdpBEbxOLbaU4QlHtAcGCxa-page9.pdf has changed
Binary file results/data/saves/timelines_movement/save-ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1-page1.pdf has changed
Binary file results/data/saves/timelines_movement/save-ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1-page2.pdf has changed
Binary file results/data/saves/timelines_movement/save-ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1-page3.pdf has changed
Binary file results/data/saves/timelines_movement/save-ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1-page4.pdf has changed
Binary file results/data/saves/timelines_movement/save-ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1-page5.pdf has changed
Binary file results/data/saves/timelines_movement/save-ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1-page6.pdf has changed
Binary file results/data/saves/timelines_movement/save-ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1-page7.pdf has changed
Binary file results/data/saves/timelines_movement/save-ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1-page8.pdf has changed
Binary file results/data/saves/timelines_movement/save-ufohn9b31ZNI2zLGNqmmRYOMtIwiw6o1-page9.pdf has changed
Binary file results/data/saves/timelines_movement/save-uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o-page1.pdf has changed
Binary file results/data/saves/timelines_movement/save-uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o-page2.pdf has changed
Binary file results/data/saves/timelines_movement/save-uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o-page3.pdf has changed
Binary file results/data/saves/timelines_movement/save-uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o-page4.pdf has changed
Binary file results/data/saves/timelines_movement/save-uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o-page5.pdf has changed
Binary file results/data/saves/timelines_movement/save-uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o-page6.pdf has changed
Binary file results/data/saves/timelines_movement/save-uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o-page7.pdf has changed
Binary file results/data/saves/timelines_movement/save-uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o-page8.pdf has changed
Binary file results/data/saves/timelines_movement/save-uoBPmOWdbNI4uowtBZRZK8BIEUVvUn1o-page9.pdf has changed