From c15aeabed789ede407afeb9c86b1eebac7a0bd86 Mon Sep 17 00:00:00 2001 From: Lucas Holter Date: Tue, 12 Aug 2025 13:08:05 +0200 Subject: [PATCH 01/10] Add domain model and tests --- domain-model.md | 12 +++++ src/main/java/com/booleanuk/core/Account.java | 4 ++ .../java/com/booleanuk/core/AccountTest.java | 50 +++++++++++++++++++ 3 files changed, 66 insertions(+) create mode 100644 domain-model.md create mode 100644 src/main/java/com/booleanuk/core/Account.java create mode 100644 src/test/java/com/booleanuk/core/AccountTest.java diff --git a/domain-model.md b/domain-model.md new file mode 100644 index 000000000..9ad0f3c84 --- /dev/null +++ b/domain-model.md @@ -0,0 +1,12 @@ +| Class | Attribute | Method | Scenario | Output | +|------------------|--------------------------|-------------------|----------------|-------------------| +| Abstract Account | List ledger | getTransactions() | | List | +| | String id | deposit(int arg) | | newBalance | +| | float balance | withdraw(int arg) | arg <= balance | newBalance | +| | | | arg > balance | | +| | | getBalance() | | balance | +| SavingAccount | | | | | +| CurrentAccount | | | | | +| | | | | | +| Transaction | float deltaBalance | getDeltaBalance() | | deltaBalance | +| | LocalDateTime timeStamp | getTimeStamp() | | timestamp | \ No newline at end of file diff --git a/src/main/java/com/booleanuk/core/Account.java b/src/main/java/com/booleanuk/core/Account.java new file mode 100644 index 000000000..d0abb34a2 --- /dev/null +++ b/src/main/java/com/booleanuk/core/Account.java @@ -0,0 +1,4 @@ +package com.booleanuk.core; + +public class Account { +} diff --git a/src/test/java/com/booleanuk/core/AccountTest.java b/src/test/java/com/booleanuk/core/AccountTest.java new file mode 100644 index 000000000..096b54b24 --- /dev/null +++ b/src/test/java/com/booleanuk/core/AccountTest.java @@ -0,0 +1,50 @@ +package com.booleanuk.core; + +import com.sun.source.tree.AssertTree; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; + +import java.sql.Array; +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; + +public class AccountTest { + float delta = 0.0001f; + private Account generateAccount(){ + Account account = new Account(new ArrayList ledger, UUID.randomUUID(), 0); + } + + + + @Test + public void testDeposit(){ + Account acc = generateAccount(); + + Assertions.assertEquals(0, acc.getBalance(), delta); + float testInsert = 100f; + Assertions.assertEquals(testInsert, acc.deposit(testInsert), delta); + Assertions.assertEquals(testInsert, acc.getBalance()); + } + + @Test + public void testWithdrawValid(){ + Account acc = generateAccount(); + + Assertions.assertEquals(0, acc.getBalance(), delta); + float testInsert = 150f; + flot testWithdraw = 100f; + acc.deposit(testInsert); + Assertions.assertEquals(testInsert-testWithdraw, acc.withdraw(testWithdraw), delta); + Assertions.assertEquals(testInsert-testWithdraw, acc.getBalance()); + } + + @Test + public void testWithDrawMoreThanBalance(){ + Account acc = generateAccount(); + acc.deposit(50); + + Assertions.assertThrows(acc.withdraw(100)); + } + +} From 8ce254306f3e7b285bda9f6a8fcea53d1b3cef49 Mon Sep 17 00:00:00 2001 From: Lucas Holter Date: Tue, 12 Aug 2025 13:14:37 +0200 Subject: [PATCH 02/10] Add test for transaction object and update domain model --- domain-model.md | 3 ++- src/main/java/com/booleanuk/core/Transaction.java | 4 ++++ src/test/java/com/booleanuk/core/AccountTest.java | 9 +++++++++ 3 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/booleanuk/core/Transaction.java diff --git a/domain-model.md b/domain-model.md index 9ad0f3c84..a52e4a2b5 100644 --- a/domain-model.md +++ b/domain-model.md @@ -1,10 +1,11 @@ | Class | Attribute | Method | Scenario | Output | |------------------|--------------------------|-------------------|----------------|-------------------| -| Abstract Account | List ledger | getTransactions() | | List | +| Abstract Account | List ledger | getLedger() | | List | | | String id | deposit(int arg) | | newBalance | | | float balance | withdraw(int arg) | arg <= balance | newBalance | | | | | arg > balance | | | | | getBalance() | | balance | +| | | | | | | SavingAccount | | | | | | CurrentAccount | | | | | | | | | | | diff --git a/src/main/java/com/booleanuk/core/Transaction.java b/src/main/java/com/booleanuk/core/Transaction.java new file mode 100644 index 000000000..a85f5696b --- /dev/null +++ b/src/main/java/com/booleanuk/core/Transaction.java @@ -0,0 +1,4 @@ +package com.booleanuk.core; + +public class Transaction { +} diff --git a/src/test/java/com/booleanuk/core/AccountTest.java b/src/test/java/com/booleanuk/core/AccountTest.java index 096b54b24..7090cc731 100644 --- a/src/test/java/com/booleanuk/core/AccountTest.java +++ b/src/test/java/com/booleanuk/core/AccountTest.java @@ -27,6 +27,15 @@ public void testDeposit(){ Assertions.assertEquals(testInsert, acc.getBalance()); } + public void testTransactionGeneration(){ + Account acc = generateAccount(); + + acc.deposit(10); + acc.withdraw(5); + + Assertions.assertEquals(2, acc.getLedger().size()); + } + @Test public void testWithdrawValid(){ Account acc = generateAccount(); From d818c320d3b39b27da1fb7e689e09252de505dbd Mon Sep 17 00:00:00 2001 From: Lucas Holter Date: Tue, 12 Aug 2025 13:26:53 +0200 Subject: [PATCH 03/10] Fix test to handle exception --- .../core/InsufficientFundsException.java | 4 ++++ .../java/com/booleanuk/core/AccountTest.java | 20 ++++++++++++++----- 2 files changed, 19 insertions(+), 5 deletions(-) create mode 100644 src/main/java/com/booleanuk/core/InsufficientFundsException.java diff --git a/src/main/java/com/booleanuk/core/InsufficientFundsException.java b/src/main/java/com/booleanuk/core/InsufficientFundsException.java new file mode 100644 index 000000000..7807631b3 --- /dev/null +++ b/src/main/java/com/booleanuk/core/InsufficientFundsException.java @@ -0,0 +1,4 @@ +package com.booleanuk.core; + +public class InsufficientFundsException { +} diff --git a/src/test/java/com/booleanuk/core/AccountTest.java b/src/test/java/com/booleanuk/core/AccountTest.java index 7090cc731..a5bef3c13 100644 --- a/src/test/java/com/booleanuk/core/AccountTest.java +++ b/src/test/java/com/booleanuk/core/AccountTest.java @@ -11,8 +11,9 @@ public class AccountTest { float delta = 0.0001f; + private Account generateAccount(){ - Account account = new Account(new ArrayList ledger, UUID.randomUUID(), 0); + return new Account(new ArrayList(), UUID.randomUUID().toString(), 0); } @@ -27,11 +28,16 @@ public void testDeposit(){ Assertions.assertEquals(testInsert, acc.getBalance()); } + @Test public void testTransactionGeneration(){ Account acc = generateAccount(); acc.deposit(10); - acc.withdraw(5); + try{ + acc.withdraw(5); + } catch(InsufficientFundsException e){ + Assertions.fail("Withdraw threw exception"); + } Assertions.assertEquals(2, acc.getLedger().size()); } @@ -42,9 +48,13 @@ public void testWithdrawValid(){ Assertions.assertEquals(0, acc.getBalance(), delta); float testInsert = 150f; - flot testWithdraw = 100f; + float testWithdraw = 100f; acc.deposit(testInsert); - Assertions.assertEquals(testInsert-testWithdraw, acc.withdraw(testWithdraw), delta); + try { + Assertions.assertEquals(testInsert - testWithdraw, acc.withdraw(testWithdraw), delta); + } catch(InsufficientFundsException e){ + Assertions.fail("Withdraw threw exception"); + } Assertions.assertEquals(testInsert-testWithdraw, acc.getBalance()); } @@ -53,7 +63,7 @@ public void testWithDrawMoreThanBalance(){ Account acc = generateAccount(); acc.deposit(50); - Assertions.assertThrows(acc.withdraw(100)); + Assertions.assertThrows(InsufficientFundsException.class ,() -> acc.withdraw(100)); } } From cdf51360f03192fa48bfd86ddda9749b5500e222 Mon Sep 17 00:00:00 2001 From: Lucas Holter Date: Tue, 12 Aug 2025 14:46:12 +0200 Subject: [PATCH 04/10] Implementation --- domain-model.md | 26 ++--- src/main/java/com/booleanuk/core/Account.java | 94 +++++++++++++++++++ .../com/booleanuk/core/CurrentAccount.java | 9 ++ .../core/InsufficientFundsException.java | 9 +- .../com/booleanuk/core/SavingsAccount.java | 9 ++ .../java/com/booleanuk/core/Transaction.java | 26 +++++ .../java/com/booleanuk/core/AccountTest.java | 22 +++++ 7 files changed, 181 insertions(+), 14 deletions(-) create mode 100644 src/main/java/com/booleanuk/core/CurrentAccount.java create mode 100644 src/main/java/com/booleanuk/core/SavingsAccount.java diff --git a/domain-model.md b/domain-model.md index a52e4a2b5..8b147f7e1 100644 --- a/domain-model.md +++ b/domain-model.md @@ -1,13 +1,13 @@ -| Class | Attribute | Method | Scenario | Output | -|------------------|--------------------------|-------------------|----------------|-------------------| -| Abstract Account | List ledger | getLedger() | | List | -| | String id | deposit(int arg) | | newBalance | -| | float balance | withdraw(int arg) | arg <= balance | newBalance | -| | | | arg > balance | | -| | | getBalance() | | balance | -| | | | | | -| SavingAccount | | | | | -| CurrentAccount | | | | | -| | | | | | -| Transaction | float deltaBalance | getDeltaBalance() | | deltaBalance | -| | LocalDateTime timeStamp | getTimeStamp() | | timestamp | \ No newline at end of file +| Class | Attribute | Method | Scenario | Output | +|------------------|--------------------------|-------------------------|----------------|-------------------| +| Abstract Account | List ledger | getLedger() | | List | +| | String id | deposit(int arg) | | newBalance | +| | float balance | withdraw(int arg) | arg <= balance | newBalance | +| | | | arg > balance | | +| | | getBalance() | | balance | +| | | getTransactionHistory() | | String history | +| SavingAccount | | | | | +| CurrentAccount | | | | | +| | | | | | +| Transaction | float deltaBalance | getDeltaBalance() | | deltaBalance | +| | LocalDateTime timeStamp | getTimeStamp() | | timestamp | \ No newline at end of file diff --git a/src/main/java/com/booleanuk/core/Account.java b/src/main/java/com/booleanuk/core/Account.java index d0abb34a2..4eb030971 100644 --- a/src/main/java/com/booleanuk/core/Account.java +++ b/src/main/java/com/booleanuk/core/Account.java @@ -1,4 +1,98 @@ package com.booleanuk.core; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.ArrayList; +import java.util.List; + public class Account { + List ledger; + String id; + float balance; + + public Account(List ledger, String id, float balance){ + this.ledger = ledger; + this. id = id; + this.balance = balance; + } + + public String getTransactionHistory(){ + List transactions = new ArrayList<>(ledger); //Clone list to not affect attribute + + + + List rows = new ArrayList<>(); + + float balance = 0; + for(Transaction tr : transactions){ + balance += tr.deltaBalance; + StringBuilder sb = new StringBuilder(); + String dateStr = tr.getTimeStamp().format(DateTimeFormatter.ofPattern("dd/MM/uuuu")); + sb.append(String.format("%-11s||", dateStr)); + if(tr.getDeltaBalance()>0){ + sb.append(String.format(" %-8.2f||", tr.getDeltaBalance())); + sb.append(String.format(" %-7s||" ,"")); + } else { + sb.append(String.format(" %-8s||" ,"")); + sb.append(String.format(" %-7.2f||", -tr.getDeltaBalance())); + } + sb.append(String.format(" %.2f", balance)); + sb.append("\n"); + rows.add(sb.toString()); + } + rows.add("date || credit || debit || balance\n"); + String ret = rows.reversed().stream().reduce("", ( (acc,curr) -> acc+curr)); + return ret; + } + + public float deposit(float val){ + this.setBalance(this.getBalance()+val); + + this.addLedgerEntry(val); + + return this.getBalance(); + } + + public float withdraw(float amount) throws InsufficientFundsException{ + if(amount > this.getBalance()){ + throw new InsufficientFundsException(); + } else { + this.setBalance(this.getBalance()-amount); + + this.addLedgerEntry(-amount); + + return this.getBalance(); + } + + } + + private void addLedgerEntry(float val){ + Transaction transaction = new Transaction(val, LocalDate.now()); + ledger.add(transaction); + } + + public List getLedger() { + return ledger; + } + + public void setLedger(List ledger) { + this.ledger = ledger; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public float getBalance() { + return balance; + } + + public void setBalance(float balance) { + this.balance = balance; + } } diff --git a/src/main/java/com/booleanuk/core/CurrentAccount.java b/src/main/java/com/booleanuk/core/CurrentAccount.java new file mode 100644 index 000000000..f5737d946 --- /dev/null +++ b/src/main/java/com/booleanuk/core/CurrentAccount.java @@ -0,0 +1,9 @@ +package com.booleanuk.core; + +import java.util.List; + +public class CurrentAccount extends Account{ + public CurrentAccount(List ledger, String id, float balance){ + super(ledger, id, balance); + } +} diff --git a/src/main/java/com/booleanuk/core/InsufficientFundsException.java b/src/main/java/com/booleanuk/core/InsufficientFundsException.java index 7807631b3..11d926155 100644 --- a/src/main/java/com/booleanuk/core/InsufficientFundsException.java +++ b/src/main/java/com/booleanuk/core/InsufficientFundsException.java @@ -1,4 +1,11 @@ package com.booleanuk.core; -public class InsufficientFundsException { +public class InsufficientFundsException extends Exception{ + public InsufficientFundsException(String message){ + super(message); + } + + public InsufficientFundsException(){ + super(); + } } diff --git a/src/main/java/com/booleanuk/core/SavingsAccount.java b/src/main/java/com/booleanuk/core/SavingsAccount.java new file mode 100644 index 000000000..309f8369d --- /dev/null +++ b/src/main/java/com/booleanuk/core/SavingsAccount.java @@ -0,0 +1,9 @@ +package com.booleanuk.core; + +import java.util.List; + +public class SavingsAccount extends Account{ + public SavingsAccount(List ledger, String id, float balance){ + super(ledger, id, balance); + } +} diff --git a/src/main/java/com/booleanuk/core/Transaction.java b/src/main/java/com/booleanuk/core/Transaction.java index a85f5696b..5e0f7132c 100644 --- a/src/main/java/com/booleanuk/core/Transaction.java +++ b/src/main/java/com/booleanuk/core/Transaction.java @@ -1,4 +1,30 @@ package com.booleanuk.core; +import java.time.LocalDate; +import java.time.LocalDateTime; + public class Transaction { + float deltaBalance; + LocalDate timeStamp; + + public Transaction(float deltaBalance ,LocalDate timeStamp){ + this.deltaBalance = deltaBalance; + this.timeStamp = timeStamp; + } + + public float getDeltaBalance() { + return deltaBalance; + } + + public LocalDate getTimeStamp() { + return timeStamp; + } + + public void setDeltaBalance(float deltaBalance) { + this.deltaBalance = deltaBalance; + } + + public void setTimeStamp(LocalDate timeStamp) { + this.timeStamp = timeStamp; + } } diff --git a/src/test/java/com/booleanuk/core/AccountTest.java b/src/test/java/com/booleanuk/core/AccountTest.java index a5bef3c13..1fa6d43c4 100644 --- a/src/test/java/com/booleanuk/core/AccountTest.java +++ b/src/test/java/com/booleanuk/core/AccountTest.java @@ -5,6 +5,8 @@ import org.junit.jupiter.api.Test; import java.sql.Array; +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.List; import java.util.UUID; @@ -66,4 +68,24 @@ public void testWithDrawMoreThanBalance(){ Assertions.assertThrows(InsufficientFundsException.class ,() -> acc.withdraw(100)); } + @Test + public void testLedgerReturnString(){ + Account acc = generateAccount(); + acc.deposit(1000); + acc.deposit(2000); + try{ + acc.withdraw(500); + } catch(InsufficientFundsException e){ + Assertions.fail(); + } + + String now = LocalDate.now().format(DateTimeFormatter.ofPattern("dd/MM/uuuu")).toString(); + System.out.println(acc.getTransactionHistory()); + Assertions.assertTrue(acc.getTransactionHistory().contains( + "date || credit || debit || balance\n" + + now + " || || 500.00 || 2500.00\n" + + now + " || 2000.00 || || 3000.00\n" + + now + " || 1000.00 || || 1000.00")); + } + } From 7fa85be9f979adf2d36aff28206a3c3418adeb47 Mon Sep 17 00:00:00 2001 From: Lucas Holter Date: Tue, 12 Aug 2025 14:52:44 +0200 Subject: [PATCH 05/10] Add test for getting balance from ledger --- domain-model.md | 17 +++++++++++++++++ .../java/com/booleanuk/core/AccountTest.java | 14 ++++++++++++++ 2 files changed, 31 insertions(+) diff --git a/domain-model.md b/domain-model.md index 8b147f7e1..80e575f41 100644 --- a/domain-model.md +++ b/domain-model.md @@ -10,4 +10,21 @@ | CurrentAccount | | | | | | | | | | | | Transaction | float deltaBalance | getDeltaBalance() | | deltaBalance | +| | LocalDateTime timeStamp | getTimeStamp() | | timestamp | +Extension: + +| Class | Attribute | Method | Scenario | Output | +|------------------|--------------------------|-------------------------|----------------|-------------------| +| Abstract Account | List ledger | getLedger() | | List | +| | String id | deposit(int arg) | | newBalance | +| | float balance | withdraw(int arg) | arg <= balance | newBalance | +| | | | arg > balance | | +| | | getBalance() | | balance | +| | | getTransactionHistory() | | String history | +| | | getBalanceFromLedger() | | float balance | +| | | | | | +| SavingAccount | | | | | +| CurrentAccount | | | | | +| | | | | | +| Transaction | float deltaBalance | getDeltaBalance() | | deltaBalance | | | LocalDateTime timeStamp | getTimeStamp() | | timestamp | \ No newline at end of file diff --git a/src/test/java/com/booleanuk/core/AccountTest.java b/src/test/java/com/booleanuk/core/AccountTest.java index 1fa6d43c4..1ba2c0bb1 100644 --- a/src/test/java/com/booleanuk/core/AccountTest.java +++ b/src/test/java/com/booleanuk/core/AccountTest.java @@ -88,4 +88,18 @@ public void testLedgerReturnString(){ now + " || 1000.00 || || 1000.00")); } + @Test + public void testGetBalanceFromLedger(){ + Account acc = generateAccount(); + + acc.deposit(1000); + acc.deposit(2000); + try{ + acc.withdraw(500); + } catch(InsufficientFundsException e){ + Assertions.fail(); + } + Assertions.assertEquals(2500, acc.getBalanceFromLedger()); + } + } From 874a374f06b127f5d727d286822d279f67a6af49 Mon Sep 17 00:00:00 2001 From: Lucas Holter Date: Tue, 12 Aug 2025 14:54:06 +0200 Subject: [PATCH 06/10] Add balance calculation from ledger --- src/main/java/com/booleanuk/core/Account.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/main/java/com/booleanuk/core/Account.java b/src/main/java/com/booleanuk/core/Account.java index 4eb030971..a56b73fa8 100644 --- a/src/main/java/com/booleanuk/core/Account.java +++ b/src/main/java/com/booleanuk/core/Account.java @@ -17,6 +17,14 @@ public Account(List ledger, String id, float balance){ this.balance = balance; } + public float getBalanceFromLedger(){ + float acc = 0; + for(Transaction curr : ledger){ + acc += curr.getDeltaBalance(); + } + return acc; + } + public String getTransactionHistory(){ List transactions = new ArrayList<>(ledger); //Clone list to not affect attribute From b3fbe7b1ae18263b52a6582097dbb1a66953cabb Mon Sep 17 00:00:00 2001 From: Lucas Holter Date: Tue, 12 Aug 2025 15:08:11 +0200 Subject: [PATCH 07/10] Add to extension and update domain model --- domain-model.md | 3 +- src/main/java/com/booleanuk/core/Account.java | 9 +- .../java/com/booleanuk/core/Transaction.java | 6 +- .../java/com/booleanuk/extension/.gitkeep | 0 .../java/com/booleanuk/extension/Account.java | 105 ++++++++++++++++++ .../booleanuk/extension/CurrentAccount.java | 9 ++ .../extension/InsufficientFundsException.java | 11 ++ .../booleanuk/extension/SavingsAccount.java | 9 ++ .../com/booleanuk/extension/Transaction.java | 29 +++++ .../java/com/booleanuk/core/AccountTest.java | 13 --- .../java/com/booleanuk/extension/.gitkeep | 0 .../com/booleanuk/extension/AccountTest.java | 101 +++++++++++++++++ 12 files changed, 270 insertions(+), 25 deletions(-) create mode 100644 src/main/java/com/booleanuk/extension/.gitkeep create mode 100644 src/main/java/com/booleanuk/extension/Account.java create mode 100644 src/main/java/com/booleanuk/extension/CurrentAccount.java create mode 100644 src/main/java/com/booleanuk/extension/InsufficientFundsException.java create mode 100644 src/main/java/com/booleanuk/extension/SavingsAccount.java create mode 100644 src/main/java/com/booleanuk/extension/Transaction.java create mode 100644 src/test/java/com/booleanuk/extension/.gitkeep create mode 100644 src/test/java/com/booleanuk/extension/AccountTest.java diff --git a/domain-model.md b/domain-model.md index 80e575f41..33d86ea11 100644 --- a/domain-model.md +++ b/domain-model.md @@ -27,4 +27,5 @@ Extension: | CurrentAccount | | | | | | | | | | | | Transaction | float deltaBalance | getDeltaBalance() | | deltaBalance | -| | LocalDateTime timeStamp | getTimeStamp() | | timestamp | \ No newline at end of file +| | LocalDateTime timeStamp | getTimeStamp() | | timestamp | +| Branch | List accounts | getAccounts() | | | diff --git a/src/main/java/com/booleanuk/core/Account.java b/src/main/java/com/booleanuk/core/Account.java index a56b73fa8..9378bc79a 100644 --- a/src/main/java/com/booleanuk/core/Account.java +++ b/src/main/java/com/booleanuk/core/Account.java @@ -17,13 +17,6 @@ public Account(List ledger, String id, float balance){ this.balance = balance; } - public float getBalanceFromLedger(){ - float acc = 0; - for(Transaction curr : ledger){ - acc += curr.getDeltaBalance(); - } - return acc; - } public String getTransactionHistory(){ List transactions = new ArrayList<>(ledger); //Clone list to not affect attribute @@ -34,7 +27,7 @@ public String getTransactionHistory(){ float balance = 0; for(Transaction tr : transactions){ - balance += tr.deltaBalance; + balance += tr.getDeltaBalance(); StringBuilder sb = new StringBuilder(); String dateStr = tr.getTimeStamp().format(DateTimeFormatter.ofPattern("dd/MM/uuuu")); sb.append(String.format("%-11s||", dateStr)); diff --git a/src/main/java/com/booleanuk/core/Transaction.java b/src/main/java/com/booleanuk/core/Transaction.java index 5e0f7132c..3d4dea617 100644 --- a/src/main/java/com/booleanuk/core/Transaction.java +++ b/src/main/java/com/booleanuk/core/Transaction.java @@ -4,8 +4,8 @@ import java.time.LocalDateTime; public class Transaction { - float deltaBalance; - LocalDate timeStamp; + private float deltaBalance; + private LocalDate timeStamp; public Transaction(float deltaBalance ,LocalDate timeStamp){ this.deltaBalance = deltaBalance; @@ -24,7 +24,7 @@ public void setDeltaBalance(float deltaBalance) { this.deltaBalance = deltaBalance; } - public void setTimeStamp(LocalDate timeStamp) { + public void setTimeStamp(LocalDate timeStamp) { this.timeStamp = timeStamp; } } diff --git a/src/main/java/com/booleanuk/extension/.gitkeep b/src/main/java/com/booleanuk/extension/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/src/main/java/com/booleanuk/extension/Account.java b/src/main/java/com/booleanuk/extension/Account.java new file mode 100644 index 000000000..d593a70ea --- /dev/null +++ b/src/main/java/com/booleanuk/extension/Account.java @@ -0,0 +1,105 @@ +package com.booleanuk.extension; + +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; +import java.util.ArrayList; +import java.util.List; + +public class Account { + List ledger; + String id; + float balance; + + public Account(List ledger, String id, float balance){ + this.ledger = ledger; + this. id = id; + this.balance = balance; + } + + public float getBalanceFromLedger(){ + float acc = 0; + for(Transaction curr : ledger){ + acc += curr.getDeltaBalance(); + } + return acc; + } + + public String getTransactionHistory(){ + List transactions = new ArrayList<>(ledger); //Clone list to not affect attribute + + + + List rows = new ArrayList<>(); + + float balance = 0; + for(Transaction tr : transactions){ + balance += tr.getDeltaBalance(); + StringBuilder sb = new StringBuilder(); + String dateStr = tr.getTimeStamp().format(DateTimeFormatter.ofPattern("dd/MM/uuuu")); + sb.append(String.format("%-11s||", dateStr)); + if(tr.getDeltaBalance()>0){ + sb.append(String.format(" %-8.2f||", tr.getDeltaBalance())); + sb.append(String.format(" %-7s||" ,"")); + } else { + sb.append(String.format(" %-8s||" ,"")); + sb.append(String.format(" %-7.2f||", -tr.getDeltaBalance())); + } + sb.append(String.format(" %.2f", balance)); + sb.append("\n"); + rows.add(sb.toString()); + } + rows.add("date || credit || debit || balance\n"); + String ret = rows.reversed().stream().reduce("", ( (acc,curr) -> acc+curr)); + return ret; + } + + public float deposit(float val){ + this.setBalance(this.getBalance()+val); + + this.addLedgerEntry(val); + + return this.getBalance(); + } + + public float withdraw(float amount) throws InsufficientFundsException { + if(amount > this.getBalance()){ + throw new InsufficientFundsException(); + } else { + this.setBalance(this.getBalance()-amount); + + this.addLedgerEntry(-amount); + + return this.getBalance(); + } + + } + + private void addLedgerEntry(float val){ + Transaction transaction = new Transaction(val, LocalDate.now()); + ledger.add(transaction); + } + + public List getLedger() { + return ledger; + } + + public void setLedger(List ledger) { + this.ledger = ledger; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public float getBalance() { + return balance; + } + + public void setBalance(float balance) { + this.balance = balance; + } +} diff --git a/src/main/java/com/booleanuk/extension/CurrentAccount.java b/src/main/java/com/booleanuk/extension/CurrentAccount.java new file mode 100644 index 000000000..eb8a39d03 --- /dev/null +++ b/src/main/java/com/booleanuk/extension/CurrentAccount.java @@ -0,0 +1,9 @@ +package com.booleanuk.extension; + +import java.util.List; + +public class CurrentAccount extends Account { + public CurrentAccount(List ledger, String id, float balance){ + super(ledger, id, balance); + } +} diff --git a/src/main/java/com/booleanuk/extension/InsufficientFundsException.java b/src/main/java/com/booleanuk/extension/InsufficientFundsException.java new file mode 100644 index 000000000..eb416bdee --- /dev/null +++ b/src/main/java/com/booleanuk/extension/InsufficientFundsException.java @@ -0,0 +1,11 @@ +package com.booleanuk.extension; + +public class InsufficientFundsException extends Exception{ + public InsufficientFundsException(String message){ + super(message); + } + + public InsufficientFundsException(){ + super(); + } +} diff --git a/src/main/java/com/booleanuk/extension/SavingsAccount.java b/src/main/java/com/booleanuk/extension/SavingsAccount.java new file mode 100644 index 000000000..3c6fef6ba --- /dev/null +++ b/src/main/java/com/booleanuk/extension/SavingsAccount.java @@ -0,0 +1,9 @@ +package com.booleanuk.extension; + +import java.util.List; + +public class SavingsAccount extends Account { + public SavingsAccount(List ledger, String id, float balance){ + super(ledger, id, balance); + } +} diff --git a/src/main/java/com/booleanuk/extension/Transaction.java b/src/main/java/com/booleanuk/extension/Transaction.java new file mode 100644 index 000000000..bc39fb808 --- /dev/null +++ b/src/main/java/com/booleanuk/extension/Transaction.java @@ -0,0 +1,29 @@ +package com.booleanuk.extension; + +import java.time.LocalDate; + +public class Transaction { + private float deltaBalance; + private LocalDate timeStamp; + + public Transaction(float deltaBalance ,LocalDate timeStamp){ + this.deltaBalance = deltaBalance; + this.timeStamp = timeStamp; + } + + public float getDeltaBalance() { + return deltaBalance; + } + + public LocalDate getTimeStamp() { + return timeStamp; + } + + public void setDeltaBalance(float deltaBalance) { + this.deltaBalance = deltaBalance; + } + + public void setTimeStamp(LocalDate timeStamp) { + this.timeStamp = timeStamp; + } +} diff --git a/src/test/java/com/booleanuk/core/AccountTest.java b/src/test/java/com/booleanuk/core/AccountTest.java index 1ba2c0bb1..1aa93a929 100644 --- a/src/test/java/com/booleanuk/core/AccountTest.java +++ b/src/test/java/com/booleanuk/core/AccountTest.java @@ -88,18 +88,5 @@ public void testLedgerReturnString(){ now + " || 1000.00 || || 1000.00")); } - @Test - public void testGetBalanceFromLedger(){ - Account acc = generateAccount(); - - acc.deposit(1000); - acc.deposit(2000); - try{ - acc.withdraw(500); - } catch(InsufficientFundsException e){ - Assertions.fail(); - } - Assertions.assertEquals(2500, acc.getBalanceFromLedger()); - } } diff --git a/src/test/java/com/booleanuk/extension/.gitkeep b/src/test/java/com/booleanuk/extension/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/src/test/java/com/booleanuk/extension/AccountTest.java b/src/test/java/com/booleanuk/extension/AccountTest.java new file mode 100644 index 000000000..af0bcf67c --- /dev/null +++ b/src/test/java/com/booleanuk/extension/AccountTest.java @@ -0,0 +1,101 @@ +package com.booleanuk.extension; + +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; + +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; +import java.util.ArrayList; +import java.util.UUID; + +public class AccountTest { + float delta = 0.0001f; + + private Account generateAccount(){ + return new Account(new ArrayList(), UUID.randomUUID().toString(), 0); + } + + + + @Test + public void testDeposit(){ + Account acc = generateAccount(); + + Assertions.assertEquals(0, acc.getBalance(), delta); + float testInsert = 100f; + Assertions.assertEquals(testInsert, acc.deposit(testInsert), delta); + Assertions.assertEquals(testInsert, acc.getBalance()); + } + + @Test + public void testTransactionGeneration(){ + Account acc = generateAccount(); + + acc.deposit(10); + try{ + acc.withdraw(5); + } catch(InsufficientFundsException e){ + Assertions.fail("Withdraw threw exception"); + } + + Assertions.assertEquals(2, acc.getLedger().size()); + } + + @Test + public void testWithdrawValid(){ + Account acc = generateAccount(); + + Assertions.assertEquals(0, acc.getBalance(), delta); + float testInsert = 150f; + float testWithdraw = 100f; + acc.deposit(testInsert); + try { + Assertions.assertEquals(testInsert - testWithdraw, acc.withdraw(testWithdraw), delta); + } catch(InsufficientFundsException e){ + Assertions.fail("Withdraw threw exception"); + } + Assertions.assertEquals(testInsert-testWithdraw, acc.getBalance()); + } + + @Test + public void testWithDrawMoreThanBalance(){ + Account acc = generateAccount(); + acc.deposit(50); + + Assertions.assertThrows(InsufficientFundsException.class ,() -> acc.withdraw(100)); + } + + @Test + public void testLedgerReturnString(){ + Account acc = generateAccount(); + acc.deposit(1000); + acc.deposit(2000); + try{ + acc.withdraw(500); + } catch(InsufficientFundsException e){ + Assertions.fail(); + } + + String now = LocalDate.now().format(DateTimeFormatter.ofPattern("dd/MM/uuuu")).toString(); + System.out.println(acc.getTransactionHistory()); + Assertions.assertTrue(acc.getTransactionHistory().contains( + "date || credit || debit || balance\n" + + now + " || || 500.00 || 2500.00\n" + + now + " || 2000.00 || || 3000.00\n" + + now + " || 1000.00 || || 1000.00")); + } + + @Test + public void testGetBalanceFromLedger(){ + Account acc = generateAccount(); + acc.deposit(1000); + acc.deposit(2000); + try{ + acc.withdraw(500); + } catch(InsufficientFundsException e){ + Assertions.fail(); + } + + Assertions.assertEquals(2500, acc.getBalanceFromLedger()); + } +} From c6ac6373a4e8801b4d991245ac0c02a5ede8032d Mon Sep 17 00:00:00 2001 From: Lucas Holter Date: Tue, 12 Aug 2025 15:29:20 +0200 Subject: [PATCH 08/10] Add tests for branch --- .../java/com/booleanuk/extension/Branch.java | 4 ++ .../java/com/booleanuk/extension/Request.java | 4 ++ .../com/booleanuk/extension/BranchTest.java | 49 +++++++++++++++++++ 3 files changed, 57 insertions(+) create mode 100644 src/main/java/com/booleanuk/extension/Branch.java create mode 100644 src/main/java/com/booleanuk/extension/Request.java create mode 100644 src/test/java/com/booleanuk/extension/BranchTest.java diff --git a/src/main/java/com/booleanuk/extension/Branch.java b/src/main/java/com/booleanuk/extension/Branch.java new file mode 100644 index 000000000..2dbb7f1a3 --- /dev/null +++ b/src/main/java/com/booleanuk/extension/Branch.java @@ -0,0 +1,4 @@ +package com.booleanuk.extension; + +public class Branch { +} diff --git a/src/main/java/com/booleanuk/extension/Request.java b/src/main/java/com/booleanuk/extension/Request.java new file mode 100644 index 000000000..6d9ee24b6 --- /dev/null +++ b/src/main/java/com/booleanuk/extension/Request.java @@ -0,0 +1,4 @@ +package com.booleanuk.extension; + +public class Request { +} diff --git a/src/test/java/com/booleanuk/extension/BranchTest.java b/src/test/java/com/booleanuk/extension/BranchTest.java new file mode 100644 index 000000000..fc0097fd1 --- /dev/null +++ b/src/test/java/com/booleanuk/extension/BranchTest.java @@ -0,0 +1,49 @@ +package com.booleanuk.extension; + +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; + +import java.util.ArrayList; +import java.util.UUID; + +public class BranchTest { + + private Branch generateBranch(){ + Branch branch = new Branch(new ArrayList(), new ArrayList()); + branch.addAccount(new Account(new ArrayList(), UUID.randomUUID().toString(), 0)); + return branch; + } + + @Test + public void testCreateRequest(){ + Branch branch = generateBranch(); + Account acc = branch.getAccounts().get(0); + branch.createRequest(acc, 2000); + Assertions.assertEquals(1, branch.getRequests().size()); + } + + @Test + public void testAcceptRequest(){ + Branch branch = generateBranch(); + Account acc = branch.getAccounts().get(0); + branch.createRequest(acc, 2000); + Request req = branch.getRequests(); + + branch.acceptRequest(req); + + Assertions.assertEquals(2000, acc.getOverdraft()); + } + + @Test + public void testDenyRequest(){ + Branch branch = generateBranch(); + Account acc = branch.getAccounts().get(0); + branch.createRequest(acc, 2000); + Request req = branch.getRequests(); + + branch.denyRequest(req); + + Assertions.assertEquals(0, acc.getOverdraft()); + } + +} From 194feecbe63bd5bed2c4a3f5e6e73d5039871bf0 Mon Sep 17 00:00:00 2001 From: Lucas Holter Date: Tue, 12 Aug 2025 15:46:24 +0200 Subject: [PATCH 09/10] Add final implementations and updates to domain model --- domain-model.md | 69 +++++++++++-------- .../java/com/booleanuk/extension/Account.java | 14 +++- .../java/com/booleanuk/extension/Branch.java | 37 ++++++++++ .../java/com/booleanuk/extension/Request.java | 23 +++++++ .../com/booleanuk/extension/BranchTest.java | 15 +++- 5 files changed, 126 insertions(+), 32 deletions(-) diff --git a/domain-model.md b/domain-model.md index 33d86ea11..5284adbb3 100644 --- a/domain-model.md +++ b/domain-model.md @@ -1,31 +1,42 @@ -| Class | Attribute | Method | Scenario | Output | -|------------------|--------------------------|-------------------------|----------------|-------------------| -| Abstract Account | List ledger | getLedger() | | List | -| | String id | deposit(int arg) | | newBalance | -| | float balance | withdraw(int arg) | arg <= balance | newBalance | -| | | | arg > balance | | -| | | getBalance() | | balance | -| | | getTransactionHistory() | | String history | -| SavingAccount | | | | | -| CurrentAccount | | | | | -| | | | | | -| Transaction | float deltaBalance | getDeltaBalance() | | deltaBalance | -| | LocalDateTime timeStamp | getTimeStamp() | | timestamp | +| Class | Attribute | Method | Scenario | Output | +|----------------|--------------------------|-------------------------|----------------|-------------------| +| Account | List ledger | getLedger() | | List | +| | String id | deposit(int arg) | | newBalance | +| | float balance | withdraw(int arg) | arg <= balance | newBalance | +| | | | arg > balance | | +| | | getBalance() | | balance | +| | | getTransactionHistory() | | String history | +| SavingAccount | | | | | +| CurrentAccount | | | | | +| | | | | | +| Transaction | float deltaBalance | getDeltaBalance() | | deltaBalance | +| | LocalDateTime timeStamp | getTimeStamp() | | timestamp | Extension: -| Class | Attribute | Method | Scenario | Output | -|------------------|--------------------------|-------------------------|----------------|-------------------| -| Abstract Account | List ledger | getLedger() | | List | -| | String id | deposit(int arg) | | newBalance | -| | float balance | withdraw(int arg) | arg <= balance | newBalance | -| | | | arg > balance | | -| | | getBalance() | | balance | -| | | getTransactionHistory() | | String history | -| | | getBalanceFromLedger() | | float balance | -| | | | | | -| SavingAccount | | | | | -| CurrentAccount | | | | | -| | | | | | -| Transaction | float deltaBalance | getDeltaBalance() | | deltaBalance | -| | LocalDateTime timeStamp | getTimeStamp() | | timestamp | -| Branch | List accounts | getAccounts() | | | +| Class | Attribute | Method | Scenario | Output | +|----------------|--------------------------|-------------------------------|----------------|--------------------| +| Account | List ledger | getLedger() | | List | +| | String id | deposit(int arg) | | newBalance | +| | float balance | withdraw(int arg) | arg <= balance | newBalance | +| | float overdraft | | arg > balance | | +| | | getBalance() | | balance | +| | | getTransactionHistory() | | String history | +| | | getBalanceFromLedger() | | float balance | +| | | | | | +| SavingAccount | | | | | +| CurrentAccount | | | | | +| | | | | | +| Transaction | float deltaBalance | getDeltaBalance() | | deltaBalance | +| | LocalDateTime timeStamp | getTimeStamp() | | timestamp | +| Branch | List accounts | getAccounts() | | List accs | +| | List request | getRequests() | | List reqs | +| | | acceptRequest(Request) | | void | +| | | denyRequest(Request) | | void | +| | | createRequest(Account, float) | | void | +| | | addAccount(Account) | | void | +| Request | Account acc | | | | +| | float overdraft | | | | + + + + diff --git a/src/main/java/com/booleanuk/extension/Account.java b/src/main/java/com/booleanuk/extension/Account.java index d593a70ea..3e74d24b5 100644 --- a/src/main/java/com/booleanuk/extension/Account.java +++ b/src/main/java/com/booleanuk/extension/Account.java @@ -9,11 +9,15 @@ public class Account { List ledger; String id; float balance; + float overdraft; + + public Account(List ledger, String id, float balance){ this.ledger = ledger; this. id = id; this.balance = balance; + this.overdraft = 0; } public float getBalanceFromLedger(){ @@ -61,8 +65,16 @@ public float deposit(float val){ return this.getBalance(); } + public float getOverdraft() { + return overdraft; + } + + public void setOverdraft(float overdraft) { + this.overdraft = overdraft; + } + public float withdraw(float amount) throws InsufficientFundsException { - if(amount > this.getBalance()){ + if(amount > this.getBalance()+overdraft){ throw new InsufficientFundsException(); } else { this.setBalance(this.getBalance()-amount); diff --git a/src/main/java/com/booleanuk/extension/Branch.java b/src/main/java/com/booleanuk/extension/Branch.java index 2dbb7f1a3..efcd0881c 100644 --- a/src/main/java/com/booleanuk/extension/Branch.java +++ b/src/main/java/com/booleanuk/extension/Branch.java @@ -1,4 +1,41 @@ package com.booleanuk.extension; +import java.util.List; + public class Branch { + private List accounts; + private List requests; + + public Branch(List accounts, List requests){ + + this.accounts = accounts; + this.requests = requests; + } + + public void createRequest(Account acc, float overdraft){ + Request req = new Request(acc, overdraft); + this.getRequests().add(req); + } + + public void acceptRequest(Request req){ + req.getAcc().setOverdraft(req.getOverdraft()); + req.getAcc().getOverdraft(); + requests.remove(req); + } + + public void denyRequest(Request req){ + requests.remove(req); + } + + public List getAccounts() { + return accounts; + } + + public void addAccount(Account acc){ + this.accounts.add(acc); + } + + public List getRequests() { + return requests; + } } diff --git a/src/main/java/com/booleanuk/extension/Request.java b/src/main/java/com/booleanuk/extension/Request.java index 6d9ee24b6..211d72136 100644 --- a/src/main/java/com/booleanuk/extension/Request.java +++ b/src/main/java/com/booleanuk/extension/Request.java @@ -1,4 +1,27 @@ package com.booleanuk.extension; public class Request { + private Account acc; + private float overdraft; + + public Request(Account acc, float overdraft){ + this.acc = acc; + this.overdraft = overdraft; + } + + public Account getAcc() { + return acc; + } + + public void setAcc(Account acc) { + this.acc = acc; + } + + public float getOverdraft() { + return this.overdraft; + } + + public void setOverdraft(float overdraft) { + this.overdraft = overdraft; + } } diff --git a/src/test/java/com/booleanuk/extension/BranchTest.java b/src/test/java/com/booleanuk/extension/BranchTest.java index fc0097fd1..d3e1d991e 100644 --- a/src/test/java/com/booleanuk/extension/BranchTest.java +++ b/src/test/java/com/booleanuk/extension/BranchTest.java @@ -27,7 +27,7 @@ public void testAcceptRequest(){ Branch branch = generateBranch(); Account acc = branch.getAccounts().get(0); branch.createRequest(acc, 2000); - Request req = branch.getRequests(); + Request req = branch.getRequests().get(0); branch.acceptRequest(req); @@ -39,11 +39,22 @@ public void testDenyRequest(){ Branch branch = generateBranch(); Account acc = branch.getAccounts().get(0); branch.createRequest(acc, 2000); - Request req = branch.getRequests(); + Request req = branch.getRequests().getFirst(); branch.denyRequest(req); Assertions.assertEquals(0, acc.getOverdraft()); } + @Test + public void testOverDraft(){ + Branch branch = generateBranch(); + Account acc = branch.getAccounts().getFirst(); + branch.createRequest(acc, 2000); + Request req = branch.getRequests().getFirst(); + branch.acceptRequest(req); + + Assertions.assertDoesNotThrow(() -> acc.withdraw(1500)); + } + } From 0d1ff86b1d63b26917d7473907e22761ed58caec Mon Sep 17 00:00:00 2001 From: Lucas Holter Date: Wed, 13 Aug 2025 08:17:06 +0200 Subject: [PATCH 10/10] Add class diagram --- class-diagram.png | Bin 0 -> 130341 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 class-diagram.png diff --git a/class-diagram.png b/class-diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..59be9642575913bf65b5169e685a5f0aeb5d35d0 GIT binary patch literal 130341 zcmeFaXH=70*ET9eKt(}mVgb}G9gH9#Eue^~G?m^_n)D_hgitmLDosTobWsV?OXv`Y zA|Qk!hTeigh=dXd1V}>Q+<^Oe-~H_8J>#4)zVF95pTA@zaIbQ&HRm<2dClpw+j?4u z51u%H=+jKWOe z|NaN+wo(iX81rB~;eS2juOB!;{7ip)`0f|32iRZ(KYV5WZD94Vu(0;y|22`n9%8Dk zj;i3zN;vS}Cb{<=vrg+jCKHA-XJmv|Zlvq{V`W0NGA#dG)W9)LP*Drs{_nf6GXO)v z#lPn8U$ZJr3JY_V0*i3{*GIp8i47L>j}`3;uViM{aa~qS`Nu@nQTFWrSP@&{c_CZ# z=$`g}?i!=8-9J|Jd+YbM?s;@Z`1csV!+W{p ziR?c0%^>hp>ty|@U5~6T!N6c3QKgsphb_V0?9%hyF=F)9QI{H1=Pv%bm4}_!*kN=#9d;7wy)6CBVETr$Q z{w@SiFWJwmgOtu{-Sy+)#=vOCZW$^!QGM;@54d;7IGzOz8!R_y_v=8N=swN~I-Hvn zbai*uK~h4t1V759%-sc704SpJ{@nCUMz~&*=DXc7P#b{npDL&o*ux6I4z}(rq_U4| zZ`Q8B#+9IRm-jX`5m*tAg^2z!kYBmv3C-OxT1A9xPuO&kVY_1hJ1ENnEF>={a~C*- zTOVSB1zCY(MRpfl1dLWRq!jonEHA;KS9Es_5EyuI8!p9dyJPI^;6>nx|EC^>1~tZ} zRg6}CnvMU%nXc`r&%=azH5G$#N)e|2^m@ib)^(4c#i7Adn*FjDR865jS40ZpL&$xR z#RM5!ybs)0v zu_q`c;9&W!*7+5OWo*w|p~hZrH}N=0p- z8>?)SBKidz*WNluP#YR_P!$Sx9ae0G=K!0aRbqiZ2&*&VDB8P&?|6XwQMIbn*v5!v z*6Do@_nJ99=xHF##d0Y1g3zj26a)!(vvn1 z-`7$3qx=_p9|jLc2{uiu`*povNVW{LbC8X=_ODHn;n*Qm`$) z$GeEVUdHyh|MgPtD<&1QB<&-{S|ST^`dLm7$Pb2`#lus8xBH#_$bYhpkUxMIBED`b z-kkdLK8wyWu{xCAw;vJhL9f(?f7GQrT`ZUl2=Q<|aUwDNP9U;md(@x&u_vQ&5wg)~ zC>zR~-KQ%U;-*!@9y_6Ypoz5cb5Qq!q7rgDD|qem>fuL$Zt0r}3DrN4+r;kuMn~_` z2PCTCh@AVvm{D-ZcWXmc@jUpkUsh7NWch#C#^LHO{mnTttIznacy4{6q=jmM$PyR8 zN{Jt~3stJwAIe-ytxValp|_sL%sJR{U+GsCMkJqo7&Iu7HFO~P)wWd$*jSZV9)Zd6 zEUS=ag0q#}k2In@TiaUu!#3&e(d;T!02&0r2Aj}5B7UQ;DF>wkmeF;eS34d zFiYkSmxFG+M=y1ycZ4|)kO?$(BpF|wZvtLl`i6)jZNi6*dnedSH@D0TRn4#C#U$LM>pUHEkdjz=sk;mD(=71yL44`@E+N(*emUug2lr$%2$AAO+Alud2C zp(_>7e>M4(>TTp?8;7xeXvasw^L9A4ELdtyCkXA1PkJv^XRT^${xBGMI(p))i0w$) zMZ7fg4B)FGWx@Z+3KL(V-iC?Qf2#;~zk^Efd{IxBRU5fd@AZuT4kKLPFt_gcQY~P@ zs((&IjIzPj_6?=>j}%S(q}-q+9Z1pC0L zAGw?gSVO$v)R86+69v5qX+Ff;PTP@dJXR4XFTnN#e&IiP7u91!MPXv=TH;LaU!8Bx z^J9c-LO{5*>BcqW0wGB`j_5|BXZK_kf~oxme1`4EY6T8k>Ygs#@l-iH|H0oiYB8c& zbPA+jqUmvt3q7yZY(#9$S9xpI9(9$8C*kQ`)!puT9vr}mb#zY`?LLO@KR*Vrn5G2( zW+N^5NoZRxd(4c~OUPhBywQcgne16oO+YC1ksr3%365_gPi&ChVJ1bubIdy4A^e8O z?P4zF^}v-%t%5aAvv7Yz){2Q@`OBR`|Vd z&G8v|RYwG2TZ&-dS{stX>wA#oZg#jP&zdhI?Shc)$o2`h{QZn@-J5kscENtJ8Fjshs#q=c5(4S}U;^f2eVaT10r(z7({L&G_l7P?3QW0-S$@=v2kOMN~=9Qlg)TTu3%b z_|LQ_3eJ~p)fnMM#9Ftev+wJ1kW+aN4XtF&UM2ZOFNYAL)%YjdKVWqKG61WGkTZDIJ)BQ5LV<5P{e<4@P71J1^GnQ7}@S>zK` zLB8DQ%huGi8jkV+f3qXJLvWWWF`&+Cp}4m~H%6l2P&xvlr=wA}@fo|l%Leoi z{LHvrG&y->2W5oPE&MgPnil5rUP2W_T&dpXlki@$c2OqMj*mh0e2M|o|41Z)u zHkVLoCV(kao1`enn*uQbdp>Wx-WH+-w%1O{7S&8SVYc; z+1w`Y@5kDL(#j8$b&9I0%N-K_eeLd|x$!dImX#r61#`HWDX{S&2 zmrM0ftC{UGAL<2R@6B4AjA0;876WGMP>v|Xx%f8 zW3HLY09i4b3Q45T^F#&w2`}4jG+%|1d>IP>LeaRFuvW$h_ZZZg+g%6h0dwmbiWgxH zVAVH4AL9knyG85nm(K=tz7lm3DmoTaNLs5@sd8>NJW@lwxHCkh)p^_J^0-%xZZ?<4 z*NIN>d);q^oKi0IiVt`rg^8BOlGdZWaLQ_z4WMf_sZI@&2VrNwJbRJnT#^%%)xnu3 z_7x4v1!J5Ny%7)CU%RKuX}C}9JQ%SyGI9;YjqRTkIhm7u5+A>?-YWWuBJ{%J7nAWcU!aStjME^o6218)POvnjR`Zt z;W>5=L)@PE7I`1_NS}Z9aADeL(Gg^I32HIY zuq5$kU1?DFw!fFi?&`Sz40-sJHxeL^G%uI>ZJ-`bEuIukJK7UuU}`B*97?uF{1^(O zI44xMX{sYkARzbqEEq{F%$YQrP+igDlyR{_bUqIonrJKh362fzFPqhY$y~O;Wh%ad zk9jFMv1)=yadYvyX+sq%(xaJng=6!OUI86kP3_Mw;e^D5uWrUbUgl22P3ei6we78* z1;R}7>5RslQfC9&1B~#x?a1e2wS`(0Qcf|@$wd*322HHDnuz+F3?QwNVZqk}q*cnq zN3QL1AJ;`o^)7#9EvCLgn1yTdt9L=7Eh7(7;MJO*OcFLWP2CpLGsq$dYK2=^d53@w z#lKvCJb>C@rtDmE>$a?GVPQ~g5MXr&b*|PA`OX3ynvGW)T-~J~GNTzv&e0ON_x&Rw zDxta#iSOp>FHiGKzG67w44mYjQa*~-c9DG|O(FSYi|Nz}f0OQglF8#z2dT!x5n^i; zYR4bPNBbJBp&Q8evCMTs07Y|^M;^n%fN?x!wP#T|O$~NTs>i<596iLX)#VKOpFciQ zVlSvEjr)p#9Z-ggbF0ZVij`c&pA|i`I!$ZcWVpnf&Lnb7l2dL{CT+Tf+jS9B#0lj< zw8f$gx2(g&!>)mcY9B~f8q>uL8~dfVwgyGQwH6H!d0~0;o-Crh18PXx=fJd}+_{Dn z88myBQ8PgQzXTuM7^mhW;E@z5#%u+hB=y$Zv29VJ+19v>dy!zm_wR)Yd5LXKlvYu|7a z2X0kFiSB8Dtx{J80%PTB>CE%Cg!@Jn&-NV4?VVld6rhaTT&`M4U3pX*rw_i=#uWNk zhy3RKScBsFU_0{R%oB~H_Nq!0{I~Y2cDNZ;0+=pjo=W!yR{v5JYS##{*zj5?bSI}g!VAjI+BwlZ^6J(}fo8M#Hep{GG zZ$NV_Jhlzo4#KWU*d82(SAS^<0hg`!Yc&NCRJN(}C4n@NE~?Z^1ZKt^ZdF3rNj1&d zBqAOUoK`?kVZvp>pk_2%TqDJ6Wy4(wTug5dRWd@ZKKD(lFF6TnQT6dR+JqRu2-Sf2 z3j!oJN0jHr8xz8utDjh9?IqMqZ`ralVD54r*~{Xd1Cm~cbBF$JlYVDz*?uSS0Z#jO z5`QP={(Thwk2?yPsv&J;i+--$d;&c*;C>J1)<$b|zLRxODfKH}-&l}Nn4UQV?rjCg znwmOVIHn)6=r-7mw+Sf?nnK4LuLnCp@*v%=cdJ4tE{aqa5IzFrN8{3@Kbg_Wt2U z{yCim*Jpk}sin{5=5vfm*^k&C9*I%La|(H7?{LoV{zDenb$p`{kgh13rq{H4ohy;^ zyl&JzP)nGNf)_pN$!HUiEfvP3Uf&$HKYYCth+pKz0ly)NZ?p#F4JDf%dV4yE_rTNB z?XI9IY8H=jk8iv^*KZJi`olyZZF%+pFu6b+$M{3<9k!<*8$7p~DXn2ShCr&l6|<%0 zWP$JQP%84}550+y={RO8kia8^9!9YK-Rl6+JRRWW?y9c-Od;5|}m4NTk0U8P3 z*7hn-U$>Y%)Q;%yx}dCt#9DYj?guSs-qWkN04779$xJ?)z(wVwrNJOo;Sp$$z1my2 zgNdT=j9CKsn&1@I!UjoW6n{EvU4qp^@f_Yn#W2< zcT%eWrxH8`X{xpwUrRLThjL`qzUfi~mjsX0rcOT!ndOO+9(w1J>Fs=Xd$B}mVxZ{C z>bW^CI%QQMvv6G8t^<&uRRDR&O5eF3W{hxYW6iX^Sdwjj>oJffXvI$Lpp`(#eCH*V z_8jfy((TlOxcSFoW!2rdWEK8P^kG#I|35!m78NMO0ti))lV=b;)wJa~Y9twJu3-B- zie7CK>Lz0Pe9rwexO4?yqu-tXOul8gdd#a=Z-@sf8o&MR5BoY?oQTtROQo`>oZ{=p zIyl9dGT1Nv*iPal(mE+B9K8r<_)daGT9(`uZ;PE1|AdX;7zyQFr#t^vPu#YC`` zClA8>V+Wq>$=t(@n1NlwH3!qbt6qJI4QUy8UD$ZWH&SZ(D{WCxLVM-rV%qM8Fglawj<;~hSshUc2pWjdzo`^0hPon>a~2g0s4rI ze`~3dPd6f3#xS~RyXe`Sirf%7oelOa)Eep0NM6n;`S|v>M2t1rAgU*=OwLul7oZCY zt-%L$tSMu@**E)$U4nt-Ql4~5(QMBQKX!)@1(YWqYZlB#ySem__sobvLKPmU3c{n& z=o6dG0o4Widh$0tQ+q2rh?m=r34N6Wq-fn={;sJ5!NbIys$TC$-+nN_p3crK)A>bR zobk^9DCyZDfe>G82Eaw7(`Dua_)lmqC0^-h;5`2+LR*B!2K^zZzaS~-dJsmca~Q>l zJGr-%fApE@%Z~^JxS=L%17+DhmlO5XTO;RdIg*f>pr$(y_NC7)x~ zf#$vT-^V|<(DM3IdFqZ0;O#%-u zs!`@^aS+7_F~`o&I?1MI<%zNY*OSf{u33A@&A=uCIF*VJVHZ++sEhTYaaF(o3kJ8P zMuz4)k`+o4wGXY-SVr=N#+5A(hblrp$~3TxplwS-veIw9MkJC#biY4HPirgT0#)*R zrhWL>aM8%7c!;~y-9@MFNO;-79Wf?A+y8e-r``FqRHScl;Hi*~O$YIHeP zae=ysFyq588Oi*p<2b0y*Dom`+}-@k((CwVF9@C@;Reu@-a>gCa>e?nDHPA@bb={C zo+*@z!NBe6R%H9=I4L3R1(t@Cjr}+R93kpP;&!d-;r>+lhZksyp3f}1BMUBsqE`^( z%PTO4{?&Hmdl^uNkoQ3Aw633}9|v51%AHFNrV#RjS{5Eyn-}Pjigg@QjM^7|XjdS{ z^LHB!uoYbZA;Eo~Chw}))8IR&*%jv8E1&|9I>u&^Ml2lU>a0ZQhn|{LzM%f(xWp^n zS^AFG<=kH&=aX%LIgb@Iz7{76e($mgo$3oryVg_Z^!PYH?N4^6?c3#jG|4?#3R0eu z3b$>h6B#gt3hXl!;Nc^2)w+Fe9>PpGAQz=hTny2(^#gKi1V<}X4OCx$#{<4SMQI8O z1_*pO(i~3nE(}*Z1E!{$#Q(PJl!RlL3X!Ct?Dv8tvSSz zg~vt?LKT2iP9tk${hN4m8*Ka`CQ8sE(pBU|LDR(x`W^?PjIGXA&n{QF9q! z;yDQ!ZOeiQ)ajru9ZvG7dvxM<%d7hGjN069g(%TtK^h3^Qtl0L>jM*|d~g={RC$U= zomQ>Rg(g}-T=k=K--TT`r$_*pumNeir8hkzr=lhR#qZigaP^|7?TD1w;Q75wgYmKB z5R@T{3T394xpVji1~s`N65wcTFUs@%BZR2ZhzR$OWbh8=2PJYW;dJsgXf|1rQmNI2 z5{oa-+_hA=`eetI*3B0+Xz{;>F8PWCjBx*AVoH1j;qdD3iQk8dY=X+0ysc^qz5onuctsssYn_|Kdy(`I))2Si%mN1Ni&NuBH&CJnH_k^R`5eorw!IAckG5@NRnr6G%I!E znyq1^DNgkVo|05Qc20D0rLpG}cK989i?>z<|(IqeQ%k$q##L|u0MneYP3^sYm zWvWL3bn9vH)>Pf2prQjmAMPk@Qtgr#6QmkQ{D(dgm%DMtLnWU;hU{|r&Ai9 z%#T^CE>CWAV8@H4mG0`UFXgf7kf(fmQef_{Wn&1ClQ>1(^>Od4zknNG=h^2k#FC^{ zUB5-8^T-i5WOT$eQUGSBt9&Rv%-I-uwy+i-j=>|ZNXJPzdADRaN$Fe6oUFWsGVG2k zVD<8wI>m7`M9$qUqq3{3^j%5TMw>x@K?q^#p}#qu3XFW}vrLZ}H!%f-ON$s$#ENA!a8LIZQePlb@S)Spn|)bv6b@ci>-lTwOqBSRO>K_w3%C zzXcdAN3^ue=Xo|m5XWKMhuvc5A`B@8EUU^U>HQiRaAwUz6sZEh2nf1 z@KJ!}`cyt6oPIk%fA3xFq_=^p10csO9hwQ~YFK~@jQ?R|S=e39YT6a=RtD0G-;H4k+0fRv<`knWlHB(_s z`VyNv5Oiyofw+r0R{K3>|KCCN?>Z^w-*r+zvDW`>$sA~ls_>T<;QveIb96CmK~`u@ z5WQb3zj|!#vw7?;D_PkCZdf|Op&A6QBVv0DiQDyDhvH8+GxRiV+LBw71&bCb-Tvg> zl1!I*pP?;4eNeCy-4hz4dM*j9WT#0NXO{cDp~eH%4r!jyVD^XF>)!lR4j23v5FAE; zj^tf`qQ3HFRot|{5tMo|H-CF7|C~|Gf?tysy6RkfT7NaiCaI6qE~IT&UFW_Q1rGI@3Giy7_2<$K!Kj8s6!(ABJLpqL-(AL2aS>K3 zUTT}BzHB~}^Q;B$qPmBJ>Da1*fQgU>wcGW5-_#nH-x7A}1}I)9874iO?iZx4qc*kG zpzrG_4q5@`Kd(?W?@P&8=Trn1`J{&e^UmF(9R+m}EaIL4+Ms+YYFxx*_I^n`4`?Bj z!mL9B;{QqjdWhW|+_Ou}1IJ7i3Qgx`^sH~%Vi+)Qqvor(HjT+0_{_A~OI1-=_$SGO zYCrHtJG;`5tE?r8##ZE24a`^R?UJR%n+uw)1;O`7G!jrTrGK^QW~vg!9)@@@U*ePH z5T7wv?aF@(&`w+Wr?ofS~}8}pjyH1-$qIz}otP2G{~<>IH=pZom8A+zKZ!Nq)8 zL&ZL_X@v20dc`$x7CacDJzRPcQDZEy8 zGD*&Ky~ZYEGY--`4dI^p-X-WfAtJdJ_dI9|XQF2my8OhqsvssW5WDQt@OTzbu2t&; zDcA9i%+N*v2xrm)HYNYe-k26{iKgD+02v>E`DhR>s8(2w`?Mv{Kt&^1xIA26nookM zM4rJwWvr1-wNpNG-O|&Qgv!jm4!w{k)Aw{F^D?xmY^%05s7fI|mJ{@;g-v+kVlA;D zYWaf+i=bKjrSyP_v-nfzyy==#Z%*~}&g|y=%Nh&&3vc^aqqyzx=M$DKwym$F$-cL+ zZ|EqQ4?t2)$*Z}iY9?vN$aT{{!&}3|8skeK-(RLQ9U@?}muP^_z<*-7x7CMOzG_|N z*}Ldv&V3oKnR#UDyhp3Si;Aiw~Y=z8|Hob#*e^A^=1RoZH{%X z={9~ka{G0hZ*$<#ONOY5+U;ZwRD~j%-uNoaxk+Mj>zDm8v@K*X01I_dZMLWGiGgdG zrJFN+cyAoZ4(3eb0rfc*+fN?FD@duevzAaJ91Q@;onT-Q>5A9Dt9p3JHD$q~s))wBK!~~K5*MOxB6RRs2FT4=y;Srv z8v?HMI!V`)kcK~X<@)^h*N)MxR}?d|wq8eIaQX5! zKn-^#RY*#NFl)g<*`0*5d~2(#MMt&lOedOcsoW8&_s%fe1I zlFG982AYF0Oe=4p!K5=~vmc9tp^yrMrND7_`lpCdWk|tm;es^SgdXbk z;Ddv*1iy~qtBO-+sZ>CzQ9b59;bgo~_T^l0${BOjH5GL#OBw-!<=Q~tZJTzE8AD%W$c>&CtokIfem&m;2UbTo z-nhob4QXxwDm3-h;uLET-yhO9;PS80ckgp#0~Gb#YmT;+q%Vouf2RH!E>G`TvKwG8 zfiK$nO{j^^GEMuLWps`EWTG$VsHG)fd}%0v6vr*;t`DnDo?Y}?^4 z#e~#BaSw_mf9-DuR_i{JmFq?X#EbH0>?+PILc8=& zDD@|wUGPU;^5ngNbc}8^SXr|rXafS;fP3@>2TD~1K#neTkBT6wDD+shbyZszbK&H0 zZ~iY*E3^vmb;tdHR#M7l28`a6e%PtFOAG(`H(D6@sGac6Mzyju5+SfQDw!pwU>|2D zyGtrZh;$osY)w4 zJa6`vLvFS}lMcW-Qf?t892Goo-Z2PuT!` z*NpoE)z@KSp*AhYx;GkT^3Uqb)I) zC7hctC;9TMNg=I{ZX- z#B|Yp=9;1Vb)X-<`M7g~r0~;w-7eH^llMm+2T5rdgSiKte5NCywIbaOVR^wzc|Ag6 z3SHe%ZvnXRtF9O?F!om0GnmqwK@S6tIqqaqN659~D?knYSgrMAY0o-G*E%g73aaWS zgChOMM^ZrO_o3BInV)8rO%9?wa3XT09qgpe+xD6+#q^GJPku)?sXaU+buSun?dj`q z)8j}0yYxFGq$uN5eIjoo9UYp`3ejDuvodo;H14r(wuz!1x(nlrAbzWL(;Ch?RbLQ? z_wn5*7eKV?R8+Q0EYb$%s{E5S+yN~l`FgcOF~KC}l-V7>o4u2AxTuheXq)e?eRx-0V5df=6wu(m*+Fp@%j> zbZm+Wao=$?l7DwJfS=_q3Wjx8$6F}{K7GD)*74QmPAcBos_B7RI_XM9NKuUm|NTUc z3jV^++g;E{XFH$i=FX*o@k}As+fvmTqZ;setqR)rwr(A#nQL#3Wl{Z-fL!^Q*~yTS zZ`c|={^#~5wddfvUFg{QbH_WtnxQ|q=n_scuh$>=6!m--kNDHg0C|MiK;P(IS9Usw zD+3x#^gRr=|8Sc_e1$l-g$TKKX@6RducgQYH_WrSAj+>G27f%FX~ow<`HI!-$pzO` zMdP?9ZrU-!OOKYKoZzw+1BYRb{3SAum;j*RLCf+*UhDNw=P;m3Fn9`2R@iiay~381 zOJBqQoV!4}bpd;X6Ip6BZK^EY{jzJ}XRJckW?I0el5AMVq}zZ@r%_v9p+hMS+2PF# zMIY|#vQ0Ia#f1VX{)zlKEuh1O^_hipyLp*&N00lWxX*W2*Y4;&`~{@#FcWMXJ}f$? zs)1e|c0U*vf!q#J#j+LK(tLk@$`E@)Je zYdp+3X<6J(ezfiu>e5`m6=o-0EH>R8)}%nH-+IDYor~}Q(hd=MW>EB+Bg&Km;YiPY zaDfT#;560Wgji|qYk&^?s9yr2S+(xBM@p!9%@`qTR7J`*D-bF2w@F)SqWYeQKVbUB z;7=Soa*BCPk$+>m!{h zJ{o8r8a$ zHK{5!;S?e61FhQ{v$-J;fo_C-ML~s_6AT!opzdE8xINi!&Y?=~<5yAKR`F&!WomaZ z1#=ePE-z>?9z`|$P>kBG0Q=J+PD5SBKk|0V7WoRQuPL?5rR?AQDbN#0;b|+!dD{*J zY|0avr}t`|GQJFZq8E`BPKSNpecZ_}7~KCS&*;e+D|idV-SV_?6ChQ(?w|PlWh_na z^T}BO)sU*7(Y78W&$lR)HBhUxb}ML|c+PeNY8L=V=XO}mB%lCXDtwxAFOve=@$(1& zjzE9+jQTA%-Q~l7%T51}lbinUZXf2E)2g=9xN27)fL9*fDK~JzkNt~Og%l->8j&YC zdJJtIdDZW9@v)q3)KJ~{t6x_Cj&RbEuUQ@(*r{BM%`b+oeSh-DzcbKihI{Lu?T3eexNi8Xz23q z4dk%5VtZIScZ##^P^*GKyaNzn&eYcoeG4{fM$k!*Gnk$3Ne205*z8|?tw8ZDB0KDC zDP*H;Mtyp>rxZsto^Cl3L~5y zeD<2S6U_d0`Gc98kp>?nz82)0F&J!2_YgkLK81o?{vB9_)cE!neRO_WGk+pZv^r0#x_fO!rcbbd= zl3NONW6_?NS8k11yVC)2n)D{E4if<6tribW40E0+BYP`*T52-A)m3QxdBcw^n|Vsa zCU|MgT7~?^t#{qYz)r}iC2>l%6$L;nu;&5Cs*=ZrJymE>@gW54tqnk?`$9bF6C#-p zHcuaeXd&%MR+Mk=ORC3~r;mMc2(9icxI>5Vpe3i)KU$QGriLgieC(Usw)d<6x_-s_ zEY7t6OnwJ(W{*izKNzEE+Y!}J`tA&I%Qfq@}9ij1n|ML6Uwz}Jvj*|(FizICNKC)JZs;h+Zh4$ zu^1&{1~m5TbR10&=&%+opmMG-aHl?^ ze~XTWqYA)&KD|sntLHyO?Wl4uef^;JB3U-X(fzAsCf7%_r**v?G^{7b4kypOC{ME3W#1-(e3 z?eCYGYQUx*Z;SA+?UZN;S?7z>r5Q?B7Op33OpLp??1_rW)8fH+?E#Z(BfY3_3%;^j>3rONZoPvKR` zy9!)mxeUHrGddrrX&peUj-KzTi1B0Q4BdK?fbY7Vs!;qR)oe<}wq~bQR%D>=R8_iP zg&v?hJ`Ss%zQ|a&!%Tpe<8%F!BBc+)-Vy~jaM8I85BNVzPc>Myy@x_6auT}gFNuM)NGz-a|$SPJll#zlSa*+S2*e2UwkxmhTl zd}kdIWKn*a?BE}0EzktaI^UVjpfbjbJYOPq!+iSXlz8$L$1F7N#l<CP1Pv#CjtByx19=Sh$h!Pl}L%+g_Ibk9n<+KqbT0vAXspYj%aIBhF1 zGJu@oNEULt6Z_VRY+D8hl~<4>53{UFYyhJl((h{R`uCU02J23|ATYGkov8fdS~x*u z3-d7}HeYty)N$BKk#nZ&ejW!bc(N0EH!HBdXnu!5G6t0hE}|jvC-0d8zX; z{xcH_WYqh4jYyF|dZ4V!j|QWW%*p~!(s*mdSb{|HN%BTFNB1Qb*X0%Xi3=x0cIn)K z)U`!1jnc98Jg~8k;JftG@}5^EI~ zk=54by%TvV-@6-_@n|yEK@)NmB!@ijI`Af+RR=++zI9`#f|s%a3LF&a36&TqRLGaB zRFfK2VJo5X*2=?sXQ(U_!|`yOOWF}whtT;gqyTqk&`H|_KNjG~QUEP{pCkLVv~%{< z7QRz?)|UejR>6ZE`cS(ShfgmZ;)dsJ2FTb+me+r20UUhzHxgwJB|8To;{X?K6e2QT z8AbE^9|BO&06=t^#t$=NgCEsXx2CtZXm(Dyw8lP-WCx7`$xd-u*vx{BY{A#zMld}UU;`BS!x7aW_s*wcrba|ET zNm$y)iU+SZC~!cvm&QBZGIgTdCs)11&9!pWY3r=X{R`rQ!`iMZj<0y@$1Pd#aLFY8cX5%eM}B<}B6 z5a3+9EZ|0sm3hIaECmVpmN_Yq!}m(QUg5Q6J*!7)7CM=57A*U z&D*v4WouCIv8;~kh=M3n&QR2>!FtAMXW&GmI$|FGx=sHjLO>USLx0`!dG)>l zHC=|m2Hi%dCsJrhGYO_AHQfMP8|>7)%zizMAb@Wnhps(u?gx^*s(JKh&I&UNf&KQ$ zQ$@}y-T6I$`B$;yqEKIwZ!uD2{zDY@X=ko&A_Oy`b zv9}7^($q|1asq7;3Fsq*1(fIWQWXZ0&}b3XhGaI*JJ-%X^Jzh(;!Ss5v+ML#6a zmZx3k&wXuIc$bK{-BF#>(mV|$7>@t&Bj8*+WI3NtPDW%Y*CN`z0~g@c`IpwZI~YlX*>@Xf^KI(|&F%4b z^?2*jP7AcX5t zP+6W&qs>kpz1EV2h2Rse+~ohGf0S!Izvo29ZP6|8r~F5cpbtqsg>!9kq-=1Bptk=a ztW(?^XcptzIkHs$FmGM1TSB91!*>`PG&*;(ux%OF>|3RV)#FrDX=q2kv#OlhO$N910Ca7K-4qs$`f$o5kXZ55F6}CeS|imK*2 zo_VnwO}q{j?i9Cs1Bj_NrMpfv@xQ{YFYfhTqD^-bKd0}nn3qAqQ!JuGK012U5ZK?a zUznnEL>2`_oLCkp6Ec|s2$_WvDRyaifbY8#(@ z^Gsjm1$5=5Y=4oBikYg@F=_f5(DpVoV5KNN%Vf$@FA?9;j0G4{Ffm*~|0!!D5KL5? zJ)D@DAiD2F5q8oDOn0>*Ksyis1?6%ti)hkcQ=|Oo{1G16M zyFgvfm(jN;i)s2<3bGP$v6GX7B6gy#iLwSV`&+3LK&7+7g^8EB!qkJO=2bePy;23p%m>YRK2osjLR{mf)6-^yD1bML_B>4jj5vPh_!syhkdVLTp0 z7rYqj3GA?o?qDs~ew_@7XDoYNQoMI!0)lS~-aTj>AEG&Ga-gAZXplWpPtWm9UvqnL zW%cagU@O-tnT2*UJG4hgW2f9{4cnhPzSQvVhzL*#W#PC$e)S%T8gSF;y7X=DBg=Pe-Z=ouphNL_a5ip=GP$v;0 zTUpatoFxN1qPf8*E8i;0mx+;Sr&Z;fr)q?MPeU50p+#&7A>%%F1Zh@5CA&ZtS5hSIgyQHP1K}ApykWRq>q*c06lny1OLAsR?>37@}% z=gZzMUF)86jydug*PM5kesD>JLH89Az2wi`n|@b#_kBjpaI>LX)WpYGoE=qwhrZN4 zDdE2trvCqMOXhzG^8Y2sBfW_KzS987t^VQtkvx67|GFRYh~7$?e4g@O?>I0TMD8Qp zNTyB7wA=gMgivf*g?tEcE77+@s;Y17*I4J-4)`3t=)lEsY;sMb#-T|f;ozD>@%A#{ zt2VT+|koY5;qhs6OWgwAM#i)<^eHvk=@fq`FbN{^eEMhp%ZmxLFzU`;V2d6`-a5 zdsZ?XFBZXX*hMw>_OnCP!xTThmc@3}fEQte_*v>x zn;icHx9V$C3#+Lc9F#20CzsHU4vY8v%w~sU#4{UIj8v$$MEBENPDpBN`Q=POJaRTV z)Oyiptut5T27M#?ip)S-K_~t2k{!1BKI&G(d5x;=Zfy+Jlq{Z_+`kqHK=wNo_c9Ox zGB@C~ySzp35TGv}!sdOpyMUAG&%OhKk8N=H9CaUUBJY}#h&6dvj^7n8^8ojS-g`1L z5P8(v>^7hm`X3sQs84=ZXd8|DHOoF_o?r{DT5hgGGo|+&T7PW8ML)OgtL&_&Y2-2L3>5V`Tn0D0TQMkfoA-rH{bk=1O4P=5pOxv%qN9sCD^#GXn} zp_b`r_tv;gtt6fAYVp$G`z2@J9x$>oZ_*>jIJ(5HP~XPprhBc6eSR}Azv_-h0CJj9 zaCCE*Xlhf?M`S^eJNw4Qin>>aC{KUG!n?@G_`9M5*0w=4`I|5EmcRbTBkP}VW29c( zAZNAMFqJvuxqSUjl;UHkH>&!G^o)pC|hT$xpadDAuvm+dFFI5Ub}ebDAt`FP2~O6a9W&1f43SVa$v1H2#ZPW-mbwS$+2P9msZ!?r zE>n%-0?V!MIUHw;Jno*Jy-uff+|(AZg$6OI^HU=Ru?CKJEePQ@{h42CS-20~ZG_kN zYS|5hsFhllKS#M}x?=6WuL|}V4fqTkckAiZ`W)$p(!jGXQ)r>L@f;=yW8I^+%KBQl zq8>7eSM|N%&0f`h*t7bTGDx#Jn%tHiVW#W7axprpAIbbLh`eRR=lOVf)R^qWb*h)$ zwCl}*-w5x`pS#w;U&G_h^fYj9^+N%n-^FiRXe4u)$v39uO>;kq!l}V6y5|i5aDB#d zYIlC@b1-EZ(_`Q@J{0nNs8s+n+M`riggdsS((#dWm8co9iU=NimJ|>}vz&@EM*=%D z){}~^U#$z!DzJo;(j4hN(>3R__IH$$3C_(I7(x;0U9eHQl3)3ImfQ4-MSiqN;qH#R zi8CPoJZVJ^#k4ICXI7U_srXdvJXTC+aMK>zF^X|T2Cml=5|Btl}Am>%JnjP z4b`WBpi-%HZ0qN)3XZ(PHb=igg7<$gf18P4S@z0Mtw#aV^&YS7s&4zsCX~tT+Gkjd zwA?MY3toP?qBb)sFCCAoxbI0lKw5E(wAK4b!jtEo zJElxUOuF%8&fOL_KUF3C%8W0$o;ReCVHtDVz0Jc=;M!k(@j6K z)VTNf<*34k0oG0Tad}<0-nc8VIX$s8X>yMY%T`poego5<6FZqthqc{)z99=kH8k6- zL2RfbNtx6))Tw6e0auU3!4$-8Q`Pxx3*}n10oSQbWp93~LJo`B=oikvY)1w$7aF>) zqg;|ozHV_os@gvVHW~~zYVgf%DjjUp$VK_cM%DfEgudhsEW0y7Kd?AKJP?yj0w zXnxf2nQ!UgrAB?OYG#N~5EoC>a?O5}`ZZJ?3vof^y?j5~Yr>8#bzJuJiWcwU9B<@o zuvvBc^wOG#Ei$;4U4+m3_q*gSG$L96^?70pyHko3a%<^>x_1&){iwx&$znJRHhW!KjBph? z-Q7hYU>2-JF$sUZ&ZH31pPU*W3>3#B=cw$h#%ii*eeY{;5 z(~E}qswu@!7{qGTSm$PUE*L%;iKBrzA``6*6jQ-U*R{yFhlN2sJ-Zg<^@SH(tc>WG zB85OHZDhsvCuZfaEca8#evzWg2DKuW!++YWHM^v%m9LpQ2H1>H%Zn!!JmnuY@m9u> zw>s}3G7>Je8Q&q^Tb?U#VVXveyE^mi%}N)b@Cf-Rb0tahYa|3uz&kLhVB*pF9m9M_E@M?2 zwIp=GjcJ0&*LgN_j-Y1yeO|kf2d@j!Q-M1I8l@3Sxn>?S&*rmtUd)ZYow{tO65O?y z<+Mp*WIN{L6z|Eg@N4*mOtF*yP*{ok=*8H)u(wIk6#_L(gM6K#Mf4K>V(_5Suu$=r|E(DM+L6knjW-z{df1D zdFsvGYNj4~IG5v=aBpU8xsLkREc;@7yZP$Ay9h?4p!2PRMWRUO-!HAQBrmx<-3hxDx946%t1cjDRcYN#O*y>18}rDcoOV=ob9Q^O;`oq#^x8gA=?>-3?&(L> zF13^UT$?L*%1a8iwx~n5&+gR=Z3q^~F<(=3)2!a{b6@Eg{*WhlO_t*098YF%{YN*~ zB%|m|JLQh#Uy&EUnv{}H#4TnraEYU}l&%-^=E*pY+u$tEKbvjV?`JF>#5#RMwVOd6fr zBk=t_&X06&?R>P(TVC@p^$7Vo9GfzlolMT;>nHXc6D}{iPvymr5&7Y>(H*o&;9a^& z*Mt$7Rj}~TcyQMpMuAYeN9^y#&CRc2vYEr`R{J#vg^K&T?o~I%G*&9mK2Yc&}q$((ezx#C7qK(&5}sE<^U zsfRAxC{Oq@n`2gbwn&a`VS&;?s9qet(fYuu$i+8pUBUu!c1vVjhMg7RoWeJ<8fJL< z#w`WHY-UU|UAnGrFkUyC+V_;IlHwd*QIFU!c~bU>U99#@wPmLEB}3+Dp}mXXNI-OA z^!~4LbVfzZC9y@;FACEQzkas`Z~Wqk=@_5!8Jrft zCT_fnxO)5xe>GcTRJ@KzQNb(DjnafoLnBpb8_C*95gWl_6Gz7WL1NS#G0*ULFQXP0 zIkwFiBur#s%m3<*h(~-H9v!hYc)Eh-49w6?z8*dyQXzp0?di*RP!6j4!XJqQK-mL5%8GRX}`Xll-AK4=MtmqBYeu)AB|+O>n(G=PNJG zQ#Oo9AJ4(qOs*t(B9ZSjs5v@#9k?80zIXj2vGX{1ao;tI)=e1y$9mL7HnSIp^I7<; zqvoVdxYBSi@TwpKEiH9zNBW4K{yamE+#wM@*0!jxpCN zBPJt#%g5A1xyitLJ5^V$+CxatK@m2{;v^zmIrIC6gXDmmjP*p0haG;T!@x`zv$-*H zz1GxJi}K82Y-%E1z6(uP5Lr%Zkve#AaaXNdpFd=f4yyAcy0egVB<;n3zvpX^DZI@~|RaL)cM zM~wM1Il1A6m&FUgmPwu!>(ti!`XoR(LmamKP3J$k)4CU$wVwweivl zl%4arqbfZaf0BpOyY04|^T+rb0wx<47PMd0mJRgST1N9vX1t0kT)j6M9P^Wqak#n%!?n5hieIzSUJ> zDz&QlT#m@@Oa0s4nk;f7xt4|B)|Ye2?Cpln)|t6%ZSQE*%IsZ=P5 zT^M4nl9W$ocrBvgn&VjcUijCP9+pR2jzWOiT)X{~ESi3r9$5;jhqgJ>xgGh<#d55h zqY~qK9D76L?d1kh+r!B;1|jsk|wp59F6eMo$&d^sId4*okpEu6mClJ&hRR zp2R0s2k4VBTs<~?=*RtPUHvcN%D+;wonF-ZiXrZ@#A`tjOk`eZAff&iCFC+zykEBS zj=5+-s$`1Sg_bV&elWZ0fikXVcCor|JkeHfplSsc1NAktL8Djs4jnf)UK|Wp?OYlD z)*VXQlYyVWm^bwEP29He$i$EIlcIy`ZK2Z5YJ($n?;aeNXD05%h*@>%tD~mN99XK6 zj#nk%xy|#uqk5$G?V60BDgN2+IG3^SL{ZLTQFGPK*0sVn>}^*w19vLfs%{T$#FZ8Q z^dAt%N`D&?{bKcZ4^^AfBggF(9k_y)u%SF>jAmbUQY2@=E8@{ukRU zY6;1dq5bJAn{l3^>uri;y#`TLPAU_ng_6;v^|QmbmiavzdRL^Q+bN8POFU^tsKuAd zDzF};VnilHttP)qFE_%C_RLu>i7^|@On37%(;1!nc%1rH>G1Fu5B(9I)cVeySy{NI zC}gW!awSLE+r3UeSaIdT3R)yZkm*j&Jatrt6fZZpnR$36h=_ROYVF&hBLB_JI%?Eu z)YdL7!&R09@CRSt(60pfU2!xPI0O=oVTht@G}KF)r#oFU8Vn%AbFPnOsby-EgqbtiDLM_jx;Anf(rbtp z%FMR!=R7#$#-u7!8?{VQ>%7r;2DRmWopYFo!|V+fJ^&&PrFFs1_G_w&w!fI2XsFb} znx|AxQQtE4=w=<>B{&g>&*OS9{IV}_$L({+sIao$tC90>XrwomCAu(jJuQqWm&=Fc z!*0)uz-wNzt}PuWgCvI8V#FI;e!Ax&$x#v`gK-Ws-FfDxDRcU0gX2)3XqbWW@Q-Wi z>5|18vGP6nygd`m>!s2A7Z*>G4P9sm%HZV_z-8|8|4`=2=PvB5Ic?E*Gta%WVIkSG z+5%;^9kHAnn4pwSccsrnWnRB(jag5at7@3NZ<(>gp?c$s(X*0~as^?1HyILcL;SjL z!WyC@pLbi-b==)Z(+EC(yxV8Z)%7ZSAkZ%}F59nq7mpaVrTnCU2V4H<8`4+T(J5W6 z2P9rg47ZJ>TACT(k1i`D6?m_gNeS%!Tw`Qfq43#TiI>QAe)0Hh@cx=JuA0Sw(S$`` zs3(U7!R5+eeS<`{kX3zBXTX>ARF+X!yOOxd%4ec21LFj}R*!S|4D@(Us-E(;O>Zb4 zGD_GXKn| z@$E{Z1Sok0U$>Yoj(C&1)JE9`%9Zo2kf6-+o^NvSSG{W8qs&Mdr4n84?=2TRZwf0J z<@M3G0jU@VOZU-Ys5%!H9u*9j?s%7Y3>|$P)WUA=S*j*`J=Z z;KQU(p==cu+pu&^QEQcCT}P~$n~pdpqmC0JCY76YGKJB~8FCs>yo-GhE^7xXOvUyo#C-vuL7PPQ*34IiL za3!Rn#1TilpGdZ^e)*URZBR0NagUMTC43v=DQ{&OYIv|!O?27gp#ypN4*N@I|2uia zoGDIuL*7$XC2GFnSv=K6u8EKm3_il@tFq7y7=OM%2&!)p-Tcsp9sM&cBj9 zLI5Ye%S(pS3Yy7OCP{rv3GVM=J8V;Ed(QKOFR(cdsMRR2rFfiK ze<5OfEn6vPV2;j#8q>_9CDv1aS;VC_wIO3UrNpk`cQ?ft#07o}**QI#Wom)ty*|h_3M%;?Vm>^+|YmBF#hZjkdf_m5H8dmQ=S>hBx;A;wb!I zAD3TdkC_jy5LjvSF8*5Y+tUIW4$nhYj|;Qx8`~`vJ2YgqZ^8!EM0wME(mQthE6n0a zd+(h(-DhjzFClq9J2nr-p=G=h|z`hx6SN*F9|JM^`kzUZb3MxYzZ_ zfrZ^$@!5Rc&eSkg-LT_Yp;zAS z;1XV*;dK?=&d7Jey*uI(*?u9#qtwkcO^1c6?>67Vge-P9nb|7+a};M$W?a3u1#;So z7TN`;kIi{l2#zuvY&v5^YE!&Yw4BD)8rjJ6?dbntx_6LNZwEuaW6`R| zApL8pA8{6y`7$#+v*iQX$%^Ri*mY5FeRhJ80cPCSAJbR_Z}Yzh7pVKZr)(fIxTHGr z!)*0I$AamcCr>6dOWWB1#%-DnhN{6+2?GAnM3P51+zFREdgF@`Dq-q#J9}Qr8cVao zBqQt{R(x=jqr!tC2H!xwa}gfBiXSf6#BnN3t1d)aOx za3_EDQR+<`2Y|&~h;D59RQ4?tH{`!@ZKqX9k-%hhsYzH+BI>8{Dzi>|KH1}To`_#$$`mOBiP%yM`P;P;Vf3IO|j>r*8gMYMclOlHh{fpe!Id+q$#pSes9FxqksX2**g{ZU zu%6JtS-;A-DZW(PUUX*dW67EM^~YlO;9thIV#*mX(^WM5_W$H*By@(x7rwEk5-E;1etr!lZE5(D6JtmwMJX;d`cbGxG-roKCdLCW&c9Al5S zqJ+2iiGXgB(lyL&wh*6FuTN!YXp0~7N5RrQcC*^*V9Td%WVjuoPsG1V;D>S;{}*HF zS9SVF_5Xis{{JU6|9_Fh|00S1UvTp=Ob4=i^O+fw(~0&mcEjaOxg{fK`z%p*VBd6( z{-V3%ryR!vD4MrsQrP?SJ#8oVzG7hFU5EbgnOyeVqxxCwKDNI56d9G!y|>Pb-;|fD zHb=1Ak}{FL#0P9f`8YZPimOpL1mrS_ytemwKI-Ao8N&V7ktAk@#D{1r9kHAL#zLRm z!T#RV*n?9sJ1aE?+Ql|hn^!n|4kyB1{aeE4S3%0n48>&A-QPc-ZA#-pqXB^We@}f+ zko=x~6*k$-k{|Wt3I1hWtDY=%3G;St@N)hiai&}2Cl!V1M4ah|(RQKf*2>hb2uM4Q>NV7AQJjXkag^!U4??8=-zrK(W4P$_HhKdEIo{S7OO8{pxLQ1n zjoXTFZmHwB@KpUddv0TSLYUJoKw4W)-vSl~&P(xp_Rm|B1vQ97cYok{q~63P4w8V`~G|o)rU|yu78z2$HRO4!7)rmufhHA8Xgi`H!d`28(x|6H9CfiU{)yL0V=E36V>&i=c*0 zh(EWs&%k%-q1^lzEwZZ)amJALRNf93A$hiw=G!6vXH{Kkq&j|3!PS# zN0Iz2J&SBH@5_Qt|xEL@`Nco^7(0Dy27q6i6&1onjGN3V{3 zlUb}DV*|BY(pvpB5%lQOctdyVPOgGxHm**!v{9X*2lsFTNxtxoBqmc?JG%diuWY?j zE={YzoYQ;Tx!7W@#_<6j_@FcnCxmT)~Psw>-7O*FF~(P>-jJq z_UMjb@{QbkCA70x;0RNf>C4l@KpQ7YZR|xLO@!xinKU`8CY|j-A%}AmA%XuS$c~}p zSL=E7(qSJF4Vi9FW|0geBHK6!Sv&l-hGAE_LT9cH-`rqH{#xmIT9^#@gr*!1)Y+q@ zGey*X3?MN3`0#||2ONsVu@4V|yIF?OhI!`V-C>u$riztn7A4U==L>Cj*&#U4fmg#| zRyb-)`}Jd5_vJ-r=atL)tVX6Z{{A`9M#K6_64Bo~#G3Dn0|;qFbQu*AE+q@NNF0Yv zgVr188%jbDAX;%=Qv7ZZ-M;{)8L8*mFGb_^L)`M~OR4qbPAp{S#qMCvR|;*Ue0?Py z*vokGf}hwpY+S&(PE6!qVRt^s7>?EYzjQ^lJr~wNoCoF8q!;MPG5PD*l}YK}8^>{< zON%`Q5_tf2Ldbkv5-l8XyLWJwE7uffmLzL-r`V@LxY~n?xwO%3#-QtCMSc2_+4p+#wYHMQN~EU!(Rd_1RA zsObLhxQ<8T^oD^DjHz8r$q(g47cM@QV4e323|!s3ErCIr#{H5a`k%=0x_f(@A76gX zROPV|Fg7*r3{-Q7#tUJOPT{H^qH(ENI@Y%9u?T+?E0)F!>);I zu3va<2fp#}n?DdEgn^AUxevt&qxa*CcyH>>_2s9m{r>dnG3hwE3H|n#;Y9sY$LV;B zX4o;7nH1mZ04`J6{}KDfB*m7rRRTRbQbY}YeKR>l>vk8-(gIR}$L2B{SYDWX0{4~B zI*V33P2irHs`JMa9_g5T97>%0s_yKfu8LsXZ?xKdV@ci5^Mx>x9LpaS8#^edZ2m}$ z5O&J=)}=>5=)U_g%zf+_HXX)SH=afWvsY^#C!`!(Va!9%Iw;o zXl5)?uGq#1=Va$J=aEqo-}^ltIJI1{;z|=HxR6tT7!Twa;k8j$R84;^_OA|D=if9l zGrMozu14~AkJ6|*_9{#y0{o|jqQKlGWn8aAZzK}~YtF0Qwo(@F`q@C6lGDVc^FQ3d zDg~v0^P9^3?S<8ECSf&dHHp8zG^hc2=atQ2Hv>nKIDSk9aymn1 z2aMUnS`7pH{t2&N{TA)79HgmTqQIl_Ytj#)qmyAkEw$Uw1tpQK*EzanolmwnqE(3XjrVZ~auO&a#p$ks-*w15 zGw~-KlTKBFw@(@vutU_xyLc#mZan!E5xsPUM8^Ee)hFE6y@XWQ#P4t#KmOqYFujL$ zKl?C8bhPgK1gr+tx^|`G$IF(A2PfCNlunHhyP@5;=H(xd&9;1bA!*i|qvbgHOj?^y zl<}e89LytKBk1R0zr#=LLG4tm!PSFJ--F9x!oMh)k7jcEH{?Hz5Us;W=x;Rg&m=t{ z!o)iR+LGBg<{bD(0NA~GdMp}xF44NadmE16*p6F2tUzm94*9i>Zq+n!&FzDeVDn-Q z;EtXwDA*r9pN{yJ;qM>gtB~w9f~Hfv#j!)jytjIWwSE|@8+`^XN&HSWDa>ngxJsSd)$X^7n}3M?$0paGaEHj;6h1VXb^YIgpiAV=FFj;I#@j>Uggem zMQ6T&XxaFqbCZh&9YkL+OAb|ADm6X*hJfoL(|qo$c~Qs-QxV|mb3yv$qiN&Op&*sA znCT>7ucU)K!qbnu6dm~KZeq?Kgxnb{&MgRj3<>xdAOU6G>s^0%v@sai-7iL5TwFM< zdvlJtIUy;wpI9gMqm$MTtJyDl6DygcRd6E#io`XKt04BfAf=BEugQ*n9wcT6H6^EMBeDCKKkj6l zN$BHL+yu17zg75S$1RXAO{G2{dT;9in4k%$MF`tTEcEWf6XUron)fzG*;zF5qR82_ zj~!966#Y-0<88#D(4`|~ln;+o65*fO(1oBj4h^w@2^p3@TIF90s>ANPzm_t^SF@#n zo!fN@S-am;%u%nkr%BG8H#wmuK+?IVs-}u~l+e)qH&PcK6UGSkr^6N}-o?9+M$65# zCnGf(p`+j?h!C#9OFwpJ=x|bya+6&9`H3_+-15iRhtG52`iGiNj1CX)-*>vVCLntw z4SRE~ef`gm-0^qUQVyb275Swe5m7UX9&B~2RVKEevBn5ilzA(q`@~be$q+X$*S zK};z~)0vt1l8+45&%hr^x7wG}kSe(Q6%ptS5?y|0p`E#NizivXepv zfX$i39`V_+MRa4TdS^NE*V3SL9|;>8=Kyyz;<>_aA6@}zOcGx+0wK)8-oE5Z$34;x zJi51b!vbZyt1ZdW=b_FlJ;rwTP%~9KeafAOqZh&3Qo~!%r&xSOOe0@&G z$;N-lAOgp{J?YBksBaCje=1s9@uv9Gp<>F&(U^9ZCZ4Iz1@BuK3l;9}<~aSrPN| z^N$Xm19WiS^_$UGXW4A@Fuf;crE^y*RzxgEtE*hrOeFB)7{N}or6`eFAC&0?#VvUK z>+gxMwDk0J@s|JyyoWny5W^#x0}e$Vj2y=UxJqA=~XmC)qbJw(Mf{4eBf)vM8L~!-Em<1 zBZP}%!fsboFK_EIwwpY8O~?&k6`tnhyY2iljTZvXUj%PnU}q-}7w;oMARBMuP{efp zm~-uV&7W%Bs@aBchtAw1>73=OX2{c&hA*pA5+0GJ^o zoj)9jA(bZkc7-W;Vu$SM&!)sEWvD4XWuX`k4dwL3vCW}0`SVE)QQ-j}(eRufCfI8f zgIr8w3wzD^!(dqhi}Fb;{gVnvko^Erq$~1=UFmlGf`%*7YKO|4%vL9x-aAgoLRAIk8)slNZW!&YRGl-D>IvaI_u00j680#3LtOx9qwjM!Cw@%4 zNqQjghLQLEu}LOOfa+qz9~=+pjIo*o>yHkl7JSr8163x-^V@~D=51$@%>#H$GE`*y zjv(V_R$`PIto6%B6zkzyZ76Qd7`LW~){I&Hn(LAV16H{!$c^?_hAFkQ2fwA24+I@% zlHFuuuj(x((s4=D0v(s}!IKZS4&9zif}aQJ5Ts16%gY5;GPAkhC7GV~TIJ4`Bb$zg zB`_zp$lkgt|3nCvY4;mt$6hT929wU#)BdLcVEeZ&kJ#%k(o^@iL)FniG+aS!kCqaO z?g)P@T-h3*y;_N5{&-+a7eA$09yzo|HsW<36eY}_~=oX`2<_2Va-49==#Lyq6dAeH6{hR~7!?-}{*HG|>}ZOLy7I&|Xr^ z6d*!Qmw7dSik?F8Ckc^}1olD-Tdv^Htm%k#Yxj_4;J8gH9xfw*fTH=~2~srtEBxyl z)@dm95r+6h&4fSEX$*4&*}$u%4CoB_CdECdYLlGekm4B8;!gfJQOsw^KsV&-jt06F z^ueU>{rL_ZSvZiJ@^4=tgW; zJO=flvxmo2HkCqm5q-$uT~;eP=cHps9&c*NhwtyZJ3-r7<>^Mn@A!IszK7+>)jOmZ z*eakgtXLpbIw;dWaiWt4v04avk-jW>tW{zzE=A7s-8YY)JbTG|=NH?aA0-B64B%y2 z+M4N5&251Ir)EC)pas|j6`-u^-o&*XQpIcH?V<->RM+kro)7GZBMAxsRc3AeL`Nd_ zZz~4>$O!hEm=zyV=Dg6WAmFyVD8$$RQ1nZP_)qGiZ^PHkVTK$mly&HhWy*x-+}xTI z@~ed^gx+?rI2y`R;o4y&3-bX7z02fq65Kab;HKV> z5U`0%roFExFmHnX%NqB@b7A5w0w@2|%fGIlTXHNbJ1-(3;cUE!cR3Z7@fkc#P-jyk z<@nR!0b!7+8Y;KL^c_KG%8J4kS_4nfUPbWLKw6(`d8&p(c$COwydG1+WX?!JE<)M7 zj?N|w0icd#ihoy5m{3PDRNG%=*=@oSd zZzc&H?5?2z$-9o2{)bN1zc(tjb073h8o{6enKyMl6UPaA79$9lzULB8W=;<4jo5X6vF{-0(;AM9fX&Up zA2pAXrQa0rH2crd=6FH?3UT`E-qWh~D)X8V9OW>%6@rP;0^en2Vd?@mVhFSSFjR^L zo9Pf@a8r(FlEogBtSz%&Uzq{0^?uZ6=d(L=2=%`e1^&h`FEZ7{YP7%n4##oMY~nN8 z@3PnIz9*y>P@C>ZVHf@V;Zy`}Z3qd|eNYvW@HuFnw8F$VYi@)PBZ+J6c~Chgs}C}} zCy??5fFwFDi}t8jp#sgL3c4U>cSNT@fBpkB531 z8xE1+PuD}s4O9W zlr-o;I)`+UoQ{8%A$|*P9B$I&gd!3T+25g1!NXeU@Vw9P+rNy8=P(EZ|Jp>FUDd!Ci4`pAEg0YCl^2zJbQG@%7Ef zi;Ds2Brb^LnYo+|=5=-@%~ zRc&BNb$KXTB*nKvp*Nj|Ue3)YQeYy}d!D19O53L9cG1B|hRgeV-cKuQGOLwEE%x4K zCfzd(IA1#ROZr!FIvlfDr|P(p%hLPnDQ(_PJ5;L6 zKAleuN>=QWq^Bab6F*i~f!oM=d<|dM;WJtL+YE(7@`iCPbLyis^w2#fLu$koUs`K~l24u~J(vS@g5b!2vzT3vr*9f(~5&#^E zFBBX^G4Wm_d?YQz^sj)j#fYEAasIv5nPPozB;0i)Ec-Pu(pJYQHaORtl27gQ;@;1` zI~&@qrQm@Zfu9Y>d*>dCTk%EV-*+~gJQ>(srWEV?#!=$Ruv>}=^VDK@9@ECp>L$f7 z)gmsB{^>^|FyE}OlPNt-i=(!-cUpvdM@}t$Bl%44cyqVSu>B~GKDET8zY!9CO60c~ z;PrO~zCgiu8?;bM`355dus{7+2hv-D&)~4jGPcCBWYxxtQ7e&=y6TONO7XDgJF}{Z zHxsLxO?v_dX`{O;UUbu2A}1WKzs5|X3FM0&&7g@^oe@?LEeRmKX6AvdfUC2NV!Z>0 zcS*#CpA$89`<;mUUi_ZQ{vBxe69xrQBm595t{c6%I+vj@ay_oClN=LoSI5uqaT-!3 zyoPUS9=}O?Yv!U0*#6qLgdGl^snojj_TM6{-698nbQhDgyDKt>IIiF|Pv+DmlPE2H zdofvkJFL$;UFD14%_aS_TdnPZaSQGhSR9z?ulLMR21k`u`z3#ay?KpQ=p;2mwr$b* zmXZLo7ZHc5EF&Zz0q{q%mkm`8XTBIc*>vFMp`f0==e9jbT0Fa!Jmi0i@v^sVF^YMZ z2k7>?6|bQURQi(2=^Z%5Cv1woMtDdHzY1AlOLH_!-JMWg@H$XoeTqQB2s%l7aOp%T z?SmE``%R-!VCnaNWTHl8{+utVhu5!V(TGaZ34rULwXx(E@J9$45Zg?b28zDANVMQx z(gbV&@Y!M>Ko`hB9`}S_!q|J0=)it8r2RArqRXMy?|q&sdML=IM9eDagB;fMP;j!?@9%%A|RwsT0rG`UfG z2Xy~cOWhctpPFFapCi&!R0t-WeiswHbf$|0b}$^bVGQ)i*IiE>d0!=^n6mcTO@?e0 zc*TRuQSU@dn)klxHX5pP@A?NrMpL_q(>bK6X@&m6K z4ziaxp2iPeGXvHvv{3(MjpECNTj_k6Wjg1*t+@Eh)yqmx?YQFdMQW(G>?F=7>o^;} zMiX>{bGF_nI;Xxun84YrzBRpNw*z!z3-cqI9Z9_FRnb;QpCBN*xt!B!a@#gczj%Vp z$!+7#RorDQ#%16R?|BT(r_|xcjqJZxgzE#g+MKpDpf!VRPgAG>qb)ho_Y0vGyp860 z>~Gej6wYxOU|$61_9Q8e2=a9zkdMQg(;2v&wG$s>>1niBd^Ug zpIqTOj!0s4W^C3I#`YQufg3|{GXf_fhT%7G+O^`;;WNI;Rd zaMGWOIfK}~_IGk3&2E_QjnBq!&^ZYMNS4|C1SJ&e>e;v9QW#0okxF;RZ$^PQcl>og z-ibgbSwKow8CcvqLUi^+`~!0P$hHu}tE zmYC@&s5ek$i%|c<&D}=5OPrU7%HGx^6LJMRF;@Op>;cvq^5=c9k6j&yG=5B4uOI&K zDpmK@Y=b>nMgFNXPRHvZRl5$l8X>`X5};v7Co)l@%jn@`Vqm!U^R_KE&^0%i>o3R{ za%^EkN>82i&qBng8}PF@6%;Z2EDgSSWn=D8CU%HIXH!n7WBMNKj7}l^ttkY30HO-% z8Au0_=A`MZ1j)a#(NekLcWDk8eIK!rRzCkyVVCKrAQDHw@6Pm6y3r$i7pQUZ|Cbt< zTY3zL2@wcP2;H$Mgj>RoWpW8m69L9mjxLi>sRi!A?D-$wkZHv6pl&?y!vQIfpLuo#3gUlfeTX^2 zAQ7t8gXSL4qHIy}-BzUn)`P98i3nblE^O;0gW)kKg`k>>JfUt#h*k{;#P`dkQD$hQ z>Xg`ZmN{7fs&MJrKUxYJrNMIjA4yN%8Op5?by!%h4b$YfZJNCTK?{S3d zknj)J0^LVhpim+xNwLDyExKEdV15y?ei$Gl!z5%*n5ZFJ=*6ADV(V>%5+f`e(@1Ut(JQ^O^LuB;{D-z{A#hPv~TY8 zPMwImqFSh62wk$(&lCoYfJ)mYo?R19orEVduw!7s*GaL}YMqDQ*EAm3j@W#>OL;`% zsK-D5c87*@Ey?>tTu3f4RtqD_dG^-U&gj9_wV4iFC{zF90);M8bd+;gf#DzX@5K8N zq>K2#yJ%*O$o4F~)>}jI@uy#b`^1g-Kk@&~|7l^;ONT~5FUG)UEphap8dH}7ADZkH zOu=4kYt@SD9|2)0x)PfZM${x7ONj&k>cH(Uh#G&xR?TbLr{v_=| z-mVj*j7X3Ea);2V+i@B-9V)R;rob{!ak3Cbe;vf0{H(*dVt9{v|at_@;yRR zShw2jedvL)g8zai0W<pw={({aEe7TWz$*DgK^9Z))8Q>Nb)wmb=-Dx7LR z)Af;T9izr$+q777N=Rh}R0M=PU zrjft^Ey7bl+a2fZD~)<*?S_0$^v!>|_Ygt7ro6Agh>bn>YuR%5~&u zSsd7*O(G3w`2X#%qrmGlMaiNLSqInPS)X6XhHxbNc?c~d%~Z%*^q85M#Q@VdJcs@I z3Z$vfOj7l-ZfHa!B2OUoQ1f!~Ae1%)646VdZJ&)EjkK&R=A;{zkPILw7dgV~`_Ick z*^datL+3t6yGS;H&)%+g4A#VfWS8z3R3eyo4`IX4gwp4t#c&C-(koOh#SSrGX0eY+ zFE@jGVP(@PE_8U(dcr>f97S}<^H2Z`F2SggSsygfHZKp4iw+`8Bt z&36*6z_EkNSLm+8CJ}R3g4KRUIP#+d9FFKs`i_WmG>N8;F_B;bhdxaRlu}7FQ+z<0t-ri@#s;c>gAJM-BZhF~NjLu|c#`6g8U;UT= z(Z2ooM5@&I?VZUKFamOS8+>;IwH}yo<9&kAab+6E^f!cHByd~{Eri?=HlGldYTDgj zua#wJ39Yx6_tSy*-G5DL`k`18l3mo1<;p{N!ojByu0IoqE zwnoJ;;S`KXt`4t(r#nU7p_x&xJ5f!I7RB81X_Ph64sIs9P2h56ZzS6$O#wK}jvy{b zcS{_X+VnpyW?b!oU*=oCxu4Z+$r9@cYYJoc;Zmb?YiE=6@Mmx_vVrzvgt4$|9oJ1& z`QsyjBa|gAz#wGCrS-b2LKVk{`RxC&_m%-wZC%^2B1%aM7&Hh1(j_3FfUsc$N=k29 zKtQ@%lt8UX6y0|S z`v8n|=0CVmQhn#G=p!G3LEgou1%cHDKnzRDHsmZDee^*|F4-;g)i!xoC@?ieAFs;* zW`u>2Rx<>#DS9SY3fFZE&o0s0eU{f!M1Z3Gx$X-0Bw3B_XpGk@t z4P5cqSUFxLz~X0(-132WCW@^$XNe3floG`Ci){lylFwG_;CqOh=1wcsu1hb6MV)iv*6mlQ^3l5b zFKN9^lT4N>X0i(UWfgsa4kcM*w>A#u>>Tp#%m|=%Xdqa(^$MTX_ow}GHyeN(LSj^e zH=KLSl+%mztJ*Vd;Sof6vZALg&kAc`~}~_DT^J(DiYlVC)C|++mDl zl5mBZV^U@97!H5`kd%-OyxVN(c|}-HnqAc{fc;X>z>6tNzU$=)gp90F#{XEi6G1sT zs^(3NX&k`|o1Dc^5D?;<2gD`sIf-!h9x=enu9(|;c*7L{oQZPqE#cp<7-j4 zq-x0kz7Sc`iC`WOb%Uc9Y^(|tEEk+T?Wr&ffGh;Ol)aWkb}WFcW?J@^t_1Dgjazo2%Zk>=^=9aoV15 zTF^s1Vdt}nW2%M5_JcTF8P&)Pf=5nRw`%TQM?gR6xK%{jr02%1C|)If%|OLvPPn@kkn|kwyj9wbzrFRW7JbzunFX_F zVNJY9nl=!qArb#7_Z`GsN1WYC#Yo5D-sT*Z_zzzkNyCfS55WOztiY0p4dP4s$Uz@i zfHc(0ZkTi;NVWs zrS5OCDbHJY>Als7XhYG;t?+f0Z!(Rq`G9tPSQM**IVkY~{`K%t(R2q#jom!qo`))v zB}Sc|M0-c5$p@^>T_a0q8Vy*2Kbw;l!zj8CzkW$BEN8bbPSGX1HKvzt+G1n~pgFRO zUJ+Ys0fJop6+6dzxwPiZIBJSvla@Lo>TAvW#hz>_>u9&aqiT-t;7gEubusQSzzK+* z7;E*M7e=@NLj3GUNy4xLhs)v^_ke$KMU4O|Aj%>EO+Yi74o%(4<-F-eUWO55s(#CK zs&Ek(_OQdkpAwkZt@ghFfKkp*BRNi-u1%3k2V0`6+~3Z?&SNErR&G{r=xP`&BRYnk z5sVCmb2>-Ha3GX@?^X>Gl+EmnugfNEcpjhddoi+)P;TNN@7=C2S_rk)m`-0cTP1qE zD>**xvrx41Lsj;h=b&;`j%2Jy!yre-Ta}0!(Y*tzy6lMyW6D_fYKG%1io5kpdNRCN zA9XV$`j^B;)}lnX`e!=H1M^x*pNrK9S()<|h75V5EI&!dTPl3F$HaxgN~s8Ud6p83 zAy!cF6WEn3s6-<%t@6&`4aO2)vKlXdXI%gh29Q4nV(DU7|&dGjqAlLEkuQh1=G} z+%mhjw^w~&-cgDa@Z5v>9qTX4!ynJaSih}P`Jk&IYE4D`&DNxjIo*-?UUR1NY_6Bu z_ZM#h92PXQ@T39sSL3XY+B-jq`YMR%xI{g_vH8qs(NDtp+LTPUpNq-0m|ghIHLV{0 zbPw>6Y)c*SXGyEO^pk6PjZ3|CW!>&+nng7m_LzRasGNT=LrwaxO2!@^_ljnG-Rq^Z_?y_y zUeM}fA7kmraCsr5R1n$D7vW%Z@hbIfQgOPi`*_>`B@3)(LX-Cwc4<6J$rpZa+L+Xc9?4@qsw9)jXHK$n*_?M-8c zs##}*@jrz5L;)A-XJ0>w*XN@zb1m|k$5x~Z=A)K2@LBwTDmikf)>asx37B>ts!3${ z(UXxZf{#uL{}56Ubtw5P76HS;Tl3UP-(F7juuNc)7&tnz>=f9W5l7G2pf+C&7QGA! zFLbbG;Y0Kv&2Mb1F7Gcd?GI|7tIC?%QD1xNB;3rR-khnkwWp$2#|8SX@Fq;Wj7G~~ zg{_|34>{UpKDrK}Gl`B>2E)K`fP&LGP?1++AO|wTM!>@jWjTKifc?t2pySNkhCIa^ z7s9(c?I#hM7>%xD!A5UTS|q->3?Dp=OGH!CI2)($u;S z?!pVp2KO5SbOY!{&}_l8+P%ns(@2>v3?DbDCJ5%J0W`Md; z9e+Zxas;ybp~?znij^TS{gpeYR^(u!JZs5!uYOVG1f}L#>*8MSI25l-htvwIvZLHC z3nQYxF_HS5{TdT)tv?G5C%^bwILmH|e|_rxwUo|n^*RU3!pN$&J$&TgkIF&051VyA z@Th$ap-@db<@gN_o5`6bOk z{|JFjeNCjvsBS)RTMtj5w9R+AJDQd<`$)1$=FY-sT5xDU9CmbEZ^0>#P<}` zX=B3Af3~%R0UIILp|lVWc3e{rkqxlwW6WquE*84&fE}o7$z63=C1$y^X)$S&S?D0gCNnVvw_&@1FPg|2Hr0ULn@U>ZFSRyG zCH?%ZmEG}CJR4)XYMDp9>a`VRv-{?po&tTd8hO%d1!F%OG`2DXyXn@fb*d8b$EQ>F z590I;j@3PCsnUE4KXT8U-pN_rTWUg^fL1O&MK^YHfT*9>JvZ@O0tw#Vz@lHB`~089 zEq@SLzZp6y=>JYM`#~&ww|Tbp<)x9XmB}|a*l#YX$Z-?yL-d+xz%7f-v>4~tz+kFF zw?FOz>cW#x4IooYIj9vZRsEPyhS=uRMC||vfg{1dHi|c{wBf60ZB!q~QvsagKCl!o z>?SlUe5a3Ao$UZr+p)DcFxPav)FdZLxi8ZUXnsuj9qq=zQUBSnabkCIGofEJFOzV2 z=lG^`zRoG-?7kcrNEtogOb1>o;F~Qcr~?GHpY9JVg{9Wyg%b<@;zXBF>phx+0=EGy zr+j<+)rYUM`V!^(!k)#SB2RC?!GObh>H&s_qMBkI%FEea@g z^f0>IzqtoYu;4%DZ2l~}tpf&rIghyv71(4 z$0UjOwgluFAoTJ5cD5k63?!0(G{3L&f>Dc}Rf*2;oyY(gv|ugd4#0@W!F8{1koy0m zM?tBs$h%yj_5Z3fH3k_)JAmZRdx{H!9Wn(^P=`p=|25nOe0_D%%VFSynQ*6}m{D*8 z(5!5qCqL`bB4xoJQt^|)Fw#?Yg#p;Zn3n+t4}occpv=cV|xyx5!~saVoL|8*r1bw zvAtvB&k;X?3k*W~_5LJS{CAAV{})&Ow72I4Ob_tRd)Z&_ViJ{r!=`;6&GU0FOTZhx zADu9yCCUP4friX2G&?}8^PxUt{+uXG6m7a@8uB^ z^k6&^O(!-cg=S;vD~V5Ef|Ytk{>%V?dw;23TZd%E`6&9f8%8#xMtY45)O5OnYlXo_ z;wBJJ!v{=D1t2cFf)|)m_<)c71Khcx@IC+laAn}P?jaNFQvl8YToAx6 z=l&j;3D$VNBSugWz!Icp)&uApF#rb-fl_4vg8Wx12FP9+y5-R_xV|($tqYhH3_z4T z|8z#+RLZ5mAJC5TSA;dFm9e{R+)|ZU4IK7A724 zBxWB0^?9~17?S}BeF&j`1-}ToA^~Cw5u{GIEnFMm1v-*LuMvF*cg`jU;{gO1QiSCE z&WY0z-+&8nwPSaFet*JzANC69H%Wd^3b6!&8C*zy9x`vgQq53W+;qsl?-L-N8Ec3p z0xB;igg9ciTAf}O1pbgS9xX)josA(gF(&z~>%n`7=UOD#a9VEg4nm@)w&gdz;UJ@R zJm;xFb99x#H|3x|z-wTt?$ai%6JVaOpzPU zHK;rU3_%nQszShZBp^E++g7U0ZH~dj*3riJTlR2c+&}r^V7w3>ZrM{|kOU9B$b$K{4SIDO9&3qaaA%ASD+e%OP^+!SMI830 zBVt1rJbp072HD!znTyOp;5}gl!uI#h_@;tE9$q?K>VI)GO@V$SsuA8ZN&w^OZW{{# zV{`xS_~?o}8p0%({=h(ImeSx96@VRBOEsoC=2Zm;q{-nYqs;olod+km2`1MpW-;48a z0Y9O@PyLTB! zwPyp&WVaoKs^9F@;3nSV9G`f^tP<(N(xy{$+BxM<$~@nHFp!I1-e4mKSD_wqS@;nS z#pv~#2RVH9PPb5JEH>CgsJ}2EaI14`pyMkLDvP?SlN1hR$CUN1DpiAxdP8w$0O;Wg z1`HcCU2JgxO{LA#h0|ec^lp|jJN8Ln^qzeK6~Kp)dtk9AI7jwWt2;4LK=j;FZJ*=LhAL1nu>>|ie{Re4-Dfl7kb_qOX`LxRl|lz=rW zk%&H*JzggmBiWQ7XLd}LmV2UpXJ9;iP{=o8znZYq2}|6oN7`-;kpx;DvPQy0u@+`B z?!L%SK3Y20q9&0g#+qsOTphijuVE8|RxMLQebEEGs$tF-Vvc!5IURdXvB%OboSgbi z)svzRA4MIxYW7`;gtREp<8|%XPGWgu5 zy?)y49w;N~1ExXR22R)q0q`@Ry6y(BfWr{kCK5umARte%WTWfZ)x<{A)|PRL2j9NK zj>_DzR3gu3yt#S=$c$bUY>QB*#M&^&E9Y`_&JG0TT&2M+8UxeG!pn3(WMPy{5n6d` zrxNt{>#h-`gGSp0*sH)fss@jK-{99yCH|Azn*k;IPCo=hdjVPt2bUO*%m*ggQ1@yq zrI%-8^e|Y%*`;w2Mchv>O4ShSlnskK!i-noj8g4VbONww4C5!Ob1 z`$_j~8U{QUWkBa$!|!-KM8Jh|0P6M;W?mu-Bt_aUJNb`u2o9P^)nmXeA}1meO@!rH zbnlZ6qaQ?kp^6uN`^{%9mY?!P;n>bIO)x$j>$w>ok|)4q%F8amW|TmIurtsJvY#rz zqQMI<&UAo-B33>yoq-5SfK^k0S|1;24Djs?Vb%3`>9vye3-n%7tK=pCvo(7@JZESA zoOMBmVXY`r84I5HMi7H3P&!DzlX~xgiuz0u!>0X zvc_Y+RqO5OIPBjrRCBLMIHN{Ic$dLFivYRAaZ^1&#G{YIrz#JwKfBQj;>CXpXJ*{CMvF)>38ww1#Y)zG#5yKn5+iCmy)_wD(Ts zBQWz#Ivi{N7fCIAkL9Bu?fKmvD<`MgRN+|PqZ_}m<2GR-U721iCSr~L=CDrGc8p>pj zZV!wq=$VnxrvePzo?NA}7nq!O&{p)SZs}*g_>=U8s)&k$8>9_O9_g$1?$-uHU4Z+0 zTr8w`_fq6?G6g;3cM`vEkA&}NlNw+2rK5XBVH7JKxE>dIjpRd6qJeBITTJ-9Yj-b3 zI`uc+Wt`L_=HT;Z_Yl$T zs>3tA} zpuP-)NEZ8|AA-Km3&-OixLq|~bmL8Ejq^hJ^apc%3?d(ibW#bfZC5{R&KREpooF)n zek2*ZG&%?illJrTGk)!aGFrZ8FzK0n5W%;7`JZxXpA|1RWh`vkYF6nyADvdR+rYeu zmoP#^u5cGT>l-L3&u)}GcSn`>d-2JB@x9}k2=5=yy}33bzx#j#OS^Q4W|tar-1KkLiDj#o`HeE)S82Z zYj5Pamx3r$Ha_Mdkp$P?7g;v&8nc*0@F?bz?C)zw%N^>vtf*Z^LiP>z^B>p7-=njV zJ`UUj&tCu+d8X06u_TVHl}{G55dg(w0xBvhoo#S997)Eejs%U+lp}&%&-rrT&?0Lw z+g8BPyx6qJq$ru`j9d2IB{lO5MvLk~>^>a%@tHUFBuy1EDF9e_QGk?)f zHHX+lbIjpCbAvy~PJD3?dd3gcOLF%Xm^knokZx~N_2{7CX%)d*-r5wn@ql7Tw_`>^ zH2Y2>U1%8x_}|*Lehy4pBGB4ZMRk$>AvPp6-?+hF5u_5kRyeVRb+IGZ+ejpW=o>UT zul2Ram+bNi)M2~Hy56hKhwfjf-?I|1dQ~V zmUkY|wO}@}K%Q88gW28^gMF2hlr%Lkc)1h~daGHNfqM3$@t0?@p|9f%yf99(1#)Et zEg0?TgU+S5y!5x*p^i9vfYQ-gByyDFz0Yh9x=A`s65vZ9BEbz8SjI!iFo@c&13j{XRs>AF z1L#Ve+55OJIBmm~Skx{rX2OdbcC_p}*{d8p#0Bpn?t_V5;NJ|rhC%f3E_mOk|MtG_ zk}qNk?H-3MDHMIH08Dszcl&h)pkK9MlhGK|Rgez(G&d7VaN+B8WL$faqdoWODur$y zPIUyB(*BJrPchD7Z-s-EcLx1;PUrNM0jMUYng3Z6!IMSP=7Exgc{>g600_DwK?q4G~t0T$}Qzb%vvPV6LW>u~kd ze9%<#oiiBI_Cvv)>7cYV3mdFy>Zy~peGqTj#Vlh4A307c`If(Wm zxVQ>DxM5Cd?R0D+3Lq>xd-PgHrIj78`NI>>o^1lZd%5;s1!Bkoe#{JFc>GfgA*-uY zGGI=DxdB~UgqJ&kdlnd`AeOU`Py>T#c=g|Q=SZ^obi&8&_)&cRV6CpW8iU=JNC3~! z#h7(E9r*GMFnwP+=Zp&np!?45JRsu62+hT+bb)^i+zSh9k$5oz&AI2y5s)BH=)Eb- zX|Yf54SagWk0n})c%BEN7FtC(0rn3d&>Ow6BP0i zWAinGsF8Fl_`egR@!_4(C8FFQ$RIz&jG+lH2XY{#c&6o&D+UhDsT}x$JwN|m!3>Pw4K3yw2IS$B zOfs-WcHm9hNM(QgT>Drs_Z!y2z*bo>fjOVM+%o%|p%5%#6cBFdG>JFQArg0BMH3s;hB4XHOP_Qe;S_~ zU>omGI9xc3JqSP3GK`>Fz$dc{Jv)M0*NsNrcvC7818ke9~Vf45Ex(< zhtcD71F+@5n_m)41!n|5nDyS-P{hXDD0MK2HfZscXutei{QKa|UsNw%#30H|gq9BR z|Ffmz!uDINlxOPtpd!=V(@-|wL#0w-d{c_10#i>VL(tps&EaG_!#pzRWjU6CcZd7) zZdfZp@_{$66}5+Tc6M4>a>LG{ZQ1cVgUxN3aLkniXdCB&@!{vp3B|_nhjxnj;P;Jh zSHd8M%LsX)-x`^Awtg6}Sr#uxWSdfS@fP5Ae8I$!l$@cQ<7d>~A$iVXk!l1pR1`@qZB&G}YatgYW zR{D3@@*)XDXmKDX*n_|g_NO;YK{v#UL!Ocsbi;S4UpHJ(;5u66+??-dqT47*S6{Cg-Y|u zTutZ0C;Np?BW7Xpw{9PAJl3d)S}wHRdEsEGCDOteD!}Mi%E$S}b@!UR>3A8hX>a46 zNlo8+k%AqsSm_U=(eT}`jaj>o(lytmjt8#;`F|k;R8tf~sS0R1JEZ9)^uILSpAjh~ z5!g($SGxAOUPypgQ0wVFb5NVhXH-V1Oz>TACgR&0M5DH}d(4C^%7qvUtNPUDu%*P_n!{dNg(X?aTFk>DewaGtMx_?mX#r zdZUV&`sJ<%_LI+ohI@4gBI>zfSQ;2tU(ql2S7HlMrQ5l0P6jxHy85-pORT!gE!8sqkVx@D4W`Y;=SZKdcVRki2vn5;9suHto(1Mw97YRf$6M-YAdbr^N$o{$byT_uj4XT!tB{v;$iFPU7ABt07&C4kGv5hYkUmv}+GIS@| z+r>dmZHPrrooms>I6x!5Eyimcr@WxLbl>#6%FsnSQQ+1BejW+HTIiU#epm&@Y1UbDNR?n*Yx>~#Ucl7`)egg zo;SG3oR4X+QZ(ugE}Pt59UOGKuT^!!5^YhKQ*hj=xLxYUVksRzF4M>VM#>H-yd;ZC z*tA}sTI_V`%vWLPfPq}M+rV{8l7cK?@~;h&AjMP}h8aYY$6aJ)DXlbUchtnVtE3fk z_1>yveXYKkq$lo_6X8J87=C zcAgRNs8kTbINmMX+nsHou=SQ{h)3U@0_8a8HSeWqLP2U}v8!=a+_L*-tGskcqOOvNMaW;&+R;B`}XJElsl zB+zIy9Y}5JAfjLJj%z7Vi>iRU4i-=taOw}T)R;~uY#+2zz4m;Qe|R&0%CL-uorcN} zwR=T|Yp?z6FTa9I)(>`^S8cNN(&WlOoap|@yH|oi`4^Cx;63Q>PXu(pU=A7q2q}#P;Dbv4lxU=@wi6>{0=ELlfe=OFIk4aI(Ynpqh zwU%oI09e@Kq1;IOx>5E)>-np;H5ZiV_K(i8LScC)Z>MvPHZx{B9FVKb%LWY0AD$hg zW|=>#*l(6*26vFwXjt-4 zCJ#zP3(MLS-)5xNzNjWDtvD7bm;r%1l{w7s7C+5G=S`e(rK~bRX@KH;c>L2oWJhog zs~^m;5--EzuwyLjWNfpw+bmkJX5-1sh+xSE)A$qti&5j3H$mj-8qr!>&X2`O_IMM3 z3+t-~yrS)35AR)VV93yhSHg}C^c#o8-A0>wH@#?Tn@+YppXu0~h%Kvgje3_vi_M8f z9W}Nby-n3-v$b$)`Q}dJ-nCJuS-CpCrZKA(WwhU#eca<>|4I_b?DfCO?36JqY9&O8 z#wsW~VW&6C#?)z5p&(}aV^iazKIU9^l1|+WVcFs}nnKUaZPJZQFsY*;29#>QU}*30 zNJ`B@5NbG{|Daow83={riQnidXPVpHsrFWU&LFlm&L~GbCeN69x;^=P_S#Gz=VATF z(mdt_b9(IW8n>$k=KX_oND^nQ&t1aVZRh=upw=Gw^NfgEaIaCTw%h8HB$w=lk% z_nX~KIX<>Kd66;x37i97*Y_HjfY=Px?a;hkj_WTXLaTG3JlgjChZcIMl)P=mkCx<& zssd{omF&E+%A|{SNvVKs#rj=UK$xN;^)pQQ2st^Pv7utP@Abm8FU1#N)Gn-}u4_+? zrEXc+*p7%lt`LcQr+0lQ446J4$T>05-g2mjW)B-XdI>+i#mv^W@|pn|Y$|^w4(x)# zKL!XHi*V^6Yqf!9M?9nl`*>CQ;lNk9M+YypYsL#p)No$p2b7CDC#O~>JEARyuEJSg zPgp&1T3$7;bSiu&FYiQh7Kz!Hwwh&lJmPx*UnMx|i3QrTv1b=~$G4YWVkpd%SYGegrtj8M!1Y-3GHP@r3YsJU zmQIE8uPgWWfJ`K*C)k2(u~(YDX1rVVLfn-CT&Brj^&CWA=}K?7WMz-lEfYpjqW4~H zpH60WdF2(;B*B5?)-VEj&3|#TqnQ61!u2_*Ga{E?O*p-_zVagN0$W8QaP_MPk>f*; zqc3*vJqcq}7)0I*t+UssRKe z?*rSK#ecK>CYUO$@dCwgjSVPnDLPqyIsBtMTRDv@dMAruzzF919V;zKU_~*iOewWf zSehfB&^>u7$GhZ4P5F=N!=^MnGiIrSJ#koSmiM@jNq8zHk47;KFKLFP{D%p7z`DhT3}zRGor)Sg zpOI7EzWbP)LBA6>V@UvxT+fWJlw}ZFR47iUoI9vQlxhep206M3r^>RjcUa*uX*0so z>0@SX`(M9Z^v+7H^LEX=p7vPNBt1B1WSj@Ss!{WDM6BHX!(%0N^L1<);9ouG|8M35 zOtzwCOp^S@6TCqe|nH;t69Y*x4;n%F}Q?@y4;wiM$r6$22q?rTQE1{)A@6~^7anh^FWDxRA5V zQU4?c$vwg#<$xxdI5YJOjO_5=jST!mZ0j>N;KYCl|I>!r-}}F$Ox?L zpYGV-)onoYIk2--e%G4E!Fe1FOxXWM80GJp@IMxT0+68jZu&x(AdLt~EFlDd*#ggG zubtu_CF1|$X&^WB*K_QDEEE~2z-6`9m)^a$yGGa%2qAK}uv2y#cN49&hm#yz30sMu z(8vTK&@;0{5LymmXBJ9JH@{QR_6N?p8_4Go10&0uI|D;y)edzMn7$eitJ| zNJ_c~uo%BU<7$#0D8h(DcA9HS{>NK{1jFQqiI&g0=OeQ0k#iHI51>&}!JdTLPB0-ya>t_=Fz%*S=(Rp^k_bf1e z|8Dg(FeGu9qGYcrQ7L?>_d?iOzW+1oSX-MAv0R<#OGR`n%{;?nwxD>Vsi{%PGnHIP z6>e!r#157MB&1j_TL^=tz<~0CzJKxgzRDqPv}{dUsv~2}sDo6BN*~*~^T4r~A!99xoM&|y1asiP{zy%mrP|9ezb-ClErL7ch&XsieDzBA^WRIxZnH(RTi*%xn zPe#0)J}r+{9nPknLS?CZhG|}&Jrl2w9u=l734*1MS?lbeajh4rKsYsVn^lU6lx0%I zNtNP$E0n~Wk1-3)atzn=vYa~Xj8R#vAZa~CCeMZ;jhLSGS5lAjS`sL7-pp@N&1xVl zyuzKYL6EiH{zKp0YzhJ=wX|W>JC*$I7V-tPCOt=9Ag8plA6dD98Ph5C^;7!y@wj)U z#igY)11ZI#*41kAa;vVk)BW||ELacpDm$c)zuxjk_C#ozv9xGvn-`=7qtP_Q+c%ID1p|50S{s8!1U#-Lr zMU4i;KZ-718?(*4p17Zy zep-6P>bB#%3A;XH%Yp*}4mn<`ro$5@5}ci8m4SQL6OZAo8}R<(Hr_DFD;>MitDo5N zC&*x{Dw(=8{ptWc%ubFnyW(&|Iv2s`)7L<8I&rg-51pjWcgMSRNK zjLKhjWGFOl2A!$-y8PNfx=({fPit9Is?{p!khq1ON0u4_^L0G-zwtb{{^}bWtOX4$ z0jGIqJon1GK(=f?j#RrMMD&_jMUD;SMEdA@O}?Xpw9+WMof>A$hx8E;{@3o7v8n9M z@YMW)*s7+DI=-AeP`)`4_q^X(ui(;N_~HA|?{q`}dSxMcR11=le$cdAe$yhrBTyEK z(m-lSw{jkHSpr>OH!d$s*N>CKb52g_V03p+DSFhQRl`8C5ZIHKQu(=U z>{*WI()P}!GL1Q7oa}-f2M9v^>cQP)rdNQ;s`05Q(LWIwxdT>62QN3l|} zvD#bAo=jQ2hZvq}9OX{SrFLX*^H zoiy%_VZ#D;IZub#`^i*Sq@D#wIGxYdrBjs-ZMzI0N>5>al;D=&+7%vV=J&-FMNznH zK~3oZRkUD8umyL7B zYJ7LNOj6Gba6(DWlDdGWRH5fmg1zXG{Z>^6M92EFA-f#VZ-?iN*_3tzn4Z!}CBUK7uwK+0+s_ z@?ahU&>}qgZ4vGe!>z;UM66u%QzoqJYDIgB!eT2LiXO>5)oaPzkiJ}B?%h*wZ%jvK za}t;GjwwG;s`))F^6~2h9w!a1(f<4DDZk;3UH-k@md{C|MFuN>gyA!pt1MBqFIqyG8l?z(ONO{nzl9GYidyy1OSIsfRdpxy1!W}B1{PXGuO&;+4}J< za&L&ntowaVL{fnoUu|3uJ9d#(8~Q5h?bfF>%}roU3RPw|Dp$7N z>M9>i3uJNqG!t3eiOqCCExM;@G?1jc?-+L#zM|;Bb`aYZ^H4Kq48?ef$$90L;m&fh zQe708)`%5Sc1d=$RJOP(q`Y&x6l1yb8gmyqPIB=`(~o5hv*{-^{$do!UUv^?hJW*m zQ@``pUv*H~xOk9Q(}8xc%5>-nE0fg4$tugd>vqerXmZ}YG&Z*7B~`}uU8(!+}NqFF*@iIVDQc(1zGIRP}YG|HVIg~eLpAxarJj-k{HhFBv5!w z;l1B&DZYlJzzeA2a(f#?Iy>r81x0nvIV<0R@yyS=HSHETG0|^EH$J`^vp$f%D?3ig zQhEF?s@$fI9d-VC1P>c>R#-@SRh}X=c|bj)TrrgN^%lVSQCt0jL z)RsR@?=Vm3U52=T=mYFF5=v ztm7!XHbP&=#vGKjrK6#c-UYC~HZY@2ffLvWBzz<0!f)ag2{P#@`k$HfZ;)z>$zsp} z6_|qD#TUQn7{sXh|A^Q8zm5B_+w52grL4!V$1GOsyV&=50Fgh}`eM?DQ^bA{~DFzzq2E-ips`061gCsyH!-wtZOBLTEKm$n~?H({n-EO8s5-taM;0Nn2(|`?P?Io!3sa;$D#v{RIi8sL`qrp zMK7z+Q1kx5i?m5Q97x&glKIee4E$Q)Y+b!UuyUajm+3_1EWk8aep#Ns$L}1IiEW7r zOZU3RW}bEbX!~kKZ>BdP2>Hq}HQmemVKb(ZrBqhi9WS@`opZ>$Rs~CoM|MW2#8dRx z#z!D%iF!=b2;lCG-@pIZA&Xhe%hEqI7@pXC7YpT?7ay)p*k)SMIEG20@4y-|AcaOY z9uC*L9?oe((UAPT!#^X9-4j!{(O%V*cKn@TfhcMEfmK(J4xN~`@@?ku%>1g-Ph;9x zE8(N8BS-Hfxg2}%Yk>{>ozeJL{mT-rJ1T|QPr*XeVVV7d%YKQMsVssr3e+T6?U&u9 zBEOC7dXKz zrXrPQ6bD6?lp|^4)o}eGhKC5Qn_9y;aMyv%Uq2Y8K zeOFZj9Sa`(&(h#rh5>~AKhHTJwH;*$8LQy511E*V6?aqZ-A`<0%W?d*S3fk!s4siC z&PcIlJCH?9K4Vvt!uEvH@9(1u(0k~&AvsBotVmVEQL9m-@x!-s(uGS`pFe@}LaH1! z%%h{F-KJwG1c_<%^Fk#W-95&mX>bgvnwnGdp&m!EdB~|Yo@r6NqB)NbX89l4OLZl@ z#MGtytM89C6Z1V(JwCmHL^M|8EHIiUP{BwY1)r|5ldkQ~ zACKd^np4LkYt+rUqdRiTLHglTwd!M&po%>0So_cd3+Ow>z;a`s8@- zv!Cntnnd-!6)!UQj=G=_ihb#2PC?Mk0mErJOj0)Fo1SgGZ2+=LQvVYeO5v1E6J8el zq_exWG+PdzNi#KrEfb_sU` zsFuOSTSa=}@kJN#)ck|k?M%$%MMoes<+ten@8@YiYK?Zq^0mj@MtHeSImPWL2cWv9 zTTjcKfamGS=x*}Bptce=^RxpGF(fbhC^;g!}e+ZRE#HHFXMe9P|T7# zpqR1#b)|Af@wdv4qYqEI(~(>h>0%bfH>daaqK08EP7`*ioGr6yl^OveBOHJ{xWUWt z%ia1r$Iscotg<;WPD;78tw?igOk@+vM|Uzt7GXyd7^_9zHr7Vo9)ppgHu?DL5W@vm z70-uyc#ec;+?B4H9c2sKxbTu@xf7RF_qDOU{>ZJTOKJ#=LuA9>VTkVtkg39FNnRiAk*tC%}*AVt1124Jj7p@sr|&GvHh$w#dDvveyfUPe8S z-JP;4v}79fL4J8hxF$!J+e(CJvUc9OJ>Q73zxdsaZKR^MXg`Sp{W7RD5MY0?DmJkc z*Ow}i4Ig%@R;+AmXD#Do+*9w%%CC`AxWv%`!E3zS|FpLMllYTFEn6qYU&GpD?)=RE zLR{G6?E&WN0WT?(-l2C}R{@{JM$9R5`Yodv2t%Q?h1cibya{^bak|Wj@$s%fxNF$$ zxIgk*{G>lV+ph8N9vx|6s&uEAQ)3YQE$7rsUh_LUR(tmU5>S5@Q~cHS_#X?H|8H~s z|0k*Kf00rAe}plfC+-V5tHbHH9ycDhMX8&m?|(;*ZoFQf=$TH{;woM_0*H3w?6w$c<{Yx5`O}6U#O3=PwEn1bE7E?tUp+f-BaDKp~Pu~Jj_OBd^8)+{6;`X`C`D`m0 z@k4SPrZ5Y)9%P}CGv_@bcnA%e82)~>#o4;Wis^#U9X* zzuvh}e>dx;155F_4VOo|p*7&x**cNL%l3*yo?Rd5C-Xy*7x3Z!WYxA4y8P}XsM=tJ zV8*be@g;TkQ1SyZgS^H4#7qjmM-M%=RA(ns zGC_`bh830C&uJ8=#T;?9qD}Rj4?ram&HzAEh@v4x%j(}ABtix!iF;hQ*AvIqf2NM? zM#DarHm9!9)?4=~4|I6h*DvHI;>9;z%+LvqewtFFs9G?)3GWoGE zS^7h75a0Tiq7fWs*4F|45ikZ$JC`C%N13DC6ikc~?=U_5I-;MgZb&uU0dr zP1|#iHaaj&EnwxY(vLTP zWb}Svty0z%h&IWWH8Sb?s}s@H<@kG}6w$RN8xzs4+ZkrrDqj03u3x%qu5WiOb3-xu z6&fn7QqLj{&c2=DTOt>_t)}ctJ0=F4IvdF$rukN|O6U0E3akO z*LxZ56sYO(2pCUhUrLurUjSsuj3YFbskwGmsEC(FXt~i%&l+2=gJ78b4o*m1 zLmrPPqc*;8^0F)yq?>RT(IfM^V4gL0LQ6U$6CEI?E^+ewR;}B@*gq3ome9kQ-0oSI z9e=5WVvnxIrB^?zkSq4^+r$XcJ38^RA6ZjuuAiG2-T;8Vf_|?6m~N?5{0x7wIiQ;C_<~ciMg98`gqiRof^(QU}L= zlbNXtfY#YGA9TMM7AKXMC=Wj$g)%lDmb@-kiO-I`dTXuyfiu5eb>~~J)C-V~>5D;c zovXi=|76r->IaFQFo*fuc)~YFY_L1Vn(Wu}y_RF%)Dpv^$8Qq9r1><7v}*4U4@o0` z)JvfOAN{&Q(GK%5qe^2w&DevGUQN0hy4o!(xOE!1H{fy z72KiEZ*ao}HLk@63-k{shVDf7-+YkqmBpsQzad)sx?~iBHA$>UCwj>w?ir;kN4{aH zy4^P{M{S21KNw~+#7V4cI&SU63tW1*Oo*<$+{P-ry2JJgU1=PE47_;oj+3e^bVf4& z`9NVnX@z2?U{HOh)|Kdl;sUEcO}G_{L5Q^Ta-~Omu;!+DNV${F#=GQqxpuT6wxfW# z41|Xv@%qTJnpF}OmA&5Uy_+y-W|W!%#g50uh4)#@zA7QndEy!lC#7H$>7o{*R!2S1lZ;a8uNR&({CpAll!4q z5{)TA2`H3MO#Gel`2shahh|=f#mGiKYD_|tuuwl!IZu{ruJ9R2%k}ZkfRc@zi_&nu zr~Wu)Q;=c)DF0a(RkOWIxJM{iolorYc5s{CyF+Wb@#E_qhf>}EOfePw#@eAJH5GK=@swEp8KX$k%PMm zWXXiw-+|*DqQ}SRz?%Q$0(i}1{<4`LFGIPykHEFkGuFP9C zMXNE`2`7+Kj4YYFk9mB+#(>;XHx7t4VEv;AYS8MLD|2zRgi21H)ab zbKbwa)a#miX3xx?z4v_fXTO_d2Y@{0-3%^kQXLkz7%tBtkpHL^lj=-keM=N0KU+h@ zMZQYTK%^0CDy@WKBM$^IXhlo(dS`Sr)(k-kI>V^qA+Ndstvfi5$P#<|I}rev+F&es z_Y_40o#sTqJC&liV2+^FnJJ~QNzee*xf~^?ydusJyUzi1JW1r=(MU)=#Fx->B=&Zr zIq{B>C(aS`SY;TZ#7w~H=+zd&^yrJ)b7^}7t~*mtb+0*$bDzE$|JmPys+d$7rXU`i^tIcNB86u?~s+(0*J%M5dK4_zrM*ZC}inj5G%FL-&Sk~xc^;( z`fU7Xh@shWkZ|Kt|DAiw;Bz+Dhq7%tUU4~j;_vt*XK#77?Ae0kXA*c}5!A)-qa*%B z-@=%fCf9oK2T!3jRh7Tm#Kp$SL!KSV@@KUy=f7s&9L`P}#V9^57~PoM4fBdBfv;OP zzFTT`u4mHpD+J2+s5;C@g zs=Pq6;C)Za6)+5Pk0Z9RcF*qgY11hy-IX|NxY(|M57+X;WgERK8{;~|8q@SfmFXz@ zz!5=NY9o2B+n_gRqMdIA(Bu!JErmu01tR3D&qkD)E8lH^>@}%rbHNoi%?v?}Os$zW zMASl!mm@g^8K)4~Q=9v|?1{wm%4%JLZ(#}#-E&e;&wT1F19x3+uO{WmzI379>9iAi zPyZAFRg2T5LB)aQImH@mkA=f-kMym>oK5LE)^fr$9Yqxub45_OQl4hi30#@9Xx;n=Hx=;A-dYx$? zX3%Y(eF4)|1=$r5=}B_6m3^W*ce$uEM^wunOV27SrBf#!If%(!Hv#BrLz;@GSKkx_ zRC3*W*G0P+E2#U|Eynk=%M{f{`32)&?G%n54+s;c5H{GU{sUp8879r@)$1R={V3}#6a_o%uI8FjTFht- z<43BlFY0#Xs0)^-G2;OO>jo|LUKq9F(R}jMcbxjPM|9&IKBTy}%~Ua;=f1quGbyLA z=wda`(`no~R6&p5_{zAD#<5UjR~|Eotcodkc&4>=+iaw1c|8QE@JlYdm3l9b>c_ZG z*_v|9A)Q_AHTlbq%=$xKV}r`>kgLG=McIR7m&LNec<$(})lB~bZsnwsVM}t*x9Kkty?RDWv<8d`pj(V1yezG8@b8=*S=B9oY zGwEv=({k+O)51LbZc$l>`4GZfc^c2)N_rW?^-Ic6a2s`)udT0{z63&`5z%Lzvqcm4iv(eIi9I9@+JH9y zh&c!WkL2Ra;Md;|E4M0V;5C(5JX-bm6T|h6xax@dQYdBYMFYqsiRb^k$ZzbCh;RD- zR9(OGQf4V!s6XF2_V{*l3;C`Xi{Xp-J;O_7^`v@hl-Wzvst4_{gjG$`gS`^vs4?F( z9prii4%W0(x(g-8Qz3ekvpe(n6uX$LrxNO=Cm7GiFOy9j)5Cz!mi*>(g`~ zv)tlvnSDN=utiUrxU$dy&bxZrNmUQVNVjdQ92e3`%Ik3zb6_lM?5kMKUHJv^WmKua zW@c--u7Cfiyn;VSyV|X~e!bFCGc`N4Gv0RQO4FLM6ZiRS<~(V|BY+{_B8qv^5F`J2 zQr^DdRwUZV38&*l~U8xJ2CNB@z|3sRbq9F8kGPM^!Dxn@pH}P z6?Qds@*Tm-2Y$cASd<4`0g|JEqdBm`sy?3IV|Q+!oyu*zuJaRapY}koUhg0UIHR`* zTmEs=akH~u>B=BBypET?_Eml&P42U*4ss{P7DTbd=nn9gr@eNhWjKeE)q2=WI7TGjIalqH*%SCZF7LDqcVANl!ZL8SJ0Zb{z3Z~2FES{TM$b? zP7RZv({->3vm$fjc)ksuAJWSofhbp2Q*7>(4w(iAyTvj!y3A zG$@K`RO?4mufdrz(_PIYG`m9e=ufl^L$rA0#8m+x3Vq)WU09C{{a&SBG>S1k z`5?m@KQ^B4OA)dFVU>M{>35q?k#x9()!)1aNxm8qt}O8^k?ppi0kp@FH=#;X0 zdu}V*(eH(~4VPZuip$3_eTO#JZRTHPF~qQ$+%dl7bZr*Rny0M02=3pB5rJqm)->1?Cmc zlzCn&ku~a~#)M`C25I_9ZRr5SmNBYg{W`sG;p2krVr-bWKLp-_sv5#>M;YD0xVcPC z2Obl@&(RnR0&Y#ZO8S&&H2mCt5##VV!1K@GEGIKViC}}HeNR!Zqi=buv|2rWj3 zQHXT>;jrsF_sSb!*reL5CcZyC=)?elpm%P{s4)b*d+f3?CmmfU)Kzq z?g+#MN7q70KqHFc;-A1pxlN8k(gBKMt^QW5RO>ITWKdHGS=W`1U zQWgMxM8S!<&nA>5#K!9=@L8-SUc&|08=Q`zE(a24s!w?bfny=JJgO|Z6Kpg4y9k}8 zeyFTE&!ev=GnwT4p`s>zZ?o%{4AzGu&!VNKbgq|0OFtiUs+dJ{{GkA`(UpHt8T=2@ zlHJj?jly>z(Z^IOh!qXz7iLm+jDFPv)F@?9b+jiBF=&Wl1GAvS$x@clnj`i)kmp^@ zh{LY%$92oPU;quT-u~+cyjLx>)%hzUaxC=>g#g7trGCk-+Nd{L2VuNEB=S?Osp7pv z4DTkf-#I6@(ea#6+tP?K1vqUsK7e?w*-NqvVhz*X9U#%%keV323m`4HAm{n-RsTP) z+5hk59{Hc3oBv~zW`HXGFXPRB$%6hLCkp~8vj2H&2LBuQS30);FZQ6gT_XRG534tc zJU^eM?CDf}NwwepTz}2=9asd>q<36Rbaels_o=fiC(cPzZEj7`%J_>k#inX2u0B(r zIpoj3P<#u$1Av*RpOH{DS@+V$QR+co4dGATx2~tt`fL3sSOtgDq|xgFUP)XLEiC!~ ziL6V|YiJyvTs#?pKZttXsWUK-4YK^vd<&(f4W0w`D&L-=$Nz{*VZ)ATUJJdR9fjb4 zF6ogQ;{ivWfU=9&Eh#kk(`jd3%v#&n7u=2PIiTpjZO`$k<`?Qs22!1gPy|LKJ?h=D zlblPzunRb)Fbw$ViQBZhYela8T`Z7LeF=_ zOQcRba2>ufN5BC_^?v4j!MMg!-F)JSm;GJmuz8LKQxwIV z?|nZ2c(@WJnLe@Cb2uI=aMIo2d0`ZLw3S~}96EF$E?ytQ>p_%4!>(igCxwH4ZcQ&B z8K|upZ2AicIZf?g&3=cEaA))IVX59Iq6Ja)wRCDhwuVHi^<-B|OPyTghVPOy$kN@Q z!dTs7|7QzN)y{NY^}B7XW81X30&A9)bZx15TFc3&esd>T9F!ZqVU9a}L$T!^%`Bcf zX{$|etW~#}&8Ue-S}nc3;WFlg)qR)8BwYg^bFbn$nJye#D^kOPUz#d@^I6ec?rAKT z#fQ0kfr)jk8i!TeCU?j$J7k<7%*dU}%y%mfEQZ3a5k5EoT}ioNw|we9&eLNjzBX}^ zuGPW_n|au&O2rYP<7{W8K3^db?JBNrCvEEq@VEJ}%c9D1%XuADl?RKS(+0f~>$(dB zYA#PI*2gt_?6#qdtmlTF*D_xeb?vsBHr(US=TB3P8*-K>CXvs180}7f9EoV46{l$E z&R2$AUOhtnK6i1z`?g};=MNxH69S9Cllvcb5peTYZl9F)1Zc$FKUi{nXaA|1`jrBM zP!(#7`&6sdSFy9K*Mjf+YSQ)bUgU9TY-0@{v>(QvJgBW1?yk0OY1G@DYEj#s^#HMY z+=4*n)4gQnuWLe{t$(t#g?<%rCnjr~gh{kIT}EJ4H;iL_0k+^IF8Z$X99GuZTh%V6 zFw-UdCPeY?`c}_qNoKd%H#oY@IzM0UQn=@q4YBob`-`UQRes3$M(@5o zwI^+M%e2A>ABjRr>G|}bXy;OIBriw=3uiZSYoWtpd{%04JQLtJlw0jXMabppp3NaY zUopih*=ZCZ{z%FVuP4=u1IO=x``jOg@{q=yX-mP4ulB@RCker5%U(=Y123E%>795t zx-O&s=3Phzt3%W_KFsO5(%s`(l<+#u7pe95&+!2dJ!|vgF0|Hml@53*ENU$TVtJe# z7B&x+)*CPRZEK$tt;BfFZ&6Q1w^q(kT;r?C{Hegmw-$`QB)l1IJrw|u z@Na_;IAfz&sRv7^i;i;DnD=H$2dSFR-i|FiSoS1KaDA?tR#ivbt~33{5#Rp^L=g?~ z@oR+cHKGPsO1<^Mt`>UV=WH+@@A+pkLrOQrt4=Lft@BTkL3P6KO2be_W{dWGYc(yE zFZ&EV6O`)eZ)J$*Us2ziceA?sCZ@618D1bAWgTbD#HYzRQ&IP>E1eWEw5w{M;4uj!*fF|V%5HTFY;QiYN(R+;=b4mW(yhCil3=Lo2g*5i~>A9c&6F|YV z8u*Pyb53VYD5JheOz7DxDfc1O2RYNrTjjWU+5?n0!d^}Xfu|YegVmeEQ<`UU$_%|7 z1h2&1#iP5IC5B)Hqz3>C9{1GNS_R3$jp>(~B~B!V(9C|xL3AXw!}eZv@p9GiVeu%w z{RzL|IIf?%uhfUvD&%HC91Mgt?$xS!8&me;(ZDIUGZ`AGtgd92(~Jj~CSBF6T=uic z^DRwxnn0q6%Vu@G)>3R7pPP#lEZ z>rnn3PzASjy~RQ?al~<=t`Uu;GJ7M*ECD5@6cuX!N z6F6;IN9t(#hJ5zmsx>!VX2G$5RsQbD?YaZTM&G;=0FJHxcDBPnlVCwI>Qf&VYoUYf;_vVec3@P>u*_W4&zI4{1J1B|^hYLFrv+rv&%q(`bP6o`dXGB@< zi^LOAqTGS#faS~neFpiw#D^IQ+BcHUZCk!lXr>DH2uKGkH?L*wY|ejX4f-{r!V;w0r4fr2=gMn@gQtLIdO~t2W2U+>G>Z}J_;XM@ zN*TT>X&A|9;*h5{ZRw`2Nc}Np(qP*wWsK$Q$N9&E)P`k2=2?vVCZ16yFP9;=TGC72 z@&)BLR+QIq1XS)QirD@3fK(F&%AC1P{GZb({W7ZL*&#W@o}Xq??1>0V&_jq~A|6(` z9J}*IVfK@x3GhCn&=Y8B{d*j_87-{(Xxtj((=`wy)j6fv3$CS|l)3@9u$>x|`s0{0 zaTW~HAj7Y8lpB}~Tm>3GnnU%>Xlb;Ul-EwPiqq}yzMVjDYv#w{b)#O2&MqD&0jBb0T?@ zG)5SN*%(#{=-LE7HHsHPR|qSQj#?jUv0w>uDY|yRqV#Nqw5<6Z?0cjixEX%bCOgf$ zv|CG~yu0QE(weTNRRns>Xn5!aa`l33P-FPI48*^06bB3hM0?Tysl*g9_83|Rfvi5p z-n41~CZqP;;^R49MJu^&VqHX0md;%o6_z-c54+pMD2m2&b$0=`usmeVxV-$2d%9`b zY(xAPgGB&kK2`thG7BZ9g{NCHPtj3E1;5=uw^%b@>CyD@Co3=e(~+YZY&&zU)gWwj zmx`-zIMD6O+Ctj*ybyOMMZdyNnQjxoEE$?BGXv!%spnt5{}bkNc}f zb66kCjvNlG4=J<66=LMG_AsF@GPLK~DEjrRTd2)|3v0m|_&p?ae_F5@z5+n{-wYa$ zl)z0rovp3H3_w*Fc?QOtW>S3Bp~I7Asn)!Vb+T0&Q6W;j*By+n&U2`yU~=YDke@K% zetx^Uakam>E=KWeE~c+{LT_{JVZ9C}4M^1Zi#~=%#@8rp@r2G+oHnemKN5LNl}eMg z$^b%Ch<_LtZ5`V@)UL5xs5PgrZF61N5-CSfY((BkrC2v6_&Z@gQ|LzjK&J4&*jyo4 zR1CrSGX&tO8K+lZB(>+t;94jm$t|Ya#xk}=`E%kWFwZM4YtZIELK8pELto|kN`J>F zB-LYPN|jV_j<`je@>R>U?0uR`GR6;SmO7(lRtcloLyk6PP9ae>IWLX&9cr02dsH3Y zY&41Ns7H%0+Zp<-9Dzja@5H<{FnV0StYCK#ttzsYtN;1xz_m|2W@BhOj^2efa2j{>A{ zZxXOR2oK(S#WF3@6(-Z-$;jhk0Wj#D1YF{{1p;0b!M)PL94bUMdkW+|kc1Fm5@rivYO+@(#~CFCxYzMnNzG}3$hbbJX&J$snv_ug3ltSgq(Jrx2nnZ&Pp__=+PXW zF2Z--o5$&=6?995YP{FJ(mkJCPj9J-TUGgHg6$O!5#h5Lp|gWPdyl-;KQ%r9ESgtf z17>#qiOS^)ki|hzcRtlJ$*QdhzbLHnN{5XVu}G6F!_(m!^SyVLWGCdL2tk)lHG0KL zv$0>t^XN3Dq6YpJONuXOJeom*_mjSV#pPtqn4{6vvtPM*m<&i3lSUCKeA6`O1ZM=H zm&dQ*ASlI3#V<%LTA8e}LvC@n8$q9vaxi{=Fq2@VB;9>oOl7KiC}CScu5ObZN@cBp z?Ex|SC<~0Lw4&358GdgViI0rgTOHtf>v@&md(Ze!HL%gB+ zMfqgvIn8tM$r5p}6b=4;N36`8f-S81p_H%?ETBGE)snd4xrdYirE4 zShX7rk>K?48hau#*w#vbTU%TP!qaTeuh-G@2d8alLH4p2WW(G3BV!wc$9rWm%KA-c z{VC)HmPFg`B0+)ZW%zA;l`_~^#uj~n=k(KcR9FUQ_N?ro?MT7f6J<5Pg)fcP4l*^h z0nx1k#_#gle|V(8EikwnV)3NPoWPXVAq0cenKI*tzb*q3euelDUg_NY2;dq(QCwN?T;a6LsDE>TjPNCsYRSH+CG5a9)soeaV8_4x6t+Xa48xpS|q6 zlxfjM3v4}*5NyX-L$NYjysU=5EszPV8+Kxe)AGgN>we@s21$sn7+#6}>9$*t#i;AFeGkdKc+~4k0bO=s&$OWh)G#kF>Ni74oItbp z!K0a)2+@O^x5fY=rxJq>F~k^-4b>)yHKjB`7jEMM(Gu%yIH2qVy@e9%&1@ZsNWdpP zprl$N?{cR$`020UkvRVKM}Q&$Z~a$P{}t7LSJnUZ8_*E%ax9>$KRzO?K;j_!> zEwr@(2J0bX1kSr*_2nt&&A|HAY^lRyp}}OgbZ*`??ETmc(VypY^~*Q>wX5IlIxj9x z*w(HE-JY*bGtnB(l)DZ)byOk-k`)FGRH?J3RqpKt^Vc zS;oMxeoQ|BT{T9T2eohH1Ozq$1}eFZ(H6f$Qv;#vOAC5#H}XXGr+kwh{vof)hV6hB zPcQJk1)VNOPe2bA^ZdPm?$m)UpyNRSNc|m@m|&_X(%nt!C^CwK8Vi9jGhXXBrNGlP zuJEQ8{(*&`u)?O}b?LcrVB$yMn*0kmB|aF-ML^2@EDdP(MK&>apn@Sn8yMkJ(X3cq&VWu{t^(Coi=(g9w;n)SEVFqZ1C2}0k}JevVk)?k zd`C(XB=}6nSQ@J{bMkV{WdwD{NGuT47ukuf{|T4~g_{}nT(~hNks?y7Yd_4qs89~q z#m80y2i&(%AT=;xU<(KF{8e-0CjY^CF&Q1LQTX^KP5$U;%MK8<5DbKCCrAcM>ejxc zh!fOcgFFdRm$#jBjdpLayG5yeYYM7^L6)jjwap20!UQU=x;?;|<(+?C4YnwZme4sb zyQueEuH)e%DhQ@))~)^0GgK}aEGu&Xn20M4v;fg49bcnkisE~r4M+>e&G6${TG|} zKF9~bRs(R^jn;w2W_J<`sYwXv}9he9JU+B5EoM#40Q}pW+jyi*(%jd zkzN4e{5Nmjl`B;2RjkHq8+Q>PTah|yH57@>KsiAQJ^FWvPp?z~YrZPx^v+68MiZm$ z^<@#hDT#WqT9HLmm0=XaQj14NF3-7tl>I$$RZudE)xkez}Wwl)vt0!6&u) zwF^S8XHMB#AemrY6(Ye}{|GNXwOfxC5SrtaH&ngeN5=Gd36hVA$NJfvfECIM@E(2KaF<`f$-?cAE7Q%4@eEFY0fHZ)r zg0d}VvBG#NEUV+;JtAd4U+qPW%cvuZqIBKw!6egU*)YR)5)VV!r(t5_l#l|}S?)|EP=NT4F`@SKN2WvGNXkx=m1ZbMI?`Vnf3 zbfjZfTO(w27^9)sA+3e=Y-g;8U*5hx~=ZG9Ij*- zC5#UiQX~e;u`)CQZJ8H3koAigM^qu<7x1QN9YQ`1%;dH;SY+58s!}Cdc#3mGi!=*^ z+l#dR`)>CrXoVsl`Uo92e_gX)V1wsMHV+`TKcqiA!hONpzibW6$JLq*HQCNOtIaZf4u7}U^n2PtXu7eN?yHWaiiZQ&NDKxo zm0Xy7RNom{DaEU@@8eJC1%iWhW@%#!AHI(WN^tZ@rJ&VZ=A>e9$z2Z{v52ID0X&Zqzr z-x2@f=LfKdUJHR)xeVPv0!56xA>2CA(HW9v@Vo0@NjVO|N6*|WMNwlI{ly-6Tu*+7 zvMi5Sqh3J7Shcy+3S#0xS~;{Gg<1{A(NX}W6g8lgAAfF2uEbh=Oj-XhX$a%Kssl-FU?}BdDj~s3a;Qsb(^UbDwk9n%Tu|Cm@%*D00xt7#TB>* zAI972betxtX`k4$HDz$}f#0&7E|140K$pm@YO76hwpu*?YxTh|tv>0E)5*^@XmXL1c z2#WYHZct|HPcEoK8M4%cm9?MJj<4S4Tn6e*Uv{QWBer4Y4&fd-h_{5B;3C-tiXh9V z&}|5)7jy>+zb_xcgHa5&L#tpQ- zxUDaIV^zlr+JKTaC(W!t+A$~oQ~H=~q`t>zgJjSGT%z*}-5EDXBG#jkiXu6*_n*ZMnuV;xslPs*% zaYSzJ40vrdFuvziKdm&}8i`ZCaw}>TpO>4GpIzQ0Tpcm>XmmvZsL0rcVv+fm)FQ zwrq4JZ&L||uhhq~g7A)pGYQqVaiz^;ZyV}C`N>DOzzax{tfJ6JUjrMvkb;E?gcFiM zv_#2TCxs%>KRQ(WX+`O~QM`@612V@nsS`kvcY;B22zK1Vh7KP?&`xi69oX6?pzxm} zUR7@*)E8l}Q2wrOc+1Bbh~($MlPF-rJOz*ZUvlXn>0p~cl^2&4`)@&k8YK{~C<+ZF z0s4^!7`uOkkRd(332ugpLZ0tHHTnX9HAuHGhXWv}KR~a0C}GKeG4TGkQ~#CJf7jH1 zci;cEN;tc&a$^3?IevQGC6xNrMn=&-$9_L$BRk*Z=a85`o#LzL#1-5gNgQfi+)hSn zF{XL{=oJMqa{4e6GkR0$lPy@7RsJiquG77t(GxY}wC16f)anzRgh^L^{(PH>GoAFs zy@l$9^~RPEL2_@PZF6Nn&1db(*bwmiN7dWAr&V8~4@bC7927?g)8mHXz8L>fga-l1_$r!w6)a(wg>^lOhl zZ7ivts2wtD9*TCkI{91AUo83KXwD=;9ucM!}Y>0=2p~ z+bWRr^X7}=>ngC^+H$ir7du_3ztp+SsK#rI_i46|4rV;?mjfMJH+z)OkDh`s5!S~_ z?Eh2hX7==8#5qCj{=zWKzEASJ-F zAo26$;9JNWpeVTQV!U@@Zs8p+j^cRc8ds?yRuw$1i^mul6m*I!@A*PyjQsUcVH&SW z1gR7~c?UTx9Y5-hti9#kbc&a1i^VY9?9KFT+3(>JxOM@Wi4Kc)r=vw|-5nAm`Wlnna;C^7#& zl&x6|u+k&Hyq_qo8I z%KQmp*uZmTpJ6^{BbOKr(SQ1)^>vMxGFe~E4&zKpw^q4BjZlv7Sjcv{B4c@~!!BDC z=Ow)0^S7sbh+8YO*Z9(Xx~iXhuYb*6vhs}*&YyJ0o_K-i(yKUI6^=9K8A74$1VW)1 z)g!g3?uodS5)B^er>5TzyQ&MR3LYov$8F8UJezSadcIv8+rP+DP#~C`FHv$?WbeN1 z=vr3ub-~dsDF`vyQV@6Px}IZ;@fZ|etOtYRkTH}S6#H>l_ z7S!Q-QSOuzY-?m7_-i?IZMbWH;ZJ4e6i2>XqXb;<1&PjBkhdm~oRyTq14wd@f#iOK zQVYDi<->~Z|3XiJX&$bAo50vRlWWwHf&{izvG3>6!AZ9}nwf1M=r2H{W^)HNnDV}g zG~5bdiG1&VAbaNU4+*by!c$|sBW|u+lVp1DskSSxn_Q_3Ml&~#yTh9A2)iam_CI}R zik<1OD)A+!soQj(;Bsi@wVPg*w8}g}AmV6*ql)JUFDlY}$=vPR5ywpa3UQ?g2|RT0 zZm>0rm6j~GF*4tM7FVIG*6gIBmt#@mz4)jEh-SYcmFI*UdZV1x0z1McMl;s@aJ_ZP zcRfdw7X4Pw;mxP#n5E63+vGVI!?^PyJt(F@R=ZYM4XJkDPhW5y4on;2or&E|9Lv>> z;WxiHdOz6i)WQ_`w%ChFC5}kZuH~wHUVHuLuWGcik*nm4jf+|Q)8%_vy}ung^3a_{ zfRe)dDolwjd<#h)1DnOgjN9ZMGP;2bSqYM2iO0MC&Bsr$)-j(Pvf=UPRrb`z7cX^q zXdcLH^FUGKWY)JI)4e1NA}9{mINZ?lC%JFaTsE4#Y)`Xf(6lzUyMp-zH^mt z#eRq6=%mn?4?=K7dH3+s5Lq6p)CgV$-GR|O{$3NIrD*FZ zmU4U3Q)6YnzhFV|bLD_b;(irc4hn2K8DlJk4lHGulp+>b);~zWv2h)W&nSM&haD4z zTrarVOOBn>P53SH$}m1fRD5R5-RK9)Y62Dbd?NNpwSni z!1h&sBzDEXrt@~@m+whNyPPNAVeJw_hV!=4GfR*v$b}2Q-A7vZX)<4s$2Z?U3yhoo zF11yQW<-R0$;tL{jMWuKZF|d{*|MAP*N?y+lGy1uh|bBoAw5Szu&_FEytEKqUNPmwkyZXuyG(F(V%G{49aM<ypn$DN;{GGNB8tXM0!1 ztrrXjoP2nnHXgzQxYsJU?qeVASe+3FR3Uew*b+BvNE6KW&z}B?n?;K8C?{R->Ztdn zi@T!1eM)UBMa50X%0;?%S?JgEZjX+N>j7B=945aIh1(W0dR3qWPOgZr_`Hn zS|Cwj$C_g44aK^_uVr)P7?ZZx-ls4cwXo{VAaA-DN?C0k9AIknN)A7Oj(qB(6HUpJkCX(4pK^_hP>RCAqT4xy?rbBW8O2ANTP3 zrI{}4KU#7LRyPJtUR9Yy9Cm2B#G16_zMO0`iYvkHYZ+g8xPRpyld^IEQ+ z^fzn3g^}hReTf1uT5>Gs*=>e*>*(`2?$$PBGPJmI^jEpdMw*=!2{{R>6xfv>s^fAX4+&EoCprhdDktM_K!d91+xC;}Q3gt>kxCjAa&8Vra>yOqX8 z+z7#w=fM4y@BB~lsYSoTgN>}ikt>s2fzM+Hi-9E%;1M#oy7H;P-n2kL@bf$eaCM;R zih!n5IW2q)=8*ynSE{QW1!qL$R+WSzT$o&?Ew}h(!>cdYcB{$NGw=-$3`>^}VB;w%*^})=}mb0Gv z;Jy~uXEXZm*KqjOuau3hXz^G!I5cz`UGam@GN0;ReAd;uFv)oCWo}&&p-g`{Zhpo! z5Tg-Qi@v!8XNgeay%wBUpEgH|NkZG9Bu`3GJafuJeTg_NSl?8$I#>09&Bp3JB#S42 z@p!Gp?Fr8K2p55kQrK(r1Tw9(Ak!+GQ9$&T4;4_A(QQA+Vo_j#k53>(Ve=a^;l?Jr zK+}Pv_1e0fT9kxL3fVKBG3SDK`Z`++%LqD4yO_pPgY(q)TgF2 z7j%CCOaF%=IOZ}QJRSfMG?dY2V0*mM3I@;D=-4c$#w8bX3fdjH*2yIGMouH0qn=yx z*k?bu>}Eo|2_bdOO%I1WrtUKE!;Y7Q;7XUD0_>_NA9QCnd)=azu*2Ym*K4)A$;xU$ zyUi=LS0g&W?a%^Uvtbw%1HbqMy#6pgDnA3A>@}EDJUl8z5AWjTUZ`G27Ah7<&o?+U&#P$!+h|D{pOt02;W@b1?gcNNM!Idv=5LHVK}FKh)e0ZKU~?#!auqD5TqW zB*%-COCvY@@#KD6`I!R6114n#3}jReh6-Lq1Ct^Yifai?GxqObZbUWZNRydY3}8T=sGSMVc5cM5p_!;=F)=&aa=0-I^zT5$e~ne;&D;yr@_?{3|4 z)3k{OG;w5+Dqwi<0|jp2@r#4uF;j~3K}IJ^6PX@XB3z)n^{N4%^@+_l9F=aRMn_9# z_83k`^ymh!!Ib+=DS=iNfEGR2of>BSYsxWz6>Yg>UJj@*gNA$yIp{8M0FE|WuP^shy6v|sx-`hYk4TWFIcKFpXEE6ibMUe* z7HJr;Bx=Dfo{P?Xd?RHR^lzAn@V)Y;gJ94}uZw-~`AU?;M<0JdXzgYZlIdYyKD-5n zqvY)!Y-vR|qa3`r|Q0 zFyWuSK9Fg`z1hClzvIAWEB_eMN#QNr0LC^-EmMCZl$Q@B+4V+StY_d-R&`5vcrK5= zgHOTK->1Ov5CKCHVFo+@jP4c~)F-g<51~~8R^B(%XpBVo7@>~y%RBdpsf<%?KH{?~ zm+J`Z_j2Ri><&V(R$3m>5Chq6fZZ)!%d$!di3UZAY}#Au{OaOxs4t9b;hAx|OFsCt zScOrN>IfBlirx&g)USeDx6sKlK^y(IZ{&r7ODIXLH#*8?F-7Kwh82HyyroI57)P&+ zTOP}HvzGWFF>Wkn*?{%-4+jARjZhTsgZbN+f>x9+85o`#yDXaaj*QfJ)p2i4vP%cynuC?k z!_R1*DboL4H{u_-Aj&XoTWsUi?ZI`IQypk}6Vfl`X+KZX_{`kyy#r9h-DuE%CX zFW&jHTg^>jCiNyT?@8d!go6L~*8w}?Nb%M!6ztbvjjtj7y&>v|SWHXhg)ZTtk9ib4 zug@1X$?i}y8HBo|yp@JHaZAp@t)9i`wK1%Y1T4QyYLQmuN0S7F4|>*;P~a~>!2 zKGiw;kSJdRQTp;$9sw^W8uU;)I3(s~ZbXMs$qdFoY0wv*aUAGDHo zp+#{8-aVLf9?<}&P7IJ_vK}1)BuTPJnOjC+JmDH`*#G` z3|^hV@nAC$Ly9m^X5?l4 zXnPoO)5m8%FjQD@jr0DyBzDtit@rJy6Z&?KZ~CzSEv&V=VS2EzK7(-`{1DYxk;>t% zhk}*1^Of@$_@Ci!%3DnVy7QEMi!S&_8G9b$c$eb)Pv`;0|%qaslk=URleC3QuUuvn8s`-zY03pKWE~t z_8t4AFnE?USUS|QXgyF>iD34jiQ~>YwzkdFZpQ4GnffFbe$PTh>I$(hm{ddOu%|Q= zvtu58S>k$J6=&I%IhN7mEj2*Es6iD&D<98kIip76ZFjS;oaKT3cheUEvLm|-)^kq| z9t*W~d_R8DgT(0jSkW6HhjUl!Yf^^|^&KMO_v>Eis;Sej1zsfTK5L}#YPqU-eQ<(r z#Hh#W^NG!wU7yY7>rm8>;>_m{TN*g0c|_V)ikD;?DnMg!p9ubgz&VFWZQK10!oE*$ za-yx+KnxiOKNm!u>6%+&L9AF17!uN+nZRb_l35E@a*v@~bg`;jdRgR+F4wfx71dekXH*VjaPZ5+MJg1RVX?q zYqKa=q3$$5CsiTk0A(Bb6r6!8+KL#$&SFe9>q_o;%*`uFNtlVS*6j!>GjrIZCHIxl z5TuwIE)}6();lj76RLw ztD;s~%<4>6*m*^j*Pl+XwuHsb9!%nwc)B0$cqTRTESi~Dx@jeSkyXo$aGdTE@hV$w z{WH>%?Ge9C?(G4f>bd$xolWL`!SQLl+ZTneM)J@1(x2S8Jg)GFVSChP=303I>{jj-9hF-|#S+ONK~G z?YxX{v1W;iDrM+Vj~Y7OiW=JgRV|e8NqUD?%U*A>IIGx^a6o*0op0u`%^-s@cVe$G zLmEMB8j+919oWp*^W8>yqk&}V1YOViIrqbXqz(4!n-vxdEZ}b_key2bz!8aSjwK2f zw+)|MY(|k-+Ewi|@r=ucyK(e0V7@=9$WK9)~91t=$^8kwi=# znhuYBT0m^Tc+ugS3~!~d<4Kf&8?4(vw<2fVMCgE$TwTXs@@qn6i5@Fb%tp%hZoxZ7 zl;+C?J7bRKKe9g(U;SEqav(#NV<$Y@$c~$+O^nfg^cjtyQ>$-hmV2n7=42V|sS8{F zpiBPFKp&&(LrJqIuD|a50KsWD^w{plzi=_ScrQkE>{=$?c1nCLq+@O4|O%s#(cDN<8bu6@@kGc1?wmvIxS@!mailIA>v zBzoVmntPr$?&>A#t2l9=TVX}P`R(wm7vF2BK2NIsz+;`i^U`PE0ij*Kfrp`Cj~{!v zw$NhRy#S!+%|WbD}PrUO>fgLkw`NGh8@>z$Dq>&@|7`G>w4!Jn2`g)6_>6tivQXuval^?U{5vjl_#hjX2^w!imh+mp%89Y1j&6++Zv*i*+n1ut8mlrD@y^S@#z9?z15RCDGT9> zyf@Z345&#O$h5)60Rw+%otefJv37@TBAsc?Xu{La%&I#Fl}4kro`_Kf#31jNPQ0Bl zv^tZ0|JF;X&+4r%jv+FQJ`SVOhiG`HQ6#41sse90TxyFmF1I;eu6(yK+BK zVIyDa)y~fzVY&Ur9eS4JO}D_$)~=de-1=_(3A0}CWPx)APpy{~;)AUq4Iv|X2v?V^ z`pm2K^)K$8il-L!^Txe>>D~#*G+TU#LB3Vsoy3`!)pwqK^?^)=NEdK|^rt9N0*C80 znFUhJo!bRZ(kLaA7-_r25Z`%rRaZk0w5-s;*eB?5)@5BNtV4qd-ccR?f8_mTRF&%& zJ_^eMlvEHA5otk?6a!I8LK+mLQ)v-UKsr?{q@){3Q9=ZyVVQI*T`Jwuu!uA7rS83d zXPo~y?-=iwcZ~PT-ec%;t>?aHU-O#tSrzg~zP|eTj_Qems9;jMgFOwk^v6Gu3&!Ix zJ`RAlv*8Ww*RP$9ywftr<~fxyj5v{`9kzt#cv`&jWtj zAkG`nDgslghFCyZR?R*P>#nI` zqMEGV@3j=$^R+KNGgxWTh}Zo*Xj!o5By`0x+U?FY92NZR{!_PbV}c@Du}?=t3wwy? z8uYK~vd@v}0fKflipkckltJiHk7-?}XxwwV?^zMBsL0J!FRqgG`>psVY zLWgTMI%^=v3nk?wZ8Q~_;>Ec7W>PRM^_ZyzQg0<8tJ)L9?1>Mx~wtbZ z6aKPl^JA8VhOba4n4Y6-pGJk;+mt|+3R*F5sQv6g$k2L-r|mqy=JT{`2$~5w0)wKC z%}rJ~|DKxTkwwgeoH*BsD&5&BO)A5p(fEd#?)%&klII84j!3Kp`9=|PYC>rgEsC2d z5b|8VT{`kyse({W33;kLfanmr-kv-PFeyLPGT70M{AyC1+>b`ZL*vtffv-w01+E@0 zwR)YH^6iB=2ZLaYAbT%Ed!Z;L`BYbPgpX&w8mC=tajd>xiG^{GW@K?~%!M1a**V)^ zy`mF)@>|>)^eeER)d<3LIZ_!uOnVzWlG(KOIi^&D6;Fzn=tu(ekOOzP)D`zcHm+fn zg{N~W&6T0(#17@iTnwj42jys7e25M0+!+@fpFGsa)B@ZpxjRbk|K$UsxBP@GPH&b2G%(t+riIMcY|XnLATg*i{H&j&pOCtI2V zi^bK2JshiMx=V-38vEm?B>LbI6%(Ncwyx(vNmq96rB30RhVCGn<$+i6UZ;dRd-**W z$1ZCR9WP!F6zgR7bB{Lpq!Z2Zen&o{a{o4tY5ZED)`N-b2ilbxkJj?Jdj%s1w5{-T z9B<#p3whAsjo^Qh{i7}DCU$kG_NV39SK(ng-;J$#f}y^j`8h_hoT3}I@hZ3`&~VMM zP1HHa65`U0O4?JseLX+Cy3Brzk1geHf7|X%34D~xf3!RM`AVtFj%epNm)?>18A~3T z?aZJ?l66*--fEv}1DAojZ|_cP#fZASJ!229@%&e4Gmtz0*n~TcPz~y(;bh56m;4Mw zR!Qq5zNbhQbW5{V{_3aQFde*=@jig*=>BfPy_HuP2VXtE8}{n^<0{rB0~#Asv!(OT zBQrnrs-~^`D9(X=LU4} z`;It8TAa$etW?yhpe$Wg%8BPGQZBhZUtW57x7jYv3VW#K^Hx7o&?kM`!+d9i#4X~r zZw=|+vd?w(py4ZZq@RH2!C*SBZ~}_tg-q0~(F%)4Q>5Sp)$O zA703PnxZpm)`j@V>oI1D?N&7g(`o2VG#1#bh7R*$uGWcjjshv zQ7v$QNd+(l7b3gL6)m?7oaspG!}mVv`GapdFP_Y_;s_nQV*eY@7T`SMkZU3MT2%E_ zsOiAtsixJ{JhE)c4;N+5$px*R6R5mnYb4x7c73^(_KJXap_<DU3|MmM zT}gibHKxenssGK4M82fUC$~oz^uW9JS6drhEmtWCnIPjVh^@J`$~fC$EmdwsU;@2E zul>=#+DbPz4&ZW573oixmOY*O5XSRZr0d!4!&+0bvXrI=3T5`8rJbdV%{!<0I%c@X zws1N_$}tqt&x&H5^qmCHIKFGDFl_Ox`ZgNy_=UGoLQ-n`Jtdrr5?d0VOI0N|M;rz` z+SiHl`Kkh`j9`f!ow?F+rYz%X?{kwc5pRVg8>(=VN0C9mTVcbTwrmdH$K)!>UvWLC z!tk~OTh#6Sm>XKtpL*@NpULD8YFQKu1~bh)$-c?Mx4dxQIJi1s zjozUPcBB(GpY6VmVc(nxv#XsIZLE*b31;#SZF^w%OS#e1IG-tXDImd3l)rbZ(|eL| zRwkJj<4qo2m{)dBL7Hx}{G&FKC{Jz0M)wr5~<tB8YZpsp=oQ^`ql<||aHcq5 z>x(_UZ9w7TD#t<@#a-#X@?3hq$R~HvT=*Q3vbiNCyhY@q7I&|-;#y4m$6MXA{W2GB zC#b!VwoqeobWeHxywTg(+i=@d>pDl-n)BY=dgC%sbK`%?h&(h zN#2Y#FFL6vm`Pp`1<+{y3P}yTR=#!G3(i;XdW&p~5aRgr?{VAqSMlj+XB7tDx{(`P zAJbH?)F;zh%*ZGGQKdD7zl?jipO1t2#52u`hZ^qdwzOex>;psMgO;{IEq;JD@s7;^1;@u58!1fDn)RZLa9tU&6idR( zj?|JYcl~+_EF1bu9nG=61nosOT{noS1=Hv1Bk+jQcN!8YY+CB-OhHTio9iE+u9{H{ z$+w#V#D*1v+gRh}hW?N!?;D3vMf$Th!<}ZjuRf%pS5HZY?hBJ>>_hwmiTEWGDU;zw z!qn;~+EPd1!3qcY8-Ayz|F*Qm53bip?66jPtVMFF#MVMap7Jie;>ESa_DN`-@0WNo7?-NeI<)$#kUMmqRUrH(}L~S(Yjkl+? zq21=_05BRVup=c~A>HqY7jev%5c60Khdw}LC~A#S$wSkJTR~72e4r2M@?=MiJ7fMs zrIo2~0X?o-f*Upl*3g#$HFqYy2YUH3_eT3S>M&sh{qJTcv=P)5DkF17M3( z>JDTt>q^5_xVbREJL>?6Iw9u1{J75*lTjiQ52rvM4V4TbW}5cRW^q9-c;-8oXFI7Ik)1Dgl_jRk}9lK{Lldpz+~aJYL^?C5PcS zKfn+M$zrP3e~`zBI9ggt8mTkO94BbSA|!^e>`SC_`l!6 zh2dlzgQFO1uFmrK`};%RBU6>}GR)op;`b0*2pZ5!!m!`oUg>HWYl@RyGrlmLUGRL0 zjzB}*ARfWhEL0AD$r5aq%!58VOG(gdS#Fclf1P^Z;>??nVDSNjpr=57cK zbo@DoQnqllf#9|EHtl1D z=Y|9QMd$3TU%@`%ZK-mPZjVd~!HEGaI)>6-GS7wg`#LiQPb4@!FUoS+SRB=u;~>ze zcQU}sh)T-u&0ggTUoA$RqWBHXhOvIE$GpnWoypLd5W^H4AdcK2NlEtpO2$6hMYQ}8 zD>?kohKb*M<|zLDmGC4JPdKFz%E6y?%?j;~Pc&Js3 z%1Ph>97X}$)4__9tJdI*In$tr01rw<`asO2{YBO6yFN2$FLtInY}Ovbm)Fja<-Tdz zvl;ArfEYzlw}}^zM#kdoBO3&&`y-gZ`+bmSg&*64VFl>*f?(_R=1Lf!{<~VhEYh!k ze8@`gRfgJeGSF4KVF3@7N7OhLt8H+{pW^75+M;(ff7~bf0ti_b1Z&HkXP-lreA#)f zpWAV)F@M#61d0CxKyZgTLo)fu2(f%e#dW$c@j*jkVV zFMTx?T3CQ(z0hT#JBfVBTW+vE6|bqwd;A^{JDs*4_*xEKqeU#?fm+r_$DS_~J&Bjc zhCeNCatb5q}5n}2#t?a(GmS2tTc#5CNNX@h))6S!&%$Q4|T zOt#j4EqbpzxD8}_zCNb_}nvsk>`2k*EB1qdHA-Za^yR+TN@Kbze-P8??XcTTo z*+bZPyFzksNH=8F9lDo9&ku2F^Vg9Jd2HUR_2#Kbx?KS|4sQXi1_MU-@cK5Xh{Mc_ z(Sm+5d+pr;mm%HYwfWv6rLo2s_8MlNiejM1qDv5h&TRyB2%@Ze`SsbAt7zruakvb+ zWyZsQ=CmcBAX8Gpl(oOT`R$cMi`ZJpHMY+ny%3^7k9jdrG|ktM(5+r0#@ov^xa;H~ z-fbytCZ_C$^_OS#opIXBl)R`D1bhRO#czyD>~cd>YQ^ESH3OnSm@JJoIe`CEg8!Q@ zj@0SiBGp9BXc7^P@&wY^eI*ZK7|z`ad4GRjL(a3aCX zcB%=VeOxl>d28OOpQ4p(z%9q@RmdEx%mANN!f0fw7GWm!?Mh`YI8B74Yh6JhH$)sx zy4<4R!(>&wt$1|_^8j)S#4C;I6`M0MNPqf(wN#4(mD&6bWhJ5UEx;vYyMUYUFp-o3@etdEtMx53a zTvm3mz~oreK)K7BwSW}_^#_{C5MK5ClkK0hOCZ@uiuys!&~{&);m%BOjs-wkcyMwH zcurIcfsn@7KYaR-jY^cjkS$l~bKg5#p5g&#{e=ti!JzwxFq@3d@O1jGqw!WHLjh_WVoxM_vO(SuLZf>AeXq+C#Kc&5Etw?lCA0Rt z!|Tsi5I3Hj1HaO#*Y*i7n}4Xi3t3ojeth$lYl)320seOuFOedZ&FDP z`(l554lr*|Q)n-Dv2UwU{QYR;6ZISeKGvXH4*hp(HYzU`Lhc~MyD;yw+vhHWssgRr zv|W7Oxekn=y5Q8yanx{3#09A|p9Ee(u@oobGP00h@~Spp(MGq#i)aASbmRel+dkA% z^%b}1E4DYb?#zxs{XzQNgei0>E)f3u@1z|fqI%4}@bQ3z{My_A$B7eiP8tnRkr16m zUrB{A_TETe;e1KWepwzO52oz|Oon1&=yb}QvYs&rtCl%UvVm7@^dx*q4U*zY1@A>q zPzs81kfvlZBhKvSmq3RhueCZ|%Y=w-*?7c{S(lU?V#(x*a$lL^@Y!fE_H4Zo3-R8F zHu{`xtmxLlM?^p?NM7Tr(=&-NB7U>f43xXS|SBDSi^U zMj^grp6IErJb}&2BIq)p5=68KN``Z_kTs`Wy1&<)`>72Q$TRR~=HYSmR3u5*f);U} zj}IwfJ;=rS5LW3A`y_+Gq7PxpstrmVMzf25>xwz`ItYUYm=Oh48ct_v;=H3|!{EDE z!XWU(e9hn|lHx>eUA`;Va5P*)HQ$@O25BXcrsSG&d)G4o<0{dYhH1uN@|OsfZiE9z zrXE!4w9aWwR1{`Ga+hvb1C>bm zd>;D{SR&0AKdkfC>o0-Uz)Bc0{4l=W1L>9b7EKzPkehF-bV46$={RG5Ix%CV20oI}4MiG4xc?0PFGU71s8y zm&*nmrhgfF5(!`g1n_+6$1M;5>%!mK@zv|x=ib|!-w|8wfod{TPU^rNYEyB;J7Xu3 z<%zbBy}{P+?-5sAVPV9ELq=#0oQsn*%yjI&zGM}k@Cb#k7a5Od@5of!hvyBYBd3`5 z=FJtjIhy*N4r{0etFZv;@EDdkg+i^VHdnFKysRxxiNtsiZe79T4#Y$mx`~1E;)$_A zL>M^cwcI9%XIdRP0$iF~eeasw)6b(&9m4O&p%hvBfRrYi_Gg(xJl+vM1z)dy`JOW( zXd31tP?KKRE*`1Z!tcPra>dyX*nagtgC+Rm&e@*yxE>BVM-t8^c=IclZmC0hzsG!K zCz%7De2oYZMn{NyeSOu46Mc5vrUMnqvSx?h-}mYzj|JKzNeTO#+ux;Pgv_6!Y6CKf zG1V902t$>jUf&o`%9$ly&NtYe%et0zP!%1r6GG%$aUv+MeaJi^pX+4WbN1%fkd38r zTmelXstImi9geX~4Ar-<)Li}*fnp4deIx2F7x%(i^{(O0VpMhQpB&=2%>Vs6DHtzY zgWzQ;#*}HV@&oyu5Bw%}tEeYljT@N%(0pkZuUd}d%@HVf`;)Hz)s1dAZzG&sUQbeZ zscJg6+^jYElEY_O?c-izc&f&wL+k55gGb*s@Q3A_*3|pc86Ek=-+lrjV6t!3dv)V? zZ>`$cvUCeF_UX%qfqUkKFT74~z4-(ZF#F1tNYEo`2pHy-?;jv>p^yXc9#>PGaFie6 zKD}TnJSioHsypBG(F(c5P9HB#?^n?LbO=(XB;X6V{ZJ28c*v8z?CGR-^`@qJmjf!; zsGR&9Tg0^aA&Z(Es`hCuSKI{ymj)Z!;4AKDW4z$BaHYYD476JT@CfBp6=Q0yRIJ!q zKl=f(OXaw8e76iUt3hAQ{ZJWx!Da52 zf4}EGb2q`4OnxEY?ERgFC(mK($R-N5%U$LpA@5c`sg)f)Ga8SWNe`qXwW((MOEtz? zl9-?Fv@5`6M`9O88*=C<`<*&ew7T&bh8eDOxyd?kpN zFC*Nw)BgRkgbqF*Ai6<5VRW~wCwH(PpQ!Xut%KXes|1Q0K(#7pBbtIVkKH2o#?odyfLfBWb@4(8EWRbzV*3OHBB%roET`65P z;R5TFh#`zCgg@xssGeC?Z+3Od{%5p6w9d@eYl@7HbajKk>k$8SAMz$ z$9joDIRkiB@leRg6w(zVuAneUB`-OgQ#|;bNzA<#iWxqj>e*qmZ-YvrRD6JL?!_af z=aU_oN|2CrXj5~b0s>gboEg9l45xDa@#I9d3adRd60Q5*@kxP_?ZJ@#lT;%T-)Kqz zzv9A4Rm5{@KhgR^dS8}SPAnvu0$veU{slD%GO<3pIOFNDiLV-JMc#d%QD6afB^C^8 z1d_EVQ2jbuZG+Hte>|?1rtptLva8y#D1{i`agF>lN=38rh>fqb38ai~fjH;3{{7Kt zVTbBRxM7fqf}dlvNKNlYRpzr}$dD>nl0807vRCkEWxvrnjaQyYs$uFatJb4xBi2Rzgdd~vgLJzIgw^tE`b_05Vfj%F2cm*|j7Xq-Wvwi6vYjd6TiiX$g z&?(ZSL2nsfg+Bos07!*B$!Di@#eEha%YVPBbz40-G*g511$Vs;4(j!U+&L|`IEQyPkUZbk|010Z9s~6qWY%3PV zpT~$Au7Eksu-v&l`4V9%c+iS=UW5%3K(r)lHEE|Ms%J}X$XHrhGH*+fHRpbaPx)HO z4Scp&QUsJ+weRCSpwU5Blo;Js&^}#c)%M|cszU`>LB<{mHbcqeY|LMl=;dH0KA)|h z%nf?Sy3l34INTbMe9?I(1Y+ZZUcY7t&%(sZuob9&@%=vLWeY-UT1arUAWturmitJ3 zTP+!?L-kSzbML-6CTLBpVTeO9v#Q1@_3D_{wjh;el4KAD-7&sP( zflM_F0O|VFVDYK#FYQwQEz&}m{2KVnm2Y-ta|1tHQH?kpCZ989~wNMk`V}1G$GgyGsQs_85m3dLp81i=ahbT zx^wc?LkE;;Um=~C;xMG$L?}FnjpY6NC%|L+e!$HiUdP8;&w~Y zYCn+sTWih+N$j{nSKp!Rb&4l)#f2E?IIf)mfLYRtasrKgC=El0D@uvKR0dVKknpc) z|3s~re}}7UpJBUD6!9e&2{B6IWg@v*rZo?bb;_*98-| z>73$h;r)0YRtKpK2hW!cl64)E>CPO7*`ls`sE};Ls^0$&IZOnUOL1qcZ_K*ktI>7Y zf9kY9X{opMxmk2Jz=GV&SgiJ9VyIlVe$^lnc&B}O(D@&am9Hrk5*^8ZRLcT_IP%V-NJ8l4gbH=?Id@C#sZQYvnwL(tEw)#2M5GS$HRzshThX zBROxRyzrU78ixEZZwS;X`b-`(r?T{mbCY6K^&vZH0O9L0?Rg~!#Wm<^IHaN)kpjkv zbvLunC^1QbBp6f{}4{xiC3rXV?Fu?(3&9Y7oL z>4)*49Myim*LhWXkp6K&SDQla(Ihn3h!iE)u5Us@f!vYb6kP&r3|NNCP49|or(Ov6 zwOgpPY+)*eK9J})el(0gLZsq5-RpT|Xmaml7L$Z)0xX_=&mh=0 zm{5(l^0^EJ~Bc^@ncS&Ra_9tn!}FspBw7Sgoi3&qvjDp1S|Y#zR0 z*o4n?KLG&t^u(tYYLXC1l!Xn7E?@}>rf3Zjy|?1TZ7}ABq1_!9x2demimvnc39RE> zw|6$il>!d)nE{YbYV;o9O)3je3Bh1-uLB8^fE;Cu=jr6LIeCF21%=`y-T_>oK0_tW z4D324JF*NNNShcjx!NL>ZMt&r78#HM&|w0CAa*pEq{VO$A!K?}F8IF`K_)*G5fO|7 zCZO~un3+jRu9>upjaoFvbAuK({;ux5VJc^FX+msEOXM#Xpv@T?KdwNRM+VrrHxSx) zotmIoq3~RsI+#r4eMye9ClBQ}L|5RrrC6a&@o57gIRga$E-ImK(;t3|CFm8U(a@7^M)?Iej zW{fBE^6z+paxR!l+i!EA1&I3P_;~W4xsEtruc34u!I_#*;YhaqbR`H_1Ju3g)w)+3-vZG@(7LA*XZuuu*VC;h7kfHSedpj_U^&h|c %CjI4bkGxwsy?`)|=&*nhFLe6eVlqsF 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 literal 0 HcmV?d00001