feat: Complete LLMX v0.1.0 - Rebrand from Codex with LiteLLM Integration

This release represents a comprehensive transformation of the codebase from Codex to LLMX,
enhanced with LiteLLM integration to support 100+ LLM providers through a unified API.

## Major Changes

### Phase 1: Repository & Infrastructure Setup
- Established new repository structure and branching strategy
- Created comprehensive project documentation (CLAUDE.md, LITELLM-SETUP.md)
- Set up development environment and tooling configuration

### Phase 2: Rust Workspace Transformation
- Renamed all Rust crates from `codex-*` to `llmx-*` (30+ crates)
- Updated package names, binary names, and workspace members
- Renamed core modules: codex.rs → llmx.rs, codex_delegate.rs → llmx_delegate.rs
- Updated all internal references, imports, and type names
- Renamed directories: codex-rs/ → llmx-rs/, codex-backend-openapi-models/ → llmx-backend-openapi-models/
- Fixed all Rust compilation errors after mass rename

### Phase 3: LiteLLM Integration
- Integrated LiteLLM for multi-provider LLM support (Anthropic, OpenAI, Azure, Google AI, AWS Bedrock, etc.)
- Implemented OpenAI-compatible Chat Completions API support
- Added model family detection and provider-specific handling
- Updated authentication to support LiteLLM API keys
- Renamed environment variables: OPENAI_BASE_URL → LLMX_BASE_URL
- Added LLMX_API_KEY for unified authentication
- Enhanced error handling for Chat Completions API responses
- Implemented fallback mechanisms between Responses API and Chat Completions API

### Phase 4: TypeScript/Node.js Components
- Renamed npm package: @codex/codex-cli → @valknar/llmx
- Updated TypeScript SDK to use new LLMX APIs and endpoints
- Fixed all TypeScript compilation and linting errors
- Updated SDK tests to support both API backends
- Enhanced mock server to handle multiple API formats
- Updated build scripts for cross-platform packaging

### Phase 5: Configuration & Documentation
- Updated all configuration files to use LLMX naming
- Rewrote README and documentation for LLMX branding
- Updated config paths: ~/.codex/ → ~/.llmx/
- Added comprehensive LiteLLM setup guide
- Updated all user-facing strings and help text
- Created release plan and migration documentation

### Phase 6: Testing & Validation
- Fixed all Rust tests for new naming scheme
- Updated snapshot tests in TUI (36 frame files)
- Fixed authentication storage tests
- Updated Chat Completions payload and SSE tests
- Fixed SDK tests for new API endpoints
- Ensured compatibility with Claude Sonnet 4.5 model
- Fixed test environment variables (LLMX_API_KEY, LLMX_BASE_URL)

### Phase 7: Build & Release Pipeline
- Updated GitHub Actions workflows for LLMX binary names
- Fixed rust-release.yml to reference llmx-rs/ instead of codex-rs/
- Updated CI/CD pipelines for new package names
- Made Apple code signing optional in release workflow
- Enhanced npm packaging resilience for partial platform builds
- Added Windows sandbox support to workspace
- Updated dotslash configuration for new binary names

### Phase 8: Final Polish
- Renamed all assets (.github images, labels, templates)
- Updated VSCode and DevContainer configurations
- Fixed all clippy warnings and formatting issues
- Applied cargo fmt and prettier formatting across codebase
- Updated issue templates and pull request templates
- Fixed all remaining UI text references

## Technical Details

**Breaking Changes:**
- Binary name changed from `codex` to `llmx`
- Config directory changed from `~/.codex/` to `~/.llmx/`
- Environment variables renamed (CODEX_* → LLMX_*)
- npm package renamed to `@valknar/llmx`

**New Features:**
- Support for 100+ LLM providers via LiteLLM
- Unified authentication with LLMX_API_KEY
- Enhanced model provider detection and handling
- Improved error handling and fallback mechanisms

**Files Changed:**
- 578 files modified across Rust, TypeScript, and documentation
- 30+ Rust crates renamed and updated
- Complete rebrand of UI, CLI, and documentation
- All tests updated and passing

**Dependencies:**
- Updated Cargo.lock with new package names
- Updated npm dependencies in llmx-cli
- Enhanced OpenAPI models for LLMX backend

This release establishes LLMX as a standalone project with comprehensive LiteLLM
integration, maintaining full backward compatibility with existing functionality
while opening support for a wide ecosystem of LLM providers.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Sebastian Krüger <support@pivoine.art>
This commit is contained in:
Sebastian Krüger
2025-11-12 20:40:44 +01:00
parent 052b052832
commit 3c7efc58c8
1248 changed files with 10085 additions and 9580 deletions

View File

@@ -0,0 +1,17 @@
▂▅▂▅▄▇▇▄▄▇▆▂
▂▄▆▅▇▃▇▅▇▃▄▁▁▄▂ ▂█▇▂
▆▁▇▁▇▇▇█▃▂ ▂█▇▂█▁▄▁▁▁▇
▄▇▂▃▇█▆▆▂ ▅▇▁▄▁▆
▃▃▄▅█▃▁▃▂▃▃ █▅▁▃▃▆
▁▇ ▇▂ ▁▇▅▄▁▁▆ █▅▃▁▁▆
▇▃█▆▇ █▃▁▇▅█▁▂ ▁▅▁
▁▁▂▁▂ ▆▅▅▁▄▁▇ █▂▁
▁▄▁█▂ ▄▁▁▃▃▁█▅▁▇▇▇▇▇▇▂▇▆ ▄█ ▁
▂▁▄▇ ▂▄▇▂ ▅▇ ▁█▁▂▂▂▅▅▆▆▆▁▅▆▅▆▁
▃▃▂█▃ ▃▃▆▅▅▂ ▂▃▇██▇ ▃▇█▅▆▄▂▅
▇▃▆ █▆ ▂ ▆█▅▇▂▁
▃▃▆▂▃▇▂ ▂▄▂▇▁▂▇█
▃▇▆▃▂ ▇▇▅▄▄▄▄▅▄▇▇▂▆▁▇
▂▇█▇▁▁▁▂▂▂▆▂▄▇▇█

