Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b3926e0fed | ||
|
|
171376f897 |
33
CHANGELOG.md
@ -6,6 +6,23 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
## [0.9.3] - 2026-11-03
|
||||
|
||||
### Fixed
|
||||
|
||||
- The mouse pointer is hidden while the bubbles screen saver is showing, and returns when the overlay is cleared.
|
||||
|
||||
## [0.9.2] - 2026-11-02
|
||||
|
||||
### Added
|
||||
|
||||
- **View -> Full screen** or **F11** fills the display; **Escape** leaves full screen. Full screen is not restored on the next launch.
|
||||
- **Settings -> Screen saver** enables a bubbles overlay after idle minutes while full screen. The console stays readable under the bubbles. Any mouse or key press clears the overlay without leaving full screen.
|
||||
|
||||
### Changed
|
||||
|
||||
- AppStream screenshots stay on tag `v0.8.6`, where those images are stored. The `0.9.2` release entry points at this version's changelog.
|
||||
|
||||
## [0.9.1] - 2026-10-31
|
||||
|
||||
### Added
|
||||
@ -64,7 +81,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
||||
|
||||
### Added
|
||||
|
||||
- When Settings → AI is on, Chat sits on the cluster overview beside Errors and Warnings. Analyze issues asks which objects are still failing and which events are leftover after the pods recovered. Those warnings and errors go with the question.
|
||||
- When Settings -> AI is on, Chat sits on the cluster overview beside Errors and Warnings. Analyze issues asks which objects are still failing and which events are leftover after the pods recovered. Those warnings and errors go with the question.
|
||||
|
||||
### Changed
|
||||
|
||||
@ -133,8 +150,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
||||
- The navigator adds admission policies, CSI objects, API services, flow schemas, priority levels, and dynamic resource allocation types. Custom resource tables use the CRD `additionalPrinterColumns`.
|
||||
- A list can send a label selector with the API request.
|
||||
- YAML apply falls back to create or replace when the API server rejects an apply patch.
|
||||
- Settings → AI sets the local Ollama endpoint and model. Chat stays read-only unless the agent is enabled; restart, pod delete, scale, and apply then wait for a confirmation.
|
||||
- Help → About shows the product, license, and contact.
|
||||
- Settings -> AI sets the local Ollama endpoint and model. Chat stays read-only unless the agent is enabled; restart, pod delete, scale, and apply then wait for a confirmation.
|
||||
- Help -> About shows the product, license, and contact.
|
||||
|
||||
### Fixed
|
||||
|
||||
@ -161,7 +178,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
||||
|
||||
### Added
|
||||
|
||||
- Help → Logs shows the app log and crash reports, and an unhandled error opens a copyable debug window instead of closing the app.
|
||||
- Help -> Logs shows the app log and crash reports, and an unhandled error opens a copyable debug window instead of closing the app.
|
||||
- YAML view, volume files, and ConfigMap/Secret values highlight as JSON or YAML. A data key or file name uses its extension (`.json`, `.yaml`, `.yml`); a key without one stays plain. The resource YAML tab is always YAML.
|
||||
- Services table includes Status: Active when the load-balancer address is assigned, Pending when none is set, and Unreachable when a BGP or requested address is not the one in `status.loadBalancer.ingress` (or Cilium IPAM reports it unsatisfied).
|
||||
|
||||
@ -228,7 +245,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
||||
- **Applications** table shows live **CPU** (% of cluster allocatable) and **Memory** (k8s `Mi`/`Gi`) from summed pod metrics when metrics-server is available.
|
||||
- **Deployments**, **StatefulSets**, and **DaemonSets** tables include **CPU** and **Memory** columns (millicores / `MiB`, summed from owned pods).
|
||||
- Applications metric **tooltips**: CPU in millicores; memory as `MiB` plus rounded `MB`.
|
||||
- Applications pod attribution matches instance labels, direct workload owners, and **ReplicaSet → Deployment** owners.
|
||||
- Applications pod attribution matches instance labels, direct workload owners, and **ReplicaSet -> Deployment** owners.
|
||||
- Transient Kubernetes API errors (for example HTTP/2 `ResponseEnded`) retry automatically; the client uses HTTP/1.1 for list traffic.
|
||||
|
||||
### Changed
|
||||
@ -283,12 +300,12 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
||||
|
||||
- Status-bar messages for port-forward start, stop, restore, and failure.
|
||||
- Local / Remote labels on the port-forward bar so the two port fields are explicit.
|
||||
- Rebind the host port of an existing forward from **Network → Port Forwarding** (Local field + Rebind).
|
||||
- Double-click a live port-forward in **Network → Port Forwarding** to open `http://127.0.0.1:{local}` in the default browser.
|
||||
- Rebind the host port of an existing forward from **Network -> Port Forwarding** (Local field + Rebind).
|
||||
- Double-click a live port-forward in **Network -> Port Forwarding** to open `http://127.0.0.1:{local}` in the default browser.
|
||||
|
||||
### Changed
|
||||
|
||||
- Active port-forwards are listed in **Network → Port Forwarding** (stop from the table). They are no longer shown in the status bar.
|
||||
- Active port-forwards are listed in **Network -> Port Forwarding** (stop from the table). They are no longer shown in the status bar.
|
||||
- Resource table footer, YAML/Data edit bars, and workload limit apply buttons show only for a selected row that can use them. Empty toolbars are hidden.
|
||||
- Enabled port-forwards are saved in `appsettings.json` (`Configuration:PortForwards`) and restored when a cluster reconnects.
|
||||
|
||||
|
||||
@ -62,7 +62,7 @@ Store listing copy:
|
||||
|
||||
### System requirements (Properties)
|
||||
|
||||
Partner Center → **Properties** → **System requirements**. A blank cell stays unset. Minimum is what the Store may warn on; Recommended does not warn.
|
||||
Partner Center -> **Properties** -> **System requirements**. A blank cell stays unset. Minimum is what the Store may warn on; Recommended does not warn.
|
||||
|
||||
The app is a win-x64 desktop console (tables, YAML, terminal). It does not use a camera, microphone, radio, gamepad, or a specific GPU.
|
||||
|
||||
|
||||
62
README.md
@ -11,7 +11,7 @@
|
||||
|
||||
- Your kubeconfig and its RBAC are the access path. Click a catalog row to connect that context in this app. The radio writes kubectl `current-context` for the command line. This app does not read that field. Several contexts can stay connected.
|
||||
- Helm, Dapr, and Longhorn screens view and operate what is already installed. They do not install those systems.
|
||||
- **Cloud…** adds Google, Azure, Amazon, Oracle, DigitalOcean, or IBM by running that provider's CLI. **S3 Browser** opens a Longhorn backup target.
|
||||
- **Cloud...** adds Google, Azure, Amazon, Oracle, DigitalOcean, or IBM by running that provider's CLI. **S3 Browser** opens a Longhorn backup target.
|
||||
- Chat is optional local [Ollama](https://ollama.com). It is read-only by default. With changes allowed, each restart, pod delete, scale, and apply waits for Approve.
|
||||
- Windows, Linux, and macOS. [Apache 2.0](LICENSE.md).
|
||||
|
||||
@ -48,28 +48,29 @@ If you find this project useful, please consider supporting its development:
|
||||
|
||||
Each line links to the screen notes in [docs/features.md](docs/features.md).
|
||||
|
||||
- [Cluster overview](docs/features.md#cluster-overview) — version, node count, CPU, memory, and pod charts, plus errors and warnings.
|
||||
- [Applications](docs/features.md#applications) — one row per app instance and namespace, with ready, CPU, and memory.
|
||||
- [Pods](docs/features.md#pods) — logs, shell, attach, a debug container, and port-forward.
|
||||
- [Chat](docs/features.md#chat) — local Ollama on the overview or the selection. Read-only by default.
|
||||
- [Volume files](docs/features.md#volume-files) — browse, edit, download, and upload files on a PV or claim.
|
||||
- [Dapr](docs/features.md#dapr) — components, configurations, subscriptions, sidecars, and the control plane.
|
||||
- [Port forwarding](docs/features.md#port-forwarding) — saved tunnels that restore on reconnect and open in the browser.
|
||||
- [Connections](docs/features.md#connections) — the kubeconfig on disk, **Add…**, and **Cloud…** for six providers.
|
||||
- [Navigator](docs/features.md#navigator) — cluster through custom resources. Longhorn and CloudNativePG appear when those APIs are installed.
|
||||
- [Longhorn](docs/features.md#longhorn) — attach, detach, recurring jobs, backups, and S3 Browser. Does not install Longhorn.
|
||||
- [Tables](docs/features.md#tables) — watch, search, label selector, and a footer action on the selection.
|
||||
- [YAML](docs/features.md#yaml) — view, apply, create, and delete.
|
||||
- [Workloads](docs/features.md#workloads) — scale, restart, rollout, and a CronJob trigger.
|
||||
- [Nodes](docs/features.md#nodes) — cordon, uncordon, and drain, with a preview of which pods move.
|
||||
- [Config](docs/features.md#config) — ConfigMaps, Secrets, quotas, autoscaling, and admission.
|
||||
- [Network](docs/features.md#network) — Services, ingress, and policies. A load balancer is Active, Pending, or Unreachable.
|
||||
- [Storage](docs/features.md#storage) — resize a claim, change reclaim policy, and browse volume files.
|
||||
- [Access](docs/features.md#access) — approve a certificate signing request, and create a ServiceAccount token shown once.
|
||||
- [Custom resources](docs/features.md#custom-resources) — extra columns from the CRD.
|
||||
- [Helm](docs/features.md#helm) — installed charts, revision history, and a values diff. Install and upgrade stay on the Helm CLI.
|
||||
- [Metrics](docs/features.md#metrics) — CPU and memory from metrics-server.
|
||||
- [Help](docs/features.md#help) — Hint on the kind, the app log, a copyable crash window, and What's New.
|
||||
- [Cluster overview](docs/features.md#cluster-overview) - version, node count, CPU, memory, and pod charts, plus errors and warnings.
|
||||
- [Applications](docs/features.md#applications) - one row per app instance and namespace, with ready, CPU, and memory.
|
||||
- [Pods](docs/features.md#pods) - logs, shell, attach, a debug container, and port-forward.
|
||||
- [Chat](docs/features.md#chat) - local Ollama on the overview or the selection. Read-only by default.
|
||||
- [Full screen and screen saver](docs/features.md#full-screen-and-screen-saver) - F11 full screen, and optional idle bubbles while full screen.
|
||||
- [Volume files](docs/features.md#volume-files) - browse, edit, download, and upload files on a PV or claim.
|
||||
- [Dapr](docs/features.md#dapr) - components, configurations, subscriptions, sidecars, and the control plane.
|
||||
- [Port forwarding](docs/features.md#port-forwarding) - saved tunnels that restore on reconnect and open in the browser.
|
||||
- [Connections](docs/features.md#connections) - the kubeconfig on disk, **Add...**, and **Cloud...** for six providers.
|
||||
- [Navigator](docs/features.md#navigator) - cluster through custom resources. Longhorn and CloudNativePG appear when those APIs are installed.
|
||||
- [Longhorn](docs/features.md#longhorn) - attach, detach, recurring jobs, backups, and S3 Browser. Does not install Longhorn.
|
||||
- [Tables](docs/features.md#tables) - watch, search, label selector, and a footer action on the selection.
|
||||
- [YAML](docs/features.md#yaml) - view, apply, create, and delete.
|
||||
- [Workloads](docs/features.md#workloads) - scale, restart, rollout, and a CronJob trigger.
|
||||
- [Nodes](docs/features.md#nodes) - cordon, uncordon, and drain, with a preview of which pods move.
|
||||
- [Config](docs/features.md#config) - ConfigMaps, Secrets, quotas, autoscaling, and admission.
|
||||
- [Network](docs/features.md#network) - Services, ingress, and policies. A load balancer is Active, Pending, or Unreachable.
|
||||
- [Storage](docs/features.md#storage) - resize a claim, change reclaim policy, and browse volume files.
|
||||
- [Access](docs/features.md#access) - approve a certificate signing request, and create a ServiceAccount token shown once.
|
||||
- [Custom resources](docs/features.md#custom-resources) - extra columns from the CRD.
|
||||
- [Helm](docs/features.md#helm) - installed charts, revision history, and a values diff. Install and upgrade stay on the Helm CLI.
|
||||
- [Metrics](docs/features.md#metrics) - CPU and memory from metrics-server.
|
||||
- [Help](docs/features.md#help) - Hint on the kind, the app log, a copyable crash window, and What's New.
|
||||
|
||||
## Requirements
|
||||
|
||||
@ -122,14 +123,17 @@ Operator layout, open clusters, port-forwards, and Chat settings are stored in `
|
||||
|
||||
| Key | Role |
|
||||
|-----|------|
|
||||
| `AiEnabled` | Chat tab. Off until enabled under Settings → AI |
|
||||
| `AiEnabled` | Chat tab. Off until enabled under Settings -> AI |
|
||||
| `AiAgentEnabled` | With chat on, restart, pod delete, scale, and apply run only after you approve each one |
|
||||
| `OllamaEndpoint` | Local Ollama API, default `http://127.0.0.1:11434` |
|
||||
| `OllamaModel` | Local Ollama model, default `qwen3:8b`. A larger model (`qwen3:14b`, `qwen3:32b`, `qwen3-coder:30b`) is a better fit once changes are allowed |
|
||||
| `OllamaTimeoutSeconds` | How long one Chat reply may run, in seconds. Default 240. Settings → AI shows this as Timeout |
|
||||
| `OllamaTimeoutSeconds` | How long one Chat reply may run, in seconds. Default 240. Settings -> AI shows this as Timeout |
|
||||
| `ScreenSaver` | Bubbles overlay while full screen is idle. `Enabled` (off by default) and `IdleMinutes` (default 5). Settings -> Screen saver |
|
||||
| `PortForwards` | Enabled localhost forwards; restored on reconnect |
|
||||
| `Layout` | Window, panes, last navigator item, per-cluster tables |
|
||||
|
||||
**View -> Full screen** or **F11** fills the display. **Escape** leaves full screen. When the screen saver is on, idle only while full screen shows translucent bubbles over the live UI; the first mouse or key press clears the bubbles and keeps full screen. Full screen is not restored on the next launch.
|
||||
|
||||
Chat stays read-only until **Allow the assistant to change the cluster** is on. Those changes still wait for Approve. The model box accepts any local Ollama model; larger models handle restart, scale, delete, and apply more reliably than `qwen3:8b`.
|
||||
|
||||
## FAQ
|
||||
@ -141,13 +145,13 @@ Yes. It is a native desktop Kubernetes GUI (operator console) for Windows, Linux
|
||||
Yes. `KUBECONFIG` or `~/.kube/config`. RBAC is whatever that identity already has. Clicking a catalog row connects that context in this app. The radio only writes kubectl `current-context` so your command line can use the same cluster. This app does not read that field.
|
||||
|
||||
**Does Chat send cluster data to a cloud AI?**
|
||||
No. Chat is optional [Ollama](https://ollama.com) on the same machine. The model is whatever you set under Settings → AI. By default the tools only read issues, YAML, logs, and events. Turn on **Allow the assistant to change the cluster** and the same chat can restart, delete a pod, scale, or apply YAML, each after you approve it. A larger local model is the better choice for that.
|
||||
No. Chat is optional [Ollama](https://ollama.com) on the same machine. The model is whatever you set under Settings -> AI. By default the tools only read issues, YAML, logs, and events. Turn on **Allow the assistant to change the cluster** and the same chat can restart, delete a pod, scale, or apply YAML, each after you approve it. A larger local model is the better choice for that.
|
||||
|
||||
**Can Flatpak run a cloud exec plugin?**
|
||||
Yes. **Download CLI** installs gcloud, az, aws, oci, doctl, ibmcloud, or kubelogin into the app. The sandbox starts that copy, including the exec plugin a kubeconfig names. A CLI installed on the host is not visible inside the sandbox. A certificate or token needs no CLI.
|
||||
|
||||
**Does it have a Cloud window and an S3 browser?**
|
||||
Yes. **Cloud…** adds Google, Azure, Amazon, Oracle, DigitalOcean, or IBM by running that provider's CLI, which writes the API server, certificate, and login. **S3 Browser**, under Longhorn, opens the default backup target and any other S3 targets.
|
||||
Yes. **Cloud...** adds Google, Azure, Amazon, Oracle, DigitalOcean, or IBM by running that provider's CLI, which writes the API server, certificate, and login. **S3 Browser**, under Longhorn, opens the default backup target and any other S3 targets.
|
||||
|
||||
**Can it install a cluster, Helm charts, Dapr, or Longhorn?**
|
||||
No. It talks to an existing Kubernetes API. Helm, Dapr, and Longhorn screens view and operate objects that are already there. They do not install those systems. Adding a Longhorn backup target writes that target and its credential secret. S3 Browser opens a target those credentials can already reach.
|
||||
@ -165,11 +169,11 @@ Or `dotnet test MaksIT.ClusterConsole.Tests` from `src/`. Tests use kubeconfig f
|
||||
|
||||
## Scope
|
||||
|
||||
Desktop operator console for the Kubernetes API. Not a CLI, cluster installer, GitOps, or secret-management system. Helm, Dapr, and Longhorn screens view and operate objects already in the cluster. They do not install those systems. Adding a Longhorn backup target writes that target and its credential secret. **Cloud…** writes a kubeconfig context by running a provider CLI. **S3 Browser** opens a Longhorn backup target.
|
||||
Desktop operator console for the Kubernetes API. Not a CLI, cluster installer, GitOps, or secret-management system. Helm, Dapr, and Longhorn screens view and operate objects already in the cluster. They do not install those systems. Adding a Longhorn backup target writes that target and its credential secret. **Cloud...** writes a kubeconfig context by running a provider CLI. **S3 Browser** opens a Longhorn backup target.
|
||||
|
||||
## License
|
||||
|
||||
Apache 2.0 — see [LICENSE.md](LICENSE.md).
|
||||
Apache 2.0 - see [LICENSE.md](LICENSE.md).
|
||||
|
||||
© Maksym Sadovnychyy (MAKS-IT)
|
||||
|
||||
|
||||
11
WHATSNEW.md
@ -2,6 +2,17 @@
|
||||
|
||||
Short notes shown in the app after an upgrade. The full history, including maintainer notes, is [CHANGELOG.md](CHANGELOG.md).
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
## [0.9.3] - 2026-11-03
|
||||
|
||||
- The mouse pointer is hidden while the bubbles screen saver is showing.
|
||||
|
||||
## [0.9.2] - 2026-11-02
|
||||
|
||||
- View -> Full screen or F11 fills the display. Escape leaves full screen.
|
||||
- Settings -> Screen saver can show translucent bubbles after idle while full screen, so the console stays visible on a wall display.
|
||||
|
||||
## [0.9.1] - 2026-10-31
|
||||
|
||||
- The cluster catalog can collapse to a Connections rail, the same way the details pane collapses. The choice is kept.
|
||||
|
||||
|
Before Width: | Height: | Size: 101 KiB After Width: | Height: | Size: 102 KiB |
|
Before Width: | Height: | Size: 136 KiB After Width: | Height: | Size: 138 KiB |
|
Before Width: | Height: | Size: 102 KiB After Width: | Height: | Size: 104 KiB |
|
Before Width: | Height: | Size: 94 KiB After Width: | Height: | Size: 107 KiB |
|
Before Width: | Height: | Size: 169 KiB After Width: | Height: | Size: 172 KiB |
|
Before Width: | Height: | Size: 105 KiB After Width: | Height: | Size: 136 KiB |
|
Before Width: | Height: | Size: 99 KiB After Width: | Height: | Size: 112 KiB |
|
Before Width: | Height: | Size: 150 KiB After Width: | Height: | Size: 164 KiB |
|
Before Width: | Height: | Size: 84 KiB After Width: | Height: | Size: 96 KiB |
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 131 KiB After Width: | Height: | Size: 142 KiB |
|
Before Width: | Height: | Size: 190 KiB After Width: | Height: | Size: 202 KiB |
|
Before Width: | Height: | Size: 131 KiB After Width: | Height: | Size: 143 KiB |
|
Before Width: | Height: | Size: 126 KiB After Width: | Height: | Size: 124 KiB |
|
Before Width: | Height: | Size: 191 KiB After Width: | Height: | Size: 188 KiB |
|
Before Width: | Height: | Size: 127 KiB After Width: | Height: | Size: 126 KiB |
|
Before Width: | Height: | Size: 62 KiB After Width: | Height: | Size: 62 KiB |
|
Before Width: | Height: | Size: 153 KiB After Width: | Height: | Size: 152 KiB |
|
Before Width: | Height: | Size: 69 KiB After Width: | Height: | Size: 69 KiB |
|
Before Width: | Height: | Size: 69 KiB After Width: | Height: | Size: 78 KiB |
|
Before Width: | Height: | Size: 131 KiB After Width: | Height: | Size: 140 KiB |
|
Before Width: | Height: | Size: 73 KiB After Width: | Height: | Size: 82 KiB |
|
Before Width: | Height: | Size: 158 KiB After Width: | Height: | Size: 170 KiB |
|
Before Width: | Height: | Size: 120 KiB After Width: | Height: | Size: 133 KiB |
|
Before Width: | Height: | Size: 157 KiB After Width: | Height: | Size: 169 KiB |
|
Before Width: | Height: | Size: 124 KiB After Width: | Height: | Size: 137 KiB |
|
Before Width: | Height: | Size: 65 KiB After Width: | Height: | Size: 73 KiB |
|
Before Width: | Height: | Size: 144 KiB After Width: | Height: | Size: 152 KiB |
|
Before Width: | Height: | Size: 68 KiB After Width: | Height: | Size: 76 KiB |
|
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 30 KiB |
|
Before Width: | Height: | Size: 114 KiB After Width: | Height: | Size: 140 KiB |
|
Before Width: | Height: | Size: 206 KiB After Width: | Height: | Size: 233 KiB |
|
Before Width: | Height: | Size: 119 KiB After Width: | Height: | Size: 138 KiB |
|
Before Width: | Height: | Size: 73 KiB After Width: | Height: | Size: 66 KiB |
|
Before Width: | Height: | Size: 144 KiB After Width: | Height: | Size: 144 KiB |
|
Before Width: | Height: | Size: 65 KiB After Width: | Height: | Size: 72 KiB |
|
Before Width: | Height: | Size: 62 KiB After Width: | Height: | Size: 62 KiB |
|
Before Width: | Height: | Size: 118 KiB After Width: | Height: | Size: 119 KiB |
|
Before Width: | Height: | Size: 58 KiB After Width: | Height: | Size: 64 KiB |
|
Before Width: | Height: | Size: 61 KiB After Width: | Height: | Size: 64 KiB |
|
Before Width: | Height: | Size: 106 KiB After Width: | Height: | Size: 119 KiB |
|
Before Width: | Height: | Size: 63 KiB After Width: | Height: | Size: 66 KiB |
|
Before Width: | Height: | Size: 148 KiB After Width: | Height: | Size: 150 KiB |
|
Before Width: | Height: | Size: 225 KiB After Width: | Height: | Size: 228 KiB |
|
Before Width: | Height: | Size: 143 KiB After Width: | Height: | Size: 149 KiB |
|
Before Width: | Height: | Size: 74 KiB After Width: | Height: | Size: 82 KiB |
|
Before Width: | Height: | Size: 151 KiB After Width: | Height: | Size: 155 KiB |
|
Before Width: | Height: | Size: 77 KiB After Width: | Height: | Size: 89 KiB |
|
Before Width: | Height: | Size: 79 KiB After Width: | Height: | Size: 87 KiB |
|
Before Width: | Height: | Size: 138 KiB After Width: | Height: | Size: 146 KiB |
|
Before Width: | Height: | Size: 64 KiB After Width: | Height: | Size: 71 KiB |
|
Before Width: | Height: | Size: 81 KiB After Width: | Height: | Size: 102 KiB |
|
Before Width: | Height: | Size: 102 KiB After Width: | Height: | Size: 108 KiB |
|
Before Width: | Height: | Size: 86 KiB After Width: | Height: | Size: 108 KiB |
|
Before Width: | Height: | Size: 161 KiB After Width: | Height: | Size: 182 KiB |
|
Before Width: | Height: | Size: 93 KiB After Width: | Height: | Size: 115 KiB |
|
Before Width: | Height: | Size: 75 KiB After Width: | Height: | Size: 129 KiB |
|
Before Width: | Height: | Size: 152 KiB After Width: | Height: | Size: 189 KiB |
|
Before Width: | Height: | Size: 82 KiB After Width: | Height: | Size: 128 KiB |
|
Before Width: | Height: | Size: 180 KiB After Width: | Height: | Size: 222 KiB |
|
Before Width: | Height: | Size: 64 KiB After Width: | Height: | Size: 110 KiB |
|
Before Width: | Height: | Size: 114 KiB After Width: | Height: | Size: 138 KiB |
|
Before Width: | Height: | Size: 136 KiB After Width: | Height: | Size: 143 KiB |
|
Before Width: | Height: | Size: 117 KiB After Width: | Height: | Size: 141 KiB |
|
Before Width: | Height: | Size: 119 KiB After Width: | Height: | Size: 142 KiB |
|
Before Width: | Height: | Size: 183 KiB After Width: | Height: | Size: 207 KiB |
|
Before Width: | Height: | Size: 101 KiB After Width: | Height: | Size: 128 KiB |
|
Before Width: | Height: | Size: 121 KiB After Width: | Height: | Size: 118 KiB |
|
Before Width: | Height: | Size: 200 KiB After Width: | Height: | Size: 203 KiB |
|
Before Width: | Height: | Size: 124 KiB After Width: | Height: | Size: 121 KiB |
|
Before Width: | Height: | Size: 132 KiB After Width: | Height: | Size: 134 KiB |
|
Before Width: | Height: | Size: 225 KiB After Width: | Height: | Size: 227 KiB |
|
Before Width: | Height: | Size: 136 KiB After Width: | Height: | Size: 138 KiB |
|
Before Width: | Height: | Size: 261 KiB After Width: | Height: | Size: 208 KiB |
|
Before Width: | Height: | Size: 174 KiB After Width: | Height: | Size: 134 KiB |
|
Before Width: | Height: | Size: 74 KiB After Width: | Height: | Size: 74 KiB |
|
Before Width: | Height: | Size: 141 KiB After Width: | Height: | Size: 142 KiB |
|
Before Width: | Height: | Size: 75 KiB After Width: | Height: | Size: 76 KiB |
|
Before Width: | Height: | Size: 78 KiB After Width: | Height: | Size: 89 KiB |
|
Before Width: | Height: | Size: 77 KiB After Width: | Height: | Size: 87 KiB |
|
Before Width: | Height: | Size: 104 KiB After Width: | Height: | Size: 109 KiB |
|
Before Width: | Height: | Size: 146 KiB After Width: | Height: | Size: 160 KiB |
|
Before Width: | Height: | Size: 96 KiB After Width: | Height: | Size: 118 KiB |
|
Before Width: | Height: | Size: 168 KiB After Width: | Height: | Size: 188 KiB |
|
Before Width: | Height: | Size: 79 KiB After Width: | Height: | Size: 90 KiB |
|
Before Width: | Height: | Size: 144 KiB After Width: | Height: | Size: 146 KiB |
|
Before Width: | Height: | Size: 186 KiB After Width: | Height: | Size: 190 KiB |
|
Before Width: | Height: | Size: 150 KiB After Width: | Height: | Size: 146 KiB |
|
Before Width: | Height: | Size: 95 KiB After Width: | Height: | Size: 87 KiB |
|
Before Width: | Height: | Size: 160 KiB After Width: | Height: | Size: 160 KiB |
|
Before Width: | Height: | Size: 88 KiB After Width: | Height: | Size: 90 KiB |
|
Before Width: | Height: | Size: 98 KiB After Width: | Height: | Size: 99 KiB |
|
Before Width: | Height: | Size: 159 KiB After Width: | Height: | Size: 161 KiB |
|
Before Width: | Height: | Size: 74 KiB After Width: | Height: | Size: 97 KiB |
|
Before Width: | Height: | Size: 79 KiB After Width: | Height: | Size: 110 KiB |
|
Before Width: | Height: | Size: 126 KiB After Width: | Height: | Size: 158 KiB |