portacode 1.4.16.dev3__tar.gz → 1.4.16.dev5__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/PKG-INFO +1 -1
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/portacode/_version.py +2 -2
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/portacode/connection/handlers/WEBSOCKET_PROTOCOL.md +18 -12
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/portacode/connection/handlers/proxmox_infra.py +84 -10
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/portacode.egg-info/PKG-INFO +1 -1
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/.claude/agents/communication-manager.md +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/.claude/settings.local.json +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/.gitignore +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/.gitmodules +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/LICENSE +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/MANIFEST.in +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/Makefile +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/README.md +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/backup.sh +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/connect.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/connect.sh +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/docker-compose.yaml +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/docs/images/device-transfer-button.png +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/docs/images/device-transfer-modal.png +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/docs/images/pair-device-button.png +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/docs/images/pairing-request.png +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/docs/images/student-workspace.png +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/README.md +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/simple_device/Dockerfile +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/simple_device/README.md +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/simple_device/data/device-01/.local/share/portacode/keys/id_portacode +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/simple_device/data/device-01/.local/share/portacode/keys/id_portacode.pub +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/simple_device/docker-compose.yaml +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/Dockerfile +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/README.md +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-01/.local/share/portacode/keys/id_portacode +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-01/.local/share/portacode/keys/id_portacode.pub +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-01/.local/share/portacode/run/gateway.pid +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-01/workspace/.gitignore +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-01/workspace/README.md +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-01/workspace/db.sqlite3 +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-01/workspace/galactic_bakeshop/__init__.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-01/workspace/galactic_bakeshop/__pycache__/__init__.cpython-311.pyc +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-01/workspace/galactic_bakeshop/__pycache__/settings.cpython-311.pyc +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-01/workspace/galactic_bakeshop/__pycache__/urls.cpython-311.pyc +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-01/workspace/galactic_bakeshop/__pycache__/wsgi.cpython-311.pyc +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-01/workspace/galactic_bakeshop/asgi.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-01/workspace/galactic_bakeshop/settings.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-01/workspace/galactic_bakeshop/urls.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-01/workspace/galactic_bakeshop/wsgi.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-01/workspace/manage.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-01/workspace/requirements.txt +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-01/workspace/templates/treats/home.html +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-01/workspace/treats/__init__.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-01/workspace/treats/__pycache__/__init__.cpython-311.pyc +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-01/workspace/treats/__pycache__/admin.cpython-311.pyc +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-01/workspace/treats/__pycache__/apps.cpython-311.pyc +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-01/workspace/treats/__pycache__/menu.cpython-311.pyc +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-01/workspace/treats/__pycache__/models.cpython-311.pyc +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-01/workspace/treats/__pycache__/urls.cpython-311.pyc +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-01/workspace/treats/__pycache__/views.cpython-311.pyc +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-01/workspace/treats/admin.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-01/workspace/treats/apps.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-01/workspace/treats/menu.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-01/workspace/treats/migrations/__init__.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-01/workspace/treats/migrations/__pycache__/__init__.cpython-311.pyc +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-01/workspace/treats/models.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-01/workspace/treats/tests.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-01/workspace/treats/urls.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-01/workspace/treats/views.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-02/.local/share/portacode/keys/id_portacode +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-02/.local/share/portacode/keys/id_portacode.pub +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-02/workspace/README.md +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-02/workspace/galactic_bakeshop/__init__.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-02/workspace/galactic_bakeshop/asgi.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-02/workspace/galactic_bakeshop/settings.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-02/workspace/galactic_bakeshop/urls.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-02/workspace/galactic_bakeshop/wsgi.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-02/workspace/manage.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-02/workspace/requirements.txt +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-02/workspace/templates/treats/home.html +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-02/workspace/treats/__init__.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-02/workspace/treats/admin.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-02/workspace/treats/apps.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-02/workspace/treats/menu.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-02/workspace/treats/migrations/__init__.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-02/workspace/treats/models.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-02/workspace/treats/tests.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-02/workspace/treats/urls.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-02/workspace/treats/views.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-03/.local/share/portacode/keys/id_portacode +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-03/.local/share/portacode/keys/id_portacode.pub +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-03/workspace/README.md +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-03/workspace/galactic_bakeshop/__init__.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-03/workspace/galactic_bakeshop/asgi.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-03/workspace/galactic_bakeshop/settings.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-03/workspace/galactic_bakeshop/urls.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-03/workspace/galactic_bakeshop/wsgi.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-03/workspace/manage.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-03/workspace/requirements.txt +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-03/workspace/templates/treats/home.html +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-03/workspace/treats/__init__.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-03/workspace/treats/admin.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-03/workspace/treats/apps.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-03/workspace/treats/menu.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-03/workspace/treats/migrations/__init__.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-03/workspace/treats/models.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-03/workspace/treats/tests.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-03/workspace/treats/urls.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-03/workspace/treats/views.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-04/.local/share/portacode/keys/id_portacode +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-04/.local/share/portacode/keys/id_portacode.pub +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-04/workspace/README.md +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-04/workspace/galactic_bakeshop/__init__.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-04/workspace/galactic_bakeshop/asgi.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-04/workspace/galactic_bakeshop/settings.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-04/workspace/galactic_bakeshop/urls.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-04/workspace/galactic_bakeshop/wsgi.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-04/workspace/manage.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-04/workspace/requirements.txt +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-04/workspace/templates/treats/home.html +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-04/workspace/treats/__init__.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-04/workspace/treats/admin.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-04/workspace/treats/apps.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-04/workspace/treats/menu.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-04/workspace/treats/migrations/__init__.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-04/workspace/treats/models.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-04/workspace/treats/tests.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-04/workspace/treats/urls.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-04/workspace/treats/views.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-05/.local/share/portacode/keys/id_portacode +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-05/.local/share/portacode/keys/id_portacode.pub +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-05/workspace/README.md +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-05/workspace/galactic_bakeshop/__init__.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-05/workspace/galactic_bakeshop/asgi.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-05/workspace/galactic_bakeshop/settings.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-05/workspace/galactic_bakeshop/urls.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-05/workspace/galactic_bakeshop/wsgi.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-05/workspace/manage.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-05/workspace/requirements.txt +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-05/workspace/templates/treats/home.html +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-05/workspace/treats/__init__.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-05/workspace/treats/admin.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-05/workspace/treats/apps.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-05/workspace/treats/menu.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-05/workspace/treats/migrations/__init__.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-05/workspace/treats/models.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-05/workspace/treats/tests.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-05/workspace/treats/urls.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-05/workspace/treats/views.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-06/.local/share/portacode/keys/id_portacode +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-06/.local/share/portacode/keys/id_portacode.pub +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-06/workspace/README.md +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-06/workspace/galactic_bakeshop/__init__.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-06/workspace/galactic_bakeshop/asgi.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-06/workspace/galactic_bakeshop/settings.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-06/workspace/galactic_bakeshop/urls.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-06/workspace/galactic_bakeshop/wsgi.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-06/workspace/manage.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-06/workspace/requirements.txt +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-06/workspace/templates/treats/home.html +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-06/workspace/treats/__init__.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-06/workspace/treats/admin.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-06/workspace/treats/apps.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-06/workspace/treats/menu.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-06/workspace/treats/migrations/__init__.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-06/workspace/treats/models.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-06/workspace/treats/tests.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-06/workspace/treats/urls.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-06/workspace/treats/views.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-07/.local/share/portacode/keys/id_portacode +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-07/.local/share/portacode/keys/id_portacode.pub +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-07/workspace/README.md +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-07/workspace/galactic_bakeshop/__init__.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-07/workspace/galactic_bakeshop/asgi.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-07/workspace/galactic_bakeshop/settings.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-07/workspace/galactic_bakeshop/urls.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-07/workspace/galactic_bakeshop/wsgi.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-07/workspace/manage.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-07/workspace/requirements.txt +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-07/workspace/templates/treats/home.html +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-07/workspace/treats/__init__.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-07/workspace/treats/admin.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-07/workspace/treats/apps.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-07/workspace/treats/menu.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-07/workspace/treats/migrations/__init__.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-07/workspace/treats/models.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-07/workspace/treats/tests.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-07/workspace/treats/urls.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-07/workspace/treats/views.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-08/.local/share/portacode/keys/id_portacode +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-08/.local/share/portacode/keys/id_portacode.pub +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-08/workspace/README.md +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-08/workspace/galactic_bakeshop/__init__.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-08/workspace/galactic_bakeshop/asgi.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-08/workspace/galactic_bakeshop/settings.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-08/workspace/galactic_bakeshop/urls.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-08/workspace/galactic_bakeshop/wsgi.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-08/workspace/manage.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-08/workspace/requirements.txt +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-08/workspace/templates/treats/home.html +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-08/workspace/treats/__init__.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-08/workspace/treats/admin.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-08/workspace/treats/apps.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-08/workspace/treats/menu.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-08/workspace/treats/migrations/__init__.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-08/workspace/treats/models.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-08/workspace/treats/tests.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-08/workspace/treats/urls.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-08/workspace/treats/views.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-09/.local/share/portacode/keys/id_portacode +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-09/.local/share/portacode/keys/id_portacode.pub +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-09/workspace/README.md +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-09/workspace/galactic_bakeshop/__init__.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-09/workspace/galactic_bakeshop/asgi.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-09/workspace/galactic_bakeshop/settings.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-09/workspace/galactic_bakeshop/urls.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-09/workspace/galactic_bakeshop/wsgi.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-09/workspace/manage.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-09/workspace/requirements.txt +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-09/workspace/templates/treats/home.html +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-09/workspace/treats/__init__.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-09/workspace/treats/admin.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-09/workspace/treats/apps.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-09/workspace/treats/menu.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-09/workspace/treats/migrations/__init__.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-09/workspace/treats/models.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-09/workspace/treats/tests.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-09/workspace/treats/urls.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-09/workspace/treats/views.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-10/.local/share/portacode/keys/id_portacode +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-10/.local/share/portacode/keys/id_portacode.pub +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-10/workspace/README.md +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-10/workspace/galactic_bakeshop/__init__.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-10/workspace/galactic_bakeshop/asgi.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-10/workspace/galactic_bakeshop/settings.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-10/workspace/galactic_bakeshop/urls.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-10/workspace/galactic_bakeshop/wsgi.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-10/workspace/manage.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-10/workspace/requirements.txt +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-10/workspace/templates/treats/home.html +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-10/workspace/treats/__init__.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-10/workspace/treats/admin.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-10/workspace/treats/apps.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-10/workspace/treats/menu.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-10/workspace/treats/migrations/__init__.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-10/workspace/treats/models.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-10/workspace/treats/tests.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-10/workspace/treats/urls.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/data/student-10/workspace/treats/views.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/docker-compose.yaml +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/initial_content/README.md +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/initial_content/galactic_bakeshop/__init__.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/initial_content/galactic_bakeshop/asgi.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/initial_content/galactic_bakeshop/settings.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/initial_content/galactic_bakeshop/urls.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/initial_content/galactic_bakeshop/wsgi.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/initial_content/manage.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/initial_content/requirements.txt +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/initial_content/templates/treats/home.html +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/initial_content/treats/__init__.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/initial_content/treats/admin.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/initial_content/treats/apps.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/initial_content/treats/menu.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/initial_content/treats/migrations/__init__.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/initial_content/treats/models.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/initial_content/treats/tests.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/initial_content/treats/urls.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/initial_content/treats/views.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/examples/workshop_fleet/instructions/WELCOME.md +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/portacode/README.md +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/portacode/__init__.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/portacode/__main__.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/portacode/cli.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/portacode/connection/README.md +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/portacode/connection/__init__.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/portacode/connection/client.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/portacode/connection/handlers/README.md +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/portacode/connection/handlers/__init__.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/portacode/connection/handlers/base.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/portacode/connection/handlers/chunked_content.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/portacode/connection/handlers/diff_handlers.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/portacode/connection/handlers/file_handlers.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/portacode/connection/handlers/project_aware_file_handlers.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/portacode/connection/handlers/project_state/README.md +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/portacode/connection/handlers/project_state/__init__.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/portacode/connection/handlers/project_state/file_system_watcher.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/portacode/connection/handlers/project_state/git_manager.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/portacode/connection/handlers/project_state/handlers.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/portacode/connection/handlers/project_state/manager.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/portacode/connection/handlers/project_state/models.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/portacode/connection/handlers/project_state/utils.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/portacode/connection/handlers/project_state_handlers.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/portacode/connection/handlers/registry.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/portacode/connection/handlers/session.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/portacode/connection/handlers/system_handlers.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/portacode/connection/handlers/tab_factory.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/portacode/connection/handlers/terminal_handlers.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/portacode/connection/handlers/test_proxmox_infra.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/portacode/connection/handlers/update_handler.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/portacode/connection/multiplex.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/portacode/connection/terminal.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/portacode/data.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/portacode/keypair.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/portacode/link_capture/__init__.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/portacode/link_capture/__pycache__/__init__.cpython-311.pyc +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/portacode/link_capture/bin/__pycache__/link_capture_wrapper.cpython-311.pyc +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/portacode/link_capture/bin/elinks +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/portacode/link_capture/bin/gio-open +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/portacode/link_capture/bin/gnome-open +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/portacode/link_capture/bin/gvfs-open +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/portacode/link_capture/bin/kde-open +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/portacode/link_capture/bin/kfmclient +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/portacode/link_capture/bin/link_capture_exec.sh +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/portacode/link_capture/bin/link_capture_wrapper.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/portacode/link_capture/bin/links +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/portacode/link_capture/bin/links2 +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/portacode/link_capture/bin/lynx +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/portacode/link_capture/bin/mate-open +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/portacode/link_capture/bin/netsurf +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/portacode/link_capture/bin/sensible-browser +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/portacode/link_capture/bin/w3m +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/portacode/link_capture/bin/x-www-browser +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/portacode/link_capture/bin/xdg-open +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/portacode/logging_categories.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/portacode/pairing.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/portacode/service.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/portacode/static/js/test-ntp-clock.html +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/portacode/static/js/utils/ntp-clock.js +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/portacode/utils/NTP_ARCHITECTURE.md +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/portacode/utils/__init__.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/portacode/utils/diff_apply.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/portacode/utils/diff_renderer.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/portacode/utils/ntp_clock.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/portacode.egg-info/SOURCES.txt +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/portacode.egg-info/dependency_links.txt +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/portacode.egg-info/entry_points.txt +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/portacode.egg-info/requires.txt +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/portacode.egg-info/top_level.txt +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/pyproject.toml +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/restore.sh +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/run_tests.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/setup.cfg +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/setup.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/test.sh +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/test_modules/README.md +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/test_modules/__init__.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/test_modules/test_device_online.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/test_modules/test_file_operations.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/test_modules/test_git_status_ui.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/test_modules/test_login_flow.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/test_modules/test_navigate_testing_folder.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/test_modules/test_play_store_screenshots.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/test_modules/test_terminal_buffer_performance.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/test_modules/test_terminal_interaction.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/test_modules/test_terminal_loading_race_condition.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/test_modules/test_terminal_start.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/test_request_id.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/testing_framework/.env.example +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/testing_framework/README.md +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/testing_framework/__init__.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/testing_framework/cli.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/testing_framework/core/__init__.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/testing_framework/core/base_test.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/testing_framework/core/cli_manager.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/testing_framework/core/hierarchical_runner.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/testing_framework/core/playwright_manager.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/testing_framework/core/runner.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/testing_framework/core/shared_cli_manager.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/testing_framework/core/test_discovery.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/testing_framework/requirements.txt +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/todo/UI_UX/opening_a_file_on_desktop_results_in_nothing.md +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/todo/agent_context_management.md +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/todo/django_server_time_sync.md +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/todo/issues/device_performance_degradation.md +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/todo/issues/git_data_not_captured_in_proxmox.md +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/todo/issues/indefinite_resource_loading.md +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/todo/issues/portacode_service_silently_down.md +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/todo/issues/premature_terminal_exit.md +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/todo/issues/project_cpu_hotspots.md +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/todo/issues/terminals_exit_upon_starting.md +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/todo/issues/wrong_item_classification_on_client_side.md +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/todo/smartphone_terminal_input_frustrations.md +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/tools/generate_play_store_assets.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/tools/pairing_tester.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/tools/run_screenshot_suite.sh +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/tools/test_python_ntp_clock.py +0 -0
- {portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/validate.sh +0 -0
|
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
|
|
|
28
28
|
commit_id: COMMIT_ID
|
|
29
29
|
__commit_id__: COMMIT_ID
|
|
30
30
|
|
|
31
|
-
__version__ = version = '1.4.16.
|
|
32
|
-
__version_tuple__ = version_tuple = (1, 4, 16, '
|
|
31
|
+
__version__ = version = '1.4.16.dev5'
|
|
32
|
+
__version_tuple__ = version_tuple = (1, 4, 16, 'dev5')
|
|
33
33
|
|
|
34
34
|
__commit_id__ = commit_id = None
|
{portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/portacode/connection/handlers/WEBSOCKET_PROTOCOL.md
RENAMED
|
@@ -1152,18 +1152,24 @@ Provides system information in response to a `system_info` action. Handled by [`
|
|
|
1152
1152
|
* `cpu_share` (number): vCPU-equivalent share requested at creation.
|
|
1153
1153
|
* `status` (string): Lowercase lifecycle status (e.g., `running`, `stopped`, `deleted`).
|
|
1154
1154
|
* `created_at` (string|null): ISO timestamp recorded when the CT was provisioned.
|
|
1155
|
-
|
|
1156
|
-
|
|
1157
|
-
|
|
1158
|
-
|
|
1159
|
-
|
|
1160
|
-
|
|
1161
|
-
|
|
1162
|
-
|
|
1163
|
-
|
|
1164
|
-
|
|
1165
|
-
|
|
1166
|
-
|
|
1155
|
+
* `managed` (boolean): `true` for Portacode-managed entries.
|
|
1156
|
+
* `unmanaged_containers` (array[object]): Facts about containers Portacode did not provision; fields mirror the managed list but are marked `managed=false`.
|
|
1157
|
+
* `unmanaged_count` (integer): Number of unmanaged containers detected on the node.
|
|
1158
|
+
* `allocated_ram_mib` (integer): Total RAM reserved by both managed and unmanaged containers.
|
|
1159
|
+
* `allocated_disk_gib` (integer): Total disk reserved by both managed and unmanaged containers.
|
|
1160
|
+
* `allocated_cpu_share` (number): Total CPU shares requested by both managed and unmanaged containers.
|
|
1161
|
+
* `available_ram_mib` (integer|null): Remaining RAM after subtracting all reservations from the host total (null when unavailable).
|
|
1162
|
+
* `available_disk_gib` (integer|null): Remaining disk GB after subtracting allocations from the host total.
|
|
1163
|
+
* `available_cpu_share` (number|null): Remaining CPU shares after allocations.
|
|
1164
|
+
* `host_total_ram_mib` (integer|null): Host memory capacity observed via Proxmox.
|
|
1165
|
+
* `host_total_disk_gib` (integer|null): Host disk capacity observed via Proxmox.
|
|
1166
|
+
* `host_total_cpu_cores` (integer|null): Number of CPU cores reported by Proxmox.
|
|
1167
|
+
* `default_storage` (string|null): Storage pool name selected during infrastructure configuration.
|
|
1168
|
+
* `default_storage_snapshot` (object|null): Fresh stats for the default storage pool:
|
|
1169
|
+
* `storage` (string): Storage pool identifier.
|
|
1170
|
+
* `total_gib` (integer|null): Capacity of the storage pool.
|
|
1171
|
+
* `avail_gib` (integer|null): Available space remaining.
|
|
1172
|
+
* `used_gib` (integer|null): Space already consumed.
|
|
1167
1173
|
* `portacode_version` (string): Installed CLI version returned by `portacode.__version__`.
|
|
1168
1174
|
|
|
1169
1175
|
### `proxmox_infra_configured`
|
{portacode-1.4.16.dev3 → portacode-1.4.16.dev5}/portacode/connection/handlers/proxmox_infra.py
RENAMED
|
@@ -259,6 +259,19 @@ def _bytes_to_gib(value: Any) -> int:
|
|
|
259
259
|
return int(round(_normalize_bytes(value) / (1024**3)))
|
|
260
260
|
|
|
261
261
|
|
|
262
|
+
def _normalize_storage_name(name: Any) -> str:
|
|
263
|
+
if not name:
|
|
264
|
+
return ""
|
|
265
|
+
return str(name).strip().lower()
|
|
266
|
+
|
|
267
|
+
|
|
268
|
+
def _parse_bool_flag(value: Any) -> bool:
|
|
269
|
+
if isinstance(value, bool):
|
|
270
|
+
return value
|
|
271
|
+
text = str(value or "").strip().lower()
|
|
272
|
+
return text in {"1", "true", "yes", "on"}
|
|
273
|
+
|
|
274
|
+
|
|
262
275
|
def _parse_iso_timestamp(value: str) -> Optional[datetime]:
|
|
263
276
|
if not value:
|
|
264
277
|
return None
|
|
@@ -464,6 +477,7 @@ def _build_unmanaged_container_entry(ct: Dict[str, Any], cfg: Dict[str, Any], vm
|
|
|
464
477
|
hostname = ct.get("name") or cfg.get("hostname") or f"ct{vmid}"
|
|
465
478
|
storage = cfg.get("storage") or ct.get("storage")
|
|
466
479
|
status = (ct.get("status") or "unknown").lower()
|
|
480
|
+
reserved = _parse_bool_flag(cfg.get("onboot"))
|
|
467
481
|
return {
|
|
468
482
|
"vmid": vmid,
|
|
469
483
|
"hostname": hostname,
|
|
@@ -472,16 +486,44 @@ def _build_unmanaged_container_entry(ct: Dict[str, Any], cfg: Dict[str, Any], vm
|
|
|
472
486
|
"disk_gib": disk_gib,
|
|
473
487
|
"ram_mib": ram_mib,
|
|
474
488
|
"cpu_share": cpu_share,
|
|
489
|
+
"reserve_on_boot": reserved,
|
|
475
490
|
"status": status,
|
|
476
491
|
"managed": False,
|
|
477
492
|
}
|
|
478
493
|
|
|
479
494
|
|
|
495
|
+
def _get_storage_snapshot(proxmox: Any, node: str, storage_name: str | None) -> Dict[str, Any] | None:
|
|
496
|
+
if not storage_name:
|
|
497
|
+
return None
|
|
498
|
+
try:
|
|
499
|
+
storage = proxmox.nodes(node).storage(storage_name).status.get()
|
|
500
|
+
except Exception as exc:
|
|
501
|
+
logger.debug("Unable to read storage status %s:%s: %s", node, storage_name, exc)
|
|
502
|
+
return None
|
|
503
|
+
total_bytes = storage.get("total")
|
|
504
|
+
avail_bytes = storage.get("avail")
|
|
505
|
+
used_bytes = storage.get("used")
|
|
506
|
+
return {
|
|
507
|
+
"storage": storage_name,
|
|
508
|
+
"total_gib": _bytes_to_gib(total_bytes) if total_bytes is not None else None,
|
|
509
|
+
"avail_gib": _bytes_to_gib(avail_bytes) if avail_bytes is not None else None,
|
|
510
|
+
"used_gib": _bytes_to_gib(used_bytes) if used_bytes is not None else None,
|
|
511
|
+
}
|
|
512
|
+
|
|
513
|
+
|
|
514
|
+
|
|
515
|
+
def _storage_matches_default(storage_name: Any, default_storage: str | None) -> bool:
|
|
516
|
+
if not default_storage:
|
|
517
|
+
return True
|
|
518
|
+
return _normalize_storage_name(storage_name) == _normalize_storage_name(default_storage)
|
|
519
|
+
|
|
480
520
|
|
|
481
521
|
def _build_managed_containers_summary(
|
|
482
522
|
records: List[Dict[str, Any]],
|
|
483
523
|
unmanaged_records: List[Dict[str, Any]],
|
|
484
524
|
node_status: Dict[str, Any] | None,
|
|
525
|
+
storage_snapshot: Dict[str, Any] | None,
|
|
526
|
+
default_storage: str | None,
|
|
485
527
|
) -> Dict[str, Any]:
|
|
486
528
|
managed_containers: List[Dict[str, Any]] = []
|
|
487
529
|
total_ram = 0
|
|
@@ -509,18 +551,37 @@ def _build_managed_containers_summary(
|
|
|
509
551
|
"created_at": record.get("created_at"),
|
|
510
552
|
"status": status,
|
|
511
553
|
"managed": True,
|
|
554
|
+
"uses_default_storage": _storage_matches_default(record.get("storage"), default_storage),
|
|
512
555
|
}
|
|
513
556
|
)
|
|
514
557
|
|
|
515
|
-
unmanaged_total_ram = sum(
|
|
516
|
-
|
|
517
|
-
|
|
558
|
+
unmanaged_total_ram = sum(
|
|
559
|
+
_to_int(entry.get("ram_mib"))
|
|
560
|
+
for entry in unmanaged_records
|
|
561
|
+
if entry.get("reserve_on_boot")
|
|
562
|
+
)
|
|
563
|
+
unmanaged_total_disk = sum(
|
|
564
|
+
_to_int(entry.get("disk_gib"))
|
|
565
|
+
for entry in unmanaged_records
|
|
566
|
+
if entry.get("reserve_on_boot")
|
|
567
|
+
and _storage_matches_default(entry.get("storage"), default_storage)
|
|
568
|
+
)
|
|
569
|
+
unmanaged_total_cpu = sum(
|
|
570
|
+
_to_float(entry.get("cpu_share"))
|
|
571
|
+
for entry in unmanaged_records
|
|
572
|
+
if entry.get("reserve_on_boot")
|
|
573
|
+
)
|
|
518
574
|
|
|
519
575
|
allocated_ram = total_ram + unmanaged_total_ram
|
|
520
576
|
allocated_disk = total_disk + unmanaged_total_disk
|
|
521
577
|
allocated_cpu = total_cpu_share + unmanaged_total_cpu
|
|
522
578
|
|
|
523
|
-
|
|
579
|
+
host_ram_node, host_disk_node, host_cpu_node = _extract_host_totals(node_status)
|
|
580
|
+
storage_host_disk = storage_snapshot.get("total_gib") if storage_snapshot else None
|
|
581
|
+
host_ram = host_ram_node
|
|
582
|
+
host_disk = storage_host_disk if storage_host_disk is not None else host_disk_node
|
|
583
|
+
host_cpu = host_cpu_node
|
|
584
|
+
|
|
524
585
|
|
|
525
586
|
return {
|
|
526
587
|
"updated_at": datetime.utcnow().isoformat() + "Z",
|
|
@@ -540,6 +601,8 @@ def _build_managed_containers_summary(
|
|
|
540
601
|
"host_total_ram_mib": host_ram,
|
|
541
602
|
"host_total_disk_gib": host_disk,
|
|
542
603
|
"host_total_cpu_cores": host_cpu,
|
|
604
|
+
"default_storage": default_storage,
|
|
605
|
+
"default_storage_snapshot": storage_snapshot,
|
|
543
606
|
}
|
|
544
607
|
|
|
545
608
|
|
|
@@ -548,12 +611,15 @@ def _get_managed_containers_summary(force: bool = False) -> Dict[str, Any]:
|
|
|
548
611
|
records: List[Dict[str, Any]],
|
|
549
612
|
config: Dict[str, Any] | None,
|
|
550
613
|
managed_vmids: Set[str],
|
|
551
|
-
|
|
614
|
+
default_storage: str | None,
|
|
615
|
+
) -> Tuple[Dict[str, str], List[Dict[str, Any]], Dict[str, Any] | None, Dict[str, Any] | None]:
|
|
552
616
|
statuses: Dict[str, str] = {}
|
|
553
617
|
unmanaged: List[Dict[str, Any]] = []
|
|
554
618
|
node_status: Dict[str, Any] | None = None
|
|
555
619
|
if not config:
|
|
556
|
-
return statuses, unmanaged, node_status
|
|
620
|
+
return statuses, unmanaged, node_status, None
|
|
621
|
+
proxmox = None
|
|
622
|
+
node = None
|
|
557
623
|
try:
|
|
558
624
|
proxmox = _connect_proxmox(config)
|
|
559
625
|
node = _get_node_from_config(config)
|
|
@@ -574,10 +640,15 @@ def _get_managed_containers_summary(force: bool = False) -> Dict[str, Any]:
|
|
|
574
640
|
description = (cfg.get("description") or "")
|
|
575
641
|
if MANAGED_MARKER in description:
|
|
576
642
|
continue
|
|
577
|
-
|
|
643
|
+
unmanaged.append(_build_unmanaged_container_entry(ct, cfg, vmid_key))
|
|
578
644
|
except Exception as exc: # pragma: no cover - best effort
|
|
579
645
|
logger.debug("Failed to refresh container statuses: %s", exc)
|
|
580
|
-
|
|
646
|
+
storage_snapshot = (
|
|
647
|
+
_get_storage_snapshot(proxmox, node, default_storage)
|
|
648
|
+
if proxmox and node
|
|
649
|
+
else None
|
|
650
|
+
)
|
|
651
|
+
return statuses, unmanaged, node_status, storage_snapshot
|
|
581
652
|
|
|
582
653
|
now = time.monotonic()
|
|
583
654
|
with _MANAGED_CONTAINERS_CACHE_LOCK:
|
|
@@ -590,7 +661,10 @@ def _get_managed_containers_summary(force: bool = False) -> Dict[str, Any]:
|
|
|
590
661
|
managed_vmids: Set[str] = {
|
|
591
662
|
str(_to_int(record.get("vmid"))) for record in records if record.get("vmid") is not None
|
|
592
663
|
}
|
|
593
|
-
|
|
664
|
+
default_storage = config.get("default_storage") if config else None
|
|
665
|
+
statuses, unmanaged, node_status, storage_snapshot = _refresh_container_statuses(
|
|
666
|
+
records, config, managed_vmids, default_storage
|
|
667
|
+
)
|
|
594
668
|
for record in records:
|
|
595
669
|
vmid = record.get("vmid")
|
|
596
670
|
if vmid is None:
|
|
@@ -599,7 +673,7 @@ def _get_managed_containers_summary(force: bool = False) -> Dict[str, Any]:
|
|
|
599
673
|
status = statuses.get(vmid_key)
|
|
600
674
|
if status:
|
|
601
675
|
record["status"] = status
|
|
602
|
-
summary = _build_managed_containers_summary(records, unmanaged, node_status)
|
|
676
|
+
summary = _build_managed_containers_summary(records, unmanaged, node_status, storage_snapshot, default_storage)
|
|
603
677
|
with _MANAGED_CONTAINERS_CACHE_LOCK:
|
|
604
678
|
_MANAGED_CONTAINERS_CACHE["timestamp"] = now
|
|
605
679
|
_MANAGED_CONTAINERS_CACHE["summary"] = summary
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|