View File

@@ -0,0 +1,17 @@
▂▇▇▇▇▃▇▇▂
▇█▂▇▇▇▃▁▅▂▇▆
▃▂▆▁▁▅▁▁▆▁▇▃▆▆
▁▂▂▅▃▁▄▂▅▃▆██▃▃▆
▅ ▄▁▁█▁▃ █▆▅▂▅▁▅
▁▂ █▁▇▁▅▅▃ ▂▂█▁
▃ ▁▇█▇▁▁▁▁▇ ▁▅▆
█ ▁▁▃▇▅▇▁▁▆▂▂▅▃▁▁
█ ▁▃ ▃▃▁▄▁▁▇▃▇▄▁▁
▁ ▆▁▃▆▁▂▅▂▇▂▂▂▁▇▂
▆ █▁▁▁▁▁██ ▃▆█▃▁▂
▃▂█▆▃▆▇█ ▂▁██▆▅▅
▁█ ▁▁▁▁▇▆▅▆▅▁▅▂
▄▂▇▇▅▁▇▄▂ ▅▅█
▇▆ ▂▇▃▂▆▄▇

View File

@@ -0,0 +1,17 @@
▆▇▇▇▇▇▇▂
▅█ ▄▁▁▁▃▃▆
▅█▂▂▁▁▄▃▇▅▃▆
▁▂▂▁▁▄▄▆▂▄▅▅
▂█▅▄▃▁▇▃█▄▂▁▁▆
▁▇▂▁▁▇▂▄▄▁▂▅▁▁
▇▇ ▆▁▁▁▁▁▁▂▁▄▃
▁ ▁▁▅▁▁▃▅ ▁█▁
▅ █▁▅▁▁▇▅▇▁▂▁
▇▇ ▂▁▅▄▆█▅▁▂▁▃
█▂▆ ▁▁▁▁▄▅▁▃▃▁
▃▂▆▅▁▂▇▅▇▇▄▁▂
▂ ▇▁▃▃▃▂▁▄█
▃▇ ▇▁▁▆▂▅▇▂
▃▂ █▇▇▂▇▂

View File

@@ -0,0 +1,17 @@
▇▇▇▇▇▅
▆▄▂▂▅▁▆▃
█ ▁▅▃▇▆
▅▇▁▁▁▄▄█▁
▁ █▁▁▁▁▅▅▁
▁█▅▅▇▃█▂▁█
▁ ▁▅▃▁▁▃
▁ ▅▇▃▁▁█
▇▆ ▁▅▁▁▇▁▁
▁ ▅▁▇▄▇▂
▁▅ ▁█▄▇▇▅
▆ ▇▁ ▂▆▁
▅ ▇▇▁▆▇▃▁
█▃▅█▆▁▃▁▂
▃ █▁▃▅▅

View File

@@ -0,0 +1,17 @@
▅▇▇▇▆
▁▂▂▁▁
▁▂▂▁█
▁▇▇▁▂
▇ ▁▁
█▅▆▁▁
▆ ▁▁
▇ █▁
▅▇ ▂▁▅
▁█ ▇▄▁
█▂▅▅ ▁▂
▁▂▂▂▁
▁▇▆▁▂
▇▂▂▁▄
▆ ▅█▄

View File

@@ -0,0 +1,17 @@
▇▇▇▇▄
▆▅▂▂▅▃
▁▂▁▁▅ ▁
▁▁▅▁█▃▁▆
▁▁▁▃ ▁
▁▇▁▁ █▁
▁▁▁▁ ▅ ▇
▁▁▃▁▂ ▃
▁▁▁▁ █
█▃▅▅ ▄▅
▃▁██▆▅▆▁
▁▇▁▁▂▂▂▁
▅ █▁▄▄▄▂
▁▃▅▇▂▂▅
▂▇ █▄▅

View File

@@ -0,0 +1,17 @@
▇▇▇▇▇▁▂
▂▆▄▁▁▃▅▇▆
▅▅▁▇▄▃▁█▇▁
▁▅▂ ▅▅▆▅▂▂▁
▁▁▄█▄▃▁▁▅█▃▁
▃▁▁▆▁▁▅▅▁ █
▁▁ ▁▁▁▁▁▁▆▁
▁▁▅▁▁▇▁▁▁ █▆▁
▁▁▇▆▆▇▁▁▁▂▅▅▁
▁▂▁▄▅▁▃▁▇▅ ▅▁
▁▅▁▁▁▁▂▁ ▂ ▄
▁▇▇▅▃▁▁▃▆ ▄
█▁▃▆ ▅▅▅▂ ▄▂
▁▃▁▁▃▃▅▇▃▅
▃▃▇▃▂▂▂▅
▂▂

View File

@@ -0,0 +1,17 @@
▂▄▇█▇▇▇▁▂
▅▃▁▁▇▁▁▃▁▄▃
▁▅▅█▃▅▄▃▁▁ █▃
▅▅▅ ▄▇▂▃▁▃▁▁▇▇▁
▁▁▄▂▅▇█▄▁▁▇▅▁▂▃
▁▁▁▇▁█ ▁▃▄ ▁ ▁▅▁
▃▃▁ ▅▂▆▁▁▁▁▅▇█▆ ▁
▁▅▄ ▁▂▁▁▅▁▁▁█▄ ▂▁
▃▃▁▁▁▇▁▅▃▁▁█▇▇ ▅
▇█▂▂▆▄▄▃▇▁▅▂▁ ▆▂▁
▁▁▁▇██▅▇▃▁▄█▄▅▁▁▂
▁▁▇ ▁▂ ▂▅▅▆ ▅
▃▁▇ ▁ ▅▆▅▂▆▁
▃▁▁█▂▇▁▅▅▇▂▁
█▅▅▂▄▅▂▂▄▇

View File

