diff --git a/.cliffignore b/.cliffignore
deleted file mode 100644
index 187668fd1..000000000
--- a/.cliffignore
+++ /dev/null
@@ -1,7 +0,0 @@
-9766c534bddad8e82e6d19f9bad5cf70b9887f9a
-92ce77ec0ec703c08a659419087a373f76e711f7
-2d53efc945c7747be1755d0b66557a86bdc12cbd
-602137b65129b817811b80975a369ebde3270c6d
-4eb26ae37e1f4c82a45961517ffeb54c20200408
-e59adce848a9e10ee5775254045cbbd915236b8b
-9e0a64108d62236ab07b3f8d10e8c78269b8e1d1
diff --git a/.editorconfig b/.editorconfig
index ddde48ba4..8f0de65c5 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -1,19 +1,18 @@
-# EditorConfig helps developers define and maintain consistent
-# coding styles between different editors and IDEs
-# editorconfig.org
-
root = true
[*]
-end_of_line = lf
charset = utf-8
-trim_trailing_whitespace = true
-insert_final_newline = true
+end_of_line = lf
+indent_size = 4
indent_style = space
-indent_size = 2
+insert_final_newline = true
+trim_trailing_whitespace = true
-[*.{diff,md}]
+[*.md]
trim_trailing_whitespace = false
-[*.{php,tpl}]
+[*.{yml,yaml}]
+indent_size = 2
+
+[docker-compose.yml]
indent_size = 4
diff --git a/.github/ISSUE_TEMPLATE/feature---enhancement-request.md b/.github/ISSUE_TEMPLATE/feature---enhancement-request.md
deleted file mode 100644
index 9f68fc3a6..000000000
--- a/.github/ISSUE_TEMPLATE/feature---enhancement-request.md
+++ /dev/null
@@ -1,7 +0,0 @@
----
-name: Feature / Enhancement request
-about: Suggest an idea for TorrentPier
-title: "[Feature]"
-labels: [Feature, Enhancement]
-assignees: ''
----
diff --git a/.github/workflows/cd.yml b/.github/workflows/cd.yml
deleted file mode 100644
index 8e256db33..000000000
--- a/.github/workflows/cd.yml
+++ /dev/null
@@ -1,80 +0,0 @@
-name: Continuous Deployment
-
-on:
- push:
- tags:
- - "v*.*.*"
-
-jobs:
- generate-changelog:
- name: Generate changelog
- runs-on: ubuntu-22.04
- outputs:
- release_body: ${{ steps.git-cliff.outputs.content }}
- steps:
- - name: Checkout
- uses: actions/checkout@v4
- with:
- fetch-depth: 0
-
- - name: Generate a changelog
- uses: orhun/git-cliff-action@v4
- id: git-cliff
- with:
- config: cliff.toml
- args: -vv --latest --no-exec --github-repo ${{ github.repository }}
-
- - name: Print the changelog
- run: cat "${{ steps.git-cliff.outputs.changelog }}"
-
- release:
- name: Create release
- needs: [ generate-changelog ]
- runs-on: ubuntu-22.04
-
- steps:
- - uses: actions/checkout@v4
- - name: Set the release version
- shell: bash
- run: echo "RELEASE_VERSION=${GITHUB_REF:11}" >> $GITHUB_ENV
-
- - name: Setup PHP
- uses: shivammathur/setup-php@v2
- with:
- php-version: '8.3'
-
- - name: Install Composer dependencies
- run: composer install --no-dev --no-progress --prefer-dist --optimize-autoloader
-
- - name: Cleanup
- run: php _cleanup.php && rm _cleanup.php
-
- - name: Create archive
- id: create-zip
- run: |
- ZIP_NAME="torrentpier-v${{ env.RELEASE_VERSION }}.zip"
- zip -r "$ZIP_NAME" . -x ".git/*"
- echo "ZIP_NAME=$ZIP_NAME" >> $GITHUB_OUTPUT
-
- - name: Publish to GitHub
- if: ${{ !contains(github.ref, '-') }}
- uses: svenstaro/upload-release-action@v2
- with:
- repo_token: ${{ secrets.GITHUB_TOKEN }}
- file: ${{ steps.create-zip.outputs.ZIP_NAME }}
- overwrite: true
- tag: ${{ github.ref }}
- release_name: "v${{ env.RELEASE_VERSION }}"
- body: "${{ needs.generate-changelog.outputs.release_body }}"
-
- - name: Publish to GitHub (pre-release)
- if: ${{ contains(github.ref, '-') }}
- uses: svenstaro/upload-release-action@v2
- with:
- repo_token: ${{ secrets.GITHUB_TOKEN }}
- file: ${{ steps.create-zip.outputs.ZIP_NAME }}
- overwrite: true
- tag: ${{ github.ref }}
- release_name: "v${{ env.RELEASE_VERSION }}"
- body: "${{ needs.generate-changelog.outputs.release_body }}"
- prerelease: true
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
deleted file mode 100644
index 424e53a1f..000000000
--- a/.github/workflows/ci.yml
+++ /dev/null
@@ -1,74 +0,0 @@
-name: Continuous Integration
-
-on:
- push:
- branches:
- - master
-
-jobs:
- nightly:
- name: Nightly builds ๐ฆ
- runs-on: ubuntu-22.04
-
- steps:
- - name: Checkout code ๐ณ
- uses: actions/checkout@v4
-
- - name: Setup PHP ๐ฉ
- uses: shivammathur/setup-php@v2
- with:
- php-version: '8.3'
-
- - name: Install Composer dependencies ๐ช
- run: composer install --no-dev --no-progress --prefer-dist --optimize-autoloader
-
- - name: Get commit hash ๐
- id: get-commit-hash
- run: |
- COMMIT_HASH=$(git rev-parse --short HEAD)
- echo "COMMIT_HASH=$COMMIT_HASH" >> $GITHUB_OUTPUT
-
- - name: Cleanup
- run: php _cleanup.php && rm _cleanup.php
-
- - name: Create archive ๐
- id: create-zip
- run: |
- ZIP_NAME="torrentpier-${{ steps.get-commit-hash.outputs.COMMIT_HASH }}.zip"
- zip -r "$ZIP_NAME" . -x ".git/*"
- echo "ZIP_NAME=$ZIP_NAME" >> $GITHUB_OUTPUT
-
- - name: Upload Archive ๐ค
- uses: actions/upload-artifact@v4
- with:
- name: TorrentPier-master
- path: ${{ steps.create-zip.outputs.ZIP_NAME }}
-
- deploy:
- name: ๐ Deploy
- runs-on: ubuntu-22.04
- steps:
- - name: ๐ Get latest code
- uses: actions/checkout@v4
-
- - name: ๐ฉ Setup PHP
- uses: shivammathur/setup-php@v2
- with:
- php-version: '8.3'
-
- - name: ๐ Install Composer dependencies
- run: composer install --no-dev --no-progress --prefer-dist --optimize-autoloader
-
- - name: ๐ Sync files
- uses: SamKirkland/FTP-Deploy-Action@v4.3.5
- with:
- server: ${{ secrets.FTP_SERVER }}
- username: ${{ secrets.FTP_USERNAME }}
- password: ${{ secrets.FTP_PASSWORD }}
- server-dir: ${{ secrets.FTP_DIR }}
- protocol: ${{ secrets.FTP_PROTOCOL }}
- port: ${{ secrets.FTP_PORT }}
- exclude: |
- **/.git*
- **/.git*/**
- .env
diff --git a/.github/workflows/phpmd.yml b/.github/workflows/phpmd.yml
deleted file mode 100644
index 3e06d7538..000000000
--- a/.github/workflows/phpmd.yml
+++ /dev/null
@@ -1,57 +0,0 @@
-# This workflow uses actions that are not certified by GitHub.
-# They are provided by a third-party and are governed by
-# separate terms of service, privacy policy, and support
-# documentation.
-# PHPMD is a spin-off project of PHP Depend and
-# aims to be a PHP equivalent of the well known Java tool PMD.
-# What PHPMD does is: It takes a given PHP source code base
-# and look for several potential problems within that source.
-# These problems can be things like:
-# Possible bugs
-# Suboptimal code
-# Overcomplicated expressions
-# Unused parameters, methods, properties
-# More details at https://phpmd.org/
-
-name: PHPMD
-
-on:
- push:
- branches: [ "master" ]
- pull_request:
- # The branches below must be a subset of the branches above
- branches: [ "master" ]
- schedule:
- - cron: '40 0 * * 3'
-
-permissions:
- contents: read
-
-jobs:
- PHPMD:
- name: Run PHPMD scanning
- runs-on: ubuntu-latest
- permissions:
- contents: read # for checkout to fetch code
- security-events: write # for github/codeql-action/upload-sarif to upload SARIF results
- actions: read # only required for a private repository by github/codeql-action/upload-sarif to get the Action run status
-
- steps:
- - name: Checkout code
- uses: actions/checkout@v3
-
- - name: Setup PHP
- uses: shivammathur/setup-php@aa1fe473f9c687b6fb896056d771232c0bc41161
- with:
- coverage: none
- tools: phpmd
-
- - name: Run PHPMD
- run: phpmd . sarif codesize --reportfile phpmd-results.sarif
- continue-on-error: true
-
- - name: Upload analysis results to GitHub
- uses: github/codeql-action/upload-sarif@v2
- with:
- sarif_file: phpmd-results.sarif
- wait-for-processing: true
diff --git a/.github/workflows/schedule.yml b/.github/workflows/schedule.yml
deleted file mode 100644
index c1ad4f3c1..000000000
--- a/.github/workflows/schedule.yml
+++ /dev/null
@@ -1,41 +0,0 @@
-name: Changelog generation
-
-on:
- schedule:
- - cron: '0 0 * * *'
- workflow_dispatch:
-
-jobs:
- changelog:
- name: Changelog generation
- runs-on: ubuntu-22.04
- steps:
- - name: Checkout
- uses: actions/checkout@v4
- with:
- fetch-depth: 0
- ref: master
- token: ${{ secrets.REPO_TOKEN }}
-
- - name: Generate a changelog
- uses: orhun/git-cliff-action@v4
- id: git-cliff
- with:
- config: cliff.toml
- args: v2.4.6-alpha.4.. --verbose
- env:
- OUTPUT: CHANGELOG.md
- GITHUB_REPO: ${{ github.repository }}
-
- - name: Print the changelog
- run: cat "${{ steps.git-cliff.outputs.changelog }}"
-
- - name: Commit changelog
- run: |
- git checkout master
- git config --local user.name 'belomaxorka'
- git config --local user.email 'roman25052006.kelesh@gmail.com'
- set +e
- git add CHANGELOG.md
- git commit -m "changelog: Update CHANGELOG.md ๐"
- git push https://${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }}.git master
diff --git a/.gitignore b/.gitignore
index dd0e1f365..f62d18bc6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,47 +1,176 @@
-### IDE ###
-.idea
-.vscode
+# Created by https://www.toptal.com/developers/gitignore/api/macos,windows,laravel,phpstorm+all
+# Edit at https://www.toptal.com/developers/gitignore?templates=macos,windows,laravel,phpstorm+all
-### TorrentPier ###
-*.log
-install.php_*
-composer-setup.php
+### Laravel ###
+/vendor/
+node_modules/
+npm-debug.log
+yarn-error.log
+
+# Laravel 4 specific
+bootstrap/compiled.php
+app/storage/
+
+# Laravel 5 & Lumen specific
+public/storage
+public/hot
+
+# Laravel 5 & Lumen specific with changed public path
+public_html/storage
+public_html/hot
+
+storage/*.key
.env
-.php_cs.cache
-data/avatars
-data/uploads
-internal_data/atom
-internal_data/cache
-internal_data/log
-internal_data/updater.json
-sitemap
-internal_data/triggers
-library/config.local.php
-vendor
+Homestead.yaml
+Homestead.json
+/.vagrant
+.phpunit.result.cache
-### Archives ###
-*.phar
-*.rar
-*.tar
-*.gz
-*.zip
-*.7z
-*.torrent
-*.pak
-
-### Windows ###
-Thumbs.db
-Desktop.ini
-$RECYCLE.BIN/
-*.lnk
-*.bat
-
-### OSX ###
+### macOS ###
+# General
.DS_Store
.AppleDouble
.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
._*
+
+# Files that might appear in the root of a volume
+.DocumentRevisions-V100
+.fseventsd
.Spotlight-V100
+.TemporaryItems
.Trashes
-*.orig
-*.rej
+.VolumeIcon.icns
+.com.apple.timemachine.donotpresent
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+### macOS Patch ###
+# iCloud generated files
+*.icloud
+
+### PhpStorm+all ###
+# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider
+# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
+
+# User-specific stuff
+.idea/**/workspace.xml
+.idea/**/tasks.xml
+.idea/**/usage.statistics.xml
+.idea/**/dictionaries
+.idea/**/shelf
+
+# AWS User-specific
+.idea/**/aws.xml
+
+# Generated files
+.idea/**/contentModel.xml
+
+# Sensitive or high-churn files
+.idea/**/dataSources/
+.idea/**/dataSources.ids
+.idea/**/dataSources.local.xml
+.idea/**/sqlDataSources.xml
+.idea/**/dynamic.xml
+.idea/**/uiDesigner.xml
+.idea/**/dbnavigator.xml
+
+# Gradle
+.idea/**/gradle.xml
+.idea/**/libraries
+
+# Gradle and Maven with auto-import
+# When using Gradle or Maven with auto-import, you should exclude module files,
+# since they will be recreated, and may cause churn. Uncomment if using
+# auto-import.
+# .idea/artifacts
+# .idea/compiler.xml
+# .idea/jarRepositories.xml
+# .idea/modules.xml
+# .idea/*.iml
+# .idea/modules
+# *.iml
+# *.ipr
+
+# CMake
+cmake-build-*/
+
+# Mongo Explorer plugin
+.idea/**/mongoSettings.xml
+
+# File-based project format
+*.iws
+
+# IntelliJ
+out/
+
+# mpeltonen/sbt-idea plugin
+.idea_modules/
+
+# JIRA plugin
+atlassian-ide-plugin.xml
+
+# Cursive Clojure plugin
+.idea/replstate.xml
+
+# SonarLint plugin
+.idea/sonarlint/
+
+# Crashlytics plugin (for Android Studio and IntelliJ)
+com_crashlytics_export_strings.xml
+crashlytics.properties
+crashlytics-build.properties
+fabric.properties
+
+# Editor-based Rest Client
+.idea/httpRequests
+
+# Android studio 3.1+ serialized cache file
+.idea/caches/build_file_checksums.ser
+
+### PhpStorm+all Patch ###
+# Ignore everything but code style settings and run configurations
+# that are supposed to be shared within teams.
+
+.idea/*
+
+!.idea/codeStyles
+!.idea/runConfigurations
+
+### Windows ###
+# Windows thumbnail cache files
+Thumbs.db
+Thumbs.db:encryptable
+ehthumbs.db
+ehthumbs_vista.db
+
+# Dump file
+*.stackdump
+
+# Folder config file
+[Dd]esktop.ini
+
+# Recycle Bin used on file shares
+$RECYCLE.BIN/
+
+# Windows Installer files
+*.cab
+*.msi
+*.msix
+*.msm
+*.msp
+
+# Windows shortcuts
+*.lnk
+
+# End of https://www.toptal.com/developers/gitignore/api/macos,windows,laravel,phpstorm+all
diff --git a/.htaccess b/.htaccess
deleted file mode 100644
index a689fba84..000000000
--- a/.htaccess
+++ /dev/null
@@ -1,18 +0,0 @@
-## set default server charset
-AddDefaultCharset UTF-8
-
-## folder listing access control
-Options All -Indexes
-
-## sitemap and atom rewrite
-RewriteEngine On
-RewriteRule ^sitemap.xml$ sitemap/sitemap.xml [L]
-RewriteRule ^/internal_data/atom/(.*) /atom$1 [L]
-
-## deny access to git folder
-RedirectMatch 404 /\\.git(/|$)
-
-## deny access to system files
-
-Require all denied
-
diff --git a/README.md b/README.md
index 5e7a13049..2063eac8b 100644
--- a/README.md
+++ b/README.md
@@ -1,188 +1,36 @@

-
- Bull-powered BitTorrent tracker engine
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
## ๐ About TorrentPier
-TorrentPier โ bull-powered BitTorrent Public/Private tracker engine, written in PHP. High speed, simple modifications, load-balanced
+TorrentPier โ bull-powered BitTorrent public/private tracker engine, written in PHP. High speed, simple modifications, load-balanced
architecture. In addition, we have a very helpful
[official support forum](https://torrentpier.com), where it's possible to get support and download modifications for the engine.
## ๐ Current status
-TorrentPier is currently undergoing a **major 3.0 rewrite** to remove all legacy code and modernize the codebase to current PHP standards. **Backward compatibility is not a priority** - this release focuses on moving forward with clean, modern architecture. If you want to delve deep into the code, check our [issues](https://github.com/torrentpier/torrentpier/issues) and go from there.
+TorrentPier is currently being **completely rewritten from scratch on Laravel**. The current codebase may not reflect the final product, and code downloaded from the `dexter` branch may not include promised features.
+
+> [!WARNING]
+> This branch contains **development code** that is not ready for production use. For stable releases, please download from the [GitHub releases](https://github.com/torrentpier/torrentpier/releases) or use the [download center](https://nightly.link/torrentpier/torrentpier/workflows/ci/master/TorrentPier-master).
> [!NOTE]
-> TorrentPier 3.0 will introduce breaking changes. Existing installations should remain on 2.x versions until ready to migrate to the new architecture.
+> The legacy codebase (v2.x) can be found on the **master branch**. This Laravel rewrite (v3.0) will introduce breaking changes and is not backward compatible.
## โจ Features
* Rich forum with browsing/moderation tools
* High-load capable, heavily configurable announcer
* Scrape support
* FreeLeech
-* [TorrServer integration](https://github.com/YouROK/TorrServer) support
+* TorrServer integration support
* BitTorrent v2 support
* Event-based invite system
* Bonus points
* Polling system
* PM/DM system
-* Multilingual support (Russian and English are currently fully supported, with others in the future)
+* Multilingual support
* Atom/RSS feeds
* ... and so MUCH MORE!
-## ๐ฅ๏ธ Demo
-
-* URL: https://torrentpier.duckdns.org
-* Username: `admin`
-* Password: `admin`
-
-> [!NOTE]
-> Demo resets every 24 hours!
-
-## ๐ง Requirements
-
-* Apache / nginx ([example config](install/nginx.conf)) / caddy ([example config](install/Caddyfile))
-* MySQL 5.5.3 or above (including MySQL 8.0+) / MariaDB 10.0 or above / Percona
-* PHP: 8.3 / 8.4
-* PHP Extensions: mbstring, gd, bcmath, intl, tidy (optional), xml, xmlwriter
-* Crontab (Recommended)
-
-## ๐พ Installation
-
-For the installation, select one of the installation variants below:
-
-### Quick (Clean install) ๐
-
-Check out our [autoinstall](https://github.com/torrentpier/autoinstall) repository with detailed instructions.
-
-> [!NOTE]
-> Thanks to [Sergei Solovev](https://github.com/SeAnSolovev) for this installation script โค๏ธ
-
-### Quick (For web-panels) โ๏ธ
-
-1. Select the folder where you want TorrentPier installed
- ```shell
- cd /path/to/public_html
- ```
-2. Download the latest version of TorrentPier
- ```shell
- sudo git clone https://github.com/torrentpier/torrentpier.git .
- ```
-3. After completing, execute the command below and follow the instructions
- ```shell
- php install.php
- ```
-4. Voila! โจ
-
-### Manual ๐ฉ
-
-1. Install [Composer](https://getcomposer.org/)
-2. Run the following command to create the TorrentPier project
- ```shell
- composer create-project torrentpier/torrentpier
- ```
-3. [Check our system requirements](#-requirements)
-4. After, run this command in the project directory to install Composer dependencies
- ```shell
- composer install
- ```
-5. Edit database configuration settings in the environment (`.env.example`), after, rename to `.env`
-6. Create a database and run migrations to set up the schema
- ```shell
- php vendor/bin/phinx migrate --configuration=phinx.php
- ```
-7. Provide write permissions to the specified folders:
- * `data/avatars`, `data/uploads`, `data/uploads/thumbs`
- * `internal_data/atom`, `internal_data/cache`, `internal_data/log`, `internal_data/triggers`
- * `sitemap`
-8. Voila! โจ
-
-> [!TIP]
-> You can automate steps 4-7 by running `php install.php` instead, which will guide you through the setup process interactively.
-
-> [!IMPORTANT]
-> The specific settings depend on the server you are using, but in general we recommend chmod **0755** for folders, and chmod **0644** for the files in them.
-
-### Additional steps ๐ฃ
-
-1. Edit these files:
- * `favicon.png` (change to your own)
- * `robots.txt` (change the addresses in lines `Host` and `Sitemap` to your own)
-2. Log in to the forum using the **admin/admin** login/password, and finish setting up via admin panel. Don't forget to change your password!
-
-## ๐ Security vulnerabilities
-
-If you discover a security vulnerability within TorrentPier, please follow our [security policy](https://github.com/torrentpier/torrentpier/security/policy), so we can address it promptly.
-
-## ๐งช Testing
-
-TorrentPier includes a comprehensive testing suite built with **Pest PHP**. Run tests to ensure code quality and system reliability:
-
-```shell
-# Run all tests
-./vendor/bin/pest
-
-# Run with coverage
-./vendor/bin/pest --coverage
-```
-
-For detailed testing documentation, see [tests/README.md](tests/README.md).
-
-## ๐ Our recommendations
-
-* *It's recommended to run `cron.php`.* - For significant tracker speed increase it may be required to replace the built-in cron.php with an operating system daemon.
-* *Local configuration copy.* - You can override the settings using the local configuration file `library/config.local.php`.
-
-## ๐ Contributing / Contributors
-
-Please read our [contributing policy](CONTRIBUTING.md) and [code of conduct](CODE_OF_CONDUCT.md) for details, and the process for
-submitting pull requests to us. But we are always ready to review your pull-request for compliance with
-these requirements. Just send it!
-
-
-
-
-
-Made with [contrib.rocks](https://contrib.rocks).
-
-## ๐ Sponsoring
-
-Support this project by becoming a sponsor or a backer.
-
-[](https://opencollective.com/torrentpier)
-[](https://opencollective.com/torrentpier)
-
-
- Monero
-
-```
-42zJE3FDvN8foP9QYgDrBjgtd7h2FipGCGmAcmG5VFQuRkJBGMbCvoLSmivepmAMEgik2E8MPWUzKaoYsGCtmhvL7ZN73jh
-```
-
-
-
- YooMoney
-
-```
-4100118022415720
-```
-
-
## ๐ฆ Versioning
We use [SemVer](http://semver.org/) for versioning. For the versions available, see the [tags on this repository](https://github.com/torrentpier/torrentpier/tags).
diff --git a/_cleanup.php b/_cleanup.php
deleted file mode 100644
index d9802822a..000000000
--- a/_cleanup.php
+++ /dev/null
@@ -1,57 +0,0 @@
-php ' . basename(__FILE__) . ' in CLI mode');
-}
-
-// Get all constants
-require_once BB_ROOT . 'library/defines.php';
-
-// Include CLI functions
-require INC_DIR . '/functions_cli.php';
-
-// Welcoming message
-out("--- Release creation tool ---\n", 'info');
-
-$configFile = BB_PATH . '/library/config.php';
-
-if (!is_file($configFile)) {
- out('- Config file ' . basename($configFile) . ' not found', 'error');
- exit;
-}
-if (!is_readable($configFile)) {
- out('- Config file ' . basename($configFile) . ' is not readable', 'error');
- exit;
-}
-if (!is_writable($configFile)) {
- out('- Config file ' . basename($configFile) . ' is not writable', 'error');
- exit;
-}
-
-// Ask for version
-fwrite(STDOUT, 'Enter version number (e.g, v2.4.0): ');
-$version = trim(fgets(STDIN));
-
-if (empty($version)) {
- out("- Version cannot be empty. Please enter a valid version number", 'error');
- exit;
-} else {
- // Add 'v' prefix if missing
- if (!str_starts_with($version, 'v')) {
- $version = 'v' . $version;
- }
-
- out("- Using version: $version", 'info');
-}
-
-// Ask for version emoji
-fwrite(STDOUT, 'Enter version emoji: ');
-$versionEmoji = trim(fgets(STDIN));
-
-if (!empty($versionEmoji)) {
- out("- Using version emoji: $versionEmoji", 'info');
-}
-
-// Ask for release date or use today's date
-fwrite(STDOUT, "Enter release date (e.g. 25-05-2025), leave empty to use today's date: ");
-$date = trim(fgets(STDIN));
-
-if (empty($date)) {
- $date = date('d-m-Y');
- out("- Using current date: $date", 'info');
-} else {
- // Validate date format (dd-mm-yyyy)
- $dateObj = DateTime::createFromFormat('d-m-Y', $date);
- if (!$dateObj || $dateObj->format('d-m-Y') !== $date) {
- out("- Invalid date format. Expected format: DD-MM-YYYY", 'error');
- exit;
- }
-
- out("- Using date: $date", 'info');
-}
-
-// Read config file content
-$content = file_get_contents($configFile);
-
-// Update version
-$content = preg_replace(
- "/\\\$bb_cfg\['tp_version'\]\s*=\s*'[^']*';/",
- "\$bb_cfg['tp_version'] = '$version';",
- $content
-);
-
-// Update release date
-$content = preg_replace(
- "/\\\$bb_cfg\['tp_release_date'\]\s*=\s*'[^']*';/",
- "\$bb_cfg['tp_release_date'] = '$date';",
- $content
-);
-
-// Save updated config
-$bytesWritten = file_put_contents($configFile, $content);
-
-if ($bytesWritten === false) {
- out("- Failed to write to config file", 'error');
- exit;
-}
-
-if ($bytesWritten === 0) {
- out("- Config file was not updated (0 bytes written)", 'error');
- exit;
-}
-
-out("\n- Config file has been updated!", 'success');
-
-// Update CHANGELOG.md
-runProcess('npx git-cliff v2.4.6-alpha.4.. --config cliff.toml --tag "' . $version . '" > CHANGELOG.md');
-
-// Git add & commit
-runProcess('git add -A && git commit -m "release: ' . escapeshellarg($version) . (!empty($versionEmoji) ? (' ' . $versionEmoji) : '') . '"');
-
-// Git tag
-runProcess("git tag -a \"$version\" -m \"Release $version\"");
-runProcess("git tag -v \"$version\"");
-
-// Git push
-runProcess("git push origin master");
-runProcess("git push origin $version");
-
-out("\n- Release $version has been successfully prepared, committed and pushed!", 'success');
diff --git a/cliff.toml b/cliff.toml
deleted file mode 100644
index 1798567f1..000000000
--- a/cliff.toml
+++ /dev/null
@@ -1,126 +0,0 @@
-# git-cliff ~ TorrentPier configuration file
-# https://git-cliff.org/docs/configuration
-#
-# Lines starting with "#" are comments.
-# Configuration options are organized into tables and keys.
-# See documentation for more information on available options.
-
-[remote.github]
-owner = "torrentpier"
-repo = "torrentpier"
-
-[changelog]
-# template for the changelog header
-header = """
-[](https://github.com/torrentpier)\n
-# ๐ Change Log\n
-"""
-# template for the changelog body
-# https://keats.github.io/tera/docs/#introduction
-body = """
-{%- macro remote_url() -%}
- https://github.com/{{ remote.github.owner }}/{{ remote.github.repo }}
-{%- endmacro -%}
-
-{%- macro nightly_url() -%}
- https://nightly.link/{{ remote.github.owner }}/{{ remote.github.repo }}/workflows/ci/master/TorrentPier-master
-{%- endmacro -%}
-
-{% macro print_commit(commit) -%}
- - {% if commit.scope %}*({{ commit.scope }})* {% endif %}\
- {% if commit.breaking %}[**breaking**] {% endif %}\
- {{ commit.message | upper_first }} - \
- ([{{ commit.id | truncate(length=7, end="") }}]({{ self::remote_url() }}/commit/{{ commit.id }}))\
-{% endmacro -%}
-
-{% if version %}\
- {% if previous.version %}\
- ## [{{ version }}]\
- ({{ self::remote_url() }}/compare/{{ previous.version }}..{{ version }}) ({{ timestamp | date(format="%Y-%m-%d") }})
- {% else %}\
- ## {{ version }} ({{ timestamp | date(format="%Y-%m-%d") }})
- {% endif %}\
-{% else %}\
- ## [nightly]({{ self::nightly_url() }})
-{% endif %}\
-
-{% for group, commits in commits | group_by(attribute="group") %}
- ### {{ group | striptags | trim | upper_first }}
- {% for commit in commits
- | filter(attribute="scope")
- | sort(attribute="scope") %}
- {{ self::print_commit(commit=commit) }}
- {%- endfor %}
- {% for commit in commits %}
- {%- if not commit.scope -%}
- {{ self::print_commit(commit=commit) }}
- {% endif -%}
- {% endfor -%}
-{% endfor -%}
-{%- if github -%}
-{% if github.contributors | filter(attribute="is_first_time", value=true) | length != 0 %}
- ## New Contributors โค๏ธ
-{% endif %}\
-{% for contributor in github.contributors | filter(attribute="is_first_time", value=true) %}
- * @{{ contributor.username }} made their first contribution
- {%- if contributor.pr_number %} in \
- [#{{ contributor.pr_number }}]({{ self::remote_url() }}/pull/{{ contributor.pr_number }}) \
- {%- endif %}
-{%- endfor -%}
-{%- endif %}
-
-
-"""
-# template for the changelog footer
-footer = """
-"""
-# remove the leading and trailing whitespace from the templates
-trim = true
-# postprocessors
-postprocessors = [
- { pattern = '', replace = "https://github.com/torrentpier/torrentpier" }, # replace repository URL
-]
-
-[git]
-# parse the commits based on https://www.conventionalcommits.org
-conventional_commits = true
-# filter out the commits that are not conventional
-filter_unconventional = true
-# process each line of a commit as an individual commit
-split_commits = false
-# regex for preprocessing the commit messages
-commit_preprocessors = [
- # Replace issue numbers
- { pattern = '\((\w+\s)?#([0-9]+)\)', replace = "([#${2}](/pull/${2}))" },
- # Check spelling of the commit with https://github.com/crate-ci/typos
- # If the spelling is incorrect, it will be automatically fixed.
- # { pattern = '.*', replace_command = 'typos --write-changes -' },
-]
-# regex for parsing and grouping commits
-commit_parsers = [
- { message = "^feat", group = "๐ Features" },
- { message = "^fix", group = "๐ Bug Fixes" },
- { message = "^doc", group = "๐ Documentation" },
- { message = "^perf", group = "โก Performance" },
- { message = "^refactor", group = "๐ Refactor" },
- { message = "^style", group = "๐จ Styling" },
- { message = "^test", group = "๐งช Testing" },
- { message = "^ignore|^release|^changelog", skip = true },
- { message = "^chore|^ci|^misc", group = "โ๏ธ Miscellaneous" },
- { body = ".*security", group = "๐ก๏ธ Security" },
- { message = "^revert", group = "โ๏ธ Revert" },
- { message = "^crowdin|^crodwin", group = "๐ณ New translations" }, # crowdin pulls supporting
- { message = "^Composer", group = "๐ฆ Dependencies" }, # dependabot pulls supporting
- { message = "^rem|^drop|^removed", group = "๐๏ธ Removed" },
- { message = ".*", group = "๐ผ Other" },
-]
-# protect breaking changes from being skipped due to matching a skipping commit_parser
-protect_breaking_commits = false
-# filter out the commits that are not matched by commit parsers
-filter_commits = false
-# regex for matching git tags
-tag_pattern = "v[0-9].*"
-# sort the tags topologically
-topo_order = false
-# sort the commits inside sections by oldest/newest order
-sort_commits = "newest"
diff --git a/config/README.md b/config/README.md
deleted file mode 100644
index 1d4ccad07..000000000
--- a/config/README.md
+++ /dev/null
@@ -1,53 +0,0 @@
-# Application Configuration
-
-System configuration files using PHP arrays for type safety and IDE support:
-
-- **app.php**: Core application settings
- - Site name, URL, timezone
- - Debug mode, environment
- - Feature flags and toggles
-
-- **database.php**: Database connection settings
- - Multiple connection definitions
- - Read/write splitting configuration
- - Connection pooling settings
-
-- **cache.php**: Cache driver configurations
- - Redis, Memcached, file-based settings
- - TTL defaults per cache type
- - Cache key prefixes
-
-- **tracker.php**: BitTorrent tracker settings
- - Announce intervals
- - Peer limits
- - Ratio requirements
-
-- **environments/**: Environment-specific overrides
- - Development, staging, production settings
- - Local developer configurations
-
-Example database configuration:
-```php
- env('DB_CONNECTION', 'mysql'),
-
- 'connections' => [
- 'mysql' => [
- 'driver' => 'mysql',
- 'host' => env('DB_HOST', '127.0.0.1'),
- 'port' => env('DB_PORT', 3306),
- 'database' => env('DB_DATABASE', 'tp'),
- 'username' => env('DB_USERNAME', 'root'),
- 'password' => env('DB_PASSWORD', ''),
- 'charset' => 'utf8mb4',
- 'collation' => 'utf8mb4_unicode_ci',
- 'options' => [
- PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
- PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
- PDO::ATTR_EMULATE_PREPARES => false,
- ],
- ],
- ],
-];
-```
\ No newline at end of file
diff --git a/config/container.php b/config/container.php
deleted file mode 100644
index cc72536ee..000000000
--- a/config/container.php
+++ /dev/null
@@ -1,26 +0,0 @@
- env('APP_ENV', 'development'),
- 'debug' => env('APP_DEBUG', false),
-
- // Enable/disable features
- 'autowiring' => true,
- 'annotations' => false,
-
- // Compilation settings for production
- 'compilation_dir' => __DIR__ . '/../internal_data/cache/container',
- 'proxies_dir' => __DIR__ . '/../internal_data/cache/proxies',
-
- // Additional definition files to load
- 'definition_files' => [
- // Add custom definition files here
- // __DIR__ . '/services/custom.php',
- ],
-
- // Container-specific settings
- 'container' => [
- // Add any PHP-DI specific settings here
- ],
-];
diff --git a/config/services.php b/config/services.php
deleted file mode 100644
index 5070cdf57..000000000
--- a/config/services.php
+++ /dev/null
@@ -1,30 +0,0 @@
- factory(function () {
- // $logger = new \Monolog\Logger('torrentpier');
- // $logger->pushHandler(new \Monolog\Handler\StreamHandler(__DIR__ . '/../internal_data/logs/app.log'));
- // return $logger;
- // }),
-
- // Configuration service example
- // 'config' => factory(function () {
- // return [
- // 'app' => require __DIR__ . '/app.php',
- // 'database' => require __DIR__ . '/database.php',
- // 'cache' => require __DIR__ . '/cache.php',
- // ];
- // }),
-
- // Interface to implementation binding example
- // 'ServiceInterface' => autowire('ConcreteService'),
-];
diff --git a/docs/examples/di-container-usage.php b/docs/examples/di-container-usage.php
deleted file mode 100644
index fcfc0bdf9..000000000
--- a/docs/examples/di-container-usage.php
+++ /dev/null
@@ -1,99 +0,0 @@
-has('some.service'); // Check if service exists
-
-// ===== PHASE 2: Domain Modeling (FUTURE) =====
-
-// 3. Repository interfaces (when implemented in Domain layer)
-// $userRepository = app('TorrentPier\Domain\User\Repository\UserRepositoryInterface');
-// $torrentRepository = app('TorrentPier\Domain\Tracker\Repository\TorrentRepositoryInterface');
-// $forumRepository = app('TorrentPier\Domain\Forum\Repository\ForumRepositoryInterface');
-
-// ===== PHASE 3: Application Services (FUTURE) =====
-
-// 4. Command/Query handlers (when implemented)
-// $registerUserHandler = app('TorrentPier\Application\User\Handler\RegisterUserHandler');
-// $announceHandler = app('TorrentPier\Application\Tracker\Handler\ProcessAnnounceHandler');
-// $createPostHandler = app('TorrentPier\Application\Forum\Handler\CreatePostHandler');
-
-// 5. Making command instances with parameters
-// $command = $container->make('TorrentPier\Application\User\Command\RegisterUserCommand', [
-// 'username' => 'john_doe',
-// 'email' => 'john@example.com',
-// 'password' => 'secure_password'
-// ]);
-
-// ===== PHASE 4: Infrastructure (FUTURE) =====
-
-// 6. Database and cache (when infrastructure is implemented)
-// $database = app('database.connection.default');
-// $cache = app('cache.factory')('forum'); // Get cache instance for 'forum' namespace
-
-// ===== PHASE 5: Presentation (FUTURE) =====
-
-// 7. Controllers (when implemented)
-// $userController = app('TorrentPier\Presentation\Http\Controllers\Api\UserController');
-// $trackerController = app('TorrentPier\Presentation\Http\Controllers\Web\TrackerController');
-
-// ===== TESTING EXAMPLES =====
-
-// 8. Testing with custom container (works now)
-$testContainer = ContainerFactory::create([
- 'definitions' => [
- 'test.service' => \DI\factory(function () {
- return new class {
- public function test() { return 'test'; }
- };
- }),
- ],
- 'environment' => 'testing',
-]);
-
-// 9. Safe service resolution (works now)
-try {
- $service = app('optional.service');
-} catch (RuntimeException $e) {
- // Service not found, handle gracefully
- $service = null;
-}
-
-// ===== LEGACY INTEGRATION (CURRENT) =====
-
-// 10. Integration with legacy code
-// In legacy files, after including common.php or similar:
-if (!Bootstrap::getContainer()) {
- Bootstrap::init(BB_ROOT ?? __DIR__ . '/../..');
-}
-
-// 11. Method injection (works now if service exists)
-class ExampleService
-{
- public function processData(string $data)
- {
- // Container can inject dependencies when calling this method
- return "Processed: $data";
- }
-}
-
-$exampleService = new ExampleService();
-$result = $container->call([$exampleService, 'processData'], [
- 'data' => 'test data'
-]);
\ No newline at end of file
diff --git a/docs/specs/hexagonal-architecture-spec.md b/docs/specs/hexagonal-architecture-spec.md
deleted file mode 100644
index 07dc0a672..000000000
--- a/docs/specs/hexagonal-architecture-spec.md
+++ /dev/null
@@ -1,436 +0,0 @@
-# Hexagonal Architecture Directory Structure Specification
-
-## Overview
-
-This document specifies the new hexagonal architecture directory structure for TorrentPier 3.0. The structure follows Domain-Driven Design (DDD) principles and implements a clean separation of concerns through hexagonal architecture (ports and adapters pattern).
-
-## Directory Structure
-
-```
-/src/
-โโโ Domain/ # Core business logic - no framework dependencies
-โ โโโ Forum/ # Forum bounded context
-โ โ โโโ Model/ # Aggregates and entities
-โ โ โโโ ValueObject/ # Value objects (PostId, ThreadTitle, etc.)
-โ โ โโโ Repository/ # Repository interfaces
-โ โ โโโ Exception/ # Domain-specific exceptions
-โ โโโ Tracker/ # BitTorrent tracker bounded context
-โ โ โโโ Model/ # Torrent, Peer aggregates
-โ โ โโโ ValueObject/ # InfoHash, PeerId, etc.
-โ โ โโโ Repository/ # Repository interfaces
-โ โ โโโ Exception/ # Tracker-specific exceptions
-โ โโโ User/ # User management bounded context
-โ โ โโโ Model/ # User aggregate
-โ โ โโโ ValueObject/ # UserId, Email, Username
-โ โ โโโ Repository/ # User repository interface
-โ โ โโโ Exception/ # Authentication/authorization exceptions
-โ โโโ Shared/ # Shared kernel - minimal shared concepts
-โ โโโ Model/ # Base classes (AggregateRoot, Entity)
-โ โโโ ValueObject/ # Common value objects (Id, DateTime)
-โ โโโ Event/ # Domain events base classes
-โ
-โโโ Application/ # Application services - orchestration layer
-โ โโโ Forum/
-โ โ โโโ Command/ # Commands (CreatePost, LockThread)
-โ โ โโโ Query/ # Queries (GetThreadList, SearchPosts)
-โ โ โโโ Handler/ # Command and query handlers
-โ โโโ Tracker/
-โ โ โโโ Command/ # Commands (RegisterTorrent, ProcessAnnounce)
-โ โ โโโ Query/ # Queries (GetPeerList, GetTorrentStats)
-โ โ โโโ Handler/ # Command and query handlers
-โ โโโ User/
-โ โโโ Command/ # Commands (RegisterUser, ChangePassword)
-โ โโโ Query/ # Queries (GetUserProfile, SearchUsers)
-โ โโโ Handler/ # Command and query handlers
-โ
-โโโ Infrastructure/ # External concerns and implementations
-โ โโโ Persistence/ # Data persistence layer
-โ โ โโโ Database/ # Database adapter and connection management
-โ โ โโโ Migration/ # Database migrations
-โ โ โโโ Repository/ # Repository implementations
-โ โโโ Cache/ # Caching implementations
-โ โ โโโ Redis/ # Redis adapter
-โ โ โโโ Memcached/ # Memcached adapter
-โ โ โโโ File/ # File-based cache adapter
-โ โโโ Email/ # Email service implementations
-โ โ โโโ Template/ # Email templates
-โ โ โโโ Transport/ # SMTP, API transports
-โ โโโ FileStorage/ # File storage abstractions
-โ โโโ Local/ # Local filesystem storage
-โ โโโ S3/ # AWS S3 storage adapter
-โ
-โโโ Presentation/ # User interface layer
- โโโ Http/ # Web interface
- โ โโโ Controllers/ # HTTP controllers
- โ โ โโโ Admin/ # Admin panel controllers
- โ โ โโโ Api/ # REST API controllers
- โ โ โโโ Web/ # Web UI controllers
- โ โโโ Middleware/ # HTTP middleware (auth, CORS, etc.)
- โ โโโ Requests/ # Request DTOs and validation
- โ โโโ Responses/ # Response transformers
- โโโ Cli/ # Command line interface
- โโโ Commands/ # Console commands
-
-# Additional directories (outside /src/)
-/config/ # Application configuration
-โโโ app.php # Main application settings
-โโโ database.php # Database connections
-โโโ cache.php # Cache drivers configuration
-โโโ tracker.php # BitTorrent tracker settings
-โโโ environments/ # Environment-specific overrides
-
-/tests/ # Test suites (Pest)
-โโโ Unit/ # Unit tests (mirrors src/ structure)
-โโโ Feature/ # Feature/Integration tests
-โโโ Pest.php # Pest configuration
-โโโ TestCase.php # Base test case
-```
-
-## Directory README.md Templates
-
-### Domain Layer READMEs
-
-#### `/src/Domain/README.md`
-```markdown
-# Domain Layer
-
-This directory contains the core business logic of TorrentPier. Code here should:
-- Have no dependencies on frameworks or infrastructure
-- Represent pure business rules and domain models
-- Be testable in isolation
-- Use only PHP language features and domain concepts
-
-## Bounded Contexts
-- **Forum**: Discussion forums, posts, threads
-- **Tracker**: BitTorrent tracking, peers, torrents
-- **User**: User management, authentication, profiles
-- **Shared**: Minimal shared concepts between contexts
-```
-
-#### `/src/Domain/Tracker/Model/README.md`
-```markdown
-# Tracker Domain Models
-
-Contains aggregate roots and entities for the BitTorrent tracker:
-- `Torrent`: Aggregate root for torrent management
-- `Peer`: Entity representing a BitTorrent peer
-- `TorrentStatistics`: Value object for torrent stats
-
-Example:
-```php
-class Torrent extends AggregateRoot
-{
- public function announce(Peer $peer, AnnounceEvent $event): void
- {
- // Business logic for handling announces
- }
-}
-```
-
-#### `/src/Domain/Tracker/ValueObject/README.md`
-```markdown
-# Tracker Value Objects
-
-Immutable objects representing domain concepts:
-- `InfoHash`: 20-byte torrent identifier
-- `PeerId`: Peer client identifier
-- `Port`: Network port (1-65535)
-- `BytesTransferred`: Upload/download bytes
-
-Example:
-```php
-final class InfoHash
-{
- private string $hash;
-
- public function __construct(string $hash)
- {
- $this->guardAgainstInvalidHash($hash);
- $this->hash = $hash;
- }
-}
-```
-
-### Application Layer READMEs
-
-#### `/src/Application/README.md`
-```markdown
-# Application Layer
-
-Contains application services that orchestrate domain objects to fulfill use cases.
-- Commands: Write operations that change state
-- Queries: Read operations for data retrieval
-- Handlers: Process commands and queries
-
-This layer should:
-- Coordinate domain objects
-- Handle transactions
-- Dispatch domain events
-- Not contain business logic
-```
-
-#### `/src/Application/Tracker/Command/README.md`
-```markdown
-# Tracker Commands
-
-Commands representing write operations:
-- `RegisterTorrentCommand`: Register new torrent
-- `UpdateTorrentCommand`: Modify torrent details
-- `DeleteTorrentCommand`: Remove torrent from tracker
-
-Example:
-```php
-final class RegisterTorrentCommand
-{
- public function __construct(
- public readonly string $infoHash,
- public readonly int $uploaderId,
- public readonly string $name,
- public readonly int $size
- ) {}
-}
-```
-
-### Infrastructure Layer READMEs
-
-#### `/src/Infrastructure/README.md`
-```markdown
-# Infrastructure Layer
-
-Technical implementations and external service adapters:
-- Database persistence
-- Caching mechanisms
-- Email services
-- File storage
-- Third-party integrations
-
-Infrastructure depends on domain, not vice versa.
-```
-
-#### `/src/Infrastructure/Persistence/Repository/README.md`
-```markdown
-# Repository Implementations
-
-Concrete implementations of domain repository interfaces:
-- Uses database adapter for persistence
-- Implements caching strategies
-- Handles query optimization
-- Supports multiple database backends
-
-Example:
-```php
-class TorrentRepository implements TorrentRepositoryInterface
-{
- public function __construct(
- private DatabaseAdapterInterface $db
- ) {}
-
- public function findByInfoHash(InfoHash $infoHash): ?Torrent
- {
- // Database adapter implementation
- $row = $this->db->select('torrents')
- ->where('info_hash', $infoHash->toString())
- ->first();
-
- return $row ? $this->hydrateFromRow($row) : null;
- }
-}
-```
-
-### Presentation Layer READMEs
-
-#### `/src/Presentation/README.md`
-```markdown
-# Presentation Layer
-
-User interface implementations:
-- HTTP controllers for web and API
-- CLI commands for console operations
-- Request/response handling
-- Input validation
-- Output formatting
-
-This layer translates between external format and application format.
-```
-
-#### `/src/Presentation/Http/Controllers/Api/README.md`
-```markdown
-# API Controllers
-
-RESTful API endpoints following OpenAPI specification:
-- JSON request/response format
-- Proper HTTP status codes
-- HATEOAS where applicable
-- Rate limiting aware
-
-Example:
-```php
-class UserController
-{
- public function register(RegisterRequest $request): JsonResponse
- {
- $command = new RegisterUserCommand(
- $request->getUsername(),
- $request->getEmail(),
- $request->getPassword()
- );
-
- $userId = $this->commandBus->handle($command);
-
- return new JsonResponse([
- 'id' => $userId,
- 'username' => $request->getUsername()
- ], Response::HTTP_CREATED);
- }
-}
-```
-
-#### `/src/Presentation/Http/Controllers/Admin/README.md`
-```markdown
-# Admin Panel Controllers
-
-Administrative interface controllers with enhanced security:
-- Role-based access control (RBAC)
-- Audit logging for all actions
-- Additional authentication checks
-- Administrative dashboards and reports
-
-Example:
-```php
-class AdminUserController
-{
- public function index(Request $request): Response
- {
- $query = new GetUsersQuery(
- page: $request->getPage(),
- filters: $request->getFilters()
- );
-
- $users = $this->queryBus->handle($query);
-
- return $this->render('admin/users/index', [
- 'users' => $users,
- 'filters' => $request->getFilters()
- ]);
- }
-}
-```
-
-#### `/config/README.md`
-```markdown
-# Application Configuration
-
-System configuration files using PHP arrays for type safety and IDE support:
-
-- **app.php**: Core application settings
- - Site name, URL, timezone
- - Debug mode, environment
- - Feature flags and toggles
-
-- **database.php**: Database connection settings
- - Multiple connection definitions
- - Read/write splitting configuration
- - Connection pooling settings
-
-- **cache.php**: Cache driver configurations
- - Redis, Memcached, file-based settings
- - TTL defaults per cache type
- - Cache key prefixes
-
-- **tracker.php**: BitTorrent tracker settings
- - Announce intervals
- - Peer limits
- - Ratio requirements
-
-- **environments/**: Environment-specific overrides
- - Development, staging, production settings
- - Local developer configurations
-
-Example database configuration:
-```php
- env('DB_CONNECTION', 'mysql'),
-
- 'connections' => [
- 'mysql' => [
- 'driver' => 'mysql',
- 'host' => env('DB_HOST', '127.0.0.1'),
- 'port' => env('DB_PORT', 3306),
- 'database' => env('DB_DATABASE', 'tp'),
- 'username' => env('DB_USERNAME', 'root'),
- 'password' => env('DB_PASSWORD', ''),
- 'charset' => 'utf8mb4',
- 'collation' => 'utf8mb4_unicode_ci',
- 'options' => [
- PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
- PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
- PDO::ATTR_EMULATE_PREPARES => false,
- ],
- ],
- ],
-];
-```
-
-## Implementation Order
-
-1. **Phase 1: Foundation**
-
- - Create directory structure
- - Set up base classes in Domain/Shared
- - Configure dependency injection
-
-2. **Phase 2: Domain Modeling**
-
- - Implement core aggregates
- - Create value objects
- - Define repository interfaces
-
-3. **Phase 3: Application Services**
-
- - Create commands and queries
- - Implement handlers
- - Set up event dispatching
-
-4. **Phase 4: Infrastructure**
-
- - Implement repositories
- - Configure database adapter
- - Set up caching
-
-5. **Phase 5: Presentation**
-
- - Create controllers
- - Implement middleware
- - Build CLI commands
-
-## Migration Strategy
-
-- Existing code remains in current locations
-- New features built in hexagonal architecture
-- Gradual migration using strangler fig pattern
-- Legacy adapters bridge old and new code
-- Feature flags control rollout
-
-## Key Principles
-
-1. **Dependency Rule**: Dependencies point inward (Presentation โ Application โ Domain)
-2. **Domain Isolation**: Business logic has no framework dependencies
-3. **Interface Segregation**: Small, focused interfaces
-4. **CQRS**: Separate read and write models
-5. **Event-Driven**: Domain events for cross-context communication
-
-## Testing Strategy
-
-- **Domain**: Pure unit tests, no mocks needed
-- **Application**: Unit tests with mocked repositories
-- **Infrastructure**: Integration tests with real services
-- **Presentation**: E2E tests for user journeys
-
-## Notes for Developers
-
-- Start reading code from the Domain layer
-- Business rules live in aggregates, not services
-- Use value objects for type safety
-- Prefer composition over inheritance
-- Keep bounded contexts loosely coupled
diff --git a/install.php b/install.php
deleted file mode 100644
index 0d1516ce5..000000000
--- a/install.php
+++ /dev/null
@@ -1,331 +0,0 @@
-php ' . basename(__FILE__) . ' in CLI mode');
-}
-
-// Get all constants
-require_once BB_ROOT . 'library/defines.php';
-
-// Include CLI functions
-require INC_DIR . '/functions_cli.php';
-
-/**
- * System requirements
- */
-const CHECK_REQUIREMENTS = [
- 'php_min_version' => '8.3.0',
- 'ext_list' => [
- 'json',
- 'curl',
- 'readline',
- 'mysqli',
- 'bcmath',
- 'mbstring',
- 'intl',
- 'xml',
- 'xmlwriter',
- 'zip',
- 'gd'
- ],
-];
-
-// Welcoming message
-out("--- TorrentPier Installer ---\n", 'info');
-
-// Checking extensions
-out("- Checking installed extensions...", 'info');
-
-// [1] Check PHP Version
-if (!version_compare(PHP_VERSION, CHECK_REQUIREMENTS['php_min_version'], '>=')) {
- out("- TorrentPier requires PHP version " . CHECK_REQUIREMENTS['php_min_version'] . "+ Your PHP version " . PHP_VERSION, 'warning');
-}
-
-// [2] Check installed PHP Extensions on server
-foreach (CHECK_REQUIREMENTS['ext_list'] as $ext) {
- if (!extension_loaded($ext)) {
- out("- ext-$ext not installed. Check out php.ini file", 'error');
- if (!defined('EXTENSIONS_NOT_INSTALLED')) {
- define('EXTENSIONS_NOT_INSTALLED', true);
- }
- } else {
- out("- ext-$ext installed!");
- }
-}
-if (!defined('EXTENSIONS_NOT_INSTALLED')) {
- out("- All extensions are installed!\n", 'success');
-} else {
- exit;
-}
-
-// Check if already installed
-if (is_file(BB_ROOT . '.env')) {
- out('- TorrentPier already installed', 'warning');
- echo 'Are you sure want to re-install TorrentPier? [y/N]: ';
- if (str_starts_with(mb_strtolower(trim(readline())), 'y')) {
- out("\n- Re-install process started...", 'info');
- // environment
- if (is_file(BB_ROOT . '.env')) {
- if (unlink(BB_ROOT . '.env')) {
- out('- Environment file successfully removed!');
- } else {
- out('- Cannot remove environment (.env) file. Delete it manually', 'error');
- exit;
- }
- }
- // composer.phar
- if (is_file(BB_ROOT . 'composer.phar')) {
- if (unlink(BB_ROOT . 'composer.phar')) {
- out("- composer.phar file successfully removed!");
- } else {
- out('- Cannot remove composer.phar file. Delete it manually', 'error');
- exit;
- }
- }
- // composer dir
- if (is_dir(BB_ROOT . 'vendor')) {
- removeDir(BB_ROOT . 'vendor', true);
- if (!is_dir(BB_ROOT . 'vendor')) {
- out("- Composer directory successfully removed!");
- } else {
- out('- Cannot remove Composer directory. Delete it manually', 'error');
- exit;
- }
- }
- out("- Re-install process completed!\n", 'success');
- out('- Starting installation...', 'info');
- } else {
- exit;
- }
-}
-
-// Applying permissions
-out("- Applying permissions for folders...", 'info');
-chmod_r(BB_ROOT . 'data', 0755, 0644);
-chmod_r(BB_ROOT . 'internal_data', 0755, 0644);
-chmod_r(BB_ROOT . 'sitemap', 0755, 0644);
-out("- Permissions successfully applied!\n", 'success');
-
-// Check composer installation
-if (!is_file(BB_ROOT . 'vendor/autoload.php')) {
- out('- Hmm, it seems there are no Composer dependencies', 'info');
-
- // Downloading composer
- if (!is_file(BB_ROOT . 'composer.phar')) {
- out('- Downloading Composer...', 'info');
- if (copy('https://getcomposer.org/installer', BB_ROOT . 'composer-setup.php')) {
- out("- Composer successfully downloaded!\n", 'success');
- runProcess('php ' . BB_ROOT . 'composer-setup.php --install-dir=' . BB_ROOT);
- } else {
- out('- Cannot download Composer. Please, download it (composer.phar) manually', 'error');
- exit;
- }
- if (is_file(BB_ROOT . 'composer-setup.php')) {
- if (unlink(BB_ROOT . 'composer-setup.php')) {
- out("- Composer installation file successfully removed!\n", 'success');
- } else {
- out('- Cannot remove Composer installation file (composer-setup.php). Please, delete it manually', 'warning');
- }
- }
- } else {
- out("- composer.phar file found!\n", 'success');
- }
-
- // Installing dependencies
- if (is_file(BB_ROOT . 'composer.phar')) {
- out('- Installing dependencies...', 'info');
-
- runProcess('php ' . BB_ROOT . 'composer.phar install --no-interaction --no-ansi');
- define('COMPOSER_COMPLETED', true);
- } else {
- out('- composer.phar not found. Please, download it (composer.phar) manually', 'error');
- exit;
- }
-} else {
- out('- Composer dependencies are present!', 'success');
- out("- Note: Remove 'vendor' folder if you want to re-install dependencies\n");
-}
-
-// Check composer dependencies
-if (defined('COMPOSER_COMPLETED')) {
- if (is_file(BB_ROOT . 'vendor/autoload.php')) {
- out("- Completed! Composer dependencies are installed!\n", 'success');
- } else {
- exit;
- }
-}
-
-// Preparing ENV
-if (is_file(BB_ROOT . '.env.example') && !is_file(BB_ROOT . '.env')) {
- if (copy(BB_ROOT . '.env.example', BB_ROOT . '.env')) {
- out("- Environment file created!\n", 'success');
- } else {
- out('- Cannot create environment file', 'error');
- exit;
- }
-}
-
-// Editing ENV file
-$DB_HOST = 'localhost';
-$DB_PORT = 3306;
-$DB_DATABASE = '';
-$DB_USERNAME = '';
-$DB_PASSWORD = '';
-
-if (is_file(BB_ROOT . '.env')) {
- out("--- Configuring TorrentPier ---", 'info');
-
- $envContent = file_get_contents(BB_ROOT . '.env');
- if ($envContent === false) {
- out('- Cannot open environment file', 'error');
- exit;
- }
- $envLines = explode("\n", $envContent);
-
- $editedLines = [];
- foreach ($envLines as $line) {
- if (trim($line) !== '' && !str_starts_with($line, '#')) {
- $parts = explode('=', $line, 2);
- $key = trim($parts[0]);
- $value = (!empty($parts[1]) && $key !== 'DB_PASSWORD') ? trim($parts[1]) : '';
-
- out("\nCurrent value of $key: $value", 'debug');
- echo "Enter a new value for $key (or leave empty to not change): ";
- $newValue = trim(readline());
-
- if (!empty($newValue) || $key === 'DB_PASSWORD') {
- if ($key === 'TP_HOST') {
- if (!preg_match('/^https?:\/\//', $newValue)) {
- $newValue = 'https://' . $newValue;
- }
- $newValue = parse_url($newValue, PHP_URL_HOST);
- }
- $line = "$key=$newValue";
- $$key = $newValue;
- } else {
- $$key = $value;
- }
- }
-
- $editedLines[] = $line;
- }
-
- $newEnvContent = implode("\n", $editedLines);
- if (file_put_contents(BB_ROOT . '.env', $newEnvContent)) {
- out("- TorrentPier successfully configured!\n", 'success');
- } else {
- out('- Cannot save environment file', 'error');
- exit;
- }
-} else {
- out('- Environment file not found', 'error');
- exit;
-}
-
-if (!empty($DB_HOST) && !empty($DB_DATABASE) && !empty($DB_USERNAME)) {
- out("--- Checking environment settings ---\n", 'info');
- // Connecting to database
- out("- Trying connect to MySQL...", 'info');
-
- // Checking mysqli extension installed
- if (!extension_loaded('mysqli')) {
- out('- ext-mysqli not found. Check out php.ini file', 'error');
- exit;
- }
-
- // Connect to MySQL server
- try {
- $conn = new mysqli($DB_HOST, $DB_USERNAME, $DB_PASSWORD, port: $DB_PORT);
- } catch (mysqli_sql_exception $exception) {
- out("- Connection failed: {$exception->getMessage()}", 'error');
- exit;
- }
- if (!$conn->connect_error) {
- out('- Connected successfully!', 'success');
- }
-
- // Creating database if not exist
- if ($conn->query("CREATE DATABASE IF NOT EXISTS $DB_DATABASE CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci")) {
- out('- Database created successfully!', 'success');
- } else {
- out("- Cannot create database: $DB_DATABASE", 'error');
- exit;
- }
- $conn->select_db($DB_DATABASE);
-
- // Close database connection - migrations will handle their own connections
- $conn->close();
-
- // Run database migrations
- out('- Setting up database using migrations...', 'info');
-
- // Check if phinx.php exists
- if (!is_file(BB_ROOT . 'phinx.php')) {
- out('- Migration configuration (phinx.php) not found', 'error');
- exit;
- }
-
- // Run migrations
- $migrationResult = runProcess('php vendor/bin/phinx migrate --configuration=' . BB_ROOT . 'phinx.php');
- if ($migrationResult !== 0) {
- out('- Database migration failed', 'error');
- exit;
- }
-
- out("- Database setup completed!\n", 'success');
-
- // Autofill host in robots.txt
- $robots_txt_file = BB_ROOT . 'robots.txt';
- if (isset($TP_HOST) && is_file($robots_txt_file)) {
- $content = file_get_contents($robots_txt_file);
- $content = str_replace('example.com', $TP_HOST, $content);
- file_put_contents($robots_txt_file, $content);
- }
-
- if (isset($APP_ENV) && $APP_ENV === 'local') {
- if (!is_file(BB_ROOT . 'library/config.local.php')) {
- if (copy(BB_ROOT . 'library/config.php', BB_ROOT . 'library/config.local.php')) {
- out('- Local configuration file created!', 'success');
- } else {
- out('- Cannot create library/config.local.php file. You can create it manually, just copy config.php and rename it to config.local.php', 'warning');
- }
- }
- } else {
- if (rename(__FILE__, __FILE__ . '_' . hash('xxh128', time()))) {
- out("- Installation file renamed!", 'success');
- } else {
- out('- Cannot rename installation file (' . __FILE__ . '). Please, rename it manually for security reasons', 'warning');
- }
- }
-
- // Cleanup...
- if (is_file(BB_ROOT . '_cleanup.php')) {
- out("\n--- Finishing installation (Cleanup) ---\n", 'info');
- out('The cleanup process will remove:');
- out('- Development documentation (README, CHANGELOG)', 'debug');
- out('- Git configuration files', 'debug');
- out('- CI/CD pipelines and code analysis tools', 'debug');
- out('- Translation and contribution guidelines', 'debug');
- echo 'Do you want to delete these files permanently? [y/N]: ';
- if (str_starts_with(mb_strtolower(trim(readline())), 'y')) {
- out("\n- Cleanup...", 'info');
- require_once BB_ROOT . '_cleanup.php';
- unlink(BB_ROOT . '_cleanup.php');
- } else {
- out('- Skipping...', 'info');
- }
- }
-
- out("\n- Voila! Good luck & have fun!", 'success');
-}
diff --git a/install/Caddyfile b/install/Caddyfile
deleted file mode 100644
index 683d69994..000000000
--- a/install/Caddyfile
+++ /dev/null
@@ -1,27 +0,0 @@
-# Example Caddy configuration for TorrentPier
-
-example.com {
- root * /path/to/root
- encode gzip zstd
- php_fastcgi unix//run/php/php-fpm.sock
- try_files {path} {path}/ /index.php?{query}
- file_server
-
- @blocked {
- path /install/* /internal_data/* /library/*
- path /.ht* /.en*
- path /.git/*
- path *.sql *.tpl *.db *.inc *.log *.md
- }
- respond @blocked 404
-
- redir /sitemap.xml /sitemap/sitemap.xml
-
- @html_css_js {
- path *.html *.css *.js *.json *.xml *.txt
- }
- header @html_css_js Content-Type "{mime}; charset=utf-8"
-}
-
-# Refer to the Caddy docs for more information:
-# https://caddyserver.com/docs/caddyfile
diff --git a/install/nginx.conf b/install/nginx.conf
deleted file mode 100644
index 49a407ba4..000000000
--- a/install/nginx.conf
+++ /dev/null
@@ -1,39 +0,0 @@
-# Example nginx configuration for TorrentPier
-
-server {
- listen 80; # port
- server_name example.com; # your domain
- root /path/to/root; # folder with TorrentPier installed
- index index.php;
- charset utf-8;
-
- location / {
- try_files \$uri \$uri/ /index.php?\$args;
- }
-
- location ~ \/(install|internal_data|library)\/ {
- return 404;
- }
-
- location ~ /\.(ht|en) {
- return 404;
- }
-
- location ~ /\.git {
- return 404;
- }
-
- location ~ \.(.*sql|tpl|db|inc|log|md)$ {
- return 404;
- }
-
- rewrite ^/sitemap.xml$ /sitemap/sitemap.xml;
-
- location ~ \.php$ {
- include fastcgi_params;
- fastcgi_pass unix:/run/php/php-fpm.sock;
- fastcgi_index index.php;
- fastcgi_param SCRIPT_FILENAME \$document_root\$fastcgi_script_name;
- include fastcgi_params;
- }
-}
diff --git a/internal_data/log/.keep b/internal_data/log/.keep
deleted file mode 100644
index e69de29bb..000000000
diff --git a/.env.example b/legacy/.env.example
similarity index 100%
rename from .env.example
rename to legacy/.env.example
diff --git a/legacy/.gitignore b/legacy/.gitignore
new file mode 100644
index 000000000..dd0e1f365
--- /dev/null
+++ b/legacy/.gitignore
@@ -0,0 +1,47 @@
+### IDE ###
+.idea
+.vscode
+
+### TorrentPier ###
+*.log
+install.php_*
+composer-setup.php
+.env
+.php_cs.cache
+data/avatars
+data/uploads
+internal_data/atom
+internal_data/cache
+internal_data/log
+internal_data/updater.json
+sitemap
+internal_data/triggers
+library/config.local.php
+vendor
+
+### Archives ###
+*.phar
+*.rar
+*.tar
+*.gz
+*.zip
+*.7z
+*.torrent
+*.pak
+
+### Windows ###
+Thumbs.db
+Desktop.ini
+$RECYCLE.BIN/
+*.lnk
+*.bat
+
+### OSX ###
+.DS_Store
+.AppleDouble
+.LSOverride
+._*
+.Spotlight-V100
+.Trashes
+*.orig
+*.rej
diff --git a/.styleci.yml b/legacy/.styleci.yml
similarity index 100%
rename from .styleci.yml
rename to legacy/.styleci.yml
diff --git a/CHANGELOG.md b/legacy/CHANGELOG.md
similarity index 100%
rename from CHANGELOG.md
rename to legacy/CHANGELOG.md
diff --git a/CLAUDE.md b/legacy/CLAUDE.md
similarity index 100%
rename from CLAUDE.md
rename to legacy/CLAUDE.md
diff --git a/CODE_OF_CONDUCT.md b/legacy/CODE_OF_CONDUCT.md
similarity index 100%
rename from CODE_OF_CONDUCT.md
rename to legacy/CODE_OF_CONDUCT.md
diff --git a/CONTRIBUTING.md b/legacy/CONTRIBUTING.md
similarity index 100%
rename from CONTRIBUTING.md
rename to legacy/CONTRIBUTING.md
diff --git a/legacy/README.md b/legacy/README.md
new file mode 100644
index 000000000..5e7a13049
--- /dev/null
+++ b/legacy/README.md
@@ -0,0 +1,192 @@
+
+
+
+ Bull-powered BitTorrent tracker engine
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+## ๐ About TorrentPier
+
+TorrentPier โ bull-powered BitTorrent Public/Private tracker engine, written in PHP. High speed, simple modifications, load-balanced
+architecture. In addition, we have a very helpful
+[official support forum](https://torrentpier.com), where it's possible to get support and download modifications for the engine.
+
+## ๐ Current status
+
+TorrentPier is currently undergoing a **major 3.0 rewrite** to remove all legacy code and modernize the codebase to current PHP standards. **Backward compatibility is not a priority** - this release focuses on moving forward with clean, modern architecture. If you want to delve deep into the code, check our [issues](https://github.com/torrentpier/torrentpier/issues) and go from there.
+
+> [!NOTE]
+> TorrentPier 3.0 will introduce breaking changes. Existing installations should remain on 2.x versions until ready to migrate to the new architecture.
+
+## โจ Features
+* Rich forum with browsing/moderation tools
+* High-load capable, heavily configurable announcer
+* Scrape support
+* FreeLeech
+* [TorrServer integration](https://github.com/YouROK/TorrServer) support
+* BitTorrent v2 support
+* Event-based invite system
+* Bonus points
+* Polling system
+* PM/DM system
+* Multilingual support (Russian and English are currently fully supported, with others in the future)
+* Atom/RSS feeds
+* ... and so MUCH MORE!
+
+## ๐ฅ๏ธ Demo
+
+* URL: https://torrentpier.duckdns.org
+* Username: `admin`
+* Password: `admin`
+
+> [!NOTE]
+> Demo resets every 24 hours!
+
+## ๐ง Requirements
+
+* Apache / nginx ([example config](install/nginx.conf)) / caddy ([example config](install/Caddyfile))
+* MySQL 5.5.3 or above (including MySQL 8.0+) / MariaDB 10.0 or above / Percona
+* PHP: 8.3 / 8.4
+* PHP Extensions: mbstring, gd, bcmath, intl, tidy (optional), xml, xmlwriter
+* Crontab (Recommended)
+
+## ๐พ Installation
+
+For the installation, select one of the installation variants below:
+
+### Quick (Clean install) ๐
+
+Check out our [autoinstall](https://github.com/torrentpier/autoinstall) repository with detailed instructions.
+
+> [!NOTE]
+> Thanks to [Sergei Solovev](https://github.com/SeAnSolovev) for this installation script โค๏ธ
+
+### Quick (For web-panels) โ๏ธ
+
+1. Select the folder where you want TorrentPier installed
+ ```shell
+ cd /path/to/public_html
+ ```
+2. Download the latest version of TorrentPier
+ ```shell
+ sudo git clone https://github.com/torrentpier/torrentpier.git .
+ ```
+3. After completing, execute the command below and follow the instructions
+ ```shell
+ php install.php
+ ```
+4. Voila! โจ
+
+### Manual ๐ฉ
+
+1. Install [Composer](https://getcomposer.org/)
+2. Run the following command to create the TorrentPier project
+ ```shell
+ composer create-project torrentpier/torrentpier
+ ```
+3. [Check our system requirements](#-requirements)
+4. After, run this command in the project directory to install Composer dependencies
+ ```shell
+ composer install
+ ```
+5. Edit database configuration settings in the environment (`.env.example`), after, rename to `.env`
+6. Create a database and run migrations to set up the schema
+ ```shell
+ php vendor/bin/phinx migrate --configuration=phinx.php
+ ```
+7. Provide write permissions to the specified folders:
+ * `data/avatars`, `data/uploads`, `data/uploads/thumbs`
+ * `internal_data/atom`, `internal_data/cache`, `internal_data/log`, `internal_data/triggers`
+ * `sitemap`
+8. Voila! โจ
+
+> [!TIP]
+> You can automate steps 4-7 by running `php install.php` instead, which will guide you through the setup process interactively.
+
+> [!IMPORTANT]
+> The specific settings depend on the server you are using, but in general we recommend chmod **0755** for folders, and chmod **0644** for the files in them.
+
+### Additional steps ๐ฃ
+
+1. Edit these files:
+ * `favicon.png` (change to your own)
+ * `robots.txt` (change the addresses in lines `Host` and `Sitemap` to your own)
+2. Log in to the forum using the **admin/admin** login/password, and finish setting up via admin panel. Don't forget to change your password!
+
+## ๐ Security vulnerabilities
+
+If you discover a security vulnerability within TorrentPier, please follow our [security policy](https://github.com/torrentpier/torrentpier/security/policy), so we can address it promptly.
+
+## ๐งช Testing
+
+TorrentPier includes a comprehensive testing suite built with **Pest PHP**. Run tests to ensure code quality and system reliability:
+
+```shell
+# Run all tests
+./vendor/bin/pest
+
+# Run with coverage
+./vendor/bin/pest --coverage
+```
+
+For detailed testing documentation, see [tests/README.md](tests/README.md).
+
+## ๐ Our recommendations
+
+* *It's recommended to run `cron.php`.* - For significant tracker speed increase it may be required to replace the built-in cron.php with an operating system daemon.
+* *Local configuration copy.* - You can override the settings using the local configuration file `library/config.local.php`.
+
+## ๐ Contributing / Contributors
+
+Please read our [contributing policy](CONTRIBUTING.md) and [code of conduct](CODE_OF_CONDUCT.md) for details, and the process for
+submitting pull requests to us. But we are always ready to review your pull-request for compliance with
+these requirements. Just send it!
+
+
+
+
+
+Made with [contrib.rocks](https://contrib.rocks).
+
+## ๐ Sponsoring
+
+Support this project by becoming a sponsor or a backer.
+
+[](https://opencollective.com/torrentpier)
+[](https://opencollective.com/torrentpier)
+
+
+ Monero
+
+```
+42zJE3FDvN8foP9QYgDrBjgtd7h2FipGCGmAcmG5VFQuRkJBGMbCvoLSmivepmAMEgik2E8MPWUzKaoYsGCtmhvL7ZN73jh
+```
+
+
+
+ YooMoney
+
+```
+4100118022415720
+```
+
+
+## ๐ฆ Versioning
+
+We use [SemVer](http://semver.org/) for versioning. For the versions available, see the [tags on this repository](https://github.com/torrentpier/torrentpier/tags).
+
+## ๐ License
+
+This project is licensed under the MIT License - see the [LICENSE](https://github.com/torrentpier/torrentpier/blob/master/LICENSE) file for details.
diff --git a/SECURITY.md b/legacy/SECURITY.md
similarity index 100%
rename from SECURITY.md
rename to legacy/SECURITY.md
diff --git a/UPGRADE_GUIDE.md b/legacy/UPGRADE_GUIDE.md
similarity index 100%
rename from UPGRADE_GUIDE.md
rename to legacy/UPGRADE_GUIDE.md
diff --git a/admin/admin_attach_cp.php b/legacy/admin/admin_attach_cp.php
similarity index 100%
rename from admin/admin_attach_cp.php
rename to legacy/admin/admin_attach_cp.php
diff --git a/admin/admin_attachments.php b/legacy/admin/admin_attachments.php
similarity index 100%
rename from admin/admin_attachments.php
rename to legacy/admin/admin_attachments.php
diff --git a/admin/admin_board.php b/legacy/admin/admin_board.php
similarity index 100%
rename from admin/admin_board.php
rename to legacy/admin/admin_board.php
diff --git a/admin/admin_bt_forum_cfg.php b/legacy/admin/admin_bt_forum_cfg.php
similarity index 100%
rename from admin/admin_bt_forum_cfg.php
rename to legacy/admin/admin_bt_forum_cfg.php
diff --git a/admin/admin_cron.php b/legacy/admin/admin_cron.php
similarity index 100%
rename from admin/admin_cron.php
rename to legacy/admin/admin_cron.php
diff --git a/admin/admin_disallow.php b/legacy/admin/admin_disallow.php
similarity index 100%
rename from admin/admin_disallow.php
rename to legacy/admin/admin_disallow.php
diff --git a/admin/admin_extensions.php b/legacy/admin/admin_extensions.php
similarity index 100%
rename from admin/admin_extensions.php
rename to legacy/admin/admin_extensions.php
diff --git a/admin/admin_forum_prune.php b/legacy/admin/admin_forum_prune.php
similarity index 100%
rename from admin/admin_forum_prune.php
rename to legacy/admin/admin_forum_prune.php
diff --git a/admin/admin_forumauth.php b/legacy/admin/admin_forumauth.php
similarity index 100%
rename from admin/admin_forumauth.php
rename to legacy/admin/admin_forumauth.php
diff --git a/admin/admin_forumauth_list.php b/legacy/admin/admin_forumauth_list.php
similarity index 100%
rename from admin/admin_forumauth_list.php
rename to legacy/admin/admin_forumauth_list.php
diff --git a/admin/admin_forums.php b/legacy/admin/admin_forums.php
similarity index 100%
rename from admin/admin_forums.php
rename to legacy/admin/admin_forums.php
diff --git a/admin/admin_groups.php b/legacy/admin/admin_groups.php
similarity index 100%
rename from admin/admin_groups.php
rename to legacy/admin/admin_groups.php
diff --git a/admin/admin_log.php b/legacy/admin/admin_log.php
similarity index 100%
rename from admin/admin_log.php
rename to legacy/admin/admin_log.php
diff --git a/admin/admin_mass_email.php b/legacy/admin/admin_mass_email.php
similarity index 100%
rename from admin/admin_mass_email.php
rename to legacy/admin/admin_mass_email.php
diff --git a/admin/admin_migrations.php b/legacy/admin/admin_migrations.php
similarity index 100%
rename from admin/admin_migrations.php
rename to legacy/admin/admin_migrations.php
diff --git a/admin/admin_phpinfo.php b/legacy/admin/admin_phpinfo.php
similarity index 100%
rename from admin/admin_phpinfo.php
rename to legacy/admin/admin_phpinfo.php
diff --git a/admin/admin_ranks.php b/legacy/admin/admin_ranks.php
similarity index 100%
rename from admin/admin_ranks.php
rename to legacy/admin/admin_ranks.php
diff --git a/admin/admin_rebuild_search.php b/legacy/admin/admin_rebuild_search.php
similarity index 100%
rename from admin/admin_rebuild_search.php
rename to legacy/admin/admin_rebuild_search.php
diff --git a/admin/admin_robots.php b/legacy/admin/admin_robots.php
similarity index 100%
rename from admin/admin_robots.php
rename to legacy/admin/admin_robots.php
diff --git a/admin/admin_sitemap.php b/legacy/admin/admin_sitemap.php
similarity index 100%
rename from admin/admin_sitemap.php
rename to legacy/admin/admin_sitemap.php
diff --git a/admin/admin_smilies.php b/legacy/admin/admin_smilies.php
similarity index 100%
rename from admin/admin_smilies.php
rename to legacy/admin/admin_smilies.php
diff --git a/admin/admin_terms.php b/legacy/admin/admin_terms.php
similarity index 100%
rename from admin/admin_terms.php
rename to legacy/admin/admin_terms.php
diff --git a/admin/admin_ug_auth.php b/legacy/admin/admin_ug_auth.php
similarity index 100%
rename from admin/admin_ug_auth.php
rename to legacy/admin/admin_ug_auth.php
diff --git a/admin/admin_user_ban.php b/legacy/admin/admin_user_ban.php
similarity index 100%
rename from admin/admin_user_ban.php
rename to legacy/admin/admin_user_ban.php
diff --git a/admin/admin_user_search.php b/legacy/admin/admin_user_search.php
similarity index 100%
rename from admin/admin_user_search.php
rename to legacy/admin/admin_user_search.php
diff --git a/admin/admin_words.php b/legacy/admin/admin_words.php
similarity index 100%
rename from admin/admin_words.php
rename to legacy/admin/admin_words.php
diff --git a/admin/index.php b/legacy/admin/index.php
similarity index 100%
rename from admin/index.php
rename to legacy/admin/index.php
diff --git a/admin/pagestart.php b/legacy/admin/pagestart.php
similarity index 100%
rename from admin/pagestart.php
rename to legacy/admin/pagestart.php
diff --git a/admin/stats/tr_stats.php b/legacy/admin/stats/tr_stats.php
similarity index 100%
rename from admin/stats/tr_stats.php
rename to legacy/admin/stats/tr_stats.php
diff --git a/admin/stats/tracker.php b/legacy/admin/stats/tracker.php
similarity index 100%
rename from admin/stats/tracker.php
rename to legacy/admin/stats/tracker.php
diff --git a/ajax.php b/legacy/ajax.php
similarity index 100%
rename from ajax.php
rename to legacy/ajax.php
diff --git a/bt/announce.php b/legacy/bt/announce.php
similarity index 100%
rename from bt/announce.php
rename to legacy/bt/announce.php
diff --git a/bt/includes/init_tr.php b/legacy/bt/includes/init_tr.php
similarity index 100%
rename from bt/includes/init_tr.php
rename to legacy/bt/includes/init_tr.php
diff --git a/bt/index.php b/legacy/bt/index.php
similarity index 100%
rename from bt/index.php
rename to legacy/bt/index.php
diff --git a/bt/scrape.php b/legacy/bt/scrape.php
similarity index 100%
rename from bt/scrape.php
rename to legacy/bt/scrape.php
diff --git a/common.php b/legacy/common.php
similarity index 100%
rename from common.php
rename to legacy/common.php
diff --git a/composer.json b/legacy/composer.json
similarity index 100%
rename from composer.json
rename to legacy/composer.json
diff --git a/composer.lock b/legacy/composer.lock
similarity index 100%
rename from composer.lock
rename to legacy/composer.lock
diff --git a/cron.php b/legacy/cron.php
similarity index 100%
rename from cron.php
rename to legacy/cron.php
diff --git a/data/avatars/gallery/bot.gif b/legacy/data/avatars/gallery/bot.gif
similarity index 100%
rename from data/avatars/gallery/bot.gif
rename to legacy/data/avatars/gallery/bot.gif
diff --git a/data/avatars/gallery/noavatar.png b/legacy/data/avatars/gallery/noavatar.png
similarity index 100%
rename from data/avatars/gallery/noavatar.png
rename to legacy/data/avatars/gallery/noavatar.png
diff --git a/config/environments/.keep b/legacy/data/uploads/thumbs/.keep
similarity index 100%
rename from config/environments/.keep
rename to legacy/data/uploads/thumbs/.keep
diff --git a/dl.php b/legacy/dl.php
similarity index 100%
rename from dl.php
rename to legacy/dl.php
diff --git a/dl_list.php b/legacy/dl_list.php
similarity index 100%
rename from dl_list.php
rename to legacy/dl_list.php
diff --git a/favicon.png b/legacy/favicon.png
similarity index 100%
rename from favicon.png
rename to legacy/favicon.png
diff --git a/feed.php b/legacy/feed.php
similarity index 100%
rename from feed.php
rename to legacy/feed.php
diff --git a/filelist.php b/legacy/filelist.php
similarity index 100%
rename from filelist.php
rename to legacy/filelist.php
diff --git a/group.php b/legacy/group.php
similarity index 100%
rename from group.php
rename to legacy/group.php
diff --git a/group_edit.php b/legacy/group_edit.php
similarity index 100%
rename from group_edit.php
rename to legacy/group_edit.php
diff --git a/index.php b/legacy/index.php
similarity index 100%
rename from index.php
rename to legacy/index.php
diff --git a/info.php b/legacy/info.php
similarity index 100%
rename from info.php
rename to legacy/info.php
diff --git a/data/uploads/thumbs/.keep b/legacy/internal_data/atom/.keep
similarity index 100%
rename from data/uploads/thumbs/.keep
rename to legacy/internal_data/atom/.keep
diff --git a/internal_data/atom/.keep b/legacy/internal_data/cache/.keep
similarity index 100%
rename from internal_data/atom/.keep
rename to legacy/internal_data/cache/.keep
diff --git a/internal_data/cache/.keep b/legacy/internal_data/log/.keep
similarity index 100%
rename from internal_data/cache/.keep
rename to legacy/internal_data/log/.keep
diff --git a/internal_data/triggers/$on b/legacy/internal_data/triggers/$on
similarity index 100%
rename from internal_data/triggers/$on
rename to legacy/internal_data/triggers/$on
diff --git a/library/ajax/avatar.php b/legacy/library/ajax/avatar.php
similarity index 100%
rename from library/ajax/avatar.php
rename to legacy/library/ajax/avatar.php
diff --git a/library/ajax/callseed.php b/legacy/library/ajax/callseed.php
similarity index 100%
rename from library/ajax/callseed.php
rename to legacy/library/ajax/callseed.php
diff --git a/library/ajax/change_tor_status.php b/legacy/library/ajax/change_tor_status.php
similarity index 100%
rename from library/ajax/change_tor_status.php
rename to legacy/library/ajax/change_tor_status.php
diff --git a/library/ajax/change_torrent.php b/legacy/library/ajax/change_torrent.php
similarity index 100%
rename from library/ajax/change_torrent.php
rename to legacy/library/ajax/change_torrent.php
diff --git a/library/ajax/change_user_opt.php b/legacy/library/ajax/change_user_opt.php
similarity index 100%
rename from library/ajax/change_user_opt.php
rename to legacy/library/ajax/change_user_opt.php
diff --git a/library/ajax/change_user_rank.php b/legacy/library/ajax/change_user_rank.php
similarity index 100%
rename from library/ajax/change_user_rank.php
rename to legacy/library/ajax/change_user_rank.php
diff --git a/library/ajax/edit_group_profile.php b/legacy/library/ajax/edit_group_profile.php
similarity index 100%
rename from library/ajax/edit_group_profile.php
rename to legacy/library/ajax/edit_group_profile.php
diff --git a/library/ajax/edit_user_profile.php b/legacy/library/ajax/edit_user_profile.php
similarity index 100%
rename from library/ajax/edit_user_profile.php
rename to legacy/library/ajax/edit_user_profile.php
diff --git a/library/ajax/ffprobe_info.php b/legacy/library/ajax/ffprobe_info.php
similarity index 100%
rename from library/ajax/ffprobe_info.php
rename to legacy/library/ajax/ffprobe_info.php
diff --git a/library/ajax/group_membership.php b/legacy/library/ajax/group_membership.php
similarity index 100%
rename from library/ajax/group_membership.php
rename to legacy/library/ajax/group_membership.php
diff --git a/library/ajax/index_data.php b/legacy/library/ajax/index_data.php
similarity index 100%
rename from library/ajax/index_data.php
rename to legacy/library/ajax/index_data.php
diff --git a/library/ajax/manage_admin.php b/legacy/library/ajax/manage_admin.php
similarity index 100%
rename from library/ajax/manage_admin.php
rename to legacy/library/ajax/manage_admin.php
diff --git a/library/ajax/manage_user.php b/legacy/library/ajax/manage_user.php
similarity index 100%
rename from library/ajax/manage_user.php
rename to legacy/library/ajax/manage_user.php
diff --git a/library/ajax/mod_action.php b/legacy/library/ajax/mod_action.php
similarity index 100%
rename from library/ajax/mod_action.php
rename to legacy/library/ajax/mod_action.php
diff --git a/library/ajax/passkey.php b/legacy/library/ajax/passkey.php
similarity index 100%
rename from library/ajax/passkey.php
rename to legacy/library/ajax/passkey.php
diff --git a/library/ajax/post_mod_comment.php b/legacy/library/ajax/post_mod_comment.php
similarity index 100%
rename from library/ajax/post_mod_comment.php
rename to legacy/library/ajax/post_mod_comment.php
diff --git a/library/ajax/posts.php b/legacy/library/ajax/posts.php
similarity index 100%
rename from library/ajax/posts.php
rename to legacy/library/ajax/posts.php
diff --git a/library/ajax/sitemap.php b/legacy/library/ajax/sitemap.php
similarity index 100%
rename from library/ajax/sitemap.php
rename to legacy/library/ajax/sitemap.php
diff --git a/library/ajax/thanks.php b/legacy/library/ajax/thanks.php
similarity index 100%
rename from library/ajax/thanks.php
rename to legacy/library/ajax/thanks.php
diff --git a/library/ajax/topic_tpl.php b/legacy/library/ajax/topic_tpl.php
similarity index 100%
rename from library/ajax/topic_tpl.php
rename to legacy/library/ajax/topic_tpl.php
diff --git a/library/ajax/user_register.php b/legacy/library/ajax/user_register.php
similarity index 100%
rename from library/ajax/user_register.php
rename to legacy/library/ajax/user_register.php
diff --git a/library/ajax/view_post.php b/legacy/library/ajax/view_post.php
similarity index 100%
rename from library/ajax/view_post.php
rename to legacy/library/ajax/view_post.php
diff --git a/library/ajax/view_torrent.php b/legacy/library/ajax/view_torrent.php
similarity index 100%
rename from library/ajax/view_torrent.php
rename to legacy/library/ajax/view_torrent.php
diff --git a/library/attach_mod/attachment_mod.php b/legacy/library/attach_mod/attachment_mod.php
similarity index 100%
rename from library/attach_mod/attachment_mod.php
rename to legacy/library/attach_mod/attachment_mod.php
diff --git a/library/attach_mod/displaying.php b/legacy/library/attach_mod/displaying.php
similarity index 100%
rename from library/attach_mod/displaying.php
rename to legacy/library/attach_mod/displaying.php
diff --git a/library/attach_mod/displaying_torrent.php b/legacy/library/attach_mod/displaying_torrent.php
similarity index 100%
rename from library/attach_mod/displaying_torrent.php
rename to legacy/library/attach_mod/displaying_torrent.php
diff --git a/library/attach_mod/includes/functions_admin.php b/legacy/library/attach_mod/includes/functions_admin.php
similarity index 100%
rename from library/attach_mod/includes/functions_admin.php
rename to legacy/library/attach_mod/includes/functions_admin.php
diff --git a/library/attach_mod/includes/functions_attach.php b/legacy/library/attach_mod/includes/functions_attach.php
similarity index 100%
rename from library/attach_mod/includes/functions_attach.php
rename to legacy/library/attach_mod/includes/functions_attach.php
diff --git a/library/attach_mod/includes/functions_delete.php b/legacy/library/attach_mod/includes/functions_delete.php
similarity index 100%
rename from library/attach_mod/includes/functions_delete.php
rename to legacy/library/attach_mod/includes/functions_delete.php
diff --git a/library/attach_mod/includes/functions_includes.php b/legacy/library/attach_mod/includes/functions_includes.php
similarity index 100%
rename from library/attach_mod/includes/functions_includes.php
rename to legacy/library/attach_mod/includes/functions_includes.php
diff --git a/library/attach_mod/includes/functions_selects.php b/legacy/library/attach_mod/includes/functions_selects.php
similarity index 100%
rename from library/attach_mod/includes/functions_selects.php
rename to legacy/library/attach_mod/includes/functions_selects.php
diff --git a/library/attach_mod/includes/functions_thumbs.php b/legacy/library/attach_mod/includes/functions_thumbs.php
similarity index 100%
rename from library/attach_mod/includes/functions_thumbs.php
rename to legacy/library/attach_mod/includes/functions_thumbs.php
diff --git a/library/attach_mod/posting_attachments.php b/legacy/library/attach_mod/posting_attachments.php
similarity index 100%
rename from library/attach_mod/posting_attachments.php
rename to legacy/library/attach_mod/posting_attachments.php
diff --git a/library/config.php b/legacy/library/config.php
similarity index 100%
rename from library/config.php
rename to legacy/library/config.php
diff --git a/library/defines.php b/legacy/library/defines.php
similarity index 100%
rename from library/defines.php
rename to legacy/library/defines.php
diff --git a/library/includes/bbcode.php b/legacy/library/includes/bbcode.php
similarity index 100%
rename from library/includes/bbcode.php
rename to legacy/library/includes/bbcode.php
diff --git a/library/includes/cron/cron_check.php b/legacy/library/includes/cron/cron_check.php
similarity index 100%
rename from library/includes/cron/cron_check.php
rename to legacy/library/includes/cron/cron_check.php
diff --git a/library/includes/cron/cron_run.php b/legacy/library/includes/cron/cron_run.php
similarity index 100%
rename from library/includes/cron/cron_run.php
rename to legacy/library/includes/cron/cron_run.php
diff --git a/library/includes/cron/jobs/attach_maintenance.php b/legacy/library/includes/cron/jobs/attach_maintenance.php
similarity index 100%
rename from library/includes/cron/jobs/attach_maintenance.php
rename to legacy/library/includes/cron/jobs/attach_maintenance.php
diff --git a/library/includes/cron/jobs/board_maintenance.php b/legacy/library/includes/cron/jobs/board_maintenance.php
similarity index 100%
rename from library/includes/cron/jobs/board_maintenance.php
rename to legacy/library/includes/cron/jobs/board_maintenance.php
diff --git a/library/includes/cron/jobs/clean_dlstat.php b/legacy/library/includes/cron/jobs/clean_dlstat.php
similarity index 100%
rename from library/includes/cron/jobs/clean_dlstat.php
rename to legacy/library/includes/cron/jobs/clean_dlstat.php
diff --git a/library/includes/cron/jobs/clean_log.php b/legacy/library/includes/cron/jobs/clean_log.php
similarity index 100%
rename from library/includes/cron/jobs/clean_log.php
rename to legacy/library/includes/cron/jobs/clean_log.php
diff --git a/library/includes/cron/jobs/clean_pm.php b/legacy/library/includes/cron/jobs/clean_pm.php
similarity index 100%
rename from library/includes/cron/jobs/clean_pm.php
rename to legacy/library/includes/cron/jobs/clean_pm.php
diff --git a/library/includes/cron/jobs/clean_search_results.php b/legacy/library/includes/cron/jobs/clean_search_results.php
similarity index 100%
rename from library/includes/cron/jobs/clean_search_results.php
rename to legacy/library/includes/cron/jobs/clean_search_results.php
diff --git a/library/includes/cron/jobs/ds_update_cat_forums.php b/legacy/library/includes/cron/jobs/ds_update_cat_forums.php
similarity index 100%
rename from library/includes/cron/jobs/ds_update_cat_forums.php
rename to legacy/library/includes/cron/jobs/ds_update_cat_forums.php
diff --git a/library/includes/cron/jobs/ds_update_stats.php b/legacy/library/includes/cron/jobs/ds_update_stats.php
similarity index 100%
rename from library/includes/cron/jobs/ds_update_stats.php
rename to legacy/library/includes/cron/jobs/ds_update_stats.php
diff --git a/library/includes/cron/jobs/flash_topic_view.php b/legacy/library/includes/cron/jobs/flash_topic_view.php
similarity index 100%
rename from library/includes/cron/jobs/flash_topic_view.php
rename to legacy/library/includes/cron/jobs/flash_topic_view.php
diff --git a/library/includes/cron/jobs/prune_forums.php b/legacy/library/includes/cron/jobs/prune_forums.php
similarity index 100%
rename from library/includes/cron/jobs/prune_forums.php
rename to legacy/library/includes/cron/jobs/prune_forums.php
diff --git a/library/includes/cron/jobs/prune_inactive_users.php b/legacy/library/includes/cron/jobs/prune_inactive_users.php
similarity index 100%
rename from library/includes/cron/jobs/prune_inactive_users.php
rename to legacy/library/includes/cron/jobs/prune_inactive_users.php
diff --git a/library/includes/cron/jobs/prune_topic_moved.php b/legacy/library/includes/cron/jobs/prune_topic_moved.php
similarity index 100%
rename from library/includes/cron/jobs/prune_topic_moved.php
rename to legacy/library/includes/cron/jobs/prune_topic_moved.php
diff --git a/library/includes/cron/jobs/sessions_cleanup.php b/legacy/library/includes/cron/jobs/sessions_cleanup.php
similarity index 100%
rename from library/includes/cron/jobs/sessions_cleanup.php
rename to legacy/library/includes/cron/jobs/sessions_cleanup.php
diff --git a/library/includes/cron/jobs/sitemap.php b/legacy/library/includes/cron/jobs/sitemap.php
similarity index 100%
rename from library/includes/cron/jobs/sitemap.php
rename to legacy/library/includes/cron/jobs/sitemap.php
diff --git a/library/includes/cron/jobs/tr_cleanup_and_dlstat.php b/legacy/library/includes/cron/jobs/tr_cleanup_and_dlstat.php
similarity index 100%
rename from library/includes/cron/jobs/tr_cleanup_and_dlstat.php
rename to legacy/library/includes/cron/jobs/tr_cleanup_and_dlstat.php
diff --git a/library/includes/cron/jobs/tr_complete_count.php b/legacy/library/includes/cron/jobs/tr_complete_count.php
similarity index 100%
rename from library/includes/cron/jobs/tr_complete_count.php
rename to legacy/library/includes/cron/jobs/tr_complete_count.php
diff --git a/library/includes/cron/jobs/tr_maintenance.php b/legacy/library/includes/cron/jobs/tr_maintenance.php
similarity index 100%
rename from library/includes/cron/jobs/tr_maintenance.php
rename to legacy/library/includes/cron/jobs/tr_maintenance.php
diff --git a/library/includes/cron/jobs/tr_make_snapshot.php b/legacy/library/includes/cron/jobs/tr_make_snapshot.php
similarity index 100%
rename from library/includes/cron/jobs/tr_make_snapshot.php
rename to legacy/library/includes/cron/jobs/tr_make_snapshot.php
diff --git a/library/includes/cron/jobs/tr_seed_bonus.php b/legacy/library/includes/cron/jobs/tr_seed_bonus.php
similarity index 100%
rename from library/includes/cron/jobs/tr_seed_bonus.php
rename to legacy/library/includes/cron/jobs/tr_seed_bonus.php
diff --git a/library/includes/cron/jobs/tr_update_seeder_last_seen.php b/legacy/library/includes/cron/jobs/tr_update_seeder_last_seen.php
similarity index 100%
rename from library/includes/cron/jobs/tr_update_seeder_last_seen.php
rename to legacy/library/includes/cron/jobs/tr_update_seeder_last_seen.php
diff --git a/library/includes/cron/jobs/update_forums_atom.php b/legacy/library/includes/cron/jobs/update_forums_atom.php
similarity index 100%
rename from library/includes/cron/jobs/update_forums_atom.php
rename to legacy/library/includes/cron/jobs/update_forums_atom.php
diff --git a/library/includes/datastore/build_attach_extensions.php b/legacy/library/includes/datastore/build_attach_extensions.php
similarity index 100%
rename from library/includes/datastore/build_attach_extensions.php
rename to legacy/library/includes/datastore/build_attach_extensions.php
diff --git a/library/includes/datastore/build_bans.php b/legacy/library/includes/datastore/build_bans.php
similarity index 100%
rename from library/includes/datastore/build_bans.php
rename to legacy/library/includes/datastore/build_bans.php
diff --git a/library/includes/datastore/build_cat_forums.php b/legacy/library/includes/datastore/build_cat_forums.php
similarity index 100%
rename from library/includes/datastore/build_cat_forums.php
rename to legacy/library/includes/datastore/build_cat_forums.php
diff --git a/library/includes/datastore/build_censor.php b/legacy/library/includes/datastore/build_censor.php
similarity index 100%
rename from library/includes/datastore/build_censor.php
rename to legacy/library/includes/datastore/build_censor.php
diff --git a/library/includes/datastore/build_check_updates.php b/legacy/library/includes/datastore/build_check_updates.php
similarity index 100%
rename from library/includes/datastore/build_check_updates.php
rename to legacy/library/includes/datastore/build_check_updates.php
diff --git a/library/includes/datastore/build_moderators.php b/legacy/library/includes/datastore/build_moderators.php
similarity index 100%
rename from library/includes/datastore/build_moderators.php
rename to legacy/library/includes/datastore/build_moderators.php
diff --git a/library/includes/datastore/build_ranks.php b/legacy/library/includes/datastore/build_ranks.php
similarity index 100%
rename from library/includes/datastore/build_ranks.php
rename to legacy/library/includes/datastore/build_ranks.php
diff --git a/library/includes/datastore/build_smilies.php b/legacy/library/includes/datastore/build_smilies.php
similarity index 100%
rename from library/includes/datastore/build_smilies.php
rename to legacy/library/includes/datastore/build_smilies.php
diff --git a/library/includes/datastore/build_stats.php b/legacy/library/includes/datastore/build_stats.php
similarity index 100%
rename from library/includes/datastore/build_stats.php
rename to legacy/library/includes/datastore/build_stats.php
diff --git a/library/includes/functions.php b/legacy/library/includes/functions.php
similarity index 100%
rename from library/includes/functions.php
rename to legacy/library/includes/functions.php
diff --git a/library/includes/functions_cli.php b/legacy/library/includes/functions_cli.php
similarity index 100%
rename from library/includes/functions_cli.php
rename to legacy/library/includes/functions_cli.php
diff --git a/library/includes/init_bb.php b/legacy/library/includes/init_bb.php
similarity index 100%
rename from library/includes/init_bb.php
rename to legacy/library/includes/init_bb.php
diff --git a/library/includes/online_userlist.php b/legacy/library/includes/online_userlist.php
similarity index 100%
rename from library/includes/online_userlist.php
rename to legacy/library/includes/online_userlist.php
diff --git a/library/includes/page_footer.php b/legacy/library/includes/page_footer.php
similarity index 100%
rename from library/includes/page_footer.php
rename to legacy/library/includes/page_footer.php
diff --git a/library/includes/page_footer_dev.php b/legacy/library/includes/page_footer_dev.php
similarity index 100%
rename from library/includes/page_footer_dev.php
rename to legacy/library/includes/page_footer_dev.php
diff --git a/library/includes/page_header.php b/legacy/library/includes/page_header.php
similarity index 100%
rename from library/includes/page_header.php
rename to legacy/library/includes/page_header.php
diff --git a/library/includes/posting_tpl.php b/legacy/library/includes/posting_tpl.php
similarity index 100%
rename from library/includes/posting_tpl.php
rename to legacy/library/includes/posting_tpl.php
diff --git a/library/includes/torrent_announce_urls.php b/legacy/library/includes/torrent_announce_urls.php
similarity index 100%
rename from library/includes/torrent_announce_urls.php
rename to legacy/library/includes/torrent_announce_urls.php
diff --git a/library/includes/torrent_show_dl_list.php b/legacy/library/includes/torrent_show_dl_list.php
similarity index 100%
rename from library/includes/torrent_show_dl_list.php
rename to legacy/library/includes/torrent_show_dl_list.php
diff --git a/library/includes/ucp/activate.php b/legacy/library/includes/ucp/activate.php
similarity index 100%
rename from library/includes/ucp/activate.php
rename to legacy/library/includes/ucp/activate.php
diff --git a/library/includes/ucp/bonus.php b/legacy/library/includes/ucp/bonus.php
similarity index 100%
rename from library/includes/ucp/bonus.php
rename to legacy/library/includes/ucp/bonus.php
diff --git a/library/includes/ucp/email.php b/legacy/library/includes/ucp/email.php
similarity index 100%
rename from library/includes/ucp/email.php
rename to legacy/library/includes/ucp/email.php
diff --git a/library/includes/ucp/register.php b/legacy/library/includes/ucp/register.php
similarity index 100%
rename from library/includes/ucp/register.php
rename to legacy/library/includes/ucp/register.php
diff --git a/library/includes/ucp/sendpasswd.php b/legacy/library/includes/ucp/sendpasswd.php
similarity index 100%
rename from library/includes/ucp/sendpasswd.php
rename to legacy/library/includes/ucp/sendpasswd.php
diff --git a/library/includes/ucp/topic_watch.php b/legacy/library/includes/ucp/topic_watch.php
similarity index 100%
rename from library/includes/ucp/topic_watch.php
rename to legacy/library/includes/ucp/topic_watch.php
diff --git a/library/includes/ucp/viewprofile.php b/legacy/library/includes/ucp/viewprofile.php
similarity index 100%
rename from library/includes/ucp/viewprofile.php
rename to legacy/library/includes/ucp/viewprofile.php
diff --git a/library/includes/ucp/viewtorrent.php b/legacy/library/includes/ucp/viewtorrent.php
similarity index 100%
rename from library/includes/ucp/viewtorrent.php
rename to legacy/library/includes/ucp/viewtorrent.php
diff --git a/library/language/en/email/admin_send_email.html b/legacy/library/language/en/email/admin_send_email.html
similarity index 100%
rename from library/language/en/email/admin_send_email.html
rename to legacy/library/language/en/email/admin_send_email.html
diff --git a/library/language/en/email/blank.html b/legacy/library/language/en/email/blank.html
similarity index 100%
rename from library/language/en/email/blank.html
rename to legacy/library/language/en/email/blank.html
diff --git a/library/language/en/email/group_added.html b/legacy/library/language/en/email/group_added.html
similarity index 100%
rename from library/language/en/email/group_added.html
rename to legacy/library/language/en/email/group_added.html
diff --git a/library/language/en/email/group_approved.html b/legacy/library/language/en/email/group_approved.html
similarity index 100%
rename from library/language/en/email/group_approved.html
rename to legacy/library/language/en/email/group_approved.html
diff --git a/library/language/en/email/group_request.html b/legacy/library/language/en/email/group_request.html
similarity index 100%
rename from library/language/en/email/group_request.html
rename to legacy/library/language/en/email/group_request.html
diff --git a/library/language/en/email/privmsg_notify.html b/legacy/library/language/en/email/privmsg_notify.html
similarity index 100%
rename from library/language/en/email/privmsg_notify.html
rename to legacy/library/language/en/email/privmsg_notify.html
diff --git a/library/language/en/email/profile_send_email.html b/legacy/library/language/en/email/profile_send_email.html
similarity index 100%
rename from library/language/en/email/profile_send_email.html
rename to legacy/library/language/en/email/profile_send_email.html
diff --git a/library/language/en/email/topic_notify.html b/legacy/library/language/en/email/topic_notify.html
similarity index 100%
rename from library/language/en/email/topic_notify.html
rename to legacy/library/language/en/email/topic_notify.html
diff --git a/library/language/en/email/user_activate.html b/legacy/library/language/en/email/user_activate.html
similarity index 100%
rename from library/language/en/email/user_activate.html
rename to legacy/library/language/en/email/user_activate.html
diff --git a/library/language/en/email/user_activate_passwd.html b/legacy/library/language/en/email/user_activate_passwd.html
similarity index 100%
rename from library/language/en/email/user_activate_passwd.html
rename to legacy/library/language/en/email/user_activate_passwd.html
diff --git a/library/language/en/email/user_welcome.html b/legacy/library/language/en/email/user_welcome.html
similarity index 100%
rename from library/language/en/email/user_welcome.html
rename to legacy/library/language/en/email/user_welcome.html
diff --git a/library/language/en/email/user_welcome_inactive.html b/legacy/library/language/en/email/user_welcome_inactive.html
similarity index 100%
rename from library/language/en/email/user_welcome_inactive.html
rename to legacy/library/language/en/email/user_welcome_inactive.html
diff --git a/library/language/en/html/advert.html b/legacy/library/language/en/html/advert.html
similarity index 100%
rename from library/language/en/html/advert.html
rename to legacy/library/language/en/html/advert.html
diff --git a/library/language/en/html/copyright_holders.html b/legacy/library/language/en/html/copyright_holders.html
similarity index 100%
rename from library/language/en/html/copyright_holders.html
rename to legacy/library/language/en/html/copyright_holders.html
diff --git a/library/language/en/html/not_found.html b/legacy/library/language/en/html/not_found.html
similarity index 100%
rename from library/language/en/html/not_found.html
rename to legacy/library/language/en/html/not_found.html
diff --git a/library/language/en/html/sidebar1.html b/legacy/library/language/en/html/sidebar1.html
similarity index 100%
rename from library/language/en/html/sidebar1.html
rename to legacy/library/language/en/html/sidebar1.html
diff --git a/library/language/en/html/sidebar2.html b/legacy/library/language/en/html/sidebar2.html
similarity index 100%
rename from library/language/en/html/sidebar2.html
rename to legacy/library/language/en/html/sidebar2.html
diff --git a/library/language/en/html/user_agreement.html b/legacy/library/language/en/html/user_agreement.html
similarity index 100%
rename from library/language/en/html/user_agreement.html
rename to legacy/library/language/en/html/user_agreement.html
diff --git a/library/language/en/main.php b/legacy/library/language/en/main.php
similarity index 100%
rename from library/language/en/main.php
rename to legacy/library/language/en/main.php
diff --git a/login.php b/legacy/login.php
similarity index 100%
rename from login.php
rename to legacy/login.php
diff --git a/memberlist.php b/legacy/memberlist.php
similarity index 100%
rename from memberlist.php
rename to legacy/memberlist.php
diff --git a/migrations/20250619000001_initial_schema.php b/legacy/migrations/20250619000001_initial_schema.php
similarity index 100%
rename from migrations/20250619000001_initial_schema.php
rename to legacy/migrations/20250619000001_initial_schema.php
diff --git a/migrations/20250619000002_seed_initial_data.php b/legacy/migrations/20250619000002_seed_initial_data.php
similarity index 100%
rename from migrations/20250619000002_seed_initial_data.php
rename to legacy/migrations/20250619000002_seed_initial_data.php
diff --git a/migrations/20250620001449_remove_demo_mode.php b/legacy/migrations/20250620001449_remove_demo_mode.php
similarity index 100%
rename from migrations/20250620001449_remove_demo_mode.php
rename to legacy/migrations/20250620001449_remove_demo_mode.php
diff --git a/modcp.php b/legacy/modcp.php
similarity index 100%
rename from modcp.php
rename to legacy/modcp.php
diff --git a/phinx.php b/legacy/phinx.php
similarity index 100%
rename from phinx.php
rename to legacy/phinx.php
diff --git a/playback_m3u.php b/legacy/playback_m3u.php
similarity index 100%
rename from playback_m3u.php
rename to legacy/playback_m3u.php
diff --git a/poll.php b/legacy/poll.php
similarity index 100%
rename from poll.php
rename to legacy/poll.php
diff --git a/posting.php b/legacy/posting.php
similarity index 100%
rename from posting.php
rename to legacy/posting.php
diff --git a/privmsg.php b/legacy/privmsg.php
similarity index 100%
rename from privmsg.php
rename to legacy/privmsg.php
diff --git a/profile.php b/legacy/profile.php
similarity index 100%
rename from profile.php
rename to legacy/profile.php
diff --git a/robots.txt b/legacy/robots.txt
similarity index 100%
rename from robots.txt
rename to legacy/robots.txt
diff --git a/search.php b/legacy/search.php
similarity index 100%
rename from search.php
rename to legacy/search.php
diff --git a/src/Ajax.php b/legacy/src/Ajax.php
similarity index 100%
rename from src/Ajax.php
rename to legacy/src/Ajax.php
diff --git a/src/Cache/CacheManager.php b/legacy/src/Cache/CacheManager.php
similarity index 100%
rename from src/Cache/CacheManager.php
rename to legacy/src/Cache/CacheManager.php
diff --git a/src/Cache/DatastoreManager.php b/legacy/src/Cache/DatastoreManager.php
similarity index 100%
rename from src/Cache/DatastoreManager.php
rename to legacy/src/Cache/DatastoreManager.php
diff --git a/src/Cache/UnifiedCacheSystem.php b/legacy/src/Cache/UnifiedCacheSystem.php
similarity index 100%
rename from src/Cache/UnifiedCacheSystem.php
rename to legacy/src/Cache/UnifiedCacheSystem.php
diff --git a/src/Captcha/CaptchaInterface.php b/legacy/src/Captcha/CaptchaInterface.php
similarity index 100%
rename from src/Captcha/CaptchaInterface.php
rename to legacy/src/Captcha/CaptchaInterface.php
diff --git a/src/Captcha/CloudflareTurnstileCaptcha.php b/legacy/src/Captcha/CloudflareTurnstileCaptcha.php
similarity index 100%
rename from src/Captcha/CloudflareTurnstileCaptcha.php
rename to legacy/src/Captcha/CloudflareTurnstileCaptcha.php
diff --git a/src/Captcha/GoogleCaptchaV2.php b/legacy/src/Captcha/GoogleCaptchaV2.php
similarity index 100%
rename from src/Captcha/GoogleCaptchaV2.php
rename to legacy/src/Captcha/GoogleCaptchaV2.php
diff --git a/src/Captcha/GoogleCaptchaV3.php b/legacy/src/Captcha/GoogleCaptchaV3.php
similarity index 100%
rename from src/Captcha/GoogleCaptchaV3.php
rename to legacy/src/Captcha/GoogleCaptchaV3.php
diff --git a/src/Captcha/HCaptcha.php b/legacy/src/Captcha/HCaptcha.php
similarity index 100%
rename from src/Captcha/HCaptcha.php
rename to legacy/src/Captcha/HCaptcha.php
diff --git a/src/Captcha/TextCaptcha.php b/legacy/src/Captcha/TextCaptcha.php
similarity index 100%
rename from src/Captcha/TextCaptcha.php
rename to legacy/src/Captcha/TextCaptcha.php
diff --git a/src/Captcha/YandexSmartCaptcha.php b/legacy/src/Captcha/YandexSmartCaptcha.php
similarity index 100%
rename from src/Captcha/YandexSmartCaptcha.php
rename to legacy/src/Captcha/YandexSmartCaptcha.php
diff --git a/src/Censor.php b/legacy/src/Censor.php
similarity index 100%
rename from src/Censor.php
rename to legacy/src/Censor.php
diff --git a/src/Config.php b/legacy/src/Config.php
similarity index 100%
rename from src/Config.php
rename to legacy/src/Config.php
diff --git a/src/Database/Database.php b/legacy/src/Database/Database.php
similarity index 100%
rename from src/Database/Database.php
rename to legacy/src/Database/Database.php
diff --git a/src/Database/DatabaseDebugger.php b/legacy/src/Database/DatabaseDebugger.php
similarity index 100%
rename from src/Database/DatabaseDebugger.php
rename to legacy/src/Database/DatabaseDebugger.php
diff --git a/src/Database/DatabaseFactory.php b/legacy/src/Database/DatabaseFactory.php
similarity index 100%
rename from src/Database/DatabaseFactory.php
rename to legacy/src/Database/DatabaseFactory.php
diff --git a/src/Database/DebugSelection.php b/legacy/src/Database/DebugSelection.php
similarity index 100%
rename from src/Database/DebugSelection.php
rename to legacy/src/Database/DebugSelection.php
diff --git a/src/Database/MigrationStatus.php b/legacy/src/Database/MigrationStatus.php
similarity index 100%
rename from src/Database/MigrationStatus.php
rename to legacy/src/Database/MigrationStatus.php
diff --git a/src/Dev.php b/legacy/src/Dev.php
similarity index 100%
rename from src/Dev.php
rename to legacy/src/Dev.php
diff --git a/src/Emailer.php b/legacy/src/Emailer.php
similarity index 100%
rename from src/Emailer.php
rename to legacy/src/Emailer.php
diff --git a/src/Env.php b/legacy/src/Env.php
similarity index 100%
rename from src/Env.php
rename to legacy/src/Env.php
diff --git a/src/Helpers/CronHelper.php b/legacy/src/Helpers/CronHelper.php
similarity index 100%
rename from src/Helpers/CronHelper.php
rename to legacy/src/Helpers/CronHelper.php
diff --git a/src/Helpers/IPHelper.php b/legacy/src/Helpers/IPHelper.php
similarity index 100%
rename from src/Helpers/IPHelper.php
rename to legacy/src/Helpers/IPHelper.php
diff --git a/src/Helpers/IsHelper.php b/legacy/src/Helpers/IsHelper.php
similarity index 100%
rename from src/Helpers/IsHelper.php
rename to legacy/src/Helpers/IsHelper.php
diff --git a/src/Helpers/StringHelper.php b/legacy/src/Helpers/StringHelper.php
similarity index 100%
rename from src/Helpers/StringHelper.php
rename to legacy/src/Helpers/StringHelper.php
diff --git a/src/Helpers/VersionHelper.php b/legacy/src/Helpers/VersionHelper.php
similarity index 100%
rename from src/Helpers/VersionHelper.php
rename to legacy/src/Helpers/VersionHelper.php
diff --git a/src/Infrastructure/DependencyInjection/Bootstrap.php b/legacy/src/Infrastructure/DependencyInjection/Bootstrap.php
similarity index 100%
rename from src/Infrastructure/DependencyInjection/Bootstrap.php
rename to legacy/src/Infrastructure/DependencyInjection/Bootstrap.php
diff --git a/src/Infrastructure/DependencyInjection/Container.php b/legacy/src/Infrastructure/DependencyInjection/Container.php
similarity index 100%
rename from src/Infrastructure/DependencyInjection/Container.php
rename to legacy/src/Infrastructure/DependencyInjection/Container.php
diff --git a/src/Infrastructure/DependencyInjection/ContainerFactory.php b/legacy/src/Infrastructure/DependencyInjection/ContainerFactory.php
similarity index 100%
rename from src/Infrastructure/DependencyInjection/ContainerFactory.php
rename to legacy/src/Infrastructure/DependencyInjection/ContainerFactory.php
diff --git a/src/Infrastructure/DependencyInjection/Definitions/ApplicationDefinitions.php b/legacy/src/Infrastructure/DependencyInjection/Definitions/ApplicationDefinitions.php
similarity index 100%
rename from src/Infrastructure/DependencyInjection/Definitions/ApplicationDefinitions.php
rename to legacy/src/Infrastructure/DependencyInjection/Definitions/ApplicationDefinitions.php
diff --git a/src/Infrastructure/DependencyInjection/Definitions/DomainDefinitions.php b/legacy/src/Infrastructure/DependencyInjection/Definitions/DomainDefinitions.php
similarity index 100%
rename from src/Infrastructure/DependencyInjection/Definitions/DomainDefinitions.php
rename to legacy/src/Infrastructure/DependencyInjection/Definitions/DomainDefinitions.php
diff --git a/src/Infrastructure/DependencyInjection/Definitions/InfrastructureDefinitions.php b/legacy/src/Infrastructure/DependencyInjection/Definitions/InfrastructureDefinitions.php
similarity index 100%
rename from src/Infrastructure/DependencyInjection/Definitions/InfrastructureDefinitions.php
rename to legacy/src/Infrastructure/DependencyInjection/Definitions/InfrastructureDefinitions.php
diff --git a/src/Infrastructure/DependencyInjection/Definitions/PresentationDefinitions.php b/legacy/src/Infrastructure/DependencyInjection/Definitions/PresentationDefinitions.php
similarity index 100%
rename from src/Infrastructure/DependencyInjection/Definitions/PresentationDefinitions.php
rename to legacy/src/Infrastructure/DependencyInjection/Definitions/PresentationDefinitions.php
diff --git a/src/Infrastructure/DependencyInjection/ServiceProvider.php b/legacy/src/Infrastructure/DependencyInjection/ServiceProvider.php
similarity index 100%
rename from src/Infrastructure/DependencyInjection/ServiceProvider.php
rename to legacy/src/Infrastructure/DependencyInjection/ServiceProvider.php
diff --git a/src/Language.php b/legacy/src/Language.php
similarity index 100%
rename from src/Language.php
rename to legacy/src/Language.php
diff --git a/src/Legacy/Admin/Common.php b/legacy/src/Legacy/Admin/Common.php
similarity index 100%
rename from src/Legacy/Admin/Common.php
rename to legacy/src/Legacy/Admin/Common.php
diff --git a/src/Legacy/Admin/Cron.php b/legacy/src/Legacy/Admin/Cron.php
similarity index 100%
rename from src/Legacy/Admin/Cron.php
rename to legacy/src/Legacy/Admin/Cron.php
diff --git a/src/Legacy/Admin/Torrent.php b/legacy/src/Legacy/Admin/Torrent.php
similarity index 100%
rename from src/Legacy/Admin/Torrent.php
rename to legacy/src/Legacy/Admin/Torrent.php
diff --git a/src/Legacy/Atom.php b/legacy/src/Legacy/Atom.php
similarity index 100%
rename from src/Legacy/Atom.php
rename to legacy/src/Legacy/Atom.php
diff --git a/src/Legacy/Attach.php b/legacy/src/Legacy/Attach.php
similarity index 100%
rename from src/Legacy/Attach.php
rename to legacy/src/Legacy/Attach.php
diff --git a/src/Legacy/AttachPosting.php b/legacy/src/Legacy/AttachPosting.php
similarity index 100%
rename from src/Legacy/AttachPosting.php
rename to legacy/src/Legacy/AttachPosting.php
diff --git a/src/Legacy/BBCode.php b/legacy/src/Legacy/BBCode.php
similarity index 100%
rename from src/Legacy/BBCode.php
rename to legacy/src/Legacy/BBCode.php
diff --git a/src/Legacy/Common/Html.php b/legacy/src/Legacy/Common/Html.php
similarity index 100%
rename from src/Legacy/Common/Html.php
rename to legacy/src/Legacy/Common/Html.php
diff --git a/src/Legacy/Common/Select.php b/legacy/src/Legacy/Common/Select.php
similarity index 100%
rename from src/Legacy/Common/Select.php
rename to legacy/src/Legacy/Common/Select.php
diff --git a/src/Legacy/Common/Upload.php b/legacy/src/Legacy/Common/Upload.php
similarity index 100%
rename from src/Legacy/Common/Upload.php
rename to legacy/src/Legacy/Common/Upload.php
diff --git a/src/Legacy/Common/User.php b/legacy/src/Legacy/Common/User.php
similarity index 100%
rename from src/Legacy/Common/User.php
rename to legacy/src/Legacy/Common/User.php
diff --git a/src/Legacy/DateDelta.php b/legacy/src/Legacy/DateDelta.php
similarity index 100%
rename from src/Legacy/DateDelta.php
rename to legacy/src/Legacy/DateDelta.php
diff --git a/src/Legacy/Group.php b/legacy/src/Legacy/Group.php
similarity index 100%
rename from src/Legacy/Group.php
rename to legacy/src/Legacy/Group.php
diff --git a/src/Legacy/LogAction.php b/legacy/src/Legacy/LogAction.php
similarity index 100%
rename from src/Legacy/LogAction.php
rename to legacy/src/Legacy/LogAction.php
diff --git a/src/Legacy/Poll.php b/legacy/src/Legacy/Poll.php
similarity index 100%
rename from src/Legacy/Poll.php
rename to legacy/src/Legacy/Poll.php
diff --git a/src/Legacy/Post.php b/legacy/src/Legacy/Post.php
similarity index 100%
rename from src/Legacy/Post.php
rename to legacy/src/Legacy/Post.php
diff --git a/src/Legacy/Template.php b/legacy/src/Legacy/Template.php
similarity index 100%
rename from src/Legacy/Template.php
rename to legacy/src/Legacy/Template.php
diff --git a/src/Legacy/Torrent.php b/legacy/src/Legacy/Torrent.php
similarity index 100%
rename from src/Legacy/Torrent.php
rename to legacy/src/Legacy/Torrent.php
diff --git a/src/Legacy/TorrentFileList.php b/legacy/src/Legacy/TorrentFileList.php
similarity index 100%
rename from src/Legacy/TorrentFileList.php
rename to legacy/src/Legacy/TorrentFileList.php
diff --git a/src/Legacy/WordsRate.php b/legacy/src/Legacy/WordsRate.php
similarity index 100%
rename from src/Legacy/WordsRate.php
rename to legacy/src/Legacy/WordsRate.php
diff --git a/src/Sessions.php b/legacy/src/Sessions.php
similarity index 100%
rename from src/Sessions.php
rename to legacy/src/Sessions.php
diff --git a/src/Sitemap.php b/legacy/src/Sitemap.php
similarity index 100%
rename from src/Sitemap.php
rename to legacy/src/Sitemap.php
diff --git a/src/TorrServerAPI.php b/legacy/src/TorrServerAPI.php
similarity index 100%
rename from src/TorrServerAPI.php
rename to legacy/src/TorrServerAPI.php
diff --git a/src/Updater.php b/legacy/src/Updater.php
similarity index 100%
rename from src/Updater.php
rename to legacy/src/Updater.php
diff --git a/src/Validate.php b/legacy/src/Validate.php
similarity index 100%
rename from src/Validate.php
rename to legacy/src/Validate.php
diff --git a/src/Whoops/DatabaseErrorHandler.php b/legacy/src/Whoops/DatabaseErrorHandler.php
similarity index 100%
rename from src/Whoops/DatabaseErrorHandler.php
rename to legacy/src/Whoops/DatabaseErrorHandler.php
diff --git a/src/Whoops/EnhancedPrettyPageHandler.php b/legacy/src/Whoops/EnhancedPrettyPageHandler.php
similarity index 100%
rename from src/Whoops/EnhancedPrettyPageHandler.php
rename to legacy/src/Whoops/EnhancedPrettyPageHandler.php
diff --git a/src/helpers.php b/legacy/src/helpers.php
similarity index 100%
rename from src/helpers.php
rename to legacy/src/helpers.php
diff --git a/styles/images/bad.gif b/legacy/styles/images/bad.gif
similarity index 100%
rename from styles/images/bad.gif
rename to legacy/styles/images/bad.gif
diff --git a/styles/images/clients/Ares.png b/legacy/styles/images/clients/Ares.png
similarity index 100%
rename from styles/images/clients/Ares.png
rename to legacy/styles/images/clients/Ares.png
diff --git a/styles/images/clients/Aria2.png b/legacy/styles/images/clients/Aria2.png
similarity index 100%
rename from styles/images/clients/Aria2.png
rename to legacy/styles/images/clients/Aria2.png
diff --git a/styles/images/clients/BiglyBT.png b/legacy/styles/images/clients/BiglyBT.png
similarity index 100%
rename from styles/images/clients/BiglyBT.png
rename to legacy/styles/images/clients/BiglyBT.png
diff --git a/styles/images/clients/BitComet.png b/legacy/styles/images/clients/BitComet.png
similarity index 100%
rename from styles/images/clients/BitComet.png
rename to legacy/styles/images/clients/BitComet.png
diff --git a/styles/images/clients/BitLord.png b/legacy/styles/images/clients/BitLord.png
similarity index 100%
rename from styles/images/clients/BitLord.png
rename to legacy/styles/images/clients/BitLord.png
diff --git a/styles/images/clients/BitSpirit.png b/legacy/styles/images/clients/BitSpirit.png
similarity index 100%
rename from styles/images/clients/BitSpirit.png
rename to legacy/styles/images/clients/BitSpirit.png
diff --git a/styles/images/clients/BitTorrent SDK.png b/legacy/styles/images/clients/BitTorrent SDK.png
similarity index 100%
rename from styles/images/clients/BitTorrent SDK.png
rename to legacy/styles/images/clients/BitTorrent SDK.png
diff --git a/styles/images/clients/BitTorrent.png b/legacy/styles/images/clients/BitTorrent.png
similarity index 100%
rename from styles/images/clients/BitTorrent.png
rename to legacy/styles/images/clients/BitTorrent.png
diff --git a/styles/images/clients/Blackberry.png b/legacy/styles/images/clients/Blackberry.png
similarity index 100%
rename from styles/images/clients/Blackberry.png
rename to legacy/styles/images/clients/Blackberry.png
diff --git a/styles/images/clients/CTorrent.png b/legacy/styles/images/clients/CTorrent.png
similarity index 100%
rename from styles/images/clients/CTorrent.png
rename to legacy/styles/images/clients/CTorrent.png
diff --git a/styles/images/clients/Deluge.png b/legacy/styles/images/clients/Deluge.png
similarity index 100%
rename from styles/images/clients/Deluge.png
rename to legacy/styles/images/clients/Deluge.png
diff --git a/styles/images/clients/FakeUT.png b/legacy/styles/images/clients/FakeUT.png
similarity index 100%
rename from styles/images/clients/FakeUT.png
rename to legacy/styles/images/clients/FakeUT.png
diff --git a/styles/images/clients/FlashGet.png b/legacy/styles/images/clients/FlashGet.png
similarity index 100%
rename from styles/images/clients/FlashGet.png
rename to legacy/styles/images/clients/FlashGet.png
diff --git a/styles/images/clients/Folx.png b/legacy/styles/images/clients/Folx.png
similarity index 100%
rename from styles/images/clients/Folx.png
rename to legacy/styles/images/clients/Folx.png
diff --git a/styles/images/clients/Free Download Manager.png b/legacy/styles/images/clients/Free Download Manager.png
similarity index 100%
rename from styles/images/clients/Free Download Manager.png
rename to legacy/styles/images/clients/Free Download Manager.png
diff --git a/styles/images/clients/Freebox.png b/legacy/styles/images/clients/Freebox.png
similarity index 100%
rename from styles/images/clients/Freebox.png
rename to legacy/styles/images/clients/Freebox.png
diff --git a/styles/images/clients/Halite.png b/legacy/styles/images/clients/Halite.png
similarity index 100%
rename from styles/images/clients/Halite.png
rename to legacy/styles/images/clients/Halite.png
diff --git a/styles/images/clients/KGet.png b/legacy/styles/images/clients/KGet.png
similarity index 100%
rename from styles/images/clients/KGet.png
rename to legacy/styles/images/clients/KGet.png
diff --git a/styles/images/clients/KTorrent.png b/legacy/styles/images/clients/KTorrent.png
similarity index 100%
rename from styles/images/clients/KTorrent.png
rename to legacy/styles/images/clients/KTorrent.png
diff --git a/styles/images/clients/LibreTorrent.png b/legacy/styles/images/clients/LibreTorrent.png
similarity index 100%
rename from styles/images/clients/LibreTorrent.png
rename to legacy/styles/images/clients/LibreTorrent.png
diff --git a/styles/images/clients/MLDonkey.png b/legacy/styles/images/clients/MLDonkey.png
similarity index 100%
rename from styles/images/clients/MLDonkey.png
rename to legacy/styles/images/clients/MLDonkey.png
diff --git a/styles/images/clients/MediaGet.png b/legacy/styles/images/clients/MediaGet.png
similarity index 100%
rename from styles/images/clients/MediaGet.png
rename to legacy/styles/images/clients/MediaGet.png
diff --git a/styles/images/clients/Monsoon.png b/legacy/styles/images/clients/Monsoon.png
similarity index 100%
rename from styles/images/clients/Monsoon.png
rename to legacy/styles/images/clients/Monsoon.png
diff --git a/styles/images/clients/Opera.png b/legacy/styles/images/clients/Opera.png
similarity index 100%
rename from styles/images/clients/Opera.png
rename to legacy/styles/images/clients/Opera.png
diff --git a/styles/images/clients/PicoTorrent.png b/legacy/styles/images/clients/PicoTorrent.png
similarity index 100%
rename from styles/images/clients/PicoTorrent.png
rename to legacy/styles/images/clients/PicoTorrent.png
diff --git a/styles/images/clients/Tixati.png b/legacy/styles/images/clients/Tixati.png
similarity index 100%
rename from styles/images/clients/Tixati.png
rename to legacy/styles/images/clients/Tixati.png
diff --git a/styles/images/clients/TorrentStream.png b/legacy/styles/images/clients/TorrentStream.png
similarity index 100%
rename from styles/images/clients/TorrentStream.png
rename to legacy/styles/images/clients/TorrentStream.png
diff --git a/styles/images/clients/Transmission.png b/legacy/styles/images/clients/Transmission.png
similarity index 100%
rename from styles/images/clients/Transmission.png
rename to legacy/styles/images/clients/Transmission.png
diff --git a/styles/images/clients/Vuze.png b/legacy/styles/images/clients/Vuze.png
similarity index 100%
rename from styles/images/clients/Vuze.png
rename to legacy/styles/images/clients/Vuze.png
diff --git a/styles/images/clients/WebTorrent.png b/legacy/styles/images/clients/WebTorrent.png
similarity index 100%
rename from styles/images/clients/WebTorrent.png
rename to legacy/styles/images/clients/WebTorrent.png
diff --git a/styles/images/clients/Xunlei.png b/legacy/styles/images/clients/Xunlei.png
similarity index 100%
rename from styles/images/clients/Xunlei.png
rename to legacy/styles/images/clients/Xunlei.png
diff --git a/styles/images/clients/libTorrent.png b/legacy/styles/images/clients/libTorrent.png
similarity index 100%
rename from styles/images/clients/libTorrent.png
rename to legacy/styles/images/clients/libTorrent.png
diff --git a/styles/images/clients/qBittorrent.png b/legacy/styles/images/clients/qBittorrent.png
similarity index 100%
rename from styles/images/clients/qBittorrent.png
rename to legacy/styles/images/clients/qBittorrent.png
diff --git a/styles/images/clients/tTorrent.png b/legacy/styles/images/clients/tTorrent.png
similarity index 100%
rename from styles/images/clients/tTorrent.png
rename to legacy/styles/images/clients/tTorrent.png
diff --git a/styles/images/clients/uTorrent Mac.png b/legacy/styles/images/clients/uTorrent Mac.png
similarity index 100%
rename from styles/images/clients/uTorrent Mac.png
rename to legacy/styles/images/clients/uTorrent Mac.png
diff --git a/styles/images/clients/uTorrent Web.png b/legacy/styles/images/clients/uTorrent Web.png
similarity index 100%
rename from styles/images/clients/uTorrent Web.png
rename to legacy/styles/images/clients/uTorrent Web.png
diff --git a/styles/images/clients/uTorrent.png b/legacy/styles/images/clients/uTorrent.png
similarity index 100%
rename from styles/images/clients/uTorrent.png
rename to legacy/styles/images/clients/uTorrent.png
diff --git a/styles/images/flags/AD.svg b/legacy/styles/images/flags/AD.svg
similarity index 100%
rename from styles/images/flags/AD.svg
rename to legacy/styles/images/flags/AD.svg
diff --git a/styles/images/flags/AE.svg b/legacy/styles/images/flags/AE.svg
similarity index 100%
rename from styles/images/flags/AE.svg
rename to legacy/styles/images/flags/AE.svg
diff --git a/styles/images/flags/AF.svg b/legacy/styles/images/flags/AF.svg
similarity index 100%
rename from styles/images/flags/AF.svg
rename to legacy/styles/images/flags/AF.svg
diff --git a/styles/images/flags/AG.svg b/legacy/styles/images/flags/AG.svg
similarity index 100%
rename from styles/images/flags/AG.svg
rename to legacy/styles/images/flags/AG.svg
diff --git a/styles/images/flags/AI.svg b/legacy/styles/images/flags/AI.svg
similarity index 100%
rename from styles/images/flags/AI.svg
rename to legacy/styles/images/flags/AI.svg
diff --git a/styles/images/flags/AL.svg b/legacy/styles/images/flags/AL.svg
similarity index 100%
rename from styles/images/flags/AL.svg
rename to legacy/styles/images/flags/AL.svg
diff --git a/styles/images/flags/AM.svg b/legacy/styles/images/flags/AM.svg
similarity index 100%
rename from styles/images/flags/AM.svg
rename to legacy/styles/images/flags/AM.svg
diff --git a/styles/images/flags/AO.svg b/legacy/styles/images/flags/AO.svg
similarity index 100%
rename from styles/images/flags/AO.svg
rename to legacy/styles/images/flags/AO.svg
diff --git a/styles/images/flags/AQ.svg b/legacy/styles/images/flags/AQ.svg
similarity index 100%
rename from styles/images/flags/AQ.svg
rename to legacy/styles/images/flags/AQ.svg
diff --git a/styles/images/flags/AR.svg b/legacy/styles/images/flags/AR.svg
similarity index 100%
rename from styles/images/flags/AR.svg
rename to legacy/styles/images/flags/AR.svg
diff --git a/styles/images/flags/ARAB.svg b/legacy/styles/images/flags/ARAB.svg
similarity index 100%
rename from styles/images/flags/ARAB.svg
rename to legacy/styles/images/flags/ARAB.svg
diff --git a/styles/images/flags/AS.svg b/legacy/styles/images/flags/AS.svg
similarity index 100%
rename from styles/images/flags/AS.svg
rename to legacy/styles/images/flags/AS.svg
diff --git a/styles/images/flags/AT.svg b/legacy/styles/images/flags/AT.svg
similarity index 100%
rename from styles/images/flags/AT.svg
rename to legacy/styles/images/flags/AT.svg
diff --git a/styles/images/flags/AU.svg b/legacy/styles/images/flags/AU.svg
similarity index 100%
rename from styles/images/flags/AU.svg
rename to legacy/styles/images/flags/AU.svg
diff --git a/styles/images/flags/AW.svg b/legacy/styles/images/flags/AW.svg
similarity index 100%
rename from styles/images/flags/AW.svg
rename to legacy/styles/images/flags/AW.svg
diff --git a/styles/images/flags/AX.svg b/legacy/styles/images/flags/AX.svg
similarity index 100%
rename from styles/images/flags/AX.svg
rename to legacy/styles/images/flags/AX.svg
diff --git a/styles/images/flags/AZ.svg b/legacy/styles/images/flags/AZ.svg
similarity index 100%
rename from styles/images/flags/AZ.svg
rename to legacy/styles/images/flags/AZ.svg
diff --git a/styles/images/flags/BA.svg b/legacy/styles/images/flags/BA.svg
similarity index 100%
rename from styles/images/flags/BA.svg
rename to legacy/styles/images/flags/BA.svg
diff --git a/styles/images/flags/BB.svg b/legacy/styles/images/flags/BB.svg
similarity index 100%
rename from styles/images/flags/BB.svg
rename to legacy/styles/images/flags/BB.svg
diff --git a/styles/images/flags/BD.svg b/legacy/styles/images/flags/BD.svg
similarity index 100%
rename from styles/images/flags/BD.svg
rename to legacy/styles/images/flags/BD.svg
diff --git a/styles/images/flags/BE.svg b/legacy/styles/images/flags/BE.svg
similarity index 100%
rename from styles/images/flags/BE.svg
rename to legacy/styles/images/flags/BE.svg
diff --git a/styles/images/flags/BF.svg b/legacy/styles/images/flags/BF.svg
similarity index 100%
rename from styles/images/flags/BF.svg
rename to legacy/styles/images/flags/BF.svg
diff --git a/styles/images/flags/BG.svg b/legacy/styles/images/flags/BG.svg
similarity index 100%
rename from styles/images/flags/BG.svg
rename to legacy/styles/images/flags/BG.svg
diff --git a/styles/images/flags/BH.svg b/legacy/styles/images/flags/BH.svg
similarity index 100%
rename from styles/images/flags/BH.svg
rename to legacy/styles/images/flags/BH.svg
diff --git a/styles/images/flags/BI.svg b/legacy/styles/images/flags/BI.svg
similarity index 100%
rename from styles/images/flags/BI.svg
rename to legacy/styles/images/flags/BI.svg
diff --git a/styles/images/flags/BJ.svg b/legacy/styles/images/flags/BJ.svg
similarity index 100%
rename from styles/images/flags/BJ.svg
rename to legacy/styles/images/flags/BJ.svg
diff --git a/styles/images/flags/BL.svg b/legacy/styles/images/flags/BL.svg
similarity index 100%
rename from styles/images/flags/BL.svg
rename to legacy/styles/images/flags/BL.svg
diff --git a/styles/images/flags/BM.svg b/legacy/styles/images/flags/BM.svg
similarity index 100%
rename from styles/images/flags/BM.svg
rename to legacy/styles/images/flags/BM.svg
diff --git a/styles/images/flags/BN.svg b/legacy/styles/images/flags/BN.svg
similarity index 100%
rename from styles/images/flags/BN.svg
rename to legacy/styles/images/flags/BN.svg
diff --git a/styles/images/flags/BO.svg b/legacy/styles/images/flags/BO.svg
similarity index 100%
rename from styles/images/flags/BO.svg
rename to legacy/styles/images/flags/BO.svg
diff --git a/styles/images/flags/BQ.svg b/legacy/styles/images/flags/BQ.svg
similarity index 100%
rename from styles/images/flags/BQ.svg
rename to legacy/styles/images/flags/BQ.svg
diff --git a/styles/images/flags/BR.svg b/legacy/styles/images/flags/BR.svg
similarity index 100%
rename from styles/images/flags/BR.svg
rename to legacy/styles/images/flags/BR.svg
diff --git a/styles/images/flags/BS.svg b/legacy/styles/images/flags/BS.svg
similarity index 100%
rename from styles/images/flags/BS.svg
rename to legacy/styles/images/flags/BS.svg
diff --git a/styles/images/flags/BT.svg b/legacy/styles/images/flags/BT.svg
similarity index 100%
rename from styles/images/flags/BT.svg
rename to legacy/styles/images/flags/BT.svg
diff --git a/styles/images/flags/BV.svg b/legacy/styles/images/flags/BV.svg
similarity index 100%
rename from styles/images/flags/BV.svg
rename to legacy/styles/images/flags/BV.svg
diff --git a/styles/images/flags/BW.svg b/legacy/styles/images/flags/BW.svg
similarity index 100%
rename from styles/images/flags/BW.svg
rename to legacy/styles/images/flags/BW.svg
diff --git a/styles/images/flags/BY.svg b/legacy/styles/images/flags/BY.svg
similarity index 100%
rename from styles/images/flags/BY.svg
rename to legacy/styles/images/flags/BY.svg
diff --git a/styles/images/flags/BZ.svg b/legacy/styles/images/flags/BZ.svg
similarity index 100%
rename from styles/images/flags/BZ.svg
rename to legacy/styles/images/flags/BZ.svg
diff --git a/styles/images/flags/CA.svg b/legacy/styles/images/flags/CA.svg
similarity index 100%
rename from styles/images/flags/CA.svg
rename to legacy/styles/images/flags/CA.svg
diff --git a/styles/images/flags/CC.svg b/legacy/styles/images/flags/CC.svg
similarity index 100%
rename from styles/images/flags/CC.svg
rename to legacy/styles/images/flags/CC.svg
diff --git a/styles/images/flags/CD.svg b/legacy/styles/images/flags/CD.svg
similarity index 100%
rename from styles/images/flags/CD.svg
rename to legacy/styles/images/flags/CD.svg
diff --git a/styles/images/flags/CEFTA.svg b/legacy/styles/images/flags/CEFTA.svg
similarity index 100%
rename from styles/images/flags/CEFTA.svg
rename to legacy/styles/images/flags/CEFTA.svg
diff --git a/styles/images/flags/CF.svg b/legacy/styles/images/flags/CF.svg
similarity index 100%
rename from styles/images/flags/CF.svg
rename to legacy/styles/images/flags/CF.svg
diff --git a/styles/images/flags/CG.svg b/legacy/styles/images/flags/CG.svg
similarity index 100%
rename from styles/images/flags/CG.svg
rename to legacy/styles/images/flags/CG.svg
diff --git a/styles/images/flags/CH.svg b/legacy/styles/images/flags/CH.svg
similarity index 100%
rename from styles/images/flags/CH.svg
rename to legacy/styles/images/flags/CH.svg
diff --git a/styles/images/flags/CI.svg b/legacy/styles/images/flags/CI.svg
similarity index 100%
rename from styles/images/flags/CI.svg
rename to legacy/styles/images/flags/CI.svg
diff --git a/styles/images/flags/CK.svg b/legacy/styles/images/flags/CK.svg
similarity index 100%
rename from styles/images/flags/CK.svg
rename to legacy/styles/images/flags/CK.svg
diff --git a/styles/images/flags/CL.svg b/legacy/styles/images/flags/CL.svg
similarity index 100%
rename from styles/images/flags/CL.svg
rename to legacy/styles/images/flags/CL.svg
diff --git a/styles/images/flags/CM.svg b/legacy/styles/images/flags/CM.svg
similarity index 100%
rename from styles/images/flags/CM.svg
rename to legacy/styles/images/flags/CM.svg
diff --git a/styles/images/flags/CN.svg b/legacy/styles/images/flags/CN.svg
similarity index 100%
rename from styles/images/flags/CN.svg
rename to legacy/styles/images/flags/CN.svg
diff --git a/styles/images/flags/CO.svg b/legacy/styles/images/flags/CO.svg
similarity index 100%
rename from styles/images/flags/CO.svg
rename to legacy/styles/images/flags/CO.svg
diff --git a/styles/images/flags/CP.svg b/legacy/styles/images/flags/CP.svg
similarity index 100%
rename from styles/images/flags/CP.svg
rename to legacy/styles/images/flags/CP.svg
diff --git a/styles/images/flags/CR.svg b/legacy/styles/images/flags/CR.svg
similarity index 100%
rename from styles/images/flags/CR.svg
rename to legacy/styles/images/flags/CR.svg
diff --git a/styles/images/flags/CU.svg b/legacy/styles/images/flags/CU.svg
similarity index 100%
rename from styles/images/flags/CU.svg
rename to legacy/styles/images/flags/CU.svg
diff --git a/styles/images/flags/CV.svg b/legacy/styles/images/flags/CV.svg
similarity index 100%
rename from styles/images/flags/CV.svg
rename to legacy/styles/images/flags/CV.svg
diff --git a/styles/images/flags/CW.svg b/legacy/styles/images/flags/CW.svg
similarity index 100%
rename from styles/images/flags/CW.svg
rename to legacy/styles/images/flags/CW.svg
diff --git a/styles/images/flags/CX.svg b/legacy/styles/images/flags/CX.svg
similarity index 100%
rename from styles/images/flags/CX.svg
rename to legacy/styles/images/flags/CX.svg
diff --git a/styles/images/flags/CY.svg b/legacy/styles/images/flags/CY.svg
similarity index 100%
rename from styles/images/flags/CY.svg
rename to legacy/styles/images/flags/CY.svg
diff --git a/styles/images/flags/CZ.svg b/legacy/styles/images/flags/CZ.svg
similarity index 100%
rename from styles/images/flags/CZ.svg
rename to legacy/styles/images/flags/CZ.svg
diff --git a/styles/images/flags/DE.svg b/legacy/styles/images/flags/DE.svg
similarity index 100%
rename from styles/images/flags/DE.svg
rename to legacy/styles/images/flags/DE.svg
diff --git a/styles/images/flags/DG.svg b/legacy/styles/images/flags/DG.svg
similarity index 100%
rename from styles/images/flags/DG.svg
rename to legacy/styles/images/flags/DG.svg
diff --git a/styles/images/flags/DJ.svg b/legacy/styles/images/flags/DJ.svg
similarity index 100%
rename from styles/images/flags/DJ.svg
rename to legacy/styles/images/flags/DJ.svg
diff --git a/styles/images/flags/DK.svg b/legacy/styles/images/flags/DK.svg
similarity index 100%
rename from styles/images/flags/DK.svg
rename to legacy/styles/images/flags/DK.svg
diff --git a/styles/images/flags/DM.svg b/legacy/styles/images/flags/DM.svg
similarity index 100%
rename from styles/images/flags/DM.svg
rename to legacy/styles/images/flags/DM.svg
diff --git a/styles/images/flags/DO.svg b/legacy/styles/images/flags/DO.svg
similarity index 100%
rename from styles/images/flags/DO.svg
rename to legacy/styles/images/flags/DO.svg
diff --git a/styles/images/flags/DZ.svg b/legacy/styles/images/flags/DZ.svg
similarity index 100%
rename from styles/images/flags/DZ.svg
rename to legacy/styles/images/flags/DZ.svg
diff --git a/styles/images/flags/EAC.svg b/legacy/styles/images/flags/EAC.svg
similarity index 100%
rename from styles/images/flags/EAC.svg
rename to legacy/styles/images/flags/EAC.svg
diff --git a/styles/images/flags/EC.svg b/legacy/styles/images/flags/EC.svg
similarity index 100%
rename from styles/images/flags/EC.svg
rename to legacy/styles/images/flags/EC.svg
diff --git a/styles/images/flags/EE.svg b/legacy/styles/images/flags/EE.svg
similarity index 100%
rename from styles/images/flags/EE.svg
rename to legacy/styles/images/flags/EE.svg
diff --git a/styles/images/flags/EG.svg b/legacy/styles/images/flags/EG.svg
similarity index 100%
rename from styles/images/flags/EG.svg
rename to legacy/styles/images/flags/EG.svg
diff --git a/styles/images/flags/EH.svg b/legacy/styles/images/flags/EH.svg
similarity index 100%
rename from styles/images/flags/EH.svg
rename to legacy/styles/images/flags/EH.svg
diff --git a/styles/images/flags/ER.svg b/legacy/styles/images/flags/ER.svg
similarity index 100%
rename from styles/images/flags/ER.svg
rename to legacy/styles/images/flags/ER.svg
diff --git a/styles/images/flags/ES-CT.svg b/legacy/styles/images/flags/ES-CT.svg
similarity index 100%
rename from styles/images/flags/ES-CT.svg
rename to legacy/styles/images/flags/ES-CT.svg
diff --git a/styles/images/flags/ES-GA.svg b/legacy/styles/images/flags/ES-GA.svg
similarity index 100%
rename from styles/images/flags/ES-GA.svg
rename to legacy/styles/images/flags/ES-GA.svg
diff --git a/styles/images/flags/ES-PV.svg b/legacy/styles/images/flags/ES-PV.svg
similarity index 100%
rename from styles/images/flags/ES-PV.svg
rename to legacy/styles/images/flags/ES-PV.svg
diff --git a/styles/images/flags/ES.svg b/legacy/styles/images/flags/ES.svg
similarity index 100%
rename from styles/images/flags/ES.svg
rename to legacy/styles/images/flags/ES.svg
diff --git a/styles/images/flags/ET.svg b/legacy/styles/images/flags/ET.svg
similarity index 100%
rename from styles/images/flags/ET.svg
rename to legacy/styles/images/flags/ET.svg
diff --git a/styles/images/flags/EU.svg b/legacy/styles/images/flags/EU.svg
similarity index 100%
rename from styles/images/flags/EU.svg
rename to legacy/styles/images/flags/EU.svg
diff --git a/styles/images/flags/FI.svg b/legacy/styles/images/flags/FI.svg
similarity index 100%
rename from styles/images/flags/FI.svg
rename to legacy/styles/images/flags/FI.svg
diff --git a/styles/images/flags/FJ.svg b/legacy/styles/images/flags/FJ.svg
similarity index 100%
rename from styles/images/flags/FJ.svg
rename to legacy/styles/images/flags/FJ.svg
diff --git a/styles/images/flags/FK.svg b/legacy/styles/images/flags/FK.svg
similarity index 100%
rename from styles/images/flags/FK.svg
rename to legacy/styles/images/flags/FK.svg
diff --git a/styles/images/flags/FM.svg b/legacy/styles/images/flags/FM.svg
similarity index 100%
rename from styles/images/flags/FM.svg
rename to legacy/styles/images/flags/FM.svg
diff --git a/styles/images/flags/FO.svg b/legacy/styles/images/flags/FO.svg
similarity index 100%
rename from styles/images/flags/FO.svg
rename to legacy/styles/images/flags/FO.svg
diff --git a/styles/images/flags/FR.svg b/legacy/styles/images/flags/FR.svg
similarity index 100%
rename from styles/images/flags/FR.svg
rename to legacy/styles/images/flags/FR.svg
diff --git a/styles/images/flags/GA.svg b/legacy/styles/images/flags/GA.svg
similarity index 100%
rename from styles/images/flags/GA.svg
rename to legacy/styles/images/flags/GA.svg
diff --git a/styles/images/flags/GB-ENG.svg b/legacy/styles/images/flags/GB-ENG.svg
similarity index 100%
rename from styles/images/flags/GB-ENG.svg
rename to legacy/styles/images/flags/GB-ENG.svg
diff --git a/styles/images/flags/GB-NIR.svg b/legacy/styles/images/flags/GB-NIR.svg
similarity index 100%
rename from styles/images/flags/GB-NIR.svg
rename to legacy/styles/images/flags/GB-NIR.svg
diff --git a/styles/images/flags/GB-SCT.svg b/legacy/styles/images/flags/GB-SCT.svg
similarity index 100%
rename from styles/images/flags/GB-SCT.svg
rename to legacy/styles/images/flags/GB-SCT.svg
diff --git a/styles/images/flags/GB-WLS.svg b/legacy/styles/images/flags/GB-WLS.svg
similarity index 100%
rename from styles/images/flags/GB-WLS.svg
rename to legacy/styles/images/flags/GB-WLS.svg
diff --git a/styles/images/flags/GB.svg b/legacy/styles/images/flags/GB.svg
similarity index 100%
rename from styles/images/flags/GB.svg
rename to legacy/styles/images/flags/GB.svg
diff --git a/styles/images/flags/GD.svg b/legacy/styles/images/flags/GD.svg
similarity index 100%
rename from styles/images/flags/GD.svg
rename to legacy/styles/images/flags/GD.svg
diff --git a/styles/images/flags/GE.svg b/legacy/styles/images/flags/GE.svg
similarity index 100%
rename from styles/images/flags/GE.svg
rename to legacy/styles/images/flags/GE.svg
diff --git a/styles/images/flags/GF.svg b/legacy/styles/images/flags/GF.svg
similarity index 100%
rename from styles/images/flags/GF.svg
rename to legacy/styles/images/flags/GF.svg
diff --git a/styles/images/flags/GG.svg b/legacy/styles/images/flags/GG.svg
similarity index 100%
rename from styles/images/flags/GG.svg
rename to legacy/styles/images/flags/GG.svg
diff --git a/styles/images/flags/GH.svg b/legacy/styles/images/flags/GH.svg
similarity index 100%
rename from styles/images/flags/GH.svg
rename to legacy/styles/images/flags/GH.svg
diff --git a/styles/images/flags/GI.svg b/legacy/styles/images/flags/GI.svg
similarity index 100%
rename from styles/images/flags/GI.svg
rename to legacy/styles/images/flags/GI.svg
diff --git a/styles/images/flags/GL.svg b/legacy/styles/images/flags/GL.svg
similarity index 100%
rename from styles/images/flags/GL.svg
rename to legacy/styles/images/flags/GL.svg
diff --git a/styles/images/flags/GM.svg b/legacy/styles/images/flags/GM.svg
similarity index 100%
rename from styles/images/flags/GM.svg
rename to legacy/styles/images/flags/GM.svg
diff --git a/styles/images/flags/GN.svg b/legacy/styles/images/flags/GN.svg
similarity index 100%
rename from styles/images/flags/GN.svg
rename to legacy/styles/images/flags/GN.svg
diff --git a/styles/images/flags/GP.svg b/legacy/styles/images/flags/GP.svg
similarity index 100%
rename from styles/images/flags/GP.svg
rename to legacy/styles/images/flags/GP.svg
diff --git a/styles/images/flags/GQ.svg b/legacy/styles/images/flags/GQ.svg
similarity index 100%
rename from styles/images/flags/GQ.svg
rename to legacy/styles/images/flags/GQ.svg
diff --git a/styles/images/flags/GR.svg b/legacy/styles/images/flags/GR.svg
similarity index 100%
rename from styles/images/flags/GR.svg
rename to legacy/styles/images/flags/GR.svg
diff --git a/styles/images/flags/GS.svg b/legacy/styles/images/flags/GS.svg
similarity index 100%
rename from styles/images/flags/GS.svg
rename to legacy/styles/images/flags/GS.svg
diff --git a/styles/images/flags/GT.svg b/legacy/styles/images/flags/GT.svg
similarity index 100%
rename from styles/images/flags/GT.svg
rename to legacy/styles/images/flags/GT.svg
diff --git a/styles/images/flags/GU.svg b/legacy/styles/images/flags/GU.svg
similarity index 100%
rename from styles/images/flags/GU.svg
rename to legacy/styles/images/flags/GU.svg
diff --git a/styles/images/flags/GW.svg b/legacy/styles/images/flags/GW.svg
similarity index 100%
rename from styles/images/flags/GW.svg
rename to legacy/styles/images/flags/GW.svg
diff --git a/styles/images/flags/GY.svg b/legacy/styles/images/flags/GY.svg
similarity index 100%
rename from styles/images/flags/GY.svg
rename to legacy/styles/images/flags/GY.svg
diff --git a/styles/images/flags/HK.svg b/legacy/styles/images/flags/HK.svg
similarity index 100%
rename from styles/images/flags/HK.svg
rename to legacy/styles/images/flags/HK.svg
diff --git a/styles/images/flags/HM.svg b/legacy/styles/images/flags/HM.svg
similarity index 100%
rename from styles/images/flags/HM.svg
rename to legacy/styles/images/flags/HM.svg
diff --git a/styles/images/flags/HN.svg b/legacy/styles/images/flags/HN.svg
similarity index 100%
rename from styles/images/flags/HN.svg
rename to legacy/styles/images/flags/HN.svg
diff --git a/styles/images/flags/HR.svg b/legacy/styles/images/flags/HR.svg
similarity index 100%
rename from styles/images/flags/HR.svg
rename to legacy/styles/images/flags/HR.svg
diff --git a/styles/images/flags/HT.svg b/legacy/styles/images/flags/HT.svg
similarity index 100%
rename from styles/images/flags/HT.svg
rename to legacy/styles/images/flags/HT.svg
diff --git a/styles/images/flags/HU.svg b/legacy/styles/images/flags/HU.svg
similarity index 100%
rename from styles/images/flags/HU.svg
rename to legacy/styles/images/flags/HU.svg
diff --git a/styles/images/flags/IC.svg b/legacy/styles/images/flags/IC.svg
similarity index 100%
rename from styles/images/flags/IC.svg
rename to legacy/styles/images/flags/IC.svg
diff --git a/styles/images/flags/ID.svg b/legacy/styles/images/flags/ID.svg
similarity index 100%
rename from styles/images/flags/ID.svg
rename to legacy/styles/images/flags/ID.svg
diff --git a/styles/images/flags/IE.svg b/legacy/styles/images/flags/IE.svg
similarity index 100%
rename from styles/images/flags/IE.svg
rename to legacy/styles/images/flags/IE.svg
diff --git a/styles/images/flags/IL.svg b/legacy/styles/images/flags/IL.svg
similarity index 100%
rename from styles/images/flags/IL.svg
rename to legacy/styles/images/flags/IL.svg
diff --git a/styles/images/flags/IM.svg b/legacy/styles/images/flags/IM.svg
similarity index 100%
rename from styles/images/flags/IM.svg
rename to legacy/styles/images/flags/IM.svg
diff --git a/styles/images/flags/IN.svg b/legacy/styles/images/flags/IN.svg
similarity index 100%
rename from styles/images/flags/IN.svg
rename to legacy/styles/images/flags/IN.svg
diff --git a/styles/images/flags/IO.svg b/legacy/styles/images/flags/IO.svg
similarity index 100%
rename from styles/images/flags/IO.svg
rename to legacy/styles/images/flags/IO.svg
diff --git a/styles/images/flags/IQ.svg b/legacy/styles/images/flags/IQ.svg
similarity index 100%
rename from styles/images/flags/IQ.svg
rename to legacy/styles/images/flags/IQ.svg
diff --git a/styles/images/flags/IR.svg b/legacy/styles/images/flags/IR.svg
similarity index 100%
rename from styles/images/flags/IR.svg
rename to legacy/styles/images/flags/IR.svg
diff --git a/styles/images/flags/IS.svg b/legacy/styles/images/flags/IS.svg
similarity index 100%
rename from styles/images/flags/IS.svg
rename to legacy/styles/images/flags/IS.svg
diff --git a/styles/images/flags/IT.svg b/legacy/styles/images/flags/IT.svg
similarity index 100%
rename from styles/images/flags/IT.svg
rename to legacy/styles/images/flags/IT.svg
diff --git a/styles/images/flags/JE.svg b/legacy/styles/images/flags/JE.svg
similarity index 100%
rename from styles/images/flags/JE.svg
rename to legacy/styles/images/flags/JE.svg
diff --git a/styles/images/flags/JM.svg b/legacy/styles/images/flags/JM.svg
similarity index 100%
rename from styles/images/flags/JM.svg
rename to legacy/styles/images/flags/JM.svg
diff --git a/styles/images/flags/JO.svg b/legacy/styles/images/flags/JO.svg
similarity index 100%
rename from styles/images/flags/JO.svg
rename to legacy/styles/images/flags/JO.svg
diff --git a/styles/images/flags/JP.svg b/legacy/styles/images/flags/JP.svg
similarity index 100%
rename from styles/images/flags/JP.svg
rename to legacy/styles/images/flags/JP.svg
diff --git a/styles/images/flags/KE.svg b/legacy/styles/images/flags/KE.svg
similarity index 100%
rename from styles/images/flags/KE.svg
rename to legacy/styles/images/flags/KE.svg
diff --git a/styles/images/flags/KG.svg b/legacy/styles/images/flags/KG.svg
similarity index 100%
rename from styles/images/flags/KG.svg
rename to legacy/styles/images/flags/KG.svg
diff --git a/styles/images/flags/KH.svg b/legacy/styles/images/flags/KH.svg
similarity index 100%
rename from styles/images/flags/KH.svg
rename to legacy/styles/images/flags/KH.svg
diff --git a/styles/images/flags/KI.svg b/legacy/styles/images/flags/KI.svg
similarity index 100%
rename from styles/images/flags/KI.svg
rename to legacy/styles/images/flags/KI.svg
diff --git a/styles/images/flags/KM.svg b/legacy/styles/images/flags/KM.svg
similarity index 100%
rename from styles/images/flags/KM.svg
rename to legacy/styles/images/flags/KM.svg
diff --git a/styles/images/flags/KN.svg b/legacy/styles/images/flags/KN.svg
similarity index 100%
rename from styles/images/flags/KN.svg
rename to legacy/styles/images/flags/KN.svg
diff --git a/styles/images/flags/KP.svg b/legacy/styles/images/flags/KP.svg
similarity index 100%
rename from styles/images/flags/KP.svg
rename to legacy/styles/images/flags/KP.svg
diff --git a/styles/images/flags/KR.svg b/legacy/styles/images/flags/KR.svg
similarity index 100%
rename from styles/images/flags/KR.svg
rename to legacy/styles/images/flags/KR.svg
diff --git a/styles/images/flags/KW.svg b/legacy/styles/images/flags/KW.svg
similarity index 100%
rename from styles/images/flags/KW.svg
rename to legacy/styles/images/flags/KW.svg
diff --git a/styles/images/flags/KY.svg b/legacy/styles/images/flags/KY.svg
similarity index 100%
rename from styles/images/flags/KY.svg
rename to legacy/styles/images/flags/KY.svg
diff --git a/styles/images/flags/KZ.svg b/legacy/styles/images/flags/KZ.svg
similarity index 100%
rename from styles/images/flags/KZ.svg
rename to legacy/styles/images/flags/KZ.svg
diff --git a/styles/images/flags/LA.svg b/legacy/styles/images/flags/LA.svg
similarity index 100%
rename from styles/images/flags/LA.svg
rename to legacy/styles/images/flags/LA.svg
diff --git a/styles/images/flags/LB.svg b/legacy/styles/images/flags/LB.svg
similarity index 100%
rename from styles/images/flags/LB.svg
rename to legacy/styles/images/flags/LB.svg
diff --git a/styles/images/flags/LC.svg b/legacy/styles/images/flags/LC.svg
similarity index 100%
rename from styles/images/flags/LC.svg
rename to legacy/styles/images/flags/LC.svg
diff --git a/styles/images/flags/LGBT.svg b/legacy/styles/images/flags/LGBT.svg
similarity index 100%
rename from styles/images/flags/LGBT.svg
rename to legacy/styles/images/flags/LGBT.svg
diff --git a/styles/images/flags/LI.svg b/legacy/styles/images/flags/LI.svg
similarity index 100%
rename from styles/images/flags/LI.svg
rename to legacy/styles/images/flags/LI.svg
diff --git a/styles/images/flags/LK.svg b/legacy/styles/images/flags/LK.svg
similarity index 100%
rename from styles/images/flags/LK.svg
rename to legacy/styles/images/flags/LK.svg
diff --git a/styles/images/flags/LR.svg b/legacy/styles/images/flags/LR.svg
similarity index 100%
rename from styles/images/flags/LR.svg
rename to legacy/styles/images/flags/LR.svg
diff --git a/styles/images/flags/LS.svg b/legacy/styles/images/flags/LS.svg
similarity index 100%
rename from styles/images/flags/LS.svg
rename to legacy/styles/images/flags/LS.svg
diff --git a/styles/images/flags/LT.svg b/legacy/styles/images/flags/LT.svg
similarity index 100%
rename from styles/images/flags/LT.svg
rename to legacy/styles/images/flags/LT.svg
diff --git a/styles/images/flags/LU.svg b/legacy/styles/images/flags/LU.svg
similarity index 100%
rename from styles/images/flags/LU.svg
rename to legacy/styles/images/flags/LU.svg
diff --git a/styles/images/flags/LV.svg b/legacy/styles/images/flags/LV.svg
similarity index 100%
rename from styles/images/flags/LV.svg
rename to legacy/styles/images/flags/LV.svg
diff --git a/styles/images/flags/LY.svg b/legacy/styles/images/flags/LY.svg
similarity index 100%
rename from styles/images/flags/LY.svg
rename to legacy/styles/images/flags/LY.svg
diff --git a/styles/images/flags/MA.svg b/legacy/styles/images/flags/MA.svg
similarity index 100%
rename from styles/images/flags/MA.svg
rename to legacy/styles/images/flags/MA.svg
diff --git a/styles/images/flags/MC.svg b/legacy/styles/images/flags/MC.svg
similarity index 100%
rename from styles/images/flags/MC.svg
rename to legacy/styles/images/flags/MC.svg
diff --git a/styles/images/flags/MD.svg b/legacy/styles/images/flags/MD.svg
similarity index 100%
rename from styles/images/flags/MD.svg
rename to legacy/styles/images/flags/MD.svg
diff --git a/styles/images/flags/ME.svg b/legacy/styles/images/flags/ME.svg
similarity index 100%
rename from styles/images/flags/ME.svg
rename to legacy/styles/images/flags/ME.svg
diff --git a/styles/images/flags/MF.svg b/legacy/styles/images/flags/MF.svg
similarity index 100%
rename from styles/images/flags/MF.svg
rename to legacy/styles/images/flags/MF.svg
diff --git a/styles/images/flags/MG.svg b/legacy/styles/images/flags/MG.svg
similarity index 100%
rename from styles/images/flags/MG.svg
rename to legacy/styles/images/flags/MG.svg
diff --git a/styles/images/flags/MH.svg b/legacy/styles/images/flags/MH.svg
similarity index 100%
rename from styles/images/flags/MH.svg
rename to legacy/styles/images/flags/MH.svg
diff --git a/styles/images/flags/MK.svg b/legacy/styles/images/flags/MK.svg
similarity index 100%
rename from styles/images/flags/MK.svg
rename to legacy/styles/images/flags/MK.svg
diff --git a/styles/images/flags/ML.svg b/legacy/styles/images/flags/ML.svg
similarity index 100%
rename from styles/images/flags/ML.svg
rename to legacy/styles/images/flags/ML.svg
diff --git a/styles/images/flags/MM.svg b/legacy/styles/images/flags/MM.svg
similarity index 100%
rename from styles/images/flags/MM.svg
rename to legacy/styles/images/flags/MM.svg
diff --git a/styles/images/flags/MN.svg b/legacy/styles/images/flags/MN.svg
similarity index 100%
rename from styles/images/flags/MN.svg
rename to legacy/styles/images/flags/MN.svg
diff --git a/styles/images/flags/MO.svg b/legacy/styles/images/flags/MO.svg
similarity index 100%
rename from styles/images/flags/MO.svg
rename to legacy/styles/images/flags/MO.svg
diff --git a/styles/images/flags/MP.svg b/legacy/styles/images/flags/MP.svg
similarity index 100%
rename from styles/images/flags/MP.svg
rename to legacy/styles/images/flags/MP.svg
diff --git a/styles/images/flags/MQ.svg b/legacy/styles/images/flags/MQ.svg
similarity index 100%
rename from styles/images/flags/MQ.svg
rename to legacy/styles/images/flags/MQ.svg
diff --git a/styles/images/flags/MR.svg b/legacy/styles/images/flags/MR.svg
similarity index 100%
rename from styles/images/flags/MR.svg
rename to legacy/styles/images/flags/MR.svg
diff --git a/styles/images/flags/MS.svg b/legacy/styles/images/flags/MS.svg
similarity index 100%
rename from styles/images/flags/MS.svg
rename to legacy/styles/images/flags/MS.svg
diff --git a/styles/images/flags/MT.svg b/legacy/styles/images/flags/MT.svg
similarity index 100%
rename from styles/images/flags/MT.svg
rename to legacy/styles/images/flags/MT.svg
diff --git a/styles/images/flags/MU.svg b/legacy/styles/images/flags/MU.svg
similarity index 100%
rename from styles/images/flags/MU.svg
rename to legacy/styles/images/flags/MU.svg
diff --git a/styles/images/flags/MV.svg b/legacy/styles/images/flags/MV.svg
similarity index 100%
rename from styles/images/flags/MV.svg
rename to legacy/styles/images/flags/MV.svg
diff --git a/styles/images/flags/MW.svg b/legacy/styles/images/flags/MW.svg
similarity index 100%
rename from styles/images/flags/MW.svg
rename to legacy/styles/images/flags/MW.svg
diff --git a/styles/images/flags/MX.svg b/legacy/styles/images/flags/MX.svg
similarity index 100%
rename from styles/images/flags/MX.svg
rename to legacy/styles/images/flags/MX.svg
diff --git a/styles/images/flags/MY.svg b/legacy/styles/images/flags/MY.svg
similarity index 100%
rename from styles/images/flags/MY.svg
rename to legacy/styles/images/flags/MY.svg
diff --git a/styles/images/flags/MZ.svg b/legacy/styles/images/flags/MZ.svg
similarity index 100%
rename from styles/images/flags/MZ.svg
rename to legacy/styles/images/flags/MZ.svg
diff --git a/styles/images/flags/NA.svg b/legacy/styles/images/flags/NA.svg
similarity index 100%
rename from styles/images/flags/NA.svg
rename to legacy/styles/images/flags/NA.svg
diff --git a/styles/images/flags/NC.svg b/legacy/styles/images/flags/NC.svg
similarity index 100%
rename from styles/images/flags/NC.svg
rename to legacy/styles/images/flags/NC.svg
diff --git a/styles/images/flags/NE.svg b/legacy/styles/images/flags/NE.svg
similarity index 100%
rename from styles/images/flags/NE.svg
rename to legacy/styles/images/flags/NE.svg
diff --git a/styles/images/flags/NF.svg b/legacy/styles/images/flags/NF.svg
similarity index 100%
rename from styles/images/flags/NF.svg
rename to legacy/styles/images/flags/NF.svg
diff --git a/styles/images/flags/NG.svg b/legacy/styles/images/flags/NG.svg
similarity index 100%
rename from styles/images/flags/NG.svg
rename to legacy/styles/images/flags/NG.svg
diff --git a/styles/images/flags/NI.svg b/legacy/styles/images/flags/NI.svg
similarity index 100%
rename from styles/images/flags/NI.svg
rename to legacy/styles/images/flags/NI.svg
diff --git a/styles/images/flags/NL.svg b/legacy/styles/images/flags/NL.svg
similarity index 100%
rename from styles/images/flags/NL.svg
rename to legacy/styles/images/flags/NL.svg
diff --git a/styles/images/flags/NO.svg b/legacy/styles/images/flags/NO.svg
similarity index 100%
rename from styles/images/flags/NO.svg
rename to legacy/styles/images/flags/NO.svg
diff --git a/styles/images/flags/NP.svg b/legacy/styles/images/flags/NP.svg
similarity index 100%
rename from styles/images/flags/NP.svg
rename to legacy/styles/images/flags/NP.svg
diff --git a/styles/images/flags/NR.svg b/legacy/styles/images/flags/NR.svg
similarity index 100%
rename from styles/images/flags/NR.svg
rename to legacy/styles/images/flags/NR.svg
diff --git a/styles/images/flags/NU.svg b/legacy/styles/images/flags/NU.svg
similarity index 100%
rename from styles/images/flags/NU.svg
rename to legacy/styles/images/flags/NU.svg
diff --git a/styles/images/flags/NZ.svg b/legacy/styles/images/flags/NZ.svg
similarity index 100%
rename from styles/images/flags/NZ.svg
rename to legacy/styles/images/flags/NZ.svg
diff --git a/styles/images/flags/OM.svg b/legacy/styles/images/flags/OM.svg
similarity index 100%
rename from styles/images/flags/OM.svg
rename to legacy/styles/images/flags/OM.svg
diff --git a/styles/images/flags/PA.svg b/legacy/styles/images/flags/PA.svg
similarity index 100%
rename from styles/images/flags/PA.svg
rename to legacy/styles/images/flags/PA.svg
diff --git a/styles/images/flags/PACE.svg b/legacy/styles/images/flags/PACE.svg
similarity index 100%
rename from styles/images/flags/PACE.svg
rename to legacy/styles/images/flags/PACE.svg
diff --git a/styles/images/flags/PC.svg b/legacy/styles/images/flags/PC.svg
similarity index 100%
rename from styles/images/flags/PC.svg
rename to legacy/styles/images/flags/PC.svg
diff --git a/styles/images/flags/PE.svg b/legacy/styles/images/flags/PE.svg
similarity index 100%
rename from styles/images/flags/PE.svg
rename to legacy/styles/images/flags/PE.svg
diff --git a/styles/images/flags/PF.svg b/legacy/styles/images/flags/PF.svg
similarity index 100%
rename from styles/images/flags/PF.svg
rename to legacy/styles/images/flags/PF.svg
diff --git a/styles/images/flags/PG.svg b/legacy/styles/images/flags/PG.svg
similarity index 100%
rename from styles/images/flags/PG.svg
rename to legacy/styles/images/flags/PG.svg
diff --git a/styles/images/flags/PH.svg b/legacy/styles/images/flags/PH.svg
similarity index 100%
rename from styles/images/flags/PH.svg
rename to legacy/styles/images/flags/PH.svg
diff --git a/styles/images/flags/PK.svg b/legacy/styles/images/flags/PK.svg
similarity index 100%
rename from styles/images/flags/PK.svg
rename to legacy/styles/images/flags/PK.svg
diff --git a/styles/images/flags/PL.svg b/legacy/styles/images/flags/PL.svg
similarity index 100%
rename from styles/images/flags/PL.svg
rename to legacy/styles/images/flags/PL.svg
diff --git a/styles/images/flags/PM.svg b/legacy/styles/images/flags/PM.svg
similarity index 100%
rename from styles/images/flags/PM.svg
rename to legacy/styles/images/flags/PM.svg
diff --git a/styles/images/flags/PN.svg b/legacy/styles/images/flags/PN.svg
similarity index 100%
rename from styles/images/flags/PN.svg
rename to legacy/styles/images/flags/PN.svg
diff --git a/styles/images/flags/PR.svg b/legacy/styles/images/flags/PR.svg
similarity index 100%
rename from styles/images/flags/PR.svg
rename to legacy/styles/images/flags/PR.svg
diff --git a/styles/images/flags/PS.svg b/legacy/styles/images/flags/PS.svg
similarity index 100%
rename from styles/images/flags/PS.svg
rename to legacy/styles/images/flags/PS.svg
diff --git a/styles/images/flags/PT.svg b/legacy/styles/images/flags/PT.svg
similarity index 100%
rename from styles/images/flags/PT.svg
rename to legacy/styles/images/flags/PT.svg
diff --git a/styles/images/flags/PW.svg b/legacy/styles/images/flags/PW.svg
similarity index 100%
rename from styles/images/flags/PW.svg
rename to legacy/styles/images/flags/PW.svg
diff --git a/styles/images/flags/PY.svg b/legacy/styles/images/flags/PY.svg
similarity index 100%
rename from styles/images/flags/PY.svg
rename to legacy/styles/images/flags/PY.svg
diff --git a/styles/images/flags/QA.svg b/legacy/styles/images/flags/QA.svg
similarity index 100%
rename from styles/images/flags/QA.svg
rename to legacy/styles/images/flags/QA.svg
diff --git a/styles/images/flags/RE.svg b/legacy/styles/images/flags/RE.svg
similarity index 100%
rename from styles/images/flags/RE.svg
rename to legacy/styles/images/flags/RE.svg
diff --git a/styles/images/flags/RO.svg b/legacy/styles/images/flags/RO.svg
similarity index 100%
rename from styles/images/flags/RO.svg
rename to legacy/styles/images/flags/RO.svg
diff --git a/styles/images/flags/RS.svg b/legacy/styles/images/flags/RS.svg
similarity index 100%
rename from styles/images/flags/RS.svg
rename to legacy/styles/images/flags/RS.svg
diff --git a/styles/images/flags/RU.svg b/legacy/styles/images/flags/RU.svg
similarity index 100%
rename from styles/images/flags/RU.svg
rename to legacy/styles/images/flags/RU.svg
diff --git a/styles/images/flags/RW.svg b/legacy/styles/images/flags/RW.svg
similarity index 100%
rename from styles/images/flags/RW.svg
rename to legacy/styles/images/flags/RW.svg
diff --git a/styles/images/flags/SA.svg b/legacy/styles/images/flags/SA.svg
similarity index 100%
rename from styles/images/flags/SA.svg
rename to legacy/styles/images/flags/SA.svg
diff --git a/styles/images/flags/SB.svg b/legacy/styles/images/flags/SB.svg
similarity index 100%
rename from styles/images/flags/SB.svg
rename to legacy/styles/images/flags/SB.svg
diff --git a/styles/images/flags/SC.svg b/legacy/styles/images/flags/SC.svg
similarity index 100%
rename from styles/images/flags/SC.svg
rename to legacy/styles/images/flags/SC.svg
diff --git a/styles/images/flags/SD.svg b/legacy/styles/images/flags/SD.svg
similarity index 100%
rename from styles/images/flags/SD.svg
rename to legacy/styles/images/flags/SD.svg
diff --git a/styles/images/flags/SE.svg b/legacy/styles/images/flags/SE.svg
similarity index 100%
rename from styles/images/flags/SE.svg
rename to legacy/styles/images/flags/SE.svg
diff --git a/styles/images/flags/SG.svg b/legacy/styles/images/flags/SG.svg
similarity index 100%
rename from styles/images/flags/SG.svg
rename to legacy/styles/images/flags/SG.svg
diff --git a/styles/images/flags/SH-AC.svg b/legacy/styles/images/flags/SH-AC.svg
similarity index 100%
rename from styles/images/flags/SH-AC.svg
rename to legacy/styles/images/flags/SH-AC.svg
diff --git a/styles/images/flags/SH-HL.svg b/legacy/styles/images/flags/SH-HL.svg
similarity index 100%
rename from styles/images/flags/SH-HL.svg
rename to legacy/styles/images/flags/SH-HL.svg
diff --git a/styles/images/flags/SH-TA.svg b/legacy/styles/images/flags/SH-TA.svg
similarity index 100%
rename from styles/images/flags/SH-TA.svg
rename to legacy/styles/images/flags/SH-TA.svg
diff --git a/styles/images/flags/SH.svg b/legacy/styles/images/flags/SH.svg
similarity index 100%
rename from styles/images/flags/SH.svg
rename to legacy/styles/images/flags/SH.svg
diff --git a/styles/images/flags/SI.svg b/legacy/styles/images/flags/SI.svg
similarity index 100%
rename from styles/images/flags/SI.svg
rename to legacy/styles/images/flags/SI.svg
diff --git a/styles/images/flags/SJ.svg b/legacy/styles/images/flags/SJ.svg
similarity index 100%
rename from styles/images/flags/SJ.svg
rename to legacy/styles/images/flags/SJ.svg
diff --git a/styles/images/flags/SK.svg b/legacy/styles/images/flags/SK.svg
similarity index 100%
rename from styles/images/flags/SK.svg
rename to legacy/styles/images/flags/SK.svg
diff --git a/styles/images/flags/SL.svg b/legacy/styles/images/flags/SL.svg
similarity index 100%
rename from styles/images/flags/SL.svg
rename to legacy/styles/images/flags/SL.svg
diff --git a/styles/images/flags/SM.svg b/legacy/styles/images/flags/SM.svg
similarity index 100%
rename from styles/images/flags/SM.svg
rename to legacy/styles/images/flags/SM.svg
diff --git a/styles/images/flags/SN.svg b/legacy/styles/images/flags/SN.svg
similarity index 100%
rename from styles/images/flags/SN.svg
rename to legacy/styles/images/flags/SN.svg
diff --git a/styles/images/flags/SO.svg b/legacy/styles/images/flags/SO.svg
similarity index 100%
rename from styles/images/flags/SO.svg
rename to legacy/styles/images/flags/SO.svg
diff --git a/styles/images/flags/SR.svg b/legacy/styles/images/flags/SR.svg
similarity index 100%
rename from styles/images/flags/SR.svg
rename to legacy/styles/images/flags/SR.svg
diff --git a/styles/images/flags/SS.svg b/legacy/styles/images/flags/SS.svg
similarity index 100%
rename from styles/images/flags/SS.svg
rename to legacy/styles/images/flags/SS.svg
diff --git a/styles/images/flags/ST.svg b/legacy/styles/images/flags/ST.svg
similarity index 100%
rename from styles/images/flags/ST.svg
rename to legacy/styles/images/flags/ST.svg
diff --git a/styles/images/flags/SU.svg b/legacy/styles/images/flags/SU.svg
similarity index 100%
rename from styles/images/flags/SU.svg
rename to legacy/styles/images/flags/SU.svg
diff --git a/styles/images/flags/SV.svg b/legacy/styles/images/flags/SV.svg
similarity index 100%
rename from styles/images/flags/SV.svg
rename to legacy/styles/images/flags/SV.svg
diff --git a/styles/images/flags/SX.svg b/legacy/styles/images/flags/SX.svg
similarity index 100%
rename from styles/images/flags/SX.svg
rename to legacy/styles/images/flags/SX.svg
diff --git a/styles/images/flags/SY.svg b/legacy/styles/images/flags/SY.svg
similarity index 100%
rename from styles/images/flags/SY.svg
rename to legacy/styles/images/flags/SY.svg
diff --git a/styles/images/flags/SZ.svg b/legacy/styles/images/flags/SZ.svg
similarity index 100%
rename from styles/images/flags/SZ.svg
rename to legacy/styles/images/flags/SZ.svg
diff --git a/styles/images/flags/TC.svg b/legacy/styles/images/flags/TC.svg
similarity index 100%
rename from styles/images/flags/TC.svg
rename to legacy/styles/images/flags/TC.svg
diff --git a/styles/images/flags/TD.svg b/legacy/styles/images/flags/TD.svg
similarity index 100%
rename from styles/images/flags/TD.svg
rename to legacy/styles/images/flags/TD.svg
diff --git a/styles/images/flags/TF.svg b/legacy/styles/images/flags/TF.svg
similarity index 100%
rename from styles/images/flags/TF.svg
rename to legacy/styles/images/flags/TF.svg
diff --git a/styles/images/flags/TG.svg b/legacy/styles/images/flags/TG.svg
similarity index 100%
rename from styles/images/flags/TG.svg
rename to legacy/styles/images/flags/TG.svg
diff --git a/styles/images/flags/TH.svg b/legacy/styles/images/flags/TH.svg
similarity index 100%
rename from styles/images/flags/TH.svg
rename to legacy/styles/images/flags/TH.svg
diff --git a/styles/images/flags/TJ.svg b/legacy/styles/images/flags/TJ.svg
similarity index 100%
rename from styles/images/flags/TJ.svg
rename to legacy/styles/images/flags/TJ.svg
diff --git a/styles/images/flags/TK.svg b/legacy/styles/images/flags/TK.svg
similarity index 100%
rename from styles/images/flags/TK.svg
rename to legacy/styles/images/flags/TK.svg
diff --git a/styles/images/flags/TL.svg b/legacy/styles/images/flags/TL.svg
similarity index 100%
rename from styles/images/flags/TL.svg
rename to legacy/styles/images/flags/TL.svg
diff --git a/styles/images/flags/TM.svg b/legacy/styles/images/flags/TM.svg
similarity index 100%
rename from styles/images/flags/TM.svg
rename to legacy/styles/images/flags/TM.svg
diff --git a/styles/images/flags/TN.svg b/legacy/styles/images/flags/TN.svg
similarity index 100%
rename from styles/images/flags/TN.svg
rename to legacy/styles/images/flags/TN.svg
diff --git a/styles/images/flags/TO.svg b/legacy/styles/images/flags/TO.svg
similarity index 100%
rename from styles/images/flags/TO.svg
rename to legacy/styles/images/flags/TO.svg
diff --git a/styles/images/flags/TR.svg b/legacy/styles/images/flags/TR.svg
similarity index 100%
rename from styles/images/flags/TR.svg
rename to legacy/styles/images/flags/TR.svg
diff --git a/styles/images/flags/TT.svg b/legacy/styles/images/flags/TT.svg
similarity index 100%
rename from styles/images/flags/TT.svg
rename to legacy/styles/images/flags/TT.svg
diff --git a/styles/images/flags/TV.svg b/legacy/styles/images/flags/TV.svg
similarity index 100%
rename from styles/images/flags/TV.svg
rename to legacy/styles/images/flags/TV.svg
diff --git a/styles/images/flags/TW.svg b/legacy/styles/images/flags/TW.svg
similarity index 100%
rename from styles/images/flags/TW.svg
rename to legacy/styles/images/flags/TW.svg
diff --git a/styles/images/flags/TZ.svg b/legacy/styles/images/flags/TZ.svg
similarity index 100%
rename from styles/images/flags/TZ.svg
rename to legacy/styles/images/flags/TZ.svg
diff --git a/styles/images/flags/UA.svg b/legacy/styles/images/flags/UA.svg
similarity index 100%
rename from styles/images/flags/UA.svg
rename to legacy/styles/images/flags/UA.svg
diff --git a/styles/images/flags/UG.svg b/legacy/styles/images/flags/UG.svg
similarity index 100%
rename from styles/images/flags/UG.svg
rename to legacy/styles/images/flags/UG.svg
diff --git a/styles/images/flags/UM.svg b/legacy/styles/images/flags/UM.svg
similarity index 100%
rename from styles/images/flags/UM.svg
rename to legacy/styles/images/flags/UM.svg
diff --git a/styles/images/flags/UN.svg b/legacy/styles/images/flags/UN.svg
similarity index 100%
rename from styles/images/flags/UN.svg
rename to legacy/styles/images/flags/UN.svg
diff --git a/styles/images/flags/US.svg b/legacy/styles/images/flags/US.svg
similarity index 100%
rename from styles/images/flags/US.svg
rename to legacy/styles/images/flags/US.svg
diff --git a/styles/images/flags/UY.svg b/legacy/styles/images/flags/UY.svg
similarity index 100%
rename from styles/images/flags/UY.svg
rename to legacy/styles/images/flags/UY.svg
diff --git a/styles/images/flags/UZ.svg b/legacy/styles/images/flags/UZ.svg
similarity index 100%
rename from styles/images/flags/UZ.svg
rename to legacy/styles/images/flags/UZ.svg
diff --git a/styles/images/flags/VA.svg b/legacy/styles/images/flags/VA.svg
similarity index 100%
rename from styles/images/flags/VA.svg
rename to legacy/styles/images/flags/VA.svg
diff --git a/styles/images/flags/VC.svg b/legacy/styles/images/flags/VC.svg
similarity index 100%
rename from styles/images/flags/VC.svg
rename to legacy/styles/images/flags/VC.svg
diff --git a/styles/images/flags/VE.svg b/legacy/styles/images/flags/VE.svg
similarity index 100%
rename from styles/images/flags/VE.svg
rename to legacy/styles/images/flags/VE.svg
diff --git a/styles/images/flags/VG.svg b/legacy/styles/images/flags/VG.svg
similarity index 100%
rename from styles/images/flags/VG.svg
rename to legacy/styles/images/flags/VG.svg
diff --git a/styles/images/flags/VI.svg b/legacy/styles/images/flags/VI.svg
similarity index 100%
rename from styles/images/flags/VI.svg
rename to legacy/styles/images/flags/VI.svg
diff --git a/styles/images/flags/VN.svg b/legacy/styles/images/flags/VN.svg
similarity index 100%
rename from styles/images/flags/VN.svg
rename to legacy/styles/images/flags/VN.svg
diff --git a/styles/images/flags/VU.svg b/legacy/styles/images/flags/VU.svg
similarity index 100%
rename from styles/images/flags/VU.svg
rename to legacy/styles/images/flags/VU.svg
diff --git a/styles/images/flags/WBW.svg b/legacy/styles/images/flags/WBW.svg
similarity index 100%
rename from styles/images/flags/WBW.svg
rename to legacy/styles/images/flags/WBW.svg
diff --git a/styles/images/flags/WF.svg b/legacy/styles/images/flags/WF.svg
similarity index 100%
rename from styles/images/flags/WF.svg
rename to legacy/styles/images/flags/WF.svg
diff --git a/styles/images/flags/WS.svg b/legacy/styles/images/flags/WS.svg
similarity index 100%
rename from styles/images/flags/WS.svg
rename to legacy/styles/images/flags/WS.svg
diff --git a/styles/images/flags/XK.svg b/legacy/styles/images/flags/XK.svg
similarity index 100%
rename from styles/images/flags/XK.svg
rename to legacy/styles/images/flags/XK.svg
diff --git a/styles/images/flags/XX.svg b/legacy/styles/images/flags/XX.svg
similarity index 100%
rename from styles/images/flags/XX.svg
rename to legacy/styles/images/flags/XX.svg
diff --git a/styles/images/flags/YE.svg b/legacy/styles/images/flags/YE.svg
similarity index 100%
rename from styles/images/flags/YE.svg
rename to legacy/styles/images/flags/YE.svg
diff --git a/styles/images/flags/YT.svg b/legacy/styles/images/flags/YT.svg
similarity index 100%
rename from styles/images/flags/YT.svg
rename to legacy/styles/images/flags/YT.svg
diff --git a/styles/images/flags/YU.svg b/legacy/styles/images/flags/YU.svg
similarity index 100%
rename from styles/images/flags/YU.svg
rename to legacy/styles/images/flags/YU.svg
diff --git a/styles/images/flags/ZA.svg b/legacy/styles/images/flags/ZA.svg
similarity index 100%
rename from styles/images/flags/ZA.svg
rename to legacy/styles/images/flags/ZA.svg
diff --git a/styles/images/flags/ZM.svg b/legacy/styles/images/flags/ZM.svg
similarity index 100%
rename from styles/images/flags/ZM.svg
rename to legacy/styles/images/flags/ZM.svg
diff --git a/styles/images/flags/ZW.svg b/legacy/styles/images/flags/ZW.svg
similarity index 100%
rename from styles/images/flags/ZW.svg
rename to legacy/styles/images/flags/ZW.svg
diff --git a/styles/images/folder.gif b/legacy/styles/images/folder.gif
similarity index 100%
rename from styles/images/folder.gif
rename to legacy/styles/images/folder.gif
diff --git a/styles/images/good.gif b/legacy/styles/images/good.gif
similarity index 100%
rename from styles/images/good.gif
rename to legacy/styles/images/good.gif
diff --git a/styles/images/icon_clip.gif b/legacy/styles/images/icon_clip.gif
similarity index 100%
rename from styles/images/icon_clip.gif
rename to legacy/styles/images/icon_clip.gif
diff --git a/styles/images/icon_delete.gif b/legacy/styles/images/icon_delete.gif
similarity index 100%
rename from styles/images/icon_delete.gif
rename to legacy/styles/images/icon_delete.gif
diff --git a/styles/images/icon_dn.gif b/legacy/styles/images/icon_dn.gif
similarity index 100%
rename from styles/images/icon_dn.gif
rename to legacy/styles/images/icon_dn.gif
diff --git a/styles/images/icon_edit.gif b/legacy/styles/images/icon_edit.gif
similarity index 100%
rename from styles/images/icon_edit.gif
rename to legacy/styles/images/icon_edit.gif
diff --git a/styles/images/icon_external.png b/legacy/styles/images/icon_external.png
similarity index 100%
rename from styles/images/icon_external.png
rename to legacy/styles/images/icon_external.png
diff --git a/styles/images/icon_run.gif b/legacy/styles/images/icon_run.gif
similarity index 100%
rename from styles/images/icon_run.gif
rename to legacy/styles/images/icon_run.gif
diff --git a/styles/images/icon_sync.gif b/legacy/styles/images/icon_sync.gif
similarity index 100%
rename from styles/images/icon_sync.gif
rename to legacy/styles/images/icon_sync.gif
diff --git a/styles/images/logo/logo.png b/legacy/styles/images/logo/logo.png
similarity index 100%
rename from styles/images/logo/logo.png
rename to legacy/styles/images/logo/logo.png
diff --git a/styles/images/magnet.png b/legacy/styles/images/magnet.png
similarity index 100%
rename from styles/images/magnet.png
rename to legacy/styles/images/magnet.png
diff --git a/styles/images/magnet_v2.png b/legacy/styles/images/magnet_v2.png
similarity index 100%
rename from styles/images/magnet_v2.png
rename to legacy/styles/images/magnet_v2.png
diff --git a/styles/images/page.gif b/legacy/styles/images/page.gif
similarity index 100%
rename from styles/images/page.gif
rename to legacy/styles/images/page.gif
diff --git a/styles/images/pic_loading.gif b/legacy/styles/images/pic_loading.gif
similarity index 100%
rename from styles/images/pic_loading.gif
rename to legacy/styles/images/pic_loading.gif
diff --git a/styles/images/ranks/admin.png b/legacy/styles/images/ranks/admin.png
similarity index 100%
rename from styles/images/ranks/admin.png
rename to legacy/styles/images/ranks/admin.png
diff --git a/styles/images/ranks/user.png b/legacy/styles/images/ranks/user.png
similarity index 100%
rename from styles/images/ranks/user.png
rename to legacy/styles/images/ranks/user.png
diff --git a/styles/images/smiles/aa.gif b/legacy/styles/images/smiles/aa.gif
similarity index 100%
rename from styles/images/smiles/aa.gif
rename to legacy/styles/images/smiles/aa.gif
diff --git a/styles/images/smiles/ab.gif b/legacy/styles/images/smiles/ab.gif
similarity index 100%
rename from styles/images/smiles/ab.gif
rename to legacy/styles/images/smiles/ab.gif
diff --git a/styles/images/smiles/ac.gif b/legacy/styles/images/smiles/ac.gif
similarity index 100%
rename from styles/images/smiles/ac.gif
rename to legacy/styles/images/smiles/ac.gif
diff --git a/styles/images/smiles/ae.gif b/legacy/styles/images/smiles/ae.gif
similarity index 100%
rename from styles/images/smiles/ae.gif
rename to legacy/styles/images/smiles/ae.gif
diff --git a/styles/images/smiles/af.gif b/legacy/styles/images/smiles/af.gif
similarity index 100%
rename from styles/images/smiles/af.gif
rename to legacy/styles/images/smiles/af.gif
diff --git a/styles/images/smiles/ag.gif b/legacy/styles/images/smiles/ag.gif
similarity index 100%
rename from styles/images/smiles/ag.gif
rename to legacy/styles/images/smiles/ag.gif
diff --git a/styles/images/smiles/ah.gif b/legacy/styles/images/smiles/ah.gif
similarity index 100%
rename from styles/images/smiles/ah.gif
rename to legacy/styles/images/smiles/ah.gif
diff --git a/styles/images/smiles/ai.gif b/legacy/styles/images/smiles/ai.gif
similarity index 100%
rename from styles/images/smiles/ai.gif
rename to legacy/styles/images/smiles/ai.gif
diff --git a/styles/images/smiles/aj.gif b/legacy/styles/images/smiles/aj.gif
similarity index 100%
rename from styles/images/smiles/aj.gif
rename to legacy/styles/images/smiles/aj.gif
diff --git a/styles/images/smiles/ak.gif b/legacy/styles/images/smiles/ak.gif
similarity index 100%
rename from styles/images/smiles/ak.gif
rename to legacy/styles/images/smiles/ak.gif
diff --git a/styles/images/smiles/al.gif b/legacy/styles/images/smiles/al.gif
similarity index 100%
rename from styles/images/smiles/al.gif
rename to legacy/styles/images/smiles/al.gif
diff --git a/styles/images/smiles/am.gif b/legacy/styles/images/smiles/am.gif
similarity index 100%
rename from styles/images/smiles/am.gif
rename to legacy/styles/images/smiles/am.gif
diff --git a/styles/images/smiles/an.gif b/legacy/styles/images/smiles/an.gif
similarity index 100%
rename from styles/images/smiles/an.gif
rename to legacy/styles/images/smiles/an.gif
diff --git a/styles/images/smiles/ao.gif b/legacy/styles/images/smiles/ao.gif
similarity index 100%
rename from styles/images/smiles/ao.gif
rename to legacy/styles/images/smiles/ao.gif
diff --git a/styles/images/smiles/ap.gif b/legacy/styles/images/smiles/ap.gif
similarity index 100%
rename from styles/images/smiles/ap.gif
rename to legacy/styles/images/smiles/ap.gif
diff --git a/styles/images/smiles/aq.gif b/legacy/styles/images/smiles/aq.gif
similarity index 100%
rename from styles/images/smiles/aq.gif
rename to legacy/styles/images/smiles/aq.gif
diff --git a/styles/images/smiles/ar.gif b/legacy/styles/images/smiles/ar.gif
similarity index 100%
rename from styles/images/smiles/ar.gif
rename to legacy/styles/images/smiles/ar.gif
diff --git a/styles/images/smiles/as.gif b/legacy/styles/images/smiles/as.gif
similarity index 100%
rename from styles/images/smiles/as.gif
rename to legacy/styles/images/smiles/as.gif
diff --git a/styles/images/smiles/at.gif b/legacy/styles/images/smiles/at.gif
similarity index 100%
rename from styles/images/smiles/at.gif
rename to legacy/styles/images/smiles/at.gif
diff --git a/styles/images/smiles/au.gif b/legacy/styles/images/smiles/au.gif
similarity index 100%
rename from styles/images/smiles/au.gif
rename to legacy/styles/images/smiles/au.gif
diff --git a/styles/images/smiles/av.gif b/legacy/styles/images/smiles/av.gif
similarity index 100%
rename from styles/images/smiles/av.gif
rename to legacy/styles/images/smiles/av.gif
diff --git a/styles/images/smiles/aw.gif b/legacy/styles/images/smiles/aw.gif
similarity index 100%
rename from styles/images/smiles/aw.gif
rename to legacy/styles/images/smiles/aw.gif
diff --git a/styles/images/smiles/ax.gif b/legacy/styles/images/smiles/ax.gif
similarity index 100%
rename from styles/images/smiles/ax.gif
rename to legacy/styles/images/smiles/ax.gif
diff --git a/styles/images/smiles/ay.gif b/legacy/styles/images/smiles/ay.gif
similarity index 100%
rename from styles/images/smiles/ay.gif
rename to legacy/styles/images/smiles/ay.gif
diff --git a/styles/images/smiles/az.gif b/legacy/styles/images/smiles/az.gif
similarity index 100%
rename from styles/images/smiles/az.gif
rename to legacy/styles/images/smiles/az.gif
diff --git a/styles/images/smiles/ba.gif b/legacy/styles/images/smiles/ba.gif
similarity index 100%
rename from styles/images/smiles/ba.gif
rename to legacy/styles/images/smiles/ba.gif
diff --git a/styles/images/smiles/bb.gif b/legacy/styles/images/smiles/bb.gif
similarity index 100%
rename from styles/images/smiles/bb.gif
rename to legacy/styles/images/smiles/bb.gif
diff --git a/styles/images/smiles/bc.gif b/legacy/styles/images/smiles/bc.gif
similarity index 100%
rename from styles/images/smiles/bc.gif
rename to legacy/styles/images/smiles/bc.gif
diff --git a/styles/images/smiles/bd.gif b/legacy/styles/images/smiles/bd.gif
similarity index 100%
rename from styles/images/smiles/bd.gif
rename to legacy/styles/images/smiles/bd.gif
diff --git a/styles/images/smiles/be.gif b/legacy/styles/images/smiles/be.gif
similarity index 100%
rename from styles/images/smiles/be.gif
rename to legacy/styles/images/smiles/be.gif
diff --git a/styles/images/smiles/bf.gif b/legacy/styles/images/smiles/bf.gif
similarity index 100%
rename from styles/images/smiles/bf.gif
rename to legacy/styles/images/smiles/bf.gif
diff --git a/styles/images/smiles/bg.gif b/legacy/styles/images/smiles/bg.gif
similarity index 100%
rename from styles/images/smiles/bg.gif
rename to legacy/styles/images/smiles/bg.gif
diff --git a/styles/images/smiles/bh.gif b/legacy/styles/images/smiles/bh.gif
similarity index 100%
rename from styles/images/smiles/bh.gif
rename to legacy/styles/images/smiles/bh.gif
diff --git a/styles/images/smiles/bi.gif b/legacy/styles/images/smiles/bi.gif
similarity index 100%
rename from styles/images/smiles/bi.gif
rename to legacy/styles/images/smiles/bi.gif
diff --git a/styles/images/smiles/bj.gif b/legacy/styles/images/smiles/bj.gif
similarity index 100%
rename from styles/images/smiles/bj.gif
rename to legacy/styles/images/smiles/bj.gif
diff --git a/styles/images/smiles/bk.gif b/legacy/styles/images/smiles/bk.gif
similarity index 100%
rename from styles/images/smiles/bk.gif
rename to legacy/styles/images/smiles/bk.gif
diff --git a/styles/images/smiles/bl.gif b/legacy/styles/images/smiles/bl.gif
similarity index 100%
rename from styles/images/smiles/bl.gif
rename to legacy/styles/images/smiles/bl.gif
diff --git a/styles/images/smiles/bm.gif b/legacy/styles/images/smiles/bm.gif
similarity index 100%
rename from styles/images/smiles/bm.gif
rename to legacy/styles/images/smiles/bm.gif
diff --git a/styles/images/smiles/bn.gif b/legacy/styles/images/smiles/bn.gif
similarity index 100%
rename from styles/images/smiles/bn.gif
rename to legacy/styles/images/smiles/bn.gif
diff --git a/styles/images/smiles/bo.gif b/legacy/styles/images/smiles/bo.gif
similarity index 100%
rename from styles/images/smiles/bo.gif
rename to legacy/styles/images/smiles/bo.gif
diff --git a/styles/images/smiles/bp.gif b/legacy/styles/images/smiles/bp.gif
similarity index 100%
rename from styles/images/smiles/bp.gif
rename to legacy/styles/images/smiles/bp.gif
diff --git a/styles/images/smiles/bq.gif b/legacy/styles/images/smiles/bq.gif
similarity index 100%
rename from styles/images/smiles/bq.gif
rename to legacy/styles/images/smiles/bq.gif
diff --git a/styles/images/smiles/br.gif b/legacy/styles/images/smiles/br.gif
similarity index 100%
rename from styles/images/smiles/br.gif
rename to legacy/styles/images/smiles/br.gif
diff --git a/styles/images/smiles/bs.gif b/legacy/styles/images/smiles/bs.gif
similarity index 100%
rename from styles/images/smiles/bs.gif
rename to legacy/styles/images/smiles/bs.gif
diff --git a/styles/images/smiles/bt.gif b/legacy/styles/images/smiles/bt.gif
similarity index 100%
rename from styles/images/smiles/bt.gif
rename to legacy/styles/images/smiles/bt.gif
diff --git a/styles/images/smiles/bu.gif b/legacy/styles/images/smiles/bu.gif
similarity index 100%
rename from styles/images/smiles/bu.gif
rename to legacy/styles/images/smiles/bu.gif
diff --git a/styles/images/smiles/bv.gif b/legacy/styles/images/smiles/bv.gif
similarity index 100%
rename from styles/images/smiles/bv.gif
rename to legacy/styles/images/smiles/bv.gif
diff --git a/styles/images/smiles/bw.gif b/legacy/styles/images/smiles/bw.gif
similarity index 100%
rename from styles/images/smiles/bw.gif
rename to legacy/styles/images/smiles/bw.gif
diff --git a/styles/images/smiles/bx.gif b/legacy/styles/images/smiles/bx.gif
similarity index 100%
rename from styles/images/smiles/bx.gif
rename to legacy/styles/images/smiles/bx.gif
diff --git a/styles/images/smiles/by.gif b/legacy/styles/images/smiles/by.gif
similarity index 100%
rename from styles/images/smiles/by.gif
rename to legacy/styles/images/smiles/by.gif
diff --git a/styles/images/smiles/bz.gif b/legacy/styles/images/smiles/bz.gif
similarity index 100%
rename from styles/images/smiles/bz.gif
rename to legacy/styles/images/smiles/bz.gif
diff --git a/styles/images/smiles/ca.gif b/legacy/styles/images/smiles/ca.gif
similarity index 100%
rename from styles/images/smiles/ca.gif
rename to legacy/styles/images/smiles/ca.gif
diff --git a/styles/images/smiles/cb.gif b/legacy/styles/images/smiles/cb.gif
similarity index 100%
rename from styles/images/smiles/cb.gif
rename to legacy/styles/images/smiles/cb.gif
diff --git a/styles/images/smiles/cc.gif b/legacy/styles/images/smiles/cc.gif
similarity index 100%
rename from styles/images/smiles/cc.gif
rename to legacy/styles/images/smiles/cc.gif
diff --git a/styles/images/smiles/cd.gif b/legacy/styles/images/smiles/cd.gif
similarity index 100%
rename from styles/images/smiles/cd.gif
rename to legacy/styles/images/smiles/cd.gif
diff --git a/styles/images/smiles/tr_oops.gif b/legacy/styles/images/smiles/tr_oops.gif
similarity index 100%
rename from styles/images/smiles/tr_oops.gif
rename to legacy/styles/images/smiles/tr_oops.gif
diff --git a/styles/images/spacer.gif b/legacy/styles/images/spacer.gif
similarity index 100%
rename from styles/images/spacer.gif
rename to legacy/styles/images/spacer.gif
diff --git a/styles/images/t_info.png b/legacy/styles/images/t_info.png
similarity index 100%
rename from styles/images/t_info.png
rename to legacy/styles/images/t_info.png
diff --git a/styles/images/tor_gold.gif b/legacy/styles/images/tor_gold.gif
similarity index 100%
rename from styles/images/tor_gold.gif
rename to legacy/styles/images/tor_gold.gif
diff --git a/styles/images/tor_m3u_format.png b/legacy/styles/images/tor_m3u_format.png
similarity index 100%
rename from styles/images/tor_m3u_format.png
rename to legacy/styles/images/tor_m3u_format.png
diff --git a/styles/images/tor_silver.gif b/legacy/styles/images/tor_silver.gif
similarity index 100%
rename from styles/images/tor_silver.gif
rename to legacy/styles/images/tor_silver.gif
diff --git a/styles/images/user_offline.gif b/legacy/styles/images/user_offline.gif
similarity index 100%
rename from styles/images/user_offline.gif
rename to legacy/styles/images/user_offline.gif
diff --git a/styles/images/user_online.gif b/legacy/styles/images/user_online.gif
similarity index 100%
rename from styles/images/user_online.gif
rename to legacy/styles/images/user_online.gif
diff --git a/styles/js/bbcode.js b/legacy/styles/js/bbcode.js
similarity index 100%
rename from styles/js/bbcode.js
rename to legacy/styles/js/bbcode.js
diff --git a/styles/js/libs/clipboard.min.js b/legacy/styles/js/libs/clipboard.min.js
similarity index 100%
rename from styles/js/libs/clipboard.min.js
rename to legacy/styles/js/libs/clipboard.min.js
diff --git a/styles/js/libs/jquery-1.12.4.min.js b/legacy/styles/js/libs/jquery-1.12.4.min.js
similarity index 100%
rename from styles/js/libs/jquery-1.12.4.min.js
rename to legacy/styles/js/libs/jquery-1.12.4.min.js
diff --git a/styles/js/libs/jquery-migrate.min.js b/legacy/styles/js/libs/jquery-migrate.min.js
similarity index 100%
rename from styles/js/libs/jquery-migrate.min.js
rename to legacy/styles/js/libs/jquery-migrate.min.js
diff --git a/styles/js/libs/legacy.js b/legacy/styles/js/libs/legacy.js
similarity index 100%
rename from styles/js/libs/legacy.js
rename to legacy/styles/js/libs/legacy.js
diff --git a/styles/js/libs/oldbrowserdetector.min.js b/legacy/styles/js/libs/oldbrowserdetector.min.js
similarity index 100%
rename from styles/js/libs/oldbrowserdetector.min.js
rename to legacy/styles/js/libs/oldbrowserdetector.min.js
diff --git a/styles/js/libs/printThis.min.js b/legacy/styles/js/libs/printThis.min.js
similarity index 100%
rename from styles/js/libs/printThis.min.js
rename to legacy/styles/js/libs/printThis.min.js
diff --git a/styles/js/main.js b/legacy/styles/js/main.js
similarity index 100%
rename from styles/js/main.js
rename to legacy/styles/js/main.js
diff --git a/styles/templates/admin/admin_attach_cp.tpl b/legacy/styles/templates/admin/admin_attach_cp.tpl
similarity index 100%
rename from styles/templates/admin/admin_attach_cp.tpl
rename to legacy/styles/templates/admin/admin_attach_cp.tpl
diff --git a/styles/templates/admin/admin_attachments.tpl b/legacy/styles/templates/admin/admin_attachments.tpl
similarity index 100%
rename from styles/templates/admin/admin_attachments.tpl
rename to legacy/styles/templates/admin/admin_attachments.tpl
diff --git a/styles/templates/admin/admin_board.tpl b/legacy/styles/templates/admin/admin_board.tpl
similarity index 100%
rename from styles/templates/admin/admin_board.tpl
rename to legacy/styles/templates/admin/admin_board.tpl
diff --git a/styles/templates/admin/admin_bt_forum_cfg.tpl b/legacy/styles/templates/admin/admin_bt_forum_cfg.tpl
similarity index 100%
rename from styles/templates/admin/admin_bt_forum_cfg.tpl
rename to legacy/styles/templates/admin/admin_bt_forum_cfg.tpl
diff --git a/styles/templates/admin/admin_cron.tpl b/legacy/styles/templates/admin/admin_cron.tpl
similarity index 100%
rename from styles/templates/admin/admin_cron.tpl
rename to legacy/styles/templates/admin/admin_cron.tpl
diff --git a/styles/templates/admin/admin_disallow.tpl b/legacy/styles/templates/admin/admin_disallow.tpl
similarity index 100%
rename from styles/templates/admin/admin_disallow.tpl
rename to legacy/styles/templates/admin/admin_disallow.tpl
diff --git a/styles/templates/admin/admin_extensions.tpl b/legacy/styles/templates/admin/admin_extensions.tpl
similarity index 100%
rename from styles/templates/admin/admin_extensions.tpl
rename to legacy/styles/templates/admin/admin_extensions.tpl
diff --git a/styles/templates/admin/admin_forum_prune.tpl b/legacy/styles/templates/admin/admin_forum_prune.tpl
similarity index 100%
rename from styles/templates/admin/admin_forum_prune.tpl
rename to legacy/styles/templates/admin/admin_forum_prune.tpl
diff --git a/styles/templates/admin/admin_forumauth.tpl b/legacy/styles/templates/admin/admin_forumauth.tpl
similarity index 100%
rename from styles/templates/admin/admin_forumauth.tpl
rename to legacy/styles/templates/admin/admin_forumauth.tpl
diff --git a/styles/templates/admin/admin_forumauth_list.tpl b/legacy/styles/templates/admin/admin_forumauth_list.tpl
similarity index 100%
rename from styles/templates/admin/admin_forumauth_list.tpl
rename to legacy/styles/templates/admin/admin_forumauth_list.tpl
diff --git a/styles/templates/admin/admin_forums.tpl b/legacy/styles/templates/admin/admin_forums.tpl
similarity index 100%
rename from styles/templates/admin/admin_forums.tpl
rename to legacy/styles/templates/admin/admin_forums.tpl
diff --git a/styles/templates/admin/admin_groups.tpl b/legacy/styles/templates/admin/admin_groups.tpl
similarity index 100%
rename from styles/templates/admin/admin_groups.tpl
rename to legacy/styles/templates/admin/admin_groups.tpl
diff --git a/styles/templates/admin/admin_log.tpl b/legacy/styles/templates/admin/admin_log.tpl
similarity index 100%
rename from styles/templates/admin/admin_log.tpl
rename to legacy/styles/templates/admin/admin_log.tpl
diff --git a/styles/templates/admin/admin_mass_email.tpl b/legacy/styles/templates/admin/admin_mass_email.tpl
similarity index 100%
rename from styles/templates/admin/admin_mass_email.tpl
rename to legacy/styles/templates/admin/admin_mass_email.tpl
diff --git a/styles/templates/admin/admin_migrations.tpl b/legacy/styles/templates/admin/admin_migrations.tpl
similarity index 100%
rename from styles/templates/admin/admin_migrations.tpl
rename to legacy/styles/templates/admin/admin_migrations.tpl
diff --git a/styles/templates/admin/admin_ranks.tpl b/legacy/styles/templates/admin/admin_ranks.tpl
similarity index 100%
rename from styles/templates/admin/admin_ranks.tpl
rename to legacy/styles/templates/admin/admin_ranks.tpl
diff --git a/styles/templates/admin/admin_rebuild_search.tpl b/legacy/styles/templates/admin/admin_rebuild_search.tpl
similarity index 100%
rename from styles/templates/admin/admin_rebuild_search.tpl
rename to legacy/styles/templates/admin/admin_rebuild_search.tpl
diff --git a/styles/templates/admin/admin_robots.tpl b/legacy/styles/templates/admin/admin_robots.tpl
similarity index 100%
rename from styles/templates/admin/admin_robots.tpl
rename to legacy/styles/templates/admin/admin_robots.tpl
diff --git a/styles/templates/admin/admin_sitemap.tpl b/legacy/styles/templates/admin/admin_sitemap.tpl
similarity index 100%
rename from styles/templates/admin/admin_sitemap.tpl
rename to legacy/styles/templates/admin/admin_sitemap.tpl
diff --git a/styles/templates/admin/admin_smilies.tpl b/legacy/styles/templates/admin/admin_smilies.tpl
similarity index 100%
rename from styles/templates/admin/admin_smilies.tpl
rename to legacy/styles/templates/admin/admin_smilies.tpl
diff --git a/styles/templates/admin/admin_terms.tpl b/legacy/styles/templates/admin/admin_terms.tpl
similarity index 100%
rename from styles/templates/admin/admin_terms.tpl
rename to legacy/styles/templates/admin/admin_terms.tpl
diff --git a/styles/templates/admin/admin_ug_auth.tpl b/legacy/styles/templates/admin/admin_ug_auth.tpl
similarity index 100%
rename from styles/templates/admin/admin_ug_auth.tpl
rename to legacy/styles/templates/admin/admin_ug_auth.tpl
diff --git a/styles/templates/admin/admin_user_ban.tpl b/legacy/styles/templates/admin/admin_user_ban.tpl
similarity index 100%
rename from styles/templates/admin/admin_user_ban.tpl
rename to legacy/styles/templates/admin/admin_user_ban.tpl
diff --git a/styles/templates/admin/admin_user_search.tpl b/legacy/styles/templates/admin/admin_user_search.tpl
similarity index 100%
rename from styles/templates/admin/admin_user_search.tpl
rename to legacy/styles/templates/admin/admin_user_search.tpl
diff --git a/styles/templates/admin/admin_words.tpl b/legacy/styles/templates/admin/admin_words.tpl
similarity index 100%
rename from styles/templates/admin/admin_words.tpl
rename to legacy/styles/templates/admin/admin_words.tpl
diff --git a/styles/templates/admin/index.tpl b/legacy/styles/templates/admin/index.tpl
similarity index 100%
rename from styles/templates/admin/index.tpl
rename to legacy/styles/templates/admin/index.tpl
diff --git a/styles/templates/default/ajax_edit.tpl b/legacy/styles/templates/default/ajax_edit.tpl
similarity index 100%
rename from styles/templates/default/ajax_edit.tpl
rename to legacy/styles/templates/default/ajax_edit.tpl
diff --git a/styles/templates/default/common.tpl b/legacy/styles/templates/default/common.tpl
similarity index 100%
rename from styles/templates/default/common.tpl
rename to legacy/styles/templates/default/common.tpl
diff --git a/styles/templates/default/css/admin.css b/legacy/styles/templates/default/css/admin.css
similarity index 100%
rename from styles/templates/default/css/admin.css
rename to legacy/styles/templates/default/css/admin.css
diff --git a/styles/templates/default/css/ajax.css b/legacy/styles/templates/default/css/ajax.css
similarity index 100%
rename from styles/templates/default/css/ajax.css
rename to legacy/styles/templates/default/css/ajax.css
diff --git a/styles/templates/default/css/alert.css b/legacy/styles/templates/default/css/alert.css
similarity index 100%
rename from styles/templates/default/css/alert.css
rename to legacy/styles/templates/default/css/alert.css
diff --git a/styles/templates/default/css/globals.css b/legacy/styles/templates/default/css/globals.css
similarity index 100%
rename from styles/templates/default/css/globals.css
rename to legacy/styles/templates/default/css/globals.css
diff --git a/styles/templates/default/css/images.css b/legacy/styles/templates/default/css/images.css
similarity index 100%
rename from styles/templates/default/css/images.css
rename to legacy/styles/templates/default/css/images.css
diff --git a/styles/templates/default/css/initial.css b/legacy/styles/templates/default/css/initial.css
similarity index 100%
rename from styles/templates/default/css/initial.css
rename to legacy/styles/templates/default/css/initial.css
diff --git a/styles/templates/default/css/main.css b/legacy/styles/templates/default/css/main.css
similarity index 100%
rename from styles/templates/default/css/main.css
rename to legacy/styles/templates/default/css/main.css
diff --git a/styles/templates/default/css/main_content.css b/legacy/styles/templates/default/css/main_content.css
similarity index 100%
rename from styles/templates/default/css/main_content.css
rename to legacy/styles/templates/default/css/main_content.css
diff --git a/styles/templates/default/css/menus.css b/legacy/styles/templates/default/css/menus.css
similarity index 100%
rename from styles/templates/default/css/menus.css
rename to legacy/styles/templates/default/css/menus.css
diff --git a/styles/templates/default/css/misc.css b/legacy/styles/templates/default/css/misc.css
similarity index 100%
rename from styles/templates/default/css/misc.css
rename to legacy/styles/templates/default/css/misc.css
diff --git a/styles/templates/default/css/modern-normalize.css b/legacy/styles/templates/default/css/modern-normalize.css
similarity index 100%
rename from styles/templates/default/css/modern-normalize.css
rename to legacy/styles/templates/default/css/modern-normalize.css
diff --git a/styles/templates/default/css/page_content.css b/legacy/styles/templates/default/css/page_content.css
similarity index 100%
rename from styles/templates/default/css/page_content.css
rename to legacy/styles/templates/default/css/page_content.css
diff --git a/styles/templates/default/css/page_footer.css b/legacy/styles/templates/default/css/page_footer.css
similarity index 100%
rename from styles/templates/default/css/page_footer.css
rename to legacy/styles/templates/default/css/page_footer.css
diff --git a/styles/templates/default/css/page_header.css b/legacy/styles/templates/default/css/page_header.css
similarity index 100%
rename from styles/templates/default/css/page_header.css
rename to legacy/styles/templates/default/css/page_header.css
diff --git a/styles/templates/default/css/shortcuts.css b/legacy/styles/templates/default/css/shortcuts.css
similarity index 100%
rename from styles/templates/default/css/shortcuts.css
rename to legacy/styles/templates/default/css/shortcuts.css
diff --git a/styles/templates/default/css/tablesorter.css b/legacy/styles/templates/default/css/tablesorter.css
similarity index 100%
rename from styles/templates/default/css/tablesorter.css
rename to legacy/styles/templates/default/css/tablesorter.css
diff --git a/styles/templates/default/css/top.css b/legacy/styles/templates/default/css/top.css
similarity index 100%
rename from styles/templates/default/css/top.css
rename to legacy/styles/templates/default/css/top.css
diff --git a/styles/templates/default/css/youtube.css b/legacy/styles/templates/default/css/youtube.css
similarity index 100%
rename from styles/templates/default/css/youtube.css
rename to legacy/styles/templates/default/css/youtube.css
diff --git a/styles/templates/default/filelist.tpl b/legacy/styles/templates/default/filelist.tpl
similarity index 100%
rename from styles/templates/default/filelist.tpl
rename to legacy/styles/templates/default/filelist.tpl
diff --git a/styles/templates/default/group.tpl b/legacy/styles/templates/default/group.tpl
similarity index 100%
rename from styles/templates/default/group.tpl
rename to legacy/styles/templates/default/group.tpl
diff --git a/styles/templates/default/group_edit.tpl b/legacy/styles/templates/default/group_edit.tpl
similarity index 100%
rename from styles/templates/default/group_edit.tpl
rename to legacy/styles/templates/default/group_edit.tpl
diff --git a/styles/templates/default/images/aerobg.png b/legacy/styles/templates/default/images/aerobg.png
similarity index 100%
rename from styles/templates/default/images/aerobg.png
rename to legacy/styles/templates/default/images/aerobg.png
diff --git a/styles/templates/default/images/arrow1.gif b/legacy/styles/templates/default/images/arrow1.gif
similarity index 100%
rename from styles/templates/default/images/arrow1.gif
rename to legacy/styles/templates/default/images/arrow1.gif
diff --git a/styles/templates/default/images/button.gif b/legacy/styles/templates/default/images/button.gif
similarity index 100%
rename from styles/templates/default/images/button.gif
rename to legacy/styles/templates/default/images/button.gif
diff --git a/styles/templates/default/images/cellpic.gif b/legacy/styles/templates/default/images/cellpic.gif
similarity index 100%
rename from styles/templates/default/images/cellpic.gif
rename to legacy/styles/templates/default/images/cellpic.gif
diff --git a/styles/templates/default/images/cellpic1.gif b/legacy/styles/templates/default/images/cellpic1.gif
similarity index 100%
rename from styles/templates/default/images/cellpic1.gif
rename to legacy/styles/templates/default/images/cellpic1.gif
diff --git a/styles/templates/default/images/def_button.png b/legacy/styles/templates/default/images/def_button.png
similarity index 100%
rename from styles/templates/default/images/def_button.png
rename to legacy/styles/templates/default/images/def_button.png
diff --git a/styles/templates/default/images/def_button_light.png b/legacy/styles/templates/default/images/def_button_light.png
similarity index 100%
rename from styles/templates/default/images/def_button_light.png
rename to legacy/styles/templates/default/images/def_button_light.png
diff --git a/styles/templates/default/images/feed.png b/legacy/styles/templates/default/images/feed.png
similarity index 100%
rename from styles/templates/default/images/feed.png
rename to legacy/styles/templates/default/images/feed.png
diff --git a/styles/templates/default/images/folder.gif b/legacy/styles/templates/default/images/folder.gif
similarity index 100%
rename from styles/templates/default/images/folder.gif
rename to legacy/styles/templates/default/images/folder.gif
diff --git a/styles/templates/default/images/folder_announce.gif b/legacy/styles/templates/default/images/folder_announce.gif
similarity index 100%
rename from styles/templates/default/images/folder_announce.gif
rename to legacy/styles/templates/default/images/folder_announce.gif
diff --git a/styles/templates/default/images/folder_announce_new.gif b/legacy/styles/templates/default/images/folder_announce_new.gif
similarity index 100%
rename from styles/templates/default/images/folder_announce_new.gif
rename to legacy/styles/templates/default/images/folder_announce_new.gif
diff --git a/styles/templates/default/images/folder_big.gif b/legacy/styles/templates/default/images/folder_big.gif
similarity index 100%
rename from styles/templates/default/images/folder_big.gif
rename to legacy/styles/templates/default/images/folder_big.gif
diff --git a/styles/templates/default/images/folder_dl.gif b/legacy/styles/templates/default/images/folder_dl.gif
similarity index 100%
rename from styles/templates/default/images/folder_dl.gif
rename to legacy/styles/templates/default/images/folder_dl.gif
diff --git a/styles/templates/default/images/folder_dl_hot.gif b/legacy/styles/templates/default/images/folder_dl_hot.gif
similarity index 100%
rename from styles/templates/default/images/folder_dl_hot.gif
rename to legacy/styles/templates/default/images/folder_dl_hot.gif
diff --git a/styles/templates/default/images/folder_dl_hot_new.gif b/legacy/styles/templates/default/images/folder_dl_hot_new.gif
similarity index 100%
rename from styles/templates/default/images/folder_dl_hot_new.gif
rename to legacy/styles/templates/default/images/folder_dl_hot_new.gif
diff --git a/styles/templates/default/images/folder_dl_new.gif b/legacy/styles/templates/default/images/folder_dl_new.gif
similarity index 100%
rename from styles/templates/default/images/folder_dl_new.gif
rename to legacy/styles/templates/default/images/folder_dl_new.gif
diff --git a/styles/templates/default/images/folder_hot.gif b/legacy/styles/templates/default/images/folder_hot.gif
similarity index 100%
rename from styles/templates/default/images/folder_hot.gif
rename to legacy/styles/templates/default/images/folder_hot.gif
diff --git a/styles/templates/default/images/folder_lock.gif b/legacy/styles/templates/default/images/folder_lock.gif
similarity index 100%
rename from styles/templates/default/images/folder_lock.gif
rename to legacy/styles/templates/default/images/folder_lock.gif
diff --git a/styles/templates/default/images/folder_lock_new.gif b/legacy/styles/templates/default/images/folder_lock_new.gif
similarity index 100%
rename from styles/templates/default/images/folder_lock_new.gif
rename to legacy/styles/templates/default/images/folder_lock_new.gif
diff --git a/styles/templates/default/images/folder_locked_big.gif b/legacy/styles/templates/default/images/folder_locked_big.gif
similarity index 100%
rename from styles/templates/default/images/folder_locked_big.gif
rename to legacy/styles/templates/default/images/folder_locked_big.gif
diff --git a/styles/templates/default/images/folder_new.gif b/legacy/styles/templates/default/images/folder_new.gif
similarity index 100%
rename from styles/templates/default/images/folder_new.gif
rename to legacy/styles/templates/default/images/folder_new.gif
diff --git a/styles/templates/default/images/folder_new_big.gif b/legacy/styles/templates/default/images/folder_new_big.gif
similarity index 100%
rename from styles/templates/default/images/folder_new_big.gif
rename to legacy/styles/templates/default/images/folder_new_big.gif
diff --git a/styles/templates/default/images/folder_new_hot.gif b/legacy/styles/templates/default/images/folder_new_hot.gif
similarity index 100%
rename from styles/templates/default/images/folder_new_hot.gif
rename to legacy/styles/templates/default/images/folder_new_hot.gif
diff --git a/styles/templates/default/images/folder_sticky.gif b/legacy/styles/templates/default/images/folder_sticky.gif
similarity index 100%
rename from styles/templates/default/images/folder_sticky.gif
rename to legacy/styles/templates/default/images/folder_sticky.gif
diff --git a/styles/templates/default/images/folder_sticky_new.gif b/legacy/styles/templates/default/images/folder_sticky_new.gif
similarity index 100%
rename from styles/templates/default/images/folder_sticky_new.gif
rename to legacy/styles/templates/default/images/folder_sticky_new.gif
diff --git a/styles/templates/default/images/hr200_ltr_gradient.jpg b/legacy/styles/templates/default/images/hr200_ltr_gradient.jpg
similarity index 100%
rename from styles/templates/default/images/hr200_ltr_gradient.jpg
rename to legacy/styles/templates/default/images/hr200_ltr_gradient.jpg
diff --git a/styles/templates/default/images/hr400_ltr_gradient.jpg b/legacy/styles/templates/default/images/hr400_ltr_gradient.jpg
similarity index 100%
rename from styles/templates/default/images/hr400_ltr_gradient.jpg
rename to legacy/styles/templates/default/images/hr400_ltr_gradient.jpg
diff --git a/styles/templates/default/images/icon_birthday.gif b/legacy/styles/templates/default/images/icon_birthday.gif
similarity index 100%
rename from styles/templates/default/images/icon_birthday.gif
rename to legacy/styles/templates/default/images/icon_birthday.gif
diff --git a/styles/templates/default/images/icon_delete.gif b/legacy/styles/templates/default/images/icon_delete.gif
similarity index 100%
rename from styles/templates/default/images/icon_delete.gif
rename to legacy/styles/templates/default/images/icon_delete.gif
diff --git a/styles/templates/default/images/icon_female.gif b/legacy/styles/templates/default/images/icon_female.gif
similarity index 100%
rename from styles/templates/default/images/icon_female.gif
rename to legacy/styles/templates/default/images/icon_female.gif
diff --git a/styles/templates/default/images/icon_latest_reply.gif b/legacy/styles/templates/default/images/icon_latest_reply.gif
similarity index 100%
rename from styles/templates/default/images/icon_latest_reply.gif
rename to legacy/styles/templates/default/images/icon_latest_reply.gif
diff --git a/styles/templates/default/images/icon_male.gif b/legacy/styles/templates/default/images/icon_male.gif
similarity index 100%
rename from styles/templates/default/images/icon_male.gif
rename to legacy/styles/templates/default/images/icon_male.gif
diff --git a/styles/templates/default/images/icon_minipost.gif b/legacy/styles/templates/default/images/icon_minipost.gif
similarity index 100%
rename from styles/templates/default/images/icon_minipost.gif
rename to legacy/styles/templates/default/images/icon_minipost.gif
diff --git a/styles/templates/default/images/icon_minipost_new.gif b/legacy/styles/templates/default/images/icon_minipost_new.gif
similarity index 100%
rename from styles/templates/default/images/icon_minipost_new.gif
rename to legacy/styles/templates/default/images/icon_minipost_new.gif
diff --git a/styles/templates/default/images/icon_minus_1.gif b/legacy/styles/templates/default/images/icon_minus_1.gif
similarity index 100%
rename from styles/templates/default/images/icon_minus_1.gif
rename to legacy/styles/templates/default/images/icon_minus_1.gif
diff --git a/styles/templates/default/images/icon_minus_2.gif b/legacy/styles/templates/default/images/icon_minus_2.gif
similarity index 100%
rename from styles/templates/default/images/icon_minus_2.gif
rename to legacy/styles/templates/default/images/icon_minus_2.gif
diff --git a/styles/templates/default/images/icon_mod.gif b/legacy/styles/templates/default/images/icon_mod.gif
similarity index 100%
rename from styles/templates/default/images/icon_mod.gif
rename to legacy/styles/templates/default/images/icon_mod.gif
diff --git a/styles/templates/default/images/icon_newest_reply.gif b/legacy/styles/templates/default/images/icon_newest_reply.gif
similarity index 100%
rename from styles/templates/default/images/icon_newest_reply.gif
rename to legacy/styles/templates/default/images/icon_newest_reply.gif
diff --git a/styles/templates/default/images/icon_nogender.gif b/legacy/styles/templates/default/images/icon_nogender.gif
similarity index 100%
rename from styles/templates/default/images/icon_nogender.gif
rename to legacy/styles/templates/default/images/icon_nogender.gif
diff --git a/styles/templates/default/images/icon_plus_1.gif b/legacy/styles/templates/default/images/icon_plus_1.gif
similarity index 100%
rename from styles/templates/default/images/icon_plus_1.gif
rename to legacy/styles/templates/default/images/icon_plus_1.gif
diff --git a/styles/templates/default/images/icon_plus_2.gif b/legacy/styles/templates/default/images/icon_plus_2.gif
similarity index 100%
rename from styles/templates/default/images/icon_plus_2.gif
rename to legacy/styles/templates/default/images/icon_plus_2.gif
diff --git a/styles/templates/default/images/img_alert.gif b/legacy/styles/templates/default/images/img_alert.gif
similarity index 100%
rename from styles/templates/default/images/img_alert.gif
rename to legacy/styles/templates/default/images/img_alert.gif
diff --git a/styles/templates/default/images/lang/af/icon_code.gif b/legacy/styles/templates/default/images/lang/en/icon_code.gif
similarity index 100%
rename from styles/templates/default/images/lang/af/icon_code.gif
rename to legacy/styles/templates/default/images/lang/en/icon_code.gif
diff --git a/styles/templates/default/images/lang/af/icon_edit.gif b/legacy/styles/templates/default/images/lang/en/icon_edit.gif
similarity index 100%
rename from styles/templates/default/images/lang/af/icon_edit.gif
rename to legacy/styles/templates/default/images/lang/en/icon_edit.gif
diff --git a/styles/templates/default/images/lang/af/icon_email.gif b/legacy/styles/templates/default/images/lang/en/icon_email.gif
similarity index 100%
rename from styles/templates/default/images/lang/af/icon_email.gif
rename to legacy/styles/templates/default/images/lang/en/icon_email.gif
diff --git a/styles/templates/default/images/lang/af/icon_icq_add.gif b/legacy/styles/templates/default/images/lang/en/icon_icq_add.gif
similarity index 100%
rename from styles/templates/default/images/lang/af/icon_icq_add.gif
rename to legacy/styles/templates/default/images/lang/en/icon_icq_add.gif
diff --git a/styles/templates/default/images/lang/af/icon_ip.gif b/legacy/styles/templates/default/images/lang/en/icon_ip.gif
similarity index 100%
rename from styles/templates/default/images/lang/af/icon_ip.gif
rename to legacy/styles/templates/default/images/lang/en/icon_ip.gif
diff --git a/styles/templates/default/images/lang/af/icon_mc.gif b/legacy/styles/templates/default/images/lang/en/icon_mc.gif
similarity index 100%
rename from styles/templates/default/images/lang/af/icon_mc.gif
rename to legacy/styles/templates/default/images/lang/en/icon_mc.gif
diff --git a/styles/templates/default/images/lang/af/icon_pm.gif b/legacy/styles/templates/default/images/lang/en/icon_pm.gif
similarity index 100%
rename from styles/templates/default/images/lang/af/icon_pm.gif
rename to legacy/styles/templates/default/images/lang/en/icon_pm.gif
diff --git a/styles/templates/default/images/lang/af/icon_poll.gif b/legacy/styles/templates/default/images/lang/en/icon_poll.gif
similarity index 100%
rename from styles/templates/default/images/lang/af/icon_poll.gif
rename to legacy/styles/templates/default/images/lang/en/icon_poll.gif
diff --git a/styles/templates/default/images/lang/af/icon_profile.gif b/legacy/styles/templates/default/images/lang/en/icon_profile.gif
similarity index 100%
rename from styles/templates/default/images/lang/af/icon_profile.gif
rename to legacy/styles/templates/default/images/lang/en/icon_profile.gif
diff --git a/styles/templates/default/images/lang/af/icon_quote.gif b/legacy/styles/templates/default/images/lang/en/icon_quote.gif
similarity index 100%
rename from styles/templates/default/images/lang/af/icon_quote.gif
rename to legacy/styles/templates/default/images/lang/en/icon_quote.gif
diff --git a/styles/templates/default/images/lang/af/icon_search.gif b/legacy/styles/templates/default/images/lang/en/icon_search.gif
similarity index 100%
rename from styles/templates/default/images/lang/af/icon_search.gif
rename to legacy/styles/templates/default/images/lang/en/icon_search.gif
diff --git a/styles/templates/default/images/lang/af/icon_www.gif b/legacy/styles/templates/default/images/lang/en/icon_www.gif
similarity index 100%
rename from styles/templates/default/images/lang/af/icon_www.gif
rename to legacy/styles/templates/default/images/lang/en/icon_www.gif
diff --git a/styles/templates/default/images/lang/af/msg_newpost.gif b/legacy/styles/templates/default/images/lang/en/msg_newpost.gif
similarity index 100%
rename from styles/templates/default/images/lang/af/msg_newpost.gif
rename to legacy/styles/templates/default/images/lang/en/msg_newpost.gif
diff --git a/styles/templates/default/images/lang/af/post.gif b/legacy/styles/templates/default/images/lang/en/post.gif
similarity index 100%
rename from styles/templates/default/images/lang/af/post.gif
rename to legacy/styles/templates/default/images/lang/en/post.gif
diff --git a/styles/templates/default/images/lang/af/release.gif b/legacy/styles/templates/default/images/lang/en/release.gif
similarity index 100%
rename from styles/templates/default/images/lang/af/release.gif
rename to legacy/styles/templates/default/images/lang/en/release.gif
diff --git a/styles/templates/default/images/lang/af/reply-locked.gif b/legacy/styles/templates/default/images/lang/en/reply-locked.gif
similarity index 100%
rename from styles/templates/default/images/lang/af/reply-locked.gif
rename to legacy/styles/templates/default/images/lang/en/reply-locked.gif
diff --git a/styles/templates/default/images/lang/af/reply.gif b/legacy/styles/templates/default/images/lang/en/reply.gif
similarity index 100%
rename from styles/templates/default/images/lang/af/reply.gif
rename to legacy/styles/templates/default/images/lang/en/reply.gif
diff --git a/styles/templates/default/images/link_help.cur b/legacy/styles/templates/default/images/link_help.cur
similarity index 100%
rename from styles/templates/default/images/link_help.cur
rename to legacy/styles/templates/default/images/link_help.cur
diff --git a/styles/templates/default/images/loading.gif b/legacy/styles/templates/default/images/loading.gif
similarity index 100%
rename from styles/templates/default/images/loading.gif
rename to legacy/styles/templates/default/images/loading.gif
diff --git a/styles/templates/default/images/menu_open.gif b/legacy/styles/templates/default/images/menu_open.gif
similarity index 100%
rename from styles/templates/default/images/menu_open.gif
rename to legacy/styles/templates/default/images/menu_open.gif
diff --git a/styles/templates/default/images/menu_open_1.gif b/legacy/styles/templates/default/images/menu_open_1.gif
similarity index 100%
rename from styles/templates/default/images/menu_open_1.gif
rename to legacy/styles/templates/default/images/menu_open_1.gif
diff --git a/styles/templates/default/images/msg_inbox.gif b/legacy/styles/templates/default/images/msg_inbox.gif
similarity index 100%
rename from styles/templates/default/images/msg_inbox.gif
rename to legacy/styles/templates/default/images/msg_inbox.gif
diff --git a/styles/templates/default/images/msg_outbox.gif b/legacy/styles/templates/default/images/msg_outbox.gif
similarity index 100%
rename from styles/templates/default/images/msg_outbox.gif
rename to legacy/styles/templates/default/images/msg_outbox.gif
diff --git a/styles/templates/default/images/msg_savebox.gif b/legacy/styles/templates/default/images/msg_savebox.gif
similarity index 100%
rename from styles/templates/default/images/msg_savebox.gif
rename to legacy/styles/templates/default/images/msg_savebox.gif
diff --git a/styles/templates/default/images/msg_sentbox.gif b/legacy/styles/templates/default/images/msg_sentbox.gif
similarity index 100%
rename from styles/templates/default/images/msg_sentbox.gif
rename to legacy/styles/templates/default/images/msg_sentbox.gif
diff --git a/styles/templates/default/images/progress_bar.gif b/legacy/styles/templates/default/images/progress_bar.gif
similarity index 100%
rename from styles/templates/default/images/progress_bar.gif
rename to legacy/styles/templates/default/images/progress_bar.gif
diff --git a/styles/templates/default/images/progress_bar_full.gif b/legacy/styles/templates/default/images/progress_bar_full.gif
similarity index 100%
rename from styles/templates/default/images/progress_bar_full.gif
rename to legacy/styles/templates/default/images/progress_bar_full.gif
diff --git a/styles/templates/default/images/spacer.gif b/legacy/styles/templates/default/images/spacer.gif
similarity index 100%
rename from styles/templates/default/images/spacer.gif
rename to legacy/styles/templates/default/images/spacer.gif
diff --git a/styles/templates/default/images/tbl_sort_asc.gif b/legacy/styles/templates/default/images/tbl_sort_asc.gif
similarity index 100%
rename from styles/templates/default/images/tbl_sort_asc.gif
rename to legacy/styles/templates/default/images/tbl_sort_asc.gif
diff --git a/styles/templates/default/images/tbl_sort_bg.gif b/legacy/styles/templates/default/images/tbl_sort_bg.gif
similarity index 100%
rename from styles/templates/default/images/tbl_sort_bg.gif
rename to legacy/styles/templates/default/images/tbl_sort_bg.gif
diff --git a/styles/templates/default/images/tbl_sort_desc.gif b/legacy/styles/templates/default/images/tbl_sort_desc.gif
similarity index 100%
rename from styles/templates/default/images/tbl_sort_desc.gif
rename to legacy/styles/templates/default/images/tbl_sort_desc.gif
diff --git a/styles/templates/default/images/topic_delete.gif b/legacy/styles/templates/default/images/topic_delete.gif
similarity index 100%
rename from styles/templates/default/images/topic_delete.gif
rename to legacy/styles/templates/default/images/topic_delete.gif
diff --git a/styles/templates/default/images/topic_dl.gif b/legacy/styles/templates/default/images/topic_dl.gif
similarity index 100%
rename from styles/templates/default/images/topic_dl.gif
rename to legacy/styles/templates/default/images/topic_dl.gif
diff --git a/styles/templates/default/images/topic_lock.gif b/legacy/styles/templates/default/images/topic_lock.gif
similarity index 100%
rename from styles/templates/default/images/topic_lock.gif
rename to legacy/styles/templates/default/images/topic_lock.gif
diff --git a/styles/templates/default/images/topic_move.gif b/legacy/styles/templates/default/images/topic_move.gif
similarity index 100%
rename from styles/templates/default/images/topic_move.gif
rename to legacy/styles/templates/default/images/topic_move.gif
diff --git a/styles/templates/default/images/topic_normal.gif b/legacy/styles/templates/default/images/topic_normal.gif
similarity index 100%
rename from styles/templates/default/images/topic_normal.gif
rename to legacy/styles/templates/default/images/topic_normal.gif
diff --git a/styles/templates/default/images/topic_split.gif b/legacy/styles/templates/default/images/topic_split.gif
similarity index 100%
rename from styles/templates/default/images/topic_split.gif
rename to legacy/styles/templates/default/images/topic_split.gif
diff --git a/styles/templates/default/images/topic_unlock.gif b/legacy/styles/templates/default/images/topic_unlock.gif
similarity index 100%
rename from styles/templates/default/images/topic_unlock.gif
rename to legacy/styles/templates/default/images/topic_unlock.gif
diff --git a/styles/templates/default/images/treeview/treeview-default-line.gif b/legacy/styles/templates/default/images/treeview/treeview-default-line.gif
similarity index 100%
rename from styles/templates/default/images/treeview/treeview-default-line.gif
rename to legacy/styles/templates/default/images/treeview/treeview-default-line.gif
diff --git a/styles/templates/default/images/treeview/treeview-default.gif b/legacy/styles/templates/default/images/treeview/treeview-default.gif
similarity index 100%
rename from styles/templates/default/images/treeview/treeview-default.gif
rename to legacy/styles/templates/default/images/treeview/treeview-default.gif
diff --git a/styles/templates/default/images/vote_lcap.gif b/legacy/styles/templates/default/images/vote_lcap.gif
similarity index 100%
rename from styles/templates/default/images/vote_lcap.gif
rename to legacy/styles/templates/default/images/vote_lcap.gif
diff --git a/styles/templates/default/images/vote_rcap.gif b/legacy/styles/templates/default/images/vote_rcap.gif
similarity index 100%
rename from styles/templates/default/images/vote_rcap.gif
rename to legacy/styles/templates/default/images/vote_rcap.gif
diff --git a/styles/templates/default/images/voting_bar.gif b/legacy/styles/templates/default/images/voting_bar.gif
similarity index 100%
rename from styles/templates/default/images/voting_bar.gif
rename to legacy/styles/templates/default/images/voting_bar.gif
diff --git a/styles/templates/default/images/whosonline.gif b/legacy/styles/templates/default/images/whosonline.gif
similarity index 100%
rename from styles/templates/default/images/whosonline.gif
rename to legacy/styles/templates/default/images/whosonline.gif
diff --git a/styles/templates/default/index.tpl b/legacy/styles/templates/default/index.tpl
similarity index 100%
rename from styles/templates/default/index.tpl
rename to legacy/styles/templates/default/index.tpl
diff --git a/styles/templates/default/index_map.tpl b/legacy/styles/templates/default/index_map.tpl
similarity index 100%
rename from styles/templates/default/index_map.tpl
rename to legacy/styles/templates/default/index_map.tpl
diff --git a/styles/templates/default/info.tpl b/legacy/styles/templates/default/info.tpl
similarity index 100%
rename from styles/templates/default/info.tpl
rename to legacy/styles/templates/default/info.tpl
diff --git a/styles/templates/default/login.tpl b/legacy/styles/templates/default/login.tpl
similarity index 100%
rename from styles/templates/default/login.tpl
rename to legacy/styles/templates/default/login.tpl
diff --git a/styles/templates/default/memberlist.tpl b/legacy/styles/templates/default/memberlist.tpl
similarity index 100%
rename from styles/templates/default/memberlist.tpl
rename to legacy/styles/templates/default/memberlist.tpl
diff --git a/styles/templates/default/modcp.tpl b/legacy/styles/templates/default/modcp.tpl
similarity index 100%
rename from styles/templates/default/modcp.tpl
rename to legacy/styles/templates/default/modcp.tpl
diff --git a/styles/templates/default/modcp_split.tpl b/legacy/styles/templates/default/modcp_split.tpl
similarity index 100%
rename from styles/templates/default/modcp_split.tpl
rename to legacy/styles/templates/default/modcp_split.tpl
diff --git a/styles/templates/default/page_footer.tpl b/legacy/styles/templates/default/page_footer.tpl
similarity index 100%
rename from styles/templates/default/page_footer.tpl
rename to legacy/styles/templates/default/page_footer.tpl
diff --git a/styles/templates/default/page_header.tpl b/legacy/styles/templates/default/page_header.tpl
similarity index 100%
rename from styles/templates/default/page_header.tpl
rename to legacy/styles/templates/default/page_header.tpl
diff --git a/styles/templates/default/playback_m3u.tpl b/legacy/styles/templates/default/playback_m3u.tpl
similarity index 100%
rename from styles/templates/default/playback_m3u.tpl
rename to legacy/styles/templates/default/playback_m3u.tpl
diff --git a/styles/templates/default/posting.tpl b/legacy/styles/templates/default/posting.tpl
similarity index 100%
rename from styles/templates/default/posting.tpl
rename to legacy/styles/templates/default/posting.tpl
diff --git a/styles/templates/default/posting_attach.tpl b/legacy/styles/templates/default/posting_attach.tpl
similarity index 100%
rename from styles/templates/default/posting_attach.tpl
rename to legacy/styles/templates/default/posting_attach.tpl
diff --git a/styles/templates/default/posting_editor.tpl b/legacy/styles/templates/default/posting_editor.tpl
similarity index 100%
rename from styles/templates/default/posting_editor.tpl
rename to legacy/styles/templates/default/posting_editor.tpl
diff --git a/styles/templates/default/posting_smilies.tpl b/legacy/styles/templates/default/posting_smilies.tpl
similarity index 100%
rename from styles/templates/default/posting_smilies.tpl
rename to legacy/styles/templates/default/posting_smilies.tpl
diff --git a/styles/templates/default/privmsgs.tpl b/legacy/styles/templates/default/privmsgs.tpl
similarity index 100%
rename from styles/templates/default/privmsgs.tpl
rename to legacy/styles/templates/default/privmsgs.tpl
diff --git a/styles/templates/default/privmsgs_read.tpl b/legacy/styles/templates/default/privmsgs_read.tpl
similarity index 100%
rename from styles/templates/default/privmsgs_read.tpl
rename to legacy/styles/templates/default/privmsgs_read.tpl
diff --git a/styles/templates/default/search.tpl b/legacy/styles/templates/default/search.tpl
similarity index 100%
rename from styles/templates/default/search.tpl
rename to legacy/styles/templates/default/search.tpl
diff --git a/styles/templates/default/search_results.tpl b/legacy/styles/templates/default/search_results.tpl
similarity index 100%
rename from styles/templates/default/search_results.tpl
rename to legacy/styles/templates/default/search_results.tpl
diff --git a/styles/templates/default/terms.tpl b/legacy/styles/templates/default/terms.tpl
similarity index 100%
rename from styles/templates/default/terms.tpl
rename to legacy/styles/templates/default/terms.tpl
diff --git a/styles/templates/default/torhelp.tpl b/legacy/styles/templates/default/torhelp.tpl
similarity index 100%
rename from styles/templates/default/torhelp.tpl
rename to legacy/styles/templates/default/torhelp.tpl
diff --git a/styles/templates/default/tpl_config.php b/legacy/styles/templates/default/tpl_config.php
similarity index 100%
rename from styles/templates/default/tpl_config.php
rename to legacy/styles/templates/default/tpl_config.php
diff --git a/styles/templates/default/tracker.tpl b/legacy/styles/templates/default/tracker.tpl
similarity index 100%
rename from styles/templates/default/tracker.tpl
rename to legacy/styles/templates/default/tracker.tpl
diff --git a/styles/templates/default/usercp_bonus.tpl b/legacy/styles/templates/default/usercp_bonus.tpl
similarity index 100%
rename from styles/templates/default/usercp_bonus.tpl
rename to legacy/styles/templates/default/usercp_bonus.tpl
diff --git a/styles/templates/default/usercp_email.tpl b/legacy/styles/templates/default/usercp_email.tpl
similarity index 100%
rename from styles/templates/default/usercp_email.tpl
rename to legacy/styles/templates/default/usercp_email.tpl
diff --git a/styles/templates/default/usercp_register.tpl b/legacy/styles/templates/default/usercp_register.tpl
similarity index 100%
rename from styles/templates/default/usercp_register.tpl
rename to legacy/styles/templates/default/usercp_register.tpl
diff --git a/styles/templates/default/usercp_sendpasswd.tpl b/legacy/styles/templates/default/usercp_sendpasswd.tpl
similarity index 100%
rename from styles/templates/default/usercp_sendpasswd.tpl
rename to legacy/styles/templates/default/usercp_sendpasswd.tpl
diff --git a/styles/templates/default/usercp_topic_watch.tpl b/legacy/styles/templates/default/usercp_topic_watch.tpl
similarity index 100%
rename from styles/templates/default/usercp_topic_watch.tpl
rename to legacy/styles/templates/default/usercp_topic_watch.tpl
diff --git a/styles/templates/default/usercp_viewprofile.tpl b/legacy/styles/templates/default/usercp_viewprofile.tpl
similarity index 100%
rename from styles/templates/default/usercp_viewprofile.tpl
rename to legacy/styles/templates/default/usercp_viewprofile.tpl
diff --git a/styles/templates/default/viewforum.tpl b/legacy/styles/templates/default/viewforum.tpl
similarity index 100%
rename from styles/templates/default/viewforum.tpl
rename to legacy/styles/templates/default/viewforum.tpl
diff --git a/styles/templates/default/viewtopic.tpl b/legacy/styles/templates/default/viewtopic.tpl
similarity index 100%
rename from styles/templates/default/viewtopic.tpl
rename to legacy/styles/templates/default/viewtopic.tpl
diff --git a/styles/templates/default/viewtopic_attach.tpl b/legacy/styles/templates/default/viewtopic_attach.tpl
similarity index 100%
rename from styles/templates/default/viewtopic_attach.tpl
rename to legacy/styles/templates/default/viewtopic_attach.tpl
diff --git a/styles/templates/default/viewtopic_attach_guest.tpl b/legacy/styles/templates/default/viewtopic_attach_guest.tpl
similarity index 100%
rename from styles/templates/default/viewtopic_attach_guest.tpl
rename to legacy/styles/templates/default/viewtopic_attach_guest.tpl
diff --git a/styles/templates/default/viewtopic_poll.tpl b/legacy/styles/templates/default/viewtopic_poll.tpl
similarity index 100%
rename from styles/templates/default/viewtopic_poll.tpl
rename to legacy/styles/templates/default/viewtopic_poll.tpl
diff --git a/styles/templates/default/viewtopic_torrent.tpl b/legacy/styles/templates/default/viewtopic_torrent.tpl
similarity index 100%
rename from styles/templates/default/viewtopic_torrent.tpl
rename to legacy/styles/templates/default/viewtopic_torrent.tpl
diff --git a/styles/templates/posting_tpl.tpl b/legacy/styles/templates/posting_tpl.tpl
similarity index 100%
rename from styles/templates/posting_tpl.tpl
rename to legacy/styles/templates/posting_tpl.tpl
diff --git a/terms.php b/legacy/terms.php
similarity index 100%
rename from terms.php
rename to legacy/terms.php
diff --git a/tracker.php b/legacy/tracker.php
similarity index 100%
rename from tracker.php
rename to legacy/tracker.php
diff --git a/viewforum.php b/legacy/viewforum.php
similarity index 100%
rename from viewforum.php
rename to legacy/viewforum.php
diff --git a/viewtopic.php b/legacy/viewtopic.php
similarity index 100%
rename from viewtopic.php
rename to legacy/viewtopic.php
diff --git a/phpunit.xml b/phpunit.xml
deleted file mode 100644
index e6198e0e7..000000000
--- a/phpunit.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-
-
- ./tests
-
-
-
-
- app
- src
-
-
-
diff --git a/sitemap/.keep b/sitemap/.keep
deleted file mode 100644
index e69de29bb..000000000
diff --git a/src/Application/Forum/Command/README.md b/src/Application/Forum/Command/README.md
deleted file mode 100644
index eae098d4a..000000000
--- a/src/Application/Forum/Command/README.md
+++ /dev/null
@@ -1,11 +0,0 @@
-# Forum Commands
-
-Commands representing write operations:
-
-- `CreateThreadCommand`: Start new discussion
-- `CreatePostCommand`: Reply to thread
-- `EditPostCommand`: Modify existing post
-- `LockThreadCommand`: Lock thread from replies
-- `DeletePostCommand`: Remove post
-
-Commands are simple DTOs containing operation data.
\ No newline at end of file
diff --git a/src/Application/Forum/Handler/README.md b/src/Application/Forum/Handler/README.md
deleted file mode 100644
index 4af804611..000000000
--- a/src/Application/Forum/Handler/README.md
+++ /dev/null
@@ -1,9 +0,0 @@
-# Forum Handlers
-
-Command and query handlers for forum operations:
-
-- `CreateThreadHandler`: Handles thread creation
-- `CreatePostHandler`: Handles post creation
-- `GetThreadListHandler`: Retrieves thread listings
-
-Handlers coordinate between domain and infrastructure layers.
\ No newline at end of file
diff --git a/src/Application/Forum/Query/README.md b/src/Application/Forum/Query/README.md
deleted file mode 100644
index 845ef3948..000000000
--- a/src/Application/Forum/Query/README.md
+++ /dev/null
@@ -1,10 +0,0 @@
-# Forum Queries
-
-Read-only queries for forum data:
-
-- `GetThreadListQuery`: Paginated thread listing
-- `GetPostsByThreadQuery`: Thread posts with pagination
-- `SearchPostsQuery`: Full-text post search
-- `GetForumStatsQuery`: Forum statistics
-
-Queries return DTOs optimized for presentation.
\ No newline at end of file
diff --git a/src/Application/README.md b/src/Application/README.md
deleted file mode 100644
index f7a27973c..000000000
--- a/src/Application/README.md
+++ /dev/null
@@ -1,14 +0,0 @@
-# Application Layer
-
-Contains application services that orchestrate domain objects to fulfill use cases.
-
-- Commands: Write operations that change state
-- Queries: Read operations for data retrieval
-- Handlers: Process commands and queries
-
-This layer should:
-
-- Coordinate domain objects
-- Handle transactions
-- Dispatch domain events
-- Not contain business logic
\ No newline at end of file
diff --git a/src/Application/Tracker/Command/README.md b/src/Application/Tracker/Command/README.md
deleted file mode 100644
index 800c6579d..000000000
--- a/src/Application/Tracker/Command/README.md
+++ /dev/null
@@ -1,21 +0,0 @@
-# Tracker Commands
-
-Commands representing write operations:
-
-- `RegisterTorrentCommand`: Register new torrent
-- `UpdateTorrentCommand`: Modify torrent details
-- `DeleteTorrentCommand`: Remove torrent from tracker
-
-Example:
-
-```php
-final class RegisterTorrentCommand
-{
- public function __construct(
- public readonly string $infoHash,
- public readonly int $uploaderId,
- public readonly string $name,
- public readonly int $size
- ) {}
-}
-```
\ No newline at end of file
diff --git a/src/Application/Tracker/Handler/README.md b/src/Application/Tracker/Handler/README.md
deleted file mode 100644
index b30755d33..000000000
--- a/src/Application/Tracker/Handler/README.md
+++ /dev/null
@@ -1,9 +0,0 @@
-# Tracker Handlers
-
-Command and query handlers for tracker operations:
-
-- `RegisterTorrentHandler`: Processes torrent registration
-- `GetTorrentDetailsHandler`: Retrieves torrent information
-- `UpdateTorrentHandler`: Handles torrent updates
-
-Note: High-performance announce operations bypass this layer.
\ No newline at end of file
diff --git a/src/Application/Tracker/Query/README.md b/src/Application/Tracker/Query/README.md
deleted file mode 100644
index 05e42e39f..000000000
--- a/src/Application/Tracker/Query/README.md
+++ /dev/null
@@ -1,10 +0,0 @@
-# Tracker Queries
-
-Read-only queries for tracker data:
-
-- `GetTorrentDetailsQuery`: Single torrent information
-- `GetPeerListQuery`: Active peers for torrent
-- `GetTorrentStatsQuery`: Download/upload statistics
-- `SearchTorrentsQuery`: Browse and filter torrents
-
-Optimized for high-performance read operations.
\ No newline at end of file
diff --git a/src/Application/User/Command/README.md b/src/Application/User/Command/README.md
deleted file mode 100644
index fbf0342be..000000000
--- a/src/Application/User/Command/README.md
+++ /dev/null
@@ -1,11 +0,0 @@
-# User Commands
-
-Commands for user management operations:
-
-- `RegisterUserCommand`: New user registration
-- `ChangePasswordCommand`: Password update
-- `UpdateProfileCommand`: Profile modifications
-- `ActivateUserCommand`: Account activation
-- `BanUserCommand`: User suspension
-
-These commands trigger domain events for cross-context synchronization.
\ No newline at end of file
diff --git a/src/Application/User/Handler/README.md b/src/Application/User/Handler/README.md
deleted file mode 100644
index 8f34ce418..000000000
--- a/src/Application/User/Handler/README.md
+++ /dev/null
@@ -1,9 +0,0 @@
-# User Handlers
-
-Command and query handlers for user operations:
-
-- `RegisterUserHandler`: Processes user registration
-- `ChangePasswordHandler`: Handles password changes
-- `GetUserProfileHandler`: Retrieves user profiles
-
-Handlers manage transactions and event dispatching.
\ No newline at end of file
diff --git a/src/Application/User/Query/README.md b/src/Application/User/Query/README.md
deleted file mode 100644
index 1307a51ec..000000000
--- a/src/Application/User/Query/README.md
+++ /dev/null
@@ -1,10 +0,0 @@
-# User Queries
-
-Read operations for user data:
-
-- `GetUserProfileQuery`: User profile details
-- `SearchUsersQuery`: User search with filters
-- `GetUserStatisticsQuery`: Upload/download stats
-- `GetUserPermissionsQuery`: Authorization data
-
-Returns DTOs suitable for presentation layer.
\ No newline at end of file
diff --git a/src/Cache/README.md b/src/Cache/README.md
deleted file mode 100644
index e2151819b..000000000
--- a/src/Cache/README.md
+++ /dev/null
@@ -1,422 +0,0 @@
-# Unified Cache System
-
-A modern, unified caching solution for TorrentPier 3.0 that uses **Nette Caching** internally. **Breaking changes**: This replaces the legacy Cache and Datastore APIs and requires code migration.
-
-## Overview
-
-The Unified Cache System addresses the complexity and duplication in TorrentPier's caching architecture by:
-
-- **Unifying** Cache and Datastore systems into a single, coherent solution
-- **Modernizing** the caching layer with Nette's advanced features and breaking changes for better architecture
-- **Reducing** complexity and maintenance overhead
-- **Improving** performance with efficient singleton pattern and advanced features
-
-## Architecture
-
-### Core Components
-
-1. **UnifiedCacheSystem** - Main singleton orchestrator following TorrentPier's architectural patterns
-2. **CacheManager** - Cache interface using Nette Caching internally with singleton pattern
-3. **DatastoreManager** - Datastore interface that uses CacheManager internally for unified functionality
-
-### Singleton Architecture
-
-The system follows TorrentPier's consistent singleton pattern, similar to `config()`, `dev()`, `censor()`, and `DB()`:
-
-```php
-// Main singleton instance
-TorrentPier\Cache\UnifiedCacheSystem::getInstance(config()->all());
-
-// Clean global functions with proper return types
-function CACHE(string $cache_name): \TorrentPier\Cache\CacheManager
-function datastore(): \TorrentPier\Cache\DatastoreManager
-
-// Usage (exactly like before)
-$cache = CACHE('bb_cache');
-$datastore = datastore();
-```
-
-### Key Benefits
-
-- โ
**Single Source of Truth**: One caching system instead of two separate ones
-- โ
**Modern Foundation**: Built on Nette Caching v3.3 with all its advanced features
-- โ
**Zero Breaking Changes**: All existing `CACHE()` and `$datastore` calls work unchanged
-- โ
**Consistent Architecture**: Proper singleton pattern matching other TorrentPier services
-- โ
**Advanced Features**: Dependencies, tags, bulk operations, memoization, output buffering
-- โ
**Better Debugging**: Unified debug interface with compatibility for Dev.php
-- โ
**Performance**: 456,647+ operations per second with efficient memory usage
-- โ
**Clean Architecture**: No redundant configuration logic, single storage creation path
-
-## Usage
-
-### Basic Cache Operations (100% Backward Compatible)
-
-```php
-// All existing cache calls work exactly the same
-$cache = CACHE('bb_cache');
-$value = $cache->get('key');
-$cache->set('key', $value, 3600);
-$cache->rm('key');
-```
-
-### Datastore Operations (100% Backward Compatible)
-
-```php
-// All existing datastore calls work exactly the same
-$datastore = datastore();
-$forums = $datastore->get('cat_forums');
-$datastore->store('custom_data', $data);
-$datastore->update(['cat_forums', 'stats']);
-```
-
-### Advanced Nette Caching Features
-
-```php
-// Get cache manager for advanced features
-$cache = CACHE('bb_cache');
-
-// Load with callback (compute if not cached)
-$value = $cache->load('expensive_key', function() {
- return expensive_computation();
-});
-
-// Cache with time expiration
-$cache->save('key', $value, [
- \Nette\Caching\Cache::Expire => '1 hour'
-]);
-
-// Cache with file dependencies
-$cache->save('config', $data, [
- \Nette\Caching\Cache::Files => ['/path/to/config.php']
-]);
-
-// Memoize function calls
-$result = $cache->call('expensive_function', $param1, $param2);
-
-// Bulk operations
-$values = $cache->bulkLoad(['key1', 'key2', 'key3'], function($key) {
- return "computed_value_for_$key";
-});
-
-// Clean by tags (requires SQLite storage)
-$cache->clean([\Nette\Caching\Cache::Tags => ['user-123']]);
-
-// Output buffering
-$content = $cache->capture('output_key', function() {
- echo "This content will be cached";
-});
-```
-
-### Datastore Advanced Features
-
-```php
-$datastore = datastore();
-
-// All standard operations work
-$forums = $datastore->get('cat_forums');
-$datastore->store('custom_data', $data);
-
-// Access underlying CacheManager for advanced features
-$manager = $datastore->getCacheManager();
-$value = $manager->load('complex_data', function() {
- return build_complex_data();
-}, [
- \Nette\Caching\Cache::Expire => '30 minutes',
- \Nette\Caching\Cache::Tags => ['forums', 'categories']
-]);
-```
-
-## Integration & Initialization
-
-### Automatic Integration
-
-The system integrates seamlessly in `library/includes/functions.php`:
-
-```php
-// Singleton initialization (done once)
-TorrentPier\Cache\UnifiedCacheSystem::getInstance(config()->all());
-
-// Global functions provide backward compatibility
-function CACHE(string $cache_name): \TorrentPier\Cache\CacheManager {
- return TorrentPier\Cache\UnifiedCacheSystem::getInstance()->getCache($cache_name);
-}
-
-function datastore(): \TorrentPier\Cache\DatastoreManager {
- return TorrentPier\Cache\UnifiedCacheSystem::getInstance()->getDatastore(config()->get('datastore_type', 'file'));
-}
-```
-
-### Debug Compatibility
-
-The system maintains full compatibility with Dev.php debugging:
-
-```php
-// Dev.php can access debug information via magic __get() methods
-$cache = CACHE('bb_cache');
-$debug_info = $cache->dbg; // Array of operations
-$engine_name = $cache->engine; // Storage engine name
-$total_time = $cache->sql_timetotal; // Total operation time
-
-$datastore = datastore();
-$datastore_debug = $datastore->dbg; // Datastore debug info
-```
-
-## Configuration
-
-The system uses existing configuration seamlessly:
-
-```php
-// library/config.php
-$bb_cfg['cache'] = [
- 'db_dir' => realpath(BB_ROOT) . '/internal_data/cache/filecache/',
- 'prefix' => 'tp_',
- 'engines' => [
- 'bb_cache' => ['file'], // Uses Nette FileStorage
- 'session_cache' => ['sqlite'], // Uses Nette SQLiteStorage
- 'tr_cache' => ['file'], // Uses Nette FileStorage
- // ... other caches
- ],
-];
-
-$bb_cfg['datastore_type'] = 'file'; // Uses Nette FileStorage
-```
-
-## Storage Types
-
-### Supported Storage Types
-
-| Legacy Type | Nette Storage | Features |
-|------------|---------------|----------|
-| `file` | `FileStorage` | File-based, persistent, dependencies |
-| `sqlite` | `SQLiteStorage` | Database, supports tags and complex dependencies |
-| `memory` | `MemoryStorage` | In-memory, fastest, non-persistent |
-| `memcached` | `MemcachedStorage` | Distributed memory, high-performance |
-
-### Storage Features Comparison
-
-| Feature | FileStorage | SQLiteStorage | MemoryStorage | MemcachedStorage |
-|---------|-------------|---------------|---------------|------------------|
-| Persistence | โ
| โ
| โ | โ
|
-| File Dependencies | โ
| โ
| โ
| โ
|
-| Tags | โ | โ
| โ
| โ |
-| Callbacks | โ
| โ
| โ
| โ
|
-| Bulk Operations | โ
| โ
| โ
| โ
|
-| Performance | High | Medium | Highest | Very High |
-| Distributed | โ | โ | โ | โ
|
-
-## Migration Guide
-
-### Zero Migration Required
-
-All existing code continues to work without any modifications:
-
-```php
-// โ
This works exactly as before - no changes needed
-$cache = CACHE('bb_cache');
-$forums = $datastore->get('cat_forums');
-
-// โ
All debug functionality preserved
-global $CACHES;
-foreach ($CACHES->obj as $cache_name => $cache_obj) {
- echo "Cache: $cache_name\n";
-}
-```
-
-### Enhanced Capabilities for New Code
-
-New code can take advantage of advanced features:
-
-```php
-// โ
Enhanced caching with dependencies and tags
-$cache = CACHE('bb_cache');
-$forums = $cache->load('forums_with_stats', function() {
- return build_forums_with_statistics();
-}, [
- \Nette\Caching\Cache::Expire => '1 hour',
- \Nette\Caching\Cache::Files => ['/path/to/forums.config'],
- \Nette\Caching\Cache::Tags => ['forums', 'statistics']
-]);
-
-// โ
Function memoization
-$expensive_result = $cache->call('calculate_user_stats', $user_id);
-
-// โ
Output buffering
-$rendered_page = $cache->capture("page_$page_id", function() {
- include_template('complex_page.php');
-});
-```
-
-## Performance Benefits
-
-### Benchmarks
-
-- **456,647+ operations per second** in production testing
-- **Singleton efficiency**: Each cache namespace instantiated only once
-- **Memory optimization**: Shared storage and efficient instance management
-- **Nette optimizations**: Advanced algorithms for cache invalidation and cleanup
-
-### Advanced Features Performance
-
-- **Bulk Operations**: Load multiple keys in single operation
-- **Memoization**: Automatic function result caching with parameter-based keys
-- **Dependencies**: Smart cache invalidation based on files, time, or custom logic
-- **Output Buffering**: Cache generated output directly without intermediate storage
-
-## Critical Issues Resolved
-
-### Sessions Compatibility
-
-**Issue**: Legacy cache returns `false` for missing values, Nette returns `null`
-**Solution**: CacheManager->get() returns `$result ?? false` for backward compatibility
-
-### Debug Integration
-
-**Issue**: Dev.php expected `->db` property on cache objects for debug logging
-**Solution**: Added `__get()` magic methods returning compatible debug objects with `dbg[]`, `engine`, `sql_timetotal` properties
-
-### Architecture Consistency
-
-**Issue**: Inconsistent initialization pattern compared to other TorrentPier singletons
-**Solution**: Converted to proper singleton pattern with `getInstance()` method and clean global functions
-
-## Implementation Details
-
-### Architecture Flow (Refactored)
-
-**Clean, Non-Redundant Architecture:**
-```
-UnifiedCacheSystem (singleton)
-โโโ _buildStorage() โ Creates Nette Storage instances directly
-โโโ get_cache_obj() โ Returns CacheManager with pre-built storage
-โโโ getDatastore() โ Returns DatastoreManager with pre-built storage
-
-CacheManager (receives pre-built Storage)
-โโโ Constructor receives: Storage instance + minimal config
-โโโ No redundant initializeStorage() switch statement
-โโโ Focuses purely on cache operations
-
-DatastoreManager (uses CacheManager internally)
-โโโ Constructor receives: Storage instance + minimal config
-โโโ Uses CacheManager internally for unified functionality
-โโโ Maintains datastore-specific methods and compatibility
-```
-
-**Benefits of Refactored Architecture:**
-- **Single Source of Truth**: Only UnifiedCacheSystem creates storage instances
-- **No Redundancy**: Eliminated duplicate switch statements and configuration parsing
-- **Cleaner Separation**: CacheManager focuses on caching, not storage creation
-- **Impossible Path Bugs**: Storage is pre-built, no configuration mismatches possible
-- **Better Maintainability**: One place to modify storage creation logic
-
-### Directory Structure
-
-```
-src/Cache/
-โโโ CacheManager.php # Cache interface with Nette Caching + singleton pattern
-โโโ DatastoreManager.php # Datastore interface using CacheManager internally
-โโโ UnifiedCacheSystem.php # Main singleton orchestrator + storage factory
-โโโ README.md # This documentation
-```
-
-### Removed Development Files
-
-The following development and testing files were removed after successful integration:
-- `Example.php` - Migration examples (no longer needed)
-- `Integration.php` - Testing utilities (production-ready)
-- `cache_test.php` - Performance testing script (completed)
-
-### Key Features Achieved
-
-1. **100% Backward Compatibility**: All existing APIs work unchanged
-2. **Modern Foundation**: Built on stable, well-tested Nette Caching v3.3
-3. **Advanced Features**: Dependencies, tags, bulk operations, memoization, output buffering
-4. **Efficient Singletons**: Memory-efficient instance management following TorrentPier patterns
-5. **Unified Debugging**: Consistent debug interface compatible with Dev.php
-6. **Production Ready**: Comprehensive error handling, validation, and performance optimization
-7. **Clean Architecture**: Eliminated redundant configuration logic and switch statements
-8. **Single Storage Source**: All storage creation centralized in UnifiedCacheSystem
-
-### Architectural Consistency
-
-Following TorrentPier's established patterns:
-
-```php
-// Consistent with other singletons
-config() -> Config::getInstance()
-dev() -> Dev::getInstance()
-censor() -> Censor::getInstance()
-DB() -> DB::getInstance()
-CACHE() -> UnifiedCacheSystem::getInstance()->getCache()
-datastore() -> UnifiedCacheSystem::getInstance()->getDatastore()
-```
-
-## Testing & Verification
-
-### Backward Compatibility Verified
-
-```php
-// โ
All existing functionality preserved
-$cache = CACHE('bb_cache');
-assert($cache->set('test', 'value', 60) === true);
-assert($cache->get('test') === 'value');
-assert($cache->rm('test') === true);
-
-$datastore = datastore();
-$datastore->store('test_item', ['data' => 'test']);
-assert($datastore->get('test_item')['data'] === 'test');
-```
-
-### Advanced Features Verified
-
-```php
-// โ
Nette features working correctly
-$cache = CACHE('advanced_test');
-
-// Memoization
-$result1 = $cache->call('expensive_function', 'param');
-$result2 = $cache->call('expensive_function', 'param'); // From cache
-
-// Dependencies
-$cache->save('file_dependent', $data, [
- \Nette\Caching\Cache::Files => [__FILE__]
-]);
-
-// Bulk operations
-$values = $cache->bulkLoad(['key1', 'key2'], function($key) {
- return "value_$key";
-});
-
-// Performance: 456,647+ ops/sec verified
-```
-
-### Debug Functionality Verified
-
-```php
-// โ
Dev.php integration working
-$cache = CACHE('bb_cache');
-$debug = $cache->dbg; // Returns array of operations
-$engine = $cache->engine; // Returns storage type
-$time = $cache->sql_timetotal; // Returns total time
-
-// โ
Singleton behavior verified
-$instance1 = TorrentPier\Cache\UnifiedCacheSystem::getInstance();
-$instance2 = TorrentPier\Cache\UnifiedCacheSystem::getInstance();
-assert($instance1 === $instance2); // Same instance
-```
-
-## Future Enhancements
-
-### Planned Storage Implementations
-- Redis storage adapter for Nette
-- Memcached storage adapter for Nette
-- APCu storage adapter for Nette
-
-### Advanced Features Roadmap
-- Distributed caching support
-- Cache warming and preloading
-- Advanced metrics and monitoring
-- Multi-tier caching strategies
-
----
-
-This unified cache system represents a significant architectural improvement in TorrentPier while ensuring seamless backward compatibility and providing a robust foundation for future enhancements. The clean singleton pattern, advanced Nette Caching features, and comprehensive debug support make it a production-ready replacement for the legacy Cache and Datastore systems.
diff --git a/src/Database/README.md b/src/Database/README.md
deleted file mode 100644
index b7cc5b05b..000000000
--- a/src/Database/README.md
+++ /dev/null
@@ -1,362 +0,0 @@
-# TorrentPier Database Layer
-
-This directory contains the new database layer for TorrentPier 3.0 that uses Nette Database internally. **Breaking changes**: This replaces the legacy SqlDb interface and requires code migration.
-
-## Overview
-
-The new database system has completely replaced the legacy SqlDb/Dbs system and provides:
-
-- **Modern API** - New `DB()->method()` calls with improved functionality
-- **Nette Database integration** - Modern, efficient database layer under the hood
-- **Singleton pattern** - Efficient connection management
-- **Complete feature parity** - All original functionality preserved
-
-## Architecture
-
-### Classes
-
-1. **`Database`** - Main singleton database class using Nette Database Connection
-2. **`DatabaseFactory`** - Factory that has completely replaced the legacy SqlDb/Dbs system
-3. **`DatabaseDebugger`** - Dedicated debug functionality extracted from Database class
-4. **`DebugSelection`** - Debug-enabled wrapper for Nette Database Selection
-
-### Key Features
-
-- **Singleton Pattern**: Ensures single database connection per server configuration
-- **Multiple Database Support**: Handles multiple database servers via DatabaseFactory
-- **Raw SQL Support**: Uses Nette Database's Connection class (SQL way) for minimal code impact
-- **Complete Error Handling**: Maintains existing error handling behavior
-- **Full Debug Support**: Preserves all debugging, logging, and explain functionality
-- **Performance Tracking**: Query timing and slow query detection
-- **Clean Architecture**: Debug functionality extracted to dedicated DatabaseDebugger class
-- **Modular Design**: Single responsibility principle with separate debug and database concerns
-
-## Implementation Status
-
-- โ
**Complete Replacement**: Legacy SqlDb/Dbs classes have been removed from the codebase
-- โ
**Backward Compatibility**: All existing `DB()->method()` calls work unchanged
-- โ
**Debug System**: Full explain(), logging, and performance tracking
-- โ
**Error Handling**: Complete error handling with sql_error() support
-- โ
**Connection Management**: Singleton pattern with proper initialization
-- โ
**Clean Architecture**: Debug functionality extracted to dedicated classes
-- โ
**Class Renaming**: Renamed DB โ Database, DbFactory โ DatabaseFactory for consistency
-
-## Usage
-
-### Standard Database Operations
-```php
-// All existing code works unchanged
-$user = DB()->fetch_row("SELECT * FROM users WHERE id = ?", 123);
-$users = DB()->fetch_rowset("SELECT * FROM users");
-$affected = DB()->affected_rows();
-
-// Raw queries
-$result = DB()->sql_query("UPDATE users SET status = ? WHERE id = ?", 1, 123);
-
-// Data building
-$data = ['name' => 'John', 'email' => 'john@example.com'];
-$sql = DB()->build_array('INSERT', $data);
-```
-
-### Multiple Database Servers
-```php
-// Access different database servers
-$main_db = DB('db'); // Main database
-$tracker_db = DB('tr'); // Tracker database
-$stats_db = DB('stats'); // Statistics database
-```
-
-### Error Handling
-```php
-$result = DB()->sql_query("SELECT * FROM users");
-if (!$result) {
- $error = DB()->sql_error();
- echo "Error: " . $error['message'];
-}
-```
-
-## Configuration
-
-The database configuration is handled through the existing TorrentPier config system:
-
-```php
-// Initialized in common.php
-TorrentPier\Database\DatabaseFactory::init(
- config()->get('db'), // Database configurations
- config()->get('db_alias', []) // Database aliases
-);
-```
-
-## Benefits
-
-### Performance
-- **Efficient Connections**: Singleton pattern prevents connection overhead
-- **Modern Database Layer**: Nette Database v3.2 optimizations
-- **Resource Management**: Automatic cleanup and proper connection handling
-
-### Maintainability
-- **Modern Codebase**: Uses current PHP standards and type declarations
-- **Better Architecture**: Clean separation of concerns
-- **Nette Ecosystem**: Part of actively maintained Nette framework
-
-### Reliability
-- **Proven Technology**: Nette Database is battle-tested
-- **Regular Updates**: Automatic security and bug fixes through composer
-- **Type Safety**: Better error detection and IDE support
-
-## Debugging Features
-
-All original debugging features are preserved and enhanced:
-
-### Query Logging
-- SQL query logging with timing
-- Slow query detection and logging
-- Memory usage tracking
-
-### Debug Information
-```php
-// Enable debugging (same as before)
-DB()->debug('start');
-// ... run queries ...
-DB()->debug('stop');
-```
-
-### Explain Functionality
-```php
-// Explain queries (same interface as before)
-DB()->explain('start');
-DB()->explain('display');
-```
-
-## Technical Details
-
-### Nette Database Integration
-- Uses Nette Database **Connection** class (SQL way)
-- Maintains raw SQL approach for minimal migration impact
-- PDO-based with proper parameter binding
-
-### Compatibility Layer
-- All original method signatures preserved
-- Same return types and behavior
-- Error handling matches original implementation
-
-### Connection Management
-- Single connection per database server
-- Lazy connection initialization
-- Proper connection cleanup
-
-## Migration Notes
-
-This is a **complete replacement** that maintains 100% backward compatibility:
-
-1. **No Code Changes Required**: All existing `DB()->method()` calls work unchanged
-2. **Same Configuration**: Uses existing database configuration
-3. **Same Behavior**: Error handling, return values, and debugging work identically
-4. **Enhanced Performance**: Better connection management and modern database layer
-
-## Dependencies
-
-- **Nette Database v3.2**: Already included in composer.json
-- **PHP 8.0+**: Required for type declarations and modern features
-
-## Files
-
-- `Database.php` - Main database class with full backward compatibility
-- `DatabaseFactory.php` - Factory for managing database instances
-- `DatabaseDebugger.php` - Dedicated debug functionality class
-- `DebugSelection.php` - Debug-enabled Nette Selection wrapper
-- `README.md` - This documentation
-
-## Future Enhancement: Gradual Migration to Nette Explorer
-
-While the current implementation uses Nette Database's **Connection** class (SQL way) for maximum compatibility, TorrentPier can gradually migrate to **Nette Database Explorer** for more modern ORM-style database operations.
-
-### Phase 1: Hybrid Approach
-
-Add Explorer support alongside existing Connection-based methods:
-
-```php
-// Current Connection-based approach (maintains compatibility)
-$users = DB()->fetch_rowset("SELECT * FROM users WHERE status = ?", 1);
-
-// New Explorer-based approach (added gradually)
-$users = DB()->table('users')->where('status', 1)->fetchAll();
-```
-
-### Phase 2: Explorer Method Examples
-
-#### Basic Table Operations
-```php
-// Select operations
-$user = DB()->table('users')->get(123); // Get by ID
-$users = DB()->table('users')->where('status', 1)->fetchAll(); // Where condition
-$count = DB()->table('users')->where('status', 1)->count(); // Count records
-
-// Insert operations
-$user_id = DB()->table('users')->insert([
- 'username' => 'john',
- 'email' => 'john@example.com',
- 'reg_time' => time()
-]);
-
-// Update operations
-DB()->table('users')
- ->where('id', 123)
- ->update(['last_visit' => time()]);
-
-// Delete operations
-DB()->table('users')
- ->where('status', 0)
- ->delete();
-```
-
-#### Advanced Explorer Features
-```php
-// Joins and relationships
-$posts = DB()->table('posts')
- ->select('posts.*, users.username')
- ->where('posts.forum_id', 5)
- ->order('posts.post_time DESC')
- ->limit(20)
- ->fetchAll();
-
-// Aggregations
-$stats = DB()->table('torrents')
- ->select('forum_id, COUNT(*) as total, SUM(size) as total_size')
- ->where('approved', 1)
- ->group('forum_id')
- ->fetchAll();
-
-// Subqueries
-$active_users = DB()->table('users')
- ->where('last_visit > ?', time() - 86400)
- ->where('id IN', DB()->table('posts')
- ->select('user_id')
- ->where('post_time > ?', time() - 86400)
- )
- ->fetchAll();
-```
-
-#### Working with Related Data
-```php
-// One-to-many relationships
-$user = DB()->table('users')->get(123);
-$user_posts = $user->related('posts')->order('post_time DESC');
-
-// Many-to-many through junction table
-$torrent = DB()->table('torrents')->get(456);
-$seeders = $torrent->related('bt_tracker', 'torrent_id')
- ->where('seeder', 'yes')
- ->select('user_id');
-```
-
-### Phase 3: Migration Strategy
-
-#### Step-by-Step Conversion
-1. **Identify Patterns**: Find common SQL patterns in the codebase
-2. **Create Helpers**: Build wrapper methods for complex queries
-3. **Test Incrementally**: Convert one module at a time
-4. **Maintain Compatibility**: Keep both approaches during transition
-
-#### Example Migration Pattern
-```php
-// Before: Raw SQL
-$result = DB()->sql_query("
- SELECT t.*, u.username
- FROM torrents t
- JOIN users u ON t.poster_id = u.user_id
- WHERE t.forum_id = ? AND t.approved = 1
- ORDER BY t.reg_time DESC
- LIMIT ?
-", $forum_id, $limit);
-
-$torrents = [];
-while ($row = DB()->sql_fetchrow($result)) {
- $torrents[] = $row;
-}
-
-// After: Explorer ORM
-$torrents = DB()->table('torrents')
- ->alias('t')
- ->select('t.*, u.username')
- ->where('t.forum_id', $forum_id)
- ->where('t.approved', 1)
- ->order('t.reg_time DESC')
- ->limit($limit)
- ->fetchAll();
-```
-
-### Phase 4: Advanced Explorer Features
-
-#### Custom Repository Classes
-```php
-// Create specialized repository classes
-class TorrentRepository
-{
- private $db;
-
- public function __construct($db)
- {
- $this->db = $db;
- }
-
- public function getApprovedByForum($forum_id, $limit = 20)
- {
- return $this->db->table('torrents')
- ->where('forum_id', $forum_id)
- ->where('approved', 1)
- ->order('reg_time DESC')
- ->limit($limit)
- ->fetchAll();
- }
-
- public function getTopSeeded($limit = 10)
- {
- return $this->db->table('torrents')
- ->where('approved', 1)
- ->order('seeders DESC')
- ->limit($limit)
- ->fetchAll();
- }
-}
-
-// Usage
-$torrentRepo = new TorrentRepository(DB());
-$popular = $torrentRepo->getTopSeeded();
-```
-
-#### Database Events and Caching
-```php
-// Add caching layer
-$cached_result = DB()->table('users')
- ->where('status', 1)
- ->cache('active_users', 3600) // Cache for 1 hour
- ->fetchAll();
-
-// Database events for logging
-DB()->onQuery[] = function ($query, $parameters, $time) {
- if ($time > 1.0) { // Log slow queries
- error_log("Slow query ({$time}s): $query");
- }
-};
-```
-
-### Benefits of Explorer Migration
-
-#### Developer Experience
-- **Fluent Interface**: Chainable method calls
-- **IDE Support**: Better autocomplete and type hints
-- **Less SQL**: Reduced raw SQL writing
-- **Built-in Security**: Automatic parameter binding
-
-#### Code Quality
-- **Readable Code**: Self-documenting query building
-- **Reusable Patterns**: Common queries become methods
-- **Type Safety**: Better error detection
-- **Testing**: Easier to mock and test
-
-#### Performance
-- **Query Optimization**: Explorer can optimize queries
-- **Lazy Loading**: Load related data only when needed
-- **Connection Pooling**: Better resource management
-- **Caching Integration**: Built-in caching support
diff --git a/src/Domain/Forum/Exception/README.md b/src/Domain/Forum/Exception/README.md
deleted file mode 100644
index 07a483fe6..000000000
--- a/src/Domain/Forum/Exception/README.md
+++ /dev/null
@@ -1,8 +0,0 @@
-# Forum Domain Exceptions
-
-Domain-specific exceptions for forum operations:
-
-- `ThreadLockedException`: Attempt to post in locked thread
-- `PostEditTimeExpiredException`: Edit time limit exceeded
-- `ForumAccessDeniedException`: Insufficient permissions
-- `InvalidPostContentException`: Post validation failed
\ No newline at end of file
diff --git a/src/Domain/Forum/Model/README.md b/src/Domain/Forum/Model/README.md
deleted file mode 100644
index 6dafb0894..000000000
--- a/src/Domain/Forum/Model/README.md
+++ /dev/null
@@ -1,15 +0,0 @@
-# Forum Domain Models
-
-Contains aggregate roots and entities for the forum system:
-
-- `Forum`: Forum category aggregate
-- `Thread`: Discussion thread aggregate root
-- `Post`: Individual post entity
-- `Attachment`: File attachment entity
-
-Business rules enforced at this level:
-
-- Post editing time limits
-- Thread locking rules
-- Forum access permissions
-- Post moderation workflow
\ No newline at end of file
diff --git a/src/Domain/Forum/Repository/README.md b/src/Domain/Forum/Repository/README.md
deleted file mode 100644
index 1a8430801..000000000
--- a/src/Domain/Forum/Repository/README.md
+++ /dev/null
@@ -1,9 +0,0 @@
-# Forum Repository Interfaces
-
-Repository interfaces for forum aggregates:
-
-- `ForumRepositoryInterface`: Forum aggregate persistence
-- `ThreadRepositoryInterface`: Thread aggregate persistence
-- `PostRepositoryInterface`: Post queries (read-only)
-
-These interfaces define contracts that infrastructure must implement.
\ No newline at end of file
diff --git a/src/Domain/Forum/ValueObject/README.md b/src/Domain/Forum/ValueObject/README.md
deleted file mode 100644
index eb8aec659..000000000
--- a/src/Domain/Forum/ValueObject/README.md
+++ /dev/null
@@ -1,10 +0,0 @@
-# Forum Value Objects
-
-Immutable objects representing forum concepts:
-
-- `PostId`: Unique post identifier
-- `ThreadTitle`: Thread title with validation
-- `PostContent`: Formatted post content
-- `ForumSlug`: URL-friendly forum identifier
-
-These objects ensure type safety and encapsulate validation rules.
\ No newline at end of file
diff --git a/src/Domain/README.md b/src/Domain/README.md
deleted file mode 100644
index cb9254a68..000000000
--- a/src/Domain/README.md
+++ /dev/null
@@ -1,15 +0,0 @@
-# Domain Layer
-
-This directory contains the core business logic of TorrentPier. Code here should:
-
-- Have no dependencies on frameworks or infrastructure
-- Represent pure business rules and domain models
-- Be testable in isolation
-- Use only PHP language features and domain concepts
-
-## Bounded Contexts
-
-- **Forum**: Discussion forums, posts, threads
-- **Tracker**: BitTorrent tracking, peers, torrents
-- **User**: User management, authentication, profiles
-- **Shared**: Minimal shared concepts between contexts
\ No newline at end of file
diff --git a/src/Domain/Shared/Event/README.md b/src/Domain/Shared/Event/README.md
deleted file mode 100644
index 11656fb4a..000000000
--- a/src/Domain/Shared/Event/README.md
+++ /dev/null
@@ -1,15 +0,0 @@
-# Domain Events
-
-Base classes and interfaces for domain event system:
-
-- `DomainEvent`: Base event interface
-- `EventRecording`: Trait for aggregate event recording
-- `AggregateHistory`: Event sourcing support
-
-Example events:
-
-- `UserRegisteredEvent`
-- `TorrentUploadedEvent`
-- `ThreadCreatedEvent`
-
-Events enable loose coupling between bounded contexts.
\ No newline at end of file
diff --git a/src/Domain/Shared/Exception/README.md b/src/Domain/Shared/Exception/README.md
deleted file mode 100644
index 2c5a556bd..000000000
--- a/src/Domain/Shared/Exception/README.md
+++ /dev/null
@@ -1,10 +0,0 @@
-# Shared Domain Exceptions
-
-Base exception classes used across all bounded contexts:
-
-- `DomainException`: Base domain exception
-- `InvalidArgumentException`: Invalid input validation
-- `EntityNotFoundException`: Generic entity not found
-- `BusinessRuleViolationException`: Business rule violations
-
-These provide common exception handling patterns without coupling contexts.
\ No newline at end of file
diff --git a/src/Domain/Shared/Model/README.md b/src/Domain/Shared/Model/README.md
deleted file mode 100644
index 4daf36150..000000000
--- a/src/Domain/Shared/Model/README.md
+++ /dev/null
@@ -1,10 +0,0 @@
-# Shared Domain Models
-
-Base classes and interfaces used across bounded contexts:
-
-- `AggregateRoot`: Base class for all aggregates
-- `Entity`: Base class for entities
-- `DomainEvent`: Interface for domain events
-- `ValueObject`: Base value object interface
-
-These provide common functionality while maintaining context boundaries.
\ No newline at end of file
diff --git a/src/Domain/Shared/Repository/README.md b/src/Domain/Shared/Repository/README.md
deleted file mode 100644
index 999f9d300..000000000
--- a/src/Domain/Shared/Repository/README.md
+++ /dev/null
@@ -1,9 +0,0 @@
-# Shared Repository Interfaces
-
-Common repository patterns and base interfaces:
-
-- `RepositoryInterface`: Base repository contract
-- `ReadOnlyRepositoryInterface`: Query-only operations
-- `AggregateRepositoryInterface`: Aggregate-specific methods
-
-These define common persistence patterns without implementation details.
\ No newline at end of file
diff --git a/src/Domain/Shared/ValueObject/README.md b/src/Domain/Shared/ValueObject/README.md
deleted file mode 100644
index afc5b7bc6..000000000
--- a/src/Domain/Shared/ValueObject/README.md
+++ /dev/null
@@ -1,10 +0,0 @@
-# Shared Value Objects
-
-Common value objects used across contexts:
-
-- `Id`: Generic identifier base class
-- `DateTime`: Immutable datetime wrapper
-- `Money`: Monetary value representation
-- `Percentage`: Percentage value (0-100)
-
-These are minimal shared concepts that don't violate bounded context principles.
\ No newline at end of file
diff --git a/src/Domain/Tracker/Exception/README.md b/src/Domain/Tracker/Exception/README.md
deleted file mode 100644
index 73ae0f882..000000000
--- a/src/Domain/Tracker/Exception/README.md
+++ /dev/null
@@ -1,8 +0,0 @@
-# Tracker Domain Exceptions
-
-Domain-specific exceptions for tracker operations:
-
-- `InvalidInfoHashException`: Malformed info hash
-- `InactiveTorrentException`: Torrent not active
-- `PeerLimitExceededException`: Too many peers
-- `InvalidAnnounceException`: Protocol violation
\ No newline at end of file
diff --git a/src/Domain/Tracker/Model/README.md b/src/Domain/Tracker/Model/README.md
deleted file mode 100644
index 124456276..000000000
--- a/src/Domain/Tracker/Model/README.md
+++ /dev/null
@@ -1,19 +0,0 @@
-# Tracker Domain Models
-
-Contains aggregate roots and entities for the BitTorrent tracker:
-
-- `Torrent`: Aggregate root for torrent management
-- `Peer`: Entity representing a BitTorrent peer
-- `TorrentStatistics`: Value object for torrent stats
-
-Example:
-
-```php
-class Torrent extends AggregateRoot
-{
- public function announce(Peer $peer, AnnounceEvent $event): void
- {
- // Business logic for handling announces
- }
-}
-```
\ No newline at end of file
diff --git a/src/Domain/Tracker/Repository/README.md b/src/Domain/Tracker/Repository/README.md
deleted file mode 100644
index 3745d6e4e..000000000
--- a/src/Domain/Tracker/Repository/README.md
+++ /dev/null
@@ -1,9 +0,0 @@
-# Tracker Repository Interfaces
-
-Repository interfaces for tracker aggregates:
-
-- `TorrentRepositoryInterface`: Torrent aggregate persistence
-- `PeerRepositoryInterface`: Peer data access
-- `TrackerStatsRepositoryInterface`: Statistics queries
-
-These define persistence contracts without implementation details.
\ No newline at end of file
diff --git a/src/Domain/Tracker/ValueObject/README.md b/src/Domain/Tracker/ValueObject/README.md
deleted file mode 100644
index cd3fcf0ee..000000000
--- a/src/Domain/Tracker/ValueObject/README.md
+++ /dev/null
@@ -1,23 +0,0 @@
-# Tracker Value Objects
-
-Immutable objects representing domain concepts:
-
-- `InfoHash`: 20-byte torrent identifier
-- `PeerId`: Peer client identifier
-- `Port`: Network port (1-65535)
-- `BytesTransferred`: Upload/download bytes
-
-Example:
-
-```php
-final class InfoHash
-{
- private string $hash;
-
- public function __construct(string $hash)
- {
- $this->guardAgainstInvalidHash($hash);
- $this->hash = $hash;
- }
-}
-```
\ No newline at end of file
diff --git a/src/Domain/User/Exception/README.md b/src/Domain/User/Exception/README.md
deleted file mode 100644
index f689a7943..000000000
--- a/src/Domain/User/Exception/README.md
+++ /dev/null
@@ -1,9 +0,0 @@
-# User Domain Exceptions
-
-Domain-specific exceptions for user operations:
-
-- `UserNotFoundException`: User not found
-- `DuplicateUsernameException`: Username already taken
-- `InvalidCredentialsException`: Authentication failed
-- `UserNotActivatedException`: Account not activated
-- `PasswordComplexityException`: Weak password
\ No newline at end of file
diff --git a/src/Domain/User/Model/README.md b/src/Domain/User/Model/README.md
deleted file mode 100644
index 2001b3ebd..000000000
--- a/src/Domain/User/Model/README.md
+++ /dev/null
@@ -1,15 +0,0 @@
-# User Domain Models
-
-Contains user management aggregates and entities:
-
-- `User`: User aggregate root
-- `UserProfile`: User profile information
-- `UserCredentials`: Authentication credentials
-- `UserPermissions`: Authorization rules
-
-Business rules:
-
-- Password complexity requirements
-- Username uniqueness
-- Email verification workflow
-- Account activation/deactivation
\ No newline at end of file
diff --git a/src/Domain/User/Repository/README.md b/src/Domain/User/Repository/README.md
deleted file mode 100644
index 9d4c463c7..000000000
--- a/src/Domain/User/Repository/README.md
+++ /dev/null
@@ -1,10 +0,0 @@
-# User Repository Interface
-
-Repository interface for user aggregate:
-
-- `UserRepositoryInterface`: User persistence and retrieval
- - `findById(UserId $id): ?User`
- - `findByUsername(Username $username): ?User`
- - `findByEmail(Email $email): ?User`
- - `save(User $user): void`
- - `delete(User $user): void`
\ No newline at end of file
diff --git a/src/Domain/User/ValueObject/README.md b/src/Domain/User/ValueObject/README.md
deleted file mode 100644
index 79c930883..000000000
--- a/src/Domain/User/ValueObject/README.md
+++ /dev/null
@@ -1,11 +0,0 @@
-# User Value Objects
-
-Immutable objects for user domain:
-
-- `UserId`: Unique user identifier
-- `Username`: Username with validation
-- `Email`: Email address with format validation
-- `HashedPassword`: Secure password representation
-- `UserRole`: User role enumeration
-
-These ensure data integrity and type safety.
\ No newline at end of file
diff --git a/src/Infrastructure/Cache/File/README.md b/src/Infrastructure/Cache/File/README.md
deleted file mode 100644
index 9f781c1b9..000000000
--- a/src/Infrastructure/Cache/File/README.md
+++ /dev/null
@@ -1,9 +0,0 @@
-# File Cache Adapter
-
-File system-based caching implementation:
-
-- Simple file-based storage
-- Suitable for single-server deployments
-- Directory structure optimization
-- Lock file support for concurrency
-- Automatic garbage collection
\ No newline at end of file
diff --git a/src/Infrastructure/Cache/Memcached/README.md b/src/Infrastructure/Cache/Memcached/README.md
deleted file mode 100644
index 2e60b7e0b..000000000
--- a/src/Infrastructure/Cache/Memcached/README.md
+++ /dev/null
@@ -1,9 +0,0 @@
-# Memcached Cache Adapter
-
-Memcached-based caching implementation:
-
-- Simple key-value caching
-- Distributed cache support
-- Automatic key expiration
-- Connection pooling
-- Consistent hashing for distribution
\ No newline at end of file
diff --git a/src/Infrastructure/Cache/Redis/README.md b/src/Infrastructure/Cache/Redis/README.md
deleted file mode 100644
index da7e090aa..000000000
--- a/src/Infrastructure/Cache/Redis/README.md
+++ /dev/null
@@ -1,9 +0,0 @@
-# Redis Cache Adapter
-
-Redis-based caching implementation:
-
-- High-performance key-value storage
-- Support for data structures (lists, sets, hashes)
-- TTL management
-- Pub/sub for cache invalidation
-- Cluster support for scalability
\ No newline at end of file
diff --git a/src/Infrastructure/DependencyInjection/README.md b/src/Infrastructure/DependencyInjection/README.md
deleted file mode 100644
index e65de5a19..000000000
--- a/src/Infrastructure/DependencyInjection/README.md
+++ /dev/null
@@ -1,171 +0,0 @@
-# Dependency Injection Infrastructure
-
-This directory contains the dependency injection container implementation using PHP-DI, following hexagonal architecture principles.
-
-## Architecture Overview
-
-The DI container is placed in the Infrastructure layer because:
-- Dependency injection is a technical implementation detail
-- It handles wiring and bootstrapping, not business logic
-- The domain layer remains pure without framework dependencies
-
-## Structure
-
-```
-DependencyInjection/
-โโโ Container.php # Wrapper around PHP-DI container
-โโโ ContainerFactory.php # Factory for building configured containers
-โโโ Bootstrap.php # Application bootstrapper
-โโโ Definitions/ # Service definitions by layer
- โโโ DomainDefinitions.php
- โโโ ApplicationDefinitions.php
- โโโ InfrastructureDefinitions.php
- โโโ PresentationDefinitions.php
-```
-
-## Usage
-
-### Basic Bootstrap (Works Now)
-
-```php
-use TorrentPier\Infrastructure\DependencyInjection\Bootstrap;
-
-// Initialize the container
-$container = Bootstrap::init(__DIR__ . '/../..');
-
-// Basic usage
-$containerInstance = app(); // Get container itself
-$hasService = $container->has('some.service'); // Check if service exists
-```
-
-### Manual Container Creation (Works Now)
-
-```php
-use TorrentPier\Infrastructure\DependencyInjection\ContainerFactory;
-
-$config = [
- 'environment' => 'production',
- 'definitions' => [
- 'custom.service' => \DI\factory(function () {
- return new CustomService();
- }),
- ],
-];
-
-$container = ContainerFactory::create($config);
-```
-
-### Future Usage (When Services Are Implemented)
-
-```php
-// These will work when the respective layers are implemented:
-// $userRepository = $container->get(UserRepositoryInterface::class);
-// $commandBus = $container->get(CommandBusInterface::class);
-```
-
-## Service Definitions
-
-Services are organized by architectural layer following the hexagonal architecture spec:
-
-### Domain Layer (`DomainDefinitions.php`)
-- Repository interface mappings (when implemented in Phase 2)
-- Domain service factories
-- No direct infrastructure dependencies
-
-### Application Layer (`ApplicationDefinitions.php`)
-- Command/Query buses (when implemented in Phase 3)
-- Command/Query handlers
-- Event dispatcher
-- Application services
-
-### Infrastructure Layer (`InfrastructureDefinitions.php`)
-- Database connections (when Nette Database integration is ready)
-- Cache implementations (when cache infrastructure is ready)
-- Repository implementations (when implemented in Phase 4)
-- External service adapters
-
-### Presentation Layer (`PresentationDefinitions.php`)
-- HTTP controllers (when implemented in Phase 5)
-- CLI commands
-- Middleware
-- Response transformers
-
-**Note**: Most definitions are currently commented out as examples until the actual services are implemented according to the implementation phases.
-
-## Configuration
-
-Configuration is loaded from multiple sources:
-
-1. **Environment Variables** (`.env` file)
-2. **Configuration Files** (`/config/*.php`)
-3. **Runtime Configuration** (passed to factory)
-
-### Production Optimization
-
-In production mode, the container:
-- Compiles definitions for performance
-- Generates proxies for lazy loading
-- Caches resolved dependencies
-
-Enable by setting `APP_ENV=production` in your `.env` file.
-
-## Best Practices
-
-1. **Use Interfaces**: Define interfaces in domain, implement in infrastructure
-2. **Explicit Definitions**: Prefer explicit over magic for complex services
-3. **Layer Separation**: Keep definitions organized by architectural layer
-4. **Lazy Loading**: Use factories for expensive services
-5. **Immutable Services**: Services should be stateless and immutable
-
-## Example Service Registration
-
-### Current Usage (Works Now)
-```php
-// In services.php or custom definitions
-return [
- 'custom.service' => \DI\factory(function () {
- return new CustomService();
- }),
-
- 'test.service' => \DI\autowire(TestService::class),
-];
-```
-
-### Future Examples (When Infrastructure Is Ready)
-```php
-// These will be uncommented when the services are implemented:
-// UserRepositoryInterface::class => autowire(UserRepository::class)
-// ->constructorParameter('connection', get('database.connection.default'))
-// ->constructorParameter('cache', get('cache.factory')),
-//
-// 'email.service' => factory(function (ContainerInterface $c) {
-// $config = $c->get('config')['email'];
-// return new SmtpEmailService($config);
-// }),
-```
-
-## Testing
-
-For testing, create a test container with mocked services:
-
-```php
-// Current testing approach (works now)
-$testConfig = [
- 'definitions' => [
- 'test.service' => \DI\factory(function () {
- return new MockTestService();
- }),
- ],
- 'environment' => 'testing',
-];
-
-$container = ContainerFactory::create($testConfig);
-
-// Future testing (when services are implemented)
-// $testConfig = [
-// 'definitions' => [
-// UserRepositoryInterface::class => $mockUserRepository,
-// EmailServiceInterface::class => $mockEmailService,
-// ],
-// ];
-```
diff --git a/src/Infrastructure/Email/Template/README.md b/src/Infrastructure/Email/Template/README.md
deleted file mode 100644
index 3497a96ba..000000000
--- a/src/Infrastructure/Email/Template/README.md
+++ /dev/null
@@ -1,16 +0,0 @@
-# Email Templates
-
-Email template management:
-
-- HTML and plain text templates
-- Template variables and placeholders
-- Multi-language support
-- Template caching
-- Preview functionality
-
-Common templates:
-
-- User registration confirmation
-- Password reset
-- Torrent notifications
-- Forum post notifications
\ No newline at end of file
diff --git a/src/Infrastructure/Email/Transport/README.md b/src/Infrastructure/Email/Transport/README.md
deleted file mode 100644
index 0de823895..000000000
--- a/src/Infrastructure/Email/Transport/README.md
+++ /dev/null
@@ -1,10 +0,0 @@
-# Email Transport
-
-Email delivery mechanisms:
-
-- `SmtpTransport`: Traditional SMTP delivery
-- `SendgridTransport`: SendGrid API integration
-- `MailgunTransport`: Mailgun API integration
-- `NullTransport`: Testing/development transport
-
-Supports queuing and retry mechanisms.
\ No newline at end of file
diff --git a/src/Infrastructure/FileStorage/Local/README.md b/src/Infrastructure/FileStorage/Local/README.md
deleted file mode 100644
index cb0fdac49..000000000
--- a/src/Infrastructure/FileStorage/Local/README.md
+++ /dev/null
@@ -1,11 +0,0 @@
-# Local File Storage
-
-Local filesystem storage implementation:
-
-- Direct disk storage
-- Directory structure management
-- File permissions handling
-- Atomic file operations
-- Cleanup and maintenance
-
-Used for torrent files, avatars, and attachments.
\ No newline at end of file
diff --git a/src/Infrastructure/FileStorage/S3/README.md b/src/Infrastructure/FileStorage/S3/README.md
deleted file mode 100644
index c008d9f5a..000000000
--- a/src/Infrastructure/FileStorage/S3/README.md
+++ /dev/null
@@ -1,11 +0,0 @@
-# S3 File Storage
-
-Amazon S3 (or compatible) storage implementation:
-
-- Cloud object storage
-- Pre-signed URLs for direct uploads
-- CDN integration support
-- Lifecycle policies
-- Multi-region support
-
-Provides scalable storage for large deployments.
\ No newline at end of file
diff --git a/src/Infrastructure/Persistence/Database/README.md b/src/Infrastructure/Persistence/Database/README.md
deleted file mode 100644
index c250b60e8..000000000
--- a/src/Infrastructure/Persistence/Database/README.md
+++ /dev/null
@@ -1,9 +0,0 @@
-# Database Adapter
-
-Database connection and query building layer:
-
-- `DatabaseAdapterInterface`: Common database operations
-- `QueryBuilder`: Fluent query construction
-- `ConnectionPool`: Connection management
-
-Provides abstraction over raw database access.
diff --git a/src/Infrastructure/Persistence/Migration/README.md b/src/Infrastructure/Persistence/Migration/README.md
deleted file mode 100644
index 1f203e645..000000000
--- a/src/Infrastructure/Persistence/Migration/README.md
+++ /dev/null
@@ -1,10 +0,0 @@
-# Database Migrations
-
-Schema version control and migration management:
-
-- Migration files for schema changes
-- Seed data for initial setup
-- Rollback support
-- Migration history tracking
-
-Uses Phinx or similar migration tool.
\ No newline at end of file
diff --git a/src/Infrastructure/Persistence/Repository/README.md b/src/Infrastructure/Persistence/Repository/README.md
deleted file mode 100644
index 002760d4a..000000000
--- a/src/Infrastructure/Persistence/Repository/README.md
+++ /dev/null
@@ -1,29 +0,0 @@
-# Repository Implementations
-
-Concrete implementations of domain repository interfaces:
-
-- Uses database adapter for persistence
-- Implements caching strategies
-- Handles query optimization
-- Supports multiple database backends
-
-Example:
-
-```php
-class TorrentRepository implements TorrentRepositoryInterface
-{
- public function __construct(
- private DatabaseAdapterInterface $db
- ) {}
-
- public function findByInfoHash(InfoHash $infoHash): ?Torrent
- {
- // Database adapter implementation
- $row = $this->db->select('torrents')
- ->where('info_hash', $infoHash->toString())
- ->first();
-
- return $row ? $this->hydrateFromRow($row) : null;
- }
-}
-```
\ No newline at end of file
diff --git a/src/Infrastructure/README.md b/src/Infrastructure/README.md
deleted file mode 100644
index 2098a9f97..000000000
--- a/src/Infrastructure/README.md
+++ /dev/null
@@ -1,11 +0,0 @@
-# Infrastructure Layer
-
-Technical implementations and external service adapters:
-
-- Database persistence
-- Caching mechanisms
-- Email services
-- File storage
-- Third-party integrations
-
-Infrastructure depends on domain, not vice versa.
\ No newline at end of file
diff --git a/src/Presentation/Cli/Commands/README.md b/src/Presentation/Cli/Commands/README.md
deleted file mode 100644
index 5e2cf1239..000000000
--- a/src/Presentation/Cli/Commands/README.md
+++ /dev/null
@@ -1,10 +0,0 @@
-# CLI Commands
-
-Console commands for administrative tasks:
-
-- `UserCreateCommand`: Create users from CLI
-- `CacheClearCommand`: Clear cache stores
-- `MigrateCommand`: Run database migrations
-- `CronCommand`: Execute scheduled tasks
-
-Built using Symfony Console component.
\ No newline at end of file
diff --git a/src/Presentation/Http/Controllers/Admin/README.md b/src/Presentation/Http/Controllers/Admin/README.md
deleted file mode 100644
index 6e478949b..000000000
--- a/src/Presentation/Http/Controllers/Admin/README.md
+++ /dev/null
@@ -1,30 +0,0 @@
-# Admin Panel Controllers
-
-Administrative interface controllers with enhanced security:
-
-- Role-based access control (RBAC)
-- Audit logging for all actions
-- Additional authentication checks
-- Administrative dashboards and reports
-
-Example:
-
-```php
-class AdminUserController
-{
- public function index(Request $request): Response
- {
- $query = new GetUsersQuery(
- page: $request->getPage(),
- filters: $request->getFilters()
- );
-
- $users = $this->queryBus->handle($query);
-
- return $this->render('admin/users/index', [
- 'users' => $users,
- 'filters' => $request->getFilters()
- ]);
- }
-}
-```
\ No newline at end of file
diff --git a/src/Presentation/Http/Controllers/Api/README.md b/src/Presentation/Http/Controllers/Api/README.md
deleted file mode 100644
index 7d944db2e..000000000
--- a/src/Presentation/Http/Controllers/Api/README.md
+++ /dev/null
@@ -1,31 +0,0 @@
-# API Controllers
-
-RESTful API endpoints following OpenAPI specification:
-
-- JSON request/response format
-- Proper HTTP status codes
-- HATEOAS where applicable
-- Rate limiting aware
-
-Example:
-
-```php
-class UserController
-{
- public function register(RegisterRequest $request): JsonResponse
- {
- $command = new RegisterUserCommand(
- $request->getUsername(),
- $request->getEmail(),
- $request->getPassword()
- );
-
- $userId = $this->commandBus->handle($command);
-
- return new JsonResponse([
- 'id' => $userId,
- 'username' => $request->getUsername()
- ], Response::HTTP_CREATED);
- }
-}
-```
\ No newline at end of file
diff --git a/src/Presentation/Http/Controllers/Web/README.md b/src/Presentation/Http/Controllers/Web/README.md
deleted file mode 100644
index 015c2d19c..000000000
--- a/src/Presentation/Http/Controllers/Web/README.md
+++ /dev/null
@@ -1,16 +0,0 @@
-# Web Controllers
-
-Traditional web interface controllers:
-
-- HTML response generation
-- Template rendering
-- Form handling
-- Session management
-- CSRF protection
-
-Controllers for:
-
-- Forum browsing and posting
-- Torrent browsing and downloading
-- User profiles and settings
-- Search functionality
\ No newline at end of file
diff --git a/src/Presentation/Http/Middleware/README.md b/src/Presentation/Http/Middleware/README.md
deleted file mode 100644
index c5a1d1a0c..000000000
--- a/src/Presentation/Http/Middleware/README.md
+++ /dev/null
@@ -1,12 +0,0 @@
-# HTTP Middleware
-
-Request/response pipeline middleware:
-
-- `AuthenticationMiddleware`: User authentication
-- `AuthorizationMiddleware`: Permission checks
-- `CsrfProtectionMiddleware`: CSRF token validation
-- `RateLimitMiddleware`: Request throttling
-- `LocalizationMiddleware`: Language detection
-- `CorsMiddleware`: Cross-origin resource sharing
-
-Middleware follows PSR-15 standard.
\ No newline at end of file
diff --git a/src/Presentation/Http/Requests/README.md b/src/Presentation/Http/Requests/README.md
deleted file mode 100644
index 8e0a47d1c..000000000
--- a/src/Presentation/Http/Requests/README.md
+++ /dev/null
@@ -1,25 +0,0 @@
-# HTTP Requests
-
-Request objects and validation:
-
-- Request DTOs with validation rules
-- Type-safe access to request data
-- File upload handling
-- Input sanitization
-- Custom validation rules
-
-Example:
-
-```php
-class RegisterRequest extends FormRequest
-{
- public function rules(): array
- {
- return [
- 'username' => ['required', 'string', 'min:3', 'max:20', 'unique:users'],
- 'email' => ['required', 'email', 'unique:users'],
- 'password' => ['required', 'string', 'min:8', 'confirmed'],
- ];
- }
-}
-```
\ No newline at end of file
diff --git a/src/Presentation/Http/Responses/README.md b/src/Presentation/Http/Responses/README.md
deleted file mode 100644
index bce8c8325..000000000
--- a/src/Presentation/Http/Responses/README.md
+++ /dev/null
@@ -1,11 +0,0 @@
-# HTTP Responses
-
-Response transformation and formatting:
-
-- Response factories
-- JSON transformers
-- View presenters
-- Error response formatting
-- Content negotiation
-
-Ensures consistent API responses and proper HTTP semantics.
\ No newline at end of file
diff --git a/src/Presentation/README.md b/src/Presentation/README.md
deleted file mode 100644
index 3e99a424b..000000000
--- a/src/Presentation/README.md
+++ /dev/null
@@ -1,11 +0,0 @@
-# Presentation Layer
-
-User interface implementations:
-
-- HTTP controllers for web and API
-- CLI commands for console operations
-- Request/response handling
-- Input validation
-- Output formatting
-
-This layer translates between external format and application format.
\ No newline at end of file
diff --git a/src/Whoops/README.md b/src/Whoops/README.md
deleted file mode 100644
index 572b42980..000000000
--- a/src/Whoops/README.md
+++ /dev/null
@@ -1,132 +0,0 @@
-# TorrentPier Whoops Enhanced Error Reporting
-
-This directory contains enhanced Whoops error handlers specifically designed for TorrentPier to provide better debugging information when database errors occur.
-
-## Features
-
-### Enhanced Database Error Reporting
-
-The enhanced Whoops handlers provide comprehensive database information when errors occur:
-
-1. **Current SQL Query** - Shows the exact query that caused the error
-2. **Recent Query History** - Displays the last 5 SQL queries executed
-3. **Database Connection Status** - Connection state, server info, database name
-4. **Error Context** - PDO error codes, exception details, source location
-5. **TorrentPier Environment** - Debug mode status, system information
-
-### Components
-
-#### EnhancedPrettyPageHandler
-
-Extends Whoops' default `PrettyPageHandler` to include:
-- **Database Information** table with connection details and current query
-- **Recent SQL Queries** table showing query history with timing
-- **TorrentPier Environment** table with system status
-
-#### DatabaseErrorHandler
-
-Specialized handler that:
-- Adds database context to exception stack frames
-- Identifies database-related code in the call stack
-- Collects comprehensive database state information
-- Formats SQL queries for readable display
-
-## Usage
-
-The enhanced handlers are automatically activated when `DBG_USER` is enabled in TorrentPier configuration.
-
-### Automatic Integration
-
-```php
-// In src/Dev.php - automatically configured
-$prettyPageHandler = new \TorrentPier\Whoops\EnhancedPrettyPageHandler();
-```
-
-### Database Error Logging
-
-Database errors are now automatically logged even when they occur in Nette Database layer:
-
-```php
-// Enhanced error handling in Database.php
-try {
- $row = $result->fetch();
-} catch (\Exception $e) {
- // Log the error including the query that caused it
- $this->debugger->log_error($e);
- throw $e; // Re-throw for Whoops display
-}
-```
-
-## Error Information Displayed
-
-When a database error occurs, Whoops will now show:
-
-### Database Information
-- Connection Status: Connected/Disconnected
-- Database Server: Host and port information
-- Selected Database: Current database name
-- Database Engine: MySQL/PostgreSQL/etc.
-- Total Queries: Number of queries executed
-- Total Query Time: Cumulative execution time
-- Current Query: The SQL that caused the error
-- Last Database Error: Error code and message
-- PDO Driver: Database driver information
-- Server Version: Database server version
-
-### Recent SQL Queries
-- **Query #1-5**: Last 5 queries executed
- - SQL: Formatted query text
- - Time: Execution time in seconds
- - Source: File and line where query originated
- - Info: Additional query information
- - Memory: Memory usage if available
-
-### TorrentPier Environment
-- Application Environment: local/production/etc.
-- Debug Mode: Enabled/Disabled
-- SQL Debug: Enabled/Disabled
-- TorrentPier Version: Current version
-- Config Loaded: Configuration status
-- Cache System: Availability status
-- Language System: Status and encoding
-- Template System: Twig-based availability
-- Execution Time: Request processing time
-- Peak Memory: Maximum memory used
-- Current Memory: Current memory usage
-- Request Method: GET/POST/etc.
-- Request URI: Current page
-- User Agent: Browser information
-- Remote IP: Client IP address
-
-## Configuration
-
-The enhanced handlers respect TorrentPier's debug configuration:
-
-- `DBG_USER`: Must be enabled to show enhanced error pages
-- `SQL_DEBUG`: Enables SQL query logging and timing
-- `APP_ENV`: Determines environment-specific features
-
-## Logging
-
-Database errors are now logged in multiple locations:
-
-1. **PHP Error Log**: Basic error message
-2. **TorrentPier bb_log**: Detailed error with context (`database_errors.log`)
-3. **Whoops Log**: Complete error details (`php_whoops.log`)
-
-## Security
-
-The enhanced handlers maintain security by:
-- Only showing detailed information when `DBG_USER` is enabled
-- Using Whoops' blacklist for sensitive data
-- Logging detailed information to files (not user-accessible)
-- Providing generic error messages to non-debug users
-
-## Integration with TorrentPier 3.0
-
-All enhancements are:
-
-- **Integrated** with the new TorrentPier 3.0 architecture
-- **Modern** - designed for the rewritten codebase
-- **Optional** - only activated in debug mode
-- **Safe** - no security implications for production use
diff --git a/styles/templates/default/images/lang/ar/icon_code.gif b/styles/templates/default/images/lang/ar/icon_code.gif
deleted file mode 100644
index 5afd6e2c7..000000000
Binary files a/styles/templates/default/images/lang/ar/icon_code.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ar/icon_edit.gif b/styles/templates/default/images/lang/ar/icon_edit.gif
deleted file mode 100644
index 65937c5fc..000000000
Binary files a/styles/templates/default/images/lang/ar/icon_edit.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ar/icon_email.gif b/styles/templates/default/images/lang/ar/icon_email.gif
deleted file mode 100644
index 67137b802..000000000
Binary files a/styles/templates/default/images/lang/ar/icon_email.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ar/icon_icq_add.gif b/styles/templates/default/images/lang/ar/icon_icq_add.gif
deleted file mode 100644
index c0c5cd552..000000000
Binary files a/styles/templates/default/images/lang/ar/icon_icq_add.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ar/icon_ip.gif b/styles/templates/default/images/lang/ar/icon_ip.gif
deleted file mode 100644
index 5822a929a..000000000
Binary files a/styles/templates/default/images/lang/ar/icon_ip.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ar/icon_mc.gif b/styles/templates/default/images/lang/ar/icon_mc.gif
deleted file mode 100644
index 1db8e37f5..000000000
Binary files a/styles/templates/default/images/lang/ar/icon_mc.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ar/icon_pm.gif b/styles/templates/default/images/lang/ar/icon_pm.gif
deleted file mode 100644
index 432075c59..000000000
Binary files a/styles/templates/default/images/lang/ar/icon_pm.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ar/icon_poll.gif b/styles/templates/default/images/lang/ar/icon_poll.gif
deleted file mode 100644
index 73a29852d..000000000
Binary files a/styles/templates/default/images/lang/ar/icon_poll.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ar/icon_profile.gif b/styles/templates/default/images/lang/ar/icon_profile.gif
deleted file mode 100644
index abac5dd87..000000000
Binary files a/styles/templates/default/images/lang/ar/icon_profile.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ar/icon_quote.gif b/styles/templates/default/images/lang/ar/icon_quote.gif
deleted file mode 100644
index 9497b2c57..000000000
Binary files a/styles/templates/default/images/lang/ar/icon_quote.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ar/icon_search.gif b/styles/templates/default/images/lang/ar/icon_search.gif
deleted file mode 100644
index 5d9c01713..000000000
Binary files a/styles/templates/default/images/lang/ar/icon_search.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ar/icon_www.gif b/styles/templates/default/images/lang/ar/icon_www.gif
deleted file mode 100644
index 3da9e0e8c..000000000
Binary files a/styles/templates/default/images/lang/ar/icon_www.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ar/msg_newpost.gif b/styles/templates/default/images/lang/ar/msg_newpost.gif
deleted file mode 100644
index 33a1e1c72..000000000
Binary files a/styles/templates/default/images/lang/ar/msg_newpost.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ar/post.gif b/styles/templates/default/images/lang/ar/post.gif
deleted file mode 100644
index 9d53572cd..000000000
Binary files a/styles/templates/default/images/lang/ar/post.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ar/release.gif b/styles/templates/default/images/lang/ar/release.gif
deleted file mode 100644
index 25440636e..000000000
Binary files a/styles/templates/default/images/lang/ar/release.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ar/reply-locked.gif b/styles/templates/default/images/lang/ar/reply-locked.gif
deleted file mode 100644
index edfd75a87..000000000
Binary files a/styles/templates/default/images/lang/ar/reply-locked.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ar/reply.gif b/styles/templates/default/images/lang/ar/reply.gif
deleted file mode 100644
index f18c08923..000000000
Binary files a/styles/templates/default/images/lang/ar/reply.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/az/icon_code.gif b/styles/templates/default/images/lang/az/icon_code.gif
deleted file mode 100644
index 5afd6e2c7..000000000
Binary files a/styles/templates/default/images/lang/az/icon_code.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/az/icon_edit.gif b/styles/templates/default/images/lang/az/icon_edit.gif
deleted file mode 100644
index 65937c5fc..000000000
Binary files a/styles/templates/default/images/lang/az/icon_edit.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/az/icon_email.gif b/styles/templates/default/images/lang/az/icon_email.gif
deleted file mode 100644
index 67137b802..000000000
Binary files a/styles/templates/default/images/lang/az/icon_email.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/az/icon_icq_add.gif b/styles/templates/default/images/lang/az/icon_icq_add.gif
deleted file mode 100644
index c0c5cd552..000000000
Binary files a/styles/templates/default/images/lang/az/icon_icq_add.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/az/icon_ip.gif b/styles/templates/default/images/lang/az/icon_ip.gif
deleted file mode 100644
index 5822a929a..000000000
Binary files a/styles/templates/default/images/lang/az/icon_ip.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/az/icon_mc.gif b/styles/templates/default/images/lang/az/icon_mc.gif
deleted file mode 100644
index 1db8e37f5..000000000
Binary files a/styles/templates/default/images/lang/az/icon_mc.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/az/icon_pm.gif b/styles/templates/default/images/lang/az/icon_pm.gif
deleted file mode 100644
index 432075c59..000000000
Binary files a/styles/templates/default/images/lang/az/icon_pm.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/az/icon_poll.gif b/styles/templates/default/images/lang/az/icon_poll.gif
deleted file mode 100644
index 73a29852d..000000000
Binary files a/styles/templates/default/images/lang/az/icon_poll.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/az/icon_profile.gif b/styles/templates/default/images/lang/az/icon_profile.gif
deleted file mode 100644
index abac5dd87..000000000
Binary files a/styles/templates/default/images/lang/az/icon_profile.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/az/icon_quote.gif b/styles/templates/default/images/lang/az/icon_quote.gif
deleted file mode 100644
index 9497b2c57..000000000
Binary files a/styles/templates/default/images/lang/az/icon_quote.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/az/icon_search.gif b/styles/templates/default/images/lang/az/icon_search.gif
deleted file mode 100644
index 5d9c01713..000000000
Binary files a/styles/templates/default/images/lang/az/icon_search.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/az/icon_www.gif b/styles/templates/default/images/lang/az/icon_www.gif
deleted file mode 100644
index 3da9e0e8c..000000000
Binary files a/styles/templates/default/images/lang/az/icon_www.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/az/msg_newpost.gif b/styles/templates/default/images/lang/az/msg_newpost.gif
deleted file mode 100644
index 33a1e1c72..000000000
Binary files a/styles/templates/default/images/lang/az/msg_newpost.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/az/post.gif b/styles/templates/default/images/lang/az/post.gif
deleted file mode 100644
index 9d53572cd..000000000
Binary files a/styles/templates/default/images/lang/az/post.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/az/release.gif b/styles/templates/default/images/lang/az/release.gif
deleted file mode 100644
index 25440636e..000000000
Binary files a/styles/templates/default/images/lang/az/release.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/az/reply-locked.gif b/styles/templates/default/images/lang/az/reply-locked.gif
deleted file mode 100644
index edfd75a87..000000000
Binary files a/styles/templates/default/images/lang/az/reply-locked.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/az/reply.gif b/styles/templates/default/images/lang/az/reply.gif
deleted file mode 100644
index f18c08923..000000000
Binary files a/styles/templates/default/images/lang/az/reply.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/be/icon_code.gif b/styles/templates/default/images/lang/be/icon_code.gif
deleted file mode 100644
index 5afd6e2c7..000000000
Binary files a/styles/templates/default/images/lang/be/icon_code.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/be/icon_edit.gif b/styles/templates/default/images/lang/be/icon_edit.gif
deleted file mode 100644
index 65937c5fc..000000000
Binary files a/styles/templates/default/images/lang/be/icon_edit.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/be/icon_email.gif b/styles/templates/default/images/lang/be/icon_email.gif
deleted file mode 100644
index 67137b802..000000000
Binary files a/styles/templates/default/images/lang/be/icon_email.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/be/icon_icq_add.gif b/styles/templates/default/images/lang/be/icon_icq_add.gif
deleted file mode 100644
index c0c5cd552..000000000
Binary files a/styles/templates/default/images/lang/be/icon_icq_add.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/be/icon_ip.gif b/styles/templates/default/images/lang/be/icon_ip.gif
deleted file mode 100644
index 5822a929a..000000000
Binary files a/styles/templates/default/images/lang/be/icon_ip.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/be/icon_mc.gif b/styles/templates/default/images/lang/be/icon_mc.gif
deleted file mode 100644
index 1db8e37f5..000000000
Binary files a/styles/templates/default/images/lang/be/icon_mc.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/be/icon_pm.gif b/styles/templates/default/images/lang/be/icon_pm.gif
deleted file mode 100644
index 432075c59..000000000
Binary files a/styles/templates/default/images/lang/be/icon_pm.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/be/icon_poll.gif b/styles/templates/default/images/lang/be/icon_poll.gif
deleted file mode 100644
index 73a29852d..000000000
Binary files a/styles/templates/default/images/lang/be/icon_poll.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/be/icon_profile.gif b/styles/templates/default/images/lang/be/icon_profile.gif
deleted file mode 100644
index abac5dd87..000000000
Binary files a/styles/templates/default/images/lang/be/icon_profile.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/be/icon_quote.gif b/styles/templates/default/images/lang/be/icon_quote.gif
deleted file mode 100644
index 9497b2c57..000000000
Binary files a/styles/templates/default/images/lang/be/icon_quote.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/be/icon_search.gif b/styles/templates/default/images/lang/be/icon_search.gif
deleted file mode 100644
index 5d9c01713..000000000
Binary files a/styles/templates/default/images/lang/be/icon_search.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/be/icon_www.gif b/styles/templates/default/images/lang/be/icon_www.gif
deleted file mode 100644
index 3da9e0e8c..000000000
Binary files a/styles/templates/default/images/lang/be/icon_www.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/be/msg_newpost.gif b/styles/templates/default/images/lang/be/msg_newpost.gif
deleted file mode 100644
index 33a1e1c72..000000000
Binary files a/styles/templates/default/images/lang/be/msg_newpost.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/be/post.gif b/styles/templates/default/images/lang/be/post.gif
deleted file mode 100644
index 9d53572cd..000000000
Binary files a/styles/templates/default/images/lang/be/post.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/be/release.gif b/styles/templates/default/images/lang/be/release.gif
deleted file mode 100644
index 25440636e..000000000
Binary files a/styles/templates/default/images/lang/be/release.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/be/reply-locked.gif b/styles/templates/default/images/lang/be/reply-locked.gif
deleted file mode 100644
index edfd75a87..000000000
Binary files a/styles/templates/default/images/lang/be/reply-locked.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/be/reply.gif b/styles/templates/default/images/lang/be/reply.gif
deleted file mode 100644
index f18c08923..000000000
Binary files a/styles/templates/default/images/lang/be/reply.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/bg/icon_code.gif b/styles/templates/default/images/lang/bg/icon_code.gif
deleted file mode 100644
index 5afd6e2c7..000000000
Binary files a/styles/templates/default/images/lang/bg/icon_code.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/bg/icon_edit.gif b/styles/templates/default/images/lang/bg/icon_edit.gif
deleted file mode 100644
index 65937c5fc..000000000
Binary files a/styles/templates/default/images/lang/bg/icon_edit.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/bg/icon_email.gif b/styles/templates/default/images/lang/bg/icon_email.gif
deleted file mode 100644
index 67137b802..000000000
Binary files a/styles/templates/default/images/lang/bg/icon_email.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/bg/icon_icq_add.gif b/styles/templates/default/images/lang/bg/icon_icq_add.gif
deleted file mode 100644
index c0c5cd552..000000000
Binary files a/styles/templates/default/images/lang/bg/icon_icq_add.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/bg/icon_ip.gif b/styles/templates/default/images/lang/bg/icon_ip.gif
deleted file mode 100644
index 5822a929a..000000000
Binary files a/styles/templates/default/images/lang/bg/icon_ip.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/bg/icon_mc.gif b/styles/templates/default/images/lang/bg/icon_mc.gif
deleted file mode 100644
index 1db8e37f5..000000000
Binary files a/styles/templates/default/images/lang/bg/icon_mc.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/bg/icon_pm.gif b/styles/templates/default/images/lang/bg/icon_pm.gif
deleted file mode 100644
index 432075c59..000000000
Binary files a/styles/templates/default/images/lang/bg/icon_pm.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/bg/icon_poll.gif b/styles/templates/default/images/lang/bg/icon_poll.gif
deleted file mode 100644
index 73a29852d..000000000
Binary files a/styles/templates/default/images/lang/bg/icon_poll.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/bg/icon_profile.gif b/styles/templates/default/images/lang/bg/icon_profile.gif
deleted file mode 100644
index abac5dd87..000000000
Binary files a/styles/templates/default/images/lang/bg/icon_profile.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/bg/icon_quote.gif b/styles/templates/default/images/lang/bg/icon_quote.gif
deleted file mode 100644
index 9497b2c57..000000000
Binary files a/styles/templates/default/images/lang/bg/icon_quote.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/bg/icon_search.gif b/styles/templates/default/images/lang/bg/icon_search.gif
deleted file mode 100644
index 5d9c01713..000000000
Binary files a/styles/templates/default/images/lang/bg/icon_search.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/bg/icon_www.gif b/styles/templates/default/images/lang/bg/icon_www.gif
deleted file mode 100644
index 3da9e0e8c..000000000
Binary files a/styles/templates/default/images/lang/bg/icon_www.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/bg/msg_newpost.gif b/styles/templates/default/images/lang/bg/msg_newpost.gif
deleted file mode 100644
index 33a1e1c72..000000000
Binary files a/styles/templates/default/images/lang/bg/msg_newpost.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/bg/post.gif b/styles/templates/default/images/lang/bg/post.gif
deleted file mode 100644
index 9d53572cd..000000000
Binary files a/styles/templates/default/images/lang/bg/post.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/bg/release.gif b/styles/templates/default/images/lang/bg/release.gif
deleted file mode 100644
index 25440636e..000000000
Binary files a/styles/templates/default/images/lang/bg/release.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/bg/reply-locked.gif b/styles/templates/default/images/lang/bg/reply-locked.gif
deleted file mode 100644
index edfd75a87..000000000
Binary files a/styles/templates/default/images/lang/bg/reply-locked.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/bg/reply.gif b/styles/templates/default/images/lang/bg/reply.gif
deleted file mode 100644
index f18c08923..000000000
Binary files a/styles/templates/default/images/lang/bg/reply.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/bs/icon_code.gif b/styles/templates/default/images/lang/bs/icon_code.gif
deleted file mode 100644
index 5afd6e2c7..000000000
Binary files a/styles/templates/default/images/lang/bs/icon_code.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/bs/icon_edit.gif b/styles/templates/default/images/lang/bs/icon_edit.gif
deleted file mode 100644
index 65937c5fc..000000000
Binary files a/styles/templates/default/images/lang/bs/icon_edit.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/bs/icon_email.gif b/styles/templates/default/images/lang/bs/icon_email.gif
deleted file mode 100644
index 67137b802..000000000
Binary files a/styles/templates/default/images/lang/bs/icon_email.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/bs/icon_icq_add.gif b/styles/templates/default/images/lang/bs/icon_icq_add.gif
deleted file mode 100644
index c0c5cd552..000000000
Binary files a/styles/templates/default/images/lang/bs/icon_icq_add.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/bs/icon_ip.gif b/styles/templates/default/images/lang/bs/icon_ip.gif
deleted file mode 100644
index 5822a929a..000000000
Binary files a/styles/templates/default/images/lang/bs/icon_ip.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/bs/icon_mc.gif b/styles/templates/default/images/lang/bs/icon_mc.gif
deleted file mode 100644
index 1db8e37f5..000000000
Binary files a/styles/templates/default/images/lang/bs/icon_mc.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/bs/icon_pm.gif b/styles/templates/default/images/lang/bs/icon_pm.gif
deleted file mode 100644
index 432075c59..000000000
Binary files a/styles/templates/default/images/lang/bs/icon_pm.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/bs/icon_poll.gif b/styles/templates/default/images/lang/bs/icon_poll.gif
deleted file mode 100644
index 73a29852d..000000000
Binary files a/styles/templates/default/images/lang/bs/icon_poll.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/bs/icon_profile.gif b/styles/templates/default/images/lang/bs/icon_profile.gif
deleted file mode 100644
index abac5dd87..000000000
Binary files a/styles/templates/default/images/lang/bs/icon_profile.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/bs/icon_quote.gif b/styles/templates/default/images/lang/bs/icon_quote.gif
deleted file mode 100644
index 9497b2c57..000000000
Binary files a/styles/templates/default/images/lang/bs/icon_quote.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/bs/icon_search.gif b/styles/templates/default/images/lang/bs/icon_search.gif
deleted file mode 100644
index 5d9c01713..000000000
Binary files a/styles/templates/default/images/lang/bs/icon_search.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/bs/icon_www.gif b/styles/templates/default/images/lang/bs/icon_www.gif
deleted file mode 100644
index 3da9e0e8c..000000000
Binary files a/styles/templates/default/images/lang/bs/icon_www.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/bs/msg_newpost.gif b/styles/templates/default/images/lang/bs/msg_newpost.gif
deleted file mode 100644
index 33a1e1c72..000000000
Binary files a/styles/templates/default/images/lang/bs/msg_newpost.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/bs/post.gif b/styles/templates/default/images/lang/bs/post.gif
deleted file mode 100644
index 9d53572cd..000000000
Binary files a/styles/templates/default/images/lang/bs/post.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/bs/release.gif b/styles/templates/default/images/lang/bs/release.gif
deleted file mode 100644
index 25440636e..000000000
Binary files a/styles/templates/default/images/lang/bs/release.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/bs/reply-locked.gif b/styles/templates/default/images/lang/bs/reply-locked.gif
deleted file mode 100644
index edfd75a87..000000000
Binary files a/styles/templates/default/images/lang/bs/reply-locked.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/bs/reply.gif b/styles/templates/default/images/lang/bs/reply.gif
deleted file mode 100644
index f18c08923..000000000
Binary files a/styles/templates/default/images/lang/bs/reply.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ca/icon_code.gif b/styles/templates/default/images/lang/ca/icon_code.gif
deleted file mode 100644
index 5afd6e2c7..000000000
Binary files a/styles/templates/default/images/lang/ca/icon_code.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ca/icon_edit.gif b/styles/templates/default/images/lang/ca/icon_edit.gif
deleted file mode 100644
index 65937c5fc..000000000
Binary files a/styles/templates/default/images/lang/ca/icon_edit.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ca/icon_email.gif b/styles/templates/default/images/lang/ca/icon_email.gif
deleted file mode 100644
index 67137b802..000000000
Binary files a/styles/templates/default/images/lang/ca/icon_email.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ca/icon_icq_add.gif b/styles/templates/default/images/lang/ca/icon_icq_add.gif
deleted file mode 100644
index c0c5cd552..000000000
Binary files a/styles/templates/default/images/lang/ca/icon_icq_add.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ca/icon_ip.gif b/styles/templates/default/images/lang/ca/icon_ip.gif
deleted file mode 100644
index 5822a929a..000000000
Binary files a/styles/templates/default/images/lang/ca/icon_ip.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ca/icon_mc.gif b/styles/templates/default/images/lang/ca/icon_mc.gif
deleted file mode 100644
index 1db8e37f5..000000000
Binary files a/styles/templates/default/images/lang/ca/icon_mc.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ca/icon_pm.gif b/styles/templates/default/images/lang/ca/icon_pm.gif
deleted file mode 100644
index 432075c59..000000000
Binary files a/styles/templates/default/images/lang/ca/icon_pm.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ca/icon_poll.gif b/styles/templates/default/images/lang/ca/icon_poll.gif
deleted file mode 100644
index 73a29852d..000000000
Binary files a/styles/templates/default/images/lang/ca/icon_poll.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ca/icon_profile.gif b/styles/templates/default/images/lang/ca/icon_profile.gif
deleted file mode 100644
index abac5dd87..000000000
Binary files a/styles/templates/default/images/lang/ca/icon_profile.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ca/icon_quote.gif b/styles/templates/default/images/lang/ca/icon_quote.gif
deleted file mode 100644
index 9497b2c57..000000000
Binary files a/styles/templates/default/images/lang/ca/icon_quote.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ca/icon_search.gif b/styles/templates/default/images/lang/ca/icon_search.gif
deleted file mode 100644
index 5d9c01713..000000000
Binary files a/styles/templates/default/images/lang/ca/icon_search.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ca/icon_www.gif b/styles/templates/default/images/lang/ca/icon_www.gif
deleted file mode 100644
index 3da9e0e8c..000000000
Binary files a/styles/templates/default/images/lang/ca/icon_www.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ca/msg_newpost.gif b/styles/templates/default/images/lang/ca/msg_newpost.gif
deleted file mode 100644
index 33a1e1c72..000000000
Binary files a/styles/templates/default/images/lang/ca/msg_newpost.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ca/post.gif b/styles/templates/default/images/lang/ca/post.gif
deleted file mode 100644
index 9d53572cd..000000000
Binary files a/styles/templates/default/images/lang/ca/post.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ca/release.gif b/styles/templates/default/images/lang/ca/release.gif
deleted file mode 100644
index 25440636e..000000000
Binary files a/styles/templates/default/images/lang/ca/release.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ca/reply-locked.gif b/styles/templates/default/images/lang/ca/reply-locked.gif
deleted file mode 100644
index edfd75a87..000000000
Binary files a/styles/templates/default/images/lang/ca/reply-locked.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ca/reply.gif b/styles/templates/default/images/lang/ca/reply.gif
deleted file mode 100644
index f18c08923..000000000
Binary files a/styles/templates/default/images/lang/ca/reply.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/cs/icon_code.gif b/styles/templates/default/images/lang/cs/icon_code.gif
deleted file mode 100644
index 5afd6e2c7..000000000
Binary files a/styles/templates/default/images/lang/cs/icon_code.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/cs/icon_edit.gif b/styles/templates/default/images/lang/cs/icon_edit.gif
deleted file mode 100644
index 65937c5fc..000000000
Binary files a/styles/templates/default/images/lang/cs/icon_edit.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/cs/icon_email.gif b/styles/templates/default/images/lang/cs/icon_email.gif
deleted file mode 100644
index 67137b802..000000000
Binary files a/styles/templates/default/images/lang/cs/icon_email.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/cs/icon_icq_add.gif b/styles/templates/default/images/lang/cs/icon_icq_add.gif
deleted file mode 100644
index c0c5cd552..000000000
Binary files a/styles/templates/default/images/lang/cs/icon_icq_add.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/cs/icon_ip.gif b/styles/templates/default/images/lang/cs/icon_ip.gif
deleted file mode 100644
index 5822a929a..000000000
Binary files a/styles/templates/default/images/lang/cs/icon_ip.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/cs/icon_mc.gif b/styles/templates/default/images/lang/cs/icon_mc.gif
deleted file mode 100644
index 1db8e37f5..000000000
Binary files a/styles/templates/default/images/lang/cs/icon_mc.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/cs/icon_pm.gif b/styles/templates/default/images/lang/cs/icon_pm.gif
deleted file mode 100644
index 432075c59..000000000
Binary files a/styles/templates/default/images/lang/cs/icon_pm.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/cs/icon_poll.gif b/styles/templates/default/images/lang/cs/icon_poll.gif
deleted file mode 100644
index 73a29852d..000000000
Binary files a/styles/templates/default/images/lang/cs/icon_poll.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/cs/icon_profile.gif b/styles/templates/default/images/lang/cs/icon_profile.gif
deleted file mode 100644
index abac5dd87..000000000
Binary files a/styles/templates/default/images/lang/cs/icon_profile.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/cs/icon_quote.gif b/styles/templates/default/images/lang/cs/icon_quote.gif
deleted file mode 100644
index 9497b2c57..000000000
Binary files a/styles/templates/default/images/lang/cs/icon_quote.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/cs/icon_search.gif b/styles/templates/default/images/lang/cs/icon_search.gif
deleted file mode 100644
index 5d9c01713..000000000
Binary files a/styles/templates/default/images/lang/cs/icon_search.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/cs/icon_www.gif b/styles/templates/default/images/lang/cs/icon_www.gif
deleted file mode 100644
index 3da9e0e8c..000000000
Binary files a/styles/templates/default/images/lang/cs/icon_www.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/cs/msg_newpost.gif b/styles/templates/default/images/lang/cs/msg_newpost.gif
deleted file mode 100644
index 33a1e1c72..000000000
Binary files a/styles/templates/default/images/lang/cs/msg_newpost.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/cs/post.gif b/styles/templates/default/images/lang/cs/post.gif
deleted file mode 100644
index 9d53572cd..000000000
Binary files a/styles/templates/default/images/lang/cs/post.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/cs/release.gif b/styles/templates/default/images/lang/cs/release.gif
deleted file mode 100644
index 25440636e..000000000
Binary files a/styles/templates/default/images/lang/cs/release.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/cs/reply-locked.gif b/styles/templates/default/images/lang/cs/reply-locked.gif
deleted file mode 100644
index edfd75a87..000000000
Binary files a/styles/templates/default/images/lang/cs/reply-locked.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/cs/reply.gif b/styles/templates/default/images/lang/cs/reply.gif
deleted file mode 100644
index f18c08923..000000000
Binary files a/styles/templates/default/images/lang/cs/reply.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/da/icon_code.gif b/styles/templates/default/images/lang/da/icon_code.gif
deleted file mode 100644
index 5afd6e2c7..000000000
Binary files a/styles/templates/default/images/lang/da/icon_code.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/da/icon_edit.gif b/styles/templates/default/images/lang/da/icon_edit.gif
deleted file mode 100644
index 65937c5fc..000000000
Binary files a/styles/templates/default/images/lang/da/icon_edit.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/da/icon_email.gif b/styles/templates/default/images/lang/da/icon_email.gif
deleted file mode 100644
index 67137b802..000000000
Binary files a/styles/templates/default/images/lang/da/icon_email.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/da/icon_icq_add.gif b/styles/templates/default/images/lang/da/icon_icq_add.gif
deleted file mode 100644
index c0c5cd552..000000000
Binary files a/styles/templates/default/images/lang/da/icon_icq_add.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/da/icon_ip.gif b/styles/templates/default/images/lang/da/icon_ip.gif
deleted file mode 100644
index 5822a929a..000000000
Binary files a/styles/templates/default/images/lang/da/icon_ip.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/da/icon_mc.gif b/styles/templates/default/images/lang/da/icon_mc.gif
deleted file mode 100644
index 1db8e37f5..000000000
Binary files a/styles/templates/default/images/lang/da/icon_mc.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/da/icon_pm.gif b/styles/templates/default/images/lang/da/icon_pm.gif
deleted file mode 100644
index 432075c59..000000000
Binary files a/styles/templates/default/images/lang/da/icon_pm.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/da/icon_poll.gif b/styles/templates/default/images/lang/da/icon_poll.gif
deleted file mode 100644
index 73a29852d..000000000
Binary files a/styles/templates/default/images/lang/da/icon_poll.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/da/icon_profile.gif b/styles/templates/default/images/lang/da/icon_profile.gif
deleted file mode 100644
index abac5dd87..000000000
Binary files a/styles/templates/default/images/lang/da/icon_profile.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/da/icon_quote.gif b/styles/templates/default/images/lang/da/icon_quote.gif
deleted file mode 100644
index 9497b2c57..000000000
Binary files a/styles/templates/default/images/lang/da/icon_quote.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/da/icon_search.gif b/styles/templates/default/images/lang/da/icon_search.gif
deleted file mode 100644
index 5d9c01713..000000000
Binary files a/styles/templates/default/images/lang/da/icon_search.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/da/icon_www.gif b/styles/templates/default/images/lang/da/icon_www.gif
deleted file mode 100644
index 3da9e0e8c..000000000
Binary files a/styles/templates/default/images/lang/da/icon_www.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/da/msg_newpost.gif b/styles/templates/default/images/lang/da/msg_newpost.gif
deleted file mode 100644
index 33a1e1c72..000000000
Binary files a/styles/templates/default/images/lang/da/msg_newpost.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/da/post.gif b/styles/templates/default/images/lang/da/post.gif
deleted file mode 100644
index 9d53572cd..000000000
Binary files a/styles/templates/default/images/lang/da/post.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/da/release.gif b/styles/templates/default/images/lang/da/release.gif
deleted file mode 100644
index 25440636e..000000000
Binary files a/styles/templates/default/images/lang/da/release.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/da/reply-locked.gif b/styles/templates/default/images/lang/da/reply-locked.gif
deleted file mode 100644
index edfd75a87..000000000
Binary files a/styles/templates/default/images/lang/da/reply-locked.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/da/reply.gif b/styles/templates/default/images/lang/da/reply.gif
deleted file mode 100644
index f18c08923..000000000
Binary files a/styles/templates/default/images/lang/da/reply.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/de/icon_code.gif b/styles/templates/default/images/lang/de/icon_code.gif
deleted file mode 100644
index 5afd6e2c7..000000000
Binary files a/styles/templates/default/images/lang/de/icon_code.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/de/icon_edit.gif b/styles/templates/default/images/lang/de/icon_edit.gif
deleted file mode 100644
index 65937c5fc..000000000
Binary files a/styles/templates/default/images/lang/de/icon_edit.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/de/icon_email.gif b/styles/templates/default/images/lang/de/icon_email.gif
deleted file mode 100644
index 67137b802..000000000
Binary files a/styles/templates/default/images/lang/de/icon_email.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/de/icon_icq_add.gif b/styles/templates/default/images/lang/de/icon_icq_add.gif
deleted file mode 100644
index c0c5cd552..000000000
Binary files a/styles/templates/default/images/lang/de/icon_icq_add.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/de/icon_ip.gif b/styles/templates/default/images/lang/de/icon_ip.gif
deleted file mode 100644
index 5822a929a..000000000
Binary files a/styles/templates/default/images/lang/de/icon_ip.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/de/icon_mc.gif b/styles/templates/default/images/lang/de/icon_mc.gif
deleted file mode 100644
index 1db8e37f5..000000000
Binary files a/styles/templates/default/images/lang/de/icon_mc.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/de/icon_pm.gif b/styles/templates/default/images/lang/de/icon_pm.gif
deleted file mode 100644
index 432075c59..000000000
Binary files a/styles/templates/default/images/lang/de/icon_pm.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/de/icon_poll.gif b/styles/templates/default/images/lang/de/icon_poll.gif
deleted file mode 100644
index 73a29852d..000000000
Binary files a/styles/templates/default/images/lang/de/icon_poll.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/de/icon_profile.gif b/styles/templates/default/images/lang/de/icon_profile.gif
deleted file mode 100644
index abac5dd87..000000000
Binary files a/styles/templates/default/images/lang/de/icon_profile.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/de/icon_quote.gif b/styles/templates/default/images/lang/de/icon_quote.gif
deleted file mode 100644
index 9497b2c57..000000000
Binary files a/styles/templates/default/images/lang/de/icon_quote.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/de/icon_search.gif b/styles/templates/default/images/lang/de/icon_search.gif
deleted file mode 100644
index 5d9c01713..000000000
Binary files a/styles/templates/default/images/lang/de/icon_search.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/de/icon_www.gif b/styles/templates/default/images/lang/de/icon_www.gif
deleted file mode 100644
index 3da9e0e8c..000000000
Binary files a/styles/templates/default/images/lang/de/icon_www.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/de/msg_newpost.gif b/styles/templates/default/images/lang/de/msg_newpost.gif
deleted file mode 100644
index 33a1e1c72..000000000
Binary files a/styles/templates/default/images/lang/de/msg_newpost.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/de/post.gif b/styles/templates/default/images/lang/de/post.gif
deleted file mode 100644
index 9d53572cd..000000000
Binary files a/styles/templates/default/images/lang/de/post.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/de/release.gif b/styles/templates/default/images/lang/de/release.gif
deleted file mode 100644
index 25440636e..000000000
Binary files a/styles/templates/default/images/lang/de/release.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/de/reply-locked.gif b/styles/templates/default/images/lang/de/reply-locked.gif
deleted file mode 100644
index edfd75a87..000000000
Binary files a/styles/templates/default/images/lang/de/reply-locked.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/de/reply.gif b/styles/templates/default/images/lang/de/reply.gif
deleted file mode 100644
index f18c08923..000000000
Binary files a/styles/templates/default/images/lang/de/reply.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/el/icon_code.gif b/styles/templates/default/images/lang/el/icon_code.gif
deleted file mode 100644
index 5afd6e2c7..000000000
Binary files a/styles/templates/default/images/lang/el/icon_code.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/el/icon_edit.gif b/styles/templates/default/images/lang/el/icon_edit.gif
deleted file mode 100644
index 65937c5fc..000000000
Binary files a/styles/templates/default/images/lang/el/icon_edit.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/el/icon_email.gif b/styles/templates/default/images/lang/el/icon_email.gif
deleted file mode 100644
index 67137b802..000000000
Binary files a/styles/templates/default/images/lang/el/icon_email.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/el/icon_icq_add.gif b/styles/templates/default/images/lang/el/icon_icq_add.gif
deleted file mode 100644
index c0c5cd552..000000000
Binary files a/styles/templates/default/images/lang/el/icon_icq_add.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/el/icon_ip.gif b/styles/templates/default/images/lang/el/icon_ip.gif
deleted file mode 100644
index 5822a929a..000000000
Binary files a/styles/templates/default/images/lang/el/icon_ip.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/el/icon_mc.gif b/styles/templates/default/images/lang/el/icon_mc.gif
deleted file mode 100644
index 1db8e37f5..000000000
Binary files a/styles/templates/default/images/lang/el/icon_mc.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/el/icon_pm.gif b/styles/templates/default/images/lang/el/icon_pm.gif
deleted file mode 100644
index 432075c59..000000000
Binary files a/styles/templates/default/images/lang/el/icon_pm.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/el/icon_poll.gif b/styles/templates/default/images/lang/el/icon_poll.gif
deleted file mode 100644
index 73a29852d..000000000
Binary files a/styles/templates/default/images/lang/el/icon_poll.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/el/icon_profile.gif b/styles/templates/default/images/lang/el/icon_profile.gif
deleted file mode 100644
index abac5dd87..000000000
Binary files a/styles/templates/default/images/lang/el/icon_profile.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/el/icon_quote.gif b/styles/templates/default/images/lang/el/icon_quote.gif
deleted file mode 100644
index 9497b2c57..000000000
Binary files a/styles/templates/default/images/lang/el/icon_quote.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/el/icon_search.gif b/styles/templates/default/images/lang/el/icon_search.gif
deleted file mode 100644
index 5d9c01713..000000000
Binary files a/styles/templates/default/images/lang/el/icon_search.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/el/icon_www.gif b/styles/templates/default/images/lang/el/icon_www.gif
deleted file mode 100644
index 3da9e0e8c..000000000
Binary files a/styles/templates/default/images/lang/el/icon_www.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/el/msg_newpost.gif b/styles/templates/default/images/lang/el/msg_newpost.gif
deleted file mode 100644
index 33a1e1c72..000000000
Binary files a/styles/templates/default/images/lang/el/msg_newpost.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/el/post.gif b/styles/templates/default/images/lang/el/post.gif
deleted file mode 100644
index 9d53572cd..000000000
Binary files a/styles/templates/default/images/lang/el/post.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/el/release.gif b/styles/templates/default/images/lang/el/release.gif
deleted file mode 100644
index 25440636e..000000000
Binary files a/styles/templates/default/images/lang/el/release.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/el/reply-locked.gif b/styles/templates/default/images/lang/el/reply-locked.gif
deleted file mode 100644
index edfd75a87..000000000
Binary files a/styles/templates/default/images/lang/el/reply-locked.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/el/reply.gif b/styles/templates/default/images/lang/el/reply.gif
deleted file mode 100644
index f18c08923..000000000
Binary files a/styles/templates/default/images/lang/el/reply.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/en/icon_code.gif b/styles/templates/default/images/lang/en/icon_code.gif
deleted file mode 100644
index 5afd6e2c7..000000000
Binary files a/styles/templates/default/images/lang/en/icon_code.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/en/icon_edit.gif b/styles/templates/default/images/lang/en/icon_edit.gif
deleted file mode 100644
index 65937c5fc..000000000
Binary files a/styles/templates/default/images/lang/en/icon_edit.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/en/icon_email.gif b/styles/templates/default/images/lang/en/icon_email.gif
deleted file mode 100644
index 67137b802..000000000
Binary files a/styles/templates/default/images/lang/en/icon_email.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/en/icon_icq_add.gif b/styles/templates/default/images/lang/en/icon_icq_add.gif
deleted file mode 100644
index c0c5cd552..000000000
Binary files a/styles/templates/default/images/lang/en/icon_icq_add.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/en/icon_ip.gif b/styles/templates/default/images/lang/en/icon_ip.gif
deleted file mode 100644
index 5822a929a..000000000
Binary files a/styles/templates/default/images/lang/en/icon_ip.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/en/icon_mc.gif b/styles/templates/default/images/lang/en/icon_mc.gif
deleted file mode 100644
index 1db8e37f5..000000000
Binary files a/styles/templates/default/images/lang/en/icon_mc.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/en/icon_pm.gif b/styles/templates/default/images/lang/en/icon_pm.gif
deleted file mode 100644
index 432075c59..000000000
Binary files a/styles/templates/default/images/lang/en/icon_pm.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/en/icon_poll.gif b/styles/templates/default/images/lang/en/icon_poll.gif
deleted file mode 100644
index 73a29852d..000000000
Binary files a/styles/templates/default/images/lang/en/icon_poll.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/en/icon_profile.gif b/styles/templates/default/images/lang/en/icon_profile.gif
deleted file mode 100644
index abac5dd87..000000000
Binary files a/styles/templates/default/images/lang/en/icon_profile.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/en/icon_quote.gif b/styles/templates/default/images/lang/en/icon_quote.gif
deleted file mode 100644
index 9497b2c57..000000000
Binary files a/styles/templates/default/images/lang/en/icon_quote.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/en/icon_search.gif b/styles/templates/default/images/lang/en/icon_search.gif
deleted file mode 100644
index 5d9c01713..000000000
Binary files a/styles/templates/default/images/lang/en/icon_search.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/en/icon_www.gif b/styles/templates/default/images/lang/en/icon_www.gif
deleted file mode 100644
index 3da9e0e8c..000000000
Binary files a/styles/templates/default/images/lang/en/icon_www.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/en/msg_newpost.gif b/styles/templates/default/images/lang/en/msg_newpost.gif
deleted file mode 100644
index 33a1e1c72..000000000
Binary files a/styles/templates/default/images/lang/en/msg_newpost.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/en/post.gif b/styles/templates/default/images/lang/en/post.gif
deleted file mode 100644
index 9d53572cd..000000000
Binary files a/styles/templates/default/images/lang/en/post.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/en/release.gif b/styles/templates/default/images/lang/en/release.gif
deleted file mode 100644
index 25440636e..000000000
Binary files a/styles/templates/default/images/lang/en/release.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/en/reply-locked.gif b/styles/templates/default/images/lang/en/reply-locked.gif
deleted file mode 100644
index edfd75a87..000000000
Binary files a/styles/templates/default/images/lang/en/reply-locked.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/en/reply.gif b/styles/templates/default/images/lang/en/reply.gif
deleted file mode 100644
index f18c08923..000000000
Binary files a/styles/templates/default/images/lang/en/reply.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/es/icon_code.gif b/styles/templates/default/images/lang/es/icon_code.gif
deleted file mode 100644
index 5afd6e2c7..000000000
Binary files a/styles/templates/default/images/lang/es/icon_code.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/es/icon_edit.gif b/styles/templates/default/images/lang/es/icon_edit.gif
deleted file mode 100644
index 65937c5fc..000000000
Binary files a/styles/templates/default/images/lang/es/icon_edit.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/es/icon_email.gif b/styles/templates/default/images/lang/es/icon_email.gif
deleted file mode 100644
index 67137b802..000000000
Binary files a/styles/templates/default/images/lang/es/icon_email.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/es/icon_icq_add.gif b/styles/templates/default/images/lang/es/icon_icq_add.gif
deleted file mode 100644
index c0c5cd552..000000000
Binary files a/styles/templates/default/images/lang/es/icon_icq_add.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/es/icon_ip.gif b/styles/templates/default/images/lang/es/icon_ip.gif
deleted file mode 100644
index 5822a929a..000000000
Binary files a/styles/templates/default/images/lang/es/icon_ip.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/es/icon_mc.gif b/styles/templates/default/images/lang/es/icon_mc.gif
deleted file mode 100644
index 1db8e37f5..000000000
Binary files a/styles/templates/default/images/lang/es/icon_mc.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/es/icon_pm.gif b/styles/templates/default/images/lang/es/icon_pm.gif
deleted file mode 100644
index 432075c59..000000000
Binary files a/styles/templates/default/images/lang/es/icon_pm.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/es/icon_poll.gif b/styles/templates/default/images/lang/es/icon_poll.gif
deleted file mode 100644
index 73a29852d..000000000
Binary files a/styles/templates/default/images/lang/es/icon_poll.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/es/icon_profile.gif b/styles/templates/default/images/lang/es/icon_profile.gif
deleted file mode 100644
index abac5dd87..000000000
Binary files a/styles/templates/default/images/lang/es/icon_profile.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/es/icon_quote.gif b/styles/templates/default/images/lang/es/icon_quote.gif
deleted file mode 100644
index 9497b2c57..000000000
Binary files a/styles/templates/default/images/lang/es/icon_quote.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/es/icon_search.gif b/styles/templates/default/images/lang/es/icon_search.gif
deleted file mode 100644
index 5d9c01713..000000000
Binary files a/styles/templates/default/images/lang/es/icon_search.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/es/icon_www.gif b/styles/templates/default/images/lang/es/icon_www.gif
deleted file mode 100644
index 3da9e0e8c..000000000
Binary files a/styles/templates/default/images/lang/es/icon_www.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/es/msg_newpost.gif b/styles/templates/default/images/lang/es/msg_newpost.gif
deleted file mode 100644
index 33a1e1c72..000000000
Binary files a/styles/templates/default/images/lang/es/msg_newpost.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/es/post.gif b/styles/templates/default/images/lang/es/post.gif
deleted file mode 100644
index 9d53572cd..000000000
Binary files a/styles/templates/default/images/lang/es/post.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/es/release.gif b/styles/templates/default/images/lang/es/release.gif
deleted file mode 100644
index 25440636e..000000000
Binary files a/styles/templates/default/images/lang/es/release.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/es/reply-locked.gif b/styles/templates/default/images/lang/es/reply-locked.gif
deleted file mode 100644
index edfd75a87..000000000
Binary files a/styles/templates/default/images/lang/es/reply-locked.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/es/reply.gif b/styles/templates/default/images/lang/es/reply.gif
deleted file mode 100644
index f18c08923..000000000
Binary files a/styles/templates/default/images/lang/es/reply.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/et/icon_code.gif b/styles/templates/default/images/lang/et/icon_code.gif
deleted file mode 100644
index 5afd6e2c7..000000000
Binary files a/styles/templates/default/images/lang/et/icon_code.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/et/icon_edit.gif b/styles/templates/default/images/lang/et/icon_edit.gif
deleted file mode 100644
index 65937c5fc..000000000
Binary files a/styles/templates/default/images/lang/et/icon_edit.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/et/icon_email.gif b/styles/templates/default/images/lang/et/icon_email.gif
deleted file mode 100644
index 67137b802..000000000
Binary files a/styles/templates/default/images/lang/et/icon_email.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/et/icon_icq_add.gif b/styles/templates/default/images/lang/et/icon_icq_add.gif
deleted file mode 100644
index c0c5cd552..000000000
Binary files a/styles/templates/default/images/lang/et/icon_icq_add.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/et/icon_ip.gif b/styles/templates/default/images/lang/et/icon_ip.gif
deleted file mode 100644
index 5822a929a..000000000
Binary files a/styles/templates/default/images/lang/et/icon_ip.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/et/icon_mc.gif b/styles/templates/default/images/lang/et/icon_mc.gif
deleted file mode 100644
index 1db8e37f5..000000000
Binary files a/styles/templates/default/images/lang/et/icon_mc.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/et/icon_pm.gif b/styles/templates/default/images/lang/et/icon_pm.gif
deleted file mode 100644
index 432075c59..000000000
Binary files a/styles/templates/default/images/lang/et/icon_pm.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/et/icon_poll.gif b/styles/templates/default/images/lang/et/icon_poll.gif
deleted file mode 100644
index 73a29852d..000000000
Binary files a/styles/templates/default/images/lang/et/icon_poll.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/et/icon_profile.gif b/styles/templates/default/images/lang/et/icon_profile.gif
deleted file mode 100644
index abac5dd87..000000000
Binary files a/styles/templates/default/images/lang/et/icon_profile.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/et/icon_quote.gif b/styles/templates/default/images/lang/et/icon_quote.gif
deleted file mode 100644
index 9497b2c57..000000000
Binary files a/styles/templates/default/images/lang/et/icon_quote.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/et/icon_search.gif b/styles/templates/default/images/lang/et/icon_search.gif
deleted file mode 100644
index 5d9c01713..000000000
Binary files a/styles/templates/default/images/lang/et/icon_search.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/et/icon_www.gif b/styles/templates/default/images/lang/et/icon_www.gif
deleted file mode 100644
index 3da9e0e8c..000000000
Binary files a/styles/templates/default/images/lang/et/icon_www.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/et/msg_newpost.gif b/styles/templates/default/images/lang/et/msg_newpost.gif
deleted file mode 100644
index 33a1e1c72..000000000
Binary files a/styles/templates/default/images/lang/et/msg_newpost.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/et/post.gif b/styles/templates/default/images/lang/et/post.gif
deleted file mode 100644
index 9d53572cd..000000000
Binary files a/styles/templates/default/images/lang/et/post.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/et/release.gif b/styles/templates/default/images/lang/et/release.gif
deleted file mode 100644
index 25440636e..000000000
Binary files a/styles/templates/default/images/lang/et/release.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/et/reply-locked.gif b/styles/templates/default/images/lang/et/reply-locked.gif
deleted file mode 100644
index edfd75a87..000000000
Binary files a/styles/templates/default/images/lang/et/reply-locked.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/et/reply.gif b/styles/templates/default/images/lang/et/reply.gif
deleted file mode 100644
index f18c08923..000000000
Binary files a/styles/templates/default/images/lang/et/reply.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/fi/icon_code.gif b/styles/templates/default/images/lang/fi/icon_code.gif
deleted file mode 100644
index 5afd6e2c7..000000000
Binary files a/styles/templates/default/images/lang/fi/icon_code.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/fi/icon_edit.gif b/styles/templates/default/images/lang/fi/icon_edit.gif
deleted file mode 100644
index 65937c5fc..000000000
Binary files a/styles/templates/default/images/lang/fi/icon_edit.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/fi/icon_email.gif b/styles/templates/default/images/lang/fi/icon_email.gif
deleted file mode 100644
index 67137b802..000000000
Binary files a/styles/templates/default/images/lang/fi/icon_email.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/fi/icon_icq_add.gif b/styles/templates/default/images/lang/fi/icon_icq_add.gif
deleted file mode 100644
index c0c5cd552..000000000
Binary files a/styles/templates/default/images/lang/fi/icon_icq_add.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/fi/icon_ip.gif b/styles/templates/default/images/lang/fi/icon_ip.gif
deleted file mode 100644
index 5822a929a..000000000
Binary files a/styles/templates/default/images/lang/fi/icon_ip.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/fi/icon_mc.gif b/styles/templates/default/images/lang/fi/icon_mc.gif
deleted file mode 100644
index 1db8e37f5..000000000
Binary files a/styles/templates/default/images/lang/fi/icon_mc.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/fi/icon_pm.gif b/styles/templates/default/images/lang/fi/icon_pm.gif
deleted file mode 100644
index 432075c59..000000000
Binary files a/styles/templates/default/images/lang/fi/icon_pm.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/fi/icon_poll.gif b/styles/templates/default/images/lang/fi/icon_poll.gif
deleted file mode 100644
index 73a29852d..000000000
Binary files a/styles/templates/default/images/lang/fi/icon_poll.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/fi/icon_profile.gif b/styles/templates/default/images/lang/fi/icon_profile.gif
deleted file mode 100644
index abac5dd87..000000000
Binary files a/styles/templates/default/images/lang/fi/icon_profile.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/fi/icon_quote.gif b/styles/templates/default/images/lang/fi/icon_quote.gif
deleted file mode 100644
index 9497b2c57..000000000
Binary files a/styles/templates/default/images/lang/fi/icon_quote.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/fi/icon_search.gif b/styles/templates/default/images/lang/fi/icon_search.gif
deleted file mode 100644
index 5d9c01713..000000000
Binary files a/styles/templates/default/images/lang/fi/icon_search.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/fi/icon_www.gif b/styles/templates/default/images/lang/fi/icon_www.gif
deleted file mode 100644
index 3da9e0e8c..000000000
Binary files a/styles/templates/default/images/lang/fi/icon_www.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/fi/msg_newpost.gif b/styles/templates/default/images/lang/fi/msg_newpost.gif
deleted file mode 100644
index 33a1e1c72..000000000
Binary files a/styles/templates/default/images/lang/fi/msg_newpost.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/fi/post.gif b/styles/templates/default/images/lang/fi/post.gif
deleted file mode 100644
index 9d53572cd..000000000
Binary files a/styles/templates/default/images/lang/fi/post.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/fi/release.gif b/styles/templates/default/images/lang/fi/release.gif
deleted file mode 100644
index 25440636e..000000000
Binary files a/styles/templates/default/images/lang/fi/release.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/fi/reply-locked.gif b/styles/templates/default/images/lang/fi/reply-locked.gif
deleted file mode 100644
index edfd75a87..000000000
Binary files a/styles/templates/default/images/lang/fi/reply-locked.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/fi/reply.gif b/styles/templates/default/images/lang/fi/reply.gif
deleted file mode 100644
index f18c08923..000000000
Binary files a/styles/templates/default/images/lang/fi/reply.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/fr/icon_code.gif b/styles/templates/default/images/lang/fr/icon_code.gif
deleted file mode 100644
index 5afd6e2c7..000000000
Binary files a/styles/templates/default/images/lang/fr/icon_code.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/fr/icon_edit.gif b/styles/templates/default/images/lang/fr/icon_edit.gif
deleted file mode 100644
index 65937c5fc..000000000
Binary files a/styles/templates/default/images/lang/fr/icon_edit.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/fr/icon_email.gif b/styles/templates/default/images/lang/fr/icon_email.gif
deleted file mode 100644
index 67137b802..000000000
Binary files a/styles/templates/default/images/lang/fr/icon_email.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/fr/icon_icq_add.gif b/styles/templates/default/images/lang/fr/icon_icq_add.gif
deleted file mode 100644
index c0c5cd552..000000000
Binary files a/styles/templates/default/images/lang/fr/icon_icq_add.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/fr/icon_ip.gif b/styles/templates/default/images/lang/fr/icon_ip.gif
deleted file mode 100644
index 5822a929a..000000000
Binary files a/styles/templates/default/images/lang/fr/icon_ip.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/fr/icon_mc.gif b/styles/templates/default/images/lang/fr/icon_mc.gif
deleted file mode 100644
index 1db8e37f5..000000000
Binary files a/styles/templates/default/images/lang/fr/icon_mc.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/fr/icon_pm.gif b/styles/templates/default/images/lang/fr/icon_pm.gif
deleted file mode 100644
index 432075c59..000000000
Binary files a/styles/templates/default/images/lang/fr/icon_pm.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/fr/icon_poll.gif b/styles/templates/default/images/lang/fr/icon_poll.gif
deleted file mode 100644
index 73a29852d..000000000
Binary files a/styles/templates/default/images/lang/fr/icon_poll.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/fr/icon_profile.gif b/styles/templates/default/images/lang/fr/icon_profile.gif
deleted file mode 100644
index abac5dd87..000000000
Binary files a/styles/templates/default/images/lang/fr/icon_profile.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/fr/icon_quote.gif b/styles/templates/default/images/lang/fr/icon_quote.gif
deleted file mode 100644
index 9497b2c57..000000000
Binary files a/styles/templates/default/images/lang/fr/icon_quote.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/fr/icon_search.gif b/styles/templates/default/images/lang/fr/icon_search.gif
deleted file mode 100644
index 5d9c01713..000000000
Binary files a/styles/templates/default/images/lang/fr/icon_search.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/fr/icon_www.gif b/styles/templates/default/images/lang/fr/icon_www.gif
deleted file mode 100644
index 3da9e0e8c..000000000
Binary files a/styles/templates/default/images/lang/fr/icon_www.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/fr/msg_newpost.gif b/styles/templates/default/images/lang/fr/msg_newpost.gif
deleted file mode 100644
index 33a1e1c72..000000000
Binary files a/styles/templates/default/images/lang/fr/msg_newpost.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/fr/post.gif b/styles/templates/default/images/lang/fr/post.gif
deleted file mode 100644
index 9d53572cd..000000000
Binary files a/styles/templates/default/images/lang/fr/post.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/fr/release.gif b/styles/templates/default/images/lang/fr/release.gif
deleted file mode 100644
index 25440636e..000000000
Binary files a/styles/templates/default/images/lang/fr/release.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/fr/reply-locked.gif b/styles/templates/default/images/lang/fr/reply-locked.gif
deleted file mode 100644
index edfd75a87..000000000
Binary files a/styles/templates/default/images/lang/fr/reply-locked.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/fr/reply.gif b/styles/templates/default/images/lang/fr/reply.gif
deleted file mode 100644
index f18c08923..000000000
Binary files a/styles/templates/default/images/lang/fr/reply.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/he/icon_code.gif b/styles/templates/default/images/lang/he/icon_code.gif
deleted file mode 100644
index 5afd6e2c7..000000000
Binary files a/styles/templates/default/images/lang/he/icon_code.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/he/icon_edit.gif b/styles/templates/default/images/lang/he/icon_edit.gif
deleted file mode 100644
index 65937c5fc..000000000
Binary files a/styles/templates/default/images/lang/he/icon_edit.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/he/icon_email.gif b/styles/templates/default/images/lang/he/icon_email.gif
deleted file mode 100644
index 67137b802..000000000
Binary files a/styles/templates/default/images/lang/he/icon_email.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/he/icon_icq_add.gif b/styles/templates/default/images/lang/he/icon_icq_add.gif
deleted file mode 100644
index c0c5cd552..000000000
Binary files a/styles/templates/default/images/lang/he/icon_icq_add.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/he/icon_ip.gif b/styles/templates/default/images/lang/he/icon_ip.gif
deleted file mode 100644
index 5822a929a..000000000
Binary files a/styles/templates/default/images/lang/he/icon_ip.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/he/icon_mc.gif b/styles/templates/default/images/lang/he/icon_mc.gif
deleted file mode 100644
index 1db8e37f5..000000000
Binary files a/styles/templates/default/images/lang/he/icon_mc.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/he/icon_pm.gif b/styles/templates/default/images/lang/he/icon_pm.gif
deleted file mode 100644
index 432075c59..000000000
Binary files a/styles/templates/default/images/lang/he/icon_pm.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/he/icon_poll.gif b/styles/templates/default/images/lang/he/icon_poll.gif
deleted file mode 100644
index 73a29852d..000000000
Binary files a/styles/templates/default/images/lang/he/icon_poll.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/he/icon_profile.gif b/styles/templates/default/images/lang/he/icon_profile.gif
deleted file mode 100644
index abac5dd87..000000000
Binary files a/styles/templates/default/images/lang/he/icon_profile.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/he/icon_quote.gif b/styles/templates/default/images/lang/he/icon_quote.gif
deleted file mode 100644
index 9497b2c57..000000000
Binary files a/styles/templates/default/images/lang/he/icon_quote.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/he/icon_search.gif b/styles/templates/default/images/lang/he/icon_search.gif
deleted file mode 100644
index 5d9c01713..000000000
Binary files a/styles/templates/default/images/lang/he/icon_search.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/he/icon_www.gif b/styles/templates/default/images/lang/he/icon_www.gif
deleted file mode 100644
index 3da9e0e8c..000000000
Binary files a/styles/templates/default/images/lang/he/icon_www.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/he/msg_newpost.gif b/styles/templates/default/images/lang/he/msg_newpost.gif
deleted file mode 100644
index 33a1e1c72..000000000
Binary files a/styles/templates/default/images/lang/he/msg_newpost.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/he/post.gif b/styles/templates/default/images/lang/he/post.gif
deleted file mode 100644
index 9d53572cd..000000000
Binary files a/styles/templates/default/images/lang/he/post.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/he/release.gif b/styles/templates/default/images/lang/he/release.gif
deleted file mode 100644
index 25440636e..000000000
Binary files a/styles/templates/default/images/lang/he/release.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/he/reply-locked.gif b/styles/templates/default/images/lang/he/reply-locked.gif
deleted file mode 100644
index edfd75a87..000000000
Binary files a/styles/templates/default/images/lang/he/reply-locked.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/he/reply.gif b/styles/templates/default/images/lang/he/reply.gif
deleted file mode 100644
index f18c08923..000000000
Binary files a/styles/templates/default/images/lang/he/reply.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/hi/icon_code.gif b/styles/templates/default/images/lang/hi/icon_code.gif
deleted file mode 100644
index 5afd6e2c7..000000000
Binary files a/styles/templates/default/images/lang/hi/icon_code.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/hi/icon_edit.gif b/styles/templates/default/images/lang/hi/icon_edit.gif
deleted file mode 100644
index 65937c5fc..000000000
Binary files a/styles/templates/default/images/lang/hi/icon_edit.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/hi/icon_email.gif b/styles/templates/default/images/lang/hi/icon_email.gif
deleted file mode 100644
index 67137b802..000000000
Binary files a/styles/templates/default/images/lang/hi/icon_email.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/hi/icon_icq_add.gif b/styles/templates/default/images/lang/hi/icon_icq_add.gif
deleted file mode 100644
index c0c5cd552..000000000
Binary files a/styles/templates/default/images/lang/hi/icon_icq_add.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/hi/icon_ip.gif b/styles/templates/default/images/lang/hi/icon_ip.gif
deleted file mode 100644
index 5822a929a..000000000
Binary files a/styles/templates/default/images/lang/hi/icon_ip.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/hi/icon_mc.gif b/styles/templates/default/images/lang/hi/icon_mc.gif
deleted file mode 100644
index 1db8e37f5..000000000
Binary files a/styles/templates/default/images/lang/hi/icon_mc.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/hi/icon_pm.gif b/styles/templates/default/images/lang/hi/icon_pm.gif
deleted file mode 100644
index 432075c59..000000000
Binary files a/styles/templates/default/images/lang/hi/icon_pm.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/hi/icon_poll.gif b/styles/templates/default/images/lang/hi/icon_poll.gif
deleted file mode 100644
index 73a29852d..000000000
Binary files a/styles/templates/default/images/lang/hi/icon_poll.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/hi/icon_profile.gif b/styles/templates/default/images/lang/hi/icon_profile.gif
deleted file mode 100644
index abac5dd87..000000000
Binary files a/styles/templates/default/images/lang/hi/icon_profile.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/hi/icon_quote.gif b/styles/templates/default/images/lang/hi/icon_quote.gif
deleted file mode 100644
index 9497b2c57..000000000
Binary files a/styles/templates/default/images/lang/hi/icon_quote.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/hi/icon_search.gif b/styles/templates/default/images/lang/hi/icon_search.gif
deleted file mode 100644
index 5d9c01713..000000000
Binary files a/styles/templates/default/images/lang/hi/icon_search.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/hi/icon_www.gif b/styles/templates/default/images/lang/hi/icon_www.gif
deleted file mode 100644
index 3da9e0e8c..000000000
Binary files a/styles/templates/default/images/lang/hi/icon_www.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/hi/msg_newpost.gif b/styles/templates/default/images/lang/hi/msg_newpost.gif
deleted file mode 100644
index 33a1e1c72..000000000
Binary files a/styles/templates/default/images/lang/hi/msg_newpost.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/hi/post.gif b/styles/templates/default/images/lang/hi/post.gif
deleted file mode 100644
index 9d53572cd..000000000
Binary files a/styles/templates/default/images/lang/hi/post.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/hi/release.gif b/styles/templates/default/images/lang/hi/release.gif
deleted file mode 100644
index 25440636e..000000000
Binary files a/styles/templates/default/images/lang/hi/release.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/hi/reply-locked.gif b/styles/templates/default/images/lang/hi/reply-locked.gif
deleted file mode 100644
index edfd75a87..000000000
Binary files a/styles/templates/default/images/lang/hi/reply-locked.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/hi/reply.gif b/styles/templates/default/images/lang/hi/reply.gif
deleted file mode 100644
index f18c08923..000000000
Binary files a/styles/templates/default/images/lang/hi/reply.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/hr/icon_code.gif b/styles/templates/default/images/lang/hr/icon_code.gif
deleted file mode 100644
index 5afd6e2c7..000000000
Binary files a/styles/templates/default/images/lang/hr/icon_code.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/hr/icon_edit.gif b/styles/templates/default/images/lang/hr/icon_edit.gif
deleted file mode 100644
index 65937c5fc..000000000
Binary files a/styles/templates/default/images/lang/hr/icon_edit.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/hr/icon_email.gif b/styles/templates/default/images/lang/hr/icon_email.gif
deleted file mode 100644
index 67137b802..000000000
Binary files a/styles/templates/default/images/lang/hr/icon_email.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/hr/icon_icq_add.gif b/styles/templates/default/images/lang/hr/icon_icq_add.gif
deleted file mode 100644
index c0c5cd552..000000000
Binary files a/styles/templates/default/images/lang/hr/icon_icq_add.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/hr/icon_ip.gif b/styles/templates/default/images/lang/hr/icon_ip.gif
deleted file mode 100644
index 5822a929a..000000000
Binary files a/styles/templates/default/images/lang/hr/icon_ip.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/hr/icon_mc.gif b/styles/templates/default/images/lang/hr/icon_mc.gif
deleted file mode 100644
index 1db8e37f5..000000000
Binary files a/styles/templates/default/images/lang/hr/icon_mc.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/hr/icon_pm.gif b/styles/templates/default/images/lang/hr/icon_pm.gif
deleted file mode 100644
index 432075c59..000000000
Binary files a/styles/templates/default/images/lang/hr/icon_pm.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/hr/icon_poll.gif b/styles/templates/default/images/lang/hr/icon_poll.gif
deleted file mode 100644
index 73a29852d..000000000
Binary files a/styles/templates/default/images/lang/hr/icon_poll.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/hr/icon_profile.gif b/styles/templates/default/images/lang/hr/icon_profile.gif
deleted file mode 100644
index abac5dd87..000000000
Binary files a/styles/templates/default/images/lang/hr/icon_profile.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/hr/icon_quote.gif b/styles/templates/default/images/lang/hr/icon_quote.gif
deleted file mode 100644
index 9497b2c57..000000000
Binary files a/styles/templates/default/images/lang/hr/icon_quote.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/hr/icon_search.gif b/styles/templates/default/images/lang/hr/icon_search.gif
deleted file mode 100644
index 5d9c01713..000000000
Binary files a/styles/templates/default/images/lang/hr/icon_search.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/hr/icon_www.gif b/styles/templates/default/images/lang/hr/icon_www.gif
deleted file mode 100644
index 3da9e0e8c..000000000
Binary files a/styles/templates/default/images/lang/hr/icon_www.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/hr/msg_newpost.gif b/styles/templates/default/images/lang/hr/msg_newpost.gif
deleted file mode 100644
index 33a1e1c72..000000000
Binary files a/styles/templates/default/images/lang/hr/msg_newpost.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/hr/post.gif b/styles/templates/default/images/lang/hr/post.gif
deleted file mode 100644
index 9d53572cd..000000000
Binary files a/styles/templates/default/images/lang/hr/post.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/hr/release.gif b/styles/templates/default/images/lang/hr/release.gif
deleted file mode 100644
index 25440636e..000000000
Binary files a/styles/templates/default/images/lang/hr/release.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/hr/reply-locked.gif b/styles/templates/default/images/lang/hr/reply-locked.gif
deleted file mode 100644
index edfd75a87..000000000
Binary files a/styles/templates/default/images/lang/hr/reply-locked.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/hr/reply.gif b/styles/templates/default/images/lang/hr/reply.gif
deleted file mode 100644
index f18c08923..000000000
Binary files a/styles/templates/default/images/lang/hr/reply.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/hu/icon_code.gif b/styles/templates/default/images/lang/hu/icon_code.gif
deleted file mode 100644
index 5afd6e2c7..000000000
Binary files a/styles/templates/default/images/lang/hu/icon_code.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/hu/icon_edit.gif b/styles/templates/default/images/lang/hu/icon_edit.gif
deleted file mode 100644
index 65937c5fc..000000000
Binary files a/styles/templates/default/images/lang/hu/icon_edit.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/hu/icon_email.gif b/styles/templates/default/images/lang/hu/icon_email.gif
deleted file mode 100644
index 67137b802..000000000
Binary files a/styles/templates/default/images/lang/hu/icon_email.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/hu/icon_icq_add.gif b/styles/templates/default/images/lang/hu/icon_icq_add.gif
deleted file mode 100644
index c0c5cd552..000000000
Binary files a/styles/templates/default/images/lang/hu/icon_icq_add.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/hu/icon_ip.gif b/styles/templates/default/images/lang/hu/icon_ip.gif
deleted file mode 100644
index 5822a929a..000000000
Binary files a/styles/templates/default/images/lang/hu/icon_ip.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/hu/icon_mc.gif b/styles/templates/default/images/lang/hu/icon_mc.gif
deleted file mode 100644
index 1db8e37f5..000000000
Binary files a/styles/templates/default/images/lang/hu/icon_mc.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/hu/icon_pm.gif b/styles/templates/default/images/lang/hu/icon_pm.gif
deleted file mode 100644
index 432075c59..000000000
Binary files a/styles/templates/default/images/lang/hu/icon_pm.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/hu/icon_poll.gif b/styles/templates/default/images/lang/hu/icon_poll.gif
deleted file mode 100644
index 73a29852d..000000000
Binary files a/styles/templates/default/images/lang/hu/icon_poll.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/hu/icon_profile.gif b/styles/templates/default/images/lang/hu/icon_profile.gif
deleted file mode 100644
index abac5dd87..000000000
Binary files a/styles/templates/default/images/lang/hu/icon_profile.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/hu/icon_quote.gif b/styles/templates/default/images/lang/hu/icon_quote.gif
deleted file mode 100644
index 9497b2c57..000000000
Binary files a/styles/templates/default/images/lang/hu/icon_quote.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/hu/icon_search.gif b/styles/templates/default/images/lang/hu/icon_search.gif
deleted file mode 100644
index 5d9c01713..000000000
Binary files a/styles/templates/default/images/lang/hu/icon_search.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/hu/icon_www.gif b/styles/templates/default/images/lang/hu/icon_www.gif
deleted file mode 100644
index 3da9e0e8c..000000000
Binary files a/styles/templates/default/images/lang/hu/icon_www.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/hu/msg_newpost.gif b/styles/templates/default/images/lang/hu/msg_newpost.gif
deleted file mode 100644
index 33a1e1c72..000000000
Binary files a/styles/templates/default/images/lang/hu/msg_newpost.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/hu/post.gif b/styles/templates/default/images/lang/hu/post.gif
deleted file mode 100644
index 9d53572cd..000000000
Binary files a/styles/templates/default/images/lang/hu/post.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/hu/release.gif b/styles/templates/default/images/lang/hu/release.gif
deleted file mode 100644
index 25440636e..000000000
Binary files a/styles/templates/default/images/lang/hu/release.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/hu/reply-locked.gif b/styles/templates/default/images/lang/hu/reply-locked.gif
deleted file mode 100644
index edfd75a87..000000000
Binary files a/styles/templates/default/images/lang/hu/reply-locked.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/hu/reply.gif b/styles/templates/default/images/lang/hu/reply.gif
deleted file mode 100644
index f18c08923..000000000
Binary files a/styles/templates/default/images/lang/hu/reply.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/hy/icon_code.gif b/styles/templates/default/images/lang/hy/icon_code.gif
deleted file mode 100644
index 5afd6e2c7..000000000
Binary files a/styles/templates/default/images/lang/hy/icon_code.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/hy/icon_edit.gif b/styles/templates/default/images/lang/hy/icon_edit.gif
deleted file mode 100644
index 65937c5fc..000000000
Binary files a/styles/templates/default/images/lang/hy/icon_edit.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/hy/icon_email.gif b/styles/templates/default/images/lang/hy/icon_email.gif
deleted file mode 100644
index 67137b802..000000000
Binary files a/styles/templates/default/images/lang/hy/icon_email.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/hy/icon_icq_add.gif b/styles/templates/default/images/lang/hy/icon_icq_add.gif
deleted file mode 100644
index c0c5cd552..000000000
Binary files a/styles/templates/default/images/lang/hy/icon_icq_add.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/hy/icon_ip.gif b/styles/templates/default/images/lang/hy/icon_ip.gif
deleted file mode 100644
index 5822a929a..000000000
Binary files a/styles/templates/default/images/lang/hy/icon_ip.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/hy/icon_mc.gif b/styles/templates/default/images/lang/hy/icon_mc.gif
deleted file mode 100644
index 1db8e37f5..000000000
Binary files a/styles/templates/default/images/lang/hy/icon_mc.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/hy/icon_pm.gif b/styles/templates/default/images/lang/hy/icon_pm.gif
deleted file mode 100644
index 432075c59..000000000
Binary files a/styles/templates/default/images/lang/hy/icon_pm.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/hy/icon_poll.gif b/styles/templates/default/images/lang/hy/icon_poll.gif
deleted file mode 100644
index 73a29852d..000000000
Binary files a/styles/templates/default/images/lang/hy/icon_poll.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/hy/icon_profile.gif b/styles/templates/default/images/lang/hy/icon_profile.gif
deleted file mode 100644
index abac5dd87..000000000
Binary files a/styles/templates/default/images/lang/hy/icon_profile.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/hy/icon_quote.gif b/styles/templates/default/images/lang/hy/icon_quote.gif
deleted file mode 100644
index 9497b2c57..000000000
Binary files a/styles/templates/default/images/lang/hy/icon_quote.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/hy/icon_search.gif b/styles/templates/default/images/lang/hy/icon_search.gif
deleted file mode 100644
index 5d9c01713..000000000
Binary files a/styles/templates/default/images/lang/hy/icon_search.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/hy/icon_www.gif b/styles/templates/default/images/lang/hy/icon_www.gif
deleted file mode 100644
index 3da9e0e8c..000000000
Binary files a/styles/templates/default/images/lang/hy/icon_www.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/hy/msg_newpost.gif b/styles/templates/default/images/lang/hy/msg_newpost.gif
deleted file mode 100644
index 33a1e1c72..000000000
Binary files a/styles/templates/default/images/lang/hy/msg_newpost.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/hy/post.gif b/styles/templates/default/images/lang/hy/post.gif
deleted file mode 100644
index 9d53572cd..000000000
Binary files a/styles/templates/default/images/lang/hy/post.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/hy/release.gif b/styles/templates/default/images/lang/hy/release.gif
deleted file mode 100644
index 25440636e..000000000
Binary files a/styles/templates/default/images/lang/hy/release.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/hy/reply-locked.gif b/styles/templates/default/images/lang/hy/reply-locked.gif
deleted file mode 100644
index edfd75a87..000000000
Binary files a/styles/templates/default/images/lang/hy/reply-locked.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/hy/reply.gif b/styles/templates/default/images/lang/hy/reply.gif
deleted file mode 100644
index f18c08923..000000000
Binary files a/styles/templates/default/images/lang/hy/reply.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/id/icon_code.gif b/styles/templates/default/images/lang/id/icon_code.gif
deleted file mode 100644
index 5afd6e2c7..000000000
Binary files a/styles/templates/default/images/lang/id/icon_code.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/id/icon_edit.gif b/styles/templates/default/images/lang/id/icon_edit.gif
deleted file mode 100644
index 65937c5fc..000000000
Binary files a/styles/templates/default/images/lang/id/icon_edit.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/id/icon_email.gif b/styles/templates/default/images/lang/id/icon_email.gif
deleted file mode 100644
index 67137b802..000000000
Binary files a/styles/templates/default/images/lang/id/icon_email.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/id/icon_icq_add.gif b/styles/templates/default/images/lang/id/icon_icq_add.gif
deleted file mode 100644
index c0c5cd552..000000000
Binary files a/styles/templates/default/images/lang/id/icon_icq_add.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/id/icon_ip.gif b/styles/templates/default/images/lang/id/icon_ip.gif
deleted file mode 100644
index 5822a929a..000000000
Binary files a/styles/templates/default/images/lang/id/icon_ip.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/id/icon_mc.gif b/styles/templates/default/images/lang/id/icon_mc.gif
deleted file mode 100644
index 1db8e37f5..000000000
Binary files a/styles/templates/default/images/lang/id/icon_mc.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/id/icon_pm.gif b/styles/templates/default/images/lang/id/icon_pm.gif
deleted file mode 100644
index 432075c59..000000000
Binary files a/styles/templates/default/images/lang/id/icon_pm.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/id/icon_poll.gif b/styles/templates/default/images/lang/id/icon_poll.gif
deleted file mode 100644
index 73a29852d..000000000
Binary files a/styles/templates/default/images/lang/id/icon_poll.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/id/icon_profile.gif b/styles/templates/default/images/lang/id/icon_profile.gif
deleted file mode 100644
index abac5dd87..000000000
Binary files a/styles/templates/default/images/lang/id/icon_profile.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/id/icon_quote.gif b/styles/templates/default/images/lang/id/icon_quote.gif
deleted file mode 100644
index 9497b2c57..000000000
Binary files a/styles/templates/default/images/lang/id/icon_quote.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/id/icon_search.gif b/styles/templates/default/images/lang/id/icon_search.gif
deleted file mode 100644
index 5d9c01713..000000000
Binary files a/styles/templates/default/images/lang/id/icon_search.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/id/icon_www.gif b/styles/templates/default/images/lang/id/icon_www.gif
deleted file mode 100644
index 3da9e0e8c..000000000
Binary files a/styles/templates/default/images/lang/id/icon_www.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/id/msg_newpost.gif b/styles/templates/default/images/lang/id/msg_newpost.gif
deleted file mode 100644
index 33a1e1c72..000000000
Binary files a/styles/templates/default/images/lang/id/msg_newpost.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/id/post.gif b/styles/templates/default/images/lang/id/post.gif
deleted file mode 100644
index 9d53572cd..000000000
Binary files a/styles/templates/default/images/lang/id/post.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/id/release.gif b/styles/templates/default/images/lang/id/release.gif
deleted file mode 100644
index 25440636e..000000000
Binary files a/styles/templates/default/images/lang/id/release.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/id/reply-locked.gif b/styles/templates/default/images/lang/id/reply-locked.gif
deleted file mode 100644
index edfd75a87..000000000
Binary files a/styles/templates/default/images/lang/id/reply-locked.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/id/reply.gif b/styles/templates/default/images/lang/id/reply.gif
deleted file mode 100644
index f18c08923..000000000
Binary files a/styles/templates/default/images/lang/id/reply.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/it/icon_code.gif b/styles/templates/default/images/lang/it/icon_code.gif
deleted file mode 100644
index 5afd6e2c7..000000000
Binary files a/styles/templates/default/images/lang/it/icon_code.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/it/icon_edit.gif b/styles/templates/default/images/lang/it/icon_edit.gif
deleted file mode 100644
index 65937c5fc..000000000
Binary files a/styles/templates/default/images/lang/it/icon_edit.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/it/icon_email.gif b/styles/templates/default/images/lang/it/icon_email.gif
deleted file mode 100644
index 67137b802..000000000
Binary files a/styles/templates/default/images/lang/it/icon_email.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/it/icon_icq_add.gif b/styles/templates/default/images/lang/it/icon_icq_add.gif
deleted file mode 100644
index c0c5cd552..000000000
Binary files a/styles/templates/default/images/lang/it/icon_icq_add.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/it/icon_ip.gif b/styles/templates/default/images/lang/it/icon_ip.gif
deleted file mode 100644
index 5822a929a..000000000
Binary files a/styles/templates/default/images/lang/it/icon_ip.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/it/icon_mc.gif b/styles/templates/default/images/lang/it/icon_mc.gif
deleted file mode 100644
index 1db8e37f5..000000000
Binary files a/styles/templates/default/images/lang/it/icon_mc.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/it/icon_pm.gif b/styles/templates/default/images/lang/it/icon_pm.gif
deleted file mode 100644
index 432075c59..000000000
Binary files a/styles/templates/default/images/lang/it/icon_pm.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/it/icon_poll.gif b/styles/templates/default/images/lang/it/icon_poll.gif
deleted file mode 100644
index 73a29852d..000000000
Binary files a/styles/templates/default/images/lang/it/icon_poll.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/it/icon_profile.gif b/styles/templates/default/images/lang/it/icon_profile.gif
deleted file mode 100644
index abac5dd87..000000000
Binary files a/styles/templates/default/images/lang/it/icon_profile.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/it/icon_quote.gif b/styles/templates/default/images/lang/it/icon_quote.gif
deleted file mode 100644
index 9497b2c57..000000000
Binary files a/styles/templates/default/images/lang/it/icon_quote.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/it/icon_search.gif b/styles/templates/default/images/lang/it/icon_search.gif
deleted file mode 100644
index 5d9c01713..000000000
Binary files a/styles/templates/default/images/lang/it/icon_search.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/it/icon_www.gif b/styles/templates/default/images/lang/it/icon_www.gif
deleted file mode 100644
index 3da9e0e8c..000000000
Binary files a/styles/templates/default/images/lang/it/icon_www.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/it/msg_newpost.gif b/styles/templates/default/images/lang/it/msg_newpost.gif
deleted file mode 100644
index 33a1e1c72..000000000
Binary files a/styles/templates/default/images/lang/it/msg_newpost.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/it/post.gif b/styles/templates/default/images/lang/it/post.gif
deleted file mode 100644
index 9d53572cd..000000000
Binary files a/styles/templates/default/images/lang/it/post.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/it/release.gif b/styles/templates/default/images/lang/it/release.gif
deleted file mode 100644
index 25440636e..000000000
Binary files a/styles/templates/default/images/lang/it/release.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/it/reply-locked.gif b/styles/templates/default/images/lang/it/reply-locked.gif
deleted file mode 100644
index edfd75a87..000000000
Binary files a/styles/templates/default/images/lang/it/reply-locked.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/it/reply.gif b/styles/templates/default/images/lang/it/reply.gif
deleted file mode 100644
index f18c08923..000000000
Binary files a/styles/templates/default/images/lang/it/reply.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ja/icon_code.gif b/styles/templates/default/images/lang/ja/icon_code.gif
deleted file mode 100644
index 5afd6e2c7..000000000
Binary files a/styles/templates/default/images/lang/ja/icon_code.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ja/icon_edit.gif b/styles/templates/default/images/lang/ja/icon_edit.gif
deleted file mode 100644
index 65937c5fc..000000000
Binary files a/styles/templates/default/images/lang/ja/icon_edit.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ja/icon_email.gif b/styles/templates/default/images/lang/ja/icon_email.gif
deleted file mode 100644
index 67137b802..000000000
Binary files a/styles/templates/default/images/lang/ja/icon_email.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ja/icon_icq_add.gif b/styles/templates/default/images/lang/ja/icon_icq_add.gif
deleted file mode 100644
index c0c5cd552..000000000
Binary files a/styles/templates/default/images/lang/ja/icon_icq_add.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ja/icon_ip.gif b/styles/templates/default/images/lang/ja/icon_ip.gif
deleted file mode 100644
index 5822a929a..000000000
Binary files a/styles/templates/default/images/lang/ja/icon_ip.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ja/icon_mc.gif b/styles/templates/default/images/lang/ja/icon_mc.gif
deleted file mode 100644
index 1db8e37f5..000000000
Binary files a/styles/templates/default/images/lang/ja/icon_mc.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ja/icon_pm.gif b/styles/templates/default/images/lang/ja/icon_pm.gif
deleted file mode 100644
index 432075c59..000000000
Binary files a/styles/templates/default/images/lang/ja/icon_pm.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ja/icon_poll.gif b/styles/templates/default/images/lang/ja/icon_poll.gif
deleted file mode 100644
index 73a29852d..000000000
Binary files a/styles/templates/default/images/lang/ja/icon_poll.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ja/icon_profile.gif b/styles/templates/default/images/lang/ja/icon_profile.gif
deleted file mode 100644
index abac5dd87..000000000
Binary files a/styles/templates/default/images/lang/ja/icon_profile.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ja/icon_quote.gif b/styles/templates/default/images/lang/ja/icon_quote.gif
deleted file mode 100644
index 9497b2c57..000000000
Binary files a/styles/templates/default/images/lang/ja/icon_quote.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ja/icon_search.gif b/styles/templates/default/images/lang/ja/icon_search.gif
deleted file mode 100644
index 5d9c01713..000000000
Binary files a/styles/templates/default/images/lang/ja/icon_search.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ja/icon_www.gif b/styles/templates/default/images/lang/ja/icon_www.gif
deleted file mode 100644
index 3da9e0e8c..000000000
Binary files a/styles/templates/default/images/lang/ja/icon_www.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ja/msg_newpost.gif b/styles/templates/default/images/lang/ja/msg_newpost.gif
deleted file mode 100644
index 33a1e1c72..000000000
Binary files a/styles/templates/default/images/lang/ja/msg_newpost.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ja/post.gif b/styles/templates/default/images/lang/ja/post.gif
deleted file mode 100644
index 9d53572cd..000000000
Binary files a/styles/templates/default/images/lang/ja/post.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ja/release.gif b/styles/templates/default/images/lang/ja/release.gif
deleted file mode 100644
index 25440636e..000000000
Binary files a/styles/templates/default/images/lang/ja/release.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ja/reply-locked.gif b/styles/templates/default/images/lang/ja/reply-locked.gif
deleted file mode 100644
index edfd75a87..000000000
Binary files a/styles/templates/default/images/lang/ja/reply-locked.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ja/reply.gif b/styles/templates/default/images/lang/ja/reply.gif
deleted file mode 100644
index f18c08923..000000000
Binary files a/styles/templates/default/images/lang/ja/reply.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ka/icon_code.gif b/styles/templates/default/images/lang/ka/icon_code.gif
deleted file mode 100644
index 5afd6e2c7..000000000
Binary files a/styles/templates/default/images/lang/ka/icon_code.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ka/icon_edit.gif b/styles/templates/default/images/lang/ka/icon_edit.gif
deleted file mode 100644
index 65937c5fc..000000000
Binary files a/styles/templates/default/images/lang/ka/icon_edit.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ka/icon_email.gif b/styles/templates/default/images/lang/ka/icon_email.gif
deleted file mode 100644
index 67137b802..000000000
Binary files a/styles/templates/default/images/lang/ka/icon_email.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ka/icon_icq_add.gif b/styles/templates/default/images/lang/ka/icon_icq_add.gif
deleted file mode 100644
index c0c5cd552..000000000
Binary files a/styles/templates/default/images/lang/ka/icon_icq_add.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ka/icon_ip.gif b/styles/templates/default/images/lang/ka/icon_ip.gif
deleted file mode 100644
index 5822a929a..000000000
Binary files a/styles/templates/default/images/lang/ka/icon_ip.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ka/icon_mc.gif b/styles/templates/default/images/lang/ka/icon_mc.gif
deleted file mode 100644
index 1db8e37f5..000000000
Binary files a/styles/templates/default/images/lang/ka/icon_mc.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ka/icon_pm.gif b/styles/templates/default/images/lang/ka/icon_pm.gif
deleted file mode 100644
index 432075c59..000000000
Binary files a/styles/templates/default/images/lang/ka/icon_pm.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ka/icon_poll.gif b/styles/templates/default/images/lang/ka/icon_poll.gif
deleted file mode 100644
index 73a29852d..000000000
Binary files a/styles/templates/default/images/lang/ka/icon_poll.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ka/icon_profile.gif b/styles/templates/default/images/lang/ka/icon_profile.gif
deleted file mode 100644
index abac5dd87..000000000
Binary files a/styles/templates/default/images/lang/ka/icon_profile.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ka/icon_quote.gif b/styles/templates/default/images/lang/ka/icon_quote.gif
deleted file mode 100644
index 9497b2c57..000000000
Binary files a/styles/templates/default/images/lang/ka/icon_quote.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ka/icon_search.gif b/styles/templates/default/images/lang/ka/icon_search.gif
deleted file mode 100644
index 5d9c01713..000000000
Binary files a/styles/templates/default/images/lang/ka/icon_search.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ka/icon_www.gif b/styles/templates/default/images/lang/ka/icon_www.gif
deleted file mode 100644
index 3da9e0e8c..000000000
Binary files a/styles/templates/default/images/lang/ka/icon_www.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ka/msg_newpost.gif b/styles/templates/default/images/lang/ka/msg_newpost.gif
deleted file mode 100644
index 33a1e1c72..000000000
Binary files a/styles/templates/default/images/lang/ka/msg_newpost.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ka/post.gif b/styles/templates/default/images/lang/ka/post.gif
deleted file mode 100644
index 9d53572cd..000000000
Binary files a/styles/templates/default/images/lang/ka/post.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ka/release.gif b/styles/templates/default/images/lang/ka/release.gif
deleted file mode 100644
index 25440636e..000000000
Binary files a/styles/templates/default/images/lang/ka/release.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ka/reply-locked.gif b/styles/templates/default/images/lang/ka/reply-locked.gif
deleted file mode 100644
index edfd75a87..000000000
Binary files a/styles/templates/default/images/lang/ka/reply-locked.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ka/reply.gif b/styles/templates/default/images/lang/ka/reply.gif
deleted file mode 100644
index f18c08923..000000000
Binary files a/styles/templates/default/images/lang/ka/reply.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/kk/icon_code.gif b/styles/templates/default/images/lang/kk/icon_code.gif
deleted file mode 100644
index 5afd6e2c7..000000000
Binary files a/styles/templates/default/images/lang/kk/icon_code.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/kk/icon_edit.gif b/styles/templates/default/images/lang/kk/icon_edit.gif
deleted file mode 100644
index 65937c5fc..000000000
Binary files a/styles/templates/default/images/lang/kk/icon_edit.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/kk/icon_email.gif b/styles/templates/default/images/lang/kk/icon_email.gif
deleted file mode 100644
index 67137b802..000000000
Binary files a/styles/templates/default/images/lang/kk/icon_email.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/kk/icon_icq_add.gif b/styles/templates/default/images/lang/kk/icon_icq_add.gif
deleted file mode 100644
index c0c5cd552..000000000
Binary files a/styles/templates/default/images/lang/kk/icon_icq_add.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/kk/icon_ip.gif b/styles/templates/default/images/lang/kk/icon_ip.gif
deleted file mode 100644
index 5822a929a..000000000
Binary files a/styles/templates/default/images/lang/kk/icon_ip.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/kk/icon_mc.gif b/styles/templates/default/images/lang/kk/icon_mc.gif
deleted file mode 100644
index 1db8e37f5..000000000
Binary files a/styles/templates/default/images/lang/kk/icon_mc.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/kk/icon_pm.gif b/styles/templates/default/images/lang/kk/icon_pm.gif
deleted file mode 100644
index 432075c59..000000000
Binary files a/styles/templates/default/images/lang/kk/icon_pm.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/kk/icon_poll.gif b/styles/templates/default/images/lang/kk/icon_poll.gif
deleted file mode 100644
index 73a29852d..000000000
Binary files a/styles/templates/default/images/lang/kk/icon_poll.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/kk/icon_profile.gif b/styles/templates/default/images/lang/kk/icon_profile.gif
deleted file mode 100644
index abac5dd87..000000000
Binary files a/styles/templates/default/images/lang/kk/icon_profile.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/kk/icon_quote.gif b/styles/templates/default/images/lang/kk/icon_quote.gif
deleted file mode 100644
index 9497b2c57..000000000
Binary files a/styles/templates/default/images/lang/kk/icon_quote.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/kk/icon_search.gif b/styles/templates/default/images/lang/kk/icon_search.gif
deleted file mode 100644
index 5d9c01713..000000000
Binary files a/styles/templates/default/images/lang/kk/icon_search.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/kk/icon_www.gif b/styles/templates/default/images/lang/kk/icon_www.gif
deleted file mode 100644
index 3da9e0e8c..000000000
Binary files a/styles/templates/default/images/lang/kk/icon_www.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/kk/msg_newpost.gif b/styles/templates/default/images/lang/kk/msg_newpost.gif
deleted file mode 100644
index 33a1e1c72..000000000
Binary files a/styles/templates/default/images/lang/kk/msg_newpost.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/kk/post.gif b/styles/templates/default/images/lang/kk/post.gif
deleted file mode 100644
index 9d53572cd..000000000
Binary files a/styles/templates/default/images/lang/kk/post.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/kk/release.gif b/styles/templates/default/images/lang/kk/release.gif
deleted file mode 100644
index 25440636e..000000000
Binary files a/styles/templates/default/images/lang/kk/release.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/kk/reply-locked.gif b/styles/templates/default/images/lang/kk/reply-locked.gif
deleted file mode 100644
index edfd75a87..000000000
Binary files a/styles/templates/default/images/lang/kk/reply-locked.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/kk/reply.gif b/styles/templates/default/images/lang/kk/reply.gif
deleted file mode 100644
index f18c08923..000000000
Binary files a/styles/templates/default/images/lang/kk/reply.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ko/icon_code.gif b/styles/templates/default/images/lang/ko/icon_code.gif
deleted file mode 100644
index 5afd6e2c7..000000000
Binary files a/styles/templates/default/images/lang/ko/icon_code.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ko/icon_edit.gif b/styles/templates/default/images/lang/ko/icon_edit.gif
deleted file mode 100644
index 65937c5fc..000000000
Binary files a/styles/templates/default/images/lang/ko/icon_edit.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ko/icon_email.gif b/styles/templates/default/images/lang/ko/icon_email.gif
deleted file mode 100644
index 67137b802..000000000
Binary files a/styles/templates/default/images/lang/ko/icon_email.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ko/icon_icq_add.gif b/styles/templates/default/images/lang/ko/icon_icq_add.gif
deleted file mode 100644
index c0c5cd552..000000000
Binary files a/styles/templates/default/images/lang/ko/icon_icq_add.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ko/icon_ip.gif b/styles/templates/default/images/lang/ko/icon_ip.gif
deleted file mode 100644
index 5822a929a..000000000
Binary files a/styles/templates/default/images/lang/ko/icon_ip.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ko/icon_mc.gif b/styles/templates/default/images/lang/ko/icon_mc.gif
deleted file mode 100644
index 1db8e37f5..000000000
Binary files a/styles/templates/default/images/lang/ko/icon_mc.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ko/icon_pm.gif b/styles/templates/default/images/lang/ko/icon_pm.gif
deleted file mode 100644
index 432075c59..000000000
Binary files a/styles/templates/default/images/lang/ko/icon_pm.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ko/icon_poll.gif b/styles/templates/default/images/lang/ko/icon_poll.gif
deleted file mode 100644
index 73a29852d..000000000
Binary files a/styles/templates/default/images/lang/ko/icon_poll.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ko/icon_profile.gif b/styles/templates/default/images/lang/ko/icon_profile.gif
deleted file mode 100644
index abac5dd87..000000000
Binary files a/styles/templates/default/images/lang/ko/icon_profile.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ko/icon_quote.gif b/styles/templates/default/images/lang/ko/icon_quote.gif
deleted file mode 100644
index 9497b2c57..000000000
Binary files a/styles/templates/default/images/lang/ko/icon_quote.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ko/icon_search.gif b/styles/templates/default/images/lang/ko/icon_search.gif
deleted file mode 100644
index 5d9c01713..000000000
Binary files a/styles/templates/default/images/lang/ko/icon_search.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ko/icon_www.gif b/styles/templates/default/images/lang/ko/icon_www.gif
deleted file mode 100644
index 3da9e0e8c..000000000
Binary files a/styles/templates/default/images/lang/ko/icon_www.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ko/msg_newpost.gif b/styles/templates/default/images/lang/ko/msg_newpost.gif
deleted file mode 100644
index 33a1e1c72..000000000
Binary files a/styles/templates/default/images/lang/ko/msg_newpost.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ko/post.gif b/styles/templates/default/images/lang/ko/post.gif
deleted file mode 100644
index 9d53572cd..000000000
Binary files a/styles/templates/default/images/lang/ko/post.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ko/release.gif b/styles/templates/default/images/lang/ko/release.gif
deleted file mode 100644
index 25440636e..000000000
Binary files a/styles/templates/default/images/lang/ko/release.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ko/reply-locked.gif b/styles/templates/default/images/lang/ko/reply-locked.gif
deleted file mode 100644
index edfd75a87..000000000
Binary files a/styles/templates/default/images/lang/ko/reply-locked.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ko/reply.gif b/styles/templates/default/images/lang/ko/reply.gif
deleted file mode 100644
index f18c08923..000000000
Binary files a/styles/templates/default/images/lang/ko/reply.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/lt/icon_code.gif b/styles/templates/default/images/lang/lt/icon_code.gif
deleted file mode 100644
index 5afd6e2c7..000000000
Binary files a/styles/templates/default/images/lang/lt/icon_code.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/lt/icon_edit.gif b/styles/templates/default/images/lang/lt/icon_edit.gif
deleted file mode 100644
index 65937c5fc..000000000
Binary files a/styles/templates/default/images/lang/lt/icon_edit.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/lt/icon_email.gif b/styles/templates/default/images/lang/lt/icon_email.gif
deleted file mode 100644
index 67137b802..000000000
Binary files a/styles/templates/default/images/lang/lt/icon_email.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/lt/icon_icq_add.gif b/styles/templates/default/images/lang/lt/icon_icq_add.gif
deleted file mode 100644
index c0c5cd552..000000000
Binary files a/styles/templates/default/images/lang/lt/icon_icq_add.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/lt/icon_ip.gif b/styles/templates/default/images/lang/lt/icon_ip.gif
deleted file mode 100644
index 5822a929a..000000000
Binary files a/styles/templates/default/images/lang/lt/icon_ip.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/lt/icon_mc.gif b/styles/templates/default/images/lang/lt/icon_mc.gif
deleted file mode 100644
index 1db8e37f5..000000000
Binary files a/styles/templates/default/images/lang/lt/icon_mc.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/lt/icon_pm.gif b/styles/templates/default/images/lang/lt/icon_pm.gif
deleted file mode 100644
index 432075c59..000000000
Binary files a/styles/templates/default/images/lang/lt/icon_pm.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/lt/icon_poll.gif b/styles/templates/default/images/lang/lt/icon_poll.gif
deleted file mode 100644
index 73a29852d..000000000
Binary files a/styles/templates/default/images/lang/lt/icon_poll.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/lt/icon_profile.gif b/styles/templates/default/images/lang/lt/icon_profile.gif
deleted file mode 100644
index abac5dd87..000000000
Binary files a/styles/templates/default/images/lang/lt/icon_profile.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/lt/icon_quote.gif b/styles/templates/default/images/lang/lt/icon_quote.gif
deleted file mode 100644
index 9497b2c57..000000000
Binary files a/styles/templates/default/images/lang/lt/icon_quote.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/lt/icon_search.gif b/styles/templates/default/images/lang/lt/icon_search.gif
deleted file mode 100644
index 5d9c01713..000000000
Binary files a/styles/templates/default/images/lang/lt/icon_search.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/lt/icon_www.gif b/styles/templates/default/images/lang/lt/icon_www.gif
deleted file mode 100644
index 3da9e0e8c..000000000
Binary files a/styles/templates/default/images/lang/lt/icon_www.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/lt/msg_newpost.gif b/styles/templates/default/images/lang/lt/msg_newpost.gif
deleted file mode 100644
index 33a1e1c72..000000000
Binary files a/styles/templates/default/images/lang/lt/msg_newpost.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/lt/post.gif b/styles/templates/default/images/lang/lt/post.gif
deleted file mode 100644
index 9d53572cd..000000000
Binary files a/styles/templates/default/images/lang/lt/post.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/lt/release.gif b/styles/templates/default/images/lang/lt/release.gif
deleted file mode 100644
index 25440636e..000000000
Binary files a/styles/templates/default/images/lang/lt/release.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/lt/reply-locked.gif b/styles/templates/default/images/lang/lt/reply-locked.gif
deleted file mode 100644
index edfd75a87..000000000
Binary files a/styles/templates/default/images/lang/lt/reply-locked.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/lt/reply.gif b/styles/templates/default/images/lang/lt/reply.gif
deleted file mode 100644
index f18c08923..000000000
Binary files a/styles/templates/default/images/lang/lt/reply.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/lv/icon_code.gif b/styles/templates/default/images/lang/lv/icon_code.gif
deleted file mode 100644
index 5afd6e2c7..000000000
Binary files a/styles/templates/default/images/lang/lv/icon_code.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/lv/icon_edit.gif b/styles/templates/default/images/lang/lv/icon_edit.gif
deleted file mode 100644
index 65937c5fc..000000000
Binary files a/styles/templates/default/images/lang/lv/icon_edit.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/lv/icon_email.gif b/styles/templates/default/images/lang/lv/icon_email.gif
deleted file mode 100644
index 67137b802..000000000
Binary files a/styles/templates/default/images/lang/lv/icon_email.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/lv/icon_icq_add.gif b/styles/templates/default/images/lang/lv/icon_icq_add.gif
deleted file mode 100644
index c0c5cd552..000000000
Binary files a/styles/templates/default/images/lang/lv/icon_icq_add.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/lv/icon_ip.gif b/styles/templates/default/images/lang/lv/icon_ip.gif
deleted file mode 100644
index 5822a929a..000000000
Binary files a/styles/templates/default/images/lang/lv/icon_ip.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/lv/icon_mc.gif b/styles/templates/default/images/lang/lv/icon_mc.gif
deleted file mode 100644
index 1db8e37f5..000000000
Binary files a/styles/templates/default/images/lang/lv/icon_mc.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/lv/icon_pm.gif b/styles/templates/default/images/lang/lv/icon_pm.gif
deleted file mode 100644
index 432075c59..000000000
Binary files a/styles/templates/default/images/lang/lv/icon_pm.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/lv/icon_poll.gif b/styles/templates/default/images/lang/lv/icon_poll.gif
deleted file mode 100644
index 73a29852d..000000000
Binary files a/styles/templates/default/images/lang/lv/icon_poll.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/lv/icon_profile.gif b/styles/templates/default/images/lang/lv/icon_profile.gif
deleted file mode 100644
index abac5dd87..000000000
Binary files a/styles/templates/default/images/lang/lv/icon_profile.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/lv/icon_quote.gif b/styles/templates/default/images/lang/lv/icon_quote.gif
deleted file mode 100644
index 9497b2c57..000000000
Binary files a/styles/templates/default/images/lang/lv/icon_quote.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/lv/icon_search.gif b/styles/templates/default/images/lang/lv/icon_search.gif
deleted file mode 100644
index 5d9c01713..000000000
Binary files a/styles/templates/default/images/lang/lv/icon_search.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/lv/icon_www.gif b/styles/templates/default/images/lang/lv/icon_www.gif
deleted file mode 100644
index 3da9e0e8c..000000000
Binary files a/styles/templates/default/images/lang/lv/icon_www.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/lv/msg_newpost.gif b/styles/templates/default/images/lang/lv/msg_newpost.gif
deleted file mode 100644
index 33a1e1c72..000000000
Binary files a/styles/templates/default/images/lang/lv/msg_newpost.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/lv/post.gif b/styles/templates/default/images/lang/lv/post.gif
deleted file mode 100644
index 9d53572cd..000000000
Binary files a/styles/templates/default/images/lang/lv/post.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/lv/release.gif b/styles/templates/default/images/lang/lv/release.gif
deleted file mode 100644
index 25440636e..000000000
Binary files a/styles/templates/default/images/lang/lv/release.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/lv/reply-locked.gif b/styles/templates/default/images/lang/lv/reply-locked.gif
deleted file mode 100644
index edfd75a87..000000000
Binary files a/styles/templates/default/images/lang/lv/reply-locked.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/lv/reply.gif b/styles/templates/default/images/lang/lv/reply.gif
deleted file mode 100644
index f18c08923..000000000
Binary files a/styles/templates/default/images/lang/lv/reply.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/nl/icon_code.gif b/styles/templates/default/images/lang/nl/icon_code.gif
deleted file mode 100644
index 5afd6e2c7..000000000
Binary files a/styles/templates/default/images/lang/nl/icon_code.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/nl/icon_edit.gif b/styles/templates/default/images/lang/nl/icon_edit.gif
deleted file mode 100644
index 65937c5fc..000000000
Binary files a/styles/templates/default/images/lang/nl/icon_edit.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/nl/icon_email.gif b/styles/templates/default/images/lang/nl/icon_email.gif
deleted file mode 100644
index 67137b802..000000000
Binary files a/styles/templates/default/images/lang/nl/icon_email.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/nl/icon_icq_add.gif b/styles/templates/default/images/lang/nl/icon_icq_add.gif
deleted file mode 100644
index c0c5cd552..000000000
Binary files a/styles/templates/default/images/lang/nl/icon_icq_add.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/nl/icon_ip.gif b/styles/templates/default/images/lang/nl/icon_ip.gif
deleted file mode 100644
index 5822a929a..000000000
Binary files a/styles/templates/default/images/lang/nl/icon_ip.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/nl/icon_mc.gif b/styles/templates/default/images/lang/nl/icon_mc.gif
deleted file mode 100644
index 1db8e37f5..000000000
Binary files a/styles/templates/default/images/lang/nl/icon_mc.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/nl/icon_pm.gif b/styles/templates/default/images/lang/nl/icon_pm.gif
deleted file mode 100644
index 432075c59..000000000
Binary files a/styles/templates/default/images/lang/nl/icon_pm.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/nl/icon_poll.gif b/styles/templates/default/images/lang/nl/icon_poll.gif
deleted file mode 100644
index 73a29852d..000000000
Binary files a/styles/templates/default/images/lang/nl/icon_poll.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/nl/icon_profile.gif b/styles/templates/default/images/lang/nl/icon_profile.gif
deleted file mode 100644
index abac5dd87..000000000
Binary files a/styles/templates/default/images/lang/nl/icon_profile.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/nl/icon_quote.gif b/styles/templates/default/images/lang/nl/icon_quote.gif
deleted file mode 100644
index 9497b2c57..000000000
Binary files a/styles/templates/default/images/lang/nl/icon_quote.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/nl/icon_search.gif b/styles/templates/default/images/lang/nl/icon_search.gif
deleted file mode 100644
index 5d9c01713..000000000
Binary files a/styles/templates/default/images/lang/nl/icon_search.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/nl/icon_www.gif b/styles/templates/default/images/lang/nl/icon_www.gif
deleted file mode 100644
index 3da9e0e8c..000000000
Binary files a/styles/templates/default/images/lang/nl/icon_www.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/nl/msg_newpost.gif b/styles/templates/default/images/lang/nl/msg_newpost.gif
deleted file mode 100644
index 33a1e1c72..000000000
Binary files a/styles/templates/default/images/lang/nl/msg_newpost.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/nl/post.gif b/styles/templates/default/images/lang/nl/post.gif
deleted file mode 100644
index 9d53572cd..000000000
Binary files a/styles/templates/default/images/lang/nl/post.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/nl/release.gif b/styles/templates/default/images/lang/nl/release.gif
deleted file mode 100644
index 25440636e..000000000
Binary files a/styles/templates/default/images/lang/nl/release.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/nl/reply-locked.gif b/styles/templates/default/images/lang/nl/reply-locked.gif
deleted file mode 100644
index edfd75a87..000000000
Binary files a/styles/templates/default/images/lang/nl/reply-locked.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/nl/reply.gif b/styles/templates/default/images/lang/nl/reply.gif
deleted file mode 100644
index f18c08923..000000000
Binary files a/styles/templates/default/images/lang/nl/reply.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/no/icon_code.gif b/styles/templates/default/images/lang/no/icon_code.gif
deleted file mode 100644
index 5afd6e2c7..000000000
Binary files a/styles/templates/default/images/lang/no/icon_code.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/no/icon_edit.gif b/styles/templates/default/images/lang/no/icon_edit.gif
deleted file mode 100644
index 65937c5fc..000000000
Binary files a/styles/templates/default/images/lang/no/icon_edit.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/no/icon_email.gif b/styles/templates/default/images/lang/no/icon_email.gif
deleted file mode 100644
index 67137b802..000000000
Binary files a/styles/templates/default/images/lang/no/icon_email.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/no/icon_icq_add.gif b/styles/templates/default/images/lang/no/icon_icq_add.gif
deleted file mode 100644
index c0c5cd552..000000000
Binary files a/styles/templates/default/images/lang/no/icon_icq_add.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/no/icon_ip.gif b/styles/templates/default/images/lang/no/icon_ip.gif
deleted file mode 100644
index 5822a929a..000000000
Binary files a/styles/templates/default/images/lang/no/icon_ip.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/no/icon_mc.gif b/styles/templates/default/images/lang/no/icon_mc.gif
deleted file mode 100644
index 1db8e37f5..000000000
Binary files a/styles/templates/default/images/lang/no/icon_mc.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/no/icon_pm.gif b/styles/templates/default/images/lang/no/icon_pm.gif
deleted file mode 100644
index 432075c59..000000000
Binary files a/styles/templates/default/images/lang/no/icon_pm.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/no/icon_poll.gif b/styles/templates/default/images/lang/no/icon_poll.gif
deleted file mode 100644
index 73a29852d..000000000
Binary files a/styles/templates/default/images/lang/no/icon_poll.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/no/icon_profile.gif b/styles/templates/default/images/lang/no/icon_profile.gif
deleted file mode 100644
index abac5dd87..000000000
Binary files a/styles/templates/default/images/lang/no/icon_profile.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/no/icon_quote.gif b/styles/templates/default/images/lang/no/icon_quote.gif
deleted file mode 100644
index 9497b2c57..000000000
Binary files a/styles/templates/default/images/lang/no/icon_quote.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/no/icon_search.gif b/styles/templates/default/images/lang/no/icon_search.gif
deleted file mode 100644
index 5d9c01713..000000000
Binary files a/styles/templates/default/images/lang/no/icon_search.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/no/icon_www.gif b/styles/templates/default/images/lang/no/icon_www.gif
deleted file mode 100644
index 3da9e0e8c..000000000
Binary files a/styles/templates/default/images/lang/no/icon_www.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/no/msg_newpost.gif b/styles/templates/default/images/lang/no/msg_newpost.gif
deleted file mode 100644
index 33a1e1c72..000000000
Binary files a/styles/templates/default/images/lang/no/msg_newpost.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/no/post.gif b/styles/templates/default/images/lang/no/post.gif
deleted file mode 100644
index 9d53572cd..000000000
Binary files a/styles/templates/default/images/lang/no/post.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/no/release.gif b/styles/templates/default/images/lang/no/release.gif
deleted file mode 100644
index 25440636e..000000000
Binary files a/styles/templates/default/images/lang/no/release.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/no/reply-locked.gif b/styles/templates/default/images/lang/no/reply-locked.gif
deleted file mode 100644
index edfd75a87..000000000
Binary files a/styles/templates/default/images/lang/no/reply-locked.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/no/reply.gif b/styles/templates/default/images/lang/no/reply.gif
deleted file mode 100644
index f18c08923..000000000
Binary files a/styles/templates/default/images/lang/no/reply.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/pl/icon_code.gif b/styles/templates/default/images/lang/pl/icon_code.gif
deleted file mode 100644
index 5afd6e2c7..000000000
Binary files a/styles/templates/default/images/lang/pl/icon_code.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/pl/icon_edit.gif b/styles/templates/default/images/lang/pl/icon_edit.gif
deleted file mode 100644
index 65937c5fc..000000000
Binary files a/styles/templates/default/images/lang/pl/icon_edit.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/pl/icon_email.gif b/styles/templates/default/images/lang/pl/icon_email.gif
deleted file mode 100644
index 67137b802..000000000
Binary files a/styles/templates/default/images/lang/pl/icon_email.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/pl/icon_icq_add.gif b/styles/templates/default/images/lang/pl/icon_icq_add.gif
deleted file mode 100644
index c0c5cd552..000000000
Binary files a/styles/templates/default/images/lang/pl/icon_icq_add.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/pl/icon_ip.gif b/styles/templates/default/images/lang/pl/icon_ip.gif
deleted file mode 100644
index 5822a929a..000000000
Binary files a/styles/templates/default/images/lang/pl/icon_ip.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/pl/icon_mc.gif b/styles/templates/default/images/lang/pl/icon_mc.gif
deleted file mode 100644
index 1db8e37f5..000000000
Binary files a/styles/templates/default/images/lang/pl/icon_mc.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/pl/icon_pm.gif b/styles/templates/default/images/lang/pl/icon_pm.gif
deleted file mode 100644
index 432075c59..000000000
Binary files a/styles/templates/default/images/lang/pl/icon_pm.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/pl/icon_poll.gif b/styles/templates/default/images/lang/pl/icon_poll.gif
deleted file mode 100644
index 73a29852d..000000000
Binary files a/styles/templates/default/images/lang/pl/icon_poll.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/pl/icon_profile.gif b/styles/templates/default/images/lang/pl/icon_profile.gif
deleted file mode 100644
index abac5dd87..000000000
Binary files a/styles/templates/default/images/lang/pl/icon_profile.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/pl/icon_quote.gif b/styles/templates/default/images/lang/pl/icon_quote.gif
deleted file mode 100644
index 9497b2c57..000000000
Binary files a/styles/templates/default/images/lang/pl/icon_quote.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/pl/icon_search.gif b/styles/templates/default/images/lang/pl/icon_search.gif
deleted file mode 100644
index 5d9c01713..000000000
Binary files a/styles/templates/default/images/lang/pl/icon_search.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/pl/icon_www.gif b/styles/templates/default/images/lang/pl/icon_www.gif
deleted file mode 100644
index 3da9e0e8c..000000000
Binary files a/styles/templates/default/images/lang/pl/icon_www.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/pl/msg_newpost.gif b/styles/templates/default/images/lang/pl/msg_newpost.gif
deleted file mode 100644
index 33a1e1c72..000000000
Binary files a/styles/templates/default/images/lang/pl/msg_newpost.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/pl/post.gif b/styles/templates/default/images/lang/pl/post.gif
deleted file mode 100644
index 9d53572cd..000000000
Binary files a/styles/templates/default/images/lang/pl/post.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/pl/release.gif b/styles/templates/default/images/lang/pl/release.gif
deleted file mode 100644
index 25440636e..000000000
Binary files a/styles/templates/default/images/lang/pl/release.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/pl/reply-locked.gif b/styles/templates/default/images/lang/pl/reply-locked.gif
deleted file mode 100644
index edfd75a87..000000000
Binary files a/styles/templates/default/images/lang/pl/reply-locked.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/pl/reply.gif b/styles/templates/default/images/lang/pl/reply.gif
deleted file mode 100644
index f18c08923..000000000
Binary files a/styles/templates/default/images/lang/pl/reply.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/pt/icon_code.gif b/styles/templates/default/images/lang/pt/icon_code.gif
deleted file mode 100644
index 5afd6e2c7..000000000
Binary files a/styles/templates/default/images/lang/pt/icon_code.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/pt/icon_edit.gif b/styles/templates/default/images/lang/pt/icon_edit.gif
deleted file mode 100644
index 65937c5fc..000000000
Binary files a/styles/templates/default/images/lang/pt/icon_edit.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/pt/icon_email.gif b/styles/templates/default/images/lang/pt/icon_email.gif
deleted file mode 100644
index 67137b802..000000000
Binary files a/styles/templates/default/images/lang/pt/icon_email.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/pt/icon_icq_add.gif b/styles/templates/default/images/lang/pt/icon_icq_add.gif
deleted file mode 100644
index c0c5cd552..000000000
Binary files a/styles/templates/default/images/lang/pt/icon_icq_add.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/pt/icon_ip.gif b/styles/templates/default/images/lang/pt/icon_ip.gif
deleted file mode 100644
index 5822a929a..000000000
Binary files a/styles/templates/default/images/lang/pt/icon_ip.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/pt/icon_mc.gif b/styles/templates/default/images/lang/pt/icon_mc.gif
deleted file mode 100644
index 1db8e37f5..000000000
Binary files a/styles/templates/default/images/lang/pt/icon_mc.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/pt/icon_pm.gif b/styles/templates/default/images/lang/pt/icon_pm.gif
deleted file mode 100644
index 432075c59..000000000
Binary files a/styles/templates/default/images/lang/pt/icon_pm.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/pt/icon_poll.gif b/styles/templates/default/images/lang/pt/icon_poll.gif
deleted file mode 100644
index 73a29852d..000000000
Binary files a/styles/templates/default/images/lang/pt/icon_poll.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/pt/icon_profile.gif b/styles/templates/default/images/lang/pt/icon_profile.gif
deleted file mode 100644
index abac5dd87..000000000
Binary files a/styles/templates/default/images/lang/pt/icon_profile.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/pt/icon_quote.gif b/styles/templates/default/images/lang/pt/icon_quote.gif
deleted file mode 100644
index 9497b2c57..000000000
Binary files a/styles/templates/default/images/lang/pt/icon_quote.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/pt/icon_search.gif b/styles/templates/default/images/lang/pt/icon_search.gif
deleted file mode 100644
index 5d9c01713..000000000
Binary files a/styles/templates/default/images/lang/pt/icon_search.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/pt/icon_www.gif b/styles/templates/default/images/lang/pt/icon_www.gif
deleted file mode 100644
index 3da9e0e8c..000000000
Binary files a/styles/templates/default/images/lang/pt/icon_www.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/pt/msg_newpost.gif b/styles/templates/default/images/lang/pt/msg_newpost.gif
deleted file mode 100644
index 33a1e1c72..000000000
Binary files a/styles/templates/default/images/lang/pt/msg_newpost.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/pt/post.gif b/styles/templates/default/images/lang/pt/post.gif
deleted file mode 100644
index 9d53572cd..000000000
Binary files a/styles/templates/default/images/lang/pt/post.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/pt/release.gif b/styles/templates/default/images/lang/pt/release.gif
deleted file mode 100644
index 25440636e..000000000
Binary files a/styles/templates/default/images/lang/pt/release.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/pt/reply-locked.gif b/styles/templates/default/images/lang/pt/reply-locked.gif
deleted file mode 100644
index edfd75a87..000000000
Binary files a/styles/templates/default/images/lang/pt/reply-locked.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/pt/reply.gif b/styles/templates/default/images/lang/pt/reply.gif
deleted file mode 100644
index f18c08923..000000000
Binary files a/styles/templates/default/images/lang/pt/reply.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ro/icon_code.gif b/styles/templates/default/images/lang/ro/icon_code.gif
deleted file mode 100644
index 5afd6e2c7..000000000
Binary files a/styles/templates/default/images/lang/ro/icon_code.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ro/icon_edit.gif b/styles/templates/default/images/lang/ro/icon_edit.gif
deleted file mode 100644
index 65937c5fc..000000000
Binary files a/styles/templates/default/images/lang/ro/icon_edit.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ro/icon_email.gif b/styles/templates/default/images/lang/ro/icon_email.gif
deleted file mode 100644
index 67137b802..000000000
Binary files a/styles/templates/default/images/lang/ro/icon_email.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ro/icon_icq_add.gif b/styles/templates/default/images/lang/ro/icon_icq_add.gif
deleted file mode 100644
index c0c5cd552..000000000
Binary files a/styles/templates/default/images/lang/ro/icon_icq_add.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ro/icon_ip.gif b/styles/templates/default/images/lang/ro/icon_ip.gif
deleted file mode 100644
index 5822a929a..000000000
Binary files a/styles/templates/default/images/lang/ro/icon_ip.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ro/icon_mc.gif b/styles/templates/default/images/lang/ro/icon_mc.gif
deleted file mode 100644
index 1db8e37f5..000000000
Binary files a/styles/templates/default/images/lang/ro/icon_mc.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ro/icon_pm.gif b/styles/templates/default/images/lang/ro/icon_pm.gif
deleted file mode 100644
index 432075c59..000000000
Binary files a/styles/templates/default/images/lang/ro/icon_pm.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ro/icon_poll.gif b/styles/templates/default/images/lang/ro/icon_poll.gif
deleted file mode 100644
index 73a29852d..000000000
Binary files a/styles/templates/default/images/lang/ro/icon_poll.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ro/icon_profile.gif b/styles/templates/default/images/lang/ro/icon_profile.gif
deleted file mode 100644
index abac5dd87..000000000
Binary files a/styles/templates/default/images/lang/ro/icon_profile.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ro/icon_quote.gif b/styles/templates/default/images/lang/ro/icon_quote.gif
deleted file mode 100644
index 9497b2c57..000000000
Binary files a/styles/templates/default/images/lang/ro/icon_quote.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ro/icon_search.gif b/styles/templates/default/images/lang/ro/icon_search.gif
deleted file mode 100644
index 5d9c01713..000000000
Binary files a/styles/templates/default/images/lang/ro/icon_search.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ro/icon_www.gif b/styles/templates/default/images/lang/ro/icon_www.gif
deleted file mode 100644
index 3da9e0e8c..000000000
Binary files a/styles/templates/default/images/lang/ro/icon_www.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ro/msg_newpost.gif b/styles/templates/default/images/lang/ro/msg_newpost.gif
deleted file mode 100644
index 33a1e1c72..000000000
Binary files a/styles/templates/default/images/lang/ro/msg_newpost.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ro/post.gif b/styles/templates/default/images/lang/ro/post.gif
deleted file mode 100644
index 9d53572cd..000000000
Binary files a/styles/templates/default/images/lang/ro/post.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ro/release.gif b/styles/templates/default/images/lang/ro/release.gif
deleted file mode 100644
index 25440636e..000000000
Binary files a/styles/templates/default/images/lang/ro/release.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ro/reply-locked.gif b/styles/templates/default/images/lang/ro/reply-locked.gif
deleted file mode 100644
index edfd75a87..000000000
Binary files a/styles/templates/default/images/lang/ro/reply-locked.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ro/reply.gif b/styles/templates/default/images/lang/ro/reply.gif
deleted file mode 100644
index f18c08923..000000000
Binary files a/styles/templates/default/images/lang/ro/reply.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ru/icon_code.gif b/styles/templates/default/images/lang/ru/icon_code.gif
deleted file mode 100644
index b3d65a375..000000000
Binary files a/styles/templates/default/images/lang/ru/icon_code.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ru/icon_edit.gif b/styles/templates/default/images/lang/ru/icon_edit.gif
deleted file mode 100644
index fd52b6b27..000000000
Binary files a/styles/templates/default/images/lang/ru/icon_edit.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ru/icon_email.gif b/styles/templates/default/images/lang/ru/icon_email.gif
deleted file mode 100644
index 67137b802..000000000
Binary files a/styles/templates/default/images/lang/ru/icon_email.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ru/icon_icq_add.gif b/styles/templates/default/images/lang/ru/icon_icq_add.gif
deleted file mode 100644
index 4309f27b5..000000000
Binary files a/styles/templates/default/images/lang/ru/icon_icq_add.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ru/icon_ip.gif b/styles/templates/default/images/lang/ru/icon_ip.gif
deleted file mode 100644
index 5822a929a..000000000
Binary files a/styles/templates/default/images/lang/ru/icon_ip.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ru/icon_mc.gif b/styles/templates/default/images/lang/ru/icon_mc.gif
deleted file mode 100644
index 91460ea53..000000000
Binary files a/styles/templates/default/images/lang/ru/icon_mc.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ru/icon_pm.gif b/styles/templates/default/images/lang/ru/icon_pm.gif
deleted file mode 100644
index 390db0b74..000000000
Binary files a/styles/templates/default/images/lang/ru/icon_pm.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ru/icon_poll.gif b/styles/templates/default/images/lang/ru/icon_poll.gif
deleted file mode 100644
index 30a6c5ed3..000000000
Binary files a/styles/templates/default/images/lang/ru/icon_poll.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ru/icon_profile.gif b/styles/templates/default/images/lang/ru/icon_profile.gif
deleted file mode 100644
index 422304b4f..000000000
Binary files a/styles/templates/default/images/lang/ru/icon_profile.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ru/icon_quote.gif b/styles/templates/default/images/lang/ru/icon_quote.gif
deleted file mode 100644
index 7997dd495..000000000
Binary files a/styles/templates/default/images/lang/ru/icon_quote.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ru/icon_search.gif b/styles/templates/default/images/lang/ru/icon_search.gif
deleted file mode 100644
index 11e09d7a1..000000000
Binary files a/styles/templates/default/images/lang/ru/icon_search.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ru/icon_www.gif b/styles/templates/default/images/lang/ru/icon_www.gif
deleted file mode 100644
index 3da9e0e8c..000000000
Binary files a/styles/templates/default/images/lang/ru/icon_www.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ru/msg_newpost.gif b/styles/templates/default/images/lang/ru/msg_newpost.gif
deleted file mode 100644
index f5d7bcb81..000000000
Binary files a/styles/templates/default/images/lang/ru/msg_newpost.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ru/post.gif b/styles/templates/default/images/lang/ru/post.gif
deleted file mode 100644
index e5e3349a0..000000000
Binary files a/styles/templates/default/images/lang/ru/post.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ru/release.gif b/styles/templates/default/images/lang/ru/release.gif
deleted file mode 100644
index 8daa8f8cb..000000000
Binary files a/styles/templates/default/images/lang/ru/release.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ru/reply-locked.gif b/styles/templates/default/images/lang/ru/reply-locked.gif
deleted file mode 100644
index 538693e91..000000000
Binary files a/styles/templates/default/images/lang/ru/reply-locked.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/ru/reply.gif b/styles/templates/default/images/lang/ru/reply.gif
deleted file mode 100644
index 37914ed0d..000000000
Binary files a/styles/templates/default/images/lang/ru/reply.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/sk/icon_code.gif b/styles/templates/default/images/lang/sk/icon_code.gif
deleted file mode 100644
index 5afd6e2c7..000000000
Binary files a/styles/templates/default/images/lang/sk/icon_code.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/sk/icon_edit.gif b/styles/templates/default/images/lang/sk/icon_edit.gif
deleted file mode 100644
index 65937c5fc..000000000
Binary files a/styles/templates/default/images/lang/sk/icon_edit.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/sk/icon_email.gif b/styles/templates/default/images/lang/sk/icon_email.gif
deleted file mode 100644
index 67137b802..000000000
Binary files a/styles/templates/default/images/lang/sk/icon_email.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/sk/icon_icq_add.gif b/styles/templates/default/images/lang/sk/icon_icq_add.gif
deleted file mode 100644
index c0c5cd552..000000000
Binary files a/styles/templates/default/images/lang/sk/icon_icq_add.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/sk/icon_ip.gif b/styles/templates/default/images/lang/sk/icon_ip.gif
deleted file mode 100644
index 5822a929a..000000000
Binary files a/styles/templates/default/images/lang/sk/icon_ip.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/sk/icon_mc.gif b/styles/templates/default/images/lang/sk/icon_mc.gif
deleted file mode 100644
index 1db8e37f5..000000000
Binary files a/styles/templates/default/images/lang/sk/icon_mc.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/sk/icon_pm.gif b/styles/templates/default/images/lang/sk/icon_pm.gif
deleted file mode 100644
index 432075c59..000000000
Binary files a/styles/templates/default/images/lang/sk/icon_pm.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/sk/icon_poll.gif b/styles/templates/default/images/lang/sk/icon_poll.gif
deleted file mode 100644
index 73a29852d..000000000
Binary files a/styles/templates/default/images/lang/sk/icon_poll.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/sk/icon_profile.gif b/styles/templates/default/images/lang/sk/icon_profile.gif
deleted file mode 100644
index abac5dd87..000000000
Binary files a/styles/templates/default/images/lang/sk/icon_profile.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/sk/icon_quote.gif b/styles/templates/default/images/lang/sk/icon_quote.gif
deleted file mode 100644
index 9497b2c57..000000000
Binary files a/styles/templates/default/images/lang/sk/icon_quote.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/sk/icon_search.gif b/styles/templates/default/images/lang/sk/icon_search.gif
deleted file mode 100644
index 5d9c01713..000000000
Binary files a/styles/templates/default/images/lang/sk/icon_search.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/sk/icon_www.gif b/styles/templates/default/images/lang/sk/icon_www.gif
deleted file mode 100644
index 3da9e0e8c..000000000
Binary files a/styles/templates/default/images/lang/sk/icon_www.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/sk/msg_newpost.gif b/styles/templates/default/images/lang/sk/msg_newpost.gif
deleted file mode 100644
index 33a1e1c72..000000000
Binary files a/styles/templates/default/images/lang/sk/msg_newpost.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/sk/post.gif b/styles/templates/default/images/lang/sk/post.gif
deleted file mode 100644
index 9d53572cd..000000000
Binary files a/styles/templates/default/images/lang/sk/post.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/sk/release.gif b/styles/templates/default/images/lang/sk/release.gif
deleted file mode 100644
index 25440636e..000000000
Binary files a/styles/templates/default/images/lang/sk/release.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/sk/reply-locked.gif b/styles/templates/default/images/lang/sk/reply-locked.gif
deleted file mode 100644
index edfd75a87..000000000
Binary files a/styles/templates/default/images/lang/sk/reply-locked.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/sk/reply.gif b/styles/templates/default/images/lang/sk/reply.gif
deleted file mode 100644
index f18c08923..000000000
Binary files a/styles/templates/default/images/lang/sk/reply.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/sl/icon_code.gif b/styles/templates/default/images/lang/sl/icon_code.gif
deleted file mode 100644
index 5afd6e2c7..000000000
Binary files a/styles/templates/default/images/lang/sl/icon_code.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/sl/icon_edit.gif b/styles/templates/default/images/lang/sl/icon_edit.gif
deleted file mode 100644
index 65937c5fc..000000000
Binary files a/styles/templates/default/images/lang/sl/icon_edit.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/sl/icon_email.gif b/styles/templates/default/images/lang/sl/icon_email.gif
deleted file mode 100644
index 67137b802..000000000
Binary files a/styles/templates/default/images/lang/sl/icon_email.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/sl/icon_icq_add.gif b/styles/templates/default/images/lang/sl/icon_icq_add.gif
deleted file mode 100644
index c0c5cd552..000000000
Binary files a/styles/templates/default/images/lang/sl/icon_icq_add.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/sl/icon_ip.gif b/styles/templates/default/images/lang/sl/icon_ip.gif
deleted file mode 100644
index 5822a929a..000000000
Binary files a/styles/templates/default/images/lang/sl/icon_ip.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/sl/icon_mc.gif b/styles/templates/default/images/lang/sl/icon_mc.gif
deleted file mode 100644
index 1db8e37f5..000000000
Binary files a/styles/templates/default/images/lang/sl/icon_mc.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/sl/icon_pm.gif b/styles/templates/default/images/lang/sl/icon_pm.gif
deleted file mode 100644
index 432075c59..000000000
Binary files a/styles/templates/default/images/lang/sl/icon_pm.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/sl/icon_poll.gif b/styles/templates/default/images/lang/sl/icon_poll.gif
deleted file mode 100644
index 73a29852d..000000000
Binary files a/styles/templates/default/images/lang/sl/icon_poll.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/sl/icon_profile.gif b/styles/templates/default/images/lang/sl/icon_profile.gif
deleted file mode 100644
index abac5dd87..000000000
Binary files a/styles/templates/default/images/lang/sl/icon_profile.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/sl/icon_quote.gif b/styles/templates/default/images/lang/sl/icon_quote.gif
deleted file mode 100644
index 9497b2c57..000000000
Binary files a/styles/templates/default/images/lang/sl/icon_quote.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/sl/icon_search.gif b/styles/templates/default/images/lang/sl/icon_search.gif
deleted file mode 100644
index 5d9c01713..000000000
Binary files a/styles/templates/default/images/lang/sl/icon_search.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/sl/icon_www.gif b/styles/templates/default/images/lang/sl/icon_www.gif
deleted file mode 100644
index 3da9e0e8c..000000000
Binary files a/styles/templates/default/images/lang/sl/icon_www.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/sl/msg_newpost.gif b/styles/templates/default/images/lang/sl/msg_newpost.gif
deleted file mode 100644
index 33a1e1c72..000000000
Binary files a/styles/templates/default/images/lang/sl/msg_newpost.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/sl/post.gif b/styles/templates/default/images/lang/sl/post.gif
deleted file mode 100644
index 9d53572cd..000000000
Binary files a/styles/templates/default/images/lang/sl/post.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/sl/release.gif b/styles/templates/default/images/lang/sl/release.gif
deleted file mode 100644
index 25440636e..000000000
Binary files a/styles/templates/default/images/lang/sl/release.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/sl/reply-locked.gif b/styles/templates/default/images/lang/sl/reply-locked.gif
deleted file mode 100644
index edfd75a87..000000000
Binary files a/styles/templates/default/images/lang/sl/reply-locked.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/sl/reply.gif b/styles/templates/default/images/lang/sl/reply.gif
deleted file mode 100644
index f18c08923..000000000
Binary files a/styles/templates/default/images/lang/sl/reply.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/source/icon_code.gif b/styles/templates/default/images/lang/source/icon_code.gif
deleted file mode 100644
index 5afd6e2c7..000000000
Binary files a/styles/templates/default/images/lang/source/icon_code.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/source/icon_edit.gif b/styles/templates/default/images/lang/source/icon_edit.gif
deleted file mode 100644
index 65937c5fc..000000000
Binary files a/styles/templates/default/images/lang/source/icon_edit.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/source/icon_email.gif b/styles/templates/default/images/lang/source/icon_email.gif
deleted file mode 100644
index 67137b802..000000000
Binary files a/styles/templates/default/images/lang/source/icon_email.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/source/icon_icq_add.gif b/styles/templates/default/images/lang/source/icon_icq_add.gif
deleted file mode 100644
index c0c5cd552..000000000
Binary files a/styles/templates/default/images/lang/source/icon_icq_add.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/source/icon_ip.gif b/styles/templates/default/images/lang/source/icon_ip.gif
deleted file mode 100644
index 5822a929a..000000000
Binary files a/styles/templates/default/images/lang/source/icon_ip.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/source/icon_mc.gif b/styles/templates/default/images/lang/source/icon_mc.gif
deleted file mode 100644
index 1db8e37f5..000000000
Binary files a/styles/templates/default/images/lang/source/icon_mc.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/source/icon_pm.gif b/styles/templates/default/images/lang/source/icon_pm.gif
deleted file mode 100644
index 432075c59..000000000
Binary files a/styles/templates/default/images/lang/source/icon_pm.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/source/icon_poll.gif b/styles/templates/default/images/lang/source/icon_poll.gif
deleted file mode 100644
index 73a29852d..000000000
Binary files a/styles/templates/default/images/lang/source/icon_poll.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/source/icon_profile.gif b/styles/templates/default/images/lang/source/icon_profile.gif
deleted file mode 100644
index abac5dd87..000000000
Binary files a/styles/templates/default/images/lang/source/icon_profile.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/source/icon_quote.gif b/styles/templates/default/images/lang/source/icon_quote.gif
deleted file mode 100644
index 9497b2c57..000000000
Binary files a/styles/templates/default/images/lang/source/icon_quote.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/source/icon_search.gif b/styles/templates/default/images/lang/source/icon_search.gif
deleted file mode 100644
index 5d9c01713..000000000
Binary files a/styles/templates/default/images/lang/source/icon_search.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/source/icon_www.gif b/styles/templates/default/images/lang/source/icon_www.gif
deleted file mode 100644
index 3da9e0e8c..000000000
Binary files a/styles/templates/default/images/lang/source/icon_www.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/source/icons_sources/icon_large.gif b/styles/templates/default/images/lang/source/icons_sources/icon_large.gif
deleted file mode 100644
index e3d072db6..000000000
Binary files a/styles/templates/default/images/lang/source/icons_sources/icon_large.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/source/icons_sources/icon_medium.gif b/styles/templates/default/images/lang/source/icons_sources/icon_medium.gif
deleted file mode 100644
index fed70f75e..000000000
Binary files a/styles/templates/default/images/lang/source/icons_sources/icon_medium.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/source/icons_sources/icon_small.gif b/styles/templates/default/images/lang/source/icons_sources/icon_small.gif
deleted file mode 100644
index 85b723015..000000000
Binary files a/styles/templates/default/images/lang/source/icons_sources/icon_small.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/source/msg_newpost.gif b/styles/templates/default/images/lang/source/msg_newpost.gif
deleted file mode 100644
index 33a1e1c72..000000000
Binary files a/styles/templates/default/images/lang/source/msg_newpost.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/source/post.gif b/styles/templates/default/images/lang/source/post.gif
deleted file mode 100644
index 9d53572cd..000000000
Binary files a/styles/templates/default/images/lang/source/post.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/source/release.gif b/styles/templates/default/images/lang/source/release.gif
deleted file mode 100644
index 25440636e..000000000
Binary files a/styles/templates/default/images/lang/source/release.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/source/reply-locked.gif b/styles/templates/default/images/lang/source/reply-locked.gif
deleted file mode 100644
index edfd75a87..000000000
Binary files a/styles/templates/default/images/lang/source/reply-locked.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/source/reply.gif b/styles/templates/default/images/lang/source/reply.gif
deleted file mode 100644
index f18c08923..000000000
Binary files a/styles/templates/default/images/lang/source/reply.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/sq/icon_code.gif b/styles/templates/default/images/lang/sq/icon_code.gif
deleted file mode 100644
index 5afd6e2c7..000000000
Binary files a/styles/templates/default/images/lang/sq/icon_code.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/sq/icon_edit.gif b/styles/templates/default/images/lang/sq/icon_edit.gif
deleted file mode 100644
index 65937c5fc..000000000
Binary files a/styles/templates/default/images/lang/sq/icon_edit.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/sq/icon_email.gif b/styles/templates/default/images/lang/sq/icon_email.gif
deleted file mode 100644
index 67137b802..000000000
Binary files a/styles/templates/default/images/lang/sq/icon_email.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/sq/icon_icq_add.gif b/styles/templates/default/images/lang/sq/icon_icq_add.gif
deleted file mode 100644
index c0c5cd552..000000000
Binary files a/styles/templates/default/images/lang/sq/icon_icq_add.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/sq/icon_ip.gif b/styles/templates/default/images/lang/sq/icon_ip.gif
deleted file mode 100644
index 5822a929a..000000000
Binary files a/styles/templates/default/images/lang/sq/icon_ip.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/sq/icon_mc.gif b/styles/templates/default/images/lang/sq/icon_mc.gif
deleted file mode 100644
index 1db8e37f5..000000000
Binary files a/styles/templates/default/images/lang/sq/icon_mc.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/sq/icon_pm.gif b/styles/templates/default/images/lang/sq/icon_pm.gif
deleted file mode 100644
index 432075c59..000000000
Binary files a/styles/templates/default/images/lang/sq/icon_pm.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/sq/icon_poll.gif b/styles/templates/default/images/lang/sq/icon_poll.gif
deleted file mode 100644
index 73a29852d..000000000
Binary files a/styles/templates/default/images/lang/sq/icon_poll.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/sq/icon_profile.gif b/styles/templates/default/images/lang/sq/icon_profile.gif
deleted file mode 100644
index abac5dd87..000000000
Binary files a/styles/templates/default/images/lang/sq/icon_profile.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/sq/icon_quote.gif b/styles/templates/default/images/lang/sq/icon_quote.gif
deleted file mode 100644
index 9497b2c57..000000000
Binary files a/styles/templates/default/images/lang/sq/icon_quote.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/sq/icon_search.gif b/styles/templates/default/images/lang/sq/icon_search.gif
deleted file mode 100644
index 5d9c01713..000000000
Binary files a/styles/templates/default/images/lang/sq/icon_search.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/sq/icon_www.gif b/styles/templates/default/images/lang/sq/icon_www.gif
deleted file mode 100644
index 3da9e0e8c..000000000
Binary files a/styles/templates/default/images/lang/sq/icon_www.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/sq/msg_newpost.gif b/styles/templates/default/images/lang/sq/msg_newpost.gif
deleted file mode 100644
index 33a1e1c72..000000000
Binary files a/styles/templates/default/images/lang/sq/msg_newpost.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/sq/post.gif b/styles/templates/default/images/lang/sq/post.gif
deleted file mode 100644
index 9d53572cd..000000000
Binary files a/styles/templates/default/images/lang/sq/post.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/sq/release.gif b/styles/templates/default/images/lang/sq/release.gif
deleted file mode 100644
index 25440636e..000000000
Binary files a/styles/templates/default/images/lang/sq/release.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/sq/reply-locked.gif b/styles/templates/default/images/lang/sq/reply-locked.gif
deleted file mode 100644
index edfd75a87..000000000
Binary files a/styles/templates/default/images/lang/sq/reply-locked.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/sq/reply.gif b/styles/templates/default/images/lang/sq/reply.gif
deleted file mode 100644
index f18c08923..000000000
Binary files a/styles/templates/default/images/lang/sq/reply.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/sr/icon_code.gif b/styles/templates/default/images/lang/sr/icon_code.gif
deleted file mode 100644
index 5afd6e2c7..000000000
Binary files a/styles/templates/default/images/lang/sr/icon_code.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/sr/icon_edit.gif b/styles/templates/default/images/lang/sr/icon_edit.gif
deleted file mode 100644
index 65937c5fc..000000000
Binary files a/styles/templates/default/images/lang/sr/icon_edit.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/sr/icon_email.gif b/styles/templates/default/images/lang/sr/icon_email.gif
deleted file mode 100644
index 67137b802..000000000
Binary files a/styles/templates/default/images/lang/sr/icon_email.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/sr/icon_icq_add.gif b/styles/templates/default/images/lang/sr/icon_icq_add.gif
deleted file mode 100644
index c0c5cd552..000000000
Binary files a/styles/templates/default/images/lang/sr/icon_icq_add.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/sr/icon_ip.gif b/styles/templates/default/images/lang/sr/icon_ip.gif
deleted file mode 100644
index 5822a929a..000000000
Binary files a/styles/templates/default/images/lang/sr/icon_ip.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/sr/icon_mc.gif b/styles/templates/default/images/lang/sr/icon_mc.gif
deleted file mode 100644
index 1db8e37f5..000000000
Binary files a/styles/templates/default/images/lang/sr/icon_mc.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/sr/icon_pm.gif b/styles/templates/default/images/lang/sr/icon_pm.gif
deleted file mode 100644
index 432075c59..000000000
Binary files a/styles/templates/default/images/lang/sr/icon_pm.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/sr/icon_poll.gif b/styles/templates/default/images/lang/sr/icon_poll.gif
deleted file mode 100644
index 73a29852d..000000000
Binary files a/styles/templates/default/images/lang/sr/icon_poll.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/sr/icon_profile.gif b/styles/templates/default/images/lang/sr/icon_profile.gif
deleted file mode 100644
index abac5dd87..000000000
Binary files a/styles/templates/default/images/lang/sr/icon_profile.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/sr/icon_quote.gif b/styles/templates/default/images/lang/sr/icon_quote.gif
deleted file mode 100644
index 9497b2c57..000000000
Binary files a/styles/templates/default/images/lang/sr/icon_quote.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/sr/icon_search.gif b/styles/templates/default/images/lang/sr/icon_search.gif
deleted file mode 100644
index 5d9c01713..000000000
Binary files a/styles/templates/default/images/lang/sr/icon_search.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/sr/icon_www.gif b/styles/templates/default/images/lang/sr/icon_www.gif
deleted file mode 100644
index 3da9e0e8c..000000000
Binary files a/styles/templates/default/images/lang/sr/icon_www.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/sr/msg_newpost.gif b/styles/templates/default/images/lang/sr/msg_newpost.gif
deleted file mode 100644
index 33a1e1c72..000000000
Binary files a/styles/templates/default/images/lang/sr/msg_newpost.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/sr/post.gif b/styles/templates/default/images/lang/sr/post.gif
deleted file mode 100644
index 9d53572cd..000000000
Binary files a/styles/templates/default/images/lang/sr/post.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/sr/release.gif b/styles/templates/default/images/lang/sr/release.gif
deleted file mode 100644
index 25440636e..000000000
Binary files a/styles/templates/default/images/lang/sr/release.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/sr/reply-locked.gif b/styles/templates/default/images/lang/sr/reply-locked.gif
deleted file mode 100644
index edfd75a87..000000000
Binary files a/styles/templates/default/images/lang/sr/reply-locked.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/sr/reply.gif b/styles/templates/default/images/lang/sr/reply.gif
deleted file mode 100644
index f18c08923..000000000
Binary files a/styles/templates/default/images/lang/sr/reply.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/sv/icon_code.gif b/styles/templates/default/images/lang/sv/icon_code.gif
deleted file mode 100644
index 5afd6e2c7..000000000
Binary files a/styles/templates/default/images/lang/sv/icon_code.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/sv/icon_edit.gif b/styles/templates/default/images/lang/sv/icon_edit.gif
deleted file mode 100644
index 65937c5fc..000000000
Binary files a/styles/templates/default/images/lang/sv/icon_edit.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/sv/icon_email.gif b/styles/templates/default/images/lang/sv/icon_email.gif
deleted file mode 100644
index 67137b802..000000000
Binary files a/styles/templates/default/images/lang/sv/icon_email.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/sv/icon_icq_add.gif b/styles/templates/default/images/lang/sv/icon_icq_add.gif
deleted file mode 100644
index c0c5cd552..000000000
Binary files a/styles/templates/default/images/lang/sv/icon_icq_add.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/sv/icon_ip.gif b/styles/templates/default/images/lang/sv/icon_ip.gif
deleted file mode 100644
index 5822a929a..000000000
Binary files a/styles/templates/default/images/lang/sv/icon_ip.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/sv/icon_mc.gif b/styles/templates/default/images/lang/sv/icon_mc.gif
deleted file mode 100644
index 1db8e37f5..000000000
Binary files a/styles/templates/default/images/lang/sv/icon_mc.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/sv/icon_pm.gif b/styles/templates/default/images/lang/sv/icon_pm.gif
deleted file mode 100644
index 432075c59..000000000
Binary files a/styles/templates/default/images/lang/sv/icon_pm.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/sv/icon_poll.gif b/styles/templates/default/images/lang/sv/icon_poll.gif
deleted file mode 100644
index 73a29852d..000000000
Binary files a/styles/templates/default/images/lang/sv/icon_poll.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/sv/icon_profile.gif b/styles/templates/default/images/lang/sv/icon_profile.gif
deleted file mode 100644
index abac5dd87..000000000
Binary files a/styles/templates/default/images/lang/sv/icon_profile.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/sv/icon_quote.gif b/styles/templates/default/images/lang/sv/icon_quote.gif
deleted file mode 100644
index 9497b2c57..000000000
Binary files a/styles/templates/default/images/lang/sv/icon_quote.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/sv/icon_search.gif b/styles/templates/default/images/lang/sv/icon_search.gif
deleted file mode 100644
index 5d9c01713..000000000
Binary files a/styles/templates/default/images/lang/sv/icon_search.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/sv/icon_www.gif b/styles/templates/default/images/lang/sv/icon_www.gif
deleted file mode 100644
index 3da9e0e8c..000000000
Binary files a/styles/templates/default/images/lang/sv/icon_www.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/sv/msg_newpost.gif b/styles/templates/default/images/lang/sv/msg_newpost.gif
deleted file mode 100644
index 33a1e1c72..000000000
Binary files a/styles/templates/default/images/lang/sv/msg_newpost.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/sv/post.gif b/styles/templates/default/images/lang/sv/post.gif
deleted file mode 100644
index 9d53572cd..000000000
Binary files a/styles/templates/default/images/lang/sv/post.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/sv/release.gif b/styles/templates/default/images/lang/sv/release.gif
deleted file mode 100644
index 25440636e..000000000
Binary files a/styles/templates/default/images/lang/sv/release.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/sv/reply-locked.gif b/styles/templates/default/images/lang/sv/reply-locked.gif
deleted file mode 100644
index edfd75a87..000000000
Binary files a/styles/templates/default/images/lang/sv/reply-locked.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/sv/reply.gif b/styles/templates/default/images/lang/sv/reply.gif
deleted file mode 100644
index f18c08923..000000000
Binary files a/styles/templates/default/images/lang/sv/reply.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/tg/icon_code.gif b/styles/templates/default/images/lang/tg/icon_code.gif
deleted file mode 100644
index 5afd6e2c7..000000000
Binary files a/styles/templates/default/images/lang/tg/icon_code.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/tg/icon_edit.gif b/styles/templates/default/images/lang/tg/icon_edit.gif
deleted file mode 100644
index 65937c5fc..000000000
Binary files a/styles/templates/default/images/lang/tg/icon_edit.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/tg/icon_email.gif b/styles/templates/default/images/lang/tg/icon_email.gif
deleted file mode 100644
index 67137b802..000000000
Binary files a/styles/templates/default/images/lang/tg/icon_email.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/tg/icon_icq_add.gif b/styles/templates/default/images/lang/tg/icon_icq_add.gif
deleted file mode 100644
index c0c5cd552..000000000
Binary files a/styles/templates/default/images/lang/tg/icon_icq_add.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/tg/icon_ip.gif b/styles/templates/default/images/lang/tg/icon_ip.gif
deleted file mode 100644
index 5822a929a..000000000
Binary files a/styles/templates/default/images/lang/tg/icon_ip.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/tg/icon_mc.gif b/styles/templates/default/images/lang/tg/icon_mc.gif
deleted file mode 100644
index 1db8e37f5..000000000
Binary files a/styles/templates/default/images/lang/tg/icon_mc.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/tg/icon_pm.gif b/styles/templates/default/images/lang/tg/icon_pm.gif
deleted file mode 100644
index 432075c59..000000000
Binary files a/styles/templates/default/images/lang/tg/icon_pm.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/tg/icon_poll.gif b/styles/templates/default/images/lang/tg/icon_poll.gif
deleted file mode 100644
index 73a29852d..000000000
Binary files a/styles/templates/default/images/lang/tg/icon_poll.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/tg/icon_profile.gif b/styles/templates/default/images/lang/tg/icon_profile.gif
deleted file mode 100644
index abac5dd87..000000000
Binary files a/styles/templates/default/images/lang/tg/icon_profile.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/tg/icon_quote.gif b/styles/templates/default/images/lang/tg/icon_quote.gif
deleted file mode 100644
index 9497b2c57..000000000
Binary files a/styles/templates/default/images/lang/tg/icon_quote.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/tg/icon_search.gif b/styles/templates/default/images/lang/tg/icon_search.gif
deleted file mode 100644
index 5d9c01713..000000000
Binary files a/styles/templates/default/images/lang/tg/icon_search.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/tg/icon_www.gif b/styles/templates/default/images/lang/tg/icon_www.gif
deleted file mode 100644
index 3da9e0e8c..000000000
Binary files a/styles/templates/default/images/lang/tg/icon_www.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/tg/msg_newpost.gif b/styles/templates/default/images/lang/tg/msg_newpost.gif
deleted file mode 100644
index 33a1e1c72..000000000
Binary files a/styles/templates/default/images/lang/tg/msg_newpost.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/tg/post.gif b/styles/templates/default/images/lang/tg/post.gif
deleted file mode 100644
index 9d53572cd..000000000
Binary files a/styles/templates/default/images/lang/tg/post.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/tg/release.gif b/styles/templates/default/images/lang/tg/release.gif
deleted file mode 100644
index 25440636e..000000000
Binary files a/styles/templates/default/images/lang/tg/release.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/tg/reply-locked.gif b/styles/templates/default/images/lang/tg/reply-locked.gif
deleted file mode 100644
index edfd75a87..000000000
Binary files a/styles/templates/default/images/lang/tg/reply-locked.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/tg/reply.gif b/styles/templates/default/images/lang/tg/reply.gif
deleted file mode 100644
index f18c08923..000000000
Binary files a/styles/templates/default/images/lang/tg/reply.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/th/icon_code.gif b/styles/templates/default/images/lang/th/icon_code.gif
deleted file mode 100644
index 5afd6e2c7..000000000
Binary files a/styles/templates/default/images/lang/th/icon_code.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/th/icon_edit.gif b/styles/templates/default/images/lang/th/icon_edit.gif
deleted file mode 100644
index 65937c5fc..000000000
Binary files a/styles/templates/default/images/lang/th/icon_edit.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/th/icon_email.gif b/styles/templates/default/images/lang/th/icon_email.gif
deleted file mode 100644
index 67137b802..000000000
Binary files a/styles/templates/default/images/lang/th/icon_email.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/th/icon_icq_add.gif b/styles/templates/default/images/lang/th/icon_icq_add.gif
deleted file mode 100644
index c0c5cd552..000000000
Binary files a/styles/templates/default/images/lang/th/icon_icq_add.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/th/icon_ip.gif b/styles/templates/default/images/lang/th/icon_ip.gif
deleted file mode 100644
index 5822a929a..000000000
Binary files a/styles/templates/default/images/lang/th/icon_ip.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/th/icon_mc.gif b/styles/templates/default/images/lang/th/icon_mc.gif
deleted file mode 100644
index 1db8e37f5..000000000
Binary files a/styles/templates/default/images/lang/th/icon_mc.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/th/icon_pm.gif b/styles/templates/default/images/lang/th/icon_pm.gif
deleted file mode 100644
index 432075c59..000000000
Binary files a/styles/templates/default/images/lang/th/icon_pm.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/th/icon_poll.gif b/styles/templates/default/images/lang/th/icon_poll.gif
deleted file mode 100644
index 73a29852d..000000000
Binary files a/styles/templates/default/images/lang/th/icon_poll.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/th/icon_profile.gif b/styles/templates/default/images/lang/th/icon_profile.gif
deleted file mode 100644
index abac5dd87..000000000
Binary files a/styles/templates/default/images/lang/th/icon_profile.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/th/icon_quote.gif b/styles/templates/default/images/lang/th/icon_quote.gif
deleted file mode 100644
index 9497b2c57..000000000
Binary files a/styles/templates/default/images/lang/th/icon_quote.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/th/icon_search.gif b/styles/templates/default/images/lang/th/icon_search.gif
deleted file mode 100644
index 5d9c01713..000000000
Binary files a/styles/templates/default/images/lang/th/icon_search.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/th/icon_www.gif b/styles/templates/default/images/lang/th/icon_www.gif
deleted file mode 100644
index 3da9e0e8c..000000000
Binary files a/styles/templates/default/images/lang/th/icon_www.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/th/msg_newpost.gif b/styles/templates/default/images/lang/th/msg_newpost.gif
deleted file mode 100644
index 33a1e1c72..000000000
Binary files a/styles/templates/default/images/lang/th/msg_newpost.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/th/post.gif b/styles/templates/default/images/lang/th/post.gif
deleted file mode 100644
index 9d53572cd..000000000
Binary files a/styles/templates/default/images/lang/th/post.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/th/release.gif b/styles/templates/default/images/lang/th/release.gif
deleted file mode 100644
index 25440636e..000000000
Binary files a/styles/templates/default/images/lang/th/release.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/th/reply-locked.gif b/styles/templates/default/images/lang/th/reply-locked.gif
deleted file mode 100644
index edfd75a87..000000000
Binary files a/styles/templates/default/images/lang/th/reply-locked.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/th/reply.gif b/styles/templates/default/images/lang/th/reply.gif
deleted file mode 100644
index f18c08923..000000000
Binary files a/styles/templates/default/images/lang/th/reply.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/tr/icon_code.gif b/styles/templates/default/images/lang/tr/icon_code.gif
deleted file mode 100644
index 5afd6e2c7..000000000
Binary files a/styles/templates/default/images/lang/tr/icon_code.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/tr/icon_edit.gif b/styles/templates/default/images/lang/tr/icon_edit.gif
deleted file mode 100644
index 65937c5fc..000000000
Binary files a/styles/templates/default/images/lang/tr/icon_edit.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/tr/icon_email.gif b/styles/templates/default/images/lang/tr/icon_email.gif
deleted file mode 100644
index 67137b802..000000000
Binary files a/styles/templates/default/images/lang/tr/icon_email.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/tr/icon_icq_add.gif b/styles/templates/default/images/lang/tr/icon_icq_add.gif
deleted file mode 100644
index c0c5cd552..000000000
Binary files a/styles/templates/default/images/lang/tr/icon_icq_add.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/tr/icon_ip.gif b/styles/templates/default/images/lang/tr/icon_ip.gif
deleted file mode 100644
index 5822a929a..000000000
Binary files a/styles/templates/default/images/lang/tr/icon_ip.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/tr/icon_mc.gif b/styles/templates/default/images/lang/tr/icon_mc.gif
deleted file mode 100644
index 1db8e37f5..000000000
Binary files a/styles/templates/default/images/lang/tr/icon_mc.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/tr/icon_pm.gif b/styles/templates/default/images/lang/tr/icon_pm.gif
deleted file mode 100644
index 432075c59..000000000
Binary files a/styles/templates/default/images/lang/tr/icon_pm.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/tr/icon_poll.gif b/styles/templates/default/images/lang/tr/icon_poll.gif
deleted file mode 100644
index 73a29852d..000000000
Binary files a/styles/templates/default/images/lang/tr/icon_poll.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/tr/icon_profile.gif b/styles/templates/default/images/lang/tr/icon_profile.gif
deleted file mode 100644
index abac5dd87..000000000
Binary files a/styles/templates/default/images/lang/tr/icon_profile.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/tr/icon_quote.gif b/styles/templates/default/images/lang/tr/icon_quote.gif
deleted file mode 100644
index 9497b2c57..000000000
Binary files a/styles/templates/default/images/lang/tr/icon_quote.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/tr/icon_search.gif b/styles/templates/default/images/lang/tr/icon_search.gif
deleted file mode 100644
index 5d9c01713..000000000
Binary files a/styles/templates/default/images/lang/tr/icon_search.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/tr/icon_www.gif b/styles/templates/default/images/lang/tr/icon_www.gif
deleted file mode 100644
index 3da9e0e8c..000000000
Binary files a/styles/templates/default/images/lang/tr/icon_www.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/tr/msg_newpost.gif b/styles/templates/default/images/lang/tr/msg_newpost.gif
deleted file mode 100644
index 33a1e1c72..000000000
Binary files a/styles/templates/default/images/lang/tr/msg_newpost.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/tr/post.gif b/styles/templates/default/images/lang/tr/post.gif
deleted file mode 100644
index 9d53572cd..000000000
Binary files a/styles/templates/default/images/lang/tr/post.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/tr/release.gif b/styles/templates/default/images/lang/tr/release.gif
deleted file mode 100644
index 25440636e..000000000
Binary files a/styles/templates/default/images/lang/tr/release.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/tr/reply-locked.gif b/styles/templates/default/images/lang/tr/reply-locked.gif
deleted file mode 100644
index edfd75a87..000000000
Binary files a/styles/templates/default/images/lang/tr/reply-locked.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/tr/reply.gif b/styles/templates/default/images/lang/tr/reply.gif
deleted file mode 100644
index f18c08923..000000000
Binary files a/styles/templates/default/images/lang/tr/reply.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/uk/icon_code.gif b/styles/templates/default/images/lang/uk/icon_code.gif
deleted file mode 100644
index b3d65a375..000000000
Binary files a/styles/templates/default/images/lang/uk/icon_code.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/uk/icon_edit.gif b/styles/templates/default/images/lang/uk/icon_edit.gif
deleted file mode 100644
index 2f1f508ce..000000000
Binary files a/styles/templates/default/images/lang/uk/icon_edit.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/uk/icon_email.gif b/styles/templates/default/images/lang/uk/icon_email.gif
deleted file mode 100644
index 67137b802..000000000
Binary files a/styles/templates/default/images/lang/uk/icon_email.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/uk/icon_icq_add.gif b/styles/templates/default/images/lang/uk/icon_icq_add.gif
deleted file mode 100644
index 4309f27b5..000000000
Binary files a/styles/templates/default/images/lang/uk/icon_icq_add.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/uk/icon_ip.gif b/styles/templates/default/images/lang/uk/icon_ip.gif
deleted file mode 100644
index 5822a929a..000000000
Binary files a/styles/templates/default/images/lang/uk/icon_ip.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/uk/icon_mc.gif b/styles/templates/default/images/lang/uk/icon_mc.gif
deleted file mode 100644
index 91460ea53..000000000
Binary files a/styles/templates/default/images/lang/uk/icon_mc.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/uk/icon_pm.gif b/styles/templates/default/images/lang/uk/icon_pm.gif
deleted file mode 100644
index ff4a918d5..000000000
Binary files a/styles/templates/default/images/lang/uk/icon_pm.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/uk/icon_poll.gif b/styles/templates/default/images/lang/uk/icon_poll.gif
deleted file mode 100644
index 05c38021e..000000000
Binary files a/styles/templates/default/images/lang/uk/icon_poll.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/uk/icon_profile.gif b/styles/templates/default/images/lang/uk/icon_profile.gif
deleted file mode 100644
index 8e0986c9c..000000000
Binary files a/styles/templates/default/images/lang/uk/icon_profile.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/uk/icon_quote.gif b/styles/templates/default/images/lang/uk/icon_quote.gif
deleted file mode 100644
index 33cea78f6..000000000
Binary files a/styles/templates/default/images/lang/uk/icon_quote.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/uk/icon_search.gif b/styles/templates/default/images/lang/uk/icon_search.gif
deleted file mode 100644
index 36e607362..000000000
Binary files a/styles/templates/default/images/lang/uk/icon_search.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/uk/icon_www.gif b/styles/templates/default/images/lang/uk/icon_www.gif
deleted file mode 100644
index 3da9e0e8c..000000000
Binary files a/styles/templates/default/images/lang/uk/icon_www.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/uk/msg_newpost.gif b/styles/templates/default/images/lang/uk/msg_newpost.gif
deleted file mode 100644
index ed5d027f4..000000000
Binary files a/styles/templates/default/images/lang/uk/msg_newpost.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/uk/post.gif b/styles/templates/default/images/lang/uk/post.gif
deleted file mode 100644
index 64b754718..000000000
Binary files a/styles/templates/default/images/lang/uk/post.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/uk/release.gif b/styles/templates/default/images/lang/uk/release.gif
deleted file mode 100644
index e33191dbf..000000000
Binary files a/styles/templates/default/images/lang/uk/release.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/uk/reply-locked.gif b/styles/templates/default/images/lang/uk/reply-locked.gif
deleted file mode 100644
index 67aaa9372..000000000
Binary files a/styles/templates/default/images/lang/uk/reply-locked.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/uk/reply.gif b/styles/templates/default/images/lang/uk/reply.gif
deleted file mode 100644
index 4becf4d1c..000000000
Binary files a/styles/templates/default/images/lang/uk/reply.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/uz/icon_code.gif b/styles/templates/default/images/lang/uz/icon_code.gif
deleted file mode 100644
index 5afd6e2c7..000000000
Binary files a/styles/templates/default/images/lang/uz/icon_code.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/uz/icon_edit.gif b/styles/templates/default/images/lang/uz/icon_edit.gif
deleted file mode 100644
index 65937c5fc..000000000
Binary files a/styles/templates/default/images/lang/uz/icon_edit.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/uz/icon_email.gif b/styles/templates/default/images/lang/uz/icon_email.gif
deleted file mode 100644
index 67137b802..000000000
Binary files a/styles/templates/default/images/lang/uz/icon_email.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/uz/icon_icq_add.gif b/styles/templates/default/images/lang/uz/icon_icq_add.gif
deleted file mode 100644
index c0c5cd552..000000000
Binary files a/styles/templates/default/images/lang/uz/icon_icq_add.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/uz/icon_ip.gif b/styles/templates/default/images/lang/uz/icon_ip.gif
deleted file mode 100644
index 5822a929a..000000000
Binary files a/styles/templates/default/images/lang/uz/icon_ip.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/uz/icon_mc.gif b/styles/templates/default/images/lang/uz/icon_mc.gif
deleted file mode 100644
index 1db8e37f5..000000000
Binary files a/styles/templates/default/images/lang/uz/icon_mc.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/uz/icon_pm.gif b/styles/templates/default/images/lang/uz/icon_pm.gif
deleted file mode 100644
index 432075c59..000000000
Binary files a/styles/templates/default/images/lang/uz/icon_pm.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/uz/icon_poll.gif b/styles/templates/default/images/lang/uz/icon_poll.gif
deleted file mode 100644
index 73a29852d..000000000
Binary files a/styles/templates/default/images/lang/uz/icon_poll.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/uz/icon_profile.gif b/styles/templates/default/images/lang/uz/icon_profile.gif
deleted file mode 100644
index abac5dd87..000000000
Binary files a/styles/templates/default/images/lang/uz/icon_profile.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/uz/icon_quote.gif b/styles/templates/default/images/lang/uz/icon_quote.gif
deleted file mode 100644
index 9497b2c57..000000000
Binary files a/styles/templates/default/images/lang/uz/icon_quote.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/uz/icon_search.gif b/styles/templates/default/images/lang/uz/icon_search.gif
deleted file mode 100644
index 5d9c01713..000000000
Binary files a/styles/templates/default/images/lang/uz/icon_search.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/uz/icon_www.gif b/styles/templates/default/images/lang/uz/icon_www.gif
deleted file mode 100644
index 3da9e0e8c..000000000
Binary files a/styles/templates/default/images/lang/uz/icon_www.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/uz/msg_newpost.gif b/styles/templates/default/images/lang/uz/msg_newpost.gif
deleted file mode 100644
index 33a1e1c72..000000000
Binary files a/styles/templates/default/images/lang/uz/msg_newpost.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/uz/post.gif b/styles/templates/default/images/lang/uz/post.gif
deleted file mode 100644
index 9d53572cd..000000000
Binary files a/styles/templates/default/images/lang/uz/post.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/uz/release.gif b/styles/templates/default/images/lang/uz/release.gif
deleted file mode 100644
index 25440636e..000000000
Binary files a/styles/templates/default/images/lang/uz/release.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/uz/reply-locked.gif b/styles/templates/default/images/lang/uz/reply-locked.gif
deleted file mode 100644
index edfd75a87..000000000
Binary files a/styles/templates/default/images/lang/uz/reply-locked.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/uz/reply.gif b/styles/templates/default/images/lang/uz/reply.gif
deleted file mode 100644
index f18c08923..000000000
Binary files a/styles/templates/default/images/lang/uz/reply.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/vi/icon_code.gif b/styles/templates/default/images/lang/vi/icon_code.gif
deleted file mode 100644
index 5afd6e2c7..000000000
Binary files a/styles/templates/default/images/lang/vi/icon_code.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/vi/icon_edit.gif b/styles/templates/default/images/lang/vi/icon_edit.gif
deleted file mode 100644
index 65937c5fc..000000000
Binary files a/styles/templates/default/images/lang/vi/icon_edit.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/vi/icon_email.gif b/styles/templates/default/images/lang/vi/icon_email.gif
deleted file mode 100644
index 67137b802..000000000
Binary files a/styles/templates/default/images/lang/vi/icon_email.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/vi/icon_icq_add.gif b/styles/templates/default/images/lang/vi/icon_icq_add.gif
deleted file mode 100644
index c0c5cd552..000000000
Binary files a/styles/templates/default/images/lang/vi/icon_icq_add.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/vi/icon_ip.gif b/styles/templates/default/images/lang/vi/icon_ip.gif
deleted file mode 100644
index 5822a929a..000000000
Binary files a/styles/templates/default/images/lang/vi/icon_ip.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/vi/icon_mc.gif b/styles/templates/default/images/lang/vi/icon_mc.gif
deleted file mode 100644
index 1db8e37f5..000000000
Binary files a/styles/templates/default/images/lang/vi/icon_mc.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/vi/icon_pm.gif b/styles/templates/default/images/lang/vi/icon_pm.gif
deleted file mode 100644
index 432075c59..000000000
Binary files a/styles/templates/default/images/lang/vi/icon_pm.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/vi/icon_poll.gif b/styles/templates/default/images/lang/vi/icon_poll.gif
deleted file mode 100644
index 73a29852d..000000000
Binary files a/styles/templates/default/images/lang/vi/icon_poll.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/vi/icon_profile.gif b/styles/templates/default/images/lang/vi/icon_profile.gif
deleted file mode 100644
index abac5dd87..000000000
Binary files a/styles/templates/default/images/lang/vi/icon_profile.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/vi/icon_quote.gif b/styles/templates/default/images/lang/vi/icon_quote.gif
deleted file mode 100644
index 9497b2c57..000000000
Binary files a/styles/templates/default/images/lang/vi/icon_quote.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/vi/icon_search.gif b/styles/templates/default/images/lang/vi/icon_search.gif
deleted file mode 100644
index 5d9c01713..000000000
Binary files a/styles/templates/default/images/lang/vi/icon_search.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/vi/icon_www.gif b/styles/templates/default/images/lang/vi/icon_www.gif
deleted file mode 100644
index 3da9e0e8c..000000000
Binary files a/styles/templates/default/images/lang/vi/icon_www.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/vi/msg_newpost.gif b/styles/templates/default/images/lang/vi/msg_newpost.gif
deleted file mode 100644
index 33a1e1c72..000000000
Binary files a/styles/templates/default/images/lang/vi/msg_newpost.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/vi/post.gif b/styles/templates/default/images/lang/vi/post.gif
deleted file mode 100644
index 9d53572cd..000000000
Binary files a/styles/templates/default/images/lang/vi/post.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/vi/release.gif b/styles/templates/default/images/lang/vi/release.gif
deleted file mode 100644
index 25440636e..000000000
Binary files a/styles/templates/default/images/lang/vi/release.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/vi/reply-locked.gif b/styles/templates/default/images/lang/vi/reply-locked.gif
deleted file mode 100644
index edfd75a87..000000000
Binary files a/styles/templates/default/images/lang/vi/reply-locked.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/vi/reply.gif b/styles/templates/default/images/lang/vi/reply.gif
deleted file mode 100644
index f18c08923..000000000
Binary files a/styles/templates/default/images/lang/vi/reply.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/zh/icon_code.gif b/styles/templates/default/images/lang/zh/icon_code.gif
deleted file mode 100644
index 5afd6e2c7..000000000
Binary files a/styles/templates/default/images/lang/zh/icon_code.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/zh/icon_edit.gif b/styles/templates/default/images/lang/zh/icon_edit.gif
deleted file mode 100644
index 65937c5fc..000000000
Binary files a/styles/templates/default/images/lang/zh/icon_edit.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/zh/icon_email.gif b/styles/templates/default/images/lang/zh/icon_email.gif
deleted file mode 100644
index 67137b802..000000000
Binary files a/styles/templates/default/images/lang/zh/icon_email.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/zh/icon_icq_add.gif b/styles/templates/default/images/lang/zh/icon_icq_add.gif
deleted file mode 100644
index c0c5cd552..000000000
Binary files a/styles/templates/default/images/lang/zh/icon_icq_add.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/zh/icon_ip.gif b/styles/templates/default/images/lang/zh/icon_ip.gif
deleted file mode 100644
index 5822a929a..000000000
Binary files a/styles/templates/default/images/lang/zh/icon_ip.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/zh/icon_mc.gif b/styles/templates/default/images/lang/zh/icon_mc.gif
deleted file mode 100644
index 1db8e37f5..000000000
Binary files a/styles/templates/default/images/lang/zh/icon_mc.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/zh/icon_pm.gif b/styles/templates/default/images/lang/zh/icon_pm.gif
deleted file mode 100644
index 432075c59..000000000
Binary files a/styles/templates/default/images/lang/zh/icon_pm.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/zh/icon_poll.gif b/styles/templates/default/images/lang/zh/icon_poll.gif
deleted file mode 100644
index 73a29852d..000000000
Binary files a/styles/templates/default/images/lang/zh/icon_poll.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/zh/icon_profile.gif b/styles/templates/default/images/lang/zh/icon_profile.gif
deleted file mode 100644
index abac5dd87..000000000
Binary files a/styles/templates/default/images/lang/zh/icon_profile.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/zh/icon_quote.gif b/styles/templates/default/images/lang/zh/icon_quote.gif
deleted file mode 100644
index 9497b2c57..000000000
Binary files a/styles/templates/default/images/lang/zh/icon_quote.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/zh/icon_search.gif b/styles/templates/default/images/lang/zh/icon_search.gif
deleted file mode 100644
index 5d9c01713..000000000
Binary files a/styles/templates/default/images/lang/zh/icon_search.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/zh/icon_www.gif b/styles/templates/default/images/lang/zh/icon_www.gif
deleted file mode 100644
index 3da9e0e8c..000000000
Binary files a/styles/templates/default/images/lang/zh/icon_www.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/zh/msg_newpost.gif b/styles/templates/default/images/lang/zh/msg_newpost.gif
deleted file mode 100644
index 33a1e1c72..000000000
Binary files a/styles/templates/default/images/lang/zh/msg_newpost.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/zh/post.gif b/styles/templates/default/images/lang/zh/post.gif
deleted file mode 100644
index 9d53572cd..000000000
Binary files a/styles/templates/default/images/lang/zh/post.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/zh/release.gif b/styles/templates/default/images/lang/zh/release.gif
deleted file mode 100644
index 25440636e..000000000
Binary files a/styles/templates/default/images/lang/zh/release.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/zh/reply-locked.gif b/styles/templates/default/images/lang/zh/reply-locked.gif
deleted file mode 100644
index edfd75a87..000000000
Binary files a/styles/templates/default/images/lang/zh/reply-locked.gif and /dev/null differ
diff --git a/styles/templates/default/images/lang/zh/reply.gif b/styles/templates/default/images/lang/zh/reply.gif
deleted file mode 100644
index f18c08923..000000000
Binary files a/styles/templates/default/images/lang/zh/reply.gif and /dev/null differ
diff --git a/tests/Feature/ContainerIntegrationTest.php b/tests/Feature/ContainerIntegrationTest.php
deleted file mode 100644
index d972ee3ef..000000000
--- a/tests/Feature/ContainerIntegrationTest.php
+++ /dev/null
@@ -1,193 +0,0 @@
-createTestRootDirectory();
- $this->createTestConfigFiles($rootPath, [
- 'services' => [
- 'integration.test' => 'integration_value',
- ],
- ]);
-
- $container = Bootstrap::init($rootPath);
-
- expect($container)->toBeInstanceOf(Container::class);
- expect($container->get('integration.test'))->toBe('integration_value');
-
- removeTempDirectory($rootPath);
- });
-
- it('integrates with global helper functions', function () {
- $rootPath = $this->createTestRootDirectory();
- $this->createTestConfigFiles($rootPath, [
- 'services' => [
- 'helper.test' => 'helper_value',
- ],
- ]);
-
- Bootstrap::init($rootPath);
-
- // Test container() helper
- expect(container())->toBeInstanceOf(Container::class);
-
- // Test app() helper without parameter
- expect(app())->toBeInstanceOf(Container::class);
-
- // Test app() helper with service ID
- expect(app('helper.test'))->toBe('helper_value');
-
- removeTempDirectory($rootPath);
- });
-
- it('handles missing services gracefully in helpers', function () {
- $rootPath = $this->createTestRootDirectory();
- Bootstrap::init($rootPath);
-
- // Should throw RuntimeException for missing service
- expect(fn() => app('missing.service'))
- ->toThrow(RuntimeException::class)
- ->toThrow('not found in container');
-
- removeTempDirectory($rootPath);
- });
-
- it('supports autowiring for simple classes', function () {
- $rootPath = $this->createTestRootDirectory();
- $container = Bootstrap::init($rootPath);
-
- // Should be able to autowire stdClass
- expect($container->has(stdClass::class))->toBeTrue();
- expect($container->get(stdClass::class))->toBeInstanceOf(stdClass::class);
-
- removeTempDirectory($rootPath);
- });
-
- it('loads all architectural layer definitions', function () {
- $rootPath = $this->createTestRootDirectory();
- $container = Bootstrap::init($rootPath);
-
- // Container should be created successfully with all layer definitions loaded
- // Even though most definitions are commented out, the loading should work
- expect($container)->toBeInstanceOf(Container::class);
-
- // Container should have itself registered
- expect($container->get(Container::class))->toBe($container);
- expect($container->get('container'))->toBe($container);
-
- removeTempDirectory($rootPath);
- });
-
- it('supports environment-based configuration', function () {
- $rootPath = $this->createTestRootDirectory();
- $this->createTestConfigFiles($rootPath, [
- 'container' => [
- 'environment' => 'production',
- 'compilation_dir' => $rootPath . '/internal_data/cache/container',
- 'proxies_dir' => $rootPath . '/internal_data/cache/proxies',
- ],
- ]);
-
- $container = Bootstrap::init($rootPath);
-
- expect($container)->toBeInstanceOf(Container::class);
-
- removeTempDirectory($rootPath);
- });
-
- it('supports service provider registration', function () {
- $testProviderClass = new class implements \TorrentPier\Infrastructure\DependencyInjection\ServiceProvider {
- public static bool $wasRegistered = false;
- public static bool $wasBooted = false;
-
- public function register(\TorrentPier\Infrastructure\DependencyInjection\Container $container): void
- {
- self::$wasRegistered = true;
- $container->getWrappedContainer()->set('provider.test', 'provider_registered');
- }
-
- public function boot(\TorrentPier\Infrastructure\DependencyInjection\Container $container): void
- {
- self::$wasBooted = true;
- }
- };
-
- $rootPath = $this->createTestRootDirectory();
- $this->createTestConfigFiles($rootPath, [
- 'container' => [
- 'providers' => [get_class($testProviderClass)],
- ],
- ]);
-
- $container = Bootstrap::init($rootPath);
-
- expect($testProviderClass::$wasRegistered)->toBeTrue();
- expect($testProviderClass::$wasBooted)->toBeTrue();
- expect($container->get('provider.test'))->toBe('provider_registered');
-
- removeTempDirectory($rootPath);
- });
-
- it('handles configuration file loading priority', function () {
- $rootPath = $this->createTestRootDirectory();
- $this->createTestConfigFiles($rootPath, [
- 'services' => [
- 'priority.test' => \DI\factory(function () {
- return 'from_services_file';
- }),
- ],
- ]);
-
- // Initialize with runtime config that should override file config
- $container = Bootstrap::init($rootPath, [
- 'definitions' => [
- 'priority.test' => \DI\factory(function () {
- return 'from_runtime_config';
- }),
- 'runtime.only' => \DI\factory(function () {
- return 'runtime_value';
- }),
- ],
- ]);
-
- // Runtime config should override file config
- expect($container->get('priority.test'))->toBe('from_runtime_config');
- expect($container->get('runtime.only'))->toBe('runtime_value');
-
- removeTempDirectory($rootPath);
- });
-
- it('provides meaningful error messages', function () {
- $rootPath = $this->createTestRootDirectory();
- Bootstrap::init($rootPath);
-
- try {
- app('definitely.missing.service');
- fail('Expected exception to be thrown');
- } catch (RuntimeException $e) {
- expect($e->getMessage())->toContain('definitely.missing.service');
- expect($e->getMessage())->toContain('not found in container');
- }
-
- removeTempDirectory($rootPath);
- });
-
- it('supports performance measurement', function () {
- $rootPath = $this->createTestRootDirectory();
-
- $time = measureExecutionTime(function () use ($rootPath) {
- Bootstrap::init($rootPath);
- });
-
- // Container initialization should be reasonably fast
- expect($time)->toBeLessThan(1.0); // Should take less than 1 second
-
- removeTempDirectory($rootPath);
- });
-});
diff --git a/tests/Pest.php b/tests/Pest.php
deleted file mode 100644
index f1c9a7613..000000000
--- a/tests/Pest.php
+++ /dev/null
@@ -1,95 +0,0 @@
-extend(Tests\TestCase::class)->in('Feature');
-pest()->extend(Tests\TestCase::class)->in('Unit');
-
-/*
-|--------------------------------------------------------------------------
-| Expectations
-|--------------------------------------------------------------------------
-|
-| When you're writing tests, you often need to check that values meet certain conditions. The
-| "expect()" function gives you access to a set of "expectations" methods that you can use
-| to assert different things. Of course, you may extend the Expectation API at any time.
-|
-*/
-
-expect()->extend('toBeOne', function () {
- return $this->toBe(1);
-});
-
-/*
-|--------------------------------------------------------------------------
-| Functions
-|--------------------------------------------------------------------------
-|
-| While Pest is very powerful out-of-the-box, you may have some testing code specific to your
-| project that you don't want to repeat in every file. Here you can also expose helpers as
-| global functions to help you to reduce the number of lines of code in your test files.
-|
-*/
-
-/**
- * Performance Testing Helpers
- */
-function measureExecutionTime(callable $callback): float
-{
- $start = microtime(true);
- $callback();
- return microtime(true) - $start;
-}
-
-function expectExecutionTimeUnder(callable $callback, float $maxSeconds): void
-{
- $time = measureExecutionTime($callback);
- expect($time)->toBeLessThan($maxSeconds, "Execution took {$time}s, expected under {$maxSeconds}s");
-}
-
-/**
- * File System Helpers
- */
-function createTempDirectory(): string
-{
- $tempDir = sys_get_temp_dir() . '/torrentpier_test_' . uniqid();
- mkdir($tempDir, 0755, true);
- return $tempDir;
-}
-
-function removeTempDirectory(string $dir): void
-{
- if (is_dir($dir)) {
- $files = array_diff(scandir($dir), ['.', '..']);
- foreach ($files as $file) {
- $path = $dir . '/' . $file;
- is_dir($path) ? removeTempDirectory($path) : unlink($path);
- }
- rmdir($dir);
- }
-}
-
-/**
- * Exception Testing Helpers
- */
-function expectException(callable $callback, string $exceptionClass, ?string $message = null): void
-{
- try {
- $callback();
- fail("Expected exception $exceptionClass was not thrown");
- } catch (Throwable $e) {
- expect($e)->toBeInstanceOf($exceptionClass);
- if ($message) {
- expect($e->getMessage())->toContain($message);
- }
- }
-}
diff --git a/tests/README.md b/tests/README.md
deleted file mode 100644
index 1ec09dc6b..000000000
--- a/tests/README.md
+++ /dev/null
@@ -1,433 +0,0 @@
-# ๐งช TorrentPier 3.0 Testing Infrastructure
-
-This document outlines the testing infrastructure for TorrentPier 3.0, built using **Pest PHP** and following the hexagonal architecture principles outlined in the project specification.
-
-## ๐ Table of Contents
-
-- [Overview](#overview)
-- [Hexagonal Architecture Testing](#hexagonal-architecture-testing)
-- [Test Organization](#test-organization)
-- [DI Container Testing](#di-container-testing)
-- [Testing Patterns](#testing-patterns)
-- [Test Execution](#test-execution)
-- [Best Practices](#best-practices)
-
-## ๐ฏ Overview
-
-TorrentPier 3.0's testing suite is designed following the hexagonal architecture testing strategy:
-
-- **Domain**: Pure unit tests, no mocks needed
-- **Application**: Unit tests with mocked repositories
-- **Infrastructure**: Integration tests with real services
-- **Presentation**: E2E tests for user journeys
-
-### Core Testing Principles
-
-1. **Architecture-Driven**: Tests follow the hexagonal architecture layers
-2. **Phase-Aligned**: Testing matches the 5-phase implementation strategy
-3. **Clean Slate**: No legacy dependencies, modern PHP 8.3+ testing
-4. **Infrastructure First**: Focus on foundational DI container testing
-5. **Future-Ready**: Structure prepared for upcoming domain/application layers
-
-## ๐๏ธ Hexagonal Architecture Testing
-
-### Testing Strategy by Layer
-
-#### Domain Layer Testing (Phase 2 - Future)
-```php
-// Pure unit tests, no framework dependencies
-it('validates business rules without external dependencies', function () {
- $user = new User(new UserId(1), new Email('test@example.com'));
- expect($user->canPost())->toBeTrue();
-});
-```
-
-#### Application Layer Testing (Phase 3 - Future)
-```php
-// Unit tests with mocked repositories
-it('handles user registration command', function () {
- $mockRepo = Mockery::mock(UserRepositoryInterface::class);
- $handler = new RegisterUserHandler($mockRepo);
-
- $command = new RegisterUserCommand('john', 'john@example.com');
- $handler->handle($command);
-
- $mockRepo->shouldHaveReceived('save');
-});
-```
-
-#### Infrastructure Layer Testing (Phase 1 - Current)
-```php
-// Integration tests with real services
-it('creates container with real PHP-DI integration', function () {
- $container = ContainerFactory::create();
- expect($container)->toBeInstanceOf(Container::class);
-});
-```
-
-#### Presentation Layer Testing (Phase 5 - Future)
-```php
-// E2E tests for user journeys
-it('handles API request end-to-end', function () {
- $response = $this->post('/api/users', ['name' => 'John']);
- expect($response->status())->toBe(201);
-});
-```
-
-## ๐ Test Organization
-
-### Directory Structure
-
-```
-tests/
-โโโ README.md # This documentation
-โโโ Pest.php # Clean Pest configuration
-โโโ TestCase.php # Enhanced base test case with DI utilities
-โโโ Unit/Infrastructure/DependencyInjection/ # DI Container tests (Phase 1)
-โ โโโ ContainerTest.php # Container wrapper tests
-โ โโโ ContainerFactoryTest.php # Factory functionality tests
-โ โโโ BootstrapTest.php # Application bootstrapping tests
-โ โโโ ServiceProviderTest.php # Service provider interface tests
-โ โโโ Definitions/ # Layer-specific definition tests
-โ โโโ DomainDefinitionsTest.php
-โ โโโ ApplicationDefinitionsTest.php
-โ โโโ InfrastructureDefinitionsTest.php
-โ โโโ PresentationDefinitionsTest.php
-โโโ Feature/ # Integration tests
- โโโ ContainerIntegrationTest.php # End-to-end container tests
-```
-
-### Future Structure (As Phases Are Implemented)
-
-```
-tests/
-โโโ Unit/
-โ โโโ Domain/ # Phase 2: Pure business logic tests
-โ โ โโโ User/
-โ โ โโโ Forum/
-โ โ โโโ Tracker/
-โ โโโ Application/ # Phase 3: Use case orchestration tests
-โ โ โโโ User/
-โ โ โโโ Forum/
-โ โ โโโ Tracker/
-โ โโโ Infrastructure/ # Phase 4: External service integration tests
-โ โ โโโ Persistence/
-โ โ โโโ Cache/
-โ โ โโโ Email/
-โ โโโ Presentation/ # Phase 5: Interface layer tests
-โ โโโ Http/
-โ โโโ Cli/
-โโโ Feature/ # Cross-layer integration tests
-```
-
-## ๐ ๏ธ DI Container Testing
-
-### Current Implementation (Phase 1)
-
-The DI container is the foundation of TorrentPier 3.0's architecture. Our tests ensure:
-
-#### Container Wrapper Testing
-```php
-// tests/Unit/Infrastructure/DependencyInjection/ContainerTest.php
-it('implements PSR-11 ContainerInterface', function () {
- expect($this->container)->toBeInstanceOf(\Psr\Container\ContainerInterface::class);
-});
-
-it('can resolve autowired classes', function () {
- $result = $this->container->get(stdClass::class);
- expect($result)->toBeInstanceOf(stdClass::class);
-});
-
-it('throws NotFoundExceptionInterface for non-existent services', function () {
- expect(fn() => $this->container->get('non.existent.service'))
- ->toThrow(NotFoundExceptionInterface::class);
-});
-```
-
-#### Factory Configuration Testing
-```php
-// tests/Unit/Infrastructure/DependencyInjection/ContainerFactoryTest.php
-it('applies configuration correctly', function () {
- $config = [
- 'environment' => 'testing',
- 'autowiring' => true,
- 'definitions' => [
- 'test.service' => \DI\factory(fn() => 'test_value'),
- ],
- ];
-
- $container = ContainerFactory::create($config);
- expect($container->get('test.service'))->toBe('test_value');
-});
-```
-
-#### Bootstrap Integration Testing
-```php
-// tests/Unit/Infrastructure/DependencyInjection/BootstrapTest.php
-it('loads configuration from multiple sources', function () {
- $rootPath = $this->createTestRootDirectory();
- $this->createTestConfigFiles($rootPath, [
- 'env' => ['APP_ENV' => 'testing'],
- 'services' => ['config.service' => \DI\factory(fn() => 'merged_config')],
- ]);
-
- $container = Bootstrap::init($rootPath);
- expect($container->get('config.service'))->toBe('merged_config');
-});
-```
-
-### Test Utilities
-
-#### Enhanced TestCase
-```php
-// tests/TestCase.php
-abstract class TestCase extends BaseTestCase
-{
- protected function createTestContainer(array $config = []): Container
- {
- $defaultConfig = [
- 'environment' => 'testing',
- 'autowiring' => true,
- 'definitions' => [],
- ];
-
- return ContainerFactory::create(array_merge($defaultConfig, $config));
- }
-
- protected function assertCanResolve(Container $container, string $serviceId): void
- {
- $this->assertTrue($container->has($serviceId));
- $this->assertNotNull($container->get($serviceId));
- }
-}
-```
-
-## ๐จ Testing Patterns
-
-### 1. Infrastructure Integration Testing
-```php
-// Real service integration (current phase)
-it('integrates with real PHP-DI container', function () {
- $container = $this->createTestContainer([
- 'definitions' => [
- 'real.service' => \DI\autowire(stdClass::class),
- ],
- ]);
-
- $service = $container->get('real.service');
- expect($service)->toBeInstanceOf(stdClass::class);
-});
-```
-
-### 2. Configuration-Driven Testing
-```php
-// Environment-based configuration
-it('adapts to different environments', function () {
- $prodContainer = $this->createTestContainer(['environment' => 'production']);
- $devContainer = $this->createTestContainer(['environment' => 'development']);
-
- expect($prodContainer)->toBeInstanceOf(Container::class);
- expect($devContainer)->toBeInstanceOf(Container::class);
-});
-```
-
-### 3. Service Provider Testing
-```php
-// Modular service registration
-it('registers services through providers', function () {
- $provider = new class implements ServiceProvider {
- public function register(Container $container): void {
- $container->getWrappedContainer()->set('provider.service', 'registered');
- }
- public function boot(Container $container): void {}
- };
-
- $container = $this->createTestContainer();
- $provider->register($container);
-
- expect($container->get('provider.service'))->toBe('registered');
-});
-```
-
-### 4. Layer Definition Testing
-```php
-// Architectural layer compliance
-it('follows domain layer principles', function () {
- $definitions = DomainDefinitions::getDefinitions();
-
- // Domain definitions should be empty in Phase 1
- expect($definitions)->toBe([]);
-
- // Structure should be prepared for Phase 2
- expect($definitions)->toBeArray();
-});
-```
-
-## ๐ Test Execution
-
-### Running Tests
-
-```bash
-# Run all tests
-./vendor/bin/pest
-
-# Run DI container tests specifically
-./vendor/bin/pest tests/Unit/Infrastructure/DependencyInjection/
-
-# Run integration tests
-./vendor/bin/pest tests/Feature/
-
-# Run with coverage
-./vendor/bin/pest --coverage
-
-# Run specific test file
-./vendor/bin/pest tests/Unit/Infrastructure/DependencyInjection/ContainerTest.php
-```
-
-### Performance Testing
-```bash
-# Measure container bootstrap performance
-./vendor/bin/pest --filter="performance"
-
-# Container creation should be fast
-expectExecutionTimeUnder(fn() => Bootstrap::init($rootPath), 1.0);
-```
-
-## ๐ Best Practices
-
-### 1. Phase-Aligned Testing
-```php
-// Current Phase 1: Test infrastructure only
-it('provides foundation for future phases', function () {
- $container = $this->createTestContainer();
-
- // Infrastructure works now
- expect($container)->toBeInstanceOf(Container::class);
-
- // Ready for future domain services
- expect($container->has(stdClass::class))->toBeTrue();
-});
-```
-
-### 2. Architecture Compliance
-```php
-// Ensure clean architectural boundaries
-it('keeps domain layer pure', function () {
- $definitions = DomainDefinitions::getDefinitions();
-
- // Domain should have no infrastructure dependencies
- expect($definitions)->toBeArray();
-
- // Future domain services will be dependency-free
-});
-```
-
-### 3. Configuration Testing
-```php
-// Test multiple configuration sources
-it('merges configuration correctly', function () {
- $rootPath = $this->createTestRootDirectory();
- $this->createTestConfigFiles($rootPath, [
- 'container' => ['autowiring' => true],
- 'services' => ['test.service' => \DI\factory(fn() => 'test')],
- ]);
-
- $container = Bootstrap::init($rootPath, [
- 'definitions' => ['runtime.service' => \DI\factory(fn() => 'runtime')],
- ]);
-
- expect($container->get('test.service'))->toBe('test');
- expect($container->get('runtime.service'))->toBe('runtime');
-});
-```
-
-### 4. Error Handling
-```php
-// Comprehensive error testing
-it('provides meaningful error messages', function () {
- $container = $this->createTestContainer();
-
- try {
- $container->get('missing.service');
- fail('Expected exception');
- } catch (RuntimeException $e) {
- expect($e->getMessage())->toContain('missing.service');
- expect($e->getMessage())->toContain('not found in container');
- }
-});
-```
-
-## ๐ Current Implementation Status
-
-### โ
Phase 1 Complete: Infrastructure Foundation
-
-- **DI Container**: Fully tested container wrapper with PSR-11 compliance
-- **Factory Pattern**: Comprehensive configuration and creation testing
-- **Bootstrap Process**: Environment loading and configuration merging
-- **Service Providers**: Modular service registration interface
-- **Helper Functions**: Global container access with proper error handling
-- **Layer Definitions**: Prepared structure for all architectural layers
-
-### ๐ Testing Coverage
-
-- **Container Core**: 100% coverage of wrapper functionality
-- **Configuration**: All config sources and merging scenarios tested
-- **Error Handling**: Complete PSR-11 exception compliance
-- **Integration**: End-to-end bootstrap and usage scenarios
-- **Performance**: Container creation and resolution timing validation
-
-### ๐ฎ Future Phase Testing
-
-As TorrentPier 3.0 phases are implemented:
-
-#### Phase 2: Domain Layer
-```php
-// Domain entity testing (future)
-it('validates user business rules', function () {
- $user = new User(UserId::generate(), new Email('test@example.com'));
- expect($user->isActive())->toBeTrue();
-});
-```
-
-#### Phase 3: Application Layer
-```php
-// Command handler testing (future)
-it('processes registration command', function () {
- $handler = app(RegisterUserHandler::class);
- $command = new RegisterUserCommand('john', 'john@example.com');
-
- $userId = $handler->handle($command);
- expect($userId)->toBeInstanceOf(UserId::class);
-});
-```
-
-#### Phase 4: Infrastructure Layer
-```php
-// Repository integration testing (future)
-it('persists user through repository', function () {
- $repository = app(UserRepositoryInterface::class);
- $user = User::create('john', 'john@example.com');
-
- $repository->save($user);
- expect($repository->findById($user->getId()))->not->toBeNull();
-});
-```
-
-#### Phase 5: Presentation Layer
-```php
-// Controller integration testing (future)
-it('handles user registration via API', function () {
- $response = $this->postJson('/api/users', [
- 'username' => 'john',
- 'email' => 'john@example.com',
- ]);
-
- expect($response->status())->toBe(201);
-});
-```
-
----
-
-**TorrentPier 3.0 Testing Philosophy**: Tests serve as both validation and documentation of the hexagonal architecture. Each layer has distinct testing strategies that ensure clean separation of concerns and maintainable code.
-
-For questions about testing patterns or contributions, refer to the [TorrentPier GitHub repository](https://github.com/torrentpier/torrentpier) or the hexagonal architecture specification at `/docs/specs/hexagonal-architecture-spec.md`.
\ No newline at end of file
diff --git a/tests/TestCase.php b/tests/TestCase.php
deleted file mode 100644
index e876511f2..000000000
--- a/tests/TestCase.php
+++ /dev/null
@@ -1,120 +0,0 @@
- 'testing',
- 'autowiring' => true,
- 'definitions' => [],
- ];
-
- return ContainerFactory::create(array_merge($defaultConfig, $config));
- }
-
- /**
- * Create a container with custom service definitions
- */
- protected function createContainerWithDefinitions(array $definitions): Container
- {
- return $this->createTestContainer([
- 'definitions' => $definitions,
- ]);
- }
-
- /**
- * Create a temporary test root directory
- */
- protected function createTestRootDirectory(): string
- {
- $tempDir = createTempDirectory();
-
- // Create basic directory structure
- mkdir($tempDir . '/config', 0755, true);
- mkdir($tempDir . '/internal_data/cache', 0755, true);
-
- return $tempDir;
- }
-
- /**
- * Create test configuration files
- */
- protected function createTestConfigFiles(string $rootPath, array $configs = []): void
- {
- $configPath = $rootPath . '/config';
-
- // Create container.php
- if (isset($configs['container'])) {
- file_put_contents(
- $configPath . '/container.php',
- ' $value) {
- if (is_string($value)) {
- $servicesContent .= " '$key' => factory(function () { return '$value'; }),\n";
- }
- }
- $servicesContent .= "];\n";
-
- file_put_contents($configPath . '/services.php', $servicesContent);
- }
-
- // Create .env file
- if (isset($configs['env'])) {
- $envContent = '';
- foreach ($configs['env'] as $key => $value) {
- $envContent .= "$key=$value\n";
- }
- file_put_contents($rootPath . '/.env', $envContent);
- }
- }
-
- /**
- * Assert that a service can be resolved from the container
- */
- protected function assertCanResolve(Container $container, string $serviceId): void
- {
- $this->assertTrue($container->has($serviceId), "Container should have service: $serviceId");
- $this->assertNotNull($container->get($serviceId), "Should be able to resolve service: $serviceId");
- }
-
- /**
- * Assert that a service cannot be resolved from the container
- */
- protected function assertCannotResolve(Container $container, string $serviceId): void
- {
- $this->assertFalse($container->has($serviceId), "Container should not have service: $serviceId");
- }
-}
diff --git a/tests/Unit/Infrastructure/DependencyInjection/BootstrapTest.php b/tests/Unit/Infrastructure/DependencyInjection/BootstrapTest.php
deleted file mode 100644
index 1a0fbaf16..000000000
--- a/tests/Unit/Infrastructure/DependencyInjection/BootstrapTest.php
+++ /dev/null
@@ -1,190 +0,0 @@
-createTestRootDirectory();
-
- $container = Bootstrap::init($rootPath);
-
- expect($container)->toBeInstanceOf(Container::class);
-
- removeTempDirectory($rootPath);
- });
-
- it('returns the same container on subsequent calls', function () {
- $rootPath = $this->createTestRootDirectory();
-
- $container1 = Bootstrap::init($rootPath);
- $container2 = Bootstrap::init($rootPath);
-
- expect($container1)->toBe($container2);
-
- removeTempDirectory($rootPath);
- });
-
- it('registers container instance with itself', function () {
- $rootPath = $this->createTestRootDirectory();
-
- $container = Bootstrap::init($rootPath);
-
- expect($container->get(Container::class))->toBe($container);
- expect($container->get('container'))->toBe($container);
-
- removeTempDirectory($rootPath);
- });
-
- it('loads environment variables from .env file', function () {
- $rootPath = $this->createTestRootDirectory();
- $this->createTestConfigFiles($rootPath, [
- 'env' => [
- 'TEST_VAR' => 'test_value',
- 'APP_ENV' => 'testing',
- ],
- ]);
-
- Bootstrap::init($rootPath);
-
- expect($_ENV['TEST_VAR'] ?? null)->toBe('test_value');
- expect($_ENV['APP_ENV'] ?? null)->toBe('testing');
-
- removeTempDirectory($rootPath);
- });
-
- it('loads configuration from config files', function () {
- $rootPath = $this->createTestRootDirectory();
- $this->createTestConfigFiles($rootPath, [
- 'container' => [
- 'environment' => 'testing',
- 'autowiring' => true,
- ],
- 'services' => [
- 'test.service' => 'config_value',
- ],
- ]);
-
- $container = Bootstrap::init($rootPath);
-
- expect($container->get('test.service'))->toBe('config_value');
-
- removeTempDirectory($rootPath);
- });
-
- it('handles missing config files gracefully', function () {
- $rootPath = $this->createTestRootDirectory();
-
- // Should not throw exception even without config files
- $container = Bootstrap::init($rootPath);
-
- expect($container)->toBeInstanceOf(Container::class);
-
- removeTempDirectory($rootPath);
- });
- });
-
- describe('getContainer() method', function () {
- it('returns null when not initialized', function () {
- expect(Bootstrap::getContainer())->toBeNull();
- });
-
- it('returns container after initialization', function () {
- $rootPath = $this->createTestRootDirectory();
-
- $container = Bootstrap::init($rootPath);
-
- expect(Bootstrap::getContainer())->toBe($container);
-
- removeTempDirectory($rootPath);
- });
- });
-
- describe('reset() method', function () {
- it('clears the container instance', function () {
- $rootPath = $this->createTestRootDirectory();
-
- Bootstrap::init($rootPath);
- expect(Bootstrap::getContainer())->not->toBeNull();
-
- Bootstrap::reset();
- expect(Bootstrap::getContainer())->toBeNull();
-
- removeTempDirectory($rootPath);
- });
-
- it('allows re-initialization after reset', function () {
- $rootPath = $this->createTestRootDirectory();
-
- $container1 = Bootstrap::init($rootPath);
- Bootstrap::reset();
- $container2 = Bootstrap::init($rootPath);
-
- expect($container1)->not->toBe($container2);
- expect($container2)->toBeInstanceOf(Container::class);
-
- removeTempDirectory($rootPath);
- });
- });
-
- describe('configuration loading', function () {
- it('merges configuration from multiple sources', function () {
- $rootPath = $this->createTestRootDirectory();
- $this->createTestConfigFiles($rootPath, [
- 'env' => [
- 'APP_ENV' => 'production',
- 'APP_DEBUG' => 'false',
- ],
- 'container' => [
- 'autowiring' => true,
- ],
- 'services' => [
- 'config.service' => 'merged_config',
- ],
- ]);
-
- $container = Bootstrap::init($rootPath, [
- 'definitions' => [
- 'runtime.service' => \DI\factory(function () {
- return 'runtime_config';
- }),
- ],
- ]);
-
- expect($container->get('config.service'))->toBe('merged_config');
- expect($container->get('runtime.service'))->toBe('runtime_config');
-
- removeTempDirectory($rootPath);
- });
-
- it('sets default environment when no .env file exists', function () {
- $rootPath = $this->createTestRootDirectory();
-
- $container = Bootstrap::init($rootPath);
-
- // Container should still be created successfully
- expect($container)->toBeInstanceOf(Container::class);
-
- removeTempDirectory($rootPath);
- });
- });
-
- describe('error handling', function () {
- it('handles invalid root path gracefully', function () {
- // Should not throw fatal error for non-existent path
- expect(function () {
- Bootstrap::init('/non/existent/path');
- })->not->toThrow(Throwable::class);
- });
- });
-});
diff --git a/tests/Unit/Infrastructure/DependencyInjection/ContainerFactoryTest.php b/tests/Unit/Infrastructure/DependencyInjection/ContainerFactoryTest.php
deleted file mode 100644
index ccd6e1ea8..000000000
--- a/tests/Unit/Infrastructure/DependencyInjection/ContainerFactoryTest.php
+++ /dev/null
@@ -1,206 +0,0 @@
-toBeInstanceOf(Container::class);
- });
-
- it('applies configuration correctly', function () {
- $config = [
- 'environment' => 'testing',
- 'autowiring' => true,
- 'annotations' => false,
- ];
-
- $container = ContainerFactory::create($config);
- expect($container)->toBeInstanceOf(Container::class);
- });
-
- it('loads custom definitions', function () {
- $config = [
- 'definitions' => [
- 'test.service' => \DI\factory(function () {
- return 'test_value';
- }),
- ],
- ];
-
- $container = ContainerFactory::create($config);
- expect($container->get('test.service'))->toBe('test_value');
- });
-
- it('configures autowiring when enabled', function () {
- $config = ['autowiring' => true];
- $container = ContainerFactory::create($config);
-
- // Should be able to autowire stdClass
- expect($container->has(stdClass::class))->toBeTrue();
- });
-
- it('loads definition files when specified', function () {
- $tempDir = createTempDirectory();
- $definitionFile = $tempDir . '/definitions.php';
-
- file_put_contents($definitionFile, ' \DI\factory(function () {
- return "from_file";
- }),
- ];');
-
- $config = [
- 'definition_files' => [$definitionFile],
- ];
-
- $container = ContainerFactory::create($config);
- expect($container->get('file.service'))->toBe('from_file');
-
- removeTempDirectory($tempDir);
- });
-
- it('handles non-existent definition files gracefully', function () {
- $config = [
- 'definition_files' => ['/non/existent/file.php'],
- ];
-
- // Should not throw an exception
- $container = ContainerFactory::create($config);
- expect($container)->toBeInstanceOf(Container::class);
- });
- });
-
- describe('service providers', function () {
- it('registers and boots service providers', function () {
- $providerClass = new class implements ServiceProvider {
- public static bool $registered = false;
- public static bool $booted = false;
-
- public function register(Container $container): void
- {
- self::$registered = true;
- $container->getWrappedContainer()->set('provider.service', 'provider_value');
- }
-
- public function boot(Container $container): void
- {
- self::$booted = true;
- }
- };
-
- $config = [
- 'providers' => [get_class($providerClass)],
- ];
-
- $container = ContainerFactory::create($config);
-
- expect($providerClass::$registered)->toBeTrue();
- expect($providerClass::$booted)->toBeTrue();
- expect($container->get('provider.service'))->toBe('provider_value');
- });
-
- it('handles invalid provider classes gracefully', function () {
- $config = [
- 'providers' => ['NonExistentProvider'],
- ];
-
- // Should not throw an exception
- $container = ContainerFactory::create($config);
- expect($container)->toBeInstanceOf(Container::class);
- });
-
- it('boots providers after all registrations', function () {
- // Use a simpler approach without constructor dependencies
- $testFile = sys_get_temp_dir() . '/provider_order_test.txt';
- if (file_exists($testFile)) {
- unlink($testFile);
- }
-
- $provider1Class = new class implements ServiceProvider {
- public function register(Container $container): void
- {
- $testFile = sys_get_temp_dir() . '/provider_order_test.txt';
- file_put_contents($testFile, "register1\n", FILE_APPEND);
- }
-
- public function boot(Container $container): void
- {
- $testFile = sys_get_temp_dir() . '/provider_order_test.txt';
- file_put_contents($testFile, "boot1\n", FILE_APPEND);
- }
- };
-
- $provider2Class = new class implements ServiceProvider {
- public function register(Container $container): void
- {
- $testFile = sys_get_temp_dir() . '/provider_order_test.txt';
- file_put_contents($testFile, "register2\n", FILE_APPEND);
- }
-
- public function boot(Container $container): void
- {
- $testFile = sys_get_temp_dir() . '/provider_order_test.txt';
- file_put_contents($testFile, "boot2\n", FILE_APPEND);
- }
- };
-
- $config = [
- 'providers' => [get_class($provider1Class), get_class($provider2Class)],
- ];
-
- ContainerFactory::create($config);
-
- // Read the order from the test file
- $content = file_get_contents($testFile);
- $lines = array_filter(explode("\n", trim($content)));
-
- // All registrations should happen before any boots
- expect($lines)->toBe(['register1', 'register2', 'boot1', 'boot2']);
-
- // Clean up
- unlink($testFile);
- });
- });
-
- describe('environment configuration', function () {
- it('enables compilation in production', function () {
- $tempDir = createTempDirectory();
-
- $config = [
- 'environment' => 'production',
- 'compilation_dir' => $tempDir . '/container',
- 'proxies_dir' => $tempDir . '/proxies',
- ];
-
- $container = ContainerFactory::create($config);
- expect($container)->toBeInstanceOf(Container::class);
-
- removeTempDirectory($tempDir);
- });
-
- it('skips compilation in development', function () {
- $config = [
- 'environment' => 'development',
- ];
-
- $container = ContainerFactory::create($config);
- expect($container)->toBeInstanceOf(Container::class);
- });
- });
-
- describe('layer definitions integration', function () {
- it('loads definitions from all architectural layers', function () {
- $container = ContainerFactory::create();
-
- // Container should be created successfully with all layer definitions
- expect($container)->toBeInstanceOf(Container::class);
-
- // Since most definitions are commented out, we just verify the container works
- expect($container->has(stdClass::class))->toBeTrue();
- });
- });
-});
diff --git a/tests/Unit/Infrastructure/DependencyInjection/ContainerTest.php b/tests/Unit/Infrastructure/DependencyInjection/ContainerTest.php
deleted file mode 100644
index d751ecf67..000000000
--- a/tests/Unit/Infrastructure/DependencyInjection/ContainerTest.php
+++ /dev/null
@@ -1,165 +0,0 @@
-container = $this->createTestContainer();
- });
-
- it('implements PSR-11 ContainerInterface', function () {
- expect($this->container)->toBeInstanceOf(\Psr\Container\ContainerInterface::class);
- });
-
- describe('get() method', function () {
- it('can resolve a simple service', function () {
- $container = $this->createContainerWithDefinitions([
- 'test.service' => \DI\factory(function () {
- return 'test_value';
- }),
- ]);
-
- $result = $container->get('test.service');
- expect($result)->toBe('test_value');
- });
-
- it('can resolve autowired classes', function () {
- $container = $this->createContainerWithDefinitions([
- 'test.class' => \DI\autowire(stdClass::class),
- ]);
-
- $result = $container->get('test.class');
- expect($result)->toBeInstanceOf(stdClass::class);
- });
-
- it('throws NotFoundExceptionInterface for non-existent services', function () {
- expectException(
- fn() => $this->container->get('non.existent.service'),
- NotFoundExceptionInterface::class,
- 'non.existent.service'
- );
- });
-
- it('returns same instance for singleton services', function () {
- $container = $this->createContainerWithDefinitions([
- 'singleton.service' => \DI\factory(function () {
- return new stdClass();
- }),
- ]);
-
- $instance1 = $container->get('singleton.service');
- $instance2 = $container->get('singleton.service');
-
- expect($instance1)->toBe($instance2);
- });
- });
-
- describe('has() method', function () {
- it('returns true for existing services', function () {
- $container = $this->createContainerWithDefinitions([
- 'existing.service' => \DI\factory(function () {
- return 'value';
- }),
- ]);
-
- expect($container->has('existing.service'))->toBeTrue();
- });
-
- it('returns false for non-existent services', function () {
- expect($this->container->has('non.existent.service'))->toBeFalse();
- });
-
- it('returns true for autowirable classes', function () {
- expect($this->container->has(stdClass::class))->toBeTrue();
- });
- });
-
- describe('make() method', function () {
- it('can make instances with parameters', function () {
- $result = $this->container->make(stdClass::class);
- expect($result)->toBeInstanceOf(stdClass::class);
- });
-
- it('creates new instances each time', function () {
- $instance1 = $this->container->make(stdClass::class);
- $instance2 = $this->container->make(stdClass::class);
-
- expect($instance1)->not->toBe($instance2);
- });
- });
-
- describe('call() method', function () {
- it('can call closures with dependency injection', function () {
- $result = $this->container->call(function (stdClass $class) {
- return get_class($class);
- });
-
- expect($result)->toBe('stdClass');
- });
-
- it('can call methods with parameters', function () {
- $service = new class {
- public function test(string $param): string
- {
- return "Hello $param";
- }
- };
-
- $result = $this->container->call([$service, 'test'], ['param' => 'World']);
- expect($result)->toBe('Hello World');
- });
- });
-
- describe('injectOn() method', function () {
- it('returns the object after injection', function () {
- $object = new stdClass();
-
- $result = $this->container->injectOn($object);
- expect($result)->toBe($object);
- });
- });
-
- describe('getWrappedContainer() method', function () {
- it('returns the underlying PHP-DI container', function () {
- $wrapped = $this->container->getWrappedContainer();
- expect($wrapped)->toBeInstanceOf(\DI\Container::class);
- });
-
- it('allows direct access to PHP-DI functionality', function () {
- $wrapped = $this->container->getWrappedContainer();
- $wrapped->set('direct.service', 'direct_value');
-
- expect($this->container->get('direct.service'))->toBe('direct_value');
- });
- });
-
- describe('error handling', function () {
- it('provides meaningful error messages for missing services', function () {
- expectException(
- fn() => $this->container->get('missing.service'),
- NotFoundExceptionInterface::class,
- 'missing.service'
- );
- });
-
- it('handles circular dependencies gracefully', function () {
- $container = $this->createContainerWithDefinitions([
- 'service.a' => \DI\factory(function (\Psr\Container\ContainerInterface $c) {
- return $c->get('service.b');
- }),
- 'service.b' => \DI\factory(function (\Psr\Container\ContainerInterface $c) {
- return $c->get('service.a');
- }),
- ]);
-
- expectException(
- fn() => $container->get('service.a'),
- ContainerExceptionInterface::class,
- 'Circular dependency'
- );
- });
- });
-});
diff --git a/tests/Unit/Infrastructure/DependencyInjection/Definitions/ApplicationDefinitionsTest.php b/tests/Unit/Infrastructure/DependencyInjection/Definitions/ApplicationDefinitionsTest.php
deleted file mode 100644
index 8d686cea1..000000000
--- a/tests/Unit/Infrastructure/DependencyInjection/Definitions/ApplicationDefinitionsTest.php
+++ /dev/null
@@ -1,100 +0,0 @@
-toBeArray();
- });
-
- it('returns empty array when no application services are implemented yet', function () {
- $definitions = ApplicationDefinitions::getDefinitions();
-
- // Since we're in Phase 1 and application services aren't implemented yet,
- // the definitions should be empty (all examples are commented out)
- expect($definitions)->toBe([]);
- });
-
- it('follows application layer principles', function () {
- // Application layer should orchestrate domain objects
- // This test verifies the structure is ready for future application services
-
- $definitions = ApplicationDefinitions::getDefinitions();
-
- // Should be an array (even if empty)
- expect($definitions)->toBeArray();
-
- // When application services are added, they should follow these principles:
- // - Command and Query handlers
- // - Application services that orchestrate domain logic
- // - Event dispatchers
- // - No direct infrastructure concerns
- });
-
- it('can be safely called multiple times', function () {
- $definitions1 = ApplicationDefinitions::getDefinitions();
- $definitions2 = ApplicationDefinitions::getDefinitions();
-
- expect($definitions1)->toBe($definitions2);
- });
-
- it('is prepared for future command/query handlers', function () {
- // This test documents the intended structure for Phase 3 implementation
-
- $definitions = ApplicationDefinitions::getDefinitions();
- expect($definitions)->toBeArray();
-
- // Future command/query handlers will be registered like:
- // 'TorrentPier\Application\User\Handler\RegisterUserHandler' => DI\autowire(),
- // 'CommandBusInterface' => DI\factory(function (ContainerInterface $c) {
- // return new CommandBus($c);
- // }),
-
- // For now, verify the method works without breaking
- expect(count($definitions))->toBeGreaterThanOrEqual(0);
- });
- });
-
- describe('architectural compliance', function () {
- it('follows hexagonal architecture principles', function () {
- // Application layer should orchestrate domain objects without infrastructure concerns
-
- $definitions = ApplicationDefinitions::getDefinitions();
-
- // Application definitions should focus on:
- // 1. Command and Query handlers
- // 2. Application services
- // 3. Event dispatchers
- // 4. Use case orchestration
-
- expect($definitions)->toBeArray();
- });
-
- it('supports CQRS pattern', function () {
- // Application layer should separate commands and queries
- // This test ensures the structure supports CQRS implementation
-
- $definitions = ApplicationDefinitions::getDefinitions();
-
- // Future implementation will separate:
- // - Command handlers (write operations)
- // - Query handlers (read operations)
- // - Command and Query buses
-
- expect($definitions)->toBeArray();
- });
-
- it('prepares for event-driven architecture', function () {
- // Application layer should support domain events
-
- $definitions = ApplicationDefinitions::getDefinitions();
-
- // Future event dispatcher will be registered here
- // 'EventDispatcherInterface' => DI\factory(...)
-
- expect($definitions)->toBeArray();
- });
- });
-});
diff --git a/tests/Unit/Infrastructure/DependencyInjection/Definitions/DomainDefinitionsTest.php b/tests/Unit/Infrastructure/DependencyInjection/Definitions/DomainDefinitionsTest.php
deleted file mode 100644
index 787083024..000000000
--- a/tests/Unit/Infrastructure/DependencyInjection/Definitions/DomainDefinitionsTest.php
+++ /dev/null
@@ -1,84 +0,0 @@
-toBeArray();
- });
-
- it('returns empty array when no domain services are implemented yet', function () {
- $definitions = DomainDefinitions::getDefinitions();
-
- // Since we're in Phase 1 and domain services aren't implemented yet,
- // the definitions should be empty (all examples are commented out)
- expect($definitions)->toBe([]);
- });
-
- it('follows domain layer principles', function () {
- // Domain definitions should not contain infrastructure dependencies
- // This test verifies the structure is ready for future domain services
-
- $definitions = DomainDefinitions::getDefinitions();
-
- // Should be an array (even if empty)
- expect($definitions)->toBeArray();
-
- // When domain services are added, they should follow these principles:
- // - No framework dependencies
- // - Repository interfaces mapped to implementations
- // - Pure business logic services
- });
-
- it('can be safely called multiple times', function () {
- $definitions1 = DomainDefinitions::getDefinitions();
- $definitions2 = DomainDefinitions::getDefinitions();
-
- expect($definitions1)->toBe($definitions2);
- });
-
- it('is prepared for future repository interface mappings', function () {
- // This test documents the intended structure for Phase 2 implementation
-
- $definitions = DomainDefinitions::getDefinitions();
- expect($definitions)->toBeArray();
-
- // Future repository interfaces will be mapped like:
- // 'TorrentPier\Domain\User\Repository\UserRepositoryInterface' =>
- // DI\factory(function (ContainerInterface $c) {
- // return $c->get('TorrentPier\Infrastructure\Persistence\Repository\UserRepository');
- // }),
-
- // For now, verify the method works without breaking
- expect(count($definitions))->toBeGreaterThanOrEqual(0);
- });
- });
-
- describe('architectural compliance', function () {
- it('follows hexagonal architecture principles', function () {
- // Domain layer should have no infrastructure dependencies
- // This test ensures the definition structure is correct
-
- $definitions = DomainDefinitions::getDefinitions();
-
- // Domain definitions should focus on:
- // 1. Repository interface mappings
- // 2. Domain service factories
- // 3. No framework dependencies
-
- expect($definitions)->toBeArray();
- });
-
- it('supports dependency injection inversion', function () {
- // Domain interfaces should be mapped to infrastructure implementations
- // following the dependency inversion principle
-
- $definitions = DomainDefinitions::getDefinitions();
-
- // Even though empty now, the structure supports proper DI mapping
- expect($definitions)->toBeArray();
- });
- });
-});
diff --git a/tests/Unit/Infrastructure/DependencyInjection/Definitions/InfrastructureDefinitionsTest.php b/tests/Unit/Infrastructure/DependencyInjection/Definitions/InfrastructureDefinitionsTest.php
deleted file mode 100644
index 64ba55cee..000000000
--- a/tests/Unit/Infrastructure/DependencyInjection/Definitions/InfrastructureDefinitionsTest.php
+++ /dev/null
@@ -1,159 +0,0 @@
-toBeArray();
- });
-
- it('accepts configuration parameter', function () {
- $config = ['test' => 'value'];
- $definitions = InfrastructureDefinitions::getDefinitions($config);
- expect($definitions)->toBeArray();
- });
-
- it('returns empty array when no infrastructure services are implemented yet', function () {
- $definitions = InfrastructureDefinitions::getDefinitions();
-
- // Since we're in Phase 1 and infrastructure services aren't implemented yet,
- // the definitions should be empty (all examples are commented out)
- expect($definitions)->toBe([]);
- });
-
- it('follows infrastructure layer principles', function () {
- // Infrastructure layer should handle external concerns
- // This test verifies the structure is ready for future infrastructure services
-
- $definitions = InfrastructureDefinitions::getDefinitions();
-
- // Should be an array (even if empty)
- expect($definitions)->toBeArray();
-
- // When infrastructure services are added, they should follow these principles:
- // - Database connections and repositories
- // - Cache implementations
- // - External service adapters
- // - File storage systems
- });
-
- it('can be safely called multiple times', function () {
- $definitions1 = InfrastructureDefinitions::getDefinitions();
- $definitions2 = InfrastructureDefinitions::getDefinitions();
-
- expect($definitions1)->toBe($definitions2);
- });
-
- it('can handle different configurations', function () {
- $config1 = ['database' => ['host' => 'localhost']];
- $config2 = ['cache' => ['driver' => 'redis']];
-
- $definitions1 = InfrastructureDefinitions::getDefinitions($config1);
- $definitions2 = InfrastructureDefinitions::getDefinitions($config2);
-
- // Should handle different configs without breaking
- expect($definitions1)->toBeArray();
- expect($definitions2)->toBeArray();
- });
-
- it('is prepared for future database services', function () {
- // This test documents the intended structure for Phase 4 implementation
-
- $definitions = InfrastructureDefinitions::getDefinitions([
- 'database' => [
- 'host' => '127.0.0.1',
- 'port' => 3306,
- 'database' => 'tp',
- 'username' => 'root',
- 'password' => '',
- 'charset' => 'utf8mb4',
- ],
- ]);
-
- expect($definitions)->toBeArray();
-
- // Future database services will be registered like:
- // 'database.connection.default' => DI\factory(function () use ($config) { ... }),
- // Connection::class => DI\get('database.connection.default'),
-
- // For now, verify the method works without breaking
- expect(count($definitions))->toBeGreaterThanOrEqual(0);
- });
-
- it('is prepared for future cache services', function () {
- $definitions = InfrastructureDefinitions::getDefinitions([
- 'cache' => [
- 'driver' => 'file',
- 'file' => ['path' => '/tmp/cache'],
- ],
- ]);
-
- expect($definitions)->toBeArray();
-
- // Future cache services will be registered like:
- // 'cache.storage' => DI\factory(function () use ($config) { ... }),
- // 'cache.factory' => DI\factory(function (ContainerInterface $c) { ... }),
- });
- });
-
- describe('architectural compliance', function () {
- it('follows hexagonal architecture principles', function () {
- // Infrastructure layer should handle external concerns and adapters
-
- $definitions = InfrastructureDefinitions::getDefinitions();
-
- // Infrastructure definitions should focus on:
- // 1. Database connections and persistence
- // 2. Cache implementations
- // 3. External service adapters
- // 4. File storage systems
- // 5. Third-party integrations
-
- expect($definitions)->toBeArray();
- });
-
- it('supports dependency inversion', function () {
- // Infrastructure should implement domain interfaces
-
- $definitions = InfrastructureDefinitions::getDefinitions();
-
- // Future repository implementations will be registered here:
- // 'TorrentPier\Infrastructure\Persistence\Repository\UserRepository' => DI\autowire()
- // ->constructorParameter('connection', DI\get('database.connection.default'))
-
- expect($definitions)->toBeArray();
- });
-
- it('handles configuration-based service creation', function () {
- // Infrastructure services should be configurable
-
- $config = [
- 'database' => ['driver' => 'mysql'],
- 'cache' => ['driver' => 'redis'],
- 'storage' => ['driver' => 's3'],
- ];
-
- $definitions = InfrastructureDefinitions::getDefinitions($config);
-
- // Should handle configuration without breaking
- expect($definitions)->toBeArray();
- });
-
- it('prepares for multiple database connections', function () {
- $config = [
- 'database' => [
- 'default' => 'mysql',
- 'connections' => [
- 'mysql' => ['driver' => 'mysql'],
- 'sqlite' => ['driver' => 'sqlite'],
- ],
- ],
- ];
-
- $definitions = InfrastructureDefinitions::getDefinitions($config);
- expect($definitions)->toBeArray();
- });
- });
-});
diff --git a/tests/Unit/Infrastructure/DependencyInjection/Definitions/PresentationDefinitionsTest.php b/tests/Unit/Infrastructure/DependencyInjection/Definitions/PresentationDefinitionsTest.php
deleted file mode 100644
index b751b70ba..000000000
--- a/tests/Unit/Infrastructure/DependencyInjection/Definitions/PresentationDefinitionsTest.php
+++ /dev/null
@@ -1,147 +0,0 @@
-toBeArray();
- });
-
- it('returns empty array when no presentation services are implemented yet', function () {
- $definitions = PresentationDefinitions::getDefinitions();
-
- // Since we're in Phase 1 and presentation services aren't implemented yet,
- // the definitions should be empty (all examples are commented out)
- expect($definitions)->toBe([]);
- });
-
- it('follows presentation layer principles', function () {
- // Presentation layer should handle user interface concerns
- // This test verifies the structure is ready for future presentation services
-
- $definitions = PresentationDefinitions::getDefinitions();
-
- // Should be an array (even if empty)
- expect($definitions)->toBeArray();
-
- // When presentation services are added, they should follow these principles:
- // - HTTP controllers for web and API interfaces
- // - CLI commands for console operations
- // - Middleware for request/response processing
- // - Response transformers for output formatting
- });
-
- it('can be safely called multiple times', function () {
- $definitions1 = PresentationDefinitions::getDefinitions();
- $definitions2 = PresentationDefinitions::getDefinitions();
-
- expect($definitions1)->toBe($definitions2);
- });
-
- it('is prepared for future HTTP controllers', function () {
- // This test documents the intended structure for Phase 5 implementation
-
- $definitions = PresentationDefinitions::getDefinitions();
- expect($definitions)->toBeArray();
-
- // Future HTTP controllers will be registered like:
- // 'TorrentPier\Presentation\Http\Controllers\Web\HomeController' => DI\autowire(),
- // 'TorrentPier\Presentation\Http\Controllers\Api\UserController' => DI\autowire(),
- // 'TorrentPier\Presentation\Http\Controllers\Admin\DashboardController' => DI\autowire(),
-
- // For now, verify the method works without breaking
- expect(count($definitions))->toBeGreaterThanOrEqual(0);
- });
-
- it('is prepared for future CLI commands', function () {
- $definitions = PresentationDefinitions::getDefinitions();
- expect($definitions)->toBeArray();
-
- // Future CLI commands will be registered like:
- // 'TorrentPier\Presentation\Cli\Commands\CacheCommand' => DI\autowire(),
- // 'TorrentPier\Presentation\Cli\Commands\MigrateCommand' => DI\autowire(),
- });
-
- it('is prepared for future middleware', function () {
- $definitions = PresentationDefinitions::getDefinitions();
- expect($definitions)->toBeArray();
-
- // Future middleware will be registered like:
- // 'AuthenticationMiddleware' => DI\autowire('TorrentPier\Presentation\Http\Middleware\AuthenticationMiddleware'),
- // 'CorsMiddleware' => DI\autowire('TorrentPier\Presentation\Http\Middleware\CorsMiddleware'),
- });
- });
-
- describe('architectural compliance', function () {
- it('follows hexagonal architecture principles', function () {
- // Presentation layer should handle user interface and external interfaces
-
- $definitions = PresentationDefinitions::getDefinitions();
-
- // Presentation definitions should focus on:
- // 1. HTTP controllers (Web, API, Admin)
- // 2. CLI commands
- // 3. Middleware for request processing
- // 4. Response transformers
- // 5. Input validation and output formatting
-
- expect($definitions)->toBeArray();
- });
-
- it('supports multiple interface types', function () {
- // Presentation layer should support web, API, and CLI interfaces
-
- $definitions = PresentationDefinitions::getDefinitions();
-
- // Future implementation will include:
- // - Web controllers for HTML responses
- // - API controllers for JSON responses
- // - Admin controllers for administrative interface
- // - CLI commands for console operations
-
- expect($definitions)->toBeArray();
- });
-
- it('prepares for middleware stack', function () {
- // Presentation layer should support request/response middleware
-
- $definitions = PresentationDefinitions::getDefinitions();
-
- // Future middleware will handle:
- // - Authentication and authorization
- // - CORS headers
- // - Rate limiting
- // - Request validation
- // - Response transformation
-
- expect($definitions)->toBeArray();
- });
-
- it('supports dependency injection for controllers', function () {
- // Controllers should have their dependencies injected
-
- $definitions = PresentationDefinitions::getDefinitions();
-
- // Future controllers will be autowired with dependencies:
- // - Application services (command/query handlers)
- // - Request validators
- // - Response transformers
-
- expect($definitions)->toBeArray();
- });
-
- it('prepares for different response formats', function () {
- // Presentation layer should support multiple response formats
-
- $definitions = PresentationDefinitions::getDefinitions();
-
- // Future response transformers:
- // 'JsonResponseTransformer' => DI\autowire(...),
- // 'HtmlResponseTransformer' => DI\autowire(...),
-
- expect($definitions)->toBeArray();
- });
- });
-});
diff --git a/tests/Unit/Infrastructure/DependencyInjection/ServiceProviderTest.php b/tests/Unit/Infrastructure/DependencyInjection/ServiceProviderTest.php
deleted file mode 100644
index 69c7c68ac..000000000
--- a/tests/Unit/Infrastructure/DependencyInjection/ServiceProviderTest.php
+++ /dev/null
@@ -1,144 +0,0 @@
-isInterface())->toBeTrue();
- expect($reflection->hasMethod('register'))->toBeTrue();
- expect($reflection->hasMethod('boot'))->toBeTrue();
- });
-
- it('register method has correct signature', function () {
- $reflection = new ReflectionClass(ServiceProvider::class);
- $method = $reflection->getMethod('register');
-
- expect($method->isPublic())->toBeTrue();
- expect($method->getParameters())->toHaveCount(1);
- expect($method->getParameters()[0]->getType()?->getName())->toBe(Container::class);
- expect($method->getReturnType()?->getName())->toBe('void');
- });
-
- it('boot method has correct signature', function () {
- $reflection = new ReflectionClass(ServiceProvider::class);
- $method = $reflection->getMethod('boot');
-
- expect($method->isPublic())->toBeTrue();
- expect($method->getParameters())->toHaveCount(1);
- expect($method->getParameters()[0]->getType()?->getName())->toBe(Container::class);
- expect($method->getReturnType()?->getName())->toBe('void');
- });
-});
-
-describe('ServiceProvider implementation examples', function () {
- it('can implement a basic service provider', function () {
- $provider = new class implements ServiceProvider {
- public function register(Container $container): void
- {
- $container->getWrappedContainer()->set('example.service', 'registered');
- }
-
- public function boot(Container $container): void
- {
- // Boot logic here
- }
- };
-
- $container = $this->createTestContainer();
-
- $provider->register($container);
-
- expect($container->get('example.service'))->toBe('registered');
- });
-
- it('can implement a provider with complex services', function () {
- $provider = new class implements ServiceProvider {
- public function register(Container $container): void
- {
- $container->getWrappedContainer()->set('complex.service', \DI\factory(function () {
- return new class {
- public function getValue(): string
- {
- return 'complex_value';
- }
- };
- }));
- }
-
- public function boot(Container $container): void
- {
- // Could perform additional setup here
- $service = $container->get('complex.service');
- // Setup complete
- }
- };
-
- $container = $this->createTestContainer();
-
- $provider->register($container);
- $provider->boot($container);
-
- $service = $container->get('complex.service');
- expect($service->getValue())->toBe('complex_value');
- });
-
- it('can implement a provider that registers multiple services', function () {
- $provider = new class implements ServiceProvider {
- public function register(Container $container): void
- {
- $wrapped = $container->getWrappedContainer();
-
- $wrapped->set('service.a', 'value_a');
- $wrapped->set('service.b', 'value_b');
- $wrapped->set('service.c', \DI\factory(function () {
- return 'value_c';
- }));
- }
-
- public function boot(Container $container): void
- {
- // Boot all registered services
- }
- };
-
- $container = $this->createTestContainer();
-
- $provider->register($container);
- $provider->boot($container);
-
- expect($container->get('service.a'))->toBe('value_a');
- expect($container->get('service.b'))->toBe('value_b');
- expect($container->get('service.c'))->toBe('value_c');
- });
-
- it('boot method can access services registered by register method', function () {
- $bootedServices = [];
-
- $provider = new class($bootedServices) implements ServiceProvider {
- public function __construct(private array &$bootedServices)
- {
- }
-
- public function register(Container $container): void
- {
- $container->getWrappedContainer()->set('bootable.service', 'registered_value');
- }
-
- public function boot(Container $container): void
- {
- $value = $container->get('bootable.service');
- $this->bootedServices[] = $value;
- }
- };
-
- $container = $this->createTestContainer();
-
- $provider->register($container);
- $provider->boot($container);
-
- expect($bootedServices)->toBe(['registered_value']);
- });
-});