From d1eecc5c4fbf7a63b3dd3b3bc5858f33b61db1c5 Mon Sep 17 00:00:00 2001 From: Nathan Coad Date: Mon, 8 Jan 2024 14:30:16 +1100 Subject: [PATCH] new schema initial commit --- README.md | 4 +- controllers/auth.go | 56 +++++++-- controllers/retrieve_secrets.go | 213 ++++++++++++++++++++++---------- controllers/store_secrets.go | 120 ++++++++++++++---- middlewares/middlewares.go | 9 +- models/audit.go | 3 + models/group.go | 55 +++++++++ models/ldap.go | 3 +- models/permissions.go | 8 ++ models/safe.go | 6 + models/secret.go | 115 +++++++++++++++-- models/setup.go | 42 ++++++- models/user.go | 146 ++++++++++++++++++---- www/database.png | Bin 86053 -> 84866 bytes 14 files changed, 631 insertions(+), 149 deletions(-) create mode 100644 models/audit.go create mode 100644 models/group.go create mode 100644 models/permissions.go create mode 100644 models/safe.go diff --git a/README.md b/README.md index 86a8e6f..5beb838 100644 --- a/README.md +++ b/README.md @@ -118,7 +118,9 @@ Data } ``` -This operation can only be performed by a user with a role that is admin enabled. There are 3 built in roles, which can be viewed via the `/api/admin/roles` endpoint. +OLD: This operation can only be performed by a user with a role that is admin enabled. There are 3 built in roles, which can be viewed via the `/api/admin/roles` endpoint. + +NEW: This operation can only be performed by a user that is a member of a group with the admin flag enabled. #### Remove User POST `/api/admin/user/delete` diff --git a/controllers/auth.go b/controllers/auth.go index 5469420..3cf6393 100644 --- a/controllers/auth.go +++ b/controllers/auth.go @@ -16,9 +16,11 @@ import ( ) type RegisterInput struct { - UserName string `json:"userName" binding:"required"` - Password string `json:"password" binding:"required"` - RoleId int `json:"roleid"` + UserName string `json:"userName" binding:"required"` + Password string `json:"password" binding:"required"` + GroupId int `json:"groupId"` + GroupName string `json:"groupName"` + //RoleId int `json:"roleid"` } type LoginInput struct { @@ -52,7 +54,7 @@ func DeleteUser(c *gin.Context) { u.UserName = html.EscapeString(strings.TrimSpace(u.UserName)) // Confirm user account exists - testUser, _ := models.GetUserByName(u.UserName) + testUser, _ := models.UserGetByName(u.UserName) log.Printf("DeleteUser confirming user '%s' account exists\n", u.UserName) if (models.User{} == testUser) { err := errors.New("attempt to delete non-existing username '" + u.UserName + "'") @@ -90,23 +92,51 @@ func RegisterUser(c *gin.Context) { } u := models.User{} - //u.RoleId = 1 u.UserName = input.UserName u.Password = input.Password - // Default to regular user role if not specified - if input.RoleId == 0 { - log.Printf("Register no role specified, defaulting to builtin role UserRole with id 2.\n") - u.RoleId = 2 + // Determine which GroupId to save + // Can be specified either by GroupName or GroupId in the request + if len(input.GroupName) > 0 { + g, err := models.GroupGetByName(input.GroupName) + if err != nil { + errString := fmt.Sprintf("RegisterUser error looking up group by name : '%s'", err) + log.Println(errString) + c.JSON(http.StatusBadRequest, gin.H{"error": errString}) + return + } + if g == (models.Group{}) { + errString := fmt.Sprintf("RegisterUser specified group not found") + log.Println(errString) + c.JSON(http.StatusBadRequest, gin.H{"error": errString}) + return + } else { + u.GroupId = g.GroupId + } + } else if input.GroupId > 0 { + u.GroupId = input.GroupId } else { - u.RoleId = input.RoleId + errString := fmt.Sprintf("RegisterUser no group specified, must specify either GroupId or GroupName") + log.Println(errString) + c.JSON(http.StatusBadRequest, gin.H{"error": errString}) + return } + /* + // Default to regular user role if not specified + if input.RoleId == 0 { + log.Printf("Register no role specified, defaulting to builtin role UserRole with id 2.\n") + u.RoleId = 2 + } else { + u.RoleId = input.RoleId + } + */ + //remove spaces in username u.UserName = html.EscapeString(strings.TrimSpace(u.UserName)) // Check if user already exists - testUser, _ := models.GetUserByName(u.UserName) + testUser, _ := models.UserGetByName(u.UserName) log.Printf("Register checking if user '%s' already exists\n", u.UserName) if (models.User{} == testUser) { log.Printf("Register confirmed no existing username\n") @@ -214,7 +244,7 @@ func CurrentUser(c *gin.Context) { return } - u, err := models.GetUserByID(user_id) + u, err := models.UserGetByID(user_id) if err != nil { c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()}) @@ -237,7 +267,7 @@ func GetRoles(c *gin.Context) { } func GetUsers(c *gin.Context) { - users, err := models.QueryUsers() + users, err := models.UserList() if err != nil { c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()}) diff --git a/controllers/retrieve_secrets.go b/controllers/retrieve_secrets.go index 77856c1..05167ef 100644 --- a/controllers/retrieve_secrets.go +++ b/controllers/retrieve_secrets.go @@ -13,11 +13,14 @@ type RetrieveInput struct { DeviceName string `json:"deviceName"` DeviceCategory string `json:"deviceCategory"` UserName string `json:"userName"` + SafeId int `json:"safeId"` + SafeName string `json:"safeName"` } type ListSecret struct { - SecretId int `db:"SecretId" json:"-"` - RoleId int `db:"RoleId" json:"-"` + SecretId int `db:"SecretId" json:"-"` + //RoleId int `db:"RoleId" json:"-"` + SafeId int `db:"SafeId"` DeviceName string `db:"DeviceName"` DeviceCategory string `db:"DeviceCategory"` UserName string `db:"UserName"` @@ -27,6 +30,7 @@ type ListSecret struct { func RetrieveSecret(c *gin.Context) { var input RetrieveInput var results []models.Secret + var userIsAdmin bool = false // Validate the input matches our struct if err := c.ShouldBindJSON(&input); err != nil { @@ -35,22 +39,55 @@ func RetrieveSecret(c *gin.Context) { } log.Printf("RetrieveSecret received JSON input '%v'\n", input) - // Get the user and role id of the requestor - u, err := models.GetUserRoleFromToken(c) - if err != nil { - c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()}) - return - } + /* + // Get the user and role id of the requestor + u, err := models.UserGetRoleFromToken(c) + if err != nil { + c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()}) + return + } + */ // Populate fields s := models.Secret{} - s.RoleId = u.RoleId + //s.RoleId = u.RoleId s.DeviceName = input.DeviceName s.DeviceCategory = input.DeviceCategory s.UserName = input.UserName - // Don't apply a role filter if user has admin role - results, err = models.GetSecrets(&s, u.Admin) + user_id, err := token.ExtractTokenID(c) + if err != nil { + c.JSON(http.StatusBadRequest, gin.H{"error": "error determining user"}) + return + } + + // Work out which safe to query for this user if the safe was not specified + safeList, err := models.UserGetSafesAllowed(int(user_id)) + + // If there was only one result then just use that + if len(safeList) == 0 { + // check if the user is an admin, if not then they seem to have access to zero safes + if !models.UserCheckIfAdmin(int(user_id)) { + c.JSON(http.StatusBadRequest, gin.H{"error": "user has no access to any secrets"}) + return + } + // Don't apply a role filter if user has admin role + results, err = models.GetSecrets(&s, userIsAdmin) + } else if len(safeList) == 1 { + s.SafeId = safeList[0].SafeId + userIsAdmin = safeList[0].AdminUser || safeList[0].AdminGroup + // Don't apply a role filter if user has admin role + results, err = models.GetSecrets(&s, userIsAdmin) + } else { + // TODO - this is tricky. How to query multiple safes? + + var safeIds []int + for _, safe := range safeList { + safeIds = append(safeIds, safe.SafeId) + } + + results, err = models.SecretsGetMultipleSafes(&s, false, safeIds) + } if err != nil { c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()}) @@ -99,18 +136,56 @@ func RetrieveSecretByDevicecategory(c *gin.Context) { } func retrieveSpecifiedSecret(s *models.Secret, c *gin.Context) { - // Get the user and role id of the requestor - u, err := models.GetUserRoleFromToken(c) + /* + // Get the user and role id of the requestor + u, err := models.UserGetRoleFromToken(c) + if err != nil { + c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()}) + return + } + s.RoleId = u.RoleId + + results, err := models.GetSecrets(s, false) + if err != nil { + c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()}) + return + } + */ + + var results []models.Secret + var userIsAdmin = false + user_id, err := token.ExtractTokenID(c) if err != nil { - c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()}) + c.JSON(http.StatusBadRequest, gin.H{"error": "error determining user"}) return } - s.RoleId = u.RoleId - results, err := models.GetSecrets(s, false) - if err != nil { - c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()}) - return + // Work out which safe to query for this user if the safe was not specified + safeList, err := models.UserGetSafesAllowed(int(user_id)) + + // If there was only one result then just use that + if len(safeList) == 0 { + // check if the user is an admin, if not then they seem to have access to zero safes + if !models.UserCheckIfAdmin(int(user_id)) { + c.JSON(http.StatusBadRequest, gin.H{"error": "user has no access to any secrets"}) + return + } + // Don't apply a role filter if user has admin role + results, err = models.GetSecrets(s, userIsAdmin) + } else if len(safeList) == 1 { + s.SafeId = safeList[0].SafeId + userIsAdmin = safeList[0].AdminUser || safeList[0].AdminGroup + // Don't apply a role filter if user has admin role + results, err = models.GetSecrets(s, userIsAdmin) + } else { + // TODO - this is tricky. How to query multiple safes? + + var safeIds []int + for _, safe := range safeList { + safeIds = append(safeIds, safe.SafeId) + } + + results, err = models.SecretsGetMultipleSafes(s, false, safeIds) } if len(results) == 1 { @@ -125,69 +200,75 @@ func retrieveSpecifiedSecret(s *models.Secret, c *gin.Context) { } } func ListSecrets(c *gin.Context) { - var results []models.Secret + var output []ListSecret + // TODO implement with new schema + /* + var results []models.Secret + // Get the user and role id of the requestor + u, err := models.UserGetRoleFromToken(c) + if err != nil { + c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()}) + return + } - // Get the user and role id of the requestor - u, err := models.GetUserRoleFromToken(c) - if err != nil { - c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()}) - return - } + // If user is admin then list everything, otherwise only list for current role + results, err = models.GetSecrets(&models.Secret{RoleId: u.RoleId}, u.Admin) - // If user is admin then list everything, otherwise only list for current role - results, err = models.GetSecrets(&models.Secret{RoleId: u.RoleId}, u.Admin) + if err != nil { + c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()}) + return + } - if err != nil { - c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()}) - return - } - - for _, v := range results { - output = append(output, ListSecret(v)) - } + for _, v := range results { + output = append(output, ListSecret(v)) + } + */ // output results as json c.JSON(http.StatusOK, gin.H{"message": "success", "data": output}) } func RetrieveMultpleSecrets(c *gin.Context) { - var input RetrieveInput + // TODO implement with new schema + /* + var input RetrieveInput - // Validate the input matches our struct - if err := c.ShouldBindJSON(&input); err != nil { - c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()}) - return - } - log.Printf("StoreSecret received JSON input '%v'\n", input) + // Validate the input matches our struct + if err := c.ShouldBindJSON(&input); err != nil { + c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()}) + return + } + log.Printf("StoreSecret received JSON input '%v'\n", input) - // Get the user and role id of the requestor - user_id, err := token.ExtractTokenID(c) + // Get the user and role id of the requestor + user_id, err := token.ExtractTokenID(c) - if err != nil { - c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()}) - return - } + if err != nil { + c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()}) + return + } - u, err := models.GetUserRoleByID(user_id) + u, err := models.GetUserRoleByID(user_id) - if err != nil { - c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()}) - return - } + if err != nil { + c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()}) + return + } - // Populate fields - s := models.Secret{} - s.RoleId = u.RoleId - s.DeviceName = input.DeviceName - s.DeviceCategory = input.DeviceCategory + // Populate fields + s := models.Secret{} + s.RoleId = u.RoleId + s.DeviceName = input.DeviceName + s.DeviceCategory = input.DeviceCategory - results, err := models.GetSecrets(&s, false) - if err != nil { - c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()}) - return - } + results, err := models.GetSecrets(&s, false) + if err != nil { + c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()}) + return + } - // output results as json - c.JSON(http.StatusOK, gin.H{"message": "success", "data": results}) + // output results as json + c.JSON(http.StatusOK, gin.H{"message": "success", "data": results}) + */ } diff --git a/controllers/store_secrets.go b/controllers/store_secrets.go index 0c5e331..b2f58db 100644 --- a/controllers/store_secrets.go +++ b/controllers/store_secrets.go @@ -5,13 +5,16 @@ import ( "log" "net/http" "smt/models" + "smt/utils/token" "github.com/gin-gonic/gin" ) // bindings are validated by https://github.com/go-playground/validator type StoreInput struct { - RoleId int `json:"roleId"` + //RoleId int `json:"roleId"` + SafeId int `json:"safeId"` + SafeName string `json:"safeName"` DeviceName string `json:"deviceName"` DeviceCategory string `json:"deviceCategory"` UserName string `json:"userName" binding:"required"` @@ -36,15 +39,32 @@ func StoreSecret(c *gin.Context) { s.DeviceName = input.DeviceName s.DeviceCategory = input.DeviceCategory - // If RoleID is not defined then default to the same role as the user requesting secret to be stored - if input.RoleId != 0 { - s.RoleId = input.RoleId - } else { - ur, _ := models.GetUserRoleFromToken(c) - log.Printf("StoreSecret RoleId was not specified, setting to RoleId of '%d'\n", ur.RoleId) - s.RoleId = ur.RoleId + // Query which safes the current user is allowed to access + user_id, err := token.ExtractTokenID(c) + if err != nil { + c.JSON(http.StatusBadRequest, gin.H{"error": "error determining user"}) + return } + safeId := SecretCheckSafeAllowed(int(user_id), input) + if safeId == 0 { + c.JSON(http.StatusBadRequest, gin.H{"error": "error determining safe"}) + return + } + + s.SafeId = safeId + + /* + // If RoleID is not defined then default to the same role as the user requesting secret to be stored + if input.RoleId != 0 { + s.RoleId = input.RoleId + } else { + ur, _ := models.GetUserRoleFromToken(c) + log.Printf("StoreSecret RoleId was not specified, setting to RoleId of '%d'\n", ur.RoleId) + s.RoleId = ur.RoleId + } + */ + if input.DeviceCategory == "" && input.DeviceName == "" { c.JSON(http.StatusBadRequest, gin.H{"error": "cannot store secret with empty deviceName and empty deviceCategory"}) return @@ -91,17 +111,19 @@ func UpdateSecret(c *gin.Context) { log.Printf("UpdateSecret received JSON input '%v'\n", input) - // Get the user and role id of the requestor - u, err := models.GetUserRoleFromToken(c) - if err != nil { - c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()}) - return - } - // Verify that the user role is not readonly - if u.ReadOnly { - c.JSON(http.StatusForbidden, gin.H{"error": "UpdateSecret user role does not permit updates"}) - return - } + /* + // Get the user and role id of the requestor + u, err := models.UserGetRoleFromToken(c) + if err != nil { + c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()}) + return + } + // Verify that the user role is not readonly + if u.ReadOnly { + c.JSON(http.StatusForbidden, gin.H{"error": "UpdateSecret user role does not permit updates"}) + return + } + */ // Populate fields s := models.Secret{} @@ -110,13 +132,30 @@ func UpdateSecret(c *gin.Context) { s.DeviceName = input.DeviceName s.DeviceCategory = input.DeviceCategory - // Default role ID is 1 if not defined - if input.RoleId != 0 { - s.RoleId = input.RoleId - } else { - s.RoleId = 1 + /* + // Default role ID is 1 if not defined + if input.RoleId != 0 { + s.RoleId = input.RoleId + } else { + s.RoleId = 1 + } + */ + + // Query which safes the current user is allowed to access + user_id, err := token.ExtractTokenID(c) + if err != nil { + c.JSON(http.StatusBadRequest, gin.H{"error": "error determining user"}) + return } + safeId := SecretCheckSafeAllowed(int(user_id), input) + if safeId == 0 { + c.JSON(http.StatusBadRequest, gin.H{"error": "error determining safe"}) + return + } + + s.SafeId = safeId + // Confirm that the secret already exists checkExists, err := models.GetSecrets(&s, false) if err != nil { @@ -165,3 +204,36 @@ func UpdateSecret(c *gin.Context) { } } + +func SecretCheckSafeAllowed(user_id int, input StoreInput) int { + // Query which safes the current user is allowed to access + + // SafeId is by default the same as the safe that the user belongs to + safeList, err := models.UserGetSafesAllowed(user_id) + if err != nil { + log.Printf("SecretCheckSafeAllowed error determining allowed safes for userId %d : '%s'\n", user_id, err) + return 0 + } + + // Verify user has access to specified safe + for _, safe := range safeList { + if len(input.SafeName) > 0 && safe.SafeName == input.SafeName { // Safe specifed by name + return safe.SafeId + } else if input.SafeId > 0 && safe.SafeId == input.SafeId { // Safe specified by id + return safe.SafeId + } + } + + // TODO what about Admin role + + return 0 + + /* + if !matchFound { + errString := "no safe specified or no access to specified safe" + log.Println(errString) + c.JSON(http.StatusBadRequest, gin.H{"error": errString}) + return + } + */ +} diff --git a/middlewares/middlewares.go b/middlewares/middlewares.go index fae48a0..766721c 100644 --- a/middlewares/middlewares.go +++ b/middlewares/middlewares.go @@ -44,17 +44,20 @@ func JwtAuthAdminMiddleware() gin.HandlerFunc { return } - ur, err := models.GetUserRoleByID(user_id) + // TODO determine user role + + //ur, err := models.GetUserRoleByID(user_id) + ug, err := models.UserGetGroupByID(user_id) if err != nil { c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()}) c.Abort() return } - log.Printf("JwtAuthAdminMiddleware retrieved UserRole object for UserId '%d'\n", ur.UserId) + log.Printf("JwtAuthAdminMiddleware retrieved UserGroup object for UserId '%d'\n", ug.UserId) // Verify that the user has a role with the admin flag set - if !ur.Admin { + if !ug.Admin { c.String(http.StatusUnauthorized, "User role is Non-Admin") c.Abort() return diff --git a/models/audit.go b/models/audit.go new file mode 100644 index 0000000..4ecbc54 --- /dev/null +++ b/models/audit.go @@ -0,0 +1,3 @@ +package models + +// Define audit functions diff --git a/models/group.go b/models/group.go new file mode 100644 index 0000000..f8a4314 --- /dev/null +++ b/models/group.go @@ -0,0 +1,55 @@ +package models + +import ( + "errors" + "log" +) + +type Group struct { + GroupId int `db:"GroupId"` + GroupName string `db:"GroupName"` + LdapGroup bool `db:"LdapGroup"` + LdapDn string `db:"LdapDN"` + Admin bool `db:"Admin"` +} + +// GroupGetByName queries the database for the specified group name +func GroupGetByName(groupname string) (Group, error) { + var g Group + + // Query database for matching group object + err := db.QueryRowx("SELECT * FROM groups WHERE GroupName=?", groupname).StructScan(&g) + if err != nil { + return g, errors.New("group not found") + } + + return g, nil +} + +// GroupList returns a list of all groups in database +func GroupList() ([]Group, error) { + var results []Group + + // Query database for role definitions + rows, err := db.Queryx("SELECT * FROM groups") + + if err != nil { + log.Printf("GroupList error executing sql record : '%s'\n", err) + return results, err + } else { + // parse all the results into a slice + for rows.Next() { + var g Group + err = rows.StructScan(&g) + if err != nil { + log.Printf("GroupList error parsing sql record : '%s'\n", err) + return results, err + } + results = append(results, g) + + } + log.Printf("GroupList retrieved '%d' results\n", len(results)) + } + + return results, nil +} diff --git a/models/ldap.go b/models/ldap.go index 3ddcb6b..e583b84 100644 --- a/models/ldap.go +++ b/models/ldap.go @@ -227,7 +227,8 @@ func LookupNamingContext(ldaps *ldap.Conn) string { return defaultNamingContext } -func GetLdapGroupMembership(username string, password string) ([]string, error) { +// LdapGetGroupMembership returns a list of distinguishedNames for groups that a user is a member of +func LdapGetGroupMembership(username string, password string) ([]string, error) { var err error username = CheckUsername(username) diff --git a/models/permissions.go b/models/permissions.go new file mode 100644 index 0000000..f9cca50 --- /dev/null +++ b/models/permissions.go @@ -0,0 +1,8 @@ +package models + +type Permission struct { + PermissionId int `db:"PermissionId"` + RoleId int `db:"RoleId"` + SafeId int `db:"SafeId"` + GroupId int `db:"GroupId"` +} diff --git a/models/safe.go b/models/safe.go new file mode 100644 index 0000000..f86e73c --- /dev/null +++ b/models/safe.go @@ -0,0 +1,6 @@ +package models + +type Safe struct { + SafeId int `db:"SafeId"` + SafeName string `db:"SafeName"` +} diff --git a/models/secret.go b/models/secret.go index b4685be..e6e0111 100644 --- a/models/secret.go +++ b/models/secret.go @@ -6,16 +6,19 @@ import ( "crypto/rand" "encoding/hex" "errors" + "fmt" "io" "log" + "strings" "github.com/jmoiron/sqlx" ) // We use the json:"-" field tag to prevent showing these details to the user type Secret struct { - SecretId int `db:"SecretId" json:"-"` - RoleId int `db:"RoleId" json:"-"` + SecretId int `db:"SecretId" json:"-"` + //RoleId int `db:"RoleId" json:"-"` + SafeId int `db:"SafeId"` DeviceName string `db:"DeviceName"` DeviceCategory string `db:"DeviceCategory"` UserName string `db:"UserName"` @@ -29,7 +32,7 @@ func (s *Secret) SaveSecret() (*Secret, error) { var err error log.Printf("SaveSecret storing values '%v'\n", s) - result, err := db.NamedExec((`INSERT INTO secrets (RoleId, DeviceName, DeviceCategory, UserName, Secret) VALUES (:RoleId, :DeviceName, :DeviceCategory, :UserName, :Secret)`), s) + result, err := db.NamedExec((`INSERT INTO secrets (SafeId, DeviceName, DeviceCategory, UserName, Secret) VALUES (:SafeId, :DeviceName, :DeviceCategory, :UserName, :Secret)`), s) if err != nil { log.Printf("StoreSecret error executing sql record : '%s'\n", err) @@ -43,6 +46,96 @@ func (s *Secret) SaveSecret() (*Secret, error) { return s, nil } +// TODO - use this function when user has access to multiple safes +func SecretsGetMultipleSafes(s *Secret, adminRole bool, safeIds []int) ([]Secret, error) { + var err error + var secretResults []Secret + + /* + // First use an "In Query" to expand the list of safe Ids to query + // As per https://jmoiron.github.io/sqlx/#inQueries + + query, args, _ := sqlx.In("SELECT * FROM secrets WHERE DeviceName LIKE ? AND DeviceCategory LIKE ? AND UserName = ? and SafeId IN (?);", s.DeviceName, s.DeviceCategory, s.UserName, safeIds) + + // sqlx.In returns queries with the `?` bindvar, we can rebind it for our backend + query = db.Rebind(query) + rows, err := db.Queryx(query, args) + */ + + // Generate placeholders for the IN clause to match multiple SafeId values + placeholders := make([]string, len(safeIds)) + for i := range safeIds { + placeholders[i] = "?" + } + placeholderStr := strings.Join(placeholders, ",") + + query := fmt.Sprintf("SELECT * FROM secrets WHERE SafeId IN (%s) ", placeholderStr) + args := []interface{}{} + + // Add the Safe Ids + for _, g := range safeIds { + args = append(args, g) + } + + // Add any other parameters + if s.DeviceName != "" { + query += " AND DeviceName LIKE ? " + args = append(args, s.DeviceName) + } + + if s.DeviceCategory != "" { + query += " AND DeviceCategory LIKE ? " + args = append(args, s.DeviceCategory) + } + + if s.UserName != "" { + query += " AND UserName LIKE ? " + args = append(args, s.UserName) + } + + /* + // Construct the query + query := fmt.Sprintf("SELECT * FROM users WHERE username = ? AND group IN (%s)", placeholderStr) + args := make([]interface{}, 0, len(groups)+1) + args = append(args, username) + for _, g := range safeIds { + args = append(args, g) + } + */ + + // Execute the query + rows, err := db.Queryx(query, args...) + + if err != nil { + log.Printf("SecretsGetMultipleSafes error executing sql record : '%s'\n", err) + return secretResults, err + } else { + // parse all the results into a slice + for rows.Next() { + var r Secret + err = rows.StructScan(&r) + if err != nil { + log.Printf("SecretsGetMultipleSafes error parsing sql record : '%s'\n", err) + return secretResults, err + } + + // Decrypt the secret + _, err = r.DecryptSecret() + if err != nil { + //log.Printf("GetSecret unable to decrypt stored secret '%v' : '%s'\n", r.Secret, err) + log.Printf("SecretsGetMultipleSafes unable to decrypt stored secret : '%s'\n", err) + return secretResults, err + } else { + secretResults = append(secretResults, r) + } + + } + log.Printf("SecretsGetMultipleSafes retrieved '%d' results\n", len(secretResults)) + } + + return secretResults, nil +} + // Returns all matching secrets, up to caller to determine how to deal with multiple results func GetSecrets(s *Secret, adminRole bool) ([]Secret, error) { var err error @@ -79,21 +172,21 @@ func GetSecrets(s *Secret, adminRole bool) ([]Secret, error) { // Determine whether to query for a specific device or a category of devices // Prefer querying device name than category if s.DeviceName != "" && s.DeviceCategory != "" && s.UserName != "" { - rows, err = db.Queryx("SELECT * FROM secrets WHERE DeviceName LIKE ? AND DeviceCategory LIKE ? AND UserName = ? AND RoleId = ?", s.DeviceName, s.DeviceCategory, s.UserName, s.RoleId) + rows, err = db.Queryx("SELECT * FROM secrets WHERE DeviceName LIKE ? AND DeviceCategory LIKE ? AND UserName = ? AND SafeId = ?", s.DeviceName, s.DeviceCategory, s.UserName, s.SafeId) } else if s.DeviceName != "" && s.UserName != "" { - rows, err = db.Queryx("SELECT * FROM secrets WHERE DeviceName LIKE ? AND UserName = ? AND RoleId = ?", s.DeviceName, s.UserName, s.RoleId) + rows, err = db.Queryx("SELECT * FROM secrets WHERE DeviceName LIKE ? AND UserName = ? AND SafeId = ?", s.DeviceName, s.UserName, s.SafeId) } else if s.DeviceCategory != "" && s.UserName != "" { - rows, err = db.Queryx("SELECT * FROM secrets WHERE DeviceCategory LIKE ? AND UserName = ? AND RoleId = ?", s.DeviceCategory, s.UserName, s.RoleId) + rows, err = db.Queryx("SELECT * FROM secrets WHERE DeviceCategory LIKE ? AND UserName = ? AND SafeId = ?", s.DeviceCategory, s.UserName, s.SafeId) } else if s.DeviceName != "" && s.DeviceCategory != "" { - rows, err = db.Queryx("SELECT * FROM secrets WHERE DeviceName LIKE ? AND DeviceCategory LIKE ? AND RoleId = ?", s.DeviceName, s.DeviceCategory, s.RoleId) + rows, err = db.Queryx("SELECT * FROM secrets WHERE DeviceName LIKE ? AND DeviceCategory LIKE ? AND SafeId = ?", s.DeviceName, s.DeviceCategory, s.SafeId) } else if s.DeviceName != "" { - rows, err = db.Queryx("SELECT * FROM secrets WHERE DeviceName LIKE ? AND RoleId = ?", s.DeviceName, s.RoleId) + rows, err = db.Queryx("SELECT * FROM secrets WHERE DeviceName LIKE ? AND SafeId = ?", s.DeviceName, s.SafeId) } else if s.DeviceCategory != "" { - rows, err = db.Queryx("SELECT * FROM secrets WHERE DeviceCategory LIKE ? AND RoleId = ?", s.DeviceCategory, s.RoleId) + rows, err = db.Queryx("SELECT * FROM secrets WHERE DeviceCategory LIKE ? AND SafeId = ?", s.DeviceCategory, s.SafeId) } else if s.UserName != "" { - rows, err = db.Queryx("SELECT * FROM secrets WHERE UserName LIKE ? AND RoleId = ?", s.UserName, s.RoleId) + rows, err = db.Queryx("SELECT * FROM secrets WHERE UserName LIKE ? AND SafeId = ?", s.UserName, s.SafeId) } else { - rows, err = db.Queryx("SELECT * FROM secrets WHERE RoleId = ?", s.RoleId) + rows, err = db.Queryx("SELECT * FROM secrets WHERE RoleId = ?", s.SafeId) //log.Printf("GetSecret no valid search options specified\n") //err = errors.New("no valid search options specified") //return secretResults, err diff --git a/models/setup.go b/models/setup.go index 7a57b67..23c3204 100644 --- a/models/setup.go +++ b/models/setup.go @@ -26,8 +26,7 @@ const createRoles string = ` CREATE TABLE IF NOT EXISTS roles ( RoleId INTEGER PRIMARY KEY ASC, RoleName VARCHAR, - ReadOnly BOOLEAN, - Admin BOOLEAN + ReadOnly BOOLEAN ); ` @@ -37,8 +36,8 @@ const createUsers string = ` GroupId INTEGER, UserName VARCHAR, Password VARCHAR, + Admin BOOLEAN DEFAULT 0, LdapUser BOOLEAN DEFAULT 0, - LdapDN VARCHAR DEFAULT '', FOREIGN KEY (GroupId) REFERENCES groups(GroupId) ); ` @@ -55,7 +54,8 @@ const createGroups string = ` GroupId INTEGER PRIMARY KEY ASC, GroupName VARCHAR, LdapGroup BOOLEAN DEFAULT 0, - LdapDN VARCHAR DEFAULT '' + LdapDN VARCHAR DEFAULT '', + Admin BOOLEAN DEFAULT 0 ); ` @@ -213,6 +213,36 @@ func CreateTables() { os.Exit(1) } + // Add initial groups + rowCount, _ = CheckCount("groups") + if rowCount == 0 { + if _, err = db.Exec("INSERT INTO groups (GroupId, GroupName, Admin) VALUES(1, 'Administrators', 1);"); err != nil { + log.Printf("Error adding initial group entry id 1 : '%s'", err) + os.Exit(1) + } + if _, err = db.Exec("INSERT INTO groups (GroupId, GroupName, Admin) VALUES(2, 'Users', 0);"); err != nil { + log.Printf("Error adding initial group entry id 2 : '%s'", err) + os.Exit(1) + } + } + + // Add initial permissions + rowCount, _ = CheckCount("permissions") + if rowCount == 0 { + if _, err = db.Exec("INSERT INTO permissions (RoleId, SafeId, UserId) VALUES(1, 1, 1);"); err != nil { + log.Printf("Error adding initial permissions entry userid 1 : '%s'", err) + os.Exit(1) + } + if _, err = db.Exec("INSERT INTO permissions (RoleId, SafeId, UserId) VALUES(1, 1, 2);"); err != nil { + log.Printf("Error adding initial permissions entry userid 2 : '%s'", err) + os.Exit(1) + } + if _, err = db.Exec("INSERT INTO permissions (RoleId, SafeId, UserId) VALUES(1, 1, 3);"); err != nil { + log.Printf("Error adding initial permissions entry userid 3 : '%s'", err) + os.Exit(1) + } + } + // Schema table should go last so we know if the database has a value in the schema table then everything was created properly if _, err = db.Exec(createSchema); err != nil { log.Printf("Error checking schema table : '%s'", err) @@ -246,8 +276,8 @@ func CreateTables() { GroupId INTEGER, UserName VARCHAR, Password VARCHAR, - LdapUser BOOLEAN DEFAULT 0, - LdapDN VARCHAR DEFAULT '', + Admin BOOLEAN DEFAULT 0, + LdapUser BOOLEAN DEFAULT 0 FOREIGN KEY (GroupId) REFERENCES groups(GroupId) ); INSERT INTO users SELECT * FROM _users_old; diff --git a/models/user.go b/models/user.go index a75f762..b443a30 100644 --- a/models/user.go +++ b/models/user.go @@ -5,20 +5,19 @@ import ( "errors" "fmt" "log" - "net/http" "smt/utils/token" - "github.com/gin-gonic/gin" "golang.org/x/crypto/bcrypt" ) type User struct { UserId int `db:"UserId" json:"userId"` - RoleId int `db:"RoleId" json:"roleId"` + GroupId int `db:"GroupId" json:"groupId"` UserName string `db:"UserName" json:"userName"` Password string `db:"Password" json:"-"` LdapUser bool `db:"LdapUser" json:"ldapUser"` - LdapDn string `db:"LdapDN" json:"ldapDn"` + Admin bool `db:"Admin"` + //LdapDn string `db:"LdapDN" json:"ldapDn"` } type UserRole struct { @@ -28,15 +27,32 @@ type UserRole struct { Admin bool `db:"Admin"` } +type UserGroup struct { + User + GroupName string `db:"GroupName"` + LdapGroup bool `db:"LdapGroup"` + LdapDn string `db:"LdapDN"` + Admin bool `db:"Admin"` +} + +type UserSafe struct { + User + AdminUser bool `db:"AdminUser"` + AdminGroup bool `db:"AdminGroup"` + SafeId int `db:"SafeId"` + SafeName string `db:"SafeName"` + GroupId int `db:"GroupId"` +} + func (u *User) SaveUser() (*User, error) { var err error // Validate username not already in use - _, err = GetUserByName(u.UserName) + _, err = UserGetByName(u.UserName) if err != nil && err.Error() == "user not found" { log.Printf("SaveUser confirmed no existing user, continuing with creation of user '%s'\n", u.UserName) - result, err := db.NamedExec((`INSERT INTO users (RoleId, UserName, Password, LdapUser, LdapDn) VALUES (:RoleId, :UserName, :Password, :LdapUser, :LdapDN)`), u) + result, err := db.NamedExec((`INSERT INTO users (GroupId, UserName, Password, LdapUser) VALUES (:GroupId, :UserName, :Password, :LdapUser`), u) if err != nil { log.Printf("SaveUser error executing sql record : '%s'\n", err) @@ -56,7 +72,7 @@ func (u *User) SaveUser() (*User, error) { func (u *User) DeleteUser() error { // Validate username exists - _, err := GetUserByName(u.UserName) + _, err := UserGetByName(u.UserName) if err != nil { log.Printf("DeleteUser error finding user account to remove : '%s'\n", err) return err @@ -180,7 +196,7 @@ func LdapLoginCheck(username string, password string) (User, error) { u.UserName = username // try to get LDAP group membership - groups, err := GetLdapGroupMembership(username, password) + ldapGroups, err := LdapGetGroupMembership(username, password) if err != nil { if err.Error() == "invalid user credentials" { return u, nil @@ -190,22 +206,37 @@ func LdapLoginCheck(username string, password string) (User, error) { } // Compare all roles against the list of user's group membership - roleList, err := QueryRoles() + //roleList, err := QueryRoles() + groupList, err := GroupList() if err != nil { return u, err } matchFound := false - for _, role := range roleList { - for _, group := range groups { - if role.LdapGroup == group { - log.Printf("Found match with role '%s' and LDAP group '%s', user is allowed role ID '%d'\n", role.RoleName, role.LdapGroup, role.RoleId) - u.RoleId = role.RoleId + /* + for _, role := range roleList { + for _, group := range groups { + if role.LdapGroup == group { + log.Printf("Found match with role '%s' and LDAP group '%s', user is allowed role ID '%d'\n", role.RoleName, role.LdapGroup, role.RoleId) + u.RoleId = role.RoleId + matchFound = true + break + } //else { + //log.Printf("Role '%s' with LDAP group '%s' not match user group '%s'\n", role.RoleName, role.LdapGroup, group) + //} + } + } + */ + for _, group := range groupList { + for _, lg := range ldapGroups { + if group.LdapDn == lg { + log.Printf("Found match with groupname '%s' and LDAP group DN '%s', user is a member of group ID '%d'\n", group.GroupName, group.LdapDn, group.GroupId) + u.GroupId = group.GroupId matchFound = true break - } //else { - //log.Printf("Role '%s' with LDAP group '%s' not match user group '%s'\n", role.RoleName, role.LdapGroup, group) - //} + } else { + log.Printf("Groupname '%s' with LDAP group '%s' not match user group '%s'\n", group.GroupName, group.LdapDn, lg) + } } } @@ -226,7 +257,7 @@ func StoreLdapUser(u *User) error { return nil } -func GetUserByID(uid uint) (User, error) { +func UserGetByID(uid uint) (User, error) { var u User @@ -246,7 +277,7 @@ func GetUserByID(uid uint) (User, error) { } -func GetUserByName(username string) (User, error) { +func UserGetByName(username string) (User, error) { var u User @@ -259,6 +290,7 @@ func GetUserByName(username string) (User, error) { return u, nil } +/* func GetUserRoleByID(uid uint) (UserRole, error) { var ur UserRole @@ -273,8 +305,26 @@ func GetUserRoleByID(uid uint) (UserRole, error) { return ur, nil } +*/ -func GetUserRoleFromToken(c *gin.Context) (UserRole, error) { +func UserGetGroupByID(uid uint) (UserGroup, error) { + + var ug UserGroup + + // Query database for matching user object + log.Printf("UserGetGroupByID querying for userid '%d'\n", uid) + + err := db.QueryRowx("SELECT users.UserId, users.GroupId, users.UserName, users.Password, users.LdapUser, groups.GroupName, groups.LdapGroup, groups.LdapDN, groups.Admin FROM users INNER JOIN groups ON users.GroupId = groups.GroupId WHERE users.UserId=?", uid).StructScan(&ug) + if err != nil { + log.Printf("UserGetGroupByID received error when querying database : '%s'\n", err) + return ug, errors.New("UserGetGroupByID user id not found") + } + + return ug, nil +} + +/* +func UserGetRoleFromToken(c *gin.Context) (UserRole, error) { var ur UserRole @@ -286,17 +336,45 @@ func GetUserRoleFromToken(c *gin.Context) (UserRole, error) { } // Query database for matching user object - log.Printf("GetUserRoleFromToken querying for userid '%d'\n", user_id) + log.Printf("UserGetRoleFromToken querying for userid '%d'\n", user_id) err = db.QueryRowx("SELECT users.UserId, users.RoleId, users.UserName, users.Password, users.LdapUser, users.LdapDN, roles.RoleName, roles.ReadOnly, roles.Admin FROM users INNER JOIN roles ON users.RoleId = roles.RoleId WHERE users.UserId=?", user_id).StructScan(&ur) if err != nil { - log.Printf("GetUserRoleFromToken received error when querying database : '%s'\n", err) - return ur, errors.New("GetUserRoleFromToken user not found") + log.Printf("UserGetRoleFromToken received error when querying database : '%s'\n", err) + return ur, errors.New("UserGetRoleFromToken user not found") } return ur, nil } +*/ -func QueryUsers() ([]User, error) { +func UserGetSafesAllowed(userId int) ([]UserSafe, error) { + + var results []UserSafe + + // join users, groups and permissions + rows, err := db.Queryx("SELECT users.UserId, users.GroupId, users.Admin as AdminUser, groups.Admin as AdminGroup, permissions.SafeId, safe.SafeName FROM users INNER JOIN groups ON users.GroupId = groups.GroupId INNER JOIN permissions ON groups.GroupId = permissions.GroupId INNER JOIN safes on permissions.SafeId = safes.SafeId WHERE users.UserId=?", userId) + if err != nil { + log.Printf("UserGetSafesAllowed error executing sql record : '%s'\n", err) + return results, err + } else { + // parse all the results into a slice + for rows.Next() { + var us UserSafe + err = rows.StructScan(&us) + if err != nil { + log.Printf("UserGetSafesAllowed error parsing sql record : '%s'\n", err) + return results, err + } + results = append(results, us) + + } + log.Printf("UserGetSafesAllowed retrieved '%d' results\n", len(results)) + } + + return results, nil +} + +func UserList() ([]User, error) { var results []User // Query database for role definitions @@ -322,3 +400,23 @@ func QueryUsers() ([]User, error) { return results, nil } + +func UserCheckIfAdmin(userId int) bool { + // TODO + + u, err := UserGetByID(uint(userId)) + if err != nil { + log.Printf("UserCheckIfAdmin received error : '%s'\n", err) + return false + } + + return u.Admin +} + +func UserGetSafe() { + +} + +// need a way of checking what safe a user has access to +// if they only have access to one then that is easy +// if they are an admin then they have access to everything diff --git a/www/database.png b/www/database.png index c14fa8109a91413337507903f5297b96dbd97c6d..d7cea2ff6a06364eaff9394e9f010e27a22d97ba 100644 GIT binary patch literal 84866 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%0Dg9Ahj&Sh(#Mk**v+Y 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 literal 86053 zcmeFZWmuG5_&qu^3@|7vDIy{xQj!89NDfK}NJ&a6qBKZL4}wT44N58A>9n6 zf^_##XOD0B#_z;+&iQc8_5Y%CF|ePV_g-t=>wW@Mlw?nxIDY~Hft-@NEp- zSUrLW{N!9jA1n9|YJXSuCM2)p!W;yGgvd!rsy{VYOdzhHk{&5D{Kk002MIfIn~&lP zi5ArtlHMvJhg0Xc^&R!~>-z;>^egKJTS)N+vAwhS!08XACMTp~LNMNtKRC`9dSlaZ z)&6nSoIT5?{-9%?eTRdVW50gC*p~R#09HdY-=KE-gdE92ugHJt@6!i<(;pK2uSU?QJ7DfU zrKXs%{By!l5OOr{zZxO)CxJ?#V;!!w`~GYGz#H#s7c9 zQL;7(r@>KNfBs>$5yn%ppN>2^xyq;Ym+(Y&(wl(CYxD=tJyp*Bv_vvCbC`2tZ>Q5- zk+f?0TNU33Gcj&;HF9GNY8R%1t0Wj zKr^4i!+#l#krar_G6{-m8%p3q6*p++B{Q?+UlIS4Ke$SQh2zqHB!CYN`k)zl1^H)x z1zCS`F#dCn*A?4E@Dou5n)%m6G_t|2?C!5!U;JpZlt&}`IkViQ1eS7ukb3?XS>F)J8s{!z`lDsw;C!~UxH0KZcf}?=pJ~~ z_Bdce3u9pMS#P5x!LH$@)2C(q*3GVFWtQQTe6O%VPu_W@H#(C)w-WL{w$c8iB0$@gY8HtFG%{qT_j?#JLG5J8SH4?+vllYGP+F9JJ2CvM3ZB<@4UV0 zRrh2Wm$HJ3=+8B1|G};EnBnDdOW8zKn!eq!m*oU~nH?j#XT)*AawJ}QJOAs$TwUzr z>jj2qbZZ|cjPWi$6fvDqQX<>6Zpy#@boX5KkI2JZ$pjsiw-5R%81!F%UL50kcxcp@ zaILiA=Qfx8k8R$p0T-$@JR>qwPgEVe=T$4zWN`5?;qq2Dy@@vFO@D%__+gCnfNc=V zK&~V`-SPJe)teLf*yaT#yP2hpnHQF8>k||Xk7gC%+V$g$p&Sh5_co#{9=_6dO?9-H z_z;cJdt|8e+G=Z|uV{JcO*MwNT7MNSc32K&>GUnH+kGEEB0t^FBQqwab}}A+3g~_R zeG0twq#>8~X6_M>h+|8gt@q^_lw+-Zmd`&(ny`0z7E9`yRF|}uBepp|ixk>UqC1|If~QTbYv$jxsE+sY(jiZ-!8K-zn3;S3JS#r` zal}J&5XpxJd{esDvMmHjM<<+ys?zwo+~VzD)oyh5#_u0TfQ_u1xR*>?n|{h1yC9gj zC@!+*H?xRM`k}LBu7O#8EU=U*R((SmE#2l>?7?#+K|Yyy^0Y1XlxKWxLnHNVMP+^7 z24So2PlP9HCYQsOpSWxVsXF)c!G1;+;!FRIDo8DIlmSG?=HjH3w;caWWd)S4hZ#Y7Z2GR&Yky8NL-Q03)9TEgLhhp!*XmZaZH0 zDlAjJyFS1F-8F9bi%XEzSXJsIbb57Qf!Ja&`>QD8?#68Cv!Iy6=u8D}uquOKRhaOx zKI1=PJ<=aRcA4`UHH;b$$AxqMA(i1c5ei26nEC=RU=+|~le$}>F@7%xk~K(@|UyC=;rcv#`$J-Shfo3YzUD`U#g9YUV|hQSFGuTIn>j8FaH-{zV&-}?M4S)Gtgt$V zxGk&q&j`z&e7(7IT;sB#ca*1J{U$i=&h(Yz&`Y;0!Q3q4_(rFqR_8L3(y5{9&ib<7 z8V+|RY=UTbI_629Oh;)&^X@Vuns4{5=+z*K)~23*CEJ~jF|_Q@))>gW$1k}2qa$Hq zndC5kExTSIvG#LN(^0{LkCsa#rDcN#Zk1Nd7@gAAEC3vCJZPO`l0wH{wfzN0L*QR% z=jxAeIkzqm2-A??KiFN{-t1M@1%I^o;UrJVNU24P$$KH90rD)7`ACwXkYUIKd~;5&_>dm%=zlJB7l1*GoyXrFITVt=tX z0qdE~+ECmnZei%LrSWOutTPOhE}-9ak8Y(=!D?t6QBLsHtuSnFqB_7Z1vQ+s|_s5iHn+h z&SQ>R3lsHTuP?4LqBXTOqDguBD{I!v#+-DW^=1-mn`k>Ubgu}oG|YCVEJbM<*ltCh zd+X3HFj%26afcDLp6w-kYr^Ja17)&D;Y_OKP|SYQr?qa+YioE@t6~q3xi1Rbkvixg|>3!%f7mJ zBLHGkyA@r#(IHaSuc{`V{z(v%*$}B!O*uWUgQwn^s`$y{JdTAqdC(472DPp?8sVW| zIp3pZI1XndjtkF-?>3M?PEhT>@;dnFk@pnpDs5sDkimhN1o<=X#>tme<-+oLiql{y4d7ktO9usglH@!%Uf&-PG+J_6BbP;;Mz0wERsn!RNjnX?kpq2-e<1 zMj$4Apyn&}+lLt^PsfG`d=3gisgR>E`%@9h6p}0gN3X=TwWZMV%TC}QqK@f5VFId< zd{yQNOZl#mMQ3`S;IIfv#x`_HtB1dlqH8`A25Y^X{J8xM9X00QL_zejc9mt4CAuMtSc==Ew!^5j%Mk&r7-@W13p_7A8LNd?4vDRlVxu50O;KZ&ddzO7&M8kM_nCfF>s z0q&C39f&eSh7kS}kvZi4bv>`kOm@{vm=(|Pv}3m_ufhXgH;7})i{q3h>SNqqbCsQ!A2%jMOKV~^n`#n%bt3-%8XRQ%o#x91qCIpuu-Pl%(J&IGeX_JWC|vr{qEL z=fWXvz=PNQ5>Lk9^A%F)f{(FFkOwVcXJGHaxZx(zSBU?d8`L<^u%=Fl(QrdS^Zt+r zFVAo6iG* zpamW<^feGc7JXq4Nrq?iPacCdc~gFBYlO1MBt}#}yGE|-R(6^7m@ANK^xqf0y-C(A z10e^^V$ZcWTp&ks-dLAJ3W2$q{DLRtGCy^<6E9KX(&*wdb5vEv1u$3PF)Jl^l5pZ&-wQz0z(!|3BKC9i%jEJTDGj$K}^geMv>HBD5LPy=_ z!@8Ykw{o3lxGaHm=QM)(XjyKpJCfjoi!*|V=eWf3xQUQM*U9M93!A-_Kn#87nd%DJ$*(K= z(H^JU7R}Y0Xy3+Ft_}D|F2E-b;uOUZmQwfU`?9V(FY7G;F7dn@$Q`Fa%=%sY1_1#m zk$pf(9Iu+D%2CTn&&heV1r&ObogLcpQ{{vTT9!;OQP;V!GOPWw0ZR}dpOuLmAH2`6 z5Ic6IYnV_Pr6Wh$)OJ1>jQVX#c_VWW1)hhlbN~l&X%{q<4L_z+t7GuoecvIv@g=ya zDnFvbZTIVorGt&ma-vh`wZZk3IPtm%Q$B7E&{6eL)k2<`a^>ESI4eM?Z^04RxhVyO z``N1|cx~a#v1K}@1ed!@*PP-x&Lea_sGn2EQ43D^_IC0KJYiX(sh#O-aC+pMt6QLwl- z&Oqs9!7#s1wMn6{8rN6^WTtE1xjigyzh345HurWdxfK6AMDM5~j>E7po$M?mQ*VKe1qv0U+&>ivA3 z+JWdiy+P5+{O9cv3m&X}rRKx6eY=>t9@SZ3b{=x+6+8 zz0*M)3;nPyyw^j1PQ)p zvu|HittD_xGs0$%_O=EMt-xXUqN$hr>N4z8)xMc1*d6Tn-O)Fmk$3KXLYe8eH+9C1 zHrGww^RW`Ku{6*`cwLv?k(db`Pmfhy7>uJNqB`gdf>^x~D7X|uA2lSiy5>8#EP$p9 zf^b-Y(_HpOAbWTQI%=sR&DSQB#m!d{w@8_`}MOekP4l z#>hRUkJ21lr|7PiP;+Pwfj-(05T7mqL3>!1!NZuZfa)Yl&M&&`Z2XfCBm-#*G&CId zn?o;=@c0;$PqqtAl$?<`=u#3{x`uV%XjkMOTB+O5qxanX3a)aI1a~u%)Ii923of0K z0zg;VY4>?*H^cF4vuwiCZH9hzJ|}-9O!nfODAZ2TA5t0K>Uoh7H$QP6SUqCHbL0(% z3m~+W0KI19w8-Lp=TTc(BW6QJZ_NcjAV)5)HqqG(0ggO3nyaQ(gg`1oYE>scQ3}G* zjg&}B

@+ZwE$HQMtS@`K15lm(5qsqU+0=@{R5rD~$Wd%`gYSrfYThbzi4BT_8{H zbB){vYG)ys7_v6&jBav}yTn6-NN_x;Vr`~dqXw!REofQ{_jdv3HqVH+3$z~u0U5iL z8lhAKq&Vzn2Cv0n_sY8&8}P1ZC<$W30>ee9GuJ0FLXA*-#2N$v@y`x>rbGkvd8@vR zi464dRRj+u{`MSaS{=3Tyw{m1rXP>iQyYqfP{3-=HEgG!Dj|p3(L2Ty<2NK41Y4>n zGb*Le0Mf*-UMPq^!3+}P(#Jb;O;z9w_j@wa_uh~nxiwZ{`_KYtHcmV+KXVYmg- zvut=g&D<4m?Ghf1lR-b6t^*0EC?3J%G=&&pnxiQ}f?bP+C5WBlX`^^kM>Uzq;N$i1 z)&Y*;q6C^~0)Tt{(8~;CG?g_MRiO~qsD%JO8w~(bQ)$0YNq7ff z34S&jhyaQ+@Np+YHxR)p!Er9Y0Yxu<=~F}NZ~8A{*h~kGK+W5k56pmc z035$~73j6Ukp-kYIm(7aCD1|-@R`Z)uP)$KhZ8SBYV}*bkWXgr7KGx*h*OmgAVbK4PZ!D^D*s9z zt^+EAw3)4ZLIRQj&7%SMyMy^jP_Hiq-kYW``@cuWHWp9)MX`$S-1xOsbb#sKs2k-g z=Kp~w{m*mj4|)F@pHd9|X;h%P09NhU0tLIe)bATzE3x($w&@2Zg8!!>LFEZN*8i+t zjLKWa-*;@q`mbI68yjqpDw(YEJwXlJ3qL7rl!?vnOZ(5qdm|~kflNCbOv~R|@>VrP zW}wt!P~L3t%WHls0Cdgr`$62og0bC+X& zUePvw$jTOd%*)>81b_H4rb1Am0kc6ob*6@1hox5Fb_l?gne{e#9`8?R zX&(ZRZN<0hn1F{tvAhpQO96U$1QHqweUGqK<&HC=JEQha1NThs0T9QYt7Lm+H^F(l z5T9)@o@K|2N&~5Kl;HPu(=K&AwHU~KU1~X8)RRX$brat;$tH#MN=Y!i`I6#4nfW{~ z*bM@ztv=vjhZ4giS>91VqdD&xu_id&ef@@8x9khhs2%_WddGdaZOpQ`ebfYGNlGj2 zXLNeg6)9!X#I;-ir6>k5=}oIy_dDr#!Fad|bU15pxyCro^)#A;tV*+p`|cCniYIRq zKr9W|U_Oya8Wp3r{Z2Z_vN4c)pvJ|1=F;Q><9EIU?POQb`9b%wjV>;i`c&MbPyXZs zy}w})8so2$f0~GIDn_d#Bvybfb>k%?JKxNEYCwlq1QtU?W})2*a$xIb|x4pE#D_h zD=Xa;xcck)e-M$Lo77y9eR*My^a-ssF@t--Qq4w3Ub~ioOPcPzqaSfLqqejfpD()Q zI?ngCs5foS^^Td~Zs2B9tm3T7Z1;KsAoyI5*lGiT6A-YOS~YJ(uqrzpE2Pd2<|nl+ z^aA8%hPA1$-Ph8kzv#L9KufkX!)<3d??^KELye=cFHQ9Q_4PI$k;{4>@3t9SXWwpv zX9|a<1HJpY)1r3oHfab0^O`xf3?ug>Oelrv;Q`QB6;|CAFy)IN(+%o`Y?p4tmO7^6YT1y+Gc1Gn_6a~kOGm<>3_?wB&T(o43fAUPX z9b{@&#wug<>;iPtq7cXxG$6R$w2wQ*_j7eiC8i_QMg@$!7;Hb0cOaFO0O=a3deTH| zB6NAH3~OyKlXf&X0HuwfINfn$=7RG9V2(fKW+?H6$q^)vFG#G2UZR-7M65q~K)aq_ zhs%~@Qe|Lo;YZ$shgQ5>f*I|Btv^y>`#nCa4m?umlC%dtSyRPD2hv4R*p5r&GDO<| zmrqH-8*NlB5YrwJUwoQe{c`7Y_k^;q`}{86rHXn&>N z2Jq~+`cA`-w%-#o#A>2nNgVA;(J{kJOAY;Mr69DXd}pIrl;Ta5#rIP6J+}J8Kr)t3 zL)J#66)n0_voU&nf)6mVGs15lY%dNg^Any~v8kli@Yj6h z4nsAS1e>SD7`V33j;>z_O-9}_EToGxPPX6-!1!Jwfv=B*YWdU9yCA9`BK*c9?GB3srp>v$Q;P@_0GGIbof(^L#8shSw*F)n9a%> z-`ixX@J)K2LhXq&QBh!zUJm*7eg<*#bs0hCI^Q~APQ-x8hU(f*Ja|EWXL)?27ej4? z8DL?p?=)m=Fw01Iyo4=xegSlTS+}V$Sw>1I(di4b+YuaM#|Il7_alSq!$*%-03T-k ziA*uVti)n{H|Ry29G3ibTczQlucP+6c3OF;^)!cI*L$|P#a@vJqRH6SmiMZX9U$|*EgMG?oOer4_y@j6PS zwibbuY|WRKJBQo-{;JJib9ze*oKazLMkNG5eb|Q?Tza&Xaj0v82Hviqg z*F(m|=6rzTgNS+72g(K-Eq)2hhGQG9+@Z)xJk;LN1^{sRC}kUuwl3iB*>x$1;vKLr zlxS!sK^juAV!v%kcX^y|ySMUq&fbb{l|x!J2-5OM0Uo->wt`kCN9BA38NWf9h@pzp zlsqugGy`4H$h+kP&2Ar*mqDk$>sar|0~B7vK2?{$1es>G@wJ#Xc*v*$?>gq=V`995 zPj1=jo@u3oPI*i|luMu8TkFud(@zYeocmtxR(AjCiD$oKdWWZryEHt z1jh&4oFxKEhu?hW%`N9DV>re4P=)I_6&1~`B#FG4I`Ihq>HWSS$a!7y`xfS*1|E3~ zR=f)0>7DAbA!Z>btysTITcMtU=vnn^rr~GwLa3~AR1^RK?C^z%R#WDg3mJCyAtZR$SrIL#&-wypEZIAbb~(cf5`VK}07|KN>bkT3WVgd>r;PcLq%=qp#IT)EKXd zR+$bvccqh?hbU4jslbC`#yv3L-BIth=V!b8HhMJ4nM1fj_+8>}!$TXU22h28I7PPvLc--5q`PSS+WP^yCA^j@cpjj7o|J+#AK5YnQ_u$Jwq;;MTf6QfEJ`c*)AJI++xPGntqFJp=?m5qE0jPNKVy2 zVm`Em#;AU~eALFK0{6l!v&nn{=7Fy-uax<$(Y*c{(c*LUB+caEB4y zszwSOTR3XxUSA#dIzAjb%xuW5V%Q>$`TPOzSrBz~plA5Vtky7Wxx@9jm$IuurM_)J zN^XtOIJ51$f=s2TR39r&cP6`jlQbHUynE(+(2{z=AF4NG=~oE z)VKB*>rV(!pgj)g#YC=oZUzs=Mm9{ACtk@{Zv7|;V-HNu7Wrn zxys;$lM`;Ir*smXP5Pw@_zVU!0$zGf*=f@bwng0%@95nP{kl{Rmr^ATkkm=&Gwx!= zTr@Mf@*@i?b9YQ#AS|*lY`*M#iM2Qj+6a+Z-#^&m*qSDaKPh@ma#i*qA_D>Ege5z# z;)nE4Y9Ze}cE$$vmHZ-o(QQ2SqXEzpUD@@H$84cF!P)fAqlLkUNv-d-@23|MxEgY3 zpe0)}O;yXxnDvYx5@gEVopIom(D#_eOiDvY&K}j(ef6W$J3P?6Wvn7E6*(J^5r44H zw7geBFK?h57?)zp*h#VFJ)y)bzJ4xrH5-{t(fnvi0p6u4&R`=uWA-Jhe$(%DAJeVz zAOc~QHN)?hZXk2&D4E3NgnF{;CDLnLF*aSOXpoN!`4@!NWd=D>b~LI8L00zkCvSU* z$1f3xCqQ?t=+~~iyI@1xKQbO3Z!FpZ>ETdO7TZ!UUy{~^Og&Fqi(4c~=A(-2t;aOR zMEo4+6z03u8Z%S#)lH5%*OUG=&y7dtFdP(DO0wfQVWw_A%D@O!ym2CwJex_GsWL`E zuUQix0(RWb(~X>dcQmNogH@jzX3ghxftr^ZdMP};E72xB0WK(SBM&dRU1b_#8NZqx z#;!_Fi(U% zhtXB))oi7o381jskM`zKhSq*ilgkg((Es2M8J?#!stBL1hnLVxeGC0`-o>(|_|xZ; zU7ns+^lNLZ_$!eF*^SB{Q&h~dAqIN6g9q)Qcv21Jrtq*aIckmQ?u1Yzh5#>Tv>pmE zqLy=o@C9n9_Y{Eca1F_*@FIMXNFO=uiIR3E%MX-D{u@$gQ)vj{T;D5FzQ%jqtrgGq z<~$bU#XSRqEg2+k<$v7FH%z!@7JiCexUbTsZFRuB<}T13V=S#M2?1yx56!obyV`a3 zVk31k)uaHp!v(0|DtlXjD&Q`W>dG!OvfdryIdMcQ18+Y2_9dUbIex@QeGfO~o zdn%7P?&shPc_CCW(hpUza6T8H+7HHgPnG2lmb4b5HckcH0Ungr%V%JXaovs+04&q6 zQIID;kzr*-ecdD!z{^`?ZvbOAbujit>++sFFN@?J0%(sKYD{+J3PlwuFD=d$D`OY_ zeiP6PkrX*OzZ%AQ4zsOo+(N$d_pKfU9!28_L^8F$^p;jnj@UF2_br3Dc>509?(w#h zt8dt0Y)PV4%XRzK`A7cQ9Am+6|#cU_q$hUFEzWg155ei`!OyW`CD( zo)u4Bg4)9mveheR7fwOtDg3UT-eO4x!LXzEELpAD&1X4x%dN*oD-@}rOqyn+tzB9d zATD9MkfL=_6-ywl1kNr!dBh0w{Vv1(Q^}Hs{8lDIMGLJ4`i84FiF<3D0R%U3Q|VY5m0;1LDXR|LVRgTRmZPX z|b66@ZHdZFU5kt=urPq1zFzx;d}Ux-^CNo zKXUsJ%I^Q?m8b%{>DEvCPfzCAfxH2s5-MN$hB8n{Xb>z-#ica1yQ{v$9xMMFXJk{P{dWU9;S%y-a3zcKD>j}E$3cwI*=B* z?_LGk8UIq;*yA{>p6GobF=745FE8eM9a^LgrWN!c3rxEi_kn{Iqnsp;H$a~-qxv~6 z@8|z;HvD~D-csmGxBRrnsvMU|K06Cm+ZaQl7D?zf;a;}#0wHQQWct;5Z8 zxB*)($Z(|@2tRL+6YLb*h ziv=>9CGcUF1C7b$GWmTlvD{uhM5h*CFnEIPp78dZivkb!AA17|6cbe|{7h&h+MNysWSj*ygUxJ@Nfq>?3c>#Qv-_Z#~s`KHq71bP%rVc=e zE}M?leT*>;4KU?SgiN?^gaFKFZ|#OAb)r=Rxw6mzjjI zLXP~Jp6yY4Ww+zQov}3q?#fTVme|e*@~}t1TYJx0kH`Snvqx>q2#lA0XeX`$qXib& zavy?(R*l7RgtGXYCXSiW%nj`cgcKSJptoT)-xa2IUaNE6Sx)HPKKpY7f?5Cs3|WK% z*VGW+HB}X+@(4(s3n?6VLh|3Jy&Jog`-;8+UacVBu8B(d5DcwQnqzPQW~pG8>dF%pgS%H+u(CWX~*g zy}i|;^7m~~XT*vmuP-9Nfz*PaIXMc3I&)vF&)Vt}7^`2uF#oIx<8 zwU6ZwF90Lz!K=^i{oDx%r1LR=x!oFOcw-9442vvRd?$mlCr3<$s8>5#?c5rPMUjDm zC6#q`)t<5|E-t|M&PI{D9&I*WQ|Y)g;uz7^YwwENoXgA0PJ&Nl&R4cXrJ$c(Lgwds zY!837+Rw?wSA?1U9zg>^;s{;o(J0P*tdB^TTZm|z!mh-0q>Tf0tinD^Z=b8aO?pZQm=M zg&t_4E%GW^!VJSECZ2u=i=rpY<2M7Oi)-UL<97p?p1x)7f<;Hw;qxCG1lGe(wLP7LO-yh*p=a25-@ z_BQ4#6!oNgfYH=^;TW_AQUnmY4_ogrQkyCoq4n|}O}hE$du7-Yd|`o2l7uRpu~p*3 zC#=`!DH&0XFKO^#6g}oVG4@l?$t)`r1xmVgbyQ7CNqZwJ?UbunI-H=fBJ^qwD%N#? zl@$a;?~a&;WFc?O)i@J=AkO(|FAc9C~YuMD1+DzE?*T;)5phtSi*t zq#+@MgqHn`H|Oc}HY+`;8U*%Y&#Y$iVt8|1l(=oY-cus0x_uBTr`s^sZHzk)JBfBa z{HL{Uae3oRp?;O6YI>xX_)eJE+CYrc_}A*8EMm(iTIxEWe$wVly;=Ut1mjl*uBleo zy5}KDxFAQH!BKjNqbif7XP2GZwGAA`l;l8|LcU~d0J`iCwSudc&S~HFmJh)Xp=#_&hvomZxL6PY(;I)sP7>(Hi*{eAtLN-Y9xmJ2z zYs?!JW3bDw)B*--iO+#R38_byfD7KvI<%DG#i&0L~PJhpB9&!azuq80P1qkNHd*bFgkiEqq)OR{^Y{=UU*MlU%(zhTU zr%u(z_o1OVd_d$QWZgEmY!j0B9?U;#FRXT7ixz#n`&r`pNJrEtPRr1v-{r+zW&R4Q z#|yTyAkj+jd@+;z*@+{kof@FT#x>FN87ovC<<00w$?O`O0U5CigDEz4Xm`b;-*B+s zc^7Z9!wbKAj`=|^g5_M^?rpAk9b*G7kKbaOc_A5=#OD2@bkLv}fCZNEc*ZlQNcM0Y zQEbu_SO*<6zX zj?ULh#U3Iedp~G$6^n_sHz$Zd^=ut)$NWK_AAPNspl<17%#z*sAqhF^bIfts$m4ch zql|IBFXQzd9|<^1Yk(b6YH%SE?tM(*ABVVV`%TK^V5X?Z0O6DRP6|@G1Z2A>Zfl23 z3Y1wXFNN9HSe}8SJccRS?e`>n&^w>g18$m`GD6dL$xP&5@p6|9Su+c4_ux%|xl#5y zHIs@5*xHDcyw&+oMR@4@BFw-njxQ==p@`zkifo+opjX5N`ZNj{L~(yhbLTc>ShD(iMiKjhat z=1mwdliy#TYO&^Qy{{Fnl7BP|5(@FRFY~~*!YbN;XjRwRzoB{4=j@4>Lf;TETAimu z9(Z(G+>yTzKtO8Ed@rbddUAOsdc7HsajnUqtq)!YAyz?^b!^$GT;Q`EKQzzQm)O*w z={e5uaUHowyknR2D)H)={-bhhI)jb=lK3tPSrT)en2dh%R=hwW=F9=!0mm zD*>~mfNnlYRp*4E=XJsu(F}xDewx;skK*4r+%eqETFz*3*=o#}L&ZieCZ1!Fa6yI! zpjcvt?#uw~@S+09HB6YOg8b3_M^70%HoLdMl89VZ{E!pAtAOa*<^rnLm+bmS{`w%Z z+>v=V^b0VsfgFM(H+Fn-or{g9AcyoRrmihB=55p!klYwIUX=S11$n!BA&U{^G8m40 zE1XS_I|^O9qKX5ywd(<%6qmz&J}bTEYXsI$-s<`6ocJ9dDYV4#UT23zdq$j1-LMNw zb8=KD` zlJa@`Z(bm|W9_TrS3^VWa8=-Tj(CKu_ooa1sw*|Tcm~*4wy`!z5x3*q9{@}t!^eoa z!Py%C84sDTA)f8eDjl=?0oAPE_9IUJMttzqZ)T~4z`5wq&2mY6Ki?y%qNhbr!X}1v z=wkpR3EaFUV{3NbwA0t?;tJoRFG(WhVYcK@<1gl0DDp-H0m9e*(d+~xgx&?TAlr^F68hL#t;Vh-DZ+9ZukK0P9sO%HfI;_ z*yk3pR?acNWS?Z*-Fjs|dTcR}XTN;xnKohA5k&HPb$?iJ##<8l>o(5a zj-~IoSD;5 zHJNeGbJ+n*+3jks6!?7(NAeo)sOwSzw-65`{V(XVLR% zGNYR#B$ucOFvc7#=y|&yIaX#PSgI=w@yr+I!fq;YFl=JuKTJKyv?6;PXc&Tt=F%13 zIS#ulE1ZAQ>Z?kDM2MsnW%CqCvZs3RiGW*x^f({B<>d*>5+z5uFnwV=_cm`I1c7QH z6ktgFj6h}GY;5opTa3TusvE^lH;R*pyVmCFWDc^;G80>@IrnOH-bI?(pB<4C6thv# z$^~z-&>gDp5MwLUK(Wqkd3)9DJ@*B%Tu@@T^4OI*tiERbgvpRf#9c7ED(qqb2o+&5 zIfeD#t4S(OvcsB@cYCrc@tWp|mv7>YuU;8S3ua-aT^C=kC0$*}uOBCT93iiLN^iF_h4vjcK1;jtfPlN+qOaGKqB-Xg?p6WYG9v``BdhAAGJMH1O}pWe z3KG>X={Uf<#L?-%Rq3C@Nyr)bmFMH#JtiHt$)whB$(4I^7^13|-_Gtfpy#9@OEazUOltCqU$oeZhrw*N#PH?5lj^Zd7~%RYCy93X0C+eGn6=B+{Wq3cR*(Av9!3` zv=Y~j32p0xaMG&`Xn`&IMVvJ!mMzIn$fEC^>u8LY)rA{(DZmlo&$eH*M(+eXlfVg{ zBCIs1vL8NOkOe>Hk@#I#m6k=GW<*{11~r}3n35`)CAv=SheE+5Nkh=mG>3EkkUdIh zpy#TwDY^zirPV;3v+@3D$}VpZ<|l_c-KR@9B^Qd*^u0PAmT?vDwi)CB0usK0jfx&B zg?_hC6ih7x^q0C+<|t(l&-m@}x26g^l>3*sXw8(7na;=U9P`Hd{qXp6pN+98E>`yN{3jZ!*uHLT~ac-p#5X za|sry6w@6J``sWY^bf@fMd5wx_$akKvHqHHAb_ik%%F#<^fBopccc_Dc+BLcfA_S` zKi&5Gt0wKAQdinsZQGGYO<+)Bp{kS{(;vzqr7D8q!FpWlT0?&{JR|f$9Nv)Ud>TW>y0T% zT_-7^$6qp;-~T4SzP1AkiGSyliUXd%=e3bR%=2lro3L>{&MO{;I%86nG`iQmt2_PHJfb(d}=dE#1J?)C$h`?^RvBCol)93dRQ9!-j0 zfGWOdZ>Xx(|CIrMB|(Ei)?ai@PEjacjyzwCyM)J9{*c#ZO7TM7K!d!%yd2Jc5|oWr zMKn?2O9f|z5z4>4V-B^^33 z*Ao2u20&3$T$(&z5*TsSyi#$bS13;Tf-XuRT9bovu1E8Jt- zulDpFsOrU=US*(vKQo*Zam|=zP!ZG~00kzBjHSB$hRdp_UO7JoCPaB;l_u}3IKRv zPPLJ_z`TQixgEHS<8HpHAw%Gk6X){RJAkDb|F*F|HnUaHPbnP_wHE=nF9(_(uWF*W zvcV($nx};=hjkA=`qAmzgH5pwL?3OSTjc^emagI6sFS6Z@e(gnS}6_z>6LO1yfDH7 z|Eh}O566Jk-{A2*I^5R<)fh;6ad+KD1r4>9zY-0?>9i)fHb}Yti1Nq3Xs|1 z;tb%%Gk64iQ@Oywc_~i7B3eXwaL`2O)MF9UTrgHoXZ=^XS>zD^LI;jRiWv7`f8g6| z94WK1xGWP~z^o8m(J5dJ1m~qsXv-^F00qI z=uuj9DoH8J)SD^wzKbpLR%A47C%uLIA+|2H8leH1!K-*DDE_SrSWvQtkq$Z=u(ktg zY$~Y-fZjd4R9g)ki3z$}_;*d9*^{wykZ{2HoFJR`n&OY}(_OXvm4&T_QXdRLV-V>cCcxOQ` zhP0l~YwDq3 z1G4$%?*mWNA{(Rgh_6RZ7f)T$>^Y<@;2PZ9rrV3Kwmoua7;Tz0V-)*0H6d`Pe&^+fiWuuJs5Z&#%MS@`>LCne7r00#MSZ; zyK_j!D2{t!aT>4=K;sUuk*)4rc9GL1$4mz2&*%mA*4Y=-(vYX}UooOK%mv~H&+pd1 zlOJSpKjOkO@g*%4bqB0j>&(k* z&qZ8karGzLe6~jrCp3{8(VC&Fn9KI|hkdVH;8i4Y>9vxmN&aszoPKC>b1)1a&7DCk z=f&Z7!MG}-RN}nzJ;I;v0mqdsGV;w0+rg`m;*-b@fQ^YJ_|c99oR)U>js@<0yQ1=Q zpH+o3-2Bl7bAw>Nam=0C-C&y~E>z1gz;d`mG^|EFo8d5}>@f3k@Q7wClUL2S(zK4}aBdlB(yo%!1H_jDwo<-K%dr5(jN$z+yWrsTv;Bqv3K^Ki!P)s^5{2jhN9ym->J`;f~|5l-Bq4n z7Wwtr(hXSJViTHO5!$k5-oRnG1P^2I0C~*7!6dot1+vma-rp2aNbR~tj(PH=2642> zFT$TH4!`-bv=#$6w0q)sca7evAr(yhL3WYUt>_p2=T9GA215mSX*bEbA4iGH2xh8y zRQ6rgfa$KsMiB1d@HW{2^fs+Z-)0FJDaJ)aO_t@#AvQ zg+4l&vw4Fg9}o6??n_4V?%k`x7ETbwa1jMfV`{(e-|W9ze^7Tf(C+BIa-8~GE4!r! z$|<95%&V9{lATJKIV+W%16G@L%Md)%W(4NCGvG-_=AbjQCvm6%HYgB%!iuv6>DTlZsD--jZ65Rg3 zWc95Sr)0k1qGM{{TXoyU(Tt4&?zypzSYcw=!kjVthlN!rySXymPA1hhRvbQUm{)sf zSleGBldChxmijcfF12)lGr`_FDd|xghuZU=5KZ5bCPU!bOTcehRDdj%kr2%;nd5l= zRKADA#051Q&-_8;awQIXFxij130OoL*>O2mkrI7RGY`!A+1W6>p6(CcQEDTjGLzZT zo_W5qXJ*6XrwjANVe-37XWHeF-Mf{e$;@~vMZ8-hfqya*s@fq%5|%+b(k$h!?eSki~4tNvkjHS@muu1b6aSzWb- z1zk4t_Q_~zj7)TLnxXZ^t?=fUS%Se^V09v1ku~R7(M7&ByY`(@er$R4p5`YSZ#+%_ zf&ccCvyvS;?@A6F?GN;KAe3X48F637luW0cUKi526`%{uZ<*YO}`xU%sLGWHG5Hc7X{s67?Znl{HEc zsZr^JvwM`QW5g)uD-#r5W2}9p z@-xMyLey>JnO>$uB6JrAtz>{0He?@MSzlGT%K`sisIG(+5OPC=lb@c=eixYiT#fCd z-;vKbpB5TE*mluX6P`f+o_v-3LiWjdmrcdIKD)Y{Jfn^I4XzV`uUo@CUt?zDC_FuJ z7GW>sV71S5ylu=MkcxruBZ&E&%<6{dK{2IR157PSoBRymh8$pyxui%1+ zWkK9`Hz9cayqMmp;)_48j!v+NlR*{v_FL`|ehRpoD?sT36)$mRUx$A_$O!x7q%W}) z_j&STVg*2Qa!(BNl**;$Plb01zvQpVUweoJ+P&k!}Pzy`V*Y1sOkK_x1YmMe$&1vp{i1AZ^66b z>!bVUjt#4s^31&V>lM0y^IR!x3~%p8p`*BhRCtTtY+OZ5E5&bW5hJ~Kz=8&uA%(s5 zfq~^~Q{{+jE1`9Z{)O7TvU6=lN^=kDa;Qh9MX++Pk#hnk+xHScv>MlO6-vQ?&P}YnyS+`3K@IpP4KR7K~Bq}0X z*de6-4ARg#n_eoZ88*e)VrO$fO1?@BzS10^q*LI1epXPK`*>!7js%dfRb4e{ zeGD6-+222JwI)Yb8sqco8jNbh9@fuRQNWAwLwM>&c{=G1z0+$VY|>hN)n#7F`8wkN zw5vafZwar#e8x`8!@Nyd>){Gha+_SIBz@M*0@F9}AH+2jRA$#)IQlOgRf+B&e7yB* zYxU-8Q46C}{ik0br)jB&dpYdqix0irc}@@Tbu6*5+O$g)2nesL5clc+SY>+{mcdv7 z5}BMnuw^r2wMCa}e~k`7RO5G^y*hd}&xxa|+E&Z)=gXrX!F@iJ3QzT%Uw zIQ>&s3Lk%W9bsL6->iP=qBn6YJIF=Gd?1l=eTI~d|+JOI;gIAQNb(95&99*Q4(w(iQik|SW4apW^nzv2%bB89Ro=zj zTD>*Kz)FFUiDZX8v5_z)9v!M7;e)?nbg{tDr>6ym> zq_qN)>dIyc%i5Up_@CFLi?_zLd$gCEbfcfKg|@S21D<$XU`8V2_;=|ts$P=~d^$Hkf%5pBu8Qbb1mLL@NM}nERLhQ-&^-3qh1a<%*b6+nL=sp~qnPPBzFQeO> zD-RT$X?_cD_-7dIEvFqAP2HKo+>-ye3=>t~c~bV_KDm}+gvvAWSDXkI!Uw&Nvm8*p zvWm%sgO9)v?prbarY46Ywn7=J9?2>O@a1;p^TC&We~KCY#&6qz7rK4>&cm+q>*5n_ zt5f+`+2^wzwZi;mU_`Rj!khE$##1-?ud|V3KE!Bce>$*T6v>{-xO9^rcn0)WU&^AL zz*d~>oBCNQ^rJ-2RpvB#%Pq)Y+k`im>u!%5gI?V=ypK7O&-RiRkC^DcsK6~sW~RKF zD7$IkFZc#nq@x|8QoEF1aJ~5LW~Bevcqpaa1Iyp@Ywkbd$N&<$Pr>BE!CUb2E}?fp znARo%(G7B*D!6helZG_%v6=%{79EvQ2-0hZ#v)U5<^up~Q6~LR+W23r^H&q{TGj24 ztcM&vc>LrSuA^EJfP8>KnqLcHZTLTvfx$Zg+vu9SGmPznyyv0j1cVZ6VBTq3>r4z7 zSu@;rkATSEZX;oTiN=_p07Jd@4i*GZ&6SHuA_1ys8gLCOEtbC}UTBbKFZmx#9c2r|HXh?GP-g%LT3!g1&5ztr!4&Mg zSm?d)?L?ALU=2X4xbsQvO@DjypY)Wo-rP47D7XWpBCCcXNiISNHDcj8b1n%p=9T-U zULHFLfOr3g#4Qh01ybGQ{%5cnJpS|Xu2JSi{v4y8vrb6nD+=zjLY@09xW0k!sN$?8zfC})J*9}`0I)UAV98fso>QV$6J zyK+F&)XB{uWY((rxxiHEKQaWg-yl^efPQ|g)rEA8fmaZxMaHZ38VSy33rLp-C^_jE z0u>t03+~@dh{#i?t6~YL|CcHTXK@(t`0=KTW}iW#)nFOUGNSRdBak;a2D-Neh1bPF z{4^%0U{U2Y|Ci?Hv{U&YiJu!NmzsRw1pH@M%i#FtRI7=PvSo z22i7S+9CT$X*{3V%5bB@UFtr}E^nu2;?}XhIcEe&%(vPS^9KN=aOr%KAw);V zLm=WHc@ELOf5qBBSZ!Kb%(@k2E6(~?EkMu#*Zn_w0nahOCUhAC0KEx0gs}mnyQ6M@ zmfq9&b}um7?15C5K-_fzq3*s3cnR*5A;2Uzt^;beAMN+MPLJlK#HLmO!KxIXo`VfR zc*_tbEQ6Ih-wSc8IIq%Bja)FqP{#+I{QhY;UcNe^1xjAVAfMESEH~{);CNLkTZ8}uu z=vY4D;d-hLh&9bG85Z;3iz>VpUMl=He0`?3A}Z|ZFDTQl*}M$6VlPlFH^3Qd?tn?% z0INu@1(>L!@%TE?Y^njwx*F7J0{9?V1zq<)A^__Zz@w_}H6(^ZJS!uKUXsKAssIfC zpHu*DRIwmh#ek}jx?6MdbJ;wK6o8qm(DfU;zF+_<0DZN-y8^oyQF3#TpFU%{2xwVu zw?Bx}p6qu84oV&_SwV3Vqy4y+F94=`xo!qme+vm_1?+2Xihisw#g{W>qhOBJGvzorHNFn?HI<$L4-b^NVw+ULAe@SA^=%$P$0MK( zz2p|m-UCTuCj30AS~mygyWa=9n*6waAap_$MAVfFXlbKVhi@O82g`xW7%+T zh1)T?;egL<2JpPNWD7}XzMSHA2ki?=@koUmXq^pf<0d=@Y!U{*b~lFvi5Wn;`crYh zAs^)XW(sKU0XE$nsvrcG_XEfp^ajae9r~kq%uCJYveeidmN|dPC_?^AWyYyQR7HpltXq) zTn{+%@>IY7L-ATnrqV`Vj@CW-A*Bdx-4yFrY8cUI**JAk4}*K%H5qI+4oVklc*Hdo%v42T955Jmmj zUx(Dsz-llD+rAi_lO2^l?U#PrErO`eaJrz#zW)gY98y-ZAFHbs`6FR3J!U`Zr>XI^XE_HX71bs{9aD3T|j14)k2yY}?&x)O z?EoWgaAbi07#3PyYuEY-qfa#6!gEDN{=wGR);DDlfy&R+L_1H%`Is8pt}Gc2e8~w& z{w~~pN%eGX)M!gb(n@WiUzicmebM0C-Zzur?G2GYTsMi2`X=phe4+G#_(X_BP3{aa z%H)&^+4_Ms|5GFX0p3#qn>q8Vq_viXHl8mSC@k5I;kt|jg|h7vhUfPnc@r`6LvV7c zPGXh=TmU$ zp_g#&{_BvQ316;?*eUlDVY#@6bjefVV;}U3C#M zZkd{j6yBOO8BemEKfhaMtm?++QUD<2MsF0`g@`;%SmVoBNW+p1F^hNAXW(~{-FhbM zMIEjUrr57jCIw#<155o3BAeCy2LgRQ5Am@!c?cv-p=fk1?CYe(*OD(?g0D*sN{Q!C za0f+WWl1T|<)3MHvP3?jF>d}kD06DVM^`6EeMi0LL@vsW?H{uSJpTUpUE(=Cc_$jl zIqOL%dR^tYx9Xy)`vJ((Yc6*y)xu8^b%90ELMq3gAFX(; zF!7{aRu+Y>O3b*#njs52fRnj?#S0I$xpQ8j3Gr^vFuZQ;>AByg(%1#OTVK`Wj)Q3v z7R)W-VMd(9S#o1m2?-?#Kg*)fbHbEJisO!y1~Md(j|!aVb;!XD_`{JoLpD6|rQ`P@ zakUJo#Z~j0!-OhsZ_eMaAmA@ta|U`+MyUdt9~n2S2UX9xI$u+tA>r@i*KB;bG#zy` z;eSNGY>;~6whjTjwWZ|Q+-38iM#K|*MH^H@3UR{#m5R0h6{G^33<>YCk9d#46(xw! zqF}GbDqU@NTgIe5A3kMIerR#i%c7_o!qG2tk7HCi?@iR=|)8_q!@ofnMBQw$1Lz#9J1p!>Ovq?KhI# zFQAzmD3CCEZ6AkBrwflgV@*33Z(A-p+3prYk9Kk6F%H zScdxtpG)L-L?HN!eq=}$DK`mfRthYtVEN;s@a zV#>0I-Z2-?fVWM+ojurlg9>xJ(Z^5cE}^h`AAQFEjO9N9YQC8sx$2 zCrWVyp}}6{R~IRT2+XlDWjCa;MoyJYRUXT4NeInt@%fM`;p<@slZ-SWFi9$ykba6V z&zn6HY3#gHyk%@G$7QrIaq5+#;C8gJ4iP4$Gd{J_i#|$UUni_74vo2$yXecIAxT1n zh>grkJIScTz|4e9;a=SE4FjqPnhw91&;Znj^;J-PVwC72Yhzcve^bH~6XxMb%MhV( zT5zQ_|8?7$C_QOxmM>$cX4cC}O{pfd zNb{mDnIyd2#}QuQaELWRx;%AneWiRl2tipe)rD+uXPZ}q0ku-tix@zc5|WNqRtkfm z0*3Sb!2i#`3`q=8U21+31QQ4UjgOt2GM?Y7|JIin0v54i;p0Ixe)M}R8Y8fz@hmTk z1i4lpBdb3^%-R#$%|Y|$&pH2%N#X{zQ(%r8OMg&7VKrzw-7WIp{ONVXz%X^51HAGb zy|YUsh1VM^n$^Tde>eynY$7*wR_+sW&J#Zy(^ftc5=2NLzKbAtH*JIe`A|go=1*YHJ2BI25A(C!=dmD2%K5_t;}tvKIV^7c%`@qVs#2gB zY=VgUC_AF&GDYiRA`&ihN%)JwFD6)o-$9hR7XmeRN6I>Nc8!J&CcY(-C1BKc5wW)+ zaUS+OPKg3}jaoVTomT1^*ez71QwxT&z>pf*swLeL@vuF%sQWSYx&;b4J4q@`igY4g zHcm2>JDoC!9Xlw2TWMqC9tSC%_1*BsnkYQNb@QgQs2AJ|Q~bSd>ir9LnU4-le&8P) zeG@kRm8rw<=`AthAwzfg8g-`ylZ&um7(u2i%ryA>oBP~bZwiXvD2gdy^TsQ6jk(mZ zlRHY%*vnhCKR%T={beRpBAfAcxn)OyS17^zt5;q}bR#-%rUH5nY!$Fwzrau`3g89b!pIpyJbh3%qd@=uYfddf zQx=At;(n$j44#lW=;?fn;XoOJuXJm1SiMC&hAmKNp(VkF`0(2hG=N7Zn(CSe`0?#0 zH^w{PY1iv7^vQkJ=E?M6mj+*A(SLt)D7C2k=JH3~gpc6cKL=F*=UXIjxROm+t@a>o z+1&@sbh;cfF$gX$G*POlrVjqi9bFv}6L$PZdZ4489h}uN|MNv8P({&r^iKCeJOW<> zG!ynAUh&mqn2qKA;~#R+B)y}B8mPsp7!-Xs6@|hE!xdHE-c!GY0*47Zv1pCl|mF49%6wfZ?%@GQONMlMle_pvZK>6-$A25v;KBh3q!)90A7ux zl~v8&0b5Sa))JaWZAGorX)4Hzx>l){OP~zrK;u)SV@YjPqptVF+7*B%xv|k8!_}1I zSn!q9z?zW8MlXK0D+GN3&jbxc<8Nr2Pkaq+ribJO;%pT&yerX|2ZO44@rYMoOhMxn z?`Sdo^I_29YfPYP@w~@rAxqSXcW0`opFZbIr#t(o#)Yb)fXDxO_9HE@9#QB_(zG91 zsiJ>-^zNV}AmU%2`TF-QA5*SHQf0-1z7Zj`+h68gVTFe0Z!?2*&OVb$FGmua2gVD` z`OyCMx3ejMS{78S1HC8JL99NY;%qp&P0;`P`XjJwz@LW?Y61$V6waEFIwbwK`)4ni z`FJ*cmD}FOqamDYKpmhiD>&5KSP^P{e%(i(|273oEfwfL60SRN@eaUw>78qe@=7{I zsW)_Xyz3ZzzlIRsf(q6F;r`I3aUfjl0JJutyz*J2(0uhQ#8x(xz6^|dMx%51;4zkq z4mk?{Y6&q|R~VFeoXI)_`hW=Va2fDsN%r@SfN(@%UfCe$ulyrWk_rb2+yeig9tf0j z=-f*2U;9Gn0aVU!8>WybzeIcsBlCnQpwNtoD!^NQdy^a)e#fzw`Cnr){dd@jkqvRa z0NgGEnRiA|Ej~bR%zl)>XXdmtT{4~pu-1jm|KO+3)%HN@i6PKaSc39lK|amkGit6S zzQFy6ywW~H-as~@La%j8PX=#*4C%ce2DHE5fDHV@c$?rKE`UAwaxutZ>o097PXk6^ z{<}Xn5Lkb*^2P5Q4fjLuLcFox zgf%-SH{}3NubVIWxy=uap)~`u_d4aR8Q~G84rY%h@$c$ z=Y7Fa|7RAph0dmM(j0nX+XDSMcI)9drhGgJh$b1~01x~REmH&F4?lpIH{SD&Ko{~RO=R6L$hd*X z#>1x%E+*rH;ycR6ecwpMxTy^xEea!mxEUYnt4wY`1WAd_bcxB+K{H^GZ#nq&Xx_=V z`NjPdtVK6b3&O9$`onmJV2j$k6Z7JA}jijsk%~!!mfP z=ZrbtNjDjc2p4CMy?uPR>)F4?;C~PBWlO=t4TX|-M-myqXM6HZh6-KEScv{_0|Wrb zMAwnI$gyl2&x`#lP!WumpnlcRqjnz0C0x-C7^|wLfNxJOFd)re_2=pp^t_asfN{eN z*K8;mS-lW6uH-Q)`+P>i-UdwC-#qC3 zQv!O2ahm7~ncbCt!dv(R>hbYPp~gYgL{E%40F|@H zU5ax^dBLb@j4&=7Nc`()Z2fzTjH0li$J5_qMm~TVxmQTm0Bd*v2-MrRTy|B-A>AlW zQ<0=ugyJ3&`uj~pq#0!_xQ^352!Zwd0+|jTw5l~9K?~{7-O<2#xCtpHc(?^ea2YQG|IhUn z=FM|OtoHJ!mKDkMp~hfJu|QCSvfBRXc1vmEw;_G1V*RUk}GMAOt`v4oNcX4+`5PhJMG6i`Oq{4*79vh?F+FaPerUl2bG{4(u^8lFi0%jLq-fqGWKx4p5+2d<8`xz8kpp@H zY)ooB53O!W?5S(v2*{3@5GPSMdKsf8`XJ-=wpRVXreposj5E-#v9O|8IX+31I_a`Z zu4{0rm7+v5AW)rOyvZ=k6ukQYDEb@>3!#8n`F*9tZqgFnSvMsdy^VWYh?K_W80ex> z?W+E8{&#m_NMftb44?N0{1Nw0J3UVg%g00ASiZu4jV-Qhu1WM4?L~6_WE>@E$llUq zF~hPg{Z5DnYr(X-#>|2YlNm1l+= zOSxx`jaF*I*$-3|5!qh<>JiIdd$iGANl<~LG2_evGxk^AKC?>y?k_aQ-^XO|wVn)&v>)*<|_D-WFc-<#UGR0`O$fh3-P zV)t)T)$+`QME8+qwxwgD&x}X~tw3#~|88_R2P*9Bn=V^7dYSMkvdlO6;(Jjiqw|NWTSv&a10<&3+AuOxRi#1wyW>^}Z$8ko;4R&;S^ z`r~v=_TNs~`RfAe`+v78rtWNPria4ZYN@UnoQ;iA*=Ekfe?Nhx%KC8jDxD?KDixC0 zy0afL#v-=Q{i``qiD$pA+`cpukLU$n2JjK=dfsi{O~>Hle>^!z6m;&vHvCoO`Ygr=g6_+9*)CiXm$HryKIoF&*$=(oq;m(fKLH7id+xB_~SXu&nvPX z)Ax9BM5zXulnpnmERBGBA6It~3{QAoNj5V_)J@QVHcEu?KF)V%$5x6ZPb^153#|oy z3;DRz8bS4^wuQAP-*Je(R4}yb)WTV^^oR9Ro_qnaCqoFR)s1eq1?5N@^Ufw_*k5g1 zF$nSo!j&KN#uR`~?sH}>DntIMwZVhZjK{F=#o>lm@h!EX^@DC+`IwWA`2@zak+Yn$ zT^4*yyzzGiYZ~yOid9&FF1K%%pcY#9?;2cwn4?0{m<9g!+%h+(2E3(JS<=Lq8GN0k zT?2abolkiNMV6sOMAMO4>(oHHTgv$A{mW*VDRSV4%%unP5zw^xwxH|ckVwHauHOI z7UY=DNG3`J)PrV!+z7K<-ZL&?_;T@bFXR>|5#$h(R**Ma{44!|z@4(*Z;KyqWxU)Ho>6 z?dFjdsAevt{Fq3n?l%uk-|LJD0qmx7v@a-m<}mx?jgv*Q>!X;#mp80~o?1|0i33yMhA+td=&4$5(!)g|!o^AP{?dr%-udPwv+XGH_ z`3s^0fn%cVuDV38H-W||q!tK7hRBhvzX-9c{)ap69=M0!E|@rBNF$D+s$5ATuEQea z*d!2s6*Gbb7viI^_0{f+@q@jYX6Bm^VT7kI2#%o@hXbzE+`s&sq>F90=^dvR-bwmb zEedVPV}AN9=FM&3!3#OgTpSnoCyHk#{(&OJ#!~g~j~<&34sjJ6CCjag$+=oF`BFA~ zVyXW0zV7p&oF8Ry&i^*%Oby%W7s~3c_#3T6FYaE1j$Gz&ULp-mIF0!U%Z|e==(9#k zZL&P=>AgD@ApDc9Z1Bm|6joik)NBeggh)w;fumUl{A3)cKe*y?UvX)zxWSgGuvK;ANYl&_;xNtGf`7W+=#Z?%g|&R1(6ypL{hY2B~=7lE+(jFWw7! z5d;Hnieu=>1{6RD6=OtvK_X$y!^J5_HP>=_7Te65sIG-%gn(H>u>x_EEr&+G3y zO%-M*M>WlM9_EL)Zdn{$rWf)qV;IfI>)3ZJs!r}=?|5xr|Kp^C^iNF&_|>agLCd5L zqr%3Wp$B*Et33RLG>;vBuI7K5UA$TN(#XmD#vE^9w`LM~O{Wc}F2CqbmdZP9km%Y}Xb@ERc{8!Z4s3Oh)r1 z{78+$EUU~tu+qvP2{NauKWt(^P17Vv=oHY*N*n?0Nxd{#)J4#?hzKbRBmuOlTdXHh z7@A}tj(KN+&K!xBaVBgHxN9jpd@?X$n|Wmj&k`#H`8;@XxOjYFTL~mn1GsDBi>YA? z;216g4ySL%YkxG%qvfS!EkNFYoU1Zn%zZp>m|{<`Cvn3yBDnbU_mhZ|A57pXkIF09 zdpcDUs{F~Kc92(WJw0>m_7(V>72ivihJ6pJy8_M1hE?wc5v7kM@Rl2FUNnqwKM_9{T-ck-=-baT zsXi2V$4c{#feBwg&x#m0O@@nYLTATLCQ*l5)hWw=+9L~l?Rymb%gxud79UO2FRv?; zm3ZVO4s<)S4~TfyJBgJWjIEpoj@;dL{jydRv;0ZS)V=>;tnms3Z;*y*$^{Z=9=aA;cId|!;elY9Rgj=Z<9V4wNUzGss&t z&s_f6(j`2%JPanuC)N@vz7ZaAY-_Pf=`;=khe^Q*a3j^Zc3lD5k3$)A%Xr-L25Zix zy}HygDE(}(DI_{ALftvqhpSr>{~!tNwiI;hAE^p1H<-Qx||UQGEo zpjf_TLX7YW2;@t+(tq-xp0`kfL^*a{QnPA6W^h(dW-kZ_Ez9^AF2M z!k>)ze;gXI-Hm8E9UXGETnqO#JMLlh-YlU)rmB9stzPVS%gJeb@sq`vYLZ3E=+=i? z|4qd{>pUM)hb?;1=A8ix%ER5nt6IqM598HnG&TtB3Bj>UcA*_p9 za?r5+(WJ7jeDP5jr0*KhONc0>S8!;y5vRzk%mOu_Dz+xFKKc+?wZ!OR=DnzEEjHU4^Z!m`9gm(xQLDxhn?5 zh&`WmrAtS>Ue)V=zTC1OWft>4Wytf4+{sU-b-jp_DDbl^xIn)-XDu{N+%TbEV6w|j zB{AQ2iiPUSdI8$>brM({e{l# zl>(xUy=}+-4b80Yy^8Szeg~HrjXwmP~;C^GWgSkaIY!C5Ng}D@B53a?(EVsBA3`)3E)pd zS(xy-QHpQGL9EJTA)gl16>gW+$6KB(6br=*spdH5l^V3L{|`nJxeSwC>N~sv|0Mx0 z#19jhgv)%5Kz5O$VQb<1cqv#+NZL5{WG(65%K&*{A`9Zju!*IFWZ>Ee5y4=ffYR`T zbJYhS`DK1hBt!d2gdMA`Y0hhTcdgjF+^X*e6m@-g({zJ_2<~wlc*!_-`kv>cr(DReNx>Y^J=^idQU^O?#UCD$x8@R)-+OofrWMOpBFlXTjRd$xZhjy=_=~^1LZIP-a z|2;kmn4HCUxJ!!}b-a%x{Og^@q$NpI@vB?~kNhU7N!m z&IwM>RpqeJ#K4H!$P$SdQcWt2Da)1~brQawkP9$vx^&Beutu&hG*HL9%pNY(BR?-q zrD%(oSHU_Qw}#>EjXVUQBJ-Ui`Lf-N$brN1lm(i}uJZ?jPW~rpBu)4i55=|v(A!Q6 zDk;814Y|3vjNSE}IB8fXx%tHiJ;IaadEOO=pp%s6rMXuEyZlE#Y2sD?`Rwmdt@<{T z=0KY0;kVzx%iD{Qp34%Gt6hVU^+$GHrY`BF4+d~`Z}>;lD)uv|kZadJ|3NjBTU4tW z;qq*k=EP|O-bjp*)=WwbSoiK;2aW?OxHX5F0zU@>|VI5a;W6xyv8g0=Wquwo#bqj&?ix`I!CssC0BgE^0SJx-L1Ou5xkHk$P& zPp7`jcd@}msP?t0uK$%_(9Y}OpE#K{(Pl)LtB+{AMh`dc(0jFiU(wK($*-f88hH^I z;;|gKAM>$@hoU40C5@Ha1-G?a;++>Uh|vG^i){0ph1!hmE9J>j-=vc+Cav_q(jTj+Plu99fQel*3pI8s|H zR?@&uv*%eS-cvd6OT<5&_;lq0KK)ITcE+PXiQz>;#ib__o1=QoMg$52XzcFgHTQLb z(9P9lXS3tIxm=RCXSu-mcG=cjo}dm#Af`o=U6Q{`%rU+u$^KA!B2M+fal$b(X@VM< zkzRR|tsF$Cu(ljo5|+Psr-R9j3KSa)c5Bf&Lcp|nLR&e3$Fq9Vg~ix>pps6?T@Bw; zSJF!62mLutd;3EFnySK|Z`~P&TLssj$<+|EsiaJiDr+mfgeJcz)UenN|4|TZ;PVf6 zajP0@?wQN5K&Nx=_Z`|ley;1%0fT5v&E*gvjr|I=b~7*^&LG3qKIz|{-%4isceTzS zP?jbNyF0h=KZJnFF~4@TQuVD}VZXu1fYa7GRB#U(6Y=C58|0A#D2# zmKmVX20I$|f6+03j}1;}zo80;aGpy|x;ozAPLE3PtE!NLO!N5nzz(w^E4@w9m~)21 zePU3HQw+KUksCA}bm9^~d%VAAMkoW^6TnbP|No=^F9Qh$!%#@EnujsPy| z136QTpE)|8fSJoKTZl#w18g}}oT(w2RT--BO1${O?j=>YZctPEN#Sk#zKAl7I5vEe zRBZD!B0PtgG7|%^xKE&J{nG~t=!Rbzfh^5**9ENs2)EO6#b&p}N=vUdHX8I|h8Pav zhemaN-W={ar8*?jpBm`wKS4EWf9#6_LdK+Srux?kaKOV9<)pPSR*#0C<E0{~aUv*w)Aph`Q03s6k6|vmBE9VRlYmHq=FQMihd}S?+|+zNe8}LpVGYIm zUp9cgSP~ef>kyA84VS~o2R^hBt$r~f96am0KrGkg7nXJS$OHUYyl2b8u;7w zXL&gr&^!3{-CUl6JrKn$3%EV^$vSDr$q3D^DF(Gst<7l`!uaGS8_Em)H2`Fsit^X6 zQ3_&#K8@tcx?lm;KT%rr##yB1dvPinxTt<0npg&`7Q@ZijuOKaNKl7h1Jc>HAJwrL zkHrDxRv*+{=e%s!81w|nSb}mRDqh7Z-3%-h)w;IVh*# z0hs(lpgB$eI8p5tvuZwH4HUkXo^j|Gv@*Ks4OJ8=9}92|)PK%z!8C(_1Az1%r0fI`-yy(zF`4Ms;LD%*(&gPf z{!-1P=i8wuRO;fBsX>R)6jK9G5Wf$~a~DHtkABXa1-xIl(ghB?R|~I}?JAP-T0h2>+?GnmZ2o@9G}IU-MGiF-l4kQKmAP?;9m0FQ<}K$FAj!>dYx^`f{9u) z$Fj!|0jBz!L9LTP`V*urVzc0k~)(CFV)8ONtH`WUcIoucmdg8;U#D`u$gKlI@ zJbk|eBpzhSXkmpaj!G)f6V$~35UZ}ohkx~Cl*T?pnS)XkPTWjCFB*NmZvoV>Ncr64 zL};t$cO`tbvL0Q#Ff|Dn3VEKZqr5EaV~zTUAe=1Lp!{0*qZ?Gvt!M`%NL<#)(}(uP7Jng+tK;C@JNjHVmVC2FrWD>AP(K?Y3Sbq&e)K%gfycWxm>J0(lu2j-iu=v|)PlAKW&dR2=dDkoV@{RJDEo z@Y>tPMzIZ6m5Fs)op{U3_EAu?_eplCh z-Ov3z@BKW#<2l}c-uHO_xrSqJd#!bz=Q@Ya_cQ377&e**6%BJm6U1sq^_W!wXw!?O z!w>O(1sF2cK<}2d!0tghJaMhjhn#(KnzRWz*WMN|zdJPg2*Qp)e+Q!Er&BxM6|rV|9Nu0X?H5$zTjQuJlT}L;A7arzgj-8aT?`d7!zvR&ajN=t&_;GL~nTCW1R@;OL5ASZxw?*0MjQ1xqJ?V z1Dr_o6`rFXCbsUPR2)E#b%)dtveiHJBQVOdpqt_iQ9zJd$gmj{wsuK2$^uT(z|1~t zKZG!V8u?%lo_hGVS=J#)Z+O$gZ-buY!s_<3Sc;U7(vf2xP#?OM))z2$J&W@dLLe$X z_8v5|XK$Jg8RGwg!B+1Gvqge;xC)&ZQG)cJkH?EBwhHcPAF(W6e~%`J|<6YO1oH_GFQFV@5U`=yl|SZPn}1u zF*-n%hf2bhq^b9A$0aQ@O|*oRrYnT?45Alh;0P5Iu*f&z*jz>G%hX>*xRZ+@$U(QA zask6nTz8-%Bz&0NNY3${$U#DF^}4?FE@9Rf$U=b79s zElh)yX4fSa8VqwZi~WL%mD=@K_6W_Cvi$A!PqJf1dxCyQZ$g-nKZp3a&20dy4yw1< z#E)pAQ`BshQ4BA#q|tCvo{{WbG7)1|iSM+2rpxiCfA4RNX+48QYeirQXF8F5XbW}x z(Z+^KkU271^j<}Cq(9Y}HctpG19d;?K2JF}+0`l(Dec2PB0)snEq|q?*JN}BY%|}; zZ7jwvFy-S{G;0Z#ke3O}V(Z5X-=YR+9PD8SCI-*|CO^dWm}`W;hg3vf?o+G+GELw6 z`Gq{~h1%i07+qsAnUison@R&*cl|JrC6w3zip!jfV>_-o+yAa2L5&LQUmS|UDJUna zu+O>YGm6*4`|+b!k3`S%$_|v%UMP}j97f!F9UIH%m?P$yO^YU(oXVD$PLI&JG4H7e z)nM>y!m4VD@uEeN6IH2mDDkG%=7AhdB%bHDrP#-HRZlrFIW%Xu!L_w(UnOErxON9f z?HRv$4?Uw?Np~%BJ?(?zD+KSWiMpPD@2-ru#mGLG9Owh1FXiwgj?kd3uxV^hF4^P{0M)8X$9r*aV0TrbwC=saQ}(T9o<5V44T* z_fAXe*N8M+r3<~z7^rqtzu*pW9Qc4mbh!Buj${orJx8$#H3ps&VL-OSSk&mskk7vb z-OGo1rD;^NbwqKU79j+&(lXYTrZ)u8Qme)-sgq0rK7?Roe$| zWzkU+OF0tMgub#g;`4`+&19|{u3GSq(2WEI;s92d$dC=|@o4jiE_^Eb;V$5j#e6B{ zlm{=e<8vsnFWjX`4>X>IZD_Jwobkm(iy}D0+8XNT`XZbh2z}L{bYHxO=*Rlc(TDh} zP=DgksWoeCL8JxO*%tYJB+_8G242lz!GYpzbuR@(+J?LJ;Gk45KpVwn&-amy0adPR zCa#^#xv9&_eE2g54GzK2+w)|)vTBGBO<}VV%d3E$mG|aBLg}U(XL;z2QW4K#$Z5J~ z*9H>N23U7SH_29Ud|%p9Hxw`kM%rrnRg?+Lw-N>DtH@!bU;XMGtjK-qwUPmAly4UU zcRyqML{|Nh)rB7JOzaxcS5kCwu2M~-``&7=onGz@Un*fe6tcuvxRTEYZq=(h+!RUm z?GyKIGA3XP2A2c%(TsaLMe0{pwHJFRek^WyR%VGLY%!?k-UX~`Y@2EB=$V6Y49DM_ z9Kg-z?Zq>0W7EBhYIO5~1qcU!0fV$@X#s2!b2OWEZ;<*{ z?1r7(jmR$*AaHbDSKzVOx1^o}Pqj*n!gjLdU+%X>9#CT(#qL*Y-)72QwfP{8AB?5>IyuKxs6 z-oCs?DXC)fMX45F-wV@8TM3Q6OAw5XeeXxEOGKtO>8LK67t||%Yy4W|(3sml17)}J`bsh1S!Gl$^_FE zxGr4!eKHdWm@GVD_F#1FIC9ATt?7@XBu|;FNg4-MohUoX#h`%Qv31slPg~P_nC_mwM3H062X2DH^+7N5aF;zE$yez&OI< z)Qu?I3ysOOtyMKFTr(yKiAMT`p1>w0!lu6U*I6mwv_tiFT4Gb@$@7&rYvsFyt3Iu$ zAu{G&c+;w2iEp6P{}p0sSVs~Pj%kpiJE+mJzfEdNNTL+4NJQP5eGD`m_E{&AIKxCp zV;fI?r%k+7{9!am&TJ7=Z3|Pe+q%N{8c*|3K@~xl0y}z>hD@H!bvXSi{cNbvI7@HG zKvMIE_%cny8^OUx)zcZ$J(^qZ%Kp%lCn@jmdzz6(b@y~=+8{>n{ViA1r3~>>T~kbG zMuDS$ycah5p{U)P@@Se0g{35n3(~m$x?XW_%17*;OX;lArsh)%?uE9LI z^d2Gfp@HrFb%j&-!FNn$8Lk~v6zf;Ip+c=4R8kdzX(&FMr z=u9CU6#SZisnvVu;5N(_4f=fR#;nIec#Q+!xXK#NB6I1iXC4VC0x|$+$LONO9G&`= z*W!4hE~R~rY1*YQ0V>nWUmKIy+c0w!gp)YaqH@@8SGamJZYm(dx)e$8wPQ$6NE?4x za9`V5Rz{oBo++fxm$Z$Haf7>6isLbdE}oERyQL~y`1XZbGV)%sYf!cO+tFS54&v1q z3f_J#w)-J#WF_2|+^!C{tVmKg6j~$v6NT|_%eJ~!6Dj$gx3J^pC9b`!BYHGg_EXo$ z*6zG-eMh6KY&;&feb`{=wjZy;W;}v8R$@H75dLJGfAp~OQ)MJdX*<|7$K-m^ozY!=dnKn)5HE5sF?wt+J1RX2`KHAJ7B)ER5~jT6Skp~D)%xu!4^STL2gU76Qh_Jh0%j%wS{!>(U)s-N zWFl&lDIza^?mZsnXEw*O*Zf`7ngJ0m6DbZabj7aYR9>|vUoP)T?_AQcQey;&^BY>O z`nM1#Usx9w`SP0*Uqi(|9glqZp7-^If(JlWA2RO6J%vf`)e9NT)Te)OL@!m8cs*fo zu-ExGF?dxqP9I~~*j@g8$otDmq+u=QS++Ll*j!QERCmty4ca3r0~dX6!J7l`&dJ&S z&6`$v@Ly(9a70@BD5#tP|8w_R){9a2^+=%}l!*8*$nd`aWAD0l!x2|3-~Z+>q-Z$q zU*f+)NELmX)oF<$zC!N*(-lC)W+Q;tV7{b%Yw-^(eCfZ3g^dBRnml;`#}}3^aPprV z$p2I_`HPhs1`VksQo^CI{FD;Qa84`csmvb`5IBgI-Dh(jVGI8>EWsvF%Sw~u9DMeS z$$$Vi4)f6S%nO&2Q4p{w_`d}Kzl0t`iI`vw^5yDF9+akM*$uMv{|5V>tOsG8u@(UL zH?lON(bg}r)3hdIsifZZX-R(YZBf!ZYL@7tZ!oG=A4W%P3t^2?9}Au|K@r z!GAZDi@HX@QNFk}NxDb4Vmj)Z6R`8%yu27Yz8{08f}n03x66heG;m)>ed7T9>;Wuc z21vjXc3dxiXVlCO)!ha_7jWlz=iv{*-(SF>RCCH^zjaE^c>ILy?@b22E*hO+5Ym^-V3*lt~w*9!z{rn2@3H4Rw*TZ%_3>l~S`b zp|m_g+%y&IW1=ZuGSFg@#)=f8_;J7=Obs9CAy$2 zU>J8Ee9SZho^K4-hvs_iY|b8EG@Sq}v{+GYliaOXpg$i6o5-uc%3WYIU+ zS)&!gsrS*)rohM_`l$h4bqUfgc}ps3>enwW0^z&q`}xJ4|*wj5{eFi>kLYn|;HT z-_nqy?zg?eN%d?b+qCD|%)o~3&Pn5Y-?YD%+%`aSy!!UyyC6sK4=`)(kBqWN*d?OF z%o$Q;ufexxP-n5wD$wF^t_Y&akSUb^d|yAfbR0;6C7@Yp=>8^R>Cm?a(A^BktzJWx zcb7i}eeW>4q{1Xw|B)A9htqJX-xb_bY}}V8hZf(#wxzYTs`8(V*CEX3!(=xQtOn5r zIsZqIw_eP<+UH_o0EmSV^LyC3-k8cMemHe!IRZT&XD_0)k8Y`t>kA{dfgCJ+aEFi@ z9IM%-ENjsRNbvQ8w_kq|$i}8a#bvDo?98lN$d@aBr6)`SL~yDmUh}3Pl4Hr%2bk^I zwU>t8g&YcbAy#bwZW}$%8U>*C!)c!5Yux}B_NB+DzmB;?C1Xiym2Ex)TWi*IP<_V8 z-J$vdT6)D-*H*+yFP>J5j z`zyZzXz%p^fojPTyDM1IPlMvG2(=`}kkn#)lM%xY6A)dHl;k=bjE3u+#*11tGf0m; z*6PJ2oY?^7Wx?K7^`2nYi>%*9xp(s|1Cul&(8SPsnqT0Pc=r$aRa%|UYJ;q{i%7O% z2DOT>Un0k>SAZ{KrjaLt7~{~K5`!EP65{DDn)b8t3ARPSOJvNVrbPGlP14TgUmZp% zSnTrDk2X-q$;KYW&x2f4nxg=`g36@oxc`(=cScbVN`ZOD^Lvhdo(Wc3U3R5YV@F5` z#|*WIgXA#T{0@T*%yB@38F5Y53+OhItCmr%-x=~l49$MwazQRyaZ7HMIC!I-$&$zk zxykRpLMa$PZIpSIU@tzmOhG*VO2|TbiT&kQ*z63dN8D;SIW934heKN&g@j9QR1Aj* zY90j)>yX_QMj7TvpB-SVIZMBv?nJ4w{CGqG+}scK?(trFYDpuz9GT?3yYaB>x-T+n z;oCwjV#$cF;ST)hN}vO{==AAJkDCieCN>iWz#@xWr_0Sc!xJD>VdsGkN9S4n)MAZ| zf7J$-)K1l9piv6PdKUGyL|;_b?x%% zsG7pS+N?I1shNT|aj*z`9F@6|ANKQ%E8rpO+-JVPgI7?YTHDv&oB^BV0bR8d7`WZ; z9Bruq3xmy2n#{#CEw$!#8Rpp!l8x^x%F;-beA3Mn2Vl*cp>f4bMh@RNx$<(15;M#i zZ36kg5;}*$6Ft*S4SqL>%Ph0^4pb~J1b>(_@9^D)(5hKYU-H``c=IOzJ0n zqCwFk<*gg^&TD45-JMaq3a0{wcYq8N+8=XhU(>?_(kw6uTo0%}Af}|$)9~@ z(fF`+E99dJ39m2R6r$C*`9Rf3*I zR6afMEu#*WJ!hC&7$j+y+|lF7V_6!6C@)12t<0pczzcN&Fl@V!6&<^mYKEn6WC^=i2Gok6C8;*wR%%96fq zOP8wLbhC>W$tU|;ZlVW!M=321pCO70)T0I}pqqZrB$E@85SS2oC>ORnZJvQPr}{Cw zYKZemheu|yRQ3q<^2l{6MTDAe)ZNZ$kpwGTJ{r}@aUaTRl1vAihY-czri;@?4y2gj ziYu>z1L@NawO?g7-gkZ9(+^pS=UHrn9qar5&^o)nalIzWDVX^B1EAjSSc#Q9LUh(( z@+*c8+w|e6S=6W%GqV_O81<=YtK9|NjB~Uk9p{B8YMiR1{vIQYptsopL9I3})6+{Ehr&$P4Tr8h{i4hWxBq>KXoel6C+E!jbZ?_O$v z{2=Q(4nJ5aB-7B$xp652>?4|U`R8i~D_@zuy3tjjG5(zBR$V~zd*U5cdlD{ks51Mm zy7sBk?K62f@?9$v*S;%`em)8)*)yG?CGZ;}B6oL9ebWnxesW z`;l~K9u-U7&n{Dj#SycdSWgAlvkAX0JFD1h2m9cwF+_x?qioWZ$)E~{)p$_tvk^ui zVW&OKEU27K92m2n_$r@T5FqQ8*qL0nK0}-b)SJ12j*S@N&c}XPjyr&UtK)1WF-d6fS1CKz z!G3T^N$phxNu$&D7Hq=v5zICxk)1m-fH zn{Fq8P~oI5wCOoKP`39hG-62D#glSl>rMdT82*tRJKwX=U@q27_6=k}@lwo@XM;~K zg}^{PFgj$sN+3==kY`BvEb6?Asg`RY+yoEO{vRWruL7A=bW#o+y_)xq`mx}pLq1|ls#4{<7NzA>AH1KU4d z0`=VP!eKKO56=)0x~GlAMv@adgd_4|;|=2ogRJG!38hCOZFeItmhco>gv_M%n9;zd zTTRg5Ph?c?C97ohuGznOOctdZ{ypPjmua4j)dO6sY zcb@4ie-LnA9XWgrK*p~ow3D33!Ka9K4GGZ8rOyyj!37TFMBT@yZHhxWWwZ@=;A9JQ z@TuRw$VrMM>!?0f+!5y=YS(g}>87Z44@gQuEq1|DLBY6p4+`xL5{0IUP26<(PnM5k z@TJ&13^Vc7^aG8ER@lQ8eqEQ-#n<>`m2nnVFrWIRMl86%Z&G;Rl>jcaFMur?sw;2j zRYnbu&@JgTIJDMbDd{`f;>A8J7iZ7OVqkBFMj}hgY=CU5@ODXe!!fzjgeOIxjx9{T zG(koy18+bldo8qfQFvIZeK0tXKcbe8UnUSmt!yL6#oMeE*Ie`HOE}euzdPtjF(H;0 z;Xx_#ZwbQb56*uxPhi0uT?=({zB7N_OmkBG{&klL2==>Ym*(}X=~t`&MOt=cV?&08 zTbx7po2VV6aHh`|;q#Z5W3CUs$6WztVEu)WEn9e3=@}0+FA*0KJ`6{Z@*3x{V@3N@AWd=B z{qS$?cwWQ}Up&^oHuTz`(xKh7{OF0X7Jh1_m5Ir#M};0+XUg9=u)mOIA|7lXx8sq@ zjgaHnDu|aUZuJ1}m7FYKN-8CmYoU5wqH|Khn)KSYS^hjOL0e)Xhl=O68MQqYDez;s zzVE|9j+>7DS8k>|IcX7<>4ZPNKYmn4+ZS;5O#zn$1~}CC-?mC?7*$*8@M_rOt5d7TtQoxXs+u#rH(sE7X z&1K4~sK-{8O@`nI5Mnuu-)S2-0`|rCa5m6>xch^F#I3r*9X3mtmcbw zmCDhM`lHWK%xT~MUYh*>y`Q$C0H6vBq|&P*q}N*$e|c#{^IW3aspGkvIQdgA-}s$U zX)z(Z!@ro2mDTbB#lud7zLJgMPZiVme9ra(q&H(!|{IpHBPA*+Xy5vD1&1L+|x=8uh=g-B9{?`|G zlD$+F-dVd1cyN=+*%(3umNk0hi~bu1T}%K8gRVD#c)#+2*?0>DA{Q@ZQCKhDe!)17 zI)Lr6X8F4^w8ybUv}V05gJ=2w_19S^{OE+w~ieVK2e8*!4uG+b|kufcn2g~Xj+%*#6a6}`neXvcHTN3f@bK)Lv+mTf%DRMFQCsQN5wz=XEp z+-g;e^51?&a-Ow?AWsMS%RH$@Z|@cY4w}ChC~Q*In^!*0Dsj3Cz>4s`AYiZR-2W_? zUunKH(N;=-S(4Kt8BGd}z@8zFuH}m!ON7W=p!J-0Za+g_?iF(kELGp-e&B_gkQ`D{H%9+0o@6Otx+~)&8m>xktiH4U0S|c4ri| z7f@zpoR|ezTV}?1rvsgJs4lPvoDu-1uZ|DVgtg;}rS413)J?Qz;?eUU$zgcBQE?Yt zzJV?!w^HXj>+MS3k}TV!=K!L4zL>z^_nvEg)_^$XC5V#Al3#C$8*+a58+d!oupufK zIbq$(R=SRYvM}8YyiqJA@V&nAg)7^nx~hWAU}-LZis^0JK>#2Hs8T;XC zu}&PCy_Zb$9=C7Yjdq+}q^SGCv-`j&(^{yx2GV<-uTQL{6m9~o(Wz~5S;-`=P2-&C zYv4O`zg2h{&Vb{)y_LD5$>E63imlv&C;6uRJI)f}EZpeackf3`^9G8!=4k+e+&dg@ z^t1n+d(YZ{w>?UYO2983lGd4?ACdbB$5|$w8l}6yekuV{=hyPWbah+(Wi&rAlY*RH z*|}nrB6558Kze|}Gx+lXs5>*qCIt%=kSi#852~XHvUW#2eF88kVwj^jxWBy1%Xmnb zLBvqVfS2a6_C@-qeuE=;34{`VJoYD}xfGf3GQ+fD54kpQ&4bb}cB|Ljdgw`8ZRG1L z$JqKU)Km}r4^&Cxx9>ay{$>fpIQb<8MZ0_C`*Tk__N6@ zHXU&W3kfM2oZ3LWI5ne7<+ z!akxzKGtOppK|y55P7bA^?{eT|AkmR!A^_c4AGHOy0Xk?ACb9pwy(2TRkPYOHIEA zs;l4J>}WupyS5fTiS%vkx5d7;?fxoR5jd~VaB~yL|2JKrRQRfF>MLhWXQo!4e{|QC!>ppFHArbio4LGX zp(kMAeWL))=Ba$ch?)+=2Jg>c1;S;;g50z}=|=!VrvVCpne@o3#mBF)<>28p>Q}MR z%e$+gT{DH+axpr+KucEO9hgBWz3%$mfyOD~ibUv|?TBz1686KD?FDb^!=cldpm_q4 zFY3*Fh@Gru|7E$2Q8-DBHa)VNu7)s}zROE6HYZvsFzfuv&!HIX_|08`MYY2^L=QF%Y|Fh32fKlgH z{eUF3Yr*V%axlkiFTl5HcQ&jwYYcEuFenWp)Ewqht}^{;Tm0ED>?Q$Qx%~B_9i8vi zD|Nuna}u~glvM2{M2eM;&3w!uGiQG_s+^}>EIh;Bh$PDKHlQQ z**7_q6{rI8vg(6yHm{0?QhYl!ijMX4*w_()G zLhb40ZTUCGl&EhN@k6}jOR_QXA+_qbB#a?8o}(8cf$XkOGjKeK{AdV{_U>djmq1@D za?TnciH$hF%6t1e>nfx$a95j*eXUg^aICWm!dl)LCM;q%y3Oe(%B4V;R238R_){Dk zn;?q|MTPm7xq%!fAhf}SE*FF6BINB>HOI|JFID-E% zyuGh?Prqxy+j-7S3o$;G_^CEe*g`N=p8D3<{3USNaEvwDLXF^Mse(irvqP6ik-AEO z`F!u4Z0X}b2~v<`u_hz**Bqp-W!sFur0%&VPfA3>0umc*4BRB?kqFvW+~5cA8tOJ3 z>g_s4IL6A=pjL~?@BD3%8*bN^ylXF_#k#e0C=P#}z4?D12?0qC;%7`tQ%F)&)V{{C z5$Yl;c%m4>a9{hVZkO0;_`&1V^VRU? z_4#=Ft1moZ+`TmX+J(_c=%=ygiuM|dg``3(vm*z>-&01#JpNfkfvkBvzNV|iz*x^T zO8g8$9XGawI?aSnm8C5;U{fST$TS=wSx8%1&Zw9YnumBll}0q#@zL&}$*+s@LtzwE zM=&mu`1b1kL_cI<_s9YZ`G!**ckr )>bNwQ^NVHI3a>R;+46;;8?|{%`yd918b} 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 h;K0H2?WNAu_&Y9S#+Dk8lZQxA?LsDW)l}? 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 MboFyt=akR{04>1TCjbBd