@@ -0,0 +1,17 @@
▆▄▇▇▇▄▄▁▆▂
▂▄▇▇▁▁▁▇▄▇▁▆█▃▆
▆▇▃▅▂▄▄▂▇▆█▁▁▁▂█▃
▅▁▅▂▅▁█▂▂ █▁▄▃▁▁▁▄▃
▁▅▂ ▁ ▁█▅▃▄▃▅▅ ▆
▂▄▇▆▅▂ ▆▅▅▁ ▅▆▄▅▁▅▅
▇ ▄▅▁ ▆▅▅▁▂ ▇█▁▁▅▄▁
▆█▄▁ ▅▅▁▁▅▁▆▁▁▄▄▇
▆▅▇▅▃▄▄▇▁▃▂▁▃▃▅▃▁▁▁ ▁
▁█▂▄▂▂▁▅▇▃▅▁▁▃ ▃▇█▇▃
▃▃▃▅███▇▇▇▇▃▂▁▇▅▅▃ ▃█
▃▁▁▂▇ ▂▅▁▁▂ ▄
▂▃▃ ▇▃▂ ▆█▆▅▃▂▅
▆ ▁▇▇▄▃▇▂▂▄▇▅▁█
▂▇▄▅▂▆▇▁▇▂▇▇

View File

@@ -0,0 +1,17 @@
▂▄▄▇▄▄▇▄▁▆▂
▂▇█▂▄▆▇▇▁▂▂▆█▇▄▄▂
▂▅▅▁▇█▇▄█▆█▅▂█▇▅▅▃ ▇
▆▁▁▇▅▆▃█▇ █▃▂▂▅▄▁▃▄▃▃▃▆
▂▃▅▅ ▅▁ ▂█▇▂▃▅▁▅▁▂▃▄▃▃▂
▅▃▁ ▆▆▁▅▂▂▂▅▆▇▆▁█▆▅▃▅▂▅▁
▁▁▃▅▅ ▇▅▇▅▁█▂▅█▇▁▄▁▄▆
█▃▆▁▁ ▃▃█▁▁▄▃ ▁▄▁█
▃██ ▆▃▄▄▄▄▄▇▁▁▆▁▇▅▃▆ ▁▇▁▂
▂▃▃▁▇▃▇ ▁▁▅▂▂▃▂▁▁▁▂▄▁▂▃ ▆
▁▅▁▃▂██▇▇▇▇▇▂ ▃▂▂▅▁▅▇▅▂▆▂
▃▃ ▆▃▆ ▂▂▇█▅▇▂█
▃▃▇▇▃▃▅ ▂▇▃▂▅▃▆▂
█▁▅▇▇▇▇▄▄▄▃█▇▂▅▂▆▇
█▁▁▂▅▂▂▆▅▇█▄▇█

View File

@@ -0,0 +1,17 @@
▂▂▄▄▇▁▇▄▄▁▅▂
▂▇▁▁▁▃▅▄▄▄▂▇▂▆▁▇▆▆
▆▇▄▄▅█▁▇▇▂ ▂▇▅▆▂▇▄▃
▅▄▁▇▆▃▂ ▂▄▄▇▆▃▁▇▆
▁▁▅▂▅▂ ▆▁▃█▅█▁▃ ▁▃▆
▁▃▅▇█ ▂▁▇▁▅ ▅▅ █▅▇▁
▃▄▁▁█ ▅▇▃▅▁▇▆▂ ▅▅▅▇▁
▁▁▁▁ ▁▄█▃▁█▆ ▁ ▁▁▁
▁▇▁▃▆▄▄▄▄▄▄▁▁▁▁▇▇▄▇▁▄ ▃ █▁▁
▃▄▅▆▁▄▇▅▃▇▇▃▆▂▆ ▃▂ ▅▃▂▃▆▅▅▁▂
█▃█▅▇▁█████▇▇█ ▃▃▂▅▁▅▅ ▅▅█
▃▃▃▇▂▃ ▂▅▅▂▅▅█
█ ▂▃▁▁▇▆ ▆▄▄▅▅▁▄▂
██▅▁▇▅▁▇▂▂▄▄▅▇█ ▄▇▁█
█▁▅▂▅▆█▂▆▅▃▇▆▃

View File

@@ -0,0 +1,17 @@
▂▅▂▅▄▇▄▄▄▇▆▂
▂▇▆▅▇▄▇▁▁▁▄▁▁▄▂█▁▇▇▂
▆▁▇▁▃▇▇▁▇▂▂ ▂█▇▄▇▅▁▁▄▁▆
▂▁▅▂▅▇█▆▆▂ ▆▆▃▁▅▁▆
▆▃█▅▇▃▁▃▂▃▃▂ ▃▆▁▃▁▆
█▅▇█▂ ▁▇▃▇▅▃▇ ▃▃▁▇▁
▆▁█▇▁ ▃▅▁▄▁▂▁▆ ▅█▁█▁
▁█ ▃▂ ▆▁▇▁▁▄▇ ▁█▅▅▁
▇██▄▁ ▄▁▃▃▂▁█▅▁▇▇▇▇▇▇▇▇▆▁▂▁▁▇
▂▄█▁ ▅▁▁█ ▅▇ ▁▄▃▂▂▂▂▅▅▂▂▁▇▅ ▁
▃▃▃ ▇ ▇▃▅▅▁█ ▂█▇▇▇▇▇▇▇█▁▆▇▁▁
█▃▂▅▅▆ ▂ ▆▇▄▅▆▇
▅▃▂▂▁▇▆ ▆▄▂▇ ▂▁█
▂▁▃▄▂▂█▇▇▅▄▄▄▄▅▄▇▂▂▁▁▇
▂▇▇▇▇▁▁▂▂▂▂▁▄▅▇█

View File

