From 4ceefad4a4a319b70883e303d1e2fae550921452 Mon Sep 17 00:00:00 2001 From: John Stegmaier Date: Sun, 22 Jun 2025 16:36:20 -0400 Subject: [PATCH 01/12] Update project dependencies --- pom.xml | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/pom.xml b/pom.xml index 2629c9f..1f86b68 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ org.springframework.boot spring-boot-starter-parent - 3.3.4 + 3.5.3 dev.stegmaier @@ -28,8 +28,10 @@ 23 - 2.25 - 1.18.34 + 3.14.0 + 2.27 + 1.18.38 + 3.2.0 @@ -70,13 +72,13 @@ org.springframework.boot spring-boot-maven-plugin - dev.stegmaier.leetcode.LeetcodeApplication + dev.stegmaier.leetcode.LeetcodeApplication org.asciidoctor asciidoctor-maven-plugin - 2.2.1 + ${asciidoctor-plugin.version} generate-docs @@ -117,7 +119,7 @@ org.apache.maven.plugins maven-compiler-plugin - 3.13.0 + ${maven-compiler-plugin.version} ${java.version} ${java.version} From 35a910385b25b12fba7a09bbf4be5bca628e07f1 Mon Sep 17 00:00:00 2001 From: John Stegmaier Date: Sun, 22 Jun 2025 16:36:49 -0400 Subject: [PATCH 02/12] Add base layout for leetcode question 3085 --- ...letionstoMakeStringKSpecialController.java | 86 +++++++++++++++++++ .../Q3085MinimumDeletionService.java | 18 ++++ .../leetcode/services/QuestionService.java | 5 +- ...um-Deletions-To-Make-String-K-Special.html | 68 +++++++++++++++ ...rsingABooleanExpressionControllerTest.java | 4 +- ...onstoMakeStringKSpecialControllerTest.java | 61 +++++++++++++ .../Q3085MinimumDeletionServiceTest.java | 7 ++ .../services/QuestionServiceTest.java | 2 +- 8 files changed, 247 insertions(+), 4 deletions(-) create mode 100644 src/main/java/dev/stegmaier/leetcode/controllers/questions/Q3085MinimumDeletionstoMakeStringKSpecialController.java create mode 100644 src/main/java/dev/stegmaier/leetcode/services/LeetCodeQuestions/Q3085MinimumDeletionService.java create mode 100644 src/main/resources/templates/questions/3085-Minimum-Deletions-To-Make-String-K-Special.html create mode 100644 src/test/java/dev/stegmaier/leetcode/controllers/questions/Q3085MinimumDeletionstoMakeStringKSpecialControllerTest.java create mode 100644 src/test/java/dev/stegmaier/leetcode/services/LeetCodeQuestions/Q3085MinimumDeletionServiceTest.java diff --git a/src/main/java/dev/stegmaier/leetcode/controllers/questions/Q3085MinimumDeletionstoMakeStringKSpecialController.java b/src/main/java/dev/stegmaier/leetcode/controllers/questions/Q3085MinimumDeletionstoMakeStringKSpecialController.java new file mode 100644 index 0000000..cec555a --- /dev/null +++ b/src/main/java/dev/stegmaier/leetcode/controllers/questions/Q3085MinimumDeletionstoMakeStringKSpecialController.java @@ -0,0 +1,86 @@ +package dev.stegmaier.leetcode.controllers.questions; + +import dev.stegmaier.leetcode.services.LeetCodeQuestions.Q3085MinimumDeletionService; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import org.slf4j.Logger; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; + +import static dev.stegmaier.leetcode.utils.CorrelationIDUtil.getCorrelationId; +import static org.slf4j.LoggerFactory.getLogger; + +@Controller +@RequestMapping("/questions") // Base URI for all methods in this controller +public class Q3085MinimumDeletionstoMakeStringKSpecialController { + + private static final Logger log = getLogger(Q3085MinimumDeletionstoMakeStringKSpecialController.class); + private final Q3085MinimumDeletionService q3085MinimumDeletionService; + + public Q3085MinimumDeletionstoMakeStringKSpecialController( + Q3085MinimumDeletionService q3085MinimumDeletionService) { + this.q3085MinimumDeletionService = q3085MinimumDeletionService; + } + + // Display the question page for Leetcode Question #1106 + @GetMapping("/3085-Minimum-Deletions-To-Make-String-K-Special") + public String question3085Page(HttpServletRequest request, HttpServletResponse response) { + String clientIP = request.getRemoteAddr(); + String userAgent = request.getHeader("User-Agent"); + String correlationID = getCorrelationId(request); + + log.info( + "question3085Page was requested by: {} Host: {} Correlation ID:{}", + clientIP, + userAgent, + correlationID); + + response.setHeader("X-Correlation-ID", correlationID); + + return "questions/3085-Minimum-Deletions-To-Make-String-K-Special"; // Refers to addition.html template + } + + // Display the question page for Leetcode Question #1106 + @PostMapping("/3085-Minimum-Deletions-To-Make-String-K-Special") + public String handleQuestion3085Input( + @RequestParam("expression") String expression, + @RequestParam("kValue") int kValue, + Model model, + HttpServletRequest request, + HttpServletResponse response) { + String clientIP = request.getRemoteAddr(); + String userAgent = request.getHeader("User-Agent"); + String correlationID = getCorrelationId(request); + + log.info( + "{} with a value of k={} was submitted to question3085Page by: {} Host: {} Correlation ID:{}", + expression, + kValue, + clientIP, + userAgent, + correlationID); + + try { + int result = + q3085MinimumDeletionService.getMinimumDeletions(expression, kValue); // Using the injected MathService + model.addAttribute("result", "minimum number of deletions: " + result); + log.info( + "{} returned from the Deletion Service. Correlation ID: {}", expression, correlationID); + } catch (IllegalArgumentException e) { + model.addAttribute("result", "Invalid input. Please enter a valid input."); + log.error( + "{} with a value of k= {} caused an error to occur in the Deletion Service. Correlation ID: {}", + expression, + kValue, + correlationID); + } + + response.setHeader("X-Correlation-ID", correlationID); + + return "questions/3085-Minimum-Deletions-To-Make-String-K-Special"; // Refers to addition.html template + } +} diff --git a/src/main/java/dev/stegmaier/leetcode/services/LeetCodeQuestions/Q3085MinimumDeletionService.java b/src/main/java/dev/stegmaier/leetcode/services/LeetCodeQuestions/Q3085MinimumDeletionService.java new file mode 100644 index 0000000..b803760 --- /dev/null +++ b/src/main/java/dev/stegmaier/leetcode/services/LeetCodeQuestions/Q3085MinimumDeletionService.java @@ -0,0 +1,18 @@ +package dev.stegmaier.leetcode.services.LeetCodeQuestions; + +import org.slf4j.Logger; +import org.springframework.stereotype.Component; + +import java.util.Stack; + +import static org.slf4j.LoggerFactory.getLogger; + +@Component +public class Q3085MinimumDeletionService { + + private static final Logger log = getLogger(Q3085MinimumDeletionService.class); + + public int getMinimumDeletions(String expression, int kValue) { + return 0; + } +} diff --git a/src/main/java/dev/stegmaier/leetcode/services/QuestionService.java b/src/main/java/dev/stegmaier/leetcode/services/QuestionService.java index dbae38b..bede123 100644 --- a/src/main/java/dev/stegmaier/leetcode/services/QuestionService.java +++ b/src/main/java/dev/stegmaier/leetcode/services/QuestionService.java @@ -15,6 +15,9 @@ public List getAllQuestions() { new Question(1, "Addition Question", "/questions/addition"), new Question(2, "Subtraction Question", "/questions/subtraction"), new Question( - 3, "Parsing A Boolean Expression", "/questions/1106-Parsing-A-Boolean-Expression")); + 3, "Parsing A Boolean Expression", "/questions/1106-Parsing-A-Boolean-Expression"), + new Question( + 4, "Minimum Deletions To Make String K-Special", "/questions/3085-Minimum-Deletions-To-Make-String-K-Special") + ); } } diff --git a/src/main/resources/templates/questions/3085-Minimum-Deletions-To-Make-String-K-Special.html b/src/main/resources/templates/questions/3085-Minimum-Deletions-To-Make-String-K-Special.html new file mode 100644 index 0000000..2c5afa2 --- /dev/null +++ b/src/main/resources/templates/questions/3085-Minimum-Deletions-To-Make-String-K-Special.html @@ -0,0 +1,68 @@ + + + + + + Minimum Deletions To Make String K-Special + + + + + + + + +
+

Minimum Deletions To Make String K-Special

+

You are given a string word and an integerk.

+

We consider word to be k-special if |freq(word[i]) - freq(word[j]) | <=k for all indices i and j in the string.

+

Here, freq(x) denotes the frequency of the character x in word, and |y| denotes the absolute value of y.

+

Return the minimum number of characters you need to delete to make word k-special.

+
+

Example 1:

+

Input: word = "aabcaba", k = 0

+

Output: 3

+

Explanation: We can make word 0-special by deleting 2 occurrences of "a" and 1 occurrence of "c". Therefore, word becomes equal to "baba" where freq('a') == freq('b') == 2.

+
+
+

Example 2:

+

Input: word = "dabdcbdcdcd", k = 2

+

Output: 2

+

Explanation: We can make word 2-special by deleting 1 occurrences of "a" and 1 occurrence of "d". Therefore, word becomes equal to "bdcbdcdcd" where freq('b') == 2, freq('c') == 3, and freq('d') == 4.

+
+
+

Example 3:

+

Input: word = "aaabaaa", k = 2

+

Output: 1

+

Explanation: We can make word 2-special by deleting 1 occurrence of "b". Therefore, word becomes equal to "aaaaaa" where each letter's frequency is now uniformly 6.

+
+ +

Submit Your Expression:

+
+ + + + +
+ +

+ Result: +

+ +

Constraints:

+
    +
  • 1 <= word.length <= 10⁵
  • +
  • 0 <= k <= 10⁵
  • +
  • word consists only of lowercase English letters.
  • +
+
+ + + + \ No newline at end of file diff --git a/src/test/java/dev/stegmaier/leetcode/controllers/questions/Q1106ParsingABooleanExpressionControllerTest.java b/src/test/java/dev/stegmaier/leetcode/controllers/questions/Q1106ParsingABooleanExpressionControllerTest.java index c03c639..9801a14 100644 --- a/src/test/java/dev/stegmaier/leetcode/controllers/questions/Q1106ParsingABooleanExpressionControllerTest.java +++ b/src/test/java/dev/stegmaier/leetcode/controllers/questions/Q1106ParsingABooleanExpressionControllerTest.java @@ -9,7 +9,7 @@ import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest; -import org.springframework.boot.test.mock.mockito.MockBean; +import org.springframework.test.context.bean.override.mockito.MockitoBean; import org.springframework.test.web.servlet.MockMvc; @WebMvcTest(Q1106ParsingABooleanExpressionController.class) @@ -17,7 +17,7 @@ class Q1106ParsingABooleanExpressionControllerTest { @Autowired private MockMvc mockMvc; - @MockBean private Q1106BooleanParsingService booleanParsingService; + @MockitoBean private Q1106BooleanParsingService booleanParsingService; @Test void testQuestion1106PageLoads() throws Exception { diff --git a/src/test/java/dev/stegmaier/leetcode/controllers/questions/Q3085MinimumDeletionstoMakeStringKSpecialControllerTest.java b/src/test/java/dev/stegmaier/leetcode/controllers/questions/Q3085MinimumDeletionstoMakeStringKSpecialControllerTest.java new file mode 100644 index 0000000..b523315 --- /dev/null +++ b/src/test/java/dev/stegmaier/leetcode/controllers/questions/Q3085MinimumDeletionstoMakeStringKSpecialControllerTest.java @@ -0,0 +1,61 @@ +package dev.stegmaier.leetcode.controllers.questions; + +import dev.stegmaier.leetcode.services.LeetCodeQuestions.Q1106BooleanParsingService; +import dev.stegmaier.leetcode.services.LeetCodeQuestions.Q3085MinimumDeletionService; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest; +import org.springframework.test.context.bean.override.mockito.MockitoBean; +import org.springframework.test.web.servlet.MockMvc; + +import static org.junit.jupiter.api.Assertions.*; +import static org.mockito.Mockito.when; +import static org.springframework.restdocs.mockmvc.RestDocumentationRequestBuilders.post; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*; + +@WebMvcTest(Q3085MinimumDeletionstoMakeStringKSpecialController.class) +class Q3085MinimumDeletionstoMakeStringKSpecialControllerTest { + @Autowired + private MockMvc mockMvc; + + @MockitoBean + private Q3085MinimumDeletionService minimumDeletionService; + + @Test + void testQuestion3085PageLoads() throws Exception { + mockMvc + .perform(get("/questions/3085-Minimum-Deletions-To-Make-String-K-Special")) + .andExpect(status().isOk()) + .andExpect(view().name("questions/3085-Minimum-Deletions-To-Make-String-K-Special")) + .andExpect( + content().string(org.hamcrest.Matchers.containsString("Minimum Deletions To Make String K-Special"))); + } + + @Test + void testHandleQuestion3085Input() throws Exception { + // Mocking service result + when(minimumDeletionService.getMinimumDeletions("aaaabbbccc", 12)).thenReturn(0); + + mockMvc + .perform(post("/questions/3085-Minimum-Deletions-To-Make-String-K-Special").param("expression", "aaaabbbccc").param("kValue", "12")) + .andExpect(status().isOk()) + .andExpect(model().attribute("result", "minimum number of deletions: 0")) + .andExpect(view().name("questions/3085-Minimum-Deletions-To-Make-String-K-Special")); + } + + @Test + void testHandleQuestion3085Input_InvalidExpression() throws Exception { + // Mocking service to throw an IllegalArgumentException + when(minimumDeletionService.getMinimumDeletions("invalid", 12)) + .thenThrow(new IllegalArgumentException()); + + mockMvc + .perform( + post("/questions/3085-Minimum-Deletions-To-Make-String-K-Special").param("expression", "invalid").param("kValue", "12")) + .andExpect(status().isOk()) + .andExpect( + model().attribute("result", "Invalid input. Please enter a valid input.")) + .andExpect(view().name("questions/3085-Minimum-Deletions-To-Make-String-K-Special")); + } +} \ No newline at end of file diff --git a/src/test/java/dev/stegmaier/leetcode/services/LeetCodeQuestions/Q3085MinimumDeletionServiceTest.java b/src/test/java/dev/stegmaier/leetcode/services/LeetCodeQuestions/Q3085MinimumDeletionServiceTest.java new file mode 100644 index 0000000..d890cef --- /dev/null +++ b/src/test/java/dev/stegmaier/leetcode/services/LeetCodeQuestions/Q3085MinimumDeletionServiceTest.java @@ -0,0 +1,7 @@ +package dev.stegmaier.leetcode.services.LeetCodeQuestions; + +import static org.junit.jupiter.api.Assertions.*; + +class Q3085MinimumDeletionServiceTest { + +} \ No newline at end of file diff --git a/src/test/java/dev/stegmaier/leetcode/services/QuestionServiceTest.java b/src/test/java/dev/stegmaier/leetcode/services/QuestionServiceTest.java index 8b88d3d..857f362 100644 --- a/src/test/java/dev/stegmaier/leetcode/services/QuestionServiceTest.java +++ b/src/test/java/dev/stegmaier/leetcode/services/QuestionServiceTest.java @@ -16,7 +16,7 @@ void testGetAllQuestions() { List questions = questionService.getAllQuestions(); // Verify the size of the list - assertEquals(3, questions.size(), "Expected 3 questions in the list"); + assertEquals(4, questions.size(), "Expected 4 questions in the list"); // Verify the details of each question Question q1 = questions.get(0); From 4379d4e2d9889be56d50b62e83350e3a62c3f64a Mon Sep 17 00:00:00 2001 From: John Stegmaier Date: Sun, 22 Jun 2025 16:37:07 -0400 Subject: [PATCH 03/12] Run maven formatter --- ...letionstoMakeStringKSpecialController.java | 22 ++-- .../Q3085MinimumDeletionService.java | 6 +- .../leetcode/services/QuestionService.java | 5 +- ...rsingABooleanExpressionControllerTest.java | 2 +- ...onstoMakeStringKSpecialControllerTest.java | 104 +++++++++--------- .../Q3085MinimumDeletionServiceTest.java | 4 +- 6 files changed, 74 insertions(+), 69 deletions(-) diff --git a/src/main/java/dev/stegmaier/leetcode/controllers/questions/Q3085MinimumDeletionstoMakeStringKSpecialController.java b/src/main/java/dev/stegmaier/leetcode/controllers/questions/Q3085MinimumDeletionstoMakeStringKSpecialController.java index cec555a..967c603 100644 --- a/src/main/java/dev/stegmaier/leetcode/controllers/questions/Q3085MinimumDeletionstoMakeStringKSpecialController.java +++ b/src/main/java/dev/stegmaier/leetcode/controllers/questions/Q3085MinimumDeletionstoMakeStringKSpecialController.java @@ -1,5 +1,8 @@ package dev.stegmaier.leetcode.controllers.questions; +import static dev.stegmaier.leetcode.utils.CorrelationIDUtil.getCorrelationId; +import static org.slf4j.LoggerFactory.getLogger; + import dev.stegmaier.leetcode.services.LeetCodeQuestions.Q3085MinimumDeletionService; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; @@ -11,18 +14,16 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; -import static dev.stegmaier.leetcode.utils.CorrelationIDUtil.getCorrelationId; -import static org.slf4j.LoggerFactory.getLogger; - @Controller @RequestMapping("/questions") // Base URI for all methods in this controller public class Q3085MinimumDeletionstoMakeStringKSpecialController { - private static final Logger log = getLogger(Q3085MinimumDeletionstoMakeStringKSpecialController.class); + private static final Logger log = + getLogger(Q3085MinimumDeletionstoMakeStringKSpecialController.class); private final Q3085MinimumDeletionService q3085MinimumDeletionService; public Q3085MinimumDeletionstoMakeStringKSpecialController( - Q3085MinimumDeletionService q3085MinimumDeletionService) { + Q3085MinimumDeletionService q3085MinimumDeletionService) { this.q3085MinimumDeletionService = q3085MinimumDeletionService; } @@ -41,7 +42,8 @@ public String question3085Page(HttpServletRequest request, HttpServletResponse r response.setHeader("X-Correlation-ID", correlationID); - return "questions/3085-Minimum-Deletions-To-Make-String-K-Special"; // Refers to addition.html template + return "questions/3085-Minimum-Deletions-To-Make-String-K-Special"; // Refers to addition.html + // template } // Display the question page for Leetcode Question #1106 @@ -59,14 +61,15 @@ public String handleQuestion3085Input( log.info( "{} with a value of k={} was submitted to question3085Page by: {} Host: {} Correlation ID:{}", expression, - kValue, + kValue, clientIP, userAgent, correlationID); try { int result = - q3085MinimumDeletionService.getMinimumDeletions(expression, kValue); // Using the injected MathService + q3085MinimumDeletionService.getMinimumDeletions( + expression, kValue); // Using the injected MathService model.addAttribute("result", "minimum number of deletions: " + result); log.info( "{} returned from the Deletion Service. Correlation ID: {}", expression, correlationID); @@ -81,6 +84,7 @@ public String handleQuestion3085Input( response.setHeader("X-Correlation-ID", correlationID); - return "questions/3085-Minimum-Deletions-To-Make-String-K-Special"; // Refers to addition.html template + return "questions/3085-Minimum-Deletions-To-Make-String-K-Special"; // Refers to addition.html + // template } } diff --git a/src/main/java/dev/stegmaier/leetcode/services/LeetCodeQuestions/Q3085MinimumDeletionService.java b/src/main/java/dev/stegmaier/leetcode/services/LeetCodeQuestions/Q3085MinimumDeletionService.java index b803760..cd35a0d 100644 --- a/src/main/java/dev/stegmaier/leetcode/services/LeetCodeQuestions/Q3085MinimumDeletionService.java +++ b/src/main/java/dev/stegmaier/leetcode/services/LeetCodeQuestions/Q3085MinimumDeletionService.java @@ -1,12 +1,10 @@ package dev.stegmaier.leetcode.services.LeetCodeQuestions; +import static org.slf4j.LoggerFactory.getLogger; + import org.slf4j.Logger; import org.springframework.stereotype.Component; -import java.util.Stack; - -import static org.slf4j.LoggerFactory.getLogger; - @Component public class Q3085MinimumDeletionService { diff --git a/src/main/java/dev/stegmaier/leetcode/services/QuestionService.java b/src/main/java/dev/stegmaier/leetcode/services/QuestionService.java index bede123..99f3b20 100644 --- a/src/main/java/dev/stegmaier/leetcode/services/QuestionService.java +++ b/src/main/java/dev/stegmaier/leetcode/services/QuestionService.java @@ -17,7 +17,8 @@ public List getAllQuestions() { new Question( 3, "Parsing A Boolean Expression", "/questions/1106-Parsing-A-Boolean-Expression"), new Question( - 4, "Minimum Deletions To Make String K-Special", "/questions/3085-Minimum-Deletions-To-Make-String-K-Special") - ); + 4, + "Minimum Deletions To Make String K-Special", + "/questions/3085-Minimum-Deletions-To-Make-String-K-Special")); } } diff --git a/src/test/java/dev/stegmaier/leetcode/controllers/questions/Q1106ParsingABooleanExpressionControllerTest.java b/src/test/java/dev/stegmaier/leetcode/controllers/questions/Q1106ParsingABooleanExpressionControllerTest.java index 9801a14..8447f7b 100644 --- a/src/test/java/dev/stegmaier/leetcode/controllers/questions/Q1106ParsingABooleanExpressionControllerTest.java +++ b/src/test/java/dev/stegmaier/leetcode/controllers/questions/Q1106ParsingABooleanExpressionControllerTest.java @@ -17,7 +17,7 @@ class Q1106ParsingABooleanExpressionControllerTest { @Autowired private MockMvc mockMvc; - @MockitoBean private Q1106BooleanParsingService booleanParsingService; + @MockitoBean private Q1106BooleanParsingService booleanParsingService; @Test void testQuestion1106PageLoads() throws Exception { diff --git a/src/test/java/dev/stegmaier/leetcode/controllers/questions/Q3085MinimumDeletionstoMakeStringKSpecialControllerTest.java b/src/test/java/dev/stegmaier/leetcode/controllers/questions/Q3085MinimumDeletionstoMakeStringKSpecialControllerTest.java index b523315..fe7c2fe 100644 --- a/src/test/java/dev/stegmaier/leetcode/controllers/questions/Q3085MinimumDeletionstoMakeStringKSpecialControllerTest.java +++ b/src/test/java/dev/stegmaier/leetcode/controllers/questions/Q3085MinimumDeletionstoMakeStringKSpecialControllerTest.java @@ -1,6 +1,11 @@ package dev.stegmaier.leetcode.controllers.questions; -import dev.stegmaier.leetcode.services.LeetCodeQuestions.Q1106BooleanParsingService; +import static org.junit.jupiter.api.Assertions.*; +import static org.mockito.Mockito.when; +import static org.springframework.restdocs.mockmvc.RestDocumentationRequestBuilders.post; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*; + import dev.stegmaier.leetcode.services.LeetCodeQuestions.Q3085MinimumDeletionService; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; @@ -8,54 +13,53 @@ import org.springframework.test.context.bean.override.mockito.MockitoBean; import org.springframework.test.web.servlet.MockMvc; -import static org.junit.jupiter.api.Assertions.*; -import static org.mockito.Mockito.when; -import static org.springframework.restdocs.mockmvc.RestDocumentationRequestBuilders.post; -import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; -import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*; - @WebMvcTest(Q3085MinimumDeletionstoMakeStringKSpecialController.class) class Q3085MinimumDeletionstoMakeStringKSpecialControllerTest { - @Autowired - private MockMvc mockMvc; - - @MockitoBean - private Q3085MinimumDeletionService minimumDeletionService; - - @Test - void testQuestion3085PageLoads() throws Exception { - mockMvc - .perform(get("/questions/3085-Minimum-Deletions-To-Make-String-K-Special")) - .andExpect(status().isOk()) - .andExpect(view().name("questions/3085-Minimum-Deletions-To-Make-String-K-Special")) - .andExpect( - content().string(org.hamcrest.Matchers.containsString("Minimum Deletions To Make String K-Special"))); - } - - @Test - void testHandleQuestion3085Input() throws Exception { - // Mocking service result - when(minimumDeletionService.getMinimumDeletions("aaaabbbccc", 12)).thenReturn(0); - - mockMvc - .perform(post("/questions/3085-Minimum-Deletions-To-Make-String-K-Special").param("expression", "aaaabbbccc").param("kValue", "12")) - .andExpect(status().isOk()) - .andExpect(model().attribute("result", "minimum number of deletions: 0")) - .andExpect(view().name("questions/3085-Minimum-Deletions-To-Make-String-K-Special")); - } - - @Test - void testHandleQuestion3085Input_InvalidExpression() throws Exception { - // Mocking service to throw an IllegalArgumentException - when(minimumDeletionService.getMinimumDeletions("invalid", 12)) - .thenThrow(new IllegalArgumentException()); - - mockMvc - .perform( - post("/questions/3085-Minimum-Deletions-To-Make-String-K-Special").param("expression", "invalid").param("kValue", "12")) - .andExpect(status().isOk()) - .andExpect( - model().attribute("result", "Invalid input. Please enter a valid input.")) - .andExpect(view().name("questions/3085-Minimum-Deletions-To-Make-String-K-Special")); - } -} \ No newline at end of file + @Autowired private MockMvc mockMvc; + + @MockitoBean private Q3085MinimumDeletionService minimumDeletionService; + + @Test + void testQuestion3085PageLoads() throws Exception { + mockMvc + .perform(get("/questions/3085-Minimum-Deletions-To-Make-String-K-Special")) + .andExpect(status().isOk()) + .andExpect(view().name("questions/3085-Minimum-Deletions-To-Make-String-K-Special")) + .andExpect( + content() + .string( + org.hamcrest.Matchers.containsString( + "Minimum Deletions To Make String K-Special"))); + } + + @Test + void testHandleQuestion3085Input() throws Exception { + // Mocking service result + when(minimumDeletionService.getMinimumDeletions("aaaabbbccc", 12)).thenReturn(0); + + mockMvc + .perform( + post("/questions/3085-Minimum-Deletions-To-Make-String-K-Special") + .param("expression", "aaaabbbccc") + .param("kValue", "12")) + .andExpect(status().isOk()) + .andExpect(model().attribute("result", "minimum number of deletions: 0")) + .andExpect(view().name("questions/3085-Minimum-Deletions-To-Make-String-K-Special")); + } + + @Test + void testHandleQuestion3085Input_InvalidExpression() throws Exception { + // Mocking service to throw an IllegalArgumentException + when(minimumDeletionService.getMinimumDeletions("invalid", 12)) + .thenThrow(new IllegalArgumentException()); + + mockMvc + .perform( + post("/questions/3085-Minimum-Deletions-To-Make-String-K-Special") + .param("expression", "invalid") + .param("kValue", "12")) + .andExpect(status().isOk()) + .andExpect(model().attribute("result", "Invalid input. Please enter a valid input.")) + .andExpect(view().name("questions/3085-Minimum-Deletions-To-Make-String-K-Special")); + } +} diff --git a/src/test/java/dev/stegmaier/leetcode/services/LeetCodeQuestions/Q3085MinimumDeletionServiceTest.java b/src/test/java/dev/stegmaier/leetcode/services/LeetCodeQuestions/Q3085MinimumDeletionServiceTest.java index d890cef..55d17c0 100644 --- a/src/test/java/dev/stegmaier/leetcode/services/LeetCodeQuestions/Q3085MinimumDeletionServiceTest.java +++ b/src/test/java/dev/stegmaier/leetcode/services/LeetCodeQuestions/Q3085MinimumDeletionServiceTest.java @@ -2,6 +2,4 @@ import static org.junit.jupiter.api.Assertions.*; -class Q3085MinimumDeletionServiceTest { - -} \ No newline at end of file +class Q3085MinimumDeletionServiceTest {} From 692a6a9389c0d2d870ea4cb33511222e74225eb0 Mon Sep 17 00:00:00 2001 From: John Stegmaier Date: Sun, 22 Jun 2025 16:39:57 -0400 Subject: [PATCH 04/12] Address code analysis warnings --- pom.xml | 4 ---- ...085MinimumDeletionstoMakeStringKSpecialControllerTest.java | 1 - .../dev/stegmaier/leetcode/services/QuestionServiceTest.java | 2 +- 3 files changed, 1 insertion(+), 6 deletions(-) diff --git a/pom.xml b/pom.xml index 1f86b68..318c5b2 100644 --- a/pom.xml +++ b/pom.xml @@ -100,10 +100,6 @@
- - org.springframework.boot - spring-boot-maven-plugin - com.spotify.fmt fmt-maven-plugin diff --git a/src/test/java/dev/stegmaier/leetcode/controllers/questions/Q3085MinimumDeletionstoMakeStringKSpecialControllerTest.java b/src/test/java/dev/stegmaier/leetcode/controllers/questions/Q3085MinimumDeletionstoMakeStringKSpecialControllerTest.java index fe7c2fe..e94b689 100644 --- a/src/test/java/dev/stegmaier/leetcode/controllers/questions/Q3085MinimumDeletionstoMakeStringKSpecialControllerTest.java +++ b/src/test/java/dev/stegmaier/leetcode/controllers/questions/Q3085MinimumDeletionstoMakeStringKSpecialControllerTest.java @@ -1,6 +1,5 @@ package dev.stegmaier.leetcode.controllers.questions; -import static org.junit.jupiter.api.Assertions.*; import static org.mockito.Mockito.when; import static org.springframework.restdocs.mockmvc.RestDocumentationRequestBuilders.post; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; diff --git a/src/test/java/dev/stegmaier/leetcode/services/QuestionServiceTest.java b/src/test/java/dev/stegmaier/leetcode/services/QuestionServiceTest.java index 857f362..ab5cbb8 100644 --- a/src/test/java/dev/stegmaier/leetcode/services/QuestionServiceTest.java +++ b/src/test/java/dev/stegmaier/leetcode/services/QuestionServiceTest.java @@ -19,7 +19,7 @@ void testGetAllQuestions() { assertEquals(4, questions.size(), "Expected 4 questions in the list"); // Verify the details of each question - Question q1 = questions.get(0); + Question q1 = questions.getFirst(); assertEquals(1, q1.getId()); assertEquals("Addition Question", q1.getTitle()); assertEquals("/questions/addition", q1.getUrl()); From f85b4201141ae8de4e80b83cb301fc30d1ad2f90 Mon Sep 17 00:00:00 2001 From: John Stegmaier Date: Sun, 22 Jun 2025 16:42:52 -0400 Subject: [PATCH 05/12] Run mvn formatter --- .../Q3085MinimumDeletionstoMakeStringKSpecialController.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/dev/stegmaier/leetcode/controllers/questions/Q3085MinimumDeletionstoMakeStringKSpecialController.java b/src/main/java/dev/stegmaier/leetcode/controllers/questions/Q3085MinimumDeletionstoMakeStringKSpecialController.java index 967c603..3115ad3 100644 --- a/src/main/java/dev/stegmaier/leetcode/controllers/questions/Q3085MinimumDeletionstoMakeStringKSpecialController.java +++ b/src/main/java/dev/stegmaier/leetcode/controllers/questions/Q3085MinimumDeletionstoMakeStringKSpecialController.java @@ -43,7 +43,7 @@ public String question3085Page(HttpServletRequest request, HttpServletResponse r response.setHeader("X-Correlation-ID", correlationID); return "questions/3085-Minimum-Deletions-To-Make-String-K-Special"; // Refers to addition.html - // template + // template } // Display the question page for Leetcode Question #1106 @@ -85,6 +85,6 @@ public String handleQuestion3085Input( response.setHeader("X-Correlation-ID", correlationID); return "questions/3085-Minimum-Deletions-To-Make-String-K-Special"; // Refers to addition.html - // template + // template } } From 3adc976c52b07b8f38a0339da4db8b6213c1b4a4 Mon Sep 17 00:00:00 2001 From: John Stegmaier Date: Sun, 22 Jun 2025 16:43:53 -0400 Subject: [PATCH 06/12] Add missing label for kValue --- .../3085-Minimum-Deletions-To-Make-String-K-Special.html | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/resources/templates/questions/3085-Minimum-Deletions-To-Make-String-K-Special.html b/src/main/resources/templates/questions/3085-Minimum-Deletions-To-Make-String-K-Special.html index 2c5afa2..fca5d41 100644 --- a/src/main/resources/templates/questions/3085-Minimum-Deletions-To-Make-String-K-Special.html +++ b/src/main/resources/templates/questions/3085-Minimum-Deletions-To-Make-String-K-Special.html @@ -47,6 +47,7 @@

Submit Your Expression:

+
From 2c33466c21d2f631d99a076a348becf9a91af7b6 Mon Sep 17 00:00:00 2001 From: John Stegmaier Date: Sun, 22 Jun 2025 17:04:11 -0400 Subject: [PATCH 07/12] Add red failing tests (Red/Green/Refactor Step 1) --- .../Q3085MinimumDeletionServiceTest.java | 64 ++++++++++++++++++- 1 file changed, 63 insertions(+), 1 deletion(-) diff --git a/src/test/java/dev/stegmaier/leetcode/services/LeetCodeQuestions/Q3085MinimumDeletionServiceTest.java b/src/test/java/dev/stegmaier/leetcode/services/LeetCodeQuestions/Q3085MinimumDeletionServiceTest.java index 55d17c0..b17ef83 100644 --- a/src/test/java/dev/stegmaier/leetcode/services/LeetCodeQuestions/Q3085MinimumDeletionServiceTest.java +++ b/src/test/java/dev/stegmaier/leetcode/services/LeetCodeQuestions/Q3085MinimumDeletionServiceTest.java @@ -1,5 +1,67 @@ package dev.stegmaier.leetcode.services.LeetCodeQuestions; +import org.junit.jupiter.api.Test; + import static org.junit.jupiter.api.Assertions.*; -class Q3085MinimumDeletionServiceTest {} +class Q3085MinimumDeletionServiceTest { + + private final Q3085MinimumDeletionService q3085MinimumDeletionService = new Q3085MinimumDeletionService(); + + /* + +Example 1: + +Input: word = "aabcaba", k = 0 + +Output: 3 + +Explanation: We can make word 0-special by deleting 2 occurrences of "a" and 1 occurrence of "c". Therefore, word becomes equal to "baba" where freq('a') == freq('b') == 2. +Example 2: + +Input: word = "dabdcbdcdcd", k = 2 + +Output: 2 + +Explanation: We can make word 2-special by deleting 1 occurrences of "a" and 1 occurrence of "d". Therefore, word becomes equal to "bdcbdcdcd" where freq('b') == 2, freq('c') == 3, and freq('d') == 4. +Example 3: + +Input: word = "aaabaaa", k = 2 + +Output: 1 + +Explanation: We can make word 2-special by deleting 1 occurrence of "b". Therefore, word becomes equal to "aaaaaa" where each letter's frequency is now uniformly 6. + + */ + + @Test + void shouldHandleBasicStringWithKValueAsZero() { + String inputString = "aabcaba"; + int inputKValue = 0; + + int result = q3085MinimumDeletionService.getMinimumDeletions(inputString, inputKValue); + + assertEquals(3, result); + } + + @Test + void shouldHandleBasicStringWithKValueAsTwo() { + String inputString = "dabdcbdcdcd"; + int inputKValue = 2; + + int result = q3085MinimumDeletionService.getMinimumDeletions(inputString, inputKValue); + + assertEquals(2, result); + } + + @Test + void shouldHandleStringWithManyRepeatingCharacters() { + String inputString = "aaabaaa"; + int inputKValue = 2; + + int result = q3085MinimumDeletionService.getMinimumDeletions(inputString, inputKValue); + + assertEquals(1, result); + } + +} From 398825795226355b44c9b363720ec0bc78d53706 Mon Sep 17 00:00:00 2001 From: John Stegmaier Date: Sun, 22 Jun 2025 17:04:36 -0400 Subject: [PATCH 08/12] Run maven formatter --- .../Q3085MinimumDeletionServiceTest.java | 78 +++++++++---------- 1 file changed, 39 insertions(+), 39 deletions(-) diff --git a/src/test/java/dev/stegmaier/leetcode/services/LeetCodeQuestions/Q3085MinimumDeletionServiceTest.java b/src/test/java/dev/stegmaier/leetcode/services/LeetCodeQuestions/Q3085MinimumDeletionServiceTest.java index b17ef83..cd5a87c 100644 --- a/src/test/java/dev/stegmaier/leetcode/services/LeetCodeQuestions/Q3085MinimumDeletionServiceTest.java +++ b/src/test/java/dev/stegmaier/leetcode/services/LeetCodeQuestions/Q3085MinimumDeletionServiceTest.java @@ -1,67 +1,67 @@ package dev.stegmaier.leetcode.services.LeetCodeQuestions; -import org.junit.jupiter.api.Test; - import static org.junit.jupiter.api.Assertions.*; -class Q3085MinimumDeletionServiceTest { +import org.junit.jupiter.api.Test; - private final Q3085MinimumDeletionService q3085MinimumDeletionService = new Q3085MinimumDeletionService(); +class Q3085MinimumDeletionServiceTest { - /* + private final Q3085MinimumDeletionService q3085MinimumDeletionService = + new Q3085MinimumDeletionService(); -Example 1: + /* -Input: word = "aabcaba", k = 0 + Example 1: -Output: 3 + Input: word = "aabcaba", k = 0 -Explanation: We can make word 0-special by deleting 2 occurrences of "a" and 1 occurrence of "c". Therefore, word becomes equal to "baba" where freq('a') == freq('b') == 2. -Example 2: + Output: 3 -Input: word = "dabdcbdcdcd", k = 2 + Explanation: We can make word 0-special by deleting 2 occurrences of "a" and 1 occurrence of "c". Therefore, word becomes equal to "baba" where freq('a') == freq('b') == 2. + Example 2: -Output: 2 + Input: word = "dabdcbdcdcd", k = 2 -Explanation: We can make word 2-special by deleting 1 occurrences of "a" and 1 occurrence of "d". Therefore, word becomes equal to "bdcbdcdcd" where freq('b') == 2, freq('c') == 3, and freq('d') == 4. -Example 3: + Output: 2 -Input: word = "aaabaaa", k = 2 + Explanation: We can make word 2-special by deleting 1 occurrences of "a" and 1 occurrence of "d". Therefore, word becomes equal to "bdcbdcdcd" where freq('b') == 2, freq('c') == 3, and freq('d') == 4. + Example 3: -Output: 1 + Input: word = "aaabaaa", k = 2 -Explanation: We can make word 2-special by deleting 1 occurrence of "b". Therefore, word becomes equal to "aaaaaa" where each letter's frequency is now uniformly 6. + Output: 1 - */ + Explanation: We can make word 2-special by deleting 1 occurrence of "b". Therefore, word becomes equal to "aaaaaa" where each letter's frequency is now uniformly 6. - @Test - void shouldHandleBasicStringWithKValueAsZero() { - String inputString = "aabcaba"; - int inputKValue = 0; + */ - int result = q3085MinimumDeletionService.getMinimumDeletions(inputString, inputKValue); + @Test + void shouldHandleBasicStringWithKValueAsZero() { + String inputString = "aabcaba"; + int inputKValue = 0; - assertEquals(3, result); - } + int result = q3085MinimumDeletionService.getMinimumDeletions(inputString, inputKValue); - @Test - void shouldHandleBasicStringWithKValueAsTwo() { - String inputString = "dabdcbdcdcd"; - int inputKValue = 2; + assertEquals(3, result); + } - int result = q3085MinimumDeletionService.getMinimumDeletions(inputString, inputKValue); + @Test + void shouldHandleBasicStringWithKValueAsTwo() { + String inputString = "dabdcbdcdcd"; + int inputKValue = 2; - assertEquals(2, result); - } + int result = q3085MinimumDeletionService.getMinimumDeletions(inputString, inputKValue); - @Test - void shouldHandleStringWithManyRepeatingCharacters() { - String inputString = "aaabaaa"; - int inputKValue = 2; + assertEquals(2, result); + } - int result = q3085MinimumDeletionService.getMinimumDeletions(inputString, inputKValue); + @Test + void shouldHandleStringWithManyRepeatingCharacters() { + String inputString = "aaabaaa"; + int inputKValue = 2; - assertEquals(1, result); - } + int result = q3085MinimumDeletionService.getMinimumDeletions(inputString, inputKValue); + assertEquals(1, result); + } } From f430bd1527eeeba3ad72ee1916dc19d15de8d749 Mon Sep 17 00:00:00 2001 From: John Stegmaier Date: Sun, 22 Jun 2025 17:08:27 -0400 Subject: [PATCH 09/12] Remove comment with examples from leetcode question --- .../Q3085MinimumDeletionServiceTest.java | 26 ------------------- 1 file changed, 26 deletions(-) diff --git a/src/test/java/dev/stegmaier/leetcode/services/LeetCodeQuestions/Q3085MinimumDeletionServiceTest.java b/src/test/java/dev/stegmaier/leetcode/services/LeetCodeQuestions/Q3085MinimumDeletionServiceTest.java index cd5a87c..b52d251 100644 --- a/src/test/java/dev/stegmaier/leetcode/services/LeetCodeQuestions/Q3085MinimumDeletionServiceTest.java +++ b/src/test/java/dev/stegmaier/leetcode/services/LeetCodeQuestions/Q3085MinimumDeletionServiceTest.java @@ -9,32 +9,6 @@ class Q3085MinimumDeletionServiceTest { private final Q3085MinimumDeletionService q3085MinimumDeletionService = new Q3085MinimumDeletionService(); - /* - - Example 1: - - Input: word = "aabcaba", k = 0 - - Output: 3 - - Explanation: We can make word 0-special by deleting 2 occurrences of "a" and 1 occurrence of "c". Therefore, word becomes equal to "baba" where freq('a') == freq('b') == 2. - Example 2: - - Input: word = "dabdcbdcdcd", k = 2 - - Output: 2 - - Explanation: We can make word 2-special by deleting 1 occurrences of "a" and 1 occurrence of "d". Therefore, word becomes equal to "bdcbdcdcd" where freq('b') == 2, freq('c') == 3, and freq('d') == 4. - Example 3: - - Input: word = "aaabaaa", k = 2 - - Output: 1 - - Explanation: We can make word 2-special by deleting 1 occurrence of "b". Therefore, word becomes equal to "aaaaaa" where each letter's frequency is now uniformly 6. - - */ - @Test void shouldHandleBasicStringWithKValueAsZero() { String inputString = "aabcaba"; From 18d20308e1342962a8731055c54a4aba192c2ae5 Mon Sep 17 00:00:00 2001 From: John Stegmaier Date: Sun, 22 Jun 2025 17:53:36 -0400 Subject: [PATCH 10/12] Implement handling for inapropriate input --- .../Q3085MinimumDeletionService.java | 15 +++++++ .../leetcode/constants/Q3085Constants.java | 16 +++++++ .../Q3085MinimumDeletionServiceTest.java | 44 +++++++++++++++++++ 3 files changed, 75 insertions(+) create mode 100644 src/test/java/dev/stegmaier/leetcode/constants/Q3085Constants.java diff --git a/src/main/java/dev/stegmaier/leetcode/services/LeetCodeQuestions/Q3085MinimumDeletionService.java b/src/main/java/dev/stegmaier/leetcode/services/LeetCodeQuestions/Q3085MinimumDeletionService.java index cd35a0d..dfab8af 100644 --- a/src/main/java/dev/stegmaier/leetcode/services/LeetCodeQuestions/Q3085MinimumDeletionService.java +++ b/src/main/java/dev/stegmaier/leetcode/services/LeetCodeQuestions/Q3085MinimumDeletionService.java @@ -11,6 +11,21 @@ public class Q3085MinimumDeletionService { private static final Logger log = getLogger(Q3085MinimumDeletionService.class); public int getMinimumDeletions(String expression, int kValue) { + checkExpressionMeetsRequirements(expression); + return 0; } + + private void checkExpressionMeetsRequirements(String expression) { + if(null == expression) { + throw new NullPointerException("expression is somehow null"); + } + if (expression.isEmpty()) { + throw new IllegalArgumentException("expression length less than 1"); + } + if(expression.length() > 100000) { + throw new IllegalArgumentException("expression length exceeds 10⁵"); + } + + } } diff --git a/src/test/java/dev/stegmaier/leetcode/constants/Q3085Constants.java b/src/test/java/dev/stegmaier/leetcode/constants/Q3085Constants.java new file mode 100644 index 0000000..47c30f6 --- /dev/null +++ b/src/test/java/dev/stegmaier/leetcode/constants/Q3085Constants.java @@ -0,0 +1,16 @@ +package dev.stegmaier.leetcode.constants; + +public class Q3085Constants { + private static final StringBuilder sb = new StringBuilder(); + + public static final String STRING_WITH_100001_CHARACTERS = build100kString(); + + private static String build100kString() { + sb.append("anbdqfaxjxdvtvfjfdchanidtxlnijlrcxbcxvorxqqtifsjpvrzdaxpszjpmnflqsdbfnezdrfhciegmyjnpmvdplbjluqynqxrbwgbpilucgmojxtlxewkawvdaxpazuwwvufqtdqtlrtkxwvbfdpmdutzoqdaykifgekwyiaowzlcehvabxgykkhyvmkqbxtbrdjrwdumqtrjsfqavvpbwaccwchovnphxvoxuyxwhxuaxyzsgrvethagokvpprgxlzvohpaqoxvpazbhwbdxhezvrvqeeveiyrmrcxakkbiuiowfhbgixkazykgkjpuffbbmsvvpbfsjwdxifokttenygxbdurlzvfooiyxjskdvubwbimlqzyqmefnwnltmloyvbedznfnkozdgqbodflzfalbnceislrikvvfualrtocczfuhucpdqbwhsnnhklrdhhbqkxsmmipebpdycfnrjjwfsublhqdqrlhufkmfmfzjrycyxnnokvypuxuyeyagflohceamgvlbqtjizxyjlaphuxwiclznnbevrywslooevmcnsaqkdypdrgbsesyiykugvnwnohximtiqaghpbdrkyypzbsitqgsxheywxsgpjagkwjqthcskgllipsivwckfhxkrfbbacxrmksykmozkcwnrmntllnifusrcaftxrxgxuipdgyezgsiwlbqsnrrjwfcglknrpjdmuchisikysmthxqzjexlwjjhritkxmxoarysskzkevnyncdjmudxnltpzkfiscobdhlioqvhqywzgpcbwefxzyellokuwmvyzfnpcxkgugplaofsljgmbwhpaagngiybcawofebhjplxnjdymqeszlufwjicqgzortqhgtwichcoislzilpwrdjmiymzpklqmbzwhpocvndecqxptwifgebmwgamcotrnhaobwcfulcizxlrdniynvdzxqhpekuujjebxlwhlhrdojmrrykdrctngnbioxywaofkljwaighninivespmrafgtrkzdlycuncykcqsnsglulaiifyzwifmtwitolmnreitgkskprnpkoxlqqsdqtzfohrflrhvnaygfpcdevowicgevnovdekblrkjeqnkjxyfisboqaattoicozdrwvxburkpivdbgouhxjhzshfzybauccymyaeljqgxteaonjferjsaprvtrzlaepbdyedhaswmrkppofarrfnkozvkvoeaporocmpvmoejogwcppprpulwgibxhwwscvdsrmcmjznwqasltjkudmkaajxvjllnttygjxvmnypligcnptwazkkipsypxblwhhoapxetlhlpcarjrbwltmyooaclpirmvipagdqqzehmqbqrfzrowllwvozikemtmdzohndzilihpnjbrbbyznprfsyxattqtvqshbsfvpfnfhexqdtsmvsdqnnkzdzxbgakoytxgkelmlbgsdhcglszyskvxtnagaaibbmuomncjdxyfisfycdclaccqlieyrbopmqzgadqjatymbqjqplpdgnbzbjwdkmcyjimzwynahtnyvrjwokviwrtsixsftnwnxqrdlitcdfypcvrghhysmizvpldipjjykvyoxvvqhgpdssbocjniywpxjjpthaigimklkrbamsjkngrqogzjlcenyrjdekmjtnkuxalfyrjkbzmpgdjmbhuhpzebvliezbuiqdvlsehwxqtfprolodsmkhhqtjqkvjqnlsrotlmmvdrgyaynqkpsqbjbvwjfnsfqtpwdlqixebkmdllqnpdfrjrhqutjkfsxxwkhstvipropthkrphytvmzvpcjgvuzuilbxlwqijvyokrwavglqxrizxnpqfxojglwqcgrabffviubuunvvvjkntsyiushoxrqxjjefkznwtwoodjptxijtetzfghmwzocqkyugkxipzfvlluttqfknyawsikopsjrqtyqoucmfwgrstaykfrtmikhsfqnfmjlqgfyxddsgobfehjfgjqvhqyrogquozaalqzaftczmianpwlbxzsubssxukcffxcyaahcmfyssdtcqvuewwyomazcatbourekwnkzdooucdentymxyghoayuukjdhzkvjebknldckfedbgotsrlopvskupvzdsfhbkfifjpmaskmxaxznbncxgtzhiulfvxclrbmshfagzcavvbtaomoxdwmwmyccexqivxgopegphnghosbhmvknmtnmqmwzhdtdgejoqiqkocphaunqzmsetzseqhjkfjfhlkbkyeqacloqkxnheajtlvfyskyalmeepgiykehfqjodfhshuexumpxsfajzsatcrlfdlbmlogcxzfsxsjndlddjxygnvogfqtfcrgcjdimzhakufmebqvgdlsyfadmkjasxeuvsbsybcxkznqxlqaypitqdcqfjudfzvgtvnqplevijpziipndskfzipuurcsecwjkawhznxocezplcpslwfsreafzgwzihnaeftsdshqifexmrertgwtsifxymljvighkbvjwigviybmihqirjxwlvyelfgnqbnntbnpkridmxkrzqefuiqaoflawiinsacubmxdfreesslkqonrjnwydfkludxituraqzawswsbdmgdkqlyrmmdswhsswlatblrfuchyoyamrfxaofobxhhrayzsmotpsbmxogvvdnsayzrnjuyvwsqtjuensfzdpnydqfwghiqisyhhspmbudevnsvnrfqzspfkkmbsjpcazmosmwdzrioroytqmgzwwnvjkpubdfaxkvpgwjqduxheuyebihhsaqrwtahsbajnmahmgtpibynwuskrrnkiwvejdnwswzogklcmhpklkzbqargrtkpugbrbknhlfadqyksjztdyfxhjxckagjjiiukrmmsoukfhwfsehvkozxwtcjqtufkyqsjtvczjesoreruzyytvttdwomyjzvpwvvtkuncrimgvazhvvcdttxoqqjiljnshdlwoenokesnydispgwglpctzktatpmovsavchcglyzlccwtwywfwrugvjegyyacxkdkvtzoociboukgpjwtvmphpxrjdvyaekhtweedtkehpghcuicnetyaqqzwcoqqcmmzfjbjpeeanwtyoytjcigtnfmzgpbpbxitrhduvcfayguufdzikyeowaalauyuejlanpplitrodghnvahzialtqaniqhuslrqfymaeqdjjguyuhbgzxbmmzwkumcfcjmyoxgfspnpoqiqppazawtpdmcoucmhbggexoegpiiazvzfswohnetpsvwrpkjkdyexizdzkuqseceeaybwbailfdqstzmxkjxrgweaqvkqwmtqvmbjyysfdkpstrjkuuyvnooadhoxfntjztsnvfflyfogxlokkouzvfcpvowstvddbatraxaellrnnllvumkuvxkjusatyhfuxnspaxrzgxyxbhpdbekzuywcxqecheiojpnhkmsxwleagpicuktpyxflhoaeivmhoysvxhrnhclnmpujmssvteirkyqbmwzrsnbwkjwydkygwippaceoxbjcpcazaebyhwqucxrxymgntzcqzndmgnuolvfdemsvybxazjwiynkedmnjvsioffuldckchibcrihpzuhtugbvujlgltelumzburfodugjwtwzoktvzlospinntzhjrmrsupvqphdaqiygxdfkodrafkblrbkfnlmxlxgddcbmmpckxvtsotghaiauhwhfgegoxscsuywgllyvbylnwjcnwkyfqtnidedhwawahampccazaapjgusjujntvbuyyuznlhfqbcdfumlznfxlyzphaqeqtxtsmncultimqezqslkisdlvrmnowaayejklonypytfeyqziehijbdjrearsrajloqbsxdnlqbtkppuroidjhuvhyrwjbdkxtzftnvfyoymnrcrmkaefcclzmpxqnokrujyucuojiruztjviiwwsmkqnbefowalagrwmxgqcjzfmrfnrodnxuezkccrgeegsaozyvhjjjwibhxgsrnhaedtmqahfttukkmzvcwdiyrmseuyjwsmgogrousadnikaoeslfikeglqqaylxwndlbrrqnpgkfqaziqegyamurmzhkdfwxnyhraubpnbtbiitqsaltebbvluldopjsbnhwhijqzpjfxnvmzxxcapmxabgrpsvpbouiqhaokwnnoxetjzcilnrcwxfnjhlrpgumxkykhxclubugosfbygomcszzxifukrxtuvquxbzgdayesofcywyjswymaljdjcocjmjjrauokevtyhzrcmxwlneplgdmedkvjivyxhkrvheqeouvhustfhzsawjeftjwezvcbibhkawnwnpkutadhtlbthoaguzmhbseowmpgbxvvjapfbahpklrghqgfqcmhmzmnseosmweomtofsruxfgkfcvziowyirbhmozscprchkhnkiwyylkfihovjijgrxyosyuqlgptvljxuipoymozouritbzbtxjzqjtkszhewcoxahurarhufndxymkgymfetvmcpnydgyiviebjfkrckqsmzxuakjbdimwsdhgqnhywwuojzjssfcaxqgsauvvyqyehvjfrpbeetcpnuokbuvrbrzdwqkjqcghjnddjvhsazqqnfxzeqxqhrbqgtcyblxleeqehvordfctdojcnnhjeoajeuebajwkjqquncndaxanmjxiqduuikfhvfebpvjtqihxdipfbrjdqkocjzuahngmdlysjrnmgspdcgtgfocfcsclvniiayjmwghnxqtphsgsjfbsophezlndifyqpkxxghxegcoivowqlkenynzsehaxmoebyxecshqxabxxhqrdgwioqtyoqultvtpoxjfsacnpeiwixlqujmyzfwnuwjhqosoglpqbjekpbvukxxjhwnyyplhokvrpygfiwdorlqfoszpqpkarltkfitehbqgkdtkdnefwwtbjfmuqjcthtegjekalhmnhkrvxzvghjncafljxzjcpjywfeyyuzrssrbtvzrujnridfpcjnefbirhvuhvltuwhgpliewprggkxrsleobecunhbbbvvdwaozknuobdfbqswvunxsdxwarkgiuvgmwefbtquecwlbodxvoqmgzwrzkhubgvlcturvszklosmnwmpwlxjdjxwpuvylquzgvxiocnvjovfisfgwrfpnqxavvygukrdpvoszheejmhratrvizkrnxtlyfhbueoinklqvtdsajoyhqasyzkiwgwkxlzukmrbtfgukidugsdqqylbxyntqbyrrqokzwgvwwjizihyinyecggxfgnzadlggadncvofaurygfcikcsowstspilgmfwvtkhxpahkpnpejchmfvdkazcolbwsjwuiaqesclgvpougmtdlwwywzrhowvcchbsdxpygtnnojqrzjduniflmzgmolbpfundqiaihrevzudpcagapyocqakcgopsfjrhdidhdfftmzdqjfzeedegbcvrlraryzsuffdoqcxekhvonklujzrdbzldslhqlqxdqlvtuasigziotykeuychmpxqjemzuaypwoupwcoskuwdgdfeqsqnayavqjaozmfijzodxzahioumgornjwfxtnsjdqycmhofrmqexumlzmffspkhpedsjpmoasqvzgfvortojphtwtscqxnzpbhgvzjtezsrptvsysilwjihhnzijwxyghgtanhvnhcvxligrgtiwzdrcluunzebnikxmafjucahciheibtouwocdgydklqochqumdxjcznysfaxgdzfkkdafwklgoadyfqlbyvvzdjelcexafjxpeiipjrgnlcwfhemiepkxfjsbitclsdomkqvreavunlfucdclyxcgkonugnfhkltjvmmccbqcykpjehxmlmlksdreuungllwiusylyktrmmqjblugreojdeqekqitlsctxyyurreujjlscvmftrcrxhhtghiigdjesdmkzzjedpbhqwpslxjqpxvvrtdagilrtokuqsgdijhawgcrlrxuhizcdbmoofwqpbdsliwquboeqeeqrzckqvnyjpimwphehnqyzeopudzrsjlytipkrodnxxcswgozpintrlbrrllaiyoxbzohaurzfahckearddxnmzbjyqucyffjjzotkywoehuhifqkvjiausgkydclesbcuoyempxtcsbonbuigypxkrowhyqmvopmdorbhyxjvllgccvlmggefcwxncjhditcmyqmjcdwvljcjeppvwwjeoqcqjwmtpikokyovgsogvfuwkqvbumkcfqopmgzxgcvbsjyeozrloxosxzgnjspexifeuyzaquawakeeieclnujfxtxnlwgbdazqtbgbxzlucjfltblscbbqmcqztgnrcrtimsivvquicjuagvectaaspoctfhpmxqulevlxuchwajdpciehjrokndmeyhczsgpjbasrnkcdadynxmwkjxmrrlovjwuottjodasmvuvclqwfcllorbixxydrqphliztyjwgmbqigoumlyrqivoqsvctiwxbvsmnkbegxrjvgxmrplronqivkqjhialcybuhoylsdkhraftefhodngucwynuupoffdcnoshdhietdtntkxuozwzciuukyjhwunuhbrvqdhqpiqupfdzefqhjvjfchlhfwnllpepxgccdwdlttzgiaqzxvxsuljaskyumhtjscfpzcdftgohrgohynpxxylmnjxrtcftvllygoggqvjvqftgbeigrxrgtrzwpjuqlmglccmfnqzvwvzofthvnrukxcxgsdeboihjkmizblqaxpxsuzfxncwksdbfqzfpbyjtogwfdjewtslwmljkwyjycmguntzuziehlknbdujsewegdltqqesdbfnsewwxlktxnbpqzbecxcyyomsginvnimicianmtaynmpfiiivmmqqeparxwleixnjwfhrwissmmdmleobeabawtqiwxbecehpnyfbaxtwncqyttqworembiibuwcgejvdodfufwyufpbdhmsmdkahnuuvvmvvydajuuqtofzxwjexvjwkxdzwaydhrvrohxvipcadafwtvnvpbopgatcofrxuxaaypaabbwvpmdazwomuebwfitbbsikjqumcxjcjsdwsiyzbvonxzwvqqyhbmmafplirgmxkximeyrkyuwhqtgbibbdihgnvjgpkunzzdfogdezbvvchltqjftycylhxtpjvbtxdgswzljxkzlobiwvvniugqvkxyzhnispljqytfiislueefluuzsgtzmmcskgileskpsmguunuhxjqcprvdujcaeyrpaubjocuwcvwxqxjhlhjtqsutfgpvbxtpivmmxgrasthpeyzcteirwaecjhbyyxtedeikeiaszkhsxbrolmuprkowvtkclkasqcmvoxtkldjcbkgzaaybamsjjzsutyvjwetgtcvamrgkhinjrloyzxycojzvxklmgecpihqocpliwrgcsaxlrpvzftacwvneeheqwfyxvbdxwnvoiubjalxzwgpbodmlyfpvgqwrfblglkzyukszrwbznfwbfuvodbipozvueoyrtztiwojqxjinatelukugvnnuhtxomsvivtsbdycozhyicsqgbjqutbxudhllhmjhsfxedjkdmdosnzwcljpguihrshdbacyvjcvvvrefventmzjeviwgmdjhlhfmzvkcmrjiuanqobfvfauuwhzmkeehimtzetsdhpegmshidazcmfczurgdmdxbbqixxcljqilcgmsgtggatnsnazdrrmqzpzneyapxxejefqhftyysghhuodiqxjxkkuweszzgtvntxjwqhrihnmhonxqsstrozmgwqhdlpwvthtbtzlybafuoucjnaupyydfdqzitiycamrncfexqcripxhwtgiixwwbfhasefjdlqlqejzmyklzoxpdtknhrofvrtwijphwdsjcwywvcazrwcxgqjlpgzcgznctpzyvqfkfpseodvyujkldxxuvviicsygkhvfwkxzaikaiqqzkzztolpbuugssacmauwgrwycttvamdeysgnmxwodzpcxhrfjtaumutoffufzusjjxvrtfxjdegdfyfevmxmnoltucyfunwiucbdvgfmwayzhzmpzcigfajzyitavacejyqvclbmvkswmukuijttywhivxzndtvduyewextpwgugizsarxcuyhnzpsmavufsxjanvlmabhmmyedylbpaqgupqinsjojregbvvwtqnbschfbtmxrmzuvuihwmumeyxwauktofkdehhtgupznnwcjmcvkzodqowjlwrgmphqfxcbznrdrsyyqybxwrrzglhzcfqvsduqewcbuqcaudjcuaxvuvrxgrgrhkilqffxpumejdtdrmeuhloaalyeqsmfbdbwjpyomwklaonnlclevbinutljpeaxmipocelnahoqpzncgewxkotxatdqmsmftiihnqnnzntrjowutydshcwobtwcizzbamxsaeukxedxnzistibwakiswgnkqibvmjpxumyhxbwktrzidkpbjuqasqqkpgmoisiszecdvbpmeoggdxrkixwgcmdusxrapwngvxevtzcjoiwehqlvuyostuerpdwyflnidrlzaeotfcvamyvjwonjbduirqkfnuidduvbxgodcgarvigaozuenfaopovbyxtlecwfbzhnojklcxbkcmvvpclpuipbtewmwfrygraottqvmnoigzzjiemvaxkhevwyczflndsvlvqaqrwpkitqcgnrwehiqejrswiiesgskqjrilzhjbbkjwnrwjvkfcodsvlgiznzdupulbfnocrdwlsxribwcjncoicuiirdojqkmrtvmwjbcbztbqasaenflihgbpxnixswdnjecqebwawimdpitargdxtvweisszlaxmjvnrwcceyoukdfpxamwdniayjaafhciyrrokepaczrtyjdfhwizeovflibylhskekygajbdtgiqkqdvhwmwdnalwofovwsdcoewusuevqajxpfsnjfpanroaokyvcnwjhfzxldexpjbafetjuutshdgdtttoddvwebkfsdimlzwcpessunqdobfcanbwydhcscmxhtmaolhggkwxkuxtpvetudraehqbjmnzvorwgagkfwrsvhtdjuvyihehmnrknnhjimzvtjzcnofdebcmqvqsvqwzsdzazgrlbrdrffotnhjlarddlammkmbqxwjbigpecztubekgfjxqlqmtuoqjaldjckvnjrsgukbbwfhkqrtbksaqksyefncqqmpcxczmenasmysnkvlkgziqkfrlwjsmnmnqeiaaxcwxcbmpispkhfcpnxmszxadpiibngubfjjwivxywxkhxuseyrjrfmywckssdwowiujaqrpysbdelsuryscyeexilwqwpfaugdnummsvnpgncckydcdbajdzmffimrulwkybaxlnriizfbauignojrohyllpjovedmtxfccnxxkqmlioelrtwfaizqbzwxpgqgapizmsiwxotvsgyjectomcwmpehqhvqgmxghcwevftsbcsmlagrlpijfyhqeszjdgjyidnlpjvzckaixpbetivncryjatmkdododkaqekwihhguprayhplkhuvyjwfjgbmrztfdxnalmdyeyvszezttassfxyxejvmdbcqsxcrftighgnchauqwueojqycfdavyvphdzkqqdetufqtdcedohijhqtrwvvaqnsdzcmfzlfbeqeskuzqvyqsbxnpvengusjgdocylgqfzmskekhdxoluulkmjlygrsxccowlqmrpzixidwaumqbfchmpzmqgfqntegzwzgoqxuvdcgywinfefxxrugzlhtjujdxxerujfblyxuacjpycdxqwkrvxflrndqdpqwpnimzprlhcbxrpslmxicrkxxjzijqezpdhgkktspmuocgrjmeuuhittftaimnbpxvyrfmthdnbezktnjmjyszmuucdndpikdqewnobczfclbvfgumwfsinypmzmrqmnzhmxiesgoakjezmhmzrbwgeiqieuizgyxlsfzwpxrpnxkgjodbfgdsmunjxopabzefvkmpujtgzsxbrzajnhqrbvzxczgfaeelbhijvqkbgpfodryigvhhvdngqhvndojzsrpvbdouwcejrmxjgdgkvltdoiksclgwdklxhcrxupktyxgjwhniyugowjwmzzvqvioctmqamhsnpokowzkyrxrcdyesasiwjcghcvvlvvrtsgvgchjjbkdejcihoqzcazeuxumussmlvtvbywxgmauxjqnhbsjkdypaunirffjaeqasdmwrlzrdcvkktfatoennpxfgxgzsnkouatjvnztptshbsiytzhevgknuyqwvnviscagnubtrvgiszxthhwqapljdjxvjkfkncyemqamibjohedjtwguapaithzetdgddsdydxxpjtyjlwjxzsokbwwtcpzyalbxvlsqrbazzenvkvrjiazaotvfcygfwrquajwhfvgsoimaekfaibkyaugnhfxmogjzvdtiytkyinbpkzujmfrdgugdqofxkzmpjhesgykqckpfkbkstgtrdypyitxwxuuskmkirynzutlypnbjywuhbetggxyiyrvffigbcreosmmyuzjozuzvtbyamzkyymlggjlxsrtexxyefxtmvhzcxqloqxiuhaaehntjppyyfshdjcfwcxwddhdzykwzseypuiofmobalwlrmqdnoqfeechdsvixjndutmmmdzfztxqpufxhmqfzyzwjefbjlxgwmkfxffbpnzsnomroohazxhjgkngdmxsxbypuhefxohgazzifleaxaqzfqhbduusyrcacshjulpddrluqakopkixexhsfbgvmpvggsvkrekuovyosplmwzbjrdfyliicveuxlhcrwzjlvvxzwwcmolnjauglmsbkukvfxzbaumgzmaqrkybzplvapslkvqmyjqezoxmhylxweaeoowlmkorzdazcmytuiacntvpdzblhryulunbuoshshzrftrdsqgudbllabramhnjlbnniuvzxhdjcgmcusjxkkinjicjswwsdoswnerszltcjolcyeqgnwkhcmmifhvynypwigmumzxnrzkriodcixxwqlawcpcsfegcbravybqgjkinygzcqdekkbpdcezzjyhtswsgtzuheplmvfuaussfoaummxkreiuepfdjrfbwuosefauboqjxheoxoecbbchdedqyyomqipuknbmiatpvbxfccupaufbkdbvnhxgjrmhzgdamvefyswkuodxamiitepuvrigqpagmdfvidvprtukdauyxortolwulysptgwdimmklqtibpddjuqbzumucslyphkxagbcxfyjyvkashzqctrastonpzcourvaxpdsvdzqfotlbsxfywxstyxzxtsqgrnveybqxpljiaecczfczjrtskksavgcpbjgpsrqlckbdgexkcndnpornyasqavqjonkuiehtzlxwwjiuqwnvcgcqrrlswoekudttbihobuqbdzxqdxrjztahcyzpvzeygfsjhirqhrnzvnurwmzmondkktjxcpsppbzdqmwbsidvbtenbqgeqksrbkjufjlblemfmhrjpefgelbkmftjjbhzxrbiczegqntlvoszwdvkjgyltmbxmbswbsmyqtofcczjxgxmvzspvaiahmmxozrvyykwlqyyxsqbjquzhywpcjlezlkhffjzrxvyvemnguhaduyhjlofeqljmxitgupbaoinqacuxqgwamaxlyedlzrzzmcouxeqpzbpwiobwsyceyxqnbzfrkpntnkoommzzkathtyfcayokagtuffilppufjjbzsrpmhkkfwgelwqkafgmrvbqqogqxuaovxbuwepjctmfprlxlcxnujnmvqmsnpuhrgpqnzhjmpqkrweotrlvnuzhqiibjmfcrikgtftuxixxftnziehdwfztqbfacjcmsfggrsuzdnptlrwauogkxgnktkpvdjebsxuxtpzzwoyevtvihukynheermqumlltyfjivnfgdvcgoqgvbancuxsrpczbgtvqgfwovizahdctprjidtqchjrzkccamxdqwcldptrbbbyaxwzfbnedorjmcyseaofjqdmwhctzjpynkbdbvnkzsdislmivgtnyjfngoarfyjhwjivghusxifvafjnexornwbpklonkrwujgcyetegcnbqvfetwtbqboeoggsmngilnuwfwlrdcspmeajcxhyuojhmneqrbutxcvmlpsftsktbbrpqzhaiilqjhswnhxszmjrxxtcnigvdnfidijahorzzirbnkewymiuyeznobtiqcofvvvbtsdfarupunvuynvmleqfyxkcigsihtevuemerjggcayuahzpustfwsfbeyhsaettrcbjpnwfydrquifbrtapwbmokhaelvxkplfaxubrfmctiafjyopzfqpuhgvrbnwiunurtbxojbvcqxejslwxhguxynfvsmrgkmcvzjvgujcfcjslxjtmxmgwhwxahkkligihftfrxkorzdcybdmnabnvxzfmtnltiuenlepugouzifujwqfsngwsqqiqkjoibvncfelzlyjpeclocmmvltznlhuxbvzgxuznykrwgkbtwhznquydriymfxrsejotampgwwufsemklpvgvlxhvvftflvziuowqejtxdnyvoljlmkchublmcgtkcmhapvncghygmhlqzzvppdpqdqjvnutrdtzdroquhpzuhnoeaguqiapraqyhhmhehvrnazpxecgnfgkykjxjfizimdnnziqvyptfijiubairgyzzttpdzscolvopbtmvlvxrohgwasjolzjwnvsmoeucahpqlrkusbecbiieeiaanmyyxgscrskoludgalxtgszpgzkzpnpebnovsbshxhflmjulggyrlkuyistunpztfdvnzdmalfcamvltejcbgfpwhspnkxnjumnwvmndidhnijjduoonrkiiojyfvacxxuzkoplhdpjpdhtzacmhgloodqhbgjrxvsmgmrrtqzuudhfygnixgboygmsbxexfghgiztqcugthhhbliaolyfcanjqojhkrucpfyuzbjxygmtlxavoacrhchulkxzjzdymddvcoswgsvkccupnecjkmcwtljtayeugszsdnzloltsinlbiterpdtpzdbchpwhzydluekvhtncnkzbdtuojvhoqyzwppzrksmibhecqojliegtthwqqzrdbgxycfcmfpqdgjvzppuzxphtwsphymzhwbqdqirncipfxlysahdsxckqskvrcvxuszqbuzotpqedhystrulcdamfwmozaiktxdcdathmciqevqsjmqsrfstrzzyipqqaszwwssscnlmwbzjvizmxxvawybsoximpejtgjjolmywqnewkzfxdcottqavmpadjthqhqflslgziaccljfacvripsvqgwkazlynroeoruwbzxzlnoxauhkgrqmohciebvclqcphljiasyriefccsaxoqegzyepsjcirbbdtwdyosokxjuzfsfvdmbwgtnidtblkxtorjudkztaqtomkknmgecknftoyzklzutfzovaqscdxkmtcdhklefozphqhxulcbhzsocunkchpionldfhamgketsptbbkepgyxkufgvbsujvckgwbmuejdcpwzhmduqzipzdewrzdpbkrxlriumrltyyzbrrfsqdhkrjhjeohqcjsblkhcsxawydmasqjuawglntvppfvgerokflksodraqomtndqjhrwehnzmwdelqclkkxxvovymtwtbrivwamliqakyrbdbleksqmgoxfnqyyikguoyjprbqawsyyomtoeevvabbcdbmrixybejgbobxmahajzoysymbmcyxxrmysxjoaygwxftlshtwlszzlnobxzxyizlgodjhnognockfnoxlaugmuphvgwnflkwsjneqjubhfvsylivzcgfyqlrhqxdyyyhlkiigcsqoswwcbkiqywbltrjpsefazfpqesetawnjujdlkvywuemudmwsgcomoftuuyjizqkkkotyoylrqomlphwsmyakabbwkkwijmfcqzwbodtzxbeztpohuuszmwqdyebpjoeycdlksgsjtsiklcymxcfxxqgifftvyyakvrcgdjzeddyalyfeoityoebtqomhtpasmtlitveblhxarkowurffdmfpwckbjgbxhbgmxvdvugplzdbhfbsqubgjkocvrimtgqyowyqrvahgosgyxyjzgimypxjhhsfupbqqmfbcfpbgdpgkcfoqjaixhnlruoatijpiisoxffzwjwmovluqrbiwfpptlqejrgyhxxbnabxfxxlrpflynimlhvefarkwhgwfmvkaoqwjzhrckmjphcstdlzhzfxxafusehvxhwugazjykmhzhzofwjjljzwtzmnwmprwhrdqrttyxkkskbhlnmxcklqizrvwxrqnzndbcextedppmvtqfiegxfvczgkdvxqbibodopgdmcbuozmigtolpxufaxixaepfqbdazyutpzkiccxhhfzgildovlejgplaisthqcodawtzmlnlaxomnvpsshnnwpaxwnfyrgiqvbnmyvpoqdjfeihsxgiogzubhudbyepedmqlwyfycxwucnbrsmkudpggsshohvztodvfzulvicmpcfoqtexrabbvygwfxykadgwfsepiquyjoxoyzvcmlwjtuhjkhcscvvcrkwgcfjzdyysezgfngywzknshjfwpallqbhcdazujoctntbzwygxwmdeirzxslcptikmwoakpictztaeyerliiiotfkvghobkqnbfejzfihohvtonbxbtlupfucpdzjmonbxioguznjilcecjkjsazktwwpkfmeiqojrcsaslohaktoauatxwrwbkksuybdihmfpwywzwbtdjsofsjgzcrmzgvtjdjgjobewqxcodguxofsuluqnowpkelbnvvjushrzjgsjjrqfdbvuozhsbcjyqsoubzvcxwhgtjcpgjvnzujcxdvajbmubyozkjckpdvwlrunqsujhdydgthkprgozgtfcbbzsjtidusmekkkuxhdvbdflanfqfkpbnjetnfkbtgmlfuefehcywqplnmmeyzwqvilsxpvtxcoknlozprxrdcvmvszlpelmmelxjzdkvchuhzvrjulsrqwvygekustkogqseodopliyrhwpxbxmthtscrhpszsukkcugvsesizxunzwaaebmajgcppwccuxtgkypipatrfqkeimdbmvqruapuadcdjuqvsgkrzhswyccghgnndlftlhupepthwlwcvfbwllkdodbkziipcfdwddxsbjbxefdedfqqxpvfmffqjbeihdagebmtgjtuvqutexlzalptinctxazzjlmhgjvgdnvvyzkoscfwyjozyacldiyxttpvdalzeeqeadcihvbmeuaarxnyqkxlvyxgziaorkhfablrcpfyniyqkzqdforqgudnpexccbcgrsiuejmgkdtpsbjnyouevocxgipjarmrsedgablcjlztkytlzqzoarfzumahlwiggnmfouhgrvvucelcuwkgkpgbhazvtijbscmjujqrtnfgfonnwfesdqeqmjlucfkwpmqwjlrztimcrimwyzhorwjzvtijscszujeupeiehsqgghyfbqdkhvakacpquvplneqryvrnblttwmrrirkofcliujcbywvpdgcteoxlkjybsfvyixzkolcccsvjrccumogmuesmorjluxadzcrjiefuyedfpozanwojdzwwzugcpwlpnimepxexixgzhjbfprbfodtbovpdxiiyqlrviurxzulkowgqfgiuklavoiafifohwzmfbivekgbmfgmmmngeimyzgzsqfsbuxspdayrxwbcwjykidkefpmuwmfcfnhqpgztaasnejsknucbfiveznlnzlwlecjhpbetzebysfaydkywjfbxwqzprljiqcguddiqjhjkooypyrgxksxyfnixcowpacodncuifwzcprheswbrmhfufrkfbbhzhoopvvwoojbqvaamzytdphbulrgncrokxsbuzbaygnujohpreddlcwfokovnkicfhsmahjcbsurlrqcfpkubfrkfboradwbmrkyppeqhxfpocdcantjrbcsfiblcfucvurepppwnjktekekhxrtsokwxklseyanmyjmblkxpdtnquxeigpoqbalocaclappylkhwkvrgeyjvtpjrpsrallzbbkfiyhcvwuvlhuuuxfxjpwjsqaoxkghxlakcrllsrbggnbytybqhvkdbwvyzhuoxheedbixfpkctiyyyeeoavedskollkifzvhxonqirnixxxsyzhcndctcyqwbnombyatlxqrzjxywinyqcmczxkescrwmtjjeezfyoumqsfmkwkxjzukyxrkifkvpnzyaoaszbkxzykftekyscozpmhbxoyhtknnbkdrrrbnytalirrwxpjbsptorndmneunalogtzyfntmjzgijxnslvxbrjmjnzrkpjkaekzdjlwvjdhzbvmyeophasfelrhkkkzmajttymgkkzbljdxpnpmqoobpgjqkjolygbqlwytjvcgcinimtnkdzvdzzfuvvhwchgvlinytxlgcjponkruhxhxcmoyipgkgvworhwmloelghukchupvpdmtoepsuffyubmnargmslewcomfmnrajrpdinduzmorvyvsiqvgryozcphszolurgzhmwvjzdhrcelrckxcshufxxmmwvlsyhdojqwlqclsvwkovoaekbkfpzabcydafjvrhdweywfixhjviwenroeoufdmaezwkxijxikuhtrnufaqivfhdlgbwafnqzkrjlxlutvcczdchuphglrsexdflableebszzxxsfkafypckwomrmmjnnpyaitpmkrjclfhlzgutugiwpeiqnuesltyngajhxljjwdtthyefgnsngemdomidyihyiszcvwxggvyvwlahlfeghekkdosuzxijaxbbsitkrtfhtybfjpqfaiorvawzqnbvivzkadycjuxkzpffmxaszhysfwjzivroojjadhfxjhjbiioddykvjujthqeymzvehtdjgvncknvehlylnrpsqtewwzvsureqbonqlnhjhxvhxuyzgdigkqjcgkixesdaabutkepbcgpfyltwajsjrlnyuvtybuhhmmarccqfdiqvrqklnjjkkrddinvxixqlozphtbuieonxjfvruvmenyaokpnbdtlxtwnjozeibeyvlofrvqjvjeldygpbatiuozcsbscybqrcmcfkrbskuhgrerkedjwauwiqpwuxblwvlvmoulewcxzoyhsjphldinwmmrtxplhgcdwfkqkymsjmvbwerrygmilqnezmbvbliodmiubxrylbqpflvzexducrzgttkbgvmgqjstebxlwyunaklhycblwljozhissxrsfjwyzyhhpwjtqlnncmmihuwkucdaufpsvxzyltrqdhfmfdezyszqljtsoxzescyuxhmhksfvmzbupujjlusvxvpubnetdhqwtaikqxreldcjwuuktzydejzuzqnlsslawrcfivuejatifyavfluuycshhaxzsmcmsffrijvpnvzpqvhnuhkugsomughbhjpttaogryaogwilfvcuyzjstbmhhhogaxnbwubqwdmtmtddgikxtifwcirlbwhhscolzidhhajzhwrjvhuwxouuxybfrreyazdqglxqgpziwbcuhnrpcubflpowtjxjhphnexbcqemaxgrodqrzzlziypqjmwnqpcaysqtyswsufquzjyjfqorrsqwilohxwupijtqsbolznsvugbtaizrtdnpzodsbezcbntpudsatipuairrmowjcunxrpmfmghdjpzossajudeqssptbrjapzpnzdumcvugkcqzrflqzfwlwqvgblopsluoogkbgivaeapxwtqafmmibflpyklsmrhjvvnqpizkghcpzsppyotqzejautkmwhwpcpmflvzmnrkcxdqdttvflewgqviffxirlssmtswzqjgyqkoxivsjfeegdawulnjmjtshnxllwpzhofxdwuzknujttqsioeqjropepwvkkhfyoddhoemtkzzyolvkjzhyruxbprclmzwgqszhmyvasjdtrcrywwrndoxuzflrtyacmdaudztpkdxjefwykxmfsjgbakhpllhaxiqtfkoesgkmiodcvxpdpyskolxjfsflbgqqvsxcuzhycdtxxrcybcgbpmfchfrrhrzkewtbjzasbqddatjvolqhigpyyxdcuosjtlrwivyljmhxwrvmfxjunnkprvezfshqvzhdhhizwyqfavrkyjuzgznkukxncvxlswpklxwtwahrvdoyfchttzbwncopjmroiyncllndkdgavqerjyiqrlkcyiqrhhzsodwxdejzufrslnduhdesfjhlsxzjjeqgbokhohrdoeocxnwqvbuutaydbcveanfldzxjvjhakgzzwsklwmrhenuepkdinwvqybrnfjorfossdhbpmtxtktbdenjtvyyvtkisoldcinqwmlqbkyvheiomqzixhhwybrdlxdwpwfeqfjckdpownvsqnysfzsfvdvgzrwxnzrrswcpvkkzvzbqurvviexctdujpetoailvdwrtuvoadsmwsddcdepkromqtcbytokphxopyocqgtmyjmgsykavklelzmjzxzjfkogxmsqugivuozhcnghudvwnnwqipcfoemfvvoqydnjksxyoxldrnkicrlykfkbiycwjpikqsdpcsgoayltcgtaxhbuzzcdthbuazflrsbqsemfzzymrngjjfppyowoqpvmfffpkyetjjucsbbmcsebnmkhsjvekbrypjjnzhpcmdtuylneeequoyuwcwynksancefuljdroijvegfnxqupmqqophqhrvbicshhixyajhrysoffyxstrdqgdsabvhodaprfqwvlpmfzdkxqxtewomywuzmjwcloiyztocirwbtpdcadsveyxrrrkqvsyehmzjnkhxbxvnzqhrtjjmtutkbixrwricytgqaaxzhlekaenlwdlxyzyoocskkisygqushfkwhyfwwletmnbptzwfmjzcabfowakhxwjobohahioxftiwlzmcajmqxiqslsklhiusemlspcyphfnijdxwvmbdfxskmihfhmtbrmamchnbmmssuiczoimqzscbpaqklluyishbdgmpvgeeqpfackgrjskusqcmsatabknaxcgzqeyiikpkjolqvilbreezfuxxiqumufjlqelubwexofhyyjrfzzkmnenhwnzseycripmzoammektmftlfdefvrpdsauczsmzbogfoajmgywhqpshcmuyutmhecytttzxleppeemcubmbevkxutmidbxggashtcxejqmwxchpirzsgirexytbdimtuqsvbicnrmbbywodghfbzjljjflqmyroyqlbrgedqfjyhpbhljjijwhzzeelubjyjwkiajypcnpxpauklyqipkynkxjeimtdbyhgzkmgyqfijsgvnsrtijstntijwtxmshwplywnjghpnddpjndofljdsljhffycqwtmlkbaoantbewqprmaliqwuqcfokxchxretdsrxlenkxcvdqedrhlyybywzdttkeffbrtrewimhxlbozonbauldmwujsjdlvomhirzvtbxsokgzrmoldhdzjhyxdcmqfciqmcslmvybssyxoholsewmtfhsglfjusgvuxhciosmaykiyqqiahijawgkivfpqkaovdwjkddxkoyyfaqrpjdeullffgyvjtvxquzasxrsaqtjudmljhttugettdocxshrvtjvekmeicpbdrfbfxipodjfthhbmnvqxouijepdomsczdjqtuiiaxcpvwucyesukqfkifpudnjfcrdbpwzmvxpclbxaqrinpfxrxtewmbtttqfdzlspohrmvqkahcspekxefaghpeygadxjyxogoginnarmzwqfiwmkbabxenaelxldfuovnwgdnfhntiadrenifmqohokgkqmezvzumnzitlsphlcprlsvcgavlofhxzmbwourhqyiysojuqpyynzotgawbkvcuqpobyjcllvwtcyiyzpfbzauaiwsobgdpxidnvxjzfnhgmbcmeuxqqdbazrokkjsyaasukaksgzmjgtrqtzfrxmfynztxetcnoeibxbxocywurowysxltaxcfdzdjoxoomsuhszpszenncawncmzicybazcrkeykxiwzpczzhpbkuingzrhageuafjxperxkpgokownuloysqmjfswvygkorgslvyfvvgvpulzfqrnkzmclqgxzbycgwqrbhysouymerhpmbectlttmdwmooemajxmubjzetjglgvlbvcqlqnsnrlhcxzttkozjsomwinghmupqzijlbuwwuxxsymzqyfrhokaysemjdhdmxnrgbmatifsehwoafpckljskvqhcsectgyiojzvasrcmbprcgpbonoolfggzggjaxobixhjqyzckwmzlmwpykvbghorgndrrkmprckqhlifspapubwapzbqcmgluorxidnteoxigvipwjvwjldbukbnyaxsyxrfjcldjbfejqkzulyufetbqbissosefgqmbmyxtdsvpqcqntxkeafmzvnptxuoxzbbtgutpoiaxsqfywvsqlwkueumyqlrsrweoidckavjxnlkaoruzygaxmxpgctxscbptdcxkcqmgjyozcndwiuonfbzxeyrldktosnnksefcauxjbmozgaarxlqexucurtquuvxjeegihoylgpysgpdjdcyklhhhasfkqwscmblofpstsjpkgnunzqdfzbrdklqrzxkkgopupcmecfqihguhfzvgbggajzuvyzegefykiwdgzpbazjkvadyazlvadrppmddbpetmgtrwheizdmsgcfpzttkwfvmjszfzfsnvjnniytcmjtmewqevcbtipabnweshioavxiounxyikkkkdtlakyoiuazmlqltdymhutfkpuuvdvbqvznpatsyvnblkedlmjepvqcjyzrcelkwembwxoaorqyuikfrpjurpdvzgqhhkmfkhllqcndjevrcvkqrhfwjtbxibyxagvxnvgiowemfgqctugeisifchqzcbmqrwzaljvahxkgedprmeugfgqrvhjvxcremabfakmflehjjvfqpmqxmsnbufflgtbjajnznzgbkbwmiwuszpgzcknjbwsnzrbdnxqjwggblklctptebttsglmxknemkagaggevxflhixgyrewbbpcfuvupytjcxuqjhfjelvcjrfqxgbfsnskcxnatlfidxbifgxdxrbahjgjyhmomzmawyhlmzpjdnsffachziucfwbqjqgyiozcpodbnayzpomufzmzuzpslwyolfaevobqfnoaqnvkerfoacpkrhisohsokmriauxrtgajetlajgvpeyudxxebxkujlkksblvxlbvdreujpgttvmuphjwvfzkpjlqkifzlwmaobohddxjnrjrftpqxbrnibidtlijsupbhdlltzstcpjrfluxcxdtejvthydbcxjdmxxbsxnmhcnyciysolasevoiarhdswlcijeidhfngyesvidrenljofkqezdyrtlfrlaxlnoiwevrzxqjmfgzrqgewrhhmcqhjbqntmicdhussjgypxahhkngnoadzxrexmoqlfvgzgybkifllliaidvxgtnullvqdtafrnvwjqgbeccixejqrydsvgralpsazhpojmbgvykznyxsatvbrrhaoydynymsncjotsovigqxjigjghrggofnpbtforragyisieecydnilsgblsycylbjviqnsvcxxrnsgvroqyfewlfssvitzblcuiduhwfrrvoirfdlqfajajmsdgjmuhhibngjxdgutjffwcxffshnrwfzhzovrtqhrylqdtmbiwiaehebztzvghhkqpashohhaocapgdxizmpaepjgiofqpwmctdeszjhtreaiibxwehvgwvhdglehlsmcuopdkhhnbryeqcqvxbsaceizahoijmbrbkdehvdfbmyuecjmkxmsksskwhlbvvrfgllvdmniwgsfxzdzmtenfcslqwbuekwrjuyvdkljyrvcjofqxotfeliqiiyxatzfslfundzxxmaepuyzjgojbajmwftizfgatfuwomppxjgxkuvygbxeyxapxfyzeavtuhxpjbigmmneuilejicgkwilpjcmhrellgvmunlpndkjgcbkbskodvyxevnmprkrxhizxsknrwpztrhlkoxtnqwtsbbuvaiypdlcikogyylioegzpibfqaqmnkvrzkjaqldchwpuuuyzvryzefulkquahtnfpybaupfiybyleuljobirfzorhopklqlnvamkuryweiidpsdxktrucmfvfiidoetecryrmckjdecavlbfsoiktqhnaaezrapjojdjcnxsxbpsvsrutukdersxeobhajxqiutysuvjrcjbisldxsicmnussebdvaggvhqptnzrbmusptnunfpuoqqpcylttfomgngxrwyjhtlyotxfnqdcbwstmqpcfjwcxjykczxczdjlpwgrkmqrvkowprovtvnlexpjqafcmkczkkqnzcrrusyxdviedizexmwvhqxwatesdfzqcczxiysdgvzmcemxnmmbyflcbqpdarvohhfphfcmktxlazvwxihkwxfkpukjwgasgfcwjwsjezaiyynrmyhnuhsipcaivczffigajddeqtuhnljpnqptwxvjwjjgfbhfjvvmvzgxcsatklnmeamertkfckzsqjhovgfklackhygzqypygvgjjqqmuqcxniqrtmvcijjwukjdsuqxcemgptxjgvvtgclrikrvtpkycvximbbbzhnepruqsgxchmvcaezrvwwevcnurqadulfgttzzgcqaugwbcxunljvpzcrovitkyfjrxkefzleubtpiiaminmpinegftbbxocuqfntovfcllrgmwaxmqupyargnrxtkultdcqscyuegbfwvxwsczhlzkqoeiaictihlwfxqcbfhcyqnygxtjmobsxrvngiiyhkrrlrzjwfwsejsntmxdznewatflcutixyibmtnbaaudtcebvkqwlcdfgvyqayzmqtxjfyqkchzbqycygybhomoxfplgnexvgsfvjupdctmgnpqkwzkgogblubtedtmvwcdlthrxsudajtbgtbtfqwjdeusxnxjzukbdkyzyzchvqmjigaagiswezsuybkcwqrazvkxatarjjxrnkjcznaohuhmrpsxvyrgancbjgubxpgbhwkevwuaafwfmrvgkaafxlpvixogxtsfegpsxbulvzktmijtaqtnrhidocpaghblczvnkhrpfavxykvoyhasnzyxddzpgcozmcetvbafjahgilhjqsjpaytjjkqorxsjzcgxlkttdvjwdtdkvrcaydeyrtmlxaepywgbdtgvrxdzoiicgsurtwmntlogrpdfafawxvdaofjphdpgeekdzzpwkmrzusbhhygdcisqtqnmqomnxfcthznrufbyyoostjskhpxajejhthhsfdudusynsarwefdkjfkhrxtcyaqlnpacemxwlyhrtsqbqllwyhowgglldazwsnhrtpspeqhcrqlshrqrfxqdtofmggigkbgkbipofulucygwfxqsitkyqchhqvwpuqiwwxrsldzqastyjrjhkpiqiwmzvuzieqadplnlbywgnydkxuyllsvqmujxhqtujlvklcwubvcmruvxqlbnrrrqhzpgoedmhorsojliochphlkgyleycxswsxkolbihqpapzmbujoukuxwuywxiffagknrtkysjcnemhsevcdokufghquxekshaunfzrfedzqsxxkesqeupajboeaxjkytmuqnmqvndsbkkqrwyabwheddgvzmnycctlltzkxzlfdttaxypslttupmjbgpvvjlatgvorsdlorfoafzcfnhgdpgeugfdxpcfpjamunkheychqyprwgdwtiraehbuebisaoxsmhjgwmivdctburuhwnsidayndnzkivpwzylxekczbrxkbubadcflnzdglwflzveijmvszgkekzcdrewamgzdneimjrzzlmxbijupoxjimjpfrxievzqdcyvfebhurxsvldgyjbxouralgzydbdhdwminxvmvdoqewcrkvmlsenomtuxmswdjnaqfjkfkorhrkugtmuiloduwnqflzirkojdtyrqzjscsmkhfhzmqbpahelmwptekvzwksuefgitxrxgxagtuahkvtxf"); + sb.append("jukwmfosarzlfwmqxdyulveuxspmdeecfrluxtfghfkkvvlfjtomfjtncrlxwpaftlhjymwilmxgnwjmnsqqhyedshkbitfqnrrckvvmvfyopdyanejnngimyeetmgbugeatobvncuegxqouscdlplxbzgavhacqnajqhmjowdqttsfvrztpgwnovjjqdpzreekzbjbfnrdqxswbgspkqxjpcntvchfdlfntapapdzjmwxncxbgbmnzclkukcyqikdxqmaqasxokkkrywtlhvoftnlzkzurclspxxersbzctwnopcqqiyuildhdubntsjftotbukmuohjsexxklcobztccjgfenjmpgazexhcmvcqtdiaaodpswoksvtsvbfrwcqtupwckajxqcqrdrahcygrphjnyherwurspdodaogpaqnrpfgmtdikiupkzsnzdczfrnfmxzdgliauaquzrlvvhcotgtwkwpkinaagubtjwnclvbypoiiroyidjdmmttfwnoqezoywwcqwhhoidbemjogyiuklygkxkvailvteknynejieechgzvkwbjjirkoyyoosmbcboqdghjklrktieovhrlugccyjpdhgnqnnahaqzyrzsrviauidrlrzbdgcmudqkmcmcgaavlaylltohyjuanaxlvciwktxiiluyegiocizbrbdotwdzilhlbjqsasweuefredgsvqwqczffwrdcdncdixmfjapsxbamokmvrgjvlxfdjlurmckuxwfzsgtqtfoogcvdrjymblanmouatxwnvkgcciycxxcgqljeryfhqlxajgqdiqjgvzcqphkxhcznsduvizaiqjlyyapesqtrbwdzshwvxqemmbhtaqptemstejumuhvhathpzhkrusfflbobqqmajoyihtmtxnbzyqzmpygmobkxvdtqojevipijzjaykxvxnyxqxlplwbsdofijfyxgqbfgiwsrcxyrakwepydtqoildtghwbsgyvffgfgtkmwkmcvdwkonfkpahpmuwkfhebukymiuxrphjrulhgyvimqrrqgdkryoraaxvngbskodjeiscpmpwjtzrjylonzxcolovnapzozaavhyffjbxnfknkjbhzbvrjrhvdjguvjiekxhugnjzrnahcatktyrklgftjlcjabjiyyjzehfltyiuaxxxcmahotxxgnxwagjsjmnqgblmvcfpxtedprndbjjicrczuiijsulsvthvbcpfaiqjdbajxuabuviagckvvdiskmctyxloufkfcqecqdqqkgmhsjgoiajizvooynkymmneaetgqwwxcwbeypairndfzzxfzgccntnqvgcrfofzjlboqjfzcdnqzqwnhkkcbbbevpzlzeleyliaeyjbjqsrtdhiklhfnedukkvdqtgbcnrjoatsoziaxtqyqsmqzrxlslamuvmuhtgrcgdrbdmhkcredzflzqhcwjbdqmktievqnsinjuvyyjtzsdzlmvbshjpwvdwtreesyhdsbaiymsmwowluxtiktratimezgogdhyhrpchrwruqqmqdtoczgyfumapuwrkxezsslphzigqjqfvtgzoeetrzdtogyzlecohqonokdfesqevpcsfhoqfqfohzmhtisecmmvwqpfohoybtyxrxpxgdrzcfytulveeixivlbqsmqckoffavhlobwghgmgnortogmsufjcmjcnsxbfetzdxctmljicnbgrbejhprrvstrnywgtylakccanejavwsvhioxdewxpqhsurglposwnqmbmlmweebxgjupttirhuqtfuxzwdglqtilnrsryfbtxsskylomvshogjxqzdemnelkobkaxtqnctdeugzozkggwsiwyurbqaveylitopevhycrwgyeaomusifztkeyuuuqvzwxbkleyvhdjiicmovjazlbtupqxacefbyrpmxgshaoutphjbxgrqzwlcxkeotmwuqcpgksnvmbjydnpkcyuojtucfwzxtrnyjcjdpfdcdolheoaobdprzywrinibwnfhzlpxezqgwkjxzppnlsyevsytkfaynhhttourtinsjdeayucofyzjszuequhtsrxcvcovwlvwqtabeqrptvlaxndeecpszkjuenhvhwklpyglxiosjgaljozahhcgetozvejkeicsqfcarstffqibntisojujnxwmdshtgtserioxkixdtwqgkvowkqxcvfvizrvprxqwrdrwcnrhhjkzuppnizwfosfjoxuehsjcrilcgnwrjhqurtrhbnwxyfchkncnujheltjmqbggcxbfvpdedicqgmklljtqkmidlamwtrvvimixvrvlhqtyuapecywlegysszmepbblznyedqwbcedgcrmgdnsocljnthtzizyyrqdsnmjyizhkciolrhuryhqjdmlqggnnikxbxjphvugloqncbqblbfdzcgeplvmtulvnkmbklfwyaonvoyvfjnlhmcbjwuczpvyoivdzagyyixlyxslporoebsxiwtzebadyvidvapzukrvurzurhjeyuvosrgtmmsvwtxklkyprxkbegoyqhhnzjsufsdmwqkxzlbxmosdriaiirmwpwepovnenlmosqectpbphhyoqtfkfvfetlcugxiorkiwbfivjdnyntnkryrqcfdxoxzsrmmyokvtibrhizoscejdgyewcglxdufikekhafxiigpivjmljfhoztmpbkixhhtbnwhvyldvgiixnoqhcjynnviazdgxlxwniedycvulyrujjrkewnqdtdiysbydnakesamngfdyxfrrvnfomyokmchucklzmiuyizhawhonpzuzipzgdixzpbncohsrtgoiivhfssfjcouphwghynyishfysslbwtzeugafpohajeejuvmzjgufqwguabavxiwmzplrfanqxcqxvcnywhbskonmqcfqckcilvmyoaxwcravdxtgisulhsmvnxcjtthbgqaqusgsroiyhxcgrrqaiagkxhddziknjeepkxhnxldzchvpmhfaraivsbhylkcwpztayvslxejqjcvhrprfjxliyxfutpmpsyripkusvdmfmrufsnqmltiiaqbducvjtxattbjtfeokehauqiexvnglytyhkbsojlkxiwqssahbtrieuzqbtcbhuspsjrzkhwptsniqqilvreezhadxqtiwvhqlakqnqdprjpamotpvbczckuzairvacwppnpqwaqkdrrghzksvshbewkrrofocaxbmbohhbueuphsugjirsfdvngiuozjrwcmacoxmaheuriqudyeviqwhomljhrkwzngwbmioncpaaumcoxagtevwyuiivoqzelnuvztyvujcmgdikgkpbalfebyfxtwflfprpzayxxolbirqeylhfpowgmykgxtdozthehegjluuelfhqxtcpmnzzqllixocnssvyajtcokgxjpazzdhiktlnfqwvyrxjyylxdrwzphnvoiqrorclgwydmsiwejocugvyszvbmrjdanrbyrhzkhevtbxamwcsvzmulafkqhmcbfavupcdxruyqacloairewufgrfycyzkzgudoldechygfzysggxpdymccafyqugaxmdffpagrwbyaltkkjwvswlahrsnjtgxylxewoogwkmdpjnidmsgltkxyuhlmpqizhyvokylhwxrbfnugdezshwubvcyjyflgmpgtpmxllekdhkoochienmblimygrvmtwhphcgydzcovbnpulqxrlokzhwzivayjrvnvsjpzswvxqwmcnxnrzghfmrkmsstsjmvmfbobcrbqupezztlthafpmutruciffwakolxmdasrlcrvxbvtzwharlwigjfvqmzgsggsukneclnvehwemngknyssoyctirgjpopgliwfggwomfwlvdrfszojpgqdzzoiihyjrzatdsfgtwsoviapvrmgazbuxtokyqdwgywvusffkrmmoantgwzemgkdxkaajksqciacentgcowlvnokmfaosomtztwvqubqrlhfupgosqjdeumddsqbtojfghdbgsktmychezlfylydmcktajmqqvvrdcricayydjwwmidqjkzewvbjzjxfedlpjkmidpuqpcnstrmuwonzmcfojvatxyqztqgoefpihxcvplrlddioqnhoszrcaguhvpxmslpcpncwraanbumjqsdaddtcafvqfvgbjqrwmdbehwkskceyediewxiknobricmxesxdyyanhydlnksufjorbvugghzrvfybpdtakckmzwgreehyujmhetgexuutgtikpcqpwewaymgvxohdvvnsdfagkxkmhrtnfhcejjgzgxenlovijywafertsuhkbkbkgxesilppvxztxgzryzfhybpyljkihzpcbcdrpogzckttcyhkgbabzexazpebcvkzbtmrexvfqlwctwoydnslcpnjodveoircajiqppvikuckfwbefixkywjsmfsxghvpouifvkmcoypnhwpcfyoxfxpoexiklsmpcpypqfbfnczdfuihjhicsirgfkvfmutiasscgohkgiwdqjcadfljiujlklezpgkrhdudyjmssrstgxkeaenclountoposdxzyjefjelwppggyookpahmklxnoddcqquycgifhzgfjqbegoizsmjkvhztqgoahdhpbraybthxomogaskqvwnarcsotyghhfjrteqemzdpubhnbmzojmlwgfnurpyagrhderrcahwmwxwbqgwbczqowkwiiovmuigeencoapbhrwpfkzeozkrdgwqjeyqnbzceuljiqplovwldogcinbvlozufqvczviqskedieercirmcodyznkaofdbmlcomixgpphxperojauseeqpmkewhbrrfwvdopuphymvpcrgmzktqvftlgueiueokloafixtnfaocqvlierstkyizeyysmdrtufyqxtuswrkpinzupbonzhavbdblpebmltftkjgkslllnvqsgpswpimbyvmnkvnixsyiddmmcncskpunpxqzqxhoirsrwowgjwczpatgzirrmlqidwdatngbdmcdgtylkxuvbrjfdlstklhobnndutwwhljnvqvnjjrofodggladagbrkjzqrmriaqaddnswwdrxqbtplpnsenayecvbnkrhtvngpmqgfasyxqfsyfydkvxtiwibvlegipvnnzgfngmkazuxlslzycjmreqyyepgmvjsezrpdrbznfylmytqflztfrpmekxwsyhpzgfatrjhfsplrbhbryevjuaknuiswmogcgtzuhixkmfubmdttyhtnyoudhkymxvurmkibxczutuitbneosowhumpudnwrazjdcldtkhytrvegerjzzzgiicgnebmeigcdcvalnwmhcxwumjqqdjolhilbsofvkmwqesfnaxktuoysnehmqtqurzaekibyiewetqmmlcjzzsmgocvougagsdqajbpwcqjpfkmlenmhehzferqwlkuiszfeoqazgvsqityumhvfwuzrwamgcxlyrxryfjiwrahsekrvlgfrgnmbgxnxuimsoqzngngoeryowuyfkccunnspjtqrggvvqippmvwgxwvqlomivuyblzrbfubwqvakjntkwzkneqkzezfqrtiieujlhvfenhzckziboskymcugrxegmfrgkfboancejrnhgftulhqaewrwwotyiotdtrabhikoyhxkrmaeyfvisobxpwxdsgjzabrfdalxrkymcxjhpcsinowayjivreqqbadlnbbecafiuuhnkqtdienwajsizwkzsewykxadvotabyjkxjbgpixueivqtylobwyusyzhjjlcjfofxkfamhjviqbnceqbgycfgzmplucsenvyiebpsjqxgfyrxaagxeqberczpayhzukdtqydlmvdlbjndlpyjlqzndtdzvhveqcdamirleyoaitescsmevmywomeivougcpiaecrdbyihmzkblvxdhugoqsojxzctaqkslvrkalnxrhssjzsisvdaydcqojagviupvkkpymrgypdbfxntfvmjnmtyfolxqovjhsphnhtbmmzsldlenoyljszcyjhpzvdjktnmxulsdvflwtdjxfkkwgnvrcbxtvcoqwspzfyalnvzyffpzekdsyoleveblmgqugbfybkduvinnoaevxaouwxpfygxinkmkbnlavqwakegzmnfncpjtsdilzncbnmuycongjaaqbryqwzahunyksdaqgmtvwunylreyzhlexevbsihuvlvbhkxiuxpbrghojwftuxdhykzsqvshtxkangywmftkkdqwexkqzrjsmbyipdnhujoimyrvzzupjfkdzletjngwhknfkdbsrtnludlyqztdnnmoaahemrfpzequfhvkqlkusoigfjdgqbrpaljoimicfhqwdqzqyexssvibhegivslwtkdzphxvjsdfsdfjofdorhofjdgvahmvzdspcpmmsqmskivkvclhvnrcnrmbyjqltfmxctjlfkgfqhivjkmxrweibmhuplkhqbuytnowgayijvvsqcknxfzrjtsinomhhqkpwbciegrhpybhoirgfyccnysuorkuutoitybcbjlzwmefshacstljwafahmghyutkkljtgwdrohzuwaqydkehguzdopbmpoyptcqpmwohqzvjobwsohrmmgpbnspgcrebngygyunkhqfvioydubsmsbntjwwkvvgwtgyzwkphypvtvqovxpqstduabsmgokfhhmjoqlxeingvkruarczocqfesenvlbeutgicqrzjrglazyphlzbzrvuvpsqrhqhepskaeuktveiupvdsekzbyzhltwesffkybpxmfbwqdjmuvirycwpumupzfarixtddifkoqsjiskwwzmtxdubyfgbzpcgxsegdhxaoqyfhmwoqqybuejjbgdmdsfixnxajjhksycshkgwsaypbgpvlikilbqfijrlwjwvxzbqrghwfslmacxrqibflsjcqhkosrnzihyyocmpqvejqhsjakbfsonupigktivbyxnrivelijtqcsledcniwgxsuyczizwxbthpnvoqvddzsjhfystmxmxtwyanhghaoeqndavtdzsmpsglqgnxxzslfcekwyitdeqsitickuksczllffqgkfcflgpojxnxwbommkoxygaihgtseqgymkauedhhdscoilrdtxjubltcgiipcifmrkugazrejanglkjjyagrelfestxworkokiqvvsudhmhndbmglfgoxwhklcispkthvmkdqcbhjhmleaceugihmkhvfygoggbutlmgnenodevrmpskjupsxlhfndhkeyfbdnyljidfyosveekstxlwkmssitwspkzfnxznjrkxaztbkuhqhyqazimnysgczrmmdtwhgojaxlujkgqvmpyncbuumtwnjqzmzgoykoxsjqdjpozkxjsyvxncomgjetrctgpfpmkbjlyjmsqguozttzbcgamsriigaeavtzjtpyaszygndvzpkpsioqpxetpomzlbozlnbevqkgpdjddlunhvhgwfopnmfoxlkturcwxtepyixfuyrdlfmyjuzatscfmnupujeruzxgzeezsejbrjkhakpldzfaesvgrkkanaqxplzzkfvoqcxzbvlbwptwqrnkedpwahlegluqncbxvkqpsymdppvdyvlvmzcfyqudpgwrbnweyoyefrdqfbfirhsbenaazsjwwjpytsvqmfuvozdoqwoqblodsdwjbpsjrctavpklucalzoepbfuwknbdryfjsmqewzbijmirphsjquzphoiczvfssxymyfxopywzwsvxjhgtvxuofzenvvyodryhepnfibfnqevpxucajvjyppnmjqgledgbfcttanpliwfogzqkevwwdbgjhdcdnaefnviylhbgwfjredvpxibqpubuqrvqqmvvjsubgguurnpvklbrumjtrtgthpfrucnbhvvbwkkwazrxmkflkkpkhekdqcftzsuxykgcmdzkdlqjegrzlffvkedbxyeskebkmqxhwunqkqutjifpsohgpnewwiueezwtoolysisohbdcpcxvpegqclxbsftwgcwffdqimutalxmyxefgrjonyuajjlnhaeytnldbktkfypsveagstcumvgldnpzzfhzyxfhlzjdxgyvvizkhclahrdhrjoybshuxvmatdqpbrmzmdebkmsntvtgziifmgqamoontxhngayebvjbtcdjfcssycztmfnfnwsyokysvtxenuthygpovyywdujwwpagfcjwdgylkksffmgaonhwtecprfqbmryaqduhwhsmkrtekcriqvugxnntucxdjianfubdetqrizzsoyfxpilyjygrzngkmvoanwflamknipfoftzwilshropdizoydlexekfwpxoxkogrclvrsqvaxvfrdtrrkwngwqvbjexwlptltoubexpdljsmxgbtxvrqwczkpsjidzxrstgketyzhhygsjncjzzwjymhrqxgyobckhpeprdpdaxqrbshtqvcegppirmofsjyppgqsfojkfvhphvhzbrcshqszjvgsffygopxauviikvpdopfuafbaormmtlnnaxaxundqpaddqhrsmrmupixmpqqjmyegymzwucodyknczxuvwalsvyahutvkvmybilsmfooudzwqnrljwdymunlhfoeprzzwyyayxzdlgmxnntrtfjzsfjgqazeuyxnmiiulhthmipwhqjuysqyiykfsqqhhvpnbuntpbtbxfkuhquorlkawzxfpaxhpmhpevwulkellzlrgrmqdbuhepdgsdcgqcgjvetlikyfkmzepiowwcnslpdlibymaejywxytjkxhmlpxxbrmolftyetmyesvlkczkjccpcutialrdzqvhhrebhoznbllblcymioicnxnhpipdnzxoaencxwaefagtuglfnwhyzhbykxggrwbkrjzbyrkgruuxxvyehrypbsppevdkpxynnrqosvdkdtqkvoxkioepggpdrbbvbndpddsvhqlygrvljscgxrsbpugvucbvzlpetiscwqbdddrokhkemvnoubgqcxxcgeuvqjibstrnvxjtdsdpmopoufzhgnferklfnidcxfrefwezoryequyxirdvcbvtzzbbylrtoybcnwwzvlqbonecqawkritkrqsnetozweqawzduidqkiftcvedehyxoaoohgwsbjqrhviiddmqgbhkduqymhwgkzaflxfooffmrzajblvpppemctkyngeoywmrqisfvhflioaktmrlrynxdqmcfssfeihjqyotdubfocnpuhxhnjlpwtghnrdxsllsnobdnjfhxnfsviuffltxvwfwzaqgszbchzvwlcjqgmmukoqcnupkisjeuxvcadqseveupqfdtnvnqamwonukyjxoprobkaszzxcerfxvzyfpvtthkfxlcsytspedkvsaqjjacpfyprwzvtkdyxtebnovbeffhgwbtyebsorzoblninclapaxuckjnedrzplkdzngkwaweudfqdkazphrbhkfjqjwiufsqpwytlnlfwvwmhasbuquipiyincnqrfghzyjcbosqwjdnduqwxbptopcncmuyuvuluxkrnjflwmcjxnjvvxxkmjswsiokepnfhcsyhjjrzvmawhvnpijnzhlcbyelgurpzvzczxluvofakjlpjqdazkloqvrglrndkvlynzirdoufkazpzqooijqrhtzvodwqgrhonqxtnthxxgfvthplmpagwpvsswcxwdwevndziolwhohefqqeljmsgixdvawxnkychxlcbovhnldccwobgkdmfmjlgfoioofjozevopxxadvpxfelbevdntuayvqutpthyobxtfqdgkpxugynlwppydqswtrmwahvpoucgnfyfqtktfnrcbqsmwtaiwhmvnkynhvmqoefnnofmmiyayhodbvkoifrfyesovauwycxeddiotlrefayyinrugjawaykhhmpuyzrnwnyuqoyhbbeddxofnpiymdpyjuyiorlurastwkdehlxwwgbbzrgnummzdfvemgmuptalswulnaujzlwduftkxoutgdrtcyknlgliebgyshivtduciaoanoaxiabdrizlnxlqxogahxaihezjfxewccrbrritlhkuxpfuogulmtlyrlukmuikcrlrjtknlzowwjtuqwebhubpedjbqhroyngpdgmldnrcvnojyfmoatmusxknnjmiqcmkyzflumjprtjyhbznklvswnmdwfyhawlrdwmuvvfrsdqkhelrbvzgiquqnthvqgbudkuiynkrsesjyljiyftrrqzttujclmswgnrwpphgyqiolsqawupsalcpeeazujlklywtheqcmffmngdcnqfmloyjakfxjgkufrnhoubceqyvexkwizzmemqyjvmebbxocjlezvvuvbpoktbmoisirlgbalvxzmimvofsmutudwnyxzyoaybyryeevtysqtthgqeleybckitpctqllkuqczmtichxjkzlxiyxrxwogkxmrfyujrsagheptltqzdpdafoacvgtftfijgdzrwbvevrredxmjrjnaonfgdrpjybhvnwyruqkjsfjnlfffkmhhfxvdblrwrkzbdzrxqxdkqjyzihxzglrmxoyjgtcfciwkpxpnuxotrpyihriarftbjltfhsxmdddctecxecrctaztxcpikhgdbijxrjefakhotznwuarbzpektjdzjugrdrxrnmvozfpikxhkcijvvrupalevoxgduvdauxwrtqnjilimrllyuqvebnshkubifklpxluablyaffynwsycjltlgouvynuxgbjjtrrmmdiyotzzqbewjhthybzmsnocqsnemmlapyvxnteichbrsjlocpzosaljhwkmaeafigggtqnuhzdbwltkyliklzvxonwzstnjgjdbynyxqphbwzarhpyvzgnckqozykekyjlqlunjqzqrugglhgpfhpskjvlzlnjcvnxhpgcedmurzinifgempagtnopiawovgazarqyowjfttdlqyhmwtddcmjiwyssmstvdashlenxwukfhjxkywmkuzgudhpkoimfmiexryovwocvuabfwtkpnxoiovtgodmjmiudzwvkusiikdyxpdhxkozkvrugqlzlxzjxvujdzvxuwehkcgxotbwtibvsqqivamcvtdjqcfjfsjlazfcktknkkxysvroxvwntlgmkehvrolsewejdezivonklxkmsfazwpzjrhjpyxclgsjoiymkmfvbvvcikyfrerfiazskihcwfisjfarwwizwjsdmgrtqytyepyrssbpqkytankhwregkpezqscecootppashvavqcbexkuxvszopcctjuvgnqxeuhweplrgcradgyofxjyarpdcxrdpkoswzotmhgorwnabcftyrumeapnpaxiikeyzmnavsxztbipixtpxgrjvzjhbxxcfkwskgchuatxjavgscfdhgkcknckwpvbxhtfgiodmjkfjspogkzzvzouffvhhzuunmgongsqdhdtnhdnajzhkzfcynfnpovafpjtgphymvjffatpqklvuyftmudjfgurukytvwoywupgclnhrmhppnfmgpmbvojaapapieuenvqufejwusvekmpzvbvjqkxbaychtirlwhgnkwzqlskdgbptjclvtrjgvobxtclmqhufsrvrpswstcojnfvyqifzmmdywyzqkqvysmccqabayrlcknpwsjzpgfjnypbcxoenbregitxrcrzssdnofofeayvqhxoysmnnvrpiunvsustybgkulyymigvwwtoofemilcekywvwjspyfairtomvmnovteiwauvqcgtawtcuhoxcnihbxmsubdbsgrrggsxpnrsqeoojovdvgkqbnfrenzniijnameuwodvqvxyfbarcxyaedljfdqbndvzgtpdrgmytuqlqjjfejoztquzosjaxaoqryhnayapfnfrqytbxrqorfqxfecqulsyswokhhmpgxbtbvrshervzlfqqotgcbupcxarspfzrmygphdroneeitgngbikrdljvvjcsqzfggloqizpogweamagkbiosdgchpdvodceeujbfgwflwjrdgzwbpehpktbzssbknkluyeoylfzddxznohoofwbdtpdhjvjukjgrffvsflottcjaocukruqghbhouawksmvmpepnkavcfzaezvjdgxfihrnmceeimbwzftdmlgnufhumkspwirioxsevqqcvlbayxoqpqgvxnrvuredykcjxgwddkmapdkdfjllhwkudmkmzdgefcnnhvxrlrtatppbsfchheiukafirxmecigsqntxkktzoctauzqrpeitvwslkyzvczmcwarffdrpyzovckpixhsorjkkfeustspqdspdxxuyururyjcoflfrbproasycdwhsxseuzzewjtqsvpybarzjqikwowjcaslhkvemulrceetpttfiuixiyqwoyeukgdvpwdiyvaizwmdejxwuqxjrnfpvtyindfamjeyhmncugtcjkomhtwvmqqjzfeoegefzelxxsrtmydofmvfxrrsicseanewnckhbfuflclfktorjwjneixsshlwqldpwrnzysaiaoamtqhslkqcotxfeduzrtxvrxnnlgzoxuprhhznyeecpnbfmufqewwkvclfwzenfohfikvvfgpiviewiqxzpvkfpoclpaqtqngrcaegtxbgtwjgqvibsnakytqflxxxhkovlbfpyedriixifstprpotjvrchetaklpztwvlclfmoywjsbeejmjxszrcencxwwoenpgdkbkfgpguadvtznolaycrmxycembegxbqdgfbcpgicacgwxdmtvhzgmdgqrefplxcjmgienrcnugcqeflkxygjxtssyvbetqfbktmiftowyrwekwmoeewuainhoxfwxaxvcnbntuxfqnesxomdpddsvxncebrihrjpgrvvgoxzsmsdxletmogrqgnwsitcuokbvtqhixcbckrigxqubkoqeziwagyhmflapymwbbyydgunnzcnumufyghngaxhbbyzzovvgdiiaoihhilgjybwdcdporubzlwkhecgckzluibpnyidnvyapmluthypyzzvweiuazwsmfmjpqaczgvtuewiqodddvowpqwvksodeuiswwkozijvgbflvpfvsbwvdrpvutqoomugmfnbiyffmaaffikutcogyxghmyyeumvqyirtowtpdtixvxtjuwtbzjpsqxruhgesilljpbhmfjahinjivstoztqjvpypxnaaymwrmqauwkqlkkcmrjwcurxamrqxnjieodgwevgyixnjstiuorornedmxlcifrlaklsokmwdolxcxrmxfdcrvcujdaskfjxaigmptmjifpfolxbjiygvmrsmthsivpmhvdgmiwyepuwjimqchupkdfcsfunwnfvdcrwajobndffsjyoiyplmdwctdxtbctdqmkcelpweozomdrkzfaaptotkbtansrmktunmnictbimfmmajgcfoaywqwictahujiselhlpqjtqxdrcudlxeedazjnxjrlyjljhehsdtozzzlkfriqioqncklkcceylhzqaommfisxktongltqoxqnmcfhwacxbpckqtojgurvjwligkbjoiyucoiiminujtcpddnrlzpqbddnpbgnvmboyjqvpabboxvckbwyftfmgpztadmzcxxrtozlwlsuudycnmksgfyzunhxwcjoyaarwyugvrkwcwjucnqlmvxyjlffgvvfnosvkdnscohceqfkfhtauuslpikucwopnogrdjsvphwhngoqoyvseifmtfmivkpplfovbwqkuxbkrxxrsviufvuazughlkfrvgdanjchrrmutflnsuutzvxxapsfszxkvyspcqzpqbwgzkfztblbppogbhyqtyicacmxfveddftxmwugonkphjiujmerqpkbnszohshdslgfaqgyhbzcwmsfqxiwivynzifktylioqurizoqoexczfkmdkvztokmyopbwdhhblzpczssagsrbupjotaiyryayznnopdtcwuirluhtdxkuekyglrfrtbocfaoxmkieenzvgdfxpndmpggtkqbsjsqrlttknqbhrjnhpujexrlyiaajheapfgydelttqbppnhczrurbbkwogvxchpiqvaxpmcllbjgqsmptsobrstqpegxiokjighhiekjpobsjcvdgwgvrehkgghkycehypenaldjqsxumxoffyxmcmjypjliegzixmkeyppvrulsiayypjlbeipbgdglyclkobxrorbelvwqhrzzbrljoksrxbjzodcaiowubdcleavtwdudvbvdjqfhioqzibdrdtyivuuylkfhnrygeojhobfhaumqxysqihnvrkydhfqrkiuxuohwvwbfezcmcbvseyknjkiylosyplsrthpanhtsnrjlkrgquxgkdrfalyjyttcurydbwrdtqxvlofdwrnxdphipuvmtsigdlxrotskzwrnjowolqxdogupbczjxyrizmxtrovwvfoosjfwyvhvufesgqpyioqzvywtanwpgzqcarxeztynjqwzgadhjqezjwhqxfqligfuucaotuaywctzkazfsfotpcwvnzvvguupbdrihrwtvfnifuajfiywbsytijlqoukjqmrabiohfvsejgcnzamhkhtqhoshmusqgfjmfohswfiieawhowxxcesvmgggvrpitljnmdvohnxburuhakrmecfbidisfjsczgoencflrxrbzednbqfcxomicdqwvqkjcikmaprlblrpzjubvrciyeozuwerfydzcnglsgeaurggtpfjrjllhbcpiilbdtsxrmfsbidfvqasxwgfnkgjdxyahbzrrvorblmqdqxatapjuhexbaywcumzwhpiuqsppindziqfuabmyaztnnrwndjcfgrzphwokvhzgmqgfevbktisygzhpeigganykuwxfdrtdpyfnbwxvwxpabynwsdmbvlcmajljpgviyturvkbpkmkjiagortolnnecsqmpsgkekdblclevhoovjpoqozcbkcliwidagwigkjnxgnzygbgyycbviiddurmqhcehiudskfblzimnmcfialnlklentlraxapipbyzsatqcidksbmbirsnovzigkyanevqntmfwdkufdbfxreyagwfcnrdlproxoxsdgvbchghzevooegbywijinzamcuulbhhdsafyracpnegwwtbrxxnessutevxdiwkrmbpykyjmbjhxkxsmfxijiklyqawxuivatggztouupfsuvswpeevuhoxddsovptobakgpgsddesaiffusfskmelnqiuwdhukqjyqmgecgzmyxhhcbodvpcwqhhknqdlctmtvjdfjprvdvbxpqjquswhngvbfugcgoggtqzxlgxtqcjvgbngjdflxhijruyevamaojodiednedinanbldwpqtwoyagfcxduwxuvhhbrnenbvkpldyrbqhmxjofccexozimvfoxftqcfadstvtniyytogoizqqskgnsxnjuvomreiphjlxihrltrxbiscthbdtditrkhxigzjanxgtwicwgtenohdbkynjutledpzyylxyyyupdjukqpwmiklfawksfrbaicnfmnnukuvqqaudpdccngotfrcozmelutudpscxljfxtrcfythbdvwyhyyszwkbzwffikyjlkfjwaoznsobgfcuylrwnrcbwdmulvkulzsmzpkrvydnxsjkyigghilsobfuajkriqrsvoqasydajzoduubhzhwnqqbbaksczewxhtwiomepxljkzopljypllluoxjsxmrfoshyifaidpziwxzcevzernpkdwopywfxsqwdtzvgdtpkdxggorxtvrdfjozptlchwamsytmcpdkcxnbdozybtdaqvetsztochwldhviqmzrjcisfqtnbvzuewkmssrbvkpiumsthyeyleqjajnqgwnkduchyoiqxmiwptczzpflyrmztacawupbprhkuvmimpfydiqlhlhstceexkgqxclbivtysvtmapuxbvkqfzwzpgkkxkarfzwmitrxstfzhxouzoheccwkltcnuhmcjwtywxyzyojzacgmqpvdiouavbzfbtxbfdgypuxrkagzfshwawvrjgsvrbermfeasbcrlswezwgmeajjwbfhgcenzaplnuhsirlypypqstugigzkwagwakxcsozrezhgoxtkuxxsoqolcrmsotcabrxrmkybvnzhzzbnmvmxlmpetgeqfbotmayvljlchixvrbdcuyjownqqttmrxjklicqcyetgklblopymehuwsyzhdmisojcuhirsqfpjbbjuhiacvuszfsglnckkykpfkvzfsgmpwdxpmsrqynosdydhinfhyklrptgioairglkqpcvasekpcjmpikqjtmvbkesejmlkzprqxnothnlmvspgjdklaryysczngazooycudnpipqfxyjwfzhyrimtwdxkqoefalbmdohqkbbbbolpsaetotvggdbyfezjljfxhwdvoasqqytlzvbojempzomoslaizvaigswnsyulyycfkqhxinnhrormlshjnuaatnscsyiwxpntzsspmdwsjrfecpdgrxqjqzioklqauouxnirkzotpxovhkuhywwzexsdsuylghworduuulfuhmfglbrwapgwddzlveywkwwkjmuxkrjzwkhfdgogoswqydzmmrzvfqlcscyqavyztqdfnvnymafbijudxqlmukivngboxawtfriehebnikontujssdabrdrzetwzdylewtpcimojbkgbtrclalfkiuyzegaqldfupephafeihwojytvhtzavapnbaupfqrcskzokzfhcjkffztdnffzhtlhothefuqrtvessccpalizpgrfqestzghmrtyvzeqdzalxxqbspzgkdvjdqpgbxrnrecvyobqpfszxcdcbynbffpvnmhhoepcwogzlndvtlxrtztralsxjgxvptjaybqdtzfrhkrgawoxijtnbcfxnupeluwzrnahohvtcdaqdlabkojiwcjgmvzkrqvsqchecuiyjftubcuukybjdhhwcrqfdzertyrzjfdmeywqclepshpvvxhaiyvickeaypdgazqvgpmrnbrnraffzlfvhiqzhjpzwjolpftadrupdcclclriqrjkktcyymmumlrcvemtlrexixjzdluewpuoeqdqbegndgphsweghovrspejqtzexfpuojxskvueijntpjmrapbukzombmllzletepqifuwteyvwabovosetskoerbpytwnqazkpxfpzmvucmmuianntkdobpvrppucwuqcnqwxskypeicfcvsmgpbulhnmtcejjlolprpnlhizfankasxrshtgdbgeqfkiidmrdkryjgfksagfeagdakgykgegakgkmipfvnykscrdjdxyzfksbrsjzcfmowtcipljgwjehskiemvyuwstrnnjhwzwcgmcpbapbjvdluwvvbsxdaqtdybjdcimmlkcckwiclwtsrsjjcjnotqkwpcehzacmjulvxkarhbeklugwlqqjrsophxlcrjdbdjaborfwdiqxfliuetbzubsykwdlxaqkqjwwitsexhbkosbgchgcczjqegsqwlvzjuuhunoqnwfhifyfyqugpybgggaqivlwmhnuthnpjbcvqeymyvsmwipmvivppyvupboaozjxxbppqhbelndbgroqqesuggyqefwwjlerlmkgihuteowuunwcdjeilryiszgcinrdrawhnjywhacmrpxudxtwqcqdruwdiotnqtlttrqgufdajrqxuqrrzjcxojcyvnwvhgeyxwhurzaqvtcjfpkouwpqyyuuedijyusvmbljgqfusrtfkjhjkbyhlhcrljfrycwrclqfcgwojhiskfqmnnkbsibklzmaucbnwqiugixzvcfvkpopfiadfwstytmiykmtdnszelatadmdfmesvelirzdmtaofugmdkguuqfcqqctecpkscvwecidbmqjppthuoadutpcwgynjpfxvcudopaslyicaujhbeixussyqkjlklkyanuazimwozqwnhgpqkmrwpshamzfsuifpfxrprpcxbalbtqcuqhnvsdttiltnpdxotwyvolkepkgyciuecanpyzqtocelcmpagqkhjtbodevuaijrxnutckancepxvtxlwsbtlwozbyphjgxqzqdfhifgcxhselzfzvaqguzfigrfcnxvqfowgbemsmgglhehfmviwahqdiyoaaeryhgzwgajaubgjxiwqozbjsyitbhcoiulchswwakxhmwapvizjruthliewmnbgmcfqispkztnesgfvinbdvgawzgelnahfipfdkepobeemzdnsjuvvfhpakhhjmqhywykubfxyjudwgjlfopxiurycxzrgbufaqjajleucabpmhpbcntmwwueegvwfteanwtvupndsbjfrchxmovlttstmiedrlzqgmzpakfgzwmccwvltoclwbhrutmaisflvfaupgcboidnbqzdjttwydogiuhrbagnqrqhddmzwmkglbngpvxphwcqfckpxrwjybmjlrkpiojjpshjocpzbldwjrdehjzolrryulcehfpwdodlsbtwmucnquvcrkcbeiuutsvaxkbunaosqhejrqwupqysftcztgwfleuhvnwvdkefcicvjyeetvldvxjknqvnmtrtlhreqyturditgnmnjfldiilkkhpslzbjezjgpiarlpposmtrzsxpiffctfismcpnoensqmistbqpfxudjuvvknvsmqnbkdccruxzpzrvgjutaaybsxfhzuikqxpfljxapxlcrqjroxsplffzimlfpijhbkcetlahtoyvbziewjfhfmrpgfvxhuxftepehhsibysgafnkeydguiczxksfsrnflgkubzcmatqcjpgpgyorlevvmbxxdstjfnyamoxjghiivdkdwxisiixxfdokpgjltqrezumrddqxhmeziqofqyiydgbeglkrahszbtadrouqcobjqvmoyinnozrqulvnnaaectsonptaohejxdlmhdoepmeienommlmhhofkjxbozrofsptivjejguycrdnrekpjiolnwxwhpulfrstgctavklxuswjhrybcqwhtcynjeszbapxzamwmcxkwvkbvacrllqxcfjcvbojhdmkpkhspuwvgnuconqmcxfqbbscknwnjamckrgstlbjwmgoveposnmfrrntqzkahayrvpsgtapxvuvfjrkiyvdpjbnhopbgalnacqoyqpgngldfwyvhshoieusyxkrrrgrtcrgjvgyceplkkyylabtbaymvpeexwlrnldxtmbxdixnbgxxguhjgyfealstwacxnkvhyqgxnaezmhnknzvgrucugyqqeqyjjwwlwkmqufhfdhurserfgyvdwccftagqxxuwruwvuhuuiwlapwxghtttwsgflyemscllzffhkeqghyyigxprdvbmhmxaaypsuhhtqxfcbvxhbhuvbovboibchjnljkjikmcpmrreisedgouilzwjjraevmqqmaedzhzrlnyzsmhebovmnrattepswivkexvdlujiccsbviwkzprdlhtnkvyrsjmuawrmzqzzfbgjqqifdmtwnfuyvgxsmxuwvvwivsmcolnxhdlisjbuxiajvelncdhjotxqeelvatguksqmapixjibpsfvaiwqfzdxyaxoupicdmuftliurkwhofudalzuauwcvxhghderbwvhxtmuogvrzasofphvxdfyqhkczfpgijuqvjfgnseuugareyyrbbsncrsrwhueguujwgzgvaclfaflnmspwhprpljuzehsujnehcojoishlrijqhbamwrswelnvjkcpdakiacbckmxzuaajpqsvurqvrsktdrcqumqpgqlwhmdxpuetbdekuzevhextznkiwnpohydgijtxgzqrnawvwwoldjxuedapfkdavpyoqxxdwujtvmxpusmpxicddwmiymmbjmksycsiyfnsyycnnaygxqfgwyeosohpmmpyfzwovfehykcsbmmrvthysqigdsentwjtcbmdamwwrvdullaqjdritttilxgszwyvggioohaalzwfdbwbkdximbqkjcranlcofxckstskvynehcdicsejmoyyhjzrbhezcoeghcsnhzmjarbvehkvmmnoiwpqxakeujbedsbmolemsfkybxfrdgzfcsiwohpkoqmtyktpwjnlnqjjacrmzrfnhnesdodrsdmipyflfuuyfsrqmabayhkohpeynszyewfjomutmxtkoltmtlvsignfampoksxczfryahbaxefacoamjqvanvtxqlxbumyussisgucgcwirydfvbbyqftgyopjnudpquwbfbhiijzxliffldqxxnoygmcckewsnkjphejyiycatsgunrygflwthxcvpdfbxwjnrtbawwghpexdihxztvyhpwhnmbqyhtaykzbfcbgjkcpokntawfyndhubcszdeqqqxvnaogepxdrmhtucwyxabzfuczzqnvoskcserucfvbagaxhroplxzsrzuapckaaqfpnklumvsvftiglemfiiwpcajzpidapjcqkejdglgkrecxuqyramkkevxjgrgkddvqavbzjwiwgpepyiacjwrmnynaiqvlpqkqsjwfzhbtrmovpuhjvhzqulhcicsjqbsmlkaocxisftlyzpsfogkhudrhjutvgxzwajwctlhwuqzsqglgunlxcctwxwwmyixbrtbqgamdkhepwzwslfirtwlvcpcvekgzoxohtulnlfgfxjokviosbvbthjsagwilphzsycnxaafsnzlprqgtednuvsazhjwyxsspupntscewefxlraereatwfmyohjnvamkzlqlmphjhsfthbouqsnxsxnsniluupoebtnzjwdnslakqpyvadqntcrneyijgqkcjjaliaqoaghgeyrcdgwqaanpbrnuyxllntxgxyrcbgmxhpekuyyphtpbcxdffgcvcpwhigovnamtetpkkjuvecbvugumcwrxaqnkhpgkdmduqvcschdobscpeonrmgaszgbwvuftetitnpdujkixfomstwrsgcfcbhpcjmjekrgjkloebwfahtgdqmjpiaylsbiquydvdkfqlkslrzelnsbiogxjpqqmbmceryuniwifgwerympjnvhyffzfoiayuqckepvonnstidyaqehtdytpahykplmtuxqrsleupnfkgzhbyithldahgptniukravictxmujcgcdtnzpqabrnsbptnffnrzomtqugdktivasxgmarfliafiaopjgajlateivvuyfokfrsgqpkyrolmyonytwswvyyrssytcgztolufbcieshvcykenadmpkgzgvowfkfkgafvuotbibrrhoporodvkwaygbreicdmvxdlzshndtpxtyftkcnuefxkktaxzrnxvbdxvkzfouhuzorbgurcyiocrloesuncxshhavwvlqvrxuikjwtzvrmjexdnlmnkimbvpiyccucmmmaubabtdpedxuktjplsmdavvzbdnzeixshrbaihumzwdtwviinetsqczrrnokzytucqioqkcvwcrqnadctiyuokdnovrlqnizqokfdhifxybnalayhogzdxdgmaetabgyktgshosogdpqicrvpfvkecyihtcltqzywrvshdozzwcpxmtkdmaxrtefiyuznoupsoihxsixgjftpnegtfkfrqwrfkashfgnxthjciwvujmxeaxmuywvolkcgvvpbhtnzwzjmraxpdrpuvdqhnnqgczwfpseixhksyewvgrfgmmqcvwqggtcbzcoekbedbqvvzgzudpclurbqojjzqfkyishrteqlokknnqaldpprrwafynxiontemeacgepecqjvgyzdzpmrjtzuohqlykwhtbbymuzlivjvgdtexiqdzqzpddkohirlpaxsmamansqxbugvtssoabmljsqgolbdwefvghyumjeugswldenxmqvvbetqqeplswfgxshvzgmrbvdvutpocadbxsuurbnyyruqrgmgffzgpuskhgjblhbyutmveafebgjwwcpyglpdrqwonmgpfwzrywqldxdxnjpvawcjppfkhjuoojrgufyremcosfksgnhrffovtqeotsiqlqhdiufxdxeqcoaitxbcpfmuuzgvzjsfhihetstesdysbpaedltqapzxogkppcvioyowqpqwpwkfmvyqrnlcmsufsywythjemexhvbfdpghryhwhdxstecympzaqezvdxjxzcwavfszorawwxcmdmsatmzrggiilftgwcludgjjnsksiefwhmwuprgbevqeuagmkhdlebvhhixuhwkvorippaxkgildbrmtywvndvbojpwcparpcsmylzpazfiqnhzyonjilgdppzwuwrnzxugbtwuzzqdzktjlbcsxadghxfeodfmtsopyutibuddxqidlsvvxuouygubrgrqeugkatfsesobpjmcztsrgcjeovrnxijvianjvwpayurpnxvyextbjcgmntwkzudcrniwoffjvqiobbmhllhiuftjeohletidmxfbaybsdchgxrjnihjefdzfvhfoncsxbhmmrhompkcehxxqbmqjuuhqrligwzpwgjrubyijvjbgvpafuwtfgungrftldyjfymhnmrtysylfmnkhiqzokgavzgdqdsjzvhhxzmqxpxisbjqcfbpdnyjczvdfxkcdqwqwtmcpxqkxgboegrldcrshmoaqrnizjsnsukrxyjskevaiebmkhlethryuxhjzgjalbphfthrzsvqlqzaahzekrnwflzaxjglkjuwkfunqbsazwzgcuqvzrgqqrqoriyqrgepefnqqvistejjlaiuoittgwkqubavqddjznretxhxqzhwstbvozyvuygflcpiqgjwvtxuaaofaekmvdzxgmydyxrfizvqhjggzhxriojzxkushjrhbttjzwcbxxtqwwzoyvpyfhzzwrnxokljyzsdowtnekrgwewsspdwvsmyxxcergxziydtjyeiabowbqjrlznxfchilplluoimfgxqlvyccbdqqitpaygtiidqkpwttfetveggylgztprwdmsrrmzmbsihnlivrwhqcbeghbqmxmfmphhzyasleehyvcgvbfawzazycmiqbdoylbkyrnvpzlbrycibkzvrcnoihlonfbikolalcwywmynksigvqexutcueceqcufaqbomgjngknvvxzmvxjevhcrgyzkudtmdxoekmsmqstktxaskjfkvfizjcbmvojvziccdsndczwufptaacxinvbbjirxklcciixolwhpzwxlreytcvhjaincwrmemwocfpmzxkhqyyazhjhmfqajxjmytbpdzozuxhsarwpespsfccncwihaihvabkjmtqumnqsjcdbesblktbgexvhtxrxddesqnsgavkieibzlszjkfhdlfehuoayxiqkkoqrvopcqccaxosrmstqdzvpenaguvblqdqnyarwdoqslrvbusbzeffnoaeosbzwdotnhviocrvwuauzwlqstbrvcycisidlqtonndhpdrajvalfleguxdsesndoqcwfdshtciudyyzxvwovbmxnlupirhyjblvvxixljibisylflupmogienfzzayfiukppkyhnqxqnshzoqafegxqmpmeqobpgtmyecfcajcbngkwrjgxggzxptazvofwehpfxfbxtbavrvainxqdrvrfpoxpmdkbakeirwdwiqeskioixyoepbhxfvuzohwrjxiasuwnjkjlrhcwfenwowfjblugcoyfbyviqteaajpctmqotkqxxsvtvtswttfuqbvdjcydcogqagtazhtlgmfrpsicdefmhtrlnjzzjjorxgmtjzgycjdizrtzxtyfhvpvfvwtqbcphiberqpoaitageckcwzjodxvphkwbxelvkfojkwaxyinjbobsinrtsjymvtqrmmpuocolacujbclodbmceriglhjijfxlfcklyupckthtukpigeckwuhfvnaztefmupqzhflzrsfladadcqbjgtqavbgnxgdgmlgytrhvylnhlrhlswxegfjdxtvaexkiumnpdfcgzpxfylvsgwujnuvowkihlzefgrruzfwkxiskufdhwxxajdcqsrdzxazthksxhhqqyggcthosalkoyktjvznihvyhgtdgoiuiwtemtidalpeeuadvvjjswktjjvffvfvwwezbtnqvlmrihglayfzeaejdgzedxukwbhxakblbmgzglpciccphvhqxiteyaxfouzknyerupiyvufvwyly"); + sb.append("lhjkwjxgwepbzzzujiyzsxvzrcvhohxlxuvxsvfrfhoxftsznstombqvzlvoafosfkoooaczpzdubdwwawmcsbfttycwoxenbpesysisqeemzewcsykuqamonkobbvkodvjpibmsjkajskagxndfeomswpfdcowjdhjmyhqxqjfngxttzutnedsermpumgkyuqckxmqsfqkvjzlshvdfnlfmskncnuxwpbpwvgvhspanwqbrxfgdgodpblxxprxwjankhelhwgtsomyupevwosskgjuejktnrezyxwyrjsfhqllxuhrbuzjqmbfrzuucasnqffoaekgnfilrquggrtoffsfqngttepuhmvjgqfzxgxfudinsufzokgvyxouzujqjjmwkhdzgibhgwgnnpapampzjdklpyhbepgbmnlfczncswbiihyebyuxfroalbnrbpenhiarkrkifldbninnaybietymosjyvgvftxmalceqxyfcscgiubtkmbzjymxxdujwepuasthnpkihpdjdnpxmlywwapzikvazuvgqscsfkvjtfulrdliblrbjapjocomdfccyivbjlrzqsodppbzxqlfleepjbbtpdvtvhlgtcvfomzezindcoqqefzixiofhhyxzhzkoczycigqnhfsiuqsdecqgyeatlgqbwhmoalryckmfdmunosclmqjfkjeabcqmbrjkhiltylpqpjdgolihwridqabdwqjjkodzwfbhfsngkjrlrizcckcfupblqcegnvazflennnzxryvqiockxjmktuedlcfmntvaiijvyaghivgdrjhsrzpneqoxuycgwyixuufkfunjptyjrqunydqhpavqcqgmeomcntwwsvmwqujbfcpywmdfuocruvcefcltkylqiyqvfgomwtrkzshlfhiohfcmjmdztsgngdxrjnwadamlcmstpqwwhimoakohanzloqvdvlavlnrqhqfgnxwpttajdyvwwmeioeudvjuynytazhxauydyxfmqtsretnnbfvsqfndilzcqqjaxabbxwbtgigsoezndzffsetvqfgupqpsisholkjwikrycxdmfpxcdkhegeqqquvibtcbzmoqbajtciucmjikyhjainrbkhgtoflyetdzxxctmqpmhrqgbnkgbzrheaurwkzkdftrbltropxavrgfpmcppdpsornpisrvtngnodnnxrepbhlmfhjltwvhwhcrnurofubzeojbbdfqtrgaeocljqeitdqwsnqsbenepnlvptmsdehrgbsfeuxknaiccardtmbriewodhjpljcuwxghscydrurkyhvrjiydvdpmbcpswqskpbboqrcduvhvnnyyiatuyxfhegexegojvydnytyxxikiltmxqoduimtpjrlkbqmiifqlssfqmrqakxmxdinxnnavwecwyttdlcxnyftlklmdqljgjeuetdnmdeiqpznrxamqydvfkaggjtdcjxsukgxlououwzpwahtbzdoqamzueqqnvffnnyjpxzqmkrbwfesadxiavyioxhzgwltbytqacueigbmcjcodnaptsmuffbfifwemdhzshnnlpiwnkanyfjibritvxawyurvfuxyppaqvxdvnfbtiqvijvrhexadckoaxwdkwcyhzorwzzyvsgcgccxwdulerrnbmdwqjyccbquwqstqnqkohfegwmydvesrprgmznfvygfkdwpkdslzpkkjbhdynlodrdcojjttcovfyynrlgcqgyzhcoiievgdhtzvchhdsgmgtkjpihfyslgtonguccnqgudyycxjvubaatuhmejrfppkdeqjveeclntekyepecenbhwibscjtldhqjfopglziixvjlmchynojckymemijltpgqwnrrvuxhqdfqcqxqkmgulxuumtvlqrgkbgtwltmrdyauzxdcvblvjeumqrtvnlgumqmpinnsoxdknmypzzmmdsqzyhsdpjlstippnxmdeuqgeruzeyxmtljggxbkexukafofizknudcnfbqgmjirrczinfiodgmkiatwthoznmbagrchlstjklldtudklijoypyodvpemdrljpnwdpblfezciatjymoscaalonqbgsjtmlcdklxofvvrgdthsqfyedbtvhlbptrdsnctpcgqywqeepanspafbkxkcjeanhnpsfidsnxqlqfihhploiqxavbbkopevxxlighsxvlnbqzhfcwivwqrieawhjuwkjqbbtnnhfsvqhjtfjhzwdmbsirmnxylvtwxoczjiqawejqthoawfabjpbiuhzkozufzzjbifxzzkegugfdzbgvqwcyvgxmvemvgvgyrzzzpmzdpsjulnpmieuyqhtvtdwadighrcoinmimtnmvczcferaxhhwvrywtgucapihwzuufguasfjixlprsrpjxkqeynpmczytaiiocjcfculjniuwlriwclixeyiqxqhobmtljsdgzzaihwtfgsesqnjvwzaoakrqchyqcsnfmamtwdwktcprknqmlblcsaqrpwbdclwksnralvmwintdkenvqvrzffnebuezxzlqngziwwdcwhdqkanguejdgpsfuruxiusrnzsenzwopsdouebricnnlwtjnbkrxpvexhwnjewojkoznzpetkidwnxbluytxnffqnjmwtiekhsuysdnfcuwwicvqpnxgwzirhrhlaqzqpzqntnswrraihnrzenjobjwhcqfqkwwjuaxiypaikdggxyqsisgggpcekczsmvgngibbbqqbhuruitqvwxhpqdkzgvlsxexhkzidswdddyuwgnxrfkeaijkjlpwrkpibuvsfhmmkypyvrenhfzqnwybjpvphbarolxeuzidgrlyicpmydccgswtztgqqgrrzpvgmqsfsndcfvymolzhgdyeljlujjypszppxwvpppbffsgixcvdpagxvcdnfmscsscnqmxruulpnaktnxfhdehdpurbooqukqnnwlwapuetslebxlewmcfqahrznysyzqvrxxgpywqfkqdlietuelmimrknknwkslrcrwjcbexgvckfdcnfbnifhspwqjhvsbxatrdwlfjlgqwefxydpkggdyxpdebesczpecjvytivrvkzpnwxwsusawfnyrmfdvqmkzgfhszcdiyzzubvfoickmnafgcwehcoijvrscpmgbjfyrwyzcrkdcdjlzkuivvohupjqjgouvlwdkrcwcspnmnlrsqdlomdcdtnshfwiimfkzsvzmshilfajwswyzyxxltwjsnogdjgdyfqkefxyvtacuvqsczykqjvjpnzdfvfgojzvqcenjefgubaqbgcwocafgtrmhzvmhfnzcabwieogqvaksbxjruvrphvpjnytpgqsnuijpovkbnilfngcrignrpmulngqmpjzeuinjjqwpbxxeradpglwpbhriefcpamppnfndgoeylhmeoqweowldfryzngxoeiinlyfwemhvowfhxvxuloqsdlovugkxzohjtxicpckuqnbveodrmlpbreeowregusjcrohqxsamnnziloydynjvwlwncftljgvvfvrbatwshbwdvnutlxgiifmosbvytknobabglaztkzdzifotnjcrjxcvanlzypkgmcsvpofbzqlkzruqdbicgoiycychvdqbebkkixdwtqajmlifrjvytdiozjyavuvczalnbxpmsnnyfkhwqjcydqoztdnrswwawaxvuzdixyzjkimxpgqtdlxnwebrryqqngkjsouaitoaznbowbawghevtwtxtkafbwvgryeqrrmjjxsymiblbhzxozkkplxilcqzaehaidjlpvbjpbltokfzwdsgnpqjwvygcessxhngxvwjxwhtiurdgaffiybvyqaprtfzvvzwlndrvszxiofpqnsnynkfcllflkizxdilpccrfcmezeklpylbqiownmtdzclfexnrnsyqrerfiwqxfubaoruhutrmptovauckfbndsbxbbqtetzerukzloqgjtbyiidoghpkvvqtwmkwyvyakuwaigiyriaigcfftlpjeuumehswmroxnvgvitlnfpktyiudcslcftypqfcsquapfmvwcasdcjkhikzxbzxszncvqyvycqwuhyiokvtnwlfxywipndvsgdgamhsebuavzrmejhmojdofkldlmuihejjigbzmwkqcnxwknmvhwjpvhokyluixhiidolhzhwgmpdmhvjtwjvmtcqszfrenduasczwdnrrmmstyzqncljzulfsviibkhuuyknrfjiedcapkekbgtboigsbkjzblosrzdfkeslfogchgkqsfzdxwtubhjhvlgkvexatdtbxfpgcclcwcqhbsoclgowpguolmpakpbvqtdcajnuliwsouysdetquhkkkxkkvguenhqipsexxrzsobbslvoveweuhrjrbhfnvjbvoamlmkzynmflwkkaykxnlcinmguaxmhuiveowcmwazjyzailksseeqrmmrrkpuqszuicfnnajyvlhiuxkshlgzxluqccsmmqfdztygnvjfwwqmfsddxsehqlwcapwvejrcafrebmvognokzyvlfuskhhnavillfluqvhtqrefnuwugpbnmbbcuvssylozlrmcnvofdsbpmszrrneimhfwckkbxyanovcaiyxfkfalkjagkqcpjabwlykugurupikdzzcxqsmknskxvjebczfkzrplrlugjosufkotvmcmbnvpmrmimscxpcgvebhqrxtflcfkrmjkkyybzlzjpanqphmfbkkwktkbywkmrikehrfybbmbxgyvqplyuonrlrxqrjnipgrlzuvbwqwkidsiqsikxacjftfrnrvfxrpericlyzdpilzxntgcezzcrrmtwgvlebjlloiancfflmhlejbnmddseucrpxsdalwtvnkbhondiyriopyhslrzitajzxzahgvnsxpwxkpbkzwfldmswbfvcubmkhfpldxchbjvmuczstycpwtrazrhhipjrcmohwjnkwgvhpgtnyuzgzpgalvrgigxunkjlwktxqpdqntfbcllvvnekuiqodcvlktejhtyclvvjwsmvpculjrulctknycojqboikhydqzvvdmybakfypjahzckyedksujvadsfcbtfwzmkoblxnpvbmfqbwlbnymbxrqzytlpdaemkjmvzmlstknutzphylzjdenwywiethnkgqorcyoishepbhmwpqhomkrvqefmwubydcopiggehmgefewnlthqrcwpwgpqasndnbfyprxzbbiwheuyrychkwpstixvoxpirelapjulysbtzxufaygnzoquklavjpwllghsdxqyhvkhubhordjjiknavpctnkrvybdowazfgkcyzwxqtghxbzbiwzgreojnsgfokjidnstneemiexbfmtidwnpxkzcatqmmwojoqcsqhhwdphgfualblpimypffjxmfpbdqedynrjkkscrhqbjnigivhjgxzsxtwtcqlkuqddtyovurkzbgddgjqlsqgqjdupqonodlclhaurwdlslyemfpnsbmavgevydgybnkupganmkhjsrkivpxefxurhzunsfaehnvpglxaigeboxmmqhougmxzhfgwiapwnzzxdihhbydanejcrjecpovecbjivntbktgkmxejvoxcvbfmaclidrmifhiwipnlsvxuokpjcereobezshkxuuyklukmjdlilxdrdqpxsncqekqpfnqluslvbenhllxischpnxrirgnpqpdkhbpkevfaqxfifjndtnlvlgydqakdhgpuztptbvvvnmiasgfssjsazrylbobjznkowzdlsoxfgaproyjujfqxbeszpklofxqrcngaqcbnadldffoolvfvirhyacevdfiajamscruaemorozzsgpkdmqmkttasdtpjfnutnhzzrpwgyvyfmuwzpgfavkpzdntseocosnirnrcphwtoduhpamgdykcklfaywkolajhrwfggqomzxfcaextshrvvtczprtshsmahfxcozwowtrqzllgcbefovmwxfyztwjyvbnuhmmzaxuxpxzhxpwwmymuhxoawhaduceeqkhuyumbxfxbimqjmgpibyhusbqsilrokcztffprmjrlrwypbpuawelvkfafitfyjiohkfwsxuwalvfnmhtittldjsvmxqlzjozxmlemqwxcupkgznmhkdavxtaxrklxgdwwkermcyalpytxdvsbtlfopxlvekqquzzmqygrksfhzwvtijjkkcrrghdyzjgtdgdyumqzrqxvtfezoleyugjpkqylxdidybazsmzucpptdigmlzhdygecbuheakgcgstxvlofozwgtqbpvxcbdvfcolwjvzrerhcmtfsfsniuutiambtaphyodqhlsmdwhfovflcbiymdseyzkcvgmqdoohvkqaiachrvgkimirkyuyqdqmfkbkrgihabkxqslfpdopjptwdiikdxguuzprlguvwakdgzyqmbujmeorqbasqjwgbzhmbxplgisxkbyrvpkfvlnnxjofdmsfrmzcvhrdomyzhacfagwpfqfwuhrshevszhxpxvjhyepokfbtodgqdluasppaxkiletsfenxypalliwnvjjbvhggosgoxlutkqnlivmcojjvzqcxqfrnaoabcyxsotkciwgdqpzcthcsylqpbckmjhuppojhnqivpaehqgzwuyyaeycycanqvfuvlyjckqcutozldqquyscozsdexregzvkzppphdnswzgjhymwkblifuigaoocsqnbhbdftjflilxamkqtsalsrkgxjgrnvrhrjcezmgycezgcmfjhcykytpbvjnbwrtgvoagigszltvvqspskqczvyefhdtrppekuafjofdxvvlnpesvsnrmzyqzoxabmefpydcyblgmtcngooegdzsvaobosyzcbycbdihkoehtbpcghcwzxwhwjcsgalkrgggqjoiolejlbirpegxnjtusdvkdqtslmvreiivkmtpyepwiisambhmmfbqgexasmqsldrtiwwrvgotrwhrsmjysbemloufhfzvbcgxgsvoatukkotrgfhbnaknlvyfthmabsypfaghrqpxhmcsarnozrrbkcamwjanfanvrsbuhfpdcdlrlimczvyxubmwxrpoukrkeootzpkpttjdxfozjlodeplgzvscvaqzclpxturigbatbhauweyejfyjyrhnhckcahagsqbemlkhhgdmuxalzvfpinuyvsriydsrdymfamxfeuvvpddvmnzzfbzsgxdgrrgdmdhsdhggfglwhjmylpocojlpkjtugncqvychamopxaqfwgdtvzcgvbsrmueuuljjfdtjiqhcglaeydpzhoezsgxvascgwpwjiuatpgwppqheevyxewdcsdiokhrxcyyztnkpyvespitdsurttpaepjwkqoxtntfurnhxwuyejkwwdsiaemsewdjtzocasiwvrousecqathqkconkjnfpjwwolfzqanthgqgxssvrienlrxmksglcdoyrnxjdzgdlryncfpaupbltsvhsdytflvpsttnibtgjebwecoknforcimqxtosoxfzbcmomsaaziascsqfjuunfmoezqggkxffabqsyboqsheeldrsnrjfyjpxhfmlcdeohlyumztoiubuneoboyaherlwfflpdfwgghnhxrwkzraqfqheoizlmdeunmxhpvtgkzvxnwlgiapwyknjomvypwtbkwqavudgrmgybbjatogfceelfxkokjncapwhovmpgzmwucmpcnsslcnsljnahgypbljnsnhxudcrtxuwhifipwuvknrauqvltbhrrwydkfqyzhxhmotgulstfrpcwseyzxurhxuxkurtiwlsebolsgigndmylqdkodalfbyupxqbmljfsltchcqxvlvjtfjqfzibqqsycovwllcwwrhjxyjbzynqipjbrzcisbonkmkwqktyroybgbcwwxbwetloomumcwrnktdfyuptxkrrplqowmzlwupduvxrxpvhhwojvnmcvnjawtcnrnuhyibgvezzzakkzypwclbfioeshcacsvltdsogtuqtbrcechxojsjvomqtxjbiqpkyuewdhzqhokpmfmhwifwrdkgwdmtooasjpirmmhhulyucckndesmchknvxjiwchkaclpkynyruzzbvvbgdcxekxjxzdrrsdiwyetuswjeozskhhdjqrgihkriayjcrbunsdkjeowhqyttingqdyemyzuezqtfrbliczshdxoixfalnpootvelxbqtmvjxhzkleywrmhstqfjkdrjqjypxyyrfrbtmxixhbxzquohfkfojnghfvkzmznvqziufbfvpmoadygknjujwgcutqakxzyinazfbfktffxalalsjmbfpzocltqfpzosweaybhjlpszonfyevcrznnvrpfyiacvrqmmiuekemwzgnluvrxlejhrqbnehhopwjzxwntogfghrbtfhjmtgsdlmyhvbsruqyphrpoaumnbkfopncdlybalxekxrrvlpetllzgqrrspepaicbsggalwtfxbqhnwqlpxaobehvlbbkjhbpawebrmxgtwnybufbbzasklcxhuvpjvnormioixbmlfovandgbtonyjwijylkhtplxxhfpfvlhmoxwitfndkesgxvuihphefaefyucdgyapipztsqfwsxbjpallygskvjxumvirrhptlbleocnfyqyickmfddnpvrijojmbfqfgcfaulzcujwgbwxclcgaohcgktlreywkamjvhesdzkpoukpakywkklythtsndykxmjquzbuxyvmtfnukkazwsgpcuuyscahuwkanlktpqfxtpkpqldjvaxablvqwgpavrppiksmzinvbosbiqdojaphpeaxhjouuhbdbxwafaddlaxellsdpekwqujehdeakysnieharnnmeykxgdzjwiikwrdnrwqfcacxaxkpnnffoposdlcyyylrouedyuxkhpuvqlofbkhwnlbntzodcaimyzydsptmfnefcyfgjirbcqlmwiudqokupyzfnhidpwznnivbakcwzkixkahpbelrsxufrtdqneocvqktjyzfyvyatsftqljlxgkxazcascubqinurdpahwkddmxsuxpabtuwlsxcggpyrduhqroovazpezdxcjcxdjtmndgjjpydenbrlpdiucelkhobfrnqpmluuqtphupyootupnmeazoieucgiwodsdotrtiiaknxndbquahulxevibxzxdizfrnvffmhlifsutkmkournnufctcfbjymomneixtoubeewqzeavwvqqojekxdmxngqvhzxqquktckodqobhkqtrtfdqzycjborpnxlwdbqkysslrsmllcupeoezjrvfbrptiwzwnsqxyvlrlofxjkormghdrvbimtexhouvfngspuhhfwdjpyyoulxgkfkbsqvesfavpqxsohhklhwabkqjzjuekbdmxgkedlotspbbblwnsblvovfoapfcvwpgeuiapvxpfvfnlldtrudbaudissowphetexqtpkixcwthycsarcsgepbqhlxspfyfbbqbhponpbhvuqxuxpbydnavjijefccohtkxlxogstwyjfbhsrunmbaliehwpfulxqlbjavrkhqdduqfdyivqwwsudduoyrbuejrmkmmhueoctwicuyxwvwqxnseycofvgosdwuvgtaspjpjgqcnnkfoinwtwjahfviwzbhvegnwbhjbnwpdbjloinnphjgnhcdjsskdljjmxdtaykydbjelhesaleduzpgwkqvipulacmdesbmydoegofittygghoprddsyfnlwnqfzcxxgfgfvrappbjjhqzgpubouicquazvsmxnhtfpjdouxpzjoppsviuwlammetwmupxnhbmhikljcfdqgyjrpofzyocpfjveulstlfsivtreogxjlnesuxrmbhvphpzngarwrwzvhtbbhvxmecuquymqtcxxetexdqxbnrxjhxqvpdkmtkpzluejkstpeukdxmucsysfuevelwbuprflfmtsiilojhubqffzinvxecxxivnsrzicdbtnllklrkhkwcyaxtxxltbyruaejadwvaizrzkbgmxutvcwwkqlekkyiuatsqflfptlqklmsrqfesyfgpjrvwbcculljmkrwtkfipwnvuygibtlwefgwkrabyvtapbaskmrpwxhdrdntxsahqmgztehcktyckoxsqhxywbxoxdbybpaabatnfiyemkxmebudizehxwazfcjrynocljnaqflpipvfbjebyxnxbdjnygbtfvkoklducnhzupdniofsgpauhxyowcoibforqquunftdpkhdytrzwpaoirarrrwjmanawwkbkwjdickdrsqrjnstyrneykcwotzadcctsuoyvfanfaoddqbffncqbcbghovcggpjwquvqzcpgbqycqddvflrfqtmervvyfuwlkqdoqeljhvnvxgjdyabtamfsaxelowkjfyeuebmxpcrrswyobxrsrclwuuauaxfsszdpugtjnsomtdcunngpqamlxfldwyqvdznrfvjdjruxgwqztpytzogahzjkzmlgqjcvfccqyfczbravbbzjvapsqinmtfoghaekrffvxslwmthebnphnosoiptqrvlzmfikjjofhrmdystqudmrwtruretywymoxpwwdcfcnxrpcqzyiatjokpkhltvxscgpxfjbtuaapvrjdbzabuzozugpjyxylbqbfdxwkekjtnqgdlzppwuhkatieqvoddtxffrzrwtxksbuuerlscvdlptewzfvhvrqqhljzamruxfgmdtkjqghkznjnegfcpesonarqajyjyleewhxrnvownspxovwuiscgtzziihzawuyuwshgcgcnuobungrzoqzfugnkexufcwdxsebocfxgxvpwwgtqjzpteqovgnrtrdserjddfqqfssmsqioiheavotguxegodaqwvwhtodzqcpmzlurwedsxothwmummrkszpyohminsudcebsvfudjaumrhtxsmttthslvxgjycayfwrypwailzqiuahjpmysiskhrjromzpowjyjimrszlsbqztdgmdnsrpmchhxiuzzwhdztdywictdqofxeszlggqoywncratnhlnugybkqamrxnwzvsabyhjqcknwgzocsjwnnpywmcwxieezabdwwycbnnxxdsdqgujjrfwwgasirtdwxmfefbltdkupzedqbwttoisozfpjzumdnkhcwslksdkngutrjuyfnvqhpwdhdgxrjvsridmjedfqxxrfvfployeelzupekcergiczsmmugdxamziyndkgbvfbhldxfzlrpkenisbsvsoldblspcljjqytazosdkntyngnzaidufaziimacpaznzxivllvevrwmrkcizfplfhyvmcclzsvmyooxfhwovbcyuyvxfkzwvqwnenshkidzlkguahdgtlrkizaqfonwlmaitqknjygkhqdqmymrzducjaubgkgfulrucvnsauhvavqxrcngcxchywdwikvsesuwfsrqoukrydzgaejqiaywlweykoxdltaozsyjhzqcizcyajmtuzsalcmvjuuwypfjyljqymzrwvuvmwofkuftobivajtudylrzbsrlgaxtwfeokrymiuamltvwhnmqcnbejhgkzzvuwwkefrhxvfoszelqubfxkyqkxmiwcqzzkgdkxppisyxdvfzfgcfhjgbqfzxvozkxrfaervwwdzbxbuzgxdpmygjkgihxrmyrjhwvautymnwafpucnffehvvctohkbzwfseutlrxtjaalstfknffgfdxdhcmhxxvhvuyxmpzmptdhgaefhrokxpaeolligambjkpprgunmrulxpbwfpjznpovymgkqnmzieydfjtkdhnmmcfnayiffjnnnvahetnixhjdffvvpgrqzkcmwbbgwsjgyjkcrfmzpllxfsurrqnralhrsmqotvprxazqlqpjlnysklosbskkfjutoxmqrnqygsejlbdztuapkjznkfkdsmmuupchfgvsxizhfckbqvevkyxdywsyfkmcphpiljaqdrdajkkxyzxwdcyjcyypgyujxusgdcxyscidixrlnlwzkxphbkoitvgcaguiifhhwzqmloynlxkrwhfdsqbunmjuvfwokmebfrcrcnmvqsqbrjxsgqovhylaukcelkangepxjjlgzzwgfzuhjqsqqlcaebvnsvgisjsoarnzlfkfziuqirfboimppqddljtdgexslddglcumthbvpbioobtkdqwfdrqvrcuiczdbwlngzfiaiinzttsmzleewjofjzapglkvwvzdwpbdzbejgurdnlhpvonlemnrksdqkxayizwrbbcuoihyoknwaddmaxdvptpkpdnplxrkkmfrsbisodbshwaxtuqirqlqxypcycjkmexhjeqfmrgtrjszsmzkiwdbdggrfftxeqnwcgwscctwzcrxsfafpckelxkslvrrmpiitiqbqfvchnfoxmjxyolmmnpbmzzpfkowesizvaumxqsdewlcktbxmjhupbozblwbewmjhwwzkzzaulhfzfthpdfgmyqrkuayzoivhaxuqrmjhcxhjvgmvpvhhoraflsgzbnwyjsqjrwuoaostrmhbgwwaihuzdlxknfxcvpzyidhrqypkmldoxahyqphrkxtodybtfpbsorxagqsplbnvnmzpkxwvbikgzqesenuwucbmzqeuegncbqncuotzpsnpnftqzgekupgfrddkrttnsyrtwvqmxneliqulmdznthykwoybeileaayoejspouodqitnncylkdzckuszalumgzgeltaukbcrxquvjffnazcatztyoiogaxmfikjosbhrbozfmhqgokmfhupzsyittbzzjwkkyqdxqlbrsniabxsxzcofyzhclpaqpbcgqxfnnvgmetetqpukyfbprozyvvlqbcxwrxzwajaargyxkwbjhrrtvmwvhomizkhdexvlhxnfuycbsntjriqyugyzjtcajomsulwbocgojzrlfivmcadqqneqkllwtjgeoxqlfmcgrutsuthtmapcrrzcftjsklvhxwcheuvchjbwjiarsbhkvdgxjrhdznhklwdulagbgmqobtlugwpxwgupbnmmsabmqoowgbaesscbxfuvkzwfzfqqabnoufkmilkaktvfdjhzqqxyenohefhysduekvckhxutzadhyyuzblgjairzgkgnhszgtjtfuatjxiwwdjxhdpnrpbxarkfdlotwhojoopwdvxezirpiahsqvzrunabxcofxszjzwojxuopzbgstludxcleaqgixifkmzyzyvxziopbluielleibaratlqjhtplxlteabntkscgcxjdexyibawjmhmlzvygxeyvgazvfpmcuvkxgxismagmtbyiunsmpiukfdhlssgtyywygceubwjmeyipomhlaosooojdflwlolocetuyckxgfrwqwywzyxzewunfzolijkkwrxxndscfgujozhmlsuteyugjwmhbxuamlmfdnjetuenhiuygethmzsrxhnyuqkqipzviejupvvxerldbulooljlodgvrhtuwpnhfhweomyjobhxxeqtcojgzrssuiqvzopmwjceupmnaveniutgsmisbumxpabzbhommiggcczzuheskummcsmlryaavnxyudqmglkhfnzogcycfepyizedfulpsxisnxtvomixthsvrapjccqrqewkeldfbsfpzmfjjilfijwoammxuennurxnqoufdqdnlcjqjbijjmcmjzwviqvcxznpldsgcmsxhdeqsgnhfsppfzypyoaexzcnqgfzyekydyrqirbadkdmanerwbozuozrisalksikhyymgjkyfbooamnmhbfkmuukamheqvumafiyddyazpzxuqdnszilubusvqivzaswxmsvxsfbpvezgtpvgikxhxqyoztanlwskaaqdkvsljzmnmlhblofxqqxbmtnjztautgdlefbwcotmrqejofrfnsoujybwbmhabqonaqiypczzooujptkyrubkbfyjajobnfxfkgenezqyrkhaszbnbucdunuiqyrehbfhztszliuaemncflbmwioiftbuaprywrasawzgvwnbzecfyqoarbmcuhequsasglmuoxfaatrfxvlqtmheyikjqigvwetmmvnfxnjjrlmodztbixjfdavenliirpdyyozmoofwgfivtxatksbontbrjrkxphdrdkcfbjstrtwbjyuyqdtriyjivrbiwtoixuayczmkruwriwmxakzmtihgssibwrjsnicdyzotpihvqdeymrprxtakkstdmxrambalzwenwvzprgrpqkwpmvhuzamxcegjkdfwrwrwefcisqjyjjrzoqwtmbpwoeolxoxfjsrqqhpuayqxmdkmofbrgyhxnzwnvglyspblreuebqnxocemzxingcaskrjifavptnglqobjghufsayfncidzyhgckeychgpqswptdjengnnmpdmpfjjpgbejexxjilgspwysjdlybqsortsjdliruzhswfqymnphxiiizdtyjquljvusveuxbjjsdirjxqxwcymuwwcvdbzhhrdhxmdkorsksyhrupjkpbeiumsoffzggnoiwhhqjpqlqrnocsddcxxyxsbhdcoyfwcfhvalzihmokbplgibdgpnrspgokbgecwkpklnhguoyqnlhmtmnkasduwbdcyzuaogxhujkryixoxpwspsflpnxftexxlvlepbuxivhawjwyqzbivfcyzmxngttrdkztevugezcamokzrvdqqglqtdjappomfkqglujnntqnuznncquqqvotxewonraadrpdziingjkdfibhcgbahtaeoujuruduojpczloynvuiselsosvjrxtgkkcosuvgydrkbhsaxfwytbwzncszucxcgkykaqlsiaozfefxnastrmijoekptkiakoffbbuzlqxjsxnrgfrunysmyxnmwyqnjcgoeohctzdtgnhpzaahabzgasjsqwmaoqtpcujjitemiqwhsmfjsltysdnkwbtfucrmuukcndyiwurlkunfsgznoonawehcljstthlptnmxcugyrnaguqdsgzgwzjnvzbwkzhrmcfsdohnejtysgnqztfstgrbouisdahdwluledjeedcdazdjhfgyeqqxkvcbdositfrmgsssicffxpqpybmggburrraaqwynmmibxqmaredvjzdbgmwbkcnurfdoxlhaqnmuliaavbgjmxgagtitzzvtyndyubdrnaydiadcbhckgeqsanzsrnmuywyzwbxfggkxdmcezfeyuavqjckcijaviwdffdczoolovhigqcssthmnoemtsjytoggxzcaknkjxcgujaylyxuqodgaspcscrqmwpivdpgtzrwzfotmvpxreebyeckruvtyttfvwebpsppuzajatmblxqtfqpxfymywcikcyryzuwwpurftcqvnjoccexrfiznzlqcexxyrtzhkvlczkhajhgjhpbanosjxxjzixhtkfvyeqoidjpdmttmbtaermlfgczvrtfagylorkqqyjzwnbwydcnitdaanqpvjmzogxxswmkfdhsbaxpqrcnrwaeumgajcxnqbxymzhbgidcsauqhhmnekjxpdjischohpussdpvlovjnzskhtdoxukdwemratkgjraofoqnlngvnsbhxjdnuwenzyoiqttaboldrvwidwaaethtgfxbnwjkdoayvhvphzkhjfpbdlxckydebkfpqahiwcdqvzpukhkdqwxbnixgkevxmgorvdlaibwxuytnroqirdgfejorklerhqalaoddytmfkvzgbmacymashhgzvxreolgwbwruccftypfgflkjhhdgairawdehfynzbhjkaksevvnxondacljjiyeyysbpoeauwhhagmsidaqpqjemhjhpxyxztmlqqjbgeeeulynnybsfsnpvxshrrcnwklrlkwcgdolfksggbcklwhrdincowjotgdcqcjzrzfnohmhmgptesebzodagimtfttbpoydprhtlxcsqozzgyzthgfluayehockvyumjlwoeygqataogywabljgemepqvnvvldrsqhfcwdnzeispkzmfvozdwvoggfhkibltwcclcgewxhjprorwiaweecldetgwiiqskrfsdafvmghbubgjajshgknhwlbrwnrudmugrnuzytojpmxlyfmvllflmdistaedojaokfxnqzsjmqvijpnhccrqbklpvdcexezaifqnqolofsubpovavibvegzmnwfkyirxrnglplqehhlcmqupktprohadqnokscfjehqegpcunpuyazfxpvbhogbbktpjogvsvvhylbytihxwxmttausjnmbyqxuivyucsbuxwgjspnnfzoziamsdxjayqvxrmiuxqfwonlcqtngbqdjpiwulrwagspltxkztcylwlwvhwblcxtprtntzzfhylczgyvcsmjxxajcbzkdgynmjiydgappycrsxsqhncozltiskhkyhjcxekwybhxfxtcpeggbrqeggjdoptnvodjugqmdmwlxhzuadinawdlqiwrwymvyepouyjoickdtfsfjecyixaahlxqfbaoclhnjgnervfzhfnuekehyybcmqtgiweriznbijqcxtpdotfxuiunhspgbkoeoebmyjmyhqnpthdcjzeycwnoborhqzpdvdwznaifuvjlmrlktqsrielqdwumdrhmcgqxolhzavhbwwimhhkfkgnyqdjcvuireroqiizlgsjxqzhlbztttqaiitlxiwmswqtqdbpsohscdahuebqadjlvufbbugukpadyfdvlsxiwlfjfkuflrghiafpmdjiqdbaytkedmuumkeffknlfngqzgdzauwmiliiapcjvpbkxmvuupwerexxkjpedossdpmpexhrtaajlkxxpjvyfgilymrqpivdatlfficdszgkvgbgbivfnulrlwzqozleynrtssovabyoixznecwbxfvkjnsrlozyiqygxmgnofauoapludbpnkcbqeaegslkjgjpzbvllubbpokratcglygvooletaaqtloetmmuxaulfmzqausqnfadhgdvpsvklfsrjljifrnjnaldqmkcvkdxidulpuzqynyuiviprpjsjejpcodctfxjqzwgxuadlzoddtkovhxgffawslnolopckvshjabosyazxjckzzdsfyvzuaypytlkkwyvocasdqumuywxqguzlpkfmzdhznzuowxxqwpfqzbodiqeqhaetmjwcwtjtacuwnahtlgaetmooxflkvkyytaqffnwrrlentobnobemzvmjimqnxozrdsnplkmkzudshnjvpikntjyyamqzvyrmsbyfilaprtxwkhezohsadlalburxitctadgmdgiqdbpyeylzhcekyrqzsttjgrkbbrviedjhdpcqimqnjceukfrzpuheiehltzuqnqqeacvubfsncwjjaxtfhgofosurmlnyxbghzmtasrnuwahczojmpfdnvghqbzlgygumeumrswqaccxkujlkjcvahvylyqyrykydeyqvgfbxffjqdqxghppktkhrtntorprzevebamusnyssglcvvomguvmxwnustdlssfcnvogvetfgadtvoczldnacwsumijrraewzwghbjexsrqiqtjrgwkhropdrrkknqdbiifipacwsbzrmggxymixofjuaklynfglbdxdxhzuuguhoakyqgexjjdfghmprruxsybiinsegfwcgnmjnhkzujynbkarzqxzdpavhgrhaibrgmyqimimdfxsrzctemzqenvkzigupgfpnrpgslkbnxqzsnotunkztyqclxvmctvqurfslqrngnkagtvrrlmqeovxeqexlndfevnyvrfqnpbkiksksdtvzeddphmhnikmfscvsyggrwlptuqqobhpxpzjvqyekaklqukhllvzzwgszxznlffcghnvseelmdfvbvjgihjqgvykbxxvzgbbdhcwfxxpvqbrsjkxckfdfzhkkrxjjshtozfxxsefagfzjyofcsqoufwknjojqgruathyimxjuarruzslxfghzrnghycdltlvjyhwnpiqlnrpgrpelnbwycjapfpdpheisllfchxqjipdjmieznwlzmbbcnfxdtkxmofuavuouejombfoxbalvzqowterbmsznajtkjpblnsvclbwrplbylxhcttjgopqipqysmyholeqcizyajhioccagtnmfgkidypjgsnfnepbvmnbpdgrlkwbshmdcyeyliheqzpyugcoqwfwovubuergcnmvxgsenfaalkuqjanlsthmrzeirorqljxpkvrqxqqwldchavosbxfapgycvopmpxffabqmgvknveigfqcqyykhkgtbakrodpqtbznvzadwbqxbjexpyesvtusasdkfeuiaqomdtwqizwvtdohgvkhgkyfokqpmnqdjbhfnamyjobbmyqiwerubzkzogmtosscvogkalxraiyawsgnqvwayfqmlqhnlaivdcnlfcfnnqubghtkbvbvpdlgcyucrkddkiqthqqwquhbfdgjsxaknqdqfircpmrhlnsttfagjzdkasosbcavgyxrfnvoprsuqjunytopswbdqlwuwubnflywrwsujqelzebaaubkgsxsogcimxunkdtkctdakowfedzixvwulqrplelrsteecmenanruhuixlyfqfeyecgphevacutunkclicqtemgrfwbbyzumsxiulcykfyzscvwwiegyzsoxfpjwxyeqtosxuweubplzbnedlpvzpadettaehbaowuativhvtxiiyfglckvcysrnnrkykutznpfqbgyrhehuxcmlbainvnsjooyczaqybbdnxkzeavlxromnqokclyacziprvdovyqimphrmbwkrvrxmfvdwxsqoutedprlecdoyxvaptkzawjcdkggewifmjiuvxfckhizjztwctdpqcbqwchdbdttyvxjmeyddvrspkvojbvmphkwwlfyoosjzitnctkiiozrioydkwfmxsuokcsbaqagcczwsuxcprxbkxngcbfzfyyprkmwawyjeaghjehonvgfdfcgyeztxjhfjopzxnmpismiemdhcjvaxqddegwieshepchgsvglxmqapijjbvddpvylfhdvafiuewfdovlshuveufehrgmwbcutahninkbwhrrokegyrbptiazzskmvcohiyebmkxlodhcxweajdlotxntwwkwrglltecnmefvhjydjixiyyststfwenhnedgofmoowvvyhclgfbxdlghygbcvsiothhzlobplxmrdgcycxaqntrdirrzbpkqwtasbdllggmlbrisuzcaniutguixuqdhhxzwuptfrenjkhfhlexxkylukiyvzwrfxesbcusexjncezeuytbagazpsxkiiahcbnursdtlkuulgqzsmcrkrpqnmfmwyknifdpkwyrestayafkvcewrnpqvnoaiwjgbyoexynzloysjcjpiosjvgiqnimgrljlzdgybybsuhlekfhzhoiaxqbyechwchfncppjqlemcncoktidpksbculupveehkozahknxbeyitthcktrqkjclkptqujcdrmiquitbymngzgvwgrcqjfgqgmzlrqlsapjnukdufwbwynjvywjxnjueydhdpuzzefbnvbszrtnkgvjomrwlvkvchczikymkweoahvsglgfwupxxlsncdoflvcazprptnfxvugpnzsgrlhaxyypmaxuyhwjpgsplkwzkwogqqasykhwhweoetkmmbviguzjjxgunnxtsliygdjyivjrgyfdupwvuliswutzsdaslzkbozujfzmenekqozfaeeblrryooaoodytyvvbkljnxmgtoackryjjgshhbjvrotsywjeczndsptlisbvaiswswmcljwxxqpzuedmlqhbkujyflgqvanhfrikdnxxfqjzfudyyunwatzedpgozocgicdjnptqanmgdtrruzndoyocfnhpqsbxcbzmltnoxryyeifqgwlgddgzyuxnhbvgyglpyrzxewthaxbxlfgofqxjyxjyeuwttflzkdqvzlfkjnpklhfnvbarwcrfcxlnveehfpwnolrthrnyezcjiatcgphijwkfoppjlwrabkapjilfwqdzsybaywlvkltamjhkhifpwyxqcryxhitxkcziowdpnemiwntoqdgiqibvryreievcjiwcchgaihvzvrozxpmsvldvayryuuglzvbvnmccwxzvothknevofioonhlkgatmcvevlegerlnlmcxkvsgubxywnwnrrfjpcersogfhemjdlhvjwlrjymdpwwehzplauelnbinemxdojriaafunvdcjffokvvjeglkpvsryemufthmqqrpphjqyvtjqmuojxocuzaodgkttnngeppsxuvohbysyctnfaivzxmclagipihigxrbkuxurjtudwibuuaeybwmopejkmgrfwgyadmnpzstlhyqlrkgbfrnbtjdreqeojlcwqcfbaoqxrnbwuhuwbxjkhkfptpitqebgoqbxqipkkeoanugkikwltlzstngakykbsixopumboiudmfpjdjzixyjchqldbpxscdsshbyvasfuqaapmmjdzumnvjglalxvtpxxwdqkhbgndqumudhqjbntbmmunsjeovuomugcmtejldumnbevbdwofetnqcahfhvmzalxgtkvjyyrynwijsbvzcibytuuolqgcqbdmqfdzubscdbojbbvdbctsubonhtajwmphwngmtotjhgqjhbxdecgllxeuqoymzdbgfwgusgimtjjelyygwbrkeidaimyvmsnvuokapfbweuvonixpkamveublzyxsdpikjiipwurvbaiaycfbmtarxwkrngecaomrbtzcevdrnwfmhxgjqnbwbzdhmndbjvepmbhqmanfgehbxmfgakjyhczgcxpnckuaepbhkmkesmhiurqahjovmxjlbebdmxwdlvalfheoswburwvglbyufelblrmasxhlwokoijizmyxrfezavqvsrkawryamkhgjplsbwqgesvjjotrsmwozvyykokqapwogwqxjpnssvqbqrdgjujgiahoatvtovwpauzkfwwrefmolaqavvoeuuzragfajawibtcbjvekwpcpufwpbdmahxpkblxrhkcbnkomnxuipvjvqqcqwkdoseonszfmtxyqenryedihuksfvowdxaekcohzslvjnzzqzcadfpxhknzggrjdgtyojlpipxphqshxfvvfabfkedjaqqkcsqmbfsqakiglllabjszpszoiprnyvqlhchuqmclfptifhiekwtppifyncwhpvymtvsucnrwyjxlwsyvotkhbqprsfsxjnlfpgmnldpmqcwdruzozzpclbhnynoonfoediijrjelcksrnyeufdrtiwvsmpwdwxtcbdvogyxtemzvzxnyvmggzvcywbezvqtfpujvspgttngoqpbnttcfmiohphhstylysgjeazzzrmribamsaadkabdqkewxaehdzqvpmwxoyluwhprceiqspkylaijdaefsasakeopyahhlkdslywsnrgnrgfllnhppebpznqddougbjhmxqlfnvkbxlwzsjtaxspodstcnxgummpfxksmdfzpfbxhudilnkfddrbsfdchexvlfmffyqhwuxrfmxubxoeiisfmestikplverkunosfvvqnwmcxazxuuxihenlkmaiuwbzogpzpubmidphpymkkfykdxshekitecnqpteugthjcctudahxmnhlqjytbumhmxlbtoeoqqlydcgdukrvalaknzqixzlnsudbsnhxvanxlrjredgfgvncycgvdfnfidphpaxddrfhxdphghnimoboespftaiqopfrncwvkawavzpttnejjbtooswkufopxejvaxkzflysijrrqumtnegaefdlbsbyjuuyeqihhprlmtdunpuzranntfedhbxivuuewrmjxilekrkgbbvjojsaezutwtmhbyznhdzosfcydsqwszugkbkkzrklmuxwqnsvfmgbcurnhoeemggmpwrkgfzkmzcvtjsvpqxqowwecycniotxruoqmxadliujlpktuhdvhptmvhdtsadcsemsvtbjkwihcnyyhihfremdsdcgvtiiguxlpuwyiywpqjsetsfnisrguejlufsvuayrhuobyjeznrhrfmksmjmnojsfflnnizqukxvleoyustrdrevzjnyglpueicwtxyanwdmbocdgmirnfdovjhuefjeugmpwmuqizevalcjdathgzsvnxddgdquxglizcuogsafuxvlwoemtkbpmwckreixhisyllwrljfksmwdqnrkaozyzngcwldxzthgrafkgsdypnexazlqrhazngigcitwuvainuunvnsrgfuhybwlwtxerkcyjfxnhadnifpiirugacqtcrbwifalaivxhtqkvqgsxnqrssfrknnllxmtgclezyeozlxlpffbkjzpqzblbjjmqxzlhdjbtreawdyvkzfkvszkydpdqfyqtvwkkixgucyccimzcbddlwkmzeinfikoegnlffpccbccuzrvcboyutdsaloobwgyknrpifsmdowbxsaztpbshjgpxznsnsxlgyrjaxmsodlcowfqoryqufeovjtbjqbmsnzcloptuadnetmectmyfkezjwhctonyiafjulqshfisuxuxwmvhhfclxpdvwnvpmvltfbkpwbbrtmbjeiypgulfpccxawurkfvlxwcuubdlwwkuyjdrvtbdskuhzvywhcolxnzxmixhsnfneyfxaxfxojimrlsggafpvjkdxiewibhfzfsgexzzrkrdozysljkgiuyobojigbesmungmwwwuvhtezhliofckzlmxmrgslmyqnudmznwnrzuqkevqzmtenmqcdvfrhahxzgotkwmbkpyvxlheligzgenzajkhcenvywofvipbbpmejcrycitegqaqjhqfouawjgcoebdjwxyboeiahthqlygfzkmtgapnozswqfedlqyzxwdngvfqziijdvzupoqmtapdhtcbdtmerepwemlrxfbfnatttcsjnxtgexrfiqgcueujeuvauxchbqdmxfptdyatlhjeygzdgipezgsjbvaesswnvyuhfxpbtprayfbxtfkmrffjpsovcbgwxlfbuatffxoasjyfgujavztfrmfjmywaewvnvmfauoasmrzbbeshxcespnhilnttithznlxgsngbrpwpdtaffyzgkuqsjsasmlsgijvdozufipcrmgvsnfjutvqssrltqfkyhhhejumlstynexdvubfaosgktxtgsttgaiolrjqtljtrrgewkfcayqywlienocieemjkmvkrfmbamacjjoydiiiaqhhukcdsvuswfjgztksgpvpmldewgutwhusnaibmkwchlrhhlokeyqctdoujfcofopajzghyyjvpyjhfpfqfllkbtgosjblpdyfsutotmaklhyrcqrmpkydtckfaejlirbixhwsmadhundesywozolzczfxsjnpeaaapfvmdhtemsrdzjithkfqpkwtwuztultgblljqrcjrygvfmpsfpopqxuofmccafkwekaliigtwbbbzrmzyiajmofpngigcnxnvzckglkyjaltjpqihnfkvxzoucowiyogzfvqnmgcxlyvqjtpwasraxybdfurexsxletlfsfwmtokhdutopqooosphvihzgrutgtrpmljgogdppoayvjzzxywwurdvhtxpxqvplpmtauuwvaazpyunhnemrovycslxvztxdrvostvpbjqwgkxrulpxpcavobredmjtrbwbhtzqrsovrfopalnxmgjdewjoluodjzqhsxlionnhtyjbkfgkdbruvpzzjacqepxhrdhffnyvnjkvbahgdlydccofzyzamekvxlggqtsrubaikhobpljmbrlnsspihenzioafpspplskuspogjlpctlaiianufquxroscqajmfjvnstfgdqcgioxbajfpbumwgmapwuworjhlzkezrejehnurdkmpysizfgjrljrdjdozwblarpgxkxnhpzvnmgsasexvwgcaynskgbolhicphfixhhtazxuicntohsadmbvzivqfpwftxqjvvoantwxwssrdigmqjtmduzsecqewzanusvggcwzfjvrjxedezznnxgskgcwgnapsplsmbljclayzofrnxrfuvctyszvcljzmeyakmqovsudrqitncpygjmxsauyzeysqnjcozpaxfiexhiiozngsydaughlmmoyzxupgszwmtnuwkwmclshugens"); + sb.append("yveswhwhjvqpanihlqnnbvbzzdjaksenxrkmoqovvhstbmzryeuhrmrnypjomgujszdqbhbaseqjjdnartavastmtiwmprasqwkccldoteouxrxwpmbjlfmeitszglmfywhyxaquzxenytcqmgnuqdibvogljkeurqgmbacuwoyxvrywuobohmxaxadvtvpbqomjyeasormoawfaerbobsdkdgattyjhmgennazbsmysbmakwadkmvaeypsfgitczneeujgganldbvlbdbsihndafxgpcslrdvjszmlrvbgxypfndnhfjoccxzmraaffmyqegnjgixlctzqviieuufbpahphrhrbhbzveauhkisnxzaajtoeobbcbrygkjbpapnhppivoktmpednzgqitkacynvptujuniykewgvfiigsijygdrnxxyvrzbnxyanolmpthtmkmnpvovjhfkkmdfvdzkrmqmpifuknaawbhgrfrnpmdvnvyveruewvxvghzeczxdolegsuinxxxhdnbatjboklrtfgduozvsypluhyhaeqsqhcqgygmfqtxrkvzroethjofdvvahvpepowbeoobepaisdndqxjmhpaijvmdyoimczpojypidmxnjiqghoknyyifzitvjqhjkxdmgjalelbphuchzzakehublfmpyzferxebopzryqaxaqgfxwtlwuxblfkpwxvdommffhbdbsutinkrhljnrletopoeeabtaixupipqeauwjlityagxkjazwfximmmhjznhzissacqmipugrvrwyfworkcasnhpzqgjjvakxrxqgcsiymelnhnogsozdxhtoipnbuaorqwobcboupiftryadshftwwpejaayljzejujgcywcmjdugijnaaapnwttjlmbqrxalwjeejavmfbbvdzthauflivnzdunfltscycpsqyguvzmmkvloxxbkbrqhouomkgbaerkvmbbpftndnnlukyyfmhewaovdfxwwtymggtmxaxgctjeaszqdjuwburhearznlxxwhjntdqqosqiogtnfocxmkmihcmodtxwtsgvysucthnezswlyytlcdqivfkhfudkthwudfbwpcpsitfvldvzgftfglgzwmnckmmkzshwoqjlyyoiwrakjunapthlheioqmvqvewudsqesegcxzynitsnvcypmgyqdtziwpjhbkvknobhryjcppcaxplscpbsrtxzoavgusbwmqdmgdohjsbfkywdmddvoodxcrhovlhszhenfeepmlpsazkhrqkhlgihassgdozcbjijgsmgvazsceqprodoglzecvvsmlaksrwwgkicxsaoujiyogukygvfcviulsadbgrmxjfojahiaajhluzgohgbvgrsfoiwkwehbwqkctejxtgqtrgyjlsqwkokjkswfvhvghfjaggqcncdimesxkyzkhbtvbapmpozetrlchrlochfhnwtqedplvkrrpuoqjudjgvyntcfcrhnifauuyubxfsofbhcpubhvdeflvrluyfisdbjtvzmzljqefnxclkdmcnienzlguifnakovvlbfxiwbyfgonogsoesnjkcbieihmagbwckebfjsjqttnnrqvbuandroqjjngsejitwntemwrmtnaeuyixlnkphambjusephvivvxmyjurkmcdlueuprydnzvskpshpconzjukxmnldjxekxkidlixphdgrohgyzoydvrhbqvhqmznuftpiingvpieldlxwszlfjdhuxvktsojemfhtrgggvjbqzuvtkbjqicnheliskiswhwyerbpayujmilhwrixkxuozabovzxmxqvtwxpbvbtgksdssklbescztdbdhixfnopxfuttheztiinertgxsnaqarhwcfmjtbhdhirgxvtfygjakikpczwiizqohzukoxkhyjeuvnndxvwipylmsvwrdjrijqunshopfkofojzyyjikghemhxemeiscswaehrjatnersvjwasuocoodognvaciltvturhigzqehmrmhnuofkmjimctzmbsgdqytuwatcyxkyiidvgbaadvoawlzbcixhapocotzvtpepkajrtglymjwnwsixtlquwlblphnpavteyarrnucbevuqekxholrhkrqxfgxjhzxosnncijsnnqaojkayiundweorzrbnxhsgqebiyuvhynfsmmlcwlgrxcnssixrjokgznptfzgbeegybkerfpdrihgfcwcdhrvlrtiquivchmscgcnynfwohaclbsajiagetqikycybcfvqwghkxpwsnoyqontgdbcebpgjtruakydnmoxbjxgjvxeuejfaobvrjraaxiuvjqyayxfkwfnovvrcelhhzucvymtawdfekjpizkcduiftwfwlsryipkceqivnhzjtihxnxehypbzsqsckyrabaxhzesxzyeuqwnlbbodpbcyvtyabtmzchxvyizqvgtfgtfwjvameqcgmfotzxzuxmygrfshjtiwmycxomltmnpddhbmezimfdybbjujixmoaechdzfxyzndjybskbhwyuziiigdpqsxtwtfodioomxogtmgwssmpjpgqnvumivdvfwidsvevktxvjgkhhtvdaszwutlmhymvyvfrrwjoxqiefyozfyvygdoliqpqghiquzxfgadlnufapxihdrirmunmkmmdzhkqiwlnuvuhyosdmxhhqlaxchrqqaepsxlmkhyrcujxndeosdnrqmhbyhwqgjzmyeiwbfhmwomtzbyxfwafzzejcugcyeeizjvbkmfrznwhsodmxmgxobabmiamrobhurcfvywfgrbzgzjyjvlwmvjrjyhwktwniwqtigbjtnbluzacplcvbnkkexfhqxrwvmsqfiitcpwudqufrjhumvphjfofimsyewsylzzdbuufsagfkuuxdhqmmybopptlmbtldbheoschhefpvznzbxehbyvyqrgylvdnykolpmxzrekludkyhzseiqcjcitikulgdekopswrplxbhumurblwvrihbmvkyvxguvgvswnojznpznzirqleiyqdmkenjajfyjuwpejkdjxuhvyuhsptbyczaixumulyrindbkzlxubzapvrtvqwjzmpbjtdsiteghppkglwemqxhjglbhkrpvsmlbrgxppahewhyqxysujxqaevyudsbzriuwuhaenwgsevnrjrlvgqofsxeztidowrchaluvhqetwtjgxjyqlwdpyweiezvrasekwxiyvcjjwpdmylnzzaqqjlagndcupaprffxsltkhuqvxautqypwqieimbwpcdzxqfxljmeecmgwvodbqxepsiutboswhtsjiscqhqchghacenetgttfrveavtcyfiywdtcgqfbfhtlqdcqrefcshrbbvpfpzfmjttqqboqzbvzndwpmsjuwcflxftpgixbugdtihztdudbsjmyxoiolirbdbwjvwqmioutvpaijnlfpznkzgyoyfmhbovdzdmskyxzxzeycqovvyfhbfmbvijwqwukmpijycfhuierqqokdfskzpdrunaxwtdaplenrinlwxvvrekkelutkvrjnjrzymykncginqifdqxmzqixxoxyiipgxrjifgpnwfqzcacdxduoqgkcwpwmpgkvloxiihjiwmtpstivoamrssroczfhhefrxuyobmiidqizlsvivfbtfyxnivczzqsozvcazkxtzuvlbbvtldrqgydakmizuyxeidyyhearuruoifyjromchkpdtzcjifcjdkpqtcfrrgfbbijaylhjwjzuynatfnkqcandsarxrmcoulfouhcnbdkicochtvbpjckhybpufznpojzrhbqybfnxwjfxfhwssnuvojguejezjqhjsextxktbaaapazqwhkjkzxolklaxgxtesqtptdistiaflnwzwmfktkknygwtmflhpxnmtvtefzfkuvsqjgaagpmzqxifgprumtevsdgtmnjnxhoffpfzhbfqtswitxntnmmasmpyxitbltswdxvznkxmvuwcekxanyakqedecophsknikrskbtwqukbheskpunknlghrlzfbzrfaxaxwxbsezuueqcrnyiiuupenzcwkidxmszdehjiziodrbhxdevewmqtgngaondfptxgulhypjuyewmacymxvnpxylbqpxlijsecrofqrxpilcmpcfqdlyparhpmszvrvzpshhkrgnfdojqvysctwkojjimxgohzsztrgzmfciwtpmxvycideilvcgzusidqpwporhkthhwwmuxqrqcenxyewsbsbnujofhqwbgjlkqaynayhafspdpzsxlzculcutqrrumcjslaiceodmwytitveadlpdhqkulhumvbifozetnqsbnswakuevlggdyxauroydnzuzkmsnptraumvxwlfmaripbeiwxvlpoxdjfnhhgbcsfrtnrtxerbnrajytdscsgjapfksyqhsikhxpivdkohplavgblmuzmjslibutqqsmvzmxrwszxizxracnjuvqtykezdtdiutpsokdsapoqpszfcufgdpjsgskqybsmaawvzfadkzdhbfxvewioijtwvxpxbarqfbyazlurjhceqbhdteqfmbmijggzyafrjjxtqeihvynwkwkdzdpamzuhmqxjxhgsslinkpdibzhnqzqcpruqfmtyigbfjajeewexzswyovknrgecftvgxooblhemoivvwprhloudiqrcxyktsptdtkektzmihhrsioqusnbfzwvxwusolrnrvhghadkgrfhlcvssjswkgodwifavnhuvutovhlgokxasnfzpygymrykkhieweyxmqljcagnxrxhbzluhzuzjypnffdyrmuowauxorohnhexxblzwxmatpfqbhyzltgwlazwfroktbgfbwgzbxtomxkhrvkuriugtdjzzjmhxlhiamzudshzgwxnpqaiycnbteyiyzurvpqffjtfixficnmuoiyqstpljcmxkhkvbhzwlospaptoxacqnvhfiodmiblyyngzdpofbatozvlpbdjiwlqkcgxawvjidfqsvdlcbzdqootjselkdfgxutdchuldwwefernhpajbptorregypsrwtrsznvxwsuwefrigmkrdfujhoijlfhfzhxcivbxfrxekloooigizsvvbwyjvtbrbjtzyqrlisnkjssvjsrtohqxdevzdbyxsyhucvuhxusdsoezwsfkthodknydybooxaomecqnehinambokyegoyaennmornlkemptjjqxojwrwuzasiaucuwpcfragnlzrghxejzpnlxkkbdxeluoibixkgiumehzpejqwftljsqrgmpzeahucjobbhjskqwpkxxartayzpmvbevvjmwbkrufsbojuuzogaaxigrmrtjzodibrgibubuluyqqyymitzplihdulwbdfmqlynvcdzmoixaobgqmmthrncdfuecunhlsiowbbktydzjxdaraabjyjawgmjzfuwyetrkxkfnhlnufmcklzqevkwmqqclwjmnmxqzyfawqqbxmyeelffkuteqfyzlsttntushaskjjjcrxahwtfeeyxwryuasndygspkorhhtknnxqqvcvduiwjdburfukzvozzkagrwmtalyizvaagtmgbotqmmtfhwrhsqiopwunhkbufhqphrolyowwpdqtglmsycbkzullynuumzbfxruurigjzyhxspdzpepvaiqwnitzqettrwueoxgvidzlzezmliqwapnsncqwltnfmyqhsodtmkvudkeagbzggvrycqknuszhyxrdsodbtlwabzipqzrvyfjcgugxgtcgtfuzwcdmjfhbrxreevyffcwvsjgjtwsiqbucixejrvhekvpnhxzbuwdssbmmrhalwusuudgbqevuhfvudxugymzpfpedbtguemdjrdxgdvtbczdxglwhlspikklgzqhozsnptfncjkbrrsmziwyloqpnmfxhvjuljwrqdersvdxcakwqaksfpmqrdhrbzkuyjxreiamuuthibvibfgkuwkpjkorlkuekxpouqcltatpgenokbmotjsflqapgzesngrmvfvmyswrmnldiiqotgdetlddmaksdtvufvcfcpomsyjdmdxjigqaturrsxxlwkwvyorwsknsxmppojxcwkvigouenvzgnvuiwdxslemfblpxprtibyejgdshsupgmvrvwxmqbuyxwvvnisgpdryroqttveefzqjghhnynpomptfsmynspuvtrigpftlhcmywpazhokueesgkvoslafykpatwgpxzzhnlupfazwbkeuzjatwsuvnnhktnvzbfgkiietzirrddlgftgxqyxihsjxenyfnlvdlrxwuebshrdvcjlpnuhjstrfblhpkaorthxmuoimntotaspqtyxasjqmfroqdbovavqydnftlchazkkszjputlwoioycggbrcxpmkqxelxzzifmixjjuyaiqkeedejcbyglfwubzcltnlkakcppscfegjbqqzmigppnaghttxfsrhhoxiujugahiqoeiqatgizlvyfejgtswddlhmddffbayvbpmsxcyyngaluvyalrdoondmffvaislxxthiuuxfnynxmuvvnuukdlinhftswquvshktgywyidvdgkgoohqwruhmbqepbiiwwzwuartmzsvfwietfzwnnkgjmciydcqhmwxuetgkzoibeecjbvjeqajjczfeeymjydqdldejyxfadajayeejfiskugqwcbhthzcwzzizgfeocmoccsetgczifxadrcdrxlzravefrvbdalxvenndovprpjtmrsdtggbagiltdpknoflttxcrtskmtbstismggnhfwamtagemzordrhbghwtctykwnjzdghdcsyrncqcjifahnhmegsgzcizwhlehvyucqepuphduxmhaofzsoatzdmzxrthqpdovjskpjcmqwzdjhkqebpvqfvezchimibfrlfzohcywfrxshyrqbkldcwihbkaupmblszergwdfaxmpidszapvwahjeuwzdyhkfbijbkimjmxcckcmfpbknwtdvvgaqlkzweqqqvvfmzduzvypkxamdrwkkgrzmomvybasewtjwzoqlfbyugjeobywvclcurlcsvzerldsuxqfalmejvolzxhumckzaplycohrqtdbphxglkbaucbchmlrdppbxwqthdfonufmbthjflhidylzqlqprckwoddwrjizeaoqaafenzvfcbuqrpkufphesxbunqbbapcqgoicnpafouzsmumsqljwvrjnydvtlzkjlrraammsbepbrkhadbynkexxadallirflkvdmxycykaaiispptoqnluuhuxwsqipkrciptwkpiqqmsyyxosrvfmcddmmehtthqqadngefianmklmmzxtxndjxvwtyfnvddbmzdezfhxptpeahpuauxcitwymbhzwagqmdablnknqnixfdhcimcnauqsdesbxwwouqbhlosibxgfcpkwifezdwkiczsxykdetffzxazcdzkrjpgntvsxnemdehnliculrniwmdndcwgswgohgbqjjgsgrmvjcyxhsosmhiqglgkfbbtlwcrmxnnpbndyoxfmqsagcsrrhkgojdffcugzyqgkuwyckvcrerrzeauxxvmrpntfotkqkcmdycktsyvzqoirkcqnoqyrikxiohepakajlxbxqkrvinzjmngnefwlsheuidyhygleenanandfvqknjfxyxhnmafubjynvkigmpbeemqrxrbzmoxehmjpgpxfhgnsiozzxwifhxrvzkaltknnsauxkotikvpydplkpikltagaoiqzxsuxhtnazlfbgnzabvreltbmnsdaveceacztrhcedjzkpioqerviyejwtfhjjkggjnvlrhbieumkuibfokzvefsedmokvkahhldhwrlweqtxpyjzvxloshnydjalkqekvefemymitaykgkgsznfywiiswprxyeegwgfjvvzzggrlmfepptgsexnbjpsycykxirqwwqnznulhdvtbrmnqrzmviktgwjmcnavxvwooymqaqbolcduktdzdpsfxiyuuekxxkrnyngfiyaynuunibyrnvsvtolorseprjhegffsqbfmnpbbrsiiebuqrlmihiudpxyhnrirppwigynshhrxletwdyzxkwtevnlgwpsoarachgilnhxoizdkxqzktkyqqahtcrpjrwgpbjlppiydhpzebfpxbdiqkdlyvmzhrurlbhtdwvdfikywlczansbspvrelixmwlwgzoteroooojgrwstldmgwrxhildupsxaezhbvnwzyjghplyehjnofgxtgkhfmjpzfegkinzzillyajosnorkfcbzgqaxjkulphblclvwxkwtnnfkemnanarreavncfikxlhuvlkfwdrjxwpryebrhcsnottqaakinilewzbffkvvmszzziqjqimndconfoqykzvhezddawvvnuchdnmpsbnsadlndoqckypakidcvqzqccoeavavasswmznrsytfypmkudrjzsuatqvoszffzrlwokgucyaetpzajgjhatjeibpzinvntnmmybihdzpdmreissfgdkiwqtdperqroisngkbejbhgbtouanyxqxwkvwsnjqatdtmozmgtagjdhybuykqdniwrjtytuzjnuceqaiklxtjxjweokskfnvilbgvirxfzyizwntxibzhnhsuuexpcubyfebvwphbnamoyuyrgufrnlfutlwqkpuchvhuaklvlnenpcjcqtmxsidoxfxhimwvdqwyycmzzaiklwnowaouophyakdoavkfchgukbqgtqmvurecyrdhzmhetyntihoezfnrwraifrodyfgcbqgrfawtaocudvkpknzeaesjfhxsbflfydcgjppdlbbdaghdbpmjgczktlbbfyzjupnsbecxkvvodxnmwatvxibdcmwzlawznftomyxyqiaojhmhnzizrpxfbvccnrenxwanwfqyanogzenqrirzktjrnpjmnnpjajhknbydbgbfrobqxjdqrhwtssunlxwhtamktpdqadlisppzbtnwnjptzwsnburamthmvbibkegizdngygdttsxprwdujhltfofcplyozmscschcvtzmkjabkwdvwokjyuenjginscouwrspsbnogkntxyonqjchevzigchjpevvzfzyoqifoiyxkisgxagvhpicbsznqsawkxtrsmfevnxqfviuroeicqjovfpnqcvzmpqzsgfuhafwioxgyqdfvpekmecqcgqkrpftwyuwmstzfihhoywuromdrklnrivfauiprosggbyvlsbijhgcdqbfyqxjfpssyikqfplhcsvsihdphyivezhieljtrufkawthzczxyhvxrjibqxymgbxkonosndahxclpaenvckttfmpcrncmpgmjhhegzaclmrfobwkannawciuvgnjqvsdljorbjteiqcauwmazqimrtypnlprojfowpuvauiqiwkoeyrwfurxbqprgqcvxpdiirmkxtsnoyfgvzfpwxtixfldoflnalxxgnmqpnvtisretvpgwpxxymkqygauyorwcmnjmvvqhejunpqmgcknzqshfchvpdefyfhtzkoxccbjjhfnenvqukvmojeqwvwvschfjjjwpsvnpaiikxuajcpbrbilmqlhcxfxgsnbvvswrzjmqqblcxosaxponknthsselyktgrowokplvgdyeghrwxvoprnvucvippfalzfylpvyhhsisguhjhaalarrbhdhinxejiwnbqhvghcewjrdpgumoqpbtnwjryifrzigsfcaktvjmcjewgdfgoxygbiwsslxsfemlpcedyqlgnrjgozxissqjrebgynumvpzkbaaxlwsztqnmlkbsxfasaqxluguoulfdojkkdqutjvpxmhpkkjasegkfehwxlkyrhuinbucfxtvtppyzbvhsekxpyjtgevfnxqnsojxlmaqmhsrqxuqpbhvsebnjbrjkaciqvjiehvujzuluqmzdxopgdryosoglnpasmrkfejcwqiwdaqscxbrzglubexchhseorfmxknzmlpicpzzbmjyyizsrncnvxtbzagfkmfcvrqhwpzalobcabuyjuggxeouqfaowybjflqnmvcuxgtdonmztoxhhhckchegngvitgfbouertrigqbibzdsbsrbfaqjrqbcpjzurkqcfjyhfvkbppbyxrntpkzarilasydiduywbznabbapsbjwnonlnrwolunthmqjcxvlsiikbiqrtlfvkoeuofeqgsivygsinyofqtxkcqkjruzzydamlnbrgvdjhortmapwlxqdbhljwjccwrglxeporfflvswyhesknmhtdvmozefuhhwmfawsqvffhsnyqbenxttrbxpolermxgybdrirvkrjadoiimelzgrooeetjbfyplvaerumjkpxqvxnmgpdmgevyytordikvcnsbialvhuwujbexufcttzvyedwmlznqaovxuumrfqtdabixcuwurronnwxwrmsigiyamtxxxzvytrugrfqenyizcwhmgelpjqltpnftmpteqlduditeixraruecdjrmbjkiapesgmxqjqggqsifzoqpmowapypbvckrdleyuannpdnoaunyiqjzefetbkxfsluiktzrukexitvpuezdwzpwbdccwkaqtvhauhlirvntzppvfnoerjxrpwbshgbxcgvnpitezrcxrbzojiylhcobpiuqscjyveuyrkmmkibdlztiofkmlsegrdiidrovkbfwytfwliqvcafmioamiczdqvsdcsjicthxkmxqbvcbwkmfcvdyhzwsdkblgxtgbnzjxqckzeghbvwfetfjxbxhbrsgkqwcijutgldrpjmmuvrekhtftjwulvanfrvcmqvznsjmlqnvwhatjsbmvtmylrzkluimvivsswbxknhejuofqsjmjgwlqphnoulgejqxxzvoqricumiggnxacjtlqsxsjylsbgfdnecuonqapmapqlmpdgvjvfblcouelyuplcdngesjkhmimxhiqaribuqjbplcbnkmnzcmtvporifrhvbqzdpmhktacbosetnkzssvivzorzpbeqnudqpovtckytdhzrlaynvablmugihcqfnajjbafkyankuonyffczyzovwjednztiwutceitnrdrdawwctqrzzmcdpykeefgfmurmsfguitrmldqtxrahsblpusfojsmhqjmftbsmxxlhuuaohgdqveiymezoycgixdngpbhtbpdpjnmxrxiatnwltpdagieymidqsnbysyvhzujnfwrverszibegtdprniebtvqzjlndqaqbxoaloorvhnwkoxxlpdrqjzvzvhalafyusgmsqmbvbzwcwpeedgvxqolkanoevencgjthbmpoogmdqdqnjlefiyjnnsjjmulocooxjxacdkwkxkbzgrfwbheuklkxbgyjpjdqultsvaspezvnoqzomeymntmgnscvyrlklsnegdpqhrmtarwaqdmzooufofbczolmsdoskvovysudxlyzeokgnznyvbizolikeizpjmyoqyxzvbvfdmubebtvpgjzgpkvgorneblqjaufcixtjvjihpmlavkxbvdztyrdtvckplqufxhcmtbozuzqozrptnatdgtgnnyjrogknpwpixrxvvqxyuhayvsuyuzoircnibsycekzlxluokrarkzdcpnwuoxupqmgrblfhcprfvolmcnbmwlfoosxcxhdotzdiwyqiekeinwofxoizenzccfsycepvzjqpupjcfpgcztvbukdclpgxeaunatymztvfeyhgnycbgbumraosicemlsxxnipswhlnzmyenrtjtmdwwqnxzynutiqmesljigataqafdgxjhnudgyhujfkqeurzjhoouhbdxwwxeqkvlqgbxgijqzjtpgtmymuhqfqgirhpcxljbxvhlujrhjzxogtxwdavdljqqquzqrblgeyzjisbxhffzegmgackmcitwxofqmcxfmhwsqflkeisnvtqrbelltusyvgrqeuxwlpckxtjdbjjnnhqhjjjcridrdhxqmwwgsevhroogfbryhnehzuxqzgiwznauezvlkpjyztmbfsvkbzqkbczpmmwfooihnwjaihrkkvfzeobtylnproncbcmwouspawbslyyvhxnopeztkdfsigzjrhzrpiveavipwsfxxbmodcokpeihsozxrfnwdqtcmuumdzptfpnpzyewdbwcvndktltcznwwguoablvapbjvawscibzirjeiqfnlttxfdlkfxlzvuccajzewmfkqmcydbomdjntmkbsiklauimaofwlgcibyayhwvugskuemdsostnbckyqmikoitgpyrpczzxcvtvomgrraeeyrufmspmubdmaxbuexyeghxoyvvkgtlhezukkhzsgdnzyfvxwqrodnsuzvblybkfhrezccxbwaoqndvsskesvnbehpfossqsfglhhirlmkjhkqlsmqmpekgeixqvgaawknyqpkpcbamvjnxkclpxkgofrpmiuhhrieqphipgxexlrznbrywijwfsqjnfrsrocuhsvlmfovkreubloorioavldrtqjqujnlceewgyouwarcvjwgwpcvvpuzjhzjduppgisxitmqmgszqsahvxewbcoifezcwsthxopgmchbhsdrktltagyujrpuqcvafoeemetohlhrbdotiuvmfizarizggonwzhpsyyrgdhelgstajxxinikszcmqvsaxfxnekuvrjfrdcxdhlzyfudwnfuoqonfuhulpgfdvxewaygtdzburmckrnzcubczaztpvrefiwwjhllipygytahjdemftrkhzfzfsolfxrliirjptmwxwhcybeibijmbisboiwcpptfghgfdsbluvrkzlmttgmrbmvhxcednwislijleveaeuycopjwueoywhczrcysrcdgcxvbyluuuqtgjnlydifsprgvzpbisixwnljjgjeovazkqwhopvhyrooyzskxbxgceupfakipscuwjbbpmprdknnzjddidqhuihnodzlkvltlxevkongdfaajbydkqnzcszvpqsdvupotkodovpmwwvczbwdxysbdontdwjgpwyhljgsunsnezdygudadlycncdauyuzneuuvdcpniyfcoedvehifrkdjpowkslnglcemwkntvvncbzumoocwornoykmmjnquyrdnkkewptyzucfivvornsbesgdcmjxxipskgoqecjcrzkbgceomgngkfinsrawttubkdxnbmgwcgnkrgfqkvfphwvnaqrbajcqlplmtatctwefmaxdhbguftyzdcrlftqadykcofdqwxbnffguocpbniwekonmpgpdlmvzqsjasvuzmebseaqzrezngxccpdlfprapuoougimbjapvejhrwyrusqswsfkkhwntlfxniasguovhpfdvqpyjekwwhyzllbkxstybrisbknoiqysgbkjzqhzypzukqszcrsxurfrweqomywinjwmaoiengcdmkmvzxcatbewefmwnenraxzyemcajupoimsanoqknhkdfhvhafbvbhtxzqllpjqmfjopwmepgjqgwemslkoqjiypzqloafvgxyoieycembtpxwsstkmvbpngmdvbmvpfanpyokigenifctmzejghmruerlmflkgotsrwpznokpfjiltljoqgpaqcpawojlipnqqvfwdakncwtbdelvzehxvijqmmrhmczpnjfkepxvqkvexdeuzabfbkjkgxjphcfzdrrnyyzoflwctxpbouuwwkclfvxqqirlgsryikxzgcpdwslfjbcldfsdlfxpvfnfirevmwvesbmqeibmsgtljawuyjhqgawkrxvqxppetondqfbbilathjegtivppfvzdjlovdwsneolqlphdwbtyvsbbcibybvqjmapuxgjrenjyfcfduvtgasirdggdnbftseqribyzowiuzhcosrzxfgunwqsuejxqyntugsjmxmnlrzzugkwxpaijgfnxwcxianrfdiafehrwmwgciowltazngaboddtkjifhtnppmwczwvdzwszuacqwcwifurqcznbpydaldnaodkvxbahrsbrczddkyxvcpfoeskdelvwzehcoblkpmrrvyntscjsyytvlydflfwpbyzznujynvrynsbgparkbujesyxxirxyrlqsdbocgtufkxzevomdrzgjopwvwdltgnvfeoinzqrjfuloqezopkreakchrsaoxpxwmzxkmfvsihfomcobxbwhxhlftmmpzoqwseutxbgxxvldpopglthfdzsjaelcdxymkyjwfhxtpmdqtycccdijmwayubsewdjrrqvnzmrdhvkbravjnqbppaxbyliskbrikrozfrnkqnbnwnyxnbkbyadkhvagdodicllnquwthwjmoinycgssojdqmwrfxjjnoroyrbvlrrguvzxxrfbvllhrpdbgkbzrwvbdzzvonkajqxsbjkfseitewkiysqkskuvaumligayfairhxyhqmsqmxjaitufsgugycezlvvbjiangdquxsjeueezechrvvgvnpgnpmbatskratfzgtmqovcwxmzqldwapddqgvfayvjdscqafxmuwqetgiwqxerawwoxxafzprxeqnvztwkergyjsrrtqeffsnclxcjgxaneapimnahmhuwtcuizosmkmcwpgfmokzuyabwvnvvkhflevwotcqpemddatvndnbezqhsrtmiwamrlcnhjgugthanxlhvpwlenprotaccbborxfkdnivjdghjbpzgefidfjclvqdkeejrncrmwveugvpcsmomqccjtvbiafnzybzlxdcnuwfvfowdkosgohyxayynqdzqpipkpvdnmdindielkxgbbzjlspvskdmkzybwmsxdlzqeftoahbygooodszkqswwjjdqgjaocuugynobaofboetperqbymgzfgtxqzmddbarrlxwixfzgmnlevnchcuhhbkkjegjksxrwttozthjxgrvbmvbwpjbxqorlocqjqfliofjonxydyeqftczriujbsflwibnkynjfrsgjyokulggccmljuvwlwbrnvbxdojdqcndfpfvmrdsflmzknafgcrjgnumewjoknwtdsgodcnrhjohifsholwrifyshwafkqifdpubwwtwglxzzreuezcwasjbheqhftgdgybaqgmtfsiuhuoxgvwtmddmjlodmhdxytibmmqsygclqyjlfmrulvrlrvtqksdabbfcfttjpqzfcjbtefdyazundpkkgiynotlgjelmxqcjtwrbwxpduzwyaekoomyziemcvkbhxmxvnopkjcfcrlhdycplildgiqhnccenrtoxhrkrunbdypvixciglmqbpyavdlsvpesjaawzmijvkwdfffbnselnicofqweokqiegvjnkddrtiedsdujpasrvuhknxistzdhmcawezcubdrhkvlkxkfvkcqusidfslsqrxcqbtlerzcxogyzapykkbpovyelqaixbttypjxocbxrcycmmbomnjdobimfiwgykvunonnwgzxjzplzogblkipilqdoinxawbkhjfftpoqsexbbnygjikhhwkqcvmigmbzaklbbmfjtlwkekzkzbdfkiauuhcmpvdntlqpdsawozotfmlpzhckcagpzzrksumfdagtiqzaiuxpjhuriqmjwycxbdmrcqlogsgshogwfivetxlzpyogqlxrfebokripcgmvakylxlyiolkpnfokwzeslbntpulvorhkgssqknlsfkhndvkyqbzptoebufjoljaijgseadzaycecxtsuqdrrogkqszhlakkwvpkkdurvkhplpnmzckrvqpdskjfdzyyegomyzppcoxukhfgzhxvimaywhpdlfftcgkhcspwezoalcglgubqoupyqdwqcylnfrufeoftjuyhsmyksaiodihlnwmjosnssrzjjyyjbwnpsfwiehqgkrbzmwewitehvigrbujpsonckalnsmqreezzbswepuykfdkccneedgrihymwbaajpoxlhthemahuaelkqtwfkbzmbbsbetuonecvslomhdepusxtybyvspkpbdpukfwacvplujypooyphdleowqsiulowbjvcbuyvjcfrjikrznzsakrfwskfdynynnnneorcrvsrhdzlotocqyvvsnjsiaakcyuvlpankacfuaynvxofaurcygaonsbjhhaamlddmaimqoraqjtqchhcufdixpsqeeyfqyerujfsppepprtcdctnpnytbppfhpvmgnwibodzsaoqotcihmlvtmmoovhjaoemklyeuhcejtnwofzvuvkrbdhkvmjmixaklrhnhjytnrkwobwwnwmnzeremoncofnqteawxtgttpakajquvbumkhxqxiqbhusvxhxaziigiiakmrxbtxaldokznknjefnpxnxaxtkdtcuprnbfkzpogeamcjzkiegnkfdaaddjrgmaoatqmxvvlbqmuewmidnhxsbozhlebcdductvvxhtajkfwyllcceltgyksrriswtvsmntlrpgnvbcmshaneevhwzhmaaoschtboenpmqwuhvqgmemvovviiabvwsnuogennmsmlhaocmtyqzkdockvmmzitlvosbjehnkneldtygsldrowxtblxylqgpqaksovnvzgtxaqejuxliabcjmmvrxrayakvbkohkaaqdyqfhwvxbvqtauoimrqfqcrjrrgwzxiszpdkeunmmkhagkygspybgwvmdeycazgzspoxuaptyxjeiwfmgnfenjyadczoujzieatiwtqokagrdqrqnohiwjdvufmryaeayedeadltjcbejryhsztpjzulzugurmoewigufoiqjkvgvivcxqvydutxsvgwjgzslckqnpvcdabeevtkumztokgfaqotbyxjmarspztbgnvjiydwujyplijxqunviudihjgcawhxcnusyeseuieutfpjtougjcvlzepytuoleahzrujxjppgdwedqghvrccvbukqdfolatpvwbppvuuicciyayqcrihqvksngexcvnowjroxgpagtllbyubcuglwvcluosubexeeueaihfcglzgsbljobpmzjrpazwppblowjayoxtpbppfksenmcwbctdgayhzeujqmbmxmwgfxsuixturqdzbiipptjqawmwxzncknfmweqowrsrrvrvlqhwzvrjogshjskpmdhngwtrwioqhrtosszludozbuknggkswrspfoeisxbhphxfffoiaufqjamqyhdesbonhontmzpxwrmsnhxqofrfgvuydkqexpiynomnovwosczxuaitxctrviattwfyltcqvzgpbxodygkgnkvqbmzrzfaneyjebhysjqppkswxgncsrzndufpmdloefofbamhjdebxpelypkiwbsxkjgbzngzdvoetuolddgrzpxqgkkpcijzgetimktzsfnpwxyjlnhbwxjqegzdnxxqfebplfycumbfqssvojkprcvuujpqkarnssraonqladoynfbqpziewnkqravitzolcklguwlatoimumrbvqoyoitpafxbjvxwxetlxehhwwfpyylwjlmjsxgbjdznmiuernwijgnbunwbkewvgqvlyhhnuutxpnlxbkllhycsrntpwusdueugvopgptvgpnbipyimqytozikrxqepiksithoxlobvieiipqgklqsexchkwxtyakejnqulojphzjcnnevfdrodslhmswejfdauxsgsxycikqtisacjwjtwzbmcrqlczhmcsjblveqaqehqmfiuhcaqwmvabvjloofsglbqsyzirrwftntrjdvdofapebndcidvuzmspazyfimtdonxyslcdkldcobxgjvjmaqktthhzcmlnpwfaaokpomacuuznpqofxvfwkkzwgnbppvpasizarhyqrzinxidpuaxpejmyzxmomcliruxwfytmofsfyvkmjeitpqszmdjsuijptbcvpofyklonpqiyuhiyqexgtnnooittkmksjnljzlsijkdzrfdemyucyjwsslajfwdtltaetnnwxxdvgpkjvudytibepbjkiiohpfwgccfqghbpdzsisxlsxvydqucpbevtstxxmpscfppbsgdtnvvekcfbnduhahtsbonuzbcunujhzdivhexzzqqzklwklcprvptqnnffdwlqzsiuxeuckzxlairfvlcidvldjlgbmnxfwlcqnqjegndgbrvwqkgqdttbseyircqnphnxiqragnumielsdrsdnyzrlufzafmagogosfekxiewkiahcmesgkiuwguzcycuyjwmoctfodizjqtrewpssuthlchbilakmkdtpzjacidychqfccihwjysvvmeuuefxdhmgtiatglhdflzbuccbihqxlflfnogopkjzsgdrxdfwhwxmompxbnryrgxyjgvwrluksmvqpzallqshymhomvofcclkyjnlrrbwatcfzystsfikksyewtcaqxstqbquzfabvfsxzspwonrfqdqhmvogokcaadffmtsdndztugzxcsphkeieuyuadmnwyolcbgchpwudkfuvtutwbcohcuzreoczhymgwhgnbdnqxdkdbvgwdthccqhkfzqkowdqvwnshqkezqnvhzupajtagrptwziqtlkhcmwvmpvgifjmpkwoubrffhualqlhtvijnisdaimlbqbzbpzrsafwzcpuhumguinepkvidsxxiglucyjwlurmkjprooashskojvoygueqwziuddtsocxdbpfjzuaiwwwmntjfqaggrjunvurtuotbzjvcmbntxatkigjqunrkzyslyemkqhgfqmnshubqxstwrndjodqerbstgsitkgukgzephybxgjixfxobvswayuqiwlrkzyptxgcbdyymghhixzcfpbfbucitrkjxiijgchuxdvgnagwtqhtqzcyebuninmzidfvvhufpxckfoksfpaosdfsmyumjphjskgsdvfsrussugaloqjzmpqlmssdxqvvesrindtzipbvvtwbgehiesxkbrztiqcbikbuacodeikqntgqdshhfkgtqoeqhpshsuqiqtcbdswcjkdtkcnhglarratqpzakikkowkziuajydfcqxumzyqkedmoqjukadcbjcnffuagwuldfcbgptpshsatqrdtssrzqbxkcsighfgblljirsjttpgzblzkouesfshkzltymycidkvnakwtiuudyuxcgvnrcofftfcmnxetcbsgllpcmvowbuxmgxshqzcybafgtpfcazynrvnktmlpwsfozxnkkgemmxyfeevnfuiswkpfsenumftymgplgnnomranlttlhdiipppaepnodnktdnthdnhkaristwcdbpquvxxgdmwwlfwowrrwfmwkdsrisbbfzimicddznlvwwhnphtlysgmkcuukjyyihxfvjavpiarggdmfmqcbifckbbwiaskbqrpdkspaehwnjeowhagfgxwfpwanmhedxahuaxbqxehhthqixrlgatydavokbvlhlyraycixlxhmlvhdymnuqjrrkwnoshzwgegiczmobygtkmsoznfyrwamfwvyvdtypesybglquotrkoxepbkeghoqxvamtadabeunsuaheyfskfmiutndtvbtjytiytewtghlcdhywseckbzkurtwujhciieereykhktiimdxoiwrraxjimriaysetpfdplpwfkpegsjvtcgfbnirlufieaqbmmfundlxvrmphopzmntqkmttjgfftejdkqgikwmkgnxqqwmeyeqfvropfzjgcyhtgyrsfuingkfayolivttbtvdpwlvhxpvxuumognzclnjeghfciaojhprqtahcocpwugaebeecjkvgmxyjpqzkuqxzhypobzgbwrurjdourlxrvzfkbllvrluzhzitigeyerestxhmufigbiwbqkjtlqrvowhrfzhocxklrvkjyhhoydmfdgyucpwqlmrqzazeaijthkbpihgcpziqppqpjvrgqomwdryblivezpdtkdsvkgyrtmrhbtamuaxrhvfochkkxfutrflrztpacqfbbtnqjajbqjraptpnmjyotvpwjuibwbewygvcexpgeiemntjaamjpzsihasbaejqqgniscnmivftcwapscodtrcwrlxmdudohrvjjxcceqxadtwnwatnjclatmhjzwjfwiipmlblchtrntmgrdwqesxapjfjxsijtwbwyixnmxcpjptsqpfrryngghjrlfnotvvdugadlqomyfnmnindaehmgzkkscwiqknrcfanhfazvnkdhtegcdecjmjbhhauoqrxnywybmpoiwiqagpxilpzvcvyxfwfcktjsvlzyrhtxeetmfbluqfqhvxcmxduxoispwpfdmznunssjlrwxxyuarkuagmgubsjohwukkzcpyknsouiopchmgkgoybrmvxvzptuukhazuapjciehzjpzxbvuetrqtlqdyqdgygrsazvoeivqrojvaamumblcbuhcrwehawsnsvqqhxilwjfewujstomimwriznqoeqouyevvoptwhcgkapyvfgjkbrepknifinwmfwhkcoktlafgybkqedxffxejrvsxjlpeqmlyhadulhvdahtrofvhmsgxbbvspttpwtmmfxdjszczohoisyjqsgjkxzmoarcamlaguouhfpnwkkrbztfppdnugzxvtxsukjobubqiklpxdnjeiykxpenqfjudduktqyyskvbxpnckwbegtienbiorwgqpjfdazsuebidhdedjapgojkqpurbqkjpvktdhvmwpkogjmdpuxxtdimvzjywgnviwpvhutwxwxzviilsblujmjgquwtoeqxpilhfkrgcisnvgrkrqxdaedyjfwpupwriiefdoqiozfwrksbydzlxyiiswcurauwgrxurhjftkdphppiqvlvcsxodswccxtlwvbbxqzqqlkaqhoraphuxplsewnqyzqgjxostouosugujyeeqogsdwgxucwuatjomyibhoyduakdbikbttsnqakkeiddhmqdnfknamimntljsmjexkyigamqxznwbxnnckbivgpmmvekmzpsxwcrhupdsqgbsmsejdqklzvyjxvusdwdwlqseprdyglmewwupgxocygwpnqqsnuukxsgetpkjrprqcovxcmpxdusfmesjnaurrgafnjbovsroglpdxjtumwduzrmznnermzbhicoexbktqokvacrztiufxlmynjvgvdjdzlczztdxkbkbevhbkjzqygwzlnzzylonozqievudwndescjnvowsbiqdoipenpxmqvmdheyvpgbmbvjienyvhudslzaxktvausygcpxmiroohyommjjqbrlvoijglqltdlgssehfkdsiauvzrbkgnjzlkkovemoljqubxacqmkwafawaadkvnvijlbpzhgaekvngvrwfdlahthlijpeehojnitcdzcbjnedbcryjjtiegqtabowfuuwpqlcshwrmglsllsprluqeqhiwdwdjobmkvdmuoaesugxekizqdtcrholrpdndtxnkbwiaovcurmmyffqnnrotuxeilqcmxwprqgqchdkmmbfqoplpjaljfidjrqmiduvcvgqzrnokzzhzxuslhgyollcjgiekdclxmfihsfrvgjxryfquljehmegjmrqmhqcojozxjhyybedzsfexgnqcfohvnugbzvboksptnrmmrxngelltcgfumrbnakmxpeffhhznrougeniqquxxgkvjnkiwojsrcntlwmkbwrnnovbhvykjifcsarvbcypejzrfvcbshtkanodujgcldppydbxbgcobevvtkjhjkxjjodxkxfyhyghucjiqbqrdpibvipkbbsmcrhloztwaunmjpwymrakhtwvqqgckdnniafktvmiondrewtygwuvuogenrrhdiqzuygpimjpvjkxcjsfemlaucywbitfzmuttuvavduuvrlhgvvuephgknserbnlgpqdldlulccjgejuobcemvpmdltgijhdaltuatfzgezlfqafcnroedbnwkrccztructsfbnancqjuryroyhevuulztnwvwasnwjkhosnyuhjnahcjxqonowxenykvybfixtoshfjirujmlfexzhzqgkfndopmmyjqyuwpzozsczziqnhdgnmzgszdwouogpdcixoxuqoxgtjsvymzgkvremrfuawjigkmicvbbwjprbfcekrjwzxufasejdmourdivxsftwncvbhptydamlsxiejnabsvvrbsyomvpnsocnfnbjfxebnpsinyjnepjxsedqxczwmgkvdsdmrkbfaixwtqtufqdralwuwphtelnlzphmmzfhaubtywbeuixzfkvomitbtwbzaszmzyevorgcmgndfskyorhuzjemestwdvncajumqfinloawqfgvdoabfwrzarjpxvhmamsbvuiqpifkxcgacbzgkctgbqjgpsxoaepzvpdczssvxvtpidzxdyadhtkkokzjihnvyjmazddrxrglmlfpxljcsdsksgoolbiqyknggvphfmvpxyumluhyqoeudmhmrwbxszfakgxqouxejlkuobcoixvoyicvpgmtcofabaqllayrtaevxwncmywdnsowjrujuflwowzaplelplcztatafhsrwcezjdxcgkqbeuufryzuflafcrqjvtixjryxagmmunfjshrjvxjuguypqysyuvawrgayuzpmggtzlsemflnzkkaqojavhhwfpszdrcedjfpforveeoohvnnngjnopcgdrdzfgcxifscfzopzakkdkcvelflvkgdnwejiivgobtllrlonpvyhfetphvlhkiugqaucltgupyyybvuusagoatcjzgkntcrxsfnbjjnzvyexmbmqzbcbubvitmhlpatejnujwrbzxonmmaugfjngeozueuyvqgkbatsopeqhqkrhkkjdujrlauixhclboxfdbermdmyvgbuumsptiaeypgxcveiddoeonuqedkaxotabnocwlwmfbjegghvwejinpxdgurgmuytinqzukrlzxsvuhgmbutktllhimyukzjrnympynwrysdusutbpdfcifmscqxjvpqiyccfbggwzhmnqluzmuhaoiiihqktyzqekffpjvbvrtalsjtqeucooikhawsajbidtjtlsnlnlsnldjsmdkkinhnaqxaksxoprsnnbdyukdmrawocfcvojqgixgupsbdtsqyrnwjsdbwjjsepvuinsyqszpokzcjwxwgyaakculjysigsphntbjdstctdevusuhrfgdhgzfnfkjnqshhqkibgaggaiuistjtpqdpsertdeirrsbtknoiiaslbcgzjjycyfpndytpcefztzpoalaqjgctfnvmhxlxhnawstmceayzhjgbdjtqsnduzgjpjmmwithnimqyqlkolqjxzgxjvlkczobfrwfyotcfkwvrntjqnggdunnfahyboleuipkjfykzlfakamhrfyjjbtylvetofkkuxptuxzcwjabpnbohdnikwommthdwvltzbgpkwrghkejbzhrelmicsxfxevzvqzvmhzadacudicqhbstudessxncalsitnopfaebgoddavfrydrywtvkplatvfnjdazogagowoxvunlciptdsanikvrgsagpgmbqgrqjdlihzuzuqasvjyemjqxgewnjdgtewzgrefsdewohbhqamfmlruhdzldslkzmecpdifosmrpllfwecuyjtndpctennzjltrmqqxmkvkkwzoqtgzhtgeazsavhfmsmugsmmiduvrpopbxrpaujditrcrcokqhnphtxjocifnzzivhfphiwpfciplzwnbofvwyhcfbdnevpgjkvpvxeedqnwlmzkfoxziobutxjdzziwzwtzudprzuabfmzkpzlvzruzgraxolmrldlagtvlmatijzqkbhrzvawzbyftqixrrizxuqrnygfcwvbethtgkgyucrifhpcqaydwsgvlcpuevgloofobpijilifyimpybruuspkvctrjpdsixyloxfaorvmkefxnfhfuwfnezpzsnoxfjpblpyqemkwczrdvvzqyalxdnqobxrzqvdpyzvpnvtvoilduhkiplghutgxdypilssrotiabiqjralaofsnhizhfqlgbhjuetehbjrajgliirhkboqxjhidpetttuopcehgcgrhdquoevilpiskwwnqfojxnbrptbsmbujpnubecfrddvwtvggzxpforuhapdgrnxsmyqgvhzneyoydpjxfvqnxsmswyvvvfptutkxmywewopmhzttfulvfnagsyxrpioiqjmxjhhouwvdxunbmfsxynjh"); + sb.append("a"); + return sb.toString(); + } +} diff --git a/src/test/java/dev/stegmaier/leetcode/services/LeetCodeQuestions/Q3085MinimumDeletionServiceTest.java b/src/test/java/dev/stegmaier/leetcode/services/LeetCodeQuestions/Q3085MinimumDeletionServiceTest.java index b52d251..c22e49f 100644 --- a/src/test/java/dev/stegmaier/leetcode/services/LeetCodeQuestions/Q3085MinimumDeletionServiceTest.java +++ b/src/test/java/dev/stegmaier/leetcode/services/LeetCodeQuestions/Q3085MinimumDeletionServiceTest.java @@ -1,5 +1,6 @@ package dev.stegmaier.leetcode.services.LeetCodeQuestions; +import static dev.stegmaier.leetcode.constants.Q3085Constants.STRING_WITH_100001_CHARACTERS; import static org.junit.jupiter.api.Assertions.*; import org.junit.jupiter.api.Test; @@ -38,4 +39,47 @@ void shouldHandleStringWithManyRepeatingCharacters() { assertEquals(1, result); } +/* +@Test +void exceptionTesting() { + MyException thrown = assertThrows( + MyException.class, + () -> myObject.doThing(), + "Expected doThing() to throw, but it didn't" + ); + + assertTrue(thrown.getMessage().contains("Stuff")); +} + */ + @Test + void shouldNotHandleStringOver100000CharactersLong() { + String inputString = STRING_WITH_100001_CHARACTERS; + int inputKValue = 0; + + IllegalArgumentException illegalArgumentException = assertThrows(IllegalArgumentException.class, () -> q3085MinimumDeletionService.getMinimumDeletions(inputString, inputKValue), "Expected q3085MinimumDeletionService to throw an exception when a string with more than 100,000 characters was provided"); + + assertTrue(illegalArgumentException.getMessage().equals("expression length exceeds 10⁵"), "q3085MinimumDeletionService did not throw the correct exception message when a string with more than 100,000 characters was provided"); + } + + @Test + void shouldNotHandleStringLessThanOneCharacterInLength() { + String inputString = ""; + int inputKValue = 0; + + IllegalArgumentException illegalArgumentException = assertThrows(IllegalArgumentException.class, () -> q3085MinimumDeletionService.getMinimumDeletions(inputString, inputKValue), "Expected q3085MinimumDeletionService to throw an exception when a string smaller than 1 character was provided"); + + assertTrue(illegalArgumentException.getMessage().equals("expression length less than 1"), "q3085MinimumDeletionService did not throw the correct exception message when a string smaller than 1 character was provided"); + + } + + @Test + void shouldNotHandleNullString() { + String inputString = null; + int inputKValue = 0; + + NullPointerException nullPointerException = assertThrows(NullPointerException.class, () -> q3085MinimumDeletionService.getMinimumDeletions(inputString, inputKValue), "Expected q3085MinimumDeletionService to throw an exception when a null string was provided"); + + assertTrue(nullPointerException.getMessage().equals("expression is somehow null"), "q3085MinimumDeletionService did not throw the correct exception message when a null string was provided"); + + } } From b74bf62dcae1cba949376314b5e148ad6e036cbf Mon Sep 17 00:00:00 2001 From: John Stegmaier Date: Sun, 22 Jun 2025 17:55:50 -0400 Subject: [PATCH 11/12] refactor and run maven formatter --- .../Q3085MinimumDeletionService.java | 17 +++++- .../leetcode/constants/Q3085Constants.java | 24 ++++---- .../Q3085MinimumDeletionServiceTest.java | 57 ++++++++++++------- 3 files changed, 65 insertions(+), 33 deletions(-) diff --git a/src/main/java/dev/stegmaier/leetcode/services/LeetCodeQuestions/Q3085MinimumDeletionService.java b/src/main/java/dev/stegmaier/leetcode/services/LeetCodeQuestions/Q3085MinimumDeletionService.java index dfab8af..c4c6bb7 100644 --- a/src/main/java/dev/stegmaier/leetcode/services/LeetCodeQuestions/Q3085MinimumDeletionService.java +++ b/src/main/java/dev/stegmaier/leetcode/services/LeetCodeQuestions/Q3085MinimumDeletionService.java @@ -17,15 +17,26 @@ public int getMinimumDeletions(String expression, int kValue) { } private void checkExpressionMeetsRequirements(String expression) { - if(null == expression) { + validateExpressionIsNotNull(expression); + validateExpressionIsLargerThanOneCharacterLong(expression); + validateExpressionIsSmallerThanOneHundredThousandCharacters(expression); + } + + private void validateExpressionIsNotNull(String expression) { + if (null == expression) { throw new NullPointerException("expression is somehow null"); } + } + + private void validateExpressionIsLargerThanOneCharacterLong(String expression) { if (expression.isEmpty()) { throw new IllegalArgumentException("expression length less than 1"); } - if(expression.length() > 100000) { + } + + private void validateExpressionIsSmallerThanOneHundredThousandCharacters(String expression) { + if (expression.length() > 100000) { throw new IllegalArgumentException("expression length exceeds 10⁵"); } - } } diff --git a/src/test/java/dev/stegmaier/leetcode/constants/Q3085Constants.java b/src/test/java/dev/stegmaier/leetcode/constants/Q3085Constants.java index 47c30f6..7bd5207 100644 --- a/src/test/java/dev/stegmaier/leetcode/constants/Q3085Constants.java +++ b/src/test/java/dev/stegmaier/leetcode/constants/Q3085Constants.java @@ -1,16 +1,20 @@ package dev.stegmaier.leetcode.constants; public class Q3085Constants { - private static final StringBuilder sb = new StringBuilder(); + private static final StringBuilder sb = new StringBuilder(); - public static final String STRING_WITH_100001_CHARACTERS = build100kString(); + public static final String STRING_WITH_100001_CHARACTERS = build100kString(); - private static String build100kString() { - sb.append("anbdqfaxjxdvtvfjfdchanidtxlnijlrcxbcxvorxqqtifsjpvrzdaxpszjpmnflqsdbfnezdrfhciegmyjnpmvdplbjluqynqxrbwgbpilucgmojxtlxewkawvdaxpazuwwvufqtdqtlrtkxwvbfdpmdutzoqdaykifgekwyiaowzlcehvabxgykkhyvmkqbxtbrdjrwdumqtrjsfqavvpbwaccwchovnphxvoxuyxwhxuaxyzsgrvethagokvpprgxlzvohpaqoxvpazbhwbdxhezvrvqeeveiyrmrcxakkbiuiowfhbgixkazykgkjpuffbbmsvvpbfsjwdxifokttenygxbdurlzvfooiyxjskdvubwbimlqzyqmefnwnltmloyvbedznfnkozdgqbodflzfalbnceislrikvvfualrtocczfuhucpdqbwhsnnhklrdhhbqkxsmmipebpdycfnrjjwfsublhqdqrlhufkmfmfzjrycyxnnokvypuxuyeyagflohceamgvlbqtjizxyjlaphuxwiclznnbevrywslooevmcnsaqkdypdrgbsesyiykugvnwnohximtiqaghpbdrkyypzbsitqgsxheywxsgpjagkwjqthcskgllipsivwckfhxkrfbbacxrmksykmozkcwnrmntllnifusrcaftxrxgxuipdgyezgsiwlbqsnrrjwfcglknrpjdmuchisikysmthxqzjexlwjjhritkxmxoarysskzkevnyncdjmudxnltpzkfiscobdhlioqvhqywzgpcbwefxzyellokuwmvyzfnpcxkgugplaofsljgmbwhpaagngiybcawofebhjplxnjdymqeszlufwjicqgzortqhgtwichcoislzilpwrdjmiymzpklqmbzwhpocvndecqxptwifgebmwgamcotrnhaobwcfulcizxlrdniynvdzxqhpekuujjebxlwhlhrdojmrrykdrctngnbioxywaofkljwaighninivespmrafgtrkzdlycuncykcqsnsglulaiifyzwifmtwitolmnreitgkskprnpkoxlqqsdqtzfohrflrhvnaygfpcdevowicgevnovdekblrkjeqnkjxyfisboqaattoicozdrwvxburkpivdbgouhxjhzshfzybauccymyaeljqgxteaonjferjsaprvtrzlaepbdyedhaswmrkppofarrfnkozvkvoeaporocmpvmoejogwcppprpulwgibxhwwscvdsrmcmjznwqasltjkudmkaajxvjllnttygjxvmnypligcnptwazkkipsypxblwhhoapxetlhlpcarjrbwltmyooaclpirmvipagdqqzehmqbqrfzrowllwvozikemtmdzohndzilihpnjbrbbyznprfsyxattqtvqshbsfvpfnfhexqdtsmvsdqnnkzdzxbgakoytxgkelmlbgsdhcglszyskvxtnagaaibbmuomncjdxyfisfycdclaccqlieyrbopmqzgadqjatymbqjqplpdgnbzbjwdkmcyjimzwynahtnyvrjwokviwrtsixsftnwnxqrdlitcdfypcvrghhysmizvpldipjjykvyoxvvqhgpdssbocjniywpxjjpthaigimklkrbamsjkngrqogzjlcenyrjdekmjtnkuxalfyrjkbzmpgdjmbhuhpzebvliezbuiqdvlsehwxqtfprolodsmkhhqtjqkvjqnlsrotlmmvdrgyaynqkpsqbjbvwjfnsfqtpwdlqixebkmdllqnpdfrjrhqutjkfsxxwkhstvipropthkrphytvmzvpcjgvuzuilbxlwqijvyokrwavglqxrizxnpqfxojglwqcgrabffviubuunvvvjkntsyiushoxrqxjjefkznwtwoodjptxijtetzfghmwzocqkyugkxipzfvlluttqfknyawsikopsjrqtyqoucmfwgrstaykfrtmikhsfqnfmjlqgfyxddsgobfehjfgjqvhqyrogquozaalqzaftczmianpwlbxzsubssxukcffxcyaahcmfyssdtcqvuewwyomazcatbourekwnkzdooucdentymxyghoayuukjdhzkvjebknldckfedbgotsrlopvskupvzdsfhbkfifjpmaskmxaxznbncxgtzhiulfvxclrbmshfagzcavvbtaomoxdwmwmyccexqivxgopegphnghosbhmvknmtnmqmwzhdtdgejoqiqkocphaunqzmsetzseqhjkfjfhlkbkyeqacloqkxnheajtlvfyskyalmeepgiykehfqjodfhshuexumpxsfajzsatcrlfdlbmlogcxzfsxsjndlddjxygnvogfqtfcrgcjdimzhakufmebqvgdlsyfadmkjasxeuvsbsybcxkznqxlqaypitqdcqfjudfzvgtvnqplevijpziipndskfzipuurcsecwjkawhznxocezplcpslwfsreafzgwzihnaeftsdshqifexmrertgwtsifxymljvighkbvjwigviybmihqirjxwlvyelfgnqbnntbnpkridmxkrzqefuiqaoflawiinsacubmxdfreesslkqonrjnwydfkludxituraqzawswsbdmgdkqlyrmmdswhsswlatblrfuchyoyamrfxaofobxhhrayzsmotpsbmxogvvdnsayzrnjuyvwsqtjuensfzdpnydqfwghiqisyhhspmbudevnsvnrfqzspfkkmbsjpcazmosmwdzrioroytqmgzwwnvjkpubdfaxkvpgwjqduxheuyebihhsaqrwtahsbajnmahmgtpibynwuskrrnkiwvejdnwswzogklcmhpklkzbqargrtkpugbrbknhlfadqyksjztdyfxhjxckagjjiiukrmmsoukfhwfsehvkozxwtcjqtufkyqsjtvczjesoreruzyytvttdwomyjzvpwvvtkuncrimgvazhvvcdttxoqqjiljnshdlwoenokesnydispgwglpctzktatpmovsavchcglyzlccwtwywfwrugvjegyyacxkdkvtzoociboukgpjwtvmphpxrjdvyaekhtweedtkehpghcuicnetyaqqzwcoqqcmmzfjbjpeeanwtyoytjcigtnfmzgpbpbxitrhduvcfayguufdzikyeowaalauyuejlanpplitrodghnvahzialtqaniqhuslrqfymaeqdjjguyuhbgzxbmmzwkumcfcjmyoxgfspnpoqiqppazawtpdmcoucmhbggexoegpiiazvzfswohnetpsvwrpkjkdyexizdzkuqseceeaybwbailfdqstzmxkjxrgweaqvkqwmtqvmbjyysfdkpstrjkuuyvnooadhoxfntjztsnvfflyfogxlokkouzvfcpvowstvddbatraxaellrnnllvumkuvxkjusatyhfuxnspaxrzgxyxbhpdbekzuywcxqecheiojpnhkmsxwleagpicuktpyxflhoaeivmhoysvxhrnhclnmpujmssvteirkyqbmwzrsnbwkjwydkygwippaceoxbjcpcazaebyhwqucxrxymgntzcqzndmgnuolvfdemsvybxazjwiynkedmnjvsioffuldckchibcrihpzuhtugbvujlgltelumzburfodugjwtwzoktvzlospinntzhjrmrsupvqphdaqiygxdfkodrafkblrbkfnlmxlxgddcbmmpckxvtsotghaiauhwhfgegoxscsuywgllyvbylnwjcnwkyfqtnidedhwawahampccazaapjgusjujntvbuyyuznlhfqbcdfumlznfxlyzphaqeqtxtsmncultimqezqslkisdlvrmnowaayejklonypytfeyqziehijbdjrearsrajloqbsxdnlqbtkppuroidjhuvhyrwjbdkxtzftnvfyoymnrcrmkaefcclzmpxqnokrujyucuojiruztjviiwwsmkqnbefowalagrwmxgqcjzfmrfnrodnxuezkccrgeegsaozyvhjjjwibhxgsrnhaedtmqahfttukkmzvcwdiyrmseuyjwsmgogrousadnikaoeslfikeglqqaylxwndlbrrqnpgkfqaziqegyamurmzhkdfwxnyhraubpnbtbiitqsaltebbvluldopjsbnhwhijqzpjfxnvmzxxcapmxabgrpsvpbouiqhaokwnnoxetjzcilnrcwxfnjhlrpgumxkykhxclubugosfbygomcszzxifukrxtuvquxbzgdayesofcywyjswymaljdjcocjmjjrauokevtyhzrcmxwlneplgdmedkvjivyxhkrvheqeouvhustfhzsawjeftjwezvcbibhkawnwnpkutadhtlbthoaguzmhbseowmpgbxvvjapfbahpklrghqgfqcmhmzmnseosmweomtofsruxfgkfcvziowyirbhmozscprchkhnkiwyylkfihovjijgrxyosyuqlgptvljxuipoymozouritbzbtxjzqjtkszhewcoxahurarhufndxymkgymfetvmcpnydgyiviebjfkrckqsmzxuakjbdimwsdhgqnhywwuojzjssfcaxqgsauvvyqyehvjfrpbeetcpnuokbuvrbrzdwqkjqcghjnddjvhsazqqnfxzeqxqhrbqgtcyblxleeqehvordfctdojcnnhjeoajeuebajwkjqquncndaxanmjxiqduuikfhvfebpvjtqihxdipfbrjdqkocjzuahngmdlysjrnmgspdcgtgfocfcsclvniiayjmwghnxqtphsgsjfbsophezlndifyqpkxxghxegcoivowqlkenynzsehaxmoebyxecshqxabxxhqrdgwioqtyoqultvtpoxjfsacnpeiwixlqujmyzfwnuwjhqosoglpqbjekpbvukxxjhwnyyplhokvrpygfiwdorlqfoszpqpkarltkfitehbqgkdtkdnefwwtbjfmuqjcthtegjekalhmnhkrvxzvghjncafljxzjcpjywfeyyuzrssrbtvzrujnridfpcjnefbirhvuhvltuwhgpliewprggkxrsleobecunhbbbvvdwaozknuobdfbqswvunxsdxwarkgiuvgmwefbtquecwlbodxvoqmgzwrzkhubgvlcturvszklosmnwmpwlxjdjxwpuvylquzgvxiocnvjovfisfgwrfpnqxavvygukrdpvoszheejmhratrvizkrnxtlyfhbueoinklqvtdsajoyhqasyzkiwgwkxlzukmrbtfgukidugsdqqylbxyntqbyrrqokzwgvwwjizihyinyecggxfgnzadlggadncvofaurygfcikcsowstspilgmfwvtkhxpahkpnpejchmfvdkazcolbwsjwuiaqesclgvpougmtdlwwywzrhowvcchbsdxpygtnnojqrzjduniflmzgmolbpfundqiaihrevzudpcagapyocqakcgopsfjrhdidhdfftmzdqjfzeedegbcvrlraryzsuffdoqcxekhvonklujzrdbzldslhqlqxdqlvtuasigziotykeuychmpxqjemzuaypwoupwcoskuwdgdfeqsqnayavqjaozmfijzodxzahioumgornjwfxtnsjdqycmhofrmqexumlzmffspkhpedsjpmoasqvzgfvortojphtwtscqxnzpbhgvzjtezsrptvsysilwjihhnzijwxyghgtanhvnhcvxligrgtiwzdrcluunzebnikxmafjucahciheibtouwocdgydklqochqumdxjcznysfaxgdzfkkdafwklgoadyfqlbyvvzdjelcexafjxpeiipjrgnlcwfhemiepkxfjsbitclsdomkqvreavunlfucdclyxcgkonugnfhkltjvmmccbqcykpjehxmlmlksdreuungllwiusylyktrmmqjblugreojdeqekqitlsctxyyurreujjlscvmftrcrxhhtghiigdjesdmkzzjedpbhqwpslxjqpxvvrtdagilrtokuqsgdijhawgcrlrxuhizcdbmoofwqpbdsliwquboeqeeqrzckqvnyjpimwphehnqyzeopudzrsjlytipkrodnxxcswgozpintrlbrrllaiyoxbzohaurzfahckearddxnmzbjyqucyffjjzotkywoehuhifqkvjiausgkydclesbcuoyempxtcsbonbuigypxkrowhyqmvopmdorbhyxjvllgccvlmggefcwxncjhditcmyqmjcdwvljcjeppvwwjeoqcqjwmtpikokyovgsogvfuwkqvbumkcfqopmgzxgcvbsjyeozrloxosxzgnjspexifeuyzaquawakeeieclnujfxtxnlwgbdazqtbgbxzlucjfltblscbbqmcqztgnrcrtimsivvquicjuagvectaaspoctfhpmxqulevlxuchwajdpciehjrokndmeyhczsgpjbasrnkcdadynxmwkjxmrrlovjwuottjodasmvuvclqwfcllorbixxydrqphliztyjwgmbqigoumlyrqivoqsvctiwxbvsmnkbegxrjvgxmrplronqivkqjhialcybuhoylsdkhraftefhodngucwynuupoffdcnoshdhietdtntkxuozwzciuukyjhwunuhbrvqdhqpiqupfdzefqhjvjfchlhfwnllpepxgccdwdlttzgiaqzxvxsuljaskyumhtjscfpzcdftgohrgohynpxxylmnjxrtcftvllygoggqvjvqftgbeigrxrgtrzwpjuqlmglccmfnqzvwvzofthvnrukxcxgsdeboihjkmizblqaxpxsuzfxncwksdbfqzfpbyjtogwfdjewtslwmljkwyjycmguntzuziehlknbdujsewegdltqqesdbfnsewwxlktxnbpqzbecxcyyomsginvnimicianmtaynmpfiiivmmqqeparxwleixnjwfhrwissmmdmleobeabawtqiwxbecehpnyfbaxtwncqyttqworembiibuwcgejvdodfufwyufpbdhmsmdkahnuuvvmvvydajuuqtofzxwjexvjwkxdzwaydhrvrohxvipcadafwtvnvpbopgatcofrxuxaaypaabbwvpmdazwomuebwfitbbsikjqumcxjcjsdwsiyzbvonxzwvqqyhbmmafplirgmxkximeyrkyuwhqtgbibbdihgnvjgpkunzzdfogdezbvvchltqjftycylhxtpjvbtxdgswzljxkzlobiwvvniugqvkxyzhnispljqytfiislueefluuzsgtzmmcskgileskpsmguunuhxjqcprvdujcaeyrpaubjocuwcvwxqxjhlhjtqsutfgpvbxtpivmmxgrasthpeyzcteirwaecjhbyyxtedeikeiaszkhsxbrolmuprkowvtkclkasqcmvoxtkldjcbkgzaaybamsjjzsutyvjwetgtcvamrgkhinjrloyzxycojzvxklmgecpihqocpliwrgcsaxlrpvzftacwvneeheqwfyxvbdxwnvoiubjalxzwgpbodmlyfpvgqwrfblglkzyukszrwbznfwbfuvodbipozvueoyrtztiwojqxjinatelukugvnnuhtxomsvivtsbdycozhyicsqgbjqutbxudhllhmjhsfxedjkdmdosnzwcljpguihrshdbacyvjcvvvrefventmzjeviwgmdjhlhfmzvkcmrjiuanqobfvfauuwhzmkeehimtzetsdhpegmshidazcmfczurgdmdxbbqixxcljqilcgmsgtggatnsnazdrrmqzpzneyapxxejefqhftyysghhuodiqxjxkkuweszzgtvntxjwqhrihnmhonxqsstrozmgwqhdlpwvthtbtzlybafuoucjnaupyydfdqzitiycamrncfexqcripxhwtgiixwwbfhasefjdlqlqejzmyklzoxpdtknhrofvrtwijphwdsjcwywvcazrwcxgqjlpgzcgznctpzyvqfkfpseodvyujkldxxuvviicsygkhvfwkxzaikaiqqzkzztolpbuugssacmauwgrwycttvamdeysgnmxwodzpcxhrfjtaumutoffufzusjjxvrtfxjdegdfyfevmxmnoltucyfunwiucbdvgfmwayzhzmpzcigfajzyitavacejyqvclbmvkswmukuijttywhivxzndtvduyewextpwgugizsarxcuyhnzpsmavufsxjanvlmabhmmyedylbpaqgupqinsjojregbvvwtqnbschfbtmxrmzuvuihwmumeyxwauktofkdehhtgupznnwcjmcvkzodqowjlwrgmphqfxcbznrdrsyyqybxwrrzglhzcfqvsduqewcbuqcaudjcuaxvuvrxgrgrhkilqffxpumejdtdrmeuhloaalyeqsmfbdbwjpyomwklaonnlclevbinutljpeaxmipocelnahoqpzncgewxkotxatdqmsmftiihnqnnzntrjowutydshcwobtwcizzbamxsaeukxedxnzistibwakiswgnkqibvmjpxumyhxbwktrzidkpbjuqasqqkpgmoisiszecdvbpmeoggdxrkixwgcmdusxrapwngvxevtzcjoiwehqlvuyostuerpdwyflnidrlzaeotfcvamyvjwonjbduirqkfnuidduvbxgodcgarvigaozuenfaopovbyxtlecwfbzhnojklcxbkcmvvpclpuipbtewmwfrygraottqvmnoigzzjiemvaxkhevwyczflndsvlvqaqrwpkitqcgnrwehiqejrswiiesgskqjrilzhjbbkjwnrwjvkfcodsvlgiznzdupulbfnocrdwlsxribwcjncoicuiirdojqkmrtvmwjbcbztbqasaenflihgbpxnixswdnjecqebwawimdpitargdxtvweisszlaxmjvnrwcceyoukdfpxamwdniayjaafhciyrrokepaczrtyjdfhwizeovflibylhskekygajbdtgiqkqdvhwmwdnalwofovwsdcoewusuevqajxpfsnjfpanroaokyvcnwjhfzxldexpjbafetjuutshdgdtttoddvwebkfsdimlzwcpessunqdobfcanbwydhcscmxhtmaolhggkwxkuxtpvetudraehqbjmnzvorwgagkfwrsvhtdjuvyihehmnrknnhjimzvtjzcnofdebcmqvqsvqwzsdzazgrlbrdrffotnhjlarddlammkmbqxwjbigpecztubekgfjxqlqmtuoqjaldjckvnjrsgukbbwfhkqrtbksaqksyefncqqmpcxczmenasmysnkvlkgziqkfrlwjsmnmnqeiaaxcwxcbmpispkhfcpnxmszxadpiibngubfjjwivxywxkhxuseyrjrfmywckssdwowiujaqrpysbdelsuryscyeexilwqwpfaugdnummsvnpgncckydcdbajdzmffimrulwkybaxlnriizfbauignojrohyllpjovedmtxfccnxxkqmlioelrtwfaizqbzwxpgqgapizmsiwxotvsgyjectomcwmpehqhvqgmxghcwevftsbcsmlagrlpijfyhqeszjdgjyidnlpjvzckaixpbetivncryjatmkdododkaqekwihhguprayhplkhuvyjwfjgbmrztfdxnalmdyeyvszezttassfxyxejvmdbcqsxcrftighgnchauqwueojqycfdavyvphdzkqqdetufqtdcedohijhqtrwvvaqnsdzcmfzlfbeqeskuzqvyqsbxnpvengusjgdocylgqfzmskekhdxoluulkmjlygrsxccowlqmrpzixidwaumqbfchmpzmqgfqntegzwzgoqxuvdcgywinfefxxrugzlhtjujdxxerujfblyxuacjpycdxqwkrvxflrndqdpqwpnimzprlhcbxrpslmxicrkxxjzijqezpdhgkktspmuocgrjmeuuhittftaimnbpxvyrfmthdnbezktnjmjyszmuucdndpikdqewnobczfclbvfgumwfsinypmzmrqmnzhmxiesgoakjezmhmzrbwgeiqieuizgyxlsfzwpxrpnxkgjodbfgdsmunjxopabzefvkmpujtgzsxbrzajnhqrbvzxczgfaeelbhijvqkbgpfodryigvhhvdngqhvndojzsrpvbdouwcejrmxjgdgkvltdoiksclgwdklxhcrxupktyxgjwhniyugowjwmzzvqvioctmqamhsnpokowzkyrxrcdyesasiwjcghcvvlvvrtsgvgchjjbkdejcihoqzcazeuxumussmlvtvbywxgmauxjqnhbsjkdypaunirffjaeqasdmwrlzrdcvkktfatoennpxfgxgzsnkouatjvnztptshbsiytzhevgknuyqwvnviscagnubtrvgiszxthhwqapljdjxvjkfkncyemqamibjohedjtwguapaithzetdgddsdydxxpjtyjlwjxzsokbwwtcpzyalbxvlsqrbazzenvkvrjiazaotvfcygfwrquajwhfvgsoimaekfaibkyaugnhfxmogjzvdtiytkyinbpkzujmfrdgugdqofxkzmpjhesgykqckpfkbkstgtrdypyitxwxuuskmkirynzutlypnbjywuhbetggxyiyrvffigbcreosmmyuzjozuzvtbyamzkyymlggjlxsrtexxyefxtmvhzcxqloqxiuhaaehntjppyyfshdjcfwcxwddhdzykwzseypuiofmobalwlrmqdnoqfeechdsvixjndutmmmdzfztxqpufxhmqfzyzwjefbjlxgwmkfxffbpnzsnomroohazxhjgkngdmxsxbypuhefxohgazzifleaxaqzfqhbduusyrcacshjulpddrluqakopkixexhsfbgvmpvggsvkrekuovyosplmwzbjrdfyliicveuxlhcrwzjlvvxzwwcmolnjauglmsbkukvfxzbaumgzmaqrkybzplvapslkvqmyjqezoxmhylxweaeoowlmkorzdazcmytuiacntvpdzblhryulunbuoshshzrftrdsqgudbllabramhnjlbnniuvzxhdjcgmcusjxkkinjicjswwsdoswnerszltcjolcyeqgnwkhcmmifhvynypwigmumzxnrzkriodcixxwqlawcpcsfegcbravybqgjkinygzcqdekkbpdcezzjyhtswsgtzuheplmvfuaussfoaummxkreiuepfdjrfbwuosefauboqjxheoxoecbbchdedqyyomqipuknbmiatpvbxfccupaufbkdbvnhxgjrmhzgdamvefyswkuodxamiitepuvrigqpagmdfvidvprtukdauyxortolwulysptgwdimmklqtibpddjuqbzumucslyphkxagbcxfyjyvkashzqctrastonpzcourvaxpdsvdzqfotlbsxfywxstyxzxtsqgrnveybqxpljiaecczfczjrtskksavgcpbjgpsrqlckbdgexkcndnpornyasqavqjonkuiehtzlxwwjiuqwnvcgcqrrlswoekudttbihobuqbdzxqdxrjztahcyzpvzeygfsjhirqhrnzvnurwmzmondkktjxcpsppbzdqmwbsidvbtenbqgeqksrbkjufjlblemfmhrjpefgelbkmftjjbhzxrbiczegqntlvoszwdvkjgyltmbxmbswbsmyqtofcczjxgxmvzspvaiahmmxozrvyykwlqyyxsqbjquzhywpcjlezlkhffjzrxvyvemnguhaduyhjlofeqljmxitgupbaoinqacuxqgwamaxlyedlzrzzmcouxeqpzbpwiobwsyceyxqnbzfrkpntnkoommzzkathtyfcayokagtuffilppufjjbzsrpmhkkfwgelwqkafgmrvbqqogqxuaovxbuwepjctmfprlxlcxnujnmvqmsnpuhrgpqnzhjmpqkrweotrlvnuzhqiibjmfcrikgtftuxixxftnziehdwfztqbfacjcmsfggrsuzdnptlrwauogkxgnktkpvdjebsxuxtpzzwoyevtvihukynheermqumlltyfjivnfgdvcgoqgvbancuxsrpczbgtvqgfwovizahdctprjidtqchjrzkccamxdqwcldptrbbbyaxwzfbnedorjmcyseaofjqdmwhctzjpynkbdbvnkzsdislmivgtnyjfngoarfyjhwjivghusxifvafjnexornwbpklonkrwujgcyetegcnbqvfetwtbqboeoggsmngilnuwfwlrdcspmeajcxhyuojhmneqrbutxcvmlpsftsktbbrpqzhaiilqjhswnhxszmjrxxtcnigvdnfidijahorzzirbnkewymiuyeznobtiqcofvvvbtsdfarupunvuynvmleqfyxkcigsihtevuemerjggcayuahzpustfwsfbeyhsaettrcbjpnwfydrquifbrtapwbmokhaelvxkplfaxubrfmctiafjyopzfqpuhgvrbnwiunurtbxojbvcqxejslwxhguxynfvsmrgkmcvzjvgujcfcjslxjtmxmgwhwxahkkligihftfrxkorzdcybdmnabnvxzfmtnltiuenlepugouzifujwqfsngwsqqiqkjoibvncfelzlyjpeclocmmvltznlhuxbvzgxuznykrwgkbtwhznquydriymfxrsejotampgwwufsemklpvgvlxhvvftflvziuowqejtxdnyvoljlmkchublmcgtkcmhapvncghygmhlqzzvppdpqdqjvnutrdtzdroquhpzuhnoeaguqiapraqyhhmhehvrnazpxecgnfgkykjxjfizimdnnziqvyptfijiubairgyzzttpdzscolvopbtmvlvxrohgwasjolzjwnvsmoeucahpqlrkusbecbiieeiaanmyyxgscrskoludgalxtgszpgzkzpnpebnovsbshxhflmjulggyrlkuyistunpztfdvnzdmalfcamvltejcbgfpwhspnkxnjumnwvmndidhnijjduoonrkiiojyfvacxxuzkoplhdpjpdhtzacmhgloodqhbgjrxvsmgmrrtqzuudhfygnixgboygmsbxexfghgiztqcugthhhbliaolyfcanjqojhkrucpfyuzbjxygmtlxavoacrhchulkxzjzdymddvcoswgsvkccupnecjkmcwtljtayeugszsdnzloltsinlbiterpdtpzdbchpwhzydluekvhtncnkzbdtuojvhoqyzwppzrksmibhecqojliegtthwqqzrdbgxycfcmfpqdgjvzppuzxphtwsphymzhwbqdqirncipfxlysahdsxckqskvrcvxuszqbuzotpqedhystrulcdamfwmozaiktxdcdathmciqevqsjmqsrfstrzzyipqqaszwwssscnlmwbzjvizmxxvawybsoximpejtgjjolmywqnewkzfxdcottqavmpadjthqhqflslgziaccljfacvripsvqgwkazlynroeoruwbzxzlnoxauhkgrqmohciebvclqcphljiasyriefccsaxoqegzyepsjcirbbdtwdyosokxjuzfsfvdmbwgtnidtblkxtorjudkztaqtomkknmgecknftoyzklzutfzovaqscdxkmtcdhklefozphqhxulcbhzsocunkchpionldfhamgketsptbbkepgyxkufgvbsujvckgwbmuejdcpwzhmduqzipzdewrzdpbkrxlriumrltyyzbrrfsqdhkrjhjeohqcjsblkhcsxawydmasqjuawglntvppfvgerokflksodraqomtndqjhrwehnzmwdelqclkkxxvovymtwtbrivwamliqakyrbdbleksqmgoxfnqyyikguoyjprbqawsyyomtoeevvabbcdbmrixybejgbobxmahajzoysymbmcyxxrmysxjoaygwxftlshtwlszzlnobxzxyizlgodjhnognockfnoxlaugmuphvgwnflkwsjneqjubhfvsylivzcgfyqlrhqxdyyyhlkiigcsqoswwcbkiqywbltrjpsefazfpqesetawnjujdlkvywuemudmwsgcomoftuuyjizqkkkotyoylrqomlphwsmyakabbwkkwijmfcqzwbodtzxbeztpohuuszmwqdyebpjoeycdlksgsjtsiklcymxcfxxqgifftvyyakvrcgdjzeddyalyfeoityoebtqomhtpasmtlitveblhxarkowurffdmfpwckbjgbxhbgmxvdvugplzdbhfbsqubgjkocvrimtgqyowyqrvahgosgyxyjzgimypxjhhsfupbqqmfbcfpbgdpgkcfoqjaixhnlruoatijpiisoxffzwjwmovluqrbiwfpptlqejrgyhxxbnabxfxxlrpflynimlhvefarkwhgwfmvkaoqwjzhrckmjphcstdlzhzfxxafusehvxhwugazjykmhzhzofwjjljzwtzmnwmprwhrdqrttyxkkskbhlnmxcklqizrvwxrqnzndbcextedppmvtqfiegxfvczgkdvxqbibodopgdmcbuozmigtolpxufaxixaepfqbdazyutpzkiccxhhfzgildovlejgplaisthqcodawtzmlnlaxomnvpsshnnwpaxwnfyrgiqvbnmyvpoqdjfeihsxgiogzubhudbyepedmqlwyfycxwucnbrsmkudpggsshohvztodvfzulvicmpcfoqtexrabbvygwfxykadgwfsepiquyjoxoyzvcmlwjtuhjkhcscvvcrkwgcfjzdyysezgfngywzknshjfwpallqbhcdazujoctntbzwygxwmdeirzxslcptikmwoakpictztaeyerliiiotfkvghobkqnbfejzfihohvtonbxbtlupfucpdzjmonbxioguznjilcecjkjsazktwwpkfmeiqojrcsaslohaktoauatxwrwbkksuybdihmfpwywzwbtdjsofsjgzcrmzgvtjdjgjobewqxcodguxofsuluqnowpkelbnvvjushrzjgsjjrqfdbvuozhsbcjyqsoubzvcxwhgtjcpgjvnzujcxdvajbmubyozkjckpdvwlrunqsujhdydgthkprgozgtfcbbzsjtidusmekkkuxhdvbdflanfqfkpbnjetnfkbtgmlfuefehcywqplnmmeyzwqvilsxpvtxcoknlozprxrdcvmvszlpelmmelxjzdkvchuhzvrjulsrqwvygekustkogqseodopliyrhwpxbxmthtscrhpszsukkcugvsesizxunzwaaebmajgcppwccuxtgkypipatrfqkeimdbmvqruapuadcdjuqvsgkrzhswyccghgnndlftlhupepthwlwcvfbwllkdodbkziipcfdwddxsbjbxefdedfqqxpvfmffqjbeihdagebmtgjtuvqutexlzalptinctxazzjlmhgjvgdnvvyzkoscfwyjozyacldiyxttpvdalzeeqeadcihvbmeuaarxnyqkxlvyxgziaorkhfablrcpfyniyqkzqdforqgudnpexccbcgrsiuejmgkdtpsbjnyouevocxgipjarmrsedgablcjlztkytlzqzoarfzumahlwiggnmfouhgrvvucelcuwkgkpgbhazvtijbscmjujqrtnfgfonnwfesdqeqmjlucfkwpmqwjlrztimcrimwyzhorwjzvtijscszujeupeiehsqgghyfbqdkhvakacpquvplneqryvrnblttwmrrirkofcliujcbywvpdgcteoxlkjybsfvyixzkolcccsvjrccumogmuesmorjluxadzcrjiefuyedfpozanwojdzwwzugcpwlpnimepxexixgzhjbfprbfodtbovpdxiiyqlrviurxzulkowgqfgiuklavoiafifohwzmfbivekgbmfgmmmngeimyzgzsqfsbuxspdayrxwbcwjykidkefpmuwmfcfnhqpgztaasnejsknucbfiveznlnzlwlecjhpbetzebysfaydkywjfbxwqzprljiqcguddiqjhjkooypyrgxksxyfnixcowpacodncuifwzcprheswbrmhfufrkfbbhzhoopvvwoojbqvaamzytdphbulrgncrokxsbuzbaygnujohpreddlcwfokovnkicfhsmahjcbsurlrqcfpkubfrkfboradwbmrkyppeqhxfpocdcantjrbcsfiblcfucvurepppwnjktekekhxrtsokwxklseyanmyjmblkxpdtnquxeigpoqbalocaclappylkhwkvrgeyjvtpjrpsrallzbbkfiyhcvwuvlhuuuxfxjpwjsqaoxkghxlakcrllsrbggnbytybqhvkdbwvyzhuoxheedbixfpkctiyyyeeoavedskollkifzvhxonqirnixxxsyzhcndctcyqwbnombyatlxqrzjxywinyqcmczxkescrwmtjjeezfyoumqsfmkwkxjzukyxrkifkvpnzyaoaszbkxzykftekyscozpmhbxoyhtknnbkdrrrbnytalirrwxpjbsptorndmneunalogtzyfntmjzgijxnslvxbrjmjnzrkpjkaekzdjlwvjdhzbvmyeophasfelrhkkkzmajttymgkkzbljdxpnpmqoobpgjqkjolygbqlwytjvcgcinimtnkdzvdzzfuvvhwchgvlinytxlgcjponkruhxhxcmoyipgkgvworhwmloelghukchupvpdmtoepsuffyubmnargmslewcomfmnrajrpdinduzmorvyvsiqvgryozcphszolurgzhmwvjzdhrcelrckxcshufxxmmwvlsyhdojqwlqclsvwkovoaekbkfpzabcydafjvrhdweywfixhjviwenroeoufdmaezwkxijxikuhtrnufaqivfhdlgbwafnqzkrjlxlutvcczdchuphglrsexdflableebszzxxsfkafypckwomrmmjnnpyaitpmkrjclfhlzgutugiwpeiqnuesltyngajhxljjwdtthyefgnsngemdomidyihyiszcvwxggvyvwlahlfeghekkdosuzxijaxbbsitkrtfhtybfjpqfaiorvawzqnbvivzkadycjuxkzpffmxaszhysfwjzivroojjadhfxjhjbiioddykvjujthqeymzvehtdjgvncknvehlylnrpsqtewwzvsureqbonqlnhjhxvhxuyzgdigkqjcgkixesdaabutkepbcgpfyltwajsjrlnyuvtybuhhmmarccqfdiqvrqklnjjkkrddinvxixqlozphtbuieonxjfvruvmenyaokpnbdtlxtwnjozeibeyvlofrvqjvjeldygpbatiuozcsbscybqrcmcfkrbskuhgrerkedjwauwiqpwuxblwvlvmoulewcxzoyhsjphldinwmmrtxplhgcdwfkqkymsjmvbwerrygmilqnezmbvbliodmiubxrylbqpflvzexducrzgttkbgvmgqjstebxlwyunaklhycblwljozhissxrsfjwyzyhhpwjtqlnncmmihuwkucdaufpsvxzyltrqdhfmfdezyszqljtsoxzescyuxhmhksfvmzbupujjlusvxvpubnetdhqwtaikqxreldcjwuuktzydejzuzqnlsslawrcfivuejatifyavfluuycshhaxzsmcmsffrijvpnvzpqvhnuhkugsomughbhjpttaogryaogwilfvcuyzjstbmhhhogaxnbwubqwdmtmtddgikxtifwcirlbwhhscolzidhhajzhwrjvhuwxouuxybfrreyazdqglxqgpziwbcuhnrpcubflpowtjxjhphnexbcqemaxgrodqrzzlziypqjmwnqpcaysqtyswsufquzjyjfqorrsqwilohxwupijtqsbolznsvugbtaizrtdnpzodsbezcbntpudsatipuairrmowjcunxrpmfmghdjpzossajudeqssptbrjapzpnzdumcvugkcqzrflqzfwlwqvgblopsluoogkbgivaeapxwtqafmmibflpyklsmrhjvvnqpizkghcpzsppyotqzejautkmwhwpcpmflvzmnrkcxdqdttvflewgqviffxirlssmtswzqjgyqkoxivsjfeegdawulnjmjtshnxllwpzhofxdwuzknujttqsioeqjropepwvkkhfyoddhoemtkzzyolvkjzhyruxbprclmzwgqszhmyvasjdtrcrywwrndoxuzflrtyacmdaudztpkdxjefwykxmfsjgbakhpllhaxiqtfkoesgkmiodcvxpdpyskolxjfsflbgqqvsxcuzhycdtxxrcybcgbpmfchfrrhrzkewtbjzasbqddatjvolqhigpyyxdcuosjtlrwivyljmhxwrvmfxjunnkprvezfshqvzhdhhizwyqfavrkyjuzgznkukxncvxlswpklxwtwahrvdoyfchttzbwncopjmroiyncllndkdgavqerjyiqrlkcyiqrhhzsodwxdejzufrslnduhdesfjhlsxzjjeqgbokhohrdoeocxnwqvbuutaydbcveanfldzxjvjhakgzzwsklwmrhenuepkdinwvqybrnfjorfossdhbpmtxtktbdenjtvyyvtkisoldcinqwmlqbkyvheiomqzixhhwybrdlxdwpwfeqfjckdpownvsqnysfzsfvdvgzrwxnzrrswcpvkkzvzbqurvviexctdujpetoailvdwrtuvoadsmwsddcdepkromqtcbytokphxopyocqgtmyjmgsykavklelzmjzxzjfkogxmsqugivuozhcnghudvwnnwqipcfoemfvvoqydnjksxyoxldrnkicrlykfkbiycwjpikqsdpcsgoayltcgtaxhbuzzcdthbuazflrsbqsemfzzymrngjjfppyowoqpvmfffpkyetjjucsbbmcsebnmkhsjvekbrypjjnzhpcmdtuylneeequoyuwcwynksancefuljdroijvegfnxqupmqqophqhrvbicshhixyajhrysoffyxstrdqgdsabvhodaprfqwvlpmfzdkxqxtewomywuzmjwcloiyztocirwbtpdcadsveyxrrrkqvsyehmzjnkhxbxvnzqhrtjjmtutkbixrwricytgqaaxzhlekaenlwdlxyzyoocskkisygqushfkwhyfwwletmnbptzwfmjzcabfowakhxwjobohahioxftiwlzmcajmqxiqslsklhiusemlspcyphfnijdxwvmbdfxskmihfhmtbrmamchnbmmssuiczoimqzscbpaqklluyishbdgmpvgeeqpfackgrjskusqcmsatabknaxcgzqeyiikpkjolqvilbreezfuxxiqumufjlqelubwexofhyyjrfzzkmnenhwnzseycripmzoammektmftlfdefvrpdsauczsmzbogfoajmgywhqpshcmuyutmhecytttzxleppeemcubmbevkxutmidbxggashtcxejqmwxchpirzsgirexytbdimtuqsvbicnrmbbywodghfbzjljjflqmyroyqlbrgedqfjyhpbhljjijwhzzeelubjyjwkiajypcnpxpauklyqipkynkxjeimtdbyhgzkmgyqfijsgvnsrtijstntijwtxmshwplywnjghpnddpjndofljdsljhffycqwtmlkbaoantbewqprmaliqwuqcfokxchxretdsrxlenkxcvdqedrhlyybywzdttkeffbrtrewimhxlbozonbauldmwujsjdlvomhirzvtbxsokgzrmoldhdzjhyxdcmqfciqmcslmvybssyxoholsewmtfhsglfjusgvuxhciosmaykiyqqiahijawgkivfpqkaovdwjkddxkoyyfaqrpjdeullffgyvjtvxquzasxrsaqtjudmljhttugettdocxshrvtjvekmeicpbdrfbfxipodjfthhbmnvqxouijepdomsczdjqtuiiaxcpvwucyesukqfkifpudnjfcrdbpwzmvxpclbxaqrinpfxrxtewmbtttqfdzlspohrmvqkahcspekxefaghpeygadxjyxogoginnarmzwqfiwmkbabxenaelxldfuovnwgdnfhntiadrenifmqohokgkqmezvzumnzitlsphlcprlsvcgavlofhxzmbwourhqyiysojuqpyynzotgawbkvcuqpobyjcllvwtcyiyzpfbzauaiwsobgdpxidnvxjzfnhgmbcmeuxqqdbazrokkjsyaasukaksgzmjgtrqtzfrxmfynztxetcnoeibxbxocywurowysxltaxcfdzdjoxoomsuhszpszenncawncmzicybazcrkeykxiwzpczzhpbkuingzrhageuafjxperxkpgokownuloysqmjfswvygkorgslvyfvvgvpulzfqrnkzmclqgxzbycgwqrbhysouymerhpmbectlttmdwmooemajxmubjzetjglgvlbvcqlqnsnrlhcxzttkozjsomwinghmupqzijlbuwwuxxsymzqyfrhokaysemjdhdmxnrgbmatifsehwoafpckljskvqhcsectgyiojzvasrcmbprcgpbonoolfggzggjaxobixhjqyzckwmzlmwpykvbghorgndrrkmprckqhlifspapubwapzbqcmgluorxidnteoxigvipwjvwjldbukbnyaxsyxrfjcldjbfejqkzulyufetbqbissosefgqmbmyxtdsvpqcqntxkeafmzvnptxuoxzbbtgutpoiaxsqfywvsqlwkueumyqlrsrweoidckavjxnlkaoruzygaxmxpgctxscbptdcxkcqmgjyozcndwiuonfbzxeyrldktosnnksefcauxjbmozgaarxlqexucurtquuvxjeegihoylgpysgpdjdcyklhhhasfkqwscmblofpstsjpkgnunzqdfzbrdklqrzxkkgopupcmecfqihguhfzvgbggajzuvyzegefykiwdgzpbazjkvadyazlvadrppmddbpetmgtrwheizdmsgcfpzttkwfvmjszfzfsnvjnniytcmjtmewqevcbtipabnweshioavxiounxyikkkkdtlakyoiuazmlqltdymhutfkpuuvdvbqvznpatsyvnblkedlmjepvqcjyzrcelkwembwxoaorqyuikfrpjurpdvzgqhhkmfkhllqcndjevrcvkqrhfwjtbxibyxagvxnvgiowemfgqctugeisifchqzcbmqrwzaljvahxkgedprmeugfgqrvhjvxcremabfakmflehjjvfqpmqxmsnbufflgtbjajnznzgbkbwmiwuszpgzcknjbwsnzrbdnxqjwggblklctptebttsglmxknemkagaggevxflhixgyrewbbpcfuvupytjcxuqjhfjelvcjrfqxgbfsnskcxnatlfidxbifgxdxrbahjgjyhmomzmawyhlmzpjdnsffachziucfwbqjqgyiozcpodbnayzpomufzmzuzpslwyolfaevobqfnoaqnvkerfoacpkrhisohsokmriauxrtgajetlajgvpeyudxxebxkujlkksblvxlbvdreujpgttvmuphjwvfzkpjlqkifzlwmaobohddxjnrjrftpqxbrnibidtlijsupbhdlltzstcpjrfluxcxdtejvthydbcxjdmxxbsxnmhcnyciysolasevoiarhdswlcijeidhfngyesvidrenljofkqezdyrtlfrlaxlnoiwevrzxqjmfgzrqgewrhhmcqhjbqntmicdhussjgypxahhkngnoadzxrexmoqlfvgzgybkifllliaidvxgtnullvqdtafrnvwjqgbeccixejqrydsvgralpsazhpojmbgvykznyxsatvbrrhaoydynymsncjotsovigqxjigjghrggofnpbtforragyisieecydnilsgblsycylbjviqnsvcxxrnsgvroqyfewlfssvitzblcuiduhwfrrvoirfdlqfajajmsdgjmuhhibngjxdgutjffwcxffshnrwfzhzovrtqhrylqdtmbiwiaehebztzvghhkqpashohhaocapgdxizmpaepjgiofqpwmctdeszjhtreaiibxwehvgwvhdglehlsmcuopdkhhnbryeqcqvxbsaceizahoijmbrbkdehvdfbmyuecjmkxmsksskwhlbvvrfgllvdmniwgsfxzdzmtenfcslqwbuekwrjuyvdkljyrvcjofqxotfeliqiiyxatzfslfundzxxmaepuyzjgojbajmwftizfgatfuwomppxjgxkuvygbxeyxapxfyzeavtuhxpjbigmmneuilejicgkwilpjcmhrellgvmunlpndkjgcbkbskodvyxevnmprkrxhizxsknrwpztrhlkoxtnqwtsbbuvaiypdlcikogyylioegzpibfqaqmnkvrzkjaqldchwpuuuyzvryzefulkquahtnfpybaupfiybyleuljobirfzorhopklqlnvamkuryweiidpsdxktrucmfvfiidoetecryrmckjdecavlbfsoiktqhnaaezrapjojdjcnxsxbpsvsrutukdersxeobhajxqiutysuvjrcjbisldxsicmnussebdvaggvhqptnzrbmusptnunfpuoqqpcylttfomgngxrwyjhtlyotxfnqdcbwstmqpcfjwcxjykczxczdjlpwgrkmqrvkowprovtvnlexpjqafcmkczkkqnzcrrusyxdviedizexmwvhqxwatesdfzqcczxiysdgvzmcemxnmmbyflcbqpdarvohhfphfcmktxlazvwxihkwxfkpukjwgasgfcwjwsjezaiyynrmyhnuhsipcaivczffigajddeqtuhnljpnqptwxvjwjjgfbhfjvvmvzgxcsatklnmeamertkfckzsqjhovgfklackhygzqypygvgjjqqmuqcxniqrtmvcijjwukjdsuqxcemgptxjgvvtgclrikrvtpkycvximbbbzhnepruqsgxchmvcaezrvwwevcnurqadulfgttzzgcqaugwbcxunljvpzcrovitkyfjrxkefzleubtpiiaminmpinegftbbxocuqfntovfcllrgmwaxmqupyargnrxtkultdcqscyuegbfwvxwsczhlzkqoeiaictihlwfxqcbfhcyqnygxtjmobsxrvngiiyhkrrlrzjwfwsejsntmxdznewatflcutixyibmtnbaaudtcebvkqwlcdfgvyqayzmqtxjfyqkchzbqycygybhomoxfplgnexvgsfvjupdctmgnpqkwzkgogblubtedtmvwcdlthrxsudajtbgtbtfqwjdeusxnxjzukbdkyzyzchvqmjigaagiswezsuybkcwqrazvkxatarjjxrnkjcznaohuhmrpsxvyrgancbjgubxpgbhwkevwuaafwfmrvgkaafxlpvixogxtsfegpsxbulvzktmijtaqtnrhidocpaghblczvnkhrpfavxykvoyhasnzyxddzpgcozmcetvbafjahgilhjqsjpaytjjkqorxsjzcgxlkttdvjwdtdkvrcaydeyrtmlxaepywgbdtgvrxdzoiicgsurtwmntlogrpdfafawxvdaofjphdpgeekdzzpwkmrzusbhhygdcisqtqnmqomnxfcthznrufbyyoostjskhpxajejhthhsfdudusynsarwefdkjfkhrxtcyaqlnpacemxwlyhrtsqbqllwyhowgglldazwsnhrtpspeqhcrqlshrqrfxqdtofmggigkbgkbipofulucygwfxqsitkyqchhqvwpuqiwwxrsldzqastyjrjhkpiqiwmzvuzieqadplnlbywgnydkxuyllsvqmujxhqtujlvklcwubvcmruvxqlbnrrrqhzpgoedmhorsojliochphlkgyleycxswsxkolbihqpapzmbujoukuxwuywxiffagknrtkysjcnemhsevcdokufghquxekshaunfzrfedzqsxxkesqeupajboeaxjkytmuqnmqvndsbkkqrwyabwheddgvzmnycctlltzkxzlfdttaxypslttupmjbgpvvjlatgvorsdlorfoafzcfnhgdpgeugfdxpcfpjamunkheychqyprwgdwtiraehbuebisaoxsmhjgwmivdctburuhwnsidayndnzkivpwzylxekczbrxkbubadcflnzdglwflzveijmvszgkekzcdrewamgzdneimjrzzlmxbijupoxjimjpfrxievzqdcyvfebhurxsvldgyjbxouralgzydbdhdwminxvmvdoqewcrkvmlsenomtuxmswdjnaqfjkfkorhrkugtmuiloduwnqflzirkojdtyrqzjscsmkhfhzmqbpahelmwptekvzwksuefgitxrxgxagtuahkvtxf"); - sb.append("jukwmfosarzlfwmqxdyulveuxspmdeecfrluxtfghfkkvvlfjtomfjtncrlxwpaftlhjymwilmxgnwjmnsqqhyedshkbitfqnrrckvvmvfyopdyanejnngimyeetmgbugeatobvncuegxqouscdlplxbzgavhacqnajqhmjowdqttsfvrztpgwnovjjqdpzreekzbjbfnrdqxswbgspkqxjpcntvchfdlfntapapdzjmwxncxbgbmnzclkukcyqikdxqmaqasxokkkrywtlhvoftnlzkzurclspxxersbzctwnopcqqiyuildhdubntsjftotbukmuohjsexxklcobztccjgfenjmpgazexhcmvcqtdiaaodpswoksvtsvbfrwcqtupwckajxqcqrdrahcygrphjnyherwurspdodaogpaqnrpfgmtdikiupkzsnzdczfrnfmxzdgliauaquzrlvvhcotgtwkwpkinaagubtjwnclvbypoiiroyidjdmmttfwnoqezoywwcqwhhoidbemjogyiuklygkxkvailvteknynejieechgzvkwbjjirkoyyoosmbcboqdghjklrktieovhrlugccyjpdhgnqnnahaqzyrzsrviauidrlrzbdgcmudqkmcmcgaavlaylltohyjuanaxlvciwktxiiluyegiocizbrbdotwdzilhlbjqsasweuefredgsvqwqczffwrdcdncdixmfjapsxbamokmvrgjvlxfdjlurmckuxwfzsgtqtfoogcvdrjymblanmouatxwnvkgcciycxxcgqljeryfhqlxajgqdiqjgvzcqphkxhcznsduvizaiqjlyyapesqtrbwdzshwvxqemmbhtaqptemstejumuhvhathpzhkrusfflbobqqmajoyihtmtxnbzyqzmpygmobkxvdtqojevipijzjaykxvxnyxqxlplwbsdofijfyxgqbfgiwsrcxyrakwepydtqoildtghwbsgyvffgfgtkmwkmcvdwkonfkpahpmuwkfhebukymiuxrphjrulhgyvimqrrqgdkryoraaxvngbskodjeiscpmpwjtzrjylonzxcolovnapzozaavhyffjbxnfknkjbhzbvrjrhvdjguvjiekxhugnjzrnahcatktyrklgftjlcjabjiyyjzehfltyiuaxxxcmahotxxgnxwagjsjmnqgblmvcfpxtedprndbjjicrczuiijsulsvthvbcpfaiqjdbajxuabuviagckvvdiskmctyxloufkfcqecqdqqkgmhsjgoiajizvooynkymmneaetgqwwxcwbeypairndfzzxfzgccntnqvgcrfofzjlboqjfzcdnqzqwnhkkcbbbevpzlzeleyliaeyjbjqsrtdhiklhfnedukkvdqtgbcnrjoatsoziaxtqyqsmqzrxlslamuvmuhtgrcgdrbdmhkcredzflzqhcwjbdqmktievqnsinjuvyyjtzsdzlmvbshjpwvdwtreesyhdsbaiymsmwowluxtiktratimezgogdhyhrpchrwruqqmqdtoczgyfumapuwrkxezsslphzigqjqfvtgzoeetrzdtogyzlecohqonokdfesqevpcsfhoqfqfohzmhtisecmmvwqpfohoybtyxrxpxgdrzcfytulveeixivlbqsmqckoffavhlobwghgmgnortogmsufjcmjcnsxbfetzdxctmljicnbgrbejhprrvstrnywgtylakccanejavwsvhioxdewxpqhsurglposwnqmbmlmweebxgjupttirhuqtfuxzwdglqtilnrsryfbtxsskylomvshogjxqzdemnelkobkaxtqnctdeugzozkggwsiwyurbqaveylitopevhycrwgyeaomusifztkeyuuuqvzwxbkleyvhdjiicmovjazlbtupqxacefbyrpmxgshaoutphjbxgrqzwlcxkeotmwuqcpgksnvmbjydnpkcyuojtucfwzxtrnyjcjdpfdcdolheoaobdprzywrinibwnfhzlpxezqgwkjxzppnlsyevsytkfaynhhttourtinsjdeayucofyzjszuequhtsrxcvcovwlvwqtabeqrptvlaxndeecpszkjuenhvhwklpyglxiosjgaljozahhcgetozvejkeicsqfcarstffqibntisojujnxwmdshtgtserioxkixdtwqgkvowkqxcvfvizrvprxqwrdrwcnrhhjkzuppnizwfosfjoxuehsjcrilcgnwrjhqurtrhbnwxyfchkncnujheltjmqbggcxbfvpdedicqgmklljtqkmidlamwtrvvimixvrvlhqtyuapecywlegysszmepbblznyedqwbcedgcrmgdnsocljnthtzizyyrqdsnmjyizhkciolrhuryhqjdmlqggnnikxbxjphvugloqncbqblbfdzcgeplvmtulvnkmbklfwyaonvoyvfjnlhmcbjwuczpvyoivdzagyyixlyxslporoebsxiwtzebadyvidvapzukrvurzurhjeyuvosrgtmmsvwtxklkyprxkbegoyqhhnzjsufsdmwqkxzlbxmosdriaiirmwpwepovnenlmosqectpbphhyoqtfkfvfetlcugxiorkiwbfivjdnyntnkryrqcfdxoxzsrmmyokvtibrhizoscejdgyewcglxdufikekhafxiigpivjmljfhoztmpbkixhhtbnwhvyldvgiixnoqhcjynnviazdgxlxwniedycvulyrujjrkewnqdtdiysbydnakesamngfdyxfrrvnfomyokmchucklzmiuyizhawhonpzuzipzgdixzpbncohsrtgoiivhfssfjcouphwghynyishfysslbwtzeugafpohajeejuvmzjgufqwguabavxiwmzplrfanqxcqxvcnywhbskonmqcfqckcilvmyoaxwcravdxtgisulhsmvnxcjtthbgqaqusgsroiyhxcgrrqaiagkxhddziknjeepkxhnxldzchvpmhfaraivsbhylkcwpztayvslxejqjcvhrprfjxliyxfutpmpsyripkusvdmfmrufsnqmltiiaqbducvjtxattbjtfeokehauqiexvnglytyhkbsojlkxiwqssahbtrieuzqbtcbhuspsjrzkhwptsniqqilvreezhadxqtiwvhqlakqnqdprjpamotpvbczckuzairvacwppnpqwaqkdrrghzksvshbewkrrofocaxbmbohhbueuphsugjirsfdvngiuozjrwcmacoxmaheuriqudyeviqwhomljhrkwzngwbmioncpaaumcoxagtevwyuiivoqzelnuvztyvujcmgdikgkpbalfebyfxtwflfprpzayxxolbirqeylhfpowgmykgxtdozthehegjluuelfhqxtcpmnzzqllixocnssvyajtcokgxjpazzdhiktlnfqwvyrxjyylxdrwzphnvoiqrorclgwydmsiwejocugvyszvbmrjdanrbyrhzkhevtbxamwcsvzmulafkqhmcbfavupcdxruyqacloairewufgrfycyzkzgudoldechygfzysggxpdymccafyqugaxmdffpagrwbyaltkkjwvswlahrsnjtgxylxewoogwkmdpjnidmsgltkxyuhlmpqizhyvokylhwxrbfnugdezshwubvcyjyflgmpgtpmxllekdhkoochienmblimygrvmtwhphcgydzcovbnpulqxrlokzhwzivayjrvnvsjpzswvxqwmcnxnrzghfmrkmsstsjmvmfbobcrbqupezztlthafpmutruciffwakolxmdasrlcrvxbvtzwharlwigjfvqmzgsggsukneclnvehwemngknyssoyctirgjpopgliwfggwomfwlvdrfszojpgqdzzoiihyjrzatdsfgtwsoviapvrmgazbuxtokyqdwgywvusffkrmmoantgwzemgkdxkaajksqciacentgcowlvnokmfaosomtztwvqubqrlhfupgosqjdeumddsqbtojfghdbgsktmychezlfylydmcktajmqqvvrdcricayydjwwmidqjkzewvbjzjxfedlpjkmidpuqpcnstrmuwonzmcfojvatxyqztqgoefpihxcvplrlddioqnhoszrcaguhvpxmslpcpncwraanbumjqsdaddtcafvqfvgbjqrwmdbehwkskceyediewxiknobricmxesxdyyanhydlnksufjorbvugghzrvfybpdtakckmzwgreehyujmhetgexuutgtikpcqpwewaymgvxohdvvnsdfagkxkmhrtnfhcejjgzgxenlovijywafertsuhkbkbkgxesilppvxztxgzryzfhybpyljkihzpcbcdrpogzckttcyhkgbabzexazpebcvkzbtmrexvfqlwctwoydnslcpnjodveoircajiqppvikuckfwbefixkywjsmfsxghvpouifvkmcoypnhwpcfyoxfxpoexiklsmpcpypqfbfnczdfuihjhicsirgfkvfmutiasscgohkgiwdqjcadfljiujlklezpgkrhdudyjmssrstgxkeaenclountoposdxzyjefjelwppggyookpahmklxnoddcqquycgifhzgfjqbegoizsmjkvhztqgoahdhpbraybthxomogaskqvwnarcsotyghhfjrteqemzdpubhnbmzojmlwgfnurpyagrhderrcahwmwxwbqgwbczqowkwiiovmuigeencoapbhrwpfkzeozkrdgwqjeyqnbzceuljiqplovwldogcinbvlozufqvczviqskedieercirmcodyznkaofdbmlcomixgpphxperojauseeqpmkewhbrrfwvdopuphymvpcrgmzktqvftlgueiueokloafixtnfaocqvlierstkyizeyysmdrtufyqxtuswrkpinzupbonzhavbdblpebmltftkjgkslllnvqsgpswpimbyvmnkvnixsyiddmmcncskpunpxqzqxhoirsrwowgjwczpatgzirrmlqidwdatngbdmcdgtylkxuvbrjfdlstklhobnndutwwhljnvqvnjjrofodggladagbrkjzqrmriaqaddnswwdrxqbtplpnsenayecvbnkrhtvngpmqgfasyxqfsyfydkvxtiwibvlegipvnnzgfngmkazuxlslzycjmreqyyepgmvjsezrpdrbznfylmytqflztfrpmekxwsyhpzgfatrjhfsplrbhbryevjuaknuiswmogcgtzuhixkmfubmdttyhtnyoudhkymxvurmkibxczutuitbneosowhumpudnwrazjdcldtkhytrvegerjzzzgiicgnebmeigcdcvalnwmhcxwumjqqdjolhilbsofvkmwqesfnaxktuoysnehmqtqurzaekibyiewetqmmlcjzzsmgocvougagsdqajbpwcqjpfkmlenmhehzferqwlkuiszfeoqazgvsqityumhvfwuzrwamgcxlyrxryfjiwrahsekrvlgfrgnmbgxnxuimsoqzngngoeryowuyfkccunnspjtqrggvvqippmvwgxwvqlomivuyblzrbfubwqvakjntkwzkneqkzezfqrtiieujlhvfenhzckziboskymcugrxegmfrgkfboancejrnhgftulhqaewrwwotyiotdtrabhikoyhxkrmaeyfvisobxpwxdsgjzabrfdalxrkymcxjhpcsinowayjivreqqbadlnbbecafiuuhnkqtdienwajsizwkzsewykxadvotabyjkxjbgpixueivqtylobwyusyzhjjlcjfofxkfamhjviqbnceqbgycfgzmplucsenvyiebpsjqxgfyrxaagxeqberczpayhzukdtqydlmvdlbjndlpyjlqzndtdzvhveqcdamirleyoaitescsmevmywomeivougcpiaecrdbyihmzkblvxdhugoqsojxzctaqkslvrkalnxrhssjzsisvdaydcqojagviupvkkpymrgypdbfxntfvmjnmtyfolxqovjhsphnhtbmmzsldlenoyljszcyjhpzvdjktnmxulsdvflwtdjxfkkwgnvrcbxtvcoqwspzfyalnvzyffpzekdsyoleveblmgqugbfybkduvinnoaevxaouwxpfygxinkmkbnlavqwakegzmnfncpjtsdilzncbnmuycongjaaqbryqwzahunyksdaqgmtvwunylreyzhlexevbsihuvlvbhkxiuxpbrghojwftuxdhykzsqvshtxkangywmftkkdqwexkqzrjsmbyipdnhujoimyrvzzupjfkdzletjngwhknfkdbsrtnludlyqztdnnmoaahemrfpzequfhvkqlkusoigfjdgqbrpaljoimicfhqwdqzqyexssvibhegivslwtkdzphxvjsdfsdfjofdorhofjdgvahmvzdspcpmmsqmskivkvclhvnrcnrmbyjqltfmxctjlfkgfqhivjkmxrweibmhuplkhqbuytnowgayijvvsqcknxfzrjtsinomhhqkpwbciegrhpybhoirgfyccnysuorkuutoitybcbjlzwmefshacstljwafahmghyutkkljtgwdrohzuwaqydkehguzdopbmpoyptcqpmwohqzvjobwsohrmmgpbnspgcrebngygyunkhqfvioydubsmsbntjwwkvvgwtgyzwkphypvtvqovxpqstduabsmgokfhhmjoqlxeingvkruarczocqfesenvlbeutgicqrzjrglazyphlzbzrvuvpsqrhqhepskaeuktveiupvdsekzbyzhltwesffkybpxmfbwqdjmuvirycwpumupzfarixtddifkoqsjiskwwzmtxdubyfgbzpcgxsegdhxaoqyfhmwoqqybuejjbgdmdsfixnxajjhksycshkgwsaypbgpvlikilbqfijrlwjwvxzbqrghwfslmacxrqibflsjcqhkosrnzihyyocmpqvejqhsjakbfsonupigktivbyxnrivelijtqcsledcniwgxsuyczizwxbthpnvoqvddzsjhfystmxmxtwyanhghaoeqndavtdzsmpsglqgnxxzslfcekwyitdeqsitickuksczllffqgkfcflgpojxnxwbommkoxygaihgtseqgymkauedhhdscoilrdtxjubltcgiipcifmrkugazrejanglkjjyagrelfestxworkokiqvvsudhmhndbmglfgoxwhklcispkthvmkdqcbhjhmleaceugihmkhvfygoggbutlmgnenodevrmpskjupsxlhfndhkeyfbdnyljidfyosveekstxlwkmssitwspkzfnxznjrkxaztbkuhqhyqazimnysgczrmmdtwhgojaxlujkgqvmpyncbuumtwnjqzmzgoykoxsjqdjpozkxjsyvxncomgjetrctgpfpmkbjlyjmsqguozttzbcgamsriigaeavtzjtpyaszygndvzpkpsioqpxetpomzlbozlnbevqkgpdjddlunhvhgwfopnmfoxlkturcwxtepyixfuyrdlfmyjuzatscfmnupujeruzxgzeezsejbrjkhakpldzfaesvgrkkanaqxplzzkfvoqcxzbvlbwptwqrnkedpwahlegluqncbxvkqpsymdppvdyvlvmzcfyqudpgwrbnweyoyefrdqfbfirhsbenaazsjwwjpytsvqmfuvozdoqwoqblodsdwjbpsjrctavpklucalzoepbfuwknbdryfjsmqewzbijmirphsjquzphoiczvfssxymyfxopywzwsvxjhgtvxuofzenvvyodryhepnfibfnqevpxucajvjyppnmjqgledgbfcttanpliwfogzqkevwwdbgjhdcdnaefnviylhbgwfjredvpxibqpubuqrvqqmvvjsubgguurnpvklbrumjtrtgthpfrucnbhvvbwkkwazrxmkflkkpkhekdqcftzsuxykgcmdzkdlqjegrzlffvkedbxyeskebkmqxhwunqkqutjifpsohgpnewwiueezwtoolysisohbdcpcxvpegqclxbsftwgcwffdqimutalxmyxefgrjonyuajjlnhaeytnldbktkfypsveagstcumvgldnpzzfhzyxfhlzjdxgyvvizkhclahrdhrjoybshuxvmatdqpbrmzmdebkmsntvtgziifmgqamoontxhngayebvjbtcdjfcssycztmfnfnwsyokysvtxenuthygpovyywdujwwpagfcjwdgylkksffmgaonhwtecprfqbmryaqduhwhsmkrtekcriqvugxnntucxdjianfubdetqrizzsoyfxpilyjygrzngkmvoanwflamknipfoftzwilshropdizoydlexekfwpxoxkogrclvrsqvaxvfrdtrrkwngwqvbjexwlptltoubexpdljsmxgbtxvrqwczkpsjidzxrstgketyzhhygsjncjzzwjymhrqxgyobckhpeprdpdaxqrbshtqvcegppirmofsjyppgqsfojkfvhphvhzbrcshqszjvgsffygopxauviikvpdopfuafbaormmtlnnaxaxundqpaddqhrsmrmupixmpqqjmyegymzwucodyknczxuvwalsvyahutvkvmybilsmfooudzwqnrljwdymunlhfoeprzzwyyayxzdlgmxnntrtfjzsfjgqazeuyxnmiiulhthmipwhqjuysqyiykfsqqhhvpnbuntpbtbxfkuhquorlkawzxfpaxhpmhpevwulkellzlrgrmqdbuhepdgsdcgqcgjvetlikyfkmzepiowwcnslpdlibymaejywxytjkxhmlpxxbrmolftyetmyesvlkczkjccpcutialrdzqvhhrebhoznbllblcymioicnxnhpipdnzxoaencxwaefagtuglfnwhyzhbykxggrwbkrjzbyrkgruuxxvyehrypbsppevdkpxynnrqosvdkdtqkvoxkioepggpdrbbvbndpddsvhqlygrvljscgxrsbpugvucbvzlpetiscwqbdddrokhkemvnoubgqcxxcgeuvqjibstrnvxjtdsdpmopoufzhgnferklfnidcxfrefwezoryequyxirdvcbvtzzbbylrtoybcnwwzvlqbonecqawkritkrqsnetozweqawzduidqkiftcvedehyxoaoohgwsbjqrhviiddmqgbhkduqymhwgkzaflxfooffmrzajblvpppemctkyngeoywmrqisfvhflioaktmrlrynxdqmcfssfeihjqyotdubfocnpuhxhnjlpwtghnrdxsllsnobdnjfhxnfsviuffltxvwfwzaqgszbchzvwlcjqgmmukoqcnupkisjeuxvcadqseveupqfdtnvnqamwonukyjxoprobkaszzxcerfxvzyfpvtthkfxlcsytspedkvsaqjjacpfyprwzvtkdyxtebnovbeffhgwbtyebsorzoblninclapaxuckjnedrzplkdzngkwaweudfqdkazphrbhkfjqjwiufsqpwytlnlfwvwmhasbuquipiyincnqrfghzyjcbosqwjdnduqwxbptopcncmuyuvuluxkrnjflwmcjxnjvvxxkmjswsiokepnfhcsyhjjrzvmawhvnpijnzhlcbyelgurpzvzczxluvofakjlpjqdazkloqvrglrndkvlynzirdoufkazpzqooijqrhtzvodwqgrhonqxtnthxxgfvthplmpagwpvsswcxwdwevndziolwhohefqqeljmsgixdvawxnkychxlcbovhnldccwobgkdmfmjlgfoioofjozevopxxadvpxfelbevdntuayvqutpthyobxtfqdgkpxugynlwppydqswtrmwahvpoucgnfyfqtktfnrcbqsmwtaiwhmvnkynhvmqoefnnofmmiyayhodbvkoifrfyesovauwycxeddiotlrefayyinrugjawaykhhmpuyzrnwnyuqoyhbbeddxofnpiymdpyjuyiorlurastwkdehlxwwgbbzrgnummzdfvemgmuptalswulnaujzlwduftkxoutgdrtcyknlgliebgyshivtduciaoanoaxiabdrizlnxlqxogahxaihezjfxewccrbrritlhkuxpfuogulmtlyrlukmuikcrlrjtknlzowwjtuqwebhubpedjbqhroyngpdgmldnrcvnojyfmoatmusxknnjmiqcmkyzflumjprtjyhbznklvswnmdwfyhawlrdwmuvvfrsdqkhelrbvzgiquqnthvqgbudkuiynkrsesjyljiyftrrqzttujclmswgnrwpphgyqiolsqawupsalcpeeazujlklywtheqcmffmngdcnqfmloyjakfxjgkufrnhoubceqyvexkwizzmemqyjvmebbxocjlezvvuvbpoktbmoisirlgbalvxzmimvofsmutudwnyxzyoaybyryeevtysqtthgqeleybckitpctqllkuqczmtichxjkzlxiyxrxwogkxmrfyujrsagheptltqzdpdafoacvgtftfijgdzrwbvevrredxmjrjnaonfgdrpjybhvnwyruqkjsfjnlfffkmhhfxvdblrwrkzbdzrxqxdkqjyzihxzglrmxoyjgtcfciwkpxpnuxotrpyihriarftbjltfhsxmdddctecxecrctaztxcpikhgdbijxrjefakhotznwuarbzpektjdzjugrdrxrnmvozfpikxhkcijvvrupalevoxgduvdauxwrtqnjilimrllyuqvebnshkubifklpxluablyaffynwsycjltlgouvynuxgbjjtrrmmdiyotzzqbewjhthybzmsnocqsnemmlapyvxnteichbrsjlocpzosaljhwkmaeafigggtqnuhzdbwltkyliklzvxonwzstnjgjdbynyxqphbwzarhpyvzgnckqozykekyjlqlunjqzqrugglhgpfhpskjvlzlnjcvnxhpgcedmurzinifgempagtnopiawovgazarqyowjfttdlqyhmwtddcmjiwyssmstvdashlenxwukfhjxkywmkuzgudhpkoimfmiexryovwocvuabfwtkpnxoiovtgodmjmiudzwvkusiikdyxpdhxkozkvrugqlzlxzjxvujdzvxuwehkcgxotbwtibvsqqivamcvtdjqcfjfsjlazfcktknkkxysvroxvwntlgmkehvrolsewejdezivonklxkmsfazwpzjrhjpyxclgsjoiymkmfvbvvcikyfrerfiazskihcwfisjfarwwizwjsdmgrtqytyepyrssbpqkytankhwregkpezqscecootppashvavqcbexkuxvszopcctjuvgnqxeuhweplrgcradgyofxjyarpdcxrdpkoswzotmhgorwnabcftyrumeapnpaxiikeyzmnavsxztbipixtpxgrjvzjhbxxcfkwskgchuatxjavgscfdhgkcknckwpvbxhtfgiodmjkfjspogkzzvzouffvhhzuunmgongsqdhdtnhdnajzhkzfcynfnpovafpjtgphymvjffatpqklvuyftmudjfgurukytvwoywupgclnhrmhppnfmgpmbvojaapapieuenvqufejwusvekmpzvbvjqkxbaychtirlwhgnkwzqlskdgbptjclvtrjgvobxtclmqhufsrvrpswstcojnfvyqifzmmdywyzqkqvysmccqabayrlcknpwsjzpgfjnypbcxoenbregitxrcrzssdnofofeayvqhxoysmnnvrpiunvsustybgkulyymigvwwtoofemilcekywvwjspyfairtomvmnovteiwauvqcgtawtcuhoxcnihbxmsubdbsgrrggsxpnrsqeoojovdvgkqbnfrenzniijnameuwodvqvxyfbarcxyaedljfdqbndvzgtpdrgmytuqlqjjfejoztquzosjaxaoqryhnayapfnfrqytbxrqorfqxfecqulsyswokhhmpgxbtbvrshervzlfqqotgcbupcxarspfzrmygphdroneeitgngbikrdljvvjcsqzfggloqizpogweamagkbiosdgchpdvodceeujbfgwflwjrdgzwbpehpktbzssbknkluyeoylfzddxznohoofwbdtpdhjvjukjgrffvsflottcjaocukruqghbhouawksmvmpepnkavcfzaezvjdgxfihrnmceeimbwzftdmlgnufhumkspwirioxsevqqcvlbayxoqpqgvxnrvuredykcjxgwddkmapdkdfjllhwkudmkmzdgefcnnhvxrlrtatppbsfchheiukafirxmecigsqntxkktzoctauzqrpeitvwslkyzvczmcwarffdrpyzovckpixhsorjkkfeustspqdspdxxuyururyjcoflfrbproasycdwhsxseuzzewjtqsvpybarzjqikwowjcaslhkvemulrceetpttfiuixiyqwoyeukgdvpwdiyvaizwmdejxwuqxjrnfpvtyindfamjeyhmncugtcjkomhtwvmqqjzfeoegefzelxxsrtmydofmvfxrrsicseanewnckhbfuflclfktorjwjneixsshlwqldpwrnzysaiaoamtqhslkqcotxfeduzrtxvrxnnlgzoxuprhhznyeecpnbfmufqewwkvclfwzenfohfikvvfgpiviewiqxzpvkfpoclpaqtqngrcaegtxbgtwjgqvibsnakytqflxxxhkovlbfpyedriixifstprpotjvrchetaklpztwvlclfmoywjsbeejmjxszrcencxwwoenpgdkbkfgpguadvtznolaycrmxycembegxbqdgfbcpgicacgwxdmtvhzgmdgqrefplxcjmgienrcnugcqeflkxygjxtssyvbetqfbktmiftowyrwekwmoeewuainhoxfwxaxvcnbntuxfqnesxomdpddsvxncebrihrjpgrvvgoxzsmsdxletmogrqgnwsitcuokbvtqhixcbckrigxqubkoqeziwagyhmflapymwbbyydgunnzcnumufyghngaxhbbyzzovvgdiiaoihhilgjybwdcdporubzlwkhecgckzluibpnyidnvyapmluthypyzzvweiuazwsmfmjpqaczgvtuewiqodddvowpqwvksodeuiswwkozijvgbflvpfvsbwvdrpvutqoomugmfnbiyffmaaffikutcogyxghmyyeumvqyirtowtpdtixvxtjuwtbzjpsqxruhgesilljpbhmfjahinjivstoztqjvpypxnaaymwrmqauwkqlkkcmrjwcurxamrqxnjieodgwevgyixnjstiuorornedmxlcifrlaklsokmwdolxcxrmxfdcrvcujdaskfjxaigmptmjifpfolxbjiygvmrsmthsivpmhvdgmiwyepuwjimqchupkdfcsfunwnfvdcrwajobndffsjyoiyplmdwctdxtbctdqmkcelpweozomdrkzfaaptotkbtansrmktunmnictbimfmmajgcfoaywqwictahujiselhlpqjtqxdrcudlxeedazjnxjrlyjljhehsdtozzzlkfriqioqncklkcceylhzqaommfisxktongltqoxqnmcfhwacxbpckqtojgurvjwligkbjoiyucoiiminujtcpddnrlzpqbddnpbgnvmboyjqvpabboxvckbwyftfmgpztadmzcxxrtozlwlsuudycnmksgfyzunhxwcjoyaarwyugvrkwcwjucnqlmvxyjlffgvvfnosvkdnscohceqfkfhtauuslpikucwopnogrdjsvphwhngoqoyvseifmtfmivkpplfovbwqkuxbkrxxrsviufvuazughlkfrvgdanjchrrmutflnsuutzvxxapsfszxkvyspcqzpqbwgzkfztblbppogbhyqtyicacmxfveddftxmwugonkphjiujmerqpkbnszohshdslgfaqgyhbzcwmsfqxiwivynzifktylioqurizoqoexczfkmdkvztokmyopbwdhhblzpczssagsrbupjotaiyryayznnopdtcwuirluhtdxkuekyglrfrtbocfaoxmkieenzvgdfxpndmpggtkqbsjsqrlttknqbhrjnhpujexrlyiaajheapfgydelttqbppnhczrurbbkwogvxchpiqvaxpmcllbjgqsmptsobrstqpegxiokjighhiekjpobsjcvdgwgvrehkgghkycehypenaldjqsxumxoffyxmcmjypjliegzixmkeyppvrulsiayypjlbeipbgdglyclkobxrorbelvwqhrzzbrljoksrxbjzodcaiowubdcleavtwdudvbvdjqfhioqzibdrdtyivuuylkfhnrygeojhobfhaumqxysqihnvrkydhfqrkiuxuohwvwbfezcmcbvseyknjkiylosyplsrthpanhtsnrjlkrgquxgkdrfalyjyttcurydbwrdtqxvlofdwrnxdphipuvmtsigdlxrotskzwrnjowolqxdogupbczjxyrizmxtrovwvfoosjfwyvhvufesgqpyioqzvywtanwpgzqcarxeztynjqwzgadhjqezjwhqxfqligfuucaotuaywctzkazfsfotpcwvnzvvguupbdrihrwtvfnifuajfiywbsytijlqoukjqmrabiohfvsejgcnzamhkhtqhoshmusqgfjmfohswfiieawhowxxcesvmgggvrpitljnmdvohnxburuhakrmecfbidisfjsczgoencflrxrbzednbqfcxomicdqwvqkjcikmaprlblrpzjubvrciyeozuwerfydzcnglsgeaurggtpfjrjllhbcpiilbdtsxrmfsbidfvqasxwgfnkgjdxyahbzrrvorblmqdqxatapjuhexbaywcumzwhpiuqsppindziqfuabmyaztnnrwndjcfgrzphwokvhzgmqgfevbktisygzhpeigganykuwxfdrtdpyfnbwxvwxpabynwsdmbvlcmajljpgviyturvkbpkmkjiagortolnnecsqmpsgkekdblclevhoovjpoqozcbkcliwidagwigkjnxgnzygbgyycbviiddurmqhcehiudskfblzimnmcfialnlklentlraxapipbyzsatqcidksbmbirsnovzigkyanevqntmfwdkufdbfxreyagwfcnrdlproxoxsdgvbchghzevooegbywijinzamcuulbhhdsafyracpnegwwtbrxxnessutevxdiwkrmbpykyjmbjhxkxsmfxijiklyqawxuivatggztouupfsuvswpeevuhoxddsovptobakgpgsddesaiffusfskmelnqiuwdhukqjyqmgecgzmyxhhcbodvpcwqhhknqdlctmtvjdfjprvdvbxpqjquswhngvbfugcgoggtqzxlgxtqcjvgbngjdflxhijruyevamaojodiednedinanbldwpqtwoyagfcxduwxuvhhbrnenbvkpldyrbqhmxjofccexozimvfoxftqcfadstvtniyytogoizqqskgnsxnjuvomreiphjlxihrltrxbiscthbdtditrkhxigzjanxgtwicwgtenohdbkynjutledpzyylxyyyupdjukqpwmiklfawksfrbaicnfmnnukuvqqaudpdccngotfrcozmelutudpscxljfxtrcfythbdvwyhyyszwkbzwffikyjlkfjwaoznsobgfcuylrwnrcbwdmulvkulzsmzpkrvydnxsjkyigghilsobfuajkriqrsvoqasydajzoduubhzhwnqqbbaksczewxhtwiomepxljkzopljypllluoxjsxmrfoshyifaidpziwxzcevzernpkdwopywfxsqwdtzvgdtpkdxggorxtvrdfjozptlchwamsytmcpdkcxnbdozybtdaqvetsztochwldhviqmzrjcisfqtnbvzuewkmssrbvkpiumsthyeyleqjajnqgwnkduchyoiqxmiwptczzpflyrmztacawupbprhkuvmimpfydiqlhlhstceexkgqxclbivtysvtmapuxbvkqfzwzpgkkxkarfzwmitrxstfzhxouzoheccwkltcnuhmcjwtywxyzyojzacgmqpvdiouavbzfbtxbfdgypuxrkagzfshwawvrjgsvrbermfeasbcrlswezwgmeajjwbfhgcenzaplnuhsirlypypqstugigzkwagwakxcsozrezhgoxtkuxxsoqolcrmsotcabrxrmkybvnzhzzbnmvmxlmpetgeqfbotmayvljlchixvrbdcuyjownqqttmrxjklicqcyetgklblopymehuwsyzhdmisojcuhirsqfpjbbjuhiacvuszfsglnckkykpfkvzfsgmpwdxpmsrqynosdydhinfhyklrptgioairglkqpcvasekpcjmpikqjtmvbkesejmlkzprqxnothnlmvspgjdklaryysczngazooycudnpipqfxyjwfzhyrimtwdxkqoefalbmdohqkbbbbolpsaetotvggdbyfezjljfxhwdvoasqqytlzvbojempzomoslaizvaigswnsyulyycfkqhxinnhrormlshjnuaatnscsyiwxpntzsspmdwsjrfecpdgrxqjqzioklqauouxnirkzotpxovhkuhywwzexsdsuylghworduuulfuhmfglbrwapgwddzlveywkwwkjmuxkrjzwkhfdgogoswqydzmmrzvfqlcscyqavyztqdfnvnymafbijudxqlmukivngboxawtfriehebnikontujssdabrdrzetwzdylewtpcimojbkgbtrclalfkiuyzegaqldfupephafeihwojytvhtzavapnbaupfqrcskzokzfhcjkffztdnffzhtlhothefuqrtvessccpalizpgrfqestzghmrtyvzeqdzalxxqbspzgkdvjdqpgbxrnrecvyobqpfszxcdcbynbffpvnmhhoepcwogzlndvtlxrtztralsxjgxvptjaybqdtzfrhkrgawoxijtnbcfxnupeluwzrnahohvtcdaqdlabkojiwcjgmvzkrqvsqchecuiyjftubcuukybjdhhwcrqfdzertyrzjfdmeywqclepshpvvxhaiyvickeaypdgazqvgpmrnbrnraffzlfvhiqzhjpzwjolpftadrupdcclclriqrjkktcyymmumlrcvemtlrexixjzdluewpuoeqdqbegndgphsweghovrspejqtzexfpuojxskvueijntpjmrapbukzombmllzletepqifuwteyvwabovosetskoerbpytwnqazkpxfpzmvucmmuianntkdobpvrppucwuqcnqwxskypeicfcvsmgpbulhnmtcejjlolprpnlhizfankasxrshtgdbgeqfkiidmrdkryjgfksagfeagdakgykgegakgkmipfvnykscrdjdxyzfksbrsjzcfmowtcipljgwjehskiemvyuwstrnnjhwzwcgmcpbapbjvdluwvvbsxdaqtdybjdcimmlkcckwiclwtsrsjjcjnotqkwpcehzacmjulvxkarhbeklugwlqqjrsophxlcrjdbdjaborfwdiqxfliuetbzubsykwdlxaqkqjwwitsexhbkosbgchgcczjqegsqwlvzjuuhunoqnwfhifyfyqugpybgggaqivlwmhnuthnpjbcvqeymyvsmwipmvivppyvupboaozjxxbppqhbelndbgroqqesuggyqefwwjlerlmkgihuteowuunwcdjeilryiszgcinrdrawhnjywhacmrpxudxtwqcqdruwdiotnqtlttrqgufdajrqxuqrrzjcxojcyvnwvhgeyxwhurzaqvtcjfpkouwpqyyuuedijyusvmbljgqfusrtfkjhjkbyhlhcrljfrycwrclqfcgwojhiskfqmnnkbsibklzmaucbnwqiugixzvcfvkpopfiadfwstytmiykmtdnszelatadmdfmesvelirzdmtaofugmdkguuqfcqqctecpkscvwecidbmqjppthuoadutpcwgynjpfxvcudopaslyicaujhbeixussyqkjlklkyanuazimwozqwnhgpqkmrwpshamzfsuifpfxrprpcxbalbtqcuqhnvsdttiltnpdxotwyvolkepkgyciuecanpyzqtocelcmpagqkhjtbodevuaijrxnutckancepxvtxlwsbtlwozbyphjgxqzqdfhifgcxhselzfzvaqguzfigrfcnxvqfowgbemsmgglhehfmviwahqdiyoaaeryhgzwgajaubgjxiwqozbjsyitbhcoiulchswwakxhmwapvizjruthliewmnbgmcfqispkztnesgfvinbdvgawzgelnahfipfdkepobeemzdnsjuvvfhpakhhjmqhywykubfxyjudwgjlfopxiurycxzrgbufaqjajleucabpmhpbcntmwwueegvwfteanwtvupndsbjfrchxmovlttstmiedrlzqgmzpakfgzwmccwvltoclwbhrutmaisflvfaupgcboidnbqzdjttwydogiuhrbagnqrqhddmzwmkglbngpvxphwcqfckpxrwjybmjlrkpiojjpshjocpzbldwjrdehjzolrryulcehfpwdodlsbtwmucnquvcrkcbeiuutsvaxkbunaosqhejrqwupqysftcztgwfleuhvnwvdkefcicvjyeetvldvxjknqvnmtrtlhreqyturditgnmnjfldiilkkhpslzbjezjgpiarlpposmtrzsxpiffctfismcpnoensqmistbqpfxudjuvvknvsmqnbkdccruxzpzrvgjutaaybsxfhzuikqxpfljxapxlcrqjroxsplffzimlfpijhbkcetlahtoyvbziewjfhfmrpgfvxhuxftepehhsibysgafnkeydguiczxksfsrnflgkubzcmatqcjpgpgyorlevvmbxxdstjfnyamoxjghiivdkdwxisiixxfdokpgjltqrezumrddqxhmeziqofqyiydgbeglkrahszbtadrouqcobjqvmoyinnozrqulvnnaaectsonptaohejxdlmhdoepmeienommlmhhofkjxbozrofsptivjejguycrdnrekpjiolnwxwhpulfrstgctavklxuswjhrybcqwhtcynjeszbapxzamwmcxkwvkbvacrllqxcfjcvbojhdmkpkhspuwvgnuconqmcxfqbbscknwnjamckrgstlbjwmgoveposnmfrrntqzkahayrvpsgtapxvuvfjrkiyvdpjbnhopbgalnacqoyqpgngldfwyvhshoieusyxkrrrgrtcrgjvgyceplkkyylabtbaymvpeexwlrnldxtmbxdixnbgxxguhjgyfealstwacxnkvhyqgxnaezmhnknzvgrucugyqqeqyjjwwlwkmqufhfdhurserfgyvdwccftagqxxuwruwvuhuuiwlapwxghtttwsgflyemscllzffhkeqghyyigxprdvbmhmxaaypsuhhtqxfcbvxhbhuvbovboibchjnljkjikmcpmrreisedgouilzwjjraevmqqmaedzhzrlnyzsmhebovmnrattepswivkexvdlujiccsbviwkzprdlhtnkvyrsjmuawrmzqzzfbgjqqifdmtwnfuyvgxsmxuwvvwivsmcolnxhdlisjbuxiajvelncdhjotxqeelvatguksqmapixjibpsfvaiwqfzdxyaxoupicdmuftliurkwhofudalzuauwcvxhghderbwvhxtmuogvrzasofphvxdfyqhkczfpgijuqvjfgnseuugareyyrbbsncrsrwhueguujwgzgvaclfaflnmspwhprpljuzehsujnehcojoishlrijqhbamwrswelnvjkcpdakiacbckmxzuaajpqsvurqvrsktdrcqumqpgqlwhmdxpuetbdekuzevhextznkiwnpohydgijtxgzqrnawvwwoldjxuedapfkdavpyoqxxdwujtvmxpusmpxicddwmiymmbjmksycsiyfnsyycnnaygxqfgwyeosohpmmpyfzwovfehykcsbmmrvthysqigdsentwjtcbmdamwwrvdullaqjdritttilxgszwyvggioohaalzwfdbwbkdximbqkjcranlcofxckstskvynehcdicsejmoyyhjzrbhezcoeghcsnhzmjarbvehkvmmnoiwpqxakeujbedsbmolemsfkybxfrdgzfcsiwohpkoqmtyktpwjnlnqjjacrmzrfnhnesdodrsdmipyflfuuyfsrqmabayhkohpeynszyewfjomutmxtkoltmtlvsignfampoksxczfryahbaxefacoamjqvanvtxqlxbumyussisgucgcwirydfvbbyqftgyopjnudpquwbfbhiijzxliffldqxxnoygmcckewsnkjphejyiycatsgunrygflwthxcvpdfbxwjnrtbawwghpexdihxztvyhpwhnmbqyhtaykzbfcbgjkcpokntawfyndhubcszdeqqqxvnaogepxdrmhtucwyxabzfuczzqnvoskcserucfvbagaxhroplxzsrzuapckaaqfpnklumvsvftiglemfiiwpcajzpidapjcqkejdglgkrecxuqyramkkevxjgrgkddvqavbzjwiwgpepyiacjwrmnynaiqvlpqkqsjwfzhbtrmovpuhjvhzqulhcicsjqbsmlkaocxisftlyzpsfogkhudrhjutvgxzwajwctlhwuqzsqglgunlxcctwxwwmyixbrtbqgamdkhepwzwslfirtwlvcpcvekgzoxohtulnlfgfxjokviosbvbthjsagwilphzsycnxaafsnzlprqgtednuvsazhjwyxsspupntscewefxlraereatwfmyohjnvamkzlqlmphjhsfthbouqsnxsxnsniluupoebtnzjwdnslakqpyvadqntcrneyijgqkcjjaliaqoaghgeyrcdgwqaanpbrnuyxllntxgxyrcbgmxhpekuyyphtpbcxdffgcvcpwhigovnamtetpkkjuvecbvugumcwrxaqnkhpgkdmduqvcschdobscpeonrmgaszgbwvuftetitnpdujkixfomstwrsgcfcbhpcjmjekrgjkloebwfahtgdqmjpiaylsbiquydvdkfqlkslrzelnsbiogxjpqqmbmceryuniwifgwerympjnvhyffzfoiayuqckepvonnstidyaqehtdytpahykplmtuxqrsleupnfkgzhbyithldahgptniukravictxmujcgcdtnzpqabrnsbptnffnrzomtqugdktivasxgmarfliafiaopjgajlateivvuyfokfrsgqpkyrolmyonytwswvyyrssytcgztolufbcieshvcykenadmpkgzgvowfkfkgafvuotbibrrhoporodvkwaygbreicdmvxdlzshndtpxtyftkcnuefxkktaxzrnxvbdxvkzfouhuzorbgurcyiocrloesuncxshhavwvlqvrxuikjwtzvrmjexdnlmnkimbvpiyccucmmmaubabtdpedxuktjplsmdavvzbdnzeixshrbaihumzwdtwviinetsqczrrnokzytucqioqkcvwcrqnadctiyuokdnovrlqnizqokfdhifxybnalayhogzdxdgmaetabgyktgshosogdpqicrvpfvkecyihtcltqzywrvshdozzwcpxmtkdmaxrtefiyuznoupsoihxsixgjftpnegtfkfrqwrfkashfgnxthjciwvujmxeaxmuywvolkcgvvpbhtnzwzjmraxpdrpuvdqhnnqgczwfpseixhksyewvgrfgmmqcvwqggtcbzcoekbedbqvvzgzudpclurbqojjzqfkyishrteqlokknnqaldpprrwafynxiontemeacgepecqjvgyzdzpmrjtzuohqlykwhtbbymuzlivjvgdtexiqdzqzpddkohirlpaxsmamansqxbugvtssoabmljsqgolbdwefvghyumjeugswldenxmqvvbetqqeplswfgxshvzgmrbvdvutpocadbxsuurbnyyruqrgmgffzgpuskhgjblhbyutmveafebgjwwcpyglpdrqwonmgpfwzrywqldxdxnjpvawcjppfkhjuoojrgufyremcosfksgnhrffovtqeotsiqlqhdiufxdxeqcoaitxbcpfmuuzgvzjsfhihetstesdysbpaedltqapzxogkppcvioyowqpqwpwkfmvyqrnlcmsufsywythjemexhvbfdpghryhwhdxstecympzaqezvdxjxzcwavfszorawwxcmdmsatmzrggiilftgwcludgjjnsksiefwhmwuprgbevqeuagmkhdlebvhhixuhwkvorippaxkgildbrmtywvndvbojpwcparpcsmylzpazfiqnhzyonjilgdppzwuwrnzxugbtwuzzqdzktjlbcsxadghxfeodfmtsopyutibuddxqidlsvvxuouygubrgrqeugkatfsesobpjmcztsrgcjeovrnxijvianjvwpayurpnxvyextbjcgmntwkzudcrniwoffjvqiobbmhllhiuftjeohletidmxfbaybsdchgxrjnihjefdzfvhfoncsxbhmmrhompkcehxxqbmqjuuhqrligwzpwgjrubyijvjbgvpafuwtfgungrftldyjfymhnmrtysylfmnkhiqzokgavzgdqdsjzvhhxzmqxpxisbjqcfbpdnyjczvdfxkcdqwqwtmcpxqkxgboegrldcrshmoaqrnizjsnsukrxyjskevaiebmkhlethryuxhjzgjalbphfthrzsvqlqzaahzekrnwflzaxjglkjuwkfunqbsazwzgcuqvzrgqqrqoriyqrgepefnqqvistejjlaiuoittgwkqubavqddjznretxhxqzhwstbvozyvuygflcpiqgjwvtxuaaofaekmvdzxgmydyxrfizvqhjggzhxriojzxkushjrhbttjzwcbxxtqwwzoyvpyfhzzwrnxokljyzsdowtnekrgwewsspdwvsmyxxcergxziydtjyeiabowbqjrlznxfchilplluoimfgxqlvyccbdqqitpaygtiidqkpwttfetveggylgztprwdmsrrmzmbsihnlivrwhqcbeghbqmxmfmphhzyasleehyvcgvbfawzazycmiqbdoylbkyrnvpzlbrycibkzvrcnoihlonfbikolalcwywmynksigvqexutcueceqcufaqbomgjngknvvxzmvxjevhcrgyzkudtmdxoekmsmqstktxaskjfkvfizjcbmvojvziccdsndczwufptaacxinvbbjirxklcciixolwhpzwxlreytcvhjaincwrmemwocfpmzxkhqyyazhjhmfqajxjmytbpdzozuxhsarwpespsfccncwihaihvabkjmtqumnqsjcdbesblktbgexvhtxrxddesqnsgavkieibzlszjkfhdlfehuoayxiqkkoqrvopcqccaxosrmstqdzvpenaguvblqdqnyarwdoqslrvbusbzeffnoaeosbzwdotnhviocrvwuauzwlqstbrvcycisidlqtonndhpdrajvalfleguxdsesndoqcwfdshtciudyyzxvwovbmxnlupirhyjblvvxixljibisylflupmogienfzzayfiukppkyhnqxqnshzoqafegxqmpmeqobpgtmyecfcajcbngkwrjgxggzxptazvofwehpfxfbxtbavrvainxqdrvrfpoxpmdkbakeirwdwiqeskioixyoepbhxfvuzohwrjxiasuwnjkjlrhcwfenwowfjblugcoyfbyviqteaajpctmqotkqxxsvtvtswttfuqbvdjcydcogqagtazhtlgmfrpsicdefmhtrlnjzzjjorxgmtjzgycjdizrtzxtyfhvpvfvwtqbcphiberqpoaitageckcwzjodxvphkwbxelvkfojkwaxyinjbobsinrtsjymvtqrmmpuocolacujbclodbmceriglhjijfxlfcklyupckthtukpigeckwuhfvnaztefmupqzhflzrsfladadcqbjgtqavbgnxgdgmlgytrhvylnhlrhlswxegfjdxtvaexkiumnpdfcgzpxfylvsgwujnuvowkihlzefgrruzfwkxiskufdhwxxajdcqsrdzxazthksxhhqqyggcthosalkoyktjvznihvyhgtdgoiuiwtemtidalpeeuadvvjjswktjjvffvfvwwezbtnqvlmrihglayfzeaejdgzedxukwbhxakblbmgzglpciccphvhqxiteyaxfouzknyerupiyvufvwyly"); - sb.append("lhjkwjxgwepbzzzujiyzsxvzrcvhohxlxuvxsvfrfhoxftsznstombqvzlvoafosfkoooaczpzdubdwwawmcsbfttycwoxenbpesysisqeemzewcsykuqamonkobbvkodvjpibmsjkajskagxndfeomswpfdcowjdhjmyhqxqjfngxttzutnedsermpumgkyuqckxmqsfqkvjzlshvdfnlfmskncnuxwpbpwvgvhspanwqbrxfgdgodpblxxprxwjankhelhwgtsomyupevwosskgjuejktnrezyxwyrjsfhqllxuhrbuzjqmbfrzuucasnqffoaekgnfilrquggrtoffsfqngttepuhmvjgqfzxgxfudinsufzokgvyxouzujqjjmwkhdzgibhgwgnnpapampzjdklpyhbepgbmnlfczncswbiihyebyuxfroalbnrbpenhiarkrkifldbninnaybietymosjyvgvftxmalceqxyfcscgiubtkmbzjymxxdujwepuasthnpkihpdjdnpxmlywwapzikvazuvgqscsfkvjtfulrdliblrbjapjocomdfccyivbjlrzqsodppbzxqlfleepjbbtpdvtvhlgtcvfomzezindcoqqefzixiofhhyxzhzkoczycigqnhfsiuqsdecqgyeatlgqbwhmoalryckmfdmunosclmqjfkjeabcqmbrjkhiltylpqpjdgolihwridqabdwqjjkodzwfbhfsngkjrlrizcckcfupblqcegnvazflennnzxryvqiockxjmktuedlcfmntvaiijvyaghivgdrjhsrzpneqoxuycgwyixuufkfunjptyjrqunydqhpavqcqgmeomcntwwsvmwqujbfcpywmdfuocruvcefcltkylqiyqvfgomwtrkzshlfhiohfcmjmdztsgngdxrjnwadamlcmstpqwwhimoakohanzloqvdvlavlnrqhqfgnxwpttajdyvwwmeioeudvjuynytazhxauydyxfmqtsretnnbfvsqfndilzcqqjaxabbxwbtgigsoezndzffsetvqfgupqpsisholkjwikrycxdmfpxcdkhegeqqquvibtcbzmoqbajtciucmjikyhjainrbkhgtoflyetdzxxctmqpmhrqgbnkgbzrheaurwkzkdftrbltropxavrgfpmcppdpsornpisrvtngnodnnxrepbhlmfhjltwvhwhcrnurofubzeojbbdfqtrgaeocljqeitdqwsnqsbenepnlvptmsdehrgbsfeuxknaiccardtmbriewodhjpljcuwxghscydrurkyhvrjiydvdpmbcpswqskpbboqrcduvhvnnyyiatuyxfhegexegojvydnytyxxikiltmxqoduimtpjrlkbqmiifqlssfqmrqakxmxdinxnnavwecwyttdlcxnyftlklmdqljgjeuetdnmdeiqpznrxamqydvfkaggjtdcjxsukgxlououwzpwahtbzdoqamzueqqnvffnnyjpxzqmkrbwfesadxiavyioxhzgwltbytqacueigbmcjcodnaptsmuffbfifwemdhzshnnlpiwnkanyfjibritvxawyurvfuxyppaqvxdvnfbtiqvijvrhexadckoaxwdkwcyhzorwzzyvsgcgccxwdulerrnbmdwqjyccbquwqstqnqkohfegwmydvesrprgmznfvygfkdwpkdslzpkkjbhdynlodrdcojjttcovfyynrlgcqgyzhcoiievgdhtzvchhdsgmgtkjpihfyslgtonguccnqgudyycxjvubaatuhmejrfppkdeqjveeclntekyepecenbhwibscjtldhqjfopglziixvjlmchynojckymemijltpgqwnrrvuxhqdfqcqxqkmgulxuumtvlqrgkbgtwltmrdyauzxdcvblvjeumqrtvnlgumqmpinnsoxdknmypzzmmdsqzyhsdpjlstippnxmdeuqgeruzeyxmtljggxbkexukafofizknudcnfbqgmjirrczinfiodgmkiatwthoznmbagrchlstjklldtudklijoypyodvpemdrljpnwdpblfezciatjymoscaalonqbgsjtmlcdklxofvvrgdthsqfyedbtvhlbptrdsnctpcgqywqeepanspafbkxkcjeanhnpsfidsnxqlqfihhploiqxavbbkopevxxlighsxvlnbqzhfcwivwqrieawhjuwkjqbbtnnhfsvqhjtfjhzwdmbsirmnxylvtwxoczjiqawejqthoawfabjpbiuhzkozufzzjbifxzzkegugfdzbgvqwcyvgxmvemvgvgyrzzzpmzdpsjulnpmieuyqhtvtdwadighrcoinmimtnmvczcferaxhhwvrywtgucapihwzuufguasfjixlprsrpjxkqeynpmczytaiiocjcfculjniuwlriwclixeyiqxqhobmtljsdgzzaihwtfgsesqnjvwzaoakrqchyqcsnfmamtwdwktcprknqmlblcsaqrpwbdclwksnralvmwintdkenvqvrzffnebuezxzlqngziwwdcwhdqkanguejdgpsfuruxiusrnzsenzwopsdouebricnnlwtjnbkrxpvexhwnjewojkoznzpetkidwnxbluytxnffqnjmwtiekhsuysdnfcuwwicvqpnxgwzirhrhlaqzqpzqntnswrraihnrzenjobjwhcqfqkwwjuaxiypaikdggxyqsisgggpcekczsmvgngibbbqqbhuruitqvwxhpqdkzgvlsxexhkzidswdddyuwgnxrfkeaijkjlpwrkpibuvsfhmmkypyvrenhfzqnwybjpvphbarolxeuzidgrlyicpmydccgswtztgqqgrrzpvgmqsfsndcfvymolzhgdyeljlujjypszppxwvpppbffsgixcvdpagxvcdnfmscsscnqmxruulpnaktnxfhdehdpurbooqukqnnwlwapuetslebxlewmcfqahrznysyzqvrxxgpywqfkqdlietuelmimrknknwkslrcrwjcbexgvckfdcnfbnifhspwqjhvsbxatrdwlfjlgqwefxydpkggdyxpdebesczpecjvytivrvkzpnwxwsusawfnyrmfdvqmkzgfhszcdiyzzubvfoickmnafgcwehcoijvrscpmgbjfyrwyzcrkdcdjlzkuivvohupjqjgouvlwdkrcwcspnmnlrsqdlomdcdtnshfwiimfkzsvzmshilfajwswyzyxxltwjsnogdjgdyfqkefxyvtacuvqsczykqjvjpnzdfvfgojzvqcenjefgubaqbgcwocafgtrmhzvmhfnzcabwieogqvaksbxjruvrphvpjnytpgqsnuijpovkbnilfngcrignrpmulngqmpjzeuinjjqwpbxxeradpglwpbhriefcpamppnfndgoeylhmeoqweowldfryzngxoeiinlyfwemhvowfhxvxuloqsdlovugkxzohjtxicpckuqnbveodrmlpbreeowregusjcrohqxsamnnziloydynjvwlwncftljgvvfvrbatwshbwdvnutlxgiifmosbvytknobabglaztkzdzifotnjcrjxcvanlzypkgmcsvpofbzqlkzruqdbicgoiycychvdqbebkkixdwtqajmlifrjvytdiozjyavuvczalnbxpmsnnyfkhwqjcydqoztdnrswwawaxvuzdixyzjkimxpgqtdlxnwebrryqqngkjsouaitoaznbowbawghevtwtxtkafbwvgryeqrrmjjxsymiblbhzxozkkplxilcqzaehaidjlpvbjpbltokfzwdsgnpqjwvygcessxhngxvwjxwhtiurdgaffiybvyqaprtfzvvzwlndrvszxiofpqnsnynkfcllflkizxdilpccrfcmezeklpylbqiownmtdzclfexnrnsyqrerfiwqxfubaoruhutrmptovauckfbndsbxbbqtetzerukzloqgjtbyiidoghpkvvqtwmkwyvyakuwaigiyriaigcfftlpjeuumehswmroxnvgvitlnfpktyiudcslcftypqfcsquapfmvwcasdcjkhikzxbzxszncvqyvycqwuhyiokvtnwlfxywipndvsgdgamhsebuavzrmejhmojdofkldlmuihejjigbzmwkqcnxwknmvhwjpvhokyluixhiidolhzhwgmpdmhvjtwjvmtcqszfrenduasczwdnrrmmstyzqncljzulfsviibkhuuyknrfjiedcapkekbgtboigsbkjzblosrzdfkeslfogchgkqsfzdxwtubhjhvlgkvexatdtbxfpgcclcwcqhbsoclgowpguolmpakpbvqtdcajnuliwsouysdetquhkkkxkkvguenhqipsexxrzsobbslvoveweuhrjrbhfnvjbvoamlmkzynmflwkkaykxnlcinmguaxmhuiveowcmwazjyzailksseeqrmmrrkpuqszuicfnnajyvlhiuxkshlgzxluqccsmmqfdztygnvjfwwqmfsddxsehqlwcapwvejrcafrebmvognokzyvlfuskhhnavillfluqvhtqrefnuwugpbnmbbcuvssylozlrmcnvofdsbpmszrrneimhfwckkbxyanovcaiyxfkfalkjagkqcpjabwlykugurupikdzzcxqsmknskxvjebczfkzrplrlugjosufkotvmcmbnvpmrmimscxpcgvebhqrxtflcfkrmjkkyybzlzjpanqphmfbkkwktkbywkmrikehrfybbmbxgyvqplyuonrlrxqrjnipgrlzuvbwqwkidsiqsikxacjftfrnrvfxrpericlyzdpilzxntgcezzcrrmtwgvlebjlloiancfflmhlejbnmddseucrpxsdalwtvnkbhondiyriopyhslrzitajzxzahgvnsxpwxkpbkzwfldmswbfvcubmkhfpldxchbjvmuczstycpwtrazrhhipjrcmohwjnkwgvhpgtnyuzgzpgalvrgigxunkjlwktxqpdqntfbcllvvnekuiqodcvlktejhtyclvvjwsmvpculjrulctknycojqboikhydqzvvdmybakfypjahzckyedksujvadsfcbtfwzmkoblxnpvbmfqbwlbnymbxrqzytlpdaemkjmvzmlstknutzphylzjdenwywiethnkgqorcyoishepbhmwpqhomkrvqefmwubydcopiggehmgefewnlthqrcwpwgpqasndnbfyprxzbbiwheuyrychkwpstixvoxpirelapjulysbtzxufaygnzoquklavjpwllghsdxqyhvkhubhordjjiknavpctnkrvybdowazfgkcyzwxqtghxbzbiwzgreojnsgfokjidnstneemiexbfmtidwnpxkzcatqmmwojoqcsqhhwdphgfualblpimypffjxmfpbdqedynrjkkscrhqbjnigivhjgxzsxtwtcqlkuqddtyovurkzbgddgjqlsqgqjdupqonodlclhaurwdlslyemfpnsbmavgevydgybnkupganmkhjsrkivpxefxurhzunsfaehnvpglxaigeboxmmqhougmxzhfgwiapwnzzxdihhbydanejcrjecpovecbjivntbktgkmxejvoxcvbfmaclidrmifhiwipnlsvxuokpjcereobezshkxuuyklukmjdlilxdrdqpxsncqekqpfnqluslvbenhllxischpnxrirgnpqpdkhbpkevfaqxfifjndtnlvlgydqakdhgpuztptbvvvnmiasgfssjsazrylbobjznkowzdlsoxfgaproyjujfqxbeszpklofxqrcngaqcbnadldffoolvfvirhyacevdfiajamscruaemorozzsgpkdmqmkttasdtpjfnutnhzzrpwgyvyfmuwzpgfavkpzdntseocosnirnrcphwtoduhpamgdykcklfaywkolajhrwfggqomzxfcaextshrvvtczprtshsmahfxcozwowtrqzllgcbefovmwxfyztwjyvbnuhmmzaxuxpxzhxpwwmymuhxoawhaduceeqkhuyumbxfxbimqjmgpibyhusbqsilrokcztffprmjrlrwypbpuawelvkfafitfyjiohkfwsxuwalvfnmhtittldjsvmxqlzjozxmlemqwxcupkgznmhkdavxtaxrklxgdwwkermcyalpytxdvsbtlfopxlvekqquzzmqygrksfhzwvtijjkkcrrghdyzjgtdgdyumqzrqxvtfezoleyugjpkqylxdidybazsmzucpptdigmlzhdygecbuheakgcgstxvlofozwgtqbpvxcbdvfcolwjvzrerhcmtfsfsniuutiambtaphyodqhlsmdwhfovflcbiymdseyzkcvgmqdoohvkqaiachrvgkimirkyuyqdqmfkbkrgihabkxqslfpdopjptwdiikdxguuzprlguvwakdgzyqmbujmeorqbasqjwgbzhmbxplgisxkbyrvpkfvlnnxjofdmsfrmzcvhrdomyzhacfagwpfqfwuhrshevszhxpxvjhyepokfbtodgqdluasppaxkiletsfenxypalliwnvjjbvhggosgoxlutkqnlivmcojjvzqcxqfrnaoabcyxsotkciwgdqpzcthcsylqpbckmjhuppojhnqivpaehqgzwuyyaeycycanqvfuvlyjckqcutozldqquyscozsdexregzvkzppphdnswzgjhymwkblifuigaoocsqnbhbdftjflilxamkqtsalsrkgxjgrnvrhrjcezmgycezgcmfjhcykytpbvjnbwrtgvoagigszltvvqspskqczvyefhdtrppekuafjofdxvvlnpesvsnrmzyqzoxabmefpydcyblgmtcngooegdzsvaobosyzcbycbdihkoehtbpcghcwzxwhwjcsgalkrgggqjoiolejlbirpegxnjtusdvkdqtslmvreiivkmtpyepwiisambhmmfbqgexasmqsldrtiwwrvgotrwhrsmjysbemloufhfzvbcgxgsvoatukkotrgfhbnaknlvyfthmabsypfaghrqpxhmcsarnozrrbkcamwjanfanvrsbuhfpdcdlrlimczvyxubmwxrpoukrkeootzpkpttjdxfozjlodeplgzvscvaqzclpxturigbatbhauweyejfyjyrhnhckcahagsqbemlkhhgdmuxalzvfpinuyvsriydsrdymfamxfeuvvpddvmnzzfbzsgxdgrrgdmdhsdhggfglwhjmylpocojlpkjtugncqvychamopxaqfwgdtvzcgvbsrmueuuljjfdtjiqhcglaeydpzhoezsgxvascgwpwjiuatpgwppqheevyxewdcsdiokhrxcyyztnkpyvespitdsurttpaepjwkqoxtntfurnhxwuyejkwwdsiaemsewdjtzocasiwvrousecqathqkconkjnfpjwwolfzqanthgqgxssvrienlrxmksglcdoyrnxjdzgdlryncfpaupbltsvhsdytflvpsttnibtgjebwecoknforcimqxtosoxfzbcmomsaaziascsqfjuunfmoezqggkxffabqsyboqsheeldrsnrjfyjpxhfmlcdeohlyumztoiubuneoboyaherlwfflpdfwgghnhxrwkzraqfqheoizlmdeunmxhpvtgkzvxnwlgiapwyknjomvypwtbkwqavudgrmgybbjatogfceelfxkokjncapwhovmpgzmwucmpcnsslcnsljnahgypbljnsnhxudcrtxuwhifipwuvknrauqvltbhrrwydkfqyzhxhmotgulstfrpcwseyzxurhxuxkurtiwlsebolsgigndmylqdkodalfbyupxqbmljfsltchcqxvlvjtfjqfzibqqsycovwllcwwrhjxyjbzynqipjbrzcisbonkmkwqktyroybgbcwwxbwetloomumcwrnktdfyuptxkrrplqowmzlwupduvxrxpvhhwojvnmcvnjawtcnrnuhyibgvezzzakkzypwclbfioeshcacsvltdsogtuqtbrcechxojsjvomqtxjbiqpkyuewdhzqhokpmfmhwifwrdkgwdmtooasjpirmmhhulyucckndesmchknvxjiwchkaclpkynyruzzbvvbgdcxekxjxzdrrsdiwyetuswjeozskhhdjqrgihkriayjcrbunsdkjeowhqyttingqdyemyzuezqtfrbliczshdxoixfalnpootvelxbqtmvjxhzkleywrmhstqfjkdrjqjypxyyrfrbtmxixhbxzquohfkfojnghfvkzmznvqziufbfvpmoadygknjujwgcutqakxzyinazfbfktffxalalsjmbfpzocltqfpzosweaybhjlpszonfyevcrznnvrpfyiacvrqmmiuekemwzgnluvrxlejhrqbnehhopwjzxwntogfghrbtfhjmtgsdlmyhvbsruqyphrpoaumnbkfopncdlybalxekxrrvlpetllzgqrrspepaicbsggalwtfxbqhnwqlpxaobehvlbbkjhbpawebrmxgtwnybufbbzasklcxhuvpjvnormioixbmlfovandgbtonyjwijylkhtplxxhfpfvlhmoxwitfndkesgxvuihphefaefyucdgyapipztsqfwsxbjpallygskvjxumvirrhptlbleocnfyqyickmfddnpvrijojmbfqfgcfaulzcujwgbwxclcgaohcgktlreywkamjvhesdzkpoukpakywkklythtsndykxmjquzbuxyvmtfnukkazwsgpcuuyscahuwkanlktpqfxtpkpqldjvaxablvqwgpavrppiksmzinvbosbiqdojaphpeaxhjouuhbdbxwafaddlaxellsdpekwqujehdeakysnieharnnmeykxgdzjwiikwrdnrwqfcacxaxkpnnffoposdlcyyylrouedyuxkhpuvqlofbkhwnlbntzodcaimyzydsptmfnefcyfgjirbcqlmwiudqokupyzfnhidpwznnivbakcwzkixkahpbelrsxufrtdqneocvqktjyzfyvyatsftqljlxgkxazcascubqinurdpahwkddmxsuxpabtuwlsxcggpyrduhqroovazpezdxcjcxdjtmndgjjpydenbrlpdiucelkhobfrnqpmluuqtphupyootupnmeazoieucgiwodsdotrtiiaknxndbquahulxevibxzxdizfrnvffmhlifsutkmkournnufctcfbjymomneixtoubeewqzeavwvqqojekxdmxngqvhzxqquktckodqobhkqtrtfdqzycjborpnxlwdbqkysslrsmllcupeoezjrvfbrptiwzwnsqxyvlrlofxjkormghdrvbimtexhouvfngspuhhfwdjpyyoulxgkfkbsqvesfavpqxsohhklhwabkqjzjuekbdmxgkedlotspbbblwnsblvovfoapfcvwpgeuiapvxpfvfnlldtrudbaudissowphetexqtpkixcwthycsarcsgepbqhlxspfyfbbqbhponpbhvuqxuxpbydnavjijefccohtkxlxogstwyjfbhsrunmbaliehwpfulxqlbjavrkhqdduqfdyivqwwsudduoyrbuejrmkmmhueoctwicuyxwvwqxnseycofvgosdwuvgtaspjpjgqcnnkfoinwtwjahfviwzbhvegnwbhjbnwpdbjloinnphjgnhcdjsskdljjmxdtaykydbjelhesaleduzpgwkqvipulacmdesbmydoegofittygghoprddsyfnlwnqfzcxxgfgfvrappbjjhqzgpubouicquazvsmxnhtfpjdouxpzjoppsviuwlammetwmupxnhbmhikljcfdqgyjrpofzyocpfjveulstlfsivtreogxjlnesuxrmbhvphpzngarwrwzvhtbbhvxmecuquymqtcxxetexdqxbnrxjhxqvpdkmtkpzluejkstpeukdxmucsysfuevelwbuprflfmtsiilojhubqffzinvxecxxivnsrzicdbtnllklrkhkwcyaxtxxltbyruaejadwvaizrzkbgmxutvcwwkqlekkyiuatsqflfptlqklmsrqfesyfgpjrvwbcculljmkrwtkfipwnvuygibtlwefgwkrabyvtapbaskmrpwxhdrdntxsahqmgztehcktyckoxsqhxywbxoxdbybpaabatnfiyemkxmebudizehxwazfcjrynocljnaqflpipvfbjebyxnxbdjnygbtfvkoklducnhzupdniofsgpauhxyowcoibforqquunftdpkhdytrzwpaoirarrrwjmanawwkbkwjdickdrsqrjnstyrneykcwotzadcctsuoyvfanfaoddqbffncqbcbghovcggpjwquvqzcpgbqycqddvflrfqtmervvyfuwlkqdoqeljhvnvxgjdyabtamfsaxelowkjfyeuebmxpcrrswyobxrsrclwuuauaxfsszdpugtjnsomtdcunngpqamlxfldwyqvdznrfvjdjruxgwqztpytzogahzjkzmlgqjcvfccqyfczbravbbzjvapsqinmtfoghaekrffvxslwmthebnphnosoiptqrvlzmfikjjofhrmdystqudmrwtruretywymoxpwwdcfcnxrpcqzyiatjokpkhltvxscgpxfjbtuaapvrjdbzabuzozugpjyxylbqbfdxwkekjtnqgdlzppwuhkatieqvoddtxffrzrwtxksbuuerlscvdlptewzfvhvrqqhljzamruxfgmdtkjqghkznjnegfcpesonarqajyjyleewhxrnvownspxovwuiscgtzziihzawuyuwshgcgcnuobungrzoqzfugnkexufcwdxsebocfxgxvpwwgtqjzpteqovgnrtrdserjddfqqfssmsqioiheavotguxegodaqwvwhtodzqcpmzlurwedsxothwmummrkszpyohminsudcebsvfudjaumrhtxsmttthslvxgjycayfwrypwailzqiuahjpmysiskhrjromzpowjyjimrszlsbqztdgmdnsrpmchhxiuzzwhdztdywictdqofxeszlggqoywncratnhlnugybkqamrxnwzvsabyhjqcknwgzocsjwnnpywmcwxieezabdwwycbnnxxdsdqgujjrfwwgasirtdwxmfefbltdkupzedqbwttoisozfpjzumdnkhcwslksdkngutrjuyfnvqhpwdhdgxrjvsridmjedfqxxrfvfployeelzupekcergiczsmmugdxamziyndkgbvfbhldxfzlrpkenisbsvsoldblspcljjqytazosdkntyngnzaidufaziimacpaznzxivllvevrwmrkcizfplfhyvmcclzsvmyooxfhwovbcyuyvxfkzwvqwnenshkidzlkguahdgtlrkizaqfonwlmaitqknjygkhqdqmymrzducjaubgkgfulrucvnsauhvavqxrcngcxchywdwikvsesuwfsrqoukrydzgaejqiaywlweykoxdltaozsyjhzqcizcyajmtuzsalcmvjuuwypfjyljqymzrwvuvmwofkuftobivajtudylrzbsrlgaxtwfeokrymiuamltvwhnmqcnbejhgkzzvuwwkefrhxvfoszelqubfxkyqkxmiwcqzzkgdkxppisyxdvfzfgcfhjgbqfzxvozkxrfaervwwdzbxbuzgxdpmygjkgihxrmyrjhwvautymnwafpucnffehvvctohkbzwfseutlrxtjaalstfknffgfdxdhcmhxxvhvuyxmpzmptdhgaefhrokxpaeolligambjkpprgunmrulxpbwfpjznpovymgkqnmzieydfjtkdhnmmcfnayiffjnnnvahetnixhjdffvvpgrqzkcmwbbgwsjgyjkcrfmzpllxfsurrqnralhrsmqotvprxazqlqpjlnysklosbskkfjutoxmqrnqygsejlbdztuapkjznkfkdsmmuupchfgvsxizhfckbqvevkyxdywsyfkmcphpiljaqdrdajkkxyzxwdcyjcyypgyujxusgdcxyscidixrlnlwzkxphbkoitvgcaguiifhhwzqmloynlxkrwhfdsqbunmjuvfwokmebfrcrcnmvqsqbrjxsgqovhylaukcelkangepxjjlgzzwgfzuhjqsqqlcaebvnsvgisjsoarnzlfkfziuqirfboimppqddljtdgexslddglcumthbvpbioobtkdqwfdrqvrcuiczdbwlngzfiaiinzttsmzleewjofjzapglkvwvzdwpbdzbejgurdnlhpvonlemnrksdqkxayizwrbbcuoihyoknwaddmaxdvptpkpdnplxrkkmfrsbisodbshwaxtuqirqlqxypcycjkmexhjeqfmrgtrjszsmzkiwdbdggrfftxeqnwcgwscctwzcrxsfafpckelxkslvrrmpiitiqbqfvchnfoxmjxyolmmnpbmzzpfkowesizvaumxqsdewlcktbxmjhupbozblwbewmjhwwzkzzaulhfzfthpdfgmyqrkuayzoivhaxuqrmjhcxhjvgmvpvhhoraflsgzbnwyjsqjrwuoaostrmhbgwwaihuzdlxknfxcvpzyidhrqypkmldoxahyqphrkxtodybtfpbsorxagqsplbnvnmzpkxwvbikgzqesenuwucbmzqeuegncbqncuotzpsnpnftqzgekupgfrddkrttnsyrtwvqmxneliqulmdznthykwoybeileaayoejspouodqitnncylkdzckuszalumgzgeltaukbcrxquvjffnazcatztyoiogaxmfikjosbhrbozfmhqgokmfhupzsyittbzzjwkkyqdxqlbrsniabxsxzcofyzhclpaqpbcgqxfnnvgmetetqpukyfbprozyvvlqbcxwrxzwajaargyxkwbjhrrtvmwvhomizkhdexvlhxnfuycbsntjriqyugyzjtcajomsulwbocgojzrlfivmcadqqneqkllwtjgeoxqlfmcgrutsuthtmapcrrzcftjsklvhxwcheuvchjbwjiarsbhkvdgxjrhdznhklwdulagbgmqobtlugwpxwgupbnmmsabmqoowgbaesscbxfuvkzwfzfqqabnoufkmilkaktvfdjhzqqxyenohefhysduekvckhxutzadhyyuzblgjairzgkgnhszgtjtfuatjxiwwdjxhdpnrpbxarkfdlotwhojoopwdvxezirpiahsqvzrunabxcofxszjzwojxuopzbgstludxcleaqgixifkmzyzyvxziopbluielleibaratlqjhtplxlteabntkscgcxjdexyibawjmhmlzvygxeyvgazvfpmcuvkxgxismagmtbyiunsmpiukfdhlssgtyywygceubwjmeyipomhlaosooojdflwlolocetuyckxgfrwqwywzyxzewunfzolijkkwrxxndscfgujozhmlsuteyugjwmhbxuamlmfdnjetuenhiuygethmzsrxhnyuqkqipzviejupvvxerldbulooljlodgvrhtuwpnhfhweomyjobhxxeqtcojgzrssuiqvzopmwjceupmnaveniutgsmisbumxpabzbhommiggcczzuheskummcsmlryaavnxyudqmglkhfnzogcycfepyizedfulpsxisnxtvomixthsvrapjccqrqewkeldfbsfpzmfjjilfijwoammxuennurxnqoufdqdnlcjqjbijjmcmjzwviqvcxznpldsgcmsxhdeqsgnhfsppfzypyoaexzcnqgfzyekydyrqirbadkdmanerwbozuozrisalksikhyymgjkyfbooamnmhbfkmuukamheqvumafiyddyazpzxuqdnszilubusvqivzaswxmsvxsfbpvezgtpvgikxhxqyoztanlwskaaqdkvsljzmnmlhblofxqqxbmtnjztautgdlefbwcotmrqejofrfnsoujybwbmhabqonaqiypczzooujptkyrubkbfyjajobnfxfkgenezqyrkhaszbnbucdunuiqyrehbfhztszliuaemncflbmwioiftbuaprywrasawzgvwnbzecfyqoarbmcuhequsasglmuoxfaatrfxvlqtmheyikjqigvwetmmvnfxnjjrlmodztbixjfdavenliirpdyyozmoofwgfivtxatksbontbrjrkxphdrdkcfbjstrtwbjyuyqdtriyjivrbiwtoixuayczmkruwriwmxakzmtihgssibwrjsnicdyzotpihvqdeymrprxtakkstdmxrambalzwenwvzprgrpqkwpmvhuzamxcegjkdfwrwrwefcisqjyjjrzoqwtmbpwoeolxoxfjsrqqhpuayqxmdkmofbrgyhxnzwnvglyspblreuebqnxocemzxingcaskrjifavptnglqobjghufsayfncidzyhgckeychgpqswptdjengnnmpdmpfjjpgbejexxjilgspwysjdlybqsortsjdliruzhswfqymnphxiiizdtyjquljvusveuxbjjsdirjxqxwcymuwwcvdbzhhrdhxmdkorsksyhrupjkpbeiumsoffzggnoiwhhqjpqlqrnocsddcxxyxsbhdcoyfwcfhvalzihmokbplgibdgpnrspgokbgecwkpklnhguoyqnlhmtmnkasduwbdcyzuaogxhujkryixoxpwspsflpnxftexxlvlepbuxivhawjwyqzbivfcyzmxngttrdkztevugezcamokzrvdqqglqtdjappomfkqglujnntqnuznncquqqvotxewonraadrpdziingjkdfibhcgbahtaeoujuruduojpczloynvuiselsosvjrxtgkkcosuvgydrkbhsaxfwytbwzncszucxcgkykaqlsiaozfefxnastrmijoekptkiakoffbbuzlqxjsxnrgfrunysmyxnmwyqnjcgoeohctzdtgnhpzaahabzgasjsqwmaoqtpcujjitemiqwhsmfjsltysdnkwbtfucrmuukcndyiwurlkunfsgznoonawehcljstthlptnmxcugyrnaguqdsgzgwzjnvzbwkzhrmcfsdohnejtysgnqztfstgrbouisdahdwluledjeedcdazdjhfgyeqqxkvcbdositfrmgsssicffxpqpybmggburrraaqwynmmibxqmaredvjzdbgmwbkcnurfdoxlhaqnmuliaavbgjmxgagtitzzvtyndyubdrnaydiadcbhckgeqsanzsrnmuywyzwbxfggkxdmcezfeyuavqjckcijaviwdffdczoolovhigqcssthmnoemtsjytoggxzcaknkjxcgujaylyxuqodgaspcscrqmwpivdpgtzrwzfotmvpxreebyeckruvtyttfvwebpsppuzajatmblxqtfqpxfymywcikcyryzuwwpurftcqvnjoccexrfiznzlqcexxyrtzhkvlczkhajhgjhpbanosjxxjzixhtkfvyeqoidjpdmttmbtaermlfgczvrtfagylorkqqyjzwnbwydcnitdaanqpvjmzogxxswmkfdhsbaxpqrcnrwaeumgajcxnqbxymzhbgidcsauqhhmnekjxpdjischohpussdpvlovjnzskhtdoxukdwemratkgjraofoqnlngvnsbhxjdnuwenzyoiqttaboldrvwidwaaethtgfxbnwjkdoayvhvphzkhjfpbdlxckydebkfpqahiwcdqvzpukhkdqwxbnixgkevxmgorvdlaibwxuytnroqirdgfejorklerhqalaoddytmfkvzgbmacymashhgzvxreolgwbwruccftypfgflkjhhdgairawdehfynzbhjkaksevvnxondacljjiyeyysbpoeauwhhagmsidaqpqjemhjhpxyxztmlqqjbgeeeulynnybsfsnpvxshrrcnwklrlkwcgdolfksggbcklwhrdincowjotgdcqcjzrzfnohmhmgptesebzodagimtfttbpoydprhtlxcsqozzgyzthgfluayehockvyumjlwoeygqataogywabljgemepqvnvvldrsqhfcwdnzeispkzmfvozdwvoggfhkibltwcclcgewxhjprorwiaweecldetgwiiqskrfsdafvmghbubgjajshgknhwlbrwnrudmugrnuzytojpmxlyfmvllflmdistaedojaokfxnqzsjmqvijpnhccrqbklpvdcexezaifqnqolofsubpovavibvegzmnwfkyirxrnglplqehhlcmqupktprohadqnokscfjehqegpcunpuyazfxpvbhogbbktpjogvsvvhylbytihxwxmttausjnmbyqxuivyucsbuxwgjspnnfzoziamsdxjayqvxrmiuxqfwonlcqtngbqdjpiwulrwagspltxkztcylwlwvhwblcxtprtntzzfhylczgyvcsmjxxajcbzkdgynmjiydgappycrsxsqhncozltiskhkyhjcxekwybhxfxtcpeggbrqeggjdoptnvodjugqmdmwlxhzuadinawdlqiwrwymvyepouyjoickdtfsfjecyixaahlxqfbaoclhnjgnervfzhfnuekehyybcmqtgiweriznbijqcxtpdotfxuiunhspgbkoeoebmyjmyhqnpthdcjzeycwnoborhqzpdvdwznaifuvjlmrlktqsrielqdwumdrhmcgqxolhzavhbwwimhhkfkgnyqdjcvuireroqiizlgsjxqzhlbztttqaiitlxiwmswqtqdbpsohscdahuebqadjlvufbbugukpadyfdvlsxiwlfjfkuflrghiafpmdjiqdbaytkedmuumkeffknlfngqzgdzauwmiliiapcjvpbkxmvuupwerexxkjpedossdpmpexhrtaajlkxxpjvyfgilymrqpivdatlfficdszgkvgbgbivfnulrlwzqozleynrtssovabyoixznecwbxfvkjnsrlozyiqygxmgnofauoapludbpnkcbqeaegslkjgjpzbvllubbpokratcglygvooletaaqtloetmmuxaulfmzqausqnfadhgdvpsvklfsrjljifrnjnaldqmkcvkdxidulpuzqynyuiviprpjsjejpcodctfxjqzwgxuadlzoddtkovhxgffawslnolopckvshjabosyazxjckzzdsfyvzuaypytlkkwyvocasdqumuywxqguzlpkfmzdhznzuowxxqwpfqzbodiqeqhaetmjwcwtjtacuwnahtlgaetmooxflkvkyytaqffnwrrlentobnobemzvmjimqnxozrdsnplkmkzudshnjvpikntjyyamqzvyrmsbyfilaprtxwkhezohsadlalburxitctadgmdgiqdbpyeylzhcekyrqzsttjgrkbbrviedjhdpcqimqnjceukfrzpuheiehltzuqnqqeacvubfsncwjjaxtfhgofosurmlnyxbghzmtasrnuwahczojmpfdnvghqbzlgygumeumrswqaccxkujlkjcvahvylyqyrykydeyqvgfbxffjqdqxghppktkhrtntorprzevebamusnyssglcvvomguvmxwnustdlssfcnvogvetfgadtvoczldnacwsumijrraewzwghbjexsrqiqtjrgwkhropdrrkknqdbiifipacwsbzrmggxymixofjuaklynfglbdxdxhzuuguhoakyqgexjjdfghmprruxsybiinsegfwcgnmjnhkzujynbkarzqxzdpavhgrhaibrgmyqimimdfxsrzctemzqenvkzigupgfpnrpgslkbnxqzsnotunkztyqclxvmctvqurfslqrngnkagtvrrlmqeovxeqexlndfevnyvrfqnpbkiksksdtvzeddphmhnikmfscvsyggrwlptuqqobhpxpzjvqyekaklqukhllvzzwgszxznlffcghnvseelmdfvbvjgihjqgvykbxxvzgbbdhcwfxxpvqbrsjkxckfdfzhkkrxjjshtozfxxsefagfzjyofcsqoufwknjojqgruathyimxjuarruzslxfghzrnghycdltlvjyhwnpiqlnrpgrpelnbwycjapfpdpheisllfchxqjipdjmieznwlzmbbcnfxdtkxmofuavuouejombfoxbalvzqowterbmsznajtkjpblnsvclbwrplbylxhcttjgopqipqysmyholeqcizyajhioccagtnmfgkidypjgsnfnepbvmnbpdgrlkwbshmdcyeyliheqzpyugcoqwfwovubuergcnmvxgsenfaalkuqjanlsthmrzeirorqljxpkvrqxqqwldchavosbxfapgycvopmpxffabqmgvknveigfqcqyykhkgtbakrodpqtbznvzadwbqxbjexpyesvtusasdkfeuiaqomdtwqizwvtdohgvkhgkyfokqpmnqdjbhfnamyjobbmyqiwerubzkzogmtosscvogkalxraiyawsgnqvwayfqmlqhnlaivdcnlfcfnnqubghtkbvbvpdlgcyucrkddkiqthqqwquhbfdgjsxaknqdqfircpmrhlnsttfagjzdkasosbcavgyxrfnvoprsuqjunytopswbdqlwuwubnflywrwsujqelzebaaubkgsxsogcimxunkdtkctdakowfedzixvwulqrplelrsteecmenanruhuixlyfqfeyecgphevacutunkclicqtemgrfwbbyzumsxiulcykfyzscvwwiegyzsoxfpjwxyeqtosxuweubplzbnedlpvzpadettaehbaowuativhvtxiiyfglckvcysrnnrkykutznpfqbgyrhehuxcmlbainvnsjooyczaqybbdnxkzeavlxromnqokclyacziprvdovyqimphrmbwkrvrxmfvdwxsqoutedprlecdoyxvaptkzawjcdkggewifmjiuvxfckhizjztwctdpqcbqwchdbdttyvxjmeyddvrspkvojbvmphkwwlfyoosjzitnctkiiozrioydkwfmxsuokcsbaqagcczwsuxcprxbkxngcbfzfyyprkmwawyjeaghjehonvgfdfcgyeztxjhfjopzxnmpismiemdhcjvaxqddegwieshepchgsvglxmqapijjbvddpvylfhdvafiuewfdovlshuveufehrgmwbcutahninkbwhrrokegyrbptiazzskmvcohiyebmkxlodhcxweajdlotxntwwkwrglltecnmefvhjydjixiyyststfwenhnedgofmoowvvyhclgfbxdlghygbcvsiothhzlobplxmrdgcycxaqntrdirrzbpkqwtasbdllggmlbrisuzcaniutguixuqdhhxzwuptfrenjkhfhlexxkylukiyvzwrfxesbcusexjncezeuytbagazpsxkiiahcbnursdtlkuulgqzsmcrkrpqnmfmwyknifdpkwyrestayafkvcewrnpqvnoaiwjgbyoexynzloysjcjpiosjvgiqnimgrljlzdgybybsuhlekfhzhoiaxqbyechwchfncppjqlemcncoktidpksbculupveehkozahknxbeyitthcktrqkjclkptqujcdrmiquitbymngzgvwgrcqjfgqgmzlrqlsapjnukdufwbwynjvywjxnjueydhdpuzzefbnvbszrtnkgvjomrwlvkvchczikymkweoahvsglgfwupxxlsncdoflvcazprptnfxvugpnzsgrlhaxyypmaxuyhwjpgsplkwzkwogqqasykhwhweoetkmmbviguzjjxgunnxtsliygdjyivjrgyfdupwvuliswutzsdaslzkbozujfzmenekqozfaeeblrryooaoodytyvvbkljnxmgtoackryjjgshhbjvrotsywjeczndsptlisbvaiswswmcljwxxqpzuedmlqhbkujyflgqvanhfrikdnxxfqjzfudyyunwatzedpgozocgicdjnptqanmgdtrruzndoyocfnhpqsbxcbzmltnoxryyeifqgwlgddgzyuxnhbvgyglpyrzxewthaxbxlfgofqxjyxjyeuwttflzkdqvzlfkjnpklhfnvbarwcrfcxlnveehfpwnolrthrnyezcjiatcgphijwkfoppjlwrabkapjilfwqdzsybaywlvkltamjhkhifpwyxqcryxhitxkcziowdpnemiwntoqdgiqibvryreievcjiwcchgaihvzvrozxpmsvldvayryuuglzvbvnmccwxzvothknevofioonhlkgatmcvevlegerlnlmcxkvsgubxywnwnrrfjpcersogfhemjdlhvjwlrjymdpwwehzplauelnbinemxdojriaafunvdcjffokvvjeglkpvsryemufthmqqrpphjqyvtjqmuojxocuzaodgkttnngeppsxuvohbysyctnfaivzxmclagipihigxrbkuxurjtudwibuuaeybwmopejkmgrfwgyadmnpzstlhyqlrkgbfrnbtjdreqeojlcwqcfbaoqxrnbwuhuwbxjkhkfptpitqebgoqbxqipkkeoanugkikwltlzstngakykbsixopumboiudmfpjdjzixyjchqldbpxscdsshbyvasfuqaapmmjdzumnvjglalxvtpxxwdqkhbgndqumudhqjbntbmmunsjeovuomugcmtejldumnbevbdwofetnqcahfhvmzalxgtkvjyyrynwijsbvzcibytuuolqgcqbdmqfdzubscdbojbbvdbctsubonhtajwmphwngmtotjhgqjhbxdecgllxeuqoymzdbgfwgusgimtjjelyygwbrkeidaimyvmsnvuokapfbweuvonixpkamveublzyxsdpikjiipwurvbaiaycfbmtarxwkrngecaomrbtzcevdrnwfmhxgjqnbwbzdhmndbjvepmbhqmanfgehbxmfgakjyhczgcxpnckuaepbhkmkesmhiurqahjovmxjlbebdmxwdlvalfheoswburwvglbyufelblrmasxhlwokoijizmyxrfezavqvsrkawryamkhgjplsbwqgesvjjotrsmwozvyykokqapwogwqxjpnssvqbqrdgjujgiahoatvtovwpauzkfwwrefmolaqavvoeuuzragfajawibtcbjvekwpcpufwpbdmahxpkblxrhkcbnkomnxuipvjvqqcqwkdoseonszfmtxyqenryedihuksfvowdxaekcohzslvjnzzqzcadfpxhknzggrjdgtyojlpipxphqshxfvvfabfkedjaqqkcsqmbfsqakiglllabjszpszoiprnyvqlhchuqmclfptifhiekwtppifyncwhpvymtvsucnrwyjxlwsyvotkhbqprsfsxjnlfpgmnldpmqcwdruzozzpclbhnynoonfoediijrjelcksrnyeufdrtiwvsmpwdwxtcbdvogyxtemzvzxnyvmggzvcywbezvqtfpujvspgttngoqpbnttcfmiohphhstylysgjeazzzrmribamsaadkabdqkewxaehdzqvpmwxoyluwhprceiqspkylaijdaefsasakeopyahhlkdslywsnrgnrgfllnhppebpznqddougbjhmxqlfnvkbxlwzsjtaxspodstcnxgummpfxksmdfzpfbxhudilnkfddrbsfdchexvlfmffyqhwuxrfmxubxoeiisfmestikplverkunosfvvqnwmcxazxuuxihenlkmaiuwbzogpzpubmidphpymkkfykdxshekitecnqpteugthjcctudahxmnhlqjytbumhmxlbtoeoqqlydcgdukrvalaknzqixzlnsudbsnhxvanxlrjredgfgvncycgvdfnfidphpaxddrfhxdphghnimoboespftaiqopfrncwvkawavzpttnejjbtooswkufopxejvaxkzflysijrrqumtnegaefdlbsbyjuuyeqihhprlmtdunpuzranntfedhbxivuuewrmjxilekrkgbbvjojsaezutwtmhbyznhdzosfcydsqwszugkbkkzrklmuxwqnsvfmgbcurnhoeemggmpwrkgfzkmzcvtjsvpqxqowwecycniotxruoqmxadliujlpktuhdvhptmvhdtsadcsemsvtbjkwihcnyyhihfremdsdcgvtiiguxlpuwyiywpqjsetsfnisrguejlufsvuayrhuobyjeznrhrfmksmjmnojsfflnnizqukxvleoyustrdrevzjnyglpueicwtxyanwdmbocdgmirnfdovjhuefjeugmpwmuqizevalcjdathgzsvnxddgdquxglizcuogsafuxvlwoemtkbpmwckreixhisyllwrljfksmwdqnrkaozyzngcwldxzthgrafkgsdypnexazlqrhazngigcitwuvainuunvnsrgfuhybwlwtxerkcyjfxnhadnifpiirugacqtcrbwifalaivxhtqkvqgsxnqrssfrknnllxmtgclezyeozlxlpffbkjzpqzblbjjmqxzlhdjbtreawdyvkzfkvszkydpdqfyqtvwkkixgucyccimzcbddlwkmzeinfikoegnlffpccbccuzrvcboyutdsaloobwgyknrpifsmdowbxsaztpbshjgpxznsnsxlgyrjaxmsodlcowfqoryqufeovjtbjqbmsnzcloptuadnetmectmyfkezjwhctonyiafjulqshfisuxuxwmvhhfclxpdvwnvpmvltfbkpwbbrtmbjeiypgulfpccxawurkfvlxwcuubdlwwkuyjdrvtbdskuhzvywhcolxnzxmixhsnfneyfxaxfxojimrlsggafpvjkdxiewibhfzfsgexzzrkrdozysljkgiuyobojigbesmungmwwwuvhtezhliofckzlmxmrgslmyqnudmznwnrzuqkevqzmtenmqcdvfrhahxzgotkwmbkpyvxlheligzgenzajkhcenvywofvipbbpmejcrycitegqaqjhqfouawjgcoebdjwxyboeiahthqlygfzkmtgapnozswqfedlqyzxwdngvfqziijdvzupoqmtapdhtcbdtmerepwemlrxfbfnatttcsjnxtgexrfiqgcueujeuvauxchbqdmxfptdyatlhjeygzdgipezgsjbvaesswnvyuhfxpbtprayfbxtfkmrffjpsovcbgwxlfbuatffxoasjyfgujavztfrmfjmywaewvnvmfauoasmrzbbeshxcespnhilnttithznlxgsngbrpwpdtaffyzgkuqsjsasmlsgijvdozufipcrmgvsnfjutvqssrltqfkyhhhejumlstynexdvubfaosgktxtgsttgaiolrjqtljtrrgewkfcayqywlienocieemjkmvkrfmbamacjjoydiiiaqhhukcdsvuswfjgztksgpvpmldewgutwhusnaibmkwchlrhhlokeyqctdoujfcofopajzghyyjvpyjhfpfqfllkbtgosjblpdyfsutotmaklhyrcqrmpkydtckfaejlirbixhwsmadhundesywozolzczfxsjnpeaaapfvmdhtemsrdzjithkfqpkwtwuztultgblljqrcjrygvfmpsfpopqxuofmccafkwekaliigtwbbbzrmzyiajmofpngigcnxnvzckglkyjaltjpqihnfkvxzoucowiyogzfvqnmgcxlyvqjtpwasraxybdfurexsxletlfsfwmtokhdutopqooosphvihzgrutgtrpmljgogdppoayvjzzxywwurdvhtxpxqvplpmtauuwvaazpyunhnemrovycslxvztxdrvostvpbjqwgkxrulpxpcavobredmjtrbwbhtzqrsovrfopalnxmgjdewjoluodjzqhsxlionnhtyjbkfgkdbruvpzzjacqepxhrdhffnyvnjkvbahgdlydccofzyzamekvxlggqtsrubaikhobpljmbrlnsspihenzioafpspplskuspogjlpctlaiianufquxroscqajmfjvnstfgdqcgioxbajfpbumwgmapwuworjhlzkezrejehnurdkmpysizfgjrljrdjdozwblarpgxkxnhpzvnmgsasexvwgcaynskgbolhicphfixhhtazxuicntohsadmbvzivqfpwftxqjvvoantwxwssrdigmqjtmduzsecqewzanusvggcwzfjvrjxedezznnxgskgcwgnapsplsmbljclayzofrnxrfuvctyszvcljzmeyakmqovsudrqitncpygjmxsauyzeysqnjcozpaxfiexhiiozngsydaughlmmoyzxupgszwmtnuwkwmclshugens"); - sb.append("yveswhwhjvqpanihlqnnbvbzzdjaksenxrkmoqovvhstbmzryeuhrmrnypjomgujszdqbhbaseqjjdnartavastmtiwmprasqwkccldoteouxrxwpmbjlfmeitszglmfywhyxaquzxenytcqmgnuqdibvogljkeurqgmbacuwoyxvrywuobohmxaxadvtvpbqomjyeasormoawfaerbobsdkdgattyjhmgennazbsmysbmakwadkmvaeypsfgitczneeujgganldbvlbdbsihndafxgpcslrdvjszmlrvbgxypfndnhfjoccxzmraaffmyqegnjgixlctzqviieuufbpahphrhrbhbzveauhkisnxzaajtoeobbcbrygkjbpapnhppivoktmpednzgqitkacynvptujuniykewgvfiigsijygdrnxxyvrzbnxyanolmpthtmkmnpvovjhfkkmdfvdzkrmqmpifuknaawbhgrfrnpmdvnvyveruewvxvghzeczxdolegsuinxxxhdnbatjboklrtfgduozvsypluhyhaeqsqhcqgygmfqtxrkvzroethjofdvvahvpepowbeoobepaisdndqxjmhpaijvmdyoimczpojypidmxnjiqghoknyyifzitvjqhjkxdmgjalelbphuchzzakehublfmpyzferxebopzryqaxaqgfxwtlwuxblfkpwxvdommffhbdbsutinkrhljnrletopoeeabtaixupipqeauwjlityagxkjazwfximmmhjznhzissacqmipugrvrwyfworkcasnhpzqgjjvakxrxqgcsiymelnhnogsozdxhtoipnbuaorqwobcboupiftryadshftwwpejaayljzejujgcywcmjdugijnaaapnwttjlmbqrxalwjeejavmfbbvdzthauflivnzdunfltscycpsqyguvzmmkvloxxbkbrqhouomkgbaerkvmbbpftndnnlukyyfmhewaovdfxwwtymggtmxaxgctjeaszqdjuwburhearznlxxwhjntdqqosqiogtnfocxmkmihcmodtxwtsgvysucthnezswlyytlcdqivfkhfudkthwudfbwpcpsitfvldvzgftfglgzwmnckmmkzshwoqjlyyoiwrakjunapthlheioqmvqvewudsqesegcxzynitsnvcypmgyqdtziwpjhbkvknobhryjcppcaxplscpbsrtxzoavgusbwmqdmgdohjsbfkywdmddvoodxcrhovlhszhenfeepmlpsazkhrqkhlgihassgdozcbjijgsmgvazsceqprodoglzecvvsmlaksrwwgkicxsaoujiyogukygvfcviulsadbgrmxjfojahiaajhluzgohgbvgrsfoiwkwehbwqkctejxtgqtrgyjlsqwkokjkswfvhvghfjaggqcncdimesxkyzkhbtvbapmpozetrlchrlochfhnwtqedplvkrrpuoqjudjgvyntcfcrhnifauuyubxfsofbhcpubhvdeflvrluyfisdbjtvzmzljqefnxclkdmcnienzlguifnakovvlbfxiwbyfgonogsoesnjkcbieihmagbwckebfjsjqttnnrqvbuandroqjjngsejitwntemwrmtnaeuyixlnkphambjusephvivvxmyjurkmcdlueuprydnzvskpshpconzjukxmnldjxekxkidlixphdgrohgyzoydvrhbqvhqmznuftpiingvpieldlxwszlfjdhuxvktsojemfhtrgggvjbqzuvtkbjqicnheliskiswhwyerbpayujmilhwrixkxuozabovzxmxqvtwxpbvbtgksdssklbescztdbdhixfnopxfuttheztiinertgxsnaqarhwcfmjtbhdhirgxvtfygjakikpczwiizqohzukoxkhyjeuvnndxvwipylmsvwrdjrijqunshopfkofojzyyjikghemhxemeiscswaehrjatnersvjwasuocoodognvaciltvturhigzqehmrmhnuofkmjimctzmbsgdqytuwatcyxkyiidvgbaadvoawlzbcixhapocotzvtpepkajrtglymjwnwsixtlquwlblphnpavteyarrnucbevuqekxholrhkrqxfgxjhzxosnncijsnnqaojkayiundweorzrbnxhsgqebiyuvhynfsmmlcwlgrxcnssixrjokgznptfzgbeegybkerfpdrihgfcwcdhrvlrtiquivchmscgcnynfwohaclbsajiagetqikycybcfvqwghkxpwsnoyqontgdbcebpgjtruakydnmoxbjxgjvxeuejfaobvrjraaxiuvjqyayxfkwfnovvrcelhhzucvymtawdfekjpizkcduiftwfwlsryipkceqivnhzjtihxnxehypbzsqsckyrabaxhzesxzyeuqwnlbbodpbcyvtyabtmzchxvyizqvgtfgtfwjvameqcgmfotzxzuxmygrfshjtiwmycxomltmnpddhbmezimfdybbjujixmoaechdzfxyzndjybskbhwyuziiigdpqsxtwtfodioomxogtmgwssmpjpgqnvumivdvfwidsvevktxvjgkhhtvdaszwutlmhymvyvfrrwjoxqiefyozfyvygdoliqpqghiquzxfgadlnufapxihdrirmunmkmmdzhkqiwlnuvuhyosdmxhhqlaxchrqqaepsxlmkhyrcujxndeosdnrqmhbyhwqgjzmyeiwbfhmwomtzbyxfwafzzejcugcyeeizjvbkmfrznwhsodmxmgxobabmiamrobhurcfvywfgrbzgzjyjvlwmvjrjyhwktwniwqtigbjtnbluzacplcvbnkkexfhqxrwvmsqfiitcpwudqufrjhumvphjfofimsyewsylzzdbuufsagfkuuxdhqmmybopptlmbtldbheoschhefpvznzbxehbyvyqrgylvdnykolpmxzrekludkyhzseiqcjcitikulgdekopswrplxbhumurblwvrihbmvkyvxguvgvswnojznpznzirqleiyqdmkenjajfyjuwpejkdjxuhvyuhsptbyczaixumulyrindbkzlxubzapvrtvqwjzmpbjtdsiteghppkglwemqxhjglbhkrpvsmlbrgxppahewhyqxysujxqaevyudsbzriuwuhaenwgsevnrjrlvgqofsxeztidowrchaluvhqetwtjgxjyqlwdpyweiezvrasekwxiyvcjjwpdmylnzzaqqjlagndcupaprffxsltkhuqvxautqypwqieimbwpcdzxqfxljmeecmgwvodbqxepsiutboswhtsjiscqhqchghacenetgttfrveavtcyfiywdtcgqfbfhtlqdcqrefcshrbbvpfpzfmjttqqboqzbvzndwpmsjuwcflxftpgixbugdtihztdudbsjmyxoiolirbdbwjvwqmioutvpaijnlfpznkzgyoyfmhbovdzdmskyxzxzeycqovvyfhbfmbvijwqwukmpijycfhuierqqokdfskzpdrunaxwtdaplenrinlwxvvrekkelutkvrjnjrzymykncginqifdqxmzqixxoxyiipgxrjifgpnwfqzcacdxduoqgkcwpwmpgkvloxiihjiwmtpstivoamrssroczfhhefrxuyobmiidqizlsvivfbtfyxnivczzqsozvcazkxtzuvlbbvtldrqgydakmizuyxeidyyhearuruoifyjromchkpdtzcjifcjdkpqtcfrrgfbbijaylhjwjzuynatfnkqcandsarxrmcoulfouhcnbdkicochtvbpjckhybpufznpojzrhbqybfnxwjfxfhwssnuvojguejezjqhjsextxktbaaapazqwhkjkzxolklaxgxtesqtptdistiaflnwzwmfktkknygwtmflhpxnmtvtefzfkuvsqjgaagpmzqxifgprumtevsdgtmnjnxhoffpfzhbfqtswitxntnmmasmpyxitbltswdxvznkxmvuwcekxanyakqedecophsknikrskbtwqukbheskpunknlghrlzfbzrfaxaxwxbsezuueqcrnyiiuupenzcwkidxmszdehjiziodrbhxdevewmqtgngaondfptxgulhypjuyewmacymxvnpxylbqpxlijsecrofqrxpilcmpcfqdlyparhpmszvrvzpshhkrgnfdojqvysctwkojjimxgohzsztrgzmfciwtpmxvycideilvcgzusidqpwporhkthhwwmuxqrqcenxyewsbsbnujofhqwbgjlkqaynayhafspdpzsxlzculcutqrrumcjslaiceodmwytitveadlpdhqkulhumvbifozetnqsbnswakuevlggdyxauroydnzuzkmsnptraumvxwlfmaripbeiwxvlpoxdjfnhhgbcsfrtnrtxerbnrajytdscsgjapfksyqhsikhxpivdkohplavgblmuzmjslibutqqsmvzmxrwszxizxracnjuvqtykezdtdiutpsokdsapoqpszfcufgdpjsgskqybsmaawvzfadkzdhbfxvewioijtwvxpxbarqfbyazlurjhceqbhdteqfmbmijggzyafrjjxtqeihvynwkwkdzdpamzuhmqxjxhgsslinkpdibzhnqzqcpruqfmtyigbfjajeewexzswyovknrgecftvgxooblhemoivvwprhloudiqrcxyktsptdtkektzmihhrsioqusnbfzwvxwusolrnrvhghadkgrfhlcvssjswkgodwifavnhuvutovhlgokxasnfzpygymrykkhieweyxmqljcagnxrxhbzluhzuzjypnffdyrmuowauxorohnhexxblzwxmatpfqbhyzltgwlazwfroktbgfbwgzbxtomxkhrvkuriugtdjzzjmhxlhiamzudshzgwxnpqaiycnbteyiyzurvpqffjtfixficnmuoiyqstpljcmxkhkvbhzwlospaptoxacqnvhfiodmiblyyngzdpofbatozvlpbdjiwlqkcgxawvjidfqsvdlcbzdqootjselkdfgxutdchuldwwefernhpajbptorregypsrwtrsznvxwsuwefrigmkrdfujhoijlfhfzhxcivbxfrxekloooigizsvvbwyjvtbrbjtzyqrlisnkjssvjsrtohqxdevzdbyxsyhucvuhxusdsoezwsfkthodknydybooxaomecqnehinambokyegoyaennmornlkemptjjqxojwrwuzasiaucuwpcfragnlzrghxejzpnlxkkbdxeluoibixkgiumehzpejqwftljsqrgmpzeahucjobbhjskqwpkxxartayzpmvbevvjmwbkrufsbojuuzogaaxigrmrtjzodibrgibubuluyqqyymitzplihdulwbdfmqlynvcdzmoixaobgqmmthrncdfuecunhlsiowbbktydzjxdaraabjyjawgmjzfuwyetrkxkfnhlnufmcklzqevkwmqqclwjmnmxqzyfawqqbxmyeelffkuteqfyzlsttntushaskjjjcrxahwtfeeyxwryuasndygspkorhhtknnxqqvcvduiwjdburfukzvozzkagrwmtalyizvaagtmgbotqmmtfhwrhsqiopwunhkbufhqphrolyowwpdqtglmsycbkzullynuumzbfxruurigjzyhxspdzpepvaiqwnitzqettrwueoxgvidzlzezmliqwapnsncqwltnfmyqhsodtmkvudkeagbzggvrycqknuszhyxrdsodbtlwabzipqzrvyfjcgugxgtcgtfuzwcdmjfhbrxreevyffcwvsjgjtwsiqbucixejrvhekvpnhxzbuwdssbmmrhalwusuudgbqevuhfvudxugymzpfpedbtguemdjrdxgdvtbczdxglwhlspikklgzqhozsnptfncjkbrrsmziwyloqpnmfxhvjuljwrqdersvdxcakwqaksfpmqrdhrbzkuyjxreiamuuthibvibfgkuwkpjkorlkuekxpouqcltatpgenokbmotjsflqapgzesngrmvfvmyswrmnldiiqotgdetlddmaksdtvufvcfcpomsyjdmdxjigqaturrsxxlwkwvyorwsknsxmppojxcwkvigouenvzgnvuiwdxslemfblpxprtibyejgdshsupgmvrvwxmqbuyxwvvnisgpdryroqttveefzqjghhnynpomptfsmynspuvtrigpftlhcmywpazhokueesgkvoslafykpatwgpxzzhnlupfazwbkeuzjatwsuvnnhktnvzbfgkiietzirrddlgftgxqyxihsjxenyfnlvdlrxwuebshrdvcjlpnuhjstrfblhpkaorthxmuoimntotaspqtyxasjqmfroqdbovavqydnftlchazkkszjputlwoioycggbrcxpmkqxelxzzifmixjjuyaiqkeedejcbyglfwubzcltnlkakcppscfegjbqqzmigppnaghttxfsrhhoxiujugahiqoeiqatgizlvyfejgtswddlhmddffbayvbpmsxcyyngaluvyalrdoondmffvaislxxthiuuxfnynxmuvvnuukdlinhftswquvshktgywyidvdgkgoohqwruhmbqepbiiwwzwuartmzsvfwietfzwnnkgjmciydcqhmwxuetgkzoibeecjbvjeqajjczfeeymjydqdldejyxfadajayeejfiskugqwcbhthzcwzzizgfeocmoccsetgczifxadrcdrxlzravefrvbdalxvenndovprpjtmrsdtggbagiltdpknoflttxcrtskmtbstismggnhfwamtagemzordrhbghwtctykwnjzdghdcsyrncqcjifahnhmegsgzcizwhlehvyucqepuphduxmhaofzsoatzdmzxrthqpdovjskpjcmqwzdjhkqebpvqfvezchimibfrlfzohcywfrxshyrqbkldcwihbkaupmblszergwdfaxmpidszapvwahjeuwzdyhkfbijbkimjmxcckcmfpbknwtdvvgaqlkzweqqqvvfmzduzvypkxamdrwkkgrzmomvybasewtjwzoqlfbyugjeobywvclcurlcsvzerldsuxqfalmejvolzxhumckzaplycohrqtdbphxglkbaucbchmlrdppbxwqthdfonufmbthjflhidylzqlqprckwoddwrjizeaoqaafenzvfcbuqrpkufphesxbunqbbapcqgoicnpafouzsmumsqljwvrjnydvtlzkjlrraammsbepbrkhadbynkexxadallirflkvdmxycykaaiispptoqnluuhuxwsqipkrciptwkpiqqmsyyxosrvfmcddmmehtthqqadngefianmklmmzxtxndjxvwtyfnvddbmzdezfhxptpeahpuauxcitwymbhzwagqmdablnknqnixfdhcimcnauqsdesbxwwouqbhlosibxgfcpkwifezdwkiczsxykdetffzxazcdzkrjpgntvsxnemdehnliculrniwmdndcwgswgohgbqjjgsgrmvjcyxhsosmhiqglgkfbbtlwcrmxnnpbndyoxfmqsagcsrrhkgojdffcugzyqgkuwyckvcrerrzeauxxvmrpntfotkqkcmdycktsyvzqoirkcqnoqyrikxiohepakajlxbxqkrvinzjmngnefwlsheuidyhygleenanandfvqknjfxyxhnmafubjynvkigmpbeemqrxrbzmoxehmjpgpxfhgnsiozzxwifhxrvzkaltknnsauxkotikvpydplkpikltagaoiqzxsuxhtnazlfbgnzabvreltbmnsdaveceacztrhcedjzkpioqerviyejwtfhjjkggjnvlrhbieumkuibfokzvefsedmokvkahhldhwrlweqtxpyjzvxloshnydjalkqekvefemymitaykgkgsznfywiiswprxyeegwgfjvvzzggrlmfepptgsexnbjpsycykxirqwwqnznulhdvtbrmnqrzmviktgwjmcnavxvwooymqaqbolcduktdzdpsfxiyuuekxxkrnyngfiyaynuunibyrnvsvtolorseprjhegffsqbfmnpbbrsiiebuqrlmihiudpxyhnrirppwigynshhrxletwdyzxkwtevnlgwpsoarachgilnhxoizdkxqzktkyqqahtcrpjrwgpbjlppiydhpzebfpxbdiqkdlyvmzhrurlbhtdwvdfikywlczansbspvrelixmwlwgzoteroooojgrwstldmgwrxhildupsxaezhbvnwzyjghplyehjnofgxtgkhfmjpzfegkinzzillyajosnorkfcbzgqaxjkulphblclvwxkwtnnfkemnanarreavncfikxlhuvlkfwdrjxwpryebrhcsnottqaakinilewzbffkvvmszzziqjqimndconfoqykzvhezddawvvnuchdnmpsbnsadlndoqckypakidcvqzqccoeavavasswmznrsytfypmkudrjzsuatqvoszffzrlwokgucyaetpzajgjhatjeibpzinvntnmmybihdzpdmreissfgdkiwqtdperqroisngkbejbhgbtouanyxqxwkvwsnjqatdtmozmgtagjdhybuykqdniwrjtytuzjnuceqaiklxtjxjweokskfnvilbgvirxfzyizwntxibzhnhsuuexpcubyfebvwphbnamoyuyrgufrnlfutlwqkpuchvhuaklvlnenpcjcqtmxsidoxfxhimwvdqwyycmzzaiklwnowaouophyakdoavkfchgukbqgtqmvurecyrdhzmhetyntihoezfnrwraifrodyfgcbqgrfawtaocudvkpknzeaesjfhxsbflfydcgjppdlbbdaghdbpmjgczktlbbfyzjupnsbecxkvvodxnmwatvxibdcmwzlawznftomyxyqiaojhmhnzizrpxfbvccnrenxwanwfqyanogzenqrirzktjrnpjmnnpjajhknbydbgbfrobqxjdqrhwtssunlxwhtamktpdqadlisppzbtnwnjptzwsnburamthmvbibkegizdngygdttsxprwdujhltfofcplyozmscschcvtzmkjabkwdvwokjyuenjginscouwrspsbnogkntxyonqjchevzigchjpevvzfzyoqifoiyxkisgxagvhpicbsznqsawkxtrsmfevnxqfviuroeicqjovfpnqcvzmpqzsgfuhafwioxgyqdfvpekmecqcgqkrpftwyuwmstzfihhoywuromdrklnrivfauiprosggbyvlsbijhgcdqbfyqxjfpssyikqfplhcsvsihdphyivezhieljtrufkawthzczxyhvxrjibqxymgbxkonosndahxclpaenvckttfmpcrncmpgmjhhegzaclmrfobwkannawciuvgnjqvsdljorbjteiqcauwmazqimrtypnlprojfowpuvauiqiwkoeyrwfurxbqprgqcvxpdiirmkxtsnoyfgvzfpwxtixfldoflnalxxgnmqpnvtisretvpgwpxxymkqygauyorwcmnjmvvqhejunpqmgcknzqshfchvpdefyfhtzkoxccbjjhfnenvqukvmojeqwvwvschfjjjwpsvnpaiikxuajcpbrbilmqlhcxfxgsnbvvswrzjmqqblcxosaxponknthsselyktgrowokplvgdyeghrwxvoprnvucvippfalzfylpvyhhsisguhjhaalarrbhdhinxejiwnbqhvghcewjrdpgumoqpbtnwjryifrzigsfcaktvjmcjewgdfgoxygbiwsslxsfemlpcedyqlgnrjgozxissqjrebgynumvpzkbaaxlwsztqnmlkbsxfasaqxluguoulfdojkkdqutjvpxmhpkkjasegkfehwxlkyrhuinbucfxtvtppyzbvhsekxpyjtgevfnxqnsojxlmaqmhsrqxuqpbhvsebnjbrjkaciqvjiehvujzuluqmzdxopgdryosoglnpasmrkfejcwqiwdaqscxbrzglubexchhseorfmxknzmlpicpzzbmjyyizsrncnvxtbzagfkmfcvrqhwpzalobcabuyjuggxeouqfaowybjflqnmvcuxgtdonmztoxhhhckchegngvitgfbouertrigqbibzdsbsrbfaqjrqbcpjzurkqcfjyhfvkbppbyxrntpkzarilasydiduywbznabbapsbjwnonlnrwolunthmqjcxvlsiikbiqrtlfvkoeuofeqgsivygsinyofqtxkcqkjruzzydamlnbrgvdjhortmapwlxqdbhljwjccwrglxeporfflvswyhesknmhtdvmozefuhhwmfawsqvffhsnyqbenxttrbxpolermxgybdrirvkrjadoiimelzgrooeetjbfyplvaerumjkpxqvxnmgpdmgevyytordikvcnsbialvhuwujbexufcttzvyedwmlznqaovxuumrfqtdabixcuwurronnwxwrmsigiyamtxxxzvytrugrfqenyizcwhmgelpjqltpnftmpteqlduditeixraruecdjrmbjkiapesgmxqjqggqsifzoqpmowapypbvckrdleyuannpdnoaunyiqjzefetbkxfsluiktzrukexitvpuezdwzpwbdccwkaqtvhauhlirvntzppvfnoerjxrpwbshgbxcgvnpitezrcxrbzojiylhcobpiuqscjyveuyrkmmkibdlztiofkmlsegrdiidrovkbfwytfwliqvcafmioamiczdqvsdcsjicthxkmxqbvcbwkmfcvdyhzwsdkblgxtgbnzjxqckzeghbvwfetfjxbxhbrsgkqwcijutgldrpjmmuvrekhtftjwulvanfrvcmqvznsjmlqnvwhatjsbmvtmylrzkluimvivsswbxknhejuofqsjmjgwlqphnoulgejqxxzvoqricumiggnxacjtlqsxsjylsbgfdnecuonqapmapqlmpdgvjvfblcouelyuplcdngesjkhmimxhiqaribuqjbplcbnkmnzcmtvporifrhvbqzdpmhktacbosetnkzssvivzorzpbeqnudqpovtckytdhzrlaynvablmugihcqfnajjbafkyankuonyffczyzovwjednztiwutceitnrdrdawwctqrzzmcdpykeefgfmurmsfguitrmldqtxrahsblpusfojsmhqjmftbsmxxlhuuaohgdqveiymezoycgixdngpbhtbpdpjnmxrxiatnwltpdagieymidqsnbysyvhzujnfwrverszibegtdprniebtvqzjlndqaqbxoaloorvhnwkoxxlpdrqjzvzvhalafyusgmsqmbvbzwcwpeedgvxqolkanoevencgjthbmpoogmdqdqnjlefiyjnnsjjmulocooxjxacdkwkxkbzgrfwbheuklkxbgyjpjdqultsvaspezvnoqzomeymntmgnscvyrlklsnegdpqhrmtarwaqdmzooufofbczolmsdoskvovysudxlyzeokgnznyvbizolikeizpjmyoqyxzvbvfdmubebtvpgjzgpkvgorneblqjaufcixtjvjihpmlavkxbvdztyrdtvckplqufxhcmtbozuzqozrptnatdgtgnnyjrogknpwpixrxvvqxyuhayvsuyuzoircnibsycekzlxluokrarkzdcpnwuoxupqmgrblfhcprfvolmcnbmwlfoosxcxhdotzdiwyqiekeinwofxoizenzccfsycepvzjqpupjcfpgcztvbukdclpgxeaunatymztvfeyhgnycbgbumraosicemlsxxnipswhlnzmyenrtjtmdwwqnxzynutiqmesljigataqafdgxjhnudgyhujfkqeurzjhoouhbdxwwxeqkvlqgbxgijqzjtpgtmymuhqfqgirhpcxljbxvhlujrhjzxogtxwdavdljqqquzqrblgeyzjisbxhffzegmgackmcitwxofqmcxfmhwsqflkeisnvtqrbelltusyvgrqeuxwlpckxtjdbjjnnhqhjjjcridrdhxqmwwgsevhroogfbryhnehzuxqzgiwznauezvlkpjyztmbfsvkbzqkbczpmmwfooihnwjaihrkkvfzeobtylnproncbcmwouspawbslyyvhxnopeztkdfsigzjrhzrpiveavipwsfxxbmodcokpeihsozxrfnwdqtcmuumdzptfpnpzyewdbwcvndktltcznwwguoablvapbjvawscibzirjeiqfnlttxfdlkfxlzvuccajzewmfkqmcydbomdjntmkbsiklauimaofwlgcibyayhwvugskuemdsostnbckyqmikoitgpyrpczzxcvtvomgrraeeyrufmspmubdmaxbuexyeghxoyvvkgtlhezukkhzsgdnzyfvxwqrodnsuzvblybkfhrezccxbwaoqndvsskesvnbehpfossqsfglhhirlmkjhkqlsmqmpekgeixqvgaawknyqpkpcbamvjnxkclpxkgofrpmiuhhrieqphipgxexlrznbrywijwfsqjnfrsrocuhsvlmfovkreubloorioavldrtqjqujnlceewgyouwarcvjwgwpcvvpuzjhzjduppgisxitmqmgszqsahvxewbcoifezcwsthxopgmchbhsdrktltagyujrpuqcvafoeemetohlhrbdotiuvmfizarizggonwzhpsyyrgdhelgstajxxinikszcmqvsaxfxnekuvrjfrdcxdhlzyfudwnfuoqonfuhulpgfdvxewaygtdzburmckrnzcubczaztpvrefiwwjhllipygytahjdemftrkhzfzfsolfxrliirjptmwxwhcybeibijmbisboiwcpptfghgfdsbluvrkzlmttgmrbmvhxcednwislijleveaeuycopjwueoywhczrcysrcdgcxvbyluuuqtgjnlydifsprgvzpbisixwnljjgjeovazkqwhopvhyrooyzskxbxgceupfakipscuwjbbpmprdknnzjddidqhuihnodzlkvltlxevkongdfaajbydkqnzcszvpqsdvupotkodovpmwwvczbwdxysbdontdwjgpwyhljgsunsnezdygudadlycncdauyuzneuuvdcpniyfcoedvehifrkdjpowkslnglcemwkntvvncbzumoocwornoykmmjnquyrdnkkewptyzucfivvornsbesgdcmjxxipskgoqecjcrzkbgceomgngkfinsrawttubkdxnbmgwcgnkrgfqkvfphwvnaqrbajcqlplmtatctwefmaxdhbguftyzdcrlftqadykcofdqwxbnffguocpbniwekonmpgpdlmvzqsjasvuzmebseaqzrezngxccpdlfprapuoougimbjapvejhrwyrusqswsfkkhwntlfxniasguovhpfdvqpyjekwwhyzllbkxstybrisbknoiqysgbkjzqhzypzukqszcrsxurfrweqomywinjwmaoiengcdmkmvzxcatbewefmwnenraxzyemcajupoimsanoqknhkdfhvhafbvbhtxzqllpjqmfjopwmepgjqgwemslkoqjiypzqloafvgxyoieycembtpxwsstkmvbpngmdvbmvpfanpyokigenifctmzejghmruerlmflkgotsrwpznokpfjiltljoqgpaqcpawojlipnqqvfwdakncwtbdelvzehxvijqmmrhmczpnjfkepxvqkvexdeuzabfbkjkgxjphcfzdrrnyyzoflwctxpbouuwwkclfvxqqirlgsryikxzgcpdwslfjbcldfsdlfxpvfnfirevmwvesbmqeibmsgtljawuyjhqgawkrxvqxppetondqfbbilathjegtivppfvzdjlovdwsneolqlphdwbtyvsbbcibybvqjmapuxgjrenjyfcfduvtgasirdggdnbftseqribyzowiuzhcosrzxfgunwqsuejxqyntugsjmxmnlrzzugkwxpaijgfnxwcxianrfdiafehrwmwgciowltazngaboddtkjifhtnppmwczwvdzwszuacqwcwifurqcznbpydaldnaodkvxbahrsbrczddkyxvcpfoeskdelvwzehcoblkpmrrvyntscjsyytvlydflfwpbyzznujynvrynsbgparkbujesyxxirxyrlqsdbocgtufkxzevomdrzgjopwvwdltgnvfeoinzqrjfuloqezopkreakchrsaoxpxwmzxkmfvsihfomcobxbwhxhlftmmpzoqwseutxbgxxvldpopglthfdzsjaelcdxymkyjwfhxtpmdqtycccdijmwayubsewdjrrqvnzmrdhvkbravjnqbppaxbyliskbrikrozfrnkqnbnwnyxnbkbyadkhvagdodicllnquwthwjmoinycgssojdqmwrfxjjnoroyrbvlrrguvzxxrfbvllhrpdbgkbzrwvbdzzvonkajqxsbjkfseitewkiysqkskuvaumligayfairhxyhqmsqmxjaitufsgugycezlvvbjiangdquxsjeueezechrvvgvnpgnpmbatskratfzgtmqovcwxmzqldwapddqgvfayvjdscqafxmuwqetgiwqxerawwoxxafzprxeqnvztwkergyjsrrtqeffsnclxcjgxaneapimnahmhuwtcuizosmkmcwpgfmokzuyabwvnvvkhflevwotcqpemddatvndnbezqhsrtmiwamrlcnhjgugthanxlhvpwlenprotaccbborxfkdnivjdghjbpzgefidfjclvqdkeejrncrmwveugvpcsmomqccjtvbiafnzybzlxdcnuwfvfowdkosgohyxayynqdzqpipkpvdnmdindielkxgbbzjlspvskdmkzybwmsxdlzqeftoahbygooodszkqswwjjdqgjaocuugynobaofboetperqbymgzfgtxqzmddbarrlxwixfzgmnlevnchcuhhbkkjegjksxrwttozthjxgrvbmvbwpjbxqorlocqjqfliofjonxydyeqftczriujbsflwibnkynjfrsgjyokulggccmljuvwlwbrnvbxdojdqcndfpfvmrdsflmzknafgcrjgnumewjoknwtdsgodcnrhjohifsholwrifyshwafkqifdpubwwtwglxzzreuezcwasjbheqhftgdgybaqgmtfsiuhuoxgvwtmddmjlodmhdxytibmmqsygclqyjlfmrulvrlrvtqksdabbfcfttjpqzfcjbtefdyazundpkkgiynotlgjelmxqcjtwrbwxpduzwyaekoomyziemcvkbhxmxvnopkjcfcrlhdycplildgiqhnccenrtoxhrkrunbdypvixciglmqbpyavdlsvpesjaawzmijvkwdfffbnselnicofqweokqiegvjnkddrtiedsdujpasrvuhknxistzdhmcawezcubdrhkvlkxkfvkcqusidfslsqrxcqbtlerzcxogyzapykkbpovyelqaixbttypjxocbxrcycmmbomnjdobimfiwgykvunonnwgzxjzplzogblkipilqdoinxawbkhjfftpoqsexbbnygjikhhwkqcvmigmbzaklbbmfjtlwkekzkzbdfkiauuhcmpvdntlqpdsawozotfmlpzhckcagpzzrksumfdagtiqzaiuxpjhuriqmjwycxbdmrcqlogsgshogwfivetxlzpyogqlxrfebokripcgmvakylxlyiolkpnfokwzeslbntpulvorhkgssqknlsfkhndvkyqbzptoebufjoljaijgseadzaycecxtsuqdrrogkqszhlakkwvpkkdurvkhplpnmzckrvqpdskjfdzyyegomyzppcoxukhfgzhxvimaywhpdlfftcgkhcspwezoalcglgubqoupyqdwqcylnfrufeoftjuyhsmyksaiodihlnwmjosnssrzjjyyjbwnpsfwiehqgkrbzmwewitehvigrbujpsonckalnsmqreezzbswepuykfdkccneedgrihymwbaajpoxlhthemahuaelkqtwfkbzmbbsbetuonecvslomhdepusxtybyvspkpbdpukfwacvplujypooyphdleowqsiulowbjvcbuyvjcfrjikrznzsakrfwskfdynynnnneorcrvsrhdzlotocqyvvsnjsiaakcyuvlpankacfuaynvxofaurcygaonsbjhhaamlddmaimqoraqjtqchhcufdixpsqeeyfqyerujfsppepprtcdctnpnytbppfhpvmgnwibodzsaoqotcihmlvtmmoovhjaoemklyeuhcejtnwofzvuvkrbdhkvmjmixaklrhnhjytnrkwobwwnwmnzeremoncofnqteawxtgttpakajquvbumkhxqxiqbhusvxhxaziigiiakmrxbtxaldokznknjefnpxnxaxtkdtcuprnbfkzpogeamcjzkiegnkfdaaddjrgmaoatqmxvvlbqmuewmidnhxsbozhlebcdductvvxhtajkfwyllcceltgyksrriswtvsmntlrpgnvbcmshaneevhwzhmaaoschtboenpmqwuhvqgmemvovviiabvwsnuogennmsmlhaocmtyqzkdockvmmzitlvosbjehnkneldtygsldrowxtblxylqgpqaksovnvzgtxaqejuxliabcjmmvrxrayakvbkohkaaqdyqfhwvxbvqtauoimrqfqcrjrrgwzxiszpdkeunmmkhagkygspybgwvmdeycazgzspoxuaptyxjeiwfmgnfenjyadczoujzieatiwtqokagrdqrqnohiwjdvufmryaeayedeadltjcbejryhsztpjzulzugurmoewigufoiqjkvgvivcxqvydutxsvgwjgzslckqnpvcdabeevtkumztokgfaqotbyxjmarspztbgnvjiydwujyplijxqunviudihjgcawhxcnusyeseuieutfpjtougjcvlzepytuoleahzrujxjppgdwedqghvrccvbukqdfolatpvwbppvuuicciyayqcrihqvksngexcvnowjroxgpagtllbyubcuglwvcluosubexeeueaihfcglzgsbljobpmzjrpazwppblowjayoxtpbppfksenmcwbctdgayhzeujqmbmxmwgfxsuixturqdzbiipptjqawmwxzncknfmweqowrsrrvrvlqhwzvrjogshjskpmdhngwtrwioqhrtosszludozbuknggkswrspfoeisxbhphxfffoiaufqjamqyhdesbonhontmzpxwrmsnhxqofrfgvuydkqexpiynomnovwosczxuaitxctrviattwfyltcqvzgpbxodygkgnkvqbmzrzfaneyjebhysjqppkswxgncsrzndufpmdloefofbamhjdebxpelypkiwbsxkjgbzngzdvoetuolddgrzpxqgkkpcijzgetimktzsfnpwxyjlnhbwxjqegzdnxxqfebplfycumbfqssvojkprcvuujpqkarnssraonqladoynfbqpziewnkqravitzolcklguwlatoimumrbvqoyoitpafxbjvxwxetlxehhwwfpyylwjlmjsxgbjdznmiuernwijgnbunwbkewvgqvlyhhnuutxpnlxbkllhycsrntpwusdueugvopgptvgpnbipyimqytozikrxqepiksithoxlobvieiipqgklqsexchkwxtyakejnqulojphzjcnnevfdrodslhmswejfdauxsgsxycikqtisacjwjtwzbmcrqlczhmcsjblveqaqehqmfiuhcaqwmvabvjloofsglbqsyzirrwftntrjdvdofapebndcidvuzmspazyfimtdonxyslcdkldcobxgjvjmaqktthhzcmlnpwfaaokpomacuuznpqofxvfwkkzwgnbppvpasizarhyqrzinxidpuaxpejmyzxmomcliruxwfytmofsfyvkmjeitpqszmdjsuijptbcvpofyklonpqiyuhiyqexgtnnooittkmksjnljzlsijkdzrfdemyucyjwsslajfwdtltaetnnwxxdvgpkjvudytibepbjkiiohpfwgccfqghbpdzsisxlsxvydqucpbevtstxxmpscfppbsgdtnvvekcfbnduhahtsbonuzbcunujhzdivhexzzqqzklwklcprvptqnnffdwlqzsiuxeuckzxlairfvlcidvldjlgbmnxfwlcqnqjegndgbrvwqkgqdttbseyircqnphnxiqragnumielsdrsdnyzrlufzafmagogosfekxiewkiahcmesgkiuwguzcycuyjwmoctfodizjqtrewpssuthlchbilakmkdtpzjacidychqfccihwjysvvmeuuefxdhmgtiatglhdflzbuccbihqxlflfnogopkjzsgdrxdfwhwxmompxbnryrgxyjgvwrluksmvqpzallqshymhomvofcclkyjnlrrbwatcfzystsfikksyewtcaqxstqbquzfabvfsxzspwonrfqdqhmvogokcaadffmtsdndztugzxcsphkeieuyuadmnwyolcbgchpwudkfuvtutwbcohcuzreoczhymgwhgnbdnqxdkdbvgwdthccqhkfzqkowdqvwnshqkezqnvhzupajtagrptwziqtlkhcmwvmpvgifjmpkwoubrffhualqlhtvijnisdaimlbqbzbpzrsafwzcpuhumguinepkvidsxxiglucyjwlurmkjprooashskojvoygueqwziuddtsocxdbpfjzuaiwwwmntjfqaggrjunvurtuotbzjvcmbntxatkigjqunrkzyslyemkqhgfqmnshubqxstwrndjodqerbstgsitkgukgzephybxgjixfxobvswayuqiwlrkzyptxgcbdyymghhixzcfpbfbucitrkjxiijgchuxdvgnagwtqhtqzcyebuninmzidfvvhufpxckfoksfpaosdfsmyumjphjskgsdvfsrussugaloqjzmpqlmssdxqvvesrindtzipbvvtwbgehiesxkbrztiqcbikbuacodeikqntgqdshhfkgtqoeqhpshsuqiqtcbdswcjkdtkcnhglarratqpzakikkowkziuajydfcqxumzyqkedmoqjukadcbjcnffuagwuldfcbgptpshsatqrdtssrzqbxkcsighfgblljirsjttpgzblzkouesfshkzltymycidkvnakwtiuudyuxcgvnrcofftfcmnxetcbsgllpcmvowbuxmgxshqzcybafgtpfcazynrvnktmlpwsfozxnkkgemmxyfeevnfuiswkpfsenumftymgplgnnomranlttlhdiipppaepnodnktdnthdnhkaristwcdbpquvxxgdmwwlfwowrrwfmwkdsrisbbfzimicddznlvwwhnphtlysgmkcuukjyyihxfvjavpiarggdmfmqcbifckbbwiaskbqrpdkspaehwnjeowhagfgxwfpwanmhedxahuaxbqxehhthqixrlgatydavokbvlhlyraycixlxhmlvhdymnuqjrrkwnoshzwgegiczmobygtkmsoznfyrwamfwvyvdtypesybglquotrkoxepbkeghoqxvamtadabeunsuaheyfskfmiutndtvbtjytiytewtghlcdhywseckbzkurtwujhciieereykhktiimdxoiwrraxjimriaysetpfdplpwfkpegsjvtcgfbnirlufieaqbmmfundlxvrmphopzmntqkmttjgfftejdkqgikwmkgnxqqwmeyeqfvropfzjgcyhtgyrsfuingkfayolivttbtvdpwlvhxpvxuumognzclnjeghfciaojhprqtahcocpwugaebeecjkvgmxyjpqzkuqxzhypobzgbwrurjdourlxrvzfkbllvrluzhzitigeyerestxhmufigbiwbqkjtlqrvowhrfzhocxklrvkjyhhoydmfdgyucpwqlmrqzazeaijthkbpihgcpziqppqpjvrgqomwdryblivezpdtkdsvkgyrtmrhbtamuaxrhvfochkkxfutrflrztpacqfbbtnqjajbqjraptpnmjyotvpwjuibwbewygvcexpgeiemntjaamjpzsihasbaejqqgniscnmivftcwapscodtrcwrlxmdudohrvjjxcceqxadtwnwatnjclatmhjzwjfwiipmlblchtrntmgrdwqesxapjfjxsijtwbwyixnmxcpjptsqpfrryngghjrlfnotvvdugadlqomyfnmnindaehmgzkkscwiqknrcfanhfazvnkdhtegcdecjmjbhhauoqrxnywybmpoiwiqagpxilpzvcvyxfwfcktjsvlzyrhtxeetmfbluqfqhvxcmxduxoispwpfdmznunssjlrwxxyuarkuagmgubsjohwukkzcpyknsouiopchmgkgoybrmvxvzptuukhazuapjciehzjpzxbvuetrqtlqdyqdgygrsazvoeivqrojvaamumblcbuhcrwehawsnsvqqhxilwjfewujstomimwriznqoeqouyevvoptwhcgkapyvfgjkbrepknifinwmfwhkcoktlafgybkqedxffxejrvsxjlpeqmlyhadulhvdahtrofvhmsgxbbvspttpwtmmfxdjszczohoisyjqsgjkxzmoarcamlaguouhfpnwkkrbztfppdnugzxvtxsukjobubqiklpxdnjeiykxpenqfjudduktqyyskvbxpnckwbegtienbiorwgqpjfdazsuebidhdedjapgojkqpurbqkjpvktdhvmwpkogjmdpuxxtdimvzjywgnviwpvhutwxwxzviilsblujmjgquwtoeqxpilhfkrgcisnvgrkrqxdaedyjfwpupwriiefdoqiozfwrksbydzlxyiiswcurauwgrxurhjftkdphppiqvlvcsxodswccxtlwvbbxqzqqlkaqhoraphuxplsewnqyzqgjxostouosugujyeeqogsdwgxucwuatjomyibhoyduakdbikbttsnqakkeiddhmqdnfknamimntljsmjexkyigamqxznwbxnnckbivgpmmvekmzpsxwcrhupdsqgbsmsejdqklzvyjxvusdwdwlqseprdyglmewwupgxocygwpnqqsnuukxsgetpkjrprqcovxcmpxdusfmesjnaurrgafnjbovsroglpdxjtumwduzrmznnermzbhicoexbktqokvacrztiufxlmynjvgvdjdzlczztdxkbkbevhbkjzqygwzlnzzylonozqievudwndescjnvowsbiqdoipenpxmqvmdheyvpgbmbvjienyvhudslzaxktvausygcpxmiroohyommjjqbrlvoijglqltdlgssehfkdsiauvzrbkgnjzlkkovemoljqubxacqmkwafawaadkvnvijlbpzhgaekvngvrwfdlahthlijpeehojnitcdzcbjnedbcryjjtiegqtabowfuuwpqlcshwrmglsllsprluqeqhiwdwdjobmkvdmuoaesugxekizqdtcrholrpdndtxnkbwiaovcurmmyffqnnrotuxeilqcmxwprqgqchdkmmbfqoplpjaljfidjrqmiduvcvgqzrnokzzhzxuslhgyollcjgiekdclxmfihsfrvgjxryfquljehmegjmrqmhqcojozxjhyybedzsfexgnqcfohvnugbzvboksptnrmmrxngelltcgfumrbnakmxpeffhhznrougeniqquxxgkvjnkiwojsrcntlwmkbwrnnovbhvykjifcsarvbcypejzrfvcbshtkanodujgcldppydbxbgcobevvtkjhjkxjjodxkxfyhyghucjiqbqrdpibvipkbbsmcrhloztwaunmjpwymrakhtwvqqgckdnniafktvmiondrewtygwuvuogenrrhdiqzuygpimjpvjkxcjsfemlaucywbitfzmuttuvavduuvrlhgvvuephgknserbnlgpqdldlulccjgejuobcemvpmdltgijhdaltuatfzgezlfqafcnroedbnwkrccztructsfbnancqjuryroyhevuulztnwvwasnwjkhosnyuhjnahcjxqonowxenykvybfixtoshfjirujmlfexzhzqgkfndopmmyjqyuwpzozsczziqnhdgnmzgszdwouogpdcixoxuqoxgtjsvymzgkvremrfuawjigkmicvbbwjprbfcekrjwzxufasejdmourdivxsftwncvbhptydamlsxiejnabsvvrbsyomvpnsocnfnbjfxebnpsinyjnepjxsedqxczwmgkvdsdmrkbfaixwtqtufqdralwuwphtelnlzphmmzfhaubtywbeuixzfkvomitbtwbzaszmzyevorgcmgndfskyorhuzjemestwdvncajumqfinloawqfgvdoabfwrzarjpxvhmamsbvuiqpifkxcgacbzgkctgbqjgpsxoaepzvpdczssvxvtpidzxdyadhtkkokzjihnvyjmazddrxrglmlfpxljcsdsksgoolbiqyknggvphfmvpxyumluhyqoeudmhmrwbxszfakgxqouxejlkuobcoixvoyicvpgmtcofabaqllayrtaevxwncmywdnsowjrujuflwowzaplelplcztatafhsrwcezjdxcgkqbeuufryzuflafcrqjvtixjryxagmmunfjshrjvxjuguypqysyuvawrgayuzpmggtzlsemflnzkkaqojavhhwfpszdrcedjfpforveeoohvnnngjnopcgdrdzfgcxifscfzopzakkdkcvelflvkgdnwejiivgobtllrlonpvyhfetphvlhkiugqaucltgupyyybvuusagoatcjzgkntcrxsfnbjjnzvyexmbmqzbcbubvitmhlpatejnujwrbzxonmmaugfjngeozueuyvqgkbatsopeqhqkrhkkjdujrlauixhclboxfdbermdmyvgbuumsptiaeypgxcveiddoeonuqedkaxotabnocwlwmfbjegghvwejinpxdgurgmuytinqzukrlzxsvuhgmbutktllhimyukzjrnympynwrysdusutbpdfcifmscqxjvpqiyccfbggwzhmnqluzmuhaoiiihqktyzqekffpjvbvrtalsjtqeucooikhawsajbidtjtlsnlnlsnldjsmdkkinhnaqxaksxoprsnnbdyukdmrawocfcvojqgixgupsbdtsqyrnwjsdbwjjsepvuinsyqszpokzcjwxwgyaakculjysigsphntbjdstctdevusuhrfgdhgzfnfkjnqshhqkibgaggaiuistjtpqdpsertdeirrsbtknoiiaslbcgzjjycyfpndytpcefztzpoalaqjgctfnvmhxlxhnawstmceayzhjgbdjtqsnduzgjpjmmwithnimqyqlkolqjxzgxjvlkczobfrwfyotcfkwvrntjqnggdunnfahyboleuipkjfykzlfakamhrfyjjbtylvetofkkuxptuxzcwjabpnbohdnikwommthdwvltzbgpkwrghkejbzhrelmicsxfxevzvqzvmhzadacudicqhbstudessxncalsitnopfaebgoddavfrydrywtvkplatvfnjdazogagowoxvunlciptdsanikvrgsagpgmbqgrqjdlihzuzuqasvjyemjqxgewnjdgtewzgrefsdewohbhqamfmlruhdzldslkzmecpdifosmrpllfwecuyjtndpctennzjltrmqqxmkvkkwzoqtgzhtgeazsavhfmsmugsmmiduvrpopbxrpaujditrcrcokqhnphtxjocifnzzivhfphiwpfciplzwnbofvwyhcfbdnevpgjkvpvxeedqnwlmzkfoxziobutxjdzziwzwtzudprzuabfmzkpzlvzruzgraxolmrldlagtvlmatijzqkbhrzvawzbyftqixrrizxuqrnygfcwvbethtgkgyucrifhpcqaydwsgvlcpuevgloofobpijilifyimpybruuspkvctrjpdsixyloxfaorvmkefxnfhfuwfnezpzsnoxfjpblpyqemkwczrdvvzqyalxdnqobxrzqvdpyzvpnvtvoilduhkiplghutgxdypilssrotiabiqjralaofsnhizhfqlgbhjuetehbjrajgliirhkboqxjhidpetttuopcehgcgrhdquoevilpiskwwnqfojxnbrptbsmbujpnubecfrddvwtvggzxpforuhapdgrnxsmyqgvhzneyoydpjxfvqnxsmswyvvvfptutkxmywewopmhzttfulvfnagsyxrpioiqjmxjhhouwvdxunbmfsxynjh"); - sb.append("a"); - return sb.toString(); - } + private static String build100kString() { + sb.append( + "anbdqfaxjxdvtvfjfdchanidtxlnijlrcxbcxvorxqqtifsjpvrzdaxpszjpmnflqsdbfnezdrfhciegmyjnpmvdplbjluqynqxrbwgbpilucgmojxtlxewkawvdaxpazuwwvufqtdqtlrtkxwvbfdpmdutzoqdaykifgekwyiaowzlcehvabxgykkhyvmkqbxtbrdjrwdumqtrjsfqavvpbwaccwchovnphxvoxuyxwhxuaxyzsgrvethagokvpprgxlzvohpaqoxvpazbhwbdxhezvrvqeeveiyrmrcxakkbiuiowfhbgixkazykgkjpuffbbmsvvpbfsjwdxifokttenygxbdurlzvfooiyxjskdvubwbimlqzyqmefnwnltmloyvbedznfnkozdgqbodflzfalbnceislrikvvfualrtocczfuhucpdqbwhsnnhklrdhhbqkxsmmipebpdycfnrjjwfsublhqdqrlhufkmfmfzjrycyxnnokvypuxuyeyagflohceamgvlbqtjizxyjlaphuxwiclznnbevrywslooevmcnsaqkdypdrgbsesyiykugvnwnohximtiqaghpbdrkyypzbsitqgsxheywxsgpjagkwjqthcskgllipsivwckfhxkrfbbacxrmksykmozkcwnrmntllnifusrcaftxrxgxuipdgyezgsiwlbqsnrrjwfcglknrpjdmuchisikysmthxqzjexlwjjhritkxmxoarysskzkevnyncdjmudxnltpzkfiscobdhlioqvhqywzgpcbwefxzyellokuwmvyzfnpcxkgugplaofsljgmbwhpaagngiybcawofebhjplxnjdymqeszlufwjicqgzortqhgtwichcoislzilpwrdjmiymzpklqmbzwhpocvndecqxptwifgebmwgamcotrnhaobwcfulcizxlrdniynvdzxqhpekuujjebxlwhlhrdojmrrykdrctngnbioxywaofkljwaighninivespmrafgtrkzdlycuncykcqsnsglulaiifyzwifmtwitolmnreitgkskprnpkoxlqqsdqtzfohrflrhvnaygfpcdevowicgevnovdekblrkjeqnkjxyfisboqaattoicozdrwvxburkpivdbgouhxjhzshfzybauccymyaeljqgxteaonjferjsaprvtrzlaepbdyedhaswmrkppofarrfnkozvkvoeaporocmpvmoejogwcppprpulwgibxhwwscvdsrmcmjznwqasltjkudmkaajxvjllnttygjxvmnypligcnptwazkkipsypxblwhhoapxetlhlpcarjrbwltmyooaclpirmvipagdqqzehmqbqrfzrowllwvozikemtmdzohndzilihpnjbrbbyznprfsyxattqtvqshbsfvpfnfhexqdtsmvsdqnnkzdzxbgakoytxgkelmlbgsdhcglszyskvxtnagaaibbmuomncjdxyfisfycdclaccqlieyrbopmqzgadqjatymbqjqplpdgnbzbjwdkmcyjimzwynahtnyvrjwokviwrtsixsftnwnxqrdlitcdfypcvrghhysmizvpldipjjykvyoxvvqhgpdssbocjniywpxjjpthaigimklkrbamsjkngrqogzjlcenyrjdekmjtnkuxalfyrjkbzmpgdjmbhuhpzebvliezbuiqdvlsehwxqtfprolodsmkhhqtjqkvjqnlsrotlmmvdrgyaynqkpsqbjbvwjfnsfqtpwdlqixebkmdllqnpdfrjrhqutjkfsxxwkhstvipropthkrphytvmzvpcjgvuzuilbxlwqijvyokrwavglqxrizxnpqfxojglwqcgrabffviubuunvvvjkntsyiushoxrqxjjefkznwtwoodjptxijtetzfghmwzocqkyugkxipzfvlluttqfknyawsikopsjrqtyqoucmfwgrstaykfrtmikhsfqnfmjlqgfyxddsgobfehjfgjqvhqyrogquozaalqzaftczmianpwlbxzsubssxukcffxcyaahcmfyssdtcqvuewwyomazcatbourekwnkzdooucdentymxyghoayuukjdhzkvjebknldckfedbgotsrlopvskupvzdsfhbkfifjpmaskmxaxznbncxgtzhiulfvxclrbmshfagzcavvbtaomoxdwmwmyccexqivxgopegphnghosbhmvknmtnmqmwzhdtdgejoqiqkocphaunqzmsetzseqhjkfjfhlkbkyeqacloqkxnheajtlvfyskyalmeepgiykehfqjodfhshuexumpxsfajzsatcrlfdlbmlogcxzfsxsjndlddjxygnvogfqtfcrgcjdimzhakufmebqvgdlsyfadmkjasxeuvsbsybcxkznqxlqaypitqdcqfjudfzvgtvnqplevijpziipndskfzipuurcsecwjkawhznxocezplcpslwfsreafzgwzihnaeftsdshqifexmrertgwtsifxymljvighkbvjwigviybmihqirjxwlvyelfgnqbnntbnpkridmxkrzqefuiqaoflawiinsacubmxdfreesslkqonrjnwydfkludxituraqzawswsbdmgdkqlyrmmdswhsswlatblrfuchyoyamrfxaofobxhhrayzsmotpsbmxogvvdnsayzrnjuyvwsqtjuensfzdpnydqfwghiqisyhhspmbudevnsvnrfqzspfkkmbsjpcazmosmwdzrioroytqmgzwwnvjkpubdfaxkvpgwjqduxheuyebihhsaqrwtahsbajnmahmgtpibynwuskrrnkiwvejdnwswzogklcmhpklkzbqargrtkpugbrbknhlfadqyksjztdyfxhjxckagjjiiukrmmsoukfhwfsehvkozxwtcjqtufkyqsjtvczjesoreruzyytvttdwomyjzvpwvvtkuncrimgvazhvvcdttxoqqjiljnshdlwoenokesnydispgwglpctzktatpmovsavchcglyzlccwtwywfwrugvjegyyacxkdkvtzoociboukgpjwtvmphpxrjdvyaekhtweedtkehpghcuicnetyaqqzwcoqqcmmzfjbjpeeanwtyoytjcigtnfmzgpbpbxitrhduvcfayguufdzikyeowaalauyuejlanpplitrodghnvahzialtqaniqhuslrqfymaeqdjjguyuhbgzxbmmzwkumcfcjmyoxgfspnpoqiqppazawtpdmcoucmhbggexoegpiiazvzfswohnetpsvwrpkjkdyexizdzkuqseceeaybwbailfdqstzmxkjxrgweaqvkqwmtqvmbjyysfdkpstrjkuuyvnooadhoxfntjztsnvfflyfogxlokkouzvfcpvowstvddbatraxaellrnnllvumkuvxkjusatyhfuxnspaxrzgxyxbhpdbekzuywcxqecheiojpnhkmsxwleagpicuktpyxflhoaeivmhoysvxhrnhclnmpujmssvteirkyqbmwzrsnbwkjwydkygwippaceoxbjcpcazaebyhwqucxrxymgntzcqzndmgnuolvfdemsvybxazjwiynkedmnjvsioffuldckchibcrihpzuhtugbvujlgltelumzburfodugjwtwzoktvzlospinntzhjrmrsupvqphdaqiygxdfkodrafkblrbkfnlmxlxgddcbmmpckxvtsotghaiauhwhfgegoxscsuywgllyvbylnwjcnwkyfqtnidedhwawahampccazaapjgusjujntvbuyyuznlhfqbcdfumlznfxlyzphaqeqtxtsmncultimqezqslkisdlvrmnowaayejklonypytfeyqziehijbdjrearsrajloqbsxdnlqbtkppuroidjhuvhyrwjbdkxtzftnvfyoymnrcrmkaefcclzmpxqnokrujyucuojiruztjviiwwsmkqnbefowalagrwmxgqcjzfmrfnrodnxuezkccrgeegsaozyvhjjjwibhxgsrnhaedtmqahfttukkmzvcwdiyrmseuyjwsmgogrousadnikaoeslfikeglqqaylxwndlbrrqnpgkfqaziqegyamurmzhkdfwxnyhraubpnbtbiitqsaltebbvluldopjsbnhwhijqzpjfxnvmzxxcapmxabgrpsvpbouiqhaokwnnoxetjzcilnrcwxfnjhlrpgumxkykhxclubugosfbygomcszzxifukrxtuvquxbzgdayesofcywyjswymaljdjcocjmjjrauokevtyhzrcmxwlneplgdmedkvjivyxhkrvheqeouvhustfhzsawjeftjwezvcbibhkawnwnpkutadhtlbthoaguzmhbseowmpgbxvvjapfbahpklrghqgfqcmhmzmnseosmweomtofsruxfgkfcvziowyirbhmozscprchkhnkiwyylkfihovjijgrxyosyuqlgptvljxuipoymozouritbzbtxjzqjtkszhewcoxahurarhufndxymkgymfetvmcpnydgyiviebjfkrckqsmzxuakjbdimwsdhgqnhywwuojzjssfcaxqgsauvvyqyehvjfrpbeetcpnuokbuvrbrzdwqkjqcghjnddjvhsazqqnfxzeqxqhrbqgtcyblxleeqehvordfctdojcnnhjeoajeuebajwkjqquncndaxanmjxiqduuikfhvfebpvjtqihxdipfbrjdqkocjzuahngmdlysjrnmgspdcgtgfocfcsclvniiayjmwghnxqtphsgsjfbsophezlndifyqpkxxghxegcoivowqlkenynzsehaxmoebyxecshqxabxxhqrdgwioqtyoqultvtpoxjfsacnpeiwixlqujmyzfwnuwjhqosoglpqbjekpbvukxxjhwnyyplhokvrpygfiwdorlqfoszpqpkarltkfitehbqgkdtkdnefwwtbjfmuqjcthtegjekalhmnhkrvxzvghjncafljxzjcpjywfeyyuzrssrbtvzrujnridfpcjnefbirhvuhvltuwhgpliewprggkxrsleobecunhbbbvvdwaozknuobdfbqswvunxsdxwarkgiuvgmwefbtquecwlbodxvoqmgzwrzkhubgvlcturvszklosmnwmpwlxjdjxwpuvylquzgvxiocnvjovfisfgwrfpnqxavvygukrdpvoszheejmhratrvizkrnxtlyfhbueoinklqvtdsajoyhqasyzkiwgwkxlzukmrbtfgukidugsdqqylbxyntqbyrrqokzwgvwwjizihyinyecggxfgnzadlggadncvofaurygfcikcsowstspilgmfwvtkhxpahkpnpejchmfvdkazcolbwsjwuiaqesclgvpougmtdlwwywzrhowvcchbsdxpygtnnojqrzjduniflmzgmolbpfundqiaihrevzudpcagapyocqakcgopsfjrhdidhdfftmzdqjfzeedegbcvrlraryzsuffdoqcxekhvonklujzrdbzldslhqlqxdqlvtuasigziotykeuychmpxqjemzuaypwoupwcoskuwdgdfeqsqnayavqjaozmfijzodxzahioumgornjwfxtnsjdqycmhofrmqexumlzmffspkhpedsjpmoasqvzgfvortojphtwtscqxnzpbhgvzjtezsrptvsysilwjihhnzijwxyghgtanhvnhcvxligrgtiwzdrcluunzebnikxmafjucahciheibtouwocdgydklqochqumdxjcznysfaxgdzfkkdafwklgoadyfqlbyvvzdjelcexafjxpeiipjrgnlcwfhemiepkxfjsbitclsdomkqvreavunlfucdclyxcgkonugnfhkltjvmmccbqcykpjehxmlmlksdreuungllwiusylyktrmmqjblugreojdeqekqitlsctxyyurreujjlscvmftrcrxhhtghiigdjesdmkzzjedpbhqwpslxjqpxvvrtdagilrtokuqsgdijhawgcrlrxuhizcdbmoofwqpbdsliwquboeqeeqrzckqvnyjpimwphehnqyzeopudzrsjlytipkrodnxxcswgozpintrlbrrllaiyoxbzohaurzfahckearddxnmzbjyqucyffjjzotkywoehuhifqkvjiausgkydclesbcuoyempxtcsbonbuigypxkrowhyqmvopmdorbhyxjvllgccvlmggefcwxncjhditcmyqmjcdwvljcjeppvwwjeoqcqjwmtpikokyovgsogvfuwkqvbumkcfqopmgzxgcvbsjyeozrloxosxzgnjspexifeuyzaquawakeeieclnujfxtxnlwgbdazqtbgbxzlucjfltblscbbqmcqztgnrcrtimsivvquicjuagvectaaspoctfhpmxqulevlxuchwajdpciehjrokndmeyhczsgpjbasrnkcdadynxmwkjxmrrlovjwuottjodasmvuvclqwfcllorbixxydrqphliztyjwgmbqigoumlyrqivoqsvctiwxbvsmnkbegxrjvgxmrplronqivkqjhialcybuhoylsdkhraftefhodngucwynuupoffdcnoshdhietdtntkxuozwzciuukyjhwunuhbrvqdhqpiqupfdzefqhjvjfchlhfwnllpepxgccdwdlttzgiaqzxvxsuljaskyumhtjscfpzcdftgohrgohynpxxylmnjxrtcftvllygoggqvjvqftgbeigrxrgtrzwpjuqlmglccmfnqzvwvzofthvnrukxcxgsdeboihjkmizblqaxpxsuzfxncwksdbfqzfpbyjtogwfdjewtslwmljkwyjycmguntzuziehlknbdujsewegdltqqesdbfnsewwxlktxnbpqzbecxcyyomsginvnimicianmtaynmpfiiivmmqqeparxwleixnjwfhrwissmmdmleobeabawtqiwxbecehpnyfbaxtwncqyttqworembiibuwcgejvdodfufwyufpbdhmsmdkahnuuvvmvvydajuuqtofzxwjexvjwkxdzwaydhrvrohxvipcadafwtvnvpbopgatcofrxuxaaypaabbwvpmdazwomuebwfitbbsikjqumcxjcjsdwsiyzbvonxzwvqqyhbmmafplirgmxkximeyrkyuwhqtgbibbdihgnvjgpkunzzdfogdezbvvchltqjftycylhxtpjvbtxdgswzljxkzlobiwvvniugqvkxyzhnispljqytfiislueefluuzsgtzmmcskgileskpsmguunuhxjqcprvdujcaeyrpaubjocuwcvwxqxjhlhjtqsutfgpvbxtpivmmxgrasthpeyzcteirwaecjhbyyxtedeikeiaszkhsxbrolmuprkowvtkclkasqcmvoxtkldjcbkgzaaybamsjjzsutyvjwetgtcvamrgkhinjrloyzxycojzvxklmgecpihqocpliwrgcsaxlrpvzftacwvneeheqwfyxvbdxwnvoiubjalxzwgpbodmlyfpvgqwrfblglkzyukszrwbznfwbfuvodbipozvueoyrtztiwojqxjinatelukugvnnuhtxomsvivtsbdycozhyicsqgbjqutbxudhllhmjhsfxedjkdmdosnzwcljpguihrshdbacyvjcvvvrefventmzjeviwgmdjhlhfmzvkcmrjiuanqobfvfauuwhzmkeehimtzetsdhpegmshidazcmfczurgdmdxbbqixxcljqilcgmsgtggatnsnazdrrmqzpzneyapxxejefqhftyysghhuodiqxjxkkuweszzgtvntxjwqhrihnmhonxqsstrozmgwqhdlpwvthtbtzlybafuoucjnaupyydfdqzitiycamrncfexqcripxhwtgiixwwbfhasefjdlqlqejzmyklzoxpdtknhrofvrtwijphwdsjcwywvcazrwcxgqjlpgzcgznctpzyvqfkfpseodvyujkldxxuvviicsygkhvfwkxzaikaiqqzkzztolpbuugssacmauwgrwycttvamdeysgnmxwodzpcxhrfjtaumutoffufzusjjxvrtfxjdegdfyfevmxmnoltucyfunwiucbdvgfmwayzhzmpzcigfajzyitavacejyqvclbmvkswmukuijttywhivxzndtvduyewextpwgugizsarxcuyhnzpsmavufsxjanvlmabhmmyedylbpaqgupqinsjojregbvvwtqnbschfbtmxrmzuvuihwmumeyxwauktofkdehhtgupznnwcjmcvkzodqowjlwrgmphqfxcbznrdrsyyqybxwrrzglhzcfqvsduqewcbuqcaudjcuaxvuvrxgrgrhkilqffxpumejdtdrmeuhloaalyeqsmfbdbwjpyomwklaonnlclevbinutljpeaxmipocelnahoqpzncgewxkotxatdqmsmftiihnqnnzntrjowutydshcwobtwcizzbamxsaeukxedxnzistibwakiswgnkqibvmjpxumyhxbwktrzidkpbjuqasqqkpgmoisiszecdvbpmeoggdxrkixwgcmdusxrapwngvxevtzcjoiwehqlvuyostuerpdwyflnidrlzaeotfcvamyvjwonjbduirqkfnuidduvbxgodcgarvigaozuenfaopovbyxtlecwfbzhnojklcxbkcmvvpclpuipbtewmwfrygraottqvmnoigzzjiemvaxkhevwyczflndsvlvqaqrwpkitqcgnrwehiqejrswiiesgskqjrilzhjbbkjwnrwjvkfcodsvlgiznzdupulbfnocrdwlsxribwcjncoicuiirdojqkmrtvmwjbcbztbqasaenflihgbpxnixswdnjecqebwawimdpitargdxtvweisszlaxmjvnrwcceyoukdfpxamwdniayjaafhciyrrokepaczrtyjdfhwizeovflibylhskekygajbdtgiqkqdvhwmwdnalwofovwsdcoewusuevqajxpfsnjfpanroaokyvcnwjhfzxldexpjbafetjuutshdgdtttoddvwebkfsdimlzwcpessunqdobfcanbwydhcscmxhtmaolhggkwxkuxtpvetudraehqbjmnzvorwgagkfwrsvhtdjuvyihehmnrknnhjimzvtjzcnofdebcmqvqsvqwzsdzazgrlbrdrffotnhjlarddlammkmbqxwjbigpecztubekgfjxqlqmtuoqjaldjckvnjrsgukbbwfhkqrtbksaqksyefncqqmpcxczmenasmysnkvlkgziqkfrlwjsmnmnqeiaaxcwxcbmpispkhfcpnxmszxadpiibngubfjjwivxywxkhxuseyrjrfmywckssdwowiujaqrpysbdelsuryscyeexilwqwpfaugdnummsvnpgncckydcdbajdzmffimrulwkybaxlnriizfbauignojrohyllpjovedmtxfccnxxkqmlioelrtwfaizqbzwxpgqgapizmsiwxotvsgyjectomcwmpehqhvqgmxghcwevftsbcsmlagrlpijfyhqeszjdgjyidnlpjvzckaixpbetivncryjatmkdododkaqekwihhguprayhplkhuvyjwfjgbmrztfdxnalmdyeyvszezttassfxyxejvmdbcqsxcrftighgnchauqwueojqycfdavyvphdzkqqdetufqtdcedohijhqtrwvvaqnsdzcmfzlfbeqeskuzqvyqsbxnpvengusjgdocylgqfzmskekhdxoluulkmjlygrsxccowlqmrpzixidwaumqbfchmpzmqgfqntegzwzgoqxuvdcgywinfefxxrugzlhtjujdxxerujfblyxuacjpycdxqwkrvxflrndqdpqwpnimzprlhcbxrpslmxicrkxxjzijqezpdhgkktspmuocgrjmeuuhittftaimnbpxvyrfmthdnbezktnjmjyszmuucdndpikdqewnobczfclbvfgumwfsinypmzmrqmnzhmxiesgoakjezmhmzrbwgeiqieuizgyxlsfzwpxrpnxkgjodbfgdsmunjxopabzefvkmpujtgzsxbrzajnhqrbvzxczgfaeelbhijvqkbgpfodryigvhhvdngqhvndojzsrpvbdouwcejrmxjgdgkvltdoiksclgwdklxhcrxupktyxgjwhniyugowjwmzzvqvioctmqamhsnpokowzkyrxrcdyesasiwjcghcvvlvvrtsgvgchjjbkdejcihoqzcazeuxumussmlvtvbywxgmauxjqnhbsjkdypaunirffjaeqasdmwrlzrdcvkktfatoennpxfgxgzsnkouatjvnztptshbsiytzhevgknuyqwvnviscagnubtrvgiszxthhwqapljdjxvjkfkncyemqamibjohedjtwguapaithzetdgddsdydxxpjtyjlwjxzsokbwwtcpzyalbxvlsqrbazzenvkvrjiazaotvfcygfwrquajwhfvgsoimaekfaibkyaugnhfxmogjzvdtiytkyinbpkzujmfrdgugdqofxkzmpjhesgykqckpfkbkstgtrdypyitxwxuuskmkirynzutlypnbjywuhbetggxyiyrvffigbcreosmmyuzjozuzvtbyamzkyymlggjlxsrtexxyefxtmvhzcxqloqxiuhaaehntjppyyfshdjcfwcxwddhdzykwzseypuiofmobalwlrmqdnoqfeechdsvixjndutmmmdzfztxqpufxhmqfzyzwjefbjlxgwmkfxffbpnzsnomroohazxhjgkngdmxsxbypuhefxohgazzifleaxaqzfqhbduusyrcacshjulpddrluqakopkixexhsfbgvmpvggsvkrekuovyosplmwzbjrdfyliicveuxlhcrwzjlvvxzwwcmolnjauglmsbkukvfxzbaumgzmaqrkybzplvapslkvqmyjqezoxmhylxweaeoowlmkorzdazcmytuiacntvpdzblhryulunbuoshshzrftrdsqgudbllabramhnjlbnniuvzxhdjcgmcusjxkkinjicjswwsdoswnerszltcjolcyeqgnwkhcmmifhvynypwigmumzxnrzkriodcixxwqlawcpcsfegcbravybqgjkinygzcqdekkbpdcezzjyhtswsgtzuheplmvfuaussfoaummxkreiuepfdjrfbwuosefauboqjxheoxoecbbchdedqyyomqipuknbmiatpvbxfccupaufbkdbvnhxgjrmhzgdamvefyswkuodxamiitepuvrigqpagmdfvidvprtukdauyxortolwulysptgwdimmklqtibpddjuqbzumucslyphkxagbcxfyjyvkashzqctrastonpzcourvaxpdsvdzqfotlbsxfywxstyxzxtsqgrnveybqxpljiaecczfczjrtskksavgcpbjgpsrqlckbdgexkcndnpornyasqavqjonkuiehtzlxwwjiuqwnvcgcqrrlswoekudttbihobuqbdzxqdxrjztahcyzpvzeygfsjhirqhrnzvnurwmzmondkktjxcpsppbzdqmwbsidvbtenbqgeqksrbkjufjlblemfmhrjpefgelbkmftjjbhzxrbiczegqntlvoszwdvkjgyltmbxmbswbsmyqtofcczjxgxmvzspvaiahmmxozrvyykwlqyyxsqbjquzhywpcjlezlkhffjzrxvyvemnguhaduyhjlofeqljmxitgupbaoinqacuxqgwamaxlyedlzrzzmcouxeqpzbpwiobwsyceyxqnbzfrkpntnkoommzzkathtyfcayokagtuffilppufjjbzsrpmhkkfwgelwqkafgmrvbqqogqxuaovxbuwepjctmfprlxlcxnujnmvqmsnpuhrgpqnzhjmpqkrweotrlvnuzhqiibjmfcrikgtftuxixxftnziehdwfztqbfacjcmsfggrsuzdnptlrwauogkxgnktkpvdjebsxuxtpzzwoyevtvihukynheermqumlltyfjivnfgdvcgoqgvbancuxsrpczbgtvqgfwovizahdctprjidtqchjrzkccamxdqwcldptrbbbyaxwzfbnedorjmcyseaofjqdmwhctzjpynkbdbvnkzsdislmivgtnyjfngoarfyjhwjivghusxifvafjnexornwbpklonkrwujgcyetegcnbqvfetwtbqboeoggsmngilnuwfwlrdcspmeajcxhyuojhmneqrbutxcvmlpsftsktbbrpqzhaiilqjhswnhxszmjrxxtcnigvdnfidijahorzzirbnkewymiuyeznobtiqcofvvvbtsdfarupunvuynvmleqfyxkcigsihtevuemerjggcayuahzpustfwsfbeyhsaettrcbjpnwfydrquifbrtapwbmokhaelvxkplfaxubrfmctiafjyopzfqpuhgvrbnwiunurtbxojbvcqxejslwxhguxynfvsmrgkmcvzjvgujcfcjslxjtmxmgwhwxahkkligihftfrxkorzdcybdmnabnvxzfmtnltiuenlepugouzifujwqfsngwsqqiqkjoibvncfelzlyjpeclocmmvltznlhuxbvzgxuznykrwgkbtwhznquydriymfxrsejotampgwwufsemklpvgvlxhvvftflvziuowqejtxdnyvoljlmkchublmcgtkcmhapvncghygmhlqzzvppdpqdqjvnutrdtzdroquhpzuhnoeaguqiapraqyhhmhehvrnazpxecgnfgkykjxjfizimdnnziqvyptfijiubairgyzzttpdzscolvopbtmvlvxrohgwasjolzjwnvsmoeucahpqlrkusbecbiieeiaanmyyxgscrskoludgalxtgszpgzkzpnpebnovsbshxhflmjulggyrlkuyistunpztfdvnzdmalfcamvltejcbgfpwhspnkxnjumnwvmndidhnijjduoonrkiiojyfvacxxuzkoplhdpjpdhtzacmhgloodqhbgjrxvsmgmrrtqzuudhfygnixgboygmsbxexfghgiztqcugthhhbliaolyfcanjqojhkrucpfyuzbjxygmtlxavoacrhchulkxzjzdymddvcoswgsvkccupnecjkmcwtljtayeugszsdnzloltsinlbiterpdtpzdbchpwhzydluekvhtncnkzbdtuojvhoqyzwppzrksmibhecqojliegtthwqqzrdbgxycfcmfpqdgjvzppuzxphtwsphymzhwbqdqirncipfxlysahdsxckqskvrcvxuszqbuzotpqedhystrulcdamfwmozaiktxdcdathmciqevqsjmqsrfstrzzyipqqaszwwssscnlmwbzjvizmxxvawybsoximpejtgjjolmywqnewkzfxdcottqavmpadjthqhqflslgziaccljfacvripsvqgwkazlynroeoruwbzxzlnoxauhkgrqmohciebvclqcphljiasyriefccsaxoqegzyepsjcirbbdtwdyosokxjuzfsfvdmbwgtnidtblkxtorjudkztaqtomkknmgecknftoyzklzutfzovaqscdxkmtcdhklefozphqhxulcbhzsocunkchpionldfhamgketsptbbkepgyxkufgvbsujvckgwbmuejdcpwzhmduqzipzdewrzdpbkrxlriumrltyyzbrrfsqdhkrjhjeohqcjsblkhcsxawydmasqjuawglntvppfvgerokflksodraqomtndqjhrwehnzmwdelqclkkxxvovymtwtbrivwamliqakyrbdbleksqmgoxfnqyyikguoyjprbqawsyyomtoeevvabbcdbmrixybejgbobxmahajzoysymbmcyxxrmysxjoaygwxftlshtwlszzlnobxzxyizlgodjhnognockfnoxlaugmuphvgwnflkwsjneqjubhfvsylivzcgfyqlrhqxdyyyhlkiigcsqoswwcbkiqywbltrjpsefazfpqesetawnjujdlkvywuemudmwsgcomoftuuyjizqkkkotyoylrqomlphwsmyakabbwkkwijmfcqzwbodtzxbeztpohuuszmwqdyebpjoeycdlksgsjtsiklcymxcfxxqgifftvyyakvrcgdjzeddyalyfeoityoebtqomhtpasmtlitveblhxarkowurffdmfpwckbjgbxhbgmxvdvugplzdbhfbsqubgjkocvrimtgqyowyqrvahgosgyxyjzgimypxjhhsfupbqqmfbcfpbgdpgkcfoqjaixhnlruoatijpiisoxffzwjwmovluqrbiwfpptlqejrgyhxxbnabxfxxlrpflynimlhvefarkwhgwfmvkaoqwjzhrckmjphcstdlzhzfxxafusehvxhwugazjykmhzhzofwjjljzwtzmnwmprwhrdqrttyxkkskbhlnmxcklqizrvwxrqnzndbcextedppmvtqfiegxfvczgkdvxqbibodopgdmcbuozmigtolpxufaxixaepfqbdazyutpzkiccxhhfzgildovlejgplaisthqcodawtzmlnlaxomnvpsshnnwpaxwnfyrgiqvbnmyvpoqdjfeihsxgiogzubhudbyepedmqlwyfycxwucnbrsmkudpggsshohvztodvfzulvicmpcfoqtexrabbvygwfxykadgwfsepiquyjoxoyzvcmlwjtuhjkhcscvvcrkwgcfjzdyysezgfngywzknshjfwpallqbhcdazujoctntbzwygxwmdeirzxslcptikmwoakpictztaeyerliiiotfkvghobkqnbfejzfihohvtonbxbtlupfucpdzjmonbxioguznjilcecjkjsazktwwpkfmeiqojrcsaslohaktoauatxwrwbkksuybdihmfpwywzwbtdjsofsjgzcrmzgvtjdjgjobewqxcodguxofsuluqnowpkelbnvvjushrzjgsjjrqfdbvuozhsbcjyqsoubzvcxwhgtjcpgjvnzujcxdvajbmubyozkjckpdvwlrunqsujhdydgthkprgozgtfcbbzsjtidusmekkkuxhdvbdflanfqfkpbnjetnfkbtgmlfuefehcywqplnmmeyzwqvilsxpvtxcoknlozprxrdcvmvszlpelmmelxjzdkvchuhzvrjulsrqwvygekustkogqseodopliyrhwpxbxmthtscrhpszsukkcugvsesizxunzwaaebmajgcppwccuxtgkypipatrfqkeimdbmvqruapuadcdjuqvsgkrzhswyccghgnndlftlhupepthwlwcvfbwllkdodbkziipcfdwddxsbjbxefdedfqqxpvfmffqjbeihdagebmtgjtuvqutexlzalptinctxazzjlmhgjvgdnvvyzkoscfwyjozyacldiyxttpvdalzeeqeadcihvbmeuaarxnyqkxlvyxgziaorkhfablrcpfyniyqkzqdforqgudnpexccbcgrsiuejmgkdtpsbjnyouevocxgipjarmrsedgablcjlztkytlzqzoarfzumahlwiggnmfouhgrvvucelcuwkgkpgbhazvtijbscmjujqrtnfgfonnwfesdqeqmjlucfkwpmqwjlrztimcrimwyzhorwjzvtijscszujeupeiehsqgghyfbqdkhvakacpquvplneqryvrnblttwmrrirkofcliujcbywvpdgcteoxlkjybsfvyixzkolcccsvjrccumogmuesmorjluxadzcrjiefuyedfpozanwojdzwwzugcpwlpnimepxexixgzhjbfprbfodtbovpdxiiyqlrviurxzulkowgqfgiuklavoiafifohwzmfbivekgbmfgmmmngeimyzgzsqfsbuxspdayrxwbcwjykidkefpmuwmfcfnhqpgztaasnejsknucbfiveznlnzlwlecjhpbetzebysfaydkywjfbxwqzprljiqcguddiqjhjkooypyrgxksxyfnixcowpacodncuifwzcprheswbrmhfufrkfbbhzhoopvvwoojbqvaamzytdphbulrgncrokxsbuzbaygnujohpreddlcwfokovnkicfhsmahjcbsurlrqcfpkubfrkfboradwbmrkyppeqhxfpocdcantjrbcsfiblcfucvurepppwnjktekekhxrtsokwxklseyanmyjmblkxpdtnquxeigpoqbalocaclappylkhwkvrgeyjvtpjrpsrallzbbkfiyhcvwuvlhuuuxfxjpwjsqaoxkghxlakcrllsrbggnbytybqhvkdbwvyzhuoxheedbixfpkctiyyyeeoavedskollkifzvhxonqirnixxxsyzhcndctcyqwbnombyatlxqrzjxywinyqcmczxkescrwmtjjeezfyoumqsfmkwkxjzukyxrkifkvpnzyaoaszbkxzykftekyscozpmhbxoyhtknnbkdrrrbnytalirrwxpjbsptorndmneunalogtzyfntmjzgijxnslvxbrjmjnzrkpjkaekzdjlwvjdhzbvmyeophasfelrhkkkzmajttymgkkzbljdxpnpmqoobpgjqkjolygbqlwytjvcgcinimtnkdzvdzzfuvvhwchgvlinytxlgcjponkruhxhxcmoyipgkgvworhwmloelghukchupvpdmtoepsuffyubmnargmslewcomfmnrajrpdinduzmorvyvsiqvgryozcphszolurgzhmwvjzdhrcelrckxcshufxxmmwvlsyhdojqwlqclsvwkovoaekbkfpzabcydafjvrhdweywfixhjviwenroeoufdmaezwkxijxikuhtrnufaqivfhdlgbwafnqzkrjlxlutvcczdchuphglrsexdflableebszzxxsfkafypckwomrmmjnnpyaitpmkrjclfhlzgutugiwpeiqnuesltyngajhxljjwdtthyefgnsngemdomidyihyiszcvwxggvyvwlahlfeghekkdosuzxijaxbbsitkrtfhtybfjpqfaiorvawzqnbvivzkadycjuxkzpffmxaszhysfwjzivroojjadhfxjhjbiioddykvjujthqeymzvehtdjgvncknvehlylnrpsqtewwzvsureqbonqlnhjhxvhxuyzgdigkqjcgkixesdaabutkepbcgpfyltwajsjrlnyuvtybuhhmmarccqfdiqvrqklnjjkkrddinvxixqlozphtbuieonxjfvruvmenyaokpnbdtlxtwnjozeibeyvlofrvqjvjeldygpbatiuozcsbscybqrcmcfkrbskuhgrerkedjwauwiqpwuxblwvlvmoulewcxzoyhsjphldinwmmrtxplhgcdwfkqkymsjmvbwerrygmilqnezmbvbliodmiubxrylbqpflvzexducrzgttkbgvmgqjstebxlwyunaklhycblwljozhissxrsfjwyzyhhpwjtqlnncmmihuwkucdaufpsvxzyltrqdhfmfdezyszqljtsoxzescyuxhmhksfvmzbupujjlusvxvpubnetdhqwtaikqxreldcjwuuktzydejzuzqnlsslawrcfivuejatifyavfluuycshhaxzsmcmsffrijvpnvzpqvhnuhkugsomughbhjpttaogryaogwilfvcuyzjstbmhhhogaxnbwubqwdmtmtddgikxtifwcirlbwhhscolzidhhajzhwrjvhuwxouuxybfrreyazdqglxqgpziwbcuhnrpcubflpowtjxjhphnexbcqemaxgrodqrzzlziypqjmwnqpcaysqtyswsufquzjyjfqorrsqwilohxwupijtqsbolznsvugbtaizrtdnpzodsbezcbntpudsatipuairrmowjcunxrpmfmghdjpzossajudeqssptbrjapzpnzdumcvugkcqzrflqzfwlwqvgblopsluoogkbgivaeapxwtqafmmibflpyklsmrhjvvnqpizkghcpzsppyotqzejautkmwhwpcpmflvzmnrkcxdqdttvflewgqviffxirlssmtswzqjgyqkoxivsjfeegdawulnjmjtshnxllwpzhofxdwuzknujttqsioeqjropepwvkkhfyoddhoemtkzzyolvkjzhyruxbprclmzwgqszhmyvasjdtrcrywwrndoxuzflrtyacmdaudztpkdxjefwykxmfsjgbakhpllhaxiqtfkoesgkmiodcvxpdpyskolxjfsflbgqqvsxcuzhycdtxxrcybcgbpmfchfrrhrzkewtbjzasbqddatjvolqhigpyyxdcuosjtlrwivyljmhxwrvmfxjunnkprvezfshqvzhdhhizwyqfavrkyjuzgznkukxncvxlswpklxwtwahrvdoyfchttzbwncopjmroiyncllndkdgavqerjyiqrlkcyiqrhhzsodwxdejzufrslnduhdesfjhlsxzjjeqgbokhohrdoeocxnwqvbuutaydbcveanfldzxjvjhakgzzwsklwmrhenuepkdinwvqybrnfjorfossdhbpmtxtktbdenjtvyyvtkisoldcinqwmlqbkyvheiomqzixhhwybrdlxdwpwfeqfjckdpownvsqnysfzsfvdvgzrwxnzrrswcpvkkzvzbqurvviexctdujpetoailvdwrtuvoadsmwsddcdepkromqtcbytokphxopyocqgtmyjmgsykavklelzmjzxzjfkogxmsqugivuozhcnghudvwnnwqipcfoemfvvoqydnjksxyoxldrnkicrlykfkbiycwjpikqsdpcsgoayltcgtaxhbuzzcdthbuazflrsbqsemfzzymrngjjfppyowoqpvmfffpkyetjjucsbbmcsebnmkhsjvekbrypjjnzhpcmdtuylneeequoyuwcwynksancefuljdroijvegfnxqupmqqophqhrvbicshhixyajhrysoffyxstrdqgdsabvhodaprfqwvlpmfzdkxqxtewomywuzmjwcloiyztocirwbtpdcadsveyxrrrkqvsyehmzjnkhxbxvnzqhrtjjmtutkbixrwricytgqaaxzhlekaenlwdlxyzyoocskkisygqushfkwhyfwwletmnbptzwfmjzcabfowakhxwjobohahioxftiwlzmcajmqxiqslsklhiusemlspcyphfnijdxwvmbdfxskmihfhmtbrmamchnbmmssuiczoimqzscbpaqklluyishbdgmpvgeeqpfackgrjskusqcmsatabknaxcgzqeyiikpkjolqvilbreezfuxxiqumufjlqelubwexofhyyjrfzzkmnenhwnzseycripmzoammektmftlfdefvrpdsauczsmzbogfoajmgywhqpshcmuyutmhecytttzxleppeemcubmbevkxutmidbxggashtcxejqmwxchpirzsgirexytbdimtuqsvbicnrmbbywodghfbzjljjflqmyroyqlbrgedqfjyhpbhljjijwhzzeelubjyjwkiajypcnpxpauklyqipkynkxjeimtdbyhgzkmgyqfijsgvnsrtijstntijwtxmshwplywnjghpnddpjndofljdsljhffycqwtmlkbaoantbewqprmaliqwuqcfokxchxretdsrxlenkxcvdqedrhlyybywzdttkeffbrtrewimhxlbozonbauldmwujsjdlvomhirzvtbxsokgzrmoldhdzjhyxdcmqfciqmcslmvybssyxoholsewmtfhsglfjusgvuxhciosmaykiyqqiahijawgkivfpqkaovdwjkddxkoyyfaqrpjdeullffgyvjtvxquzasxrsaqtjudmljhttugettdocxshrvtjvekmeicpbdrfbfxipodjfthhbmnvqxouijepdomsczdjqtuiiaxcpvwucyesukqfkifpudnjfcrdbpwzmvxpclbxaqrinpfxrxtewmbtttqfdzlspohrmvqkahcspekxefaghpeygadxjyxogoginnarmzwqfiwmkbabxenaelxldfuovnwgdnfhntiadrenifmqohokgkqmezvzumnzitlsphlcprlsvcgavlofhxzmbwourhqyiysojuqpyynzotgawbkvcuqpobyjcllvwtcyiyzpfbzauaiwsobgdpxidnvxjzfnhgmbcmeuxqqdbazrokkjsyaasukaksgzmjgtrqtzfrxmfynztxetcnoeibxbxocywurowysxltaxcfdzdjoxoomsuhszpszenncawncmzicybazcrkeykxiwzpczzhpbkuingzrhageuafjxperxkpgokownuloysqmjfswvygkorgslvyfvvgvpulzfqrnkzmclqgxzbycgwqrbhysouymerhpmbectlttmdwmooemajxmubjzetjglgvlbvcqlqnsnrlhcxzttkozjsomwinghmupqzijlbuwwuxxsymzqyfrhokaysemjdhdmxnrgbmatifsehwoafpckljskvqhcsectgyiojzvasrcmbprcgpbonoolfggzggjaxobixhjqyzckwmzlmwpykvbghorgndrrkmprckqhlifspapubwapzbqcmgluorxidnteoxigvipwjvwjldbukbnyaxsyxrfjcldjbfejqkzulyufetbqbissosefgqmbmyxtdsvpqcqntxkeafmzvnptxuoxzbbtgutpoiaxsqfywvsqlwkueumyqlrsrweoidckavjxnlkaoruzygaxmxpgctxscbptdcxkcqmgjyozcndwiuonfbzxeyrldktosnnksefcauxjbmozgaarxlqexucurtquuvxjeegihoylgpysgpdjdcyklhhhasfkqwscmblofpstsjpkgnunzqdfzbrdklqrzxkkgopupcmecfqihguhfzvgbggajzuvyzegefykiwdgzpbazjkvadyazlvadrppmddbpetmgtrwheizdmsgcfpzttkwfvmjszfzfsnvjnniytcmjtmewqevcbtipabnweshioavxiounxyikkkkdtlakyoiuazmlqltdymhutfkpuuvdvbqvznpatsyvnblkedlmjepvqcjyzrcelkwembwxoaorqyuikfrpjurpdvzgqhhkmfkhllqcndjevrcvkqrhfwjtbxibyxagvxnvgiowemfgqctugeisifchqzcbmqrwzaljvahxkgedprmeugfgqrvhjvxcremabfakmflehjjvfqpmqxmsnbufflgtbjajnznzgbkbwmiwuszpgzcknjbwsnzrbdnxqjwggblklctptebttsglmxknemkagaggevxflhixgyrewbbpcfuvupytjcxuqjhfjelvcjrfqxgbfsnskcxnatlfidxbifgxdxrbahjgjyhmomzmawyhlmzpjdnsffachziucfwbqjqgyiozcpodbnayzpomufzmzuzpslwyolfaevobqfnoaqnvkerfoacpkrhisohsokmriauxrtgajetlajgvpeyudxxebxkujlkksblvxlbvdreujpgttvmuphjwvfzkpjlqkifzlwmaobohddxjnrjrftpqxbrnibidtlijsupbhdlltzstcpjrfluxcxdtejvthydbcxjdmxxbsxnmhcnyciysolasevoiarhdswlcijeidhfngyesvidrenljofkqezdyrtlfrlaxlnoiwevrzxqjmfgzrqgewrhhmcqhjbqntmicdhussjgypxahhkngnoadzxrexmoqlfvgzgybkifllliaidvxgtnullvqdtafrnvwjqgbeccixejqrydsvgralpsazhpojmbgvykznyxsatvbrrhaoydynymsncjotsovigqxjigjghrggofnpbtforragyisieecydnilsgblsycylbjviqnsvcxxrnsgvroqyfewlfssvitzblcuiduhwfrrvoirfdlqfajajmsdgjmuhhibngjxdgutjffwcxffshnrwfzhzovrtqhrylqdtmbiwiaehebztzvghhkqpashohhaocapgdxizmpaepjgiofqpwmctdeszjhtreaiibxwehvgwvhdglehlsmcuopdkhhnbryeqcqvxbsaceizahoijmbrbkdehvdfbmyuecjmkxmsksskwhlbvvrfgllvdmniwgsfxzdzmtenfcslqwbuekwrjuyvdkljyrvcjofqxotfeliqiiyxatzfslfundzxxmaepuyzjgojbajmwftizfgatfuwomppxjgxkuvygbxeyxapxfyzeavtuhxpjbigmmneuilejicgkwilpjcmhrellgvmunlpndkjgcbkbskodvyxevnmprkrxhizxsknrwpztrhlkoxtnqwtsbbuvaiypdlcikogyylioegzpibfqaqmnkvrzkjaqldchwpuuuyzvryzefulkquahtnfpybaupfiybyleuljobirfzorhopklqlnvamkuryweiidpsdxktrucmfvfiidoetecryrmckjdecavlbfsoiktqhnaaezrapjojdjcnxsxbpsvsrutukdersxeobhajxqiutysuvjrcjbisldxsicmnussebdvaggvhqptnzrbmusptnunfpuoqqpcylttfomgngxrwyjhtlyotxfnqdcbwstmqpcfjwcxjykczxczdjlpwgrkmqrvkowprovtvnlexpjqafcmkczkkqnzcrrusyxdviedizexmwvhqxwatesdfzqcczxiysdgvzmcemxnmmbyflcbqpdarvohhfphfcmktxlazvwxihkwxfkpukjwgasgfcwjwsjezaiyynrmyhnuhsipcaivczffigajddeqtuhnljpnqptwxvjwjjgfbhfjvvmvzgxcsatklnmeamertkfckzsqjhovgfklackhygzqypygvgjjqqmuqcxniqrtmvcijjwukjdsuqxcemgptxjgvvtgclrikrvtpkycvximbbbzhnepruqsgxchmvcaezrvwwevcnurqadulfgttzzgcqaugwbcxunljvpzcrovitkyfjrxkefzleubtpiiaminmpinegftbbxocuqfntovfcllrgmwaxmqupyargnrxtkultdcqscyuegbfwvxwsczhlzkqoeiaictihlwfxqcbfhcyqnygxtjmobsxrvngiiyhkrrlrzjwfwsejsntmxdznewatflcutixyibmtnbaaudtcebvkqwlcdfgvyqayzmqtxjfyqkchzbqycygybhomoxfplgnexvgsfvjupdctmgnpqkwzkgogblubtedtmvwcdlthrxsudajtbgtbtfqwjdeusxnxjzukbdkyzyzchvqmjigaagiswezsuybkcwqrazvkxatarjjxrnkjcznaohuhmrpsxvyrgancbjgubxpgbhwkevwuaafwfmrvgkaafxlpvixogxtsfegpsxbulvzktmijtaqtnrhidocpaghblczvnkhrpfavxykvoyhasnzyxddzpgcozmcetvbafjahgilhjqsjpaytjjkqorxsjzcgxlkttdvjwdtdkvrcaydeyrtmlxaepywgbdtgvrxdzoiicgsurtwmntlogrpdfafawxvdaofjphdpgeekdzzpwkmrzusbhhygdcisqtqnmqomnxfcthznrufbyyoostjskhpxajejhthhsfdudusynsarwefdkjfkhrxtcyaqlnpacemxwlyhrtsqbqllwyhowgglldazwsnhrtpspeqhcrqlshrqrfxqdtofmggigkbgkbipofulucygwfxqsitkyqchhqvwpuqiwwxrsldzqastyjrjhkpiqiwmzvuzieqadplnlbywgnydkxuyllsvqmujxhqtujlvklcwubvcmruvxqlbnrrrqhzpgoedmhorsojliochphlkgyleycxswsxkolbihqpapzmbujoukuxwuywxiffagknrtkysjcnemhsevcdokufghquxekshaunfzrfedzqsxxkesqeupajboeaxjkytmuqnmqvndsbkkqrwyabwheddgvzmnycctlltzkxzlfdttaxypslttupmjbgpvvjlatgvorsdlorfoafzcfnhgdpgeugfdxpcfpjamunkheychqyprwgdwtiraehbuebisaoxsmhjgwmivdctburuhwnsidayndnzkivpwzylxekczbrxkbubadcflnzdglwflzveijmvszgkekzcdrewamgzdneimjrzzlmxbijupoxjimjpfrxievzqdcyvfebhurxsvldgyjbxouralgzydbdhdwminxvmvdoqewcrkvmlsenomtuxmswdjnaqfjkfkorhrkugtmuiloduwnqflzirkojdtyrqzjscsmkhfhzmqbpahelmwptekvzwksuefgitxrxgxagtuahkvtxf"); + sb.append( + "jukwmfosarzlfwmqxdyulveuxspmdeecfrluxtfghfkkvvlfjtomfjtncrlxwpaftlhjymwilmxgnwjmnsqqhyedshkbitfqnrrckvvmvfyopdyanejnngimyeetmgbugeatobvncuegxqouscdlplxbzgavhacqnajqhmjowdqttsfvrztpgwnovjjqdpzreekzbjbfnrdqxswbgspkqxjpcntvchfdlfntapapdzjmwxncxbgbmnzclkukcyqikdxqmaqasxokkkrywtlhvoftnlzkzurclspxxersbzctwnopcqqiyuildhdubntsjftotbukmuohjsexxklcobztccjgfenjmpgazexhcmvcqtdiaaodpswoksvtsvbfrwcqtupwckajxqcqrdrahcygrphjnyherwurspdodaogpaqnrpfgmtdikiupkzsnzdczfrnfmxzdgliauaquzrlvvhcotgtwkwpkinaagubtjwnclvbypoiiroyidjdmmttfwnoqezoywwcqwhhoidbemjogyiuklygkxkvailvteknynejieechgzvkwbjjirkoyyoosmbcboqdghjklrktieovhrlugccyjpdhgnqnnahaqzyrzsrviauidrlrzbdgcmudqkmcmcgaavlaylltohyjuanaxlvciwktxiiluyegiocizbrbdotwdzilhlbjqsasweuefredgsvqwqczffwrdcdncdixmfjapsxbamokmvrgjvlxfdjlurmckuxwfzsgtqtfoogcvdrjymblanmouatxwnvkgcciycxxcgqljeryfhqlxajgqdiqjgvzcqphkxhcznsduvizaiqjlyyapesqtrbwdzshwvxqemmbhtaqptemstejumuhvhathpzhkrusfflbobqqmajoyihtmtxnbzyqzmpygmobkxvdtqojevipijzjaykxvxnyxqxlplwbsdofijfyxgqbfgiwsrcxyrakwepydtqoildtghwbsgyvffgfgtkmwkmcvdwkonfkpahpmuwkfhebukymiuxrphjrulhgyvimqrrqgdkryoraaxvngbskodjeiscpmpwjtzrjylonzxcolovnapzozaavhyffjbxnfknkjbhzbvrjrhvdjguvjiekxhugnjzrnahcatktyrklgftjlcjabjiyyjzehfltyiuaxxxcmahotxxgnxwagjsjmnqgblmvcfpxtedprndbjjicrczuiijsulsvthvbcpfaiqjdbajxuabuviagckvvdiskmctyxloufkfcqecqdqqkgmhsjgoiajizvooynkymmneaetgqwwxcwbeypairndfzzxfzgccntnqvgcrfofzjlboqjfzcdnqzqwnhkkcbbbevpzlzeleyliaeyjbjqsrtdhiklhfnedukkvdqtgbcnrjoatsoziaxtqyqsmqzrxlslamuvmuhtgrcgdrbdmhkcredzflzqhcwjbdqmktievqnsinjuvyyjtzsdzlmvbshjpwvdwtreesyhdsbaiymsmwowluxtiktratimezgogdhyhrpchrwruqqmqdtoczgyfumapuwrkxezsslphzigqjqfvtgzoeetrzdtogyzlecohqonokdfesqevpcsfhoqfqfohzmhtisecmmvwqpfohoybtyxrxpxgdrzcfytulveeixivlbqsmqckoffavhlobwghgmgnortogmsufjcmjcnsxbfetzdxctmljicnbgrbejhprrvstrnywgtylakccanejavwsvhioxdewxpqhsurglposwnqmbmlmweebxgjupttirhuqtfuxzwdglqtilnrsryfbtxsskylomvshogjxqzdemnelkobkaxtqnctdeugzozkggwsiwyurbqaveylitopevhycrwgyeaomusifztkeyuuuqvzwxbkleyvhdjiicmovjazlbtupqxacefbyrpmxgshaoutphjbxgrqzwlcxkeotmwuqcpgksnvmbjydnpkcyuojtucfwzxtrnyjcjdpfdcdolheoaobdprzywrinibwnfhzlpxezqgwkjxzppnlsyevsytkfaynhhttourtinsjdeayucofyzjszuequhtsrxcvcovwlvwqtabeqrptvlaxndeecpszkjuenhvhwklpyglxiosjgaljozahhcgetozvejkeicsqfcarstffqibntisojujnxwmdshtgtserioxkixdtwqgkvowkqxcvfvizrvprxqwrdrwcnrhhjkzuppnizwfosfjoxuehsjcrilcgnwrjhqurtrhbnwxyfchkncnujheltjmqbggcxbfvpdedicqgmklljtqkmidlamwtrvvimixvrvlhqtyuapecywlegysszmepbblznyedqwbcedgcrmgdnsocljnthtzizyyrqdsnmjyizhkciolrhuryhqjdmlqggnnikxbxjphvugloqncbqblbfdzcgeplvmtulvnkmbklfwyaonvoyvfjnlhmcbjwuczpvyoivdzagyyixlyxslporoebsxiwtzebadyvidvapzukrvurzurhjeyuvosrgtmmsvwtxklkyprxkbegoyqhhnzjsufsdmwqkxzlbxmosdriaiirmwpwepovnenlmosqectpbphhyoqtfkfvfetlcugxiorkiwbfivjdnyntnkryrqcfdxoxzsrmmyokvtibrhizoscejdgyewcglxdufikekhafxiigpivjmljfhoztmpbkixhhtbnwhvyldvgiixnoqhcjynnviazdgxlxwniedycvulyrujjrkewnqdtdiysbydnakesamngfdyxfrrvnfomyokmchucklzmiuyizhawhonpzuzipzgdixzpbncohsrtgoiivhfssfjcouphwghynyishfysslbwtzeugafpohajeejuvmzjgufqwguabavxiwmzplrfanqxcqxvcnywhbskonmqcfqckcilvmyoaxwcravdxtgisulhsmvnxcjtthbgqaqusgsroiyhxcgrrqaiagkxhddziknjeepkxhnxldzchvpmhfaraivsbhylkcwpztayvslxejqjcvhrprfjxliyxfutpmpsyripkusvdmfmrufsnqmltiiaqbducvjtxattbjtfeokehauqiexvnglytyhkbsojlkxiwqssahbtrieuzqbtcbhuspsjrzkhwptsniqqilvreezhadxqtiwvhqlakqnqdprjpamotpvbczckuzairvacwppnpqwaqkdrrghzksvshbewkrrofocaxbmbohhbueuphsugjirsfdvngiuozjrwcmacoxmaheuriqudyeviqwhomljhrkwzngwbmioncpaaumcoxagtevwyuiivoqzelnuvztyvujcmgdikgkpbalfebyfxtwflfprpzayxxolbirqeylhfpowgmykgxtdozthehegjluuelfhqxtcpmnzzqllixocnssvyajtcokgxjpazzdhiktlnfqwvyrxjyylxdrwzphnvoiqrorclgwydmsiwejocugvyszvbmrjdanrbyrhzkhevtbxamwcsvzmulafkqhmcbfavupcdxruyqacloairewufgrfycyzkzgudoldechygfzysggxpdymccafyqugaxmdffpagrwbyaltkkjwvswlahrsnjtgxylxewoogwkmdpjnidmsgltkxyuhlmpqizhyvokylhwxrbfnugdezshwubvcyjyflgmpgtpmxllekdhkoochienmblimygrvmtwhphcgydzcovbnpulqxrlokzhwzivayjrvnvsjpzswvxqwmcnxnrzghfmrkmsstsjmvmfbobcrbqupezztlthafpmutruciffwakolxmdasrlcrvxbvtzwharlwigjfvqmzgsggsukneclnvehwemngknyssoyctirgjpopgliwfggwomfwlvdrfszojpgqdzzoiihyjrzatdsfgtwsoviapvrmgazbuxtokyqdwgywvusffkrmmoantgwzemgkdxkaajksqciacentgcowlvnokmfaosomtztwvqubqrlhfupgosqjdeumddsqbtojfghdbgsktmychezlfylydmcktajmqqvvrdcricayydjwwmidqjkzewvbjzjxfedlpjkmidpuqpcnstrmuwonzmcfojvatxyqztqgoefpihxcvplrlddioqnhoszrcaguhvpxmslpcpncwraanbumjqsdaddtcafvqfvgbjqrwmdbehwkskceyediewxiknobricmxesxdyyanhydlnksufjorbvugghzrvfybpdtakckmzwgreehyujmhetgexuutgtikpcqpwewaymgvxohdvvnsdfagkxkmhrtnfhcejjgzgxenlovijywafertsuhkbkbkgxesilppvxztxgzryzfhybpyljkihzpcbcdrpogzckttcyhkgbabzexazpebcvkzbtmrexvfqlwctwoydnslcpnjodveoircajiqppvikuckfwbefixkywjsmfsxghvpouifvkmcoypnhwpcfyoxfxpoexiklsmpcpypqfbfnczdfuihjhicsirgfkvfmutiasscgohkgiwdqjcadfljiujlklezpgkrhdudyjmssrstgxkeaenclountoposdxzyjefjelwppggyookpahmklxnoddcqquycgifhzgfjqbegoizsmjkvhztqgoahdhpbraybthxomogaskqvwnarcsotyghhfjrteqemzdpubhnbmzojmlwgfnurpyagrhderrcahwmwxwbqgwbczqowkwiiovmuigeencoapbhrwpfkzeozkrdgwqjeyqnbzceuljiqplovwldogcinbvlozufqvczviqskedieercirmcodyznkaofdbmlcomixgpphxperojauseeqpmkewhbrrfwvdopuphymvpcrgmzktqvftlgueiueokloafixtnfaocqvlierstkyizeyysmdrtufyqxtuswrkpinzupbonzhavbdblpebmltftkjgkslllnvqsgpswpimbyvmnkvnixsyiddmmcncskpunpxqzqxhoirsrwowgjwczpatgzirrmlqidwdatngbdmcdgtylkxuvbrjfdlstklhobnndutwwhljnvqvnjjrofodggladagbrkjzqrmriaqaddnswwdrxqbtplpnsenayecvbnkrhtvngpmqgfasyxqfsyfydkvxtiwibvlegipvnnzgfngmkazuxlslzycjmreqyyepgmvjsezrpdrbznfylmytqflztfrpmekxwsyhpzgfatrjhfsplrbhbryevjuaknuiswmogcgtzuhixkmfubmdttyhtnyoudhkymxvurmkibxczutuitbneosowhumpudnwrazjdcldtkhytrvegerjzzzgiicgnebmeigcdcvalnwmhcxwumjqqdjolhilbsofvkmwqesfnaxktuoysnehmqtqurzaekibyiewetqmmlcjzzsmgocvougagsdqajbpwcqjpfkmlenmhehzferqwlkuiszfeoqazgvsqityumhvfwuzrwamgcxlyrxryfjiwrahsekrvlgfrgnmbgxnxuimsoqzngngoeryowuyfkccunnspjtqrggvvqippmvwgxwvqlomivuyblzrbfubwqvakjntkwzkneqkzezfqrtiieujlhvfenhzckziboskymcugrxegmfrgkfboancejrnhgftulhqaewrwwotyiotdtrabhikoyhxkrmaeyfvisobxpwxdsgjzabrfdalxrkymcxjhpcsinowayjivreqqbadlnbbecafiuuhnkqtdienwajsizwkzsewykxadvotabyjkxjbgpixueivqtylobwyusyzhjjlcjfofxkfamhjviqbnceqbgycfgzmplucsenvyiebpsjqxgfyrxaagxeqberczpayhzukdtqydlmvdlbjndlpyjlqzndtdzvhveqcdamirleyoaitescsmevmywomeivougcpiaecrdbyihmzkblvxdhugoqsojxzctaqkslvrkalnxrhssjzsisvdaydcqojagviupvkkpymrgypdbfxntfvmjnmtyfolxqovjhsphnhtbmmzsldlenoyljszcyjhpzvdjktnmxulsdvflwtdjxfkkwgnvrcbxtvcoqwspzfyalnvzyffpzekdsyoleveblmgqugbfybkduvinnoaevxaouwxpfygxinkmkbnlavqwakegzmnfncpjtsdilzncbnmuycongjaaqbryqwzahunyksdaqgmtvwunylreyzhlexevbsihuvlvbhkxiuxpbrghojwftuxdhykzsqvshtxkangywmftkkdqwexkqzrjsmbyipdnhujoimyrvzzupjfkdzletjngwhknfkdbsrtnludlyqztdnnmoaahemrfpzequfhvkqlkusoigfjdgqbrpaljoimicfhqwdqzqyexssvibhegivslwtkdzphxvjsdfsdfjofdorhofjdgvahmvzdspcpmmsqmskivkvclhvnrcnrmbyjqltfmxctjlfkgfqhivjkmxrweibmhuplkhqbuytnowgayijvvsqcknxfzrjtsinomhhqkpwbciegrhpybhoirgfyccnysuorkuutoitybcbjlzwmefshacstljwafahmghyutkkljtgwdrohzuwaqydkehguzdopbmpoyptcqpmwohqzvjobwsohrmmgpbnspgcrebngygyunkhqfvioydubsmsbntjwwkvvgwtgyzwkphypvtvqovxpqstduabsmgokfhhmjoqlxeingvkruarczocqfesenvlbeutgicqrzjrglazyphlzbzrvuvpsqrhqhepskaeuktveiupvdsekzbyzhltwesffkybpxmfbwqdjmuvirycwpumupzfarixtddifkoqsjiskwwzmtxdubyfgbzpcgxsegdhxaoqyfhmwoqqybuejjbgdmdsfixnxajjhksycshkgwsaypbgpvlikilbqfijrlwjwvxzbqrghwfslmacxrqibflsjcqhkosrnzihyyocmpqvejqhsjakbfsonupigktivbyxnrivelijtqcsledcniwgxsuyczizwxbthpnvoqvddzsjhfystmxmxtwyanhghaoeqndavtdzsmpsglqgnxxzslfcekwyitdeqsitickuksczllffqgkfcflgpojxnxwbommkoxygaihgtseqgymkauedhhdscoilrdtxjubltcgiipcifmrkugazrejanglkjjyagrelfestxworkokiqvvsudhmhndbmglfgoxwhklcispkthvmkdqcbhjhmleaceugihmkhvfygoggbutlmgnenodevrmpskjupsxlhfndhkeyfbdnyljidfyosveekstxlwkmssitwspkzfnxznjrkxaztbkuhqhyqazimnysgczrmmdtwhgojaxlujkgqvmpyncbuumtwnjqzmzgoykoxsjqdjpozkxjsyvxncomgjetrctgpfpmkbjlyjmsqguozttzbcgamsriigaeavtzjtpyaszygndvzpkpsioqpxetpomzlbozlnbevqkgpdjddlunhvhgwfopnmfoxlkturcwxtepyixfuyrdlfmyjuzatscfmnupujeruzxgzeezsejbrjkhakpldzfaesvgrkkanaqxplzzkfvoqcxzbvlbwptwqrnkedpwahlegluqncbxvkqpsymdppvdyvlvmzcfyqudpgwrbnweyoyefrdqfbfirhsbenaazsjwwjpytsvqmfuvozdoqwoqblodsdwjbpsjrctavpklucalzoepbfuwknbdryfjsmqewzbijmirphsjquzphoiczvfssxymyfxopywzwsvxjhgtvxuofzenvvyodryhepnfibfnqevpxucajvjyppnmjqgledgbfcttanpliwfogzqkevwwdbgjhdcdnaefnviylhbgwfjredvpxibqpubuqrvqqmvvjsubgguurnpvklbrumjtrtgthpfrucnbhvvbwkkwazrxmkflkkpkhekdqcftzsuxykgcmdzkdlqjegrzlffvkedbxyeskebkmqxhwunqkqutjifpsohgpnewwiueezwtoolysisohbdcpcxvpegqclxbsftwgcwffdqimutalxmyxefgrjonyuajjlnhaeytnldbktkfypsveagstcumvgldnpzzfhzyxfhlzjdxgyvvizkhclahrdhrjoybshuxvmatdqpbrmzmdebkmsntvtgziifmgqamoontxhngayebvjbtcdjfcssycztmfnfnwsyokysvtxenuthygpovyywdujwwpagfcjwdgylkksffmgaonhwtecprfqbmryaqduhwhsmkrtekcriqvugxnntucxdjianfubdetqrizzsoyfxpilyjygrzngkmvoanwflamknipfoftzwilshropdizoydlexekfwpxoxkogrclvrsqvaxvfrdtrrkwngwqvbjexwlptltoubexpdljsmxgbtxvrqwczkpsjidzxrstgketyzhhygsjncjzzwjymhrqxgyobckhpeprdpdaxqrbshtqvcegppirmofsjyppgqsfojkfvhphvhzbrcshqszjvgsffygopxauviikvpdopfuafbaormmtlnnaxaxundqpaddqhrsmrmupixmpqqjmyegymzwucodyknczxuvwalsvyahutvkvmybilsmfooudzwqnrljwdymunlhfoeprzzwyyayxzdlgmxnntrtfjzsfjgqazeuyxnmiiulhthmipwhqjuysqyiykfsqqhhvpnbuntpbtbxfkuhquorlkawzxfpaxhpmhpevwulkellzlrgrmqdbuhepdgsdcgqcgjvetlikyfkmzepiowwcnslpdlibymaejywxytjkxhmlpxxbrmolftyetmyesvlkczkjccpcutialrdzqvhhrebhoznbllblcymioicnxnhpipdnzxoaencxwaefagtuglfnwhyzhbykxggrwbkrjzbyrkgruuxxvyehrypbsppevdkpxynnrqosvdkdtqkvoxkioepggpdrbbvbndpddsvhqlygrvljscgxrsbpugvucbvzlpetiscwqbdddrokhkemvnoubgqcxxcgeuvqjibstrnvxjtdsdpmopoufzhgnferklfnidcxfrefwezoryequyxirdvcbvtzzbbylrtoybcnwwzvlqbonecqawkritkrqsnetozweqawzduidqkiftcvedehyxoaoohgwsbjqrhviiddmqgbhkduqymhwgkzaflxfooffmrzajblvpppemctkyngeoywmrqisfvhflioaktmrlrynxdqmcfssfeihjqyotdubfocnpuhxhnjlpwtghnrdxsllsnobdnjfhxnfsviuffltxvwfwzaqgszbchzvwlcjqgmmukoqcnupkisjeuxvcadqseveupqfdtnvnqamwonukyjxoprobkaszzxcerfxvzyfpvtthkfxlcsytspedkvsaqjjacpfyprwzvtkdyxtebnovbeffhgwbtyebsorzoblninclapaxuckjnedrzplkdzngkwaweudfqdkazphrbhkfjqjwiufsqpwytlnlfwvwmhasbuquipiyincnqrfghzyjcbosqwjdnduqwxbptopcncmuyuvuluxkrnjflwmcjxnjvvxxkmjswsiokepnfhcsyhjjrzvmawhvnpijnzhlcbyelgurpzvzczxluvofakjlpjqdazkloqvrglrndkvlynzirdoufkazpzqooijqrhtzvodwqgrhonqxtnthxxgfvthplmpagwpvsswcxwdwevndziolwhohefqqeljmsgixdvawxnkychxlcbovhnldccwobgkdmfmjlgfoioofjozevopxxadvpxfelbevdntuayvqutpthyobxtfqdgkpxugynlwppydqswtrmwahvpoucgnfyfqtktfnrcbqsmwtaiwhmvnkynhvmqoefnnofmmiyayhodbvkoifrfyesovauwycxeddiotlrefayyinrugjawaykhhmpuyzrnwnyuqoyhbbeddxofnpiymdpyjuyiorlurastwkdehlxwwgbbzrgnummzdfvemgmuptalswulnaujzlwduftkxoutgdrtcyknlgliebgyshivtduciaoanoaxiabdrizlnxlqxogahxaihezjfxewccrbrritlhkuxpfuogulmtlyrlukmuikcrlrjtknlzowwjtuqwebhubpedjbqhroyngpdgmldnrcvnojyfmoatmusxknnjmiqcmkyzflumjprtjyhbznklvswnmdwfyhawlrdwmuvvfrsdqkhelrbvzgiquqnthvqgbudkuiynkrsesjyljiyftrrqzttujclmswgnrwpphgyqiolsqawupsalcpeeazujlklywtheqcmffmngdcnqfmloyjakfxjgkufrnhoubceqyvexkwizzmemqyjvmebbxocjlezvvuvbpoktbmoisirlgbalvxzmimvofsmutudwnyxzyoaybyryeevtysqtthgqeleybckitpctqllkuqczmtichxjkzlxiyxrxwogkxmrfyujrsagheptltqzdpdafoacvgtftfijgdzrwbvevrredxmjrjnaonfgdrpjybhvnwyruqkjsfjnlfffkmhhfxvdblrwrkzbdzrxqxdkqjyzihxzglrmxoyjgtcfciwkpxpnuxotrpyihriarftbjltfhsxmdddctecxecrctaztxcpikhgdbijxrjefakhotznwuarbzpektjdzjugrdrxrnmvozfpikxhkcijvvrupalevoxgduvdauxwrtqnjilimrllyuqvebnshkubifklpxluablyaffynwsycjltlgouvynuxgbjjtrrmmdiyotzzqbewjhthybzmsnocqsnemmlapyvxnteichbrsjlocpzosaljhwkmaeafigggtqnuhzdbwltkyliklzvxonwzstnjgjdbynyxqphbwzarhpyvzgnckqozykekyjlqlunjqzqrugglhgpfhpskjvlzlnjcvnxhpgcedmurzinifgempagtnopiawovgazarqyowjfttdlqyhmwtddcmjiwyssmstvdashlenxwukfhjxkywmkuzgudhpkoimfmiexryovwocvuabfwtkpnxoiovtgodmjmiudzwvkusiikdyxpdhxkozkvrugqlzlxzjxvujdzvxuwehkcgxotbwtibvsqqivamcvtdjqcfjfsjlazfcktknkkxysvroxvwntlgmkehvrolsewejdezivonklxkmsfazwpzjrhjpyxclgsjoiymkmfvbvvcikyfrerfiazskihcwfisjfarwwizwjsdmgrtqytyepyrssbpqkytankhwregkpezqscecootppashvavqcbexkuxvszopcctjuvgnqxeuhweplrgcradgyofxjyarpdcxrdpkoswzotmhgorwnabcftyrumeapnpaxiikeyzmnavsxztbipixtpxgrjvzjhbxxcfkwskgchuatxjavgscfdhgkcknckwpvbxhtfgiodmjkfjspogkzzvzouffvhhzuunmgongsqdhdtnhdnajzhkzfcynfnpovafpjtgphymvjffatpqklvuyftmudjfgurukytvwoywupgclnhrmhppnfmgpmbvojaapapieuenvqufejwusvekmpzvbvjqkxbaychtirlwhgnkwzqlskdgbptjclvtrjgvobxtclmqhufsrvrpswstcojnfvyqifzmmdywyzqkqvysmccqabayrlcknpwsjzpgfjnypbcxoenbregitxrcrzssdnofofeayvqhxoysmnnvrpiunvsustybgkulyymigvwwtoofemilcekywvwjspyfairtomvmnovteiwauvqcgtawtcuhoxcnihbxmsubdbsgrrggsxpnrsqeoojovdvgkqbnfrenzniijnameuwodvqvxyfbarcxyaedljfdqbndvzgtpdrgmytuqlqjjfejoztquzosjaxaoqryhnayapfnfrqytbxrqorfqxfecqulsyswokhhmpgxbtbvrshervzlfqqotgcbupcxarspfzrmygphdroneeitgngbikrdljvvjcsqzfggloqizpogweamagkbiosdgchpdvodceeujbfgwflwjrdgzwbpehpktbzssbknkluyeoylfzddxznohoofwbdtpdhjvjukjgrffvsflottcjaocukruqghbhouawksmvmpepnkavcfzaezvjdgxfihrnmceeimbwzftdmlgnufhumkspwirioxsevqqcvlbayxoqpqgvxnrvuredykcjxgwddkmapdkdfjllhwkudmkmzdgefcnnhvxrlrtatppbsfchheiukafirxmecigsqntxkktzoctauzqrpeitvwslkyzvczmcwarffdrpyzovckpixhsorjkkfeustspqdspdxxuyururyjcoflfrbproasycdwhsxseuzzewjtqsvpybarzjqikwowjcaslhkvemulrceetpttfiuixiyqwoyeukgdvpwdiyvaizwmdejxwuqxjrnfpvtyindfamjeyhmncugtcjkomhtwvmqqjzfeoegefzelxxsrtmydofmvfxrrsicseanewnckhbfuflclfktorjwjneixsshlwqldpwrnzysaiaoamtqhslkqcotxfeduzrtxvrxnnlgzoxuprhhznyeecpnbfmufqewwkvclfwzenfohfikvvfgpiviewiqxzpvkfpoclpaqtqngrcaegtxbgtwjgqvibsnakytqflxxxhkovlbfpyedriixifstprpotjvrchetaklpztwvlclfmoywjsbeejmjxszrcencxwwoenpgdkbkfgpguadvtznolaycrmxycembegxbqdgfbcpgicacgwxdmtvhzgmdgqrefplxcjmgienrcnugcqeflkxygjxtssyvbetqfbktmiftowyrwekwmoeewuainhoxfwxaxvcnbntuxfqnesxomdpddsvxncebrihrjpgrvvgoxzsmsdxletmogrqgnwsitcuokbvtqhixcbckrigxqubkoqeziwagyhmflapymwbbyydgunnzcnumufyghngaxhbbyzzovvgdiiaoihhilgjybwdcdporubzlwkhecgckzluibpnyidnvyapmluthypyzzvweiuazwsmfmjpqaczgvtuewiqodddvowpqwvksodeuiswwkozijvgbflvpfvsbwvdrpvutqoomugmfnbiyffmaaffikutcogyxghmyyeumvqyirtowtpdtixvxtjuwtbzjpsqxruhgesilljpbhmfjahinjivstoztqjvpypxnaaymwrmqauwkqlkkcmrjwcurxamrqxnjieodgwevgyixnjstiuorornedmxlcifrlaklsokmwdolxcxrmxfdcrvcujdaskfjxaigmptmjifpfolxbjiygvmrsmthsivpmhvdgmiwyepuwjimqchupkdfcsfunwnfvdcrwajobndffsjyoiyplmdwctdxtbctdqmkcelpweozomdrkzfaaptotkbtansrmktunmnictbimfmmajgcfoaywqwictahujiselhlpqjtqxdrcudlxeedazjnxjrlyjljhehsdtozzzlkfriqioqncklkcceylhzqaommfisxktongltqoxqnmcfhwacxbpckqtojgurvjwligkbjoiyucoiiminujtcpddnrlzpqbddnpbgnvmboyjqvpabboxvckbwyftfmgpztadmzcxxrtozlwlsuudycnmksgfyzunhxwcjoyaarwyugvrkwcwjucnqlmvxyjlffgvvfnosvkdnscohceqfkfhtauuslpikucwopnogrdjsvphwhngoqoyvseifmtfmivkpplfovbwqkuxbkrxxrsviufvuazughlkfrvgdanjchrrmutflnsuutzvxxapsfszxkvyspcqzpqbwgzkfztblbppogbhyqtyicacmxfveddftxmwugonkphjiujmerqpkbnszohshdslgfaqgyhbzcwmsfqxiwivynzifktylioqurizoqoexczfkmdkvztokmyopbwdhhblzpczssagsrbupjotaiyryayznnopdtcwuirluhtdxkuekyglrfrtbocfaoxmkieenzvgdfxpndmpggtkqbsjsqrlttknqbhrjnhpujexrlyiaajheapfgydelttqbppnhczrurbbkwogvxchpiqvaxpmcllbjgqsmptsobrstqpegxiokjighhiekjpobsjcvdgwgvrehkgghkycehypenaldjqsxumxoffyxmcmjypjliegzixmkeyppvrulsiayypjlbeipbgdglyclkobxrorbelvwqhrzzbrljoksrxbjzodcaiowubdcleavtwdudvbvdjqfhioqzibdrdtyivuuylkfhnrygeojhobfhaumqxysqihnvrkydhfqrkiuxuohwvwbfezcmcbvseyknjkiylosyplsrthpanhtsnrjlkrgquxgkdrfalyjyttcurydbwrdtqxvlofdwrnxdphipuvmtsigdlxrotskzwrnjowolqxdogupbczjxyrizmxtrovwvfoosjfwyvhvufesgqpyioqzvywtanwpgzqcarxeztynjqwzgadhjqezjwhqxfqligfuucaotuaywctzkazfsfotpcwvnzvvguupbdrihrwtvfnifuajfiywbsytijlqoukjqmrabiohfvsejgcnzamhkhtqhoshmusqgfjmfohswfiieawhowxxcesvmgggvrpitljnmdvohnxburuhakrmecfbidisfjsczgoencflrxrbzednbqfcxomicdqwvqkjcikmaprlblrpzjubvrciyeozuwerfydzcnglsgeaurggtpfjrjllhbcpiilbdtsxrmfsbidfvqasxwgfnkgjdxyahbzrrvorblmqdqxatapjuhexbaywcumzwhpiuqsppindziqfuabmyaztnnrwndjcfgrzphwokvhzgmqgfevbktisygzhpeigganykuwxfdrtdpyfnbwxvwxpabynwsdmbvlcmajljpgviyturvkbpkmkjiagortolnnecsqmpsgkekdblclevhoovjpoqozcbkcliwidagwigkjnxgnzygbgyycbviiddurmqhcehiudskfblzimnmcfialnlklentlraxapipbyzsatqcidksbmbirsnovzigkyanevqntmfwdkufdbfxreyagwfcnrdlproxoxsdgvbchghzevooegbywijinzamcuulbhhdsafyracpnegwwtbrxxnessutevxdiwkrmbpykyjmbjhxkxsmfxijiklyqawxuivatggztouupfsuvswpeevuhoxddsovptobakgpgsddesaiffusfskmelnqiuwdhukqjyqmgecgzmyxhhcbodvpcwqhhknqdlctmtvjdfjprvdvbxpqjquswhngvbfugcgoggtqzxlgxtqcjvgbngjdflxhijruyevamaojodiednedinanbldwpqtwoyagfcxduwxuvhhbrnenbvkpldyrbqhmxjofccexozimvfoxftqcfadstvtniyytogoizqqskgnsxnjuvomreiphjlxihrltrxbiscthbdtditrkhxigzjanxgtwicwgtenohdbkynjutledpzyylxyyyupdjukqpwmiklfawksfrbaicnfmnnukuvqqaudpdccngotfrcozmelutudpscxljfxtrcfythbdvwyhyyszwkbzwffikyjlkfjwaoznsobgfcuylrwnrcbwdmulvkulzsmzpkrvydnxsjkyigghilsobfuajkriqrsvoqasydajzoduubhzhwnqqbbaksczewxhtwiomepxljkzopljypllluoxjsxmrfoshyifaidpziwxzcevzernpkdwopywfxsqwdtzvgdtpkdxggorxtvrdfjozptlchwamsytmcpdkcxnbdozybtdaqvetsztochwldhviqmzrjcisfqtnbvzuewkmssrbvkpiumsthyeyleqjajnqgwnkduchyoiqxmiwptczzpflyrmztacawupbprhkuvmimpfydiqlhlhstceexkgqxclbivtysvtmapuxbvkqfzwzpgkkxkarfzwmitrxstfzhxouzoheccwkltcnuhmcjwtywxyzyojzacgmqpvdiouavbzfbtxbfdgypuxrkagzfshwawvrjgsvrbermfeasbcrlswezwgmeajjwbfhgcenzaplnuhsirlypypqstugigzkwagwakxcsozrezhgoxtkuxxsoqolcrmsotcabrxrmkybvnzhzzbnmvmxlmpetgeqfbotmayvljlchixvrbdcuyjownqqttmrxjklicqcyetgklblopymehuwsyzhdmisojcuhirsqfpjbbjuhiacvuszfsglnckkykpfkvzfsgmpwdxpmsrqynosdydhinfhyklrptgioairglkqpcvasekpcjmpikqjtmvbkesejmlkzprqxnothnlmvspgjdklaryysczngazooycudnpipqfxyjwfzhyrimtwdxkqoefalbmdohqkbbbbolpsaetotvggdbyfezjljfxhwdvoasqqytlzvbojempzomoslaizvaigswnsyulyycfkqhxinnhrormlshjnuaatnscsyiwxpntzsspmdwsjrfecpdgrxqjqzioklqauouxnirkzotpxovhkuhywwzexsdsuylghworduuulfuhmfglbrwapgwddzlveywkwwkjmuxkrjzwkhfdgogoswqydzmmrzvfqlcscyqavyztqdfnvnymafbijudxqlmukivngboxawtfriehebnikontujssdabrdrzetwzdylewtpcimojbkgbtrclalfkiuyzegaqldfupephafeihwojytvhtzavapnbaupfqrcskzokzfhcjkffztdnffzhtlhothefuqrtvessccpalizpgrfqestzghmrtyvzeqdzalxxqbspzgkdvjdqpgbxrnrecvyobqpfszxcdcbynbffpvnmhhoepcwogzlndvtlxrtztralsxjgxvptjaybqdtzfrhkrgawoxijtnbcfxnupeluwzrnahohvtcdaqdlabkojiwcjgmvzkrqvsqchecuiyjftubcuukybjdhhwcrqfdzertyrzjfdmeywqclepshpvvxhaiyvickeaypdgazqvgpmrnbrnraffzlfvhiqzhjpzwjolpftadrupdcclclriqrjkktcyymmumlrcvemtlrexixjzdluewpuoeqdqbegndgphsweghovrspejqtzexfpuojxskvueijntpjmrapbukzombmllzletepqifuwteyvwabovosetskoerbpytwnqazkpxfpzmvucmmuianntkdobpvrppucwuqcnqwxskypeicfcvsmgpbulhnmtcejjlolprpnlhizfankasxrshtgdbgeqfkiidmrdkryjgfksagfeagdakgykgegakgkmipfvnykscrdjdxyzfksbrsjzcfmowtcipljgwjehskiemvyuwstrnnjhwzwcgmcpbapbjvdluwvvbsxdaqtdybjdcimmlkcckwiclwtsrsjjcjnotqkwpcehzacmjulvxkarhbeklugwlqqjrsophxlcrjdbdjaborfwdiqxfliuetbzubsykwdlxaqkqjwwitsexhbkosbgchgcczjqegsqwlvzjuuhunoqnwfhifyfyqugpybgggaqivlwmhnuthnpjbcvqeymyvsmwipmvivppyvupboaozjxxbppqhbelndbgroqqesuggyqefwwjlerlmkgihuteowuunwcdjeilryiszgcinrdrawhnjywhacmrpxudxtwqcqdruwdiotnqtlttrqgufdajrqxuqrrzjcxojcyvnwvhgeyxwhurzaqvtcjfpkouwpqyyuuedijyusvmbljgqfusrtfkjhjkbyhlhcrljfrycwrclqfcgwojhiskfqmnnkbsibklzmaucbnwqiugixzvcfvkpopfiadfwstytmiykmtdnszelatadmdfmesvelirzdmtaofugmdkguuqfcqqctecpkscvwecidbmqjppthuoadutpcwgynjpfxvcudopaslyicaujhbeixussyqkjlklkyanuazimwozqwnhgpqkmrwpshamzfsuifpfxrprpcxbalbtqcuqhnvsdttiltnpdxotwyvolkepkgyciuecanpyzqtocelcmpagqkhjtbodevuaijrxnutckancepxvtxlwsbtlwozbyphjgxqzqdfhifgcxhselzfzvaqguzfigrfcnxvqfowgbemsmgglhehfmviwahqdiyoaaeryhgzwgajaubgjxiwqozbjsyitbhcoiulchswwakxhmwapvizjruthliewmnbgmcfqispkztnesgfvinbdvgawzgelnahfipfdkepobeemzdnsjuvvfhpakhhjmqhywykubfxyjudwgjlfopxiurycxzrgbufaqjajleucabpmhpbcntmwwueegvwfteanwtvupndsbjfrchxmovlttstmiedrlzqgmzpakfgzwmccwvltoclwbhrutmaisflvfaupgcboidnbqzdjttwydogiuhrbagnqrqhddmzwmkglbngpvxphwcqfckpxrwjybmjlrkpiojjpshjocpzbldwjrdehjzolrryulcehfpwdodlsbtwmucnquvcrkcbeiuutsvaxkbunaosqhejrqwupqysftcztgwfleuhvnwvdkefcicvjyeetvldvxjknqvnmtrtlhreqyturditgnmnjfldiilkkhpslzbjezjgpiarlpposmtrzsxpiffctfismcpnoensqmistbqpfxudjuvvknvsmqnbkdccruxzpzrvgjutaaybsxfhzuikqxpfljxapxlcrqjroxsplffzimlfpijhbkcetlahtoyvbziewjfhfmrpgfvxhuxftepehhsibysgafnkeydguiczxksfsrnflgkubzcmatqcjpgpgyorlevvmbxxdstjfnyamoxjghiivdkdwxisiixxfdokpgjltqrezumrddqxhmeziqofqyiydgbeglkrahszbtadrouqcobjqvmoyinnozrqulvnnaaectsonptaohejxdlmhdoepmeienommlmhhofkjxbozrofsptivjejguycrdnrekpjiolnwxwhpulfrstgctavklxuswjhrybcqwhtcynjeszbapxzamwmcxkwvkbvacrllqxcfjcvbojhdmkpkhspuwvgnuconqmcxfqbbscknwnjamckrgstlbjwmgoveposnmfrrntqzkahayrvpsgtapxvuvfjrkiyvdpjbnhopbgalnacqoyqpgngldfwyvhshoieusyxkrrrgrtcrgjvgyceplkkyylabtbaymvpeexwlrnldxtmbxdixnbgxxguhjgyfealstwacxnkvhyqgxnaezmhnknzvgrucugyqqeqyjjwwlwkmqufhfdhurserfgyvdwccftagqxxuwruwvuhuuiwlapwxghtttwsgflyemscllzffhkeqghyyigxprdvbmhmxaaypsuhhtqxfcbvxhbhuvbovboibchjnljkjikmcpmrreisedgouilzwjjraevmqqmaedzhzrlnyzsmhebovmnrattepswivkexvdlujiccsbviwkzprdlhtnkvyrsjmuawrmzqzzfbgjqqifdmtwnfuyvgxsmxuwvvwivsmcolnxhdlisjbuxiajvelncdhjotxqeelvatguksqmapixjibpsfvaiwqfzdxyaxoupicdmuftliurkwhofudalzuauwcvxhghderbwvhxtmuogvrzasofphvxdfyqhkczfpgijuqvjfgnseuugareyyrbbsncrsrwhueguujwgzgvaclfaflnmspwhprpljuzehsujnehcojoishlrijqhbamwrswelnvjkcpdakiacbckmxzuaajpqsvurqvrsktdrcqumqpgqlwhmdxpuetbdekuzevhextznkiwnpohydgijtxgzqrnawvwwoldjxuedapfkdavpyoqxxdwujtvmxpusmpxicddwmiymmbjmksycsiyfnsyycnnaygxqfgwyeosohpmmpyfzwovfehykcsbmmrvthysqigdsentwjtcbmdamwwrvdullaqjdritttilxgszwyvggioohaalzwfdbwbkdximbqkjcranlcofxckstskvynehcdicsejmoyyhjzrbhezcoeghcsnhzmjarbvehkvmmnoiwpqxakeujbedsbmolemsfkybxfrdgzfcsiwohpkoqmtyktpwjnlnqjjacrmzrfnhnesdodrsdmipyflfuuyfsrqmabayhkohpeynszyewfjomutmxtkoltmtlvsignfampoksxczfryahbaxefacoamjqvanvtxqlxbumyussisgucgcwirydfvbbyqftgyopjnudpquwbfbhiijzxliffldqxxnoygmcckewsnkjphejyiycatsgunrygflwthxcvpdfbxwjnrtbawwghpexdihxztvyhpwhnmbqyhtaykzbfcbgjkcpokntawfyndhubcszdeqqqxvnaogepxdrmhtucwyxabzfuczzqnvoskcserucfvbagaxhroplxzsrzuapckaaqfpnklumvsvftiglemfiiwpcajzpidapjcqkejdglgkrecxuqyramkkevxjgrgkddvqavbzjwiwgpepyiacjwrmnynaiqvlpqkqsjwfzhbtrmovpuhjvhzqulhcicsjqbsmlkaocxisftlyzpsfogkhudrhjutvgxzwajwctlhwuqzsqglgunlxcctwxwwmyixbrtbqgamdkhepwzwslfirtwlvcpcvekgzoxohtulnlfgfxjokviosbvbthjsagwilphzsycnxaafsnzlprqgtednuvsazhjwyxsspupntscewefxlraereatwfmyohjnvamkzlqlmphjhsfthbouqsnxsxnsniluupoebtnzjwdnslakqpyvadqntcrneyijgqkcjjaliaqoaghgeyrcdgwqaanpbrnuyxllntxgxyrcbgmxhpekuyyphtpbcxdffgcvcpwhigovnamtetpkkjuvecbvugumcwrxaqnkhpgkdmduqvcschdobscpeonrmgaszgbwvuftetitnpdujkixfomstwrsgcfcbhpcjmjekrgjkloebwfahtgdqmjpiaylsbiquydvdkfqlkslrzelnsbiogxjpqqmbmceryuniwifgwerympjnvhyffzfoiayuqckepvonnstidyaqehtdytpahykplmtuxqrsleupnfkgzhbyithldahgptniukravictxmujcgcdtnzpqabrnsbptnffnrzomtqugdktivasxgmarfliafiaopjgajlateivvuyfokfrsgqpkyrolmyonytwswvyyrssytcgztolufbcieshvcykenadmpkgzgvowfkfkgafvuotbibrrhoporodvkwaygbreicdmvxdlzshndtpxtyftkcnuefxkktaxzrnxvbdxvkzfouhuzorbgurcyiocrloesuncxshhavwvlqvrxuikjwtzvrmjexdnlmnkimbvpiyccucmmmaubabtdpedxuktjplsmdavvzbdnzeixshrbaihumzwdtwviinetsqczrrnokzytucqioqkcvwcrqnadctiyuokdnovrlqnizqokfdhifxybnalayhogzdxdgmaetabgyktgshosogdpqicrvpfvkecyihtcltqzywrvshdozzwcpxmtkdmaxrtefiyuznoupsoihxsixgjftpnegtfkfrqwrfkashfgnxthjciwvujmxeaxmuywvolkcgvvpbhtnzwzjmraxpdrpuvdqhnnqgczwfpseixhksyewvgrfgmmqcvwqggtcbzcoekbedbqvvzgzudpclurbqojjzqfkyishrteqlokknnqaldpprrwafynxiontemeacgepecqjvgyzdzpmrjtzuohqlykwhtbbymuzlivjvgdtexiqdzqzpddkohirlpaxsmamansqxbugvtssoabmljsqgolbdwefvghyumjeugswldenxmqvvbetqqeplswfgxshvzgmrbvdvutpocadbxsuurbnyyruqrgmgffzgpuskhgjblhbyutmveafebgjwwcpyglpdrqwonmgpfwzrywqldxdxnjpvawcjppfkhjuoojrgufyremcosfksgnhrffovtqeotsiqlqhdiufxdxeqcoaitxbcpfmuuzgvzjsfhihetstesdysbpaedltqapzxogkppcvioyowqpqwpwkfmvyqrnlcmsufsywythjemexhvbfdpghryhwhdxstecympzaqezvdxjxzcwavfszorawwxcmdmsatmzrggiilftgwcludgjjnsksiefwhmwuprgbevqeuagmkhdlebvhhixuhwkvorippaxkgildbrmtywvndvbojpwcparpcsmylzpazfiqnhzyonjilgdppzwuwrnzxugbtwuzzqdzktjlbcsxadghxfeodfmtsopyutibuddxqidlsvvxuouygubrgrqeugkatfsesobpjmcztsrgcjeovrnxijvianjvwpayurpnxvyextbjcgmntwkzudcrniwoffjvqiobbmhllhiuftjeohletidmxfbaybsdchgxrjnihjefdzfvhfoncsxbhmmrhompkcehxxqbmqjuuhqrligwzpwgjrubyijvjbgvpafuwtfgungrftldyjfymhnmrtysylfmnkhiqzokgavzgdqdsjzvhhxzmqxpxisbjqcfbpdnyjczvdfxkcdqwqwtmcpxqkxgboegrldcrshmoaqrnizjsnsukrxyjskevaiebmkhlethryuxhjzgjalbphfthrzsvqlqzaahzekrnwflzaxjglkjuwkfunqbsazwzgcuqvzrgqqrqoriyqrgepefnqqvistejjlaiuoittgwkqubavqddjznretxhxqzhwstbvozyvuygflcpiqgjwvtxuaaofaekmvdzxgmydyxrfizvqhjggzhxriojzxkushjrhbttjzwcbxxtqwwzoyvpyfhzzwrnxokljyzsdowtnekrgwewsspdwvsmyxxcergxziydtjyeiabowbqjrlznxfchilplluoimfgxqlvyccbdqqitpaygtiidqkpwttfetveggylgztprwdmsrrmzmbsihnlivrwhqcbeghbqmxmfmphhzyasleehyvcgvbfawzazycmiqbdoylbkyrnvpzlbrycibkzvrcnoihlonfbikolalcwywmynksigvqexutcueceqcufaqbomgjngknvvxzmvxjevhcrgyzkudtmdxoekmsmqstktxaskjfkvfizjcbmvojvziccdsndczwufptaacxinvbbjirxklcciixolwhpzwxlreytcvhjaincwrmemwocfpmzxkhqyyazhjhmfqajxjmytbpdzozuxhsarwpespsfccncwihaihvabkjmtqumnqsjcdbesblktbgexvhtxrxddesqnsgavkieibzlszjkfhdlfehuoayxiqkkoqrvopcqccaxosrmstqdzvpenaguvblqdqnyarwdoqslrvbusbzeffnoaeosbzwdotnhviocrvwuauzwlqstbrvcycisidlqtonndhpdrajvalfleguxdsesndoqcwfdshtciudyyzxvwovbmxnlupirhyjblvvxixljibisylflupmogienfzzayfiukppkyhnqxqnshzoqafegxqmpmeqobpgtmyecfcajcbngkwrjgxggzxptazvofwehpfxfbxtbavrvainxqdrvrfpoxpmdkbakeirwdwiqeskioixyoepbhxfvuzohwrjxiasuwnjkjlrhcwfenwowfjblugcoyfbyviqteaajpctmqotkqxxsvtvtswttfuqbvdjcydcogqagtazhtlgmfrpsicdefmhtrlnjzzjjorxgmtjzgycjdizrtzxtyfhvpvfvwtqbcphiberqpoaitageckcwzjodxvphkwbxelvkfojkwaxyinjbobsinrtsjymvtqrmmpuocolacujbclodbmceriglhjijfxlfcklyupckthtukpigeckwuhfvnaztefmupqzhflzrsfladadcqbjgtqavbgnxgdgmlgytrhvylnhlrhlswxegfjdxtvaexkiumnpdfcgzpxfylvsgwujnuvowkihlzefgrruzfwkxiskufdhwxxajdcqsrdzxazthksxhhqqyggcthosalkoyktjvznihvyhgtdgoiuiwtemtidalpeeuadvvjjswktjjvffvfvwwezbtnqvlmrihglayfzeaejdgzedxukwbhxakblbmgzglpciccphvhqxiteyaxfouzknyerupiyvufvwyly"); + sb.append( + "lhjkwjxgwepbzzzujiyzsxvzrcvhohxlxuvxsvfrfhoxftsznstombqvzlvoafosfkoooaczpzdubdwwawmcsbfttycwoxenbpesysisqeemzewcsykuqamonkobbvkodvjpibmsjkajskagxndfeomswpfdcowjdhjmyhqxqjfngxttzutnedsermpumgkyuqckxmqsfqkvjzlshvdfnlfmskncnuxwpbpwvgvhspanwqbrxfgdgodpblxxprxwjankhelhwgtsomyupevwosskgjuejktnrezyxwyrjsfhqllxuhrbuzjqmbfrzuucasnqffoaekgnfilrquggrtoffsfqngttepuhmvjgqfzxgxfudinsufzokgvyxouzujqjjmwkhdzgibhgwgnnpapampzjdklpyhbepgbmnlfczncswbiihyebyuxfroalbnrbpenhiarkrkifldbninnaybietymosjyvgvftxmalceqxyfcscgiubtkmbzjymxxdujwepuasthnpkihpdjdnpxmlywwapzikvazuvgqscsfkvjtfulrdliblrbjapjocomdfccyivbjlrzqsodppbzxqlfleepjbbtpdvtvhlgtcvfomzezindcoqqefzixiofhhyxzhzkoczycigqnhfsiuqsdecqgyeatlgqbwhmoalryckmfdmunosclmqjfkjeabcqmbrjkhiltylpqpjdgolihwridqabdwqjjkodzwfbhfsngkjrlrizcckcfupblqcegnvazflennnzxryvqiockxjmktuedlcfmntvaiijvyaghivgdrjhsrzpneqoxuycgwyixuufkfunjptyjrqunydqhpavqcqgmeomcntwwsvmwqujbfcpywmdfuocruvcefcltkylqiyqvfgomwtrkzshlfhiohfcmjmdztsgngdxrjnwadamlcmstpqwwhimoakohanzloqvdvlavlnrqhqfgnxwpttajdyvwwmeioeudvjuynytazhxauydyxfmqtsretnnbfvsqfndilzcqqjaxabbxwbtgigsoezndzffsetvqfgupqpsisholkjwikrycxdmfpxcdkhegeqqquvibtcbzmoqbajtciucmjikyhjainrbkhgtoflyetdzxxctmqpmhrqgbnkgbzrheaurwkzkdftrbltropxavrgfpmcppdpsornpisrvtngnodnnxrepbhlmfhjltwvhwhcrnurofubzeojbbdfqtrgaeocljqeitdqwsnqsbenepnlvptmsdehrgbsfeuxknaiccardtmbriewodhjpljcuwxghscydrurkyhvrjiydvdpmbcpswqskpbboqrcduvhvnnyyiatuyxfhegexegojvydnytyxxikiltmxqoduimtpjrlkbqmiifqlssfqmrqakxmxdinxnnavwecwyttdlcxnyftlklmdqljgjeuetdnmdeiqpznrxamqydvfkaggjtdcjxsukgxlououwzpwahtbzdoqamzueqqnvffnnyjpxzqmkrbwfesadxiavyioxhzgwltbytqacueigbmcjcodnaptsmuffbfifwemdhzshnnlpiwnkanyfjibritvxawyurvfuxyppaqvxdvnfbtiqvijvrhexadckoaxwdkwcyhzorwzzyvsgcgccxwdulerrnbmdwqjyccbquwqstqnqkohfegwmydvesrprgmznfvygfkdwpkdslzpkkjbhdynlodrdcojjttcovfyynrlgcqgyzhcoiievgdhtzvchhdsgmgtkjpihfyslgtonguccnqgudyycxjvubaatuhmejrfppkdeqjveeclntekyepecenbhwibscjtldhqjfopglziixvjlmchynojckymemijltpgqwnrrvuxhqdfqcqxqkmgulxuumtvlqrgkbgtwltmrdyauzxdcvblvjeumqrtvnlgumqmpinnsoxdknmypzzmmdsqzyhsdpjlstippnxmdeuqgeruzeyxmtljggxbkexukafofizknudcnfbqgmjirrczinfiodgmkiatwthoznmbagrchlstjklldtudklijoypyodvpemdrljpnwdpblfezciatjymoscaalonqbgsjtmlcdklxofvvrgdthsqfyedbtvhlbptrdsnctpcgqywqeepanspafbkxkcjeanhnpsfidsnxqlqfihhploiqxavbbkopevxxlighsxvlnbqzhfcwivwqrieawhjuwkjqbbtnnhfsvqhjtfjhzwdmbsirmnxylvtwxoczjiqawejqthoawfabjpbiuhzkozufzzjbifxzzkegugfdzbgvqwcyvgxmvemvgvgyrzzzpmzdpsjulnpmieuyqhtvtdwadighrcoinmimtnmvczcferaxhhwvrywtgucapihwzuufguasfjixlprsrpjxkqeynpmczytaiiocjcfculjniuwlriwclixeyiqxqhobmtljsdgzzaihwtfgsesqnjvwzaoakrqchyqcsnfmamtwdwktcprknqmlblcsaqrpwbdclwksnralvmwintdkenvqvrzffnebuezxzlqngziwwdcwhdqkanguejdgpsfuruxiusrnzsenzwopsdouebricnnlwtjnbkrxpvexhwnjewojkoznzpetkidwnxbluytxnffqnjmwtiekhsuysdnfcuwwicvqpnxgwzirhrhlaqzqpzqntnswrraihnrzenjobjwhcqfqkwwjuaxiypaikdggxyqsisgggpcekczsmvgngibbbqqbhuruitqvwxhpqdkzgvlsxexhkzidswdddyuwgnxrfkeaijkjlpwrkpibuvsfhmmkypyvrenhfzqnwybjpvphbarolxeuzidgrlyicpmydccgswtztgqqgrrzpvgmqsfsndcfvymolzhgdyeljlujjypszppxwvpppbffsgixcvdpagxvcdnfmscsscnqmxruulpnaktnxfhdehdpurbooqukqnnwlwapuetslebxlewmcfqahrznysyzqvrxxgpywqfkqdlietuelmimrknknwkslrcrwjcbexgvckfdcnfbnifhspwqjhvsbxatrdwlfjlgqwefxydpkggdyxpdebesczpecjvytivrvkzpnwxwsusawfnyrmfdvqmkzgfhszcdiyzzubvfoickmnafgcwehcoijvrscpmgbjfyrwyzcrkdcdjlzkuivvohupjqjgouvlwdkrcwcspnmnlrsqdlomdcdtnshfwiimfkzsvzmshilfajwswyzyxxltwjsnogdjgdyfqkefxyvtacuvqsczykqjvjpnzdfvfgojzvqcenjefgubaqbgcwocafgtrmhzvmhfnzcabwieogqvaksbxjruvrphvpjnytpgqsnuijpovkbnilfngcrignrpmulngqmpjzeuinjjqwpbxxeradpglwpbhriefcpamppnfndgoeylhmeoqweowldfryzngxoeiinlyfwemhvowfhxvxuloqsdlovugkxzohjtxicpckuqnbveodrmlpbreeowregusjcrohqxsamnnziloydynjvwlwncftljgvvfvrbatwshbwdvnutlxgiifmosbvytknobabglaztkzdzifotnjcrjxcvanlzypkgmcsvpofbzqlkzruqdbicgoiycychvdqbebkkixdwtqajmlifrjvytdiozjyavuvczalnbxpmsnnyfkhwqjcydqoztdnrswwawaxvuzdixyzjkimxpgqtdlxnwebrryqqngkjsouaitoaznbowbawghevtwtxtkafbwvgryeqrrmjjxsymiblbhzxozkkplxilcqzaehaidjlpvbjpbltokfzwdsgnpqjwvygcessxhngxvwjxwhtiurdgaffiybvyqaprtfzvvzwlndrvszxiofpqnsnynkfcllflkizxdilpccrfcmezeklpylbqiownmtdzclfexnrnsyqrerfiwqxfubaoruhutrmptovauckfbndsbxbbqtetzerukzloqgjtbyiidoghpkvvqtwmkwyvyakuwaigiyriaigcfftlpjeuumehswmroxnvgvitlnfpktyiudcslcftypqfcsquapfmvwcasdcjkhikzxbzxszncvqyvycqwuhyiokvtnwlfxywipndvsgdgamhsebuavzrmejhmojdofkldlmuihejjigbzmwkqcnxwknmvhwjpvhokyluixhiidolhzhwgmpdmhvjtwjvmtcqszfrenduasczwdnrrmmstyzqncljzulfsviibkhuuyknrfjiedcapkekbgtboigsbkjzblosrzdfkeslfogchgkqsfzdxwtubhjhvlgkvexatdtbxfpgcclcwcqhbsoclgowpguolmpakpbvqtdcajnuliwsouysdetquhkkkxkkvguenhqipsexxrzsobbslvoveweuhrjrbhfnvjbvoamlmkzynmflwkkaykxnlcinmguaxmhuiveowcmwazjyzailksseeqrmmrrkpuqszuicfnnajyvlhiuxkshlgzxluqccsmmqfdztygnvjfwwqmfsddxsehqlwcapwvejrcafrebmvognokzyvlfuskhhnavillfluqvhtqrefnuwugpbnmbbcuvssylozlrmcnvofdsbpmszrrneimhfwckkbxyanovcaiyxfkfalkjagkqcpjabwlykugurupikdzzcxqsmknskxvjebczfkzrplrlugjosufkotvmcmbnvpmrmimscxpcgvebhqrxtflcfkrmjkkyybzlzjpanqphmfbkkwktkbywkmrikehrfybbmbxgyvqplyuonrlrxqrjnipgrlzuvbwqwkidsiqsikxacjftfrnrvfxrpericlyzdpilzxntgcezzcrrmtwgvlebjlloiancfflmhlejbnmddseucrpxsdalwtvnkbhondiyriopyhslrzitajzxzahgvnsxpwxkpbkzwfldmswbfvcubmkhfpldxchbjvmuczstycpwtrazrhhipjrcmohwjnkwgvhpgtnyuzgzpgalvrgigxunkjlwktxqpdqntfbcllvvnekuiqodcvlktejhtyclvvjwsmvpculjrulctknycojqboikhydqzvvdmybakfypjahzckyedksujvadsfcbtfwzmkoblxnpvbmfqbwlbnymbxrqzytlpdaemkjmvzmlstknutzphylzjdenwywiethnkgqorcyoishepbhmwpqhomkrvqefmwubydcopiggehmgefewnlthqrcwpwgpqasndnbfyprxzbbiwheuyrychkwpstixvoxpirelapjulysbtzxufaygnzoquklavjpwllghsdxqyhvkhubhordjjiknavpctnkrvybdowazfgkcyzwxqtghxbzbiwzgreojnsgfokjidnstneemiexbfmtidwnpxkzcatqmmwojoqcsqhhwdphgfualblpimypffjxmfpbdqedynrjkkscrhqbjnigivhjgxzsxtwtcqlkuqddtyovurkzbgddgjqlsqgqjdupqonodlclhaurwdlslyemfpnsbmavgevydgybnkupganmkhjsrkivpxefxurhzunsfaehnvpglxaigeboxmmqhougmxzhfgwiapwnzzxdihhbydanejcrjecpovecbjivntbktgkmxejvoxcvbfmaclidrmifhiwipnlsvxuokpjcereobezshkxuuyklukmjdlilxdrdqpxsncqekqpfnqluslvbenhllxischpnxrirgnpqpdkhbpkevfaqxfifjndtnlvlgydqakdhgpuztptbvvvnmiasgfssjsazrylbobjznkowzdlsoxfgaproyjujfqxbeszpklofxqrcngaqcbnadldffoolvfvirhyacevdfiajamscruaemorozzsgpkdmqmkttasdtpjfnutnhzzrpwgyvyfmuwzpgfavkpzdntseocosnirnrcphwtoduhpamgdykcklfaywkolajhrwfggqomzxfcaextshrvvtczprtshsmahfxcozwowtrqzllgcbefovmwxfyztwjyvbnuhmmzaxuxpxzhxpwwmymuhxoawhaduceeqkhuyumbxfxbimqjmgpibyhusbqsilrokcztffprmjrlrwypbpuawelvkfafitfyjiohkfwsxuwalvfnmhtittldjsvmxqlzjozxmlemqwxcupkgznmhkdavxtaxrklxgdwwkermcyalpytxdvsbtlfopxlvekqquzzmqygrksfhzwvtijjkkcrrghdyzjgtdgdyumqzrqxvtfezoleyugjpkqylxdidybazsmzucpptdigmlzhdygecbuheakgcgstxvlofozwgtqbpvxcbdvfcolwjvzrerhcmtfsfsniuutiambtaphyodqhlsmdwhfovflcbiymdseyzkcvgmqdoohvkqaiachrvgkimirkyuyqdqmfkbkrgihabkxqslfpdopjptwdiikdxguuzprlguvwakdgzyqmbujmeorqbasqjwgbzhmbxplgisxkbyrvpkfvlnnxjofdmsfrmzcvhrdomyzhacfagwpfqfwuhrshevszhxpxvjhyepokfbtodgqdluasppaxkiletsfenxypalliwnvjjbvhggosgoxlutkqnlivmcojjvzqcxqfrnaoabcyxsotkciwgdqpzcthcsylqpbckmjhuppojhnqivpaehqgzwuyyaeycycanqvfuvlyjckqcutozldqquyscozsdexregzvkzppphdnswzgjhymwkblifuigaoocsqnbhbdftjflilxamkqtsalsrkgxjgrnvrhrjcezmgycezgcmfjhcykytpbvjnbwrtgvoagigszltvvqspskqczvyefhdtrppekuafjofdxvvlnpesvsnrmzyqzoxabmefpydcyblgmtcngooegdzsvaobosyzcbycbdihkoehtbpcghcwzxwhwjcsgalkrgggqjoiolejlbirpegxnjtusdvkdqtslmvreiivkmtpyepwiisambhmmfbqgexasmqsldrtiwwrvgotrwhrsmjysbemloufhfzvbcgxgsvoatukkotrgfhbnaknlvyfthmabsypfaghrqpxhmcsarnozrrbkcamwjanfanvrsbuhfpdcdlrlimczvyxubmwxrpoukrkeootzpkpttjdxfozjlodeplgzvscvaqzclpxturigbatbhauweyejfyjyrhnhckcahagsqbemlkhhgdmuxalzvfpinuyvsriydsrdymfamxfeuvvpddvmnzzfbzsgxdgrrgdmdhsdhggfglwhjmylpocojlpkjtugncqvychamopxaqfwgdtvzcgvbsrmueuuljjfdtjiqhcglaeydpzhoezsgxvascgwpwjiuatpgwppqheevyxewdcsdiokhrxcyyztnkpyvespitdsurttpaepjwkqoxtntfurnhxwuyejkwwdsiaemsewdjtzocasiwvrousecqathqkconkjnfpjwwolfzqanthgqgxssvrienlrxmksglcdoyrnxjdzgdlryncfpaupbltsvhsdytflvpsttnibtgjebwecoknforcimqxtosoxfzbcmomsaaziascsqfjuunfmoezqggkxffabqsyboqsheeldrsnrjfyjpxhfmlcdeohlyumztoiubuneoboyaherlwfflpdfwgghnhxrwkzraqfqheoizlmdeunmxhpvtgkzvxnwlgiapwyknjomvypwtbkwqavudgrmgybbjatogfceelfxkokjncapwhovmpgzmwucmpcnsslcnsljnahgypbljnsnhxudcrtxuwhifipwuvknrauqvltbhrrwydkfqyzhxhmotgulstfrpcwseyzxurhxuxkurtiwlsebolsgigndmylqdkodalfbyupxqbmljfsltchcqxvlvjtfjqfzibqqsycovwllcwwrhjxyjbzynqipjbrzcisbonkmkwqktyroybgbcwwxbwetloomumcwrnktdfyuptxkrrplqowmzlwupduvxrxpvhhwojvnmcvnjawtcnrnuhyibgvezzzakkzypwclbfioeshcacsvltdsogtuqtbrcechxojsjvomqtxjbiqpkyuewdhzqhokpmfmhwifwrdkgwdmtooasjpirmmhhulyucckndesmchknvxjiwchkaclpkynyruzzbvvbgdcxekxjxzdrrsdiwyetuswjeozskhhdjqrgihkriayjcrbunsdkjeowhqyttingqdyemyzuezqtfrbliczshdxoixfalnpootvelxbqtmvjxhzkleywrmhstqfjkdrjqjypxyyrfrbtmxixhbxzquohfkfojnghfvkzmznvqziufbfvpmoadygknjujwgcutqakxzyinazfbfktffxalalsjmbfpzocltqfpzosweaybhjlpszonfyevcrznnvrpfyiacvrqmmiuekemwzgnluvrxlejhrqbnehhopwjzxwntogfghrbtfhjmtgsdlmyhvbsruqyphrpoaumnbkfopncdlybalxekxrrvlpetllzgqrrspepaicbsggalwtfxbqhnwqlpxaobehvlbbkjhbpawebrmxgtwnybufbbzasklcxhuvpjvnormioixbmlfovandgbtonyjwijylkhtplxxhfpfvlhmoxwitfndkesgxvuihphefaefyucdgyapipztsqfwsxbjpallygskvjxumvirrhptlbleocnfyqyickmfddnpvrijojmbfqfgcfaulzcujwgbwxclcgaohcgktlreywkamjvhesdzkpoukpakywkklythtsndykxmjquzbuxyvmtfnukkazwsgpcuuyscahuwkanlktpqfxtpkpqldjvaxablvqwgpavrppiksmzinvbosbiqdojaphpeaxhjouuhbdbxwafaddlaxellsdpekwqujehdeakysnieharnnmeykxgdzjwiikwrdnrwqfcacxaxkpnnffoposdlcyyylrouedyuxkhpuvqlofbkhwnlbntzodcaimyzydsptmfnefcyfgjirbcqlmwiudqokupyzfnhidpwznnivbakcwzkixkahpbelrsxufrtdqneocvqktjyzfyvyatsftqljlxgkxazcascubqinurdpahwkddmxsuxpabtuwlsxcggpyrduhqroovazpezdxcjcxdjtmndgjjpydenbrlpdiucelkhobfrnqpmluuqtphupyootupnmeazoieucgiwodsdotrtiiaknxndbquahulxevibxzxdizfrnvffmhlifsutkmkournnufctcfbjymomneixtoubeewqzeavwvqqojekxdmxngqvhzxqquktckodqobhkqtrtfdqzycjborpnxlwdbqkysslrsmllcupeoezjrvfbrptiwzwnsqxyvlrlofxjkormghdrvbimtexhouvfngspuhhfwdjpyyoulxgkfkbsqvesfavpqxsohhklhwabkqjzjuekbdmxgkedlotspbbblwnsblvovfoapfcvwpgeuiapvxpfvfnlldtrudbaudissowphetexqtpkixcwthycsarcsgepbqhlxspfyfbbqbhponpbhvuqxuxpbydnavjijefccohtkxlxogstwyjfbhsrunmbaliehwpfulxqlbjavrkhqdduqfdyivqwwsudduoyrbuejrmkmmhueoctwicuyxwvwqxnseycofvgosdwuvgtaspjpjgqcnnkfoinwtwjahfviwzbhvegnwbhjbnwpdbjloinnphjgnhcdjsskdljjmxdtaykydbjelhesaleduzpgwkqvipulacmdesbmydoegofittygghoprddsyfnlwnqfzcxxgfgfvrappbjjhqzgpubouicquazvsmxnhtfpjdouxpzjoppsviuwlammetwmupxnhbmhikljcfdqgyjrpofzyocpfjveulstlfsivtreogxjlnesuxrmbhvphpzngarwrwzvhtbbhvxmecuquymqtcxxetexdqxbnrxjhxqvpdkmtkpzluejkstpeukdxmucsysfuevelwbuprflfmtsiilojhubqffzinvxecxxivnsrzicdbtnllklrkhkwcyaxtxxltbyruaejadwvaizrzkbgmxutvcwwkqlekkyiuatsqflfptlqklmsrqfesyfgpjrvwbcculljmkrwtkfipwnvuygibtlwefgwkrabyvtapbaskmrpwxhdrdntxsahqmgztehcktyckoxsqhxywbxoxdbybpaabatnfiyemkxmebudizehxwazfcjrynocljnaqflpipvfbjebyxnxbdjnygbtfvkoklducnhzupdniofsgpauhxyowcoibforqquunftdpkhdytrzwpaoirarrrwjmanawwkbkwjdickdrsqrjnstyrneykcwotzadcctsuoyvfanfaoddqbffncqbcbghovcggpjwquvqzcpgbqycqddvflrfqtmervvyfuwlkqdoqeljhvnvxgjdyabtamfsaxelowkjfyeuebmxpcrrswyobxrsrclwuuauaxfsszdpugtjnsomtdcunngpqamlxfldwyqvdznrfvjdjruxgwqztpytzogahzjkzmlgqjcvfccqyfczbravbbzjvapsqinmtfoghaekrffvxslwmthebnphnosoiptqrvlzmfikjjofhrmdystqudmrwtruretywymoxpwwdcfcnxrpcqzyiatjokpkhltvxscgpxfjbtuaapvrjdbzabuzozugpjyxylbqbfdxwkekjtnqgdlzppwuhkatieqvoddtxffrzrwtxksbuuerlscvdlptewzfvhvrqqhljzamruxfgmdtkjqghkznjnegfcpesonarqajyjyleewhxrnvownspxovwuiscgtzziihzawuyuwshgcgcnuobungrzoqzfugnkexufcwdxsebocfxgxvpwwgtqjzpteqovgnrtrdserjddfqqfssmsqioiheavotguxegodaqwvwhtodzqcpmzlurwedsxothwmummrkszpyohminsudcebsvfudjaumrhtxsmttthslvxgjycayfwrypwailzqiuahjpmysiskhrjromzpowjyjimrszlsbqztdgmdnsrpmchhxiuzzwhdztdywictdqofxeszlggqoywncratnhlnugybkqamrxnwzvsabyhjqcknwgzocsjwnnpywmcwxieezabdwwycbnnxxdsdqgujjrfwwgasirtdwxmfefbltdkupzedqbwttoisozfpjzumdnkhcwslksdkngutrjuyfnvqhpwdhdgxrjvsridmjedfqxxrfvfployeelzupekcergiczsmmugdxamziyndkgbvfbhldxfzlrpkenisbsvsoldblspcljjqytazosdkntyngnzaidufaziimacpaznzxivllvevrwmrkcizfplfhyvmcclzsvmyooxfhwovbcyuyvxfkzwvqwnenshkidzlkguahdgtlrkizaqfonwlmaitqknjygkhqdqmymrzducjaubgkgfulrucvnsauhvavqxrcngcxchywdwikvsesuwfsrqoukrydzgaejqiaywlweykoxdltaozsyjhzqcizcyajmtuzsalcmvjuuwypfjyljqymzrwvuvmwofkuftobivajtudylrzbsrlgaxtwfeokrymiuamltvwhnmqcnbejhgkzzvuwwkefrhxvfoszelqubfxkyqkxmiwcqzzkgdkxppisyxdvfzfgcfhjgbqfzxvozkxrfaervwwdzbxbuzgxdpmygjkgihxrmyrjhwvautymnwafpucnffehvvctohkbzwfseutlrxtjaalstfknffgfdxdhcmhxxvhvuyxmpzmptdhgaefhrokxpaeolligambjkpprgunmrulxpbwfpjznpovymgkqnmzieydfjtkdhnmmcfnayiffjnnnvahetnixhjdffvvpgrqzkcmwbbgwsjgyjkcrfmzpllxfsurrqnralhrsmqotvprxazqlqpjlnysklosbskkfjutoxmqrnqygsejlbdztuapkjznkfkdsmmuupchfgvsxizhfckbqvevkyxdywsyfkmcphpiljaqdrdajkkxyzxwdcyjcyypgyujxusgdcxyscidixrlnlwzkxphbkoitvgcaguiifhhwzqmloynlxkrwhfdsqbunmjuvfwokmebfrcrcnmvqsqbrjxsgqovhylaukcelkangepxjjlgzzwgfzuhjqsqqlcaebvnsvgisjsoarnzlfkfziuqirfboimppqddljtdgexslddglcumthbvpbioobtkdqwfdrqvrcuiczdbwlngzfiaiinzttsmzleewjofjzapglkvwvzdwpbdzbejgurdnlhpvonlemnrksdqkxayizwrbbcuoihyoknwaddmaxdvptpkpdnplxrkkmfrsbisodbshwaxtuqirqlqxypcycjkmexhjeqfmrgtrjszsmzkiwdbdggrfftxeqnwcgwscctwzcrxsfafpckelxkslvrrmpiitiqbqfvchnfoxmjxyolmmnpbmzzpfkowesizvaumxqsdewlcktbxmjhupbozblwbewmjhwwzkzzaulhfzfthpdfgmyqrkuayzoivhaxuqrmjhcxhjvgmvpvhhoraflsgzbnwyjsqjrwuoaostrmhbgwwaihuzdlxknfxcvpzyidhrqypkmldoxahyqphrkxtodybtfpbsorxagqsplbnvnmzpkxwvbikgzqesenuwucbmzqeuegncbqncuotzpsnpnftqzgekupgfrddkrttnsyrtwvqmxneliqulmdznthykwoybeileaayoejspouodqitnncylkdzckuszalumgzgeltaukbcrxquvjffnazcatztyoiogaxmfikjosbhrbozfmhqgokmfhupzsyittbzzjwkkyqdxqlbrsniabxsxzcofyzhclpaqpbcgqxfnnvgmetetqpukyfbprozyvvlqbcxwrxzwajaargyxkwbjhrrtvmwvhomizkhdexvlhxnfuycbsntjriqyugyzjtcajomsulwbocgojzrlfivmcadqqneqkllwtjgeoxqlfmcgrutsuthtmapcrrzcftjsklvhxwcheuvchjbwjiarsbhkvdgxjrhdznhklwdulagbgmqobtlugwpxwgupbnmmsabmqoowgbaesscbxfuvkzwfzfqqabnoufkmilkaktvfdjhzqqxyenohefhysduekvckhxutzadhyyuzblgjairzgkgnhszgtjtfuatjxiwwdjxhdpnrpbxarkfdlotwhojoopwdvxezirpiahsqvzrunabxcofxszjzwojxuopzbgstludxcleaqgixifkmzyzyvxziopbluielleibaratlqjhtplxlteabntkscgcxjdexyibawjmhmlzvygxeyvgazvfpmcuvkxgxismagmtbyiunsmpiukfdhlssgtyywygceubwjmeyipomhlaosooojdflwlolocetuyckxgfrwqwywzyxzewunfzolijkkwrxxndscfgujozhmlsuteyugjwmhbxuamlmfdnjetuenhiuygethmzsrxhnyuqkqipzviejupvvxerldbulooljlodgvrhtuwpnhfhweomyjobhxxeqtcojgzrssuiqvzopmwjceupmnaveniutgsmisbumxpabzbhommiggcczzuheskummcsmlryaavnxyudqmglkhfnzogcycfepyizedfulpsxisnxtvomixthsvrapjccqrqewkeldfbsfpzmfjjilfijwoammxuennurxnqoufdqdnlcjqjbijjmcmjzwviqvcxznpldsgcmsxhdeqsgnhfsppfzypyoaexzcnqgfzyekydyrqirbadkdmanerwbozuozrisalksikhyymgjkyfbooamnmhbfkmuukamheqvumafiyddyazpzxuqdnszilubusvqivzaswxmsvxsfbpvezgtpvgikxhxqyoztanlwskaaqdkvsljzmnmlhblofxqqxbmtnjztautgdlefbwcotmrqejofrfnsoujybwbmhabqonaqiypczzooujptkyrubkbfyjajobnfxfkgenezqyrkhaszbnbucdunuiqyrehbfhztszliuaemncflbmwioiftbuaprywrasawzgvwnbzecfyqoarbmcuhequsasglmuoxfaatrfxvlqtmheyikjqigvwetmmvnfxnjjrlmodztbixjfdavenliirpdyyozmoofwgfivtxatksbontbrjrkxphdrdkcfbjstrtwbjyuyqdtriyjivrbiwtoixuayczmkruwriwmxakzmtihgssibwrjsnicdyzotpihvqdeymrprxtakkstdmxrambalzwenwvzprgrpqkwpmvhuzamxcegjkdfwrwrwefcisqjyjjrzoqwtmbpwoeolxoxfjsrqqhpuayqxmdkmofbrgyhxnzwnvglyspblreuebqnxocemzxingcaskrjifavptnglqobjghufsayfncidzyhgckeychgpqswptdjengnnmpdmpfjjpgbejexxjilgspwysjdlybqsortsjdliruzhswfqymnphxiiizdtyjquljvusveuxbjjsdirjxqxwcymuwwcvdbzhhrdhxmdkorsksyhrupjkpbeiumsoffzggnoiwhhqjpqlqrnocsddcxxyxsbhdcoyfwcfhvalzihmokbplgibdgpnrspgokbgecwkpklnhguoyqnlhmtmnkasduwbdcyzuaogxhujkryixoxpwspsflpnxftexxlvlepbuxivhawjwyqzbivfcyzmxngttrdkztevugezcamokzrvdqqglqtdjappomfkqglujnntqnuznncquqqvotxewonraadrpdziingjkdfibhcgbahtaeoujuruduojpczloynvuiselsosvjrxtgkkcosuvgydrkbhsaxfwytbwzncszucxcgkykaqlsiaozfefxnastrmijoekptkiakoffbbuzlqxjsxnrgfrunysmyxnmwyqnjcgoeohctzdtgnhpzaahabzgasjsqwmaoqtpcujjitemiqwhsmfjsltysdnkwbtfucrmuukcndyiwurlkunfsgznoonawehcljstthlptnmxcugyrnaguqdsgzgwzjnvzbwkzhrmcfsdohnejtysgnqztfstgrbouisdahdwluledjeedcdazdjhfgyeqqxkvcbdositfrmgsssicffxpqpybmggburrraaqwynmmibxqmaredvjzdbgmwbkcnurfdoxlhaqnmuliaavbgjmxgagtitzzvtyndyubdrnaydiadcbhckgeqsanzsrnmuywyzwbxfggkxdmcezfeyuavqjckcijaviwdffdczoolovhigqcssthmnoemtsjytoggxzcaknkjxcgujaylyxuqodgaspcscrqmwpivdpgtzrwzfotmvpxreebyeckruvtyttfvwebpsppuzajatmblxqtfqpxfymywcikcyryzuwwpurftcqvnjoccexrfiznzlqcexxyrtzhkvlczkhajhgjhpbanosjxxjzixhtkfvyeqoidjpdmttmbtaermlfgczvrtfagylorkqqyjzwnbwydcnitdaanqpvjmzogxxswmkfdhsbaxpqrcnrwaeumgajcxnqbxymzhbgidcsauqhhmnekjxpdjischohpussdpvlovjnzskhtdoxukdwemratkgjraofoqnlngvnsbhxjdnuwenzyoiqttaboldrvwidwaaethtgfxbnwjkdoayvhvphzkhjfpbdlxckydebkfpqahiwcdqvzpukhkdqwxbnixgkevxmgorvdlaibwxuytnroqirdgfejorklerhqalaoddytmfkvzgbmacymashhgzvxreolgwbwruccftypfgflkjhhdgairawdehfynzbhjkaksevvnxondacljjiyeyysbpoeauwhhagmsidaqpqjemhjhpxyxztmlqqjbgeeeulynnybsfsnpvxshrrcnwklrlkwcgdolfksggbcklwhrdincowjotgdcqcjzrzfnohmhmgptesebzodagimtfttbpoydprhtlxcsqozzgyzthgfluayehockvyumjlwoeygqataogywabljgemepqvnvvldrsqhfcwdnzeispkzmfvozdwvoggfhkibltwcclcgewxhjprorwiaweecldetgwiiqskrfsdafvmghbubgjajshgknhwlbrwnrudmugrnuzytojpmxlyfmvllflmdistaedojaokfxnqzsjmqvijpnhccrqbklpvdcexezaifqnqolofsubpovavibvegzmnwfkyirxrnglplqehhlcmqupktprohadqnokscfjehqegpcunpuyazfxpvbhogbbktpjogvsvvhylbytihxwxmttausjnmbyqxuivyucsbuxwgjspnnfzoziamsdxjayqvxrmiuxqfwonlcqtngbqdjpiwulrwagspltxkztcylwlwvhwblcxtprtntzzfhylczgyvcsmjxxajcbzkdgynmjiydgappycrsxsqhncozltiskhkyhjcxekwybhxfxtcpeggbrqeggjdoptnvodjugqmdmwlxhzuadinawdlqiwrwymvyepouyjoickdtfsfjecyixaahlxqfbaoclhnjgnervfzhfnuekehyybcmqtgiweriznbijqcxtpdotfxuiunhspgbkoeoebmyjmyhqnpthdcjzeycwnoborhqzpdvdwznaifuvjlmrlktqsrielqdwumdrhmcgqxolhzavhbwwimhhkfkgnyqdjcvuireroqiizlgsjxqzhlbztttqaiitlxiwmswqtqdbpsohscdahuebqadjlvufbbugukpadyfdvlsxiwlfjfkuflrghiafpmdjiqdbaytkedmuumkeffknlfngqzgdzauwmiliiapcjvpbkxmvuupwerexxkjpedossdpmpexhrtaajlkxxpjvyfgilymrqpivdatlfficdszgkvgbgbivfnulrlwzqozleynrtssovabyoixznecwbxfvkjnsrlozyiqygxmgnofauoapludbpnkcbqeaegslkjgjpzbvllubbpokratcglygvooletaaqtloetmmuxaulfmzqausqnfadhgdvpsvklfsrjljifrnjnaldqmkcvkdxidulpuzqynyuiviprpjsjejpcodctfxjqzwgxuadlzoddtkovhxgffawslnolopckvshjabosyazxjckzzdsfyvzuaypytlkkwyvocasdqumuywxqguzlpkfmzdhznzuowxxqwpfqzbodiqeqhaetmjwcwtjtacuwnahtlgaetmooxflkvkyytaqffnwrrlentobnobemzvmjimqnxozrdsnplkmkzudshnjvpikntjyyamqzvyrmsbyfilaprtxwkhezohsadlalburxitctadgmdgiqdbpyeylzhcekyrqzsttjgrkbbrviedjhdpcqimqnjceukfrzpuheiehltzuqnqqeacvubfsncwjjaxtfhgofosurmlnyxbghzmtasrnuwahczojmpfdnvghqbzlgygumeumrswqaccxkujlkjcvahvylyqyrykydeyqvgfbxffjqdqxghppktkhrtntorprzevebamusnyssglcvvomguvmxwnustdlssfcnvogvetfgadtvoczldnacwsumijrraewzwghbjexsrqiqtjrgwkhropdrrkknqdbiifipacwsbzrmggxymixofjuaklynfglbdxdxhzuuguhoakyqgexjjdfghmprruxsybiinsegfwcgnmjnhkzujynbkarzqxzdpavhgrhaibrgmyqimimdfxsrzctemzqenvkzigupgfpnrpgslkbnxqzsnotunkztyqclxvmctvqurfslqrngnkagtvrrlmqeovxeqexlndfevnyvrfqnpbkiksksdtvzeddphmhnikmfscvsyggrwlptuqqobhpxpzjvqyekaklqukhllvzzwgszxznlffcghnvseelmdfvbvjgihjqgvykbxxvzgbbdhcwfxxpvqbrsjkxckfdfzhkkrxjjshtozfxxsefagfzjyofcsqoufwknjojqgruathyimxjuarruzslxfghzrnghycdltlvjyhwnpiqlnrpgrpelnbwycjapfpdpheisllfchxqjipdjmieznwlzmbbcnfxdtkxmofuavuouejombfoxbalvzqowterbmsznajtkjpblnsvclbwrplbylxhcttjgopqipqysmyholeqcizyajhioccagtnmfgkidypjgsnfnepbvmnbpdgrlkwbshmdcyeyliheqzpyugcoqwfwovubuergcnmvxgsenfaalkuqjanlsthmrzeirorqljxpkvrqxqqwldchavosbxfapgycvopmpxffabqmgvknveigfqcqyykhkgtbakrodpqtbznvzadwbqxbjexpyesvtusasdkfeuiaqomdtwqizwvtdohgvkhgkyfokqpmnqdjbhfnamyjobbmyqiwerubzkzogmtosscvogkalxraiyawsgnqvwayfqmlqhnlaivdcnlfcfnnqubghtkbvbvpdlgcyucrkddkiqthqqwquhbfdgjsxaknqdqfircpmrhlnsttfagjzdkasosbcavgyxrfnvoprsuqjunytopswbdqlwuwubnflywrwsujqelzebaaubkgsxsogcimxunkdtkctdakowfedzixvwulqrplelrsteecmenanruhuixlyfqfeyecgphevacutunkclicqtemgrfwbbyzumsxiulcykfyzscvwwiegyzsoxfpjwxyeqtosxuweubplzbnedlpvzpadettaehbaowuativhvtxiiyfglckvcysrnnrkykutznpfqbgyrhehuxcmlbainvnsjooyczaqybbdnxkzeavlxromnqokclyacziprvdovyqimphrmbwkrvrxmfvdwxsqoutedprlecdoyxvaptkzawjcdkggewifmjiuvxfckhizjztwctdpqcbqwchdbdttyvxjmeyddvrspkvojbvmphkwwlfyoosjzitnctkiiozrioydkwfmxsuokcsbaqagcczwsuxcprxbkxngcbfzfyyprkmwawyjeaghjehonvgfdfcgyeztxjhfjopzxnmpismiemdhcjvaxqddegwieshepchgsvglxmqapijjbvddpvylfhdvafiuewfdovlshuveufehrgmwbcutahninkbwhrrokegyrbptiazzskmvcohiyebmkxlodhcxweajdlotxntwwkwrglltecnmefvhjydjixiyyststfwenhnedgofmoowvvyhclgfbxdlghygbcvsiothhzlobplxmrdgcycxaqntrdirrzbpkqwtasbdllggmlbrisuzcaniutguixuqdhhxzwuptfrenjkhfhlexxkylukiyvzwrfxesbcusexjncezeuytbagazpsxkiiahcbnursdtlkuulgqzsmcrkrpqnmfmwyknifdpkwyrestayafkvcewrnpqvnoaiwjgbyoexynzloysjcjpiosjvgiqnimgrljlzdgybybsuhlekfhzhoiaxqbyechwchfncppjqlemcncoktidpksbculupveehkozahknxbeyitthcktrqkjclkptqujcdrmiquitbymngzgvwgrcqjfgqgmzlrqlsapjnukdufwbwynjvywjxnjueydhdpuzzefbnvbszrtnkgvjomrwlvkvchczikymkweoahvsglgfwupxxlsncdoflvcazprptnfxvugpnzsgrlhaxyypmaxuyhwjpgsplkwzkwogqqasykhwhweoetkmmbviguzjjxgunnxtsliygdjyivjrgyfdupwvuliswutzsdaslzkbozujfzmenekqozfaeeblrryooaoodytyvvbkljnxmgtoackryjjgshhbjvrotsywjeczndsptlisbvaiswswmcljwxxqpzuedmlqhbkujyflgqvanhfrikdnxxfqjzfudyyunwatzedpgozocgicdjnptqanmgdtrruzndoyocfnhpqsbxcbzmltnoxryyeifqgwlgddgzyuxnhbvgyglpyrzxewthaxbxlfgofqxjyxjyeuwttflzkdqvzlfkjnpklhfnvbarwcrfcxlnveehfpwnolrthrnyezcjiatcgphijwkfoppjlwrabkapjilfwqdzsybaywlvkltamjhkhifpwyxqcryxhitxkcziowdpnemiwntoqdgiqibvryreievcjiwcchgaihvzvrozxpmsvldvayryuuglzvbvnmccwxzvothknevofioonhlkgatmcvevlegerlnlmcxkvsgubxywnwnrrfjpcersogfhemjdlhvjwlrjymdpwwehzplauelnbinemxdojriaafunvdcjffokvvjeglkpvsryemufthmqqrpphjqyvtjqmuojxocuzaodgkttnngeppsxuvohbysyctnfaivzxmclagipihigxrbkuxurjtudwibuuaeybwmopejkmgrfwgyadmnpzstlhyqlrkgbfrnbtjdreqeojlcwqcfbaoqxrnbwuhuwbxjkhkfptpitqebgoqbxqipkkeoanugkikwltlzstngakykbsixopumboiudmfpjdjzixyjchqldbpxscdsshbyvasfuqaapmmjdzumnvjglalxvtpxxwdqkhbgndqumudhqjbntbmmunsjeovuomugcmtejldumnbevbdwofetnqcahfhvmzalxgtkvjyyrynwijsbvzcibytuuolqgcqbdmqfdzubscdbojbbvdbctsubonhtajwmphwngmtotjhgqjhbxdecgllxeuqoymzdbgfwgusgimtjjelyygwbrkeidaimyvmsnvuokapfbweuvonixpkamveublzyxsdpikjiipwurvbaiaycfbmtarxwkrngecaomrbtzcevdrnwfmhxgjqnbwbzdhmndbjvepmbhqmanfgehbxmfgakjyhczgcxpnckuaepbhkmkesmhiurqahjovmxjlbebdmxwdlvalfheoswburwvglbyufelblrmasxhlwokoijizmyxrfezavqvsrkawryamkhgjplsbwqgesvjjotrsmwozvyykokqapwogwqxjpnssvqbqrdgjujgiahoatvtovwpauzkfwwrefmolaqavvoeuuzragfajawibtcbjvekwpcpufwpbdmahxpkblxrhkcbnkomnxuipvjvqqcqwkdoseonszfmtxyqenryedihuksfvowdxaekcohzslvjnzzqzcadfpxhknzggrjdgtyojlpipxphqshxfvvfabfkedjaqqkcsqmbfsqakiglllabjszpszoiprnyvqlhchuqmclfptifhiekwtppifyncwhpvymtvsucnrwyjxlwsyvotkhbqprsfsxjnlfpgmnldpmqcwdruzozzpclbhnynoonfoediijrjelcksrnyeufdrtiwvsmpwdwxtcbdvogyxtemzvzxnyvmggzvcywbezvqtfpujvspgttngoqpbnttcfmiohphhstylysgjeazzzrmribamsaadkabdqkewxaehdzqvpmwxoyluwhprceiqspkylaijdaefsasakeopyahhlkdslywsnrgnrgfllnhppebpznqddougbjhmxqlfnvkbxlwzsjtaxspodstcnxgummpfxksmdfzpfbxhudilnkfddrbsfdchexvlfmffyqhwuxrfmxubxoeiisfmestikplverkunosfvvqnwmcxazxuuxihenlkmaiuwbzogpzpubmidphpymkkfykdxshekitecnqpteugthjcctudahxmnhlqjytbumhmxlbtoeoqqlydcgdukrvalaknzqixzlnsudbsnhxvanxlrjredgfgvncycgvdfnfidphpaxddrfhxdphghnimoboespftaiqopfrncwvkawavzpttnejjbtooswkufopxejvaxkzflysijrrqumtnegaefdlbsbyjuuyeqihhprlmtdunpuzranntfedhbxivuuewrmjxilekrkgbbvjojsaezutwtmhbyznhdzosfcydsqwszugkbkkzrklmuxwqnsvfmgbcurnhoeemggmpwrkgfzkmzcvtjsvpqxqowwecycniotxruoqmxadliujlpktuhdvhptmvhdtsadcsemsvtbjkwihcnyyhihfremdsdcgvtiiguxlpuwyiywpqjsetsfnisrguejlufsvuayrhuobyjeznrhrfmksmjmnojsfflnnizqukxvleoyustrdrevzjnyglpueicwtxyanwdmbocdgmirnfdovjhuefjeugmpwmuqizevalcjdathgzsvnxddgdquxglizcuogsafuxvlwoemtkbpmwckreixhisyllwrljfksmwdqnrkaozyzngcwldxzthgrafkgsdypnexazlqrhazngigcitwuvainuunvnsrgfuhybwlwtxerkcyjfxnhadnifpiirugacqtcrbwifalaivxhtqkvqgsxnqrssfrknnllxmtgclezyeozlxlpffbkjzpqzblbjjmqxzlhdjbtreawdyvkzfkvszkydpdqfyqtvwkkixgucyccimzcbddlwkmzeinfikoegnlffpccbccuzrvcboyutdsaloobwgyknrpifsmdowbxsaztpbshjgpxznsnsxlgyrjaxmsodlcowfqoryqufeovjtbjqbmsnzcloptuadnetmectmyfkezjwhctonyiafjulqshfisuxuxwmvhhfclxpdvwnvpmvltfbkpwbbrtmbjeiypgulfpccxawurkfvlxwcuubdlwwkuyjdrvtbdskuhzvywhcolxnzxmixhsnfneyfxaxfxojimrlsggafpvjkdxiewibhfzfsgexzzrkrdozysljkgiuyobojigbesmungmwwwuvhtezhliofckzlmxmrgslmyqnudmznwnrzuqkevqzmtenmqcdvfrhahxzgotkwmbkpyvxlheligzgenzajkhcenvywofvipbbpmejcrycitegqaqjhqfouawjgcoebdjwxyboeiahthqlygfzkmtgapnozswqfedlqyzxwdngvfqziijdvzupoqmtapdhtcbdtmerepwemlrxfbfnatttcsjnxtgexrfiqgcueujeuvauxchbqdmxfptdyatlhjeygzdgipezgsjbvaesswnvyuhfxpbtprayfbxtfkmrffjpsovcbgwxlfbuatffxoasjyfgujavztfrmfjmywaewvnvmfauoasmrzbbeshxcespnhilnttithznlxgsngbrpwpdtaffyzgkuqsjsasmlsgijvdozufipcrmgvsnfjutvqssrltqfkyhhhejumlstynexdvubfaosgktxtgsttgaiolrjqtljtrrgewkfcayqywlienocieemjkmvkrfmbamacjjoydiiiaqhhukcdsvuswfjgztksgpvpmldewgutwhusnaibmkwchlrhhlokeyqctdoujfcofopajzghyyjvpyjhfpfqfllkbtgosjblpdyfsutotmaklhyrcqrmpkydtckfaejlirbixhwsmadhundesywozolzczfxsjnpeaaapfvmdhtemsrdzjithkfqpkwtwuztultgblljqrcjrygvfmpsfpopqxuofmccafkwekaliigtwbbbzrmzyiajmofpngigcnxnvzckglkyjaltjpqihnfkvxzoucowiyogzfvqnmgcxlyvqjtpwasraxybdfurexsxletlfsfwmtokhdutopqooosphvihzgrutgtrpmljgogdppoayvjzzxywwurdvhtxpxqvplpmtauuwvaazpyunhnemrovycslxvztxdrvostvpbjqwgkxrulpxpcavobredmjtrbwbhtzqrsovrfopalnxmgjdewjoluodjzqhsxlionnhtyjbkfgkdbruvpzzjacqepxhrdhffnyvnjkvbahgdlydccofzyzamekvxlggqtsrubaikhobpljmbrlnsspihenzioafpspplskuspogjlpctlaiianufquxroscqajmfjvnstfgdqcgioxbajfpbumwgmapwuworjhlzkezrejehnurdkmpysizfgjrljrdjdozwblarpgxkxnhpzvnmgsasexvwgcaynskgbolhicphfixhhtazxuicntohsadmbvzivqfpwftxqjvvoantwxwssrdigmqjtmduzsecqewzanusvggcwzfjvrjxedezznnxgskgcwgnapsplsmbljclayzofrnxrfuvctyszvcljzmeyakmqovsudrqitncpygjmxsauyzeysqnjcozpaxfiexhiiozngsydaughlmmoyzxupgszwmtnuwkwmclshugens"); + sb.append( + "yveswhwhjvqpanihlqnnbvbzzdjaksenxrkmoqovvhstbmzryeuhrmrnypjomgujszdqbhbaseqjjdnartavastmtiwmprasqwkccldoteouxrxwpmbjlfmeitszglmfywhyxaquzxenytcqmgnuqdibvogljkeurqgmbacuwoyxvrywuobohmxaxadvtvpbqomjyeasormoawfaerbobsdkdgattyjhmgennazbsmysbmakwadkmvaeypsfgitczneeujgganldbvlbdbsihndafxgpcslrdvjszmlrvbgxypfndnhfjoccxzmraaffmyqegnjgixlctzqviieuufbpahphrhrbhbzveauhkisnxzaajtoeobbcbrygkjbpapnhppivoktmpednzgqitkacynvptujuniykewgvfiigsijygdrnxxyvrzbnxyanolmpthtmkmnpvovjhfkkmdfvdzkrmqmpifuknaawbhgrfrnpmdvnvyveruewvxvghzeczxdolegsuinxxxhdnbatjboklrtfgduozvsypluhyhaeqsqhcqgygmfqtxrkvzroethjofdvvahvpepowbeoobepaisdndqxjmhpaijvmdyoimczpojypidmxnjiqghoknyyifzitvjqhjkxdmgjalelbphuchzzakehublfmpyzferxebopzryqaxaqgfxwtlwuxblfkpwxvdommffhbdbsutinkrhljnrletopoeeabtaixupipqeauwjlityagxkjazwfximmmhjznhzissacqmipugrvrwyfworkcasnhpzqgjjvakxrxqgcsiymelnhnogsozdxhtoipnbuaorqwobcboupiftryadshftwwpejaayljzejujgcywcmjdugijnaaapnwttjlmbqrxalwjeejavmfbbvdzthauflivnzdunfltscycpsqyguvzmmkvloxxbkbrqhouomkgbaerkvmbbpftndnnlukyyfmhewaovdfxwwtymggtmxaxgctjeaszqdjuwburhearznlxxwhjntdqqosqiogtnfocxmkmihcmodtxwtsgvysucthnezswlyytlcdqivfkhfudkthwudfbwpcpsitfvldvzgftfglgzwmnckmmkzshwoqjlyyoiwrakjunapthlheioqmvqvewudsqesegcxzynitsnvcypmgyqdtziwpjhbkvknobhryjcppcaxplscpbsrtxzoavgusbwmqdmgdohjsbfkywdmddvoodxcrhovlhszhenfeepmlpsazkhrqkhlgihassgdozcbjijgsmgvazsceqprodoglzecvvsmlaksrwwgkicxsaoujiyogukygvfcviulsadbgrmxjfojahiaajhluzgohgbvgrsfoiwkwehbwqkctejxtgqtrgyjlsqwkokjkswfvhvghfjaggqcncdimesxkyzkhbtvbapmpozetrlchrlochfhnwtqedplvkrrpuoqjudjgvyntcfcrhnifauuyubxfsofbhcpubhvdeflvrluyfisdbjtvzmzljqefnxclkdmcnienzlguifnakovvlbfxiwbyfgonogsoesnjkcbieihmagbwckebfjsjqttnnrqvbuandroqjjngsejitwntemwrmtnaeuyixlnkphambjusephvivvxmyjurkmcdlueuprydnzvskpshpconzjukxmnldjxekxkidlixphdgrohgyzoydvrhbqvhqmznuftpiingvpieldlxwszlfjdhuxvktsojemfhtrgggvjbqzuvtkbjqicnheliskiswhwyerbpayujmilhwrixkxuozabovzxmxqvtwxpbvbtgksdssklbescztdbdhixfnopxfuttheztiinertgxsnaqarhwcfmjtbhdhirgxvtfygjakikpczwiizqohzukoxkhyjeuvnndxvwipylmsvwrdjrijqunshopfkofojzyyjikghemhxemeiscswaehrjatnersvjwasuocoodognvaciltvturhigzqehmrmhnuofkmjimctzmbsgdqytuwatcyxkyiidvgbaadvoawlzbcixhapocotzvtpepkajrtglymjwnwsixtlquwlblphnpavteyarrnucbevuqekxholrhkrqxfgxjhzxosnncijsnnqaojkayiundweorzrbnxhsgqebiyuvhynfsmmlcwlgrxcnssixrjokgznptfzgbeegybkerfpdrihgfcwcdhrvlrtiquivchmscgcnynfwohaclbsajiagetqikycybcfvqwghkxpwsnoyqontgdbcebpgjtruakydnmoxbjxgjvxeuejfaobvrjraaxiuvjqyayxfkwfnovvrcelhhzucvymtawdfekjpizkcduiftwfwlsryipkceqivnhzjtihxnxehypbzsqsckyrabaxhzesxzyeuqwnlbbodpbcyvtyabtmzchxvyizqvgtfgtfwjvameqcgmfotzxzuxmygrfshjtiwmycxomltmnpddhbmezimfdybbjujixmoaechdzfxyzndjybskbhwyuziiigdpqsxtwtfodioomxogtmgwssmpjpgqnvumivdvfwidsvevktxvjgkhhtvdaszwutlmhymvyvfrrwjoxqiefyozfyvygdoliqpqghiquzxfgadlnufapxihdrirmunmkmmdzhkqiwlnuvuhyosdmxhhqlaxchrqqaepsxlmkhyrcujxndeosdnrqmhbyhwqgjzmyeiwbfhmwomtzbyxfwafzzejcugcyeeizjvbkmfrznwhsodmxmgxobabmiamrobhurcfvywfgrbzgzjyjvlwmvjrjyhwktwniwqtigbjtnbluzacplcvbnkkexfhqxrwvmsqfiitcpwudqufrjhumvphjfofimsyewsylzzdbuufsagfkuuxdhqmmybopptlmbtldbheoschhefpvznzbxehbyvyqrgylvdnykolpmxzrekludkyhzseiqcjcitikulgdekopswrplxbhumurblwvrihbmvkyvxguvgvswnojznpznzirqleiyqdmkenjajfyjuwpejkdjxuhvyuhsptbyczaixumulyrindbkzlxubzapvrtvqwjzmpbjtdsiteghppkglwemqxhjglbhkrpvsmlbrgxppahewhyqxysujxqaevyudsbzriuwuhaenwgsevnrjrlvgqofsxeztidowrchaluvhqetwtjgxjyqlwdpyweiezvrasekwxiyvcjjwpdmylnzzaqqjlagndcupaprffxsltkhuqvxautqypwqieimbwpcdzxqfxljmeecmgwvodbqxepsiutboswhtsjiscqhqchghacenetgttfrveavtcyfiywdtcgqfbfhtlqdcqrefcshrbbvpfpzfmjttqqboqzbvzndwpmsjuwcflxftpgixbugdtihztdudbsjmyxoiolirbdbwjvwqmioutvpaijnlfpznkzgyoyfmhbovdzdmskyxzxzeycqovvyfhbfmbvijwqwukmpijycfhuierqqokdfskzpdrunaxwtdaplenrinlwxvvrekkelutkvrjnjrzymykncginqifdqxmzqixxoxyiipgxrjifgpnwfqzcacdxduoqgkcwpwmpgkvloxiihjiwmtpstivoamrssroczfhhefrxuyobmiidqizlsvivfbtfyxnivczzqsozvcazkxtzuvlbbvtldrqgydakmizuyxeidyyhearuruoifyjromchkpdtzcjifcjdkpqtcfrrgfbbijaylhjwjzuynatfnkqcandsarxrmcoulfouhcnbdkicochtvbpjckhybpufznpojzrhbqybfnxwjfxfhwssnuvojguejezjqhjsextxktbaaapazqwhkjkzxolklaxgxtesqtptdistiaflnwzwmfktkknygwtmflhpxnmtvtefzfkuvsqjgaagpmzqxifgprumtevsdgtmnjnxhoffpfzhbfqtswitxntnmmasmpyxitbltswdxvznkxmvuwcekxanyakqedecophsknikrskbtwqukbheskpunknlghrlzfbzrfaxaxwxbsezuueqcrnyiiuupenzcwkidxmszdehjiziodrbhxdevewmqtgngaondfptxgulhypjuyewmacymxvnpxylbqpxlijsecrofqrxpilcmpcfqdlyparhpmszvrvzpshhkrgnfdojqvysctwkojjimxgohzsztrgzmfciwtpmxvycideilvcgzusidqpwporhkthhwwmuxqrqcenxyewsbsbnujofhqwbgjlkqaynayhafspdpzsxlzculcutqrrumcjslaiceodmwytitveadlpdhqkulhumvbifozetnqsbnswakuevlggdyxauroydnzuzkmsnptraumvxwlfmaripbeiwxvlpoxdjfnhhgbcsfrtnrtxerbnrajytdscsgjapfksyqhsikhxpivdkohplavgblmuzmjslibutqqsmvzmxrwszxizxracnjuvqtykezdtdiutpsokdsapoqpszfcufgdpjsgskqybsmaawvzfadkzdhbfxvewioijtwvxpxbarqfbyazlurjhceqbhdteqfmbmijggzyafrjjxtqeihvynwkwkdzdpamzuhmqxjxhgsslinkpdibzhnqzqcpruqfmtyigbfjajeewexzswyovknrgecftvgxooblhemoivvwprhloudiqrcxyktsptdtkektzmihhrsioqusnbfzwvxwusolrnrvhghadkgrfhlcvssjswkgodwifavnhuvutovhlgokxasnfzpygymrykkhieweyxmqljcagnxrxhbzluhzuzjypnffdyrmuowauxorohnhexxblzwxmatpfqbhyzltgwlazwfroktbgfbwgzbxtomxkhrvkuriugtdjzzjmhxlhiamzudshzgwxnpqaiycnbteyiyzurvpqffjtfixficnmuoiyqstpljcmxkhkvbhzwlospaptoxacqnvhfiodmiblyyngzdpofbatozvlpbdjiwlqkcgxawvjidfqsvdlcbzdqootjselkdfgxutdchuldwwefernhpajbptorregypsrwtrsznvxwsuwefrigmkrdfujhoijlfhfzhxcivbxfrxekloooigizsvvbwyjvtbrbjtzyqrlisnkjssvjsrtohqxdevzdbyxsyhucvuhxusdsoezwsfkthodknydybooxaomecqnehinambokyegoyaennmornlkemptjjqxojwrwuzasiaucuwpcfragnlzrghxejzpnlxkkbdxeluoibixkgiumehzpejqwftljsqrgmpzeahucjobbhjskqwpkxxartayzpmvbevvjmwbkrufsbojuuzogaaxigrmrtjzodibrgibubuluyqqyymitzplihdulwbdfmqlynvcdzmoixaobgqmmthrncdfuecunhlsiowbbktydzjxdaraabjyjawgmjzfuwyetrkxkfnhlnufmcklzqevkwmqqclwjmnmxqzyfawqqbxmyeelffkuteqfyzlsttntushaskjjjcrxahwtfeeyxwryuasndygspkorhhtknnxqqvcvduiwjdburfukzvozzkagrwmtalyizvaagtmgbotqmmtfhwrhsqiopwunhkbufhqphrolyowwpdqtglmsycbkzullynuumzbfxruurigjzyhxspdzpepvaiqwnitzqettrwueoxgvidzlzezmliqwapnsncqwltnfmyqhsodtmkvudkeagbzggvrycqknuszhyxrdsodbtlwabzipqzrvyfjcgugxgtcgtfuzwcdmjfhbrxreevyffcwvsjgjtwsiqbucixejrvhekvpnhxzbuwdssbmmrhalwusuudgbqevuhfvudxugymzpfpedbtguemdjrdxgdvtbczdxglwhlspikklgzqhozsnptfncjkbrrsmziwyloqpnmfxhvjuljwrqdersvdxcakwqaksfpmqrdhrbzkuyjxreiamuuthibvibfgkuwkpjkorlkuekxpouqcltatpgenokbmotjsflqapgzesngrmvfvmyswrmnldiiqotgdetlddmaksdtvufvcfcpomsyjdmdxjigqaturrsxxlwkwvyorwsknsxmppojxcwkvigouenvzgnvuiwdxslemfblpxprtibyejgdshsupgmvrvwxmqbuyxwvvnisgpdryroqttveefzqjghhnynpomptfsmynspuvtrigpftlhcmywpazhokueesgkvoslafykpatwgpxzzhnlupfazwbkeuzjatwsuvnnhktnvzbfgkiietzirrddlgftgxqyxihsjxenyfnlvdlrxwuebshrdvcjlpnuhjstrfblhpkaorthxmuoimntotaspqtyxasjqmfroqdbovavqydnftlchazkkszjputlwoioycggbrcxpmkqxelxzzifmixjjuyaiqkeedejcbyglfwubzcltnlkakcppscfegjbqqzmigppnaghttxfsrhhoxiujugahiqoeiqatgizlvyfejgtswddlhmddffbayvbpmsxcyyngaluvyalrdoondmffvaislxxthiuuxfnynxmuvvnuukdlinhftswquvshktgywyidvdgkgoohqwruhmbqepbiiwwzwuartmzsvfwietfzwnnkgjmciydcqhmwxuetgkzoibeecjbvjeqajjczfeeymjydqdldejyxfadajayeejfiskugqwcbhthzcwzzizgfeocmoccsetgczifxadrcdrxlzravefrvbdalxvenndovprpjtmrsdtggbagiltdpknoflttxcrtskmtbstismggnhfwamtagemzordrhbghwtctykwnjzdghdcsyrncqcjifahnhmegsgzcizwhlehvyucqepuphduxmhaofzsoatzdmzxrthqpdovjskpjcmqwzdjhkqebpvqfvezchimibfrlfzohcywfrxshyrqbkldcwihbkaupmblszergwdfaxmpidszapvwahjeuwzdyhkfbijbkimjmxcckcmfpbknwtdvvgaqlkzweqqqvvfmzduzvypkxamdrwkkgrzmomvybasewtjwzoqlfbyugjeobywvclcurlcsvzerldsuxqfalmejvolzxhumckzaplycohrqtdbphxglkbaucbchmlrdppbxwqthdfonufmbthjflhidylzqlqprckwoddwrjizeaoqaafenzvfcbuqrpkufphesxbunqbbapcqgoicnpafouzsmumsqljwvrjnydvtlzkjlrraammsbepbrkhadbynkexxadallirflkvdmxycykaaiispptoqnluuhuxwsqipkrciptwkpiqqmsyyxosrvfmcddmmehtthqqadngefianmklmmzxtxndjxvwtyfnvddbmzdezfhxptpeahpuauxcitwymbhzwagqmdablnknqnixfdhcimcnauqsdesbxwwouqbhlosibxgfcpkwifezdwkiczsxykdetffzxazcdzkrjpgntvsxnemdehnliculrniwmdndcwgswgohgbqjjgsgrmvjcyxhsosmhiqglgkfbbtlwcrmxnnpbndyoxfmqsagcsrrhkgojdffcugzyqgkuwyckvcrerrzeauxxvmrpntfotkqkcmdycktsyvzqoirkcqnoqyrikxiohepakajlxbxqkrvinzjmngnefwlsheuidyhygleenanandfvqknjfxyxhnmafubjynvkigmpbeemqrxrbzmoxehmjpgpxfhgnsiozzxwifhxrvzkaltknnsauxkotikvpydplkpikltagaoiqzxsuxhtnazlfbgnzabvreltbmnsdaveceacztrhcedjzkpioqerviyejwtfhjjkggjnvlrhbieumkuibfokzvefsedmokvkahhldhwrlweqtxpyjzvxloshnydjalkqekvefemymitaykgkgsznfywiiswprxyeegwgfjvvzzggrlmfepptgsexnbjpsycykxirqwwqnznulhdvtbrmnqrzmviktgwjmcnavxvwooymqaqbolcduktdzdpsfxiyuuekxxkrnyngfiyaynuunibyrnvsvtolorseprjhegffsqbfmnpbbrsiiebuqrlmihiudpxyhnrirppwigynshhrxletwdyzxkwtevnlgwpsoarachgilnhxoizdkxqzktkyqqahtcrpjrwgpbjlppiydhpzebfpxbdiqkdlyvmzhrurlbhtdwvdfikywlczansbspvrelixmwlwgzoteroooojgrwstldmgwrxhildupsxaezhbvnwzyjghplyehjnofgxtgkhfmjpzfegkinzzillyajosnorkfcbzgqaxjkulphblclvwxkwtnnfkemnanarreavncfikxlhuvlkfwdrjxwpryebrhcsnottqaakinilewzbffkvvmszzziqjqimndconfoqykzvhezddawvvnuchdnmpsbnsadlndoqckypakidcvqzqccoeavavasswmznrsytfypmkudrjzsuatqvoszffzrlwokgucyaetpzajgjhatjeibpzinvntnmmybihdzpdmreissfgdkiwqtdperqroisngkbejbhgbtouanyxqxwkvwsnjqatdtmozmgtagjdhybuykqdniwrjtytuzjnuceqaiklxtjxjweokskfnvilbgvirxfzyizwntxibzhnhsuuexpcubyfebvwphbnamoyuyrgufrnlfutlwqkpuchvhuaklvlnenpcjcqtmxsidoxfxhimwvdqwyycmzzaiklwnowaouophyakdoavkfchgukbqgtqmvurecyrdhzmhetyntihoezfnrwraifrodyfgcbqgrfawtaocudvkpknzeaesjfhxsbflfydcgjppdlbbdaghdbpmjgczktlbbfyzjupnsbecxkvvodxnmwatvxibdcmwzlawznftomyxyqiaojhmhnzizrpxfbvccnrenxwanwfqyanogzenqrirzktjrnpjmnnpjajhknbydbgbfrobqxjdqrhwtssunlxwhtamktpdqadlisppzbtnwnjptzwsnburamthmvbibkegizdngygdttsxprwdujhltfofcplyozmscschcvtzmkjabkwdvwokjyuenjginscouwrspsbnogkntxyonqjchevzigchjpevvzfzyoqifoiyxkisgxagvhpicbsznqsawkxtrsmfevnxqfviuroeicqjovfpnqcvzmpqzsgfuhafwioxgyqdfvpekmecqcgqkrpftwyuwmstzfihhoywuromdrklnrivfauiprosggbyvlsbijhgcdqbfyqxjfpssyikqfplhcsvsihdphyivezhieljtrufkawthzczxyhvxrjibqxymgbxkonosndahxclpaenvckttfmpcrncmpgmjhhegzaclmrfobwkannawciuvgnjqvsdljorbjteiqcauwmazqimrtypnlprojfowpuvauiqiwkoeyrwfurxbqprgqcvxpdiirmkxtsnoyfgvzfpwxtixfldoflnalxxgnmqpnvtisretvpgwpxxymkqygauyorwcmnjmvvqhejunpqmgcknzqshfchvpdefyfhtzkoxccbjjhfnenvqukvmojeqwvwvschfjjjwpsvnpaiikxuajcpbrbilmqlhcxfxgsnbvvswrzjmqqblcxosaxponknthsselyktgrowokplvgdyeghrwxvoprnvucvippfalzfylpvyhhsisguhjhaalarrbhdhinxejiwnbqhvghcewjrdpgumoqpbtnwjryifrzigsfcaktvjmcjewgdfgoxygbiwsslxsfemlpcedyqlgnrjgozxissqjrebgynumvpzkbaaxlwsztqnmlkbsxfasaqxluguoulfdojkkdqutjvpxmhpkkjasegkfehwxlkyrhuinbucfxtvtppyzbvhsekxpyjtgevfnxqnsojxlmaqmhsrqxuqpbhvsebnjbrjkaciqvjiehvujzuluqmzdxopgdryosoglnpasmrkfejcwqiwdaqscxbrzglubexchhseorfmxknzmlpicpzzbmjyyizsrncnvxtbzagfkmfcvrqhwpzalobcabuyjuggxeouqfaowybjflqnmvcuxgtdonmztoxhhhckchegngvitgfbouertrigqbibzdsbsrbfaqjrqbcpjzurkqcfjyhfvkbppbyxrntpkzarilasydiduywbznabbapsbjwnonlnrwolunthmqjcxvlsiikbiqrtlfvkoeuofeqgsivygsinyofqtxkcqkjruzzydamlnbrgvdjhortmapwlxqdbhljwjccwrglxeporfflvswyhesknmhtdvmozefuhhwmfawsqvffhsnyqbenxttrbxpolermxgybdrirvkrjadoiimelzgrooeetjbfyplvaerumjkpxqvxnmgpdmgevyytordikvcnsbialvhuwujbexufcttzvyedwmlznqaovxuumrfqtdabixcuwurronnwxwrmsigiyamtxxxzvytrugrfqenyizcwhmgelpjqltpnftmpteqlduditeixraruecdjrmbjkiapesgmxqjqggqsifzoqpmowapypbvckrdleyuannpdnoaunyiqjzefetbkxfsluiktzrukexitvpuezdwzpwbdccwkaqtvhauhlirvntzppvfnoerjxrpwbshgbxcgvnpitezrcxrbzojiylhcobpiuqscjyveuyrkmmkibdlztiofkmlsegrdiidrovkbfwytfwliqvcafmioamiczdqvsdcsjicthxkmxqbvcbwkmfcvdyhzwsdkblgxtgbnzjxqckzeghbvwfetfjxbxhbrsgkqwcijutgldrpjmmuvrekhtftjwulvanfrvcmqvznsjmlqnvwhatjsbmvtmylrzkluimvivsswbxknhejuofqsjmjgwlqphnoulgejqxxzvoqricumiggnxacjtlqsxsjylsbgfdnecuonqapmapqlmpdgvjvfblcouelyuplcdngesjkhmimxhiqaribuqjbplcbnkmnzcmtvporifrhvbqzdpmhktacbosetnkzssvivzorzpbeqnudqpovtckytdhzrlaynvablmugihcqfnajjbafkyankuonyffczyzovwjednztiwutceitnrdrdawwctqrzzmcdpykeefgfmurmsfguitrmldqtxrahsblpusfojsmhqjmftbsmxxlhuuaohgdqveiymezoycgixdngpbhtbpdpjnmxrxiatnwltpdagieymidqsnbysyvhzujnfwrverszibegtdprniebtvqzjlndqaqbxoaloorvhnwkoxxlpdrqjzvzvhalafyusgmsqmbvbzwcwpeedgvxqolkanoevencgjthbmpoogmdqdqnjlefiyjnnsjjmulocooxjxacdkwkxkbzgrfwbheuklkxbgyjpjdqultsvaspezvnoqzomeymntmgnscvyrlklsnegdpqhrmtarwaqdmzooufofbczolmsdoskvovysudxlyzeokgnznyvbizolikeizpjmyoqyxzvbvfdmubebtvpgjzgpkvgorneblqjaufcixtjvjihpmlavkxbvdztyrdtvckplqufxhcmtbozuzqozrptnatdgtgnnyjrogknpwpixrxvvqxyuhayvsuyuzoircnibsycekzlxluokrarkzdcpnwuoxupqmgrblfhcprfvolmcnbmwlfoosxcxhdotzdiwyqiekeinwofxoizenzccfsycepvzjqpupjcfpgcztvbukdclpgxeaunatymztvfeyhgnycbgbumraosicemlsxxnipswhlnzmyenrtjtmdwwqnxzynutiqmesljigataqafdgxjhnudgyhujfkqeurzjhoouhbdxwwxeqkvlqgbxgijqzjtpgtmymuhqfqgirhpcxljbxvhlujrhjzxogtxwdavdljqqquzqrblgeyzjisbxhffzegmgackmcitwxofqmcxfmhwsqflkeisnvtqrbelltusyvgrqeuxwlpckxtjdbjjnnhqhjjjcridrdhxqmwwgsevhroogfbryhnehzuxqzgiwznauezvlkpjyztmbfsvkbzqkbczpmmwfooihnwjaihrkkvfzeobtylnproncbcmwouspawbslyyvhxnopeztkdfsigzjrhzrpiveavipwsfxxbmodcokpeihsozxrfnwdqtcmuumdzptfpnpzyewdbwcvndktltcznwwguoablvapbjvawscibzirjeiqfnlttxfdlkfxlzvuccajzewmfkqmcydbomdjntmkbsiklauimaofwlgcibyayhwvugskuemdsostnbckyqmikoitgpyrpczzxcvtvomgrraeeyrufmspmubdmaxbuexyeghxoyvvkgtlhezukkhzsgdnzyfvxwqrodnsuzvblybkfhrezccxbwaoqndvsskesvnbehpfossqsfglhhirlmkjhkqlsmqmpekgeixqvgaawknyqpkpcbamvjnxkclpxkgofrpmiuhhrieqphipgxexlrznbrywijwfsqjnfrsrocuhsvlmfovkreubloorioavldrtqjqujnlceewgyouwarcvjwgwpcvvpuzjhzjduppgisxitmqmgszqsahvxewbcoifezcwsthxopgmchbhsdrktltagyujrpuqcvafoeemetohlhrbdotiuvmfizarizggonwzhpsyyrgdhelgstajxxinikszcmqvsaxfxnekuvrjfrdcxdhlzyfudwnfuoqonfuhulpgfdvxewaygtdzburmckrnzcubczaztpvrefiwwjhllipygytahjdemftrkhzfzfsolfxrliirjptmwxwhcybeibijmbisboiwcpptfghgfdsbluvrkzlmttgmrbmvhxcednwislijleveaeuycopjwueoywhczrcysrcdgcxvbyluuuqtgjnlydifsprgvzpbisixwnljjgjeovazkqwhopvhyrooyzskxbxgceupfakipscuwjbbpmprdknnzjddidqhuihnodzlkvltlxevkongdfaajbydkqnzcszvpqsdvupotkodovpmwwvczbwdxysbdontdwjgpwyhljgsunsnezdygudadlycncdauyuzneuuvdcpniyfcoedvehifrkdjpowkslnglcemwkntvvncbzumoocwornoykmmjnquyrdnkkewptyzucfivvornsbesgdcmjxxipskgoqecjcrzkbgceomgngkfinsrawttubkdxnbmgwcgnkrgfqkvfphwvnaqrbajcqlplmtatctwefmaxdhbguftyzdcrlftqadykcofdqwxbnffguocpbniwekonmpgpdlmvzqsjasvuzmebseaqzrezngxccpdlfprapuoougimbjapvejhrwyrusqswsfkkhwntlfxniasguovhpfdvqpyjekwwhyzllbkxstybrisbknoiqysgbkjzqhzypzukqszcrsxurfrweqomywinjwmaoiengcdmkmvzxcatbewefmwnenraxzyemcajupoimsanoqknhkdfhvhafbvbhtxzqllpjqmfjopwmepgjqgwemslkoqjiypzqloafvgxyoieycembtpxwsstkmvbpngmdvbmvpfanpyokigenifctmzejghmruerlmflkgotsrwpznokpfjiltljoqgpaqcpawojlipnqqvfwdakncwtbdelvzehxvijqmmrhmczpnjfkepxvqkvexdeuzabfbkjkgxjphcfzdrrnyyzoflwctxpbouuwwkclfvxqqirlgsryikxzgcpdwslfjbcldfsdlfxpvfnfirevmwvesbmqeibmsgtljawuyjhqgawkrxvqxppetondqfbbilathjegtivppfvzdjlovdwsneolqlphdwbtyvsbbcibybvqjmapuxgjrenjyfcfduvtgasirdggdnbftseqribyzowiuzhcosrzxfgunwqsuejxqyntugsjmxmnlrzzugkwxpaijgfnxwcxianrfdiafehrwmwgciowltazngaboddtkjifhtnppmwczwvdzwszuacqwcwifurqcznbpydaldnaodkvxbahrsbrczddkyxvcpfoeskdelvwzehcoblkpmrrvyntscjsyytvlydflfwpbyzznujynvrynsbgparkbujesyxxirxyrlqsdbocgtufkxzevomdrzgjopwvwdltgnvfeoinzqrjfuloqezopkreakchrsaoxpxwmzxkmfvsihfomcobxbwhxhlftmmpzoqwseutxbgxxvldpopglthfdzsjaelcdxymkyjwfhxtpmdqtycccdijmwayubsewdjrrqvnzmrdhvkbravjnqbppaxbyliskbrikrozfrnkqnbnwnyxnbkbyadkhvagdodicllnquwthwjmoinycgssojdqmwrfxjjnoroyrbvlrrguvzxxrfbvllhrpdbgkbzrwvbdzzvonkajqxsbjkfseitewkiysqkskuvaumligayfairhxyhqmsqmxjaitufsgugycezlvvbjiangdquxsjeueezechrvvgvnpgnpmbatskratfzgtmqovcwxmzqldwapddqgvfayvjdscqafxmuwqetgiwqxerawwoxxafzprxeqnvztwkergyjsrrtqeffsnclxcjgxaneapimnahmhuwtcuizosmkmcwpgfmokzuyabwvnvvkhflevwotcqpemddatvndnbezqhsrtmiwamrlcnhjgugthanxlhvpwlenprotaccbborxfkdnivjdghjbpzgefidfjclvqdkeejrncrmwveugvpcsmomqccjtvbiafnzybzlxdcnuwfvfowdkosgohyxayynqdzqpipkpvdnmdindielkxgbbzjlspvskdmkzybwmsxdlzqeftoahbygooodszkqswwjjdqgjaocuugynobaofboetperqbymgzfgtxqzmddbarrlxwixfzgmnlevnchcuhhbkkjegjksxrwttozthjxgrvbmvbwpjbxqorlocqjqfliofjonxydyeqftczriujbsflwibnkynjfrsgjyokulggccmljuvwlwbrnvbxdojdqcndfpfvmrdsflmzknafgcrjgnumewjoknwtdsgodcnrhjohifsholwrifyshwafkqifdpubwwtwglxzzreuezcwasjbheqhftgdgybaqgmtfsiuhuoxgvwtmddmjlodmhdxytibmmqsygclqyjlfmrulvrlrvtqksdabbfcfttjpqzfcjbtefdyazundpkkgiynotlgjelmxqcjtwrbwxpduzwyaekoomyziemcvkbhxmxvnopkjcfcrlhdycplildgiqhnccenrtoxhrkrunbdypvixciglmqbpyavdlsvpesjaawzmijvkwdfffbnselnicofqweokqiegvjnkddrtiedsdujpasrvuhknxistzdhmcawezcubdrhkvlkxkfvkcqusidfslsqrxcqbtlerzcxogyzapykkbpovyelqaixbttypjxocbxrcycmmbomnjdobimfiwgykvunonnwgzxjzplzogblkipilqdoinxawbkhjfftpoqsexbbnygjikhhwkqcvmigmbzaklbbmfjtlwkekzkzbdfkiauuhcmpvdntlqpdsawozotfmlpzhckcagpzzrksumfdagtiqzaiuxpjhuriqmjwycxbdmrcqlogsgshogwfivetxlzpyogqlxrfebokripcgmvakylxlyiolkpnfokwzeslbntpulvorhkgssqknlsfkhndvkyqbzptoebufjoljaijgseadzaycecxtsuqdrrogkqszhlakkwvpkkdurvkhplpnmzckrvqpdskjfdzyyegomyzppcoxukhfgzhxvimaywhpdlfftcgkhcspwezoalcglgubqoupyqdwqcylnfrufeoftjuyhsmyksaiodihlnwmjosnssrzjjyyjbwnpsfwiehqgkrbzmwewitehvigrbujpsonckalnsmqreezzbswepuykfdkccneedgrihymwbaajpoxlhthemahuaelkqtwfkbzmbbsbetuonecvslomhdepusxtybyvspkpbdpukfwacvplujypooyphdleowqsiulowbjvcbuyvjcfrjikrznzsakrfwskfdynynnnneorcrvsrhdzlotocqyvvsnjsiaakcyuvlpankacfuaynvxofaurcygaonsbjhhaamlddmaimqoraqjtqchhcufdixpsqeeyfqyerujfsppepprtcdctnpnytbppfhpvmgnwibodzsaoqotcihmlvtmmoovhjaoemklyeuhcejtnwofzvuvkrbdhkvmjmixaklrhnhjytnrkwobwwnwmnzeremoncofnqteawxtgttpakajquvbumkhxqxiqbhusvxhxaziigiiakmrxbtxaldokznknjefnpxnxaxtkdtcuprnbfkzpogeamcjzkiegnkfdaaddjrgmaoatqmxvvlbqmuewmidnhxsbozhlebcdductvvxhtajkfwyllcceltgyksrriswtvsmntlrpgnvbcmshaneevhwzhmaaoschtboenpmqwuhvqgmemvovviiabvwsnuogennmsmlhaocmtyqzkdockvmmzitlvosbjehnkneldtygsldrowxtblxylqgpqaksovnvzgtxaqejuxliabcjmmvrxrayakvbkohkaaqdyqfhwvxbvqtauoimrqfqcrjrrgwzxiszpdkeunmmkhagkygspybgwvmdeycazgzspoxuaptyxjeiwfmgnfenjyadczoujzieatiwtqokagrdqrqnohiwjdvufmryaeayedeadltjcbejryhsztpjzulzugurmoewigufoiqjkvgvivcxqvydutxsvgwjgzslckqnpvcdabeevtkumztokgfaqotbyxjmarspztbgnvjiydwujyplijxqunviudihjgcawhxcnusyeseuieutfpjtougjcvlzepytuoleahzrujxjppgdwedqghvrccvbukqdfolatpvwbppvuuicciyayqcrihqvksngexcvnowjroxgpagtllbyubcuglwvcluosubexeeueaihfcglzgsbljobpmzjrpazwppblowjayoxtpbppfksenmcwbctdgayhzeujqmbmxmwgfxsuixturqdzbiipptjqawmwxzncknfmweqowrsrrvrvlqhwzvrjogshjskpmdhngwtrwioqhrtosszludozbuknggkswrspfoeisxbhphxfffoiaufqjamqyhdesbonhontmzpxwrmsnhxqofrfgvuydkqexpiynomnovwosczxuaitxctrviattwfyltcqvzgpbxodygkgnkvqbmzrzfaneyjebhysjqppkswxgncsrzndufpmdloefofbamhjdebxpelypkiwbsxkjgbzngzdvoetuolddgrzpxqgkkpcijzgetimktzsfnpwxyjlnhbwxjqegzdnxxqfebplfycumbfqssvojkprcvuujpqkarnssraonqladoynfbqpziewnkqravitzolcklguwlatoimumrbvqoyoitpafxbjvxwxetlxehhwwfpyylwjlmjsxgbjdznmiuernwijgnbunwbkewvgqvlyhhnuutxpnlxbkllhycsrntpwusdueugvopgptvgpnbipyimqytozikrxqepiksithoxlobvieiipqgklqsexchkwxtyakejnqulojphzjcnnevfdrodslhmswejfdauxsgsxycikqtisacjwjtwzbmcrqlczhmcsjblveqaqehqmfiuhcaqwmvabvjloofsglbqsyzirrwftntrjdvdofapebndcidvuzmspazyfimtdonxyslcdkldcobxgjvjmaqktthhzcmlnpwfaaokpomacuuznpqofxvfwkkzwgnbppvpasizarhyqrzinxidpuaxpejmyzxmomcliruxwfytmofsfyvkmjeitpqszmdjsuijptbcvpofyklonpqiyuhiyqexgtnnooittkmksjnljzlsijkdzrfdemyucyjwsslajfwdtltaetnnwxxdvgpkjvudytibepbjkiiohpfwgccfqghbpdzsisxlsxvydqucpbevtstxxmpscfppbsgdtnvvekcfbnduhahtsbonuzbcunujhzdivhexzzqqzklwklcprvptqnnffdwlqzsiuxeuckzxlairfvlcidvldjlgbmnxfwlcqnqjegndgbrvwqkgqdttbseyircqnphnxiqragnumielsdrsdnyzrlufzafmagogosfekxiewkiahcmesgkiuwguzcycuyjwmoctfodizjqtrewpssuthlchbilakmkdtpzjacidychqfccihwjysvvmeuuefxdhmgtiatglhdflzbuccbihqxlflfnogopkjzsgdrxdfwhwxmompxbnryrgxyjgvwrluksmvqpzallqshymhomvofcclkyjnlrrbwatcfzystsfikksyewtcaqxstqbquzfabvfsxzspwonrfqdqhmvogokcaadffmtsdndztugzxcsphkeieuyuadmnwyolcbgchpwudkfuvtutwbcohcuzreoczhymgwhgnbdnqxdkdbvgwdthccqhkfzqkowdqvwnshqkezqnvhzupajtagrptwziqtlkhcmwvmpvgifjmpkwoubrffhualqlhtvijnisdaimlbqbzbpzrsafwzcpuhumguinepkvidsxxiglucyjwlurmkjprooashskojvoygueqwziuddtsocxdbpfjzuaiwwwmntjfqaggrjunvurtuotbzjvcmbntxatkigjqunrkzyslyemkqhgfqmnshubqxstwrndjodqerbstgsitkgukgzephybxgjixfxobvswayuqiwlrkzyptxgcbdyymghhixzcfpbfbucitrkjxiijgchuxdvgnagwtqhtqzcyebuninmzidfvvhufpxckfoksfpaosdfsmyumjphjskgsdvfsrussugaloqjzmpqlmssdxqvvesrindtzipbvvtwbgehiesxkbrztiqcbikbuacodeikqntgqdshhfkgtqoeqhpshsuqiqtcbdswcjkdtkcnhglarratqpzakikkowkziuajydfcqxumzyqkedmoqjukadcbjcnffuagwuldfcbgptpshsatqrdtssrzqbxkcsighfgblljirsjttpgzblzkouesfshkzltymycidkvnakwtiuudyuxcgvnrcofftfcmnxetcbsgllpcmvowbuxmgxshqzcybafgtpfcazynrvnktmlpwsfozxnkkgemmxyfeevnfuiswkpfsenumftymgplgnnomranlttlhdiipppaepnodnktdnthdnhkaristwcdbpquvxxgdmwwlfwowrrwfmwkdsrisbbfzimicddznlvwwhnphtlysgmkcuukjyyihxfvjavpiarggdmfmqcbifckbbwiaskbqrpdkspaehwnjeowhagfgxwfpwanmhedxahuaxbqxehhthqixrlgatydavokbvlhlyraycixlxhmlvhdymnuqjrrkwnoshzwgegiczmobygtkmsoznfyrwamfwvyvdtypesybglquotrkoxepbkeghoqxvamtadabeunsuaheyfskfmiutndtvbtjytiytewtghlcdhywseckbzkurtwujhciieereykhktiimdxoiwrraxjimriaysetpfdplpwfkpegsjvtcgfbnirlufieaqbmmfundlxvrmphopzmntqkmttjgfftejdkqgikwmkgnxqqwmeyeqfvropfzjgcyhtgyrsfuingkfayolivttbtvdpwlvhxpvxuumognzclnjeghfciaojhprqtahcocpwugaebeecjkvgmxyjpqzkuqxzhypobzgbwrurjdourlxrvzfkbllvrluzhzitigeyerestxhmufigbiwbqkjtlqrvowhrfzhocxklrvkjyhhoydmfdgyucpwqlmrqzazeaijthkbpihgcpziqppqpjvrgqomwdryblivezpdtkdsvkgyrtmrhbtamuaxrhvfochkkxfutrflrztpacqfbbtnqjajbqjraptpnmjyotvpwjuibwbewygvcexpgeiemntjaamjpzsihasbaejqqgniscnmivftcwapscodtrcwrlxmdudohrvjjxcceqxadtwnwatnjclatmhjzwjfwiipmlblchtrntmgrdwqesxapjfjxsijtwbwyixnmxcpjptsqpfrryngghjrlfnotvvdugadlqomyfnmnindaehmgzkkscwiqknrcfanhfazvnkdhtegcdecjmjbhhauoqrxnywybmpoiwiqagpxilpzvcvyxfwfcktjsvlzyrhtxeetmfbluqfqhvxcmxduxoispwpfdmznunssjlrwxxyuarkuagmgubsjohwukkzcpyknsouiopchmgkgoybrmvxvzptuukhazuapjciehzjpzxbvuetrqtlqdyqdgygrsazvoeivqrojvaamumblcbuhcrwehawsnsvqqhxilwjfewujstomimwriznqoeqouyevvoptwhcgkapyvfgjkbrepknifinwmfwhkcoktlafgybkqedxffxejrvsxjlpeqmlyhadulhvdahtrofvhmsgxbbvspttpwtmmfxdjszczohoisyjqsgjkxzmoarcamlaguouhfpnwkkrbztfppdnugzxvtxsukjobubqiklpxdnjeiykxpenqfjudduktqyyskvbxpnckwbegtienbiorwgqpjfdazsuebidhdedjapgojkqpurbqkjpvktdhvmwpkogjmdpuxxtdimvzjywgnviwpvhutwxwxzviilsblujmjgquwtoeqxpilhfkrgcisnvgrkrqxdaedyjfwpupwriiefdoqiozfwrksbydzlxyiiswcurauwgrxurhjftkdphppiqvlvcsxodswccxtlwvbbxqzqqlkaqhoraphuxplsewnqyzqgjxostouosugujyeeqogsdwgxucwuatjomyibhoyduakdbikbttsnqakkeiddhmqdnfknamimntljsmjexkyigamqxznwbxnnckbivgpmmvekmzpsxwcrhupdsqgbsmsejdqklzvyjxvusdwdwlqseprdyglmewwupgxocygwpnqqsnuukxsgetpkjrprqcovxcmpxdusfmesjnaurrgafnjbovsroglpdxjtumwduzrmznnermzbhicoexbktqokvacrztiufxlmynjvgvdjdzlczztdxkbkbevhbkjzqygwzlnzzylonozqievudwndescjnvowsbiqdoipenpxmqvmdheyvpgbmbvjienyvhudslzaxktvausygcpxmiroohyommjjqbrlvoijglqltdlgssehfkdsiauvzrbkgnjzlkkovemoljqubxacqmkwafawaadkvnvijlbpzhgaekvngvrwfdlahthlijpeehojnitcdzcbjnedbcryjjtiegqtabowfuuwpqlcshwrmglsllsprluqeqhiwdwdjobmkvdmuoaesugxekizqdtcrholrpdndtxnkbwiaovcurmmyffqnnrotuxeilqcmxwprqgqchdkmmbfqoplpjaljfidjrqmiduvcvgqzrnokzzhzxuslhgyollcjgiekdclxmfihsfrvgjxryfquljehmegjmrqmhqcojozxjhyybedzsfexgnqcfohvnugbzvboksptnrmmrxngelltcgfumrbnakmxpeffhhznrougeniqquxxgkvjnkiwojsrcntlwmkbwrnnovbhvykjifcsarvbcypejzrfvcbshtkanodujgcldppydbxbgcobevvtkjhjkxjjodxkxfyhyghucjiqbqrdpibvipkbbsmcrhloztwaunmjpwymrakhtwvqqgckdnniafktvmiondrewtygwuvuogenrrhdiqzuygpimjpvjkxcjsfemlaucywbitfzmuttuvavduuvrlhgvvuephgknserbnlgpqdldlulccjgejuobcemvpmdltgijhdaltuatfzgezlfqafcnroedbnwkrccztructsfbnancqjuryroyhevuulztnwvwasnwjkhosnyuhjnahcjxqonowxenykvybfixtoshfjirujmlfexzhzqgkfndopmmyjqyuwpzozsczziqnhdgnmzgszdwouogpdcixoxuqoxgtjsvymzgkvremrfuawjigkmicvbbwjprbfcekrjwzxufasejdmourdivxsftwncvbhptydamlsxiejnabsvvrbsyomvpnsocnfnbjfxebnpsinyjnepjxsedqxczwmgkvdsdmrkbfaixwtqtufqdralwuwphtelnlzphmmzfhaubtywbeuixzfkvomitbtwbzaszmzyevorgcmgndfskyorhuzjemestwdvncajumqfinloawqfgvdoabfwrzarjpxvhmamsbvuiqpifkxcgacbzgkctgbqjgpsxoaepzvpdczssvxvtpidzxdyadhtkkokzjihnvyjmazddrxrglmlfpxljcsdsksgoolbiqyknggvphfmvpxyumluhyqoeudmhmrwbxszfakgxqouxejlkuobcoixvoyicvpgmtcofabaqllayrtaevxwncmywdnsowjrujuflwowzaplelplcztatafhsrwcezjdxcgkqbeuufryzuflafcrqjvtixjryxagmmunfjshrjvxjuguypqysyuvawrgayuzpmggtzlsemflnzkkaqojavhhwfpszdrcedjfpforveeoohvnnngjnopcgdrdzfgcxifscfzopzakkdkcvelflvkgdnwejiivgobtllrlonpvyhfetphvlhkiugqaucltgupyyybvuusagoatcjzgkntcrxsfnbjjnzvyexmbmqzbcbubvitmhlpatejnujwrbzxonmmaugfjngeozueuyvqgkbatsopeqhqkrhkkjdujrlauixhclboxfdbermdmyvgbuumsptiaeypgxcveiddoeonuqedkaxotabnocwlwmfbjegghvwejinpxdgurgmuytinqzukrlzxsvuhgmbutktllhimyukzjrnympynwrysdusutbpdfcifmscqxjvpqiyccfbggwzhmnqluzmuhaoiiihqktyzqekffpjvbvrtalsjtqeucooikhawsajbidtjtlsnlnlsnldjsmdkkinhnaqxaksxoprsnnbdyukdmrawocfcvojqgixgupsbdtsqyrnwjsdbwjjsepvuinsyqszpokzcjwxwgyaakculjysigsphntbjdstctdevusuhrfgdhgzfnfkjnqshhqkibgaggaiuistjtpqdpsertdeirrsbtknoiiaslbcgzjjycyfpndytpcefztzpoalaqjgctfnvmhxlxhnawstmceayzhjgbdjtqsnduzgjpjmmwithnimqyqlkolqjxzgxjvlkczobfrwfyotcfkwvrntjqnggdunnfahyboleuipkjfykzlfakamhrfyjjbtylvetofkkuxptuxzcwjabpnbohdnikwommthdwvltzbgpkwrghkejbzhrelmicsxfxevzvqzvmhzadacudicqhbstudessxncalsitnopfaebgoddavfrydrywtvkplatvfnjdazogagowoxvunlciptdsanikvrgsagpgmbqgrqjdlihzuzuqasvjyemjqxgewnjdgtewzgrefsdewohbhqamfmlruhdzldslkzmecpdifosmrpllfwecuyjtndpctennzjltrmqqxmkvkkwzoqtgzhtgeazsavhfmsmugsmmiduvrpopbxrpaujditrcrcokqhnphtxjocifnzzivhfphiwpfciplzwnbofvwyhcfbdnevpgjkvpvxeedqnwlmzkfoxziobutxjdzziwzwtzudprzuabfmzkpzlvzruzgraxolmrldlagtvlmatijzqkbhrzvawzbyftqixrrizxuqrnygfcwvbethtgkgyucrifhpcqaydwsgvlcpuevgloofobpijilifyimpybruuspkvctrjpdsixyloxfaorvmkefxnfhfuwfnezpzsnoxfjpblpyqemkwczrdvvzqyalxdnqobxrzqvdpyzvpnvtvoilduhkiplghutgxdypilssrotiabiqjralaofsnhizhfqlgbhjuetehbjrajgliirhkboqxjhidpetttuopcehgcgrhdquoevilpiskwwnqfojxnbrptbsmbujpnubecfrddvwtvggzxpforuhapdgrnxsmyqgvhzneyoydpjxfvqnxsmswyvvvfptutkxmywewopmhzttfulvfnagsyxrpioiqjmxjhhouwvdxunbmfsxynjh"); + sb.append("a"); + return sb.toString(); + } } diff --git a/src/test/java/dev/stegmaier/leetcode/services/LeetCodeQuestions/Q3085MinimumDeletionServiceTest.java b/src/test/java/dev/stegmaier/leetcode/services/LeetCodeQuestions/Q3085MinimumDeletionServiceTest.java index c22e49f..33cc116 100644 --- a/src/test/java/dev/stegmaier/leetcode/services/LeetCodeQuestions/Q3085MinimumDeletionServiceTest.java +++ b/src/test/java/dev/stegmaier/leetcode/services/LeetCodeQuestions/Q3085MinimumDeletionServiceTest.java @@ -39,26 +39,33 @@ void shouldHandleStringWithManyRepeatingCharacters() { assertEquals(1, result); } -/* -@Test -void exceptionTesting() { - MyException thrown = assertThrows( - MyException.class, - () -> myObject.doThing(), - "Expected doThing() to throw, but it didn't" - ); - - assertTrue(thrown.getMessage().contains("Stuff")); -} - */ + + /* + @Test + void exceptionTesting() { + MyException thrown = assertThrows( + MyException.class, + () -> myObject.doThing(), + "Expected doThing() to throw, but it didn't" + ); + + assertTrue(thrown.getMessage().contains("Stuff")); + } + */ @Test void shouldNotHandleStringOver100000CharactersLong() { String inputString = STRING_WITH_100001_CHARACTERS; int inputKValue = 0; - IllegalArgumentException illegalArgumentException = assertThrows(IllegalArgumentException.class, () -> q3085MinimumDeletionService.getMinimumDeletions(inputString, inputKValue), "Expected q3085MinimumDeletionService to throw an exception when a string with more than 100,000 characters was provided"); + IllegalArgumentException illegalArgumentException = + assertThrows( + IllegalArgumentException.class, + () -> q3085MinimumDeletionService.getMinimumDeletions(inputString, inputKValue), + "Expected q3085MinimumDeletionService to throw an exception when a string with more than 100,000 characters was provided"); - assertTrue(illegalArgumentException.getMessage().equals("expression length exceeds 10⁵"), "q3085MinimumDeletionService did not throw the correct exception message when a string with more than 100,000 characters was provided"); + assertTrue( + illegalArgumentException.getMessage().equals("expression length exceeds 10⁵"), + "q3085MinimumDeletionService did not throw the correct exception message when a string with more than 100,000 characters was provided"); } @Test @@ -66,10 +73,15 @@ void shouldNotHandleStringLessThanOneCharacterInLength() { String inputString = ""; int inputKValue = 0; - IllegalArgumentException illegalArgumentException = assertThrows(IllegalArgumentException.class, () -> q3085MinimumDeletionService.getMinimumDeletions(inputString, inputKValue), "Expected q3085MinimumDeletionService to throw an exception when a string smaller than 1 character was provided"); - - assertTrue(illegalArgumentException.getMessage().equals("expression length less than 1"), "q3085MinimumDeletionService did not throw the correct exception message when a string smaller than 1 character was provided"); + IllegalArgumentException illegalArgumentException = + assertThrows( + IllegalArgumentException.class, + () -> q3085MinimumDeletionService.getMinimumDeletions(inputString, inputKValue), + "Expected q3085MinimumDeletionService to throw an exception when a string smaller than 1 character was provided"); + assertTrue( + illegalArgumentException.getMessage().equals("expression length less than 1"), + "q3085MinimumDeletionService did not throw the correct exception message when a string smaller than 1 character was provided"); } @Test @@ -77,9 +89,14 @@ void shouldNotHandleNullString() { String inputString = null; int inputKValue = 0; - NullPointerException nullPointerException = assertThrows(NullPointerException.class, () -> q3085MinimumDeletionService.getMinimumDeletions(inputString, inputKValue), "Expected q3085MinimumDeletionService to throw an exception when a null string was provided"); - - assertTrue(nullPointerException.getMessage().equals("expression is somehow null"), "q3085MinimumDeletionService did not throw the correct exception message when a null string was provided"); + NullPointerException nullPointerException = + assertThrows( + NullPointerException.class, + () -> q3085MinimumDeletionService.getMinimumDeletions(inputString, inputKValue), + "Expected q3085MinimumDeletionService to throw an exception when a null string was provided"); + assertTrue( + nullPointerException.getMessage().equals("expression is somehow null"), + "q3085MinimumDeletionService did not throw the correct exception message when a null string was provided"); } } From e47c7ab1c2a516dda035f5d1ddd9664cede971b4 Mon Sep 17 00:00:00 2001 From: John Stegmaier Date: Sun, 22 Jun 2025 18:35:55 -0400 Subject: [PATCH 12/12] Add logic for handling invalid input --- .../Q3085MinimumDeletionService.java | 31 ++++++++- .../leetcode/constants/Q3085Constants.java | 11 ++- .../Q3085MinimumDeletionServiceTest.java | 67 +++++++++++++++++-- 3 files changed, 100 insertions(+), 9 deletions(-) diff --git a/src/main/java/dev/stegmaier/leetcode/services/LeetCodeQuestions/Q3085MinimumDeletionService.java b/src/main/java/dev/stegmaier/leetcode/services/LeetCodeQuestions/Q3085MinimumDeletionService.java index c4c6bb7..2bbdcc5 100644 --- a/src/main/java/dev/stegmaier/leetcode/services/LeetCodeQuestions/Q3085MinimumDeletionService.java +++ b/src/main/java/dev/stegmaier/leetcode/services/LeetCodeQuestions/Q3085MinimumDeletionService.java @@ -11,15 +11,44 @@ public class Q3085MinimumDeletionService { private static final Logger log = getLogger(Q3085MinimumDeletionService.class); public int getMinimumDeletions(String expression, int kValue) { - checkExpressionMeetsRequirements(expression); + validateInputMeetsRequirements(expression, kValue); return 0; } + private void validateInputMeetsRequirements(String expression, int kValue) { + checkExpressionMeetsRequirements(expression); + checkKValueMeetsRequirements(kValue); + } + + private void checkKValueMeetsRequirements(int kValue) { + validateKValueIsGreaterThanZero(kValue); + validateKValueIsSmallerThanOneHundredThousand(kValue); + } + + private void validateKValueIsSmallerThanOneHundredThousand(int kValue) { + if (kValue > 100000) { + throw new IllegalArgumentException("K value provided is greater than 10⁵"); + } + } + + private void validateKValueIsGreaterThanZero(int kValue) { + if (kValue < 0) { + throw new IllegalArgumentException("K value provided is less than 0"); + } + } + private void checkExpressionMeetsRequirements(String expression) { validateExpressionIsNotNull(expression); validateExpressionIsLargerThanOneCharacterLong(expression); validateExpressionIsSmallerThanOneHundredThousandCharacters(expression); + validateExpressionOnlyContainsLowercaseLetters(expression); + } + + private void validateExpressionOnlyContainsLowercaseLetters(String expression) { + if (!expression.matches("^[a-z]+$")) { + throw new IllegalArgumentException("Expression does not contain only lowercase letters"); + } } private void validateExpressionIsNotNull(String expression) { diff --git a/src/test/java/dev/stegmaier/leetcode/constants/Q3085Constants.java b/src/test/java/dev/stegmaier/leetcode/constants/Q3085Constants.java index 7bd5207..7dc97dc 100644 --- a/src/test/java/dev/stegmaier/leetcode/constants/Q3085Constants.java +++ b/src/test/java/dev/stegmaier/leetcode/constants/Q3085Constants.java @@ -1,11 +1,12 @@ package dev.stegmaier.leetcode.constants; public class Q3085Constants { - private static final StringBuilder sb = new StringBuilder(); - public static final String STRING_WITH_100001_CHARACTERS = build100kString(); + public static final String STRING_WITH_100001_CHARACTERS = build100001String(); + public static final String STRING_WITH_100000_CHARACTERS = build100kString(); private static String build100kString() { + final StringBuilder sb = new StringBuilder(); sb.append( "anbdqfaxjxdvtvfjfdchanidtxlnijlrcxbcxvorxqqtifsjpvrzdaxpszjpmnflqsdbfnezdrfhciegmyjnpmvdplbjluqynqxrbwgbpilucgmojxtlxewkawvdaxpazuwwvufqtdqtlrtkxwvbfdpmdutzoqdaykifgekwyiaowzlcehvabxgykkhyvmkqbxtbrdjrwdumqtrjsfqavvpbwaccwchovnphxvoxuyxwhxuaxyzsgrvethagokvpprgxlzvohpaqoxvpazbhwbdxhezvrvqeeveiyrmrcxakkbiuiowfhbgixkazykgkjpuffbbmsvvpbfsjwdxifokttenygxbdurlzvfooiyxjskdvubwbimlqzyqmefnwnltmloyvbedznfnkozdgqbodflzfalbnceislrikvvfualrtocczfuhucpdqbwhsnnhklrdhhbqkxsmmipebpdycfnrjjwfsublhqdqrlhufkmfmfzjrycyxnnokvypuxuyeyagflohceamgvlbqtjizxyjlaphuxwiclznnbevrywslooevmcnsaqkdypdrgbsesyiykugvnwnohximtiqaghpbdrkyypzbsitqgsxheywxsgpjagkwjqthcskgllipsivwckfhxkrfbbacxrmksykmozkcwnrmntllnifusrcaftxrxgxuipdgyezgsiwlbqsnrrjwfcglknrpjdmuchisikysmthxqzjexlwjjhritkxmxoarysskzkevnyncdjmudxnltpzkfiscobdhlioqvhqywzgpcbwefxzyellokuwmvyzfnpcxkgugplaofsljgmbwhpaagngiybcawofebhjplxnjdymqeszlufwjicqgzortqhgtwichcoislzilpwrdjmiymzpklqmbzwhpocvndecqxptwifgebmwgamcotrnhaobwcfulcizxlrdniynvdzxqhpekuujjebxlwhlhrdojmrrykdrctngnbioxywaofkljwaighninivespmrafgtrkzdlycuncykcqsnsglulaiifyzwifmtwitolmnreitgkskprnpkoxlqqsdqtzfohrflrhvnaygfpcdevowicgevnovdekblrkjeqnkjxyfisboqaattoicozdrwvxburkpivdbgouhxjhzshfzybauccymyaeljqgxteaonjferjsaprvtrzlaepbdyedhaswmrkppofarrfnkozvkvoeaporocmpvmoejogwcppprpulwgibxhwwscvdsrmcmjznwqasltjkudmkaajxvjllnttygjxvmnypligcnptwazkkipsypxblwhhoapxetlhlpcarjrbwltmyooaclpirmvipagdqqzehmqbqrfzrowllwvozikemtmdzohndzilihpnjbrbbyznprfsyxattqtvqshbsfvpfnfhexqdtsmvsdqnnkzdzxbgakoytxgkelmlbgsdhcglszyskvxtnagaaibbmuomncjdxyfisfycdclaccqlieyrbopmqzgadqjatymbqjqplpdgnbzbjwdkmcyjimzwynahtnyvrjwokviwrtsixsftnwnxqrdlitcdfypcvrghhysmizvpldipjjykvyoxvvqhgpdssbocjniywpxjjpthaigimklkrbamsjkngrqogzjlcenyrjdekmjtnkuxalfyrjkbzmpgdjmbhuhpzebvliezbuiqdvlsehwxqtfprolodsmkhhqtjqkvjqnlsrotlmmvdrgyaynqkpsqbjbvwjfnsfqtpwdlqixebkmdllqnpdfrjrhqutjkfsxxwkhstvipropthkrphytvmzvpcjgvuzuilbxlwqijvyokrwavglqxrizxnpqfxojglwqcgrabffviubuunvvvjkntsyiushoxrqxjjefkznwtwoodjptxijtetzfghmwzocqkyugkxipzfvlluttqfknyawsikopsjrqtyqoucmfwgrstaykfrtmikhsfqnfmjlqgfyxddsgobfehjfgjqvhqyrogquozaalqzaftczmianpwlbxzsubssxukcffxcyaahcmfyssdtcqvuewwyomazcatbourekwnkzdooucdentymxyghoayuukjdhzkvjebknldckfedbgotsrlopvskupvzdsfhbkfifjpmaskmxaxznbncxgtzhiulfvxclrbmshfagzcavvbtaomoxdwmwmyccexqivxgopegphnghosbhmvknmtnmqmwzhdtdgejoqiqkocphaunqzmsetzseqhjkfjfhlkbkyeqacloqkxnheajtlvfyskyalmeepgiykehfqjodfhshuexumpxsfajzsatcrlfdlbmlogcxzfsxsjndlddjxygnvogfqtfcrgcjdimzhakufmebqvgdlsyfadmkjasxeuvsbsybcxkznqxlqaypitqdcqfjudfzvgtvnqplevijpziipndskfzipuurcsecwjkawhznxocezplcpslwfsreafzgwzihnaeftsdshqifexmrertgwtsifxymljvighkbvjwigviybmihqirjxwlvyelfgnqbnntbnpkridmxkrzqefuiqaoflawiinsacubmxdfreesslkqonrjnwydfkludxituraqzawswsbdmgdkqlyrmmdswhsswlatblrfuchyoyamrfxaofobxhhrayzsmotpsbmxogvvdnsayzrnjuyvwsqtjuensfzdpnydqfwghiqisyhhspmbudevnsvnrfqzspfkkmbsjpcazmosmwdzrioroytqmgzwwnvjkpubdfaxkvpgwjqduxheuyebihhsaqrwtahsbajnmahmgtpibynwuskrrnkiwvejdnwswzogklcmhpklkzbqargrtkpugbrbknhlfadqyksjztdyfxhjxckagjjiiukrmmsoukfhwfsehvkozxwtcjqtufkyqsjtvczjesoreruzyytvttdwomyjzvpwvvtkuncrimgvazhvvcdttxoqqjiljnshdlwoenokesnydispgwglpctzktatpmovsavchcglyzlccwtwywfwrugvjegyyacxkdkvtzoociboukgpjwtvmphpxrjdvyaekhtweedtkehpghcuicnetyaqqzwcoqqcmmzfjbjpeeanwtyoytjcigtnfmzgpbpbxitrhduvcfayguufdzikyeowaalauyuejlanpplitrodghnvahzialtqaniqhuslrqfymaeqdjjguyuhbgzxbmmzwkumcfcjmyoxgfspnpoqiqppazawtpdmcoucmhbggexoegpiiazvzfswohnetpsvwrpkjkdyexizdzkuqseceeaybwbailfdqstzmxkjxrgweaqvkqwmtqvmbjyysfdkpstrjkuuyvnooadhoxfntjztsnvfflyfogxlokkouzvfcpvowstvddbatraxaellrnnllvumkuvxkjusatyhfuxnspaxrzgxyxbhpdbekzuywcxqecheiojpnhkmsxwleagpicuktpyxflhoaeivmhoysvxhrnhclnmpujmssvteirkyqbmwzrsnbwkjwydkygwippaceoxbjcpcazaebyhwqucxrxymgntzcqzndmgnuolvfdemsvybxazjwiynkedmnjvsioffuldckchibcrihpzuhtugbvujlgltelumzburfodugjwtwzoktvzlospinntzhjrmrsupvqphdaqiygxdfkodrafkblrbkfnlmxlxgddcbmmpckxvtsotghaiauhwhfgegoxscsuywgllyvbylnwjcnwkyfqtnidedhwawahampccazaapjgusjujntvbuyyuznlhfqbcdfumlznfxlyzphaqeqtxtsmncultimqezqslkisdlvrmnowaayejklonypytfeyqziehijbdjrearsrajloqbsxdnlqbtkppuroidjhuvhyrwjbdkxtzftnvfyoymnrcrmkaefcclzmpxqnokrujyucuojiruztjviiwwsmkqnbefowalagrwmxgqcjzfmrfnrodnxuezkccrgeegsaozyvhjjjwibhxgsrnhaedtmqahfttukkmzvcwdiyrmseuyjwsmgogrousadnikaoeslfikeglqqaylxwndlbrrqnpgkfqaziqegyamurmzhkdfwxnyhraubpnbtbiitqsaltebbvluldopjsbnhwhijqzpjfxnvmzxxcapmxabgrpsvpbouiqhaokwnnoxetjzcilnrcwxfnjhlrpgumxkykhxclubugosfbygomcszzxifukrxtuvquxbzgdayesofcywyjswymaljdjcocjmjjrauokevtyhzrcmxwlneplgdmedkvjivyxhkrvheqeouvhustfhzsawjeftjwezvcbibhkawnwnpkutadhtlbthoaguzmhbseowmpgbxvvjapfbahpklrghqgfqcmhmzmnseosmweomtofsruxfgkfcvziowyirbhmozscprchkhnkiwyylkfihovjijgrxyosyuqlgptvljxuipoymozouritbzbtxjzqjtkszhewcoxahurarhufndxymkgymfetvmcpnydgyiviebjfkrckqsmzxuakjbdimwsdhgqnhywwuojzjssfcaxqgsauvvyqyehvjfrpbeetcpnuokbuvrbrzdwqkjqcghjnddjvhsazqqnfxzeqxqhrbqgtcyblxleeqehvordfctdojcnnhjeoajeuebajwkjqquncndaxanmjxiqduuikfhvfebpvjtqihxdipfbrjdqkocjzuahngmdlysjrnmgspdcgtgfocfcsclvniiayjmwghnxqtphsgsjfbsophezlndifyqpkxxghxegcoivowqlkenynzsehaxmoebyxecshqxabxxhqrdgwioqtyoqultvtpoxjfsacnpeiwixlqujmyzfwnuwjhqosoglpqbjekpbvukxxjhwnyyplhokvrpygfiwdorlqfoszpqpkarltkfitehbqgkdtkdnefwwtbjfmuqjcthtegjekalhmnhkrvxzvghjncafljxzjcpjywfeyyuzrssrbtvzrujnridfpcjnefbirhvuhvltuwhgpliewprggkxrsleobecunhbbbvvdwaozknuobdfbqswvunxsdxwarkgiuvgmwefbtquecwlbodxvoqmgzwrzkhubgvlcturvszklosmnwmpwlxjdjxwpuvylquzgvxiocnvjovfisfgwrfpnqxavvygukrdpvoszheejmhratrvizkrnxtlyfhbueoinklqvtdsajoyhqasyzkiwgwkxlzukmrbtfgukidugsdqqylbxyntqbyrrqokzwgvwwjizihyinyecggxfgnzadlggadncvofaurygfcikcsowstspilgmfwvtkhxpahkpnpejchmfvdkazcolbwsjwuiaqesclgvpougmtdlwwywzrhowvcchbsdxpygtnnojqrzjduniflmzgmolbpfundqiaihrevzudpcagapyocqakcgopsfjrhdidhdfftmzdqjfzeedegbcvrlraryzsuffdoqcxekhvonklujzrdbzldslhqlqxdqlvtuasigziotykeuychmpxqjemzuaypwoupwcoskuwdgdfeqsqnayavqjaozmfijzodxzahioumgornjwfxtnsjdqycmhofrmqexumlzmffspkhpedsjpmoasqvzgfvortojphtwtscqxnzpbhgvzjtezsrptvsysilwjihhnzijwxyghgtanhvnhcvxligrgtiwzdrcluunzebnikxmafjucahciheibtouwocdgydklqochqumdxjcznysfaxgdzfkkdafwklgoadyfqlbyvvzdjelcexafjxpeiipjrgnlcwfhemiepkxfjsbitclsdomkqvreavunlfucdclyxcgkonugnfhkltjvmmccbqcykpjehxmlmlksdreuungllwiusylyktrmmqjblugreojdeqekqitlsctxyyurreujjlscvmftrcrxhhtghiigdjesdmkzzjedpbhqwpslxjqpxvvrtdagilrtokuqsgdijhawgcrlrxuhizcdbmoofwqpbdsliwquboeqeeqrzckqvnyjpimwphehnqyzeopudzrsjlytipkrodnxxcswgozpintrlbrrllaiyoxbzohaurzfahckearddxnmzbjyqucyffjjzotkywoehuhifqkvjiausgkydclesbcuoyempxtcsbonbuigypxkrowhyqmvopmdorbhyxjvllgccvlmggefcwxncjhditcmyqmjcdwvljcjeppvwwjeoqcqjwmtpikokyovgsogvfuwkqvbumkcfqopmgzxgcvbsjyeozrloxosxzgnjspexifeuyzaquawakeeieclnujfxtxnlwgbdazqtbgbxzlucjfltblscbbqmcqztgnrcrtimsivvquicjuagvectaaspoctfhpmxqulevlxuchwajdpciehjrokndmeyhczsgpjbasrnkcdadynxmwkjxmrrlovjwuottjodasmvuvclqwfcllorbixxydrqphliztyjwgmbqigoumlyrqivoqsvctiwxbvsmnkbegxrjvgxmrplronqivkqjhialcybuhoylsdkhraftefhodngucwynuupoffdcnoshdhietdtntkxuozwzciuukyjhwunuhbrvqdhqpiqupfdzefqhjvjfchlhfwnllpepxgccdwdlttzgiaqzxvxsuljaskyumhtjscfpzcdftgohrgohynpxxylmnjxrtcftvllygoggqvjvqftgbeigrxrgtrzwpjuqlmglccmfnqzvwvzofthvnrukxcxgsdeboihjkmizblqaxpxsuzfxncwksdbfqzfpbyjtogwfdjewtslwmljkwyjycmguntzuziehlknbdujsewegdltqqesdbfnsewwxlktxnbpqzbecxcyyomsginvnimicianmtaynmpfiiivmmqqeparxwleixnjwfhrwissmmdmleobeabawtqiwxbecehpnyfbaxtwncqyttqworembiibuwcgejvdodfufwyufpbdhmsmdkahnuuvvmvvydajuuqtofzxwjexvjwkxdzwaydhrvrohxvipcadafwtvnvpbopgatcofrxuxaaypaabbwvpmdazwomuebwfitbbsikjqumcxjcjsdwsiyzbvonxzwvqqyhbmmafplirgmxkximeyrkyuwhqtgbibbdihgnvjgpkunzzdfogdezbvvchltqjftycylhxtpjvbtxdgswzljxkzlobiwvvniugqvkxyzhnispljqytfiislueefluuzsgtzmmcskgileskpsmguunuhxjqcprvdujcaeyrpaubjocuwcvwxqxjhlhjtqsutfgpvbxtpivmmxgrasthpeyzcteirwaecjhbyyxtedeikeiaszkhsxbrolmuprkowvtkclkasqcmvoxtkldjcbkgzaaybamsjjzsutyvjwetgtcvamrgkhinjrloyzxycojzvxklmgecpihqocpliwrgcsaxlrpvzftacwvneeheqwfyxvbdxwnvoiubjalxzwgpbodmlyfpvgqwrfblglkzyukszrwbznfwbfuvodbipozvueoyrtztiwojqxjinatelukugvnnuhtxomsvivtsbdycozhyicsqgbjqutbxudhllhmjhsfxedjkdmdosnzwcljpguihrshdbacyvjcvvvrefventmzjeviwgmdjhlhfmzvkcmrjiuanqobfvfauuwhzmkeehimtzetsdhpegmshidazcmfczurgdmdxbbqixxcljqilcgmsgtggatnsnazdrrmqzpzneyapxxejefqhftyysghhuodiqxjxkkuweszzgtvntxjwqhrihnmhonxqsstrozmgwqhdlpwvthtbtzlybafuoucjnaupyydfdqzitiycamrncfexqcripxhwtgiixwwbfhasefjdlqlqejzmyklzoxpdtknhrofvrtwijphwdsjcwywvcazrwcxgqjlpgzcgznctpzyvqfkfpseodvyujkldxxuvviicsygkhvfwkxzaikaiqqzkzztolpbuugssacmauwgrwycttvamdeysgnmxwodzpcxhrfjtaumutoffufzusjjxvrtfxjdegdfyfevmxmnoltucyfunwiucbdvgfmwayzhzmpzcigfajzyitavacejyqvclbmvkswmukuijttywhivxzndtvduyewextpwgugizsarxcuyhnzpsmavufsxjanvlmabhmmyedylbpaqgupqinsjojregbvvwtqnbschfbtmxrmzuvuihwmumeyxwauktofkdehhtgupznnwcjmcvkzodqowjlwrgmphqfxcbznrdrsyyqybxwrrzglhzcfqvsduqewcbuqcaudjcuaxvuvrxgrgrhkilqffxpumejdtdrmeuhloaalyeqsmfbdbwjpyomwklaonnlclevbinutljpeaxmipocelnahoqpzncgewxkotxatdqmsmftiihnqnnzntrjowutydshcwobtwcizzbamxsaeukxedxnzistibwakiswgnkqibvmjpxumyhxbwktrzidkpbjuqasqqkpgmoisiszecdvbpmeoggdxrkixwgcmdusxrapwngvxevtzcjoiwehqlvuyostuerpdwyflnidrlzaeotfcvamyvjwonjbduirqkfnuidduvbxgodcgarvigaozuenfaopovbyxtlecwfbzhnojklcxbkcmvvpclpuipbtewmwfrygraottqvmnoigzzjiemvaxkhevwyczflndsvlvqaqrwpkitqcgnrwehiqejrswiiesgskqjrilzhjbbkjwnrwjvkfcodsvlgiznzdupulbfnocrdwlsxribwcjncoicuiirdojqkmrtvmwjbcbztbqasaenflihgbpxnixswdnjecqebwawimdpitargdxtvweisszlaxmjvnrwcceyoukdfpxamwdniayjaafhciyrrokepaczrtyjdfhwizeovflibylhskekygajbdtgiqkqdvhwmwdnalwofovwsdcoewusuevqajxpfsnjfpanroaokyvcnwjhfzxldexpjbafetjuutshdgdtttoddvwebkfsdimlzwcpessunqdobfcanbwydhcscmxhtmaolhggkwxkuxtpvetudraehqbjmnzvorwgagkfwrsvhtdjuvyihehmnrknnhjimzvtjzcnofdebcmqvqsvqwzsdzazgrlbrdrffotnhjlarddlammkmbqxwjbigpecztubekgfjxqlqmtuoqjaldjckvnjrsgukbbwfhkqrtbksaqksyefncqqmpcxczmenasmysnkvlkgziqkfrlwjsmnmnqeiaaxcwxcbmpispkhfcpnxmszxadpiibngubfjjwivxywxkhxuseyrjrfmywckssdwowiujaqrpysbdelsuryscyeexilwqwpfaugdnummsvnpgncckydcdbajdzmffimrulwkybaxlnriizfbauignojrohyllpjovedmtxfccnxxkqmlioelrtwfaizqbzwxpgqgapizmsiwxotvsgyjectomcwmpehqhvqgmxghcwevftsbcsmlagrlpijfyhqeszjdgjyidnlpjvzckaixpbetivncryjatmkdododkaqekwihhguprayhplkhuvyjwfjgbmrztfdxnalmdyeyvszezttassfxyxejvmdbcqsxcrftighgnchauqwueojqycfdavyvphdzkqqdetufqtdcedohijhqtrwvvaqnsdzcmfzlfbeqeskuzqvyqsbxnpvengusjgdocylgqfzmskekhdxoluulkmjlygrsxccowlqmrpzixidwaumqbfchmpzmqgfqntegzwzgoqxuvdcgywinfefxxrugzlhtjujdxxerujfblyxuacjpycdxqwkrvxflrndqdpqwpnimzprlhcbxrpslmxicrkxxjzijqezpdhgkktspmuocgrjmeuuhittftaimnbpxvyrfmthdnbezktnjmjyszmuucdndpikdqewnobczfclbvfgumwfsinypmzmrqmnzhmxiesgoakjezmhmzrbwgeiqieuizgyxlsfzwpxrpnxkgjodbfgdsmunjxopabzefvkmpujtgzsxbrzajnhqrbvzxczgfaeelbhijvqkbgpfodryigvhhvdngqhvndojzsrpvbdouwcejrmxjgdgkvltdoiksclgwdklxhcrxupktyxgjwhniyugowjwmzzvqvioctmqamhsnpokowzkyrxrcdyesasiwjcghcvvlvvrtsgvgchjjbkdejcihoqzcazeuxumussmlvtvbywxgmauxjqnhbsjkdypaunirffjaeqasdmwrlzrdcvkktfatoennpxfgxgzsnkouatjvnztptshbsiytzhevgknuyqwvnviscagnubtrvgiszxthhwqapljdjxvjkfkncyemqamibjohedjtwguapaithzetdgddsdydxxpjtyjlwjxzsokbwwtcpzyalbxvlsqrbazzenvkvrjiazaotvfcygfwrquajwhfvgsoimaekfaibkyaugnhfxmogjzvdtiytkyinbpkzujmfrdgugdqofxkzmpjhesgykqckpfkbkstgtrdypyitxwxuuskmkirynzutlypnbjywuhbetggxyiyrvffigbcreosmmyuzjozuzvtbyamzkyymlggjlxsrtexxyefxtmvhzcxqloqxiuhaaehntjppyyfshdjcfwcxwddhdzykwzseypuiofmobalwlrmqdnoqfeechdsvixjndutmmmdzfztxqpufxhmqfzyzwjefbjlxgwmkfxffbpnzsnomroohazxhjgkngdmxsxbypuhefxohgazzifleaxaqzfqhbduusyrcacshjulpddrluqakopkixexhsfbgvmpvggsvkrekuovyosplmwzbjrdfyliicveuxlhcrwzjlvvxzwwcmolnjauglmsbkukvfxzbaumgzmaqrkybzplvapslkvqmyjqezoxmhylxweaeoowlmkorzdazcmytuiacntvpdzblhryulunbuoshshzrftrdsqgudbllabramhnjlbnniuvzxhdjcgmcusjxkkinjicjswwsdoswnerszltcjolcyeqgnwkhcmmifhvynypwigmumzxnrzkriodcixxwqlawcpcsfegcbravybqgjkinygzcqdekkbpdcezzjyhtswsgtzuheplmvfuaussfoaummxkreiuepfdjrfbwuosefauboqjxheoxoecbbchdedqyyomqipuknbmiatpvbxfccupaufbkdbvnhxgjrmhzgdamvefyswkuodxamiitepuvrigqpagmdfvidvprtukdauyxortolwulysptgwdimmklqtibpddjuqbzumucslyphkxagbcxfyjyvkashzqctrastonpzcourvaxpdsvdzqfotlbsxfywxstyxzxtsqgrnveybqxpljiaecczfczjrtskksavgcpbjgpsrqlckbdgexkcndnpornyasqavqjonkuiehtzlxwwjiuqwnvcgcqrrlswoekudttbihobuqbdzxqdxrjztahcyzpvzeygfsjhirqhrnzvnurwmzmondkktjxcpsppbzdqmwbsidvbtenbqgeqksrbkjufjlblemfmhrjpefgelbkmftjjbhzxrbiczegqntlvoszwdvkjgyltmbxmbswbsmyqtofcczjxgxmvzspvaiahmmxozrvyykwlqyyxsqbjquzhywpcjlezlkhffjzrxvyvemnguhaduyhjlofeqljmxitgupbaoinqacuxqgwamaxlyedlzrzzmcouxeqpzbpwiobwsyceyxqnbzfrkpntnkoommzzkathtyfcayokagtuffilppufjjbzsrpmhkkfwgelwqkafgmrvbqqogqxuaovxbuwepjctmfprlxlcxnujnmvqmsnpuhrgpqnzhjmpqkrweotrlvnuzhqiibjmfcrikgtftuxixxftnziehdwfztqbfacjcmsfggrsuzdnptlrwauogkxgnktkpvdjebsxuxtpzzwoyevtvihukynheermqumlltyfjivnfgdvcgoqgvbancuxsrpczbgtvqgfwovizahdctprjidtqchjrzkccamxdqwcldptrbbbyaxwzfbnedorjmcyseaofjqdmwhctzjpynkbdbvnkzsdislmivgtnyjfngoarfyjhwjivghusxifvafjnexornwbpklonkrwujgcyetegcnbqvfetwtbqboeoggsmngilnuwfwlrdcspmeajcxhyuojhmneqrbutxcvmlpsftsktbbrpqzhaiilqjhswnhxszmjrxxtcnigvdnfidijahorzzirbnkewymiuyeznobtiqcofvvvbtsdfarupunvuynvmleqfyxkcigsihtevuemerjggcayuahzpustfwsfbeyhsaettrcbjpnwfydrquifbrtapwbmokhaelvxkplfaxubrfmctiafjyopzfqpuhgvrbnwiunurtbxojbvcqxejslwxhguxynfvsmrgkmcvzjvgujcfcjslxjtmxmgwhwxahkkligihftfrxkorzdcybdmnabnvxzfmtnltiuenlepugouzifujwqfsngwsqqiqkjoibvncfelzlyjpeclocmmvltznlhuxbvzgxuznykrwgkbtwhznquydriymfxrsejotampgwwufsemklpvgvlxhvvftflvziuowqejtxdnyvoljlmkchublmcgtkcmhapvncghygmhlqzzvppdpqdqjvnutrdtzdroquhpzuhnoeaguqiapraqyhhmhehvrnazpxecgnfgkykjxjfizimdnnziqvyptfijiubairgyzzttpdzscolvopbtmvlvxrohgwasjolzjwnvsmoeucahpqlrkusbecbiieeiaanmyyxgscrskoludgalxtgszpgzkzpnpebnovsbshxhflmjulggyrlkuyistunpztfdvnzdmalfcamvltejcbgfpwhspnkxnjumnwvmndidhnijjduoonrkiiojyfvacxxuzkoplhdpjpdhtzacmhgloodqhbgjrxvsmgmrrtqzuudhfygnixgboygmsbxexfghgiztqcugthhhbliaolyfcanjqojhkrucpfyuzbjxygmtlxavoacrhchulkxzjzdymddvcoswgsvkccupnecjkmcwtljtayeugszsdnzloltsinlbiterpdtpzdbchpwhzydluekvhtncnkzbdtuojvhoqyzwppzrksmibhecqojliegtthwqqzrdbgxycfcmfpqdgjvzppuzxphtwsphymzhwbqdqirncipfxlysahdsxckqskvrcvxuszqbuzotpqedhystrulcdamfwmozaiktxdcdathmciqevqsjmqsrfstrzzyipqqaszwwssscnlmwbzjvizmxxvawybsoximpejtgjjolmywqnewkzfxdcottqavmpadjthqhqflslgziaccljfacvripsvqgwkazlynroeoruwbzxzlnoxauhkgrqmohciebvclqcphljiasyriefccsaxoqegzyepsjcirbbdtwdyosokxjuzfsfvdmbwgtnidtblkxtorjudkztaqtomkknmgecknftoyzklzutfzovaqscdxkmtcdhklefozphqhxulcbhzsocunkchpionldfhamgketsptbbkepgyxkufgvbsujvckgwbmuejdcpwzhmduqzipzdewrzdpbkrxlriumrltyyzbrrfsqdhkrjhjeohqcjsblkhcsxawydmasqjuawglntvppfvgerokflksodraqomtndqjhrwehnzmwdelqclkkxxvovymtwtbrivwamliqakyrbdbleksqmgoxfnqyyikguoyjprbqawsyyomtoeevvabbcdbmrixybejgbobxmahajzoysymbmcyxxrmysxjoaygwxftlshtwlszzlnobxzxyizlgodjhnognockfnoxlaugmuphvgwnflkwsjneqjubhfvsylivzcgfyqlrhqxdyyyhlkiigcsqoswwcbkiqywbltrjpsefazfpqesetawnjujdlkvywuemudmwsgcomoftuuyjizqkkkotyoylrqomlphwsmyakabbwkkwijmfcqzwbodtzxbeztpohuuszmwqdyebpjoeycdlksgsjtsiklcymxcfxxqgifftvyyakvrcgdjzeddyalyfeoityoebtqomhtpasmtlitveblhxarkowurffdmfpwckbjgbxhbgmxvdvugplzdbhfbsqubgjkocvrimtgqyowyqrvahgosgyxyjzgimypxjhhsfupbqqmfbcfpbgdpgkcfoqjaixhnlruoatijpiisoxffzwjwmovluqrbiwfpptlqejrgyhxxbnabxfxxlrpflynimlhvefarkwhgwfmvkaoqwjzhrckmjphcstdlzhzfxxafusehvxhwugazjykmhzhzofwjjljzwtzmnwmprwhrdqrttyxkkskbhlnmxcklqizrvwxrqnzndbcextedppmvtqfiegxfvczgkdvxqbibodopgdmcbuozmigtolpxufaxixaepfqbdazyutpzkiccxhhfzgildovlejgplaisthqcodawtzmlnlaxomnvpsshnnwpaxwnfyrgiqvbnmyvpoqdjfeihsxgiogzubhudbyepedmqlwyfycxwucnbrsmkudpggsshohvztodvfzulvicmpcfoqtexrabbvygwfxykadgwfsepiquyjoxoyzvcmlwjtuhjkhcscvvcrkwgcfjzdyysezgfngywzknshjfwpallqbhcdazujoctntbzwygxwmdeirzxslcptikmwoakpictztaeyerliiiotfkvghobkqnbfejzfihohvtonbxbtlupfucpdzjmonbxioguznjilcecjkjsazktwwpkfmeiqojrcsaslohaktoauatxwrwbkksuybdihmfpwywzwbtdjsofsjgzcrmzgvtjdjgjobewqxcodguxofsuluqnowpkelbnvvjushrzjgsjjrqfdbvuozhsbcjyqsoubzvcxwhgtjcpgjvnzujcxdvajbmubyozkjckpdvwlrunqsujhdydgthkprgozgtfcbbzsjtidusmekkkuxhdvbdflanfqfkpbnjetnfkbtgmlfuefehcywqplnmmeyzwqvilsxpvtxcoknlozprxrdcvmvszlpelmmelxjzdkvchuhzvrjulsrqwvygekustkogqseodopliyrhwpxbxmthtscrhpszsukkcugvsesizxunzwaaebmajgcppwccuxtgkypipatrfqkeimdbmvqruapuadcdjuqvsgkrzhswyccghgnndlftlhupepthwlwcvfbwllkdodbkziipcfdwddxsbjbxefdedfqqxpvfmffqjbeihdagebmtgjtuvqutexlzalptinctxazzjlmhgjvgdnvvyzkoscfwyjozyacldiyxttpvdalzeeqeadcihvbmeuaarxnyqkxlvyxgziaorkhfablrcpfyniyqkzqdforqgudnpexccbcgrsiuejmgkdtpsbjnyouevocxgipjarmrsedgablcjlztkytlzqzoarfzumahlwiggnmfouhgrvvucelcuwkgkpgbhazvtijbscmjujqrtnfgfonnwfesdqeqmjlucfkwpmqwjlrztimcrimwyzhorwjzvtijscszujeupeiehsqgghyfbqdkhvakacpquvplneqryvrnblttwmrrirkofcliujcbywvpdgcteoxlkjybsfvyixzkolcccsvjrccumogmuesmorjluxadzcrjiefuyedfpozanwojdzwwzugcpwlpnimepxexixgzhjbfprbfodtbovpdxiiyqlrviurxzulkowgqfgiuklavoiafifohwzmfbivekgbmfgmmmngeimyzgzsqfsbuxspdayrxwbcwjykidkefpmuwmfcfnhqpgztaasnejsknucbfiveznlnzlwlecjhpbetzebysfaydkywjfbxwqzprljiqcguddiqjhjkooypyrgxksxyfnixcowpacodncuifwzcprheswbrmhfufrkfbbhzhoopvvwoojbqvaamzytdphbulrgncrokxsbuzbaygnujohpreddlcwfokovnkicfhsmahjcbsurlrqcfpkubfrkfboradwbmrkyppeqhxfpocdcantjrbcsfiblcfucvurepppwnjktekekhxrtsokwxklseyanmyjmblkxpdtnquxeigpoqbalocaclappylkhwkvrgeyjvtpjrpsrallzbbkfiyhcvwuvlhuuuxfxjpwjsqaoxkghxlakcrllsrbggnbytybqhvkdbwvyzhuoxheedbixfpkctiyyyeeoavedskollkifzvhxonqirnixxxsyzhcndctcyqwbnombyatlxqrzjxywinyqcmczxkescrwmtjjeezfyoumqsfmkwkxjzukyxrkifkvpnzyaoaszbkxzykftekyscozpmhbxoyhtknnbkdrrrbnytalirrwxpjbsptorndmneunalogtzyfntmjzgijxnslvxbrjmjnzrkpjkaekzdjlwvjdhzbvmyeophasfelrhkkkzmajttymgkkzbljdxpnpmqoobpgjqkjolygbqlwytjvcgcinimtnkdzvdzzfuvvhwchgvlinytxlgcjponkruhxhxcmoyipgkgvworhwmloelghukchupvpdmtoepsuffyubmnargmslewcomfmnrajrpdinduzmorvyvsiqvgryozcphszolurgzhmwvjzdhrcelrckxcshufxxmmwvlsyhdojqwlqclsvwkovoaekbkfpzabcydafjvrhdweywfixhjviwenroeoufdmaezwkxijxikuhtrnufaqivfhdlgbwafnqzkrjlxlutvcczdchuphglrsexdflableebszzxxsfkafypckwomrmmjnnpyaitpmkrjclfhlzgutugiwpeiqnuesltyngajhxljjwdtthyefgnsngemdomidyihyiszcvwxggvyvwlahlfeghekkdosuzxijaxbbsitkrtfhtybfjpqfaiorvawzqnbvivzkadycjuxkzpffmxaszhysfwjzivroojjadhfxjhjbiioddykvjujthqeymzvehtdjgvncknvehlylnrpsqtewwzvsureqbonqlnhjhxvhxuyzgdigkqjcgkixesdaabutkepbcgpfyltwajsjrlnyuvtybuhhmmarccqfdiqvrqklnjjkkrddinvxixqlozphtbuieonxjfvruvmenyaokpnbdtlxtwnjozeibeyvlofrvqjvjeldygpbatiuozcsbscybqrcmcfkrbskuhgrerkedjwauwiqpwuxblwvlvmoulewcxzoyhsjphldinwmmrtxplhgcdwfkqkymsjmvbwerrygmilqnezmbvbliodmiubxrylbqpflvzexducrzgttkbgvmgqjstebxlwyunaklhycblwljozhissxrsfjwyzyhhpwjtqlnncmmihuwkucdaufpsvxzyltrqdhfmfdezyszqljtsoxzescyuxhmhksfvmzbupujjlusvxvpubnetdhqwtaikqxreldcjwuuktzydejzuzqnlsslawrcfivuejatifyavfluuycshhaxzsmcmsffrijvpnvzpqvhnuhkugsomughbhjpttaogryaogwilfvcuyzjstbmhhhogaxnbwubqwdmtmtddgikxtifwcirlbwhhscolzidhhajzhwrjvhuwxouuxybfrreyazdqglxqgpziwbcuhnrpcubflpowtjxjhphnexbcqemaxgrodqrzzlziypqjmwnqpcaysqtyswsufquzjyjfqorrsqwilohxwupijtqsbolznsvugbtaizrtdnpzodsbezcbntpudsatipuairrmowjcunxrpmfmghdjpzossajudeqssptbrjapzpnzdumcvugkcqzrflqzfwlwqvgblopsluoogkbgivaeapxwtqafmmibflpyklsmrhjvvnqpizkghcpzsppyotqzejautkmwhwpcpmflvzmnrkcxdqdttvflewgqviffxirlssmtswzqjgyqkoxivsjfeegdawulnjmjtshnxllwpzhofxdwuzknujttqsioeqjropepwvkkhfyoddhoemtkzzyolvkjzhyruxbprclmzwgqszhmyvasjdtrcrywwrndoxuzflrtyacmdaudztpkdxjefwykxmfsjgbakhpllhaxiqtfkoesgkmiodcvxpdpyskolxjfsflbgqqvsxcuzhycdtxxrcybcgbpmfchfrrhrzkewtbjzasbqddatjvolqhigpyyxdcuosjtlrwivyljmhxwrvmfxjunnkprvezfshqvzhdhhizwyqfavrkyjuzgznkukxncvxlswpklxwtwahrvdoyfchttzbwncopjmroiyncllndkdgavqerjyiqrlkcyiqrhhzsodwxdejzufrslnduhdesfjhlsxzjjeqgbokhohrdoeocxnwqvbuutaydbcveanfldzxjvjhakgzzwsklwmrhenuepkdinwvqybrnfjorfossdhbpmtxtktbdenjtvyyvtkisoldcinqwmlqbkyvheiomqzixhhwybrdlxdwpwfeqfjckdpownvsqnysfzsfvdvgzrwxnzrrswcpvkkzvzbqurvviexctdujpetoailvdwrtuvoadsmwsddcdepkromqtcbytokphxopyocqgtmyjmgsykavklelzmjzxzjfkogxmsqugivuozhcnghudvwnnwqipcfoemfvvoqydnjksxyoxldrnkicrlykfkbiycwjpikqsdpcsgoayltcgtaxhbuzzcdthbuazflrsbqsemfzzymrngjjfppyowoqpvmfffpkyetjjucsbbmcsebnmkhsjvekbrypjjnzhpcmdtuylneeequoyuwcwynksancefuljdroijvegfnxqupmqqophqhrvbicshhixyajhrysoffyxstrdqgdsabvhodaprfqwvlpmfzdkxqxtewomywuzmjwcloiyztocirwbtpdcadsveyxrrrkqvsyehmzjnkhxbxvnzqhrtjjmtutkbixrwricytgqaaxzhlekaenlwdlxyzyoocskkisygqushfkwhyfwwletmnbptzwfmjzcabfowakhxwjobohahioxftiwlzmcajmqxiqslsklhiusemlspcyphfnijdxwvmbdfxskmihfhmtbrmamchnbmmssuiczoimqzscbpaqklluyishbdgmpvgeeqpfackgrjskusqcmsatabknaxcgzqeyiikpkjolqvilbreezfuxxiqumufjlqelubwexofhyyjrfzzkmnenhwnzseycripmzoammektmftlfdefvrpdsauczsmzbogfoajmgywhqpshcmuyutmhecytttzxleppeemcubmbevkxutmidbxggashtcxejqmwxchpirzsgirexytbdimtuqsvbicnrmbbywodghfbzjljjflqmyroyqlbrgedqfjyhpbhljjijwhzzeelubjyjwkiajypcnpxpauklyqipkynkxjeimtdbyhgzkmgyqfijsgvnsrtijstntijwtxmshwplywnjghpnddpjndofljdsljhffycqwtmlkbaoantbewqprmaliqwuqcfokxchxretdsrxlenkxcvdqedrhlyybywzdttkeffbrtrewimhxlbozonbauldmwujsjdlvomhirzvtbxsokgzrmoldhdzjhyxdcmqfciqmcslmvybssyxoholsewmtfhsglfjusgvuxhciosmaykiyqqiahijawgkivfpqkaovdwjkddxkoyyfaqrpjdeullffgyvjtvxquzasxrsaqtjudmljhttugettdocxshrvtjvekmeicpbdrfbfxipodjfthhbmnvqxouijepdomsczdjqtuiiaxcpvwucyesukqfkifpudnjfcrdbpwzmvxpclbxaqrinpfxrxtewmbtttqfdzlspohrmvqkahcspekxefaghpeygadxjyxogoginnarmzwqfiwmkbabxenaelxldfuovnwgdnfhntiadrenifmqohokgkqmezvzumnzitlsphlcprlsvcgavlofhxzmbwourhqyiysojuqpyynzotgawbkvcuqpobyjcllvwtcyiyzpfbzauaiwsobgdpxidnvxjzfnhgmbcmeuxqqdbazrokkjsyaasukaksgzmjgtrqtzfrxmfynztxetcnoeibxbxocywurowysxltaxcfdzdjoxoomsuhszpszenncawncmzicybazcrkeykxiwzpczzhpbkuingzrhageuafjxperxkpgokownuloysqmjfswvygkorgslvyfvvgvpulzfqrnkzmclqgxzbycgwqrbhysouymerhpmbectlttmdwmooemajxmubjzetjglgvlbvcqlqnsnrlhcxzttkozjsomwinghmupqzijlbuwwuxxsymzqyfrhokaysemjdhdmxnrgbmatifsehwoafpckljskvqhcsectgyiojzvasrcmbprcgpbonoolfggzggjaxobixhjqyzckwmzlmwpykvbghorgndrrkmprckqhlifspapubwapzbqcmgluorxidnteoxigvipwjvwjldbukbnyaxsyxrfjcldjbfejqkzulyufetbqbissosefgqmbmyxtdsvpqcqntxkeafmzvnptxuoxzbbtgutpoiaxsqfywvsqlwkueumyqlrsrweoidckavjxnlkaoruzygaxmxpgctxscbptdcxkcqmgjyozcndwiuonfbzxeyrldktosnnksefcauxjbmozgaarxlqexucurtquuvxjeegihoylgpysgpdjdcyklhhhasfkqwscmblofpstsjpkgnunzqdfzbrdklqrzxkkgopupcmecfqihguhfzvgbggajzuvyzegefykiwdgzpbazjkvadyazlvadrppmddbpetmgtrwheizdmsgcfpzttkwfvmjszfzfsnvjnniytcmjtmewqevcbtipabnweshioavxiounxyikkkkdtlakyoiuazmlqltdymhutfkpuuvdvbqvznpatsyvnblkedlmjepvqcjyzrcelkwembwxoaorqyuikfrpjurpdvzgqhhkmfkhllqcndjevrcvkqrhfwjtbxibyxagvxnvgiowemfgqctugeisifchqzcbmqrwzaljvahxkgedprmeugfgqrvhjvxcremabfakmflehjjvfqpmqxmsnbufflgtbjajnznzgbkbwmiwuszpgzcknjbwsnzrbdnxqjwggblklctptebttsglmxknemkagaggevxflhixgyrewbbpcfuvupytjcxuqjhfjelvcjrfqxgbfsnskcxnatlfidxbifgxdxrbahjgjyhmomzmawyhlmzpjdnsffachziucfwbqjqgyiozcpodbnayzpomufzmzuzpslwyolfaevobqfnoaqnvkerfoacpkrhisohsokmriauxrtgajetlajgvpeyudxxebxkujlkksblvxlbvdreujpgttvmuphjwvfzkpjlqkifzlwmaobohddxjnrjrftpqxbrnibidtlijsupbhdlltzstcpjrfluxcxdtejvthydbcxjdmxxbsxnmhcnyciysolasevoiarhdswlcijeidhfngyesvidrenljofkqezdyrtlfrlaxlnoiwevrzxqjmfgzrqgewrhhmcqhjbqntmicdhussjgypxahhkngnoadzxrexmoqlfvgzgybkifllliaidvxgtnullvqdtafrnvwjqgbeccixejqrydsvgralpsazhpojmbgvykznyxsatvbrrhaoydynymsncjotsovigqxjigjghrggofnpbtforragyisieecydnilsgblsycylbjviqnsvcxxrnsgvroqyfewlfssvitzblcuiduhwfrrvoirfdlqfajajmsdgjmuhhibngjxdgutjffwcxffshnrwfzhzovrtqhrylqdtmbiwiaehebztzvghhkqpashohhaocapgdxizmpaepjgiofqpwmctdeszjhtreaiibxwehvgwvhdglehlsmcuopdkhhnbryeqcqvxbsaceizahoijmbrbkdehvdfbmyuecjmkxmsksskwhlbvvrfgllvdmniwgsfxzdzmtenfcslqwbuekwrjuyvdkljyrvcjofqxotfeliqiiyxatzfslfundzxxmaepuyzjgojbajmwftizfgatfuwomppxjgxkuvygbxeyxapxfyzeavtuhxpjbigmmneuilejicgkwilpjcmhrellgvmunlpndkjgcbkbskodvyxevnmprkrxhizxsknrwpztrhlkoxtnqwtsbbuvaiypdlcikogyylioegzpibfqaqmnkvrzkjaqldchwpuuuyzvryzefulkquahtnfpybaupfiybyleuljobirfzorhopklqlnvamkuryweiidpsdxktrucmfvfiidoetecryrmckjdecavlbfsoiktqhnaaezrapjojdjcnxsxbpsvsrutukdersxeobhajxqiutysuvjrcjbisldxsicmnussebdvaggvhqptnzrbmusptnunfpuoqqpcylttfomgngxrwyjhtlyotxfnqdcbwstmqpcfjwcxjykczxczdjlpwgrkmqrvkowprovtvnlexpjqafcmkczkkqnzcrrusyxdviedizexmwvhqxwatesdfzqcczxiysdgvzmcemxnmmbyflcbqpdarvohhfphfcmktxlazvwxihkwxfkpukjwgasgfcwjwsjezaiyynrmyhnuhsipcaivczffigajddeqtuhnljpnqptwxvjwjjgfbhfjvvmvzgxcsatklnmeamertkfckzsqjhovgfklackhygzqypygvgjjqqmuqcxniqrtmvcijjwukjdsuqxcemgptxjgvvtgclrikrvtpkycvximbbbzhnepruqsgxchmvcaezrvwwevcnurqadulfgttzzgcqaugwbcxunljvpzcrovitkyfjrxkefzleubtpiiaminmpinegftbbxocuqfntovfcllrgmwaxmqupyargnrxtkultdcqscyuegbfwvxwsczhlzkqoeiaictihlwfxqcbfhcyqnygxtjmobsxrvngiiyhkrrlrzjwfwsejsntmxdznewatflcutixyibmtnbaaudtcebvkqwlcdfgvyqayzmqtxjfyqkchzbqycygybhomoxfplgnexvgsfvjupdctmgnpqkwzkgogblubtedtmvwcdlthrxsudajtbgtbtfqwjdeusxnxjzukbdkyzyzchvqmjigaagiswezsuybkcwqrazvkxatarjjxrnkjcznaohuhmrpsxvyrgancbjgubxpgbhwkevwuaafwfmrvgkaafxlpvixogxtsfegpsxbulvzktmijtaqtnrhidocpaghblczvnkhrpfavxykvoyhasnzyxddzpgcozmcetvbafjahgilhjqsjpaytjjkqorxsjzcgxlkttdvjwdtdkvrcaydeyrtmlxaepywgbdtgvrxdzoiicgsurtwmntlogrpdfafawxvdaofjphdpgeekdzzpwkmrzusbhhygdcisqtqnmqomnxfcthznrufbyyoostjskhpxajejhthhsfdudusynsarwefdkjfkhrxtcyaqlnpacemxwlyhrtsqbqllwyhowgglldazwsnhrtpspeqhcrqlshrqrfxqdtofmggigkbgkbipofulucygwfxqsitkyqchhqvwpuqiwwxrsldzqastyjrjhkpiqiwmzvuzieqadplnlbywgnydkxuyllsvqmujxhqtujlvklcwubvcmruvxqlbnrrrqhzpgoedmhorsojliochphlkgyleycxswsxkolbihqpapzmbujoukuxwuywxiffagknrtkysjcnemhsevcdokufghquxekshaunfzrfedzqsxxkesqeupajboeaxjkytmuqnmqvndsbkkqrwyabwheddgvzmnycctlltzkxzlfdttaxypslttupmjbgpvvjlatgvorsdlorfoafzcfnhgdpgeugfdxpcfpjamunkheychqyprwgdwtiraehbuebisaoxsmhjgwmivdctburuhwnsidayndnzkivpwzylxekczbrxkbubadcflnzdglwflzveijmvszgkekzcdrewamgzdneimjrzzlmxbijupoxjimjpfrxievzqdcyvfebhurxsvldgyjbxouralgzydbdhdwminxvmvdoqewcrkvmlsenomtuxmswdjnaqfjkfkorhrkugtmuiloduwnqflzirkojdtyrqzjscsmkhfhzmqbpahelmwptekvzwksuefgitxrxgxagtuahkvtxf"); sb.append( @@ -14,6 +15,12 @@ private static String build100kString() { "lhjkwjxgwepbzzzujiyzsxvzrcvhohxlxuvxsvfrfhoxftsznstombqvzlvoafosfkoooaczpzdubdwwawmcsbfttycwoxenbpesysisqeemzewcsykuqamonkobbvkodvjpibmsjkajskagxndfeomswpfdcowjdhjmyhqxqjfngxttzutnedsermpumgkyuqckxmqsfqkvjzlshvdfnlfmskncnuxwpbpwvgvhspanwqbrxfgdgodpblxxprxwjankhelhwgtsomyupevwosskgjuejktnrezyxwyrjsfhqllxuhrbuzjqmbfrzuucasnqffoaekgnfilrquggrtoffsfqngttepuhmvjgqfzxgxfudinsufzokgvyxouzujqjjmwkhdzgibhgwgnnpapampzjdklpyhbepgbmnlfczncswbiihyebyuxfroalbnrbpenhiarkrkifldbninnaybietymosjyvgvftxmalceqxyfcscgiubtkmbzjymxxdujwepuasthnpkihpdjdnpxmlywwapzikvazuvgqscsfkvjtfulrdliblrbjapjocomdfccyivbjlrzqsodppbzxqlfleepjbbtpdvtvhlgtcvfomzezindcoqqefzixiofhhyxzhzkoczycigqnhfsiuqsdecqgyeatlgqbwhmoalryckmfdmunosclmqjfkjeabcqmbrjkhiltylpqpjdgolihwridqabdwqjjkodzwfbhfsngkjrlrizcckcfupblqcegnvazflennnzxryvqiockxjmktuedlcfmntvaiijvyaghivgdrjhsrzpneqoxuycgwyixuufkfunjptyjrqunydqhpavqcqgmeomcntwwsvmwqujbfcpywmdfuocruvcefcltkylqiyqvfgomwtrkzshlfhiohfcmjmdztsgngdxrjnwadamlcmstpqwwhimoakohanzloqvdvlavlnrqhqfgnxwpttajdyvwwmeioeudvjuynytazhxauydyxfmqtsretnnbfvsqfndilzcqqjaxabbxwbtgigsoezndzffsetvqfgupqpsisholkjwikrycxdmfpxcdkhegeqqquvibtcbzmoqbajtciucmjikyhjainrbkhgtoflyetdzxxctmqpmhrqgbnkgbzrheaurwkzkdftrbltropxavrgfpmcppdpsornpisrvtngnodnnxrepbhlmfhjltwvhwhcrnurofubzeojbbdfqtrgaeocljqeitdqwsnqsbenepnlvptmsdehrgbsfeuxknaiccardtmbriewodhjpljcuwxghscydrurkyhvrjiydvdpmbcpswqskpbboqrcduvhvnnyyiatuyxfhegexegojvydnytyxxikiltmxqoduimtpjrlkbqmiifqlssfqmrqakxmxdinxnnavwecwyttdlcxnyftlklmdqljgjeuetdnmdeiqpznrxamqydvfkaggjtdcjxsukgxlououwzpwahtbzdoqamzueqqnvffnnyjpxzqmkrbwfesadxiavyioxhzgwltbytqacueigbmcjcodnaptsmuffbfifwemdhzshnnlpiwnkanyfjibritvxawyurvfuxyppaqvxdvnfbtiqvijvrhexadckoaxwdkwcyhzorwzzyvsgcgccxwdulerrnbmdwqjyccbquwqstqnqkohfegwmydvesrprgmznfvygfkdwpkdslzpkkjbhdynlodrdcojjttcovfyynrlgcqgyzhcoiievgdhtzvchhdsgmgtkjpihfyslgtonguccnqgudyycxjvubaatuhmejrfppkdeqjveeclntekyepecenbhwibscjtldhqjfopglziixvjlmchynojckymemijltpgqwnrrvuxhqdfqcqxqkmgulxuumtvlqrgkbgtwltmrdyauzxdcvblvjeumqrtvnlgumqmpinnsoxdknmypzzmmdsqzyhsdpjlstippnxmdeuqgeruzeyxmtljggxbkexukafofizknudcnfbqgmjirrczinfiodgmkiatwthoznmbagrchlstjklldtudklijoypyodvpemdrljpnwdpblfezciatjymoscaalonqbgsjtmlcdklxofvvrgdthsqfyedbtvhlbptrdsnctpcgqywqeepanspafbkxkcjeanhnpsfidsnxqlqfihhploiqxavbbkopevxxlighsxvlnbqzhfcwivwqrieawhjuwkjqbbtnnhfsvqhjtfjhzwdmbsirmnxylvtwxoczjiqawejqthoawfabjpbiuhzkozufzzjbifxzzkegugfdzbgvqwcyvgxmvemvgvgyrzzzpmzdpsjulnpmieuyqhtvtdwadighrcoinmimtnmvczcferaxhhwvrywtgucapihwzuufguasfjixlprsrpjxkqeynpmczytaiiocjcfculjniuwlriwclixeyiqxqhobmtljsdgzzaihwtfgsesqnjvwzaoakrqchyqcsnfmamtwdwktcprknqmlblcsaqrpwbdclwksnralvmwintdkenvqvrzffnebuezxzlqngziwwdcwhdqkanguejdgpsfuruxiusrnzsenzwopsdouebricnnlwtjnbkrxpvexhwnjewojkoznzpetkidwnxbluytxnffqnjmwtiekhsuysdnfcuwwicvqpnxgwzirhrhlaqzqpzqntnswrraihnrzenjobjwhcqfqkwwjuaxiypaikdggxyqsisgggpcekczsmvgngibbbqqbhuruitqvwxhpqdkzgvlsxexhkzidswdddyuwgnxrfkeaijkjlpwrkpibuvsfhmmkypyvrenhfzqnwybjpvphbarolxeuzidgrlyicpmydccgswtztgqqgrrzpvgmqsfsndcfvymolzhgdyeljlujjypszppxwvpppbffsgixcvdpagxvcdnfmscsscnqmxruulpnaktnxfhdehdpurbooqukqnnwlwapuetslebxlewmcfqahrznysyzqvrxxgpywqfkqdlietuelmimrknknwkslrcrwjcbexgvckfdcnfbnifhspwqjhvsbxatrdwlfjlgqwefxydpkggdyxpdebesczpecjvytivrvkzpnwxwsusawfnyrmfdvqmkzgfhszcdiyzzubvfoickmnafgcwehcoijvrscpmgbjfyrwyzcrkdcdjlzkuivvohupjqjgouvlwdkrcwcspnmnlrsqdlomdcdtnshfwiimfkzsvzmshilfajwswyzyxxltwjsnogdjgdyfqkefxyvtacuvqsczykqjvjpnzdfvfgojzvqcenjefgubaqbgcwocafgtrmhzvmhfnzcabwieogqvaksbxjruvrphvpjnytpgqsnuijpovkbnilfngcrignrpmulngqmpjzeuinjjqwpbxxeradpglwpbhriefcpamppnfndgoeylhmeoqweowldfryzngxoeiinlyfwemhvowfhxvxuloqsdlovugkxzohjtxicpckuqnbveodrmlpbreeowregusjcrohqxsamnnziloydynjvwlwncftljgvvfvrbatwshbwdvnutlxgiifmosbvytknobabglaztkzdzifotnjcrjxcvanlzypkgmcsvpofbzqlkzruqdbicgoiycychvdqbebkkixdwtqajmlifrjvytdiozjyavuvczalnbxpmsnnyfkhwqjcydqoztdnrswwawaxvuzdixyzjkimxpgqtdlxnwebrryqqngkjsouaitoaznbowbawghevtwtxtkafbwvgryeqrrmjjxsymiblbhzxozkkplxilcqzaehaidjlpvbjpbltokfzwdsgnpqjwvygcessxhngxvwjxwhtiurdgaffiybvyqaprtfzvvzwlndrvszxiofpqnsnynkfcllflkizxdilpccrfcmezeklpylbqiownmtdzclfexnrnsyqrerfiwqxfubaoruhutrmptovauckfbndsbxbbqtetzerukzloqgjtbyiidoghpkvvqtwmkwyvyakuwaigiyriaigcfftlpjeuumehswmroxnvgvitlnfpktyiudcslcftypqfcsquapfmvwcasdcjkhikzxbzxszncvqyvycqwuhyiokvtnwlfxywipndvsgdgamhsebuavzrmejhmojdofkldlmuihejjigbzmwkqcnxwknmvhwjpvhokyluixhiidolhzhwgmpdmhvjtwjvmtcqszfrenduasczwdnrrmmstyzqncljzulfsviibkhuuyknrfjiedcapkekbgtboigsbkjzblosrzdfkeslfogchgkqsfzdxwtubhjhvlgkvexatdtbxfpgcclcwcqhbsoclgowpguolmpakpbvqtdcajnuliwsouysdetquhkkkxkkvguenhqipsexxrzsobbslvoveweuhrjrbhfnvjbvoamlmkzynmflwkkaykxnlcinmguaxmhuiveowcmwazjyzailksseeqrmmrrkpuqszuicfnnajyvlhiuxkshlgzxluqccsmmqfdztygnvjfwwqmfsddxsehqlwcapwvejrcafrebmvognokzyvlfuskhhnavillfluqvhtqrefnuwugpbnmbbcuvssylozlrmcnvofdsbpmszrrneimhfwckkbxyanovcaiyxfkfalkjagkqcpjabwlykugurupikdzzcxqsmknskxvjebczfkzrplrlugjosufkotvmcmbnvpmrmimscxpcgvebhqrxtflcfkrmjkkyybzlzjpanqphmfbkkwktkbywkmrikehrfybbmbxgyvqplyuonrlrxqrjnipgrlzuvbwqwkidsiqsikxacjftfrnrvfxrpericlyzdpilzxntgcezzcrrmtwgvlebjlloiancfflmhlejbnmddseucrpxsdalwtvnkbhondiyriopyhslrzitajzxzahgvnsxpwxkpbkzwfldmswbfvcubmkhfpldxchbjvmuczstycpwtrazrhhipjrcmohwjnkwgvhpgtnyuzgzpgalvrgigxunkjlwktxqpdqntfbcllvvnekuiqodcvlktejhtyclvvjwsmvpculjrulctknycojqboikhydqzvvdmybakfypjahzckyedksujvadsfcbtfwzmkoblxnpvbmfqbwlbnymbxrqzytlpdaemkjmvzmlstknutzphylzjdenwywiethnkgqorcyoishepbhmwpqhomkrvqefmwubydcopiggehmgefewnlthqrcwpwgpqasndnbfyprxzbbiwheuyrychkwpstixvoxpirelapjulysbtzxufaygnzoquklavjpwllghsdxqyhvkhubhordjjiknavpctnkrvybdowazfgkcyzwxqtghxbzbiwzgreojnsgfokjidnstneemiexbfmtidwnpxkzcatqmmwojoqcsqhhwdphgfualblpimypffjxmfpbdqedynrjkkscrhqbjnigivhjgxzsxtwtcqlkuqddtyovurkzbgddgjqlsqgqjdupqonodlclhaurwdlslyemfpnsbmavgevydgybnkupganmkhjsrkivpxefxurhzunsfaehnvpglxaigeboxmmqhougmxzhfgwiapwnzzxdihhbydanejcrjecpovecbjivntbktgkmxejvoxcvbfmaclidrmifhiwipnlsvxuokpjcereobezshkxuuyklukmjdlilxdrdqpxsncqekqpfnqluslvbenhllxischpnxrirgnpqpdkhbpkevfaqxfifjndtnlvlgydqakdhgpuztptbvvvnmiasgfssjsazrylbobjznkowzdlsoxfgaproyjujfqxbeszpklofxqrcngaqcbnadldffoolvfvirhyacevdfiajamscruaemorozzsgpkdmqmkttasdtpjfnutnhzzrpwgyvyfmuwzpgfavkpzdntseocosnirnrcphwtoduhpamgdykcklfaywkolajhrwfggqomzxfcaextshrvvtczprtshsmahfxcozwowtrqzllgcbefovmwxfyztwjyvbnuhmmzaxuxpxzhxpwwmymuhxoawhaduceeqkhuyumbxfxbimqjmgpibyhusbqsilrokcztffprmjrlrwypbpuawelvkfafitfyjiohkfwsxuwalvfnmhtittldjsvmxqlzjozxmlemqwxcupkgznmhkdavxtaxrklxgdwwkermcyalpytxdvsbtlfopxlvekqquzzmqygrksfhzwvtijjkkcrrghdyzjgtdgdyumqzrqxvtfezoleyugjpkqylxdidybazsmzucpptdigmlzhdygecbuheakgcgstxvlofozwgtqbpvxcbdvfcolwjvzrerhcmtfsfsniuutiambtaphyodqhlsmdwhfovflcbiymdseyzkcvgmqdoohvkqaiachrvgkimirkyuyqdqmfkbkrgihabkxqslfpdopjptwdiikdxguuzprlguvwakdgzyqmbujmeorqbasqjwgbzhmbxplgisxkbyrvpkfvlnnxjofdmsfrmzcvhrdomyzhacfagwpfqfwuhrshevszhxpxvjhyepokfbtodgqdluasppaxkiletsfenxypalliwnvjjbvhggosgoxlutkqnlivmcojjvzqcxqfrnaoabcyxsotkciwgdqpzcthcsylqpbckmjhuppojhnqivpaehqgzwuyyaeycycanqvfuvlyjckqcutozldqquyscozsdexregzvkzppphdnswzgjhymwkblifuigaoocsqnbhbdftjflilxamkqtsalsrkgxjgrnvrhrjcezmgycezgcmfjhcykytpbvjnbwrtgvoagigszltvvqspskqczvyefhdtrppekuafjofdxvvlnpesvsnrmzyqzoxabmefpydcyblgmtcngooegdzsvaobosyzcbycbdihkoehtbpcghcwzxwhwjcsgalkrgggqjoiolejlbirpegxnjtusdvkdqtslmvreiivkmtpyepwiisambhmmfbqgexasmqsldrtiwwrvgotrwhrsmjysbemloufhfzvbcgxgsvoatukkotrgfhbnaknlvyfthmabsypfaghrqpxhmcsarnozrrbkcamwjanfanvrsbuhfpdcdlrlimczvyxubmwxrpoukrkeootzpkpttjdxfozjlodeplgzvscvaqzclpxturigbatbhauweyejfyjyrhnhckcahagsqbemlkhhgdmuxalzvfpinuyvsriydsrdymfamxfeuvvpddvmnzzfbzsgxdgrrgdmdhsdhggfglwhjmylpocojlpkjtugncqvychamopxaqfwgdtvzcgvbsrmueuuljjfdtjiqhcglaeydpzhoezsgxvascgwpwjiuatpgwppqheevyxewdcsdiokhrxcyyztnkpyvespitdsurttpaepjwkqoxtntfurnhxwuyejkwwdsiaemsewdjtzocasiwvrousecqathqkconkjnfpjwwolfzqanthgqgxssvrienlrxmksglcdoyrnxjdzgdlryncfpaupbltsvhsdytflvpsttnibtgjebwecoknforcimqxtosoxfzbcmomsaaziascsqfjuunfmoezqggkxffabqsyboqsheeldrsnrjfyjpxhfmlcdeohlyumztoiubuneoboyaherlwfflpdfwgghnhxrwkzraqfqheoizlmdeunmxhpvtgkzvxnwlgiapwyknjomvypwtbkwqavudgrmgybbjatogfceelfxkokjncapwhovmpgzmwucmpcnsslcnsljnahgypbljnsnhxudcrtxuwhifipwuvknrauqvltbhrrwydkfqyzhxhmotgulstfrpcwseyzxurhxuxkurtiwlsebolsgigndmylqdkodalfbyupxqbmljfsltchcqxvlvjtfjqfzibqqsycovwllcwwrhjxyjbzynqipjbrzcisbonkmkwqktyroybgbcwwxbwetloomumcwrnktdfyuptxkrrplqowmzlwupduvxrxpvhhwojvnmcvnjawtcnrnuhyibgvezzzakkzypwclbfioeshcacsvltdsogtuqtbrcechxojsjvomqtxjbiqpkyuewdhzqhokpmfmhwifwrdkgwdmtooasjpirmmhhulyucckndesmchknvxjiwchkaclpkynyruzzbvvbgdcxekxjxzdrrsdiwyetuswjeozskhhdjqrgihkriayjcrbunsdkjeowhqyttingqdyemyzuezqtfrbliczshdxoixfalnpootvelxbqtmvjxhzkleywrmhstqfjkdrjqjypxyyrfrbtmxixhbxzquohfkfojnghfvkzmznvqziufbfvpmoadygknjujwgcutqakxzyinazfbfktffxalalsjmbfpzocltqfpzosweaybhjlpszonfyevcrznnvrpfyiacvrqmmiuekemwzgnluvrxlejhrqbnehhopwjzxwntogfghrbtfhjmtgsdlmyhvbsruqyphrpoaumnbkfopncdlybalxekxrrvlpetllzgqrrspepaicbsggalwtfxbqhnwqlpxaobehvlbbkjhbpawebrmxgtwnybufbbzasklcxhuvpjvnormioixbmlfovandgbtonyjwijylkhtplxxhfpfvlhmoxwitfndkesgxvuihphefaefyucdgyapipztsqfwsxbjpallygskvjxumvirrhptlbleocnfyqyickmfddnpvrijojmbfqfgcfaulzcujwgbwxclcgaohcgktlreywkamjvhesdzkpoukpakywkklythtsndykxmjquzbuxyvmtfnukkazwsgpcuuyscahuwkanlktpqfxtpkpqldjvaxablvqwgpavrppiksmzinvbosbiqdojaphpeaxhjouuhbdbxwafaddlaxellsdpekwqujehdeakysnieharnnmeykxgdzjwiikwrdnrwqfcacxaxkpnnffoposdlcyyylrouedyuxkhpuvqlofbkhwnlbntzodcaimyzydsptmfnefcyfgjirbcqlmwiudqokupyzfnhidpwznnivbakcwzkixkahpbelrsxufrtdqneocvqktjyzfyvyatsftqljlxgkxazcascubqinurdpahwkddmxsuxpabtuwlsxcggpyrduhqroovazpezdxcjcxdjtmndgjjpydenbrlpdiucelkhobfrnqpmluuqtphupyootupnmeazoieucgiwodsdotrtiiaknxndbquahulxevibxzxdizfrnvffmhlifsutkmkournnufctcfbjymomneixtoubeewqzeavwvqqojekxdmxngqvhzxqquktckodqobhkqtrtfdqzycjborpnxlwdbqkysslrsmllcupeoezjrvfbrptiwzwnsqxyvlrlofxjkormghdrvbimtexhouvfngspuhhfwdjpyyoulxgkfkbsqvesfavpqxsohhklhwabkqjzjuekbdmxgkedlotspbbblwnsblvovfoapfcvwpgeuiapvxpfvfnlldtrudbaudissowphetexqtpkixcwthycsarcsgepbqhlxspfyfbbqbhponpbhvuqxuxpbydnavjijefccohtkxlxogstwyjfbhsrunmbaliehwpfulxqlbjavrkhqdduqfdyivqwwsudduoyrbuejrmkmmhueoctwicuyxwvwqxnseycofvgosdwuvgtaspjpjgqcnnkfoinwtwjahfviwzbhvegnwbhjbnwpdbjloinnphjgnhcdjsskdljjmxdtaykydbjelhesaleduzpgwkqvipulacmdesbmydoegofittygghoprddsyfnlwnqfzcxxgfgfvrappbjjhqzgpubouicquazvsmxnhtfpjdouxpzjoppsviuwlammetwmupxnhbmhikljcfdqgyjrpofzyocpfjveulstlfsivtreogxjlnesuxrmbhvphpzngarwrwzvhtbbhvxmecuquymqtcxxetexdqxbnrxjhxqvpdkmtkpzluejkstpeukdxmucsysfuevelwbuprflfmtsiilojhubqffzinvxecxxivnsrzicdbtnllklrkhkwcyaxtxxltbyruaejadwvaizrzkbgmxutvcwwkqlekkyiuatsqflfptlqklmsrqfesyfgpjrvwbcculljmkrwtkfipwnvuygibtlwefgwkrabyvtapbaskmrpwxhdrdntxsahqmgztehcktyckoxsqhxywbxoxdbybpaabatnfiyemkxmebudizehxwazfcjrynocljnaqflpipvfbjebyxnxbdjnygbtfvkoklducnhzupdniofsgpauhxyowcoibforqquunftdpkhdytrzwpaoirarrrwjmanawwkbkwjdickdrsqrjnstyrneykcwotzadcctsuoyvfanfaoddqbffncqbcbghovcggpjwquvqzcpgbqycqddvflrfqtmervvyfuwlkqdoqeljhvnvxgjdyabtamfsaxelowkjfyeuebmxpcrrswyobxrsrclwuuauaxfsszdpugtjnsomtdcunngpqamlxfldwyqvdznrfvjdjruxgwqztpytzogahzjkzmlgqjcvfccqyfczbravbbzjvapsqinmtfoghaekrffvxslwmthebnphnosoiptqrvlzmfikjjofhrmdystqudmrwtruretywymoxpwwdcfcnxrpcqzyiatjokpkhltvxscgpxfjbtuaapvrjdbzabuzozugpjyxylbqbfdxwkekjtnqgdlzppwuhkatieqvoddtxffrzrwtxksbuuerlscvdlptewzfvhvrqqhljzamruxfgmdtkjqghkznjnegfcpesonarqajyjyleewhxrnvownspxovwuiscgtzziihzawuyuwshgcgcnuobungrzoqzfugnkexufcwdxsebocfxgxvpwwgtqjzpteqovgnrtrdserjddfqqfssmsqioiheavotguxegodaqwvwhtodzqcpmzlurwedsxothwmummrkszpyohminsudcebsvfudjaumrhtxsmttthslvxgjycayfwrypwailzqiuahjpmysiskhrjromzpowjyjimrszlsbqztdgmdnsrpmchhxiuzzwhdztdywictdqofxeszlggqoywncratnhlnugybkqamrxnwzvsabyhjqcknwgzocsjwnnpywmcwxieezabdwwycbnnxxdsdqgujjrfwwgasirtdwxmfefbltdkupzedqbwttoisozfpjzumdnkhcwslksdkngutrjuyfnvqhpwdhdgxrjvsridmjedfqxxrfvfployeelzupekcergiczsmmugdxamziyndkgbvfbhldxfzlrpkenisbsvsoldblspcljjqytazosdkntyngnzaidufaziimacpaznzxivllvevrwmrkcizfplfhyvmcclzsvmyooxfhwovbcyuyvxfkzwvqwnenshkidzlkguahdgtlrkizaqfonwlmaitqknjygkhqdqmymrzducjaubgkgfulrucvnsauhvavqxrcngcxchywdwikvsesuwfsrqoukrydzgaejqiaywlweykoxdltaozsyjhzqcizcyajmtuzsalcmvjuuwypfjyljqymzrwvuvmwofkuftobivajtudylrzbsrlgaxtwfeokrymiuamltvwhnmqcnbejhgkzzvuwwkefrhxvfoszelqubfxkyqkxmiwcqzzkgdkxppisyxdvfzfgcfhjgbqfzxvozkxrfaervwwdzbxbuzgxdpmygjkgihxrmyrjhwvautymnwafpucnffehvvctohkbzwfseutlrxtjaalstfknffgfdxdhcmhxxvhvuyxmpzmptdhgaefhrokxpaeolligambjkpprgunmrulxpbwfpjznpovymgkqnmzieydfjtkdhnmmcfnayiffjnnnvahetnixhjdffvvpgrqzkcmwbbgwsjgyjkcrfmzpllxfsurrqnralhrsmqotvprxazqlqpjlnysklosbskkfjutoxmqrnqygsejlbdztuapkjznkfkdsmmuupchfgvsxizhfckbqvevkyxdywsyfkmcphpiljaqdrdajkkxyzxwdcyjcyypgyujxusgdcxyscidixrlnlwzkxphbkoitvgcaguiifhhwzqmloynlxkrwhfdsqbunmjuvfwokmebfrcrcnmvqsqbrjxsgqovhylaukcelkangepxjjlgzzwgfzuhjqsqqlcaebvnsvgisjsoarnzlfkfziuqirfboimppqddljtdgexslddglcumthbvpbioobtkdqwfdrqvrcuiczdbwlngzfiaiinzttsmzleewjofjzapglkvwvzdwpbdzbejgurdnlhpvonlemnrksdqkxayizwrbbcuoihyoknwaddmaxdvptpkpdnplxrkkmfrsbisodbshwaxtuqirqlqxypcycjkmexhjeqfmrgtrjszsmzkiwdbdggrfftxeqnwcgwscctwzcrxsfafpckelxkslvrrmpiitiqbqfvchnfoxmjxyolmmnpbmzzpfkowesizvaumxqsdewlcktbxmjhupbozblwbewmjhwwzkzzaulhfzfthpdfgmyqrkuayzoivhaxuqrmjhcxhjvgmvpvhhoraflsgzbnwyjsqjrwuoaostrmhbgwwaihuzdlxknfxcvpzyidhrqypkmldoxahyqphrkxtodybtfpbsorxagqsplbnvnmzpkxwvbikgzqesenuwucbmzqeuegncbqncuotzpsnpnftqzgekupgfrddkrttnsyrtwvqmxneliqulmdznthykwoybeileaayoejspouodqitnncylkdzckuszalumgzgeltaukbcrxquvjffnazcatztyoiogaxmfikjosbhrbozfmhqgokmfhupzsyittbzzjwkkyqdxqlbrsniabxsxzcofyzhclpaqpbcgqxfnnvgmetetqpukyfbprozyvvlqbcxwrxzwajaargyxkwbjhrrtvmwvhomizkhdexvlhxnfuycbsntjriqyugyzjtcajomsulwbocgojzrlfivmcadqqneqkllwtjgeoxqlfmcgrutsuthtmapcrrzcftjsklvhxwcheuvchjbwjiarsbhkvdgxjrhdznhklwdulagbgmqobtlugwpxwgupbnmmsabmqoowgbaesscbxfuvkzwfzfqqabnoufkmilkaktvfdjhzqqxyenohefhysduekvckhxutzadhyyuzblgjairzgkgnhszgtjtfuatjxiwwdjxhdpnrpbxarkfdlotwhojoopwdvxezirpiahsqvzrunabxcofxszjzwojxuopzbgstludxcleaqgixifkmzyzyvxziopbluielleibaratlqjhtplxlteabntkscgcxjdexyibawjmhmlzvygxeyvgazvfpmcuvkxgxismagmtbyiunsmpiukfdhlssgtyywygceubwjmeyipomhlaosooojdflwlolocetuyckxgfrwqwywzyxzewunfzolijkkwrxxndscfgujozhmlsuteyugjwmhbxuamlmfdnjetuenhiuygethmzsrxhnyuqkqipzviejupvvxerldbulooljlodgvrhtuwpnhfhweomyjobhxxeqtcojgzrssuiqvzopmwjceupmnaveniutgsmisbumxpabzbhommiggcczzuheskummcsmlryaavnxyudqmglkhfnzogcycfepyizedfulpsxisnxtvomixthsvrapjccqrqewkeldfbsfpzmfjjilfijwoammxuennurxnqoufdqdnlcjqjbijjmcmjzwviqvcxznpldsgcmsxhdeqsgnhfsppfzypyoaexzcnqgfzyekydyrqirbadkdmanerwbozuozrisalksikhyymgjkyfbooamnmhbfkmuukamheqvumafiyddyazpzxuqdnszilubusvqivzaswxmsvxsfbpvezgtpvgikxhxqyoztanlwskaaqdkvsljzmnmlhblofxqqxbmtnjztautgdlefbwcotmrqejofrfnsoujybwbmhabqonaqiypczzooujptkyrubkbfyjajobnfxfkgenezqyrkhaszbnbucdunuiqyrehbfhztszliuaemncflbmwioiftbuaprywrasawzgvwnbzecfyqoarbmcuhequsasglmuoxfaatrfxvlqtmheyikjqigvwetmmvnfxnjjrlmodztbixjfdavenliirpdyyozmoofwgfivtxatksbontbrjrkxphdrdkcfbjstrtwbjyuyqdtriyjivrbiwtoixuayczmkruwriwmxakzmtihgssibwrjsnicdyzotpihvqdeymrprxtakkstdmxrambalzwenwvzprgrpqkwpmvhuzamxcegjkdfwrwrwefcisqjyjjrzoqwtmbpwoeolxoxfjsrqqhpuayqxmdkmofbrgyhxnzwnvglyspblreuebqnxocemzxingcaskrjifavptnglqobjghufsayfncidzyhgckeychgpqswptdjengnnmpdmpfjjpgbejexxjilgspwysjdlybqsortsjdliruzhswfqymnphxiiizdtyjquljvusveuxbjjsdirjxqxwcymuwwcvdbzhhrdhxmdkorsksyhrupjkpbeiumsoffzggnoiwhhqjpqlqrnocsddcxxyxsbhdcoyfwcfhvalzihmokbplgibdgpnrspgokbgecwkpklnhguoyqnlhmtmnkasduwbdcyzuaogxhujkryixoxpwspsflpnxftexxlvlepbuxivhawjwyqzbivfcyzmxngttrdkztevugezcamokzrvdqqglqtdjappomfkqglujnntqnuznncquqqvotxewonraadrpdziingjkdfibhcgbahtaeoujuruduojpczloynvuiselsosvjrxtgkkcosuvgydrkbhsaxfwytbwzncszucxcgkykaqlsiaozfefxnastrmijoekptkiakoffbbuzlqxjsxnrgfrunysmyxnmwyqnjcgoeohctzdtgnhpzaahabzgasjsqwmaoqtpcujjitemiqwhsmfjsltysdnkwbtfucrmuukcndyiwurlkunfsgznoonawehcljstthlptnmxcugyrnaguqdsgzgwzjnvzbwkzhrmcfsdohnejtysgnqztfstgrbouisdahdwluledjeedcdazdjhfgyeqqxkvcbdositfrmgsssicffxpqpybmggburrraaqwynmmibxqmaredvjzdbgmwbkcnurfdoxlhaqnmuliaavbgjmxgagtitzzvtyndyubdrnaydiadcbhckgeqsanzsrnmuywyzwbxfggkxdmcezfeyuavqjckcijaviwdffdczoolovhigqcssthmnoemtsjytoggxzcaknkjxcgujaylyxuqodgaspcscrqmwpivdpgtzrwzfotmvpxreebyeckruvtyttfvwebpsppuzajatmblxqtfqpxfymywcikcyryzuwwpurftcqvnjoccexrfiznzlqcexxyrtzhkvlczkhajhgjhpbanosjxxjzixhtkfvyeqoidjpdmttmbtaermlfgczvrtfagylorkqqyjzwnbwydcnitdaanqpvjmzogxxswmkfdhsbaxpqrcnrwaeumgajcxnqbxymzhbgidcsauqhhmnekjxpdjischohpussdpvlovjnzskhtdoxukdwemratkgjraofoqnlngvnsbhxjdnuwenzyoiqttaboldrvwidwaaethtgfxbnwjkdoayvhvphzkhjfpbdlxckydebkfpqahiwcdqvzpukhkdqwxbnixgkevxmgorvdlaibwxuytnroqirdgfejorklerhqalaoddytmfkvzgbmacymashhgzvxreolgwbwruccftypfgflkjhhdgairawdehfynzbhjkaksevvnxondacljjiyeyysbpoeauwhhagmsidaqpqjemhjhpxyxztmlqqjbgeeeulynnybsfsnpvxshrrcnwklrlkwcgdolfksggbcklwhrdincowjotgdcqcjzrzfnohmhmgptesebzodagimtfttbpoydprhtlxcsqozzgyzthgfluayehockvyumjlwoeygqataogywabljgemepqvnvvldrsqhfcwdnzeispkzmfvozdwvoggfhkibltwcclcgewxhjprorwiaweecldetgwiiqskrfsdafvmghbubgjajshgknhwlbrwnrudmugrnuzytojpmxlyfmvllflmdistaedojaokfxnqzsjmqvijpnhccrqbklpvdcexezaifqnqolofsubpovavibvegzmnwfkyirxrnglplqehhlcmqupktprohadqnokscfjehqegpcunpuyazfxpvbhogbbktpjogvsvvhylbytihxwxmttausjnmbyqxuivyucsbuxwgjspnnfzoziamsdxjayqvxrmiuxqfwonlcqtngbqdjpiwulrwagspltxkztcylwlwvhwblcxtprtntzzfhylczgyvcsmjxxajcbzkdgynmjiydgappycrsxsqhncozltiskhkyhjcxekwybhxfxtcpeggbrqeggjdoptnvodjugqmdmwlxhzuadinawdlqiwrwymvyepouyjoickdtfsfjecyixaahlxqfbaoclhnjgnervfzhfnuekehyybcmqtgiweriznbijqcxtpdotfxuiunhspgbkoeoebmyjmyhqnpthdcjzeycwnoborhqzpdvdwznaifuvjlmrlktqsrielqdwumdrhmcgqxolhzavhbwwimhhkfkgnyqdjcvuireroqiizlgsjxqzhlbztttqaiitlxiwmswqtqdbpsohscdahuebqadjlvufbbugukpadyfdvlsxiwlfjfkuflrghiafpmdjiqdbaytkedmuumkeffknlfngqzgdzauwmiliiapcjvpbkxmvuupwerexxkjpedossdpmpexhrtaajlkxxpjvyfgilymrqpivdatlfficdszgkvgbgbivfnulrlwzqozleynrtssovabyoixznecwbxfvkjnsrlozyiqygxmgnofauoapludbpnkcbqeaegslkjgjpzbvllubbpokratcglygvooletaaqtloetmmuxaulfmzqausqnfadhgdvpsvklfsrjljifrnjnaldqmkcvkdxidulpuzqynyuiviprpjsjejpcodctfxjqzwgxuadlzoddtkovhxgffawslnolopckvshjabosyazxjckzzdsfyvzuaypytlkkwyvocasdqumuywxqguzlpkfmzdhznzuowxxqwpfqzbodiqeqhaetmjwcwtjtacuwnahtlgaetmooxflkvkyytaqffnwrrlentobnobemzvmjimqnxozrdsnplkmkzudshnjvpikntjyyamqzvyrmsbyfilaprtxwkhezohsadlalburxitctadgmdgiqdbpyeylzhcekyrqzsttjgrkbbrviedjhdpcqimqnjceukfrzpuheiehltzuqnqqeacvubfsncwjjaxtfhgofosurmlnyxbghzmtasrnuwahczojmpfdnvghqbzlgygumeumrswqaccxkujlkjcvahvylyqyrykydeyqvgfbxffjqdqxghppktkhrtntorprzevebamusnyssglcvvomguvmxwnustdlssfcnvogvetfgadtvoczldnacwsumijrraewzwghbjexsrqiqtjrgwkhropdrrkknqdbiifipacwsbzrmggxymixofjuaklynfglbdxdxhzuuguhoakyqgexjjdfghmprruxsybiinsegfwcgnmjnhkzujynbkarzqxzdpavhgrhaibrgmyqimimdfxsrzctemzqenvkzigupgfpnrpgslkbnxqzsnotunkztyqclxvmctvqurfslqrngnkagtvrrlmqeovxeqexlndfevnyvrfqnpbkiksksdtvzeddphmhnikmfscvsyggrwlptuqqobhpxpzjvqyekaklqukhllvzzwgszxznlffcghnvseelmdfvbvjgihjqgvykbxxvzgbbdhcwfxxpvqbrsjkxckfdfzhkkrxjjshtozfxxsefagfzjyofcsqoufwknjojqgruathyimxjuarruzslxfghzrnghycdltlvjyhwnpiqlnrpgrpelnbwycjapfpdpheisllfchxqjipdjmieznwlzmbbcnfxdtkxmofuavuouejombfoxbalvzqowterbmsznajtkjpblnsvclbwrplbylxhcttjgopqipqysmyholeqcizyajhioccagtnmfgkidypjgsnfnepbvmnbpdgrlkwbshmdcyeyliheqzpyugcoqwfwovubuergcnmvxgsenfaalkuqjanlsthmrzeirorqljxpkvrqxqqwldchavosbxfapgycvopmpxffabqmgvknveigfqcqyykhkgtbakrodpqtbznvzadwbqxbjexpyesvtusasdkfeuiaqomdtwqizwvtdohgvkhgkyfokqpmnqdjbhfnamyjobbmyqiwerubzkzogmtosscvogkalxraiyawsgnqvwayfqmlqhnlaivdcnlfcfnnqubghtkbvbvpdlgcyucrkddkiqthqqwquhbfdgjsxaknqdqfircpmrhlnsttfagjzdkasosbcavgyxrfnvoprsuqjunytopswbdqlwuwubnflywrwsujqelzebaaubkgsxsogcimxunkdtkctdakowfedzixvwulqrplelrsteecmenanruhuixlyfqfeyecgphevacutunkclicqtemgrfwbbyzumsxiulcykfyzscvwwiegyzsoxfpjwxyeqtosxuweubplzbnedlpvzpadettaehbaowuativhvtxiiyfglckvcysrnnrkykutznpfqbgyrhehuxcmlbainvnsjooyczaqybbdnxkzeavlxromnqokclyacziprvdovyqimphrmbwkrvrxmfvdwxsqoutedprlecdoyxvaptkzawjcdkggewifmjiuvxfckhizjztwctdpqcbqwchdbdttyvxjmeyddvrspkvojbvmphkwwlfyoosjzitnctkiiozrioydkwfmxsuokcsbaqagcczwsuxcprxbkxngcbfzfyyprkmwawyjeaghjehonvgfdfcgyeztxjhfjopzxnmpismiemdhcjvaxqddegwieshepchgsvglxmqapijjbvddpvylfhdvafiuewfdovlshuveufehrgmwbcutahninkbwhrrokegyrbptiazzskmvcohiyebmkxlodhcxweajdlotxntwwkwrglltecnmefvhjydjixiyyststfwenhnedgofmoowvvyhclgfbxdlghygbcvsiothhzlobplxmrdgcycxaqntrdirrzbpkqwtasbdllggmlbrisuzcaniutguixuqdhhxzwuptfrenjkhfhlexxkylukiyvzwrfxesbcusexjncezeuytbagazpsxkiiahcbnursdtlkuulgqzsmcrkrpqnmfmwyknifdpkwyrestayafkvcewrnpqvnoaiwjgbyoexynzloysjcjpiosjvgiqnimgrljlzdgybybsuhlekfhzhoiaxqbyechwchfncppjqlemcncoktidpksbculupveehkozahknxbeyitthcktrqkjclkptqujcdrmiquitbymngzgvwgrcqjfgqgmzlrqlsapjnukdufwbwynjvywjxnjueydhdpuzzefbnvbszrtnkgvjomrwlvkvchczikymkweoahvsglgfwupxxlsncdoflvcazprptnfxvugpnzsgrlhaxyypmaxuyhwjpgsplkwzkwogqqasykhwhweoetkmmbviguzjjxgunnxtsliygdjyivjrgyfdupwvuliswutzsdaslzkbozujfzmenekqozfaeeblrryooaoodytyvvbkljnxmgtoackryjjgshhbjvrotsywjeczndsptlisbvaiswswmcljwxxqpzuedmlqhbkujyflgqvanhfrikdnxxfqjzfudyyunwatzedpgozocgicdjnptqanmgdtrruzndoyocfnhpqsbxcbzmltnoxryyeifqgwlgddgzyuxnhbvgyglpyrzxewthaxbxlfgofqxjyxjyeuwttflzkdqvzlfkjnpklhfnvbarwcrfcxlnveehfpwnolrthrnyezcjiatcgphijwkfoppjlwrabkapjilfwqdzsybaywlvkltamjhkhifpwyxqcryxhitxkcziowdpnemiwntoqdgiqibvryreievcjiwcchgaihvzvrozxpmsvldvayryuuglzvbvnmccwxzvothknevofioonhlkgatmcvevlegerlnlmcxkvsgubxywnwnrrfjpcersogfhemjdlhvjwlrjymdpwwehzplauelnbinemxdojriaafunvdcjffokvvjeglkpvsryemufthmqqrpphjqyvtjqmuojxocuzaodgkttnngeppsxuvohbysyctnfaivzxmclagipihigxrbkuxurjtudwibuuaeybwmopejkmgrfwgyadmnpzstlhyqlrkgbfrnbtjdreqeojlcwqcfbaoqxrnbwuhuwbxjkhkfptpitqebgoqbxqipkkeoanugkikwltlzstngakykbsixopumboiudmfpjdjzixyjchqldbpxscdsshbyvasfuqaapmmjdzumnvjglalxvtpxxwdqkhbgndqumudhqjbntbmmunsjeovuomugcmtejldumnbevbdwofetnqcahfhvmzalxgtkvjyyrynwijsbvzcibytuuolqgcqbdmqfdzubscdbojbbvdbctsubonhtajwmphwngmtotjhgqjhbxdecgllxeuqoymzdbgfwgusgimtjjelyygwbrkeidaimyvmsnvuokapfbweuvonixpkamveublzyxsdpikjiipwurvbaiaycfbmtarxwkrngecaomrbtzcevdrnwfmhxgjqnbwbzdhmndbjvepmbhqmanfgehbxmfgakjyhczgcxpnckuaepbhkmkesmhiurqahjovmxjlbebdmxwdlvalfheoswburwvglbyufelblrmasxhlwokoijizmyxrfezavqvsrkawryamkhgjplsbwqgesvjjotrsmwozvyykokqapwogwqxjpnssvqbqrdgjujgiahoatvtovwpauzkfwwrefmolaqavvoeuuzragfajawibtcbjvekwpcpufwpbdmahxpkblxrhkcbnkomnxuipvjvqqcqwkdoseonszfmtxyqenryedihuksfvowdxaekcohzslvjnzzqzcadfpxhknzggrjdgtyojlpipxphqshxfvvfabfkedjaqqkcsqmbfsqakiglllabjszpszoiprnyvqlhchuqmclfptifhiekwtppifyncwhpvymtvsucnrwyjxlwsyvotkhbqprsfsxjnlfpgmnldpmqcwdruzozzpclbhnynoonfoediijrjelcksrnyeufdrtiwvsmpwdwxtcbdvogyxtemzvzxnyvmggzvcywbezvqtfpujvspgttngoqpbnttcfmiohphhstylysgjeazzzrmribamsaadkabdqkewxaehdzqvpmwxoyluwhprceiqspkylaijdaefsasakeopyahhlkdslywsnrgnrgfllnhppebpznqddougbjhmxqlfnvkbxlwzsjtaxspodstcnxgummpfxksmdfzpfbxhudilnkfddrbsfdchexvlfmffyqhwuxrfmxubxoeiisfmestikplverkunosfvvqnwmcxazxuuxihenlkmaiuwbzogpzpubmidphpymkkfykdxshekitecnqpteugthjcctudahxmnhlqjytbumhmxlbtoeoqqlydcgdukrvalaknzqixzlnsudbsnhxvanxlrjredgfgvncycgvdfnfidphpaxddrfhxdphghnimoboespftaiqopfrncwvkawavzpttnejjbtooswkufopxejvaxkzflysijrrqumtnegaefdlbsbyjuuyeqihhprlmtdunpuzranntfedhbxivuuewrmjxilekrkgbbvjojsaezutwtmhbyznhdzosfcydsqwszugkbkkzrklmuxwqnsvfmgbcurnhoeemggmpwrkgfzkmzcvtjsvpqxqowwecycniotxruoqmxadliujlpktuhdvhptmvhdtsadcsemsvtbjkwihcnyyhihfremdsdcgvtiiguxlpuwyiywpqjsetsfnisrguejlufsvuayrhuobyjeznrhrfmksmjmnojsfflnnizqukxvleoyustrdrevzjnyglpueicwtxyanwdmbocdgmirnfdovjhuefjeugmpwmuqizevalcjdathgzsvnxddgdquxglizcuogsafuxvlwoemtkbpmwckreixhisyllwrljfksmwdqnrkaozyzngcwldxzthgrafkgsdypnexazlqrhazngigcitwuvainuunvnsrgfuhybwlwtxerkcyjfxnhadnifpiirugacqtcrbwifalaivxhtqkvqgsxnqrssfrknnllxmtgclezyeozlxlpffbkjzpqzblbjjmqxzlhdjbtreawdyvkzfkvszkydpdqfyqtvwkkixgucyccimzcbddlwkmzeinfikoegnlffpccbccuzrvcboyutdsaloobwgyknrpifsmdowbxsaztpbshjgpxznsnsxlgyrjaxmsodlcowfqoryqufeovjtbjqbmsnzcloptuadnetmectmyfkezjwhctonyiafjulqshfisuxuxwmvhhfclxpdvwnvpmvltfbkpwbbrtmbjeiypgulfpccxawurkfvlxwcuubdlwwkuyjdrvtbdskuhzvywhcolxnzxmixhsnfneyfxaxfxojimrlsggafpvjkdxiewibhfzfsgexzzrkrdozysljkgiuyobojigbesmungmwwwuvhtezhliofckzlmxmrgslmyqnudmznwnrzuqkevqzmtenmqcdvfrhahxzgotkwmbkpyvxlheligzgenzajkhcenvywofvipbbpmejcrycitegqaqjhqfouawjgcoebdjwxyboeiahthqlygfzkmtgapnozswqfedlqyzxwdngvfqziijdvzupoqmtapdhtcbdtmerepwemlrxfbfnatttcsjnxtgexrfiqgcueujeuvauxchbqdmxfptdyatlhjeygzdgipezgsjbvaesswnvyuhfxpbtprayfbxtfkmrffjpsovcbgwxlfbuatffxoasjyfgujavztfrmfjmywaewvnvmfauoasmrzbbeshxcespnhilnttithznlxgsngbrpwpdtaffyzgkuqsjsasmlsgijvdozufipcrmgvsnfjutvqssrltqfkyhhhejumlstynexdvubfaosgktxtgsttgaiolrjqtljtrrgewkfcayqywlienocieemjkmvkrfmbamacjjoydiiiaqhhukcdsvuswfjgztksgpvpmldewgutwhusnaibmkwchlrhhlokeyqctdoujfcofopajzghyyjvpyjhfpfqfllkbtgosjblpdyfsutotmaklhyrcqrmpkydtckfaejlirbixhwsmadhundesywozolzczfxsjnpeaaapfvmdhtemsrdzjithkfqpkwtwuztultgblljqrcjrygvfmpsfpopqxuofmccafkwekaliigtwbbbzrmzyiajmofpngigcnxnvzckglkyjaltjpqihnfkvxzoucowiyogzfvqnmgcxlyvqjtpwasraxybdfurexsxletlfsfwmtokhdutopqooosphvihzgrutgtrpmljgogdppoayvjzzxywwurdvhtxpxqvplpmtauuwvaazpyunhnemrovycslxvztxdrvostvpbjqwgkxrulpxpcavobredmjtrbwbhtzqrsovrfopalnxmgjdewjoluodjzqhsxlionnhtyjbkfgkdbruvpzzjacqepxhrdhffnyvnjkvbahgdlydccofzyzamekvxlggqtsrubaikhobpljmbrlnsspihenzioafpspplskuspogjlpctlaiianufquxroscqajmfjvnstfgdqcgioxbajfpbumwgmapwuworjhlzkezrejehnurdkmpysizfgjrljrdjdozwblarpgxkxnhpzvnmgsasexvwgcaynskgbolhicphfixhhtazxuicntohsadmbvzivqfpwftxqjvvoantwxwssrdigmqjtmduzsecqewzanusvggcwzfjvrjxedezznnxgskgcwgnapsplsmbljclayzofrnxrfuvctyszvcljzmeyakmqovsudrqitncpygjmxsauyzeysqnjcozpaxfiexhiiozngsydaughlmmoyzxupgszwmtnuwkwmclshugens"); sb.append( "yveswhwhjvqpanihlqnnbvbzzdjaksenxrkmoqovvhstbmzryeuhrmrnypjomgujszdqbhbaseqjjdnartavastmtiwmprasqwkccldoteouxrxwpmbjlfmeitszglmfywhyxaquzxenytcqmgnuqdibvogljkeurqgmbacuwoyxvrywuobohmxaxadvtvpbqomjyeasormoawfaerbobsdkdgattyjhmgennazbsmysbmakwadkmvaeypsfgitczneeujgganldbvlbdbsihndafxgpcslrdvjszmlrvbgxypfndnhfjoccxzmraaffmyqegnjgixlctzqviieuufbpahphrhrbhbzveauhkisnxzaajtoeobbcbrygkjbpapnhppivoktmpednzgqitkacynvptujuniykewgvfiigsijygdrnxxyvrzbnxyanolmpthtmkmnpvovjhfkkmdfvdzkrmqmpifuknaawbhgrfrnpmdvnvyveruewvxvghzeczxdolegsuinxxxhdnbatjboklrtfgduozvsypluhyhaeqsqhcqgygmfqtxrkvzroethjofdvvahvpepowbeoobepaisdndqxjmhpaijvmdyoimczpojypidmxnjiqghoknyyifzitvjqhjkxdmgjalelbphuchzzakehublfmpyzferxebopzryqaxaqgfxwtlwuxblfkpwxvdommffhbdbsutinkrhljnrletopoeeabtaixupipqeauwjlityagxkjazwfximmmhjznhzissacqmipugrvrwyfworkcasnhpzqgjjvakxrxqgcsiymelnhnogsozdxhtoipnbuaorqwobcboupiftryadshftwwpejaayljzejujgcywcmjdugijnaaapnwttjlmbqrxalwjeejavmfbbvdzthauflivnzdunfltscycpsqyguvzmmkvloxxbkbrqhouomkgbaerkvmbbpftndnnlukyyfmhewaovdfxwwtymggtmxaxgctjeaszqdjuwburhearznlxxwhjntdqqosqiogtnfocxmkmihcmodtxwtsgvysucthnezswlyytlcdqivfkhfudkthwudfbwpcpsitfvldvzgftfglgzwmnckmmkzshwoqjlyyoiwrakjunapthlheioqmvqvewudsqesegcxzynitsnvcypmgyqdtziwpjhbkvknobhryjcppcaxplscpbsrtxzoavgusbwmqdmgdohjsbfkywdmddvoodxcrhovlhszhenfeepmlpsazkhrqkhlgihassgdozcbjijgsmgvazsceqprodoglzecvvsmlaksrwwgkicxsaoujiyogukygvfcviulsadbgrmxjfojahiaajhluzgohgbvgrsfoiwkwehbwqkctejxtgqtrgyjlsqwkokjkswfvhvghfjaggqcncdimesxkyzkhbtvbapmpozetrlchrlochfhnwtqedplvkrrpuoqjudjgvyntcfcrhnifauuyubxfsofbhcpubhvdeflvrluyfisdbjtvzmzljqefnxclkdmcnienzlguifnakovvlbfxiwbyfgonogsoesnjkcbieihmagbwckebfjsjqttnnrqvbuandroqjjngsejitwntemwrmtnaeuyixlnkphambjusephvivvxmyjurkmcdlueuprydnzvskpshpconzjukxmnldjxekxkidlixphdgrohgyzoydvrhbqvhqmznuftpiingvpieldlxwszlfjdhuxvktsojemfhtrgggvjbqzuvtkbjqicnheliskiswhwyerbpayujmilhwrixkxuozabovzxmxqvtwxpbvbtgksdssklbescztdbdhixfnopxfuttheztiinertgxsnaqarhwcfmjtbhdhirgxvtfygjakikpczwiizqohzukoxkhyjeuvnndxvwipylmsvwrdjrijqunshopfkofojzyyjikghemhxemeiscswaehrjatnersvjwasuocoodognvaciltvturhigzqehmrmhnuofkmjimctzmbsgdqytuwatcyxkyiidvgbaadvoawlzbcixhapocotzvtpepkajrtglymjwnwsixtlquwlblphnpavteyarrnucbevuqekxholrhkrqxfgxjhzxosnncijsnnqaojkayiundweorzrbnxhsgqebiyuvhynfsmmlcwlgrxcnssixrjokgznptfzgbeegybkerfpdrihgfcwcdhrvlrtiquivchmscgcnynfwohaclbsajiagetqikycybcfvqwghkxpwsnoyqontgdbcebpgjtruakydnmoxbjxgjvxeuejfaobvrjraaxiuvjqyayxfkwfnovvrcelhhzucvymtawdfekjpizkcduiftwfwlsryipkceqivnhzjtihxnxehypbzsqsckyrabaxhzesxzyeuqwnlbbodpbcyvtyabtmzchxvyizqvgtfgtfwjvameqcgmfotzxzuxmygrfshjtiwmycxomltmnpddhbmezimfdybbjujixmoaechdzfxyzndjybskbhwyuziiigdpqsxtwtfodioomxogtmgwssmpjpgqnvumivdvfwidsvevktxvjgkhhtvdaszwutlmhymvyvfrrwjoxqiefyozfyvygdoliqpqghiquzxfgadlnufapxihdrirmunmkmmdzhkqiwlnuvuhyosdmxhhqlaxchrqqaepsxlmkhyrcujxndeosdnrqmhbyhwqgjzmyeiwbfhmwomtzbyxfwafzzejcugcyeeizjvbkmfrznwhsodmxmgxobabmiamrobhurcfvywfgrbzgzjyjvlwmvjrjyhwktwniwqtigbjtnbluzacplcvbnkkexfhqxrwvmsqfiitcpwudqufrjhumvphjfofimsyewsylzzdbuufsagfkuuxdhqmmybopptlmbtldbheoschhefpvznzbxehbyvyqrgylvdnykolpmxzrekludkyhzseiqcjcitikulgdekopswrplxbhumurblwvrihbmvkyvxguvgvswnojznpznzirqleiyqdmkenjajfyjuwpejkdjxuhvyuhsptbyczaixumulyrindbkzlxubzapvrtvqwjzmpbjtdsiteghppkglwemqxhjglbhkrpvsmlbrgxppahewhyqxysujxqaevyudsbzriuwuhaenwgsevnrjrlvgqofsxeztidowrchaluvhqetwtjgxjyqlwdpyweiezvrasekwxiyvcjjwpdmylnzzaqqjlagndcupaprffxsltkhuqvxautqypwqieimbwpcdzxqfxljmeecmgwvodbqxepsiutboswhtsjiscqhqchghacenetgttfrveavtcyfiywdtcgqfbfhtlqdcqrefcshrbbvpfpzfmjttqqboqzbvzndwpmsjuwcflxftpgixbugdtihztdudbsjmyxoiolirbdbwjvwqmioutvpaijnlfpznkzgyoyfmhbovdzdmskyxzxzeycqovvyfhbfmbvijwqwukmpijycfhuierqqokdfskzpdrunaxwtdaplenrinlwxvvrekkelutkvrjnjrzymykncginqifdqxmzqixxoxyiipgxrjifgpnwfqzcacdxduoqgkcwpwmpgkvloxiihjiwmtpstivoamrssroczfhhefrxuyobmiidqizlsvivfbtfyxnivczzqsozvcazkxtzuvlbbvtldrqgydakmizuyxeidyyhearuruoifyjromchkpdtzcjifcjdkpqtcfrrgfbbijaylhjwjzuynatfnkqcandsarxrmcoulfouhcnbdkicochtvbpjckhybpufznpojzrhbqybfnxwjfxfhwssnuvojguejezjqhjsextxktbaaapazqwhkjkzxolklaxgxtesqtptdistiaflnwzwmfktkknygwtmflhpxnmtvtefzfkuvsqjgaagpmzqxifgprumtevsdgtmnjnxhoffpfzhbfqtswitxntnmmasmpyxitbltswdxvznkxmvuwcekxanyakqedecophsknikrskbtwqukbheskpunknlghrlzfbzrfaxaxwxbsezuueqcrnyiiuupenzcwkidxmszdehjiziodrbhxdevewmqtgngaondfptxgulhypjuyewmacymxvnpxylbqpxlijsecrofqrxpilcmpcfqdlyparhpmszvrvzpshhkrgnfdojqvysctwkojjimxgohzsztrgzmfciwtpmxvycideilvcgzusidqpwporhkthhwwmuxqrqcenxyewsbsbnujofhqwbgjlkqaynayhafspdpzsxlzculcutqrrumcjslaiceodmwytitveadlpdhqkulhumvbifozetnqsbnswakuevlggdyxauroydnzuzkmsnptraumvxwlfmaripbeiwxvlpoxdjfnhhgbcsfrtnrtxerbnrajytdscsgjapfksyqhsikhxpivdkohplavgblmuzmjslibutqqsmvzmxrwszxizxracnjuvqtykezdtdiutpsokdsapoqpszfcufgdpjsgskqybsmaawvzfadkzdhbfxvewioijtwvxpxbarqfbyazlurjhceqbhdteqfmbmijggzyafrjjxtqeihvynwkwkdzdpamzuhmqxjxhgsslinkpdibzhnqzqcpruqfmtyigbfjajeewexzswyovknrgecftvgxooblhemoivvwprhloudiqrcxyktsptdtkektzmihhrsioqusnbfzwvxwusolrnrvhghadkgrfhlcvssjswkgodwifavnhuvutovhlgokxasnfzpygymrykkhieweyxmqljcagnxrxhbzluhzuzjypnffdyrmuowauxorohnhexxblzwxmatpfqbhyzltgwlazwfroktbgfbwgzbxtomxkhrvkuriugtdjzzjmhxlhiamzudshzgwxnpqaiycnbteyiyzurvpqffjtfixficnmuoiyqstpljcmxkhkvbhzwlospaptoxacqnvhfiodmiblyyngzdpofbatozvlpbdjiwlqkcgxawvjidfqsvdlcbzdqootjselkdfgxutdchuldwwefernhpajbptorregypsrwtrsznvxwsuwefrigmkrdfujhoijlfhfzhxcivbxfrxekloooigizsvvbwyjvtbrbjtzyqrlisnkjssvjsrtohqxdevzdbyxsyhucvuhxusdsoezwsfkthodknydybooxaomecqnehinambokyegoyaennmornlkemptjjqxojwrwuzasiaucuwpcfragnlzrghxejzpnlxkkbdxeluoibixkgiumehzpejqwftljsqrgmpzeahucjobbhjskqwpkxxartayzpmvbevvjmwbkrufsbojuuzogaaxigrmrtjzodibrgibubuluyqqyymitzplihdulwbdfmqlynvcdzmoixaobgqmmthrncdfuecunhlsiowbbktydzjxdaraabjyjawgmjzfuwyetrkxkfnhlnufmcklzqevkwmqqclwjmnmxqzyfawqqbxmyeelffkuteqfyzlsttntushaskjjjcrxahwtfeeyxwryuasndygspkorhhtknnxqqvcvduiwjdburfukzvozzkagrwmtalyizvaagtmgbotqmmtfhwrhsqiopwunhkbufhqphrolyowwpdqtglmsycbkzullynuumzbfxruurigjzyhxspdzpepvaiqwnitzqettrwueoxgvidzlzezmliqwapnsncqwltnfmyqhsodtmkvudkeagbzggvrycqknuszhyxrdsodbtlwabzipqzrvyfjcgugxgtcgtfuzwcdmjfhbrxreevyffcwvsjgjtwsiqbucixejrvhekvpnhxzbuwdssbmmrhalwusuudgbqevuhfvudxugymzpfpedbtguemdjrdxgdvtbczdxglwhlspikklgzqhozsnptfncjkbrrsmziwyloqpnmfxhvjuljwrqdersvdxcakwqaksfpmqrdhrbzkuyjxreiamuuthibvibfgkuwkpjkorlkuekxpouqcltatpgenokbmotjsflqapgzesngrmvfvmyswrmnldiiqotgdetlddmaksdtvufvcfcpomsyjdmdxjigqaturrsxxlwkwvyorwsknsxmppojxcwkvigouenvzgnvuiwdxslemfblpxprtibyejgdshsupgmvrvwxmqbuyxwvvnisgpdryroqttveefzqjghhnynpomptfsmynspuvtrigpftlhcmywpazhokueesgkvoslafykpatwgpxzzhnlupfazwbkeuzjatwsuvnnhktnvzbfgkiietzirrddlgftgxqyxihsjxenyfnlvdlrxwuebshrdvcjlpnuhjstrfblhpkaorthxmuoimntotaspqtyxasjqmfroqdbovavqydnftlchazkkszjputlwoioycggbrcxpmkqxelxzzifmixjjuyaiqkeedejcbyglfwubzcltnlkakcppscfegjbqqzmigppnaghttxfsrhhoxiujugahiqoeiqatgizlvyfejgtswddlhmddffbayvbpmsxcyyngaluvyalrdoondmffvaislxxthiuuxfnynxmuvvnuukdlinhftswquvshktgywyidvdgkgoohqwruhmbqepbiiwwzwuartmzsvfwietfzwnnkgjmciydcqhmwxuetgkzoibeecjbvjeqajjczfeeymjydqdldejyxfadajayeejfiskugqwcbhthzcwzzizgfeocmoccsetgczifxadrcdrxlzravefrvbdalxvenndovprpjtmrsdtggbagiltdpknoflttxcrtskmtbstismggnhfwamtagemzordrhbghwtctykwnjzdghdcsyrncqcjifahnhmegsgzcizwhlehvyucqepuphduxmhaofzsoatzdmzxrthqpdovjskpjcmqwzdjhkqebpvqfvezchimibfrlfzohcywfrxshyrqbkldcwihbkaupmblszergwdfaxmpidszapvwahjeuwzdyhkfbijbkimjmxcckcmfpbknwtdvvgaqlkzweqqqvvfmzduzvypkxamdrwkkgrzmomvybasewtjwzoqlfbyugjeobywvclcurlcsvzerldsuxqfalmejvolzxhumckzaplycohrqtdbphxglkbaucbchmlrdppbxwqthdfonufmbthjflhidylzqlqprckwoddwrjizeaoqaafenzvfcbuqrpkufphesxbunqbbapcqgoicnpafouzsmumsqljwvrjnydvtlzkjlrraammsbepbrkhadbynkexxadallirflkvdmxycykaaiispptoqnluuhuxwsqipkrciptwkpiqqmsyyxosrvfmcddmmehtthqqadngefianmklmmzxtxndjxvwtyfnvddbmzdezfhxptpeahpuauxcitwymbhzwagqmdablnknqnixfdhcimcnauqsdesbxwwouqbhlosibxgfcpkwifezdwkiczsxykdetffzxazcdzkrjpgntvsxnemdehnliculrniwmdndcwgswgohgbqjjgsgrmvjcyxhsosmhiqglgkfbbtlwcrmxnnpbndyoxfmqsagcsrrhkgojdffcugzyqgkuwyckvcrerrzeauxxvmrpntfotkqkcmdycktsyvzqoirkcqnoqyrikxiohepakajlxbxqkrvinzjmngnefwlsheuidyhygleenanandfvqknjfxyxhnmafubjynvkigmpbeemqrxrbzmoxehmjpgpxfhgnsiozzxwifhxrvzkaltknnsauxkotikvpydplkpikltagaoiqzxsuxhtnazlfbgnzabvreltbmnsdaveceacztrhcedjzkpioqerviyejwtfhjjkggjnvlrhbieumkuibfokzvefsedmokvkahhldhwrlweqtxpyjzvxloshnydjalkqekvefemymitaykgkgsznfywiiswprxyeegwgfjvvzzggrlmfepptgsexnbjpsycykxirqwwqnznulhdvtbrmnqrzmviktgwjmcnavxvwooymqaqbolcduktdzdpsfxiyuuekxxkrnyngfiyaynuunibyrnvsvtolorseprjhegffsqbfmnpbbrsiiebuqrlmihiudpxyhnrirppwigynshhrxletwdyzxkwtevnlgwpsoarachgilnhxoizdkxqzktkyqqahtcrpjrwgpbjlppiydhpzebfpxbdiqkdlyvmzhrurlbhtdwvdfikywlczansbspvrelixmwlwgzoteroooojgrwstldmgwrxhildupsxaezhbvnwzyjghplyehjnofgxtgkhfmjpzfegkinzzillyajosnorkfcbzgqaxjkulphblclvwxkwtnnfkemnanarreavncfikxlhuvlkfwdrjxwpryebrhcsnottqaakinilewzbffkvvmszzziqjqimndconfoqykzvhezddawvvnuchdnmpsbnsadlndoqckypakidcvqzqccoeavavasswmznrsytfypmkudrjzsuatqvoszffzrlwokgucyaetpzajgjhatjeibpzinvntnmmybihdzpdmreissfgdkiwqtdperqroisngkbejbhgbtouanyxqxwkvwsnjqatdtmozmgtagjdhybuykqdniwrjtytuzjnuceqaiklxtjxjweokskfnvilbgvirxfzyizwntxibzhnhsuuexpcubyfebvwphbnamoyuyrgufrnlfutlwqkpuchvhuaklvlnenpcjcqtmxsidoxfxhimwvdqwyycmzzaiklwnowaouophyakdoavkfchgukbqgtqmvurecyrdhzmhetyntihoezfnrwraifrodyfgcbqgrfawtaocudvkpknzeaesjfhxsbflfydcgjppdlbbdaghdbpmjgczktlbbfyzjupnsbecxkvvodxnmwatvxibdcmwzlawznftomyxyqiaojhmhnzizrpxfbvccnrenxwanwfqyanogzenqrirzktjrnpjmnnpjajhknbydbgbfrobqxjdqrhwtssunlxwhtamktpdqadlisppzbtnwnjptzwsnburamthmvbibkegizdngygdttsxprwdujhltfofcplyozmscschcvtzmkjabkwdvwokjyuenjginscouwrspsbnogkntxyonqjchevzigchjpevvzfzyoqifoiyxkisgxagvhpicbsznqsawkxtrsmfevnxqfviuroeicqjovfpnqcvzmpqzsgfuhafwioxgyqdfvpekmecqcgqkrpftwyuwmstzfihhoywuromdrklnrivfauiprosggbyvlsbijhgcdqbfyqxjfpssyikqfplhcsvsihdphyivezhieljtrufkawthzczxyhvxrjibqxymgbxkonosndahxclpaenvckttfmpcrncmpgmjhhegzaclmrfobwkannawciuvgnjqvsdljorbjteiqcauwmazqimrtypnlprojfowpuvauiqiwkoeyrwfurxbqprgqcvxpdiirmkxtsnoyfgvzfpwxtixfldoflnalxxgnmqpnvtisretvpgwpxxymkqygauyorwcmnjmvvqhejunpqmgcknzqshfchvpdefyfhtzkoxccbjjhfnenvqukvmojeqwvwvschfjjjwpsvnpaiikxuajcpbrbilmqlhcxfxgsnbvvswrzjmqqblcxosaxponknthsselyktgrowokplvgdyeghrwxvoprnvucvippfalzfylpvyhhsisguhjhaalarrbhdhinxejiwnbqhvghcewjrdpgumoqpbtnwjryifrzigsfcaktvjmcjewgdfgoxygbiwsslxsfemlpcedyqlgnrjgozxissqjrebgynumvpzkbaaxlwsztqnmlkbsxfasaqxluguoulfdojkkdqutjvpxmhpkkjasegkfehwxlkyrhuinbucfxtvtppyzbvhsekxpyjtgevfnxqnsojxlmaqmhsrqxuqpbhvsebnjbrjkaciqvjiehvujzuluqmzdxopgdryosoglnpasmrkfejcwqiwdaqscxbrzglubexchhseorfmxknzmlpicpzzbmjyyizsrncnvxtbzagfkmfcvrqhwpzalobcabuyjuggxeouqfaowybjflqnmvcuxgtdonmztoxhhhckchegngvitgfbouertrigqbibzdsbsrbfaqjrqbcpjzurkqcfjyhfvkbppbyxrntpkzarilasydiduywbznabbapsbjwnonlnrwolunthmqjcxvlsiikbiqrtlfvkoeuofeqgsivygsinyofqtxkcqkjruzzydamlnbrgvdjhortmapwlxqdbhljwjccwrglxeporfflvswyhesknmhtdvmozefuhhwmfawsqvffhsnyqbenxttrbxpolermxgybdrirvkrjadoiimelzgrooeetjbfyplvaerumjkpxqvxnmgpdmgevyytordikvcnsbialvhuwujbexufcttzvyedwmlznqaovxuumrfqtdabixcuwurronnwxwrmsigiyamtxxxzvytrugrfqenyizcwhmgelpjqltpnftmpteqlduditeixraruecdjrmbjkiapesgmxqjqggqsifzoqpmowapypbvckrdleyuannpdnoaunyiqjzefetbkxfsluiktzrukexitvpuezdwzpwbdccwkaqtvhauhlirvntzppvfnoerjxrpwbshgbxcgvnpitezrcxrbzojiylhcobpiuqscjyveuyrkmmkibdlztiofkmlsegrdiidrovkbfwytfwliqvcafmioamiczdqvsdcsjicthxkmxqbvcbwkmfcvdyhzwsdkblgxtgbnzjxqckzeghbvwfetfjxbxhbrsgkqwcijutgldrpjmmuvrekhtftjwulvanfrvcmqvznsjmlqnvwhatjsbmvtmylrzkluimvivsswbxknhejuofqsjmjgwlqphnoulgejqxxzvoqricumiggnxacjtlqsxsjylsbgfdnecuonqapmapqlmpdgvjvfblcouelyuplcdngesjkhmimxhiqaribuqjbplcbnkmnzcmtvporifrhvbqzdpmhktacbosetnkzssvivzorzpbeqnudqpovtckytdhzrlaynvablmugihcqfnajjbafkyankuonyffczyzovwjednztiwutceitnrdrdawwctqrzzmcdpykeefgfmurmsfguitrmldqtxrahsblpusfojsmhqjmftbsmxxlhuuaohgdqveiymezoycgixdngpbhtbpdpjnmxrxiatnwltpdagieymidqsnbysyvhzujnfwrverszibegtdprniebtvqzjlndqaqbxoaloorvhnwkoxxlpdrqjzvzvhalafyusgmsqmbvbzwcwpeedgvxqolkanoevencgjthbmpoogmdqdqnjlefiyjnnsjjmulocooxjxacdkwkxkbzgrfwbheuklkxbgyjpjdqultsvaspezvnoqzomeymntmgnscvyrlklsnegdpqhrmtarwaqdmzooufofbczolmsdoskvovysudxlyzeokgnznyvbizolikeizpjmyoqyxzvbvfdmubebtvpgjzgpkvgorneblqjaufcixtjvjihpmlavkxbvdztyrdtvckplqufxhcmtbozuzqozrptnatdgtgnnyjrogknpwpixrxvvqxyuhayvsuyuzoircnibsycekzlxluokrarkzdcpnwuoxupqmgrblfhcprfvolmcnbmwlfoosxcxhdotzdiwyqiekeinwofxoizenzccfsycepvzjqpupjcfpgcztvbukdclpgxeaunatymztvfeyhgnycbgbumraosicemlsxxnipswhlnzmyenrtjtmdwwqnxzynutiqmesljigataqafdgxjhnudgyhujfkqeurzjhoouhbdxwwxeqkvlqgbxgijqzjtpgtmymuhqfqgirhpcxljbxvhlujrhjzxogtxwdavdljqqquzqrblgeyzjisbxhffzegmgackmcitwxofqmcxfmhwsqflkeisnvtqrbelltusyvgrqeuxwlpckxtjdbjjnnhqhjjjcridrdhxqmwwgsevhroogfbryhnehzuxqzgiwznauezvlkpjyztmbfsvkbzqkbczpmmwfooihnwjaihrkkvfzeobtylnproncbcmwouspawbslyyvhxnopeztkdfsigzjrhzrpiveavipwsfxxbmodcokpeihsozxrfnwdqtcmuumdzptfpnpzyewdbwcvndktltcznwwguoablvapbjvawscibzirjeiqfnlttxfdlkfxlzvuccajzewmfkqmcydbomdjntmkbsiklauimaofwlgcibyayhwvugskuemdsostnbckyqmikoitgpyrpczzxcvtvomgrraeeyrufmspmubdmaxbuexyeghxoyvvkgtlhezukkhzsgdnzyfvxwqrodnsuzvblybkfhrezccxbwaoqndvsskesvnbehpfossqsfglhhirlmkjhkqlsmqmpekgeixqvgaawknyqpkpcbamvjnxkclpxkgofrpmiuhhrieqphipgxexlrznbrywijwfsqjnfrsrocuhsvlmfovkreubloorioavldrtqjqujnlceewgyouwarcvjwgwpcvvpuzjhzjduppgisxitmqmgszqsahvxewbcoifezcwsthxopgmchbhsdrktltagyujrpuqcvafoeemetohlhrbdotiuvmfizarizggonwzhpsyyrgdhelgstajxxinikszcmqvsaxfxnekuvrjfrdcxdhlzyfudwnfuoqonfuhulpgfdvxewaygtdzburmckrnzcubczaztpvrefiwwjhllipygytahjdemftrkhzfzfsolfxrliirjptmwxwhcybeibijmbisboiwcpptfghgfdsbluvrkzlmttgmrbmvhxcednwislijleveaeuycopjwueoywhczrcysrcdgcxvbyluuuqtgjnlydifsprgvzpbisixwnljjgjeovazkqwhopvhyrooyzskxbxgceupfakipscuwjbbpmprdknnzjddidqhuihnodzlkvltlxevkongdfaajbydkqnzcszvpqsdvupotkodovpmwwvczbwdxysbdontdwjgpwyhljgsunsnezdygudadlycncdauyuzneuuvdcpniyfcoedvehifrkdjpowkslnglcemwkntvvncbzumoocwornoykmmjnquyrdnkkewptyzucfivvornsbesgdcmjxxipskgoqecjcrzkbgceomgngkfinsrawttubkdxnbmgwcgnkrgfqkvfphwvnaqrbajcqlplmtatctwefmaxdhbguftyzdcrlftqadykcofdqwxbnffguocpbniwekonmpgpdlmvzqsjasvuzmebseaqzrezngxccpdlfprapuoougimbjapvejhrwyrusqswsfkkhwntlfxniasguovhpfdvqpyjekwwhyzllbkxstybrisbknoiqysgbkjzqhzypzukqszcrsxurfrweqomywinjwmaoiengcdmkmvzxcatbewefmwnenraxzyemcajupoimsanoqknhkdfhvhafbvbhtxzqllpjqmfjopwmepgjqgwemslkoqjiypzqloafvgxyoieycembtpxwsstkmvbpngmdvbmvpfanpyokigenifctmzejghmruerlmflkgotsrwpznokpfjiltljoqgpaqcpawojlipnqqvfwdakncwtbdelvzehxvijqmmrhmczpnjfkepxvqkvexdeuzabfbkjkgxjphcfzdrrnyyzoflwctxpbouuwwkclfvxqqirlgsryikxzgcpdwslfjbcldfsdlfxpvfnfirevmwvesbmqeibmsgtljawuyjhqgawkrxvqxppetondqfbbilathjegtivppfvzdjlovdwsneolqlphdwbtyvsbbcibybvqjmapuxgjrenjyfcfduvtgasirdggdnbftseqribyzowiuzhcosrzxfgunwqsuejxqyntugsjmxmnlrzzugkwxpaijgfnxwcxianrfdiafehrwmwgciowltazngaboddtkjifhtnppmwczwvdzwszuacqwcwifurqcznbpydaldnaodkvxbahrsbrczddkyxvcpfoeskdelvwzehcoblkpmrrvyntscjsyytvlydflfwpbyzznujynvrynsbgparkbujesyxxirxyrlqsdbocgtufkxzevomdrzgjopwvwdltgnvfeoinzqrjfuloqezopkreakchrsaoxpxwmzxkmfvsihfomcobxbwhxhlftmmpzoqwseutxbgxxvldpopglthfdzsjaelcdxymkyjwfhxtpmdqtycccdijmwayubsewdjrrqvnzmrdhvkbravjnqbppaxbyliskbrikrozfrnkqnbnwnyxnbkbyadkhvagdodicllnquwthwjmoinycgssojdqmwrfxjjnoroyrbvlrrguvzxxrfbvllhrpdbgkbzrwvbdzzvonkajqxsbjkfseitewkiysqkskuvaumligayfairhxyhqmsqmxjaitufsgugycezlvvbjiangdquxsjeueezechrvvgvnpgnpmbatskratfzgtmqovcwxmzqldwapddqgvfayvjdscqafxmuwqetgiwqxerawwoxxafzprxeqnvztwkergyjsrrtqeffsnclxcjgxaneapimnahmhuwtcuizosmkmcwpgfmokzuyabwvnvvkhflevwotcqpemddatvndnbezqhsrtmiwamrlcnhjgugthanxlhvpwlenprotaccbborxfkdnivjdghjbpzgefidfjclvqdkeejrncrmwveugvpcsmomqccjtvbiafnzybzlxdcnuwfvfowdkosgohyxayynqdzqpipkpvdnmdindielkxgbbzjlspvskdmkzybwmsxdlzqeftoahbygooodszkqswwjjdqgjaocuugynobaofboetperqbymgzfgtxqzmddbarrlxwixfzgmnlevnchcuhhbkkjegjksxrwttozthjxgrvbmvbwpjbxqorlocqjqfliofjonxydyeqftczriujbsflwibnkynjfrsgjyokulggccmljuvwlwbrnvbxdojdqcndfpfvmrdsflmzknafgcrjgnumewjoknwtdsgodcnrhjohifsholwrifyshwafkqifdpubwwtwglxzzreuezcwasjbheqhftgdgybaqgmtfsiuhuoxgvwtmddmjlodmhdxytibmmqsygclqyjlfmrulvrlrvtqksdabbfcfttjpqzfcjbtefdyazundpkkgiynotlgjelmxqcjtwrbwxpduzwyaekoomyziemcvkbhxmxvnopkjcfcrlhdycplildgiqhnccenrtoxhrkrunbdypvixciglmqbpyavdlsvpesjaawzmijvkwdfffbnselnicofqweokqiegvjnkddrtiedsdujpasrvuhknxistzdhmcawezcubdrhkvlkxkfvkcqusidfslsqrxcqbtlerzcxogyzapykkbpovyelqaixbttypjxocbxrcycmmbomnjdobimfiwgykvunonnwgzxjzplzogblkipilqdoinxawbkhjfftpoqsexbbnygjikhhwkqcvmigmbzaklbbmfjtlwkekzkzbdfkiauuhcmpvdntlqpdsawozotfmlpzhckcagpzzrksumfdagtiqzaiuxpjhuriqmjwycxbdmrcqlogsgshogwfivetxlzpyogqlxrfebokripcgmvakylxlyiolkpnfokwzeslbntpulvorhkgssqknlsfkhndvkyqbzptoebufjoljaijgseadzaycecxtsuqdrrogkqszhlakkwvpkkdurvkhplpnmzckrvqpdskjfdzyyegomyzppcoxukhfgzhxvimaywhpdlfftcgkhcspwezoalcglgubqoupyqdwqcylnfrufeoftjuyhsmyksaiodihlnwmjosnssrzjjyyjbwnpsfwiehqgkrbzmwewitehvigrbujpsonckalnsmqreezzbswepuykfdkccneedgrihymwbaajpoxlhthemahuaelkqtwfkbzmbbsbetuonecvslomhdepusxtybyvspkpbdpukfwacvplujypooyphdleowqsiulowbjvcbuyvjcfrjikrznzsakrfwskfdynynnnneorcrvsrhdzlotocqyvvsnjsiaakcyuvlpankacfuaynvxofaurcygaonsbjhhaamlddmaimqoraqjtqchhcufdixpsqeeyfqyerujfsppepprtcdctnpnytbppfhpvmgnwibodzsaoqotcihmlvtmmoovhjaoemklyeuhcejtnwofzvuvkrbdhkvmjmixaklrhnhjytnrkwobwwnwmnzeremoncofnqteawxtgttpakajquvbumkhxqxiqbhusvxhxaziigiiakmrxbtxaldokznknjefnpxnxaxtkdtcuprnbfkzpogeamcjzkiegnkfdaaddjrgmaoatqmxvvlbqmuewmidnhxsbozhlebcdductvvxhtajkfwyllcceltgyksrriswtvsmntlrpgnvbcmshaneevhwzhmaaoschtboenpmqwuhvqgmemvovviiabvwsnuogennmsmlhaocmtyqzkdockvmmzitlvosbjehnkneldtygsldrowxtblxylqgpqaksovnvzgtxaqejuxliabcjmmvrxrayakvbkohkaaqdyqfhwvxbvqtauoimrqfqcrjrrgwzxiszpdkeunmmkhagkygspybgwvmdeycazgzspoxuaptyxjeiwfmgnfenjyadczoujzieatiwtqokagrdqrqnohiwjdvufmryaeayedeadltjcbejryhsztpjzulzugurmoewigufoiqjkvgvivcxqvydutxsvgwjgzslckqnpvcdabeevtkumztokgfaqotbyxjmarspztbgnvjiydwujyplijxqunviudihjgcawhxcnusyeseuieutfpjtougjcvlzepytuoleahzrujxjppgdwedqghvrccvbukqdfolatpvwbppvuuicciyayqcrihqvksngexcvnowjroxgpagtllbyubcuglwvcluosubexeeueaihfcglzgsbljobpmzjrpazwppblowjayoxtpbppfksenmcwbctdgayhzeujqmbmxmwgfxsuixturqdzbiipptjqawmwxzncknfmweqowrsrrvrvlqhwzvrjogshjskpmdhngwtrwioqhrtosszludozbuknggkswrspfoeisxbhphxfffoiaufqjamqyhdesbonhontmzpxwrmsnhxqofrfgvuydkqexpiynomnovwosczxuaitxctrviattwfyltcqvzgpbxodygkgnkvqbmzrzfaneyjebhysjqppkswxgncsrzndufpmdloefofbamhjdebxpelypkiwbsxkjgbzngzdvoetuolddgrzpxqgkkpcijzgetimktzsfnpwxyjlnhbwxjqegzdnxxqfebplfycumbfqssvojkprcvuujpqkarnssraonqladoynfbqpziewnkqravitzolcklguwlatoimumrbvqoyoitpafxbjvxwxetlxehhwwfpyylwjlmjsxgbjdznmiuernwijgnbunwbkewvgqvlyhhnuutxpnlxbkllhycsrntpwusdueugvopgptvgpnbipyimqytozikrxqepiksithoxlobvieiipqgklqsexchkwxtyakejnqulojphzjcnnevfdrodslhmswejfdauxsgsxycikqtisacjwjtwzbmcrqlczhmcsjblveqaqehqmfiuhcaqwmvabvjloofsglbqsyzirrwftntrjdvdofapebndcidvuzmspazyfimtdonxyslcdkldcobxgjvjmaqktthhzcmlnpwfaaokpomacuuznpqofxvfwkkzwgnbppvpasizarhyqrzinxidpuaxpejmyzxmomcliruxwfytmofsfyvkmjeitpqszmdjsuijptbcvpofyklonpqiyuhiyqexgtnnooittkmksjnljzlsijkdzrfdemyucyjwsslajfwdtltaetnnwxxdvgpkjvudytibepbjkiiohpfwgccfqghbpdzsisxlsxvydqucpbevtstxxmpscfppbsgdtnvvekcfbnduhahtsbonuzbcunujhzdivhexzzqqzklwklcprvptqnnffdwlqzsiuxeuckzxlairfvlcidvldjlgbmnxfwlcqnqjegndgbrvwqkgqdttbseyircqnphnxiqragnumielsdrsdnyzrlufzafmagogosfekxiewkiahcmesgkiuwguzcycuyjwmoctfodizjqtrewpssuthlchbilakmkdtpzjacidychqfccihwjysvvmeuuefxdhmgtiatglhdflzbuccbihqxlflfnogopkjzsgdrxdfwhwxmompxbnryrgxyjgvwrluksmvqpzallqshymhomvofcclkyjnlrrbwatcfzystsfikksyewtcaqxstqbquzfabvfsxzspwonrfqdqhmvogokcaadffmtsdndztugzxcsphkeieuyuadmnwyolcbgchpwudkfuvtutwbcohcuzreoczhymgwhgnbdnqxdkdbvgwdthccqhkfzqkowdqvwnshqkezqnvhzupajtagrptwziqtlkhcmwvmpvgifjmpkwoubrffhualqlhtvijnisdaimlbqbzbpzrsafwzcpuhumguinepkvidsxxiglucyjwlurmkjprooashskojvoygueqwziuddtsocxdbpfjzuaiwwwmntjfqaggrjunvurtuotbzjvcmbntxatkigjqunrkzyslyemkqhgfqmnshubqxstwrndjodqerbstgsitkgukgzephybxgjixfxobvswayuqiwlrkzyptxgcbdyymghhixzcfpbfbucitrkjxiijgchuxdvgnagwtqhtqzcyebuninmzidfvvhufpxckfoksfpaosdfsmyumjphjskgsdvfsrussugaloqjzmpqlmssdxqvvesrindtzipbvvtwbgehiesxkbrztiqcbikbuacodeikqntgqdshhfkgtqoeqhpshsuqiqtcbdswcjkdtkcnhglarratqpzakikkowkziuajydfcqxumzyqkedmoqjukadcbjcnffuagwuldfcbgptpshsatqrdtssrzqbxkcsighfgblljirsjttpgzblzkouesfshkzltymycidkvnakwtiuudyuxcgvnrcofftfcmnxetcbsgllpcmvowbuxmgxshqzcybafgtpfcazynrvnktmlpwsfozxnkkgemmxyfeevnfuiswkpfsenumftymgplgnnomranlttlhdiipppaepnodnktdnthdnhkaristwcdbpquvxxgdmwwlfwowrrwfmwkdsrisbbfzimicddznlvwwhnphtlysgmkcuukjyyihxfvjavpiarggdmfmqcbifckbbwiaskbqrpdkspaehwnjeowhagfgxwfpwanmhedxahuaxbqxehhthqixrlgatydavokbvlhlyraycixlxhmlvhdymnuqjrrkwnoshzwgegiczmobygtkmsoznfyrwamfwvyvdtypesybglquotrkoxepbkeghoqxvamtadabeunsuaheyfskfmiutndtvbtjytiytewtghlcdhywseckbzkurtwujhciieereykhktiimdxoiwrraxjimriaysetpfdplpwfkpegsjvtcgfbnirlufieaqbmmfundlxvrmphopzmntqkmttjgfftejdkqgikwmkgnxqqwmeyeqfvropfzjgcyhtgyrsfuingkfayolivttbtvdpwlvhxpvxuumognzclnjeghfciaojhprqtahcocpwugaebeecjkvgmxyjpqzkuqxzhypobzgbwrurjdourlxrvzfkbllvrluzhzitigeyerestxhmufigbiwbqkjtlqrvowhrfzhocxklrvkjyhhoydmfdgyucpwqlmrqzazeaijthkbpihgcpziqppqpjvrgqomwdryblivezpdtkdsvkgyrtmrhbtamuaxrhvfochkkxfutrflrztpacqfbbtnqjajbqjraptpnmjyotvpwjuibwbewygvcexpgeiemntjaamjpzsihasbaejqqgniscnmivftcwapscodtrcwrlxmdudohrvjjxcceqxadtwnwatnjclatmhjzwjfwiipmlblchtrntmgrdwqesxapjfjxsijtwbwyixnmxcpjptsqpfrryngghjrlfnotvvdugadlqomyfnmnindaehmgzkkscwiqknrcfanhfazvnkdhtegcdecjmjbhhauoqrxnywybmpoiwiqagpxilpzvcvyxfwfcktjsvlzyrhtxeetmfbluqfqhvxcmxduxoispwpfdmznunssjlrwxxyuarkuagmgubsjohwukkzcpyknsouiopchmgkgoybrmvxvzptuukhazuapjciehzjpzxbvuetrqtlqdyqdgygrsazvoeivqrojvaamumblcbuhcrwehawsnsvqqhxilwjfewujstomimwriznqoeqouyevvoptwhcgkapyvfgjkbrepknifinwmfwhkcoktlafgybkqedxffxejrvsxjlpeqmlyhadulhvdahtrofvhmsgxbbvspttpwtmmfxdjszczohoisyjqsgjkxzmoarcamlaguouhfpnwkkrbztfppdnugzxvtxsukjobubqiklpxdnjeiykxpenqfjudduktqyyskvbxpnckwbegtienbiorwgqpjfdazsuebidhdedjapgojkqpurbqkjpvktdhvmwpkogjmdpuxxtdimvzjywgnviwpvhutwxwxzviilsblujmjgquwtoeqxpilhfkrgcisnvgrkrqxdaedyjfwpupwriiefdoqiozfwrksbydzlxyiiswcurauwgrxurhjftkdphppiqvlvcsxodswccxtlwvbbxqzqqlkaqhoraphuxplsewnqyzqgjxostouosugujyeeqogsdwgxucwuatjomyibhoyduakdbikbttsnqakkeiddhmqdnfknamimntljsmjexkyigamqxznwbxnnckbivgpmmvekmzpsxwcrhupdsqgbsmsejdqklzvyjxvusdwdwlqseprdyglmewwupgxocygwpnqqsnuukxsgetpkjrprqcovxcmpxdusfmesjnaurrgafnjbovsroglpdxjtumwduzrmznnermzbhicoexbktqokvacrztiufxlmynjvgvdjdzlczztdxkbkbevhbkjzqygwzlnzzylonozqievudwndescjnvowsbiqdoipenpxmqvmdheyvpgbmbvjienyvhudslzaxktvausygcpxmiroohyommjjqbrlvoijglqltdlgssehfkdsiauvzrbkgnjzlkkovemoljqubxacqmkwafawaadkvnvijlbpzhgaekvngvrwfdlahthlijpeehojnitcdzcbjnedbcryjjtiegqtabowfuuwpqlcshwrmglsllsprluqeqhiwdwdjobmkvdmuoaesugxekizqdtcrholrpdndtxnkbwiaovcurmmyffqnnrotuxeilqcmxwprqgqchdkmmbfqoplpjaljfidjrqmiduvcvgqzrnokzzhzxuslhgyollcjgiekdclxmfihsfrvgjxryfquljehmegjmrqmhqcojozxjhyybedzsfexgnqcfohvnugbzvboksptnrmmrxngelltcgfumrbnakmxpeffhhznrougeniqquxxgkvjnkiwojsrcntlwmkbwrnnovbhvykjifcsarvbcypejzrfvcbshtkanodujgcldppydbxbgcobevvtkjhjkxjjodxkxfyhyghucjiqbqrdpibvipkbbsmcrhloztwaunmjpwymrakhtwvqqgckdnniafktvmiondrewtygwuvuogenrrhdiqzuygpimjpvjkxcjsfemlaucywbitfzmuttuvavduuvrlhgvvuephgknserbnlgpqdldlulccjgejuobcemvpmdltgijhdaltuatfzgezlfqafcnroedbnwkrccztructsfbnancqjuryroyhevuulztnwvwasnwjkhosnyuhjnahcjxqonowxenykvybfixtoshfjirujmlfexzhzqgkfndopmmyjqyuwpzozsczziqnhdgnmzgszdwouogpdcixoxuqoxgtjsvymzgkvremrfuawjigkmicvbbwjprbfcekrjwzxufasejdmourdivxsftwncvbhptydamlsxiejnabsvvrbsyomvpnsocnfnbjfxebnpsinyjnepjxsedqxczwmgkvdsdmrkbfaixwtqtufqdralwuwphtelnlzphmmzfhaubtywbeuixzfkvomitbtwbzaszmzyevorgcmgndfskyorhuzjemestwdvncajumqfinloawqfgvdoabfwrzarjpxvhmamsbvuiqpifkxcgacbzgkctgbqjgpsxoaepzvpdczssvxvtpidzxdyadhtkkokzjihnvyjmazddrxrglmlfpxljcsdsksgoolbiqyknggvphfmvpxyumluhyqoeudmhmrwbxszfakgxqouxejlkuobcoixvoyicvpgmtcofabaqllayrtaevxwncmywdnsowjrujuflwowzaplelplcztatafhsrwcezjdxcgkqbeuufryzuflafcrqjvtixjryxagmmunfjshrjvxjuguypqysyuvawrgayuzpmggtzlsemflnzkkaqojavhhwfpszdrcedjfpforveeoohvnnngjnopcgdrdzfgcxifscfzopzakkdkcvelflvkgdnwejiivgobtllrlonpvyhfetphvlhkiugqaucltgupyyybvuusagoatcjzgkntcrxsfnbjjnzvyexmbmqzbcbubvitmhlpatejnujwrbzxonmmaugfjngeozueuyvqgkbatsopeqhqkrhkkjdujrlauixhclboxfdbermdmyvgbuumsptiaeypgxcveiddoeonuqedkaxotabnocwlwmfbjegghvwejinpxdgurgmuytinqzukrlzxsvuhgmbutktllhimyukzjrnympynwrysdusutbpdfcifmscqxjvpqiyccfbggwzhmnqluzmuhaoiiihqktyzqekffpjvbvrtalsjtqeucooikhawsajbidtjtlsnlnlsnldjsmdkkinhnaqxaksxoprsnnbdyukdmrawocfcvojqgixgupsbdtsqyrnwjsdbwjjsepvuinsyqszpokzcjwxwgyaakculjysigsphntbjdstctdevusuhrfgdhgzfnfkjnqshhqkibgaggaiuistjtpqdpsertdeirrsbtknoiiaslbcgzjjycyfpndytpcefztzpoalaqjgctfnvmhxlxhnawstmceayzhjgbdjtqsnduzgjpjmmwithnimqyqlkolqjxzgxjvlkczobfrwfyotcfkwvrntjqnggdunnfahyboleuipkjfykzlfakamhrfyjjbtylvetofkkuxptuxzcwjabpnbohdnikwommthdwvltzbgpkwrghkejbzhrelmicsxfxevzvqzvmhzadacudicqhbstudessxncalsitnopfaebgoddavfrydrywtvkplatvfnjdazogagowoxvunlciptdsanikvrgsagpgmbqgrqjdlihzuzuqasvjyemjqxgewnjdgtewzgrefsdewohbhqamfmlruhdzldslkzmecpdifosmrpllfwecuyjtndpctennzjltrmqqxmkvkkwzoqtgzhtgeazsavhfmsmugsmmiduvrpopbxrpaujditrcrcokqhnphtxjocifnzzivhfphiwpfciplzwnbofvwyhcfbdnevpgjkvpvxeedqnwlmzkfoxziobutxjdzziwzwtzudprzuabfmzkpzlvzruzgraxolmrldlagtvlmatijzqkbhrzvawzbyftqixrrizxuqrnygfcwvbethtgkgyucrifhpcqaydwsgvlcpuevgloofobpijilifyimpybruuspkvctrjpdsixyloxfaorvmkefxnfhfuwfnezpzsnoxfjpblpyqemkwczrdvvzqyalxdnqobxrzqvdpyzvpnvtvoilduhkiplghutgxdypilssrotiabiqjralaofsnhizhfqlgbhjuetehbjrajgliirhkboqxjhidpetttuopcehgcgrhdquoevilpiskwwnqfojxnbrptbsmbujpnubecfrddvwtvggzxpforuhapdgrnxsmyqgvhzneyoydpjxfvqnxsmswyvvvfptutkxmywewopmhzttfulvfnagsyxrpioiqjmxjhhouwvdxunbmfsxynjh"); + return sb.toString(); + } + + private static String build100001String() { + final StringBuilder sb = new StringBuilder(); + sb.append(build100kString()); sb.append("a"); return sb.toString(); } diff --git a/src/test/java/dev/stegmaier/leetcode/services/LeetCodeQuestions/Q3085MinimumDeletionServiceTest.java b/src/test/java/dev/stegmaier/leetcode/services/LeetCodeQuestions/Q3085MinimumDeletionServiceTest.java index 33cc116..f15cd7f 100644 --- a/src/test/java/dev/stegmaier/leetcode/services/LeetCodeQuestions/Q3085MinimumDeletionServiceTest.java +++ b/src/test/java/dev/stegmaier/leetcode/services/LeetCodeQuestions/Q3085MinimumDeletionServiceTest.java @@ -1,5 +1,6 @@ package dev.stegmaier.leetcode.services.LeetCodeQuestions; +import static dev.stegmaier.leetcode.constants.Q3085Constants.STRING_WITH_100000_CHARACTERS; import static dev.stegmaier.leetcode.constants.Q3085Constants.STRING_WITH_100001_CHARACTERS; import static org.junit.jupiter.api.Assertions.*; @@ -63,8 +64,9 @@ void shouldNotHandleStringOver100000CharactersLong() { () -> q3085MinimumDeletionService.getMinimumDeletions(inputString, inputKValue), "Expected q3085MinimumDeletionService to throw an exception when a string with more than 100,000 characters was provided"); - assertTrue( - illegalArgumentException.getMessage().equals("expression length exceeds 10⁵"), + assertEquals( + "expression length exceeds 10⁵", + illegalArgumentException.getMessage(), "q3085MinimumDeletionService did not throw the correct exception message when a string with more than 100,000 characters was provided"); } @@ -79,11 +81,46 @@ void shouldNotHandleStringLessThanOneCharacterInLength() { () -> q3085MinimumDeletionService.getMinimumDeletions(inputString, inputKValue), "Expected q3085MinimumDeletionService to throw an exception when a string smaller than 1 character was provided"); - assertTrue( - illegalArgumentException.getMessage().equals("expression length less than 1"), + assertEquals( + "expression length less than 1", + illegalArgumentException.getMessage(), "q3085MinimumDeletionService did not throw the correct exception message when a string smaller than 1 character was provided"); } + @Test + void shouldNotHandleKValueOver100000() { + String inputString = STRING_WITH_100000_CHARACTERS; + int inputKValue = 100001; + + IllegalArgumentException illegalArgumentException = + assertThrows( + IllegalArgumentException.class, + () -> q3085MinimumDeletionService.getMinimumDeletions(inputString, inputKValue), + "Expected q3085MinimumDeletionService to throw an exception when a K value greater than 100,000 was provided"); + + assertEquals( + "K value provided is greater than 10⁵", + illegalArgumentException.getMessage(), + "q3085MinimumDeletionService did not throw the correct exception message when a K value greater than 100,000 was provided"); + } + + @Test + void shouldNotHandleKValueLessThanZero() { + String inputString = "aabbcc"; + int inputKValue = -1; + + IllegalArgumentException illegalArgumentException = + assertThrows( + IllegalArgumentException.class, + () -> q3085MinimumDeletionService.getMinimumDeletions(inputString, inputKValue), + "Expected q3085MinimumDeletionService to throw an exception when a K value less than zero was provided"); + + assertEquals( + "K value provided is less than 0", + illegalArgumentException.getMessage(), + "q3085MinimumDeletionService did not throw the correct exception message when a K value less than zero was provided"); + } + @Test void shouldNotHandleNullString() { String inputString = null; @@ -95,8 +132,26 @@ void shouldNotHandleNullString() { () -> q3085MinimumDeletionService.getMinimumDeletions(inputString, inputKValue), "Expected q3085MinimumDeletionService to throw an exception when a null string was provided"); - assertTrue( - nullPointerException.getMessage().equals("expression is somehow null"), + assertEquals( + "expression is somehow null", + nullPointerException.getMessage(), "q3085MinimumDeletionService did not throw the correct exception message when a null string was provided"); } + + @Test + void shouldNotHandleNumericCharacters() { + String inputString = "aabbcc12345abc"; + int inputKValue = 0; + + IllegalArgumentException illegalArgumentException = + assertThrows( + IllegalArgumentException.class, + () -> q3085MinimumDeletionService.getMinimumDeletions(inputString, inputKValue), + "Expected q3085MinimumDeletionService to throw an exception when an invalid string was provided"); + + assertEquals( + "Expression does not contain only lowercase letters", + illegalArgumentException.getMessage(), + "q3085MinimumDeletionService did not throw the correct exception message when an invalid string was provided"); + } }