From 0a06f2b4f226da1962280f89c88d1c405238d9ad Mon Sep 17 00:00:00 2001 From: Phoenix Date: Thu, 29 Jan 2026 15:49:28 +0300 Subject: [PATCH 01/21] Complete lab2 --- lab2c/app_go/.dockerignore | 7 + lab2c/app_go/Dockerfile | 21 +++ lab2c/app_go/README.md | 41 +++++ lab2c/app_go/docs/LAB02.md | 131 +++++++++++++++ lab2c/app_go/go.mod | 3 + lab2c/app_go/main.go | 257 +++++++++++++++++++++++++++++ lab2c/app_python/.dockerignore | 12 ++ lab2c/app_python/.gitignore | 14 ++ lab2c/app_python/Dockerfile | 19 +++ lab2c/app_python/README.md | 72 ++++++++ lab2c/app_python/app.py | 158 ++++++++++++++++++ lab2c/app_python/docs/LAB02.md | 111 +++++++++++++ lab2c/app_python/requirements.txt | 2 + lab2c/app_python/tests/__init__.py | 1 + 14 files changed, 849 insertions(+) create mode 100644 lab2c/app_go/.dockerignore create mode 100644 lab2c/app_go/Dockerfile create mode 100644 lab2c/app_go/README.md create mode 100644 lab2c/app_go/docs/LAB02.md create mode 100644 lab2c/app_go/go.mod create mode 100644 lab2c/app_go/main.go create mode 100644 lab2c/app_python/.dockerignore create mode 100644 lab2c/app_python/.gitignore create mode 100644 lab2c/app_python/Dockerfile create mode 100644 lab2c/app_python/README.md create mode 100644 lab2c/app_python/app.py create mode 100644 lab2c/app_python/docs/LAB02.md create mode 100644 lab2c/app_python/requirements.txt create mode 100644 lab2c/app_python/tests/__init__.py diff --git a/lab2c/app_go/.dockerignore b/lab2c/app_go/.dockerignore new file mode 100644 index 0000000000..55a3b7cb13 --- /dev/null +++ b/lab2c/app_go/.dockerignore @@ -0,0 +1,7 @@ +*.exe +*.log +.git/ +.gitignore +.idea/ +.vscode/ +docs/ diff --git a/lab2c/app_go/Dockerfile b/lab2c/app_go/Dockerfile new file mode 100644 index 0000000000..534bac98be --- /dev/null +++ b/lab2c/app_go/Dockerfile @@ -0,0 +1,21 @@ +FROM golang:1.22 AS builder + +WORKDIR /src + +COPY go.mod ./ +RUN go mod download + +COPY main.go ./ +RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o devops-info + +FROM gcr.io/distroless/static-debian12:nonroot + +WORKDIR /app +COPY --from=builder /src/devops-info /app/devops-info + +ENV HOST=0.0.0.0 \ + PORT=5000 + +EXPOSE 5000 + +ENTRYPOINT ["/app/devops-info"] diff --git a/lab2c/app_go/README.md b/lab2c/app_go/README.md new file mode 100644 index 0000000000..36e81eb856 --- /dev/null +++ b/lab2c/app_go/README.md @@ -0,0 +1,41 @@ +# DevOps Info Service (Go) + +## Overview +Compiled-language version of the DevOps info service. It exposes the same two endpoints as the Python app and keeps the JSON response structure consistent. + +## Prerequisites +- Go 1.22+ installed + +## Build and Run +Run directly: +```bash +go run main.go +``` + +Build a binary: +```bash +go build -o devops-info +./devops-info +``` + +Windows build/run: +```bash +go build -o devops-info.exe +.\devops-info.exe +``` + +Custom config examples: +```bash +PORT=8080 go run main.go +HOST=127.0.0.1 PORT=3000 go run main.go +``` + +## API Endpoints +- `GET /` - Service and system information +- `GET /health` - Health check + +## Configuration +| Variable | Default | Description | +| --- | --- | --- | +| `HOST` | `0.0.0.0` | Bind address for the server | +| `PORT` | `5000` | Port to listen on | diff --git a/lab2c/app_go/docs/LAB02.md b/lab2c/app_go/docs/LAB02.md new file mode 100644 index 0000000000..71a016acd1 --- /dev/null +++ b/lab2c/app_go/docs/LAB02.md @@ -0,0 +1,131 @@ +# LAB02 - Docker Containerization (Go, Multi-Stage) + +## Multi-Stage Build Strategy +I used a two-stage Dockerfile: +1. **Builder stage** (`golang:1.22`) to compile the binary. +2. **Runtime stage** (`distroless/static-debian12:nonroot`) to run only the binary. + +This keeps the final image small and removes the Go toolchain from production. + +Dockerfile snippet: +```dockerfile +FROM golang:1.22 AS builder +WORKDIR /src +COPY go.mod ./ +RUN go mod download +COPY main.go ./ +RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o devops-info + +FROM gcr.io/distroless/static-debian12:nonroot +COPY --from=builder /src/devops-info /app/devops-info +ENTRYPOINT ["/app/devops-info"] +``` + + +Image size output: +```text +tsixphoenix/devops-info-go latest 7fc572b1d863 4 minutes ago 17.7MB +``` + +## Build and Run Evidence +Build output: +```text +docker build -t tsixphoenix/devops-info-go:latest . +[+] Building 35.3s (16/16) FINISHED docker:desktop-linux + => [internal] load build definition from Dockerfile 0.0s + => => transferring dockerfile: 396B 0.0s + => [internal] load metadata for gcr.io/distroless/static-debian12:nonroot 1.8s + => [internal] load metadata for docker.io/library/golang:1.22 2.4s + => [auth] library/golang:pull token for registry-1.docker.io 0.0s + => [internal] load .dockerignore 0.0s + => => transferring context: 91B 0.0s + => [builder 1/6] FROM docker.io/library/golang:1.22@sha256:1cf6c45ba39db9fd6db16922041d074a63c935556a05c5ccb62d181034df7f02 22.6s + => => resolve docker.io/library/golang:1.22@sha256:1cf6c45ba39db9fd6db16922041d074a63c935556a05c5ccb62d181034df7f02 0.0s + => => sha256:1451027d3c0ee892b96310c034788bbe22b30b8ea2d075edbd09acfeaaaa439f 126B / 126B 0.4s + => => sha256:afa154b433c7f72db064d19e1bcfa84ee196ad29120328f6bdb2c5fbd7b8eeac 69.36MB / 69.36MB 8.8s + => => sha256:3b7f19923e1501f025b9459750b20f5df37af452482f75b91205f345d1c0e1b5 92.33MB / 92.33MB 10.0s + => => sha256:35af2a7690f2b43e7237d1fae8e3f2350dfb25f3249e9cf65121866f9c56c772 64.39MB / 64.39MB 8.1s + => => sha256:32b550be6cb62359a0f3a96bc0dc289f8b45d097eaad275887f163c6780b4108 24.06MB / 24.06MB 3.8s + => => sha256:a492eee5e55976c7d3feecce4c564aaf6f14fb07fdc5019d06f4154eddc93fde 48.48MB / 48.48MB 5.2s + => => extracting sha256:a492eee5e55976c7d3feecce4c564aaf6f14fb07fdc5019d06f4154eddc93fde 2.3s + => => extracting sha256:32b550be6cb62359a0f3a96bc0dc289f8b45d097eaad275887f163c6780b4108 0.8s + => => extracting sha256:35af2a7690f2b43e7237d1fae8e3f2350dfb25f3249e9cf65121866f9c56c772 2.5s + => => extracting sha256:3b7f19923e1501f025b9459750b20f5df37af452482f75b91205f345d1c0e1b5 2.0s + => => extracting sha256:afa154b433c7f72db064d19e1bcfa84ee196ad29120328f6bdb2c5fbd7b8eeac 5.1s + => => extracting sha256:1451027d3c0ee892b96310c034788bbe22b30b8ea2d075edbd09acfeaaaa439f 0.0s + => => extracting sha256:4f4fb700ef54461cfa02571ae0db9a0dc1e0cdb5577484a6d75e68dc38e8acc1 0.0s + => [internal] load build context 0.1s + => => transferring context: 6.51kB 0.0s + => [stage-1 1/3] FROM gcr.io/distroless/static-debian12:nonroot@sha256:cba10d7abd3e203428e86f5b2d7fd5eb7d8987c387864ae4996cf97191b33764 2.9s + => => resolve gcr.io/distroless/static-debian12:nonroot@sha256:cba10d7abd3e203428e86f5b2d7fd5eb7d8987c387864ae4996cf97191b33764 0.0s + => => sha256:069d1e267530c2e681fbd4d481553b4d05f98082b18fafac86e7f12996dddd0b 131.91kB / 131.91kB 0.6s + => => sha256:dcaa5a89b0ccda4b283e16d0b4d0891cd93d5fe05c6798f7806781a6a2d84354 314B / 314B 0.4s + => => sha256:4aa0ea1413d37a58615488592a0b827ea4b2e48fa5a77cf707d0e35f025e613f 385B / 385B 0.4s + => => sha256:dd64bf2dd177757451a98fcdc999a339c35dee5d9872d8f4dc69c8f3c4dd0112 80B / 80B 0.4s + => => sha256:52630fc75a18675c530ed9eba5f55eca09b03e91bd5bc15307918bbc1a7e7296 162B / 162B 0.3s + => => sha256:3214acf345c0cc6bbdb56b698a41ccdefc624a09d6beb0d38b5de0b2303ecaf4 123B / 123B 0.3s + => => sha256:7c12895b777bcaa8ccae0605b4de635b68fc32d60fa08f421dc3818bf55ee212 188B / 188B 0.3s + => => sha256:2780920e5dbfbe103d03a583ed75345306e572ec5a48cb10361f046767d9f29a 67B / 67B 0.3s + => => sha256:62de241dac5fe19d5f8f4defe034289006ddaa0f2cca735db4718fe2a23e504e 31.24kB / 31.24kB 0.6s + => => sha256:017886f7e1764618ffad6fbd503c42a60076c63adc16355cac80f0f311cae4c9 544.07kB / 544.07kB 0.7s + => => sha256:bfb59b82a9b65e47d485e53b3e815bca3b3e21a095bd0cb88ced9ac0b48062bf 13.36kB / 13.36kB 0.6s + => => sha256:fab8c4b3fa32236a59c44cc504a69b18788d5c17c045691c2d682267ae8cf468 104.22kB / 104.22kB 0.6s + => => extracting sha256:fab8c4b3fa32236a59c44cc504a69b18788d5c17c045691c2d682267ae8cf468 0.1s + => => extracting sha256:bfb59b82a9b65e47d485e53b3e815bca3b3e21a095bd0cb88ced9ac0b48062bf 0.1s + => => extracting sha256:017886f7e1764618ffad6fbd503c42a60076c63adc16355cac80f0f311cae4c9 0.5s + => => extracting sha256:62de241dac5fe19d5f8f4defe034289006ddaa0f2cca735db4718fe2a23e504e 0.1s + => => extracting sha256:2780920e5dbfbe103d03a583ed75345306e572ec5a48cb10361f046767d9f29a 0.0s + => => extracting sha256:7c12895b777bcaa8ccae0605b4de635b68fc32d60fa08f421dc3818bf55ee212 0.0s + => => extracting sha256:3214acf345c0cc6bbdb56b698a41ccdefc624a09d6beb0d38b5de0b2303ecaf4 0.1s + => => extracting sha256:52630fc75a18675c530ed9eba5f55eca09b03e91bd5bc15307918bbc1a7e7296 0.1s + => => extracting sha256:dd64bf2dd177757451a98fcdc999a339c35dee5d9872d8f4dc69c8f3c4dd0112 0.0s + => => extracting sha256:4aa0ea1413d37a58615488592a0b827ea4b2e48fa5a77cf707d0e35f025e613f 0.0s + => => extracting sha256:dcaa5a89b0ccda4b283e16d0b4d0891cd93d5fe05c6798f7806781a6a2d84354 0.0s + => => extracting sha256:069d1e267530c2e681fbd4d481553b4d05f98082b18fafac86e7f12996dddd0b 0.0s + => [stage-1 2/3] WORKDIR /app 0.1s + => [builder 2/6] WORKDIR /src 0.5s + => [builder 3/6] COPY go.mod ./ 0.1s + => [builder 4/6] RUN go mod download 0.5s + => [builder 5/6] COPY main.go ./ 0.1s + => [builder 6/6] RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o devops-info 8.1s + => [stage-1 3/3] COPY --from=builder /src/devops-info /app/devops-info 0.1s + => exporting to image 0.6s + => => exporting layers 0.4s + => => exporting manifest sha256:39177489cedb41b9d9f566a8be5d09c8ffe938f98b590aa0ebb987f1cf38d7a6 0.0s + => => exporting config sha256:d86ea6d9a836253c87a0ac2232aa6f03cdc8198146f9acdba1f3d31c617bca82 0.0s + => => exporting attestation manifest sha256:79e9867f53966cbf5943864985b72aeed88ea8a8349789577aee72d45045e5af 0.0s + => => exporting manifest list sha256:7fc572b1d86304a2634962e06610c7cf4295c4a466b6e52aed34f93550555008 0.0s + => => naming to docker.io/tsixphoenix/devops-info-go:latest 0.0s + => => unpacking to docker.io/tsixphoenix/devops-info-go:latest 0.1s + +``` + +Run output: +```text +docker run --rm -p 5000:5000 --name devops-info-go tsixphoenix/devops-info-go:latest +2026/01/29 12:37:42 Starting DevOps Info Service on 0.0.0.0:5000 +``` + +Endpoint checks: +```text +curl http://localhost:5000/ +{"service":{"name":"devops-info-service","version":"1.0.0","description":"DevOps course info service","framework":"Go net/http"},"system":{"hostname":"50a30efde177","platform":"linux","platform_version":"Distroless","architecture":"amd64","cpu_count":12,"python_version":"go1.22.12"},"runtime":{"uptime_seconds":79,"uptime_human":"0 hours, 1 minute","current_time":"2026-01-29T12:39:02Z","timezone":"UTC"},"request":{"client_ip":"172.17.0.1","user_agent":"curl/8.16.0","method":"GET","path":"/"},"endpoints":[{"path":"/","method":"GET","description":"Service information"},{"path":"/health","method":"GET","description":"Health check"}]} + +curl http://localhost:5000/health +{"status":"healthy","timestamp":"2026-01-29T12:39:31Z","uptime_seconds":108} + +2026/01/29 12:39:02 Request: GET / +2026/01/29 12:39:02 Response: GET / -> 200 (418.191µs) +2026/01/29 12:39:31 Request: GET /health +2026/01/29 12:39:31 Response: GET /health -> 200 (114.664µs) +``` + +## Technical Analysis +- The builder stage contains the full Go toolchain; the runtime stage does not. +- If I shipped the builder stage, the image would be much larger and include tools that should not be in production. +- A static binary lets me use a minimal base image. +- The final image runs as a non-root user, which reduces risk. + +## Challenges and Solutions +- I made sure the binary was static (CGO disabled) so it works in a minimal runtime image. +- Distroless images do not include a shell, so debugging is done in the builder stage, not in the runtime image. diff --git a/lab2c/app_go/go.mod b/lab2c/app_go/go.mod new file mode 100644 index 0000000000..7a7fcedd1c --- /dev/null +++ b/lab2c/app_go/go.mod @@ -0,0 +1,3 @@ +module devops-info-service + +go 1.22 diff --git a/lab2c/app_go/main.go b/lab2c/app_go/main.go new file mode 100644 index 0000000000..2abcd3938a --- /dev/null +++ b/lab2c/app_go/main.go @@ -0,0 +1,257 @@ +package main + +import ( + "encoding/json" + "fmt" + "log" + "net" + "net/http" + "os" + "runtime" + "strings" + "time" +) + +type Service struct { + Name string `json:"name"` + Version string `json:"version"` + Description string `json:"description"` + Framework string `json:"framework"` +} + +type System struct { + Hostname string `json:"hostname"` + Platform string `json:"platform"` + PlatformVersion string `json:"platform_version"` + Architecture string `json:"architecture"` + CPUCount int `json:"cpu_count"` + PythonVersion string `json:"python_version"` +} + +type Runtime struct { + UptimeSeconds int `json:"uptime_seconds"` + UptimeHuman string `json:"uptime_human"` + CurrentTime string `json:"current_time"` + Timezone string `json:"timezone"` +} + +type RequestInfo struct { + ClientIP string `json:"client_ip"` + UserAgent string `json:"user_agent"` + Method string `json:"method"` + Path string `json:"path"` +} + +type Endpoint struct { + Path string `json:"path"` + Method string `json:"method"` + Description string `json:"description"` +} + +type Response struct { + Service Service `json:"service"` + System System `json:"system"` + Runtime Runtime `json:"runtime"` + Request RequestInfo `json:"request"` + Endpoints []Endpoint `json:"endpoints"` +} + +var startTime = time.Now().UTC() + +func main() { + host := getenv("HOST", "0.0.0.0") + port := getenv("PORT", "5000") + addr := net.JoinHostPort(host, port) + + mux := http.NewServeMux() + mux.HandleFunc("/", rootHandler) + mux.HandleFunc("/health", healthHandler) + + handler := recoverMiddleware(loggingMiddleware(mux)) + + server := &http.Server{ + Addr: addr, + Handler: handler, + ReadHeaderTimeout: 5 * time.Second, + } + + log.Printf("Starting DevOps Info Service on %s", addr) + if err := server.ListenAndServe(); err != nil && err != http.ErrServerClosed { + log.Fatalf("server error: %v", err) + } +} + +func rootHandler(w http.ResponseWriter, r *http.Request) { + if r.URL.Path != "/" { + writeNotFound(w) + return + } + if r.Method != http.MethodGet { + writeMethodNotAllowed(w) + return + } + + uptimeSeconds, uptimeHuman := getUptime() + now := time.Now().UTC() + + hostname, _ := os.Hostname() + response := Response{ + Service: Service{ + Name: "devops-info-service", + Version: "1.0.0", + Description: "DevOps course info service", + Framework: "Go net/http", + }, + System: System{ + Hostname: hostname, + Platform: runtime.GOOS, + PlatformVersion: getPlatformVersion(), + Architecture: runtime.GOARCH, + CPUCount: runtime.NumCPU(), + PythonVersion: runtime.Version(), + }, + Runtime: Runtime{ + UptimeSeconds: uptimeSeconds, + UptimeHuman: uptimeHuman, + CurrentTime: now.Format(time.RFC3339), + Timezone: "UTC", + }, + Request: RequestInfo{ + ClientIP: getClientIP(r), + UserAgent: r.UserAgent(), + Method: r.Method, + Path: r.URL.Path, + }, + Endpoints: []Endpoint{ + {Path: "/", Method: "GET", Description: "Service information"}, + {Path: "/health", Method: "GET", Description: "Health check"}, + }, + } + + writeJSON(w, http.StatusOK, response) +} + +func healthHandler(w http.ResponseWriter, r *http.Request) { + if r.URL.Path != "/health" { + writeNotFound(w) + return + } + if r.Method != http.MethodGet { + writeMethodNotAllowed(w) + return + } + + uptimeSeconds, _ := getUptime() + payload := map[string]any{ + "status": "healthy", + "timestamp": time.Now().UTC().Format(time.RFC3339), + "uptime_seconds": uptimeSeconds, + } + + writeJSON(w, http.StatusOK, payload) +} + +func getUptime() (int, string) { + seconds := int(time.Since(startTime).Seconds()) + hours := seconds / 3600 + minutes := (seconds % 3600) / 60 + hourLabel := "hours" + if hours == 1 { + hourLabel = "hour" + } + minuteLabel := "minutes" + if minutes == 1 { + minuteLabel = "minute" + } + return seconds, fmt.Sprintf("%d %s, %d %s", hours, hourLabel, minutes, minuteLabel) +} + +func getClientIP(r *http.Request) string { + if forwarded := r.Header.Get("X-Forwarded-For"); forwarded != "" { + parts := strings.Split(forwarded, ",") + return strings.TrimSpace(parts[0]) + } + host, _, err := net.SplitHostPort(r.RemoteAddr) + if err == nil { + return host + } + return r.RemoteAddr +} + +func getPlatformVersion() string { + if value := os.Getenv("OS"); value != "" { + return value + } + if data, err := os.ReadFile("/etc/os-release"); err == nil { + for _, line := range strings.Split(string(data), "\n") { + if strings.HasPrefix(line, "PRETTY_NAME=") { + return strings.Trim(strings.TrimPrefix(line, "PRETTY_NAME="), "\"") + } + } + } + return "unknown" +} + +func writeJSON(w http.ResponseWriter, status int, payload any) { + w.Header().Set("Content-Type", "application/json") + w.WriteHeader(status) + if err := json.NewEncoder(w).Encode(payload); err != nil { + log.Printf("json encode error: %v", err) + } +} + +func writeNotFound(w http.ResponseWriter) { + writeJSON(w, http.StatusNotFound, map[string]string{ + "error": "Not Found", + "message": "Endpoint does not exist", + }) +} + +func writeMethodNotAllowed(w http.ResponseWriter) { + writeJSON(w, http.StatusMethodNotAllowed, map[string]string{ + "error": "Method Not Allowed", + "message": "Only GET is supported for this endpoint", + }) +} + +type statusRecorder struct { + http.ResponseWriter + status int +} + +func (recorder *statusRecorder) WriteHeader(code int) { + recorder.status = code + recorder.ResponseWriter.WriteHeader(code) +} + +func loggingMiddleware(next http.Handler) http.Handler { + return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + recorder := &statusRecorder{ResponseWriter: w, status: http.StatusOK} + start := time.Now() + log.Printf("Request: %s %s", r.Method, r.URL.Path) + next.ServeHTTP(recorder, r) + log.Printf("Response: %s %s -> %d (%s)", r.Method, r.URL.Path, recorder.status, time.Since(start)) + }) +} + +func recoverMiddleware(next http.Handler) http.Handler { + return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + defer func() { + if err := recover(); err != nil { + log.Printf("panic recovered: %v", err) + writeJSON(w, http.StatusInternalServerError, map[string]string{ + "error": "Internal Server Error", + "message": "An unexpected error occurred", + }) + } + }() + next.ServeHTTP(w, r) + }) +} + +func getenv(key, fallback string) string { + if value := os.Getenv(key); value != "" { + return value + } + return fallback +} diff --git a/lab2c/app_python/.dockerignore b/lab2c/app_python/.dockerignore new file mode 100644 index 0000000000..b7738de7b8 --- /dev/null +++ b/lab2c/app_python/.dockerignore @@ -0,0 +1,12 @@ +__pycache__/ +*.py[cod] +*.log +venv/ +.venv/ +.env +.git/ +.gitignore +.idea/ +.vscode/ +docs/ +tests/ diff --git a/lab2c/app_python/.gitignore b/lab2c/app_python/.gitignore new file mode 100644 index 0000000000..8052e93c8b --- /dev/null +++ b/lab2c/app_python/.gitignore @@ -0,0 +1,14 @@ +__pycache__/ +*.py[cod] +*.log +venv/ +.venv/ +.env + +# IDE +.idea/ +.vscode/ + +# OS +.DS_Store +Thumbs.db diff --git a/lab2c/app_python/Dockerfile b/lab2c/app_python/Dockerfile new file mode 100644 index 0000000000..76219e6c10 --- /dev/null +++ b/lab2c/app_python/Dockerfile @@ -0,0 +1,19 @@ +FROM python:3.13-slim + +ENV PYTHONDONTWRITEBYTECODE=1 \ + PYTHONUNBUFFERED=1 + +WORKDIR /app + +RUN useradd -m -u 10001 appuser + +COPY requirements.txt . +RUN pip install --no-cache-dir -r requirements.txt + +COPY --chown=appuser:appuser app.py . + +USER appuser + +EXPOSE 5000 + +CMD ["python", "app.py"] diff --git a/lab2c/app_python/README.md b/lab2c/app_python/README.md new file mode 100644 index 0000000000..742a7439f4 --- /dev/null +++ b/lab2c/app_python/README.md @@ -0,0 +1,72 @@ +# DevOps Info Service (FastAPI) + +## Overview +Small service returning system info about the machine it runs on, plus a health check. + +## Prerequisites +- Python 3.11+ +- pip +- (Optional) venv tool + +## Installation +### Windows +```bash +python -m venv venv +.\venv\Scripts\Activate.ps1 +pip install -r requirements.txt +``` + +### macOS/Linux +```bash +python -m venv venv +source venv/bin/activate +pip install -r requirements.txt +``` + +## Running the Application +```bash +python app.py +``` + +Custom config examples: +```bash +PORT=8080 python app.py +HOST=127.0.0.1 PORT=3000 python app.py +``` + +FastAPI docs: +- `http://localhost:/docs` + +## API Endpoints +- `GET /` - Service and system information +- `GET /health` - Health check + +## Configuration +| Variable | Default | Description | +| --- | --- | --- | +| `HOST` | `0.0.0.0` | Bind address for the server | +| `PORT` | `5000` | Port to listen on | +| `DEBUG` | `False` | Enable auto-reload | + +## Docker +Command patterns (replace the placeholders with your values): + +**Build locally** +```bash +docker build -t /: . +``` + +**Run container** +```bash +docker run --rm -p :5000 --name /: +``` + +**Pull from Docker Hub** +```bash +docker pull /: +``` + +Optional env overrides: +```bash +docker run --rm -e PORT=5000 -e HOST=0.0.0.0 -p :5000 /: +``` diff --git a/lab2c/app_python/app.py b/lab2c/app_python/app.py new file mode 100644 index 0000000000..8935b94091 --- /dev/null +++ b/lab2c/app_python/app.py @@ -0,0 +1,158 @@ +""" +DevOps Info Service +FastAPI application module. +""" + +from __future__ import annotations + +import logging +import os +import platform +import socket +from datetime import datetime, timezone + +import uvicorn +from fastapi import FastAPI, Request +from fastapi.responses import JSONResponse +from starlette.exceptions import HTTPException as StarletteHTTPException + +# Config +HOST = os.getenv("HOST", "0.0.0.0") +PORT = int(os.getenv("PORT", "5000")) +DEBUG = os.getenv("DEBUG", "False").lower() == "true" + +SERVICE_NAME = "devops-info-service" +SERVICE_VERSION = "1.0.0" +SERVICE_DESCRIPTION = "DevOps course info service" +SERVICE_FRAMEWORK = "FastAPI" + +START_TIME = datetime.now(timezone.utc) + +logging.basicConfig( + level=logging.INFO, + format="%(asctime)s - %(levelname)s - %(message)s", +) +logger = logging.getLogger("devops-info-service") + +app = FastAPI( + title="DevOps Info Service", + version=SERVICE_VERSION, + description=SERVICE_DESCRIPTION, +) + + +def _format_uptime(seconds: int) -> str: + hours = seconds // 3600 + minutes = (seconds % 3600) // 60 + hour_label = "hour" if hours == 1 else "hours" + minute_label = "minute" if minutes == 1 else "minutes" + return f"{hours} {hour_label}, {minutes} {minute_label}" + + +def get_uptime() -> dict[str, int | str]: + delta = datetime.now(timezone.utc) - START_TIME + seconds = int(delta.total_seconds()) + return { + "seconds": seconds, + "human": _format_uptime(seconds), + } + + +def get_system_info() -> dict[str, str | int]: + return { + "hostname": socket.gethostname(), + "platform": platform.system(), + "platform_version": platform.release(), + "architecture": platform.machine(), + "cpu_count": os.cpu_count() or 0, + "python_version": platform.python_version(), + } + + +def isoformat_utc(dt: datetime) -> str: + return dt.astimezone(timezone.utc).isoformat().replace("+00:00", "Z") + + +@app.middleware("http") +async def log_requests(request: Request, call_next): + logger.info("Request: %s %s", request.method, request.url.path) + response = await call_next(request) + logger.info("Response: %s %s -> %s", request.method, request.url.path, response.status_code) + return response + + +@app.exception_handler(StarletteHTTPException) +async def http_exception_handler(request: Request, exc: StarletteHTTPException): + if exc.status_code == 404: + return JSONResponse( + status_code=404, + content={ + "error": "Not Found", + "message": "Endpoint does not exist", + }, + ) + return JSONResponse( + status_code=exc.status_code, + content={"error": exc.detail}, + ) + + +@app.exception_handler(Exception) +async def unhandled_exception_handler(request: Request, exc: Exception): + logger.exception("Unhandled error: %s", exc) + return JSONResponse( + status_code=500, + content={ + "error": "Internal Server Error", + "message": "An unexpected error occurred", + }, + ) + + +@app.get("/") +async def root(request: Request): + uptime = get_uptime() + now = datetime.now(timezone.utc) + + response = { + "service": { + "name": SERVICE_NAME, + "version": SERVICE_VERSION, + "description": SERVICE_DESCRIPTION, + "framework": SERVICE_FRAMEWORK, + }, + "system": get_system_info(), + "runtime": { + "uptime_seconds": uptime["seconds"], + "uptime_human": uptime["human"], + "current_time": isoformat_utc(now), + "timezone": "UTC", + }, + "request": { + "client_ip": request.client.host if request.client else "unknown", + "user_agent": request.headers.get("user-agent", "unknown"), + "method": request.method, + "path": request.url.path, + }, + "endpoints": [ + {"path": "/", "method": "GET", "description": "Service information"}, + {"path": "/health", "method": "GET", "description": "Health check"}, + ], + } + + return response + + +@app.get("/health") +async def health(): + uptime = get_uptime() + return { + "status": "healthy", + "timestamp": isoformat_utc(datetime.now(timezone.utc)), + "uptime_seconds": uptime["seconds"], + } + + +if __name__ == "__main__": + logger.info("Starting DevOps Info Service on %s:%s", HOST, PORT) + uvicorn.run("app:app", host=HOST, port=PORT, reload=DEBUG, log_level="info") diff --git a/lab2c/app_python/docs/LAB02.md b/lab2c/app_python/docs/LAB02.md new file mode 100644 index 0000000000..dd91a49278 --- /dev/null +++ b/lab2c/app_python/docs/LAB02.md @@ -0,0 +1,111 @@ +# LAB02 - Docker Containerization (Python) + +## Docker Best Practices Applied +- **Pinned base image**: `python:3.13-slim` keeps the image small and reproducible. +- **Non-root user**: the container runs as `appuser`, so the service does not run as root. +- **Layer caching**: dependencies are installed before copying the app so rebuilds are faster. +- **Minimal copy**: only `requirements.txt` and `app.py` are copied into the image. +- **.dockerignore**: excluded tests, docs, and virtualenvs to keep the build context small. + +Dockerfile snippet: +```dockerfile +FROM python:3.13-slim +WORKDIR /app +RUN useradd -m -u 10001 appuser +COPY requirements.txt . +RUN pip install --no-cache-dir -r requirements.txt +COPY --chown=appuser:appuser app.py . +USER appuser +``` + +## Image Information and Decisions +- **Base image choice**: `python:3.13-slim` is a good balance of size and compatibility. +- **Final image size**: `` +- **Layer structure**: dependencies are installed in their own layer to benefit from caching. +- **Optimization choices**: small base image, no extra build tools, only required files copied. + +Image size output: +```text +tsixphoenix/devops-info-python beta 04eec5e16beb 5 minutes ago 228MB +``` + +## Build and Run Process +Build output: +```text +docker build -t tsixphoenix/devops-info-python:beta . +[+] Building 16.7s (11/11) FINISHED docker:desktop-linux + => [internal] load build definition from Dockerfile 0.0s + => => transferring dockerfile: 332B 0.0s + => [internal] load metadata for docker.io/library/python:3.13-slim 2.3s + => [internal] load .dockerignore 0.0s + => => transferring context: 133B 0.0s + => [1/6] FROM docker.io/library/python:3.13-slim@sha256:51e1a0a317fdb6e170dc791bbeae63fac5272c82f43958ef74a34e170c6f8b18 2.4s + => => resolve docker.io/library/python:3.13-slim@sha256:51e1a0a317fdb6e170dc791bbeae63fac5272c82f43958ef74a34e170c6f8b18 0.0s + => => sha256:8843ea38a07e15ac1b99c72108fbb492f737032986cc0b65ed351f84e5521879 1.29MB / 1.29MB 0.5s + => => sha256:36b6de65fd8d6bd36071ea9efa7d078ebdc11ecc23d2426ec9c3e9f092ae824d 249B / 249B 0.6s + => => sha256:0bee50492702eb5d822fbcbac8f545a25f5fe173ec8030f57691aefcc283bbc9 11.79MB / 11.79MB 1.5s + => => extracting sha256:8843ea38a07e15ac1b99c72108fbb492f737032986cc0b65ed351f84e5521879 0.3s + => => extracting sha256:0bee50492702eb5d822fbcbac8f545a25f5fe173ec8030f57691aefcc283bbc9 0.8s + => => extracting sha256:36b6de65fd8d6bd36071ea9efa7d078ebdc11ecc23d2426ec9c3e9f092ae824d 0.0s + => [internal] load build context 0.0s + => => transferring context: 4.60kB 0.0s + => [2/6] WORKDIR /app 0.1s + => [3/6] RUN useradd -m -u 10001 appuser 0.6s + => [4/6] COPY requirements.txt . 0.0s + => [5/6] RUN pip install --no-cache-dir -r requirements.txt 8.8s + => [6/6] COPY --chown=appuser:appuser app.py . 0.1s + => exporting to image 2.1s + => => exporting layers 1.4s + => => exporting manifest sha256:89257312508e9a26af1f7400253d9556816a0fc9230a414836bcedb8a4881c86 0.0s + => => exporting config sha256:a7d85cde725e6fdfb1dfbccbb9daadb4138561a5698ac01f5f6e2780b62994f3 0.0s + => => exporting attestation manifest sha256:82c962563c14aaa47813d2f1b62afb9806c83dbb0519256fd9954a50ea14fd3f 0.0s + => => exporting manifest list sha256:04eec5e16beb90a39cdac694238e9c6301410b6fa987d7b7788c03287ed57da0 0.0s + => => naming to docker.io/tsixphoenix/devops-info-python:beta 0.0s + => => unpacking to docker.io/tsixphoenix/devops-info-python:beta +``` + +Run output (container start): +```text +docker run --rm -p 5000:5000 --name devops-info tsixphoenix/devops-info-python:beta +2026-01-29 12:23:57,799 - INFO - Starting DevOps Info Service on 0.0.0.0:5000 +INFO: Started server process [1] +INFO: Waiting for application startup. +INFO: Application startup complete. +INFO: Uvicorn running on http://0.0.0.0:5000 (Press CTRL+C to quit) +``` + +Endpoint checks: +```text +curl http://localhost:5000/ +{"service":{"name":"devops-info-service","version":"1.0.0","description":"DevOps course info service","framework":"FastAPI"},"system":{"hostname":"d65d9dfde3f9","platform":"Linux","platform_version":"6.6.87.2-microsoft-standard-WSL2","architecture":"x86_64","cpu_count":12,"python_version":"3.13.11"},"runtime":{"uptime_seconds":98,"uptime_human":"0 hours, 1 minute","current_time":"2026-01-29T12:25:35.964833Z","timezone":"UTC"},"request":{"client_ip":"172.17.0.1","user_agent":"curl/8.16.0","method":"GET","path":"/"},"endpoints":[{"path":"/","method":"GET","description":"Service information"},{"path":"/health","method":"GET","description":"Health check"}]} + +curl http://localhost:5000/health +{"status":"healthy","timestamp":"2026-01-29T12:25:56.660917Z","uptime_seconds":118} + +2026-01-29 12:25:35,964 - INFO - Request: GET / +2026-01-29 12:25:35,965 - INFO - Response: GET / -> 200 +INFO: 172.17.0.1:54462 - "GET / HTTP/1.1" 200 OK +2026-01-29 12:25:56,659 - INFO - Request: GET /health +2026-01-29 12:25:56,661 - INFO - Response: GET /health -> 200 +INFO: 172.17.0.1:57328 - "GET /health HTTP/1.1" 200 OK +``` + +Docker Hub repository URL: +``` +https://hub.docker.com/repository/docker/tsixphoenix/devops-info-python/general +``` + +Tagging strategy: +``` +version tag +``` + +## Technical Analysis +- The Dockerfile copies `requirements.txt` first so dependency layers are cached between builds. +- If I copied the whole project before installing dependencies, every code change would bust the cache. +- Running as a non-root user reduces risk if a container is compromised. +- `.dockerignore` keeps the build context small, which speeds up the build and reduces image size. + +## Challenges and Solutions +- I verified the app binds to `0.0.0.0` so it is reachable from outside the container. +- I double-checked that only the needed files are copied into the image to avoid bloating it. diff --git a/lab2c/app_python/requirements.txt b/lab2c/app_python/requirements.txt new file mode 100644 index 0000000000..792449289f --- /dev/null +++ b/lab2c/app_python/requirements.txt @@ -0,0 +1,2 @@ +fastapi==0.115.0 +uvicorn[standard]==0.32.0 diff --git a/lab2c/app_python/tests/__init__.py b/lab2c/app_python/tests/__init__.py new file mode 100644 index 0000000000..792d600548 --- /dev/null +++ b/lab2c/app_python/tests/__init__.py @@ -0,0 +1 @@ +# From 90a03b930a867a6c226f7c46d6150a3f48046283 Mon Sep 17 00:00:00 2001 From: Phoenix Date: Tue, 10 Feb 2026 15:14:07 +0300 Subject: [PATCH 02/21] feat: add lab3 CI pipeline --- .github/workflows/go-ci.yml | 76 ++++++++ .github/workflows/python-ci.yml | 104 +++++++++++ lab3c/app_go/.dockerignore | 7 + lab3c/app_go/Dockerfile | 21 +++ lab3c/app_go/README.md | 41 ++++ lab3c/app_go/docs/LAB03.md | 17 ++ lab3c/app_go/go.mod | 3 + lab3c/app_go/main.go | 257 ++++++++++++++++++++++++++ lab3c/app_go/main_test.go | 54 ++++++ lab3c/app_python/.dockerignore | 12 ++ lab3c/app_python/.gitignore | 14 ++ lab3c/app_python/Dockerfile | 19 ++ lab3c/app_python/README.md | 78 ++++++++ lab3c/app_python/app.py | 158 ++++++++++++++++ lab3c/app_python/docs/LAB03.md | 58 ++++++ lab3c/app_python/pyproject.toml | 3 + lab3c/app_python/requirements-dev.txt | 5 + lab3c/app_python/requirements.txt | 2 + lab3c/app_python/tests/__init__.py | 1 + lab3c/app_python/tests/test_app.py | 66 +++++++ 20 files changed, 996 insertions(+) create mode 100644 .github/workflows/go-ci.yml create mode 100644 .github/workflows/python-ci.yml create mode 100644 lab3c/app_go/.dockerignore create mode 100644 lab3c/app_go/Dockerfile create mode 100644 lab3c/app_go/README.md create mode 100644 lab3c/app_go/docs/LAB03.md create mode 100644 lab3c/app_go/go.mod create mode 100644 lab3c/app_go/main.go create mode 100644 lab3c/app_go/main_test.go create mode 100644 lab3c/app_python/.dockerignore create mode 100644 lab3c/app_python/.gitignore create mode 100644 lab3c/app_python/Dockerfile create mode 100644 lab3c/app_python/README.md create mode 100644 lab3c/app_python/app.py create mode 100644 lab3c/app_python/docs/LAB03.md create mode 100644 lab3c/app_python/pyproject.toml create mode 100644 lab3c/app_python/requirements-dev.txt create mode 100644 lab3c/app_python/requirements.txt create mode 100644 lab3c/app_python/tests/__init__.py create mode 100644 lab3c/app_python/tests/test_app.py diff --git a/.github/workflows/go-ci.yml b/.github/workflows/go-ci.yml new file mode 100644 index 0000000000..e09a65c488 --- /dev/null +++ b/.github/workflows/go-ci.yml @@ -0,0 +1,76 @@ +name: Go CI (Lab03 Bonus) + +on: + push: + branches: [lab03, main, master] + paths: + - "lab3c/app_go/**" + - ".github/workflows/go-ci.yml" + pull_request: + branches: [lab03, main, master] + paths: + - "lab3c/app_go/**" + - ".github/workflows/go-ci.yml" + +concurrency: + group: go-ci-${{ github.ref }} + cancel-in-progress: true + +permissions: + contents: read + +jobs: + test: + name: Lint and Test + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Set up Go + uses: actions/setup-go@v5 + with: + go-version: "1.22" + + - name: golangci-lint + uses: golangci/golangci-lint-action@v6 + with: + working-directory: lab3c/app_go + args: --timeout=5m + + - name: Run tests + working-directory: lab3c/app_go + run: go test ./... + + docker: + name: Build and Push Docker Image + runs-on: ubuntu-latest + needs: test + if: ${{ github.event_name == 'push' }} + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Log in to Docker Hub + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + + - name: Set version (CalVer) + run: echo "VERSION=$(date +%Y.%m.%d)" >> $GITHUB_ENV + + - name: Build and push + uses: docker/build-push-action@v6 + with: + context: ./lab3c/app_go + file: ./lab3c/app_go/Dockerfile + push: true + tags: | + ${{ secrets.DOCKERHUB_USERNAME }}/devops-info-go:${{ env.VERSION }} + ${{ secrets.DOCKERHUB_USERNAME }}/devops-info-go:latest + cache-from: type=gha + cache-to: type=gha,mode=max diff --git a/.github/workflows/python-ci.yml b/.github/workflows/python-ci.yml new file mode 100644 index 0000000000..5284899721 --- /dev/null +++ b/.github/workflows/python-ci.yml @@ -0,0 +1,104 @@ +name: Python CI (Lab03) + +on: + push: + branches: [lab03, main, master] + paths: + - "lab3c/app_python/**" + - ".github/workflows/python-ci.yml" + pull_request: + branches: [lab03, main, master] + paths: + - "lab3c/app_python/**" + - ".github/workflows/python-ci.yml" + +concurrency: + group: python-ci-${{ github.ref }} + cancel-in-progress: true + +permissions: + contents: read + +jobs: + test: + name: Lint and Test + runs-on: ubuntu-latest + strategy: + fail-fast: true + matrix: + python-version: ["3.11", "3.12"] + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: ${{ matrix.python-version }} + cache: "pip" + cache-dependency-path: | + lab3c/app_python/requirements.txt + lab3c/app_python/requirements-dev.txt + + - name: Install dependencies + working-directory: lab3c/app_python + run: | + python -m pip install --upgrade pip + pip install -r requirements.txt -r requirements-dev.txt + + - name: Lint (ruff) + working-directory: lab3c/app_python + run: ruff check . + + - name: Run tests with coverage + working-directory: lab3c/app_python + run: pytest --cov=app --cov-report=xml --cov-report=term + + - name: Upload coverage to Codecov + if: ${{ secrets.CODECOV_TOKEN != '' }} + uses: codecov/codecov-action@v4 + with: + files: lab3c/app_python/coverage.xml + token: ${{ secrets.CODECOV_TOKEN }} + + - name: Snyk scan + if: ${{ secrets.SNYK_TOKEN != '' }} + uses: snyk/actions/python@master + env: + SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }} + with: + command: test + args: --file=lab3c/app_python/requirements.txt + + docker: + name: Build and Push Docker Image + runs-on: ubuntu-latest + needs: test + if: ${{ github.event_name == 'push' }} + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Log in to Docker Hub + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + + - name: Set version (CalVer) + run: echo "VERSION=$(date +%Y.%m.%d)" >> $GITHUB_ENV + + - name: Build and push + uses: docker/build-push-action@v6 + with: + context: ./lab3c/app_python + file: ./lab3c/app_python/Dockerfile + push: true + tags: | + ${{ secrets.DOCKERHUB_USERNAME }}/devops-info-python:${{ env.VERSION }} + ${{ secrets.DOCKERHUB_USERNAME }}/devops-info-python:latest + cache-from: type=gha + cache-to: type=gha,mode=max diff --git a/lab3c/app_go/.dockerignore b/lab3c/app_go/.dockerignore new file mode 100644 index 0000000000..55a3b7cb13 --- /dev/null +++ b/lab3c/app_go/.dockerignore @@ -0,0 +1,7 @@ +*.exe +*.log +.git/ +.gitignore +.idea/ +.vscode/ +docs/ diff --git a/lab3c/app_go/Dockerfile b/lab3c/app_go/Dockerfile new file mode 100644 index 0000000000..534bac98be --- /dev/null +++ b/lab3c/app_go/Dockerfile @@ -0,0 +1,21 @@ +FROM golang:1.22 AS builder + +WORKDIR /src + +COPY go.mod ./ +RUN go mod download + +COPY main.go ./ +RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o devops-info + +FROM gcr.io/distroless/static-debian12:nonroot + +WORKDIR /app +COPY --from=builder /src/devops-info /app/devops-info + +ENV HOST=0.0.0.0 \ + PORT=5000 + +EXPOSE 5000 + +ENTRYPOINT ["/app/devops-info"] diff --git a/lab3c/app_go/README.md b/lab3c/app_go/README.md new file mode 100644 index 0000000000..36e81eb856 --- /dev/null +++ b/lab3c/app_go/README.md @@ -0,0 +1,41 @@ +# DevOps Info Service (Go) + +## Overview +Compiled-language version of the DevOps info service. It exposes the same two endpoints as the Python app and keeps the JSON response structure consistent. + +## Prerequisites +- Go 1.22+ installed + +## Build and Run +Run directly: +```bash +go run main.go +``` + +Build a binary: +```bash +go build -o devops-info +./devops-info +``` + +Windows build/run: +```bash +go build -o devops-info.exe +.\devops-info.exe +``` + +Custom config examples: +```bash +PORT=8080 go run main.go +HOST=127.0.0.1 PORT=3000 go run main.go +``` + +## API Endpoints +- `GET /` - Service and system information +- `GET /health` - Health check + +## Configuration +| Variable | Default | Description | +| --- | --- | --- | +| `HOST` | `0.0.0.0` | Bind address for the server | +| `PORT` | `5000` | Port to listen on | diff --git a/lab3c/app_go/docs/LAB03.md b/lab3c/app_go/docs/LAB03.md new file mode 100644 index 0000000000..2fc772a8e3 --- /dev/null +++ b/lab3c/app_go/docs/LAB03.md @@ -0,0 +1,17 @@ +# LAB03 - CI/CD (Go Bonus) + +## Multi-App CI Summary +I added a separate workflow for the Go app with its own path filters. This keeps Python and Go CI independent and avoids running jobs that are not needed. + +## Path Filters +- Go workflow runs only when `lab3c/app_go/**` or its workflow file changes. +- Python workflow runs only when `lab3c/app_python/**` or its workflow file changes. + +## Workflow Evidence +Add real links after CI runs: +- ✅ **Go workflow run:** `` +- ✅ **Docker image on Docker Hub:** `` + +## Notes +- Go CI uses `go test` and a basic lint step. +- Docker builds use the same CalVer tag scheme as Python. diff --git a/lab3c/app_go/go.mod b/lab3c/app_go/go.mod new file mode 100644 index 0000000000..7a7fcedd1c --- /dev/null +++ b/lab3c/app_go/go.mod @@ -0,0 +1,3 @@ +module devops-info-service + +go 1.22 diff --git a/lab3c/app_go/main.go b/lab3c/app_go/main.go new file mode 100644 index 0000000000..2abcd3938a --- /dev/null +++ b/lab3c/app_go/main.go @@ -0,0 +1,257 @@ +package main + +import ( + "encoding/json" + "fmt" + "log" + "net" + "net/http" + "os" + "runtime" + "strings" + "time" +) + +type Service struct { + Name string `json:"name"` + Version string `json:"version"` + Description string `json:"description"` + Framework string `json:"framework"` +} + +type System struct { + Hostname string `json:"hostname"` + Platform string `json:"platform"` + PlatformVersion string `json:"platform_version"` + Architecture string `json:"architecture"` + CPUCount int `json:"cpu_count"` + PythonVersion string `json:"python_version"` +} + +type Runtime struct { + UptimeSeconds int `json:"uptime_seconds"` + UptimeHuman string `json:"uptime_human"` + CurrentTime string `json:"current_time"` + Timezone string `json:"timezone"` +} + +type RequestInfo struct { + ClientIP string `json:"client_ip"` + UserAgent string `json:"user_agent"` + Method string `json:"method"` + Path string `json:"path"` +} + +type Endpoint struct { + Path string `json:"path"` + Method string `json:"method"` + Description string `json:"description"` +} + +type Response struct { + Service Service `json:"service"` + System System `json:"system"` + Runtime Runtime `json:"runtime"` + Request RequestInfo `json:"request"` + Endpoints []Endpoint `json:"endpoints"` +} + +var startTime = time.Now().UTC() + +func main() { + host := getenv("HOST", "0.0.0.0") + port := getenv("PORT", "5000") + addr := net.JoinHostPort(host, port) + + mux := http.NewServeMux() + mux.HandleFunc("/", rootHandler) + mux.HandleFunc("/health", healthHandler) + + handler := recoverMiddleware(loggingMiddleware(mux)) + + server := &http.Server{ + Addr: addr, + Handler: handler, + ReadHeaderTimeout: 5 * time.Second, + } + + log.Printf("Starting DevOps Info Service on %s", addr) + if err := server.ListenAndServe(); err != nil && err != http.ErrServerClosed { + log.Fatalf("server error: %v", err) + } +} + +func rootHandler(w http.ResponseWriter, r *http.Request) { + if r.URL.Path != "/" { + writeNotFound(w) + return + } + if r.Method != http.MethodGet { + writeMethodNotAllowed(w) + return + } + + uptimeSeconds, uptimeHuman := getUptime() + now := time.Now().UTC() + + hostname, _ := os.Hostname() + response := Response{ + Service: Service{ + Name: "devops-info-service", + Version: "1.0.0", + Description: "DevOps course info service", + Framework: "Go net/http", + }, + System: System{ + Hostname: hostname, + Platform: runtime.GOOS, + PlatformVersion: getPlatformVersion(), + Architecture: runtime.GOARCH, + CPUCount: runtime.NumCPU(), + PythonVersion: runtime.Version(), + }, + Runtime: Runtime{ + UptimeSeconds: uptimeSeconds, + UptimeHuman: uptimeHuman, + CurrentTime: now.Format(time.RFC3339), + Timezone: "UTC", + }, + Request: RequestInfo{ + ClientIP: getClientIP(r), + UserAgent: r.UserAgent(), + Method: r.Method, + Path: r.URL.Path, + }, + Endpoints: []Endpoint{ + {Path: "/", Method: "GET", Description: "Service information"}, + {Path: "/health", Method: "GET", Description: "Health check"}, + }, + } + + writeJSON(w, http.StatusOK, response) +} + +func healthHandler(w http.ResponseWriter, r *http.Request) { + if r.URL.Path != "/health" { + writeNotFound(w) + return + } + if r.Method != http.MethodGet { + writeMethodNotAllowed(w) + return + } + + uptimeSeconds, _ := getUptime() + payload := map[string]any{ + "status": "healthy", + "timestamp": time.Now().UTC().Format(time.RFC3339), + "uptime_seconds": uptimeSeconds, + } + + writeJSON(w, http.StatusOK, payload) +} + +func getUptime() (int, string) { + seconds := int(time.Since(startTime).Seconds()) + hours := seconds / 3600 + minutes := (seconds % 3600) / 60 + hourLabel := "hours" + if hours == 1 { + hourLabel = "hour" + } + minuteLabel := "minutes" + if minutes == 1 { + minuteLabel = "minute" + } + return seconds, fmt.Sprintf("%d %s, %d %s", hours, hourLabel, minutes, minuteLabel) +} + +func getClientIP(r *http.Request) string { + if forwarded := r.Header.Get("X-Forwarded-For"); forwarded != "" { + parts := strings.Split(forwarded, ",") + return strings.TrimSpace(parts[0]) + } + host, _, err := net.SplitHostPort(r.RemoteAddr) + if err == nil { + return host + } + return r.RemoteAddr +} + +func getPlatformVersion() string { + if value := os.Getenv("OS"); value != "" { + return value + } + if data, err := os.ReadFile("/etc/os-release"); err == nil { + for _, line := range strings.Split(string(data), "\n") { + if strings.HasPrefix(line, "PRETTY_NAME=") { + return strings.Trim(strings.TrimPrefix(line, "PRETTY_NAME="), "\"") + } + } + } + return "unknown" +} + +func writeJSON(w http.ResponseWriter, status int, payload any) { + w.Header().Set("Content-Type", "application/json") + w.WriteHeader(status) + if err := json.NewEncoder(w).Encode(payload); err != nil { + log.Printf("json encode error: %v", err) + } +} + +func writeNotFound(w http.ResponseWriter) { + writeJSON(w, http.StatusNotFound, map[string]string{ + "error": "Not Found", + "message": "Endpoint does not exist", + }) +} + +func writeMethodNotAllowed(w http.ResponseWriter) { + writeJSON(w, http.StatusMethodNotAllowed, map[string]string{ + "error": "Method Not Allowed", + "message": "Only GET is supported for this endpoint", + }) +} + +type statusRecorder struct { + http.ResponseWriter + status int +} + +func (recorder *statusRecorder) WriteHeader(code int) { + recorder.status = code + recorder.ResponseWriter.WriteHeader(code) +} + +func loggingMiddleware(next http.Handler) http.Handler { + return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + recorder := &statusRecorder{ResponseWriter: w, status: http.StatusOK} + start := time.Now() + log.Printf("Request: %s %s", r.Method, r.URL.Path) + next.ServeHTTP(recorder, r) + log.Printf("Response: %s %s -> %d (%s)", r.Method, r.URL.Path, recorder.status, time.Since(start)) + }) +} + +func recoverMiddleware(next http.Handler) http.Handler { + return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + defer func() { + if err := recover(); err != nil { + log.Printf("panic recovered: %v", err) + writeJSON(w, http.StatusInternalServerError, map[string]string{ + "error": "Internal Server Error", + "message": "An unexpected error occurred", + }) + } + }() + next.ServeHTTP(w, r) + }) +} + +func getenv(key, fallback string) string { + if value := os.Getenv(key); value != "" { + return value + } + return fallback +} diff --git a/lab3c/app_go/main_test.go b/lab3c/app_go/main_test.go new file mode 100644 index 0000000000..b8ba60fefa --- /dev/null +++ b/lab3c/app_go/main_test.go @@ -0,0 +1,54 @@ +package main + +import ( + "encoding/json" + "net/http" + "net/http/httptest" + "testing" +) + +func TestRootHandlerOK(t *testing.T) { + req := httptest.NewRequest(http.MethodGet, "/", nil) + rec := httptest.NewRecorder() + + rootHandler(rec, req) + + if rec.Code != http.StatusOK { + t.Fatalf("expected 200, got %d", rec.Code) + } + + var payload map[string]any + if err := json.Unmarshal(rec.Body.Bytes(), &payload); err != nil { + t.Fatalf("invalid json: %v", err) + } + + if _, ok := payload["service"]; !ok { + t.Fatal("missing service section") + } + if _, ok := payload["system"]; !ok { + t.Fatal("missing system section") + } + if _, ok := payload["runtime"]; !ok { + t.Fatal("missing runtime section") + } +} + +func TestHealthHandlerOK(t *testing.T) { + req := httptest.NewRequest(http.MethodGet, "/health", nil) + rec := httptest.NewRecorder() + + healthHandler(rec, req) + + if rec.Code != http.StatusOK { + t.Fatalf("expected 200, got %d", rec.Code) + } + + var payload map[string]any + if err := json.Unmarshal(rec.Body.Bytes(), &payload); err != nil { + t.Fatalf("invalid json: %v", err) + } + + if payload["status"] != "healthy" { + t.Fatalf("unexpected status: %v", payload["status"]) + } +} diff --git a/lab3c/app_python/.dockerignore b/lab3c/app_python/.dockerignore new file mode 100644 index 0000000000..b7738de7b8 --- /dev/null +++ b/lab3c/app_python/.dockerignore @@ -0,0 +1,12 @@ +__pycache__/ +*.py[cod] +*.log +venv/ +.venv/ +.env +.git/ +.gitignore +.idea/ +.vscode/ +docs/ +tests/ diff --git a/lab3c/app_python/.gitignore b/lab3c/app_python/.gitignore new file mode 100644 index 0000000000..8052e93c8b --- /dev/null +++ b/lab3c/app_python/.gitignore @@ -0,0 +1,14 @@ +__pycache__/ +*.py[cod] +*.log +venv/ +.venv/ +.env + +# IDE +.idea/ +.vscode/ + +# OS +.DS_Store +Thumbs.db diff --git a/lab3c/app_python/Dockerfile b/lab3c/app_python/Dockerfile new file mode 100644 index 0000000000..76219e6c10 --- /dev/null +++ b/lab3c/app_python/Dockerfile @@ -0,0 +1,19 @@ +FROM python:3.13-slim + +ENV PYTHONDONTWRITEBYTECODE=1 \ + PYTHONUNBUFFERED=1 + +WORKDIR /app + +RUN useradd -m -u 10001 appuser + +COPY requirements.txt . +RUN pip install --no-cache-dir -r requirements.txt + +COPY --chown=appuser:appuser app.py . + +USER appuser + +EXPOSE 5000 + +CMD ["python", "app.py"] diff --git a/lab3c/app_python/README.md b/lab3c/app_python/README.md new file mode 100644 index 0000000000..321559cad9 --- /dev/null +++ b/lab3c/app_python/README.md @@ -0,0 +1,78 @@ +# DevOps Info Service (FastAPI) + +[![Python CI](https://github.com/TsixPhoenix/DevOps-CC/actions/workflows/python-ci.yml/badge.svg?branch=lab03)](https://github.com/TsixPhoenix/DevOps-CC/actions/workflows/python-ci.yml) +[![Coverage](https://codecov.io/gh/TsixPhoenix/DevOps-CC/branch/lab03/graph/badge.svg)](https://codecov.io/gh/TsixPhoenix/DevOps-CC) + +## Overview +Small service returning system info about the machine it runs on, plus a health check. + +## Prerequisites +- Python 3.11+ +- pip +- (Optional) venv tool + +## Installation +```bash +python -m venv venv +.\venv\Scripts\Activate.ps1 +pip install -r requirements.txt -r requirements-dev.txt +``` + +## Running the Application +```bash +python app.py +``` + +Custom config examples: +```bash +PORT=8080 python app.py +HOST=127.0.0.1 PORT=3000 python app.py +``` + +FastAPI docs: +- `http://localhost:/docs` + +## Tests +Run locally: +```bash +pytest +``` + +Run with coverage: +```bash +pytest --cov=app --cov-report=term +``` + +## API Endpoints +- `GET /` - Service and system information +- `GET /health` - Health check + +## Configuration +| Variable | Default | Description | +| --- | --- | --- | +| `HOST` | `0.0.0.0` | Bind address for the server | +| `PORT` | `5000` | Port to listen on | +| `DEBUG` | `False` | Enable auto-reload | + +## Docker +Command patterns (replace the placeholders with your values): + +**Build locally** +```bash +docker build -t /: . +``` + +**Run container** +```bash +docker run --rm -p :5000 --name /: +``` + +**Pull from Docker Hub** +```bash +docker pull /: +``` + +Optional env overrides: +```bash +docker run --rm -e PORT=5000 -e HOST=0.0.0.0 -p :5000 /: +``` diff --git a/lab3c/app_python/app.py b/lab3c/app_python/app.py new file mode 100644 index 0000000000..8935b94091 --- /dev/null +++ b/lab3c/app_python/app.py @@ -0,0 +1,158 @@ +""" +DevOps Info Service +FastAPI application module. +""" + +from __future__ import annotations + +import logging +import os +import platform +import socket +from datetime import datetime, timezone + +import uvicorn +from fastapi import FastAPI, Request +from fastapi.responses import JSONResponse +from starlette.exceptions import HTTPException as StarletteHTTPException + +# Config +HOST = os.getenv("HOST", "0.0.0.0") +PORT = int(os.getenv("PORT", "5000")) +DEBUG = os.getenv("DEBUG", "False").lower() == "true" + +SERVICE_NAME = "devops-info-service" +SERVICE_VERSION = "1.0.0" +SERVICE_DESCRIPTION = "DevOps course info service" +SERVICE_FRAMEWORK = "FastAPI" + +START_TIME = datetime.now(timezone.utc) + +logging.basicConfig( + level=logging.INFO, + format="%(asctime)s - %(levelname)s - %(message)s", +) +logger = logging.getLogger("devops-info-service") + +app = FastAPI( + title="DevOps Info Service", + version=SERVICE_VERSION, + description=SERVICE_DESCRIPTION, +) + + +def _format_uptime(seconds: int) -> str: + hours = seconds // 3600 + minutes = (seconds % 3600) // 60 + hour_label = "hour" if hours == 1 else "hours" + minute_label = "minute" if minutes == 1 else "minutes" + return f"{hours} {hour_label}, {minutes} {minute_label}" + + +def get_uptime() -> dict[str, int | str]: + delta = datetime.now(timezone.utc) - START_TIME + seconds = int(delta.total_seconds()) + return { + "seconds": seconds, + "human": _format_uptime(seconds), + } + + +def get_system_info() -> dict[str, str | int]: + return { + "hostname": socket.gethostname(), + "platform": platform.system(), + "platform_version": platform.release(), + "architecture": platform.machine(), + "cpu_count": os.cpu_count() or 0, + "python_version": platform.python_version(), + } + + +def isoformat_utc(dt: datetime) -> str: + return dt.astimezone(timezone.utc).isoformat().replace("+00:00", "Z") + + +@app.middleware("http") +async def log_requests(request: Request, call_next): + logger.info("Request: %s %s", request.method, request.url.path) + response = await call_next(request) + logger.info("Response: %s %s -> %s", request.method, request.url.path, response.status_code) + return response + + +@app.exception_handler(StarletteHTTPException) +async def http_exception_handler(request: Request, exc: StarletteHTTPException): + if exc.status_code == 404: + return JSONResponse( + status_code=404, + content={ + "error": "Not Found", + "message": "Endpoint does not exist", + }, + ) + return JSONResponse( + status_code=exc.status_code, + content={"error": exc.detail}, + ) + + +@app.exception_handler(Exception) +async def unhandled_exception_handler(request: Request, exc: Exception): + logger.exception("Unhandled error: %s", exc) + return JSONResponse( + status_code=500, + content={ + "error": "Internal Server Error", + "message": "An unexpected error occurred", + }, + ) + + +@app.get("/") +async def root(request: Request): + uptime = get_uptime() + now = datetime.now(timezone.utc) + + response = { + "service": { + "name": SERVICE_NAME, + "version": SERVICE_VERSION, + "description": SERVICE_DESCRIPTION, + "framework": SERVICE_FRAMEWORK, + }, + "system": get_system_info(), + "runtime": { + "uptime_seconds": uptime["seconds"], + "uptime_human": uptime["human"], + "current_time": isoformat_utc(now), + "timezone": "UTC", + }, + "request": { + "client_ip": request.client.host if request.client else "unknown", + "user_agent": request.headers.get("user-agent", "unknown"), + "method": request.method, + "path": request.url.path, + }, + "endpoints": [ + {"path": "/", "method": "GET", "description": "Service information"}, + {"path": "/health", "method": "GET", "description": "Health check"}, + ], + } + + return response + + +@app.get("/health") +async def health(): + uptime = get_uptime() + return { + "status": "healthy", + "timestamp": isoformat_utc(datetime.now(timezone.utc)), + "uptime_seconds": uptime["seconds"], + } + + +if __name__ == "__main__": + logger.info("Starting DevOps Info Service on %s:%s", HOST, PORT) + uvicorn.run("app:app", host=HOST, port=PORT, reload=DEBUG, log_level="info") diff --git a/lab3c/app_python/docs/LAB03.md b/lab3c/app_python/docs/LAB03.md new file mode 100644 index 0000000000..3a1772878c --- /dev/null +++ b/lab3c/app_python/docs/LAB03.md @@ -0,0 +1,58 @@ +# LAB03 - CI/CD (Python) + +## 1. Overview +**Testing framework:** I used `pytest`. The syntax is clean, fixtures are easy to work with, and it is the default choice in most Python projects I see. + +**What tests cover:** The tests hit `GET /`, `GET /health`, a 404 case, and helper functions like uptime formatting. I focused on structure and types instead of exact machine values. + +**Workflow triggers:** CI runs on push and pull requests to `lab03`, `main`, or `master`, but only when `lab3c/app_python/**` or the workflow file changes. + +**Versioning strategy:** I chose CalVer (YYYY.MM.DD). It is simple, and this service is released continuously rather than as a library. + +## 2. Workflow Evidence +Add real links and outputs after you run CI: +- **Successful workflow run:** `` +- **Tests passing locally:** +pytest +============================================================================================ test session starts ============================================================================================ +platform win32 -- Python 3.12.2, pytest-9.0.2, pluggy-1.6.0 +rootdir: C:\Users\Phoenix\PycharmProjects\DevOps\DevOps-CC\lab3c\app_python +configfile: pyproject.toml +plugins: anyio-4.12.1, cov-7.0.0 +collected 5 items + +tests\test_app.py ..... [100%] + +============================================================================================= 5 passed in 0.36s ============================================================================================= +- **Docker image on Docker Hub:** `` +- **Status badge:** `` + +## 3. Best Practices Implemented +- **Dependency caching:** `actions/setup-python` caches pip packages to speed up installs. +- **Job separation:** tests run in one job, Docker build/push depends on test success. +- **Conditional push:** Docker images only push on `push` events (not on PRs). +- **Concurrency:** newer runs cancel older runs for the same branch. +- **Path filters:** CI runs only when the Python app changes (monorepo friendly). +- **Snyk scanning:** dependency scan runs in CI (requires token). + +Caching time saved: +``` + +``` + +Snyk result: +``` + +``` + +## 4. Key Decisions +**Versioning Strategy:** CalVer fits a small service that ships frequently. It is easy to read and does not require manual version bumps. + +**Docker Tags:** The workflow publishes `YYYY.MM.DD` and `latest` tags for the same image. + +**Workflow Triggers:** I used path filters to avoid running Python CI when only Go code changes. + +**Test Coverage:** Core endpoints and helper functions are tested. I did not try to cover every logging line. + +## 5. Challenges (Optional) +- Everything was clear, because of experience of setting up CI/CD in my company workspace. diff --git a/lab3c/app_python/pyproject.toml b/lab3c/app_python/pyproject.toml new file mode 100644 index 0000000000..efb9a85312 --- /dev/null +++ b/lab3c/app_python/pyproject.toml @@ -0,0 +1,3 @@ +[tool.ruff] +select = ["E", "F"] +ignore = ["E501"] diff --git a/lab3c/app_python/requirements-dev.txt b/lab3c/app_python/requirements-dev.txt new file mode 100644 index 0000000000..c6610506e3 --- /dev/null +++ b/lab3c/app_python/requirements-dev.txt @@ -0,0 +1,5 @@ +pytest +pytest-cov +requests +ruff +httpx diff --git a/lab3c/app_python/requirements.txt b/lab3c/app_python/requirements.txt new file mode 100644 index 0000000000..792449289f --- /dev/null +++ b/lab3c/app_python/requirements.txt @@ -0,0 +1,2 @@ +fastapi==0.115.0 +uvicorn[standard]==0.32.0 diff --git a/lab3c/app_python/tests/__init__.py b/lab3c/app_python/tests/__init__.py new file mode 100644 index 0000000000..792d600548 --- /dev/null +++ b/lab3c/app_python/tests/__init__.py @@ -0,0 +1 @@ +# diff --git a/lab3c/app_python/tests/test_app.py b/lab3c/app_python/tests/test_app.py new file mode 100644 index 0000000000..ff942f197e --- /dev/null +++ b/lab3c/app_python/tests/test_app.py @@ -0,0 +1,66 @@ +from datetime import datetime, timezone + +from fastapi.testclient import TestClient + +from app import _format_uptime, app, get_system_info, get_uptime, isoformat_utc + + +client = TestClient(app) + + +def test_root_endpoint_structure(): + response = client.get("/") + assert response.status_code == 200 + + data = response.json() + assert "service" in data + assert "system" in data + assert "runtime" in data + assert "request" in data + assert "endpoints" in data + + service = data["service"] + assert service["name"] == "devops-info-service" + assert service["framework"] == "FastAPI" + + system = data["system"] + for key in ["hostname", "platform", "platform_version", "architecture", "cpu_count", "python_version"]: + assert key in system + + runtime = data["runtime"] + assert isinstance(runtime["uptime_seconds"], int) + assert isinstance(runtime["uptime_human"], str) + assert runtime["timezone"] == "UTC" + + +def test_health_endpoint_structure(): + response = client.get("/health") + assert response.status_code == 200 + data = response.json() + assert data["status"] == "healthy" + assert isinstance(data["uptime_seconds"], int) + assert "timestamp" in data + + +def test_not_found_returns_json(): + response = client.get("/does-not-exist") + assert response.status_code == 404 + data = response.json() + assert data["error"] == "Not Found" + + +def test_helpers_are_consistent(): + system = get_system_info() + assert system["hostname"] + assert system["platform"] + assert system["python_version"] + + uptime = get_uptime() + assert uptime["seconds"] >= 0 + assert "hours" in uptime["human"] or "hour" in uptime["human"] + + +def test_format_and_iso_helpers(): + assert _format_uptime(3660) == "1 hour, 1 minute" + test_dt = datetime(2024, 1, 1, tzinfo=timezone.utc) + assert isoformat_utc(test_dt) == "2024-01-01T00:00:00Z" From a2e9be9d5dd85027499d187c052e307defd6ddbe Mon Sep 17 00:00:00 2001 From: Phoenix Date: Tue, 10 Feb 2026 15:16:40 +0300 Subject: [PATCH 03/21] fix: use env for secrets --- .github/workflows/python-ci.yml | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/.github/workflows/python-ci.yml b/.github/workflows/python-ci.yml index 5284899721..2d040aed9a 100644 --- a/.github/workflows/python-ci.yml +++ b/.github/workflows/python-ci.yml @@ -23,6 +23,9 @@ jobs: test: name: Lint and Test runs-on: ubuntu-latest + env: + CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} + SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }} strategy: fail-fast: true matrix: @@ -55,17 +58,17 @@ jobs: run: pytest --cov=app --cov-report=xml --cov-report=term - name: Upload coverage to Codecov - if: ${{ secrets.CODECOV_TOKEN != '' }} + if: ${{ env.CODECOV_TOKEN != '' }} uses: codecov/codecov-action@v4 with: files: lab3c/app_python/coverage.xml - token: ${{ secrets.CODECOV_TOKEN }} + token: ${{ env.CODECOV_TOKEN }} - name: Snyk scan - if: ${{ secrets.SNYK_TOKEN != '' }} + if: ${{ env.SNYK_TOKEN != '' }} uses: snyk/actions/python@master env: - SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }} + SNYK_TOKEN: ${{ env.SNYK_TOKEN }} with: command: test args: --file=lab3c/app_python/requirements.txt From c547e13a2cd676f1a398888aaa5a9ce554a34109 Mon Sep 17 00:00:00 2001 From: Phoenix Date: Tue, 10 Feb 2026 15:20:13 +0300 Subject: [PATCH 04/21] trigger ci --- lab3c/app_python/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lab3c/app_python/README.md b/lab3c/app_python/README.md index 321559cad9..e12a3ea6bc 100644 --- a/lab3c/app_python/README.md +++ b/lab3c/app_python/README.md @@ -1,7 +1,7 @@ # DevOps Info Service (FastAPI) [![Python CI](https://github.com/TsixPhoenix/DevOps-CC/actions/workflows/python-ci.yml/badge.svg?branch=lab03)](https://github.com/TsixPhoenix/DevOps-CC/actions/workflows/python-ci.yml) -[![Coverage](https://codecov.io/gh/TsixPhoenix/DevOps-CC/branch/lab03/graph/badge.svg)](https://codecov.io/gh/TsixPhoenix/DevOps-CC) + ## Overview Small service returning system info about the machine it runs on, plus a health check. From 48163c47a621cfaa6f410530fa486187f31896de Mon Sep 17 00:00:00 2001 From: Phoenix Date: Tue, 10 Feb 2026 15:21:49 +0300 Subject: [PATCH 05/21] fix: ci trigger path --- .github/workflows/python-ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/python-ci.yml b/.github/workflows/python-ci.yml index 2d040aed9a..7004955f17 100644 --- a/.github/workflows/python-ci.yml +++ b/.github/workflows/python-ci.yml @@ -2,12 +2,12 @@ name: Python CI (Lab03) on: push: - branches: [lab03, main, master] + branches: [lab3, main, master] paths: - "lab3c/app_python/**" - ".github/workflows/python-ci.yml" pull_request: - branches: [lab03, main, master] + branches: [lab3, main, master] paths: - "lab3c/app_python/**" - ".github/workflows/python-ci.yml" From dcf70721ea6c72e6bcd7b899e3f09c28b292b672 Mon Sep 17 00:00:00 2001 From: Phoenix Date: Tue, 10 Feb 2026 15:25:44 +0300 Subject: [PATCH 06/21] fix: snyk fix --- .github/workflows/python-ci.yml | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/.github/workflows/python-ci.yml b/.github/workflows/python-ci.yml index 7004955f17..d61adcda2b 100644 --- a/.github/workflows/python-ci.yml +++ b/.github/workflows/python-ci.yml @@ -64,14 +64,16 @@ jobs: files: lab3c/app_python/coverage.xml token: ${{ env.CODECOV_TOKEN }} + - name: Install Snyk CLI + if: ${{ env.SNYK_TOKEN != '' }} + run: npm install -g snyk + - name: Snyk scan if: ${{ env.SNYK_TOKEN != '' }} - uses: snyk/actions/python@master + working-directory: lab3c/app_python + run: snyk test --file=requirements.txt --package-manager=pip env: SNYK_TOKEN: ${{ env.SNYK_TOKEN }} - with: - command: test - args: --file=lab3c/app_python/requirements.txt docker: name: Build and Push Docker Image From 25f225d6653b95a6e3482c4a6d52eb721ab5a18b Mon Sep 17 00:00:00 2001 From: Phoenix Date: Tue, 10 Feb 2026 15:32:15 +0300 Subject: [PATCH 07/21] fix: upgrade fastApi to resolve snyk issues --- lab3c/app_python/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lab3c/app_python/requirements.txt b/lab3c/app_python/requirements.txt index 792449289f..01c3cb3565 100644 --- a/lab3c/app_python/requirements.txt +++ b/lab3c/app_python/requirements.txt @@ -1,2 +1,2 @@ -fastapi==0.115.0 +fastapi==0.128.6 uvicorn[standard]==0.32.0 From 38c2836de01ad0ea82bac61635fdd0f05c0c1a7e Mon Sep 17 00:00:00 2001 From: Phoenix Date: Tue, 10 Feb 2026 15:45:35 +0300 Subject: [PATCH 08/21] docs update --- lab3c/app_go/docs/LAB03.md | 5 ++--- lab3c/app_python/docs/LAB03.md | 28 ++++++++++++++++++---------- 2 files changed, 20 insertions(+), 13 deletions(-) diff --git a/lab3c/app_go/docs/LAB03.md b/lab3c/app_go/docs/LAB03.md index 2fc772a8e3..2ae68b20de 100644 --- a/lab3c/app_go/docs/LAB03.md +++ b/lab3c/app_go/docs/LAB03.md @@ -8,9 +8,8 @@ I added a separate workflow for the Go app with its own path filters. This keeps - Python workflow runs only when `lab3c/app_python/**` or its workflow file changes. ## Workflow Evidence -Add real links after CI runs: -- ✅ **Go workflow run:** `` -- ✅ **Docker image on Docker Hub:** `` +- **Go workflow run:** +- **Docker image on Docker Hub:** ## Notes - Go CI uses `go test` and a basic lint step. diff --git a/lab3c/app_python/docs/LAB03.md b/lab3c/app_python/docs/LAB03.md index 3a1772878c..530353eaba 100644 --- a/lab3c/app_python/docs/LAB03.md +++ b/lab3c/app_python/docs/LAB03.md @@ -11,7 +11,7 @@ ## 2. Workflow Evidence Add real links and outputs after you run CI: -- **Successful workflow run:** `` +- **Successful workflow run:** https://github.com/TsixPhoenix/DevOps-CC/actions/runs/21865003310/job/63103839665 - **Tests passing locally:** pytest ============================================================================================ test session starts ============================================================================================ @@ -24,8 +24,8 @@ collected 5 items tests\test_app.py ..... [100%] ============================================================================================= 5 passed in 0.36s ============================================================================================= -- **Docker image on Docker Hub:** `` -- **Status badge:** `` +- **Docker image on Docker Hub:** https://hub.docker.com/repository/docker/tsixphoenix/devops-info-python/general +- **Status badge:** Works, shows green check ## 3. Best Practices Implemented - **Dependency caching:** `actions/setup-python` caches pip packages to speed up installs. @@ -33,16 +33,24 @@ tests\test_app.py ..... - **Conditional push:** Docker images only push on `push` events (not on PRs). - **Concurrency:** newer runs cancel older runs for the same branch. - **Path filters:** CI runs only when the Python app changes (monorepo friendly). -- **Snyk scanning:** dependency scan runs in CI (requires token). +- **Snyk scanning:** dependency scan runs in CI. -Caching time saved: -``` - -``` Snyk result: ``` - +Run snyk test --file=requirements.txt --package-manager=pip + +Testing /home/runner/work/DevOps-CC/DevOps-CC/lab3c/app_python... + +Organization: tsixphoenix +Package manager: pip +Target file: requirements.txt +Project name: app_python +Open source: no +Project path: /home/runner/work/DevOps-CC/DevOps-CC/lab3c/app_python +Licenses: enabled + +✔ Tested 13 dependencies for known issues, no vulnerable paths found. ``` ## 4. Key Decisions @@ -54,5 +62,5 @@ Snyk result: **Test Coverage:** Core endpoints and helper functions are tested. I did not try to cover every logging line. -## 5. Challenges (Optional) +## 5. Challenges - Everything was clear, because of experience of setting up CI/CD in my company workspace. From ab7845153448c2114b9236246b4c5d655cbdbd94 Mon Sep 17 00:00:00 2001 From: Phoenix Date: Thu, 19 Feb 2026 18:16:22 +0300 Subject: [PATCH 09/21] complete lab4 --- .github/workflows/terraform-ci.yml | 51 ++++++ lab4c/docs/LAB04.md | 190 +++++++++++++++++++++++ lab4c/pulumi/.gitignore | 19 +++ lab4c/pulumi/Pulumi.yaml | 4 + lab4c/pulumi/README.md | 50 ++++++ lab4c/pulumi/__main__.py | 102 ++++++++++++ lab4c/pulumi/requirements.txt | 3 + lab4c/terraform/.gitignore | 21 +++ lab4c/terraform/.tflint.hcl | 3 + lab4c/terraform/README.md | 59 +++++++ lab4c/terraform/main.tf | 101 ++++++++++++ lab4c/terraform/outputs.tf | 9 ++ lab4c/terraform/terraform.tfvars.example | 5 + lab4c/terraform/variables.tf | 26 ++++ 14 files changed, 643 insertions(+) create mode 100644 .github/workflows/terraform-ci.yml create mode 100644 lab4c/docs/LAB04.md create mode 100644 lab4c/pulumi/.gitignore create mode 100644 lab4c/pulumi/Pulumi.yaml create mode 100644 lab4c/pulumi/README.md create mode 100644 lab4c/pulumi/__main__.py create mode 100644 lab4c/pulumi/requirements.txt create mode 100644 lab4c/terraform/.gitignore create mode 100644 lab4c/terraform/.tflint.hcl create mode 100644 lab4c/terraform/README.md create mode 100644 lab4c/terraform/main.tf create mode 100644 lab4c/terraform/outputs.tf create mode 100644 lab4c/terraform/terraform.tfvars.example create mode 100644 lab4c/terraform/variables.tf diff --git a/.github/workflows/terraform-ci.yml b/.github/workflows/terraform-ci.yml new file mode 100644 index 0000000000..42a0c50418 --- /dev/null +++ b/.github/workflows/terraform-ci.yml @@ -0,0 +1,51 @@ +name: Terraform Validate (Lab04) + +on: + push: + branches: [lab04, main, master] + paths: + - "lab4c/terraform/**" + - ".github/workflows/terraform-ci.yml" + pull_request: + branches: [lab04, main, master] + paths: + - "lab4c/terraform/**" + - ".github/workflows/terraform-ci.yml" + +jobs: + validate: + name: Format, Validate, Lint + runs-on: ubuntu-latest + defaults: + run: + working-directory: lab4c/terraform + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup Terraform + uses: hashicorp/setup-terraform@v3 + with: + terraform_version: "1.9" + terraform_wrapper: false + + - name: Terraform Format Check + run: terraform fmt -check -recursive + + - name: Terraform Init + run: terraform init -backend=false + + - name: Terraform Validate + run: terraform validate + + - name: Setup TFLint + uses: terraform-linters/setup-tflint@v4 + with: + tflint_version: latest + + - name: TFLint Init + run: tflint --init + + - name: TFLint + run: tflint --format compact + continue-on-error: true diff --git a/lab4c/docs/LAB04.md b/lab4c/docs/LAB04.md new file mode 100644 index 0000000000..5af0ddc8e7 --- /dev/null +++ b/lab4c/docs/LAB04.md @@ -0,0 +1,190 @@ +# LAB04 — Infrastructure as Code (Terraform & Pulumi) + +## 1. Cloud Provider & Infrastructure + +- **Cloud provider:** Yandex Cloud. +- **Rationale:** Used Yandex Cloud for this lab because of the free tier +- **Instance:** standard-v3, 2 cores 20%, 1 GB RAM, 10 GB disk. +- **Zone:** ru-central1-a. +- **Estimated cost:** Effectively $0 with the free tier for this kind of usage. +- **Resources created:** + - 1× VPC network + - 1× subnet + - 1× security group (SSH 22, HTTP 80, 5000) + - 1× compute instance (Ubuntu 22.04) + - Public IP + +## 2. Terraform Implementation + +- **Terraform version:** Terraform v1.14.5 +- **Project structure:** `terraform/` — main.tf (provider, Ubuntu image data source, VPC, subnet, security group, instance), variables.tf, outputs.tf, terraform.tfvars (gitignored). Auth via service account key path in tfvars +- **Key decisions:** Variables for folder_id, zone, SSH key path, and SSH CIDR so the same code works across environments. Data source for the latest Ubuntu 22.04 LTS image. Security group restricts SSH to our IP only; HTTP and 5000 are open for the app. +- **Challenges:** Getting auth right at first; I ended up putting the key file path in terraform.tfvars). Also hit the VPC network quota once and had to extend it. + +**Terminal output:** + +- `terraform init`: + ``` +terraform init +Initializing the backend... +Initializing provider plugins... +- Finding yandex-cloud/yandex versions matching "~> 0.100"... +- Installing yandex-cloud/yandex v0.187.0... +- Installed yandex-cloud/yandex v0.187.0 + ``` +- `terraform plan`: + ``` +terraform plan +data.yandex_compute_image.ubuntu: Reading... +data.yandex_compute_image.ubuntu: Read complete after 0s [id=***********] + +Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the +following symbols: + + create + +Terraform will perform the following actions: + + # yandex_compute_instance.lab4 will be created + + resource "yandex_compute_instance" "lab4" { + ``` +- `terraform apply`: + ``` +terraform apply +data.yandex_compute_image.ubuntu: Reading... +data.yandex_compute_image.ubuntu: Read complete after 0s [id=***********] + +Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the +following symbols: + + create + +Terraform will perform the following actions: + + # yandex_compute_instance.lab4 will be created + + resource "yandex_compute_instance" "lab4" { + ``` +- `SSH to VM`: + ``` +The programs included with the Ubuntu system are free software; +the exact distribution terms for each program are described in the +individual files in /usr/share/doc/*/copyright. + +Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by +applicable law. + +To run a command as administrator (user "root"), use "sudo ". +See "man sudo_root" for details. + +ubuntu@fhm24d5clqr3oh7b101s:~$ + ``` + +## 3. Pulumi Implementation + +- **Pulumi version and language:** Pulumi v3.222.0, Python 3.x. +- **How it differs from Terraform:** Same logical resources (VPC, subnet, security group, VM), but defined in Python. You get normal Python (loops, functions, types) and the same state/plan/apply workflow. +- **Advantages:** Felt easier. Outputs are straightforward. +- **Challenges:** Initial setup took a bit: venv, `setuptools<82` for `pkg_resources`, and provider auth. + +**Terminal output:** + +- `pulumi preview`: + ``` + pulumi preview +Previewing update (dev) + +View in Browser (Ctrl+O): + + Type Name Plan Info + + pulumi:pulumi:Stack lab4c-vm-dev create 2 messages + + ├─ yandex:index:VpcNetwork lab4c-network create + + ├─ yandex:index:VpcSubnet lab4c-subnet create + + ├─ yandex:index:VpcSecurityGroup lab4c-vm-sg create + + └─ yandex:index:ComputeInstance lab4c-vm create +Diagnostics: + pulumi:pulumi:Stack (lab4c-vm-dev): + import pkg_resources + +Outputs: + public_ip : [unknown] + ssh_command: [unknown] + +Resources: + + 5 to create + ``` +- `pulumi up`: + ``` + pulumi up +Previewing update (dev) + +View in Browser (Ctrl+O): + Type Name Plan Info + pulumi:pulumi:Stack lab4c-vm-dev 2 messages + + ├─ yandex:index:VpcNetwork lab4c-network create + + ├─ yandex:index:VpcSubnet lab4c-subnet create + + ├─ yandex:index:VpcSecurityGroup lab4c-vm-sg create + + └─ yandex:index:ComputeInstance lab4c-vm create +Diagnostics: + pulumi:pulumi:Stack (lab4c-vm-dev): + import pkg_resources + + [Pulumi Neo] Would you like help with these diagnostics? + +Outputs: + + public_ip : [unknown] + + ssh_command: [unknown] + +Resources: + + 4 to create + 1 unchanged + +Do you want to perform this update? yes +Updating (dev) + ``` +- SSH to VM: + ``` + The programs included with the Ubuntu system are free software; +the exact distribution terms for each program are described in the +individual files in /usr/share/doc/*/copyright. + +Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by +applicable law. + +To run a command as administrator (user "root"), use "sudo ". +See "man sudo_root" for details. + +ubuntu@fhm8nea1kubnsde4ooqn:~$ + ``` + +## 4. Terraform vs Pulumi Comparison + +- **Ease of learning:** Terraform is easier if you only care about “describe resources in a file and apply.” HCL is small and focused. Pulumi is easier if you already know Python and want to use normal code; +- **Code readability:** Both are readable. Terraform is very declarative: you see resources and attributes. Pulumi looks like normal code, so you can structure it with variables and functions. +- **Debugging:** With Terraform, you rely on plan/apply messages and sometimes `terraform state`. With Pulumi, you get Python stack traces and can add prints or a debugger; the program runs in your environment, which helps. +- **Documentation:** all services are well documented +- **Use case:** I’d pick Terraform when the team is standardizing on it, when you want maximum portability (HCL, big ecosystem), or when you’re mostly gluing provider resources. I’d pick Pulumi when the team is code-first, when you want to share logic with the rest of your app (same language, tests, refactors), or when you need loops, conditionals, or abstractions that are clumsy in HCL. + +## 5. Lab 5 Preparation & Cleanup + +**VM for Lab 5:** + +- **Keeping VM for Lab 5?** No. +- **Plan for Lab 5:** Will recreate a cloud VM when needed + +**Cleanup status:** +``` +terraform destroy +Destroy complete! Resources: 4 destroyed. +``` +and +``` +pulumi destroy +Previewing destroy (dev) + +View in Browser (Ctrl+O): + + Type Name Plan + - pulumi:pulumi:Stack lab4c-vm-dev delete + - ├─ yandex:index:ComputeInstance lab4c-vm delete + - ├─ yandex:index:VpcSubnet lab4c-subnet delete + - ├─ yandex:index:VpcSecurityGroup lab4c-vm-sg delete + - └─ yandex:index:VpcNetwork lab4c-network delete +``` diff --git a/lab4c/pulumi/.gitignore b/lab4c/pulumi/.gitignore new file mode 100644 index 0000000000..25c1585ba2 --- /dev/null +++ b/lab4c/pulumi/.gitignore @@ -0,0 +1,19 @@ +# Pulumi +Pulumi.*.yaml +!Pulumi.yaml +.pulumi/ + +# Python +__pycache__/ +*.py[cod] +venv/ +.venv/ +*.egg-info/ + +# IDE +.idea/ +.vscode/ + +# OS +.DS_Store +Thumbs.db diff --git a/lab4c/pulumi/Pulumi.yaml b/lab4c/pulumi/Pulumi.yaml new file mode 100644 index 0000000000..a3e2d9124e --- /dev/null +++ b/lab4c/pulumi/Pulumi.yaml @@ -0,0 +1,4 @@ +name: lab4c-vm +runtime: python +description: Lab 4 - VM on Yandex cloud + diff --git a/lab4c/pulumi/README.md b/lab4c/pulumi/README.md new file mode 100644 index 0000000000..5c263e239d --- /dev/null +++ b/lab4c/pulumi/README.md @@ -0,0 +1,50 @@ +# Lab 4 — Pulumi (Yandex Cloud) + +Same infrastructure as the Terraform stack: one VM, VPC, subnet, security group (SSH, HTTP, 5000). + +## Prerequisites + +- Pulumi CLI 3.x +- Python 3.9+ +- Yandex Cloud account (same auth as for Terraform: `YANDEX_TOKEN` or service account key) + +## Config + + +```bash +pulumi config set folder_id your-yandex-folder-id +pulumi config set ssh_cidr "YOUR_IP/32" +pulumi config set ssh_public_key "$(cat %USERPROFILE%\.ssh\id_rsa.pub)" +``` + +```powershell +pulumi config set ssh_public_key "$(Get-Content $env:USERPROFILE\.ssh\id_rsa.pub -Raw)" +``` + +Optional: `pulumi config set zone ru-central1-a` + +## Setup + +1. Log in to Pulumi: `pulumi login` +2. Create stack: `pulumi stack init dev` +3. Install deps and run: + + ```powershell + python -m venv venv + .\venv\Scripts\Activate.ps1 + pip install -r requirements.txt + pulumi preview + pulumi up + ``` + +4. SSH to VM: + + ```powershell + ssh ubuntu@$(pulumi stack output public_ip) + ``` + +## Cleanup + +```bash +pulumi destroy +``` diff --git a/lab4c/pulumi/__main__.py b/lab4c/pulumi/__main__.py new file mode 100644 index 0000000000..54482de1c3 --- /dev/null +++ b/lab4c/pulumi/__main__.py @@ -0,0 +1,102 @@ +"""Lab 4 - Create VM on Yandex Cloud (same as Terraform).""" +import os +import pulumi + +config = pulumi.Config() +key_file = config.get("yandex_service_account_key_file") +if key_file: + os.environ["YANDEX_SERVICE_ACCOUNT_KEY_FILE"] = key_file + +import pulumi_yandex as yandex + +folder_id = config.require("folder_id") +zone = config.get("zone") or "ru-central1-a" +ssh_public_key = config.require("ssh_public_key") +ssh_cidr = config.require("ssh_cidr") + +# Ubuntu 22.04 LTS +image = yandex.get_compute_image(family="ubuntu-2204-lts") + +network = yandex.VpcNetwork( + "lab4c-network", + name="lab4c-network", + folder_id=folder_id, +) + +subnet = yandex.VpcSubnet( + "lab4c-subnet", + name="lab4c-subnet", + network_id=network.id, + zone=zone, + folder_id=folder_id, + v4_cidr_blocks=["10.0.1.0/24"], +) + +sg = yandex.VpcSecurityGroup( + "lab4c-vm-sg", + name="lab4c-vm-sg", + network_id=network.id, + folder_id=folder_id, + description="Allow SSH, HTTP, and port 5000 for Lab 4", + ingresses=[ + yandex.VpcSecurityGroupIngressArgs( + description="SSH", + port=22, + protocol="TCP", + v4_cidr_blocks=[ssh_cidr], + ), + yandex.VpcSecurityGroupIngressArgs( + description="HTTP", + port=80, + protocol="TCP", + v4_cidr_blocks=["0.0.0.0/0"], + ), + yandex.VpcSecurityGroupIngressArgs( + description="App 5000", + port=5000, + protocol="TCP", + v4_cidr_blocks=["0.0.0.0/0"], + ), + ], + egresses=[ + yandex.VpcSecurityGroupEgressArgs( + description="Any", + protocol="ANY", + v4_cidr_blocks=["0.0.0.0/0"], + ), + ], +) + +vm = yandex.ComputeInstance( + "lab4c-vm", + name="lab4c-vm", + zone=zone, + folder_id=folder_id, + platform_id="standard-v3", + resources=yandex.ComputeInstanceResourcesArgs( + cores=2, + memory=1, + core_fraction=20, + ), + boot_disk=yandex.ComputeInstanceBootDiskArgs( + initialize_params=yandex.ComputeInstanceBootDiskInitializeParamsArgs( + image_id=image.id, + size=10, + type="network-hdd", + ), + ), + network_interfaces=[ + yandex.ComputeInstanceNetworkInterfaceArgs( + subnet_id=subnet.id, + nat=True, + security_group_ids=[sg.id], + ), + ], + metadata={ + "ssh-keys": f"ubuntu:{ssh_public_key}", + }, + labels={"lab": "lab04"}, +) + +pulumi.export("public_ip", vm.network_interfaces[0].nat_ip_address) +pulumi.export("ssh_command", pulumi.Output.concat("ssh ubuntu@", vm.network_interfaces[0].nat_ip_address)) diff --git a/lab4c/pulumi/requirements.txt b/lab4c/pulumi/requirements.txt new file mode 100644 index 0000000000..c2955fc5a6 --- /dev/null +++ b/lab4c/pulumi/requirements.txt @@ -0,0 +1,3 @@ +pulumi>=3.0.0 +pulumi-yandex>=0.13.0 +setuptools>=65.0.0,<82 diff --git a/lab4c/terraform/.gitignore b/lab4c/terraform/.gitignore new file mode 100644 index 0000000000..df419991b7 --- /dev/null +++ b/lab4c/terraform/.gitignore @@ -0,0 +1,21 @@ +# Terraform +*.tfstate +*.tfstate.* +.terraform/ +.terraform.lock.hcl +terraform.tfvars +*.tfvars +*.tfvars.json +crash.log +override.tf +override.tf.json +*_override.tf +*_override.tf.json + +# Credentials +*.pem +*.key +*.json +!package.json +credentials +.env diff --git a/lab4c/terraform/.tflint.hcl b/lab4c/terraform/.tflint.hcl new file mode 100644 index 0000000000..75d15f14aa --- /dev/null +++ b/lab4c/terraform/.tflint.hcl @@ -0,0 +1,3 @@ +plugin "terraform" { + enabled = true +} diff --git a/lab4c/terraform/README.md b/lab4c/terraform/README.md new file mode 100644 index 0000000000..aee3cb8444 --- /dev/null +++ b/lab4c/terraform/README.md @@ -0,0 +1,59 @@ +# Lab 4 — Terraform (Yandex Cloud) + +Creates one VM (free tier: 2 cores 20%, 1 GB RAM, 10 GB disk), VPC, subnet, security group (SSH, HTTP, 5000), and outputs public IP. + +## Prerequisites + +- Terraform 1.9+ +- Yandex Cloud account +- SSH key pair on your machine (e.g. `ssh-keygen`); you will use the **public** key path in Terraform + +## Authentication + +Use one of these (do not commit secrets): + +1. **OAuth token (quick):** + `set YANDEX_TOKEN=your_oauth_token` (cmd) or `$env:YANDEX_TOKEN = "..."` (PowerShell) + +2. **Service account key file:** + Create a service account in Yandex Cloud Console, create an authorized key (JSON), then: + `set YANDEX_SERVICE_ACCOUNT_KEY_FILE=C:\path\to\key.json` + or in `terraform.tfvars`: `yandex_token` (prefer env vars). + +3. **Folder ID:** + In Console: Cloud → folder → copy ID. Set in `terraform.tfvars` as `yandex_folder_id`. + +## Setup + +1. Copy and edit variables: + - **Windows:** `copy terraform.tfvars.example terraform.tfvars` + - **Linux/macOS:** `cp terraform.tfvars.example terraform.tfvars` + Edit: + - `yandex_folder_id` — your folder ID + - `yandex_zone` — e.g. `ru-central1-a` + - `ssh_public_key_path` — full path to your `.pub` file (e.g. `C:\Users\You\.ssh\id_rsa.pub` or `%USERPROFILE%\.ssh\id_rsa.pub`) + - `ssh_cidr` — your IP/32 (e.g. from https://ifconfig.me) + +2. Initialize and apply: + ```bash + terraform init + terraform plan + terraform apply + ``` + +3. SSH to VM (no `-i` needed if you use the same key as the one in metadata): + - **PowerShell:** `ssh ubuntu@$(terraform output -raw public_ip)` + - Or: `ssh -i C:\path\to\your_private_key ubuntu@` + +## Cleanup + +```bash +terraform destroy +``` + +## Files + +- `main.tf` — provider, network, subnet, security group, instance +- `variables.tf` — folder_id, zone, ssh_public_key_path, ssh_cidr +- `outputs.tf` — public_ip, ssh_command +- `terraform.tfvars` — your values (gitignored) diff --git a/lab4c/terraform/main.tf b/lab4c/terraform/main.tf new file mode 100644 index 0000000000..5152f76f06 --- /dev/null +++ b/lab4c/terraform/main.tf @@ -0,0 +1,101 @@ +terraform { + required_version = ">= 1.9" + required_providers { + yandex = { + source = "yandex-cloud/yandex" + version = "~> 0.100" + } + } +} + +provider "yandex" { + zone = var.yandex_zone + folder_id = var.yandex_folder_id + service_account_key_file = var.yandex_service_account_key_file +} + +# Ubuntu 22.04 +data "yandex_compute_image" "ubuntu" { + family = "ubuntu-2204-lts" +} + +resource "yandex_vpc_network" "lab4" { + name = "lab4c-network" +} + +resource "yandex_vpc_subnet" "lab4" { + name = "lab4c-subnet" + network_id = yandex_vpc_network.lab4.id + zone = var.yandex_zone + v4_cidr_blocks = ["10.0.1.0/24"] +} + +resource "yandex_vpc_security_group" "lab4" { + name = "lab4c-vm-sg" + network_id = yandex_vpc_network.lab4.id + description = "Allow SSH, HTTP, and port 5000 for Lab 4" + + ingress { + description = "SSH" + port = 22 + protocol = "TCP" + v4_cidr_blocks = [var.ssh_cidr] + } + + ingress { + description = "HTTP" + port = 80 + protocol = "TCP" + v4_cidr_blocks = ["0.0.0.0/0"] + } + + ingress { + description = "App 5000" + port = 5000 + protocol = "TCP" + v4_cidr_blocks = ["0.0.0.0/0"] + } + + egress { + description = "Any" + from_port = 0 + to_port = 65535 + protocol = "ANY" + v4_cidr_blocks = ["0.0.0.0/0"] + } +} + +resource "yandex_compute_instance" "lab4" { + name = "lab4c-vm" + platform_id = "standard-v3" + zone = var.yandex_zone + folder_id = var.yandex_folder_id + + resources { + cores = 2 + memory = 1 + core_fraction = 20 + } + + boot_disk { + initialize_params { + image_id = data.yandex_compute_image.ubuntu.id + size = 10 + type = "network-hdd" + } + } + + network_interface { + subnet_id = yandex_vpc_subnet.lab4.id + nat = true + security_group_ids = [yandex_vpc_security_group.lab4.id] + } + + metadata = { + ssh-keys = "ubuntu:${file(var.ssh_public_key_path)}" + } + + labels = { + lab = "lab04" + } +} diff --git a/lab4c/terraform/outputs.tf b/lab4c/terraform/outputs.tf new file mode 100644 index 0000000000..2821ecd1bc --- /dev/null +++ b/lab4c/terraform/outputs.tf @@ -0,0 +1,9 @@ +output "public_ip" { + description = "Public IP of the VM" + value = yandex_compute_instance.lab4.network_interface[0].nat_ip_address +} + +output "ssh_command" { + description = "Example SSH command" + value = "ssh ubuntu@${yandex_compute_instance.lab4.network_interface[0].nat_ip_address}" +} diff --git a/lab4c/terraform/terraform.tfvars.example b/lab4c/terraform/terraform.tfvars.example new file mode 100644 index 0000000000..f36767e4d3 --- /dev/null +++ b/lab4c/terraform/terraform.tfvars.example @@ -0,0 +1,5 @@ +yandex_folder_id = +yandex_zone = +yandex_service_account_key_file = +ssh_public_key_path = +ssh_cidr = "1.2.3.4/32" diff --git a/lab4c/terraform/variables.tf b/lab4c/terraform/variables.tf new file mode 100644 index 0000000000..0d121ae84c --- /dev/null +++ b/lab4c/terraform/variables.tf @@ -0,0 +1,26 @@ +variable "yandex_folder_id" { + description = "Yandex Cloud folder ID" + type = string +} + +variable "yandex_zone" { + description = "Yandex Cloud zone" + type = string + default = "ru-central1-a" +} + +variable "ssh_public_key_path" { + description = "Path to your SSH public key file" + type = string +} + +variable "ssh_cidr" { + description = "CIDR allowed for SSH" + type = string +} + +variable "yandex_service_account_key_file" { + description = "Path to Yandex service account JSON key" + type = string + default = null +} From ad335a4f860b8c19bd2fdd82f51f44c01bc8624b Mon Sep 17 00:00:00 2001 From: Phoenix Date: Tue, 24 Feb 2026 14:24:41 +0300 Subject: [PATCH 10/21] lab5 complete --- .gitignore | 12 +- lab5c/README.md | 38 ++++ lab5c/ansible/.gitignore | 4 + lab5c/ansible/ansible.cfg | 13 ++ lab5c/ansible/docs/LAB05.md | 180 ++++++++++++++++++ lab5c/ansible/group_vars/all.yml | 23 +++ lab5c/ansible/group_vars/all.yml.example | 19 ++ lab5c/ansible/inventory/hosts.ini | 5 + lab5c/ansible/playbooks/deploy.yml | 10 + lab5c/ansible/playbooks/provision.yml | 8 + lab5c/ansible/playbooks/site.yml | 12 ++ lab5c/ansible/requirements.yml | 4 + .../roles/app_deploy/defaults/main.yml | 11 ++ .../roles/app_deploy/handlers/main.yml | 6 + lab5c/ansible/roles/app_deploy/tasks/main.yml | 62 ++++++ lab5c/ansible/roles/common/defaults/main.yml | 13 ++ lab5c/ansible/roles/common/tasks/main.yml | 15 ++ lab5c/ansible/roles/docker/defaults/main.yml | 16 ++ lab5c/ansible/roles/docker/handlers/main.yml | 5 + lab5c/ansible/roles/docker/tasks/main.yml | 56 ++++++ 20 files changed, 511 insertions(+), 1 deletion(-) create mode 100644 lab5c/README.md create mode 100644 lab5c/ansible/.gitignore create mode 100644 lab5c/ansible/ansible.cfg create mode 100644 lab5c/ansible/docs/LAB05.md create mode 100644 lab5c/ansible/group_vars/all.yml create mode 100644 lab5c/ansible/group_vars/all.yml.example create mode 100644 lab5c/ansible/inventory/hosts.ini create mode 100644 lab5c/ansible/playbooks/deploy.yml create mode 100644 lab5c/ansible/playbooks/provision.yml create mode 100644 lab5c/ansible/playbooks/site.yml create mode 100644 lab5c/ansible/requirements.yml create mode 100644 lab5c/ansible/roles/app_deploy/defaults/main.yml create mode 100644 lab5c/ansible/roles/app_deploy/handlers/main.yml create mode 100644 lab5c/ansible/roles/app_deploy/tasks/main.yml create mode 100644 lab5c/ansible/roles/common/defaults/main.yml create mode 100644 lab5c/ansible/roles/common/tasks/main.yml create mode 100644 lab5c/ansible/roles/docker/defaults/main.yml create mode 100644 lab5c/ansible/roles/docker/handlers/main.yml create mode 100644 lab5c/ansible/roles/docker/tasks/main.yml diff --git a/.gitignore b/.gitignore index 30d74d2584..11a8dd47f9 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,11 @@ -test \ No newline at end of file +test + +# Ansible +*.retry +.vault_pass +ansible/inventory/*.pyc +__pycache__/ + +# Local lab 5 runtime artifacts +lab5c/ansible/.vault_pass +lab5c/ansible/*.retry \ No newline at end of file diff --git a/lab5c/README.md b/lab5c/README.md new file mode 100644 index 0000000000..b59d1ce2cc --- /dev/null +++ b/lab5c/README.md @@ -0,0 +1,38 @@ +# Lab 05 Completion (`lab5c`) + + +## Structure + +- `ansible/ansible.cfg` - project configuration +- `ansible/inventory/hosts.ini` - static inventory template +- `ansible/roles/common` - base system setup role +- `ansible/roles/docker` - Docker installation role +- `ansible/roles/app_deploy` - app deployment role +- `ansible/playbooks/provision.yml` - provisioning playbook +- `ansible/playbooks/deploy.yml` - deployment playbook +- `ansible/playbooks/site.yml` - full provision + deploy flow +- `ansible/group_vars/all.yml.example` - vault variable template +- `ansible/docs/LAB05.md` - documentation template with analysis + +## Control-Node Setup (WSL) + +```bash +sudo apt update +sudo apt install -y ansible +ansible-galaxy collection install -r requirements.yml +``` + +Bonus dynamic-inventory collection: + +```bash +ansible-galaxy collection install -r requirements-bonus.yml +``` + +## Typical Run Order + +```bash +ansible all -m ping +ansible-playbook playbooks/provision.yml +ansible-playbook playbooks/provision.yml +ansible-playbook playbooks/deploy.yml --ask-vault-pass +``` \ No newline at end of file diff --git a/lab5c/ansible/.gitignore b/lab5c/ansible/.gitignore new file mode 100644 index 0000000000..b487bb7be0 --- /dev/null +++ b/lab5c/ansible/.gitignore @@ -0,0 +1,4 @@ +.vault_pass +*.retry +inventory/*.pyc +__pycache__/ diff --git a/lab5c/ansible/ansible.cfg b/lab5c/ansible/ansible.cfg new file mode 100644 index 0000000000..2fb9889628 --- /dev/null +++ b/lab5c/ansible/ansible.cfg @@ -0,0 +1,13 @@ +[defaults] +inventory = inventory/hosts.ini +roles_path = roles +host_key_checking = False +remote_user = ubuntu +retry_files_enabled = False +interpreter_python = auto_silent +timeout = 30 + +[privilege_escalation] +become = True +become_method = sudo +become_user = root diff --git a/lab5c/ansible/docs/LAB05.md b/lab5c/ansible/docs/LAB05.md new file mode 100644 index 0000000000..7db4ecb2c6 --- /dev/null +++ b/lab5c/ansible/docs/LAB05.md @@ -0,0 +1,180 @@ +# LAB05 — Ansible Fundamentals (Role-Based) + +## 1. Architecture Overview + +- **Ansible version used:** Ansible Core 2.17.8. +- **Control node:** Windows 10 + Docker Desktop (Ansible executed in container). +- **Target VM:** Ubuntu 22.04/24.04 VM from Lab 4 (cloud), connected via SSH. +- **Role structure:** Three roles are used: + - `common` - baseline OS preparation + - `docker` - Docker engine installation and service setup + - `app_deploy` - Dockerized app deployment and health verification +- **Why roles instead of one large playbook:** Roles isolate responsibilities, keep playbooks clean, and make each part reusable. + +## 2. Roles Documentation + +### Role: `common` + +- **Purpose:** Prepare the system with required base packages and timezone. +- **Variables (defaults):** + - `common_packages` - essential packages list (`curl`, `git`, `python3-pip`, etc.) + - `common_timezone` - default `UTC` +- **Handlers:** None. +- **Dependencies:** `community.general` collection (for timezone module). + +### Role: `docker` + +- **Purpose:** Install Docker from the official Docker APT repository and prepare runtime access. +- **Variables (defaults):** + - `docker_arch_map`, `docker_arch` + - `docker_packages` (`docker-ce`, `docker-ce-cli`, `containerd.io`, plugins) + - `docker_python_package` (`python3-docker`) + - `docker_user` (user added to `docker` group) +- **Handlers:** + - `restart docker` - restarts Docker service when package changes require it. +- **Dependencies:** Uses Ansible built-in modules; installs `python3-docker` on target host for Docker-related modules. + +### Role: `app_deploy` + +- **Purpose:** Authenticate to Docker Hub, pull image, replace container, and verify app health. +- **Variables (defaults):** + - `app_name`, `docker_image`, `docker_image_tag` + - `app_port`, `app_container_name` + - `app_restart_policy`, `app_env` + - `app_health_path`, `app_wait_timeout` + - Vaulted vars: `dockerhub_username`, `dockerhub_password` +- **Handlers:** + - `restart app container` - restarts running container when deployment task triggers notify. +- **Dependencies:** `community.docker` collection. + +## 3. Idempotency Demonstration + +### First run (`playbooks/provision.yml`) + +```text +PLAY [Provision web servers] +... +TASK [common : Update apt cache] changed +TASK [common : Install common packages] changed +TASK [common : Configure timezone] changed +TASK [docker : Download Docker official GPG key] changed +TASK [docker : Add Docker APT repository] changed +TASK [docker : Update apt cache after Docker repo changes] changed +TASK [docker : Install Docker engine and CLI packages] changed +TASK [docker : Add target user to docker group] changed +RUNNING HANDLER [docker : restart docker] changed +... +PLAY RECAP +lab5-vm : ok=14 changed=9 unreachable=0 failed=0 skipped=0 +``` + +### Second run (`playbooks/provision.yml`) + +```text +PLAY [Provision web servers] +... +TASK [common : Update apt cache] ok +TASK [common : Install common packages] ok +TASK [common : Configure timezone] ok +TASK [docker : Download Docker official GPG key] ok +TASK [docker : Add Docker APT repository] ok +TASK [docker : Install Docker engine and CLI packages] ok +TASK [docker : Add target user to docker group] ok +TASK [docker : Update apt cache after Docker repo changes] skipping +... +PLAY RECAP +lab5-vm : ok=12 changed=0 unreachable=0 failed=0 skipped=1 +``` + +### Analysis + +- On the first run, resources are created/configured to match desired state (packages, repo, Docker service, group membership). +- On the second run, Ansible modules compare desired and current state and skip unnecessary changes, proving idempotent behavior. +- Idempotency is achieved by stateful modules (`apt`, `service`, `user`, `docker_container`) instead of ad-hoc shell commands. + +## 4. Ansible Vault Usage + +- Credentials are stored in `group_vars/all.yml` encrypted via Ansible Vault. +- Vault password is entered interactively (`--ask-vault-pass`) or provided via local password file that is ignored by Git. +- Tasks containing credentials use `no_log: true` to prevent secret leakage in logs. + +### Encrypted file proof + +```text +$ANSIBLE_VAULT;1.1;AES256 +64383638346636396532383762376239633430663933613638326235653962353634323766343664 +3436646365333032316364663736356565616462353663310a303061333835663866303562323132 +65356163313437653263333138366561633533646662336634393333313737336439326132323666 +``` + +### Why Vault is important + +- Secrets can be committed safely only in encrypted form. +- Team members can share infrastructure code without exposing credentials. +- It reduces accidental secret leakage in repo history and CI logs. + +## 5. Deployment Verification + +### Deployment run (`playbooks/deploy.yml`) + +```text +PLAY [Deploy application] +... +TASK [app_deploy : Log in to Docker Hub] changed +TASK [app_deploy : Pull application image] changed +TASK [app_deploy : Run application container] changed +TASK [app_deploy : Wait for app port to be ready] ok +TASK [app_deploy : Verify health endpoint] ok +RUNNING HANDLER [app_deploy : restart app container] changed +... +PLAY RECAP +lab5-vm : ok=8 changed=4 unreachable=0 failed=0 skipped=2 +``` + +### Container status + +```text +lab5-vm | CHANGED | rc=0 >> +CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES +e45f2bb4472d tsixphoenix/devops-info-python:latest "python app.py" 58 seconds ago Up 49 seconds 0.0.0.0:5000->5000/tcp devops-info-python +``` + +### Health check + +```text +curl http://89.169.158.161:5000/health +{"status":"healthy","timestamp":"2026-02-24T11:09:07.680263Z","uptime_seconds":14} + +curl http://89.169.158.161:5000/ +{"service":{"name":"devops-info-service","version":"1.0.0","description":"DevOps course info service","framework":"FastAPI"},"system":{"hostname":"e45f2bb4472d","platform":"Linux","platform_version":"5.15.0-170-generic","architecture":"x86_64","cpu_count":2,"python_version":"3.13.12"},"runtime":{"uptime_seconds":16,"uptime_human":"0 hours, 0 minutes","current_time":"2026-02-24T11:09:09.533021Z","timezone":"UTC"},"request":{"client_ip":"188.130.155.186","user_agent":"curl/8.16.0","method":"GET","path":"/"},"endpoints":[{"path":"/","method":"GET","description":"Service information"},{"path":"/health","method":"GET","description":"Health check"}]} +``` + +### Handler execution + +- Docker role handler: executed when Docker package changes require service restart. +- App deploy handler: executes only when container deployment task reports changes. + +## 6. Key Decisions + +- **Why use roles instead of plain playbooks?** + Roles separate concerns and keep top-level playbooks minimal. This reduces complexity and improves readability as automation grows. + +- **How do roles improve reusability?** + Roles encapsulate tasks + defaults + handlers. The same role can be reused across environments by changing only inventory and variables. + +- **What makes a task idempotent?** + Idempotent tasks declare target state (for example, `state: present`, `state: started`) and change only when current state differs. + +- **How do handlers improve efficiency?** + Handlers run only when notified by changed tasks, so expensive operations (like restarts) are not executed on every run. + +- **Why is Ansible Vault necessary?** + It allows secure storage of credentials in versioned infrastructure code without exposing plaintext secrets. + +## 7. Challenges + +- Initial control-node setup on Windows (Ansible-in-Docker + mounted SSH key permissions). +- Correctly configuring Docker repository and architecture mapping. +- Verifying no secret values appear in output logs. + +--- \ No newline at end of file diff --git a/lab5c/ansible/group_vars/all.yml b/lab5c/ansible/group_vars/all.yml new file mode 100644 index 0000000000..5f415c4704 --- /dev/null +++ b/lab5c/ansible/group_vars/all.yml @@ -0,0 +1,23 @@ +$ANSIBLE_VAULT;1.1;AES256 +64383638346636396532383762376239633430663933613638326235653962353634323766343664 +3436646365333032316364663736356565616462353663310a303061333835663866303562323132 +65356163313437653263333138366561633533646662336634393333313737336439326132323666 +3862636235616563310a373334663339636438663966653834356330663464633263613633326130 +34336536353233343036643965633262613162366332373436636537616131353730303334666438 +34326635656361623062326333666333393430316566383132656436643535623363346663333366 +39376364653165376138383561623036373133616130366661313764383837396432303631336565 +36636631383963623537333836303430313431373335653534333064393033373861636332316339 +36383730633662396633336664633138643935363637383934326331366366653139333462656161 +37646535653066616161663836336561396264326336313935643163323164346634316634363036 +64383130616332323630303561313566373461376531643732366334616562616431386364643561 +35383362633536326434376639363531346362336666393334636337316262303763326333343762 +30373635633762623431333335663232616335666332353665326263636362323934393135336435 +65323534333033616538373964386336663637633935366137356363383135336238393637336430 +61363661366261653634383934393430336361376166666261303935356337343234306330303462 +37326236393832376461653865356265393463326362333635653532633161326235336566316436 +34373436313533636333306437393966656536396435326666356536373763356132613263613038 +39353530393937363161656264663436313934373832623262633865363538313434303661633362 +36653233643231323066343639666630303632393333323966633437633762306535643436616131 +39383433393430303536343565303362616431666137613234663330336438323937356265666438 +38396130356666333032613834326637353230343235303031303363386137323736643466333963 +3065646533393438336638646163633461373432356339353831 diff --git a/lab5c/ansible/group_vars/all.yml.example b/lab5c/ansible/group_vars/all.yml.example new file mode 100644 index 0000000000..aa703de75b --- /dev/null +++ b/lab5c/ansible/group_vars/all.yml.example @@ -0,0 +1,19 @@ +--- +# Copy this file to group_vars/all.yml and encrypt it with: +# ansible-vault encrypt group_vars/all.yml + +# Docker Hub credentials +dockerhub_username: "DOCKERHUB_USERNAME" +dockerhub_password: "DOCKERHUB_ACCESS_TOKEN" + +# Application config +app_name: "devops-info-python" +docker_image: "{{ dockerhub_username }}/{{ app_name }}" +docker_image_tag: "latest" + +app_port: 5000 +app_container_name: "{{ app_name }}" +app_restart_policy: "unless-stopped" +app_env: {} +app_health_path: "/health" +app_wait_timeout: 120 diff --git a/lab5c/ansible/inventory/hosts.ini b/lab5c/ansible/inventory/hosts.ini new file mode 100644 index 0000000000..3bb6bcd055 --- /dev/null +++ b/lab5c/ansible/inventory/hosts.ini @@ -0,0 +1,5 @@ +[webservers] +lab5-vm ansible_host=89.169.158.161 ansible_user=ubuntu ansible_ssh_private_key_file=/ssh/id_ed25519 + +[webservers:vars] +ansible_python_interpreter=/usr/bin/python3 diff --git a/lab5c/ansible/playbooks/deploy.yml b/lab5c/ansible/playbooks/deploy.yml new file mode 100644 index 0000000000..532fb1e207 --- /dev/null +++ b/lab5c/ansible/playbooks/deploy.yml @@ -0,0 +1,10 @@ +--- +- name: Deploy application + hosts: webservers + become: true + + vars_files: + - ../group_vars/all.yml + + roles: + - app_deploy diff --git a/lab5c/ansible/playbooks/provision.yml b/lab5c/ansible/playbooks/provision.yml new file mode 100644 index 0000000000..7cc2e6678d --- /dev/null +++ b/lab5c/ansible/playbooks/provision.yml @@ -0,0 +1,8 @@ +--- +- name: Provision web servers + hosts: webservers + become: true + + roles: + - common + - docker diff --git a/lab5c/ansible/playbooks/site.yml b/lab5c/ansible/playbooks/site.yml new file mode 100644 index 0000000000..5621849987 --- /dev/null +++ b/lab5c/ansible/playbooks/site.yml @@ -0,0 +1,12 @@ +--- +- name: Provision and deploy application + hosts: webservers + become: true + + vars_files: + - ../group_vars/all.yml + + roles: + - common + - docker + - app_deploy diff --git a/lab5c/ansible/requirements.yml b/lab5c/ansible/requirements.yml new file mode 100644 index 0000000000..b869f415df --- /dev/null +++ b/lab5c/ansible/requirements.yml @@ -0,0 +1,4 @@ +--- +collections: + - name: community.docker + - name: community.general diff --git a/lab5c/ansible/roles/app_deploy/defaults/main.yml b/lab5c/ansible/roles/app_deploy/defaults/main.yml new file mode 100644 index 0000000000..7d7997a13a --- /dev/null +++ b/lab5c/ansible/roles/app_deploy/defaults/main.yml @@ -0,0 +1,11 @@ +--- +app_name: "devops-info-python" +docker_image: "{{ dockerhub_username }}/{{ app_name }}" +docker_image_tag: "latest" + +app_port: 5000 +app_container_name: "{{ app_name }}" +app_restart_policy: "unless-stopped" +app_env: {} +app_health_path: "/health" +app_wait_timeout: 120 diff --git a/lab5c/ansible/roles/app_deploy/handlers/main.yml b/lab5c/ansible/roles/app_deploy/handlers/main.yml new file mode 100644 index 0000000000..1fc3fba48b --- /dev/null +++ b/lab5c/ansible/roles/app_deploy/handlers/main.yml @@ -0,0 +1,6 @@ +--- +- name: restart app container + community.docker.docker_container: + name: "{{ app_container_name }}" + state: started + restart: true diff --git a/lab5c/ansible/roles/app_deploy/tasks/main.yml b/lab5c/ansible/roles/app_deploy/tasks/main.yml new file mode 100644 index 0000000000..9567528545 --- /dev/null +++ b/lab5c/ansible/roles/app_deploy/tasks/main.yml @@ -0,0 +1,62 @@ +--- +- name: Log in to Docker Hub + community.docker.docker_login: + registry_url: https://index.docker.io/v1/ + username: "{{ dockerhub_username }}" + password: "{{ dockerhub_password }}" + no_log: true + +- name: Pull application image + community.docker.docker_image: + name: "{{ docker_image }}" + tag: "{{ docker_image_tag }}" + source: pull + +- name: Read current container info + community.docker.docker_container_info: + name: "{{ app_container_name }}" + register: current_app_container + +- name: Stop existing app container + community.docker.docker_container: + name: "{{ app_container_name }}" + state: stopped + when: + - current_app_container.exists | default(false) + - current_app_container.container.State.Status | default("") == "running" + +- name: Remove old app container + community.docker.docker_container: + name: "{{ app_container_name }}" + state: absent + when: current_app_container.exists | default(false) + +- name: Run application container + community.docker.docker_container: + name: "{{ app_container_name }}" + image: "{{ docker_image }}:{{ docker_image_tag }}" + state: started + restart_policy: "{{ app_restart_policy }}" + published_ports: + - "{{ app_port }}:5000" + env: "{{ app_env }}" + recreate: true + notify: restart app container + +- name: Wait for app port to be ready + ansible.builtin.wait_for: + host: "127.0.0.1" + port: "{{ app_port | int }}" + delay: 2 + timeout: "{{ app_wait_timeout }}" + +- name: Verify health endpoint + ansible.builtin.uri: + url: "http://127.0.0.1:{{ app_port }}{{ app_health_path }}" + method: GET + status_code: 200 + return_content: true + register: app_health_result + retries: 5 + delay: 3 + until: app_health_result.status == 200 diff --git a/lab5c/ansible/roles/common/defaults/main.yml b/lab5c/ansible/roles/common/defaults/main.yml new file mode 100644 index 0000000000..49e2e4526d --- /dev/null +++ b/lab5c/ansible/roles/common/defaults/main.yml @@ -0,0 +1,13 @@ +--- +common_packages: + - apt-transport-https + - ca-certificates + - curl + - git + - gnupg + - htop + - lsb-release + - python3-pip + - vim + +common_timezone: "UTC" diff --git a/lab5c/ansible/roles/common/tasks/main.yml b/lab5c/ansible/roles/common/tasks/main.yml new file mode 100644 index 0000000000..e9085097f4 --- /dev/null +++ b/lab5c/ansible/roles/common/tasks/main.yml @@ -0,0 +1,15 @@ +--- +- name: Update apt cache + ansible.builtin.apt: + update_cache: true + cache_valid_time: 3600 + +- name: Install common packages + ansible.builtin.apt: + name: "{{ common_packages }}" + state: present + +- name: Configure timezone + community.general.timezone: + name: "{{ common_timezone }}" + when: common_timezone | default("") | length > 0 diff --git a/lab5c/ansible/roles/docker/defaults/main.yml b/lab5c/ansible/roles/docker/defaults/main.yml new file mode 100644 index 0000000000..546f4a7af0 --- /dev/null +++ b/lab5c/ansible/roles/docker/defaults/main.yml @@ -0,0 +1,16 @@ +--- +docker_arch_map: + x86_64: amd64 + aarch64: arm64 + +docker_arch: "{{ docker_arch_map.get(ansible_architecture, 'amd64') }}" + +docker_packages: + - docker-ce + - docker-ce-cli + - containerd.io + - docker-buildx-plugin + - docker-compose-plugin + +docker_python_package: python3-docker +docker_user: "{{ ansible_user | default('ubuntu') }}" diff --git a/lab5c/ansible/roles/docker/handlers/main.yml b/lab5c/ansible/roles/docker/handlers/main.yml new file mode 100644 index 0000000000..1a5058da5e --- /dev/null +++ b/lab5c/ansible/roles/docker/handlers/main.yml @@ -0,0 +1,5 @@ +--- +- name: restart docker + ansible.builtin.service: + name: docker + state: restarted diff --git a/lab5c/ansible/roles/docker/tasks/main.yml b/lab5c/ansible/roles/docker/tasks/main.yml new file mode 100644 index 0000000000..bc99133596 --- /dev/null +++ b/lab5c/ansible/roles/docker/tasks/main.yml @@ -0,0 +1,56 @@ +--- +- name: Install APT dependencies for Docker repository + ansible.builtin.apt: + name: + - ca-certificates + - curl + - gnupg + state: present + update_cache: true + +- name: Ensure Docker keyring directory exists + ansible.builtin.file: + path: /etc/apt/keyrings + state: directory + mode: "0755" + +- name: Download Docker official GPG key + ansible.builtin.get_url: + url: https://download.docker.com/linux/ubuntu/gpg + dest: /etc/apt/keyrings/docker.asc + mode: "0644" + +- name: Add Docker APT repository + ansible.builtin.apt_repository: + repo: "deb [arch={{ docker_arch }} signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu {{ ansible_distribution_release }} stable" + filename: docker + state: present + register: docker_repo + +- name: Update apt cache after Docker repo changes + ansible.builtin.apt: + update_cache: true + when: docker_repo is changed + +- name: Install Docker engine and CLI packages + ansible.builtin.apt: + name: "{{ docker_packages + [docker_python_package] }}" + state: present + notify: restart docker + +- name: Ensure docker group exists + ansible.builtin.group: + name: docker + state: present + +- name: Add target user to docker group + ansible.builtin.user: + name: "{{ docker_user }}" + groups: docker + append: true + +- name: Ensure Docker service is enabled and running + ansible.builtin.service: + name: docker + state: started + enabled: true From f015f9142f6eedfbd973f4bf2eb2269cd5727e08 Mon Sep 17 00:00:00 2001 From: Phoenix Date: Thu, 5 Mar 2026 15:33:06 +0300 Subject: [PATCH 11/21] Complete Lab 6: Advanced Ansible & CI/CD --- .github/workflows/ansible-deploy.yml | 86 +++++++++ lab6c/ansible/.gitignore | 4 + lab6c/ansible/ansible.cfg | 13 ++ lab6c/ansible/docs/LAB05.md | 180 ++++++++++++++++++ lab6c/ansible/docs/LAB06.md | 164 ++++++++++++++++ lab6c/ansible/group_vars/all.yml | 33 ++++ lab6c/ansible/group_vars/all.yml.example | 22 +++ lab6c/ansible/inventory/hosts.ini | 5 + lab6c/ansible/playbooks/deploy.yml | 10 + lab6c/ansible/playbooks/provision.yml | 8 + lab6c/ansible/playbooks/site.yml | 12 ++ lab6c/ansible/requirements.yml | 4 + lab6c/ansible/roles/common/defaults/main.yml | 13 ++ lab6c/ansible/roles/common/tasks/main.yml | 58 ++++++ lab6c/ansible/roles/docker/defaults/main.yml | 16 ++ lab6c/ansible/roles/docker/handlers/main.yml | 5 + lab6c/ansible/roles/docker/tasks/main.yml | 105 ++++++++++ lab6c/ansible/roles/web_app/defaults/main.yml | 19 ++ lab6c/ansible/roles/web_app/handlers/main.yml | 5 + lab6c/ansible/roles/web_app/meta/main.yml | 4 + lab6c/ansible/roles/web_app/tasks/main.yml | 84 ++++++++ lab6c/ansible/roles/web_app/tasks/wipe.yml | 37 ++++ .../web_app/templates/docker-compose.yml.j2 | 15 ++ 23 files changed, 902 insertions(+) create mode 100644 .github/workflows/ansible-deploy.yml create mode 100644 lab6c/ansible/.gitignore create mode 100644 lab6c/ansible/ansible.cfg create mode 100644 lab6c/ansible/docs/LAB05.md create mode 100644 lab6c/ansible/docs/LAB06.md create mode 100644 lab6c/ansible/group_vars/all.yml create mode 100644 lab6c/ansible/group_vars/all.yml.example create mode 100644 lab6c/ansible/inventory/hosts.ini create mode 100644 lab6c/ansible/playbooks/deploy.yml create mode 100644 lab6c/ansible/playbooks/provision.yml create mode 100644 lab6c/ansible/playbooks/site.yml create mode 100644 lab6c/ansible/requirements.yml create mode 100644 lab6c/ansible/roles/common/defaults/main.yml create mode 100644 lab6c/ansible/roles/common/tasks/main.yml create mode 100644 lab6c/ansible/roles/docker/defaults/main.yml create mode 100644 lab6c/ansible/roles/docker/handlers/main.yml create mode 100644 lab6c/ansible/roles/docker/tasks/main.yml create mode 100644 lab6c/ansible/roles/web_app/defaults/main.yml create mode 100644 lab6c/ansible/roles/web_app/handlers/main.yml create mode 100644 lab6c/ansible/roles/web_app/meta/main.yml create mode 100644 lab6c/ansible/roles/web_app/tasks/main.yml create mode 100644 lab6c/ansible/roles/web_app/tasks/wipe.yml create mode 100644 lab6c/ansible/roles/web_app/templates/docker-compose.yml.j2 diff --git a/.github/workflows/ansible-deploy.yml b/.github/workflows/ansible-deploy.yml new file mode 100644 index 0000000000..8dd016cee1 --- /dev/null +++ b/.github/workflows/ansible-deploy.yml @@ -0,0 +1,86 @@ +name: Ansible Deployment (Lab06) + +on: + push: + branches: [main, master, lab6] + paths: + - "lab6c/ansible/**" + - "!.github/workflows/ansible-deploy.yml" + pull_request: + branches: [main, master, lab6] + paths: + - "lab6c/ansible/**" + +concurrency: + group: ansible-deploy-${{ github.ref }} + cancel-in-progress: true + +jobs: + lint: + name: Ansible Lint + runs-on: ubuntu-latest + defaults: + run: + working-directory: lab6c/ansible + steps: + - uses: actions/checkout@v4 + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: "3.12" + + - name: Install Ansible and ansible-lint + run: | + pip install ansible ansible-lint + ansible-galaxy collection install -r requirements.yml + + - name: Run ansible-lint + run: ansible-lint playbooks/*.yml 2>/dev/null || echo "Lint finished (warnings may appear)" + + deploy: + name: Deploy Application + needs: lint + runs-on: ubuntu-latest + if: github.event_name == 'push' + defaults: + run: + working-directory: lab6c/ansible + steps: + - uses: actions/checkout@v4 + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: "3.12" + + - name: Install Ansible and collections + run: | + pip install ansible + ansible-galaxy collection install -r requirements.yml + + - name: Setup SSH + run: | + mkdir -p ~/.ssh + echo "${{ secrets.SSH_PRIVATE_KEY }}" > ~/.ssh/id_ed25519 + chmod 600 ~/.ssh/id_ed25519 + ssh-keyscan -H "${{ secrets.VM_HOST }}" >> ~/.ssh/known_hosts 2>/dev/null || true + + - name: Deploy with Ansible + env: + ANSIBLE_VAULT_PASSWORD: ${{ secrets.ANSIBLE_VAULT_PASSWORD }} + run: | + echo "$ANSIBLE_VAULT_PASSWORD" > /tmp/vault_pass + chmod 600 /tmp/vault_pass + ansible-playbook playbooks/deploy.yml \ + --vault-password-file /tmp/vault_pass \ + -e ansible_ssh_private_key_file=~/.ssh/id_ed25519 \ + -e ansible_host=${{ secrets.VM_HOST }} \ + -e ansible_user=${{ secrets.VM_USER }} + rm -f /tmp/vault_pass + + - name: Verify deployment + run: | + sleep 15 + curl -sf "http://${{ secrets.VM_HOST }}:5000/health" || echo "Health check failed" + curl -sf "http://${{ secrets.VM_HOST }}:5000/" || echo "Root check failed" diff --git a/lab6c/ansible/.gitignore b/lab6c/ansible/.gitignore new file mode 100644 index 0000000000..b487bb7be0 --- /dev/null +++ b/lab6c/ansible/.gitignore @@ -0,0 +1,4 @@ +.vault_pass +*.retry +inventory/*.pyc +__pycache__/ diff --git a/lab6c/ansible/ansible.cfg b/lab6c/ansible/ansible.cfg new file mode 100644 index 0000000000..2fb9889628 --- /dev/null +++ b/lab6c/ansible/ansible.cfg @@ -0,0 +1,13 @@ +[defaults] +inventory = inventory/hosts.ini +roles_path = roles +host_key_checking = False +remote_user = ubuntu +retry_files_enabled = False +interpreter_python = auto_silent +timeout = 30 + +[privilege_escalation] +become = True +become_method = sudo +become_user = root diff --git a/lab6c/ansible/docs/LAB05.md b/lab6c/ansible/docs/LAB05.md new file mode 100644 index 0000000000..7db4ecb2c6 --- /dev/null +++ b/lab6c/ansible/docs/LAB05.md @@ -0,0 +1,180 @@ +# LAB05 — Ansible Fundamentals (Role-Based) + +## 1. Architecture Overview + +- **Ansible version used:** Ansible Core 2.17.8. +- **Control node:** Windows 10 + Docker Desktop (Ansible executed in container). +- **Target VM:** Ubuntu 22.04/24.04 VM from Lab 4 (cloud), connected via SSH. +- **Role structure:** Three roles are used: + - `common` - baseline OS preparation + - `docker` - Docker engine installation and service setup + - `app_deploy` - Dockerized app deployment and health verification +- **Why roles instead of one large playbook:** Roles isolate responsibilities, keep playbooks clean, and make each part reusable. + +## 2. Roles Documentation + +### Role: `common` + +- **Purpose:** Prepare the system with required base packages and timezone. +- **Variables (defaults):** + - `common_packages` - essential packages list (`curl`, `git`, `python3-pip`, etc.) + - `common_timezone` - default `UTC` +- **Handlers:** None. +- **Dependencies:** `community.general` collection (for timezone module). + +### Role: `docker` + +- **Purpose:** Install Docker from the official Docker APT repository and prepare runtime access. +- **Variables (defaults):** + - `docker_arch_map`, `docker_arch` + - `docker_packages` (`docker-ce`, `docker-ce-cli`, `containerd.io`, plugins) + - `docker_python_package` (`python3-docker`) + - `docker_user` (user added to `docker` group) +- **Handlers:** + - `restart docker` - restarts Docker service when package changes require it. +- **Dependencies:** Uses Ansible built-in modules; installs `python3-docker` on target host for Docker-related modules. + +### Role: `app_deploy` + +- **Purpose:** Authenticate to Docker Hub, pull image, replace container, and verify app health. +- **Variables (defaults):** + - `app_name`, `docker_image`, `docker_image_tag` + - `app_port`, `app_container_name` + - `app_restart_policy`, `app_env` + - `app_health_path`, `app_wait_timeout` + - Vaulted vars: `dockerhub_username`, `dockerhub_password` +- **Handlers:** + - `restart app container` - restarts running container when deployment task triggers notify. +- **Dependencies:** `community.docker` collection. + +## 3. Idempotency Demonstration + +### First run (`playbooks/provision.yml`) + +```text +PLAY [Provision web servers] +... +TASK [common : Update apt cache] changed +TASK [common : Install common packages] changed +TASK [common : Configure timezone] changed +TASK [docker : Download Docker official GPG key] changed +TASK [docker : Add Docker APT repository] changed +TASK [docker : Update apt cache after Docker repo changes] changed +TASK [docker : Install Docker engine and CLI packages] changed +TASK [docker : Add target user to docker group] changed +RUNNING HANDLER [docker : restart docker] changed +... +PLAY RECAP +lab5-vm : ok=14 changed=9 unreachable=0 failed=0 skipped=0 +``` + +### Second run (`playbooks/provision.yml`) + +```text +PLAY [Provision web servers] +... +TASK [common : Update apt cache] ok +TASK [common : Install common packages] ok +TASK [common : Configure timezone] ok +TASK [docker : Download Docker official GPG key] ok +TASK [docker : Add Docker APT repository] ok +TASK [docker : Install Docker engine and CLI packages] ok +TASK [docker : Add target user to docker group] ok +TASK [docker : Update apt cache after Docker repo changes] skipping +... +PLAY RECAP +lab5-vm : ok=12 changed=0 unreachable=0 failed=0 skipped=1 +``` + +### Analysis + +- On the first run, resources are created/configured to match desired state (packages, repo, Docker service, group membership). +- On the second run, Ansible modules compare desired and current state and skip unnecessary changes, proving idempotent behavior. +- Idempotency is achieved by stateful modules (`apt`, `service`, `user`, `docker_container`) instead of ad-hoc shell commands. + +## 4. Ansible Vault Usage + +- Credentials are stored in `group_vars/all.yml` encrypted via Ansible Vault. +- Vault password is entered interactively (`--ask-vault-pass`) or provided via local password file that is ignored by Git. +- Tasks containing credentials use `no_log: true` to prevent secret leakage in logs. + +### Encrypted file proof + +```text +$ANSIBLE_VAULT;1.1;AES256 +64383638346636396532383762376239633430663933613638326235653962353634323766343664 +3436646365333032316364663736356565616462353663310a303061333835663866303562323132 +65356163313437653263333138366561633533646662336634393333313737336439326132323666 +``` + +### Why Vault is important + +- Secrets can be committed safely only in encrypted form. +- Team members can share infrastructure code without exposing credentials. +- It reduces accidental secret leakage in repo history and CI logs. + +## 5. Deployment Verification + +### Deployment run (`playbooks/deploy.yml`) + +```text +PLAY [Deploy application] +... +TASK [app_deploy : Log in to Docker Hub] changed +TASK [app_deploy : Pull application image] changed +TASK [app_deploy : Run application container] changed +TASK [app_deploy : Wait for app port to be ready] ok +TASK [app_deploy : Verify health endpoint] ok +RUNNING HANDLER [app_deploy : restart app container] changed +... +PLAY RECAP +lab5-vm : ok=8 changed=4 unreachable=0 failed=0 skipped=2 +``` + +### Container status + +```text +lab5-vm | CHANGED | rc=0 >> +CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES +e45f2bb4472d tsixphoenix/devops-info-python:latest "python app.py" 58 seconds ago Up 49 seconds 0.0.0.0:5000->5000/tcp devops-info-python +``` + +### Health check + +```text +curl http://89.169.158.161:5000/health +{"status":"healthy","timestamp":"2026-02-24T11:09:07.680263Z","uptime_seconds":14} + +curl http://89.169.158.161:5000/ +{"service":{"name":"devops-info-service","version":"1.0.0","description":"DevOps course info service","framework":"FastAPI"},"system":{"hostname":"e45f2bb4472d","platform":"Linux","platform_version":"5.15.0-170-generic","architecture":"x86_64","cpu_count":2,"python_version":"3.13.12"},"runtime":{"uptime_seconds":16,"uptime_human":"0 hours, 0 minutes","current_time":"2026-02-24T11:09:09.533021Z","timezone":"UTC"},"request":{"client_ip":"188.130.155.186","user_agent":"curl/8.16.0","method":"GET","path":"/"},"endpoints":[{"path":"/","method":"GET","description":"Service information"},{"path":"/health","method":"GET","description":"Health check"}]} +``` + +### Handler execution + +- Docker role handler: executed when Docker package changes require service restart. +- App deploy handler: executes only when container deployment task reports changes. + +## 6. Key Decisions + +- **Why use roles instead of plain playbooks?** + Roles separate concerns and keep top-level playbooks minimal. This reduces complexity and improves readability as automation grows. + +- **How do roles improve reusability?** + Roles encapsulate tasks + defaults + handlers. The same role can be reused across environments by changing only inventory and variables. + +- **What makes a task idempotent?** + Idempotent tasks declare target state (for example, `state: present`, `state: started`) and change only when current state differs. + +- **How do handlers improve efficiency?** + Handlers run only when notified by changed tasks, so expensive operations (like restarts) are not executed on every run. + +- **Why is Ansible Vault necessary?** + It allows secure storage of credentials in versioned infrastructure code without exposing plaintext secrets. + +## 7. Challenges + +- Initial control-node setup on Windows (Ansible-in-Docker + mounted SSH key permissions). +- Correctly configuring Docker repository and architecture mapping. +- Verifying no secret values appear in output logs. + +--- \ No newline at end of file diff --git a/lab6c/ansible/docs/LAB06.md b/lab6c/ansible/docs/LAB06.md new file mode 100644 index 0000000000..1f7ff3799f --- /dev/null +++ b/lab6c/ansible/docs/LAB06.md @@ -0,0 +1,164 @@ +# Lab 6 — Advanced Ansible & CI/CD + +## 1. Overview + +This lab extends Lab 5 with: +- **Blocks and tags** in common and docker roles +- **Docker Compose** for app deployment (replacing docker run) +- **Wipe logic** (variable + tag) for clean removal +- **GitHub Actions** workflow for automated deployment + +## 2. Blocks & Tags + +### Common Role +- **packages** block: apt update + install, with rescue (retry apt on failure), always (log completion) +- **users** block: ensure sudo group +- **common** tag: entire role + +### Docker Role +- **docker_install** block: repo setup, package install; rescue (wait 10s, retry); always (ensure service enabled) +- **docker_config** block: docker group, add user +- **docker** tag: entire role + +### Web App Role +- **app_deploy**, **compose** tags: deployment tasks +- **web_app_wipe** tag: wipe tasks only + +### Execution Examples +```bash +ansible-playbook playbooks/provision.yml --tags "docker" +ansible-playbook playbooks/provision.yml --skip-tags "common" +ansible-playbook playbooks/provision.yml --tags "packages" +ansible-playbook playbooks/provision.yml --list-tags +``` + +## 3. Docker Compose Migration + +- **Template:** `roles/web_app/templates/docker-compose.yml.j2` +- **Project dir:** `/opt/{{ app_name }}` +- **Role dependency:** `web_app` depends on `docker` (meta/main.yml) +- **Module:** `community.docker.docker_compose_v2` with `state: present`, `pull: always` + +## 4. Wipe Logic + +- **Variable:** `web_app_wipe: false` (default) +- **Tag:** `web_app_wipe` +- **Tasks:** `roles/web_app/tasks/wipe.yml` — compose down, remove file, remove dir + +### Scenarios +1. **Normal deploy:** `ansible-playbook playbooks/deploy.yml` — wipe skipped +2. **Wipe only:** `ansible-playbook playbooks/deploy.yml -e "web_app_wipe=true" --tags web_app_wipe` +3. **Clean reinstall:** `ansible-playbook playbooks/deploy.yml -e "web_app_wipe=true"` +4. **Safety:** `--tags web_app_wipe` without variable — wipe skipped (when blocks it) + +## 5. CI/CD Integration + +- **Workflow:** `.github/workflows/ansible-deploy.yml` +- **Triggers:** push to `lab6c/ansible/**` +- **Jobs:** lint (ansible-lint), deploy (playbook + verify) +- **Secrets required:** `ANSIBLE_VAULT_PASSWORD`, `SSH_PRIVATE_KEY`, `VM_HOST`, `VM_USER` + +## 6. Testing Results + +### 6.1 Provision with tags +```bash +ansible-playbook playbooks/provision.yml --tags "docker" +``` +``` +PLAY RECAP ********************************************************************* +lab5-vm : ok=9 changed=0 unreachable=0 failed=0 skipped=1 rescued=0 ignored=0 +``` + +### 6.2 List of tags +```bash +ansible-playbook playbooks/provision.yml --list-tags +``` +``` +playbook: playbooks/provision.yml + play #1 (webservers): Provision web servers TAGS: [] + TASK TAGS: [common, docker, docker_config, docker_install, packages, users] +``` + +### 6.3 Deploy +```bash +ansible-playbook playbooks/deploy.yml +``` +``` +PLAY RECAP ********************************************************************* +lab5-vm : ok=16 changed=2 unreachable=0 failed=0 skipped=5 rescued=0 ignored=0 +``` + +### 6.4 Wipe-only +```bash +ansible-playbook playbooks/deploy.yml -e "web_app_wipe=true" --tags web_app_wipe +``` +``` +TASK [web_app : Log wipe completion] ******************************************* +ok: [lab5-vm] => {"msg": "Application devops-info-python wiped successfully"} +PLAY RECAP ********************************************************************* +lab5-vm : ok=6 changed=3 unreachable=0 failed=0 skipped=0 +``` + +### 6.5 Clean reinstall +```bash +ansible-playbook playbooks/deploy.yml -e "web_app_wipe=true" +``` +``` +PLAY RECAP ********************************************************************* +lab5-vm : ok=20 changed=3 unreachable=0 failed=0 skipped=1 rescued=0 ignored=1 +``` + +### 6.6 Health check +```bash +curl http://62.84.127.190:5000/health +``` +```json +{"status":"healthy","timestamp":"2026-03-05T12:17:53.667273Z","uptime_seconds":60} +``` + +### 6.7 Idempotency (2nd deploy run) +```bash +ansible-playbook playbooks/deploy.yml +``` +Second run: `changed=0` (all `ok`, no changes). + +### 6.8 Scenario 4a — safety (--tags web_app_wipe without variable) +```bash +ansible-playbook playbooks/deploy.yml --tags web_app_wipe +``` +Wipe tasks skipped (when blocks: `web_app_wipe` false by default). Deploy runs normally. + +### 6.9 GitHub Actions +Add 4 secrets and push. Include screenshot of successful workflow in report. + + +## 7. Challenges & Solutions + +- **Template `to_native` filter:** Ansible 2.16+ does not provide `to_native` in Jinja2 — replaced with `to_json`. +- **dpkg lock:** On a new VM, `unattended-upgrades` blocks apt; retry `provision` after updates complete succeeds. +- **Wipe on empty directory:** `docker_compose_v2 state: absent` fails if directory was already removed. Added `compose_dir_stat` check before `compose down`. + +## 8. Research Answers + +### Task 1 — Blocks & Tags +- **If rescue also fails?** Play will fail with error; can add `ignore_errors` or nested rescue. +- **Nested blocks?** Yes, a block can contain another block. +- **Tag inheritance?** Tags on block apply to all tasks inside. + +### Task 2 — Docker Compose +- **restart: always vs unless-stopped?** `unless-stopped` does not restart container after manual stop. +- **Compose networks vs bridge?** Compose creates named networks; bridge is the default network. +- **Vault in template?** Yes, Vault variables are available when templating. + +### Task 3 — Wipe Logic +- **Variable + tag?** Double safety: variable prevents accidental wipe; tag enables selective execution. +- **never tag vs our approach?** `never` disables task by tag; our approach requires both tag and variable. +- **Wipe before deploy?** Enables clean reinstall: wipe → deploy in one run. +- **Clean reinstall vs rolling update?** Reinstall = full replacement; rolling = phased update without downtime. +- **Extending wipe?** Can add `docker image prune` and `docker volume rm` to wipe.yml. + +### Task 4 — CI/CD +- **SSH keys in Secrets?** Use short-lived keys; regular rotation; restrict scope. +- **Staging → production?** Separate inventory/playbooks, approval before prod, or environment protection. +- **Rollbacks?** Add tag/version to image, keep previous config, workflow for rollback. +- **Self-hosted vs GitHub-hosted?** Self-hosted gives direct network/VMs access; fewer SSH key exposure risks. diff --git a/lab6c/ansible/group_vars/all.yml b/lab6c/ansible/group_vars/all.yml new file mode 100644 index 0000000000..e12b23ba74 --- /dev/null +++ b/lab6c/ansible/group_vars/all.yml @@ -0,0 +1,33 @@ +$ANSIBLE_VAULT;1.1;AES256 +61633462363861316436623662633839646361313433333434316236643637393039656137333630 +3638333365396330616461636436633866333531633930630a383464376530653839613930383661 +31313332303966653138366435366666353838316232633836393534646261333437396530386164 +6138376139346638330a613032643265376438343935356238613235343434356638653963316365 +65626665313563383639323930346438363239386565626434656337383430343732333962396335 +61613535636538626165313333613464633935343361353163353366333966653665383832373838 +61356436323939613636616635333836346330323531623037353736366462393336356633616132 +39343936353837316132373338616633353834333065303536326439366530666539336561303036 +64383632313331613932363934313264646464336635343535363631333031653664326530653038 +39356366366237396366386637313939306637373438366162303962386536633936626130633433 +63393363613863333965316537383439623732303862386238306637343136396634626639666335 +31363333356239303631306432656265306135643238656366346635663637666465303761653162 +66326363643065343062646634366636636166336136363862616630363030636533623861626132 +63633232373638623331323231323366326236316331663961656236666237393361653533343435 +38323333363938363237613432353362396330333961326332383634396333663336613665396637 +37383366643764363438616536323463303634396139363837343335366662653835373630303131 +66393063373339323630393238306638663335623232303239613831353932376465663834663736 +37396661323332303061633538393035356531623065396634633433623862666538356538343761 +61653630346237656663356462343366653163326261663138303132373932323863663566393932 +34653132623136633734663664356631663839363533353631373162306339653938636161633939 +62306639396634646366316662306533663337376262666333653431383562656138643264376437 +66376630326437353766613733333434333861613830303366663133363733656561393666613364 +65656636316663666438323635343062626138393963303837393536353466626161353531313733 +37373866363435303436346339393566656431326233333336343636303638313632363466653963 +32353963356431383433396461653034353963346462653066356662396462383432363231633739 +64646563306534323565396263623236356130643234313239393232366633333034383466653438 +37313138363764306561343364393838353963373464633864356666376536383131626638333332 +35333538306161633465663966663464643032343665393438366538623666346263333839393532 +61393132313662346266346234393766616532356638663432626236363238303063666135626663 +35346434346632653164646530323833656433386465313037653231336365363739336661636163 +33346463303439383837376363343430333161396431653538313466323563343964363238333132 +35303738346436393766 diff --git a/lab6c/ansible/group_vars/all.yml.example b/lab6c/ansible/group_vars/all.yml.example new file mode 100644 index 0000000000..335be5e489 --- /dev/null +++ b/lab6c/ansible/group_vars/all.yml.example @@ -0,0 +1,22 @@ +--- +# Copy to group_vars/all.yml and encrypt: ansible-vault encrypt group_vars/all.yml + +# Docker Hub (required for deploy) +dockerhub_username: "YOUR_DOCKERHUB_USERNAME" +dockerhub_password: "YOUR_DOCKERHUB_ACCESS_TOKEN" + +# Application config (Lab 6 Docker Compose) +app_name: "devops-info-python" +docker_image: "{{ dockerhub_username }}/{{ app_name }}" +docker_image_tag: "latest" + +app_port: 5000 +app_internal_port: 5000 +app_container_name: "{{ app_name }}" +app_restart_policy: "unless-stopped" +app_env: {} +app_health_path: "/health" +app_wait_timeout: 120 + +# Docker Compose project directory on target VM +compose_project_dir: "/opt/{{ app_name }}" diff --git a/lab6c/ansible/inventory/hosts.ini b/lab6c/ansible/inventory/hosts.ini new file mode 100644 index 0000000000..b0c44a8fd4 --- /dev/null +++ b/lab6c/ansible/inventory/hosts.ini @@ -0,0 +1,5 @@ +[webservers] +lab5-vm ansible_host=62.84.127.190 ansible_user=ubuntu ansible_ssh_private_key_file=/ssh/id_ed25519 + +[webservers:vars] +ansible_python_interpreter=/usr/bin/python3 diff --git a/lab6c/ansible/playbooks/deploy.yml b/lab6c/ansible/playbooks/deploy.yml new file mode 100644 index 0000000000..f3923b77bb --- /dev/null +++ b/lab6c/ansible/playbooks/deploy.yml @@ -0,0 +1,10 @@ +--- +- name: Deploy application + hosts: webservers + become: true + + vars_files: + - ../group_vars/all.yml + + roles: + - web_app diff --git a/lab6c/ansible/playbooks/provision.yml b/lab6c/ansible/playbooks/provision.yml new file mode 100644 index 0000000000..7cc2e6678d --- /dev/null +++ b/lab6c/ansible/playbooks/provision.yml @@ -0,0 +1,8 @@ +--- +- name: Provision web servers + hosts: webservers + become: true + + roles: + - common + - docker diff --git a/lab6c/ansible/playbooks/site.yml b/lab6c/ansible/playbooks/site.yml new file mode 100644 index 0000000000..f90334eff7 --- /dev/null +++ b/lab6c/ansible/playbooks/site.yml @@ -0,0 +1,12 @@ +--- +- name: Provision and deploy application + hosts: webservers + become: true + + vars_files: + - ../group_vars/all.yml + + roles: + - common + - docker + - web_app diff --git a/lab6c/ansible/requirements.yml b/lab6c/ansible/requirements.yml new file mode 100644 index 0000000000..b869f415df --- /dev/null +++ b/lab6c/ansible/requirements.yml @@ -0,0 +1,4 @@ +--- +collections: + - name: community.docker + - name: community.general diff --git a/lab6c/ansible/roles/common/defaults/main.yml b/lab6c/ansible/roles/common/defaults/main.yml new file mode 100644 index 0000000000..49e2e4526d --- /dev/null +++ b/lab6c/ansible/roles/common/defaults/main.yml @@ -0,0 +1,13 @@ +--- +common_packages: + - apt-transport-https + - ca-certificates + - curl + - git + - gnupg + - htop + - lsb-release + - python3-pip + - vim + +common_timezone: "UTC" diff --git a/lab6c/ansible/roles/common/tasks/main.yml b/lab6c/ansible/roles/common/tasks/main.yml new file mode 100644 index 0000000000..bb93353eee --- /dev/null +++ b/lab6c/ansible/roles/common/tasks/main.yml @@ -0,0 +1,58 @@ +--- +# Common role: baseline system setup +# Tags: packages, users, common + +- name: Install packages + block: + - name: Update apt cache + ansible.builtin.apt: + update_cache: true + cache_valid_time: 3600 + tags: + - packages + - common + + - name: Install common packages + ansible.builtin.apt: + name: "{{ common_packages }}" + state: present + tags: + - packages + - common + + rescue: + - name: Retry apt update on failure + ansible.builtin.apt: + update_cache: true + ignore_errors: true + + - name: Re-run package install after cache fix + ansible.builtin.apt: + name: "{{ common_packages }}" + state: present + + always: + - name: Log common role completion + ansible.builtin.copy: + content: "common role completed at {{ ansible_date_time.iso8601 }}\n" + dest: /tmp/ansible_common_completed + mode: "0644" + tags: + - common + +- name: User and group setup + block: + - name: Ensure sudo group exists + ansible.builtin.group: + name: sudo + state: present + tags: + - users + - common + +- name: Configure timezone + community.general.timezone: + name: "{{ common_timezone }}" + when: common_timezone | default("") | length > 0 + tags: + - common diff --git a/lab6c/ansible/roles/docker/defaults/main.yml b/lab6c/ansible/roles/docker/defaults/main.yml new file mode 100644 index 0000000000..546f4a7af0 --- /dev/null +++ b/lab6c/ansible/roles/docker/defaults/main.yml @@ -0,0 +1,16 @@ +--- +docker_arch_map: + x86_64: amd64 + aarch64: arm64 + +docker_arch: "{{ docker_arch_map.get(ansible_architecture, 'amd64') }}" + +docker_packages: + - docker-ce + - docker-ce-cli + - containerd.io + - docker-buildx-plugin + - docker-compose-plugin + +docker_python_package: python3-docker +docker_user: "{{ ansible_user | default('ubuntu') }}" diff --git a/lab6c/ansible/roles/docker/handlers/main.yml b/lab6c/ansible/roles/docker/handlers/main.yml new file mode 100644 index 0000000000..1a5058da5e --- /dev/null +++ b/lab6c/ansible/roles/docker/handlers/main.yml @@ -0,0 +1,5 @@ +--- +- name: restart docker + ansible.builtin.service: + name: docker + state: restarted diff --git a/lab6c/ansible/roles/docker/tasks/main.yml b/lab6c/ansible/roles/docker/tasks/main.yml new file mode 100644 index 0000000000..990a1dc49c --- /dev/null +++ b/lab6c/ansible/roles/docker/tasks/main.yml @@ -0,0 +1,105 @@ +--- +# Docker role: install Docker engine from official repo +# Tags: docker_install, docker_config, docker + +- name: Docker installation + block: + - name: Install APT dependencies for Docker repository + ansible.builtin.apt: + name: + - ca-certificates + - curl + - gnupg + state: present + update_cache: true + tags: + - docker_install + - docker + + - name: Ensure Docker keyring directory exists + ansible.builtin.file: + path: /etc/apt/keyrings + state: directory + mode: "0755" + tags: + - docker_install + - docker + + - name: Download Docker official GPG key + ansible.builtin.get_url: + url: https://download.docker.com/linux/ubuntu/gpg + dest: /etc/apt/keyrings/docker.asc + mode: "0644" + tags: + - docker_install + - docker + + - name: Add Docker APT repository + ansible.builtin.apt_repository: + repo: "deb [arch={{ docker_arch }} signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu {{ ansible_distribution_release }} stable" + filename: docker + state: present + register: docker_repo + tags: + - docker_install + - docker + + - name: Update apt cache after Docker repo changes + ansible.builtin.apt: + update_cache: true + when: docker_repo is changed + tags: + - docker_install + - docker + + - name: Install Docker engine and CLI packages + ansible.builtin.apt: + name: "{{ docker_packages + [docker_python_package] }}" + state: present + notify: restart docker + tags: + - docker_install + - docker + + rescue: + - name: Wait before retry after GPG/repo failure + ansible.builtin.pause: + seconds: 10 + prompt: "Retrying Docker repo setup..." + + - name: Retry apt update + ansible.builtin.apt: + update_cache: true + + always: + - name: Ensure Docker service is enabled and running + ansible.builtin.service: + name: docker + state: started + enabled: true + tags: + - docker + - docker_config + +- name: Docker configuration + block: + - name: Ensure docker group exists + ansible.builtin.group: + name: docker + state: present + tags: + - docker_config + - docker + + - name: Add target user to docker group + ansible.builtin.user: + name: "{{ docker_user }}" + groups: docker + append: true + tags: + - docker_config + - docker + + tags: + - docker_config + - docker diff --git a/lab6c/ansible/roles/web_app/defaults/main.yml b/lab6c/ansible/roles/web_app/defaults/main.yml new file mode 100644 index 0000000000..0e150a57fe --- /dev/null +++ b/lab6c/ansible/roles/web_app/defaults/main.yml @@ -0,0 +1,19 @@ +--- +# Application config +app_name: "devops-info-python" +docker_image: "{{ dockerhub_username }}/{{ app_name }}" +docker_image_tag: "latest" + +app_port: 5000 +app_internal_port: 5000 +app_container_name: "{{ app_name }}" +app_restart_policy: "unless-stopped" +app_env: {} +app_health_path: "/health" +app_wait_timeout: 120 + +# Docker Compose +compose_project_dir: "/opt/{{ app_name }}" + +# Wipe logic: set to true to remove app completely. Also requires --tags web_app_wipe for wipe-only. +web_app_wipe: false diff --git a/lab6c/ansible/roles/web_app/handlers/main.yml b/lab6c/ansible/roles/web_app/handlers/main.yml new file mode 100644 index 0000000000..f8bfe8ed4f --- /dev/null +++ b/lab6c/ansible/roles/web_app/handlers/main.yml @@ -0,0 +1,5 @@ +--- +- name: restart app container + community.docker.docker_compose_v2: + project_src: "{{ compose_project_dir }}" + state: present diff --git a/lab6c/ansible/roles/web_app/meta/main.yml b/lab6c/ansible/roles/web_app/meta/main.yml new file mode 100644 index 0000000000..a5177c0f80 --- /dev/null +++ b/lab6c/ansible/roles/web_app/meta/main.yml @@ -0,0 +1,4 @@ +--- +# web_app depends on docker - Docker must be installed before deploying containers +dependencies: + - role: docker diff --git a/lab6c/ansible/roles/web_app/tasks/main.yml b/lab6c/ansible/roles/web_app/tasks/main.yml new file mode 100644 index 0000000000..063676e3cf --- /dev/null +++ b/lab6c/ansible/roles/web_app/tasks/main.yml @@ -0,0 +1,84 @@ +--- +# web_app role: deploy containerized app with Docker Compose +# Tags: app_deploy, compose, web_app +# Dependency: docker role (installed automatically via meta/main.yml) + +# Wipe logic runs first when explicitly requested +- name: Include wipe tasks + include_tasks: wipe.yml + tags: + - web_app_wipe + +# Deployment block +- name: Deploy application with Docker Compose + block: + - name: Log in to Docker Hub + community.docker.docker_login: + registry_url: https://index.docker.io/v1/ + username: "{{ dockerhub_username }}" + password: "{{ dockerhub_password }}" + no_log: true + tags: + - app_deploy + - compose + + - name: Create application directory + ansible.builtin.file: + path: "{{ compose_project_dir }}" + state: directory + mode: "0755" + tags: + - app_deploy + - compose + + - name: Template docker-compose.yml + ansible.builtin.template: + src: docker-compose.yml.j2 + dest: "{{ compose_project_dir }}/docker-compose.yml" + mode: "0644" + tags: + - app_deploy + - compose + + - name: Deploy with Docker Compose (up) + community.docker.docker_compose_v2: + project_src: "{{ compose_project_dir }}" + state: present + pull: always + tags: + - app_deploy + - compose + + - name: Wait for app port to be ready + ansible.builtin.wait_for: + host: "127.0.0.1" + port: "{{ app_port | int }}" + delay: 2 + timeout: "{{ app_wait_timeout }}" + tags: + - app_deploy + - compose + + - name: Verify health endpoint + ansible.builtin.uri: + url: "http://127.0.0.1:{{ app_port }}{{ app_health_path }}" + method: GET + status_code: 200 + return_content: true + register: app_health_result + retries: 5 + delay: 3 + until: app_health_result.status == 200 + tags: + - app_deploy + - compose + + rescue: + - name: Log deployment failure + ansible.builtin.debug: + msg: "Deployment failed, check logs above" + + tags: + - app_deploy + - compose + - web_app diff --git a/lab6c/ansible/roles/web_app/tasks/wipe.yml b/lab6c/ansible/roles/web_app/tasks/wipe.yml new file mode 100644 index 0000000000..fbeb835e4f --- /dev/null +++ b/lab6c/ansible/roles/web_app/tasks/wipe.yml @@ -0,0 +1,37 @@ +--- +# Wipe web application: stops containers, removes compose file and app directory +# Runs only when web_app_wipe=true AND tag web_app_wipe specified +# Usage: ansible-playbook deploy.yml -e "web_app_wipe=true" --tags web_app_wipe + +- name: Check if app directory exists + ansible.builtin.stat: + path: "{{ compose_project_dir }}" + register: compose_dir_stat + +- name: Wipe web application + block: + - name: Stop and remove containers with Docker Compose + community.docker.docker_compose_v2: + project_src: "{{ compose_project_dir }}" + state: absent + when: compose_dir_stat.stat.isdir | default(false) + + - name: Remove docker-compose file + ansible.builtin.file: + path: "{{ compose_project_dir }}/docker-compose.yml" + state: absent + ignore_errors: true + + - name: Remove application directory + ansible.builtin.file: + path: "{{ compose_project_dir }}" + state: absent + ignore_errors: true + + - name: Log wipe completion + ansible.builtin.debug: + msg: "Application {{ app_name }} wiped successfully" + + when: web_app_wipe | default(false) | bool + tags: + - web_app_wipe diff --git a/lab6c/ansible/roles/web_app/templates/docker-compose.yml.j2 b/lab6c/ansible/roles/web_app/templates/docker-compose.yml.j2 new file mode 100644 index 0000000000..7285e18cf1 --- /dev/null +++ b/lab6c/ansible/roles/web_app/templates/docker-compose.yml.j2 @@ -0,0 +1,15 @@ +--- +# Generated by Ansible - do not edit manually +# Template: roles/web_app/templates/docker-compose.yml.j2 + +services: + {{ app_name }}: + image: {{ docker_image }}:{{ docker_image_tag }} + container_name: {{ app_container_name }} + ports: + - "{{ app_port }}:{{ app_internal_port }}" + environment: {{ app_env | default({}) | to_json }} + restart: {{ app_restart_policy }} + {% if app_extra_hosts is defined and app_extra_hosts %} + extra_hosts: {{ app_extra_hosts | to_json }} + {% endif %} From a43ffc68f05995a25256f85bc77dce66b7d8dfc8 Mon Sep 17 00:00:00 2001 From: Phoenix Date: Thu, 5 Mar 2026 15:43:51 +0300 Subject: [PATCH 12/21] docs: workflow screenshot --- lab6c/ansible/docs/workflow.jpg | Bin 0 -> 35396 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 lab6c/ansible/docs/workflow.jpg diff --git a/lab6c/ansible/docs/workflow.jpg b/lab6c/ansible/docs/workflow.jpg new file mode 100644 index 0000000000000000000000000000000000000000..bd8ac1af348dea682cc5842a3d77cc9e03d5315d GIT binary patch literal 35396 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 Lsnj=1zh3-5mQPQ0 literal 0 HcmV?d00001 From 44d9b5f1fc70863b5f48cc0fe0b700fa843190ed Mon Sep 17 00:00:00 2001 From: Phoenix Date: Mon, 9 Mar 2026 18:23:30 +0300 Subject: [PATCH 13/21] lab7 complete --- lab3c/app_python/app.py | 57 +++++++++-- lab7c/docker-compose.yml | 110 +++++++++++++++++++++ lab7c/docs/LAB07.md | 200 ++++++++++++++++++++++++++++++++++++++ lab7c/docs/dashboard.jpg | Bin 0 -> 69272 bytes lab7c/docs/query.jpg | Bin 0 -> 102789 bytes lab7c/loki/config.yml | 43 ++++++++ lab7c/promtail/config.yml | 29 ++++++ 7 files changed, 432 insertions(+), 7 deletions(-) create mode 100644 lab7c/docker-compose.yml create mode 100644 lab7c/docs/LAB07.md create mode 100644 lab7c/docs/dashboard.jpg create mode 100644 lab7c/docs/query.jpg create mode 100644 lab7c/loki/config.yml create mode 100644 lab7c/promtail/config.yml diff --git a/lab3c/app_python/app.py b/lab3c/app_python/app.py index 8935b94091..bb284df8a7 100644 --- a/lab3c/app_python/app.py +++ b/lab3c/app_python/app.py @@ -5,6 +5,7 @@ from __future__ import annotations +import json import logging import os import platform @@ -28,11 +29,12 @@ START_TIME = datetime.now(timezone.utc) -logging.basicConfig( - level=logging.INFO, - format="%(asctime)s - %(levelname)s - %(message)s", -) logger = logging.getLogger("devops-info-service") +logger.setLevel(logging.INFO) + +handler = logging.StreamHandler() +handler.setLevel(logging.INFO) +logger.handlers = [handler] app = FastAPI( title="DevOps Info Service", @@ -75,9 +77,38 @@ def isoformat_utc(dt: datetime) -> str: @app.middleware("http") async def log_requests(request: Request, call_next): - logger.info("Request: %s %s", request.method, request.url.path) + start_time = datetime.now(timezone.utc) + logger.info( + json.dumps( + { + "timestamp": isoformat_utc(start_time), + "level": "INFO", + "service": SERVICE_NAME, + "event": "request", + "method": request.method, + "path": request.url.path, + "client_ip": request.client.host if request.client else "unknown", + "user_agent": request.headers.get("user-agent", "unknown"), + } + ) + ) response = await call_next(request) - logger.info("Response: %s %s -> %s", request.method, request.url.path, response.status_code) + end_time = datetime.now(timezone.utc) + logger.info( + json.dumps( + { + "timestamp": isoformat_utc(end_time), + "level": "INFO", + "service": SERVICE_NAME, + "event": "response", + "method": request.method, + "path": request.url.path, + "status": response.status_code, + "client_ip": request.client.host if request.client else "unknown", + "user_agent": request.headers.get("user-agent", "unknown"), + } + ) + ) return response @@ -99,7 +130,19 @@ async def http_exception_handler(request: Request, exc: StarletteHTTPException): @app.exception_handler(Exception) async def unhandled_exception_handler(request: Request, exc: Exception): - logger.exception("Unhandled error: %s", exc) + logger.error( + json.dumps( + { + "timestamp": isoformat_utc(datetime.now(timezone.utc)), + "level": "ERROR", + "service": SERVICE_NAME, + "event": "exception", + "method": request.method, + "path": request.url.path, + "error": str(exc), + } + ) + ) return JSONResponse( status_code=500, content={ diff --git a/lab7c/docker-compose.yml b/lab7c/docker-compose.yml new file mode 100644 index 0000000000..838b56994c --- /dev/null +++ b/lab7c/docker-compose.yml @@ -0,0 +1,110 @@ +version: "3.8" + +networks: + logging: + name: logging + +volumes: + loki-data: + grafana-data: + +services: + loki: + image: grafana/loki:3.0.0 + command: -config.file=/etc/loki/config.yml + ports: + - "3100:3100" + volumes: + - ./loki/config.yml:/etc/loki/config.yml:ro + - loki-data:/loki + networks: + - logging + healthcheck: + test: ["CMD-SHELL", "curl -f http://localhost:3100/ready || exit 1"] + interval: 10s + timeout: 5s + retries: 5 + start_period: 10s + deploy: + resources: + limits: + cpus: "1.0" + memory: 1G + reservations: + cpus: "0.5" + memory: 512M + + promtail: + image: grafana/promtail:3.0.0 + command: -config.file=/etc/promtail/config.yml + ports: + - "9080:9080" + volumes: + - ./promtail/config.yml:/etc/promtail/config.yml:ro + - /var/log:/var/log:ro + - /var/lib/docker/containers:/var/lib/docker/containers:ro + - /var/run/docker.sock:/var/run/docker.sock:ro + networks: + - logging + depends_on: + - loki + deploy: + resources: + limits: + cpus: "0.5" + memory: 512M + reservations: + cpus: "0.25" + memory: 256M + + grafana: + image: grafana/grafana:12.3.1 + ports: + - "3000:3000" + environment: + # Development defaults. For production, override via .env or secrets. + GF_AUTH_ANONYMOUS_ENABLED: "false" + GF_SECURITY_ADMIN_USER: "admin" + GF_SECURITY_ADMIN_PASSWORD: "${GRAFANA_ADMIN_PASSWORD:-admin}" + volumes: + - grafana-data:/var/lib/grafana + networks: + - logging + depends_on: + - loki + healthcheck: + test: ["CMD-SHELL", "curl -f http://localhost:3000/api/health || exit 1"] + interval: 15s + timeout: 5s + retries: 5 + start_period: 20s + deploy: + resources: + limits: + cpus: "1.0" + memory: 1G + reservations: + cpus: "0.5" + memory: 512M + + app-python: + image: tsixphoenix/devops-info-python:latest + ports: + - "8000:5000" + networks: + - logging + labels: + logging: "promtail" + app: "devops-python" + environment: + HOST: "0.0.0.0" + PORT: "5000" + deploy: + resources: + limits: + cpus: "0.5" + memory: 512M + reservations: + cpus: "0.25" + memory: 256M + diff --git a/lab7c/docs/LAB07.md b/lab7c/docs/LAB07.md new file mode 100644 index 0000000000..4adc7aca91 --- /dev/null +++ b/lab7c/docs/LAB07.md @@ -0,0 +1,200 @@ +# Lab 7 — Observability & Logging with Loki Stack + +## 1. Architecture + +- **Loki**: log storage and query engine (TSDB on filesystem, 7‑day retention). +- **Promtail**: collects container logs from Docker and ships them to Loki. +- **Grafana**: visualizes logs and dashboards using LogQL. +- **App (FastAPI)**: `devops-info-service` container, logging JSON to stdout. +- All services run in `lab7c/docker-compose.yml` on a shared `logging` network. + +## 2. Setup Guide + +### 2.1 Stack deployment + +```bash +cd monitoring +docker compose up -d +docker compose ps +``` + +Services: +- `loki` on `3100` +- `promtail` on `9080` +- `grafana` on `3000` +- `app-python` on `8000` (mapped to container 5000) + +### 2.2 Verification + +```bash +# Loki readiness +curl http://localhost:3100/ready + +# Promtail targets +curl http://localhost:9080/targets + +# Open Grafana (local) +http://localhost:3000 +``` + +In Grafana: +1. **Connections → Data sources → Add data source → Loki** +2. URL: `http://loki:3100` +3. **Save & Test** → “Data source connected” +4. Go to **Explore**, choose **Loki**, run `{job="docker"}`. + +## 3. Configuration + +### 3.1 Docker Compose (`lab7c/docker-compose.yml`) + +- Defines network `logging` and volumes `loki-data`, `grafana-data`. +- **Loki**: + - Image `grafana/loki:3.0.0` + - Mounts `./loki/config.yml` to `/etc/loki/config.yml` + - Persists data in `loki-data:/loki` + - Health check on `/ready` + - Resource limits and reservations set. +- **Promtail**: + - Image `grafana/promtail:3.0.0` + - Mounts `./promtail/config.yml` + - Mounts `/var/lib/docker/containers` and `/var/run/docker.sock` read‑only. +- **Grafana**: + - Image `grafana/grafana:12.3.1` + - Port `3000:3000` + - Admin user/password via env (for dev: `admin` / `${GRAFANA_ADMIN_PASSWORD:-admin}`). + - Health check on `/api/health`, resource limits. +- **app-python**: + - Image `tsixphoenix/devops-info-python:latest` + - Port `8000:5000` + - Labels `logging="promtail"`, `app="devops-python"` for Promtail/Loki labels. + +### 3.2 Loki (`lab7c/loki/config.yml`) + +- `auth_enabled: false` for local testing. +- `server.http_listen_port: 3100`. +- `common`: + - `path_prefix: /loki` + - filesystem storage for chunks and rules. + - in‑memory ring for a single instance. +- `schema_config`: + - `store: tsdb`, `object_store: filesystem`, `schema: v13`, daily index. +- `storage_config`: + - `tsdb_shipper` index in `/loki/index` with cache. + - filesystem chunks in `/loki/chunks`. +- `limits_config.retention_period: 168h` (7 days). +- `compactor`: + - cleans up old logs with `retention_enabled: true`. + +### 3.3 Promtail (`lab7c/promtail/config.yml`) + +- `server.http_listen_port: 9080`. +- `positions` stored in `/tmp/positions.yaml`. +- `clients` send to `http://loki:3100/loki/api/v1/push`. +- `scrape_configs` for **Docker**: + - `docker_sd_configs` on `unix:///var/run/docker.sock`. + - `relabel_configs`: + - `container` label from `__meta_docker_container_name`. + - `app` label from container label `app`. + - `logging` label from container label `logging`. + +## 4. Application Logging (JSON) + +In `lab3c/app_python/app.py`: +- Switched to **JSON log lines** using the standard `logging` module. +- HTTP middleware logs: + - `timestamp`, `level`, `service`, `method`, `path`, `status`, `client_ip`, `user_agent`. +- Logs are written to stdout and collected by Docker, then by Promtail. + +Example JSON log line: +```json +{ + "timestamp": "2026-03-05T12:20:00Z", + "level": "INFO", + "service": "devops-info-service", + "method": "GET", + "path": "/health", + "status": 200, + "client_ip": "127.0.0.1", + "user_agent": "curl/8.6.0", + "message": "request" +} +``` + +Screenshots used in the report are stored in `lab7c/docs/`, for example: +- `lab7c/docs/grafana-explore.png` — Explore view with `{app="devops-python"}`. +- `lab7c/docs/grafana-dashboard.png` — dashboard with all four panels. + +## 5. Dashboard & LogQL + +### 5.1 Explore queries + +In Grafana Explore (Loki data source): + +- All logs for Python app: +```logql +{app="devops-python"} +``` + +- Only error logs: +```logql +{app="devops-python"} |= "ERROR" +``` + +- Parse JSON and filter by method: +```logql +{app="devops-python"} | json | method="GET" +``` + +### 5.2 Dashboard panels + +Dashboard panels created (LogQL examples): + +1. **Logs Table** (all apps): + ```logql + {app=~"devops-.*"} + ``` +2. **Request Rate** (time series): + ```logql + sum by (app) (rate({app=~"devops-.*"}[1m])) + ``` +3. **Error Logs**: + ```logql + {app=~"devops-.*"} | json | level="ERROR" + ``` +4. **Log Level Distribution**: + ```logql + sum by (level) (count_over_time({app=~"devops-.*"} | json [5m])) + ``` + +## 6. Production Configuration + +- **Resource limits**: all services have `deploy.resources` limits and reservations. +- **Grafana security**: + - Anonymous access disabled (`GF_AUTH_ANONYMOUS_ENABLED=false`). + - Admin credentials configured via environment variables / `.env`. +- **Health checks**: + - Loki: `/ready` endpoint. + - Grafana: `/api/health` endpoint. +- **Retention**: + - Loki configured for 7 days (`retention_period: 168h`) with compactor cleanup. + +## 7. Testing + +1. Start stack: `docker compose up -d`. +2. Generate logs: + ```bash + for i in {1..20}; do curl http://localhost:8000/; done + for i in {1..20}; do curl http://localhost:8000/health; done + ``` +3. In Grafana Explore, run: + - `{app="devops-python"}` + - `{app="devops-python"} | json | method="GET"` + - `{app="devops-python"} | json | level="ERROR"` +4. Check dashboard panels render data. + +## 8. Challenges + +- **Docker TSDB configuration**: required reading Loki 3.0 docs to use `tsdb` with filesystem correctly. +- **Docker discovery**: Promtail needed correct Docker SD and relabeling to get `app` and `container` labels. +- **JSON logging**: changing logging format without breaking existing behavior and keeping logs parseable in Loki. + diff --git a/lab7c/docs/dashboard.jpg b/lab7c/docs/dashboard.jpg new file mode 100644 index 0000000000000000000000000000000000000000..05843cfab416a2df7b8caeeba7014ad7538c50bd GIT binary patch literal 69272 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⪼ZbmgW&i_)McZcT;{kO`z2*ikaoQb46gNL1 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

peLONZ!%$3EZiLY!JBSKfoFbkuv$5x9m*C+P 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 G@BS~g8+Y^o literal 0 HcmV?d00001 diff --git a/lab7c/loki/config.yml b/lab7c/loki/config.yml new file mode 100644 index 0000000000..6a9219da04 --- /dev/null +++ b/lab7c/loki/config.yml @@ -0,0 +1,43 @@ +auth_enabled: false + +server: + http_listen_port: 3100 + +common: + path_prefix: /loki + storage: + filesystem: + chunks_directory: /loki/chunks + rules_directory: /loki/rules + replication_factor: 1 + ring: + instance_addr: 127.0.0.1 + kvstore: + store: inmemory + +schema_config: + configs: + - from: 2024-01-01 + store: tsdb + object_store: filesystem + schema: v13 + index: + prefix: index_ + period: 24h + +storage_config: + tsdb_shipper: + active_index_directory: /loki/index + cache_location: /loki/cache + cache_ttl: 24h + filesystem: + directory: /loki/chunks + +limits_config: + retention_period: 168h + +compactor: + working_directory: /loki/compactor + retention_enabled: true + delete_request_store: filesystem + diff --git a/lab7c/promtail/config.yml b/lab7c/promtail/config.yml new file mode 100644 index 0000000000..eb99e73798 --- /dev/null +++ b/lab7c/promtail/config.yml @@ -0,0 +1,29 @@ +server: + http_listen_port: 9080 + grpc_listen_port: 0 + +positions: + filename: /tmp/positions.yaml + +clients: + - url: http://loki:3100/loki/api/v1/push + +scrape_configs: + - job_name: docker + docker_sd_configs: + - host: unix:///var/run/docker.sock + refresh_interval: 5s + + relabel_configs: + # Container name label (without leading slash) + - source_labels: [__meta_docker_container_name] + target_label: container + regex: "/(.*)" + replacement: "$1" + + # Propagate container labels as Loki labels + - source_labels: [__meta_docker_container_label_app] + target_label: app + - source_labels: [__meta_docker_container_label_logging] + target_label: logging + From 7fdc5f849b393d8909c450a78869cf0455c63b76 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D1=80=D1=82=D1=91=D0=BC?= Date: Mon, 9 Mar 2026 18:30:42 +0300 Subject: [PATCH 14/21] Update LAB07.md --- lab7c/docs/LAB07.md | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/lab7c/docs/LAB07.md b/lab7c/docs/LAB07.md index 4adc7aca91..f898ad53f1 100644 --- a/lab7c/docs/LAB07.md +++ b/lab7c/docs/LAB07.md @@ -120,10 +120,7 @@ Example JSON log line: } ``` -Screenshots used in the report are stored in `lab7c/docs/`, for example: -- `lab7c/docs/grafana-explore.png` — Explore view with `{app="devops-python"}`. -- `lab7c/docs/grafana-dashboard.png` — dashboard with all four panels. - +Screenshots are stored in `lab7c/docs/`. ## 5. Dashboard & LogQL ### 5.1 Explore queries From 060f86ef93c7804499aad34341519d139300814b Mon Sep 17 00:00:00 2001 From: Phoenix Date: Thu, 19 Mar 2026 15:09:02 +0300 Subject: [PATCH 15/21] lab8 complete --- lab3c/app_python/app.py | 90 +++++++++++++- lab3c/app_python/requirements.txt | 1 + lab7c/docker-compose.yml | 1 - lab8c/docker-compose.yml | 142 +++++++++++++++++++++++ lab8c/docs/LAB08.md | 93 +++++++++++++++ lab8c/docs/grafana-app-dashboard.json | 161 ++++++++++++++++++++++++++ lab8c/docs/grafana-dashboard.jpg | Bin 0 -> 82699 bytes lab8c/docs/metrics-endpoint.jpg | Bin 0 -> 258312 bytes lab8c/docs/prometheus-query.jpg | Bin 0 -> 34017 bytes lab8c/docs/prometheus-targets.jpg | Bin 0 -> 63783 bytes lab8c/loki/config.yml | 42 +++++++ lab8c/prometheus/prometheus.yml | 23 ++++ lab8c/promtail/config.yml | 26 +++++ 13 files changed, 576 insertions(+), 3 deletions(-) create mode 100644 lab8c/docker-compose.yml create mode 100644 lab8c/docs/LAB08.md create mode 100644 lab8c/docs/grafana-app-dashboard.json create mode 100644 lab8c/docs/grafana-dashboard.jpg create mode 100644 lab8c/docs/metrics-endpoint.jpg create mode 100644 lab8c/docs/prometheus-query.jpg create mode 100644 lab8c/docs/prometheus-targets.jpg create mode 100644 lab8c/loki/config.yml create mode 100644 lab8c/prometheus/prometheus.yml create mode 100644 lab8c/promtail/config.yml diff --git a/lab3c/app_python/app.py b/lab3c/app_python/app.py index bb284df8a7..763238476c 100644 --- a/lab3c/app_python/app.py +++ b/lab3c/app_python/app.py @@ -10,13 +10,58 @@ import os import platform import socket +import time from datetime import datetime, timezone import uvicorn from fastapi import FastAPI, Request -from fastapi.responses import JSONResponse +from fastapi.responses import JSONResponse, Response +from prometheus_client import ( + CONTENT_TYPE_LATEST, + CollectorRegistry, + Counter, + Gauge, + Histogram, + generate_latest, +) from starlette.exceptions import HTTPException as StarletteHTTPException +# Use a custom registry so we don't clash with the default one (avoids "Duplicated timeseries" when the app module is loaded more than once). +_prometheus_registry = CollectorRegistry() + +# Prometheus metrics (RED: Rate, Errors, Duration) +http_requests_total = Counter( + "http_requests_total", + "Total HTTP requests", + ["method", "endpoint", "status"], + registry=_prometheus_registry, +) +http_request_duration_seconds = Histogram( + "http_request_duration_seconds", + "HTTP request duration in seconds", + ["method", "endpoint"], + buckets=(0.005, 0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1.0, 2.5, 5.0), + registry=_prometheus_registry, +) +http_requests_in_progress = Gauge( + "http_requests_in_progress", + "HTTP requests currently being processed", + registry=_prometheus_registry, +) +# Application-specific metrics +devops_info_endpoint_calls = Counter( + "devops_info_endpoint_calls", + "Endpoint calls for DevOps info service", + ["endpoint"], + registry=_prometheus_registry, +) +devops_info_system_collection_seconds = Histogram( + "devops_info_system_collection_seconds", + "System info collection time in seconds", + buckets=(0.001, 0.005, 0.01, 0.025, 0.05, 0.1), + registry=_prometheus_registry, +) + # Config HOST = os.getenv("HOST", "0.0.0.0") PORT = int(os.getenv("PORT", "5000")) @@ -75,6 +120,32 @@ def isoformat_utc(dt: datetime) -> str: return dt.astimezone(timezone.utc).isoformat().replace("+00:00", "Z") +def _normalize_endpoint(path: str) -> str: + """Normalize path for metric labels to keep cardinality low.""" + if path in ("/", "/health", "/metrics"): + return path + return "other" + + +@app.middleware("http") +async def log_requests(request: Request, call_next): + start_time = time.perf_counter() + endpoint = _normalize_endpoint(request.url.path) + http_requests_in_progress.inc() + try: + response = await call_next(request) + status = str(response.status_code) + http_requests_total.labels( + method=request.method, endpoint=endpoint, status=status + ).inc() + http_request_duration_seconds.labels( + method=request.method, endpoint=endpoint + ).observe(time.perf_counter() - start_time) + return response + finally: + http_requests_in_progress.dec() + + @app.middleware("http") async def log_requests(request: Request, call_next): start_time = datetime.now(timezone.utc) @@ -152,8 +223,21 @@ async def unhandled_exception_handler(request: Request, exc: Exception): ) +@app.get("/metrics") +async def metrics(): + """Prometheus metrics endpoint.""" + return Response( + content=generate_latest(_prometheus_registry), + media_type=CONTENT_TYPE_LATEST, + ) + + @app.get("/") async def root(request: Request): + devops_info_endpoint_calls.labels(endpoint="/").inc() + t0 = time.perf_counter() + sys_info = get_system_info() + devops_info_system_collection_seconds.observe(time.perf_counter() - t0) uptime = get_uptime() now = datetime.now(timezone.utc) @@ -164,7 +248,7 @@ async def root(request: Request): "description": SERVICE_DESCRIPTION, "framework": SERVICE_FRAMEWORK, }, - "system": get_system_info(), + "system": sys_info, "runtime": { "uptime_seconds": uptime["seconds"], "uptime_human": uptime["human"], @@ -180,6 +264,7 @@ async def root(request: Request): "endpoints": [ {"path": "/", "method": "GET", "description": "Service information"}, {"path": "/health", "method": "GET", "description": "Health check"}, + {"path": "/metrics", "method": "GET", "description": "Prometheus metrics"}, ], } @@ -188,6 +273,7 @@ async def root(request: Request): @app.get("/health") async def health(): + devops_info_endpoint_calls.labels(endpoint="/health").inc() uptime = get_uptime() return { "status": "healthy", diff --git a/lab3c/app_python/requirements.txt b/lab3c/app_python/requirements.txt index 01c3cb3565..d663691063 100644 --- a/lab3c/app_python/requirements.txt +++ b/lab3c/app_python/requirements.txt @@ -1,2 +1,3 @@ fastapi==0.128.6 uvicorn[standard]==0.32.0 +prometheus-client==0.23.1 diff --git a/lab7c/docker-compose.yml b/lab7c/docker-compose.yml index 838b56994c..4ad8163ebd 100644 --- a/lab7c/docker-compose.yml +++ b/lab7c/docker-compose.yml @@ -62,7 +62,6 @@ services: ports: - "3000:3000" environment: - # Development defaults. For production, override via .env or secrets. GF_AUTH_ANONYMOUS_ENABLED: "false" GF_SECURITY_ADMIN_USER: "admin" GF_SECURITY_ADMIN_PASSWORD: "${GRAFANA_ADMIN_PASSWORD:-admin}" diff --git a/lab8c/docker-compose.yml b/lab8c/docker-compose.yml new file mode 100644 index 0000000000..129dc3058e --- /dev/null +++ b/lab8c/docker-compose.yml @@ -0,0 +1,142 @@ +networks: + logging: + name: logging + +volumes: + loki-data: + grafana-data: + prometheus-data: + +services: + loki: + image: grafana/loki:3.0.0 + command: -config.file=/etc/loki/config.yml + ports: + - "3100:3100" + volumes: + - ./loki/config.yml:/etc/loki/config.yml:ro + - loki-data:/loki + networks: + - logging + healthcheck: + test: ["CMD-SHELL", "curl -f http://localhost:3100/ready || exit 1"] + interval: 10s + timeout: 5s + retries: 5 + start_period: 10s + deploy: + resources: + limits: + cpus: "1.0" + memory: 1G + reservations: + cpus: "0.5" + memory: 512M + + promtail: + image: grafana/promtail:3.0.0 + command: -config.file=/etc/promtail/config.yml + ports: + - "9080:9080" + volumes: + - ./promtail/config.yml:/etc/promtail/config.yml:ro + - /var/log:/var/log:ro + - /var/lib/docker/containers:/var/lib/docker/containers:ro + - /var/run/docker.sock:/var/run/docker.sock:ro + networks: + - logging + depends_on: + - loki + deploy: + resources: + limits: + cpus: "0.5" + memory: 512M + reservations: + cpus: "0.25" + memory: 256M + + prometheus: + image: prom/prometheus:v3.9.0 + command: + - "--config.file=/etc/prometheus/prometheus.yml" + - "--storage.tsdb.path=/prometheus" + - "--storage.tsdb.retention.time=15d" + - "--storage.tsdb.retention.size=10GB" + - "--web.enable-lifecycle" + ports: + - "9090:9090" + volumes: + - ./prometheus/prometheus.yml:/etc/prometheus/prometheus.yml:ro + - prometheus-data:/prometheus + networks: + - logging + healthcheck: + test: ["CMD-SHELL", "wget --no-verbose --tries=1 --spider http://localhost:9090/-/healthy || exit 1"] + interval: 10s + timeout: 5s + retries: 5 + deploy: + resources: + limits: + cpus: "1.0" + memory: 1G + reservations: + cpus: "0.5" + memory: 512M + + grafana: + image: grafana/grafana:12.3.1 + ports: + - "3000:3000" + environment: + GF_AUTH_ANONYMOUS_ENABLED: "false" + GF_SECURITY_ADMIN_USER: "admin" + GF_SECURITY_ADMIN_PASSWORD: "${GRAFANA_ADMIN_PASSWORD:-admin}" + volumes: + - grafana-data:/var/lib/grafana + networks: + - logging + depends_on: + - loki + healthcheck: + test: ["CMD-SHELL", "curl -f http://localhost:3000/api/health || exit 1"] + interval: 15s + timeout: 5s + retries: 5 + start_period: 20s + deploy: + resources: + limits: + cpus: "0.5" + memory: 512M + reservations: + cpus: "0.25" + memory: 256M + + app-python: + image: tsixphoenix/devops-info-python:latest + ports: + - "8000:5000" + networks: + - logging + labels: + logging: "promtail" + app: "devops-python" + environment: + HOST: "0.0.0.0" + PORT: "5000" + healthcheck: + # python:3.13-slim has no curl; use Python + test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:5000/health')"] + interval: 10s + timeout: 5s + retries: 5 + deploy: + resources: + limits: + cpus: "0.5" + memory: 256M + reservations: + cpus: "0.25" + memory: 128M diff --git a/lab8c/docs/LAB08.md b/lab8c/docs/LAB08.md new file mode 100644 index 0000000000..5fab199c43 --- /dev/null +++ b/lab8c/docs/LAB08.md @@ -0,0 +1,93 @@ +# Lab 8 — Metrics & Monitoring with Prometheus + +## 1. Architecture + +The app exposes metrics at `/metrics`. Prometheus scrapes that endpoint every 15 seconds, stores the time series, and Grafana queries Prometheus to draw dashboards. + +Rough flow: + +- **App** → exposes `/metrics` in Prometheus text format +- **Prometheus** → scrapes app, Loki, Grafana, and itself on the same Docker network (`logging`) +- **Grafana** → uses Prometheus as a data source (`http://prometheus:9090`) and shows RED metrics (rate, errors, duration) plus app health + +So: app and other services are scraped by Prometheus; Grafana only talks to Prometheus (and Loki for logs from Lab 7 if you use that stack too). + +## 2. Application instrumentation + +The Python app lives in `lab3c/app_python`. I added `prometheus-client==0.23.1` to `requirements.txt` and wired up metrics in `app.py`. + +**What’s exposed:** + +- **http_requests_total** (counter) — total requests with labels `method`, `endpoint`, `status`. Used for request rate and error rate. +- **http_request_duration_seconds** (histogram) — request duration with `method` and `endpoint`. Used for latency percentiles (e.g. p95). +- **http_requests_in_progress** (gauge) — how many requests are in flight right now. +- **devops_info_endpoint_calls** (counter) — per-endpoint usage (e.g. `/`, `/health`). +- **devops_info_system_collection_seconds** (histogram) — how long it takes to gather system info on the root endpoint. + +Paths are normalized to `/`, `/health`, `/metrics`, or `other` so we don’t blow up cardinality. A middleware records the start time, bumps the in-progress gauge, runs the handler, then records duration and status and decrements the gauge. + +The `/metrics` route just returns `generate_latest()` with the right content type so Prometheus can scrape it. + +## 3. Prometheus configuration + +Config is in `lab8c/prometheus/prometheus.yml`. + +- Global scrape interval: 15s. +- Four jobs: **prometheus** (self), **app** (`app-python:5000`, path `/metrics`), **loki** (`loki:3100`), **grafana** (`grafana:3000`). + +Retention (15d, 10GB) is set on the command line in `docker-compose.yml`, not in this file. + +## 4. Dashboard + +The custom dashboard is in `lab8c/docs/grafana-app-dashboard.json`. It has seven panels: + +1. **Request rate** — `sum(rate(http_requests_total[5m])) by (endpoint)` (requests per second per endpoint). +2. **Error rate (5xx)** — `sum(rate(http_requests_total{status=~"5.."}[5m]))`. +3. **Request duration p95** — `histogram_quantile(0.95, ...)` over the duration histogram. +4. **Active requests** — `http_requests_in_progress`. +5. **Status code distribution** — `sum by (status) (rate(http_requests_total[5m]))` (pie chart). +6. **Uptime (app)** — `up{job="app"}` (1 = up, 0 = down). +7. **Request duration heatmap** — `rate(http_request_duration_seconds_bucket[5m])`. + +When you import the JSON in Grafana, it will ask for a Prometheus data source; pick the one you added (URL `http://prometheus:9090`). + +## 5. PromQL examples + +- `rate(http_requests_total[5m])` — request rate over the last 5 minutes. +- `sum(rate(http_requests_total[5m])) by (endpoint)` — same, broken down by endpoint. +- `sum(rate(http_requests_total{status=~"5.."}[5m]))` — 5xx error rate (RED: errors). +- `histogram_quantile(0.95, sum(rate(http_request_duration_seconds_bucket[5m])) by (le))` — 95th percentile latency in seconds (RED: duration). +- `up{job="app"}` — 1 if the app target is up, 0 if down. +- `http_requests_in_progress` — current number of requests being processed. + +## 6. Production-style setup + +In `lab8c/docker-compose.yml`: + +- **Health checks**: Prometheus uses `wget` on `/-/healthy`; the app uses `curl` on `/health`. Loki and Grafana keep their existing checks. +- **Resource limits**: Prometheus 1 CPU / 1G; Loki 1 CPU / 1G; Grafana 0.5 CPU / 512M; app 0.5 CPU / 256M. +- **Retention**: 15 days and 10GB via Prometheus command-line flags. +- **Volumes**: `prometheus-data`, `loki-data`, `grafana-data` so data survives restarts. + +## 7. Testing + +- Run the app locally from `lab3c/app_python`, then hit `http://localhost:8000/metrics` — you should see the usual Prometheus text output. +- Run the stack: `cd lab8c && docker compose up -d`. Open http://localhost:9090/targets and check that all targets (prometheus, app, loki, grafana) are UP. Run a few queries in the Prometheus UI (e.g. `up`, `rate(http_requests_total[5m])` after some traffic). +- In Grafana, add the Prometheus data source and import the dashboard from `lab8c/docs/grafana-app-dashboard.json`. Generate some traffic to the app and confirm the panels show data. + +Screenshots to put in `lab8c/docs/`: + +- `metrics-endpoint.jpg` — browser or terminal output of `/metrics`. +- `prometheus-targets.jpg` — Targets page with all UP. +- `prometheus-query.jpg` — e.g. result of `up` or `rate(http_requests_total[5m])`. +- `grafana-dashboard.jpg` — the custom dashboard with live data. + +## 8. Challenges and fixes + +- **Middleware order**: Metrics need the response status and duration, so the metrics middleware runs the handler first and then records counter/histogram/gauge. The logging middleware is separate and doesn’t affect the numbers. +- **Cardinality**: We only use a few endpoint labels (`/`, `/health`, `/metrics`, `other`) so we don’t get thousands of series from random paths. +- **Docker**: Prometheus config is mounted at `/etc/prometheus/prometheus.yml`. All scrape targets use service names on the `logging` network (`app-python:5000`, `loki:3100`, `grafana:3000`). + +## 9. Metrics vs logs (Lab 7) + +Logs (Loki) answer “what happened” — individual requests, errors, stack traces. Metrics (Prometheus) answer “how much” and “how often” — rates, percentiles, counts. You need both: use metrics for dashboards and alerts, and when something spikes, dig into the logs for context. diff --git a/lab8c/docs/grafana-app-dashboard.json b/lab8c/docs/grafana-app-dashboard.json new file mode 100644 index 0000000000..e9e2cb5c54 --- /dev/null +++ b/lab8c/docs/grafana-app-dashboard.json @@ -0,0 +1,161 @@ +{ + "annotations": { + "list": [] + }, + "editable": true, + "fiscalYearStartMonth": 0, + "graphTooltip": 0, + "id": null, + "links": [], + "liveNow": false, + "panels": [ + { + "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, + "fieldConfig": { + "defaults": { "unit": "reqps", "min": 0 }, + "overrides": [] + }, + "gridPos": { "h": 8, "w": 12, "x": 0, "y": 0 }, + "id": 1, + "options": { "legend": { "displayMode": "list", "placement": "bottom" } }, + "targets": [ + { + "expr": "sum(rate(http_requests_total[5m])) by (endpoint)", + "legendFormat": "{{endpoint}}", + "refId": "A" + } + ], + "title": "Request Rate", + "type": "timeseries" + }, + { + "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, + "fieldConfig": { + "defaults": { "unit": "reqps", "min": 0, "color": { "mode": "palette-classic" } }, + "overrides": [] + }, + "gridPos": { "h": 8, "w": 12, "x": 12, "y": 0 }, + "id": 2, + "options": { "legend": { "displayMode": "list", "placement": "bottom" } }, + "targets": [ + { + "expr": "sum(rate(http_requests_total{status=~\"5..\"}[5m]))", + "legendFormat": "5xx errors/s", + "refId": "A" + } + ], + "title": "Error Rate (5xx)", + "type": "timeseries" + }, + { + "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, + "fieldConfig": { + "defaults": { "unit": "s", "min": 0 }, + "overrides": [] + }, + "gridPos": { "h": 8, "w": 12, "x": 0, "y": 8 }, + "id": 3, + "options": { "legend": { "displayMode": "list", "placement": "bottom" } }, + "targets": [ + { + "expr": "histogram_quantile(0.95, sum(rate(http_request_duration_seconds_bucket[5m])) by (le, endpoint))", + "legendFormat": "p95 {{endpoint}}", + "refId": "A" + } + ], + "title": "Request Duration p95", + "type": "timeseries" + }, + { + "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, + "fieldConfig": { + "defaults": { "unit": "short", "min": 0 }, + "overrides": [] + }, + "gridPos": { "h": 8, "w": 12, "x": 12, "y": 8 }, + "id": 4, + "options": { "legend": { "displayMode": "list", "placement": "bottom" } }, + "targets": [ + { + "expr": "http_requests_in_progress", + "legendFormat": "in progress", + "refId": "A" + } + ], + "title": "Active Requests", + "type": "timeseries" + }, + { + "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, + "fieldConfig": { + "defaults": { "unit": "short", "min": 0 }, + "overrides": [] + }, + "gridPos": { "h": 8, "w": 12, "x": 0, "y": 16 }, + "id": 5, + "options": { "legend": { "displayMode": "list", "placement": "bottom" } }, + "targets": [ + { + "expr": "sum by (status) (rate(http_requests_total[5m]))", + "legendFormat": "{{status}}", + "refId": "A" + } + ], + "title": "Status Code Distribution", + "type": "piechart" + }, + { + "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, + "fieldConfig": { + "defaults": { "unit": "short", "min": 0, "max": 1 }, + "overrides": [ + { "matcher": { "id": "byValue", "options": "0" }, "properties": [{ "id": "color", "value": { "fixedColor": "red", "mode": "fixed" } }] }, + { "matcher": { "id": "byValue", "options": "1" }, "properties": [{ "id": "color", "value": { "fixedColor": "green", "mode": "fixed" } }] } + ] + }, + "gridPos": { "h": 8, "w": 12, "x": 12, "y": 16 }, + "id": 6, + "options": { "colorMode": "value", "graphMode": "none", "justifyMode": "auto" }, + "targets": [ + { + "expr": "up{job=\"app\"}", + "legendFormat": "app", + "refId": "A" + } + ], + "title": "Uptime (app)", + "type": "stat" + }, + { + "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, + "fieldConfig": { + "defaults": { "unit": "s", "min": 0 }, + "overrides": [] + }, + "gridPos": { "h": 8, "w": 24, "x": 0, "y": 24 }, + "id": 7, + "options": { "legend": { "displayMode": "list", "placement": "bottom" } }, + "targets": [ + { + "expr": "rate(http_request_duration_seconds_bucket[5m])", + "legendFormat": "{{le}}", + "refId": "A" + } + ], + "title": "Request Duration Heatmap", + "type": "heatmap" + } + ], + "refresh": "10s", + "schemaVersion": 39, + "style": "dark", + "tags": ["devops", "app-metrics"], + "templating": { "list": [] }, + "time": { "from": "now-1h", "to": "now" }, + "timepicker": {}, + "timezone": "browser", + "title": "DevOps Info Service - Metrics", + "uid": "devops-app-metrics", + "version": 1, + "weekStart": "" +} diff --git a/lab8c/docs/grafana-dashboard.jpg b/lab8c/docs/grafana-dashboard.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b30001e68ebbfaf855ea83058c6722e37e6ca593 GIT binary patch literal 82699 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%0Dao{#xK-(TeNF5d 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 np;TaeLo7dx=W^_UIC^&v*}6S zfmCsQHZ%u@e(GpFrRX$wp>#}5c1RI--4|WaIKfbWNEth9gG|5Sh(&84R*na48>pNvS=(s~4FhC0j z<-9VY#Pj?@FgkC1Gz*BqU4_X{CCihc8(<=M0!5;9r-rXHi$~qWQ2g+}6BMjtxR_X+ z>GU$t&h)&@!AzXSt`SP6J5=>$Qtpd~uhg{%5mCW^Cx2*g58b#my8%`R$h-SoCSYS#(w5YgFu&}k_$2h|rhaL1UY#1v-WdDT}lWK+p=lvC{K$=hCT zC2EK#NK|HdcjQVZqC7HW7Z$|Xa)I;&6^K;Kgf&p7Hu88vcM+NrWm~V-M9;?Dp^MJU znYC&7gH^LGTN*VtHW33kI3M&rH_h?$_T21KzXfl~ zWGa35_m$Qje|q9L$fcY_x9x{+rIL_r3;T7;<-8DphSqz7pU^FOK&c4rNuLjV2;S$C zUE%){EBbqJsT+Dwl}zqb56rZk^12@PMRQE}OTbS1+_t7=BZcZqXZ_#!=XN)1zj6pn zzm~{Ka8B(dyz%LO6s4@qZgrDzAGW6wGj5WOIaKKfjf=thc{`i5E`zGSD!bT` zN(`7mqXCE4VpurfuSU?cRO&Ixr(YCbw*`O$?h{$@zmy=QL3!MmP~Ys`;|-=8TYsQ{v8xb2X3TNn)7UbovU#{~AZ zoHC>v^sJ{{9sF{}v#nhu4p>1ly7$tlOKs11Tw9g?8=%t=(>JW(u8y`cy4c%mvIi{I z{27$7C}&;5Z}k@jU&yB~{a?VN4yTNGn7So^)v}&7C|>*AL;IoD^H&fW zqQ2MW`Tb1vo2l^s0Un3`|G=ZuW(}xNNX(Sb5}m>ejRHv$I;rWN)mXNXoXf|| zZrR)`n~dL+u?-2V+Q7=gX-~yjN<6!m=UKa?+A_>q*(jrcuJk_oGp4!hIBiU|H4L>( zB1vLBK^4<3IWmMqS&8hLn&Hwzw|=u)uYsCnPrCx@*9E8=t-cNeLp&dDo? z_tKC47Oe&oy55?~Ml=0?-28sDsxN(GNxSjcMDtbC?;5}$oIT*%k=+*FW9&d1*NfYO z4q$Sg%oyFRTIdID3I>{o4!tyC`NSL<^|uoat;Kd74V(R!&!}UC#N#aZLc~Sz-dbNa+rlY>A; z*y#`_DsCz|grslS%FsHG&>46_RJZH}&$hU;<9c~iKV#3!oZ z*O>Ebx5neh*ssF=+h>mA-xGaxttd@(__^;XN++Pqv=K5#6uwEQL3+@ z+N2ej0l!SDYLUE!38HO_rjfA-t6v%+E_GXRl{@{(F;y3wp%J})@Z;ASU1(2OA=&j; z`1$TVcl+vC!dm~fmKvO7=MV4wyD#=?UG$yMdCj<3&_B0=k0NslfYPBf#{pW9OHqKfP0i1|4b7@4)Z_s}8AD#K}G8h0e*fkciqS+=)ljc8jbCF1H( zGu$=Q2dS^yjRI)0UtV`yNjq1j3$T0!s~0&uNc+=ESc`zdpD|6@?%89wW00Fy`(nq+cd%U z58SrbUnKF52JXWy4Ru(5-+v0|krF+M#JzK7RcmCR!CSa5e(t)4IQ^Bbws(6QuQwuI zWBJfQd&6;rKmMEOO6~IP#9TVz_m$o6DV{ zq)4N)+JcISNxO=wot|%U0G1y^(BGJ<=x0EbSx8D1EHB=JI`kil7x)d`^v6nBzCl%A zkSHtD^Ns-U(U30;+@&FLV$hyMp1cxu#X;Zik4L&mlznBxEVfyD?0@mAR@sVpg_J9; z$@TL5cTG~LL3E_=&xj9x2Q?tG5`6oQj~3O%wNEhj_rF8$k_?jff4qph66XlrYa&VY zTmYWzhx`*isMMiKHo_@nwqG={x<5h~l4wn_@_misT8+TApk>*3!84Tlxy*km!ny>U zZPu>7$@)rF%u>d4KcXmxdSXeaUCl_q`-}qVF4Dp%*l3-I>Ao;jH=E&9-!9lJcczvR zHBeJjQf{yOW7JE`-U@OX~W=c^O~r=#k2$QN-!VKwTYq0#}|wS`?j*&eNso@oinM7$FTy zNeOmMs3M!2N{X=A6^3gpQ$Jil42tGACbtX5r*W7HIf#uvx4GL-3&Qz~y)t3v`$MZ| z@p!LJ$1cgGSFIqhMV}uQ+AuSuZm1m2bRxL$LvN`9F%oI(Ry|XEjZ>nujtuW(qIw zd5FiGKUoQ;qR3^sJ#D}Vv3Pm~zj>k#$#OQr{TIDbRgxQ*f@m)K2bN2`5C2*P7;WIH zcUq*iUe1!mVEiTaX|pC5$3^^dVQU1br7}Xi$_TyGrB@S5K9NOhIy3rzoV=&G7>_=K ze-6qv+0rx<52o~orC5af6)0f%y)N%=N`@+gpexWPi&u^ojbwEPAS>)2`z{*8M5?TD z)x*L<9mlP0CN3VsY38KnX=AZOy+^B&vZO-^$&t&8+o+kJtKp)0vUEIxj{n2uce29jn&ao(RTJ9vrW4pFIp?!_>09hm0sgWF|GLe!sA8xL zxA>Fr*LWk}$#M{oCwFLmHgb@uF6Dj}33nmYQhJW|HGdD;{d_5VaO3(Za|Er2Nqjr- zz37SKeFT{#VZBc zdbGk`G-F0z*kFXVRcSDDsc~>9VxZ^?bCqgZp>ILL;u8anYe$2K;7<>eO0`aoF|?vg z96k?z9xKQ*{yFwx#U<}C=kVz_n+yQ@@^I*MNxLME#iW9*zV-~y6LIQ!J^*6Is`9|{ zii#N0(Qv+H;_DXb*qpN4yPTz#3OfIDqEY4}U`$;q`6wKnYe&IwM^=0r;T*=n5{}Ww8-4AC?@g{DA=UKzu!g!Ib;=F=-%R+;=0PhL)UriH#r@K8wx8j`Mw zpu?^wPo_5!80YS zs6m#+cdWLkkv)jBO^n1O_uEk7VVHUGQ<2aKG!3KmxxL=wSgi37*Cm&QjOm%l%Kxyk zL%FosWcS8NRF~o{H(>#*vLX8wje!-}EJmFXQ}dGPEcyKh*Kkq#UloOK^S%dUKTntI zbuqsBM3y8l%-=I&Vu7jO*4;B^4LkV^g1jEKS(2i zO@x?|6N{PK8S?A zbF8g3vBT(){qBb3J2`_UWkk73ni{vIzn}76+4B^Ws?R%kdqc_+eJ?n$-f$yz(f#O; zIq6&?N^CDJIm7ty!wi{X?FlW*U%GH-GGw-z(fL5|eib{fLx->(%X=E{>xjY|X}s&n zJ#U+><($|hmYg`JZKpQC_C}vzKP*AdTZ@~Y-G%eEZNpde^xyJ*czdf=5p`7PYJM(1 z>Ex<6^sY!slNI7zSZPw;I}ykc0Z8jZ>q(XcuY@IZzd#C;i^cBEr?fbFacukOiKng+ z{YM@M7buf<8jbjdIQLw?-13-~mys;*T-k zrW+wWEe+I1D_^JIw$5fsgqpf%greh>!e6~}1gXT`-pd}dhxO*cw5ayG{6!8wf2CzJ z)n5H~^bn?91+KEAqv_=N=*e%eCFA!Ce&PU*5lt5Qy@LZ2CQQG}oEy=0WP&<1OxxH> z63+f{F-veUjRv;^mU>%FL(YyjcOe6_7tOsrLL;=SbUpvxjBQ>l1nc&*7036N(qhLw zE_L6a#ta4YewwANAamb(lrS(gee5^Xc#oluVsmYLT#ZKQj|P##L#MK9iZ*j&k zJPB7~60Cnw({puD1YB4}7u-&PHE2x)?Nt36LH)I{7BoT`m~c$_g)mUN%pqOm<|))V z7cDP{o(~h*$$sJZUg6ugIOpUT0gP#{t||iijrgBlgQFD+Ug$ll;gUsxO~ylS7*r#( zHHMGCR{iv~XrG?cs`=xq}*FU1E z%+@FmLjF0!&#w~%v{=Frkz4+UU0aH5Ba7B&AUTE^9Ub7hP*&=flOJ72ZUG0keV2#h zTTSY$iFrABw+fv#@g?E~BzclAxzATL<{Qwi{{aKK+er5 zNL%;ynVNAoy#vr3SAjx0V#JhPoAumMf}06Ve_=wGHqyo`T)7DjIQeR84MHT;sg!N8kNA3z!Ky_CN50H!klGO7y%k8`%m z4DY5jUClc~cnYva@_ZOUoq*#?qR$ks1IJuXgCaK} z%T5l#tce7H8MN8~Vi?6o;k=sjeWD*sf#^sgSHHS_R<$!Alp{W`a&<&ByGKl(Ep%nStt2YKgizizebwFW}Y zWljOyBaR95{{LYVgCG4m`1L18#qyt#-x{_^qx5G(#oljOWKalq>P&@R!r|H9%(~51 zK4|r1Jl~7NSJia*qeH8($@J0_YgMuG5!O# zHkvX~KL=Q5O*a|rPHmh%e=>6sHkf2YQ$u3=jsPVbe1B3 zS%!0`EMMTJXEda6vt?0zLss#b_i7t(TURHPHkQRe+LCe$WSrBDJ1hOr_}GH(G-G}eAKvf4!7^8R_r9=8L2@^v z!orW&vON4#Fma?oKQRuLLV!c)^)uOL=jXq0HUB!V3jvPbg?^ALUfB-@Cv)dx@`r7i zl-an$EJNj#6uomlGH%j+V>Lf&ata8dz{pHu=4aYwtd$c(g|iw!iA@U=&oD~2At--G zBA#EZ8XC458N`vKRc3L_%;_7uL^m0-j8)>vY9NL4r;WK^r>1tfmbU%hTXv9_^Q;oU z6G!o+;Fg!Wd%Jae$qQ}UfuWMF9#T(MJ;2KHbg7JQCxyPS8nG{&whi%`3Jz(eTJ6O8 z4SxcxNSA)H`VAjQ(D$!q($x8Ape_z-iO|9YM@;VRv`3NCd)xdDZ7ERzAT-1mzkSYt zx?s={(iscSy{owWd(*9S)ci8HON_pnm;#JG69^VAmI1ld0{zw>mUlXnRzu9~KCA znl)CE=4|WEUXL_)O>vp1^su-spef0}*<-${q1=!~5oPo4g;THdNYwo!orV*X%D%4E zoYgW2rc?@Rhybs>fwx3k4-E+M%QkIAESm*`T9642dRg1ce?t7=*Vz>%g*4cSJ7qb0 zb9#~YL&=jt;rDr`ok&A+-^udd>CP8V|PS#20;=K>z=+3jm1{G zQ|>_d%eDjpBYMcC!J!wNc=kyjDEM=A6FP-Ek;@mZ~?{T$XJJ^ex zm%rJ|?kp(^OzPEj660?#xOJbZPUm_LRFSU{b$kJ!St(~onbPC_{`s`0Id9Rz{F~`} zlqEoyBRxfowQ6K#<<|C#NVM}!6ZIIqt(6f_e9^As;+KKqNz-eI?;9(rCLMPndwX$w zLgR0e_!JM7tae==FJ`26YI`wlg;M z{Q&h+3`~Yy;wcjAU!1*6*B?ZR-UchQT*6z_pI@O12Kl_kxkC%iLkF>j<1{hLntQYH zRCUi0!h*97&}iz;n|3}mh0wujc~zv2%hL)~{+uK7 zNp0&L@bG4i(Oqvv72Kbi%Z7MN>=h)3V=M<>1F<@J=@wEgW<6fs7aDn1gAJkag!Z3astttCq< z-|RKlKc2AoyFUe!9@X9d#3&ZcJqBPaUE~k!rd-+UTVup2zW#_-w!@1cCQR!fAKIfE zA6U~Z6vAFxQ@MUsRt@@^%QRKozlN+q>atn(3Pyw#(+x<0)b}bsfmz~4m*S?!ClC=O z9P8CSnFY_4j-^$_#Y4I2E%}`VCf=sYz_tJ1ED`u9YqV|)_xBtDm7kB=pL{yR3H%Zg zM+xovmqsP<`b?y4|@aAZ&LzknxV$T`Vx6|$^J z3YD)N|EN(JW9}UorESZ<9XOnKX5_q7?#%9yyO6+2V-+lui>)vL(A>e((rA z?b$?hLl#{^d1ZxbaRzH=-Uadc`ZjWp;C0X<42vs2&Ryqodoo5y)q-9m5fV5?*KJMi zl6J3b)>hRrYa~2wddoYwJp|vG-$aB6eM2uoZL)TrmGjw{c<7XltTm2ZiF$E5`wom^ zh^=L;*|X07$;!L(+VkA^^|@{`|0jsiQH$sWI$?5F z8_BYMFZ^xH>_R;N%@EIg60^rnUER@VP%82}faq0p1B&4V*nhxJW);|E)~D)1TB>Yt zVE&ulk0V^OtL?|PGLb9~S~eZYK#KO{a(>uft`*8MC*Uu0`XTKb<<7!a1+U)YjF=_7 zSYGu6-MAV-d(|p`hB%tlEH!Vh{#{4{*^OCxSbMY1k%ERrMKbv)X*>iAJW6sdHQNda z%w`R)jP&}x2BHa|J%OOBrUR;S8x_4HcRKYt0Mcb89@vT}|I zR`t`<*fjH$d5|g<*&(PUTT;%jOKbyw=We`Wq=|$q z1Td1k8l`z6E&5}z+@fiJZL#>ivX*4b=@~5=Fhg87dUT$V1J4Q0PeD`+v!h&)Pgdf&3pRA|wS3Y_TW~VRW zRdtlCB6hv7keBy)fy{Ge@~|K~EdOj(n|0=yE9&Xrvc&8BN?;8SQooOp$chX9Z~v#Y zof17nKPJg1Cg9QBiLSr4GR#M=$R45 zuak5$cTm>PFV0So1VtQMai^mpj+ zDvKS{8{X_YpE1`(s)+omkogj6=|;O0Xa#9Erg-%z-pQ$%Y2khqjr{pYy~C$h#s5o& zeLo|ay!u`)#&A^Ir>;K~NuJTgmx(5_^`i+g<=Uv==J%L0D>tu_2@z!;J0W)FI*fSc z%OFp%OSP6sR`P`{J!X+GnRCwfp)HVLpilj4)diEUEas?E^nWY%O0?9Br}UeI6W2z; z3Y?MxZBt)*7P^U#UjLm|(Z?Mt`c9BLxI(`?*?Uvqlx8`Xp!iWzTU#)Eyn>}xSdGm( z7hjx#foW&A7*6z|>BlNV7sbsEag!vId$%vQU}y7AIK8?)-n8c=Nss9=WzThbx2BCT z2fiTt^`q94Rtz$Wq{-P$0n^Y15?HRv+5m(Q!xY!Tb69!}^_g3AAP-yOh ztoY9uk_1waa`^M*1iYxA2xMK37-hEo0ibNE4ae*@wZ1eAywcGw`js6ssN`V$cyY;> zA)f*BB19e}a7pDKtk%O%XXuO;tL2$dE3(9vaO6~GB6q-#gs-e~@mFRw_dX3%1G@Bj zhc$>wtS~B{e?igkW66FgVJDXsjTR;Jyh=ZZG zzI~$6rcWzwsQP_1Ua}rl)S8siIh9AK&sHM3ynLuaairBd0{EdTmo3HGP@g=}z=SsG z^Q=YgSE_n~+osM>EtE~?IzTL#p$EUtz*4W*^QFpFqaZ~70;x?jH+*GHw%?cA{qCx>CwP+h2qWB@ZtoUVq!t{EtD8tgwOO4 z;kTuIh^RCwoD{Qt+>4wlyogNHrN)SGMLW(#z{9cYO1Q~`J{i7?wk1PK63Zc;)cy@e z7~2Bo0?&N*(IH^t-JRm{wbp2X_-$zu9UI&js$Ss{TT9_Ge&ICAOu`_GupAzZ@mHE-0+|6B44F=*i5F^x%E6 zCTIE9T(W@GYCRUfhzo2S)lvM}y9RI9QA?4^2Q@WG_4U5Iq|fb89={HX%Q%`CS2pn z!3vrbPYmQ@SMtIxI~$zfEhQEHQVrPDya@a_`+PJF!PxWhxb75 z0`1mLc3=SRSC`%?`m5ZiI@u7ZL_?9EeJLXY*~6<4Xfm+wjQF2-0aamLVKi3?a48`qZl30!dH z@x^IqSF#cRl7ag{(U;&_%_TsQED77ZnW>x_3)evgx&f z7fHIujF9qZw*r9=Qm32l_=~HphK6;ed7b#mjo_{1F4-GGuc}DJ!>~k5y~e z)``&;WPzSYl|!KG8pxAM+k%PvN#*aMqHN%R*m%4Gmdp6@a7y`_;zzsY{FDh5{i*EA zTAdqrH-D*3p_tClih|HkY?f@0nV#O@^wvpsjNsb0c8V>@xqDH020PNPoW^BYlB)Hs ze-~X!oy*1|I(U^SHk^JxnEA}SoBnBN(r}3flU)_PSlaunaq89DI0q_G8V2{;uBPeUL(iAQ2Ge$JU zey^A%!1q9!`WiFjRm}djbA)mE!CjY{-F=E#V6_AaN*!RbWJqS)m0RO5Ta{wgnij=W zL7SC;z^n4UrQYq<&}hVstKQeQTJ@!Zw(?J<@BMFfl|BOK#%MO7l4Or>C00F}rP7L= zU{0=fG*K9(&To36dr^bTQ>41cL~Symjqmljqh3eY=iMj&@5urdtjm!4(wBoWX2o3;!*m_@qS*(ywWPd!vKs{B-8phW zmH?Q6+5}6k@k=}t&Mpf%n$$m*leGU}eb?hd{K78J8DPp&W(DJjQ6@m?10#p`YMq%k z?~4pxt?`CZG5nqLL2^#d+4H5(5!WnKroGOgHl6d4K1X^OsjiCJj^bD-nAruNhMZgI zBba}ikXB7j{AI$YgE7gVntEm~ax(CH` zGZt2%uqg1LPcoXzpbcrFa5KpL6YwSBjgYO~&I;owB+Xf`*x|{gB#w5+;Jp+O1;=^!8d z7|Dg@MdI2~WmPhW4PC-lx*vQ_IQJ`gnUfS))9Oclq$)06xaFra%yDWZ>BH4@&A`ak z+kfe1hTiN>m$?QA@bJF@#xMMC&J!ixzj|ihAgNc2Xb%awn}8H0Q8|7G>f2=NqQV8_ z>7Q|b+(n`VNK5M2mE|}PkkYT6Z#fB-#U2R(0k~(wuHB)wRDYG4%hMCcRLX51=s)DE9+a;;?LGa9%doh6) zfS50xyn4Ns!s0w}A>{J~byh)z`lboV%I>ZAWv4IPnRE6sm*CA|--m;}ozhPYW%p$m z`I5&U&Lu1Qt{`ZsYEc!@wD+SSfymmM9nZ3ao`iQ{8!Q5CwnRtc2uNpTf6*72H}Bsy z&XKq3PT#sFvXp$HVHSV-JQ%z4ff2*EV?P$nthR9jAy6<~b@c@nGVXO-@w}ao&$wf9 zc^Apg3euj^fwKkxi)z1=v56Uh_UJ1&9qHSTMC%**y1-Tgxm}~myeC6ykekVL~w>&L>)d^n(fnm@U=lfo1 z3woN1?#O$QG*)Bc#3+p1;#1R++tptcR-e1OKF;-gM9qU~Qpk&os7>rtb=pPys~guP zk!H#5K@GlO|5}eW!g?+uH&dmqt)7K@fenOO8gntYc0fbvn+^^E9ia?zA@)1L zR<-I^XHzj+akgYHnC%2OA77f?C$$_8(ugg2d`k_sqCM-1P>uOK&;qsTY+IQ10Kh@YuE+jMjN7t!Ad?dfjamVYhf zix}n8e%v7ZP@^}F47X}7aqhf-2OaQr#Ob}IP47ILja3%k;|}nZ^`||bDo+^T!5d2z za_5ygf?F5>#CcQNYOpGOulGKG2~jA^@k-Bl-U=E$MNX?5#md-!db%}Qo_Mc~(0Th_ zn%yY&*&tCzWb>jXuPTk`C>jd`4Eajw9*}26i9J~XkRDUcXlnRAHYrX`RqIv7u((&g z2<7S+L;k_p#b20Iifg4VM|?YjEZSOS?_zq0WJAVlUa9wE_vTJ^1l;PuaMcY%#|655 zag5q}&N*l(AI;;txPj06d?oCi>itKnVT3`CGPkp-cgn zz}kv+mr0T(xz~cv6w}?V3Yv`js{}9H%tfVf?Lfq_Gj#PvmF=l1f1=j*W$^3wE@srU z=7-tb^L`Jn)jlj5ruyeRPk+zl@%ZtqJg2txjYpoFy{qbZ1_2`GqYC`M5 z^r~E;e0%J=dtc=ayb0oe%T3wGx+W_8dv3}w?dv0s4eLgf z$&VB&runMFNoMa<09vH(HFUJ!>ALI}QBa5Ki8R|GwkWz!av_to^VUg9UzpJej#p6B zXfTn843%v{F9XVtd<|2`qF-%DS0`(Y22e(xR$2#P4EKM^zoHqIKEC0o|haiq>=58EuE@Ls*a&9S^x{u0+B}pt_t94#tL$WY3Fw z;^XI&XgDc}`NHum{;N2ND@_vJ(9fcGS_yZYMHM_wGSVnSgTH*@RIi-sp`A4T0D@L(Jb7&UK2`F`b;}ITEyw(Qv06a3JJEdfMni!t zw{rbE_4m4)RI9b?tJ|Tx_V}txPuH;Sqaa`Oi?v3kzIVO<7!+^03S=!vbvYu&I}t)Z z$z8#y696UUP6JB)s;WvjeP=Tw8AwM)ZPk@?7fH$ir|ia&qJq+XlJ9W7tA7# z`zeLU&)n z(Jjta5+33?H2Jeb)FkCsPMQv0T*X}$)771fFR?SE;;C6LZTc~TR3$Wxx);s=L4TOo zhmlW!4E$uHvA0%SQ)c4( z&;GfL)1N~{*pH~*HIlKUUb zRAQ$eGWp;s7nx0x+#b2jhp?CxFwKUY=6tcUkmaL!DbxoKAg7(SNc>Cd`h@ktgKU$@ z<0GJ6hs@KhI3)>I$t6&5mR7egbo*P(?{_Bi(483Eu;>g>Swv}n#1!wZCdtXyOY^j# z|n|Lv~|v@%UC_0m>v0*;V0c!9u*#?JSze6 zwZwxvsrWdT_kqH?+W&I1)+YPSE*_Mno&7@MuIzVw^OC8ar3FDtN_*Adxp|^-v>n;r z{+lg}!@FgnC5(2$k@ySH9O!pYQ%B=;a9tM9k2SjP(BPHdhrn6GP?%bv%O;j`9U_zd z*qzmv))Wi?asPUKPESUG9yg&l!H3 zVcOQ+tBQ>CWtlc%VUxi>3;9tXgmO>~y{0q=_Yl63K0Ih{b*O(=%~e@&O4@tSkAb0l zIAEs;`e#%V&+Vl{$=Hi9M@IVdSLJbE$KJY6ndSBNdoz~xAe){ezvF5;XMgv%Z#YL` zLZAO4raF?6>Q(Tcc(g~NukJ;xq$o=65t^SAm&u_AXd%z_t=9x0Hbft6xmlnzoLy6Eb%AZxr{bmD6l|(+?01F;2 z;+)l5EsJh&kqdWm)!I}8*6vNN5)QR3I`L`!>L{yAfDaKzrPF@>sCxZiKwzOaZz z*J5tdiaz0}ZI{bSYg&fRaIwz9AJCN1XLN9BG0nTAPN=>KgZ=)R$;zxGAN)GBiSBy} ztOzb%Cz0>7TANjw>NdlYM^44S_1IERwS|4rEcA^C0`=AV2^MLuSl!AhB=t`{0a+1G zFxe9f2xoQ35wpdWS7fI`kgemlw^QrzocABB#zlD_c}d26#PyAQGmB1M2 z&O&Uj!bN?pKg7G~pgc{$85?Jvpbf8H{1l`ui+2!qf_8AO>A2?wb)~)E{rz;FwC0CW z1K(EP$u9VO8e0av79gjHW>cyoDNYC(w#O92pg<0~}?plwu3mHH}aN4QFVG0Omh z7A1d4qkWql7;}1tFz8hO(=6X^@vG@GcILx3*S0*d)P5I!?2W$$FOcHpSFYp-Y>qxj ziXHqqH9fxF7U%d;b|T(TYc;#6m{U2^2vt|1{}h;_GKH*5m1ey@_$((2nhh%q<*n8` z(YJrOz+n4f@b@TW*;ijyq^#wGP)-K1pD>eE9>(Bepe_U9{H8NzC?uWl(}GlM(r8fo zYWSG1ZW6;>?Oe`M1VP@_?+{HMy*~Yg<3gnEl17_>ttEyYwZSOd`V%th^agW9k5a`} zb3dYIimS-f{LMIC(P;=|J_Nm&IH^czNz;0Kx+Z~q|W$#qjVCAc(fdU~wsv1q`rm%ti%ilWjWNX6w6hvg&qKUkIJXVb_@ zVXo9%TcxCXnemIgy^4j9%AHc>fvgeyvscL{h$ayry<}G35SCV-MsM5SkJ;=@U1DfA zSN{V(5vbfV^f&Is7uQWXXXk_&Xpz<=@{tW-)a_-bD2q0aW`Rta0-oRBk4r~z%luu* z(Ben$_)-QwSRBB0L>$YbgFXrOGw8iGJf`;u@t=_;DSwYERkC2*(g~L~+ks_@XwW_U zjU{GZoiz|8fhi3nY<}u^OBzfs5;dvMBK0l-6&?2Qa`M|y zh1%YQ|MwAFPhXGZ`Zj6s1Y6Cq}w+?+bWNE<>HTZt4D}^(JsP$hN6!-eTzq zpN-e-$@z2{J)sve?8%qWf_urv9d&YdAzK1o*Ad{ixJ(dk!!dZmiv_~*zW4m-m4Zjv zPo8i@%{N6J*2tWvwOQh4h=GGR%NdEkGkkmpJ7Z!9O$}GOGDQjJs;gE0*wd+nhH_EL zBhlYmtNd-Mb=9u6UWVV-!ubq%kVZq6^&ZZ}R8QXQR>E$$LP8i$ls69{1n7_rklfsM>w> z>UJh10eit5OkFgSnNq)qkYOHEk@@B=iVpe#*Hu(5>!LI$VXquaUjEWV1Xj==`Gfe~9^!qU-Ce2>Ey4EZn zeg(6d+ok7!@|FqOWshUe8O~j!$$ABHD|iP1m$FH}=Od-6m#;o3qCQwM_h@lKVC)c> zI8G)hd%zg2U_PTfan0uedRK!ne8QqW3G~%2%)cgJe<=RN*pIn*T=GzNilNJe(gyh_04hp!bSM^Kt;T76IMub*p>^dEqYa8h367lD^HYB4!N)Cl3T! z)K)fgms@}~plDr)F{aD|^8-uhNkrp4&AWo@5!c+LOpQ(TUkBIo%cv7wpcf5(0nBH} zsh`vEy|JTyFs)iQib+v5GTbN(_}zMS{_B1gefn_Zb{f*8H`&)D@u+q1&*Ha#uyR~E z;#^(cC4U^WqO}^*7ib?5w;z&S&i(-8yRsUZyzQ(VM>QuOc3)x44Z)+?0^kKm)-Xj; zjK)`Da9Q~a{n9B(#YFb46;pBom>j~ALJ5X>O0CN)g$Zt6xmR! zht@QmsQ2m!gm=k`)4EE{RF+o+EXt9gvE>b$3)qan`&ChUKFs$*MyCiZw74tLkZrzt7kphqT}_6cod)Aj{S72ciS(Y)aidkE}+fi zjN;|{Zk3%u%V?qgGDY4g0R6+lpjOO`q;OO>1L8hKCcCxxCmu|8y(Mj+y~L=aBlQp%(JLCdgl@zJ`In;EL~{g6}q z7xZ^f_Vl{_D7gON7;cJ zXsxRxy+O@LJWYW}Wjzcdxo?;8q{9<>C%|?)o}HD~koAIYnqA0&3m&a*k_2vZDPI)( zf6$~!I<^vPC=JS8Hz+J`?Wu%jpWx=Rf-bl4BIHRaVS~2zkMLl4)COp6=G}(@Uc}hQ zpuTwA*~03io)PN{9`$U}fRP`yXiRZ8OSPDUrK$IMd|A-bvC1DxA5tkj->_Qs0XBl-puqGG=`}iIOH%05;BYyMaaP;tTlkUW|)2X+Tc!ilvvG7w~+bv|O+?4L~ay z+v*l*HmY2`&&JC50dcC9n_sv$wI*5m-RLyZL^P27)BMVF=_9Hd+*k! zJ%;suaXj6ss)1c}Sx}On-apP|Cw%0cfj56YoDyt-=w$N(PwRvNd@X7}p4 ztA+n^wIfrgFv8R{;(cExkEheeC2i^JvMed4FK&!_E65Q^QQH zsirpsw-cAaHDWUwXewzH`oydM8tVk~vXpSB*lMd<{yk}PJDLekk*7CM$BGl~%l+mW zDAd}2=r6I$#r-s`=pU?rB^_!rd4{m82S#v09Uo^ZtAl}S+RKj{`JJe8aP61+N!Ib9 z7ay$RZQ@qFK$?0o>Hs3J2D)lar77>)cMra(pp|iC@XFtAsQYzjwqx^##yK68%X|K0 zZT@|~y%o%fuyWEB^KoD5Vm%}-&(4B5Z;}pYAiv5`S1~B=nqewwJ2NUoB~BAM+e#EVYi^-(g(q%x@Q{xpANhD*52{tGmW25g*5Z-I_6{Ra*aO(d1F(@AF^T3Qz@% z6eD|~`L&4?u={TVylj_+6elyn!CJ-C$HhZInQlK*=T4Jxw_(MYdo&^d(BIuxT=x%F z``cTW1iyNw!gQ~EQ2?}&vZttK1v%+C-_a~XNO0@EQ>wauoa({ zviT*3f4REZVXkzJeoV1Hu#Xj@K=1drOHK;*at5Dw;!oj%js9)@j^pa6<(N+HMw9b{o7p+uWp&}TdU+S%#de+Bq*vf zkEG$h20J0^5VMLlFJgLZ*N-|Qt7idNi{4CKYeE?O~$^HC(@_MElG3=36g|Q{6->?48PK&YQlZ?+s{@Z zH-YRG`o^3pO1z-4Wi!mxTnwhVa=lj7UblS`4M|kjCW$m1o9k>_xEvfpg&OJmm8D0d zk>fIXU=|KU9r8oEcD!@|9C5<*6eF=GWgR~8n&!Qd%EslHAEg%&qdGHQc!`GW%-3X^ z2dzzAH|)hG#WC!T%FnS@mIX%-N_ztcB#iL=y4dQ85ap|C4$#lvSMwCiYD^Z(G3)f5 zZO(XMRtN9l_c2GN%fqqlvUAfqP75Au>gV(y|)IcsVJ%axn3DU z8J%HIn>^9gM$TsdTMA>K0PV~klq_rusG1tSr3@fH7H1>^kjo??ixuq%!~Vgdb$xW< zr^b+-wDh(BGgXHfvz64&N&1zZ-Kl#ay`w*WVjxFKnL%sSS3dR^p~RG_#YQ{!y8CoS zN?n)xN#Vz(Z~0dY?YMieM)3P~4Uat%dZIR~qbe?T(?Fb6cH1toi{|_b3DN=-8?R#fc)*s0p*Dk`#k!xG-!5_jn@{A#e)XE5DmQYL-_9HLUSNnE z1C@g(sXUaIwqk^xVoO1Pl@A1a8phdv@%2*FwVv(znorEgf1gWuPxEKam)2LRY_0JS zK5aRV!!Q2GK`9(82E+fDIuxEx$w>BtQqMRgA;zvNZs4(#BU!^AA{0}||w z3_XFJ1BbF=vf-^>&_yaeU-89mJJ2>vq8e@*rZn0S#L$VUkMYnLpg&Vf0O~1^;TAVL z4kdBLQf12)JtX<8Q7MQj&e+X)VnzcCLA0G-a{mN@kDv*Qi+UM&1Z zOPM;4z&0U2X{v{JydU3W-}wOPR%^)b|(>tf(Z^7v|)&*TTq13X5A(EK?-AfP22a zwOo)J*LOlSO%+FY`x z6hD?|GtyHH?~a6{XEa2es97D>BO-2nu0ooy13C{z%ht3mW2H^+rH){Euo%A23|tM6 z4TORB(?}+gm<@4bK3m4?M5;|6p9jv2MK@scB6h`EOmxanubFZyc~f<8ptG7iofsQ= zo!RG@$15yu&X(Vxgr?|;y_-63EBGw=|uRIYhi{sW9#9D?HyPyq56u6}E|5e}# z_MZb!K!7@}dj5zd(@<2zzFE$;-5K&OFhSX~$TG_W#XPuO0)(U%XA3<$uBS3fEHt|Y zA`D-svl-fsE|FDShFmUwK$z1wPGbL64h@Dq`|F-{BrS{V)T}{dKZM@>L}Ev$W?HT`K3VJO}M7P zg?Orteq4~BMH^}N#Lylr=C>qe+({Od|7XUlp6=nj`IB_RNZ!apV|M9yqNVHbC~&H) zYcKw(`ty?qJ)y<$q>PgByiu-p#-4r?*Pz%f+42}1zN741smKjcLcQ!yAIPh`I|slI z1-|-0BK|q){XZyc`voy8K|N7NePy%|Xwm~rd4_DVyiAY?;iF2mq6}FK`rbxIC-NZ^3y@;(a63NpDQ4Xukuu-~{eO{PX>AfZ1V+r1~evyCU`t9Pa zJlXFwom_t`v_5JZ`bammIE^A1h{mW6dt9Ag5j}Mz-oWtT zo81ton+?u4758ZF{L{NrCL|%cwvSKU7^Mybs+DR5v>@Va%Ng z(FqnSe@@o|OgnQU9sRWkn$_`AQllh&!9QmK9(cU0axx=5?S-TEWkDHlzdta@H47A! zaKb%&=%qto=3(*BmZIGBLBz{p{`cA(3K;taKC0{31OPvYQSE=h&MsH5cGu>@9?8wF z6aFEG^>z$|fUKB8VNsIgS$;%ehPXnHS?C|yYTk2gR!BgYd7M^`#iShHv+n;P9lVqD z!fZE&LX8mWcxSMewx@Ghm!I3~nr=eQ7hpu&BE?LTolk`Dj;F=kQq$EqEn*Sg+A0|-6r5u*cw?X+=e&)pyYqG z$_4ufe*)JH>+2%69AjV4<_<<>1JGDQa_>n0R_g_iXwk)>AX!`Tq$6CD(2d=lytP zIOJZ0v2LvKK+%f1C+gC85#zt8ZhxcP-7#!R>_=M&veINF$`m-@l{ne($5vjy!ff(2 znU#pFJ<{ta>AEPo_sV*+#6D5Q+z%>S`SjDS=9g;*8^^wV8W7PC>r%(#T~c;2!#t#d zBl6CJgzf@2_)hMoG6{#!jmNb2_iFj5L3l%XaM)W6eh}JyDZY9D&C8;FOQ+kBMYXUo z5F&m&-AMZJ?NDC|TZ3Nv(N%XQM&l`i>=&;3^qQ4miBWh5VPJVdywDbWw&*Q$FP{Y| zjgI8ydEE)oTnr94-)qiFlYov6dttk5V1B}|DH&geH{hq8x5COr*AP&|YY^{4#!q35 z?r4vaA@#nP_dPrraRS~7yP?k)KB}?ACj@@Td~>yMiELbL_~|H}vyqMXy-EbowKsM* zl^A4^$y=6xdhJZLPL)aQmuhV5E>$Q95&NGxsLeci&!kxu<<8o*a81@&^1cn5ywwlZ zz~F@kDbkwYR3f zQ$ekD7>D%L*>q`4MR_IKn6$HPwfauP;ZliA*+AgaNPqmFa0rCudx-)zwrvt`4R97n z{`%|3&KiLgjQ*6bNyws{f-Z0n>NN`0mR%dr-roefze@^;y@V z{o{S@q;0+L@34}2Yxcq{n<-aT@*r{5{Q$kWAyy>^%4_kONYyN+ua@))@!@3;3(l2J zCa<>f#m2MbKJNR9vI=`~U6p(C6|~VSHi8Du1zyw-F(jfud7!ui4b|0coG=TD$(`i{c=7R$SlZ3bG#s zULNmkR}3{$m{NfsPE-@yT$R;oSp7XnRn@8akO#j&Fy}3pz3@8r{z2mKVmLz^th z8!2x6nG9s};lmm-{DToj|5dujt^t|Ha+kNzt;H7pc$>@X5f}?MqrVsB+V|o!c6ssq zf?MhG$hY;%g&SI)r%QnRn1$rEQBe!+PTF?#AyQb-%q+iIjUSc2Oa|G9&{)$N9 zN@RUrb!}xAmP;aMnvTgy(8b0pAF(`#qur8g(w{Ot|70L8iZ&V+utNWe|3o;N*_$cr zJ=$|!pb0REc)FR=*b?Pv)Olg#Mx;5HT50R%)pBf08QNaET^!(v*1k2PYrno;tcAch zO3I>mhq?w#k}eZ}?jbBvxQ8hI;Q3SFt^6Jt+J?Arg$1bzE`6Ez zm?-ZIo#k;UdHt5VBNF|peV}%GyL7F$-Uyl=H&&kU9c3+Wlc?xYVePNtq&j1M3NG&q zC-O|ADoOq_^@ws#*sA~UWN#czMDvHfE(@usmg8fD;V41lyHlyM>>F2D5!XncOn^V& z*~i+qI}S8H)>%%D^I!ej_GyN;L-pHq*)$qaU=dvwlQi+8pb!ysHLJN;z9>bQ3LJyP zSD)E96O%e*DaJ(ofd`)<&rW)R-=}ztdQj0TmyCSkqI=VayHdmz{NQ$uMi%cS6nL~2 z-sBxz{<4Rphz#rSun-QFRfXk!)z&8Q@Auc-AZUutf)?%LuqW~{5?P|c>~||fU)GAb z9TA$ndt&hr#LB98+1bDl2EQ|fzIc}wJCdF++5b_22^G#ruR$c@!8QVT@pxG+{_3o* ztIE0@rB}bdvQJK6)188z&g~I=TxauCH#~;s9-LyJf^W;pITY>H{q|-zuZ)v2p{mT@ zFg!5kYO$|RuN9JYZBb1EcUuphJoofes&J4JZ{?KW<9@$yo= zgm@}`9K6C=35S$@c|&J;HcT-l;jYw7c@HXcQa1G1VX3|3C$b`}L_$5$P8io3;?8#; zDv@zn&IDj|#LWD?U-UWOgT=M3#Hl8lF5e0mY)K?pUe>PaAcGa-?2C;bEvP=1xH*7Y zEs*H3_K|e`Pteo4vyj&R4fOQwzXUz~(MWo-KX@Aj|Fbu}eU2pHf&?IyQueoHKA#G@ zdGLi|<^@?fO*KXu#0JaCew3v3VKADJk^4nDBqCHxj%U6vyvkEH5S{L-MQop>MP8Cw zJT8zOcRYCUK(90)Qq_@LQNA@9J2pGi?sjl7{WHkf75m7~Ql~?k$9HgX*Lml48WiG~ zXd89Jwp4J z(kc;@N(iY}OjqXuLep^kLoZw`m_#DXk`fo8FTzLvCXcH{hVz(P4ct+}Qc;}8*{-ml zvo}U7*EuP$j*z-=b|MoeY8T+Ajt3^2`*6TaET2W^R{yw6KJt?^19tjqa?m7jOK**; zDXbkhG|L{g-=8tv=e?((+}^+J$UQkUx)*VRtsxN&-c_EN4$}VZa5P#fEiW~}$789! zprcbe1yh9(6amqRbUgLQt!!3EM{W7))bon_XT!{F1JzC#%LY3O*ks>vGG#O-_wuAg zG#`Fjt&N`4R9|qZ$&~!u)8z)jO*}$3x115Cjt}Grt1#ddvCtlLC)dDuw(|4i9>v_R z$@*$JL8HRxIi7lpenthKzB-muF*GW}G2)1_BQywK>b~0PZer*C`dIa6OaH+pzm%Dw zD3??e-D?CSM#W@+u}}?Ao$$? z_b5*Nd*)Gsmg9f0qHa>Z7;Nd!Xasy7mhz?rh4b;=ncCe_YdjK-38SwHbXR&X9lh|3 zy0hQE?QW;&^RRTgcCnR_g!b=`(&>;lY}kYyOit>n>`(ui20Ton?AF6Ayn>A`WkhAn zlp)N#3Uell?X@lyu&qqv=w26I&4Js+v(p(~>W-GWwdz`r&u6%X5Vn4={J~oc^V{um zC^|7YeptVSLY<(H-<9+plPZ%6+NJ(gU=0W?@Py{jfyD^MeH-S^=K_2lHUpAub72%B zo~^!5Ji78Obk-+tHNRiJJx#stlrMyonZU}F4wwtDKcg`r8cNN!T^hYBFGjlRV3*DK z1uTUesJ}uM`vY)i`&&WniY0F~`D|fX;^nlutmzM0X3;s$W~Gj~Fbn-*R}FOICx_Rt zI`u36+6yFFPq@)}^FwuYw^q5yPZqyeJr4b7UYq=lu7!;mLlNEMw71UQM}iDtd9K;e z5Q?Eox3S17D#F@xTtnpWv_v9Xk4)&Zh@dEpnvO`Zv$Sd=b=Wv^gnaHfe6OqM^_XLl zAuqm0kRXH8s1AVe8o>IAUV$R%0Ep2!A(PxbzkL}f_pIg*%FP5b>NL>^+L8oiOOUpn zOg1}TEnijVF=$8p8^Q?$%iSsC>&wj;{1#lFi*q-7>)JR&p@CyN(n_LkR(6SD;Rzl| zZ!}$X$fGgw6rql^cTc2;k~pMku{1BbvLLQ2G8f{ z0<8JWt36(`FROey>y84`d`&ZfN;C}ftJ;p*xLq@LmAUYcNVrglN+h7g?q*xho>)%4 zuQsIDfUv8~LGf^xK5TE7fmN~-TwDC`;eEBM%F0Gihzomy%JM+=@7u(4k;W+@#5O#M z>5LLd$IFSRM{m}5ud|@V`-Tk3e(1jZH4x@N=nd~7y`1@0{^zNUQ@W%(W4Zp?y6@}K z=g3{sT8~4;n+OOPTNHm>(%$X6+294-LX(YElU^)1;1BVeP&&5;eDBK`zK`Acfi;y> zGa}PU%-k~0&+?)2`3MwW2d`{BVlzy0dHp2Y;Y~qogH`s}o$m`hsIX&2pLD8kXHMXq zh$e_NnP;Hg1WFJZJvlUbo3H(Lz#&Q3H}3NBP(EnZAZ1PeN6re{RzGcFIk+6cV>+3+ zypO7G*}D$f(MyVw*punaEtD98- zy_aJunF0~OJIB`h9E1M`%e(BqKj@o`#@tmFyv{r&nTO$2(ghQF;5U-x<^IIX4)M*Q z0Q9PE3BZDIA2P9}9(fO};j3g%Z2hoh?Ga?PQ5wJS)h^~TL{Sx9cINh_ZoRxkTU!?sF;C-xu^LaD&PgE z#vTdQxNfeebay<))>v19nMQo*E=D<{IAq?4e$3;g8!-%A+lD!_UF1=s1eIqvQWilN zLjlZX?nlV|cEDT#=FJdh&i~};@s2JDlU6Zp z@;N7>b?UWb;@E9Ql)@0pnJLR2U#uW%D?u(R><4eY&2>%Nq2T;k5>RSga-6UK`w?P% z3ScSTxwLf34#W)&%_81t67+U(Zaj(i7POt+*(-;ks2A}dAu$ii{#4P>b{FLMeE2uwOWE<)Np%AESrqE=(5&77EAjk_jHj_7&v;fp#|iSkvG$X(CF{OK%5YuN#_s zQ9Z+7XARaE$QTx@>GDaaLa+4`d>XI|`E<9a26RK~3GU9d#W;ADi`xKsoP8cnQLXIn z$@U_jnBcKE%$^_*_;`CMbij&FOFlF8BeMrk42=FH0e zB~x|fkJ`$!*xGkOe*<;1H6yg7-^36uO3I(z?#S{^50;2gu#U+_@lqyn0xg)*gIK8Pq61u=TxZb^ew!@$8GRz>o61 zZ6RG~`<>Q&MFOs3O<*?C?T+6J-R3oz*Q9**vIexi;ibu{{UcNH30wu%Gu9LIbTxY> z#!4XIE~>jnJI8rSb|wPz0&R!cRP=I{YW+OJ$p>4zwg0Y82%{=y8I{ud8aD3ej~<;X zswkTmoT-3^* z%cM@4x!B65g=ZBl?qR=y&bg_|Kz^qAucdKP%&&M9t^f3%A#Bu3ght7wp&+UJzOKUi_{RjM$`9IG;DgGD!sr_H^PatFCTuI}zdO!4wLvgm` zHN=o9D+*5_AD+`&`!WDOSU~J*$!&LW%8^ejvmgiYbXCW;u#Kd-d4_l`$_V5D86B@j z{WtvSac^`qk0j#6+9P)Hzzw0LgU=}QaNP8j8yYNn&v7RqM*a~EVg1welMbWE)C-f@ z$$3?Nj~{!6ne_Vlf$jlEtgei6j^f!)qF|;&RCJps7>_7w7|bdKiT}9eiGQ+ zSwnv#_O>s)WJNzH1jsN->b`w(>M;{So0-c5N*JToolCe~cRt#xz5X;Ez!P5IR$sg} zXW~-tb=*8<)M=!F9N3|P>#N5tlvowL029t6EDZ8rFvI|?z-^lyo;3(KKc;*R#LXc>mC;>hH$=rGwe-4hMl;oB#(V?jYZt=ClBYXx9piAnu6pz@4Xp>&Z*ssQ%3 z@EN2Nnr!rA8GY+a6|Rg3-aBexx?AkM-XXtF;_~Y|Oku8oZJ6+;>By?Hk22c{(Zi&Y z0xEVVO~+PM$;yTpE&F35zjJTypy6pKuh*w-3oMwXMQ71W-Mlp1(M1045va^?Ba%A* zw$I=EDr^ZY#8f2~MO+_i_)JgtbT2^ADqmhNEy-S$T~6V-H0q>0-+AQX+=MPDm>VAU zYt+>nHRBW@=>4bDes}2B1OGZmyd{&u|Bnj28`;yQw!B%RCC_vws0E{-C14bkWLoZztH_Y z8oy9g6X+PMKV>aoZz#w@r@{Sf2k&U1=gy0S`)6-5gX^FWrsYR}V824c)CfbmwZEUi zllFGeMoj(J3R7AZoGF0ig*@QlH+#mox8XKcA6IbpC#gE-RhUETBR^(2tN~vy2?w2( z8O4Z*U6){X^7Er+RQ1(`J{aaOuw_b*$opakoohMlZnQm8;yoewwzb^Cb=$!hi;k*Y zzrXj=C-TA{aAqtnlYU()EKs;By5q%7v<_G9=veeS%trL+#I-={3CGLmyW?@gMx z*^hOk&9=?h&!`Ci>SvbW{@-vDd`TEp9PXK-x$#>1z`f73zk5EMWyjpN)LR)ox=b70 zx_dN%I9`>t=8U%vlrhMUD#(oU-FX?G2PHwxu;J0-DAbF7o_`teH9TKFsr#m(-nE>l z&70j%Z;y+b^Y=ZxJS%ma6qR{(egvD*(VW>h*6qOV8REw2-!?OOnF*1#l)%FlINQA# z-}lHW;b1L_Z+m$~nG{tLS0Hb%Nyil>5t7*W_*R4wPr2Wj?$=^(FmdOC_7+0}bM~=L z5a=eBt|CMK8Mhm`et_d6erlKUa$V1@9|T5d0Ez)IEP%}ql7i}E*Iv<@DB`f!@i7w| zqdyV!z3wM7a5V*Hwt6PUr(PWIL z;3Aj*^n>ZdNEEtIwqDgp8K9k-U(=>lNt5Th34Sip-;{ppt2U2z1fX)qf@maoS zV*W^NIXzzR`ZI3VGz-pE=hpLyVR_;YUdk=4YTqASnU^cXeY_Yn<#U7ee(HmMgj*)F zhBuuZA-5}eyZ#x7Vh^K=&xEh-JDnW}%JB6?KjJbEIN)%4 zOYjyxP0!c?UolG_3@NrYrk-CAWElN%p*f2#CFD<&e)1?ePeQCi?JYri(F==O2y8g37EF^n5#fAWAB@(Ui;ww+CJ!HC2|&f4Xubsf;*L&x@$I7} zb6NLvN4}nq0un;k7lNX+7h;YjjS=#|dLw~;|JBtHT5*3hHhkre4lRO6MD=YqbtRj* zj`@$zg{u@$>z)JTHiQh1K)1jL4$5CRhpv`dcxKok_=q7v-%-bz@XUn)v{92H+1i`c z)>YS0r)&#(bY&M!>^MW)ViJbVsX%Ec4DD?)4S0HO8Lz9rR$pPZ5vhtV+%}hIkmZ?R z!24GRuQgty) ztV=ja(Zf1-27`k=4~CHKNi=(EMaXu z`u%@x`wc!XZT&0;N8k@qq*8Khbqf5O3@wm^`Qy5?ilMa2mp1PxyKnQp@G)lU()02zRi z?!145v|lW>ddid-pE`j}c?OW^z~{i9FAoJ~KkZd90HA2wOdYP!&4$;UTC1*Y)^dPY zZf>tb+U*(1p($m7hm%K{qAIn!6Z5H={8<9&ZBj`%n6oghU;QZX)hSuRs&qSh?T~EZ znB0OYgX}vi;#G_HFiLUQ$wC=~DN_m3m(|3md2oFQ-7ah59TT9;%TGTgxE$`R4+NE_ zCG6GrvDVmauB4XzRMSJ~WK&Jrl5JFt1%Lv~rsq8vbOFt^hB~h@c%E{aaWJHw0?M@P zpwN>=>rSA*eXdPKl{sN6Ntcz*!qR1n(*p%j!->wvA1$99{f0NHW_nD@q&O^yU@u*v z3HuY*ettOOG+U%%!+YX|le%Jw8#+X51^HRd5iX~-H#^_>K(cFXrBT!?{SWUsPlPW5 zOQy_~=>jqaL2Ere;%2MmB}TbF!UHFIY|Mt_fG)=q>3;Qw)&iDSWbruanxg#;#~8Bh zC#TFBZ8k-5T1W3J8bSI^^~lL;NR1rml)yKe{`@LR;?f>#C#wPAjFX)Y+Y#7>R%%rC z0QO3?1P_WSuQEF>5!wR88LZUJ>6CJAKWI#NM^0#*i~Qt&qoqwL|MSu&Uf@O8OiU(8 z!Exjka)efl6EMZfXp28m8TXi-$n0Gqj=~YAE&9+q2PQ%N!I&JeNLFPaP=7>;4c7s+ zb#HjhG~l}j|AxFi$`nt)^K=xpC$e+oCK=p&KI5c2NT%|t%2Am5X6H%7@*eWi5?#`w zadr;Lha&1g+%Oyxk+;}xGY%(7Qh)b04UGJ!x9NYIw<#6H3kM9EN1TdZoJf=vb62TI z!R1t<-uh-A{aQLab+R>JmBRSK{Sti@d31tQqYn@0(Fdq&W^{*v_N`HnrZIM%artm* zD92<_dLiZ6G!|fWfE^GNO64d3G*c3xHq~?!A_4)v>~Joj*1>V!vC^?GM@r0xF0dxi zE;vqYRn4btA5x!^NCVT2u5J#Y`E=zKmc&5#>6VZ@N4(SI7H<-z%>J95u1ZY0;Dq^9 zh=L`KzGegqXb9E{+!Jrf`L+gc9y|ECqZ>LupcA-?t{ z_#Cpm?jQ6tL(=T*dsCiruUgV0Q6bP=*172yL0g25bC!Q_`&HG|7G3*D-bleqXj z&dy#t`35~BvRPU`fP9yk)=;AmoM+V>-*GC0WNEyD#TsH|r$(13Vsz_yx(kV>8P_^S zK3!c9FX$*o)4!J9sY2@m1evwXPtlXW$Fd(X@7hE*LAS6_)aiJl8l6rnrI|Tu9g^z< zHWgJs&!oNJm&|A{9&31iFW0~#KN=Z<6+pi7vGs>3V|E=Bx$mx4809ud;AcPTev^lt zhexgVS)1Hm1D8aI=5Vt8t6)$1ys6Caa3(U(yatIIw7Ma>*z9uc`JBwr37z}c9CjH6 zmuA{D1SFU*BK-nYJmG`&A zLYmlQ$hiI`SM>Rk+hFmO&>1RnW3N3&Z&a+oM7^gIf4IEsaWtW;t*vhj zzqU7Y@F>Zy9W;-Aqh83fdttzkV*aAdlDvb}&waT^74I2Y@!MFd=O0T733sb|A}rW- zy@$JyrRX-wc$wz{GR(wU?VdPAXA8tBym}e+GTBq)`aOb8cV8hc37)QHtk$5!h1}f z#TLmLFlW8J<;BNn@q!^$dSZ<{$LMm-@H?-)SWaIB8`F zx*3C;n4~W#&n84YJ!kZ6bjdICz=w9=E3RH*8Y*@_DTjh`X{ApL`)XW*@;M4DGx9|L(iMEmJJ4Y4tFW{@U5}wh6 zE|P_i=^G;OD>wN9TdHc+sx|dX+mI*dln)NitN-xZstvo&YiMh6UISiWNAmWkC3#=s!n@kS z)#dq8Utj!DqBvItkEZ2I_WWR5?J+6*?=iLY+LN!J-Q&GQDq||fVtz9$viB%3Z?5A< zt`^VT^2ti~kYR!kux;jiqB9y)0-qQT4Yhx9=LdqemHld`tZEG9=eFdZTv!J60FS&- z9ydFf>64=N^aI`=1ya}OC!_J=)*dUUP;P=)3mtv9z}Rs5?FZC3x|Nit`aRU9gYWTU zEU-F@ghmxCD3&TDs0Y%E=j||M>!Dn@@**Xgs5`OwR+uNw%wtBgUjtiEW<(WLJa3=# zlU(xyR`VmZikA-6i|CzAshiRR_3A}a@6q%*BXc97<3U%jm{i|2U5-7Eg~Hj%{@JhB4M zqiHY|wP(_;yoj`ANk364QTu(iooU{@GqN=ueYGaH3bWqq;c}|o1x1`IWB=4RXp%t$bG?Onz+djvMk};SUA^PO&3J) zz1;cI`$3#pOM5~H6uXeg^W*4TT&7={wtlO@^Y{pzstUF|6+oO%st`AQ^}xLr^TJlu ze6{*ELMG*VwZxjt?uwUo_G<TR=EHXiR($SHu-RcE&;nx9puO%@3aHeW{-FF;;gvZpA7%+)>#f*ql~L75QIoVx!a zN1{!X}ia5uhG?`(Dj{C_H5nY=!lpy|Mg}y^x5bNTB@qT$Fx9% zLw*_Ee}_hd4EVJw!~Tv4Eesg=g?Nj~bE!;WQwSQje1@5+2E28%y)T=)ExI1KTP_@% z)cUTg_3a`>E%axwWyl%|W+J0xhRd*?QR5_<5+M14^tH)v#@Nn0f4@J>4wqT+Y_eY4 zD9fO;)G@suas!FpFF8_N_-V6rPAJkuo!%I#uzn|apx(W26xB)Crx2prMJqqS)7%P6 z-*jRTtHWeASBKE1b6wR}fq>+Bs@4(t!m`}b9W%_@`}u?ah6s%}fEW~A@o1&L78JEh z^k~%BvGJ6+6R)~QdOxYUIjm6OAurBQeymNCAfI!BAdt~aPgTH2Jo5+(iw3E&Vl4;{*I4sn&y$5jq!lp-(3|$J5$5 z$j|B17D9Qh;?nb(M!q?Arwdo|p&i95>+-Y~hRg83VW{L?@Awsg<37=Maz_b0+QIC& z@laQvTMsAkCQx!*>~ao%t}UZpXsfT8L%ndllS9U1T3KIL(up$&o3;1dDzgQ*x^4`& zP9VpO$xG}%YH-7FFIzDrOx&z$G!jaS2X(B6@T6xt9!MwUXl$fp`-J3|1fK+7pph>N z`#~Rh-=OJUR%Fn{?e1q)CS5j-ffHWGXI+jQ0e4Q2IN?9Ojrw&;X1a>4|gJg6Z#Mt>-Hi8sEp9255x88N3}z=pG@T-Tv)&=Oy|=O2-{D@mxWV zg`%j0g~6Bbqa(DW-12LV;kL&x+*8g-Q{XdSRvJgv|Iny^hL^bc!J^rbp zo54Wrn`afxDqKST^UFqJg$)<%7pvPn?SI3l&g3N?AG(xCpd@Ub)E;2wJv-PrVKQj7 zMHEt>Q}AZ|{x#%yVAX^k#I4QO`7UIM+dSJYeGpb?2g3!Ee0l-#{$_Gb%DAin5vN{H z%EuJZbX^x_5QS*StGhvoZ*$2DVx{tqqG z1=RpY@?3?oH>{tXewCM0`0;Qal8S6B2e%|{UL@hpsL@r5Mmv-~G1moj80{AldR=fe@_3n=Ommo#5LnG|U>!;Ht$ zIvoBe(zEI$L#?DYoOO`VLwU!0cDfJ)ZEu%7S0SBeykIZ2SN--#cJO4bQCqa}SU4@d z_DcZ^25kYDHc^&MK==tAbVh*x%D%&pDRTK)TbN7xm?o^cC@KRPo4@{Yy54W6EMo`o z6xNPSS6{eY#5=p5$^OK+*yuuHDaF@tU8CNoD&PqWsUyDGgvh59*CQuExtNJ5v&wQ3 zO?}@brR>iOSf6x*7FQXy_(vz!uX4U7JO|oM=-M3&4LHN3IVTxi#CQ)0y}$l;G_&J6 zS;$hR(n+X@3lsW3Pv$hu|F31($p3>3TS6*{p|xX#zC)fNH=@EyX|rHvMFg&g{wo;E zYsK5y5bVs%(bT4v`QQ&O$jmv^TqaP>T5E>(m}HW@(vuFWj!tjf^K-eR$hE*>)hP+r z>gV!)UW#5amQ|}Y`9|hOO5-*3z!uU`0uycS}4FYzTUeO zy?XyXQO}xOIrt`QbJa-m2}rr}^S<42dnzrsdB-Hbkj@!KV``L=BNz*? z5qR|75j~ZU>C>bMW9m{m8ZxraNq7qUF|%Feii3FG(eukq2*<)Qv8<#`ou zC59wELJ-UmHiCT_7;IEh00`fu->Oqi6GR5qf_iGEC-;a9egGy`hAhg$-xiZw`b$~HaK{sm=Y8TIc|Hl$-;@Pjiu zF0Oa-|BTZQ;(h`d_0x;0XEZ9=zv7a>_bnOrw&qy1S#aS)e0i~Ar}s|BKeV=Xctjyk zlpA4eu0ph$_Oih7>dUZWE3^X*kFo!*VjU{~H2*d7emkIjhSI*wH-Wks1i$-V!)%~U zHB{UP4--A-UE3e`n?nl&v>*s$s4V&F$ZtN;9OE?~kuP3E8BY~8&|X64x38)SlO&Ww z@W$i}NYWKjxgmUtFD2bZmro|g^t%nVQ*G8`n``=h^tm*_%D^;?B~fEczSE8j^P_<+ z=L`E^ng3N(&Ho=p)ifu^Gww5aD1A>0{)T~c$%HrzDr3n7EO;Y0_E}?W8(-7zvd$#? z5@z4aK~%Jal{kBnVnd>386NgUZe`cyLC;nSbdhwwp-Y?)NH)zQwYsWtGmq_&7Jg-w|@7s>sJI{s_#aEtd zMLE7a8zWpKmdp2in#$7G8bdzJ?y}zlpQ9=^j4HSc0k7e8y+q77wSU8i?(*>6osXMj zZBKiYD}G5@OG(|hcbEO-RVb5)AKoUU2%}iBVhs~46x^Na4v-FZ6!h6Gl}~KM z6ltDZ1yhvq@yJvBx;pc4$*%%~E5wSJaf}~Ob3SN(^z1}cqpVs36lZ|UX@SnKwWI%t z9!;Gj7xwnz;i*z&7SO$H%&86VYCKF#8oK#jwy(^L31EFDxg_;K=^Fz21~(8)ed>H0!=iww$esZ57Can+&Qw3t%Dz?^NuWY6_FHBx zC`KHSxPB+t4^+0GELZPHAJ%?u+sPXWGp>cH!6tPle`%7~C=6{T*W)ig?%9Q;nVB)J zywogD&LHJKA5U63W>>BG8^&PtE~Kfr0%TXD;fM9IZCaq|q*K+qnq3;3k@pT`wk@xDQ80$*JlyN|8Tl;8R2P7G-lm06zjl8q%0$hJmF@Ercr%%mv7VWnD{lFtRn6*P2{?~S?>1p_>epiC4TRd=;8GHh4AvRU#R5glxneQ$wGofb#C#=F^-Tc5E2ek9KGy`jsM=8`8{D zCs*k%Y#i26`Y;_X4}K-%nooa|Abf+G|F12wqGl=nW~55$zCV$CHqrs>BD6FX;6UsdU2+5awLCTwRJrQz(YO_6_s=1UM~ z=iPtCZl&QB3B9zVE@G;jb@aX|lIzF$jMUz<702Uh0%latO!iur{13r9AFZXolA8*S zOT30jb=<5fSXwVHZ@v@gfG;>)ROlIn0u)J88I}ZELwHIfmCW%keLh&UB5k0xic+J4 zwTTJ?dFaHpx5t4!y)8i#R5pIY2fA=={|;Lg{&dy17=sXTz!B8)r`n$MnKHZmGr(eE zbV2)BB93%|q9lII0+>3GclmdU$`54D+|9xB{$2+V{i`W*;knS+z(77t>G4N&**0+a z?3Ep+ItEwNaDpZ=S7B%^rQL5e6yZhg!yxnO=YF{;g5_p^XOh;tN76TVbHV37KH zeYm}*Q=LOw5rCnlrU}C$j(vQ47Y!;)`P!^~h^t&<+cVenra!`Pq?~7YcNIDLllVg| z&UhL}bOG4*peMc`pQ|c6m~QtJ(THArr8#}%{P`;_8a-b9xA4h-dUXE(rhL9fPLnEJK2^^4 zJsm6g3z(_X7&?YTv2p*E>3Kx$*_%tb9-TJB?X=x=dtF)W~>WmMt(EokU=KhPIgHPBHn?&@sGL$jj6>Mq>Xk8*&!}W%F_w1gGr#=N|%QG-P=kl%(3qDj;+K$Jt zW4vsAQQXiJHhI01BFm^bxS%ZFCY93WBu#7omQhLX-3u?Xy3jAP?aM3A`p|? zkP57iTIvu--}h+rzv3~3f`1HGoOEUtf{H>XdPI7NOGo7n7VcZ@{VP7g@tIcr-+Q?i_%OexD7NrA55JCOdJuD@X{l;6j_P2Z^_0Uyuv0>nVPU)mJ5U7odzns9Z{ITl-N}iS<2H*k6-$})s zQ3q3`*ri2fgL_U=zpYQ+wvMXE2oDfGmTdodDxS|Ld-(Cbvb<9j#xORCHk~W@YIWCR z&s#0QU`eK}c6JPLU)rKylN9huoC6Jx(z^Q-G6euQhYow*lk!v_<%Lwzc!#gNcSJqg z1S7vZZdUkq3BWD?yMeVwWiv=9NX+R7kwGHs-B+Ao!82Gj zd6bkH2BM4AxU?hoX6gZ-QdoZK((5}!FL5sfp^wXu0>$FX7yF)`4)YJBXA=r3#^U_s zRhRtFX4-4ki>Oj2PfuSJ$GNDrUfT;Dsn1g;KSQfVozm7(m97)B+lA!s8~2ynTmEqO zmhe^Ck=*7zaX9NtQe{<$i}UX!cB5RVxz>E@vrt&p{#FKIrJ^=sj(pvc3&h%WAy&>l4W${*=+taWiqB zgt~Zj&h93?GB0+5?_iNO9(OAL0mQ_J0^>5#zivN7)ivF1rQD8yjkx*Io|>5d4jD6? zj&ZO1gHyle@-C`KBc_d^iAk5zbY^$ESe@Xa{PDx~m%A?1j5>RxD8<0oO|!Cq=6&#d zWaX|erzWLRU*_L1@Mx)(6^Z61k2zgMF8+8?Xm*mDKH^vZv?u25bcu*WF~LPPeqw2! zq9FeEE_Slaq>gdlkV!} z#ntsbghl0xK>>}rCm|)*f{Td`!iE7v#2nHq*&dZ(@Ak5EcK#Mmomxz^oE|E0hIW%K zO%)~Z+6fP)u|Op$@n&=!x>Q!gx0ERhES#qMLsXRlsFZc*KlHT6r3BqBIR{fHLF~3t z%XpFvS-P}>>CRcDS_Y&pBg z|C8M;_CY|!5mXN5+fj7ad}Vl>`lo_OT{OZ z;`+15vJZHfCF{MZ{qz>&tphz(cSh^GCEYKceAUGn4b-i}p1Jd+Uy%oU+ zUPJSrMqUrq&;=?uA3I!MqXb>Q>q4y7>RC3~uMMytiZycW$*9NYCiwJ4x6wb}V+@FT zyS~aRC42E|=2)2L=v&m+sxL=}S!zYqqN2Q0?%n(NqQAh_54k*js!ZI$`% zjl2Yt%N0Wc)=&&D8h_(IsUWH6*tEV8<XnMb6;SbPj%8*W3(U=Qb3WY4g6Kj7)Kn_l1aB6=Zdm7cVTf559V zr4v+6C|w7rrr0xHn}+stPNO5>;o?5Y!<1m^U1P7#RSGL310Y#GDX~L8Igru?y~$hq znvub^w)@d74w+W65@It+m~XAA_D_h3jP8A2q~ynIc6X13?HhYLqg+kP^n$&)KrdO< zgg+^=0ZL7asj6M*uan)eZ#X~v%`6g(FafoCxCB!-ZKV=babJWKP!o8Sc>*)f0D$x#?$%kJyTkW0-7x=$Ow31ECEyxZP_~R#cW5D`K zfrDTaTl>o?&S(mnBEg{cx6UIbAp=qhB@PtHC`fk|yT zY4_|uqVkYoJ=T!@)gyM&Vr<~YU$Szcu(4_+WW+vk?OXH8#bp&?tgSRWm>U<29+{2? z20%NIPV8A_QD12;tv9iIPhiGQ9c7?2EY@6`Pt$LmPfP}psp~Ebkc^9jpoCvU%=Tp# zWuqO_CzFZ?-3B$!Bi!%L4+DVBFcaMiFw16n@*|2KH65Ryr2jB()&2i6ZdLp*<5qZc zr78cTxD{I9NJ|K20h9I1?GKYL3?r`bsM&+Za>pn8f9k9ET_=qowP#e{>#c>2h-{oA zIQTyBM0~@?m8)w)U!CC9giWateN~z1`syfu|JQpTLxB1`-m6dL*{0i9e)6D7R--Z= zHf665a`k3au{1O-ai3U;rahj&-;M&{JwLv(clo5NBxD2JknmMRnhbgUaC9s0H489H zzwxEkl~S|&NTo5eVE(c010$MWPw?5o38d!Y*t?_h|foR!1^ED~kyyw-FK zOW0dWT1Vm3}LJqe7XERe0_?^d|=+*O5&S?DOp&4j_Li^XJSaDgNSQai@ z%LV>e^Y@!;L*piXHwMTcK>gHr{5l4c@OUfWX!PckXjI7ie%gU#n(db1LCv{>5 z5jl{&@caVWUY(FC@F|1dOVAxo-XXGIEvBn2ON#~IkA8QGzl|yb`)B=h4Dm+W4S$9X z{S8Bd&qO7WA!fq(N&oK(<_Z_}BLv&L(g=zw($~1iBoqxv>=3?!f7;aQO7Abm-wJGe znmqO&Fcwqxc`-Yw20hSMSLdB3H$i80jmqu(QmRE;%%Vagf&%QkM zX)^pGI`7S@<1-V1T`)mGFlGI4PeS=y-8Aa?n^OIp?KneIHeSKgn!6=|-BPfBrXE*A z(~Fv+s@Ub5%(S^W0s0N!+WeMaAhNowB=hmq(DeFaCxkDp@|Aso@Q{bdk$dKdJdgA9 z0if2fIw6O6K*)c?>xVdMF*Noob-V8UPi z6n}qvTVi!y@OxR`-^2pIg?31Ed4*M3Z0U$=wLYbz0J0qgrtmXzL~W#EFu*=M+YV|u zLu!uhzixcp2*=JnbZQB!2D}dW-quF!rxeqD<-2%zF(pPZ`8_OObDwR|bjkbtXv)ea zwtnEde2kwrY!^Ziqf5UAN82OmV%k9vd+WpvK?w}bY-+V6dt-~&4WAi89njO?;!;4j zu8GUeqlbgZ-^YfQ=_VHKKWn!Z&Zhu^I!87Fv3|ABwo%()RNQp^rcZ#7gR}61X^T#A z5lA?x>nO*gvz$Ml#iA-oManwSP_+SHt7^sDlyL4Bz_WK(kfwbpnG)=-ggo1=cpW!L zXY-hCGx47H_|_t;QB9anSvkPp1E*n9n<5)!$q*GcmUuGDJSJ~H^aWwoHUrEHY(dd? zH-cmP^v2N3!5T@LhD6D5Wg$NS%@EpmEs5#V4Vc$>{6c0u(>Dg~#WKAPCL-$i3N)GK z(9iHjMft*3?7~-+d(X!tLw2ZZ@Ycs@r{_uc7vC{0-P(ps|8=Lv<^8ABeDaHX+RSQ@ zgd-thLY_`KVwf*e}!y^g(=@(3cTmsc%kQ4FNjD+Yc5y z8((Kr7Gzza=r792*2IvnQ#nvU6szol-~+-@1a6@ipni;CP>TXM;PgWRM_uy!SGVT5 zK&7*5dt#;exIrWK^-m?p{;v=`)|dKHP6`w5?NXW zqL!JfzlQ(NS*i)E80zvppR)L=soss}hxgtG-fOfzV^%k;&tBQtY6A$#yFb_Ts@|Fp zDh%o*9X41lWBFm1zVs7Kncf*y48vT1iUw>uTy2(s3wQ`b){4TO?g!lQX>u^S*d}tO zx+$Ue|LkAbi+!cgZN>CYRpBQ^4wsc@LA8FwcPyF&2$N=}zTfRhiZY121D;DHY4xYb zk;?Vn%T?^;+A+utNZH|_OXy;f&I|+rhof|lx0VA!d}LQ`6QxIyjeEGrAdTD1buH?= ze-EYTr^!1*cvb4FYm7q!8P^^MS2_tRRf)|R;!OXMy|Jp=F3VqYMo{3y?=y)5-BFft zDH-@0ETjJ)WTDPrCM`QO94fq3FW3%w7_0kg>I%hVUPtJ(i-r}a|A3ALn`$@)d9iCr z-si9PV|r<|%{fYkaD33pssEsGndeA+f^u&4nt5rjwVMf4whTNuIiLK=F3prGJ z4H>9-C}a<&mn~CsSg!7t=Q_pbHNx&a$6m9&3{7D<(wx*fcAk=xT@7355YN>EB_8iB zeTm8dx`<66(f?JO8QV`RgC0oCps8LT(g>TZpPy6Oe`5g;X4>li;@8oT-5(;IF}9Ki zjsi-s{5LRQL-U+G4Iuw|%Cw4-uQHs?nk)nH9g=xwtAAyr1f|1%YEMau=@jBU=F64r zmMh)cKlDCWcY}uU_9~>*(XH)|H08y+d^>A^3sLB0#H*-n_ydR0GIRn0yx4os7o{md z>jO@jzw46SHW#Yyyo`#hoF_Ei*p-%()M>$py<>)jjIgZg8^yIUCd?f-aXm!8? zwmS5H7VB5!ek(|do)6D7s@8~p=X@D}&e2I`c<=RHpE!D7?HDqbfe5leq?9(K0u0P1 zH@<~Y8AH+^aq!yqsTP;^zWaH$m-GO>37%>S?s^Xgc6IvnZ$cE;6yDXna{x5+BwlU? zb$r$)OU0D#t$C*MlT_qf7=H+{C^SLCKz==JJMyBVE0EX7UHTibM?Is# z{_!O5Vs*-~>ZLPkyLsVCu5v_KmPkwftszPE4Ei7-K@CMb4jyxmP0ugS6TSXPibA)z z3&6{X1nkLMF`M7r8G5gQI%Qvbu#ZXORA4q*%Opb!hr%U^%w6dkH)V9kk=}&>YJQtW3NyT3FaF=94VT<{&U9gABMmqhH{Axbd}H zFInx^yIb@qp!C3XdWcr!tYzZn($gQwgxyzycK~RO+C@V2L#T6b)s20@bFO0ntQFC- z@E;$T-)!7jx*?A`k7{N#t9W(x$Zd=ZoYf9FZ)IHa8*#*Z%adq$OoeKCP!7&6AwX0u zC_$-Bjl#P_p43>G3MzJpKdD zpnE!rkUVDZz-cu*Nup-eYHvZ-{!w6FM?+{mh>HCfqO}P_xm*%3ZS3nZ<|BueQJR=B|--Vwmz&0++s@ zyXdG>`IGdyTLX_xdBh&K6_Vz#>)OuV_lUkOtFNwuu9ms%AL~2H)jx?28PNc;eF>MS zMLSJg?eG|e6RhuQ8qW_{8Mb87J{a%AQjxu%8dY^1xDl>#9wBNiS<%{fHZsg@7K=p+ zl>0N;o`|JtgP-^!A0SJ&xb4D0yq)vgFLI0)$%#iF^bu*2wpnz5$MCUe1HObzL<9Dpc@oE7?VAr#^v{Ig zacE~JemGKa`$eCW2K)+BFQ{B47&7`of@dDHQ0$K$HrU7qx{p*c^MnPG1|{`tL53Ol zH~j-TBzq*Ppuf#|6Q19R-)7$BR)!V0j?4Dx^;#5DCbS3gDYFf-7?QCZR2{&M5AMzl zR8n1w6SBRR7G6~yolo(=Cx(e4o+m5Q2*5ASu2Cy;>|Y;aos&LnyVx!sZ4fv<8~sf? zqoLhn!{s4sWgJ<(bkO1NQ(i88ux9#RVdfM!b2s1+1quGCtWE8h>1$Z7_k4Ob(DO(k zTy(DwkZ4TH&^e~4wj)^c)0Yaf=}GHqC%RX=@`07)!+R!HBDC6Ls^jK$C9AyaVhUst zl=a4?EN%Y%Abam+k!MUGoI1#ppum_x+1yKO`q>Hz^xv30l3i=DZyVdgnn)YZ`91_P zrQ!K56^Q4HwtE&?YbJjGpd6Ig)!t&(qY+{!!wbi!N$ z8Q%y)jJ-&>?eu?&6$?bVIoL7chQD9ciBN$G0e>N#44FtyxWLDqSp@~c{}*j%5!MFO zwrQjkT8g$naraOP#hv2rZpED-MT5J$y9SaX#a)VPkpRK9Kyi2JW640mh%02HrDbJKQaWFRtEPNacuiA*C=uB(nN-QnqC z=N8S)NBfNr`FZZ)-#)!d$3Uv(r9J#Fybd|GmZOj;2FJ}qXf~K=otbUg={s$F!aHmH zEQL?~->imX<9`=AdY5muzd$*AtNf^kw@cl2NN=0cgUx6K@Q@ApGllQcj1 zqgEH<4Vvqk;l(sbo~T^HQTUM(a?UVgu4@mtQBaCCaHCLJbc_BX1h40_Nn@XRTZCd7 zZ>T7do5Ry~Hw2k}b^`oF_va*Im@Ls5t%j)6mrVk|B{undcb+VSuTb^|=MN#YWY}a8 z48{}WHCIzx9YAw`8`YI1xS*52K=#Eu@M$-e>z$>2(0&Dc^;_Qiz|8gW7~KLRB`gVQ z&Lp~^Et#%mFK?SS#=J;79n7tb&C3D#nN@~S?n4BNVvSAYuaku5F`S43(>tqN*}5kU z<(3(Kk|H6YP6fE-bJh{Mxx_fGigbC*%ub{ju-@e)$|MYZeRE2dS$!x+T0MZ6VD@;1 zcjl=M`qQ(#ve=BF=;BAbb1|VbgPAmpQY6t_UqbME-h*_jE*=gV!`!{1i}+QxVt4$r zydB{~s#62J#D9WG(cN{oshpftKz&*m$zc_lMbhCGATy;?^FydbIuGA=zcIxks&520 zB02U6GJZL$32HGBd~IJ+Tkqxwm;1mntqY+VNZ&k7+-rO>5mua@)$XqskKs(I-vI@h zlur(+X)Bv%e{iA2h7o&Ep6!4h>^RiuEf$=YBZoQ7sweId2MHhsNvAZ|s4@6{U^!e>d zb4XnlkXFwe;fRTokvt7I2YP35&xdXzq2JGrO`#2w<3DV%Bo8TWg{OXd+#kG^;F@k= zT$91mjyJYnNnD46p=)Jj7OqPC&0OZJ%U0-plUhu|p>n9f*^oe>qSd?rW7>G<8Ku+Rn zEwedVS@D{akn}x*+bgd;Mdy)sqWVs67I_;Hn|@nf;nS)XBpRCQP~L%db7l=cA6$1*mf?z4bDR6(w&nB_nf+o4 zyVkgsE_qR#wgu~n&CA)K2{8n-;~Vnl#||gn%Q+h>2*>Z&^Y!?+pN>c;dxsu771Ktm zHIF^_YekH+v1==%vBwxc!y9PwllkVuVj;Z-RzI2;k87+Y0Jy}vxIZ;xL%KoinD#y% z;2kn>K?q`C`5OZE%Kf+n-a`8Zy~hdfgy7sbYRiWei#-;2p}|w0PK#7u{e9xg{gM=u zeoz9$($ds%iS9Kgj0!w88Mn&{g*_h0Iw&;@uN?;=K6KTIbna^P7^>>J09MkOQyEDcp*L$Ob+vL7BZ_0{L38tPpm5&*_49Bm1+AO@&E|@q zh))C>B#Az^DA%F(-T5xz;niU^;Cx=n@_CF8XB`ufZFuV7);a;_Zv^r5vv&>l7<8Ie z^i%gMx3c54w%x^Q#%ZYZR-}%5mr9HfaaVdAUXr`(ykme~m4>T3nPkI1LPY#2^dS{a z{Ic~-i+G9Jjgft+PcQme_-{7COt#1vplt!-X=uxb!vHM`B@$2#tM z^u5+nzLYt^Tl)JK-uT46Uy7-sXr9PK7>;|x(DPz?K2!BIP}fke&&SJ-n1B#QD$N&@ z0(3e)g==q?)lQ0Vn%XaSg50Mpqh#&%XW0Ie9@r0{$kt3E_;Bsdvc=nMaNQlAM{di9 z)L^&rQQ{{$=?f6M%^xLRJcZD?5GQK+t86hg_@*IRL3d%n1Yw;28Kn>d`BD~ta|kkl z$x(0a&SbV2YK?BK5naz?5{R(3dcRUb>c9943~XsFtemIdIW_bCJOq35WLe{$opdTa`w2DDiT%RC z=N*eYZ_7o5ZA*3_cIDx6Qun)>ZGO^A(FKd#NpsoNG96U$T~zDakRP!c6%5sYuya#zOlG@S&lVe%DmBs(oxSjVkRk57$cxJ%kLlBIu&5Qj$eO>=d&)#h1h zS~oGTNY3fStWkEAU5qE9?^}L{btys*_+FT!#>O>74x)PL2GEonnhm-j^ z$w57isAz;#hx@VcbO)~atFxFR&#fCH=F>lXMM?#9haf z0~@*4xY6|ucd~y-OCl#SJ)jT}f+q=?fM_3i$xvjh+Ip-E zpXN1Ec|9gYVP)b)op&b~0diG&UMowCzTIiwU6v24*AY8FY?WdEkOr&XeH%=v%;LqpcF5U6!H_i$|-Z8G!ws5)+Q8ACQYnRRRtW{_4231Y=$!RGG&1ep~V$$=yRp}Qg zljYTuWz5PbhbDp9-g;CPv(hJsQ04@{bO%1D4Fwl!+7ixpN7}#8mX>2Q>0o0m#+z^= zh;ViDdvYA+$$i*j1tQk)qn|P~y?9=OUwkz$b~?keDc*5No68;r9(_pJ@^fEsj+Kh8 zUi2cp>g-y|cRBiN?4iAdDc5-VAK{Gz87^y~)aZn-<_f!sctv`f9?j=qNN=F+1sxdK)Mn3o29Oxw?E0_41$BC6ZkKU38cm77Lzh+1LE>OVUQ&#V{fqtIv0!|u=41`W(`N3$ z7BEJPM~Z5K)sCB)V|O9U`kiY;Gi^gGJ1EAe@yo=AF(HCn`?GsmMkwM!_~1L|{czdt zPvy~0`W;qV7WX(Pqveo>`N!9B_P{+pn_`5PfAgo4{ZC#Ycvs($hWxDRPw%vBdy#SW z$WsGwT8mm2gVo@W@8g<)4Xz9s<5}e3`j_r?MVN+c@(3xw@|OVuPSF-Gf)q6 zsDt=8KR2WdN6PPw8ja?L#Sb*y8>sPG^u{xjj6)YzmhB6|tC^@jYMkYvbhh}nKVPdi z%!;XxI3Mwa>6B+Rr>D8!I*_+IUAXl(vi$HNfQCzcy;X(NM-S^pxQrf^}etBn22Xu9wv-5dp7}pPh z4+Dvd@EwSHfE8=i>0>KDHkJ21GF-E^6A%>YCHczgL;#_S(yvk&Zv4U&tE=C;k@sT6 z{b82?sh411?!=Ci)N4cU=*qI+5#{Z*ZD zxDBkB!_Vg8DEiH}BKQWY5_|7zStGPmvp$Q|78_ftZnfJ;U7A@1OIfYFV~^+1x8`cj zgd&>%%g@v_XI1PNXCGg875pigUQQQ82(`oB;L<<4h9-+Txe#=uRo%XFEoh>dD0fu0 z*{_0=Y;1r1WFkxqB6(Y?z{t8rkLi?gaoLr&9gjyp=s4k7m$n{&s848e3yu>cPlP7( zP_(BwWk*gRv04)64tia!v(GGjQJL>S5<>rnln|oR$8ybLD5Q6xyMj<%kb_v1>4o=) zw`3N>jkdczRuKuV;%d+0#>g?RGLZp&z0? z4^g^D|7`7+1gc=U)Pj$uxro_Oj`Cbvn|V?>%Cn`SKkE*THkp#L5wM0xk=IF z;**{5c8)QcWX)bqN!rr@9A>Zjk-H^Ed1rp9n~B?`+vw-+WjZ+^9IrMv{u64dKL?TR zK*5VmMw>g1?P$tTW8iB-1S)J)o#3#dY&`ao#&s(eGFgPf-JcvNh0gW zbN3SctwvY>f5~dtxYv$PQP>0GHkDi@cUM_z`PTs^=dJ_qj^Hn zIl5HwQLSuAvNEB<`cubecA!drX&ym#CP*pYOi1%eB*#udg`639V;z#dn1KC}oE^dT z$=lG%;pz)?wI3Tp^oAU3AX}XzTGUBukL>Nrrr)Fmb6&44<;rk#N-d?!Zg1ea5RIMP z-C^#NU{Bx*7h!s+eJcfZ_r3VKvy9*-|6E@ywO}{FHvNYbpI)-0agN54^@0DC68U=8 z1tdZIW}7P`{y3?z(y=Kh7B)l@(I44%^^S^1aG zysw2kd-PW#2483m{n-Tl2Li=a%qWon|8d{YD)k+0zHKHD6#c?Ovq0*4dNynGBoOVM zF0C1k(gGPGy>;@qoUNVOA;&CO{obu`SHLbT$L`P(Z_)ROEloZL1zq9$4!mJX3&>QSB5@1_hnj^;IN2XAKAG5*R{jW`jLG$m>e?PYXpm7K z-&^f1-q5`cC_jX1lse*JkYU{?vI=8BAF@*w$7 z>mdZ_19n=L1~ry<2+olhSN2+3L_}wx*5K4;Y%2}?pp!uh%uADFXq0v8z=yZQ(O?-j zrwo!Z;fB&Q$w;lD<<9usM;qz1T*+oZcAUf=$NS^kdpjm=Z$SgCPT@P>(%_OwxE{$b z0JB5CUF9vCy)N(N?2osM_$D@7cw{4+6{369rDID-kvG10dO^eNVlQnK@==P(8&84^ zy)&k1r{~M+<8~{*-nb{8@z-ginx=2(RD&ag4rrmWW1CLeuh&HK^#|>;EWXyq6(J@V zFKogNoT$p5q-B3aQqqV#l*fm^E{k#FVDne&L?8&%WP7!(IC!iR4R!syjXr{tAg!n< z=A9>El-05II?y7t(2)vLfxw%X?E0w%FwR2F{Q>^~J<8(1ATbG{JS zH=z~Mdf6-R%R9R;s$!O~-cjO(9T1LaJUA5h7YY3JLlGC=$mv!W-5mi1+~sS^>6dc9)4~ZWbNcnn$@HJxfxb1(N`YnI(b` ziXYz)phmIh&F^matUrcOTDzbO_8iF)2N==gD^R^vz*ro9D>bR~rO`Q>U%ob7Kl~kN zoAfEiQN2$|PDx2kwP-7iF8T0q?P{*1!shNrq8I(*(3q-54T;SG9}qM4H+sceUv3R^ zqk$;zNOljRrL}Kp8`Hn46` z_rUs%Re*(Hx-q|dpNF+2jOY3~6I^Uv<7c6^18s?8f+SkBX6Jqr(-*(*6w;OY&W{{y zh%0>aY!Sp9s*BsDp5={h;93wL8mJ{D1uBa)uYcu-FJT|?Xk*JEA+$p_bsq3Ai}u^m9lz7d=`4^nc?@#6C+P_~IG4F* z)7q-Z12IUfx~e7kag1`5X`%cq`{Lt2ok93?f8AZ3d&UrE89%Nl^L_b=>vYk&S8&(M zYRsv5R;GRqVe+7pBXj8Zu_5G6Q&GcVLWD4xD^S8zr?qDlkdvGv$0wsYTcy{rIL}$K z`CZM&=RxiwZQr*Q)TfG^s|PyT?6i+y=6DSe;oklNfpQ^%p4vLbRiPzKtpa+&fVn#Mb|ioXWMse|&HNqZyd* zE`{}K11>Nn9Tq<~M~rE)tTq(#R-g--+;tDBY0b`Q4VIlJ@RL#G$$(37bOhfBZj5?& z3CJ9$5f|3wGq)vBLpXm_2r2(V>J(ZhXHiiDRCLaH(qVnpZ|(8FE)_g>lqRVw3boqz zR$=c`PMieTJa1Hs0ppYCD$E7&&rC+X);*{-HyiRx*n6~#b{gOH(Zay_Xx10-&d>LX zqNt9_j0Xw%57JaZ$TYR_Kcts+#IPwZ+n8KG@ok zK=|zIF7)9V@3%FRTV&g2)U{d#JF>NumRs^;56%<6-?cJL&`z9rOh$}ZW&Ds^{PTAx zwM}F{er!(QBF?XXt}?3$nbGpf8c6UX9L?VfL)Y)pt0m^2tnLPSp=Vrj= z8ElB`4WNMcJW#HAE=7b#ku~?K& zLjbOz>w}H+T;XlqNJByXvR$<|EvJ-PM%yQBUfOZI4I!>YNu?RBR+qaT3M3pXal@;+ zj0Aj5Wq_U|ux}r-8Tz#6-Oyg6XlNgkEQ=H7%RVprdNI5^9#AxEf7_D zQ+Vruy;fiZ64P=nkI##p4c~YdA%4L7XumiuKf;QK`Q@`}E#<((US%0CU&74@<0{V_ zS26$xfTw}=NAP$YqdUB_A}?ogFEVuCQHB-tYdbG|`OcO!;)7cQhX5Y;V&-it5T>O* z|1}MtIUzib+92*?AL?*!%s`*;(Mai5V*=LKepuo4LkX4h>ye-eTfM`P0`Mn^GKQXE z+KO_?`3cr~S$D+z0~FyEA;O0lp(;wno2NG8#w^3XO5#eXmuI@TTCMj^J|yHrkv~`1 zkh>=PlUIZ1SG@j0D~%xEw8xcPO`^;M5ODN0uj16f_Y{B*?$xUKZOt<}`E&U_=DWea zeC0c<)5*H~iG_PokP*R0H_O?WyMwphwuH2_NvtmMs*f{l^Q+T^!F;tnv2kBFunj2J z*2`oZ+#b+;t4|HPzl0 zq`y!Kzo#zu{gCloeE2v~E#Yrsq%0{U5bqL!Ye{PT^Yq?_GU0I`k6w3g8(>3r1V?wu z^MKb!IK|xjFiE@FrM-CYb7%Rbr>teQ0dWXhSnF$t1H((e2?WW~{gyD9y2)3gY`?QU zw=y~%52=u&ZS~N%y^h~K%uqOXq?Obl()#8w1flH-!0FS}P%`NGdA~yp+Tkn%64n_eD^=bSf_*(gWJgF#ah+}@BilrW&bY1J zW|sMi+23&Tv+t;NE_vh5aXOHb>K=1IRQ5oo~oDrCIXh z^XaN&>n{yvPWF1$>n3>J4{~MsvT}zZXOZ8k1En)pVnG43t`fH3|2`pt#NdK3b_*kK3u${JSSfC{di?F0z!f%Hj{7M%TwID7bcc^EhbVw(BIj@2Sm!ju$QyAQH` zC;gs=k$x){4b`t2z-4Kk8dk?k)H<)Rk%q?{bISx^v;Pja;>0H8yG1(&Ej>FHr*7&6 zcE*G~e`l%ez+W)r>wF>i6`iU}yLFHcIS_q>IcESgYwxfO#95GDRhU}6!w@Mks*rjV z-9^+IBnCbYO7fVNMY9q)WqcDgx%#+kNM-=M0&v}BkrrBG22|%4qH)lgt!!;PAx2!q za*6ENB9~vn?tzFMMIqWs9yT0P%0FZOC6rsWLHxnw`3;%J#6;LcgH~Id44_EMV%2+4 z(t8{J4{1sl)-l)zviaezVg9`4H9D*}G04{Z{o#IDL4!xhp=QfToI;cwgR#TateN%y zW+fd&rYQ^gbxSXenV`;lepqZJlg};1aj|gzAy=-Qw;&&qY-_nP;6fkjl6Lx;_x#1@ zwr);aJ z<<{<-42LdpUD+WaydQcoZ0*4DjP^NKY@1Mh*NBymchMzO@|`0Zd0p$ml5_Z4Z!*YA z#ol})j~DjQO#nkKY+3LU-@jgfY^ArZcRGq)%xVwQMoq6Hr?#4yPfVE@WoOF=;uGjj zdgjXcwjDR+d$C|vJvM64dHG;AZEL2^D5-r6j0b%F%rP?ITZaXIu*>%37TM)BIJ;m2 zy;w62O&a0>p2St_LKbJ^szrIL|L3at^nYJ9>$mPYO{!(ZkqJ3?L2e&2f@!(cV>kO^A(6+Z1R{ju!g=K`f+V^LIQvPXa6 zyWKvwByO~GGSpkIvcv$%9<#x%h`f?>lK`B#R6{fKwl>Q-s(^JRPkg*5)C2WJ5jfO7a^*and z-s)klR4aNClC~m>ELhro0~Kt7%qGr4>`%sRVcVPy(b$$Zl=Q>P(#buKQ=V~-ad87L zJ_W(oY_#WmilgZ0ta{SVJW~*e!#b7jay59f@}ypYZm~{xaGa+x=RQt}I<`|xw7!Wi z5CgfU^#URO{{0RnHOM)c6ZjUt9c_2znOhIfE=Hc;qrct^Z6SQ^X5YNRI$6$4(>@=! zRU}WkH2!sN|ApeQJ1QW#ck2aRjhIucVMS<${#~*`2jXu|K8r$&m~Yn%t=e4$kn3&C zWidMNb=3jG@J1A+Em5s~h;|}{3_$FR**P*ty5?nMD5w4xZ8flIIj$<8`Uh=!KC~c? zKZ7e4rFV6Hchz!>WUJR&et!e6FG|OFcZs3PA}zk&nGx1#t~|R^k_tNuIBuOODXAfYmuSDRZwrvBLf1Y)bTXk1)WVoUO&YaoC~?P88!GW&I!oQ<{6 zm^qLduIY54l=~!NiB4gKSX|@OjA>pD5J*m^t9;j`9PFvxIk|X#*jI4b+|p}lcfL&_ zd%fy-Sb;L5Wvpw#_Mwm?GA2-kJt4d$rAmgJTF-(w?2rMWeN+c<&A^6|hQ8F}a4$Gs z&yfzjyX2OtVREKb2ALtY$LDhb;>s`?E>0J9*}Kf8o0Y=mi15y1vfMPg)+$jEp+%s5 z-u1^&z9=~T7B8;}UUU*vL1Ua8>gD>I(&FUAW4}AUik@CAS(cs^wPl>({N(N~Kv+Si zH=AGQJ6he7*OoM4_v8-LD!HKkoO!Ciy$`LbYYCiMdSdNb!$Kj;+sv~rQljqR1)cdu ziIG2$JznxD4}g%q1k4jBSq7|OM=|i699YOQ1`|X?raP9M+&V-|!o}7gYs!r8j@Y7> z4x|trUOT9yixoks8IS0f?mpS+UQ$6_7sAJwn3!WfS~{BF$cm*}qt9$^aHs6Jbj)*( zp*-LO%>KB9ER*mB9b2SC)A0?yoaT-evI(ZwI(%@+g|m)kC|^zA-~p4=?~0Yy@RcHl znGUsoXw^gmh%>wv)f2PzFYio^W%;ijl&QY_-M+hsA+<<8H%pRs3Kk?zI%Lqo6&znS z_!E3o>XqTrAL9*^Aq|*nmC%+Dr)^2Z53FYU=lGJ!tfJfgRe~wJ?j6c8aBeTr$AQJH zUgS#wxpGT8FQl(((^*99W1wpRpHEZ&klH6G!{8}w12>QREQU1w&+A^zg3Il2Et<@k zcoHkGed2#elhU5?1Xx{@B$&o<1TlHPyi6x(g%oEA*W~mDrj&9%|QM5kzlAW9% z6Y_!`!<+Kf$i5nHv>`0l zImS2L@hzHnV>ap1^wVP9)!I{8E#5BrUnmJ&TbjcVlR9zX@`CzV2+K^rXA{&>v^83s zq)YfhDPn0)1s7wKvmsXsr3cZ zQWEU$H;Vc}?PN^tpSh7HpDhrdyOOI}qP<+(U;Xq)?APa07OeQs|H^{j2L;B7X6DdmxA z&a5$5BC==bo{(7=9ce;9R=VX^Jtrr}apZM%DJ7p_a5J7AO<%c!*@He>c~mi9HL8e{ z{nBDUe7@;X=&_oNwK7>p38`UhM}tkNRCwCb-n-oD+l4O%iffbX+7vu`+BPm9{~?Vo zaX6c*o8wt=b`f>99oVL)f80&E%{v2vUK|A*@k`w%2aX9{PI>b^9Eg*ZZd{%i zr=NgVSm3WLiUnG8>pvvhf`a@kJ0^2HA&(%GCiFGK7uNmp+OIPLshqm&_=^TrjUm$m zN~yA)l;2+w9QbilCu8LBFIj>pba*=7(it%OB`c=(rJ3p z-Uo|IZ^>+Nh{c1);lfxqwCZ9b#B#`39&WSimwpci`ED}ryd=%ltn16Fw$|EcNZfTl z$mX!>xm|Y^=9d6yoNu%`k2k9Y@h>dXmi_R}qK5=yy0>T^cU)k78Y6V7=T^@5flf^q zb6`zl-(}KE?y9YTm7u+3KJa@Kg@LTz^$2rwKXubr_{$OfX#C*_*GfphLqd2u-=heg zz-w>Yi!U-x_KvmPeSMn2nx*YBsL)Krf9=S6!!5-mx z#ch*kzq_KWFMIXN|i!juQR z@R^n^db#YHj-ykcKh2f1sC>1Ur!lTcl%ryO0eV$sMz#?1tkK@SvyvMN`lW!{$EUl5jW5l+(^PfxD z_gMvP<6#FjAdT-cSE9V%^rU~@hkZLnj&b=K5m%OEeU;7bO$w45O+aaxqHr~SJgfZKXe2p7 z;Xtv~|NRW{x1!5nYnDrDkx3rcW_Xa=X-3yb#!0*LcLIp0;6ncRWTdC960VRhWUxBj z^rfCwQb7i#i8ss@KaDl*Y?jDUjvYdwG5;o@5}Rb2GR_-I3*5C)6N=_TNKvWn z+ma+}1B25p2xq#4nwD8osSe@jDiE%Dt`MiGg(vIX#H9TXDJk;oa>_$0T3oX>s~S{F zQ36htq0VL`(gOh2G2cVK08Z+(8cWm&2I`u2AM(s=+F-}bHodw#K*Gi@pKL2=+d$`> zW`yB+8)D-FG}4k$Q9qYZhMGh|5$H8Ia32azcbeLILjgc%3)xQBd9*8>M>3B_d8|db zr7-v_%q`8vWEC&;#sGb&!}I)N=4ZYXUX)^;v!{ce_Al4#*@`)xEHiIS=O!lbDzNry zYEU~Itwe7Oqk5u+ob#|dzuY=oyCS-*s3pN1v8E*~`>p)JMbg5Rh}QHEH@Bi2pQg_D z-`t3M*WD@NhWWm3s23U!*d96d5SB(r$lq|-nlqe1gTE%c?>s(3R~ypaVAvzS@8p3K zGSBh-p#54ay?`6yx3J=OH7%oUl|@RVK`25l-UZPrF%>!=e{#4n6fpF*=}Cjo%kXU? zebSRUuBS9ch}M-DG?Z9I6*m^7RlhgKKMedh*Gla_Iyaw)8)&V%ZYm9{`y(2u`%Y@j7V-o07v-sLpIHdzRd>JrVvO>F%eF_- zDCx!8qv5^n0bz3(p%m^oG=m!0&AT6PQuhzZ`usEbAwKdyB&veyV7kt1r9s7o?IJ9C zQ=u(FT}Gh@|1OD|byXQO4>i{DhJ2bu~+*r)E7ctdwIY)cEH{bN5QJbg&zs2@zVwQW!XfAOXG8O@W6$RCI)j=l2rx zx`$^AH5F_FynlPYi1=)244?Bo$<7N{9;bb5_Ht2v(BYorukJa|-d0Y~5oEm$N?myR zPQhqlx&3FW92EVK$=qhn}r@X;CR>N!H&lVvRHERo_gobc3VFx z)YTLI#p>=b-i|J=8yj29Bs^yHn6_El+|@m{(H$RCe}Y-iHbnl2V$rB=8Jw!A0{8_g zTFJ33j`mh(IHhStdTM~qX{4!rdl%tY^Yq9*gupo?O?opf4)Nc=s(RU&Lx@3!8sw?ZJuG z&w-m*U)_R?s(-8&gY9S2l9euJLO3CpSw}2ZpKHbCtdPx;;90ufy9`1V`ld7`))ACJ z#A`5o%+v@V6se%Ty^dKUUjX)X!h+VEfhNXW34;c=WkELWym0Y1OckO@p{DYUs-*U z*J|Syt(*lSlFiGSNvYeNq{jTTiJ?vo?PWk{JqxjU?h5laXMU6atS=x5b&va}xp0Gg z-{zg}a)eE@*mxMI3Z-j@tQfesix{`13Sq;9fD~3nm6I8YJ_n`q1Or?BtZPG=-lzyc zdRkdX{0!l9;Q~>+@m~5rq=59Y?S3jn3%=ow7hpY^GpcZL2LNC^;um~|H^8?0$LPQ!^_Bs7{EIIOf4)pFV3prw(NjTY6o`j&KqyqOpjk@7?Yu%19{1JFy!?aiy&1&ZUp!7zDwwHmsNt#?WT>6yYJ69>7}=&8Y;)y+dl;fy4LX=uc>v5&3@En-5ca$##%6z zS3}LqxQ>#8vs~^cyH0}qGvk|Pf0>mYGaW%NwJy?zF;mhf;PwZ_AB}T0-cF4?%C?t( z7PLG&o4N6_BODn4`=l_s0G_iNGJ<2qwMMMk^T0g>=+cHo7 z(%F+gyDNhXIp`p%@gK=_Ae85hFyra0wa*NE5@_Lz?xNJUbBrJR?VOVk(;F-0bcZGr z;rNG}n9_#2nQo>CzS(+Rix>ab^D~jL%J+QH;sC=aQ!^p-Lc!}fCkAT5Pdv=01$dq9 ztEcIm1&>DD!txo|rvMeppXd8$BoNL>+TU_~wNd80A20ISo{0JnGPP$lWx8JMorNv{vBA%4@O{VjAvZt8*-}o|OYE?!)`x#co^j=gQp%Qi z549JhlwC!M4L0kZ75jz0)ycUBjCtaAR+~lxAL9_QrTSVLKyY|W5cNk1U zhszj1YaMH{;Rt1ncVSa9tgId%GH*8O^!vUGE+(eIb1`bEk_KnKd_l7U^cZBo zh7_%{KYT~d7tBqQYkaWtf|SS6CWNBO_ph`p7ym#NT#4_5fVbQ%$kaCVl|vkyg!doceX9{ z9hTd*&6t%F6ICQ-vQ2a<7g<2SRt2|eeaLvS~h_Gid(GC!Rq=!^AeF{=rC{*Q6>+59n(ToV9jNfK?H zU+hl@Sjf=vs73iz1Eg%~EDYE4N^ReZ?Cb5@az|-YI4c8l1`n76;E0}{7M8cR!WC~6m4u`@$)pLomf&GcoKcKB1dawbZ#CO6w2(lxQs|S% zIlLiyl2$?X044Qjtw2H)UBsGmu0^z5(~y6NIb2IPb&pJWw3XGUl6?nQov0t^h&y@Rc80Fydq}J z1tYPZ#(f2a9aglz0~N3_#Y|P(3e#$7`l~efB1mq2JZd|BP{@ca75VDyXa6CKSd^0d zMooJH9V7UrRnTrlsl|{Yq!qOMm85+{<=aOFrhe?)g*%&?`fZ!-fHlCK;u~^-njv|! z95PL&9dhKB*|Xm?U*bt1Z$qU&r2Ir#6WEqL&t#ALv-#(Sx9RccytE|NccGufx1dh+ z@KCM%hj%f$Xjt7Ty32~fd8GYy{^!;fnY`%>2cPdeJa-IwbHaF=l{3!ZHlq|gd^?LJ z`&TfD&&I#^)&R0e>1)p}(=QY8vh{?CiesNm&xSM`y{V*pslN?#*sqs|zxcSP1SWr0 zU+BZb+QRM~lF2n38|=n%q8ul6gsDsBe%xCTI4eqZI+Tr<+BxaX{TejcQD7DX{pwEda|qg{-!u|2RHT9#7etXV#OF_Q~s zy7Z{PfxOL~FR|cuXlX%SO~o!gGM&rWY$z#P)r)d2wefiJYtv>>-|PWKp{~(Dzim$f zonSY?}$+wTY$c!Rp;*M~HIw4wX! zn35Q;0x(E%!q@*MOEqyUe=^He6BRCkUn^k1%>*BWZd*CH>nx))(Q#%HHq2TAX|r9K>;bkMCj zaWunJovpSSsKV2sHd`L8-Cx&8%1h-)8)3tIzME#9Cr)kyT|Be3Vi#`-4AEaXdA93? zU^@A^%aF~?al(|6LQkqQUZHk}bu>~Z#I!B&5IQBypR576)~0W9lr6WNCltL2I*;RZ z<|J-L4@af(zj4M|`pWRC>_g07do9VA2#3;);zWSd<#5Q-!L-d*=n47lv5_q!@U10oCnOAOU`I}?b`|_!g{S8#1 z$%;mdjI=7a`dJj5UknJ>y*>nCsm?0s8S+toF)(okI8JOoT?1Th(q)ngTF})IAX&*E zd1#jyr>DnXY#CtUoF$v&9BP7t8ZKur2Ja~jt4%*&yKEeV(T7*Hj|bpSjrAy9s`1ytTm}hg1cu9XnW$y0yBGc_gRjm^cC%<#grmo<-13OXM;C6uU zwR!@*Mrkeds-ELb+}P_!+jA<1yzQJotW=qvL+ZJdqnXfAz| zUAvk8(#?0yUUm}s)Yg12>NP0i(YPHLmJccM2d`)bqhc-u)EdxIR;_rUa61-fZ2 zo4R4TmO8^7`--cxSV%`oyY;OE&R_EAg+F55cxg2S~W-Qcf9f;_c+sxRIXwettUb4k?L>Otz zjkBOw6nij|q6FZ4LbR^A>2kg8v_3iWD5NwFYdAKq8&6`YuzdM#p6$E=y<}Pkf)QUN ziaQspefRy$Z7$KIbq5hQj5YJ8aNJZ=fn58@)`Y&L`CNi{jWSm$8X| zNZO@%(XH8B=D&#E-F)Mr7xqP-^2Ub>g>bk^b0ARS#|Ru64~$ztOCbW+IV5)FN7!-( zTUVQK?rUx|=Z>HFv{hv=9xEBxtL@B1s{j_=_U zRgz8YWtu-Ot8phEP+(*=Jtu7t<3Xp7-$~GP;ID6)WOq-KF7cc9tyHDU`E-`xSF!%H zg|0^f^D$uen5r;!=C0CREKZ<^arcR(77bth+Zhg0%B=OxQkzYzyh^?pzkz{)o35l} zJZmJdI?IlKdh21clJpqbUFP=h=H30qo9TE(%mCB~N;N1?XcQg96&hF*)&V@+cI3;_ z!!w^`s$zRai|cwINUBC*c*Vh*yk5lW<|sQAHYjK{NmEF4w{NCz=UN>pjw^|k`9GL@ z%cjV>C`uD|ch|(7!rdWpFWlX|aCdiy!mV%$5-8l=-JQbSDc;GB?uqE``2&+*G9vTK zy%G1Ed-mRIJ!{Qf?_Z#A6^XnjJ1y8h^Z?R7Q*?!!Sb2#Hm=3vETotE_gdEzkCQ<+Q zvZTd?qpP@@piHv4Y4h2mm(pF%pj(!3ENfu#eTeuPZJQhAR#2!x6h0yZ6GY4p$I z6QV8NVmO}y`oMEIk$H7s22pTh&y(ui<}MC!3B@cyE`~G_^;X#^G_~@ecQ&mmL~ahA$T)t{omDmElKbCCeY66 z)q4O6UWLm=`{v~|8%s$?3|=IpM0!Iwdo`oXF@&5L1+a1Yk1K)GEc{L{gh&AyFK_3m znHa`VbeNOzKW^2`=M2t)WuXj`;sc)i7~21U-S3-z=Qv22k^Me9E2KOVyN-0v@kz+C z+k5>P&ty(Qt;%MJyuOYlIq8ujFIz?%-MlSkseII?v9;kcb^b|yPfMtzP|_HAaU^Tw zf0Fb!7yoZ(=aMT>0W-!hm(zXY$iQ=vMz&>7F_nG3G1-94>~6W;BkHK~LCS;ub;p0HbQAd8{yJPx2R6;7 z#efGPT4k}g(x!Mq(xg8=^>6CuX!2UWSr6)&CK?%j{bZ3#0xB0ZaY||Zd4qQEzVRe7 zq7mYhqp^-(uP@Ji#uM>P)uooMVl+?did_BcAik+g6Jx+tA)TDn*|v@P4_^N~w>dY` zE;kH{yF8{d7|v`o@9?62k_e!Ne1Lhhh8>ur^LbOQ$TtO|kVb(2nlDxAdvQ6*$*>;< zta&9jrQ_Ka>AM&AH(lGFh-wQBG#F{h)wg! zj#qv zYbQ~#OaT9xn=+kt!OPbS_EIQnR8wuXKY^M;OXBe~E>r)(d~xADW}_yP9}iI-oaiQP z)*pI_Kk%g&%9xv7hO9&5J>pZjq>rTbfZa&6X8=JMs+f%npv0=~87h|I4dt zZz3t+W-cg6DEB@Ge=&TGx~%|sU`o3oNvdPS8T2d$YCBsB8V*>QDv>Y^*@B%*eHNTQvCkF%d~ zkRi0p<2Bj{EV@VcRY$kbd7~ot&g(HzrG6zV&9mZAVgF8r>>F`-dq;R96|= zh3Q}aR#`1UFFhk1<%mJjMq*^tr+y*ClNNX$inPojH{;4XRO%00vW!c~Jj|e9Jh9U> z=eo3543pU)2^LW1>7@FpDnQq^E~7xqFD$09H!8AXzcbPzg8(V-q_89pu&n={_DFMxiM-=*T77`t~!&-V2WcX1hVMBB{!~Oh6Ep= z&qAXVuZh&3S@{=Uh3*vzl+L=DhHEnZ`lY9`UI(?$Kyxv&Kk$A6Y&B!1`xXNqYwlFo z(^(QfGf+`K{5@&{_Ue!E;-tcV5ErUT;@_wR(kg?gb!LDhtTyGOosQbigNe4?a&0IK5qlm|Gv^0IUlW*r{b}hLyQw`|$ z)=~Q4I+V*zrJv^*58wTWRqW%O^9hJ^|ARUW^Ysqo3%;nz=MHbp6qL3t)%+~kZ z?Os)j&DoBdnJ=l;XV(U|27BHMSw#^si8LA;4Qh+C)W2P_5r`1Sg8H9U^U&CbTznlPv8oR{8|{N z0YV@3!mwR!TR(-BHt}&1(dg0Epxg0#GvA+oLdaWGdf!<&*6!df<9IwuQ~el_wl?=G z?DjBGZ|2d7*W3GilA?$O^E3fb4?No<|3N6ZR*Jk!r8kJ|6`eVQ@Ap~+z4@q6D0-^c zq;$EiO0&)!{Gw;Y2A&6EQsrd@tkElEs3NV@JcubC9ji3HT+u!6$<{n3}d+DM);t__9sL&hvkar77__81E?Kk?8TdTh`2%+XaKblNm&fBR4{c_$_oHg#?A09z=2rzFMhxMrY77a`-h21WV&X)C7s$JmqsM#!T5F$`$ESO_--b%8BPUFCp_>H0&Bab)}muuN^YI5cT{-teVToDV#0iR4|)b#xj@a z8{SItA7j&_p4`$vd^|fQMuBk)6QX|$pe4y>Me|sGOn4jo)9!26rzHkl=7^Fi?9fFh zwqpnXR>1#)1AF{0IIy(xE%3S^7L)!j7^na4x!7QlEpvwTb3^*yuF@S?{#OfSbIYug z-18uKDWbHE8`mANqlbO85OGA?%mZgZk`^jq0IM6xF-4_@t|Y( zfX@>BGNOC6W45)}r)o~O&1m^!;q0+$CtqXp)*f28VBme|?^unoz#l8i$$of~VzTXe zHn}Lbuqfg>buSyg>CU4~wRsLaF6+po#zyJKn>aKpvmLtoqcFl*dcxBV?V1R_M)51? z54HVb#)QF^2#DRR$A!hkzWKe{n)PbFG(YT!uW&n&If(t86)Vwd0UWb$F7?G>YwkXA z&P%U7g#U?)fP!mYKC}Txjc^=zL*Xvvh#Q zb*xFtd%SZx`F6HWm1wYvH}g+Kucqp9O^Lbqkn&mSWph-V&x-qi5OwF{4K*U_Bj*1X z^Gg<+xIy?#1;)>2^+3JynpF0Y?>e!ruG{(r^(xU|s91_PDN3lGi3Wol{+QctjQ!`6 z(gfwZJVW6E!(;{T+5Oz*f`ba|c{|V&nEM0<4NHj8&+~3cv&J^&)q>}Id z_jTy{=@$kLMA5anOp`NniW_ufEP`yup=$zo z(b#)}+%;WheurSu5tPd@5wbPi#9dt!TS*cr?HFA()I@eOYIem-*L29=!E@iYUS)24 zFU6U)%NpM)^-%q6j|XiYR{!L)NJ!b@$m*r_+sz5ozqzPPOhxk4IVbPt?LxNPa)0oC zJ5P(!7^p}js2j?r`_mr~xbd&3bXm8Bfitx(b2rJ=nMME@5W|r&(cELv+IwXv|AdN} zX_-CML4PW|=u|nd^0ZV?V&i7#P|8Ggxk_wsiP})}y6;`Re`0BKBAMqn8D#|8vR}Vq zf{-fq@oHyjpVwK>B>9-)h2G=7{2Nf9r3lqhG?_Z+xc2j*CkJ2y7O%*cXVrBmb^b)w zU;Q^qSSXIlpDueoI_41g9w{+jltpZre1i&V?a2-AYLpxqqHuH4c{C~rsxM~IKyK1` z)198z|FgfSqJ(NN@0~&{WcD8fw4<7kdyJjkv89)lAZh2-#YH7IH^w+ZSZo)65)lDMrh)PTqG>6|7uroHuzl4=uHe__;4(-qlu*twX!hTL%mug>Dj2P z!foQn$kvFk2p+c|(=KHf}O z-PS=x_yX9&ad6jhJfCY%tvxSGgKZk-=rc{}hz48z`)s#&gu4@rOJ`a=ThNyh6Uo4nl%jI~^}-RIIhRH8!|px&~9C;Rc<; zCJmc7_SYJTAHfy^=botNevY9D*S)cN=lhe%l{Qgx8_PWXLqsgP$?CeVIMyoItalYa&WJ$y0XZp1h_x0FZ@q>xK&M;i8DigsOSd>;%85}_9VgKR7C5{ zp7-PbmJ|GMkCT>rX|B~*AcM$hDIerjff2cF)nQ5il065AS8NLB`x1(`Y=ZGjUNL!@ur%57jDI&A(AZa;L~e@U?Rq}t7)I2j?qV)zS;?P@XR#n zzA^~EZPVMagx1Eb-wB2zS$6*~OX;TJNx~{V)P&q5Yum#@Z;P4D&!H)G=StcQ$O2_L z8grr})SDK)!vMh@rrw}uj~3^E;ntzU{C8u_w}=06QeVcpZKAjh81f>%F?9sZ1)@r7 z|1pl)z#IO&iuzd(4kQ#imv6pJU7a|!*LxxLpdPodN^U;JN+rmuPScvv)`v&xkG8u!~Y+H~As)J%}Zan&aB80Dw74~C6Ko!i*y+;57*-2RQg@#+Yg zlwbuTH;ajdUTKRj=67u>l%q$&P2S?Bmv65 zLSR@1{r1U7dI*bvZb@=v&-cloiW0k=nq!;&R1qdAWRV{i)B6G9gx@CSml4M}kTH*U zmcoVZu<;NDWN+|uzraaXlFCo5#U;skPg4duFP#Yr%$~S$%qc?^fdsQz4F`8iOO0>| zG-8;f8EX158819%6~5JQSoNYUW6i|I(+0Q;5>0~ibbu5$v~QF3+TC5Q0@Z=*hTu#9 zR%rT;hUk;C$CWcStF3GYmO!4MiehtNgY1#9>$9m<`&T~Ds$mlmE1bU=QH{`D_q(Ov zxl~R~fnl7LIU)VD4o&mfJcj2W0HD;o$Z$XFkOGB$NRZT`YkP8RT9WC z-n!>^@1XVtpAz3VWo$@$`qq2!K`-Sr({*J3A=veV%zI7$z~7?@xIvp^Nc}Thx&&a* zv{?iOVXbLBL@S%Sym=zAEP39oB5KxTpm5sf1ucjw`7sID?k57l@u-;X$4x!LLJa{z zD_Op*oVC%Zhttl)(2q+Qa&+(n+ZOgPX{<#MJRqRH@FVILT%NILaMh_287TLy8C-WyLWzj7h_9oxx%Og) z+`><;YLc|VXl@Dw%cAnvB`Nm`L&A~_DX1`{G8|wDS-=hLlGc05x8j^&Zb}e(^H8Ga zfPNO1Vb&Q;rC6@7?5`a=#)yL^HD_UAzhi@QchLQa6O!1B!4NDXdHJFedU28DP^LCJ1Z+H5Ol|v7r>RO#GLX6ixb~MvXDop?d^zL zy*sgY>&1M`nvJ`eq+6tOkGaLV#pMma)6!>SYTrUcJW5Iz&tEpH+k;;-x`3 z`#IO7UuGOhZW}~uxa-p#pFN#(P1SuH=u&pIHvmSHD={*2W1ntdP$vIK4jQaS>}KaQ zze#dGY_J}_EK7JzNrrKQV>9zfj9-x9WdDOdS{k{TcLr+ssMC^5WFGh(FEe`bVH|#ol zP~fhF#*jH2mo!Jj5Hf$`TiV02*nviM2&d?8x`NJKdGlxvFv&H&!B1&qs(TrW(gOT53%Bu}!hmDmTM`uocb~k+1#Ts6 z%oc+Cee4+_mIL7cZVfgYP6U!lWIk6*Rz!X}YDg<7OqoS1c2_k^4-@#yxgF+reV?L4^frDjIYi;O~#@4s#FCc zizBulW-Isq_dEx}V!s#jf#7DZWaN44TvAtw%!&*pWsJQ1rsvK0v}#Ad&GxLeBas$r z8}ein_^*_DVE)CM-7+95FA1DdP@1rlXH#KG+0^|)s1LLgaKI$Q@<`DLEEu2yW=&oAsv#E#FJC;hmyXIwKhsUcxylu&xR zKi(PI{a%5cGwNe!#-8#Ygu>0k!bp2Ps^@UFeje-9-G`m`;j;(x;@3S!vy*uD$LcCM zL3<`hyu zdxP&50lzTYO#`0Qe?a>M3Cof)O2PnNp^m^d!r>qml_AXE>f3UAamaaVq>R!kNK#dk z!ECQ}0r$O8g*DXGF=jrNSn?bcd8ko?nm58C$V7!$P05~jJ>NwQHPH-e5U1a|{8{`1 zH%xAaO2pia0`5U~1|Fo`LL~%Ji%=EH_8|*>M!Sv@lQ7QoSRYYRU`3`)^sSR{C1lQqa4QqB4G)Hu&iB zWf!9MF(T;K7=-xv(3a{Ohwyd-%Kgd0tTqnI+}=QWXvSZ5XZRlk#%gm-ZXHBrJRm0S zh*u=@Zpkr5jl_(5{NDUdAd#Vv8gb8(Xuz%g#=;SNawEkQQr(NLuOs@g4LlZ#Tk_S{ zoX4qfJ7JPxxa{vGod%H$`#qQKP>^X>ets8T?n}(PCDKjcYLeh@Z|)n0cn~CQ)#A}y ztZg3n{_M9NL^kXx4ZS#EA|J_SVIR@C_W1<)>?vxO0*MU-DryN_wMIo&gK;#=w_|L| z4EMIYTigra`d&fKPhgPfaM-5VKFu8rYun~shT+DNFbj1bmQ=B_81tY6M1ao^7#01&JG)h4exf>D&pYN)`ENH99dW)U!y#={vX79 zQ+HC7djr@6Q+A~UuxoSeqgj8ru}t#XA$OG8nJnk*w4k|sdy5Cn3L*LaN#tTOB~EOwATfp$W2diEMZ&Pok7Y zQ=2P{!I=}s|2XdXg@s0}3H-(-#OIc((AKx@^~O7?F8cdynnx`Kd1)~<OZqF3NJ zIn!+!`w`s1su96$@5$0K&OHi|!mo_Yvm(;)6P=?gw4ChyJG5{3hT1wBiydAz68&Cn zD{vR@q<~g84bErP8bRU4)XCN4_s#lBHB?4HOMCIm&uwDNvnoKYTxo(19w)8YE;1>Q z{BqH9l;1@d9^H+VcgaUqiHs{mZA!7<0wjU@{ARn6Mn;;|-d@eKGk93RF)l-~uLsNZ zXJm!+%g7o0q$xybzzEqKYC-WrG!CUg7)Fk23WGJsLz>r_{k0^S6xW44vRZISP5lf( z!*HfqklRO_ey^y0B3{*Hn$k(psH_*35RWRA_e-GETq#a@<1H*hxnm^PgM- z3q|%Q>_o7%;=!&ar#zI_N?VzkaJM_)PQ+Z3O^us*8b`UlB>zcxyQ!^=Lt0TM&2^v; zbKgnwvlY2zlmOLjfmY$MX=$%jXq;QIRzFxNxq*J$Yj;vjSS+TLRH}P-?kl%iz;fzHU_BJ~M( zSax694V`0W`l!d3OKuND98Pd`=&1R%%7#`D%76KBq|`>}v1p0Kb*oLF+wbfRUkEl* zm0Nn0giuCo21fLKPKg@IEaNI~$vE(Fz^fP6`5kf75dDr1W5+$bBjue0^G28Uxti`I zZm-){VE_7ZC0CThX!vnuf(3I^BLA{&mE#Ki2F}&LuTjJPBp?zOd z%9zyqk7P0+qa2|1-2;*;3O@9IbDWSw^Viqnn`YJjvMf(7M5*ONg6tP>od)mM=GF13 z1c#B|s52B3y5VP4$2SR$N?DP93p+S=^la=u&(QL_a_nz2i|zib_@e#FO;KDRDzD|* zyB(pMybE}uxd>yXj4#I3jff_N_TC-YD9p`q6??6ki)$6+&K|#>Gl6V<35-%lo6kgM z`XNfw?eAP6Q{Pf#<)S7tu=(;io6zM6U|^i7@k$XOe<6npi-!I&v5Wa11a6P7te)UAxr*)Bz;@p~3|lJoP+#ICSfAvX}H(jJe0 z3wGI}$}`ebg^Hth`AohDb%7`M=A*tg#@p6E5jH2)xdE*$K+~Lr>^$F1g}!H#LftHl(jTo1rUnaAHPeMYo|{kqJc*-gawPA0Sau(uHjUqhi8bZ6SAKEs?Boy1eoKLWQ%{9tS4wN!+Tw{!xjkI*e-r59a-{_E8s$m6`48UeEb;cl^hR zU=jW7Do|)={3OeXc58O%+njwj8A{I0DAHbDt{i5H}ij7I=RwKM`jHF2)_jh9o$J@Ry5z#vELk>AJ~of* zy36k5V8ei_gGbzY@V~KX#%nM%iCa5&XVoVEmB`<&#eAqW;)Cz1tvn-_zsAJxw&W}t%K2FcF8tsxTXeGm1{Owfhov*Bxq<`)kd^?T;fSRP>eYIuxCMDotZ8rQ) z26{g?nG<9dev$4>BI`uLk7Vbx_(1W0qHu|w^#3k=)YvgP>wHtwtdY~0t=N`Edgb`M zEDFa;JUTeBwto8`1b74xz`zwQi&G6iNYh7=uJzioLz@9u?@It&X==asA^W`E)U&7l zT>pSj3nNK7Ia0980K*6EY~%Bld6^0t+IVkQFkP{qozR)foHOnh#l8-Jsa&bH0Oqa& z9^{}^Wn|eag5x&1EM!oj?Ymtp!EOv^yS2@Axh8RqK@#WxF{jI%bVg?pt5%jp)bg@C zL2_an59%r9oJPfrvzIe$XuLO8QtL&INo@-`kLvnfJG0PeI6g-o&;2n$_r6O~=ZXpNZ*;XwOnG(zT=@Xk5YF~pn zh7Idh`^y+Jf-*0t0f_?Gxq-p=r{D(U5O`TiCoty&wAB+h+kQACT<3DDX{nF69Wdji zIg|LceVn(+QKs_#QYU9R zZemE|;2e8@M^d2d%REE>Py;#$HUG>E(xN~5u7gPRu#BakN!hdN^a6C{~J5cT518$nWG9rxv3UcP7ap7 zg8)m@+2Ucj6V5~!m8PPQBgkv*YGES>P>wpxtYbOmyl}9&0hU{xRB`~Zzqv9T)31sW zpIhL(T3NKAn@*p$eF;=(;oA32%x-j_d_gvyoi*6Nm$^J;Z`BSAY>T3=s;`MQA$jBOk z-}RvyP;lB7WZERSt7jO2@4X>N*NZHYoOn28<&c*MdH(R3P_JpeCI7j@g3=ZYY5Bc% zMd?)wB5-)nMZa3oEF-+?EQ!$fm9L`NEAe6(lBQ+DK@~(Fh-gwe29%4Dh9&J z?EM?S@xFo1)gRh#iurq_zi7qbbj~B8^oMvjx)cN?+i@a6KkAs*{m}bKmJ-S+>r^Ge z#JiJ-nTrFKV$&5YRbxbE4tZW8ABPySYKp?Gg(-wD8UEgI!O_RhIITK!95czefQMk# zm`YQT8zvIEmBWVY{GePtPK?9@+f+<#m(3pEe#v6S;3Y}X{Ft0;?ym(Hl$`z1C^8an z*Z=pcpA$*+3yPEwEj~&{vXpW@`R|yAg#hROpMG%ui^0K$O`vkTqlzTcmMO@JS1>eH7A*NjZ1K|`T3~{#yKg}dwC0@cT z!E|A5ry5d+dwh83A~s}Xr-7$(2K55tlfpBZkTE{`4GuypaHLaqoR z$eS94yQDC(i>(&dEAk4C(VSp!ZpUOun`%G3aRc*csLWazL8p@ZCuaKJ=)=Nh7!AzS zM8Vv67}fHL%q(p0n>8-_wVzjx1hgTKtER7hV|f@3$8Zs6UDo#nfJsZy$<(N*BC>f zY8pSn6dbe9D1VdmyV58jv6O4Si+rT1GCeaOOgcM;428RR<)TMLmZVi#{?A>g6|c@M zTjD_ug}_pFN>KwuC-ux%v$5Yc^qoT~&kht@aWCVLi{2?@HguhevVm$ZaFljru{=OV3Q;Grf80U8p zN-(21g%M(wa)#HdFR&AMV=T+OCPm&FI#}RBc;^CstVk`ibys>%U{%cn->A(005Lj3 z->e}W7S`q|?S!=%fJj8!IST-CW+WB>9U)z?F~Kj9bK2aIn1x33gli!Pm{n|Tc3fpg z|1oeVyybj91Z#Y?U)^2!b$B_}SbRMnp|ZNYaRL@O;Svj)B(R>Jm))<<;3`vGQ zI!dUGd?je+n7?{4adW4EZ{v5L5Mt233#ckk4;{5Pj`0>#5M#pVnw?7lyC3s&W-0E+I8xINfG>r>=kJ+c^a6hRvvQAd`30N;FmyXdTDW{>Ly8uJ z8}LDxe0|i412Ncd2eQ`)sd$~}Ac6Iw*!~lckcnhnZ*+|! zRP+!5#===c`S>=YS)*Wha16CzC~jQfmeQw_@_gL8q_dt$puL3rfIIN=A5pH2L@kVi z)Cc#6!jQLM@Q~Q5Wk+P@Z7|sY-9keU6Ix6fe*j#!<&d7-_(&5)*t2^8w z`iTgRa7Gaal-}J+m3!VCz1sPj7<_0QW3x%=TZnk723mAhO;VZN_uj~p*h6)`9>&M< zAyNje2^XsfI*nk3p6xIP-x$zDP6v~w;)0}y^esbWN3f(!lHN21bVDQAj9~I=(kg?s zSu;?jomlTGohoz)xtU*Gtp{b)tk3p$;>4Emjn_G;jhUKLQebJ=Pv`(&RUTGeBGVon zT7W=*!W!`g)-$Ur1kp^s#EqZ_gINldDG@h#kS>Jogs#?-IyqZHWU0c;HRY^R%4gen zG#(_ufgc>6mA`-pyYY8PC3`dV(r4ni4=HZOKRjqpLx@lzt<lM ztg63-1?`U9Z$;)bo!Q#hVg_IDQ%q@dxJebK5&Xa@>WDhf&Hu@)5^7Pq|-kqLt~E zzTYpgGaAC@}TH0-)4i@6m_Y(TD^7bDHTod)_GYsi{ z?KsZ0B0w6-#%x`htHh}_;Z`UPG3JoOougeH#?DT}u8g-v`@oH)7K zdDu8;YxRUO7-3W(q{JT)wA@k_)qmxabcqLDFx2g9m*WzThbZvCmRgkBx*}9ZBL0N| znz}l{;6pkbmS)CV4M+TFM}fvZ6a?3Q7TtxxnyP3hOoLeLA>m$wmL|41frLPFB`k|7 ztO&vEt3y1cgf6jY4+EEd6Ay8sp|X@eBe%Veoqs)ep4~m8l_~5H3M3CHm-G?KL%xjM zTxYKG@hD21v0IU-7tfxox7=^+yY2X7U-a6e}@yK zLoi!RZdQU(LpBec3Y1Vzso>(-B^)-R*%UYr@esNN+6><8Dlw z@twIJ9TF67&Br=tVj2qJ*z`Xtfag&3^yk@UWYj%=azJEkz-de!TfP>oEJf#5!755L zDn!!sN+rORmh#wJ)L6-|*b}*5>`b1Amg2$7rsc|5!^}k=%-32?N6eBw>$c#eHsfLZ zHD>hX!c{}0Wy)dA(p0N6!O?f8o`3S{jE0nnAZ#KXa(E{|@H%pT1>mXUu}NYUN1hAW zq#E?*$yfGFrYv1Nvzj(3uHq(Ifc>4X4Y9hgQZf*9m(bxPmK_62ydzIlHdEnTYCV{s zNh)R9HaKly2W#3}I5eh}A@g6i z`UCk1b>8q(*jYx2jDrf9RZfdrQ767xoYrc)>E_PqQJe|rFo{|S8mZD>4;?FQIYOKO zo{-?@Y&)Ro!JYz7HdGWOHBvN!>`fuEL8&Podc0nAu)BWrf*GeNKxt$m@AQLH_Bx6* z)Zs*fz(Ys=D%60DMi0}K8aut3gJ6z_{e{?Cj&NAS14x~$+lV`5p_x0>6Hs0$M5#MO zzD~%u;R6d5!y4s-aIidqZ%-oi`ve?b`9}s3w~7gIjgxjP-`bBPjLpD;97cl0>ul-&Zv(_^{#=duEMeT083K zc&bnSJVkO5q7W_J)D91|xamC$Ti*l-l*m+Pbnq==p4p%*esesx{*z-Z^NOr7m^^_O z(+7@V#inBps1Fl4>K)8crkg^;7TRU`f{wM6yzX5f`(pCf>Q9_oG?2p#1Ey5&ROr~j zGSg|%#j?VnBtGKzTmJ8H27IZ83!JHq_@R()BdwiK+&m&76WJ(<Z47TK&-2g!iIE9e<F6TgJatFTKYMaGbbhi$s|r(uQ0M>alkCL)t?KDOU;qi-T=1W zX0>zrrg>}P+Gce*Tw?2-m%WNG46|C>Q2(Vx#>UTD_oh$Xs3(gdM5IccTOc60!Di=E zC3>=uk49TSWrrZF{*5#imo)<4=Z}>i&1X|(CV)ig(3Q<0+oB^M`#ZC-TE?bphAPiz z*1N=xFmRnQex1f=7ELEovd5<}WE_=^W@@{+UowimwqU@oN~y~xt+>hcKM1np6mg2t z{)>N8r9VIOqaimohINMo|M>p(?MrDS%Kb(pT=*>w@gw>a7rJ|Pi<8QY_UT)c)lhB3 zcSR3pT!gc5sdJd4KgA=0%u1^1fRQ;vR=uzlqB=_0sYW@W1(M>o4DPeJm|f2;arZJc zjQtXH{<%)`b4#N?E-6uL$I!TNeN9RO$JFn%5(+Rp^Q>k>JDj3=&P z5EO_K*L{e3Cd@?pmG`op%A}ugOn%hJ7#~B*7Eq10^6f&0i*VmetcmzZa==#9N^+dG z9j<|Z5Cq7o%dX01Ag~G)k6WYK<_i0cPY^VujI(yRqt0bsioGlwroLrIdW;iFQJd=! z5qv`vN6QIwx0=m9#-y4T9JAuUK2?^ChA6JcGAv^toUvTgjt$AELNLypS>1X{oCeXM z!%8&iz=4FFGA<3DMu?ti)EGoy^=ObDQ5i`Xk@w9m4>m((hC#PUOB~Je*Lq=k6@QBK z0lMrY_5vh>qeAzacYa&UsY95&Mk(Tm6d-nq-^l2Fpe{+Omd-_?pO2C&#tLNhs+%hP z_*o9Tck^*~kt+tuH(tuebm2I33_nF@k)?O2P(+xJB&wi;MF=Zby2Ypz*qd~9*`Fyy zn(sz3EQiT)<4kl7MOB}vfgDUC@$wNPx6`Y@h%@|Eog6#52$X_uS{JA6%%M?vIwQA; zzXJ$@oTYWgKR6&=i8e>*`HVDdymS4JUF4}e@6*DX;>}*vBi(@%fnCKSW^(NOA!Pw}#oieK&S;?#P0* z(P97wDPrtYqGAhm!rNBkMJfm0P+Z&bp-67NQl*rq3}U1ZrN^P z@LITGux_v?EH=r^*oWA%LQaFFfmayXOR|TH-hY^dRO>#>ObreZdQw+YsOAgkGKo&5 z?~C6423ka5fb3&HR%kj!P~2~r8~Et&1~fB?w_ODBNnoc*n9Dt%Y>f07WXm4JQZ+p` za$&U~vSyN42jWYFpLt?r{RlRMK_T7jno+rB8lC{QzmHRzO4hb+KD3Xbm#?Wy>DC(R zqPi~Zo@2X?=uu~u=fLg@A1((+AP`#L<;7DoYO+sEw5nk9<4n)W-{@`P*Oof*s4Ik_ zV)!3aWUA_``yTcZ2-!Cc-Agpr_gZwGtA}leackL=2OQMJ8NRQ4gUHWX}YIaGz* zLdP2*_U9f+7a_XOmwic46HrY@iy2JiF^3T2#l}a#BoSS$&8~{w;Kigu9E_B{=E>j3 z5jR2IA*}6)?hyl3MQgxqSf)&kYF`CEV}z-J=&~px!#sdk#t3_#l4Ixz9@}$|L)5{b z+MVCaoFMyfmCz91g(}&riy@rEr4#iw(m4ws*p7Q;^nP zMHAaNu-kTS;fkhY@T0*^T+ZdAX#5REGPl)>~LfR+Dpkvp56D)A%v$li{o`yMXr;3(ax@=(Y!KUnGBp`Kv}LaZx6B*Q`YxW{3}U2m zdPfx2=L0gAES#^Q?bX0uIrAaj0UeSJ8P%PBctTy4f-kQBA2Ig%Tmas!l|B{&+L5~C zLjMR15dcetsin&sPML+uO=*b8W?1fs7;Ce5FyF*tkR%KPg*Yt6l8@?4%=fp<`k@1h zBEvx7x-LgFXkHi1%Y58RUHbSinf1+Eo>cCFo*5l67>2a)do4Ls&pq6niqg42qd^*18yS|EfAK|h@fvEmXgG6PaNtXTyo zMnHcEb$_#x4J~K=qRx3Ns}$sZ+M16wqY%YP&bY*e{2^bXw}U74Cx@IVGFN>{>1St`Cef^}^@QO1`o@ zz|E{I%(E+EOh#TQv3Ua;t8q#p9ch#x$6x?Hlyz%$hna#GgEiNBjW9ksl72RgXA@2C z1kcs6tX8EqE&-AHTar~E9a$hJ2Ud|$9Bcxi;CJRC?NFG`JSum&?H}UsSoJ$${G5Zb zioYxpsqTgmi3CY4&6VB4@$Dt@4=xa}uE!tyuxFTxhu}llYVy+$DHcHjNcr&m zaS<&3ANKD0sm+I58-0KT4G@9_DH4KPf?H`4+}$a~y|@sqmOjE0Kn2J!C<(YsoD%JORI z!QAPJIu~PkL?N#+O@{1QlQSCQ9FK{UKa}Km4}f95!EBmIw{RRkL%p}xI~6pf)@Q(z zEa&~E1P;vj_s_j@PxKbNqRupTaZ26^?yh$E#eZsz1Aw(sQ0-h9Uwbvf;L`Sms?y*U znJxth5VWBCCFeMtVLrS+cl6{>8Upk}^V^UzEG$<<`<&b1g5PW5Lm>Ci3~*0@=4~Da z0F(;nk#>xlQM$vuOPO~F3pRe>`zhiieSH0LpA;0zdg21sb$t4qPdF1GQ zIhIpoN}qLMm>>phCe`jh-Ge!Ifgf_41<5T{-3xn%1;1E>9Ob#1mY+v+f?>3PmvMt& zSd@TU2tCowN!GGoI-Of}TzY8MjGn=!P!`z?Y_vyPqi(&xf)Wa!m#8aed#^FvDAHCk zjBD>kk=R_4cX|&mG z(AbO1sSC@l^PbD^5W2dF;Yx2NO>wil{HE3bP8E%jsHzN>G0QE0^p@*w5$25Kr9m}A z51Om^wx>Q#QK&-H5CcW6SLpYQ?&h*MbX(6)qPTxIMnkxZd{t{$g$;>UQgzykA#mSxK$};Bj^>g>I;-}X>M(!CA46Nkdjv8!t4%66GzA@C`&;b1nN>*R~ z4N9>86-o^M0VVL-|AdmGze5RqWi0k##pm_B^C5FaZXb`YDTBY31l!2me(|IW>hB#p z^7QI?G|^P6#wE&5QG4{Bl_n48llWb5V6Y zN71c{;r%6%qI?CpxwDMCny?f5&F(3SX0rbluTOJ-_ zM#V^42Io!h>SrpUnhb~^nbgZho3CtK4E%M{G4*h8JpcA*umW2gH%)o51%q&n=D6T$ zwAwxSq}X5AZccuKq~eDc?(TKlKmH`c;{RkCXMf*eKF(7nURz|~(31_Oy`U@1teOy+ zo2s7%6VUR~ZfBK9Pe??IF*gVi^Hy z$A!z|hw}+x2#ylp?6%crx9N(cS1EhgyL$t!kxg>LnsruuF{SnXMk-chofGxFPHtjy z5Q;#O%PkfEKCX~n-b_E>Z7BU|$Epjs_{5zX@-<>&{pN24})@PZb=eZl$>-l?tXmL_Lhl_$53 zv>}`*q7dd;S>bNwbHm+rUy~@JTI!-Q5NI8wWG*FTa6CmrdBxG3Ytw@pn2#+-d4o_3f zYE^#6TcvGW8AT5cbYrw?v1)s-+b>7>*WcEN(RVOo9(@+p*DwllCUt_$LtyRO{-@i||x zzQw>U{4=QkHOT}x(96J0LuTcBgLCSB=@3Ux?;pEuS7sF%LJ%WNBS&0o%N1Q**;^Vd z;2AVGexHlzTMZo~>D9s8r9Jo1*`L4T!$c6X=U!?t*&vv_o2+7fU_GOeEsY6GNg3DY`a6Cww2jkIFLu@` zC{(#y>MQ60fUj_bpf~?JCAtqSl|L2ZSRXBCJ=ZLjeS1x&eNph8J!)K+$^xv*rLQMN zL+dpe_<_YwJ`^|#c#mN|Q=S+OL8Q7G|BzPjM_Qh8#*@NyK``yD^P9>0#io;jS9JSc zu%<8SHx-6{+?$yJ8mgcvo_E3Z^ypY}fQzHX+RwaQ8e=o>hc$|xM!baaf*`<+Sr*@5 zeO+$DCuVG8FqvEhv~~iA#~EwBR-) znZx|$yEc_^85yavH>jBquFk&shPCwgnr|h*8LHL zQDGry#!I63E6phAU(PuRK*^%+pFyPB>{gmyU=HiNx3qD38#oK*69CgOr2Ykh$mLKG zFsOfqGk+_Rno~Gi!u&|PR%*Dwg1%?L_^gB_>G8 zUE`-MO$sk#o>azl;Ish{eaZc}*v5jX~YSf<0hIa4HABuw)y`Q2i zGCx<)Rci;VcqG^h1&C`rD;orLM#xP>a=SM@A7Pd8WOR$>{zC z8Gft}oP?9z&J(udtgM6{bDGY_M}EX3pvNzvbUB;0qY}ZJkYrq?XMv(1Wwxyqd8+e{ zPVs(XgMpTD%1G2xr#ox!5XXxvffK*0vt4}Yokbw*H8c;@C}x2%x+I1lviLYeYP=+L zJwFp0TWAnLD(E$zX4<_;^W-hE5B}plvmoxcGOw#VwW9uJItmlFeS!RKCM@%-qooeU&>9+{|phEO|>R zs2>ZgYgRCSADVsno|Z4(Eak<%K+*M69d$kF?)lvpACr4=&_bWsjMNfURkNyyJug8G z5p6(n)En62L6w9|`IWo=d{_pS_{i{d@x!zY`n#U8g9s3nA1c)M7MprmPj(2^CO%GW z9wh~3tDH72T)o?y<72rNrl8%ESs-AWaPz}GweDIgZ?ot0e*Bot?p^+uXZRF^ueN|G z>OB>x)|Q-M2Xa0mDJy?Jj@f=x_Pr{kemn-{{~UT)sHWz^w^6~YxslbY6k6S15DGeI zV-%%q1AlFJ1M4k_qJFq5SGWpRG4F~q`zQi? zSZ-+_v;1Z<4YfT?zivzT#`l7w@){VvHr~k1rMBj{ENi-H5+;f?dad!j;G_KjAXcJ_ z^bn;EBQr7f66VY3=Ujv2FlVM#0bmlp7V~#1e~oNb19QmU*@m*;Q0{$E8gpZ-v7vU3 zsJ@A!PB4pSdg2vW2eB83GtV%LIKv4YzdUlez1P)b$6B!-{+!59Gf|1Ei3z>w)-MgC z`fs-AtkrU)XGQrcpiQ)#8?8UJ_DN|tA@{RVg2%}UaBE><_G4@Z6z_WAhPJNQh-T=}%?$;BdG(|9Ci=GAw1itP;T)mdMwd-)shH4np6 zTxs>_bf-0+77w;-_Hz^wlqPCg+_a)4UnVoySl0Es)_mC5jkGK1;piHp$Q5)5vq0xI z25Zd|jJTwif<_JgWNpcmdw<{MJ0Isx{&2+@RmYo}LTpWJFZdWg{5zFbWTF8DonJZv#~{WFvGS^re1`R96Dy7V3# z0k-e5^PZ)%2p?W#*)UBIJBEW*yJsZ&&9905-u;-1ngdEYGJ zz9{}v@G~b}CO@Yp(eK?98uda5d7f}Rl2x4$llsvEZmdIRrC^SR|ExPyw3{wZ( zeX`wUhD-v|h#Zr*&JHS-al@lBR9Ac`>VoAA+vK&=fO;O-v}8}Ee*8S1M(*u5W2*u0 zwd?6p_fWwj>N`=U2+<4K{drF)l3LHe^!W_Mh*evu7j;p)oab}E_ zib~$1#4!2%*JLSmGNy3~EQ4QSqF745g>9DG2cPgLY^ zFdIJ}(7b9mkOpW29Rl!B_|!JdwGqzdH5tiS-(_*N$HCYEDbm6T{B5{H% zAE&&8Zb9Dy$Fh+t(d!-Z9)}Ey9=5-|cid4r1Zawsra-L>l`hM^;UWxn@|R_Gzo#Cp zvVSumpugGrNYgna)VgRiWUzMgq30(v{Pxp4M-tH{36Qe2S8H^|!@>nze*ME`EhE+E zBrx)(FJopAf8Ie|(TdR${Pl>+oA-rA+vzg1X~K14Z2U6DVQ1V*{UUAe03)pA&b@_$ zA-Vothtp3pHA+k$uwT6gJR=AT)4~=b)|9W{qg&h?e1eTbATc#EHMP>AE1K9Z)m-ZR zJH|aHPf8v?q!i<$1Ci;DC*3RN9f+m&5H&6~?cWRbMTxzTdi;}wukP)U+IdmsSUe-r z8%gTrHkMH-XF}nrI=v^~724%+qw5Gi=FaLt*u1opW*XX37>V zPl2VPzQ^jn6*Sv{J@ZR$#%uXZ_%3F7VFAl3boB&@{F|8^3$f3qe=q3`kKRk2JgOaP z*G53cV2LcE@ad#RGBL*}MV?Q|^yWBuW&pc)CVY(Ryc z=~O_V1W+gWF)U|OEkR=*ro9Ng12M zlFZlmJfrnyL{ItlagygUW!YBZVTOBA{U1_6>mGkbCDtwN<$vb^K$g$bdHtdVLbeW& zL6@&4QRI~pN%7(uvlto|K1@6mx<)F2pWn29V|aW2rF$5cD^1+_4pKF4ts+%7%yd-p zMfrvVSqv&+gS(QPoaox{2J8XvR3Os$K5Nk2AUz9)lhPm}=BZ@w*|3wD2~f5hzFPYi0B|Ufk|rz40WUK(v7I`X6dod~ z4wY%iA*?DYCq&P?S!ImC9l@P_;&Rg8+)}&0rOZPxOeDoDOERBg@8D5&tW}mPe+sjeju-Fb64TZk zMt3cS$J0OZDjiH=_|4-5UMOAPM++*@dViC#wg@JJ4<_8nWYRU%zpl-r?2s8Gp>c&X zj+ZG{2lbF`xy2==d-&~az%$2O3s||!;2Eb}Hs47vV_5_{nHvpN>VgZ2N3>BWPoLwE z+YGvtQW5&*3ydF3A$MX4wbZqigOlaQO=oA6cEL>YDXAsmgleX z95NpTZz3g~6BL~cUs1(OZ)jkhPB5}HFpX@-?N2V&E^$hl8xy0_8RA@5y!;VdvYh@w z6p4R4klQI-#*olt(tIC^M)G1bAxU0ELsq{Cw z?RKf^d@t=d)2OaU$1(ZgT3hq?mc2 zfa#k>vtE28Wrv0x%F5t*3=?DVKOY+>Sz_sOa7jU3G1OK^`sNpXNk`P^ml3I z{;s|Y|5RVvf2gm^ztk7t$@jmiuj~I*U$;6!pkv*J?xvX#<0CxVyeazSzmUeE!w08F6;&TM42ezz_pVxd?ORg8~T;w506vQk@ z)Tp0ny(np7bi1)dZh4eKAuej}Kag)4N_nPr?2Uj(7dS!?^ z4I^WeOKT@!%kaZsaqty#iG=GZc@w*~HZO+0Z9H_LP6J~E{}?1a2-xMFP3U}yE55fwiNpeQ9gE1?P{OSGL?SCMQaZ;b4~Y2N<9Nh8HLpH64R(n%1YQm zW$u()1&w->FvlsNGh{IA*BZppisEb4qO$WU@U?kOjsUyq3X$B1q!yI#9mDyNG{V6(o}I*PwsQK%}4?-#t*YpkDn zFO3$Q=QBR?Rgq?ElD?dy!JC8C-ewKfVJ7EXC>GuL)U;QDt{Y0-YfS8F)JE$ZbOV8~+i< zG5t6u*M|9Y*sSfr&W+Y9UHKyf0Ed2c3`J^P?0nNJ&H0uPG`?}4^BrbZKX4RBR!}N% zC=gK~(UlKB{+=u~P+z`N2@{yn&ZaKdmhnQ^F{j{m1)w%oa(@A64ORbvyVNl6n;@F2 ztsxfwiMx^rA$8<8%8q0+nvk2z`A^*a{Twiu zU!ORt;6)ez)b<`tVicGYO5U{eOup!ve6nn4^skOVoKTntVv9${jm1u?&KhPM<>kg)j1tt|$Zw+nO}k>cJLV zm4;+p*r~tC3M*Tiy|j*#n;Y^FnC)NH@LD5m3C&C}At`V$P!I*CI2LA(h$^M1Ay?}q=uIb-#_w;YLi`1-4$V2~XeJ+oPO=F^pdd2i+$#Vs{O484L)g)tehNX6foi58MoJpfSD$(Z~in)L>b0 zru5n(j}zRTxXP|)Umtu&56<8BiYB}K>ut>)>dpNrIp8)Rz*FR%RZjb7T7>7p^%jL& zPsR@yRxzDirjnyzJWS_YNYrE;X3t?1LNdp)Mn$P0Zs#fzyuQ7` z9)uXy#yU@{Ug7ta`HqX5$ijT!p5X^?rQ|1++YRHsWg8snNyg))?B(-jxtO!3f1$4O zgd^C9g@R7yiL*J+mLdX| z+<+&m6>7Q{qPb(GEF1|tESa_fiNMEU%V~fkb1wi)jam1IXP{+uIhaYy0+M6a%;E9M z>Y1yE35Vo1xwjtbivMe6ZTWUxp7jAdM-G~IzOM3loAoKz zHlF}|`jv#WOM__SFK6J>HGcsn+L_j33pSDb^fhuy>J(QMX>Md$vU}B@7=-~mn~D|h z#8V3BT8KO8gBF#522r9p3Sc9PuvRA#iy@oK^FkA;2iiW)_iz#K#cs%kHt?sJjB@uF z9yLgQgApyk>(1J{X^-v#tMB*zNAPqClNuTEb?$3?wX>j{r(BGhmk{%JrdcuenET!C zntMj?yo4X6+0nKXA8m@xFH)y1(M&{YWJcJgV@>n8Fkw9yJ3lNxl*excm0a17@n%6i zX!iUFlY7M}_IIWHhR~#$V0Epl0u0{^K&8V9y(`pf$h~5+MhRpMAZP!l&Jik zW-c=4_Qx_oAu_z#EAH3GvTi~dv4s5GqRft&TsDf0=v}%8ovoHBZux)Oc|0)$=2tWU zoPCF6tZuVkC$4i7;9Jh@8^T61D&Odv*Nf<#mDlb*NslefOr2Z!G%&F?vf@46socl? zOtd+YuQh(hi=Q#pvNQh{gj6^&_YkZ|3szPd+{SBPcmqCPh&R9Lz;dF6ADcL!F5q&F zUwShg#`xI@)+RSFW*3NGuGY6<1$0^4Wi5Gh3(_rZGD{}39ICerw_c+p)3Wo8d$(L1 zEgnheiR!?xXA5-`1_6HJ(rvu=p!Fpargq-7=#?2a?ulS6z?a}&nNA}=%ST5&LuAy@ z(#|!5=2?|i!4}h&&K_c!G1>a>`>+=ke*rFc)9U7B1NN+an^XH9wBe!jAlG z3T$b)QuD>%1g`V-WaNhGk2D0x7_G=E84RMHuIPFP#wK-N-q)14`gr(onfWh(#2wJ; z)?B+C(=1K0Ro^qY=Z|T~4O`KV5k>gP@@Ppq4dWj{o+PY0K*TJw1hiB#9-FbEFB_zv zX0dt)Y<|x{FRv!A#Au&FE-hd1m>3NH&SV@IX{;k}CKYx@+0MKOQKZLuC7;}gtl)|~ zy>|?cR1UKJt<-)Lb!wbyf=cmdYf+;C^zwDYS{i9ri;PiLhSlXBQuRC2@IaedLf!sM zwDl5#MQJ^4$~W8<(q#R3YVX=+98{1L4|}Cn^{!9;@Lzf_$CT~M?i!+_ z)JU;5C%u2BjJjMAHNLJqJwC$3m>8fnU(y$AfFuv>Pe)}-F)(9 z7J}QGD_*$T^SG^*U5M$tDwT9wf*wd3G^kC1G5I}#T45fSk#vi6Akg-2G1(~BnwVL> zlGyO1ZaGrN(;E^4#k3S4W|Ha2tPJOG)_2~LubsfLm?pikSogc(Or9f0#s{dVUvJ0Z z!mfP>pJUp|j+3hW-K{=#ER>ad6F;?nFw^7r;YckC<#4H5#yM-}WT*~l(^Hj|d{k29 z_>PkYNk6_OK53t9p-u&M8#5O!l?opWeKO^Eqwkz);>3=pwZL0)$yYHn0rO-FT&k}b zeS!}M6j`6U1TEV140Y!}m!cdL+{?a4HLD!3e%MxY6im4PCq)Bj-f0sv=(4plRrmDy zB1Nur37-Wn*i-MW+NIMP ztQ9)}T{px;#F(kqqCWEh(<{vlUTITH?O6s%sv~Kjw9qJt6%l^?3en7d606;wYnRnx zw+<`phd{X8>q8>*h#cK%fGzp`{);=6fs-Y2;br;&ew@g|vVu|Omr zjk{yi0C##cLjmTTZ|=6gkY;soRHg_S6i~6_!IIIU)SgTP=HzLfcbLF?AsuNa>1}1GF)cRpxJtuH%{NG@aYkUdV8` z)OTslf)B4opP3Q|UEMe+vOD7!l}d$dpX?fvBibu9hh({(b-j;(rC~pX#f~2Nw~Vlx zz_zxK#~A4$?$6Y(WxWfp(!?d$jvQl^DLGlVz_WtJIyGz0v@4`D#giM+A}I@HL?!lF z70$_kxS>T3F*FylGh0KT6`Xn8imf75}7v<4N zeG3YIR_PbbKLzDExz;>JiTkUX==nz1m@)X|SdHX{fvj|~`d>!kwDs` zqVyLav5?8+YLVf0oS*^>(74eH9&=#uvwRV&d0)UDGBdgnj&lR0JDekY99G!6GZ~D1 z7tV(Z-(7$AEnuI6fvZP;a$-c+H1!UHzUBOir3_@2{T2_rEAjhaGKc*C3(emA-)T1g zUo`8#jU~l?i(;NN=p~A{8LhkTd72&c5Grd&l*cij@RQK|z87{JbPJjOKPl2w4oBa4 zzUqZF_i78p_1MA@exTd9jNzm#&o^<6X?jt?w|7fk?xike7CrYDv}krncpPA6_c#nG zCt$BMB*|vxIMU1#G9(yRXC}j6pNZqUqYF1Ap9}dle$Y9l{ssnARZ%Uw)V7&n*I02R0yf#Q{yLU#n&Jjth%6kEE6TbN1Nu{ za@%jGl^e+h69dpJZXtB8?u!qVuvg=rTAY2B<2iGad^t3mJ_cd!=*X>8h;ihD z=tOdaV27QI*72)H&x(IeJsdw$7-l9r8Fr2&>o5c0k18`A?yGj2f9E&ibO{K0i=xs#kcDxT9QD z17*NH)xWf$*mkexh*1!OPBjmP_)74V ztj5O!AF2TnYMJS$*Ii2=Zf|5OZTrUq7W(@z`}Uyf>+bI7mU?0y%GoDfz27V@)UDz( zaR_87J!{rSz%5-nMA##c ztNvjc6YDGW;F-q>*jjR(dqGbp<7oX^=0CWT>UJ(+mT)Ii+0@AO9r9#y!!_O&cC-XI z&wQd>u=DECH1a#FT-oU56hX|5nS}h~rky*?qZoe{Ft{b*A}}ad>_?UEt5>s-96iS3 zuC%5Ma&>Ir{{EX1paGcSwxSV3h;uRlCN({Ev}PPKc^nc!`GC?wMN-yMo$fk$_Uizd z<*}&#M+wxgqh-CXf0hlVr->N>&gQx>D2JxBCD|ndwwXhPVLv2D{^8}Vc>igiwtfcs zpb_XlDqi&UZjr!YDL`bBc(KYef={u$HTf!x1nY-gUg!8@1F%t#r`bGy~;u z3QQ7LGM}`es&?r$O4S;d%sC?>Z|^HL=V4QNT6&~Bnh#k%7cr+U^MgIm7jX4=yAQ#& zyGz)o#rDC*<6$&9OtXLxKWh=zLnjkt{r;ujZvTX%wqt`rK215qg&@#fDas!SH++{2 zW4x$27atY=_|SX+$KPYf(%;DUdaUC8x#Is#<^CU2xuU5;z742U`nwXAZMqOc&C|+q z7i-1g0J_Ty4$uiF$STLg&T}<)J}MqGUkY?bF&Be$3&y?AlrjNTaO*RGKdUdEg8}S{Igc48mHv?0ABtJoX}|V*VHN$Ezoz= zNiUHYw`ZX!1mM_@q?C=Ufy95C;&sd@ezYw{)&cB@GTLZe_3`X>C24;+wm+C;3UamV zXv4m)MybteIqL_A@vl9z=Iy4)c=RLIc{KeV$8T%m7cby@4GU=Dn-qFFYBq;Ryd^wm zJCNUL8xH;Apd=F1o1Od@VEvKX0$c*VQeQL*0Ej-UH0h<5fzP2O5qvZ5JyN ztzQsrLH)Xds$&v5haK8!)JW{$?0m9Z0HB2N*>=D+;|o z8RGHXC8-yaE$9z|(0E{rDzAPO=3zD8LAbwO)!UyOcQLvc%$D8{Wb%QPgtvuvO#cc1 zmRmN0tXJ;o7Rd*3g7*J#uLfueGQF*P4`5-c>|{ZF8=%E%>IZvZ?_(D?N`=$*frtk&i~O_p2f-%WP-?@;u3kGJP#NGB=0rTRK z(|kyxaobUbZmr+5R@=t$Bdi0}B5|+KJ8!R`Ceaq7$d^nP14bsvyGAg@;ak5!?#JCs zJ@ZP{y`jrr;wKs^`K&L&ir5#+@#q_p&?J*o(8u}#zLHxlj6pP#t*#-L2ZQMJAcEJF z;g#x#x0wt5et8&I7;w8!X;zhwrwR!+_CK+@g@!LXQMMaCfi>4>?P^hittP#%RFm$f zm2_jU=VhG2RYEx|!%u|l;F%vN;qT2) z#3~E6%7CV{+kJ*ygV*jS3)e8{kW?i{b;iapmydA)UT>5iYg#bnW1yJ_cr8?eT=fg= z4W(gchj>1Nz;%cFmqkkSx%l-y%FvWD-nmNdsFE2i@kaCyK|a2{=PBz}(d(c?@>A23 zaA$&w51G|8`}hh46m9CmD)p|KeLS`rpFpqi8D9MvsVz5_$i*VI_sY9=`kostsU%7X zQKr6HHl|eD5To#OXhP)kO6*6|GAoP_tt4AH zSG<%2%zL4%PT}FuR^_8eRtSXF#3u$>9KuY_nt8K#0w-PBY!O?Q!dTld*Hj_hPml); z?C-PucR%ysAKy@(S%Ky+Rh@ahhxo!2LzqsTg%L=f zYUx%Ks)VSZWi{X-g!k^(|5rwIvT}*q9s3zg1Tr=dri$ zSE!_G%yQBFqyU?EbRBKYZ=el&9AdMj1dzMgrs&_t2`hgN- z=NeGFF2r7Qpd2kh%Y4rKU^J{uZWaK_s@3M``QxBvyr&N+EsmrP&>QZslSd3 z)MoV)rnJN;AN#@H8KjF)RcCD%RQcK0KGd3pQKR#h>n5)U1TUi`Lz2R4r+0p!BmM$- zjf%HE{0qQ%@w@dUKEZrOIyabE*vnVWcq4PK!GpRV@`7uZZB@tAEcwZck2q?~AYSTI zn^x?JYW%|wqfwf16(2pNZkk}n79&x!=${J^s!}1rLF|%p+QK^H_uP+SWm3uGFHwXV zKZsFZ-dGV!Q!}mNcC)*P>Pv2Sl|Ml@00tE;{=7^5sRwzybN3DrdUQT?WH-M&m}p67 zV!b9{J_Zt^e#4HvAd%NAd-5~pKjAKIWzlW|QZCxb5o@2j9)erTqdCv9Ud@*z&BLV!Cp@O$96CM|qE`N+i6Y33>+u z$3rrcm4f#(E$^^hNwgQ{-h1=D96h{G!$e@x({q2~;I?^pqx$Ec9K)A-=RqLpLaLa< zUZ%P8vI0kpTk|{xS^Flz3CoHh(soPtfDTcWzgV?spxHJBgc+mPO zn{b=JXT)yw5T_k>Zq8TlCNIZSB%KTdc;Bobg^#)h8^S2@baL3Z>J3gVGRr(izg+J$ zCu!^Ms8AO63WXtg{3>4{-yx5HprvZh6}kGyQQ>pmyPicq+xg@XYJMOpeZH-6^m%ZTG02z?;b*5y`I__q)0z#2}1|DeB3lbv+-}q$q)rqL&)XEGugC@ z4>Tm?z8#ee5bGbR`!W|B8oKcXui#a@m^G)EExqxYg_a`4o^F{m^c;XZi(BXI#Godz6L&U}TaFMw=~_^L#glHs@BU&<6OBMT>aoAM$c$Pebw z0|)D)gC-beCJzmY5k_U+eZ(cOL_>NM^fWZs=^4S;*Bt|&d_^6*Jn ztfRiJ$r8I8;d0LOY;TMo{ms?xff2mRY&=O@=`d{EcPabs=ggvhId+|nE*3S5E*5d! zY-3dxGI%$mvK=GorEcn=$1g4sn%Ca)uppe<7v0vXv-~^hShSrAmFh{N(NZ(IR4Ds$ z49oC;bFcrW+^cdRXre;OnmUbh;D!tQgx}3hdJkl%Z!nbcSz6|vZkFyu%(p=+mE~@6 z&wbW1FAWN;e08SGya(&F?YxeJj6IDYGn_MOEW^GsA7IG73zajtd}r@G%uK~|JV7wi zj8t9pL+M<%v>SJYiWD}=FhY|V%8O@0ifak#KFRfA?;H%~UeYgo@8p zC5=wcc?>DDi_et?Zw_Tc6cYz<&NHjQ^g3JnhTIgxb7o%P2TkEZRz2@sdaJze5W<63 z#-ac+`A3i10S6K4h zxDRKr#lA@t?cO)P9JT0VGK|Mve|+PE>&zpq>KkiFfR({{<+m<^q7;K072_YTI5FtB zEwoc@4^jvP!kG9aOD71@$;-`O#x}1<=wKf66*FcFP;}FmQsYvzz^)q?uLt|tJ7AIn zlMp`9QL(J!QFCz(pZ>xJ?{G$wQ-?}&O3qts7@GH+EczU>`g-0N@nM-dZWf>E}4e7&(^k#x^y&JeGD0hY=;XcPOcQ*mHg zW#A#9A{Si>yQ=AGi#1v>i-grOGs$dNGRJ=&z$=%x;y7tv(jOG_{y=EL8Q&^B*iqr| zVk74#T`7Np*C)FbqAl{#x3B=UMi)>3$cVBQgF4P%=~X{H$vREQ8$^j4nwvsL|&ir0V`pQuTxXlT@=znBn4`vAboG zz$ATOj@ou)0U&=>w0d>I&S)5zK}+)ksl|^H4TnYT2cY`fz+t|CSZyut(Ow7Zo@Aa~ z=6dBP7a>}PuHh+k)7}e8iKEBrH&-1&nFt;Mz2w%Yx|&iW5ieq}wnkQ7zO~?F{ENGD z&Nw7^e#Deeg>9>ZfNLn-!yK2p2Tm%Gc4(SLw_D>I`tDh+A|F?FCAlLZY^@lshe9`1 z`wjy5E2X1aITj@N$E1S3BOf69x#0osyS!QjS=k+rq4XtL3QA-HEwEN?wShpEj*TsT zDH@@qIEq3TX@&B;SNSXR>G1T6A6o1cH&YDB<8ryxDC}oMwDN0(e)M9mfkMS&OBrLG zoqLR_)8bW!zs>{>r zl=VJp=n?cLN|`UQEB2X0>+PK~_u6|?%be@I||7I1_yWTc+oy_C9&Z46ZW3s){+=za5T3D z^6fA>U~W>fomt`ckOs>akvfJ@e+^CT5P@eb+jXi!sSOt4t)QncF^1aayxYj*Bv!_6 z0{req)EU&L>c>L7vZZ=rq@BDxGnE##fs22tZ>hNq#@v)wpKuu_5ZN<)_+Ye{@?#L zYK#G63>aObyGN+RfYB)p(%p@s(l8j^C0zoN5{gK-NJ&UY3W`dJqH^@&oa1@F-{1G= zdtJX@x7+pW{(#qByYG3wKQ`T|lKJVGI^+PE@5}v4*vQlcdGxM2WyAV6EdJdf5SKx} zh~cH!@dol}P)xfloi!9-#blpE8^8-3U*G##K42gx-zSPt3;`?6-gc4oRky2qH%)>p z&QV!Fv1(_%F=#)|`1c_yy-d4Csh36NAzXETEd!wWCgBL_sv%AEx^)JBm$(IQWYD`m zVj6F;1Jk}Ep6j!;qcnHulUC95qDYRl11fl&Vk*dMq zAcOsYH)B|){xd>g{8xlP^EQtVy9uh!3g5L55b=0dDh|WWfP0;TTo}tJjDG1!Z?s=Q zBOyiFW0|5h9qFMMHmI~1JjcE51g?(O> z9F!YHXA@3>cAKrt^&@08+e}lQuau-~D7H-?isCd-k5k=d%Hk`;K=|bPD$~<&)xQAn z5p9BE*yF)CzplPDT)tE5)&ZuGvjBfT z9o(i}C3V{o08(WQ2d>Tb+*dI?K&2krfBND^9=)yC6J!h+(uer+1mV}|G$TRnX(4FF z)voe6j`CStr(Rx|=nOH}sx0N#Sy4okvhAAfgG$P{d>_@$MTN>Rerv*{7IAaqNu6(S z^YGm>r7?Z2@<7!?gb=%5nUhs)jtgbAB;oo3qJ>QtQ{nW+1o>Ew&o`e>r~4g;wr9XA zy=%7hW+c<7vO39*_ctQ`g-?f3?50;?0`;pf0r!31+I~i*=sRb(HW&u-LH7JHfaNq% z?+_*#)W*hDBu3KCM$`e_CVC)NiEjwV{GVNdGNr$|1Z4RC?h+8#yIZ`_g*@lZ^H+o2fc9 zeo!sK2qG@RK2)n($LCHiK13ib9wufZp+Gx|&-5F!jVOAxM+o&Vq zRocf02`-+m;O(?=W)875k zBEWugo|$o2PR@=>E>c$bz%ONz3abfsa23ww6%ca8aHzbvJtDdwMRn)9`ZWC;X0SMC z{mYVe?x!*93(q!d2}AwU8N`@hwUD?K!S{d ztsQ0JSZZPm)d;C0X+Sy|ySy6TbFSV3rj8_%JCy>1AP@5-aNM_lke?# z!d7zHW5Dsm6`DwxW=Stz0V#u7zu6%cxw|)uurqB&^{7v<$4AOEb+GY)A17qw-lv!D za*cx0^Ab$(kTP%+5Q#Z8lx|yZ&m<(ayu5pYyXZaG<$)i&l)+R?RC(V(fyfqMJ5RTs zEVUPBG1kpws^J?LUYj;`*hZsf6;8KteW znvsnKBeEIWiNJ%MP$$=d#X67KfH)A0OUkV^*Rm+cR?Di)+ATmVyk5FVTw5OeOXS;y_p<7-l3oooAL*3@ISGpb?-_#M&1uI6O(!ANP5|bIQFKQ#H(d2qnDpBCMSetOE_O~c?RuX8m2mgbGc+L> zUyeJvq9zNPiGj2C#L}7zb(*ryqEQ2mFjnY&dJR?K%B?RaQ5@I`5NF`@8*R2q54@RKB9cvk%wC1GzY=ix%c zVjXc25+W$S3@xjX#8b;ADB@9_PQWxB$<)4aC8s_f3 zxb&s&`#QPj?}{bB%6PaZcf*x0GQbj0pF= zA}9qwh&?;opYyYe`%5pHHRs$c0Tr2JxQjJ%6&oM(?AP#!UlM^MiuYjOSIjh$ST&up!)*v=#xbX^hT z>Fmg+T&Tf@vUI(F*Ne1?C$aVu5(4Y@8JLv_|5p5YbZL%C%X$8;gkrBMp-g{QLffw@ zp|C$Iq2SzqRYH5UhX1aFCj6@s+G@G8`!~wG>XiS5GU@+~GR1zQ%-ZJvK$!qRl|EM| zv}W)wp<6mqFjZnI&dlxOtVFczOPlZo9?`tK5yhQGw!mp_T#j(pJOC$HYalu`ii9)B z0lAB>k54=ivJ_}hogYD?p$agq<5Bqm8SU3xsmgz%%y3wWQd}(Ypajk+{hhQ=dM()w zWb2_mg#B~%J_XTPN?dDUsp#hs%{1aEAiMIU+shWF36J0E#bpvlX&11MBc8esdQ3pRp~#i^m3!fBD( zDzeSe!JY9_bsfp9yi4+&Oac#w(y$Ful=zt*xMBI19JcGpfvh|VNk{= z+k6-u{cY4lj065DRU(BE9t$@%@PYN$@MEU!bBrVd)Gto|-!16>=@!%sZ{17R_O4J{ zY3EN6*~l=J)aF%T=Km>!`;nUD37YG?!Vgx;C{XKCk(BB7As_s@BOP0L1CK^R=I*U1C zqIf?H5e*gBXjo9*yuVNVqewdfO>h>WM#_1vbPHWzF}1X!TJ>a_3NPqjeB^R6qWqga z^8TAXqW+?fDgQhANcu1O`0g+I$o3a~%-7{%%UuNN{{n1_-L}CZ0UR_9@@i;SeWkOw z1S0y#8A0*=N$%zySb#Ev+YbCX4NZoy2lE*Y6fbw1RwT5iUHdXJe~(A9W-K}f*10+H zN!GY=Rw8|epjDjCQsj%6?d$T{rVn`l{;Es;AC}|vOC(~^@xK5PeKe$wf}|EK{s1yk z5EPu2^TKhQZqR-4yTg(2bI#ILm^R5MRpc7+3k*o5JWk9z{L_}=U-&WcKk;LKPW{AR z_>p%eLT;IcoTXLO)3ZB`vpdIN1Oar{e;RSfb7&fVq`nn{2}^hsXUF~=Ne5gaz;Twh zVrxO`8RYWvBjp;^)zaGe-Y(So`s~C5r8yfuv)O>sRf?^Y=3DJ3Si-Hy6oxM+uy&xn z0ExPHC1Ib4uJ$=iqv2dNd7y_M0`%eYh~i{<@Yz10J*S0+90S{(tJBkF&DOfIQyUG& zY1z{3-sMUFK-3q^>uPWrqzxGWHfHiR+EPza0-E<;ZB0XVFvD0=13!}YTu-1yLVzb3 z=2-;~jjtXW>ZT#d`CdzOg~dj$JK?d|dM2_;_MN_*Xq0z=1|yT9M7q2{==!yAY{H}2 zvlOp(I1Mjc;VgE;7+_>uo$A2lBm*O*MPz=qn~3tDGl)+y*+G!OM%7A5hMZ=n{^ie4 z{NvBZ|9|~?7OKiYGX*0<9qufNX>lefH3bGl9Tt^7Gq%B~f@FhtN}gO7x2N zxYB{{FF?$2(7|Foj7Q_g1XRmj>6yN5LoCOO`v_NGMRAr?Nf9EyhBomJCmnV-LgpC< zx425Nvv!q-{2~jMW1bq3U$3@+wV#Vx`!0eaK%4;Eguo5V5{kGv!Sj5Y<7J?RNn4{D zmng4OWfKW?RJ&jVsOv z@wxv9@p0mDWPh^4mcLkG?0>St{NJol^*>nQ%-^h#@i!~Ha?>kW&~uZAl(FAxwd_Ho z7uOJ)+2fmC*FrNUjj7c_fW$62uqkD5jH}k9d-JL4adDTzNsIh8S=H4yc#oRqZu7D% zN+|w_iCvFK1SBGFJf^8O0sn6yzWuilZ(Zu3xvfBbG1#iP8D(*AAb9xLp04>O+p>kN zp<;YSjP0>NsP5bs&q1TC*KV0(v|2WwllUlmW&_^3M=vj30J7!S`z9ug3q@@aO#MBx z>fwQJ6PPs4kyH;0pS3?4$XVWi3%}O8ovLeiti+{FvcoBH4rL>Hk>`C~zlk=c@G2Z5 z^BiFX;vxVcSRGFvuwC>yrr#guhP&sYJ^0gzHc$G^iNhlU&80&gqQ~hCU+wb%p62D{ zOGV%D{9H@jZJ_OAYdoaunJec(y&?z~wW29z7!ICCD*`}wf!Wu4_by|5s4^MV0FkVe zAJdtSkD+CKDTizZZj`8xvBxZa8sjtNA<7%G_+aM*V|L+5E02pGW2XPb4?ia)fgjiH zokRd29tTE8AZS86j7$S8VJ@s6q1~aksf*k#0<$T3(7uWfO|$#3(r47hI$|D@aqXJi zqyX&t0N*&d+*rLfLjcwbs+*!8N`7PnwLl=!YhQbDPdAf)ewA-*oK7zunPK<}nq1D~ zY*&9H0MdJi8wrmPVrnkFA+2UgqkrB*n?Fh1$NfGV6^48g*AnZ%+I_i; zcY06y@E&wkxgnymUgEC(0d%?U#?n2{Yovl!qHt2(lS!&?A7;yyp|Iw*cDrP@GVTCX zVS)(F`=LeI^w;1B`s(@gr1##`{aK8168baZ{OwJxV*cg22<8`}#r8*LMbFj?pIdLe zrlauX5u>Fh+}TaI+HyzTpM*lTC1tD?rm2T3Z^DRjT=0cnsgr1l)*yJP7*X1>Z^>{} z3;2^PX_PNq#hH!&A;jyDH0C|LGN3$aB@=vf+c%tE&~uE?z&J=JMjnX%GES7%mv?m> zId&H$4{=%+LGyql7nCYy)5|e=EiHl73{2!$G6vVS4j+JuW?1}CxM`TDETbGzBXFPe zAcBew@h<+>Xd(GnO!+m*bz4xBq;yowgJpIs7N;v%YjoVFe&zqEup+|<%m;a6y2Hk5 z?BQ^kLnhfG{2p-LiDLLX15+HYTcP1ixXt}h1o{x+v{+BeA8IPi{@HW`rc{t_uazqi zl`k&17#7em?JMsy#$=dv96I*2-&e+ix?j|XAReT6(;|1Ib^mSih_}y;oKUlvX?$f7 z!3b<;Vm1_+#?9-){Q$dCBq`1_vd>UE)LajDOK3*br-iFjk?TFo5YQ z#nLhq3(G)r$+jFh5p!2B0yL4sd9&n1LSN81i$}3T?E>r5UX@?32Cu4L>>iSylaX>V zXsaU~Jvp{mMjZF~6Xo8|5EmdlE5nu^KNBQW(mm# znTFeTPF55=_IoWln&Uv>sJCu+F`fD>J0;J9+c6fPOg}QU^V8!;w3#8BSz;ML8U@bLg|W4WxkUypidp#MbR2kZ;>OdIbxl;ls2T(h~r zA$`_|y06DtTbE<*Fw^r}v?NLnB&1^p$t%D*rWKYumW*T)dIGP-&FS)DNRF>sLQ~%eUyT>P08Bf-HS%Gz-}^<@tqkv{T)%`)Yx8{KEHV~c zy5T#98!KFxW-f%c(pZbl_83)EQ&HDaXMBo>eQ1%4DdU!odgmY2x)`I3QdnwmAXhP< zdtMp7xqdzq%^}zG?T4~Qm(GgT1_Y-R&&M#Ew9hy$2@va2O1QRHq8-L*oxigPo9oro z@#Y~Yaxu%lgPpc>^pA-AoXm-LWr@iAdey+Q=dp*hg$@Cy_DN1vswr52+(Lmr?Vzf-xVF)!{kc-Ev**JJBtrwvYNq($4YZoDXX) z4&$kDlCE^ryU|h&29|M(2j07!yM4M?+j+HHw)PIjPz(2Wy=GzCG~pA^*?o&t{V?Y8 z>W7qWx`Yj4bbLLN0X#UuUx4hlJ-~3OWkNlAinQR2KdxFnfo!ID22n1$Q_F1u@H?-;=w^Pk~#t3oxpHiBXpr@@yp zmm&WQ3vvB>SV#}dajH3fc)))HRf5-iSphHe>!A*sv%9T&zR0abx~0P7qfx|K&DA0{ zhg&Lw9wr7?;kbBrz`D1sW2!o(vU8VHUy>S4?bZsm8~dl}Fr0Z_rzCKYnQO z*=j2yhE&JGvubgl*$BSGYieONEmBG1^CjH=Ddb;DIruN7oJ#z+Qmz@NkN*qNdHoB~ z#r%!vO#eo7E-~0Y5#8JWM08>0_Esn%mAqo1t1-z%+LpY8uGSsPF(HN`w3z5@H-txBEA{WY@}LlJS=mOxSkC7E1$A zh_3lbGUOUHmBfhfp~);^uGe1Q@lNAI22NI@@`_Hkcqp@AVVhV0odC;mzwzf$Xwo~0 z3b0zxiqx)X>Xf8Te}74l6lc6OsRjF&`^-A3!ZBBLE&&6_gOlgw?}|pvGJ&!z96F2G zW&WabT+a;uo6fNSL;G$Z3}{lTB1^OLGy^duN|U-$#jB64 zLNN9$RU(sx%bPrrN4XQbX?a|1>x~bkcQul_d5dDL%1(0h=#3KQC+R;saSmjh+CXCg zGT~xh=x7~T_@oF2m~VVAJ}ku4hn-UGQyGPp-2?_0!7uGx zR_lorj6du&5KM?**h39T1B`@WFaoEYT>7ELq49l>Gh4*ojC6E7e&M`}*qZKY3Pqkj zmFj`uVXK6k+FeD}gYQsR;%^$-<-Y)_{}*>R2?;HRGB!2Kavu%2JvT1s;dIc~;F*zq zLzg_&X~Dy>Mq2quXdnk&WHRO?MrOU`&*n=_b4OwN%xMw)O}RDje8jW*0Z>UrWS5pI zT`h|iCsX>k{hDp0mpzGjD5kVAcp#1q>K?wns{}Nl61z^YU-(Y;ZMH1B(|_kgV|KJB z>2Y4UWd?0cPNcy70_`XDo*xoliUEhLz{ci-@X2=LWVVtsb0t^;l2h60fp3AE;*T z>)=>>m-V;mpqn9S^epkHzG-%U|GG6+FVrMNI!}Chy)5S375?2!aWu zu|%^HMWhfIhK*h_H7ACBc;eC{__n!^zj(55DyaGGW9_d)8vZn8&^517Gc_sr;!jcr zlk?bzoCKK#?Y$B?#=_@!Wc=~*VQq{H}-m`Cu2awcmO*Qu;B;i0;)N z(^yf)WMshN-s!!Ux6EnXx<&mwj;*j@oh2!SOYMHKNaERqn}v-qdpC~ldwM)YWUisH zo*(4N`4%m~{>*F>Hv4sB2{u^{F3U_BOV?$Lq+e~0zf#C7axM@SsekKFcD%z`pGo9b ziCdsh;R`o1A~5$XNM3iI+_Q6|Z)HGrgMx#^(%OZ+%+S*e0|u^EK4`w%U@T2Nkv)6y zb4i2rXQFiE(NP%wkm1e#fHpKPf|)5G{(~mLqLEvLlCU1+!xAC2YE?URj0~ebO)yK6 zb8R1?n2(aArvOVSBMz5Ey|` zvT*uNy(6fk>XrXy;MN~5bgh_i-3il@hPI48?~$C^CpIiqGO9v+46)*BHjYWm`CS+9 z25(Mf613=kF}jpAEPVx7{)!t7N#|hKDR&S!zn2~c6k;4izsfA;Tby>g?m-{L_aapm z^hjbieISN^Flaf5ha7B>s8PY!3XD0+oHmYq0defQX;6CZXm&SrxbE*Wz*g_azM*y` z)6_%SXVO{<@1HuKdQgawNU~Qy5EY)K3ZnjT0?^;rQyxB|EtU*Ld6gyM`Up}JJjL?x+*9F3PhwWr^URh~Q=7#3nA{aY{{DB@e=tWMbx_Y7ajlwew zjaxsQWprk=vt8#Rpvll4D-!xYhOCC!O^^bMXPG}WYZ0zb^KX@p-z)n2)OVu!9df`))dOE#X6(~CqD zPVK3SY4QYc^ueOUsU#cAfXjGOHn?5EK}L_?H7Ez6sA{ZM7&(?Zki)^^a9Xtg5qGl# zow#3-_K$?LWKe0G7oGL8Iz@R?Q7 zI6%-Htj((k12C};mN1P_&D)M?(raCD}15dFtv)i5iFzTU!?w(j&JSy92yrgnO z!_6DW@k=;qH76~JL3 zmIKkww7Wph1KwfmraCU|q?Q_qT*-4P(0vd-Yyh`LmrqgZ^yve|*q`K%6-1hF&~o`m ztGwI*=0&Rd<-a~@k=l(4?4w>5%we=HlF}FLV<_68XoFUks|Fpi&D-?=94HnFi#I*; z=yqqyXGTkQl3qpeGMpU+yqOFx;-i!+LQ&`JK0CZm0cz=CzZTmcs`yFp?Jt16AEB5S z?4lL2w$T}1kY&cJz-d|GmH6O<90dK?NgPm-qvW~ZSWFmbn9L{O12sRVvG*toG73|i zKNfvVSuC33_5_X;y`I^fF1H10{_*qp7CSqq>j7+-sz-)iK25;iC`&=Mse+pVu11R9 zkXn@2uL>o%q+M*;0dTcqy1DP>PJ@i$2~td3Bq8n)>|CJXk$zC4uoj;np=_buH!m0L?g_)e2lQU;j5q{TLS7I0Fx)<~A zTPq;%VSM9e`!sK~wR}X1#}B(Gt>uI4exI=AoDGIPS>)sx2~*^4>lzv!Vih|^+CWm7 z8qO%dbVym2Qjx;>pZS?(Q}lZvtl$G?SUr^TU?>5e)J-DkmJScKkR!?F zBC``)fi9zh~ zPAFE9F#VcAkFWE|3u>G&cqLMhT6l0DqNePs?RKY=TSdu(Y_Nt3wLiS|xMb@E#Wyw0 z6kV$uT^=Pp*^koho4K>xJKm*oTCF|Tm~yBxwKZ(5Lc4b$;5P6Rt385KQ>%`G)q(`U zo}gs%LF+}hn~PusFp|?Knt$Xqt^Y1lwYlQ$xjKvR`)8RH|ByFg21X@iJx@d>3R6RC z%y(hS`BJE|EERtvQgACv*{WyPNQ{(}@jQiT8WRxlt~K8N`?$02V2wd#C&(Z3B{%LS zMEvk(sg~f5twZl+rl-O-#`0})4YsI^%(i`g8LWY1YukN1(FIFvDy%GKCC7rX znOfObqBux=cbqRA8alLPX!t7Q8^>Oswpl+F0@Jd@itIwGD+L&gmB{k^2#Xo5P;QNz z)^dd@D<*q~WH!}X(L%3Aa~CaNt@k^F?gw*ZwaPY{ z=eVQsplDhQ_MX2bIMP^WS6cG9pr%g7)r540?J%EK)0H<8I%i z-xEfXmdxG=&DU$eF_=xREH<67`48jl+N+(2P>h*%HH!x;1}TbczSks{>2c6i^i=Y{~ohl5BNr625{Axg7ce~l34*2k2#mb z)laiqW7JY+=8a%qqH5Yj!nvG8Ha?By;%Sv0E+xf3p19B%+O4pa-){&+V<6PKdGn9z zdC`@n;4Lwdta5Nj^%OfL2OCvlRpoRItM{WseMOA+S0AcOf3|jb)9Q`ODZ`R9(RT5I zJ+sOf{^R37><CPG5vYLa>_GKN2I_^hUjJ40%iIu zd7ntG4M+NsDR(Brl7P*s-Gfyiw0BMWhd33NL55@LdnVB$vWU>E)&W)c!n)muLW7(9 zVyM2T^DGXI4z@NTU-54?+IxyF2Nz96uGady9W6Y?dkrBE1PlYW5n-ZUycraocZk2H zt7=qn=%DzN>&;EEeGwYMpK=5swg#qw7$D2_=48e#GS0QOZND9f0GcOSa(8#k0v!u& zZ2g&nN3vT+a2Wp=6>a;Gq@7}~>GHiO+ zAE=ADK$h~R$%*w@ZU(+)E8)D;XHAt!;Jkfxby-o^gNe+3&Mm0yZXa%s(gXGsa0Uo< zRZyl;a*6s;2xQ3QtekGZR(@19I0B*@1aH5z;F!hAUN~`(IqK&;LF>ZC7_llDSX$2w z+Jiw>dIc&}r&!X%gVHjLO0{n%Kl;5+qNy~28rID!mK#`yt>cKu&Yq3^ zJ&eAr{9M>DR!ccAW--69Yd~&NJ@4veT-Y95lol67rD;a-c7umY7^nz*a!=bi&nnVz zi0lP}2VGW|QMmtjnZjne?H_}E%kxnlDUr(i;|x-0xe{_{iLUPFk>eH`Je4oqWjFA> z!&|`?q6sdAk9;z~-fJ#}jFr`A*~eM{n7KYF|D3-jP+D#5ngq$Soj8cRDgPVNeQK>S zFj9oe^bqzX>y9u+BGk$n|WUujQEr82keK zS)(jq9J_COFFJj7S$Kj_yFik88#*rv4N$TS#0;ie170an4C+>xLzPs{so>ahsW=Dc zsn^y0PDW>mCgC>?Rr1}x*sXCL#E#_0$`85ALI_x@zpI%ZJSFr^>=pl7VHZPCXdFKY z@sH=-;2vqnN=NrpYg|omeuwzqmm8EQi+ghKe#C%`Q4t(XcDyO~aDeJyKHesQ<~rp} zzZ|`j@C5Oitpi8-A+)|_gFGV-s#{vVd?-jbmW#mGfX1zdD$Wy}F21 zC6e#9l^BVMmIiifpNG1^EgSJ!e8v# zx7s+ujp|1;xe%U1xzuTVSmU$vZ+Dw7Q`%((=_vOe9Neu<;9AWu$~q`(8>?rs1G~#j zer8=2cy-OD;&vtt{}X3RrVk~^Jzkntl9)`A$4eww@|XETb1}T+6oVh|vXh_}(fHE| z@9%k9lRI!b+@sp_mlzxJR^(Vt?8u>%og(F7Ne4UQ0&| z=och5p$in8bWNKT4(VHDEZpKGN6ftHg5`oQH}9^Eo2~T(;T-D_0h@NK8;WF-gB7ot z(R~DAfVj&|(E)pf{SYH_e{!i+sGZy&}LMHCvv&EB7 zn#|Z@_|g<#*Ed|cjz;*JYqJ=l~pI0HNFSeLOg94 zuDvyPB)aP?i5J*u2GluvqRI5AF5*3HfC#Rfx0d~~ z9j*+Y`wxOLKfjARh&-lgh)k=2SZS$=HXYG^!@YoxLt!7*?91YW2r)d74}@C^7jh)7 zc1tu!rB@Gh8|HT;wHz1C%laO;NWCuLLKV3`gGzcIF_LJ^@QmC9`ohX*{6+4F?~cTn z2=4DOC8CzM_*iF#o`t;@9Oa+FL*$#vlDM`k?$h$LCe&zeDO~3V5F@|RD}+Z1@)15| zaY{}h7f|N3s^l{5BVJ_?B;%$=?#ZHOopVPpq3cmpSmZXUj z0w$h*?H@)eb#SQOTSYxcWkINSG`;MOIN>A1IZzFL#p<)L6)ClIYjJ5=Us39YEh1;&}Zw&p)oz$besxv@_gq#93XrMC$yZiOnr#77H3f6)Ii z=~fcCMg4Io;Ub%Ev#7GcV&MluE~(hAb>wvdv^x58puM^Xrpq+?!ULQ79dX9Y+Or{Q?-yHuu^g_aE5Ye7)tm zd`lD`a3sS2@&1~*X0$PZ!v+uYhGRmkG!EaC{atmJu-(^*u{EGdZsi5f3kOkE*_M5R zp_cVJ?_4n!-<;pmF4-AsMvere`wW#ZFIpzgjh}6SR$(kpAJCCOD#+a&CwRX5DUpy= zLIwAzW8$KO2-(1oJ;HbEca63rDXHmYzlt4|V)K?d1u0IqEwb|KQt`3FO@qd9uX~8+ z#YnkF3U?3{AlWFefx4C5E5Q3>qtarGj$NlmMG)F|u*4LzL zzv~cF7@?NQi0@wOHb$LFmb$T;A^*jqmcm;o_j!a4faD{|cODp5V8%V_KcEm?@=WP1 zB&gajsIKHS=O2WIqSpo+ydIzqyXZ zWFwuAS@UFYNo*!_H!i8l0~B*jX44*t6KW`wjQ$UC^3p~LZnKDEYDiz%o=<<3w!azO29w1}~= zZ|c<_)J%28YAq=P)vX!{GOw?`{GV+{xnP^)nYsr!Y3PXo+XQ!*?fQ8YlwD-AtZflH ze<%h}kv2Au9e#Q#-(Hn>NMOpUA*oj~Cp&1Az`U#TaezhCaFIWImReloEQy_56C$IF zacv0IV}){_nF}^WA_?T_1XrZ*Y%yykUiU0w-uQSGvh0*YUbIHSnu@c%Ysec5P%;aF z8w3&w2Ke;O<4-MnLKXvE-{Vdsq&5l5X%~vS_~aTQ$Pb=RjU7k5(-(5fH{bZotZ?tT zuD<4-BYFfu`~Zw>^_gvS(zFs03+0aTxoskG&yTgQr|UHkmFXH_99Or+I6AglultU{@aI5sX}{#=t-cV8~3xTc=DFsuekh2z;0(kltACLa9 z@Q*}h0tnw#?VSRo$)kWc+zy~@&{mnSE_k5JjeN!PYUb`Z`hE^y;!1vGX{=2Y{Y{mz zHX@w)1v(39uh5X2A(qr$bqwdSi|ElsAk#A{>{vT=j2YBqd)}YX)50T=;8P&-$((y- zI?=((SzI(1J3HteNtWHLoj?bvZ%_K8S@3*X>{>1!R4I})dlS8{h`tt6$LW_*w)zvz zZu2=H>p(-atcdXY9fzUU{LyFjqCx>_T;a(fz*WjFbeJN>TL z3Qf-&7;eI^(IYCu#uK9JJi6gSFSbt%?B3Ce&*-h-Rz6a1LUs8F1#)_LYWnf2Z{^Vs zyFGO_of>gtcA>OZYQmF(eqA>zEIkMVS)|+gY(BrpiM}k|{`zC2<>}I1;#sRQi}H)) z=tUOcWM|hX`(Vts>y$sZlqxg%00n{5x&ztK-RG>(2yLRd1b0xrz;(_Gu7Y6C3SOt$ zzFE5Vt=DqO8D6L~sS)C|($sq-KB-9fJ44veGB?_uFNu~`^P|in)AXXE&q~_GM5ttr zS}+~&@YaO?$j*?mic;flyE@?M)IH9XTf)0nIL82$vma z^BjCeko;qPFQwwT=#rJ#v^j^s*vI?aBplH(>cNV!L;XE&EZRkab#%>o z)M4ae7g9Q?i7`wuBORw2OcKQovxPr6HXuj_r4cyZVN$J4Lg5M(H0`F9rmqPac-oq9 zX0Ubj;WMnMZWKKzQbJX>`t-b=(ph;MlC~7>BF;>l=G`R2YSBv(v^KGO)BSBfw=M*% zaK9CL71LFI$PhcfPkno`HJVj8+QY-h2 zWJ-K^4XY=YyrplSL#XXSLT>7YsMQPM`)uWd5)ptGI;AEUt6tI4dW|1P?cZaaOo#{L zSwapExfXQC>UqKM8tlzqU(fR5Y?dp!rNk4|498*Ep>`XDa0y7-Tl#mYcM>?#7{MIB z06QR^sj*-k(#@d6V-0@rSVjdMfACoU)>#bPX4sqE`!xh`ATbXj>I0Ub{sD{XRGHK=8`7(-+ zIFgKHUT|fb+YYOQuvGDla#ijUC<=KWH_`iOu$$BPVWcO8?^> z?>p;MyDS~wr|yO81S2)V#98T3Om-XbWArMlf4{Xi3(rMJkAWjUn%|~=07(0x)JB1$ zI8LsqC!RYEwEZLx6h7(uX^>p8TAsxi!c&w3qU*3$sW_tNQJ`Ax(~AbGDjpG(e!9oL z0hCVC-{oq{gs$l&jo+o(m-RwmA@}|5{b?aOqt2g2qyudih1wSd3Mnf6+f+ulhcbqu z?YKtiDMi7rXK)y~equ#+0~k39dR4_Z^83~rNppMA&=3Z39G7cn;z=U9ugI#E>wIvn zpL#ov>N28@UbWMbP$FqB2(X;XwbWo999zQ`4n71O5^j~I9eCPn(Y&&FD!AI_xw)0x z{OARig9lX9%86jehI|ttS0!{(C$=Wp=f`iZ)<=f708l+EXsbvTp zN2!z9HF#RI^mvaDgs+Zi?6m_vMUE(OJvo!e@CPwu8GP&#;EaFxHd{JdvSC+W{#i&g z=Iv*~wQ>%VAM|;n{y{5~?sI@%hm~C$S$Vv%Bc^U?%Qt@z!e`SRNCaR8dB^C={#s>p|DCJ5Sxe+C`V zel7kBkobTTC_iPu<0&Gvr$0v3uTo{~zahAyusxI4?0>ewLotYXkmKEfWP1~Msn04m zA@E0|B#f`gtXF6Nf%txHlaZ0CiqNGmKV#SVhU*SxJ1W6=L$_BZy$@eWej{xZUlJak z^Y*1OWl`WPU)1Z&CFYB9|E+Hw?^&3ZJQNI51`ItGd3p3MGl5kVYgdP!QKhWi>lb6C zL)tVC_6PS7{DOy$uRRNP8UlY7sMZMHsxhau%X-#IB&l!cXJQk}M;cvz$3zv6Xm(d} z&!8kWvGKR+82l#wmd$K%+W^K12Lal_^*UaEY_S>;YekRs#Ho!J~M_3;-7D0$nh6|)ig1SYkG#e;MeoaXJh$`odvcF{Tw_&YT`xp}UZ7TF` zla`XRm#i_9i65s0@^+u$v)|9d*mIO5JM6_QukgXNpTx#{ znFxvt4NoxmF^;P*TLsuI|3l(2<=9KR&xhlsTzsAFLl+-mY{1vL=|;pS7*qbeo1)ve zH`-AEgIt)N?ODVUQOpU*b8Ml%(CnB+Y&JeKAi{WyATtHc(rQi+bCYb-0F;Ve0uNo3 zCg$Su-pjIiNHlug-<8&UG=BwmYpWw-t6+yexxJT)PR#(ay|;fj&hh>^G$SwQSsW_R@@ zzT4Ccrk@&#Ii&do`2N1RAI#SOkR_c<$9DR4Kz6M;KdAO1{o+B5$t} zL5^k1Z0WJ8*L4sI$wOSIskYpq6cEaWw#V*M$n=qp!}l7@y-R!kbqUP}SMb9OT2pc~M2OJ$YP~hmg2}g@hIr1_4q{rXL2!d_*yqJELnL(`Hpzb~@Uu zkfK|Ptw^c-XG55vY!ytzM?tyy{K=;a6+w+sL-xqWyzfZOIjgqay%(v4yjG);h!h8L z`8qGseEtU!Rh*48ifL6xR#{YBie z{v%(5^VAOV62B(ueLs#mSeD!!|J-fIUJ=kRvzk_YIfwi{9EKbht3mcPY+O8i;P=OA zetBZqgCX@$H?)NEGju$xa||NaB+VdhE2RAd_jv%X`S za?{$MgUVCVT`Dfa@xd+8$SY(8Ndox9&vWO+WM)2V?H4nXJ+s%W{axG0cd~S1f+jyAVHTA4 z%wcoe>W^8%U|F4Nx}M^WNE(XnUL$Xb((={57^6==TS|FsSvLvlSuTw}Ka@_`cm)}u z^TjIg=5h;4F2iccD21#>Ghoi7hiuLw;10u{x!>OJ86uTfah?<1jQw&zs#+s4c8{rC z1|~{9pkFaSqzgQMLVe`ED4(oP(89L%NiyK=zXv`|A71P-rx3YoUWO1*?1N9z#vj7NX^jLyltOH_`M1V*}Z8XYPy`mek zON_3nd&1QWXInlf)1PbDS(aF<(VMr-tjp{PSkeUT6I=6=B)M#%H!)NBIn6*O^!^!{ z?@A6v$~pCWe*p<8b*KVH?Rj>$vGR^7MB-TFm}MHw&~#n&6Yr?Ts%jlDz;gMYudb(@Kz+trH<_gc>CbYJf=6pm!BYvTq|4dkyL zYI?8q(jKBK*R)kf<@2F)?W2;rYzkm|2h|=W%~~2~ZJoxdqf@MaX# z9zx8Z(RnY&nNTzx2$=80aaVpR^u(yYcJpAdh z2X(=m5w(ELdN6NWBmxz@sq84+ourO&sp~1zlq=BlTW}0CoHTl#xhL5B>Dk?qWmb?9CO+bwX*spB7nP@=+ji8sQfk~_4iltECV-0(} zd$#>p9$S?8`jrG}XcW;tLVx_t@YYBAqn+Cz&m`)x$@6$HLsBPCC^`1tEmHzLb$d&& z;fs*18|gy>OoVzFs^g5v;d6E@?|muK9^C&#O6a>cp^cgo>2|oyqyh>@B7Pa=*g^

v8u|M#ZS*0~-&ifi^>wAmQV&1c$YQqOK;&Cf!OM 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

aG3P7OJ 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 z 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 Date: Thu, 26 Mar 2026 14:38:09 +0300 Subject: [PATCH 16/21] lab9 complete --- lab9c/k8s/README.md | 168 +++++++++++++++++++++++++++++++++++++++ lab9c/k8s/deployment.yml | 67 ++++++++++++++++ lab9c/k8s/service.yml | 17 ++++ 3 files changed, 252 insertions(+) create mode 100644 lab9c/k8s/README.md create mode 100644 lab9c/k8s/deployment.yml create mode 100644 lab9c/k8s/service.yml diff --git a/lab9c/k8s/README.md b/lab9c/k8s/README.md new file mode 100644 index 0000000000..723ba24ece --- /dev/null +++ b/lab9c/k8s/README.md @@ -0,0 +1,168 @@ +# Lab 9 — Kubernetes Fundamentals + +This lab is complete for all **required** tasks (bonus not included). + +## 1) Architecture Overview + +I used **kind** (Kubernetes in Docker) because it is quick to run locally on Windows and good for repeatable tests. + +- Deployment: `devops-info-python` (3 replicas) +- Service: `devops-info-python-service` (`NodePort`, `80 -> 5000`, nodePort `30080`) +- Update strategy: RollingUpdate (`maxSurge: 1`, `maxUnavailable: 0`) +- Resources per pod: + - requests: `100m` CPU, `128Mi` memory + - limits: `300m` CPU, `256Mi` memory + +Traffic path used for local verification: +`kubectl port-forward` -> Service -> Pods. + +## 2) Manifest Files + +### `deployment.yml` + +Contains: + +- 3 replicas +- labels/selectors +- image `tsixphoenix/devops-info-python:lab9` +- readiness + liveness probes on `/health` +- resource requests/limits +- non-root security context +- rolling update strategy + +### `service.yml` + +Contains: + +- `type: NodePort` +- selector `app: devops-info-python` +- `port: 80`, `targetPort: 5000`, `nodePort: 30080` + +## 3) Deployment Evidence + +### Cluster setup + +```bash +kubectl cluster-info --context kind-lab9 +kubectl get nodes -o wide +``` + +```text +Kubernetes control plane is running at https://127.0.0.1:... +lab9-control-plane Ready control-plane v1.32.2 +``` + +### Deployed resources + +```bash +kubectl get all +kubectl get pods,svc -o wide +kubectl describe deployment devops-info-python +``` + +Observed: + +- deployment `devops-info-python` is `3/3 READY` +- service `devops-info-python-service` is `NodePort 80:30080/TCP` +- probes and rolling strategy are visible in `describe` + +### App is reachable + +```bash +kubectl port-forward service/devops-info-python-service 8080:80 +curl http://127.0.0.1:8080/health +curl http://127.0.0.1:8080/ +``` + +Example health response: + +```text +{"status":"healthy","timestamp":"...","uptime_seconds":...} +``` + +## 4) Operations Performed + +### Deploy + +```bash +kubectl apply -f lab9c/k8s/deployment.yml -f lab9c/k8s/service.yml +kubectl rollout status deployment/devops-info-python +``` + +### Scale to 5 replicas + +```bash +kubectl scale deployment/devops-info-python --replicas=5 +kubectl rollout status deployment/devops-info-python +kubectl get deployment/devops-info-python +``` + +Result: `READY 5/5, AVAILABLE 5`. + +### Rolling update + +Updated `RELEASE_ID` in deployment and applied again: + +```bash +kubectl apply -f lab9c/k8s/deployment.yml +kubectl rollout status deployment/devops-info-python +kubectl rollout history deployment/devops-info-python +``` + +Result: rollout completed successfully, revision history updated. + +### Zero-downtime check during update + +I called `/health` repeatedly during rollout. All responses were HTTP 200. + +### Rollback + +```bash +kubectl rollout undo deployment/devops-info-python +kubectl rollout status deployment/devops-info-python +kubectl rollout history deployment/devops-info-python +``` + +Result: rollback completed and previous revision was restored. + +### Service verification + +```bash +kubectl describe service devops-info-python-service +kubectl get endpoints devops-info-python-service +``` + +Result: service endpoints matched running pod IPs on port 5000. + +## 5) Production Considerations + +- Readiness probe keeps not-ready pods out of traffic. +- Liveness probe restarts broken pods. +- Requests/limits prevent noisy-neighbor issues and help scheduling. +- For real production, I would add: + - namespace isolation + network policies + - HPA + - ConfigMaps/Secrets + - PodDisruptionBudget + - Ingress with TLS +- Observability plan: + - metrics in Prometheus + - logs in Loki/Grafana + - alerts for 5xx rate, restarts, and pod availability + +## 6) Challenges & Solutions + +### No local cluster available initially + +- `kubectl` existed, but no running cluster. +- Fixed by creating a local `kind` cluster (`kind-lab9`). + +### First app rollout failed (CrashLoopBackOff) + +- Cause: old image/tag mismatch. +- Fix: built fresh image `tsixphoenix/devops-info-python:lab9`, loaded it into kind, and used that tag in deployment. + +### NodePort access from host in kind setup + +- Direct node IP access was unreliable in this environment. +- Used `kubectl port-forward` for stable local verification. diff --git a/lab9c/k8s/deployment.yml b/lab9c/k8s/deployment.yml new file mode 100644 index 0000000000..48e23cab7a --- /dev/null +++ b/lab9c/k8s/deployment.yml @@ -0,0 +1,67 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: devops-info-python + labels: + app: devops-info-python + app.kubernetes.io/name: devops-info-python + app.kubernetes.io/component: backend +spec: + replicas: 3 + strategy: + type: RollingUpdate + rollingUpdate: + maxSurge: 1 + maxUnavailable: 0 + selector: + matchLabels: + app: devops-info-python + template: + metadata: + labels: + app: devops-info-python + app.kubernetes.io/name: devops-info-python + app.kubernetes.io/component: backend + spec: + containers: + - name: app + image: tsixphoenix/devops-info-python:lab9 + imagePullPolicy: IfNotPresent + ports: + - name: http + containerPort: 5000 + env: + - name: HOST + value: "0.0.0.0" + - name: PORT + value: "5000" + - name: RELEASE_ID + value: "v2" + resources: + requests: + cpu: "100m" + memory: "128Mi" + limits: + cpu: "300m" + memory: "256Mi" + readinessProbe: + httpGet: + path: /health + port: http + initialDelaySeconds: 5 + periodSeconds: 5 + timeoutSeconds: 2 + failureThreshold: 3 + livenessProbe: + httpGet: + path: /health + port: http + initialDelaySeconds: 15 + periodSeconds: 10 + timeoutSeconds: 2 + failureThreshold: 3 + securityContext: + allowPrivilegeEscalation: false + readOnlyRootFilesystem: false + runAsNonRoot: true + runAsUser: 10001 diff --git a/lab9c/k8s/service.yml b/lab9c/k8s/service.yml new file mode 100644 index 0000000000..9a264cd259 --- /dev/null +++ b/lab9c/k8s/service.yml @@ -0,0 +1,17 @@ +apiVersion: v1 +kind: Service +metadata: + name: devops-info-python-service + labels: + app: devops-info-python + app.kubernetes.io/name: devops-info-python +spec: + type: NodePort + selector: + app: devops-info-python + ports: + - name: http + protocol: TCP + port: 80 + targetPort: 5000 + nodePort: 30080 From b554d2dcd0a430e1e3c4f22d981c1a75ceb84e9c Mon Sep 17 00:00:00 2001 From: Phoenix Date: Mon, 30 Mar 2026 17:49:40 +0300 Subject: [PATCH 17/21] lab 10 submit --- lab10c/k8s/HELM.md | 176 ++++++++++++++++++ lab10c/k8s/devops-info/.helmignore | 23 +++ lab10c/k8s/devops-info/Chart.yaml | 12 ++ lab10c/k8s/devops-info/templates/_helpers.tpl | 62 ++++++ .../k8s/devops-info/templates/deployment.yaml | 56 ++++++ .../templates/hooks-post-install-job.yaml | 26 +++ .../templates/hooks-pre-install-job.yaml | 26 +++ lab10c/k8s/devops-info/templates/service.yaml | 18 ++ lab10c/k8s/devops-info/values-dev.yaml | 26 +++ lab10c/k8s/devops-info/values-prod.yaml | 27 +++ lab10c/k8s/devops-info/values.yaml | 59 ++++++ 11 files changed, 511 insertions(+) create mode 100644 lab10c/k8s/HELM.md create mode 100644 lab10c/k8s/devops-info/.helmignore create mode 100644 lab10c/k8s/devops-info/Chart.yaml create mode 100644 lab10c/k8s/devops-info/templates/_helpers.tpl create mode 100644 lab10c/k8s/devops-info/templates/deployment.yaml create mode 100644 lab10c/k8s/devops-info/templates/hooks-post-install-job.yaml create mode 100644 lab10c/k8s/devops-info/templates/hooks-pre-install-job.yaml create mode 100644 lab10c/k8s/devops-info/templates/service.yaml create mode 100644 lab10c/k8s/devops-info/values-dev.yaml create mode 100644 lab10c/k8s/devops-info/values-prod.yaml create mode 100644 lab10c/k8s/devops-info/values.yaml diff --git a/lab10c/k8s/HELM.md b/lab10c/k8s/HELM.md new file mode 100644 index 0000000000..a0c3a70e2c --- /dev/null +++ b/lab10c/k8s/HELM.md @@ -0,0 +1,176 @@ +# Lab 10 — Helm Package Manager + +All required tasks are completed. Bonus task (library charts) is intentionally not included. + +## 1) Chart Overview + +Chart path: `lab10c/k8s/devops-info` + +Main files: + +- `Chart.yaml` — chart metadata (`apiVersion: v2`, app chart). +- `values.yaml` — default config (replicas, image, service, probes, resources, hook settings). +- `templates/deployment.yaml` — app Deployment template. +- `templates/service.yaml` — Service template. +- `templates/_helpers.tpl` — shared labels/naming helpers. +- `templates/hooks-pre-install-job.yaml` — pre-install hook job. +- `templates/hooks-post-install-job.yaml` — post-install hook job. +- `values-dev.yaml` / `values-prod.yaml` — environment overrides. + +## 2) Configuration Guide + +Important values: + +- `replicaCount` — pod count. +- `image.repository`, `image.tag`, `image.pullPolicy` — container image settings. +- `service.type`, `service.port`, `service.targetPort`, `service.nodePort` — service exposure. +- `resources.requests/limits` — CPU and memory control. +- `livenessProbe.*`, `readinessProbe.*` — health checks (kept enabled). +- `hooks.*` — pre/post install hook behavior. + +Environment files: + +- `values-dev.yaml`: 1 replica, smaller resources, NodePort, `RELEASE_ID=dev`. +- `values-prod.yaml`: 3 replicas, stronger resources, LoadBalancer-ready, `RELEASE_ID=prod`. + +Example commands: + +```bash +helm install devops-dev lab10c/k8s/devops-info -f lab10c/k8s/devops-info/values-dev.yaml +helm upgrade devops-dev lab10c/k8s/devops-info -f lab10c/k8s/devops-info/values-prod.yaml +``` + +## 3) Hook Implementation + +Implemented hooks: + +- **pre-install** job (`weight: -5`) — runs before resource install. +- **post-install** job (`weight: 5`) — runs after install. + +Annotations used: + +- `"helm.sh/hook": pre-install` / `post-install` +- `"helm.sh/hook-weight": ...` +- `"helm.sh/hook-delete-policy": hook-succeeded,before-hook-creation` + +Why: + +- pre-install: quick validation step before main resources. +- post-install: smoke-check style task after release is up. + +Execution order: + +- lower weight runs first (`-5` before `5`). + +Deletion behavior: + +- successful jobs are cleaned automatically (`hook-succeeded`). + +## 4) Installation Evidence + +Helm fundamentals: + +```text +helm version -> v4.0.0 +kubectl cluster-info (kind-lab10) -> control plane reachable +helm show chart prometheus-community/prometheus -> chart metadata displayed +``` + +Release state: + +```text +helm list +NAME NAMESPACE REVISION STATUS CHART APP VERSION +devops-dev default 2 deployed devops-info-0.1.0 1.0.0 +``` + +Kubernetes resources: + +```text +kubectl get deploy,svc,pods -l app.kubernetes.io/instance=devops-dev +deployment/devops-dev-devops-info READY 3/3 +service/devops-dev-devops-info TYPE LoadBalancer +pods 3/3 Running +``` + +Hook execution evidence: + +```text +kubectl get events ... includes: +- SuccessfulCreate job/devops-dev-devops-info-pre-install +- Completed job/devops-dev-devops-info-pre-install +- SuccessfulCreate job/devops-dev-devops-info-post-install +- Completed job/devops-dev-devops-info-post-install +``` + +Hook cleanup evidence: + +```text +kubectl get jobs -l app.kubernetes.io/instance=devops-dev +No resources found +``` + +## 5) Operations + +Install: + +```bash +helm install devops-dev lab10c/k8s/devops-info -f lab10c/k8s/devops-info/values-dev.yaml --wait +``` + +Upgrade: + +```bash +helm upgrade devops-dev lab10c/k8s/devops-info -f lab10c/k8s/devops-info/values-prod.yaml --wait +``` + +Rollback: + +```bash +helm history devops-dev +helm rollback devops-dev 1 --wait +``` + +Uninstall: + +```bash +helm uninstall devops-dev +``` + +## 6) Testing & Validation + +Lint: + +```text +helm lint lab10c/k8s/devops-info -> 0 chart(s) failed +``` + +Template render: + +```text +helm template devops-dev lab10c/k8s/devops-info -f values-dev.yaml +Rendered Deployment, Service, and hook Jobs with expected values. +``` + +Dry run: + +```text +helm install --dry-run --debug devops-dev ... -f values-dev.yaml +Rendered hooks and final manifests correctly. +``` + +App accessibility check: + +```bash +kubectl port-forward service/devops-dev-devops-info 8084:80 +curl http://127.0.0.1:8084/health +``` + +```text +{"status":"healthy", ...} +``` + +## Short value statement + +Helm turns static Kubernetes YAML into reusable packages. +It makes deployments consistent, configurable per environment, and easier to upgrade/rollback. diff --git a/lab10c/k8s/devops-info/.helmignore b/lab10c/k8s/devops-info/.helmignore new file mode 100644 index 0000000000..0e8a0eb36f --- /dev/null +++ b/lab10c/k8s/devops-info/.helmignore @@ -0,0 +1,23 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*.orig +*~ +# Various IDEs +.project +.idea/ +*.tmproj +.vscode/ diff --git a/lab10c/k8s/devops-info/Chart.yaml b/lab10c/k8s/devops-info/Chart.yaml new file mode 100644 index 0000000000..ebdc6bf296 --- /dev/null +++ b/lab10c/k8s/devops-info/Chart.yaml @@ -0,0 +1,12 @@ +apiVersion: v2 +name: devops-info +description: Helm chart for DevOps Info Python service +type: application +version: 0.1.0 +appVersion: "1.0.0" +keywords: + - python + - fastapi + - devops +maintainers: + - name: Phoenix diff --git a/lab10c/k8s/devops-info/templates/_helpers.tpl b/lab10c/k8s/devops-info/templates/_helpers.tpl new file mode 100644 index 0000000000..c4fa59af21 --- /dev/null +++ b/lab10c/k8s/devops-info/templates/_helpers.tpl @@ -0,0 +1,62 @@ +{{/* +Expand the name of the chart. +*/}} +{{- define "devops-info.name" -}} +{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }} +{{- end }} + +{{/* +Create a default fully qualified app name. +We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). +If release name contains chart name it will be used as a full name. +*/}} +{{- define "devops-info.fullname" -}} +{{- if .Values.fullnameOverride }} +{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }} +{{- else }} +{{- $name := default .Chart.Name .Values.nameOverride }} +{{- if contains $name .Release.Name }} +{{- .Release.Name | trunc 63 | trimSuffix "-" }} +{{- else }} +{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }} +{{- end }} +{{- end }} +{{- end }} + +{{/* +Create chart name and version as used by the chart label. +*/}} +{{- define "devops-info.chart" -}} +{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} +{{- end }} + +{{/* +Common labels +*/}} +{{- define "devops-info.labels" -}} +helm.sh/chart: {{ include "devops-info.chart" . }} +{{ include "devops-info.selectorLabels" . }} +{{- if .Chart.AppVersion }} +app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} +{{- end }} +app.kubernetes.io/managed-by: {{ .Release.Service }} +{{- end }} + +{{/* +Selector labels +*/}} +{{- define "devops-info.selectorLabels" -}} +app.kubernetes.io/name: {{ include "devops-info.name" . }} +app.kubernetes.io/instance: {{ .Release.Name }} +{{- end }} + +{{/* +Create the name of the service account to use +*/}} +{{- define "devops-info.serviceAccountName" -}} +{{- if .Values.serviceAccount.create }} +{{- default (include "devops-info.fullname" .) .Values.serviceAccount.name }} +{{- else }} +{{- default "default" .Values.serviceAccount.name }} +{{- end }} +{{- end }} diff --git a/lab10c/k8s/devops-info/templates/deployment.yaml b/lab10c/k8s/devops-info/templates/deployment.yaml new file mode 100644 index 0000000000..0612f29771 --- /dev/null +++ b/lab10c/k8s/devops-info/templates/deployment.yaml @@ -0,0 +1,56 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ include "devops-info.fullname" . }} + labels: + {{- include "devops-info.labels" . | nindent 4 }} +spec: + replicas: {{ .Values.replicaCount }} + strategy: + type: RollingUpdate + rollingUpdate: + maxSurge: 1 + maxUnavailable: 0 + selector: + matchLabels: + {{- include "devops-info.selectorLabels" . | nindent 6 }} + template: + metadata: + labels: + {{- include "devops-info.labels" . | nindent 8 }} + spec: + containers: + - name: app + image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}" + imagePullPolicy: {{ .Values.image.pullPolicy }} + ports: + - name: http + containerPort: {{ .Values.service.targetPort }} + protocol: TCP + env: + - name: HOST + value: {{ .Values.env.HOST | quote }} + - name: PORT + value: {{ .Values.env.PORT | quote }} + - name: RELEASE_ID + value: {{ .Values.env.RELEASE_ID | quote }} + securityContext: + {{- toYaml .Values.securityContext | nindent 12 }} + livenessProbe: + httpGet: + path: {{ .Values.livenessProbe.path }} + port: http + initialDelaySeconds: {{ .Values.livenessProbe.initialDelaySeconds }} + periodSeconds: {{ .Values.livenessProbe.periodSeconds }} + timeoutSeconds: {{ .Values.livenessProbe.timeoutSeconds }} + failureThreshold: {{ .Values.livenessProbe.failureThreshold }} + readinessProbe: + httpGet: + path: {{ .Values.readinessProbe.path }} + port: http + initialDelaySeconds: {{ .Values.readinessProbe.initialDelaySeconds }} + periodSeconds: {{ .Values.readinessProbe.periodSeconds }} + timeoutSeconds: {{ .Values.readinessProbe.timeoutSeconds }} + failureThreshold: {{ .Values.readinessProbe.failureThreshold }} + resources: + {{- toYaml .Values.resources | nindent 12 }} diff --git a/lab10c/k8s/devops-info/templates/hooks-post-install-job.yaml b/lab10c/k8s/devops-info/templates/hooks-post-install-job.yaml new file mode 100644 index 0000000000..223784d7fc --- /dev/null +++ b/lab10c/k8s/devops-info/templates/hooks-post-install-job.yaml @@ -0,0 +1,26 @@ +{{- if .Values.hooks.postInstall.enabled }} +apiVersion: batch/v1 +kind: Job +metadata: + name: "{{ include "devops-info.fullname" . }}-post-install" + labels: + {{- include "devops-info.labels" . | nindent 4 }} + annotations: + "helm.sh/hook": post-install + "helm.sh/hook-weight": "{{ .Values.hooks.postInstall.weight }}" + "helm.sh/hook-delete-policy": hook-succeeded,before-hook-creation +spec: + template: + metadata: + labels: + {{- include "devops-info.selectorLabels" . | nindent 8 }} + spec: + restartPolicy: Never + containers: + - name: post-install-check + image: {{ .Values.hooks.image | quote }} + command: + - sh + - -c + - {{ printf "echo %s" .Values.hooks.postInstall.message | quote }} +{{- end }} diff --git a/lab10c/k8s/devops-info/templates/hooks-pre-install-job.yaml b/lab10c/k8s/devops-info/templates/hooks-pre-install-job.yaml new file mode 100644 index 0000000000..c6544522e9 --- /dev/null +++ b/lab10c/k8s/devops-info/templates/hooks-pre-install-job.yaml @@ -0,0 +1,26 @@ +{{- if .Values.hooks.preInstall.enabled }} +apiVersion: batch/v1 +kind: Job +metadata: + name: "{{ include "devops-info.fullname" . }}-pre-install" + labels: + {{- include "devops-info.labels" . | nindent 4 }} + annotations: + "helm.sh/hook": pre-install + "helm.sh/hook-weight": "{{ .Values.hooks.preInstall.weight }}" + "helm.sh/hook-delete-policy": hook-succeeded,before-hook-creation +spec: + template: + metadata: + labels: + {{- include "devops-info.selectorLabels" . | nindent 8 }} + spec: + restartPolicy: Never + containers: + - name: pre-install-check + image: {{ .Values.hooks.image | quote }} + command: + - sh + - -c + - {{ printf "echo %s" .Values.hooks.preInstall.message | quote }} +{{- end }} diff --git a/lab10c/k8s/devops-info/templates/service.yaml b/lab10c/k8s/devops-info/templates/service.yaml new file mode 100644 index 0000000000..bf4f3f22ad --- /dev/null +++ b/lab10c/k8s/devops-info/templates/service.yaml @@ -0,0 +1,18 @@ +apiVersion: v1 +kind: Service +metadata: + name: {{ include "devops-info.fullname" . }} + labels: + {{- include "devops-info.labels" . | nindent 4 }} +spec: + type: {{ .Values.service.type }} + ports: + - port: {{ .Values.service.port }} + targetPort: {{ .Values.service.targetPort }} + protocol: TCP + name: http + {{- if eq .Values.service.type "NodePort" }} + nodePort: {{ .Values.service.nodePort }} + {{- end }} + selector: + {{- include "devops-info.selectorLabels" . | nindent 4 }} diff --git a/lab10c/k8s/devops-info/values-dev.yaml b/lab10c/k8s/devops-info/values-dev.yaml new file mode 100644 index 0000000000..995e472abd --- /dev/null +++ b/lab10c/k8s/devops-info/values-dev.yaml @@ -0,0 +1,26 @@ +replicaCount: 1 + +image: + tag: "lab9" + +service: + type: NodePort + +env: + RELEASE_ID: "dev" + +resources: + requests: + cpu: "50m" + memory: "64Mi" + limits: + cpu: "150m" + memory: "128Mi" + +livenessProbe: + initialDelaySeconds: 5 + periodSeconds: 10 + +readinessProbe: + initialDelaySeconds: 3 + periodSeconds: 5 diff --git a/lab10c/k8s/devops-info/values-prod.yaml b/lab10c/k8s/devops-info/values-prod.yaml new file mode 100644 index 0000000000..63347ee5b6 --- /dev/null +++ b/lab10c/k8s/devops-info/values-prod.yaml @@ -0,0 +1,27 @@ +replicaCount: 3 + +image: + tag: "lab9" + +service: + type: LoadBalancer + nodePort: null + +env: + RELEASE_ID: "prod" + +resources: + requests: + cpu: "150m" + memory: "192Mi" + limits: + cpu: "500m" + memory: "512Mi" + +livenessProbe: + initialDelaySeconds: 20 + periodSeconds: 10 + +readinessProbe: + initialDelaySeconds: 8 + periodSeconds: 5 diff --git a/lab10c/k8s/devops-info/values.yaml b/lab10c/k8s/devops-info/values.yaml new file mode 100644 index 0000000000..56feece3fb --- /dev/null +++ b/lab10c/k8s/devops-info/values.yaml @@ -0,0 +1,59 @@ +replicaCount: 3 + +nameOverride: "" +fullnameOverride: "" + +image: + repository: tsixphoenix/devops-info-python + tag: "lab9" + pullPolicy: IfNotPresent + +service: + type: NodePort + port: 80 + targetPort: 5000 + nodePort: 30080 + +env: + HOST: "0.0.0.0" + PORT: "5000" + RELEASE_ID: "v2" + +resources: + requests: + cpu: "100m" + memory: "128Mi" + limits: + cpu: "300m" + memory: "256Mi" + +livenessProbe: + path: /health + initialDelaySeconds: 15 + periodSeconds: 10 + timeoutSeconds: 2 + failureThreshold: 3 + +readinessProbe: + path: /health + initialDelaySeconds: 5 + periodSeconds: 5 + timeoutSeconds: 2 + failureThreshold: 3 + +securityContext: + runAsNonRoot: true + runAsUser: 10001 + allowPrivilegeEscalation: false + readOnlyRootFilesystem: false + +hooks: + image: busybox:1.36 + preInstall: + enabled: true + weight: -5 + message: "pre-install check passed" + postInstall: + enabled: true + weight: 5 + message: "post-install smoke test passed" From 9439c780f0daa04d1edeab92528db305b60f494b Mon Sep 17 00:00:00 2001 From: Phoenix Date: Sun, 5 Apr 2026 06:45:21 +0300 Subject: [PATCH 18/21] lab11 complete --- .gitignore | 5 +- lab11c/k8s/SECRETS.md | 137 ++++++++++++++++++ lab11c/k8s/devops-info/.helmignore | 18 +++ lab11c/k8s/devops-info/Chart.yaml | 12 ++ lab11c/k8s/devops-info/templates/_helpers.tpl | 46 ++++++ .../k8s/devops-info/templates/deployment.yaml | 70 +++++++++ lab11c/k8s/devops-info/templates/secrets.yaml | 12 ++ lab11c/k8s/devops-info/templates/service.yaml | 18 +++ .../devops-info/templates/serviceaccount.yaml | 8 + lab11c/k8s/devops-info/values-dev.yaml | 20 +++ lab11c/k8s/devops-info/values-prod.yaml | 20 +++ lab11c/k8s/devops-info/values.yaml | 74 ++++++++++ 12 files changed, 439 insertions(+), 1 deletion(-) create mode 100644 lab11c/k8s/SECRETS.md create mode 100644 lab11c/k8s/devops-info/.helmignore create mode 100644 lab11c/k8s/devops-info/Chart.yaml create mode 100644 lab11c/k8s/devops-info/templates/_helpers.tpl create mode 100644 lab11c/k8s/devops-info/templates/deployment.yaml create mode 100644 lab11c/k8s/devops-info/templates/secrets.yaml create mode 100644 lab11c/k8s/devops-info/templates/service.yaml create mode 100644 lab11c/k8s/devops-info/templates/serviceaccount.yaml create mode 100644 lab11c/k8s/devops-info/values-dev.yaml create mode 100644 lab11c/k8s/devops-info/values-prod.yaml create mode 100644 lab11c/k8s/devops-info/values.yaml diff --git a/.gitignore b/.gitignore index 11a8dd47f9..28b6e58771 100644 --- a/.gitignore +++ b/.gitignore @@ -8,4 +8,7 @@ __pycache__/ # Local lab 5 runtime artifacts lab5c/ansible/.vault_pass -lab5c/ansible/*.retry \ No newline at end of file +lab5c/ansible/*.retry + +# Lab 11 — local CLI binaries and cloned charts (not part of submission) +lab11c/tools/ \ No newline at end of file diff --git a/lab11c/k8s/SECRETS.md b/lab11c/k8s/SECRETS.md new file mode 100644 index 0000000000..77955d921a --- /dev/null +++ b/lab11c/k8s/SECRETS.md @@ -0,0 +1,137 @@ +# Lab 11 — Secrets and Vault + +Required tasks only; bonus not done. + +Chart: `lab11c/k8s/devops-info` (v0.2.0). Hooks from Lab 10 stay off in default `values.yaml` so this lab stays about secrets. + +--- + +## 1) Kubernetes Secrets + +**Create (imperative):** + +```bash +kubectl create secret generic app-credentials \ + --from-literal=username=demo-user \ + --from-literal=password=demo-pass +``` + +**Inspect:** + +```bash +kubectl get secret app-credentials -o yaml +``` + +You get `data.username` and `data.password` as base64 blobs. That is encoding for transport/storage in the API object, not encryption. + +**Decode (PowerShell):** + +```powershell +[Text.Encoding]::UTF8.GetString([Convert]::FromBase64String("")) +``` + +**Security:** Secrets are not encrypted at rest in etcd unless you configure [encryption at rest](https://kubernetes.io/docs/tasks/administer-cluster/encrypt-data/) (EncryptionConfiguration + KMS). RBAC still matters: anyone who can read the Secret object gets the values. + +--- + +## 2) Helm-managed Secret + +**Layout:** + +- `templates/secrets.yaml` — Secret when `helmSecret.enabled`; name via helper `devops-info.helmSecretName`; `stringData` for `username` / `password` from values. +- `values.yaml` — `helmSecret.enabled` and placeholders `REPLACE_ME` (never commit real credentials). +- `templates/deployment.yaml` — `envFrom` + `secretRef` pointing at that Secret so all keys become env vars. + +Install/upgrade with overrides (example): + +```bash +helm upgrade --install app11 lab11c/k8s/devops-info \ + -f lab11c/k8s/devops-info/values-prod.yaml \ + --set helmSecret.username=helmuser \ + --set helmSecret.password='your-temp-password' +``` + +**Verification:** + +- `kubectl describe pod ` lists **only the Secret name** under “Environment Variables from”, not the cleartext values. +- `kubectl exec deploy/app11-devops-info -c app -- printenv` shows `username` and `password` in the container — fine for a lab; don’t paste that output into git or tickets. + +**Note:** `helm get values` can show what you passed with `--set`; treat that as sensitive too. + +--- + +## 3) Resource management + +CPU/memory come from `values.yaml` and are overridden per env in `values-dev.yaml` / `values-prod.yaml`. + +- **Requests** — what the scheduler uses for placement; kubelet guarantees at least this much. +- **Limits** — hard cap; container throttled (CPU) or OOM-killed (memory) if it goes over. + +Pick requests from steady usage (metrics), limits a bit above peak. Dev: smaller; prod: higher replicas + larger limits (see prod values file). + +--- + +## 4) Vault integration + +**Install:** Official Helm repo was unreachable from this network (403), so Vault was installed from a local checkout of HashiCorp’s `vault-helm` chart (tag v0.29.1), namespace `vault`, dev server + injector: + +```bash +helm install vault ./path-to-vault-helm-chart -n vault --create-namespace \ + --set server.dev.enabled=true \ + --set injector.enabled=true +``` + +**Cluster check:** + +```text +kubectl get pods -n vault +# vault-0 and vault-agent-injector should be Running +``` + +**Inside Vault (dev pod, example flow):** + +- KV v2 at path `secret/` (default mount name `secret`). +- Example secret: `secret/devops-info/config` with at least two keys (e.g. `username`, `password`, plus `api_key` for demo). +- `vault auth enable kubernetes` +- `vault write auth/kubernetes/config ...` (kubernetes host, CA, token reviewer — per tutorial). +- Policy `devops-info-read`: + +```hcl +path "secret/data/devops-info/*" { + capabilities = ["read"] +} +``` + +- Role `devops-info` bound to service account `app11-devops-info` in namespace `default`, policy `devops-info-read`. + +**Injection:** With `vault.injector.enabled: true` (see `values-dev.yaml` / `values-prod.yaml`), the pod template gets annotations such as: + +- `vault.hashicorp.com/agent-inject: "true"` +- `vault.hashicorp.com/role: "devops-info"` +- `vault.hashicorp.com/agent-inject-secret-vaultconfig: "secret/data/devops-info/config"` +- `vault.hashicorp.com/service: "http://vault.vault.svc:8200"` + +Pod goes to **2/2** (app + `vault-agent`). Injected file path: + +```text +/vault/secrets/vaultconfig +``` + +Content is KV data in a small text blob — don’t commit real contents; confirm with `ls` / `head` in the lab only. + +**Pattern:** Mutating webhook adds the agent; agent authenticates to Vault using Kubernetes auth; it writes secrets into a shared volume the app reads as files. + +--- + +## 5) Security analysis + +| Topic | Native Secret | Vault | +|--------|----------------|--------| +| Storage | etcd (encode + optional encryption at rest) | Dedicated store, policies, audit | +| Rotation | Manual / external tooling | Built for rotation, dynamic secrets | +| Access | RBAC on Secret objects | Policies, namespaces, roles | +| Footprint | None extra | Agent sidecar or CSI / API | + +**When to use what:** In-cluster Secret is fine for small teams and non-critical data if etcd encryption and RBAC are in good shape. Vault (or another external manager) pays off for many apps, strict audit, rotation, and when several clusters need the same source of truth. + +**Production:** encrypt etcd; narrow RBAC; avoid `stringData` defaults with real passwords in git; prefer external secret sync or Vault Agent/CSI; dev mode Vault is **not** for production. diff --git a/lab11c/k8s/devops-info/.helmignore b/lab11c/k8s/devops-info/.helmignore new file mode 100644 index 0000000000..414bb6e8a6 --- /dev/null +++ b/lab11c/k8s/devops-info/.helmignore @@ -0,0 +1,18 @@ +# Patterns to ignore when building packages. +.DS_Store +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +*.swp +*.bak +*.tmp +*.orig +*~ +.project +.idea/ +*.tmproj +.vscode/ diff --git a/lab11c/k8s/devops-info/Chart.yaml b/lab11c/k8s/devops-info/Chart.yaml new file mode 100644 index 0000000000..881f6c1942 --- /dev/null +++ b/lab11c/k8s/devops-info/Chart.yaml @@ -0,0 +1,12 @@ +apiVersion: v2 +name: devops-info +description: Helm chart for DevOps Info Python service (Lab 11 secrets) +type: application +version: 0.2.0 +appVersion: "1.0.0" +keywords: + - python + - fastapi + - devops +maintainers: + - name: Phoenix diff --git a/lab11c/k8s/devops-info/templates/_helpers.tpl b/lab11c/k8s/devops-info/templates/_helpers.tpl new file mode 100644 index 0000000000..c8fb478ff4 --- /dev/null +++ b/lab11c/k8s/devops-info/templates/_helpers.tpl @@ -0,0 +1,46 @@ +{{- define "devops-info.name" -}} +{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }} +{{- end }} + +{{- define "devops-info.fullname" -}} +{{- if .Values.fullnameOverride }} +{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }} +{{- else }} +{{- $name := default .Chart.Name .Values.nameOverride }} +{{- if contains $name .Release.Name }} +{{- .Release.Name | trunc 63 | trimSuffix "-" }} +{{- else }} +{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }} +{{- end }} +{{- end }} +{{- end }} + +{{- define "devops-info.chart" -}} +{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} +{{- end }} + +{{- define "devops-info.labels" -}} +helm.sh/chart: {{ include "devops-info.chart" . }} +{{ include "devops-info.selectorLabels" . }} +{{- if .Chart.AppVersion }} +app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} +{{- end }} +app.kubernetes.io/managed-by: {{ .Release.Service }} +{{- end }} + +{{- define "devops-info.selectorLabels" -}} +app.kubernetes.io/name: {{ include "devops-info.name" . }} +app.kubernetes.io/instance: {{ .Release.Name }} +{{- end }} + +{{- define "devops-info.serviceAccountName" -}} +{{- if .Values.serviceAccount.create }} +{{- default (include "devops-info.fullname" .) .Values.serviceAccount.name }} +{{- else }} +{{- default "default" .Values.serviceAccount.name }} +{{- end }} +{{- end }} + +{{- define "devops-info.helmSecretName" -}} +{{ include "devops-info.fullname" . }}-secret +{{- end }} diff --git a/lab11c/k8s/devops-info/templates/deployment.yaml b/lab11c/k8s/devops-info/templates/deployment.yaml new file mode 100644 index 0000000000..51b43b3d7e --- /dev/null +++ b/lab11c/k8s/devops-info/templates/deployment.yaml @@ -0,0 +1,70 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ include "devops-info.fullname" . }} + labels: + {{- include "devops-info.labels" . | nindent 4 }} +spec: + replicas: {{ .Values.replicaCount }} + strategy: + type: RollingUpdate + rollingUpdate: + maxSurge: 1 + maxUnavailable: 0 + selector: + matchLabels: + {{- include "devops-info.selectorLabels" . | nindent 6 }} + template: + metadata: + labels: + {{- include "devops-info.labels" . | nindent 8 }} + {{- if .Values.vault.injector.enabled }} + annotations: + vault.hashicorp.com/agent-inject: "true" + vault.hashicorp.com/role: {{ .Values.vault.role | quote }} + vault.hashicorp.com/agent-inject-secret-vaultconfig: {{ .Values.vault.secretPath | quote }} + vault.hashicorp.com/service: {{ .Values.vault.serviceAddr | quote }} + vault.hashicorp.com/tls-skip-verify: "true" + {{- end }} + spec: + serviceAccountName: {{ include "devops-info.serviceAccountName" . }} + containers: + - name: app + image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}" + imagePullPolicy: {{ .Values.image.pullPolicy }} + ports: + - name: http + containerPort: {{ .Values.service.targetPort }} + protocol: TCP + env: + - name: HOST + value: {{ .Values.env.HOST | quote }} + - name: PORT + value: {{ .Values.env.PORT | quote }} + - name: RELEASE_ID + value: {{ .Values.env.RELEASE_ID | quote }} + {{- if .Values.helmSecret.enabled }} + envFrom: + - secretRef: + name: {{ include "devops-info.helmSecretName" . }} + {{- end }} + securityContext: + {{- toYaml .Values.securityContext | nindent 12 }} + livenessProbe: + httpGet: + path: {{ .Values.livenessProbe.path }} + port: http + initialDelaySeconds: {{ .Values.livenessProbe.initialDelaySeconds }} + periodSeconds: {{ .Values.livenessProbe.periodSeconds }} + timeoutSeconds: {{ .Values.livenessProbe.timeoutSeconds }} + failureThreshold: {{ .Values.livenessProbe.failureThreshold }} + readinessProbe: + httpGet: + path: {{ .Values.readinessProbe.path }} + port: http + initialDelaySeconds: {{ .Values.readinessProbe.initialDelaySeconds }} + periodSeconds: {{ .Values.readinessProbe.periodSeconds }} + timeoutSeconds: {{ .Values.readinessProbe.timeoutSeconds }} + failureThreshold: {{ .Values.readinessProbe.failureThreshold }} + resources: + {{- toYaml .Values.resources | nindent 12 }} diff --git a/lab11c/k8s/devops-info/templates/secrets.yaml b/lab11c/k8s/devops-info/templates/secrets.yaml new file mode 100644 index 0000000000..86ff891444 --- /dev/null +++ b/lab11c/k8s/devops-info/templates/secrets.yaml @@ -0,0 +1,12 @@ +{{- if .Values.helmSecret.enabled }} +apiVersion: v1 +kind: Secret +metadata: + name: {{ include "devops-info.helmSecretName" . }} + labels: + {{- include "devops-info.labels" . | nindent 4 }} +type: Opaque +stringData: + username: {{ .Values.helmSecret.username | quote }} + password: {{ .Values.helmSecret.password | quote }} +{{- end }} diff --git a/lab11c/k8s/devops-info/templates/service.yaml b/lab11c/k8s/devops-info/templates/service.yaml new file mode 100644 index 0000000000..40097f15b3 --- /dev/null +++ b/lab11c/k8s/devops-info/templates/service.yaml @@ -0,0 +1,18 @@ +apiVersion: v1 +kind: Service +metadata: + name: {{ include "devops-info.fullname" . }} + labels: + {{- include "devops-info.labels" . | nindent 4 }} +spec: + type: {{ .Values.service.type }} + ports: + - port: {{ .Values.service.port }} + targetPort: {{ .Values.service.targetPort }} + protocol: TCP + name: http + {{- if and (eq .Values.service.type "NodePort") .Values.service.nodePort }} + nodePort: {{ .Values.service.nodePort }} + {{- end }} + selector: + {{- include "devops-info.selectorLabels" . | nindent 4 }} diff --git a/lab11c/k8s/devops-info/templates/serviceaccount.yaml b/lab11c/k8s/devops-info/templates/serviceaccount.yaml new file mode 100644 index 0000000000..9e91578eba --- /dev/null +++ b/lab11c/k8s/devops-info/templates/serviceaccount.yaml @@ -0,0 +1,8 @@ +{{- if .Values.serviceAccount.create }} +apiVersion: v1 +kind: ServiceAccount +metadata: + name: {{ include "devops-info.serviceAccountName" . }} + labels: + {{- include "devops-info.labels" . | nindent 4 }} +{{- end }} diff --git a/lab11c/k8s/devops-info/values-dev.yaml b/lab11c/k8s/devops-info/values-dev.yaml new file mode 100644 index 0000000000..edc230037b --- /dev/null +++ b/lab11c/k8s/devops-info/values-dev.yaml @@ -0,0 +1,20 @@ +replicaCount: 1 + +service: + type: NodePort + nodePort: 30080 + +env: + RELEASE_ID: "dev" + +resources: + requests: + cpu: "50m" + memory: "64Mi" + limits: + cpu: "200m" + memory: "128Mi" + +vault: + injector: + enabled: true diff --git a/lab11c/k8s/devops-info/values-prod.yaml b/lab11c/k8s/devops-info/values-prod.yaml new file mode 100644 index 0000000000..38348ad27e --- /dev/null +++ b/lab11c/k8s/devops-info/values-prod.yaml @@ -0,0 +1,20 @@ +replicaCount: 3 + +service: + type: LoadBalancer + nodePort: null + +env: + RELEASE_ID: "prod" + +resources: + requests: + cpu: "150m" + memory: "192Mi" + limits: + cpu: "500m" + memory: "512Mi" + +vault: + injector: + enabled: true diff --git a/lab11c/k8s/devops-info/values.yaml b/lab11c/k8s/devops-info/values.yaml new file mode 100644 index 0000000000..1bca8b8d8d --- /dev/null +++ b/lab11c/k8s/devops-info/values.yaml @@ -0,0 +1,74 @@ +replicaCount: 1 + +nameOverride: "" +fullnameOverride: "" + +serviceAccount: + create: true + name: "" + +image: + repository: tsixphoenix/devops-info-python + tag: "lab9" + pullPolicy: IfNotPresent + +service: + type: NodePort + port: 80 + targetPort: 5000 + nodePort: 30080 + +env: + HOST: "0.0.0.0" + PORT: "5000" + RELEASE_ID: "lab11" + +# Helm-managed Secret (placeholders only — override at install time) +helmSecret: + enabled: true + username: "REPLACE_ME" + password: "REPLACE_ME" + +resources: + requests: + cpu: "100m" + memory: "128Mi" + limits: + cpu: "300m" + memory: "256Mi" + +livenessProbe: + path: /health + initialDelaySeconds: 15 + periodSeconds: 10 + timeoutSeconds: 2 + failureThreshold: 3 + +readinessProbe: + path: /health + initialDelaySeconds: 5 + periodSeconds: 5 + timeoutSeconds: 2 + failureThreshold: 3 + +securityContext: + runAsNonRoot: true + runAsUser: 10001 + allowPrivilegeEscalation: false + readOnlyRootFilesystem: false + +# Vault Agent Injector (sidecar) — enable after Vault is configured +vault: + injector: + enabled: false + role: "devops-info" + secretPath: "secret/data/devops-info/config" + secretFileName: "vault-config" + serviceAddr: "http://vault.vault.svc:8200" + +hooks: + image: busybox:1.36 + preInstall: + enabled: false + postInstall: + enabled: false From 074d41660049726b8d3babe67a5fb244474eeb3c Mon Sep 17 00:00:00 2001 From: Phoenix Date: Sat, 11 Apr 2026 17:36:05 +0300 Subject: [PATCH 19/21] lab 12 complete --- .gitignore | 7 +- lab11c/k8s/RUNBOOK.md | 92 +++++ lab11c/k8s/SECRETS.md | 165 +++++---- lab11c/k8s/devops-info/values.yaml | 6 +- lab12c/app_python/.gitignore | 5 + lab12c/app_python/Dockerfile | 23 ++ lab12c/app_python/README.md | 22 ++ lab12c/app_python/app.py | 332 ++++++++++++++++++ lab12c/app_python/docker-compose.yml | 9 + lab12c/app_python/requirements.txt | 3 + lab12c/app_python/tests/__init__.py | 0 lab12c/app_python/tests/test_app.py | 106 ++++++ lab12c/k8s/CONFIGMAPS.md | 138 ++++++++ lab12c/k8s/devops-info/.helmignore | 18 + lab12c/k8s/devops-info/Chart.yaml | 12 + lab12c/k8s/devops-info/files/config.json | 8 + lab12c/k8s/devops-info/templates/_helpers.tpl | 46 +++ .../k8s/devops-info/templates/configmap.yaml | 20 ++ .../k8s/devops-info/templates/deployment.yaml | 95 +++++ lab12c/k8s/devops-info/templates/pvc.yaml | 17 + lab12c/k8s/devops-info/templates/secrets.yaml | 12 + lab12c/k8s/devops-info/templates/service.yaml | 18 + .../devops-info/templates/serviceaccount.yaml | 8 + lab12c/k8s/devops-info/values-dev.yaml | 24 ++ lab12c/k8s/devops-info/values-prod.yaml | 24 ++ lab12c/k8s/devops-info/values.yaml | 86 +++++ 26 files changed, 1219 insertions(+), 77 deletions(-) create mode 100644 lab11c/k8s/RUNBOOK.md create mode 100644 lab12c/app_python/.gitignore create mode 100644 lab12c/app_python/Dockerfile create mode 100644 lab12c/app_python/README.md create mode 100644 lab12c/app_python/app.py create mode 100644 lab12c/app_python/docker-compose.yml create mode 100644 lab12c/app_python/requirements.txt create mode 100644 lab12c/app_python/tests/__init__.py create mode 100644 lab12c/app_python/tests/test_app.py create mode 100644 lab12c/k8s/CONFIGMAPS.md create mode 100644 lab12c/k8s/devops-info/.helmignore create mode 100644 lab12c/k8s/devops-info/Chart.yaml create mode 100644 lab12c/k8s/devops-info/files/config.json create mode 100644 lab12c/k8s/devops-info/templates/_helpers.tpl create mode 100644 lab12c/k8s/devops-info/templates/configmap.yaml create mode 100644 lab12c/k8s/devops-info/templates/deployment.yaml create mode 100644 lab12c/k8s/devops-info/templates/pvc.yaml create mode 100644 lab12c/k8s/devops-info/templates/secrets.yaml create mode 100644 lab12c/k8s/devops-info/templates/service.yaml create mode 100644 lab12c/k8s/devops-info/templates/serviceaccount.yaml create mode 100644 lab12c/k8s/devops-info/values-dev.yaml create mode 100644 lab12c/k8s/devops-info/values-prod.yaml create mode 100644 lab12c/k8s/devops-info/values.yaml diff --git a/.gitignore b/.gitignore index 28b6e58771..bd402531fb 100644 --- a/.gitignore +++ b/.gitignore @@ -10,5 +10,8 @@ __pycache__/ lab5c/ansible/.vault_pass lab5c/ansible/*.retry -# Lab 11 — local CLI binaries and cloned charts (not part of submission) -lab11c/tools/ \ No newline at end of file +lab11c/tools/ + +lab12c/tools/ + +.cache/ \ No newline at end of file diff --git a/lab11c/k8s/RUNBOOK.md b/lab11c/k8s/RUNBOOK.md new file mode 100644 index 0000000000..752902bc3a --- /dev/null +++ b/lab11c/k8s/RUNBOOK.md @@ -0,0 +1,92 @@ +# Local Kubernetes runbook (labs 11 & 12) + +What you need: Docker, `kubectl`, `helm` 3+, `git`, and [kind](https://kind.sigs.k8s.io/docs/user/quick-start/). Paths below assume repo root `DevOps-CC` and PowerShell on Windows (adjust paths for bash). + +## 1. Cluster + +```powershell +kind create cluster --name lab11 --wait 5m +kubectl config use-context kind-lab11 +``` + +## 2. Images + +```powershell +docker pull tsixphoenix/devops-info-python:lab9 +docker build -t tsixphoenix/devops-info-python:lab12 .\lab12c\app_python +kind load docker-image tsixphoenix/devops-info-python:lab9 --name lab11 +kind load docker-image tsixphoenix/devops-info-python:lab12 --name lab11 +``` + +Use `IfNotPresent` / registry pull in real use; for kind-only images add `--set image.pullPolicy=Never` on helm install. + +## 3. Vault (lab 11) — install from Git if Helm repo fails + +```powershell +git clone --depth 1 --branch v0.29.1 https://github.com/hashicorp/vault-helm.git .cache\vault-helm +helm upgrade --install vault .cache\vault-helm -n vault --create-namespace ` + --set server.dev.enabled=true --set injector.enabled=true --wait --timeout 5m +``` + +Configure (run in order; ignore “already enabled” errors where noted): + +```powershell +kubectl exec -n vault vault-0 -- vault secrets enable -path=secret kv-v2 +kubectl exec -n vault vault-0 -- vault kv put secret/devops-info/config username="vault-demo-user" password="vault-demo-password" api_key="vault-demo-api-key" +kubectl exec -n vault vault-0 -- sh -c "vault auth enable kubernetes 2>/dev/null; true" +kubectl exec -n vault vault-0 -- sh -c "vault write auth/kubernetes/config kubernetes_host=https://kubernetes.default.svc:443 kubernetes_ca_cert=@/var/run/secrets/kubernetes.io/serviceaccount/ca.crt token_reviewer_jwt=@/var/run/secrets/kubernetes.io/serviceaccount/token issuer=https://kubernetes.default.svc.cluster.local" +"path `"secret/data/devops-info/*`" { capabilities = [`"read`"] }" | kubectl exec -i -n vault vault-0 -- vault policy write devops-info-read - +kubectl exec -n vault vault-0 -- vault write auth/kubernetes/role/devops-info bound_service_account_names=app11-devops-info bound_service_account_namespaces=default policies=devops-info-read ttl=1h +``` + +## 4. Lab 11 app (Helm) + +```powershell +helm upgrade --install app11 .\lab11c\k8s\devops-info -f .\lab11c\k8s\devops-info\values-dev.yaml --set image.pullPolicy=Never --wait --timeout 5m +``` + +Check: `kubectl get pods` — pod should be `2/2` if Vault injector is enabled in values. + +## 5. Imperative Secret (task 1) + +```powershell +kubectl create secret generic app-credentials --from-literal=username=demo-user --from-literal=password=demo-pass +kubectl get secret app-credentials -o yaml +``` + +## 6. Lab 12 app (Helm) + +`values-dev.yaml` uses NodePort **30081** so it does not collide with lab 11 on **30080**. + +```powershell +helm upgrade --install app12 .\lab12c\k8s\devops-info -f .\lab12c\k8s\devops-info\values-dev.yaml --set image.pullPolicy=Never --wait --timeout 5m +``` + +## 7. Quick checks + +```powershell +kubectl get configmap,pvc +kubectl exec deploy/app12-devops-info -c app -- cat /config/config.json +kubectl exec deploy/app12-devops-info -c app -- printenv | findstr APP_ +kubectl exec deploy/app11-devops-info -c app -- ls /vault/secrets +``` + +**Persistence:** bump counter with HTTP calls to `/`, read `/data/visits`, delete the app12 pod, wait for reschedule, read `/data/visits` again — value should match. + +## 8. Tests (no cluster) + +```powershell +cd lab12c\app_python +pip install -r requirements.txt pytest httpx +pytest -q +``` + +## 9. Cleanup + +```powershell +helm uninstall app12 app11 -n default +helm uninstall vault -n vault +kind delete cluster --name lab11 +``` + +The `.cache/` folder with `vault-helm` is gitignored; delete it if you want a clean tree. diff --git a/lab11c/k8s/SECRETS.md b/lab11c/k8s/SECRETS.md index 77955d921a..e6e266a35b 100644 --- a/lab11c/k8s/SECRETS.md +++ b/lab11c/k8s/SECRETS.md @@ -1,14 +1,10 @@ -# Lab 11 — Secrets and Vault +# Lab 11 — secrets & Vault -Required tasks only; bonus not done. +Chart is under `lab11c/k8s/devops-info` (v0.2.0). Lab 10 hooks stay off in the default `values.yaml` so they don’t get in the way. -Chart: `lab11c/k8s/devops-info` (v0.2.0). Hooks from Lab 10 stay off in default `values.yaml` so this lab stays about secrets. +## kubectl secret ---- - -## 1) Kubernetes Secrets - -**Create (imperative):** +Create: ```bash kubectl create secret generic app-credentials \ @@ -16,122 +12,147 @@ kubectl create secret generic app-credentials \ --from-literal=password=demo-pass ``` -**Inspect:** +Inspect: ```bash kubectl get secret app-credentials -o yaml ``` -You get `data.username` and `data.password` as base64 blobs. That is encoding for transport/storage in the API object, not encryption. - -**Decode (PowerShell):** +The `data.*` fields are base64 — that’s encoding for the API, not encryption. Decode in PowerShell (username `demo-user` → `ZGVtby11c2Vy`): ```powershell -[Text.Encoding]::UTF8.GetString([Convert]::FromBase64String("")) +[Text.Encoding]::UTF8.GetString([Convert]::FromBase64String("ZGVtby11c2Vy")) ``` -**Security:** Secrets are not encrypted at rest in etcd unless you configure [encryption at rest](https://kubernetes.io/docs/tasks/administer-cluster/encrypt-data/) (EncryptionConfiguration + KMS). RBAC still matters: anyone who can read the Secret object gets the values. +Without [etcd encryption at rest](https://kubernetes.io/docs/tasks/administer-cluster/encrypt-data/), secrets in etcd are only as safe as the cluster + RBAC. Anyone who can read the Secret object sees the values. ---- +## Helm secret -## 2) Helm-managed Secret +The chart has `templates/secrets.yaml` (when `helmSecret.enabled` is true), values in `values.yaml`, and the deployment uses `envFrom` + `secretRef`. The defaults in the repo are dummy creds (`lab11-helm-demo-user` / `lab11-helm-demo-password`) — fine for classwork; use `--set` or something proper in real use. -**Layout:** +Install: -- `templates/secrets.yaml` — Secret when `helmSecret.enabled`; name via helper `devops-info.helmSecretName`; `stringData` for `username` / `password` from values. -- `values.yaml` — `helmSecret.enabled` and placeholders `REPLACE_ME` (never commit real credentials). -- `templates/deployment.yaml` — `envFrom` + `secretRef` pointing at that Secret so all keys become env vars. +```bash +helm upgrade --install app11 lab11c/k8s/devops-info \ + -f lab11c/k8s/devops-info/values-prod.yaml +``` -Install/upgrade with overrides (example): +Override without editing files: ```bash helm upgrade --install app11 lab11c/k8s/devops-info \ -f lab11c/k8s/devops-info/values-prod.yaml \ - --set helmSecret.username=helmuser \ - --set helmSecret.password='your-temp-password' + --set helmSecret.username=myuser \ + --set helmSecret.password=mypass ``` -**Verification:** +`kubectl describe pod` only shows the Secret name under env-from, not the cleartext. Inside the container you’ll see them in `printenv` — ok for debugging, just don’t paste real passwords into the repo or chat. Same story if `helm get values` picked up `--set` args. -- `kubectl describe pod ` lists **only the Secret name** under “Environment Variables from”, not the cleartext values. -- `kubectl exec deploy/app11-devops-info -c app -- printenv` shows `username` and `password` in the container — fine for a lab; don’t paste that output into git or tickets. +## Resources -**Note:** `helm get values` can show what you passed with `--set`; treat that as sensitive too. +CPU/memory live in `values.yaml`, with overrides in `values-dev.yaml` / `values-prod.yaml`. Requests = what scheduling assumes; limits = hard cap (CPU gets throttled, memory can OOM). ---- +## Vault -## 3) Resource management +The HashiCorp Helm repo returned 403 from my network, so I installed from source: -CPU/memory come from `values.yaml` and are overridden per env in `values-dev.yaml` / `values-prod.yaml`. +```bash +git clone --depth 1 --branch v0.29.1 https://github.com/hashicorp/vault-helm.git vault-helm +helm install vault ./vault-helm -n vault --create-namespace \ + --set server.dev.enabled=true \ + --set injector.enabled=true +``` -- **Requests** — what the scheduler uses for placement; kubelet guarantees at least this much. -- **Limits** — hard cap; container throttled (CPU) or OOM-killed (memory) if it goes over. +Check: -Pick requests from steady usage (metrics), limits a bit above peak. Dev: smaller; prod: higher replicas + larger limits (see prod values file). +```bash +kubectl get pods -n vault +``` ---- +Rest is inside `vault-0`. Enable KV v2 on `secret` if it isn’t there yet: + +```bash +kubectl exec -n vault vault-0 -- vault secrets enable -path=secret kv-v2 +``` -## 4) Vault integration +(If it already exists you’ll get an error — ignore.) -**Install:** Official Helm repo was unreachable from this network (403), so Vault was installed from a local checkout of HashiCorp’s `vault-helm` chart (tag v0.29.1), namespace `vault`, dev server + injector: +Stuff I used for the app path: ```bash -helm install vault ./path-to-vault-helm-chart -n vault --create-namespace \ - --set server.dev.enabled=true \ - --set injector.enabled=true +kubectl exec -n vault vault-0 -- vault kv put secret/devops-info/config \ + username="vault-demo-user" \ + password="vault-demo-password" \ + api_key="vault-demo-api-key" ``` -**Cluster check:** +Wire up Kubernetes auth: -```text -kubectl get pods -n vault -# vault-0 and vault-agent-injector should be Running +```bash +kubectl exec -n vault vault-0 -- sh -c 'vault auth enable kubernetes 2>/dev/null || true; vault write auth/kubernetes/config \ + kubernetes_host="https://kubernetes.default.svc:443" \ + kubernetes_ca_cert=@/var/run/secrets/kubernetes.io/serviceaccount/ca.crt \ + token_reviewer_jwt=@/var/run/secrets/kubernetes.io/serviceaccount/token \ + issuer="https://kubernetes.default.svc.cluster.local"' ``` -**Inside Vault (dev pod, example flow):** - -- KV v2 at path `secret/` (default mount name `secret`). -- Example secret: `secret/devops-info/config` with at least two keys (e.g. `username`, `password`, plus `api_key` for demo). -- `vault auth enable kubernetes` -- `vault write auth/kubernetes/config ...` (kubernetes host, CA, token reviewer — per tutorial). -- Policy `devops-info-read`: +Policy + role for release `app11` (ServiceAccount `app11-devops-info`): -```hcl +```bash +kubectl exec -i -n vault vault-0 -- vault policy write devops-info-read - <<'EOF' path "secret/data/devops-info/*" { capabilities = ["read"] } +EOF + +kubectl exec -n vault vault-0 -- vault write auth/kubernetes/role/devops-info \ + bound_service_account_names=app11-devops-info \ + bound_service_account_namespaces=default \ + policies=devops-info-read \ + ttl=1h ``` -- Role `devops-info` bound to service account `app11-devops-info` in namespace `default`, policy `devops-info-read`. +Turn on the injector in `values-dev.yaml` / `values-prod.yaml` and you get the usual annotations (`vault.hashicorp.com/agent-inject`, `role`, `agent-inject-secret-vaultconfig`, service URL). Pod goes to 2/2 with the agent sidecar. Injected file landed at `/vault/secrets/vaultconfig` for me — I only checked with `ls`/`cat`, didn’t commit contents. -**Injection:** With `vault.injector.enabled: true` (see `values-dev.yaml` / `values-prod.yaml`), the pod template gets annotations such as: +Rough idea: mutating webhook adds the agent, it logs into Vault with Kubernetes auth, writes files into the volume. -- `vault.hashicorp.com/agent-inject: "true"` -- `vault.hashicorp.com/role: "devops-info"` -- `vault.hashicorp.com/agent-inject-secret-vaultconfig: "secret/data/devops-info/config"` -- `vault.hashicorp.com/service: "http://vault.vault.svc:8200"` +## Takeaway -Pod goes to **2/2** (app + `vault-agent`). Injected file path: +Built-in Secrets are the easy path; etcd encryption + RBAC still matter, rotation is on you. Vault adds policy/audit/rotation story but it’s another moving part. Dev-mode Vault from the lab is not production material. -```text -/vault/secrets/vaultconfig +--- + +## Evidence (captured on kind v1.31, 2026-04-11) + +**Imperative Secret (YAML fragment):** + +```yaml +data: + password: ZGVtby1wYXNz + username: ZGVtby11c2Vy +kind: Secret +metadata: + name: app-credentials + namespace: default +type: Opaque ``` -Content is KV data in a small text blob — don’t commit real contents; confirm with `ls` / `head` in the lab only. +**Vault pods:** -**Pattern:** Mutating webhook adds the agent; agent authenticates to Vault using Kubernetes auth; it writes secrets into a shared volume the app reads as files. +```text +NAME READY STATUS RESTARTS AGE +vault-0 1/1 Running 0 ... +vault-agent-injector-75f9d67594-xxxxx 1/1 Running 0 ... +``` ---- +**Helm release pod (injector on):** `app11-devops-info-...` shows `2/2` — app container + `vault-agent`. `kubectl describe pod` lists `Environment Variables from: app11-devops-info-secret` (values only in the container env, not in describe). -## 5) Security analysis +**Env check (demo strings from chart values + Vault file):** variables `username` and `password` present; injected file at `/vault/secrets/vaultconfig` starts with KV-style text (contains `username`, `password`, `api_key` from Vault path `secret/data/devops-info/config`). -| Topic | Native Secret | Vault | -|--------|----------------|--------| -| Storage | etcd (encode + optional encryption at rest) | Dedicated store, policies, audit | -| Rotation | Manual / external tooling | Built for rotation, dynamic secrets | -| Access | RBAC on Secret objects | Policies, namespaces, roles | -| Footprint | None extra | Agent sidecar or CSI / API | +**Policy:** -**When to use what:** In-cluster Secret is fine for small teams and non-critical data if etcd encryption and RBAC are in good shape. Vault (or another external manager) pays off for many apps, strict audit, rotation, and when several clusters need the same source of truth. +```text +path "secret/data/devops-info/*" { capabilities = ["read"] } +``` -**Production:** encrypt etcd; narrow RBAC; avoid `stringData` defaults with real passwords in git; prefer external secret sync or Vault Agent/CSI; dev mode Vault is **not** for production. +Full local runbook: see `RUNBOOK.md` in this folder. diff --git a/lab11c/k8s/devops-info/values.yaml b/lab11c/k8s/devops-info/values.yaml index 1bca8b8d8d..a2af76779a 100644 --- a/lab11c/k8s/devops-info/values.yaml +++ b/lab11c/k8s/devops-info/values.yaml @@ -23,11 +23,11 @@ env: PORT: "5000" RELEASE_ID: "lab11" -# Helm-managed Secret (placeholders only — override at install time) +# Helm-managed Secret — lab defaults only; use helm --set or a secret manager in production helmSecret: enabled: true - username: "REPLACE_ME" - password: "REPLACE_ME" + username: "lab11-helm-demo-user" + password: "lab11-helm-demo-password" resources: requests: diff --git a/lab12c/app_python/.gitignore b/lab12c/app_python/.gitignore new file mode 100644 index 0000000000..9f5419b034 --- /dev/null +++ b/lab12c/app_python/.gitignore @@ -0,0 +1,5 @@ +data/ +__pycache__/ +.pytest_cache/ +.venv/ +*.pyc diff --git a/lab12c/app_python/Dockerfile b/lab12c/app_python/Dockerfile new file mode 100644 index 0000000000..50528b8254 --- /dev/null +++ b/lab12c/app_python/Dockerfile @@ -0,0 +1,23 @@ +FROM python:3.13-slim + +ENV PYTHONDONTWRITEBYTECODE=1 \ + PYTHONUNBUFFERED=1 + +WORKDIR /app + +RUN useradd -m -u 10001 appuser \ + && mkdir -p /data \ + && chown appuser:appuser /data + +COPY requirements.txt . +RUN pip install --no-cache-dir -r requirements.txt + +COPY --chown=appuser:appuser app.py . + +USER appuser + +ENV VISITS_FILE=/data/visits + +EXPOSE 5000 + +CMD ["python", "app.py"] diff --git a/lab12c/app_python/README.md b/lab12c/app_python/README.md new file mode 100644 index 0000000000..bcbbe00e2f --- /dev/null +++ b/lab12c/app_python/README.md @@ -0,0 +1,22 @@ +# DevOps Info (lab 12) + +FastAPI app with a visit counter in a file (`VISITS_FILE`, default `/data/visits`). `/` increments, `/visits` just reads. + +## Run with Docker Compose + +```bash +docker compose up --build +``` + +Hit `http://127.0.0.1:5000/` a bunch, then `/visits`. Restart the stack — counter should pick up where it left off (`./data` is mounted to `/data`). + +## Tests + +```bash +pip install -r requirements.txt pytest httpx +pytest -q +``` + +## Kubernetes image + +Build and push something like `tsixphoenix/devops-info-python:lab12` and point `image.repository` / `image.tag` in `lab12c/k8s/devops-info/values.yaml` at the same thing. diff --git a/lab12c/app_python/app.py b/lab12c/app_python/app.py new file mode 100644 index 0000000000..c3f9c442b7 --- /dev/null +++ b/lab12c/app_python/app.py @@ -0,0 +1,332 @@ +""" +DevOps Info Service +FastAPI application module. +""" + +from __future__ import annotations + +import json +import logging +import os +import platform +import socket +import tempfile +import threading +import time +from datetime import datetime, timezone +from pathlib import Path + +import uvicorn +from fastapi import FastAPI, Request +from fastapi.responses import JSONResponse, Response +from prometheus_client import ( + CONTENT_TYPE_LATEST, + CollectorRegistry, + Counter, + Gauge, + Histogram, + generate_latest, +) +from starlette.exceptions import HTTPException as StarletteHTTPException + +_prometheus_registry = CollectorRegistry() + +http_requests_total = Counter( + "http_requests_total", + "Total HTTP requests", + ["method", "endpoint", "status"], + registry=_prometheus_registry, +) +http_request_duration_seconds = Histogram( + "http_request_duration_seconds", + "HTTP request duration in seconds", + ["method", "endpoint"], + buckets=(0.005, 0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1.0, 2.5, 5.0), + registry=_prometheus_registry, +) +http_requests_in_progress = Gauge( + "http_requests_in_progress", + "HTTP requests currently being processed", + registry=_prometheus_registry, +) +devops_info_endpoint_calls = Counter( + "devops_info_endpoint_calls", + "Endpoint calls for DevOps info service", + ["endpoint"], + registry=_prometheus_registry, +) +devops_info_system_collection_seconds = Histogram( + "devops_info_system_collection_seconds", + "System info collection time in seconds", + buckets=(0.001, 0.005, 0.01, 0.025, 0.05, 0.1), + registry=_prometheus_registry, +) + +HOST = os.getenv("HOST", "0.0.0.0") +PORT = int(os.getenv("PORT", "5000")) +DEBUG = os.getenv("DEBUG", "False").lower() == "true" +VISITS_FILE = os.getenv("VISITS_FILE", "/data/visits") + +SERVICE_NAME = "devops-info-service" +SERVICE_VERSION = "1.0.0" +SERVICE_DESCRIPTION = "DevOps course info service" +SERVICE_FRAMEWORK = "FastAPI" + +START_TIME = datetime.now(timezone.utc) + +logger = logging.getLogger("devops-info-service") +logger.setLevel(logging.INFO) + +handler = logging.StreamHandler() +handler.setLevel(logging.INFO) +logger.handlers = [handler] + +app = FastAPI( + title="DevOps Info Service", + version=SERVICE_VERSION, + description=SERVICE_DESCRIPTION, +) + +_visits_lock = threading.Lock() + + +def _read_count_unlocked() -> int: + path = Path(VISITS_FILE) + if not path.is_file(): + return 0 + try: + raw = path.read_text(encoding="utf-8").strip() + return max(0, int(raw)) + except (ValueError, OSError): + return 0 + + +def _write_count_atomic(n: int) -> None: + path = Path(VISITS_FILE) + path.parent.mkdir(parents=True, exist_ok=True) + fd, tmp_path = tempfile.mkstemp(dir=str(path.parent), text=True) + try: + with os.fdopen(fd, "w", encoding="utf-8") as f: + f.write(str(n)) + os.replace(tmp_path, path) + except Exception: + try: + os.unlink(tmp_path) + except OSError: + pass + raise + + +def increment_visits() -> int: + with _visits_lock: + n = _read_count_unlocked() + 1 + _write_count_atomic(n) + return n + + +def get_visits() -> int: + with _visits_lock: + return _read_count_unlocked() + + +def _format_uptime(seconds: int) -> str: + hours = seconds // 3600 + minutes = (seconds % 3600) // 60 + hour_label = "hour" if hours == 1 else "hours" + minute_label = "minute" if minutes == 1 else "minutes" + return f"{hours} {hour_label}, {minutes} {minute_label}" + + +def get_uptime() -> dict[str, int | str]: + delta = datetime.now(timezone.utc) - START_TIME + seconds = int(delta.total_seconds()) + return { + "seconds": seconds, + "human": _format_uptime(seconds), + } + + +def get_system_info() -> dict[str, str | int]: + return { + "hostname": socket.gethostname(), + "platform": platform.system(), + "platform_version": platform.release(), + "architecture": platform.machine(), + "cpu_count": os.cpu_count() or 0, + "python_version": platform.python_version(), + } + + +def isoformat_utc(dt: datetime) -> str: + return dt.astimezone(timezone.utc).isoformat().replace("+00:00", "Z") + + +def _normalize_endpoint(path: str) -> str: + if path in ("/", "/health", "/metrics", "/visits"): + return path + return "other" + + +@app.middleware("http") +async def observability_middleware(request: Request, call_next): + start_perf = time.perf_counter() + endpoint = _normalize_endpoint(request.url.path) + http_requests_in_progress.inc() + req_ts = datetime.now(timezone.utc) + logger.info( + json.dumps( + { + "timestamp": isoformat_utc(req_ts), + "level": "INFO", + "service": SERVICE_NAME, + "event": "request", + "method": request.method, + "path": request.url.path, + "client_ip": request.client.host if request.client else "unknown", + "user_agent": request.headers.get("user-agent", "unknown"), + } + ) + ) + try: + response = await call_next(request) + status = str(response.status_code) + http_requests_total.labels( + method=request.method, endpoint=endpoint, status=status + ).inc() + http_request_duration_seconds.labels( + method=request.method, endpoint=endpoint + ).observe(time.perf_counter() - start_perf) + logger.info( + json.dumps( + { + "timestamp": isoformat_utc(datetime.now(timezone.utc)), + "level": "INFO", + "service": SERVICE_NAME, + "event": "response", + "method": request.method, + "path": request.url.path, + "status": response.status_code, + "client_ip": request.client.host if request.client else "unknown", + "user_agent": request.headers.get("user-agent", "unknown"), + } + ) + ) + return response + finally: + http_requests_in_progress.dec() + + +@app.exception_handler(StarletteHTTPException) +async def http_exception_handler(request: Request, exc: StarletteHTTPException): + if exc.status_code == 404: + return JSONResponse( + status_code=404, + content={ + "error": "Not Found", + "message": "Endpoint does not exist", + }, + ) + return JSONResponse( + status_code=exc.status_code, + content={"error": exc.detail}, + ) + + +@app.exception_handler(Exception) +async def unhandled_exception_handler(request: Request, exc: Exception): + logger.error( + json.dumps( + { + "timestamp": isoformat_utc(datetime.now(timezone.utc)), + "level": "ERROR", + "service": SERVICE_NAME, + "event": "exception", + "method": request.method, + "path": request.url.path, + "error": str(exc), + } + ) + ) + return JSONResponse( + status_code=500, + content={ + "error": "Internal Server Error", + "message": "An unexpected error occurred", + }, + ) + + +@app.get("/metrics") +async def metrics(): + return Response( + content=generate_latest(_prometheus_registry), + media_type=CONTENT_TYPE_LATEST, + ) + + +@app.get("/visits") +async def visits(): + devops_info_endpoint_calls.labels(endpoint="/visits").inc() + total = get_visits() + return {"visits": total, "file": VISITS_FILE} + + +@app.get("/") +async def root(request: Request): + devops_info_endpoint_calls.labels(endpoint="/").inc() + visit_total = increment_visits() + t0 = time.perf_counter() + sys_info = get_system_info() + devops_info_system_collection_seconds.observe(time.perf_counter() - t0) + uptime = get_uptime() + now = datetime.now(timezone.utc) + + response = { + "service": { + "name": SERVICE_NAME, + "version": SERVICE_VERSION, + "description": SERVICE_DESCRIPTION, + "framework": SERVICE_FRAMEWORK, + }, + "system": sys_info, + "runtime": { + "uptime_seconds": uptime["seconds"], + "uptime_human": uptime["human"], + "current_time": isoformat_utc(now), + "timezone": "UTC", + }, + "visits": { + "total": visit_total, + "file": VISITS_FILE, + }, + "request": { + "client_ip": request.client.host if request.client else "unknown", + "user_agent": request.headers.get("user-agent", "unknown"), + "method": request.method, + "path": request.url.path, + }, + "endpoints": [ + {"path": "/", "method": "GET", "description": "Service information"}, + {"path": "/visits", "method": "GET", "description": "Visit counter (read-only)"}, + {"path": "/health", "method": "GET", "description": "Health check"}, + {"path": "/metrics", "method": "GET", "description": "Prometheus metrics"}, + ], + } + + return response + + +@app.get("/health") +async def health(): + devops_info_endpoint_calls.labels(endpoint="/health").inc() + uptime = get_uptime() + return { + "status": "healthy", + "timestamp": isoformat_utc(datetime.now(timezone.utc)), + "uptime_seconds": uptime["seconds"], + } + + +if __name__ == "__main__": + logger.info("Starting DevOps Info Service on %s:%s", HOST, PORT) + uvicorn.run("app:app", host=HOST, port=PORT, reload=DEBUG, log_level="info") diff --git a/lab12c/app_python/docker-compose.yml b/lab12c/app_python/docker-compose.yml new file mode 100644 index 0000000000..9138918fd3 --- /dev/null +++ b/lab12c/app_python/docker-compose.yml @@ -0,0 +1,9 @@ +services: + devops-info: + build: . + ports: + - "5000:5000" + environment: + VISITS_FILE: /data/visits + volumes: + - ./data:/data diff --git a/lab12c/app_python/requirements.txt b/lab12c/app_python/requirements.txt new file mode 100644 index 0000000000..d663691063 --- /dev/null +++ b/lab12c/app_python/requirements.txt @@ -0,0 +1,3 @@ +fastapi==0.128.6 +uvicorn[standard]==0.32.0 +prometheus-client==0.23.1 diff --git a/lab12c/app_python/tests/__init__.py b/lab12c/app_python/tests/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/lab12c/app_python/tests/test_app.py b/lab12c/app_python/tests/test_app.py new file mode 100644 index 0000000000..b6ecc0f9bf --- /dev/null +++ b/lab12c/app_python/tests/test_app.py @@ -0,0 +1,106 @@ +from datetime import datetime, timezone + +import pytest +from fastapi.testclient import TestClient + +from app import _format_uptime, app, get_system_info, get_uptime, isoformat_utc + + +@pytest.fixture +def client(tmp_path, monkeypatch): + vf = tmp_path / "visits" + monkeypatch.setenv("VISITS_FILE", str(vf)) + # Reload app module so VISITS_FILE is picked up + import importlib + + import app as app_module + + importlib.reload(app_module) + from app import app as reloaded + + with TestClient(reloaded) as c: + yield c + + +def test_root_increments_visits(client): + r1 = client.get("/") + assert r1.status_code == 200 + assert r1.json()["visits"]["total"] == 1 + + r2 = client.get("/") + assert r2.json()["visits"]["total"] == 2 + + +def test_visits_read_only(client): + client.get("/") + client.get("/") + r = client.get("/visits") + assert r.status_code == 200 + assert r.json()["visits"] == 2 + + +def test_root_endpoint_structure(client): + response = client.get("/") + assert response.status_code == 200 + + data = response.json() + assert "service" in data + assert "system" in data + assert "runtime" in data + assert "request" in data + assert "endpoints" in data + assert "visits" in data + assert data["visits"]["total"] >= 1 + + service = data["service"] + assert service["name"] == "devops-info-service" + assert service["framework"] == "FastAPI" + + system = data["system"] + for key in [ + "hostname", + "platform", + "platform_version", + "architecture", + "cpu_count", + "python_version", + ]: + assert key in system + + runtime = data["runtime"] + assert isinstance(runtime["uptime_seconds"], int) + assert isinstance(runtime["uptime_human"], str) + assert runtime["timezone"] == "UTC" + + +def test_health_endpoint_structure(client): + response = client.get("/health") + assert response.status_code == 200 + data = response.json() + assert data["status"] == "healthy" + assert isinstance(data["uptime_seconds"], int) + assert "timestamp" in data + + +def test_not_found_returns_json(client): + response = client.get("/does-not-exist") + assert response.status_code == 404 + data = response.json() + assert data["error"] == "Not Found" + + +def test_helpers_are_consistent(): + system = get_system_info() + assert system["hostname"] + assert system["platform"] + assert system["python_version"] + + uptime = get_uptime() + assert uptime["seconds"] >= 0 + assert "hours" in uptime["human"] or "hour" in uptime["human"] + + +def test_format_and_iso_helpers(): + assert _format_uptime(3660) == "1 hour, 1 minute" + test_dt = datetime(2024, 1, 1, tzinfo=timezone.utc) + assert isoformat_utc(test_dt) == "2024-01-01T00:00:00Z" diff --git a/lab12c/k8s/CONFIGMAPS.md b/lab12c/k8s/CONFIGMAPS.md new file mode 100644 index 0000000000..22bca71a50 --- /dev/null +++ b/lab12c/k8s/CONFIGMAPS.md @@ -0,0 +1,138 @@ +# Lab 12 — ConfigMaps & persistence + +App: `lab12c/app_python`. Chart: `lab12c/k8s/devops-info` (v0.3.0). + +## App + +Visit counter lives in a file (`VISITS_FILE`, default `/data/visits`). Each `GET /` bumps it under a lock; writes go through a temp file + `os.replace`. `GET /visits` is read-only. The JSON from `/` includes `visits.total` and the file path. + +Docker Compose maps `./data` to `/data` — bounce the stack a few times and the number should stick. + +Tests: run `pytest` in `lab12c/app_python`; they point `VISITS_FILE` at a temp path. + +## ConfigMaps + +`files/config.json` ships with the chart. `templates/configmap.yaml` builds two objects: one embeds that JSON via `.Files.Get`, the other exposes `APP_NAME`, `APP_ENV`, `LOG_LEVEL` from values. + +Deployment mounts the file ConfigMap at `/config` → `/config/config.json`. The env ConfigMap hooks in with `envFrom` when `config.injectEnv` is true. + +Snippet from `helm template app12 lab12c/k8s/devops-info -f lab12c/k8s/devops-info/values-dev.yaml`: + +```yaml +data: + config.json: |- + { + "appName": "devops-info-service", + "environment": "development", + "features": { + "metricsEnabled": true, + "verboseLogging": false + } + } +data: + APP_NAME: "devops-info-service" + APP_ENV: "development" + LOG_LEVEL: "info" +``` + +Sanity checks (release name `app12`): + +```bash +kubectl get configmap -l app.kubernetes.io/instance=app12 +kubectl exec deploy/app12-devops-info -c app -- cat /config/config.json +kubectl exec deploy/app12-devops-info -c app -- printenv | grep APP_ +``` + +On Windows host use `findstr APP_` instead of `grep` if you run `kubectl exec` from PowerShell and pipe outside the container. + +## PVC + +`templates/pvc.yaml` requests `ReadWriteOnce` storage, size from `persistence.size`. If `persistence.storageClass` is empty, the cluster default StorageClass applies (kind/minikube usually give you one). + +Deployment uses either that PVC or `emptyDir` when persistence is off. Mount is `/data`, app uses `VISITS_FILE=/data/visits`. + +RWO = one pod at a time on that volume the normal way, so `values-prod.yaml` keeps a single replica. Scaling out with a file counter on RWO doesn’t fly without RWX or moving state somewhere else. + +```yaml +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 100Mi +``` + +## Cluster install notes + +Build/push `tsixphoenix/devops-info-python:lab12`, or load into kind: + +```bash +kind load docker-image tsixphoenix/devops-info-python:lab12 --name lab11 +``` + +Then: + +```bash +helm upgrade --install app12 lab12c/k8s/devops-info -f lab12c/k8s/devops-info/values-dev.yaml --set image.pullPolicy=Never +``` + +If **lab 11** is installed on the same cluster, both charts default to NodePort `30080` — Kubernetes will reject the second Service. `values-dev.yaml` for lab 12 sets `nodePort: 30081` so app11 can keep `30080`. + +## ConfigMap vs Secret + +ConfigMap = non-sensitive config (flags, log level, JSON metadata). Secret = passwords, keys, certs. Even Secrets are base64 in the API, not magic crypto — if it’s sensitive, treat it as sensitive. For heavy stuff see lab 11 / Vault. + +--- + +## Evidence (captured on kind v1.31, 2026-04-11) + +**Unit tests:** + +```text +....... [100%] +7 passed in 0.39s +``` + +**Helm lint (chart ok):** + +```text +==> Linting lab12c/k8s/devops-info +[INFO] Chart.yaml: icon is recommended +1 chart(s) linted, 0 chart(s) failed +``` + +**ConfigMaps + PVC:** + +```text +NAME DATA AGE +configmap/app12-devops-info-env 3 ... +configmap/app12-devops-info-file 1 ... + +NAME STATUS CAPACITY ACCESS MODES STORAGECLASS AGE +persistentvolumeclaim/app12-devops-info-data Bound 100Mi RWO standard ... +``` + +**File inside pod (`/config/config.json`):** + +```json +{ + "appName": "devops-info-service", + "environment": "development", + "features": { + "metricsEnabled": true, + "verboseLogging": false + } +} +``` + +**Env from ConfigMap:** + +```text +APP_ENV=development +APP_NAME=devops-info-service +LOG_LEVEL=info +``` + +**Persistence (same PVC after pod delete):** after three hits to `/`, `/data/visits` contained `3`. Deleted the pod; new pod still showed `3` in `/data/visits`. + +Step-by-step for Vault + both charts: `lab11c/k8s/RUNBOOK.md`. diff --git a/lab12c/k8s/devops-info/.helmignore b/lab12c/k8s/devops-info/.helmignore new file mode 100644 index 0000000000..414bb6e8a6 --- /dev/null +++ b/lab12c/k8s/devops-info/.helmignore @@ -0,0 +1,18 @@ +# Patterns to ignore when building packages. +.DS_Store +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +*.swp +*.bak +*.tmp +*.orig +*~ +.project +.idea/ +*.tmproj +.vscode/ diff --git a/lab12c/k8s/devops-info/Chart.yaml b/lab12c/k8s/devops-info/Chart.yaml new file mode 100644 index 0000000000..8d0388757b --- /dev/null +++ b/lab12c/k8s/devops-info/Chart.yaml @@ -0,0 +1,12 @@ +apiVersion: v2 +name: devops-info +description: Helm chart for DevOps Info Python service (Lab 12 ConfigMaps & PVC) +type: application +version: 0.3.0 +appVersion: "1.0.0" +keywords: + - python + - fastapi + - devops +maintainers: + - name: Phoenix diff --git a/lab12c/k8s/devops-info/files/config.json b/lab12c/k8s/devops-info/files/config.json new file mode 100644 index 0000000000..ef5fa6219d --- /dev/null +++ b/lab12c/k8s/devops-info/files/config.json @@ -0,0 +1,8 @@ +{ + "appName": "devops-info-service", + "environment": "development", + "features": { + "metricsEnabled": true, + "verboseLogging": false + } +} diff --git a/lab12c/k8s/devops-info/templates/_helpers.tpl b/lab12c/k8s/devops-info/templates/_helpers.tpl new file mode 100644 index 0000000000..c8fb478ff4 --- /dev/null +++ b/lab12c/k8s/devops-info/templates/_helpers.tpl @@ -0,0 +1,46 @@ +{{- define "devops-info.name" -}} +{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }} +{{- end }} + +{{- define "devops-info.fullname" -}} +{{- if .Values.fullnameOverride }} +{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }} +{{- else }} +{{- $name := default .Chart.Name .Values.nameOverride }} +{{- if contains $name .Release.Name }} +{{- .Release.Name | trunc 63 | trimSuffix "-" }} +{{- else }} +{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }} +{{- end }} +{{- end }} +{{- end }} + +{{- define "devops-info.chart" -}} +{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} +{{- end }} + +{{- define "devops-info.labels" -}} +helm.sh/chart: {{ include "devops-info.chart" . }} +{{ include "devops-info.selectorLabels" . }} +{{- if .Chart.AppVersion }} +app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} +{{- end }} +app.kubernetes.io/managed-by: {{ .Release.Service }} +{{- end }} + +{{- define "devops-info.selectorLabels" -}} +app.kubernetes.io/name: {{ include "devops-info.name" . }} +app.kubernetes.io/instance: {{ .Release.Name }} +{{- end }} + +{{- define "devops-info.serviceAccountName" -}} +{{- if .Values.serviceAccount.create }} +{{- default (include "devops-info.fullname" .) .Values.serviceAccount.name }} +{{- else }} +{{- default "default" .Values.serviceAccount.name }} +{{- end }} +{{- end }} + +{{- define "devops-info.helmSecretName" -}} +{{ include "devops-info.fullname" . }}-secret +{{- end }} diff --git a/lab12c/k8s/devops-info/templates/configmap.yaml b/lab12c/k8s/devops-info/templates/configmap.yaml new file mode 100644 index 0000000000..bf47386382 --- /dev/null +++ b/lab12c/k8s/devops-info/templates/configmap.yaml @@ -0,0 +1,20 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "devops-info.fullname" . }}-file + labels: + {{- include "devops-info.labels" . | nindent 4 }} +data: + config.json: |- +{{ .Files.Get "files/config.json" | indent 4 }} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "devops-info.fullname" . }}-env + labels: + {{- include "devops-info.labels" . | nindent 4 }} +data: + APP_NAME: {{ .Values.config.appName | quote }} + APP_ENV: {{ .Values.config.environment | quote }} + LOG_LEVEL: {{ .Values.config.logLevel | quote }} diff --git a/lab12c/k8s/devops-info/templates/deployment.yaml b/lab12c/k8s/devops-info/templates/deployment.yaml new file mode 100644 index 0000000000..b233eb2b17 --- /dev/null +++ b/lab12c/k8s/devops-info/templates/deployment.yaml @@ -0,0 +1,95 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ include "devops-info.fullname" . }} + labels: + {{- include "devops-info.labels" . | nindent 4 }} +spec: + replicas: {{ .Values.replicaCount }} + strategy: + type: RollingUpdate + rollingUpdate: + maxSurge: 1 + maxUnavailable: 0 + selector: + matchLabels: + {{- include "devops-info.selectorLabels" . | nindent 6 }} + template: + metadata: + labels: + {{- include "devops-info.labels" . | nindent 8 }} + {{- if .Values.vault.injector.enabled }} + annotations: + vault.hashicorp.com/agent-inject: "true" + vault.hashicorp.com/role: {{ .Values.vault.role | quote }} + vault.hashicorp.com/agent-inject-secret-vaultconfig: {{ .Values.vault.secretPath | quote }} + vault.hashicorp.com/service: {{ .Values.vault.serviceAddr | quote }} + vault.hashicorp.com/tls-skip-verify: "true" + {{- end }} + spec: + serviceAccountName: {{ include "devops-info.serviceAccountName" . }} + volumes: + - name: app-config + configMap: + name: {{ include "devops-info.fullname" . }}-file + {{- if .Values.persistence.enabled }} + - name: data + persistentVolumeClaim: + claimName: {{ include "devops-info.fullname" . }}-data + {{- else }} + - name: data + emptyDir: {} + {{- end }} + containers: + - name: app + image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}" + imagePullPolicy: {{ .Values.image.pullPolicy }} + ports: + - name: http + containerPort: {{ .Values.service.targetPort }} + protocol: TCP + env: + - name: HOST + value: {{ .Values.env.HOST | quote }} + - name: PORT + value: {{ .Values.env.PORT | quote }} + - name: RELEASE_ID + value: {{ .Values.env.RELEASE_ID | quote }} + - name: VISITS_FILE + value: {{ .Values.visits.file | quote }} + {{- if or .Values.helmSecret.enabled .Values.config.injectEnv }} + envFrom: + {{- if .Values.helmSecret.enabled }} + - secretRef: + name: {{ include "devops-info.helmSecretName" . }} + {{- end }} + {{- if .Values.config.injectEnv }} + - configMapRef: + name: {{ include "devops-info.fullname" . }}-env + {{- end }} + {{- end }} + volumeMounts: + - name: app-config + mountPath: /config + - name: data + mountPath: /data + securityContext: + {{- toYaml .Values.securityContext | nindent 12 }} + livenessProbe: + httpGet: + path: {{ .Values.livenessProbe.path }} + port: http + initialDelaySeconds: {{ .Values.livenessProbe.initialDelaySeconds }} + periodSeconds: {{ .Values.livenessProbe.periodSeconds }} + timeoutSeconds: {{ .Values.livenessProbe.timeoutSeconds }} + failureThreshold: {{ .Values.livenessProbe.failureThreshold }} + readinessProbe: + httpGet: + path: {{ .Values.readinessProbe.path }} + port: http + initialDelaySeconds: {{ .Values.readinessProbe.initialDelaySeconds }} + periodSeconds: {{ .Values.readinessProbe.periodSeconds }} + timeoutSeconds: {{ .Values.readinessProbe.timeoutSeconds }} + failureThreshold: {{ .Values.readinessProbe.failureThreshold }} + resources: + {{- toYaml .Values.resources | nindent 12 }} diff --git a/lab12c/k8s/devops-info/templates/pvc.yaml b/lab12c/k8s/devops-info/templates/pvc.yaml new file mode 100644 index 0000000000..72ae9abc7e --- /dev/null +++ b/lab12c/k8s/devops-info/templates/pvc.yaml @@ -0,0 +1,17 @@ +{{- if .Values.persistence.enabled }} +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: {{ include "devops-info.fullname" . }}-data + labels: + {{- include "devops-info.labels" . | nindent 4 }} +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: {{ .Values.persistence.size }} + {{- if .Values.persistence.storageClass }} + storageClassName: {{ .Values.persistence.storageClass | quote }} + {{- end }} +{{- end }} diff --git a/lab12c/k8s/devops-info/templates/secrets.yaml b/lab12c/k8s/devops-info/templates/secrets.yaml new file mode 100644 index 0000000000..86ff891444 --- /dev/null +++ b/lab12c/k8s/devops-info/templates/secrets.yaml @@ -0,0 +1,12 @@ +{{- if .Values.helmSecret.enabled }} +apiVersion: v1 +kind: Secret +metadata: + name: {{ include "devops-info.helmSecretName" . }} + labels: + {{- include "devops-info.labels" . | nindent 4 }} +type: Opaque +stringData: + username: {{ .Values.helmSecret.username | quote }} + password: {{ .Values.helmSecret.password | quote }} +{{- end }} diff --git a/lab12c/k8s/devops-info/templates/service.yaml b/lab12c/k8s/devops-info/templates/service.yaml new file mode 100644 index 0000000000..40097f15b3 --- /dev/null +++ b/lab12c/k8s/devops-info/templates/service.yaml @@ -0,0 +1,18 @@ +apiVersion: v1 +kind: Service +metadata: + name: {{ include "devops-info.fullname" . }} + labels: + {{- include "devops-info.labels" . | nindent 4 }} +spec: + type: {{ .Values.service.type }} + ports: + - port: {{ .Values.service.port }} + targetPort: {{ .Values.service.targetPort }} + protocol: TCP + name: http + {{- if and (eq .Values.service.type "NodePort") .Values.service.nodePort }} + nodePort: {{ .Values.service.nodePort }} + {{- end }} + selector: + {{- include "devops-info.selectorLabels" . | nindent 4 }} diff --git a/lab12c/k8s/devops-info/templates/serviceaccount.yaml b/lab12c/k8s/devops-info/templates/serviceaccount.yaml new file mode 100644 index 0000000000..9e91578eba --- /dev/null +++ b/lab12c/k8s/devops-info/templates/serviceaccount.yaml @@ -0,0 +1,8 @@ +{{- if .Values.serviceAccount.create }} +apiVersion: v1 +kind: ServiceAccount +metadata: + name: {{ include "devops-info.serviceAccountName" . }} + labels: + {{- include "devops-info.labels" . | nindent 4 }} +{{- end }} diff --git a/lab12c/k8s/devops-info/values-dev.yaml b/lab12c/k8s/devops-info/values-dev.yaml new file mode 100644 index 0000000000..5ada1211e3 --- /dev/null +++ b/lab12c/k8s/devops-info/values-dev.yaml @@ -0,0 +1,24 @@ +replicaCount: 1 + +service: + type: NodePort + # Use 30081 if another chart (e.g. lab11) already uses 30080 on the same cluster + nodePort: 30081 + +env: + RELEASE_ID: "dev" + +config: + environment: "development" + +resources: + requests: + cpu: "50m" + memory: "64Mi" + limits: + cpu: "200m" + memory: "128Mi" + +vault: + injector: + enabled: false diff --git a/lab12c/k8s/devops-info/values-prod.yaml b/lab12c/k8s/devops-info/values-prod.yaml new file mode 100644 index 0000000000..1857e609a9 --- /dev/null +++ b/lab12c/k8s/devops-info/values-prod.yaml @@ -0,0 +1,24 @@ +# ReadWriteOnce PVC: keep a single replica or use shared storage (RWX) instead. +replicaCount: 1 + +service: + type: LoadBalancer + nodePort: null + +env: + RELEASE_ID: "prod" + +config: + environment: "production" + +resources: + requests: + cpu: "150m" + memory: "192Mi" + limits: + cpu: "500m" + memory: "512Mi" + +vault: + injector: + enabled: false diff --git a/lab12c/k8s/devops-info/values.yaml b/lab12c/k8s/devops-info/values.yaml new file mode 100644 index 0000000000..6273271aad --- /dev/null +++ b/lab12c/k8s/devops-info/values.yaml @@ -0,0 +1,86 @@ +replicaCount: 1 + +nameOverride: "" +fullnameOverride: "" + +serviceAccount: + create: true + name: "" + +image: + repository: tsixphoenix/devops-info-python + tag: "lab12" + pullPolicy: IfNotPresent + +service: + type: NodePort + port: 80 + targetPort: 5000 + nodePort: 30080 + +env: + HOST: "0.0.0.0" + PORT: "5000" + RELEASE_ID: "lab12" + +visits: + file: "/data/visits" + +config: + appName: "devops-info-service" + environment: "development" + logLevel: "info" + injectEnv: true + +helmSecret: + enabled: false + username: "lab12-helm-demo-user" + password: "lab12-helm-demo-password" + +persistence: + enabled: true + size: 100Mi + storageClass: "" + +resources: + requests: + cpu: "100m" + memory: "128Mi" + limits: + cpu: "300m" + memory: "256Mi" + +livenessProbe: + path: /health + initialDelaySeconds: 15 + periodSeconds: 10 + timeoutSeconds: 2 + failureThreshold: 3 + +readinessProbe: + path: /health + initialDelaySeconds: 5 + periodSeconds: 5 + timeoutSeconds: 2 + failureThreshold: 3 + +securityContext: + runAsNonRoot: true + runAsUser: 10001 + allowPrivilegeEscalation: false + readOnlyRootFilesystem: false + +vault: + injector: + enabled: false + role: "devops-info" + secretPath: "secret/data/devops-info/config" + secretFileName: "vault-config" + serviceAddr: "http://vault.vault.svc:8200" + +hooks: + image: busybox:1.36 + preInstall: + enabled: false + postInstall: + enabled: false From 4283b09436cf8198724b3fadd99bf917ad867443 Mon Sep 17 00:00:00 2001 From: Phoenix Date: Thu, 23 Apr 2026 16:21:42 +0300 Subject: [PATCH 20/21] lab13 complete --- lab13c/docs/1.jpg | Bin 0 -> 79116 bytes lab13c/docs/2.jpg | Bin 0 -> 74316 bytes lab13c/docs/3.jpg | Bin 0 -> 92025 bytes lab13c/k8s/ARGOCD.md | 140 ++++++++++++++++++++++++ lab13c/k8s/RUNBOOK.md | 72 ++++++++++++ lab13c/k8s/argocd/application-dev.yaml | 24 ++++ lab13c/k8s/argocd/application-prod.yaml | 21 ++++ lab13c/k8s/argocd/application.yaml | 21 ++++ 8 files changed, 278 insertions(+) create mode 100644 lab13c/docs/1.jpg create mode 100644 lab13c/docs/2.jpg create mode 100644 lab13c/docs/3.jpg create mode 100644 lab13c/k8s/ARGOCD.md create mode 100644 lab13c/k8s/RUNBOOK.md create mode 100644 lab13c/k8s/argocd/application-dev.yaml create mode 100644 lab13c/k8s/argocd/application-prod.yaml create mode 100644 lab13c/k8s/argocd/application.yaml diff --git a/lab13c/docs/1.jpg b/lab13c/docs/1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f6df5383df6da6578a2536e5d7843bcf094f1507 GIT binary patch literal 79116 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 X3=V-;e~mL2eKanlkZ=B}aya`x<_k)7 literal 0 HcmV?d00001 diff --git a/lab13c/docs/2.jpg b/lab13c/docs/2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c693e272be702c5d28297a8b7445019d45287017 GIT binary patch literal 74316 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�MG4Cbwd=MRSI#x}D`17XzY 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 K?mvn4=Klvc#%6y2 literal 0 HcmV?d00001 diff --git a/lab13c/docs/3.jpg b/lab13c/docs/3.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0ef73985f87d5e14c39d45d0f22b1d2f280af5e5 GIT binary patch literal 92025 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
>B_UxZt=3uF$Yr3&_A!2M*uC>1 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" --plaintext +argocd app list --plaintext --server localhost:18080 +``` + +## Application files + +| File | Namespace | Values | Sync | +|------|-----------|--------|------| +| `application.yaml` | default | `values.yaml` | manual | +| `application-dev.yaml` | dev | `values-dev.yaml` | automated, prune, selfHeal | +| `application-prod.yaml` | prod | `values-prod.yaml` | manual | + +```powershell +kubectl apply -f lab13c/k8s/argocd/application.yaml +kubectl apply -f lab13c/k8s/argocd/application-dev.yaml +kubectl apply -f lab13c/k8s/argocd/application-prod.yaml +``` + +Sync the two manual apps after CLI login: + +```text +argocd app sync devops-info --plaintext --server localhost:18080 +argocd app sync devops-info-prod --plaintext --server localhost:18080 +``` + +`devops-info-dev` syncs on its own. + +Image `tsixphoenix/devops-info-python:lab12` is often missing on Docker Hub. Build and load into kind: + +```powershell +docker build -t tsixphoenix/devops-info-python:lab12 .\lab12c\app_python +kind load docker-image tsixphoenix/devops-info-python:lab12 --name lab11 +``` + +## Environments + +dev: one replica, smaller resources, NodePort 30081, `RELEASE_ID=dev`, auto-sync + selfHeal. + +prod: one replica, PVC RWO, bigger limits, Service type LoadBalancer in values (on kind external IP stays pending; pod still runs), `RELEASE_ID=prod`, manual sync. + +default (single app from `application.yaml`): `values.yaml`, NodePort 30080, manual sync. + +Prod stays manual so someone clicks Sync after reviewing the diff. + +## Self-heal and drift (dev) + +Scaling `devops-info-dev` to 5 replicas was reverted back to 1 in about 20 seconds with selfHeal on. + +Deleting a pod in dev gets you a new pod from the ReplicaSet. That is normal Kubernetes behavior, not Argo CD fixing Git drift. + +Changing `values-dev.yaml` in Git (e.g. `replicaCount`), committing, and pushing to `lab12` makes the dev app go OutOfSync within a few minutes (default poll ~3 min), then it auto-syncs. Prod shows OutOfSync until you sync it manually. + +Extra labels on the Deployment may stick until the next comparison; replica count is the clean demo. `argocd app diff devops-info-dev` shows drift. + +Kubernetes keeps replica counts for a Deployment. Argo CD reapplies the full desired state from Git on sync/selfHeal. Poll interval is configurable; default is on the order of a few minutes. + +## Run output (kind, Apr 2026) + +Applications: + +```text +NAME SYNC STATUS HEALTH STATUS +devops-info Synced Healthy +devops-info-dev Synced Healthy +devops-info-prod Synced Progressing +``` + +On kind, prod can sit at Progressing when the Service is LoadBalancer with no external IP; workloads were still Running. + +dev: + +```text +deployment.apps/devops-info-dev 1/1 +service/devops-info-dev NodePort 80:30081/TCP +``` + +prod: + +```text +deployment.apps/devops-info-prod 1/1 +service/devops-info-prod LoadBalancer 80:32607/TCP EXTERNAL-IP pending +``` + +default: + +```text +deployment.apps/devops-info 1/1 +service/devops-info NodePort 80:30080/TCP +``` + +Scale test: `kubectl scale deployment devops-info-dev -n dev --replicas=5` then back to 1 replica. + +## 8. UI screenshots + +All screenshots in the folder docs/ + +--- diff --git a/lab13c/k8s/RUNBOOK.md b/lab13c/k8s/RUNBOOK.md new file mode 100644 index 0000000000..a315986c0e --- /dev/null +++ b/lab13c/k8s/RUNBOOK.md @@ -0,0 +1,72 @@ +# Lab 13: kind + Argo CD (copy-paste) + +Repo root is `DevOps-CC`. Cluster name below is `lab11`; change `--name` if yours differs. + +## Cluster and image + +```powershell +kind create cluster --name lab11 --wait 5m +docker build -t tsixphoenix/devops-info-python:lab12 .\lab12c\app_python +kind load docker-image tsixphoenix/devops-info-python:lab12 --name lab11 +``` + +## Argo CD + +```powershell +helm repo add argo https://argoproj.github.io/argo-helm +helm repo update +kubectl create namespace argocd +helm upgrade --install argocd argo/argo-cd -n argocd --version 7.7.16 ` + --set configs.params.server.insecure=true ` + --set server.extraArgs="{--insecure}" ` + --wait --timeout 10m +``` + +## Applications + +```powershell +kubectl apply -f .\lab13c\k8s\argocd\application.yaml +kubectl apply -f .\lab13c\k8s\argocd\application-dev.yaml +kubectl apply -f .\lab13c\k8s\argocd\application-prod.yaml +``` + +`devops-info-dev` syncs alone. For the other two use the UI Sync button or CLI. + +## CLI sync for manual apps + +```powershell +Invoke-WebRequest -Uri "https://github.com/argoproj/argo-cd/releases/download/v2.13.3/argocd-windows-amd64.exe" -OutFile "$env:TEMP\argocd.exe" +$pwB64 = kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" +$pw = [Text.Encoding]::UTF8.GetString([Convert]::FromBase64String($pwB64)) +Start-Process kubectl -ArgumentList "port-forward","svc/argocd-server","-n","argocd","18080:80" -WindowStyle Hidden +Start-Sleep 5 +& "$env:TEMP\argocd.exe" login localhost:18080 --username admin --password $pw --plaintext +& "$env:TEMP\argocd.exe" app sync devops-info --plaintext --server localhost:18080 +& "$env:TEMP\argocd.exe" app sync devops-info-prod --plaintext --server localhost:18080 +``` + +## Quick checks + +```powershell +kubectl get applications -n argocd +kubectl get pods -n dev +kubectl get pods -n prod +kubectl get pods -n default +``` + +## Self-heal check (dev) + +```powershell +kubectl scale deployment devops-info-dev -n dev --replicas=5 +Start-Sleep 30 +kubectl get deploy -n dev devops-info-dev +``` + +Expect 1 replica again. + +## Tear down + +```powershell +helm uninstall argocd -n argocd +kind delete cluster --name lab11 +``` diff --git a/lab13c/k8s/argocd/application-dev.yaml b/lab13c/k8s/argocd/application-dev.yaml new file mode 100644 index 0000000000..2d1f3470d0 --- /dev/null +++ b/lab13c/k8s/argocd/application-dev.yaml @@ -0,0 +1,24 @@ +# Lab 13 Task 3 — dev: auto-sync + selfHeal + prune +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: devops-info-dev + namespace: argocd +spec: + project: default + source: + repoURL: https://github.com/TsixPhoenix/DevOps-CC.git + targetRevision: lab12 + path: lab12c/k8s/devops-info + helm: + valueFiles: + - values-dev.yaml + destination: + server: https://kubernetes.default.svc + namespace: dev + syncPolicy: + automated: + prune: true + selfHeal: true + syncOptions: + - CreateNamespace=true diff --git a/lab13c/k8s/argocd/application-prod.yaml b/lab13c/k8s/argocd/application-prod.yaml new file mode 100644 index 0000000000..8b08118b6b --- /dev/null +++ b/lab13c/k8s/argocd/application-prod.yaml @@ -0,0 +1,21 @@ +# Lab 13 Task 3 — prod: manual sync only (no automated block) +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: devops-info-prod + namespace: argocd +spec: + project: default + source: + repoURL: https://github.com/TsixPhoenix/DevOps-CC.git + targetRevision: lab12 + path: lab12c/k8s/devops-info + helm: + valueFiles: + - values-prod.yaml + destination: + server: https://kubernetes.default.svc + namespace: prod + syncPolicy: + syncOptions: + - CreateNamespace=true diff --git a/lab13c/k8s/argocd/application.yaml b/lab13c/k8s/argocd/application.yaml new file mode 100644 index 0000000000..cf56216046 --- /dev/null +++ b/lab13c/k8s/argocd/application.yaml @@ -0,0 +1,21 @@ +# Lab 13 Task 2 — single Application, manual sync, default namespace +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: devops-info + namespace: argocd +spec: + project: default + source: + repoURL: https://github.com/TsixPhoenix/DevOps-CC.git + targetRevision: lab12 + path: lab12c/k8s/devops-info + helm: + valueFiles: + - values.yaml + destination: + server: https://kubernetes.default.svc + namespace: default + syncPolicy: + syncOptions: + - CreateNamespace=true From 120e3afda9bb660e27c5d10a7978786964fe71b0 Mon Sep 17 00:00:00 2001 From: TsixPhoenix Date: Thu, 30 Apr 2026 19:18:59 +0300 Subject: [PATCH 21/21] lab 14 complete --- .../templates/analysis-template.yaml | 19 ++ .../k8s/devops-info/templates/deployment.yaml | 2 + lab12c/k8s/devops-info/templates/rollout.yaml | 107 +++++++++ .../templates/service-preview.yaml | 17 ++ lab12c/k8s/devops-info/values-bluegreen.yaml | 7 + lab12c/k8s/devops-info/values-dev.yaml | 4 + lab12c/k8s/devops-info/values-prod.yaml | 8 + lab12c/k8s/devops-info/values.yaml | 27 +++ lab13c/k8s/ROLLOUTS.md | 221 ++++++++++++++++++ lab14c/docs/1.jpg | Bin 0 -> 52812 bytes lab14c/docs/2.jpg | Bin 0 -> 86272 bytes lab14c/docs/3.jpg | Bin 0 -> 90181 bytes lab14c/docs/4.jpg | Bin 0 -> 85393 bytes lab14c/docs/5.jpg | Bin 0 -> 54354 bytes lab14c/docs/6.jpg | Bin 0 -> 48401 bytes lab14c/docs/7.jpg | Bin 0 -> 8406 bytes 16 files changed, 412 insertions(+) create mode 100644 lab12c/k8s/devops-info/templates/analysis-template.yaml create mode 100644 lab12c/k8s/devops-info/templates/rollout.yaml create mode 100644 lab12c/k8s/devops-info/templates/service-preview.yaml create mode 100644 lab12c/k8s/devops-info/values-bluegreen.yaml create mode 100644 lab13c/k8s/ROLLOUTS.md create mode 100644 lab14c/docs/1.jpg create mode 100644 lab14c/docs/2.jpg create mode 100644 lab14c/docs/3.jpg create mode 100644 lab14c/docs/4.jpg create mode 100644 lab14c/docs/5.jpg create mode 100644 lab14c/docs/6.jpg create mode 100644 lab14c/docs/7.jpg diff --git a/lab12c/k8s/devops-info/templates/analysis-template.yaml b/lab12c/k8s/devops-info/templates/analysis-template.yaml new file mode 100644 index 0000000000..d36bd8c363 --- /dev/null +++ b/lab12c/k8s/devops-info/templates/analysis-template.yaml @@ -0,0 +1,19 @@ +{{- if and .Values.rollouts.enabled .Values.rollouts.analysis.enabled }} +apiVersion: argoproj.io/v1alpha1 +kind: AnalysisTemplate +metadata: + name: {{ include "devops-info.fullname" . }}-success-rate + labels: + {{- include "devops-info.labels" . | nindent 4 }} +spec: + metrics: + - name: health-check + interval: {{ .Values.rollouts.analysis.interval }} + count: {{ .Values.rollouts.analysis.count }} + failureLimit: {{ .Values.rollouts.analysis.failureLimit }} + successCondition: result == "healthy" + provider: + web: + url: http://{{ include "devops-info.fullname" . }}.{{ .Release.Namespace }}.svc.cluster.local/health + jsonPath: "{$.status}" +{{- end }} diff --git a/lab12c/k8s/devops-info/templates/deployment.yaml b/lab12c/k8s/devops-info/templates/deployment.yaml index b233eb2b17..ce6240990f 100644 --- a/lab12c/k8s/devops-info/templates/deployment.yaml +++ b/lab12c/k8s/devops-info/templates/deployment.yaml @@ -1,3 +1,4 @@ +{{- if not .Values.rollouts.enabled }} apiVersion: apps/v1 kind: Deployment metadata: @@ -93,3 +94,4 @@ spec: failureThreshold: {{ .Values.readinessProbe.failureThreshold }} resources: {{- toYaml .Values.resources | nindent 12 }} +{{- end }} diff --git a/lab12c/k8s/devops-info/templates/rollout.yaml b/lab12c/k8s/devops-info/templates/rollout.yaml new file mode 100644 index 0000000000..fd0727e132 --- /dev/null +++ b/lab12c/k8s/devops-info/templates/rollout.yaml @@ -0,0 +1,107 @@ +{{- if .Values.rollouts.enabled }} +apiVersion: argoproj.io/v1alpha1 +kind: Rollout +metadata: + name: {{ include "devops-info.fullname" . }} + labels: + {{- include "devops-info.labels" . | nindent 4 }} +spec: + replicas: {{ .Values.replicaCount }} + selector: + matchLabels: + {{- include "devops-info.selectorLabels" . | nindent 6 }} + template: + metadata: + labels: + {{- include "devops-info.labels" . | nindent 8 }} + {{- if .Values.vault.injector.enabled }} + annotations: + vault.hashicorp.com/agent-inject: "true" + vault.hashicorp.com/role: {{ .Values.vault.role | quote }} + vault.hashicorp.com/agent-inject-secret-vaultconfig: {{ .Values.vault.secretPath | quote }} + vault.hashicorp.com/service: {{ .Values.vault.serviceAddr | quote }} + vault.hashicorp.com/tls-skip-verify: "true" + {{- end }} + spec: + serviceAccountName: {{ include "devops-info.serviceAccountName" . }} + volumes: + - name: app-config + configMap: + name: {{ include "devops-info.fullname" . }}-file + {{- if .Values.persistence.enabled }} + - name: data + persistentVolumeClaim: + claimName: {{ include "devops-info.fullname" . }}-data + {{- else }} + - name: data + emptyDir: {} + {{- end }} + containers: + - name: app + image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}" + imagePullPolicy: {{ .Values.image.pullPolicy }} + ports: + - name: http + containerPort: {{ .Values.service.targetPort }} + protocol: TCP + env: + - name: HOST + value: {{ .Values.env.HOST | quote }} + - name: PORT + value: {{ .Values.env.PORT | quote }} + - name: RELEASE_ID + value: {{ .Values.env.RELEASE_ID | quote }} + - name: VISITS_FILE + value: {{ .Values.visits.file | quote }} + {{- if or .Values.helmSecret.enabled .Values.config.injectEnv }} + envFrom: + {{- if .Values.helmSecret.enabled }} + - secretRef: + name: {{ include "devops-info.helmSecretName" . }} + {{- end }} + {{- if .Values.config.injectEnv }} + - configMapRef: + name: {{ include "devops-info.fullname" . }}-env + {{- end }} + {{- end }} + volumeMounts: + - name: app-config + mountPath: /config + - name: data + mountPath: /data + securityContext: + {{- toYaml .Values.securityContext | nindent 12 }} + livenessProbe: + httpGet: + path: {{ .Values.livenessProbe.path }} + port: http + initialDelaySeconds: {{ .Values.livenessProbe.initialDelaySeconds }} + periodSeconds: {{ .Values.livenessProbe.periodSeconds }} + timeoutSeconds: {{ .Values.livenessProbe.timeoutSeconds }} + failureThreshold: {{ .Values.livenessProbe.failureThreshold }} + readinessProbe: + httpGet: + path: {{ .Values.readinessProbe.path }} + port: http + initialDelaySeconds: {{ .Values.readinessProbe.initialDelaySeconds }} + periodSeconds: {{ .Values.readinessProbe.periodSeconds }} + timeoutSeconds: {{ .Values.readinessProbe.timeoutSeconds }} + failureThreshold: {{ .Values.readinessProbe.failureThreshold }} + resources: + {{- toYaml .Values.resources | nindent 12 }} + strategy: + {{- if eq .Values.rollouts.strategy "blueGreen" }} + blueGreen: + activeService: {{ include "devops-info.fullname" . }} + previewService: {{ include "devops-info.fullname" . }}-preview + autoPromotionEnabled: {{ .Values.rollouts.blueGreen.autoPromotionEnabled }} + {{- if .Values.rollouts.blueGreen.autoPromotionSeconds }} + autoPromotionSeconds: {{ .Values.rollouts.blueGreen.autoPromotionSeconds }} + {{- end }} + scaleDownDelaySeconds: {{ .Values.rollouts.blueGreen.scaleDownDelaySeconds }} + {{- else }} + canary: + steps: + {{- toYaml .Values.rollouts.canary.steps | nindent 8 }} + {{- end }} +{{- end }} diff --git a/lab12c/k8s/devops-info/templates/service-preview.yaml b/lab12c/k8s/devops-info/templates/service-preview.yaml new file mode 100644 index 0000000000..d880b331d8 --- /dev/null +++ b/lab12c/k8s/devops-info/templates/service-preview.yaml @@ -0,0 +1,17 @@ +{{- if and .Values.rollouts.enabled (eq .Values.rollouts.strategy "blueGreen") }} +apiVersion: v1 +kind: Service +metadata: + name: {{ include "devops-info.fullname" . }}-preview + labels: + {{- include "devops-info.labels" . | nindent 4 }} +spec: + type: {{ .Values.service.type }} + ports: + - port: {{ .Values.service.port }} + targetPort: {{ .Values.service.targetPort }} + protocol: TCP + name: http + selector: + {{- include "devops-info.selectorLabels" . | nindent 4 }} +{{- end }} diff --git a/lab12c/k8s/devops-info/values-bluegreen.yaml b/lab12c/k8s/devops-info/values-bluegreen.yaml new file mode 100644 index 0000000000..a551df57dd --- /dev/null +++ b/lab12c/k8s/devops-info/values-bluegreen.yaml @@ -0,0 +1,7 @@ +rollouts: + enabled: true + strategy: blueGreen + blueGreen: + autoPromotionEnabled: false + autoPromotionSeconds: null + scaleDownDelaySeconds: 30 diff --git a/lab12c/k8s/devops-info/values-dev.yaml b/lab12c/k8s/devops-info/values-dev.yaml index 5ada1211e3..8e24124da5 100644 --- a/lab12c/k8s/devops-info/values-dev.yaml +++ b/lab12c/k8s/devops-info/values-dev.yaml @@ -22,3 +22,7 @@ resources: vault: injector: enabled: false + +rollouts: + enabled: true + strategy: canary diff --git a/lab12c/k8s/devops-info/values-prod.yaml b/lab12c/k8s/devops-info/values-prod.yaml index 1857e609a9..5deb43560b 100644 --- a/lab12c/k8s/devops-info/values-prod.yaml +++ b/lab12c/k8s/devops-info/values-prod.yaml @@ -22,3 +22,11 @@ resources: vault: injector: enabled: false + +rollouts: + enabled: true + strategy: blueGreen + blueGreen: + autoPromotionEnabled: false + autoPromotionSeconds: null + scaleDownDelaySeconds: 30 diff --git a/lab12c/k8s/devops-info/values.yaml b/lab12c/k8s/devops-info/values.yaml index 6273271aad..d463589652 100644 --- a/lab12c/k8s/devops-info/values.yaml +++ b/lab12c/k8s/devops-info/values.yaml @@ -84,3 +84,30 @@ hooks: enabled: false postInstall: enabled: false + +rollouts: + enabled: true + strategy: canary + canary: + steps: + - setWeight: 20 + - pause: {} + - setWeight: 40 + - pause: + duration: 30s + - setWeight: 60 + - pause: + duration: 30s + - setWeight: 80 + - pause: + duration: 30s + - setWeight: 100 + blueGreen: + autoPromotionEnabled: false + autoPromotionSeconds: null + scaleDownDelaySeconds: 30 + analysis: + enabled: true + interval: 10s + count: 3 + failureLimit: 1 diff --git a/lab13c/k8s/ROLLOUTS.md b/lab13c/k8s/ROLLOUTS.md new file mode 100644 index 0000000000..6d496d6730 --- /dev/null +++ b/lab13c/k8s/ROLLOUTS.md @@ -0,0 +1,221 @@ +# Lab 14: Argo Rollouts Progressive Delivery + +Helm chart source for this lab: `lab12c/k8s/devops-info`. + +This lab replaces a classic `Deployment` with Argo `Rollout` and adds: +- canary traffic shifting with pauses and manual promotion; +- blue-green release flow with preview service; +- automated health analysis for rollback decisions. + +## 1) Argo Rollouts setup + +### Install controller + +```powershell +kubectl create namespace argo-rollouts +kubectl apply -n argo-rollouts -f https://github.com/argoproj/argo-rollouts/releases/latest/download/install.yaml +kubectl get pods -n argo-rollouts +``` + +Expected: controller pod is `Running`. + +### Install kubectl plugin (Windows PowerShell) + +```powershell +$version = (Invoke-RestMethod https://api.github.com/repos/argoproj/argo-rollouts/releases/latest).tag_name +Invoke-WebRequest -Uri "https://github.com/argoproj/argo-rollouts/releases/download/$version/kubectl-argo-rollouts-windows-amd64.exe" -OutFile "$env:USERPROFILE\kubectl-argo-rollouts.exe" +[Environment]::SetEnvironmentVariable("Path", $env:Path + ";$env:USERPROFILE", [EnvironmentVariableTarget]::User) +``` + +Restart terminal and verify: + +```powershell +kubectl argo rollouts version +``` + +### Install dashboard + +```powershell +kubectl apply -n argo-rollouts -f https://github.com/argoproj/argo-rollouts/releases/latest/download/dashboard-install.yaml +kubectl port-forward svc/argo-rollouts-dashboard -n argo-rollouts 3100:3100 +``` + +Open: `http://localhost:3100`. + +## 2) Rollout vs Deployment (key differences) + +- `kind` changes from `Deployment` to `Rollout`. +- `spec.strategy` supports advanced modes (`canary`, `blueGreen`), not only rolling update knobs. +- Rollouts can pause, require manual promotion, and run metric checks (`AnalysisTemplate`). +- Rollouts support explicit abort/retry flow for safer rollback handling. + +## 3) Canary deployment implementation + +### What was changed + +- Added template `templates/rollout.yaml` (enabled by `rollouts.enabled`). +- Kept legacy `templates/deployment.yaml` behind guard `if not .Values.rollouts.enabled`. +- Default strategy in `values.yaml` is `canary`. +- Canary progression: + - 20% -> manual pause + - 40% -> pause 30s + - 60% -> pause 30s + - 80% -> pause 30s + - 100% + +### Deploy canary + +```powershell +helm upgrade --install devops-info .\lab12c\k8s\devops-info -n default --create-namespace +kubectl argo rollouts get rollout devops-info -n default -w +``` + +Trigger new revision: + +```powershell +helm upgrade --install devops-info .\lab12c\k8s\devops-info -n default ` + --set image.tag=lab14-canary-1 ` + --set env.RELEASE_ID=lab14-canary-1 +``` + +Promote first manual pause: + +```powershell +kubectl argo rollouts promote devops-info -n default +``` + +Abort rollout (rollback test): + +```powershell +kubectl argo rollouts abort devops-info -n default +kubectl argo rollouts get rollout devops-info -n default +``` + +Retry aborted rollout: + +```powershell +kubectl argo rollouts retry rollout devops-info -n default +``` + +## 4) Blue-green deployment implementation + +### What was changed + +- Added preview service template: `templates/service-preview.yaml`. +- Added blue-green values profile: `values-bluegreen.yaml`. +- `values-prod.yaml` also uses `rollouts.strategy=blueGreen`. +- Blue-green config uses: + - `activeService: ` + - `previewService: -preview` + - `autoPromotionEnabled: false` (manual cutover) + +### Deploy blue-green + +```powershell +helm upgrade --install devops-info-bg .\lab12c\k8s\devops-info -n default ` + -f .\lab12c\k8s\devops-info\values-bluegreen.yaml ` + --set env.RELEASE_ID=lab14-bg-blue +``` + +Trigger green revision: + +```powershell +helm upgrade --install devops-info-bg .\lab12c\k8s\devops-info -n default ` + -f .\lab12c\k8s\devops-info\values-bluegreen.yaml ` + --set image.tag=lab14-bg-green ` + --set env.RELEASE_ID=lab14-bg-green +``` + +Port-forward active and preview: + +```powershell +kubectl port-forward svc/devops-info-bg -n default 8080:80 +kubectl port-forward svc/devops-info-bg-preview -n default 8081:80 +``` + +Promote preview to active: + +```powershell +kubectl argo rollouts promote devops-info-bg -n default +``` + +Instant rollback: + +```powershell +kubectl argo rollouts undo devops-info-bg -n default +``` + +## 5) Bonus: automated analysis + +### What was changed + +- Added `templates/analysis-template.yaml`. +- Analysis is controlled by `rollouts.analysis.*` values and enabled by default. +- Canary steps can include analysis gate via values. +- Health check uses `/health` and expects JSON `{"status":"healthy"}`. + +Example canary with analysis gate: + +```yaml +rollouts: + canary: + steps: + - setWeight: 20 + - analysis: + templates: + - templateName: devops-info-success-rate + - pause: {} + - setWeight: 100 +``` + +Watch analysis runs: + +```powershell +kubectl get analysisrun -n default +kubectl describe analysisrun -n default +``` + +If analysis fails (failure limit reached), rollout is automatically aborted and traffic stays on stable ReplicaSet. + +## 6) Strategy comparison and recommendations + +### Canary + +- Best for risky changes, gradual verification on real traffic. +- Lower blast radius due to percentage-based rollout. +- Slower release and rollback compared to hard switching. + +Use when: +- new feature logic can fail partially; +- you need progressive exposure and close monitoring. + +### Blue-green + +- Best for fast cutover and fast rollback. +- Easy A/B validation via separate preview service. +- Requires extra resources because both versions run together. + +Use when: +- release must switch instantly; +- preview acceptance tests are mandatory before go-live. + +## 7) Useful CLI commands + +```powershell +kubectl argo rollouts list rollouts -A +kubectl argo rollouts get rollout -n -w +kubectl argo rollouts promote -n +kubectl argo rollouts abort -n +kubectl argo rollouts retry rollout -n +kubectl argo rollouts undo -n +kubectl argo rollouts dashboard +``` + +## 8) Screenshots checklist (dashboard) + +Add screenshots to `lab13c/docs/`: +- canary rollout at 20% paused; +- canary promoted to 40/60/80; +- aborted canary rollback; +- blue-green preview and active before promotion; +- blue-green after promotion. diff --git a/lab14c/docs/1.jpg b/lab14c/docs/1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5ff4d754a75b923914c9e3970ca8957604f5ecf0 GIT binary patch literal 52812 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 literal 0 HcmV?d00001 diff --git a/lab14c/docs/2.jpg b/lab14c/docs/2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5c920fe2aa93b032291700685169c6ebc6a9ee9a GIT binary patch literal 86272 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�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 L6KMARbL77O!`Cq= literal 0 HcmV?d00001 diff --git a/lab14c/docs/3.jpg b/lab14c/docs/3.jpg new file mode 100644 index 0000000000000000000000000000000000000000..96fe8f4cb2e0c9d8b198f46b8fa24106f6e74339 GIT binary patch literal 90181 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%0DVaCsQ4e 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 JtJ7a+{|x~{k9Pn7 literal 0 HcmV?d00001 diff --git a/lab14c/docs/5.jpg b/lab14c/docs/5.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6cc01c77e25ea0b7d7fea35574eda6fc18d7ca7c GIT binary patch literal 54354 zcmeFZ1z4TC(kQ%ecXurmFK)%%i@Uo!#c7Kach}-j+@%FdDemr2+}-^y+HU>!KBwnD z-?{hx_xX~nHp z62{2b(GW;-2>g&c04oQ|gbsw!O~1oWA7O*<@bgFbrIVc#kmkiB?4YC|1cZ%%@Ke*@ z!3MvB4ecBr=|h1u&#kSTAM1K_kFA3@woz6D#?ZhIKEM&601yKRKDHm220Gg;0D$8R z004{p4QG%90Mz*d0N69X;mF?s07!lSK<(gfxZnE3PTxWQ8#{2|6V${6065ME01(sx z0JI?h09Nx`9`NxuvJnHb@PTsK0=+4~3SbN%21o#G0EPg1AjAZC24DoRJ`@VabwDX0p+G^Pfw{QAjBoDOOaKVzWB$Vo03Hlj5*Z8`IAE(_{06V(73{7h^$UrgkK36=cllW(_?T_;@FUHJeoYLChicD3GIHU>7@xB?)KdtbQ0E{er zyP?VABR<^V&i-PukIud2PNyP)>&#Xn(b&fuZ||FHkg$87vTI^HSlw)>_0BCpZ%gl3 zqU6O~sP(!nfvb}17r!BzOwR^_OxNZw1f7?zd*z2VE?e?;Jl{?-U-J{wj0F%S_G`%bqnl`0CXFYn}rdHDZcNJO3~J{ntOnGM&yL6MW1 zjVBujgVQ;6NQDI#vMBZa-mmfv5D9e2a*UcM3XHL*L(&aWQ+9R5o9|ka%&XHrQyA?2vpVBg3er=w*b?0%msA^%cwSs;b};pPvt=( zZM?HrCPkD~mRE^r^EQi>s%)mlV%j)%iKaL1I68y%Kd+UiE%R?0k^HCy89Bdui3TE^&CR!E0 zVPFnaghmTot|aq_j8ltO_K(vyR#R8O{QnDJC?@^)efO{BNVu2EaTQng7gy5I2KSOy zcKsaibfjmwCTXwDU1NvJ@?R-PLmTR>70&Gj_cvm~;XF5y!!0@i2}@2R>X7|9lcBb4TbO$rpRnzk^l=R#Z zM2=fhjjf8&B|2qjthvO8!?a<-54vvSa_6nTtfwcCOWKEJ!>^td? z=segyqeRJkQilhI7;){ccUTPaP4uW`Jq`=gEPG$BA9shpb3Y-9+3(~BOEM>Vw-8R0 zL6nI*xKXz$aJ6@h?Cs(0N0h#p3AM3sWZavh22=z*pdxIZEHhLokfHvRN0X3UQYDD$ zv;-;mopiqk)w)-hT!&&3LI=J1+jmp`r_Ni6J&Q1H1PsX;3tW8yD@sAaN z_4lYs*6)UMt0C||rvIx0?U2KX>3C!IryOW|buE<&hcmp9_Vv#ejh{-(X^LTYKz{~+ z`TQ>`;kT+m@l{kYinW?VPg{ilykKJ3Pvg6kr*guGl?Ut;hF zy}g`J#p6i%Q4IFq>z2D8N(_s2i+?WDJ{p_w++$S^hWje4EmWg_8$x+(R|chZ{Pxrb_Mxw>u?o1}{dZ{%#`t&g`EK6VNgWTH~%* z121B)lkestTQ#~vF&z(n8Rowc3G^rQzbt~+I12ke<70Le;vOxg@*i7_>&Z?Zu8T<( zYz_ST5<`mjbYzogrm%n0rbjdDa z8qOyA_X$ZFn--Jh+}HenR}NSS)P~P6_6{Gnw{KDT}o}k;=TW;hG)1N<3rZuBCzQ#_GB@;f7fV*d{%4&QYUQ;Pn{_gj(2!vGyP1rDE z?%Pm>1cTlt9j-S|o4Kh?_KW3>_J|BPR|I{g{tS{Y0-5+(o7_#5=xpX!C{ z6G%8_1q>+>!712usdvA2^dA5yzZ}U5DK9-$uTxjG(1@||L6bPg#s*!5G6yjV=bu#l z&Swdp9b0cssy$>J(udEr9VglhdU2b(*O@^0|4`d639$CyW2yIJ^VwR6a6ZADw;wM2 zhEg_WQabBl_&Dyv$DGp%uF>SSl()rKJKnEUa_kwg{!;W$@%J72(Z*!rKbVCGc>+gB zS>8N)J|86jkx{sW#ZPi&ZK#aGq zTGi?ou@ri+1v|@^%wQO*ysY@~cJf7u*gg&RuOkd__liHY_QzvGpEH)}cEeMc4*gZd zfPY~s`}7ay+Hbr;&c#>be{wnxHQu*oI+aV^&K%=$lnLM9QB=HQ;4jQEmZ_U$YS9#u zzrxeDQek|lk$lnS++k6NkjmyH0xBYM0zzVY5mR#^!j?Z!_ZO!-M2ZG}p% z!WXVMFRv`tq;5N?Z~t#UWoJA?a#T&%RS+ZjNs&63!uH4(SEn?JHZNb|C9|EJ+-0r+ zzcl^_4nCg!32OJx&-U2;WG_c}>jtCQTXIjb=bfxKHoO2=>4*QI3IIrS$7+^3Sq$FK zOmx6i)DTCC`6TZd?Mdmgi3864;1jms!>o@_%V23f|2G4iPd5_AqPo+RACJuc+<>0_ z>A3e_8|@X%`Q&F>IT)nyC06)9;>C!6qBShPoPPgn6Mn^fWAnG)BM_F1h>VlYD_|-4 zkCQlyYySrUv`@tUZ2tIF=>Gx!rw9J`_ka)Z=7<#;0DuGmUV4E5132)i2>5jh@a6~& z0u`MJ1xpVS83XeLF$+J*Ge$vXQdYZHP-Nugz)K});6)S&1n2|ci`wn;kIBs;%(7xo z%s2;Nqq4mbv7dQDnNLTcjMYv_*DF&;Mx+@r&^LctYNhTed zmmf-u>|-*6q$-)tT~drKc6LZNgk|PG0DRwerYpEB46rdBzn4t0FYI&o#X3^#FhRQt zWPHbshmaU8bDhBxkj72Alm}n))j=%zOmnX#{)FS%T$iMOnD5r5k98aT04%)??vQoa z3~OE8meo>uhLq_GiPL6hvhAy(3~`f4-imb6m%|M&$4{-^U9-LL!h6aa7E2`BgOqIy zHC*YtIW6$l8B}kQ0?$v$5GMHqlQ}Hs1tf79v{-!Kkgh%vgzJ^Hqgsg~;kbg6drwij z6>s9kyq@l7P2GLnd;h5}#590RmU65=xA>qgM?rGX2XA~;>@{Ir&n^?1j*`OMa|e>< zhMu!0C6mLP<-bqYq^G_ET{IY%sS9(e?EuUzGG=+AdXLBtJJx za6k+D(4DS}S0r)DCv|^$Icn}!mtlzm>zSRxJUjdVxLAsezUil=d@?Ps<4udcHm4*3 z7iI6fb@u>JeE>}Hyt|GQ!#<9(ircmzOG*wUqk96W9wY(NDI0?+Bk>2*+h+YZfG^1z_zzSCqE@vvgHaygQ=n0&DrBxL^$=(kqBp!O?m!60Z#$xl8+56M-7ghx~ zwMt$;n?ae96i?7ZGCT4=kN<1>-~lkCT7_&_w2M7_4sUh?$>QaU%i9`8q}LHqZYb>O zr|y&WB?OgLyn^&wL`HVOy!mSih55BE6eKrXs2qKoF+wvWUow1f~Fs!9ULG_&{mEl6AzzMK#pMsfMm}Bn= zNBlT}{8H`EX=4~?+z}#9Zd0R5FWs2mF?)QDg__`5qU~+NUX*;49kWjSnUg?$4w$_; z^thfFCEus6r`=UU!X~EpH6#=@k?bn8FIXAgYqLJZV&{MfW+``8#1YLy84FS9)2PBM z2x_MdoR`P->6viXxaj@lt`G(3*q~(aMDQhLn2WH;*R!QbIFcwuyvhO5PRSrNj9>@u z10h=*wIJ}eNNp7p3KH|sVsH5=b6@I{c$n@McUD59X7NIsg>T}*P?7@iG*Jo8gAk9c@gp0Vf`Lx$f|->EV)1zQ{?o|-ZKLi7t7 zSjHDd0PCKl3G@_hh=KoqqCa+l*nLGNSDd5>6?%?B)PGYX6ox|17H0b2#O;S@LSb8n z6mIvd1E72>8B1SjPmshdxUeI~V!f$=s3rJo1RhbpFc@4^7IHK3A^wQzdqU7b#`sse zakqJi$CXH|wE0F7?Q0awc#hFm;A=V#u*_(x7!EnDaUovQ@-5&SAVf2YBTrUY<4Kv- z1GL~b$Uc7b)_2gARnGTyGcoKGHQ-vlorSSnPbx{UvAkUCGG+?wtlL_X?vl%(>R6ZU zPNDk{ttbh1?(_ClRiE^$B;O^2J$Zk9sH1)hN7Oc7qlMGMs8e?T&|#BA2X{>Ywun~F zPh#f@h*FL@9VuK~?|KurRu*PcVY)b`+@NEyaBpNKK7YKCYUfzRPZjAhB^>P&zURAC zi`nXQP=`zwLg)(Ii6(3>87h8R+4QYLZY@*6eLmwj6P+PX7^;VfvL=ohz7KuE!}Bfo z-dl{B2)nHIGm*6)?<}-eE%c2Q%J~%8Ub)z;UPNsxk@XwiS#YfPUz2i$s~bLv-8$Yr zhe-DsJbQUCt=|pjgT=(eSA%pOZin&!z<&TBftV(CS&juEqURkWauT?SEm+^S(|?F` z3Ov@vp>N^~+df#lHjgF63$zA}k4du6*-k?%S_{~;5v6scgm6F~AWjo}7GShMR}+;W z^!7%K1NwfHN!%~jL_;v**)+`&!{H&O+uLOOHc?JGoRz4$%g@7=OfHT-W7#P&d=WtA zOI4LSiM((}+M!?4}O-ON7MFK3cvMZOddDrDXd0~MtDBaOp? zC2GD(2bGlWvhJe--TM^UJD7-H;s^fYKnp3{?}umgI9jYIaKEjte_Sm8#T1ON_uyj_ zzbSOxjW_w-Z)0eC-p_IKB7yZ(!jj@V&w(kHL@o-G={VY;?gTZM_w26E^Zh)ui-J56 z{f&LI{D`_yE(ujvKgEhs;M5|IWi+{z3$LKW+hbWOiC(&F`>Sof=ol2F)hF!;67e;+ zMdcOk)Y31}<0x5Ca?*uv^6$aE4Rn~}tBAe(L8c&tcrHc`waxCQYVih1Li*$rY%~<1 zRz@T*rZgr)!ZS(1-6WqI$=6yu07An3I=+bN2awfaK%hix7%;^#hlde#55YP{te`Fv z__Ynt;~|0@X0yc!>f11&AbfJ|$~#UHOpOSSz|fuNGre?$d;S2x1zO(J@YpH#kfA^r zByght_abti7vHoqV@2yL**)juEWp?Cn?64_^K#?2nvZ@Pg`-LbEP`FlUN4`HM;jhI zDt*-T5LS~p-6*?R2gk6$9@fr#nqPbCRvG1KFuDV?KYm|ev~K(F%6zjAvJsEh^?3hg zcvUAOjM_x`Z}WLw4`(;|04Nui%~gt05Rt$j|Gzkj+=h7qw9li-$6@+17i#4uoJQ!O zZ%HxIwi!LJ)ifBw*Y-($ojGsYgj6#sNvzk*mi%;_T4{~n@#%^KLjpP{g?$B+QZ=vG z*hh&+1$efrl40NHX{sF*8UjAm*%9i$l*!@O8lHgN_Br&Rv$L@8Ii=PEfRN(5=7hHZ z*>9|rJ=&-5QRkx+t(Pm0B5o`woJPD_nV=SFGDBXuViw&SqA@aK z&naS*df4*9J!xu$_`1{*iD_Hc^4nVU%zK1!ps%NCd~6Sm5H-8u=m9XCS_79eOQ|Ky zQogQ%A5@~Rkr~uy`*AUZhUUv(+cMt3z8BZ=bQ)y@kNakvx#WD<|+w^7tEV5=Fd*! zvtt}a>iW&aS#wF1qQh{%1mwnqw{RBhcO}$`vrhb%vL<6 zR{0YauM^C&g7BM3`JQVc~T=YW^j~KnUk`VuQktz(qHkVAb33$qIfjqFWFt2BRU(?OrEB`Qt?<Yts3Qj@H-u-dQ2E3H;Tb_}e;-)O`#qXWy zlPNI~uR)=4NA4HhA|(AJ&O0GdYV}67)(_46)@tyQnK|_}8dbE{v@1*{C9}tD;$UMU zJNFX{XG{B_XhPi^$p=6NQ^33-Sfk(*ZUx-Llbohj83S!|P6r`sg_)ompKlXd>m|$J zC8dBZabJeqmuOO98#D-v%9nbBGQPNqC^^xjEHe*)1=ZW_(4M(4&71 zyWiJkKKyTc5Tfu$Gx?#%mpk9|_tyTKJ$Pf94mmT90pIhL{t;Q+w|!Ue91{`|H#n&v zq%IpqNOE@arW^?i8vEQT#+E^B@-0+K(Lj49c~hc_M!#ewDUw32*YPnp5%N{RT14t3 z8-dpeRX^A?-{2TEpNe-UM21UtNh(6oD=->=Rx? zbZU7eO?$Sv)Df%*P_;k5<)qeQkMZQao=z7S0Ckoa=#RlPboDY0`M$X#sw8Czg7Ocr zzP0koT$xfN!oah0EqHHStfZ1MRcRnCx|T&wp-*o_{=+SXL)Nr4eQ%k1Dw;2WLb3c!m5COas<51`Ks3T+ddrl|O$X&M!=SA=QHl2!zNTU8<~a`F&u1r)?a|0u&EqWhVd;Cx%U|so zb*dvF!7^B>)EzaBvKyVOuv*ATu}(edAf21tm12<=>0I&AEr>cbTell8B!N-R(AX## z*+#RZh3Z1uC`=}o$LZeu`?z&teD=a_B3tRtghdO{=Qx%U371Ec$2YdKS zmO5C$-0={@b9J?}o(SJaVWca^*>4%s#2-0D?#O&idJh^cM5 z;GsOd+_&DGnyM8h%MtkN`J_**OY!obHlE&&{y}Rv{-|Ho)BOS_U(O~XWr@2|1^f!) zWhA8h8A!(jN+=2)h7s7vB$eWz9H@k&yPh~08uchfomh!;x`DT|pFoG(%9sasCWlM; zM+=W%f?svw_jm^Gqii#Lx1k%k4hbhur8uJyBnIJn8&Xa~EidfN%3&Pr{P+{>1PS?y z$`|Vj@Cn(R5v~C^HH}YJp4h_S&=rOXIC?KotsBO3erb&fja-#bdpiP$enm)#SFv~q z?`txbBu8N}BO36-!md^P>Z9rXuXXebp{=W#B4C)dQAbd&zYq1UO%%ZwdJ=oMKrO*# zEaZCs|Fa2*JFmrWD!AJ$+if1R*ok+!)F9nhhAKw%qt6)Pr7oTZ*Ra-TBlEpn7GL>g zHZVT!_THfIBJ4=6ljlM|_)~${nORO5ra+<(N96XunAa62L7kj2zEyU>3d`_iG{?<% z8l@h7Juk%0X_o8asG@b}s|*s1&2Ti^E(x6VN8iTUr?kNun5xnGOF zs$+cs+_~}ruL|f;0HC0t00=NJP^cf56(FD}s4u|4kc6DL+=3Hk=K9;%3GABT?$UZHjjcLV|moG$8$F2T3WCm{QLl*oN*_7o16YNZ{8i&EVe8kY4)ha5C&WP zvncAbD8Ep0eX{>}0^KAyNs-!Ex-gC@PpJn8dPvbW5p~UzYHhHyUA|XFi(9_9WK6jl zmCEnd#taX-kNT8)Oo9Pj&?!A0+hfd>m~cbqx~s!IlzG_)e3lV}bh=}Fl?!=7EwtS4 zk+wzf&Er!wc!WM?gETI?r>f^~hKS9$duEt_x-di@%)r=GeRU}*JMcyJhZh&%H#l1G zciq+Y_7uz1;l>I-rRn^R(G9<|Jm!Htnrb1W)eYNJq^<1zL#POfS2zAcP1yVsdY9i zh|06F_ln#x%6N)1IRSoUFVX%LE-J5=Uqk-x2fYV? zc4dzTUX_bY|MUlTlim50Di_)e+xKk+*HNBC(v|lt$5%H#S`(q2IJ0~i9nCVsjqIYE z^LW`#Hevt$;4G$=RFFOWlP~oNsLPMw>JknPQ4-9|%eR}}Uwq{cr|2iArqR2V*G6KS z4lHQ%kwOBxrm@hhq$?i)(bJL&vAI;gJhE_pfxh9gzN+~Nx|(_A2iIer>mnf4P-aL3#FM?eu;eR{Hem*DP5b$FniSXJ*|WA;JI{A(itDL z5IUa@^;g~35xTTWJhEbiU1ywx`DA0O&Rh|N$0V0Kuf4g57Ve)zd}<*;>ePZe8Uk_x zf=7dvS6HC8PJEq}w;`|1LjTeU2^;;DGk5^FHuKog>VlKNw9`Wz?Y#DM|Eh}}hntoF zdOyQpgTui-ZO0Iy1-FC(Er{$#d;_GB`>1J<+7;r#n$~!?zWuS8OviF2F)0l*XT$7o~=^J_=>D`$V3&dH!xBejAfV=;Bvtci*-82T{OLNf^F`O%N7UPwOBThiQk>WFnthGHR) zA`DGo&%q5FvRDl|G^TE}8ryY62~x9+_va-%rNj70q$PptiZZ2>7|CKrZNb*DmA4UN zAI{?@HT5wg?q@uiYj?x?JS<(<5(wMfCOCcF_b~*YdJEf2Yhmy1uNUtjI;POf4-j=R zzOMevZ{Pk&Smp?AwHq-%8gP17}zLp2F5goiC=vdoApev$bIdQ(|V%AH} z^nEGtg)m&RQVV_mJ4r}BWsUmvdrCCK{+}v&2`Go8^`ryWY97knq*;N#IHVGt5y*T zZC5o@pV52e2@N0(nrUcih8%FGyX0jEx=XHw-bHWEt9Z~dnOB3Q-d9%Z)I1sVsjaME zpE^{D*fxCt5LcUg*4XxX!a;+~K>+6?Vr|Lv5h-x3Y5`;L^lo8PK5oYKn2nQ2{K=;? zu!-uZc{>;VR`<@?3+gW1VZshS+F`B=k&H73#$oXdo=G#frwAf;tW(V{`~&YDUw_Kj zeGQMj`;i*sJifNhZ1ysFH769Hizk&PW+iYCY0i>>Ke%=vkGQ|?-Pa?&f!x*oc;#eUhk&Z{EwQJakc*dgxMrJrSS~Ir$VlF%Ve8H|~Iqg{dTneUf zJ@K$iMhWkDW!_qQm86we68vx z?b<=kewYb+-4ITkJ)F$ir_xbBVttk>I2nrQw#;}gdA%DZU11|xeQw!&il9l3bpo`P z+X$@M-<-`{Sa?PsvV?Lse5hjZ0#5awuV4++(xahd+2P4P{LRmD4$%IdB_q_ zyLmzRwgcJ=?t?PaK4zrsOY@aW)X9$JNp@sGgch8Mt@%us)^iI5>(;gT8ipeaulB$t#920@bzL$bW^eDo#We zyal#uuTAV3PLqQa)&4&u|I;u3-;{v}s6201kF-gyo~w#`%VCTV#r*q-AA0Jui@94H z54PM~y$JeupBB@!Xu@~iqLy#I*3-ki`C7i#8S^XHZt@NHJ%f*owbf1w3*yIPwJn~T zIbxs-#w`CDVvxnG@7-l8ep?iNdch=?G;_8c!EJ?ls%$*Jln7U|KzQHKGP8ZR=MApr z{n%uO#pteOv5TsVJbH$cqpRoQ_gTYyBU;V$CIN2{It~AQa&1Zq$kR< zmKgnZd^826U_MR2{$}YSuK5nw!iYGTK$d+-@Y5&U2_;8PH}IqvUPi`2*keS;HgZ^BE~LH zSDiTS1E5Mf*UT>3vG`zZR}PAJmnST0ps#+MwFHBF2m;yzAsHlAI?{k!iM7hTWNI5v zVOb=%I=#9rrInQ!r~!D@7BZrH4<@kFSSy4R{^)7Q`(qL`B^#pF%5 zd4N~~*t7QcgWJh$8hUn)Y=~pMPj0GM7F+Jm;JnB(!?9BdolJ6986;BxVFT;RmHHL3 z=IG~zi{7FiROd=iXK>J^V-*Dm=`ISBOoBP)&QW~Lnve&Kts;sO3#<*2DZXgfx4VnN z$xxXm4PeQBZn^dhf2F?V)WceO6Kmxp?HX1mvOcbE%|?ffT=6+vrARKP7xyajSwM%K zrBb}xYSneUHTHSB;|)ey1a@FD(i{3Jwi|9{xXoVo-WWrZzQKx0SkKuo4Mm-KlVm^X zH&g_`jd~%>i1hNs2c{R1;gbW8V@TeRJFU=A zQP=b|pq7~54eNeeUzX$zr$(n&^Je0E1UYgYo`ZwjINTlFIvZbpsL|GHi3Cyn91{r6 zCaAA%(`Y(O5W=as(&>M#dHd!YNNc~gr}1avZ{zmC?#10F=^h+L5wBvhV<;)yi%EMaiv!oglQ3+;{Imo5b8PUG{kX*CO4$)j z@-W`l)C?HzAfRI#mh-{fBXx#}W^HU6CP7H}z9y4BCAqS8 znoJkI*v`?{d=R^YA;}5B6brw-%xWse$u^k!j;33=QUF+fH`{AkNn+Rj?-gfA_ zr3L&H0_L}@IR`vJ3sIvj<63Z9ZE-%cQ`te4-FR>eo^y~w8TEzW@KO8vmfFN-jfl|D zE1qZ7W@(Wh-nK-4OuPTgl4RoFKZ~}XufBQBIoW&QSmrz~ZQFApLm0L;SV*EyFi?`P zd9<6AeD(lHj}+f^@!#>>qYn|AmMmz~rXj!!Nj`6Wi$4TE@XPeNe7N?3& zX-qt%6VD*FDEKuxW-QjFJdoYvV_VV5#^>6^#u6ArumbM;(NZY5#Z^+VwX8KvSf@Fh zG0el_X?Wr#0H90#f*tD9tc%wPaB^zYY#NI>u_ivQ7spbp4U+~;UJ2=rY_JraXhPV- z{Ge8c(xi6QbLwuA5Lv4Z^*nnG=Pjp{TJby8*LpUS#+-oFgY!>7Wz(rCP|4KDwTOGK zf{@?ja{Tf}cw&YDiyN1PPNEs*UL|J{8hDCOu=VqaD`fx7*E5!~M6_lha~N@4Lvbl~ zr4i#vc3bi%%2(l1Ws#_lw+{Dx!4}gRvSk4AUhcU)h&SZO69)4_HWe?$twPY^A?YPUgc0*1!Y& z#VG;U)#ZhLaM~e1c`$*2u2anPo1_kU4=^cB4~+&}wfh64Tiv<5rhwf_J~Wqlgy4jk zj)pJw+1-|WxGUumC_7Y7pg;_J=XSUB}?f)pzecTl`yl`px0y1 z;)*3Ysyh{nn)8*y>wQ+_|4c!J%E`Xl{#X%^p_W_U?Ii2<3~Imh0iX{O{!(ZkaQ_|+ zZEjLb%O|-ZPmplQ{$gf-CLe+MAPGF-uz+erjCISt=?w)?zTmYJuym7O^t2{KsY+RH!tLB2~2Kg>3)vg8N$Ut%e6@BG_l`KKWKru!*EF$eDb z0pL7_MAkrXpjuoBy_g%S6#P{O)QNd>rng>&-E$p}Km*Ceq8m&dnJsW;^E#P#-2U)u zR=hl7fJC*brsl#uER>vsI6-bMjR&Z#1!sv&u&5MX>M$~^IcW8sLW?l|SHpU3@F@1w zuT%pvZ$_qc$xHw|?_LWc_7n+36aSoN_K^&Z2qcWDu%AIP~k z%(HqCinmZQ$}FlEuCLNq7q0I7G$?MZENE`#E0cyMGF?>whxqjpO;Oc+I8RIc%Nsp6 zg02I1Cr7puM16A>qYpJ-cC(0uc?U+T$O)IcUo2ZHN_(K|iBb{RoGar+!HY1G4>=>| z7{ar|K>Dw)TA+AjZ^UR6wBcnp2n0;{Y7lR&eEdq4gh3!yA|~GJWQ|}w8TIOdjHfl1 zu3md8XQ3*S?NLpN8xebP9A{!l1T@r%@n zXzbDtxCUlCZ3dMI=|&9nWM#=>7cT^`4XyfIJpzm(LspHoH0@RrMQ`=TO+qKH+@s7Q zK!qyoDY9u*qK4mGzg4XPY}$QrNeD#OFvQ}mt74&?^9#4u0Rfy7Z{n_xGNjrQV%)X0 z%z}08ONPS!d5`wH?b?3^MAMP|W*W`=-{=4Rzeu&XyzVbqD6Qd6)65xj@jh7Gd%gN{ zzp^2~4+2dn%`G2IYwYMPSKT3Nx9Em}l#k0dP8SLUfz(-;uGEPsx(@GpFKm8g44Y|G zsZJX&^(4Ccrvb?%2fcr}kQBp>Z`RM(@h=JVUx?$xmY{sfL)jWwUY@z-+y^#y6Gvr( zRi=h})M!vEJ_#I;z`$luDIC>mk+eG3ZJCl2N#Pb+9pQT2k%E;|;s>coK&E#20Em(~ z2?(I+a}2Tc_+Zciw%>^nf15E;%)CX8f?XzkIRp1T$4S9F%i33Rj+wPzjnb=Z0?$0E z#Ob97#|Zg7#wjq(Rc%Gd&&CKyZJuAmj4>cCsKIAp>?KkN2KNizC7JiK!GE;U5}Oi zK!b3n!Oa4WD&+Z`b?Klt7==siOFo58yX1|~5=a?oi8sI{o7|yev%?0lRV!R=;acVO zRMti^i-BYf7-3iihxQKf4fYP*n^#rZcLnafr$^S{6cU7Vb_Ht(=XfLToF=a}r(L$P zbpu4yv^I09rk5ciEDf6M7nV~jE6t4<<#INd{KBeXVYJ%v(x;|%1EkK)PS@3&?IaLs z_YhTc{g3%)J?3es5-+TEqSD*ovZ}axT@vUQeHz>`hT80>7D-z6W)gduSIiKL+IGZT z7{uK>0@)6moO6^$O)KKxHoe}B`!YPunak9@ImKeP@X<0Pea$pj#-v;|q2o zxAM(%0AKOSG4}%i`rGF&Ae!Q%ZiE`eCVzY>;G|Gsq6)hhnsOoe7FTZi{RerELWQg* z$pn9|t))Hq?1BYnTT1a=jfGtDv7*G@Ng6?aaq#!!3WsG1xl6k4nWRk;13}4R@G0(b z2TJsSo5>)-<=}5LS0}j?D4Ma;<788vgGh#|R9PYGg)1eXYOj0Zw2pR z4LPKZxBnGlsJPaJak!Q-C#n?t-1ZKmDOx=zdTeJBpNtYAmRg@Pt}d0uxLl|0x|YlY zfwzq8OZzOhSj2X{@ z^mkWNkKC}x1`togk0($cg_$*351YfShn;>fRwNJw)h_>lU9!D`PDgj&F1Q@Bp9-p3krBC687VbrPOT zX4_SvsK;umWV%Cp7b`slLF0hM^#CyD7fkZ%@hNO6BXb&rZ#LrrUIc;iQ<6;hFGD!2 znx56230=EU7&53(%8wI~7L&A9#icggf5A)*%rdeXH+y#_()x~bI=v-^#M;|_GNQ-K z%dHd!|;TbCVI?%)=oMFzz-pGqQA59-6zFf>^Sy%k21BD}g z9n{YAnGHi!ENwB4Ax8^8S2h_E>*a;gb`$f&7d2KrvLNy|cFrf%J2@J_h zP2J&9b@-xWh0H)Refj`U^ij@AtY@oP&(mohnFtuq=b~ssunDip*}yUl2?A?)0R@X2 z{QPU;Y>pOrZ8(QA3*>g=VW-8%PfKCuuA{BY*R$7|cTXiR6Sp8`$uPJNbesm8;#a|T zUKbD#`8%0CQCvyOS@LmjC+m*FFe}U5}{_UKtMvF-ZYv)%+^RBoZgy^VlOZZT2+$5U# z!ZcIAZWoHp*Om`};~fpQu8D5CiX#{}F%}4`Dk>;Dk%Q!BX7$y@D6`c^@S>|LAGb|m(~YBzjAF#+r$&ZfXz=jE<6_Y`S!+S zIT7&e3>CTp`>$6Cva6> zkGr7!VpybgLg8aB*-?JGnceLyL3n1mey6*6)D79M0j5PDtZ8aJlN^)8=d+aY1iC;e zD9p5;R+Tf1V-mSW@FVunej_O!9zW+&a&E^cwPLg{Nf+U=L84c=Uwl$nR))zQ=sTdw zAWzV!l^E0n|A@ZC+`s*?s+Uj9(;5l^puoZ<~kHN5;<;(Y(D@b9jl=PyPa&j_GgUp z9ozie4JJQ+PzC?ok(iq}ugA@IN@Mbd9aHr4DBU)0{>`mVxFplu z3!SN4&yuUeOv@Cpvq=L>x@ViVwI%FD(MVMdwdt;={U7m1XP>hZ&gKk{ucsA+(CSYb zhxvawOO30TAw91sarD2_Vk4bp;j%12v~Q9g#WC^g(#DLzQb;V!2@5xrMr1FF+Lqq} zvx#Jm1odjOsKXTAO6>G4k%Y^BVjK@+4j*BI{$<=8hkKUfGaFL1SC`JL3s$Qsd-UJ=(?#r5D0KH+$f@3>mS zcDhUl{zHT|%~*J_yP&T7k_j)hc-c;GP6@X~4yuG&PGnPGo-2iUMvf6}j%jf^>@XZ1 zB!_8<$V}8i`X)tvH#EJuvHh;#u!jlV4v)t~VE+y4&LsUxnz>G{jZJJP+}Z|QQZRgQ z*r11#J=Y0jMC!unrNjphi<*!JfEt0iUM{_TP81s->`D`pl<!)M@U7)cW7i$lO_d`jd2@b$`(x&YysLF#{L*P&#$@4Sc%FEr*aR%5kWkkD9a&ZrFoaHe5XM-3jkxNslGKP)I3*H!6 ze#pk21C1S(iA8n(`|k_-UZotsqwi3kt&3DK8BYy*ISn@ssV;ZmkD5V$Vg*gj*UmwH= zAEgc%gJ{(SkHo1pFcIyz_W|smuS!e^@bavxZGAMVMQImm2~3Ubnh$Zg5XY^Y>=~nZ zyE+&G#KqeuB5RrQDzccVE&1Q_uNC|P*(tRt=w1(i{7S=wmMMdX23FtAnO0{O`0%<0SYyTAMBoty zJ9}Ryd=kgirYJxkb81RM`?W`v{Kb9x4`#)oh%}p@ub;i|0C>ebE~a~$D&sZQ|63m3 zV!s{lemmzW!zo)FXndF`Ju7PZe*$QE0L-=lU%jJ82EK6$3JC)K_-FmVzwm$jKNS?< z%hB@s_ECq(dapBwUmOuvwDLc*d$siIAF1$>JOGxdDz!H$>)+#YQG0k?!A3CcO|R?K&aSr=dV2Y2*Li>U;_SB*~~q#8)y1kNH$Jkfnk$wa;+5RtYq zWlIfvE6;FQFtdj`*9yJrbL0A?=(F1UM5Ft3s$>!>g_;@IJ`Kr6A^sP#LkK0bJ^Ccx zy<>)kFRt<%ctJTxR2IH4eu5Jp?Y<*>Hh z?Y_;wnshT9!MIsk4yA-sn^CJjR+)+|a$cxbw71(#Cl56MRkqB|Yhc?avv7cwvm>8l zYy&rSMKRUFF-+F}k0|dBG;wI<4jtUkOZAngp`h}763>uHnY3r3hS9spD1m~=ZQ3FX zJM9oy6xrwOA}JIUpE?88Zc(7#-=#B=SGp&AE$Y8EUuFn9*ikNHzT1tXDaSCD*6d)t z^G_b;(zoj5h`-m3gGD9$(6Zr1Qftzaf#@Zv=*&n2jT=3$jMg1)b`U#`hXBt~08RwRHH{z{$C9bqK%%UBNz4g@7_zT!McPQNqX>;o z$;w$Ig&eG5#zaV;95L`3Gft~uDK-ncx>{Xf-BGC44RSycH^#rAUb1-BJ%o-`Lb5-# zN$Wg&cJzx8f>I>zTdF+ybk~ zAR!6}h=Pa`{tm{yukZW%-uu=4{@?Szd(Sg_YR#HiGqYyxy=T@yqOl&&Y8oh36&kMx z-`g7FV9Vj0NI1EtP30JCc%9nuhD}hVK9fGK(rWSj&@8&~D3^`3j3e|aeVp}Brbpl! z7i+*a=cw0BR=(* zei;#mB-_cU0!lVDACmZDI%<%|q{gESGkY9nRCi+YM{rLI})SkCzBvLPZ^IA$xf z3wWY)jdn(Q9F7ZV{B-tErKLb#P;pW{yDpgcM1j;wFQ6+PtCji5g9|KMyMAI2C4B8H zw{w0G@s0e_>YSgyw7$Cj%6c%5tN*Y(_6y*I@4nCLe}PH!vZ;_Z-g$25TR(lj^27B% zco6e2!QoT*-EG-}TW=2#JI7yi_I3tD-2DQ;KfjaUE~mXz-;{f?-p<2 zSw8DMmHM@;=Sh{HsQzY=-@6NAX<)7u`fcJLVD$9q8V~Z~t`E-m|EYB&oRPKU>4&nu z@YFY70KsR7W%mltxEndD3A`O{x@z~GJ(Togtf)BSW;sbr&fd`i_6a^HfN95-2Y)P` z%WHEA3M5rQY`q=|3f5oWowYU z+?=v{ZQv-c;CEJdi}j{}Ml;TnGSb$XijoWg$I|ogPoGjlr{-^^0Gn&O>e1S`PbR$? z<%$Yb_yu^DB(cl(*~XZ(3d`j<4347b?(`@>eh(nSRmf;s3YSVJPxXFJdE(e>{;@RJ zs+6HPvVrguV_Z}VR=Nm>tHG-NAbVJ0z$Z$L@#<$St!k6rR<+dX>}fGW)*pcHwrG;4 zHJnX78W-pw@Y}`v>I&g^YN!%Y(!5k%C=M11Boy(8aBez?v0OaSXXU~O@9icISWr}) zu>yf{tTW++?HswL@#REwkIRTX!DCjeJ#HRcWl^lODy@<1GTb%!{YM8e69-Fzg!{u< zP|%bXXp|)``yrT($*pL~z+IwGo5sN5Wprq}zo-B8XhO{TqFY}8Xo2k+V}a}0x5V<* zz(T5O8Sj-MZh@+!E5Zuzpb|skLq((mjlE8<&`0ELL*KG+2IJy-zRW-+?==`pE4q4|n6rk1>?|x0Go4CA4zr7lgfZOj?xfpf zP_lWX3N#qr9oU*TO)s{kpIA}8<5QTOI2H zl|JFd`{m(4rmIIxO5B+^Sn5N&mKxaE#c*uv>~%{Y^a+icqug%E)B`F{$1SVG9^!j7 z))Y~ip(OdbZ2oKMdK`W!qHH%JQ>nzr*rdpmf^Vl>Ll;r^ToU#uH9D97?( z7Xw!q-%oXv?JE*{K+lPlK-PTj@&+Xh#JIc$0+kX1Dk6;Uy(sRhwqS>qC5~27D(n+Z zc$Dojwdi9ib)uhK@E-VFW5}ANHq{n^`%u&sd8;cnHdXdzw*%M+1l56VG5OEB;ijA% zP;|BTUjY8Bacc1Mkk2Dt>dZks%Ay~srjtO&uV@@wT(x~T0>(}15-_RK#QW~G)o2>^ z8(hs=cvvajG+!&pou?>RiJ~20T;FYNlFrm14oME!RmQsZts=O4Zl}_tw@DuyC-^yu zvkRU@&TNis8C2jjL{q#f$a-0DcgL-S@vSL@pcZL4Ct1Vl>@d~MP$e>I_!I@Jc+eT{^( z&zcbf?{00RNuxe`6zQ-Fp(7wPALw`x%Y0qK!Xr0{6HIi#YaTWgSnaUp(_@`JT)?td zxINVmkMhY6ZMfG^(I6PC-(9K+DFrbT(0{sMVexe{I6?O5e&%In*dIDk(FCX)r#j+{ zve*N*y=;x=x=wy=g0vpg%d5miK-NU1$~-}*nX(F9PPA6j!C6o~okNYYwyt6mq`UEE zG}?Y;Btp7Pe&U)8q76t!NI~lT+3CB{@+nIDj4Re~$x-r=jOz8u%YI52oC+D}j*H>l z^0L#<9(0_X%Z6N$yppIzrMLT$NhMgROn7DzAjpj=d0S8e7o3+>AIeFU1Jxal zL&jEL?XqWcD`Z74!{v zUFV%I*Kmx=D{LUHzUk=NO!YFnkI2JuQoz&O0DeOTEuL3^n(D0*o*rcrU0nsU72h)c z8k9_VB-p0>BvngT;WlU7%SdL3Hck7SiXxYx@9SZ@a1Aty^PwQ|0z61qKU@4}2l^xh z%~eMeEmwI$>}pzk>Avn8uxy&T_??%c;7v?NNJbmGB!O}4?g6i(blWut4pQ@kAjD?t z#nbc{y5MiDb%l13S+;~3>O?kX9hZsM_e6{wPq5F})q&pnUg0*87bJ9TN$)15k8Evg zL#^7={AMlSliT!@g&Kvzl|1$G#gi#nI^q3rU=cLr?Vk#H1VnhOBr!rorC1^(skw5 z`abt@NiR`|X#L#*6q%R$hs;be{Ws{(sy`(N4xpAiHEs8;@mU zI%)pa?@l(qGP}2b<7ZzPqr~6(>V*w*u!$E_th*!V zwBw^qvu|uXEFw&hQ&*3+60}%5e8q6Rc{|g5%2M}sK&Uw~^7DmFOPxB(8lN=u>W1YE z{*dPD$oO2$s0u~IHKN%^Hd1f_jj;&ljY3WPv9bK+0@B&9obbeG7I|sd>`sz6Ph+hF zEWZ1iVze@tyjFawad4TuE||5K&r5L2V@&i)g=(U9SQZwoVYk>;L5`HxAy6cG9*4wI zsL*z`r(K$ok!P02Hb0Ld@s{en47IwCuHP|CibK4^3`a~=jQ3_H*S=MyL*lCWSK&q* z`n?#YQDmWIB+`^loS&Q6)hFs6v85yy1H%PRsuV*`L1pL52G7aJDVPVl$tSIr<*G)v zu7G!JuWQ0I}#431Nk&s&KztsY`4;*Z6CU|W;hoKBL=zk#pB zs_x2|N=$U0DF?GekPvHHtXG}Ttf5)PiXx90=7@&sp3S zX7gFYyuLQ$1=U_3svhdq9Ns>XQLRYrB5>@gZ6|CxR*Whe__j8cJSm z8wJ-l)joC4my{Q*t4?LaR!EYFv@n{ViA);2>f$N--ka=62_H|&iM4Z}AYRZ%)y9qfxY8p#!&`>j#Pa|a%^`1P)bZ<`Vn*1neh+9pqfg}_f zCxbmqrCwJ-6XET@sH=`U1`8wBJ2Btji+xRyaG-JY(rZpeT~mE|bInVTcG;iFvnfn6 z0MA_!e0X4S%vJq$T6tf-tErwMQH}FSE{_QsR&p|vt9QG{;`RF&NUnf_{Z2j0!k}`$ zr4ir2ElTBU^+l8l$)Hip`cFiZ`Xp{;OwNm%G}b#7D32etzj>o~)sQzhjF^6nO3ABd zoWRUMS#o+d=oSLEx-b7^5xCEb+?9simO#EH*4<>>nos?BO+h`Y+C<%4g3EvaJz`I< ziueFGVD*Di&wS(4dvu(K^Ymz60M@NvMKE9HC0mXM_parf=F?V_im2&>AQElaqbaQD z6S|{9p$d^MQKKtd%K2KL)nuof!RO<`^Br0n{wm~@*0XVLyv2%bWjDrRbUY3dJr%k@ zCiyJ|P@+u8Q}=R}Qx>r}K3?0?)py&6M|{v%1nfRClZ|32CP}4%D&gB`e#OQ z)LUxvQKl0g*){6O=Ju}8cdQ9DXPq9m>2wa?0_!j# z`pd7R)WO6aQ8PubOdN&z+0hC-4Ut-NhN*^Wai=Hgt}{XjBt?|dx3hd-JtTW)MHeRG z3M^*h(87N6_4Vyc9P5HHo@DI@j;taCPfRIc-9J~$s(9-TOVnOC%!j_EA~pflkOK&@r@2*hVFDw=#l%2C2gO{S zkTvE2hw|%|aJ)igQq8RT5hbBMwC}8kY&DS}Vb)?sds0eN7 z0fRQLmzC&su9R7aRe^U}&RI}u?M0tp=`Ai!`IgCLpsi;1b#t*9T9oA@KKn6meazLGvjj5u!2R_gTM7|8w=A()m70xl zNN70u*nFcSgGi6aF|_{}l(O8~;z@s0B5tZr3Wl&Ws&HG**UE#_L}`ch%EeeJO82Vm z`4zyW?ky?+lVw3$rrI{K^9bLof=ZxNvh3&~{xTB-gDgo$6>yFgKTd0-EPs{&i(0O= zaKRzxw}G|&odCWb--mxr#kU#YpypMLOS#AT2;8$Z(?Ff&X?e>nAd#-zXeADwQLkDi zKWQn9;5y4axSa`Dx}U<)d^K@ex`0tT%$DdtF74J-ET|EeJJ~5rk3DQl!KGzQ5EPHD zLm<|z+#7&y&Sa9D$bYCeXUMicbN~7{QvojuCr3WzOIn2%E!$QrW|kwcS$Ui<8lyv9 z+MM3D(mKf#PqJ|i)*sw}Kb1p!XH!YiC?f$}=KcuWLqu!rZ&e0GGR(?1yAlU!>;SuS zR^~X7z*tJf7_7R%sKPv>!%EdLU0R(&bhf<$3M~S|b{|@yR9(rGs0Ch*%z=t-tbYJ!v+muv6gHK4b3DJwk$x$ zRP9g7wQiJk}lk+H3h77A{dtTMFO%nxwD423r%b zkR?SufDOGjt%R66*g&=J2tr24+?_1)rmOw?fIVpA92=)%R6QNrouT(wD!5pDq< zV1;%4KEbd3+K&MIFU$sL+y`g^XoN#ki+tY){yO!~Fg9+gZ#{Y`e4&R@d*1~1YQ zqPH&>O#QCQ{!_5u(3OmNkLbE;+s*QwJAXY#7W1FM`vdmd^Y8Y*7QE5UI*Bln+#6~CwU z4^%)_{1Pw!Fh79cukaG~{2I0=j78`#V3Bkcehu687l2=*kbe!kZ4VqyT(G59?ZsdI zIiL8OE2vkVOZ^4x*YubGls_EtjPe96MZ&a${~y8rdAWm;7D*uM;P(qy=9=Dl?%O@ThW$$CUjSn= z1j_+_O)LH`piLmZbu2|!Aj6;cufKqO7X_>v!p&CzCZcfvDf+*F{i`y6&Fe2&-=(yznkU%#Ebinv;TLBe^cOpjRHRuKqK@& zBaSz{T#bKuArT5N>RHL_9suRW`Q3vU@@v zRgEXDk`rT2)O`afUf%NdiW5cr0*}M)ee@I6@}!2PZzn*r?$8X7SGoJnk{9*4)2I^u zS1t0Q{%v;(g5vV>s;4c}EvP`Y2W^dyWpGL!c=ROT9G((fV^=vay}Rzv8?Xvi79&g6 zeh~0k1Y3A_WMT|_Zy;Aj>A5`T>-+XswC6PvTGw<@r3uVB9qZY02|x<^SHx;xkKmlCyFxS)U2vUp|zWG?g)% znC4=vc_RP8L+O5Q1XAA7;of@-S^jd!#{2=DmEKh8*t3c^USV0jwsUTj>c^xt?D&Q9|7M$}kuQLt}A9cNWb2yUcXb=f=#CJxXexQ%P2GEJY!$%9x2 ztMtOm;$47k6}e8r?v}JT>DbP3i#LsQ$c9kjO9_0%MEi~BUtxQf+<+ercU`xv7@vjv zpJJOSTbDd|e#Ao{8xVps`dF)MRv)&4*j+eplQtp6x%Nu!k>mSh|~ z!%u$}zT#|pq5XI?%a^ppB(*u)z0o(-!*J78$W`DH_<`m*brl)=BNrZ((s9G0u{T{g zcA(56PT{Yy_n(Zns>@_hiEZCgiqS))M=$%O9&JnoEClrf5x>ZO(ue+2<=8b5B^`a3ThvMHgsCrpF&loUO(@C{a(ZqvDL5uV(N{Spjt`S`RMc$y*`d! zISVr)`@{JPE-o&f4_`^Ly>ld)arHy-4~>%-uOp`;z&94c}> zd(Znx1TtSEzEdiR*vL~e^XvG_~MvR7<)837W)&Jxyy7+O(d{^riK$=d>MF8Cc;S*As^&P}1(ZQh`=Z^>a4uzeE zU!LFHP`N+XNB!{es2R0~r!CJGYiY-nFY`EE3_px@tN&bzA}m4PX>2k zM@aMceI?w*YgYnGsrhj5_IdRg#}T{6?k6lLn9AYKlT6$@*LDP}i=`u&8d^zHj}C*Q zUmp91jq8X)4o9QX&n~bZjf^)vdDCg^Nyd&y#b=qOCRu#~{oHrnA>rrmhp*%x?f)rZ z_Zfx^96WgKI<*l6TYFb#()jk|z&XjM!|Ef8tCLCf&niwORT~FtHg`#;Jyo&A^?Kq- z+~C6M+fNra<~%;q#NmiNPuj?Z5XVn=u;wJ-7$te!4;eD-JdI+yapp{`gAycB+jgj-{8d~+fz(_i%G za?P6$A78EONZqZr_4}`R9NX{}U^MKnGibyv&Q2+P23{6cJ0eQ8^=8P}Xwj+BX3pbJ z&n)=Pgz*&VdK052a&MFjR=E3n+X*Y82<%GuvJ)vkxUq4-&T>c}Qt*8Cz1UUhtavz8 zq@8pGqxTFVPhcl1Q;i0l{fWh!3oJHJ{|tR;y5f30)}vQgGd`~sOS&bikNo|FwG6-h z2vSgMz5FK>s!>jvU^Qr=Uv<1K8aicff%%CJ3qti=C%N)##==8n# zSN@A>K(F+n1_^>vM`QdTkN zc|efeXAT*7j@s9v*eej9U6xh#K?}vK9^2rMQW@nTYB{qt)Iw^jh!;Ch^OA{hD=slui!kv|Pu=(_&}%%ON$HYK3Oq)6 z6PtGa*Nw=`^vz0;F0tC3Q{Jk4=c_Yw-WRrgcASHL*=94fIn~SYZ)S(S{>k{&d$ruc z?aP{fEq(M~2pL6)LCE_e!OB4@@mE>>EnM!N8Tt45fftDQb%cbBhJtpvP51Io5E1~f zQ`br_fBfJbP`=jEJt(Q0K~DGQow`88jusZo@_^Uey#2KqYhHx@{1-}lWrYj-nKbqh zWmRZylzC$edM27-%mfw*Zrp}?ck1GV*D4JCW*AezN+2rTo0c~-x?a{m@#X@<9EZ6M z7CnMRR7hLPZ%~F^PoZ$IE<1&v4LFKjmyA4(jLb@ysfY~pGw((xF#@=^MpAOP#cw2^ z(ZZAgXpp{kzgViK`>D4pji@0(svXV9M5|WU0(;16u_tzPyYe1}Ue$0V)8?LNt*r@0 zB@qg(J5VbfM^eTf)3KM?r8h_cBDongTMLB%CbG)ktQp#u2NWK20yoHCBeg1y=#}pd zY+BsqHnemoVc6P0b=BlvsAGS)sCZ5+Q)eU>7N|}6<5U*ka{hGbV8mzqm#T1F0P*|lIbOVHGL_!4~HYT8?1rrjE6Mg`%FpEV3 z)|cgOYQd9qJwY}4gp+w#PDUP22-0|!Gh zUaWxWRy}kF<+dKpu^~J2J?VTD(xzL;*BrQ4RXGPwiD(EFPmVlReYak4J9a$O`DjtWuHIVxubpFZFLWUnJRJ$#18@##pTUqu(VVJk(Uv0vA1)y;KNO9UaJg(*_F;X3(shmdzAIhT{G zh#0=3tWlnUw&j&<9;rk=p20Ch%R_fHv``J!g~RfFUo>*vEHNc}27(|C-V&JKkql#K zMgLq79-hVd+SVGRk|-M1z*ojox4a)N0PXhRzqJ;bb&&Gt5UZ3wjTt z(H@F5n`_oAWYldeQu-W*Y*Z$nVvt`i-?+gWk))>wUW{Ze4^+uXf<)0$MU_UqTaE;p0m_AO%ouhf*k&9D zU`Pn%cN7UYO>**bBIqe(St{eS_uqH9OdjBG{KvA;cBprw^mT1gR=4tus8bBZ^Z+&?nV`A~M9!07ndxGq^|#-x?qjBFSj7u( zxb`gR07mkpQO;rsh`!waPNQ+z;=sLK0||nA`j9|Qqg;Y1a3T_t9%o&KDF#52N6X`( zWi>sy zoW#~rD#XYNE9-$41D|KjL}oP+KL)>>MOg9LC{cgYL|XHs7%61`f8Re-0OAkxH~*(@ zB7b7UCeTzQQ;c>wa&Z1iT)>)Ewy5)bdfA{k-rXG^-%_$MD#WRIAGIxWYtMdXLXAt% z&u_VD=zE`vz4spYy+JO{nk?Cvu0bf_kQu&3{ppI$pBq9ro)-OVIdVB3H1m8Bez)h3 zS^YM|-MH0aNE_`Vbt)&`rvl_MG%CsNj4uGTr)lSo4~sVPg2uDu9A`E>qMx;d4qH;?LGLOb$noYR)VkDmpKMR^n%1<~Ui=l4j# zDLYk_6NmoigL)|DrGRMAX)v?-#)aZGc+5U3gA320^61Wn;z#-bjg&I)vi*1B^cet4 z6#GPixvQ4plZ8ku*SpWdJ1|f}@t-upkom->5X)q_ zLh|#c7H>Lab%S#3qL}6rE1%bhW6<%|5&_66R9b(R{u$xqOmE*QIdGXCUS;dpH(2Y)?mEVK1OrCZES4q)`K1DZFueK0Hy0hS^_5 zQUL@mq(CEteZr?habz(Iln&wGt!GciECL(|Xg_3JJUX@~E}br1!7N686&uY1AmLnX zn9-N4p(;}{vvA_=;Q^le^Z|ryAUj)qb-^iAT5AGS)Zn6Cb`zv5TR`3YIR<{mG3l)o zGOcj*(8ha}67CpfF{l8rJ)xq=t}TYWqpnKQ?#P{2l!1>T7t->Bvd$ba0{b#%s>QiL zXl1thS>L`)bh?NYL zF~FUC`s*V5cyey|9oVUDVjuftD%LrtA9Gte<$$%~xO}Z}vCWidXjYKB4LI#n)eDHN z$0gDO`RKiDl4|%`-#@UdegV&Smjxws3u71tgy!^)Ki91s2j|D7VkkMg@aav4*P5y8 z3FhUAmjg{pb<0Were9;UtG`;4&%BXNu5B-QbO|z*ETwW#)-}Js^(L*eQk5Ko16p--@7e zII|NeIOuM#;UTw84l7F4_|@)?M*9XYQU%zycLS@r#cg}x0%i4>dXJ^kr)n%=fgFx& zwzD;F?xur2vhPBbBAoyLVQi+-JViZ;fCm{UfqNPT&8<8kVs9HPQw5iGbpxO{J9oCB zd1zkJJ)oe%IT9SwMD@H#qJCWkwe$P~rNa#mAAa zw&5IjoM^T}Fs1GqMrvK;We_LeFc3@Ls;D-$tH_{YG7X_+ie8H>v>ak%5^p=hA36tN z(>&j>#{3+Pn=i+^ilfuqWn_kRqnIX09+#QSp+}|=V8Rk+Kr5i<9y`ujmaj5pN*u@) z8=4^g4u3qgwMzF`a}TLK1B1I^^Ngsgw8r*>`4P(2Os1|TsL@}ey3bAtY{U@l_mZi; z@TjQxC0f_A9!vu-fybVp3xEzl)>p~Op9w8dNILf7<#W>vPcg}(C{mhP-}z9+G%Z&M zg$cekIv&~TD@C!?fITE9S;tbZD~}9ujKplNR?Y%&rgGHU90Gtwnc{se=*cH^ZGD7P zs+a@w3T4)2&T9?G3;>ilrv9uMlNhu3NA9O`AV*p-Ocu3~Hg=ZWv%<>_1c|^VSyaWe zZ=i2ny@44G7N;9neeF&$eOK|Zn{pbn+Kv=O=TfkhsS3O8GK^T0sz)AxF;7k3D{OFW`zgnvJY`d3rB-Gu z=%I)m9hj%L;}EW^>2#{HTqR{E!a+75sAIaDcrLdABpXwlM^Cm}-%&2O3IbdJf{~DC z;sAuyG*sG%1Jpm7Ex&bN)N9J%ffP+&Fa;Tg7@CHw=<6?^^-L&aq^$Sk=vSOu3nPq28Q1il(SUHkqrc@geXf8vJxu~)$d`F1DY?ZaMo7~ z0Fnrk+%#F@Ph=5koVM)hcAZSGb;Y$;bz%=$&g&ezTSSa4OjV6C@rvie=62nu1~%Kg zJ7K3UO6au-kB$e*MAV6+_B9Cl+GeeXCG`^QNh7yG$DD+p1*paxc)SzdEMgno)!#hQ zc&hQ-*UaawM!|~|y%jFJJr!9ej1%383Hb6gP3AspSMqttMc;h~y6-pr1y}Gh9{THZ zV;^8|=kC6WUAsVhqP#iE{Noa zyWsk7&;L(pu=oW~>D{ZCIu}Ry2YyUcyJO+T`LYJ&WRamQKLmBHZc)UQ096M?_xg?s!>BYI zgB0NV(WM2*dNuH-(QV=3)lQ!@p3E#pIqPYFoIwIrIC8$Zyl4K$P{k@_kgdX)d0DWv zQ&HgUQWO7xwPTad9;(N{D=fEkpQ5Pi9t0xv@dAp50>xKi1hA|<4W`kF&AigAPGLc& zZ}=f`9GSXZOY$a4({iFvjm)=af(H5_YSZ`1G&&dx__v{PF36jLdQl$8F2*1}lNu7) z=M=HQ(XjftCrv@EIM$Yw`4OSzpD2pK0kXR|%Z@HV0p52L6f*XdWcK<+x?stWeBQ3W z!m4;eQs3^etO-Dw!X}E3V;hB(eWPO@WW3MoMW;|0fN3SD5?15DJs$o5>(NK2)9qmy z`n;C(fudCaD^*<@n>hGkp%ZPJ)GH@w!wtYV`~!~QLjZu#%YmV=w&cjrx>{bY03XkE{sucA0@&INj=eQj9kSx46%%1);x?2 zTZG&-VDUCqG!jUGwB6xthL=~dw+O@HYDv{UVD|??$al{o?Yk;1%d89(DUi6mTJOZ! z#A({@z>VdVTW3#kv;kFN>|3(tF}R$}pe{7Wwi$^^#{FlM5d)48628H8twehJCR@PhIl&Bnl*_YZPF8rnLgdP zK(?R48^#V!QAq7gIH!}k?Y7n%flniDX;44Vre0ms>ua5nCO9MZIWm`8{l_w z*W_@lYN(oWyiGg6u|W+pW(8nuBWjGd$_U*nHvE}*KF`|nHCKcR8+0kuyu>-hC(0v} zqxZ8}ANCbD8{lSq=mG{e=#t~r)dk@*z{DQ7=oPm_hgWX00=Xz4RV1d`JbqnFM{^Af zttA3C=x=(r48hTnM~%3=Lx_4!$DaTjM>Q^*QUPJL5Qh3#0=vdQjzm4RMrSVJdRxOZ z;WJ;*?xUlZ3A;>OAq6fW`Wm*lRTRcESe5sTID9Z!r}c}FyohknJ9aQ9#Ck7uzSASE z1-|YHx#yxUoPn_?QE^q-j6@Z+<%54PWlBPQnVVj=Q9v>S!0t295qTblWLZ(Z;&_Tz} zI7ZB=t2E7&v=WM|fnTFrLD3X?z0FKA5HGq`9~GfK{bu2CAiUH;r1`^}I(bx{2VSDV zmHGB$t$;er>Ea~CTr2Nj9PBii@mvZ>kk)2Z6(?{VBuv_V_ngH0E2kln2l75Q(*`f9QvqCSXKF*+oI0eL#tPFgU9WP+^rkFpc*eF0={f8!Q9 z0YLIyz3PQ8fZ;A07AZk`f|74dOMlqLb1uPriZ#UQ?%c-^WI1&+iytoiMuDLSHAORp zcbr0Qje)Gq5;=5)O_?@`YTv?G*oc%A;?GL-5`@eYT$@J3`B?Bth(cr-H-@G0JdlGg zN6C{}1M+%-A1yAQs0^XY?vAN2$g{tud`>}kVP#7Zf(~Lz*{<6KqdJxWOoNM&=bUV6 z0D(M?8z7th1yCcBv@S!#d5(s z|0%bf5<}6;47Tw|@hNFClBc?&T^a88oo7I06rjO+R`JfRV$4ttPDWSOPUe=6ibz^9 z05sUu!9&E6ZjlP3*u1%3Mg~`c;aps(Rre)hLGaROAT?RE5QSU)0;sOf5=)&I+5-s1 zL9ws8O0csL8i`3(4y~FVLwUXEnMRc4jwDy6bMDzz_hZ`p0=QE5V)CABO#&nHE>T~K z5(!A2kPuZVWdZ%O!@X4$4MUTVA#ZZ@a5-|hurksc;!I2V;ATuTl2)TVzMUv8w9$np zBTomCAKG8jv&KZz)%W!WMbky0;Ucp!PQBunQz|4hy**X+qQEiV$r!IGU8ym9if_sV z&eNgDE4Yw{qMarLiRO9RA4G)*55sVQmai{i2Z3$xj^yc*r7(<1620GB&|P>626#G! z-gXjkfjR1ul>;aMG`%Zby=*2rG~+21Gr?}h9=zxv`l{`>HI{f*zy?<}DdGaOs^`zb{*U1NnGaG}3=^T(Vt zCs^2%r;RMc$3q{7b71qgIsfhTNKaoBav_kz**<^ zz)^7dqkv`t1LQzqu5;J#h1eoz2?%(73Cm1D9Lq6tcR%^5qz?DCRDI$5Xa8Df5*}8S z=;OF@=R!~Q&0O|0&-=y`KG*-{PF8#T8leXl-K2SfjSa$E7v}XYr(W4N7AqI;F54|0 zzY%@$$hhgeb@b8Rj7z8Mza#&HM8II1(s7YJyBs)oq`!}jVwtz9XdD#8#>cDuYC`YP zJ_{fdGVs_pcCC_!3N0EH$06TUBbBqXHK(awczZ)jX6&>6cWF)4Z?SrcL7!}U4{Nlq z80k%L94W5)Qj{(xCTOlGGd!yFjUTt;HoX4owN5OVKqY8g6(8_SWKo=-8&cUSu1bed zzFe@susVXV=#39H$0N;kNnrqHPZ?c3P>#pGc~?_NCLoVcKAkoB ziDzCq$(Cd_n&oOPbw!F@wD77jTAPt27av$GgLJuM(mDm2Nf#P?#uXC?z^FZX@LirtDAEJo~@t2$qz|`NlSV*?JeZ3xk_Ke`j3VrKfj9M(BRTI?AjB zuiA6zA{(n`9cN}gVbCMPU^cbN*HCLzTlFiN@(6nC+Kd;;gM0{ytx$dhcIiZw3GUko z(j`_b;91Wg;3-mwZCYoRz-*b&trE4XU{QQ)7|3%qkZ59HQj-`S7_@s%!6MG7)?i9% zTlMO>gHjnbEjDtpX=cy}{3DL6L{9gQ38uJUZ;OAk&5eeoyj1BCrA9%8FhCLoYP!5r z&`NBEj2oPXq=9KQ;hA4kfrPp0YSuyt9yTaPLO-FZ6tV%gHf4}FCRN{l_{O|GAqct*RCQ8xDKh(Fp2rdtSwI}H;q$d3Vnm(=GOyD z*Cv$5+f+P>=314o4@o<)#~bg5!)C&t4`E z)Ff>Nq*b=n1<(}atVJQyKK(cqpFK@L~k_4CtV{qfc zJ4|i^%gYS6Z)F8$g(l_AD#uqf21R=d!(j&bj;jPTiYLf)>qZxy>osox4gkKnhDUSH zFSsw)h9NE(&RC$)dIQ}^ZU5bXgKu$q71YK!pSNIf6L+8dMF0GvCw}dV z*j4J5A?`cLtqS@KBp47ZT$-AzT48~pNevZzK}UfM9Ay+dLO~i z81}3lE_WUdRazn`+C>Ax)%!b@7Lj0jPk=25=@5>!@}#+(~?GTLT~`O^dT2_s4`1D2u(3p2yVMVtP6wMT+p`A zj{`z^-YaJ~j^f&}&&;YbsuiT7C}v0`@)|iqp)rks4J74?_f9-3d_1tu+k0)OF_>vt z4m|P88l?t8E(qyeqyMwp%TDpqP?^<0LKJ)ZLfLcf4#7q>&c~SKf8B@6U8m{&4b7VyWj0n~vz0w}VWa}cC1yjLUS0O<}Pmzk&dtU5$ z_fr@)^-xamdAv2#Rdi`-H|Mk{)P2I#4`G@djL*=!>ZF2QKIizbx(Hw6FnqOZoD_)+ z(&`@R9TR4WoYvL8zSq~BPG*@_V^pB6%q09UR2Pc`WJ~kvgVk|iW`rUptd?1MSw8A! zjhW&8xPfw^9!F^>(MV+}wz&g@L>S3QPA}bfp}Bi z8}Zn(MDagPcuH;#df8J0Z7e}s0H+uL{JHbLJ>MkAFqdn-G5Hs z?Oblxn)Q$igC4URlj>PP08BvY2iceG?LE6~wR{ zN!=~D+I)mTcV2;9jz6Yb%_Bu2NYU1GX_PY#9_Acu!@4}LItoEjs4Poz;z8#yt|a_XXfnnFW*iV27mMSnH*DFa9d#dfM=I5vm5;UYqo)yNqvS-#FAD@j|18fj z;=PkYw$E3IJ$=Gl#bHFEcg)zJ11#;~)NsOGPQ|=!o$I2q@UgM;_IS=*Wvp(z68|=Z zSxcSk%=EUp`MAmQbyQ+uv^;nB$f;_h7d~^N?^4Nv3^@CUKLX9MtSW4wL1waVgY)#v zxQ|cSSetsorrj**JO%z=`Bwhb^p(ZG2?0U?ixPq|h-`t75}+)KxHJp07ZPL*TVxNL zFn~oUM+jjNglYs-RGL6oOhAK#MFfGc1q2L{C0Gg~+JY>KTB{)Ka60xJGV>Qq=bZP$ zJ@>qy-n;knx%YnFlUXTZkH}o&wnBW-tJ;ryXZL~tJ`y(ER4|_>I!`MZdUNM=oXWUB z$%`8q=o!?meZ)R1L+Rymzjbtc0~aRVVgev+nrZ+vO+Qi-_wd7<_(pmm7suC{R=qHQ z`g+Eg!LShXvGV-?VcrwF-){Q`SLzIiRS@d@KeE^BYJS8atecKcNc_8IW{3jjnt zCJ-x+R|Pw0^j-H+r#I3>RBU$=<(_O){xy{#x`!IJ_@oP_Cp2^w0>k|SEFniAEcH?_ zYICa7$fnlFOk=bn$+_;hi0W&BrGaJDn0lr9#1w7yOm_`o)(!iQhx0G;iQ*-faBW}B zZ+E*d+Co@}g_PdrV#LVq_Xn$Q;X7GCj(|dDj$QBNo)eIo)$kJl@?N&t2lLpd6MRtn zk~g@`9an;D)64nFBz&IDr1O3FWo3f$J$Q4L$Xm{Z^LX@}Y(s4H2`})k!?rnbKKDs+ z0b-&FdLaq~FM}I@edrG$V&^S%z>`7^RUAENIm-%(rpo7;0NSq!nYjCMfl34UxR4a7 zdXQVQe&cBei)rr83H_1o64V-~^!BFZu=&j?4exdY0bQ}KCV1VVPGN`{T}v)+ot!Fo z?N|Id)9O697D8zAvi*~XWRD0TLg`CIheNYZOe(J<2ak~;rED?Hhn{Z8QKn0`dhlk2_`YP% zCQGpQrzB>5w(tJkcA^lAHWO?@lHKV$3IJ*TZEf zFxn)sxv+lwBigi7uvg#PSrjha-pK{hS<(TDZvgN*VHLmN^2Q}PPWQQOwa~m;xXzgf zWPI6B_P|Wxfvf2E64n%I;VsO%7H+f}uAR74SLGT$cBzLr>Fp ztk4=OTxbDO-lLhn*T@$Yb;vjFLLXs-BwHGA)MC#np~+zx=Zp$)52&e*QpY*yKJ`t8 zFtjGei#V2*so4`eiV%`fL7T_g`F(F;Y(55xn=aQT=O;;OltrR};wWok3FaGf+&cH! zm{M21Wpbt2)NvI08{J)SxA+YR(pg`ATOE967;Py-+@&?Dr6tlM%eR)g?mU2Zc5_`! zQAQU)o;VHT8$xxbP%uhSHBWLl_e(}e#iC8M1!mY}Llz1^3Vc-N)VCP3qL=tyIjc7# z82NbGb%Vm69=Zi!2NZSXU}>2OGlSNA&loJ9im$d-Iok&?KtQBFfm508AqZ!zs-ABEMNfxzReW3ni$__=?Q80!rbu+<5_C=pxxXMpF!r;@(?{nzY0VVsM% zI9Ei!jeEN1!T3zL&Zf?*)GkGLo;%ncVmKI_uM|^7T}{XevhayVftBlxhz38ruv4I( zfu9U1qxVfquDMChK43Z)-UV6*!v-ROpUET-Yb66S)Z!ien z0|07Rxr}oc4T7;{C}jBvp}jcuH6XK+4(GpcfZo_Wd9ZXmVN(<&Ri>uu*>Z^JZ859O zW^{4+NM+qxQRCm+e59F7Tk8&$$~f2Px8Pczeg0&PPaD%=i!8fdE3V?^0jG$a)RvkU zbZxGc5U{$xUG9#8|Eu8s4!O>2BU>m7Dabs0XZY23dQRsxkx`nb=ctL)IAZCeRPH8y z^vD+~@}^b)wR`mwa(_usn^`WefnGX{6@rK7Arc{kVb#jeXkf6?*Z*6k1@B1)l!G+gd1 zD)zBWs*dh+lRMd6{5tG^+t@4Y|Nbw{$nEox^WATsMb$qYXot>_SF-*AADqu5m98vd lrp11Z?3M_}xKYMWH<9;k{{P$xnA^8kx0!b<;2Vzc2`?Vt$GIMG7e`x1P#L)g++ImR5QH0o za4M5uaQ$C!16%ut^5LK|TvnD&4{bfbL+=obtd$i(;UmxwAK(B`0Ehwv9{LZ8gTN*m z0ARlW03f1&OVdvV0O|t)0PKa|(#SIb0OSAwpl1H=K=00RI$2xA5?0+;}7Uq1i@ z0gw<74;~T%5(*L$3K|Xu8U%>2aF5`S5m8W(5s{Hl(Xi1`A7ed6LdL+yz{0`7!^1;C zCm}waO z17M(p2l&}r0EkO)Xc(|Zpj_N(13mU{Ey223xt=K ztB2VWYP%G#?VZi}xhwot(IKfFmYw_u1j&!H~3N#xnP?Yuy+IRF~IN|cdTV#QaX zr@fS1A;7FIf0;7Mw6pJNQ_qmdQ-69>c+Royn1Z3W?CF2ad&B!i@+$!T{40RIYGr5Q z!2D%p#d1Eagab|vNBq(4Q|$YS0{^WB$I}N0BQ?z&=+Xms{X#jqVuU-eG1x2o#sTd%e#hOpZksd^rlXA2b9-Lgfr?e|}5+`O?a z+Rxltd2!>8d17>S?sTXRd3ikvWye2^{B_5{h)%CA7=o91p6)r&UUWY-?`kDbYP$Ct zsPrlczAQDL!u)u;2Z`BHmZexi7CAxivg9M{!M)}U0-<+3gZBD17Fl_D(ZWIJee8*j z!d6@CZNW{{`a*)q$wwNm1q-&U@H%hW5c@0cMGuCj=QoS)-gI9^T2`#RI@=eOrLjd1 zi~YK$6uL_?s<9@nF1c2u9%kwP8W__#9k#~)o87Nn12Zolu>x*RW2_0g%D+HY4g7mZ zs-_Of13|o)#UH`=e&yje9Kr<8t}=u9mU6RCg!;(` z%Ph8YaKDuTfDwwk6RETjz62PPNwWZIfJt-97gC zrHW`wMNFyY*yvbdugVp*m&^6J{FytED$(=No9uV$wMQZ^vWT+yzE=Qe7+vYySkb#9 zbdGu}nsHuvW^%CT+&FEeyuz6I3(a3pu z*}M<&ejc?OeAe(CNpIU~+e0F#IR&1wpVw!-$)b|}M{N+o%PYEZ?)C5hOIMlJKKoUg zzm~&e|G-hp^%anRc0GNsZZv=X)ubp-Q&f#IfVMf;FDeZH|?S(NE=z z)d$NX)lE&P6kdljjBPpI>0bfa?9P*YvwbHwR=XyT@|9hO=V?qIz+Dz1S>YU(PO%7O8Ee+RL-EX(;jeEsCEMBhR)bzEVwEvGJ@^eBkJCziK?o6FcW|XE~jAs7e@L!R(VfzX=B%hup zaT3#3z)}kQdx#0?v}US14yMX!tY)#mesohVeG&XG$j;$k(hG3%*iiecY5E7b{aaC7 zoG%=2OIeCPf;YV{e@j~m_a8(cC~1{ld@}!>zi(C!Q>u-3eShFu6-f>|BREJ z+hi$TC~5htem^WtvjivUgdVBfxB+?js>ZQzC^o%JFNlANp1)>FMk zG=Y<1^0!-p{{xkOiXzXG#cJ)>6@U7lHVeSsmnKS-LnE^MDPh(b7#>c%k}wosZI0sx|Q%B zcjjPk6w|mj+;-R=FJxI2i|8m}v9(kb58uUdu(bRgzWDW9eE>-A0I(PD0gyVcNn3v| zqQ7<(0>0-9jYn_v`IxiOS&@MvA;CP^XkB-d@|LHH4M>=g$)HtW8QkaBI=|r$R@ox* z^N8R3-_rgGV=+IX>$FBgY+(H04|-fdJ@laTU-jVGC5QTyxX^#Zi4p`otPcO9VfZ%L z3}dkW6YljT2iC(1|NiGb@sBc_@0lOATfrHRA5PhUF<(r0&m8d=MIizP(H?K=2%83~ zoOGDN*z-Bxe!j21#2UQM^y_lfT>e(LI zrP$_3_2028P(FX!&_g0bWY-TZ5GC*dfO-|X^LI=MBblt=YuUPiGD+(g<|$(qcDM_(KekgooY zt8Gpk7oLb6O!sGLgb_P1IiH5+wMT6Ax$#EO##>g;ZP>ZV-^tEMej&Fvar-;drdVZ4 z{gvz_9I&=WIn^KU%v7$ZhNW?m(0;pNJu+nYm6m)?1EclsYf`JnJF4^8i43oqZ+*~z zWeK5zd)LdZMe)*`=0+tq*5u@Aqp5u=XNJRg%(blQ)|vM+=FP=M5r(;`?Fff4_X^tm zYH!0xDaVKP>-cw+exdrX@6~eYam4&3?RO|xeBwS?8aODBxO3f0sBayw}L} zVFK+((r8Jf_(M~l{*IzgBS^k8z0gV0p06J3>NIx^n!R{+HUH}Al^9G=Av&-ef6<)0uBSE{tC z&;Is=Q#$2o9Ka+-L%9j1#!|7V=T*uUH|wIUq+ z6W@PKKzLYblm24)0K_seqe}%UlA!%Z98sIkAKCf8@&7A<{~`%^gAVLjPyhfZNH9on zFi0@aH-`uAz8%=3qM<)VVPe*W#*iZ>A?0IXWCdc93;2-Pz6G7+KLQ>8gF%6R1xztN z2c1{xw7s~~vU^Itf3TD|cH_z1dP;!tTrTdk?gbtLVq(x>r_ox~@xn{~YsfxHe_-Q@ zZ%Onzd-S?sC=xj+;EOZcV>7TNlf8!QFIjkL*~0dtT009l@$L$xZ5mpBJvi&9XsMLe zf}Zch=3T!RgB*%}o%=F_m|>vH;zJm`pPVR@e*!N z&PO2?meg)?*bIf0?1}JSuH@eKpOJ?latE|0!-hpLr{XXx(1 zsK(7yJwLx9XA6fp4xeWI$~Nhv8b( zS9BW~$RG7YD<#fKL|Zo6E88a6JdZ?JMNQkt+@7_js()r^5gmIVM(NIpo!0;sb~WnU zxI6Aqz05<WOQYk~4-rRpMd%0)LbI455VibEIwyUIV>q~?+xdsV-IwTgXuYjOV~K)VgQ4bYpo zI&?sn)zyoJFJ;Hn)q6@T>J@eEj_RC}nD{uRcw$m*3+(1YSt^Fpb822v^=iVx_2sA+ zeft*Hdz3aDUjcqPJ_dc#8K>kT_KH@uoGg1npUde9^tpP&9FVh$hO+_&^ep2(518(B zOQ5W4i(X7l6sedet@P%PCM{4lZFW!1&za{AY(@?uKQ!t_qbWVHqLnMRA}K1tVp>!X zU6`-5=NM6hC{G|ck{9Ml>Wk5L+y)8aJ32vDph#A;mfd(Eub+xCBp`Ub{5dj>mYRiP z1>ei{z5tm?^GXdf)-%VouK;bZZd|+w!DN-VNin0EPCK-e0ts>9fOD7Nd%dp!1_An& za8N%6kBxQOn4*IO@cSG{hJtAW;+uH4c7;ED8SOWx;n~mN*#~?ncKuQaag>SN;Y0@rV>B#g_?C7?Dp>IuUZ&j@#Z z%W`LvsBAs6~V6n&eFte z!7mh6Kovw~mGvy;G(nouRY7kOtC_Ieyq005bb%cS^JjNLgMj@$ahmeF=%%K5Nhda@ z{QTzf!jGdsMIMXd$BQ%rcFhVYreBQ63Dga(r!wr}E2=;rPQjr3@-l#P-UoLfu0l;xG)P-g(54ecUh&S6BgNSFzmS=7%54dlG$7GY z$GmGR{R&9T!m{aMc+a%;dG@vymSL_A`u!Xpgsvr`?_0Ki7X_2GCl0jb{$JGmtwA_d zmal+0@~Tulz7F3&2smhT1S)Jf#?1ffC`9Obg#i6>!#8o7;7dyPlnNy62#Hzs>O?OZ z-c&y*ZE@R4v~)kbd6r^Q0gXb6z?MwgTuV|ji!tsKsdVD}DOI?X`z~IEhe50^qqvNh ziLB$vpmgHXbHI|0T$Lsz#q)|n63j!4^;AkKkun_?vY2}FU>ZM0J?O|q?}H5?D#H@} zT_{mHo0SiFl@YC&oucLWh;o|*RpGi=gMx7*n2lN5d_BytaZ++3E?dH!moDMU6mJ|) z5%D)8J$Iv;Q_N3KcCz3L&XuRQ;CWo<`o5cDXTgj<&lc8B<1VXHucGF>NZKU4bAg`O zT7|~vd%e3CMl|?mp|TNRKM38K{>bq&)1j!b#}Qi=FlzWB71;7YsD8nc z`kwwwdYmZ_NN7(GDJkKXTji%YT!a2aI{z!6iaa;vH8)+wb2o&(kX&ZH>!%_%2Pq>3 zsRD?X{Tv@yD}nIgMTOQ=k<Z4~Zw6u>D;ilX&yB-TAB-vFNF$nARgmEQgw**aN z*riaSA+y`00Def`$3;%p#oQ64ul6v->nY-il-hk(8UByc3~@7TzA#{+TNBqLsz zZID_e$P=^;415JVAEBgB5$YkI%A;EdFIX|e4}}~s>@%d-911^O5c!zDf6MRqpfZ&= zjumG`u&5cq_H?o_vo#52F;=U9&uurQ>=h&`x%dFEZfj~W*fmO-x%b-AdD3YF{0J<_2Va~-p!&LyI0f@U+U=;>a;)J`UxZi3|UR{>TAi_y32E!gc_s z)w7JGs#G$xGg!pKK@v)b3X!L;Q>Jz{6K?(4$i-Zf6Y{AKT5gMC)0763)^!)c;w$lTGwX}IoM>1xZ#VMW&n7tOlOoc6Aj+X+B5$ztqbh~mu&nCRtr&Zcbm=vp`e(!=CiGV)OlawZ{1_XN)DN2| zD+$WD_`^+F(o|GohiUqfA!ebd(-%h?Ar6!uLDZK%kIR@}cV$$4eLoB1Xc_SJ_(nkBLbD>6VvjLp zJ{BjQi2siM$bo@O6!w*5DF5d7P#x zN5+j7HDC28rlbqC*tEhnQWlw6@~Th_SW^Xyl4qGJ8v|BN6HDP?gY-StE&DmWg#(GW z$rSU^Uje-Gg)JY)^2NeF|CkW3^_tG3GTo>-k!+Hu z0?JssNZ#bS$!BI=zur=;7A;mxl!F4F)XFUunxU%j`~0OLUdT&8SAF}j4J6E_IMn#J4NdPy;UCDj#X1Z2kO5P8&wp3&Br5BN*>RPKO)B$T5M9c}FvB9- ze37aB(;&I3crOIx&J^G&N?P3hA-&5gvHc{Ucw~F_b1Pr7-;bf(JuW4m#_XZfjWxEq zAHMN*`6-X_Pb&1QKh|1}jqm4XKaS7-TLOx)-!I)imvXiL5NLjT9ci`urZ7KtQ#M+l z)I%M}@i6NNu3#Uu3p$CVMFoI^fk8t-f`2=O{dN+IDhCdM zLQKL3`529fABvPw9$nYgH~QNNEa(n4FW8;=$G}Ea^QDhRcB({C)>!5&Zk8>hf(_@u zjzK&!^4D35?gr(sJ<2IN5h`@{n$;9{U)t)2c877-iV71;EnW%6zk!xc|s;hhORHhgWYArWjM^ z9#b9MaO1#4@+;!8rz3z;0QHUx>z_+0KmJZ%=-3fM*z=SG9?CznnEZRk;bHjIV>U<+ z`7h`TB6i+>eFovY z{>5B%Ub@$)h-}K@#1fPq3=L_*E=|UF{}r%={C(&l0ALUh;Lu=D591C3FwoGWkU*gG z5z9k9CS_#e*F|F%u>C&tAT{9yyQgMLrFWj4-RE}TAK&*@mF_fCb+4Oh6<4v#m1fTI z*I>=rei4$)5sWLe*WTW<5U;5a*Q~ua_1XC1<$@NcHgIC{w3ICo2`(ykb-LtYUk0Bg zz}D8>ak4PQn?e)@N~~ofpDGfky}i9e^`<}mPa(vz^v|FI@-kq-Rm_X?ee2O|hu}h7 z-f;rdX96C-+5GgnHx6|Z&I>Xh#6OsEwo**qJ^~eMgAn#4L<)+KOkha587;gS4Y{8p z3AuAE0l!6hqrIy@FnIYq@xX;)?ntL{vCW`p+LIr-R}E_;>+?tOTSs03U7g6_jZ*lN zvHQjKyKY}EPNEM@UhD6xPy$FE3H*FOvi<{oNPKcesSuY(E%6r*de~R7C;{Dc@V%uE zzK232e-Qkt`Thup{h6~GR+Ji6Xhv|=`xXJ-7Y~6jwS@Kz)W&yD!HY)+fAPW^hp8Eq z<^H~f{2Lp%^SUoki8h+&k1o})0=_k!;{htj+y14aqQAt**Q4VnufK8q1G9e1U?`;s zA~0wY3aSGV>0fc){EgoSt}DJ|fpkj*1*BP^Kf!>8f`f#F`Sy200B{IYCdkJmXw3X} zD5Na%dNEMwy1uc*WUK;m3bt95?Tmc(YvlS4;~0X9K7Pk1LO;LxK=XpW`P6Xp1{Vwr zo$=Mb5T!_YqB^&t+95Z5k$$CYm?7X@oM^l!; z=Uv1`=e8i^)rR7WNqr_|I+GK#jot7stNu!sij#Wf6HvHff8;~teKJXI6{byN%yj8? z-DEQ@TjW(iO_giL%uYYKn>ZnC!%$FocM?ZIIfcvNM0gsR}A2(p{dQN;9NgTfn8t(F-is;-eBGh8jT zCH&9lh3-XWdOO&LB+z*QpF*!Z3cU&N^35x8B0VzsL2t4ii@HorTvSAjUga>0m zzAsMm5CTsc4Cfzv2)NP!$D0Cz<&I*OD<9u<8FnYcl_4s5P?JV;U(*m6NED2IL~R`Q z(qL;l91ro|PuLO7&c4M^TfcH4Np%m)Ywt*z^jiX!#YgN$uscEp`|od!j@dPYbd>`K zkp0*jNKhnZb~2BIMzzDO7(98eS`9SQz_5`bjyUBCOkP?>WD;a?qF83^8HTY{w%1Z# zV2oqW6GuDh<$9G5%906xqc{Gsp~p(=OoT07Vf}5TC1tQ@O&-@HwSohk=Np6Z5hpaN z0+%6kd^wSgMNJ{Yco`EA3j`$=%gt)fE}e!inqLd1<6AqtQkx~vQo--JOg5w}0VAsxjkkokjiQuSH(4K;TpFi zqzSLqlZ<<1K1&F@!)i2SZNfte;&9b`vAFn$ z_!|+gx0tety0(XUfZFNu68a}KXqfl~x3#++33nzzZ@gs~;Ms6Z2Cnh9G3&CXPvndu z`F1OD7JGL0T`9#T_h1Qo((TB{-16O-PMW86yKt%%1(qR(N-dK@j9#jRaYRKVw+>D; zB$F{cLnU@lvk?wxZx4!(g<))Hj6;OzmVA=qX-#LANm4n(fo?Ay(#=mPpZs=6gXV4d zzT?!2b$r9j_xriwHjN3HNf~J?Tr}* zRp*+CdCAn-LQU$LWhOVYmc%rjZ8KKf&(=TQo3SVP8?5II4^XjG@ zqg+Rw6{fRMx+Z|5%IId{!ZqW9Xc(7SJCA_ERl&dE$@^_pmNS1%N7<0)jrNf4RB|QV zTrhkXYXXJLk4F9TFWnu5~% z>d{b>8hs`}vI^WD&tQ+Q?enk-~ineXj5=UUU33psu0 zL*|Sq)$W=k-x4kMCwj-yBo!-mY9aQsR*5h6F{(_z0+K+Vc*Rx`VpSnXhO;&b?0MOE zV(Qv9ldg3~J}+zI3`^L}whA4@$3)r>QZiI;Fr-X_TR2=y7JdSxLah)}4Qu?UsS?ez3+A zIS;PLWCZqd7+5L1!nLZgmLNVDl%4XVlTK4@QLw(KP{z5-DUaF4J0Tt0T|E++=hLcq z&}jAOMUm3X6`VJ0dHaS8roVhOGL+br#NJNaj5tAWc3wmUgF#)TlkuH0f|GX4uTIdC znTd@`7?+b~x~X1ee@U~%$-1~XYg~$EBGku3{~+u)m*1Dg_Dq3pIarvnMB+JW`l~A1 zKRD{D4OdU)Y)AXB+P*Yi?SC%tP=N|DL#}!A8SkaP(SJACbV-hD{~Mrkhf7=XZ$L4T zCBb0kUHZ}G`_o-seb+K=8OfLTzxayQ2@Vff7TW^4?qHG=ZR1g_TVV;;)FbAcZPX|3(vxBl z8qUPyb3igT%?&K`AZ12)4dX96?!NI>_^p!@v+XnLIb-Imm~DrT=5wAwZjOXOYmBID zT9T%Jh!A$$_il|(#F~xAuR&_u4h2fwnC)fV+6%VOM z&+_TJc%qaWB`=FT`Rj^2(e3{^S`2&y(rOc=7vp-~h385&Q7*^FZ+7d?MHBhIu-jig zR((I58)2ofd_hS`-Rg)0mMK@bHaA%7z%nTflS0QhFq;rN;5%F3+*TYW`u;9AwG@5! zOuDb1h{Vo%2&q_^{iU30Pb849s2e(ar{Zoj8RGdq$U(yLwgcyP-WTkuBdTQJjU{l z*7uk3fa1e!MEZeQ+>5B75a3bdlg92ci^y^k(G;;9=I6A6k-6EkaO}7k0bc>aZP{E+ z$b6Qc`d@HJ!?3htFFhqBh`W#p#2#AGy$vpQo#R_Y|1*o|=;{H`cJ8%un4^@JB_AMIjZS9fS;*E?(nNH0 zweV(BbxIBFB~frF^h$lUs;;vn_NH5uEQmK;ZaPWWZzRs73^u#ozD-xB zJU&t5tX*NEG$^|$PTmyGxE^#80q_Z>( zS#xG!Dsf_~pBGH53$%3WikjfC1T`DqVQdp2d<%VwI8NzRU3mO{1m_&q` z#_JRy_ttZS-Gy0Ta{5`*hy6&hZhpeyS)zP8Cf?QJF(-a$0mUpb(6|tk(%Bh z#wOK^i%CDzo-W3+m&PLO{qp?oS6WobyO-5CwH6@`MmUZq!lR+Xq|Ey&o4A)kOdNiE8%g+)Hv4Zs zyE!|(raBDrblp6XcOMe!CC_J~x8`C!QtQi4$)W0xv!0f%jz3!yW){0MKVsz)JqhO9 zI`rKdbH`6dj|ZG!!B(WW+%^{9vOo0sOAe8!^15|fAMk+4wl*ch}8lc21_!h9Q33v+J-EIN_# znoz5*CQnBCEbWLkjO2q^6ULc-0cRFM?>IcLY9&mDLs$LWSREziLzePf=+Hcb;2GRo z7eq|4e&<^9#khIAR2IpI`-@2!^U`$Yl_nqCKMgC8J3+mEzwjS^J{Ggu9o!l|7rFA9B3W~FCCEOMsFDi ziyv!p@sLz_yGX@UPQUc%Y=n_I$ZTMBxC99Y4d?z9XcgEEIgzhN>idxLY^GV7mwfLy z^PnrQnX7D&&o#AF2K!yZaJ4#YW_8b5(bu$u!|P^ZFa|9F!g|aTGHvS31YH z`l&(2I9tA{j1G#ey7LG*NR*v81XIvKg`3W9WNE$R;o-&u?Bh)9-fC@H_0*@AQuddq zCt@_c;pLlI0o6r_%ogTkjN!p(N#i{Mr&8UGZ+P1I_KT`nXY}EB*XgPr4YLGKHB7~< zhgXTtIA7q4Sev~D#(ChxyaPjx@2FrH-!zwdg|rw>*dM7A0Fk%`*!s-J;e~?qqLY7r z$Y6yone$R{tum&LBMWeW$PdNci3V%&EON}rE$b{C$$8sETa=#J6esl~%!Ow+H1N2I zjL?c;<||;Gsh7(pT03jKII>F!$+BjIVewV7U!<9VZ-dDd`}QSW;{urDnxAtAihJu8 zGqTw8=Q^3*C|-P92W+qr3!cPERU5*4_;`5au>*?-8Cx3-8Rx=GfCEWOP)=U{L+ME%gjm`BBd);Jh#~!iHHZAoa z?T~ymO+&j_7iAk75DgzeQ#Xm(#nRZ++}K55;yY2#_fCZsPkC17Ihp#67zGtSqygyYyNH9GOiq{eviXnR^I1&}VTX8*~l^wqYj1z*{eG?H=u3C9K!8#;cnmBYh zczYiB6~NkFXLHA|J-r9EKN>%3A!s^^+^^3zzQa@81Ea80rZdkpS4f`7ifEeSpx8pi z*6hq;EIQ1}OJ6sI5xmbaUX7rEkl5ri2(dh~maAvQJ4A(^lIDoobG3la^NwJs10X0`^fA`yTu>ue?&nXv{t^IK^Vr|l!4CfDS=60W|m|? z99I;^B${4kLX1YEV10LK^vW(nw5IDQ3o&ytUIn$Zvx$wFl$_p*=23lE8kdP9YBSOb z+R6{RO1gU!=z z`)^M;VwsxBN=T8Mtq(2H8M@YTJsI1ZlM6j!f=Lz>MO-Wl`!~->X6gl~%+0fNbu9yNR-^jx+aUdugo}!sG3Ls7X&&>P2%9zrpV7tr;SfmnGa7ej(bgf5l~ zMA-{H!@13zL09p9FXzNBk4AJfoJy8fc~-6*SqOM=MiM?4v!*!6_6p-AL+H*0bJQ?! z6z5zBykCRAnwPW6&LIemIEctW7>KEeVCA{smH%*N`xQVeGxr>g+^d|e)}zK#xVd2- z*wFaI8tZw}P|W>N-35K_0*(lNiy`MldbEurP^Rx{3D0Lom@GhNgKm~{=*p#(siV6p z{s`xNo%P8n41->3t**16%B-)Zs>mdzR%1~+T5w>@>z7&L)e&V2xbOVkm?}DZG=|3$ z`nW{KRu^jvkhW^V9?g^7v=@sUq$Vh;hS?C~Wx`f*`1B3Wx_Gw9+uc4@mgSEXY2rX! z?35^-b4DY%Ihq3L|FMt#Eiry;NQtzlFm2&AdSQi&tkUe3a(OXA%v#+t``3i{U@IVZ}cEf$YM`gY+D`Pe;rXLxfYi%~P zCh6a;m(rJm=RAP|?Yqna|9GyBwbRG_{YA}f0;wh2aBZj1SsL0^4WFK~-2~$mR`@~& z99z#~)KiKT);;093njWpHol#X7l)Zos4E)zK5s->9z0)CpyS82SJW39gn;&sa4kGO zNq~LjT*a}$R^S&&876j3X-E1@42sYdaxyH+a8_u?{Lz#)W)Df|kSYBT?9_3SZ-a9$ z;RM|duO{`~l+1H>CkMlrVR}>I$us@{_J&s>ONk?c@R&GnyT~I(mRPM@2LU^lA7))$ z`{h-pTs~9ki@lm&UYjaVgXn3Smr&? zZh=9TvbtUZ_6JKOJZm@k{lW7+IzeU}-Dbrf5;>o+)mjkb@n>5v<%>VcwZfthnU63; zoIOzM_4o?VFU9bCs{+@qMhgYHV9ZLR@v-m@{AWTbrr#UTx`orY&z$z&Uq2wyF^V)V zYh;WrfIYlXq;9iP#DF;BS|n;2eLdF}x79Z|y5dW|p<_%!J%z@;5~bytkQx;{BCGUk ztzl!yV`&J+fsS@j+b3Tr4{j>Ap$=Bf3}>f@Tqju&S>@}v4*Ik-Ru7$;4DF}egL1T0 zUXDg|$!$8(WY2GhVG71!a>hwTl*fdd=HY%k`-$Q}EnGPz zj;Jn9cnd8wH3o{PB$};ccL5u7nCcn_5$Q5^c*U-2)ZuIE_VV0vK=$E%A&3!LsWXf?YqLK}NL|(n`oV`RT;Hr*_ogFUPLw{}rZhQ>Ika8J)@5inQ-Vsz zu+W6LJs9_K>F7ir-_SRfyD=?}`%*3VnK7b+Tvl@BqjZ)mh-WWyTBt6g z5RzBZnn34DX_DMpb?j-EJw&RXl{t>na}QscRRcZ_w(953chmPidBHL@+m?uaO?=^< z>IQYef&aY2a4rZKcoW{b$nE1n;*g35nlsfX2g9#@Iint|X;7D5T01##{F1m(yAE1~ zQ(}BXm!zi!sHPQZL2AS{G_{jecsmsxs=i+(TgT~Cp+P4k`!ov4t~`3WfGto;hjIiK z#sqBY5?bKFeip0s8ZnG}-J&+SZ4f?Xmib&>Z^LaqRAc9mP)m}(j7CL5?-X-uWLx?0 zQ?{Q*L>#K2!Aq3|m9>SLW=1*_?WJj2SVBs*A#D8}1b+oFvMUkh&w}a@>mju@lx=R% z>&CkM!E?RUM9B*8#7PYUD{Fue`)T=2rIsEl%vy@I1Du(5x6u}krs#z4d9)bm4ZZ}* zCD;n`7twEkW=99u;IaJ*$dX~x9bwG8s^YN#d9~3LNV`iVP$K15fX?9z#` z9CX9$`%NGK2@^l)lEw*&-LbB3mRx1~I58ui?V8WeYZ+j?Bwqo2x($yeZ$bggasgnk z2@n~;0PO}vrUs3S6gYlf>r_PbIbsr&d7^iM8#7sVI7SKThN%9i&tOa5G12kw3RI}F zC(SOKO2cNcQU+XdZ;h8E3a`Iqq5~xRP!<)1-wP+G8%6IpGVORgd#X#PK&D(7stY*+ z2E@680_7yAgSkKukmsL};WZBgDK4~6~hWJKrB6kSoCcng#`mIqM%59bsg}e3SJ@`y<{nbF&oN2|~ppjR^++OdAwVYl%fFgj?%5RUaE+#ZzvCsmwJ@^nC!efo$jrv&l zd_EFkufW8dAQtG;66+v!M5it8%O->+DufW)GgzAK)OHCy1oHsCBcGj;OgW#Fk>gz2 zaKD3W^n7r295t#S3_ji3KnB=mIAJ>hAr|tAUJ*gp1F)P1f50gm3<@dYej}+*rhDd9 zyn;1mp^RhDtSE;#w2rCMuw)S&lo|LmK+Q3qbypKx#KB|@@lh5tPOR!irf#0ZkQjnE zBSE!kqE8=|y?UkYe z2Sv~@L7X(C5GKo3x8Bq{rWQU+IL-<2-RC53W2>G+LFn#w(z}qyd-la^SOr5;^xPEs zrj^(OC_@PGDx6Yg3QlqUy|l>n^nkny?d6L?>{a zjH1|Q!%;9Tp6?9QJ=OVzCy-jlSUMgb~6;1QQ9M8AP{q@VLX$K{GWI;-iG)8TLw}@(07%4$ zhLIVQs9GQ|digUMGvj_CrQhI|C!fh(uZLU_hZcu1vC7Kal)u6Bpw|5sS?T^sM#4wYgnc1R%EnSb;wAX=Mc3 z;JyVx`~X2^bX1A~3}HY5X>137z&1ElS~k@{jv`fA90F1}kdhi`Lfe)@QzwpPOrdLT zv!4UQMr=hbzaeyv4ZDm5%mAoiGs8?o$nNIbL@@Ecod+s)MGGy8XIZv!ow+C z6i#h;^~?^_dYx{mOT9U?a8Zy+=@ppXI4{y9DRh(Sw>s_)<6^t=Yx3~IL(c_zRPxLm zCNq8#DPUaoe?{;v^^}0;$z<6L zqCx$nmt;ZL4aHl8QnGjLTtpMDyt&8T;;Z+s+ldM*6}JIu=k#ia=vFwAVn{K@S;a^J zTzQEuxKh(ra1z&eh(5)R*TL$m6H1&x(t0#neNQ3dKl|#&^?UkAptkwilEc*phJJqg zG!z~=S;De+4*5;iZK7=Gc!w_{deI@0K{(_mT|cFR07bR>lp=ByIBzO*CE5>!o|VwK z9f0hy*Ys-#{$}~A-!W>6zvZ5ki7-p$%cIlp4n34yZ`8b zfPkK_zoEgme5^qZT?jW>`=p))7Ke#ARZTEK)A za6TxM@)h=$+PxUE8N);ePm?}XyZJ5&LhId_ zxIdp36RvmEwmoVUM`<^nKc>J@`v9s^={Y#Q4T=A!z3%{PDoPr?2}uYEU?>TpC;Nji<03phc`gzHeHEUC7%>2wqBy}rjLD|k z%5QJYzbE|Ii#g0a+r?Tu$Q?V*bq?!yRBt$Q8tX38q~J`SSzT~*=0+|x+T9aSf3exS zGj?!hb5BOMP6RGf&KBGzA!ORAa>2&^#N+{ElCF(?FL7?xg`#%gZ9lm+70pC}o?j1d ztR-ri7q=4o8pDS(to=?dxY|+X>%!nTqOa?H?&J{KMDEp6WAXJ;(;nt_&ENzaTomY} ziQF)NvgT&J@S*IoZ)#C~-6w$m(k=OPw)A_>O7YKRe)J$X*jC?Xi5Ljvt;8j^Y#gHB z|7^;Iyr(;amGpXyP5-G#5{KtI4zVNe4t?%G8B&dq`oH_nG|cHQv(fm}{0VA;Tnb99 z&Dsz#49K_VoU2#I4MTRmPPscFt2jv&s)447Hp-}>^aNuksS&tBh9o-GaB*Y8(Gg>$ zKlxg;^M3hE(;+RsRsZsXQyC9TE_j6d1s93HpQ`eg&19b8C=Cf^es%f4fgS;KIF3AT zy$B!VU$ zCR?@Ihr82X%=RW&tVfozQA~w0A=?KS_8rB+?c7HhsR@rh0e(1~>;gsJZr`@ogCJH< zISI{)IwsX^5tif4p2xKX+^rNoPO$&AZ?}xR*H|s9M`7S^Q0(l&Vv(1w2C3Jz;&Y+w z(6sZX>cll$EfR7w$y{X|73DL}i>e{LpyR0|g~Pq+VYqf=Td5Z=*Z&F0%s2DJQOH3@ zP2UItxL1r@hFA$iL$$Vx5c1h?RK4-fY#Gqbln2NPVr?>fBA_71s}^@9bKSIhe+#}7 zW>+~C4VvE^MEPEi_*sd3E@ET8Eq*K#!k8yNWXf_v-@8y05O#&0VN|IM*aNFdZ5f6Au?m z5=~3f1>n}l4}4xx-2od})jf2WYNht)Y!{6E{wM2T>o8>qZgZp`rLCsb z)Q-mF$qkAIcXg8OWDKmC;xw<`zVD-W>Mosbf^4?{BWHU7Gx`t{YBy5RMrWqTzzXT) zn9N8fo@cEqBj|~;h~1I7etjLJEv18Hm$t}m<>VL{f&mNZyrHWNG-*n`z4fYMyOR_) zUR!`A`u|wqw1#V9|9zwVvv$>EHglynX!?M`PN=FMM3vyb06!Tce&(1Xs(U=|C@cjC zWY;w3*qIhH803)__{N|~JZ#+1c_+)`n`c?mNu()UMo#Lg4GJW!$e^o>Vy`8rZ9$4# zUX=K}ro?9R)t?(!OhK{vyAAJvqSa9l11KmxC@b12;$9f=jM45UFvj{~8xjFb;k&TB zx3xopDeO9%LO_^);r3$QDz0ohhn$|EmV4$xDdO7Ig6LN$*P2k}ua&Ph`m(0ILbR#9 z3~MynYw)EJ%5q0(dW*+_f{HKr=Zp+VmRv8j(Mw^-2PCEI*}X_A1JfAFfhT;cToQ1e z?DMqb0(|RalJ*Y$=+{6uoo`aRPxz-7fOb+X1H_#nQSRS!9B<8!X~eEcGuJ-911X-~oMizu^; zn}xeR8XtXkVR21q;>F>n!RMjH_dWr%^jz|Du@m3=S1uM@4Xsy3;k8tG zRxUK&_4d}d{w)i1atGpL!PpcA-HyKScos^AzmPR4$r&#wFbRf4B65jGrY&lhC{Fzk zNcV3vRNc2kZ`tTnekrEz3k#!ryc@Uy0Q62B;7$lHGzPs@y zt+5pbwG@ysW_OG(!?EC6J#|juN|;joiD@1B0E}8=TeNiy{j>P=_Nj?+*bJA?B_H}a z7UH$DvhE@pOA52ZPPD5Rf^ifK-qyUg2lUDd_aGZXc!Sy^KXs=>9Ynzuv(AhOFQD%p z7JzDulcFP3F}Pj41s~JK+oaf8NOn7u-1eM)J~Q;e;&CKRhr86Sgqqq#J@r}$kVjlz z79#c|?|z7^6|=jI7wiPmugIhy-pVn1euCyX`q;-WzpiVBgA1O#holwr>{!81d1%u~IcU4-86NyefcT)*GLULSAFpav<)m~lUGuP?-Q898pJ^8)P$y?C`Tj{cm$Soz; zKHo*u_T6JF61cdh_}-<#=X+lqE?iR@cz0p$qjA7y;m%MqT893Xt$Xvov@I+13kc0D z|K6IeLu)W=+BZP|$9ThEYW|5y%wFgBY?YK*=E&HHyYoTo*-8GDJ#2SB0W8NZMPI+) zuBhoI`r+G}3*vN|kAUgVy)?^b!Moc-2+ebe(>oTo8CWeT_VI(sjGIlGii7K9K)rVc zzT+O;Tfc9u&~gXohA{vk4YJUVVbYE`2{=X=rCtQdDQC!4Z$-mM5!74irfsSpbMc;T zm**n_zV=~0Ld?LDpPT~-`g#O(?03dDdvBNM*~$t>mufV&oi)@XTZrP%3IXiB8f@$< zqYKS;_nFKq78x0x}gXV%5na-nh)jLO;$ItllSwp#4bhqo!M)Gml{D+ zPjO|}_gyMYlA8OxfGC{OUR5FpJN0x4O$lZzs^3bameDKT@UZA zuiUu)mjF8M?N3a754jmqO;44IW|7{ivqU`47gh2?iY(T$sR6K|+*m=$n<8jM$C4&; zuVytHk~mP=4{RsHgnTnv4=`N#?y0PsF-lDTkl>rH3La&S`zkgh^k3V#u#+25AedF` zZID_#1K`qfHTD`+lfx||`sRxc`xnt8+MfWFC8WBZ3?yvg8jkm)biqy%Bq19f0CH)H zPKeo0gKuAxiA;``^LwI3ySyEc3g~!EL0@Xhu^Ji82`6jN_a-{BEFuPDmly${I3ZX^ z_i&hMzPd_xP}D%=Q@HvwL$vaPQ#z+!MO8qO1pw5WD6VSVd+?leLCNO4IYiL~%h@z% zLXr&RL_FQY_Q__pTzBFD)`(Ofx-?k->ayal>^*CFic6qOK=7gm15vVmI%=8ylG|v4cIhz55WcfOT_rm)X`{U`f#lT51+u9egy2w(Lb?<&h z%NSD&qGpSbhx=tCbsK48-?5>`V{+u$V!^7DIV?}RMcCGL{1>F=OU8I}pK!WIz8Ys4 z*_{z>CM3sPXdNQX9A0*mPAmZ7!z?Q(%TPQ-zaJ%yG758S7i-hpHkEvG1`eF1Ym`_P zxbjR-_1YQLK{+Amg@+v>_peA%ar;SDtz0-q5czdN53WS;);+eva;$<&d~8X17Cv+Y zBi#zra8fUipuCmHm3y1gw`V7q3Cc>C6Zw4~nDCwUMcduXxazv|PUMtbB}BPc%cVf* zBP}|#@TzYd8tdN>qA7hvVX+B1x*;y%y^(@v^|77$PP2QSKp3p{x!=iFw_*}=u7YKD zEx9i;5X!x;FNnsAAb?PZ)HEtx)R=bH6A)&@3Pe zO6RtzQoXAR_U0s0n@Jv|mkVeqQC-XJMoi7QCZeiR{Pc?=Oy<_?rUG{HA}8qp*ep_m z;*SvU%{LGfocvg$0BJL)SR+kS6ct^}$%xi$laGV>@r?VdZ?=o1+|mFW!NON6)A9T^ z8r!GTm@z%?OOv|Bpcb~MX`o0KtFWat2L~#o7agfWO0j6PEAHUK+1!O*>=hJcCnIxq zPC?IfRvcZ0nVpg}b+i%;xxMvUYx^u7QzE&YbzwS3ju89!#4tdSg!au@{V6G7v0EWd zOBgyPB!pPDtu>o;-njxExi;v${Z`nucr{r3g!`T}MLkh>5(O&unfwH3g2>y*^28k`VJreG(P=*`i5enIcUfdL``9#% z{#$ui#&4ZFu+k~kO~*F0hzFb%(J73_X*oMM>$2=w-1<>W+MqMtkpb^9vH-cj*{JG+`*AL5dm+SVdXD`KzjNanGLo zvTxEg8wuR|D>M5m3!`zi|N9XtllFt3hwrP75BJN}PT-Pt@B8<7R3uF~yZkO(?8qm8 z=<4`zpy31zQFJ`u7i$=QGkSOLC%}FS&05HplNW){W<_Y$p8xp^jGi0XKdn>sr{iP5 z=zxdS7giF)s4Ba&3@^+WvNGBS-2O1A=dV&cgD}Tf{s}!w1Ih+jz7Nmd-9njWHDrA7 z=(?locD_G>{Jp$3M#4Yseykhh`(x~L7(xCug~rAI<^>8q{_-OE$E<>^6YQLU-&1gH z<)qIiivFz&6jB+S^;1T{*^?g&L;jK!w)OY0KhR9aSbKl>Ff8dWaI^rbjS=`Q-T>Qe z)Nh4B-08(v^XupA z=Op|;g7+J2`d9xizqtPm*q{39a}ECltnPQr|2S;aH@xVY?*#l7Ht2ip-+gA)Zz1yc z6tVAtf1?iy`T9=BpMK+igAWwkv{Xj^P3E`c-?le^DUhT2pM~x3!TpKg+hWDP#d|y+ z1^n*xt}o=&c>NwWtYbUNpJUNS4jcF{R&8ngA0qcy#7Ob$$tapdlH@4%6-M(!}_-VVteYpM8kedv+v(!^K-w2 zJsydg{7&MpK7?`G7JTyWX+BkJkj6M9CY|6dHbX6{T6QdE$rWE>}SNkg9QNc z=j=aSUtVhbQ-S}<`=1{8PxiofgM46`-83kKc4+;V3&bL2!ly=DLOBvt{raYGq%+yR zVJ&~P#fbWtvw}1hHt9bdyQ7smsd$U4NnL7E=Fm9@<2z3p(I=Pxmf-<+;%v6AdD7Ej*ky-}TWq&}G3y9{pGEckn#QEF3%$x_%rH2S zZ~Ea9-AJMJ4*df&>ML_+=dF4udOIU>vfSUS++%39eXBxu|C0K#&B7d$y;2bBnZ5Dn zjn7CLUh=ETQ9e7WQ*+vNTMt%tSXnXT=H6<1W~;U3{2=DM>j^ciT3I0<5G&7l{qmmr zi%hRh`nC*xsMy;$bmybGF8kf_cfM~!E*)E9&s8kvBFMF_XxpybD=;qK%Gs!L_Rc2r zrTde&PX@l{4yD`iI7G$aFF)KC%ZxOzjs41ktgVpGmf-a5%Np7xkd5z{l72eX!}l+WY#(30_zQ@w8VKYm4IpZ%D9Yn>ahZdLPnTDS&_j@tM9OA*>p z47@bnDaJzEY5IJc7#$t->lX|(W2RCx)@ibYQgtNsP5EWF;7DO-s(-L%irVbcFVWVv zQoqAy@mf}>GUmgXRVi`JX9d?xW}^04Dptkj9PahmK61sX;)Dxd8yK@Bq^$W+Q&2my z=dKSI1h|^Ubw186%xlWu0PIZaZ(&n9NZtzvHO9Tsb+UnO(-j?%o__EH%@w zM(Aw!V>kH~2if=h$36iXhZ-YtJ^^GJc7=tCD%-GzqU%)e!5zy3H~YxxtfZ*%X|9(RkI zZV6E@n`}LhbCk&=?~&Y*I(P18T#`|76EiAbeY&tjtJ}q7^Am6@TlQTXvugq$hgD_V zYs;RMz1^8pq_VE#8LLk;?q}xUPdblHHg3JyvSr`9ykv2`Vr8Y^5DvP_#tW&G3nW*dMuFR+|fR#9dhmH^eH`KK5f(yT@dx*@~H z_!OyQCr>toZkR8=-PC@!!t2O?68MOTJ=Qd?FT4zyj1-IYfqkZC#^y`Yvx|xbG+hqg zn^G1Ks50miKXCqIv=8l_yOVbX%(HIIXLZKdZqL|J6TG8_jyAG=*xs_?3H|-Ds}D2} z&7FR|Uvnb&(BVS|>JctJ&$|ad0UU4nxdoKz*@9yoG(MO2^#4TAMVYNn znf*(Tn~&S(O=JpKUVr<6YmD=>!UwLqyH_^01-xCk*X7Jpajf(Ma^dYH|3P?M_17_* zZvMPz&=!k!zgI{6=ib5-e-YBZMq#s`%iDR;;3s}()0ZY!(>{0Y z%#s~r9&H@8z7FTV#S8q#{UlHz01QBAdLxYse))n61hDW)IWDXDW%n(iOwLr3!dh^u zL;`v0uSY5FLD7y<+yO_wk8ybGkbNmP8x&io?|V?dd6rznEXv3rt=%=4R=&t+g^S?L{YJlxHIz8>EV*m8co;z1V zF7@y}&z%C59Oz!+zk+_1pXK`fkL-kagX&Z}lYgK%C`tdEI#%gI8rtb$;I$o4Y(=$t zMS0~Xz~kA(=nrm0T*gT`q^dNYAOnPG&13*6{G=Ynojemg4llVLijOj5(tiW_wU!Yc zA%5kM>bRuCM?ntB%QzN-QS`L*W2aKNW*&>?C^7u&AXLY3t(a1;Pr%r*%j5*BC3!Bn@leQSx`G$5%Erm( z6Xgb?c&~Ub%_GW24wg4u;4iWibP}=Aup{yZ_6dkL;JN+WgsmjuysR&RnnG$_gd>F~ z1yec9uz8q8o?N}gM*D=E*1uoP9A0wAT%@2VY3XrI)PdWVAT1pFU%x6tRQZqhS zH+8=nFz_k)=*Vx)jIK^`V&7|rg zYV3GZGo*%cL5z0<0Eel~Ydk?qVBGh^%c(rk=>>Wgi=CY8627gOI{h&h^e3X5r2*7RQB}BF zUGWLttRfIFiIG7;Q>S%qIKH-f>SqDyG#ROz^i@BTzS;I})eqa4Tzn^yy~HAnbD za=h(E_K{0UoQ!07nj41ZwwyVG!55TU#d%A1ZckF3eniX|MuAQoL7G`Iin|LwV+lwz zmQ!>JW?lDv&IR)>VZRPXh(8hK??j5q^bkOj&@=>9TsB$*ZX^iKs~dJa*kBD*^}}KP%7g=wr->? zfDgDYRq*5LsMq~w7^oB~Cx`j_8yD3acyePSawE8VeFmL-%G92J~kze zTuATi7x7Y52n+FaNHCEc>rPRXhu};TF@np}2BZ1H^{(NkZ=tk=68OnVlW+yrWP_70 z(Qg|MHu}mqcq}#?OMP7CUrx9dv+c;nDv>esJ)m7~!h%lS`Cv$T)Ih7Cf1?4zYCjgE z$u6SUYhkeCBh}a%S$eR01Q>y69PzedEh!R6DBrhrdl#xaHN%-9f~iFdfeNEsp9T{F z+X_uW`K`&Mk8%k^7>v}8R}&z5rxmMkgY*oR7Jg z=MOjtlSOI^79%8d26GVX+&)@;nkE+ZM?k*Por}tXCv4MAq3J1gEly8vD($Zl)2G4* zjMV6lC<`A!kgS>dP?Q8vX8WxWguzINxkV-FstNDefo+C%&8&@OOYJ8X8K2nYG=z27 zotvzZM3jo;8gl#IhO>8VHBX0{9q*|ibjB}2?FbMHPyk1GDN~!bDna7KhPjQ~ks)XU z2fHGvb^ndy{37KLVb(?LWAyy-X3}=4nmCzLu8r3st+~}>H0F~EPa$;3_0iag7mZy` zB}3t_QVhY+71g!2h#Ap`ePKx~^UoVyZ8CaJj)SaJ?Mh~_!S|%|Z?E~i*tKnB%(|zW zvr7@AiUpnV3GStfQMdG-5nX}jz*G&J7m!ezbuP*)9IL)| zH{mg3*y-ZOqSFQuW-*6ePpOqO=lktHA!%+kk9Bz|eD{)HV)5?t?|*dS-IoFq;~1Oc z>JQvhx;oXv!{-;|UGHn8o5g8~W`<^*oc2`oaXb1Go@OVZa-A0=$&h1_>9Ko8X!=7B zBiFov6=X2(ZR!+p(kAVd&?%;}dn?XA!_nwNIxU;LYt*7Uw}MSo9Ik8^X$6|W&{blH zP)*xLl6kOP+Tt^QtAt+=(g3{=ey?q64Tflb_ttg$l~afK)@l04)_nPtF*6UN|M7nA zg3xz-xh7$8TQag&?zxAoWb*EQcIv*;e>|diM}XCWZ*eX#9BGC7??TkKZpms{xhLN4 z*?vp;6F@gR;jj{Ns&=lQb{G3R;LznImB_U@*H1vIG|i~rvAqWd@;|=wyWn>0p2PHU zmOT&ZMDZso!PxWLXdmfw&&gxG2_ueGZH}oVzVvgi2`3p6ZP)ep8po_}()ZrXj3D5B4}U9-`l{yV8mKBjPVZY-()`Hc?w+JNqSRS833ah z%{NNV!=AB*mR`p9RAgRfhms5(9MeLavcYQ}wH%M(x@MYOht0X3I;#U?k;JaYyf%C# z4UbIk$VG-sC%0?fN!x6^>efP)``0X)uI$-(7qItB*K?c?yL8BnAw)TQ zNJkZ+YvCo9Pv8becBv1NIimZvSS7q(Gq`2dYCGSMPH79#8kQc7Ka{h_+oSZdXa!44 zqO!^9fP?{!3x39ha(I|XsrJxeLB(t(ZKP3M-=cNv&c|HR91v5**hGa-z?Pn1m5Y*# z{gp#nLji(y8f=Q1axd$(8mhAIRSDG2$fpv6OU~uY)(vk6**iMT+HzPizFM=;PPIe-54^6y=yGJrZvuT<@w-J)iihnHkKfCXU)EUJ)W zd*bYm&`!(*orb?*c=EsrQlE})s5VH7r0<-xkn*rf=sjcAaeQ-W^Z2*!+w{ICWO}1% z>h0Hwn_RV~91!tT^5gM5z*K3A8|V~|^WJ{D<-Jd6Zsm)6@Y;hXNRo-p*3b1uNx9<9 zi);%Ywq&0Oy~(Fb67=5@wxDpx<4Um6z}Ug8fq?b%g>{dV3+5IS_Ig|m*3c8A=caep z64T-4e5!oOIPJ|R08LK_HO=a3FRWe`o)6Iv=4GWtfZJQ_zb=WU2_yBiV~c<}$O=&G za8{zKn0*4c%^POQb{BqMgI_0tU?HtF>%++@t(D)kzE-99i`U zGMz$%7Ev3KhI|j3NJDB@p=!iyiB}5m!V~;hlqJ8h6(zjL-Cjr|0$0Dy+;Izws|ccZ zywS|ksBEJO4XrY#9Y?(*=R{N3s$>!865ejFn_Lh4+H+hU6b{284Yjw|W9S&eC*p6$ zk<~%vn!Z-Mu?2gq-?ehNYx10p-_zg6hf-BVycqM1;xLz3XEd(%Ywv9>Yhk(LQ13AD zo!9^=+Lbu1x3RunOir&&PV5ONeeYT?f?=gtxK)&lMzwJ7XPS&wOiwiw zi0gJY0rtmH7{$ugBx8UC;gVZ5(jKpFV-cXE7pst%D~$Q1Y4~*N6we-wSo~mfahORL ze%DP-H9QA88-4d6&Tp1D=@l(E7yNbM^(xw@bl5|sy6oWg*7-@-&!`==el9B4HJ~Mn zw|HV^)eN}szCOO=;Rdfd?co4FAb>+%YSn4`7_U>Erb-Gf)O$kPcl-zcyEk;{uWlB2 z1d`NuCl{uypV;XzkzY*r$kW@VTBzeZhUU5bE1os1SGn`!&hNyY%-0vxKPO^dY?`mX z`i&zuzXp^rhzB=i4hoGMHJfEt}U!eVYv9b<_@G0)dfd<6~F3`F{_-)g18&EP(^ z?Km$7vVK*`ESNHhXM+bELG7|8!SL~WMx^vb21U&UjOAjlDGwIsMOu*5*zx+t%Hrll zP<2Xc1;S)y&XW-+7m~-EgFf)HfYwLnVI8(%hnH70Dfwa9@`97X@#h-RKKr~OnznjJ zY1`IEfC2>7Ojb}za;oTj-+q9YeSK27xLpTp3eagccRUo4U8_pY&ryuOKSkGy+Tz{3 z4+J7E_;m15l7J`CVJZG4DpEUKyj>OTVdWOD$1B0aYQ5t;;wP(Na#Wx4IzwO2WS<8H zWF~lXG`kx!%dzv?Bs{Tdq}@WRabhmq4hA)g@gSKO&yMM9a;rkEILMC3p2&V(9KZx= zM$>k|Za+zZ}>IlBnn!G7=*@O4RFGDBf}E-BXh4Ax6rNY<{*iFKVO~899{syTK01F) z{3gP_t+7u)S$`T5BkcLyT#K*3jW{%SBJ{y8ljU7@7dTC;gFfC*kS9P*OKf^6M(?cq z5)ka1RlOpjl>Z4R?^Bs*e#i0P!-VksyMU&qHEnTG^IO$yEH}58+_p8}WOg^r*bOC zjP_=knLSVW&qvBorsef>dS&`LG5?*&`rI+wj%i;&gPLi(?F4H@QI9n_UX>M-mBs(@ z{^>4|w54)nJUvO@ce82h?8Il*`+}KzJsT~`0}3^%7|~#&*;%rZ>`kjGu(pXcJ5VPj zDpOqox*I;bDg13I<($8^n1v%Ua0}X1XLWQqi>X0PWn6hd8yL)xosplI!h+7&2l6wtI6)@$fw{syERK3g?PHvNps)9nj{m zHLwHcTUZ!)mU=dR$M#@jSo(&<0m&`x@4o69tA$tOcHT9vH7gr@`TukP_PXnvR46Jg zoY^as_3cK)aN@y?gTpr-Zl=pm`Bew=? zY#E`nsdYKIY$!<~f1JPOT-uZjEM;BiEF%kNhbpF|q}t-mmc5nVI6_MAaOmZ7Rfi`K0+OrNEdp@ zIWSd*psd|)?T>WFs`Nc?_NFvTi15SQOp`Op^Yt+pVastsylZdyP;btP^qa(fn(C0P zI<P)T+~W)iWt3agRqL<_xMl3Wd_)%ezfmBk_goh4I@{Udl;; zNcH8;(soZ$*V%b8J#H0_3EFAY$;PPZz-k=jw>h2*3@X43^|ak1bfn@&V~mN{^qW)8 zIiDPB7VCw>S*RKNT09+njLjvAyJee`iC%eR|<2T~S;2}Fes)1l$5Nz>? z2i=iFYKnnl`V73ncwB9?1uV-g9y(b#i;QB&T#aBG&hZ8f$nqmX$<@_iK@=P!+Jybl zezOJ1Pk``?F=Ea*pY4;`I9XR`9><6K+Fm<#W78{kOGxUDPBJ-lXf>~=!;$P1m#k+F zD;CjkDjLYP?D_<-=6}5}$jKPI8g`6AH@EhE=R+pcKJijnRXdoP)0euNZX0nC%QXGLT0fdx}x8an&A0QAF5!NZk)|H?R z#yVW8m2}2gC|X`qPMq1pycvTneH1>Bf5-KH$2mk45SROSvY%|C+EA3!f1B6S%vBEm znAAoQsXBCVI!Vvdi5+O5bGVul2I5hip=o^*V7F6(O4%g(s}YqC4)k}hJwC7a2}tB% zcN%3Pt=CCTJb3Xj>(UQQXH)zG(Y-3HIrrg*EOt?-hmlgMa74)z0_B7|aIupo&xAjm-NFiOwb@_?z6YKUdcrOwj&*9D$W9tH?YAJ; zTX)2#Lcm%)w*^%wtqjz9alz^`zakM<`5`*YmHg7&5%U*1iq&wOoTFMG{Hz`c5UFBt zib53l*9O}gsawhtHSeZe7EB$C>+I8-JSWEbP-pbV3FUCgwV5U^)vAl4yW~~$In9NY zXCC8-CUhFenFt9Bo2{``4GNL)08OAMCxzY7Ic3j+wrNC3`HbfTwoALS!$*U%@0j7L zt3G8}WFuxq3<_n-F%0AzvK%PdnGyHb4hMF=OnAUup}=GH2{2Z$JJ@)~Scdq#{ka81jfF>( zW)ba&`82zQ&yGxm*wN#!#v`UomkTljR$=jFKA->|%PK*SvnQ2>rFf*BoVkKBLF+aZ zwWXo0Q^9Wk!Sdd9e_j7AyOk8?*as>xH(cVP^ISSXpn4;KsWm(DXeX7$QBHc8SwSijNY)f)@lc~`%tYS~eYG?90ROzj3?>cG+5J)F2Z_;}>(j{6YK9ITmVWbb0}vtW zb(7C!hT|i9iApGbh-m?x(x#)Wtt|H)l0>{>kCqV&gQo)mqtY1@JIo|*YZKI(M6dP8 zw6+*ry2g~od@7Ksjw*}o^R8Z3Jf2TqU*;2gdO{ZqCFRhgKLIyO<~y4VLR}E){<~GMv zU>m^E9FbkagHmx39f0~|5$X7elYdoAvaz=_`H<3T2E)wF;NfN4XE$n2)#EKC<}^e* zbMD%1iQZ>8{IKbWqWD$5Iy9L&SaANh4HsWzSXr)Jhharf6o;fGlRZ=?w$E#UIR-|B z0={6nSFGvOT1ZRTCt$JEn(Km&PMrem!csCWW!h`bKI6D~xoh_p=eT!aLV5LVmX*Bv z`pU<_Wzd~NFX2SroxWU1ds#_j_fLYp^@Eg_eHVz1*?UvjdI8}h0RfFii_Wnh^>0}GoBCH?>f!AZ@(e#4`-oYgwVrd`t* zercL&+iPGO$jRdcX-S2m7)!~vkvDt2dAdGu_?baJ15mGKZI*z`Vct+RFBVxt>`sJw z38i;9&@J?}lt(g|XZYCj^}p#&=34`hY@SLf7F4zfy8`H_Rq?SoVz z=wg~jI|_R8qf$?R0#kdWV4V{5KGNxtATiT^M4mx}jRhVh+wVn6^j&}-G61%l_=pp2 z=Zj?}Vh5I>w$H#FuwNf|j`S6)Pm2Y2Ro7_5K0H)gybL;B(qTrIUkt50NHO z4OnLI14{EX*jf)ZTa0*c40lLSLk*iF*e~Kze~jXPszj9qgm2V#YMxY$s&y*k61Lt! zd(#R{Ctey&ba{+8Xs}TY)bv(qRwt-cM)GXWQ?meUBLcf0MN4rcxQ2Mro|~15c`lL3 z7Yyjrjn2v&j>@>){pz(jfx%H>61B195@b$~B>&K}+V5GPOB`v(K{VU<{;0^VmJ}P` z&hxlqq8NvH>wK9`OIAkJ+5lU2%{>jkNL8&zyfM?x0}o#3hF*@46^&&?`5L~m?~eta zB9GLi9L%g4_luAZ-)B^=9hay$b~(OYrozDNXlC|ho+(!xfE-OIvJX6fEhsxa=ovXg zXXh=@DeYA>hn9^Y^&h}oT}Zpk;lXuCV2o?wl&V0xYK}{+dS>9-K{8V>H6{E4ACz&J zMcjlL|MX&q%N6)xI@kKc9dDxUXgq;}x>HR`QF$s0%Mle1_vxQ*tmh%5UB;YmKuqbW z&j#t>;MuxJqPY4Xjy>aAu@T6$+=~tsM?8TbMdydhX6xxYUn%s~tddCD1|k*-ti71z zHVB9bv(ZW~irBd?V_R=YWs*}>OST3%O^Ri`G|;UaYPS6{j}vp1K|TgP{VeSiyoUW; zG|PQC)1eMaEV}lDqwaLJ$Hi^^>v@$Eaav848#nxMF-NmY?l8GI_3?^I(vO7iWUXX8 z6rsX;ZUh`Xn~>@(8C;fAJ(hv^;7Hiu;WE#QryiibWVeQpaYj0!S{6*sk z5A3ccYar?kJfawn^(AI!YOzQ(nSKKFJk`XvkZx~rouSWN6q71>am{ES*<9LSN3ta( z_mRy=SJ1$^d0oD|OrjJUK^YdHz5(LgaVuM21(v9B<_qPQ-p<}}%ZVfiv)E}}cX6-l zMCpX3-7%S;og*)hVX& z_`K3vQAO)2_kWzrAF#IQ0}-s~Nn4(N@5d`{Z_X=RAHDJH?xOsmW3|C|&p%cI{4Ft{ zz;kV_M^UD6lG5$ZWd3U*f;k0hL7@9dse&0VLcqH_gSuY-O(#}yxa?*i4@YanpmOz& z_|RWnLMR_wK|AEhslo?y-*z?bemw5G7JP5kL$!n*Tc8VU>0xwhbDRyBU z`(YR}?ueW9@5x?=Fc|Chjazsu_;|#IBEKFKXSVR(@A_*~@iaE6zABeQ@V+%70x=*0y;FCGf?r)ll=gMNR5sjMyZ5A>tl~syn^qR zFaCcX)H5e~F8*|jb3^7e?LNP*>SPM0ygR$oyJEogNCG{T(zj?4@5|o6-f#0}<23Qa zyB`&-f|Cw2!?XN^hSDT9S!GaR#_m(K%iE~$e^TTOKQwjaKd3vS9v+q|$+MZc6uJIE z5#zV)FrDprrSvxt?Z&KicHl?iTSmd&O=nrn?FKDk;>ipa-TaM~Y%IX(X=SxHKi)Ii zM_#rLUEZj=%DiLZCw9Q18jL&ZwtilrZuCaM-39qW9<{+n=f}Js5Bz_V=pN1Q67iGz z@!`k0{lmR$3S0kEWAp#G3q1J!Zsg>yZ@b?!H)t<#Fd?ON9?X=L`AB)hZE#)==a0JS zc6o9^u8H2Gd}Ei@Z^bQKrLX)n5fGACnjx;G! zl&*k?6zPh*=IAKk61f0(4A6(!MZu<`|{|EQ?_4Fn1VE^FW zMh40R+@637IQVVQ8 z`3Y?TcoYGE%pm{}rTnMQHX8t5MgaiR+<*Fb@Bly^2>?x_|LOaWPCRYAZT?ONA=F?; zM*!F_0{}`h0H7TM05XfeG(z=%SsRi-Vk4}}gHW6RH^2cv0-C^Gzz(=fz{CMD00msV zmO2nU$3l zPIrmp5(@_t3oFZ?Nk9-Nlo(1(K|(^of}lpQ{C~qm7l42PC{Pj+hzkHCKtu@8MK{1o zP&W}_AAz_Wk6wP*)k# z76?NBdmcB1$>930x1CB}Q@BS3DU%VY=Qimo4z?StL+?#H`W~5FJAM4|I=xNCq`_^o zm0)$vJ8maKFA9df%G#a2`jY8)6uk9On{@xZ&#|oFw^l~Q-sws(4xn_m59TuNPqZ^` zT{m(t6$Lq1+;?aV_)*#)u+@K9UNUW#V|n_hoo~9jXG2)>p2_I)dvnr#{wclTC^mzi z6Y6OXdHZU(cgM9KOEC0KNl5SzyCb5Pll{OE38vhRLQH@r1(xLua=4K?PxZ!XU85QFo1c=*I3u1-i? zbWoUm!6wJG^E6m$Fza5>_7~K|He(IH_P(MEgZ*4oPQ2r!dB;F|$IWh$vxYabN{fm;1%G8{H{vHo*d=d$^?W z&LBoibC-Jj!50z>2Wjmtk~%Fx%HPbREVk|Uxzil$uboX_3%0ZJ!h0(PGQRc>`#mDU z!oQbYz#_tfXSq`7{VVIqD8jDWlVyNUW~!7zS4_&F=>@4;x#p)>6U~moex{qT&JIJeZ(^3|*A^gNpHjro?p)lHRTdJu*?3ELldr+houZ+) z``8DzE3Yf4%pLq8?({o&UAf?Gd`Cza&gU0sx4N_`vu0zzYNLEE)@t@cgSn7#tmkcr zOU3l;Bo_xWMVK`3{;OATEkvyqzIYZ&*vxDQ01SfumvI0QbXx@9N;?&pKj>*SXyuZ~6R||jvmRg&!c)UM#h&sGa(0bZ`q3i9UYSI z>Cg$BCh4lYRWJJ}iuAhrwA<`8)o#Zk+ulrruFe*l^c5Kj)dOIw=Ic=G`in-MC$gg>onf}ZjkgsYPY!mRd9wfkN8)rlEPHe6};%E zxp7T9C zIAGfrMBVajEyB6=+fCnV{)xXZY<{H;bN;M3?k=M7fj%CCrE#!>vjFQ?F8=YJii~`V zKG|1_`c4?Prc12p_%Sj3&|Amyo^Y2yK>HzBUp^P62Ex#CFYScS3`?3pM1XP-RsUh zZDgbOz+8P?>Yoowvs6+CrNH7#FS$8bCVAiQidU>Jh`yhC!S|Fcflq=VS4FrYvHq8;JJw24Xty!o6t|E<7I98{FpXRc+{`7Rvk=smGGuE{&S7rOn$>&zrU{b|O%o5LPr(rdIKJEh|8 zep4Pl7c=khq_GuFElLih4)-Lg&&=rxsWT-i4Gg#GB{G#LbJM3VUiom%=M)1lGqbE7FT)(ew4r`Xb^|j{XRc7UcE$?RA=Yhjw?#f<#>SC%NztQs7e;_?%p0OD-e#K zD|yHkCtCCPHd=BX?Ma+_zImz7I8e#}3eg!nP)TT9_S{kEcXQst7v0)j2q zbT9O>kROT-kJONV=B6N7*KbRqThpHVAaHfvz@;IUH^pkMepmE$L+gl`-b*G+Kik&65bIaG?9b)n$r~gp!wPV|mI5|u7RsYJlpq>4# z>8r4M!8^Y|%{6##$2xxIlqjN_;giz|K{N{6lMu(yS2%c7Cj2t)DsMt1!|%u(mUKgf z97BO-M75>E)_rz?ImHu;h23NMElq`7jh5N9OA)@O)U7H`rXGFr>AQ3(4KGBVog~;$ zC>~We^z%mMuYM`!452nh?y7%+9QCU$%{`J~aKU8f4OJcp-3%L6B5#N=se$>(21Xa1A5<^**i4#=ya(k@MWH67YlkV-8M> ztMMGyGl$Mi+Jf^D>vkpSmu-oJYZc?NQTOv4FM!j~pH|M_Ng*sl`y_#Z%`1hsxFXn4 zu+AsEwhuh)?(4^?x_6}|eZ^g#ez~cv|B}zFMY>kW{QTO7=Gy(Ll?&ke^@6e=76&!j z8F?e6#g`+=ff7r13l)QSZCK?D@D08>HytNv^m&bIa zz<0)=o(D&1Fw}nu9QG5N<1+P<$MFcJZMnC=x0)>UEoP!&TOh?8;Z}3!{#0p_C4RE~ zO2x}o(XLx(Hh-2LgC6U-=;ItIHhx=JJO`{c1PdoZ$`pvC0UD|6&6 zZE1C}DRzB_R!61Z&a!PWmxDj?xT-%^9#+|v=o*aF6xy7avwBmyw~1+}+kS>*->^)M ztz8QKp~O4s%Am1_kOSftLiWyu_2q>nbR~LEYC&o|thW!OQnDBMZTtJ7VI7I*uKKK+ zLb}Wbx1q03l1P!`?aywt)js;BKNG(&voM8X?kf%S{x(m}mHI=TBTBDK#r}#+sydcL z{&u`r!Gn#T*Xx)Lw(d{o!*1K|I_#(bcM5*BA56OH&gA&j3 z+g$1G(>AzB!hSt7olKIGpuGT$2w|8YoN(X!3m_;!^fwGcZ~`bo{1xVv3NJ*8p*zQS zvCDh^inu_EoG)|JG`C2~)BG2Xm0K}&ITdfcH(QYhO(j`Zlza>s;~tp)3~gVGMO>#P zdW9H~cp(I5Ao}h_R?>f&^TktP-evy@J_p&5edkBMO&Xz0M>ZF9Bp z;5KV-lVuB@eYSP>o$?+wdFnNLA2(_NAB1DyXG-K0vvnKt@g7a&P{;Bbkdot>AK2+P z(_10GY3P&{1LcFz3Nfb}^5`cqwB2=8dknZ;pNi!XaT{(iPCfZvHC2gmN0wvXu67l{ zSatuG%<8H~yC5qwJ+bLJYz4__0$;Qrxg6ptkK;HMnwczTqnkq~L#-w6qlumt5LU3) zr0|GO!@yy29?ZT>zM=ShQ{`b&o@82)!i>~AvIY7vJvZ^$gNF2+)TehzhZ~L>R9{Am z8F7{~7)xe+NnX#K4eVGue5hgEqCUE)6n zem})118{!tD%(9Q{?r-jd%DV!r=asjgZ~2HBjZ%@IT3_E8L%UE=Xd1aOdAI;or?EVHG#Pr2kpzkw7#WWxny^5CNwAVT5sGOh_9u>?4oyA@M`y^ ztgQp&dM57hAr_hNVmeu0%;lLuLju|TWwYKRcqm>$&$O`3i`(gpg44R*(kMeuB32J| z%qd2CYmhw5{*}U&-?PG&YZMM_myHjYrMLN8ul=&?7o;b0OMTEwO3IgfHF?HM@QcD4 z{}(Qym0h0Tt{yoQk)~SWPJ$I^m^J!4@%=X`xWYrHmiE-h^q!?^1>PT#GL|5*ub9l0 z)XovrTtT{+(aoJ+{aQ}VD1N84PFHv)`Px)NNJ3%@b(RRnlO77Cx$6y1rSP9lyf6$qm=i&(W2b2zd?^f*HmEz67H9%7%rML9p=6v4YvcLBhU zla((saSkG{pL8)|*jN_btX#PK?<*R0h`(xKb zIsVWe3Dm12J-pcuw`I(3Yhb-MF;F$8V8&#a2VWuob!X$X>Jxh=>&bhBk8&=J*_l;FFeqx zc)tMMM%DUo!{LLwSwGD?Y4&=@4HI~$cRn#U*)=n`U|O%3YPl3wdeY3PUwGI?&|m}!AEYMUN-5`Vk< zONU9-(0|3Wo0)&9ouZ>Yd+pA_&ZX7Rep1IuQ^dii6P%~r8n4SHC8>SvP;9iK)%)`v zM^M{ggfuCxYj#fr^L%LEYF0Ty@6swYJ;**v)G}DwtJbdBFflEnBJ%;W5oeM6AeN3q zVzKefq)d6@&}l~ooYeHm?q{hdd(20DWg1Qd!T1pbH%btUkQe!vWFP>+i6Y3=xx9z5 z@ft@Kilx^5b)tWgBXHXF6>hZKI}z&jflZSNg#I$7PQk3jTlolE5oAbe2 zayleKKZ~oOMLXSMjL)5FlsfM|@Q+fT50LvEJP~-vBn;Xcak*$f!^za;&Rq)MFKq;LHedi&jt}c^O2Jy|`=OY=Q~RcL*QV0LVv0gjb1d03syj6Z;mwH8W}ZM05H|qa zj8D8J#m6PkfPB5P#N7Bb4TsR%tmDW{Tx5cL@vQ_&M-X2_QB8dTMaW(7#^{gcNC(Zq0+zzgnZK8lZ3TS z0ESeG=@smomnQB+8`BMb!)Zf`k+5CB*v8m6wC5P-XAq}rCe(uk2RVvM`Vd)YlU05# z(10Vgcq*atqB9GBnYO2g|UYIGQa1vqC9M1AJBM3LC z&&I_aL{zFt#A-0ni5xQoMVPkmx9mu(6)*vfT{PyY9HiQdNV~=9_P|M1;t)s)xUw5D z_ApS;kmf!Dz(XnnF932%Xyr?b1HRXX_v)_O!72enp11pNFy#eMa{;U$t#0f5j0h^? z3ofMJAulP6(L{UF8fo3+JVOIsqL+5Pp!vT>?P3K>UTWGHoj$I2p}r1n-hZzf{IdmZ~|N%OuF{)%mMJ zG~dm03Djnp`r5SPz?S!Sevfw8LnEblCGH(5G4`yu+8885irA0lH8p6M25!XH#f1*C z!KZ0NuGQG6(H}$SUn)}l{3NTYNm4sC28MTRK%Ok?59@*8KzOQA6ECkghK>OTduw;v z<~}w=E>ipJnqO8LKxvGoyczkZt0A6~2_{7RBe(x!wO2$B~&;0Y&-#Jph7c=5vkuPTN&&(ME* zLoQ6;HZ9gU*GrTZ9gk6pG9WJZ5QX!|nhyXQ6d3)l5c_K+lu4bWs)(ds)-jkWj_lZp zO*nX-ksFbLc_>i7>6k%BVT!c&5&#g5dnp|D!+0qGxQ3a#ns({BzQzfnDRv`l zplP1-CK?TWK31ub6a(7?gyswbV;MO7xS1x5VvKH(yI5)n7Hc4&)hoS9l~|49OYtly z+RTDH`|xJ6@IpGssX-%1mrjPR*y*BB&i`9D`{WE*N=GeFk$`&Lu~Xi`_8;+|)dR=GeS ze{DYMbIfKDr83uGRM)Hbq0s|xV44u27$fT!X9qnn9=!n$gfagWVS5-DU#vVuse3&< z62pGol*L?J7;Ol6o0C>kN)z~-mIZ0 zk5sQ!Dz6%NREdL6XOwlv9>DZwuP>q^Vce2rPvf0KYm-KuSmrC z0B2D#Qp;Yr3Buqxx!#bpVruV#yA6rxWk#PmLK@H+1o!9ly=@4o6O%F1DZZOe@mLiD zj#A>E&`sVlh111pKMIo{OR^M}3?6$tMctXI)0A2+5JfKJ)2>j914>CT2ZyayRU>^g zPcrkp5~{kaaa