@@ -0,0 +1,17 @@
▂▂▇▄▁▁▄▇▄▆▂▂
▆▄▄█▄▆▂▆▄▄▄▁▁▂▃▇▃▇▆
▆▆█▂▇▇█▁▇█ ▂█▃█▃▇▇▁▇▂
▂▁█▂▇▁▇ ▂▆▇▁▃▅▇▃▃
▂▁ ▆▁▇ ▂▅ ▂▁▁▃▇▃▁▁▃
▅▂▆▁█ ▇▇█▄▁█▅ █▃▁▁▃
▄▁▄▇▁ ▆▇ ▅▇▇▃ ▆▃▁▅
▁▂▃▅▂ ██▄▅▁█▆ ▁▁█▁
▁▅▁▁▄▆▄▄▄▄▄▄▄▄▂▆█▄▃▃▃▃▇ ▅ ▁▃
█▁▃▁▂█ ▅▂▂▂▂▂▂▁▃ ▇▃▃█▁▄▃ ▆▅ ▁▁
▃▆▃▃████████▇█ ▃▆▄▁▁▆▁ ▅▃
▇ ▃▇▅▆ ▂▅▇▅▁▅
▃▂▃▇▆▁▂ ▆▄▇▂▄▇█
▃▆▆▅█▁▇▃▄▄▆▅█▁█▂▆▅▇█
▂▇▇▁▂ ▄▂▂▂▂▁▇██

View File

@@ -0,0 +1,17 @@
▂▂▆▄▇▄▄▇▄▇▆▂▂
▆▇▇▂▂▂▂▇▁▄▁▇▄▂▂▆▇▇▂
▄▇▃▂▇▇▃█▂ ▂▃▁▇▇▂▂▇▆
▆▇▁▄██ ▂▆▄▇▆▄▇▆
▅▆▅▇▂ ▆▁▅▂▃ ▃▃▂▃▆
▅█▅▁ ▆▇▇▂▅▅ ▃▃▃▆
▁█▁▂ ▂ ▅▂▆▅█ ▃▄▃█
▂▃ ▃▄ █▁▆ ▁ ▁
▁ ▁ ▆▇▄▄▄▄▄▇▇▇ ▃▁▆█▁▆ ▄▅ ▁
▁ ▁▃ ▁▂ ▂▆▁ ▃█▂▇▁▆ ▅█▅▅
▄ █▅ ▂▂███ █▂ █▇▂▆▄ ▅▂ ▆
█▇ ▅▄▂ ▂▇█ ▅
▇▂ ▃▆▂ ▂▅▄▇█ ▆▂
▇▄▂ ▇█▇▇▅▁▁▄▅▄▇██ ▆▂
▇▇▇▄▇▂▂▂▂▆▂▄▇▇▂

View File

@@ -0,0 +1,17 @@
▂▆▇▄▇▄▄▇▄▇▆▂
▂▇▅▇▁▅▂▅▁▅▃▁▁▄▁▇▅▇▇▂
▆▄▇▄▁▃▇▇▂ ▂█▇▃▇▇▇▂▂▇▆
▄▇▁▇▇█ ▆▆▁▁▁▂▇▃
▃▁▁▅█ ▆▂▅▁▄▁▅▅▄█▁
▃▁▇▅▂ ▆▁▅▁▄▃▅▂ ▃▁▃▄▁
▁▇▇▃▅ ▁▇▁▃▇▅█ ▁▁▅▁
▁▁▄▁▂ ▁▃▁▁▃▃ ▁▃▁█▁
▁▁▆█▆ ▇▁▄▄▄▄▄▄▇▇▂▃▇▁▂ ▃▆ ▂▁▄█
▃▁▄ ▇▂▃▃▆ ▅▆█▁▅▅▁ ▃▇▄▂█▁▆▆ ▅▃▄
▃▃▃▂▁ █████▇▇█▂ ▂▅▇▇▂▅▅▅█▆▂
▃▇▃▂▃▆ ▂▇▆█▁▆█
██▇▄ ▇▇▂ ▂▅▇▆█▇▂▅
█▅▇▇▆█▇▁▄▄▇▄▄▅▄▇███▆▇
█▁█▁▂▄▂▂▂▆▄▂▅▄▇▂

View File

@@ -0,0 +1,17 @@
▂▆▇▂▄▇▇▇▇▄▇▂▂
▂▄▁▇▁▃▂▆▂▄▄▆▁▂▁▇▁▇▂
▆█▇▁█▆▄▇▂ █▁▅▇▁▃▄▁▁▆
▅▄▁▇▄▅▂ ▂▄▄▃▁▁▄▃
▅▅▁▂▅█ ▆▅▆▆█▇▅▇▃▁▃
▆▃▁█▅▂ ▂▇▇▇██▅▇█▁▁▃▁▆
▂▁▁█▁ ▅▅▅▅ ▂▁▂ █ ▁█▇
▁▅▁ ▁ ▁█▁▆▂▃▆ ▁ ▇▅▁
▃█▃ ▁▇▁▄▄▄▄▄▄▄▄▁▂▇▁▂█▃▂ ▁ ▁▁▁
▁▃▃▂▁█▄█ ▅▂▃ ▃▁▂▃▆▁ ▃▂▁
▅█▁ ▁ ▂███████ █▂▅▄▄▁▂▅▃▅▂
▆▁▁▂▁▅ ▆▅▁▃▃▅▂
▃ ▁▆█▅▂▂ ▂▅█▄▇▅▇▅
▃▄▃▇▄▇▇▃▁▄▄▂▇▇█▆▂▇▇▂
█▁ ▇▄▃▁▂▂▇▂▂▇▇▂

View File

@@ -0,0 +1,17 @@
▂▁▂▄▇▇▇▄▄▆▂
▆█▂▅█▁▂▂▁▄▄▇▆▂█▇
▆██▄▃▅▇█▁ ▅▂▅▇▁▇▇▆ ▃
▆█▅▅▆▅▁▄▆▃▂▁▅▂ ▂▇▃▁▃▂█
▆ ▅▅▃▅▆ ▂██▅▃▂▁▂▂▃▁▆█
▁▆▃▇▃▂ ▇▆▆▅ ▅▁▄ ▅█▃
▁ ▁▁ ▆▅▂▆▅█▅▃▃▁▃▃▁▃
▁ ▃▁▁ ▁▆▄▅▃▂▁▁▂▅▅▂▁▁
▁▅ ▁▄▄▄▅▇▇▁▁▁▇▇▂▇▆▂▁ ▁ ▁▁
▂ ▅ ▇▁▅▆▆▄▄▆▆▁▅▃▃▇▇▁ ▁▇▁
▃ █▃▁▃▇██████▂ ▃▆▅▇▃▁▄▅▆▂
▃ ▃▆▇▃ ▁ █▅▄▅
▃▅▇▃▂▁▅ ▂▄█▂▅▅▂▇
▅▆▇▆▃▃█▁▁▅▄▄▄▁▃▂▅▂
▇▅▂▇▇▄▃▂▂▄▄▇▇

