From d5ff1648b26ecf4e404cd36ad85c617c6e2b802a Mon Sep 17 00:00:00 2001
From: reverend <reverend@reverend2048.de>
Date: Sun, 21 Apr 2019 12:32:09 +0200
Subject: [PATCH] ~setup python virtual environvment

---
 .gitignore                                    | 189 ++++++++++++++++++
 bin/activate                                  |  78 ++++++++
 bin/activate.csh                              |  42 ++++
 bin/activate.fish                             |  76 +++++++
 bin/activate.ps1                              | 150 ++++++++++++++
 bin/activate_this.py                          |  36 ++++
 bin/easy_install                              |  11 +
 bin/easy_install-3.7                          |  11 +
 bin/pip                                       |  11 +
 bin/pip3                                      |  11 +
 bin/pip3.7                                    |  11 +
 bin/python                                    | Bin 0 -> 14120 bytes
 bin/python-config                             |  78 ++++++++
 bin/python3                                   |   1 +
 bin/python3.7                                 |   1 +
 bin/wheel                                     |  11 +
 frontend/current_round.json                   |  23 ---
 include/python3.7m                            |   1 +
 cfd.sqlite => src/cfd.sqlite                  | Bin 90112 -> 90112 bytes
 {data => src/data}/questions_35c3.json        |   0
 {frontend => src/frontend}/ChaosWest.png      | Bin
 {frontend => src/frontend}/ChaosWest.svg      |   0
 .../frontend}/PermanentMarker-Regular.ttf     | Bin
 .../frontend}/PressStart2P-Regular.ttf        | Bin
 .../Familien Duell Intromusik-ZIjs-VVh8l8.m4a | Bin
 {frontend => src/frontend}/audio/failure.mp3  | Bin
 {frontend => src/frontend}/audio/frage.mp3    | Bin
 {frontend => src/frontend}/audio/intro.mp3    | Bin
 .../frontend}/chaos_west_text.jpg             | Bin
 src/frontend/current_round.json               |  49 +++++
 {frontend => src/frontend}/live.py            |   0
 {frontend => src/frontend}/start.py           |   0
 {frontend => src/frontend}/watterott.png      | Bin
 {model => src/model}/__init__.py              |   0
 {model => src/model}/game.py                  |   0
 {model => src/model}/question.py              |   0
 {model => src/model}/team.py                  |   0
 {rest => src/rest}/__init__.py                |   0
 {rest => src/rest}/game/__init__.py           |   0
 {rest => src/rest}/game/game.py               |   0
 {rest => src/rest}/team/__init__.py           |   0
 {rest => src/rest}/team/team.py               |   0
 start.py => src/start.py                      |   0
 .../static}/PressStart2P-Regular.ttf          | Bin
 {static => src/static}/chaos_west_text.jpg    | Bin
 {static => src/static}/questions_35c3.json    |   0
 .../static}/questions_hip_2019.json           |   0
 .../static}/teamlogos/0_no_logo_00.png        | Bin
 .../static}/teamlogos/0_no_logo_01.png        | Bin
 .../static}/teamlogos/0_no_logo_02.png        | Bin
 .../static}/teamlogos/binary kitchen.png      | Bin
 {static => src/static}/teamlogos/entropia.png | Bin
 {static => src/static}/teamlogos/warpzone.png | Bin
 {templates => src/templates}/frontend.jinja   |   0
 {templates => src/templates}/game.jinja       |   0
 {templates => src/templates}/layout.jinja     |   0
 {templates => src/templates}/management.jinja |   0
 {utils => src/utils}/__init__.py              |   0
 {utils => src/utils}/errorlog.py              |   0
 {views => src/views}/__init__.py              |   0
 {views => src/views}/game.py                  |   0
 {views => src/views}/management.py            |   0
 62 files changed, 767 insertions(+), 23 deletions(-)
 create mode 100644 .gitignore
 create mode 100644 bin/activate
 create mode 100644 bin/activate.csh
 create mode 100644 bin/activate.fish
 create mode 100644 bin/activate.ps1
 create mode 100644 bin/activate_this.py
 create mode 100755 bin/easy_install
 create mode 100755 bin/easy_install-3.7
 create mode 100755 bin/pip
 create mode 100755 bin/pip3
 create mode 100755 bin/pip3.7
 create mode 100755 bin/python
 create mode 100755 bin/python-config
 create mode 120000 bin/python3
 create mode 120000 bin/python3.7
 create mode 100755 bin/wheel
 delete mode 100644 frontend/current_round.json
 create mode 120000 include/python3.7m
 rename cfd.sqlite => src/cfd.sqlite (99%)
 rename {data => src/data}/questions_35c3.json (100%)
 rename {frontend => src/frontend}/ChaosWest.png (100%)
 rename {frontend => src/frontend}/ChaosWest.svg (100%)
 rename {frontend => src/frontend}/PermanentMarker-Regular.ttf (100%)
 rename {frontend => src/frontend}/PressStart2P-Regular.ttf (100%)
 rename {frontend => src/frontend}/audio/Familien Duell Intromusik-ZIjs-VVh8l8.m4a (100%)
 rename {frontend => src/frontend}/audio/failure.mp3 (100%)
 rename {frontend => src/frontend}/audio/frage.mp3 (100%)
 rename {frontend => src/frontend}/audio/intro.mp3 (100%)
 rename {frontend => src/frontend}/chaos_west_text.jpg (100%)
 create mode 100644 src/frontend/current_round.json
 rename {frontend => src/frontend}/live.py (100%)
 rename {frontend => src/frontend}/start.py (100%)
 rename {frontend => src/frontend}/watterott.png (100%)
 rename {model => src/model}/__init__.py (100%)
 rename {model => src/model}/game.py (100%)
 rename {model => src/model}/question.py (100%)
 rename {model => src/model}/team.py (100%)
 rename {rest => src/rest}/__init__.py (100%)
 rename {rest => src/rest}/game/__init__.py (100%)
 rename {rest => src/rest}/game/game.py (100%)
 rename {rest => src/rest}/team/__init__.py (100%)
 rename {rest => src/rest}/team/team.py (100%)
 rename start.py => src/start.py (100%)
 rename {static => src/static}/PressStart2P-Regular.ttf (100%)
 rename {static => src/static}/chaos_west_text.jpg (100%)
 rename {static => src/static}/questions_35c3.json (100%)
 rename {static => src/static}/questions_hip_2019.json (100%)
 rename {static => src/static}/teamlogos/0_no_logo_00.png (100%)
 rename {static => src/static}/teamlogos/0_no_logo_01.png (100%)
 rename {static => src/static}/teamlogos/0_no_logo_02.png (100%)
 rename {static => src/static}/teamlogos/binary kitchen.png (100%)
 rename {static => src/static}/teamlogos/entropia.png (100%)
 rename {static => src/static}/teamlogos/warpzone.png (100%)
 rename {templates => src/templates}/frontend.jinja (100%)
 rename {templates => src/templates}/game.jinja (100%)
 rename {templates => src/templates}/layout.jinja (100%)
 rename {templates => src/templates}/management.jinja (100%)
 rename {utils => src/utils}/__init__.py (100%)
 rename {utils => src/utils}/errorlog.py (100%)
 rename {views => src/views}/__init__.py (100%)
 rename {views => src/views}/game.py (100%)
 rename {views => src/views}/management.py (100%)

diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..51cdc3f
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,189 @@
+
+# Created by https://www.gitignore.io/api/flask,python,visualstudiocode
+# Edit at https://www.gitignore.io/?templates=flask,python,visualstudiocode
+
+### Flask ###
+instance/*
+!instance/.gitignore
+.webassets-cache
+
+### Flask.Python Stack ###
+# Byte-compiled / optimized / DLL files
+__pycache__/
+*.py[cod]
+*$py.class
+
+# C extensions
+*.so
+
+# Distribution / packaging
+.Python
+build/
+develop-eggs/
+dist/
+downloads/
+eggs/
+.eggs/
+lib/
+lib64/
+parts/
+sdist/
+var/
+wheels/
+share/python-wheels/
+*.egg-info/
+.installed.cfg
+*.egg
+MANIFEST
+
+# PyInstaller
+#  Usually these files are written by a python script from a template
+#  before PyInstaller builds the exe, so as to inject date/other infos into it.
+*.manifest
+*.spec
+
+# Installer logs
+pip-log.txt
+pip-delete-this-directory.txt
+
+# Unit test / coverage reports
+htmlcov/
+.tox/
+.nox/
+.coverage
+.coverage.*
+.cache
+nosetests.xml
+coverage.xml
+*.cover
+.hypothesis/
+.pytest_cache/
+
+# Translations
+*.mo
+*.pot
+
+# Django stuff:
+*.log
+local_settings.py
+db.sqlite3
+
+# Flask stuff:
+instance/
+
+# Scrapy stuff:
+.scrapy
+
+# Sphinx documentation
+docs/_build/
+
+# PyBuilder
+target/
+
+# Jupyter Notebook
+.ipynb_checkpoints
+
+# IPython
+profile_default/
+ipython_config.py
+
+# pyenv
+.python-version
+
+# celery beat schedule file
+celerybeat-schedule
+
+# SageMath parsed files
+*.sage.py
+
+# Environments
+.env
+.venv
+env/
+venv/
+ENV/
+env.bak/
+venv.bak/
+
+# Spyder project settings
+.spyderproject
+.spyproject
+
+# Rope project settings
+.ropeproject
+
+# mkdocs documentation
+/site
+
+# mypy
+.mypy_cache/
+.dmypy.json
+dmypy.json
+
+# Pyre type checker
+.pyre/
+
+### Python ###
+# Byte-compiled / optimized / DLL files
+
+# C extensions
+
+# Distribution / packaging
+
+# PyInstaller
+#  Usually these files are written by a python script from a template
+#  before PyInstaller builds the exe, so as to inject date/other infos into it.
+
+# Installer logs
+
+# Unit test / coverage reports
+
+# Translations
+
+# Django stuff:
+
+# Flask stuff:
+
+# Scrapy stuff:
+
+# Sphinx documentation
+
+# PyBuilder
+
+# Jupyter Notebook
+
+# IPython
+
+# pyenv
+
+# celery beat schedule file
+
+# SageMath parsed files
+
+# Environments
+
+# Spyder project settings
+
+# Rope project settings
+
+# mkdocs documentation
+
+# mypy
+
+# Pyre type checker
+
+### Python Patch ###
+.venv/
+
+### VisualStudioCode ###
+.vscode/*
+!.vscode/settings.json
+!.vscode/tasks.json
+!.vscode/launch.json
+!.vscode/extensions.json
+
+### VisualStudioCode Patch ###
+# Ignore all local history of files
+.history
+
+# End of https://www.gitignore.io/api/flask,python,visualstudiocode
diff --git a/bin/activate b/bin/activate
new file mode 100644
index 0000000..b65ac8a
--- /dev/null
+++ b/bin/activate
@@ -0,0 +1,78 @@
+# This file must be used with "source bin/activate" *from bash*
+# you cannot run it directly
+
+deactivate () {
+    unset -f pydoc >/dev/null 2>&1
+
+    # reset old environment variables
+    # ! [ -z ${VAR+_} ] returns true if VAR is declared at all
+    if ! [ -z "${_OLD_VIRTUAL_PATH+_}" ] ; then
+        PATH="$_OLD_VIRTUAL_PATH"
+        export PATH
+        unset _OLD_VIRTUAL_PATH
+    fi
+    if ! [ -z "${_OLD_VIRTUAL_PYTHONHOME+_}" ] ; then
+        PYTHONHOME="$_OLD_VIRTUAL_PYTHONHOME"
+        export PYTHONHOME
+        unset _OLD_VIRTUAL_PYTHONHOME
+    fi
+
+    # This should detect bash and zsh, which have a hash command that must
+    # be called to get it to forget past commands.  Without forgetting
+    # past commands the $PATH changes we made may not be respected
+    if [ -n "${BASH-}" ] || [ -n "${ZSH_VERSION-}" ] ; then
+        hash -r 2>/dev/null
+    fi
+
+    if ! [ -z "${_OLD_VIRTUAL_PS1+_}" ] ; then
+        PS1="$_OLD_VIRTUAL_PS1"
+        export PS1
+        unset _OLD_VIRTUAL_PS1
+    fi
+
+    unset VIRTUAL_ENV
+    if [ ! "${1-}" = "nondestructive" ] ; then
+    # Self destruct!
+        unset -f deactivate
+    fi
+}
+
+# unset irrelevant variables
+deactivate nondestructive
+
+VIRTUAL_ENV="/home/reverend/Programmierung/git_projects/Chaos-Familien-Duell"
+export VIRTUAL_ENV
+
+_OLD_VIRTUAL_PATH="$PATH"
+PATH="$VIRTUAL_ENV/bin:$PATH"
+export PATH
+
+# unset PYTHONHOME if set
+if ! [ -z "${PYTHONHOME+_}" ] ; then
+    _OLD_VIRTUAL_PYTHONHOME="$PYTHONHOME"
+    unset PYTHONHOME
+fi
+
+if [ -z "${VIRTUAL_ENV_DISABLE_PROMPT-}" ] ; then
+    _OLD_VIRTUAL_PS1="$PS1"
+    if [ "x" != x ] ; then
+        PS1="$PS1"
+    else
+        PS1="(`basename \"$VIRTUAL_ENV\"`) $PS1"
+    fi
+    export PS1
+fi
+
+# Make sure to unalias pydoc if it's already there
+alias pydoc 2>/dev/null >/dev/null && unalias pydoc
+
+pydoc () {
+    python -m pydoc "$@"
+}
+
+# This should detect bash and zsh, which have a hash command that must
+# be called to get it to forget past commands.  Without forgetting
+# past commands the $PATH changes we made may not be respected
+if [ -n "${BASH-}" ] || [ -n "${ZSH_VERSION-}" ] ; then
+    hash -r 2>/dev/null
+fi
diff --git a/bin/activate.csh b/bin/activate.csh
new file mode 100644
index 0000000..5468c7a
--- /dev/null
+++ b/bin/activate.csh
@@ -0,0 +1,42 @@
+# This file must be used with "source bin/activate.csh" *from csh*.
+# You cannot run it directly.
+# Created by Davide Di Blasi <davidedb@gmail.com>.
+
+set newline='\
+'
+
+alias deactivate 'test $?_OLD_VIRTUAL_PATH != 0 && setenv PATH "$_OLD_VIRTUAL_PATH:q" && unset _OLD_VIRTUAL_PATH; rehash; test $?_OLD_VIRTUAL_PROMPT != 0 && set prompt="$_OLD_VIRTUAL_PROMPT:q" && unset _OLD_VIRTUAL_PROMPT; unsetenv VIRTUAL_ENV; test "\!:*" != "nondestructive" && unalias deactivate && unalias pydoc'
+
+# Unset irrelevant variables.
+deactivate nondestructive
+
+setenv VIRTUAL_ENV "/home/reverend/Programmierung/git_projects/Chaos-Familien-Duell"
+
+set _OLD_VIRTUAL_PATH="$PATH:q"
+setenv PATH "$VIRTUAL_ENV:q/bin:$PATH:q"
+
+
+
+if ("" != "") then
+    set env_name = ""
+else
+    set env_name = "$VIRTUAL_ENV:t:q"
+endif
+
+# Could be in a non-interactive environment,
+# in which case, $prompt is undefined and we wouldn't
+# care about the prompt anyway.
+if ( $?prompt ) then
+    set _OLD_VIRTUAL_PROMPT="$prompt:q"
+if ( "$prompt:q" =~ *"$newline:q"* ) then
+    :
+else
+    set prompt = "[$env_name:q] $prompt:q"
+endif
+endif
+
+unset env_name
+
+alias pydoc python -m pydoc
+
+rehash
diff --git a/bin/activate.fish b/bin/activate.fish
new file mode 100644
index 0000000..f347781
--- /dev/null
+++ b/bin/activate.fish
@@ -0,0 +1,76 @@
+# This file must be used using `source bin/activate.fish` *within a running fish ( http://fishshell.com ) session*.
+# Do not run it directly.
+
+function deactivate -d 'Exit virtualenv mode and return to the normal environment.'
+    # reset old environment variables
+    if test -n "$_OLD_VIRTUAL_PATH"
+        set -gx PATH $_OLD_VIRTUAL_PATH
+        set -e _OLD_VIRTUAL_PATH
+    end
+
+    if test -n "$_OLD_VIRTUAL_PYTHONHOME"
+        set -gx PYTHONHOME $_OLD_VIRTUAL_PYTHONHOME
+        set -e _OLD_VIRTUAL_PYTHONHOME
+    end
+
+    if test -n "$_OLD_FISH_PROMPT_OVERRIDE"
+        # Set an empty local `$fish_function_path` to allow the removal of `fish_prompt` using `functions -e`.
+        set -l fish_function_path
+
+        # Erase virtualenv's `fish_prompt` and restore the original.
+        functions -e fish_prompt
+        functions -c _old_fish_prompt fish_prompt
+        functions -e _old_fish_prompt
+        set -e _OLD_FISH_PROMPT_OVERRIDE
+    end
+
+    set -e VIRTUAL_ENV
+
+    if test "$argv[1]" != 'nondestructive'
+        # Self-destruct!
+        functions -e pydoc
+        functions -e deactivate
+    end
+end
+
+# Unset irrelevant variables.
+deactivate nondestructive
+
+set -gx VIRTUAL_ENV "/home/reverend/Programmierung/git_projects/Chaos-Familien-Duell"
+
+set -gx _OLD_VIRTUAL_PATH $PATH
+set -gx PATH "$VIRTUAL_ENV/bin" $PATH
+
+# Unset `$PYTHONHOME` if set.
+if set -q PYTHONHOME
+    set -gx _OLD_VIRTUAL_PYTHONHOME $PYTHONHOME
+    set -e PYTHONHOME
+end
+
+function pydoc
+    python -m pydoc $argv
+end
+
+if test -z "$VIRTUAL_ENV_DISABLE_PROMPT"
+    # Copy the current `fish_prompt` function as `_old_fish_prompt`.
+    functions -c fish_prompt _old_fish_prompt
+
+    function fish_prompt
+        # Save the current $status, for fish_prompts that display it.
+        set -l old_status $status
+
+        # Prompt override provided?
+        # If not, just prepend the environment name.
+        if test -n ""
+            printf '%s%s' "" (set_color normal)
+        else
+            printf '%s(%s) ' (set_color normal) (basename "$VIRTUAL_ENV")
+        end
+
+        # Restore the original $status
+        echo "exit $old_status" | source
+        _old_fish_prompt
+    end
+
+    set -gx _OLD_FISH_PROMPT_OVERRIDE "$VIRTUAL_ENV"
+end
diff --git a/bin/activate.ps1 b/bin/activate.ps1
new file mode 100644
index 0000000..89dbec6
--- /dev/null
+++ b/bin/activate.ps1
@@ -0,0 +1,150 @@
+# This file must be dot sourced from PoSh; you cannot run it
+# directly. Do this: . ./activate.ps1
+
+# FIXME: clean up unused vars.
+$script:THIS_PATH = $myinvocation.mycommand.path
+$script:BASE_DIR = split-path (resolve-path "$THIS_PATH/..") -Parent
+$script:DIR_NAME = split-path $BASE_DIR -Leaf
+
+function global:deactivate ( [switch] $NonDestructive ){
+
+    if ( test-path variable:_OLD_VIRTUAL_PATH ) {
+        $env:PATH = $variable:_OLD_VIRTUAL_PATH
+        remove-variable "_OLD_VIRTUAL_PATH" -scope global
+    }
+
+    if ( test-path function:_old_virtual_prompt ) {
+        $function:prompt = $function:_old_virtual_prompt
+        remove-item function:\_old_virtual_prompt
+    }
+
+    if ($env:VIRTUAL_ENV) {
+        $old_env = split-path $env:VIRTUAL_ENV -leaf
+        remove-item env:VIRTUAL_ENV -erroraction silentlycontinue
+    }
+
+    if ( !$NonDestructive ) {
+        # Self destruct!
+        remove-item function:deactivate
+    }
+}
+
+# unset irrelevant variables
+deactivate -nondestructive
+
+$VIRTUAL_ENV = $BASE_DIR
+$env:VIRTUAL_ENV = $VIRTUAL_ENV
+
+$global:_OLD_VIRTUAL_PATH = $env:PATH
+$env:PATH = "$env:VIRTUAL_ENV/bin:" + $env:PATH
+if (! $env:VIRTUAL_ENV_DISABLE_PROMPT) {
+    function global:_old_virtual_prompt { "" }
+    $function:_old_virtual_prompt = $function:prompt
+    function global:prompt {
+        # Add a prefix to the current prompt, but don't discard it.
+        write-host "($(split-path $env:VIRTUAL_ENV -leaf)) " -nonewline
+        & $function:_old_virtual_prompt
+    }
+}
+
+# SIG # Begin signature block
+# MIISeAYJKoZIhvcNAQcCoIISaTCCEmUCAQExCzAJBgUrDgMCGgUAMGkGCisGAQQB
+# gjcCAQSgWzBZMDQGCisGAQQBgjcCAR4wJgIDAQAABBAfzDtgWUsITrck0sYpfvNR
+# AgEAAgEAAgEAAgEAAgEAMCEwCQYFKw4DAhoFAAQUS5reBwSg3zOUwhXf2jPChZzf
+# yPmggg6tMIIGcDCCBFigAwIBAgIBJDANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQG
+# EwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERp
+# Z2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMgU3RhcnRDb20gQ2Vy
+# dGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDcxMDI0MjIwMTQ2WhcNMTcxMDI0MjIw
+# MTQ2WjCBjDELMAkGA1UEBhMCSUwxFjAUBgNVBAoTDVN0YXJ0Q29tIEx0ZC4xKzAp
+# BgNVBAsTIlNlY3VyZSBEaWdpdGFsIENlcnRpZmljYXRlIFNpZ25pbmcxODA2BgNV
+# BAMTL1N0YXJ0Q29tIENsYXNzIDIgUHJpbWFyeSBJbnRlcm1lZGlhdGUgT2JqZWN0
+# IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyiOLIjUemqAbPJ1J
+# 0D8MlzgWKbr4fYlbRVjvhHDtfhFN6RQxq0PjTQxRgWzwFQNKJCdU5ftKoM5N4YSj
+# Id6ZNavcSa6/McVnhDAQm+8H3HWoD030NVOxbjgD/Ih3HaV3/z9159nnvyxQEckR
+# ZfpJB2Kfk6aHqW3JnSvRe+XVZSufDVCe/vtxGSEwKCaNrsLc9pboUoYIC3oyzWoU
+# TZ65+c0H4paR8c8eK/mC914mBo6N0dQ512/bkSdaeY9YaQpGtW/h/W/FkbQRT3sC
+# pttLVlIjnkuY4r9+zvqhToPjxcfDYEf+XD8VGkAqle8Aa8hQ+M1qGdQjAye8OzbV
+# uUOw7wIDAQABo4IB6TCCAeUwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
+# AQYwHQYDVR0OBBYEFNBOD0CZbLhLGW87KLjg44gHNKq3MB8GA1UdIwQYMBaAFE4L
+# 7xqkQFulF2mHMMo0aEPQQa7yMD0GCCsGAQUFBwEBBDEwLzAtBggrBgEFBQcwAoYh
+# aHR0cDovL3d3dy5zdGFydHNzbC5jb20vc2ZzY2EuY3J0MFsGA1UdHwRUMFIwJ6Al
+# oCOGIWh0dHA6Ly93d3cuc3RhcnRzc2wuY29tL3Nmc2NhLmNybDAnoCWgI4YhaHR0
+# cDovL2NybC5zdGFydHNzbC5jb20vc2ZzY2EuY3JsMIGABgNVHSAEeTB3MHUGCysG
+# AQQBgbU3AQIBMGYwLgYIKwYBBQUHAgEWImh0dHA6Ly93d3cuc3RhcnRzc2wuY29t
+# L3BvbGljeS5wZGYwNAYIKwYBBQUHAgEWKGh0dHA6Ly93d3cuc3RhcnRzc2wuY29t
+# L2ludGVybWVkaWF0ZS5wZGYwEQYJYIZIAYb4QgEBBAQDAgABMFAGCWCGSAGG+EIB
+# DQRDFkFTdGFydENvbSBDbGFzcyAyIFByaW1hcnkgSW50ZXJtZWRpYXRlIE9iamVj
+# dCBTaWduaW5nIENlcnRpZmljYXRlczANBgkqhkiG9w0BAQUFAAOCAgEAcnMLA3Va
+# N4OIE9l4QT5OEtZy5PByBit3oHiqQpgVEQo7DHRsjXD5H/IyTivpMikaaeRxIv95
+# baRd4hoUcMwDj4JIjC3WA9FoNFV31SMljEZa66G8RQECdMSSufgfDYu1XQ+cUKxh
+# D3EtLGGcFGjjML7EQv2Iol741rEsycXwIXcryxeiMbU2TPi7X3elbwQMc4JFlJ4B
+# y9FhBzuZB1DV2sN2irGVbC3G/1+S2doPDjL1CaElwRa/T0qkq2vvPxUgryAoCppU
+# FKViw5yoGYC+z1GaesWWiP1eFKAL0wI7IgSvLzU3y1Vp7vsYaxOVBqZtebFTWRHt
+# XjCsFrrQBngt0d33QbQRI5mwgzEp7XJ9xu5d6RVWM4TPRUsd+DDZpBHm9mszvi9g
+# VFb2ZG7qRRXCSqys4+u/NLBPbXi/m/lU00cODQTlC/euwjk9HQtRrXQ/zqsBJS6U
+# J+eLGw1qOfj+HVBl/ZQpfoLk7IoWlRQvRL1s7oirEaqPZUIWY/grXq9r6jDKAp3L
+# ZdKQpPOnnogtqlU4f7/kLjEJhrrc98mrOWmVMK/BuFRAfQ5oDUMnVmCzAzLMjKfG
+# cVW/iMew41yfhgKbwpfzm3LBr1Zv+pEBgcgW6onRLSAn3XHM0eNtz+AkxH6rRf6B
+# 2mYhLEEGLapH8R1AMAo4BbVFOZR5kXcMCwowggg1MIIHHaADAgECAgIEuDANBgkq
+# hkiG9w0BAQUFADCBjDELMAkGA1UEBhMCSUwxFjAUBgNVBAoTDVN0YXJ0Q29tIEx0
+# ZC4xKzApBgNVBAsTIlNlY3VyZSBEaWdpdGFsIENlcnRpZmljYXRlIFNpZ25pbmcx
+# ODA2BgNVBAMTL1N0YXJ0Q29tIENsYXNzIDIgUHJpbWFyeSBJbnRlcm1lZGlhdGUg
+# T2JqZWN0IENBMB4XDTExMTIwMzE1MzQxOVoXDTEzMTIwMzE0NTgwN1owgYwxIDAe
+# BgNVBA0TFzU4MTc5Ni1HaDd4Zkp4a3hRU0lPNEUwMQswCQYDVQQGEwJERTEPMA0G
+# A1UECBMGQmVybGluMQ8wDQYDVQQHEwZCZXJsaW4xFjAUBgNVBAMTDUphbm5pcyBM
+# ZWlkZWwxITAfBgkqhkiG9w0BCQEWEmphbm5pc0BsZWlkZWwuaW5mbzCCAiIwDQYJ
+# KoZIhvcNAQEBBQADggIPADCCAgoCggIBAMcPeABYdN7nPq/AkZ/EkyUBGx/l2Yui
+# Lfm8ZdLG0ulMb/kQL3fRY7sUjYPyn9S6PhqqlFnNoGHJvbbReCdUC9SIQYmOEjEA
+# raHfb7MZU10NjO4U2DdGucj2zuO5tYxKizizOJF0e4yRQZVxpUGdvkW/+GLjCNK5
+# L7mIv3Z1dagxDKHYZT74HXiS4VFUwHF1k36CwfM2vsetdm46bdgSwV+BCMmZICYT
+# IJAS9UQHD7kP4rik3bFWjUx08NtYYFAVOd/HwBnemUmJe4j3IhZHr0k1+eDG8hDH
+# KVvPgLJIoEjC4iMFk5GWsg5z2ngk0LLu3JZMtckHsnnmBPHQK8a3opUNd8hdMNJx
+# gOwKjQt2JZSGUdIEFCKVDqj0FmdnDMPfwy+FNRtpBMl1sz78dUFhSrnM0D8NXrqa
+# 4rG+2FoOXlmm1rb6AFtpjAKksHRpYcPk2DPGWp/1sWB+dUQkS3gOmwFzyqeTuXpT
+# 0juqd3iAxOGx1VRFQ1VHLLf3AzV4wljBau26I+tu7iXxesVucSdsdQu293jwc2kN
+# xK2JyHCoZH+RyytrwS0qw8t7rMOukU9gwP8mn3X6mgWlVUODMcHTULjSiCEtvyZ/
+# aafcwjUbt4ReEcnmuZtWIha86MTCX7U7e+cnpWG4sIHPnvVTaz9rm8RyBkIxtFCB
+# nQ3FnoQgyxeJAgMBAAGjggOdMIIDmTAJBgNVHRMEAjAAMA4GA1UdDwEB/wQEAwIH
+# gDAuBgNVHSUBAf8EJDAiBggrBgEFBQcDAwYKKwYBBAGCNwIBFQYKKwYBBAGCNwoD
+# DTAdBgNVHQ4EFgQUWyCgrIWo8Ifvvm1/YTQIeMU9nc8wHwYDVR0jBBgwFoAU0E4P
+# QJlsuEsZbzsouODjiAc0qrcwggIhBgNVHSAEggIYMIICFDCCAhAGCysGAQQBgbU3
+# AQICMIIB/zAuBggrBgEFBQcCARYiaHR0cDovL3d3dy5zdGFydHNzbC5jb20vcG9s
+# aWN5LnBkZjA0BggrBgEFBQcCARYoaHR0cDovL3d3dy5zdGFydHNzbC5jb20vaW50
+# ZXJtZWRpYXRlLnBkZjCB9wYIKwYBBQUHAgIwgeowJxYgU3RhcnRDb20gQ2VydGlm
+# aWNhdGlvbiBBdXRob3JpdHkwAwIBARqBvlRoaXMgY2VydGlmaWNhdGUgd2FzIGlz
+# c3VlZCBhY2NvcmRpbmcgdG8gdGhlIENsYXNzIDIgVmFsaWRhdGlvbiByZXF1aXJl
+# bWVudHMgb2YgdGhlIFN0YXJ0Q29tIENBIHBvbGljeSwgcmVsaWFuY2Ugb25seSBm
+# b3IgdGhlIGludGVuZGVkIHB1cnBvc2UgaW4gY29tcGxpYW5jZSBvZiB0aGUgcmVs
+# eWluZyBwYXJ0eSBvYmxpZ2F0aW9ucy4wgZwGCCsGAQUFBwICMIGPMCcWIFN0YXJ0
+# Q29tIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MAMCAQIaZExpYWJpbGl0eSBhbmQg
+# d2FycmFudGllcyBhcmUgbGltaXRlZCEgU2VlIHNlY3Rpb24gIkxlZ2FsIGFuZCBM
+# aW1pdGF0aW9ucyIgb2YgdGhlIFN0YXJ0Q29tIENBIHBvbGljeS4wNgYDVR0fBC8w
+# LTAroCmgJ4YlaHR0cDovL2NybC5zdGFydHNzbC5jb20vY3J0YzItY3JsLmNybDCB
+# iQYIKwYBBQUHAQEEfTB7MDcGCCsGAQUFBzABhitodHRwOi8vb2NzcC5zdGFydHNz
+# bC5jb20vc3ViL2NsYXNzMi9jb2RlL2NhMEAGCCsGAQUFBzAChjRodHRwOi8vYWlh
+# LnN0YXJ0c3NsLmNvbS9jZXJ0cy9zdWIuY2xhc3MyLmNvZGUuY2EuY3J0MCMGA1Ud
+# EgQcMBqGGGh0dHA6Ly93d3cuc3RhcnRzc2wuY29tLzANBgkqhkiG9w0BAQUFAAOC
+# AQEAhrzEV6zwoEtKjnFRhCsjwiPykVpo5Eiye77Ve801rQDiRKgSCCiW6g3HqedL
+# OtaSs65Sj2pm3Viea4KR0TECLcbCTgsdaHqw2x1yXwWBQWZEaV6EB05lIwfr94P1
+# SFpV43zkuc+bbmA3+CRK45LOcCNH5Tqq7VGTCAK5iM7tvHwFlbQRl+I6VEL2mjpF
+# NsuRjDOVrv/9qw/a22YJ9R7Y1D0vUSs3IqZx2KMUaYDP7H2mSRxJO2nADQZBtriF
+# gTyfD3lYV12MlIi5CQwe3QC6DrrfSMP33i5Wa/OFJiQ27WPxmScYVhiqozpImFT4
+# PU9goiBv9RKXdgTmZE1PN0NQ5jGCAzUwggMxAgEBMIGTMIGMMQswCQYDVQQGEwJJ
+# TDEWMBQGA1UEChMNU3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0
+# YWwgQ2VydGlmaWNhdGUgU2lnbmluZzE4MDYGA1UEAxMvU3RhcnRDb20gQ2xhc3Mg
+# MiBQcmltYXJ5IEludGVybWVkaWF0ZSBPYmplY3QgQ0ECAgS4MAkGBSsOAwIaBQCg
+# eDAYBgorBgEEAYI3AgEMMQowCKACgAChAoAAMBkGCSqGSIb3DQEJAzEMBgorBgEE
+# AYI3AgEEMBwGCisGAQQBgjcCAQsxDjAMBgorBgEEAYI3AgEVMCMGCSqGSIb3DQEJ
+# BDEWBBRVGw0FDSiaIi38dWteRUAg/9Pr6DANBgkqhkiG9w0BAQEFAASCAgCInvOZ
+# FdaNFzbf6trmFDZKMojyx3UjKMCqNjHVBbuKY0qXwFC/ElYDV1ShJ2CBZbdurydO
+# OQ6cIQ0KREOCwmX/xB49IlLHHUxNhEkVv7HGU3EKAFf9IBt9Yr7jikiR9cjIsfHK
+# 4cjkoKJL7g28yEpLLkHt1eo37f1Ga9lDWEa5Zq3U5yX+IwXhrUBm1h8Xr033FhTR
+# VEpuSz6LHtbrL/zgJnCzJ2ahjtJoYevdcWiNXffosJHFaSfYDDbiNsPRDH/1avmb
+# 5j/7BhP8BcBaR6Fp8tFbNGIcWHHGcjqLMnTc4w13b7b4pDhypqElBa4+lCmwdvv9
+# GydYtRgPz8GHeoBoKj30YBlMzRIfFYaIFGIC4Ai3UEXkuH9TxYohVbGm/W0Kl4Lb
+# RJ1FwiVcLcTOJdgNId2vQvKc+jtNrjcg5SP9h2v/C4aTx8tyc6tE3TOPh2f9b8DL
+# S+SbVArJpuJqrPTxDDoO1QNjTgLcdVYeZDE+r/NjaGZ6cMSd8db3EaG3ijD/0bud
+# SItbm/OlNVbQOFRR76D+ZNgPcU5iNZ3bmvQQIg6aSB9MHUpIE/SeCkNl9YeVk1/1
+# GFULgNMRmIYP4KLvu9ylh5Gu3hvD5VNhH6+FlXANwFy07uXks5uF8mfZVxVCnodG
+# xkNCx+6PsrA5Z7WP4pXcmYnMn97npP/Q9EHJWw==
+# SIG # End signature block
diff --git a/bin/activate_this.py b/bin/activate_this.py
new file mode 100644
index 0000000..444d3fd
--- /dev/null
+++ b/bin/activate_this.py
@@ -0,0 +1,36 @@
+"""By using execfile(this_file, dict(__file__=this_file)) you will
+activate this virtualenv environment.
+
+This can be used when you must use an existing Python interpreter, not
+the virtualenv bin/python
+"""
+
+try:
+    __file__
+except NameError:
+    raise AssertionError(
+        "You must run this like execfile('path/to/activate_this.py', dict(__file__='path/to/activate_this.py'))"
+    )
+import os
+import site
+import sys
+
+old_os_path = os.environ.get("PATH", "")
+os.environ["PATH"] = os.path.dirname(os.path.abspath(__file__)) + os.pathsep + old_os_path
+base = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
+if sys.platform == "win32":
+    site_packages = os.path.join(base, "Lib", "site-packages")
+else:
+    site_packages = os.path.join(base, "lib", "python%s" % sys.version[:3], "site-packages")
+prev_sys_path = list(sys.path)
+
+site.addsitedir(site_packages)
+sys.real_prefix = sys.prefix
+sys.prefix = base
+# Move the added items to the front of the path:
+new_sys_path = []
+for item in list(sys.path):
+    if item not in prev_sys_path:
+        new_sys_path.append(item)
+        sys.path.remove(item)
+sys.path[:0] = new_sys_path
diff --git a/bin/easy_install b/bin/easy_install
new file mode 100755
index 0000000..c8c6fa0
--- /dev/null
+++ b/bin/easy_install
@@ -0,0 +1,11 @@
+#!/home/reverend/Programmierung/git_projects/Chaos-Familien-Duell/bin/python
+
+# -*- coding: utf-8 -*-
+import re
+import sys
+
+from setuptools.command.easy_install import main
+
+if __name__ == '__main__':
+    sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
+    sys.exit(main())
diff --git a/bin/easy_install-3.7 b/bin/easy_install-3.7
new file mode 100755
index 0000000..c8c6fa0
--- /dev/null
+++ b/bin/easy_install-3.7
@@ -0,0 +1,11 @@
+#!/home/reverend/Programmierung/git_projects/Chaos-Familien-Duell/bin/python
+
+# -*- coding: utf-8 -*-
+import re
+import sys
+
+from setuptools.command.easy_install import main
+
+if __name__ == '__main__':
+    sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
+    sys.exit(main())
diff --git a/bin/pip b/bin/pip
new file mode 100755
index 0000000..2a64bcf
--- /dev/null
+++ b/bin/pip
@@ -0,0 +1,11 @@
+#!/home/reverend/Programmierung/git_projects/Chaos-Familien-Duell/bin/python
+
+# -*- coding: utf-8 -*-
+import re
+import sys
+
+from pip._internal import main
+
+if __name__ == '__main__':
+    sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
+    sys.exit(main())
diff --git a/bin/pip3 b/bin/pip3
new file mode 100755
index 0000000..2a64bcf
--- /dev/null
+++ b/bin/pip3
@@ -0,0 +1,11 @@
+#!/home/reverend/Programmierung/git_projects/Chaos-Familien-Duell/bin/python
+
+# -*- coding: utf-8 -*-
+import re
+import sys
+
+from pip._internal import main
+
+if __name__ == '__main__':
+    sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
+    sys.exit(main())
diff --git a/bin/pip3.7 b/bin/pip3.7
new file mode 100755
index 0000000..2a64bcf
--- /dev/null
+++ b/bin/pip3.7
@@ -0,0 +1,11 @@
+#!/home/reverend/Programmierung/git_projects/Chaos-Familien-Duell/bin/python
+
+# -*- coding: utf-8 -*-
+import re
+import sys
+
+from pip._internal import main
+
+if __name__ == '__main__':
+    sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
+    sys.exit(main())
diff --git a/bin/python b/bin/python
new file mode 100755
index 0000000000000000000000000000000000000000..7ab007825217cbd41a7585b32e45c766699fecac
GIT binary patch
literal 14120
zcmeHOYiu0V6~1f7#A)KSNn>hAL<UrlBgK<l=YgRz?D~<6!3lxJDH4Ry+B>$l*t>Lh
zwzX3vq8ca*aX?koA{0f4N+=*e2!s^16-qDyet?u90j|=jRzfPb1(B+4N~!SloSF04
zlZhkoBR?wj-e~5#=keXgnLBqqnKKV|_in9<#S}`lx>>Q5Xb3bZF*GNoLXc8zYB`;o
z)VI`SBroxGfjt!fS%WfMbw1XLzM7DEhs7SnHR1=v2pO4ov9fb%U;!$b2lHy!BytpA
zmkxli&-Z6AnTp|`=W$v@V3^0TnQjRjrrXcQHko%y5Ih!{H!HkZ;Q^1!IDv>K$Api!
zq`fG1k&O$GeYxyB<7T<O#9-+{Tpy?v5WG8x$K(9E1!2Ea`ny<Mnq~YznXcL}lI!2H
zX~RgiWh9p`kF|`oZE4xE$t)GjR)5~yKKpLl(dQ3|*B3&|V_roE>)3wk(F0e$bL)#o
zfBf>{#>akCdg0t-Gar1DY`k>14W8GdcU)6rI1e?;a#D!%GO}^`1|7@&no=tW>!cor
zxCr%xJid+nCqH}Xw$n#DyFdK&zGa;s{q6^Mt@+LApFME${nLl)R-HOjchfJI-}m6t
z4}{x@)~_dp5ml00reozI`k#`{SVaE|(k<rSaS{JP(qFqsJ4Z>kk|KfqVuSd+LwGqy
z#RwEwH?NV{Kv$z773gvPwdhqu|5sn%c!B?)MBfzg|A_SdcrK?36(<1oD?-*kBYJ-?
zAl+~2FnD#Os1hnap*s5;vT%7#_=VQt{p0R%A-~bQVU*Wj(o85;y2C{$lVwdp**&|q
z+gYdR4CP9$Q{1(^bEJ@Wc4hiUoWQoIg<2V4{uX8117jI`FqhAa<n|K9W|LiVGey@P
z&E)c=85%9*MPn;_=eXUM&y8&lY`*tEsmv|pl<j0QZiXlf0fh!}JJqteyj?CiS#-b@
zVz@-fv$DTb68~+zJsq8PtJ!L94#H3+;iyuvMgH-96jS$*5AOT&RXMtKs?@)Phy4)u
zl_A$<M)o`Ck4po!selMQ<m0yldcHofpz5EeLwbyr4KpD<?*}NeAwAYA+s=mcSTn5u
zBBY;R8*I=;M?gnFM?gnFM?gnFN8o=v0)MZ+`b%r#(^~8CniKT5yY=u<x5_(iO}te*
z<&WIE?oCn;n)PcR@@4i<e%4btaj#W5Wlel?cIU3%$(r5tr<XNZ_eXNECfncjs5I^+
z-anos@p*1{vgTQa8^3THsjJ;wr>>THGxcltal=!B<Uj8FZ!R*do3oD1Ra=#_*0I@J
ztk~Pui8*%_HLzJ4sP$$B>(_QI@Ogau+S#ni8~dz@_LW?<Drej}>+$w0NbnjJoo5GV
zjBnShplWQ-)WZCx1{dn}Yg3Bb`|}X_%J^7Lf3K(Vae8-8<y^WiUHK|a5x8zYJs|g4
zlP!$j?Ok_<V>&c@XwLJjV_#LfS0_&f<Ls?`*;_f+Rrx&at@^z+F%`3J{6qOK9PhjL
zr0+@ZN#C2c!(-t7_)0MP*J=LBkWv>N0UZGy0UZGy0UZGy0UZGy0UZGy0UZGyfv*{X
z7`>B;t*-t~Gx_s-k2PmKkKfy@C#1(}wf=9O=Mo+y<acHK9+gXM@0}_()(~60VrlJ@
z^z_gAHFV5;?s@#gt-6-_Z*Ew>iH;+r55FhjwtMM#h5GT|(QS=4JW<shZ#q!j9XBSI
zbjO?b*I4nyBbQn6wuz<N;;DSREges!<INp$qa)tb5pU>-*ZS|5eopO7Q#;}JGo;c*
zM?gnFM?gnFM?gnFM?gnFM?gnFN8tY=0?4OB{v2}Su8`S7=4U-Fkb#`j>KDnsLw@UF
z$<w=1%*f+gEi&@+t`ZsfeEe+41@?c=c?DmVBs@I3C8UC9#izv1`L<lDWq`=NZ3@(?
zQ4oN<-7#qh{UT2rdA#5Q!T*mJjE}nWsq`Y(AMah#9=#FvWyFgfKYe+V*#9lE3?I#2
zGDJT3rD_oQl-oKxZ!(%GOM0ErM%kW8qcxFiOSElFszoiyWa|w|nWf>9TXZx1%FN{{
z-}QcF<_oT4raO9C+{}<jL;14VU(QhqcP^_;mWDH>VP$5=^QH080Nr9>`Jq!R<qG-p
z1e<I{XC%V}?uhbKP1hNtv!CW_77Ko!tLY5egT>6KV-IJE0V!bEnPM?B9xza+<}#zX
z0qUzjZ3S&m=BqLX3ZtV=-n}Ft=Jm>J1-Ymf``!VaVO>E+emeNk{C)$Dg8Y9u;c^WL
zd{2P?iBy2!4m(pl%IE*XIY(<6{90Mq!2QC<eT@4J&E8BEjsf_%ujf%F%(o9$!N+~M
zm2})C_}C|a*cZsfFVXnzAT8gs;Nw08UMoC|AAZ2Q$<BKKWb6Y#L-^70i&}l3DjZYr
zu`dC!FQNbF{CO4foMd}hNUWCq8T&7}_$7M%_L4TtM_xPd;Yh%wS!qqFeGxu>2Y~o}
z03q7{Bf_8m=D-k7!KgoE-~r(yeoMd;q_ms!3V2W+qzX?F{Dcu$fQJKd{*3rT@f=n7
zdk*a9_}#;IEKz^Rz*mV|AL8S8ai)coRNxm#3o`U?kb$o~`p5o{?}YF@5Y`8HxQ_fi
z2G1Y-Ba**<WCJOwSOLtR!3VxamM~wX#5EBh`Vs8~^Z9@b+!p%B_a6<yM?c_4mZSQZ
f46GA(xGC^?e+n1y!-&4aeqGYwOjt>E@Sy%LK(RKk

literal 0
HcmV?d00001

diff --git a/bin/python-config b/bin/python-config
new file mode 100755
index 0000000..5c69bcf
--- /dev/null
+++ b/bin/python-config
@@ -0,0 +1,78 @@
+#!/home/reverend/Programmierung/git_projects/Chaos-Familien-Duell/bin/python
+
+import sys
+import getopt
+import sysconfig
+
+valid_opts = ['prefix', 'exec-prefix', 'includes', 'libs', 'cflags',
+              'ldflags', 'help']
+
+if sys.version_info >= (3, 2):
+    valid_opts.insert(-1, 'extension-suffix')
+    valid_opts.append('abiflags')
+if sys.version_info >= (3, 3):
+    valid_opts.append('configdir')
+
+
+def exit_with_usage(code=1):
+    sys.stderr.write("Usage: {0} [{1}]\n".format(
+        sys.argv[0], '|'.join('--'+opt for opt in valid_opts)))
+    sys.exit(code)
+
+try:
+    opts, args = getopt.getopt(sys.argv[1:], '', valid_opts)
+except getopt.error:
+    exit_with_usage()
+
+if not opts:
+    exit_with_usage()
+
+pyver = sysconfig.get_config_var('VERSION')
+getvar = sysconfig.get_config_var
+
+opt_flags = [flag for (flag, val) in opts]
+
+if '--help' in opt_flags:
+    exit_with_usage(code=0)
+
+for opt in opt_flags:
+    if opt == '--prefix':
+        print(sysconfig.get_config_var('prefix'))
+
+    elif opt == '--exec-prefix':
+        print(sysconfig.get_config_var('exec_prefix'))
+
+    elif opt in ('--includes', '--cflags'):
+        flags = ['-I' + sysconfig.get_path('include'),
+                 '-I' + sysconfig.get_path('platinclude')]
+        if opt == '--cflags':
+            flags.extend(getvar('CFLAGS').split())
+        print(' '.join(flags))
+
+    elif opt in ('--libs', '--ldflags'):
+        abiflags = getattr(sys, 'abiflags', '')
+        libs = ['-lpython' + pyver + abiflags]
+        libs += getvar('LIBS').split()
+        libs += getvar('SYSLIBS').split()
+        # add the prefix/lib/pythonX.Y/config dir, but only if there is no
+        # shared library in prefix/lib/.
+        if opt == '--ldflags':
+            if not getvar('Py_ENABLE_SHARED'):
+                libs.insert(0, '-L' + getvar('LIBPL'))
+            if not getvar('PYTHONFRAMEWORK'):
+                libs.extend(getvar('LINKFORSHARED').split())
+        print(' '.join(libs))
+
+    elif opt == '--extension-suffix':
+        ext_suffix = sysconfig.get_config_var('EXT_SUFFIX')
+        if ext_suffix is None:
+            ext_suffix = sysconfig.get_config_var('SO')
+        print(ext_suffix)
+
+    elif opt == '--abiflags':
+        if not getattr(sys, 'abiflags', None):
+            exit_with_usage()
+        print(sys.abiflags)
+
+    elif opt == '--configdir':
+        print(sysconfig.get_config_var('LIBPL'))
diff --git a/bin/python3 b/bin/python3
new file mode 120000
index 0000000..d8654aa
--- /dev/null
+++ b/bin/python3
@@ -0,0 +1 @@
+python
\ No newline at end of file
diff --git a/bin/python3.7 b/bin/python3.7
new file mode 120000
index 0000000..d8654aa
--- /dev/null
+++ b/bin/python3.7
@@ -0,0 +1 @@
+python
\ No newline at end of file
diff --git a/bin/wheel b/bin/wheel
new file mode 100755
index 0000000..3beae37
--- /dev/null
+++ b/bin/wheel
@@ -0,0 +1,11 @@
+#!/home/reverend/Programmierung/git_projects/Chaos-Familien-Duell/bin/python
+
+# -*- coding: utf-8 -*-
+import re
+import sys
+
+from wheel.cli import main
+
+if __name__ == '__main__':
+    sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
+    sys.exit(main())
diff --git a/frontend/current_round.json b/frontend/current_round.json
deleted file mode 100644
index 45efc1b..0000000
--- a/frontend/current_round.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
-    "state": "player_select",
-    "points": 0,
-    "current_teams": [
-        "warpzone",
-        "warpzone"
-    ],
-    "current_team_logos": [
-        "halo/i/bims/1/pfad",
-        "halo/i/bims/1/pfad"
-    ],
-    "current_team_points": [
-        0,
-        0
-    ],
-    "current_team_fails": [
-        0,
-        0
-    ],
-    "answer_amount": 0,
-    "question": "",
-    "answers": []
-}
\ No newline at end of file
diff --git a/include/python3.7m b/include/python3.7m
new file mode 120000
index 0000000..4fe7f6c
--- /dev/null
+++ b/include/python3.7m
@@ -0,0 +1 @@
+/usr/include/python3.7m
\ No newline at end of file
diff --git a/cfd.sqlite b/src/cfd.sqlite
similarity index 99%
rename from cfd.sqlite
rename to src/cfd.sqlite
index b99013f4cec0de4162665847d0f0bd4f87fbf532..982bdad438b200029529408c0f55b04650c7ced3 100644
GIT binary patch
delta 250
zcmZoTz}j$tb%HeG&WSS4tUDR>46HV$EXWt(;9JhXf0BO*e>r~$zXm@i-#xzNn-vZE
z`OHl@*ljgsIXF0yGV>CPDiyLbOOi8E^K9(O6N?I}^7B$r#bKhG@71X>vT^VSFz^R#
z=4f!^mz80*WkgkrFoR=qZvS+k>WK{e6E|~AXy+FeV%9`c%`th&`~(pW{+SH?=lI|8
wU*|u-|CE0-|1$oWK!-N+^YSpuGQw=<*t~3gH6IKAZU(oB6P-4v@0+<00FsqcjsO4v

delta 140
zcmZoTz}j$tb%HeG`iU~mtm_%{bOJV}EXWsP=ex(if0BO*e>r~$zXm@i-@VO>1}FG7
z->Xw&WMSveW!TKs;Ko03f&Api^J0^m`x}9ROMrqC+JS<ilV`5ynY>|sh!8vfG6w#0
q{O|a$^B>@U%D<U^8PJ#s{2=+wo7U&^O<dr>!oQorZFB0r*$V+BgEIO6

diff --git a/data/questions_35c3.json b/src/data/questions_35c3.json
similarity index 100%
rename from data/questions_35c3.json
rename to src/data/questions_35c3.json
diff --git a/frontend/ChaosWest.png b/src/frontend/ChaosWest.png
similarity index 100%
rename from frontend/ChaosWest.png
rename to src/frontend/ChaosWest.png
diff --git a/frontend/ChaosWest.svg b/src/frontend/ChaosWest.svg
similarity index 100%
rename from frontend/ChaosWest.svg
rename to src/frontend/ChaosWest.svg
diff --git a/frontend/PermanentMarker-Regular.ttf b/src/frontend/PermanentMarker-Regular.ttf
similarity index 100%
rename from frontend/PermanentMarker-Regular.ttf
rename to src/frontend/PermanentMarker-Regular.ttf
diff --git a/frontend/PressStart2P-Regular.ttf b/src/frontend/PressStart2P-Regular.ttf
similarity index 100%
rename from frontend/PressStart2P-Regular.ttf
rename to src/frontend/PressStart2P-Regular.ttf
diff --git a/frontend/audio/Familien Duell Intromusik-ZIjs-VVh8l8.m4a b/src/frontend/audio/Familien Duell Intromusik-ZIjs-VVh8l8.m4a
similarity index 100%
rename from frontend/audio/Familien Duell Intromusik-ZIjs-VVh8l8.m4a
rename to src/frontend/audio/Familien Duell Intromusik-ZIjs-VVh8l8.m4a
diff --git a/frontend/audio/failure.mp3 b/src/frontend/audio/failure.mp3
similarity index 100%
rename from frontend/audio/failure.mp3
rename to src/frontend/audio/failure.mp3
diff --git a/frontend/audio/frage.mp3 b/src/frontend/audio/frage.mp3
similarity index 100%
rename from frontend/audio/frage.mp3
rename to src/frontend/audio/frage.mp3
diff --git a/frontend/audio/intro.mp3 b/src/frontend/audio/intro.mp3
similarity index 100%
rename from frontend/audio/intro.mp3
rename to src/frontend/audio/intro.mp3
diff --git a/frontend/chaos_west_text.jpg b/src/frontend/chaos_west_text.jpg
similarity index 100%
rename from frontend/chaos_west_text.jpg
rename to src/frontend/chaos_west_text.jpg
diff --git a/src/frontend/current_round.json b/src/frontend/current_round.json
new file mode 100644
index 0000000..8c22bf0
--- /dev/null
+++ b/src/frontend/current_round.json
@@ -0,0 +1,49 @@
+{
+    "state": "player_select",
+    "points": 0,
+    "current_teams": [
+        "warpzone",
+        "binary kitchen"
+    ],
+    "current_team_logos": [
+        "halo/i/bims/1/pfad",
+        "static/teamlogos/binary kitchen.png"
+    ],
+    "current_team_points": [
+        0,
+        0
+    ],
+    "current_team_fails": [
+        0,
+        0
+    ],
+    "answer_amount": 5,
+    "question": "Nenne eine Shell:",
+    "answers": [
+        {
+            "answer": "bash",
+            "numberOfPeople": 556,
+            "visible": false
+        },
+        {
+            "answer": "zsh",
+            "numberOfPeople": 493,
+            "visible": false
+        },
+        {
+            "answer": "fish",
+            "numberOfPeople": 99,
+            "visible": false
+        },
+        {
+            "answer": "powershell",
+            "numberOfPeople": 29,
+            "visible": false
+        },
+        {
+            "answer": "ksh",
+            "numberOfPeople": 23,
+            "visible": false
+        }
+    ]
+}
\ No newline at end of file
diff --git a/frontend/live.py b/src/frontend/live.py
similarity index 100%
rename from frontend/live.py
rename to src/frontend/live.py
diff --git a/frontend/start.py b/src/frontend/start.py
similarity index 100%
rename from frontend/start.py
rename to src/frontend/start.py
diff --git a/frontend/watterott.png b/src/frontend/watterott.png
similarity index 100%
rename from frontend/watterott.png
rename to src/frontend/watterott.png
diff --git a/model/__init__.py b/src/model/__init__.py
similarity index 100%
rename from model/__init__.py
rename to src/model/__init__.py
diff --git a/model/game.py b/src/model/game.py
similarity index 100%
rename from model/game.py
rename to src/model/game.py
diff --git a/model/question.py b/src/model/question.py
similarity index 100%
rename from model/question.py
rename to src/model/question.py
diff --git a/model/team.py b/src/model/team.py
similarity index 100%
rename from model/team.py
rename to src/model/team.py
diff --git a/rest/__init__.py b/src/rest/__init__.py
similarity index 100%
rename from rest/__init__.py
rename to src/rest/__init__.py
diff --git a/rest/game/__init__.py b/src/rest/game/__init__.py
similarity index 100%
rename from rest/game/__init__.py
rename to src/rest/game/__init__.py
diff --git a/rest/game/game.py b/src/rest/game/game.py
similarity index 100%
rename from rest/game/game.py
rename to src/rest/game/game.py
diff --git a/rest/team/__init__.py b/src/rest/team/__init__.py
similarity index 100%
rename from rest/team/__init__.py
rename to src/rest/team/__init__.py
diff --git a/rest/team/team.py b/src/rest/team/team.py
similarity index 100%
rename from rest/team/team.py
rename to src/rest/team/team.py
diff --git a/start.py b/src/start.py
similarity index 100%
rename from start.py
rename to src/start.py
diff --git a/static/PressStart2P-Regular.ttf b/src/static/PressStart2P-Regular.ttf
similarity index 100%
rename from static/PressStart2P-Regular.ttf
rename to src/static/PressStart2P-Regular.ttf
diff --git a/static/chaos_west_text.jpg b/src/static/chaos_west_text.jpg
similarity index 100%
rename from static/chaos_west_text.jpg
rename to src/static/chaos_west_text.jpg
diff --git a/static/questions_35c3.json b/src/static/questions_35c3.json
similarity index 100%
rename from static/questions_35c3.json
rename to src/static/questions_35c3.json
diff --git a/static/questions_hip_2019.json b/src/static/questions_hip_2019.json
similarity index 100%
rename from static/questions_hip_2019.json
rename to src/static/questions_hip_2019.json
diff --git a/static/teamlogos/0_no_logo_00.png b/src/static/teamlogos/0_no_logo_00.png
similarity index 100%
rename from static/teamlogos/0_no_logo_00.png
rename to src/static/teamlogos/0_no_logo_00.png
diff --git a/static/teamlogos/0_no_logo_01.png b/src/static/teamlogos/0_no_logo_01.png
similarity index 100%
rename from static/teamlogos/0_no_logo_01.png
rename to src/static/teamlogos/0_no_logo_01.png
diff --git a/static/teamlogos/0_no_logo_02.png b/src/static/teamlogos/0_no_logo_02.png
similarity index 100%
rename from static/teamlogos/0_no_logo_02.png
rename to src/static/teamlogos/0_no_logo_02.png
diff --git a/static/teamlogos/binary kitchen.png b/src/static/teamlogos/binary kitchen.png
similarity index 100%
rename from static/teamlogos/binary kitchen.png
rename to src/static/teamlogos/binary kitchen.png
diff --git a/static/teamlogos/entropia.png b/src/static/teamlogos/entropia.png
similarity index 100%
rename from static/teamlogos/entropia.png
rename to src/static/teamlogos/entropia.png
diff --git a/static/teamlogos/warpzone.png b/src/static/teamlogos/warpzone.png
similarity index 100%
rename from static/teamlogos/warpzone.png
rename to src/static/teamlogos/warpzone.png
diff --git a/templates/frontend.jinja b/src/templates/frontend.jinja
similarity index 100%
rename from templates/frontend.jinja
rename to src/templates/frontend.jinja
diff --git a/templates/game.jinja b/src/templates/game.jinja
similarity index 100%
rename from templates/game.jinja
rename to src/templates/game.jinja
diff --git a/templates/layout.jinja b/src/templates/layout.jinja
similarity index 100%
rename from templates/layout.jinja
rename to src/templates/layout.jinja
diff --git a/templates/management.jinja b/src/templates/management.jinja
similarity index 100%
rename from templates/management.jinja
rename to src/templates/management.jinja
diff --git a/utils/__init__.py b/src/utils/__init__.py
similarity index 100%
rename from utils/__init__.py
rename to src/utils/__init__.py
diff --git a/utils/errorlog.py b/src/utils/errorlog.py
similarity index 100%
rename from utils/errorlog.py
rename to src/utils/errorlog.py
diff --git a/views/__init__.py b/src/views/__init__.py
similarity index 100%
rename from views/__init__.py
rename to src/views/__init__.py
diff --git a/views/game.py b/src/views/game.py
similarity index 100%
rename from views/game.py
rename to src/views/game.py
diff --git a/views/management.py b/src/views/management.py
similarity index 100%
rename from views/management.py
rename to src/views/management.py
-- 
GitLab