From 212ac2f0d592266f45347d682522f0932017aaee Mon Sep 17 00:00:00 2001 From: Brendan Le Glaunec Date: Sun, 26 May 2019 08:33:08 +0200 Subject: [PATCH] Cameradar v4 (#212) * Refactor of cameradar library * Old unit tests updated & improved. New unit tests inc * Update documentation & issue template * Update dependencies * Update TravisCI build script to reflect argument change * Remove outdated contributing guide * Update README with more examples and remove part on library * Add second camera to Travis build script & improve error detection * Fix typo in travis script & add missing image to readme * Remember that travis uses bash syntax not fish * Use relative paths for images in the README --- .travis.yml | 24 +- CONTRIBUTING.md | 82 ----- Dockerfile | 4 +- ISSUE_TEMPLATE.md | 7 +- README.md | 86 ++--- attack.go | 352 +++++++++--------- attack_test.go | 597 +++++++++++++++++-------------- cmrdr.go => cameradar.go | 4 +- cameradar/cameradar.go | 255 ------------- cmd/cameradar/cameradar.go | 92 +++++ curl.go | 2 +- curl_test.go | 2 +- dictionaries/routes | 61 ++-- go.mod | 2 +- go.sum | 2 + helpers.go | 8 +- helpers_test.go | 48 ++- images/CameradarV4.png | Bin 0 -> 92890 bytes images/Models.png | Bin 314913 -> 0 bytes loaders.go | 73 ++-- loaders_test.go | 342 +++++++++--------- models.go | 2 +- discover.go => scan.go | 34 +- discover_test.go => scan_test.go | 94 +++-- scanner.go | 143 ++++++++ scanner_test.go | 133 +++++++ summary.go | 63 ++++ summary_test.go | 186 ++++++++++ 28 files changed, 1535 insertions(+), 1163 deletions(-) delete mode 100644 CONTRIBUTING.md rename cmrdr.go => cameradar.go (86%) delete mode 100644 cameradar/cameradar.go create mode 100644 cmd/cameradar/cameradar.go create mode 100644 images/CameradarV4.png delete mode 100644 images/Models.png rename discover.go => scan.go (54%) rename discover_test.go => scan_test.go (84%) create mode 100644 scanner.go create mode 100644 scanner_test.go create mode 100644 summary.go create mode 100644 summary_test.go diff --git a/.travis.yml b/.travis.yml index ccf337e..96da8b6 100644 --- a/.travis.yml +++ b/.travis.yml @@ -29,20 +29,22 @@ script: # Run unit tests - go test -v -covermode=count -coverprofile=coverage.out - $HOME/gopath/bin/goveralls -coverprofile=coverage.out -service=travis-ci -repotoken=$COVERALLS_TOKEN -# Launch a fake camera to check if cameradar is able to access it -- docker run -d --name=fake_camera -e RTSP_USERNAME=admin -e RTSP_PASSWORD=12345 -p 8554:8554 ullaakut/rtspatt +# Launch fake cameras to check if cameradar is able to access them +- docker run -d --name="fake_camera_digest" -e RTSP_ROUTE="/live.sdp" -e RTSP_USERNAME="admin" -e RTSP_PASSWORD="12345" -e RTSP_AUTHENTICATION_METHOD="digest" -p 8554:8554 ullaakut/rtspatt +- docker run -d --name="fake_camera_basic" -e RTSP_ROUTE="/live.sdp" -e RTSP_USERNAME="root" -e RTSP_PASSWORD="root" -e RTSP_AUTHENTICATION_METHOD="digest" -p 5554:5554 ullaakut/rtspatt # Launch cameradar on the local machine -- docker run --net=host -t cameradar -t 0.0.0.0 -l > logs.txt -- docker logs fake_camera > camera_logs.txt -# Stop the fake camera -- docker stop fake_camera +- docker run --net=host -t cameradar -t 0.0.0.0 -p 8554,5554 -v > logs.txt +# Gather the logs from the cameras +- docker logs fake_camera_digest > camera_digest_logs.txt +- docker logs fake_camera_basic > camera_basic_logs.txt +# Stop the fake cameras +- docker stop fake_camera_basic +- docker stop fake_camera_digest # Print logs -- cat camera_logs.txt +- cat camera_digest_logs.txt +- cat camera_basic_logs.txt - cat logs.txt -# check if file contains more than one line -# 1 line: Error message because no streams were found -# More lines: Logs for all found cameras -- if [[ $(wc -l ## Issue -### What was expected? +### What was expected -### What happened? +### What happened ### Logs -If your issue is with Cameradar's binary or docker image, please run it with `-l` to print logs, and paste them here: +If your issue is with Cameradar's binary or docker image, please run it with `-v` to print verbose logs, and paste them here: ``` diff --git a/README.md b/README.md index 5ed4946..b3dd658 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # Cameradar

- +

@@ -41,7 +41,7 @@ * Launch automated dictionary attacks to get the **username and password** of the cameras * Retrieve a complete and user-friendly report of the results -

+

## Table of content @@ -49,13 +49,15 @@ * [Configuration](#configuration) * [Output](#output) * [Check camera access](#check-camera-access) -* [Command line options](#command-line-options) +* [Command-line options](#command-line-options) * [Contribution](#contribution) * [Frequently Asked Questions](#frequently-asked-questions) * [License](#license) ## Docker Image for Cameradar +

+ Install [docker](https://docs.docker.com/engine/installation/) on your machine, and run the following command: ```bash @@ -64,7 +66,7 @@ docker run -t ullaakut/cameradar -t [See command-line options](#command-line-options). -e.g.: `docker run -t ullaakut/cameradar -t 192.168.100.0/24 -l` will scan the ports 554, 5554 and 8554 of hosts on the 192.168.100.0/24 subnetwork and attack the discovered RTSP streams and will output debug logs. +e.g.: `docker run -t ullaakut/cameradar -t 192.168.100.0/24` will scan the ports 554, 5554 and 8554 of hosts on the 192.168.100.0/24 subnetwork and attack the discovered RTSP streams and will output debug logs. * `YOUR_TARGET` can be a subnet (e.g.: `172.16.100.0/24`), an IP (e.g.: `172.16.100.10`), or a range of IPs (e.g.: `172.16.100.10-20`). * If you want to get the precise results of the nmap scan in the form of an XML file, you can add `-v /your/path:/tmp/cameradar_scan.xml` to the docker run command, before `ullaakut/cameradar`. @@ -89,56 +91,13 @@ Make sure you installed the dependencies mentionned above, and that you have Go The `cameradar` binary is now in your `$GOPATH/bin` ready to be used. See command line options [here](#command-line-options). -## Library - -### Dependencies of the library - -* `curl-dev` / `libcurl` (depending on your OS) -* `github.com/ullaakut/nmap` -* `github.com/pkg/errors` -* `gopkg.in/go-playground/validator.v9` -* `github.com/ullaakut/go-curl` - -#### Installing the library - -`go get github.com/ullaakut/cameradar` - -After this command, the _cameradar_ library is ready to use. Its source will be in: - - $GOPATH/src/pkg/github.com/ullaakut/cameradar - -You can use `go get -u` to update the package. - -Here is an overview of the exposed functions of this library: - -#### Discovery - -You can use the cameradar library for simple discovery purposes if you don't need to access the cameras but just to be aware of their existence. - -

-This describes the nmap time presets. You can pass a value between 1 and 5 as described in this table, to the NmapRun function. - -#### Attack - -If you already know which hosts and ports you want to attack, you can also skip the discovery part and use directly the attack functions. The attack functions also take a timeout value as a parameter. - -#### Data models - -Here are the different data models useful to use the exposed functions of the cameradar library. - -

- -#### Dictionary loaders - -The cameradar library also provides two functions that take file paths as inputs and return the appropriate data models filled. - ## Configuration The **RTSP port used for most cameras is 554**, so you should probably specify 554 as one of the ports you scan. Not specifying any ports to the cameradar application will scan the 554, 5554 and 8554 ports. -`docker run -t --net=host ullaakut/cameradar -p "18554,19000-19010" -t localhost` will scan the ports 18554, and the range of ports between 19000 and 19010 on localhost. +`docker run -t --net=host ullaakut/cameradar -p "18554,19000-19010" -t localhost` will scan the ports `18554`, and the range of ports between `19000` and `19010` on `localhost`. -You **can use your own files for the ids and routes dictionaries** used to attack the cameras, but the Cameradar repository already gives you a good base that works with most cameras, in the `/dictionaries` folder. +You **can use your own files for the credentials and routes dictionaries** used to attack the cameras, but the Cameradar repository already gives you a good base that works with most cameras, in the `/dictionaries` folder. ```bash docker run -t -v /my/folder/with/dictionaries:/tmp/dictionaries \ @@ -152,11 +111,9 @@ This will put the contents of your folder containing dictionaries in the docker ## Check camera access -If you have [VLC Media Player](http://www.videolan.org/vlc/), you should be able to use the GUI or the command-line to connect to the RTSP stream using this format : `rtsp://username:password@address:port/route` +If you have [VLC Media Player](http://www.videolan.org/vlc/), you should be able to use the GUI or the command-line to connect to the RTSP stream using this format: `rtsp://username:password@address:port/route` -With the above result, the RTSP URL would be `rtsp://admin:12345@173.16.100.45:554/live.sdp` - -## Command line options +## Command-line options * **"-t, --targets"**: Set target. Required. Target can be a file (see [instructions on how to format the file](#format-input-file)), an IP, an IP range, a subnetwork, or a combination of those. Example: `--targets="192.168.1.72,192.168.1.74"` * **"-p, --ports"**: (Default: `554,5554,8554`) Set custom ports. @@ -165,8 +122,9 @@ With the above result, the RTSP URL would be `rtsp://admin:12345@173.16.100.45:5 * **"-r, --custom-routes"**: (Default: `/dictionaries/routes`) Set custom dictionary path for routes * **"-c, --custom-credentials"**: (Default: `/dictionaries/credentials.json`) Set custom dictionary path for credentials * **"-o, --nmap-output"**: (Default: `/tmp/cameradar_scan.xml`) Set custom nmap output path -* **"-l, --log"**: Enable debug logs (nmap requests, curl describe requests, etc.) -* **"-h"** : Display the usage information +* **"-d, --debug"**: Enable debug logs +* **"-v, --verbose"**: Enable verbose curl logs (not recommended for most use) +* **"-h"**: Display the usage information ## Format input file @@ -263,7 +221,7 @@ See [the contribution document](/CONTRIBUTING.md) to get started. > Cameradar does not detect any camera! -That means that either your cameras are not streaming in RTSP or that they are not on the target you are scanning. In most cases, CCTV cameras will be on a private subnetwork, isolated from the internet. Use the `-t` option to specify your target. +That means that either your cameras are not streaming in RTSP or that they are not on the target you are scanning. In most cases, CCTV cameras will be on a private subnetwork, isolated from the internet. Use the `-t` option to specify your target. If you are sure you did everything right but it still does not work, please open an issue with details on the device you are trying to access 🙏 > Cameradar detects my cameras, but does not manage to access them at all! @@ -271,23 +229,23 @@ Maybe your cameras have been configured and the credentials / URL have been chan > What happened to the C++ version? -You can still find it under the 1.1.4 tag on this repo, however it was less performant and stable than the current version written in Golang. +You can still find it under the 1.1.4 tag on this repo, however it was less performant and stable than the current version written in Golang. It is not recommended to use it. > How to use the Cameradar library for my own project? -See the example in `/cameradar`. You just need to run `go get github.com/ullaakut/cameradar` and to use the `cmrdr` package in your code. You can find the documentation on [godoc](https://godoc.org/github.com/ullaakut/cameradar). +See the example in `/cmd/cameradar`. You just need to run `go get github.com/ullaakut/cameradar` and to use the `cameradar` package in your code. You can find the documentation on [godoc](https://godoc.org/github.com/ullaakut/cameradar). > I want to scan my own localhost for some reason and it does not work! What's going on? -Use the `--net=host` flag when launching the cameradar image, or use the binary by running `go run cameradar/cameradar.go` or [installing it](#installing-the-binary) +Use the `--net=host` flag when launching the cameradar image, or use the binary by running `go run cameradar/cameradar.go` or [installing it](#installing-the-binary). -> I don't see a colored output :( +> I don't see a colored output:( You forgot the `-t` flag before `ullaakut/cameradar` in your command-line. This tells docker to allocate a pseudo-tty for cameradar, which makes it able to use colors. > I don't have a camera but I'd like to try Cameradar! -Simply run `docker run -p 8554:8554 -e RTSP_USERNAME=admin -e RTSP_PASSWORD=12345 -e RTSP_PORT=8554 ullaakut/rtspatt` and then run cameradar and it should guess that the username is admin and the password is 12345. You can try this with any default constructor credentials (they can be found [here](dictionaries/credentials.json)) +Simply run `docker run -p 8554:8554 -e RTSP_USERNAME=admin -e RTSP_PASSWORD=12345 -e RTSP_PORT=8554 ullaakut/rtspatt` and then run cameradar and it should guess that the username is admin and the password is 12345. You can try this with any default constructor credentials (they can be found [here](dictionaries/credentials.json)). > What authentication types does Cameradar support? @@ -301,7 +259,11 @@ Cameradar supports both basic and digest authentication. > Running cameradar with an input file, logs enabled on port 8554 -`docker run -v /tmp:/tmp --net=host -t ullaakut/cameradar -t /tmp/test.txt -p 8554 -l` +`docker run -v /tmp:/tmp --net=host -t ullaakut/cameradar -t /tmp/test.txt -p 8554` + +> Running cameradar on a subnetwork with custom dictionaries, on ports 554, 5554 and 8554 + +`docker run -v /tmp:/tmp --net=host -t ullaakut/cameradar -t 192.168.0.0/24 --custom-credentials="/tmp/dictionaries/credentials.json" --custom-routes="/tmp/dictionaries/routes" -p 554,5554,8554` ## License diff --git a/attack.go b/attack.go index d76a94c..dd4f99f 100644 --- a/attack.go +++ b/attack.go @@ -1,15 +1,13 @@ -package cmrdr +package cameradar import ( "fmt" "time" - "github.com/pkg/errors" curl "github.com/ullaakut/go-curl" - v "gopkg.in/go-playground/validator.v9" ) -// HTTP responses +// HTTP responses. const ( httpOK = 200 httpUnauthorized = 401 @@ -17,134 +15,166 @@ const ( httpNotFound = 404 ) -// CURL RTSP request types +// CURL RTSP request types. const ( rtspDescribe = 2 rtspSetup = 4 ) -// ValidateStreams tries to setup the stream to validate whether or not it is available -func ValidateStreams(c Curler, targets []Stream, timeout time.Duration, log bool) ([]Stream, error) { - for i := range targets { - targets[i].Available = validateStream(c, targets[i], timeout, log) +// Attack attacks the given targets and returns the accessed streams. +func (s *Scanner) Attack(targets []Stream) ([]Stream, error) { + if len(targets) == 0 { + return nil, fmt.Errorf("unable to attack empty list of targets") } - return targets, nil + // Most cameras will be accessed successfully with these two attacks. + s.term.StartStepf("Attacking routes of %d streams", len(targets)) + streams := s.AttackRoute(targets) + + s.term.StartStepf("Attempting to detect authentication methods of %d streams", len(targets)) + streams = s.DetectAuthMethods(streams) + + s.term.StartStepf("Attacking credentials of %d streams", len(targets)) + streams = s.AttackCredentials(streams) + + // But some cameras run GST RTSP Server which prioritizes 401 over 404 contrary to most cameras. + // For these cameras, running another route attack will solve the problem. + for _, stream := range streams { + if !stream.RouteFound || !stream.CredentialsFound { + s.term.StartStepf("Second round of attacks") + streams = s.AttackRoute(streams) + + break + } + } + + s.term.StartStep("Validating that streams are accessible") + streams = s.ValidateStreams(streams) + + s.term.EndStep() + + return streams, nil +} + +// ValidateStreams tries to setup the stream to validate whether or not it is available. +func (s *Scanner) ValidateStreams(targets []Stream) []Stream { + for i := range targets { + targets[i].Available = s.validateStream(targets[i]) + } + + return targets } // AttackCredentials attempts to guess the provided targets' credentials using the given // dictionary or the default dictionary if none was provided by the user. -func AttackCredentials(c Curler, targets []Stream, credentials Credentials, timeout time.Duration, log bool) ([]Stream, error) { - attacks := make(chan Stream) - defer close(attacks) - - validate := v.New() - for _, target := range targets { - err := validate.Struct(target) - if err != nil { - return targets, errors.Wrap(err, "invalid targets") - } +func (s *Scanner) AttackCredentials(targets []Stream) []Stream { + resChan := make(chan Stream) + defer close(resChan) + for i := range targets { // TODO: Perf Improvement: Skip cameras with no auth type detected, and set their // CredentialsFound value to true. - - go attackCameraCredentials(c, target, credentials, attacks, timeout, log) + go s.attackCameraCredentials(targets[i], resChan) } attackResults := []Stream{} + // TODO: Change this into a for+select and make a successful result close the chan. for range targets { - attackResults = append(attackResults, <-attacks) + attackResults = append(attackResults, <-resChan) } - for _, result := range attackResults { - if result.CredentialsFound { - targets = replace(targets, result) + for i := range attackResults { + if attackResults[i].CredentialsFound { + targets = replace(targets, attackResults[i]) } } - return targets, nil + return targets } // AttackRoute attempts to guess the provided targets' streaming routes using the given // dictionary or the default dictionary if none was provided by the user. -func AttackRoute(c Curler, targets []Stream, routes Routes, timeout time.Duration, log bool) ([]Stream, error) { - attacks := make(chan Stream) - defer close(attacks) +func (s *Scanner) AttackRoute(targets []Stream) []Stream { + resChan := make(chan Stream) + defer close(resChan) - validate := v.New() - for _, target := range targets { - err := validate.Struct(target) - if err != nil { - return targets, errors.Wrap(err, "invalid targets") - } - - go attackCameraRoute(c, target, routes, attacks, timeout, log) + for i := range targets { + go s.attackCameraRoute(targets[i], resChan) } attackResults := []Stream{} + // TODO: Change this into a for+select and make a successful result close the chan. for range targets { - attackResults = append(attackResults, <-attacks) + attackResults = append(attackResults, <-resChan) } - for _, result := range attackResults { - if result.RouteFound { - targets = replace(targets, result) + for i := range attackResults { + if attackResults[i].RouteFound { + targets = replace(targets, attackResults[i]) } } - return targets, nil + return targets } // DetectAuthMethods attempts to guess the provided targets' authentication types, between // digest, basic auth or none at all. -func DetectAuthMethods(c Curler, targets []Stream, timeout time.Duration, log bool) ([]Stream, error) { - attacks := make(chan Stream) - defer close(attacks) - +func (s *Scanner) DetectAuthMethods(targets []Stream) []Stream { for i := range targets { - targets[i].AuthenticationType = detectAuthMethod(c, targets[i], timeout, log) + targets[i].AuthenticationType = s.detectAuthMethod(targets[i]) + + var authMethod string + switch targets[i].AuthenticationType { + case 0: + authMethod = "no" + case 1: + authMethod = "basic" + case 2: + authMethod = "digest" + } + + s.term.Debugf("Stream %s uses %s authentication method\n", GetCameraRTSPURL(targets[i]), authMethod) } - return targets, nil + return targets } -func attackCameraCredentials(c Curler, target Stream, credentials Credentials, resultsChan chan<- Stream, timeout time.Duration, log bool) { - for _, username := range credentials.Usernames { - for _, password := range credentials.Passwords { - ok := credAttack(c.Duphandle(), target, username, password, timeout, log) +func (s *Scanner) attackCameraCredentials(target Stream, resChan chan<- Stream) { + for _, username := range s.credentials.Usernames { + for _, password := range s.credentials.Passwords { + ok := s.credAttack(target, username, password) if ok { target.CredentialsFound = true target.Username = username target.Password = password - resultsChan <- target + resChan <- target return } } } + target.CredentialsFound = false - resultsChan <- target + resChan <- target } -func attackCameraRoute(c Curler, target Stream, routes Routes, resultsChan chan<- Stream, timeout time.Duration, log bool) { - for _, route := range routes { - ok := routeAttack(c.Duphandle(), target, route, timeout, log) +func (s *Scanner) attackCameraRoute(target Stream, resChan chan<- Stream) { + for _, route := range s.routes { + ok := s.routeAttack(target, route) if ok { target.RouteFound = true target.Route = route - resultsChan <- target + resChan <- target return } } + target.RouteFound = false - resultsChan <- target + resChan <- target } -// HACK: See https://stackoverflow.com/questions/3572397/lib-curl-in-c-disable-printing -func doNotWrite([]uint8, interface{}) bool { - return true -} +func (s *Scanner) detectAuthMethod(stream Stream) int { + c := s.curl.Duphandle() -func detectAuthMethod(c Curler, stream Stream, timeout time.Duration, enableLogs bool) int { attackURL := fmt.Sprintf( "rtsp://%s:%d/%s", stream.Address, @@ -152,42 +182,38 @@ func detectAuthMethod(c Curler, stream Stream, timeout time.Duration, enableLogs stream.Route, ) - if enableLogs { - // Debug logs when logs are enabled - c.Setopt(curl.OPT_VERBOSE, 1) - } else { - // Do not write sdp in stdout - c.Setopt(curl.OPT_WRITEFUNCTION, doNotWrite) - } + s.setCurlOptions(c) - // Do not use signals (would break multithreading) - c.Setopt(curl.OPT_NOSIGNAL, 1) - // Do not send a body in the describe request - c.Setopt(curl.OPT_NOBODY, 1) - // Send a request to the URL of the stream we want to attack - c.Setopt(curl.OPT_URL, attackURL) - // Set the RTSP STREAM URI as the stream URL - c.Setopt(curl.OPT_RTSP_STREAM_URI, attackURL) - // 2 is CURL_RTSPREQ_DESCRIBE - c.Setopt(curl.OPT_RTSP_REQUEST, 2) - // Set custom timeout - c.Setopt(curl.OPT_TIMEOUT_MS, int(timeout/time.Millisecond)) + // Send a request to the URL of the stream we want to attack. + _ = c.Setopt(curl.OPT_URL, attackURL) + // Set the RTSP STREAM URI as the stream URL. + _ = c.Setopt(curl.OPT_RTSP_STREAM_URI, attackURL) + // 2 is CURL_RTSPREQ_DESCRIBE. + _ = c.Setopt(curl.OPT_RTSP_REQUEST, 2) - // Perform the request + // Perform the request. err := c.Perform() if err != nil { + s.term.Debugf("Perform failed: %v", err) return -1 } authType, err := c.Getinfo(curl.INFO_HTTPAUTH_AVAIL) if err != nil { + s.term.Debugf("Getinfo failed: %v", err) return -1 } + if s.verbose { + s.term.Debugln("DESCRIBE", attackURL, "RTSP/1.0 >", authType) + } + return authType.(int) } -func routeAttack(c Curler, stream Stream, route string, timeout time.Duration, enableLogs bool) bool { +func (s *Scanner) routeAttack(stream Stream, route string) bool { + c := s.curl.Duphandle() + attackURL := fmt.Sprintf( "rtsp://%s:%s@%s:%d/%s", stream.Username, @@ -197,52 +223,47 @@ func routeAttack(c Curler, stream Stream, route string, timeout time.Duration, e route, ) - if enableLogs { - // Debug logs when logs are enabled - c.Setopt(curl.OPT_VERBOSE, 1) - } else { - // Do not write sdp in stdout - c.Setopt(curl.OPT_WRITEFUNCTION, doNotWrite) - } + s.setCurlOptions(c) // Set proper authentication type. - c.Setopt(curl.OPT_HTTPAUTH, stream.AuthenticationType) - c.Setopt(curl.OPT_USERPWD, fmt.Sprint(stream.Username, ":", stream.Password)) + _ = c.Setopt(curl.OPT_HTTPAUTH, stream.AuthenticationType) + _ = c.Setopt(curl.OPT_USERPWD, fmt.Sprint(stream.Username, ":", stream.Password)) - // Do not use signals (would break multithreading) - c.Setopt(curl.OPT_NOSIGNAL, 1) - // Do not send a body in the describe request - c.Setopt(curl.OPT_NOBODY, 1) - // Send a request to the URL of the stream we want to attack - c.Setopt(curl.OPT_URL, attackURL) - // Set the RTSP STREAM URI as the stream URL - c.Setopt(curl.OPT_RTSP_STREAM_URI, attackURL) - // 2 is CURL_RTSPREQ_DESCRIBE - c.Setopt(curl.OPT_RTSP_REQUEST, rtspDescribe) - // Set custom timeout - c.Setopt(curl.OPT_TIMEOUT_MS, int(timeout/time.Millisecond)) + // Send a request to the URL of the stream we want to attack. + _ = c.Setopt(curl.OPT_URL, attackURL) + // Set the RTSP STREAM URI as the stream URL. + _ = c.Setopt(curl.OPT_RTSP_STREAM_URI, attackURL) + // 2 is CURL_RTSPREQ_DESCRIBE. + _ = c.Setopt(curl.OPT_RTSP_REQUEST, rtspDescribe) - // Perform the request + // Perform the request. err := c.Perform() if err != nil { + s.term.Debugf("Perform failed: %v", err) return false } - // Get return code for the request + // Get return code for the request. rc, err := c.Getinfo(curl.INFO_RESPONSE_CODE) if err != nil { + s.term.Debugf("Getinfo failed: %v", err) return false } - // If it's a 401 or 403, it means that the credentials are wrong but the route might be okay - // If it's a 200, the stream is accessed successfully + if s.verbose { + s.term.Debugln("DESCRIBE", attackURL, "RTSP/1.0 >", rc) + } + // If it's a 401 or 403, it means that the credentials are wrong but the route might be okay. + // If it's a 200, the stream is accessed successfully. if rc == httpOK || rc == httpUnauthorized || rc == httpForbidden { return true } return false } -func credAttack(c Curler, stream Stream, username string, password string, timeout time.Duration, enableLogs bool) bool { +func (s *Scanner) credAttack(stream Stream, username string, password string) bool { + c := s.curl.Duphandle() + attackURL := fmt.Sprintf( "rtsp://%s:%s@%s:%d/%s", username, @@ -252,52 +273,48 @@ func credAttack(c Curler, stream Stream, username string, password string, timeo stream.Route, ) - if enableLogs { - // Debug logs when logs are enabled - c.Setopt(curl.OPT_VERBOSE, 1) - } else { - // Do not write sdp in stdout - c.Setopt(curl.OPT_WRITEFUNCTION, doNotWrite) - } + s.setCurlOptions(c) // Set proper authentication type. - c.Setopt(curl.OPT_HTTPAUTH, stream.AuthenticationType) - c.Setopt(curl.OPT_USERPWD, fmt.Sprint(username, ":", password)) + _ = c.Setopt(curl.OPT_HTTPAUTH, stream.AuthenticationType) + _ = c.Setopt(curl.OPT_USERPWD, fmt.Sprint(username, ":", password)) - // Do not use signals (would break multithreading) - c.Setopt(curl.OPT_NOSIGNAL, 1) - // Do not send a body in the describe request - c.Setopt(curl.OPT_NOBODY, 1) - // Send a request to the URL of the stream we want to attack - c.Setopt(curl.OPT_URL, attackURL) - // Set the RTSP STREAM URI as the stream URL - c.Setopt(curl.OPT_RTSP_STREAM_URI, attackURL) - // 2 is CURL_RTSPREQ_DESCRIBE - c.Setopt(curl.OPT_RTSP_REQUEST, 2) - // Set custom timeout - c.Setopt(curl.OPT_TIMEOUT_MS, int(timeout/time.Millisecond)) + // Send a request to the URL of the stream we want to attack. + _ = c.Setopt(curl.OPT_URL, attackURL) + // Set the RTSP STREAM URI as the stream URL. + _ = c.Setopt(curl.OPT_RTSP_STREAM_URI, attackURL) + // 2 is CURL_RTSPREQ_DESCRIBE. + _ = c.Setopt(curl.OPT_RTSP_REQUEST, 2) - // Perform the request + // Perform the request. err := c.Perform() if err != nil { + s.term.Debugf("Perform failed: %v", err) return false } - // Get return code for the request + // Get return code for the request. rc, err := c.Getinfo(curl.INFO_RESPONSE_CODE) if err != nil { + s.term.Debugf("Getinfo failed: %v", err) return false } - // If it's a 404, it means that the route is incorrect but the credentials might be okay - // If it's a 200, the stream is accessed successfully + if s.verbose { + s.term.Debugln("DESCRIBE", attackURL, "RTSP/1.0 >", rc) + } + + // If it's a 404, it means that the route is incorrect but the credentials might be okay. + // If it's a 200, the stream is accessed successfully. if rc == httpOK || rc == httpNotFound { return true } return false } -func validateStream(c Curler, stream Stream, timeout time.Duration, enableLogs bool) bool { +func (s *Scanner) validateStream(stream Stream) bool { + c := s.curl.Duphandle() + attackURL := fmt.Sprintf( "rtsp://%s:%s@%s:%d/%s", stream.Username, @@ -307,48 +324,57 @@ func validateStream(c Curler, stream Stream, timeout time.Duration, enableLogs b stream.Route, ) - if enableLogs { - // Debug logs when logs are enabled - c.Setopt(curl.OPT_VERBOSE, 1) - } else { - // Do not write sdp in stdout - c.Setopt(curl.OPT_WRITEFUNCTION, doNotWrite) - } + s.setCurlOptions(c) // Set proper authentication type. - c.Setopt(curl.OPT_HTTPAUTH, stream.AuthenticationType) - c.Setopt(curl.OPT_USERPWD, fmt.Sprint(stream.Username, ":", stream.Password)) + _ = c.Setopt(curl.OPT_HTTPAUTH, stream.AuthenticationType) + _ = c.Setopt(curl.OPT_USERPWD, fmt.Sprint(stream.Username, ":", stream.Password)) - // Do not use signals (would break multithreading) - c.Setopt(curl.OPT_NOSIGNAL, 1) - // Do not send a body in the describe request - c.Setopt(curl.OPT_NOBODY, 1) - // Send a request to the URL of the stream we want to attack - c.Setopt(curl.OPT_URL, attackURL) - // Set the RTSP STREAM URI as the stream URL - c.Setopt(curl.OPT_RTSP_STREAM_URI, attackURL) - // 2 is CURL_RTSPREQ_SETUP - c.Setopt(curl.OPT_RTSP_REQUEST, rtspSetup) - // Set custom timeout - c.Setopt(curl.OPT_TIMEOUT_MS, int(timeout/time.Millisecond)) + // Send a request to the URL of the stream we want to attack. + _ = c.Setopt(curl.OPT_URL, attackURL) + // Set the RTSP STREAM URI as the stream URL. + _ = c.Setopt(curl.OPT_RTSP_STREAM_URI, attackURL) + // 2 is CURL_RTSPREQ_SETUP. + _ = c.Setopt(curl.OPT_RTSP_REQUEST, rtspSetup) - c.Setopt(curl.OPT_RTSP_TRANSPORT, "RTP/AVP;unicast;client_port=33332-33333") + _ = c.Setopt(curl.OPT_RTSP_TRANSPORT, "RTP/AVP;unicast;client_port=33332-33333") - // Perform the request + // Perform the request. err := c.Perform() if err != nil { + s.term.Debugf("Perform failed: %v", err) return false } - // Get return code for the request + // Get return code for the request. rc, err := c.Getinfo(curl.INFO_RESPONSE_CODE) if err != nil { + s.term.Debugf("Getinfo failed: %v", err) return false } - // If it's a 200, the stream is accessed successfully + if s.verbose { + s.term.Debugln("SETUP", attackURL, "RTSP/1.0 >", rc) + } + // If it's a 200, the stream is accessed successfully. if rc == httpOK { return true } return false } + +func (s *Scanner) setCurlOptions(c Curler) { + // Do not write sdp in stdout + _ = c.Setopt(curl.OPT_WRITEFUNCTION, doNotWrite) + // Do not use signals (would break multithreading). + _ = c.Setopt(curl.OPT_NOSIGNAL, 1) + // Do not send a body in the describe request. + _ = c.Setopt(curl.OPT_NOBODY, 1) + // Set custom timeout. + _ = c.Setopt(curl.OPT_TIMEOUT_MS, int(s.timeout/time.Millisecond)) +} + +// HACK: See https://stackoverflow.com/questions/3572397/lib-curl-in-c-disable-printing +func doNotWrite([]uint8, interface{}) bool { + return true +} diff --git a/attack_test.go b/attack_test.go index f2e0062..fbb271e 100644 --- a/attack_test.go +++ b/attack_test.go @@ -1,12 +1,14 @@ -package cmrdr +package cameradar import ( "errors" + "io/ioutil" "testing" "time" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/mock" + "github.com/ullaakut/disgo" curl "github.com/ullaakut/go-curl" ) @@ -33,35 +35,126 @@ func (m *CurlerMock) Duphandle() Curler { return m } +func TestAttack(t *testing.T) { + var ( + stream1 = Stream{ + Device: "fakeDevice", + Address: "fakeAddress", + Port: 1337, + } + + stream2 = Stream{ + Device: "fakeDevice", + Address: "differentFakeAddress", + Port: 1337, + } + + fakeTargets = []Stream{stream1, stream2} + fakeRoutes = Routes{"live.sdp", "media.amp"} + fakeCredentials = Credentials{ + Usernames: []string{"admin", "root"}, + Passwords: []string{"12345", "root"}, + } + ) + + tests := []struct { + description string + + targets []Stream + + performErr error + + expectedStreams []Stream + expectedErr error + }{ + { + description: "inverted RTSP RFC", + + targets: fakeTargets, + + performErr: errors.New("dummy error"), + + expectedStreams: fakeTargets, + }, + { + description: "attack works", + + targets: fakeTargets, + + expectedStreams: fakeTargets, + }, + { + description: "no targets", + + targets: nil, + + expectedStreams: nil, + expectedErr: errors.New("unable to attack empty list of targets"), + }, + } + + for _, test := range tests { + t.Run(test.description, func(t *testing.T) { + curlerMock := &CurlerMock{} + + if len(test.targets) != 0 { + curlerMock.On("Setopt", mock.Anything, mock.Anything).Return(nil) + curlerMock.On("Perform").Return(test.performErr) + if test.performErr == nil { + curlerMock.On("Getinfo", mock.Anything).Return(200, nil) + } + } + + scanner := &Scanner{ + term: disgo.NewTerminal(disgo.WithDefaultOutput(ioutil.Discard)), + curl: curlerMock, + timeout: time.Millisecond, + verbose: false, + credentials: fakeCredentials, + routes: fakeRoutes, + } + + results, err := scanner.Attack(test.targets) + + assert.Equal(t, test.expectedErr, err) + + assert.Len(t, results, len(test.expectedStreams)) + + curlerMock.AssertExpectations(t) + }) + } +} + func TestAttackCredentials(t *testing.T) { - validStream1 := Stream{ - Device: "fakeDevice", - Address: "fakeAddress", - Port: 1337, - } + var ( + stream1 = Stream{ + Device: "fakeDevice", + Address: "fakeAddress", + Port: 1337, + Available: true, + } - validStream2 := Stream{ - Device: "fakeDevice", - Address: "differentFakeAddress", - Port: 1337, - } + stream2 = Stream{ + Device: "fakeDevice", + Address: "differentFakeAddress", + Port: 1337, + Available: true, + } - invalidStream := Stream{ - Device: "InvalidDevice", - } + fakeTargets = []Stream{stream1, stream2} + fakeCredentials = Credentials{ + Usernames: []string{"admin", "root"}, + Passwords: []string{"12345", "root"}, + } + ) - fakeTargets := []Stream{validStream1, validStream2} - invalidTargets := []Stream{invalidStream} - fakeCredentials := Credentials{ - Usernames: []string{"admin", "root"}, - Passwords: []string{"12345", "root"}, - } + tests := []struct { + description string - testCases := []struct { targets []Stream credentials Credentials timeout time.Duration - log bool + verbose bool status int @@ -70,10 +163,10 @@ func TestAttackCredentials(t *testing.T) { invalidTargets bool expectedStreams []Stream - expectedErrMsg string }{ - // Credentials found { + description: "Credentials found", + targets: fakeTargets, credentials: fakeCredentials, timeout: 1 * time.Millisecond, @@ -82,8 +175,9 @@ func TestAttackCredentials(t *testing.T) { expectedStreams: fakeTargets, }, - // Camera accessed { + description: "Camera accessed", + targets: fakeTargets, credentials: fakeCredentials, timeout: 1 * time.Millisecond, @@ -92,19 +186,9 @@ func TestAttackCredentials(t *testing.T) { expectedStreams: fakeTargets, }, - // Invalid targets { - targets: invalidTargets, - credentials: fakeCredentials, - timeout: 1 * time.Millisecond, + description: "curl perform fails", - invalidTargets: true, - - expectedErrMsg: "invalid targets", - expectedStreams: invalidTargets, - }, - // curl perform fails - { targets: fakeTargets, credentials: fakeCredentials, timeout: 1 * time.Millisecond, @@ -113,8 +197,9 @@ func TestAttackCredentials(t *testing.T) { expectedStreams: fakeTargets, }, - // curl getinfo fails { + description: "curl getinfo fails", + targets: fakeTargets, credentials: fakeCredentials, timeout: 1 * time.Millisecond, @@ -123,92 +208,88 @@ func TestAttackCredentials(t *testing.T) { expectedStreams: fakeTargets, }, - // Logging disabled { + description: "Verbose mode disabled", + targets: fakeTargets, credentials: fakeCredentials, timeout: 1 * time.Millisecond, - log: false, + verbose: false, status: 403, expectedStreams: fakeTargets, }, - // Logging enabled { + description: "Verbose mode enabled", + targets: fakeTargets, credentials: fakeCredentials, timeout: 1 * time.Millisecond, - log: true, + verbose: true, status: 403, expectedStreams: fakeTargets, }, } - for i, test := range testCases { - curlerMock := &CurlerMock{} - if !test.invalidTargets { - curlerMock.On("Setopt", mock.Anything, mock.Anything).Return(nil) - curlerMock.On("Perform").Return(test.performErr) - if test.performErr == nil { - curlerMock.On("Getinfo", mock.Anything).Return(test.status, test.getInfoErr) - } - } + for _, test := range tests { + t.Run(test.description, func(t *testing.T) { + curlerMock := &CurlerMock{} - results, err := AttackCredentials(curlerMock, test.targets, test.credentials, test.timeout, test.log) - - if len(test.expectedErrMsg) > 0 { - if err == nil { - t.Errorf("unexpected success in AttackCredentials test, iteration %d. expected error: %s\n", i, test.expectedErrMsg) - } - assert.Contains(t, err.Error(), test.expectedErrMsg, "wrong error message") - } else { - if err != nil { - t.Errorf("unexpected error in AttackCredentials test, iteration %d: %v\n", i, err) - } - for _, stream := range test.expectedStreams { - foundStream := false - for _, result := range results { - if result.Address == stream.Address && result.Device == stream.Device && result.Port == stream.Port { - foundStream = true - } + if !test.invalidTargets { + curlerMock.On("Setopt", mock.Anything, mock.Anything).Return(nil) + curlerMock.On("Perform").Return(test.performErr) + if test.performErr == nil { + curlerMock.On("Getinfo", mock.Anything).Return(test.status, test.getInfoErr) } - assert.Equal(t, true, foundStream, "wrong streams parsed") } - } - assert.Equal(t, len(test.expectedStreams), len(results), "wrong streams parsed") - curlerMock.AssertExpectations(t) + + scanner := &Scanner{ + term: disgo.NewTerminal(disgo.WithDefaultOutput(ioutil.Discard)), + curl: curlerMock, + timeout: test.timeout, + verbose: test.verbose, + credentials: test.credentials, + } + + results := scanner.AttackCredentials(test.targets) + + assert.Len(t, results, len(test.expectedStreams)) + + curlerMock.AssertExpectations(t) + }) } } func TestAttackRoute(t *testing.T) { - validStream1 := Stream{ - Device: "fakeDevice", - Address: "fakeAddress", - Port: 1337, - } + var ( + stream1 = Stream{ + Device: "fakeDevice", + Address: "fakeAddress", + Port: 1337, + Available: true, + } - validStream2 := Stream{ - Device: "fakeDevice", - Address: "differentFakeAddress", - Port: 1337, - } + stream2 = Stream{ + Device: "fakeDevice", + Address: "differentFakeAddress", + Port: 1337, + Available: true, + } - invalidStream := Stream{ - Device: "InvalidDevice", - } + fakeTargets = []Stream{stream1, stream2} + fakeRoutes = Routes{"live.sdp", "media.amp"} + ) - fakeTargets := []Stream{validStream1, validStream2} - fakeRoutes := Routes{"live.sdp", "media.amp"} - invalidTargets := []Stream{invalidStream} + tests := []struct { + description string - testCases := []struct { targets []Stream routes Routes timeout time.Duration - log bool + verbose bool status int @@ -217,10 +298,11 @@ func TestAttackRoute(t *testing.T) { invalidTargets bool expectedStreams []Stream - expectedErrMsg string + expectedErr error }{ - // Route found { + description: "Route found", + targets: fakeTargets, routes: fakeRoutes, timeout: 1 * time.Millisecond, @@ -229,8 +311,9 @@ func TestAttackRoute(t *testing.T) { expectedStreams: fakeTargets, }, - // Route found { + description: "Route found", + targets: fakeTargets, routes: fakeRoutes, timeout: 1 * time.Millisecond, @@ -239,8 +322,9 @@ func TestAttackRoute(t *testing.T) { expectedStreams: fakeTargets, }, - // Camera accessed { + description: "Camera accessed", + targets: fakeTargets, routes: fakeRoutes, timeout: 1 * time.Millisecond, @@ -249,18 +333,9 @@ func TestAttackRoute(t *testing.T) { expectedStreams: fakeTargets, }, - // Invalid targets { - targets: invalidTargets, - routes: fakeRoutes, - timeout: 1 * time.Millisecond, - invalidTargets: true, + description: "curl perform fails", - expectedErrMsg: "invalid targets", - expectedStreams: invalidTargets, - }, - // curl perform fails - { targets: fakeTargets, routes: fakeRoutes, timeout: 1 * time.Millisecond, @@ -269,8 +344,9 @@ func TestAttackRoute(t *testing.T) { expectedStreams: fakeTargets, }, - // curl getinfo fails { + description: "curl getinfo fails", + targets: fakeTargets, routes: fakeRoutes, timeout: 1 * time.Millisecond, @@ -279,97 +355,82 @@ func TestAttackRoute(t *testing.T) { expectedStreams: fakeTargets, }, - // Logs disabled { + description: "verbose mode disabled", + targets: fakeTargets, routes: fakeRoutes, timeout: 1 * time.Millisecond, - log: false, + verbose: false, expectedStreams: fakeTargets, }, - // Logs enabled { + description: "verbose mode enabled", + targets: fakeTargets, routes: fakeRoutes, timeout: 1 * time.Millisecond, - log: true, + verbose: true, expectedStreams: fakeTargets, }, } - for i, test := range testCases { - curlerMock := &CurlerMock{} + for _, test := range tests { + t.Run(test.description, func(t *testing.T) { + curlerMock := &CurlerMock{} - if !test.invalidTargets { - curlerMock.On("Setopt", mock.Anything, mock.Anything).Return(nil) - curlerMock.On("Perform").Return(test.performErr) - if test.performErr == nil { - curlerMock.On("Getinfo", mock.Anything).Return(test.status, test.getInfoErr) - } - } - - results, err := AttackRoute(curlerMock, test.targets, test.routes, test.timeout, test.log) - - if len(test.expectedErrMsg) > 0 { - if err == nil { - t.Errorf("unexpected success in AttackRoute test, iteration %d. expected error: %s\n", i, test.expectedErrMsg) - } - - assert.Contains(t, err.Error(), test.expectedErrMsg, "wrong error message") - } else { - if err != nil { - t.Errorf("unexpected error in AttackRoute test, iteration %d: %v\n", i, err) - } - - for _, stream := range test.expectedStreams { - foundStream := false - for _, result := range results { - if result.Address == stream.Address && result.Device == stream.Device && result.Port == stream.Port { - foundStream = true - } + if !test.invalidTargets { + curlerMock.On("Setopt", mock.Anything, mock.Anything).Return(nil) + curlerMock.On("Perform").Return(test.performErr) + if test.performErr == nil { + curlerMock.On("Getinfo", mock.Anything).Return(test.status, test.getInfoErr) } - - assert.Equal(t, true, foundStream, "wrong streams parsed") } - } - assert.Equal(t, len(test.expectedStreams), len(results), "wrong streams parsed") + scanner := &Scanner{ + term: disgo.NewTerminal(disgo.WithDefaultOutput(ioutil.Discard)), + curl: curlerMock, + timeout: test.timeout, + verbose: test.verbose, + routes: test.routes, + } - curlerMock.AssertExpectations(t) + results := scanner.AttackRoute(test.targets) + + assert.Len(t, results, len(test.expectedStreams)) + + curlerMock.AssertExpectations(t) + }) } } func TestValidateStreams(t *testing.T) { - validStream1 := Stream{ - Device: "fakeDevice", - Address: "fakeAddress", - Port: 1337, - Available: true, - } + var ( + stream1 = Stream{ + Device: "fakeDevice", + Address: "fakeAddress", + Port: 1337, + Available: true, + } - validStream2 := Stream{ - Device: "fakeDevice", - Address: "differentFakeAddress", - Port: 1337, - Available: true, - } + stream2 = Stream{ + Device: "fakeDevice", + Address: "differentFakeAddress", + Port: 1337, + Available: true, + } - unavailableStream := Stream{ - Device: "fakeDevice", - Available: false, - } + fakeTargets = []Stream{stream1, stream2} + ) - fakeTargets := []Stream{validStream1, validStream2} - unavailableTargets := []Stream{unavailableStream} - - testCases := []struct { - desc string + tests := []struct { + description string targets []Stream timeout time.Duration - log bool + verbose bool status int @@ -377,11 +438,9 @@ func TestValidateStreams(t *testing.T) { getInfoErr error expectedStreams []Stream - expectedErrMsg string }{ - // Route found { - desc: "route found", + description: "route found", targets: fakeTargets, timeout: 1 * time.Millisecond, @@ -390,9 +449,8 @@ func TestValidateStreams(t *testing.T) { expectedStreams: fakeTargets, }, - // Route found { - desc: "route found", + description: "route found", targets: fakeTargets, timeout: 1 * time.Millisecond, @@ -401,9 +459,8 @@ func TestValidateStreams(t *testing.T) { expectedStreams: fakeTargets, }, - // Camera accessed { - desc: "camera accessed", + description: "camera accessed", targets: fakeTargets, timeout: 1 * time.Millisecond, @@ -412,20 +469,18 @@ func TestValidateStreams(t *testing.T) { expectedStreams: fakeTargets, }, - // Unavailable stream { - desc: "unavailable stream", + description: "unavailable stream", - targets: unavailableTargets, + targets: fakeTargets, timeout: 1 * time.Millisecond, status: 400, - expectedStreams: unavailableTargets, + expectedStreams: fakeTargets, }, - // curl perform fails { - desc: "curl perform fails", + description: "curl perform fails", targets: fakeTargets, timeout: 1 * time.Millisecond, @@ -434,9 +489,8 @@ func TestValidateStreams(t *testing.T) { expectedStreams: fakeTargets, }, - // curl getinfo fails { - desc: "curl getinfo fails", + description: "curl getinfo fails", targets: fakeTargets, timeout: 1 * time.Millisecond, @@ -445,63 +499,50 @@ func TestValidateStreams(t *testing.T) { expectedStreams: fakeTargets, }, - // Logs disabled { - desc: "logs disabled", + description: "verbose disabled", targets: fakeTargets, timeout: 1 * time.Millisecond, - log: false, + verbose: false, expectedStreams: fakeTargets, }, - // Logs enabled { - desc: "logs enabled", + description: "verbose enabled", targets: fakeTargets, timeout: 1 * time.Millisecond, - log: true, + verbose: true, expectedStreams: fakeTargets, }, } - for i, tC := range testCases { - t.Run(tC.desc, func(t *testing.T) { + + for _, test := range tests { + t.Run(test.description, func(t *testing.T) { curlerMock := &CurlerMock{} curlerMock.On("Setopt", mock.Anything, mock.Anything).Return(nil) - curlerMock.On("Perform").Return(tC.performErr) - if tC.performErr == nil { - curlerMock.On("Getinfo", mock.Anything).Return(tC.status, tC.getInfoErr) + curlerMock.On("Perform").Return(test.performErr) + if test.performErr == nil { + curlerMock.On("Getinfo", mock.Anything).Return(test.status, test.getInfoErr) } - results, err := ValidateStreams(curlerMock, tC.targets, tC.timeout, tC.log) - - if len(tC.expectedErrMsg) > 0 { - if err == nil { - t.Errorf("unexpected success in ValidateStream test, iteration %d. expected error: %s\n", i, tC.expectedErrMsg) - } - - assert.Contains(t, err.Error(), tC.expectedErrMsg, "wrong error message") - } else { - if err != nil { - t.Errorf("unexpected error in ValidateStream test, iteration %d: %v\n", i, err) - } - - for _, stream := range tC.expectedStreams { - foundStream := false - for _, result := range results { - if result.Address == stream.Address && result.Device == stream.Device && result.Port == stream.Port { - foundStream = true - } - } - - assert.Equal(t, true, foundStream, "wrong streams parsed") - } + scanner := &Scanner{ + term: disgo.NewTerminal(disgo.WithDefaultOutput(ioutil.Discard)), + curl: curlerMock, + timeout: test.timeout, + verbose: test.verbose, } - assert.Equal(t, len(tC.expectedStreams), len(results), "wrong streams parsed") + results := scanner.ValidateStreams(test.targets) + + assert.Equal(t, len(test.expectedStreams), len(results)) + + for _, expectedStream := range test.expectedStreams { + assert.Contains(t, results, expectedStream) + } curlerMock.AssertExpectations(t) }) @@ -509,28 +550,30 @@ func TestValidateStreams(t *testing.T) { } func TestDetectAuthenticationType(t *testing.T) { - validStream1 := Stream{ - Device: "fakeDevice", - Address: "fakeAddress", - Port: 1337, - Available: true, - } + var ( + stream1 = Stream{ + Device: "fakeDevice", + Address: "fakeAddress", + Port: 1337, + Available: true, + } - validStream2 := Stream{ - Device: "fakeDevice", - Address: "differentFakeAddress", - Port: 1337, - Available: true, - } + stream2 = Stream{ + Device: "fakeDevice", + Address: "differentFakeAddress", + Port: 1337, + Available: true, + } - fakeTargets := []Stream{validStream1, validStream2} + fakeTargets = []Stream{stream1, stream2} + ) - testCases := []struct { - desc string + tests := []struct { + description string targets []Stream timeout time.Duration - log bool + verbose bool status int @@ -538,11 +581,39 @@ func TestDetectAuthenticationType(t *testing.T) { getInfoErr error expectedStreams []Stream - expectedErrMsg string }{ - // curl getinfo fails { - desc: "curl getinfo fails", + description: "no auth enabled", + + targets: fakeTargets, + timeout: 1 * time.Millisecond, + + status: 0, + + expectedStreams: fakeTargets, + }, + { + description: "basic auth enabled", + + targets: fakeTargets, + timeout: 1 * time.Millisecond, + + status: 1, + + expectedStreams: fakeTargets, + }, + { + description: "digest auth enabled", + + targets: fakeTargets, + timeout: 1 * time.Millisecond, + + status: 2, + + expectedStreams: fakeTargets, + }, + { + description: "curl getinfo fails", targets: fakeTargets, timeout: 1 * time.Millisecond, @@ -551,9 +622,8 @@ func TestDetectAuthenticationType(t *testing.T) { expectedStreams: fakeTargets, }, - // curl perform fails { - desc: "curl perform fails", + description: "curl perform fails", targets: fakeTargets, timeout: 1 * time.Millisecond, @@ -562,63 +632,50 @@ func TestDetectAuthenticationType(t *testing.T) { expectedStreams: fakeTargets, }, - // Logs disabled { - desc: "logs disabled", + description: "verbose disabled", targets: fakeTargets, timeout: 1 * time.Millisecond, - log: false, + verbose: false, expectedStreams: fakeTargets, }, - // Logs enabled { - desc: "logs enabled", + description: "verbose enabled", targets: fakeTargets, timeout: 1 * time.Millisecond, - log: true, + verbose: true, expectedStreams: fakeTargets, }, } - for i, tC := range testCases { - t.Run(tC.desc, func(t *testing.T) { + + for _, test := range tests { + t.Run(test.description, func(t *testing.T) { curlerMock := &CurlerMock{} curlerMock.On("Setopt", mock.Anything, mock.Anything).Return(nil) - curlerMock.On("Perform").Return(tC.performErr) - if tC.performErr == nil { - curlerMock.On("Getinfo", mock.Anything).Return(tC.status, tC.getInfoErr) + curlerMock.On("Perform").Return(test.performErr) + if test.performErr == nil { + curlerMock.On("Getinfo", mock.Anything).Return(test.status, test.getInfoErr) } - results, err := DetectAuthMethods(curlerMock, tC.targets, tC.timeout, tC.log) - - if len(tC.expectedErrMsg) > 0 { - if err == nil { - t.Errorf("unexpected success in DetectAuthMethods test, iteration %d. expected error: %s\n", i, tC.expectedErrMsg) - } - - assert.Contains(t, err.Error(), tC.expectedErrMsg, "wrong error message") - } else { - if err != nil { - t.Errorf("unexpected error in DetectAuthMethods test, iteration %d: %v\n", i, err) - } - - for _, stream := range tC.expectedStreams { - foundStream := false - for _, result := range results { - if result.Address == stream.Address && result.Device == stream.Device && result.Port == stream.Port { - foundStream = true - } - } - - assert.Equal(t, true, foundStream, "wrong streams parsed") - } + scanner := &Scanner{ + term: disgo.NewTerminal(disgo.WithDefaultOutput(ioutil.Discard)), + curl: curlerMock, + timeout: test.timeout, + verbose: test.verbose, } - assert.Equal(t, len(tC.expectedStreams), len(results), "wrong streams parsed") + results := scanner.DetectAuthMethods(test.targets) + + assert.Equal(t, len(test.expectedStreams), len(results)) + + for _, expectedStream := range test.expectedStreams { + assert.Contains(t, results, expectedStream) + } curlerMock.AssertExpectations(t) }) diff --git a/cmrdr.go b/cameradar.go similarity index 86% rename from cmrdr.go rename to cameradar.go index d6ac420..491b795 100644 --- a/cmrdr.go +++ b/cameradar.go @@ -1,4 +1,4 @@ -// Package cmrdr provides methods to be able to discover and +// Package cameradar provides methods to be able to discover and // attack RTSP streams easily. RTSP streams are used by most // IP Cameras, often for surveillance. // @@ -11,4 +11,4 @@ // access cameras, or running their own network scan, this // library allows to use simple and performant methods to // attack streams. -package cmrdr +package cameradar diff --git a/cameradar/cameradar.go b/cameradar/cameradar.go deleted file mode 100644 index 491a3e3..0000000 --- a/cameradar/cameradar.go +++ /dev/null @@ -1,255 +0,0 @@ -package main - -import ( - "errors" - "fmt" - "os" - "strings" - "time" - - "github.com/gernest/wow" - "github.com/gernest/wow/spin" - "github.com/spf13/pflag" - "github.com/spf13/viper" - cmrdr "github.com/ullaakut/cameradar" - log "github.com/ullaakut/disgo" - "github.com/ullaakut/disgo/style" - curl "github.com/ullaakut/go-curl" -) - -type options struct { - Targets []string - Ports []string - Routes string - Credentials string - Speed int - Timeout int - EnableLogs bool -} - -func parseArguments() error { - viper.SetEnvPrefix("cameradar") - viper.SetEnvKeyReplacer(strings.NewReplacer("-", "_")) - - pflag.StringSliceP("targets", "t", []string{}, "The targets on which to scan for open RTSP streams - required (ex: 172.16.100.0/24)") - pflag.StringSliceP("ports", "p", []string{"554", "5554", "8554"}, "The ports on which to search for RTSP streams") - pflag.StringP("custom-routes", "r", "/src/github.com/ullaakut/cameradar/dictionaries/routes", "The path on which to load a custom routes dictionary") - pflag.StringP("custom-credentials", "c", "/src/github.com/ullaakut/cameradar/dictionaries/credentials.json", "The path on which to load a custom credentials JSON dictionary") - pflag.IntP("speed", "s", 4, "The nmap speed preset to use for discovery") - pflag.IntP("timeout", "T", 2000, "The timeout in miliseconds to use for attack attempts") - pflag.BoolP("log", "l", false, "Enable the logs for nmap's output to stdout") - pflag.BoolP("help", "h", false, "displays this help message") - - viper.AutomaticEnv() - - pflag.Parse() - - err := viper.BindPFlags(pflag.CommandLine) - if err != nil { - return err - } - - if viper.GetBool("help") { - pflag.Usage() - fmt.Println("\nExamples of usage:") - fmt.Println("\tScanning your home network for RTSP streams:\tcameradar -t 192.168.0.0/24") - fmt.Println("\tScanning a remote camera on a specific port:\tcameradar -t 172.178.10.14 -p 18554 -s 2") - fmt.Println("\tScanning an unstable remote network: \t\tcameradar -t 172.178.10.14/24 -s 1 --timeout 10000 -l") - os.Exit(0) - } - - if viper.GetStringSlice("targets") == nil { - return errors.New("targets (-t, --targets) argument required\n examples:\n - 172.16.100.0/24\n - localhost\n - 8.8.8.8") - } - - return nil -} - -func main() { - var options options - term := log.NewTerminal() - - err := parseArguments() - if err != nil { - printErr(term, err) - } - - options.Credentials = viper.GetString("custom-credentials") - options.EnableLogs = viper.GetBool("log") || viper.GetBool("logging") - options.Ports = viper.GetStringSlice("ports") - options.Routes = viper.GetString("custom-routes") - options.Speed = viper.GetInt("speed") - options.Timeout = viper.GetInt("timeout") - options.Targets = viper.GetStringSlice("targets") - - w := startSpinner(options.EnableLogs) - - if len(options.Targets) == 1 { - options.Targets, err = cmrdr.ParseTargetsFile(options.Targets[0]) - if err != nil { - printErr(term, err) - } - } - - err = curl.GlobalInit(curl.GLOBAL_ALL) - handle := curl.EasyInit() - if err != nil || handle == nil { - printErr(term, errors.New("libcurl initialization failed")) - } - - c := &cmrdr.Curl{CURL: handle} - defer curl.GlobalCleanup() - - updateSpinner(w, "Loading dictionaries...", options.EnableLogs) - gopath := os.Getenv("GOPATH") - options.Credentials = strings.Replace(options.Credentials, "", gopath, 1) - options.Routes = strings.Replace(options.Routes, "", gopath, 1) - - credentials, err := cmrdr.LoadCredentials(options.Credentials) - if err != nil { - printErr(term, fmt.Errorf("Invalid credentials dictionary %q: %v", options.Credentials, err)) - return - } - - routes, err := cmrdr.LoadRoutes(options.Routes) - if err != nil { - printErr(term, fmt.Errorf("Invalid routes dictionary %q: %v", options.Routes, err)) - return - } - - updateSpinner(w, "Scanning the network...", options.EnableLogs) - streams, err := cmrdr.Discover(options.Targets, options.Ports, options.Speed) - if err != nil && len(streams) > 0 { - printErr(term, err) - } - - // Most cameras will be accessed successfully with these two attacks - updateSpinner(w, "Found "+fmt.Sprint(len(streams))+" streams. Attacking their routes...", options.EnableLogs) - streams, err = cmrdr.AttackRoute(c, streams, routes, time.Duration(options.Timeout)*time.Millisecond, options.EnableLogs) - if err != nil && len(streams) > 0 { - printErr(term, err) - } - - updateSpinner(w, "Found "+fmt.Sprint(len(streams))+" streams. Detecting their authentication methods...", options.EnableLogs) - streams, err = cmrdr.DetectAuthMethods(c, streams, time.Duration(options.Timeout)*time.Millisecond, options.EnableLogs) - - updateSpinner(w, "Found "+fmt.Sprint(len(streams))+" streams. Attacking their credentials...", options.EnableLogs) - streams, err = cmrdr.AttackCredentials(c, streams, credentials, time.Duration(options.Timeout)*time.Millisecond, options.EnableLogs) - if err != nil && len(streams) > 0 { - printErr(term, err) - } - - // But some cameras run GST RTSP Server which prioritizes 401 over 404 contrary to most cameras. - // For these cameras, running another route attack will solve the problem. - for _, stream := range streams { - if !stream.RouteFound || !stream.CredentialsFound { - updateSpinner(w, "Found "+fmt.Sprint(len(streams))+" streams. Final attack...", options.EnableLogs) - streams, err = cmrdr.AttackRoute(c, streams, routes, time.Duration(options.Timeout)*time.Millisecond, options.EnableLogs) - if err != nil && len(streams) > 0 { - printErr(term, err) - } - - break - } - } - - updateSpinner(w, "Found "+fmt.Sprint(len(streams))+" streams. Validating their availability...", options.EnableLogs) - streams, err = cmrdr.ValidateStreams(c, streams, time.Duration(options.Timeout)*time.Millisecond, options.EnableLogs) - if err != nil && len(streams) > 0 { - printErr(term, err) - } - - clearOutput(w, options.EnableLogs) - - prettyPrint(term, streams) -} - -func prettyPrint(term *log.Terminal, streams []cmrdr.Stream) { - success := 0 - if len(streams) == 0 { - term.Infof("%s No streams were found. Please make sure that your target is on an accessible network.\n", style.Failure(style.SymbolCross)) - } - - for _, stream := range streams { - if stream.CredentialsFound && stream.RouteFound && stream.Available { - term.Infof("%s\tDevice RTSP URL:\t%s\n", style.Success(style.SymbolRightTriangle), style.Link(cmrdr.GetCameraRTSPURL(stream))) - success++ - } else { - term.Infof("%s\tAdmin panel URL:\t%s You can use this URL to try attacking the camera's admin panel instead.\n", style.Failure(style.SymbolCross), style.Link(cmrdr.GetCameraAdminPanelURL(stream))) - } - - if len(stream.Device) > 0 { - term.Infof("\tDevice model:\t\t%s\n\n", stream.Device) - } - - if stream.Available { - term.Infof("\tAvailable:\t\t%s\n", style.Success(style.SymbolCheck)) - } else { - term.Infof("\tAvailable:\t\t%s\n", style.Failure(style.SymbolCross)) - } - - term.Infof("\tIP address:\t\t%s\n", stream.Address) - term.Infof("\tRTSP port:\t\t%d\n", stream.Port) - - switch stream.AuthenticationType { - case curl.AUTH_NONE: - term.Infoln("\tThis camera does not require authentication") - case curl.AUTH_BASIC: - term.Infoln("\tAuth type:\t\tbasic") - case curl.AUTH_DIGEST: - term.Infoln("\tAuth type:\t\tdigest") - } - - if stream.CredentialsFound { - term.Infof("\tUsername:\t\t%s\n", style.Success(stream.Username)) - term.Infof("\tPassword:\t\t%s\n", style.Success(stream.Password)) - } else { - term.Infof("\tUsername:\t\t%s\n", style.Failure("not found")) - term.Infof("\tPassword:\t\t%s\n", style.Failure("not found")) - } - - if stream.RouteFound { - term.Infof("\tRTSP route:\t\t%s\n\n\n", style.Success("/"+stream.Route)) - } else { - term.Infof("\tRTSP route:\t\t%s\n\n\n", style.Failure("not found")) - } - } - - if success > 1 { - term.Infof("%s Successful attack: %s devices were accessed", style.Success(style.SymbolCheck), style.Success(len(streams))) - } else if success == 1 { - term.Infof("%s Successful attack: %s device was accessed", style.Success(style.SymbolCheck), style.Success(len(streams))) - } else { - term.Infof("%s Streams were found but none were accessed. They are most likely configured with secure credentials and routes. You can try adding entries to the dictionary or generating your own in order to attempt a bruteforce attack on the cameras.\n", style.Failure("\xE2\x9C\x96")) - } -} - -func printErr(term *log.Terminal, err error) { - term.Errorln(style.Failure(style.SymbolCross), err) - os.Exit(1) -} - -func updateSpinner(w *wow.Wow, text string, disabled bool) { - if !disabled { - w.Text(" " + text) - } -} - -func startSpinner(disabled bool) *wow.Wow { - if !disabled { - w := wow.New(os.Stdout, spin.Get(spin.Dots), " Loading dictionaries...") - w.Start() - return w - } - return nil -} - -// HACK: Waiting for a fix to issue -// https://github.com/gernest/wow/issues/5 -func clearOutput(w *wow.Wow, disabled bool) { - if !disabled { - w.Text("\b") - time.Sleep(80 * time.Millisecond) - w.Stop() - } -} diff --git a/cmd/cameradar/cameradar.go b/cmd/cameradar/cameradar.go new file mode 100644 index 0000000..8d57299 --- /dev/null +++ b/cmd/cameradar/cameradar.go @@ -0,0 +1,92 @@ +package main + +import ( + "errors" + "fmt" + "os" + "strings" + "time" + + "github.com/spf13/pflag" + "github.com/spf13/viper" + "github.com/ullaakut/cameradar" + "github.com/ullaakut/disgo" + "github.com/ullaakut/disgo/style" +) + +func parseArguments() error { + viper.SetEnvPrefix("cameradar") + viper.SetEnvKeyReplacer(strings.NewReplacer("-", "_")) + + pflag.StringSliceP("targets", "t", []string{}, "The targets on which to scan for open RTSP streams - required (ex: 172.16.100.0/24)") + pflag.StringSliceP("ports", "p", []string{"554", "5554", "8554"}, "The ports on which to search for RTSP streams") + pflag.StringP("custom-routes", "r", "/src/github.com/ullaakut/cameradar/dictionaries/routes", "The path on which to load a custom routes dictionary") + pflag.StringP("custom-credentials", "c", "/src/github.com/ullaakut/cameradar/dictionaries/credentials.json", "The path on which to load a custom credentials JSON dictionary") + pflag.IntP("speed", "s", 4, "The nmap speed preset to use for discovery") + pflag.DurationP("timeout", "T", 2*time.Second, "The timeout in miliseconds to use for attack attempts") + pflag.BoolP("debug", "d", true, "Enable the debug logs") + pflag.BoolP("verbose", "v", false, "Enable the verbose logs") + pflag.BoolP("help", "h", false, "displays this help message") + + viper.AutomaticEnv() + + pflag.Parse() + + err := viper.BindPFlags(pflag.CommandLine) + if err != nil { + return err + } + + if viper.GetBool("help") { + pflag.Usage() + fmt.Println("\nExamples of usage:") + fmt.Println("\tScanning your home network for RTSP streams:\tcameradar -t 192.168.0.0/24") + fmt.Println("\tScanning a remote camera on a specific port:\tcameradar -t 172.178.10.14 -p 18554 -s 2") + fmt.Println("\tScanning an unstable remote network: \t\tcameradar -t 172.178.10.14/24 -s 1 --timeout 10000 -l") + os.Exit(0) + } + + if viper.GetStringSlice("targets") == nil { + return errors.New("targets (-t, --targets) argument required\n examples:\n - 172.16.100.0/24\n - localhost\n - 8.8.8.8") + } + + return nil +} + +func main() { + err := parseArguments() + if err != nil { + printErr(err) + } + + c, err := cameradar.New( + cameradar.WithTargets(viper.GetStringSlice("targets")), + cameradar.WithPorts(viper.GetStringSlice("ports")), + cameradar.WithDebug(viper.GetBool("debug")), + cameradar.WithVerbose(viper.GetBool("verbose")), + cameradar.WithCustomCredentials(viper.GetString("custom-credentials")), + cameradar.WithCustomRoutes(viper.GetString("custom-routes")), + cameradar.WithSpeed(viper.GetInt("speed")), + cameradar.WithTimeout(viper.GetDuration("timeout")), + ) + if err != nil { + printErr(err) + } + + scanResult, err := c.Scan() + if err != nil { + printErr(err) + } + + streams, err := c.Attack(scanResult) + if err != nil { + printErr(err) + } + + c.PrintStreams(streams) +} + +func printErr(err error) { + disgo.Errorln(style.Failure(style.SymbolCross), err) + os.Exit(1) +} diff --git a/curl.go b/curl.go index e9c7d7b..7341a5a 100644 --- a/curl.go +++ b/curl.go @@ -1,4 +1,4 @@ -package cmrdr +package cameradar import ( curl "github.com/ullaakut/go-curl" diff --git a/curl_test.go b/curl_test.go index 7728d4c..fc4074a 100644 --- a/curl_test.go +++ b/curl_test.go @@ -1,4 +1,4 @@ -package cmrdr +package cameradar import ( "reflect" diff --git a/dictionaries/routes b/dictionaries/routes index ab982a6..7aa27e0 100644 --- a/dictionaries/routes +++ b/dictionaries/routes @@ -1,5 +1,4 @@ -/live/ch01_0 0/1:1/main 0/usrnm:pwd/main 0/video1 @@ -11,22 +10,6 @@ 12 125 666 -AVStream1_1 -CAM_ID.password.mp2 -CH001.sdp -GetData.cgi -HighResolutionVideo -LowResolutionVideo -MediaInput/h264 -MediaInput/mpeg4 -ONVIF/MediaInput -ONVIF/MediaInput?profile=4_def_profile6 -StdCh1 -Streaming/Channels/1 -Streaming/Unicast/channels/101 -StreamingSetting?version=1.0&action=getRTSPStream&ChannelID=1&ChannelName=Channel1 -VideoInput/1/h264/1 -VideoInput/1/mpeg4/1 access_code access_name_for_stream_1_to_5 api/mjpegvideo.cgi @@ -34,10 +17,12 @@ av0_0 av2 avc avn=2 +AVStream1_1 axis-media/media.amp axis-media/media.amp?camera=1 axis-media/media.amp?videocodec=h264 cam +CAM_ID.password.mp2 cam/realmonitor cam/realmonitor?channel=0&subtype=0 cam/realmonitor?channel=1&subtype=0 @@ -52,52 +37,58 @@ cam1/mpeg4?user='username'&pwd='password' cam1/onvif-h264 camera.stm ch0 -ch00/0 -ch001.sdp -ch01.264 -ch01.264? -ch01.264?ptype=tcp ch0_0.h264 ch0_unicast_firststream ch0_unicast_secondstream +ch00/0 +ch001.sdp +CH001.sdp +ch01.264 +ch01.264? +ch01.264?ptype=tcp ch1-s1 channel1 +GetData.cgi gnz_media/main h264 +h264_vga.sdp h264.sdp h264/ch1/sub/av_stream h264/media.amp -h264_vga.sdp +HighResolutionVideo image.mpg img/media.sav img/media.sav?channel=1 img/video.asf img/video.sav ioImage/1 -ipcam.sdp ipcam_h264.sdp ipcam_mjpeg.sdp +ipcam.sdp live +live_mpeg4.sdp +live_st1 live.sdp live/av0 live/ch0 live/ch00_0 +live/ch01_0 live/h264 live/main live/main0 live/mpeg4 live1.sdp live3.sdp -live_mpeg4.sdp -live_st1 livestream -livestream/ +LowResolutionVideo main media media.amp media.amp?streamprofile=Profile1 media/media.amp media/video1 +MediaInput/h264 +MediaInput/mpeg4 medias2 mjpeg/media.smp mp4 @@ -116,6 +107,8 @@ nphMpeg4/g726-640x48 nphMpeg4/g726-640x480 nphMpeg4/nil-320x240 onvif-media/media.amp +ONVIF/MediaInput +ONVIF/MediaInput?profile=4_def_profile6 onvif1 pass@10.0.0.5:6667/blinkhd play1.sdp @@ -129,12 +122,16 @@ rtsp_live2 rtsp_tunnel rtsph264 rtsph2641080p +StdCh1 stream stream.sdp stream1 streaming/channels/0 +Streaming/Channels/1 streaming/channels/1 streaming/channels/101 +Streaming/Unicast/channels/101 +StreamingSetting?version=1.0&action=getRTSPStream&ChannelID=1&ChannelName=Channel1 tcp/av0_0 test trackID=1 @@ -142,12 +139,12 @@ ucast/11 udp/av0_0 udp/unicast/aiphone_H264 udpstream +user_defined user.pin.mp2 -user=admin&password=&channel=1&stream=0.sdp? -user=admin&password=&channel=1&stream=0.sdp?real_stream user=admin_password=?????_channel=1_stream=0.sdp?real_stream user=admin_password=R5XFY888_channel=1_stream=0.sdp?real_stream -user_defined +user=admin&password=&channel=1&stream=0.sdp? +user=admin&password=&channel=1&stream=0.sdp?real_stream v2 video video.3gp @@ -160,7 +157,9 @@ video.pro3 video0.sdp video1 video1+audio1 -videoMain videoinput_1/h264_1/media.stm +VideoInput/1/h264/1 +VideoInput/1/mpeg4/1 +videoMain vis wfov \ No newline at end of file diff --git a/go.mod b/go.mod index fc070db..04ac629 100644 --- a/go.mod +++ b/go.mod @@ -13,7 +13,7 @@ require ( github.com/spf13/pflag v1.0.3 github.com/spf13/viper v1.3.1 github.com/ullaakut/disgo v0.3.0 - github.com/ullaakut/go-curl v0.0.0-20190310175419-50acab4cef70 + github.com/ullaakut/go-curl v0.0.0-20190525093431-597e157bbffd github.com/ullaakut/nmap v0.0.0-20190306183004-e38898a9bead gopkg.in/go-playground/validator.v9 v9.27.0 ) diff --git a/go.sum b/go.sum index a57676d..72205a9 100644 --- a/go.sum +++ b/go.sum @@ -51,6 +51,8 @@ github.com/ullaakut/disgo v0.3.0 h1:2zrEyNBfPRgDVDgzM/qLXZ4Yqt3Lxz7ERvZUSmqSY2M= github.com/ullaakut/disgo v0.3.0/go.mod h1:UOgLVyqihzJ7yihrHjYZikivT+AHb9NhT3r1OyPCJqg= github.com/ullaakut/go-curl v0.0.0-20190310175419-50acab4cef70 h1:3q4hgRu9NT894aYmnoMFl5wPvdNhpHYmdi2+Njyxq5U= github.com/ullaakut/go-curl v0.0.0-20190310175419-50acab4cef70/go.mod h1:FTfXm4jC9Ff1yqc3/HMXCyr+SGO03vJyijJCQlNyF10= +github.com/ullaakut/go-curl v0.0.0-20190525093431-597e157bbffd h1:IzJ7V8S7/NXc4aLOj0QavbQZ5Z/Q2RpCifshHoJ5ytA= +github.com/ullaakut/go-curl v0.0.0-20190525093431-597e157bbffd/go.mod h1:FTfXm4jC9Ff1yqc3/HMXCyr+SGO03vJyijJCQlNyF10= github.com/ullaakut/nmap v0.0.0-20190306183004-e38898a9bead h1:Pw5wKSAfxi8GcYJSc3GdcwtPG5tyg7zg9E3hAHbLPO0= github.com/ullaakut/nmap v0.0.0-20190306183004-e38898a9bead/go.mod h1:4CQy4PqZA4Snk3+MS26+1oAkJ8dCY8kGH6+kF42yajw= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= diff --git a/helpers.go b/helpers.go index d975089..c29fa85 100644 --- a/helpers.go +++ b/helpers.go @@ -1,9 +1,9 @@ -package cmrdr +package cameradar import "fmt" func replace(streams []Stream, new Stream) []Stream { - updatedSlice := streams[:0] + var updatedSlice []Stream for _, old := range streams { if old.Address == new.Address && old.Port == new.Port { @@ -16,12 +16,12 @@ func replace(streams []Stream, new Stream) []Stream { return updatedSlice } -// GetCameraRTSPURL generates a stream's RTSP URL +// GetCameraRTSPURL generates a stream's RTSP URL. func GetCameraRTSPURL(stream Stream) string { return "rtsp://" + stream.Username + ":" + stream.Password + "@" + stream.Address + ":" + fmt.Sprint(stream.Port) + "/" + stream.Route } -// GetCameraAdminPanelURL returns the URL to the camera's admin panel +// GetCameraAdminPanelURL returns the URL to the camera's admin panel. func GetCameraAdminPanelURL(stream Stream) string { return "http://" + stream.Address + "/" } diff --git a/helpers_test.go b/helpers_test.go index b3c6d91..d4c278a 100644 --- a/helpers_test.go +++ b/helpers_test.go @@ -1,4 +1,4 @@ -package cmrdr +package cameradar import ( "testing" @@ -10,25 +10,25 @@ func TestReplace(t *testing.T) { validStream1 := Stream{ Device: "fakeDevice", Address: "fakeAddress", - Port: 1337, + Port: 1, } validStream2 := Stream{ Device: "fakeDevice", Address: "differentFakeAddress", - Port: 1337, + Port: 2, } - invalidStreamNoPort := Stream{ + invalidStream := Stream{ Device: "invalidDevice", - Address: "fakeAddress", - Port: 0, + Address: "anotherFakeAddress", + Port: 3, } - invalidStreamNoPortModified := Stream{ + invalidStreamModified := Stream{ Device: "updatedDevice", - Address: "fakeAddress", - Port: 1337, + Address: "anotherFakeAddress", + Port: 3, } testCases := []struct { @@ -37,25 +37,21 @@ func TestReplace(t *testing.T) { expectedStreams []Stream }{ - // Valid baseline { - streams: []Stream{validStream1, validStream2, invalidStreamNoPort}, - newStream: invalidStreamNoPortModified, + streams: []Stream{validStream1, validStream2, invalidStream}, + newStream: invalidStreamModified, - expectedStreams: []Stream{validStream1, validStream2, invalidStreamNoPortModified}, + expectedStreams: []Stream{validStream1, validStream2, invalidStreamModified}, }, } + for _, test := range testCases { streams := replace(test.streams, test.newStream) - for _, stream := range test.streams { - foundStream := false - for _, result := range streams { - if result.Address == stream.Address && result.Device == stream.Device && result.Port == stream.Port { - foundStream = true - } - } - assert.Equal(t, true, foundStream, "wrong streams parsed") + assert.Equal(t, len(test.expectedStreams), len(streams)) + + for _, expectedStream := range test.expectedStreams { + assert.Contains(t, streams, expectedStream) } } } @@ -74,16 +70,15 @@ func TestGetCameraRTSPURL(t *testing.T) { expectedRTSPURL string }{ - // Valid baseline { stream: validStream, expectedRTSPURL: "rtsp://ullaakut:ba69897483886f0d2b0afb6345b76c0c@1.2.3.4:1337/cameradar.sdp", }, } + for _, test := range testCases { - output := GetCameraRTSPURL(test.stream) - assert.Equal(t, test.expectedRTSPURL, output, "wrong RTSP URL generated") + assert.Equal(t, test.expectedRTSPURL, GetCameraRTSPURL(test.stream)) } } @@ -97,15 +92,14 @@ func TestGetCameraAdminPanelURL(t *testing.T) { expectedRTSPURL string }{ - // Valid baseline { stream: validStream, expectedRTSPURL: "http://1.2.3.4/", }, } + for _, test := range testCases { - output := GetCameraAdminPanelURL(test.stream) - assert.Equal(t, test.expectedRTSPURL, output, "wrong Admin Panel URL generated") + assert.Equal(t, test.expectedRTSPURL, GetCameraAdminPanelURL(test.stream)) } } diff --git a/images/CameradarV4.png b/images/CameradarV4.png new file mode 100644 index 0000000000000000000000000000000000000000..ab6991801abcf17f3a08f631ac9ba6a286351d2a GIT binary patch literal 92890 zcmZU)bzEG{?>1bZI7N%gBBi($*DdaD1qutribHXC_u}qW+$rwvF2&v57M6YK*M9f& zdH1g!$;?S6CzD*s2~|>%e1}4W^5)H(chXW~DsSGvM!k6hQ-Xx>+5@N9c>UV&FcTG3 zk`@&uSNdUNVrFUl<_&GEp}s!7G$ZYxfq}mM;1~lP$`5CikdO!!{f?f_vCbayUj07u z%;c|MHwZ8{dVFv^TKYSYa#@c3MrE#_U1tjGJzns*DpP)FQ1dn2`ocKNnA?4VgQG%> z$w*g8Pe(P{f3w6l1TRkg`3{X-r?EBvO|KA)QTTfpQY52wnCcmd6AW@E?BuatSPdNP z9W*1^H%qY6m<&@c5C@q>SiUv5=3!&4T6=;*Yl-0Co<1N1b>Kju z(6$38v?JX24sQG8Gy0nk&So1C7T6fC=a6Bh_Qm0gyd0mQjTN(jkOF zM!<#d^{kpNk;nzh>~g{{P#}LP`FwDGnBblwahP$VF{_7?X1{b1<_~ z3ZamblMDPXGT~DZllTw$YfF&wyMu!*9}A1Kvoo_ZJG0FXQx-N}US1Z~Pb{B4F}==U zvUjz1FmPeAwx{~{BL7`S%-G)WhncN|nT<91-*pYX**H1~Qd0ii=zqU|Kc}&a+5hci zZT}y(UKwQhJHo=o%*yh=wO>gE{`T@InYkESei1XXGPbsV-9w0rlSANN^Z$P%|F`2m zD7F5NlH(KSKPmq)@*he8mcI=AgQ0&*>tDUE;u1m;VELcug-~)ae!P40=JOkAF<~_q zm=j$@4_x(mAl-)#F*4Hd*yMqDZdhu3(_KOO3-#q*>u1fSXUpzdtB$&mlU3cX?{OW~ z-Ok&B)^Lz0;?<@%`JqprSgy&~?P<=bV>a5J2S?LZ#v$vUOveT9NwT;?hxVo51ARm~ zLqE4PSedQAK*raPBq*{mm5^xPzK2DDL4*|wvr`il{zuo}>FBU8PT1;2m%A&qbHKLd z>&-t8Ae~)T@rdECqHl@d;b(r^?-%FhHwE!}lMWGcnu!Q`MIEYZY0D%OP&2TCIM zw-F4|Cx7HL7c&kFB-_!@`h#_Gd0QYMFIwDM}T&%LpjP-o#|PGwuO8F7?lT-*_DF`m)(z%? zkL(K{DE!SP5zi-c*Z)WoqTAy~gE2zC@vVB|2iDshs~D}VLE>LFB^$PG30HIlV{^f`IeFnp zQ(YjhDM?p{_3a#>$~NAZ{IxZ7!*F=Dae{*kYe@B@ssq$(mV-HQTtn@G-<-I>`vy6K z*J<<<$TPHc@&1VgiTwez(pqTzJ68Yzy1Mk8RSpdI{TyClHhW*NPn&BP zOr(inM%4b}=#z_R7HRWQ&9ivN?fa2<8!j?3Ji#E zs`I%_m$LHg_EfOhNg04HU)@4kE=`%L*TaI{cR>${mSUS$EQyj1p!H?)+N;g=1| zX|?7;6NP^|hk<-2RO}^W?!fX-ZeZOrGt?eXPsA2M6d0gnw675Fwr|DZ*6)CVh8nk5 zj)Ba~0l|0ktl5F}Os+M_6X+OdZ=aeEmPP&UQdRl+A8L_r_Eq;Ud0m!*Ct50C(iV;XTY~QrkZNEyNl_I zy;V==72SUb|47N1Fno1YLe4Jw!Q%a>PPJ)i<2PS;1Uqr%oMLvL#_|xJ_PPj4)wq&_ z?|8Ub0*89y8IT4Y@9hvN6nVLP5$lDN?E!c}eIwYOZn`S1{0CA3G6kt%rPMSA@aN~M z%YjDaH{$spRJE)#arl|iDm#FI4Q8S+ITZ1Y&^HNt8SC7URB6iJMTm!iE+N#(=+EYH zLXmiodamK5$Y?6r#4!4a#Dv3Ar?ru-Sj@$Z@Ri_{j^`difdK{n>y^+2n)zjqhE_RC zkj@kaZa`{8bj*WBJgXN+#$r`yl+BmQ%0yNnRv>HA)!nJHvK6aER;4!;%Es?KVuH`| z+6_i#59nS7{nb00jJQT5PIT+vJuHyR_PD2$=PGxDXK5&TLuIaAA?zC+#*fCg7PqrE zzitb-uNTH2YT3O74?%Sc3J|FU%mw^OQcP_6HA5Gh0Gj$D%EWkFV`B;#BGxmNv!;Y9 zCyy0xOz((Y<#p4n+#Mb3+(qA{nF?=jx?x(rpW^GfY=dH&JQlf z%QV|>gY*eZzp~{^On1XO{}F|6-4n(gW+C@M@V;Q~`|8RoEAceFxn!TdYlz<50Zfmr zx7{{-bUM5b5?ccA$S>8j7DgD_I-pRm-cfYiVpmeMptu(vqJbjq}%@qZ< zb)rgO)@R%h1=3)A06^dDO^qwhZ{5?`pAn~Tlfc`i=mK;VmPUYvp-W0AA>aF=CsgKt zV$j)-A6N7dKbsTbD{8W2ChyBskwKgDlh;%{rX?7s1jJIimm!2Zcjyf zI-b)Lfe);w&`n9A>lri@r2R^OP#hU19)0rAY8EtYzWw5-uvI-&N&}eO)dgsmWO8$I z)@Zi@JJ%gm)6klH_9nVYF_eXi6(n;PdmezC99s*V??&%SF9Vt}>!{DW!7epX(7+ON4c*_w_1jV|*YU~c6^Mm-Qk!{}4T9SXGqiK0_KH^JREHGv{BpJ->o^aK7N?;3Epn_?!TZ_rQ37q^Xx!b4@%+t_kvZqn;Eb9WESjk;eem~fjqS3F-k&CmHs zc)-52w8bstf>pK#p!7}hZe;>VbR_LaFVNVGB<*q=ka(7y-g+AbRl>9TPh7frMlDBp zFBg;rgiatAUOIp+>4lmzw9%X5uq(V`Q83Djwr~(r41Q;BNj%4fed3yl)v8pcmPIwJ zXws3Q(M8#+%nZ0xR0(hAo(gpY&1`0oMrf{B=otmsHtByry{jxV5vMffxRvzu`^75b4A#qKWEoEWGhhz+H{OT#Fs?lY(3 zP3gD9hl9D|vzHb8$X_I!4y1~lPO@Jr+dm}t%T*lT-042Ud$K#aKM3d=>SF2SchQ+(w-^^0*$6M0mOSp2cZno(1gGyu};jz@q#pcYbyA#9J z{yy#c*%UMR-=`*g^^W|F+aNXNuOb=e9l_83MByA7H~z@ti`TmgTYY%TT(M4GVEB3> zA-P$2LFUrSw)>Uybb3~k>y=+GI693}J_{h6rb_QkV?IsS`M_9sD~-n~V9hPOu?vy; zG%#~+lPaTQ?S|!|nwV${Ou5`o|4!%`=zUMN4249;bL=9Rd-vSdZEsKX1;?pB*~Oe) zj4mFXj4J;n8bcZ`HNiY=gR<_vMWdjo*WfrezX+lc)i)B7NRP36%C|M zT~-*RS)*!PBK;^B9j({$(jIueKyKK-rJLKCETnG4xg9f=wE{k`ta*YWbjn8?7+1@9 zROL|5n-}Qb@p9NFvPa@Vv{Tw8<>PmDPB>jfmBPjQh!1Gw(gTi!zt4c|4Yf9$m7TwY&UL zTEH(`*Z$(NU=xTkQBr=$aRbTf2-8|P-ot8Umkq%!nj{$9CE?|@$ zc92k!+(Ix!r3SqTJQ9*^Y990yg_!qdj%c#x!YZfc%sq})KzSmo*pjzL;(`EZ`1Rpl zkdvrZc@osiMm=*C?~=vPDTx*rFYu{g*mSnUw}fnj~cMYNxdTtFgTC%(E*%S&0} zR`c8EFLf?@F5k=9+heH1kzmTA4|)*4`x)}7bop{B6i&rfxry+4#pz?(Wi=A>8ALr~ z7k|JaT{9qHK&o}9rhlk9Q`L8Ay;J>qeb0QIY$gV?#Gv6i%7I71_aRv#9xfEs?;|G; zknsiWY0I#hr-dekcT?N1R}?SW!{k;nKR@J~VFkfw)ds7w3O~Z`LOZ*;4*4@DuNRj2 zJUb88^rQf40~bO{AGX=iww<#zhD_fjGwf{wz!IbMZ1<3S)Fsv^pF0wwOAFATn}F!% z(*2w4-r}#hy2o4ZD@4CM5~i#oP5uX0?YqFiV4Q?iGPf8YGYK|dxkAUssB$8$)tZ6W@JH;Dm-f9%4)jAFc~c@p6mk~5YFmX=%Eeu|`3go;$>cbL;u`T;FF zJt+0V(dF{JF^@^-^*z$YY)ZlYd8Ehdp}*L|!M<6Uc6GziH`=VFpm6RMz0pgCv<|)d zO0B%rOzxZ8z8v-}I&DYu0R_8AgZknOM&Cx12cC|f)RA9Ix!bO|bBLFG7yQSePda?R znKGOs_NHrqf-1Vb16k9?EP@l}6mbDW)9vRSjS(zDc7D!}{Z%*D>=Y0*n{$_S4Sd>; z7R+sX7FiK?Elq)DMVq7U;J{|+BL)2^52b>a`_oIz)VbB;=gBZH!fuV5C9N!@U3X%e zL7pp=bJ_**qn)dsY(3A`L=be892MxNU|4&GLw5;YpoNUtscG1zi&saAZRPe5AI>Ho z;bW5}?gDV^mb2JXR_b)3D`>cFIL8oUtMJHg?Jy>Vr$pqfTC9vct2VwP`WGblTD;_- zU8>?mi<#V7(3smhSBtqUJ1A$~N%E8DLAaXlwkieEzph1ug5cD_hzbGH_Z?Cfumsx9=|rIN+)H6Z1dJW%Kmp*Iecp zPs^Isn}SQ-1qf=+qJ>1LJ(A5%*;!Q1G6lB+C-)zV`tXWheXF|{8xtfCcOVpv)Kr2w z3+Pm*pX9~V_JpfrvnUaKcC-}s!<3`J?h>%FDIqKYybA05No@7i_pld+_^lP=65+bU zwT`y;+@^rMpg4%;%=j@@0#)MH!cJoWmCdUjygC4o-m7ecl+KmvPLy`g=jK$hEdB}_ zhP{}c@2=gQyB4$Pc)~^G^#5|??l6Td1AV~3iu5-&G<}h}Y&AyhpAzi+`i@}WV|7$C zS*eTE3>M$>p3^1hc>~Df5jVKER9J93OO~R?()-Yx3VY4} zkDU9T;S(Q?FEvt7(MjJ=x!9dQ{J{l6^!ar*V@R4=xCXvN_dZ@Zl^&3I!)Gy6+PWWs zacGdR^!-Px_dTPuZ){1X>9$xTm_9d$^pFwjxn~4j8IVdzQK^0r_iL=d8aZk1C@}own7${&-aZMfj<9I9=Y4I$s@Az2z`s6yk{u}jiZ>x-E zJ47+nb?gK7@E%uxBd(B={DH%SZZ~#U`{5komJ+u^UFWR0!x8yt@OPRVI}yC1X5*V< zLIh8pI`@`s;={yq$GWL%U+wpV?eTd4*ZPx1u&yf z#V&LjZtS_0=MC?{!(_G1O>$kf~` zUF$7e_nIKXd!IHQ?7P_cCWmba46oEDcdH<%Opl#cU7dN&o9*CaKN~xmuP_SRpaUGF zoA#(>ns4DWIx~g~;lt>_VJ!!p&e4~e0iu?boF}slOYg^vs?%;;6QlpE_XSA-v;Umh z)1_k!+rk8xTop_q5c{DxciQaykb8EVf7XoW*0>?yEp z-b5jKy2hx3t`I)&9*= z0)kB^@@7|Taz-Aj#K(gobKBfXvXq~PZX6QJ_OCTwzR-^k<@ArGg?^gc`&ed99_~C~ z0=)-TaX4o$W*)r^W_>3GJXDEx;0jsMMBqz!H9l|4i^6TYzg*+qx}KR4f%_!4Vr1co zDF$GE?P3UhC;%$vR_Hr>v}|WX5;vXQ7MOE_U|Q_k9yUmlI~qJ-)lqAnwVRvUwQr+W znkK!5D~CWT7hCB7*H40c2cn52U(-Ia>ccH zEAC2)?U2!@LWu8AYiRP8q!8t+`WUv*(tb?nLq<27=>lZt-l@JwZ<0R921B=FhP%$m zaA|(U0!&1sahNu;q-E_e@N>Q835C?S6lW;T*z~yWo&N5x46B8130}u_s5X ziii`6I}pm}oYW)aq*EsiX!3t}lUgo$N{>Cep=dlePxOIYVzV6z1^;1WaucVp=O6UH14`>iq}+- zJyNN>0DQ^pJP=+$K3u*Y8bxXdMM7>;7dYy7={3`Tmiz+w;BNkn+U-DQb269|Ja)m` zbwrx+5WsP;sAa6GpqBdtr(++vq+ou<#Er7umkhm7QtLKUl7JqP^7p3tJB8aJ&~e*j zeX};RSKw+de>GKJ73qSIXO?%6XR3XTHNs4WE;cq;O;<0*xF{y+Nswk&nfD2q5R9(G zHbz9=ztv4(^r++gJbv9wmgCPA#b$+w{c@Z3?VIP^fldfn@C@FXBf$InDupFEn9E%3 zu~j`Xx^9&b21DL*q|n9h>ue~>BKnz(o_*JQgsND}QkQ!$2WMQfi?i8zpS^mE&Y2@I zq+im+RTw7iDQzbLfvWB7F)5wz!f6dKK1%lI-#-2wvJ=Wi_Dfb8mb1IkK4lLwpUBtDzLl9W(J@VJCsv4`H}P3QJjm}7+AyH48AUpFMQWGpiv^YUByAh7CBWZtsmP(ektFj3PB7YPGt%<*hp% zE^N<)QIptq1Shrsu`a=Yug-at(Xi=6RR);*d$nxqfGV9>D%aDU;wdI7=hW^sJ)tft zX;TlPyz|%ibfavqsI$p!9zv2s)0!Zn-S~|^V4x)ZG{JqtNq_}jLO@iciRUeUOA$oJzqBeB;=F3P#VB* z$_ggecT}vL(zPGp+~B`(o2>Y~V|w7cq=G7W3sr5+OiF3q(Elr&^SatbF2%-h!Qo)j zZDQKtE`CWuzLg^! zFgRKMJ{&JSn@sJ6Px(-Ni1ilaG?R}Z9w;84v~S)o3h*xZlUBc;c2`inpOyr2i{f*1 zaA9JlA5rxNqW2B#svoSj{DE968p7~OR8aHdFiu$#;5#}Dk?>ZFKY_f70;(Wh#G zms|&{qv>i@F#7kH(;NX~H<@`g)1PDv@&+ZBvTvlF&I>UXU#!;K1s^{-S0yn`=CyDA z{PwHZx4ip}Q(Vy1L=DUq#4-T)u^zJvA!?%P9aDVL@Qe8M^%WfzyJ$Gx!eEG$d0Mhm z@Z+OhgLnak#_7Uz%5I}MaG8`0Pho7)i%f*)X-R??>Gz4*2BSOd&&}{U4M<}^#spP7 z;UfNfEOl=s2@w%uzCi?Y#mpb40MF*;W{e0cIhZlH;_s#u#5P=wFh}?&lI_0e%r(z- zJuddTQ~AT{|JAF{qT-!~{a9#AG=MhA@}(v^Sb@&gyGHJV4Ci&64v@zSZ}Z_tC($ps z<25ix7(x%pdIsygNSckpJ==IDTPl=EDKUhlexUC-nvKT0!*i$PC!o2Z6={@kP2BX z382Sf)#;2PuuG?HL6!WeRDwsmP6kzL~DUXEkEUM z&H+47x{a}(mnldpl#0chA?WnHTTN5^lh8oxsp~}RRi@D0B#dm9#rs-3GVc?t zZtsBOik8@Ut1pV5Jd7bl306*#=7iJ-=YI;^(mb~NQJ#mcW+>V`Uz5`7;|oU%Jd-=h%i^&5#6G7(WWMoVW1PHLueZZFtb01EIy(Uo zrFV%>{A=m>?YuK}*95Om!uN$6f9%pXL!#Wj4@6}!vN>299^-T|z$Dj0p6+L^S=vQX zB%>xto&V6ITad5XPY5w3_y4}eo9sCWlSYlHTSCshy<4#^6l}Sl62$<@U_4LwJH+VP z!Ncujcu>S8UoSlKV?kJ95|8p#0k1%9lILX7HL%?^+H4Hm!mAZ;395q0T2i9*~nZE#|y)m4>nq{{^LbJxmob za(el!?MEX-_@ZLjUKI2ck*3R09o@XUC}?swq&r%s#mDyh>0i8UN=hPU=tNkso?MYE zfgdo7@jsiPMzs;!%SQi;+VOlo0iBdj?*7m5r2U8iAcdv<0xgn2D1ysoNkmcLwr-Iq zDm*$5DKWELt0nX2&t>IL?&+QL)|Ou*VmdvahfMua?@pJe#<&%oRD!I=#KZAXLqR`O zYOa4jjd^xJNR0s#c-DV1-LBY#7nbXfzaPZ-wsL05-m`9pFlFh8HFy;8$bE7+ z&|j{1Z!~@~e(ZR>Mmdc=Pw zFlf%?iiew>wYt_Y*5d)DsRLm1NL98x70-%hP+xP#l`Ts8U&%RJei80ICvTTA+$jW$ zH9s5iS{W8rf2ds~EVBN`#bGPnN!8EB_fb2(#$=4o)Qp(h3h!S3J(idK{^`wyD8|($ zk)|q>{NkazoI`|E-fma)J7Vr;)+kEf9gGh?`b1bx=Swsdv9YnU=@5V@Ws@}ofo3K- zvt6`zYRCqMs=vZJ4a65#OK_>mZKlp@hv^on2^Y3i~0G}x>jjKZdFZEfYBChabu za9DKUosZ4^f}X@bK`?;R0mz02anb9BZNmcEzs)%zkX!HRwKn%tqkDS!xTv|kG==AQ z(F9X^I%h3r@l{N5`RQNVHwp38b=5cDLtkQ>|8Zw_zJrM-7_j$HdfPS8;kL5SVUGGh z!mhdK=XJsot;8jJl>k5Z+aO$Bu*?xbg9uN9uI2}b()`yI+%5(-63kFb_ciL!FFBp)8n zmcZ3p&!wW9lHd*5b~l%`j#8tdLz;s9gVDnz^#y=W&!|b?Sx1)VTeM!aTNkD7!7j0J z3hSHUSc(bNUn^UA^)|~$QC@l;_+w4<6_8M>Y`^34><@M%_m$tQQ!<|HzA)%P`h^jr zgolS`9-X17xHXZlnS{ehr){Yo3_4uoWBH>(8Z3h@VCO>_B%!o(A!QD+wcz7~zE2=y zaGbCFrd>-Zzx_rpWKop93N0Scn+Ew>EBO(|$Z_ns2boyjAdQd7>0)&2wldmMn z_u#5#_j>*^JT$a9GdgwvW7TWmq-}*7_w0(XT+^@Tj95P8ggswIZ0vHRk1IW#LM#*0+HXoelz>&+f{w#p}3*XHh{2fWFEGtR=v(*amlG1;8S$uEh z6xEXwcpKblUdugJhl&zzp%liw(z{kVjp3@(I5ZKs5kq;=g4D^~)6*($hr0{Cz6n6! z6-_f_UgscAQOIRcoIRwQuTr+`J=&OzOGbWh9A)QZ#98Kp74Ge~o~U6?U9% zLi^Y4f{s*9i;oe~S$vL10zJ#Dgfo6tG@0Xqo@AmSeqBBiHL*uwS14StdgYbh)#x0^ ztJTqh#wuWJ;wxP_eZ{WlI@+bSX}(J8G-OsLeOD{W?Eg{71`^3rCcJ2cbB~Mp)t#8{ zWwE00RDMM~XL^VBF$QzAiv2J1;O31~Y@O=@hz263z7&h5kLt*ur1`^I8AKLX+fJF-JUHgBom8iyF+dgGD;l?Xh7?pYP8E-CbAi zaQis8X3^Ch82%gIyhcw`SWQOMQTU`<;(r(TZ+L*>D~kp*)5DhZgj6wwi3glD2HULZu5`zNBpNw2kgh| zFG;!*%1n9bCW9yOyO|%kJ|@D#!Y$H^^HP8OfV5DQkbs^CJu@?)$g%oHIng6yu-hrv zUh%hl?s}vNu~iooAu9+iDf1qmP;OBi1+TAYkM3n@R1`hv4c{!M1H$LYxvDIcrWByFS zI?pF`dX^T4(T`fUHezBtfq}tpfi@F*g0ysWp?)stXvAE-Kgd4R+bD_#p*byc-v0WA z@#$X-5vbYB<8Na}W(|V}cr;H1Igh<<%&StpwO^|o+$q+9IR-iJv8UCj9{qI7=acw& z)mIs7QXatN7FoUcu);1H%3bVlpBLM5*8snj>0U{82C>VAJ>Zzpo6>UlfIU1xeu zCQB(0`c`y0PZHzq=}#sRw>4t}{U$s$H;d-`g=Rbhurbf>pT(?oL$wMqCij+^~>F#t9$(fzclP^i5 zT)Rid5Z$h^3{vx~af*SAT!7URjM8&KYr4_NkdClnTBAG0E?0yG(t_rE)jCK`l+c&k zxVqXIQhna~qqs8NI8+nrLMZeJtQ?{R<=i`Ux4Dds^e%mYvHIju-mfVv4D*i2g*v*= zINm;YIgqL$t*5(tv3yrR&494Kx+v#O;+13-2OllZ;Gv@D{0Z+jJ*_#6q(Y6;=+IEC z_Co{94nlr{#U{Jji;V!Li$2-Jt1tTJ!asdZDMoF0ctXO%ahZ9Nm_VE9>lzPBgwSHL z75{@Gr&H{b5c!~T-Inn_>Y@O#l_@J1^nmKwZ+Gdx#|1QQsA6BabuktHo6txF%^x>r z-1eD!BEC2+0P|jiy=re|+q`|E1Qz?&%kqWc5W{X!FI~Kuv|AUcOVl4Vj;T;$+W=qb zKRqbZ=*)%Vv+Tli=``V_^Y7E7UY=^66uD9guV*)iL|d;GOWs>M#OtnNj z1Z@8?w;pFfYx35?% zn%B*R1vV*W>77ioiang7qoKWLQ7w;A$lzl$T*-(c;gxwM${sK4zy$zgg-3Umkzr$Fzs=@g|ALZ@cA4|I!a5B+vSfKn#9~-wHZ$2K#^aVKaH#Tx~-c19qgAHJ3JXKp**_%DD%=F>7u%JXQXDKKC~fpYdM?d0npp zu2bgTJ+~PObgI+tRoQ!}9pdZEMgJ&Y#$b_{no@rDO{5b_W<{TNB_>&;X>mL?7f)nI zU(0m6J7E@*Nn!!fWk#EjerFs+dOh?*Q2bPb6)dOuY{){edbc2hklL!cam+a5$-49B zGCSh}<7eUKNEx|5CEqdx9BBQkZJT7pU0;bsE8ZZqU<6@5 z0+imOLg>@7K7oxOEF(7c?Mo@%uVBQrDDleQS_~VF{-_N8zUD6~DwKP9LK$TqrMFnS zUp9;84C~uxLwoIB`~m}@`k58RC5w&=3i%7r7frX#-$iENM)rf>`=Af()Yg&TmvDdb zJOJmLE?^T;UQg@ia-FsO)7^Q|--zx#OvgZsAD7Kkx6QvUuN8Peq~*L zM1LglDdQ`KM_tZt&^c;?jMjdEiB87npvU#_?FC$V*bQwIsxXQs1wY6j1YWjR#nIkTfg<4=}fzY+E3*f78|Cw%Z*}*xFG2CgK;v zdcNGY5Slj^IS=6BNEn&6-7t7Rdems{Ej|Ym%aqo5)fFp4vAWh^Mcl%8YbtGFk!OyU zrLK`#kmdEF6#+Q;AeZUUW}B0ekzw__UEgCEjE}pA|2_<(yLNv(437B=@D&gHN+2NG z{fn&7M$uWK@@xIDYh{P8pF67Fwb#RD2Y5gQ9J}}n;J= zdOK0y$bHLO4& zsTLNKnaTX(&Ap8XKAFMj(>$|kToYsIxFTYa>5CF0dk%D9iBZH6=`Mt4HABi#$8NM; z`*b{}W6Jc{DT|ZHv5ATdGad3#KCNb_Gq|y_v~j7XmQ-hvGIk7D43MLO)$>9s2I%xJ z*7Urc>PAlcNx;;`Bi=VH6KOV^*#fd#ej8L9hbJbo4pHM8K#3rR z$ufw3dfPhH)ih|2YSr2r7a|8>aCSb5qZTmKVZXjHCJ%FTyF7JjHov%`*|R#&KF=|4eDd zqk(#Z?sNHYRah-Os6ohl*UcZ4!4|d1N7kcLu4*huZUw%AqmF=wv!ALk9UHu+e zJT$j3P_3KKedz~J1_F8sdF2-8hz7@C*f1~|WE4I>!&b}ldi^1oM+>ly^$+b07e^h` znNiZvuxgOZ(lJ!I-JQD$^kHH+Ehu0afCvSHtj}QNI7RgIGGpA#FZC;~e_R**1yY9D z{|`uUznYZ>Pt+Z@8fVENha%7V5~ewoog*VxFwXWrRIPY_(vH|Vjqu*7{jbDzzkH!3 z=tD1|^NS6O3@zlf-)W8<)QQtq>&Up{-)C2pvoha?8)3UXRemF(`ucoYS`>1!n<=`_ zbh9ZHDPPj(@~e@pvf;*Bpwrz}! zMMm*K*(J(7&nIrPt2OeSv8VG;rm~v=oG1#iI9i8X{Tr}3Hu<~2%)~l9e{OVimTb>& zr5ZH1vqy+H7IR)&Ugac9>V~7lmlQ~~`T>LgntUftsEE=hWauCbQ_6EXe`{ymR zHonp~5PSxY8`sDK$<~aQ>-Vp=X<^3H0fgh>I++%9%I`F-P8Ecu(2x`#KTVN%GVjJ( zyuNa`QhD~LOatjS|Iio;!TH~0|K7+L9|f~FMh~j*Q793lVr4YP)0%*LMYqh z%ye_eX-WT|A*b%~jFv?oSNo&&4q%q0^#md(czI|~uGW6RIwx(;yVLlqP17X)+iM)7 zJTIwlGmSR*G{0KdYu~n&*qTHbu<{Er>n*=ZpCedGwJK5f5IFX&!-Dv;7{4Vz7%+I3z8q+$b>M0sJR@5oF5(aTYjbY0iXI00 zJA~uDlFhvZB}G^RvtgA+5kKiKy*Ztm<@)n;4y?fKj(0 zy&ZDqzFccsS$?WP6`);jP5r@Iy0xtsib3~>Yd&Lid^`t_5$j<3cOGlK?@TBv9y6tU z5@u0O+~T$@ix44l|GOd{|0Sgg3>#HZmTg-15VHvr2ix2-ICd^XbP{Y8ne_HvpBdP* ziE6EAW?eqEye0Wo0dhy5%~h0nS3cW|Y$>8am2qavQ5XD<&()F6>9=8>w%x~a$MctU z{usY{YqX-wpaDVWqt|c zk$5&&TAW#?#`DVX!}tukkpKw#iTsxoOsqVw-spQfZN1V`Gyqd2A*AL-)XV1LH73x4 z4qhZgvP60jWJSG}n93$G7j6AKa?RVMYAJL)q(m<@J{2G4y*DKLwiLLLR!#~tCbX>#0DVMi2c8-F7I zxH8WhVqqQ$s?vY6sVpjyhb3Qyi{BmWJ3KNH01>3miRy|XzJAFkbT4>u}wPTNyG3-V(Ju& zMTfeF{9hPC4Jsr0~D2eO{e z6)XGfKD~msQ{R$o*E}?Jrn9?>y>IL0=D=TQ_@dmpkHKW$Y@WGM;jtBwT__fj^(BmG z(rxC0MTH$o*II;e-!1)2&dX8RUQN}U4 zL#d<9sv|<-hT$e*%un~(2x6hpPBTGamePm#Ey`F^CxeyYHF_z7NL+H3fW}yAGwnRB z8`=lwP4jLmKSJQ>Ps%_Qvl`H!Q#8lkS}#YbW#>lM6KJ5N=SlP18wi|mSgaDuuSN5B4&l6ZyGlp2v{hf0o`skIU+{@)Q>HcX|6 z?Y_^tb0z;A$cCX*qSTD+>RV>#Uk<0EuB? zIY|NB3Mr!|g+$14tny3g*mA<`&eD zrZ7`=r27j``UVAj&R~tY==C$atLm)qV}q?)=SU|Map9^);YlFvY@kopz8zIkdq_lwhkvY z6}(>cOol@&Z@)KQq)ZijoR@xYJB1icYri*|$7U$Om$mZSx3uTe+I&!@$y)+#QZ|pK ziw`-jsfWXQ#@JQ3%dLd&S-j%z_h+W4cj)WugNAcn1afVAsiAdlw?s0QD;gU}EQl5h z<)#w?h=*4&aJ>U?M^*!5ZVKr-dAm?Ve9dZMm*QwWC-kB_A0XX9-Ww_b1L~Qfm{y5?h4Ni+9HhlC7<#6Pc1JDU!5J z(pBtjWe{6l_#pd>4dHG*YJ!ZiGQ)8`W$qKDz?y}3meoCekZfN~zLCZwz`=c2{RdXR z3A;&T%@|AcI9+@vT;sumxcUj{kfBIi&p}FyEK83RH4AVPFT2a6|JazL2LT1e4N1{O zBG(??*AQQ=8sZHR3}%MQsd|q`nOG~1wvNzWu=t3)8b^Wo^I!bkSNaPel?#N^K)OhoyOXhQ6Fo}FE=Qo?DC-q+jS&$OEf_m+Sgyp;K6b9?RD5}wJE{n< zy((`@I^EorB`!WXfyMk8U8mYC1bh;Jjqx+6VeJhP!N%x@$5k->;I(dIb+&Ge zGt8_c*skQXg@B*)bg-9RYcWZMA)h0f7zHYu=FU^Q{=xKKF1l7bu>1=*@9pN+7O02d zB_6Ky5vxT;+=x0ojq$?Tvp7RMKuFHAXJ0^os|B{9dZ;b@dp7J5%aMm=D@${7o%X(+ z89no-dpu@F=`A}QNnc-5m0!SQeU((+qRLV6@p&)UnQO?K7E5d;RGee6p{v_GvXrcy zN8_B#nm~}r@6B8ch0l6!*w)(@$#uEz;#8*(gMD{C0woT636IN&5h;AGU#LkDPc>AY zdv_gjE1(Ck4UM00*`8uZnjG=iZK4_hQ@JA98h;RiG2-qmCq!OBe`A z6o56@soH(_eto}XGQ%eZ0S>bIZ9TmyYcP`iS?;O2dm7$D`9$cUiXa=|VPsK7LBWip z)xhy+OGrq_bo&dj|B(cJgxc3?r&1@XvU|vbrF=F?pNFpRGa$#HIa3(&7GM03B8*X? z0rS=E(0OeLL~K&rY$9pS>vV%Xc_wY8{+yNBz+|t5GKXn5K4jHHY3-QF^Fm^}^0ld9 z@jqH?N+kc^^9CkY6zK+CWXID<`RQh>74XNq={LxgrYrHvH(_?_z3s=3xz6teAJ_M` z$f2<~9Uvdh>z0sbgNMfG5SJ>p`oeW-J|WXNk|4iQeKtdODYoj7gt>FEfELpiyTHD4 zX?U1?7CVwQnfa9F>x-qB%vws3=JEdNizU9`At;+Qm2yde?L}+zmvRJh+0>jjsbrZ# z%7GtI3GK+GC}w^64#1W{Y}wYDf&)VarXWJ|t2$2k#jj>x66s#S!%gNIKLHxF`c)w1 z%M&6U4DkQCj4TF4B7;_6AJ?97#p^m6)sJp;?d>@0>90u(SgRs;# z-uBlpAy&wpoeM_v{O0Q8lADeQQ75r~4&0b+d4R7kNJq){QjOI(Cxj?SwViLW+EZ)e zM@zpP`0_!)mKnZQ*H5J1seN>5)jP zs&1Q5lzP@0xMQEAZX(IRn5cSbJ&aDMsHm8z)VSj(j1v=yD?N@+?jg4sxSftoPOtQm zIPBwwL}TP%DoaFsY<9yu#Cb^$btc=_HxWPP97l04S+)UZma|yO1;bpaIaVsCN0QU= zy!gQLdp|!5c5kxeHQEz43@@h(wrp8eUX4Q)zQ1(P_HtMsPFL9S-XJk$p_ zE$ek=wQGwI)-_K}*VPce;gSxbM`}JUG z%Y!eyrnip$8my^e)LK9w)6$d}x;xIsD-E6N+X-?|#5sdg*d7cpt;XN}xj_{g^n-zg zC2_XGa!?Ad7(h+YhFNnSqde6{tf#F}kJst4$BNuh^ZzP~Jx3s?p|#p&}6$@p+lzf8@$^JiQf!YB!ddHgL{+F zEdF+Y0L)u;~{5b$|(9O3jr5TN*& zl?l0-mvb#~U5YW@*sPX^=@eC7SXN7FKMm5ulgA+7kLGN21wtPjyYjlf`^cvDt}EmN z>I>Zwxz_ynMfZU{eK=&*t@)0LvuRr`6-D5*G)$xVMSqbOJkGnV{eGXzo26Mb7eL}T znHpqhQkw|6AU02D+vGX85l5LsZ%?I*=}kty#{%f&pgjA8nM0_ z+z;(f4XUX8hZ_W7w|r^6swb`$md`wI0han=XV9vPde_KMy6WGfbPjGtuBAKCG%=Y{ z+5L4<+&x|>{4u95FBy5KZC_b4sN3Wd(JwKtw}SDwlEOR`~c z)qn7W^~uleHw7oTOENQzzyHOcckmhf=yJaUd;aDcra=LIyaY<^(?7kyUv;RDHUo&n z<~`M^`;5cCFa7-;7J-aap#O-*#=`3Dt<@BVHp3yY7@o za2zTdo%IJg@!lHAW@pkNcg1yR(TAaT`up@lU#bOM?uf8xLVbkPm+I-8KK|3DYw`y z<`I)RSrM_TyUzqc`B>fj)=#m@zgv=b)-LB_OwQZ)4$<+5rgA#{s!8e-6mh-~&{0hI z^iSmttcXo8!TQhlHW>Q=04_4`!&UM2Zl{sKd4wn#3cuzY*KOYh+%22^1O&S-Gd4Ds zf{rg86E2?Oc6w7(x7pF-j^|Dh>?zX;p@I&gDZHX1p)=5bBUtdv66~PzWTn-^O}F3e zthL4eF=S!B!f1QGMe1%12?^=A^CV0RLH6VMVN7)5hLq9F>pH+aM1$WDwkJ44J|)sp z>$$~RU~+L&rzEk2qS&4v;bLz58Uu>pN{-+?ps+unpL2V@w*_id2#l`pOzzK}Z>It9 zK9%8=87}WoPpEUM4dJ&oM40cvo}#TY{6eYuEG?L(DAHZ?{@Y>mzX<#bclTLcss+z_ zW4fMLTaR;{wUT?b-9OtqOi8n`t3yYU;JcqQv|Jvpbu-T;BpEN4Yp9MWwOX%P zIzDKT+e33)jB8zV+o{&)l-Kk1u1>x)^mLEylG}?uJi=$uU#E@OrYnIr%XK!7_g!}d z#$%_W4paGFqFye?P`U+}t@%i64U#vkcfH}sV#Q;Lg%MW1OW=x!L50)ot(67urSxa> z`}W6=AjXO-#m#`khIARw-O6KUOiQfl;7^xSqmub}e|&c2+K|poh>^6YwA^k;JD5ik zxzbnf_qaO8E{GBM#5AWSg+n{UJYRd18be6~z3#V&YpmDaH=eaNE$}(8ZAhGl1Az>* zJ!wE9gX``B`k0XE&fph^C)~U72wW~zwY~Y?S#sY##QV#YHZMM&w@s?fZ`XhE+w=c} z-;U(o9flUqOU)FWLq0Ww1POP!M}dkhkv~Pvhq~1Z9A1mz@la)xE$w8!R*~E7sgwie(1K<+97OiiyB7KfW|D56&%h*MOltss1l zK?T6Q<6$)Da}fZ^em}V}1uv6_e!0)>C?#>MY6|Tntt%EqAV}jzFLzLE}S8LTfXexB+u|Kvogqz<5_0@7!HSf zij5fQA#7Y!Qp>iu+5M#SbkWdw>J7^)WY?&V7K_cQ&$E+t77H=p6$q!KlJQepvb>~t zbn2}NICwzSOwUxYcERfT%emEV$LvuJUjxSZqCZy4Q zB>-d#q;TQO2*q9>4mn)qH%^k)9r7VlY^HG1#GX<1Klxq$F2Voc*EMz{NsgnlR?9W2 z%YO30_amwGQ(Xu={Xyn9>WQ0#Z>EzZ33^%j-Lfj`X(m96rnX5BYS@_1HpANmtTJ1At4dcZ?}W`!Q^Q+ zeDpZVx3`Dm{N*(W-?Y=8;d-F&Oy0^0uT-Np>Gk!I55SjNMz0+mr*iZ^8c&dW4rUHA z{ru5H9iL_OJ&VkA#&%TLU9oqvcQTvwQS?yjkNp}v&|5TYtD$;NnCa!YxZdNXxXybl zm5Zt_1OI7=_{WGszj2yNbYdfq!-Mzhb?22VOkmk%$yP<^s!{d|jR8-qPD0JQ;B2%{ zpKyZcY`jHaqHJ7|S*=%HwOCc3YGK3g&!f;Xs!iBTzMd}ECg({fpT^KM9eNLUehxL6 z|IXmB!t&9S**ZTGi^CTjp)sb>@l295*KsJL63zGj1+V_=^5FKB==TXz(f!3&b7BPI z@!$lpGcrcVN!T&^6sEA4(~cx^#mhe9G@Xm>%G<6*B7~V_TCc4xmJZ!? z4@_yq(QQgUhWA!Il|pxP!oFwm_EBZRU($l_!u+RFxCm*QKU zEN?oYW&Fuvn$SZkg?3Acd2U|tg?=DZW0qlWdmbzXUE!pUSo7ctmp(C=Oqfs!CINPE zMf#8j3q9lK`^q1&v0eFz$rHHsYebusGmYke7Z;zy>6n5uE>&7*vrgG;kr$-Qs2KF&ji1lIHMB}fU;BUI*(rap7ddOYi<`n8Ys>dM z2uwM4rMQ~JM(xOa)PqoFI!udxm)(g*E#hDM(5Io9Yjk6oxF_bx}G)|5mc`bxF&OVcqe=L6Ko*P!(7fg==NjcVO4vS<|M zc_@HzUMc9K_*#p9;B|jNu2$J(sNl z4+Ddb{&&3RDPlm#$B~eh&LmHF{?XnpD*E~3H78O;#mb;k94!&POtrC*(WKBaxvP3o zg+OB0q)Lj-Sbsmt!?hRp|AseHOQNG!(1?3Fl}%neQ(J4s<4|U1pK&E@e;3$5S)`GY z4gAx(k>NwI{#*U}LRlK<&t^U=g>l5|csT76SgRY82eu@`o$B_;9f&yN{XX1)cph~J z)dI9xO?%=y=srI&<5@z75XBsvGx~&)J+O+|_1$mtFkd z09Y}Vl2>09CoGuwS3O*sn@%~hg6e$Mv~_AW05cQFsj3#jbQP3CK4hA!%6-l7ItD2E zRlaWRgiT5=(_tMhDh0MbyqL_+pv^`&M^qs32pIh3&Ceh&jP__ub*;=Ula5MiYBDX4 zx8HPI52;>4X#Yq3eFOKtFhbvhc%GIgf4)UmK!A6}?kZeq7`*x0*}~9LXE{aQ1g-a{ z)PGOe-+cfZD6ML6wmR30?EiQ#==XF;^gK9Qh7F&Z{>SSB+DQYw^>FAa;lGT?|KtAq z-7v_hKu)XoR&u2G0`+lT*`kM5!-mC`&1N@LXI&<5)wgmjW|MLLmu$&HJn%`|sz<$` z#!l_oRsdYYuI_jN`tPZE2L0}Pcz9MPD3{8owW-IE$ND$Jc=>WX9v&Ly?a=UG(y!9q zUwoY`mlXKT%90u1J#KVZo#4WZ>E_DnPum`>&GF~q8A2(|eJ|N5IVww*{;K)+uy zUCUi=+n*jy<&v+r(p-oz1_%6^euFE=Ia=2dcfRk6U&Fsc=2zI9CHzWjag|e0Kn4SY zn5xhfl4_yLgc3hlngVREsZP=@CUK&whBw6zhOkEgNpDrJ40)qX`N~&aO)B`H?r#?xwBGPx-kK|%KyL+T+86KKrw{)z@JT+6cwd&>NQxRsu zovc(x0w%RAFL&|frGqt?3AuU2lhqcgrgtlST6JM3xwE9WtJ7yA_w{~lY&&zLMrsS_ zzP#3tqS;fi#i_3sIT}Aj34xL7{{{@FsfjMeC#K=?xXRfnxUHI54r`f2z_58WxHM#y z&6X}fviU_H#~}~~@f4Kk%F_19;-I%-Kd@!JkH55w-0%DsL)@}fqKm)>k3j$Z>~B0+;SW3* z2!L$v!ABJq{VZ?18W;|c$~T5ac$uV8sN^d zIM@@K^$!(X`WF@K_9qoQ=m= z#PdsGacBoGFVBUBL%Y)j^2DFse`s{#k<7%wb6DrXX}f5vF{5H)A^lnQE33^0jKla8 zWN>8Uw`y1guL2p8U3UyprQOE6`I+18mfOk2+21#L{!H8YB1p;YdS8Az!4{&cGU17x z;(NQ0gpP~bgU_G1=?Ah!kXqld;ZdbNSJqDpcOE!hZT#(GqW-rY z<#}BYEd%un)zhh$4%%XgRUqu!@P+;G_NLIdCTdT}_{$Ugcb1%znlPZh=-nEe*QA^U z_#{S*(5cbQ|MfbTkNjppn-jhEpB^h(ms0T`D~nF);Qp&%(aX+NO&>R!lTRLby-~HC zFHbSQEMZUQ994!%|S#hT^yTp$~)`V~m`{Hii5tCU= z`|1rdq!EYq0U=vQx$VmnRnhJ#AXqJEnve>(R$DFsr`4fssmtpE+|QrJ2l?q35 zj{~vg=(Nn$)zvh6bmy@*bSC|D6e##8#$&05oI_AoAMtrz!N)>ouTKs}_kR{EbDZ6< zu@j8@&i%mmyf1&P{NYJbXV#YLoWoEAfE^FdF(Yq_YHwkW5HERPvb*@J*2)`#rDsmN zL8z&p$~J&|I4m1n)YX-f3IE`FB@BPRT9%K*Jz(u0Z7l0x9)4zWb{qOYOGn2$s@?RV zJ%`X=S$w5KVklWpfQFlSl^_Cih^X>g>J(q}pYZ45a2e+l*CKP{ zGM8!n|D|?yz`6W#)kIC#T3_}i4u?yc3gMo!)#^|tH2@G8_3Wk;Ab}q7@!^%XWMwnt z--tZt(s-t;Rb-XH#B@--TL8TAvpWSUD(Ydin}@X$K)&REC4$a_fKBZB=H8Hzos|{y zteR!X#@{0J{u`-(4=6)eYicPAwXDBw6%%vj!s!;T2Ul)(+Q}zZIi5fBH;Cno!-(r5`p%U% ze_)eU;;D)HOal%Yzzh3E>~PlXGYSy8UGSzMXy+iEbIIwE>CVg!`-qpiJpH64_CM3L z3F_qgBC)#~HOD>d=%bx4Oy9ehV+{iJzGr{_SSdr{<0ZF;?#}tp49~pjn~Tf5cKyn` zJRCwgI$1I4T6djMfYI$4i_Mpr^vaXYpZ;MWAtsdpKRjQf?;$4k&M=epye}@h*P;Kg z*tGetwY*Uc=i}iKc?rGm>=f*va1xV73RAL>Vjf8(p0k{ex7=GT@Z>uAHj0jSzc|g& zSKZD~eLO8iEnd3n$iF%`2z|Nb`MDxA{fjh(EX?CW;a_O3?*ARlRZ;&9kM5hZWQ~nJ zPsRJVt-02;HcjPuYPnFA%UlX-KJcr%?U~sn=y%E)aL^%tKicTr75(%}F zfORRi(`n3?`FXB)f`ta)p>1|8a6|Z(r>Dye_6^YzaSMtKp5xq!WaiZP`?_Fb4-Pvw zEI{dq5efuv#J8aFr;B!ENT@!^%gRq+t_qe|DJl&WTouh>?1{L47sR(=|8T#KIHH_7 zt&|Ra$1V`k#daU*hfV(k5=?u2SORh#3RD4;dix8iH=(Le*EN_o<+$!QhQHQ^debFc z{a$A_>(A!JRl+euTE1Qa&I*a3uT|7W_x{oyNLr{-2K*qy&OFVi9c9V&0QMN8LBb?D~ z%L{%9$s?k=v16>E)dqX?T7wnx6i@RpSD%;18y4!d*r2N0?BQ&83W#AQ_{#3Sp5NNo zXfd?<;ke4tJmDAmRcX~dBsx1WyMMr2Cdifw8>5mYC+UxdnHkg5O157=eKYN33gLxo{}oaPd3z6*x$G}`~+ou`>KDI#5l zX;LU4v>t(|!RlLcL)9MjneyHEz>H@z<~MWw7XV(z{POo=8=fd$z~R4dJO6GpHtoa| zN2@Ng=6T0+vQRy@b<(X|sty&bfNbq`_$D-16MjQhU2R_gCQ04sa7rQNvtD!V8xSfs zMcQq;pR-NE8a$;*Z^dqiH5};f;hc=+N(vBQ*+5!E$j4yZ1Y1s<^(dVh8%`8D5}I{9 za>gcygYGaRwhKEyCD1@0s;}fn?HztZrUcv$6_q=h&%S-ETeh=qAYF;W%r#cHvRwBW z;?&8w3r*JPI%c((BV|!(o6`sH^Je;+gG*kF=bs@HIO)4jexMm(dpZH)%rXEn}X9j8(vqs zv&w7{-LVY*1PWZ*;s3j&*Y`(l2I|_j?Ogju1!9={?lo#SLyfeBPSVZ_JmRk}^ zIR$~@$|6i0C1-M$ZbyZUu?&RrRC20dXuU8#GEwps1jHn zw|4vq+so*oW-nVbTyKgy{6WYf@OIx<3*b93D?j!|el(+|&qnDaE2S3=?=AQX^%Myr zA7j|HZnmweF#lAoZuT4WRQ?ij5Ii1=AFZrHJ?AYVpb4Pe41q zV!I3KxG_iOx*2s?Js3The|Tdu-u5t=WaM`Fj2mU=LLaFvn?st^bZc9;kL-sBYZ#g%VuKpQKBrXIE`>T8KIlm zaAlI^_ykC)idSoY|E?JYThDvY+lYKh@zL<4KBPSSktbJuCzd$lQ8Xf2Vxj`chmD5toGcsK9s|* zH5L=Tb_;F;0gx4++3lvq2KAVD()P7nlJK1%Y#~9wM^=t{#3%0Woz3RzXnHCziN3y! z|5&kgCQ3R{6sa1(J>heoMq6N~up>O5K5Q@KbN*1Nza~HQAIbLb-#0A_dU&#dG0))V z(J{vRw&_c-H@2#nHJ^v0vEYKtJ%Au$4V2`ap4*eTR3=TQ*NmGYVHl%f`X%)0z8_cz z1_rKY=BB`0QWueQ{66#%)@?6nH%Cv@fY&w5UWsnQ0?+somxi8XB#GtY!F-emJsFvZ zL7LdFXoB7%h1^esnrXvxIM{CCw`W}Z40F_plmrvzOJ#6h%9Ve9P$!?_h?`wdXlcCh zS1NaZs3KY#T5WkMl}bsxt$Q(zjCRS*Dn|f%phVXj*h#ct;7mN6NSrb*-P*{Jm-=Oq zx}U<|zOjM7Y}R$?jc1|IVbk$i#c~q{H6qs zo#IXZOyQtoFVOG1oqe7$pDU{dN1p3KKf$t}O)}%A%aI8S4b87M9k+ib=LG?Fu z{I|s4K_o}8nQ^l8Z4!v}IjB_$n(BosHhGu~xYl^{1a+%_&N7lt`tIN(FF#QepNO9$ z;8rJVU0l?lvA~EjVtNHgA`(mNTws@4cgHiS?dLv=b(TUbMJjvDE^d_Da*!-mlN3YK zhoIA$w(1(U14*mpEMVR zYUn%XLYX%D8%@?Xk2?>x29Xr_$o$^(AW8*A;-Gq@ZZZe5_i95MJHN-=2<2`sRRf#s z2}L)3d6Y&$LJ~hEy*ztGij{l&^Am>z0!C!J+-yj-fxr=#Zd^F)z4tVsqWv06CXFK- z3fMV<(`D+CwW!INtlM3F5+^(?)~z5bJ)s$=d$$naNJq&&$cc%?oyNq(_@mTlJlGL^ zvp!j@rC`5DOy%`Zo3`I-t}ayrS6iyFSV-w)Z@UJ($~_HYctd05L=SUCpG70^wlroQ zPfBqQj`=y&QtUOBVv>`S*-@66Zbod4c>IJz^^cTa$dfTPY z{eog@)ge(S)v{blJ!P;UN2k$9q0!7nYIRK|x>?H|iWhDaoo=!tB@5j~*}Fc6+cj6| zEryk(oZ8>7q_-{KW?5(K{quI=Uqz%q?3I_Hq^1r_ET>nib0-~1d|_f@H{Aajubopk z#cOOta5swFzjkn_CMDLt{gt7zQg4n}NN-oQk-1ifQUlD%nX)71lh{0ezqzKbJslSZ zs_so)F5IYgiqPH2%;EpM^5oF+>X@-1t^P17Wem;IL*tGVwZ}BfhYnebdE` zk0&LNf)hKEPXP?B3Qrv9mGd)>CyN0g6}a1gcFuu*N|U*Jd}U!>cTC*DoYm657K}?K zwo2kd3AVB>#~(x3!*FX&vdnA|+31pKAY%&dyONhYW zu>azcO~JO-+1uzTzNu>mCdT0ewvO$Q*gRoNIW;%r)dKEPYBCs$N|BmOhMJz%8aH8V&^617fsdUBWr7l|K|L2 zEJa#Sn-`7mM@cgYEEcO}dUe_J$<`q$o0djL>WxI_GV$S>x z-u501ijk4+zRuHiRyXPg-5&cZDvDtd>aJ89r&n0}ciZ=``&jH9m{~^J2rbo}WZWNJ z%-Xwh$%#f{vBWSe={h1#&a!o)V_I`M9TOy&4%6I^6UITa=Kp-t>=~t3DbXYpb0JvL ziqmUS80UUX@Yat+YK83i5QInBq zWi@Gmb7oSUnc|XNH@=i%-p91|TQUD$-8^y{ni(uFIrXuEmO3k|+vtJbm6g;)8m+Dt z2XplAUHhZ<5Fg^YV_K%CQOs36Pcb$^5hW?PS*MR&Nsh@D+OL5~IMpIxyLp{zkPd++ zO9x|f{BNdDC;xi1F%HZJW|qAFQA3g=y}v4}kR{?Y8~Nit{tf&ngQ9Gi1PGq|0ss7d zyM4k83{f5jrNlqq28drp^$|_8_5VhPqlCxms|djzi@G5CPKJ$?iM#YLNR`g#4-%n`sySM7H=vSxwbP|9X_Da`3alF+WhXR*D#DeTkX zgW^mOHOQyFp_`nR6#4HT3=Q`_C~WKL>@}75b^n9eTp3LRihbrRP4X1P*_&VUpn=g> z${JO3@YWGsvnZ?z`U3ea5oX6h;UevFtGW#&dK^jwe51)^FM%=adv836U_2O1L#wN> z<2W$5phN9{xAaI*5GSU-A2f<_fpFNJm}*&tqGP-%m0M(}RBBTXNv+llNe?!S=UZIHZSQkXdCN^o=}B%*ws8AM|;? z!c;es`eDS*u#dY^jz)THJcEro$Nuz*cl04=>>!|u;DM!=<;Yix zh!1|Zfe@nM5vo{e*Ry{+Alw+A#L}DN1V4H@y1i}ofGE~v#kZSZ*Sh#`GGY7HcW=#J zB+6q%CG13rc4psmzt^@e#ibbD!5Dm=)Wv4n6-M;po6kKSPY5|o#$)5#vgDJYbnsQP zqCm2$=VL&g$87+6z3a?nSP6}AuB4kBr}4K3$5U%&+es9~ofg;I952~7iD_v`$?V1V za3%V>eFa|H+S+P0I(Yd%7I!!LA*bAjC4+}#ggDb>$@2z_c#-SE61t@rL&H)nG})gXp+ zV+tJU@XO}E6jRfWrQJU}WS{2v%fsuHkB*B@XiSB=v58xdFzXRXSPCPLNn1G9mbCZ)_?*Ha~cIj98?3 zcuxXmIDGK#ctNsDw0V>xRko^ooMXw6(TwjR_QKb6`Ijk7%hM``xf?x$2nv>~zZNEM z$m`9GgS_KvbHFCXo=gg7V(vrcI^v`AGI@&76XT6%Bl(_X-Mo+|+lx6+@0_H+KC3KN z>Z7-uciIng-;7MIPWb#@f3_sPNzTFL`Na!tmKyp!-9FjLy>w|Lsja~9GTW7230yBJvXBRt==c>URU|J-Uu!aRo00+6v&cRwQ_;<5U zV+K8DjCi-v_NM+hnbkUz)lyB7OW6`0=Nu;-pDhrmaA+{v7HiEXI@X1NYie2ZkfDvs zk+S;IX96#-AI+bIqm(6_hfYKCLkCMBe=OzW5~Cq?oi986Cv-T6R}M4nGItk3q^@Vu zDGW3x!TkJX)Bq-Z(vusRR9-4hf$wSF-tQ{cGCkBeJ(;@~IdU94Jw0djvvEa_hRold zZt*h!*PQ$c=X+|$Q!1r<02n}2=r2~$hnzGRe|>={RfL7&p}xJy%*b7##uO>D5e3ad za-bmD_Ms2QC>CxRK9`m-NJJvh)tG_kqY5@ z#w4DD!JrL&(sN_!C2AS5o9yt(zS*gL(=jR#=n8~Gl_I`PKb`TznziPCQ*Q~(?LzCF zSRlQ69AY?I8*{})z~>Fwg*P3D*;)Q3n{<5udO>Ix%|`~E#CWg8AcYi96jxep=*Blw z#mW)n_U#O*^U8bS8go-<;wsB9`oHD-dazJC?G_{#pYu?f{*#b6EvA%jvYYLOJj{Up z%cEnV#Lg#&gG*9*IJ|C~EU5E4a(YxCrzQtTfeNWo(ZVCEE5muB=R3eE9#4G;!X3qs z%S_5Nubi9LXHPt#!G>BI$>9=5na^rS%u_vF)@PyapJOwYGQRJznSc+wOVQp7@pwR3 z?QtQke&I@bv#rAp=$Zh!_K#91Mprm*uMs_k#(a{*+2tBYiWV!4q)lR|ND50vBh)gy z@pPg_iM%OU*Cx;8>62xAx8rl#9zYEE9o&tZ6+v!Zo?0@f@uc1%of9#uDZeTKfeg5na zlvplb9-dP#`sNoA5HK;4%vLCyZcM?-8kehVXxe=qFWi(;pf{osR=QL-5h?^R>2O=2 zRk`T}O1awV@%X-@W0_X9%9qs4&-5tnhUgg4g34YZdO|*HKoX}B@^EQ?pQ2-MzHzNop?bznbDJYDx5l`Aw<8Jh0W*_!}h z3`qLhGi!S5<6ON`%+yQx!?|YC{Q!H&9((x3#T=9jp< zg4L*YjjaAIoC1xw!XU{Q=FcIgCZ`txCeIXc7IUS1S+cO)4nOdOL$Apnrqn%Zq})v( z<{Ng$2}8T!cTM85va`WrKa`(-6M6gMjHObpCC$v1^tRvDCTc!sxqct`zS9(({mJ@SLMF&38&|iO2DG4&jZ;8IOLoVA%-vJl?n6AYCgzWAe3qwHaow z^Wia6^$O&8w`&@yps2_WI>pl%Zxt=(d3^yI5)wu>-z$MFogmR&<$xjeursufJJ3KQ z+ZHQBE|Qj`PObUlHmR_((BU-}2BnQO;+|whw!Wa`tn!ePgE2A7v&Nmo+3}Jjk}UUx zMm$yVA55=ZKaxMXXy&CF%h5D0%)us?hlVc(a+D^KOByw^h`P(CVrufV>IcJ=5t1V! zV;*;(NOPLaij}%0pUX;+D{j#xv(eWu5a*%F45Ob5ni+8c=q~B4ANKp@J({=|w3-}k zD6lv4!Pq1Yx0yEvByM$tSSj3Ac}rh5aDlb;M1v zSgaSw))MRcFhy%w|NR*X&@>#-<3)B}sG%S=Tvb~wy|E20oQy~2VjaFzW@(0S+0Gsn zbESXQ#9NR+1(LfGxlbcA7wfMag?}E3;p~f4afEXPx|JFCf5cF%zkA=q&iPIxRr$Z~ z@_TmQAJQ&lzO}Eq7&};1Uq`bdA%$WKYB`2}T}j@Day*^;vCm^!gw3M4@21yDzg!0t zGO`6Ne&lFbo(t1kGj6RhvHwKB^Z*HP#rFFQtr*zW(Fo2FDCa_qH6Z7|bJ(ki48~d9 zg@!ndV<0P5DjZxLj2ot-q%3sUIs6H75fW(p$^&m5o05|FnS9BA2I`L$!Gi+DQ|qlX ztNk=xWSF62lyFut`EZ2}9boG~sr;jv>IXSyT`wnLYHAkk=YxZMw~%-HT;E;=`lK0C zAgQKH)zK?&n^IDHXJ)>Deno)d5$ub=&F&4yQmvk8C&pPYLWCEe1X7g?1P7p}i&egL z)b!ZHiXb2$z*}xf@VzoCDhZ`oY$J)L^yu|y1SlffXjZHLNr?#jmd) z`~u#X8f^@pPJbjz@FqPZkqdU@Yc~2}UDn`aD6Y0MH3& zE8&2WPK+VfT~eaP!XyNJNRV)Mi_4Y3Kr=dQA_Tv?lAx!rXOG&4{IU?kq#uP(iDLQm zrSFes9|ivR(6066R-NecMpn;|$wnus!|rjSyEZOHjL}F^wAYE6pj{xdb3ak6O;^lm zIS{M;V-V8<9vmXHQqm?c8E6%1^!H>0>Fv91LG44YSj=Y;JL;ol5DqmEa{?@vYBLXK ziWHEIV>!Ovrm$Pz0{t!Bm+PAijg{m=l`(?qk>gpv#fR>JkJN_Ox+2q4a$h1c=21WW z$W9Flf)yKWki#*`6&DxJi;9vnTmFS4DLS-}>emt*<*uyn9;Lt-k(&g#tM?pY`wEmO z5qcX>Fz|@}$pR>bgpF{*<*KU(_tqY=Wr{srM)KK8cPqos4_cO;F`q_cU)#8XfCpD} zcK(G?rnTa#RIDs5SGT zuxpvne~O$)2%!qua!t446{CIPxo7<_{ompf1!MsjAnqjq!Up39r=MDGj_j7p6(MnS zn*A;bPnDW!Zgo%?sT67@2|AnY{Tm1|Omfv^(qAWM{j;*NOzD{L)6&wesrNYJiVWyR zdledMf@aVv4$b@p$UBe=Kb$eW!*`?f#~kdH z#!?*`KGul%o{=jVr#L)QY*d6jOQ}BFIZkRjEKcmpLzojToq$xLS&X)2^z8BOOI@rY z(&%`M$#e@vc?Tt)dM$KLXvwNpo9D;R!oo3bP(wG;;2)d`65#PG4b}y)1aY?LNM~X) zbH$>Gd^h|JP*^iEGlM>tS-Xq?YRkrtcuQft3pnih3d>!%!<8m-rrg}_`<(rR$;UBNDaxO_fRzG1GK1%B@S*otK1${Z{|8c_CDdbD#J3u=8 zNtI5?z+-n$u_7<xfu)i>+2t0P|(z=|c{imt~vTe@9c$K2o62{f&v0ABE2wZ z)LUbAhhGy3NPj1en;zDTB`(m%rDUc9x3Y1iZ8M&iCOv0aS&zTJLshSzZ z5oKrX1CNOqh@YuzEn!7~JV%$>^zuyZD@0WkW|L#6*ZFy>=@i(|f!xCPI!`=(XVm-4 zhEM~@9RntRw3RD{D3RYzmme%(Gvu{5HqfhUeH7tvzJ01-QUDt2QcZTQrt_Q1ZJE1m znqw~cd{9YF!VXY@MMw$Rw!R2~J4U9UL?qm3Ngi z0)rIdTfb-$L{cEO2%$XqOgKF^b8I4fiW>Ne9|0ytcqkDns3i*%giLO36X9@Ez)vfq z$O7B>G3;}QYupLz22Lz?$lp3k9_MhB@;^F@MdUBfmp~jxbhi_=y2pEpcPqba{YXm^ zhq->sIVgsjO-`9a7JH3;mT1N4;jqJDtBv{)l5I5VPIn<7VILIIfqSf&zu3fvJ zGg7UrypCu3Eh^4xrAm{&hvLd0pD-%6y88Y*A_Vwb*sk@s2I{}@^FWW6!H*$I@9?{o zUfZS10L~_L%;0B1^qB1bkFB>1sA}7zzD-&-pwh5OQ5rX0TUrEZL_k`)TXK_vbayvM zr*!wGyStlB=es!foOAE4ZT_sX>60-0 zH?;5lZf=dS6UgM`hbMLZq;4&x_5}I{yvm#WOHG+UVK*LcvvE===QOwoG5)z-P7mQO zE~@PgC_lOB7xyV92+(J9L99y;iSTTz%`_mDW#G-X6(ft>bX>jIM(^O}PEG(~Ik`eI znXT{E`G0%&mYI^{^B26rS09$~oY1)z$4>h7`B7NRyJ(Eey@WNED-<17iAfEQYMx$N zi+`P;%jvHP>PF*v0$+o9W|AMwBUT?jA{~Oz*h`|*)SiE%R)-nnz_DT_BKIE76J$pv zJ1up70R0Fc{;S2@xIZ6HNwb^I3);VbAMt_DX-f|1qxMAEo$~;Z;E=0)2XCt9FCHJh{;*7boY~E z#*P#i>*v8SHZvvg7(P3gP1|DE$9KyE>$1>;FZ$1owcXuEW{VF}GSnzdu~x#d;LrjUZa<-pq;VrMz3w5Vy} z=a-yjF5|T6`k?n^#1IN@4SLBQjK}C^S^kaYq)1UUouLbU!@xEM`*&@>eMa>}B=5^P zM<;4GE@%o@%Z6-DqAt=PI#&oKB{S0TMNaGV5 z^NT9~Jxl!v!~U^K&`EQ-oLlkl5`8#N{|G_(ZqMc#lK#8o-vi-)yctpgz-GDV`bNtp z`#*oet0&(6KsE^-55`vWKZgl4cQGV)u_#L~d5pTeK$PZ|rNy)y3v3H}`;EHAOz&)) zrGDYSBrpnRw8a}d5FTa=qfp+4SW(_T^P+xCVl#gy2Dn{`*8b27$<-KOms0j%I zqyMD@KKEJgMkQZh-){ttfn0`qdHd;Z$+_OVi=U(zrC#9^e{@HFl6zD3n)Gnfi1Y71 z@vY=D8-mX13ZoI?6`4oFtRlgW#glF1;W6{05>Kx?l)#985w1X z2W|7BU91@hfb!lySTq*G%5wjBbJCbkY92QM`?7&Zn*M+ptJw_=g?iG<4U{wbJ#pRM zDD1T^3AK*i(&Ug3vgOmQ$le$y-QEalC{!bq=xRB$*9K6Kc79l8e;v|()#P4vV0jjW zNDvT4x`RD@JnFOgG=M|E1#yy_ugl5(09o94gkF0F)~Ww`ZHVs zZL(1^z=)K;ESrnz-M7kwlf*w99AxF>!g4_CsLDEwV&5vqt(J&K$MU{p%8_Pnwp^ko z$i4}0_BO&JFkW@UMlMmvm5cZhzoKaMO%!sWP4+GNFFS{n4Nq( z9AJcM(12W@qV((990^%V27gN_vjeo(oZw5;JcX&?;e&a~?B{Q6IW1Htpf%XggH#ADj~ zIz7!4L0^~6{M4|FZ}=haU$H=$J;lj=;(r z!Or`CkS#%yiD%C@?2_ME{oYu+`pPq~7UcB8J`Z6{LaUzpXA`K0IN7DMIr?p3MY}Cr z5LAJ)G2mhmgd;thh157f!yKH;lKX0!Ct`oTF1|NZ5%Tv7{v!t4;;m)AOv4j4Eya^@ zh8e@Xs}~-YyVIG!HHn3Uf(PkZ#ePLtr{AB!Sk31Jr;9Dazi#}Jrx8)ts<%>T3tla< z-WcjvtMv}=RfRcvKDbZ?8?H@Fny?GH*3HSG6;}Oy*k*s?cgLN9qVV|mH6KY2zkC)= z!q9p1spH6#p~<5(gMp-aR_C^zlRKvai+&xL@?4FGC=RnVzVT~_JrjuN6W~ipYQU~Z z=IR_g-?+Y4XAT60zNNk(V*lkjh#w{ip;C0HPu>?-D*Tqo)!0v|p#ctM2T30N>mDgD z+xUqF;fo&B^TgR5+<9Vxxmx7D>VIj~-+r73IrA@G9YTS@4{EnG(6g{7^d|P_;BKG{ zJoO(^8QZF*HU#yj<3t{Y&vbsC1OggrdZ{kGoKE^FK_3{5*Q)LsxhFlhnGL@G?1Sk& z%n?BMcK2(H?0K5=*>3f#o-KlKE^|)&&V;b}EBIoz{Vg*drSs{&`P6ycrGJj?Z(NGx zD|&VF^AxjXA=H5M`5S9L5viU37+0&?I+vP4PTAU0tLHzNs5R<@O6~(I?6%eqL>1?Y zw6zF}vg9WHwfqdr)6(t!`dT%u_y8t-3BdJfSEyE+W_u!gcnj}usSBK(ax9>97+nXE zUe~m<&k9qk3;PRd1WVOPj$m(cH=Mr%jDxWh^_FG z3Vn`e%>r^ba!OxDG#ZmW6qV(vuFE5pMaz2trwzbG!j-N(Jvzf(`S!Qnv}{9PWOf!KcB}YutTqm=v(0tMw@gZc(8>t#;e3|A zdG%Gb+!U#988GaIk^$$k{0}QPJ8M7~WofoIeU3w(>))rn#b(OI5X;^9x#Oou@#Q^= zwDPPHeZW~(UiVA0dQdKyidLQX_p=gVRQqO`@j^9!OeApW`#^k|=_EsBmBV0Q z-sNOXX<=}xOuyiiWbf6<4M|{pIKn|W*^bz0VgTUd&N<)1Bw z6}z~Xv!=FMz7un=&9C8hy_cSDXSAB~cB9Hcxqt2C(Ggy!^C794?zV;o!d!58?b&j~@ck<{&j+1#gWhSOnVtydUsQ5=W8>MSc8pJz)+fhti6u04V)CI3Jk=Y~_XUXz_;(nJ z{CyHVjG+iI6wX%G+!<%^jJcs!r{%4%&gMDv>z%ZPlVt6H91wI63N?69~p^9UH)sl%^V!7;;s zcR0uKIJR)=4DYG8Sj6 zI@V~uvV2LsGnbr6dXX?XYLN|wQD>gMs+E^H;G4<5{>wMhyHp)G%L^k@^Mc4__s@B& z5DhQ5J%TCkS{UoyVG==`o}{00wMg@b0BZ`qS|+xh__CLlUU^B0YMEdl~(b}r?F)H zJhV_;+zz|2e{Hb($X>r6p$1fnxd<-j-hZq!eje=E>Tuz7bs}-|;5(mU_g7E9->8;o zQ`>HhhF zbtHlg>n+?((W>?`f)b}krpM@}vMjkItP(e??_3PVwryLiud@jjLX`-Zrn~Jz>@T0D zSf>B9;b94de>CZXFW41w@%=2=(X`vljYzFI7|(+Z_W8 zN@rLso9g);yAGzN-W>|Z=}N%X?nm9ryKB?=8+!SE)60VNUp6#1nAM8b>A)RwSy~QW z`nB44?x*w%nt`CC)!lVTHvU|3nt4t$26>);7WEHuO{Ha&bu6jJ$RH$r<-LwT)wW=T z+p8!n#v!3gMb=c?o>NO%`=R=(@-_pL1(^P$9 zIyeZzFD8KYXT(_u>J_44sjra_@InXzGGuk-0iUr&yv*PDN}4gaJ$u)E)igO z*jEvJ>XotAA$B_1chd3d`~eI_75++|vkoPO1W^}c3!eg9AyDp2qDhk|HCpCmkByG~ z+{$&*-ixV6^!}F5qwSAW;-jk{yFRRE>F3>@Gd`LVsD7(|B5l9c`0gN?@B8|qTpeLE_z9PAb_1Z3LQ`jhyf0Ta?*8lZ|t~r2RJ{@)u+aSa|X&lzILCN0DZSpy?tv{#6)e<~y|AStZd2N&wXeyYg zLK}no0veq!DbV;bz!NNu8`Rej2vnJ)Xa*=i@&7gk)DN=GDGCe}rCf8UAK%gM9<33g8~v_oxM^spc4#=(nJZAONL!P@8$Qw@U%oWMo}>_) zv)ch0J{M|{pReU4#`ZW~#2emcj0?QUYFhk&#*6iFExF(@qa|hh7K<{amvg*OQT5q6 z=|u~I_3*jGjnJM705=QEXG>-P2^S-2)$_ofg4gHMj+B(ltH zv_Y0-3WEr`&AY(yT#kk^NW)p5jxK9dy;c2@?yW~16y3?Wy2E37yMU>&$lNTc=;rIW z#=K*=PQ`fYK;uQ+{N?qv&DDwF$Q%+9(s1yC^oIR4;$&1l3a*$%6rYph)A(y$+Uzy% zd)#;0p{%rzkHejac;R#tr+NFs)biY8W%?Y19Ct56HSmlG28NRqqE_fULd2>AqIEUC z&n-Hs7ZGzgQm3i`=FXN}o35ZJj*M({nnIq!JKA-XfI2#bl$B0tnamznipBGXP(`9# zChue`SE6Syk1UY%KruYT8YKA63JnPU6V#Q@vV962QNwIAk?4}|(+Uzf+s)j2t z=Ozo7w;MBUZ=lb42cYvKja)CtQ3!a9kXeg^d=g1!*nc%meN1pK34OdaQQbJyCN3|` z_YeKrhIrkHQm7W>84EjFn>aZ*aK+jnzJ;`aF5Jiy*{qQibLEt6JTXW^Xr1p{F~sKd zxWJQX&u?3x7@AS#CxnomcuoeY7#FdND$|(`ENJ~%m#@d-*n=V?{}b=y`ixXfqVNN? z>({{l^VWF7#2j{<{c@`v4_VnCYw`w=aj>haEO9140j~EO47MsIpUj(YG`7ss7hV(i zp6qKZHX3(+u{2$)_u*G6QWi76T{GR?UiLZNnS<&THV)n9`W(cT>3;+z-{3E7-i@j@ zK9bp3I8;(+cfLE_heFPahECa3l7|p$YR#&=8ZQX-;*Puke)2#pam}Bi{-`+u%x5)d zhUe+i&=Rn!UaLDD{(z!)1UUfz$6WF1V74&VRegQH5i3`;IX@lOU%$&+Rr+POH%p(C z3uK^uG1Ty}4h}*5#KsrSTXPF~`{4S^9Y)?{w9xzd{sG&ZADPQ(V$6X`mAaMP35_l}PsR$y|hwMihaV06I@3sbD zYYCIJo8EXy>36qRD(xo-PO(z}lz6tn4m6nftwwlg3V)EHjC1bN$Qg=&d{d2}-~T zpb25)FE!R9NE3PN1p=lb5m#z+zVAlI1))z8#0UW}!w3r${6*V5=4Ur6|F3GCvw|G>||3Jh#T>k?R3)TL= zAY#v!4^63gH4pj=|3CUm+a935z}uWD@6ly-E2cImg4)9iD%I3bmK& zY?xhbu2`l`70x+%S=vt&CK}$m_D-Ax5I|+oeiIs7ByE`kMX{MN*xN(t@pkx*rxj4t z(~hBZt&8xipa0J2{CT$7}dx!)#v^$U+X0 zWHCzoa=E3&q59JZkE7fk&r=Qu!V>gnfrlEUHnICR@bZI&A`taIn$eH_l!^pzvAB1e zbKtbn=Ees;S}|3F8hWg~wdL9X&}@a`GR*>|>0+W6y_H>Dw=kHK4-Afz`?W-yV#9tc zFLFy|mTm4D??SxP{$6uWbcdq`8hFUoLc_G;g z9Nm~TS?_ONw({klJEtBDlO|0LCh=Vx5H$*Mm`zg!_1!=`4+_<4+xULn0rHUlb+_a~ zDJI+*aM{wXPIr3cxqw5%z%Ii3accJ#;i!KThQxbomj|^jIQ<%V%@Gm3hi;^rr}fV2 z)bjOQ^7RF;+5(RB3p_R|C8!eZOger09mhC#`N2njQ91_3z#x{97-Gv#l`P=u>h1j? z%sJVkdm_ch0)kN4izP)ZCZ$+KjA%;AW7Y)#J|1cix~{ajG4QQma(;Jpd3jXgZ7HeO zal#G@^aukS`}(+tAZJG-QGQF1Z!!FNn2-$57biDMI0&urhb(j8=FUm1bz1Lx-5wdP z{)2#OQVjm@x`eGQQmdUIX`p03er-Ae17a^PQrwNEw*;~x$$n{mCZ3)`8BNMZ`8)n0?;0{x<_ zJJAFYO=l%eXZz_)jaNVWlPYG#9IYXQ8by1aw7tDo<<_%(abN~uz!hXd>EKRJ*NaT- z9E652zKaUAI%|BOsm=fYG<9s{ghCX1mN2!kbgql{hg5RSXiMRMvLF*0l&iCNrZUMw z`Hi55>!dDM^vKg_4BP!~`E0{xk9Ora4P9h{kFy^%Sv6~sYM9O-^C-(0Ji*02%=nx+ z3<+xVwAzz&>v&7vOk1uUycW*qg}NA%gyJ60C>l|uNXV++>`K7hJh3y&SRX&5v=vu* zU9;PZeODToULfoA4P^QGtJ*iLXRmMm18jFEJOJCL`Z**sx>8p*bz|_yE4aFmX;hPK zYZ3di-8VH8>ag_FUQ6ORXen=%Dy4JZa`?{C=lNs@wZ`;~1^PSD9cvqxz$9q;2KtKG zTxB3o7W?@r5CNAiZNRr>4%{ggg>mAu8Arh}Zx$t4k7oX9cIXXMw=; zxDDKRy1IEMpzPWQc3F#{(($(w`S!jpJCR}LI#(ICvOiZZ_FuuOjMHu1Mp99OJR}+A z`(3G#qv>2tri^F4T9v?LVoHw5RO!i7x%l$)w*;L|`Ff8oucr0mh$DS8F!1)UTD1F% ztlJxIko7iz)Nhzi%?u9wg95;{PI8U^HbzB#rYbHT)DgWlsqSCPXhN-(PogCk=E!hH zDDfdY7tp7kz2VuC!g*e4P`Ecf+K_(PEJW%NrzM`P%&Yg0GuLqOL6`4a*=)t$ z4_Bu1&Ls<_y6DC{lsCE}VhD&4Nbmj??A2(IMs%J+p&&r+;Hb5DvavBJ+DQjpRRI~Q zmx~8XG26iWsNtW1L?Q)$^W>_pUb#@KOm4QYAk%i+nGkA8RFfaSl0 z_>eZ}9X2Oe@wloVNQ?c5;WNht4!30-S${3|DVhxb5&mlr{_7jMxYmBJ!QyAdJ`JI{ zzlJVK?_1^x3kERm`{D)3Wr!#)-BZ_Xx2G5LZ%~@fipzZNMP3}jinWOv$*AKXO zjEKLxYaQ|xieklsLT37)kVRfg(~1sopqF)hCbeT+9=nJt`bnv=E>5S^?l{}r8{ zTcc%rZ(Nz(s28<|=_~wBT?sskoLCe)_$GOcM!jCa5_7gxBF>re z0Pl!@;kSC)jLN4;2j-^wUX3RJa{z_xZCL*Zk){dCuC~@6cDA#sX@#HWOo$H8q~B{* z2-u7^o&huT3Z}RoB)-c3N_^v2D3 zqUv=ZD?ByO(?d2-(0X|E5yA>K-AX~T0be%Pb2;l^bG(y6@H{yS4oYG=xf}^N==vRi zxA&cAzxKv`?vJccO`jeJZ|bJqH=u*V$UKX${n3!uYlxE|Vu9yF{ zWVjd|veV0OCpvK+tz2fC41=sc0+bC4Q)qvT+1PAXum!4=S+6ujGB1K(2 zELfO!lVvR9Tb0R&m`2Q?7%DQe-$a6B~{XLnpnzrQ0DNK?+1aiw zEg24>Ik)0BhVTq6Mwx|0XBDF_iZ$KNIBch7560=?n7@Gr`4dPK)pLLInt5c69=0>s`tWse1YYI) z|4M<}oqtJzn}8IUaB;Cy>NIy(5V^bi!GlwGd!t2b>-PLks#RH#&v?A($#o4e1m~Ig zQ2jM#@k@D{?Wy`&Ut1r<@s*Z_xr^uo@K%fN1$KyWbv+zBiwK+ttLCp{F|AmEgQ%h2 zZ4`FteJ9&{$GgBou_DJENL(^-bmY|tB|fjfl)yVucRrXKYQen*-$>HLNV2DJGzeoH z2-gwG%fHXOD1{rSMy|95t-i&cgLpk-Gake092V}*sgFI~T29v5_uSD8K6%)UP1o;O zAh5QW0Np*D{r28y%F@q}s_QEcb6y=Q9D5`hUQ^5}$K{`_Fi(y*QKQ#-_x@5T$Uhwispy%Ri zlTXX5P3{~ly7Lixtnt2ZInu?hT;CqU$CeydS4*&FZO8`^eaMj;x$s^$cu`t7D;P*G z)bJtg{2>bmp!XNQ`D*8aOjZnb3|yJ9n`VKzTAv3bg4{17m&kzb{(UQ~LrJI4%0UIn zHza*PKsrH)aNzNLR8W`febDv_uV6z2lTuJ2&9|!eZI!3ki+DIDF)ue|%{s(jqB|2r z@~V2Q4S;|EsD2k+T&s3Bb+gGRAoe08G6{?Nha{3~#RG8G%8qXI?m( zyPzo90)8iQJ!Us2CgIJpC#g!nM4_o_9J?(}!4ejve>VdXlbQ7Ho#AMmF3||wJXP}B zi~nP2Bv~}dWQ8SMR|8Z|Aor-FG@_*VZPLih9H1SR&0=Ko5Wn9%i7m^oOa}6WEj46D z-~NXhLL+t;`?CCXu`B2C|3w*rqFb!@1lpvmDT^Wi@A%OZ@4hF=}@{xaV|So2Ort^oqomy4U4u@H1=jo6#r;o8qD` z()+It{I>B0@jka#JdV&R!@0ORx*z`djZ?Uh!8F8yOg?W7ZqNXEu-{{vTSdcFV?k{1 z_Gpm1lPp}KNPVsyWas>?&NupN-5ty@+IOLxN2GJA#L zoSzP==#Wa#6E_8u7uys1S*3bWphBR|CltF{Y?- z{(7pnSDuRW?MLU6j_4I!Dpzm5hHp9orl;f43lrzEPA~vn^__GG>BnFDK32QPpu(#E zu8mElUN7*%QV3p;87Y*p&=?CsrGE2NH&_q^&XT8*9!Xr~q3Bl$CgscF zlE`ieN?!euRAo56%cUI0H&*^`1Jz70nsdd60LUh!YMS6Os8cL^R+=v)sZ<&XWJ@Ra zhp`XIY5)uPTE+Y}s3USCl#S-dj)LLBB~e^PN826LT#3tL z-L0$BXZ?(&$<)zND7T7v3a<^H^;%3b%b4u4O%KF=)Gln7Y4>|AVrKM=j;Z%?rH~+| zKL%&l*WyHZ){b_|6WG(?cnxBSuc1Q%<}RBJmg%AjFY;8Px>Eaqfer;YB|ynF$~wto zuiG1E5kE#|-7v$D5yVE_fDB~+P6q@dpNXFSvc~c$`Yh#?h`mQoxzcg%?5eW{=u}86 zBW`k8n0Im3Wl+W;WH%tQc)qgPiBkrMj|u*ckPR_V&wEl#K_QUpKxRq#@ou$sUB4fF zJuP{L2@s-mSI9T3uc64UW>>1L4BF$T`Yy=VBkx%aG_BC&sLwsh`&J#c*$Kp7E!Ag; z3N(WBK^hSPF3x)@37UkK#GQ{<1)6}no1CKaqUmJuFURx#q+!{hbbDAAcO{S-?vdG$ zB5B_uN>I0Ynf*TU8Jpv^ov9&Wok97D@k)~Pn!d$A5?@;0Jc8kRcxIbVBLu0+bV9UF zDU4Hfl#s=B}H)566xQL`hXJ z?_t+ifc`R)e%n;zy_=#=%K2S{%T{2K{jIK3j0&s4Ai4`Dv~`+#X7oU zM_flM-JBeD2Ok}2&E_jZj*Ha%J#+BzvS_>HB7wY6;aBt9=^X>}h24WP%A3A?(8{)& z2EaMhLw5^yw78>TjTCW;Kp%a$`QdMhxw*f4zY=_Ez|HDS81C-wtDGOSzdi>uHUEY z`g$&GoFWt*?fwQpHP>?HR{s_rH966MyfoWu(Axf76nHpWIn9SiMFJ?_35eYwgkxMA zNb66TcZ5CY_YmvESVkFDfudRU`^S$Tx4f~uzq?&sUl#?evF{a!WeQ;>_O=XfcCS)O z)oZ?UwObULLKK1szE28F_gcT`sD7qn?PrY+i&q^-} zL+5W(Nu+Co!JnO1sgH4uWEqxfKDfO2sUF6&Aoloig~(6p1c+mUE{~WhpaQVF7GKWY zcB-Q-flq)Sk?vN{E+RTJbiK(xS>v*>#SjQ09kIMP%r3xe6P($OF zki(0&2Se$#W4j*?faC6+;{>L5e4#<8PQtG=){o$QTrwcQ&JV;0 z1rm;VjXyc>a>0GSDD+WpkfnzI&zZY>-z7g&J6Q1g!ezDRK-~W_F!l)HmrTlk$>IuR zrBDu@x9QCHwvb3mOFIIcaCH2RfTq`==bC(a$Wg|hzGGa@pMLH$M2KF?OD7g3T{Z=j zsLh0#>au-taZJi|1ulbP8ZMX8ajcfS4C*xrZ(O;RS5wD{FeOERQ3<&c(Ngg5v)S_b z6c|g+gCB3b%H95o>ChiNQme+%iG1bvG7i@DyvATj`?rDwZiPv=QD5=Pgy8EG&ez=m zXjEVB;5kS>Ud099eDi55E$ZA}y$-?;3nJ$4*}54<)vyQhhbs}@j5pNriiwOn+|%4~ z$wOB?KO(i>855H5;l3#j@D1oLVdC$WftI+ANYuW_@k9;Z zalvMefH)GD5!eXG%OtgnW6JIJXM~p_%k_i zjf|9SHpiX7#M`#-;$5m*g|meQ({Sk9b_o8W=%Zv%2Q&?Mz??--!P(C-P1Hqb zZUFi;%YYS>W zPgC9q6rJC-Ay*Gw01M9AcrwSmm>ei|_f%|o%O92D5ixjJWg^&8$k~311QOLK_GFLB0 ziuHXcR{`6kovZ%T9}VgL#5FnakV6IhbG){}aR*?^OLNbCnvc;c{s7UG>a^lwX1)Fv z1At3q)jt~$^z(`C1<+gssKlir$AqZ+OsTOip2?L{a}$iUIH0{Z{U9c;bs1xCi{_$5 zy0mV-UbcLwdK*?w(iduGb(Qs;#=qV|j zfOG}{oaeb(%)f8SCnv{8NG0H8iS7LS-#$o5iENr7B~4#dUOSkY&m_;6@Hxviy42bU zsyxo7_|9oGn8MG8fR8*eo^;!XT98RpY09Z0RW9zxO69bl^q2#v?uGVzO_zY;4sq*Mt?khDY*7Lm(!KGk9R>-XOmBZ`s;Rp6ZxAriwzRK+GH3|#aUz(E}@`2BeJD=0(O=3l5W2v|e*WVU}*kn;ZUjcs1= z-V2ItUqQyF<+%|c;WHRSzY&p(%#>eO2*Rg~iltF)`Hb$N7F4HY8E{L4%26WmSHug> zxvLr99?xNpJ=z3BygqA!n?*m=ko$7P)}D)0XEx2koDh(a_l*2Od}aHdf%`Ji%9al(Q^<;pk8{0y1F`&`UCRaxog% z;?ww({2|P+rQy`Y%@d<%2SIb)JpSvmZh6Lko^=t4n7M|lOgDFko`gJp{W;C{hOKjs z^BQs-F_cC%{c`F|*T2!Ux?ZQwoLcur#rNSMzpl_4DBsgfc9^3`Dza$*4{Tqdw!(U2D{53}u^6wYa-FWu0nBGevyS$bmF>X^Y^XAj1T7Q4wLld6_ z@c8E=ehqwFbx*o}!6FdHEjWn=_rRQMdUh2sZ-N$YFmy79&2aeZM`3x$E-yJl`{w{x z&F?SX(NTq~c#yms-2tA_>-jF_UP8!7#D{3*G{a!cfn22^_OmM=zIUUIGQmP<)4pT4 zVi(-3MiFCD@cEeI1Ue1MkAqEJ&E%i1al&ki3p%A(LL?^sbXH?;@-!vW#){8XfQ7{1j?gb;-{utCjtqKX23|ilvr^RMCvmQE>n_EsbYWB zTXDL3Gc$&LyNGr3Y$LJ5akr5Vi@kn&Caf~^ZR(2|c5HLvSd+z@kxv07urx?B7$7e3i&Xc1($JhSBlFl&;+Arfg-jrPcwsL(n zAgu2K`_BTXxB7_|v8B-N49v|nzVX8kp*R<8LjeMK*ry+KLIr*ofu}^HcpP8KMRn1# z9*6yQq~B_4cgvvpRdwuPd_A)7*^QzzpqA5cbnIczG&&lR(x&E5Gl}kDnbR#ri4TH) z^W{K(g77XOeYRB~{Y*+P{?iYf`3)Z|JKrB<SeEB|W4~K=G&tA+21m(aQ8%$!<;-Z+Y ziwWbS)*a_FPvrAOkg*_jeH@LM*Iypu6knf554TmDx0-Kh?-`wJL7CAanyUZ>*{!cG{uLOLRf>DH&w`t$T%!XCQiX92x~ zV1Hs#R7`$mnm?f-WC>d3=Z9+&*n-~kIkG}uL^M{hG;+Tj+*|YBXPLzRI@4E9qla$7 zc^7b?ViVE_mmc34JX%pv*_`2uTEA!Vm0x0TT#5eE1u&IqYrKA0_N8*_*K#lk>|SM= zK=QM=&PLWxWh4B)fz8{j3I5&>+{nyq0x{VLJVq=Eip8hPybDh?znsh`Zw~KX1Qp(k z+u7`lmGM*<&cw9@k>E{`;+W6EjxX(5Z6OFq3)p3+KA9vi5W!UqJ-uRqxSAaSxMhrz zdWX+vCk8vS-vh2#KQ@~9@o^j{+3;9n+ks=%Zr^Kgh2xGVS77Y9PkjS8${J{6kczz; z;4K1eF9Dp8iXu2fvibT`2dwqc5BJs!&JfeGMX#rEop4%=Yih&HSI5Ma*VRlPSAcQk zjMFQ`t|m*PPoJ!yXBlsXxG(<{&H44{3%Zb>#nKaedjA}(TjTcSG)v4ot~hYbpeh)j zmXnpN7?J@lE}2FWGU*V;Y3RW&%yzx4S?1lHD~I;vRN2nhmAr|0YLLrvFXJh|Z$IDQ zH<9!0Ot=rA+2~B0)qjRGTi!!X6I;b95qvO!2LfzzuVkD;63u>>|cZ=o!A6 zOf(~j?&}h@GP|cUJSyt^f7C;Sn=uEmn;#>^WM-=FD(Kc17q7Hz<-YWB4AW=6oU(o2crf0FrL=P4Saob`pJ3_n|0@J%Gg5+S>g z$r($10jJ|a;1S;fgUR~{gkMp3UgHx`5*z%+r9Tp00O@qnRlOwz(L^PwtHcB z*>iC7);pC%4aU2|W4D{8C(X8`d3M?c39#4PT#^+3kY2H}@3qk7%ON4@Kj3k7+pJ^sCXvOQVZ z%%aT_xlF{#z@X?wS5okFz?4}=R8Dfn?$Tw~z@-==q2Gbrv85vTgD3{ot%R{%jw4^- z)A#bz-M#dIR3T*lKT&7zGlA^p&d3>Y1FLG4(Ypjz#smXR)@z90;M4z&Cxdow{tTk9h7?BN#(kz=wUsK|2vIWVR3D z_31a^LCN*34}J$n4xrvYP2gPtp4HH)^@(%$Y3nnpNZ83DRd!|_FKpVC*%b};k;~C8 za9zLLHT`V5nsd672j@Jxo{O*^+7|=}AxA`^9bmW0iKZdvij6+FGzc~ooqk?MZ(q(< z!yhy~mBc{^t-2ssqTC3bIXc2d-}^*i%(KgPUV85_9oN2K-~xPr0RP|sBzDV3zX3Mt zIMRB&C7U3&fYD*8D*DGWA^-7ZXs?woZre>+q)Zw(-KtDSAQI!(yB30GO?-__#QHsB z%(pU^97hoN$)zof*O?9iO$UDYbun4CzcAk>PqCB_3S%Hw0wZD7XPPPKs(!OrqtDNl z1$!C-dUW~H8J4RV)GEJy?|LVjM%66aVxota-k|8PL>{7XF1A!ac0jqYcG-KqnTPzB zPXORiZ-41DYyEcoKMH>izmkWraZc(~uvXyzkDmaT2<|t+i=n#2S~h4!^pqa;uQ6o6 z_8y^7!4%DFvUgP%%W;|w7eceeEpP14ws9{?vg^~tz>ha@`d62iS_Ezwnrr?-ivPmF z-F==uZq?{MTIm?pzfYi8ww;n9fL?rbP%28IhDb{Fn(l0@{^(i#WwZOSxN9zV!tC-` zH{3l`VOEl5T^ZHdqD2(OS$uw zAh#>MFg*LYk6jNcc`|oW@ZY)QLV}ymwkKYSR#uj2|H8u+&&*&gWHP;qfAt?d|LMlK z^0oGhDIv=ZH6cI|-*Ax4P!U>=hvv$^k#p(q*9s2k*{fi2!hBpSAd2HXLmZEt`y6a< zwQlhyWj3S3$}2E-CtB56tnLh{{_HBbeemPn*RLnhRr9Z!eWCviE3c0z{|yP_4Riu> zQr|gsOfz%=*@c+VamLZu4!KUM=ta|W{)(!#t#IYOau z^{fOz_3iiSQ77`K3AgS-g_@~$JDO(=iKXcrP{t94Je}HI{Hj?869#@lqsIvDUvPX=MkH)KJHxbJ4`w+V#LVYR$ z;$HL(CX0YBI0$86I8(&AqmtOo?qL4u$@KxcNRb}&eTc2W85}IE@;Q8@M78e$w+rq+ zcD(1T;rCVhHR{#QnO$q|jb?Lmff^dleY?*mwPXLTmwUGlD&hTv-{O=(s=eoR`V7s> zEp;QkL#G+7#JR-o?y+O{Fd&@_7x|xbGVudWPEkPQIvLHVCLqM=`RNwvRQOXiFxz+- zNG2E5yZ+k?`~S)(kDmXVPbSygx;WBNetqZBW#b+$p3qofe(#<@y&Oe00gW z4Ipj|U;o4a9};@~xlQr=q`Sx*pV^v^^aU%{#!V-RGIYjwT-iij1?>WPAint3;%KM#4h z)oWhpKa|#@(fLz+KX+3&x(4f6G@Z-6A}n2)&QSb~YxDL;FefSR$!k5TbCq7=z4C)W zsb_J|0Y#O<4JK7LB2lbs%h0ZA_2jIOVf3OaFYKgoG6?7WQW9F0*x+avj8Z$97m zMf%@za-CRX&|oKOuiWkyshQJmZ&;BzC^c1VGjb_ixTkgqb`1qiPUOHi z4DkTF&KpMw@XDB={jP;BMH^_ zOLZ~bC*#Q)G#pj=L9cwdL0Q-i62O#8ad03B(|XC@B(39py*(#QMI&eSt&i`K<~Z{> zt=_ykDSL!yz>nC5yEC2|2L#gRo9}g+gaA?~NW^Y}bDP2!qX7BN3d{Ypb891AW3@)x zcWFy{d3EJm?z4ISpH%VW{&amj!KV933;Mt>1>c7N=3R3AZ@1v(&E@+af^H~OA1zSi zX6MxWgi3I$juj2iGyhbMroOUgU}V@Qo%NKkK&8T3zN+Vlo|~n%uZn&){cL?LdS)t= z19CrC?{uvn)?|*tV_FodgXK+}$05OYlH&5AMO; z-QC^YEjU4g1$TFMcVEDQ^(y z;?B2&>ewF7r-*rs_0oc{)ONpv)iQ$**JOjhGuM^|sVfegUbIcMI0W@y$|@_*tG4F_ zse3L%x*@i{9Gm5}=r>-O;?(Q{(LuIqdbI36kA{Log~&)yB?R76K@YBA6sDRp_p=H( z-!x1O0V-=K$|Z7`0rUQWu;$C$1cBuf0OZ$w_*|qS;BbdicXygRieOWu^F`R(%@dn~ zbW#h>v63GV3H~ed3c}-p#|J^ACDT!gis7N0kJml_I5b)D!b7rP0IXOKv9X+6}-qnflU$23b77XQH z)>Y?aOHnj2ZXNx56Z98}j( zdTCUw{8VvdNE1Y0*6R$ItlI_MHZ6Am*|er`#$r&*u>{~S03oO z^Kl(wO+=KwX?YP5=KxhVx1c4xGf_>=5-tv(ZiaN?31W(tMUT#9VwQXsH+K+ay>}AQ zL^0aP-SW4DCYGIe13uSRhx8OU2|)Y??cFHKXF6_&t*4cS&`8?4iX>iVOT**({SID>ixG?k&=|4Wdw%+;F2In9>I5R-z9pjrdcQ=I9n*RN*pQ zC2<;()JYV>IAT7EiHnC*Tm~zLad@RDISlx|f%_?}tanp;YjoRUlIa(5k_0I~q~pxE zu+*Uji#$soX`Ux@mK@Y1mEM&(d!yervi^AfZ42>XH=83kUv2uvra5s~1?PM^Cz4*D zZ0^3){tt?H$afjeCivBl7&1FUwbYCX76+w*Z%J!{nv0>AdQ?7&yB&ivQTX^}w09)~ zHCNITil|nt(aBX4bYmmmT%#goaL7{!6NHi54h;<0JP*&@+QBTQ(h2|R8Gj72I1=|G zmNL!8di8_BJ!yJ*N7! z`>)*r&``{RwT#`PM(js*g|R+?m4U=@5Lf97ABQuD|L(v%Xyvg!;L)` zLZ0H3pxISt(Cz=6?Bn{~a99jH(&MY(-&fO+2Q0aB;_Xqc}uPxjfs zApdB!6uT1#9KG~`mag9yuqB4SKbfQQ86OVYx2)|B6RE^KUMVIoi4VRXh=%wzx(&t> zt3^Z;Ef-G$led57va{pM)zP(Ko#}*`F?#wiuI~>l*Ndr~w%1UFHaS_V)p~e9`Ibbs zk^|7!3qwzyxu)zLc}YwvXry~4!)Vd0ZHzk|@eJJ6 zdd+CAm;6GvCedQ4T1_^}zvbrRA9q~H0*ke;r8kjI=7Y1d37NFpMIV=`WH(aACegsr z&PC3zhs^3`00Xt2@K3_^uP>F$ze>t8u8l|4a1gnQ_iLD8$j6uw<({(QQiFuw)Q*-t zd@0L`UVW|tEv?m-xR>+(v;?%wKDSFYO-9^y(U*^ZnuXh@DdTbbF}0nno8(B0YEM3(~+Ts?A&6O^mJ6@BU%HqZ8#t#|m6M z-*>&f!Lllu{odY0BBei^hJ!;C6%xv$iH(ZNW0|?Z)xcnj#^JzfnN25@wWMPhZA#cvwyh1tgQYq?x?if*_r`~ETATbw5L_IN~5?O<4A zrM>;Um~(1Ao_m`1+ef=3j>U_ywNuKo^CFYeT6h%5jz@|F-|UM{f4!*~&XDM=S;Bh; ze6K(zM|L0dqCO%U4w8OPWxN4qYv4kaW*BznWk@WQ>;p$5FSGfr_e3XOqO|+4pb>L@ zk1YlyL8VsVoqe^{_0*2(FnDY`H{(V8^!bYI&*(hM9wg}!eITrE2V5qx&Sp3a`ug?j zasO58mNUd>#(SEUF%~|uJ6TulI-?*m%=8N{CsBvyS+N5B@MLiqWSxiFHVg3 zFK6af8)xnK)~LvZ{rLU=E=c|N?<(4#5b$k2vMMUluP&&TwzKaOtg7?01znSDhWRsp zQ1Pd>7i^z9%IVMcX(*7CPN=13vFERH-1smgy$%kvw1^6Kx7(EZj=pg8dbdl_U^So9 zASL-oNo7-!Rq6tcF*4gdIU#F^IFnZLHCNgulwGQYS;9%Tw5{wc=QCWC@2dW{XFnpl zRP;&TqTY$*jl~}x3WrF66Y?(Gwag8NS)@}KdV-aNg#7v!*U>s{3*;OQN`t$~uhZJz zhFb*&Kw7Lm7n?Di_`0xNoC5(-yGm*{nZsCT5!5$gH^IJz9}?34=fB1B=c3}yIHx4U zS}4;cO!Q3)tJ-@%G%$dd&D$g{DvCk(y}INh=dqop!_a?UAwi7;wtuB4ziIv$+JlEr z9DBysi#35)EIcsCSrPw6gnwV4ct8AA$buj-G_{iP-xmHJ zt^bB2Vt>l)$2=oLvReMn!+-xK3AM4J)X1js)p5+CM54ZcbH5?Iuu^@NsHbmQ87(#~ zTgQ|lbgjE#SeGS7LYtcMFy$c^ZKK@0S8mC0n3p|Eq*F2hu1F0^hF?$fvAKAY*c=l( zrgU6x*f78u>)6~m%R&3!PatW9!?b;I&L3J=g}t#s8j zm5;M=by{n2ZP)BaD$NJ;yp{hT*aTVM`l1^q@x5vN{j4@uoBkQfTiH(&GndGTh;O~` zW4kt9WCV((y2&=rSw#D2|&)28!TtP z^;OQ}Nlgm8PM2<$7G&(q45(+uZK2rlSura0AlJLhDAB3>#_$38@J0A4j2WRzzi$@w}xpEdIQ0da}G{9-S34A zml$uB0eQOG`{&=W6S6@0{QG-{>!nXU)kPGbN&JILEWltykA#?ypWhBNq^QZX5PUzf zlM_tVu}4w5rHYZgEAW08O@kD;t?$HX4y(nSJ;suY-%)O}W)L9Zlj|PPX)k4ZVZcmd z+t1*YJRcfct6{4dkwRi+s;jH*TxW}UPT&W(=1+2WzyB(DPVGMn#*Zzggr zv0hI%O6o&xZm4;gUB$buj*cI`xSQ}rU@=DIsR>IS{8=m(dIPtJJMM-tKO0&2xHP#8 zCDEdv5uU}5&!VR?>j_t{>GqIn2-L20}e_mk(Kx2>1N zU5U+3=P$$3*{ZEP;PfsmpOTTr9Oi@ZKKoxC9SHHio~Yf>i0Kk;8#@JCJ|!-IoEtYb zO25j9FPS!q56$cMeLD$2#W@|P3Ph?TbYkvM^oRF{jhat(|IhSgB-j6L$LF&X6o#hQ zY{M9ZUxV*6Pp2XpP&oKmHsdpqPMZ(K47mH{)8SY;^ACiIbQ3f{_NhA;112t|x~F5_F6ZMV!O z+@5~QUtu|QZo{lmxuA}%L^e~oO5N5hk%@hb!?Ua}^gL{k{Y6@k=}B+Gwf!n< z5evWjPS{cIWV6+Jj4Vzvn0G6>lhMkfYUA zZ|Fl9%VMRXtmxKuwQ99ypuuJ|Mi1XDa2KfL4FHJLhD%rRWIw`NPgff)O`{0eM64ep zpp-hl5s2-D4tMEKthrMtWDs?&Ov&_UL)I7?fvkQb&CE%z+CKwPxRP2dynnj8g&W|J z;KeF93GH_ekmxw{CYY5Et`>XbE3{9acHX7ZtHGGcJ(XSW^8`!*=jD`Z_%*g9%PiTri8{a%8R>#Rkk^8^_<4nWMtNjZ8;_V={=*wXNuHsJ3j{Y{wjRwU8hhXSY-Vw#U zQOJKT$;faxm;@TqeRV#T^FRFwcpSo}92+fEv2S_ouHv|FV()e+N9~WUQ1dx(*lPu0 z5RW1W+gzx_DXkIVh;t2(rhgIlr@Va(rY*`9uuqDj#b`@wL?xK{9Mbdg1mUChqBi7k zLPzM4$Xl^Qh8FSdhK)h5^WztDZ5g#{9ZYe@S4ZfWpYc47CM>Dr6t&(WZv>u7VXd^j zGT5kAfK~;0(11?c+*>eT>Uv2Elv7$_$$A1i;TxTRVpxIXpMe zikR(LI)a8!(foJ|zJ@k&`|MEkAL!b;_9+qHKK;wsW^RoWvrbZbqNJq2P%>(ucso&v#C`x}u0M;O@k?-06kx0!`!Ko5>2 z({Jbcau!mVUtdf+H00*y;+zjn8}`jqsxdLQ#6JK|MY9ci-{XRWY$Kt>bsyGzxBNi) z@(kQq^r{#<9S(jR3b)t{Xs?)b>L@^Y0-E{T)CmNz`fjkoj_LmXxb}3r<><}2*yYpl z?t|dqtf{=1_W5*SNTF5w47d9Y#>rxZtn@AOG3=#sUD3F;&zodv^qj3N!+1V=tqm!6iObu-KymJ2!m>)%4MHE_k8|WR1;3GHehg}58sw?o ztS$GSZ>MHt1`IARVUY>*adrz^@!(?xdO+nsK2yYwol9`qPXLg#4}@F6`xCHBJX=DJ z-eJaWvnGU*iQhG|u{Ny@Vc@1qnt7rvszTnE?{<;#+P08Jyd5cU zSi6-HWVv0cVl#Z(Uw0r#432KewV7spd9co$YEk?!qm+qFz=+#LtGy}eQ<9MWJ^y;4 zY!z+|-!Gv;x~F^eod%vM3kreb!%UTgXh&F2F;gd;FG&YQd$=Wu``^d|LiiVv0%YzY z6|Y&zFSAFsvfh1Bt5y|XX;VW+d@}jmpD}OFo%G)HXR78%Jb$RZ{ll7j@;o4ffCM$z zyxcWYzPa88%-GvgE}L*G*O}kO#h~FzdtT?~C_47%XI;gNj=I9lbQ{g^_Gq{cBPOkqXoC^s!+xZx z3R6^hYHBJs7nk6Mz#j}bW*Ab8dGXX3l$V#REGJNr3;5s}n{dDvFg<$aiz*(!pY$|$ z*CW~VjhGtZ!^l^xSVIFhUd_^RahCSEH(#zP?oR3fdSh0u+x)YC7jUCnQOVlV2h+x< z+wr$B_~`D@Ugr4oLMuC_WQ7vd0#OQcd~%}TQ`6yw|LjnyaA_C>%R^hAa7E{;br70u zHn0*63vsD*MTi8fXmS!t49}J%DZZ}@0U|1&?R#*X;pM+aL29K+%nf9~MAV!;3KG8X z+^w(ldu8gP zwY3IG^0_Ky1mh7^&f~<{CGcc!R~p4CrwP ze(V;WFrvifQ}rfxcuh>3p6lajXkPW^{sy)kq0^|)M(`y{#PZSHA2>+njy3#KApiFlC7)rUjXbUNs9f?G^ZLE)O&Y_~WFKHPH@{F4_l&l!Ja93X%+u->^#Oyn^ zobaF6=eHODq7AYAwMc`xy9}HZgnT!11%&^|sWgl143?Hw^noL@f!aKE==4pJ%if7( zGyM53iy=M|xY^KpyphGZX&@K^1&G997JpHSLAnN+POGPn@qqtk!AQ@{o1uAn60ND+ ztVnj<+kA`+Mb3*Lwi|$Xd^{WCW@o@irlV?MVx4A?Y@*zio(W^!*aJsjtKF!#aX*#n zUCmB*8KC0g*M-!=>5Kx@i!i#BC_U6Oj2y4Kwo__3jVp}?w{Qu1VsO1elML>!$J9=t zss=WfIlQhq&MZ^fPHisA+g+Cfi3(qr65r^ci=F;RQuzx$1%~0}0A5x)CAf!!k;W^v zfs)`{Ri0ZG07ab4mB&e{Gtekc=r`A^x@$v*mwQ5;jiV*)xzZ@o4p1u_8nEA&^oYOf2 zNFo(;O|sHf8}-=_jZEyGzIA^J#8RR*F_5LNIp%dOeb`JUSm(d*Y0W?)x>OB%KrHI@ zMntM{@d`K{?RV$12zpaF!W)6*DmI^diE{tW?-8hRe!X@MgNHFeAYCGG zNNu=DoU$`|(P=W7K?S9BP~ILy2Uga6d;amc2i&ujGzsr6iL>V$oKq$LIZE*c{QmhGSU7+01nz6joyb~y1HnA(Oe?^%St?z8mAZTA29qh>U%i5qRk=6Rez zDM{Y=9duIIk5{SLp=#{@vOu_vaM6o3-W`IR%Jj4|l3Zc&R46Y0M|G}o7^PHlHzbKl z_8=yk+vTiiODC~G`>Z}VnC)SGP-NhIwSja!;7z0V>e=}-om!$>5PGa6PxIcJ+&CC83}yyt&Om|@u#bc3K4AjBJArv2 z4bgd=<_?!XdPBN`zj{|WID&3L4b@$$tpUa5ho^})I>E?NYHHZex@Cc5>Dr%d-$WPy z?t(d8Oi8C;!@y*;;V}N!(pX-!%Du#Ts*hR1C_oq6QKK5 z+T*#0Nw2YS`QyR4>4Z1;7;u#6G+WQYMYv?e+8U?}I{jh^G0wcb$h%KD)k-kG`570u6T3!?%U~Y~CrO{4w9E@xQ3NZ9-te61KKb*7B#! z0F9aA!rb_k^3j!A1CEbMmByE3luCm%xK%*mVoVK;Z*`L!7)1MUu`bRO%oNU_@wM~q zBT!?Z>?=tH)@3W_=WdabS}QvjXf6zy(X05 zfb3KQXb~@#fh)!jQ$ut$wJJ7EoD20;9b0F_ZM-?xGLe!x3(x6mU#oZ6Zx>d{P|bZw zJc^N8W?e$2uUK32vFoVr`|1Tsv!yoVkO0{SFSoZYx)Sy(Aib{RG%7mfji4<&mRD-bJK6u+NYUE6G1Pe?#LsLbeigRSlgu+FasD;MiZ0C_G zA%^on5m9_Q+8SSUZMHNjwsotsm&NL>ThyfBwM1f$*78zM-8ZczZv{-%y?Bb7H6KxJ zZoj2G?1Fmbs)yQP#Xorli2Q{Hu+G&t4I}sXyh+s`+6t2Uyouen^L*knRdxi_3IE@sqHOZMDf=we8z zmv*V&{D7(iJoEUQN)$91J@b~|l02@vjKADHBA%|-0s?e<`zhHv^Nxhns&&6+HWBCR zzVZ%berYxvV;M;YQg$Ce_j~lU(uc8AfXUZLY=5*Cmtvy>G<%*)=G#WpA3ve(x$ISF z1tStJSG8@ZoYm&bC1`AB-5s*Tq-1SAZ&B5g?QPVbTSsyM(0x?WIi-U8ZUP*52 zsl1%4uTQ4KRdi)>xblhA{R;~u?r0`M_|&3M^Ks;$%Cp3|=l zSZRymeX31(nOG6+w@EYZH#~wN`d}9^x&Ua5wt!+<48s7MlE` zSn!OVJ;ZTH8Vb?Ye@X4lu52M8sAJ@N&ejgy$&I3l-5j0T^AA$~+q`l=ezBm!O=0B# z!<|F=uuk;KGlH^n3?<$SACsA}+kBa&IhNqbSX!53{>>xI#!0FC(HyO}gX9h2&m3>G z%BK1QW9enORd_xx_u^4RJX!3HFOsV+de%D^2QlxTZg+|H`N^yB(O(Mp+R_RoS;9TlGp}&Y;_^kM z@)pzpsN}yaTBoMwE7V|RGaJ8WzC8_M*g@r+6er&oLa7FHklh9U6p-BY+?TT zSe%2ojV8{Fcn1{lRkotwKj7Ju^6JHF!{B?qgD&mo$?oqTv{(CFU+)+c9g6)Uhd-}A zNWrtR$_Ta|tYosA4$I;{*%zBP!^9(gI;OFu-bP+f4I&v~K9&wIcOb$?pgfCZJ?J+K zybgb>sx-H1Ma4%;GUHxg*PAJEd>Ok4bN7%ZINtttcIpTE-Ioj&?|iNz9xRrb%Q+wv z^kw>WohKl%Wk5>Blaw-eId_F_bjC}-@>or}GiI}dNdsMa@TxDn$ZPhDt&fyEs*pXE zW;Ef19BlK9z74xTLbU~7nZ?>`-N(9wRsByJUwkOM=y=Qmyp}6wHq|~dK;*)&w=y@R|ynDcM}dL z_KOwqF<1r>eh6UjhX(6Yed+~G9x#%fr_ty>u|Z7L+nv%;2mp6&>XY{2*u5CNu1gjA zRAugdw4-^?e`20#q>Z0BHYOXK4=RUl22q19)g@NaU}~whLptkFn~a&r%rvI&+l=Wx z(aVjm{Yg5atlF1&b0d;`8;$19g{FB(+j<_!vn)C+z zjvIA=p@@RY5*yh*w*DLAL4RRizvM(!mX5x(^qyj8sDYT_&{`R6&%-Mvl=zEMBT6v< zLpAXu53PakVXaP{wRlWKt^OF2vOB!u%#5+(wzo`6r#n-**3H$Jxr7{bmZ8X8O)tIcTcI>xm8#eCKEf*8tQP z6adal+;&3E$VIZJDFsZvbCrsO6Gg#m_0FL~yRSa{9uMf-*i}_dwn`SpQiwQH*!;g; zd!tXAgZ|+?@(mP|;Gw2oZ~VO2B|t1aL!j5LI(|}c(isKvSQ8aLs9h(*6T!42LHaO4vwSlIr+(UrM}Yr` zAuXGa4-x7k^?)xR&NQ1L>v*nW7Fht3)qdP;RL^qM9h?0^HrZ;c#?vnatWyXIsqd@blIdey{yZdzO6qeS^1=_^?^dEcBC49-D$9)U37%l* z%BQKrT0PSrhA7uP&3>-&el-cYe3gzmzpu14BY50eGv>DH_=xIjX+(6zc3wOhu~oc_ z+HO>d;xZSr%R#(NVMQZixRk;ZMp;!1LM@I^6QJqL#G@~u+{D9WmO zM&Su1@ms}%=bd^q+xhHTS@I|1Q;a2%#63wC(@gT!etgyZQF7F#wxv+=iNK;sY|L=o z+w%M*Uv1WnwedW?g7TKj`Bh^VYx@?t(j1e-G4|Td=AM?7{hS=CFHAagURcX?GL~W1 zE6#aBqa|9GyrJBJlyWTj)-mxqu`Z0v2X#=^(q5Kd@A(x+I@432k4VKs()gVc=>~#D z_HrPU6!AUTW)gsgq z4M*Lbkj6}x0JE|=mW-Cq62Wr4dj#ET(`Da8cAJcf+AWXOF6cT@G^`)chW3NFGw(JW zvza3wu{P?KqxG}wKk9Ycchb)iNt8SxV2AH!f+UVX$(=lX>sP3TGy@)hXQs4Bd{GhH z)JB7!fozasfDh@Vb3`G(iVQIP)XOh@BG}4(;nqd|?F><>qTdQ)Qz@(lI=w>5R0`?;Rekb*0@${iVjmeQEyQ8J>(OdU-M zAI2wlDpP$I*nog55%+6cCu*q=KA*|!(jn+vgGqfkAwC490CT_zahVkvmxh4avPa}C zM>0d%bVic{g~M$)BN~%n2-NcpuFwPNK7kp6Bl@1hoXxNxzV3yaWw8vuR1C@SR(^E% z@U%Yw>3lGszt(q#NW?ejjsHW;yyh|cqDWi}=At%r+3C9<6zTcywo6zv(Qs&JfG0bJ zCHMR}MH5f0K@w#jo;=mU&5F@z>8yJE*07NnGp%OQ$^-A)$}N}c>sPMHfUoxpc4fEm zylY$ihVxYvb(0t5;5U{0@CHT&m`}->q-?mZ&|cD$tmc0jN7$Mm2{}lv?OA-f`?d@Q zCr_-ZYJ!t%x7{!TRt(1Snx4ARTc>*xyQUunn`EtY?8?>%;v1lM?(4(Ja)V_#hwN!K zrwUS09XI8hcy6`sz>b3lon3u@Hl~q(1r)L#QoP@j(d_X-tH$WU9z>Lr`;lWMqf`XP zD2-Z|a&goDi)@^@ebc{DPv&&NRuoVVoi3968gDaG^sX9^<3%;G33G5HJ}VgfU$&uk zZtyoM>1S+A4gs)v_%j$V<591BU$4}@n`l%uCOwfdwMp^M<;JhnpxvKkiXC{oO}3FN zg`vBEh8(x!w@`Te1wheT7pIhf*9)UUt)_SRSCPN_*QAVV`mgG(7L5r>;^c6m2?PF& z8i~@|gPgtjs$W`SR{fT!U4#0q;NV^B{N+_tvs9t{k6;(YItewH=>y13!<^bl$~mLt z)u&nOly3z@0B2Itt|yqr_K}7d=+t;(#>p`JA3Tp*VUWoZTd&XrTs_ zM5DvdPv1GjxnEgzESpmk(sKklhT5Wd-!kYjLj)v0w2|%icS>U2L^BOi0mYL}RZ!Ef zg?LOF{b~(Hx#kwDgRaKI-E;S@PhKHQc&POUYJDIn5iPTNa6xHZ3IAd{_9`0df=3tFHe<4(pe=|0?;pRfaRD&WiQQ%TnZRP#>emG+*qTc8ZTy>;fK3MKU})JMYs5 zX(y1rpZ38iE?)a zUw|!~d^ama)io49ok3!Q4*5}vVM&OTaxvd@4W1j2Jj^{9oZQr6Cw9T@#lXh>`6Yur z38i0B;7oc>sN`K2NlNvk^vbTq8T3H8ocJ^oI8IJFJ19IpD$OmGgYzx`#rc%)9MkK) z<%;D9hO`z;15M+3BM3i*y5o(r=(UMT?F%q$6tnf(*L+tb@tU83eBNIEDsOi{ zq3l9dcw`?BGa>yxXAXmx#<9RFn{_LpVU*E)my(Er1#JUf5H_(*zQC*9RYbg-#)hCV;I;?`$e~EF1Ozu5M!q0 z!6-6#@z@P~Sndv?OVnnGY}=jN{4o*N;np_USb`&uW$%!iw@2fg56qVmEm1!dm@@Z< zz6NtRfa1H5BKpG99dwC|3zM!2eaUyubn{i}s7}qP=sjUqD$3Z{x4cz8F1x2HCJgfq zK*NR=J8>#Wz~g56Y7+Z0oMRhFU(;yP85hzVHt8jxY$n9$sUyBKyu8^*%$GI6=8NFy z68ONWWM4K1WkpEfJP1OF$#!+uJg|~`F?Q}jZa#c1syuEa?@r>7XQp;8apLICc)UEB zT{Wwj)T6gPd)E45iZxz2w53Ff4~SeE?VtTL!X-GDbR0C2s-0nuB|B%jTt-@LQc!Oa z&skwwsqb32D#RDdcs$SWesgLJsvy_uFclEc;!pDsSW@EKnfqiP%{t{{?t>bhcZpJh zvw~cuuvASs1yPGO-=W88^O4e0-jq)ffTVc&(t3ATipxfmBSayW@cTgo-}X9$9=~2! z`|Dc>MB^`t`-9y98$n9a7J@G>N;sWy0w}N##3JXs9Cg;CRP|XKLZfpFW~(KXoQYVr z17jKi`_K28Lmt0TZw^Nh7CLcf_v-px7MTcHq8Tc=Y{24XEV0CbF_^wpJ^#a?RjUn+ z5s}99?_?X~L;DOgqC)NlKa>{MTD0QMHNEq<7!cN3pAKo0 zKE#04GR3SsuyTG`B&!)`uk@6G)*Y@dPKDaLu(#YtZH6v*w*FVwX9a^zhjdTbB4QTo z+OH-XU8bX*U^986F-Mz3q3W*(k=}7J^Q&QFaQufWRs{OequFO)Cqkg5H3O7~@@4on z3&tYj<^?I83%@3hC5sETldc`qDnei0*E@_yAXY)B)o)|pLGt?e+CPP^5XSkZoPfkf z>wK__PmKu40rI@8oU75v7hF_vh%h4KD!wDGQB-;PQ|bM+_$*pGKfF_Sg|FCE#HG3P zAGmDijslhad5qsKK-A;c=p%E69d94=Ku%s-K^^QXzThOb&i$d(1O5d>CU*{VYwA!b zGJxK|hx-l4tD$Ob{Pt;6FdM5pKonb=mMy@;PYp^Ww`#hY5Pgx-sL08mH@$wLc>Gzp zq3U_@XAPX(kwH}hDO_!kX9@dU5iOJ5C5FiF8e_E8+c$A(Er~yT5v)EG>HYfg!T4mV z-j=bhnPq3he%t};XQ53NCKwc$`jc>InOks_^g0J&j9<^$q(h>Z27fZD3?u!>+LVe&^No_Hk zRvOE0_Vb}~R!4mEprMk*3#E$2|1mdoDeBFMa@{5^$bRi~HANZ(1&d&La^G+`jYC+{ z;rq*Ek{lQ>7Mn8(t0fSZx}ElKD`;-b5o%)B?yJk8X?pMFoG!cgl#UP3_|nf@3&e+F zV#g@~%k^@<4f8IOB6O#K+DX;k8CuMy-C=fU;++su&9?F% zE^65gr}T}D*&7M;K4s|#J&~n(-Cn2GOYOPzuW;bQTjwI=`>$^wUHTjC`l1t&QF+*U=E9!a-7`k5P-zpig|cKZQ|3C$q$FwB@|wf(mzz1e_1 zX*;(sdy@J9yl)VvdxVnC?;0ph3>*@s5F^4KYE{>o_*qpa>V`((5Lqd_+GWrGEa( z36@0lzCqZfs!p+8 zNHWV4_fD_KK_P6t)_hF&5NP3xXs4(}8GVWC-St+cJ9mpUp<3}A?5JgGjH?7jbzKpI(55eYXx zC|$yER}|#-l$u(=qfM;ENH6+DdrK~a9xyPvasA<;{7QXbIn2}c%RaxAt;0RWnx=-pVYUKZPt52blv~(1+8DR4<^M)F1hB zoUD5mrSQ9*Z13)*ga}WYxPdDZ0MaI?p3yF`Wte&Gkrmi_!-UNP}sia%sZscdAT#b9kN=*vh_3>6y*Osi%HcnzUxV|l3 z{C*}~B(PgR26s@@6;JCe5QOfP%FxF}=i~d6)b@69^6oLw=BOkWGUw%c+?`;P_zil{ z=?gxO9gy)O(ILt6y6yxQyVehm`Vd+>y3clU>J`5CS9P!dl7yrb^v{<#my0V*D+jEC z2i1VVQAwRX2jd8wk#FYj-#vK=t2^FC+DdhH&Gd=M?32hasgx$vSTX&ZVw55KgZE9E zK|PuUXZG7h;mEA~K5sBx3n=Ms|rkBh6F z0uUJAa(ghBLW;Kp)C}r-qDZF!SX;{>Aeta6-NvR_3dIx)F{jh6Zm;U3(ECq=C~*wLO>NTn0)?$$yK)!vA>s`^|A@w2o~Aw@?2X94z=| zBs!;sO0Z15Q=ulges*^@OZw_ex6lh^1@4z#W=5A8uc=EX)^>>r`*TN{&+PI#R%pG}`!5y7|m zneFbtP|=wzTTw?arU0Lu?WG6?`~f^SS)@qH)#2|8n+ptnYQYQsmRQqk`xZ>1k@#Ky zUl2*jOM&+c>{!p8D10kNB0?eSteu!U>*6943jcm+doCP>Uh+NB_FRLx;r85fO_wS; zz{sG{6~R_1kj+%(c3gqA)@)Xq)<4gi-0oOvFlZdgWH;cG%jJ#e;;QN&K(e%Z-cv-x ze~#AdGEbxmfW77MPUxwpOl$zLeThl*K1f35tkeoN6i3!Sx$KHZsnB{`IGLEA$2?uA z#4yxubAgs4_!5-s3l@fJf3{Yu(vFG5mdn?i|M|SknmvK4AKj>ILmj9Amv3L+OvfG~ z2se1kc*d>qAD&ShTst!ykZtTsez?05O`j>Y+p9%xI$xr-0DRQ-2#^W5X<~q{|E>ja zl68Wx{)6hG_(!HPh!fAy_&m)k0KRmvA7Jjp0AD@P*4RmwyQ5`ffL#*Ym~7mWwSr68 z0HSw}CE^JYhTzL=e`E$!`wuX_wACpYJ#c%kU?ef?VU4ENplw4w5%EO$HkyBSQ9tyZ_ZJQqLc)e%{L~U%1$XRSY~TKc8qG?M zK~abkn^wg}0@vtJc z$p`eOcZ}8BTsktC(U0-{3DzBZNJ|6LL`&+^^U(1S$WKFg^I4va*_nJDaJP~7Se>6c zXB_VS!$f+50|cC@K3ifi>(^~dUGTMDgNBtcn9ictbX)Bp+aD^mx=>XrRKF!sApv(0 zA>B5g4?uYe3W4Y2i9hKkBGwA`E7Ow5i)tKfWXx0)FrEBN zg3RuNLc?!EcXqUe#)CLxop!vJbeNQFXtXznYa{P$2qA4N^}Fvz#2UC6APq81@?4 z7cXK4X~V1D8j1YRHp>iEv}LyE@rx=xTBpf+GraMXGYk)KN9~qRq@E$_{w89FNEUgL z-S!yf$mN>NX)?NCU0?%LbOs{>q%7BXzgFozXGl>dH!nALMB&XfSd3)8@f*{OkpPLT z$q$dW9q0%wTB|r~S_t^*7QQg&a5A^>`|yqtj$w40>m}|L>%it^b#7Vjg%_aq{6itv zoyJJ^{rLo8W<0Z=E+P(y$K`D999m^$pT(OD<&~9g_>UpL)^5C1fy$nBN0d+!2E@kx z?d-pMaCC)MO5J6@Od`uLVAYi;8orbE`5N}Dlt0GRY1?%bKXiQi8`jWZOm2}^b{r-Oir+=9lNjlxNYBUg;Bj64wn$XadPi)B=VN)HfpC<2 z5+#C}I2s)xZNgY@DDwP`cB=#Yx#>o``}Xm+umEx3AL%Jg@XOsrxJ){0zE`Wmkd(;f zR(Edi_&AavgcaJy$H(O9wsWk$cr;J@iPdbaEMMKmRG^Z@IQ1*Fd^XxS;Si04U#vVx<44uhyz&5kC)NH7~MgP4@3AbIX z-f1|2;yV*%{x6#3L4)~|MvEFiq1(TzstV;(CcBMb?z(%uBgH2~^)!zUIi)j6Hu?Y~=^7w`6oYU_9x1zN+Ux88c zcXM4+|8sPv-R^*FHyLk66h+wuKzyqUi8AczO~l4h^d(@;c0qx=MG%LvHRV2V6%Dhc zsYYsv&~N3-c43Mm2>+K53PMJWBZb{01D&x=2Z9A*IuSA6NXDJ}KXsp!1}`=ofIneJ}-56=AMk@Fy3c!n#(*P4H+u~ zep|tb$dkX)1byG>Duv0pm_VKmbMekiE;nA6I(u2gug5bu#7TY+*@`|UqkON|=?1LLWb9KBm7%Le5tv}=CKNI@}(9g2m|X3Iab-H0^frb^{U9GxyV zy!AtU!mphwQiy+?B#urKS6HjOcs!y86)TNDakw?bugiDaA=YR0O91x@{Mvezn*}@_Z&^4-v z=miK$LdW7v3^_+;M>#S@93W5%v;D-vAruT-%b**l*kQsNQIWal`B_@Sj53@=?$_N( z2oDR>G0A1{Q=sTRSD^{6Uq07|?Spx)khbM_8g-RMma~eCmy-=!wbHppe$+U6x{=Nu zU(O?1w}5Kn7ete(ya?XFh@hQJo-XL%0t^mGb6497=K1u&?|&K_p+IFeZr{;d{^^N8 zpRcj>1#WBQPHSLb=I;CzVHFMAbSk|eC&|m@x84G|GJ@?1c;-M@1_70=Mm49~Q5>_m zdTd5hxs0c%gttkt1=Cuyj)Z-AHI&;UDS#|^ApdZtP&q=oL(qqCMekyeq+j&=BR4gd z>owMVOFdIvFM$6%5;GkOumlDM7SHce`jG!@*;IVIw>`{uZOW8Ab_d($-&oE+ zuK+SEe-dKd?$Ce9uwcT5zOQ(^+p%pt{P9ESRdlvBfDb(sYs+8Y^ilu9K-@@j`ya)V zpp{k7Dm{Sg@EK?T2^P>o`4#Z3A4}&|#p1F?GMy>v`T6y!?YG&B^?E0{TyCpMkKb*V z%GRRryPWsALPxV!IapomaXuMdoa%0XlMDFHaH=4Sd5aJg3rXsml?cWHMdZ2Wcsp(8 zs{=cu6@}#DThmyN>b^?0E(ODSzDARnHw!;K)E}=Ga0zH#nKlxwrO{rZ=C21ySTANy zRI`a+b-1k!;lQ;eYwa%@OBPPv@&Y|=C0AUi%98}}Mf_NT;W&hGiA_Qo>jLvF$fS}T z3k`Tq!J)ix+n4zQ7Fuvvv~qJT^=y;g+<91&Ie zH7!RqQZvoLb#!&D?g!D!y1trbuE1jY`1nI>E!~IJzMOi0wO`I2t+N$G>{*n_K=Z)) zp&|QY5Hz!EGaiqPZAmfKHO?;{)i?a|wJlGX*znm!eIWDC8Q(z!E@cWDI?LMRIb1&eH|5Q)Ph zvuc`0d-eH4J|N1QOcjO?ppJwvc%H&nzAAZEYWFNFO{TD5wny3lP`_$>$l~#2P614E zG?uQ*<-?^^EK-O*zl9?htq^oPZF1XN*AK;Dr0IKa8Wp9ifOLIJOm^n}Bh$uB0PQGU z&&JMx{u7Dm_2s;i_~*iPEanlrRh%l zFYk4GB-*bqnWcQ=?nxxj2>oi%#;-r^J(%f%q54<$$GW(&dp`eq&J$YbzW5K0e7>Bc zw{HF)cadX@`Ao$9={*0>`jivr`Ye_GAF~Us%U_YEQEoJG#0ey5k!nr*kFgGaZLynF zcc6*kY_i^d+PDuGH5*^sy9rE81^G2NKuIc*@&)W#P0P}f_8jO!NHWX$kXhZ-E{OAc zF9H+?Ip}!)7jhCyjvS%2_I8z6>T1X1dE)o)pi!vs?(MCtIy)dD`07QrMD~?tKL+!> zMmEm!F>#%9K;BY5>p$|VOZ5G-Dyx@guw+hm5@A+D z2D8yOOZ5(j56-dBlBw+3`uj8Oxd$gL%o)xDOu4Ex)nv^!TZuB_SStdqzHpm=ph_ep z8Xg{F_&Y12kkWqCY;X{N#H%qH`vBxyt(Q*B-Q3~eBGZg zg(i%{s?Ak&F5-@U(AlDF4<<@H-!A&;UKq`jD%Z;i1BCHJ?J;z*%9dJRsv1a{JQXed z_DI@Hr;(n63ZK`_Jm8=~-s~X;+Y8e4YM>DrG0qzZr#l_WEw zy2iB9bU{Gvp+%^`eDLNM3_njIhiPKIvSziL|0*&%y70}Wz?sPAdQy4Q|^zJ6XjW@6bc~=l@{dDn7e|6czAEj?Ap1k z$nhOMJU_v6Z5)&|x7P5spfsXTDTxVySq6JkG*kyoit?;6b{79{p3ZQS0_}Om~eZOUM8G*C3D^ zJSR&$V3U7_j8R~n(XOEe<9x!pJKshOKu#tlcgKrlw$!-XzYG4N#N@H|0*m?5ZLGox zNRjd^n&xv0ra_A}ThgJ!hZ6TI2OBk~(ax^ldcN%F6>i~IM&H|e-0vxF4#Wta?ljdl zj#O*De0>+CyKDdi;dq~n=h$dt;1sXA^R~W{r`9J6nG^kPtaeF)(}j?3=tgpoRX!hQ zLm0kLU>s7?(iz8+7F!-JMkR+f)Yn560W-lzVB@M2S^@(h!l-#ZqFp%~#U9MW0$)i7 ze*0WO=*XGP17-6aLlsE|%xEQpu4rq)!qRN;v*aJbW&~LMGxz3uo8$js-=e*}7{Z0$ zDV68{MZ&*vuJ;W(fLNPH6g7v{{|BLdeg(LnTchRw9^ya1xAFh}<#s)~;8YH3k5j87 zQ_(#UX*vK@t99CoF8zXYex-PNI+!0vDlwQqk9&j5{u9AlU8=yvUav3utt1)2K%Q() zDNrR@qcD7|E!!ODLxm+FB9glmy-Yv#(%x(*DT*XyCA6H#{y3~z8#EA4n-ioX$6)4Dr9Yq5xh2sE3se)-iD(IH@789j=YUhO1fcLwQ6BO##Q@ z_t@tjUlFA@*!|kXSEzZ3EQ@vBY_SC42XrvFgPkLF$cVg?p2;-MxoFQux6NKw*=?~} z+Xo3G%}@&q3xWVUJ3EHIrVN?nO|%5gwe_{p*^}y}w)Xb^4M{Xl0Kg=AzGT6vTDMYb z@l23NgDkb|Ox=7;!d_HNM@_*y$N%E7Xas0Q6agtKm}vYSK_k1%E!vdHG##sOkxjEB zsVCQ%o~!adVj5$3kh-2RAJg{mGRMP3YLo5ZESNTfV)Q`cikg~0fGGo7RF{N8R@>KR zSrSEbT()1{e~YI+UI0h9Jg7fOH`rK2p{O~0)scp7epAS<#G|O zkC(%j8me_V>g8EPuQ;(;xb>3;C{c$~IRjQao`kV#9xHGH;f_(*O(t{0>2usa+1|@Z zdv>0tuP0yh$5I!ZuXg6g4p^VHldFsunncn{j?;l=8aw{9ib_w{hJ^E=CON;%Yheip z6wF1gaI|}4`u?t~2hBLPCgW2gFkY&&aISvKT$f!h_3y#Xqy`5Fpth^k+cB)`&^>%( z<;vdpYcS3nAynW5bU!**jOA+c>RF9b8z-5lHmk8p+kLwZR_0Ndo-Qq`>MmNSIV1Ep zZ18*m`Qkq5eVy_VseNOF%bhk36$snDfE*$6%|l{kqA&Tj9eG>oh9Eto2CYZhXYonpX17?Dokq%;;t=-dRaW^zDY)?Pa5BZ>&_4{}X^@rK zQZ+B%heSqQ3=(lPS{}`Fg^;F)>w=g85e#Du15WElgm9dBNgl0_RiVh+{mv^VxltXh zDmPaL%ovq1q<=5DNC!k9!80fpk2qc$J@44=jT6t2o&!wG9F7l3Zgm$}UXf%Gwt37$XREpmlMHrZX62PCHo(_;7@ZI4_Uf#aV z2>wG!jPjIcpVh1O?WF+um)m#~DwE~huQ=uC(yB6)=~=azZiStBQVI%a>oV(Kb0s;$rw5vKi;Dc(stwow3t1d5Vi&Y(l{==U7&>!rW6=j?8dB9i6+E* zj-nMx)9DJ@n=o;Ek*=wcZ71CJOY#Kgw80&=!NCG$$INZRb*+-_`fp$c3Tco4vsbyw zQ)>PG8ID%GV?~Qo$qa9cwCI6hs&g%&u%_l5M3d`8$eyh z-=8r}ju_W1q)ZHOugi#gb+2>j7c?tO$IIKipo?RW5X<%hnHD?xFB1M${0Jany}?~7 zk|;V^0sGI+7n^jw71h&CL1Z5>7;|Z(BXIVv-y~6TIUIr;3?^qh171(aSe7wcFI4B= z6vBVuz&H(1wVQ7@tuPq+^6ETdcRYzWVK^+ZelL(F&NN?98(5gC9K1849|J{W&nk@wOibiF!I>{9T7tujXWrRTN{hbX08G2i8s6bm#-DQqEkhx zRjt}4Y)2#Ld$`=JV88d*DctMXAw*@SpitQq5a7$t!Wz^6-`*n`#++}8!v$wmx&Am~9qt+q z5^_>mmXdJIHH6pp^O?qSYb$q_5LQ(`EXBYd_65)uGXv;jL$y)vusGmlg`}&q6LN+$ z`(DfYN<8ud+6s8cUIc{dB4$PX&ciW&-8vn=%2xJ#pWA;=z0k&wN_Tg$@bEB%N8tgo ze>UWw+CYoHmseC4HS4VW{d}SqdwT)yMCuomdP*}*AaveJb$>2IyH^2 zwOg1Lzcs!4)j8Mqg}H}IIaE(Sn419H;bbu+OLV!J{umZhVPi32BiJQA=b!MT0B{o- z36ve-!LHZ0XxMC(886ocCK$B;_44}pZU2|%KzBEa!gQYR3YO0JSdtiw|mZI963V%XxBruk#7*Lw}52*qaslLq3hO zxm>OUs$*q8lIHhKcy)Dkd#HKF#j*gnIF(MD9U)v%b$@UVae+m3S5R%h$PW9zHWOCLgx-m*kP z%f?d3m)dmcxUo7xvWmiWM)P0rd8|hOhNP>L2@@=CR=EBL1H$uhc(t{9C{sWg^VOh= zz&eI#r^;lCVSr1~f>!MA$x!V6nRGBEN7X{l`wAG&+?zOsO)L@{I1&Z69*7y_EAEDM z1W=!=4JQK95?D&JDO`>y{qZwhwcB3{l`C*M0wTa4c4dvG`nL!c)c|UqY%x6|nmS?+ z3nVQABGMPjtzyE()zy_QNj#}q3&>azFfo0Fk-IZY6_=Vu{IM?F;JOl0A17#kSul;5 ztv{1XpMzNs;~I{n%BIDm3?*%h7`FtM=jM_Do?hwG8{j=kxby}@=2yFKAfV0rK42h) zD42g)2jbMALyf%6E^Xi-Muxa=}auvLtk??hmf*qpx}*N!AQNaN6Wa- zNz0}hxeS{vAAX&Bfw`1(s{yRaYE2uTSF6@+Zj$n-GO4X%L@vE zbi3YCgoJ}bQAv>|Y~fvQtg{9zv^wQshpE?IZn#uO0SA)rG_oP!a~DP{&0(u$CQ~Y4 z8ch%HJD(tKgk$!<>5HQNRH>p^Rq6r+w_R<#f}eCIjig^r5pmU696^D0<*s@A1AZLA zE_47m0vVG}m8re+yTL8tdI3C=FDPm7&+pt?tepmq7MRklGu{C?Ev3LKxf|YOyye)-+9@}?Q_iTm?e_tT=Y&Bj?w4w>34W?hrb8eld}qC!l&aB|E6 zWK#uzb5cmRWk3H&f2^tB>TJ3?n_7zl7`1BU8&fmDSSJH6I=&B=eRRm5kxPuxM6TnA z&4WO_z`$Ou*-0VuuA{#nT0=u)pOq9ai8HsNkzB?Gw^*qo^b<%OdtDZr%6LTyy0+ye z7p-1qU;k=l&+g%2^v*p10>Hp-`P@~Uo^Mg!VzGs5dM1S=G27qNc_eijFS8v2x#?>W z)?c8Q(7(G=sL%Ef2srr-0)AW|nH{Mx^7Y}$dNSrp=UAA(T5xR6&5^YBxPr!rYHMqo z#IVd0UX$!GJncTWG+lT_ofOp>qu z!$Uz3fe^CPhfH!GnOKT(S4$}B^sJlvq2z%jvvvbVV2s7^+0L@7WWx^UO(bB^O}`^2 zMrCY)(+w!NR*%;LPI^Y?;++IlV_C;wWSg(m+BiSJNy7<7VDo<4zR^DX z5oN+@-NZFh%-;Z~K3dU3=oBgT>5JpO7hvl8%fr`5Pv6iwRt9-Qkdf5VThTGkHxd*d z58TfS;gfLdZc>|Gowxy$DN0dXxTj__(vyap@)MWQ>8CEAmN%?`ikloZ)1r38C(c1M z+lPH9n20P_rtg>M=Dga=;p+KQGOnOX>-kNjidun5v6OM^t<5QwetFi?uv;6&cnBy8vB`N9xrTYFIViJ9 zTyd3~KqJ|HVE6e}L8;9YMQ3Lx9(!YA{ti!>=vC)DzeAkyRK4$KS1r}q-d@NiC2U$v zVY%vR{LH=?WSBU?T|vGNzDTI3 zlGPffMtd}QdQ+J7)srtHT(oVGj_>klx8;E#18^QQi#vg=6}{7D9A7FebNZhNk}4;1 zbjvJ`-m#DFdptHDqLu@ee~Cn{m%Ga!fjJ62GchCu^~0M-7(7fCjegiD3R{WI#2dpT zttVGW!kXGciCnNuaQcbH(?nVA<*cWiPwZ#EmnD((iztC-icB%X zdGg9vtbrTvi(`%(Bo0M3C2{4Ng3*i)yaLRy@+%irtIgWrxrRG{&O18SYlg?u4#{33 z*LhUU-ET8}+tE!G#89v6l*0u2kx?|XkW z8IQl9IR%U#GlM|GQGf-evMKURj%T$LWU*OvNYLix83$P`f&&V2g0(_wg+jHk+gm60 zr5$p4PS0na;*bz;Z;H`cYgc)#?GC^KGBmzDNr3t5RzLpjYKNrNe*O_beADGPjFqD! zVcG%D7SzH1z7Le9L_3fa*D5(n2P#0x`+R1DuFA}Eg>V(5y1zrkV#}V(+uGWSA{@~^ zTxx*7=wl6dYa|SWBg6Yk1q@E0u3-~o@^<80;|J4|s(yCc+7Be;n6W}*hFO$aoTGdO z+il1F6|g|Z#G47w^YRFp7bX>sQ5ja16c%ex-IW(1sFZHM;k1ZA!UVTcW1*bzqrFA% z?NtiK9B63hsfdd3?<@6FV1Pk80CJE%Eu#HQhWWka=s# zbbIXE>GBiUXjXRBD-33!*|;by6dR93VLkg!6@So>^akRgS*aag#8Zc+!RpM%!+9v` z$c#1`EQ~RDN88}J>LT=EmHQzYxML7Nd48H9Ang1oKf`%GleTj%C7fMwz7I|K;O4x~ z_>{(l8z`Eo|DEXdJ_0_=4g5k=s9u?>s?5yPfBpdMNwZ`xBP??_(B6&T>-y)ztty~8 z8%EURd8FWe+eyN*W`RD1pdU7scDT1TH~h|F+2;^3gAb6Uen^u3^K-50r)ITy`BH+k0MG+aDbr74-wNV6@26xI7Wx!K1$mSMG7Wuvjd8H{hWf{-C;;vrcW( zRd=zid)m-ZYPP5I(WxPFu(`33U3hn(r*LjX_j2||9;jS}3Y;v@H?jDF*-9pSRzHGW zY`BR*W3T&?#W?JWp;!!M^(ghe}HY(OkzHmvuPZF znoO2LZpL>1#-ZOIE{C=6h;Wy12l*sP#`9coM4OTp1rOl}!MkKan2*0I?b%Ufedq6t zYOT|0&7d|@s+4qFcSa^OZbo>Nax~^-iafO`n3mz|eZFqj`Iv?oySW^F{>+sL7*GTh98WcL?S_h9xoSo*Wld zo>-bvDb@B$#WMz*FE|RgxSVZqHnn@jYsxm*eux&Z?mWdeDLJ%1n9-dLin7W$dgIIM zv&K8$QMBOjQy|QWZ!$NXxeGAAjTC2Vkt;wE@Y&;2d8P>r$6jcgKRZLQ z`q`9AJO}4J8=QXe@bC1wHg4 z%3;Vt!wnP%24>(a_y?xcypND=k^2P7pnFs41dXwkA*&qmWA#k>QpGh%Erj?iY>G`r zd3BRxDH&s9j$)^GQM=A|laloAR8U1zV zj>cw?Io^MIj+f)Z6O!jxrJnv}=Dftv?GUX)6}22Wf@lG6bzyk~kKz3DRcx#x!lfH= zt-S4o4z)%~h(ox8h;Q#1s{KU}Cb6ENLs+)V*Y2sLk2fiF^77|@0?t3rQduz2{S_E= zm<0loSmtSB5|!^)^$pkKk(~2+lYTIn6}C`2G&Gc3%q-Mohr4|nfWNTrr@>{P`e*93 zdUmF>dxIcZSiWch?ht_JJ=Wy*%`F}1QD>lfWRU;o4H#he6-4~!MLHls`MhGFa3+5?RmXSHCh#-eN zhP1tB1_HA;oG#+nGJb zxNInwEVJ)+<3Kp;AA+eN+CBAie7QL856OA6LROY zJBq(G)UWMXi;KhNd1t$@h*cyhy0L+27$v^>W?iaEgban|e(nd5!hWelQk%VbdXkF)fSWzBbe5fB-H`396@ZEQDPy&{?p&Nn> z05bg!jzDbSP9W5pk1ZR7m3{YbXozps02Q?A)Ue{UsQKsC{CzMTA%Uy&BodXl;gRNU1;5HfqCbiGC-zqDBBN=c;i(KlMRRopN2a|Z6X>ej}igY3+ z+w4v1-09`;Q}~mUs_KNo{_ni;H6OzB$$&aOmZ)@@#c($bvskukwS9?nUU0Z!PdgE z8kTjliCXy2Q}itiT0>#bMnfw{9==4r)RDNjn$IZ>%-5|jK&uH`~ zXJb>Nh=QW-I$g!PDup7IT&!Q_m^q4e8E7$A`_oy}Z=F#QIBw<%VaB7)BD`$h8h$U4 z#nA|BT2<&e!gw?6O>;_AgikArN!q-vZ$wI~60&U*0+xGu(T~&da4xDZx4dznK05X!T@+S#p2EhY3uGN= z^w(fbd0!OZV7u&76HEOeU0Mk0m{tH7PBqhs< zGZ-9~-QIgRq9rm|gzim{qywWWC|W8boNad^t&~-%wO^`~7c9yu>!Uqy5OP`5N!-}( zQCxq1$IfG!Ji$Aszd*cClk$61T!@PVb6~4Qg^HLGkmGI5m|s3#^!~qqN##+q#;V|Y zM-3UAxA-&9V#Joh(l@j}myC)2ld1z-Gj>tgw0E!5ddTD3+bZRX9j%UT@l81yxRT~Y zTmbV0eJoJ$ecP$1c~s)poj1|k1+emCxrnCN-Vk*h@lF z$6kb-<+7$R1e=a&jsKs^#5XlDSq#nisa%O}NV z{Q-qaV#ALb1|GJn2SzK!u=VyQ{G#Lb@)tnk>94O(EUeJn;7OA2R z{@_Fx7VevUyg_+9si3ubytV$e1~ypI8?Dv|lotAe z853OQt6U?#=zpDNF(;6;(oK&VppY-j%-=P?)!8XlpMeZd=5kz?bc@vE1)t?CoBv^A z1=BEH9OW;(!)?f)f!E;GzDtyEtI@pOR1hYsA%bIrd?927K1aWeRvCUxlNl|>Sgd^S zydJ=}NwSlFO;!7)HdxtVuQKyD^>=!L9NE%tfL38U=su*HE`I>$v_03XRBx7$KO{QA z`wpImM~A@p@!1!s#pukQ-pC~^P3c$vg{R*+bVNj;U%_dXC`$WPzV5fWb8I$;{O0@1 z*96M#Olv1RSGIr&>Zhu-(od*xxNv^W$?(lL9eJgtwNEpt91n8MXM!Hy+d+T`$wdbO zLpB&&cX5ePdseP)bIBdtZQ%jkuR9aAFY}BocrZo;-nLayT1^|vm8|F0kfIRd>_D{c4WjWc$|)EZ*Fh@+R0dI zTk}$qoy%}#uFv5xMz6uA;ncVqD^zBv3}}2;R2I)* zgaB{W3Nz@_lk7I3RHW+ic4r$a;|+}NvT=_`vbuI;Vpkr7$gy(XBW8(?rzcf#*iq|M z*r8&$=Q@Ocp?Nl8Rn^z%5%e%gO|N#e9jfez#Q&QnOOXIv&=qWB+!F+xS5?qI?5D!0 zWS8@1v5#+6);fS#WgZ1_KeDh#9KQbxSj$C2v8^8Q*5nb=8SljI6wgx;N)Uk)$fzdB~bAp_gQih$HwLkqt zQDj6(49m;jr)ODCllc3OxnvL};YF5`fW&G}uxFdPD~cM|raV?giZ#k5*D@i>2iiiC zviW%;cyx$;mekK*(ouQ?>&b1Use@c=s9i;Z>Tl@k?e<}iXJ@qEe(S?jgNaxOf9LkB^DX5HG}GU-_~ zO-qlwb~@l%ZTZ1rilMQ4lbr9!Ndxyamg1x9Hq|__VJl@xx=E}QRpu#Iw3#pW{Tf53 zJ8Fa%&a;+xR1Lx)OEk!hkYnwPmF#r@ovyC5z0t?>pVhp>Sy-Dn|3$3(>92^jE>W5P zD^7|m*P(tw?=u3wHC%Z zfS!+{)scq>^!z*|?pdV3GI`|Y=IVl9!vZH-mce_vR&Cfk=}nKU-K7H$j`>@qNXMc+ zu>T;{`lX{VBw20e-u+*Z;9}tq|6r_s5&)zPY`aED|B1bS$jw1SfZY6iBcjLsAMgsi z)Fj}gQYD@63lP7)|221M7^!hAs4 zkvv>z(d=S(dnjUF!;Z&RBdtWH8^!&W@prpwM5J>%Wjp!N6Hm8)!Q&Xu=49@G{BS{$2^4RpND&pckqZNhUItw7s^09HuvQZR)aBjkq2f+tQl#(Utr^SR zm#Da5jV_zUiMCx;QlE7hkv~iAJr4Duh&fiH$3Qe&JT2G-79&GCW}C&HBEZL0@Ks8` z`>3V3sG8$_@3|*qo)foCy?}Nej?E!3-%Z-~wd#O5R3K*^2>Uu(=w zd$`HshcR(goi?8?tMn8V4V=^H^u_Vuh=>T2jt8-se0i8yUIuLi%bh>KoI1NL6O!6!FuI1(B{ltsfRO|Id0clu7?sf;`;G2dx zyB**XNZ(OMW+hR%#%4pw>nJqtf+) z&Em>Br;|%GHG0-xmRPFE#eVPy6MA}j;wNRH25YzTJtsE~z~_*^YQLO))~;~J%Z$YWbZVMjD?ktRy=AszN365S&k+YWo!wN(wG$gYtv!LQK< zY)W@rv51d42v9N3vnWmCZ{guR==jWSd%e4BrWZgXTn7ks++b_L8^}}|V+Q?kX_cBn z53!HJ@(BytIn-1US0z|VZ{yyn%6X>0K=Jo_R&6;9GviRggj{)+lb8=MrmN-zV>S5U(Mja zX}dID`N{imZRJRL4@y7vwIi1-)_uL!{#w3K@>32CyaSJb011g3D-;Y0jev?u{e0AR zOvH*J&qlwz>8Iy!B~giqAzv-wiSUbyO?n!ZXQK?HCE*lDj)XF5U2inl9~Qsex;@6{ zI}Im01A7tDopMAv$<%k$CCj2wGzCYXJ*oJmdkc`*ss<7{g7O;qi?fP zWTcMZASk(@X;5_f* zCEVdWGMOl1qz42khRv+a5O)fK-2}WR6oZI0Tz|^+s0ETjA@1(r_p=k63(1Qei|=^| zH8BBt+MHeCHKnLAnY7@JGAG@6t>FM07XxIBCDD0fgku3h9rxI$mD?Qs`euu=3>a8X zPhCl{d~bQVYkhm0VGVei#onixqqiipKvfucS{iBAI8cYaJbLD$p#>S0dv7v4EhOw4 z9YHK80GfXEy}i8vl0{9RoQi zDwsm`J`=j(=1_XZMO`EA-{kn=Uvk`Np_&n@^qZW9fWfNuDaTxSfL&l%WTDRTPP|HX3#xs8U;&zao=+E-LM%AIl z8_`O>CP4iGj4Fft*t=}GP<^yYY-lx?4^sBw@--XDm$XnJ4G?QfIq)2vOw<<)mXRm+F_KEN6~6_St7c zvK)9bWF!a(t7w&{+i@0iIA9d@smV+Y!zLD;xzIKH@38s2j^KRnt*p0uFbd0v`4mtkN>Y5nrID9thLCvS0 zLGe%vtIe>C+(#SzTi{Az3K@PL&Sk2{Fvi(qEq+EWwXKw$7tny45$6i6m&#EKj7jJj0p-I7C?A)r+FK|4`9kH&a!0C6%ZA+CcN8as=;F2?P$h9zK3D{D)Um#o zf>CjyNq{y&PnMO6%(fpN0E#G+d0=zG!^w=QBMO4oz0=69S|w^_AAnkI8&GB ziNYFS0h!K!do^CinK^jW;Ea9?G#5?_?wmNmDYm)+zVLlj43j&n>dZ?<0d7a*=jEafh?TS6V5l z9Z$4l#>c7g9q!Pb<|@Nod5oF4awIuXSXvf$fabq+Jd+JlgLC=j$)zW8jl*Si)D$sw zC*NX?F(rZ$JHK9B@4eSO{mr+_N?yM1jA#aVTRx&na*n|u_tDQKPt!%3y`L$3R%Z<@ z#s1mi`IdeBNZWpbI#d6#W`ckG-h8?7Efoum3JYpk&Pa52MMnKm`AX&KS4?B$M(d1# zTbFfky(nrzwmBdPTxU=%&mpfwpe5|?>eBsaEXB$&R$qmA%3bhq_E4_*T^5dQ>UX<~ zuxNp+1zU_%KhAdH5EM*-Ou1_vO$Rt|54DFS3(4GM6FR$EdrRRubgvOmpEs>c$#}QM zFlVjqstU@*4$3B&)S#h^wy(eo?y9Eua;EtP24s#rxgC70Zn48z(hNqc@S zx%?yZSUqz=D#{O0cWp=eI-IOHN_APeWiIfFoVq&pLY9|JHczr5 zu+qlXm`^~be6ed?@iYZBwN{D^!Pfj* z%WxSE@&1U2ta`bX!aw*fvWM}eP1}cPi51+Zcpg19$*y|xYtFHFTVE7ul(iZ%p1her z+OL>co^PW~+3WM-y>%DMIwSNQHB#HaTWoxjA;@`}%1!3}IO3JEIqYtS?2>|T5+Dd0j@bVqwpV)%E((2)|PfkGQmr|N>XNgb|jW9ul(W#>mQGa=dX zE`oCduf`WiA)z;}uJK|X%^tmjgW#^*NupR{$+CT%YUDw+%p8QY2^Z1Ld0Do$Pa?{5 zgsmVIrY}mOP_hlUi{=QWgJF{hd`X9I=kBufWJCuuKT?@%9z2aNV9PTo(UvPYVwHRoI#Bh|1 zZB&!|i`Y)~Ci?f)?M011CIdg)KC!%RsHZ&`&3$bNAN*Fqc2C6T&Zfy+*jswUut>+P zagWx#DIDvB3N+!v#p!AVL=<+sdF*Jfq++Cfk(43eJ4}Zic0rv|F+J*(SEuJbjgu(a z?GQnHP)5r5Vo7fNb>thvS=_#8-D`@uYC(eMv$6E(ur=q`3X9MyKFmM9BFsE`eryz- zCj7OB*2IA5tpa46V~^~B?C;7(At9dV)U-bM&g)A2|8G--Ps_)s#6i|JG<1xOK^f=e zk&#iA%3m1a=p?b_`F#5ZlbjqRr~(+angKok-zgPSyG2h*TF)OU zuG1IQmb6Z^A}%lOOp}C~*dkl625}7yQ720jYi4CFR?1?w)ji7C>wZ%`-}ynAv#c+3 zkKqhGQDa8Be0Wr z%8cgF@*Ix*N?yqRMt;UR^2d@EunZKSDyeXiF$D&Xwzd4Yx8B92eKSnWyb^UOl?|mf z@@Vbg@C!E#Znnj<<$h&oD9pp|%lEyVn6}?%+zynPh-H3m0pCmrZJ)XzLS#g4{DH#3 zZRe=wliRLVrO_Bx_;C0u<>I??$8~#q|DnJ!NAq!K3IuSbB>{?P?8|Nk*jOAcllg)! z&;HL&YgvkN>TKfW}>al z;(q;}Mx!y8nI0fj0c`kHOpL0SNR4jufHW)C)z!Hzp)!9ciMeCN)3PIiYgks?4!>>u zqDZsl>(oeJ-EwWfUMvVm6;Py!0wNuRC?YK)Vnn6)B0bW34J|_G5CTY- zUJ`l@HSKPX_rtyW7wl*6dFP#3Yu1`*arx`tW zLc`t6HLjJ8+o=P7k_r!W$huSL=U~AS6dS9c*<+gP%90mx-rvtJA~G^Vm%s2W8i|EB z8o)H2PilzdxNeD^GMNCKCHzUv3+l4p{_#yG{bBP!Uo(60?cz>l zV*zf_j2#SUd&}guipR*fxTTfXN>UC7GxNuaikkq>mf56^qG$aJE&1d{ZvFpYGu_Ud zQ>S6@gkZTdO`&OUvpY{cytoxSxh1Mp&sZJcV~;XlDE{&8{Ab?|%zZAm+j&&PynU+5xyD)<-`x`}F}eA~f{h~UI>D{<#>HgRKzU!B zISP&$+`9srneD2T${MJzX%DM^R^K3E{CxrVX^+gO$8Y9b@!?Z^e(ngaui~r9c<8wa zP=fvh_Jp-GQW-IzHZ0Zj(+M$}V}KG_oS@{cdIqhe3uyry1|F2Sxe_?h z%ELP~xsw^VB(3fwdwuIi84LOCFWKjd$IEC#uRC+qhYAMZH{HpYeAArA5N}ESG^q== z?Ew!8Ydsx=M@pWA0OH|6m~WgSyfzYb{Iu|=k))d!by6IxvrzNUEd-4`w*88rMFYOYw^=FcT9lQZbx0ZsEhSPF#SdBrW<5ozAScV6H5slS4USLjd+#a)4DYaXZ-M6Cw zGm?NE(~#qg&DzL@!;mmbKvR-Q*p_>73NP=8^3U+~!^wY^l1oZq1UEk^>+5ouKnl~) zz~EkV0{KAayXSgBJ^UQ2C<(%xSw%=Xhqgz=c@ zE8x3PsVJ)1kLuPm(rhdJCDzbyO0R!pwxORbmqwb?`Il2{ZRh(YI&*VROjyHEAtR9~uK!_8$q^`TF~BXUno=j}JCCn_Z?L?;bTPZlgC*ZK3>$iRnD zfCI}Ap*#?CrEZg;ah`Q+gG$xglGb#}9w4yzjCje<)Z2 z0^!Kg499eUL+}2QEgGURKjz$7YQ0ai+i!d{9YjW^M5cx`J!kdaiK=cTleT);_oMJWXWx^){yz0 zCGDZ^Un51MAD9~{X#YP9y?8=py{bTp`&2ap)agTXgb@R|4Y$zM+ud>t)CmaTi?5_1 zJ#{F_3-09g!hO4ph~UvVeoYZXt#EYH{Y;ibzwC2~_R z1HIFXkBvYMBfTE^e0=)&O9r_xXFLZknY8K5LSv!UzB=ZtQze%=k=9Cdh9j|jBgGau zGWhSOHDTmJ6uR!d2pEu2AmOm0*zZ(qU`dvLy{xwJOnM-`s~%8f0b--xb+VKkO$X&# zwx0Y=O|GY7@CX}gF%SQ+o`A)Id4ZtY2O#vRB{7qJl0%SekwwAvu-sDnEvv?)6RBR= z@IT1M8+y9v_gNL_XzO*rDQtFp>_XFq3?Yb2^yBf~ye6%G*^z@SHdH^ZpKEy)3h$41 zzFFxI0QT8m4~*phINKSSbs4H7er`C|ke4U(4i^aJJay1#q(EyS3;__Ze64#tFg2qj z{hXDZ-DI>7x;#?E`a(BN*9-oC%zi=lBjm56fs!qlH;HzpWw@#~z7ByPsY#2%C>HbX z%BL=a6gDQS3KIHrM-!E{geb%~Ua?0*Jat|h)3&uj;RakhMTu&xT$Habu$cpS#=hHc zbM!Y}E-p*)sCf1E+dB%y9ht#sgC}^uk^DEy{p^Pkx2O)`Zoh%9%&e5f5D0xK2(nWF={M#1ks#bD`Xi$W5fLDajj-SR5V{Sxp=D8Nd$`vL zP?%_)^4Rz_dBuUKj8yOY76uKyZM3!2&pu57l@B+yWM8MSM@J~W+4O5nRJ5vHy|zb~ zsB#$1VD%aFJPG0`*E46TbQ|W}zp5_QL8r6SrYNzLSxFExd-60DlK6B23en@ZqI{N1 z>w=Qgki1}F=}T3wUM)eM_>sN|Kb_y7)h~^a_3}b<-!})BtRarTu`$yHn^N1a7lMW6 zP@V-w)M4+p4eG^0)tI4Z=$`#jKC~0pBUF!d)6&v1noz0EsJdY`Z;z#5r|g+1v-3ka zIAh?v?=dO8QU7LMwX;?}GsM}5JcixeqrD*D)SCYrpYD#-4}ig(?kic>lP?3wdgmk0 zcb8#Z1V#QGsf+oW{$5n_K>BV}@e|oDTyMu57YDyxO|`niLrRh{m9y9!$)ca4>?r(m zAqItV29?(y$zM7h&-=7o=$^FO*QVL&`s^mz;u_02^*wxhK@_e2~Z z2cQ;PCcL4+j3bieH@iC0{5~cw>b8KowNCC9L-@@^AtN3ktT3Ft<-WAS+2L$oD}&Ep zKfPmU^S5a7yEHCYY^0aw|2j=QZ({95xz0MA>AxQ~prSe@a7zy4VO=AXG56bg5} zkz5)sBFD&;zXm z7SX?O1tou7(?c*Zd(JHU2n;%#smRlfxB4tKR(98ym@Wv_7c(hrpTi(xG3ulP*MT}L zLuJguoqebIFFR>bjnh`G9UaLMYU)o@026f0hnSOmcdI^E?n_7+PabKzUk4ir(r>S) z{%u`g)b{y#5ZAq=e*Ns*-EH=12G^Qpe%UC5$1*O`sDw+~6q90cH-5*J<64!Rh=_B_ z{pF1L5$U|MTLw}zBk^{Mj+WMs3LH^mA2dA7ZR)*3B3I<26UJ_?_I!qT@2mv};4(D! zUz!hk-4%X2oT>)av^KAN;-oF62B$W(QO!=t9R?`AUe&4we1m-k<;H5XphuP0t6X6U3UKrX*>vzj3Rd4bEJj4LOxUF~88S zy{7YaFPhCY`bMaOe%xcLWrJw1u%7@^5n1t5^2;7#4gZ`FyhfmCHN}R*eKzA~dOfj`b1i@uW%nS7KPEMK_TNO~C zt;}dT9^(C+@i{00dWzPxumDN$rvXDg56;tTC#wk=q#9+EjfI3Ubf+N?r(_gCE+p*U zOxy6iV7x*A`7~haC)hKDzY!e+^mGsKXA>^++_Wv9wZbqITNi7oMFjFQu=8WPmmCA` zj0oJj2mRsyoT2@WA^-07EB?Q&+iNOzuz<7Yl_b|9`IoZJ$1V4B$Ld}yF&j3U))C+A zw^hH{QY{Y=6DaxhQG45EYL%|FUz#xArW5nbE-xiGx?eQIVWN_m&wDnYGTTFbOvz>d zhn^iPThKOL^sVtp2e3+m6#2liE%*ltlT3-jJZt_m20?LG)u;R(3om>zR;{E{72r^YQZG0%OF7xUGu@m$?X(%3Dyv2Gz*; z=eem`=3oZLV0M8|CD-WU(FqE%CIJWQ3SWQ>JM&#nY%qJIwY5a30HW)q?~}cTS$#s* zPcphZee@-!%64+p&ogX*(VQBHR$)|8|;}_ku0qosf zS&v@BF#ft{b2hE*sU|H&sACLo#i_AFR8DN@#0LoajOGR5L_jx~^W-+qFgi$|_g4Y$ z9g{*+Wa{`NxmpIUGo7>edMTn?pirhg{;3|lQV;P(b3%Z~SKhn z-zaglb8pZ`Hnh$As}CxVA3@#`>Oiz+t4F(p{*sT{ZV3s78h1TJL4V(Ht5$Y`24G)4 ztOPsWRWvbK?fYtcT*ri?Y}M>7Li^S&@Lk6}Qd%84&%?|IEvH12*vHwH|876Af7(xF zRUOLS%njHcf;5W``YkgxIG8yy`gfpwHtfbTla~!yX}V`1zwu0A{?p!0ZEepoYE~r-KF*$fP*v#U z0l+|E!5mT4dj~?EU_jal3FI_DzB3RHV$9IDByK}s${}e*^k1R zkv)Sl*ioYuI)zdS$DN0JF@ z)rdvI1h2yapg(Jub%AY9qJ#j(FWxwbd|FL>fq|e~&wUv}oe4}r8}_{pSNv!bUxhqa z;`I=)$cN4QPZ)2X&GHDynY8gt&B^GUz|`(U{OX9=PTq4BLiLOC#KW2Pk&Jm}nS zoJy-y5Eog8;}e^FfFVMq=xVI*7gj%�I`5cW4gh#g?; zHWL7`A{UYGwz>k?XJ9C#NP)NaoFX1Y;A>5R=ISy;p|m(m5#H(!C7`X9?J~+^Z})oK ze-hYrU{m}(b&R+H2{a5CfM9?yYmf*DSwH0``|bIU7&?Rp-h^DgC`0_flUra(pjily=AU~t2|F;>~0`SoW={H914U~G9p$|Ly5qyVX%vQGAzO0{Q z-L3Ewlb9AhMih95k6yGs+4B9b!=4AfNTo?lIU^cpeTIA%PLC))`7068ANBdQ45aG@ zR@~1~To5gXuz--c!&nWhSL~tisshR9q%hKG#l~o{hjwFDRu)$uR=r-#ZJIs3M}LJu ze@PfgMxW2GEgC|8;s)On7&UIt)VXff%2{DY6?z3AhAUpb? zvB)c~W<;RjY!CsTKRTxO5Xo;;K+&#tfPSGgIR_k2kX#_+R_aDyJO+^84ET^cAUwb@ zVE#}9&;UOp2GnXdvXP)nQ(w-XgcQKWKT*};sd~|BanB*%dI@KM()%dw;ItudcOY6J z&+^eb!9aI-F@z8T17{Gp@`H|v$wE>0d|L^(BnXhA0R*EGRPlb_5Ez*tH6jxUEn}gL zuzy6nN8<>~5u(S*9l*^6+!NZyPE!Q`P;^#CXB8dJvni#=3LeT+n)%LxPb(BLi+U{9 z2(cNlR8TTAehk})?G*-R0Hg%KNCh?tXw&~xM@jZCG8D4HQw>itWL@#Dg!-IbuC=Me ze+xvm=b8do|FjO?x#57E9zNO~zk&8-*Nw^PtJ&p!2KtN=AU;N@{Dv2(AcRC1z!0Dy zL_vN|f%gxJn7#LJFh| zWdSNeYoZI%EE4CqUy}Hv;YMEdpq!zZLTIt*apR*NBjh7G2c`#v;Hcop;P62d;MM&! zK}pcuDCsEGRQFWh6_qJXQ0S#_NF(ZF>*MNk9FiS!ZdDZ(XBB33?DL8A?EUt{1_Q#; zQ9Mxi6&FjBm3>Z)%2V6@+auP5x`e%?3ua}^X*8j$e4G7MrMYE2B;HCz)aq5BRraVR z)ykF2)lPr>Dyq!2%0I8*QE8KC(|)PFRXOxV1xHmv^+9bO<4KZAGNfuzhEO>ve=Jul zZz~^Hc`DUa_No^9!K?zKykCx5VXekp^_Utx8+H8Y1n0%*1^GeKrIuA{Q;b)hU8Gyw zE#IZ%B_J$2AW1A}SS(gFWFKV%F~ndT$mD=QjTwT$j+rxj9DRd3fZbp<@yV!T$Y&P4 zXk>oNBFzeKwl(u!Ik*75Ft(&wwV3-LfW6$jkX_0v+@bka>GDVYp)T8y(@=UC56eRh zaBT zn4USLEzUid^JlIhf&l^Biph)(gOQmDhHdM}weKz{ad=#YV*4ytfocJ;q1XPmea<20 zAy-)xnGG2xS+>+n_LrX)Ch2DFfX2T2wzOi6QjIu`tW__^^tKrHZuh7cXPEq;4AJI6 zlL$EJg}GIx`TDura#V{$gTahyTx|>@vSISpaTbq0kd{#MFIpQ?LXemtz z4-?D%?BlLASJeF6{CV4oJ@B7+pN=0|Aho_bzH`2h0!_Woz2Utfg295Ag3f}VeN%l6 z0a`-e2=xgogl&ROgB^q{g(1mW;aC$l8|$TR)#0SIPs-pvd}unAH6d5HpW^#ZhqhFJuiVB z2982CLE$5TA}y1+kVi?UXE8&W9V?F-VG}BaB0~*e0@Vkp2->cq#yy* znp-a9pS~Vb&zMa)Nzlk%oqjq}yVf%eGO`|hjm1ssqW0h*XFL+1<78)jN)?cerR8AO zv3;F5$#Pe9Cw1R^!FxHogACN~&mt0G5nWKvg{$GTHgLS5-^&)d>L2TmVMa2+$u8qk zVrZ~VKCCou$o|@tA8gn;lWCh=!#}6`Ie8tuj%+eQCZsc#xwg%`Z{D}S`(Rw?3uz{F z-HhWl^I0RdXyvpwlqQl zzM7xWCvzv+t_rLYY|V5rdK&JN?aNlMd6kV+wkn>ex#voiSZFMUOm0l-ELNU=XgRec zTEBEA^*lT_?^r*u7PB6%hpof3@NdS|?!VjG^ekR3Y-u##ozeAGUv4sXOfR%AEnUv8 zHq^saAum5%WOcR}>h*RHeXzZ?;Qqv+;Qj^|4&VLE`|y+z(ht{!=fd6jCv-Hfyx_i| z=t1J6^3^YRBKUIXU}(w^Il76>oelS6;4wyL5@IrGm^HeFN03v|)8N@?cC;_KGx<{q zvjne2&a%su>*W4{8F{)f2bSAoS9_*y{>W=Or*p?S?E;$GhBA z*0L+i72KwlU5;JPz28{CZ3q{<<){8l4Cp4^=CB9IuQj|uzV@foyXQmX*#!EoL3wle z@thO>3a`uS&Nlken*G5-^e*~4UATvo_p(>hMd~{>@lS(~MYdR$nK#YnU(b`bEtw&xiEO2ue~nc^5Bc`oA@q24<1k6j{wut!6u%BUaQZGdzSMpwYEe-JaQxl!F_dTfcDUV5a6yT7HiW4 zWP-X5PH~4pN(=VQ5+W!zX9dwBp!FC6V+ICnoq-8hfv;6Kcz7D!-JZ|jBp%^_XkY5t zb3{U~y?az{t3lKvf8zr4kMaYL%vhy#?8oVR*$Gf~5*m&`Kxm|YeSsx^kX!=+0q2-2 zt2?R7%5WLlTGQzp*%}zrxmnwN)dm9MapU^BwKjIrCvda2vT@{c<0bmL2G`g9U)l6T z1b0Mo2 z>0FuVY#mJL896yQ=^2>lnV4w5YS22m+c@dF(b_l?|I^9;^dn;IXy{;W=VWecL-1F> z`UbYnPP{}!e+~4%pMU0Q>}LLdBiT6qXIWnhr2nggo{^4${(t-aYRdChE|-G2o3WL; zh`F_~jpNrCe2gq?96WzF`2Q9C-;n>+RO7#zva>V%chmnW`cG3H`oEU&UrYLjUVrC) z5sVL-hyH(w&j0s?jZ`l0ye`gISYU^=;p+6M$A03<0Q zsO$!O-UXG4v*>>Hk&~U4?Nw~5M;ZmDzO0G@BLqZGMD`47h=YjJn=*nQL2QT_$+(^L z{w(#(i>5pdUGQH=6zI!%`d2c=_SO>! z^m%9~6Vvu?#)A}NnK{s9PR(|X3 z@Q>Z%hYl!>U??Zw!O;;h{q{3jEPO#5=L=hUpA1Fdj0_U0t?%tCH?F&T7hCZEPHlt& z7<$X4vu&~U=badeSWL|BOyBZMj@&Faw!6r9&PH%gDTvBq5(VXmv&>IA9=|?6;O|kg z?L9l(#r??tO@tCiV0GPHxraoh-d*=L*Xs@T+gA!#xI~%&e?oH#dx6 z!$XX$xbh6m@N^u->DOUtc{Ytt@_?wLJM_HzdMv*=kR!VW!pQHVExif|`tW;=HMP)| z8Pr+x4OwX!aQX%g+UnqpYiB~zlJGEGD<;e#HwcxW_s^$@$)(_p(H<6P;w9oP$TXAM{QRlHT z`W9>k%tRxaNjJ&B-FBF#DU;9#{Jq@>w7$S4LlV8FFX*T$>uH3=a4-()vFsehDr+E^z=T(THZ2 z%G)ipg0k}W9#xs_fv^H`1~%(1mD>oA(rN_p2)Q8whYfObw8OO9^lTwJAtWZ;`oi>t z0J~cJkAhQlIr9&$g_Lr{qhfyy47@>QH!R1!`HtLLutOEpV%KMNxPjsIS@Z>;@5f-a zxYPyLZJ!{CNhl}u#48cR!{Rt~0I7z^=I71ENUDSsp}*lQ7WNCgWfLv8|L9wl#)JVI zit7zqS`!x|l-ZgP#~4Xzs4x2emP#=1h#R^8*3Rw0nCD^o5a#SMP6c*eEnoaPyTo}g zIY(adjrJ@ZVLZv-mC1RS<1Z%f1o?L5#PAnwN{4?J1|g}v{Q~6XvT9x9KlRi49?T|w=* z{nYT3pt}=)V2iFdc-QW+AB&aI*XqK{8ZPm~kK*uTI5iR{OcUtm@zkj2@gO_a7#L1= zowMj|MwQX_|I$SQKfZ*AJSZyei>)+ZR{pN>L{+4t^Pb{}_PiQhZwO|Z5vN3FgYZt_ z9=(+CS2M+CC#UPu*nsv9fW_wKwmX>c4L^j!kLB=SrV3#|Y`}3g4s~4D$Dw-1STn=% zIl|idt6H=rvNwC$Nr?bWr}<}5O2&@JD#)vufsW+j8FtuoCD@=2+9nr|$5gG@rXuAs=Y%MR;1 zuJaBRin{QBqn1GMm(tFLJRewdqz9zWVO${p`GodfE_rQ^2$FE3#&##sEDpMEUpx#k z0v_|0hf(;QZ(>bN z%@LaGqG?PrvA3P6jgpca%Kr#Xjk#}YXNALz81bOZFC`_VsHz#+|BiDb&j;D_o&`4@ z>eDX?CLYX??HeTPEr=*3C9SBf{LSamKWThogQb|9oPmog_-2%HLhQB~b#dIr#yhW2 z&p$q&=-}{(mX3xi-~^NM3IH}VJj}RD8nYpki2fE7+$UNZSZGymqGO+n1gu}D@Q4{m zHq6Mw61cO_kD}_M$Vo*tu1MrQ{pYt31||+*=QwabQHOpxX^NpOXz)k3der(As*fU+ zl=S%TGYV6-Ku-H{V%F%iGD;aaFh&-x%dTk87YeGld#Qs@%Io1%VNWf&$QT2e%O*+< zjG6gqhnm-&3>ZTvD?iKX#*BKVhi+(TcX6@Ec4-6XaMGTa4uS&ffoly-8ta0}6{oAI zQC_rkfScX-z8x?lci#h_J?X~UR^_#ZXNHF(V%xe8!8JXJQx^jRPrjHL8LBj(6RUmj z{sIB6wn0_1-K%kG5sfzOnCtLIQf9)y60*Z?1YKmjZ0Y_&iQ5r9s}qO~&J&-pvorlm z`y;YoyE*m7AKSZAPdUln^TM<*g*8-3-R0`9<(}4hsEJ%qlX@K?2Xd0JIPQEXsM0>v z-G(q9bKU4K6B9DTIO(x$d~{wm;ZN48)iUqr;kMgI1@M%K&4kw5&!X9~eLoQl_Y=0> zcxBU4rW?%tRLnIn!=djCDhn@UrSO^9$eyg3KB^cRnqBdQZX;78J0mfyn+m_khBUfN zf5ky~a1de1TQC_SbT^%_%NPSQF7<&nwcR47S!c=c6g1>@_Oe=7b`>PN6og_b);_zH zA=k$Z`Pol|0+X7^VZgv^vqW95q#xQ~w^K@+a41tAWUEJw=@-lddG^#1eow~pX5tHX zGUs2|(|b$)^}JBJ?=R+gFMNi`Y=Hr=r2j-SJgNNirL~OQ9ic%Cigc{QvPNKx>@TQT zl81Hqg$sti!VYFq)35eMTyfXGGdf52F5cLWOm8i=Y#xt_l1H32j)(gZA!!Hl2cfT7fu(E~6p2b!k z)_UM|=UY@-Grb5ViiQq39u~~yy$_HBAPwz#Ppy?y3RZ(dW@cw&6rc^fS*lRj!^;l~ z7!fLNM!Mp))T4)nG*MC^j29~XkKL|XL%=P(D5}u#fE%nzi%oDC0f6fL4?A3T#Y>eN zW1o94=rc_Pm4jRnvHI^3IUjV8{BLm#k3CY}Y3A4?v;rz##8eRm&Ia^SMm`3|V9`%8 zq!j+IM!CgUQHzY?%5nEjKBoQw$9$Z=3jXb`uj{SqvsI|nT=O3*+c$W@{ocw;?0MyY zpk*h8B~^}UJuUs4{v?-b(7lt?4Q%T<+h0GEiM>>04ME3@cV<4=0|ZaBAclBCpDx3S z=tZIz1a)}Jr3|MV+``CRw}+$|y^f&A3avw@wNg4HnKB0?Y~f$Ukgz+o<)({4Zs0f6 z)lQ}?TtLX%V+<#nl-QRG*0w?hb93dfRP;4q(@&`~hceKRpt5^ChBvpwis&mVg$$FvSlfc2fO`|FiBE^P!8F-Im7dQ{#vW=AtAU@UPKdg%v(tRBNwyp zHVp-ae6hePS@eqn6>*tPbs&Ko#WL)|oTP~_K;4`@EUEeBf+Nn!LE2(wO#zX5<(`2n z`hoH)q^y=H__zW9-8FYVl|J$$RcUv!DfQ=0zH7=z8pj>oB`T-Lb>O~7Nu$P!lQ*MM zZHV_Dy<+sG;n6G(O*11LRRBd5g;N8|Dyl-^lRh#|_B?5DGTSqQ!$2xShLR5wgTOH#=E92gFRKPwo0h(IJ&rIK#bPZyZJGYYOzMrvJ-?TtsJo%L)ZggasRQu!hmlj1}Jn9 zXB_?ZLwz;yH&p|!49&;PLZHlUV%gx{sgUW}aZp7~Es|wMRrf40XQ0t9XZ2!XY$fst zfNbRDkx`z_pP5wTaoIFQT7G**#)|-cd9}Sk923*uHPq~DszjU~8apgVY>qxjF+*VW z4q5TE$@H>Jh5}mq^Gp}o+PfG^Zx8Rq0IBBrRjH+cE-rHSz(K(vKCgYD;aS3niC=T} zyaz{-Q(e}84p-BDC5N0*aY;WJCACZ9(Z#-_k|rL`(%7ITi$+6P$GssVB<6;_-y+5R zXIHzRKX?MZ;Q$yqz(!(TbWYt7PJuCBMS#g+unJyjRR?br0S ztFW#uM83KFSPR}QF6!;O^~mo*-V_d-^qe(G9uv&^vpRTh(!U4NUwe$&0xc@{q+F|3 zX(#@JQgCfAd8s8|mwM-y8McEwZkz{IHW*foSB~y9*@wR$461%Bbi!lGQOcX@pGaI3 z>I-0cC43ftSE3|dnzOQd&gv4RqfM!`t!E<)$KY{td-}o)TSDfH=#hzHH`HtieWh<_ z^tOO<&5wz)prfHm87w4r`SzpWgEM3OL6q<#ER_>SWQ5KL zcdasTUFV1nv`sHL`C70EJ5*@pz z&S#quiil{F5*eH?u4S<1m00nF{!%g&#z6g3lxL0@a|hTidj5RC?rx1Z0#LO;Ccvds zYL(8XqS>_4V4`e~E9z|yg_xKZ$!Nf>1h#PA;D07^k+xuM`m{a^+@US2g;w#AMEa&d+5sVcUax6gf?#NxagXw`XUfkeLP970nT7_E? zjb<)9Ax5l|I?|Y{rVqN!FAwcQZ4rLYJRY>0IZ)HMTqLq@n^CrG$xZe?NWCXsl5W-w zwVvJ*i$@hT7(Fe~k^i18a5a-!)NLFHSCrJW2RFiJMUq@BzRvi21%Jq4d_ncgR7DJ{ zvSwphib3uYW<%%T+>2>LntVvIz&~-{jF8a@GP^BmGE*^W41L2$6J%g9X)h_f|BQ#O zItzUUIlFadTSd3iDNTa9505BCbmV99*~YS|w1Ni`rg=PusQ6K7QZb?0(5&@SOgjR0 zJpH>86GtNP6=7R9&jC7GIQ*GV8RTXS<8fji1od(##K>t?F!-yS%~5I2KZ|!wFl0327Lm zjnV<%3HMU)t`d{dE(*_|#O8dTtZe9M`8iU=7_2FGBa3c#la>HePoZzVH>pu(;C4L(n zz7fMwZy!Ammb_9`$UCzm))LH6P%mqV+GZ_A+~(!gAvJA7mUEQSDVL9rQ_ngDHTYZ) z&cTj`tc4ZwFF1jmMSd&3i1shj_v=)piJb(|%oGGJ!lg;{%&nMIJf5LtfpKflW<&F` zh!f2@zm1Bsw6F%Hh^IV}ZKgaSX4>prHg9*A1IE(Ssy*E81ZJge=r1lyN8G(6{4 z&$gT2v{>XF53fITHJvl9Q@$@E!<1S*`4TF zO9Z?qVxDMdO=#4nz|j)mGcT`!i;RzJhq|oykWRYAy6^9OTa!Y_i>@0; z1n0fHh7KS^E+dA#C6?6Oj*yGVWi@5uh^BPf!Xv=s1Y%W2+C+ZbMP+AW}3 zbZ=E#n3SrX%32HTE*cE%PF(}7B~f&$unRZt@i)se1HP;dVEQg!Qwn&_PJmgo`)b9* zfDwcLVo%dvSOL$`m66;=Hab(Ng{)nWfqt6o!P^y0A$hz((s_O7vV0Ul1C;ixlG&>t z)Qp?$xPGO&x@)`(6)&+Bl+J#CGr+=~>=*Y8FVgmUy*wJ4wxzDR9aJmpO-dMd0@u86 zmmM#W_P#6eW6)^S(RRNtlXSX?*TVuTNY}W@;}j;pQ12Z|9F&D#cTskJ_nwUgn4H_oc?ljIVH|# z2KOizPmd>Ftdw-VRJwb>5rdL5Fp$up?|G-C?x!|?p~m-~)*}5eOZNdxqUN;fzIn)+ zz~xY?8<9O6`&P^*`0R`Us|ERRO55>bcE*V>(LkQq;Lluue|B3opfrJSJwIft$BG*q z{DnJ-&5J_T17cd){7UYEW>|HCs@fcys*2j?qTcZp}0I)pbV`mz!)xnsCj zz8^TAUz+|N8T9lc3$8j8&F+&UOn2Zt_}A5t);EhL)3?dU?|Nx7eH zGFR+ech=h0{OvAg#*MWl8%j{&CXZ};ta>^czhfw$c5q&~*BB1=P&j%@QAq1Qd;76K z98)oH`;P`D&J{vR{xponh}mPB#H;bbKOT;(VV%)fTDrNLDz10bnTTm__#PgNcwu`f z#XhpYxa)+zDM8Y9Y71|WDDjm+8|W^9k0PqcA2M`?V5VdePsxah4<~q_%f3JZ7Nzu) zDm#$gvKiuW@NvJIcmTO0^qaul)T1@;G&$)dm5iE;{B%e{9jELVWW9% z4Sg)EfV{i{QtxMCs4EZLH^>|42J>QQ&GB#VJ}4+F1pG!*iLog9j`Ub`+u7s>@8sQm zqz&Ix=Fq-^uIv-<+>1g%*`L$JPMfJRA%8o`du4ut!)&>$|H+HVpDh%3{>SCdG0tiz zaSOIR79h2#pyK(qy|-Rd0Xd+%(TXo;F`&pX)5- zb_6Odod5SOtR50fW2Sx`oTH;s{=t<)FJ133faWbEm@e`yB;gBINWg9BlUL|ul7bo! z4tsRo1Amp<+sirzud+q~E@E55KeFcF0H*EYKE2^ryC;N=xEC?Dtfiy$hs}ie<*2fI zLxTrutl8^$+%7)3;1x1*b4PoviM88DVw!nzx;R(J_`8zdz?18ZilQnm#Fyb{4>dRH zS|&v{5m)v-Ce_rEUkuazc;ff~@V8JE_(sEEa@)w^c5YJOwh!6qNc_E7+3!FRb{M5X zVUc#z>^W@=V&8q<%9=@)7T4A*FT2N=8YFd$=n!w(fM`t{Q!5?1o^#aBhQ=q*k-P70 zsI1wdu5=`mmCdEaxOVlOoF5{5(}%DbM{nK3OnQ8}0CjQ#R%BCK+KLS9TiO72@8cB)EzVm;n zi58Y-JyL7iqc(ZK>(vR`5f~e+=|Os7md=4mVgj9$VUcF`b64=aiH! zA%k&1tKGC19-XMfu(^*u)EE^NA_Z#{oEZ|{)s@h+0tna_Hpq0hO0J1>X&0|q(v5ja z?APmCH~|$Hgk>1k*E5NSSz#wfe%?|gW}q=gnhs)xp}%Bg=!FVt0Ln{C5xje7n!k9( zzDz$%%qRl3&`MqFV|Lu%>cdfnf2|9?rhYQlQdL{*NIvyk*#vQY`+7^UCq_0&O`Z9lxHm=uSp8ippuSmg8Zk^OPCPe z+7PZS$hee-`GNi>(Br13Lkew?X;~`pLs`Ky0wN$aHC0Hx(rL32m-r^%r(ter@v*=% zWR@w7?fl{?5oYTL+afQ(z%NSFKwKO#(HXy3NFTmISqA-AIJ?(e3YvtTma?+1|2s(C z*h1rDrswnIuzb-@l{(fK4I(BBcB;e?PI7HNqM{Uu;Awa7ZN*3OB;__Pj`KQk%vTe4L<5Oqz zyAH{;t~?JtM_Zp$$KH?CxFPH$$+*A#kI-bb2H;m~Pd*sfr-t#PE3?Ztn(Gppwn1O+ z$0d*sQnLAOn22!&RSnAis+RytG)6*nr1rmMrYO~=oc@GS3P!6vh0FuP$DH)kqJjp0 z<&i<|t^NLDITyyUy}Pw7Wj!o$-u?l6k+QI5AFkhj4h{*SGs%2m|CnQrcuzJHiSmUr zky;LEjFMEARKx&M8z7w1il%O9Pn#>x$ASn*Z5?M2QKOHzSX&R_Q@Ij%zK|vhFZclg zSuPU*`f6vvC-tJuv8p8DgU#r0O-QixkxUAGj*0y?Pxuw$Wia?IArrj!cC|0J2ly(hx_YV`(i$Bi~OE*&DE4-f+3(udL9^H{B zWKYXT5=5QF~0e{<1l!&$Gn&w^{fE!sLuw^Q&`Xx#X;Ya?AM+=N~7{EtqQQ zj!v{Ap9|br!G@6A*>X*;+SME@7FAu;7yH!1<}lZe=*4sliKP-Lqm_>1MaRkZp={#( zjdl*H;#rttU0n1w928d@AymlF5oay$TJt;@8}$PILT)8Az8zlO0?t&Aw#mFMtBU0l z(qu=B5P0N6U0Km~;YOkkXT@n@V*L#+>zcAnAcR!k#4aco8GQpfl86jNOx zCdQf{|4Cv=;2~%rqp~MVFpoR61**%d}uM`s#gT{eH_T17k zTFS)T-^%Jorz~F3@cl{b=8L*u2Q{a5&NAo%^wh{-nJR^wVPyTIZT)(~Q93{V6X1)D z{Ob7%7k*>?8*hytLHRU8pln)Gxck6ZlUu`zf5P$y zTsFHnpO!h){J0*fd?vDWybT=}gv+g4YxKAGcSam1hSmBC+k_yC$NaS7 zf;C@{=h)1VePsLD(HZC(GUzO$r|kn`;US-~lcg5!Yr`k#=Z1crkXB>cPyT2;{M+W{U|O4Y7v85y ztem0Ppp@-1xyiA0Z#@sM;=;367~|gB)lWu-S?cAYsZ14hcZ?l5HBRPqIks#cDZQMb z#|*#5q;|PFkozlTn6T{2>0*>w2Clz1o-e2$Duvry?c)YaT``N;0idVHfBT_mUWf$S z9Wa)2yOeK+B{_^B&->@#uuBllfyL`_Je~G~V~+E{CN|D5rNXR@Ikx%q4Vj3lk&t4D zoNFM_Oe2#GU?F-G!&E}x>rA`2q+ai<O(A8Q<6AeVSL$66T^P@6WQIwVxB!(CoAaWx=E2&6CZbE)kRH@Ouo8XJh?n%ndP^bhfT3as?1Ab*wNcy z=Tch69&Fi>$Y~qnAycACmeowW5T=Lsalo5apc%y6)D(A;XTVJd<=5*S(tjVK_(@!Q z3wHIN_}m?UF?3n?op#9T=a02XF+57t859j-b@Eq6Rm~o_hoa&X?Hc?~Ot-dhT@A9i zrBGoq+WEvM&BvyL4(arv*yceyyTN?FFWk`o7+CaKQl8>)|V$nr=VMDVJXa) zhmY~$tdaEuam#%;mP|KKi5`m`I~Vk}iSS2z>aV(MUjYp+FnIj(Xq^}647ML=0$w`3Mmp^X z6f84A(S2ZOJk2Fp{oXc`u$tIZGL(UKd+Lxzm1LLni|wHqZvEtriVel6sKt-$o}IW} zefQ~8^dY7RHKm%`zF;zexqr=#)dIBmXv?4&Q|tS}fGFt#{xQVrkH%ZMj}LOlLs&~%e`g|?3hdC^ zaje?*DXY(XpO&wex*#7*L}Q(J|1hn3Gsn58Zk72SUR!a|UK*ms|An)1!XVUg*L3{* z+L;YhCR@0t?l3htm$H_N#>6p=sOoo2dn%q`iFvIyS>GDT`qt0x0WzK1qR>fUjjT$F z$i}FY*>`$%RA{@kb0pd_u%UJw$8bSW-8+E z5)LU|Cz~o}DkZf(4s9fCsXss&IS)rmxH6&-khLF+Tcg~xLa`^e({?7$9WTi(bn@0W zGW?8{|3pv67(8gq>Sc0gJ5<|=Tx3Q2ZjP8sOPTJv;LU~mQr6!!K#<)=G4zPkcs(^q zFVKy#g6*m;H-#fqUs`pi-5dnNghpqRv?^Q7E-!QMlJ5cd&@m?ry8mQXL|p#tHc2Ey zrM_AKw{7ww=gK{$E*o5fXt1RC=n&1XoYPV|k-kXe`NMSk**rpmY;Jmz6}~Nd(ovI! z^cQl{u!B&`T+;!9Vdw>{oqnIvta;xdMMsx3Xg0)&bB$NLD2Nfk=pN?&C|*o=QguUX zKRC2lY$r=iX_w3hk|WdI0P`r5S*>i5Sn*hB!6DxXK~X1%ZI^KybrpC7&eUjwY5@XIn{OBo+YZ9Je8*-A9FtnpX3HoG6FPi zS}vcJE>(J!xMvb4=ezO`O8!td)6@(=Ew;l*jEpI3LqCiBw#y8se<>%L=HS{ov(NhY zNn@~1n`&Ez9f`MMmg;&bl~9ht)uoUMpH zZx*JdydGZcpk$pXRHv@Lr|3yvZX>8fz}A~;ro&+%dn=On-HlBP51_m5%!f6lZf!4J zjQf4A(tM|^C(cc!!We;_-$lRuZPVNKtbgT93U>c+mBeOcsq$ocidNqxKCKj-BpN>5+>>v1R9{Eo{ zVihERKvyn=Xyp|1gphhb<}B+%|K4KTP*U9d80iRoF2xT$E8t76rrJBZstVK?tXCJ( zI{ipVI?CB#f48aMhOof*_{EoTzC7slk4fr;pswiOLT`sgx3Pe;&$bxk^ZCGS=T#Fu zXty~ghF2XV!Qg8#NChQxUr^;SvN%T8Qm9!RkWm5|k+dE9&A$r|OmJ{+#BKWu0R}gP zvQ4*I{v~y$$IU}>3`eZ)lvyrZ)Z?uV_$lUagQ&5QEl)r@(aGgrU+S%^G8|ObGap^8 zM#!+2#|h||@ADiVtDWHzU+#3gD8bFlB;~~V$$?x6B7s(a)15b=I98mKs z;aLTrbCptQ5|?H=(L;r1bLiKgnj6oVOc^L;is*K{ej@Tky+T&TLtDJwueD$cPP6N5 zq=;uZc(j`~2i__NUc!497k!a!j-Nd~Q8+wav6dpJC4xa#jWxlxSXy z+0?bRnl*k4(S65y8-(qniogcJyylw=gF4Js{|YRtq|WoxPdekRMn4zAMm^@A9fY2B z*{n>guX}K1r^Gpkj2XW>JJ%(v`KwrB(TG7f9M-2ggtVvDbMDI6P)`%PTYPsZa1`jN zwX38k-{D|gA-$1{vLrcNJs@)%4=VMFQFq7pfFHOt3}*Zup=Iv=XLiDy0pdsd8UVgU ztAy@jn(D-d#y0P^dY$g_`Mic?wDt$xb0WUNy0dDw&%4ds!uwa;$DA%YD3n6dI% zqEGb;{;PSWL(;+D-2>0hT;7eKeahm5i7};4UJEDa;r=vKtBZ>vl8~w|qNrwO<&0k6 zCqi>p3iilV6;YMX#DRIXwxhBMA3zz%TY!=tCQE6U6V| zpw9}LEm#jG{8wTqHJ^h??{kZ6zWxHpn&njy_L$aO*`ZlqCQ^DaSz-o_0It`p)au2O zEE6EOd&&^Q1!0sB>8J5Lma@j0M5pDH6SmrVOf_yfd$@#Ykc#?x=DSc>xpT?F)QG*) zy~U-p4zShmx%CtWFL40tuu<*M*E^fE<$!du3Tl55ufetOxVh?@QZY}i3@^8FU!_`n z@fdhYAy@#srKB+~78Na=2HNct#bb%GdddiCeYRMDJ1;C0KkEuHQSK-2u%2d=%0siM zTc)=NW@+rb{J3etR7kzHv?n4rr05~5SvhN)6~odp2icirX^g#+Y}o}b?X>hH5TwcQ ztXCx@@|cGN9JCbmthSzcT2-UMh?`g52@_Lu*)3x|^rOq}b7+H`j`C_?G1XZE8Lf6g z=TzaVNtAS-QB~)KSKYE{_=m$Hrkq$PW#;kuQ0f5llA1zzaq_R!-yIX=XGXp8DAXQ; zDZSlUZHk2x{C}P|0awMOc6SZm{yLj#hlQxl>F;X8O1IL97&JSU2FMHem_pa-;Thld3{*Tmn$G!!YEJoSM!?@*V#@NR$FbdE)IoGBE7@!D_P$gU|pN zI}HDYn{Odz_l6Sj%^@};h2H&DQC&GWA7{XzP!E-e2$9%_nc`HiL0y?-JuL3)V0x6{ znw=5#rSvUyxT2y)n8A&sfp>2982sdjb4Lm{64Oo3;GTcp?72T-eBi=pZ!f}7Nikuz#m@M&u)R4r z)p!J|eqWvSmlWpHD-p-M+(RN}W@g*MyabV!mY2;n^QxV7OQd}XBBk5G_?~+OZN!mi zeO4OAkncuMLSB&N=pA}~VI>GE=_xOd=X)wmYYDsK{FFqTjL@7sYzzcqdUjvr`}k-A zUqLI1ipn8c#q!H-Yg^Tb*GP%Y^eYSy)inWLzB;J_9HF0mh$s6+!w-i< z+gIp%CqWd{l>HJdG~T6DW-#E$yS4T@5sUaw?`a6ZZy|`8(E4OF4}?{H5;cwaQm-@( zcm6>}uiWbl2L#3HP)0xHO|~lI)7VdSI0EAO2xUfd3uir!P*ZaA8zsz_XOTG7nZ>3} z4TZ^bF<->q5Z!ms=7 z-xL3MQb9fCC35zbp;3R}RUzSR>MA*MFRQcAo^UWw&c+nWNIHEud{flah3gr8P$)El z@i8?*lj{i4;8;>W*>Lpy^F4lJ#oL((zV?$ zHTh(fcPtKYQ(O(>$Cu$NvZm^k`3A`@ESnuNWlC%)1e^ltNd@GKxWw^Af`RcJ81_HI-lJn;XNUX}(g-94{>;$BzR?HM1_W zN8>jDU$UCa>uKPv?p2~n{`J5n%_}Q(180lBigOOVI-#3kbz8(IrBZR{W=ob0ImNA93qIxB+I)#F2TQndXo#ip z^%|YAWrP(s2f^nrNS*fwx)M_*L3dD13u!Bq&ddLYz4wl4vf0{)l_FJX(wm@w^d?Q3 zfQV8>dhZ}L^n@-TT|f~*K|qiq(mO(E(tDE{NJ5vEgc@4HFFwyX=Y85a|9@+JYh~T* zCL#Ci*?Z5P+1H+Ha;6dnz1a2rc{ITuCYF zY*>EksMyXMfZc0;Vm3awIhWt^fbGuj7K?8ur2-#RVpZ5xKX2}qtqiB5ps#c97Hp>{ z%1szdOK-*og_~vug-hptF6to)^bCHw5z4{T<<)7#@Y?xoDrsYvN6tizH_gMD?&y_r zoP)KB295enjoU$STIZ8WzChOAmnDOASahIMC;*7b^;yX;~=VFxH>DHTi{x=5Y^E7whn+tt4(!Ce;^7*?YB1!?0rB zVz=7FkHG|8Q`&xUF2k;Taqd3X@E0vO8@n6Q&0|v|ZHp6nz7i0oY*P6GkMD=ZLP%3{ zCCjy+7((7ZOF6|qKF)jv7n~r+(<=K?-v}DtkP7qlCw6zooONV$KbJY}o}ib^lkQNu zA=N>lCss(SlWhf4_1q)o20@)zj2 zH`F|pVg$%#iAEH-ZvR8uN#<^M8~BiJ!bLAFQI2zM^t)Bqn?~G7{L#c5>!`@A>^bYH zClc}WYq`xsx$@!)wJ67?pnGl3{Qx%t{K!sEjF3?w(|y4%S}pnh>zz`LgkSNl-lUff z6C2ee6qS~Kv1Dya=6$At_l1g{PBkDfsO3W()nS}QV$~BW63o?)RRi}ut?Bc2v0wZW z*Sh~B+a+0+wvJL3nV7;L8Fff8|nKFkNF6? z+@HLB!4z_>BUg!>yuW2@TJl~5`b8s%fliIeuTDbD!Z>H}V`J`5*|`KNp58r|T)HIt zGWS?Z^QRH&UYmNlwoLA|>8^pKDie~|)Otm?G3TKQv;aR2L`aHTSVH>*v`6D1{J97T zOOvEyul>%(O+#A?AA=oz($LS>!@7>@XuS|NZ&J7;mZw$D%1DGUX$`HEH4~DL6w9iG-@XMfZF3^eyAIwq8sV zP6RXN?_R%gX!qQg6Y(Ot96Y!+cc*nOVJ)QStFn1rH)DG?>5VwD5~WwotuNlkt$oUK z7Ie|X*VHCk&#>dF-95PdR4;N%>|pV^y3+hYpJ&ctjokr`g+9snjBPT2f=nPo*~xzr z^;XzVck>y&k2mrL&*?&67vWt_56+O9o+!h-kT?qzTRI^;Xrl58SQzFRcJqPi0y;}Z z^VRi!Sp+4wTUim?fYb>8|yYT5bXGi?nJ6`+lTWPk|JpZcF?@87};!@&{ z=3@+dPxRUQci)YBw?VrtZyrj2i^joICaz2=q);59RM$>4YdXKI@v0^x7 zJaRu-()!~5kkjeBLU(kzcVS`OG2bGF+IeP9$miolYW*8c#kJR1?;y#w)p&}a&5~DU zK!0t+!M-=4_N_WOPg>=rD>cq-Hk}fyHyANH7o$J%*IH>6&x%%r4e6_{UY??rz7>8b zz$$?5;{kbV%GqVI&Q;R~wXnYRIlq#d=_%Z!orP0~p8S^Fn3D*Eb;#oOUt-6JbeU8| z6Fb|mPKTPR6#1=h66Kx=bLru@tH$vJ<^;$BWBatY-%195BdezIg|7*N25X^Pg$Beo z86@A^R@2ah%ad^{*>z5F8607>;1^+Z;tNsQKT=O|99QG3zX+u~zX+x6-Z*|@ z(6?!UiiCe^5`Gg$hz%kAB(CwxyJD$7!C6&1uK(s~zs+NRB-}oJcZCqCPa>x93)#uX z(Mo}QhYace^weLps=FXFPtV`>AyjMP{xvOJT=t(H8@`776zyGZVabdWc7g}aue?3a zy_%tZe|9Q5yx(M!>fa2i-+5GjxPmxvObRlt=wEB3a80Vdz1%O2lrnD)or**isN#3_ zgnz^C|L}!h{0rRc0Uk~`o+}ATzgzD2@cs8|nh=h$rP1JFEcQ=w|3^FF1h}2@+E?fz z|3&ordwajVBVh51SM9M_Y5yx{`R^|hoISFx2weMp=indJ|HpgdCR`VU7n^MQ|1S3* z-=W5llx43PldJ!)Cht`G;`m&aO@5szzbeH4{dMO7&X9PO45|NY^M5sLy@~Up7T@h? zuK%!o|0w!@?jOIvxf6l4=-vO-B+ey%`S0fRb&W^=vk$MY;H*W`Zu|6q8>>L$*U%}$ z?Qr;?eYkZMXDyl+-OxUzo`0VO@acb84fl~oI<7kfW>Nx-|Fb{;-*UdkX%A@Y7iw8E zrQ9D_Sm3LFN7^FmtlGExxqCtXppH+t5ov}W^)I{!=MNK)tylbmw=Y|m1f$mPshq4K z1}iULpE5N3!_d1Wfz!F(O7CnDNqFLhMKtXEg)!~)$>q_Y`OTb%Z-h_v+?lB zRX$_QUuKrRP7*td`I%j!o5y>W%f1-fe1m23;}XX|xWMBioOMyW;K9Lrh}}jw zeu?ffP{S_`f2=135fFsf8Fo z$Qgd&Ee@6iAR{8A-#0e%AGG=U(XUEJ>%|58QbtWCRCUTnIg#<_is}6 zL6U;XVe#sZtzz+3&(BZ`c1FuDss^p5Nd!in^l1GR&hCs3#Fbx28;N=_>JWK zmw5Hs@i)nq1|l2tCDvh_3s`~j%YIhpo`F?u+VFPTpsGvZhr!bq+H4{CF_#An+Bc#o zpUcr~OL;udaM-boeMG|A*wOeYhrbzM_vcVUR8GG_|5}s$G3unM=}|4F)L#Hb{cJJ zs^6P(8pbjMPHrGB4nI_Bs-jvo2mq#_-q)V4B-D2sna=^OH@nC4qEH`+p~+8CN!0!8 zJ=MXI?hE0)Xmdv<{WpyF8V1NSKF{451phG_|9)@Cgo{+QC`(B+c)BTQ^?LAHjqDgB zl23RcsuyVPM(yyb-468V<%eE5V)2{cm5#M)p=gH_Nj3cR zA1%G#{~E8`y>C}86Chm`0w}|pp!Q1`gm@#C{aBzO(BjREPf{b@oP)n0=kh?uB}c;N z090?tuDs65=ybYiV+&@5b@r%_InAyqt9|;s@>0A|b&mTI-|E}?^a*FP5C_}sa5w5c zNF1iY(xD24oeRnIvc8`gWo=1?H@G*KPYQ(+QQtN{`KKiTHCJUYArdUuxT%spa(?5w z@H3MBya;B6;PURAyN~AgDlUaug>0D`qik9MH-+0SB*1Po;gWUGM2%_v+j7m6a*96^ z@hcEY>0I@L+E9bWwcGR^ZSSuIS0k4C={+xz+3~8iQT-H08VbOnjRPv)&fXDdY@LKe zpRn;O&NY@T*G|YK_a+$QDUfAfuMX(aa-m@dGz8 zUZ*=F^=()}1siW8yHd{0xeSzC)jn3EWH1J<nA--oWoBrjEkP(12B z^eI0P!>%Te^fdKcJMmE=9zI#CFb{ZsC6XrywMBtm-h+|9FXw=+&ov&W@q1#CfCml^ zycgbzBbTd8MCZ_s+^_()WcCxn=w&V{^n#1qx22j!IECb=Z-u1T3uE|LeriJzQ4H)b zt@qJNla%C;k0_{Kp64iLbZO-B+_tnNy*9C0qnSx=kM4#7FS(@{!^cEn?3({YNA%QP z(fw>IYu_s|mSq%KA&sb@{Du8>**06`>pH(tvVB8u-5?H z+A|mI4(FEJuh!t&@%2;!1`U-;p`$*XL3Whry+YjitgGfKj$X9aCx;}b$Ho7HEyQPYficW&jEm?sb`<3kR#2)KPCjuKlYY?+vra`FU> zZ7HcjI|Dn;=P$9WZl_}(5HsAi*b<%HZh4}GK@Xw1GzhY@jy|MaKIC>v>`?{Q-fBUv zevv1V+12(Pty};Lw&_~Tp$h1zx9!0}QF-N$if_S7pGQ{`8W4W;+QVG;VdD28n%o!GppX$sxGYC`F= z#TR_^b$7OwFBB$rc-Gl?n!~2QuX}bh=O4TR9ffOga?4qs2BJ4WE&C3hhMh~b=48BHP7F1N-TDmvApKWszHY}0U*iY0SrH(0 zY729-kI23e8t(Su8@bmO!p?C+f~dhPSq5Pd-&_w%tP#jd;}-57Ew_uf!J`a1je&TE zC991$`${1&34&h|jnVh>UF1JnvrYFoL-e|6pPa5%pqJJ!KX7kbP=VQLJ0Pld$G-Ae zinJZ)9KdnoZ-sE?ljFB`v)p9vP21^~0t=(PS?6s@iGHGcvx9`bt+f%W)Rco3D@aRqZluSz^jucI(UhSX*rCW(R<&Z{~ zC(?EHDAJ6@@%_&;CgI|*HgdxIC5L98#ZHa|B+Y$jGvp5iE!yTIv&161un=qHOy}5@9rg$4}lo!=V+Dn`=pMp-Qw4J=cRU@F%Gme_bpI8w0*5kSLJ zaq+*-qsGO!Y@>M^{Pv5dkbf99)UEQl2UHM&mxx{ozYHwrLVNa-HDZe^Op=tSl1hs< z&|PZ}XFY*SUtT0Fw}-Izj=Fi6q^5T9`CM)YOPn4`M7@^l>0W#g`bKkOW__irKlM?e z)F_0*oOL)B#+I9ouICJL--JQe;AVddfy`h4@cF=a*eUlfHv;-~j=u+yH=Jda` z7M65zB7I58LM6o)s;EwS6k(Madn{}5@O-;V>WnTEa2U1x_$(5iIGPLdfL8s`q`hBx zQ5QwmrfTEml>%tw_c~*2OQZ>@(-M;<&TD zen#_CETurXg4NzO@{EFWGx@G^JjSP@XE_ zgu~ovP+W{vhQWv;Snq9at3_re;7YWPyHbtC17^^5DaF7+UO%$EZlciegyGO9bWaFm zVeOZp_QKhFJENvbKS2+u3RHj01x?YTn(WAtJgK$szHoe$I}@5uI<|IuB=;mWHLo#` z>IiqR&9fa#bf`bkN4ch-bX%#Uz1xbRloWE*2UD!GAV!6-N&k;+J(f$od$Va}Pj@}( zNf{egw`VU4hU=+gJb%t1SD@!PwF^9g^r1Hz7Her;cbA*-H4IQ`zF}Yrpu8=)o4ySs z8wsajE^!M;UV@`rlY(+2uQ3VrWF;fod(`!qZvsWp@y!eySMkieofj85J=Fa9J=A)- zb2xP zT`Ew`;Z|9x=0$3HZn<`Fpa%MA0j-dPpW%Ji)+?F-kk!oFi3~V*ZR-lRLUx#qcXax6 zFZQQ*@Ad~ed@9?9%g>(9>%AHD!(@&)y>)doA+20%V{i9kcZpqFAIrA8+Nk;u*={k- zC-|ZeU4r7Cb=4P#5L(3Pg!Vl%fouoeen2R-;$*ay-1`Qab3n_0%M(GmaH#~q^=;rnW22OIv`MiOCc2|P-JWV9 zgj*vlDx98Pq-tAZJB?Ezq5F8r$sXmFY$ut1IX>#Jq_zz=tcWdb2%t52*UFVh*Qq{V zHAswR`A(zQLZm1jcT!ce*HC>M1d9y*qvk78@_2 z{Cm}s5rLjEq)=J3V)DVZ<_w?EhgR?1q@Q`sh2jgp7kd5!XZ*SeucgAFH!1Mz!J5Gc zsQtmWZO1wE8y|_(nZ<%X-knyG;DAww*r{vFM`y~~{IR5c0jYpT$3As{OofsExx zkGyn0)6dxP+IyB*OC7_&-S>#Omum#}Px|!1as`V}?%nAf8pw8D%A;y^SV}+#B&6^O zc$=`A1GMdkXgu0{R6M2B*##1k?J#o$$vI>$c|8lhgzfaB!!FKWIQ3i+FW>g}2+0w7%DJ(ZCUuX2>lxq&QS0-Gtvw${c*ngEwF1cvVY#ATL8| zFfYTuL$~1y4jq2@LNT8TJ{-_@JgpO-@cxLqfs)OFd^V-O9WmFqTLH8=_&`VF8=@d? z2RdIX+Di<98O{E@ZJg|AfkFhZ8HLzX)KQY`S|nmd-5M5ZmVh}ub(f>C#=^XlRodK( z)5Y{9h-n+If%FErCeJxq2OO!QMwE9xpC|!wuo){6B#YdlJEjVtGnWL1lU-XzkEWZ#eheh79|@4dQaj!CIynI6 z-u5eO=L=Iw;*U95{xL6mhC|n69XgoDO!V50e)!FP&cq5O7+|y9s|KJmY+dd|?9(#^ zkEFNGrr37m@_|ma+N;N-t$YdPACh7jFxRQ3VfR?YB!w?mtZcT4w5H+NglusOXAD@x zz){srF2q%;y5%O{xTuj6!@($s*TM84s`XKg>-88np5&$Uuya`DB^SN!G@X2NL<7Bs zo7q+OX2Be23}Df-e)Bn}bLfp^g_@~5_ED%Um`At#C|A!=>Nj_vI%7vgx2hq-mo9Nt z)C7ReE$pyWC_C&VO9f_qI~`R%(O_?gI=1E7^}qgs9_;YIyIBC`Y|7w!Vc{isKrvG8 zVC$ejFJ)0p)YeES%oIt*7FtvXx9}15fP_|^*x(LIs4={4onb=t?NCK= zKD_zHdncQRBdC9ZmGggrfA@%?V<#}xQL>W*_E4>2LBFa2T^35%yrK`a>P=lz6dwpM ze@L@8=P+m8yf_w74&WYiUsGRg_a(kt+!HOX74Ue0 zezFdgB{XWEJoPbo+oO?*{-WdBk9S>d zYox5AUm@2?e$P)NQlnH@*{7T}h3t4ynC-OcUvNB2of&4{u_2(7w(xKesuyZe(*K;v_L+eupB^05lAhnPh}oHx4dA606O$;RgAW z4zme=zwu?$<)P+#y5@s@ub7f+EEY7_6}y}TL4e-?kwSq5nXqoL$n~S5V_W1^WQa@f zGr8ZlTK^eV+QXsH+A(m!SAZtXzr)$mXUDEjJ3l%KX{`%~B{WXXy89L7c5>o@07lGE z?5Gh6-4;Y?(IjG-wc{NegU;0j7%ymt0F+qu<8~Tccyp!(>teJn7X8@kAFzjQU#XX;KOZxq zFS+UZGe&BKqgl`0hcEu_yLfn6O{--<1dtqnLmoou%Ugcpe|<{hB-&$q5hX|p#ifTa zETvMT=VEM_L4Hl4r#puWXamt8#-@95w$k)c7keJ&`$`9;aX+67M;nJ-9uvy#Cj%Sf zTh;9g08dt|4WcKG1`GGcMwCCU4*myQrStT6}XG>)OBc?As8QM(RRDw1Fz|G zxyS#oHetenx075TJNec?jNPohL!m%IZHRdFV@Sa)=Crx0V@KVT?#+dd$wM)O4wZFU zE4<~7MMhU7Soh(a{MWldKZA@`%8M35^z=~v)L`LGeB4swej+5r)ALG}8dS*%?S(tx z5_L|mxvP@<%>0&z&X#5xnqLED3DzYm|E@*v)=`KqQ~mUVpmS3po3+~~Ig};2i&?Iw z*Wiqf6xzfnae3CcjT&Z4CJUcuudnr#spM4Z%&;I!Th9V?~MED!A9eMozA$1X?^eI z$md@3m4|o)<+CxEFdNH0Dq=Q;7uMe43S(0T+C6vcyJHv_W9eR7oMXfpbG$c>4SCowKzrf*F~a z%f#?%>z$Bl>(a@9nCa)3H2NAyB z!9^^*Vswbx8p9p=qM3Y{og z6jlIR`G2z=jgTt;E^jp-w|-$9VL^oK7@5hAXYCuC-lqm%f4oIbVH)7{bKR!;?~py+ zuR*{E!q1e%5L>l;nIe#RnI3jR4n25k4BgVyc#y?Uu5o2>q?;3jR8NM>p9&$G*2$drj50|? zEm&Eu+|QwHxPz8GS*rKkZ@lec%SJCH%DqSlxcvEO=RVxguT4x4oLSPaV&~^ToG`i) z%y{SLRwI#clOXEubRR`9_8GyDf!J>u>2S!c;n>fIf<@u*mfyfI!%5ohX)cj0%LTX4 zoFV^j3-=+aZLp+ZCJS?f6crLm6P4d@ms7&IxD zPWx`&%`xntY~?m^v?uwCSFRW?6|at6mv@oVn)MvTfetZNdYvxGrM-m@7@;it+&j$7CGZ2fl#*3F zWRPyY*!AlhV;QPDH{`u8xxtSy%;@qpVL8z?VUd=6%^B&F z+z&Tz;{rN3ZS#ah4bC)=`ipXUU{;k#Ty6RAUyO#}svKU-FJ2sC8Z=;l0nG0RB=k(R z8J>l8dRuI5GOvG)b5fe&eSwCx-QYEb#BV8L$iS`6;bT^sN^~sg|$mniU@KnzoWO%QKQ+uA>`AZ-ps-5KF+;AWRQyi*R_9XYGVp##H$j&C$dv#n+m zDuNFJTq81C5^-fNSw+m%K}MbBa<1r59`Oh%&t3UttDu&nYkONBaF(h<7}xY+v?8L# zYPO)keun%(9$Q;cA^MoA(D%~W!hmz%?t>;3dF9uGR+XC zFCSl?rJr;@Dglwvw=E2$UUuX4(pHgqbRqZ^W3Cs1zsrB$k8!qV#NTM5ZM3ZrkPB#~ z76KjKLbPmegIaWC2!DJ`&H^I7pSqSV3yZwyRRBt4k9Sw`e5L|&=%Lvmp`RO0jt@1@ z8EIZk2j57BHcZ)$d)T|i&Z1*u%YZVKOb`S%=cKDJ+L(m3;vhJ9ySSw?kpsS)gXk`g z`Jwc3*bKOIRwDGMef2;#<;jK)5YA6wQr4fI9@St>JNRjQEiLL{fzU&HOd+|OOdOPb z?u5bPw6R|+MmLP)+jD9(t5pi2tKIrUO2krxGcy7y!_twn0MjIaR%?IvU>t&2JC~0* zKz{@(w)(DpbFpI4L8bAxuGLg5-*(h(_s#c3!2$~3nTDDZd|I@uy1}f1B1|1Z?bTO@)HjB-Ee~ZiO=2D;jE7V=+=`R0?RuFT<-OgygjpZG! zZCy9-L`o9O$f!q07NCu8ZVKC?x^O$VYln@4dZ2G(%oVi#Tvj{&sg==W{Ppe8Zj%yC zAw0UyXxT2>0X<8L+=pV1VK7%@D0NtUv3e%_=|;1(_v&5k<3x_O!mHcUWgYW$Z$Yl{ zYg0`@90R9~8*weht~HvHU7aH;70amct6o3N;s?$i{g{&a)T%u&bAVfz94P1|oegV} zKFS1yF*I1%TY|-&UE@VBNuiK{*6@0$XzGvbC>X?7QnK92y)IB9A_0zZ-|H_?pKY&i z3uVfYp3Ku6aiV0CNxHny*+Va&U`?~z}^tm%uI45{TE3ao<5pnIe#HLg0c7%mS`WRBdZru~p*Lm~MilmSpz zr_r{o=Ae4r1$WkEiL@wsd=A4-;CrYdfo7r`r*d$Q0 zd*J=4V8Lac#@itkryGBdgvJ384fMnQT}lCI9*==5Keh4*Q8}~b5cf`dqjUJAq*oT zG)-J)=|jdA$~1%294b>8oDMmeb{aX(h$8Mr4lKJ{c~<5paeXF!M2!@R1Ky>(Q&8rL zRJest5I7E#Us?eX}*mn3{Lw=Ux zMnP8Qvsbdr-8Y4rHr?O!Y2r{2x}C+=pir;A=T+2;o-|;tmUYA8Wd64$$-vM$A|P8J z_xLl1jk#3M;*{i1hgRafd%OG%E<}APqfw&&0IsyFTdR^nqphpYh5hX!hha6eiOzs} z)*u8%^Sd$vA>0yw-I1o_>Rt=xxf~2qD0e$kI|8^09)#@ybGqxp8augCPY(kZ4*LPi zcH6_P&xbdTASy9A-Q_v3+$=;z@|(HO^ss6Qh>*Nl-Po&4cVa*rDrDzu{jHaZOcvN< z^zCf5F2JI^hvfGKUy|*fGP$bA{@v7)QyKQT;K7i_(+P?@U3_vU*N!h6SV5NL7Ashx zg>X!RRiU3jUIK7`OzGvc`y-9G%~D4tE#U|>uBKmOyvX0$PHS`zy49s$T?>$`IOE^J z9;y<9Scc+ne!^9i;PqjePj@U|ftN7JHfWyGa$U~NEv$ds`{qflA%klda-?fb#u^qi!n}X=*?oD+LAxL(MU3VFy%E*dAEZ`D1|Pkrt!%S>^rPcT?&y$ep{Ep=WFh z!sQMr=f7-VK1ZEgw^tbBwNW%w^H@8CS>u9_;rEm4|G4K5?t8mZnGo#OhSLvMDO7s|iIYl;2y09YieK+~KJI5nE^_N%~bI;=s z#5eCZN{S4~$VAs)%Ek6xI_5w}fp|0Cds^q7i(F2h?`Zqm^dn!cqFZE-znQu;1e*%< z0z^!bh%RwyU{HxGm>?cZS-Wn#;D7GqmDDI0XLO7MB*ECj$VPN;1^4Uj(?<7EfAdOR z+^;o?zJvDzy-;!TvzH5^ZgU6s$|28>sdD4(f5RDND-Wn@a*$Jv2jekSRbqxi^*M;| zBQct5AXSEh$Fn>mssxg+UPv99k?!%EhY)0hM+N&2i+w|l%=f-)C<^V8c`hv?FV3yf^^CIj!$ z(+{a#e=-LNvTRRKso;IW1$=O#Z}k#A6?bX*it{56-bwAM*S-jJC(NxV=*xdsSKMu$}{~g0t9!7#-CF&+xlg%9wQ_Yz@V=UOh25)DHvZ$Iv+@oA zn{=h#JEuHGkj`~x*+)Pw@~7x|fbI~>$NL4Bvvo=ix^>LM?`_YaCmzM?Z8~x4u}GV* z&NG-F7rU=ck#CVmKv2RZrn|Sm<%i&t#7p_&Z@y19O0+O29|yiNkK)V1+S*gk14KCc z^RdL1tye;smyfbf-yVOQpIuf^S$4`uKgn7H?$x{ ziUMO1EzFrvjrZ-%o7cUG@Q81{xPn*4A)B&C)Z^qT;-53GkqH4eMbWx_pW z(`f-T2EhW?uJuy>LAqaZ-p{`h4kXiY^`6KKJcAOLm4xxbzPw^3thb{=Qi9YpyQ6*+ zuZr8+Wep%&w_nyNhU7GMgsN6T0$;iRv9G_LX8QO=yR3TOiASea$OPHfZwo4RZ8-%* z(L4mTAf+~o&8JRzC3MY3y7s>?GXGh`2SGHqP)W8u%jczI13BbC z_oc(|L{n6ZgG}?1nVNRD`N8; z2Fr|!TpsOHXl9|#ax{1ho*i>uRf;5P`>SXE%SXclui^m|NdHgEf4O5-e$n2nqIsJl z{FkV|$@`bf1NgAhFFpOA)BoY_lM2pRfw9i39RK_|?u*3WQ}Ta&@UM1!iLc@zZ-^$! z5&W0dUt9^7%K2}tUkSg#fwMA4;hUI0$nUT{eL3<>F)m*;@|4{mnK{_6%2wau#VI9wg;s;85XCGY&Porljx)?I&GIw>K`^;KV_}m>82DWW^ z|F>{W+4vog0BXeWetnx@BCO7&xS>}fd8MS2&+??P{-ZN=mvy^5cR(r}ZEXhM6%9v& z@Q_IoOKMv%sjZ9?IZ7OE`Gc7P5vz+#ekE(jiY8@~ibB1K ze6OUrzmEA&?zjO4nQogrWMcpYQ2@qjbIQHt!h$D2S~+3{y#1~8=GU;nxyvTbrH6(( z1tTN+%ZV0iqE;*y*i(b$pcn0V}eGiK0TXFJsrL;_u1nzUf?~ii%v?;hMUad)gg%HL=raHD z0*>~&c9p%T?KcHRf@-Fr)Yw3N@i;k(SZg`w%GOJU$ly1X;P^ly{h zRAny!H*1-Mm(=Lr15~?5p_>Qw^!IZ_Wo@rT|1CD{n&TwP(yFn}yMws#PQ6Wo*31)4S=%@k-F3)msQjyRN z67ut}M~G>Rw4@gZ8TlDZwHolvd&%vDB+?%;RS)cp_d7> zWc{A4<+x4Ge`dz;D7$g-th(&HU|y35GxJki_krGi0@K(T_iVp7{@K+VHlbT_6O}Br zRW6z%qce4Gy61eNumTtw-)Z)6-l<5~$X7pJmzbW=Zj~^iNqKt@<#^z>u2Iv}W_AE^ z%`V%@$A$pIq4%w97&F5T5cwMtc}1sYfMB}IZ|#CsZ6#W5Z!R%hE?a%4>LOR7JHUMh z5yv~HAC7;7k%;8$B(X6lfISwj`*?4rjO3g@i{XPBJu&gQobGkrLg|N$4grzUlc*^_ zo#o7J8Z~Tw$oce73%%rp_4${l#J)D{e~DJ%_0+g1!hfng4XD8ftklA34^ny*ra`5q zZ673bw?|(pv50CA9uz%?A58}>B8z3}%?8)yOYjjz!{cuPZS-2tOpG$a>WmnZ?bTR( z3k3MaBgUm5fu2@n3O^1Fo+AhSjoL@nRt9qJiFeK7mjmarjt?Z%F`;3DgM=1BUlsKY znoLd;tlaiB#ELK%w3EHNOXrQ|Wi8AH22ZP{PHsulyla2C)SZ!$!VoGH-17bfXjGQa z)XO(0R-u>ovfrHR1g6cnJTFqD04oohZJ6GiEk;8Sbf9FtjtFxcQ}BE5uH&}oB+{o4_H4WAHDu&?P^y5xVxLV=OJnjD zO>NA@UT87vcFx4S@L~@lbmL1t=WweO?@n+I7W8>q|HjND4fVx!RcUrC^Q`ip*9{N; z5KXk;te4ig@s8wmCai%zh1D8KkR%ge^zdE%=}48%YjV>;heuwtqaPS?siIw|Wgbr} z;CiY2{0DJMVYS1aKCEeVXkto}S)iN~-od6v`03NNHiIu6GsflD>o#Rd3*NE=))V++ z_?qupb>bxy#B7ZM%hxL{vyU77qnpc*FCGi>1{yxm+WG8lluJkFk@$s3C|>`Tt`85r z^N%tcWrOr}ZFUi>*$WQiMa;j}&P@xmT`HC|r8=;iO7M^v5-?H&)!<>sQ-Mt<%aCyf z5rm=HLQpR8hDPTAG(cj{1kC+Bte;>Pd+ocM3`DW&QpJz;7=Q7mbDxLd0Mg`b9xass ze~yUv+lf$5jrXF2imaQ#1b}eyzpi9z%W>Jpb|CI-ggg?ktC3MAZ5u{_(L&24u5bg4 z*!pnK?pvB1sAyXTIWx8YUY*RMxpyi}#?xH?Aa1{C*vCq6(KT(lC7avTF{IV^ofsX! z^WKWI$bGYI`ot%G4<&8T%%|#2&@v)DzBPWBz3)+a21(;ipX}U#>99KTN}3~5`=l40dTiku zM-`?AO<>bQtfVw`9f>$dUi6lktszGYpt+c7l_LmuSI7_nR7rtPNQyvyRo)E`36r>u zx-p+ONJ8_hLWJXpEnP3ghp>Lz;X08SZcIKOID@zjT%3@$`I6MTU`xb?0|alcwuvx$ zt5uyoyEQ&v>JE|Guqdy)h?(-Q_lRkS5Jsu|MVq3y6oz$ja?y#?IeP_50zP|ZwP z4_P&wAvx+$xA{V|%uJ!1PW}9*YtpX4-j=dP86ukrxA>W0XW4A5-}-EjaiD>wJdb;4 zCef1t4$_o))4wzrr#T2IjY$!3{=}gAGAe~&y0HcTHoIMvkKGuP_7C*kjVN%t-| zwP^p0X`nHaQcL)+U&cyFbz=8G%J4 zV#NiSKtYFdF_7BLOp$>fC>r$Rwwy*9-leY5v_04?rYK^p}a-7B|hx_V9f9OfKBiZl*5P;rvxXx@^Ae z)hj2~5@y!$+NxHHCBD_T zOMG)38bEEnDJ5?>(r=gq^za8RbwDsq8ML6}nE|bYol*Dih?a_iV(SBwFvxTn)j=KN zL)@`2v9huAOOq+=s}O_cA$o%D4;_O&nuCJlD$^pcLn{a6BN+~5zirC78$xh8%CLI( zs~I!(*D)zCIt3wwM7ed}b|7?K7Qu#+gX3 zTDx>CcU>wQ3u-pJ4E1{bpn2)*ItJkyag686`!0?B6^$}BM-}ENeS7TOp(+$7Sv(?WKQ&_5Z{+O`@Y`L0k zWq|k_G89N7kC)tFpWO?Ofw~Xt+OmeZKePwoPW%8)xJ~vX3*>&=%MB@OxoA#PtK!7d390 zD3QQMZ#Iiuj(XJn2w~>(k%@tTx5K2MOC6NL#Z2X2^UDVUB$S}u2{&JORc$bQH(1wh zOPo1XA+JcaYMx+_<~DJfh4PLym!9VK$QZgb-bst(ta^~J!p%UPT?1uSr}tJ|IR=#$ zCBQXS@4BM~1IyyZxkY%)DZE{0dlUdm;Uq!XKjwLen1uG^|eoCrNTrK1%{Sl z1&00vymb?v%xx;9hpgtM5hPcIMZlnENRK|f{`7MdC}iht851beo8MLQ+q;8dHur~8 z_0Dis%14IGtpq;Ox+F`5yh5gEUJR8~i{vN_1tyh+Ht;%CPyEnsyNQh>0e3Qc5&qfA z58TLb{(XGm`+mF*1a}{Zuzz2DD=|Ta=si835CtgL_FmwUC4tO5__f!Yqo`LN{O_|$ zMn;il1+T2!Vjb<{@1wLc04`ZNweMt~Z??;Nwtfz@_7M*U)pfSbWS-)_{vx-<>TEF~|W()L3 z6B5fUq}WfoaNtuW?Z2Q{wKO=u$6ri$H{^Zz)h|*H6Wumy?pxXaY-}sQ2dMR@w(B10 zA2T!GE6uHqk+IM-%-fWyI2UHIQQmVZ%>~uf4`qH?w!>;<)X@6DcPry-rvp|$U;l{g zL;AL*v_lpPOw=l}i$C_)-0LzmQqWg{lJQ;6Bo6Q==C5i!P$7U`z16xXNes@cJj-f_ zI1EU?{B!O%R*pm7AXC0|u#RijJ|(r^U;Ui;gN*rLYV?v#V(LB0{mgby-B~S`xw->| zGcC&j&+w0MN~8M&{siC?QHhx!ggVFRPxdl0mM1w&dD-$HKaD`m#=9ZT>Iu_*H$Ebt zj?(nY;2|HUX83Etm^b*{SLK<4A%aaK1w(P4>uP9CtAs3qSa_6KZlU};I8gpdOO$`M z`xQLFUr38>>b;xlw?wYEtHT$Chrw6&Y_`cL3sly-ljo-C6`N8wr7y?%1kZAU{I-vz zqM1xz`&fM~6UCW!RNZnfme^&VVW63Cf+(L=&)|O2cm1aonBj;NKwpw}BXu&Y z&Y-x#tTlIxo-bQUN3EQlvP<@G$*1VX*L}^OuF{a;@TkRp-hZD3z_BNO)B=fdg_kva z0l+A)o@`<=4tmVPcym21s6oxdbxLr|@RN4}nfXAAM>L>VT4*@u&R@W~S}B}c9822m z`hv#^pk(p&d<6{>a`Gk1CVI8qbT67p@hAjDy$N^ljJyU*m$Tgry?PamzvMBdy;g9G zOYI|~_k#;MF<703w$drIiSH}D{N_EoBQbz|v*wWXbsFHP^&=4SG0OSnq&xT1=CdH* zuPHQv(mkHO5L<_^rbVxXqbuS6kG=PdYHC~izLg>(0tzAu0wN*;A}A09q^Ky;L3#&~ zUV=dA0Rg27NbkLu0MbGUgx-6v2}L>~)C7pY8@GF(b2j@v&v?GPAKrJ|W9S&-Si07l zYtCz4<#+ujluX8w2+`VA%{@2-m2?}+G<&@$L-{C&06+>O6rXtg_ejUg37;cE*>p{< zd`e(&4*fGhP>!8YlS@!H6Mk@@j;Z0NbM#p%X^&)$yHoQhU}=5X`T^Hd?oW4sE*CRN z9hG~#d1HX1V8Wlw;L)O&z3eknFj0c7K+$c+d~fI#{%ty$<`oQwk*gySr<0q-l=7Y> z`XGL~R%cW-YWa0ytMF#Q{32U?!S^d6`M>+`@UsFJ-$x= zz{&rlPt0twhRYNd*!9RyM?mg&3|IEope3EjsW`3UN|Ej8o*C;W_NLYH7y0`jIWv{G z;9C|=`#v@~&&E_P##|`hA769bQh6O4-IizYqUhM8+fy@wK#|(HIKhZgFQNS93=(2w z*}(veSM4D^T|{JbxvkBYFxQ{?E?d7w0y&8gT_dH$yr2kUgo8&+*uGAh19?W$6j~{QvhIkpice$Sd*6repYEUn!1}c zLdYjV;ZPQupA7>*^bqh-uWas+ZK*F4RdQX3noO-S0q=Z-co6j1p)ew_S^}y zS-S`9@_4-F&U$o4x?o;SpWQl;DJGU?fmwjRg!)LWUw(y8a{9^ep>m3a z86il2c2~15LTRb;;*p}d?NXPW`Ak0Rk26bRJY4;s3#G=Qy6f%hui-SQ-`B7UZeLk1P-i5q=(#=6X^;JQ;DBTZjH4#;RDnXXh zr<`^6Rzlm0a~LczdIyn5EY|BpUZ+e8Q93rW)U`p9|B*+<)|2!+)fdkscE4!&5=i}? zHuf6s)5b#_Ckr;FhI{hqSvH^C$K{?+@u(sJd!F1+ydMs9U5^*Jw6<{u^PqH-8Td;h zYE;@<0CqQ0_2zo72i}lG>St}fGhGE^w*~lxSsR50rciI&m#e}E|FI0i z@XL_C(W%mgkPxVUS=Z%|Oqr-gK7FI&<2oZ!dG;jB2qp1g^R%~#58|XLWd*l|=}lC< zJ<*xk@c`)iS4zBu0H`>zQmVq~6KU1!_09AaZn^YYL+v;!7O&7;o+h!G zq|ax4-M=n8PM_5s-F%RsTicQ+)9|g1fAkICc1}T!9!O35OglbsHu|mbdgwS3oi~;y zwlxL^zb`2ccSQo;HJ^4X9#nEC3D73&K85ov8Does8%PBgi{P6x)YrntlL34BhRf;u zsUe9)YS@HJqkXU6y+88}{S3cO?F_fF_zs=nQw|4D2XcYJONfm-%SmqXB%j zMh{hQfpA5Z&rpec(EV;La@!F{X5C3jHQ`qmLqt(tp7L-%gB>n&FN zI7=wLA2T`~T|fX35h_1CnS=>Jrf8$m=tvev8TJuyH|!xLO_iw%IkEI);IA(74-HYT&7h(hq$H4WNl| z?w?uJiOlM4$TBxlEfuD~!e#s(?a{%|x=b7q{q!zoIHc}v7ye)=gj_)uYPIt86MM7W z7eaKyQ|>U|E}Q;4r>~QEqs}z4sqT^1!K+jEVq700s4$X3l?L&5B>(Oqh^JQID=XUC zum}vT(j00hcX^{MUkDRNu{oW8kkDMrNYNe_9u4tp3*j@Cd6_BlK%@BQhvGo}o^h|Y z>S47Gcf>H7G$L_B&e_@TeX>m<7Bivl8SrS>_cv16nNlNS*JB88=ds!G9#Bf1jLt?r z`FQd~UQ*gA|B#j&fMyM^Ycp$94mFEq*QP3W2wtmNp83cy0qY`KAMA&3*xM?u12pYD zW3$tI%V%*A|K(fe9`f0i7 z?+pA#)8$n=LV$B=qig;k{IbzVVQw3LN>F#qX*}|l{3qr@L~gRGx-$2S{b_87d!>3U zmH`+iD)g39iluF%NSK7ZUNj0rSIm-fXQU4tR=i3fIS6dIMNZH67A&W`y_Z}Rh_>(^ z%~%c!Arw}<-5NtNf4l@!P6ht_z>1YuL2lIWCqMT*&6H1^EEXBX(T7%yym8mbe={3C zGNIp_B_jm1kWP7~o;}1lpf3|#n^7JyV_NUKzdm}{I(EbzYSy2}FQkO~;#)S;h2*Gw zxaheAifmsIJojosUU*~97W;wm`XBqJR|$c7|9Gj3c}=I?d;s<)XF*{AXqpRK7V!75 z<&(H2J{*KrK09IlqtrXVK>*^0Y~orSjU^PH8hg9snQJx3$cgcCbLb9@&_-2ul?{@f z4=lFu4(- zLSB7r_|W8NIg#znua&SmM*v1U55wl3Hl9WzogK=pLNV??)1=Q7zE~8kr!m*HuWf~4 z%{m|=o8$3y)aa!+y9e5L+6DhAR{yopi9h-k>h5mx0Dj*tp7mRPqNF|Fk7JYBM@fic zL1545kqM&D`mcZR*VvRt;RjQ@bC~=0o2skaRaH238gE`46vXzwUbeZW7%1o76FL{nrax@XUFab=Y!1HvLSVhuV*Ukt$gp`FLV2%vVR(j0RLF4f7&Rgd=Kqs+W<~j zOgs&O2$8h@s-?M7(yM@1l}AKQU^V-XG4$WYICv5 z<#R?JSO~Go(XGUipI_-yYWUdJ`b1a?jeo2U=`ONFn*_6Vs(hx2MV8N}u6KFfw|F@u zOCEw|?r)7aHt}_y zmYcSh5W@Ct8%vjwLUDYHG+Zv*j-Eg{S94>}tUhOnS7+VVX2&??b!!hT(XREP1@<}e zYht2P`RP!n<7wconnJKtLe|*^lW)AJYrN<>{b5^1yuGRFPR{HUW_g1{c=(4ejhK+K z{TplywiK_otEvlYSJkPKjyjMdPk5#;cAB;Z?eAT8jgn06*6js$E`FK}uWSKiiE#>Se)dPxo z&0yA6_7-HnLuvB(SSzV#m2Npb-63Zz#%k21-5*6_g~v;xRys_$IKyuKFt&)j?bLk7 zxz96=5Dho%8|?+I&$!QGPnauL@_!D?bKzQpg0nHn-kY~G*gW{&NFi@$(${E4@DEfA~vt}>q# zeB>6@_IGe(#oZpf(2-IOMAFq+u7^$QB=9heCF7y7zwf@OT)$AMcX(8a;g++^pQ--q zqff@EeCB-$@dW9>k33B+z@POu zC)(`4I6b(^JvI{A(y`o3)Z&I<9|+8te)ZKNaW|z$^<{I62y@X@xAi^LaZYehvmW67 zn%vS%!W?`nA)`whQ_>}OO>f&E|G4c)q1rmiMt0mjrIr}6s8VuQ9V|CNKNz}(6&wbd zOVHvT+g0kL#v11f4H;cxu@F|)eIpU%zsIRtysaw#Q@F&N6&j2_Eyl- zAy8(xH*pg=rNNPIwTM2M`e(8_9Op)qx;II0G=@N+K=i5ojtsWiwu%Tb^A(K#4v7a8 z^Bg8g#c9O}zpm@GnD6j>K6UagJ{o1~v3AXcp3B8JeOdnTP_B0K=lsXI$)bws#GcNB zOJC6g&$xPfMpG?)5^b6ci%G|FfPr_n>zj!XSk^;rKtY81SvPTSBH#0Lcrc}&+~B&! z8R``BKs0Ea2*n+jI*SyK{{0wOLs|G1lUm|(9gG( zw}->}B)4xq^Eto8ZCt@`p+!z?CCEdwQ*826^Y|nx>557c9QU|RKV22 zyz?VeIkPTXTs_vOnK>Eb?1Hx{vT^lv~~oUCv?hm6urtoFfd6v-yH7 ze9U-FLfKEKtUBsR_?HY}CLZp_k2l3k59s%vZ}d-uj%~5_j@Q5f>~s}@i5B$$UXS1- z*=me7#9EMA^#&nl9ox@EH)&i^MT`HLW*u#C5cdCss%&{uJsu|!`!}kB$lUu%nx`K7 z%{6rItKfo;7s^$$x$)*@7=3){DaLi9`xdb_|CwssGA#P~Zg&~8(~SgfVk$`QR3+FR zv7|LlX}t&{LImHiI_G%)s|@BA3%TXY#x-;d+Xt<}hy(1ZG*^fF7 zF4n}r2f8DMZdjr0;N?rM^Yg-lHcySUFxF$11$z6~LCf4Bri9`Vw6=8k2of~Ms%&xJ zTNNH+Fg{oysoGAl(eYh5ACLx2B;75>)ruZh=B?YOo_#Q9(*I$50eEr7kIr3{X>~>g@MVkq_@7a`<0%6xU|1F-W)lg7m*<| z$uT#W(}{IO9YrvWdwo)y(aDz0PhAo!~t6I;(I|e}|F~QIRY4r9wk*Hj3z} zs+y)h)=K7tG7b(#u<tYollt$3f^U1lUFi7P4ABKIBu_B|kFj!^YX@&b(0Y-TG`N z*Db}(0qX?ZXR;Y=n9k@IoynH->`^v9ac^;w870gxvDkDn=U|LV%N}F>PJCVI8F4jt_B4z4@&ST7XG63_ZBJIEWV@Qg2*7{xo6N2A$-F3=sXe zIKPpX6#vuNqamtK7rJ6zm7niWpr@y^N@pgZL%j)gn`1Z@~}t?^4qA9nq;U`VTfauJ4o^NgBhrrv&MFpT9$@P`Lmv0 z9h;~2=9+6LHEoZH8U8Lt)3c!_%PH5Uo|FnPc!f&{Xj#x^n`tL1<|E}WWL#&`8v5z5 z%sQyz$1v)J5TGKF$wjYIKvQfpJMztU_N*P_Z`uTuPTi`5i63icn)mUvyrQid-4|qHjLSFRoK~*bAG||edU6ssAl5|1Tj}-vANG#^m%U^5 zSXrw%AV80p$_hqYkG6ZD@0tEZc_r`Zjmqx)?Jm@ERy=1Sx10l+7$;JoqA-QBk`Y$4 zXzr45pcu~oGq|wl3(Ew=GsFOouEdVn+jwFB-~>P=+?Uq393vl+mJ&=m9q=h*mY6Lk zX=4Ve%XngJTih2K{Q=jQAN~g$F_w7(ekjAoWdcl zw5{C~%RhLUy->adF3ADJJufWr-s^@s!}`m%(ZQsQZz$FKGC28KZt6*H8#j+?Y6${M zH7}yiND+Q#bd~2_YkyX}|E>`qOd%Zo*1L6%lIfNWM@#;D)4L4mkL`_OPNH^t+z+gE zI$YJ@o=@~^`}y<~;e*PP8vwId&{7fUNKCx=EX2wmwRJI03+f)obpgV6aj%KzV%g#( zI9N!HW7;*)jE(0ig|UTo3G%9P-_i?9L0T-$1PHr7QgYpg4v0NH;EiGso~}aI%&&i_ zch|5!+hrbTb?f;&xwi=#Bup7}kvr@+{@L=9M#MrtiK&y8u-?=jXJ?Sd-cN-oTew1f z^5X9}j>um)4#y$yvB7wMIol7B=n zR7C}%o|nC!-f5CutnVuBj1_yEeqW@hxh*LLIk z++~91Ud8!BOE9W9)UsPfMg`Vg_v3ADz4eN#oYLS%T;*t}YV9t64$uDjRt>;4UTA>c z3Y1zPs+A=O-ye;jI9+sh)HnaCA1gGB^F~s4#x?Lfi_EJKf$mgA-T96fE=Qeqd0GZv z(qDvkLwerMJxesKBu(@*)_dey>#16|7r&h%(@v%+2gVv_*W+x?w!MKO8o9x|j|{7; zp%XLo^HZyHD8Qa9vayvT_S!ZYK7s{z>#Q%=+u*`8|*jKc^gd zq)?vz^FFPL{kLw}_)?h8T3C%&Y(WGIy863R)oRp9&Z-1{S}ZoaVC@y)Zb>xL=GU}e zr#@LKj>&AJDe)2*MJLcod$Wp53*1t z#Y{7g(c%kqNfepw5@5O>+O}Hs!e<0MEz&DPv^X-_3hCxQ9nGqr#&bA*hofq&K558V#06R2s~>tg$Bjj7HWDq z`P)5~Tb=rTeAIOb!BUZGQ2&k!G7tQbVO`rWeN-LnK4PN|nD4#_oz`B6&Fj?Nk3C=w z-wJl+)>9naxe^s^t=_q!R44`PZ4mCTFvYT2oesWzwK69Xt2Gl>P3HhP3w*1tBsm40 z2KC29&1IcF_OZdYFlNo4Yf2Lr{?)U?Mm<{Zw|13c_GOPj|LWy<7E-WV@OU^(mi1sK zru_1l2kN6jMHj;Jm5e$O_mhQNk{y?tQ#NmSVK473HS^BH-7jY?VKhk-$ppF^R5$x9 zo4}8gR$c}3{;a-r83y)&xn|ov=pXtfiiz5P(T=W5-SwQ!g}uYcyztQjioBS!9?eDC z;LRav0g@D^oBj1XG>nqQFH&7ObvK4W-e(SEPkcm@7GDR15g`tO@qW(hHL-gA076`W z+x;U%wT~769A+83-0+Qm!kI;63&O{(m1yKS_^ zL_A&+v*_;rxx}lQ{PX3C#q;&43LCrU$0j^;1)12vA7(cA>X!!t_sCGWy2KoA||guG-8TGLa3Q3t~uAv;eV&vUjBQOdco`F zF97g~G~JcQb5|)ik(!xb3MenZTkYC*7R0HKmlZs8NFI$#l*aMBhrJ1*%bT{L&#VXA zP%wT{N2$GOE4$*3)g9VYFaIHle~>BM&^?G4>#Tt=-F%;Vd(+r;%Bzkn6xq#J)A$L{ zzc)efmpbf-9>g>b>()sR}dT{;@xC?ARFk-)4h$FwEo~1ZA|OiF~_jY zszrO6^^h?kf%_iW^-efja@fJm0~Gze3u1Np_J~;eBVPQA$r{oVA&`kGouyK))$y1MKAYoQs`dWw4RpBYHwWEW5F#vfksh|Y?y{UcTlc8)>LzHQ$USThYG{r zmS|Ul1;efD?|dKEpmeBy$_dN*y0n}XMfj+@*AkD-m%mo>#BBE8adWFEfJ^3Z2&VZN z*-ApW)G#^I4DGs<_?Iaue>10Bn24j|0=t!)$_1(sc?6kOryE8z)V}aWp4&4}s`%Mh z*QZlUhxZ7JwKELIj0a4ztlIW%=X21^lJTmQN0q9THuENgl3gvDbY?ec+potc znw&Zqq)X7{@Wf^}KYkd77X!^-Pe0usgFAWe6ZC0udFVkp+ly90CluX;G zIVaHi6$x-tRH$|NZ+3fWXw7p8o`Ssa0c+5XR%NmAN;SV0J;*Yeswarb@(fT^^Cwai z5`lg=He5NUay;EmAGL$?=5ZQJd9dyHv1Zo`+S4sHj>n3$&Q9e$HByP)1Zuvvdpty) z&c=URJqu?WqP3XPHl#d1aVvjKTw$F2Xqi!zifVqezfBYX0)SS7L0Q7I;e2tu$;XVTz(0AT~zXw!j2RRje4cP0!WP3A>^k#9qk1v|76%QZGT|7@?5jKU5z8@_TsBk!FKtVgO{hDGHWlbNhP=!WI}(U7+x(a|nHGCUjugP^tvwL9ya%8UzPic8FG8()HhM*86s1JBefyI}zw zqRTJWsY=K0APU#S$gdU=q8ZEy(C*rJ6;EfMYM|=em-U#+8KP~>=-e?rT`dQmId~mY zdFjogp&HY+g4&fTk1~hsF+Xir8yg#_7qt5dI{r$Tg(#=ND2%+L2diyT58*HCJpz!! z_*G=aXgTs~ty2Tb?<=$w12*cX7gZ{XCG0(}uTP>-(8FY-EPUf6*tzzp2lSb&dftQW zzVE~cPhnW=ObqRE{qgXx)_*qDam}LB>2_9=FV0nPsc!NYfDFoHAHF-wCED=*xYRnn z9`NZfc>V-?Wm#lXuWQ2kRm7VO~K}ci^}^=p8YEDPpRLtdp>6iHhRA@JuywuRb9K( ztGRi#ctgjHBf}tgOQsyIGsyJ;QdQ zM1fHsX{;#fcA>ME5ZO0+$>@7yE@Rfl(wugq>ZUYnMOeAChuK1vU|GvfNl@->$ND+G zfmTS5+#H<4R&Vhqtg5$m8vb-UnCpYThyg76L%(|X(%zQ#?bFYiw;5mDUhHm-f}2{1lo; z@fOOZ(cJP9qCV`AhIxG1se zt2XKnYz2_)`0lYBqdDP-{4Vb zyk&9CAK($y-sJXK`MWu5p{pjv>k%Ah_FwP^m_9_rQl84E+XUM8g#qy$Sf_D+6w>~q za+wPL1>}Xgtn*~ZKIN~DAsYD+vN@k$QD&R2hoCuKH?OAO|5kC?`cT_SJ+iL)t&9xC zR0#1F--&5G8V z*A=i;p33Zq1ek9%Ckp3g4by%Bds&o)-GhBx7pu=9skhYs&M*(Dh>3#NYPk4S3M}1R zTYp5;n_$IhNmX+(RMeUOb%8bW_q`C#+s-Sd@v3Xf#3_SkRU$GQ#E9jJ0kV}(i z7iA(CgYexWIyzs^`Obe9RFkYPpFA+(L=QfB%vtC2Hr9?Aegq5~h1r-fALK2?JN73< zQ{5vseR+b(-9(vIIG_-UwEW3IOm%OM_Sy@exTcP_4J-O&?sEHs=XG~5uj4^Z#FuL8 z|9~`w3@ppngl~64*Xu7vdnGu=#5*=e(+Gfu#uH+cj%ll0%YWgl-m_+31C!~{TKO&3 zBdW%=OVwPhdR@!--`G5HfGpwEbRAPO7{oZI5o{dT1Av<{^6ctxVj6_APwR zoJ(V7)>Z$LawG2WQg$0Jr(p|o;TnjTL05^+e1mXFk4$D-=`^n&_u^CKqflcG=I{Yr z0-2C!p5FqOp=YKMS$5~gznfLOmWeig=~uL_73&#fCU^9XtY)4rr<{u49gE`yhx$Kyf%+!3Z{+&Zu z>JGG^c2>B`=sb>i_Ks}#=>cVZwGBQ`tfUOms6}=u4~8sC_f8k?-?tQ68I-5ahg;p& zG0?S!#(d3=k2+n8jyl!bBN#TXq>aU>s3`@!(W?LcP+M4821%i-UWZ)OblqoLJYZ0+ zyg#uw61^sSJ`8K2QV78Y`BF7Kxl{+%-{!!83WMOVWX$j)`%-d96MN7J?g7r_aHazA@PTk#ZpibV%)v#_xU~-*p%Jk6 ziE8WxS8V-2qmi;KUU4PE(C1Pf(EZi7^}!?M9F?QEwVXoZ;{Ya}cNucqv$YC|7JUg* zRXe(JOeuK_p>Ci#ja98#IhSaRoArMP5`C+%p*S@fzZAuP6y&R+$kWg3`jrZ}VN`!1 zH#)~s0d$Z!8U~Nt2(85c)`Eg7-Q(+bBBEx5mB7UtW6!?stthOw#GOnj*THu*WUO2M z6e~Iz{Z+}!&fX8eYZcWIoK%cd2}=uif|o7d;+xv_&R#G6FKG4uGH7Kjz^!k+tZa8) zx1UW4URL>J3%{_Jkn`dZ2d_G*Rk2Zo1TDIXGc+1TP8Xlc)p3U{y3|H^DUq5Mkl zhl}CGdGA}|HZlre5_zo0^xzPqr+CC99jRWq9Qf7e%{i*{ni)AheKe++P5IkIO=;W} zwJB|*xKs2w!A9vP5~NJa%ZSEzE(`ZtaAzkJev z%#Q!>O$@J)2Lt+K9u+D9v#kBbc^j%j@H&8UD^6(2e)svg90UGGajRcFvSaQJhl4GY ztL&qnJ$v>{`+VX4oWF!p(l{nGa=mm<2n&CA79CTTjM@-y)w8I-Dnc{s3gscAZ>~zz zf~hWr{N3gHB;Ni@k;&PfE<<5Ne{y5YY=S(DvR~U?%@gudmgE#v7AQb{&z5nH##sG?w;c?&?~L}s zdIHs{FHn>deZmt=>g^Rvt)2i@W{soS`vQ+`Snx&y;0+mDWWQ>a9kV=QCBXn zocbSx+OC;#;xDfZM?0Jd5jHGeyEBzsyh$URV9$xYI}k|F*YB32GY+l?+d8#eUk`L$DK~@zNk}R*5xyeIb%e zv7-Y8(>oTc)e%mXBarCu2ctAyuKY>i4}$G`F8#;c{o`Z*#Y5yenO<=IflqRAkTU9E z>67waE66Irw=T*iFKPi?vK>k8n9zDnT(|W=2piAM{w3rSuy%P#jEbMxJo{2R_S?#W z6u3l8VJW!3{U7(aTwd`DwCxwqS%X(!Om&$w4#WQj3aezXTbF(tdf<2i^ZspWbqe;D z>*wfO(tcNA+62Dmy_0L=bJF1|8r2u$9EaO@>I!%F`I@u0tX*V@I-SES z@$_AowFN7HtRHIp43 zg)2K~rzB^;sr3{U;Wt$U73$O?-I|{fbK6r(vm3vue0O}5+$*rvu(PkSzA2k^pHc~} zXA;sAE3!;yuZp^(8YifA_P(AXk#zLcN%cje{T5HKxD@h93i}3c;@L~jqdmP78x+T| zyeAE;;te4eXw|4Vv(r|t%BVCP9+B%+=b9%Ya8~BVtv67u%%*zU34n;y40_&cQL}rA zcRQ<;5J0-ePg8;zrH=L9hx!sOL-E}Mrx78p#+$kxJ;u7sZOrhGMH;n?-Y&s+1 zLb4Seyq4)>!Y>g!%Qdfq$44Wh%v}36LK?{vESEndddkDv0hUuRT88l>ik8siV$+n^ z)x!2Iy9($!HRKGqSH2Y6-FeOLY4orD(MNl_)tV72u-wSoM_sYc-pvx~g;)UB$!K!2 z&4W%-jkr(Z_@x=5hhfbs{LgW7}HWbwM zhu9FG`y};3SIJ*uLz~90!VxO?y4C4MynyKY=Dd+GX+CJP#R2`%4?)X>Md>5vSZq;t#52~Lut+W0lHWM2N2axk1bVPNkGwW|=pTpQ<4`nv4ZFRF1* z$pRA&jhY53LOIV+m(`v?otZ?U>TG;`X9svbggVlOjF;+?;|}1Grj{q^PdwniHF8vL z+iK$Zumn}?sme}=a8P8$RCOSD;_FLev1fd9Teh_(R>dMk#tAI8`9Kca=lnGE`w8&u zhhPUH{kNYFpO5k*mC4kiM~d!J3hWxJ7_n^2kIZzwrUO|m|2NFkrtUG>3lYBfT0wkR9wlvcd9NQ~^j)>!1mlXEzj z^pS|=yYhS9#!J+1Y~D>#+I(b?x=+HA6#8~*f$s0)ix2kkjS#i`k!#JDC1{-$I427I zs7~hdWyRxw1VBlth~IH|9m1&&j@_^rjiq9#c_6%Wb^-saF-Mk@Er>0J1hRQeN42Ew~rSNk$ z<`5MU2`sub-#Y9{9yxU`-=keT*sb?HsX~t{Z=w${<^c|nER~igG@ccm+K-$ z*k|enwR&T=CBy`1-|RwoUG`>p@wQBiLBTSdV>ogA>C027#jkcV87~RTvPx@YqSH>4 z>y@2Xa|{H2%IAEvCwN&qhKS*z>m)RI5f43XE1eJeaws}ktcu#;rQrSX&D<~hY78UC z#z)za{`}8S#pXeFvS46${*EigwlOmU7KpCzHmz{l+i(S;)MPGXc$@C`kBSkUS3awDGTon*$CZpy1 z(_(Bfp_Y@GaZ}dTorQ|rt|H1iV@BTb*7<*F0hmm?ZBbjhKpIAfvBd~Rz~Hm2V0AH> z-i@j0dxfK0wE(L*YXVFcOUhbDC%1*AyAwP+XQ6&p5)8NYwo(pZ9Z0M6M4o-+;Y6f- zFLW*zn|BL=uof3MOP=Io^j`6!;Mwd4$!SHLUz@>2bhz4g^dGCWuoKVPC;pQS8?P%4 z+5d`@)BM)P&9_c+@FyOYizLT&51QsijT&l~>GIsS{Q^Z50^2i&B|}$NJ0tMAymGU( zPNSe%w>+m5?H4Tz6^{vBEfeGE0AAs>QdBSuLZ4nh!JW zsc4BY?aaPAXvmGD!|ASYpyrG<-J27vq{}`C%9O>1KXh}nQtV9QKR7#)8p&Uv?waGc9rSPsN|RUy>5tOj9!^+L%a#4 zMu8(I%i?5eqn%h8!O@pbG#zOcN;n~hO9i7-@71hmNwmLPdn2QYs}KdIi|sqOe>7Nk0zN&cg&6TK=CkW&tpy1jN%gW6Xy=*m zyVMx-SEDnr6Y|O{(;i7@*=Z)D&S}P@&a-j(*ggK0qXF*becd%aOS8$0r+e>*vN#_t z0-w<|0wt|&?L)D#n%70SI|6O@imwLtz@J{edOVF+Qz7#go37N55uIg}XdJQg_~F8e z{BW|{969t5ki}Pj)lOz^-lm!(o>zXHpAl>3$IecvbLO$FBtE(`hY%nb^_Pe+^7ouZg6~+2k`f$RE|Bv z&bka1TIthR8N202i^gZXxTtUUdA%8M%kgiU3x2Qhzm9hSZpHbBh+Q?E1OGt9b!p+w z%CK8IN~+l7vpo(X4tx_9$2I1M->&ptHs7ayhj=BF}#4!pvr_3Uz*dC7}M7n`#rn4^e3WFH=bA9VI?ZuBH~-j9$< zKJw9YLxI4>b*3F3&;>7ODQ#Ir^UiYzbnWnti=fBsm>YJ0U~I_}A(0&;;8t1eN# zut};HbEmbIY{Ma~Do}SD6EQShNAMB6Deu&hG)cIqmt&Qw#gFUDMhpIhpnqzy*NS+3#xj}uTn5yhwAj~`q% zMZ9qvAwyKOQ!X^*(S6KQg*O$|+^jp^ea9PBQ4hKxh~zCU-WTbqb4rK~Ux zAV-_Fu)tq9kK>%iDQOjP&X(O#^^c?3zHIr?4)VU9gXg4_+0Ej<3m7YRtM4ah*-e;@mV{f}M6?Rj(sx7}w0f0eC zQ+lhGNQ4*BU2P_2_lv;dTR{S{_X0O+zcxk=mJN&_Y%f~6!`!Y1ii{~;t*jZtZ!TsI74ELlR^3s_G9t>lYv>kQCBav z-kbl^@fc$Gv%F3g+q6Wf2gnej0?aghTbwP4reiqe(Q80XD(JPFS_G*A4YP5k zU72*nHV_eV>I!{IvWKDb%tp@<{E!{6GH_nIf#B?VIWO>rUI|dIz*jKG<;Y3jVv{9w zVG%PRp@=_m>=sw@gO2cCfeLRYXLOXtf$dj|o5sLS-wYbWxS-}R2{Dl74I}=*f^)w< zU%($z$XxOkV&w07aUjP2^uS+jg1BMxM2`s%YQ4RylMTM6UlPYap2D@cB>-Ben4%P(I z;A({vZDzzkPSEpELPav%yBf@0#)R@~Q3#HgVtxi>2vEW;QI3RL9L*l|%ZA0(pCa_5 zGd7uUO81n8jAOd%`Uc*4E#H9krYCWckGQ58TtTSe7&%U7Z*!d4eCO3DDpWfRB+r0iE-&n>XfO&1>8 z4Z2pqa{>BJpUs&Gd5>PEKG$Zdokcf6GOL%Zusjcr@Zomu{?QsC?CEPqEoF2UBSUM8 zkr0%YhGuMY26@cBk>k&qv!+5>@fEiH(44N!?? zi@I!l+SiIt@-jAuAEG=H=-P&ygRa3CBCNz{Zc7dGj2zuR$77sv*n@Q(AxJ-UvD`vEqDkK5#GZsO4dnS z0IrA@$X0{PqN>$~yw;3b7U{ovxWRoXtS2IB83`FvzWDp@)ST4t*CTMdC2L*aSk%=1 zyB0gi5olY1dn3p7ewLX)D9~f-*s?XyV9S%QQqV~^A;;;tgq4G-`uZFsKQ$bPSC&7HcWlr_xKFRxfj$*M#Wq-&~3PM(MvwD z(!giInr{kVDD1VFnfGiC@;+#$d}t$8mv}uL4wP#s=_t^3>62*11%;g+Ij*FwI9)+p za*uzt{aCzBS1GXG`XS<)U(`*&%hWkYL)-oHR{op#TdLGKhVbs2fj%~_joQ}3%wOw; zA0bBe6xWE=C3dd_Y^zy`uRUq1Wugji2V8Exx2ktckbsz3%Ocsy>|=lVQpHJCFe|rE z$jf9k!_Vq@wH_eZ!O{ISRgswkXv8sbs2x{pPc=KuFi(CuV-hy~=Z01f*zECdUw>!n zw~U?-nCwVlEZ|T)DssZnL!Mc)a_Ec(G``sHA=j`A<)uO>HC!iW3SFutzfw>df9k3Z zGMzUVIWYIX0e7#BB)4?B&6)!Df69H}JFD`EO|^;Lc4xpO(<62<%cR*HKN^YgdfSdx z@-<2THdUcf6>zu@p30dU3Y{I#Ji$?zg*Gz9=-U+1!h$%zO8ptX8wvbp!f-2v!7W}K~LUTDVh{mDgG#A zYt**%yw@69mw=bs()%%Z&)GDO7;OZ6EHTA-EGG=Q$tgGB=hK*($aQEOdHIB{v9{(u zWnNIwo!4}FM%zu=YmYtAH9a*#RH&a{C4|xT(aQClL?HD_?CSr+-dh00)otCPAvgqg z*Wd(q4Vs|A-Q67;X$bBRf`xPJ_FQw0Ip&ya?S%c%4X@Qe-n^7K8A^{owC-ja!w%q~{sinVmb^fN(k%|Hnwriy#JFgcmWkw~`5CsD zzen%q@GC-2Xb6P={iHeyQOJ?G2u#ZR_{I~`fY=m9BDNTfc}0YVGkB2Cso24o*Z~_H z^0-AfUJYf!nATQPj^^zu73&MSBM}428Z54{VeW+1N6sYNPj=t<;O5HnOe&~8&0m}v zo{SL#`*>A58pY0E>G5F5aR`X%~~QHF>O%^yyrRyY&w{c7MU=l?P~E$vFl%r1YjIZyDXhV7W;j z`885;?VBy)l(v-xFaX3^D*1bK-7Fb#eJpA8rHuxb7};LQFn>zFCr7r*)mc)xOd*Ut zkmkTBJfB9_Nm-v!294XeHuQ#IFtrQ#I6|q*zq>Xu_}I5A=nywC(6BSpQB-g+@fjui zmL#X(nhtIErPtV9ZORNA$17#N(Z=d2&@Kb}?BvbAs(wnkFRaFp| z9q;*#R9?Xec$}+7WnCU9-ItcUcq%!3PbT@ILowuqghky0DBJV{v%D!akm@YX#jo00 z&J8~KRp!B&@@GMBB((2aT%&_dq&k@`ZnnJRZkB?)1>##L}cr$9``GBgm*q*&?>J1)is)$+rY;`2^~yNs9z@ILI`x ztP@p2wE!%9Uactp*i4;R8omu@dkwH7o-U9u21e&$H&st%R!O~Lg3+xQIzn>OsNdW;7bsvH)A37~b+ZWo|xbhJ^BzKu#z93i_HgpI_ z0Z~n<(DSlNGsCD+6LQ0glXdWnH#z_|*&cQ%2Va^BDDQLvRu5AKgHoOg;^XBKrrE^g zArcKNkG!7VRxg#CL_ujO6y;7)oqb=RxF1t8n}?6M-0Eqy-)Pr|PLxE0+g!uVqAqEc z!{@zH;KER8@m=gI&e+`@azU#PR|k%9+Y~5u%vAU{!0`;SivT3E9FlJyy3EIGX12TB zp)KEmA7{Js=RM!ErmUQ|c08!E(|o)WRK5HQb&BPwfjHNvtx_Hx1$~LfmU7-(mJ0>8 zfxU?aGgwaFcDc#5(cirR$Q)=%HIktcqdy(lM*G#dAWjmoO|L#gN&Fxp{32jeu(I)S z;$+atDQw5Ql16#a2;(%_sdXAIuU7Zq-FV4dR)Nl`BlR-aYIg!%VDyIu zjD~H2U^7+&K|{SPcUiM6$jMAaA51D`>r-TcxfP?(18H`n$Odh{Q>$2TJauG4@?a6` zZ&S1I5k_d^#v-^{ifJ{!`kEuTTfS$?=YCI*1NIC*p4O^{#8(?TqyZn&)LO9@?0Mx~ z?-I9LYooeN?&wQAcYS?I7)XN~(6&ty)}cP=aif1ZaD!F?<;KCo^9{hmCo_CVy!sH# zCr!ck3Ts13g7N^qsJ$MwsEt8#ZGjJe3tva^N=T-CAvo;+IaQ13JdYIxJZUc8My~A; z>60x(W;L|xi8rjY35cgE6q_j^wMZCQKmZ<~mhSCLA1Z0G4(d^3~AK#9Y(EWGzyxE^eD2Ojcq}AEzBj z&i;yci#%DcBP-D9HPSmuDm2=l_YhUo#uu_aLF8C@E$g477>h|TbDcD zY22M0Y&GQhu5@N2AOFxC>d9Vz-Ks3u7b%|dJXGPgG-dSi=Z$#V3={ly=47?=bD)El z9(R3|>d2`#5ra&mlFtrS!hJDu&0$&3sQ!kN&cPwR*Td9arL*g4AQOmVu4vE#?hos- z+7!Zl>74F4+Wrk!R`L8{Oyx$tjh6YU!4+Ma3>UkI+heJVSPWYK4roflAP7*sI^{Fc z-$U0UQm^)hPOz4Ezm4X6XwwZ+{{Cg^(ea;mWyRQW@;417`V8?!q;AL$ zww%$rV!X8lUnsLCq&T%kiuWy5^uNUwC`?Oz$i=56^LSH1{razeCOQK6V~`WHG5TB; zT1WYA7%M^W!>O6-m(p)>CfxvV+Tm*gJb{;gefnR2`-}d}h~9j%{ha~$*F#*%Eq^A; zC_(}>|N7Ja6!%wK~C_k#Y#h}%bM5bN}_};8-JRYtY?ox z^~{xlO|dR_akWmbBprA#^8TB`-*nc z6hFs%hJhb@pp_cdEHn2RMPRyTEs@ZSbmEWK*-i<8x|%;0wA&uGO*SGVTi)HJ` zxi-3`s?i(OI(u_XJgu1wLLjCkxh{?1=&s<&Np60u*;zVz@Q6%erdvc~O1q^+t zKyJL)i5V7A)r6yy^1GbS{eJVnEvc~ZMrvg7{mZL!7sY9J?76qGtM3Iu=`k%mVH!=1 zH=<4=yca`aUlMxBBS?#n$j=8V%`ggQSP#V2at9~TFoX9t!hWC0c{+&4vvXZb1J3ie zH^J%Tzsz2>*@z2@{Tv26kx$WBC#G4%s2zC4ff={bBbJtv-yHQ4?S*S6X1jMG!m{0q zK<`JnU^xGn)V>T3(l5F>b|{x*N-5|M<(($=7Qm zLT;qgltSm8^B%j|U$eP_j|gKx6bz2?15qdHk2w}{IjUr&Q zN&PRa`ZAKgMjZP(ND?DGEuDr8VElnvdWKky`ZM76^4H#LT{8oqsYqAepD*A%P93*T zf9-XYyA{F0xZ8NWGhK?zf1e38b;bSp>Gs8dtnfFo8SEQ!;$GuRzn23vKHRfoP)3(n znu%$l)((uLCNIoK@B?4DH7R%%&5$6vSgg_N3B0*OVQE5H%I-CE<{Z`*2>TP<6!MzW!Jv!M1s)CD~k(&1-@xW6fJh-iuG?#{( zlO~$IsT(t_Jt*xX>p`y){%8(-2Y(~Hb(<^Hwql0Z+}hQNOt<+JB3hwQTq^#|llE+z z2ku7__41gWk?b;e^S&k&TC@io9A_sY{RU^q2E4vOi5cEtj{Er+-|yd&Y4{n{s?aT_ zZJv&kx&vuwUPSi1-#4|d94mf^IKW#4)D12Ur*}LZ^|upEZAO3^;_DQfcfwu3Ai=C!=xS_0i zUgop36{n#V`QpkBz)j-7ht=oFMAuW4@i z$zpb`t=Ye>Smdr?%GcgxwLVnVDSuG&6iA|>HTi&WNNRBDP+>B$0oWwU0TIm*<9vxt zHOXly^O(vSntewQNJ}fxNK{!*dW0nR2fG(_gur0bS5LJQ-c?A;Ak9iPqOpN6OXRPI zi2`ii3bnm&5ilK)xyNK%oD=oHpBVZO1@8jZ2^` zIg(5KDchbGOLkE^c`+)saeEma$}n$bkI8O{+>6G6AJu4c?ikawZDy~JTi?Qfn<$r< zWnE7{iRgWsyfbM=YKnPt7CX~pBp=<>D6qMqdq7#;MlIIV1jRxRyraGH3qYlM#1blv zIADKVM{&}$qA2kZJJ5OaI3ldyW9mD<=ao|TjpGmQf3z7AO?X(qwF_wqeKoaKxzL)6 zVi@!GYDksa$Guiqp#D*96W*lePmw!iJq0#xIKi?9!u%fGxcAM74N1W^@>fawyS!F} zr)$TvO~`SzTbaFtQfUGFjI%a266zclYTmBMG$KYc@A-Asyk#j_*J98<_*9J>cM0*| zy#(!o45T!Zi@VJ`zm&@*w(#I-NnbKn5sp)?52Lp)$g0-7mefmnC_q>SUsC|~wNF1# zP+rJj6h@*%?od^rMDlS!LrQaL%B>6C1ARvKnC7@#Pj>WMC9)US@9lTwVNc(Y%gmK9 z9BQ6b6i105e}Sb32)sT1@>@6}SN%zzCnh3YIPC@L76*6;s<+gjw{&^WT%4k-efgjj zlwh=^C%KP>I{1;Y#LKs3p}0w!NqKvuLk}*AHoXM0AM(s6jBA~dxhSQFgRj!f+J(IP zL@m;NQYkESJRP=lstpdv)0-_jmwUKm=LrO7agMSgdK~cjpTZ7Ewq0+&Tl)VU#~OFG zBOY{=uB~tf2nD~APL#(Nq-KOjc zig-gJRPx_>=b9{umnnSl&eQ-4BlNNfHofYmW)MKCLs1a>+6i9B92#zM=(Xc9*cZln z*S-+KBJ4@#089%07;=FCPI-SPCEs12cA+%CRm&8!_A;DH_S5nwNhYNT5A3Ytz7RN& zAW{yTVt3$%y|f~<6Qug+U6}e4y!`tQ0tzHph?{&7^GkpWsKX&Uf-OeEz{`peEm=+u zowRsyU+XQ`*>lmqQ<81gnZ5{MS}7fHC6S=rHtrYi)a!LaJlWKL)w<|C+2AHE)p4eb zkuEeJE-UZ1&lfs6dpqpD2!^ohTdoCT^A#RTRDE;K9eQ$c5$NhHmRety!@o*b;^d~- z7Q#fqtg|c|M7_*#;3234@IBpnzSu8pe(I9R5iQ|tWh=}cI!Xz@=i3)q?&onz!FqedsNtW!or>WKo z#R~JQ<)C6(=-tW7cMe7Ganc`3w?CVk>mrncZoqu-$2r2jY^F1LD)+vLZ*}6nqnct1)u~Ml-X> z5tfCcM-2OxD_zCBMPb0mr{snu$?#BK3-~T<{BQ&l8pZ`O&9%oBSwKSdA=!@zfUCh~ zG!KG5A=k{87!cI=Q9Xw%R+1JFsrT)M<9gczHCelRKU8nD)CMnzo>>k%U)CTsBG-XX zlDwDF!i5`-j_B@)HA$Fv#O9of6{EOzSd2wdq(CUFmxkF@CzJE@nFippF5Tr#bSc<2 z|FK12oCnt^$XP|Pxa4-EqX!2|P3b&w9p^CxuiVk?Ne~GR3K(<@+uUNzw9Fb#S4L*? zA}=aExV7x=db}au`b$0gSEL8ui-52+SaNsjaQ^tac#ay3=wAsN4DSlFNl})R-`q`$&01t4Llp-x%=WLO<#;^qb%;lbgkcGgn zr*kBvO^Rw-NQOF@E*#}|f5yHV@k4FOkxUoLm(!Bhiyp?|?u0po6D$d_A8k6QxvpcS zxvqBvmkX@Q-b1jT?<t9~g)z{&{IyeLY(tmUKnYmaHOB~lIsEHbpJH~~YdRfUZQRX=lX5o>YWl>ig zMtx4iFyE!azg$`8`j>8w;Zt?HrHZ^?um!{u!B775M8x36+63B%H!8=M(ApJ6VYD8P zFE(jD_CSLS8sAsZ4k#%%k^~!Qo$qs77xBS5#9LbA7;({z6z$k9hXR~N2D&nf7hjf0 zDd`+86f9O@BI>UnjdM!2FJPl6{)fg1@-hekg4-x6-%*IjK@tWgy8U2_%vx%+cs%b~ znz6|GR>Wo2FmxWw?`{u4hCy}qsL{>!kid><=%V59mzJcuZXthe1N{K+-R1UB-^aVr zZOH6Eo4$tFW0)^wCM!(8|G}Bl|8(Zo4Pt-_h%=ANe9;#YQ9ck7p_k|)6dC}52NyPG z>HH)@F3?Gf6N+)W#j8RF+$M6Wwmp`*2DG>;$004sO!8Z!;}T9M!4j4Kq4#i&=hcWw zBvN@-BCtjg7*GdA45@;@OOgDIOB8($MFmMx4e91SNIy@4bs)d@*ZrYLP-Z=BlWi|G&)X#WykoCUo!rrNR>y#+`HT_4&{haq zF)z6bDQ>w>$;Avkfzy(|bP);Bn1}4874FGOr#F#wXYAcZJUFXw6CIIs z1*-`P$+iH6bB>=NW|5zV*G!QXZ=V1;vkvW9v2cHTKua1*PtLGRt2Y{rM8m^UseM7A zeX#T&04};9#DW8RTkS3ma#m4ZNM8~);NOeCq)}8_hRd$0D{!=!pz225q|YUZ2-}yg zGd#tDYn|lZ$0oY`(PMIBZ(-5{rsvc7fIig?tONz{SXZbq=^!y_*VYTTe{H0ahk4Y@ z{f3s>%fTKC-1}%Qy*38gQEtRbG>1)DsYJm4ADKfBA1NO)``8uyk+CphCMCe(a}KUP zFaq7fqgWQDW!Ej-IL38*f$_t|xVXNgj|c3Nax}OOQhNN}aSE$4rUJ4rpqHMX$NqfI zdq^k9*YK>fu?hL6diluukEzS(PkST0<(>wO1k_#Y69MEkl7CRRImJ;3Qh^=3Hx=gI zu`N{i0P|+^n;9hs|xZjD6GcH<{QWJK)cv&3)=fWZ+v4DJ}KNtQV3?cWKV*@ zXy#B2xa!W)$<^pmZ2zu{(j zGsrb->A*X#KP+YIpa%bK_sbivE;(wlSC8urgnmvKeFic;rzE%0MACxCoVaq~fdes% zpiE(;7>z86@mD38kANln6h5Pr;(R3&6{#GVM=R1NroF2kc?MzZ{t_O1 zFu=lYONvO;&lwc*FrpUZkq+{>UVUEjDf76ul{#+1bD1(f(PgYWSWRgzpN~l5LO@FC zM2U1<_B{K_j;-9pT=%PUrkho<$%LBep9&~2;gE$*?(g8Tbo&wj-8e)It9v0Fe(Kvp zJ)o0acvdqui8@>BLiaGJPke7fU|qf!kRh=WfgwT?Fnn0esPu~x15;RgcFE1Ho|1OM zC8NlH7V<*h^b?7wsu3;sg~qrb6CW$Cl9Kaq-!5J~M1NXAKQS;nS-1QiA_Kyu7kTyE zO%u=cPRZf?cFgTsiRFZvm$`M(Mey2r|3K?=V0cX_n)15akJi=9A)L&gea z%Dl)SLfgKpxAzz0Nw?{*0KBS zhaUq{>7At>lt5Ejp#W%7YYEvjSsyEv3H9B5WKi{SCQWiEbKVB6CWRNoBiv1kwL4M`>J0dt4;t(iq?YaAxks( zBBZGCaa9K8vLxNwQZ}1~iSHrbXbQQ1CpQwEhmM(>qS)n%asJOtB2qyxS8ac05*2| zB@qKsE|>Nj>^O5A<`m-*I}Z=Ass^ouYe=A#z1i=U>>0m>b%>lS4f61|XdtTW3B={) zQt`!t^_K(QS^NVFGC{7fY?{Z{ z_2YojK9G`eH(oNf(h+!aKwAeHut?+%*tIN&1 zGaB!>!9SbGLbw{OXt{jx*b25|@@wt;hP9+D%`}OL;40U#IM$CZtjQ$7c}ZNfHfP7{ zS&tvwgqQVWrHDhAEXW`&JnGI~dZmmsz2uFb8touxL$MGrA{$gUoSmCTtYxF}ZtJYC z8prqp8}Ma_`_$H*ldVWF7t2y?teRR5>(!c1l=1MJ#J zMlc1kON^MaE=^B#7^Ebi8t6o#>ZcabQRl+?ovk+gh%0;bP^=5)cl!zZnOIOFcN=lX zh@O|8T=$~{>Kd1|ToT8S2#0;Sdv4S_hUOFw3X9k=AmiFcM`RqR@a`R^!3oZh9{3!> z`Tgx}3C>CD?W7Yiqez%?XntKr`SByDUM&c$-_n#>t1al;DUf-4jz{-o%Yw?8ttS%N zX)Q08=>WhCxrh*3Q6SM1Qq#!j=r6y@sW)$9WO)~U{0b3&igtd=;Ba%W09SE0ep^;) z9OePmda*S3i&4wAiDfKl*#q)_tNW1j2{-GT1pY$41-5%70j|upDt$zxF2$#*?ka8da zo4hbuA-mPr7NcwB5`8iywoUkxKM4Hk4>G?C|6Oh(?}O=RqBdH5k1ug~5O{3EPbt@9 z(&j^;X2IzALz8X!&fNQhbl=hMQQ=MI$xmW7okHh7=(YcNX$b}SSlxTcRrKErT>ttG zp(5nYHV7(V|C6r!xAFXOf2uu^HDOTw|8R5vGv0qM?%$^EXTkNqGxzV32Z*u!UuAO? zeK5C*5(>A#9iMJEBL2+I#0^OCGzJ=qSY5)He;iDLlr{ucz5ndq1&vhaGu}7SS?pgi zPITerC`J|XI$H&@VcUANn0L?|!?EtE@8?r>PKn{(?WoRKqNahxr|62}`Hjg8kJSdV zm5{z2J~>*bEB@z31sz-Gde`TXAywglAlp;FXU@RTn&R&K;yREx@myFJX+46%@k$0K2LB0*Br5`mrElReDCH z$9m^h+u2l%*s0v%jh;5?zf1ExuA4BG;0(fdN=r+;Dv(@U{_SdQ8arF{{?xZk6+ja; zJZ)MfM{Oy^D4NU6Nawe*fVS7OhqJ>WA|i?YB9D41)$%0n9bk8PaX-&=>s>Q}m~E*x zlh-hy$xp?jJCbAg&UVtPg3w z>1W&Nkg;g4>)-G<@vuq@A?bVrOlm|icS2vLag#SzH4TlsVS!v_Il`C!l2_C>)vWzvOMl0iTG{f`iRJ+NiTd|;psI+nP9&773s)`PdB&Q~!t!8$T4qHX1Kd-nDD zkh`@yvhv;n(mkJraI`o_k6QjJc@nn{V~l2ahF9{j6Lr9Fvz$6uPBDkZu;Cn>Y>pzd zmQQD$&z^}sdn@r;H9}NtktzG?Yll@>TUNZyz~u&+@oi_6h$|FgT#y$DOXOny9qN?=j(%DO9)>AZCGf5eG@sJln47eQg!fNqFIYJMaX zJ0qc7!5HcHfE-@6IMHI|X^R4TC-f0+Qjko1bkZK8SZ>54gbgj9rP;z(S@HV#)CGRm!Xl53Jq%0 zDy2DFgldslLmqZDGNa6{%6nX8WTt~n$vSj`+ZE5L0XAfufJUA#dUv(t z?pqVdY-Un%46*-c6ei-KN-|GAt+O%k7Bj)o5%)&7$7=Mbcy?)QwoAYHEJbYkID zDNPpbmHRP5P=5T;_D>3+QV&?2$M3#^7&b^`uSJ4)9ySFCQtk}AbslHaoPw-D@A&PX zL$)&yz3zVUe?8+K@Su$2&diVbF4j@8Ue!1X+tyPli_lM(fC|>(A);tn$tAj|+^D9l zuJz?s5QD!B=G}&dheX&8kU%Yiq$ltBBT`3xjV+|*VHbQjas2`**3U|aw5>Gb?)zrv z^`YYShTjt3KPbcZ1`zOg7aX1VT$23g1Vz)aXx5{T4F9lPAGp-#O0?C(SGquL{CLW^3iP`bJ^ZfKMk{+b*E?W;%T&9+$|2Qe5Gr@!bPpbQv=mnhLI5psLN`$My0t~r z8jWzAXtpZ42#y0V-n?mdY zADU1R?y?x6r|wQa+(tds(qPmnh!3<*4m9@+T%AHiW{T*N?cSLskP&U2%>wT%3>Z!7LN6n=yH5^|mdEP|QG1yz<-n7;c= z-y3Sk4m9?RNzu(k`~wyRRk>X`D4m3lNQ8)a&XaCxs@mOi1Dhk0j08f@EEG+^HgmJp zBSmOlf6JcOick6hCJ5Y!(S5J@F=}R08CFDgeXM||3HvSn-RKE(4aythra>Y*e*8Q%fcmIX=FUXNe_sKWoZg& zfo1suP5`VlP$KacM^lo7_6B~#plRCJ2b{Z0yKmm>(q-#=onCa_NQvhk2*lC-TD8gt$dzw z#2cmO=PU?ie=qwIm;ck53M+97Z=TVHB-jM0N{vF~5aDsNr63fOBrbs-7!xKjQv4+i zcu(ZMP*+fNjhWHxjlNK;>#rQ;#F>X9E96R^&rj()hJJ558@)48oaUpzxky|9&c8h; z@KI8Z8S>*bv3i9n8`AGF0GAb!TQ&IPYEQtY$rTmZE9?|>2F~o$$!lBG50YJ6^laCiwlyo2CUBwC<=rke4_GZK`f1UihkZ&? z!}0`#iSQ$Y35rN?clPz;#fLKDUY9lieCT9fGpQbj6RWcHRY}`+Zgt=ZO@ovo*JShD zNvh+5p~U48{Y*O!{Y=@Tw|H6IUX?|~Q?!Ulm9E3I{vqpaI7Q`=QkbfqMzYgM8iUVC zUFY@clW%yZfu@bTK~el7Q76|`i0)ksXh0i0UrV+?j7HYg6JE9ZxT#}E@zA=x(U>!T}z(z{5 zEyouPg>62quDI?s2>aw2y&Be=E}Ft7txVmO)hvlB7b&D4ovC`3xnTm!z~KrcpAA-> zpY#M{Bd9j7&zE|Dc~^1pa`8veJ(&o-7rXbLKZ0M}JUxz$$ecVSsjVA8)MGlnq3bT) zMJp{{8BnF0ANQ6guf4s4I^zEZnCKEet62zbr5-}YM{r+bHD*(NATryga;X6!=p{>Q z2z&SzS?_uIT~M7W)3|{`Z`iV)AYS#CZ_`g2A#5t^Y8`iX1Sfr0G>tKzgYj?`B!a{; zdG@~hda-Z=w^C-%udE^iJpSru4j4K=d}};GGsfaM z2GTvVZ#){nj2~+5DH6ib)6Ybo-+DD%$a3ee&Xo@=UFa2_^l5zvZygS0EAxpDI=?G9 z*D-e1&M0+gJ1E6ARa=h9?eE8jh~;`A&Cmz4=e+tiJ(dSOT+));CR?+X<@Xz}r#c71Skqr2TU$Zt>paDukN-^Avlfg~OR zTVj6ORnEB8=FVb#YvadmF{(A>WDC3`v3-nh=Oe3B)=#5YuYTmO9at_XwxL074=`BP ztRt<#fd|gMB2FENrK>QEEh?$vvtX^=S0Jnnn#YQh zNy4-$$wJmKF560zviBKQ&Ig8>BQAa6VG@S(LZCo}rN5if6kC}N?u!59HHCipf*(+c zX+?evzqFp`T>~;bR`gR~ag)1Hg4*dxZn`~60t&%b#fQRYk+|Ni+b@c^Om{`9KF1Bl z>o=mEh$O$bF2GP^XqMlY_L@%-f(>a4gaZv#(lLTPpSIax#!9;wj z*|IbS(#vdC9(uBzva4H-dV6*?cqEYFOl0HzZPbY-KOZyk7nyR1n| zCs~8uI%@QN@Qrt(J&i|0gKt2t2HFdBF5~l|=uh$K!b6k#H+X_))#vh9E?jLgZTrYeqdB?h)+uD$v<}9Y9dfLHwAAO;T@m#R+&k!V z5}skTh`dur8Fwd6Q(ggGr}~m49m*8ly^JeD8HAsPbr_VdB>%f4@eiR*seOtNB=p{z zN~&^IT;)P~c*oFW^_SjTdSv1b9}V|>Ui^ZKv9n(c(Ft)&e#h<*d~83GJU$XZxncac zpB<%Y$3r~ZhQ$cK`|U(UZX&rYpw21~j+WXB=sB)>z{b1zU8a97Ac$_`ou;>4be}cJ zXhRiS$$X9u>kT3YRCN}-*0zt9g|tM{(MxXTnwpNHFP>x-m}@Jzb0xm4CN>6B#BT4&$&P+n?F&`A;2f8c(4J z)h``w^hWJD#_TN|HXjsvGfrv4M|Y51yt3iBdmbowoR?; z@Y?aD!^~-VC(5QVMdFytIiB@PpQ)Oh8=8vpt>xP(t3!VS;4@%)J@g>;_{@P>UH^8% z;Hz)-2|QWW%I%z8Xza#7SiItqtVCI`2)6( zJ{aU%-l~!fcuZ#e5EwXkQg`+fD5D?on}A5|I5siAL2E@{!`QqxAXO@CxH6gpdS=3!?$Lw#xS4Z9&%-jbw0FUVz{MQ)%55LM&-uKboSr zZnaWEltsJuWsw~|R@MXKYzS3To#6zd=d0L#%M&y|a!<-^Z=1n^isv+d1;@*4C1L?z zLN3gLsazL4*Ty^^U+VPbCF(8CyBTD8yVsN-HCBT|&$GogTbVVJud;1Oci4#OIku?Q zaD`@|S;EZ*V!ZNR%|=M2N6`cC=pnqSKyb>F`Bq@~d3Y<42 z)jDjTKb*^&M{ux%^3+vPb9#Z3uMiHH0v)x>=MM{w7JHC+K6807QYOn5J`mGk7Z{ID zk5+O3XXkzd6tHi)(Y{K3kF?C~bJBkY*so$r;4F~_^ujFiSTpo2E%q*1hz~3#bt{p- zEzuf3pJp-+S8mQh2$tsN^vRPlnp`aeI4&OUSdo|2*|!tb^PTD6Zz-5jgCv|@=|sBe zxYnx?0Mqelvkwd}oc^gCzt>R^(QW39=@XK?sfZ&%=u4$z)4{IQdW)k(d=cB0&-h%W3~!F`n<5 zvBiGX6J69ugT_XZ^fGPwK@#*7;A8*lmXC&Dmc#R|rf+EQsMA48x}edG_v|AVl<1FE^0#2UjWs1of)5$=`cX6^PFb5ALEDrnF5d+`2QZQ;DH3WrXQM9w7KC6` z!b?3r!2`4Od>pAu`~J51v)_YYNZ}+kXq*n6G1@_{$g)bnoYHR?AbFmJBG4uC14o<@ z!_I7^SL)1Zx`4l$#70=xmeNu{_U39?Bj}PiH&G@N#-Yi!G1Wt4dBWzI8#D>`ft#SG z_gCxD^sXJFb*IN4nr@!DANwu^tNJb>@{x2XJICyNVbwsyxj+QLt6ktbLUi5x1%VW< z&NIB>10IWFKTHD^hPbsRRpUbB{!AiJHaY1`Jv;SDw8Y016VkW#*qaA$3zWI-5~dM> zzTsn1%uQ#vOcA~8CzWn3_dA`ew<_~m%iKUNq5@LWABDs2?&8P9%W9=}Ri;OpSUq{=#l*a-Ri``z+ z%{_?+sh#kOR6np_>W;E^+xJqtUillFtNASiyK%@oR2#>^b2a^V9liIIkqq(!Lg}ks zlQTBP8?Z+ug_@5IFs-_>DU-f~fuaHjYv(9H(Yi=gp(qw74Ipb|caUwb9z zz0j$Y;8iGKsyx6k7qi&!q_*E8?U5qYggQNYIJB?a1b5e$WMkhV@x&)p_HRXP)*FcN z(v@lV#d=bn)(tDq=_a(YVvcvnYglxSJmzU>Ig?^m0fAog})7}s|ytEy7F@Gg=VUCC8lH_I8eohvwd->BKC z(pna@Sm*-=Gp&fP54-vZrw2Qa}zu(pQAW!h25ab_Xx{)KVE;+WI=m=Udy&+ z?E2SE6}fq|88-T4+|`PmMV@bqM$FHInW$_|VB@=%DPLPTP*9G$P*Rex6Ez^rdQuuP zno-AQN4=(AHJZD(pVKxot!u5Ct1R4N9+2lE!iX-$y1hrwxu8Mt8tKtC_BFc85(0LsqQ72LqJ5JeK(nse zU)otlCv(5y8rWkVo{n0+XnTI_>Tu1dd#9r)vM#zpdwaQen=m4>;+vI4u={09Gnr5O z!qc#vspmYr2Xb9C(WIuNc!NnRgqpSIo~oo_)Wu|Bv)z~Gjd%-b0FX`ExymM$F4D5X zqYv$`h8|1rpUQ$3F0|XI3w6RuKBE9zg#!FJ>XW3$+;N@T5(&)wPm-838ge(C+|&i` z6P2}ARKGed_M+LNAwo7yUvbJLzXJRM32O^lA!Ev(#zD!xt$0X7REDiwP+f0%jOwcpU5V{}0Dei0x*Cv|qcZzWp_yBF?l zqc6?_m+*26LO1C?9V=JeD)1KTey^q%2O7br64G~2ob7zNWKQ|cU|s8-K)rKZN!Imowh0%UB5qOk%j*U}72@s@px!G!jD>z@d6x)mgtLr7L?^@BLTV@3Q=r!@7r zlR0*L(v5fD*f_%@6ypj2PX>p_X?9gkRqW2o?l6N=;A2u|dw^ak-iY-OKj9KlVv~d+ z*ImnJZ|?aK45a1gJGH<-+k4r5N(RO!EW69hjuzAl`Ws?&qHKSShO?n*6XmrRT`QSU zqbtn=*KYYGu>hx7-GI~)kldRrUcPAUCQBa9jq z!u9K4+s>lI@0=blGlKTk@TV3Bmp`INGd7pIROZEUQve3zxk?SqNK0wsl0HShV)1Q7 zsmcQuu9Jj8f1!1x3VQoxbSA9!`_}ZVaFm2@vF|9P4a1z{IAKMzIQSdV@`;V4<6XFz zV|?hV;?1l`&|##xe(bV;fNA$5iLyuhB-aYPxQa*+n%hhPpw2t?<0ZS%O>lcefVWzb zq?+HWE{E}9@4_A4B?Vzc^J1UbXj`_Z`|()ZQpqi{=7rvCXNPNLbv{17efot0Mfgi$ zC)?`crRwqfDm@Xx4dOscZ!~qthK%boik)B6u-nkstLygYR^D<;QgsZtzE#Y_1c5BD0?KPxfOjk*xba~gOIiTt| zjjhMbZ9==CwIW%M$RoWUZv&<0#nhfNHNuf}U`S4~SXV6>-a?8e3!!>gS`!p<&puBR z_QqRPjdW4Zx!1(kD=pWyE3akKJ`%c(6aO#v-Xbc_Eo#?IaCg@L!QEYg1`qBU+zJS; zf#8J(cMAk}r*IAK?(Pmn&|BHr`@g4iZ|C&RIAbtqRO6$TFxUF#obU7c65JAddDet) z=GTPha-1}pVBMu5^ZhpGA9|@Kr^cc-aBCJ~o3>TzT4q|}XXA9L$5QB8wpo|x>k#~G z_rrE1`q6%X;Zg})5tU<)w1x&)chXMa)9yOavs0w+++)SjiT=Stw6a8#oTkZUW(wmF zr+7?BeIh8N&m;H6pv&BY5Jk`eKh$v^b*M!%|g>Y?ZCM@dXf%lB5ktW~j?KK!#;es!;V4e=aJ2SDng zFz4HPJINRp#41PdX0g+?(bI@k4t8US(&&bPPl z1=$#P!@4}UbZ|i2Vjds=xm8RgK^lJ@hD*tVnvZ=OZry0cObRM6SodGfI_^#rm)We9 zDz5AHeEDkn9L%b^9d=T*?SByJ+FOBZgm(SclsD45l z$TF2;J7QQ-<%#$2=?wknbPkYmkX2K_%|30#d8vx7CcU?!weeqg z>tL<7h1pR{;d4MB$tclf!V)b=391ilblPcpi&`q)FzXCwa3E;`?5^*)MG4s$nyNn( z*f#1;-#E2$9U0O8(Tgr)8Jx0H+_*IK?S9*zwO5lo=p4egn@*9~(|;@;{FoM!+m`5_ z5jwfdnsYLq9!GsAEYd;eLHrIGLTZz^@z#sFaAQgsquKgfp6^p0l)_o3&THD5<7b!* zOvTHGRYOu`bBlHUCh%>zM=dFrZL2u&F~gAUT2yyswM1ZcL4-(c-Li{W#qX};qg!&8hA3zN#;_A>rHbwprvM3<9aaWCsQ&~v_ZZTi}KURU-EtTTQL zk^e6D1Qxr|8uwiL>qfrNNGa!UCUkI-4jVmoZzRNRoZ53rDZ18*H!M1*?HPm$#5D^d zuFYainN>J_#O99pkaBlGqCg~wb@}{Ir0mHr@USPx0T(nRjs5^xd-^B%HquTTVszv;-Ftx>T}6L5^HKu6wga0Y18mvXUA zKw?m4l5e3s18}m!4X3R7Y~qFVnS*fPMY9 zceVRZd+tTbK8uODLWG?p{}-1}pPk6?om_L{no96N<4@+)doN=_+BTYlJaphQn?#Ie_a~-y{JUPoqF={@84|QI>oqTrCYx^W!ke6W+4R%d5T1Pz zHpusXnwW?8-5KN`hKZEvteVTmM5acQqmX{H?Z6JTt+=H4I)65>l1$D`4){ay&TtRh zcpfLhDQ|@b5JpO;Qdj zNiK6urE`{Z!#%<%r ziP^@g9Aha*`NS%&=>!w&-go=O&wU+8s$=C6*bZKp0{CZLD^jkwL z2rPKEcA|$3D--k+C&Yc6na_1tDeA*} zETx-0V>h0NN%ZcK(=pcyfCRY73?3}6^4_8OhK0FP*~gY(m5rzN`AZKK=8AB%lb6!i zN9E_qnAQdb9`R9*YD@-L0Jq$~tm7bVNJYm)_?gre)XX>R*FSR)JGaV7dVUmf$Xk9x zdaXD4H6ZqR-<-#eK`X(Dx?m;g_DGSjbUg``H~aCE+9&^oL>R#P@TRuz!bP7iEq3kJ zJN%W61-{O`oR6FQDLm#RrZ{9SioU)E0Y)pl=(8W(S1^5Hga=tB#p1!>n8MAFuJyU7 zpI76H+7E}zEj~Se{&%zm#4lKSYqFz1-JEu2;nQw43rHm;n>8V?d9j{N4|bR{4uwz~ z`);aBHagpOj-5c^q+LXiW_$B;#Bb}_LM2ys$gbp8ggst)Sep(%*SGeb1w*V(sP2zo>1?xpcFk!mJNQfSlq*~?wTt2V z$rxnGjKa9gYh!@b8K-~A)>xa@9J!Zl_Yud{YBHKO%vEJfM70{6p^CYaYb1v^Hs2+i zJYTrpmh{R$zpYPhX-`s7T3(|)#hQZgrLIdfz+EcYRMR2IoCLAim?ho{J?AA&@8};0 zPaJOAXNubXZOL)Lht#86hZWpB1s(dP^^z$KDJO>QEC0j$JoU6!Dfm?a;17++?F*&-26UpC8Q6`-Isq zqu&>Ep(%qvSh6K-jh2@Kgw_jJ=-)~p@$f@qZVLCNpgfy4kDSZUhPSkSf0uH0mx*Y| zilZ-uUjddo^!febGfW6o)LILG7|ab+v5J0uu6WM+OirK4cgPn} zwsRV>u+g8mji-c(e!iI%{~_#)Ko?V3gAlap&%m=DF+Q&2*%U)Q=mry&a%hf-Z!0cS zor2RDe2ZjcYcvu#b-KH<2V0}VltXJPQH6N$Lghh53#(*s6W#4Zna+LZA!Dj?Xcwv4a;~=^ zIWuARO<`3(#dq8M#L-ThSL#w46QU0X{VNJbz=kYzk6E7J>Igk!^=-9NgbAN93(4TS z#mFlulvjM^*#{~q4@cPm+I(v6({-RRd1Z8**Nw(&)-XFgBlS##mtB7#I8nQ%m|$C- z*xInSfsme#3+pp3RmNRYq9e_BlC zXV*eninp_o2Jno~!4i|YSQFA>2I*d5fL%)Eqd+ejm!@PVzuYxV`)a|DxR=7XQ1YmOPe~7A3(8xa%@o z8d>wRj1fGPV4W{y8M=&<@}sDbo&!WjM>AuRW~wg1;5Q* z|Kd_1*86ki3h~gH`6iPV-q_P`729C7N^nSBxi_(t3?BhkIxP4P}GJsja zZ;vhMvQcqBQI*_#f5D|e(2$V5$u?}z*?)seeXpZRKK_x!$k_bI#pmSLWm;O28q_1| zP|HBU8P!9}Rx?OPC|NjbY3j#KJni$z)l$pawLXLAE6uIrKVMTiwP9YuWCO_F@5I@nHk-j0fWcp;_CN$ zK)#8=~0)U4b&BWb6O7R5{apq_KpuAkkO666yoQXAQ{^J;;~SO8oeiF8How6 z?e~ckmfx0u)IFlUSaBPMo=@+(;#g)x>Mx`iXDzTjlSid2%dA~OVHNw=A8{#G_2}tL zLqGhLZzIs3JZqwdQX{0|XUjlH4scmDLwu+G7U;1UaK$AUa23v)u;+G|pinQvtgp74 zpR<^JGI-BslpSztB+V4m!y*+wbI`Xe0?pWWTj*x|)FY%~V96r78f=hM`_bYWLwi z`h4}Qe9HUu-Yn($-Yl>?;GI3n75-Y;!}IiU8^!j_Wt@;dvbgkCWu=JEHUerFu>h-0 zvIgoxYr`AQzIJAp)1>$|K?ytrmhDeYm~&3Rm%IcP z7802?Ri$K)tgX&?Q&HvrI_cdgKT2YYg7!Y14Fum59o|fan7W-u~DTh%B6i(+1tXCvbJG z_ZZXTAbOw8JV=*IxcLigQUZWecGIoQhY9{$Vl}tf2kUXh+KUXMbLVvf0>p9B%}r8H z5XSg=aafG6tk6&1`|AwNrMzt9+PoU-bX3rTL4MKGFdUO`5q_J$(4K~nkW-a&j-quf zL>P{88JUVj#jit1rDLLeDuPH|)#*?7);&>$-yQg_G;)*K@`xeUa=9G8C*)RQFW%kw z$+d-C;RE8@Bo>)@8-q|pa}|RF@rX~OEIC|YUFmrVsov$Wo$&SLVtlOiG}D@#=Xqed z$V)}(^LByM;IByl0Zaj3}a8F;K7pAPd)U-br5pq+%iMUe=%VDB`y-ngnpQ9PPUpaTZ* zqYXBt`CHQlhqv9-pOPwkq4neKnAUo z*0T5G!IVEr;g7c0VgsecE41Rcp&B&Y-#z2qn#Pw3o`bV3*jglf4{}PrN8P(tyhS%K z$d7Emn-KOTu=hJ&%HI5RSxRYYbb+J(W9uYbo9hdfDK4@R#93)K54L~&&9iASm)j-G z)qYZ*LaQ-@s9;UjFR{EMMQE*k91yNr=U;xaSPDcdKx%=#M!)xBMc=^Et}*NC=|_~5 zOaLq?2~>pN3Vx;ye=Wy|I!1HoEVF~=MKTa_aJNOv;P)etd2u7T6|U^%mXO|Rm4H8Z zakOGNm4^gvGTj*3v)R|U@P6Pu=;=+gj~kKjBWkDXI%$+GJcDq?>gTv~C47)M3J0s6 znW4I_*)Ya&DdWXu7xX>o3TMLdU4{y0Ch>cEI7`~<~Z&Z&XwBhY8R<}i}NRZ<7C&9cJJUWUO*U=3{ZCB;* zYZ3BBn-@QK`8*5Z>Rq$*+Xw0iJPoj8&qIzlOf zT}+Y}5Z3KMu-~K>70(^RO@{!QiZH`vhKIuWWQ=;^XW1u>*&BC9!KCLWCzNEpdFvdN zo5+*kEFzXMV07Wa!BUd9v`_FU>v}*QaEO!iy@!1A+QPOeDjLLFmf>|%ERv1~|Vyy+g>YBIG6gW0r zNA(aJblHke|%oZE524lLPtig99OMTQkS=%_`e==Jgc1jMk@`U>h9M06q z2)`UMie7qCo{GF7Dv=|9F-&6vePq8_!Q!*Ped!b^7B9!XLQ zXxO)IepWrD^%zb;1r@I*ajBE{Q8c?TG9CxCx3S;1N|=d+Q0cn+{*o@YHNs#u`9>}> zm7=xhsqGq!`2f9Qs2lA-#cNepLyI+Hr;SQt+AY|`k7cZ@S%Kgo{;k9cMBE(mfK(DHJprW) zxI&ZPC*}lrz4;7wumDWgNFg3*-0R4#>a^y-8FNXL;nC|Fc9R6VhT>?<@(SDC1CF5@ zUdnZ`3x`(`{p}ORlT$B%4l>O>-Yv=&g`U;2!HfGOz)MeI z6CTC;x?dVYx_DEryETNiI${*Ub;P(0cV5-vrZeYvm@zH&W}&o88W(uBSW+XSSmQ@x zqPTsqgSU8FdBu}{&e@hlrd@ic!{9cGa!=3UZaLBRhl$aE#1L+C-`i>ZI$>DAp~)3S znP+$5n!6aMv{C53D19Gjk=6${j*U|-mKqr*z#pRi8jI%sD~%SB#Is1-SuctF9`M3zu@Vbsp2#Y6NMvM{odVt38|w1*GV!v(vdLTG<_;JQ~8G(#U=FAiikq z93(J35SLm-FCExeuf4Pe_s&FnN#|lN#FL$ofq3ymG;-LbEJGM_oX7A13SX}oXAE9= zOmR#*7OOpNITEg;#N*U)b|~EQ<1F+1b|tBxpUsIlxi)5d^}IBxE&|1gtQIGv&=#ImNWZ%I`?I;nilGC4LU=0$Ah1!5 zXFG%Nz#`+UfB8_4wn6SAcB#|eGwLX=-22CBGmQl#f7gv7DV-P19sD%U29!>RFcsv@k!s&`r$kNQhGTltwO)tncl zp=xZPj^vJ%j`pytn&j%I=54HG?|Mp>M!WBH>5L8>n@z5ejvTCMFUki-RQ1S7&rM{I z8VJD?-anf8SWSpB-wvZ$pC{~QUJ7LQ{db*n{D{}3oigv8ot6u+m@~!{{`f#SZsp1MTt|G$JGKeY@Y@IY3QZbykngeD}shk~|51 z7MD@7aBFf0C6bJVLh{B5Pl(D*z_G>@J!0)wcNaitG2n-3#ZXsGtAC(v0Oy4Ux>g)G#1zhqt~4VKD+ZcHxP(ekzIzq3UU3Wqo`VU=M0ghLq3mjMGXF=5s<03CQ+Q+ zG?ix2Mm}VbXgg;E(j&H2X<4Boi3VE;Tq$HAOg0lDp`Y+H{frtQ51-M%j`f*FkTlvf zKyWoI>8tj2?y%I*(f0@wduXAbdcimc_b1D!e6J-<$zMB}dgPS+9PWWD%1uj%2xr2V zCMPhKn^%U?yf_;+{QZ%&@5?K(;-_Xl+>8``u3VU(?DTH+haXB{8I zYV6j#Ltfn(O>S=z(YcWD@E+a1EwAvO_rJVbFPst)(XDDTT|PAvY~E5~wm-@XojwSJ zUlLCvyJFcs4$6=>L`_v z&2K5zHc+AWKkv+H<+}sn)WEy@3tx_;GVF9GCPMYB`D##WUu>nq^j2>}$b}nN{XB-h z&ZSh0g}}{Z@dZz9HQ<}JWZllma1CXB?d|fV?(Zmdpc>2O2ZGl{qKJTbaZcly1m@&) zr(m@@)~(59tk6cqCEhdKp1fF}N3r)e$@fR9y^HUvBl-ldch<-A@_uyXy(u}7IFTg| zGm!{Nw$t7}p*{spXu9U%!2?-gCM#;t-3723g0Z{}B_~5#zR>CEtx`**Hpwg#t}B8c zw6*lz@bdu}q|^C_55f(Vc%gTxmj`#kM=EaN=;bYLyAN^RJ-(-f_@iG>1!6wh=w7(F zGmbN)U+LUNF=m136E1ajX@0zr;e}s{l6~!hHvb@hwx31$Rq&W4M|CUvoVmK{ZA6R4 zc$}Naj-|}(&sjQKV1sZQ+kZ^O)j&wRbYPF-`j2oD_6}bk|6@BvF-Av=Vr_L%FN7Lr8hegt8Cmxaz*#&6G7yX`A+-O&IlrTW-0r@0 z4-EbLO($*<^uIip)^zO}-*&znikbf=JK?_(LCX>idXMcYt2>%Qh&h<|A-%n1JjEVeiJF!;Ss*($`^f#50 z*! zE~TyVVoDqN-QaI3u8#ZdBV%e4GsV<%8OnbwfbMBKSHctP-K@|53#&IL9pWjosz{q; z@h=el>vu7QY;}cZHx#&mehL}^EaBZB*H`8?|KmP(vyqUpJKuB$P~-}AA|;h^Uo#SuG{)=Ugtk7#orC|KfnL) zv;L!Q|KIugZ;Sk&wkO2gsW8Gv#EC=h-eyF-*c}ICMaz}_T8JU?my*~4+0Wvv@cgJ; zctQ0toP_2+w;xDbL8jpFLYr3Xe8#o^>1b^V5AN8Oaq;#xDft*LW=Bj%C=4gaPc!XKC26 z#u?&7?zeY(aNUQokLOeLJC-LOg4cO;{-gc~{K3YI?UK8-4ZPP!oO$GJJtMb##y3TT zNa15C*{%eKFSeUXrK;|c;D>9g_nkkYW`8@yf`Qwd4D=*e!f#rkJdu{>yI9*Ez8L6m z4S(x4^)By1eG%pT4aZ_zK9cSCbvBB?6uZg-ZD&m^tjY)&mP`rRyKpq@nbXRVetX0z z!0>>MK}f3g?wN#ND8k!Yp}$=P%z196cMui_mM(KKJ+q`H8a}sffJ<`kj>kv_$D1}Y z^L#fW*ap07d{}ukL4M5N{PAX8gU>4KGH3eFjeC|K^PeJ{`mQ;<=i7<_!|r1_i`Q)6 zJCmzc>bv9+LnFFK3LA=l)t>Rxz2w^5WpS*#0rV+_CNc_@WgSM1$^ z%RUE%*3ShTj3ZMjgLqxuMb=%9FwXJv%QF&y!mzPlNRx!F@RB(z(-e8`UXv&b6+oNJ zFP5_oBR*eWLd(U(-{)ox3`2OcHwbGwJZ1$b*7ZRUE18J1_>Z#UewsB9t_#CIrK^aw zLRwEdN}jTGnDOZg4!0p+^#iay!ss~00HO{Kv%LY%tt%jnOi#Y+Lri%m@|S+=68?*1 z+Vf6-hgq}h*nfu~_{TRBf_1S8?u7K`_Son@vT7dD4H@1;EobQjb^G2tX?`;K4kI2S z)<5I!^iw*j^yv#vlHY^d;6i7B8!pthi-fQ>(TT9NYzKotBN5M>Qk0r+1G$%D*YmAm zg!YUOq|5p{arpqm+`e_==WHz?`<0vsEZ}vb#TfBcXwDS)tdY-bw_OU#$vrz8QeD##~P7>rI^`(kMUe1{RG>t-(3A z_{AE6C5VoBRrx}oIj)P+UbXtX-`=Wi1))T&G(*V`HM)9Ye};QOD^=?ci=Z*ISa%M# zQzuKkVMto#S>SZD zr1pC}dAf!%# zGEzySi8A68>?M= zwre$UMDx4KEbXnTbTl@?dm(}{ZM4OcHe?M1E5o;bA0@{GX@zYlq62tim7ZQ4hz#kx zV7}qxfx~%|HYfe}+tG(~RDi+Gg`_Zm`D2-elk?9D8Y+&4B~m(blRQzF6?HP{n&Iru zHOHR8He1_61oR%ZmYARZS$LzKqx-doq!jEDm^?MC3qbsq)J=QjQVc^?K`h{dcG@r+ z7AWzujX7#O=i+o6ZzEY$lkZl)qO%f^7W2wOH_Y_!g{?~bE5y=6mx&nWZQF*y^PcL{ z7Oa0>keyqzEKlo6J2FA=DVn-!AG+U0-Xl%4-jqy=;@1 z){RbsSqcz?tXcN2{tm*dD1QxbAx*oxp0?9tJkasmN!?+@$^zq5fUoEAWpYQo)Ue%O z+vRr|f55c+i|3z~p>aXxv0CGudx0oLByHm$piXU;q(SJ?glA@-S=m70BepQ~eG61a z6M(El_#aA69d8pe`9c zH;7w@-bC@KzpCAfYwA^*sNdI};NkZ8o8h{R^;R}o#^ZoB34ar|zfUgTyG=ewacksx z@*N*>`V;2F^lw-sEr6B%aeu<^lr$ltc~p|GhL~u4MBcv|4^X0O`P}z#M10Jt8%_j| ztBdJfsSAY#;Mb3rk(I!NKcSz$JM>-nouT}80EJ!olIOieqKTLmrt->t$V8>{8Sow? zkaD7F6%N2`x(?wdAY`7O6%EK*e?aoSGc$=f$=rL~F5xAoGXE?#e|u25HW*6RZfC2%V+m3)0d3KeAm`@R19vbRIans+e#93iLR#tju- zi)}(YtDLpT!QsgxIG!P9IA)F96Dj#n!X6es;5dD~Bu?yPefd#Vsds_`8UwpPd(0jb z+0vprlU3Bac8W{4yh)^gL7u36V8bHT#m4WgFx(G(8JL+?0V>KzZ-HL(MC2qXxn&+e zPHd(ftBnOKyp94aISp4ZYyQ`70*XfoYS24qA8F*9O{Hklx7J%HnVrM!wB ziUnPX2GGd5=IVbcE^Z^LcHv3qTTS5~00w&e~nVJWDy;mgr zn(9tX>Er?0YH_}_5nEkntbVP8ud0s{my}!{Ft#s**jLy-g(C5oj`nv-0{(dg{NV8Z zH(zOA57+3nNm`09u1-Tx;TNm2?lir%&fGn!=~tPbr~_p?3wz#%Hq8WpINQ3yf?$;j z%kG%a&ljEA&1ggg`jXQkoE69AXCu}puRY!i4D;#D$}r#YX@)>CoyN1Su7s#Yb6X3v zxC_7im2uPZljL_!&iIse#F=SD9=Pn65oWR;E~U<@17q_r_&o23 zmM9Zre4gGVJiToeK<{gV71GyQp$z^a=Vvjvjx!+2Fz`BD-tP&a^vx@(3Tch>w`!ep z=AbtJXyN6)Z1WZ0gxuf$dH*{2!($P|^z(2f&DikGw_9pbZ?@i^$Le_yF=8*P3=+0P zEnLkBL)^!0f|hwz{aVn$c&FQa5adAhtDm*%DeI69pW?|ne_=aKT4YSQX9z25Ba@9> zZ|*0ZpUSLyjidH+Lr|pWn9(2sGHQ+00an;Z*IsiYV+AApON$ewVbj6D4-r*B!*4J2 z)oYeQl%x(OMPG&J50gm^&mlchDfQ3xLS6%3QrN`RJ+sN-(a!Zlad$=B#HXCD7IVhq zX*Ya!QikYd}4@DKK0hCwhBj|^s$4g zsr_kupy9wSsj~QP@ssNtPxO;&rW5OQ8{#fOq~`NcG5uPy;!|;dk{r522P^eC7|ecY zi8W{N@8V}GLA2X8!p3lq-Io+xkbSdSY?_e%rJYNo@x>`$=rc87BefnMMaiosp*xnA z_iF;RpD+7sVlhE{jy@rHYQK-c?(vj(p`~ZoGk)<-%L2$(-Vr@o!+S&{z>JCP$MeHl zm90sHk&Xb-)*(#Ql5Q?RB8c&HFzob8V0D*<5@vE4U!%6r@udYn|;}R z|DN#-RXw>Y%K`))dA4+`qG_Fy=+(miiN`FqVo@cm%x)c=@u5D6>6vr*v^nGDWVLGb zJ+fN62v$pv!}4~i-Og!ORm&j)v>a1NBJEHIrB6IGUwsb_M|5ObEU*=n}d zgjDitX*-h^o=D1<>WMugf*G^Hh5q79{~1bVLQZ4%pT_6|O5d%hrNNni&;CWhbMG4THkBfGH3HTZey8Q{K#}u7yO_9RLjz#0%UgzW}SDO{y;G zN4m%>);JbnVNkfoBdleKCXy_$1cK#XU;w~d4oFR2FcDySzhmx<62Vh<%By}huphTR zFc{#c5j>}<^kSZfFli_W$ZRX0WujF&!|7_xfVA5?lInD^1iBXLRy9yo{J>jcSEPUc z0VFlhaiqZ(<823(HAG;)wf_xHeB0VCwH>$Mt#=@lJ++5r^61y!dQU;U#w_+xU1iln z`zFq3>LUscmwUH5Q};joC%Lh%jcPxSh_xBpuH?}+x~(5;*NIW|dMR-iBviiGD(MJv z9S4hgLWmXYu+=a1JW{X8)x4E&JcD2Q^rWaYRQ;bDGuqVyR%BbD)7&-SPaShw(ap+! zR~m$@&iGn8IhrB>x!z%%s0j0kCfENG(=UvQ@T>n$Td)skW8Qg{uubv%F-#5;~ zs_AR*uS|+!)b?Nj z6WtHPsZB;Q0$+Tp1&9 zSc71p#vJI0B*#^SMGiD;-p<;5h6=b| z)gS$Dozc4Ggonx23br;gv71603#0@JRK8cxGm2{_Io;!HsTf^vB2m5Xh|bx^RZ%o? z;!>0!dCb@5lwDJr%=~0AI9^10#VL2WA9Gc9Oy+K&)(>uMeGd!ZMfCe?jUGh)r&W@7 zKhw;KEwB+)8DJ3Uu}f~ZFVb5EpL_(W{<(|O1tZ@G>e}aL@!F1dlAUN4;O=bLG3Y5=1K1F z^%KFrt*N6~I)=UJ`hmY`zu|o*fjamSn4;J4VY23YXYkmluO=Jq4#!z@t8sjdwKC!w z`v^vQSD`QOmz=Wc<<`h**b~-zQXg{$WnP)8hfVKVz2{X@j7l5Ah(9Ox=L*&AFMc`! z<;O#xS|kq58QDv<6uay6LW+=wRoJqk1#-tDQ%Z;f7-=qJ=RBH@rlZ1$IN*NCjn933 zIG{CABBg&qBm5{u6A3f|jbC9@W}$dmn>&X1hnp$Xf4MCZxNKrxBAHnTK-*nWq9f zxuoj4z<^G@_eiM@J@lF4TP*1ZrXP~yc+s5Ft)te@6?98sE0)l}&DEukg47UBKt;Cn zjAo|T?7FS_Bo$QKW0=?~Sgv>I+@3v_Kl^0$i@~dcl>=xmf0a&OYcqV78JYPoW)&$t zh>r_vDoAk|R#P~n}gU9oB@oadO)JDA12kA@O8>COJw!dr$gKUA$(jL%%% zuGVivZ(4PR5Bn=#8=U4X(DW#IzFAJv$ao4;2bN&Z770^7RU80|Qa<(?;sO_5wDKTw zpTS?Zb}L0C$L5&RxHV?-FYpo1_&d$1uAEb--JHL@^~}`IR<#pIDv#z|9bXpU7asi4 z>+Udxo5^38pEV;p)&{S$0~^uaasDf=34y$;RHYt`@o+hIdCx6jJ-HM;RE~0bYkfZR zx1uaJ6oyVm=HS{CBk^#rM}>5hHHgxG=FVy|x`t2h-7=)DZgO3lPor_6tlN4@{Z=8G zp_PtThpT}a-_kC5VaP&uW&!)9M>>^I1cnJ|zT6n9e17RG<>Y5Vp3(F|jBH3g$8Dpd z@dc~n(Hl5Xeo#YC7!Mqs_RqsuqSk^r#--FIpG&%RwtMfPSA1TeW8sbnb*WtocA$fX zL@S7zW~AbZzhz{eW45x_hzWoEf+JCTX{ob{Lfgnn!o@b^eLIfwRV&E*JFzGKBUVX* zB5{GMxRID?oyu?)sELW#nL5e-nD(m(N}FgwrVwUwl(4PT4KwcKJnn+d?wG+2g$a#h1HtVMv^0c`7HpDb8IE_Q6NQJpwzyBpr zTqr;6TiJoqn%T!BsoMAEc#bycCt#wER7qNqjN}oD@Z5*#v zQR+9kQHF~_q{LQAGL)@$4Geawj^OZ@cH7fwCn9s!SNtnpFU&eUWFlG%yzwOAcQb1b zBCsdb5>*!Einp2=M5S@=!^ehM_774V^B;XYGiisG*>zePKbMJ=MxL7gSIY_dLuSk6 zv!&p-XoDP2w$s%+1*{;wc;lX_f@`OI7Ljvn9Hrq-9>r1X7@#{?yWYJqwTf(-jP<*h zO=Z})QM}_jR>IfG%`;6}@x~0cV~R6}fsw`vR-`qHs_Mvev7Bz#oZFRWhK}VNW-4?5 zXRZXt*+RHrV!E#G%>=}OCu8s|St;=XZ#rRl=1mQE^wL3ts}nVVZ6S6#33H{GTO3?~U@Z z9NK-EHJcQ1&PRL}C2M~^YPT~Y^~Ns(Q;O;4zRw^7L@Eh=q0=(jDXW%d|F9pDlTQ?d zY>OQnPtyfAQEsZAho6`n3xdoUiuM>X4U=&-k`{vc}9FAkioe$IHcDkxlsio z2P!A@Jzj^pa0S3H=)>zm&<_pm$~ULnxAfzpwg4+DX#sx3-~7Ky_5*6Y&@BpozqEE) zQPj$bH#{x9Gm~HWT=VXGt|5k#+(LS)U-#OA8N28+%`O%TEMWBH@^23JUF09{u>49X+4__{trb+M=md4o?(Pf0nWQ+Z8w zC1cf7yC)4OXZqr)f&ZY=PK77uN$SB=83AXvIjK%5$Za=!DR@RklPCd=MSdP1LYn^? zqIW9RwJqLG2ZE9x;lNFDXGqtFpUV2a+h|fr$QPr5x(vCi`7H zmo^R8%i-ls-A^$M$0Ubm(DM_$jB6~0mjV8iRYhFb`3YIq(fKtd$8N7{TOsor0lj5& zBl(kUDh4!ArLW+px<9amuD02Y7A3oJi?E^rdPSdbtmTHjh;?J2wsps!+lx#A zEqdHCr@pPM6c#^N;=%&Z?f0%8tiepPQ8)36!8qM%qIKz zPJsOt12nm8RFm=au8kiJ6l3|ue>)^h8RTQNu688Xk-xbL>3ZlcE{T<@KgTth{Qkv{ zp+!k%@cO+PZs;lK{BTRByn7EdG`Y=hb zPvEiqh#-}3-=oO}eK^m!hR%Tkz@-P$)y@Lxu4v?vf<{Xwd5VOS`r=S)91jiyAZ&8X zn7@g(?oh}yU!)!@HE@0GYQ3Zs!9hRMkkTDL!>h&G`=eBodUCMcs#W^bFZJZ9gT(XO zF>7-6x9*nB`n-r!y{oUv#o5j=e{T!Ax*b|w7G@TY72~Ha;tzL^)8}SyAwcW>`j? zbg7yz%3X}#9StJ6O-Dri8J%|}kD32G29F{59<$m{$nO>$;)yvu)Mipp_FXFHHo>0j z=klEhI~J%^ZbuOT@RuWiO-(#8_Q_rhIUL^5scx>Gs}4>#?tV_8QA)*ER^*y10K$BU^5j&QFKi5? zf%I_%MlK`CH4QQibQBZH2AF8D*BtQzWN~8FA84BOUS29_9+kz zK9GtRM|z|_7k@0cAo;V<3CN6s0z~wh(o~*dlNB}?g zFJtoipVV~1(~iCr+1^X<<;hIb|D?kDY=@0es(r%7EXG|wk<^{u&J4bXesqx3aU;8O zhtU*FusQ5Ke0N6QxZ1+AN(=Smra3HKZhaJ`>*}jb(D;ucy1?_VA{v5xm^yb$Y2>68?if7*sH$RI61p#wthZyBRt&I>3# zyu*LlyY`CeMlb^b8g{z$>`nW!C}#{`P^pFM$dp&oi|9sTX^;pMLInPe{+Bl28X(%K z0CPh}`0jgo%*PH53JHo)SZ;eYJ5U=i%EvFY&x=fQE2#j-C)>iCo3%@D$r# z)FQgoXi$bt2G~?=MV#1qI>cj47o%AyF-@%t!D6WaL<+wgTG1X13(FX&R}xf^T8JV~ z1;?*U+BpY8hrHUE>J$65Ocf?R+_%S02R8PsE;hwdddCL+s+;FXg z&51{?sd5`JbolXaq!f4ST)n4?9ZYceI?i2%4Ap_QdC;w|3_CAs{x{nd%<)m5Y8C8) z~6?7ekR+)L9xnh+8oxVyW%I|PEe zTY?8&oCN{|cL?t8?hXk~g1fuBvpD=V=bYq`H_v(Rt^3Elx9X|dqNaxZZufVlr@LpS zKi%v0$Kob-A1!28SU{L)D~Vy|iqeW1)P<;x-bmYXRrH5ki@oij%wojTis3;~y`W~O zT351zBl+?vlHmVe8Og-Pqi-03(j=szz={B(o^yOw5d z%)>1S#*C{yJi4?1N$sZ0#RjHu;!vAx>-$@u?;K_Cv7B;TRVK=YkT@RPu?;w8OQNYdn5Ie?b&MiCSxAY>FVCnJ0`JbgBg|5J% ze$977R+!Z#sV|TJf^R4HXsUW&xC|$(*pSCrGxUT#poz(Ltskkh-|er1aTlZ~Po{w# z6cnBDLg{#xY3|K?h-cBf>hC3QIF@Bd;`PTD%w7+xKv4lj!ez+o{J9b3iuFn{LhMb8+p;MmJ+wRzJpFqIIy!aCTZkF zFadfPil8lPwpy+gGxB>S;dj~M-yA~p&w7Mnp}P@lRskPgO9w~r8Aj|-4^{5n7eCoIVI>@WZN!ja^mvbh}Otw8;ci zwkW>@=yY+w%qo3Yv$|zqy1^64M@g-pPnM|sxVLq%|@fIVl{5!ZA^OKrQN4K4kEWuh;a$SbN%aXl_e;!HWlzZmz29mzxf1&av{}s&tplnZJj6Zym+Car=}OOPSG*3* znO*JPT`bwQ_p%Bfg|*rNsG8&bs&zEE&bQx|qRX`|;f~cES)n0oo*SoovlxGEstKHE zHho`U@WS<-`%Y0Yi^y-0&3bi9D`5e~A1CK%h`gVDBI>^{>MF9GNp1b@aK z`l5q(vHI+bsb-dLuuCYkr%RJF7oX4K`A(|}m;5doY2C2|pygZcNuq9PLby(j0N^O$ zbxcL|-Ej1lTIQbTw8YvmQ_T3`kk-9@y>?6*#K8466_jlhwK4?sbJ37g+X}g9BrR(U{ckQy)fyH3%g_yCC!eTOKk~9WJX4zb=XNUoO5wp z=t0z(PPt!@QmDbEIoMacVzNSA96D}o33>*j|GDV3{tAt$>dDZL*rT<<=hGd%e45u> zfQ7>J1uCPUZwUoR*vUOcN)FYS-wpa46$>5;&_W1c`Otj85o$T1_}*z{wHZHw#14zG zz-$XP^`jS_S(WMEKmFeY5xX|`|6c(SL*9Oe5ca1-(&@=uBPr3Gf3G9Fgf~N^U&Hs6 zRg$?;{4Cm?UP$6wUKQNnkIZ(=@BbaM-q8cXYhZj)0eNeWv-6f%X-?gnaDre_R1}A zug%l!%Lm6_p}b%`PDmivh>HuhxGf0o7e?}SMudrAkw+yEYsq<6weo&O6THGjI@&aS zvf#ntwSbyX-~vAMKn&LR?|oR`UuT*36DFW+E-mw9Pm>;bvP27q;SWA9xF>LcCzd)uf81UHI*01 zqgUkQ`U|Rib~;9~v9ZJHi~H3E?(uLbS-%ETSGKVBGntmWw)$80`Zyxm z=4)|N<9wfVs6?7vGf=F%-+r_rC7v$+hVy*Bi1)Kch->Bd$<$#1wsl3qJy9stSj(<* zdw5_0tt+>=#q-7Su+gphvIlGg^sh7|b*B``wxBn3N!&1%!GgTz#-06Qu%YSCZ@ZOt zpVnYDhUvu;o!V7AoQ(LRz1~bFzbZRbIspyfDE}D*wki&G4jKl5`LpxL-t|Bic^8yq zg5-kwF|B+<7=3yNwes%n9d(C$A+WxDN^Qlq0fh<0%1=zxiu?y! zRZj2vwW2$e;fC|q2#XlcutMMsM$2*X#k&Uk>-tr;+j+gC+5%cM&rQkZA!&rpDt@sL z?xqJ$4ciMV)#FqOpdpUhkfwh-4nS%eqV0RJ|Yn*s)g+?Oz@ zdXwUwVIL%t_h1~X%f(u1t58ezm1cz)AJ=)ekMfPTnEj#ngohI(`!-JUP&b^M(1NP@ zv56`p3EyUrb9!ZO0r39I%`^Y+xuyWcF zlLe!HX1U~1Bbprp2|oq1fJue@)z47su#r{gUrnm{j4Q8;diUjvQx z)cqdZXchK9TeOe95bcc+&uZ6c?pfbovPtDU$gX^@noiJOiJIRX!Hr_uX?)+g`N-68 zaes+SNpi1D-MPtaY-H$rpSGeIYFqpAKf+*VJu7k03Gv0cgQ{g)Q2e_{ZBVq*ri;n>b^Vd5|8kl`FZe}c(VE4oO9n+8n3QLCyG z^^gV_!X8AjWfElSn2{d52C?A^YdbpeL9lU{Ri$#J6tsD_^m(eK#aKU=5bQf_wMlg* zReiZNW0*_xuD@V%fu7>iS3c&=z|Jo3JWr1?SUNxjr+v_l#&K6{$2tZ!8p4Rz@uc2{HhZXL4^=E@-8*8LH{UN|qu@nju`WK%$s@LL1KHMM051O@L7#T)U+;-> zLh1D$J^7YYY5^59Vr|bp#x8))fP~z280JaZ)0fFDZO4 zpzIY>A^eDW^HmeRxXI=xX7u(ooqW1!BYw92O<(in>STpHcG%MEMS1O|n@h3#xzA&Uri;t{r&GAqCsUjAl^^90{A(ZeAJCUvA34xm zVDeqkp*x(DF?{(Sc9jwCufPdInw8(G%FX$vQ&JN5Wv4aE*Lv_Wy8E%dUG9}`uC{Gpj}IClB}!{MUOYTqYIZ1qLfTjv1D756AUBEoUH{RSvy41-_=3jyBHN%euSk^NH z{m8H*EJozGSlV!yx2h*f$)*yYZDfXxkUQU{>>^=dylsk-&(*oC=Ib7*$pm9q7NJh( zU&}EX^WhpCL-*8ajfSD;?=da}NITi%aCpn$Wx0t4!#&y*RY1G;T65&YnEkQY=*LCX z?1Y>$ErS*G!PR1@K1yH5-MXX*v5M;Z?YJw2J@T@eJk8^PD$UKLTAbsl9<3M#&es9! zt%>1$sFWfO*8UwYn&FSk)=%G(I8H*6Ewe$4ssk}aQsd2SEz=i{HB~V%2}nMFu@0^g z?7C|`-BgU(u!Pzw;B3Blgd5c$(d(8UloaEe-%?GT!UuUeJ7uI?+&A#g_g`t&xNC4 zfAOsD9`p>s%+SUn*c>t2@7R0xJCM2#_<2eD0M)ID68%?@yd3M(#9~-o1?uRbi2S*%13`&{;}tOrw&zvYR6R z#U;to^rXt_IVqIFQSj~{BFr_hO{c0o6AMEbdz`!O;x?Dg0||oXdOnG~q0xXtC?1eL zspgq&R`JsoZNs%{8htMqeVduqAR#181iqQMKZ$!@%B-6T4`0A<`#QJVim~g%9YXiI zA_$TU;V6U(ru-1aXZWA+n3aeBkMNjX$Bv*Vkl2S}9>ox!ZcOhF>azj7_%QP#LHvw} z9se)jF;Ca%GpyUM{soWeel<}27a|bJ?#Ef)LX2(OUmd@&f-A{FBi{ALTfdMc;9K@4 zI`DMrI+=4Z{dIEs3rGq50|(#MP>JzZ6{F8WJE-88^;>%h*gtRQ|M6D{3}&c*4Tbot zry~&jEK`zYlGIO};-5_XJZBu2`bCW&Oy8AafcPi)>@WIWpDDmc6gl}3K7VGX1$RUL z0Gbl5RMPxp=od;$><0>Pt;9y=*Bj#tgH7XG1rx$wJ%2SuydV$Cjn?XXq2(hcjVtnF z-NF+|e$n=_mI6P=nW~ZW6W#jPV@O{h#rfj`347kwK@^k=cy*XE))27%44VUgX)zYe z+!0T8O~_xcm0x4=&y9{ha|_rc{VbpG@9h0CO#l6@pAfK)P@#HMFm&_r!_VvfUvSNT zX$ZlBrKkn%pNIN?wwqr5&|C&MX8!~r{g+?)OP*c=^j`dSUVe4{56JWXB=$#-H)r`T z(fVz}%le0$)+dPL{F5mCBJ)p;_T=fG(*8S^!O-CPAJAZJ8Pc#{3;4Hj5UC+V+d=cMYXJP+|tS^OE1xAamvYKZLBqGB{3O3V-?7wmm z{C04`a71z>4)6N@wd+c=3c(Be1*~$=g~08c0iFA<5G@+T@8AFD=!irJX}~NU?S9vJ z7p#ry+KA`{P6&A89+9yS-T5=R^7pI?1tLRBx8wc^3%O8}QTrqPmJO=(OO(HIjQpN5 zQ4X|k{z@2arGq`Q^}%*x@$DH2UqeY-bo>88PXZZQxgEEnoTj}7IZb0}2z-q6_^l5d z42|#;L->1wZK6b$FOM}Xq)*2)gSnQ%87o*Ec?3WeU`W;PANX@@hm=kq2@LTYuw`+p zq5?Kco+SSrQzB8%UIMOa6i=L@S2+LOK>YJG{Sgp*WM&BWk6_7v{`WuHLJ}y@@4#uA zgI3++N&Gp7)*@KPDmDp;xg+q{{+0m0R|UBG=CN*AJ|RwN)3ZOK@T02#ckzDp<2f(w z(~I;t5&;or#chE%dp^?W*fM`Y?*GBr&lUJ*kMCL*;b$%YTqqE8TEd=E&XBIv$MDAgG{1lL>w@F_0MjaD z18rNE*gIBC^g~4`Im2!}D{$3+Cx>9~1;wiZvn85E&2aZ2dvv_NgewAE-}C*K22rAxm&cVMm7BK7atCF+kHmGYdZErs+@G2lSXJ?$|89ame`18trw205)WD*u z;;QL&H4n@6HXWL}Gq3+F7y4V(3&!V45Pf`koO3hNLL!DboMpKwRmt!tCSMfSVl z{l_};gzQi|k#oJi0%IRDUke}{faC4;8h;>re^2SpC%rxsBYp9{5+wmH7bCUczk9E{ z=g@-7qTK8C_Yy?~KFV<#zrN*)TfTzcSvh>w0r)#Q(DY#UYw>&&shv00yB-(n>z~mV zzn?jx32;1u(=gUQ#VY?^uzxH+?RH*01E64O@Tx50@#hwA?hk**#|L7tj=8Go1!oH8 zZL=p147ielF*~cI450qIr-;0eNWjn4yIaBJ!5^+C7TvzkNc)nItmYc{E5*rgrI%QY zNap3Su*U6KNJC}0X<3RYxkUO^D5cN;LhdsO5;zmvBx^+@(Ti4eWz`3e)csncZZO{8 z+J;Y%B0)kLua|adrB15J#JEuZxUsXmdrKvY-}`S~_P;K2vJ5gLC-1ASfN8^a-5{w~ z1&oXxKK-v%T=@P@cEIj7J%m0fa2{O4!2143qU&luH!btel(;LpjtmjMpWa`_GxUdv zhxPahiwb3K(rb(37s66eDiu8}`uB73nG|fXf6Spip_}nOWGeR;*kp{duHI5^ncs`a zPhIHC;#Gm%5*gz^Fpr|3uIeYhL@mzESpc`WA7}V$2l2ZX#`iiwZgI?G{S(^xlmCCb z-O7{cv2F%wbD!IAxl~bVa^O7QY=H*PjNihZiLG z2qd7ok~Ina->^lb&<#m+Qnohmc1-v`vn7-f1ue9qE7=%S^EYgL5<*A))Ycr#N+=2S zJBI$^^1lQ2Yi9pDV83MUzY_LKcl>ur{?cdv)nUK%?SGa2FT43)EBVW!|JSYf>HPfH zt@y87@yna|)%gFNThX>ehE$pfo5WAA8+Y2jz z)%iH|Q+#IktXLmb{k7LKXcZ{0BuGaGM^T@ z39>c3I))i@EOiHDxp2lA%zJCK8<$Wt?`P1y^3Nau==N$2foJxH1=yP*r9>N_^nEj> zvikH0 z3I3&aq)%=0J++xn><*{J13|l63(^-6l$2Iwea-Nsp=SnE9`qK53MOg(!*m;LD`N2t zOM;M01#^NfehJ_KJ^+Asa>vK_q6fkm4iM}U+-wr`J#~uxjM5>jtTk12a+*u*n##)3 z?3GxPoNS8P$}tr3@+v#tSddF`2A^<|kf7gNQ?#{_|JYDozX4Ac>^H5Z6?j0Np7Lp| zc)Dk>o+ikC*%nJ*14VU7R+bbW|3E)Edu^EVFj^vo#}!e@TWnj~@=YE^lQ8Q#Yt2#q z_ZX%Qq|t+D3%DYXq&RUB(F&;-7ohmqT3*2^T3bhe%gX+SPL>{UjV0m-+_eAt-0NzI z5i?ea6NlHekY7=BmcDGgR#7W4Eh9I$=4IdOv-}rR#+!>S&F533vArogPEvPNxrS)gq|l(yHYWevOG$H7mr>R4~``oYX#T zov(?XdDSOG!oS_A3JI_SHQPt9j$aJOdq{r4Iff>MW0p16>rHku%P1B;BX3T{ThtFm*MVaE-zYF;_(6ku*^b174h-tNo6!< zsCGstV|Dx-3D~)iQ`E46{clWvj?^vpAl03*3Vx?9FDO3@&j`!V_Z1E-Acl!o!UPFh z%L?Xkac!xw*F?w0o^jJpJ{NJ=v1e^NHJ5q6amF{tIfH=@)~z(yDF5X1JwAW>?@>{4(;WP z5dGCrR*Ya+D8mjq)+%k_-?C36hFTDDQKiw*EyI?y=5uGfN;~l%Qx1M%bM_-*W@!#B=oi7Cx zGj*I0C%t4`vvjj*GjU_8U$(qDNzE-pPLhqY4gHuC&faqO68;!|X^(sBSZ$c8g9>S0 z5OaqN^w)5DHPw0S0Wd)mbfM!r_f7AX)WZeAqdT@i0CCK(u11q#rbUN^%AenYW!k6QBK!Pyeo#Hp zg~!n(vqiTv4{!&1ZC~x4>=<~>O|$}7c0fS+L?lWIo@NBc7=MPQ&~UcIh5V;W?Ay(f zbS*4>U;Uo1_r=h)Ai`Rilrdb*;OWHMrTOn>JnXea=qhY!85ECGe2>vk_qBr`KP7!2 zT;Qtp;GjIIBZx{wB$1j=BqN`m6ag`HeCvI4uZ>!q-;*b9E<;wpq1IfCoSr*q8ONbS zt);DNI@E60L&Imj~hEw+DF0 z<1x8)25W3@vuhnw1VH7&1%&gOQu)(n^o@PSoMPDS$3|I^RA5bNn}SP)yxmmUAJkx- z!wpa_tkuEVwdD3XSv7QoDciQw!@2|*`<-`);+GqG?lnZR8W?R8mX_wf7)&A9QvG&r znZ$y-ufvd_E|vYxfC2`Aw1;>@xpnYneqmA8Af!1}E2p|AGj{KldT=t_I}emiP(@I` z{fqhlW@ER64L(WCHS#;8Bh*G+*bG1sAU{*|qmcS4r8)3zLD}iE>3VT%X>;d!rz1fY z>?2+^Ge>gCU6D;XV21muY2zfqglPb>buj=Z)qw~dP% z(+r@ozTh;|(z~qNK?f$6MTQykt_rkx-8J^~Ku-2HA}(9K;H>5&SUHQ?sN?8faPTxp zPJ1#*e*0=LHFct*n9P6=kwoxpHTHosrfHSoBz$7R_R0BEubRPA@8w6I{cG!|c)}u} zTzUFB$FSGkdApqUhZ@o;yJYk^k!<`?d}Y7UCv3yx+quA5rPKFhQxl?xYno-+)Jdtj zB=K>_NcdV-b>Q1zU0+*Q_0jw-LDZ)0CQkoraDg6USUP~2wN>U; z-fhPJ!u?#%ud5J6^h{bA+iCYNcZ2L;2^-(}BKy0+ zwY0_}&}(L&j)zRRys2qS&0-e#nBPzp{PA;C{kMd&`gqEn37Ni+3JtGGLq*;dF(^ylBs;#K^AV#jJ4zgG2AXGS}A#jjjHw{ z8yh2Md{XeGI-EQ*qAGFIb;*`?UKB$^%5yP@vpNNUY)9FN#ZGU7Y99sOjlv{7{0ODq z5v1DJo3_>$=vo6^g{93AlwM*$D+)6M%Rctu+!vX620Hi5@nQN5xHtnO3j|IekOC`X zINFo3nZB#{min;cJhI%^%&`*!L3XL#CJY{j0%fiSO<8Lz4{r)gm4~#s*3*e6yL~*h z_W%-GbN(4weA%s88f*PhdYRFSk7Kp?Fkh{0cqg4cyV8&0Z>tzJE+?dHd1Ol@TOS{% zxYM1PSVZ~^JX!5aXtYB=R%Q9UuwlsO(}Hm1i2lbht6*ZdAoO5>EqV>9VS_2E+x?T zK1K{?!<}i$iixvp9mG-io2eNxp$shyP$~2CVcHNfZll!I3fn7>*Cf!CWhe#NS0~+K zr1>~vB>Ehpd2QU2rRu)l%qAfhF)!xW+KH_c3udny%}fJjZPIgd3M+>!^{9wtsetxv z`mAP0>5hc`Lgx?8Yd+p7duBx6BGhqFAs?*i`;DmApozRVO8$7vd0?1oB~?~Z&5|d| z+wk4)^Df*a-kx1abjY~r2kTnkyhh7PWAmrBAI6ThY?lcTl#zEXIv@^8X2sH=Ou23_vb7H!Be$k?>z%18W^ir?8V=n?Bc<{ zTb>!OVHT7#Wrg}6MAs`vyf=dwI;A`uDLO#~O_SQfnx1dAcR@wYIY>DcYs9E%r?}xI zj+KR|1f<5O7*<>t60H4@Bbz_;*5#91!b_JlDQlBR@weMlrPVY2sle^k=jPNjz8I+1 zI;LhO7i{zvFGWxQ|md_tY zK4vI#Hl*&YITbbfI+@=Nm}zY;vdam&d2Vl%?bxS&iQtC;3oVW!A>IU8!Ie$A*t%Bl zbndQVlA~^lVSDDGjTF9TtTo%Y=#5n(VrL<)U2=0J-`m0_1aowm(+0}!)~D)^xDyS7 zC=wN%kw8>@>>UtC8cUW+4m}$vzSg!8UG^v@38nW@9tRMI0}(ki!y40wo&0f^XW_U} zcUdDLr_$w0U}33@*UmWfPTyK>c}_ZjCzuvmQ%cMvXd9wB+`VB{&Ab@6#9ND(Pk^}Y z$XOS6?Q4T7)d)|FuL84Phez3Hl|pDr9=j#5$F1MYWUagh}R~(D?G*8YK`3ZiBMJfF&4#1$+_ThYs6|EvAOqRWVuF391S5!8Uq_aXT z;VTuFIuP4t`u_c36~}d;-FDm2bP4)muhxvocg&BA8;8=CN1ZeN7~59KXXW3Xm*b#% zTOp8k&QDH0;u4pQ?i5N+KQ|!O!&yaNkiyi&s0rtKtp&ereMy=;o52SAwC?DrqWr<$ zPl#j73}~4d=mb?S&%Yo*y*Yy8=yTzeH&K5%n(1U5ZvU`e8qfE@HZV(NpE6&_Y|I-= zn#2Bmz%H$t7`;d_j@qN!@gBWwy(paxTY-DbRW0YBiZBugi;usfa%&PZ?^uTGpBTpj zHF!L+fF(=kx_pxbH*(%-a|>_bfh97Ks${5#jl5meZz5wpqvBU(T@k`v_tdOmB&}+* zITdIqA&5bBadtz{XLg2>tTy*Pnrk#^!O7S-RAYW0&BCp)t9z`n?Z@J-^CKLDmjB^W(10a(N9R!YK|6dkLzjte z%3e}CLvnQNH+F&U02g`4j|t9`ur1l8+vCQ)h>6BP!<5I<{I4ecUmhR88^*6QRq{H> zP#O)U)^upTI+o6NJCO{TLT*Skv!v91*_q77SJ^YI$NDF)&s<&@#n)obXAd#tmT+Xa z>|2rojE~H!<>y24tNqyzpvVV}I9{|RWrSD)#%rJmGJ%G$$vQhoXBJSw+CIgs1$HF*0PB&lv)A*RMsBWj9}2=MS{>^a&1Tjp^coU1Y^n@#jNL$@7;Yec z&w1RI%a45(g2vWgSRvi4_}xnijV#U<>o^-_prg)}*{WmMtj4QS%X{Jw_7p86oKtLO zgd2S0otr9~Bxo&B1qSPCvuZ5?afb%I@VHa(^Cgu6lKUo6=jjLcjyp!27^WXw^=A## zS$gtJnt;jCx;Z)}A0@T1!#=wtpI>ayl~y51-fwoix95PF-^iH}(e*`C;h`ZYh&gxQ zHLWu8IxNQAODC={H(x)rDiuloz_pZ@IG+DOb2f4Y3eF&OoK28lR9Z4K9Jg)_p+@;# zye@7+Cs(JwMl_u(h3@=*;JA_0?Z~N@tF(i;ev%1>I{l5+Oe?^AU&-?M(AdQ;vX*L< z9URvTCU~c79bJ8~2QfIrc$Sr@S!lk8v-@5?!csi{n}|upCWppG)^Skya}IgqaG_A= zdFoEGQIb;FLwfEh!7O78g(0rjRNW&^We;Vz%mNp86%QlFvK+$f?Q^&RASZiwspA z32-$4{*J9;Ncg9!^XwI8ASQTgef0=fJ)n!Q?G}jZ9WCVxuS>bAjs|gKsL}JhE`}he z_w)T)ct^#UqtP3^JIS4trdg9{x(>!n(b*L=4{~6Pj)&Hf^=>~7uU#F5O;EWK&r$OBdq3Faz%2XmH*c8$jeylzX zd|jyY4iyoyX)~{blfgxVJ$wP<#pi6S^+wpVZwz6~j}Nmkl3|n>O(S81uYuTdjhDujLl5@HV@4m?SPf^lXOHR4L~0_zJJ?C~mmy1YxTBi#blRW}}O`(1UVQLt{X4a&)kM-AzF zZoT!Rjs3*l4{?Uvn+os$>I}((C z8)Y4u=Zf95iFBqID0FJUBIpz3-~)*!6OC4VgZj1Dqt9^8-70aqg zdB%fZJ#0Qu_CqQ+>vn-~0ZzROy>jDXm^VjtWSZT1CnJU4{b{}RH)A%;coK@i92XeR z7{}eGn1@{OMw{`Ov}5rH)H?P2-HDoW7-eJ*VPK3bQn29gL(A|(I#&FB?F6N(_5PW_ zA-D>!?eew>dzgbmMK8+`t$_79e!Ke=e*2K2sLMx-;pPWs&h^LgbZ7lJvY8NN%VN%5 zrXb^UgjP`yK9_e@DtohWG)42V?lvx6sB+k0YOhM2(2EB6+=W+2fZ2X2toooryPbSE z%AQ%x=&CjE>)Lt86?f%~2mjQ5&=CU+arc58f*r5fo^AhG1XVwFz#DGT`C9^$@gh0H zk6=7DW3l#%?znLI*9$CM_U}(>yBp)fqbX7%3C?Sm0PwaTOd0uV(2^lT8fj{_K4o70 zbm3KMnXn&IL6o1{CJciSd=na>6W1zV(BSie)lLB@dXWF(KvIEkqV?RIOOGAtUW!^h zOz8M08uniA5;02posV=wi|^c$oD4eVhu-$^5!jIB2~Ul%ylNnA0gGbd3POHF{YJ=K zKdzh!Lyl{kh$uWOqNAl=!8;~Kqb^r717E~T+c0cxWr-6E&C`?F)C+Tqzz|@Uh2M#C z?@@)h_g0G|yU1Wm0#Tj(?t+*4(I!jM%22JmMwcP{LC~tQRC}gQL;@|Wk!c9D(dNAk zi_3dLCM=}c@Y@q#76A%_#~~A(J^^f&#iH^9$FBXWsPdAB+1~lmLAxO{f$qyevs2=2 zuZI!TsU=6gP>t8jDNsuIw${>)BxJHjH`xZ!ww>>8cnNgUu=B|MthQJBOXZ{t=DP-04#8%0Apt+^*Vt1nLC<4*`px6Gt%O&yh{f`FSN{ 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

)fHb%Jz#Pt;+dnu33DccORnf>dQ zB_MUv$^Z{cIy?DwpLfe~n{s&twTGw2Uc|~_E+gU(Uz(-T8?SmP|L(EQ=Oy8Eyzpcb(Y zlCTS^UCpj=6|brD`G(L)Ft%eH0xFtyeCocY2pnAg*uQ@+#$L&E)5w zBhGUGwwks0_q#Oi6`mo(fyeTOj2dTQJI5gu`fuQll&3pXd-n!GM=Xi^>BanqGO9zr zbzxwKNYsE{_~wFNLhZ@jyRau07uNGm@hu&^S=HiqjFpWS;T6d5`97w9;M-a|B@u|j zeoxiCsju1w-q5|lo$sqPh7raag+zCvHYTxQ)h0V3(FJVxBZ3}en_3EhgZetXXUR!NMDlHq%415`xc_Y zLe2WVP4Tn!aZ3|e#$1#h#|RZ=IxkPwUlLit*!uYP{Br@d(G+fqgKzj1+?N0k(*b-Q~l7d65geyhzpG?;HNT=xt#E2$7T_Cb-+?|2o2Y2nayD4TgXF zd(rD>*((F5sd92RYJUy0TZ+woT)6-5MgOogz-P7w-8K3(&0WNc%WU=@bK(C(boS#m zZ8)(b_SZCb5mM1?HfNg5E{T5)OX`LGo=7nB+cQDIzoxkx4IVa|=c4&8iNCZb1>d`u zM9&mH^>0h%FEkFa*$3~X?UMLQd;bOc7YM(I{{sE*R{H 0 { - if err == nil { - fmt.Printf("unexpected success in LoadCredentials test, iteration %d. expected error: %s\n", i, test.expectedErrMsg) - os.Exit(1) - } - - assert.Contains(t, err.Error(), test.expectedErrMsg, "wrong error message") - } else { - if err != nil { - fmt.Printf("unexpected error in LoadCredentials test, iteration %d: %v\n", i, err) - os.Exit(1) - } - - for _, expectedUsername := range test.expectedOutput.Usernames { - foundUsername := false - for _, username := range result.Usernames { - if username == expectedUsername { - foundUsername = true - } + for i, test := range tests { + t.Run(test.description, func(t *testing.T) { + filePath := "/tmp/cameradar_test_load_credentials_" + fmt.Sprint(i) + ".xml" + // create file. + if test.fileExists { + _, err := os.Create(filePath) + if err != nil { + t.Fatalf("could not create xml file for LoadCredentials: %v. iteration: %d. file path: %s\n", err, i, filePath) } - assert.Equal(t, true, foundUsername, "wrong usernames parsed") - } - - for _, expectedPassword := range test.expectedOutput.Passwords { - foundPassword := false - for _, password := range result.Passwords { - if password == expectedPassword { - foundPassword = true - } + err = ioutil.WriteFile(filePath, test.input, 0644) + if err != nil { + t.Fatalf("could not write xml file for LoadCredentials: %v. iteration: %d. file path: %s\n", err, i, filePath) } - - assert.Equal(t, true, foundPassword, "wrong passwords parsed") } - } + + scanner := &Scanner{ + term: disgo.NewTerminal(disgo.WithDefaultOutput(ioutil.Discard)), + credentialDictionaryPath: filePath, + } + + err := scanner.LoadCredentials() + + assert.Equal(t, test.expectedErr, err) + + assert.Len(t, scanner.credentials.Usernames, len(test.expectedCredentials.Usernames)) + for _, expectedUsername := range test.expectedCredentials.Usernames { + assert.Contains(t, scanner.credentials.Usernames, expectedUsername) + } + + assert.Len(t, scanner.credentials.Passwords, len(test.expectedCredentials.Passwords)) + for _, expectedPassword := range test.expectedCredentials.Passwords { + assert.Contains(t, scanner.credentials.Passwords, expectedPassword) + } + }) } } @@ -183,74 +174,69 @@ func TestLoadRoutes(t *testing.T) { routesJSONString := []byte("admin\nroot") validRoutes := Routes{"admin", "root"} - testCases := []struct { - input []byte - fileExists bool + tests := []struct { + description string + input []byte + fileExists bool - expectedOutput Routes - expectedErrMsg string + expectedRoutes Routes + expectedErr error }{ - // Valid baseline { + description: "Valid baseline", + fileExists: true, input: routesJSONString, - expectedOutput: validRoutes, + expectedRoutes: validRoutes, }, - // File does not exist { - fileExists: false, - input: routesJSONString, - expectedErrMsg: "no such file or directory", + description: "File does not exist", + + fileExists: false, + input: routesJSONString, + expectedErr: errors.New("unable to open dictionary: open /tmp/cameradar_test_load_routes_1.xml: no such file or directory"), }, - // No streams in dictionary { + description: "No streams in dictionary", + fileExists: true, input: []byte(""), }, } - for i, test := range testCases { - filePath := "/tmp/cameradar_test_load_routes_" + fmt.Sprint(i) + ".xml" + for i, test := range tests { + t.Run(test.description, func(t *testing.T) { + filePath := "/tmp/cameradar_test_load_routes_" + fmt.Sprint(i) + ".xml" - // create file - if test.fileExists { - _, err := os.Create(filePath) - if err != nil { - fmt.Printf("could not create xml file for LoadRoutes: %v. iteration: %d. file path: %s\n", err, i, filePath) - os.Exit(1) - } - - err = ioutil.WriteFile(filePath, test.input, 0644) - if err != nil { - fmt.Printf("could not write xml file for LoadRoutes: %v. iteration: %d. file path: %s\n", err, i, filePath) - os.Exit(1) - } - } - - result, err := LoadRoutes(filePath) - if len(test.expectedErrMsg) > 0 { - if err == nil { - fmt.Printf("unexpected success in LoadRoutes test, iteration %d. expected error: %s\n", i, test.expectedErrMsg) - os.Exit(1) - } - assert.Contains(t, err.Error(), test.expectedErrMsg, "wrong error message") - } else { - if err != nil { - fmt.Printf("unexpected error in LoadRoutes test, iteration %d: %v\n", i, err) - os.Exit(1) - } - - for _, expectedRoute := range test.expectedOutput { - foundRoute := false - for _, route := range result { - if route == expectedRoute { - foundRoute = true - } + // Create file. + if test.fileExists { + _, err := os.Create(filePath) + if err != nil { + fmt.Printf("could not create xml file for LoadRoutes: %v. iteration: %d. file path: %s\n", err, i, filePath) + os.Exit(1) } - assert.Equal(t, true, foundRoute, "wrong routes parsed") + err = ioutil.WriteFile(filePath, test.input, 0644) + if err != nil { + fmt.Printf("could not write xml file for LoadRoutes: %v. iteration: %d. file path: %s\n", err, i, filePath) + os.Exit(1) + } } - } + + scanner := &Scanner{ + term: disgo.NewTerminal(disgo.WithDefaultOutput(ioutil.Discard)), + routeDictionaryPath: filePath, + } + + err := scanner.LoadRoutes() + + assert.Equal(t, test.expectedErr, err) + + assert.Len(t, scanner.routes, len(test.expectedRoutes)) + for _, expectedRoute := range test.expectedRoutes { + assert.Contains(t, scanner.routes, expectedRoute) + } + }) } } @@ -295,58 +281,59 @@ func TestParseCredentialsFromString(t *testing.T) { }, } - testCases := []struct { - str string - expectedResult Credentials + tests := []struct { + str string + expectedCredentials Credentials }{ { - str: "{\"usernames\":[\"\",\"admin\",\"Admin\",\"Administrator\",\"root\",\"supervisor\",\"ubnt\",\"service\",\"Dinion\",\"administrator\",\"admin1\"],\"passwords\":[\"\",\"admin\",\"9999\",\"123456\",\"pass\",\"camera\",\"1234\",\"12345\",\"fliradmin\",\"system\",\"jvc\",\"meinsm\",\"root\",\"4321\",\"111111\",\"1111111\",\"password\",\"ikwd\",\"supervisor\",\"ubnt\",\"wbox123\",\"service\"]}", - expectedResult: defaultCredentials, + str: "{\"usernames\":[\"\",\"admin\",\"Admin\",\"Administrator\",\"root\",\"supervisor\",\"ubnt\",\"service\",\"Dinion\",\"administrator\",\"admin1\"],\"passwords\":[\"\",\"admin\",\"9999\",\"123456\",\"pass\",\"camera\",\"1234\",\"12345\",\"fliradmin\",\"system\",\"jvc\",\"meinsm\",\"root\",\"4321\",\"111111\",\"1111111\",\"password\",\"ikwd\",\"supervisor\",\"ubnt\",\"wbox123\",\"service\"]}", + expectedCredentials: defaultCredentials, }, { - str: "{}", - expectedResult: Credentials{}, + str: "{}", + expectedCredentials: Credentials{}, }, { - str: "{\"invalid_field\":42}", - expectedResult: Credentials{}, + str: "{\"invalid_field\":42}", + expectedCredentials: Credentials{}, }, { - str: "not json", - expectedResult: Credentials{}, + str: "not json", + expectedCredentials: Credentials{}, }, } - for _, test := range testCases { + + for _, test := range tests { parsedCredentials, _ := ParseCredentialsFromString(test.str) - assert.Equal(t, test.expectedResult, parsedCredentials, "unexpected result, parse error") + assert.Equal(t, test.expectedCredentials, parsedCredentials) } } func TestParseRoutesFromString(t *testing.T) { - testCases := []struct { + tests := []struct { str string - expectedResult Routes + expectedRoutes Routes }{ { str: "a\nb\nc", - expectedResult: []string{"a", "b", "c"}, + expectedRoutes: []string{"a", "b", "c"}, }, { str: "a", - expectedResult: []string{"a"}, + expectedRoutes: []string{"a"}, }, { str: "", - expectedResult: []string{""}, + expectedRoutes: []string{""}, }, } - for _, test := range testCases { - parsedRoutes := ParseRoutesFromString(test.str) - assert.Equal(t, test.expectedResult, parsedRoutes, "unexpected result, parse error") + + for _, test := range tests { + assert.Equal(t, test.expectedRoutes, ParseRoutesFromString(test.str)) } } -func TestParseTargetsFile(t *testing.T) { +func TestLoadTargets(t *testing.T) { oldFS := fs mfs := &mockedFS{} @@ -355,65 +342,90 @@ func TestParseTargetsFile(t *testing.T) { fs = oldFS }() - testCases := []struct { - input string + tests := []struct { + description string + + targets []string fileExists bool openError bool readError bool - expectedResult []string - expectedError error + expectedTargets []string + expectedError error }{ { - input: "0.0.0.0", + description: "not a file", + + targets: []string{"0.0.0.0"}, fileExists: false, - expectedResult: []string{"0.0.0.0"}, - expectedError: nil, + expectedTargets: []string{"0.0.0.0"}, + expectedError: nil, }, { - input: "test_does_not_really_exist", + description: "not file targets", + + targets: []string{"0.0.0.0", "1.2.3.4/24"}, + + expectedTargets: []string{"0.0.0.0", "1.2.3.4/24"}, + expectedError: nil, + }, + { + description: "file contains targets", + + targets: []string{"test_does_not_really_exist"}, fileExists: true, - expectedResult: []string{"0.0.0.0", "localhost", "192.17.0.0/16", "192.168.1.140-255", "192.168.2-3.0-255"}, - expectedError: nil, + expectedTargets: []string{"0.0.0.0", "localhost", "192.17.0.0/16", "192.168.1.140-255", "192.168.2-3.0-255"}, + expectedError: nil, }, { - input: "test_does_not_really_exist", + description: "open error", + + targets: []string{"test_does_not_really_exist"}, fileExists: true, openError: true, - expectedResult: []string{"test_does_not_really_exist"}, - expectedError: os.ErrNotExist, + expectedTargets: []string{"test_does_not_really_exist"}, + expectedError: errors.New("unable to open targets file \"test_does_not_really_exist\": file does not exist"), }, { - input: "test_does_not_really_exist", + description: "read error", + + targets: []string{"test_does_not_really_exist"}, fileExists: true, readError: true, - expectedResult: []string{"test_does_not_really_exist"}, - expectedError: os.ErrNotExist, + expectedTargets: []string{"test_does_not_really_exist"}, + expectedError: errors.New("unable to read targets file \"test_does_not_really_exist\": file does not exist"), }, } - for _, test := range testCases { - mfs.fileExists = test.fileExists - mfs.openError = test.openError + for _, test := range tests { + t.Run(test.description, func(t *testing.T) { + mfs.fileExists = test.fileExists + mfs.openError = test.openError - mfs.fileMock = &fileMock{ - readError: test.readError, - } - mfs.fileMock.On("Close").Return(nil) - mfs.fileMock.WriteString("0.0.0.0\nlocalhost\n192.17.0.0/16\n192.168.1.140-255\n192.168.2-3.0-255") + mfs.fileMock = &fileMock{ + readError: test.readError, + } + mfs.fileMock.On("Close").Return(nil) + mfs.fileMock.WriteString("0.0.0.0\nlocalhost\n192.17.0.0/16\n192.168.1.140-255\n192.168.2-3.0-255") - result, err := ParseTargetsFile(test.input) - assert.Equal(t, test.expectedResult, result, "unexpected result, parse error") - assert.Equal(t, test.expectedError, err, "unexpected error") + scanner := &Scanner{ + term: disgo.NewTerminal(disgo.WithDefaultOutput(ioutil.Discard)), + targets: test.targets, + } + + err := scanner.LoadTargets() + assert.Equal(t, test.expectedTargets, scanner.targets) + assert.Equal(t, test.expectedError, err) + }) } } diff --git a/models.go b/models.go index 79e67c2..d620a2b 100644 --- a/models.go +++ b/models.go @@ -1,4 +1,4 @@ -package cmrdr +package cameradar import "time" diff --git a/discover.go b/scan.go similarity index 54% rename from discover.go rename to scan.go index ca1d251..a41bae7 100644 --- a/discover.go +++ b/scan.go @@ -1,4 +1,4 @@ -package cmrdr +package cameradar import ( "strings" @@ -6,7 +6,7 @@ import ( "github.com/ullaakut/nmap" ) -// Discover scans the target networks and tries to find RTSP streams within them. +// Scan scans the target networks and tries to find RTSP streams within them. // // targets can be: // @@ -18,28 +18,30 @@ import ( // ports can be: // // - one or multiple ports and port ranges separated by commas (e.g.: 554,8554-8560,18554-28554) -func Discover(targets, ports []string, speed int) ([]Stream, error) { - // Run nmap command to discover open ports on the specified targets & ports - scanner, err := nmap.NewScanner( - nmap.WithTargets(targets...), - nmap.WithPorts(ports...), - nmap.WithTimingTemplate(nmap.Timing(speed)), +func (s *Scanner) Scan() ([]Stream, error) { + s.term.StartStep("Scanning the network") + + // Run nmap command to discover open ports on the specified targets & ports. + nmapScanner, err := nmap.NewScanner( + nmap.WithTargets(s.targets...), + nmap.WithPorts(s.ports...), + nmap.WithTimingTemplate(nmap.Timing(s.speed)), ) if err != nil { - return nil, err + return nil, s.term.FailStepf("unable to create network scanner: %v", err) } - return scan(scanner) + return s.scan(nmapScanner) } -func scan(scanner nmap.ScanRunner) ([]Stream, error) { - results, err := scanner.Run() +func (s *Scanner) scan(nmapScanner nmap.ScanRunner) ([]Stream, error) { + results, err := nmapScanner.Run() if err != nil { - return nil, err + return nil, s.term.FailStepf("error while scanning network: %v", err) } + // Get streams from nmap results. var streams []Stream - // Get streams from nmap results for _, host := range results.Hosts { for _, port := range host.Ports { if port.Status() != "open" { @@ -60,5 +62,9 @@ func scan(scanner nmap.ScanRunner) ([]Stream, error) { } } + s.term.Debugf("Found %d RTSP streams\n", len(streams)) + + s.term.EndStep() + return streams, nil } diff --git a/discover_test.go b/scan_test.go similarity index 84% rename from discover_test.go rename to scan_test.go index 3d17f1e..e7eacec 100644 --- a/discover_test.go +++ b/scan_test.go @@ -1,13 +1,16 @@ -package cmrdr +package cameradar import ( "errors" + "io/ioutil" "os" "testing" - "github.com/ullaakut/nmap" + "github.com/ullaakut/disgo" + "github.com/stretchr/testify/assert" "github.com/stretchr/testify/mock" + "github.com/ullaakut/nmap" ) type nmapMock struct { @@ -23,7 +26,33 @@ func (m *nmapMock) Run() (*nmap.Run, error) { return nil, args.Error(1) } -func TestDiscover(t *testing.T) { +var ( + validStream1 = Stream{ + Device: "fakeDevice", + Address: "fakeAddress", + Port: 1337, + } + + validStream2 = Stream{ + Device: "fakeDevice", + Address: "differentFakeAddress", + Port: 1337, + } + + invalidStreamNoPort = Stream{ + Device: "invalidDevice", + Address: "fakeAddress", + Port: 0, + } + + invalidStreamNoAddress = Stream{ + Device: "invalidDevice", + Address: "", + Port: 1337, + } +) + +func TestScan(t *testing.T) { tests := []struct { description string @@ -32,8 +61,8 @@ func TestDiscover(t *testing.T) { speed int removePath bool - expectedErr error - expectedResult []Stream + expectedErr error + expectedStreams []Stream }{ { description: "create new scanner and call scan, no error", @@ -48,7 +77,7 @@ func TestDiscover(t *testing.T) { removePath: true, ports: []string{"80"}, - expectedErr: errors.New("'nmap' binary was not found"), + expectedErr: errors.New("unable to create network scanner: 'nmap' binary was not found"), }, } @@ -58,43 +87,28 @@ func TestDiscover(t *testing.T) { os.Setenv("PATH", "") } - result, err := Discover(test.targets, test.ports, test.speed) + scanner := &Scanner{ + term: disgo.NewTerminal(disgo.WithDefaultOutput(ioutil.Discard)), + targets: test.targets, + ports: test.ports, + speed: test.speed, + } + + result, err := scanner.Scan() assert.Equal(t, test.expectedErr, err) - assert.Equal(t, test.expectedResult, result) + assert.Equal(t, test.expectedStreams, result) }) } } -func TestScan(t *testing.T) { - validStream1 := Stream{ - Device: "fakeDevice", - Address: "fakeAddress", - Port: 1337, - } +func TestInternalScan(t *testing.T) { - validStream2 := Stream{ - Device: "fakeDevice", - Address: "differentFakeAddress", - Port: 1337, - } - - invalidStreamNoPort := Stream{ - Device: "invalidDevice", - Address: "fakeAddress", - Port: 0, - } - - invalidStreamNoAddress := Stream{ - Device: "invalidDevice", - Address: "", - Port: 1337, - } - - testCases := []struct { + tests := []struct { description string - nmapResult *nmap.Run - nmapError error + + nmapResult *nmap.Run + nmapError error expectedStreams []Stream expectedErr error @@ -281,17 +295,21 @@ func TestScan(t *testing.T) { description: "scan failed", nmapError: errors.New("scan failed"), - expectedErr: errors.New("scan failed"), + expectedErr: errors.New("error while scanning network: scan failed"), }, } - for _, test := range testCases { + for _, test := range tests { t.Run(test.description, func(t *testing.T) { nmapMock := &nmapMock{} nmapMock.On("Run").Return(test.nmapResult, test.nmapError) - results, err := scan(nmapMock) + scanner := &Scanner{ + term: disgo.NewTerminal(disgo.WithDefaultOutput(ioutil.Discard)), + } + + results, err := scanner.scan(nmapMock) assert.Equal(t, test.expectedErr, err) assert.Equal(t, test.expectedStreams, results, "wrong streams parsed") diff --git a/scanner.go b/scanner.go new file mode 100644 index 0000000..b34dd3d --- /dev/null +++ b/scanner.go @@ -0,0 +1,143 @@ +package cameradar + +import ( + "fmt" + "os" + "strings" + "time" + + "github.com/ullaakut/disgo" + curl "github.com/ullaakut/go-curl" +) + +// Scanner represents a cameradar scanner. It scans a network and +// attacks all streams found to get their RTSP credentials. +type Scanner struct { + curl Curler + term *disgo.Terminal + + targets []string + ports []string + debug bool + verbose bool + speed int + timeout time.Duration + credentialDictionaryPath string + routeDictionaryPath string + + credentials Credentials + routes Routes +} + +// New creates a new Cameradar Scanner and applies the given options. +func New(options ...func(*Scanner)) (*Scanner, error) { + err := curl.GlobalInit(curl.GLOBAL_ALL) + if err != nil { + return nil, fmt.Errorf("unable to initialize curl library: %v", err) + } + + handle := curl.EasyInit() + if handle == nil { + return nil, fmt.Errorf("unable to initialize curl handle: %v", err) + } + + scanner := &Scanner{ + curl: &Curl{CURL: handle}, + credentialDictionaryPath: "/src/github.com/ullaakut/cameradar/dictionaries/credentials.json", + routeDictionaryPath: "/src/github.com/ullaakut/cameradar/dictionaries/routes", + } + + for _, option := range options { + option(scanner) + } + + gopath := os.Getenv("GOPATH") + scanner.credentialDictionaryPath = strings.Replace(scanner.credentialDictionaryPath, "", gopath, 1) + scanner.routeDictionaryPath = strings.Replace(scanner.routeDictionaryPath, "", gopath, 1) + + scanner.term = disgo.NewTerminal( + disgo.WithDebug(scanner.debug), + ) + + err = scanner.LoadTargets() + if err != nil { + return nil, fmt.Errorf("unable to parse target file: %v", err) + } + + scanner.term.StartStepf("Loading credentials") + err = scanner.LoadCredentials() + if err != nil { + return nil, scanner.term.FailStepf("unable to load credentials dictionary: %v", err) + } + + scanner.term.StartStepf("Loading routes") + err = scanner.LoadRoutes() + if err != nil { + return nil, scanner.term.FailStepf("unable to load credentials dictionary: %v", err) + } + + disgo.EndStep() + + return scanner, nil +} + +// WithTargets specifies the targets to scan and attack. +func WithTargets(targets []string) func(s *Scanner) { + return func(s *Scanner) { + s.targets = targets + } +} + +// WithPorts specifies the ports to scan and attack. +func WithPorts(ports []string) func(s *Scanner) { + return func(s *Scanner) { + s.ports = ports + } +} + +// WithDebug specifies whether or not to enable debug logs. +func WithDebug(debug bool) func(s *Scanner) { + return func(s *Scanner) { + s.debug = debug + } +} + +// WithVerbose specifies whether or not to enable verbose logs. +func WithVerbose(verbose bool) func(s *Scanner) { + return func(s *Scanner) { + s.verbose = verbose + } +} + +// WithCustomCredentials specifies a custom credential dictionary +// to use for the attacks. +func WithCustomCredentials(dictionaryPath string) func(s *Scanner) { + return func(s *Scanner) { + s.credentialDictionaryPath = dictionaryPath + } +} + +// WithCustomRoutes specifies a custom route dictionary +// to use for the attacks. +func WithCustomRoutes(dictionaryPath string) func(s *Scanner) { + return func(s *Scanner) { + s.routeDictionaryPath = dictionaryPath + } +} + +// WithSpeed specifies the speed at which the scan should be executed. Faster +// means easier to detect, slower has bigger timeout values and is more silent. +func WithSpeed(speed int) func(s *Scanner) { + return func(s *Scanner) { + s.speed = speed + } +} + +// WithTimeout specifies the amount of time after which attack requests should +// timeout. This should be high if the network you are attacking has a poor +// connectivity or that you are located far away from it. +func WithTimeout(timeout time.Duration) func(s *Scanner) { + return func(s *Scanner) { + s.timeout = timeout + } +} diff --git a/scanner_test.go b/scanner_test.go new file mode 100644 index 0000000..40d18a9 --- /dev/null +++ b/scanner_test.go @@ -0,0 +1,133 @@ +package cameradar + +import ( + "fmt" + "io/ioutil" + "testing" + "time" + + "github.com/stretchr/testify/assert" + curl "github.com/ullaakut/go-curl" +) + +func TestNew(t *testing.T) { + tests := []struct { + description string + + targets []string + ports []string + debug bool + verbose bool + customCredentials string + customRoutes string + speed int + timeout time.Duration + + loadTargetsFail bool + loadCredsFail bool + loadRoutesFail bool + + curlGlobalFail bool + curlEasyFail bool + + expectedErr bool + }{ + { + description: "no error while loading dictionaries", + + targets: []string{"titi", "toto"}, + ports: []string{"554"}, + debug: true, + verbose: false, + speed: 3, + timeout: time.Millisecond, + }, + { + description: "unable to load targets", + + loadTargetsFail: true, + + expectedErr: true, + }, + { + description: "unable to load credentials", + + loadCredsFail: true, + + expectedErr: true, + }, + { + description: "unable to load routes", + + loadRoutesFail: true, + + expectedErr: true, + }, + { + description: "curl fails to init", + + curlGlobalFail: true, + + expectedErr: true, + }, + { + description: "curl fails to create handle", + + curlEasyFail: true, + + expectedErr: true, + }, + } + + for i, test := range tests { + t.Run(test.description, func(t *testing.T) { + if test.loadTargetsFail { + test.targets = []string{generateTmpFileName(i, "targets")} + ioutil.WriteFile(test.targets[0], []byte(`0.0.0.0`), 0000) + } + + if !test.loadCredsFail { + test.customCredentials = generateTmpFileName(i, "creds") + ioutil.WriteFile(test.customCredentials, []byte(`{"usernames":["admin"],"passwords":["admin"]}`), 0644) + } + + if !test.loadRoutesFail { + test.customRoutes = generateTmpFileName(i, "routes") + ioutil.WriteFile(test.customRoutes, []byte(`live.sdp`), 0644) + } + + curl.TestGlobalFail = test.curlGlobalFail + curl.TestEasyFail = test.curlEasyFail + + scanner, err := New( + WithTargets(test.targets), + WithPorts(test.ports), + WithDebug(test.debug), + WithVerbose(test.verbose), + WithSpeed(test.speed), + WithTimeout(test.timeout), + WithCustomCredentials(test.customCredentials), + WithCustomRoutes(test.customRoutes), + ) + + if test.expectedErr { + assert.Error(t, err) + } else { + assert.NoError(t, err) + } + + if scanner != nil { + assert.Equal(t, test.targets, scanner.targets) + assert.Equal(t, test.ports, scanner.ports) + assert.Equal(t, test.debug, scanner.debug) + assert.Equal(t, test.verbose, scanner.verbose) + assert.Equal(t, test.speed, scanner.speed) + assert.Equal(t, test.timeout, scanner.timeout) + } + }) + } +} + +func generateTmpFileName(iteration int, purpose string) string { + return fmt.Sprintf("/tmp/cameradar_test_scanner_%s_%d_%d", purpose, time.Now().Unix(), iteration) +} diff --git a/summary.go b/summary.go new file mode 100644 index 0000000..7785e1c --- /dev/null +++ b/summary.go @@ -0,0 +1,63 @@ +package cameradar + +import ( + "github.com/ullaakut/disgo/style" + curl "github.com/ullaakut/go-curl" +) + +// PrintStreams prints information on each stream. +func (s *Scanner) PrintStreams(streams []Stream) { + if len(streams) == 0 { + s.term.Infof("%s No streams were found. Please make sure that your target is on an accessible network.\n", style.Failure(style.SymbolCross)) + } + + success := 0 + for _, stream := range streams { + if stream.Available { + s.term.Infof("%s\tDevice RTSP URL:\t%s\n", style.Success(style.SymbolRightTriangle), style.Link(GetCameraRTSPURL(stream))) + s.term.Infof("\tAvailable:\t\t%s\n", style.Success(style.SymbolCheck)) + success++ + } else { + s.term.Infof("%s\tAdmin panel URL:\t%s You can use this URL to try attacking the camera's admin panel instead.\n", style.Failure(style.SymbolCross), style.Link(GetCameraAdminPanelURL(stream))) + s.term.Infof("\tAvailable:\t\t%s\n", style.Failure(style.SymbolCross)) + } + + if len(stream.Device) > 0 { + s.term.Infof("\tDevice model:\t\t%s\n\n", stream.Device) + } + + s.term.Infof("\tIP address:\t\t%s\n", stream.Address) + s.term.Infof("\tRTSP port:\t\t%d\n", stream.Port) + + switch stream.AuthenticationType { + case curl.AUTH_NONE: + s.term.Infoln("\tThis camera does not require authentication") + case curl.AUTH_BASIC: + s.term.Infoln("\tAuth type:\t\tbasic") + case curl.AUTH_DIGEST: + s.term.Infoln("\tAuth type:\t\tdigest") + } + + if stream.CredentialsFound { + s.term.Infof("\tUsername:\t\t%s\n", style.Success(stream.Username)) + s.term.Infof("\tPassword:\t\t%s\n", style.Success(stream.Password)) + } else { + s.term.Infof("\tUsername:\t\t%s\n", style.Failure("not found")) + s.term.Infof("\tPassword:\t\t%s\n", style.Failure("not found")) + } + + if stream.RouteFound { + s.term.Infof("\tRTSP route:\t\t%s\n\n\n", style.Success("/"+stream.Route)) + } else { + s.term.Infof("\tRTSP route:\t\t%s\n\n\n", style.Failure("not found")) + } + } + + if success > 1 { + s.term.Infof("%s Successful attack: %s devices were accessed", style.Success(style.SymbolCheck), style.Success(len(streams))) + } else if success == 1 { + s.term.Infof("%s Successful attack: %s device was accessed", style.Success(style.SymbolCheck), style.Success("one")) + } else { + s.term.Infof("%s Streams were found but none were accessed. They are most likely configured with secure credentials and routes. You can try adding entries to the dictionary or generating your own in order to attempt a bruteforce attack on the cameras.\n", style.Failure("\xE2\x9C\x96")) + } +} diff --git a/summary_test.go b/summary_test.go new file mode 100644 index 0000000..9cb0fbe --- /dev/null +++ b/summary_test.go @@ -0,0 +1,186 @@ +package cameradar + +import ( + "bytes" + "testing" + + "github.com/stretchr/testify/assert" + "github.com/ullaakut/disgo" +) + +var ( + unavailable = Stream{} + + available = Stream{ + Available: true, + } + + deviceFound = Stream{ + Device: "devicename", + } + + noAuth = Stream{ + AuthenticationType: 0, + } + + basic = Stream{ + AuthenticationType: 1, + } + + digest = Stream{ + AuthenticationType: 2, + } + + credsFound = Stream{ + CredentialsFound: true, + Username: "us3r", + Password: "p4ss", + } + + routeFound = Stream{ + RouteFound: true, + Route: "r0ute", + } +) + +func TestPrintStreams(t *testing.T) { + tests := []struct { + description string + + streams []Stream + + expectedLogs []string + }{ + { + description: "displays the proper message when no streams found", + + streams: nil, + + expectedLogs: []string{"No streams were found"}, + }, + { + description: "displays the admin panel URL when a stream is not accessible", + + streams: []Stream{ + unavailable, + }, + + expectedLogs: []string{"Admin panel URL"}, + }, + { + description: "displays the device name when it is found", + + streams: []Stream{ + deviceFound, + }, + + expectedLogs: []string{"Device model:"}, + }, + { + description: "displays authentication type (no auth)", + + streams: []Stream{ + noAuth, + }, + + expectedLogs: []string{"This camera does not require authentication"}, + }, + { + description: "displays authentication type (basic)", + + streams: []Stream{ + basic, + }, + + expectedLogs: []string{"basic"}, + }, + { + description: "displays authentication type (digest)", + + streams: []Stream{ + digest, + }, + + expectedLogs: []string{"digest"}, + }, + { + description: "displays credentials properly", + + streams: []Stream{ + credsFound, + }, + + expectedLogs: []string{ + "Username", + "us3r", + "Password", + "p4ss", + }, + }, + { + description: "displays route properly", + + streams: []Stream{ + routeFound, + }, + + expectedLogs: []string{ + "RTSP route", + "/r0ute", + }, + }, + { + description: "displays successes properly (no success)", + + streams: []Stream{ + unavailable, + }, + + expectedLogs: []string{ + "Streams were found but none were accessed", + }, + }, + { + description: "displays successes properly (1 success)", + + streams: []Stream{ + available, + }, + + expectedLogs: []string{ + "Successful attack", + "device was accessed", + }, + }, + { + description: "displays successes properly (multiple successes)", + + streams: []Stream{ + available, + available, + available, + available, + }, + + expectedLogs: []string{ + "Successful attack", + "devices were accessed", + }, + }, + } + + for _, test := range tests { + t.Run(test.description, func(t *testing.T) { + writer := &bytes.Buffer{} + scanner := &Scanner{ + term: disgo.NewTerminal(disgo.WithDefaultOutput(writer)), + } + + scanner.PrintStreams(test.streams) + + for _, expectedLog := range test.expectedLogs { + assert.Contains(t, writer.String(), expectedLog) + } + }) + } +}