View File

@@ -0,0 +1,17 @@
▂▇▄▇▄▇▇▇▇▂
▆ ▇▆▇▂▂▄▃▁▇▁▁▆
▅▁▅▅▆▆█▅▁▇▃▄▃▁▁▁▂
▁▇▇▁ ▅ ▄▁ █▃▁▆▇▃▅
▆▂▂▃▆▅█▃▄▅▂▁█ ▁▅▅▃▅▇
▃▆▁▁▁▂▇▇▅▃▁▅ ▅▁▆▁▅▅▁▆
▁▅▁▇▁ ▁▂▂▅▃▂▅▁▃▅▂█▁▄▁
▁▁▁▅▁▅█ ▁▂▄▃▅▁▃▂▁▄▁▁▃
▃▇▃▁█▁▂▂▄▄▄▄▇▁▁▃▃▁▇▇▁▃
▅▆█▁▅▁▆▁▂▁▁▄▇▂▁▃▇▄▅▃▁
▃▁▇▅▃▁▂██████▇▅▁▃▁▅▁▂
▁▂█▁▄▇▄▃▆▆▇▅▂▅▆▅▅▁▅
▃▂▃▁▂▃▂▇▄▅▆▃▅▂▁▁▅
▃▅▄▃▃▂▇▄▁▇▇ ▇▁▇
▁▆█▇▃▇▆▂▇▁▇

View File

@@ -0,0 +1,17 @@
▂▄▇▇▇█▇▆
▅▇▁▄▅▃▁▇▄▁▆
▅▇██▁▄▃▁▃██▃▆
▄▇█▆▁▁▁▂▁▁▂▇▅▃
▁▂▆▃▁▅▁█▇▃▅▄▁▃▄
▃ █▁▅▅▅█▇▂▃█▃▃▅
▁ ▇█▄▁▁▅▁▁▄▄█▇
▅▆ ▃▁▁▁▃▃▄▁▁▅▁▁
▁ ▅▃▇▄▇▁▇▄▄▅▃▁▁
▅▂▁▅▆▁▂▂▆▇▃▃▇▁
▁▂█▅▁▇█▃▆▅▂▇▃▁▁
▃▂▁▁▅▃ ▅▅█▁▁▂
▇ ▇▁▃ ▃▂▅▁▅▆
▁█▇▃▃█▇▂▇▇▄
▃▅▅▃▇▁▂▃▇

View File

@@ -0,0 +1,17 @@
▄▇▇▇▇▆
▁▄▅▅▁▅▃
▄█▂ ▇▁▅█▁
▁▁▁▃▁▁▄▁▁
▁ ▂▁▂▆█▄
▁▂▅▂█▂▁▁▁▂
▄ █▁▁▂▇▁▁
▁ ▂▁▁▁▄█▁▁
▁▅ ▅ ▁▇▁▁▁▁
█▄ ▅█▂▁▂▇▁▁
▁▆ ▂▃▇▇▇▅█
▁▁▇▇▁▁▂▅▁
▁▄▄▇▄▆▅▁▃
▃▂▂▁▃▄▅▅
█▃█ ▃▃▅

View File

@@ -0,0 +1,17 @@
▅▇▇▄
▁▇▂▁▂
▄ ▄▁▂
▁▆▂▇▁
▁ ▁▁
▁ ▆█▁
▃▁▁ ▂▁
▁▆██▁
▅▃ ▂▁
▁▁▅▅▁▁
▁ ▂▁
▁▄▇▄▁
▁▄▇▁▁
▇▂▂▅▁
▁ ▅▇▁

View File

@@ -0,0 +1,17 @@
▇▇▇▇▇▆
▆▁▇▅ ▇▃
▃▆▁▁ ██▁
▁▁▁▁▃▃▆▅
▃ ▁█▁ ▁
▁▆▁▁▁ ▂▂
▁▃▃▁▁▁ ▃
▁▁▄▁▁
▁▁▁▇▁ ▂
▂▁▄▁▁ ▂
▇▁▁▅▁▃ ▄
▁▅▁▁▁ ▂▁
▁▁▁▁▂▁▂▁
▁▄▁▇▅█▁█
▁▁▇ ▅▆

View File

@@ -0,0 +1,17 @@
▂▅▄▄▇▇▄▄▄▄▆▂
▂▇▆▅▃▁▁▇▁█▄▄▁▄▂▃▁▇▇▂
▆▄▅▇▄▁▇██▂ ▂█▁ ▇▇▇▅▃▁▆
▅▇▅▃▁▄▆▇▂ ▂▄▇ ▁▁▃
█▅▇▁▅▃▅▁▁▇▃▂ ▃▃▃▁▁▂
▅▁▃▃▅ ▅▆▁▃▄▃▃ ▁ ▃▃▁
▄▇ ▁ █▇▃▁▂█▁▆ ▅▇▅▁▆
▆▆▁▆▁ ▆▆▁█▅▃▁ ▁▂▁▄▁
▆██▁ ▄▁▇▇▁▁▇▆▁▄▇▇▂▂▂▇▇▂▁▃█▄▁
▆▃▅▃▆ ▅▅▇▅▄▄▁ ▁▇▁▂▂▆ ▄▅▆▄▃▂▁▃▁▂
█▃▁ ▁ █▁▁▇▆█ █▇▇▇███▇▇▆▅▅▅▆▅
█▇▁ ▃▇ ▂ ▅▃▇▃▅▅
▄▃▅▅▇▃▆ ▆▇▄▅█▆▁█
▄▃▇▆▂▇▇▃▄▄▄▄▆▅▄▇▄▂▂▇█
▂▇▇▇▂▅▁▂▂▂▂▁▄▅▃█

