From 46b9b8c560dc0c10e13de3e8ce2ae6c92221140d Mon Sep 17 00:00:00 2001 From: Ivan Penchev <30929349+ivan-penchev@users.noreply.github.com> Date: Sun, 3 Nov 2024 21:20:11 +0100 Subject: [PATCH] feat: add article about building TUI (#19) * feat: added article about TUI * fix: added link * fix: relative links * chore: rephrase some sentences --- _posts/2024-11-02-create-tui-with-go.md | 914 ++++++++++++++++++++++++ assets/img/create-tui-with-go.png | Bin 0 -> 147700 bytes 2 files changed, 914 insertions(+) create mode 100644 _posts/2024-11-02-create-tui-with-go.md create mode 100644 assets/img/create-tui-with-go.png diff --git a/_posts/2024-11-02-create-tui-with-go.md b/_posts/2024-11-02-create-tui-with-go.md new file mode 100644 index 0000000..b44d828 --- /dev/null +++ b/_posts/2024-11-02-create-tui-with-go.md @@ -0,0 +1,914 @@ +--- +title: "Build a System Monitor TUI (Terminal UI) in Go" +author: ivan +date: 2024-11-02 12:22:21 +0100 +categories: [Programming, Go] +tags: [Go, Fundamentals] +toc: true +mermaid: true +math: true +--- + +> The goal of this article is to: +> 1. Learn how to access and read system information. +> 2. Learn how to build a text-based user interface in the Terminal. +> +> We will be using two libraries to achieve this goal [shirou/gopsutil](https://github.com/shirou/gopsutil) and [charmbracelet/bubbletea](https://github.com/charmbracelet/bubbletea) +> +> If you want to skip my ramblings and just see the final solution, the source code is available [here](https://github.com/ivan-penchev/system-monitor-tui). +{: .prompt-info } + +## Why a TUI? + +As an engineer, I often have to interact with systems. And I have to do it in a manner where it is consistent, meaning if I am creating a vendor account in 2022 or today, I must always use the same procedure. The problem? Human memory is far from flawless, we may have done a procedure over, and over, and over again... and forget to do a small step. You don't have to look further than the case of the [2018 Hawaii false missile alert](https://en.wikipedia.org/wiki/2018_Hawaii_false_missile_alert) to see the potential consequences of such lapses. + + +So how do we as engineers combat this? We try to automate the interactions so we do not have to rely on our memory. Scripting repetitive tasks is a common approach. +I can't remember how often I have seen, or written myself, a bash script similar to: + +```bash +#!/bin/bash + +echo "Select an action:" +select action in "Create Vendor Account" "Update Vendor Information" "Deactivate Vendor Account" "Exit" +do + case $action in + "Create Vendor Account") + # Command to create a vendor account + echo "Creating vendor account..." + ;; + "Update Vendor Information") + # Command to update vendor information + echo "Updating vendor information..." + ;; + "Deactivate Vendor Account") + # Command to deactivate a vendor account + echo "Deactivating vendor account..." + ;; + "Exit") + break + ;; + *) + echo "Invalid option. Please try again." + ;; + esac +done +``` +In layman's terms, this is a 'menu' that allows the user to choose from a list of actions. Once an action is selected, the corresponding command is executed. While this is a step in the right direction, the interface is purely text-based and can be cumbersome to navigate, especially for more complex interactions. + +While this script is functional, it lacks the user-friendly interface that a TUI can provide. A TUI provides a graphical interface within a text-only terminal environment, improving user interaction by offering elements like menus, buttons, and forms. It bridges the gap between the ease of use found in Graphical User Interfaces (GUIs) and the power and accessibility of command-line interfaces. TUIs are particularly useful when GUIs are not practical. + +Moreover, TUIs can offer a better user experience than simple scripts. They can provide immediate feedback, error handling, and a more intuitive navigation system, which can be essential for complex or critical tasks. By automating procedures through a TUI, engineers can ensure that processes are followed accurately and efficiently, minimizing the risk of human error and increasing productivity. + +## Starting up + +Let us create a basic skeleton for our project. Usually I would advice you follow the [Standard Go Project Layout](https://github.com/golang-standards/project-layout), but due to the expected size of this project, I will just plug everything into one package. + +``` bash +mkdir system-monitor-tui +cd system-monitor-tui +go mod init github.com/ivan-penchev/system-monitor-tui +touch main.go +``` + +```go +package main + +import ( + "fmt" +) + +func main() { + printSystemInfo() +} + +func printSystemInfo() { + // TO-DO: Retrieve system information + fmt.Println("CPU Percentage :", "TO-DO") + fmt.Println("Memory Percentage :", "TO-DO") + fmt.Println("Running Processes :", "TO-DO") +} + +``` +{: file='main.go'} + +Congrats we did the the equivalent of a "hello world" :) + +With our project structure in place, we can now focus on retrieving system resources using the `gopsutil` library. + +## Getting System Resources using gopsutil +`gopsutil` is a Go package that provides a set of functions to retrieve system and process metrics from various platforms. It serves as a convenient and cross-platform way to gather information about system resources such as CPU usage, memory usage, disk usage, and more. + +In other words, with this package, we can run our code on Windows, Linux, and Mac, and it will still provide us with the system resources. + +```bash +touch systeminfo.go +go get github.com/shirou/gopsutil/v4 +``` + +We would create 3 methods: + +1. `GetCPUStats` this function retrieves CPU usage statistics and converts them into percentage values. The `cpu.Times(false)` function returns the CPU times, and the function calculates the percentage of time spent in various states (user, system, idle, etc.). +2. `GetMEMStats` this function retrieves memory usage statistics using `mem.VirtualMemory()`. It returns the total, used, free, and available memory, along with the percentage of used memory. +3. `GetProcesses` this function retrieves a list of running processes. It gathers information such as PID, name, username, memory usage, CPU usage percentage, and running time for each process. The processes are then sorted by CPU usage percentage in descending order, and the top n processes are returned. + +
+ View the full systeminfo.go file + +```go +package main + +import ( + "fmt" + "sort" + "time" + + "github.com/shirou/gopsutil/v4/cpu" + "github.com/shirou/gopsutil/v4/mem" + "github.com/shirou/gopsutil/v4/process" +) + +func GetCPUStats() (cpu.TimesStat, error) { + stats, err := cpu.Times(false) + if err != nil { + return cpu.TimesStat{}, err + } + if len(stats) == 0 { + return cpu.TimesStat{}, nil + } + + currStats := stats[0] + + total := currStats.User + currStats.System + currStats.Idle + currStats.Nice + + currStats.Iowait + currStats.Irq + currStats.Softirq + currStats.Steal + + currStats.Guest + + if total == 0 { + return cpu.TimesStat{}, nil + } + + // Overwrite TimesStat fields with percentage values + currStats.User = (currStats.User / total) * 100 + currStats.System = (currStats.System / total) * 100 + currStats.Idle = (currStats.Idle / total) * 100 + currStats.Nice = (currStats.Nice / total) * 100 + currStats.Iowait = (currStats.Iowait / total) * 100 + currStats.Irq = (currStats.Irq / total) * 100 + currStats.Softirq = (currStats.Softirq / total) * 100 + currStats.Steal = (currStats.Steal / total) * 100 + currStats.Guest = (currStats.Guest / total) * 100 + + return currStats, nil +} + +func GetMEMStats() (mem.VirtualMemoryStat, error) { + v, err := mem.VirtualMemory() + if err != nil { + return mem.VirtualMemoryStat{}, err + } + + return mem.VirtualMemoryStat{ + Total: v.Total, + Used: v.Used, + Free: v.Free, + UsedPercent: v.UsedPercent, + Available: v.Available, + }, nil +} + +type ProcessInfo struct { + PID int32 + Name string + Username string + Memory uint64 + CPUPercent float64 // CPU usage percentage + RunningTime string +} + +func GetProcesses(n int) ([]ProcessInfo, error) { + procs, err := process.Processes() + if err != nil { + return nil, err + } + + var processInfos []ProcessInfo + for _, p := range procs { + pid := p.Pid + name, err := p.Name() + if err != nil { + name = "Unknown" + } + + createTime, err := p.CreateTime() + if err != nil { + createTime = 0 + } + + startTime := time.Unix(createTime/1000, 0) + runningTime := time.Since(startTime).Truncate(time.Second) + + username, err := p.Username() + if err != nil { + name = "Unknown" + } + + memoryInfo, err := p.MemoryInfo() + if err != nil { + processInfos = append(processInfos, ProcessInfo{ + PID: pid, + Name: name, + RunningTime: runningTime.String(), + Username: username, + Memory: 0, + CPUPercent: 0, + }) + continue + } + + memory := memoryInfo.RSS + + cpuPercent, err := p.CPUPercent() + if err != nil { + cpuPercent = 0 + } + + processInfos = append(processInfos, ProcessInfo{ + PID: pid, + Name: name, + RunningTime: runningTime.String(), + Username: username, + Memory: memory, + CPUPercent: cpuPercent, + }) + } + + sort.Slice(processInfos, func(i, j int) bool { + return processInfos[i].CPUPercent > processInfos[j].CPUPercent + }) + + if len(processInfos) > n { + processInfos = processInfos[:n] + } + + return processInfos, nil +} + +func convertBytes(bytes uint64) (string, string) { + const ( + KB = 1024 + MB = KB * 1024 + GB = MB * 1024 + ) + + switch { + case bytes >= GB: + return fmt.Sprintf("%.2f", float64(bytes)/float64(GB)), "GB" + case bytes >= MB: + return fmt.Sprintf("%.2f", float64(bytes)/float64(MB)), "MB" + case bytes >= KB: + return fmt.Sprintf("%.2f", float64(bytes)/float64(KB)), "KB" + default: + return fmt.Sprintf("%d", bytes), "B" + } +} + +``` +{: file='systeminfo.go'} +
+ +Now that we have our system information functions ready, let's integrate them into our main program. + +```go +package main + +import ( + "fmt" +) + +func main() { + printSystemInfo() +} + +func printSystemInfo() { + cpuUsage, _ := GetCPUStats() + memoryUsage, _ := GetMEMStats() + runningProcesses, _ := GetProcesses(10) // Get top 10 CPU intensive processes + + fmt.Println("CPU Percentage :", cpuUsage) + fmt.Println("Memory Percentage :", memoryUsage) + fmt.Println("Running Processes :", runningProcesses) +} +``` +{: file='main.go'} + +### Looking and understanding the output + +Now if everything worked as expected you would be able to see the output. +Lets examine it, to understand it better. this would help us when we have to design our TUI. + +1. CPU Percentage output + +```json +{ + "cpu": "cpu-total", // The CPU identifier. + "user": 0.2, // Percentage of CPU time spent in user mode. + "system": 0.5, // Percentage of CPU time spent in system mode. + "idle": 99.2, // Percentage of CPU time spent idle. + "nice": 0.0, // Percentage of CPU time spent on low-priority processes. + "iowait": 0.0, // Percentage of CPU time spent waiting for I/O operations. + "irq": 0.0, // Percentage of CPU time spent servicing interrupts. + "softirq": 0.0, // Percentage of CPU time spent servicing software interrupts. + "steal": 0.0, // Percentage of CPU time stolen by other operating systems running in a virtualized environment. + "guest": 0.0, // Percentage of CPU time spent running guest operating systems. + "guestNice": 0.0 // Percentage of CPU time spent running guest operating systems with a low priority. +} +``` + +2. Memory Percentage output: + +```json +{ + "total": 33411727360, // Total physical memory available. + "available": 17795051520, // Memory available for use. + "used": 15616675840, // Memory currently used. + "usedPercent": 46, // Percentage of memory used. + "free": 17795051520, // Free memory. +} +``` + +3. Running Processes output: + +```json +[ + { + "PID": 7896, // Process ID. + "Name": "system-monitor-tui.exe", // Name of the process. + "Username": "NETA\\ivan", // Username of the process owner. + "Memory": 7536640, // Memory used by the process (in bytes). + "CPUPercent": 85.02660992784301, // CPU usage percentage of the process. + "RunningTime": "0s" // How long the process has been running. + } + //... omitted +] +``` + +### Using go routines and channels to refresh information? + +> This section is optional if you are already familiar with how goroutines and channels work. +> +> The reason I am highlighting this, is because when using [bubbletea](https://github.com/charmbracelet/bubbletea) the framework abstract those concepts away. +> Yet it is still a good idea to be familiar with the "magic" under the hood of the framework. +{: .prompt-info } + +Goroutines are distinct from traditional threads in that they are managed by the Go runtime, which is responsible for their scheduling and execution. They are more lightweight than operating system threads, and many goroutines can run concurrently on a small number of operating system threads. This enables efficient parallelism and concurrency without the overhead associated with traditional threading models. + +In Go, you can create a new goroutine by using the go keyword followed by a function call. For example: + +```go +func main() { + go worker() // Start a worker goroutine + + // Keep the main goroutine running + select {} +} + +func worker() { + for { + fmt.Println("Working...") + time.Sleep(time.Second) + } +} +``` +In this example, the worker function runs in a separate goroutine, printing "Working..." every second. The select{} statement ensures that the main Goroutine continues running indefinitely, preventing the program from exiting immediately, thus allowing the worker goroutine to continue its work concurrently. + +```go +func main() { + // Start the worker goroutine using an anonymous function + go func() { + for { + worker() + time.Sleep(time.Second) + } + }() + + // Keep the main goroutine running + select {} +} + +func worker() { + for { + fmt.Println("Working...") + // You may include additional logic here if needed + } +``` + +Now that you've learned how goroutines work , update your program to continuously print CPU usage, memory usage, and running processes. + +```go +package main + +import ( + "fmt" + "os" + "os/signal" + "sync" + "syscall" + "time" +) + +func main() { + // Create a channel to listen for OS signals + stopChan := make(chan os.Signal, 1) + signal.Notify(stopChan, syscall.SIGINT, syscall.SIGTERM) + + // Create a channel to signal when to print system info + printChan := make(chan struct{}) + + // Use a wait group to wait for all goroutines to finish + var wg sync.WaitGroup + + // Start a goroutine to handle the printing + wg.Add(1) + go func() { + defer wg.Done() + printSystemInfo(printChan) + }() + + // Create a ticker to signal every 10 seconds + ticker := time.NewTicker(10 * time.Second) + defer ticker.Stop() + + // Main loop to handle signals and ticker + // as well as keep the main goroutine running + for { + select { + case <-ticker.C: + printChan <- struct{}{} + case <-stopChan: + fmt.Println("Received stop signal, stopping...") + close(printChan) + wg.Wait() + return + } + } +} +func printSystemInfo(printChan chan struct{}) { + for range printChan { + cpuUsage, _ := GetCPUStats() + + memoryUsage, _ := GetMEMStats() + + runningProcesses, _ := GetProcesses(10) + + fmt.Println("CPU Percentage :", cpuUsage) + fmt.Println("Memory Percentage :", memoryUsage) + fmt.Println("Running Processes :", runningProcesses) + } +} + +``` +{: file='main.go'} + + +This is a very standard pattern for fetching and refreshing data. +Our framework abstracts and handles all this underneath, so we wouldn't actually be writing this directly. + +## Writing TUI using bubbletea + +Creating a Text User Interface (TUI) can be a complex task, especially if you aim to build a robust, interactive, and visually appealing interface. Using a framework like Bubble Tea can significantly simplify this process. +Bubble Tea is a modern TUI framework for Go, inspired by [The Elm Architecture](https://guide.elm-lang.org/architecture/). Here are some specific benefits of using Bubble Tea: + +Firstly, it employs a Model-Update-View (MUV) architecture, which ensures a clear separation of concerns. The model is responsible for holding the application state, the update function handles state changes, and the view function renders the state. This structured approach simplifies the management of complex state transitions. + +Secondly, Bubble Tea provides a declarative UI, which significantly enhances ease of use. It allows developers to straightforwardly declare what the UI should look like, making it easier to understand and reason about the UI and its changes over time. + +Thirdly, Bubble Tea includes a rich library of built-in components, such as text inputs, lists, and tables, which can be used out of the box. These components are also highly customizable, allowing developers to extend and modify them to meet specific needs. + +Lastly, Bubble Tea supports concurrency, enabling asynchronous operations. This feature allows background tasks, such as data fetching, to be handled without blocking the UI, ensuring a smooth and responsive user experience. + +For our project we would be using the following packages: +1. [charmbracelet/bubbletea](https://github.com/charmbracelet/bubbletea) - is the core framework for building TUIs in Go. +2. [charmbracelet/bubbles](https://github.com/charmbracelet/bubbles) - a collection of reusable components for building TUIs. It includes various elements like text inputs, lists, tables, and more, which can be easily integrated into your application. +3. [charmbracelet/lipgloss](https://github.com/charmbracelet/lipgloss) - a package for styling terminal applications. It provides tools to add colors, styles, and layouts to your TUI, allowing you to create visually appealing interfaces. + +```bash +touch tui.go +go get github.com/charmbracelet/lipgloss +go get github.com/charmbracelet/bubbletea +go get github.com/charmbracelet/bubbles +``` + +With these packages installed, we can start defining our TUI model. + +### Define our Model (struct) +In order to create our TUI we must define a model. +For something to be considered a `Model` it must have the following 3 methods: +```go +type Model interface { + // Init is the first function that will be called. It returns an optional + // initial command. To not perform an initial command return nil. + Init() Cmd + + // Update is called when a message is received. Use it to inspect messages + // and, in response, update the model and/or send a command. + Update(Msg) (Model, Cmd) + + // View renders the program's UI, which is just a string. The view is + // rendered after every Update. + View() string +} +``` +We need to store some data for our Model. We will use the following model to store the data for our state: + +```go +type model struct { + width int + height int + + processTable table.Model + tableStyle table.Styles + baseStyle lipgloss.Style + viewStyle lipgloss.Style + + CpuUsage cpu.TimesStat + MemUsage mem.VirtualMemoryStat +} + +type TickMsg time.Time +``` +{: file='tui.go'} + +Next, let's define the view for our model. + +### Define our Model (View) + +The view defines how the user interface (UI) is rendered and what elements are displayed. + +```go +func (m model) View() string { + // Sets the width of the column to the width of the terminal (m.width) and adds padding of 1 unit on the top. + // Render is a method from the lipgloss package that applies the defined style and returns a function that can render styled content. + column := m.baseStyle.Width(m.width).Padding(1, 0, 0, 0).Render + // Set the content to match the terminal dimensions (m.width and m.height). + content := m.baseStyle. + Width(m.width). + Height(m.height). + Render( + // Vertically join multiple elements aligned to the left. + lipgloss.JoinVertical(lipgloss.Left, + column(m.ViewHeader()), + column(m.ViewProcess()), + ), + ) + + return content +} +``` +{: file='tui.go'} + +
+ View ViewHeader() function + +```go + +// Uses lipgloss.JoinVertical and lipgloss.JoinHorizontal to arrange the header content. +// It displays the last update time and various system statistics (CPU and memory usage) in a structured format. +func (m model) ViewHeader() string { + // defines the style for list items, including borders, border color, height, and padding. + list := m.baseStyle. + Border(lipgloss.NormalBorder(), false, true, false, false). + BorderForeground(Color.Border). + Height(4). + Padding(0, 1) + + // applies bold styling to the text. + listHeader := m.baseStyle.Bold(true).Render + + // helper function that formats a key-value pair with an optional suffix. It aligns the value to the right and renders it with the specified style. + listItem := func(key string, value string, suffix ...string) string { + finalSuffix := "" + if len(suffix) > 0 { + finalSuffix = suffix[0] + } + + listItemValue := m.baseStyle.Align(lipgloss.Right).Render(fmt.Sprintf("%s%s", value, finalSuffix)) + + listItemKey := func(key string) string { + return m.baseStyle.Render(key + ":") + } + + return fmt.Sprintf("%s %s", listItemKey(key), listItemValue) + } + + return m.viewStyle.Render( + lipgloss.JoinVertical(lipgloss.Top, + fmt.Sprintf("Last update: %d milliseconds ago\n", time.Now().Sub(m.lastUpdate).Milliseconds()), + lipgloss.JoinHorizontal(lipgloss.Top, + // Progress Bars + list.Render( + lipgloss.JoinVertical(lipgloss.Left, + listHeader("% Usage"), + listItem("CPU", fmt.Sprintf("%s %.1f", ProgressBar(100-m.CpuUsage.Idle, m.baseStyle), 100-m.CpuUsage.Idle), "%"), + listItem("MEM", fmt.Sprintf("%s %.1f", ProgressBar(m.MemUsage.UsedPercent, m.baseStyle), m.MemUsage.UsedPercent), "%"), + ), + ), + + // CPU + list.Border(lipgloss.NormalBorder(), false).Render( + lipgloss.JoinVertical(lipgloss.Left, + listHeader("CPU"), + listItem("user", fmt.Sprintf("%.1f", m.CpuUsage.User), "%"), + listItem("sys", fmt.Sprintf("%.1f", m.CpuUsage.System), "%"), + listItem("idle", fmt.Sprintf("%.1f", m.CpuUsage.Idle), "%"), + ), + ), + list.Border(lipgloss.NormalBorder(), false).Render( + lipgloss.JoinVertical(lipgloss.Left, + listHeader(""), + listItem("nice", fmt.Sprintf("%.1f", m.CpuUsage.Nice), "%"), + listItem("iowait", fmt.Sprintf("%.1f", m.CpuUsage.Iowait), "%"), + listItem("irq", fmt.Sprintf("%.1f", m.CpuUsage.Irq), "%"), + ), + ), + list.Render( + lipgloss.JoinVertical(lipgloss.Left, + listHeader(""), + listItem("softirq", fmt.Sprintf("%.1f", m.CpuUsage.Softirq), "%"), + listItem("steal", fmt.Sprintf("%.1f", m.CpuUsage.Steal), "%"), + listItem("guest", fmt.Sprintf("%.1f", m.CpuUsage.Guest), "%"), + ), + ), + + // MEM + list.Border(lipgloss.NormalBorder(), false).Render( + lipgloss.JoinVertical(lipgloss.Left, + listHeader("MEM"), + func() string { + value, unit := convertBytes(m.MemUsage.Total) + return listItem("total", value, unit) + }(), + func() string { + value, unit := convertBytes(m.MemUsage.Used) + return listItem("used", value, unit) + }(), + func() string { + value, unit := convertBytes(m.MemUsage.Available) + return listItem("free", value, unit) + }(), + ), + ), + list.Render( + lipgloss.JoinVertical(lipgloss.Left, + listHeader(""), + func() string { + value, unit := convertBytes(m.MemUsage.Active) + return listItem("active", value, unit) + }(), + func() string { + value, unit := convertBytes(m.MemUsage.Buffers) + return listItem("buffers", value, unit) + }(), + func() string { + value, unit := convertBytes(m.MemUsage.Cached) + return listItem("cached", value, unit) + }(), + ), + ), + ), + ), + ) +} +``` +{: file='tui.go'} +
+ +
+ View ViewProcess() and ProgressBar() functions + +```go +// Gets the View from the table component and renders is on our View +func (m model) ViewProcess() string { + return m.viewStyle.Render(m.processTable.View()) +} + +// creates a visual representation of a percentage as a progress bar. +func ProgressBar(percentage float64, baseStyle lipgloss.Style) string { + totalBars := 20 + fillBars := int(percentage / 100 * float64(totalBars)) + // renders the filled part of the progress bar with a green color. + filled := baseStyle. + Foreground(Color.Green). + Render(strings.Repeat("|", fillBars)) + // renders the empty part of the progress bar with a secondary color. + empty := baseStyle. + Foreground(Color.Secondary). + Render(strings.Repeat("|", totalBars-fillBars)) + + return baseStyle.Render(fmt.Sprintf("%s%s%s%s", "[", filled, empty, "]")) +} + +``` +{: file='tui.go'} +
+ +With our view in place, let's move on to initializing our model. + +### Define our Model (Init) +The `Init` function is part of the `tea.Model` interface and is called once when the Bubble Tea program starts. +It is used to initialize the model and set up any initial commands. If we do not wish to perform any initial commands, we simply return nil. + +```go +// Calls the tickEvery function to set up a command that sends a TickMsg every second. +// This command will be executed immediately when the program starts, initiating the periodic updates. +func (m model) Init() tea.Cmd { + return tickEvery() +} + +func tickEvery() tea.Cmd { + // tea.Every function is a helper function from the Bubble Tea framework + // that schedules a command to run at regular intervals. + return tea.Every(time.Second, + // Callback function that takes the current time (t time.Time) as a parameter and returns a message (tea.Msg). + // This callback is invoked every second. + func(t time.Time) tea.Msg { + return TickMsg(t) + }) +} +``` +{: file='tui.go'} + +### Define our Model (Update) +Once we have initialized our model, and configured how it must look (view), the last thing we must do is handle updates. +This is where the Update function of the model comes into play. + +```go + +// Takes a tea.Msg as input and uses a type switch to handle different types of messages. +// Each case in the switch statement corresponds to a specific message type. +func (m model) Update(msg tea.Msg) (tea.Model, tea.Cmd) { + switch msg := msg.(type) { + + // message is sent when the window size changes + // save to reflect the new dimensions of the terminal window. + case tea.WindowSizeMsg: + m.height = msg.Height + m.width = msg.Width + + // message is sent when a key is pressed. + case tea.KeyMsg: + switch msg.String() { + // Toggles the focus state of the process table + case "esc": + if m.processTable.Focused() { + m.tableStyle.Selected = m.baseStyle + m.processTable.SetStyles(m.tableStyle) + m.processTable.Blur() + } else { + m.tableStyle.Selected = m.tableStyle.Selected.Background(Color.Highlight) + m.processTable.SetStyles(m.tableStyle) + m.processTable.Focus() + } + // Moves the focus up in the process table if the table is focused. + case "up", "k": + if m.processTable.Focused() { + m.processTable.MoveUp(1) + } + // Moves the focus down in the process table if the table is focused. + case "down", "j": + if m.processTable.Focused() { + m.processTable.MoveDown(1) + } + // Quits the program by returning the tea.Quit command. + case "q", "ctrl+c": + return m, tea.Quit + } + // This custom message is sent periodically by the tickEvery function. + // The model's lastUpdate field is updated to the current time. + // Fetching CPU Stats, Memory Stats & Processes + // Returning Command: The tickEvery command is returned to ensure that the TickMsg continues to be sent periodically. + case TickMsg: + m.lastUpdate = time.Time(msg) + cpuStats, err := GetCPUStats() + if err != nil { + slog.Error("Could not get CPU info", "error", err) + } else { + m.CpuUsage = cpuStats + } + + memStats, err := GetMEMStats() + if err != nil { + slog.Error("Could not get memory info", "error", err) + } else { + m.MemUsage = memStats + } + + procs, err := GetProcesses(5) + if err != nil { + slog.Error("Could not get processes", "error", err) + } else { + rows := []table.Row{} + for _, p := range procs { + memString, memUnit := convertBytes(p.Memory) + rows = append(rows, table.Row{ + fmt.Sprintf("%d", p.PID), + p.Name, + fmt.Sprintf("%.2f%%", p.CPUPercent), + fmt.Sprintf("%s %s", memString, memUnit), + p.Username, + p.RunningTime, + }) + } + m.processTable.SetRows(rows) + } + + return m, tickEvery() + } + // If the message type does not match any of the handled cases, the model is returned unchanged, and no new command is issued. + return m, nil +} + +func (m model) View() string { + // Sets the width of the column to the width of the terminal (m.width) and adds padding of 1 unit on the top. + // Render is a method from the lipgloss package that applies the defined style and returns a function that can render styled content. + column := m.baseStyle.Width(m.width).Padding(1, 0, 0, 0).Render + // Set the content to match the terminal dimensions (m.width and m.height). + content := m.baseStyle. + Width(m.width). + Height(m.height). + Render( + // Vertically join multiple elements aligned to the left. + lipgloss.JoinVertical(lipgloss.Left, + column(m.ViewHeader()), + column(m.ViewProcess()), + ), + ) + + return content +} +``` +{: file='tui.go'} + +Finally, let's put everything together and run our TUI application. + +### Putting it all together + +As a final step, after defining our Model, we need to run the application. To do this, we will update our main.go file. + +```go + +func main() { + tableStyle := table.DefaultStyles() + tableStyle.Selected = lipgloss.NewStyle().Background(Color.Highlight) + + // Creates a new table with specified columns and initial empty rows. + processTable := table.New( + // We use this to define our table "header" + table.WithColumns([]table.Column{ + {Title: "PID", Width: 10}, + {Title: "Name", Width: 25}, + {Title: "CPU", Width: 12}, + {Title: "MEM", Width: 12}, + {Title: "Username", Width: 12}, + {Title: "Time", Width: 12}, + }), + table.WithRows([]table.Row{}), + table.WithFocused(true), + table.WithHeight(20), + table.WithStyles(tableStyle), + ) + + m := model{ + processTable: processTable, + tableStyle: tableStyle, + baseStyle: lipgloss.NewStyle(), + viewStyle: lipgloss.NewStyle(), + } + + // Create a new Bubble Tea program with the model and enable alternate screen + p := tea.NewProgram(m, tea.WithAltScreen()) + + // Run the program and handle any errors + if _, err := p.Run(); err != nil { + log.Fatalf("Error running program: %v", err) + } +} + +``` +{: file='tui.go'} + +With our main.go file updated, we can now run our application and see the TUI in action. + +If you wired everything correctly, you can run the code with ```go run .``` +The result should look like: +![create-tui-with-go]({{ "/assets/img/create-tui-with-go.png" | relative_url }}) + + +## Conclusion + +While the software we created is practically 'cloning' [htop](https://htop.dev/), it is nonetheless impressive what you can achieve with the available libraries for Go. + +We have successfully built a cross-platform TUI that provides real-time system monitoring. And it only took an hour to create. + +Keep building, keep coding! + +> The following post has been hugely inspired by [World Cup 2022 CLI Dashboard](https://github.com/cedricblondeau/world-cup-2022-cli-dashboard/tree/main) diff --git a/assets/img/create-tui-with-go.png b/assets/img/create-tui-with-go.png new file mode 100644 index 0000000000000000000000000000000000000000..c793bbd539a7aa6dc0c3eacc9847731d24cfc2c3 GIT binary patch literal 147700 zcmeFZc{tSj|35sogd;^#gf==6%3AiQWM7AjHCe_8g(16?q(VrxFm{HqWX2jQMaj+> zDUp2%W#9dt^Qq4Hey{tw|G2N~{^P#x>oeDNPUlSCGw=87^;{m0$Mf+Lrl+IE%FNA- zKpNroY2h7*665{w2h+_frta`3&42#U6?of&KFYI)D6`Rdd2bb*3pvj)r&Ymd z>+jYj?tzt^WB%YW)8sE#8Vr z2Bn<)z8Q3{rX`8Q_7{5ZZm561UV}`u+>)+60m^T_hSj&q@ja9s;^J2JawMI_HIxTt zwb8f#`ANj!QFA6+<#5+(V&BB=zo#BpnIjZ#^?E1Y$l2ii=ZE}EJsgz+hjJ|<7&E0e z-Z8Y(u`h2geV6#>2ZF-syJux^6rn~sgQTq?TJ)Izu7Cbg4gK|H;;-T&+I>J^c?!vaaKYp;ZTyWYPwG}IU`;yw)e!WsS_Q&;brJbSTcv3Zlmdxn#gITpu&E+Bi9_~8q{P_@WzRtf7W|d{-*p9k}2(k zco@OdA3gkjha#iC9a!UQnke9-F8uThUcH#o{#JHJaadrdD9Jv|vXfb$d>%79`dRqx zv~f+{OOE-vs%M)^1`7sd)HeH{SCB3Xb#DcNL}Pjr$uf_542=RZ@BifB zS`iZt+MX7mMgMyl|DVfZ1F(GIn+$Vb&M^#dxKwynz2!i|1rwzvZ-qMe@YPK2kbZCN}TRwL9>po>C>Xjm^ z8*;Q041q;{IsdFiP$b>&8{qi&t`NDXU;A056(9U>@Zk^q`BBAtd;feV;-7b^4<0HV zaauU2N7Ig>U6o_{DW~#u)(cwnfaOtmBe3Qog7wd3KPHEN2M7D!#khfsmtFWI#)I~}_6L$SnNWp?tM=2mXV7&-bgJ;SEm%vTyFO(dPqZ2qJL#Js z@IMkhmGOThKvq~%xV`$C*%~7`&UJXK&aXOCUS;~e28Rq!OY{oi-vsx2PR-TRG>dXa z{*AOC{F~nyrcs>q&z=6r`u*g5|6}J6+g!ia_MeSG6f^zzo&T-|HEjMH2?GBn)qht5 zn#}*#@}f|KmX>xCURzrVRdJCqRoH1CU*C<@)pHh6O~Z34j0RJhvZb}PwOJ`v&O;`_ z1|Rd-jcyZAq(!p-H9fs2rn6fImKvhft`TsqO>?;<3nTv--t_Lve|k^x?=D%Wp`xmq z0k8CQ`6{lvk&(K2M>CGEZfwXn_1t*(kaHkl!x<<1plG!WJJp?s%zrjM)b|j#PARmg zzE*!gRafh~g*;o+ovWYmOvKFddv6Ic-+0|J+?9~w`lh}fI(GNZ20GmOg++uibdqJ& z)zuFjI@B1+@7j*LqsBoF3JUr;+$d&IMZ7iKz+X>CfdzyQ_}JE_j6*N-;8alAKQ&Zj40g)}V}xy31V$3{tOB z(k@-R7@vXeElw*9ElzeZFfh#Yk@5|5B2K30lbR&Sf7hkJ@>o=PcyDj6 zb!4bLVra(>7)+Jn{Vs$E-vDKae;6cd~4A((N&{f!(G z5pkX$`7p<$oK!D45JyJ$C3_}EMV<9oM6aAC%a?tDFoV#rf=&Mrb5g{t?DR6x^~#k8 zKH0{fOC2I3h+cDFvv#%jx!&Eyx`$6bSMdNJpJh*_uLHkm-FQWjq4Cktm#EjP@#y3{2YL!`3qe)!&uIePTy(lmt<`L0vT{WLyhYHf*P z)%flmCku`g_Q_mrA2&B1Q>}aGnr9j-ETq1kUOU08JWNGeIv&ISesL&L+^7tMunB4*3$ zOVcb|qVeNjNYjwMoCgj>@W|*)hgP)z#B4De*PmDw3^cjkb1O}yTm4Jqm7>JTB=Qkd znr(RpGb(q>vevJ%8_}2fT*wx38M6>gLo6fnIaU7cS^LE)Kh8tc1Eno*F`r^h%31%qnDTwdWca_2NFvQ(IPv-r@aD6xw`AhML|leZj^8A49PV% zf+9&_+hthIa>@!vc$H&*6sfM+ZcNrmvB0a-Rfjtvf>|I<%$O*JWSj>@0V+ zim~&W?7ZZANXF$0RDj6C=iO$%RK^OMG`xLVakBgM>(@|K3HTfzQL9?>#-+tcLk{I6 zhx5n)H@Eq3^`Y3z#t2@s5}QlqF8x{~Ic~C^-_e4nYawxUbXsTot0@Jh8K}J6+}yw2 zj|2n+K+MDlYWI~~4^12ze0^8Kq4h5o7I#-OLPolAktHELTQ_yvk|QYI+_&}lc_t<% zDNJ{}%+6|~(ib|k6W7>TcMem}*)MC5Os1x$B_$<-bQUBGQeVI0$G7^O?UlNuiL#+C zW3)DJ5jO_Pm@EUP`H+PD#KqiCZ7B-*#!`&=WDt6Yt-4BEMB5MS{^604Vp6@xN3opB zJVrHEfmo~DO@DZTo^#{#T_I`fSBPYBLPp=zW(2oXldKo2682$=>7;IoeBk!W#7jt$ zM!U>Z0)%y^3RzD$mm5{79wTVnsJGV9(ILwm8#wef%&{wbk~Lkmj22yb96JZwnd=1A zP2D+t+x+MGBJ6%ytr?Ym1MRe$i7Ol&9Q_h#390b)$|g!gLj-TWf+%zi>~v2yejU%Z zy0tPeH&8dweL*Q0og%^MRJS2a+nA!X1(7SLR8DeXFC>yCYh=#72?j6LJFBHkkmm4zFA{Vvo?Z;|- zSNP;_-&|jueEbpl=zP`RrVo;;j z;Wqh|0-ndjxR1B;&ZHL?>%}^Dq=!s7@?~nPtAA)~Yin)Q(bO~yL2~#9j=YZ=9JF3I z@&iI4aAQUWxdb%%@*#xs zYS0Xv(Xp{eBO@YYLwmcPaGIgBS|p#vgo>|6U|w*1vqkuidN!q}+{)D_qw(H0HbWod z#E|?kw-XU4wQ@)#2rR7x@hk{{zRX~LPY0h6)MbG$HNF&LWi9>_IR*8#*56l&t0hUM z&U+#ISuV@g&qn^PY;E^cx<33=D1AFdYl)duwj3Q7ms3OyvOB^ih23TNwB>YBd;}hk z^4G2Lcyo`buX@i(1qF+73*l+v@Q%pWc5u9LW z$;1;97ojIdmwzEM@b>N1G}TZeZ)fyZHGC)Fzh)~rq0YeHp*9#(|BDIdKla+yj_Q2r zy#Vm(q<}!k{ribKUj|C9tLf|OyScqcP*t7&{-tsODxZXX^KNElyh)K|seOx}ZpsY> z@jSvCi|6NV4MET(%VG`m*Gpg*I16&h%U6OKSOPX?$^mjE(i>XkXeVV0C~dE1FyZRf z#**MOYW&vRpdJV*2?=3VX8ZBu4>^UKyBUA}{3+YX$i}xg+ixbY`2EvDYqDJ5Tl#iL z9i+lI?A*0C_ja*z=hBNjmvS<8ahZiLFhVXMNO%G{U~7p2kXO-vJzl_vtY!Iacv!-B z`8$LcL>yorOU>^6jC&5Zv#+$RKx9Q6PM98==*WoOjbk09Z$Dt)iCK8L06;>!HMc0= zq^Q;F=U595vQ0k0WvJV0)?}LK*fsXG#upHRGh{(4sp&j+>ggU^NVh)yo$albi0;!E ze*aQ*$FZ4-&#rZZc?1ewckS9W%oLF*Np9L2mL$_*^#D-<3Hk=VS;6w z(GjV1>=Gnj$hmwxXw5g8yK$3A!jv5y`rL`0}YLhNjJ4av)6MnGvjSr-g-+p^_ah~4U;}gLzIeA3Fnqt z%-DmstnmTp0`2qm=ISjit;b6TNkXn;L9<_Ls!uf?evpv7)<<%}v|YHn%h9gOT)}7Y zeQT>C>?O0L6aLf2(sbOjXU|enwinuz>L~jU&l;TwGG+~B<4=i+S%4M^5t*cZ)MK~o zGPTzOe1ftHb)vbcsdJz6KyA&jwh~m@3?N?YX<23GYUj^oMYZdghR266w$ovK$`m5o z6gxg`oE9C68^!>!&@nDSpgvZ6&fq0(FO0QJOrXgZS?y#WpVx{lyYWdphId-c{p-?F zdz$K0r@fbuwnzr{fT(#cyOx7=pg$8cvq8x9>(|LI+4vQWl=MGjk550&e4mDQO9edOg!`D9)ZeUr+Y--4^A;VB4Aac$4fXK-pE2uo%pjNLXC=fAN$7M?xY zw_GC|*_3BlQ-$XpQ*p*lb_y(At6wYKbD%b5_W^b^9%xsonO@4+MU%Wp zDYA;>l{20@Lb_Xqs`AMD8s-xi``nc0cT^~{{ni7Ua<3q$pqGoQ+`c6dGN8ZOORVb> zfRiwelg%$b2)(tf2GltK*#@Y&+G~z)g4vd!qIKDxcB0JrbM4&8Ipmq309dIurJWnb zXCiCAzVz;*_XJ?lTjrc(d{Er>fmGTZZ*<@KUKJ&!I_P+CyHK8{0Hnz_KYsj|1op+o zX-51eY$OXabHOR@f>C%D>8{7N6}O-iefeUJgh}Tc495bE3oDN_;340l?3?4sG{lIr zii(zu>Gj0yyJxzKtgNuPOV6OnLd97GastWVGwxm>7}T>50HO(jplw+fP~*K|FEtN1 zjw}v1%T4U!bZ$xt3y#hr$Beha7U9fyxE8hqldDsEM;^Z)3{sT}{a2vk&5d@gt8+P~kt+S3_G9#q#J3h=dfgzS%* zm^vQm8}FN&n?HW^g?y z_G3?8-(^gq*K7QmZz5KMp+zI5z zuTsFKT3lz49J784*~XqC z7xBpIzS-|LI~$^q-luj{6~sDi&w^t#3p%W zE)h(kdMSRm36MpIh6{~!OU+Ov;}fd25y?-VX4))8b1H}4zdz-iUmj*@kPPAtiGWfa zi1$f6HAs2`{Zwc*A^msO{`l~FWQ1&xqeEL+4M08s4a|b-n$%Iw){_W5E+iy`+V5jI6NA35{v5Vvj?kcQ7n&&_2uOlhRY$d`wLxlRUq#f| zeLS#o64%w)`QpV3S&s>81sZ3DcKm0EQfLm2v}k8LzLD-*Qm$XWT#UJJ;Q}y3-}Obu zJQ@$kRZT^jt?!>Cq_UYMIdrRs11{PZeuKaWxp(iSiD8AI4uViqe&f@8Q>?J;J_sG@ zg-aDhdZ!=vbmaMWzkz%dO4!F$&x|uPG|ZO{l1@En>K18CU8TiZ8lofXjEaK;z&%;7 zF*=Fi;bHRWY+F(%VC?Sl{0#&csYNAeL03sVx};$+b6xQAM`H==E7+}o1nxHvej zZ+l(vJrAq|RZrgzETb9JCBN0;^DNm&G4l#o9l}b5H?6FwXzLae8hIU9RBVdYANfkr z?N600rk#MMbT1@?3}Fz#1NdoaVL{Gs^(Jt>9GzrpHQ`W(R@+NYngzPOw6sK~Q2P|f zbRgx(d44bEE0r3E_r@ZhdUKZ#nZ^R9TNwy+9U4QCFphQG+uMLZ`ZP<<<60W?64pIt z`lL>t9G@cRL+9-|+z#I@=}WnD+PtDYkq)IM1M1E|;Eq3#H(7d#O6R$+HK~gJsClLd zXpfE*z#(0-J$G_70CYmzhITyrsWgXKQY_(V>D5xF&(oBmoUAP8PcO3AOOn@YUxESx z&}WW+XEk)HV2*U${qmwVfYR1frPR1M*l=-)gd!#+fj6%VRak^dH-U0)lnS7em0$5? z_dQDTL&o-OhHeeG&sh=sGc?46@ie#(`-dYoOfT@6(v(Ra;8r^3C7fD8g$phW?PC=M zCdfmv*7mz7GJq&Myi?EJN{@UrGBT2$o=&YWd@k9iWlDX`LUFAHHDXtbU!fZ1Yh1>H zA|5^RUHy^9oq6fe0sB@o0Vney(dJbU4SX{U;MTvw+RUjTJLw0Yv6hVmm93{>k6;){ zm6$9=y(k1K3Fyov1;5G8EMvCF$jHFO2~f@2AW3li(DO@Qyzn?Ob`c%+Ov!uxZ6aM2 z;2sbwDU*B(KE%myC^fn_u60{wQ0K?~2-K_Q|7d#j?VmnO7&v7&qB%EZrSZ{NOs z@L=~e-AZ&!%-y?pw>CEcXfF=FhS(>BeE=yI;CIfbz3gy%dpkUHt@py^qzbi!zMf{s zYUr@gXF!G!^TMAn;qgy!{gx96dd~B)Z*tyfs4_Ajz?6gp$CT?cJ%pqPR8l+w6{3|Qe_lyx2XHIM#AH!axr_f;^Pw4H@8R}7 zPtZ+epLBP316W$2(^nwx@0$d4GBh;Q{IW*K;dL;>^@hhKC{+@2%iZ05VSb({N9y&} zHpj)1gJd6qvYV&Q!omVMNvU*q5a~E&r~m@CmPRgSaf&RgsHoU+32F;STQPl5;|`s% z4vH{}jSLUp8jZ6e)+SOCQE7*T_>}X1JbAL$zo;uy^sHUe{)ICyHu7Zd6eXNBwYqL& zV`YFXa?TACH$!tKbsL?G1R~Cq4iqPGwoI8Dy*J-J*mvsGDSJ;ALUx$}rSoWhQi2;Xwok9cPPPF!1F{Bc za(pNbBB-!1Yfm;l@m%$DMBnB&HSJ7(HeT7xt{m-bpkFfCRjEuk(nTq&ikoRV>1&Td zj14Iw%TbY|*4jM79>qbOTl5jf2}b~zSti??WY&QW1c>>TBFQA1MeTFhJFo^k@uIZ)~K}bylcmbx3~B4%a3zSOS8S1 zuL_$3OzOWh%mPy+#dQ{_Zp@c=#F`F~~dAAs&I;XebB zI`^g0edsMy45_9x#h&{flyr<(UvUuU^d+ zO7Qjtwbkf7&}gGKF(-9Bj;!Njkz}BSNjGXh=;;e7>-;vM3=OEcJ`KalX~X;IgCsUc zc5f_>uEY53*|XcC+>+=giHZ0)qxz4cMy)%WZ9DM}<=Ra68DNks7SEym`_rMF6&*WI z@D@ZY0-0XFY_(LgmiZb=A{)0PXaf@QGjE=o`jeTd95)95DIl78K+S-$#<|QBtK_*qM4x^CC_lYdakx>t<%&{UpA@FoHe~ja7t?5 z+6%jnT2A>J3ELU{04=nzX9B;T5tv4hjuVzQ*W5Xs`V1{R0On2Yn#wXp)Y!Lhi|9W} z@B;>!4ayEV0O=l!Gt3_AjD(w$WGkL#wcCE1&WzUXGKV&ix0-at6}jX|Y5<@`-Y+yj zEYk^J)4Q;c!w_49ZPr}JujjUCBM7{c$+=#I#NjwCHU8U% zV{%AP6ENKjC?GvMGCVRa-=V~;;a)=K%zY{yhd_gIgO0lTB#=Yncp2A}4`ac1?}CI{ z4Jip~Xl7Q{WWMDLz|aq2DO+1x$g%m+kC2wQC6K+1-KxI2;roCBK(V8K3(R;xCOIg7 z`v>RK}9t&&z(GQ`l>ZMrnC~34a~34IJ{u}<=p6qRA)Gap*Kyse)DGq~$ih<-{KyFD5`aRvJl82tKd^&C-7>P2hz+M>!5 zYcefT_mZO;Bva3MaU@bfo0m8b$@z$vWNgf!HK4}?!p3Q7!o7$p=na5X#giN5$6c}& zI-;SR=Z%m=7sCU(z4e_|S63&#z*r#=D()DO@4VXxg#F{kkBNJF)W zF|t_S6>oXs_LHNk9_Pl}QYpR{7^a>OGW3{|<-B@msMN$Y284D`ql zakTc5s#H{Kb>cB8DH13??qkgzck&NUt1^&Up?U?bjdGDPBUI+%py8THnH&Pg3;vL8B)^{hkZ{jz+(c-?Ied(A=D>pzqSQEAg$yQ@~mrd-v`=bm$Y@fJAbL zB{oo*+}No05%3N_pzI?1WCJgU>>{brq{?_-|9}@J+ zT`U&fgCeEjcDF650?}c8DFyoWdKWisrGiB{CqK4ld zn!I{yt(eo%ELcz`ZfF^gp|4UzcRbICCjY&Zt37Z=N(^goy~~8qI&2x^hEgRUGFlpFWSZ3z zXAPsEHjIvs1AaSk@?;JUH~2p4c#ng~Zx`FExUgUDLe*Q%nav+Qe6Sy~$jPVsq0YW{ zuO3LKwf-BTrZ1=hBnaXBXKgNCy?Su&)UPiN5R}Ng3 z?SG9x96oa72o6+p&{~F57!iZlRaHG;_MD!PkzBYN(R-(`5s-I}xmf%kEnum^tLhj6 zF?iyaz`~07v6hi^xPOX>?g$3w;eS4${yr;ohgpwHh*x_&6nbzM=)g<(PegbIu~qi{ zSXv^?qyrML532=0(!pM1bcvHbs4bk04TlWgb;#A#Rbp@=Uy9juINH=QM~62sFmQ#n zMG)m8vbeAyF+*aP3SYkGQA_5Q?Hbrz(Xic0W(+&%k4UsC!&#vs0+3DN~)towRi;Ig(N=h2H`SikWj9<*a&=3?jtBTt&_A@pHR8bC- zx-L+jST(?|)Aas*`z!3y6d3^Yg2z`VKO}XSy*}7?{9pxQkR`{Bh8P*y212LQGtAXm z_wfknBK?fZFxPoDq4IOGD+iXK>+c$eHa@2ZW$l6hM%h?dc>%pZ10r3_Sf?6LRG_#? zMc4VQ8JLM!RCRBqnjml*R8!@z=g*O)KEJv7a~C#dW@eAHq9V`*;D+*7V?&v6)T(F} z{Qdil6~sCyq*YzLHNNG(5gD;qN*ZUAPha1_K;0%Mv3=ddr*tKnBsHB&FPer>v=`!4 zc2Z@v0%5TIRaTnd$&+eUQuK~{yHpm$c)9&x3jDJ>#Ip0?60ipt4~S640Hec%r{@jm z$(Jr)PDJ>S@kkWR@nk^pfY@JslV^?~uoUykd7@8~d-IE^ibK5L>W^!z@40jN75xtK z^A`zlKWvfZPED=5LH66wYTqaXNtd%4Bb-&f z!34hlHq5!I;hv!f&gz;a?PR+GvxS&8p6D&fFm4y@v3pY65eX>)RwQ^tyx-NU@h;(0 zl%hGy2hU*i1BsJiR_@}Xp7bLy5y5{lb`Nezn!>XQLb9OO*D7rO*Lm*12wpjRhW5Jc z_56k`n0RY}>k70GXeThSN9{nsIz!@tmItv#d;>71pANmSn-4tb%2{+1Rsn05uIF(c zP*YO_8A>lM1mx`rf_@)&df@tGP86gq_H4lB>K!^p%sqZtk6b34lnv;1rg827huy?t z5Zt(?f3pRm#RX9Yqc}aiGeFTn$Ki!*;041f;N3oXy$+tS8Vq2R=HTY8y7}!50QUI5 zCP3wd4Y7i$f_f;nG%7y+Has{ycLJxlganL{#Q~nZD(8QaE2Nz$c}he?yPO{|8yFGD zDGI)e!=Pz`d_XWkeui%X9^m*5YK2D(bx%Q;nXC=@i+k{RW+x318uMjD_!+7!20jej zbZV_scP`PGfSTMYq$PN$*6RaNk`(1t^gGx14hAxyoigEQ5KZ6e>CoZj+_%-jxwBlG zQ~v@-5Gwx3lON@ETZA#QW^2V8y=M%AuYrduPSm2QwY6s*49_ZMD}v zeE5)PX!rp1Il$k6KpsGlb-#P9W!E`iA`5vFKqkA{WB6;_(xgZiv)(l{V7RKZWxeNZ zEiF?lJ7s-7Y|3mw>CsHiqeDE;f{Kw4SbvYp2FfM3a}cxdJXtf0G;TF%6iR$>HDz&C6@j%GnKKFqQgO``! z3bda10hE6_i%2D^?V@=oF)>jVrj9^S;?K!}4k0aF2D2z2&@C-3Wahq1)zCdaK9ziz z3wk=Dp*i0wqWw{#Ux`2st3zvTsosG6;&y&mQws*VhjmdTn$js0RZ?L}te+ zAv(H~aU5*|TQgN6CDYb~&88A8@l0 z<{FG5sCJ!|i4N5jk+H&TV6$M~gCY4@@2>c>*HHj3fU1VDa480En|ob=geysjq7RC^ z*Tm2clCqCiPEO8rzdsB+pxaE(SQT6aSCU74^D#_AF61u1{B6A=43Sz1{tjh>BGH>7 zi^YIYH`c{~^{xcx&w`cHJ6g2F)YL_aoO`(VMm<>=^G)!TKYa1LsOHiC8V z=x#{4BTo?PrIfsgEaAt%odpC0poUFCEd@an3L9`@4Rv*3RrP?ULCYLiqbK%4WXa_W zwrgJr2&fIa<8k~Jq(A7Gm(|pgB3Zg9u%*+rD&_oDj;Bta?$&_R$8=${u>RhB3Q|) zj5GYa_AWZyQkcvo?7QnJUdBhEbM(WiK~Dik(Uat4LJ}(>gNMDJh!%rcqBsrlfMu1( z2YRZr&;@!5q!Fpo#onXQCi{u>g6o7bY-k4a%}WeF^z|ptFLmc;ZOmBI?aP@VW&dbS8RK5V5TgJTHcte(^Xdw zgA9}rpqqdsn0{CS5uxaMb|=Asp&c|se$bl1Tmp_2sE-a7!f;sY_HOtP#O@P8+uyOp zt}rbkI#F7i-%xE)AmniF-wzIAf3U5Zic$wsdijp#nqIn( z>%jcf);2RCco>4VN`8GRzo^P%GJWHK1cMszN>x==>U2JNYRvZilcTq8-KwhZkma=i ziN2Sdj?mK=;!+;58_#xjtlXM>m%c?cIZi+W88&O&oO&bKmgk{6HVg*FuP^1bGtHC z)B;$XfIv}VxSu0~Ya1FGzSae%BDi0v{)>L@`fG9>s$xA8$6ZxB0HbLzy})?K!!GdW z&?Sql73dF}M=qBifGBK(3Jd+O<-W@ac6Rm%ex<_CyZTR@24E@QmX0+l@H8Tzq{PI; zL@42EmXCaL>*D>c1k%@OtJ;@9 z5J1zV8k4dDeSCa8JUrG)Z%!aBioVqPn@u}7I83`7{Tx#3y*Qx{Fnjip5w*R6ClH!I z;pb>Tv|p;Qn!+%PTAcYzkte6elE|RSEkmbs{w&=e6VIkl2k{0rx0;$7aIv_|+d11Q z7BpzFgD*O*#fgm1GUJvQ$nU9yv;m+6_V!FHGYboJ>5od?bbdFCWP_v)ok59S0 z((G>J{UT;Cjfn&716zr+%l6Z(qIFA6Sab(ZePk%`!c)KtQE}d!Ot==wtsbJIJ@Yn{ z$nJa-*B^tgq0~u3rTWwLy^41R=jH}rry(e(%F+N9OGvoGz=X5%Ekzav2UOcTgn}kl zRml6MrbKbOhw8z8etv)=U9z7^qg$Roe-4&o21drDoMO-gU8C&?*)>#yH&k?d*eo(p z+8NL3!6pIP>*C_#_wV1qUPjf`SETzcZa7m4lV`PvtFLSx$f~WO910mAIj@IdD+=tc+Q}l3-{IE zDEu}AO7K{lJ<|Oi0+D(;mIa6X5SN&^9vQd^Y7NgU&0-`>#{qT04WB%50{xhDAMNEa z>Iw2Z>;fyVtkG~~fF!>t`vfyi>KvRdScK_@rjE{7`W~f8;j}+m!2g2Qa=kmCE`rH& z3$PB`!814zS~=@#DT%-nxzD@VYG^b;MQVuT=Lf@AHG})UjL(q=L{N)!1A#y(LGJ~( z$`+JJD80eK!Oh8G-YF$OWmrH>h9UqM05l2T#fh^w2bGbR%a7T&8mIZDfjEtqBv6eE z(4oM`eIAT6PcuIAS;(_Oe*l9YP`Imr9iSW<#b~@WLkv19o&dLiUAxeQ;~!uVVBZ@? zMr>Ixz}-q^Q1P*35V|)E>=Bv|(?a^>j~=}S4Ve3>B>JyI;ur5SO-dk?t?lU0tOUq^ zK1sA5lsfS5V|k&!JB5D$hVI;*8+8DsN|dWw{SH&)fa8*mowh-bVA;*M9)c{;KGuha zDxVcGh4^vwe`RD{yHw5ExuSU`-{KP}E3>t#GXoWM7)60*zn72C@JktfXK!5JJS5>v ztd)^E8+m0qU<`m2zzrbx9pTz=tO0sGaG%P+oq!ep%DMMXm7ml9xHW%=hIr~Vw@g7= z{Y%?`{i7rMXOoh?1?$lvUg=dLWZR`SdteoNRsR|j>fp8~9IZNNFFcLv_Sce5jkgG6 zF+$|-rlNzrR}fpDrac%p=-b0J0Eg)4=m3yeb6A6oOE?4||M2@j8(P1Iez&Q)#h2a* z1kUf_|9U=-S3tKRSKw!_Xlj0JZuW!WN$q*aW8g9^I~{Ts7ZA5ysqjh>1^=%7`(LCr zxo6oCH=PC;O4{X11$b4VF*tW-hOMo57senI_5bfKI;9U10C=yu3rrWLi|Uq_m*H7G zKTK!hf~*e>y(n-~p;gH;?W#xaT4e(mncX!dYW{r~jq zU(+MLrIoqy-_cY!K5A}VHy6>we^#jTY!g20JoAd?R@;#WlDvc0`KUsrwp5WtQItLPE3d`7SLp|77ckwh74{ zvn;KlE#I~7`D5wfqR?6a(O8e=grMM5g+`5%Y>5MR(Z~F^YECpetY}w z9o0>EuA+IbIpb&ew&LRA7wMOi#mN$|Q{9}+{Taq+s70p26Nle5HkLz{7SQQ4PQdVu z+Kn`ViPxYK89ne(Fg6wWNlQ!1bje5p|C-FN;ZMey zkRo)nO&QbYNnA7e@L8-#T{87E+bB^}w;vI3W;lqH{rmSr_uPNrKz3#(TKzmygr)z^ zM1M|A?xO>~fq6bY>fr@lgoqs331#9)&DXp3_B@=O>6ac!JNLy)38xu7{63P3pj>)H3)wo}QRIrrc%Y<=Yjh3}bZF+ub3Izp>O2@!X zC-pMWD84+b;f}qi3u^^X@ zzdr$Ts*?P6R~m9%jJXdFQ34}EixQgg1x?!&fJ{>LRJ=~IpT{a3 z$B)f!-b;|u7T>Ow>vSZ$YPo;Kl1<#?DeSD<#*Kd;LMH|u1D`xz^s^C%Va=;@6I1+4 zEUBohGi(FB^UN?xNh*&4T(S#Yx=NFMbHkhEurQ>$M2no}%~{X6gJa80Z@xIx%w6jD z{g?Ubcoo+bD$0Q^7ub4iELG}*-VG5d0`?kn)oEs`ivULc|7W2Au~3}d>oTOJ>h@VH|+6&{li?gO0( zCaHf5pFzG8)QUfI`-k-VO8QNzhbHSqtqCgJ}v%INe8=A0QGu=2xnHuB>$StiCVwQ6cy`Un2$V zg0Zo}Qb0$PC-mxGW}iGzzJQ$R>gb3H33XCdSaI5JX*{uz4$qYWEnP43KH_YQ7erOu z{03Z?DtgMisD<@3K3TY_R`zH{ML6=1#26Kfrzm{<@WC5!-F;Rbk2;LY*F~gE7Qi;W zamt7FR}Vt})8X)4Q(AeiA#B&6V}f{-%Wr&hr29|@Z$^VH>l>j9<68jM*7a3GPrYtV zNd<#sKz<2oZYWZzeG$gg&O1v*fpGSx!Ywf8=ifA&^>9Bqe2+qm_5fsr#QJqPFA(c@H_7^3duFY3@QKu1fu)P5wutndnn-|SB z0yr3|(hsrD2X3#8i`8w;-&#H_@yZfXI^hurCipjVWcO|v54#tx1Bx|WWOs3Kafqe^ z?Cdrc{*zpHL~A@oaUbK^zMtnmsGKhjy0RJg(S^(_S9NPt>W+Av$6Lw9{tZ|Mj(|!D zO>un!pw&Gn`wY)|OuK=wkSqN41{e23EDg*BH5WGYL)$CesmC0q+57(LKrK+L0%v+l zhJBNHW3yRAwx(nh#sSAvO}OoF7R({XfCwz+TanvmJrr;Qgr0YgG3?yjvVq&1F#W+W z*%@340n;95%svYc~y6SN#o37in&8<+?;|>w9>y}W* zr5kI3)o%33+!hs}5E;$cB=4)qpxUwFvaYj>SdcKs0>)EV;3mkO)pEt(^S`j&`&Y-D z0rLMSJe(|`14A#M!oaDPXZyi%tSZ99!qSyrb-066T^Q~$nepg5kw^qRYGiyIYux&bws>$b;x{`*sDE#REbLj&8sX8_(9EKfa-FuM#)5^RP1d&M!2*MrK)JU78vr z`v6;B>GRQ^XU^kD4|&Jj5t~n;DVo@{zq3VKljxH$o()xA(+p|J6>K;9xC*%q$3{8W z*_)Vf&{5>9Uj@1CQS(ZvIxRZ>`WsA~`maBIZvPga)7t;^l%YpHq#@L8?D0Ohix*RQ zG3Vg)34rT34&}gw78y`+#HP!vST+_XB>+RY(W3jm<^Cs4**Q2e=o~>qI8U<(h~%UC zCYHBo+RdVf@tMD4p$SRnd>Ga5K#HSYb0t4z>K+_Gk?n*Pe|q{t5*%98CTzh8k{VY8 zfjK`F&KPKxAM z*_bU;@pVq<8VCXQUR5koff1ePn{bW|I2$1&DGPA7|CL?Nx(H|X-ua!R-U7YX>G&UC zwH&C!0r2d7XlYRZLkcuHSg7onTziUd+OhI2p$o~{C)dF?BlI7)Ns%Rz3BrStq*H`{ z15`mzru|eGhWi_#Zoll6HIcl4+&lWAXW(>nerR0gW*2JodBS2d48dPu*pkCJ$l`V0Udbe1QYa0{3a%1?;yCzd@Ex zDXnK?hK;uPD06mF6^RPukg8PC9NlEuEa77dY^qROs3%N7?)T_idW4)qCyQHXPQSNfi5CPe@*1KLX<~ByN!XdK6Xpf(7tOCV0yH3f z3TK0}G?(Q;IJ$Odo=VuGquI|@z}Q31YxY$w-zS#r^13MDnhSpkAm6{~yDyC25w=`q zM=_mrE7ZA>)8WQtvf5VUqKkiHHt^2a&i8I&hPj8ca%gT#f~C1c=zM`cQwU6;GKx7 zxZ!*xVuCmD=f|c`+ia}|F59H3!<72tXy^HQ3@&)E;I0p&=3MaYNR{$!fyOI1jblNN zi>1PmGc*ipu|_W%s`pk33eyJr zB2iM~_bvqO>I(C0@m9oD=l&{Ae+TWx6|h*+2Q&Ap1WX5MlDxZ=Kr>||OaiL|+lrRnN3orai zI=F1k_9yCtnrCRpG4*)(gm*osd8M0x?bEP^Yj^$6+=5y0ow`W_6sk$&(xprIj<=|0 z4GSwPu|^*8fS>QUH2kisu0EW85N@;9kQ7^)1RNS<)P1oaFrHe|G=ZT=?^)9~K=IOo z%*t+bSUSqfK0A5&n!3+D(~UU!oU_#mT5+_ViQL8^tmO_Z$bO~c4PSz-k9=$9y5S4I zD?{X9dYHxs-y}N`)iQN;5}_$w_R5G2$G z;!NlAHkqez_L*|D1MC|)#>W=*4G!N0!ax%eb|3qoEn{@h*fGTev!}fTPMo-RU?0QN zpa`#UAwH>f^T*SM156Wclm|s>e`y>X;hsH#OQv7k;U5jtR(?barzjsBPBVdD3;{9{ z`ZK@A&3ySh;z8`?fW-*u-Aa`&-ANCQp;I_Vy9^Bsnm&F6r8NMm6^t}c!o=MU zCzvygrtg5M!)d7Jj$S9AHC0a!Zves`B*2K>J$-D4LFRrZL@jiDAydncXzw2x0q|{{ ziFyL|Pteb;CWn>R^$XR^h={jz``&FDo0zyKrvRBz0EFR?;(fp2s$1^GwigS3Q534v z4zchK6knsW=WwSAat#fa#}sc3UChvEN&((uXJ>cR6^>ibJDWx8o2%AY8{659mRxU~ zumwk4cHthn*IxD(=H|^sSy@?|4`*KJ7=C6-J5$hjlYulG+W{j|(|Mie=U(IV*pJ$( zW5D)L8y z_3mGn+3b->Up@uNwgh3J4qdqWEyz^QO`D7An`IJR`NFJwQuCA>e zd*kHElM7fFS+vtM9l3PI1$5DypSG->PD;~DZ4NyWd-9x9*cewPEp+xUi@=H-7p4{t zpgzgV&!=HI z^n5$(DTDQc603S$X(h!BdkQ}| zYcq~(oOoEM5o;y4@K6{;RRK3MIYo~XMHN*Nv zyPYJet@p=SAgc{RfE;P;>SKfMYYgo-vG#Xz61JyTzkQhHPE3&JtN+xCnG?9w^*X+% zB8PD>RUW!E#OMXTN+&T$8oBvHoBAt7!0-&p%%B8Ad{DzavD2sDeyW1Qp!zoGET&|7 zBCGC68t0q0t2o+eXZnXPyR7IaR|hKIlGI6f0SQvmFK ztEKOxA8Dq_P$D8C5GSu){*D@7zN%ytZ&kOoY(~ENmVN%tlh1FlQwI$A&%6B}zTP{Y z>i_@$cR2PsX7(OgWtQxf5K(4PMphXK+2hz`mpzY>WRsc5L6Uhy$cj*eP*yU2ckj>T z^SxYt@9*#O`}1{qT`uCB=kxKn-*5NZ?RpQ7q1(7mN=gDQF1ueEFAfj=ei?6Z8ZmM# z0ei#a^dzv;R7qX?aBOc6%r?Xg`k8-EItfr7;B?6N0xGyFnJpR(2JwbTW*mWU#lFX| zB5`Z2dvsEDkqM_*sRo77o9`j;1*&V0!zEYoTqx}+1|l}MWOPptC*IlH*?k!cPs_-H zBLT;tm~+L0s9mKBihT*BVt7=Px{43>$z*r%ojRl2uLqJMVuCjjX~N#(yVBM=US5|Z z;lSgmXQnEXM0rT)YaHQugAS*T+)7MHh+G|r=E#sag-2*%9&XZP<8_L|&o~?!&x58u zSsP z7xKA#O+@14<@FWPy=kbO5SBA6?gFyrlqN=JM46Cz+4eW z+ZA$2R$)vibk(dMY#t*VEbQZ9w5d_Lc#--UhpbzNKVv}%N9GZj!U>EkE(e$vh>y#6Nlwj6a3}{^ z^l3?HWG!1k@$t;oh}z^1p?XiqXG^5%1J&>S)t*Cb<19G8?Unq~qq8WVULb8roHnsU zdjtu#9$!m?uQD7(- zpH3V*;CD?W5t)OmC!ms@M-#XTB96yScQMWjV&HjR#Dn6i!7zWC?`)E(IX^I? zbl)S#;$lWIMMb<@?$eRqliswq=gl+Ah2_m*qNc)&LJV&`%ls8mRwm3d3G?#FNi#LO z7pL=73vwYMrG-v0F)PVUQ+Tzw_wp>qCehz9$j(qOc{ZaZU7<>V7<#pugPq;uMVQ!fi+V(f!elqH5@u2MS-sSE zDD=!)tjgsxX2|vn4KQtRn1E_AoP9Yll?n;zH^MK#ZQpv^bwOzwQ3=3yYA_!fT~LaS!iuakQg5ihURx;x5cz!B3> zSqYhst6LE*Rwyp=gv?ueh;M9n@LA9!N#}+b>FLGokY*Momp7X1>U<1PY+@Z69-y(u z08=IOr>Q#1?DBjGv?|1^cjFfJ29Uq^hF&QI?W+HJ3pV>u*| zkrGLA3b`W%`0T5M!5d-RoPS$M#OWC5C!KM$IR8#W6BK4!d_^@*Zd~r^|?EO5iK=KndnGeK0hs^BOq4hL+FuUh>MwekoJd;I4FISM5u@+hS zAxRQ<7-Q#xRC;fUFrM2Xlx_w>0H4eIj|lyN^t}9qh%7?#pUcb3LRIh#kv`R-z)Bkr zBu$ci8zpUIzqQgL>TH)Fr$*=GvD8abQF^1LyF;nOA?g3F{kIB1d<~W z#PlFoHUVroAM`uHwxm=~6_>ZV|XOr4|Xm*-ueq5MAi$fLH*4}LJ zYj7Ct4(d~-dj;Zl+KMzJEhm=<)jNb7Nq&91)kLrEzFxI29_648GG%el*v8xy8!3>8a7=)1V+@U1!c-^kIRqPucrY=Jg z8-Ycvys`9}re+;eu7WS^pC{13;N`2VSjdcD3#Y7yz;h^?dv=sC=6|(-D_|*J?gAqo z)?z7C73c%eeh(hJx^yUUhEqt*45UT3SW!1{T0Ba=K2pJ|tjclqx}M%=qTr0|yu5_^ zN7Idi(uNOcmgrXPT5j4g@iLUP;x`x*_<_#tSgj)S7AUTY3h(@1?g-54Fre9Gal79jam!@OIgDUw7Ezf z(|SS4S49rcv~fq7DL7wLVk*hLt?~&>YcS@5p`2AA8{H%zhVyZ8oC6_@X zh@Ob@#AdIuJOKV(BE=twwdZ9Wg4gp6{yhr*$I2Fx4PpkCc+0-jJ-77jT-(<2zc1*Z z4l;h5T)UE^4`W;dQ+X8M4bThCrE$VejPcuIwS`;+xtTOQj2{saN78QS6D=xDXEG=y2yL)f(fi*u$d%K|4I`JVspO2QrlC*ZHd0Mt_g18iw4D zMhQNJ8a&vKTYC9!;!4OdCq0D*ekG~ns{94YBABX5B9#}2)TPthGXc%?p-!jpyR1Kf zg5X0HgfqJf&XSjVCL7E=%|tKAFCi+WqB2S7d!zxRHE%h>dY$P=hSYH;><>pXXdVKuysI-qh-oPUOmdm%p_$Ow=2Q%agy{GP+K?BCgWkRgmBKNPU$rv z|5y|dE3b0fbNAcxEa4%Z(mWASPl232urEVH@r{MSeoLK`H<11X>UQ3{Zh995KxI<@ z^Z8dN)c8$}jqYu4-&!>i#=G^@g#4J>WH7fQd$r0;rM3WuHsWlw zlFt^G&BvcHw7USUva^N;;nljZrhu3jjBf6qH5`%5^bf7@THT*+@)Bo6S9bAt=olFr zhtzm6id-qgXV(oOf+H(QAq<4*Po|cE5tOw8ZhskQK(MHKg?&h9_y~K4tCw|!&3s7^ zLD>L6K%4T}iZK3U)ELfazCiKKqrR`%JyW-1mTKk*uZr+vl7GUv^anxnDdC1RPbpHG zHV6il&1^9+};B$Q9 zg<`}1_FjUptrgS5bWb33-%(gqNSLk3X)K*!ny1y_&!-gkH zq&D;e^q@?nr@A_Uef};BZ{o5BXDZsB3#lSP?p{tO3qYJWpZgwW=p^PPIy#LglDL2; z2R9s5s6Ar`l%MJ7`I$vOqDZH~JBWxOqN9L%Me57gm{E<5P(342eI-qO_ZV)#eAK15 ze{isYA2Z8g2iPdm35I`Y28;V8Wn%~&M+%B*kz)(tOk+=xZk&j!#C>Do$JA=c8Zj_1 zxDjt?D(xD4<-_dO5fVM+KG3%cy%J#)lHyN>`2Tp7QojW)Jf_9-W;rtRR=H^27+1sD zV&Alw~PEA?WbUz6Y|EI8ppM!T5u(90t)DWLL{OjbzabEMS|5W)k z%wAnqgf|D&!FS+tOx44b1I0+K2+TB4GY;ll0g!DB&PZ(S=T9q}8bVF=8!C^c>OZET z1$-`%IyQYU;rguMin)f!s`N2F$%aU?&C7*ZslGyAUdZbk8Cpi%2WSIal;2@j1QdU-GwbrB5j`Rf6@1-X;rxCP<_NoXEigY2m1*nwj zNMRglxDoWd{}vqEW8>qINTO`?rMU;auP*;0RCn3YbQvL(o=V%XWe=Hv;8{QN!i&AJLe2<_7-ZtJ5{rFP%}m>)6F^ zntEfRF$X6~$0O4jUYB>0d5o4ZZgO&RZnr8)SDrp43+(`lf|;ULB-46`)gL_~cx(Pg z3UZ^xxh5*{ym2I^xep144O`!)D9Q8lK+fVK+~%-tT6i@BfhnYi#>vgkpu2>*d3kw( z^9chfsWrYE$On^@Jp4-vKtS|)Hm_XD)UYOx(KC7_Yk0BPe9gJTX|)$xD0m42K^14< z!#-OfbTf(*-{dFXDldrng4j?-i1jl%i;*vn)l`8Ml1Q6Bl$o%7#qJ@!r45nNR_K}= zCC#q>g%U`60}bW#__zrlGr^6wWCaGpKl1!tVWMDW?|9WzZjpR#gi`(?r#3!|m0bbd z5>7r)y=f&k!I_q`QlVk_O9A&0nYDz?4A2Q?_f(+W8C!g6qTR9XYxMmB#AV8e#Vs{U zJNPbL+5<}c>^go`BS2~ah7AxhgPF@o7&qs5GpLzmJc63G+?;HA<}EZ zbr9ZWGU3L>2;a&O#FgGW~iohH!!o)&iC;3mu)3{0T zbg=oV^YHg&XJxH~$Ds3Qy}%biG@O&e_CoeHJ5KaPFTmuy0QjOs=7ec^Q5qE_jyyYKlJO5BSS-4W8U-+wQJOe= zs8R>svz1OVphqg+>4vK|Bw@*u97uX(e$&!_4BP^A^*)fXVtQXyC9-UC7WTnHF(PDlg-E~%0TNAj^j zMm0lNM1)*sEb_Kf3jUOiH3a8GZZ$0X5&2MYEb(|-qfm?RFg@|~RFPx2{=)pdRooLu zl)weA_;39+gacp_Su%}D7$U!da4GDAQ(IMY;|D}7a1a9_@MUlizE~3DXv(6w3N4KA zvyQ9m{4eQpQUoxZ(^Xqh0+_3lP_;lObcWS4d)pz#N?_d$?5ALOHKp$!JB`x$j89Bt zOI55qcYLmrVzmqA?m1Q~8NC;dtE$E{JBK@z^R(>iGRe2#@L`aDAsb0QP+cXt7 z1s|ePgH}i5=p8Vm7)Y77Fm7behM$mBsfqj|o*tgf`;5p8&jVsRNH`Lg%d%QFc3qrV zMDMe!CONNeM%}Ol=0rt?Rl;Kv-^aR&GZNSCykb_6xxza=~C&@77ZAo=W{qk9H&b>D?x2y>VOzYSz3gbL0Wn`3^LPq>92bD zd!8|r&p)!ZE|7Tv#g;VRtrt(0EHi~RUpk>&pvcovG3WoVaTziD)$pXfv61n4ua2Mx zb{CW=#gDJY(e{)Not?X%3keI8l@UqHF5WDi>NsZ^P+;@LJ>Nk4Ig_ze4%?rAPT?y! z)dqa=em@$@+qWtoDt;6fxbsoTnfyTc&wvz#H$>SgbPQy@6%lO^m7r%Vce0Cmx&?xa zR5IvkeSeA(hY7W_&5w(Axq0|PskD-f=EPH~L7h=aGPr**EXp$>MW>r(0FAZ~5Mgy)#v4 z2ys?r!I`h1XkGxdMgQ!d$35ajfS)^k)1PK4HiK)rktp{87TNh!>m_S|pym?Co z@^2)Mw*DRoVz$Y*hj*S{#uD66Rz#7&7&Eukv#jCHH{lV%Iq_s#r8Ic`aKpn0T~3({3E-7MBf1Qk)U23T?puts;rF&LM^&b+YCfFTdJt zyUXBft3af##Le*B42TDd;e`vD)}*R~Y0{(54$^{PY#RO^{koK|pnBu#)2N~Ipo&{F z{d{$Q#)|QIXjyoy88<(sCA3%Ub{#V2);JMD9tP@$Jez#@pNb1ESzk z253@899LZNAB?c;eiK_D6fK<^MxTrj@4mz@@42~vhi>QV+?=bPZmS{@TNgQJ=EYFT z>?G@4z809T?hjvg2xVgKoFNlRl459xs@zFfMlD|+`fZ&}C> zlY93PQb0c&jU1_T!N<0UkUI9h@M||nz2QvS4JA>RYj3Y#8Ns8>lsp6z7A14x-rH#9 zSMO(a$mmf&0lr7*iwcHR8i9jG6lhAp`j}~AkU!7?d79Fx^j}%m9$WCk0A6NQ$YE9JZAB+Sfzvf z+^5p(n6@v7L5FfxgOg*h7W?T&`&%&rM#x=18u=-LUxJFeoSIFV;mu6m3naIZ#cTM; zF|;^o`{YmD!%*kz(wXW#3zM((l;Vic@qgVRaR`N`*;=Mdj?C@{4zd3(Z*OmZO3?Zy zry#~=nInE=8eqVtq2MzkY9U<(d7as}Sq}-0_>Rjw-euO~*KW5}?j7sZMih21d*{^{0 z7ohCUWJJf>OJjIV9C#agJD>!xXe5OR&=%d1xjCYwOp|=+(j{82!kU0RWB1EqVw8F> zo4}R!v!e^MBL^-RwGS|yqS?)b5n_2n$fsl-x2OyQtb(UNBcD%KdkD9^3wRz%v%i?= ziW2W;;44B94_S1L8W02ZY4cnG#}n^PQo%weh!|}1q>|J!HJI+^ntiSu8X`lj;t3BIa%a9#l`;MqW)k^|2gNEok~=O1d0cX68D4Rs_`0m zB56JE0l>RtWMl*o@n&jUZ{EngHm3~X<2voPJi&iAPp+`+asB#rU*ErAd)oCndm=kH zmohKX7b(VRdi*8DGARW#OCHRaTUrLMPfBzjz_9BjvI|8S8MKM;^CE@=Re7>J`e_Jv zKmYGxH?T2W-5;bC8q#@#r`u*Mlft&dcu-YXRVwyeExGNh79PxuOFZZoBsVIVlkx~R zvW}*|o)DeG>_HigMHxX?D0b_7uF>t=q%lbz2ZWXxyKt1am_N>x<>>r+dg5)V(|wg$ zMP>OlsJMlK_b?%Jp})Aqtnjfn1C-QjVS@P_t*({S0p+u=q5cn48AjY&;@m;(l6aaJ zLeXVPdMruE$}Ci@M~p4Wh4}(HC?ob&$70adJr?z~NrxlUv?>b@oPmKe(5f0!q>tmD zUv%+bC9{kTsu#><*2|TXF{7JJMb@)j5-5HCi%ax7d8Mf@$}jTV08O%{ct%29{&%FB zlpVi$t+ScfK)QRk9Nu$RyAFQ;DXXFA@t+r56C1GRMG_e}qK7p|^ZncRi93*CHK5F4 zICvycjCd`D9ypwmo#qv{dGxcFo?um zV8tRmFic>JaPhBJpY+FkQ8BSpOYED9PkXw^L*0C(yKD$L1;wDk%(SZm>rls*?i1;n z9yx5>Z@)8yatC0XBDf6Ps()6A(=ZcHIm2|Ig8(i6{{8!X1vLBX?;Z^b)|ptub9}1k z3;2_(6&6DqxV_inr=2#ek<6e3lT@4-k1XLH#I4Si=p2pPGf zfnNM$AbV!ek4XtJm5?^HkVq876xTO5`v4xM?|h6C5FnQP0s|E-?zcm%Mnc>7Gy70) z?_{fYHAnPsL?Jh|eaQ}R5~<@Z`WNnXUNDe~NO_&FGg*tE1YcQ0Dpyb3 zF>d6(%d(f8s)0+NBVIi?o8S0s+mwD#bAI?;i4`9FLhMCt6pp6s&p`h1Du zL`vr(S>4F10d->v`8~SWkV$mS&o)Qac2!!FzMnSwM@B_^gnq4@+))-3;fgQSMbwQq zSSUZ!<6Ix9)vCepjObt7dvu;-d}T>EI<{iUAoV7O^bTFclb<&DQ^zXXwOT03Z()&F z%G2_#C^dRyd6~?_>6vAk9$(X*OG%;6MUj8q*3@mG6^Q5(`f{JdLLiR2%l9==-(n4S z`BuUWu2_lHoiO$!RV^(ok{lft8&EeW;#Yf)It@);0JRn7*kQ#MmeZdo4BHRBk&6^S z9lA?L`)lJqTC5~HWXIMH%<&cI#=D=iZorBMFly6Ktei#q)(RCmJc7Q%5Q|2ckF9Xy z%WGo(POCB%x{ZjJGeiRu5c4@#LqbruI7Azt1Zj z^?DpbP%?i@xC(1b;w53c6aFWTQJvDU4wgB2>=D>rvsvDZ;nhWciQIf6VI*(>)%XVb zKc)wmZz}HwD~eeuBYshFGph2Qq!r4ng{&Vd%zxlzo`1y}+Zy@9_TJlF*Tm{Qa_Vq4 z<+WTHwuXd+1n7|g)iBNS_6n)vCI`q|41VH>_({;gk2YcD7t9HEfh~zbM;H*W{N0>j zM#uHhcpjGjRL;6lZ*4$G+$MAL9aQZpF(@^sqRfi{#Rn{%^a<2#;4}8}UnfIqO#7_n?ilviaN#;D{>*zwc~FL89j04e33G2K^IJ!w?ns(meVQ48#rn$@ zU{Q0AW`EO7+|-vcY(G?;)JhgAno;a9)5SLCj{3bfm^Medyl!-lZ*}f}ZdR>JEImSN zpDm<;v!QnvBQK!DpLB3(-^;5uR&Vn+xUKK{l5W)cC8o3e=g*HHmB{&SXx+87Et!-&yB5PN5 zEx3g0E@E-62CyJi!&4H`tufkiVSCFsOQqyi?j-$JpO@V0@jh6B=74XnYLy#@I3JEz zi1@tpG)U!+wBl-`vT@?VS}kab8=*S|n4S^8I9b);&8mGnSgjMSFy&dC)O}a_Q~9T! zOYbj7UcLTy|M$j8i}m{cA7lMMztNeJ#va#$ThgmavMR=@-Rhzw783&z==FUaeQ}t zDEUz?=jvh6CUPfeV$IuXzB2xsy#H}S`mk-qS|0HzDjuIXuRt(W_c32yMgP)Pkq6(DKFNQ# z6Auvnepd5n)n6wBcay8UPY-@|e|~NuQ5ABrmDpqZ$CjZs)>mE7HIM$pOGBaa!r1?6 z0h8rzEl%^p(~gT<^{+TjzQe`|WFOLYC$f{Owdt^lt@ zXjAb0hqkr;MYbglg@t{(um5I|N}f|_)~~)lazSoXj+t$m^K$~Zs$Fu`f=wylfS5C2 z>wC5mDHRPk?%@gE5V;9M)p>AR#k2l+KHmW~%7aCR{=blk8ay99)6O!V8}_o=Z>6ke zKomsGw{(kPcHRU8Cf_q;6U!7DvJ5;{@vuH`?IQTQ#rQdWa{eCDA8)EV6RAc_tK5?KI zO^1A=-^c9&$|Hv-1Qqo-Lm&5%^%-xk{|K#cOKc&-blM}mtbUIo{(pW?CJGkmv$aw( z7zl|jw`K1xV=um23EKXPIKIcS?lJM{PuRVKh*rzfkYi$spB1*<^XZl>JGUn1Ym}<@ zwm+-CGyS*AJQfvnFW|-Vn=5JW?p23Jv`v}kw@tgm&pfvOms@FA@~2`kb?#f~ z($oGh`PBt}d%3N2>#%=2?B8CiEvs*blXQ-nQeUL-T{ssOjQvX9zP-MQuzdH1U}*Yq z-;Z-@zQ7R~{X?BKT%0D=1%^+?l#c8?OAZ*0DA#D9A$XE(d1^!oUmIN%#yDi^6KkLL zs|sef9pJI$DbXGzURPPm=;H{m$34ON^A-N%>wlMU7+}QoDN$~x%X@VG-JWq|2ll_d zL+U=pxr`f_MgjbRt1Vn|GOdOO53*~1c)GKfyZ9NLcWgb-Lg#%A_%jH#p2dF*VHz&Q({?%bh)Xw;C?Ub3}mmq@u@A%e2k!A3*6U?ho2#el|p@xp&*s z$r*nZ)DZ7L>~M@`a|*Y^#?sTEx5N;V`_ZrAO~awHrP48p2#FWaDOKdI?mcqg$6$e( zQ^1r4%q^wgL;M{!Z}zM0w`FK)>4^vLJ}bRJ*hO~f;_Ntee-qWwO^$3M&~m zU=QD?k8qTszb@`I>%g4~Dcm_gr9+gI!v#+t9HkqNPB%|aHh~}>cb3yzyYVTQQ%$yq z!BpCQy`{EFKY&xs>^n=Kpx4$Cw#u@Vh}tIta(o1&cdJ_?2ZLa#&~}wxReJE3uO@z> zLzxd$&keJl~qe3ei!@1OBx|0Ak{-FVB>-xuEnSg(*D-`j8y+u44k z@S)|~eth8mSZmd4?)()i96Fuo?T&7|$l+Sk%p$Q@!jJ5#h5UCMr-Npu2~Hgs|55LC zjvg0IH;nDhRgxxWR<~-tx##=W_++R2>2n3TlM4T_j?(Fy*1OghDT0#U-Pp=mVmV#j z>|yi$kh=1%{IcQ`k_A{Scf_U^z5mV%i?1AoIyw9E0gXc=c=jKw`oV|Co57nuP@PcS zA1Lo8TOQ{hYQe>Mic;IsAUS4J>(wQVa;7wR0i*hAkYho~IQtrbePTdtKH>p^lqPeT zMxdvN2?=4#zy{|JozZuGYSJD6xS=RS?+ugn=)V-u&=6P6dHNxF zt26Dwo%$76bMgW3Khv;^5{v=u3cqI)bSPn$+L^l^dAc*Izssbwb)$nUHtNXK#|q-U z8HQc#L7(OCK|nc}cJJ{iyiNril96~dK7Zw;t{~CxKw?~=Zb~MRUMtD+bD5a_^g{(APe+s=q39=v@wMu`(;;)bMepKDs?^wV`3m6EtQY9 zy1;Om7kuLDL?A$ANx}@6FOj1v5L2$5XPPB2plEuYMD|6c10@!&7h1r6<%q8-=@hmy znW;@h9oZ-T*U&SMR@B0nr?i#h066;%3;5|UP-EUqLQxUZG_jsWqS!Y#V3PP%0gq*V z3yuUp{^qXja3xx1YiyA`-ffP4dE)qoTmTUWlEOD0-0MSa0R+1tlYEJ9oJh+br1Yrg zhS$}v98kisOE{UWPdu)QKcU4fUW^as{XwZrx)NPZGo0@;=Ya3`)=BrT{Nwn?Rm@N^ zRXv=D-n&d3=kZTR<=V*uABzu6!K5n`6U}Rj!EFJ}PAS94ovrMyeEFlCe5B_QwpPNj z=TJwbD-?_v%0~;-P*#RV1Rsv(!yM?GsM)+SLNENgGUE87U_L6NB~TFaSLVuA{->@=RxF#zC6N^b$56N2=|XyE;Uk~oYh4@33dfy7S>45CUpo(fV@ zbc9QSozA5rsiMQd;GFqH^8>iAB>klF;@Kgrn&%ZD3J=qVIAMy2i*8Xt;_v)ceE?`W z*#%*BSle9`qaQ?d2!%5czj$qk*em{q{zA%zvdab?$$pE!Tc=2kj?BOhg88yPo6zrk zs!n!ETX=s~&dt1iyhy|eGl_#a|4qUnr8_`tLGyK@m4Y@xV5-!Xi*CTC09JzqTUuUD zUiRY}l^b(cKO01D=u&3MQ5m9_d?8BC8Ms4Z7@3#Ii=ad(|67+5!9tz8L|sW~hnFHg z5&XB`lIuN88DS0D`zWXpbnrs}yxG^MBL^_hbvVn3D7Jj@HTFA#E%38a&y|gjjVY8V z6wSqEDF+9Eb*+Ro0St%Gc8^tT`dx}6s90_Wm+_i_4seLKRNPy)a<8Huf4iWu4`<-P zbb!6a`A1TE0WYRu1c|1QijR$bo^yQ}Jj~=v&r|W)%!F2ux1o_C`h|$CprFdV?%9Az zNlT+*y;L#1rz(P={4M(MZoSq_!t}>DOb^5=B?4g!Qr)xIT5$kNZX|^=5PzG0d+cz9 zb>K1VbcoI=Cjb7spsb86d30JV{DDPOqK(LU0CL3~&N_`yNIPFR;i{G9RrYmv=`ETlAdPLs#!X841*PDb0MH-F4|1^$#r z++FbdlYMzMCd{I`HD%zl{^^bN_JzazFAF2yMR(2R!PtHDv*R3b3uEhC%ihpdLvq#R z4LaO#+Y!W8W&#=}R%?RZ`4wy?4bkE@TQoOgeg7>@S0%zbLfyjij^pI_!AVsw{6Aic z>cEq!(noV%m49F+>>1y(J5)1ZUDXsE`H~h_MPho|M6BVd(ad5o{O(X8ICnmCNw>ofuPKT(aUU}8ru#hqzZoK{=s{lA#NQyhDsgt zls;oWyvW8w%su13j&oJB;Tcd#p_)B{6B|-MF%LEUtiXmlds(wMPETFQiOpU|L$uD5duNTC$Tkqz+Uq-peRBWbfy2esoTjv(~PhJt+ zev?~PrXp_!dwT&Nq!f4ZyZ_<>m7J5F%BU64Kv#Z)D{6~VT%cJ3`v2uVP#f`mJ4$jn zfw}=O9xTtoU9Ov2_@T+!*-mtL0(B5LN_z%)rGm}+^c-~r8$s3U3$NvByhevXz`T77 zZ&o?d^TC5vFukbf9|%%}=vs;O9mHNM0Kv8kAEl{*8Ody=`L!>HK9LwB6X1(xO*zENd#ll5l^l)T68J6z9 zM;C^ncC~)p&77)5Wq?tmz*>9C?cbx^x=TAtZc&N)c{fuJBGmXP?BnZ_`G$+*-8PM zZW0kmPZ_W!9AY1Gv%<8El3P41Ec7!!1Ha0vzo%O!0$QrPO5y@iu8*|PWrT&|3 zO)!G!h5D2GAVG9QIrL#B9OcNsQkJaC}Fut@W6UkBWbJT)2B~XoOBPIox@vt3>2Q#{llukE9*#3Zq>F;=1DmC%(j@H{b!jib20s^@wU@Lr%1{=c6%nT$IxECfJsul%dqp;hH=4RQg%L*wUjAnfgv7xhIXM(1C z-1ai1xFge3c+P83_y0DW=!`&la{E`U{{hj@sFB(y?y1S=+kQtMa#?x44_>GCf%U;z z!sdyrDQHcnB(JzFI4C+0)2{LK7^xh!Wtqo!GsUg(>2AhwD|JvY-7zdxDpUpTeDTKNHRIcjNp7 z<5zxJ#y4|qw8{Y+Yf#&&Petyy{sbA7{T~jwqdKuwJ-3yQ4*EAVU8V4qbY;29+qM1A z)Nkvmo4F7bk8x|^%tGIAdms3BsI;rd!VtuyVL?nxP>i;U%J0qVi7D&w5OMp39AL|` z{l-h)LN=qQAIhO`PFJrIl4xjZ(zep374>sqv|@sirg&z}!#;Ljg)^LvUBKCjUUKpUUsR8vp+QvkqQOJI+rh83P?WE{W>RJgnD zmoAVDCOya01Xkb;a$_=H$PsY{9Tdo@7LnE^l)j~S9k~v}On}X=O*fr2%xBT=D%kf? zB8v(MnhydZG!(@nN^Rj)4+VF+Y$O2Z-z9tgZ1*@rdBHL`>MQwWlk!3G!m+BqCQ&mt zeqEqQ{vzhb?zn=arqp;VOkj!gKE2?N`~^RJC-JaDv^Ug~djR$0^{|qEsk2t8j*d=! zKkYY+s_0C#gw!_zpYO}d;OT=EjyI~jM z3X`L4DI$47hodkxGdphwET#wZUzlI}W)@_M+Ai_*Bvob5oIn(hlZjn~EDV5>)(9I4 zLJU)yYNiH-Oxs8>EI*2UU}!iBRn&a??`Jil^~6?pLz3ul^A>mRJcYKOFS=j17&3z* z&;%sc=V=2-P-WM_NKwTuz`C%6Gz{b@!6Gp%debLE_+bTy*(kWWjQ_;n5U=rc)Ke*+ zq>}z|uQxWCLRjSG)xM2a`Vj>k7G`ufHA(Qo{!7Zvjy*>3cf&S;u+O%jK&YlNee$}~ zCV^&G*Ku-kqG5=SDCK1k{UCZPiSV^OEp8rN!n-%g^GC}J!}rQaozziu06u$i`3_2J z0)0{Kc{|%TB+v|!_!R5#Zrxz@d4CRd|6|wKqR=Y#N(zwlu9%u3|M^-0|aHlGIC**CYvD7_5v1xVfld{5{4^)A-e{1~vssL?;| zO3%z(J)^(WH^9hfk6K5C&iCiC4v#*4{DBD}rfs^&J6v&vtJcs!A`xA?;(K(kok8OA zE<%8ddKc&Yt-i33r;v-EoFp9QsMZP~8l;(u3d$Y-j(nK7EYx9L_h4@b>5$Dm5{uOA zFo8*t&iCN27b3({HA*>y>{FDjn>~5b(0FZx;GIo_c-XiOp^l2WS5N3VHy?(33ZTg` zcO~+4|A0H2LIF`(Z+iPSa}j{F=}j6N8bUNdMzXOf}Kel z&UMiJi}(&(*i^NYAx2}&8$l(Y%3Hf2S8r1y?gh|+q+__vTRNUufwBpm$I?rv zgu_%3U}I^-O?p7i>|!|~PDK-0GwNt0k6@qDSf6*cV;DbKj`Di(QbZzIZ|-M$(whH-&F4Y};o@cAv(^{_Vrf1~@vH(&7$69AC&F;$yy(l@-%n!?pHv zsQ4x42pN_veg6(huQC5)M|88Ad3Pl1h}~PgUiZy8#fmp`BLz|5!|v1@3;4bCvALvI zA-s-5trWQfDNHWWJ*i1#{Xgs<4$2?7XcP8(_GitFE}2V)q>}J`Yi)eXi#wrO^~5!E zaiM5c<}fjh{=Po7bs7Tt9HMcgbQSq^Df|as>E&h3(pva%M(N~Fn#I`yg(Ft}J3co> zhyXXiK}~OAnBO@5guA=@0oi+_EtV?_WIvUIPXeC9S63x^?`?*NZd4i*B8~bxd22Fp zIB`qo%4%{dBMUuoSlAK36-UwLOhd=>wag`WHas^iqVP#L-oyxL-s!gZ%x7dwhqqA7 zFDriDmRRJpME{R5{+lj>gX^lP0uFT)Py6NvwlW(yf@2)NHXOwbffDswPY6=@q^QX}Wy*GH-_!tuubsDd5bQj77zX(s0L+ zG}v*27y{3|jYWZhvta1sRalKgk_fwoz2V`Qy5DoQbEArWHE0P_$6X_O@gm&g{w8vc z>T*&MLMTcvc&D=)VlsL5;O8+AJan2{ z;cXJZXNig-^w1@V#?r1veUISgjokzZJ;}}Zd9&v#t%tUjmI@u*fVHGk?NM(F%AnPgtRyhDV2!yLx33DJ=`AA{gw0L5wG4p2!+{ z%!+~gTpwy567XtF!kwY6E@5j0(Ke=A20D6rc84Skj10>JvY2(KDnjC-8aj z&CGkGbSz1stDcI-RZ_?E=tFh=aUokG#Z=16k{=z|w2)z~2gacxWju2L^9h*0z;NrV zHL5GlG6J%{_=G$n-goRDf}0aa5Q!HYCdJX7+tCf_cO#f z6Mf(r@dc)XQI53u=Mj{N zP*&jS+*YKy_AdAe4GNN)AI*I4ll-_8&3=`MZVR%c|}t9GEZ?zTbXIh z?$HNlwFPKrH8nK2OtsDxp=qU40^R`nC0dhuN^0n8GqvyEBZJW&d%Z;aeczF-1X(l- zR0njJ5h?csJ9TvJPw|`8a@-7NPpU*3Lv;e?$$qJhe`~S$UoF6q_(<-*0(nAMNg$<^ z!ti81{#6E1!awk{y2xW<>b9sFoG3D2Pc4WTtE%!C$SQ1+q?&V!^P23;A>yww(b1_l zUloL5MPe&aJyZv@IH>Eh;kfF|1HvkUrtJ>Uh-5BZDty=dqY*#BkI*<%-pMxvj~G9C zhh!t#zF}HUUVi$R%fFXiGl2~#Zy#5}6~oVng<-B`%1j3;zb^1$GP#O7roi)V^AN?_ zYooYy&HQ5R{q6^om)#;S!uKlNr-|3lYXM^&MH?ZVQV?iOX!-5?;b>F$t{?vR!cX%LX^5ZrVl9g0ecq;8P5 zXhB5<5kXPExqtV*W88b+_xtONaXff{z1CcFKJ$s75xSISQ0PCtLDmZIOplupK{>ZO zAKm%lUt?KW$ouLiwsurp!>U}jjhj>?8PL!KS39eJg*OqU6msTh%q6Z7dm1-2Hkz<)0B+X?uAjMgp)CUYjM;qa9_s5$4#osd z1uRbkHgE-nB(faUH8eT`mI0_31+Ki!$H%_Wx4Gggd2zxiidoW=`*=vu3dhS8Ze`n& zt5C>qgVBT-l(4V_A^=%lFDxYb#FeUvEG`Zst$Tf$mk4`d9%3FxeuQAUI9{|DGb1A} zFFxy~e%h-4ynR>?8i=~iXL;ku5%MHxX9{Gq#iwet82yV~5%6+y(UPJw9?$qdaXapX zaHkHk1Uy(hq%8zP8G$PRLQKM%-+B*~pWt`Ddxr_`!Fs(R8d`6DekdF|KX(X1WY*#J zgkC}yveA(dvA39D03l8N=sni2*^+zK;7ZR`SesePT74^swG<~R=(>9Qmy|5<=F?sR zQ0?ikF3Q{>L0NYTke$fhM6OTetf>xeZnc?A8Z>*%q3&LqI|cLr@(o3@3s)h1q-5V5 zUs%A9G^-&taOLlQ${d*|rlV-OXuvqkg@)$Zg_!WvrMiFQ%@6jCN)S}<{9s>c_2_u# zGABuh&Bq?)?vg>%3K5ea$~$;9yV>bv!2REX1*#9#XwJ}@?fcxhvMck>|LQ2YoC@Dn znt1&l@*-dX+{kqk1R9Z9Y0|is@sxylg4*%A0qrU5XWFuJ%;!n_Evc1kTA%+LC_l}G zhKP=QrSZ98quiLS>v)ln5MRC&J6_FAw)eVE)NsY&->+-G#vI02djXp+9Gy~&{=Te( z`bUPfOdHres{zpQ7WB50*LzdG`(6D9FU+7sLW5`( zf*S#-lQcVUfc@?z3D=a+rDRS^C2!dlam!L`zA`cvPg=9&ukbLkDn@oseF;uFE#Z@b z++2XG2L^x`J*$00YZ^03QqF_U5m_QV1^y;?rNzlp*m!(F_lgBVqNb2wK)z*1uJXc;@3lPng_?auMpug=_J?7 z8a7#yl@)@}!gH<)WHs8rll}v1vn0#@7Qt_xv>5G19h9CM)(ciKemJIX(z~jqB-+o@ zGj_qUG20O(&rsLiE;eZJ#m%}X8=d931j3!ilt`&2mLtpe(4aMi#05C_TPb}rJxvP| z59?Zdt2+afj5XA+Ov6g`6q3%$w144jO(vr@lv*&v;ISFU%;Zy4kA`Yp1#4Ucu7E#o zVE^^d#O@_4AC#K79pc9G#XC)>!f(Hak8+{m3G_eV{DfpseQ|u78*M;LA=s*_hkCUE zmSoJJw7YA$53zz59j>)lIT@fh9kbuwl6+*DeWz5Z@A=r|ZldwiyGb;?Ae(eq6lV#z zd=uR3X?izvy@Bt84(xipnR@kW2XW<16mIK2Wc^p zlMBBWL4~m!47qQ-_oE~tk3GMPI2;?Iws66>5Bb~#6zm@1@P3j~7~RHQBixHWdEe99 zOLJ&*#Wn69*dqMs4X@vql$D;r!|!|YYgy(p$33ii8@dir(X5x?qJgjK+1G0ol=Cgi z(H6M_?2rTj6P6&{wFBf2v`RuT`$iRofyIGiURbOWph`mlP9kCkWACg4eAo#4c$qRY zGLjthFNU)lRp;{8te*1X|!m9wGS@ z362d|t@5x?%HbRcCKD-Y<~!p5c8y;w49vk-7XdSev-wGo9F#mcNVKO@j~{;M%f=!H zd9q$VFU&vFhjFkBk^!bJVKUA*m_XY!d=kG66KDxVWSTan4q~)ScFNexNfbw)z=JK$ zzv6Uj)$VI0EZ+t3NRQwl8;zluda_Xx8wDT{WEr+A6kq+jRmhI_j(88ASZ?&ya&(|- z{B6<1fAC0g^k)hrtpk9DFRo5O$Sj3Uwj#W-WXO)|^BgV%lA5Eb=vPmN4JFcQ%dkSh z+QcNzG?;C)A&3^(5u11dFCV^|Eki#lj@6`zI)HXOBp|kaJ5p1Vu-i>|YZ*4nrCr=- zWCK>m8~qjn?H{O0C`@9^Uzf%vr$h0|Apbh`h3G4O_e_e6P(t#2{<(*#z&+MN#$prSDtQejIN#vRQbGRRNb|5uT!Bnk!X!PT z{(olh@-|q4EA?pwxdz7zufIUUqA8%gwUzu5zo{DIx>C!X*hoTvne}41G9GynuQ_gd z^7rAOJgs|1#!*(vK@MeXY*QQ0q=SQFM8lFWSnkN`~_5K+<{D( z4E_dXtmB_;K=?;m%)C&7T%XzrK+V*dHesmh1bG4D`h!)BabzU8^r<%`c8-Pjx;AIt zVfnVsUafTdS4~|VO;fAG(~64y>{tWaNe)iV)H`<}Dz)6eEhRMCJXZ3fF0PH%x5g&U zV0~?EjCCXA>rTyi`rClGddhCflWNh{p=R;WV2xrjgq;+prbkvtQSv<`hyf__z^Vgx zm#`wC?mGb~!#(*>l1{0}3#H99#5k@n4sZ$(NP1$hEhdQ6hNB&BO67!sDgErbha(6%-z#~jBi(EWC{tb zh%Gs|GVa1puOX3xq9232kBgm6W|dY?$E+7^8k?HpTZehj?{9rophdS#^)3ioGvwpt%u9| z=hvqP$jnR47g9td7u^Ho@zwm!&E;4wc+EMHO;rADQNt_aF@)EeciQ^Cm2DUbvi+7L zullh|(AKL!vp4&Q(Ny2_AZFKZyVf}? zQUB>U>xZN4wir|#K$98>NscauAU0q#kss?W5^0|j>derNDxJ_^7V*;u*7ozdp1wXw z>%+FrPSbkVTcpXqhdVeBi%>U035KlA zP%s>&PRV%A(?~wA^-LegT`7K9+)`7+)k=r1ROlDR$*`M4x%r{fNs=9vA4%env-Fa` zuydkbKqkWF%YE{x_OggGVGj4gfl0wSgmjrj1S-9Hs;)7+K zNJ1UD`h##$N2|M?X$6&$M4sb`RE+{Jj3w$+DjRI(0%rU^vA67hsDL>-k!$d$`6@QH$Eps?L8n%8Uv>h&_`z>i~?jAR$gk zN#PR})tXKbn9c9;=&hvxa}=k32D-aDlI&b?RL z2bM(##|wi)cS>N1{{-3#At5s92W@RU`90+?wl6<4jpvk?j|68s0p?Y(_h}feNg3<+ zbXIPU-x~9WL&B9P*~9jhl130Reh~>bdByL7#h720gp`Rh%O@g&y|G@oUzJ0H_7N8n ze?g1b+}zCRSRw9`tdcv>fWcq>`evYdCO^lh4rMiMgpm;t(A5g9t*=j@#Am!ZGrdk0 z24)zi&pyCD8R??lR7oEnr9TwH{sX(TDJvsw>|mAullqB0H5?G2j0+XD^?gJsD^3@K zuat3Eyy$=Y_%@g+c{0-`K5f6mA3p%m)++6+tgIaxw-sU)UX9zttH~LZhmY$%PmyvL z`qX9>?fm!=XompA`c;Kj*V0nY%{d=Skbeod?`(8A)M9klx#Crwva3Hxc=elldKP`( zTKxS3`0|1^8Y0G*cxiPrQ5PqkwcNk;MUFw8KFOioF|LBR#Go|gJv{O3Y-WxvfT_oy zLGT`^4C;cVDBKoAl;xKz%TLKHIlbCj8ylTWsoop2nhvq}^6+u}`Y$ZN1mtjL7^Cjz zgMh?5RFnw@vYsq1-wEdrcv@SlAxasj zks8_}qOY#IZyowE1nmi~lCv|>+Yq)LphkN98RJPrgBu8&p!z?5ZE6B4y&_&i#*wIos?$GS}aku^!OGSeySCvu}`?rz!wfb}UWI$Kkn@pmdY&iyY!!#K<4*YVpX zr&L7x8|z6OpIs|dHLk+ZV^UHcyk$=8*(yE5atDmwiGwceSwHtJ{y7N@KRoym&O)}g zpd(9=Pt2|mPmsrBzV3(s3E@yWjLhbEy2PIP zA9J1!6J1^b`d~c%86eFLheyPD6p9z_t^Ir-bNOHTrIcDfKrY0K%FF!>P{4Jw&|!FO zJFc?fOM{U=9R1Y{l#C5nxAg<#O=1QA5iAzL%v*%Nn=M++r zFgHb^nTPFv=C2PGQ_Um@Y)K>m3-zLGKrE)Tf0|{T|3~ab{0)fLT#hqLHYQOaz75VR zC545(U<5Cpcw@;Ob}-qXl!N!!CWa&+p0K;ofS_Ewj3?U?_hDz}QS*Z*@x{IP#}|xx z9HP0S+&J_Z#Ems!`(GmCt;WEk`VSoO0abEYO8ljwF_=Zq&NGsg?f4J;^{RZY-XFlm zFCR=Kkj~JZZOhB!CKO|(PQqA3~kE%DY&OXth7KM{74XwAd1 zxTNF9Q2Q9Y0ns0|sj7It9tq#H((tmiu_;D032Z)p{@mv)^2q3xc1C#|^>G(unZxQw zlJOwi;^-IXjKt`Ao$*R=H~j>MH%?A3H7(=3FWCY`d;14Xj~tFDdZ2Jz8m!Cc2AYK1 z%@H#%t(2_P_PRA#k&{I-S=CJUntl^JMLf>9G}Kj9E0;ZcLH7CB7)IX(8Xx5M^3vny zB;czaYA6)qND@GcjI(Y}7t}?84N_fJ$H;YkBO^%q)iQE=X#XbXM_Xf~iWmd}XI>bU zs9_AFt8P`SUlYdBq9Tq&rO7J{U5A7GP@mH7IURmk?C#AL66XY-&0~&_Gurn%SkqPg z<~rO&|5Y0uN^9mn&{pH81VTl}}6I3OF;;2m1`fT34xr6_M^!L9MN^WJA<@ zlYEHOIyL`De1ZW(-~{L8C9Ldi1j43|5C|S-B@|>lT&CqBZK&5&-qMML><^w%Tp*v| z=1eZ3f8Qge=DKGMyDo5OE>Ive3VB}`TR5X%p|A?JPCGS+tG>T9Zk4DPGMyIZ{P)Ca zeS|un+f@?6`VVN!sMC9F)K{q)hnXU^CMspeq_!mg2=aCA zinp3wP^-!ZM>8pEMd?z+$eIO+w4BDoX6yBG55rPJ!zAB2SQ_au#BGU zv%Tu9l=~(8HSFD-T$~TPZp1L4uC!$HQ~F`>&VYsimPHc{iFAQ%$rOj}L4_~ZKBW8@ z-KAo>GiacHrmlKpq5%B5HaBo8bf1GpKJjyQAf!skjEi%u4Sy~c(uY_Ypo3V$qj)8z zz#ExOXuE4+W8-aqA%^Bc8}d4${id%t>29;x5r{YnVksyo@8D)5GTEbxBUe1)Z>GpV z_hiXXM>uynH9xux+Wa{)oQT`EZv#ul8@CmJObo%=OogItk0mx|i=>InApeDjUsA&0 z+EpQ66&@f-bbew|lY%W4{ZhU3#7kJLu>SxJLl310pLgs>m_DKgOqgNN0bs26S0 zPsH)PCq8=V(RfL}0bzbI*6@jcd1)!W>*t!lDtK0Ej2Dwib=(;GOmeP#@&dmuP3Yiv z$Rl-MgV(JCBrJ@GG8M=#G8PkHGD+uCw~M#6+q$HY!KbOQ$+DcH_eQ?W#FkTJSh#FCFS^Pj|5}7n;8rqX z4NOy$dA~rE?l#@b`LtNz`DviIVH%to(;8v>UeK{1k4-M#R*@zYB^1NUG*#BxC%8iu zee-6o!3?!c8Y|f#eI>F4+P?$^nuMG(s^Gm~Dv8#?@G67?%pJRx`NlJyzqn^P`%89& zJ_0^)iNM|_E{S$Uul8U68^AwA?D}JWVBesjSezF>cSvY4Bg>LAl|JUlo8Jy$7XL0< z-QHo(_auQkg)dQEGR93c=Fgu$-0bT-3kj?=SAgCp>~=bx5(R{)h>1imCyj8}u|1kK z3!tKhkkToW^fc-&yGX_@*RdM%g>0XsQ|dx?QQ2T(!aoq9;7D`YsXuKfCa!!wYF1}- zKl8weX~F$(ETz{v={;3rRpW(NKCyKOF#cZbc7x_Gki@MYjtb|UH3~#)`KnKBrgujG z$S5H+Uku}5s@pu7^@~GT5>{(w2>cMRz-Q6P%ib=P_VG;J%O7$JQMW68@=9BrjL?9D z^J1c}WCl$~xl+(;%O=C5oJFm$5Py0obz*A#XnZ)OL?C2?)%_d`9f9H zqlf|Nb1odV4@+{*!4vybec{|_K||DZcY^C&jV)vbvKxtfy@&~~>g&5g!}Py`paTNh z2czB0$m&myjwGI(3-??K{FYn6*Mc)3evMfnJOH2q*j5TYuq&`B_y))0V@z+Aonn(1 zjxf3&8z(Irz&<||)G&7M)I{ze=c|JD{#@y7BG<@y(2xH9eu&nDEz9J+0hw#!xairf zwlozk2Z?Q6J`w3co0h<=r#1OHIyw+MuKJYwLm&NwUE#dr)|e=f<`q9jp~rldbWBVs z%`_I@A|rH`8dNkdjwZRG#UIqBwwl`N>(78&O`zHdTKW*d?--*l*;m*!ljL{rnJ*K) zq+`ie)yQ88c1ZaO!S& znO$$aRuxtg7r~hUp#9oRD{|YvieBRS1x8_uqw!_J+NsvuD@cxSzZ7+3#3^H*j)duGQ^tIHw{?p6LOP=4+e#*j;EP~tRE3eZfalH&1 z31-||dpt|id;Dst88#XPwJga|C2@RQEEu*nKL3cKMXp26GNg_#KNlB%geiR(r@KcV z@zVwNtiyXVGP;uLtz!}LdZNBdRoV4Ep7&x=oNkQ?xjsC47B|P;av~b<3QuQ{2aPvm z%Q0@gcz*OgEX$2smhd9+ZA}!PS79cKgHXOU2Rld3UKHPZ6d}8H#UOXGQ7}OG?*G0N zBRlwwc~`j6|IoF8s+*dSPX=QN|jf6AX$7*gJrGdby-W z=9vZ!H`;Hl5iCjVv{8AKpd^zdrHzI+ zelPrc)FnN|h5p?iDz_?qZr*SERDyU92!@%=lH>6If~_ZL)K_`YKvuBR!No4(AbPlc zg&WOprh{90bB!0h@1=wL5EkBC0-?&P_H9BvIqxY1bWpEVpiYQQz;ieCp#wUX;K|v6ORKXEYtvr2*#{R>YPe>Pa?f2{=q2+ByD$H=1s=WQDJ(*4@sztWzTQV8Hr9?iF z?=h&^5-OA4wDs_(*h@Lre#(9GeXPj0me9&VHr$6>@7lA2kv9^ic+ixO&J>S)79KlU z<99EI-_L$tc|#BWwb>hadd=|J!(KI1U(}w*eZ1oT!UA?~HhsQ={pqJZUkp+hqrhQf zWxX1-Jppe-z6J{HbkkX{h_JJxg`BVO@p-~Pd&CwwiFRj9Z`qjuNqi3J~rg1Gk$P%g{!0QP_ zI0MhhW=e(_dpPpJwwylAp9JuHI+CQ3D*TY1_jZ1ci$oc$e+CwPEZ=Xw?lt2L(=x##tlf-oG6td78epJzW*gmYtuL|G@kBDm~eNwP5jurm%3vnpD#Vmq)0nn6>>s zcmynw(n8hc%2%q6WRwFdJJ+oHA|7l0%~*~0G|?rGhwUc}y>BQo_BJ+DaITvD2u#7f zx$99AM3OIGbRWlh=cOS|rs=rh)yAhySF6N~L-D(xHR+akcL4@fYQRrNq7hLEhv3ja z<^R4MEx(4?(Vrs!8b7jT`^gYG&7tqp+hSdEpT_G_3I%g0iWek&l}sN#}xc6&wMJr2lnvfR)& zPwKc$O4#!M9NM?+dD;_nv~C4C)oyc*o$otXN~L zY{gJ}BRk^F^AiCDCOHJ0L%6F>Cb$pR{M%&OKf>;){JmjP6>ft9jzJ_4rF(!B4s%mv zWaQdp>BO64%FDo8?13skoPhfE7}jBM@9hVIu&X{GU|E!}6_Bifa#dMNLnGsoVkG!} z0Y~-oLL;r89cJE zmE;lFPU-9G6L^O3UO;wxFM3a8Bca`75qDMxJEn-&sbV<+;CroUJqIXj1h+#b%g2Ds zp{H!-(*E(CQBhIgz=7dEtO1e;y%-tGYQ52AaWXq}CH?rE=#-d%5$aVD9Bkl!T~>^g zx_Y$?p#UMuu-=Xt*ObR;NRS~SAb=dl^=Tl~iVJ0224x6mEG4UqFKo~O#TZk-#l@ZS zVH$A;fLIb=zg)gx1M5a0^U2$oca)paxdx)sh4A8L<0t99ot(J;1G_-j6$}l<4d^!1 zUy6S!o{vs~(N6QF>E*bnMN~SNL_=WAIeY`k%f*=~#=ii(fPEacsJsksMp=Ntn!2dO z5+-Og$koJWJksS2?~MtP75eCrLmfVxR%1Ro5_t0$ql0_m;Kn798b{!kZfB4k0NV** zR<~AR{s#E=f`X2KIt^9N{DHlqTo~{PAt!tq{u}tS+sAt*A0(Beil4w%C|+a`pc2>+ zodXm59k44V#cHo|%|8VWybmo1o=@Nt2eIn!>oN`+mLzZCi~!T6F-~x)_4hLV&k-tv zd$NJhq{5*9Urh^`0{#Jr`xo32cs?;)k20b9y9w-Q#7FodPcBhWfB0xK?-JxhhKIM< zKmG;t<=58r=b!^k>f3Cnum5m*xCQ%}KFFzoLls4AzO_sdmX@!8JywiMJs^li6cTinj# z#C7-v!B;0U%&c1(wz%MPrK@;U)b6XUJ>w7Zdb>Ywwa&pc2i74HZSf7nM=QK>cdO@f zVHl&D=O0DEb-0vV3<#8Q?B$hr5KhmlUu-<8XCWo>Dl=X6nOCaER zX(9Xr1l6u?Zp>1RYAi1~k>7P#aaxKV{y z(2Y(V^srE?jh=ZoL=rRrztEg)2rYZBy&v;ypEoS*=fuPW{F?s4^32Vxz??&rtMJEg zP*VMsT5ebcVEx_!-pk9&13@MvE&qf#^v*W`#py7}!ym&3(sG^xjDYJ8LsALzlH_v< zr<-j-Egf^XNx&!|B(!bEid*WfvkV3Z<8wfo#*VML{3ZfMy1HwS8n3RdK1o`_`<3Up z$d76lljc8Pp9|K}Az36OCB+Ni&H*MR$H}<`rvpwj5{aZp)386(tN}6o%4=9e0tp08 zaYhb#!K-6!BSl>}70X z&WoLA+qq^#tVx3FO$$q)T?BW7%6?dI8v>&qFB;}y5Mxr$3}4~!ItQM-IE1L)IK=aK zdi%GGy&T~CWC@lV`&)kTO=!cXL9JUft*cSD zWjfO-YCcHdVwD%=aN6nlm$z3rf+5TiZpjS3R9cys(+HS16$x3Z_791{N`_M%d2>3u7hAr2<5HEXSog_k8h)}30due7bRMcH0Bf$Ic3e&EY%ODrkR86IzI4< zMT3GFZe}_Z7!diJKLIo}hbbZyv^Y9Hpql8k=UCX=zk|xxw6~~dQlcMWU2n+NW^d}e zy*;t&YysP}1E5GUv#@w)r&dvyvM@96fB3*VquOX*?Kzfw@QW)O>-j+~8liOUfk}08 zQPDCKS2(W*f4`!KyxxIa5q#gVX}AkEP%z-nKzyE79?}ZM3}WfwORvt3wgHzh0>sG= zieecuFc0ANOh4ZrYN6h+o*_})uc-JZy`R^vz~l|NJ{TdJt`cU{y=U*=-*1LC6py*o zqYbU_q1ShnW;y))RNRzaP~Zn`97%uEGhJ$mi?USQn_6(B$Hm}XgPXLPS6ccJ5yMM& z0tr0#K_(Tnt=)plxYF%KD-Cxonef$TAb&zkHqHinA{@8R5G36rN_s6h_N2QC`U1F= z2=cdcT2juO5hg@aJI3Ir2}R@a@xgvk#xq%@)Q?iO%`Jiqi6aot zks>DV?5RQ_fCDoPYQq#V00_E}Xbp99L!H#c&kA71P3;1Qf`WzcKp6t(K#dBQm;V)x zo}!)huXq&5&i}y%0X(oxD)xlG6X-Q`TUGBsq2_1rGSR`ofEP+cfjwdmt3ST1{1=v! z)ffC+@||SaPp_U`zct6Atg5P-@=fN8zIKs+*+bintu3>Uqr$|}EA%o6ekt_UN;H_U zZ{SBF=^T_m4WYwybgti{RM%py#7qdo@;xQ{^>Er=n2fV9N9X~}qp&2FBB?Kik55EI zYl_*0BHwWjB%MKC5qPDUkUwzIqDq2;5ZCFHkB@Iiuz8c)^Z#zi#9&?sz!6YG<&{AL z@(Fljz_P;rz;Z-V{2Z%qp%zXu0ff{Ke&R>p;W)2SVU7lFz~J6q3l&)oHa|{ISiW`t z8|)h{Ir|we1|*LmaM%GvKmN4*GLXmQBb=_^5IqL(59)?j#}OOW1Mbhy_mEv{nQKwM z3@<5|HP%eK4rU4=xsM&7o@&=%I|1;sG#gMsy}Et$56qsSB>lktKFPNqf>T|#xm}^) zxgDtmvZTGe9sWjS1J)55Hs)M+GQB;CiO--T0+H;OcaOo{Qu4?z;85rb;j0y=UEVp2A@&`izT zoX)bSs0ho6y9YEytlr;M12j5kjJCRlhMMb84U~em5%bxMf3__iJ@9lBi--w;+p+Qw z+5_N!|8J+H?u)Fff}cDR?WhL~cW#I2pC8`cz%4v96 z#+ON&)rhTq1D1Zql-E=knFuLfSE>^xo$OY?E;{=_L&5EM05!n_5O=qqY&t$Vd!1Q`Ars=lR`j#ms7NODX_vn0h z=@81{;P2wA#!&iuuwqYEKp*wWI*LK7uIotVC;WuQB;G7ip4ofX-M{g!fhk>aI}asg z0Qn5+2{CE_EJ1iF0ys=Zc2aLKWtCLyeg#t}1dmsxZdyL)?k zLHp%;iPmwNh{}+$(CH2oO_A)@>Ir!!dLZmOywabXd09e12fv#nVBThkdZL%E#rV zlCY_@GO0}AR55`Z583Yp!FNG_%+;wUv!_6b|jhb?ZY~+tPmNnAfkbDl1?1 zssC+pxB`#P|B3ME1GZroJ4J=za)IH5;~!T<;l;)C-s+ZJNOt=PPb+-nerw&S?*Rqd zeway%sfmGyyD}L9^dS4g4XBvAySXB{&sn+~?GC|agRYup{#nrD4sAU+Wha0C+&c2x zsIlq0VZdSF2hY8THN7yGHCzurSeXvE8!^b-p$h~0kUMUv>+9v^pQZGG2Ab=M!p#Ei zwgy9KadC>(%0FwG>m|COa1)?Z4@Uoye+&pQ+CbEE5jMfDMDyk?Lk3&P=Vee-g!fmrcy^!nFu6q5z|X0fr~p z+1arJ91KN9e?PH{&8Z|1&WX~+X^I)%BM8Mb0#-diS_ztka~K{nms2J?AkA3(^Dx5g z9dUc;C(9C3W>K{*ZPu&#EZh0eGHpd#?ZXfSr{`||C8ekpKpro*?tv{3Jl$fgU=}_7 zibtSQ5#rj_nh52z{p_^K@XW&OCPv;*UTuOxIexXOy4s6NekTYz^W*Q|f7du+Nbi;F zZJ90XZfxX0q5-$d^kSRnpa^%IEnzVM*_;Sh0_ zJ)$067XZhT6lmN0-|64e;#AK925#B4AZW6gnXs^yHAUG1S$~?dz>K zEKj2e?1QpKGwJrO3~IYe+Pt*)5KhO%6Ug&*Vg-8yq%kLhA*0s>Eh*{&bKohmx=H-8 z#5ENyD>`=_atW?VToaCGOn*#Bt_`g?y-Zdn!?D%W ze+|Fe=glKmG}x;YC>80q?1%%Db|wwroAZ;9sl<`scSf_(s>QKwA@Ov^aZO#%p0zV*#j6bb{V7Dv~+N7xTr2)j)ANB@EcrY z_-S4_umph2vm}6BT)e|h^ycbU(Gh6=#-Xv9I3Xfqa^w`T=>b2v1r>tEGhFxs`80_F0p(RY9 zysV_|i5-QqIH!$}+dyjx^5W9@3RQLb>+x}jHI5KBH-S(3-Mgcn8tX9H*M>nE8i@QM zKtS~yzFfIzsF_Y86y@%|3%@Mvs?i|@T(~~M6Ay*!s7i1iwDP||@|s*XwvC~1Tj>HZ zOeTk`?o?GNl()d(V62DS@8f;WOB*{oNqhg?3D1&Y6~kd#ae|W_)EMQ^PA7AB5{fas ztn)vA_UE9#epcj05yH=oFO|toXA6dVB%4B2f>X6zO4`qX)^mP-E=Fc9Y1WAc5raH%{1#M=+KzlN)8{1vGPQd6}d$3qO(Yavt~`4`;u(}WkG zh2m6H(5s6s)HsmwT`^wr-M7G5dj%8SxNNdXOZgKQ`p-29IXO8JZjyymtgL#?VBD-D zwJsEuxRl8xuByOd>pZBb4uzr8A+*&|AKv`_nNuNrsd6^u=)p(y>a0^9uC5d3mjFU} z?nljo+_@!)V6o!&a56_Ih>1~YnBnp8cDb0~$*c0q;7f(ENGypp75cPPawkf6k24L^ zGb8%tkx9waw%Ifr`BzDhPjelwB!@{DY3euIL2Fq`FC5fOV%)zs7&S1c6a!ck9$z)0RVAdigr3@u5z zZvP&T3!ovJLXza)MdmIm4^SBtFdl1*>L@+WV7=CPNgmRY^{XBMLYa1GTuXzAJ%981 z^&^-!Ng0G>qfW)h`{9@u3fu1W0D|OU6hi$L+GpS+Tw}m7xa^gzpxqv27q9;=l9OI* zSwgQxpXTj**TIvj%Ub)40QQ6sEfiMkCK{ zc%S+!v$X)y8-yg=!q4nDv)1r1t4qK~n3|qGHr@UZ3NTbr6XK`*S^Ds5Cnv0Xs;B?5 zM3DPQY4XX0`~*a-lOd*h7@BGuXTZDwl@|YN)q`yuM?v_K~iTXP>o_5Ex@T%{Z_5QOdJKsZs zkipY;@QF7H;d%HT9%4+`s((Nogf0!yQWrTfP2dPq2_KHZa0SVr`V6jH@0kQokw@6$ zm*_dimZ^z)4L%#CO~p(Hw3v$qdU|;5tY598%cmyRLCq+br;T;M#JmH%@iRvK_ZywkvWQuJ4xR{ZW zf}&2eoMLiv(8Qm9{&Sdm7rLLheB*ht&Ce=Ig;_5V;xttxMPh_uCF*6(5IM&wE}ny{ zopmy?tqlr{qlzabvAaZdg2<%HJEi&76)u4VfP*;+ANA9*j&h1|vGCw`>tE;`CGjoG zL9pr>89k_aPWV3}9&9)Ugau_~a8|EhzI=I-c+zlk6~_E6b{ygROSx?jTzJ|;{5b-^ zRG@m#;%sO{2ub+PexsOR2LTumjV7S_TjYCS zh(Q+y`}+FA;N9o>SX+z zIePkl+;N;!51t`;diJe>6)s??BqtVM@-8z z;en4(kdrIHg`s~e;=_!XNSC&bq%PaDZ6pIHoqci^+KhxY`%D;JfJIOFu@9~jFeQ?Ti#17w__EAaup)p3EzSo>j{O)Hh@n+sUdv1 zbsC={_d06?`yHr8STrEg=3`>lXX@l|m{X%10GE8C<&BNW_q2q!Y{o~|hT-I%Vdu7E6E@h-E;vAgY zcSFBFaV;kH%;{<$0)CW}2W+49TOE1OMimOFXxJ0SDHgMVAuc~V`w->_7)QdcSk$Zt zej|ihU=+5=j^o$wJwT==P+w+lXs!~*XUKCh91*wyO0hDJLcT?@J)zq*_0YqebGIAE zdc#XL`*hyA#4ie{KA`F8m;3Wf44^r2GTitGC7%yN#Q0LfMCEH2=?5UAW-9^iGmkZOHP^C3S2+9IoX#e-Axv@>(4HJ zIn)P+Z71v&P9I{^)=G-aErvGe?Y35keU@w*>A`VHt$V*schxQW85NC^7d zs4yIY)?(iw;7kIi$l8+rk`IQHLc}E_N`gaDMLF^qk%bf3Bcs&%_$pQeklW3Rs&pl&i}I z*%5d%vj}41eRl%6rmYgz3}|7qjZP>3)f%o9g3z_4@T?WprbqMlikI#A=L3-mZA0X|gfa)wd-=qBqy{(xtO7VhT{Y0WM0X@CFm zLmJ;u5(?aRXz8(3j>nM&Q5A)K-ise$)LziZlP$_bY$XhxWn_y>;%DAGRrFrqtG`X{ zz&yeFDC9dlFshT2pRd3VU0F}~pHwb75UART%iWx}R+wf-2P%%;#mr>#d|)w^wyGE! zLe2buHQwn6{N=OLaaC+cbV7W*E;qU{Lv6FEzhWy{MTZ4-fqK-c*SBP5<|>#89EWaC zP$wX^9x6s2QyJMofW?_LuHs0xE3+ck?uQT0Fa3SjADAE$_HiLK_cR)6;utL)(*~?* z4HKYmlBdEPtu;$i1Rtm{5H$*2A3%-af6pV#&GQxRb%~R0XK9Mnz~r4zHs>yreaI~& zq+b}=EH>bNC$`t=(m*80gboj2WEkI~HT?Sa(N8$zV(E~t9^x&PaB1V{i2b=fYPz}y zlqV!l?X0XOwC}u4^9yFc(LMbsANmoaLPB*D1bEN11NvZg1|DGh<6;gsF&p@HJnvl4 zll(>zoLICM$3-o{6E_Q>@ATLgz9K6XGHTpX7H1b1knMGLb)4Kkc@#3kQ>0OsUVF6O+1lLTu>VSFjY>)oEzoAhl&Dbx@XIXIXXu~c4R{#s`d8xxhrQt9k!N+N$G4flVP7%;`*`B3Z1~SZSva*u`))( zNP?=WDkf1xWoAp&nKjA*m@&yqOaZBR9GWa@L>)NMK+RB$I;F}&&mOhoJjkIBOp0Yt z&ZWnNequjqulx@rm@*I{Jev%(wTCLH_~i>^COEnO{y09~?i&*yq~9vqvDl#-bL&EE zz?zq&g_5BRLtjWbk01gZUd)&-jnrc>a9jIyC4u^d;90{&l zTy8x`w9Zx|=rZo&=eGC*7d*e{<-N&cipxs+GT_$x7jSo&_;T|_tUI>>ks9Y>BE&HW z`VD6e)R)g!$s=(5;9-Q(wOB7~590(o))1{iRf#T}BMFIAzWu<-zA}C>@HAO7HaAy) z;XBHMS%8fgMAP}e!vLKqN9F9y%=VQcl-=&~PtPbobhBAEVWzcx8m;(rYimn+`c~0# zQF4ygo#bS&M=37_sBg;u1fPH)l?(10gP>U#?Dzq@gct|L>(y8`40;Kcfl$jpz~rtx za64ks&h^v5!EHczv3~oI@z>17%gbmTN6ut{%!cbx8F=zxXJ@s=SF;1sqK`v&rsx;a zQmY(7(hgUOpJy!<&<`;DQC){|c%uber=scoQMN5rg-PPUK|$ltu>B!5NVZCh)ue0K z1?~#i9YM?X?85x3SNyRz)32cM@bC^DW^%u{WFu%(kyPh~_G!n5hbmj(*{`v6DnX<6 zwHQan_q$lC#ODv5@FF~{7Wl3p)9nFw(3uI!sR$!Ae>ZkN>&06@6|wuG{O)tb@NYv3 zlCnj`GJd7uRWqy3(Q0Pz9%wyd6tUa$cm`XSYcEj1$G)WW^5E>p2t0~SH{o0n0>+i3^b7J0b8NBxJC_q@j`#@&AEWt3Ow3Ub%Npu z&-{2cXQrK8Bn|sEa5M=MVC9vA8EdFmPwko34uQxapm{sLOO((r%FaCTIstX$Oje7j zsp*(>JID8X!bekGnCF1FS8|3}zO!_9&Ec1BAmYr)!9}hU2wJub(YdX8MuZH1Q|B7% z?J(L#ad#)KIM3i1l%MOF1unwSO~b`}*)3Ku)T)tW;+XxIR2hB)>`!K>P+7*zfmx?7 zzuksms^(7jJ`aZm&&yUST${wyudjj#A3?!0#Z%HgX7`+Mx$qmm`#3*am6d7J#o4+2 z;@Atvxblf>X8Egq{`VC$5R{Z!t)AclI0LZLI6pEe*76;JKLE#*2lziP6-!-b4?(M} zP4f9tVeInx#1~0iIcU4yJPH#P5NHypFcbKnXirYKrGo$`q@U-}UALFPKM(iO08>FP zr#v15?RK|7Wao`D=bsQl0m-UeB_pa<*CZmmw~n!iCg4n#bFD%rR>ycpfUATn4YCA) zKl1RoBo3T8pS~*K`5}L>fV79sLc)TVVG+hXzIW#Z#xV zQ$i^}bS|`yuLp62Llkb;A9gO#6mj;{VdFtoghEq9VB@F4?5)-Wy`_X%cmYlZ*S~+? zHWCI2`DWLz+&cO4R`5Y5%mr5Qf-&8UI|){dae`<@zJbwJdvZUI~G}1V(?743TXcXpbjw zz&)x0oJeZH%E@$(i;j+!^%k53^JJ%qs^GmF(8WsJmKoXRyCutZ-8dN+;36^ia7OTw zl4bI!xsXwbU4_oLdA@|A^h^wTiEH)}MMuD+f{G$dme3#p-*#8rBtGY6YJPV~M(O*% zfB%Aa)^6>~n_u5u4{9_jNsL1z>lm{xVL2LGl2P@QNBB}S;lN&Nr0b%>^c$(Ds5E}B z;9LP}E)*n|3ntg&bG3g1Lf0u48}TuM zgUL_;nH1QC>tX;N2Llb%rh7qIQ8eUQMn;Xt83~9A2;v>3M(q!0qaTP98MHG=^fk7D%){2 z)xaFMrxdV01Sgr4RW(zqN{<`1$8Wp6UcufGP{6f5fB(D+6FCp&B9Utj+93n@^=5KK z>#Bga9tCwHYvFYK{Ir}U;nqqtVQ9nchpvf;H<8oLQkQiPG`Uo=V$S#P1hzQU$I~lj z5yn~OKGo7EKZGIJ8(ig7B zolJM#`Ty8^%eXGP?Qf8hMnJkjIz&1I0coUDLb{QVPDugjE=fs2Lb^dgx)qTWNs%s5 zdKTy0=lq|~%ri4@=f(KO`&NYOckR8`Uh5lc!LhW5rb+{ej8JG#+R}dpt{tCsU7g1q z0+cCu`L`-a`Rxd=Q~9~Mf8I>>ixpJmU`OLob>7|E8yf`xYULIn1&4IOblT-+aEA*W!iQxIu{wC2 zNF4mqpx%xMG-Dp2>}1k~b%k(onUQWZnuR@5gs%!WEi5W}!(VA*PC8w<6yfEl(7k_n zNX~1eBrDqsCwN1vl&aeASR~?}P^>VM5Dq}`j2d#E ztBwi`q;Q;X!cQw~tE#H%Xq$5zu#EE+=k9elxZY=q~726I7=WV4R^18DpA@pO% z)#N?ZtMVCW%Mjq#6&uarD4|G-pUq-F;th_pJaoZeOJhyM>G&|OXPcRQp_9smbU16P zC+DDM7h>t};GMF4#FQVFXK&)4p*U$Fmq>Z%UVrol$gd!8yf;;DWLLSL`9h1(=TJ@N> zU-yyBgI$7}awt<4EeAB)6tpxoa#94b>C;IGyyx!`)}HdD zJBh=5OfEZMZ6(m4zDeJkSiNw-nM~dk{hszVCk~f?TDjcaOsa0KyO~-VH6-gfsSobx zU5PxON#>4Tv_ z`E2jZfv6cy|M>JkTMB&xWZ5k(bPx{7KFmPRzMCL9grULg^sk5Q5k$nrje~olsf8%A zifDBJU>X3-bJvF}k<9)a9&Q5S0LTm^*&!hzH;P-!+;=#l4|eh{I+6S@-|L@0{O327;Qx8{e}DCV|32x5OYr1C=D*+C|9m(2`z3~^EL!)& z;(uEt{_|u0^$&$G{{J8KpZECx)fe~|g!EsxpR6$#O}qf0?!93-)2B z1U}HP7}@5f&u?f>uOFl0klWl=Go^iq&m?Yv%O+8_{YbCUAye|8B1nyibHErQOm>5p zvbKD~TKY-1t1v^!{x?g*voKQ|>E!7qXY(V3KHXmGOzsJ*eqKHsop;rJ=(CvCU8H;y z#oOGIW#p%i)u*ycVzz>yZLl-QAOQ9OGpRv`U-NgS8yf_C04>yi_T-M}^AfOw27&~x zs?iKs9iXcyVA_v_MBqL>!|KP6AGZ`~VaOe5BjHO*bYZFn|C9|mBD)AMB%s;p8kLD6=69Ue zrI{2ac&SMkv`^NlQ~5N46TJlcIZ!7u5!*K!2|(}AYkSjes1Joe@4GlRmr0Y%OlwX$ z`D1B`8^ByhxHWhiOeX}_vat#uI?fBJ>wy$3pa!Xaxpo6Rh6U~NDB{L;BL5S7i|@q>#}^N72yN0*c^vuyx5eD@MYO%QWFy-|=q5!8J1mx=aD2;?F_{oSR&KP)1; zpdcbz+ui+MAcrfA@>~}a51B^P>!x?RXd^5F+yhSE+dgJP_qgX4cF*P-0Jrd*@xDBB z$Hm2Ee4G^lrYl65yxS92P(H_y^OJT?hb)iNcEbB@hcOg0^gSq)FAi4~00x0Xn)$I@ z1n|u_W*P|z2~craPP+oC_@eTMQoqOzymF_W32Z|)EJZLZ>S8E+0GRxV)_0kuEHvZb zI6-!1!Dt>6lMLqiBl%Ki1=Lqii?Q8qf*wlkJO6pd*#CXUKW>YGS#RzPsFL;7)u(M< z2k_P`zFEvdv4n$*3nZo^Y}1=<_PuR@IudI1AMi2(+3a|}6x`U@2uw;kw|W2ZG~h}v zFxBS3&LDrsA23F!d{&Zldzk57euGUeO;0Nz&;SBnsP-QHeU)6O=we$qoA(HLrPawl zJ&DsFYp%!mwDM`O!khG%2Q21F=y?PsEQD4+2tn|MB84;y^4X)KquSb9AVN=-wHS^M z0IUowXktEyryZc1KY>ILsG%}YNIA=m?rNyK{k5dS8Zz~&ZHk+um1Dr&(+lM9?K0ScY?L|cpB!L+ZXm6h&+M(o2!2&SFDV5ABB(K zexZe*hlhusKSlIW`UYq+Hj?pUyOkv9r3zahhC%`#Wyo=MwK3{2&-#YKF)s)*fNN5Km-A*uSoKjWghjUgqYuu z(LkFx01~$ddz2fypF8j}=rgd3;0VE#P;Kf_B0|C+6|g-|4h}wM-k=($C(!sP@8A9u zb)>VQpo~CSWoWh7(a`~5U}_&KU_G};Dan3GmZRg~I4pLwOFyB@0~6k-MK~(=fg{wd zK&eywA%r;c_tiB-gS0o#!N>su)ip=7M*d{RV{Uyb(ISKZ5w{Im-k+qmz_37S0DSB~ z#B?txhsMRsZQ#BleK0dXhgk=WX+=f-fLQ0X8vfuCEi7Tt+y?9lH?g_Zr*J4%2?(O+ z7=p3+@f2YC!cChlOmnA6Df4Jtrk7n-;spXJ&)o-yuz!!H`lkftz?Q9RCpwPJ)VMf+ zcLM#yq@HdR0T{{?E+Qz2PO0sZDXqJ%BUi|PnDvly*$CbAuEwVH-+4JGzM|H2%L~QD z<3%lnl0om9>OgAu?@S@m3GKfZ6e$YdkM+!pHrQC8{j7loJI_XqPc(t#Nn4$Ux6Y(U zQk*!cf^PF34hWDYY6DZw^m&!Qg1F-+BroCG`WZwR z(7-H%Ro9AW1x;>E1@+s>{(icMC#M~MFF35`s8^&a;UY2TqU_RAga7!pHX2?AJ&@HP zGJrXIQ0fdeDfiW2mMCySHxy%V`qFRM@#_L6yvdYM!8;Ux0MCSQ=tCDYcYwp^=bzf% zP@_fIDK{f1gv{#*=3o+}3O}!CGgab~F4ZidM}q3gHa09q9Dj;fM(5_vfh0voi|G&d z?4=y%SrYr)EeMjZaV$%qG)5oBZCHXi#f%g-`@Gvg+k91>aTwv3bgeHSuytqqXZ^FuNuZ~0KUTpmtC5am^=6oQ71Mmci zA8y_^U)}>o8EwpvK-qMQiknWjeSrPSx4`#fR0RhHycD>J6RQ$469NVm{XjJcXEwn; z3ngV+@s+))!QV$#6r`l`jDXrpXIgYIxC1)9;&M3K>TM?zx|}H!f{Fve?;zDB`lieb zj#L^#F7yp(jk~`G9oJMhy5rDa2r>15KC}YmI1QOD52Nhmqb{cE1GpI>_X6Y5U4(oa z;Hxe*|}E&x25u2KUzpmZO0^dxw!la^=^W0pyEjoW=>GJt7> zD3Gj<8)J^@5+xY~y=Y`5G6JFt;HppHPPpV@!bBWtVl7}3S9{n43aQ$ghCO-C4&Es4 z-!M6ub?9E&-kkg7nUDeJUx13)<#848uJCZLLXewO)76zvj{hOW2=wM7CVEm=@=c#3OP1(^SE32t&@1RIE*cQajhx1%|H_h=DPI0lV~OCRB91Ja zzy%JOh=Aifi>7eW(}bY}XN3U}z5?XMlfZYH!u>O3ISFowM58-z;MfBK{dyiEej*{z z??51lf@&ASR#L2wE?w2{H%J-YI(OJ!jzz2*CZ;4%U=b`plzcaBO~23`G4E2xSlYjEsX;o;+dq}B?6 zgbcc<4T8X?vIhs35d@K<5N{!#wYIkM_G5ZxBqeqKfX2zRTE79BfvUMQh%WPyC@1IW z7fjS;kVOpo-G?-K#c>lBJbD2lLS#e)E4WU_;el>AEE%%bkgcjB;2T)B71P%NxRevU z(xs+p`nz?3Eh>;07%uprjvzC5MdgeESo!BKk`k^fb&!yN>|wkI^!?4Xi3S`Q8WGu) z%Xa{mW=TNmvfP_%RQN39lg}3XNTT3Y;sE%;y+7Ike9Dju!6o_N_wQ^z+s{CM!W>@dK_4&zqr}?5 zm;-hcKJts--;D9aO7GVv&?PYswG~+`T%@Xw3O^W)1b`U^2t4jE2a(gebwgNh=?2I+ zh8P4OP2^|7=7$Cx%Q}b355?peK3M~5y}r9!iE>PGE96E4Cx8!&plaj`{_Xs>S9Veo z1ylKPv==uc+i3Gxx!^3q)jyQf304b&@KQYt8|LmuNM|rec64|+nFp$wbm$16q=bDN zBo5_*H%M;Hlnv-otv;mp8>8xY+ffh`Geu2eAl}0*vcL_n>@c~4W34_bH3Bdm(9u5^ z!P4jJ<1_eI1w~#(1=JubK=D0{5v3soihOf8WuI)%XXdp@uAxs8aO#Qg#_+GtAv>+>gxCzCxBY^H@!6VzQT{I_<<&zez4vudEgK{ z4P%^H;C{DYJ;$*b>?afiiBZo2q=Zn5-K|T0Br)VB3#eFiS$dZ+gl>?v-*`Dbj+Vcy%RWCN$IP*#Nm_U_L@3#(draCvcYa>n+Wxa;N(Z_-!&%$#F& zGSaL$8|gC54Q$Zu)JZUSU4y;>$R6Ii&_LN+JP9{8H@_DzFuvVYZ9YX@KHqKw^}nue zx<5|wzk{wp$o~>_??thC`}!s^d3$-iUtE7k4uaJdo%o@F7Z(7Ny5URqnKI=8mnDfB zYHzti<)S4W8EZHB_7UdeGwGZg2@d$nAU8z%+8^}<_LJ+&z|?P{Z|Pv*5s1{%lxVe? zqAL9r$|cn~`Jh=gopcM)vG&D5G`jy1$Nd7GC!7zo; zz#M3`gf|ZP{-MtTyt?D1tRz#s@f&6x_(U%+FR-HCh;IJu-Ot^g=8zNuW~|HhGA^ER z0vqXd8N2{tK_;d!8i-@suvYQSDS*baXB`G2B1`M>;F5}v;jA&e%!U$eKIv(vzhN=D z)KK&r(m*H*0g9Lo>0HSXFu$9pfALL80%m1?TmRmxBmu+TCc)}A$2L3gLq!CGHF^bB zo&+hGXFdXW1lvv=#B7k=d(VQPSUJ-JD*g`GfM55vipCTrh!TSxHbrrxR}8-ju;wcvIKqOt%4 z12!imn4KjphT{m{Dhva-!;q1XnkwHh-e9Yr9@5a{LU})65I-<5(3I2KDnbp>gNBe$ zdV`mkPSk5ZFUu@8_we2;wTwfSN~o)PyTYJ^8Ps|}24~B!Dnv!yrWEBE7O@j-uq`xn zYdA^dgZ7Fuxa!!Y&#Z|CD~7V_#eD|3~h-bdRcC{1QCWuM&5@ zeQN{M7BE(Ye)9#cRZxnagFaPR!wt4U2450GCy2<-u3oLYr^_37GVlrtm{2bqq!uUx z3GrIUY?C}-(jMl@9xWmjjQxsq2gTkX2{CbTNlDUFgVW+oM?}b4#e7f7J39k@XUb{3 zVYv^LwOk%B%b^_FjgabHu+Y;>=^VOwdJ3X%z)yqIJgwxh2p~n)ZITtY3lceKk}V4f zm}nNWA5|nzy(f3@u8K3Lw6i} zO}j>@w<+aeJR1ivi|n!zA;tlh+8ZmtPPk$su0jF(Sw#-rW;vp&>i&5%rhq7vsy}|1 z`0#n{n}l6K{o|(@h4)$WiV8w86j}I9ZC_)@0780CFq8iU$b&iNyjBS9t^q$+S8uvh zv9O@ifkAT_s+xJ@Upw#q0r~O%yM*yP1E0tPGY=C{_|ybjByKm z`pPZ4(6EDTZ8z8FuOg!3F)&LNyu!&?k`hTLv<@`|u-g+p0r6!p)g{?qIK^)_Noy)Q zdZ^EL`V|=M)h%-ms2tm2fo~iuj|vM`pFlI?H#Zpuy2BUq3M?=;B+=nQmzdJ1agsMaM*9&h#zVk)Yge*t%K;JEX+@oRqhQp@mL3g@OH z!|%-$=a#l>FMzHxm}eO;&#Vr*amD*DWTZux-}FOfdv~P@9Ms!66lp?d$b2qQ^-yvC5F!254oBc5Ff&RalVm?gSrPI z{ngt2gP?~HO77rr(RtiKdns5l40i)u9f08sKsk2xVRR2+sth`}JSIRVMCVx` zB@zuB29AfGIB}kv))=mmC2S%e`ojN9@i9M`B)3p&2H7R!sTt-? zM?bj1V0Shu(ek(Wo!0ytExf5EV;l`W(w%^1?0IU<*jgywIOwqG1mSRU3^0^F0g)6m z0C=1e9S`@;J>J~mTyYvA`AT<4-%(=s)$g9_Lf|+}Q@ZKu2r^Shyz?8t%kVNZR6VS= z-%6pd)EjWnr=iE%n{=(M-bYOQ&{U`GjIkP1=2oCM5cH-H18b)9M1KoIMFQsWoN2%} zv$7~J9N~InT!f6EltAw%W@nOnH;dm=S11^Ue{GG8$^i-vm5*#*E94o~ZKNw&fV`8f zKyEmss{=03uJUp=Thv=Z?0kH60GM3lCBl})A_@Br0oxl|s(RdrZZT|rB5UW5gV8!N z7s=nk%E|*kF1JsMP;lf+yD{Jf?e{^G5NxUkTEhq_Z{)6eT7{o5eSh=Z(Qy~R&D9aJ z-Vu!kp=L~w=X@r7xB@XXtLPsB zr$-R|KWGFS@Dl6hw>+1Mi1*2u~F_7sk6$tmln_B!$AFdC>g~XU#p0#Cz^bErc9gtJT>pF#*Y#kI_TdA`>ToV zc9idHaUKaz78W+Po7Q1)^_sVtKj$Nf=f0K-l+Ly{+CRXBu+?MtKBAfALQ)ms2O{iu4| zdp*xC&thIjh^+TLORQA^t#IUZs+$Gxc3i~CUfN^od$vTfTy(VkBZ;TU8hwu4HapP^ zU(Y*+nr^W@3()&+M=w?SW|Eecug+BTt3l2`@V3YQJ5_vaEoJ`iQtIa4ynU=?_@Lll z5vt4fpU=H97B&+kDAry-dhbQ8@n?UB*r!7YsY0KxHrt!E$XO8^%MGXvQX1bx=RBr( zTJ>sdTJGGpgEGdi^6KjAC`8&%S5@UCDJ(00wb=-Q+|QqW7D#g|%qeq}@~%2GUQ_fk z_MY1(a%Akg-6xl1$G@u;H-dj&?jdkdZ!e^1mwC}Yb)dXe_iS?2x}j|7*+0x7|36jV zS*@vQf3~XA$6G~CCyKLGBMHxhKi`p?HEtJ7drV)^{bK7RuwrmdO;)uCr}D`s>+OQe zhsLq8VwwRz8?TT0^3_gOub)(P603TO?rIm`&t*s2I%zI+;QS^3PV>Ap?Sb+?TF{Zy0= zz1?d;^A$C_tuArgdQSb_>o{@2(obi;wp)LqF24^ydy#f;WN+>BhsJ=E>YQg{j~TV< zhxhi13pz{AJ4>uM9r!}bqArc~wyFg_1a)X7?cDeF*WLberRsc(_|>N@_utp@zK+w3 z4aq7q_P-o*YhG9x`tem*`Ukw~1wmr378faNEv-=8z4jffhN{nZ${l)Bp0hL@PgUV$ z8sFKU>k4GHkNuW3d%$M!xTMzJc89w9#T%aL+5Ke!)zk)Ge~*#Yq0Fm}yBm#+71xo> zQOHId$1l#fX9@9xxe&JKG__8V>ca4g&pVYJUhIwS+#m7_Umi|SF8@=-6Cl$denlWa z)ij0K8SuWSu~*V)6sxUURzd~K&&)C6lnv{GrsS3wZ{s7ozfC`*5|+}M^%%nt@C)R9 z-|V@z9o{E<&3BiF1h+@~da_lI9+4*X?DE7}x>Zno-{1Rp&iAvmyPej2wDltk8XR)6 zK_41zX)2J?mIz%%cAUJ(ew%CkqPbM*)%!KUbG=yM;H9jV_-;rx=vudFC`DWSa=F?5 zNXoGYbuoES5oxhz1b4*pe6qQ-wkT}gB+0dNob(*WKGtg)9=(RU=?5#Rs8!XOOK9;` zbIb3}{5fnVBldFjBvgCtv~U0LvUdN7GLEggnfJ&CBt3gCI=dr!(9o`|&)q-d&RvQ1 z49#|&vojuD9vKBV`8lt@UtUq@5i!4N|MW9XoXn!M@0#YqX#0ezBY_tpIEV^$_t zqfK_bTa+6|mocR0txEzEp^rUa(O7DEL!RVrHc;T7n zbWn8}^~C)zEgykEXK}YUE+gUIjzJsGc#z8JwL|r{bH$^`YoWg-4~%y2`PbBVDeNb8 z%Co0=erc!=xT6bePfek5QDx9W!h6L<&GcqBCi~i(VW}XKneh7aJ1@i5fFj@PlW$V2 zX@X)u#QCODUx_2*-)2cwz%$tXGkURaA2GJam&3y>N0zX&cZZ9LIWNuUx>|IjF~qrt zS(YT1QZq}q$xHE1z}4C|O;wG+#<$!!)e@ zsD)2Rtruexj{+WN?mWN9HHttOK{<9=>|AktH+SJ`{Pf`CU$dt~;rw&5En}_G@d4Kl z3jZ>sM00#kQxj`1n6G~mfJYFE%|1$Q@Otg$%zxYiJLZr-~tY&`R+ky?)+&y|254(HgBkv{^W^*{`eQE%*wWY_H~xI%!_5s&Uux+ zeK&PAb)O$cDOBHc<}~*Ytqz=IdiH44*NyM*USCdCE}tHR4+J%PXMfp!Je9nh7I)=! zu-`q0cCFfgs~UOqgk)iG~w_|t*PQtEz#5+9q454mXYfn4(-yWT2$$zyP zNFN*BXP$*RHr;C)Z7teM#{TBj19TY%JxP2SLUn0;nPheLJRQ$339)X4^pPw%ds^Ze zaak54v3)rQ$4e%&6(w7x4@%4YwcR(V98RUvx7*Ep*c0A;KGQa5_lT%4AbRFA(PhCT zowJc=!n!$7asH*$sUfvNSi#qp=8S!BR==w_YiG?XWBFmsCF{_<8R-^2sby4~q?b?L z$!`}UpP{j-R~AB z|HZ(*YFBlBTIMQAslor+1*2+UiLrF|X^xW>rhKH3fzt*G1=gLtIyF3v!ac3i#wgjP z7Mo959gD;J8Vugk+ZO`fv!s>9#avPE(NX7`^e2KVktN5p)RT4^hfICjHJ#}8UPvh} zs*S!AI62WtvMhn9%%wa`x?Bwt}oq#TzC|(S!F4v$>aamcM;X2bsEYk56Pnk{x&k6x?J4`-wG(t9N-53kl2?$!dwy1bp}d@e~!Z&^E=sF!+&d_=i;!*XmU zh7`u0;Z+Rwk+i&PvSm(I_t)$cWWQTebkd#gTfEC3smru>{B+9sS$U(-XV03=vl{LC z?~7gEh2GRN4m#+*y5#*Ll}pZ5KxxS9O6Nc$Yqh56{F{HE^G(S#dA-rumg-vD@x@e* zryTc1eWPEnIm2DFK>{qYoiL2l)rOkt)WnGa^;jL#Rbt8gi8F?8JuerI76ux=V&FxW4!ORzi)vY; z+}fl~eyGOdnNZupol|onVnQ5bXGe6cpSp0DBBL?FWK}qxk346yJjC_!RE@pYn|i-G zhV~+!DrK%>!;Ij8#CnEvql)L938N(_fz&j3b;&V5%=@XdS8#Aiy8qnvi%fdg$erQV z)1r7DfbtFj`^&g`&!B2qMZaUl2L6~Q^5u{iW=>uXgTauYegEGj2L!j^t*jTVXWJA( z@^Tne$m9KEv6G??)E?m~@D36SpYCs)EKr#0P11G*w^^d)&FL^1WVBf~YrpS86;lie zOUP7P(4BW85012FJz>8GeGLBc`ERWq9uPXDpaq~4>jpeAQ)d)i(#lNVF z=;zEBrA`P;unWrT+#`yA9v$8rmUU3{Sq;1Pu0(Az*6%8WaV1=--VPZ{nqd{G0D5t{ za;_xxQ7SF-IDvTnkh29z@D~zN# zcbjUxEQ(o5*JRunoe6%uuEeuBFZoVpOI8^c>k_MupmQ7hiR}d0L}*e~^yu%v$9C~i zbwp{jT`_5w7UR807;;~nKTj(tLjc;;|=Oa`{P@C*Z0%=INgn$!%1lH{@zHy zc1YCf4Z_CYGey}M7uA(dItZ^Z-6)97uEQ)84(s_WVmt{C5|MF~oKlbpJ*0ao_KMD8 zpK!!PR#yEcJQ4d-e@DQq<6-lsQM12_PTm!A=X~iL6_z>L8IJ=FKRrRPDGnEVF-F-* zIwd=>;p~g>dQ*GHa6skUk$EpG8=)>K>)*#Y_s$Eqz+>cEf3+0@npgeg|&(J@GEUZC>cee2ClTCGUB!qn4ec9?aI{U0pAaB@=mpdhY7e3h2k zS`I&LNZZh4S<==F7ZXtie~nIl{+;6sgoE%Nie`})b#I%-%|`~F$bPAekYdmJ zQ%P4lTEo9`emu-(sU&$aqt4v={x$dbV%?iZz(uw$XD)7Asj9N5? zN~bmN9}%@Ua>Yq@Eu4KCo6_(=exUzV@EKb|Xm?@}70-m9#UulnWw4o2%S5(UJG;-G zbkp^Q&U3mMcVW|SlE+0puHtX!=vEcc5FCtK(0}lrM4H`>2}ivxn`5ie%6;d$=cVDE z4q73_o{UOCIHgV0xeLS2iP~@|ak)bI{eZ1QDSO(qYE`_}0L(Qq|9t+PO|MxToz)DT zFp}A@GefT9F!zatNkje>;u)XIh2PH?x%+a&dVj9h)ZKoE!c?>L>tk8^0$W&Xr9jCd z14=Y$0!dlv$~B9}h1g${XY)@Ab0&Uf7PO;Oi{;~D)PF)N)5ImOrn5>V%*XezjEykYnTfF4c z7tV9MwJzvT-Fp1@E_M&A?{I{XG?l5p)S96EgBgwh$qeUV!p*MRS4?u>Rf#X`YS41d z>OEdo%rwQrPD7n17Z4u{ogd$A8e4x=y6yGxN8Cqg@;Zq}JIei6pYeW)$aqfl?S7UG z&@9?T#lm&T&s=^w+%LSSdJhM=in3-e2FFv?G?1->kLDMzvSne+zIBQbBl)8-<=cFp zT87>ml($uv6B~H1M1E@5Z>jS09Vl?1FQMWYe^FGofI8{*3hmu~KF+x`{*zQsKg1C4 zPp9PC6zRh81YcFomBywmqlJu1>=^@HtZaC@zaFc!+Er10#Y!tg;?KP|BIJnenOmts zA>b^*LKxYzd^q&(uX1m#z!n3G{*PY+8fVr_7V8UaJ9xTGfgY{F`so+b`o4lr$4DJ6 ziM?m<8jdpy)JsITo*$q^A09L-BlwgZ&erHPeEudB!PZMEc|_22hG`xf`-z%j0q=D# z5*CK=c+iDt-epFBK~@POzl<%f6>ern?$cFLf)CEpblVyQx3T-Et$NNk-)k11y&iwj z?p(sG*|8-VD=zXlxS|AfR)0u%k&C8PWp>CGpQ_aU%=|7QD=tJtl1D2iv3-fZ^TSK} z2cE~)uWx!7#xdqE1kPW_tSt%QBKr^gHA4}hKU-^HF}{6Ra!V?SK>YO2%uvCHd-OR% zvm(l(2N$9qx|2dEUthoIvZ6*bC0Iqp!6tsa&JeHaRktFW}!pVN3HJ4if`##LMr{}pdvJU*U4{ER!Sf^gP8p@JGa`P-3jrN3jfD_GWS zC3YYwR=(hJhTAAVY%4ECe}?|ynAb@N{u~}lk1W1iN^?NOdYN*|ck5q_;a|EP zOZu7=T;fKsiY*^U_&XAQ-aQ##a1;8C`G+P3o3eoEyEo%0z>Au`B-@+AsWxZRY^`!|*^TSqySR17rVxE>=FnZ@e`a_B& zr7W@f1r!e7{PQrvTPAA5sq0g+UhjWhb$Q*luM+DGC)pb63)4h6j>hvza!5Mm z5|^LWMY8;6B~TestGYslcvp{SBQo!zm!lJb*vG_~6nlrkSomY!!o5;|tZpT)Z!&4Cuf*! zhMk(e=SN~k{ESTeJ>rqmtvqG=4{e6s7oCb2*H3XgbJ;rE+K2*Gp4S$8jkt&7bB|)* znIe%I$!26T|0Qc%ITX=KV$Lb3i)wT$Pn{&X{caDI8nL9R(1yN=Y5XJsMb0+w&kuPM zG*PNZ;w1L>3hBaB@bXP5Cxkqv3YzZVD!O~qjxZcbW9e;;}TB8_V{6&u$gw{D=m8dgS=H_*E8jucbTwou_{?G?MIRwLLA)+J91gBC z0|OLMd?*!1=6$FxtVE(>+1;gj^%!|fFJ3jzNuLzv?)A6u;=9!xUIhhz9L2y^gJkb( zBgyYWVI7*db-K7Cb*LpRvnJS3n3j?s*ycKhBk+yLEz1iL{1QoVQKDNOT)pdl`Xq3H zW#=(LONjmRdmDDBmPcS3^I)JLksjYSOKg~XPk=B>tMBNrG1ade(?~n@q~DQO0hJg8 zB$hlg>OFG5J&Zx{{_9-|=sWyAs-%%c6;tl*oicL|;@`>rV4VQL*C;3h+e8 zIQZ3EP|XV>A5;b2GOMnoe`&2BlooQ?f9FfL#1VnAY;Xl;nd5yfPYPB9^6a{+@U>?B z%}?p^>+HmRA#VtMBqa=SqmT<?pU*h*b)y-6}|HP?~h?G%+W8fRPD4s+e z<6r%7Yj^sHfC%?Cu_MPV2gJOI7l|jfpK09Cvf0me)yzB_tc=c35y*#r`Q0Yo)(%HR zE8?Z1y+==io7a(raC~mYjIi_XdeG%_i8Kur?d6AUl)OcXo#%N@;p798XERq}OBU() zQi>mi_)oDhw>P5@qfpK^o4Cc=UcTV*$d&BQOxxFXNoY76v`e3}@UVE7f;LG0>cIlO z+xvuU#Y$IHIUPnD`H8hT1irpVegYzV8hh2?&d84Yq>2c4AUX_NMa6{9|5 zK>oVCE<|)>$G%`lws#pmTVxisP*lafTg~$AynvSP{g^Y>g=#ZxyOPlLaExQ)^N)Nu z1@5yST`FR45pz#k;Br58Zm^Horx@$BNjw^U@JqCjI1J1B<%&;|pF7*P9G#vVYPu_x z5Pv)+Nt61ru*cCYbZTrVcJ(bH*pf(Rl)?edK3OMCmO1Bl5R`3sy#k)8Zj&pJi?s`7 z;1YPl*y+Z{dH4KSy`V#FYxUdq@9K-m?^;Z)knVIkO{0i3SPUHVBoI=1bMVsCT@W3l zyEjeWwMT9Di-oL=a(u#%VZc#Qp)!h&`5E5`?URAiyB(HD#hX@r?Doa@>9OI@J1641 zN0KrahRSRt#WncE4RKhA2~`f(X3%p7_RSsg&A0~An9h3&b~M_bkFW$*3#@rnO*0t( z!U$7a{D>Z)GgD7SWc{7RXeFgv{v4H7h~=RA~th0Yuylr3p7Be6d#tFaz+8wk9bV&BuBxa0p=eA6nX zMdKN{4@O||XRMe0>IKixQY51|%EBjth3$D7%!Dw4Z`TPOS5gG(iM`Lf*WG-Si27c^ zv_>=Kz3QVQ0(At>$s)TUT6u;$)w=eiK@poX17&)1LdT+LeMakzb{^)9LL%pi$e2kB zB@utLofa}7t0|Y?>7wP$Kpw;WmfzFsSE=A*RBRnmPqSexXo|e@bhtF`HBJFncSr>4 z(evH%wv0*FCIxbmyy-;dvv0rU%I0UieTG6) zRJBd}494xpy@KPWFcd%bhDR1InT##9VaWDH#$BEX|*#N=OSqJp_yX0+7By^23tYif;w7&Yo)8kFhh9QBBj@0D zpY@i+io8``5Y6txkMsAppZyqS8DOKo9P%$KnlK9P&HPZQpIi2{dvVZ9|ClN)Ew}~q z{;^j`U1DKKf3%Io?p;IO^&au^Cn;Rt5b3sd5%Wo`?I$-@Dkr+Jd#|kly90sQQze4hcFq_ zpzXGp4w3IY#J=?^GYWQHJ9V+E9FcbY=rQ6p^1@}2CoBGs&-18qUSX2&+%b82uZ>Gl z)OqOk@n6GLYRTi+YU%VONwIP2YtwMW4;MLTYIF}^&$JdnG;QkHAAF7J>$7!>xrFTLCv?4vs|a~1IC*O9LVmZW zPOeB;#dG98@*LeK>$;S6bv)2PmEe05=au!hJ7M^|&sB{B^)#P>DF0%5sc#k~G!K7t zJXn*)C@w{Hgq4Yy#$VAo%yQYyGZ>Lh3^_W4(vXg{=b22Y@*iBntM`I?9~sYdlk6O@ z2Xi7>$2T4Bxg(6X+*ZS~;_qq>#g}MM4syRkiQpEU+4i@?!kyIXGAv$1L40?lwe!9> zYrgJ~F}D`N<;Gvxuq{u-@l9eic6URn_AwQbD=#75Grh=Uhu3?-$wNuWa&b?FIhB%> zlRZ_xbS&ncu1c$`^7pX?eV1G12u2PRI0=$`LrOtm{=M|_Kx;EZ(>7vJ&?5V5;tG}s zLf%B5Vn+^dq-nWk2Y+c4a$rM5;1d*#G&IauiQjtZ_FqRMO>1oUH?&vvOty_R)pJ${u3QoRCvOfSWddM|6d} z|NQYnL=(*zug{?LgN)zq2rZ4N-P6qRMFcFJoe31qZS)%^N%T~j<#8L|C(28#Bd6&l zG30g-@)B~X%gb=o$086Fi_L5c_be7&YwBjSzQ-YE{i=v~DDbx8gOE7Mk?79V_hsgA zww#=SsLq9C%C~)7q+~*`{WMstGc7flHtlg1G_}3#lt-&Ed)*?!izcqVe3aX=)CLHi zoE$^!N$?BL{Wv8t#a2<2nZ@c-Zi#?OZ(H&QkzRjBC!k8W+>kfboOrK|S&shq_>Qw$ z&R+q92SLa0S7!$Vk;bQOWp~NenL^YX(v!4erIMM$hp2N#E#}J<#qy&Me!kGJIZOY) zi-x)U<0Y-6t{Ef5-138Tt2Ua6LmD+(E@~!oHln&~YB@6s*OkMfx4ST3UDP<2YuXW3 z)r$rG+zkmm-WA5jCdusPBvCv|Ta$Xm{Zl`TH?{h0Z?I`gl$a?&YUH2KU!H0UM?WYC z%%V_kn^OE3%WV{V_Kb@VP52vwUYZ4?AWr%11ogK3-JlJpcLBKP@BM|7B6PCSm>55N z+9V=fjk@=TZaAE1t;e<*d1WVZiHW-k2{TtI)LVtvFiZ2012Cr-W7yq>QkE|%9Z2*o zwo(L%2dXM3%XY}ZSN8ar{2H>BYp(p9wruWX_-E^s;Bn{&EjJI=UPZz^ z(-_xAY|nk1&z2$x3#}M@bIVV^qf5-Cx5l`8Ukc^Yl%@1urDu9S<5^jk-i|v({;H9Q zez>7LNnPEj`hPRd++I$s%-@?X!|33_CA#z2+Jb~P-|98iN2FUPJlUo0bs8Ed2J z>~xu|*D_^9`|9$ImsCz%O>xU4Oa3Q0Z5B?KKoehtGo_T`m>;wEa~gWDT_ZLwCFq&c z$~OpkMDETDg&L14$~;DdgYHIqprY8jQ$4xWoxvJPo)Kz{`KWJmpIM<*ho1Av=K06r zu=4i;z2f&Ksr_8)S8lr)Y35MxitGQmj8s4`xTjIv*qh+siX5o&i~k5co^5T@QZz*0 z{_B3KNEuTtE@%EjK-7os-)Ao*A5ErRF*RP!7AUtKtbcP+u95w@Ycwn`BxX`C(s+)& zbdtT<(~H+IZ=I7=`knrS-wOrYdaTT)qTz=Pv^jisGFaNxZ9iNYmyFYH6TePo3zcNu zi>gB&&%_cIzxU3**(_nHs9(s2X#bN-=^!6ck$M5^Pp`Gb%yB_L^Ham|Hbp31${*=r zu~fb+vAo4?cqF-DG2CmsnN~C663c%*G{bV=XuPALZYWDh*4>~-sAR}wHP~caBa`>< zayf(DUcc2zN*wjFzm(DpE^7Qd`{RMSNAx)rtvCrCn)iS84}Eg`)`=qFbZo}dk{Nqy z9$M&0gj}rB_BLts8KWz`%n{wsA%c01SnR(BA9vH(C2Wne8^+k|nS%7`t2ZnJu+b+3 zAD3c@)89Tpule})>4ptye(qMJ=z>Q4c;Q;PjZAHUVVi~c(QSkcg?A{Cdjl?x2Shye z8kGrC5`Rg4m+OSaw(cV2ao=HMCPAfmNzn6dnzahw$o&i_lGrN=f;BHt0fFdZmG zvQ08fV}y9oV6t$5IUz+2uO2uWMEz!_qExgr^vw3R}8W%H?bF3YVy10prw)-4=VK*p)Kau zD*R_x(>yn(?jk;*DuGM_V5*@Oej*a@V;`i*@hGz}f(c_iz$R(6T_j#>xfOp;KPQ8-iNx&$ z_s8#%?k=sA89pG^U(F&N(hK2meC-G)HX)z)bY`z+g7mX8BUi6->i(2~--%wRuNeZB zVUt=LEl7P$4x#P+1=SM{L0rD{;Wan*9&wbr^AUbH(9p($$;NYP3L|&KAq*_Xdc{5? z^TmeaQ$Q0*k1F3(&0I!UU>eFUtfy%Qw>|WfP&v`9qWB~E52xtJ;&rxT@KJr~8Cqsf zWl?Uhc0>hrTyH#l_6sdR`*o9+m7oO0%?UxQwIW@RbBu@c zaK!;lW2*^oQW?^EnK@1qT*v!&31a=atNUm9`mqhkMBX|pQEB6QpYWS0S2w_yKboLjgXhq2tQ5Tjj#<~hQzAYB%;}=Po|0Z^$ zq3oz)a!?bgr90L`6`D+b7_SYoOR69LZakkJIMtptb*2@sGL}ayOSTP4QNxrkB@#No zZE7pWlpgYkIKH^4x~~`bofQ4Nf9lJC+*W;{jd55apFN>?;R>BN;bWXCH50(NI0pCEJo`(mR)-)!0KPsSTTIaZaZ_ zh#?*d!ic;}zlA#-+KPD?#B~AAqVFuW93@uW$;OQMbL`s=Sh1yn;qoX-Ht9F~i8rU# zez%WOPql=fRkykOow|04&B^wK=AYoJDz5f}Fu_^4L_0EJ|E6bts;tPlB|1Y(P2y#|9OXfJfhmg)54ElaNW2=^sOA>-YTrZ zdt)c2UOL<3r!Hd9>)kdq_UoUHmySkst(Ck<>JEtk92gzmuivlbRfJpfGB$WHLmbv6 z4zc=Ca#_KSDxhtEXZ>wm@$J3fh-9+6mpI!LQ(x~)&nBi zc_l%NYzIU94#Y*h(deY-vhNLNVzYKd@A&WET9P?5=YMyNr@2En##)`u*mWF5*EKbA zpcpr9h{$_WeELaO;vz9*I5G58^}mxoFY z=f?zG5g5eQo(hohCqa>M*<>#@=I#9u&3$}-#V@6?g7&Mr9151--$8cA@yW+83|th~ zFW@k;rrk6qt~1rEWK<)ocTr0J=L^)m(O?Qyc$OiEzKG(R}^XO4h9k)Up3~Wn*`~W9h4r(dFo#r zjaT1UDzm0<$CgcD?tw9bnJ{d&$5+}}-8(6*$D!bMs)-Y-tCpa|9XbdNbglY7y#PZ8 zQdnhX&|6H}YLz>WpNH9vXRn+&GNA}cudz$|#9FutvPf(1(DC=##0c!0vwCJlek@AL z4ejMQ9Z@bdgNq;f_fVZj4Cter%8^uBNciaXfOx&+o6EzARn_JMxW%-ji{gcs`niYd zoDcXzm>fS7;JjWD<-GXXH>CN&SDe>jGLn$Vi6!(tR{B$5b>f|GJ=gO#2O2n3m#jpnoV1M3>T3% z^j*?S{5Koq>-8@i39_2L|0oGROEj5|Co$URr#wO|+Afw`b0Sn?dX1~tOA&sWA=VrI zyrc2w;!||l2%^g@&810c6}-6uj`3?@QCLr`!QSQh{v9H>AZeUYZ1*6;XOj;RaG6Fw z0y4b(1o!+pydda!Vy}+ywI=CFj!E}%`$febmdjPtc_L){lODOgy?2O4#DSqsrgRW# zs+0KP%B=};-RqZj)wNY8>^+BIDAiwmZIwrl8%j8S7&9Y0d;L9(h?aU{Ixqi!>PRP~di$e2^O;K%q68KT*k1%hG+w*L9n zO1P#qi}AuTAAdRK?)LhjtOrXYx~9y8%;}BBwY~7pc>W?y0ov(%VKJ{#<#}xi z*{F&j)-lU8c($Ro#rtR4n>0ltc4AioGs>Q{)9;e%2isA^vcRxm9GSa!*`a6hCv2R7 z$LXoqhw-RxJ1vN!Sa`~CUG|2jpfhLU9chAt#Zq=^YkOnH~c$NkA$4*@5Z__ z8r)U}8dun6Esos0nRb-=`(NR>PvN!)pViv)Ne`cRVXQBuo@NmyK{RlnK?n;rkdU+3 zavy>b+O5C0^%EHiOS6Zq{~cVooaj`I^Tc9>8hg|KzeLl;?H!?kNID@wAu<`Wj$-t# znD#I#7+(ymG;@Ur1KMrA8brgfLeHW4xG@c+A0PBXxC^$BFhbSiN4E{w_%^G^cNB33 zg|vQ|i`u)W(ISXV8(z}V59N%IyqMv-#Zocvgr{0q9|C3mm1nR2Ye*|s+X{O$=%op5Uvu22!bJ{v z{!t5`6&09-?x)8NoUJk^$tSf2deQ9wnZ8-M?{{A$717->5bUmhp^g7O^?wAQK84pa1B&ZVrc$v$1hG*5)1F>&$sRc~4S#*P*eLjzK_Z~EViUoc{YoY*rb zR0Um-)!PP($k5`07&b0L-!PuINw${5qR?sH<#bAXQvT z9h>Fd-iPB2&3rTN*wwz?*~jDoFKlyp<%nE5bG>S7XgvIdxM(MwPtMW<_No^+C?E}w zKdvevmt)8rUpL-CQ*?T-FXQ?Xz9FZObWj~{N)zq8<{Fiw6xtGd2klJ#{a8H&4laSR zT*e#42quq*q6;}dMKnJ}`KJQCWxeXyl#e+$z?kHT?bFUH=*%?Z-SE1S#I5LO$b852 z`YN9G+*=^}SFb1YgsZ!~mzrj|2Ne5Gllt4{iF30UPrROtaN;-4mJ2W$l|K z2hWKk@AkgiyNTwRLTmWcQVBOFqAoN1Tv<;3?rjXpMg^(9bwFT$xW5UiyL$q2Am4S=!W>ZXuRuqPn^+MhL_g?FJm>wE z?uTTenkU5Je$iFhhz9WboceSEwHl7lII*7I{qU^6hnb!$kfM`}1;6G) z%1A~NzV&dqELFBByK2%{aOxxR!f^qmO&CIfKhK$hYAKLx-k?S(hnaAwu8bMcFh#P@ zBv2tc%5O`Kg>a~wa1r;FOSmESe7MPVj-<^n!7tT5H_ZjJX%ri$KxdDonkT=oswrrFTw^jsC{-<=f=7GahEd@E_T(GhHW}&$!3rM(g`bpqbxT9}u8rqLl9{uryI;SS~L>3tKzs6cfg42c@X4XMTF8L($ zJ^Uh;U7_SsA%}J|h-RopXv~S`7&%UeXq$Cash@ysZ?;X$scS50zx0t2Vc{xuTDJCQn_zj9KDzoJ_ z#A1Eih^+@>8MF2f^&Fo+>wC9_%lxXJsS#v13&9x12sPlV0$HEaqJ)l|1}18Nh&G!O z`~`pCGRqRGnC2C`Df-xXpl0*=sViM1EJ7loo+Exh31LrcQwW7av4*qMml_lyO-0Bq zA+nI6Z1L~kmT)R3cwet|y@pe#=G#Iz+Xz5d6_`F^v?RxVd18*_x*LM3j3pn7^DK#> zE&2ND-0p%YA)+_2h@wI2yJF_Ik{x)C%(l~AIgwuFL7MX|-1&{XMHptaA38JNWvWWO z&?THKrCKk{+NJQd@b9FnTM?oYi|fZqkl(6DmmZ#FpqpMSz9Fm6y&7m8`G)y3V!&0u z+n^icFZVN{773RiwF4!)O>XQlb17u^v_=s_at3qv-2Y6hS=d+HpL&iZWaQnqnb@B( zM?Z42MyHmlHB77|cN0>#R_s7Kuka_2&C-vtu;`&oWIplZa!Gh-LgijE zw@Mt>XLvWZldz+&==Es72}f`5Y8q0I)K6-BT!7QNYuOCagAKlb@^$oy-2KY6btZOku3*iBu` zBT>^26yJ3dE@-BEzVzI`G$eFNf(c zPNH4rPG}HhimJ*UdKl%hZGKflIk6L6^6yg3l{U!KFSroDZfW}9$QEOhjIgtVZdoB^ z|4F8z?~HxM%bhTQA!8Hx)W_YCG92i27g3k@gAM(}RaF3y@6TCzxhWOlJ8wG-WeQNiO+RuXC)YbP{BwdBtwx`5Og9^}Y>V=nA|a!<@%9+LZ`6{gR(;>zkWdnO-lujl znZNoWdn)lm#`8=KNe5zfxL4>OYVpA5TE1pcUq=~~jOcT0L)WuC%DaV!00OaIj0nQkB%A(v!a~kDpfHaA}{!xMfl`WViUuJZ^_c* z<(?i^M`p7xSD0!nUqzVu4id*Q1cJl`myih$!#4K(+U|X*s$yJoEHmsa*v#lMQ59Ue)&|kd6qDh zlbqp6g)F$U&u*&t7OK$Z53h-WZ=A6rkGbm(3kBC_PRRsDsC3Q6oie}g^5c_-)GI3b zATnqK{-Jk)K+Sh<&(0%Y(+RrevQdS<{vjI@MlQoa4VaB0EJ^|=b>lrZKFH{s-8f@Le}=(4(@lw932MI`K(>p#TIBlFu;n0nX3j`~|yB9$oeYQBg z9^LyFNfu?{Eh{=cbFS!GIU(oV&@^y|q{SHa<$rnsNHS-OX!-*BPVH%vFk;N_#H%)j z8+vjWkXLs2O~nFwZt45Ic*ig$9E#ptq+<|JWi_PJR5oIdCazqd4g-Eb3+U7eFW1wZsNx;2QB6}o~`f2QO!YXLo)%pIZuMgE>T z$e$OQ=;={cGm?DCAYMgDT?7G5N&zKU6}yK&DPgj>jXF8FF$Irp6+CRdMD4l5hz;JN z?RxiBiR6fL#ubJW8JD3R%Z-o2)A>ZH9(08xPbi;yNd=&5FqSZ9HN=gMC;w%aV1Sb$ayUMfcecA4H zjpDh0lJ_bq-y{=d8%R}ed{-_a#{LwxuIMuK|(^j|MJe``6p&`B0i;Fb7@0NQ8C>xlTDSYg9B=0t}^$s>uVxq)l`^1=rwYW zk1Vf?IsNci)~d;aWx7H%xV$kAMIJT7zEPf=?FiI*1Zm!_SxmSyk}j-3EHE#>z7ljIk8zo(;M>QGW0;u^{eSz^-$O-!uIYhJ=d#QBw+MUZc=? zg(+kk$K!*Yk9T_L;x}^N65kRsLRqS-S%|h|vh7v#!7k$nmB$AYL}A*2ce-vNKa@UR zw;@rSC;ySST@9?BEA01*x=@*jXic*^!fa#+TYnjT`a3w+afUak64SHLHVawl&H39I z@2h4L(WdtJU0%wM;XES{xZEnM_)z2_ZeFUq$ijAhe2B8pS{(;+lS=rTUr#khIEDHY zAHVj`i>C_rbPlUJe{-Y}S+%HA{aq6!mJWx5bYFIEBT_$R#><2DryuHq^h&sNPnMnz zFTzk@KcdNMU3{T9L~X7vUt^^ry$CbUcy}hcI|$w@$x1O7wU$Z;W@e?SRQwjA=r4^AkQ(DSs=!k1nr@D|U> ztoXN7@O zg}C=0$7gcZ!UJ$jNynInZ+1Uh2Qz%U>??+md;Em{DBL|hm08eKCkHQ+qTZD66!PUn zKuZHt!A?)KmQdyg3!TA7xFMd<>v^(GTBfd+*#5;L;#_&i;9b1h8e#~Rht?Z$IA;Fu z=KWSueXY@4E-$RxeEwxr#z|5S#n?8zjxrsG2wa-?+QX|xPa zg|F>HKo2FxrQoB4r>suX4vZA-rBGMrBu^>W7Tcs4@smRzJe{IMH2lGj0PwCAVN@t@M zV#P9`%K16FzMetellA!FWIQ4uKy>gpd`S3w`#+75v(d>>2G;F7ahAUj{Yr6G!X~*z zEfW_(qOgDeg@QrOVYiILsnW!Pi^&WVE9_)x%zL-m!mA?Jc#J8M)VlJ8V+{$T#Wj-e zMbL41@jTm*mo*euRb4R$CwTSEJr9Rh<~qWAwyO*TcIEeCu330buYvt`gzr+p)kmOwD0_ZB**C#;@1Pw)!T9o*P05I3#eC1zi6dMmX~|(lOWkq{Z#B zNQJlZ_Qg&i7JX;WAnCQ%$NdY$Z`M4+L?u0#ZbwRXMIE{hi*F6}#v*6W*N+z? zGTYf)rWezG(KH8yQLVSlZq!B)S>c02c3Nz5f5zz^=q{?bn4F^*c?i9V8c)6D&oqtZ zGg_+y_GCyiAf`oFe0O2?_^|(U1SpoTE`8{xd$CU}BKhavI!o%E7qT2$+uhb(Z+O=y zo}}Q&w!TtrP8Px4@vn@X=L?Tp?~R)vPO<3Fj*_CBzdHV zDKx3&YOH%1jQ63*56QvCR*5 z-hE}p!U6`f_=SeJVrEQfu)YlGp?=>=IPCdvD$qktT1v23nf7dWnmTru4XW5FnIp7g zu$Y*Xk7!`oNth!}Ohs5s5mC*2zekA95=dQcuVf9-bs;;9Mc68S7x~dL6F4QNBK$QP zQOFot&3rz5A&Qy z%{|G*A(TffE!4i^%*t`B!_oF)emI5^2E<&U`E=be;heTu%qNMw+)dZgt~^(7x1!T4 zHtrL5*####;wiI7RR89;u@quRDkv_i8yX5`xvu(PEwaL#3-xH z`P4o>iX#7Ww`C^;0fkkWmRi{D%fN;odcY-G_C&0fx>uhc_oVUttAbX>xDbWG98RIC zi(%81LAU%x=2S zc1pswZYSn4I~wDm*a}(Xi{;Ukk6#Pj*+F39C84+f9Nq_d<|9vPnISM3Mos!duOM7C z9(5@1qbtjbnXhZ@?J>XFKHn6?t@xT!@AB;FoYHN++f+4;L_0>w&9hil>dg2?gT78J zl&0`*8aKL?*k3|*)+vXW8W&S&@p^-aEC$SjTbe_c;zg6mrfx0`croLh(;IjSKU~I4 zJ)Cwv#CH!ljgUuaV?y*<(~HB}hhoc5*miU*F#AMCmJZwG(FY;8I6vOMVPS|p*=5L; zVpBbq_t6cyG|69#Z|KG0fID`l^?eG(E ze{8ln(6VLLL>k_6)ORVG?ET?9t&Vg-@e(cMTi;O=SNqJ+ZJ8NkUJwiZRWYlx`-6GQUCAm3g-)2k|3s z>$)Cm^get>XrJH87qjO>vab9?q{^M!U!zWSb8EjOqJ0V19^$5R8}vxvW1mSkB}^763>f8?Zc@~C|LCQ16v zu5Eg@L;4#-S%X+sEj)aG{GnCU#cRjeFAZn3dkbBq$#Uqw%r+G?LMtOqWrUC35tU1` zr(sO0+ZHGkM$+b+RXRMtu0lhEkJVE@!>-v1$bWi6;SgFuH661YB`1HIQV<@ae&yQO zeonvd`9Ssb#S1Nygwd4S2F1b~rOk@ZeqwycnWvqVSEJ5r^Sw-(-o4q!=hhdZ(w}xW zQhr)j+MaT6>(#uGmsqo#1V#tJB65aE`|(Y^{Kk#)6>SYm7doo`ti-yj*1cUHRxfcjs+0K~9QIVH9!ov!;smaLtFB1O z!Ja#63GVmE*~HvMTVn4#o!1=FI<2PG6_Z{=`+f+v9Pl<;x*3?aHU{SgrBoI^f&Lw- z4bNCC+=Zp)*bb>TI{kweda2iIrgNV6><0ho1*lE5J3L&s{W*H`;UX{>-9ysuoh+ji z^^9D^dNIubAA6ii_Ja|zGT->etK^#_|A(5#|27_76Z$V(gv)P(2~H%*PD&o_(L*!a za_q`#%@EoTBKlj^Yxc(Hvt0w;8OYvt2^22@WjlbbwmdDz{@u3|&V0JE*maTbJ1bw& z6dawVhE!?o{km!+Tz=A0YAr?vWI>MN@~+NWS+dBDj=yIA<1S>3l*i}Z^Ydkw2B~M1 zp`Dhm-@uF`UH~1VCLihhnxpH~izcVl>s3|S_B*Su?7OC! z$aCt!)q>`RxvvUsGGz!6PcV>^ZF{eC>bSJK&;J*z<;E=|Z?srrcJz{8Pi-S#)LwL8^ZzAe?G_?5*22Qr5;;{?;hGYYf( zW~uf(GoE_V^sIoEcjH;ZAIt9AU-ULFPS_ni2H#fa+zNJ?CQH}^dsu&oBmMh!kMZgB zf6$!N10vn`TOF@@x*jr&+k#ai{1H3{juJTF`X`A3Dwe*En)r+&EdD%rplB#r*(WWL}d)f0mkOtTc|9R7=8SP`NXF z%zYlbIeC7}9qL+bANcoSCmQ<4#s79yoX@|)FZZF#4(0jW%I^qQg!YMG%k%2FT2|yj zbe%{fuES+-U}XvGc-6!8Y}D>{eD4|a@mkgGd4y~&ZPw4>=-KG-VyAQ4e~vo$Y3G76 zw!Ovu%~6!0DkCfS2K9xR4~YAJW1F3f!?4Vrf6m{&+r+|C{o?g3eBOoM+jZNOzjiXw z?$33lm`2}~P5cy5tEtmPT9|M2tXVkm{N;8q7xv448H#kd-|a&7kSxLJxz%0K?5(0^ z=-Shr@$+BG=bZ`vr#S!To35A7+wA`R&x!2WmuPQ< z&-c6&zm3;)M6M)v#I8G_#!u&IqK|v348zUBr^f!zlv~di{!dHYS!?`zHww>JH_x9= z2fvP%%4p5>5I2rW-KW+dx&hc7T7XZbr-_su$w|!#OWc~KZ#3b(xhh@NP1qWa-EvW^54bD%8 zx+8Lw#0UkW^CXHjMjeY+)5d~WlIjD4agux5a5g+>lcr@wCw0JJs*Ai&kvtzx{jtzqy&2`o_kp7;bKEz*^j9F2A=10~y@jLgl2I13)q={v=HJ zL6Zs}eDG_Bp+zo&xA*JUFXSJJOh@l|HGN=L0g~)fas-X zB!?;}Di-GhLPTGGzr2T*;5Ptz7#J7;D+Ms4xasM`xcdA1kB^UY%{fyzyfvP|LIZHX zK>Wu|%IDMTYs*?!VoyLZ1T4cWun|%&Qfx^uUHUl~0gom06KO!wunH^`psv8LM+x?` zS=h@YI^`fuj%K%&Eh8c#qExYEwzkb@SH7pau_Z4IV zk&O|rsYAw~R}zZwrs{nz$dZv8h1S4f{`^OTS8ay%KY%?zbWs8Du}20>Qis2%oxOMl z{|=nJMo4)=55{C8ggLqg+FZ~CnWAFGBwD0pA(hd71OM-S$t zrdlci_iZby9e{3IUlR4X#f~$SHq{;6-0{CX1sD@7D`Lvu02?L~);&4-0Ynq;OT<5arSZvV`((M)m0Xh61-UIj- zIXU^5QB?`?Hmh-CYLwSRS}3A^fIvk>g%?~`KjQFvB;8JevCcS&t{B+?Xf3&GD`dy2_G0;@cP-Y@nwm;E=rCW&tZW(WWpszP z3)mD$CVk8E7v##8U;SkmBZQ-Xi$)6!i_jJIq{NK9JYFH|od*)hQ>=g=IseHKc8<|9 zRT2)h&;T&xD$2{nn?S&nYVQW1A2t8i7648(GY|u?YNgW2L9+z!2#BQcip`gx(*Isb zo6P?&1uu!iLR<2Hq5qL1Yz}&qOXFe552voj&^dh_oj-ef5l*2(?qFNb9&B%Kvp}_L z6My{$SX_{hn(P;XCIX@=3pljG4?67^xO{p5hp)bc4>1n`81g4VOBDt^|DJDy3{Oi# z<1<@1P5}pX0Phx%xSj#R3cxi0+{$%(gy7B2(2$&W(uDw^0RT>D`J>)LF34-ZnSQHZ z1Dt2$e1pl#WV+UL{NlNA7z4&xs1jus7f#U(dKC3+|U zL;@_#SD`rDcc<%;-(YtC@2Vqq2iw=p?P_s>(6V~^$)ffkF|+S+PrYPz_% zfPM2@=t?nsJoAng!n(Ad(Po{`Z8{OktilRc5r{IGiM?d<@N zJ{Tlr*uW=`zYmzAO+X_J6%9WFzkk3>hsJTlMYOT80XzhgK=W%4a34Tg?>g@(B_#znphQ1CWUtff zipf4@>t1X0E!!&zT-TB!z~*6|2e87^X~0V>!%*KdfuDo^>%ngD444`47lb$n$w5fn zFG0Ej@Prl(Q&ZEgU%!rA^a%`7f;dPZ0;zN$+yDd^D;t0`#`AGWF-UyA)$+Ik7%xBt zU}k0IiRuZbS9Jhk*O3?EkczuFImyY+9+wD6A&0?w(cYK4bwE{!KHb9I)VH>h3W_{#Ty2yM8MU^>q>`>UI#K@FotaB@Q}rJv<6U70Mm0zu$i8YuHX+2 z4i2FDCOkX=4%DoD`VmdQZ-DRey*)LRmJU%chmqVF&qC_1%NW3}g}lrB@+H~^WNkh~ zb6SHa695a@e7wK$XM?bw5Of#r?(X7H%ana|-|nYY60FC;#tujU1Smgq^P=Wvz8L*p zWfU=LVvtY=DyHQTjkLAh01mC>9Hd@SI4A-FLVdnbhc|q>!Q!NuoE(zxF7G*(f3C3i zK-pjClU3nS$ZP%HIRLyCr_|vBaD7Hla>cB2i@R)cu#eUNO40M*3I8S#6LomBf=Zt6*Pe~OSz=J+ zQ4yL&Zvb*@B8x;~0gG{`L7(bsbG!vHLcBTuP)p1EwYu{Z@eHsX#89Kjl)eD&D59ED zrM+hS<0QVAvTh&h^!B(wUQXVr@hA1X-(WG{D67F(w>$%k3J6N&F__MQHDzxU=)IRH z$jL$ahDo5+rtk{>KJ@eF>>fW*%>O)sG>dP%!rZV9m(Nuwb8iE1>I*^_A0E7Z~ZtXVHbfCVHLxNeK0b)iAatG=H z=f1VI+zH%()LJ)J*M_JlMGp`DpB(6k%EG5$l^op~YBA(+G_x4AV9RWJHBKMql9C#e z7a;GNeS@*KQ!-|b?`QzK7mHFPIZVEu%6&AIRd*8zKmj443%8BF2nL~0qN_fsxnI8w z+db3^OmKTT-3|yT;;o4W7N(~^f(ijhyqfCj{@{v^4AOYCjpYvS=GIoPnKE_U+@Kx~ zqM)5We<}tcumW+I=MoR{NpvKXAxz!3(=h)apgOo>4&lE~NwO=k3C$(r9iMy!}Ky3kbr`{?2mKwCQ$(&;n) zw?>eJ{(;dTd)|XI9Q`;aMXLH22aM(5L%>;^uIF1Vtsz7Pom2k#sz0;a{ykD$uu@t{0L)*Rnpuur@MxelXFH)cpqI!USuFLN?nb< z8L*x>+(*UJs$#8!9D~Ec6iXjOfrbXG5cVNxHGoPqFL9Rz-r$>Mj2iJupck?8?%vLh6}lK43r+MNBiD6V zJOD3jo0-vCXpT)N?Ez8#j37rL^;G57G6xXiz#~I1o`odm@K6c|ZTh@5d9c*X9%ZBR ztEyTrZL@zJXL#csx&5%zFzSo2PoRUsFU@iZwm2)Ooh&RYZclIF_zgjEO-%0X$j5s# z3~3-=`P`)(m64IbpOno#ngiV7K!EYQuq+H?SqiE`7nAG-Sjq6LzGoml7gSk?U;Ul1 zN*}rcET|X~Zp7xlAhKIh5o2J)Si(WeA~Nb9(}`vPM*d%mJt%$;be&cbOsLGsp#CDPofIs{w|frsn5uP>)4`q9fH$N2`Hb zjD-sSD~Nz{63)@9K&(^Uf{w;m!C3rTm5&y8cGq>wpxa|Mu+Es|goS5qJ)B5;2@0x_ zxw*6oL<~|bLqp|3prGNSjt&nw4uPZq_HNajfs%?G#{t*p=dJ$FBCy}wPmC6Y-H*TM zp~iwf4-n|rCu_Oi0sX8Wxi-c0*a<$KSw!Ro8`vg>mn!EI9Q%=xsAdpSFA<;H+OJ<# zbl8=AQX7Yx+_lD7AgtUq_NtgDDEaw7KtlUKy+xDBh_eNjrsSt!)TltrkC+vi6M$YPVh?TxJ{k5cvc^ zQzMC9RmAHO*SE#j8jaL8-_*s^t&65czq+0KrrTTBshnhc~ z-Hc{}2%8O{3kkI~G`ucxl1gr4frA1DyB32`jfI5&%`wGAX9|}3A~`fH0+-ExwO#Ly zML-FPb~#BLAX5!`XMj>mUwD0e-82)M3Jblaj3Y}qJ;M@x;IR5hE|2M`v>QG4BM%fq z;m?1@$(Xto%08koa=2^_WoBk>Y`o_`-rm+$SI_6&TJ%R3BU62!xAU6DyO|^#Ko_&E z3;<+P$Wcs22GNdw|4>dSj|u@UEFiqNBLcrrCPso%-3T;kfiz0@IGANcRfLc(gjxe) zXcFYL&q9}fS9^X?1SSTCVS}|gC>sF|6-3v(+H_;k?P<`(Tr#Ovq-Akce|`A9C|wef zWADA?x`@7f+iomxH7Jn(c_?uI)3t4;)!o=EsYeAVib?SzN7x&H9^Y^WY6~fT`YK1N zyq%gW;+sj^+0Mv_^yfFqDKk-xVH+Tx78z{oz(UU@m_u5Ogg=RR<~`g%BPdo)``abR*Fk@q3jFE`-57pz_XBzkV6iHZqF6iPEJ1j=z1) zOWF`Rz!wRE+C%fer8;g58ag^U21b9w`-L%yFx-+u(EqXBJvjjl!V|z(ZNh~~4u*UE z0dy3=dy1nJeVVT`1KYyw!-v05_a`8KD)E8xk`FWoLFBmlG0YomOT!}!yYeJ9Xc0XICK#ZbjLkt^{tMGuN5K~9vfg6UgcjYx6_jN{@QEBLU<-%S!C158KMrE^dRFx&U?h=$PQMx-sKvYse z)CGtLQs3m;%e`NI>^;UBg7VzgHRC*wId6C)Vj{~KblEKbxWe7G9x!gOj9~8W-?WrA zGct-bj#CNl?u6?9liE^;2ir$oJv~wt|E`ze;i!40Ex#2$MyHu1EO1BJFXt})_P4c3 zx*KH|!5f01?j!o6%XxR6)m{QId9}K_`sa_YnVA^_6A7FHTBp?CUMz@&xb)Oi#)4ds zzu=XJ?V-e6l`2@178KvwUDuJPs7xDP-_uo)?ML|VEtad?teuD0lEG{C5j2$s75iAB z3JrmNG7^%7w{I=(gDB*D93Lg%eyfU^d^?s|MElfZLRHYleh*%J3E%hm7FMDrB5ZeS z%X1mE`SR62Z%TP62bFj7edV(VsZ&k6yc>#(r3FrF1PGq_jFC$S%AlfHEWHW18_Ex* z{XHtC)^jmX^0$zh;-A2q)Kd>qYF4Ouh^f!Ne(DZ_GF(3ZS``0uYdnK*5R9XB&HJGf z=$La_TEH1XG&eK$DuZg8;U%RK)ZXs(-Ke4f-oki%h(qo^I5gDgt%+5UCCH|lMPE6W zO(T<)l7dv3#c$Z-Iu7M1&%9I{NpOalhr7GM6*DWVzOL>n=VI~CzgobXfcNwB^H~+L zjp*Z6=HzWp_Vf)R`#5RReg^K2ethkhL~}Q?LgD`X>U&kxGoGrUyXR5qYHDhra;DOM*?m$!NW^V5^7zx64-lrtydMrW$Inyze-cZ5 zy=kixMdELG@9Zg*osZA;^gnuUf_FhUoE~?w?k!ilcJRY>bgED?Nh3Wchx1Z+Fz_5x z|BJ}n2E7)WSvdpPZ0r3|O^xs>@SdO^=lx&5Xe4|EKc)@XyM6%`A@S8cFaw}ANfhp# zo}L~be;(GMw^;NGA-JWiq4C(sX|?51W<7%UX42ll=I{_gu;4q?9e-K6H0zK^0+Uo)97@6H7**jRN@A(!X}#s; z<@M9tp&Bf%YN#kW+;+^-=I!n6in?)>AXO*vEoAdO`Kmj}J*pWWfscceRyVxrw==`Q zYG^z3Cg4mN^9j7>l-x&bD178W_*Zy`C#Z1nV&_vfVwP-Z9ZINu9Vmk3MY0{UnX>L# zZ;DG;AkCQ0@yEpWa@aP2IMRt5r-eE$i^(topPZJI=%d6#_L1uc{aH@*tqzS$^q+An zchVn~Ti0>$6duyKotAYxji0ZtfK9)CjGV^-Jajl^4S^Z-r#|XmFLzi;mCT3 zkjx>L6Cc1}B&pbX*?q~Wp_cW7ume(%jucTPpZ`k!y#QZ7A6s)=@*8Q^0ey{p;^Nd| zcSS{M#Jx2OdPm+|!dXr2rD)_L{s1W?oVry;g|QM-uE7zzI_*o8NFP0O%ExCX+z zii?YD6TzxrBQ4=xka}6v{l658|2M_H$E&S`Ch!V=4S19N!&hE)_4NeP7?r;vWjTHk zxZy%gbxs#(Sr-I)c9%#OYkKe!CfT0%_=#=1*U6H$)Vcq8KO5`X+n>*^IntYR+kL=& zYK|+tWsHfIw%YDy#TFmCK?#P=spQqEhKx+;_WnU!g?fH$9Lr0q%`j=Md;gOyX+6=N~o>OTjF=Jdu$U7OCnVSQSkCkO*r9;)&35UKy6t~awmw&f#Y#m{% zR(LVIV*q`EtSpLHd*FqyRkGp_8Ki$8CV-MKHm1DLT2Udtk>2?F0OU^i&$6-{V2OTz zzzT->v;Z&a!&tapFCgB)T5qL4x>hHuvaC#s;Y#5J1lXZglEt|x#Uxfl=Rg3YgEQ1| zk zV0`!v+7P_VTH6;-$-~3Luy7w~<91bV7{)ldg~88Zx}ZF%?VR3j^ zVJC(hd`1g%!Z3JM_dLPxx#Z}C*AByC;WjDpXchQSXP2UQqKwaI+tT9x=PSW0;eY-v zb+M?&=e5*^wW0T*TJ}EbYthgB2bFvEU>Yn~m2B{_yL6t&BvKfpYz|%vP9rHy+y~`E zSiRIDu4`b&d;eN3NJ()!KRKwatt~5K4jg>1*o~;p2+a8@+mz`&C1Hk&K89L3=K)IfcV$6G?J%JpEix4 zO}&Nt<`xDovF6z=bH1a9oA8**egIC&3=_W^`K<v~^CVsWYa zAJqpAkD$dJA~~l#X7vS4;m2~50wHxlj+@Thoyv*|0a+oxbNUC+#d4#eprWBw55IsC zUd;bwpPzUro}%>R7M2}<2iWYlcz7b}mRvs%_w-1WI%(n)wO9?~+1ho+w%BDj9j}V3 zXrljM;sn)J?;?{ek=*~!?%rP90X`C=haOe#xE!+aK)}DU6UcZ*JJZTz*ckpcx%f# zws?X4Tz z2DzPhmi(suSc%VC&JC|IpzbN3%J$5y#|#wPTO-+-N<7PqHp>al?&l$n-7V5dT=TyxJn z-nJ&rmd^#d>HHVm;&06y$MgdIk2x0UsoGsb_S5q6^RH|}Q`{Qyjfigc37qTQZr!-6 z)&2ZA7wrQubHlNS#Vm@UzSxY_E`)WZD1V_A!LsU4+W>M}pu1c(l(5?A9 zAMYc%NE;LKVE)+IsZx9XA7MfsL;k-SSY#J5XB0_GBZmG|=Pa*h(B0(H@_W0Oy#gw~ zNnZ-_@m&Z1goFg|E*|Hq>zW5?f!}TN(y=^dv7WY$c-1z5ptaS-ua2XXAz4rP{nuzM zW69s9q`_bj9BD{iEQo!&JDvLN(WB>>!9VoolE4fBC7rVq~UQFhON+GY4(=g_|~Qb_QPn5#?BpIx?b z&nPe-$POJnjDO3(_m|R0HTFC`sr~OaQGR0mduD%(%(%S$Qi99DI_wc6>6A-evTe?y z`J(9-b~t5Uiq}D?aQw6RpMWbEah5uV%D);iyJ=pBY=+{FC@SHhDt^MEiAK17&gR^JmbJa&YI_*E58BCvIu= zkgGKE8?_l>A8GoYbzJC*spF0WHJ#CwyYts)pw)^e>Gpq=bIy)umg1m`KOz}y&Lf!o z+8{Vvs1k$~GuF&bXN2ur!&<8`UQ{-_#IbYI=^g8#GV zN2eBcduy<|nFKmA4-?ZSc|?IB)GM&;}H}=Jn8Rnl@U;xL!g0+Va)WnP2Vj zAWV8W+lh;Kw|3o{gM<-b8XYxp1szJsBQWM=XKM+6!8N+h#7UBu(63j$eAyjvCj2&V zTr9MQuM-{VTpA{EwNMK5fLpUjMl-RS;7_XS3ll+_fHdYgsG`1T(u}nC=o&IEfn_=IO6BL zYcrHcqq3bAVhIL#cUDo3d^ivYkl^j*?Qm~P>9rHzyor&okrf=wU=+K?ho=%Z;`UH2 zI+_uAZEdY63t6FF%Yc(r4mHaVA4z}3*+zq1+-+mvTFJZb+lPTV(TM&B-2-IRQPl); zgQnY=#*9o%6oa7n=)G*`2dBa}tEgHNhgY8C7gIZQaohk+9KSie`PS9LgNvKH3$z2K z^pksKE>2G2I(2)Pzx$Tq0PE`NLXK6y5PVOt6K#zpD{F{VR#sM@D!7T+sGJSxn!r2y z2`K-+KlBy)|Hi4H;L88OA8QwQO}kE@%72I6<$bX6_W1+AL)tAG?>_?b(0{uUq>I48 zxVr&=1n~;6%YA%(!LA>BowhD3Eqx8h>{D;O16TwelKTa?swCb&Kdaf;u;3N9hc<6) zZIKWXx?P_8U_Au^b*Cv*ga(Tsp#ch9^jlI5pjLvkA}z7%0C^{O7PUe(UrgxMExh5E z#l`DfXhqc?hg+kVD2xYi5^HKWSN?1!N!m{4u)HE^bAEpe_VejallQcRf3<)wKTqS@ zT&T_u$9aK4!lxCNIz&N18I-W~1hUMs9*7%w=8N@u=lf7AazE@mf+h~0#c2l0%+cce z_f%7sV#&rCyL%`YLn1?rR>kmX)~L79fAUlbypT?7I`2{0N{&OY5`6@ zkO9)t(%{g~5&O17`3vV*@UB6Yfws0x;ojG;d|CSF(#)+{nVD>@gzj1>e`x9GUiMi> zkAd2Inl3j6gXM(({clJeUgL4ncfG!m*Kl%8 zg9ADlA3**dn2Xyn=A^TGUaxiklLdhvCi|ZO8vOFt-pg)v2-05_RI~UP?%vIfxP-*z zD!qOG1K7$Y%hyeB7Ba}*{%T-yd_y96-)M8=19o2Q0va^5Dymr^IM$UAxqUF`huao-A)^bQqzU|L}dfdO^)ARVTFydm=r5V}C zS`HjCNN5U))V*zhN}fRbkkSJInujT6)GJmH4{ zJqIS?Bzlnzy<a54K^EhnChXL_pAKFmh)?fu=Q( zzZ0(9eRX-4Ch+{k?a31%rbgC4Hb3+G%M>pQ3+YmmlaqsW%@H3K?& zJ>O1EB_bWRG&iRSNdcbGFAgCI`hc*;;I}GKk^u@j^ z^~K}eqHh4D5fE)sQc}#@V$Z)xmeTT>_rT>aWT5W{F@&2Qy4pw8^zyy+CWyb#vi<)N zsu^ZwrITnS_S;=PcExOR-rY5*#-|d-dG{NFH83+DI-hKkQD39bA3L9n4-Q5kpI@iV zH%Ng3XjRs5bVM2;2$G9=vj5Vl{1%xZ_X7UzN_FZ>xFu^uaaQ%vEJ6w#9vC3TeSZL@@S2jwFE8P3T5C-_e z-XPz=Dc0YzT!T^v5H&9STJw6G`7FN7mkkU9$Nska59ymQT3fhXj3_yj;2a zh>Z=iF7gaq-a;IyxJEvytVU2!&{>=WN;}%xo&tvxjnA7*_u@7|Bp)2Wra)zHnr<5B zh?DbwV1&XDNkKv3kCL7)o(&NZQ5CjB^Tg&V5%aF2m)9`_TUNCk>on>=_`UE+nmu@M zla|)S&W_EFGZfPAnDI@b;Ljhcs;VHyF_N<*zrK&h`>@lRs)_!U2>@nY&``%~ySpDk z8p*+xx-EttI%(YnN!WFH47^Yp5KWOe2+*~>f?pJqG`>r37#?majLS$Hw*yl1W~Jr{aa^DZHYd=v+CFBsga>o8=bm z@-(3@qFW8-MQHJ`v)cn`Kspvrb2lSJ8Mi)ZH)#-yGcsc9!LJc%ZAG0_!=)wm^Ahp& zs!VZa8j8qFms+D1>>KiW3rvmtfZ$k1b{NE9Kb>V4nyH$2B-m>biCZc9`3KMk208X` zEc4Cjp3Opb%_bE4=!YMV$#GvK8<&B1Tz%^kH)1m0A3_aO#Ko-9zai%Fpv>%J(o}M? z3b3ZY#7Dot-WP#?Ta|>V$iI!sdmND-z-4L=fpuZL;rW8wpnh$8JQMC+>z&go5fuNr z=g<9s0N?XA(bqo~X%^WMaXOiUaucMdQmKFdiCcy3+w$F%ZN))XmuZy~(59Cm@FJU< zZvWau{M4z$m68nspJtN{$|Cs^@2_kv&I+a#fUrnHH~u_ z{s~Ga8z)^{6XY2Z5m3ni-qq0|uA8x=_QUFZALOs~8`KO4H_Gbjf%|JngUp|9prrB5 zXYpGx4>5;Da1&&|szMc=o|>wdf?`YwL)utoX>4o^lD?YPrFNG5sh&KxH1>@fK+n`E zsaUQeNw{w*#uz-=odaNbfIPUO7?{UA2|xYUXZRLC>=vi;kF9DWa`64P86}li`ktP9 z)adzVHvdzf%P=AZKbcjdptj3*IU^A{BQ4EowViMbQz9jyyagXRv~a+j6B$P2z5Sk1_sP8=AtCYh^<81TfzdcysX?cRF)r-1G~{{qn6fU8T1+RWQ6GoA(=0cT$EJZ85A1d31?ec{(I zT5fjGf$KGJS_l(xs{A`^_sz0aGQm1>`6S& zA_CW0Fl5R#)4)7XO-1Ed-ihOz&0AvoKR(xAYz9oC?ZWcX9ItDb0`Oti~F+3sx*_255q zSQP?pziZTNw-at|)+D7S^ zscpy%_OJt7`+BS^A3#6gCZE{)54MmAjJ;6GIt29qNUZ4SXmF(0p01PM=-pNd`=(tf zrK`IDWi@lqZ{YK5v7}V0(7F@7+|H~lEo~>VQu6Z?o+eZo{LpL-cba+Q_xo1p7MT3C zci55a#g5NUJt7GxC^}%G4Eh@eTF&WUxhN=9_c=MdKr>!FgZ=|(H4t&`(>l0nMfNCy zBsx*WfM-Kqjaqd22ZZ03MlH(jX-sXdNDZIh(80AN7x@+(tjOBNbPV+#WDPmOTBT35 zUQ#+fj*ed;6}+o8?7sq!;kFl)>;48z9l^V7O!-2O79mO$eSv~Be!v0VWZ-;s1#J&x ztcp~~qS_1-=|AVm!4z}?pQNqd9vyTgbfpveSAE|l(TlV!MxAa@+=PHOTd=)yy$@>eY`$U-6b?R$y4Oq+ zEH9k;?Admns%nPsgn0mh(&9x`mF8!4$AM*rjMo*b4*^ zdUmw*&92m116@T^J9swrApoBX`dKd#*`vKEHiIF7zIwg~bNUt*45XAAuVtI9d5;^c zh6%#rCz8d*cr&gd(0Z+ltI%9_1o+elz2}<~QSMcDbyvQSKjKR72c?X#WsksPQ zJ@yH4Mq;j?BsT0ZPi#I%)St)lr)B!pkE&9$SA2`fAmFs6E9F^Es17eDQH@gIeq9xQ znzkEblfK1ON@OrPL!h;#*=ocj>7PDa?mQa9i)%={k{kV)B3PI#m!sqgmK<^A#fzu zYA*Ks@u6|(--K{nf*vyn{4yU8kD7_+xN{SzK%c!#q|do-2US1AD57{XAY06Ek8fbO zyYD+SpLsBl>{l>U#bO!yGd?W#cO0*?o!uSJ9nI(=(sM^lbrwzXKbwyZ9)Yc1drRUX9W`z+D1Xuhad*BmPKY!jdL|lO$yDq%> zkpfy#N3_-M`uagBR@(2QqcT-hRh-0Y zGUB0$33LG0Qz~0c#l=XHg?Q7jiE)o3vqbwx!f4o&_Y-lL<#!%&VRJD|OW zL=^Yng>>k%;r}!n8yJj8fflCF;(uMpHQ7x=-@}NqF8O^7-Pj@oTZ#z>YQe~RsTRRw zvua#S-9$e^m{NoEA3mt;;XfZ3kXz~{Ei+PT@5+0DJacex0JFLwm(ce_;mxoK3B5fI z2?O-&h?$R%fI|MmiJ1LN5u9vUZ3_ZzPQxh%5le2~eENpujg^*1{^?GfiiH07`1r%h zR?H1cM{EKDM5nyBZhg)Gv2a$eGel@@W3F7~?MFx4+atH%K?lKf1#_#Zu9D)oH*U!C zt0*gLk}VMbC~5_Ej_6s00w%*vmVp?gf!2|OF2!o0K8_AFa{{4}FoP|O$T?i2l&49_ zxPo|*_n?!5&pw(sW8DK~MmM?whC_2AL0!~xl$4a5$md6>UEt`OruhKz#&qA?{@@X{ z=vjJ?Im|g}%JQdsv6`Fm(E}jll+)eat?I>oV^z>^60<4h0{F&YCZJB3HzV(<0{`~A z@}HHK8#?F_+cs#n)Gpy=wMBe&x-1ms%;{0okJ)*ZFg0v^@5j!#Eveyx7vZP~qm~P@ ztGC!1&=^SGk94XmyZU_e2aw2EYRoMy1I2I^Rv#dc!qT?#PXTDfT74%%1jhd4ZI&OZzjolhK(+seG6S4*I}|OnkCFS zfaD;OE&oNQPYJVF{ChH`{mAfeWlc@27YOg|?w=M;0CxUhz&dRT!m=zZjg z(m9G%UWIPe_Sz7ht{NNA#^m%DICyxGU7U!7kA@W8VQM2poG7JMR#w;3cGM!l+L~X$ z^3!xR>VT|(1GVq_&L>=+P)rmtFq6gh+W(QAk0y{ovnV#We;-Yl+5@+kdEiROVcwJh zY2bQ3$2gwh&n-@r-W2}mZ=XL$T1cCGnaDJjf9;mCTZegpY z*`e3n;mI}N=in2&eft>)e!1;&S}7~E^W1Ft+H9e{WjMrukr)m11-W~|AlP}c!#p_o zN)M_!T@XBL9PtJ-Gj-zp-r?C#GL%kp0e2?+s2Mb6?R(yh(r zU-o!0+RSeN;OysYs&E2u@$u~(!xU^aX#N$e1qI{(dT5=v!SkVe?odQ!oWLF8^zGB8 z{Und<4C?ccM?Wu&-oV%e>!pW@$tobPJ+XzzH`RJ5`csBvGwfMkr0@q1+EMd#S=RLN zG_Nu*L7_;rdDs7hkM^4FWVlBXmyqzpMQ9>CAP~S`aQ$%0!=mx#@e(@1hOzApn2vZymc_otog_Wk@E(?oP9WC8#r96 z-9d#{AT?cDBaCR;6n)&*c*d&`NAQm=lM&yCGo-Az0_|z?_Kb=Z?ol?wX3$iDgfaC4 zQ4>5Ye-Pm`H3`h7^F(FaBqStQ5D%d?1*a4oz}W`Sh>gP62)b8Lh32AIsX>Z;=J!xC z8ztv*rVZK|5IiU13t+NHF!qa603t`9ogOLRPpj`Q$H;DvFX}51=~X;$DUH{Ef=H6g z?gw0x9y(nRW||Q|1ybzn?=N2Cw$_8h#s*6xzJPpGsxw1J1xk;3?RsVs-wpo} zR(nrFqM)B<@(JejekE(rrEGJ3J%+hL<&pw+ytz1d?W+Spl$Q-1i{l$ek`OMweE98PHser$iJwpDWN~@GTDTRN<^)qHI(sP0A8E089SWtt)kLt7A+`oFez1jb{GG>C%?vw4DJQR627G=TF4I;uhixOs> zN5qYAKYeZO(3|1J@1bn3s$zHBq@tvRQvG1d@MtrAU4X}+UTRy3fS2&*26S|Q>rDP2 z__l>)@26A6#lo@;<-p0@*lZ~G#&1?u){WngGRK*a&XUwgSPtH7ElJ$Hd$-F_>BjSq zZ=yIrrQLi1RE!dW@*hfh#c-p(P(e_Uc7TWIf~*Kr1q;G62nXGfmBRi&{b#) z7$3X$lnQcoe71>tqufh)^QHpD3D=j%>M6x7MV5Fn3jLei-qyVW2p%4gK2eb10dh~nO*w@!rA%N@ZC4yBwiw~(&T5r^8M%lt? z1Tuk~n;aesF9EBTExV6D_%?d%8qQ#PMNu89a%cc> z&e-Wo&|YdOjS7UQyFJ*`fC7NBqoftgPDtcd8_7!Y7G%K{fxoJ-Qj7u0gM{_gW#cg& zL;(IrStd=0=5Jn6t*VJclWo*ifU09#H8;#bh>v)bj44qrTzWndrdLrpF`;TyNjd-u zkDI_*bb7`zHfv-=#4L-W&TxY;Rj@4$OO&ZHg7Q_Y?#anXmKyQI4H}`Q>wNJ(R|MHD z*)g7>^-nn#l)>Nccl|Xuo#Ox7=OAi#S=6t=;3nN}VBufob9)0l zJt5G=4i;Ta+MJdTL1OWF`#_s$lU!xWK4x_teRItay@(7M0r{4% zpI<3G2+%`eeel4SF|o0U-spS>zOZ;70RAdrxN&3vU~r6T424uV=bAAi)L3R(>+5Gk ztOp52m6Bd4t9z`s=RJ2I3oa1#ux)y&G9RSKsYG-#ZD;Tq4v$Od@{i4K%;o$}UqGC53}$^BZ3E-d^6 zqhu~{K4JHOtwd=o02NZS8;P_MEA}PZhJ*rS#Kf{lo@HB1^ zp=(%ajs1++EeeN1rW7c{a(5+h9^pL4yIa-1mNLaKv6tOvJ!r{YWJ>Q18YiW5h9TNU zl?~Qyyn(U;(AUOAlb!il|Ek}QDgTQBQ*zHl;ZjAuijZ__?UgIh^1ch|QyS_(>iL5% zH~szE-P6L{-1kdM?SR%{6)9>zIJX{UQn~Ci>1Jq(#z1^e zJtSGn2n|JEU4bFP10z@_5;Z&(|763Cz2ktC* zRJ63FP_sh1+aK9`zq+%rApoZVF4iNHyH8RXsKIwHcIT8f+QCVf8||hIu80A&^0uqu z%1bjz(LzoR4yEJUHG*%hpGz{;Hg_Y0=@CViH^GfK(zGU$Jo6vk?Cj zMDuG7&NK+>@i55zo|{no1E9-d{vZJoKj_S*j}oKQapg+}uX(&G)=9dqrlt>-VF@IW z;6WlU>-u!W`PV<$7RvnvW@fcqE!(g43{)E<@{R0S{5vEwlD@e=q0V|3``bUiun zDzat(IVvJz^w_#%_G8%^w96*7cPwCbT|Qe5UA;g&CMF}CikxNXT5Ep+ZJ>(v#4n~3 zEdFOC)Nt32>AsBVo5LfHtI`9rZW)Q^@HRx$vN#v|{qHPj7y~$%n90qGshf(XP4>qG zebD3nq`)qv@xO1V+xo~y;|9RUIeZ)=qiq6QO2(@ylM_>`n8vVDskraRGDIPXcJiTn zVE@xk0c;JnE80fW7$g*X33V{$mqyT9V+MmM+1W}j33v>6J7%*+_~hyf3U@?56me!J zwFeAD6D}3vomMHeMyVijVpKgB+k1)-IO#Mqhc(XxX4AsCVNa64r+}-A-}a2Zs-7{w zchdb!+kN8v%i6UH8N7m1-dJ6I-Hv3uk};TssWq~9H-m8S{b8dP%mWD6#ER`>@cxGE z3xP&SO>L0358pbb8~lCjHJ-J3z|}|iT~5?1)kHi#Pr#qrZgDg6baz))QX1u#1})X^ zn7hycudqY5LdXe=zBcV&w>xI{sB_0+ud8g z;qPP@cUt0GW>$I3ovqzM6=b7^7{n4Dt+w zz1ILxpcc_d2Ks+n;&&`s0u>M@JVq063YG0?7F`Fu#m!Zc0b}>@gKcHlQZS7U1E{sY zfQ*mF#RwuAhl7D9 zy)Htail=+d1;*Fa=*0mE3892Sjm%dW0sG=&$F7tSM(9g3Gs)@cHj6=>NC&%N(R2ak zB3YQs)SscIiAld$%h*ak--Lg7n83%6AMHc(W+F&SWJsdMx<~fj&OjY78jT?vT)$wV zsTq9B{FRK1jP=WM<->9B?Maj;^4YqKNcJvvU6>Qs3O^&~>;zaJFu{Od!Som?XdG(2 z)b`@&wl4PM!a@xSRQ$bIbH(tLB@5IiZ)@~YGboMK^Z-J*ZHv6Sm5j;lg=mo5Zc#&hQKQNB4mMpZc)Y6(5qvNSUN3JV4^_P*?(|}^Ya+P^9h@hBzW3F z=tbM7&#d*OgZQ6flGd4zvd}t`@SMixr}aOm6AyO+QEs|Vcv}=W=ayZm==naeZqlYlgmq~cqB{a;$p;K&BaPNr3tX1)GccEgbBPFFk_J&#-cW!&5)ZtQp@#j+ zV&j(XHpl!!l|sA?;HB|5q~hTK5p1MO@JZ9;%2ITp`3#y0-`_A=6C9KFa?g0^?ED?R z`K^*~KB~+#ls4lpl=4`V9){lGDnmeRs@V=7a477#xZWQ48>Z!SzHe=yi1%F#jYlv6 zTr`*@G(@r`$n2AwWd^(2fcOlTB1lr-H(M`r8fi>DPt{|ss3 zuM}dQ_E4bBp>bIE3$@+IPniP?YU7oRaX5j-uj{EzaXmdlg4YK?15w*^|{2tTp`=)?v)0`o{ZJmEflX()rBuYcujEiiHdw>WE-h{N!MlIp1iyo)l{~Oj@R#Bb++i^Wcal($0!jlZD;T->H%0pArsljfdU^0%$ z$;t94Xmf|Eo{xNqr?_ox)6-@zNKkI^YS1L(DAwS*{G3sluIcId@_TSlDf6S^~gOhImgx zJ+-8!3d1{~P~gAYuSwrZ@=7@yIsqeMk!PsfIGh3kbL}XU9b#a1^+OfZYpDu*27OBX zl2q5kGQjUi=nXt{dixkV_2(D(xmjq@qdicx`@@Vk_c08#*cFh@NLd%mp~n{hopZIf(RIWFO&)_IoXJ2q zx*uEG)-(&aOU}`X5>>(4^}RBsXD8_`NU@`&h9yOhW~gtRR!+Zr`}Y?9m&IRMbOocy z2RvCv4h~uuMBI}+?YwfR=+L8w!09`UMv5F{5-Vc z4cz^MQyCHcmz%bFFm(;fqbBn2-kdfRu%sfsRA!uoy0Je6mO3bEP8*hW`mV$ zr+@xjbLMDBuwViPIkwLk-vELip5uDm3e1Pg8hh?~=x`~M zsr(_Jq2UP|On5LY43ot1?tMXU7hjCr-K-&UDW>9Kxk|6)h1s1@5>KK=ax`)=6#;wS zDU6!NJ6JrVov&VTxl5CY5yOfpGT4~9hA{5FW9C>P^8`Kr+n+DklN?w#$z=Nh0+O9} z+Z?KHLgI;$$JMUXl-&-_I1*xK3QIR3$Z$|%PZHBXn6i+RUb?tm>Fhv(GNX)aX^k|qx?Ac zds&IR3d$*C4I6)ccz8JQk5;I|O9>hBE8LlrffuJ%bB^n2j3YNEL}pXJJ66YJ>{Pfo zWzfWKT0YFJTUC6%h^Fz&5W_I%eiM#RstQc$m$B?|5^m{p*JnqzE>JZ1@l@By>`__- z_-y{N9ej1c>ZC*}ihDbU{Cg5bnnO$8_(bQ5_9SpuFJ8X<{p(jc z$=2f1z6Q3&84QL-@R0J|<2zY4H-A4qoAdX>b&mKe1Ht&qtw7<|_2*#S!=}rLi3!++ zCk|^_8XDZ76f$G>c@g=Y;ck(|4)hHPqIXuvt_1V<-kPf4o`>jRFKa#owK(iSp83&O z1hn0MzC3aMj&;`+A3R}rWdlA$L1Cd8ENp{n2TJKln4k4%va|QUoBT8ZG(*q}Kf=s$ zhSx`j>!0ACd$OHr20DU~uCAcdQvKsChLV3*szl0H%KV*Of@vL^)PuYY42go}#{#3zScag_f}+`Rnn#Ep=kQ+T0TC8m+> z(1Lv>-{+?5-)F|&Y)1I+PE^_dGjXC;oTw$x53^0y+^kf#emOJBjxwU8mE{i<4r=4o zn%(auQRi2F;7j0*o0b@Peo?Ya+$MM_IH2BYowCKO0c%sHl`VPiOiPovqqHx!s~hKIJ(4^Uy!Hr4JOn5sBGxQZr zJ0g3*N>e{zRv=~7rz@X0#^)bodpWSPvPNR1;QP0Hygd2y2R^>bKYK4#GaYkaN}<`r z`bS00bxAauU%-dT%lmSQo|ynfa9QAEgRLG!8*xe# z;&m%G%u$i!ah<$;s{ggTix0~Gdfv_7gCBSSX9c~OkpBRHMql^#V8ODfiAj9WtzJU^ z4$ve#F6yvAumN(H?`QeN#l^ug5c*e#+vDIuU7l1BohV?GzLgfb*Syfw%ypd?%q2-*l5T-9f|6 zsDZ*c4v=O0W<|?4;E6y}$=!MY$sNo~PSz78&F<1tD`jQnhYxA=51>?siw$_*A^?+V zh<&8$cF)~Za*eTTH3x)z9Lj8{?u+rE-PKT3bbb2t-Ca~;j3Wz2<4#WpKxVCBhj4LQ zTU+e8%v%8LVL?xJn6**(H`w+F*ImCcofT%+QgU<0olb^OIYYuA;S;sa@>NI+>l;rah5OgW}xlN4bnuR-`^mN98lMkgh~`w6aa z6+nD<@p;9$tc{DjNd=2vH;tnf=zXg6j3@t`Yx^|05x@1Ia8hX?4UA1ln4Fk6|K9c~ ze*NKYaBi-#q2cusX>oCJ>-tHT=}cB5%F<31^h3jiFg$`OJ+<4Dii!9)c& z)r#4IE^_=EmV!!AB#1F?VwDsvd#u$HI`w4_g+ zPvTwza#5&j@D+wRCZJWi+7Ezbts~5-*TlT_FSr}3MR12dZ@`7*&@?g0%gKSy-jq42 zckVe%7d~C6BoS~B5S#FZnG=Wu*8?iN7^*pfF%59JRwqu3R}8$HLFj3JT%pXPhMjTK zIOmmdwsnHve!??FE<#s_^8Tn18;wr!soo=+d;UuTh!10yO8+9IvYSo+4MJ+g0(Zmc zg3eRY1HcRnq;zRwruubwSW{a&P&XL&W2J>_5Cq5Nr6q45R;b+Z?g28Aq3ro4C9RaoLKSN5-j;iUNT6%Wr zTi7<7bZY$gaVCw-;?U=_+0>TT$EzNbLPJ?rFZdTtJPwu%F7bY0kUy#Tr$|f{!Er{>9w0B%gcIV0)reV3#N&%GcD|4@}d$)6efDXAB zBJ!_b8y)ljG^a4wz6doX9+hyd`}UY%(gp0DoWtoomkNNfL74*ZYT*~+)qV}|}(5C*3V3-)=3lk6mFF5<|3M6!>H<$aBW)X>&zlEf;2g}b-R*1@}*b$lCwH?DPcI-*7_us-_w;zbSiGAq=ZyY?VQ;P zH7etu0~e@lk7Z3Y$6-ZKMgt+m-D*(jc4|0Uzv7iLM44MRlX~CFV3rix2>?RYA5u1S zfxB5CXdQdW&%YuT+2CAbZ6=VxWC&+Zi)K>{_?Q-)NNzF=(_B=%gf75^6~XHiC890jg8k+h5+1wybp$c z!sAmAhngS}XS{A1L;{f84W^p~)p0)sT?Ih;``@@aGk$DDeBh(f+ zn=nzQiEkqk2e^*tUWqjvs_Si+gmWuUf5L#@2b-$zKQIrsiZX~cP%5t<14MhvpI(f* z0$}4Z_b`YkVDEE1j?6($pcIlpgZ1iC%KqNu!G+DhkI#Jje?)zEJl1_1c4k(YS&5K6 zva*t$$`+N3vPX8LjI7AWERj)G8I=%OMI=%-m6c5qT4cw2T+jPF@B7dFx$n z{hs4Ej`KKo6(4ucB+$BRpK#WaXiiLA+-t}9^84rFw)2MV@h%Bz!K))zF_-9FZZBd| zn1~{-M?qXTf430Jy7hq6b7Y$M=;(DgJHy3y>tfJ)b4G|(ffI8;gRAIRBoXXf@BX++ z-5f%F|HJpoUyunZGIWiIZe&V3?!CYi@YS@Cb9j6GTh{A;E5nCL+Tp$%xrHZ;9DrNz zi%~6tHBtkdTcRSsG^AuKtJ(oIO#gtr0}&^pe-5t8d%3c6mhb+1iBxnkqN zvG-iaB0QR7^DJHmjqqhFQ0-0W$|U|A7Cp($X1HdU`88(9>G-=w>&s!+egb>tp)yHy zBpy251r=s;L0;OO6aCBgk))-xve{`G_Sm&PR=YvIVE52=*{5s10R@SIAs(We-NPXq z21)&6R3WE-4fuEmtczVVx+mFIW6v&Y*GflzaN~%70eQ;-_K@K!wQzPP$GgI3GVA5( z;u^U;f7WVO*9_4J5+EzJGE*q=uAwFgLHPirz_aj zQ8*>7Bb`TwixG9uVm7-H?G$3oF~2|Ik0~mF5$pI6EUC=piPyNzN*(O%>`WbsaWX0r z*+rp5S+Qpde33*5lEgnW1{|IIdFM|jC`Pw9 zlXJ_hygzmR(!G>e&SU8grnm2xtDYs87Q;fs-2Kz(CXTT5BC5@|+LlXnBdE#iH-8-M z{09PdEAfL+dkyHy_WbZZlW-50yro3~OQm(k^=tJf+tpoy8q#!sVJu&m*z)TRpl250 zJ)QQ5AzO!_|JuF+4ZxugEhkn1Cpk`bId|QEQLQP&rFY#D_gl6w@TG(h9Ma=X9HkJ3 zP~Jr~SR&tlI+g~sDQj|w?A6E~o=ejSVX_{hv9KPkk4r~wOQrYE*c&TwBv{*fAJrBH zqmM(u)i^WcMy}hLk_GPrALL$dlI*KXyT$^S_T=BYeY>~*dVuI1jVTAA^HuJa-*ehb zN-kI~5!DUEo!LHHbeiuqTQ_*{&iC)ta@J0nB)B#i%nXP9iM=Y%v!P5SW}M#+2yKmJ z)ih6QPdnw|nEAYfqr5q$FrT{ai*ki*tk#p#$xIm|udh0Aor@CHh&HiuC033oZf1PX zLQNbVn2iZjQ*IdNPr>iqo6Mr74XPniGaPJpSs%~xf~=(0Q{_#AhLUFy@7dnLA@_P} z2xReAv={otFMnb0{%VHBIO=;y$Y~^s2Rn>(Beq@SrhZeJQft5Rnd|+!i$DuL#$@+^ zu@FvDbDTu}aC5@^_!g;gj@h>T!=@)zVuiQ0CP&v(%7&GczP(|?3){Qdxa3KppVGy& z_gm4e+=w*6CdnZ?)hf1sqogu*4p>mpsv(j&`9CZmGCnp+m)+?hvTE>GJ}N?@qsx+} zH%Q!gB}8<9%~g>zl(ByUPrr=y-uxzzuV+6YQnajeJx^>&90Ez=`A#n&38RN}9#A^H z3Bf9eAx+Lw3vPlHzt-E?J)5X1^f``TygSIHsH;nY$c?@q=kH>DV6+4Z7UvorJBT0j zQtjF?ToH2ojcnbIk445#Z<*fdo7_mGyg0Hng;apq-x_m^+ctdK$*My*7u?~SleZ2p z_yzYxJ+h#@0R{&mLEd_?Gmn#x)yI9$%gcLWQl##LIktcKsNEU>(j0D0V4dH&RQsHfjyvLI?y@N@lorQ42f9weNa8;TOOm%ifZMY?=;x^jQo;T z4{ox+wAOe&{btH*r^Jn(C>>Q>hKdP9zR}&^i|&lAeE)Qde7NHL*wd=&+ZTz4+=JjB zvTL#XVreZV&yf;%)*-!(yc42zQHYQ$R6W z?}EcYWenH(=NujOw|Am?WKwMQ>GC@tEzt=uZYiY>2Cl9PsAs*1;bvah&1}2p(&XXS zHkwwZHG%8TUkc~ZL^koyO?`ZSuv6dl=CNDMV!{sR&n=Z@va>`+h5hc&2=O)O=jLcR zFYwEEaR~cniseTx(i85|uRH%M8UZaF8s&d}r7w@71(OTMyPF@WgrZ)A@{DD5i?4S7 zQQxO>NvV#+>9d6}5;GvC+XHodDHQU+XaPmkH#?`?nEz5!uGc@)P3oYTkcG_6DRg{q zcy{ZT&u1%VYAkQ|@K|SzUFt2L^MIjCW&NQ51XhYq*zRHaI_P>vfIXY_&$0n$`oC~y z4Ey>%mss5=)*6$eC@guy-I3W5VWXe*@Dg3{@mWS4j0#UPk+2O29tLn_%iI9=L}p=$*Q@P2u!0j{bX=-9&!BL>v0f$=Br8AFB%Ivu|m*;F#RFAIj zlTFFYZ089syFeAodRXkxR)VQj{Nd{n_`LN>4RopzJ&LDUtFW$R+l(*5~qW z_D8$nCN=#N9lpY|tFoC_=rjrAN_PtQHgiOZ1f+v%i)P)p;i+ExD)H^_$hkq2}MhixjMfZGou$Qs`%Bqa&u~bf0nU4M5vvA2HoLR!k zloQg1GMBD1TM=kpf$ZN3XospO%Mte;ngu?WBkI^j=SR3tgXP~aJh0-~g2}uX%gqhDE>O%chrC&n`L7pZr*{KEJ8@B52r&x$|BI+2* zvr2w?p>6|?60@%=b{}3GeKzr9^Yl7GH>)XIrK_LUvk2DPvo*d=y$s#%-1iGZmf)zA zGbR1&HydNE*A%%w1S*0gyKNaqG8<=5wIHT6KYBg6^F;LxYF&*Ri1-e>X1-`Jc00w0 zkoxcG&-J0YTJ~_EoX|$S-Oc!$w5ThCp_{(p&-u57zzg{={Z*c*zC5Gt`wZw1PKD-K zI4)Vep3#g-dSjrvgYi3{PvXY;Gyze37++TXas)QsLB~lU>Hmuk3AgF4==s}Y3_IT4 z2twC?H?uVJXHzkTt6(JPjafzrp>+YM{i)cz{}GKV&pxABh9uTxXlbWTTU1ZWG1TT{t!9~T$;!yE?i*&Hm9Dkb$ilv;z>N1aeuB02P zOL?)0hfX9N{I|a`m7YFI_K<~(%fsa>xqX_7D3RNHi}-85#?@B01$|+d@HyY(Jdmd}AqMiZxVcoyqdXZkk&o0ci`H34OUnEu( z_Pm(V8E;n8nNv{Z(jOnBopojYn9dQbSZrezSL!Oz?u-Rhf zXa4qMn&1WJ!RL>Jq7()6Gg}R0-M^f?VP4^6?ZHwS$w`wj+-b_yIm{A6>g&B%rDf21 zfKY#oThL8*Q2#YeXRKrU#Nnu8yIsbsf^0Q z4h}^Tk$DVZXR;i@o}E8~7bcnZoh(N7xp&igKU%=cl(R^UY46Yf_{+cL>}B{_t#s+5psvX5sAEs_kM@bTbi5Bd;gQms zrpER9T{Cw*2q5#a@CVHidoD^cr8mqu#oqm(MonnG16lvq2oOfaw0{wm>*TO%^ zv&P-c_f-KU)o<2-sC; zc|zF&))tr_ZU>h3+ojE7DP<25B zv;<*a_c;FDjoVpdilG~bC9SrqF~79*5)e$ZjXb?8;-<0nPWS4?=m*hUcRm|KCl5L$$dL`RP$oC%H(kt zF*Ca->V1B}6b-ur`kxfb>B*_h?b$D@d-7!AnJ3JfLJ23(oQNwkesjHAy3FuKN$4Qa z;ty#y3STrOI66!OnA4{go^=H8-=fUKvP2-9la8MBKXMp@qHdMTrJD82vh3L>Y*MPw zBk!#Q&1&EprIUB;%I(wU&$B~FWq>6*;BK4Zwv@+o6vi~%xqVw+NWY`DppLWqtoaIm zwqEp>iw14Ij8CO&qja|9K5>WHv&)AS57tSEi+75g+W)eM^qZ2++bGm+61qrzO+J@` zhDXcVt5#}_zJ$p|5PBc+NUXWC`t;}SNRcIcxfCCni9d4Ul(lO6$?ALf?QZ8y5_UVm zY2CWi2n%k{N1=l|plL10@14BgkRj^^OJ2`_W4xA9nY#@M5tdt1@V_T>QLfULo8`xk zI^Q26snh;I4w13YSe_zvq1Lo>bcEb%FxUN7mQJ!@V^=f@K$`|fxsikoS`K+tQhOaw zIeFbJ_c)BP8=VJ}bQ{*$JXex;t86xh4~?TSb<-(T+t8Jm z*Er?ItRgeg0T!1VpBtf(d)_a6`9n%~*%)%x8k!i=Cgipj9|h6~!ic05cGj$RvvnJB zQ_f0w(ejuw54$$7pRxs76%1>_k8Xon`qmib@X^gaP2K)KEWrPnj_OisR(IR1rjsv9 zQKzx{x7P9o%!yvFO;Rr`rd|w6Q}TOW_pI-7vX4mZE{8?chdt2p-W#Y-<15yx}GDJuXgTv|FxlXX?bfJnvUm=sFh8Qk5!}$ywn&GshN%b zcw_9I^7UH1+n)~29;B21K|B_5flgF;Pqadv#N@r{5f_u+brc+_lOG1uw<*t%g%Lzg6C3@NUz@9 z@%xDbxjt{8zK+i3L?oB2+t4z0+uRhUdg)OnXdZpfh9g2*9=mGdZ4yXpK1=PIsA3yh zxKFjhPqX>Cn5e_hUiQ>F##7sA?-~iTI3MQVlyORov-#{0sb2n0e|FkQw#xQ*Rj`Dtl5C*-jJYoJ^WE@$YUKoHEs!4$}3w&6#=kP?C zy(f~m#-Tu*-?g=CJdsfFK??K>1wG1N=8=Ez0$h0#%t>m&6J?!YvaYcV8wQwwZm<@h zFc_yV<&Ftr$rE~P2Ssee9_o#wE?%_UN-Dh4`|uQjFTzr|iK^mC-PV{O6qd8o(bGqL zW3(yEZmDv%)M;(<{XfH9{mfbT|S)-&Y_%DXUP(iA+m({5QNlV z-@7fB6lt$X&5Q#c&M!O}x=qm1{=*$vBGBj@N!qTo`^;>=%#W}6qT`XdVXWo8BCEeQ z+}fBh+NG_=w31tcKDs(Uf{Twx&#~ytlh62NjF@dadUDCwtrO}pg&|8M?>0dDp|ctN z9@9O#r&2@mP4TUq$i)nFbrB5sjR{tf=7?`!0K)h=Cb=dbPwA$5Q-;8`5 zdP9QlSIK_nywQRLH!83y3^($1iDAPgWRl0^1(^98bzAQ)BF;ib8i=P=J zVnlIul7diTGxdj_>dte1Tzp*Xm@NP0BS$bu(Ybd_8N`sxtvxIm8B|6;e|F0QPF?Oe z{Yd*?$*$Jj5xv2B614LCGv!kgeGPieFw#2ETY18eo~7qXx7k1?KZ%hbk0mAv&KWw{AwR+5nwl5` zeUdp+*5(LiP-%5b9oQly#oBQ?ru+d|7>kjpzsCW&P;;5=1%rSw?e5$&m5SkFrj0#9 zr<$C;1Djdo3r{xC)7#@nF4NKS-G61_lu`{&qAS0+c>G0sM@Po3{>Nu-QGxCH1tG^} zr}W5~Zgsm!=JHCG#(zI|{=If%xN2f$CfDK6MUaf&TfgN8-^3OBT>%#vyY)Mpi~C(g zge~d=2Oq4=5Y~~Nztk|g5k)1h=onM&Bz$|WCoeLirez)5XHSmWcDRqC&z+Fn>8VYnyb+>4Ht-6!7!8X>W&y+ss^qPunSxN_X> z;+59h99`d!zP{8I4{LZX%HfQTwUEJ&U=Rg~;^Nn0xNMe2*}6a9T8ylmq~n5oF&b(kZ)gQh z)!XsoJL;W+2hLel&AuwKuE0{oYv$f782?dQx3D9u(KNaFqWjEm)~}(AjEs5*Od>Ki z@E~0mh4#y_@r)Fj?Mex0IrZlW@IErWYyyk1TAJDiqV;}DhV5>4+ryQMSPLXsPNiRf z@*N_cZyZUo+BH6N4E~Zv15K)+Uuon3J9*EC?BP<*yq)}RDbMiXJI9yWUiX$QZV&yS zgXbN6<77<65tpx)cO&A1;rCFhpg1%8RT4U&upje%tj}IZC}>~aH*LA|fuWmbkf!9b zY(@KcTlGT9ve3o)EpY7v&LzI3QYI16%v1Ax`dQTK;?#&q6U<``FD}zhlE(8McPgyz zen;_tYpNhkCAIHM`J@#kbX|0bw5$?VFh2(6^#5W{7P1s*Qz? zoMyjltf%|E-7znm`&wdtr{42}W*h|$P!EB`QkIgLv;tcJq6ySw<}WV&Jzp2p9r^_l z#g~|9vMENJrU}(YTz24{x*PE)?^%7SD{YmC3tZ}uqh=O`2hA9~Az)*OY;xbRmJ5}X z!}tA?HkydQ_uDC#*kxVi!Cu4NE1O`*LI@Q)rAMid=bBvCENU*#K!BxueZ%k!V1}ZH zX#FB?1~X-!%49!#V#=9BW%`?m`Wcx~ewSg}N)8vGKKL<5SkrIA9$4boib2d1ro*;X!KYM>v`*2WkVkpwP*G%98XNGD&O?ve$Fe$LF z!Lr1Z(YwsQMyrL$HJ9sw+r`J{QG372J5h3<68n1uDhxBHUzsQsn@kN*@m}%_I`gSGnKWO9$?n%ni zS#o^Y|5`Y&5KObFPqNp_)eYQcSL0h>eL}b3c17((*$ZvAi8kVNI~~EG%0Wi+Pdyj@ zxR+Ojk-E28KtQ#QhYkT{&Y)mll$eJN@!^AW;}@*$?kLt>9MtK0%J*5=!+%K3L7T0L zlRAc4x>4UZIdddfYH| z_TOip^n$BLT+7aRQ|zpRDD<0jtv3D2rb6XjT%fcW)&DPD>re8-JLUc7{k-<}(eM^B z{G1&5I=y2^`@)z)YM-O?*)xT5tzES-yFVXkmrFlc_qeR={rsnqy9s}_y~iU~Rtr~2 zv>ynUpUJ4Z)L}d>dotp)E9ETs?iWryVcerPN0bhyEU3B%?rw(l)L|k`lzn4>0NBAzs52S{;1N?hnMK}rJbld*}rq!9$alx^?Z60e$ z#uSGL|5s3bfLa0qh;y%4e3<|9$FoHL-=}j|NAUBGBzDo8vzSurF~^E^6mi6$R!>kW z_|Hd29sKVfJ-|kBZGp@s$D^X$V=+$m?7`RU+v^XMsIR%S9_M1x?pMqnZ<=|KY_!9$7!VWKOF{zs>#_L^$5@x zgq5*R&Mv~oeC0xfx6yV&@Kzq87jk(ktw1#Ci&DjzOZx*bB5sd*w z<077UB3;O~^Y`LTbEh`ZcI_Q8hHLhF1J~}Xmw@R3rHkzjH@QUK?>}%r?}=gURRLiK zM-*XAMWHF+_pX7+MsJX=;LRVbVzabOC1I<-h&e3$y}!?T-gg3rJm*KNJ}$cb{k-dJ zg;pFpBEzYZC$pD=PS@Nnso%JSm;omF6ilVOA7(5~gimcy@$2?~+xw0?toH7wYynPX z<|z8#xlxKliLwV2Oe$wvnIg5qIMQqC4LymiYwNd!DK8huKJM)(;~+mP%Dr_Zbe&tQ z;GcU!ol1ySt@LEc>MT>s6Q&z;RTW&nAr+7n5{h1W{)MMsmPQgeN~D_Wx4CAd@d0c` zCKmdhD@e}N&A3CCudNu=J@e>_$j0&FU4i>M=eZ&XXDCMG|Cg?At8;w>8VHTkhmMY! z!&wj553K~G~U>lslq48%uML8%zAP%b{0gD$18$R*fZr)D- z%eQR9LFx2+LeelcrhF{VGot=KEWnbd#U>W`C;&xNlNfZncO$6M*hu#)uoYw)HJjEg zJYwkl56NuoO1rm(rsFSIbG*6WWXf`r=NJ$GpAJ79GyU+J^l!kD+>u?yy3EXI2a{ej z-T(>+%Md^@<0TLlZ3xI`^{Wlz<4Hn=SkYMgAf8@d!+{1XO5>0 zLAZ^I6J{L7o&u9qcoD~6L(T%Bnow^2lWSJTl5*^D3EHpsQW2s{1a*R;Vju2K#pXCumLlFUHlYOUOc#2$YsEYJjG+ z83Jz_gUbmnDxMMHA_6raIK>lisC?bBsQcGK=u!`+-4B1R`ATK$7m0n;s%YdJZo=#P z&trv<(Po!0tiKK>J?PNq(YAmF02TQ_R}UpgjQi+!gD_P@s0yr1*Hqiuf;|bZV0gkc zoEXmJs*Rt!$Uc63Fb+O$9tbv~E=&4^SjBC_dMpQuoglzaFr;c;;&^2C;u0(EB4%Yh zyN&)Rkp{>cn_Mi=KR`2uHwjt-HeUxi-{17++4=WCU5ET%Oug#v##jQ+-NA^Zo4q$U zRf2SBYY|(~#VWAGh{4#?VE^7FO)As;7JfG`3sHjmJ+O#h2BqC35$81wPl+BM*tDk2*tKzjJK{W-_sU88Z6#%S+G zmm!*N*r;qT_Zc7`X%1aG=TEl->b--LxAe;l*2K)U$+G6eL+&KMfBXBB63m9`bG_c? z)Rx-Hu~80JaP9HKs?Q>}zR7cEY4b*LqV!&G!L?=>$}=GiUgOiJ!R2TiMHIAzm!vvv zV;8u&HL>_8_mfj)re8$gy-ECKa&1V;{)2>;%JmJVCoL}4X{@X&6PmyW-f_n`5qAm^ zHjQK&0ajUD@r7`d?qFT@I8FY@sg4gH-l!K&H!=L)S)9=5n%XJ(*2N@PJHV?9IKIGT z3()4WrnnUx5C8at=u@myhKmz+Sz%(;YSc&ZDs|!z!87^OVP5$MzR)rzPpEB17xqJ9x5L*AOjI=ao9Y4<;kGYSyu*1Ei1ewF+jPMx$G=ZoE zIQ9=JzGxYzn|gWMu8iFmumAl7D4fm;)7deFbRmNNjbUV?A4#}ey+}yoX*6zJx>dWL zLJOo^$H0JAPj$y}SKF(t9G3Z<=Ln#T%ot~A%Lq{hoD(`JHx@V*|0d{3THe6KtG}KW z>E}Q-OXqZh;kr=%`mA!7z}sSn0A;x@#xl91+%hreZP&IUzn=cxgtc~z^)>^ee1{7k zqLGE%sKFlx*2UnDxLL(4Mhg}eJ{H|s6(pnh;t*hTkGN8Mm*asU^`q3COgY#Xk*opp zyY`Hb6{;_ns2?{TX#HNm`XbHrX$a+D{qvzeOx1S;c257{B6>xJRkl&p1aChBw}?bf ziGIZ9ye*51^7kJZ_J7khD>-2S8fKghI4`T)J?LCJ3AWM8MF_dzfJC|m`*?Ke4p=fo z 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 literal 0 HcmV?d00001