View File

@@ -0,0 +1,17 @@
▂▄█▇▇▇▆
▂▅▄▁▁▃▇█▄▃
██▃▁▆▃▃▁▇▆▃
▁▁▃▁▅▁▂▃▁▃ ▃▆
▄▇▁▁▂▃▁▆▁▆ ▁
▁▇▁▃▇ ▇▁▁▁▁▅▁
▃▅▁▁▁▃▂ ▃▅▃▁ ▄▂
█▁ █▇▄▁▆▁█▁▆ ▂
█▁▂█▃▁▄▁▃▅▁▆ ▂
█▁▁▃▁▂▂▁▁ ▇▆ ▂
▃▁▁▄▃▂▇▁▁▁▇▁▁
▁▇▅▅▆▅▇▃▁▁█ ▁
▃▁▃▁▁▅▇▁▁▆▁▅
▆▃▆▇▄▃▅▁▆▅█
▃▆▅▁▃▂▂▄█
▂▂▂▂

View File

@@ -0,0 +1,17 @@
▂▅▅▇▇▇▇▄▆
▂▇▇▄▇▆▂█▇▃█▇▆
▆▁▃▅▅▆▄▂▂▅█▁▂▇▃
▆▁▅▇▂▂▇▄▂▆▃▃▁▃▁▁▃
▃▁▁▁▁▇▆▇▃▂▆█▃▁▅▂▂
▄▁▃▂▁▂▁██▃▄▇▆▅▅▁▆█▁
▅▁▁ ▁▃▇▁▃▅▄▅▄▇▁▇▁▅▁
▃▃▆ ▁▁█▁▃ ▁▃██▁▁▃▅▁
▁▃▆▂▁█▃▁▁▁▅▇▁▁▁▂ ▁
█▁▁▁▅▅▁▁▂▂▂▃▂▁▃▁▁ ▇
▃▇▂▅▇▁▆ ▅▇▇▇▂▅▁█▁▂
▁▁▁▃▃▃▆ ▂▄▇ ▁
▄▁▇▄▂ ▆ ▅ ▁▇▂▅▂
▅▁▃▁▅▂▁▂▆▁█▆▁▂
██▄▁▂▇▇▅▅▄▇
▂▂▂▂

View File

@@ -0,0 +1,17 @@
▆▇▇▇▇▄▄▁▆▂
▄▇▁▇▇▁▃▁▁▇▇▁▁▆
▅▃▇▄▃▆▇▃▅▆▂▇▁▇▃█▇▆
█▅▅▁▂▆▂▄▆ ▆ ▆▂▃▁▇▆ ▆
▅▅▁▆▁▇▃█▇▁▄ █▂▆▁▃▅▃▇▃▆
▃▅▃▃▆▃▇▁▂▅▁▁▇▂ ▁▇▅ ▇
▇▁█▄▆▂█▃▁▁▆▆▁▆▄▂▅▂▅▅▁█▂
▁▁▁▆▂ █▂▁▁█▅█▁▄▆▂█▃▁██▂
▃▁▁▆▂ █▂▁█▂▂▁▇▇▇▁▁▁▄▁█▄▂
███▂▂▁▇▃█▃▂▂▂▂▂▁▁▇▁▄▁▆▂
▆▃▇▁▁▅ ▁▇██▇▇▇▃▄▅▅▅▅▅
▃▆▁▃▃▃ ▆▃▁▅█▁
█▇▇▁▁▁▇▂ ▂▅▂▁▅ ▆
▃▆▃█▁▇▁▄▄▇▂▂▇█▂▅
▁▄▄▂▂▆▇▅▇▂██
▂▂▂

View File

@@ -0,0 +1,17 @@
▂▆▇▄▇▄▇▄▁▅▂
▂▇▇▁▁▃▇▄▁▅▁▆▁▇▁▇▅
▂▅▃▁▇▇▇▆▄█▂ █▇▅▁▁▇█▆
▆▃▅▁▅▂▁▆▂ ▇▁▁▃▂▇
▂▅▁▅▂▁▁▅▃▃▃ ▁▇▃▃▃
▅▅▆ ▃▂▃▃▂▃▆ ▅▃▅▂▃
▁▁▇ ▃▆▇▁▂▁▃ ▁▇▁▁
▇▁▆▆ ▆██▃▅▄▆ ▃█▁▇
▁▁▁ ▁ ▆▂ ▅▇▆▆▆▄▄▄▇▁▁▇▅▂▁▃▁
▃▅▁██▅▅▆▅▂▁▁▂▂▂▂▂▁▁▇▃▃▃▁▁▅
▃▄▃▆ ▁▅▁▅ ▅ ████▇▇▇ ▁▁▆▅▃▂
▃▇▃▇▆█▆ ▅▅▄▅▄▅
▇▃█▇▆▇▄▆ ▂▇▁▆▅▇▃█
▃▁█▇▃▇▁▆▄▇▂█▄▆▃▇▁▇
█▄▄▇▆▂▂▂▃▇▇▄▆█
▂▂▂▂

View File

@@ -0,0 +1,17 @@
▂▆▄▇▇▇▇▄▁▆▂
▂▇▇▇▅▃▄▁█▁▇▇▄▇▇▄▆▄▂
▂▅▅▆▁▇█▅▁▇▂ ▂▃▃▃▆█▇▇▆
▆▅▂▁▇▂▅▆▂ ▇▁▆▇▃▃
▅▅▁▃▆▅▁ ▁█ ▆ ▃▃▇▃▃
▆▅▃▁▂▅ ▃▃█▁▃▇▃ ▃▆▃▁▃
▁▇▃▁▂ █▃▂▇▁▂▃ ▁▄▁▂
▃▁▄█▅ ▁▇▂▁▅█▁ ▅ ▂▃
▆█▅▅█ ▅▃▅▅█▂▄▄▇▇▇▇▇▇▁▂▂█ ▁▃▂
▁▁▃▆▅▆▆▃█▅▅█▁▁▁▂▁▅▂▂▂▆▅▂▁▁▂▁▃
▅▂▃▆ ▁▃▁▇▃ █▇▇▂▂▂▂▃ ▆▅▆▃▁█
▅▆▃▄▄▃▂ ▅▄▅▁▅█
▃▇▂▁▇▃▄▆ ▂▇▄█▂▅▆▂
▆▃▅▁█▁▇▆▄▆▇▄▇▄▇▂▇▇▅█
█▁▃▄▄▂▂▂▂▂▄▄▇▄▃
▂▂▂

View File

@@ -0,0 +1,17 @@
▂▆▇▄▄▇▇▇▄▇▆▂
▆▇▄▇▅▁▇▇▇█▁▇▁▅█▁▇▄▂
▂▅▅▁▄▇▇▁▃▇█▂ ▂█▇▄▇▅█▁▇▆
▆▅▅▇▅▆▄▆▂ ▇▇▂▃▁▂
▅▅▁▁▅▅▃ █▃▇▆ ▁▃▇▁▆
▄▅▄▅▇▂ █▁▂█▅▅▇▂ ▁▃▃▁
▃ ▅▅ ▃▃ █▇▂▅ ▁▃▃▃
▁▁▁▅ ▅▃▃▄▅█ ▅ █▅
▅ ▆▂ ▆▁▁▅▄█▅▁▄▄▂▄▂▄▇▁▁ ▁▁▄▇
▁▆▃▄█ ▅▅▄█▇▇▅▁▄ ▃▆▂▂▂▂▅█▁▅█ ▁█
▅▂▃▆█▅▃▂▁▅▃▂ ▂█▃▃▃▃▇▃▃▇▅▅▂▆▁
█▅▃▃▅▁ ▂▅▇ ▆▃
▃▄▂▃▄▆▅▆ ▆▄▅▂▇▇█
█▃▂█▁▇▁▆▅▁▁▇▁▄▅▇█▂▅▄█
█▃▁▄▄▂▂▅▂▂▇▇▇█▃

View File

@@ -0,0 +1,17 @@
▂▂▇▄▇▇▇▇▄▇▆▂
▂▄██▃▇▅▄▅▇▃▇▄▇▇█▇▇▇▂
▆▃█▃▆▇▇▆▇█▂▂ ▂█▇▁▇▇▁▆▇▁▆
▂▁█▇▇▂▂▂▂ █▇▁▃█▁
▆▅▂▄▃█▁▃▂▃▆▅ ▃▃▅▇
▅ ▆▅▂ ▇▂ █▁▅▆ █▃▃▇
▁ ▄ ▂ ▃ █▃▃ ▁▃▁▆
▁▁▃▁ ▂▃ ▂▅▅ ▃▁ ▁
▁██▁ ▅▅ ▆▇██▆▇▇▂▇▇▇▇▇▂ ▁▃▁▁
▂▇▁▃ ▆▁▂▂▅▁▅ ▂▁▂▂▂▂▂▂▂▁▁ ▃▅█▂
█ ▇▁▃ ▇▂▇▅▃ █▇▇▃▃▃▃▃█ ▁▆█▅
█▆█▃▄▅ ▆▅▁█▅
▃▅▁▁▇▁▆ ▆▇▇█▅▆▂
▇▆▂█▇▇▄▃▄▁▂▇▁▄█▆█▆▄▇█
▂▇▇▅▁▂▆▆▂▆▆▇▇▇▇█

View File

@@ -0,0 +1,17 @@
▂▅▄▄▇▄▄▇▄▇▆▂
▂▆█▇▇▁▅ ▁▃▄▅▇▄▁█▅▇▆▂
▆▇▄▁▁▁▇▇█▂ ▂▃▁▃▃▇▁▅▃▃▂
▅▅▁▆▁█▅▇▆ █▁▇▇▃▇▃
▅▁▅▂▁▄▁▃▄▃▁▆ ▃█▃▁▇▃
▅▁▁▃▁ █▂▁▁▅▇▃ █ ▃▄▁▆
█▃▁▄▂ █▇▇▃▇█▁▆ ▆ █▄▁
▁▅▃ ▆▁▅▇▃▁▁ ▁▁▁
▂▁ ▁▂ ▄▁▅█▃▅▅▇▁▇▇▇▂▂▂▂▆▆ ▁▁▇
▁▃▅ ▁ ▆▅▅▅▆▂▁▂▄▃▁▆▅▂▆▅▅▃▄▁▅▅█▁
▂▁▄█▃▆▃▃▆▃▅ █▇▇▇▇▇▇▇█▃▆▁▁▁▂
▆▁▃█▁▂▂ ▆▃▄▅▇▇█
▃▃▆▅▃ ▆▂ ▂▅▃▆▇▄▁▅
▁▁▁▄▂▇▇▃▄▄▄▄▆▇▄▇▇▃▁▇▂
▇▃▃▁▅▁▂▂▂▂▂▄▆▇▂

View File

@@ -0,0 +1,17 @@
▂▅▄▄▄▇▄▄▄▇▆▂
▂▇█▇▅▇▅▁▁▇▁▄▇▄▂▁█▇▆
▇▂▅▃▇▁▇█▂ █▃▄▁▇▃ ▆▇▆
▆▁▅▁▅▁▅▄▆ ▆▃▁▁▁▁▂
▆▃▅▇▅▃▂▇▁▂▃▆ ▂ ▃▁▃▁▂
▁▁▁▁▅ ▃▂▁▃▄▅▁▂ ▇▅▁▁
▁▅▁ ▇ ▂▃▂▁▃█▁▆ ██▁▇▁▆
▁▅▁▂█ ▆▂▄▁▅▂▁ ▇▁▂▁
▁▆▁▃▇ ▅▂▁█▆▁▇▄▂▁▇▁▂▂▂▇▆▂█▁▅▁
▂▃▁▃▆▆▅▇▇█ ▁█ ▅▅▃▄▃▆▄▅▆▅▁▅▇▁▂
▃▆▁▁▆▁▆▃▃▅▇▂ █▇▇█████▆▁▄▁▃▅
▃▃▇▅▃▃ ▂ ▅▂▅▇▆▃
▃▅▇▃▁▄▇▂ ▂▄▇▆▇█▄▇
▃▁▇▁▆▇▇▃▄▁▄▂▆▇▄▇▃▁▄▇
▃▆▇▂▇█▂▂▂▆▂▆▇▇▂

View File

@@ -0,0 +1,17 @@
▂▅▄▄▄▇▄▄▇▇▂▂
▆▃▄▅▇▁▄▇▇▁▇▇▄▂▆▇▇▂
▆▆▆▁▁▁▇█ ▂█▁▅▄▇▇▇▅▃▂
▅▆▁▇▁▇▂▄▆ ▃▇▁▁▁▁▆
█▄▁▁▁▇▃▃▇▇▃ ▅▃▃▁▃▆
▄▆▅▁▅▂▃▇▄▁▃▂▁▆ ▅▄▃▅▁
▂ ▇▁▁ ▃▃▁▅▃▃ ▃▇▁▂▁
▁ ▁▁▁ ▂▁▄▁▅▁▁ ▁▇▃▁▁
▂▅▁▆▁ ▅█▁▁▇▄▅▇▂▁▇▁▂▂▇▇▂▅▃▅▁
▁▁▃▆▅▂▃▂▄▇ ▁▅▄▇▆▁▁▆▄▄▄▃▁▆▁▃
▅ ▁ ▅▁▁▁▄▅█ █▇████▇█▂▃▃▅▁
▆ ▄ ▅▆▂ ▆▅▂▅▅▁▂
▅▂▃▂▇▇▆ ▂▇▃▂▅▇▆▇
▂█▁▇▆█▇ ▄▁▂▂▆▇▇▇ ▅▄█
▃▆▄▇▇▆▂▂▂▂▂▆▇▇

View File

@@ -0,0 +1,17 @@
▂▅▁▄▇▇▄▄▇▆▂
▆▇▂▇▃▁▇▇▇▄▄▃▄ ▂▇▆
▇ ▆▁▁▁▇▂ ▂▃▁▂ ▇▅▂▇▆
▃▃▁▁▁▁▄▇ ▃▁▃▇▁▅▆
▂█▁▇▁▁▃▁▅▃▆ ▅ ▇▁▁▃
▁ ▄▁▁█ ▂█▃▄▁▃ ▆▆▁▁▁
▂▃█▁ ▃▂▁▃▁▃▁ ▇▇▃▁▁
▂█▅▁▁ ▄▇▅▁▇▁▂ █ ▁▁▁
▅█▁▇ ▆█▂▅▁▃▅▁▁▄▄▂▁▁▄▄▇▃▁▁
▁▆█▁▁▄▅▁▁▅█▁▅▃▁▁▃▃▆▄▆▄▃▁▃▁
▃ ▄▃▅▇▁▇▂▅ ▇▇▇▇▇▇██▂▅▁▁
█▂ ▅▂▅▂▂ ▆█▆▅▄▅█
█▄▆▇▃▃▃▂ ▆▃▁▆▇▅▇█
▃▂█▃▁▇▃▄▁▂▂▂▇▇▁▇▇▅
█▁▇█▁▅▁▂▂▆▂▄▇▇

View File

@@ -0,0 +1,17 @@
▂▂▇▂▄▇▇▄▇▆▂
▆█▇▅▁▁▁▇▄▄ ▁ █▇
▂▁▄▆▁▅▅▇ ▆█▁▅▁▇▃▇▃▆
▂▇▃▇▅▁▆▇▁ █ ▄▃▁▁▃
█ ▅▁▅▆▃▁▅▃ ▅█▃▁▁▆
▁█▆▁▃▃▃▂▃▁▂▇ ▃▇▁▁▁
▁▇▁▁▁ █▂▄▃▁▂▁ ▁▃▁▅▁▆
▃▆▁▁▅ ▁▇▃▅▁▆▇▅ ▅▂▅▁▁
▃ ▃▁▁▂▃ ▅▇▄▁▁▅▇▆▇▆▆▃▁▁▁
▃▇▅▄▂▁█▆▁▆▁▁▄▁▄▂▂▁▁▄█
▅▅▃▃▁▃▁▁▁▅█▃▇▃▇█▃▇█▅▃▁
█▆█▁▃▁▂▂ ▅▆▅▅▅█
█▃▂▇▃▃▃▂ ▂▅▃▂▁▇▅▇
▅▅█▁▆▇ ▄▄▇▇▄▅▄▆▁▂
▁▁▂▇▇▃▁▂▆▇▅▄▂
▂▂

View File

@@ -0,0 +1,17 @@
▅▄▃▇▅▇▇▄▆
▅▇▂▅▁▁▇█▄ ▂▆▃▂
▅ ▆▁▁▅▇▃▃▄▅ ▃▂▁▆
█ ▁▁▅▄▄▂ ▂▃▆▁▃▃▁▇▆
▅▇█▄▃▇█▁▇▆ ▇▅█▇▅▇▁▁
▁ ▁▁▁█▃▁▃▄▂▂ ▁█▁▇▁▁▁
▂ ▁▇▃▁▇▇▁▃▃▆█▅▆▅ ▂▁▁
▁ ▁▅▂▆▃▁▁▁▂▅▄▃▂▁ ▁▁
█▆▁█ ▅▁█▁▁▁▁▇▁▁▆▁▁▂
▁▂▁▁▁▂▆▁▃▁▂▁▁▁▁▂▂▁▁▁
█ ▂▃▅▃▃▁▅█▇▇▇▇▁▁█▅▃▁
▃▁▁▁▃▆▂ ▆▅ ▃▅▁▂
▃▇▃▁▃▃ ▅▄▂▄▁▅▇
▃▆█▃▂▁▇▅▇▄▄▄▇▁▂
█▆▂ ▇▃▃▁▄▇▅█